[Pkg-net-snmp-commits] [pkg-net-snmp] 01/05: Imported Debian patch 5.4.3~dfsg-2+squeeze1

Hideki Yamane henrich at moszumanska.debian.org
Mon Sep 15 15:19:28 UTC 2014


This is an automated email from the git hooks/post-receive script.

henrich pushed a commit to branch squeeze
in repository pkg-net-snmp.

commit ff55e45369bf98c184802ff25dd561d2985c9e19
Author: Hideki Yamane <henrich at debian.org>
Date:   Sat Apr 6 15:06:20 2013 +0900

    Imported Debian patch 5.4.3~dfsg-2+squeeze1
---
 .gitignore                                         |   114 -
 AGENT.txt                                          |    10 +-
 CHANGES                                            |  2746 +-
 COPYING                                            |    65 +-
 ChangeLog                                          | 69697 +------------------
 FAQ                                                |    24 +-
 Makefile.am                                        |     1 -
 Makefile.in                                        |   166 +-
 Makefile.rules                                     |    71 +-
 Makefile.top                                       |    15 +-
 NEWS                                               |   361 +-
 PORTING                                            |    14 +-
 README                                             |     6 +-
 README.agent-mibs                                  |    65 +-
 README.aix                                         |     8 +-
 README.irix                                        |    14 +-
 README.osX                                         |    26 +-
 README.snmpv3                                      |     4 +-
 README.solaris                                     |     8 +-
 README.sql                                         |    29 -
 README.win32                                       |   518 +-
 TODO                                               |     4 +-
 acconfig.h                                         |   389 +-
 acinclude.m4                                       |   200 +
 aclocal.m4                                         |  6652 +-
 agent/Makefile.depend                              |  3160 +-
 agent/Makefile.in                                  |   219 +-
 agent/agent_handler.c                              |   527 +-
 agent/agent_index.c                                |    46 +-
 agent/agent_read_config.c                          |    92 +-
 agent/agent_registry.c                             |  1710 +-
 agent/agent_sysORTable.c                           |   236 -
 agent/agent_trap.c                                 |   242 +-
 agent/auto_nlist.c                                 |    54 +-
 agent/helpers/Makefile.depend                      |  1602 +-
 agent/helpers/Makefile.in                          |   120 +-
 agent/helpers/all_helpers.c                        |    27 +-
 agent/helpers/baby_steps.c                         |    53 +-
 agent/helpers/bulk_to_next.c                       |     6 +
 agent/helpers/cache_handler.c                      |   214 +-
 agent/helpers/debug_handler.c                      |   114 +-
 agent/helpers/dummy.c                              |     1 -
 agent/helpers/instance.c                           |   724 +-
 agent/helpers/mode_end_call.c                      |    12 +-
 agent/helpers/multiplexer.c                        |     2 -
 agent/helpers/null.c                               |    28 +-
 agent/helpers/old_api.c                            |    77 +-
 agent/helpers/read_only.c                          |    15 +-
 agent/helpers/row_merge.c                          |    27 +-
 agent/helpers/scalar.c                             |    19 +-
 agent/helpers/scalar_group.c                       |    42 +-
 agent/helpers/serialize.c                          |     6 +
 agent/helpers/snmp_get_statistic.c                 |    61 -
 agent/helpers/stash_cache.c                        |    40 +-
 agent/helpers/stash_to_next.c                      |    22 +-
 agent/helpers/table.c                              |   257 +-
 agent/helpers/table_array.c                        |   111 +-
 agent/helpers/table_container.c                    |   163 +-
 agent/helpers/table_data.c                         |   102 +-
 agent/helpers/table_dataset.c                      |   467 +-
 agent/helpers/table_iterator.c                     |   217 +-
 agent/helpers/table_row.c                          |    13 +-
 agent/helpers/table_tdata.c                        |   135 +-
 agent/helpers/watcher.c                            |   430 +-
 agent/kernel.c                                     |   148 +-
 agent/kernel.h                                     |    22 +-
 agent/mib_modules.c                                |    12 +-
 agent/mibgroup/Makefile.depend                     | 11448 ++-
 agent/mibgroup/Makefile.in                         |    12 +-
 agent/mibgroup/Rmon.h                              |     4 +-
 agent/mibgroup/Rmon/agutil.c                       |    17 +-
 agent/mibgroup/Rmon/alarm.c                        |    48 +-
 agent/mibgroup/Rmon/alarm.h                        |     2 +
 agent/mibgroup/Rmon/alarmTable.c                   |   842 -
 agent/mibgroup/Rmon/alarmTable.h                   |    41 -
 agent/mibgroup/Rmon/event.c                        |   169 +-
 agent/mibgroup/Rmon/event.h                        |     6 +-
 agent/mibgroup/Rmon/history.c                      |   100 +-
 agent/mibgroup/Rmon/history.h                      |     2 +
 agent/mibgroup/Rmon/row_api.h                      |     4 +-
 agent/mibgroup/Rmon/rows.c                         |     8 +-
 agent/mibgroup/Rmon/statistics.c                   |    92 +-
 agent/mibgroup/Rmon/statistics.h                   |     1 +
 agent/mibgroup/agent/extend.c                      |   203 +-
 agent/mibgroup/agent/extend.h                      |     3 +-
 agent/mibgroup/agent/nsCache.c                     |    35 +-
 agent/mibgroup/agent/nsDebug.c                     |    55 +-
 agent/mibgroup/agent/nsLogging.c                   |    25 +-
 agent/mibgroup/agent/nsModuleTable.c               |    22 +-
 agent/mibgroup/agent/nsTransactionTable.c          |    21 +-
 agent/mibgroup/agent/nsVacmAccessTable.c           |    40 +-
 agent/mibgroup/agent_mibs.h                        |     2 -
 agent/mibgroup/agentx/agentx_config.c              |    56 +-
 agent/mibgroup/agentx/client.c                     |    43 +-
 agent/mibgroup/agentx/client.h                     |     4 +-
 agent/mibgroup/agentx/master.c                     |   111 +-
 agent/mibgroup/agentx/master.h                     |     1 +
 agent/mibgroup/agentx/master_admin.c               |   118 +-
 agent/mibgroup/agentx/protocol.c                   |   130 +-
 agent/mibgroup/agentx/protocol.h                   |     2 +
 agent/mibgroup/agentx/subagent.c                   |   240 +-
 agent/mibgroup/default_modules.h                   |    22 +-
 agent/mibgroup/deliver/deliverByNotify.c           |   475 -
 agent/mibgroup/deliver/deliverByNotify.h           |    40 -
 agent/mibgroup/disman.h                            |     3 -
 agent/mibgroup/disman/event/mteEvent.c             |    40 +-
 agent/mibgroup/disman/event/mteEvent.h             |     2 +-
 agent/mibgroup/disman/event/mteEventConf.c         |    53 +-
 .../disman/event/mteEventNotificationTable.c       |    42 +-
 .../disman/event/mteEventNotificationTable.h       |     1 -
 agent/mibgroup/disman/event/mteEventSetTable.c     |    43 +-
 agent/mibgroup/disman/event/mteEventSetTable.h     |     1 -
 agent/mibgroup/disman/event/mteEventTable.c        |    53 +-
 agent/mibgroup/disman/event/mteEventTable.h        |     1 -
 agent/mibgroup/disman/event/mteObjects.c           |    11 +-
 agent/mibgroup/disman/event/mteObjects.h           |     9 +-
 agent/mibgroup/disman/event/mteObjectsConf.c       |    14 +-
 agent/mibgroup/disman/event/mteObjectsTable.c      |    54 +-
 agent/mibgroup/disman/event/mteObjectsTable.h      |     1 -
 agent/mibgroup/disman/event/mteTrigger.c           |    25 +-
 agent/mibgroup/disman/event/mteTrigger.h           |     6 +-
 .../mibgroup/disman/event/mteTriggerBooleanTable.c |    43 +-
 .../mibgroup/disman/event/mteTriggerBooleanTable.h |     1 -
 agent/mibgroup/disman/event/mteTriggerConf.c       |   213 +-
 agent/mibgroup/disman/event/mteTriggerConf.h       |     6 +-
 agent/mibgroup/disman/event/mteTriggerDeltaTable.c |    38 +-
 .../disman/event/mteTriggerExistenceTable.c        |    41 +-
 agent/mibgroup/disman/event/mteTriggerTable.c      |    59 +-
 agent/mibgroup/disman/event/mteTriggerTable.h      |     1 -
 .../disman/event/mteTriggerThresholdTable.c        |    44 +-
 .../disman/event/mteTriggerThresholdTable.h        |     1 -
 agent/mibgroup/disman/expr/expErrorTable.c         |     8 +-
 agent/mibgroup/disman/expr/expExpression.c         |    20 +-
 agent/mibgroup/disman/expr/expExpression.h         |     8 +-
 agent/mibgroup/disman/expr/expExpressionConf.c     |    24 +-
 agent/mibgroup/disman/expr/expExpressionTable.c    |    29 +-
 agent/mibgroup/disman/expr/expObject.c             |    19 +-
 agent/mibgroup/disman/expr/expObject.h             |     6 +-
 agent/mibgroup/disman/expr/expObjectConf.c         |    17 +-
 agent/mibgroup/disman/expr/expObjectTable.c        |    27 +-
 agent/mibgroup/disman/expr/expValue.c              |     6 +-
 agent/mibgroup/disman/expr/expValueTable.c         |    24 +-
 agent/mibgroup/disman/expr/exp_enum.h              |     0
 agent/mibgroup/disman/expression/expErrorTable.c   |    14 +-
 .../disman/expression/expExpressionTable.c         |    35 +-
 agent/mibgroup/disman/expression/expObjectTable.c  |    46 +-
 agent/mibgroup/disman/expression/expValueTable.c   |    75 +-
 agent/mibgroup/disman/mteEventNotificationTable.c  |    13 -
 agent/mibgroup/disman/mteEventTable.c              |     7 +-
 agent/mibgroup/disman/mteObjectsTable.c            |    59 +-
 agent/mibgroup/disman/mteObjectsTable.h            |     5 +-
 agent/mibgroup/disman/mteTriggerBooleanTable.c     |    66 +-
 agent/mibgroup/disman/mteTriggerBooleanTable.h     |     2 -
 agent/mibgroup/disman/mteTriggerDeltaTable.c       |    39 +-
 agent/mibgroup/disman/mteTriggerDeltaTable.h       |     2 -
 agent/mibgroup/disman/mteTriggerExistenceTable.c   |    59 +-
 agent/mibgroup/disman/mteTriggerExistenceTable.h   |     2 -
 agent/mibgroup/disman/mteTriggerTable.c            |   228 +-
 agent/mibgroup/disman/mteTriggerTable.h            |     5 +-
 agent/mibgroup/disman/mteTriggerThresholdTable.c   |   125 +-
 agent/mibgroup/disman/mteTriggerThresholdTable.h   |     2 -
 agent/mibgroup/disman/nslookup/lookupCtlTable.c    |   765 +-
 agent/mibgroup/disman/nslookup/lookupCtlTable.h    |    18 +-
 .../mibgroup/disman/nslookup/lookupResultsTable.c  |    35 +-
 agent/mibgroup/disman/ping/pingCtlTable.c          |  1147 +-
 agent/mibgroup/disman/ping/pingCtlTable.h          |    42 +-
 agent/mibgroup/disman/ping/pingProbeHistoryTable.c |    20 +-
 agent/mibgroup/disman/ping/pingResultsTable.c      |    39 +-
 agent/mibgroup/disman/schedule/schedConf.c         |    42 +-
 agent/mibgroup/disman/schedule/schedCore.c         |    84 +-
 agent/mibgroup/disman/schedule/schedCore.h         |     2 +-
 agent/mibgroup/disman/schedule/schedTable.c        |    48 +-
 agent/mibgroup/disman/schedule/schedTable.h        |     1 -
 .../disman/traceroute/traceRouteCtlTable.c         |   484 +-
 .../disman/traceroute/traceRouteCtlTable.h         |    40 +-
 .../disman/traceroute/traceRouteHopsTable.c        |    31 +-
 .../traceroute/traceRouteProbeHistoryTable.c       |    23 +-
 .../disman/traceroute/traceRouteResultsTable.c     |    32 +-
 agent/mibgroup/etherlike-mib.h                     |     7 -
 .../mibgroup/etherlike-mib/data_access/dot3stats.h |     7 -
 .../etherlike-mib/data_access/dot3stats_linux.c    |   928 -
 agent/mibgroup/etherlike-mib/dot3StatsTable.h      |    11 -
 .../etherlike-mib/dot3StatsTable/dot3StatsTable.c  |   215 -
 .../etherlike-mib/dot3StatsTable/dot3StatsTable.h  |   271 -
 .../dot3StatsTable/dot3StatsTable_data_access.c    |   417 -
 .../dot3StatsTable/dot3StatsTable_data_access.h    |    79 -
 .../dot3StatsTable/dot3StatsTable_data_get.c       |  1450 -
 .../dot3StatsTable/dot3StatsTable_data_get.h       |   143 -
 .../dot3StatsTable/dot3StatsTable_data_set.c       |    28 -
 .../dot3StatsTable/dot3StatsTable_data_set.h       |    28 -
 .../dot3StatsTable/dot3StatsTable_enums.h          |    89 -
 .../dot3StatsTable/dot3StatsTable_interface.c      |  1187 -
 .../dot3StatsTable/dot3StatsTable_interface.h      |    94 -
 .../dot3StatsTable/dot3StatsTable_oids.h           |    82 -
 .../dot3StatsTable/ioctl_imp_common.h              |    65 -
 agent/mibgroup/examples/data_set.c                 |    19 +-
 agent/mibgroup/examples/data_set.h                 |     1 -
 agent/mibgroup/examples/delayed_instance.c         |     4 +-
 agent/mibgroup/examples/example.c                  |    85 +-
 agent/mibgroup/examples/example.h                  |     4 +-
 agent/mibgroup/examples/netSnmpHostsTable.c        |    19 +-
 agent/mibgroup/examples/netSnmpHostsTable_access.c |     7 +-
 .../mibgroup/examples/netSnmpHostsTable_checkfns.c |    30 +-
 .../examples/netSnmpHostsTable_checkfns_local.h    |    37 +-
 agent/mibgroup/examples/scalar_int.c               |    15 +-
 agent/mibgroup/examples/ucdDemoPublic.c            |    41 +-
 agent/mibgroup/examples/ucdDemoPublic.h            |     4 +-
 agent/mibgroup/examples/watched.c                  |    26 +-
 agent/mibgroup/hardware/cpu.h                      |     7 +-
 agent/mibgroup/hardware/cpu/cpu.c                  |    37 +-
 agent/mibgroup/hardware/cpu/cpu_kerndata.c         |    32 +-
 agent/mibgroup/hardware/cpu/cpu_kerndata.h         |     0
 agent/mibgroup/hardware/cpu/cpu_kinfo.c            |    75 -
 agent/mibgroup/hardware/cpu/cpu_kinfo.h            |     2 -
 agent/mibgroup/hardware/cpu/cpu_kstat.c            |    41 +-
 agent/mibgroup/hardware/cpu/cpu_kstat.h            |     0
 agent/mibgroup/hardware/cpu/cpu_linux.c            |   104 +-
 agent/mibgroup/hardware/cpu/cpu_nlist.c            |    29 +-
 agent/mibgroup/hardware/cpu/cpu_nlist.h            |     0
 agent/mibgroup/hardware/cpu/cpu_pcp.c              |    22 +-
 agent/mibgroup/hardware/cpu/cpu_perfstat.c         |    45 +-
 agent/mibgroup/hardware/cpu/cpu_perfstat.h         |     0
 agent/mibgroup/hardware/cpu/cpu_pstat.c            |    32 +-
 agent/mibgroup/hardware/cpu/cpu_pstat.h            |     0
 agent/mibgroup/hardware/cpu/cpu_sysctl.c           |    72 +-
 agent/mibgroup/hardware/cpu/cpu_sysctl.h           |     0
 agent/mibgroup/hardware/cpu/cpu_sysinfo.c          |    34 +-
 agent/mibgroup/hardware/fsys.h                     |    10 -
 agent/mibgroup/hardware/fsys/fsys_getfsstats.c     |   187 -
 agent/mibgroup/hardware/fsys/fsys_mntctl.c         |   179 -
 agent/mibgroup/hardware/fsys/fsys_mntent.c         |   258 -
 agent/mibgroup/hardware/fsys/fsys_void.c           |    24 -
 agent/mibgroup/hardware/fsys/hw_fsys.c             |   349 -
 agent/mibgroup/hardware/fsys/hw_fsys.h             |     2 -
 agent/mibgroup/hardware/fsys/mnttypes.h            |   175 -
 agent/mibgroup/hardware/fsys/mounts.h              |   159 -
 agent/mibgroup/hardware/memory.h                   |     4 +-
 agent/mibgroup/hardware/memory/hw_mem.c            |     8 -
 agent/mibgroup/hardware/memory/memory_aix.c        |     1 -
 agent/mibgroup/hardware/memory/memory_freebsd.c    |    22 +-
 agent/mibgroup/hardware/memory/memory_linux.c      |    29 +-
 agent/mibgroup/hardware/memory/memory_netbsd.c     |   104 +-
 agent/mibgroup/hardware/memory/memory_solaris.c    |     2 +-
 agent/mibgroup/hardware/sensors.h                  |    17 -
 agent/mibgroup/hardware/sensors/dummy_sensors.c    |    60 -
 agent/mibgroup/hardware/sensors/dummy_sensors.h    |     1 -
 agent/mibgroup/hardware/sensors/hw_sensors.c       |   189 -
 agent/mibgroup/hardware/sensors/hw_sensors.h       |     2 -
 agent/mibgroup/hardware/sensors/kstat_sensors.c    |   161 -
 agent/mibgroup/hardware/sensors/kstat_sensors.h    |     1 -
 agent/mibgroup/hardware/sensors/lmsensors_v2.c     |    74 -
 agent/mibgroup/hardware/sensors/lmsensors_v2.h     |     1 -
 agent/mibgroup/hardware/sensors/lmsensors_v3.c     |   102 -
 agent/mibgroup/hardware/sensors/lmsensors_v3.h     |     1 -
 agent/mibgroup/hardware/sensors/picld_sensors.c    |   334 -
 agent/mibgroup/hardware/sensors/picld_sensors.h    |     1 -
 agent/mibgroup/header_complex.c                    |   109 +-
 agent/mibgroup/header_complex.h                    |     9 -
 agent/mibgroup/host.h                              |    20 +-
 agent/mibgroup/host/data_access/swinst.c           |   224 -
 agent/mibgroup/host/data_access/swinst.h           |    38 -
 agent/mibgroup/host/data_access/swinst_apt.c       |   102 -
 agent/mibgroup/host/data_access/swinst_darwin.c    |   396 -
 agent/mibgroup/host/data_access/swinst_null.c      |    51 -
 agent/mibgroup/host/data_access/swinst_pkginfo.c   |   151 -
 agent/mibgroup/host/data_access/swinst_rpm.c       |   156 -
 agent/mibgroup/host/data_access/swrun.c            |   353 -
 agent/mibgroup/host/data_access/swrun.h            |    54 -
 agent/mibgroup/host/data_access/swrun_cygwin.c     |   279 -
 agent/mibgroup/host/data_access/swrun_darwin.c     |   494 -
 agent/mibgroup/host/data_access/swrun_kinfo.c      |   331 -
 agent/mibgroup/host/data_access/swrun_kvm_proc.c   |   164 -
 agent/mibgroup/host/data_access/swrun_nlist.c      |   114 -
 agent/mibgroup/host/data_access/swrun_null.c       |    44 -
 .../host/data_access/swrun_procfs_psinfo.c         |   147 -
 .../host/data_access/swrun_procfs_status.c         |   218 -
 agent/mibgroup/host/data_access/swrun_procinfo.c   |   130 -
 agent/mibgroup/host/data_access/swrun_prpsinfo.c   |   107 -
 agent/mibgroup/host/data_access/swrun_pstat.c      |   117 -
 agent/mibgroup/host/hrSWInstalledTable.c           |   282 -
 agent/mibgroup/host/hrSWInstalledTable.h           |    26 -
 agent/mibgroup/host/hrSWRunPerfTable.c             |   198 -
 agent/mibgroup/host/hrSWRunPerfTable.h             |    34 -
 agent/mibgroup/host/hrSWRunTable.c                 |   350 -
 agent/mibgroup/host/hrSWRunTable.h                 |    39 -
 agent/mibgroup/host/hr_device.c                    |    23 +-
 agent/mibgroup/host/hr_disk.c                      |   460 +-
 agent/mibgroup/host/hr_disk.h                      |     2 -
 agent/mibgroup/host/hr_filesys.c                   |   130 +-
 agent/mibgroup/host/hr_network.c                   |    50 +-
 agent/mibgroup/host/hr_partition.c                 |    44 +-
 agent/mibgroup/host/hr_print.c                     |    11 +-
 agent/mibgroup/host/hr_print.h                     |     1 -
 agent/mibgroup/host/hr_proc.c                      |    18 +-
 agent/mibgroup/host/hr_storage.c                   |   182 +-
 agent/mibgroup/host/hr_storage.h                   |     4 +-
 agent/mibgroup/host/hr_swinst.c                    |    95 +-
 agent/mibgroup/host/hr_swrun.c                     |   346 +-
 agent/mibgroup/host/hr_system.c                    |    94 +-
 agent/mibgroup/host/hr_system.h                    |     2 -
 agent/mibgroup/host/hrh_filesys.c                  |   429 -
 agent/mibgroup/host/hrh_filesys.h                  |    19 -
 agent/mibgroup/host/hrh_storage.c                  |   520 -
 agent/mibgroup/host/hrh_storage.h                  |    23 -
 agent/mibgroup/host_res.h                          |    14 +-
 agent/mibgroup/if-mib/data_access/interface.c      |   202 +-
 agent/mibgroup/if-mib/data_access/interface.h      |     8 +-
 .../mibgroup/if-mib/data_access/interface_ioctl.c  |    48 +-
 .../mibgroup/if-mib/data_access/interface_ioctl.h  |     2 +-
 .../mibgroup/if-mib/data_access/interface_linux.c  |   426 +-
 .../if-mib/data_access/interface_openbsd.c         |   407 -
 .../if-mib/data_access/interface_solaris2.c        |    15 +-
 .../mibgroup/if-mib/data_access/interface_sysctl.c |    66 +-
 .../mibgroup/if-mib/data_access/interface_sysctl.h |     2 +-
 agent/mibgroup/if-mib/ifTable/ifTable.c            |    45 +-
 agent/mibgroup/if-mib/ifTable/ifTable.h            |    12 +-
 agent/mibgroup/if-mib/ifTable/ifTable_constants.h  |     2 +-
 .../mibgroup/if-mib/ifTable/ifTable_data_access.c  |   297 +-
 .../mibgroup/if-mib/ifTable/ifTable_data_access.h  |     6 +-
 agent/mibgroup/if-mib/ifTable/ifTable_interface.c  |    87 +-
 agent/mibgroup/if-mib/ifTable/ifTable_interface.h  |     2 +-
 agent/mibgroup/if-mib/ifXTable/ifXTable.c          |    44 +-
 agent/mibgroup/if-mib/ifXTable/ifXTable.h          |    10 +-
 .../mibgroup/if-mib/ifXTable/ifXTable_constants.h  |     6 +-
 .../if-mib/ifXTable/ifXTable_data_access.c         |     2 +-
 .../if-mib/ifXTable/ifXTable_data_access.h         |     2 +-
 .../mibgroup/if-mib/ifXTable/ifXTable_interface.c  |   105 +-
 .../mibgroup/if-mib/ifXTable/ifXTable_interface.h  |     2 +-
 agent/mibgroup/ip-forward-mib/data_access/route.h  |     4 +-
 .../ip-forward-mib/data_access/route_common.c      |    16 +-
 .../ip-forward-mib/data_access/route_ioctl.c       |     8 +-
 .../ip-forward-mib/data_access/route_linux.c       |    54 +-
 .../inetCidrRouteTable/inetCidrRouteTable.c        |    48 +-
 .../inetCidrRouteTable/inetCidrRouteTable.h        |     6 +-
 .../inetCidrRouteTable_constants.h                 |     2 +-
 .../inetCidrRouteTable_data_access.c               |    10 +-
 .../inetCidrRouteTable_data_access.h               |     2 +-
 .../inetCidrRouteTable_interface.c                 |   100 +-
 .../inetCidrRouteTable_interface.h                 |     2 +-
 .../ipCidrRouteTable/ipCidrRouteTable.c            |    27 +-
 .../ipCidrRouteTable/ipCidrRouteTable.h            |     6 +-
 .../ipCidrRouteTable/ipCidrRouteTable_constants.h  |     2 +-
 .../ipCidrRouteTable_data_access.c                 |     4 +-
 .../ipCidrRouteTable_data_access.h                 |     2 +-
 .../ipCidrRouteTable/ipCidrRouteTable_interface.c  |    88 +-
 .../ipCidrRouteTable/ipCidrRouteTable_interface.h  |     2 +-
 agent/mibgroup/ip-mib.h                            |     6 -
 agent/mibgroup/ip-mib/data_access/arp.h            |     9 +-
 agent/mibgroup/ip-mib/data_access/arp_common.c     |   135 +-
 agent/mibgroup/ip-mib/data_access/arp_linux.c      |   105 +-
 agent/mibgroup/ip-mib/data_access/arp_netlink.c    |   304 -
 agent/mibgroup/ip-mib/data_access/defaultrouter.h  |    28 -
 .../ip-mib/data_access/defaultrouter_common.c      |   291 -
 .../ip-mib/data_access/defaultrouter_linux.c       |   328 -
 agent/mibgroup/ip-mib/data_access/ipaddress.h      |    10 +-
 .../mibgroup/ip-mib/data_access/ipaddress_common.c |    93 +-
 .../mibgroup/ip-mib/data_access/ipaddress_ioctl.c  |   194 +-
 .../mibgroup/ip-mib/data_access/ipaddress_ioctl.h  |    20 -
 .../mibgroup/ip-mib/data_access/ipaddress_linux.c  |   312 +-
 .../mibgroup/ip-mib/data_access/ipaddress_linux.h  |     5 +-
 .../ip-mib/data_access/ipaddress_solaris2.c        |   291 -
 agent/mibgroup/ip-mib/data_access/ipv6scopezone.h  |    30 -
 .../ip-mib/data_access/ipv6scopezone_common.c      |   155 -
 .../ip-mib/data_access/ipv6scopezone_linux.c       |   132 -
 agent/mibgroup/ip-mib/data_access/scalars_common.h |     2 +-
 agent/mibgroup/ip-mib/data_access/scalars_linux.c  |    89 +-
 agent/mibgroup/ip-mib/data_access/systemstats.h    |    11 +-
 .../ip-mib/data_access/systemstats_common.c        |   313 +-
 .../ip-mib/data_access/systemstats_linux.c         |   437 +-
 .../ip-mib/data_access/systemstats_solaris2.c      |   213 -
 .../inetNetToMediaTable/inetNetToMediaTable.c      |    25 +-
 .../inetNetToMediaTable/inetNetToMediaTable.h      |    13 +-
 .../inetNetToMediaTable_constants.h                |     2 +-
 .../inetNetToMediaTable_data_access.c              |   241 +-
 .../inetNetToMediaTable_data_access.h              |     2 +-
 .../inetNetToMediaTable_interface.c                |    86 +-
 .../inetNetToMediaTable_interface.h                |     2 +-
 .../ipAddressPrefixTable/ipAddressPrefixTable.c    |    34 +-
 .../ipAddressPrefixTable/ipAddressPrefixTable.h    |    10 +-
 .../ipAddressPrefixTable_constants.h               |    16 +-
 .../ipAddressPrefixTable_data_access.c             |    37 +-
 .../ipAddressPrefixTable_data_access.h             |     2 +-
 .../ipAddressPrefixTable_interface.c               |    41 +-
 .../ipAddressPrefixTable_interface.h               |     2 +-
 .../ip-mib/ipAddressTable/ipAddressTable.c         |    79 +-
 .../ip-mib/ipAddressTable/ipAddressTable.h         |    20 +-
 .../ipAddressTable/ipAddressTable_constants.h      |     2 +-
 .../ipAddressTable/ipAddressTable_data_access.c    |    32 +-
 .../ipAddressTable/ipAddressTable_data_access.h    |     2 +-
 .../ipAddressTable/ipAddressTable_interface.c      |    81 +-
 .../ipAddressTable/ipAddressTable_interface.h      |     2 +-
 agent/mibgroup/ip-mib/ipDefaultRouterTable.h       |     5 -
 .../ipDefaultRouterTable/ipDefaultRouterTable.c    |   218 -
 .../ipDefaultRouterTable/ipDefaultRouterTable.h    |   212 -
 .../ipDefaultRouterTable_data_access.c             |   423 -
 .../ipDefaultRouterTable_data_access.h             |    76 -
 .../ipDefaultRouterTable_data_get.c                |   325 -
 .../ipDefaultRouterTable_data_get.h                |    84 -
 .../ipDefaultRouterTable_enums.h                   |    93 -
 .../ipDefaultRouterTable_interface.c               |  1026 -
 .../ipDefaultRouterTable_interface.h               |    99 -
 .../ipDefaultRouterTable_oids.h                    |    39 -
 agent/mibgroup/ip-mib/ipIfStatsTable.h             |     8 -
 .../ip-mib/ipIfStatsTable/ipIfStatsTable.c         |   222 -
 .../ip-mib/ipIfStatsTable/ipIfStatsTable.h         |   200 -
 .../ipIfStatsTable/ipIfStatsTable_data_access.c    |   410 -
 .../ipIfStatsTable/ipIfStatsTable_data_access.h    |    70 -
 .../ipIfStatsTable/ipIfStatsTable_data_get.c       |  3015 -
 .../ipIfStatsTable/ipIfStatsTable_data_get.h       |   246 -
 .../ip-mib/ipIfStatsTable/ipIfStatsTable_enums.h   |    56 -
 .../ipIfStatsTable/ipIfStatsTable_interface.c      |  1420 -
 .../ipIfStatsTable/ipIfStatsTable_interface.h      |    99 -
 .../ip-mib/ipIfStatsTable/ipIfStatsTable_oids.h    |   122 -
 .../ip-mib/ipSystemStatsTable/ipSystemStatsTable.c |   173 +-
 .../ip-mib/ipSystemStatsTable/ipSystemStatsTable.h |     6 +-
 .../ipSystemStatsTable_constants.h                 |     2 +-
 .../ipSystemStatsTable_data_access.c               |    70 +-
 .../ipSystemStatsTable_data_access.h               |     2 +-
 .../ipSystemStatsTable_interface.c                 |    52 +-
 .../ipSystemStatsTable_interface.h                 |     2 +-
 agent/mibgroup/ip-mib/ip_scalars.c                 |   219 -
 .../ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.c |    17 +-
 .../ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h |     7 +-
 .../ipv4InterfaceTable_constants.h                 |     2 +-
 .../ipv4InterfaceTable_data_access.c               |     8 +-
 .../ipv4InterfaceTable_data_access.h               |     2 +-
 .../ipv4InterfaceTable_interface.c                 |    41 +-
 .../ipv4InterfaceTable_interface.h                 |     2 +-
 .../ipv4InterfaceTable_subagent.c                  |     5 -
 .../ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.c |    19 +-
 .../ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h |     7 +-
 .../ipv6InterfaceTable_constants.h                 |     2 +-
 .../ipv6InterfaceTable_data_access.c               |    10 +-
 .../ipv6InterfaceTable_data_access.h               |    46 +-
 .../ipv6InterfaceTable_interface.c                 |    38 +-
 .../ipv6InterfaceTable_interface.h                 |     2 +-
 agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable.h    |     5 -
 .../ipv6ScopeZoneIndexTable.c                      |  1009 -
 .../ipv6ScopeZoneIndexTable.h                      |   269 -
 .../ipv6ScopeZoneIndexTable_data_access.c          |   304 -
 .../ipv6ScopeZoneIndexTable_data_access.h          |    70 -
 .../ipv6ScopeZoneIndexTable_enums.h                |    39 -
 .../ipv6ScopeZoneIndexTable_interface.c            |  1154 -
 .../ipv6ScopeZoneIndexTable_interface.h            |    98 -
 .../ipv6ScopeZoneIndexTable_oids.h                 |    55 -
 agent/mibgroup/kernel_sunos5.c                     |    91 +-
 agent/mibgroup/kernel_sunos5.h                     |    12 +-
 agent/mibgroup/mibII.h                             |    19 +-
 agent/mibgroup/mibII/at.c                          |   102 +-
 agent/mibgroup/mibII/icmp.c                        |   685 +-
 agent/mibgroup/mibII/icmp.h                        |    21 +-
 agent/mibgroup/mibII/interfaces.c                  |   615 +-
 agent/mibgroup/mibII/interfaces.h                  |    49 +-
 agent/mibgroup/mibII/ip.c                          |   148 +-
 agent/mibgroup/mibII/ip.h                          |     9 +-
 agent/mibgroup/mibII/ipAddr.c                      |    61 +-
 agent/mibgroup/mibII/ipAddr.h                      |     1 +
 agent/mibgroup/mibII/ipCidrRouteTable.c            |    18 +-
 agent/mibgroup/mibII/ipv6.c                        |   761 +-
 agent/mibgroup/mibII/ipv6.h                        |     7 +
 agent/mibgroup/mibII/kernel_linux.c                |   490 +-
 agent/mibgroup/mibII/kernel_linux.h                |    86 -
 agent/mibgroup/mibII/kernel_netbsd.c               |   198 -
 agent/mibgroup/mibII/kernel_netbsd.h               |    91 -
 agent/mibgroup/mibII/mibII_common.h                |     8 +-
 agent/mibgroup/mibII/mta_sendmail.c                |   106 +-
 agent/mibgroup/mibII/route_headers.h               |    35 +-
 agent/mibgroup/mibII/route_write.c                 |   122 +-
 agent/mibgroup/mibII/setSerialNo.c                 |    14 +-
 agent/mibgroup/mibII/snmp_mib.c                    |   320 +-
 agent/mibgroup/mibII/snmp_mib.h                    |    78 +-
 agent/mibgroup/mibII/snmp_mib_5_5.c                |   128 -
 agent/mibgroup/mibII/snmp_mib_5_5.h                |     4 -
 agent/mibgroup/mibII/sysORTable.c                  |   553 +-
 agent/mibgroup/mibII/sysORTable.h                  |    64 +-
 agent/mibgroup/mibII/system_mib.c                  |   611 +-
 agent/mibgroup/mibII/system_mib.h                  |    31 +-
 agent/mibgroup/mibII/tcp.c                         |    61 +-
 agent/mibgroup/mibII/tcp.h                         |     9 +-
 agent/mibgroup/mibII/tcpTable.c                    |   193 +-
 agent/mibgroup/mibII/tcpTable.h                    |     1 +
 agent/mibgroup/mibII/udp.c                         |    74 +-
 agent/mibgroup/mibII/udp.h                         |     9 +-
 agent/mibgroup/mibII/udpTable.c                    |    60 +-
 agent/mibgroup/mibII/udpTable.h                    |     2 +-
 agent/mibgroup/mibII/updates.c                     |    33 -
 agent/mibgroup/mibII/updates.h                     |    16 -
 agent/mibgroup/mibII/vacm_conf.c                   |   180 +-
 agent/mibgroup/mibII/vacm_conf.h                   |     6 +-
 agent/mibgroup/mibII/vacm_context.c                |     5 +-
 agent/mibgroup/mibII/vacm_vars.c                   |   214 +-
 agent/mibgroup/mibII/vacm_vars.h                   |     6 +-
 agent/mibgroup/mibII/var_route.c                   |    85 +-
 agent/mibgroup/mibII/var_route.h                   |     2 +-
 agent/mibgroup/mibincl.h                           |     6 +-
 agent/mibgroup/misc/ipfwacc.c                      |    94 +-
 agent/mibgroup/misc/ipfwacc.h                      |     4 +-
 .../notification-log-mib/notification_log.c        |    63 +-
 .../notification/snmpNotifyFilterProfileTable.c    |    57 +-
 .../notification/snmpNotifyFilterProfileTable.h    |     2 -
 agent/mibgroup/notification/snmpNotifyTable.c      |   139 +-
 agent/mibgroup/notification/snmpNotifyTable.h      |     3 -
 agent/mibgroup/rmon-mib.h                          |     8 -
 agent/mibgroup/rmon-mib/data_access/etherstats.h   |     7 -
 .../rmon-mib/data_access/etherstats_linux.c        |   315 -
 agent/mibgroup/rmon-mib/etherStatsTable.h          |    11 -
 .../rmon-mib/etherStatsTable/etherStatsTable.c     |   233 -
 .../rmon-mib/etherStatsTable/etherStatsTable.h     |   303 -
 .../etherStatsTable/etherStatsTable_data_access.c  |   525 -
 .../etherStatsTable/etherStatsTable_data_access.h  |    80 -
 .../etherStatsTable/etherStatsTable_data_get.c     |  1411 -
 .../etherStatsTable/etherStatsTable_data_get.h     |   151 -
 .../etherStatsTable/etherStatsTable_data_set.c     |   977 -
 .../etherStatsTable/etherStatsTable_data_set.h     |   356 -
 .../etherStatsTable/etherStatsTable_enums.h        |    57 -
 .../etherStatsTable/etherStatsTable_interface.c    |  2232 -
 .../etherStatsTable/etherStatsTable_interface.h    |    98 -
 .../etherStatsTable/etherStatsTable_oids.h         |   107 -
 .../rmon-mib/etherStatsTable/ioctl_imp_common.h    |    35 -
 agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.c  |    23 +-
 agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.h  |     1 -
 agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.c    |    21 +-
 agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.h    |     1 -
 agent/mibgroup/sctp-mib/sctpAssocTable.c           |    28 +-
 agent/mibgroup/sctp-mib/sctpAssocTable.h           |     1 -
 agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.c |    22 +-
 agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.h |     1 -
 .../mibgroup/sctp-mib/sctpLookupRemHostNameTable.c |    24 +-
 .../mibgroup/sctp-mib/sctpLookupRemHostNameTable.h |     1 -
 agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.c |    23 +-
 agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.h |     1 -
 agent/mibgroup/sctp-mib/sctpLookupRemPortTable.c   |    23 +-
 agent/mibgroup/sctp-mib/sctpLookupRemPortTable.h   |     1 -
 .../sctp-mib/sctpLookupRemPrimIPAddrTable.c        |    23 +-
 .../sctp-mib/sctpLookupRemPrimIPAddrTable.h        |     1 -
 agent/mibgroup/sctp-mib/sctpScalars.c              |    47 +-
 agent/mibgroup/sctp-mib/sctpScalars.h              |     4 -
 agent/mibgroup/sctp-mib/sctpScalars_common.c       |    70 +-
 agent/mibgroup/sctp-mib/sctpScalars_freebsd.c      |    93 -
 agent/mibgroup/sctp-mib/sctpScalars_linux.c        |     5 -
 agent/mibgroup/sctp-mib/sctpScalars_solaris2.c     |    95 -
 agent/mibgroup/sctp-mib/sctpTables.h               |    11 +-
 agent/mibgroup/sctp-mib/sctpTables_common.c        |     7 +-
 agent/mibgroup/sctp-mib/sctpTables_common.h        |     4 -
 agent/mibgroup/sctp-mib/sctpTables_freebsd.c       |   244 -
 agent/mibgroup/sctp-mib/sctpTables_linux.c         |     6 +-
 agent/mibgroup/sctp-mib/sctpTables_solaris2.c      |   182 -
 agent/mibgroup/smux/smux.c                         |   250 +-
 agent/mibgroup/smux/smux.h                         |     7 +-
 agent/mibgroup/smux/snmp_bgp.c                     |    75 +-
 agent/mibgroup/smux/snmp_ospf.c                    |   340 +-
 agent/mibgroup/smux/snmp_rip2.c                    |    70 +-
 .../snmpNotifyFilterTable/snmpNotifyFilterTable.c  |    26 +-
 .../snmpNotifyFilterTable/snmpNotifyFilterTable.h  |     6 +-
 .../snmpNotifyFilterTable_constants.h              |     2 +-
 .../snmpNotifyFilterTable_data_access.c            |    12 +-
 .../snmpNotifyFilterTable_data_access.h            |     2 +-
 .../snmpNotifyFilterTable_interface.c              |   101 +-
 .../snmpNotifyFilterTable_interface.h              |     2 +-
 .../usmDHParameters/usmDHParameters.c              |     2 +-
 .../usmDHUserKeyTable/usmDHUserKeyTable.c          |     6 +-
 .../usmDHUserKeyTable/usmDHUserKeyTable.h          |     6 +-
 .../usmDHUserKeyTable_data_access.c                |     4 +-
 .../usmDHUserKeyTable_data_access.h                |     2 +-
 .../usmDHUserKeyTable/usmDHUserKeyTable_data_get.c |    19 +-
 .../usmDHUserKeyTable/usmDHUserKeyTable_data_get.h |    36 +-
 .../usmDHUserKeyTable/usmDHUserKeyTable_data_set.c |    33 +-
 .../usmDHUserKeyTable/usmDHUserKeyTable_data_set.h |    50 +-
 .../usmDHUserKeyTable/usmDHUserKeyTable_enums.h    |     2 +-
 .../usmDHUserKeyTable_interface.c                  |    58 +-
 .../usmDHUserKeyTable_interface.h                  |     2 +-
 .../usmDHUserKeyTable/usmDHUserKeyTable_oids.h     |     2 +-
 agent/mibgroup/snmpv3/snmpEngine.c                 |    64 +-
 agent/mibgroup/snmpv3/snmpEngine.h                 |     4 +-
 agent/mibgroup/snmpv3/snmpMPDStats.c               |    26 +-
 agent/mibgroup/snmpv3/snmpMPDStats.h               |     5 +-
 agent/mibgroup/snmpv3/snmpMPDStats_5_5.c           |    51 -
 agent/mibgroup/snmpv3/snmpMPDStats_5_5.h           |    10 -
 agent/mibgroup/snmpv3/usmStats.c                   |    37 +-
 agent/mibgroup/snmpv3/usmStats.h                   |     5 +-
 agent/mibgroup/snmpv3/usmStats_5_5.c               |    51 -
 agent/mibgroup/snmpv3/usmStats_5_5.h               |    10 -
 agent/mibgroup/snmpv3/usmUser.c                    |   109 +-
 agent/mibgroup/snmpv3/usmUser.h                    |     6 +-
 agent/mibgroup/snmpv3mibs.h                        |     8 +-
 agent/mibgroup/struct.h                            |     9 +-
 agent/mibgroup/target.h                            |     2 +-
 agent/mibgroup/target/snmpTargetAddrEntry.c        |   233 +-
 agent/mibgroup/target/snmpTargetAddrEntry.h        |     9 +-
 agent/mibgroup/target/snmpTargetParamsEntry.c      |   134 +-
 agent/mibgroup/target/snmpTargetParamsEntry.h      |   132 +-
 agent/mibgroup/target/target.c                     |    94 +-
 agent/mibgroup/target/target_counters.c            |     7 +-
 agent/mibgroup/target/target_counters.h            |     3 -
 agent/mibgroup/target/target_counters_5_5.c        |    31 -
 agent/mibgroup/target/target_counters_5_5.h        |     3 -
 agent/mibgroup/tcp-mib/data_access/tcpConn.h       |     9 +-
 .../mibgroup/tcp-mib/data_access/tcpConn_common.c  |    12 +-
 .../tcp-mib/data_access/tcpConn_freebsd4.c         |   223 -
 agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c |    57 +-
 .../mibgroup/tcp-mib/data_access/tcpConn_netbsd.c  |   229 -
 .../mibgroup/tcp-mib/data_access/tcpConn_openbsd.c |   211 -
 .../tcp-mib/data_access/tcpConn_solaris2.c         |     4 +-
 .../tcpConnectionTable/tcpConnectionTable.c        |    22 +-
 .../tcpConnectionTable/tcpConnectionTable.h        |    14 +-
 .../tcpConnectionTable_constants.h                 |     2 +-
 .../tcpConnectionTable_data_access.c               |    11 +-
 .../tcpConnectionTable_data_access.h               |     2 +-
 .../tcpConnectionTable_interface.c                 |    85 +-
 .../tcpConnectionTable_interface.h                 |     2 +-
 .../tcp-mib/tcpListenerTable/tcpListenerTable.c    |     6 +-
 .../tcp-mib/tcpListenerTable/tcpListenerTable.h    |     6 +-
 .../tcpListenerTable/tcpListenerTable_constants.h  |     2 +-
 .../tcpListenerTable_data_access.c                 |     6 +-
 .../tcpListenerTable_data_access.h                 |     2 +-
 .../tcpListenerTable/tcpListenerTable_interface.c  |    54 +-
 .../tcpListenerTable/tcpListenerTable_interface.h  |     2 +-
 agent/mibgroup/testhandler.c                       |    28 +-
 agent/mibgroup/tlstm-mib.h                         |    11 -
 agent/mibgroup/tlstm-mib/snmpTlstmAddrTable.h      |     7 -
 .../snmpTlstmAddrTable/snmpTlstmAddrTable.c        |  1438 -
 .../snmpTlstmAddrTable/snmpTlstmAddrTable.h        |    37 -
 agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable.h |     6 -
 .../snmpTlstmCertToTSNTable.c                      |  1377 -
 .../snmpTlstmCertToTSNTable.h                      |    47 -
 agent/mibgroup/tlstm-mib/snmpTlstmParamsTable.h    |     6 -
 .../snmpTlstmParamsTable/snmpTlstmParamsTable.c    |  1286 -
 .../snmpTlstmParamsTable/snmpTlstmParamsTable.h    |    30 -
 agent/mibgroup/tlstm-mib/snmpTlstmSession.h        |     6 -
 .../tlstm-mib/snmpTlstmSession/snmpTlstmSession.c  |    49 -
 .../tlstm-mib/snmpTlstmSession/snmpTlstmSession.h  |     9 -
 agent/mibgroup/tsm-mib.h                           |     6 -
 .../tsm-mib/snmpTsmConfigurationUsePrefix.c        |   110 -
 .../tsm-mib/snmpTsmConfigurationUsePrefix.h        |    14 -
 agent/mibgroup/tsm-mib/snmpTsmStats.h              |     6 -
 agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.c |    53 -
 agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h |     8 -
 agent/mibgroup/tunnel/tunnel.c                     |    67 +-
 agent/mibgroup/ucd-snmp/disk.c                     |   510 +-
 agent/mibgroup/ucd-snmp/disk.h                     |     8 +-
 agent/mibgroup/ucd-snmp/disk_hw.c                  |   421 -
 agent/mibgroup/ucd-snmp/disk_hw.h                  |    32 -
 agent/mibgroup/ucd-snmp/diskio.c                   |   355 +-
 agent/mibgroup/ucd-snmp/diskio.h                   |     2 +-
 agent/mibgroup/ucd-snmp/dlmod.c                    |   472 +-
 agent/mibgroup/ucd-snmp/dlmod.h                    |    58 +-
 agent/mibgroup/ucd-snmp/errormib.c                 |    35 +-
 agent/mibgroup/ucd-snmp/errormib.h                 |     2 +-
 agent/mibgroup/ucd-snmp/extensible.c               |    85 +-
 agent/mibgroup/ucd-snmp/extensible.h               |     1 -
 agent/mibgroup/ucd-snmp/file.c                     |    29 +-
 agent/mibgroup/ucd-snmp/file.h                     |     2 -
 agent/mibgroup/ucd-snmp/hpux.c                     |    18 +-
 agent/mibgroup/ucd-snmp/lmSensors.c                |   173 +-
 agent/mibgroup/ucd-snmp/lmSensors.h                |     2 +-
 agent/mibgroup/ucd-snmp/lmsensorsMib.c             |   206 -
 agent/mibgroup/ucd-snmp/lmsensorsMib.h             |    23 -
 agent/mibgroup/ucd-snmp/loadave.c                  |   181 +-
 agent/mibgroup/ucd-snmp/loadave.h                  |     2 +-
 agent/mibgroup/ucd-snmp/logmatch.c                 |   559 +-
 agent/mibgroup/ucd-snmp/logmatch.h                 |    50 +-
 agent/mibgroup/ucd-snmp/memory.c                   |    23 +-
 agent/mibgroup/ucd-snmp/memory_aix4.c              |    71 +-
 agent/mibgroup/ucd-snmp/memory_aix4.h              |     2 -
 agent/mibgroup/ucd-snmp/memory_darwin7.c           |    53 +-
 agent/mibgroup/ucd-snmp/memory_darwin7.h           |     2 -
 agent/mibgroup/ucd-snmp/memory_dynix.c             |    68 +-
 agent/mibgroup/ucd-snmp/memory_dynix.h             |     2 -
 agent/mibgroup/ucd-snmp/memory_freebsd2.c          |    82 +-
 agent/mibgroup/ucd-snmp/memory_hpux.c              |    66 +-
 agent/mibgroup/ucd-snmp/memory_netbsd1.c           |    68 +-
 agent/mibgroup/ucd-snmp/memory_netbsd1.h           |     2 -
 agent/mibgroup/ucd-snmp/memory_solaris2.c          |    68 +-
 agent/mibgroup/ucd-snmp/memory_solaris2.h          |     2 -
 agent/mibgroup/ucd-snmp/pass.c                     |   272 +-
 agent/mibgroup/ucd-snmp/pass.h                     |     2 -
 agent/mibgroup/ucd-snmp/pass_common.c              |   264 -
 agent/mibgroup/ucd-snmp/pass_common.h              |    20 -
 agent/mibgroup/ucd-snmp/pass_persist.c             |   318 +-
 agent/mibgroup/ucd-snmp/pass_persist.h             |     3 -
 agent/mibgroup/ucd-snmp/proc.c                     |    89 +-
 agent/mibgroup/ucd-snmp/proxy.c                    |    70 +-
 agent/mibgroup/ucd-snmp/versioninfo.c              |    77 +-
 agent/mibgroup/ucd-snmp/versioninfo.h              |     3 -
 agent/mibgroup/ucd-snmp/vmstat.c                   |    52 +-
 agent/mibgroup/ucd-snmp/vmstat.h                   |     3 -
 agent/mibgroup/ucd-snmp/vmstat_aix4.c              |    86 +-
 agent/mibgroup/ucd-snmp/vmstat_aix4.h              |     2 +-
 agent/mibgroup/ucd-snmp/vmstat_bsdi4.c             |    75 +-
 agent/mibgroup/ucd-snmp/vmstat_bsdi4.h             |     2 -
 agent/mibgroup/ucd-snmp/vmstat_darwin7.c           |    79 +-
 agent/mibgroup/ucd-snmp/vmstat_darwin7.h           |     2 -
 agent/mibgroup/ucd-snmp/vmstat_dynix.c             |    75 +-
 agent/mibgroup/ucd-snmp/vmstat_dynix.h             |     2 +-
 agent/mibgroup/ucd-snmp/vmstat_freebsd2.c          |   152 +-
 agent/mibgroup/ucd-snmp/vmstat_freebsd2.h          |     2 -
 agent/mibgroup/ucd-snmp/vmstat_hpux.c              |    79 +-
 agent/mibgroup/ucd-snmp/vmstat_hpux.h              |     2 +-
 agent/mibgroup/ucd-snmp/vmstat_linux.c             |   163 +-
 agent/mibgroup/ucd-snmp/vmstat_linux.h             |     1 -
 agent/mibgroup/ucd-snmp/vmstat_netbsd1.c           |    77 +-
 agent/mibgroup/ucd-snmp/vmstat_netbsd1.h           |     2 -
 agent/mibgroup/ucd-snmp/vmstat_solaris2.c          |    75 +-
 agent/mibgroup/ucd-snmp/vmstat_solaris2.h          |     2 +-
 agent/mibgroup/ucd_snmp.h                          |     4 +-
 agent/mibgroup/udp-mib/data_access/udp_endpoint.h  |     9 +-
 .../udp-mib/data_access/udp_endpoint_common.c      |    37 +-
 .../udp-mib/data_access/udp_endpoint_freebsd4.c    |   194 -
 .../udp-mib/data_access/udp_endpoint_linux.c       |    31 +-
 .../udp-mib/data_access/udp_endpoint_netbsd.c      |   207 -
 .../udp-mib/data_access/udp_endpoint_openbsd.c     |   177 -
 .../udp-mib/data_access/udp_endpoint_solaris2.c    |     7 -
 .../udp-mib/udpEndpointTable/udpEndpointTable.c    |    34 +-
 .../udp-mib/udpEndpointTable/udpEndpointTable.h    |    18 +-
 .../udpEndpointTable/udpEndpointTable_constants.h  |     2 +-
 .../udpEndpointTable_data_access.c                 |    16 +-
 .../udpEndpointTable_data_access.h                 |     2 +-
 .../udpEndpointTable/udpEndpointTable_interface.c  |    50 +-
 .../udpEndpointTable/udpEndpointTable_interface.h  |     2 +-
 agent/mibgroup/util_funcs.c                        |   582 +-
 agent/mibgroup/util_funcs.h                        |    68 +-
 agent/mibgroup/util_funcs/Exit.c                   |    23 -
 agent/mibgroup/util_funcs/Exit.h                   |    17 -
 .../mibgroup/util_funcs/MIB_STATS_CACHE_TIMEOUT.h  |    12 -
 agent/mibgroup/util_funcs/get_pid_from_inode.c     |   186 -
 agent/mibgroup/util_funcs/get_pid_from_inode.h     |    34 -
 agent/mibgroup/util_funcs/header_generic.c         |    64 -
 agent/mibgroup/util_funcs/header_generic.h         |    18 -
 agent/mibgroup/util_funcs/header_simple_table.c    |   110 -
 agent/mibgroup/util_funcs/header_simple_table.h    |    19 -
 agent/mibgroup/util_funcs/restart.c                |    93 -
 agent/mibgroup/util_funcs/restart.h                |    15 -
 agent/mibgroup/utilities/execute.c                 |   180 +-
 agent/mibgroup/utilities/execute.h                 |     1 +
 agent/mibgroup/utilities/iquery.c                  |    38 +-
 agent/mibgroup/utilities/override.c                |    16 +-
 agent/mibgroup/winExtDLL.c                         |   399 +-
 agent/mibgroup/winExtDLL.h                         |     0
 agent/object_monitor.c                             |     2 +-
 agent/snmp_agent.c                                 |   570 +-
 agent/snmp_perl.c                                  |    58 +-
 agent/snmp_perl.h                                  |    15 -
 agent/snmp_vars.c                                  |    44 +-
 agent/snmpd.c                                      |   477 +-
 agent/snmpd.h                                      |     8 -
 apps/Makefile.depend                               |  1757 +-
 apps/Makefile.in                                   |   129 +-
 apps/agentxtrap.c                                  |   607 -
 apps/encode_keychange.c                            |    75 +-
 apps/snmpbulkget.c                                 |    21 +-
 apps/snmpbulkwalk.c                                |    19 +-
 apps/snmpdelta.c                                   |    31 +-
 apps/snmpdf.c                                      |    17 +-
 apps/snmpget.c                                     |    16 +-
 apps/snmpgetnext.c                                 |    15 +-
 apps/snmpnetstat/Makefile.depend                   |   349 +-
 apps/snmpnetstat/Makefile.in                       |     8 +-
 apps/snmpnetstat/if.c                              |    19 +-
 apps/snmpnetstat/inet.c                            |   214 +-
 apps/snmpnetstat/inet6.c                           |    48 +-
 apps/snmpnetstat/main.c                            |    68 +-
 apps/snmpnetstat/main.h                            |     3 -
 apps/snmpnetstat/netstat.h                         |     2 +-
 apps/snmpnetstat/route.c                           |    48 +-
 apps/snmpnetstat/winstub.c                         |     3 +
 apps/snmpnetstat/winstub.h                         |     2 -
 apps/snmpset.c                                     |    16 +-
 apps/snmpstatus.c                                  |    18 +-
 apps/snmptable.c                                   |    38 +-
 apps/snmptest.c                                    |   107 +-
 apps/snmptls.c                                     |   559 -
 apps/snmptranslate.c                               |    13 +-
 apps/snmptrap.c                                    |    67 +-
 apps/snmptrapd.c                                   |   619 +-
 apps/snmptrapd_auth.c                              |    25 +-
 apps/snmptrapd_ds.h                                |     7 +-
 apps/snmptrapd_handlers.c                          |   443 +-
 apps/snmptrapd_handlers.h                          |     2 -
 apps/snmptrapd_log.c                               |   199 +-
 apps/snmptrapd_sql.c                               |  1118 -
 apps/snmpusm.c                                     |    70 +-
 apps/snmpvacm.c                                    |    29 +-
 apps/snmpwalk.c                                    |    78 +-
 apps/sshtosnmp.c                                   |   233 -
 config.guess                                       |   253 +-
 config.sub                                         |   159 +-
 configure                                          | 69045 +++++++++++-------
 configure.ac                                       |   131 -
 configure.d/config_modules_agent                   |   814 -
 configure.d/config_modules_lib                     |   232 -
 configure.d/config_modules_security_modules        |    70 -
 configure.d/config_modules_transports              |   137 -
 configure.d/config_os_functions                    |   324 -
 configure.d/config_os_headers                      |   523 -
 configure.d/config_os_libs1                        |    95 -
 configure.d/config_os_libs2                        |   487 -
 configure.d/config_os_misc1                        |    24 -
 configure.d/config_os_misc2                        |   142 -
 configure.d/config_os_misc3                        |    20 -
 configure.d/config_os_misc4                        |   319 -
 configure.d/config_os_progs                        |   437 -
 configure.d/config_os_struct_members               |   754 -
 configure.d/config_project_ipv6_types              |   208 -
 configure.d/config_project_manual                  |   170 -
 configure.d/config_project_paths                   |   101 -
 configure.d/config_project_perl_python             |   379 -
 configure.d/config_project_types                   |    57 -
 configure.d/config_project_with_enable             |  1150 -
 configure.in                                       |  4799 ++
 debian/README.Debian                               |    32 +-
 debian/TODO                                        |    47 -
 debian/changelog                                   |   401 +-
 debian/clean                                       |    26 +
 debian/compat                                      |     2 +-
 debian/control                                     |   101 +-
 debian/fixman                                      |    61 +
 debian/libsnmp-base.docs                           |     2 +-
 debian/libsnmp-base.install                        |    10 +-
 debian/libsnmp-base.manpages                       |     6 -
 debian/libsnmp-dev.dirs                            |     1 -
 debian/libsnmp-dev.install                         |    23 +-
 debian/libsnmp-dev.manpages                        |     3 -
 debian/libsnmp-perl.examples                       |     1 -
 debian/libsnmp-perl.install                        |     2 +-
 debian/libsnmp-perl.preinst                        |    30 -
 ...thon-netsnmp.install => libsnmp-python.install} |     0
 debian/{libsnmp30.dirs => libsnmp15.dirs}          |     0
 debian/libsnmp15.docs                              |    10 +
 debian/libsnmp15.install                           |     4 +
 debian/{libsnmp30.postinst => libsnmp15.postinst}  |     0
 debian/libsnmp30.copyright                         |     0
 debian/libsnmp30.docs                              |     9 -
 debian/libsnmp30.install                           |     1 -
 debian/libsnmp30.lintian-overrides                 |     1 -
 debian/patches/02_statistics.README                |     1 +
 debian/patches/02_statistics.patch                 |    12 +-
 debian/patches/03_makefiles.README                 |     2 +
 debian/patches/03_makefiles.patch                  |   128 +-
 debian/patches/05_searchdirs.README                |     1 +
 debian/patches/05_searchdirs.patch                 |     3 -
 debian/patches/06_extramibs.README                 |     1 +
 debian/patches/06_extramibs.patch                  |     2 -
 debian/patches/07_docfiles.README                  |     1 +
 debian/patches/07_docfiles.patch                   |     2 -
 debian/patches/08_defaultconfig.README             |     1 +
 debian/patches/08_defaultconfig.patch              |    23 +
 debian/patches/25_duplicate_iftable.README         |    11 +
 debian/patches/25_duplicate_iftable.patch          |    99 +
 debian/patches/26_kfreebsd.README                  |     1 +
 debian/patches/26_kfreebsd.patch                   |   117 +-
 debian/patches/27_kfreebsd_bug625985.patch         |    18 -
 debian/patches/32_mnttab_path.README               |     1 +
 debian/patches/32_mnttab_path.patch                |    31 +
 debian/patches/44_nlist_kvm.README                 |     1 +
 debian/patches/44_nlist_kvm.patch                  |    12 +
 debian/patches/56_manpage.README                   |     2 +
 debian/patches/56_manpage.patch                    |   171 +
 debian/patches/60_libsensors_api.README            |     1 +
 debian/patches/60_libsensors_api.patch             |    45 +-
 .../61_vacm_missing_dependency_check.README        |     2 +
 .../patches/61_vacm_missing_dependency_check.patch |    80 +-
 debian/patches/62_add_lib_cflags.README            |     2 +
 debian/patches/62_add_lib_cflags.patch             |    34 +-
 debian/patches/64_missing_lib.patch                |    45 -
 debian/patches/CVE-2012-2141.patch                 |    31 +
 debian/patches/TrapReceiver.patch                  |    31 -
 debian/patches/add_rocommunity6.patch              |    13 -
 debian/patches/after_RFC5378                       |    43 -
 debian/patches/agentx-crash.patch                  |    62 -
 debian/patches/dropped_25_duplicate_iftable.patch  |   115 -
 debian/patches/dropped_44_nlist_kvm.patch          |    17 -
 debian/patches/fix_logging_option.patch            |    23 -
 debian/patches/fix_man_error.patch                 |    25 -
 .../patches/fix_manpage-has-errors-from-man.patch  |    21 -
 .../fix_manpage-has-errors_break_line.patch        |    43 -
 debian/patches/fix_regular_expression.patch        |    46 -
 debian/patches/fix_snmpcheck_perl_path.patch       |    19 -
 debian/patches/fix_spelling_error.patch            |    52 -
 debian/patches/fix_typo_in_snmpd.conf.patch        |    19 -
 debian/patches/ifmib.patch                         |    62 -
 debian/patches/net-snmp-config_multi-arch.patch    |    32 -
 debian/patches/series                              |    23 +-
 debian/patches/snmptranslate.1.patch               |    60 -
 debian/po/ca.po                                    |    52 -
 debian/po/cs.po                                    |    13 +-
 debian/po/da.po                                    |    13 +-
 debian/po/de.po                                    |    13 +-
 debian/po/es.po                                    |    13 +-
 debian/po/eu.po                                    |    13 +-
 debian/po/fi.po                                    |    24 +-
 debian/po/fr.po                                    |    23 +-
 debian/po/gl.po                                    |    13 +-
 debian/po/id.po                                    |    43 -
 debian/po/it.po                                    |    13 +-
 debian/po/ja.po                                    |    92 +-
 debian/po/ko.po                                    |    52 -
 debian/po/nl.po                                    |    19 +-
 debian/po/pl.po                                    |    54 -
 debian/po/pt.po                                    |    17 +-
 debian/po/pt_BR.po                                 |    13 +-
 debian/po/ro.po                                    |     5 +-
 debian/po/ru.po                                    |    17 +-
 debian/po/sk.po                                    |    50 -
 debian/po/sr.po                                    |    51 -
 debian/po/sr at latin.po                              |    51 -
 debian/po/sv.po                                    |    21 +-
 debian/po/ta.po                                    |    13 +-
 debian/po/templates.pot                            |    13 +-
 debian/po/vi.po                                    |    15 +-
 debian/rules                                       |   132 +-
 debian/snmp.conf                                   |     3 +-
 debian/snmp.dirs                                   |     1 +
 debian/snmp.install                                |    14 +-
 debian/snmp.manpages                               |     4 -
 debian/snmp.postinst                               |    34 -
 debian/snmp.preinst                                |    21 +-
 debian/snmp.prerm                                  |    21 -
 debian/snmpd.default                               |    15 +-
 debian/snmpd.dirs                                  |     3 +-
 debian/snmpd.init                                  |    76 +-
 debian/snmpd.install                               |    14 +-
 debian/snmpd.lintian-overrides                     |     2 +
 debian/snmpd.manpages                              |     2 -
 debian/snmpd.postinst                              |    61 +-
 debian/snmpd.postrm                                |     4 +-
 debian/snmptrapd.conf                              |    24 -
 debian/snmptrapd.default                           |     9 -
 debian/snmptrapd.dirs                              |     1 -
 debian/snmptrapd.init                              |    81 -
 debian/snmptrapd.install                           |     5 -
 debian/snmptrapd.lintian-overrides                 |     1 -
 debian/snmptrapd.manpages                          |     2 -
 debian/snmptrapd.postrm                            |    12 -
 debian/tkmib.install                               |     4 +-
 debian/upstream/signing-key.asc                    |   161 -
 dist/Makefile                                      |   133 -
 dist/README.build-scripts                          |   108 -
 dist/RELEASE-INSTRUCTIONS                          |  1001 -
 dist/autoconf-version                              |     1 -
 dist/check-api-change                              |    54 -
 dist/cvsshow                                       |    87 +-
 dist/cvsup                                         |     7 +-
 dist/extractnews                                   |    62 +-
 dist/generation-scripts/gen-security-headers.in    |    29 -
 dist/generation-scripts/gen-transport-headers.in   |    27 -
 dist/generation-scripts/gen-variables              |    10 -
 dist/generation-scripts/gen-variables.in           |    10 -
 dist/makerelease                                   |   355 +
 dist/makerelease.xml                               |   537 -
 dist/net-snmp-solaris-build/DEVENV                 |    44 -
 dist/net-snmp-solaris-build/README                 |    19 -
 dist/net-snmp-solaris-build/buildpackage-solaris   |   182 -
 dist/net-snmp-solaris-build/elfdepend.sh           |    87 -
 dist/net-snmp.spec                                 |    28 +-
 dist/nsb-config                                    |    82 -
 dist/nsb-functions                                 |   508 -
 dist/nsb-nightly                                   |   188 -
 dist/nsb-package                                   |   137 -
 dist/nsb-platform                                  |    27 -
 dist/patme                                         |   351 -
 dist/release                                       |     8 -
 dist/run-autoconf                                  |    32 -
 dist/schema-snmptrapd.sql                          |    31 -
 dist/svnup                                         |   130 -
 doxygen.conf                                       |     6 +-
 include/net-snmp/agent/agent_handler.h             |    20 +-
 include/net-snmp/agent/agent_read_config.h         |     9 +-
 include/net-snmp/agent/agent_registry.h            |    47 +-
 include/net-snmp/agent/agent_sysORTable.h          |    28 -
 include/net-snmp/agent/agent_trap.h                |    12 +-
 include/net-snmp/agent/all_helpers.h               |     1 -
 include/net-snmp/agent/auto_nlist.h                |     4 +-
 include/net-snmp/agent/baby_steps.h                |    10 +-
 include/net-snmp/agent/cache_handler.h             |    25 +-
 include/net-snmp/agent/ds_agent.h                  |    15 +-
 include/net-snmp/agent/hardware/cpu.h              |    57 +-
 include/net-snmp/agent/hardware/fsys.h             |   109 -
 include/net-snmp/agent/hardware/sensors.h          |    48 -
 include/net-snmp/agent/instance.h                  |   217 +-
 include/net-snmp/agent/mfd.h                       |     2 +-
 include/net-snmp/agent/object_monitor.h            |     2 +-
 include/net-snmp/agent/old_api.h                   |     2 +-
 include/net-snmp/agent/snmp_agent.h                |    14 +-
 include/net-snmp/agent/snmp_get_statistic.h        |    20 -
 include/net-snmp/agent/snmp_vars.h                 |    17 -
 include/net-snmp/agent/stash_cache.h               |     1 -
 include/net-snmp/agent/sysORTable.h                |    62 -
 include/net-snmp/agent/table.h                     |    31 +-
 include/net-snmp/agent/table_array.h               |     2 +-
 include/net-snmp/agent/table_container.h           |     6 +-
 include/net-snmp/agent/table_data.h                |     1 -
 include/net-snmp/agent/table_dataset.h             |    23 +-
 include/net-snmp/agent/table_iterator.h            |    14 +-
 include/net-snmp/agent/table_tdata.h               |     9 +-
 include/net-snmp/agent/watcher.h                   |    77 +-
 include/net-snmp/config_api.h                      |    82 +-
 include/net-snmp/data_access/arp.h                 |    55 +-
 include/net-snmp/data_access/defaultrouter.h       |   114 -
 include/net-snmp/data_access/interface.h           |    26 +-
 include/net-snmp/data_access/ip_scalars.h          |     4 +-
 include/net-snmp/data_access/ipaddress.h           |    21 +-
 include/net-snmp/data_access/ipstats.h             |    68 +-
 include/net-snmp/data_access/route.h               |     4 +-
 include/net-snmp/data_access/scopezone.h           |    68 -
 include/net-snmp/data_access/swinst.h              |    77 -
 include/net-snmp/data_access/swrun.h               |   104 -
 include/net-snmp/data_access/systemstats.h         |    27 +-
 include/net-snmp/data_access/tcpConn.h             |     2 +-
 include/net-snmp/data_access/udp_endpoint.h        |     3 +-
 include/net-snmp/library/asn1.h                    |    31 +-
 include/net-snmp/library/callback.h                |    10 -
 include/net-snmp/library/cert_util.h               |   226 -
 include/net-snmp/library/check_varbind.h           |    10 -
 include/net-snmp/library/cmu_compat.h              |   292 +
 include/net-snmp/library/container.h               |   254 +-
 include/net-snmp/library/container_binary_array.h  |     5 +-
 include/net-snmp/library/container_list_ssll.h     |     3 +-
 include/net-snmp/library/container_null.h          |     1 -
 include/net-snmp/library/data_list.h               |     9 +-
 include/net-snmp/library/default_store.h           |    69 +-
 include/net-snmp/library/dir_utils.h               |    63 -
 include/net-snmp/library/fd_event_manager.h        |    13 -
 include/net-snmp/library/file_utils.h              |    35 +-
 include/net-snmp/library/getopt.h                  |     9 -
 include/net-snmp/library/int64.h                   |     5 -
 include/net-snmp/library/keytools.h                |    10 +-
 include/net-snmp/library/large_fd_set.h            |   171 -
 include/net-snmp/library/lcd_time.h                |     8 +-
 include/net-snmp/library/libsnmp.h                 |    16 +-
 include/net-snmp/library/md5.h                     |    10 +-
 include/net-snmp/library/mib.h                     |   115 +-
 include/net-snmp/library/mt_support.h              |     4 -
 include/net-snmp/library/oid.h                     |    18 -
 include/net-snmp/library/oid_stash.h               |    14 +-
 include/net-snmp/library/openssl_aes.h             |   140 -
 include/net-snmp/library/openssl_des.h             |   236 -
 include/net-snmp/library/openssl_md5.h             |   116 -
 include/net-snmp/library/openssl_sha.h             |   199 -
 include/net-snmp/library/parse.h                   |    69 +-
 include/net-snmp/library/read_config.h             |    95 +-
 include/net-snmp/library/scapi.h                   |    15 +-
 include/net-snmp/library/snmp-tc.h                 |     9 +-
 include/net-snmp/library/snmp.h                    |    18 +-
 include/net-snmp/library/snmpAAL5PVCDomain.h       |     4 -
 include/net-snmp/library/snmpAliasDomain.h         |    32 -
 include/net-snmp/library/snmpCallbackDomain.h      |     3 -
 include/net-snmp/library/snmpDTLSUDPDomain.h       |    41 -
 include/net-snmp/library/snmpIPXDomain.h           |     3 -
 include/net-snmp/library/snmpIPv4BaseDomain.h      |    37 -
 include/net-snmp/library/snmpIPv6BaseDomain.h      |    34 -
 include/net-snmp/library/snmpSSHDomain.h           |    41 -
 include/net-snmp/library/snmpSTDDomain.h           |     5 +-
 include/net-snmp/library/snmpSocketBaseDomain.h    |    25 -
 include/net-snmp/library/snmpTCPBaseDomain.h       |    22 -
 include/net-snmp/library/snmpTCPDomain.h           |    20 +-
 include/net-snmp/library/snmpTCPIPv6Domain.h       |    15 +-
 include/net-snmp/library/snmpTLSBaseDomain.h       |    83 -
 include/net-snmp/library/snmpTLSTCPDomain.h        |    39 -
 include/net-snmp/library/snmpUDPBaseDomain.h       |    50 -
 include/net-snmp/library/snmpUDPDomain.h           |    37 +-
 include/net-snmp/library/snmpUDPIPv4BaseDomain.h   |    44 -
 include/net-snmp/library/snmpUDPIPv6Domain.h       |    26 +-
 include/net-snmp/library/snmpUnixDomain.h          |    26 +-
 include/net-snmp/library/snmp_alarm.h              |    19 +-
 include/net-snmp/library/snmp_api.h                |   648 +-
 include/net-snmp/library/snmp_assert.h             |    95 +-
 include/net-snmp/library/snmp_client.h             |   108 +-
 include/net-snmp/library/snmp_debug.h              |   158 +-
 include/net-snmp/library/snmp_enum.h               |    26 +-
 include/net-snmp/library/snmp_impl.h               |    13 +-
 include/net-snmp/library/snmp_logging.h            |    71 +-
 include/net-snmp/library/snmp_openssl.h            |    46 -
 include/net-snmp/library/snmp_parse_args.h         |    73 -
 include/net-snmp/library/snmp_secmod.h             |    20 +-
 include/net-snmp/library/snmp_service.h            |     6 +-
 include/net-snmp/library/snmp_transport.h          |   141 +-
 include/net-snmp/library/snmpksm.h                 |     6 +-
 include/net-snmp/library/snmptsm.h                 |    33 -
 include/net-snmp/library/snmpusm.h                 |    40 +-
 include/net-snmp/library/snmpv3.h                  |    16 +-
 include/net-snmp/library/system.h                  |    88 +-
 include/net-snmp/library/testing.h                 |    16 -
 include/net-snmp/library/tools.h                   |   115 +-
 include/net-snmp/library/types.h                   |    70 -
 include/net-snmp/library/ucd_compat.h              |    12 -
 include/net-snmp/library/vacm.h                    |    35 +-
 include/net-snmp/library/winpipe.h                 |     1 -
 include/net-snmp/library/winservice.h              |    11 +
 include/net-snmp/mib_api.h                         |    97 +-
 include/net-snmp/net-snmp-config.h.in              |  1186 +-
 include/net-snmp/net-snmp-features.h               |    32 -
 include/net-snmp/net-snmp-includes.h               |    11 +-
 include/net-snmp/openssl_md5.h                     |   116 -
 include/net-snmp/output_api.h                      |   146 +-
 include/net-snmp/pdu_api.h                         |    34 +-
 include/net-snmp/session_api.h                     |   270 +-
 include/net-snmp/system/aix.h                      |     3 -
 include/net-snmp/system/cygwin.h                   |     1 +
 include/net-snmp/system/darwin.h                   |     1 -
 include/net-snmp/system/darwin10.h                 |   148 -
 include/net-snmp/system/darwin11.h                 |   161 -
 include/net-snmp/system/darwin12.h                 |   161 -
 include/net-snmp/system/darwin7.h                  |     1 -
 include/net-snmp/system/darwin8.h                  |     9 +-
 include/net-snmp/system/darwin9.h                  |    35 +-
 include/net-snmp/system/dragonfly.h                |     1 -
 include/net-snmp/system/freebsd.h                  |     2 +
 include/net-snmp/system/freebsd10.h                |     3 -
 include/net-snmp/system/freebsd5.h                 |     2 +-
 include/net-snmp/system/freebsd8.h                 |     3 -
 include/net-snmp/system/freebsd9.h                 |     3 -
 include/net-snmp/system/generic.h                  |     4 -
 include/net-snmp/system/hpux.h                     |    10 -
 include/net-snmp/system/irix.h                     |     2 +-
 include/net-snmp/system/kfreebsd.h                 |     9 -
 include/net-snmp/system/mingw32.h                  |    23 +-
 include/net-snmp/system/netbsd.h                   |    35 +-
 include/net-snmp/system/nto-qnx6.h                 |    35 -
 include/net-snmp/system/openbsd.h                  |     3 +-
 include/net-snmp/system/openbsd4.h                 |     3 -
 include/net-snmp/system/openbsd5.h                 |     3 -
 include/net-snmp/system/solaris.h                  |     9 +-
 include/net-snmp/system/svr5.h                     |     8 +-
 include/net-snmp/types.h                           |   545 +-
 include/net-snmp/varbind_api.h                     |    95 +-
 include/net-snmp/version.h                         |     1 -
 install-sh                                         |   676 +-
 local/FAQ2HTML                                     |     2 +-
 local/Makefile.in                                  |    25 +-
 local/Version-Munge.pl                             |    27 +-
 local/certgen-test.pl                              |    66 -
 local/gittools/shell-functions                     |   443 -
 local/html-add-header-footer.pl                    |     2 +-
 local/html-textfile-fix.pl                         |     2 -
 local/mib2c                                        |    35 +-
 local/mib2c-conf.d/details-enums.m2i               |     6 +-
 local/mib2c-conf.d/details-node.m2i                |     6 +-
 local/mib2c-conf.d/details-table.m2i               |     6 +-
 local/mib2c-conf.d/generic-ctx-copy.m2i            |     6 +-
 local/mib2c-conf.d/generic-ctx-get.m2i             |    10 +-
 local/mib2c-conf.d/generic-ctx-set.m2i             |     6 +-
 local/mib2c-conf.d/generic-data-allocate.m2i       |     6 +-
 local/mib2c-conf.d/generic-data-context.m2i        |     6 +-
 local/mib2c-conf.d/generic-get-U64.m2i             |    14 -
 local/mib2c-conf.d/generic-get-char.m2i            |     6 +-
 local/mib2c-conf.d/generic-get-decl-bot.m2i        |     6 +-
 local/mib2c-conf.d/generic-get-decl.m2i            |     6 +-
 local/mib2c-conf.d/generic-get-long.m2i            |     6 +-
 local/mib2c-conf.d/generic-get-oid.m2i             |     6 +-
 local/mib2c-conf.d/generic-header-bottom.m2i       |     6 +-
 local/mib2c-conf.d/generic-header-top.m2i          |     6 +-
 local/mib2c-conf.d/generic-source-includes.m2i     |     7 +-
 local/mib2c-conf.d/generic-table-constants.m2c     |     8 +-
 local/mib2c-conf.d/generic-table-enums.m2c         |     8 +-
 .../generic-table-indexes-from-oid.m2i             |     6 +-
 local/mib2c-conf.d/generic-table-indexes-set.m2i   |     6 +-
 .../mib2c-conf.d/generic-table-indexes-to-oid.m2i  |    11 +-
 .../generic-table-indexes-varbind-setup.m2i        |     6 +-
 local/mib2c-conf.d/generic-table-indexes.m2i       |     6 +-
 local/mib2c-conf.d/generic-table-oids.m2c          |     8 +-
 local/mib2c-conf.d/generic-value-map-func.m2i      |     6 +-
 local/mib2c-conf.d/generic-value-map-reverse.m2i   |     6 +-
 local/mib2c-conf.d/generic-value-map.m2i           |     6 +-
 local/mib2c-conf.d/m2c_setup_enum.m2i              |     6 +-
 local/mib2c-conf.d/m2c_setup_node.m2i              |     2 +-
 local/mib2c-conf.d/m2c_setup_table.m2i             |     6 +-
 local/mib2c-conf.d/m2c_table_save_defaults.m2i     |     2 +-
 .../mfd-access-container-cached-defines.m2i        |     6 +-
 .../mfd-access-unsorted-external-defines.m2i       |     6 +-
 local/mib2c-conf.d/mfd-data-access.m2c             |    10 +-
 local/mib2c-conf.d/mfd-data-get.m2c                |    14 +-
 local/mib2c-conf.d/mfd-data-set.m2c                |    14 +-
 local/mib2c-conf.d/mfd-interactive-setup.m2c       |    15 +-
 local/mib2c-conf.d/mfd-interface.m2c               |   160 +-
 local/mib2c-conf.d/mfd-makefile.m2m                |     6 +-
 local/mib2c-conf.d/mfd-persistence.m2i             |     8 +-
 local/mib2c-conf.d/mfd-readme.m2c                  |     6 +-
 local/mib2c-conf.d/mfd-top.m2c                     |    22 +-
 local/mib2c-conf.d/node-get.m2i                    |     6 +-
 local/mib2c-conf.d/node-set.m2i                    |     6 +-
 local/mib2c-conf.d/node-storage.m2i                |     6 +-
 local/mib2c-conf.d/node-validate.m2i               |     6 +-
 local/mib2c-conf.d/node-varbind-validate.m2i       |     6 +-
 local/mib2c-conf.d/parent-dependencies.m2i         |     6 +-
 local/mib2c-conf.d/parent-set.m2i                  |     6 +-
 local/mib2c-conf.d/subagent.m2c                    |    22 +-
 local/mib2c-conf.d/syntax-COUNTER64-get.m2i        |     6 +-
 local/mib2c-conf.d/syntax-DateAndTime-get.m2i      |     6 +-
 local/mib2c-conf.d/syntax-InetAddress-get.m2i      |     6 +-
 local/mib2c-conf.d/syntax-InetAddress-set.m2i      |     6 +-
 local/mib2c-conf.d/syntax-InetAddressType-get.m2i  |     6 +-
 local/mib2c-conf.d/syntax-InetAddressType-set.m2i  |     6 +-
 .../mib2c-conf.d/syntax-RowStatus-dependencies.m2i |     6 +-
 local/mib2c-conf.d/syntax-RowStatus-get.m2i        |     6 +-
 .../syntax-RowStatus-varbind-validate.m2i          |     6 +-
 .../syntax-StorageType-dependencies.m2i            |     6 +-
 local/mib2c-conf.d/syntax-TestAndIncr-get.m2i      |     6 +-
 local/mib2c-update                                 |    18 +-
 local/mib2c.access_functions.conf                  |    10 +-
 local/mib2c.array-user.conf                        |    12 +-
 local/mib2c.check_values.conf                      |     4 +-
 local/mib2c.check_values_local.conf                |     4 +-
 local/mib2c.column_defines.conf                    |     2 +-
 local/mib2c.column_enums.conf                      |     2 +-
 local/mib2c.column_storage.conf                    |     6 +-
 local/mib2c.conf                                   |   388 +-
 local/mib2c.container.conf                         |   365 +-
 local/mib2c.create-dataset.conf                    |     9 +-
 local/mib2c.emulation.conf                         |     2 +-
 local/mib2c.int_watch.conf                         |    15 +-
 local/mib2c.iterate.conf                           |    68 +-
 local/mib2c.iterate_access.conf                    |    27 +-
 local/mib2c.mfd.conf                               |     6 +-
 local/mib2c.notify.conf                            |    15 +-
 local/mib2c.old-api.conf                           |    16 +-
 local/mib2c.raw-table.conf                         |   612 -
 local/mib2c.row.conf                               |    20 +-
 local/mib2c.scalar.conf                            |     8 +-
 local/mib2c.table_data.conf                        |   139 +-
 local/minimalist/feature-check                     |   126 -
 local/minimalist/feature-makedocs                  |   221 -
 local/minimalist/feature-remove                    |   128 -
 local/minimalist/find-unused-code                  |   117 -
 local/minimalist/ignore.regexp                     |     4 -
 local/minimalist/remove-unneeded-modules           |   130 -
 local/minimalist/removeifdefcode.pl                |   333 -
 local/minimalist/sizetests                         |   359 -
 local/net-snmp-cert                                |  2690 -
 local/net-snmp-cert.conf                           |    72 -
 local/pass_persisttest                             |    77 +-
 local/passtest                                     |    85 +-
 local/passtest.pl                                  |     2 +-
 local/snmp-bridge-mib                              |  1170 -
 local/snmpcheck.def                                |     2 +-
 local/tkmib                                        |     8 +-
 ltmain.sh                                          | 14751 ++--
 m4/ac_add_search_path.m4                           |    13 -
 m4/ac_msg_cache.m4                                 |    24 -
 m4/ac_msg_module_dbg.m4                            |     7 -
 m4/ac_prompt_user.m4                               |    52 -
 m4/libtool.m4                                      |  7831 ---
 m4/ltoptions.m4                                    |   369 -
 m4/ltsugar.m4                                      |   123 -
 m4/ltversion.m4                                    |    23 -
 m4/lt~obsolete.m4                                  |    98 -
 m4/netsnmp_arg.m4                                  |    27 -
 m4/netsnmp_search_libs.m4                          |    35 -
 man/Makefile.in                                    |   196 +-
 man/add_mibdir.3                                   |     1 +
 man/add_module_replacement.3                       |     1 +
 man/agentxtrap.1.def                               |   110 -
 man/default_store.3.bot                            |     4 +-
 man/default_store.3.top                            |     1 +
 man/encode_keychange.1.def                         |    13 +-
 man/fixproc.1.def                                  |     7 +-
 man/get_module_node.3                              |     1 +
 man/init_mib.3                                     |     1 +
 man/init_mib_internals.3                           |     1 +
 man/make_index.pl                                  |     1 -
 man/man_sections.txt                               |   127 +-
 man/mib2c-update.1.def                             |    24 +-
 man/mib2c.1.def                                    |     9 +-
 man/mib2c.conf.5.in                                |     7 +-
 man/mib_api.3.def                                  |   322 +
 man/net-snmp-config.1.def                          |    19 +-
 man/net-snmp-create-v3-user.1.def                  |    28 -
 man/netsnmp_agent.3                                |    33 +
 man/netsnmp_agent_api.3.def                        |   132 -
 man/netsnmp_agent_registry.3                       |   278 +
 man/netsnmp_agent_trap.3                           |   317 +
 man/netsnmp_asn1_packet_parse.3                    |   265 +
 man/netsnmp_baby_steps.3                           |    45 +
 man/netsnmp_bulk_to_next.3                         |    52 +
 man/netsnmp_cache_handler.3                        |   225 +
 man/netsnmp_callback.3                             |   205 +
 man/netsnmp_config_api.3.def                       |   373 -
 man/netsnmp_container.3                            |    18 +
 man/netsnmp_data_list.3                            |   269 +
 man/netsnmp_debug.3                                |   106 +
 man/netsnmp_default_store.3                        |   250 +
 man/netsnmp_example_scalar_int.3                   |    26 +
 man/netsnmp_handler.3                              |   517 +
 man/netsnmp_instance.3                             |   191 +
 man/netsnmp_iterator_info_s.3                      |    76 +
 man/netsnmp_leaf.3                                 |    44 +
 man/netsnmp_library.3                              |   646 +
 man/netsnmp_mib_api.3.def                          |   310 -
 man/netsnmp_mib_handler_methods.3                  |    19 +
 man/netsnmp_mib_maintenance.3                      |    85 +
 man/netsnmp_mib_utilities.3                        |  1283 +
 man/netsnmp_mode_end_call.3                        |    69 +
 man/netsnmp_multiplexer.3                          |    53 +
 man/netsnmp_netsnmp_agent_request_info_s.3         |    48 +
 man/netsnmp_netsnmp_column_info_t.3                |    57 +
 man/netsnmp_netsnmp_data_list_s.3                  |    52 +
 man/netsnmp_netsnmp_handler_registration_s.3       |   107 +
 man/netsnmp_netsnmp_iterator_info_s.3              |   111 +
 man/netsnmp_netsnmp_mib_handler_access_methods.3   |    20 +
 man/netsnmp_netsnmp_mib_handler_methods.3          |    20 +
 man/netsnmp_netsnmp_mib_handler_s.3                |    74 +
 man/netsnmp_netsnmp_request_info_s.3               |   115 +
 man/netsnmp_netsnmp_table_registration_info_s.3    |    73 +
 man/netsnmp_netsnmp_table_request_info_s.3         |    64 +
 man/netsnmp_oid_stash.3                            |   210 +
 man/netsnmp_old_api.3                              |    60 +
 man/netsnmp_pdu_api.3.def                          |    30 -
 man/netsnmp_read_config.3                          |   356 +
 man/netsnmp_read_only.3                            |    43 +
 man/netsnmp_row_merge.3                            |   101 +
 man/netsnmp_scalar.3                               |   102 +
 man/netsnmp_scalar_group_group.3                   |    27 +
 man/netsnmp_serialize.3                            |    58 +
 man/netsnmp_sess_api.3.def                         |   235 -
 man/netsnmp_session_api.3.def                      |   281 -
 man/netsnmp_set_data.3                             |    61 +
 man/netsnmp_snmp_agent.3                           |   571 +
 man/netsnmp_snmp_alarm.3                           |    43 +
 man/netsnmp_snmp_client.3                          |   137 +
 man/netsnmp_snmp_logging.3                         |   246 +
 man/netsnmp_snmp_pdu.3                             |   292 +
 man/netsnmp_snmp_session.3                         |   440 +
 man/netsnmp_stash_cache.3                          |    94 +
 man/netsnmp_stash_to_next.3                        |    34 +
 man/netsnmp_table.3                                |   234 +
 man/netsnmp_table_array.3                          |    85 +
 man/netsnmp_table_container.3                      |   117 +
 man/netsnmp_table_data.3                           |   283 +
 man/netsnmp_table_dataset.3                        |   299 +
 man/netsnmp_table_generic.3                        |    44 +
 man/netsnmp_table_indexes.3                        |    83 +
 man/netsnmp_table_iterator.3                       |   192 +
 man/netsnmp_table_iterator.h.3                     |   111 +
 man/netsnmp_table_maintenance.3                    |   116 +
 man/netsnmp_table_rows.3                           |    94 +
 man/netsnmp_tdata.3                                |   287 +
 man/netsnmp_trap_api.3.def                         |    58 -
 man/netsnmp_util.3                                 |   503 +
 man/netsnmp_utilities.3                            |    74 +
 man/netsnmp_varbind_api.3.def                      |   216 -
 man/netsnmp_variable_list.3                        |   132 +
 man/netsnmp_watcher.3                              |    75 +
 man/print_description.3                            |     1 +
 man/print_mib.3                                    |     1 +
 man/print_objid.3                                  |     1 +
 man/print_value.3                                  |     1 +
 man/print_variable.3                               |     1 +
 man/read_all_mibs.3                                |     1 +
 man/read_config.3.def                              |   293 +
 man/read_mib.3                                     |     1 +
 man/read_module.3                                  |     1 +
 man/read_module_node.3                             |     1 +
 man/read_objid.3                                   |     1 +
 man/shutdown_mib.3                                 |     1 +
 man/snmp-bridge-mib.1                              |   208 -
 man/snmp.conf.5.def                                |   165 +-
 man/snmp_agent_api.3.def                           |   133 +
 man/snmp_alarm.3.def                               |     9 +-
 man/snmp_api.3.def                                 |   238 +
 man/snmp_api_errstring.3                           |     1 +
 man/snmp_async_send.3                              |     1 -
 man/snmp_close.3                                   |     1 +
 man/snmp_config.5.def                              |    65 +-
 man/snmp_error.3                                   |     1 +
 man/snmp_free_pdu.3                                |     1 +
 man/snmp_open.3                                    |     1 +
 man/snmp_perror.3                                  |     1 +
 man/snmp_read.3                                    |     1 +
 man/snmp_select_info.3                             |     1 +
 man/snmp_send.3                                    |     1 +
 man/snmp_sess_api.3.def                            |   230 +
 man/snmp_sess_async_send.3                         |     1 +
 man/snmp_sess_close.3                              |     1 +
 man/snmp_sess_error.3                              |     1 +
 man/snmp_sess_init.3                               |     1 +
 man/snmp_sess_open.3                               |     1 +
 man/snmp_sess_perror.3                             |     1 +
 man/snmp_sess_read.3                               |     1 +
 man/snmp_sess_select_info.3                        |     1 +
 man/snmp_sess_send.3                               |     1 +
 man/snmp_sess_session.3                            |     1 +
 man/snmp_sess_synch_response.3                     |     1 -
 man/snmp_sess_timeout.3                            |     1 +
 man/snmp_set_mib_warnings.3                        |     1 +
 man/snmp_set_save_descriptions.3                   |     1 +
 man/snmp_synch_response.3                          |     1 -
 man/snmp_timeout.3                                 |     1 +
 man/snmp_trap_api.3.def                            |    57 +
 man/snmpbulkget.1.def                              |    36 +-
 man/snmpbulkwalk.1.def                             |    29 +-
 man/snmpcmd.1.def                                  |   525 +-
 man/snmpconf.1.def                                 |    41 +-
 man/snmpd.8.def                                    |   154 +-
 man/snmpd.conf.5.def                               |   577 +-
 man/snmpd.examples.5.def                           |    59 +-
 man/snmpd.internal.5.def                           |     5 +-
 man/snmpdelta.1.def                                |    52 +-
 man/snmpdf.1.def                                   |    17 +-
 man/snmpget.1.def                                  |    31 +-
 man/snmpgetnext.1.def                              |    35 +-
 man/snmpnetstat.1.def                              |    30 +-
 man/snmpset.1.def                                  |    17 +-
 man/snmpstatus.1.def                               |    11 +-
 man/snmptable.1.def                                |    45 +-
 man/snmptest.1.def                                 |    31 +-
 man/snmptranslate.1.def                            |    85 +-
 man/snmptrap.1.def                                 |    29 +-
 man/snmptrapd.8.def                                |    88 +-
 man/snmptrapd.conf.5.def                           |    50 +-
 man/snmpusm.1.def                                  |    69 +-
 man/snmpvacm.1.def                                 |    33 +-
 man/snmpwalk.1.def                                 |    45 +-
 man/tkmib.1.def                                    |     1 +
 man/traptoemail.1.def                              |     1 +
 man/variables.5.def                                |   166 +-
 mibs/AGENTX-MIB.txt                                |   527 -
 mibs/BRIDGE-MIB.txt                                |  1472 -
 mibs/DISMAN-EVENT-MIB.txt                          |  1882 -
 mibs/DISMAN-EXPRESSION-MIB.txt                     |  1182 -
 mibs/DISMAN-NSLOOKUP-MIB.txt                       |   509 -
 mibs/DISMAN-PING-MIB.txt                           |  1561 -
 mibs/DISMAN-SCHEDULE-MIB.txt                       |   699 -
 mibs/DISMAN-SCRIPT-MIB.txt                         |  1764 -
 mibs/DISMAN-TRACEROUTE-MIB.txt                     |  1850 -
 mibs/EtherLike-MIB.txt                             |  1862 -
 mibs/HCNUM-TC.txt                                  |   118 -
 mibs/HOST-RESOURCES-MIB.txt                        |  1540 -
 mibs/HOST-RESOURCES-TYPES.txt                      |   389 -
 mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt           |   123 -
 mibs/IANA-LANGUAGE-MIB.txt                         |   123 -
 mibs/IANA-RTPROTO-MIB.txt                          |    91 -
 mibs/IANAifType-MIB.txt                            |   638 -
 mibs/IF-INVERTED-STACK-MIB.txt                     |   149 -
 mibs/IF-MIB.txt                                    |  1814 -
 mibs/INET-ADDRESS-MIB.txt                          |   402 -
 mibs/IP-FORWARD-MIB.txt                            |  1277 -
 mibs/IP-MIB.txt                                    |  4993 --
 mibs/IPV6-FLOW-LABEL-MIB.txt                       |    58 -
 mibs/IPV6-ICMP-MIB.txt                             |   529 -
 mibs/IPV6-MIB.txt                                  |  1443 -
 mibs/IPV6-TC.txt                                   |    67 -
 mibs/IPV6-TCP-MIB.txt                              |   211 -
 mibs/IPV6-UDP-MIB.txt                              |   141 -
 mibs/MTA-MIB.txt                                   |  1226 -
 mibs/Makefile.in                                   |     4 +-
 mibs/Makefile.mib                                  |    61 +-
 mibs/NET-SNMP-PERIODIC-NOTIFY-MIB.txt              |    83 -
 mibs/NET-SNMP-TC.txt                               |     5 -
 mibs/NETWORK-SERVICES-MIB.txt                      |   626 -
 mibs/NOTIFICATION-LOG-MIB.txt                      |   753 -
 mibs/RFC1155-SMI.txt                               |   119 -
 mibs/RFC1213-MIB.txt                               |  2613 -
 mibs/RMON-MIB.txt                                  |  3980 --
 mibs/SCTP-MIB.txt                                  |  1342 -
 mibs/SMUX-MIB.txt                                  |   160 -
 mibs/SNMP-COMMUNITY-MIB.txt                        |   429 -
 mibs/SNMP-FRAMEWORK-MIB.txt                        |   526 -
 mibs/SNMP-MPD-MIB.txt                              |   145 -
 mibs/SNMP-NOTIFICATION-MIB.txt                     |   589 -
 mibs/SNMP-PROXY-MIB.txt                            |   294 -
 mibs/SNMP-TARGET-MIB.txt                           |   660 -
 mibs/SNMP-TLS-TM-MIB.txt                           |  1065 -
 mibs/SNMP-TSM-MIB.txt                              |   234 -
 mibs/SNMP-USER-BASED-SM-MIB.txt                    |   912 -
 mibs/SNMP-USM-AES-MIB.txt                          |    62 -
 mibs/SNMP-USM-DH-OBJECTS-MIB.txt                   |   532 -
 mibs/SNMP-VIEW-BASED-ACM-MIB.txt                   |   830 -
 mibs/SNMPv2-CONF.txt                               |   322 -
 mibs/SNMPv2-MIB.txt                                |   854 -
 mibs/SNMPv2-SMI.txt                                |   344 -
 mibs/SNMPv2-TC.txt                                 |   772 -
 mibs/SNMPv2-TM.txt                                 |   176 -
 mibs/TCP-MIB.txt                                   |   785 -
 mibs/TRANSPORT-ADDRESS-MIB.txt                     |   421 -
 mibs/TUNNEL-MIB.txt                                |   738 -
 mibs/UCD-SNMP-MIB.txt                              |   137 +-
 mibs/UDP-MIB.txt                                   |   549 -
 mibs/ianalist                                      |    18 +-
 mibs/rfclist                                       |    99 +-
 mibs/smistrip                                      |     4 +-
 mkinstalldirs                                      |     2 +-
 net-snmp-config.in                                 |   239 +-
 net-snmp-create-v3-user.in                         |   168 -
 ov/UCD-fields                                      |     6 -
 ov/oid_to_sym.in                                   |     1 -
 ov/oid_to_type.in                                  |     1 -
 perl/ASN/ASN.pm                                    |     5 +-
 perl/ASN/ASN.xs                                    |   359 +-
 perl/ASN/Makefile.PL                               |     8 +-
 perl/ASN/netsnmp-feature-definitions.h             |     0
 perl/AnyData_SNMP/Storage.pm                       |     2 +-
 perl/Makefile.PL                                   |     6 +-
 perl/Makefile.subs.pl                              |     4 +-
 perl/OID/Makefile.PL                               |     8 +-
 perl/OID/OID.pm                                    |     5 +-
 perl/OID/OID.xs                                    |    78 +-
 perl/OID/netsnmp-feature-definitions.h             |     6 -
 perl/SNMP/Makefile.PL                              |    12 +-
 perl/SNMP/SNMP.pm                                  |   393 +-
 perl/SNMP/SNMP.xs                                  |   780 +-
 perl/SNMP/examples/mibwalk.pl                      |     4 +-
 perl/SNMP/examples/pingmib.pl                      |    14 +-
 perl/SNMP/netsnmp-feature-definitions.h            |     8 -
 perl/SNMP/t/async.t                                |    17 +-
 perl/SNMP/t/bulkwalk.t                             |    10 +-
 perl/SNMP/t/conf.t                                 |     4 +-
 perl/SNMP/t/mib.t                                  |     3 +-
 perl/SNMP/t/notify.t                               |    30 +-
 perl/SNMP/t/snmptest.cmd                           |     3 -
 perl/SNMP/t/startagent.pl                          |   124 +-
 perl/TrapReceiver/Makefile.PL                      |    17 +-
 perl/TrapReceiver/TrapReceiver.pm                  |     2 +-
 perl/TrapReceiver/TrapReceiver.xs                  |    56 +-
 perl/TrapReceiver/netsnmp-feature-definitions.h    |     6 -
 perl/TrapReceiver/ppport.h                         |     2 -
 perl/agent/Makefile.PL                             |    15 +-
 perl/agent/Support/Makefile.PL                     |     8 +-
 perl/agent/Support/Support.pm                      |     2 +-
 perl/agent/agent.pm                                |    28 +-
 perl/agent/agent.xs                                |   568 +-
 perl/agent/default_store/Makefile.PL               |     8 +-
 perl/agent/default_store/default_store.pm          |    39 +-
 perl/agent/default_store/default_store.xs          |     7 +-
 perl/agent/netsnmp-feature-definitions.h           |     6 -
 perl/agent/test.pl                                 |    10 +-
 perl/default_store/Makefile.PL                     |     8 +-
 perl/default_store/default_store.pm                |     2 +-
 perl/default_store/default_store.xs                |     7 +-
 perl/default_store/netsnmp-feature-definitions.h   |     0
 perl/default_store/test.pl                         |     2 +-
 perl/manager/snmptosql                             |     6 +-
 python/LICENSE                                     |    36 -
 python/README                                      |    47 +-
 python/netsnmp/client.py                           |    32 +-
 python/netsnmp/client_intf.c                       |   719 +-
 python/netsnmp/netsnmp-feature-definitions.h       |     6 -
 python/netsnmp/tests/snmpd.conf                    |     5 -
 python/netsnmp/tests/test.py                       |    38 +-
 sedscript.in                                       |     8 +-
 snmplib/Makefile.depend                            |  3861 +-
 snmplib/Makefile.in                                |    84 +-
 snmplib/asn1.c                                     |   195 +-
 snmplib/callback.c                                 |    38 +-
 snmplib/cert_util.c                                |  3367 -
 snmplib/check_varbind.c                            |    53 +-
 snmplib/closedir.c                                 |    20 -
 snmplib/cmu_compat.c                               |    91 +
 snmplib/container.c                                |   196 +-
 snmplib/container_binary_array.c                   |   267 +-
 snmplib/container_iterator.c                       |    19 +-
 snmplib/container_list_ssll.c                      |   199 +-
 snmplib/container_null.c                           |    11 +-
 snmplib/data_list.c                                |    57 +-
 snmplib/default_store.c                            |    31 +-
 snmplib/dir_utils.c                                |   256 -
 snmplib/fd_event_manager.c                         |    93 +-
 snmplib/file_utils.c                               |    57 +-
 snmplib/getopt.c                                   |     6 +-
 snmplib/gettimeofday.c                             |    33 -
 snmplib/inet_ntop.c                                |    26 +-
 snmplib/inet_ntop.h                                |    10 -
 snmplib/inet_pton.c                                |    26 +-
 snmplib/inet_pton.h                                |    10 -
 snmplib/int64.c                                    |   358 +-
 snmplib/keytools.c                                 |   124 +-
 snmplib/large_fd_set.c                             |   244 -
 snmplib/lcd_time.c                                 |    45 +-
 snmplib/md5.c                                      |    21 +-
 snmplib/mib.c                                      |   401 +-
 snmplib/mt_support.c                               |     6 +-
 snmplib/oid_stash.c                                |    33 +-
 snmplib/opendir.c                                  |   139 -
 snmplib/openssl/OPENSSL-LICENSE                    |   127 -
 snmplib/openssl/README                             |    19 -
 snmplib/openssl/openssl_aes_cfb.c                  |    81 -
 snmplib/openssl/openssl_aes_core.c                 |  1358 -
 snmplib/openssl/openssl_aes_local.h                |    87 -
 snmplib/openssl/openssl_cbc_enc.c                  |    61 -
 snmplib/openssl/openssl_cfb128.c                   |   250 -
 snmplib/openssl/openssl_des_enc.c                  |   400 -
 snmplib/openssl/openssl_des_local.h                |   431 -
 snmplib/openssl/openssl_md32_common.h              |   408 -
 snmplib/openssl/openssl_md5.c                      |   181 -
 snmplib/openssl/openssl_md5_local.h                |   129 -
 snmplib/openssl/openssl_modes.h                    |    59 -
 snmplib/openssl/openssl_ncbc_enc.c                 |   148 -
 snmplib/openssl/openssl_set_key.c                  |   406 -
 snmplib/openssl/openssl_sha.h                      |   199 -
 snmplib/openssl/openssl_sha1.c                     |    65 -
 snmplib/openssl/openssl_sha_local.h                |   436 -
 snmplib/openssl/openssl_spr.h                      |   204 -
 snmplib/parse.c                                    |   387 +-
 snmplib/pkcs.c                                     |     2 -
 snmplib/read_config.c                              |   704 +-
 snmplib/readdir.c                                  |    51 -
 snmplib/scapi.c                                    |   419 +-
 snmplib/snmp-tc.c                                  |    76 +-
 snmplib/snmp.c                                     |    10 +-
 snmplib/snmpAAL5PVCDomain.c                        |   357 +
 snmplib/snmpCallbackDomain.c                       |   623 +
 snmplib/snmpIPXDomain.c                            |   453 +
 snmplib/snmpSTDDomain.c                            |   284 +
 snmplib/snmpTCPDomain.c                            |   461 +
 snmplib/snmpTCPIPv6Domain.c                        |   481 +
 snmplib/snmpUDPDomain.c                            |  1333 +
 snmplib/snmpUDPIPv6Domain.c                        |  1385 +
 snmplib/snmpUnixDomain.c                           |   655 +
 snmplib/snmp_alarm.c                               |   279 +-
 snmplib/snmp_api.c                                 |  1791 +-
 snmplib/snmp_auth.c                                |    13 +-
 snmplib/snmp_client.c                              |   795 +-
 snmplib/snmp_debug.c                               |   359 +-
 snmplib/snmp_enum.c                                |   161 +-
 snmplib/snmp_logging.c                             |   289 +-
 snmplib/snmp_openssl.c                             |   879 -
 snmplib/snmp_parse_args.c                          |   188 +-
 snmplib/snmp_secmod.c                              |    29 +-
 snmplib/snmp_service.c                             |    41 +-
 snmplib/snmp_transport.c                           |   308 +-
 snmplib/snmp_version.c                             |     4 +-
 snmplib/snmpksm.c                                  |    17 +-
 snmplib/snmptsm.c                                  |   627 -
 snmplib/snmpusm.c                                  |  1083 +-
 snmplib/snmpv3.c                                   |   562 +-
 snmplib/snprintf.c                                 |    27 +-
 snmplib/strlcat.c                                  |    67 -
 snmplib/strlcpy.c                                  |     6 +-
 snmplib/strtok_r.c                                 |    11 +-
 snmplib/strtol.c                                   |     4 +
 snmplib/strtoul.c                                  |     4 +
 snmplib/strtoull.c                                 |   125 +
 snmplib/system.c                                   |   821 +-
 snmplib/test_binary_array.c                        |   171 +
 snmplib/text_utils.c                               |    20 +-
 snmplib/tools.c                                    |   465 +-
 snmplib/transports/snmpAAL5PVCDomain.c             |   374 -
 snmplib/transports/snmpAliasDomain.c               |   116 -
 snmplib/transports/snmpCallbackDomain.c            |   628 -
 snmplib/transports/snmpDTLSUDPDomain.c             |  1788 -
 snmplib/transports/snmpIPXDomain.c                 |   467 -
 snmplib/transports/snmpIPv4BaseDomain.c            |   223 -
 snmplib/transports/snmpIPv6BaseDomain.c            |   426 -
 snmplib/transports/snmpSSHDomain.c                 |  1010 -
 snmplib/transports/snmpSTDDomain.c                 |   285 -
 snmplib/transports/snmpSocketBaseDomain.c          |   362 -
 snmplib/transports/snmpTCPBaseDomain.c             |    99 -
 snmplib/transports/snmpTCPDomain.c                 |   351 -
 snmplib/transports/snmpTCPIPv6Domain.c             |   374 -
 snmplib/transports/snmpTLSBaseDomain.c             |  1183 -
 snmplib/transports/snmpTLSTCPDomain.c              |  1041 -
 snmplib/transports/snmpUDPBaseDomain.c             |   354 -
 snmplib/transports/snmpUDPDomain.c                 |   520 -
 snmplib/transports/snmpUDPIPv4BaseDomain.c         |   211 -
 snmplib/transports/snmpUDPIPv6Domain.c             |   788 -
 snmplib/transports/snmpUnixDomain.c                |   752 -
 snmplib/ucd_compat.c                               |    10 -
 snmplib/vacm.c                                     |   100 +-
 snmplib/winpipe.c                                  |     6 +-
 snmplib/winservice.c                               |   131 +-
 testing/Makefile.in                                |    39 +-
 testing/README                                     |    33 +-
 testing/RUNFULLTESTS                               |   813 -
 testing/RUNTESTS                                   |   415 +-
 testing/T.c                                        |   182 +
 testing/T2.sh                                      |    32 +
 testing/TESTCONF.sh                                |   181 +
 testing/data.keychange-md5                         |    26 +
 testing/data.keychange-sha1                        |    26 +
 testing/data.keychange-sha1-des                    |    26 +
 testing/data.kul-md5                               |     8 +
 testing/data.kul-sha1                              |     8 +
 testing/etimetest.c                                |   423 +
 testing/eval_oneprogram.sh                         |   138 +
 testing/eval_onescript.sh                          |    36 +
 testing/eval_suite.sh                              |   218 +
 testing/eval_testlist                              |     5 +
 testing/eval_tools.sh                              |   578 +
 testing/failed_tests                               |     1 -
 testing/fulltests/default/Sv3config                |    46 -
 testing/fulltests/default/Sv3usmconfigbase         |   100 -
 testing/fulltests/default/Sv3vacmconfig            |    29 -
 testing/fulltests/default/Svacmconfig              |    40 -
 testing/fulltests/default/Svanyconfig              |    29 -
 testing/fulltests/default/T000configure_simple     |    22 -
 testing/fulltests/default/T001snmpv1get_simple     |    37 -
 testing/fulltests/default/T0141snmpv2cset_simple   |    35 -
 testing/fulltests/default/T014snmpv2cget_simple    |    24 -
 .../fulltests/default/T015snmpv2cgetnext_simple    |    25 -
 .../fulltests/default/T0160snmpv2cbulkget_simple   |    31 -
 .../fulltests/default/T016snmpv2cgetfail_simple    |    30 -
 .../default/T017snmpv2ctov1getfail_simple          |    30 -
 .../default/T018snmpv1tov2cgetfail_simple          |    26 -
 testing/fulltests/default/T019snmpv2cnosuch_simple |    25 -
 testing/fulltests/default/T020snmpv3get_simple     |    24 -
 testing/fulltests/default/T021snmpv3getnext_simple |    24 -
 .../fulltests/default/T0220snmpv3bulkget_simple    |    30 -
 testing/fulltests/default/T022snmpv3getMD5_simple  |    25 -
 .../fulltests/default/T023snmpv3getMD5AES_simple   |    29 -
 .../fulltests/default/T023snmpv3getMD5DES_simple   |    28 -
 testing/fulltests/default/T024snmpv3getSHA1_simple |    25 -
 .../fulltests/default/T025snmpv3getSHADES_simple   |    29 -
 .../fulltests/default/T026snmpv3getSHAAES_simple   |    29 -
 .../fulltests/default/T027snmpv3Defaults_simple    |    38 -
 testing/fulltests/default/T028snmpv3getfail_simple |    22 -
 .../default/T030snmpv3usercreation_simple          |   119 -
 .../default/T035snmpv3trapdusermgmt_simple         |   126 -
 testing/fulltests/default/T049snmpv3inform_simple  |    27 -
 .../fulltests/default/T049snmpv3informauth_simple  |    27 -
 .../fulltests/default/T049snmpv3informpriv_simple  |    28 -
 testing/fulltests/default/T050snmpv3trap_simple    |    36 -
 testing/fulltests/default/T051snmpv2ctrap_simple   |    27 -
 testing/fulltests/default/T052snmpv2cinform_simple |    25 -
 testing/fulltests/default/T053agentv1trap_simple   |    34 -
 testing/fulltests/default/T054agentv2ctrap_simple  |    33 -
 .../fulltests/default/T055agentv1mintrap_simple    |    33 -
 .../fulltests/default/T056agentv2cmintrap_simple   |    34 -
 .../fulltests/default/T057trapdauthtest2_simple    |    25 -
 .../fulltests/default/T057trapdauthtest3_simple    |    25 -
 testing/fulltests/default/T057trapdauthtest_simple |    25 -
 testing/fulltests/default/T058agentauthtrap_simple |    36 -
 .../fulltests/default/T059trapdtraphandle_simple   |    71 -
 testing/fulltests/default/T060trapdperl_simple     |    59 -
 testing/fulltests/default/T061agentperl_simple     |    77 -
 testing/fulltests/default/T065agentextend_simple   |    54 -
 testing/fulltests/default/T066pass_simple          |    53 -
 testing/fulltests/default/T067passpersist_simple   |    63 -
 testing/fulltests/default/T070com2sec_simple       |   159 -
 testing/fulltests/default/T071com2sec6_simple      |   155 -
 testing/fulltests/default/T072com2secunix_simple   |   111 -
 testing/fulltests/default/T100agenthup_simple      |    36 -
 testing/fulltests/default/T110agentxget_simple     |    59 -
 testing/fulltests/default/T111agentxset_simple     |    78 -
 testing/fulltests/default/T112agentxsetfail_simple |    72 -
 testing/fulltests/default/T113agentxtrap_simple    |    79 -
 .../fulltests/default/T114agentxagentxtrap_simple  |    44 -
 testing/fulltests/default/T115agentxperl_simple    |   115 -
 testing/fulltests/default/T120proxyget_simple      |    67 -
 testing/fulltests/default/T121proxyset_simple      |    86 -
 testing/fulltests/default/T122proxysetfail_simple  |    86 -
 testing/fulltests/default/T130snmpv1vacmget_simple |    32 -
 .../fulltests/default/T131snmpv2cvacmget_simple    |    35 -
 testing/fulltests/default/T132snmpv3vacmget_simple |    31 -
 .../fulltests/default/T140snmpv1vacmgetfail_simple |    35 -
 .../default/T141snmpv2cvacmgetfail_simple          |    48 -
 .../fulltests/default/T142snmpv3vacmgetfail_simple |    32 -
 .../fulltests/default/T150solarishostcpu_simple    |    31 -
 .../fulltests/default/T151solarishostdisk_simple   |    31 -
 testing/fulltests/default/T152hostuptime_simple    |    27 -
 testing/fulltests/default/T153solarisswap_simple   |    31 -
 testing/fulltests/default/T154dismanpingmib_simple |   116 -
 testing/fulltests/default/T160snmpnetstat_simple   |    55 -
 .../fulltests/default/T200snmpv2cwalkall_simple    |    38 -
 testing/fulltests/perl/NetSNMPTestTransport.pm     |    54 -
 testing/fulltests/perl/T001basic.t                 |    93 -
 testing/fulltests/perl/T101udp.t                   |    18 -
 testing/fulltests/perl/T102tcp.t                   |    18 -
 testing/fulltests/perl/T103udp6.t                  |    18 -
 testing/fulltests/perl/T104tcp6.t                  |    18 -
 testing/fulltests/perl/T105unix.t                  |    19 -
 .../fulltests/read-only/T0141snmpv2csetfail_simple |    32 -
 testing/fulltests/snmpv3/T010scapitest_capp.c      |   459 -
 testing/fulltests/snmpv3/T020hashtests_capp.c      |   117 -
 testing/fulltests/snmpv3/T040keymanagetest_capp.c  |   636 -
 testing/fulltests/snmpv3/T050etimetest_capp.c      |   420 -
 testing/fulltests/support/NetSNMPTest.pm           |   172 -
 testing/fulltests/support/cagentlib_build          |    46 -
 testing/fulltests/support/cagentlib_run            |     8 -
 testing/fulltests/support/capp_build               |     4 -
 testing/fulltests/support/capp_run                 |     8 -
 testing/fulltests/support/clib_build               |    62 -
 testing/fulltests/support/clib_run                 |     8 -
 testing/fulltests/support/simple_TESTCONF.sh       |   260 -
 testing/fulltests/support/simple_eval_tools.sh     |   695 -
 testing/fulltests/support/simple_run               |   119 -
 testing/fulltests/tls/S300tlsperl.pl               |    54 -
 testing/fulltests/tls/SCipherTests                 |    62 -
 testing/fulltests/tls/SCrl                         |    98 -
 testing/fulltests/tls/STlsAgentTrap                |    66 -
 testing/fulltests/tls/STlsCNSession                |     6 -
 testing/fulltests/tls/STlsName                     |     6 -
 testing/fulltests/tls/STlsSan                      |     6 -
 testing/fulltests/tls/STlsSanSession               |     6 -
 testing/fulltests/tls/STlsServer                   |    77 -
 testing/fulltests/tls/STlsServerSession            |    57 -
 testing/fulltests/tls/STlsTrapdUser                |    87 -
 testing/fulltests/tls/STlsUsers                    |   262 -
 testing/fulltests/tls/STlsVars                     |    56 -
 testing/fulltests/tls/STsmPrefix                   |    86 -
 testing/fulltests/tls/T101DtlsUser_simple          |    15 -
 testing/fulltests/tls/T102TlsUser_simple           |    15 -
 testing/fulltests/tls/T111DtlsServer_simple        |    15 -
 testing/fulltests/tls/T112TlsServer_simple         |    15 -
 testing/fulltests/tls/T113DtlsSan_simple           |    15 -
 testing/fulltests/tls/T114TlsSan_simple            |    15 -
 testing/fulltests/tls/T115DtlsSanSession_simple    |    15 -
 testing/fulltests/tls/T116TlsSanSession_simple     |    15 -
 testing/fulltests/tls/T117DtlsCNSession_simple     |    15 -
 testing/fulltests/tls/T118TlsCNSession_simple      |    15 -
 testing/fulltests/tls/T121DtlsTrap_simple          |    15 -
 testing/fulltests/tls/T122TlsTrap_simple           |    15 -
 testing/fulltests/tls/T131DtlsAgentTrap_simple     |    15 -
 testing/fulltests/tls/T132TlsAgentTrap_simple      |    15 -
 testing/fulltests/tls/T141DtlsCrl_simple           |    18 -
 testing/fulltests/tls/T142TlsCrl_simple            |    18 -
 testing/fulltests/tls/T151DtlsCiphers_simple       |    18 -
 testing/fulltests/tls/T152TlsCiphers_simple        |    18 -
 testing/fulltests/tls/T200TlsIpv6_simple           |    29 -
 testing/fulltests/tls/T300TlsPerl.t                |     8 -
 testing/fulltests/tls/T301DtlsPerl.t               |     8 -
 testing/fulltests/tls/T401DtlsTsmPrefix_simple     |    19 -
 testing/fulltests/tls/T402TlsTsmPrefix_simple      |    16 -
 testing/fulltests/transports/Stlstests             |    49 -
 testing/fulltests/transports/Stransport            |    18 -
 testing/fulltests/transports/T300udp_simple        |    15 -
 testing/fulltests/transports/T310tcp_simple        |    15 -
 testing/fulltests/transports/T320udpv6_simple      |    16 -
 testing/fulltests/transports/T330tcpv6_simple      |    16 -
 testing/fulltests/transports/T350unix_simple       |    19 -
 testing/fulltests/transports/T360dtlsudp_simple    |    18 -
 testing/fulltests/transports/T361tlstcp_simple     |    18 -
 testing/fulltests/transports/T399alias_simple      |    24 -
 testing/fulltests/transports/test-localhost.cert   |    23 -
 testing/fulltests/transports/test-localhost.priv   |    27 -
 testing/fulltests/transports/test-user.cert        |    23 -
 testing/fulltests/transports/test-user.priv        |    27 -
 .../fulltests/unit-tests/T001defaultstore_clib.c   |    35 -
 testing/fulltests/unit-tests/T002containers_clib.c |    35 -
 testing/fulltests/unit-tests/T003copy_nword_clib.c |   142 -
 testing/fulltests/unit-tests/T004snmp_enum_clib.c  |   105 -
 .../unit-tests/T005table_dataset_cagentlib.c       |    58 -
 .../T006snmp_handler_registration_cagentlib.c      |    46 -
 testing/fulltests/unit-tests/T007inet_pton_clib.c  |    60 -
 testing/fulltests/unit-tests/T008asn1_clib.c       |   182 -
 .../fulltests/unit-tests/T009large_fd_set_clib.c   |    46 -
 .../T010netsnmp_string_time_to_secs_clib.c         |    45 -
 .../T011snmp_old_api_registration_cagentlib.c      |    46 -
 .../unit-tests/T012binary_array_oid_clib.c         |    72 -
 .../unit-tests/T013binary_array_string_clib.c      |    59 -
 .../fulltests/unit-tests/T014gethostbyaddr_clib.c  |    55 -
 testing/fulltests/unit-tests/T015int64_clib.c      |    82 -
 .../fulltests/unit-tests/T016read_config_clib.c    |    82 -
 testing/fulltests/unit-tests/T017strtoull_clib.c   |    94 -
 .../fulltests/unit-tests/T018read_config_capp.c    |   129 -
 .../fulltests/unit-tests/T019_snmp_service_clib.c  |   253 -
 testing/fulltests/unit-tests/T101pdu_type_clib.c   |    13 -
 testing/fulltests/unit-tests/T102pdu_build_clib.c  |    67 -
 testing/fulltests/unit-tests/T103pdu_parse_clib.c  |    22 -
 testing/keymanagetest.c                            |   651 +
 testing/misctest.c                                 |   266 +
 testing/scapitest.c                                |   489 +
 testing/test_keychange.sh                          |    71 +
 testing/test_kul.sh                                |    78 +
 testing/{fulltests/default => tests}/Sv1config     |     0
 testing/{fulltests/default => tests}/Sv2cconfig    |     0
 testing/tests/Sv3config                            |    44 +
 .../{fulltests/default => tests}/Sv3usmconfigagent |     0
 testing/tests/Sv3usmconfigbase                     |    94 +
 .../{fulltests/default => tests}/Sv3usmconfigtrapd |     0
 testing/tests/Sv3vacmconfig                        |    28 +
 testing/tests/Svacmconfig                          |    38 +
 testing/tests/Svanyconfig                          |    26 +
 testing/tests/T001snmpv1get                        |    37 +
 testing/tests/T014snmpv2cget                       |    24 +
 testing/tests/T015snmpv2cgetnext                   |    25 +
 testing/tests/T0160snmpv2cbulkget                  |    40 +
 testing/tests/T016snmpv2cgetfail                   |    29 +
 testing/tests/T017snmpv2ctov1getfail               |    30 +
 testing/tests/T018snmpv1tov2cgetfail               |    26 +
 testing/tests/T019snmpv2cnosuch                    |    25 +
 testing/tests/T020snmpv3get                        |    24 +
 testing/tests/T021snmpv3getnext                    |    24 +
 testing/tests/T0220snmpv3bulkget                   |    39 +
 testing/tests/T022snmpv3getMD5                     |    25 +
 testing/tests/T023snmpv3getMD5AES                  |    29 +
 testing/tests/T023snmpv3getMD5DES                  |    28 +
 testing/tests/T024snmpv3getSHA1                    |    25 +
 testing/tests/T025snmpv3getSHADES                  |    28 +
 testing/tests/T026snmpv3getSHAAES                  |    28 +
 testing/tests/T028snmpv3getfail                    |    22 +
 testing/tests/T030snmpv3usercreation               |   114 +
 testing/tests/T035snmpv3trapdusermgmt              |   124 +
 testing/tests/T049snmpv3inform                     |    25 +
 testing/tests/T049snmpv3informauth                 |    25 +
 testing/tests/T049snmpv3informpriv                 |    28 +
 testing/tests/T050snmpv3trap                       |    36 +
 testing/tests/T051snmpv2ctrap                      |    24 +
 testing/tests/T052snmpv2cinform                    |    24 +
 testing/tests/T053agentv1trap                      |    33 +
 testing/tests/T054agentv2ctrap                     |    33 +
 testing/tests/T055agentv1mintrap                   |    33 +
 testing/tests/T056agentv2cmintrap                  |    34 +
 testing/tests/T057trapdauthtest                    |    28 +
 testing/tests/T057trapdauthtest2                   |    28 +
 testing/tests/T057trapdauthtest3                   |    28 +
 testing/tests/T058agentauthtrap                    |    36 +
 testing/tests/T059trapdtraphandle                  |    49 +
 testing/tests/T060trapdperl                        |    50 +
 testing/tests/T061agentperl                        |    94 +
 testing/tests/T065agentextend                      |    47 +
 testing/tests/T100agenthup                         |    36 +
 testing/tests/T110agentxget                        |    59 +
 testing/tests/T111agentxset                        |    76 +
 testing/tests/T112agentxsetfail                    |    70 +
 testing/tests/T113agentxtrap                       |    78 +
 testing/tests/T115agentxperl                       |   133 +
 testing/tests/T120proxyget                         |    64 +
 testing/tests/T121proxyset                         |    81 +
 testing/tests/T122proxysetfail                     |    81 +
 testing/tests/T130snmpv1vacmget                    |    31 +
 testing/tests/T131snmpv2cvacmget                   |    35 +
 testing/tests/T132snmpv3vacmget                    |    31 +
 testing/tests/T140snmpv1vacmgetfail                |    35 +
 testing/tests/T141snmpv2cvacmgetfail               |    45 +
 testing/tests/T142snmpv3vacmgetfail                |    32 +
 testing/tests/T150solarishostcpu                   |    31 +
 testing/tests/T151solarishostdisk                  |    31 +
 testing/tests/T152hostuptime                       |    27 +
 testing/tests/T153solarisswap                      |    32 +
 testing/tests/T160snmpnetstat                      |    55 +
 testing/tests/T200snmpv2cwalkall                   |    38 +
 win32/Configure                                    |    92 +-
 win32/Makefile-apps.in                             |    20 +-
 win32/Makefile.in                                  |    64 +-
 win32/build.pl                                     |     1 -
 win32/config.h                                     |     5 +
 win32/config.h.borland                             |    61 +
 win32/encode_keychange/encode_keychange.dsp        |     4 +-
 win32/libagent/Makefile.in                         |   294 +-
 win32/libagent/libagent.def                        |    17 +
 win32/libagent/libagent.dsp                        |   168 -
 win32/libhelpers/Makefile.in                       |   405 +
 win32/libhelpers/libhelpers.dsp                    |   252 +
 win32/libnetsnmptrapd/Makefile.in                  |    17 +-
 win32/libnetsnmptrapd/libnetsnmptrapd.dsp          |    15 +-
 win32/libsdll.dsw                                  |    77 +
 win32/libsnmp/Makefile.in                          |   456 +-
 win32/libsnmp/libsnmp.dsp                          |    98 +-
 win32/libsnmp_dll/Makefile.in                      |   482 +-
 win32/libsnmp_dll/libsnmp.def                      |   460 +-
 win32/libsnmp_dll/libsnmp.def.in                   |   458 +
 win32/libsnmp_dll/libsnmp_dll.dsp                  |   102 +-
 win32/libucdmibs/libucdmibs.def                    |    17 +
 win32/mib_module_includes.h                        |    35 +-
 win32/mib_module_inits.h                           |    12 +-
 win32/mib_module_shutdown.h                        |     9 -
 win32/net-snmp/agent/mib_module_config.h           |    65 +-
 win32/net-snmp/net-snmp-config.h                   |   454 +-
 win32/net-snmp/net-snmp-config.h.in                |   452 +-
 win32/netsnmpmibs/Makefile.in                      |   474 +-
 win32/netsnmpmibs/netsnmpmibs.dsp                  |   150 +-
 win32/netsnmpmibssdk/Makefile.in                   |   885 +
 win32/netsnmpmibssdk/netsnmpmibssdk.dsp            |   420 +
 win32/snmpbulkget/snmpbulkget.dsp                  |     4 +-
 win32/snmpbulkwalk/snmpbulkwalk.dsp                |     4 +-
 win32/snmpd/Makefile.in                            |   227 +-
 win32/snmpd/snmpd.dsp                              |     4 +-
 win32/snmpdelta/snmpdelta.dsp                      |     4 +-
 win32/snmpdf/snmpdf.dsp                            |     4 +-
 win32/snmpdsdk/Makefile.in                         |   312 +
 win32/snmpdsdk/snmpd.dsp                           |   106 +
 win32/snmpget/snmpget.dsp                          |     4 +-
 win32/snmpgetnext/snmpgetnext.dsp                  |     4 +-
 win32/snmpnetstat/Makefile.in                      |    22 +-
 win32/snmpnetstat/snmpnetstat.dsp                  |     4 +-
 win32/snmpset/snmpset.dsp                          |     4 +-
 win32/snmpsm_init.h                                |     1 +
 win32/snmpsm_shutdown.h                            |     1 -
 win32/snmpstatus/snmpstatus.dsp                    |     4 +-
 win32/snmptable/snmptable.dsp                      |     4 +-
 win32/snmptest/snmptest.dsp                        |     4 +-
 win32/snmptranslate/snmptranslate.dsp              |     4 +-
 win32/snmptrap/snmptrap.dsp                        |     4 +-
 win32/snmptrapd/Makefile.in                        |    45 +-
 win32/snmptrapd/snmptrapd.dsp                      |     8 +-
 win32/snmpusm/snmpusm.dsp                          |     4 +-
 win32/snmpv3-security-includes.h                   |     1 -
 win32/snmpvacm/snmpvacm.dsp                        |     4 +-
 win32/snmpwalk/snmpwalk.dsp                        |     4 +-
 win32/transports/snmp_transport_inits.h            |    15 -
 win32/win32.dsw                                    |   173 +-
 win32/win32dll.dsw                                 |   374 -
 win32/win32sdk.dsw                                 |   383 +
 1981 files changed, 132976 insertions(+), 324418 deletions(-)

diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 9cfb7a3..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,114 +0,0 @@
-*.bak
-*.bs
-*.ft
-*.ft.1
-*.la
-*.lo
-*.made
-*.o
-*.obj
-*.old
-*.orig
-*.out
-*.pdb
-*.rej
-.libs/
-agent/*.exe
-agent/mibgroup/agent_module_dot_conf.h
-agent/mibgroup/agent_module_includes.h
-agent/mibgroup/agent_module_inits.h
-agent/mibgroup/agent_module_shutdown.h
-agent/mibgroup/mib_module_dot_conf.h
-agent/mibgroup/mib_module_includes.h
-agent/mibgroup/mib_module_inits.h
-agent/mibgroup/mib_module_shutdown.h
-agent/snmpd
-apps/*.exe
-apps/agentxtrap
-apps/encode_keychange
-apps/snmpbulkget
-apps/snmpbulkwalk
-apps/snmpdelta
-apps/snmpdf
-apps/snmpget
-apps/snmpgetnext
-apps/snmpnetstat/*.exe
-apps/snmpnetstat/snmpnetstat
-apps/snmpset
-apps/snmpstatus
-apps/snmptable
-apps/snmptest
-apps/snmptls
-apps/snmptranslate
-apps/snmptrap
-apps/snmptrapd
-apps/snmpusm
-apps/snmpvacm
-apps/snmpwalk
-apps/sshtosnmp
-autom4te.cache/
-ChangeLog.add*
-ChangeLog.reallyadd
-CHANGES.new*
-confdefs.h
-config.cache
-config.log
-config.status
-configure-summary
-dist/generation-scripts/gen-variables
-docs/html
-docs/latex
-EXAMPLE.conf
-include/net-snmp/agent/agent_module_config.h
-include/net-snmp/agent/mib_module_config.h
-include/net-snmp/library/snmpv3-security-includes.h
-include/net-snmp/net-snmp-config.h
-libtool
-local/snmpcheck
-Makefile
-man/*.[1358]
-man/default_store.3.h
-man/manaliases
-mibs/.index
-mk/
-module_tmp_header.h
-net-snmp-5*
-net-snmp-6*
-net-snmp-config
-net-snmp-config-x
-net-snmp-create-v3-user
-NEWS.new*
-perl/*.yml
-perl/*/*.def
-perl/*/*.yml
-perl/*/*/*.yml
-perl/agent/agent.c
-perl/agent/default_store/default_store.c
-perl/agent/default_store/default_store.def
-perl/ASN/ASN.c
-perl/blib/
-perl/default_store/default_store.c
-perl/NetSNMP.c
-perl/OID/OID.c
-perl/SNMP/SNMP.c
-perl/SNMP/t/*.log
-perl/SNMP/t/*.pid
-perl/SNMP/t/*.stderr
-perl/SNMP/t/snmptest.cmd
-perl/TrapReceiver/const-c.inc
-perl/TrapReceiver/const-xs.inc
-perl/TrapReceiver/TrapReceiver.c
-pm_to_blib
-python/build
-sedscript
-snmplib/snmpsm_init.h
-snmplib/snmpsm_shutdown.h
-snmplib/transports/snmp_transport_inits.h
-stamp-h
-TAGS
-testing/failed_tests
-testing/testing/
-win32/*/debug
-win32/*/release
-win32/bin
-win32/lib
diff --git a/AGENT.txt b/AGENT.txt
index 37eb279..ad4b1c9 100644
--- a/AGENT.txt
+++ b/AGENT.txt
@@ -418,16 +418,14 @@ A single entry consists of six fields:
 
    * a magic number (the #defined integer constant described above)
    * a type indicator (from the values listed in <snmplib/snmp_impl.h>)
-   * an access indicator (essentially NETSNMP_OLDAPI_RWRITE or
-     NETSNMP_OLDAPI_RONLY)
+   * an access indicator (essentially RWRITE or RONLY)
    * the name of the routine used to handle this entry
    * the length of the OID suffix used, and
    * an array of integers specifying this suffix (more on this in a moment)
 
 Thus a typical variable entry would look like:
 
-        { EXAMPLESTRING, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-          var_example, 1, {1}}
+        { EXAMPLESTRING, ASN_OCTET_STR, RONLY, var_example, 1, {1}}
 
 If the magic numbers have not been defined in the header file, then they
 should be defined here, usually comming immediately before the corresponding
@@ -1166,6 +1164,4 @@ above all feedback, would be most appreciated :-)
 
   ------------------------------------------------------------------------
 Copyright 1999, 2000 - D.T.Shield.
-This file may be distributed as part of a source or binary packaging
-of the Net-SNMP software suite.  It may not be distributed independently
-without the explicit permission of the author.
+Not to be distributed without the explicit permission of the author.
diff --git a/CHANGES b/CHANGES
index a8de7e1..aa283e1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,2477 +1,553 @@
 This file contains a list of specific bugs that have been fixed, and patches
 that have been applied in released versions.  Please see the NEWS file for
 a summary of the major changes, and the ChangeLog file for a comprehensive
-listing of all changes made to the code.
-
-* 5.7.2.1 *
-    snmpd:
-      - SECURITY: a denial of service attack vector was discovered on
-        the linux implementation of the ICMP-MIB.  This release fixes
-        this bug and all users are encouraged to update their SNMP
-        agent if they make use of the ICMP-MIB table objects.
-
-*5.7.2*
-
-    snmplib:
-      - Add Doxygen-style function header for
-	netsnmp_register_default_target() and
-	netsnmp_clear_default_target().
-      - Add netsnmp_setenv().
-      - Avoid that system clock changes (e.g. by ntpd) affect code that
-	needs relative time Make sure that the range of the SNMPv3 variable
-	snmpEngineTime is 0..2147483647 on all supported systems instead of
-	0..42949672 on some systems (i.e. wraparound after 497 days) Add
-	netsnmp_get_monotonic_clock(), netsnmp_set_monotonic_marker(),
-	netsnmp_ready_monotonic(), netsnmp_get_agent_runtime()
-      - Avoid that system clock changes (e.g. by ntpd) affect code that
-	needs relative time Make sure that the range of the SNMPv3 variable
-	snmpEngineTime is 0..2147483647 on all supported systems instead of
-	0..42949672 on some systems (i.e. wraparound after 497 days) Add
-	netsnmp_get_monotonic_clock(), netsnmp_set_monotonic_marker(),
-	netsnmp_ready_monotonic(), netsnmp_get_agent_runtime() Deprecate
-	atime_diff(), atime_newMarker(), atime_ready(), atime_setMarker(),
-	marker_tticks(), netsnmp_marker_uptime(), netsnmp_timeval_uptime(),
-	timeval_tticks(), uatime_diff(), uatime_hdiff() and uatime_ready().
-      - Avoid waiting indefinitely if a session has timeout zero
-      - Declare "type" argument of se_store_list() / se_store_slist() /
-	se_store_enum_list() const
-      - Make it explicit that MAX_SUBID is an unsigned constant
-      - Make netsnmp_callback_accept() return -1 (failure) instead of 0
-	(STDIN_FILENO)
-      - Make netsnmp_large_fd_set_resize() robust against memory allocation
-	failures. Make NETSNMP_LARGE_FD_ZERO() use memset() on Unix systems
-	instead of an explicit loop.
-      - Make netsnmp_large_fd_set_resize() robust against memory allocation
-	failures. Make NETSNMP_LARGE_FD_ZERO() use memset() on Unix systems
-	instead of an explicit loop. Make sure that on Unix systems
-	netsnmp_large_fd_clr() doesn't try to read memory it isn't allowed
-	to read if the first argument equals -1 (a value that shouldn't be
-	passed by the caller).
-      - Merge together the Linux and *BSD version of src port sending.
-      - Only transform the address to printable form when needed.
-      - PATCH 3510454: Allow the use of 0.0.0.0/0 as alias for default
-      - Prevent gcc ped-warning for NETSNMP_REMOVE_CONST git-svn-id:
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@1
-	8052 06827809-a52a-0410-b366-d66718629ded
-      - Reduce overhead of config file parsing
-      - Remove obsolete snmp_get_fd_for_session() declaration
-      - Separate out the cmesg buffer size
-      - Set the rpath for libperl.so in libnetsnmpmibs.so such that the
-	dynamic linker can find libperl.so without requiring the user to
-	modify the dynamic linker settings. This change in
-	agent/Makefile.in is necessary on the 5.5 branch and later but not
-	on the 5.4 branch. That is because the 5.4 branch uses an older
-	version of libtool that propagates the rpath of dependent
-	libraries. This is called inter-library dependency tracking in the
-	libtool manual. This functionality is present in libtool version 1
-	but not in libtool version 2. For more background information about
-	dynamic libraries and rpaths, see also the document with the title
-	"RpathIssue" on the Debian wiki
-	(http://wiki.debian.org/RpathIssue).
-      - Simplify implementation of functions manipulating 64-bit numbers.
-      - Simplify the se_store_enum_list() implementation
-      - Use SNMP_ALLOC_TYPEDEF to allocate transports in order to avoid the
-	separate call to memset.
-      - [PATCH 3414773]: Encode integer value using ASN_INTEGER
-      - [PATCH 3526599]: Don't hang on retried failing SNMPv3 responses
-      - PATCH 3560473: from fenner: Handle TimeTicks when pretty-printing
-	OID   Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-      - Add the symbol NETSNMP_PRIo to help in printing oid values.
-      - Do not crash from empty values in --token=value arguments
-      - Do not crash on incomplete configuration tokens.
-      - Do not truncate single default transport domains
-      - Move the check that the pdu variable is non-NULL to before the
-	first dereference of it.
-
-    snmplib + snmpd + snmpwalk:
-      - Avoid that system clock changes (e.g. by ntpd) affect code that
-	needs relative time
-
-    snmplib, snmpd, perl:
-      - Eliminate dead variables agent/mibgroup/agentx/master_admin.c
-	agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c
-	agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_acc
-	ess.c agent/mibgroup/host/data_access/swinst_pkginfo.c
-	agent/mibgroup/host/data_access/swrun_procfs_status.c
-	agent/mibgroup/ip-mib/data_access/systemstats_linux.c
-	agent/mibgroup/mibII/kernel_linux.c
-	agent/mibgroup/rmon-mib/data_access/etherstats_linux.c
-	agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access
-	.c apps/snmptls.c apps/snmptrapd_log.c snmplib/dir_utils.c
-	snmplib/snmp_client.c snmplib/snmp_openssl.c
-	snmplib/transports/snmpTLSTCPDomain.c
-      - BUG: 3517030: Ensure large tables are walked properly
-      - BUG: 3541012: Fix handling of gettable columns
-      - [PATCH 3529541]: Don't refer to internal 'my' variables from
-	external scripts Fix provided by Lezz Giles
-
-    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 at linux.vnet.ibm.com>
-
-    snmpd:
-      - Lowered severity of 'Error expanding XXX to 64bits' messages.
-      - Removed error log messages when IPv6 is disabled.
-      - Add missing debug tag
-      - Add netsnmp_get_next_alarm_time()
-      - Avoid that system clock changes (e.g. by ntpd) affect code that
-	needs relative time Make sure that the range of the SNMPv3 variable
-	snmpEngineTime is 0..2147483647 on all supported systems instead of
-	0..42949672 on some systems (i.e. wraparound after 497 days)
-      - BUG 3542188: Correct sysORDescr for snmpUsmMIB. Thanks to Dave
-	Vucich for reporting this.
-      - BUG 3542307: Correct sysORID for snmpMPDStats. Thanks to Dave
-	Vucich for reporting this.
-      - BUG: 3439234: Correct the dependencies of ucd-snmp/pass and
-	ucd-snmp/pass_persist
-      - BUG: 3439234: Move netsnmp_pass_str_to_errno to pass_common and
-	rename it to netsnmp_internal_pass_str_to_errno
-      - BUG: 3463767: Handle parsing subidentifiers > 2^31
-      - BUG: 3532090: Fix high ifIndex values crashing hrDeviceDescr
-      - Call snmp_oidtree_compare instead of snmp_oid_min_compare
-      - DISMAN-PING-MIB: Avoid dangling pointers (based on patch 3503259)
-      - DISMAN-PING-MIB: Avoid reading freed memory when deleting a row
-	from a table
-      - DISMAN-PING-MIB: Do not send the contents of the stack over the
-	network
-      - DISMAN-PING-MIB: Don't call exit() upon memory allocation failure
-      - DISMAN-PING-MIB: Fix IPv6 socket leak in error paths
-      - DISMAN-PING-MIB: Fix a socket leak triggered by pinging a remote
-	host
-      - DISMAN-PING-MIB: Fix more memory leaks
-      - DISMAN-PING-MIB: Fix several memory leaks
-      - DISMAN-PING-MIB: Make ping implementation independent of ntpd clock
-	jumps
-      - DISMAN-PING-MIB: Make pinging local interface addresses work
-      - DISMAN-SCHEDULER-MIB: Handle 32-character schedContextName values
-	correctly. See also commit
-	b3c4982542e0ab151fb3884754cdfbcb472da52d.
-      - Disable the support for integer64 in pass scripts if compiling
-	without opaque-special-types.
-      - Factor out asc2bin and bin2asc. Add a netsnmp_internal_ prefix to
-	them
-      - Fixed UCD-SNMP-MIB::systemStats after 30 days of uptime. 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.
-      - Fixed snmpd '-d' option. Now it dumps packets again.
-      - IF-MIB::ifType: Report type "infiniband (199)" for InfiniBand
-	interfaces instead of type "other (1)".
-      - Init_agent() + init_kmem(): Return an error value instead of
-	invoking exit() if access to kernel virtual memory is denied
-      - Make the configuration of the dlmod module fail rather than
-	generate a dummy module if the dlopen function isn't available.
-      - Match each getpwnam()/getpwuid() call with an endpwent() call and
-	each getgrent() call with an endgrent() call.
-      - PATCH 3402376: from Leonardo Chiquitto: Recognise ReiserFS Also
-	move various FSType definitions to the appropriate blocks
-      - PATCH 3453868: from "Bill Fenner <fenner at gmail.com>": Factor common
-	code into pass_common Move the code for pormatting and printing
-	values from pass and pass_persist into pass_common.
-      - PATCH: 3487867: Don't skip missing ifXTable entries
-	(ifConnectorPresent FALSE)
-      - Pass_persist:  Fixes a race condition introduced in commit
-	31fa07cd9ffde46d41d2b5838c3fc4d01548bfb5. The following race
-	condition could happen: - A system call fails and errno is set
-	accordingly by the C library. - SIGCHLD handler invokes a system
-	call that fails and hence overwrites errno. - SIGCHLD handler
-	leaves. - original context checks errno and finds the value from
-	the system call invoked by the SIGCHLD handler instead of the
-	system call that failed originally. Other fixes included in this
-	patch: - Renamed deinit_pass_persist() into shutdown_pass_persist()
-	such that this function gets called during agent shutdown. - Made
-	sure that shutdown_pass_persist() is called by the Windows
-	snmpd.exe too. - Windows: avoid calling
-	CloseHandle(INVALID_HANDLE_VALUE). - Windows: avoid that closing a
-	pass_persist pipe triggers a crash. - Windows: pass_persist: close
-	handles of finished processes.
-	agent/mibgroup/ucd-snmp/pass_persist.c win32/mib_module_shutdown.h
-      - Smux: simplify smux_list_detach()
-      - UDP-MIB: Report the proper address in udpLocalAddress instead of
-	0.0.0.0. Makes test T160snmpnetstat pass again. Fixes a bug
-	introduced in commit c76fb96f65e33ba2fd212a921e8c386155ee5c7a.
-      - [BUG 3460364]: Fix use of block factor when detecting error
-	conditions
-      - [BUG 3489631]: Fix incorrect handling of UCD monitoring flag
-      - [PATCH 3410050]: Skip already-'processed' varbinds Based on mib2c
-	patch provided by Stephen Turner
-      - [PATCH 3410059]: Fix sparsely augmenting trigger tables Patch
-	provided by Stephen Turner
-      - [PATCH 3447444]: Fix SIG_PIPE handling Patch provided by Bill
-	Fenner
-      - [PATCH 3447671]: Fix override handling of OID values Patch supplied
-	by Phillip O'Donnell
-      - [PATCH 3479740]: Fix hrSWRunPerf statistics
-      - [PATCH 3487919]: Fix compilation when caching is disabled
-      - [PATCH 3495697]: Store persistent snmpTarget table changes
-      - BUG 3542188: Correct sysORDescr for snmpUsmMIB. Thanks to Dave
-	Vucich for reporting this.
-      - BUG 3542307: Correct sysORID for snmpMPDStats. Thanks to Dave
-	Vucich for reporting this.
-      - BUG: 3543864: Remove extraneous function type (and fix a related
-	typo)
-      - Removed limit of 'exec' and 'sh' entries in snmpd.conf Use dynamic
-	(re)allocation instead.
-      - [PATCH 3543000]: Various fixes to Rmon code Supplied by Patrick
-	Ritter
-
-    snmpdx:
-      - [PATCH 3445437]: Log AgentX disconnections (in line with
-	connections) Patch provided by Bill Fenner
-
-    snmptrapd:
-      - Avoid crash during shutdown due to invoking perl_destruct(NULL)
-      - Do not invoke shutdown_perl() from inside the SIGTERM handler since
-	that fails if SIGTERM is received while a Perl handler is active.
-	Based on a patch posted by Joel Avni <javni at arubanetworks.com>
-      - Eliminate an unused variable (Now)
-      - Move the main loop code into a new function
-      - Remove superfluous casts
-
-    snmptrapd_sql:
-      - Avoid that a linker error is triggered on systems where my_progname
-	is missing in libmysqlclient (e.g. Fedora 15 and 16). This is a
-	backport of commit 9f653f7.
-
-    aix:
-      - Eliminate configure warning regarding libperfstat.h on AIX 6.1 and
-	up
-      - PATCH 3403433: from blentz: Issues with hrSWRunName and Parameters
-	on AIX	 Signed-off-by: Wes Hardaker
-	<hardaker at users.sourceforge.net>
-
-    apps, snmplib:
-      - PATCH: 2835577: identified by "Bart Van Assche": Replace SNMP_ZERO
-	of arrays with a memset. git-svn-id:
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@1
-	7797 06827809-a52a-0410-b366-d66718629ded
-      - BUG: 3529768: Be more careful when stripping off numeric suffixes
-
-    build:
-      - Do not generate an output file on failure make supposes that no
-	output is generated if the command failed. Change feature-remove to
-	follow that presumption.
-      - BUG: 3532234: Fix typo in libtool script (addressed properly in
-	libtool 2.4.2)
-
-    building:
-      - Add dependencies on @FEATURETARGS@ to make the subtarget work as
-	well.
-      - Add missing end comments to feature ifndefs.
-      - Add target to build agentxtrap from the toplevel
-      - Build fix for systems lacking field msg_flags in struct msghdr
-	(e.g. IRIX)
-      - Build fix for systems lacking fields msg_control/msg_flags in
-	struct msghdr (backport)
-      - Correct dependencies - since
-	bf74fea69f24dc6e85f908f3f41d1426b2e09688 snmpconf is located in
-	builddir, not srcdir
-      - Correct dependencies - since
-	bf74fea69f24dc6e85f908f3f41d1426b2e09688 snmpconf is located in
-	builddir, not srcdir" This reverts commit
-	9efa467a972bb6e1c7fbdaf2e27429d29f4ab89e.
-      - Make the transport configuration code work again Previously the
-	transport inheritance processing code ran with
-	NETSNMP_FEATURE_CHECKING set. In this mode the file
-	net-snmp/feature-details.h is requiered. That file is created
-	during the first make run, and that happens after configure is run.
-	Change this to undefine NETSNMP_MINIMAL_CODE, effectively turning
-	off feature support during transport configuration in order to make
-	it work at all.
-      - Run libtool --mode=finish on the right directory
-
-    libnetsnmp:
-      - PATCH 3394586: from rwa-co: file descriptor leak in read_config
-	(+fix) Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-    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 3490708]: Clarify use of common command-line options
-      - BUG: 3535269: Document use of [snmp] for client-side tools.
-
-    pass:
-
-    perl:
-      - Add agent::uptime()
-      - Enable sending SNMPv2 traps with an empty varbind list
-      - Fix spelling in the documentation of the SNMP module
-      - Fixed segmentation fault when handler registration fails. When
-	netsnmp_register_handler fails, it frees its reginfo ->
-	nsahr_DESTROY (and any other function) must not dereference it.
-      - Perl: Make sure that the constant SNMP_DEFAULT_RETRIES is
-	recognized. SNMP module: Add constants
-	NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE and
-	NETSNMP_CALLBACK_OP_TIMED_OUT. When the Net-SNMP Perl modules are
-	built on Windows with MSVC or MinGW it is possible that each these
-	are linked with another version of the MSVC runtime library than
-	the Perl interpreter itself. In that case the "errno" variable used
-	inside .xs source files is another variable than the $! variable in
-	.pm files. Or: assignments to "errno" in a .xs file do not modify
-	the "$!" Perl variable This patch avoids using "errno" by modifying
-	the different constant() functions such that these return a
-	two-element array instead of returning a scalar and setting errno.
-
-    python:
-      - Avoid that an SNMP set with UseEnums enabled causes a segmentation
-	fault
-      - [PATCH 3433846]: Fix for use with python 2.4
-      - BUG: 3535967: Fix memory leak - snmp_{sess_}error allocates the
-	output buffer
-
-    testing:
-      - Add a test for se_store_list()
-      - Add testing/fulltests/default/T154dismanpingmib_simple
-      - Avoid false negative for T114agentxagentxtrap_simple caused by the
-	test result being present in the hex dump ("mostly_harmless")
-      - Convert snmplib/test_binary_array.c into two unit tests
-      - Fix Perl regression test failures All Perl regression tests pass
-	now on Linux and on Windows (MSVC).
-      - Make the asn1 test pass even if support for opaque types are
-	removed.
-      - Perl regression tests: Don't fail skipped tests.
-      - Protect the use of $OSTYPE to ensure that 'test' get enough
-	parameters.
-      - Remove an incorrect comment from simple_eval_tools.sh
-      - Remove unused variable
-      - Require a semicolon after OK(), OKF() and PLAN() Also, let OKF()
-	emit a single line of output such that all output it produces is
-	visible in the output of "make test".
-      - [BUG 3474590]: Don't match underscores within the source root
-	filename
-      - Add test cases for snmp_service
-
-    unspecified:
-      - Added CVFS (CentraVision File System) to hrStorageTable and
-	hrFSTable.
-      - Removed counter-64 error messages.   These messages do not say
-	enything useful, caller should check their return value and report
-	it.
-      - Added OCFS2 (Oracle Cluster FS) to hrStorageTable and hrFSTable
-      - [BUG 3444939]: BUG: 1796886: snmplib: Avoid that
-	sprint_realloc_octet_string() embeds unprintable control characters
-	or binary zeroes in its output. This behavior could cause truncated
-	output in snmptrapd.
-      - [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).
-      - [BUG 3454168]: configure: Fix building with --enable-read-only
-      - [PATCH 3418649]: HOST-RESOURCES-MIB: Use pclose() instead of
-	fclose() to close a pipe.
-      - [BUG 3540621]: dist: Add missing Provides: to net-snmp-perlmods RPM
-	spec
-
-    BSD:
-
-    Bug 3152841:
-      - Do not install the util_funcs subheaders that were removed in 5.7
-      - Install util_funcs subheaders
-      - Install util_funcs subheaders introduced in 5.6
-
-    Cygwin:
-      - Make date_n_time() produce time zone information
-
-    Cywin:
-      - Agent: Implement get_uptime() such that querying
-	HOST-RESOURCES-MIB::hrSystemUptime returns a non-zero value.
-
-    FreeBSD:
-      - Restore IP_RECVDSTADDR functionality.
-      - Snmpd + apps: Sending UDP packets works again for non-root users
-      - [PATCH 3489387]: Install FreeBSD 10 header file (plus other missing
-	versions)
-
-    Linux:
-      - PATCH: 3525998: Don't use an uninitialised value in error message
-      - [PATCH 3536420]: Ensure snd/rcv memory buffers are suitably aligned
-	Patch provided by Tyler Olmstead
-
-    MinGW:
-      - Net-SNMP Perl modules build again.
-      - Support the directory structure of recent Shining Light OpenSSL
-	binary distributions
-      - Testing: Fix a race condition in the test framework
-      - Testing: Fix a race condition in the test runner
-      - Testing: Make test T130snmpv1vacmget_simple pass
-      - Testing: Make those regression tests pass for which SNMPCONFPATH
-	and/or SNMP_PERSISTENT_DIR matter
-      - Testing: Make unit-tests/T014gethostbyaddr_clib pass
-      - Testing: Make unit-tests/T102pdu_build_clib pass.
-      - Testing: Obtain the MSYS path from the environment
-
-    Win32:
-      - Avoid that compiling the header file <net-snmp/net-snmp-config.h>
-	with the MinGW gcc compiler triggers warnings about "pragma
-	comment".
-      - Avoid that the PACKAGE_* macros defined in
-	<net-snmp/net-snmp-config.h> cause trouble when including this
-	header in a package that uses the GNU autotools.
-      - Building: Builds now correctly with a 64-bit compiler. git-svn-id:
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@1
-	9458 06827809-a52a-0410-b366-d66718629ded
-      - Snmpd: Remove dlmod
-
-    Windows:
-      - Building (build.bat): Install netsnmp.dll before running the Perl
-	regression tests such that the regression tests are run with the
-	correct version of netsnmp.dll.
-      - MSVC: Avoid that the typedefs in <net-snmp/net-snmp-config.h>
-	conflict with those in <stdint.h> from the msinttypes project
-      - MSVC: Link with proper libeay32 library
-      - MSVC: When linking with OpenSSL, link with user32.lib too
-      - Make netsnmp_large_fd_set_resize() robust against memory allocation
-	failures. Make NETSNMP_LARGE_FD_ZERO() use memset() on Unix systems
-	instead of an explicit loop. Make sure that on Unix systems
-	netsnmp_large_fd_clr() doesn't try to read memory it isn't allowed
-	to read if the first argument equals -1 (a value that shouldn't be
-	passed by the caller). Make netsnmp_large_fd_is_set() return false
-	on Unix systems if the first argument equals -1 (a value that
-	shouldn't be passed by the caller). Make
-	netsnmp_large_fd_set_resize() shrink behavior correct.
-      - Perl (build.bat): When installing development files, install the
-	PDB files too.
-      - Remove superfluous link libraries from project files (*.dsp)
-      - Snmptrapd: Make the IP address to hostname conversion work
-      - Testing: perl: Fix an incorrect message printed while running the
-	Perl module regression tests
-
-
-
-
-*5.7.1*
-
-    snmplib:
-      - Fix a crash that could be
-      - tweak patch 3044888 to restore
-
-    snmpd:
-      - [PATCH 3386633]: fix integer overflow in disk percent calculations
-      - Make
-      - Restore storage tables on Linux
-      - run signal handlers when select()
-
-    snmptrapd:
-      - Add missing newline
-      - Invoke shutdown_perl() when
-
-    building:
-      - [PATCH 3383951]: Fix -Wunused compile warnings with FreeBSD/NetBSD
-	Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-      - build fix
-      - build fix for systems lacking
-
-    libnetsnmp:
-      - [PATCH 3387139]: from
-
-    man:
-      - [PATCH 3312861]: Man pages
-
-    testing:
-      - Changed
-      - Check PID file existence after having read it instead of before.
-	This fixes the race condition where the PID file disappeared after
-	the existence check and before it was read.
-      - Make the SNMP_VERBOSE=1 output even more verbose.
-
-    unspecified:
-      - minor NEWS polish
-
-    Perl:
-      - Remove file perl/NetSNMP.xs
-
-    Win32:
-      - Add support for
-      - Document how to build 64-bit
-      - Documented how to use build.bat with
-      - winExtDLL: Invoke
-
-    Windows:
-      - Avoid that if
-      - Remove outdated instructions about
-
-*5.7*
-    snmplib:
-      - 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().
-      - 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(). Fixed memory leak triggered by
-	unregistering a table handler.
-      - Added macro netsnmp_static_assert().
-      - Added netsnmp_mib_handler.data_clone, a function pointer that
-	defines how to clone netsnmp_mib_handler.myvoid. Must be defined if
-	and only if data_free is set. The function netsnmp_handler_dup()
-	does now clone MIB handler private data if data_clone() is set.
-	Previously after duplicating a MIB handler and unregistering one of
-	the two MIB handlers, the private data pointer (myvoid) of the
-	other became a dangling pointer. Note: addition of
-	netsnmp_mib_handler.data_clone is an ABI change.
-      - Added snmp_sess_session_lookup().
-      - Added the function netsnmp_check_definedness(), which helps to find
-	the cause of undefined value errors as reported by Valgrind.
-      - 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 *.
-      - Check that the argument to netsnmp_transport_copy is non-NULL
-      - 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.
-      - 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).
-      - 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.
-      - Remove the support for CMU compatibility since there is no way to
-	enable it and nobody have missed it.
-      - [BUG 3134323]: Fix crash when comparing invalid OIDs
-      - [PATCH 3165878]: Catch buffer overrun on 64-bit systems
-      - [PATCH 3195537]: Minor binary_array container sort optimization
-      - [PATCH 3203806]: Add the function netsnmp_large_select().
-      - [PATCH 3203806]: Make netsnmp_large_fd_set_resize() clear all
-	relevant file descriptors.
-      - [PATCH 3203806]: Minor performance optimization of
-	netsnmp_large_fd_set_resize().
-      - add IPv6 support to DTLSUDP transport
-      - add IPv6 support to DTLSUDP transport use new
-	netsnmp_sockaddr_storage in netsnmp_addr_pair
-      - add IPv6 support to DTLSUDP transport use new
-	netsnmp_sockaddr_storage in netsnmp_addr_pair add base_transport
-	ptr for tunneled transports
-      - add more openssl error cases where we check for local cert
-      - add new transport config tokens localCert/peerCert, deprecate
-	our_identity, their_identity
-      - add optional support for local DNSSEC validation of hostnames	-
-	optional at configure time: --with-local-dnssec-validation -
-	requires DNSSEC-Tool validation libraries - initial support, for
-	systems with getaddrinfo. support for additional resolver
-	interfaces coming soon. - also TODO: flag for ignoring validatoin
-	errors (log & continue)
-      - dont return empty array
-      - force a ; at the end of the static_assert macro.
-      - introduce new localCert/peerCert, deprecate serverCert, clientCert,
-	defX509ServerPub, defX509ClientPub
-      - netsnmp_handler_dup(): freeing the duplicated handler no longer
-	causes a crash (double free) when handler->myvoid of the original
-	handler was non-NULL.
-      - realloc+init instead of calloc inspired by patch 3195532 from
-	Stephen Hemminger
-      - refine cert debugging; remove unused function
-      - remove inline versions of container funcs
-      - snmp_shutdown(): added call to netsnmp_certs_shutdown().
-      - 0 Applied the intent of patch 3044888 to allow applications to read
-	the error messages of a MIB parsing failure.
-      - Fixed a memory leak in snmp_free_session().
-      - [BUG 3184697]: Don't reference internal MD5 when it's explicitly
-	disabled
-      - [BUG 3234754]: Ensure old f_create_from_tstring hook is initialized
-	to NULL
-      - [BUG 3264852]: Recognise missing report types
-	(snmp{Unavailable,Unknown}Contexts,snmpUnknownPDUHandlers)
-      - _mibindex_add() no longer reads past the end of the dynamically
-	allocated array _mibindexes.
-      - [BUG 3151845]: fix multiple registrations of snmp transport handler
-
-    snmp:
-      - patch: 3096725: sysORTable registation for notification log mib
-	original patch fixed several issues, other parts applied earlier
-
-    snmpd:
-      - Add missing function declaration
-      - Added functions netsnmp_handler_owns_tabreq(),
-	netsnmp_registration_owns_tabreq(), netsnmp_iterator_clone().
-	Exported netsnmp_table_registration_info_clone().
-      - Added functions netsnmp_handler_owns_tabreq(),
-	netsnmp_registration_owns_tabreq(), netsnmp_iterator_clone().
-	Exported netsnmp_table_registration_info_clone(). Modified
-	netsnmp_iterator_delete_table() such that it frees the table
-	registration information stored in a table iterator too. Modified
-	netsnmp_get_table_iterator_handler() such that the table iterator
-	passed to this function is freed when the associated handler is
-	freed. Restored the behavior of netsnmp_get_table_handler() to that
-	of r19449, that is, not setting up the data_free pointer because
-	not all callers of netsnmp_get_table_handler() expect that table
-	registration information is freed when the associated handler is
-	freed.
-      - Added netsnmp_get_table_iterator2().
-      - Added netsnmp_get_table_iterator2(). Added
-	netsnmp_register_table_iterator2().
-      - Added netsnmp_get_table_iterator2(). Added
-	netsnmp_register_table_iterator2(). Added
-	netsnmp_handler_owns_iterator_info().
-      - Added netsnmp_get_table_iterator2(). Added
-	netsnmp_register_table_iterator2(). Added
-	netsnmp_handler_owns_iterator_info(). Fixed leak-at-exit triggered
-	by snmpNotifyTable.
-      - Added netsnmp_get_table_iterator2(). Added
-	netsnmp_register_table_iterator2(). Added
-	netsnmp_handler_owns_iterator_info(). Fixed leak-at-exit triggered
-	by snmpNotifyTable. Fixed leak-at-exit triggered by
-	snmpTargetAddrTable. Also, restored backwards compatibility of
-	netsnmp_register_table_iterator().
-      - Added netsnmp_register_watched_instance2(),
-	netsnmp_register_watched_scalar2(), netsnmp_clone_watcher_info()
-	and netsnmp_owns_watcher_info(). See also the Doxygen comments for
-	more info.
-      - Added netsnmp_unregister_auto_data_table().
-      - Added reference count in the netsnmp_baby_steps_modes data
-	structure and made sure that this data structure is automatically
-	freed when the handler that owns it is unregistered.
-      - 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().
-      - Added the functions netsnmp_duplicate_variable() and
-	netsnmp_cache_handler_owns_cache().
-      - Added the functions netsnmp_duplicate_variable() and
-	netsnmp_cache_handler_owns_cache(). Memory allocated by
-	netsnmp_register_old_api() for storing SNMP variables is now freed
-	when the associated handler is unregistered.
-      - Added the functions netsnmp_duplicate_variable() and
-	netsnmp_cache_handler_owns_cache(). Memory allocated by
-	netsnmp_register_old_api() for storing SNMP variables is now freed
-	when the associated handler is unregistered. Callback function data
-	deallocation does no longer free the memory allocated for the
-	AgentX session - the memory that was allocated for AgentX sessions
-	is now deallocated just as that for any other session. This fixes a
-	leak-at-exit.
-      - Added the functions netsnmp_duplicate_variable() and
-	netsnmp_cache_handler_owns_cache(). Memory allocated by
-	netsnmp_register_old_api() for storing SNMP variables is now freed
-	when the associated handler is unregistered. Callback function data
-	deallocation does no longer free the memory allocated for the
-	AgentX session - the memory that was allocated for AgentX sessions
-	is now deallocated just as that for any other session. This fixes a
-	leak-at-exit. Notify filter table: Callback function data
-	deallocation does no longer free the data in *	  
-	*snmpNotifyFilterTable_if_ctx.container - this is now done by  
-	shutdown_snmpNotifyFilterTable() and
-      - Automatically free the private data structure allocated by
-	netsnmp_container_table_handler_get().
-      - Builds with most recent MinGW (having #define localtime_r).
-      - Count the number of users of a netsnmp_cache data structure instead
-	of duplicating it.
-      - Declare the OID argument type of MIB registration functions as
-	'const oid *' instead of 'oid *' since these functions do not
-	modify the OID.
-      - Do not leak the limits of scalar_group objects on shutdown.
-      - Extend the documentation for data_clone and data_free
-      - Factor out common config_add_mib statments
-      - Find out whether librpm is available before configuring the agent
-	modules because host/data/access/swinst needs symbol HAVE_LIBRPM.
-	As a result, configure has to be run only once instead of twice to
-	enable the hrSWInstalled table on systems that have librpm.
-      - Fixed a double free at exit that was triggered by cleaning up the
-	data structures used for embedded Perl support.
-      - Fixed a year-2038 bug in the implementation of ipRouteTable.
-      - Introduced netsnmp_pid_t.
-      - MIB-specific leak-at-exit fixes.
-      - Make it possible to copy watched data items without memory leaks.
-      - Make the setting of the argvrestart* variables optional on
-	USING_UTIL_FUNCS_RESTART_MODULE.
-      - Make the setting of the argvrestart* variables optional on
-	USING_UTIL_FUNCS_RESTART_MODULE. Remove util_funcs/restart from the
-	requirement sets of util_funcs and default_modules.
-      - Make the setting of the argvrestart* variables optional on
-	USING_UTIL_FUNCS_RESTART_MODULE. Remove util_funcs/restart from the
-	requirement sets of util_funcs and default_modules. Add
-	util_funcs/restart to the requirement set of ucd-snmp/versioninfo.
-      - Patch 3141462: from fenner: fix agentx subagent issues with
-	multiple-object requests
-      - Patch from Niels to fix VACM persistant storage.
-      - Remove unused variable cmp
-      - Remove util_funcs/Exit from the requirement sets of util_funcs and
-	default_modules.
-      - Remove util_funcs/Exit from the requirement sets of util_funcs and
-	default_modules. Never use Exit to terminate the agent.
-      - 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 3205765]: handle reconfig for certSecName token
-      - [BUG ]: enforce max length on TLS secName maps
-      - [BUG ]: enforce max length on TLS secName maps add priority to
-	secname debugging
-      - [PATCH 2119725]: Fix skipNFSInHostResources handling of
-	hrStorageTable
-      - [PATCH 2941811]: Handle successful requests with reqID 0
-      - [PATCH 2975254]: Avoid callback re-use of closed sessions Qn:
-	Should this also be applied when main session is NULL?
-      - [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 3057093]: allow linux to use libpci for creating useful
-	ifDescr strings
-      - [PATCH 3096725]: Don't register v1Trap callback, if SNMPv1 is not
-	supported
-      - [PATCH 3096725]: Include SNMPv1 trap OIDs in nlmLogNotificationID
-	column
-      - [PATCH 312596]: listen for netlink change events for the
-	arp-related tables
-      - [PATCH 3152412]: Handle (and report) problems reading /proc/vmstat
-      - [PATCH 3203806]: Avoid that the main agent processing loop - when
-	using more than FD_SETSIZE file descriptors - can cause memory
-	corruption by invoking select().
-      - [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
-      - add debug for cert find hint as string/int
-      - 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.
-      - com2sec6 directive: If configure has not found getaddrinfo(),
-	non-numeric IPv6 addresses do now trigger an error message.
-      - 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
-      - example MIB: Added shutdown function that frees all memory owned by
-	this MIB implementation.
-      - fix double free in TLS error handling
-      - 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.
-      - 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.
-      - reworked hrStorageTable to support large filesystems. The
-	hrStorageAllocationUnits does not report real allocation unit size,
-	but some calculated value so hrStorageAllocationUnits *
-	hrStorageSize gives real size of the filesystem. This calculation
-	happens only when hrStorageSize is too small (32bits) for
-	filesystem size, e.g. filesystems larger than 8TB with 4096 bytes
-	block size. This calculation can be turned off by
-	'realStorageUnits' config option.
-      - skip non-AF_INET interfaces when loading ipv4 addrs
-      - snmpd is again single-threaded. [PATCH 2959811]: Safranek:
-	Reimplement Linux Netlink IPv6 prefix listener.
-      - Fixed memory leak in TCP-MIB tables introduced by patch #3053436.
-      - Fixed memory leak in TCP-MIB tables introduced by patch #3053436."
-	[PATCH 3053436]: from: takevos: fix: tcpConnectionTable_data_access
-	invalid memory access" the bug 3053436 is fixing was introduced in
-	r17719, and fixed in r17861.
-      - Use proper format specifier in debug statements for printing values
-	of type 'oid'.
-      - [PATCH 3066862]: fix the agent for comparing unsigned large indexes
-	of the disk and extend tables.
-      - 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.
-      - 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)
-      - patch 3131397: from takevos: huge speedups of the TCP/UDP Tables
-      - patch 3299384: fix INFORMs so they retry probing for an engineID.
-      - patch 3306476: from tinypyramids: fix memory leak in the swrun
-	container loading
-      - ucd_snmp builds again on MinGW and Cygwin.
-      - patch 3310250: from fenner: misc fixes for debugging output of
-	agentx
-
-    snmptrapd:
-      - 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)
-
-    apps:
-      - [PATCH 3054817]: Adds per-variable timed output support to snmpwalk
-	using -CT
-      - add snmp.conf tokens for timeouts and retries
-
-    build:
-      - [BUG 3088360]: Ensure python modules are built against the correct
-	libraries
-
-    building:
-      - Fix --with-security-modules handling Allow repeated modules
-	(tsm,tsm) as well as defailt modules (usm) Move the generation of
-	the files after the checking
-      - Make it possible to regenerate using autoconf 2.68.
-      - Some systems do not support the -E flag to grep, use autoconf to
-	find the right egrep at all times.
-      - check for /dev/kmem instead of assuming it exists and hardcoding
-	when it is not there
-
-    libnetsnmp:
-      - made the SSH transport configurable as it should be.
-
-    libnetsnmpmibs:
-      - Make all functions in the dlmod module that don't have to be public
-	static
-
-    mib2c:
-      - [PATCH 3175323]: Fix handling of 'while (false)' blocks
-      - [PATCH 3204883]: Fix handling of non-table objects named fooTable
-      - [PATCH 3211484]: Support enumerations in notification varbinds
-      - make the mib2c foreach ranges work as advertised in the comments.
-
-    packaging:
-      - Enable micro-and-macro-feature management within Net-SNMP; this
-	adds a number of new flags to configure (--enable-minimalist and
-	--enable-read-only). These changes are designed to remove much of
-	the inline code that isn't always necessary or desired. Scripts
-	exist (and will be improved) to stip out unused components from the
-	code entirely to enable a shorter review process for upgrading to
-	new releases. This work was done by Wes Hardaker and Michael Baer
-	from SPARTA, Inc. but is being checked in as a large patch since
-	converting the micro patches from git to svn turend out to be
-	impossible
-
-    patch 3140833:
-      - fix proxy GETNEXT requests When OIDs requested are below the proxy
-	request remap, we need to not include any OIDs that might be in the
-	space between the original OID and the remapped OID. This patch
-	fudges the request so that it fixes the request OID so it's just
-	before the remapped proxy range.
-
-    patch 3184026:
-      - Avoid constant refresh of interface statistics
-
-    perl:
-      - patch 3049029: from fennec: fix a memory leak with snmp bulkwalks
-      - 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
-
-    python:
-      - [PATCH 3185085]: Fix segfault on 64-bit systems
-      - [BUG 3295407]: Fix handling of void pointer
-
-    testing:
-      - Add missing preconditions
-      - 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(). Fixed memory leak triggered by
-	unregistering a table handler. Unit tests can now invoke functions
-	from libagent.
-      - 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(). Fixed memory leak triggered by
-	unregistering a table handler. Unit tests can now invoke functions
-	from libagent. Added unit test for table_dataset.
-      - Added inet_ntop() and inet_pton() unit test.
-      - Added netsnmp_mib_handler.data_clone, a function pointer that
-	defines how to clone netsnmp_mib_handler.myvoid. Must be defined if
-	and only if data_free is set. The function netsnmp_handler_dup()
-	does now clone MIB handler private data if data_clone() is set.
-	Previously after duplicating a MIB handler and unregistering one of
-	the two MIB handlers, the private data pointer (myvoid) of the
-	other became a dangling pointer. Note: addition of
-	netsnmp_mib_handler.data_clone is an ABI change. added more test
-	cases to the handler registration test.
-      - 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.
-      - Test T030 does now pass on MinGW.
-      - auto-create user specified SNMP_TMPDIR and SNMP_TMP_PERSISTENTDIR
-	too; default SNMP_TMP_PERSISTENDIR based on SNMP_TMPDIR for user
-	specified SNMP_TMPDIR
-
-    man:
-      - [BUG 3190725]: Document snmp{,_sess}synch_response and
-	snmp_async_send
-
-    Generic:
-      - Make it possible to build static applications using net-snmp-config
-	and the -*libs flags once more.
-      - [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
-      - [PATCH 3167325]: from krisztoforo: UCD-SNMP/SystemStats: add
-	variables to report cpusteal, cpuguest, cpuguestnice
-
-    Cygwin:
-
-    Linux:
-      - [PATCH 3083027]: Fix RPM spec file to support CentOS
-      - [PATCH 3205811]: Option to skip fd/loop/ram devices in diskIOTable
-      - 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:
-      - 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.
-      - configure: Detection of the functions gai_strerror(),
-	getaddrinfo(), gethostbyname() and gethostname() does now succeed.
-      - testing: If the agent has been asked to stop, wait until the snmpd
-	process disappeared before proceeding.
-      - Tests 025 and 026 pass on MinGW even if winExtDLL has been enabled.
-
-    NetBSD:
-      - DragonFly support [From NetBSD patch archive]
-
-    OpenBSD:
-      - Update SWRun code to use kvm_getproc2 [From OpenBSD patch archive]
-
-    Win32:
-      - Avoid that MSVC reports a warning message about redefinition of the
-	malloc() macro during building the Net-SNMP source code.
-      - Deprecated libsnmp.def - add NETSNMP_IMPORT to function
-	declarations instead to export a function from netsnmp.dll.
-      - Guard netsnmp_udp_recvfrom() etc. declarations consistently. Builds
-	with Visual Studio 2010.
-      - Introduced netsnmp_pid_t. Eliminated casts between int and HANDLE
-	in agent/mibgroup/util_funcs.c and
-	agent/mibgroup/ucd-snmp/pass_persist.c.
-      - 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.
-      - [PATCH 3293842]: Eliminate registry argument limit of 127
-	characters (this limitation was reported by Sylvain Dery).
-      - 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.
-      - header file <net-snmp/net-snmp-config.h> can now be used in the
-	MinGW environment.
-      - testing: Avoid that T200 fails on known Microsoft SNMP extension
-	DLL bugs.
-      - Build snmplib/transports/snmpIPv6BaseDomain.c only if
-	NETSNMP_ENABLE_IPV6 has been defined.
-      - Fixed a memory leak in the Net-SNMP (non-winExtDLL) implementation
-	of the MIB-II ipNetToMediaTable.
-      - Microsoft Visual Studio: Link with gdi32.lib if OpenSSL has been
-	enabled because gdi32.lib is a dependency of OpenSSL.
-
-*5.6*
+listing of all changes made to the code. 
+      
+* 5.4.3 *
 
     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 2838243]: Correct the output of unsigned values.
+      - [BUG 2919320]: Avoid accessing freed memory
       - [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.
+      - [PATCH 2043018]: fix recvfrom hangs
+      - [PATCH 2258229]: Remove misleading comment
+      - [PATCH 2479700]: Fix zoned IP address used as table indices
+      - [PATCH 2492377]: Fix typo/bug in snmp_enable_callback()
+      - [PATCH 2505488]: Fix alarm behaviour on large clock skews
+      - [PATCH 2538169]: Prevent infinite retries for invalid error-index
+      - [PATCH 2688345]: Fix netsnmp_assert() for Visual Studio
+      - [PATCH 2689362]: Fix handling of IPv6 hostnames
+      - [PATCH 2713841]: Fix runtime errors triggered by high-ASCII chars
+      - [PATCH 2780411]: Fix compiler warnings
+      - [PATCH 2797251]: Fix memory leaks
+      - [PATCH 2871747]: Fix memory leak in OID processing
+      - [PATCH 2952140]: Overflow counter32 and gauge32
+      - [PATCH 2952034]: Return of the Great SuSE 'sprintf' Hunt
+      - Change the parsing of ranges to accept all valid values
+      - Ensure O_CREATE mask is always specified
+      - Fix extern "C" wrapping
+      - Make -LN stop dumping core.
+      - Make bad debug levels report the offending symbol
+      - Remove inline declarations for non-inline defined functions
 
     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 1693039]: Be silent when insert fails.
       - [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 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.
-      - [PATCH 2835576]: Fix endianness issues in pass/pass_persist
+      - [BUG 2914410]: Fix crash on empty command lines
+      - [BUG 2924140]: Fix termination of CPU/FPU types
+      - [PATCH 1257347]: Non-fixed size connection buffer
+      - [PATCH 1550730]: Report errors from iterator-based handlers
+      - [PATCH 1977439]: Fix pass/_persist bug with SET oid value
+      - [PATCH 2012402]: Handle failure to look up interface error counters
+      - [PATCH 2082726]: correctly report NIC speeds higher than 4Gbit/s
+      - [PATCH 2124288]: Fix setting of usmUserPrivProtocol at creation
+      - [PATCH 2162652]: Fix simple hrfs checks when NFS is in use
+      - [PATCH 2384779]: Fix handling of GetBulk with N>0,M==0
+      - [PATCH 2686280]: Report duplicate registrations as an error
+      - [PATCH 2693670]: Don't open AgentX sockets if other transports fail
+      - [PATCH 2791417]: Fix snmpd segfault when run with -DALL
+      - [PATCH 2797251]: Support multiple initialisation and shutdown
+      - [PATCH 2822337]: Fix memory leak in ipAddressPrefixTable
       - [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 2883155]: Fix memory leak in proxy handling.
       - [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
+      - [PATCH 2901029]: Fix compiler warning on CloseHandle()
+      - [PATCH 2911323]: Fix agent lockup when monitoring AgentX-delegated information
+      - [PATCH 2912584]: Fix null OID handling in Agentx on 64bit
+      - [PATCH 2950845]: Fix ifHighSpeed calculation
+      - [PATCH 2952034]: Return of the Great SuSE 'sprintf' Hunt
+      - [PATCH 2956657]: Handle over-length AgentX OIDs
+      - [PATCH 2968642]: Catch overflow of pass-through command buffer
+      - Allow "monitor" to handle negative threshold values
+      - Change default AgentX target from 0.0.0.0:705 to localhost:705
+      - Clean up notification
+      - Ensure O_CREATE mask is always specified
+      - Fix agent crash when sending encrypted SNMPv3 traps
+      - Fix CVE-2008-4309 (GETBULK issue reported by Oscar Mira-Sanchez)
+      - Fix creation of views using snmpusm
+      - Fix handling of multiple matching VACM entries
+      - Fix invalid access to memory in TCP-MIB
+      - Fix logging of 'truncating integer values' in IP-MIB and TCP-MIB
+      - Fix memory leak when multiple interfaces have the same IPv6 address
+      - Fix possible crash when 64-bit counters exceed 2^32
+      - Fix two bugs with smux password support
+      - Fix udpTable indexes on big-endian 64bit Linux.
+      - Improve parsing of -LS command line argument
+      - Latch large-disk statistics at 2Tb (rather than wrapping)
+      - Register CPU/memory hardware modules with nsCacheTable
+      - Remove inline declarations for non-inline defined functions
+      - Report ifSpeed of down network interfaces
+      - Support large HW addresses (>6bytes)
 
-    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.
+    snmptrapd:
+      - [PATCH 2726302]: Pass results of Perl trap handlers to trap daemon
+      - Remove glibc-specific printf-formatting tokens
 
     snmptable:
       - [BUG 2837998]: Handle missing instance subidentifiers in results
-      - [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
+      - [PATCH 2850067]: Suppress extraneous "index" header token
 
     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.
+      - [BUG 2811577]: Fix bug in GetBulk handling
+      - [PATCH 2937996]: Add Date: header to email send by traptoemail
+      - Improve parsing of -LS command line argument
 
     build:
-      - [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:
+      - [BUG 2095983]: Fix errors in find-requires helper script
+      - [BUG 2782700]: Build failure when using --with-pkcs on Solaris
+      - [PATCH 2184039]: Misc fixes for freeing memory
+      - [PATCH 2952020]: Set permission on testing directories
       - '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
+    docs:
+      - [PATCH 2788072]: Document 'logmatch' functionality.
+      - [PATCH 2795739]: Fix incorrect disk/file size descriptions & unit specifiers
 
     mib2c:
-      - Remove unnecessary casts to u_char*
+      - [BUG 2827269]: Suppress non-ordered TODO 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
+      - [PATCH 2136437]: Improve 64-bit handling of large table FLAG defines 
+      - [PATCH 2316127]: Fix bug in iterate_access generated code.
 
     mibs:
       - [BUG 2973890]: Fix imports, DiskIOEntry list and revision histories
-      - patch 2974716: from bvassche: fix issues in the SMUX-MIB
-
-    misc:
-      - [PATCH 2836112]: Use the right modifier when printing size_t and
-	ssize_t variables.
-      - [PATCH 2952708]: Osterkamp: Added Perl implementation of BRIDGE-MIB
 
     perl:
-      - 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
+      - [BUG 1554817]: Fix class assigment so getRootOID works properly
+      - [PATCH 2022948]: Fix for Counter64 in perl subagent
+      - [PATCH 2182079]: Fix various warnings & allow use of "use strict"
+      - [PATCH 2361712]: Fix getbulk optimization during walks
+      - [PATCH 2793857]: Report failed asynchronous requests
+      - [PATCH 2890931]: Better handling of Counter64 values.
 
     python:
-      - [BUG 2919379]: Initialise SNMP sessions properly Provided by Diego
-	Billi
-      - [PATCH 2001656]: Handle null-termination of string values properly.
-	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
+      - [BUG 2258935]: Python Extension Module fails on Solaris
+      - [BUG 2919379]: Initialise SNMP sessions properly
+      - [PATCH 2074817]: Fix regexp engine CPU performance issues
+      - [PATCH 2260828]: Fix python snmpwalk memory leak
+      - [PATCH 2580979]: Fix python session pointers on 64-bit systems
+      - [PATCH 2667415]: Support "UseNumeric" option
+      - Support null-bytes in octet strings
 
-    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.
+    AIX:
+      - [BUG 2712670]: Agent crashes on AIX with hrStorage
 
-    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.
-      - 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.
+    *BSD:
+      - [PATCH 2435793]: Support 64-bit IF-MIB counters on sysctl systems
+      - Fix a make test
 
-    Linux:
-      - Improved EtherLike-MIB support Patch supplied by Josef Moellers
-      - builds again with embedded Perl disabled (bug 2985915).
+    HP-UX:
+      - [BUG 2779472]: Filesystems missing in hrStorage table (HP-UX 11.31)
+      - [PATCH 2088726]: Fix an issue reporting negative memory values
 
-    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.
+    Linux:
+      - [BUG 2822355]: Fix memory leaks on udpEndpointTable
+      - [PATCH 2926374]: Fix /proc/net/if_inet6 reading of ipAddressTable
+      - Fix build on modern distributions (using rpm-4.6)
+      - fix rare race condition when reading RPM database
 
     Solaris:
-      - 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.
-
-    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
+      - [PATCH 2012404]: Deal with more than 10 interfaces
+      - [PATCH 2406378]: Fix hrSWRunPerfMem on 64-bit Solaris systems
+      - [PATCH 2751588]: Inconsistent data (e.g. UDP/TCP MIB scalar values
+	of zero) can be reported on Solaris 10U4+
+      - Protect against missing package version
 
+    Windows:
+      - [BUG 2997492]: byte order of udpLocalPort is now correct
+      - [BUG 2971257]: Fixed winExtDLL handling of multi-varbind getNext requests.
+      - [BUG 2779541]: Fixed handle leak in pass_persist
+      - [PATCH 2686248]: Applied patch by Bart Van Assche
+      - [PATCH 2688342]: Fix various VS2005 compiler warnings
+      - [PATCH 2691876]: Applied patch by rdiez to allow
+      - [PATCH 2693746]: improved socket startup support
+      - Detect free UDP ports correctly for use in test infrastructure.
+      - Fix batch build using recent versions of Visual Studio.
+      - Fix builds with IPv6 support enabled
+      - Fix build under MinGW
+      - Fix winExtDLL build on Windows Vista, Windows 7
+      - Fix winExtDLL build with MinGW
+      - Simplify building Net-SNMP + winExtDLL with MSVC
+      - winExtDLL: Fixed a memory leak when SnmpExtensionQuery(Ex) fails
+      - winExtDLL: Log errors when loading an extension DLL fails
+      - winExtDLL: Use RFC-compliant error codes in SNMP response PDUs
+      - winExtDLL: Fix handling of multiple varbind SET requests
 
 
-*5.5*
+* 5.4.2 *
 
     snmplib:
-      - [BUG 1171904]: fix recvfrom hangs (already closed)
-      - [BUG 1345296]: fix recvfrom hangs (already closed)
-      - [BUG 1600171]: Support longer community strings in VACM config.
-      - [BUG 1619827]: improve handling of link dependencies
-      - [BUG 1660061]: Validate engineIDs more strictly.
+      - [BUG 1793545]: Take the name from the sockaddr_un
       - [BUG 1795840]: Signed 32-bit truncation logged as debug message
+      - [BUG 1801835]: Support multiple default transports for an app.
       - [BUG 1866655]: Handle parsing invalid OID subidentifiers
-      - [BUG 1898198]: Avoid a segfault when parsing broken mibs.
       - [BUG 1958041]: Ensure IDs are not truncated.
-      - [BUG 1976772]: Changed mib parser to handle long binary/hex strings.
-      - [BUG 2001124]: Allow embedded NUL characters in usmUserPublic
-      - [BUG 2027834]: Extend string print buffer by the minimum necessary.
-      - [BUG 2099985]: Added const qualifiers to time conversion routins
-      - [PATCH 2827722]: Improve strtoull to be less MSVC-specific
+      - [BUG 2027834]: Extend string print buffer by the minimum necessary
       - [BUG Coverity #183]: fix memory leak if IP_PKTINFO fails
-      - [PATCH  700681]: limited support for UDPv4 broadcast addresses
-      - [PATCH 1548670]: Fix range checks for unsigned integers
-                         (Debian bug #383380)
-      - [PATCH 1592706]: Fix memory leak when cloning varbinds.
-      - [PATCH 1616912]: fix memory leak in snmp_udp_transport
-      - [PATCH 1620424]: Honor NETSNMP_DS_LIB_DEFAULT_PORT over the default system
-      - [PATCH 1627049]: New API to handle large numbers of file descriptors.
-      - [PATCH 1634620]: Fix leaks from create_user_from_session failure.
-      - [PATCH 1640114]: Don't store trailing null character.
-      - [PATCH 1641895]: Extend short view masks (as per RFC specs)
-      - [PATCH 1641972]: add missing const
-      - [PATCH 1642071]: Don't fiddle with the storage of pre-existing users.
-      - [PATCH 1645698]: fix 64-bit signed integer encoding
-      - [PATCH 1653670]: Consistent SNMPv3 behaviour when opening sessions.
-      - [PATCH 1665543]: Handle VACM checks correctly.
-      - [PATCH 1681030]: Better handling of empty apptype configs.
-      - [PATCH 1681977]: Add callbacks prior to reading config.
-      - [PATCH 1687316]: Don't drop const from casts.
-      - [PATCH 1687317]: Remove an unused local variable
-      - [PATCH 1687318]: Make _sess_selpol_info static.
-      - [PATCH 1687319]: Declare snmp_sess_read_extd()
-      - [PATCH 1687325]: Fix problem with operator precedence.
-      - [PATCH 1687337]: Implement _sess_open in terms of snmp_sess_add
-      - [PATCH 1728247]: Clean up int64 type checking and usage for building packets
-      - [PATCH 1737085]: fix the -M switch for mib parsing vs defaults
       - [PATCH 1768285]: Count MIB files correctly in add_mibdir()
       - [PATCH 1775124]: Fix clientaddr functionality
       - [PATCH 1806336]: fix -LS option parsing
       - [PATCH 1807489]: fix ignoring of display hints.
       - [PATCH 1811469]: read_config_files_in_path() reads past malloc'd buffer
       - [PATCH 1875022]: improve callback locking mechanisms
-      - [PATCH 1882069]: Add token for specifying an exact SNMPv3 engineID
       - [PATCH 1895927]: change obsolete recv/send to recvfrom/sendto
-      - [PATCH 1898204]: Avoid a segfault when parsing broken mibs.
-      - [PATCH 1916840]: new config option to set SNMPv1 trap agent address
-	[PATCH 1916840]: introduce netsnmp_gethostbyname_v4
+      - [PATCH 1898204], [BUF 1898198]: fix segfault when parsing broken mibs.
       - [PATCH 1921861]: Avoid endless loop after truncating 64bit int
-      - [PATCH 2003450]: Fix a couple of 64-bit problems.
-      - [PATCH 2043018]: fix recvfrom hangs
-      - [PATCH 2258229]: Remove misleading comment
-      - [PATCH 2479700]: Fix zoned IP address used as table indices
-      - [PATCH 2492377]: Fix typo/bug in snmp_enable_callback()
-      - [PATCH 2505488]: Fix alarms not triggered due to large clock skews.
-      - [PATCH 2538169]: Prevent infinite retries for an invalid error-index.
-      - [PATCH 2689362]: Fix handling of IPv6 hostnames.
-      - [PATCH 2713841]: Fix runtime errors triggered by high-ASCII chars
-      - [PATCH 2772787]: Cleaner approach to handling large fd_sets.
-      - [PATCH 2780411]: Fix compiler warnings
-      - [FEATURES  454028]: Detect empty MIB index files.
-      - [FEATURES  851887]: Report range information for invalid SET requests.
-      - [FEATURES 1041888]: Check directory paths for config files.
-      - [FEATURES 1407476]: Rename 'strictCommentTerm' to reflect actual behaviour.
-      - Add GCC format checking attributes to the debug functions.
-      - Add iterator for singly linked lists
-      - Correct MAX_ENGINEID_LENGTH to 32 (as per SnmpEngineID TC)
-      - Correct registration of multiple premib config handlers.
-      - Deallocate various resources in shutdown_mib
+      - [PATCH 2003450]: Fix a couple of 64-bit problems
+      - Change CONTAINER_INSERT to not do partial inserts in containers
+	with multiple indices when one insert fails.
       - Do not leak memory whenever an udp address is formatted.
       - Do not try to look up empty strings as hostnames for IPv6
-      - Fix forwarding encoding
+      - Fix registering of multiple premib config handlers
       - Fix potential buffer overflow in sprintf for UDP/IPv6
-      - Handle mapping complex transport strings to simple name definitions
-      - Hardcode default port numbers (rather than use getservbyname)
-      - Implement RFC5343 contextEngineID probing.
-      - Improve CONTAINER_INSERT handling of partial failure with multiple indexes
-      - Improve netsnmp_watcher_info to handle statically allocated data.
-      - Introduce printf-like versions of config_perror and config_pwarn
-      - Library layering improvements
-      - Read def{Target,Domain} from snmp.conf as well as <app>.conf
-      - 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.
 
     snmpd:
-      - [BUG  902610]: Don't discard pending data following a TRAP.
-      - [BUG  902801]: Fix ordering of SMUX-registered subtrees.
-      - [BUG 1046327]: Reset "includeAllDisks" flag when reloading.
-      - [BUG 1102058]: Skip non-mounted disks (e.g. swap partitions)
-      - [BUG 1397895]: include missing interface declarations
-      - [BUG 1400101]: remove deleted interfaces from ifTable
-      - [BUG 1413728]: Reference index values in debug output correctly.
-      - [BUG 1416276]: Handle dependency on MIB parsing API.
-      - [BUG 1546817]: Fix snmpEnterprise varbind when forwarding v1 traps.
-      - [BUG 1558823]: fix ipAddressTable memory leak
-      - [BUG 1600261]: Handle non-x86 /proc/cpuinfo format
-      - [BUG 1600432]: Handle signals properly when restarting the agent.
-      - [BUG 1602286]: Don't let table holes block later rows.
-      - [BUG 1628613]: Restore memTotalFree.0 on Solaris
-      - [BUG 1633595]: Fix AgentX handling of Counter64 values
-      - [BUG 1677063]: Check for failed malloc calls.
-      - [BUG 1685067]: More precise handling of SNMPv3-admin MIB tables.
-      - [BUG 1685081]: Check for valid OID on Free/Undo passes.
-      - [BUG 1693039]: be silent when insert fails.
-      - [BUG 1712988]: default/configurable max # varbinds returned by GETBULK
-      - [BUG 1745113]: Handle single-line output in UCD compatability mode.
+      - [BUG 1557372]: Realign hrFSStorageIndex with hrStorageTable
       - [BUG 1748206]: Protect against failures to open /etc/mtab (or equiv)
-      - [BUG 1758212]: Handle missing variable types (IpAddress,Counter,Opaque)
-      - [BUG 1760633]: fix typo in debug message
+      - [BUG 1758212]: Handling missing variable types (IpAddress,Counter,Opaque)
       - [BUG 1771221]: Retain ifLastChange information on data reload.
       - [BUG 1792890]: include CIFS mounts when skipping remote filesystems
       - [BUG 1822360]: Fix spinlock helper error handling.
-      - [BUG 1912647]: Fix memory leak following failed requests.
-      - [BUG 1931391]: Fix reporting of Memory buffers and cached memory.
-      - [BUG 2001124]: Allow embedded NUL characters in usmUserPublic
-      - [BUG 2003144]: Increase size of AgentX packet build buffer
-      - [BUG 2006786]: Interface name can have more than 8 characters.
-      - [BUG 2018031]: Don't probe engineID in internal monitor sessions.
-      - [BUG 2693670]: Don't open (& clobber) AgentX socket if other transports fail
-      - [BUG 2822355]: Fix memory leaks on udpEndpointTable (linux) Patch
-	supplied by Frank Lichtenheld
-      - [PATCH 1225440]: Delay sighup till it is safe.
-      - [PATCH 1257347]: Non-fixed size connection buffer
-      - [PATCH 1550730]: Report errors from iterator-based handlers.
-      - [PATCH 1585146]: Extend range of available error codes
-      - [PATCH 1595568]: fix delegated SET requests from agentx subagents
-      - [PATCH 1601188]: Handle signals properly when restarting the agent.
-      - [PATCH 1601453]: Dynamic Memory failure handling improvements
-      - [PATCH 1617255]: fix length of the history array to match code.
-      - [PATCH 1620424]: Fix default port for sending notification
-      - [PATCH 1625069]: speed improvements for solaris routing table access
-      - [PATCH 1639282]: Save persistent snmpTargetParamsTable settings correctly.
-      - [PATCH 1639726]: Report physical memory correctly on *BSD
-      - [PATCH 1641332]: Include missing agent config definitions.
-      - [PATCH 1641685]: Handle unresponsive AgentX subagents more reliably.
-      - [PATCH 1641865]: Don't double check snmpTrapOID in the filter table.
-      - [PATCH 1642255]: Handle saving long snmpNotifyFilterTable entries.
-      - [PATCH 1644280]: Don't automatically probe for v3 EngineIDs.
-      - [PATCH 1644280]: Use the correct engineID when sending v3 traps.
-      - [PATCH 1644714]: replace last use of deprecated copy_word by copy_nword
-      - [PATCH 1654424]: Handle row deletion issues in dataset tables
-      - [PATCH 1657741]: Handle 64-bit types via pass mechanism.
-      - [PATCH 1659623]: Handle SMUX peers with an empty password.
-      - [PATCH 1665543]: Handle VACM checks correctly.
-      - [PATCH 1665549]: Handle creating VACM entries correctly.
-      - [PATCH 1665985]: Implement ipReasmTimeout
-      - [PATCH 1666737]: include IPv6 traffic in various UDP counters.
-      - [PATCH 1668193]: Fix check for v6 ReasmMaxSize support.
-      - [PATCH 1668193]: Update registration of ReasmMaxSize support.
-      - [PATCH 1668952]: Ignore zombie processes.
-      - [PATCH 1669048]: Add support for ipv6InterfaceIdentifier
-      - [PATCH 1676478]: fix udpEndpointRemoteAddress
-      - [PATCH 1678301]: Deallocate domain registry at shutdown
-      - [PATCH 1678305]: Deallocate cache in hardware/cpu/cpu on shutdown
-      - [PATCH 1678306]: Deallocate log in notification-log-mib/notification_log
-      - [PATCH 1678788]: Better handling of SMUX socket descriptors.
-      - [PATCH 1681043]: clean up helper includes
-      - [PATCH 1683054]: set udpEndpointInstance to identify different processes.
-      - [PATCH 1687336]: Start using the enhanced read_config interface
-      - [PATCH 1692768]: Fix copying of non-octet-aligned IP address prefixes.
-      - [PATCH 1692817]: Improved RFC 4293 support (inc. non-unicast/random IP addresses)
-      - [PATCH 1698184]: Register non-default context integers as writable.
-      - [PATCH 1700157]: Fix ordering of exec tokens in MIB output
-      - [PATCH 1700730]: Remove unused extern declaration.
-      - [PATCH 1700732]: Fix debug output statements.
-      - [PATCH 1700737]: Tidy up setSerialNo implementations.
-      - [PATCH 1702361]: Read stats from /proc/net/snmp6
-      - [PATCH 1702366]: Support for icmpStatsTable
-      - [PATCH 1703004]: Consolidate snmp6 handling.
-      - [PATCH 1710632]: fix memory leak on broken container insertions for the ipAddressTable
-      - [PATCH 1715395]: fix icmp table errors in new icmp code
-      - [PATCH 1715406]: registration ordering fixes for icmpStatsTable
-      - [PATCH 1716548]: Fix help output so no space is printed between -D and arguments.
-      - [PATCH 1719253]: fix skipNFSInHostResources for multiple walks
-      - [PATCH 1721096]: remove unused variable stats from kernel extraction for better portability.
-      - [PATCH 1723611]: New implementation of the RMON alarmTable
-      - [PATCH 1729629]: Fix memory leak in disman agent.
-      - [PATCH 1737439]: automatic link up/down traps on a walk
+      - [BUG 1851047]: Don't over-process failed watcher requests
+      - [BUG 1912647]: Fix memory leak following failed request
+      - [BUG 1931391]: Fix reporting of Memory buffers and cached memory
+      - [BUG 2003144]: Increase size of AgentX packet
+      - [BUG 2006786]: Interface name can have more than 8 characters
+      - [BUG 2018031]: Don't probe engineID in internal monitor sessions
+      - [BUG 2023803]: Remove irrelevant configure dependency (HP-UX 11)
+      - [PATCH 1716548]: Fix help output for -D
       - [PATCH 1744157]: Report duplicate "extend/exec" identifiers.
-      - [PATCH 1746831]: fix process checking race condition under Linux and platform #ifdefs
+      - [PATCH 1746831]: fix process checking race condition
       - [PATCH 1752934]: Fix off-by-one qsort error in table utilities.
       - [PATCH 1753437]: Fix error index on failing SET requests
       - [PATCH 1753449]: Fix AgentX error propagation
       - [PATCH 1753463]: Fix AgentX subagent ping alarm handling
       - [PATCH 1758208]: Fix memory leak
-      - [PATCH 1783733]: Put the package version number into the hrSWInst table for solaris.
-      - [PATCH 1784747]: Fix long usage for ip adresses on 64 bit systems in various MIB-II tables.
-      - [PATCH 1797111]: implement IP-MIB::ipIfStatsTable
-      - [PATCH 1804445]: High order bits of HCInOctets not set on Solaris
-      - [PATCH 1806501]: Add API for sending traps with a snmpv3 context
-      - [PATCH 1823465]:  fix icmp cache registration
+      - [PATCH 1774612]: More resilient process status handling
+      - [PATCH 1783733]: Include version info in hrSWInst table (solaris)
+      - [PATCH 1784747]: Fix ip adresses on 64 bit systems
       - [PATCH 1823800]: release and reload all trap destinations on SIGHUP
       - [PATCH 1826088]: Use the right interface to read the netmask
-      - [PATCH 1828839]: to provide better handling of disks mounted on paths with embedded spaces
+      - [PATCH 1826102]: support longer interface names on linux
+      - [PATCH 1828839]: handle of disk mount paths with embedded spaces
       - [PATCH 1849903]: do not spam log with asserts when XEN is used
-      - [PATCH 1866823]: truncate 32 bit counter values on 64 bit machines to avoid bogus warnings.
-      - [PATCH 1879261]: Add in inactive memory to the cached report for freebsd
-      - [PATCH 1882621]: Add LVM support to the partition table
+      - [PATCH 1866823]: truncate 32 bit counter values on 64 bit machines
+      - [PATCH 1879261]: Add inactive memory to cached report (freebsd)
       - [PATCH 1893468]: fixed registration of OIDs with ranges
-      - [PATCH 1901764]: for supporting logwatch files that are date based
-      - [PATCH 1909813]: fix table_iterator handling of SORTED hint
-      - [PATCH 1916840]: new config option to set SNMPv1 trap agent address
-      - [PATCH 1944581]: Protect against core dumps with long string index values.
+      - [PATCH 1896118]: fix ifTable 32bit counters on linux
+      - [PATCH 1909813]: fix table_iterator hint for SORTED tables
+      - [PATCH 1944581]: Don't core dump on long string index values.
+      - [PATCH 1951996]: Fix for CPU stats on FreeBSD
       - [PATCH 1967194]: Recognise NFS4 mounts
-      - [PATCH 1977439]: Fix pass/_persist bug with SET oid value
-      - [PATCH 1995753]: minor cleanup agent/auto_nlist.c
-      - [PATCH 2012402]: don't fail on failure to look up interface error counters.
       - [PATCH 2014204]: Support -g {groupname}
       - [PATCH 2022936]: Fix AgentX Counter64 decoding on 64-bit architectures
-      - [PATCH 2082726]: correctly report NIC speeds higher than 4Gbit/s
-      - [PATCH 2103492]: implement RMON-MIB::etherStatsJabbers
-      - [PATCH 2124288]: Fix setting of usmUserPrivProtocol at creation.
-      - [PATCH 2162652]: patch to fix simple hrfs checks when NFS is in use.
-      - [PATCH 2384779]: Fix handling of GetBulk with N>0,M==0
-      - [PATCH 2406378]: Fix hrSWRunPerfMem on 64-bit Solaris systems
-      - [PATCH 2431353]: Make some C++ compilers happier
-      - [PATCH 2435681]: Enable if-mib rewrite (with sysctl backend) on NetBSD
-      - [PATCH 2435793]: Support 64-bit IF-MIB counters on sysctl (*BSD) system.
-      - [PATCH 2449210]: add 64-bit disk usage statistics to UCD-SNMP-MIB::dskTable
-      - [PATCH 2564552]: provide libnetlink support for loading the tcp table
-      - [PATCH 2686280]: Report duplicate registrations as an error
-      - [PATCH 2791417]: fix snmpd segfault when run with -DALL Patch
-      - [PATCH 2822337]: Fix memory leak in ipAddressPrefixTable
-      - [FEATURES 1019429]: Set supplementary groups via initgroups(3)
-      - Add missing function declarations & include files.
-      - Add support for a user provided length variable
-	   and C string values to the watcher helper.
-      - Allow "monitor" to handle negative threshold values.
-      - Automatically reregister sysORTable entries from AgentX subagents.
-      - Clean up notification registrations during Event MIB cleanup
+      - [PATCH 2023633]: add SCTP-MIB implementation (Linux only)
       - Enforce the lower limit on scalar_groups
-      - Fix CVE-2008-4309 (GETBULK issue reported by Oscar Mira-Sanchez)
-      - Fix memory leak when multiple interfaces have the same IPv6 address
-      - Fix two bugs with smux password support.
-      - Handle device names with embedded spaces in UCD-SNMP-MIB::dskDevice
-      - Implement ipNetToPhysicalLastUpdated
-      - Implement ipAddressSpinLock
-      - Improve efficiency of scalar_group helper.
-      - Improve parsing of -LS command line argument
-      - Register CPU/memory hardware modules with nsCacheTable.
-      - Reimplementation of LM-SENSORS-MIB
-      - Reimplementation of snmpMPDStats.
-      - Reimplementation of usmStats.
-      - Remove unused variables.
-      - Suppress annoying "registration != duplicate" warning for root oids
-      - Unify all snmpd statistic variables with a common handler.
-      - Use the worker helpers from the register_*_instance helpers and
-	schedule the instance helpers for removal in 5.6
-      - Use static watcher_info for all watched variables and in int_watch.
-      - fix possible crash when 64-bit counters in ipSystemStatsTable get
-	bigger than 2^32
+      - suppress annoying "registration != duplicate" warning for root oids
+      - Handle device names with embedded spaces in UCD-SNMP-MIB (dskDevice)
 
     snmptrapd:
-      - [BUG 1638225]: Fix interpretation of transport address data.
       - [BUG 1955227]: Memory leak for embedded Perl on x86_64
       - [PATCH 1746992]: Improve snmptrapd access-control error messages.
       - [PATCH 1767725]: Close all non standard file handles
-      - [PATCH 1908288]: Run perl END block on termination
-      - [PATCH 2726302]: Pass results of Perl trap handlers to trap daemon
-      - [PATCH 1225440]: Delay sighup till it is safe.
-      - [FEATURE  741375]: Extend -F flag to cover syslog/execute format strings.
-      - [FEATURE 1159947]: Allow control of traphandle data format
-      - Add trap handler for logging traps to a mysql database
-      - Support for forwarding traps by OID subtree.
-      - Support per-trap format specifications
-      - Withdraw deprecated options.
-
-    apps:
-      - [BUG 1964136]: Drop NULL type from snmpset usage message.
-      - [BUG 2811577]: Fix bug in GetBulk handling. Don't get confused by
-	index values that contain a ':' character.
-      - [PATCH 1529523]: Close SNMP session on failure.
-      - Improve parsing of -LS command line argument
-
-    snmpnetstat:
-      - [PATCH 2564538]: Support GETBULK in v2c+ snmp versions
-
-    snmpusm:
-      - [PATCH 1591355]: Allow cloning to arbitrary engineIDs
-
-    snmpwalk:
-      - [PATCH 1723620]: Specify an explicit end-point for the walk.
 
     build:
-      - [BUG 1096166]: Handle --without-logfile correctly.
-      - [BUG 1567324]: Clarify prompting for user-supplied values.
-      - [BUG 1600093]: autoconf 2.60 breaks the build
-      - [BUG 1647976]: Cygwin/MinGW Windows build fails due to libtool error
-      - [BUG 1707469]: Win32: snmpv3-security-includes.h not installed
       - [BUG 1802833]: Ensure snmptrapd builds with --disable-snmpv1/2c
-      - [BUG 1823381]: Use a sensible default MIBDIR path on Cygwin/MinGW
       - [BUG 1823381]: Valid MIB directory search path on Windows
       - [BUG 1872266]: PERLCC check fails for CC with options
-      - [BUG 1995172]: fix --without-elf configure usage message
+      - [BUG 1995172]: fix --without-elf configure usage
       - [BUG 2014526]: Win32: snmpv3-security-includes.h not installed
       - [BUG 2023803]: Compilation problems on HP-UX 11.31
-      - [BUG 2095983]: fix syntax/permissing error in find-requires helper script
-      - [BUG 2168180]: Improve handling of various --enable/--disable options.
-      - [BUG 2782700]: build failure when using --with-pkcs on Solaris
-      - [PATCH 1577917]:Simplify makefile target references (patch from Apple)
-      - [PATCH 1600453]: Fix cross-compile builds in apples build environment.
-      - [PATCH 1624406]: option to hardcode location of mount table
-      - [PATCH 1625135]: configure location of python interpreter 
-      - [PATCH 1678300]: compile-subagent doesn't call shutdown_ methods
-      - [PATCH 1681073]: #ifdef based config_error instead of special cases
-      - [PATCH 1728241]: Add configure check for <sys/uio.h>
-      - [PATCH 1728230]: add configure check for gai_strerror()
-      - [PATCH 1728233]: make sure type nfds_t is defined
-      - [PATCH 1728237]: Move variable declaration at the top of netsnmp_udp_sendto
-      - [PATCH 1728244]: Add configure check for sin6_scope_id
-      - [PATCH 1728247]: Add type check for int??_t and uint??_t
+      - [PATCH 1681035]: improve net-snmp-config /bin/sh compatibility
       - [PATCH 1899762]: Tweak embedded_perl configure checks.
-      - [PATCH 2000874]: Cleanup transport selection.
-      - [PATCH 2091156]: correctly declare dependencies in Makefile. 'make -j <N>' should work now.
-      - [PATCH 2184039]: Fixes for freeing memory during error conditions.
-      - [PATCH 2797251]: Support multiple initialisation/shutdown, fix memory leaks
-      - Add a variation of AC_SEARCH_LIBS where the result is settable.
-      - Add "BuildRequires: perl-ExtUtils-Embed" to the spec file
-      - Add '--with-temp-file-pattern' configure option
-      - Assume target platform supports mem{cpy,move,set} & str{,r}chr
-      - Disable inlining on solaris (due to linking errors)
-      - Disable MIB-specific tests if the agent omits the necessary modules.
-      - '--disable-as-needed' reverts to linking system libs into applications
-      - Do not config_require(util_funcs) if nothing from util_funcs is used
-      - Do not require use of --with-endianness when cross-compiling.
-      - Fix build issues with ethtool (on RH9).
-      - Fix checks for support of static inline functions
-      - Fix compilation on IRIX
-      - Fix macro for '--with-features-of'
-      - Improve library layering & dependency handling when linking apps
-      - Improve robustness of sed/grep/etc commans (using autoconf macros)
-      - Improve RPM spec files, for consistency with vendor-provided packages.
-      - Mechanism for selecting build environment based on version
-      - New NETSNMP_ARG_WITH/ENABLE macros to catch incorrect 'with/enable' usage
-      - '--enable-ipv6' should only enable 'mibII/ipv6' on supported systems
-      - Remove Net-SNMP special-case handling of standard functionality.
-      - Restructure configure template
-      - Stricter checks on '--with-persistent-mask' values
-      - Update to autoconf 2.63 & libtool 2.2.6
-      - Use 'config_error' to generate error messages at configure time.
-      - Use LDFLAGS when building agent, helpers and mib lib
-      - Use "libtool clean" to ensure removal of all libtool temp files.
-      - allow building with Perl versions that lack PERL_EXIT_DESTRUCT_END
-      - build fix for Tru64 Unix and IRIX: move _XOPEN* definitions to
-	where they are in 5.4.x and earlier
-
-    documentation:
-      - [BUG 1247164]: Document use of OID macros
-      - [BUG 1407476]: Clarify MIB parsing toggle options & comment handling.
-      - [BUG 1614104]: broken snmpd(8) manual page in 5.4
-      - [BUG 2027129]: fix typo in snmpcmd.1
-      - [PATCH 1604580]: SNMP(3) manual page corrections
-      - [PATCH 1644735]: Add gcc build instructions for IRIX
-      - Fix minor documentation bugs (patch from Apple)
+      - add --with-temp-file-pattern configure option
+      - Add support for winExtDLL to build.bat (win32)
+      - Disable agent tests if built without necessary mib modules
+      - Limit the use of _KERNEL definitions in configure tests to match
+        the use of _KERNEL in our codebase
+      - Update to libtool 1.5.26
 
     mib2c:
-      - [BUG  833673]: More focused size checks.
-      - [BUG 1429472]: Protect against missing instances (and invalid objects)
-      - [BUG 1582972]: Handle @while@/@end@ properly.
-      - [BUG 1737068]: Handle MIB objects with embedded hyphens
-      - [BUG 1874059]: Handle MIB objects with embedded hyphens
-      - [PATCH 1668171]: skip unknown cols in min/max range for tables
-      - [PATCH 1719244]: Fix mfd generating map function
+      - [BUG 1874059,1737068]: Handle MIB objects with embedded hyphens
       - [PATCH 1914398]: install mib2c.perl.conf
-      - [PATCH 2136437]: Improve FLAG defines for huge tables on 64bit systems
-      - [PATCH 2316127]: Fix bug in iterate_access generated code.
 
-    misc:
-      - [PATCH 1737727]: Add a NETSNMP_OLDAPI_ prefix to old-api access macros.
-      - [PATCH 1737727]: Replace NETSNMP_CLEAN_NAMESPACE with NETSNMP_NO_LEGACY_DEFINITIONS
-      - Add config reread support to "net-snmp-config --compile-subagent" code.
-      - Avoid calling debug macros with wrong number of arguments.
-      - Don't use the legacy symbol SNMPTRAPD_DISABLE_AGENTX
-      - Preliminary (alpha) support for SNMP over SSH and DTLS/UDP.
-      - Preliminary (alpha) support for the TSM security model
-      - Separate user management into new net-snmp-create-v3-user script
+    documentation:
+      - [BUG 2027129]: fix typo in snmpcmd.1
 
-    unspecified:
-      - [BUG 1596638]: memory leak in ipCidrRouteTable, inetCidrRouteTable
-      - [BUG 1611524]: fix tcp connection table fd leak
-      - [BUG 1793545]: Take the name from the sockaddr_un in order to avoid
-	               transport specifiers and other decorations.
-      - [BUG 1801835]: Multiple default transports for an application.
-      - [BUG 1851047]: Don't continue to process a corrupt watched value.
-      - [PATCH 1601453]: Dynamic Memory failure handling improvements
-      - [PATCH 1674298]: Remove unused sinkport variable
-      - [PATCH 1674299]: Lessen scope of zone variable in dump_realloc_oid_to_inetaddress
-      - [PATCH 1674302]: Lessen scope of len variable in convert_v2pdu_to_v1
-      - [PATCH 1678298]: compile-subagent checks for bad HAVE_SIGNAL_H
-      - [PATCH 1678302]: netsnmp_mibindex_load leaks memory
-      - [PATCH 1681035]: Improve net-snmp-config /bin/sh compatibility
-      - [PATCH 1902105]: Hide and improve debug log messages
-      - [PATCH 1902113]: Fix error log in inetNetToMediatable
-      - Fix for refs to OBJECT-GROUP in another MIB
-      - Initalize log subsystem
-      - Remove support for use of varargs.h.
+    misc:
+      - Avoid calling debug macros with too few/many arguments.
+      - enhance snmpnetstat test to check tcpTable in TCP mode
 
     perl:
-      - [BUG 1450669]: a perl agentx consumes memory
-      - [BUG 1554817]: Fix class assigment so getRootOID works properly.
       - [BUG 1606062]: perl bulkwalk (async) coredump
-      - [BUG 1619827]: improve handling of link dependencies
       - [BUG 1747733]: More robust handling of undefined values.
+      - [BUG 1826174]: Check for buffer overflow when printing values.
       - [BUG 1834539]: Consistent handling of OID parsing.
-      - [PATCH 1627949]: a perl agentx consumes memory
-      - [PATCH 1725049]: Fix bulkwalk in cases of non-repeater usage.
       - [PATCH 1811463]: perl async callback coredump
-      - [PATCH 1834983]: Consistent handling of OID parsing.
       - [PATCH 1914393]: registerAgent can now be run multiple times
       - [PATCH 1914643]: fix issues with embedded perl
       - [PATCH 1914645]: better end of mib support
       - [PATCH 1920390]: fix registration of tables with .0 as IIDs
-      - [PATCH 1956193]: beta threadable perl module code for SNMPv1/2c usage.
-      - [PATCH 2021444]: Support SNMPv2c in gettable processing
-      - [PATCH 2022948]: Fix for Counter64 in perl subagent
-      - [PATCH 2182079]: Fix various perl warnings & allow use of "use strict"
-      - [PATCH 2272347]: Implement "implied" in MIB hash
-      - [PATCH 2361712]: Fix getbulk optimization during walks
-      - [PATCH 2709705]: Retrieve src/target IP address in Perl-based agents
-      - [PATCH 2763717]: Allow perl to use OPAQUEs
-      - [PATCH 2793857]: Report failed asynchronous requests.
-      - fix SNMP SET for IP addresses on 64-bit
-      - fix prerequisites for NetSNMP::TrapReceiver
-      - fix syntax error in NetSNMP::agent::Support
-      - install embedded perl init files with correct permissions
+      - [PATCH 2021444]: Support SNMPv2c in gettable
+      - fixed an extra brace in the docs pointed out by Jason Martin
 
     python:
-      - [BUG 1826174]: Check for buffer overflow when printing values.
-	               Addresses CVE-2008-2292
-      - [BUG 1868278]: Python segfault
-      - [BUG 2258935]: Python Extension Module fails on Solaris
-      - [PATCH 1716114]: Let python build in source tree  (Debian patch#38)
+      - [BUG 1826174]: Check for buffer overflow when printing values
+      - [BUG 1868278]: Python segfault (introduced by r16962)
       - [PATCH 1862177]: made code more windows/cygwin compiler friendly
-      - [PATCH 1877840]: Fix MIB label and indexing due to sl, broken regexp
-      - [PATCH 2074817]: Fix regexp engine CPU performance issues
-      - [PATCH 2260828]: Fix python snmpwalk memory leak
-      - [PATCH 2580979]: Fix python session pointers on 64-bit systems.
-      - [PATCH 2667415]: Support "UseNumeric" option.
-      - [PATCH 2775800]: Allow threading to continue when a request is sent
-
-    test:
-      - enhance snmpnetstat test to check tcpTable in TCP mode
-      - support a -n flag to RUNTESTS to print the test number found in the
-	test file as opposed to the numerical count
-      - Do not terminate on SIGCHLD since dash and soume bourne shells will
-	exit the main shell when a subshell terminates in that case.
-
-    Ports:
-      - [BUG 1710910]: initial support for DragonFly BSD
-      - [PATCH 1623874]: add GNU/kFreeBSD support
+      - [PATCH 1877840]: fix MIB label and indexing due to broken regexp
 
     AIX:
-      - [PATCH 1665079]: AIX patches for cpu stats and process monitoring
-      - Add support for AIX 6.x
-      - 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.
-      - [BUG 1633483]: Support CPU HAL on FreeBSD4.x
-      - [PATCH 1951996]: Fix for CPU stats on FreeBSD
-      - [PATCH 2507249]: sctp-mib support for FreeBSD.
-      - Add initial support for upcoming FreeBSD 7
-      - Fix configure warning for sys/conf.h
-      - patch from Cezary Morga to fix a make test on freebsd
-
-    HP-UX:
-      - [BUG 2779472]: Filesystems missing in hrStorage table
-      - [PATCH 2088726]: Fix an issue reporting memory in negative values.
-      - Needs _REENTRANT defined to pick up strtok_r.
-
-    IRIX:
-      - [PATCH 1675869]: CPU statistics for IRIX based on PCP
-      - [PATCH 1709748]: Optimized IRIX cpu stats
+      - Add support for AIX 6.x.
 
     Linux:
-      - [BUG 1666005]: Fail to walk ipv6InterfaceTable on Linux
-      - [PATCH 1581294]: host-resources improvements
-      - [PATCH 1969627]: Handle install with empty /etc/sysconfig/network file 
-      - [PATCH 1704105]: Add IPv6 support to the inetNetToMediaTable
-      - [PATCH 1705594]: Various fixes to ipAddressPrefixTable reporting
-      - [PATCH 1708243]: Implement ipDefaultRouteTable
-      - [PATCH 1715405]: Implement ipv6ScopeZoneIndexTable
-      - [PATCH 1719254]: update HRFS_ignore list to current linux likelyhoods
-      - [PATCH 1724602]: MfD-based ipDefaultRouterTable implementation
-      - [PATCH 1783423]: return a correct ipv6InterfaceIdentifier of loopback
-      - [PATCH 1826102]: support longer interface names
-      - [PATCH 1828602]: Support ipDefaultTTL and ipForwarding SETs
-      - [PATCH 1896118]: Fix ifTable 32bit counters
-      - [PATCH 1927751]: Implement icmpMsgStatsTable
-      - [PATCH 2023633]: Implement SCTP-MIB
-      - [PATCH 2053273]: Implement EtherLike MIB
-
-    MacOSX:
-      - [PATCH 1600453]: OS X compile-time endian determination
-      - [PATCH 1600522]: CPU HAL implementation for mach/darwin
-      - Improve memory reporting (patch from Apple)
-      - Patch: 3514049 from twobits-github: fix compilation on darwin11
+      - [PATCH 1969627]: Handle empty /etc/sysconfig/network file
+      - Improved RPM spec files, for better consistency with
+        vendor-provided packages
 
     Solaris:
-      - [BUG 1626153]: No hrSWRun informations on Solaris zones
       - [BUG 1810814]: tcpTable missing entries and wrong ports
-      - [BUG 1819189]: {ifOperStatus,ipAdEntIfIndex} reported incorrectly
-      - [BUG 1822275]: {ifOperStatus,ipAdEntIfIndex} reported incorrectly
-      - [PATCH 1623447]: Fix hrSWRun for terminated processes
-      - [PATCH 1719730]: Support for ipSystemStatsTable and ipAddressTable
       - [PATCH 1824196]: {ifOperStatus,ipAdEntIfIndex} reported incorrectly
       - [PATCH 1834699]: Fix 1833294: DLPI problems on Solaris 2.6
-      - [PATCH 2012404]: Deal with more than 10 interfaces.
-      - [PATCH 2751588]: Inconsistent data can be reported on Solaris 10U4+
       - #define NEW_MIB_COMPLIANT to support Solaris 10U4+
-      - IF-MIB fix: add missing return at end of get_if_stats
-
-    Win32:
-      - [BUG 1662987]: compile error on Cygwin
-      - [BUG 2779541]: Fixed handle leak in pass_persist.
-      - [PATCH 1622080]: A: pass Win32 handles remain open.
-      - [PATCH 1706344]: Fix compilation with cygwin
-      - [PATCH 2686248]: Fix several winExtDLL bugs.
-      - [PATCH 2688342]: Fix VS2005 various compiler warning
-      - [PATCH 2691876]: Allow compiling the services using unicode.
-      - [PATCH 2693746]: improved socket startup support
-      - Add support for winExtDLL to build.bat
-      - Build fixes for MSVC 2008.
-      - fix AES support
-      - fix win32/Configure --with-ipv6
 
-*5.4*
-
-    build:
-      - [BUG 1416481]: Support specifying an explicit linker.
-      - enable-as-needed will try to link built libraries against needed
-	libraries at library link time, rather than application link time.
+* 5.4.1 *
 
     snmplib:
-      - [PATCH 1282566]: to rework transport creation to allow for
-	alternative interpretations of the address and a more flexible
-	transport registration system
-      - [BUGS: 1537459, BUGS: 1540745] Fix missing MIB parsing tokens
-      - [PATCH 1562168]: check for a sock fd less than 0.
-      - [PATCH 1570650]: create a logging shutdown function to propelry
-	clean up log registrations if needed.
-      - [PATCH 1565293]: UDPIPv6 transport reports wrong port number
-      - rename init_mib to netsnmp_init_mib to avoid symbol clash with
-	HP-UX's libnm
-      - [PATCH 1509943]: responses will get sent from the original dest IP
-	address when possible.
+      - Change snmp_sess_add_ex to consistently close and
+      - Deallocate the confmibs and confmibdirs
+      - FEATURES: 1041888: Check directory paths for
+      - FEATURES: 851887: Report range information for
+      - Read the config parameters defTarget and
+      - Use the default_target argument if it is
+      - [BUG 1600171]: Support longer community strings
+      - [BUG 1619827]: link against needed external
+      - [BUG 1619827]: link net-snmp libraries and binaries
+      - [BUG 1660061]: Validate engineIDs more strictly.
+      - [PATCH 1548670]: Fix range checks for unsigned
+      - [PATCH 1592706]: Fix memory leak when cloning
+      - [PATCH 1616912]: fix
+      - [PATCH 1620424]: Honor
+      - [PATCH 1634620]: Fix leaks from
+      - [PATCH 1640114]: Don't store trailing null
+      - [PATCH 1641895]: Extend short view masks (as per
+      - [PATCH 1641972]: add missing const
+      - [PATCH 1653670]: Consistent SNMPv3 behaviour
+      - [PATCH 1681030]: Better handling of empty
+      - [PATCH 1687316]: Don't drop const from casts.
+      - [PATCH 1687325]: Fix problem with operator
+      - increment "current" and "age" according to
+      - library layering improvements: introduce
+      - patch: 1645698: fix 64-bit signed integer
+
+    snmpapi:
+      - Do not use getservbyname to find default port
 
     snmpd:
-      - [PATCH 1550725]: A new uint instance helper to match the existing
-	int, long and ulong helpers
-      - [BUG 1527930]: fix smux authentication
-      - [PATCH 1561277]: use net.ipv6.neigh.lo.base_reachable_time_ms
-	instead of deprecated base_reachable_time
-      - [BUG 1474468]: ifConnectorPresent always returns 0
-      - [PATCH 1524755]: to better support the UDPTable for unknown address
-	types
-      - [PATCH 1534877]: to add support for skipping NFS entries in the
-	host resources hrStorageTable.	See the skipNFSInHostResources
-	token in the snmpd.conf file for details.
-      - [PATCH 1557514 ]: Do not attempt to collect data during SET
-	processing.
-      - [BUG 1535903]: Support spaces within security names
-      - Agent builds default module list from a default_mibs.h rather than
-	a hard coded configure list
-      - [BUG 1559358]: check scanf results for diskio scanning
-      - [BUG 1564233]: Have configure test for rpm headers not just the
-	libraries
-      - [PATCH 1579364]: Updated darwin patch to fix compilation on Tiger
-	and Leapord
-      - [PATCH 1565703]: patch to fix rapid registrations/deregistration
-	issues
-      - [PATCH 1562688]: fix ping/reattach agentx code
-      - [PATCH 1551948]: Make pass_persist usable on uClinux
-      - [PATCH 1568150]: Extend pass_persist error messages that can be
-	passed back from the script
-      - [PATCH 1570650]: make delete table function public
-      - [PATCH 1575984]: block SIGHUP during reconfig
-      - [PATCH 1570982 ]: Solaris IF-MIB: Support for IPv6-only interfaces
-      - memTotalFree should report total virtual instead of physical memory
-      - build fix for --without-kmem-usage
-      - [BUG 1585815]: fix mfd bits length calculation
-      - [BUG 1427410]: Set auth engineID for SNMPv3 traps.
-      - [BUG 1502267]: Build access list in the correct order.
-      - [PATCH 1554827]: from rtyle: fix handling of failed proxy SET
-	requests
-      - [PATCH 1598966]: Fix bug #1598927: #elif build fix
+      - Correct the dependency information for
+      - [BUG 1046327]: Reset "includeAllDisks" flag when
+      - [BUG 1073782]: Restore PerfStat values for FreeBSD
+      - [BUG 1102058]: Skip non-mounted disks (e.g. swap
+      - [BUG 1159908]: Fix memory leak
+      - [BUG 1397895]: include missing interface
+      - [BUG 1413728]: Reference index values in debug
+      - [BUG 1416276]: Handle dependency on MIB parsing
+      - [BUG 1546817]: Fix snmpEnterprise varbind when
+      - [BUG 1558823]: fix ipAddressTable memory leak
+      - [BUG 1600261]: Handle non-x86 /proc/cpuinfo format
+      - [BUG 1602286]: Don't let table holes block later
+      - [BUG 1628613]: Restore memTotalFree.0 on Solaris
+      - [BUG 1633595]: Fix AgentX handling of Counter64
+      - [BUG 1677063]: Check for failed malloc calls.
+      - [BUG 1685067]: More precise handling of
+      - [BUG 1685081]: Check for valid OID on Free/Undo
+      - [BUG 1712988]: default and configurable maximum
+      - [BUG 1745113]: Handle single-line (and zero-line)
+      - [BUG 1760633]: fix typo in debug message
+      - [BUG 902610]: Don't discard pending data following
+      - [BUG 902801]: Fix ordering of SMUX-registered
+      - [PATCH 1601188, ]: BUG: 1600432: Handle signals
+      - [PATCH 1620424]: Fix notification sending so that
+      - [PATCH 1637287]: Handle multiple target tags
+      - [PATCH 1639282]: Save persistent
+      - [PATCH 1639360]: Fix snmpNotifyFilterProfileTable
+      - [PATCH 1639726]: Report physical memory
+      - [PATCH 1641332]: Include missing agent config
+      - [PATCH 1641685]: Handle unresponsive AgentX
+      - [PATCH 1641865]: Don't double check snmpTrapOID
+      - [PATCH 1642255]: Handle saving long
+      - [PATCH 1644280]: Don't automatically probe for
+      - [PATCH 1644280]: Use the correct engineID when
+      - [PATCH 1644714]: replace
+      - [PATCH 1659623]: Handle SMUX peers with an empty
+      - [PATCH 1665549]: Handle creating VACM entries
+      - [PATCH 1665985]: Implement ipReasmTimeout
+      - [PATCH 1666737]: include ipv6 counts in
+      - [PATCH 1668193]: Fix check for v6 ReasmMaxSize
+      - [PATCH 1668193]: Update registration of
+      - [PATCH 1668952]: Ignore zombie processes.
+      - [PATCH 1676478]: fix udpEndpointRemoteAddress
+      - [PATCH 1678788]: Better handling of SMUX socket
+      - [PATCH 1683054]: set udpEndpointInstance to
+      - [PATCH 1687336]: Start using the enhanced
+      - [PATCH 1692768]: Fix copying of non-octet-aligned
+      - [PATCH 1698184]: Register non-default context
+      - [PATCH 1700730]: Remove unused extern declaration.
+      - [PATCH 1700732]: Fix debug output statements.
+      - [PATCH 1700737]: Tidy up setSerialNo
+      - [PATCH 1729629]: Fix memory leak in disman
+      - patch from Wojtek Jawor to handle row deletion
+      - patch: 1225440: Apply intent of patch: to delay
+      - patch: 1595568: from cyril_margaria: fix
+      - patch: 1617255: fix length of the history array
+      - patch: 1700157: from afrika: fixes ordering of exec
+      - patch: 1710632: from mavarley: fix memory leak on
+      - patch: 1719253: from "Christian Jung": fix
+      - patch: 1719254: from "Christan Jung": update
 
     snmptrapd:
-      - the traphandle directive now supports a -t switch to indicate
-	matching any OID in the tree below the specified OID
-      - [PATCH 1536773]: support partial oid matching
-      - [PATCH 1598968]: Fix bug #1587759: snmptrapd doesn't recognize -A
-	option
+      - [BUG 1638225]: Fix interpretation of transport
+      - [PATCH 1620424]: Fix notification reception so
+      - patch: 1225440: Apply intent of patch: to
+      - upport for forwarding traps by OID subtree.
 
-    snmpdf:
-      - [BUG 1515507]: Handle failed requests better
+    apps:
+      - [BUG 1964136]: Drop NULL type from snmpset usage
+      - [PATCH 1529523]: Close SNMP session on failure.
 
-    perl:
-      - Fixed the perl bulkwalk function
-      - [PATCH 1575937]: fix usenumeric output in async varbinds so they
-	return OIDs instead of empty strings.
-      - update default_store module to latest default_store c-binding
-	tokens
-      - make perltest fixes for Solaris 2.6 and earlier
-      - 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.
+    build:
+      - Link libdl against libnetsnmpmibs instead of
+      - Link libkvm and libwrap to libnetsnmpagent
+      - [BUG 1096166]: Handle --without-logfile correctly.
+      - [BUG 1647976]: Cygwin/MinGW Windows build fails
+      - [PATCH 1625135]: configure location of python
+      - [PATCH 1681073]: #ifdef based config_error instead
+      - [PATCH 1728226]: make sure
+      - [PATCH 1728230]: add
+      - [PATCH 1728237]: Move
+      - [PATCH 1728244]: Add
+      - [PATCH 1728247]: Add type
+      - add "BuildRequires: perl-ExtUtils-Embed" to the
+      - add configure check for hasmntopt to fix the
+      - only enable mibII/ipv6 through --enable-ipv6 on
+      - patch from apple to simplify makefile target
+      - update to libtool 1.5.24 (from 1.5.22)
+      - use LDFLAGS when building agent, helpers and mib
+      - use libtool clean for removing files to ensure we
+      - work around libnetsnmpagent/libnetsnmphelpers
+      - yet another fix to address build issues with
+
+    building:
+      - Check for support of static inline functions
+      - Disable inlining on solaris as there are some
+
+    configure:
+      - [BUG 1567324]: Clarify prompting for
+
+    documentation:
+      - [BUG 1247164]: Document use of OID macros
+      - [BUG 1407476]: Clarify MIB parsing toggle
+      - [BUG 1614104]: broken snmpd(8) manual page
+      - [PATCH 1604580]: SNMP(3) manual page
+
+    irix:
+      - [PATCH 1709748]: Optimized IRIX cpu stats
+
+    library:
+      - FEATURES: 454028: Detect and handle empty MIB
+      - Patch from "Mitsuru Chinen": cleans up the
+      - [PATCH 1642071]: Don't fiddle with the storage
+      - [PATCH 1665543]: Handle VACM checks correctly.
 
     mib2c:
-      - [BUG 1479916]: Restore consistency in row creation code.
-      - [BUG 2827269]: Suppress non-ordered TODO comments.
+      - [BUG 1429472]: Protect against missing instances
+      - [BUG 1582972]: Handle @while@/@end@ properly.
+      - [BUG 833673]: More focused size checks.
+      - [PATCH 1668171]: skip unknown cols in min/max
 
     misc:
-      - Most net-snmp specific defines are now (also) available under a
-	proper NETSNMP_ prefix. The older, potentially conflicting names as
-	well as the autoconf variables can now be turned off by a special
-	define.
-      - [BUG 1585250]: don't use deprecated options in start script
-      - "make test" fixes for non-UDP transports
-      - [BUG 1577913]: add missing manual pages for executables, supplied
-	by Debian
-      - [PATCH 1596028]: from "Stephen J. Friedl": const fixes for the
-	mib_api(3) manual page
-      - RPM spec file fixes for 64-bit platforms
+      - Don't use the legacy symbol
 
-    MacOSX:
-      - [PATCH 1566777]: build fixes for memory_darwin.c
-      - build fix for mibII/udpTable
+    patch:
+      - fix the -M switch for
+
+    perl:
+      - [BUG 1450669]: PATCH: 1627949: from martin987: a
+      - [BUG 1619827]: link libnetsnmpagent/libnetsnmptrapd
+      - fix SNMP SET for IP addresses on 64-bit
+      - fix prerequisites for NetSNMP::TrapReceiver
+      - fix syntax error in NetSNMP::agent::Support
+      - install embedded perl init files for
+      - patch: 1725049: fix bulkwalk in cases of non-repeater
+
+    ports:
+      - patch: 1706344: from naylor: fix compilation with
+
+    python:
+      - [PATCH 1716114]: Let python build in source tree
+
+    test:
+      - support a -n flag to RUNTESTS to print the test
+
+    unspecified:
+      - [BUG 1596638]: memory leak in ipCidrRouteTable,
+      - [BUG 1600093]: autoconf 2.60 breaks the build
+      - [BUG 1611524]: fix tcp connection table fd leak
+      - [BUG 1633483]: Support CPU HAL on FreeBSD4.x
+      - [BUG 1710910]: initial support for DragonFly BSD
+      - [PATCH 1678298]: from magfr: compile-subagent checks for
+      - [PATCH 1678301]: from magfr: deallocate domain registry
+      - [PATCH 1678302]: from magfr: netsnmp_mibindex_load leaks
+      - [PATCH 1678305]: from magfr: Deallocate the cache in
+      - [PATCH 1678306]: from magfr: Deallocate the log in
+      - [PATCH 1719244]: fix mfd generating map function
+      - [PATCH 1728241]: from mitsuru_chinen: add configure check
+      - patch from apple to fix cross-compile builds in apples
+      - patch from apple to fix minor documentation bugs.
+      - patch from apple to improve memory reporting
+
+    AIX:
+      - [PATCH 1665079]: AIX patches
+      - build fixes for embedded Perl
+      - fix default shared library building instead of forcing
+      - use "-Wl,-brtl" when compiling with gcc
+
+    FreeBSD:
+      - add initial support for upcoming FreeBSD 7
+      - fix configure warning for sys/conf.h
 
-    Tru64:
-      - fix "auto_nlist failed on arptab_size at location 0" errors
+    HP:
+      - UX: BUG: 1742278: compile error on HP-UX 11.23 (IA64)
+      - UX: HP-UX needs _REENTRANT defined to pick up
 
     IRIX:
-      - proper implementation for UCD-SNMP-MIB::laTable (avoiding nlist)
+      - [PATCH 1675869]: CPU statistics for IRIX
+
+    Linux:
+      - [BUG 1666005]: Fail to walk ipv6InterfaceTable on
+      - [PATCH 1581294]: 
+      - fix ethtool configure check for recent systems
+
+    MacOSX:
+      - [PATCH 1600453]: OS X
+      - [PATCH 1600522]: CPU HAL
+
+    Perl:
+      - link Perl modules against the exact set of libraries
 
     Solaris:
-      - [PATCH 1569537,1569539]: new UDP-MIB and TCP-MIB implementation
-	(enable through --with-mib-modules=udp-mib,tcp-mib)
+      - IF-MIB fix: add missing return at end of
+      - [BUG 1626153]: no hrSWRun informations on
+      - [PATCH 1623447]: hrSWRun
 
-    AIX:
-      - use correct ARPTAB_SYMBOL and ARPTAB_SIZE_SYMBOL
-      - [BUG 1205300]: nlist err: neither nproc nor _nproc found (same for
-	rt_table, rthashsize, rthost, rtnet)
+    Win32:
+      - [BUG 1662987]: compile error on Cygwin
+      - [PATCH 1622080]: A: pass Win32
+      - fix AES support
+      - fix win32/Configure --with-ipv6
 
-    qnx6:
-      - [PATCH 2836895]: support for QNX6
diff --git a/COPYING b/COPYING
index d368331..5bea4ac 100644
--- a/COPYING
+++ b/COPYING
@@ -135,7 +135,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 ---- Part 5: Sparta, Inc copyright notice (BSD) -----
 
-Copyright (c) 2003-2012, Sparta, Inc
+Copyright (c) 2003-2010, Sparta, Inc
 All rights reserved.
  
 Redistribution and use in source and binary forms, with or without
@@ -229,66 +229,3 @@ 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 8: Apple Inc. copyright notice (BSD) -----
-
-Copyright (c) 2007 Apple 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:
-
-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.  Neither the name of Apple Inc. ("Apple") 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 APPLE AND ITS 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 APPLE 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.
-
----- Part 9: ScienceLogic, LLC copyright notice (BSD) -----
-
-Copyright (c) 2009, ScienceLogic, LLC
-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 ScienceLogic, LLC 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.
diff --git a/ChangeLog b/ChangeLog
index 1592a84..c01f3d3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,58173 +1,933 @@
-# -*- text -*-
-
-----------------------------------------------------------------------
-
-Changes: V5.7.2 -> V5.7.2.1
-
-commit d8f9d815aeffae7894d44e6a8861acfbd1f999ce
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Feb 19 16:34:54 2014 -0800
-
-    make depend for 5.7.2.1
-
-commit f518e7d10ceeaf2db028ecba5c81a8675d6122e2
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Feb 19 15:46:09 2014 -0800
-
-    Version number update: 5.7.2.1
-
-commit d2cb34e64bfd007fab44ad0c209ab102822470f0
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Feb 19 15:43:22 2014 -0800
-
-    a shortened makerelease script for this release
-
-commit 236c474e9a185fa58e3b2bf805c6f8063e158702
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Feb 19 15:26:53 2014 -0800
-
-    announcement information about 5.7.2.1
-
-commit 8407b6ce46ca7159b3c816d1024e20a53f9a1c6c
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Feb 19 15:21:57 2014 -0800
-
-    bug fix from fenner: fix ICMP mib table handling on linux
-
-----------------------------------------------------------------------
-
-Changes: V5.7.2.rc3 -> V5.7.2
-
-commit 5054b570619df0a81958a045bef135b20205f036
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Oct 9 15:26:05 2012 -0700
-
-    make depend for 5.7.2
-
-commit 56a797ff3e71dc886467d17ce025b0237c8c1cc3
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Oct 9 14:42:23 2012 -0700
-
-    Version number update: 5.7.2
-
-commit 0813f8b62df0e8440ffef161ce134ff9455e7de9
-Author: Jan Safranek <jsafrane at redhat.com>
-Date:   Tue Oct 9 06:33:58 2012 -0700
-
-    fix double-negative typo
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit a6a88927534684e275ccf0e780513094a73fc6bb
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Tue Oct 9 06:31:21 2012 -0700
-
-    AIX net-snmp5.7.1 hrSWRunPath not complete
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 58a4d8839021f772c35a732bd096d1e290dc0a62
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Tue Oct 9 06:30:57 2012 -0700
-
-    AIX net-snmp5.7.1 hrSWRunPath not complete
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 626eabec4ea98e5359089790858479a59a26cdcb
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Sep 30 23:30:28 2012 +0200
-
-    CHANGES: snmplib: Move the check that the pdu variable is non-NULL to before the first dereference of it.
-
-commit 68aab572c2d2746b51a95eba110568c38b050808
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Sep 25 19:07:42 2012 -0700
-
-    Release Candidate for V5-7-patches
-
-commit 0a41533b1b49f00d7357a3d2bea5dfa75e8edcd7
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Mon Sep 24 00:07:19 2012 +0200
-
-    CHANGES: testing: Add test cases for snmp_service
-
-commit a61b48d78e11d945def46fde0f7d55f7919c335a
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Sep 23 07:53:09 2012 +0200
-
-    Prefer copy_nword_const over copy_nword(NETSNMP_REMOVE_CONST
-
-commit 9bffc5413d0d882398b06f4109ac807af2f78347
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Sep 23 00:29:44 2012 +0200
-
-    Simplify logging through the use of netsnmp_config_error
-
-commit d09d53a0fa6df63b21e6f12731bee51a3624e85e
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Sep 22 21:30:08 2012 +0200
-
-    CHANGES: snmplib: Do not crash on incomplete configuration tokens.
-
-commit 02dce6f43b99f85941627928c1a5022d6725d124
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Sep 22 21:28:51 2012 +0200
-
-    CHANGES: snmplib: Do not truncate single default transport domains
-
-commit 211e3c70625965441b2a029a6113802974673c43
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Sep 22 11:23:19 2012 +0200
-
-    CHANGES: snmplib: Do not crash from empty values in --token=value arguments
-
-commit af3d2d973b1e8e29d205d8a07acd82b1f854819e
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Sep 22 10:30:16 2012 +0200
-
-    CHANGES: snmplib: Add the symbol NETSNMP_PRIo to help in printing oid values.
-
-----------------------------------------------------------------------
-
-Changes: V5.7.2.rc2 -> V5.7.2.rc3
-
-commit 8b45292301f0349ffb69d4fd8595f2d5b199e6b6
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Sep 25 19:35:39 2012 -0700
-
-    make depend for 5.7.2.rc3
-
-commit 0cbffb565e62aef937fc700d8d3c3b8c65ddfa65
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Sep 25 19:07:40 2012 -0700
-
-    Version number update: 5.7.2.rc3
-
-commit 40505971add6a3b6f5954cfbde532749bfbcb16a
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Sep 17 13:34:37 2012 -0700
-
-    fix for hidden CMSG_xxx macros on AIX
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 60f0a9e983ab827c824e397d62aeff48a60f0133
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Sep 17 13:31:12 2012 -0700
-
-    Fix pstat memory leak on hpux 11i
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 13bd4d56baa9886018a00477e3214ebe02705ffe
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Sep 17 13:31:04 2012 -0700
-
-    Fix pstat memory leak on hpux 11i
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 0805420813de156c7fc5142534fb420a0fcc3572
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Sep 17 13:28:59 2012 -0700
-
-    fixes AT code on hpux 11i
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit bdb3b146380db1316cabd58b704436e7eecdd9f5
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Sep 17 13:28:50 2012 -0700
-
-    fixes AT code on hpux 11i
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit e936cf810a47379156d913a714e3816181a0d3db
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Sep 17 13:25:20 2012 -0700
-
-    fixes disAvail on FreeBSD ufs
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 608ab57887e5566e63509a3f7e5d0a3e2892f4a7
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Sep 17 13:25:02 2012 -0700
-
-    fixes disAvail on FreeBSD ufs
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-----------------------------------------------------------------------
-
-Changes: V5.7.2.rc1 -> V5.7.2.rc2
-
-commit 07f914564e097224d677515c2f5fd1f3c0c9eb42
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Sep 1 09:54:42 2012 -0700
-
-    Release Candidate for V5-7-patches
-
-commit aee217c07ea9f34a32268e966c7ecef036ec4a96
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Sep 1 09:54:38 2012 -0700
-
-    Version number update: 5.7.2.rc2
-
-commit 119b0d3cf12c97ca3c74d6d1e72319670a8378aa
-Author: Bill Fenner <fenner at users.sourceforge.net>
-Date:   Sat Sep 1 09:51:08 2012 -0700
-
-    CHANGES: libnetsnmp: PATCH 3560473: from fenner: Handle TimeTicks when pretty-printing OID
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit c94c62ea0edcebbfbb73fab6ecddc679f7694dab
-Author: Bill Fenner <fenner at users.sourceforge.net>
-Date:   Sat Sep 1 09:51:08 2012 -0700
-
-    CHANGES: libnetsnmp: PATCH 3560473: from fenner: Handle TimeTicks when pretty-printing OID
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 6d7f9eb0decdb9682836ffd03f19742197ad87db
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Aug 29 21:14:46 2012 +0200
-
-    Fix possible memory overrun in fsys_getfsstats.c (patch 3559417)
-
-commit f235ee8b32eed1de3f1e4202ef45b6377fbce163
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Aug 29 21:07:14 2012 +0200
-
-    Fix for hrStorageTable on AIX (bug 3557159)
-
-commit 78cc9d5ccd86b170622aac543c345c020755c78a
-Author: sthen <sthen23934 at users.sourceforge.net>
-Date:   Tue Aug 28 17:18:09 2012 -0700
-
-    add missing process status values under net/open-bsd
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 4ef9dcd80b0bda1e18b7e349a08bc0f22a7e755e
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Tue Aug 28 17:16:37 2012 -0700
-
-    CHANGES: OpenBSD: PATCH 3559414: from nba: support OpenBSD for hr_swinst
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 0b569fccea9414c50cfd6b0e83e1831ba1291ce2
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Tue Aug 28 17:14:45 2012 -0700
-
-    add missing process status values under net/open-bsd
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 1d3c7be7fa7a38fd3fc39720bb5cb70f8bd71160
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Tue Aug 28 17:14:22 2012 -0700
-
-    add missing process status values under net/open-bsd
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit ff438433aca096bbbea29dd30dfd5c5523761a72
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Tue Aug 28 16:50:46 2012 -0700
-
-    Fix real memory reporting on BSD systems
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit c429a4f3984dae791e307df702251f96ef047d88
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Tue Aug 28 16:49:10 2012 -0700
-
-    Fix real memory reporting on BSD systems
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 41d980c015564db7f22f763190f61ac0d56ba3b2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Aug 24 14:35:53 2012 +0000
-
-    Windows: Unbreak DLL build
-
-commit 2793923bfe2b026fcaeaf538ae503f105cb315bc
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jan 3 22:26:20 2011 +0000
-
-    added missing TLSTCP mention in the help output
-
-----------------------------------------------------------------------
-
-Changes: V5.7.2.pre3 -> V5.7.2.rc1
-
-commit 9ec5c599780251dcd3155f9ac9806ece7ed6ba22
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Aug 11 12:00:37 2012 -0700
-
-    make depend for 5.7.2.rc1
-
-commit 3358b65b11e2c0ee712f609f02071260f75f9bb3
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Aug 11 11:39:38 2012 -0700
-
-    Release Candidate for V5-7-patches
-
-commit 4849a430daafb91c7a61bfbbc17f9299e58fcf64
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Aug 11 11:39:35 2012 -0700
-
-    Version number update: 5.7.2.rc1
-
-commit 1bc268428e829852c9ef0a79552ca4045add28a3
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Thu Aug 9 22:42:52 2012 +0200
-
-    Make sure we have an initialized kvm structure when querying proc table on BSD.
-
-commit 7e67c5038b6aabfda1939ea81d940b24000cfb51
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Aug 9 14:27:08 2012 +0200
-
-    Removed error message when file cannot be opened.
-    
-    This should be handled by caller, not in the function. There is only one caller now, udp_endpoint_linux.c.
-
-commit 59b0de0b8fa73eb403006cee75ff8651e1585e28
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Aug 9 14:23:14 2012 +0200
-
-    Fix compilation errors introduced by commit f95df6341b1d06249443e516b59a43cdfa3d4777.
-    
-    This is embarassing, I compiled the sources without --enable-ipv6. Sorry for inconvenience.
-
-commit 5d7edadd4761680b66d1df3bfde7ca5b16ca5a16
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Aug 9 12:46:35 2012 +0200
-
-    Fix compilation error introduced by commit f95df6341b1d06249443e516b59a43cdfa3d4777.
-
-commit 43c97bbaaf211f4c7f7c704cfcb901dfbf834874
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Aug 9 12:30:09 2012 +0200
-
-    CHANGES: snmpd: Lowered severity of 'Error expanding XXX to 64bits' messages.
-
-commit 8e5cf2a72a46cd483d22e6290a6c8c4c26af6ad2
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Aug 9 12:25:48 2012 +0200
-
-    CHANGES: removed counter-64 error messages.
-    
-    These messages do not say enything useful, caller should check their return value and report it.
-
-commit f95df6341b1d06249443e516b59a43cdfa3d4777
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Aug 9 12:01:25 2012 +0200
-
-    CHANGES: snmpd: removed error log messages when IPv6 is disabled.
-
-commit 18dace8e4a36b083d6ef717735c63e7f40224db8
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Aug 9 10:41:45 2012 +0200
-
-    CHANGES: added CVFS (CentraVision File System) to hrStorageTable and hrFSTable.
-
-commit 90f431b45d21506427bc0bd1d4ee69e0b8ea30bc
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Aug 8 23:10:50 2012 +0200
-
-    Update to current MIB versions
-
-commit 9e7a0b9e580d3b1ea6198a7414c816c23b123b10
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Aug 8 22:27:16 2012 +0200
-
-    Use a wrking awk for Solaris
-
-commit 0e3922ae21e4b7ec538867afd22ce74d741e0f1c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Aug 8 22:17:34 2012 +0200
-
-    fix prototype for klookup
-
-commit a22109711a6d1ec14b6a3f1cac221d70263f104a
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Aug 8 22:08:13 2012 +0200
-
-    fix prototypes for klookup
-
-commit ac062972c585174f95d7ba87aa5ec54c42fdec55
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Aug 8 22:00:26 2012 +0200
-
-    fix prototypes for klookup
-
-commit 7cdd8ebef9507fe766107ca9fee054c44cc0bac5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sun Aug 5 08:13:59 2012 +0000
-
-    Make snmp_alarm_reset() use the monotonic clock. Fixes a bug introduced in commit 37ba7e2.
-
-commit 023f61ea783bfcc53fe90aa66545c5aea2db8061
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Aug 8 16:26:54 2012 +0000
-
-    Fix build breakage caused by commit 028614ecf2d67398699dc3bd784029f3360f2e13
-
-commit cd820949a1491af103a8555f6bdae04851f3d285
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Aug 8 16:16:43 2012 +0000
-
-    Undo build breakage caused by commit 37ba7e20a521fbf0458a0c77eea2e5e36bd7ec0a
-
-commit f143008ccc57ea10cbb88ab3554822b17b6270aa
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sun Aug 5 08:45:42 2012 +0000
-
-    Make get_exec_output() work on big endian systems.
-    
-    Undo API breakage introduced by commit 7374b84fe4c2ef8497fde3dae80a69aa89eba19c.
-
-----------------------------------------------------------------------
-
-Changes: V5.7.2.pre2 -> V5.7.2.pre3
-
-commit 84322e0dc2a8974646542d9881bc01b43dc3a12d
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Jul 31 16:24:07 2012 -0700
-
-    make depend for 5.7.2.pre3
-
-commit 8fec7a81d6133a5f05ed34a5af9806af5d128223
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Jul 31 15:57:56 2012 -0700
-
-    fix the assert check to allow for some known asserts
-
-commit dfde6d2ddd519c8c2ae1788774fdf90d8bea02b1
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jul 30 10:08:24 2012 -0700
-
-    include errno.h and don't use continue outside a loop
-
-commit 7cffe0222cd98a21e30f44c3df9f0d90bf096fe9
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Jul 31 14:13:50 2012 -0700
-
-    Version number update: 5.7.2.pre3
-
-commit 22af7fd46776a8db2362e88acb1b69b165c034b6
-Author: blentz <blentz at users.sourceforge.net>
-Date:   Tue Jul 31 13:52:40 2012 -0700
-
-    CHANGES: aix: PATCH 3403433: from blentz: Issues with hrSWRunName and Parameters on AIX
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 516b9f8275b8db03cdc41078e65c2170309a3f8b
-Author: Julien Pinon <jpinon at users.sourceforge.net>
-Date:   Tue Jul 31 13:25:31 2012 -0700
-
-    CHANGES: perl: PATCH 3412939: from jpinon: Repair tkmib
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 8f230f401c64d822883ac444624a2c2fd7128d8e
-Author: Harsha Shivanna <naanuhs at users.sourceforge.net>
-Date:   Tue Jul 31 13:22:11 2012 -0700
-
-    CHANGES: libnetsnmp: PATCH 3552745: from naanuhs: fix to support 32 chars for VACM names as per RFC-2575
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 34008d32aef43d8bbe1000fb9bf94642c0514f6f
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Jul 31 13:20:31 2012 -0700
-
-    fix the agentx ping patch so it works with the newer alarm structure names
-
-commit 962676394d3fe557ead91057b4d780226dc0d6b3
-Author: Mijo Safradin <mijos at users.sourceforge.net>
-Date:   Tue Jul 31 12:48:01 2012 -0700
-
-    CHANGES: agent: PATCH 3414051: from mijos: snmp-bridge-mib: fix for dot1dBaseTable
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 37ba7e20a521fbf0458a0c77eea2e5e36bd7ec0a
-Author: Vincent Bernat <vbernat at users.sourceforge.net>
-Date:   Tue Jul 31 12:27:28 2012 -0700
-
-    CHANGES: agent: PATCH 3481686: from vbernat: Dont ping master agent unless there is no incoming traffic
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 2be5feadb0540846e0e3ada27efb97894a4cbd52
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Jul 31 07:29:17 2012 -0700
-
-    added a darwin 12 version
-
-commit 1f9bcd21e7c2d5effb62aa01b7b87e43dc86214c
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jul 31 14:43:27 2012 +0200
-
-    Fixed SCTP-MIB::sctpAssocPrimProcess, the list of processes was not initialized.
-
-commit 48be5e89aa04adb0df7e094b2fe463015429fc98
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jul 31 13:48:31 2012 +0200
-
-    Added log message when ipTable misses some interfaces.
-
-commit 7523f0f01ba4db65ac1647a23228cf06c0b72a03
-Author: Mariusz Ceier <mceier at users.sourceforge.net>
-Date:   Mon Jul 30 10:19:33 2012 -0700
-
-    CHANGES: libnetsnmp: PATCH 3536692: from mceier: create a unit test for read_config APIs
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit c07b8d9b3770b615c8e162dbdf7643805f372d75
-Author: Mariusz Ceier <mceier at users.sourceforge.net>
-Date:   Mon Jul 30 10:18:42 2012 -0700
-
-    CHANGES: libnetsnmp: PATCH 3536692: from mceier: Fix for callback calling when unregistering config handler
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 5c2424f07d85c0c4f79d6c5faf64d7f3ee861726
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jul 30 10:08:42 2012 -0700
-
-    don't duplicate send_enterprise_trap_vars def
-
-commit 7374b84fe4c2ef8497fde3dae80a69aa89eba19c
-Author: Garrett Cooper <yaberauneya at users.sourceforge.net>
-Date:   Mon Jul 30 09:41:17 2012 -0700
-
-    CHANGES: freebsd: PATCH 3383970: from yaberauneya: Fix compile error on FreeBSD 9.x/POSIXify auto_nlist, etc
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit 670d96e786590fdd30a16a3300c0ed5bd6e53214
-Author: Mark Rusk <user_id=349895 at users.sourceforge.net>
-Date:   Sun Jul 29 23:39:22 2012 -0700
-
-    CHANGES: agent: PATCH 3424933: from user_id=349895: Use NETSNMP_DS_AGENT_AGENTX_TIMEOUT for the default timeout
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit f1eaec15ef603b8ce542932ffdbd8788c3d1acc5
-Author: Daniel Hobi <hobid at users.sourceforge.net>
-Date:   Sun Jul 29 23:28:01 2012 -0700
-
-    CHANGES: agent: PATCH 3530794: from hobid: pass/pass_persist: unregister MIB with correct priority
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit d783ad990e914c0ee1c98d0a93a429eb2b2f4997
-Author: Doug Manley <tekkamanendless at users.sourceforge.net>
-Date:   Sun Jul 29 23:25:40 2012 -0700
-
-    CHANGES: libnetsnmp: PATCH 3526599: from tekkamanendless: A buggy SNMPv3 agent can cause a net-snmp client to hang
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit e9851520c18d7ed172404a37dc0dc7a136bfaedd
-Author: Daniel Evers <daniel-evers at users.sourceforge.net>
-Date:   Sun Jul 29 23:14:19 2012 -0700
-
-    CHANGES: libnetsnmp: PATCH 3548257: from daniel-evers: fix for recursive pthread mutexes
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit e7a37678c2b7359afd44a307e824c1f7d7a0c87d
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sun Jul 29 21:35:35 2012 -0700
-
-    NEWS: osx: patch: 3514049 from twobits-github: fix compilation on darwin11
-
-commit 1221426abad15b9b2fcee8f1e32ab52ef2692952
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jul 27 14:18:24 2012 +0100
-
-    CHANGES: perl: PATCHES: 3529541: Don't refer to internal 'my' variables from external scripts
-    
-    Fix provided by Lezz Giles
-
-commit 9c06c2202dc056703c80959a0eca9a71684c28de
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jul 27 13:29:30 2012 +0100
-
-    CHANGES: Linux: PATCHES: 3536420: Ensure snd/rcv memory buffers are suitably aligned
-    
-    Patch provided by Tyler Olmstead
-
-commit 89b82c55f9efd2e8ab8c6d65fa567c5b1fac1843
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jul 27 13:14:07 2012 +0100
-
-    "Idle" processes (i.e. in the process of being created) are probably
-    best regarded as "waiting for an event" to become runnable - i.e. 'notRunnable(3)'
-    That event being the completion of the creation process.
-       It's arguable whether or not they are strictly "loaded", but
-    this feels less misleading than reporting them as 'invalid(4)'
-
-commit 6e780a5bf0d64bf47dfbf479ae7f56c10ff8166e
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jul 27 12:57:54 2012 +0100
-
-    Clarify meaning of hrSWRunStatus 'invalid(4)'
-    Ensure architecture-specific alternatives don't confuse code syntax
-
-commit 99b353f7253a5bb38b86f31c2708e16b34a46ce7
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jul 27 12:50:51 2012 +0100
-
-    Additional patch from Patch ID #3543000
-
-commit d0e03fe4a236945daf42af7a47094e686f9bdb9e
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jul 27 12:41:02 2012 +0100
-
-    CHANGES: snmpd: PATCHES: 3543000: Various fixes to Rmon code
-    Supplied by Patrick Ritter
-
-commit 6632a2b9b9fad1a0b0d6baedf2a2b391f5d4e914
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Jul 26 14:39:42 2012 +0100
-
-    CHANGES: perl: BUG: 3517030: Ensure large tables are walked properly
-
-commit b8d16604dbb2f80ebe2852322aa83361a0323796
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Jul 26 14:19:07 2012 +0100
-
-    CHANGES: apps: BUG: 3529768: Be more careful when stripping off numeric suffixes
-
-commit 0b3ad44ec4c1b9f41dc3ef70e6a38a53ef268ade
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Jul 26 13:34:10 2012 +0100
-
-    Fix comments describing FreeBSD relationships
-
-commit 8cf7a89187a996faff040414986ffa5d78d5683e
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Jul 26 13:21:56 2012 +0100
-
-    CHANGES: build: BUG: 3532234: Fix typo in libtool script
-    (addressed properly in libtool 2.4.2)
-
-commit 4258d852ca7b6aeae93ad73064d43aa807eb6104
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Jul 26 13:16:20 2012 +0100
-
-    CHANGES: doc: BUG: 3535269: Document use of [snmp] for client-side tools.
-
-commit 26ed40cbd07cf271a9cfc4517d964774712ad77c
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Jul 26 12:57:56 2012 +0100
-
-    Support local rollup of patches without first synchronising with extenal repo.
-
-commit 904c442d60c5b99aacd7f60307c28684efae854c
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Jul 26 12:53:37 2012 +0100
-
-    CHANGES: python: BUG: 3535967: Fix memory leak - snmp_{sess_}error allocates the output buffer
-
-commit 597ecda68ee2b580b666288977b04aa133207517
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Jul 26 12:17:14 2012 +0100
-
-    CHANGES: BUG: 3540621: dist: Add missing Provides: to net-snmp-perlmods RPM spec
-
-commit 43d5ba224c3f29fd8e7fd1d060a17045aad7eff0
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Jul 26 11:25:43 2012 +0100
-
-    CHANGES: perl: BUG: 3541012: Fix handling of gettable columns
-
-commit bc293acad8d3487cddef3c70cea74368f34d9354
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Jul 26 11:20:20 2012 +0100
-
-    CHANGES: snmpd: BUG: 3543864: Remove extraneous function type
-    (and fix a related typo)
-
-commit 028614ecf2d67398699dc3bd784029f3360f2e13
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jul 24 15:37:16 2012 +0200
-
-    CHANGES: snmpd: fixed snmpd exiting shortly after start due to incoming signal.
-
-commit 4d38895f459a1df24f68c4a60e4caf6a778d8c1f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jun 27 09:35:44 2012 -0400
-
-    CHANGES: snmpd: removed limit of 'exec' and 'sh' entries in snmpd.conf
-    
-    Use dynamic (re)allocation instead.
-
-commit dceeacc998fe2322882e7eedec0a71a79dc494ab
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Jul 24 09:00:23 2012 +0100
-
-    Don't be surprised if there are no changes to various files
-
-commit 56c3c078336cbf1bf09fd1b01078a9030717613e
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Wed Jul 11 08:47:13 2012 +0200
-
-    CHANGES: snmpd: BUG 3542307: Correct sysORID for snmpMPDStats. Thanks to Dave Vucich for reporting this.
-
-commit 61ecedc083f881db8a9a50d50bdeed36624ed307
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Wed Jul 11 00:21:27 2012 +0200
-
-    CHANGES: snmpd: BUG 3542188: Correct sysORDescr for snmpUsmMIB. Thanks to Dave Vucich for reporting this.
-
-commit 2f9ede419f40e848a2425389288cac0e2331b992
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Jul 19 17:10:52 2012 +0100
-
-    Fix example 'rsync' command for full releases
-
-commit 6dd7884d99e756e2f22b688823ce1b1d526ad166
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Wed Jul 18 15:59:59 2012 +0100
-
-    version update for 5.6.2
-
-commit 976696a128e57b512bf7ad400d002368b4a9a871
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 at liverpool.ac.uk>
-Date:   Wed Jul 18 10:46:47 2012 +0100
-
-    V5-5-patches out of Release Candidate
-
-commit 8bd440c43e365a0b77d47f582cade9f97c7bfce7
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Wed Jul 18 10:46:28 2012 +0100
-
-    Version number update: 5.5.2
-
-commit 6e0855a3157198499411ac52b46d5f32aad5b9fa
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Wed Jul 18 09:51:32 2012 +0100
-
-    Add missing return type in function declaration
-
-commit 07d825e8bb35eea9ac6b1cb82cbb234fe66b1ab6
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Wed Jul 18 09:51:32 2012 +0100
-
-    Add missing return type in function declaration
-
-commit 5db70036ef675635647e5b7c7253456838836647
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Jul 11 14:55:38 2012 -0700
-
-    don't use --rebase
-
-commit d4c1549593ce2c2caeb98e5f8abfd7a5ae5a0273
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jun 27 09:35:44 2012 -0400
-
-    CHANGES: snmpd: removed limit of 'exec' and 'sh' entries in snmpd.conf
-    
-    Use dynamic (re)allocation instead.
-
-----------------------------------------------------------------------
-
-Changes: V5.7.2.pre1 -> V5.7.2.pre2
-
-commit ffce49fb1ab4a78d4f2947be06d620f1424528fd
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Jul 11 17:12:31 2012 -0700
-
-    Version number update: 5.7.2.pre2
-
-commit bd7c7297187818e5eef7327667e4a81f6c9fc89b
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Jul 11 14:55:38 2012 -0700
-
-    don't use --rebase
-
-commit a715312e2ce49d4da93fc140cc39fc100b0b7978
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Jul 11 15:47:22 2012 -0700
-
-    updated for the previous 5.7.2.pre1 release
-
-commit 17277689b629f4586d5d714d87ce6bc11f887668
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Jul 11 14:55:38 2012 -0700
-
-    don't use --rebase
-
-commit 6786ffc76facf746afb6af25158f7940656ab39c
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Wed Jul 11 08:47:13 2012 +0200
-
-    CHANGES: snmpd: BUG 3542307: Correct sysORID for snmpMPDStats. Thanks to Dave Vucich for reporting this.
-
-commit f0e35d61f9258dc608da9bf718af1457a859fa19
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Wed Jul 11 00:21:27 2012 +0200
-
-    CHANGES: snmpd: BUG 3542188: Correct sysORDescr for snmpUsmMIB. Thanks to Dave Vucich for reporting this.
-
-commit 5206d25d4cb94d4b0dd331a5a4113d4d87782c42
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jul 2 12:14:39 2012 -0700
-
-    better description of --disable-set-support
-
-commit f92853281477ee724a51a9967f37d3f1dd1b0f7e
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jul 2 12:09:50 2012 -0700
-
-    remove duplicate definitions causing a problem
-
-commit 5be27368751691fc1ab55fe62b4106d8d99b8704
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jul 2 12:06:58 2012 -0700
-
-    after pulling all the branches, switch back to the initial one
-
-commit 82596a69f5ce53d5a6f0af4215c98d6184dab4d4
-Author: Dave Shield <D.T.Shield at 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!)
-    (cherry picked from commit b05bd78f9f234bb57a00b54c5bfb1de32a09f4a4)
-
-commit 6a075ae494c76b82eea96327cf5242df048743db
-Author: Dave Shield <D.T.Shield at 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 at liverpool.ac.uk>
-Date:   Fri Jun 22 14:17:42 2012 +0100
-
-    version update for 5.6.2.rc3
-
-commit b05bd78f9f234bb57a00b54c5bfb1de32a09f4a4
-Author: Dave Shield <D.T.Shield at 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 4d15742c750a96a4dbb3da874741ae152489f8d5
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jun 22 13:58:07 2012 +0100
-
-    Release Candidate for V5-6-patches
-
-commit f6b5e3376ed3a8e9eaf74b7d6822b3a765772ee8
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jun 22 13:57:56 2012 +0100
-
-    Version number update: 5.6.2.rc3
-
-commit 5cfb0811127a653dff0f4e53ad6029e2298a6c62
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jun 22 13:28:37 2012 +0100
-
-    Release Candidate for V5-5-patches
-
-commit e72e205fdcef787ef840c8c928ed27351a69544b
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jun 22 13:58:07 2012 +0100
-
-    Release Candidate for V5-6-patches
-
-commit f79a54f2472508b167d977f367c3864b5621e89d
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jun 22 13:42:53 2012 +0100
-
-    version update for 5.5.2.rc3
-
-commit 56ef5f0db51cfd55226f82f94f3f3d2450e4feb5
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jun 22 13:39:32 2012 +0100
-
-    version update for 5.5.2.rc3
-
-commit af1d00ab0246275dadb5f0cd3a23a77d5f5598cd
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jun 22 13:28:37 2012 +0100
-
-    Release Candidate for V5-5-patches
-
-commit f18776d63a516020317e58875ab24352d5db8651
-Author: Dave Shield <D.T.Shield at 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 at 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 at liverpool.ac.uk>
-Date:   Fri Jun 22 12:29:34 2012 +0100
-
-    CHANGES: snmpd: PATCHES: 3479740: Fix hrSWRunPerf statistics
-
-commit 1e3bb6060be6156d3ff316c5a7e4fd7f05e37cff
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Jun 22 12:11:56 2012 +0100
-
-    NEWS: snmpd: BUG: 3532090: Fix high ifIndex values crashing hrDeviceDescr
-
-commit e8663fac8b88663282669726a08f16db16b5f4db
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Mon Jun 18 13:30:25 2012 +0200
-
-    Revert "CHNAGES: snmpd: fixed snmpd exiting shortly after start due to incoming signal."
-    
-    This reverts commit b11a4e93f50d8a544f835f376c3a4b8c0641a31a,
-    we're in RC-phase and code is frozen
-    
-    (sorry for noise)
-
-commit b11a4e93f50d8a544f835f376c3a4b8c0641a31a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Mon Jun 11 16:26:09 2012 +0200
-
-    CHNAGES: snmpd: fixed snmpd exiting shortly after start due to incoming signal.
-
-commit a570238d58eb5a996b56f01a27a18df6f37d0f60
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Mon Jun 11 14:20:25 2012 +0200
-
-    More precisely describe -c option.
-
-commit 48cc39f1aa0fa6ce955ef76b25db8f9dca06b80d
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Jun 2 09:27:10 2012 -0700
-
-    version update for 5.7.2.pre1
-
-commit 810185ae0b0cd2ad4d424a1ba775ef5ceaf50f03
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Jun 2 09:24:19 2012 -0700
-
-    make depend for 5.7.2.pre1
-
-commit 6271471e01282f3675724eaf1358ceb0e95ddd4e
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Jun 2 08:32:40 2012 -0700
-
-    Version number update: 5.7.2.pre1
-
-commit fcb782aa8893134c7414a926d9268594f725b915
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Jun 2 08:32:18 2012 -0700
-
-    version update for 5.7.2.pre1
-
-commit e3bcd87c72fcea7706e868b5ace75296093f7497
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 14:09:42 2012 +0100
-
-    Fix dist/release format
-
-commit d813ce2eeefc68229cfcaf20603244cdd6d09d3c
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 14:07:52 2012 +0100
-
-    Fix dist/release format
-
-commit fa7bd581e3783685db39c9b4eaf847be5ac86fd3
-Author: Dave Shield <D.T.Shield at 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 at liverpool.ac.uk>
-Date:   Thu May 31 13:51:45 2012 +0100
-
-    version update for 5.6.2.rc2
-
-commit d9a15445aa74f5316bfc711c1558467872c2958c
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:50:12 2012 +0100
-
-    make depend for 5.6.2.rc2
-
-commit bcabd2c9542dbebd1d319b4494413bdcca06614e
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:38:38 2012 +0100
-
-    Release Candidate for V5-6-patches
-
-commit b473898c0c5ac9eb47c7c05a3f745e4ff2a76aaa
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:38:28 2012 +0100
-
-    Version number update: 5.6.2.rc2
-
-commit 131429e7062fbaa65b82affed1fb92df2c0cc813
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:38:38 2012 +0100
-
-    Release Candidate for V5-6-patches
-
-commit 1c8110b33b8105ca6190945a35fe7ae903252d68
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:21:38 2012 +0100
-
-    Avoid perl versioning problems when setting up the build environment
-
-commit 508ece16e6f6f49562da204792ae0644269994d1
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:20:58 2012 +0100
-
-    Fix handling of dist/release merge
-
-commit 5b8a8547b1a47d2f5b207f48f2496e4241d902c6
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 11:10:48 2012 +0100
-
-    version update for 5.5.2.rc2
-
-commit 6c32914bf28d695df349dca269e488b501700316
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 11:07:22 2012 +0100
-
-    version update for 5.5.2.rc2
-
-commit 9f5a82a5afdbb3daeb2fd437a309f0b8d357cf4b
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 11:05:39 2012 +0100
-
-    make depend for 5.5.2.rc2
-
-commit 39203f29477a3bedf012d41135d8abd6bcad08b1
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 at liverpool.ac.uk>
-Date:   Thu May 31 10:46:11 2012 +0100
-
-    Release Candidate for V5-5-patches
-
-commit ccf8ff2c4db60122d41302e4aeb700e0b868105f
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 at users.sourceforge.net>
-Date:   Sun May 27 13:56:01 2012 +0200
-
-    Fix missing include. Fixes SIGSEGV on FreeBSD9 x64
-
-commit 5805878749c08062debf0a9d798d08fb916caa2d
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun May 27 06:23:19 2012 +0200
-
-    CHANGES: snmpd: Add missing debug tag
-
-commit d1a42bbcc7b14730c9a6d99c4f047097843a549b
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri May 25 09:02:27 2012 +0200
-
-    CHANGES: building: Run libtool --mode=finish on the right directory
-
-commit 1fbf33711a19eac9739ad23f6f6251eacc41f1c4
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue May 22 14:54:45 2012 +0100
-
-    CHANGES: Linux: PATCH: 3525998: Don't use an uninitialised value in error message
-
-commit 32c1686b67dc85c4a189576363065609dfed5e61
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue May 22 14:52:56 2012 +0100
-
-    Attempt to mark release-candidate branches as such.
-    Omit final-release-only steps when preparing preN/rcN releases
-    (Relies on a tweak to the Makerelease perl modules)
-
-commit 4c5633f1603e4bd03ed05c37d782ec8911759c47
-Author: Robert Story <rstory at freesnmp.com>
-Date:   Mon May 14 11:40:06 2012 -0400
-
-    NEWS: snmp: BUG: 3526549: CVE-2012-2141 Array index error leading to crash
-
-commit 65dd83c2255ee58edbf0e25863e55b58a4113679
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 at liverpool.ac.uk>
-Date:   Mon May 7 19:56:33 2012 +0100
-
-    Mark version-specific changes _before_ pushing to central repository
-
-commit 7241accd70b82d0fcd44d5a5238b2ee9445900db
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:53:17 2012 +0100
-
-    version update for 5.5.2.rc1
-
-commit 7c796a15a1d1bb85feea940bd4e3516877920919
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:50:49 2012 +0100
-
-    version update for 5.5.2.rc1
-
-commit 07e268bfb64b0ec645b3f7e87266984f9217cf12
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:44:37 2012 +0100
-
-    make depend for 5.5.2.rc1
-
-commit 16eaaf6c3ba14596ca9efaf4b114f1b709f42b68
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:29:03 2012 +0100
-
-    documentation update for 5.5.2.rc1
-
-commit c729469ef12154930cf9d15967e16186fb445f30
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:27:20 2012 +0100
-
-    Version number update: 5.5.2.rc1
-
-commit 142571d3cea08f0c072d24c1d39a43c7446f8ce7
-Author: Dave Shield <D.T.Shield at 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 eba86b6f7aff261ee0e61334df70de7156e5c3cb
-Author: Dave Shield <D.T.Shield at 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 at users.sourceforge.net>
-Date:   Mon Apr 23 22:25:15 2012 +0200
-
-    Only output cpu warnings once.
-
-commit ee58e4827b9fa16e6635ca003e8a4f11dcb5fb7a
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Apr 23 22:17:42 2012 +0200
-
-    Fix speling in errormessage.
-
-commit 03f485df22f20e149cfae94c57cb82feecb5d74b
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Apr 23 22:12:11 2012 +0200
-
-    Not all Linuxes use rpm (debian/ubuntu comes to mind)
-
-commit 930838224f781696bd35225f22569347416f1b16
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Apr 23 22:10:15 2012 +0200
-
-    Check need for -lm to use round/exp
-
-commit a0609cf1f3a6917d263725732248cd937a45ad94
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Apr 7 08:40:44 2012 +0200
-
-    Remove limitation on configuration line length.
-
-commit 305973338a63ae54c5e02a8626fbe9a8064dcb7e
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Apr 7 00:32:19 2012 +0200
-
-    Reduce variable scopes.
-
-commit ccab4e9d3ed424c39d0dc27be63fa76c7461ea81
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Apr 7 00:15:22 2012 +0200
-
-    Internalize the name and line number of the curret configuration file
-
-commit cf874ad7b9daf4fcc0d46cdd034474b478005341
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Apr 6 21:47:28 2012 +0200
-
-    Replace #if (A) B #else B #endif with B.
-
-commit ef9ea641bc290eec50685b60519b31bee8b14a69
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 9 21:04:06 2012 +0100
-
-    version update for 5.6.2.pre2
-
-commit 35aba1959de119f1fb89203c37109aa6f0e21c57
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 9 21:00:40 2012 +0100
-
-    version update for 5.6.2.pre2
-
-commit e41fbaff18ac9095cf4a739a06ec39a1a6ccfdc1
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 9 20:35:35 2012 +0100
-
-    Version number update: 5.6.2.pre2
-
-commit 137fe582d6cc5611430dab46ef144efd84cfc803
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Apr 6 20:46:56 2012 +0100
-
-    Revert commit 1f4a829b18275e4956ca91e5ec370df015f06133
-    (snmp_store_needed() API is not available in 5.[45].x)
-
-commit 2b7e64288c01a8a062026c521ca31a5e885f30cc
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 2 16:12:12 2012 +0100
-
-    FreeBSD-9: Fix for 'const'ifyed nlist arguments
-    Backport of ed65eca6e7f9cfa7380a78d56c01ed314745b169 from V5-6-patches
-
-commit 7e95d80b698051259645c074a53ffd264a6fa916
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 2 16:06:56 2012 +0100
-
-    FreeBSD-9: Fix for 'const'ifyed nlist arguments
-    Backport of ed65eca6e7f9cfa7380a78d56c01ed314745b169 from V5-6-patches
-
-commit 1a9b7b7c02e2deefe994d595a7cc1dd2ffbeee1d
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 a79141a419953d010a6989e8b88f4df127394d38
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 2 09:19:26 2012 +0100
-
-    Header fiddling for FreeBSD,OpenBSD,Dragonfly
-    Backport of f7b0de1518002c6e8f9b94ef3deb8882e1e9338e from V5-7-patches
-
-commit adf74bf753d3970357afd633803256241d9c7b87
-Author: Dave Shield <D.T.Shield at 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
-
-commit d9555acb9f47c3aa8fde4bc20a44d7ca6181a8a9
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sun Mar 25 18:48:12 2012 +0000
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Avoid dangling pointers (based on patch 3503259)
-
-commit 82a8b47ee96e5d29a2b7ac3ca00722d737d5b479
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Thu Mar 29 22:31:56 2012 +0200
-
-    Running autoheader / autoconf
-
-commit 9ca8d939ab393306a1d0f146c9cb70ea0cb19d49
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Thu Mar 29 22:30:38 2012 +0200
-
-    Running autoheader / autoconf
-
-commit cecd4869deb68f3d4c71e768d5b40dd576446925
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Thu Mar 29 22:29:31 2012 +0200
-
-    Running autoheader / autoconf
-
-commit a1a4513bd3e4e614200f6db5a02f61d6c8eefb32
-Author: Dave Shield <D.T.Shield at 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 at liverpool.ac.uk>
-Date:   Wed Mar 28 09:30:49 2012 +0100
-
-    Doxygen-style documentation fixes (back-port of GIT commit c09903a42e9d97331fd9e48ee831a85afdf9c70a)
-
-commit 1f4a829b18275e4956ca91e5ec370df015f06133
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Mar 27 21:41:24 2012 +0100
-
-    CHANGES: snmpd: PATCHES: 3495697: Store persistent snmpTarget table changes
-
-commit 1f75f377d0db01754c0c161dc44373081beef520
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Mar 27 21:14:06 2012 +0100
-
-    CHANGES: FreeBSD: PATCHES: 3489387: Install FreeBSD 10 header file (plus other missing versions)
-
-commit 3d72c9e78f2ad817c9d1d82977327bbb20d63ab9
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Mar 27 21:06:31 2012 +0100
-
-    CHANGES: snmpd: PATCH: 3487867: Don't skip missing ifXTable entries (ifConnectorPresent FALSE)
-
-commit 12906578ab30cf776d080c0ef3025b30334d7655
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 16:17:45 2012 +0200
-
-    DISMAN-PING-MIB: Fix even more memory leaks
-
-commit ccfd5ca6fe10313d6181d24bbb1797825a97da10
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 15:51:16 2012 +0200
-
-    DISMAN-PING-MIB: Eliminate duplicate code
-
-commit 9fda2668722f08ddbfdd67a2239d8b021db64a83
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 15:48:46 2012 +0200
-
-    DISMAN-PING-MIB: Write a loop as a loop
-
-commit cbc18eb763ba6df69ef70668a54d75bf35e79503
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 15:24:08 2012 +0200
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Fix more memory leaks
-
-commit c7725192478aec018fb4aefa60946e04a406c00c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 13:43:24 2012 +0200
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Avoid reading freed memory when deleting a row from a table
-
-commit a6be739566f310d7441fd7f54989e39446f7a143
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 13:42:28 2012 +0200
-
-    Extend DISMAN-PING-MIB test
-
-commit 8a9b57291453cb8aec28e766c594701ed19c4fc6
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Mar 26 21:03:41 2012 +0200
-
-    Fix for DragonFly 3
-
-commit e5c9a32f79eac2e85527c9cf05087cdae9b35a6c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Mar 26 20:59:53 2012 +0200
-
-    DragonFly needs _KERNEL_STRUCTURES to compile ipv6 code
-
-commit cd43bc09a39bd97ff5e719a2ce232ce424600a65
-Author: David Imhoff <dimhoff at 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 at users.sourceforge.net>
-Date:   Sat Mar 24 15:21:38 2012 +0100
-
-    Fix TCP state values for DragonFly
-
-commit 432fe3ddf54f2c98f936959469cb9b014d599f06
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Sat Mar 24 15:10:52 2012 +0100
-
-    Require perl to do pass_persist test
-
-commit 37d2770cf50c98023eeba90e25d372bff7316ada
-Author: Niels Baggesen <nba at user.sourceforge.net>
-Date:   Sat Mar 24 15:06:40 2012 +0100
-
-    Fix TCP state values for DragonFly
-
-commit 86a948d8691e881d55591dcabddc2739ce72b30e
-Author: Niels Baggesen <nba at nba-linux.sb.statsbiblioteket.dk>
-Date:   Sat Mar 24 15:01:37 2012 +0100
-
-    Properly find pass helpers for testing.
-
-commit fe26a3c4f29f046bf65ed52e9d94054b675fbc4b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Mar 22 09:04:42 2012 +0100
-
-    DISMAN-PING-MIB: Limit source code lines to 80 columns
-
-commit 745bafcdcc9c8e84616d4e274db2a384bf234da2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Mar 22 08:55:05 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Make ping implementation independent of ntpd clock jumps
-
-commit da6925e6763cadbe02f4a8bbfe68a362e535ad5e
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 10:38:36 2012 +0100
-
-    CHANGES: testing: Add testing/fulltests/default/T154dismanpingmib_simple
-
-commit fa606dd7ca6aff9308d4e8b01bbcde148f441271
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 16:49:21 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Make pinging local interface addresses work
-
-commit 617a83ba799575c84c66f6b1c480ef633161a64c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 16:28:46 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Fix a socket leak triggered by pinging a remote host
-
-commit 625f55c272ec6281e38d8e30eb53fd51516b00ae
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Mar 22 09:54:55 2012 +0100
-
-    DISMAN-PING-MIB: Convert a dynamically allocated variable into a stack variable
-
-commit b48f19ad4b4aa68c3e16e2a72df37b9c0cd36c4a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 16:24:07 2012 +0100
-
-    DISMAN-PING-MIB: Add more debugging statements
-
-commit d74cb3966175892562f5e3a9b1683acba2c22e07
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 11:45:18 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Fix several memory leaks
-
-commit 0b1a77674678cc9a15be3e7700d3cef650ed02c7
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 12:00:30 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Do not send the contents of the stack over the network
-
-commit 139023cd3ab51631cc10e2866d71abcf99ae4c1b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Mar 21 08:56:07 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Don't call exit() upon memory allocation failure
-
-commit 169b6aaa7b61827cc1ad0b3aeeae3a7229dd25d8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Mar 21 08:53:26 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Fix IPv6 socket leak in error paths
-
-commit a0be32ad053a71fa96134d55e542bb07d4f0297d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 11:43:46 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Avoid that host name resolution failure causes a crash
-
-commit bf9bff64556787d766ee2ef2d578afb920719f3a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Mar 21 08:51:55 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Convert printf() statements into snmp_log() and DEBUGMSG()-statements.
-
-commit 5d74c01245523a9d8db1eda27d1efae2ebc104fb
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:40:02 2012 +0100
-
-    New MIB: VRRPV3-MIB
-
-commit 5b38f062b99b6ef36708e2c7de4965a3192612e9
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:34:48 2012 +0100
-
-    For safety, sizeof the right variable in memcpy
-
-commit e5f82782da05efa7c0e6dc2bf5a41ee11868f469
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:33:21 2012 +0100
-
-    Fix for hrSWRun data for FreeBSD
-
-commit 8327565e823270d10a4504568edbe5b5ae323a55
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:31:54 2012 +0100
-
-    Clean up variables for OpenBSD/NetBSD
-
-commit 170f6f027bf4f9174b7073530da4d07f400bba58
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:28:58 2012 +0100
-
-    Move declarations in front of statements
-
-commit dbb4573b69fae85cdc931b2892b5ce4e5b16b321
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:23:36 2012 +0100
-
-    Require kernel_netbsd for NetBSD6
-
-commit f11681f15aad7d9a52fa29812ecbb507f1b7fe24
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Wed Mar 21 12:36:38 2012 +0000
-
-    Check for old tarballs (and unpacked distributions) before starting.
-    These can confuse steps such as "make dependcheck", that do a 'find'
-    on the current tree, and would descend into such unpacked source trees.
-
-commit 470dcd4b6c3ff11ff0a3532a7340a56cffd69098
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Wed Mar 21 12:32:13 2012 +0000
-
-    Don't run "make docs; make mancp" if there's no Makefile present
-
-commit c9ac420343e16df2b7065f5bf2790df44e247fba
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Mar 20 10:26:10 2012 +0000
-
-    Allow distribution as part of normal Net-SNMP packages.
-
-commit 5999f60c57723f23f3c254af57fdb10af301a8eb
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Mar 18 19:03:08 2012 +0100
-
-    Regenerate
-
-commit 275d204036a607e3df50e8447d4bc755e9db02fd
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Aug 28 21:29:03 2011 +0200
-
-    CHANGES: building: Make it possible to use --disable-applications/--disable-agent together with --enable-minimalist
-
-commit bdccc875710295aacf50f71eb1c1d2ee97f336fe
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Mar 16 20:10:58 2012 +0100
-
-    Do not declare the local variables for opaque_special_types unless that option is set.
-
-commit b80a67da052adca1b5a644db83a782e15c2237c3
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Mar 16 19:50:03 2012 +0100
-
-    Check that the data exist before trying to read it
-
-commit efae86bba5962491d42b77b935191a3eb25dd939
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Wed Mar 14 01:05:33 2012 +0100
-
-    Partially revert "Merge remote branch 'origin/V5-7-patches' into V5-7-patches"
-    
-    Commit d35a1860217e723e4f866dd98ef6621665934c4a accidentally reverted
-    
-    4a2e5bcd56cd2afb36eb15d754e2fee888dd50c0 (hrh_storage is a proper replacement for hr_storage)
-    0dd1e54557d1ba498b55d017b0a93e8ccf9bd522 (CHANGES: snmpd: UDP-MIB: Report the proper address in udpLocalAddress)
-    5116d48378ecf03e722f3010ad47bf22a3fbcb8c (Reduce scope of prefix_val such that the compiler doesn't warn about an unsed variable)
-    10f566f4d4cbb3e205023c23669289e4bfd089cb (perl/SNMP/SNMP.xs: Fix a compiler warning)
-    
-    and part of
-    
-    6e74d64f85a59d50e461db4c34ac76f9de468bfb (Avoid using grep options -q and -w because grep in Solaris)
-    
-    This reverts those reverts.
-
-commit aaedd59cc2da701527dc2d261d4e9f85f16e7504
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Mar 11 20:57:38 2012 +0100
-
-    Allow make test where the source path contains the string Net-SNMP to succeed.
-
-commit 4b94d796918a4eeae68ab21aa53d444a8b5c2921
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Mar 9 08:04:59 2012 +0100
-
-    Unbreak compilation on FreeBSD 4
-
-commit 10fe6b83324ad37d18b937cc8c6de94de534d035
-Author: Dave Shield <D.T.Shield at 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 at 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 at liverpool.ac.uk>
-Date:   Thu Mar 8 12:33:03 2012 +0000
-
-    make depend for 5.6.2.pre1
-
-commit 0ef34e6519dfcb82c97df8427547c08dcf81e69a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Mar 8 10:11:30 2012 +0100
-
-    CHANGES: snmpd: Fixed snmpd '-d' option.
-    
-    Now it dumps packets again.
-
-commit 8e69742f143e4fc11196e5b2ed66c8f7f53fd02f
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 at 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 at users.sourceforge.net>
-Date:   Mon Mar 5 20:56:40 2012 +0100
-
-    More fixes for Solaris sh
-
-commit 0dd1e54557d1ba498b55d017b0a93e8ccf9bd522
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 15:08:26 2012 +0100
-
-    CHANGES: snmpd: UDP-MIB: Report the proper address in udpLocalAddress instead of 0.0.0.0. Makes test T160snmpnetstat pass again. Fixes a bug introduced in commit c76fb96f65e33ba2fd212a921e8c386155ee5c7a.
-
-commit 518917e9f39f7a9d3c3bf3a865e8ac0e3026d600
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 14:04:54 2012 +0100
-
-    snmplib/snmpUDPDomain.c: Fix source code indentation
-
-commit 2651909ccceabfcfadaf942c02450e28fe837dc9
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Tue Nov 9 12:04:04 2010 +0000
-
-    Passes now on MinGW too.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19653 06827809-a52a-0410-b366-d66718629ded
-
-commit e41f115e40304c941ba17d67e24710722d90741b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 13:39:17 2012 +0100
-
-    testing/fulltests/support/simple_eval_tools.sh: Avoid using grep options -w and -q because grep in Solaris' default path doesn't understand these.
-
-commit 5116d48378ecf03e722f3010ad47bf22a3fbcb8c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 10:47:20 2012 +0100
-
-    agent/mibgroup/ip-mib/data_access/ipaddress_linux.c: Reduce scope of prefix_val such that the compiler doesn't warn about an unsed variable if it isn't needed.
-
-commit 6e74d64f85a59d50e461db4c34ac76f9de468bfb
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 09:22:31 2012 +0100
-
-    testing/eval_tools.sh: Avoid using grep options -q and -w because grep in Solaris' default path doesn't understand these options.
-
-commit 10f566f4d4cbb3e205023c23669289e4bfd089cb
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 10:47:39 2012 +0100
-
-    perl/SNMP/SNMP.xs: Fix a compiler warning
-
-commit 44aa265891cd563f7f4114ef25dcf7aaf3b14e9a
-Author: Dave Shield <D.T.Shield at 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 dae4e16be86117861f63d1a2f981ad361418f5c6
-Author: Dave Shield <D.T.Shield at 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 28f6226f2e228b8ca248489735f86502b2cce0a1
-Author: Dave Shield <D.T.Shield at 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 40022a697958259ccfbb3fed44eb3c472f5e837e
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Sun Mar 4 10:37:41 2012 +0100
-
-    Solaris sh does not understand "test -e"
-
-commit 773af0c42e077bebdaecf1c0caf393285a7688f1
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Sat Mar 3 17:19:30 2012 +0100
-
-    Clean up nsrollup complications
-
-commit ee71049c3e21c1d0e3424297136652bbe0e39d85
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Sat Mar 3 16:49:41 2012 +0100
-
-    mibgroup/icmp.c: adjust ifdefs to make it compile on BSD's
-
-commit ce9600361e665dde17af9d8ab16d7ce85dc05643
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:39:55 2012 +0100
-
-    dot3StatsTable has bugs :-(
-
-commit dffacf6fa0755e1700cbac25b844185abd807a0a
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:38:10 2012 +0100
-
-    passpersist test needs /usr/bin/perl
-
-commit 8726995c7a8aef674c4f164b1871c37bbdcdad50
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:36:58 2012 +0100
-
-    grep -w fails with OpenBSD and Solaris 10-64
-
-commit 1eb4745b23cc3a839864e7f6ea28355b0566eb67
-Author: Niels Baggesen <nba at 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 at 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 78369002be2711f0aa876b64a4e10b090cc241cd
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:33:31 2012 +0100
-
-    Not all make versions define $(RM)
-
-commit 94245b29a3cda89475c6eab5d9493c6657ff38e3
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:24:24 2012 +0100
-
-    Make autoconf 2.68 happy
-
-commit 44acd6c285fb5614b4c9611b1abdeca9dd28e4bb
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:12:47 2012 +0100
-
-    Fix spelling of mib module fsys_getfsstats
-
-commit 1fa1fee3693f67b820223806b3d73afd4c50ec18
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Mar 2 01:37:20 2012 +0100
-
-    Silence a clang warning.
-
-commit 93263b98a5db344cf2c4d489c43971e7b29cdb03
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 13:37:20 2012 +0000
-
-    version update for 5.5.2.pre1
-
-commit 5a175428b973d2ea8553e29fecf94cf1566aa858
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 11:48:18 2012 +0000
-
-    version update for 5.5.2.pre1
-
-commit 364276a1c5aa66caa23eb5b7f111fdeb5af71fa7
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 11:45:10 2012 +0000
-
-    make depend for 5.5.2.pre1
-
-commit 73598340172eff75729a6d57192b8171d5bbf00e
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 10:42:56 2012 +0000
-
-    Version number update: 5.5.2.pre1
-
-commit f3214402672ca199fd531e66122bf96c4d9a4eb7
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 10:42:39 2012 +0000
-
-    version update for 5.5.2.pre1
-
-commit 2e74acb6f19e4729cede0ab43e931961cb23aaea
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Mar 1 09:18:39 2012 +0100
-
-    CHANGES: Bug 3152841: Do not install the util_funcs subheaders that were removed in 5.7
-
-commit b7109646b95a70713d1ad991d41bccd57c0bb3eb
-Author: Magnus Fromreide <magfr at 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 at lysator.liu.se>
-Date:   Sat Feb 25 10:13:15 2012 +0100
-
-    Correct typos
-
-commit 6a6c9bbc7584f196a1185cc1935204f1206811ed
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Wed Feb 29 08:55:35 2012 +0100
-
-    CHANGES: Bug 3152841: Install util_funcs subheaders
-
-commit d515e2a6e4c2a1c4d84734cc7b2d0b2fc5a894ad
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 15:56:21 2012 +0000
-
-    CHANGES: snmpd: PATCHES: 3487919: Fix compilation when caching is disabled
-
-commit af8368ed8898a78d0868b47af46bc9db07d1c764
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 15:50:56 2012 +0000
-
-    CHANGES: snmplib: PATCHES: 3414773: Encode integer value using ASN_INTEGER
-
-commit 19e2715807fe06fd0baedf88165011aee933e755
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 14:05:34 2012 +0000
-
-    CHANGES: man: BUGS: 3490708: Clarify use of common command-line options
-
-commit 65f7962f932c9b75c5bbbb047d1e26ae60978e53
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 034f1c572f683ea428583074471e5d5d13b51837
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 10:22:20 2012 +0000
-
-    Skip SET-based tests when configured using --enable-read-only
-
-commit 36423e210bfb65ef121c6a66aec438c7c237d3df
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 10:03:25 2012 +0000
-
-    CHANGES: BUG: 3454168: configure: Fix building with --enable-read-only
-
-commit eed0bcbc43fea18259f0f63b2081b6d10535a052
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 09:27:11 2012 +0000
-
-    Skip SET-based baby-steps when compiled with --disable-set-support.
-    Inspired by bug #3454168
-
-commit ec6a23030e5a2072c19c18c1d9c124387da56b7b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 27 18:42:58 2012 +0000
-
-    Add -lrt to NETSNMPLIBS such that clock_gettime() can be found
-
-commit f13320500294bb240f63c6dd7d2e9a2208eb740d
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Feb 27 16:52:51 2012 +0000
-
-    Skip SET-based tests when compiled using --disable-set-support
-
-commit c4276b6232c29145c039884e6b5a6b6da4b93837
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Feb 27 15:54:45 2012 +0000
-
-    Omit SET-related code when compiling with --disable-set-support (inspired by patch #3424930)
-
-commit 01c930edcc25700d6b5fb0376f55a26425e13fb0
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Feb 27 15:17:22 2012 +0000
-
-    Omit SET-related code when compiling with --disable-set-support
-    (inspired by patch #3424930)
-
-commit 9484d83203c4e2d820416be665fa833aa70444d2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Feb 24 14:00:32 2012 +0100
-
-    Rework commit b4a19505a05816e94e01de97bf99ac37fcdc6d23.
-
-commit 2b7f13495228635d816e58b2174dc124dd0cf39f
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Fri Feb 24 07:43:22 2012 -0800
-
-    set MERGE_AUTOEDIT before merging to avoid the future git 1.7.10 forced msg
-
-commit e1b910b0be9343586ae9edba6f46040af315fcdd
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 23 10:27:54 2012 +0100
-
-    CHANGES: snmpd: init_agent() + init_kmem(): Return an error value instead of invoking exit() if access to kernel virtual memory is denied
-
-commit 463eed2120f9d191bc22673496a49e8174664e4b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 23 10:03:31 2012 +0100
-
-    Remove obsolete symbol NETSNMP_EXIT_ON_BAD_KLREAD
-
-commit c36ab71a4e096f16cc5a55533f080c9a94009914
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 23 08:53:56 2012 +0100
-
-    CHANGES: FreeBSD: snmpd + apps: Sending UDP packets works again for non-root users
-
-commit edebddba930f8b1472fa0bd20fc413ef8cf464a2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Feb 21 11:31:46 2012 +0100
-
-    testing/RUNTESTS: Fix a bashism
-
-commit b4a19505a05816e94e01de97bf99ac37fcdc6d23
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 20 16:58:47 2012 +0100
-
-    Fix compiler warnings about %ld versus time_t on systems where time_t is a synonym for long long instead of long.
-
-commit d8978ecc8211be7c1e7905f1e215bb06ded266b6
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Mon Feb 20 17:07:13 2012 +0100
-
-    IF-MIB: do not trigger undefined behavior (>> 32 of a 32-bit variable) when updating a counter and ifi_ipackets is a 32-bit variable
-
-commit c3fb6dd9e6b99e9542493188987871fc5017cb3c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 23 09:45:45 2012 +0100
-
-    Fix a compiler warning on systems where mode_t is unsigned
-
-commit f8a3ef0d3d4e530279900101049b8de98a44a6fb
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 14:48:52 2012 +0100
-
-    CHANGES: snmplib + snmpd + snmpwalk: Avoid that system clock changes (e.g. by ntpd) affect code that needs relative time
-    CHANGES: snmpd: Make sure that the range of the SNMPv3 variable snmpEngineTime is 0..2147483647 on all supported systems instead of 0..42949672 on some systems (i.e. wraparound after 497 days)
-    CHANGES: snmplib: Add netsnmp_get_monotonic_clock(), netsnmp_set_monotonic_marker(), netsnmp_ready_monotonic(), netsnmp_get_agent_runtime()
-    CHANGES: snmplib: Deprecate atime_diff(), atime_newMarker(), atime_ready(), atime_setMarker(), marker_tticks(), netsnmp_marker_uptime(), netsnmp_timeval_uptime(), timeval_tticks(), uatime_diff(), uatime_hdiff() and uatime_ready().
-    CHANGES: snmplib: Change the names of the struct timeval members of data structures that were used to store a wall clock time but that do now contain a monotonic clock value
-
-commit c19760f3333c92fac5d50e9768cdf939218bc487
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Feb 15 09:45:03 2012 +0100
-
-    snmplib/snmpv3.c: Fix source code indentation
-
-commit a6db239945e195de5a90fa183700b27a6ecb28d3
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Tue Feb 7 00:11:14 2012 +0100
-
-    Fix possible memory leak from recent declarations patch
-
-commit 0fbbb9a9e2906a7af956957061d485874462aea9
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Feb 6 20:43:04 2012 +0100
-
-    Do not mix declarations and statements
-
-commit f308d5bafb05d78ed4030c4ecff324b6cbda680f
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 15:25:30 2012 +0100
-
-    Fix two compiler warnings in agent/mibgroup/disman/ping/pingCtlTable.c
-
-commit 46f0fc1b7fc26a225763bc65cca520a1c59f0251
-Author: Niels Baggesen <nba at 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 at users.sourceforge.net>
-Date:   Mon Feb 6 16:48:09 2012 +0100
-
-    CHANGES: added OCFS2 (Oracle Cluster FS) to hrStorageTable and hrFSTable
-
-commit fafc99cd89e73ec7e00bf7360d0b4fa61944a4f4
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 11:18:34 2012 +0100
-
-    Simplify calculate_time_diff() and calculate_sectime_diff()
-
-commit 7af2013de8bf1b379c076db4e104508e17874d3e
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 14:55:58 2012 +0100
-
-    Fix order of feature #ifndef and Doxygen comment block
-
-commit bbd67f63530f5ef0bfc948fc58dfe6a93f8f8679
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Mon Feb 6 14:47:54 2012 +0100
-
-    Rename two function arguments
-
-commit 3fe72b3b99b7e4b2b982363dfc4f2d8d13f40592
-Author: Bart Van Assche <bvanassche at 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 at 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 at 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 at acm.org>
-Date:   Mon Feb 6 14:51:33 2012 +0100
-
-    Fix spelling in a source code comment
-
-commit 910d7b0d99183609b9529b04c3f29330eb661021
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 14:38:12 2012 +0100
-
-    Replace netsnmp_timeval_uptime() by netsnmp_get_agent_uptime()
-
-commit 43a83f6c6a96cc2316b70eecacf127eb6913c7a7
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 11:19:15 2012 +0100
-
-    Use the assignment operator instead of memcpy() for copying struct timeval
-
-commit 2fe579efb1cb3a74f82803ca323928f6b8e4b5c0
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Feb 3 14:04:02 2012 +0100
-
-    Make agent/mibgroup/mibII/icmp.c build again on non-Linux systems.
-    
-    See also commit 345a1e4254812cb9edc1d274491b76681a9dba1e.
-
-commit 881de6ab7355277a5c116a008fbe513293b05039
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Feb 3 10:08:21 2012 +0100
-
-    Fix compiler warnings triggered by the Rmon MIB implementation
-
-commit 4629933c0d3b3f9f4ba583534f79a37fb9633817
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 20:05:31 2012 +0000
-
-    More compiler warning fixes
-
-commit e9b5a3dee6f9afab8b90a29392040632b075ad7a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 16:56:55 2012 +0100
-
-    Use SNMP_MIN() instead of min()
-
-commit ae452c77b411139d6b5800ffcf88d48e9b4792a8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 15:23:38 2012 +0100
-
-    Restore commit dbb8795a7df595f0603f2ec61704799f4c482667.
-
-commit c7d11fa00f9995ddb9fe3d4994a3e9790da2e189
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 15:18:40 2012 +0100
-
-    Restore commit dbb8795a7df595f0603f2ec61704799f4c482667 partially.
-
-commit 00fd62720ec454f5a690de4feba08223cfb2c3f8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 14:48:44 2012 +0100
-
-    CHANGES: snmptrapd: Avoid crash during shutdown due to invoking perl_destruct(NULL)
-
-commit d9e229d81abeaf191ef2ccb077842885c230d622
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 14:47:41 2012 +0100
-
-    Remove a superfluous declaration
-
-commit 1e2e2af6cae830f381e87a244d029eb86bf3fcce
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 13:20:37 2012 +0100
-
-    perl/SNMP/examples/pingmib.pl: Add error checking
-
-commit 241a141e31f1684fc6cf70cc4a00cce636fd3526
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 11:28:37 2012 +0100
-
-    Make configure-time EVP_MD_CTX_create() detection work on the 5.4 branch.
-    
-    See also commit 46eac02e9a27bf4f3068e795cab891f05a848870.
-
-commit 6d9d14feaaa2d0fec68b4d158944d32cb04ff1bc
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 11:12:00 2012 +0100
-
-    Revert the changes that break the build on the 5.4 branch from commit dbb8795a7df595f0603f2ec61704799f4c482667.
-
-commit 8abe49e30c97c8983e83b45a35c716fe91f66bea
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Feb 1 11:56:58 2012 +0100
-
-    Fix several compiler warnings in the DISMAN MIB implementations.
-
-commit f9fb0a533375e14dc370025a0b2fbc761bf27be6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 09:56:02 2012 +0100
-
-    Revert "HOST-RESOURCES_MIB: fix a compiler warning" because it's wrong.
-    
-    This reverts commit aa6b79bc124a7b7a885d7e5035ab06aa3ecef613.
-
-commit ca4a4fe25efd2714f8f1961b97856616563f42c9
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 10:21:49 2012 +0100
-
-    .gitignore: Add python/build
-
-commit 13ada56558b44e28d1355c0dce1d921f3746d548
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Fri Jan 20 14:13:18 2012 +0100
-
-    Revert "Fix format specifiers to avoid warnings" - there is no NETSNMP_PRIo in V5-4 or V5-5 branches
-    
-    This reverts commit 390c0114c8ec0bdb27b08b6f74e3f6ef3a62981b.
-
-commit 2fb99be9aa86a6ca349b86d4ef8bc726ed9f2a82
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 14:58:35 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit e5c35589e0bf416bfd036bd468f42aaeab25e788
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 14:55:56 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 345a1e4254812cb9edc1d274491b76681a9dba1e
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 14:51:26 2012 +0100
-
-    Fixed error handling in init_icmp().
-
-commit c303549a59fa8c2f20a9d8bf1e985fbc8abde6a8
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:46:29 2012 +0100
-
-    Reworked _register_extend() error handling.
-
-commit 9c20e27a7026fc030da3b328b9a2e1b4f36670cd
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:21:28 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 22fd0bfc2df0e1f6020dc3c50a753ddf28a4599c
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:20:22 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 5d61e57baf580c78252c0abb0098c07bb05af17c
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:17:05 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 3c3eeae80d796f27597c901e7ff2046c769ef4b8
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:08:09 2012 +0100
-
-    Mark rowreq_ctx as freed so next iteration allocates new one instead of reusing the freed one.
-
-commit af9abd53c2337c90a691a7b044ff3f97c1003161
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:05:10 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit cf9465f54181e62e21a9b10219131107a3d2ebf6
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:04:06 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 7871f2b09b8b52f34a9e57784266459053165bcb
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:02:50 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 7a37f33d310c9598607bc323d9bdbf91aaf72c95
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:00:51 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 3e45f7026249e45350edaac85337423aa0e95d8b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 14:13:18 2012 +0100
-
-    Revert "Fix format specifiers to avoid warnings" - there is no NETSNMP_PRIo in V5-4 or V5-5 branches
-    
-    This reverts commit 390c0114c8ec0bdb27b08b6f74e3f6ef3a62981b.
-
-commit 61936762e641c18db75aa5125a33e776c677adc5
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 11:13:39 2012 +0100
-
-    Fixed freeing reginfo twice on error in a template and all its instances.
-
-commit 496437430415fbafeb1ccd4774f1ca00d627ea1f
-Author: Bart Van Assche <bvanassche at 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 at 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 at acm.org>
-Date:   Fri Jan 20 09:20:42 2012 +0100
-
-    Use snmpTargetParamTable_dispose() to free a struct targetParamTable_struct.
-    
-    Fixes a bug introduced in commit dbf26a05a04ef24c47346e5adda48e338498e71f.
-
-commit aa6b79bc124a7b7a885d7e5035ab06aa3ecef613
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 20 09:20:31 2012 +0100
-
-    HOST-RESOURCES_MIB: fix a compiler warning
-
-commit 3a76b43e11fffada632fccb848ab500e876ad48b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 18 16:21:05 2012 +0100
-
-    CHANGES: python: Avoid that an SNMP set with UseEnums enabled causes a segmentation fault
-
-commit 84dec9fa92b0aa2d58eb7020330f4f98e5154321
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 18 14:38:21 2012 +0100
-
-    python/netsnmp/client_intf.c: Fix most compiler warnings
-
-commit 38cf218c3f1a727786e227a5d3fb186fd0f1a15f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 14:50:13 2012 +0100
-
-    Fix a typo
-
-commit 454122244122bfdb6f67cab31256d7b46372e9e1
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 14:30:18 2012 +0100
-
-    Free tmStateRef on errors.
-
-commit 0119022daa59c73bfec0da2386d0628f14e6dab7
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Thu Jan 19 13:48:26 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 63dc846a7949ce697b3e28c543dc1105e63a2250
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:08:28 2012 +0100
-
-    Free certificate fingerprint.
-
-commit ce1f284a63eb81644b3e32606cbe39b67e1dff2a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 14:37:09 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 7e21413ca6f2efd7a3afb62c62b644881b8bd1e7
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:46:30 2012 +0100
-
-    Properly allocate and free engineID.
-
-commit 34c962882607c3638a2fa25a2ac531492d71c787
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:37:25 2012 +0100
-
-    Free locally allocated tmStateRef.
-
-commit f57ae531dc5658abcd65b1627615525238d16d2d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:20:24 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 536bc57556c3141561ea4a194810b16290a691ee
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:15:47 2012 +0100
-
-    Added check if the function actually does something.
-
-commit a0777d307dbcaf219ee0184a0fbab9d4e5d6aa0b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:01:45 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 8b97a71c8e7959428eb4d4e8d90e9096d43ff09f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 12:57:26 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 2c1507c22030549ae660c0e211fbdc5c75ec5c57
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 12:53:47 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 65f2b7bcd4fe03906aa1a115ab60a89b8ae933d5
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 12:51:36 2012 +0100
-
-    Close open files on error.
-
-commit 0e52e4f66d44766bea37473556c78e5219b95461
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:45:33 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit dbf26a05a04ef24c47346e5adda48e338498e71f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:42:17 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 748da84b1fd654e338bc701e8f9e5da229187f1c
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:32:04 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit eb217146fd54036ea4202bfef78bbf774d7e382d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:23:10 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 9ba38eec66138ec1f613ea8d04e158130c7121bc
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:18:55 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit d9d938d3018c27f53277bc5e59578500490c1d09
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:16:38 2012 +0100
-
-    Close open file on error.
-
-commit d5e817d5bd518d9ac6a0d60e0e141dd64f27ad19
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:14:12 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 2ae68f059df9d74b074d12f59c1847466ed576cd
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:03:17 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit a00f3d461121b545aed72ac12b2438791dcfc4ba
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 14:58:39 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 59884bb4d35ad13747ffa6723436dca587a9ab77
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 17:09:12 2012 +0100
-
-    In above code, olength is checked, so let's check it also here.
-
-commit ba5d5292b04393b0c7d7d7ed961241929418c6e4
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 17:05:14 2012 +0100
-
-    Fixed dereferencing NULL.
-
-commit da2d6a7028a13b9edf3a5c84314d0f1feef76714
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:44:56 2012 +0100
-
-    Prevent dereferencing NULL.
-
-commit f88054a9b69b6de274f7a14a59b47323e5e4e4c6
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:37:35 2012 +0100
-
-    Don't dereference context if it's NULL.
-
-commit 7c4d459e8f1f652cc2098c3d4c81de90a84ed710
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:30:09 2012 +0100
-
-    Don't deference NULL.
-
-commit fc19b7f33b587927d2a01e72d23d21b9b1696ab3
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:25:26 2012 +0100
-
-    Don't close NULL file.
-
-commit 5e95ca6790076b788072a801ee7c82969d995bcb
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:17:09 2012 +0100
-
-    Prevent dereferencing NULL when a transport does not have f_fmtaddr.
-
-commit eed6f5f9b9ae54d2ceab67ad85adde1f6a8a21d5
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:13:13 2012 +0100
-
-    Prevent dereferencing NULL.
-
-commit 41cde68b5fa4b38d81450cf91e082cdfa825e7cf
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:10:10 2012 +0100
-
-    Check if a registration was really found.
-
-commit 5b72a40853876a186efcc0090a4e32c235b9c05f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:03:58 2012 +0100
-
-    Don't dereference NULL when difflen is SMUX_MAX_PRIORITY (which is highly unlikely, but...)
-
-commit fa6a912e41c5d0fd2a636894e86b6426c07375ab
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 15:37:44 2012 +0100
-
-    Check for missing value in setEvent.
-
-commit 410b71da425389fecc25d14f49f23753581576ad
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 15:28:41 2012 +0100
-
-    Dereference ereg only if it is not NULL.
-
-commit 185272d1a0b913774186f1b9135aeaf637ebed52
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 15:17:21 2012 +0100
-
-    As per above code, template_v2pdu can be NULL, so check it before dereferencing.
-
-commit 48e5ead3fd2c2b385df6972c67526ff6bdc30768
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 14:42:22 2012 +0100
-
-    Updated last fix to new error reporting style.
-
-commit f33d33615d6d85d0073726473c4146cbcdf11ced
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 14:30:07 2012 +0100
-
-    Fixed sigsegv when empty config line is parsed.
-
-commit b5df1eeb47ed3559b6f4d9ecccdb242126e6c992
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 14:11:58 2012 +0100
-
-    Fixed (highly theoretical) sigsegv when sp->securityEngineID is NULL.
-
-commit 6feed629a71899c113096959d8549dc1201e8f9a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 13:43:37 2012 +0100
-
-    Added NULL and len check just in case someone provides value = NULL and nozero len (-> NULL is then dereferenced).
-
-commit 355c5ab264af2a6020a1d8a923f80f11b942295e
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 13:36:41 2012 +0100
-
-    Extend the NULL check, i.e. return if there is nothing to remove.
-
-commit ddd7948acad938cd42974505ddca4f0372116709
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jan 16 11:11:29 2012 -0800
-
-    update sparta's copyright
-
-commit 41256086a7a5041453419cfd6e562c7b55c56b0a
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jan 16 10:32:04 2012 -0800
-
-    pulled full copy of extractnews from master
-
-commit 625a70dbdfd9902da79efa293fe6d2ac8ccf2b2e
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jan 16 10:24:19 2012 -0800
-
-    update to change to the newer log generating/parsing
-
-commit 62e32b13089b29edcf276f615da67e4508fe7bb5
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jan 16 09:29:42 2012 -0800
-
-    conflicting merge from master for extractnews
-
-commit 70084da61d2bcbd2cf1ed81bdc3bf6794c2affb6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 13 11:49:16 2012 +0100
-
-    CHANGES: snmpd: DISMAN-SCHEDULER-MIB: Handle 32-character schedContextName values correctly.
-    
-    See also commit b3c4982542e0ab151fb3884754cdfbcb472da52d.
-
-commit 04bf3e288158ee880edf237e4007fee37d2044dd
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Thu Jan 12 15:13:21 2012 +0100
-
-    Fixed a typo.
-
-commit a27aa19df283156c032c81eaee5e115859d38c17
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 15:11:32 2012 +0100
-
-    Don't replace 'rc' variable, it's value is needed outside the loop.
-
-commit 985dff2b0876d9483c414fccea3ef6bc63e14561
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 15:01:32 2012 +0100
-
-    Removed duplicate code.
-
-commit 2fd7818318e7a5dfe98f52ccf750c2a63e825ded
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 15:00:22 2012 +0100
-
-    Removed duplicate code.
-
-commit 15f21130ba33dc9afd164e52dfd74c9cec0e9232
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 14:58:14 2012 +0100
-
-    Removed duplicate code.
-
-commit 2a8a8f2ab7cd75826c5d41ec3cfd5ce3e9634cf3
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Thu Jan 12 14:25:06 2012 +0100
-
-    Fixed a typo.
-
-commit ebd92e19b10c0a38e17cde407864b45c26e17327
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 14:07:43 2012 +0100
-
-    Removed unnecessary if (value) check - value is checked few lines before.
-
-commit c5cacf5caf979d018ea6cae1c03b8fdf0b118dfd
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Thu Jan 12 13:43:19 2012 +0100
-
-    Prevent memory leak when malloc fails.
-
-commit 17053e34cfe9a8ab395fb50f5c3f1dafc7247aeb
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 13:32:57 2012 +0100
-
-    Fixed double fclose().
-    Linux man page for fclose(3) says: In either case any further access (including another call to fclose()) to the stream results in undefined behavior.
-
-commit a6641edb9cb74fc2236b42ce5554fc3329956552
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 15:22:34 2012 +0100
-
-    MinGW: Skip test T065 if not started from inside an MSYS shell
-
-commit a883ef1982f301b1485d227301674927330f5b67
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 11 15:14:53 2012 +0100
-
-    Moved debug oputput before return.
-
-commit 45751967287d97640efdcdf8e77e8d490939d8eb
-Author: Bart Van Assche <bvanassche at 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 at 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 at 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 at users.sourceforge.net>
-Date:   Mon Oct 18 06:25:56 2010 +0000
-
-    Win32: builds again without warnings with MSVC 6.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19489 06827809-a52a-0410-b366-d66718629ded
-
-commit f3a7d1b09609dad649f58bbdb5b7e10d39b398c1
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Sun Oct 17 11:04:06 2010 +0000
-
-    Follow-up for r19476: fixed a typo.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19478 06827809-a52a-0410-b366-d66718629ded
-
-commit 2de73bd365a381b9c353ca5230769eefb1ac71ed
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 11:42:42 2012 +0100
-
-    local/passtest: Remove an incorrect PATH= statement
-
-commit 699513f1238e0adce1f1cec98e0d147293fc5047
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Sun Oct 17 09:25:51 2010 +0000
-
-    NETSNMP_REMOVE_CONST()-related cleanup.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19476 06827809-a52a-0410-b366-d66718629ded
-
-commit 6358dee72fb347e2600a0a7bd21f23270d3a00f6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 10:58:15 2012 +0100
-
-    agent/mibgroup/ucd-snmp/versioninfo.c: Add a comment
-
-commit 5396bfe032c8cbc73c8ff5d4b085ebada9f59846
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 10:30:16 2012 +0100
-
-    Replace strncpy()/strncat() by strlcpy()/strlcat()
-
-commit feb3af28dcae22015ae865a2e5dd8c416e9991d8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 10:02:08 2012 +0100
-
-    Replace strncpy()/strncat() by strlcpy()/strlcat()
-
-commit b7e1aa255bae4a3453f9eca644a876634351f11d
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Sat Mar 20 19:36:28 2010 +0000
-
-    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.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@18345 06827809-a52a-0410-b366-d66718629ded
-    
-    Conflicts:
-    	agent/agent_registry.c
-    	agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c
-    	agent/mibgroup/mibII/interfaces.c
-    	agent/mibgroup/ucd-snmp/disk.c
-    	apps/snmptrapd.c
-    	snmplib/snmpIPv6BaseDomain.c
-    	snmplib/snmpUDPIPv6Domain.c
-    	snmplib/system.c
-
-commit f47a3752849db075e6f2053b8595b7b792fb6462
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Fri Oct 15 10:56:09 2010 +0000
-
-    CHANGES: Win32: building: Builds now correctly with a 64-bit compiler.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19458 06827809-a52a-0410-b366-d66718629ded
-
-commit 02b6056df95da8b673034e39c2c7c386ed0f369c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Jan 10 11:44:53 2012 +0100
-
-    Fix a compiler warning about casting away const
-
-commit a19865832fc77f4c048144d91a431b1e94d329f2
-Author: Magnus Fromreide <magfr at users.sourceforge.net>
-Date:   Wed Oct 14 23:12:05 2009 +0000
-
-    CHANGES: apps, snmplib: PATCH: 2835577: identified by "Bart Van Assche": Replace SNMP_ZERO of arrays with a memset.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@17797 06827809-a52a-0410-b366-d66718629ded
-
-commit 67a3e2eccb95f9c9d0809efcbddcd866ee3062d5
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Wed Jan 6 14:27:15 2010 +0000
-
-    Fixed a compiler warning about discarding the const qualifier.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@17970 06827809-a52a-0410-b366-d66718629ded
-
-commit 3dcde2e8a595a527f06142c3b852de8433a1cf28
-Author: Magnus Fromreide <magfr at users.sourceforge.net>
-Date:   Sun Jan 24 14:27:55 2010 +0000
-
-    CHANGES: snmplib: Prevent gcc ped-warning for NETSNMP_REMOVE_CONST
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@18052 06827809-a52a-0410-b366-d66718629ded
-
-commit c2e1525a85bda5299a3b9f241614f7e6509aeeba
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Wed Jan 6 13:35:11 2010 +0000
-
-    Backport commit 295f473c83546221b2a71d815c61e33a67f98ae3: refine NETSNMP_REMOVE_CONST() implementation.
-
-commit cb423b0ae9ed0059aa100dc4e2fd93ad1b97faf8
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Wed Jan 6 11:57:51 2010 +0000
-
-    Backport commit e2fb09e0093e2f648fe2638da2f3af18fdb32bf0 - introduce NETSNMP_REMOVE_CONST().
-    
-    Conflicts:
-    	agent/snmp_perl.c
-    	snmplib/snmp_service.c
-
-commit afc396ab1618a8595a2519fbc25f7a498e174411
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 08:49:34 2012 +0100
-
-    Unbreak netsnmp_mktemp() and make_temp().
-    
-    These were broken by commit bb8fcbb874998000f945f058d1aa6fe14e925899.
-    Also replace a strncpy() call by a call to strlcpy() and replace the
-    make_tempfile() implementation by a call to netsnmp_mktemp().
-
-commit 210185c15d0d65f0ea98b5e3c2e0776f6222d170
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 08:27:43 2012 +0100
-
-    Fix a crash during startup of snmpd introduced by commit 885061687d9caa38470979667d7d8ad6563cedad.
-    
-    Also, make sure there is only a single copy of the cleanup code in function
-    mkdirhier().
-
-commit 8bb4e86abcf98ff28748af0af89c98e64d5cd961
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Wed Jan 11 07:47:12 2012 +0100
-
-    Reduce the scope of the oldmask variable.
-
-commit 6680147b138ec114f81c5d128ac9350c8450d081
-Author: Bart Van Assche <bvanassche at 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 at users.sourceforge.net>
-Date:   Tue Jan 10 15:40:59 2012 +0100
-
-    Fixed buffer overflow for large OID names
-
-commit fba188ee82010b2f2d8ca2e426ba654499ab3d0a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 15:31:33 2012 +0100
-
-    fixed buffer overflow in __concat_oid_str
-
-commit 21d25d86b8e4904d798dc8c96dade9e5048457a8
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 15:26:07 2012 +0100
-
-    Fixed buffer overflow when parsing port numbers.
-
-commit d36931841b2fc2cebc6364b2949129a0ad42ad1d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 15:05:51 2012 +0100
-
-    Fixed a buffer overflow when large SumFile is used.
-
-commit 0efdd022da09af1b5e16171fa7a2b523c5d6ec59
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 15:01:53 2012 +0100
-
-    Fixed buffer overflow when too big temp file pattern is used.
-
-commit 560bc6c09b751556efd6b4c4495751b109a93f92
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:59:24 2012 +0100
-
-    Fixed buffer overflow, just to be sure.
-
-commit 8291d7c5b92a31dd4f582b497d4b2a0853367a56
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:55:16 2012 +0100
-
-    Fixed buffer overflow.
-
-commit 88e1f34de7300575fa6dab857ecddb242a87de80
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:48:55 2012 +0100
-
-    Fixed buffer overflow when too long interface names are used.
-
-commit be1375a9926ebe0cd5b78a4045c3bd11c83664b1
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:46:49 2012 +0100
-
-    Fixed buffer overflow when a sensor name is too long.
-
-commit 1cb24625372062b14c71d7dd51e20fef773e2743
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:41:00 2012 +0100
-
-    Fixed buffer overflow when a CPU has too long name.
-
-commit 84c807ee03251e54856e83d62d06ea08b8df527a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:36:50 2012 +0100
-
-    Fixed buffer overflow when too long interface names are used.
-
-commit c310e390b5dd05f24be7eb1904c74e41259c93db
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:24:54 2012 +0100
-
-    Fixed buffer overflow when too big temp file pattern is used.
-
-commit 4600d11434e83b8653cf9f813a3d8b630455b42d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:17:08 2012 +0100
-
-    Fixed plausible string overflow before parsing command line options.
-
-commit 885061687d9caa38470979667d7d8ad6563cedad
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:11:02 2012 +0100
-
-    Get rid of (insecure) SNMP_MAXPATH in mkdirhier()
-
-commit 8016890a445f6a7e2a873a04873d4e27b6ee64e3
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 13:48:34 2012 +0100
-
-    Fixed wrong integer size on 64 bit platform.
-
-commit bb8fcbb874998000f945f058d1aa6fe14e925899
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 13:31:36 2012 +0100
-
-    Secure mkstemp() with umask() - on some implementations it does not set 0600 permissions automatically.
-
-commit 202523ca704bd722dc1ac0e1e6b0e4b4e5424495
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 13:11:57 2012 +0100
-
-    Fixed dereferencing 'c' before NULL check.
-
-commit 73a523e468277f6df2e984891313b8be8bce1921
-Author: Jan Safranek <jsafranek at 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 at acm.org>
-Date:   Tue Jan 10 10:38:16 2012 +0100
-
-    .gitignore: Ignore perl/*.yml files
-
-commit c365d80c16c2d17b160011e8c1f9cb958954e9db
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Jan 10 08:34:16 2012 +0100
-
-    CHANGES: snmptrapd: Do not invoke shutdown_perl() from inside the SIGTERM handler since that fails if SIGTERM is received while a Perl handler is active. Based on a patch posted by Joel Avni <javni at arubanetworks.com>
-
-commit d059fb878b1436599953cea5a077499ddcdcbcb5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 17:03:55 2012 +0000
-
-    CHANGES: BUG: 3440752: IF-MIB: Report interface speed correctly for Ethernet interfaces if other than 10 Mbps, 100 Mbps, 1 Gbps, 2.5 Gbps or 10 Gbps. Add support for NICs faster than 65 Gbps.
-
-commit c09903a42e9d97331fd9e48ee831a85afdf9c70a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Jan 9 13:26:17 2012 +0100
-
-    Doxygen-style documentation fixes
-
-commit e325ecbfce77f00ac5cf6fbd957f95495f61c59b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Jan 9 13:25:10 2012 +0100
-
-    Suppress uninteresting Doxygen warnings
-
-commit be9161d3a5898e863767f926613486126c2cbf67
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 12:35:39 2012 +0100
-
-    CHANGES: snmplib: Simplify implementation of functions manipulating 64-bit numbers.
-
-commit 86e4c2be0852a0a13b0603075720b3264ec70dde
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 12:29:11 2012 +0100
-
-    CHANGES: snmplib: Make it explicit that MAX_SUBID is an unsigned constant
-
-commit 37e272d8f7b7180ba140fa386a5ff058968a08a2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 18:21:48 2012 +0000
-
-    CHANGES: snmpd: IF-MIB::ifType: Report type "infiniband (199)" for InfiniBand interfaces instead of type "other (1)".
-
-commit 269932fa32c7cd47957489698e09bee31f63b7af
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 14:34:42 2012 +0100
-
-    Fix an MSVC compiler warning
-
-commit 0d1c21f9991d1309d057e3e4056d547df7d40ecf
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 16:06:31 2012 +0100
-
-    Make declaration and definition of strlcat() consistent.
-
-commit 0c3d4dbb0a9cf5b359f70b2f19915495554f840f
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 15:23:16 2012 +0100
-
-    CHANGES: Win32: snmpd: Remove dlmod
-
-commit 893ecc97b587661045becbe09a320c1bcbc71c7c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 14:36:59 2012 +0100
-
-    Add strlcat() to the MSVC build infrastructure.
-
-commit 3d126422e625702b9d3fa0676a97ec5cb20d9d10
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 15:01:06 2012 +0100
-
-    Make win32/net-snmp/net-snmp-config.h consistent with its .in file
-
-commit af53b76c2ffa751e3958d0fc5d8279f78c2c1c26
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 14:43:55 2012 +0100
-
-    Skip T066pass_simple and T067passpersist_simple on MinGW
-
-commit 35a92e693d133a5b11e9e9b599dbf47edef4933b
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Thu Jan 5 17:47:11 2012 +0000
-
-    Fix 64-bit compiler warnings
-
-commit 7e890dad95f566069ee280215a4fea3f0e2e3980
-Author: Bart Van Assche <bvanassche at 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 at 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 at acm.org>
-Date:   Thu Jan 5 15:02:39 2012 +0100
-
-    Replace most strncpy() calls introduced in v5.5
-
-commit b24ee7c909657db43bd8c5d8c01055ca0883c9cf
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 08:40:39 2012 +0100
-
-    Eliminate most strncpy() and strncat() calls
-    
-    Using strncpy() and strncat() is error prone -- see also
-    http://www.gratisoft.us/todd/papers/strlcpy.html. Hence replace
-    all invocations of strncpy() and strncat(). Replace
-    strncpy(dst, src, n) calls by:
-    * strlcpy(dst, src, n) if the goal was to avoid output buffer overflow.
-    * sprintf(dst, "%.*s", n, src) to copy a prefix of src to dst or if src is
-        not '\0'-terminated.
-    * memcpy(dst, src, n) if strlen(src) >= n and n < size of dst.
-    * strcpy(dst, src) if n > strlen(src) and n < size of dst.
-
-commit 6d95bc4149472931005475c30a541fed5534da39
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Jan 5 11:19:16 2012 +0100
-
-    Fix warnings triggered during compilation of the Perl xs source files
-
-commit bad0600f6ec944ef8455e327ce784b9b07d247c9
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Thu Jan 5 10:00:29 2012 +0100
-
-    Get rid of a compiler warning
-
-commit 83e4c0e304f617ccac6610edd74d1706797bbf52
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Thu Jan 5 09:17:15 2012 +0100
-
-    CHANGES: snmplib: Simplify the se_store_enum_list() implementation
-
-commit b3222bb275f2f2346e0fd0478afa2efb600773e5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Jan 5 09:16:45 2012 +0100
-
-    CHANGES: snmplib: Declare "type" argument of se_store_list() / se_store_slist() / se_store_enum_list() const
-
-commit 022f840fbfcb0e26b08f0e55728231f611495803
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Wed Jan 4 17:33:09 2012 +0000
-
-    Fix a 64-bit compiler warning
-
-commit 24ff260ad89ce2aa361a55c7c72e916031defe35
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 17:11:24 2012 +0100
-
-    Change the type of the second argument of snmp_set_var_value() and snmp_set_var_typed_value() from u_char* to void*, like on more recent branches
-
-commit c6ca737fb46f90a4bda5d43734aac34e837a05f4
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Sat Mar 13 19:07:37 2010 +0000
-
-    Backport commit f504ce2d74a4bc88f68cc9515fa7053373cb15b5.
-    (Fixed most compiler warnings triggered by the source code in the perl subdirectory. Note: these changes may contain some real bug fixes.)
-    
-    Conflicts:
-    
-    	perl/ASN/ASN.xs
-    	perl/OID/OID.xs
-    	perl/SNMP/SNMP.xs
-    	perl/agent/agent.xs
-
-commit d212dc984ec34e4d230625e46e58b0c628a50df5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 16:46:49 2012 +0100
-
-    SNMP.xs compiler warning fixes
-
-commit baceebb10d8caf5db63cc36935fed65ee931029d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 16:22:44 2012 +0100
-
-    Add declaration for shutdown_snmpNotifyTable()
-
-commit f7f966abd6d2849b1331252afe5c473e5c40b32d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 14:24:33 2012 +0100
-
-    Fix format specification mismatches.
-
-commit 303c015bcfe9af0b154e9881c7b4f449e08f30bb
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed May 6 22:06:23 2009 +0000
-
-    Backport commit d3eb2b5ced22a8480053ce43acf9739729055404
-    (Sprinkle some const-ness where relevant / fix format string mismatches,
-    Niels Baggesen, May 2009)
-    
-    Conflicts:
-    
-    	agent/agent_sysORTable.c
-    	agent/helpers/instance.c
-    	agent/mibgroup/disman/event/mteTriggerConf.c
-    	include/net-snmp/agent/instance.h
-    	include/net-snmp/agent/sysORTable.h
-
-commit d95b40406916bda5b48b5a6131bec27b866b0a79
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed May 6 21:59:20 2009 +0000
-
-    Backport a2a7316c310f0fcc3728673fa047051c23b71960
-    (Trivial warning fixes, Niels Baggesen, May 2009).
-    
-    Conflicts:
-    
-    	agent/mibgroup/hardware/cpu/cpu_linux.c
-    	agent/mibgroup/host/hr_swrun.c
-    	agent/mibgroup/if-mib/data_access/interface_linux.c
-    	agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c
-    	agent/mibgroup/ip-mib/data_access/systemstats_linux.c
-    	agent/mibgroup/mibII/sysORTable.c
-    	agent/mibgroup/mibII/system_mib.c
-    	agent/mibgroup/ucd-snmp/logmatch.c
-    	agent/mibgroup/util_funcs/get_pid_from_inode.c
-    	agent/snmpd.c
-    	snmplib/container_list_ssll.c
-
-commit d86c47f003fdc192bce7b46ac4f06b09e387c12b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 13:29:08 2012 +0100
-
-    Fixed a typo
-
-commit bee4d79cf4eb7e0a45397f59b5298da633a8e1ba
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 13:14:57 2012 +0100
-
-    Fixed reading past end of buffer.
-
-commit 3dc0e00a2fd8e34fe1ae33ecabf36e146460a31f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 12:40:07 2012 +0100
-
-    Fixed buffer overflow when large 'token' is used.
-
-commit b3c4982542e0ab151fb3884754cdfbcb472da52d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 12:28:52 2012 +0100
-
-    Fixed off-by-one memset.
-
-commit 0f53695044dd3f0c3507753e3f8c29d97e96872d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Aug 3 21:38:26 2011 +0200
-
-    CHANGES: snmplib, snmpd, perl: Eliminate dead variables
-    
-    Conflicts:
-    
-    	agent/mibgroup/agentx/master_admin.c
-    	agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c
-    	agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c
-    	agent/mibgroup/host/data_access/swinst_pkginfo.c
-    	agent/mibgroup/host/data_access/swrun_procfs_status.c
-    	agent/mibgroup/ip-mib/data_access/systemstats_linux.c
-    	agent/mibgroup/mibII/kernel_linux.c
-    	agent/mibgroup/rmon-mib/data_access/etherstats_linux.c
-    	agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c
-    	apps/snmptls.c
-    	apps/snmptrapd_log.c
-    	snmplib/dir_utils.c
-    	snmplib/snmp_client.c
-    	snmplib/snmp_openssl.c
-    	snmplib/transports/snmpTLSTCPDomain.c
-
-commit 0153805c99b9197365935c5d11ae9c3d4bfaa0f3
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 09:48:41 2012 +0100
-
-    Fix a set-but-not-used warning
-
-commit 3f8885fbee9407748fc2f0573728a11ba2bc023a
-Author: Magnus Fromreide <magfr at users.sourceforge.net>
-Date:   Tue Apr 28 05:51:13 2009 +0000
-
-    Return a value from sprint_realloc_value even if no subtree is located.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@17578 06827809-a52a-0410-b366-d66718629ded
-
-commit b1eaaf302369fd4552e8fee7b6a805091ec0a9b4
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 11:38:51 2012 +0100
-
-    Added check of find_sec_mod() return value.
-
-commit aee4e895fe3bd5f4a61e34275bfca0368b560555
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 11:31:22 2012 +0100
-
-    Added check of snmp_sess_transport() return value.
-
-commit 5d1d0a744ab30c8e645c3b8506cbbd2cceb3d275
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 11:04:48 2012 +0100
-
-    Added check of netsnmp_extract_iterator_context() return value.
-
-commit 299ea9a89c3f1758a7748bb9b3411f62f2c70f88
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 10:54:55 2012 +0100
-
-    Added check of fopen() return value, just in case of some race.
-
-commit 90f1ae6757917481636eef77100caeeb53edfe01
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Jan 3 10:06:56 2012 +0100
-
-    Add strlcat.c. Source: http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/string/strlcat.c.
-
-commit 089bcb360aa26790ad2a8ceddf583b7ba5ddfd48
-Author: Jan Safranek <jsafranek at 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 at acm.org>
-Date:   Wed Jan 4 10:31:26 2012 +0100
-
-    CHANGES: snmpd: smux: simplify smux_list_detach()
-
-commit d883573aa73e0f5fc188acedee6451f95dae900c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 10:23:06 2012 +0100
-
-    Fix a compiler warning introduced by commit a809fe5075c9f374715f7d1a682949a0730172c1.
-
-commit 7b7a3eb2500527eaa1699287a6ca6fcc4cc2e08a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 09:40:02 2012 +0100
-
-    Fix a build error caused by commit a809fe5075c9f374715f7d1a682949a0730172c1.
-
-commit 2b6c119fed4848da6663c11f0c2cbdc29921b5c6
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 15:51:10 2012 +0100
-
-    Check for netsnmp_ds_get_int() errors.
-
-commit 6ce5360caa4c9de51ade57879e83f96bd04b4c5a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 15:42:23 2012 +0100
-
-    Check for missing view.
-
-commit b3bc54bed31690a85df2acfbf3296da93a9e89b4
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 15:23:17 2012 +0100
-
-    Check socket() result.
-    Also close the socket on error.
-
-commit 92075f51cd45a38ca38760b3ffe82e16559e9c2e
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 15:18:26 2012 +0100
-
-    Check open() result.
-
-commit 6665d5fe2fc569d6fa854d1d78e347bbac69e070
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:22:22 2012 +0100
-
-    Fixed missing break.
-
-commit a6648c5453e1ef8dac57a38efcc00cce53bf9e4f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:20:27 2012 +0100
-
-    Fixed missing break.
-
-commit d68dcae0f18d554571aef321944a5290548dde86
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:16:11 2012 +0100
-
-    Added 'fallthrough' comment for Coverity.
-
-commit fb6f80c0fe3ba36e56f5b911a47e3f6f32ba266e
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:14:07 2012 +0100
-
-    Fixed exit code of encode_keychange with wrong arguments.
-    Also added a comment for Coverity.
-
-commit 3130e24fdc232464dd7bb216f46cafa2e0e775a6
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:09:54 2012 +0100
-
-    Added missing break
-
-commit 18c126a9565cb4d69d7513b944a2105588045d35
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:07:29 2012 +0100
-
-    Added 'fallthrough' comment for Coverity.
-
-commit 6d31c82070a2c68fe3c519e9d56fa2779554d01f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:01:53 2012 +0100
-
-    Added 'fallthrough' comment for Coverity.
-
-commit dc6f0e2e549b4cd061ebc190084b1fc77a55f40f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 13:32:59 2012 +0100
-
-    Fixed wrong operator
-
-commit dab32867ed0b99301efd7b8d852ad1288a184be0
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 13:30:33 2012 +0100
-
-    Fixed QUITFUN usage.
-
-commit b1a2bcf64615eb66bc24d5be4950e45012962045
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 13:18:03 2012 +0100
-
-    Fixed wrong operator
-
-commit b2b1c851b94fed37c386eaa1bfead5c77696e3ef
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 13:14:52 2012 +0100
-
-    Fixed wrong operator
-
-commit a809fe5075c9f374715f7d1a682949a0730172c1
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 10:58:46 2012 +0100
-
-    Added check for failed register_mib.
-
-commit 5949f055c16ae650615aae7a1fee3f2d7b16d940
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 10:29:59 2012 +0100
-
-    Make MIB file parsing and detection more strict - LABEL is required at the beginning of MIB files.
-
-commit e4b673683c68ba8b3abc040b9125ec304643cc7c
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Jan 1 23:00:24 2012 +0100
-
-    Assume that libdl might be in AGENTLIBS or SNMPLIBS so preadd them.
-
-commit b13c1e57bedba79b806103c74f1921d53a706b38
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Jan 1 22:55:06 2012 +0100
-
-    Do not require ucd-snmp/dlmod unless it will work.
-
-commit 27dcea0d5f801df494ab2cb5c5c0ebe54eb0dcd3
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Dec 31 14:48:29 2011 +0100
-
-    Adjust paths for test restructure
-
-commit 14b60e85a1b5700e93d126e2f291d5c485f34e36
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Dec 31 14:14:29 2011 +0100
-
-    CHANGES: snmpd: Make the configuration of the dlmod module fail rather than generate a dummy module if the dlopen function isn't available.
-
-commit 98a97538fc1e9ff46b60d5d969347444578378c0
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Dec 31 13:35:13 2011 +0100
-
-    Adjust the paths to support testing even if builddir != srcdir
-
-commit 88f0af3cfb916ae5863cc2986071d435f20c3064
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Dec 31 11:37:52 2011 +0100
-
-    Reduce the scope of the variables 'p' and 'len'.
-
-commit 0815a7536c76f7e4842638683f674894a1a8ce14
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Dec 29 14:42:54 2011 +0000
-
-    Report problems with SetUndo processing
-    Missed when applying patch #3445440
-
-commit eb2ab23742ca86c0b89ccfe91eb6ea374bf3acc1
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Dec 29 14:37:31 2011 +0000
-
-    Check for the expected error (EPIPE) on closure.
-    Missed when applying patch #3447444
-
-commit aac10bc4f053c014f382d6593fc32ab95e0b1a57
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Dec 29 12:59:52 2011 +0000
-
-    CHANGES: snmpd: BUG: 3463767: Handle parsing subidentifiers > 2^31
-
-commit bbc02e36e90c1aab7898562f963f5cadb26e10bd
-Author: Dave Shield <D.T.Shield at 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 at liverpool.ac.uk>
-Date:   Wed Dec 28 16:53:24 2011 +0000
-
-    Add tests for pass/pass_persist, supplied by Bill Fenner
-
-commit d5ee3f0a1a63bb1752c74cbca55aa3d40bf9bf13
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 21:58:51 2011 +0000
-
-    CHANGES: snmpd: PATCHES: 3447444: Fix SIG_PIPE handling
-    Patch provided by Bill Fenner
-
-commit 2a17b37430c1852998c3588e547d7eb61c06da71
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 21:45:38 2011 +0000
-
-    CHANGES: agentx: PATCHES: 3445440: More robust handling of AgentX errors
-    Patch provided by Bill Fenner
-
-commit fe58a0e5f4d4e2e2ecbcb47382b08cb1e4df352c
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 18:16:23 2011 +0000
-
-    CHANGES: snmplib: PATCHES: 3456770: Handle (obsolete) UInteger type properly
-    Patch provided by Bill Fenner
-
-commit 1be8cf08a67a91855fee1ec4a2d8e087c7812456
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 18:04:10 2011 +0000
-
-    CHANGES: agentx: PATCHES: 3445437: Log AgentX disconnections
-    (in line with connections) Patch provided by Bill Fenner
-
-commit 068037289107faa2ba3f5cd2fb00c19494bb9a04
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 17:27:46 2011 +0000
-
-    Handle any GETNEXT request OID, not just a simple walk.
-
-commit a74fa528983123d355a8cdcaa77dd4eb4b8c6959
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 17:00:18 2011 +0000
-
-    CHANGES: pass: PATCHES: 349394: Bring pass_persisttest script into line with passtest*
-    (i.e. using the legitimate structure of NET-SNMP-PASS-MIB)
-    Patch provided by Bill Fenner
-
-commit bbe649ebfa61ea22399170b36b99db30a1de8012
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 16:54:38 2011 +0000
-
-    Rework "passtest" example to fully validate GETNEXT requests
-    and use a legitimate structure for output.  Backport of SVN
-    revision 17632 (which updated 'passtest.pl' but missed 'passtest')
-    Correct in branches 5.5 and above
-
-commit 82d06c7247b22c8b01d45bf55041d2f1e6427d49
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 13:45:18 2011 +0000
-
-    CHANGES: snmpd: PATCHES: 3447671: Fix override handling of OID values
-    Patch supplied by Phillip O'Donnell
-
-commit ba4a9ce51c9600f9fda168f1e6eff32a1db63cb9
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 13:24:26 2011 +0000
-
-    Tweak --disable-snmp-set changes
-
-commit 827c8b28830171faa9c61d53efca9eb6600561c2
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 11:25:43 2011 +0000
-
-    CHANGES: python: PATCHES: 3433846: Fix for use with python 2.4
-
-commit f98a54a99caf7b46b100a920db942cbca9c43926
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 10:10:36 2011 +0000
-
-    Skip SET-based tests when configured with --disable-set-support
-
-commit 230df14f94c3736ff34379a4e281eea353b47f80
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Mon Dec 26 23:34:23 2011 +0100
-
-    Do not assign tmStateRef twice
-
-commit c96b3b4d8530ad5e0efb03f24dab5e5f1a460031
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Dec 25 11:18:21 2011 +0100
-
-    Correct use-after-free.
-
-commit c5978c89cde2440f4d20dadbc9d1dd8db562d56e
-Author: Magnus Fromreide <magfr at 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 at liverpool.ac.uk>
-Date:   Sat Dec 24 16:55:30 2011 +0000
-
-    CHANGES: snmpd: PATCHES 3410059: Fix sparsely augmenting trigger tables
-    Patch provided by Stephen Turner
-
-commit c4ae021b2e6384437081c5623f360c8896390188
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Sat Dec 24 16:29:54 2011 +0000
-
-    CHANGES: snmpd: PATCHES 3410050: Skip already-'processed' varbinds
-    Based on mib2c patch provided by Stephen Turner
-
-commit c6accf8c66254fa8c48767ed7dec795ddafc522e
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Sat Dec 24 16:27:11 2011 +0000
-
-    CHANGES: mib2c: PATCHES 3410050: Skip already-'processed' varbinds
-    Patch provided by Stephen Turner
-
-commit a61826ad8ca54661d1d909712503bd3a8b32eed0
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Dec 22 18:35:46 2011 +0100
-
-    Remove unused variable.
-    
-    myMatch is unused as nmatch is zero and also since regexBuffer is created
-    with REG_NOSUB set.
-
-commit ba4fc80fe2cfd5a5d89230d8f3703e4fe01e6019
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Dec 22 19:24:40 2011 +0000
-
-    CHANGES: agent: PATCH 3402376: from Leonardo Chiquitto: Recognise ReiserFS
-    Also move various FSType definitions to the appropriate blocks
-
-commit b5ac4a04dcd5470d08d03321abcd1e982621e6e0
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:39:46 2011 +0100
-
-    Fixed unterminated strings after strncpy
-
-commit 2b37e4e8f250a0d8821199a74ac3f4e5b7b7baba
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:31:51 2011 +0100
-
-    Fixed unterminated strings after strncpy
-
-commit 3d08345156c419333de969f13d21fcec7e18e94d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:32:29 2011 +0100
-
-    Fixed unterminated strings after strncpy
-
-commit cd859ad51c4f18d5b0fc69dd669fcb051c798969
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:39:33 2011 +0100
-
-    Fixed wrong memmove size
-
-commit 30ff58d09d4c9d5438bb621054fd7ad7a2a597e4
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:07:19 2011 +0100
-
-    Fixed wrong length of buffer when printing ASN_BIT_STR
-
-commit 6c1487e1d360d3d260a39cb1f5b15da978395053
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 15:47:34 2011 +0100
-
-    Fixed potential free of uninitialized pointer in error cases
-
-commit c76fb96f65e33ba2fd212a921e8c386155ee5c7a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 15:44:46 2011 +0100
-
-    Fixed unitialized values in udpTable
-
-commit c44608679b89751176f28a2e54d5282b46e2a05c
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 14:56:13 2011 +0100
-
-    Use calloc instead of malloc and manual clearing
-
-commit a05c5f9513461824e7903ae9ae9a6c3386e33879
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 14:40:50 2011 +0100
-
-    Fixed printing of unitialized variable when sensors_get_label() fails
-
-commit e4a5edc72393bd3de9bf12bceba9d83bbf7de70b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 14:31:25 2011 +0100
-
-    Removed unused variable
-
-commit fae2e5b835b8df1eae47e4cebb4eb404d7282377
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 13:31:21 2011 +0100
-
-    Fixed dereferencing unitialized iid in error cases and with debug info enabled.
-
-commit 9d58f81a9239cfbcfc8ebce367d21e9b3dcb028b
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Wed Dec 21 13:20:52 2011 +0100
-
-    Fixed returning uninitialized variable 'status' when ss == NULL
-
-commit 7304c53cf8adee8eccef1a8f26756fc07f098721
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Dec 18 23:31:53 2011 +0100
-
-    On solaris 10 test in /bin/sh doesn't support the -e test. Replace it with -f
-
-commit 8cd3be60d693c9c36ffb97d3d9bcb49c1b4abe35
-Author: Magnus Fromreide <magfr at 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 at 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 at 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 at 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 at 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 at 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 at lysator.liu.se>
-Date:   Sun Dec 11 19:27:59 2011 +0100
-
-    Reduce variable scope.
-
-commit bc879571eca9520bc132f840c3e659d3793144d7
-Author: Magnus Fromreide <magfr at 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 at 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 at 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 at 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 at 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 at acm.org>
-Date:   Thu Dec 8 12:00:32 2011 +0100
-
-    Remove a cast
-
-commit de9250d9dae9727a6cc7f647688dddf1b8597128
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 8 11:58:04 2011 +0100
-
-    CHANGES: snmpd: Make sprint_mib_oid() treat OID components as unsigned instead of signed integers
-
-commit 0e33b3b6d5854a4bac15d4ea5e016c53d161d0cd
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 8 10:02:28 2011 +0100
-
-    Fix recently introduced compiler warnings
-
-commit b7e50d5f9a6755982d2af3191473cb34643bc03f
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 8 08:37:22 2011 +0100
-
-    CHANGES: snmplib: Reduce overhead of config file parsing
-
-commit 73c9ee42d28afe2e107a7d6616b6d011890c36ea
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 8 09:09:59 2011 +0100
-
-    Remove unused variables
-
-commit 3db97962b37eb12d254d61e6be234b06a391c8bb
-Author: Bill Fenner <fenner at gmail.com>
-Date:   Thu Dec 8 07:43:45 2011 +0100
-
-    CHANGES: snmpd: PATCH 3453868: from "Bill Fenner <fenner at gmail.com>": Factor common code into pass_common
-    
-    Move the code for pormatting and printing values from pass and pass_persist
-    into pass_common.
-
-commit b6568c83f1756e9a65434edeeeb40d23ddbbb652
-Author: ccchiu <ccchiu at 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 d494db64c208b4dc62813132f8863bd5c1a39d77
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 10:38:17 2011 +0100
-
-    CHANGES: snmptrapd: Eliminate an unused variable (Now)
-
-commit 28f2561bc2935d8e1cbf46d2820158173e7a4cf4
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 10:37:11 2011 +0100
-
-    CHANGES: snmptrapd: Move the main loop code into a new function
-
-commit 396e122ddc42a916f06a02884c0e8a258edbe238
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 09:32:16 2011 +0100
-
-    CHANGES: snmpd: Match each getpwnam()/getpwuid() call with an endpwent() call and each getgrent() call with an endgrent() call.
-
-commit 3efefbc0024399786f8b68b1e93b0a8fddddc7da
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 10:41:01 2011 +0100
-
-    CHANGES: snmptrapd: Remove superfluous casts
-
-commit 7f05daa8e0e0f533b0f12a3e1cf07641519909d6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 11:58:32 2011 +0100
-
-    CHANGES: BUG: 3444939: BUG: 1796886: snmplib: Avoid that sprint_realloc_octet_string() embeds unprintable control characters or binary zeroes in its output. This behavior could cause truncated output in snmptrapd.
-
-commit db8f558fd2f3b7c109ea3a1c2133b75b6f8cb2ad
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 10:04:41 2011 +0100
-
-    Compiler warning fix: pass unsigned chars to isprint() instead of signed chars.
-
-commit 800dc1028e7e0cd8cc14d84dd31723d47ac073db
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Dec 1 10:18:58 2011 +0100
-
-    Reduce the scope of the hint variable
-
-commit 83ea4a080c90a74b9743d3f24cf0d4b8a1e8c849
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Nov 27 21:16:52 2011 +0100
-
-    Reduce the scope of the variable qos
-
-commit 7b9e03441c3dc3a07670ed01f5d04791a82c750c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:04:01 2011 +0100
-
-    Remove #define val(x) __STRING(x) and change val(x) into __STRING(x).
-
-commit 2f379b0e4ecadfa4e541e3005c8fc8281882b741
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 15:58:47 2011 +0100
-
-    Follow-up for commit 1aa704e: unbreak the MSVC build
-
-commit 64ef0f71127617837027fb2cfaf174b95ba79e0d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:19:50 2011 +0100
-
-    Add SNMP::register_debug_tokens()
-
-commit 7bead9ca917c67566d5ed98ab507bbc02816217d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:08:08 2011 +0100
-
-    AgentX subagent: Reduce code duplication
-
-commit 0ed71541f87e7d78bc998eebda3217c59e1df830
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:03:19 2011 +0100
-
-    CHANGES: snmplib: Add Doxygen-style function header for netsnmp_register_default_target() and netsnmp_clear_default_target().
-
-commit 8c2972b61e40169b47c50988b6ae9e8c285f84f8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:02:54 2011 +0100
-
-    CHANGES: perl: Fix spelling in the documentation of the SNMP module
-
-commit 5df2bac6bd717799311f001ac7b73db88f11bdda
-Author: Magnus Fromreide <magfr at 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 at 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 at linux.vnet.ibm.com>
-
-commit 82e39fb6706df90ecf2fc9e10ada2b962ee196f3
-Author: Dave Shield <D.T.Shield at 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 at gmail.com>
-Date:   Tue Nov 29 08:29:49 2011 +0100
-
-    CHANGES: FreeBSD: Restore IP_RECVDSTADDR functionality.
-
-commit 7f47f52e481baa9aafb5784244b0dd2653e7dcff
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Mon Nov 28 08:51:39 2011 +0100
-
-    CHANGES: snmplib: Use SNMP_ALLOC_TYPEDEF to allocate transports in order to avoid the separate call to memset.
-
-commit cf86039e3086225c3085bb9adf088b8ba5ba6979
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Nov 22 15:02:58 2011 +0100
-
-    CHANGES: MinGW: testing: Make unit-tests/T102pdu_build_clib pass.
-
-commit 1a87e76e00ee3d5cd37a07bfc3d84490d3c2a4ec
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Nov 22 14:55:42 2011 +0100
-
-    CHANGES: MinGW: testing: Make unit-tests/T014gethostbyaddr_clib pass
-
-commit 8867fd1dcfe72b59d07322ff38a699b66ec4f326
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Nov 22 09:44:38 2011 +0100
-
-    CHANGES: snmplib: Make netsnmp_large_fd_set_resize() robust against memory allocation failures.
-    
-    CHANGES: snmplib: Make NETSNMP_LARGE_FD_ZERO() use memset() on Unix systems instead of an explicit loop.
-    CHANGES: snmplib: Make sure that on Unix systems netsnmp_large_fd_clr() doesn't try to read memory it isn't allowed to read if the first argument equals -1 (a value that shouldn't be passed by the caller).
-    CHANGES: snmplib: Make netsnmp_large_fd_is_set() return false on Unix systems if the first argument equals -1 (a value that shouldn't be passed by the caller).
-    CHANGES: Windows: Make netsnmp_large_fd_set_resize() shrink behavior correct.
-
-commit 23db0cf09b8b0eab37b749ef0c3c3f306900245c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Nov 21 23:02:57 2011 +0100
-
-    Fix casting tv_usec to int which may be too short
-
-commit 80ee4022e534e64aad5a5f27192843b42acb85e0
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Nov 19 09:14:02 2011 +0100
-
-    CHANGES: snmpd: BUG: 3439234: Move netsnmp_pass_str_to_errno to pass_common and rename it to netsnmp_internal_pass_str_to_errno
-
-commit 0baa9296c072bb3735760b0dd992f2d1d3ca27fa
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Nov 19 09:05:24 2011 +0100
-
-    CHANGES: snmpd: BUG: 3439234: Correct the dependencies of ucd-snmp/pass and ucd-snmp/pass_persist
-
-commit 1aa704e4a294430b28e39b6f9e4683b8a48bce04
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Nov 19 08:35:21 2011 +0100
-
-    CHANGES: snmpd: Factor out asc2bin and bin2asc. Add a netsnmp_internal_ prefix to them
-
-commit cda8fe91013f12cbf64a0775abb55720035af931
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Nov 19 00:55:24 2011 +0100
-
-    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 at 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 at users.sourceforge.net>
-Date:   Wed Nov 16 23:33:07 2011 +0100
-
-    Define the full NetBSD hierarchy downwards
-
-commit b881841bd0493dd71d63259bdded449b06f02c32
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:30:33 2011 +0100
-
-    Fix size_t/int mismatches
-
-commit ca294cf75bbc8e90dbf44ee40478935e91db1487
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:18:03 2011 +0100
-
-    Remove unused variables
-
-commit cd32c2dff06b9b452cc18d552d2f2234092c829c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:17:09 2011 +0100
-
-    Fix format warning
-
-commit 883136c2b2fa0739f437a8cfb6614accc76e268e
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:15:58 2011 +0100
-
-    More needs for NETSNMP_PRIo format specifier
-
-commit b8084a7ccc909b6d6db7c0e8e596d78671f5678b
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:14:26 2011 +0100
-
-    Fix using char as array index (ctype.h)
-
-commit 84529e6320a89d97f1314aebad806255d2a1b18c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:00:57 2011 +0100
-
-    Fix missing format for FreeBSD 4
-
-commit 4bd0352955a2551bfe02308dd134b9128c98b9e9
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 22:59:36 2011 +0100
-
-    Fix paranthesis problem
-
-commit fe6269b1900cf44dc27a199a761d15a01c3f3092
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 22:58:34 2011 +0100
-
-    Fix size_t/int mismatches
-
-commit a4db9f9fc13d21ecff488eb410376edda6c28232
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 13:43:34 2011 +0100
-
-    Remove unused variables
-
-commit 390c0114c8ec0bdb27b08b6f74e3f6ef3a62981b
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 13:37:49 2011 +0100
-
-    Fix format specifiers to avoid warnings
-
-commit 25cfc1962ae576ccb1558da1e3ef8b6c17f63c16
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 11:27:53 2011 +0100
-
-    Really up-to-date mibs
-
-commit 0e86c781f3989bf022c8993a118617b74a75420c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 09:17:19 2011 +0100
-
-    memory_linux: get Shmem from /proc/meminfo for 2.6 (or newer) kernels
-
-commit bf264d15ded7acbbf2e3871b98fd1fcef43d9ec3
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 09:16:16 2011 +0100
-
-    memory_linux: close sockets in error situations
-
-commit 57ff8a40bae5d9bcad16089142a9cf328c9fa1f5
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 09:14:57 2011 +0100
-
-    disman/ping, disman/traceroute: Close sockets in error situations
-
-commit 8a2502a15c3217b95939a3c836167d230ac35f02
-Author: Niels Baggesen <nba at 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 at 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 ba619804e5978a8df754844efcca52b69b5015fa
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Nov 14 13:34:20 2011 +0100
-
-    MinGW: Make sure that the backslashes in the pskill message are displayed.
-
-commit 923eecc507f75043b60c5e68053a4f396ab0b0d2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Nov 14 12:36:38 2011 +0100
-
-    Compiler warning fix for systems where uint64_t = unsigned long (e.g. RHEL 6.1/x86_64)
-
-commit 434bfc1f7457550b6f87d5bcd511276b270b5964
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Mon Nov 14 11:22:53 2011 +0100
-
-    CHANGES: snmpd: from Martin Wilck: fixed snmpd crashing with 'select: bad file descriptor'.
-    
-    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 at 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 at users.sourceforge.net>
-Date:   Fri Nov 11 19:00:12 2011 +0100
-
-    NetBSD-6: One more instance of timespec replacing timeval
-
-commit 8ad6c53fdec5adeae4e52f1751ecec4a345bab05
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Nov 11 18:59:01 2011 +0100
-
-    Fix buig #3436527: arp_netlink: fix dying reload of cache
-
-commit 378ffed03ba79a8346d6c62781e2ddf5ce92a478
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Nov 11 18:55:43 2011 +0100
-
-    Fix bug #3436528: swinst_pkginfo: recover from NULL return from opendir
-
-commit d7ad8f5f9f3f67f16f65c2515d11e194d2cdd12c
-Author: Bart Van Assche <bvanassche at 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 at 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 at 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 at 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 at lysator.liu.se>
-Date:   Mon Nov 7 01:25:57 2011 +0100
-
-    CHANGES: testing: Remove unused variable
-
-commit e221e65fdc1c68f1968651717dcc9ccfb6414783
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Nov 3 15:05:00 2011 +0100
-
-    Fix warnings about converting sockaddr_in * into sockaddr *.
-    
-    This is a follow-up for commit a0af385.
-
-commit 2e7e9eda0b0d62a7645a9a8f70ef3fb6f3dd6941
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Nov 3 11:17:48 2011 +0100
-
-    Fix uninitialized variable warnings.
-
-commit 3462ebcdd0b7c298cb15c3099736f4f952257846
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Oct 28 16:07:15 2011 +0200
-
-    Remove those superfluous parentheses that trigger a clang warning.
-
-commit 3e5fedd3e7d1ef31683604bf73dc56e944cad349
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Nov 3 09:45:27 2011 +0100
-
-    CHANGES: snmpd: fixed UCD-SNMP-MIB::systemStats after 30 days of uptime.
-    
-    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 at users.sourceforge.net>
-Date:   Wed Nov 2 22:59:08 2011 +0100
-
-    dskIndex was off by one
-
-commit a5b28829e64d5f3b87e4b9b1ef8cc204f33a61b7
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 2 21:25:07 2011 +0100
-
-    Solaris needs $AWK to get a usable nawk
-
-commit 2801a2139f27021e1ab15e362e2d3d624ffaa494
-Author: Niels Baggesen <nba at 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 at 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 at 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 at 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 at lysator.liu.se>
-Date:   Sat Oct 29 08:34:33 2011 +0200
-
-    CHANGES: snmpd: Disable the support for integer64 in pass scripts if compiling without opaque-special-types.
-
-commit 29bf69d70424f359d9c87f07a964a099415649a5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 10 13:02:25 2011 +0200
-
-    CHANGES: snmptrapd_sql: Avoid that a linker error is triggered on systems where my_progname is missing in libmysqlclient (e.g. Fedora 15 and 16).
-    
-    This is a backport of commit 9f653f7.
-
-commit 2cc9504b9bb8625b94be6cda7e60993d059cd928
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Oct 26 09:01:23 2011 +0200
-
-    CHANGES: snmplib: BUG: 3428506: Fix netsnmp_gethostbyaddr()
-    
-    This patch should fix the regressions introduced by commit 85d96c4 (May 13, 2011).
-
-commit 9b427b353f1ceb8fe87e6fc8ed3b6cfab3ce7f20
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Oct 27 08:20:00 2011 +0200
-
-    MinGW: Avoid confusion between MinGW's kill.exe and the SysInternals pskill.exe
-
-commit 2c45f92cfcb5b05e049226a5a7883a0b106011ae
-Author: Bart Van Assche <bvanassche at 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 at 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 at acm.org>
-Date:   Wed Oct 26 09:32:46 2011 +0200
-
-    Fix compiler warnings about casting away const
-
-commit 13952f6bee9f408867ab6d2fdfdde4f284074957
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Oct 26 14:05:16 2011 +0200
-
-    CHANGES: snmplib: from Siddhesh Poyarekar: properly clean up old requests in a subagent when we reconnect to master.
-    
-    An snmp subagent linked against net-snmp-libs may crash if it handles a
-    response which has magic referring to an older disconnected main session. This
-    may happen when the subagent
-    attempts to clean up old requests on reconnection of the disconnected master
-    session.
-
-commit ae052472b22720d08369e85127db214245df2e3f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Oct 25 16:15:17 2011 +0200
-
-    CHANGES: perl: fixed segmentation fault when handler registration fails.
-    
-    When netsnmp_register_handler fails, it frees its reginfo -> nsahr_DESTROY (and any other function) must not dereference it.
-
-commit c199bf91b6239f26b2aab34e8575e0f0df9cde9b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Mon Oct 24 14:25:28 2011 +0200
-
-    CHANGES: snmpd: xfs, jfs and vxfs filesystems are now recognized in hrStorageTable
-
-commit 747fdc71e64d09e080928ebbb4d04cbde3906799
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Oct 5 15:57:59 2011 +0200
-
-    CHANGES: snmpd: Lowered severity of 'error finding row index in _ifXTable_container_row_restore' message.
-    
-    The message is shows up when snmpd is started and there is different set of network interfaces than it was when snmpd wast last stopped. This is common on ppp-servers or virtual hosts.
-
-commit 250f698e59eab9f1ffd332ff59fdb72ea0df06ff
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Oct 23 08:51:23 2011 +0200
-
-    CHANGES: building: Make the transport configuration code work again
-    
-    Previously the transport inheritance processing code ran with
-    NETSNMP_FEATURE_CHECKING set. In this mode the file net-snmp/feature-details.h
-    is requiered. That file is created during the first make run, and that happens
-    after configure is run.
-    Change this to undefine NETSNMP_MINIMAL_CODE, effectively turning off feature
-    support during transport configuration in order to make it work at all.
-
-commit 6ef6907642247c663b9b8964b9fd44a211dbcaa7
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Oct 20 20:30:54 2011 +0200
-
-    CHANGES: snmpd: BUG: 3408398: Fix a memory leak in agent/mibgroup/hardware/fsys.
-    
-    This memory leak was introduced via commit
-    9bf3d96d96a8ecd4a5fc35c326dc937467002b6c: Initial HAL
-    implementation of FileSystem information (March 7, 2008).
-
-commit cf82b894b2217c26edc6f1356351c932415604e2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Oct 15 14:45:08 2011 +0200
-
-    CHANGES: snmplib: BUG: 3423915: Change default number of retries back from 0 to 5
-    
-    This patch fixes a bug introduced via commit 6cac050 (May 5, 2011,
-    added support for specifying the default number of retries in
-    snmpd.conf).
-
-commit c11adaa12915abfee629bb6c026c21f2185b216e
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 17 10:24:46 2011 +0200
-
-    CHANGES: Win32: Avoid that compiling the header file <net-snmp/net-snmp-config.h> with the MinGW gcc compiler triggers warnings about "pragma comment".
-
-commit b17a72a793483aee4a5bb2f2e2c7f4fd869817e6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 17 10:22:20 2011 +0200
-
-    CHANGES: Win32: Avoid that the PACKAGE_* macros defined in <net-snmp/net-snmp-config.h> cause trouble when including this header in a package that uses the GNU autotools.
-
-commit 664d3ae107d754051b8c42279d459aa57a1be1c3
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 10 16:47:16 2011 +0200
-
-    MinGW, hw_fsys: Use proper format specifiers in a debug statement.
-    
-    This patch fixes an issue introduced in commit 76ff25d.
-
-commit 211dcb49306561e35ba3c213be7cfa257b40a8e5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 10 15:52:43 2011 +0200
-
-    Avoid that gcc 4.6 complains about set but not used variables
-
-commit 9f653f73e5aa70f0bef1174632e95594f87f669f
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 10 13:02:25 2011 +0200
-
-    CHANGES: snmptrapd_sql: Avoid that a linker error is triggered on systems where my_progname is missing in libmysqlclient (e.g. Fedora 15 and 16).
-
-commit 4c83b9229a7454f34f6ff75f69e67e4030c419b5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Oct 7 15:58:45 2011 +0200
-
-    CHANGES: snmplib: Set the rpath for libperl.so in libnetsnmpmibs.so such that the dynamic linker can find libperl.so without requiring the user to modify the dynamic linker settings.
-    
-    This change in agent/Makefile.in is necessary on the 5.5 branch and
-    later but not on the 5.4 branch. That is because the 5.4 branch uses
-    an older version of libtool that propagates the rpath of dependent
-    libraries. This is called inter-library dependency tracking in the
-    libtool manual. This functionality is present in libtool version 1
-    but not in libtool version 2. For more background information about
-    dynamic libraries and rpaths, see also the document with the title
-    "RpathIssue" on the Debian wiki (http://wiki.debian.org/RpathIssue).
-
-commit 8925c912d2639752a84bcffeef1b70a81026449b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Oct 7 14:21:28 2011 +0200
-
-    CHANGES: agent: HOST-RESOURCES-MIB: Add missing brace in a debug statement
-
-commit 76ff25d9bf97579e7213102065fd5096f049a4c5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Oct 7 14:13:18 2011 +0200
-
-    CHANGES: snmpd: HOST-RESOURCES-MIB::hrStorageTable: fix bug in handling large filesystems, where large means above 8 TB (= 2**31 * 4096 bytes).
-    
-    This patch fixes a bug introduced in commit
-    71d8293f387a6cd66bb0dbb13c0f50174d2e678b.
-    For the original bug report, see also
-    https://sourceforge.net/tracker/?func=detail&atid=112694&aid=3419825&group_id=12694.
-
-commit 866033db9904ffb1203f283f838092e4cf68de6b
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Oct 6 07:33:27 2011 +0200
-
-    CHANGES: snmpd: Remove spurious #endif that seems to be the result of a mismerge.
-
-commit 20f4f3267ee20d55705b7a43789879c103f96620
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Oct 6 00:08:59 2011 +0200
-
-    CHANGES: building: Add missing end comments to feature ifndefs.
-
-commit e5de2cc57bf304f3320cad0034d2ea2d8aedc436
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Oct 5 09:15:10 2011 +0200
-
-    CHANGES: agent: Log a more detailed error message if embedded perl initialization fails
-
-commit 5eef9990de28f63111e6c093be0f3c7ae2d513a1
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Oct 5 08:45:49 2011 +0200
-
-    CHANGES: perl: Add agent::uptime()
-
-commit 6810ed42f9bc560750d6dbfb7e50b6e2ac11899c
-Author: Bart Van Assche <bvanassche at 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 at 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 6591937adb85000c27069c4be84cf4688838ebcd
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Oct 2 16:18:03 2011 +0200
-
-    CHANGES: building: Add dependencies on @FEATURETARGS@ to make the subtarget work as well.
-
-commit b9c8012ec035bc084f175876fecc375195f9be81
-Author: Magnus Fromreide <magfr at 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 at lysator.liu.se>
-Date:   Sun Oct 2 15:44:36 2011 +0200
-
-    CHANGES: building: Remove the use of -L flags for internal libraries as it confuses libtool.
-
-commit 93dc1235a0db58ffd29617cff00dc11263780202
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Oct 2 11:31:46 2011 +0200
-
-    CHANGES: building: Make make apps work again
-    
-    apps include snmptrapd and that require the agent libraries as well.
-
-commit ba41488ed44cd23c25963d4fc56c476853b2ab59
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Oct 2 11:29:33 2011 +0200
-
-    CHANGES: building: When you say make libs you expect all the libs to be built.
-    
-    This is demonstrated by the snmptrapd target at the top level which obviously
-    expected both libs to be built and so failed to compile before this patch.
-
-commit 3057c73e093473be46254bcdfb4ca788e432d1b8
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Sep 30 07:32:52 2008 +0000
-
-    NEWS: building: PATCH: 2091156: correctly declare dependencies in Makefile.
-    'make -j <N>' should work now.
-    
-    Backport this to V5-4 as it is needed for correct operation in the single
-    threaded case of make miblib as well.
-
-commit 6eae340fa2a64086592982cc52735bc01487d978
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Oct 1 19:33:50 2011 +0200
-
-    CHANGES: building: Silence libbsd 0.3.0 nagging
-    
-    If you have libbsd 0.3.0 installed then their version of nlist.h warns and
-    tries to make you include bsd/nlist.h instead. The problem is that we don't
-    need that compatibility library as we know how to do it ourself so it becomes
-    pure nagging. This patch adds a define that changes the warning into an
-    error and then figures out that there is no usable nlist.h and ignores it
-    for the future.
-
-commit ac38cb531bee50edc8d4c834f3005f5992c771d8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 29 19:03:02 2011 +0200
-
-    CHANGES: perl: Enable sending SNMPv2 traps with an empty varbind list
-
-commit a75de2971527ac2d2e812024298602bb2412f337
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Sep 30 10:41:44 2011 +0200
-
-    perl/SNMP/SNMP.xs: Update emacs modeline
-
-commit 848f6300efe38492fb454451a030f0b7e6ff8c9d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Sep 30 10:41:44 2011 +0200
-
-    perl/SNMP/SNMP.xs: Update emacs modeline
-
-commit c1374473ecd8ec9e0310013861ee18c83e5d6c5b
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Sep 30 03:29:36 2011 +0200
-
-    CHANGES: testing: Protect the use of $OSTYPE to ensure that 'test' get enough parameters.
-
-commit 7e97a20633a57eae39d015b23339463c32f5f848
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 29 10:22:08 2011 +0200
-
-    CHANGES: testing: Convert snmplib/test_binary_array.c into two unit tests
-
-commit 9c0dd98176457342fffaa5e74d802e3145ed70e7
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 29 08:56:17 2011 +0200
-
-    CHANGES: testing: Add unit test for netsnmp_register_old_api()
-
-commit 5fd26e4fa3e000ea9c81c38ab975b7946efe2157
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Sep 28 17:49:55 2011 +0200
-
-    CHANGES: agent: Avoid that netsnmp_register_old_api() failure triggers a double free.
-    
-    Fixes a regression introduced via commit
-    aa4d47c2609e52818c9cdf1a8e2205de9a335a0a (svn r19515).
-
-commit d2252d016693807326f72b66123649dea00af916
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 29 10:20:08 2011 +0200
-
-    CHANGES: testing: Require a semicolon after OK(), OKF() and PLAN()
-    
-    Also, let OKF() emit a single line of output such that all output it
-    produces is visible in the output of "make test".
-
-commit 1421924b4852142192c5bb9e93ddbfed69e908fa
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Sep 21 22:20:08 2011 +0200
-
-    CHANGES: snmplib: Avoid waiting indefinitely if a session has timeout zero
-
-commit 5f27f4f74ae2bd5baf503cf306b4f9a2841a57cf
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:32:03 2011 +0200
-
-    CHANGES: MinGW: testing: Fix a race condition in the test runner
-
-commit 09703958cc5ea845929ae19ef9e0804aecaa512e
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 27 12:42:41 2011 +0200
-
-    CHANGES: testing: Avoid false negative for T114agentxagentxtrap_simple caused by the test result being present in the hex dump ("mostly_harmless")
-
-commit 439300279f6f31438638d2f222c24c3c841fa6ab
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 27 11:16:32 2011 +0200
-
-    CHANGES: building: Micro-optimize agent module dependency analysis
-    
-    This makes the agent module dependency analysis carried out by the
-    configure script slightly faster, especially on those systems where
-    fork() is expensive (Cygwin).
-
-commit bbc680004a1376038dfdc4172dbe7b9e311fba68
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Sep 26 10:14:45 2011 +0200
-
-    CHANGES: MinGW: testing: Make test T130snmpv1vacmget_simple pass
-
-commit 70b06cf789208eaa890bfbcd638bdb775f817054
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 20 09:50:57 2011 +0000
-
-    CHANGES: Windows: testing: perl: Fix an incorrect message printed while running the Perl module regression tests
-
-commit 70bcc8de2d0fc92bbb8481823630fab9bc87af75
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Sep 16 16:14:24 2011 +0200
-
-    CHANGES: MinGW: testing: Obtain the MSYS path from the environment
-
-commit 626275e2d1acafae7144a33ed301a40f596b37b0
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Sep 14 13:14:17 2011 +0200
-
-    CHANGES: Windows: Remove superfluous link libraries from project files (*.dsp)
-
-commit 38fc3caa9eeb3800254b4f6ad6f8f4764c0f83db
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 20 09:34:08 2011 +0200
-
-    CHANGES: snmplib: Make netsnmp_callback_accept() return -1 (failure) instead of 0 (STDIN_FILENO)
-
-commit 6c8c7e8aca8fc2eeb52010ae3e9fee6dd83ef780
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 13 09:58:26 2011 +0200
-
-    CHANGES: snmplib: Remove obsolete snmp_get_fd_for_session() declaration
-
-commit 0860d11fd8fc5dbdaaae2261fae2c07fb9c2c82d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 8 13:54:55 2011 +0200
-
-    CHANGES: Windows: MSVC: Avoid that the typedefs in <net-snmp/net-snmp-config.h> conflict with those in <stdint.h> from the msinttypes project
-
-commit f8a036f63ff68f083436120e0abd478b692a2f61
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 8 13:21:06 2011 +0200
-
-    CHANGES: Windows: MSVC: When linking with OpenSSL, link with user32.lib too
-
-commit 836a23e10ca810c3899902d32587616a9d1203df
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Jul 14 18:38:13 2011 +0200
-
-    CHANGES: Windows: MSVC: Link with proper libeay32 library
-
-commit 7b07fd6cdef49ec7bb04b166e2a4fbb37b582840
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 11:10:38 2011 +0200
-
-    CHANGES: testing: Remove an incorrect comment from simple_eval_tools.sh
-
-commit 98f6d29d981ff8e607600c63dadb240535629807
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:49:03 2011 +0200
-
-    CHANGES: testing: Make ISDEFINED() check for an exact match instead of a prefix match
-
-commit 52cd0031a31f692f13263a94c335d06be1454803
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:12:59 2011 +0200
-
-    CHANGES: MinGW: testing: Make those regression tests pass for which SNMPCONFPATH and/or SNMP_PERSISTENT_DIR matter
-
-commit f5cd89bd3356dd74e1556c0b50966a643f192085
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:12:59 2011 +0200
-
-    CHANGES: MinGW: testing: Fix a race condition in the test framework
-
-commit deedd52c834a6448852a06785536e13865969694
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:12:58 2011 +0200
-
-    CHANGES: MinGW: Support the directory structure of recent Shining Light OpenSSL binary distributions
-
-commit d55bd4e0549f03b6fd32562c2aa7fe39272a9ef7
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Sep 28 06:55:19 2011 -0700
-
-    remove the v5.7 from the frozen list
-
-commit ac2aed3c94bb2ebb473af0a1e20f0561ad629956
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Sep 28 06:55:11 2011 -0700
-
-    remove the v5.7 from the frozen list
-
-commit 40079205967b8e5aeedb19fa3cb2e7b2f7988577
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Sep 27 21:53:47 2011 -0700
-
-    make depend
-
-commit cf14a228583aff3c5ab2f0d44c2f4c0fa5bd66af
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Sep 27 21:53:18 2011 -0700
-
-    version update for 5.7.1
-
-commit 1014dd8dfb48a5bd053f04541eb9728f0be07f47
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Sep 27 21:45:04 2011 -0700
-
-    version update for 5.7.1
-
-commit 18d116ba388c1dc949528884bb00698f1bacaa94
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Sep 27 21:11:52 2011 -0700
-
-    Version number update: 5.7.1
-
-commit 46eac02e9a27bf4f3068e795cab891f05a848870
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Sep 26 21:49:27 2011 +0200
-
-    CHANGES: snmpd: Avoid that snmpd crashes if started on a system with another OpenSSL library version than the one it has been built with.
-
-commit a5f064dd82996e2be3f1e9616703ad0395fb5aba
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Thu Sep 22 07:33:01 2011 -0700
-
-    version update for 5.7.1.rc3
-
-commit 569794fceb99eed7be817c64f85cd945caf99592
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Thu Sep 22 07:20:07 2011 -0700
-
-    Version number update: 5.7.1.rc3
-
-commit c55f608f16f160f5e79dc057f8878def462973e1
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Sep 22 10:35:24 2011 +0100
-
-    Fix the code for populating the table_tdata cache,
-    and clarify areas needing MIB-specific additions.
-
-commit 13763cf2c71bf93fec096eee004857c15b2cffff
-Author: Steve Friedl <steve at unixwiz.net>
-Date:   Thu Sep 22 10:06:45 2011 +0100
-
-    CHANGES: snmpd: 3409692: Calculate disk percentage usage via floating-point arithmetic
-    to avoid integer arithmetic errors.
-    (Code based on patch, rather than applied verbatim)
-
-commit ee0d3adb078291b743c9ecb76d20b591b7b15972
-Author: Steve Friedl <steve at 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 367da14fcdb146592de67c1d6997a09774259673
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 22 08:09:17 2011 +0200
-
-    The only change between V5.7.rc1 and V5.7.1.rc2 is the version number. Make this clear in the ChangeLog file.
-
-commit c276eeb8f0455a0870c4b478dde648e86529add3
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Sep 21 13:51:58 2011 -0700
-
-    changelog update
-
-commit 63050838666f645fc306dc2ee4f73f5efce63fed
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Sep 21 13:38:18 2011 -0700
-
-    Version number update: 5.7.1.rc2
-
-commit bbe2c19a01ecec024f741e2e54701ae6212f4c3e
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Sep 4 14:44:38 2011 +0200
-
-    This should have gone only to master.
-    
-    Revert "CHANGES: building: Correct dependencies - since bf74fea69f24dc6e85f908f3f41d1426b2e09688 snmpconf is located in builddir, not srcdir"
-    
-    This reverts commit 9efa467a972bb6e1c7fbdaf2e27429d29f4ab89e.
-
-commit 9efa467a972bb6e1c7fbdaf2e27429d29f4ab89e
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Sep 4 14:00:12 2011 +0200
-
-    CHANGES: building: Correct dependencies - since bf74fea69f24dc6e85f908f3f41d1426b2e09688 snmpconf is located in builddir, not srcdir
-
-commit 7835964d3593e5c6a1ae7de0b4114b7df1ae0fe1
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Aug 30 19:21:51 2011 -0700
-
-    version update for 5.7.1.rc1
-
-commit cb6a0c0bd6f8c2c7cd5fd86080dc6324e7f73858
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Aug 30 19:20:35 2011 -0700
-
-    make depend for 5.7.1.rc1
-
-commit e5ff2eb83bbbed92dac751c5a6643d78f837cf9c
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Aug 30 19:19:46 2011 -0700
-
-    fix C++ comment
-
-commit cb1f5cffc6fb52c2a6c0f7b408afeb47fcfe55e4
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Aug 30 19:09:56 2011 -0700
-
-    Version number update: 5.7.1.rc1
-
-commit 422b082a9593ca9c65aac449e6d128a9e97e94fb
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Aug 30 19:06:56 2011 -0700
-
-    added 7 as a rc series branch
-
-commit 71c0d7650493710631fa08d5dc4dad501a9aa771
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Aug 30 16:37:41 2011 -0700
-
-    deal properly with inverted error cases
-
-commit cf4cf7f32ad58f326ffed50494583231648d79d2
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Fri Aug 26 11:08:09 2011 -0700
-
-    added .ft and .ft.1 for feature files
-
-commit 41b2cde19d22209b483207614e027483c3706877
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Aug 30 11:03:15 2011 -0700
-
-    auto-determine patch arguments if possible for nspatchtry
-
-commit 96bb589c2e5054890e98705ab5f4308ae6a130bb
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Aug 30 10:13:06 2011 -0700
-
-    make it so the git commit line can be cut/paste without linebreaks
-
-commit 3fe36f7ad71c08e1286ce8e487e9352e27cd96cc
-Author: Ronald Wahl <rwa-co at 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 at users.sourceforge.net>
-
-commit 6e54c4131af731ff90467a75bcc817c957f8f72a
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Tue Aug 30 09:55:14 2011 -0700
-
-    describe that nsrollup needs to be run now.
-
-commit 86efee23432ccb0d2e0c736d34dc1051130cdc0f
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Aug 30 10:52:30 2011 +0100
-
-    Apparently IRIX has a different API for statfs
-
-commit f7e21f2633390b7a27c50227bee6d8696ae3fbcf
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Aug 29 16:01:31 2011 -0700
-
-    don't provide a feature when your a child of another feature
-
-commit cac23c0b2574e7280bd128c6226875ad0f6b4bfc
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Aug 28 09:38:14 2011 +0200
-
-    Make sure that feature-details.h exists before trying to include it
-
-commit 781f4ce2acb371560797d8b29a89ed0674e935f8
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Aug 28 09:36:36 2011 +0200
-
-    Use the feature target instead of the target when building the feature set
-
-commit 11bff472ca7b1fcff0c16187a1b8a13093bc91c4
-Author: Thomas Anders <tanders at users.sourceforge.net>
-Date:   Mon Aug 29 00:33:55 2011 +0200
-
-    the irix6 build only defines irix6, not irix
-
-commit 3c73a1407a081d42ebdd91dfbcb1e4f152b7df4a
-Author: Thomas Anders <tanders at users.sourceforge.net>
-Date:   Mon Aug 29 00:05:13 2011 +0200
-
-    re-add sockaddr_un.sun_path configure check (lost in previous commit)
-
-commit 2e3f02e03aed125384ba4fe3d83494d43f3a29e9
-Author: Thomas Anders <tanders at users.sourceforge.net>
-Date:   Sun Aug 28 23:53:30 2011 +0200
-
-    agent/mibgroup/hardware/fsys/fsys_mntent.c doesn't build on IRIX yet
-
-commit f95aa31377d572b049b0b316dbb163bf7aca93d5
-Author: Thomas Anders <tanders at users.sourceforge.net>
-Date:   Sun Aug 28 23:25:40 2011 +0200
-
-    CHANGES: building: build fix for systems lacking fields msg_control/msg_flags in struct msghdr (backport)
-
-commit 7f47d93765aa35a58687eb9b4f9f700e4343e13c
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Fri Aug 26 11:11:35 2011 -0700
-
-    added required features for mfd handling
-
-commit 9b2e42a6e0550fb789c607c3520880d4dbc0cf24
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Fri Aug 26 11:08:09 2011 -0700
-
-    added .ft and .ft.1 for feature files
-
-commit 33dcbf56fc0626a3e4f1359095bd217d1a567794
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Fri Aug 26 11:07:58 2011 -0700
-
-    no_write_support supported
-
-commit 97d42efd76937ce7e4bc48a72ed5a110e423102d
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Fri Aug 26 10:08:51 2011 -0700
-
-    handle no-write-support with ifdefs
-
-commit ea8bed79e81c42e33cbf37ca6f3c03c549987b22
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Thu Aug 25 06:56:22 2011 -0700
-
-    import stderr
-
-commit fd6d804dc3e703c4059dbe775001a3be9b93309f
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Thu Aug 25 06:55:38 2011 -0700
-
-    use >> to print to stderr
-
-commit cee0359c6fae2b85d7b931859e517d89ce0722bb
-Author: Magnus Fromreide <magfr at users.sourceforge.net>
-Date:   Tue Aug 23 23:43:19 2011 +0200
-
-    CHANGES: build: Do not generate an output file on failure
-    
-    make supposes that no output is generated if the command failed. Change
-    feature-remove to follow that presumption.
-
-commit fe39e7288ca930d2c9aaa8301cc9d95f0c38f36b
-Author: Magnus Fromreide <magfr at users.sourceforge.net>
-Date:   Sun Aug 21 21:48:17 2011 +0200
-
-    Correct typo
-
-commit 1f082a31cd138f1f5e27be6d90a1d5790dc0ffe4
-Author: Thomas Anders <tanders at users.sourceforge.net>
-Date:   Tue Aug 23 23:35:42 2011 +0200
-
-    make sure that _KERNEL is defined to 1 so that "#if _KERNEL" works on systems that need it (e.g. IRIX)
-
-commit 26bb2470c106f834442a2adbc7611bf16657fbdf
-Author: Thomas Anders <tanders at users.sourceforge.net>
-Date:   Tue Aug 23 23:22:44 2011 +0200
-
-    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 at 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 at users.sourceforge.net>
-Date:   Sun Aug 21 01:51:49 2011 +0200
-
-    autoreconf
-
-commit 1a2648eaf71cb018951596689c51588dca8063c5
-Author: Thomas Anders <tanders at users.sourceforge.net>
-Date:   Sun Aug 21 01:48:57 2011 +0200
-
-    autoreconf
-
-commit 3f2f61b0e613d6105ecf2ceb395de0bde37f3ce3
-Author: Thomas Anders <tanders at users.sourceforge.net>
-Date:   Sun Aug 21 01:47:13 2011 +0200
-
-    autoreconf
-
-commit b62cb0864f577ba85573d0d250d12a39387c07b4
-Author: Thomas Anders <tanders at 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 at users.sourceforge.net>
-Date:   Sun Aug 21 00:40:28 2011 +0200
-
-    fix broken line wrap
-
-commit 5b5900a4f7dfee6e1ec869e32310b80ca6fb23fe
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Thu Aug 18 12:28:07 2011 -0700
-
-    version update for 5.7.1.pre2
-
-commit 3b7e2e39949f88d9c56ed5f994028b94816ab75c
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Thu Aug 18 12:23:28 2011 -0700
-
-    make depend for 5.7.1.pre2
-
-commit ece63bfe499c630bdaae6200648d29180ce3a179
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Thu Aug 18 12:03:17 2011 -0700
-
-    Version number update: 5.7.1.pre2
-
-commit 28b54070514753e8d8abb718b224d657ab7a8ab8
-Author: Garrett Cooper <yaberauneya at users.sourceforge.net>
-Date:   Thu Aug 18 11:49:56 2011 -0700
-
-    CHANGES: BSD: PATCH 3383965: from yaberauneya: Fix if-mib agent compile warnings on *BSD
-    
-    Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-commit f73e6364bb34070622e9f4488cd0487d2fb7402a
-Author: Vladimir Kondratiev <wulf2001 at 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 at users.sourceforge.net>
-
-commit e6cf8206f0c67650001e34b526b37f64e4a5929c
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Thu Aug 18 09:46:33 2011 -0700
-
-    Patch from Claus Klein on -coders for fixing man page typos
-
-commit 6a841d56518a727196e66b59e7e5b3304f54b0a1
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Thu Aug 18 08:31:06 2011 -0700
-
-    changed clientaddr so it registers as pre-mib to be picked up before the transports get created
-
-commit c02131e5b35d296755baec99bd363205a86307dd
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Aug 17 09:34:00 2011 -0700
-
-    detect really old versions of Long.pm
-
-commit 500d6de06aa4ff330aee4d749a4cc377bec89e09
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Aug 17 18:11:47 2011 +0200
-
-    Fix the log message that reports that gethostbyaddr() is missing
-
-commit 6580556cc7bd833af731b62ce1ed2017564fe7eb
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Aug 17 18:08:01 2011 +0200
-
-    CHANGES: Windows: snmptrapd: Make the IP address to hostname conversion work
-
-commit 3cb3f1ede388d84e392e1d815d5994a4bf0f10f9
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sun Aug 14 07:59:25 2011 +0200
-
-    Windows, build.bat: Restore original build and install order. Apparently the correct netsnmp.dll is used during the Perl tests by setting PATH properly.
-    
-    This reverts commit c1b5a030d8f04876cd5b9af008c879cc468b212f.
-
-commit daff49d9b3369efcc87f05dc8591362e81a45fdf
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Aug 13 18:43:48 2011 +0200
-
-    Windows: Make the Perl agent module work again with the original SNMP_FREE() definition.
-
-commit 3c73b4838e605b150bc317313f14eb33444729f8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Aug 13 17:38:27 2011 +0200
-
-    Revert the two most recent SNMP_FREE() changes (commits 47c8ef1b89c6ccb4247d9633477925908c68c1a5 and 7f42d0d93320484152271427cc9808cbda49bbd0).
-
-commit 3e50c3e00e9f321fb708bc579eb4dc1a0f1e7c4d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Aug 13 11:31:40 2011 +0200
-
-    CHANGES: snmpd: pass_persist:  Fixes a race condition introduced in commit 31fa07cd9ffde46d41d2b5838c3fc4d01548bfb5.
-    
-    The following race condition could happen:
-    - A system call fails and errno is set accordingly by the C library.
-    - SIGCHLD handler invokes a system call that fails and hence overwrites errno.
-    - SIGCHLD handler leaves.
-    - original context checks errno and finds the value from the system call invoked
-      by the SIGCHLD handler instead of the system call that failed originally.
-    
-    Other fixes included in this patch:
-    - Renamed deinit_pass_persist() into shutdown_pass_persist() such that this
-      function gets called during agent shutdown.
-    - Made sure that shutdown_pass_persist() is called by the Windows snmpd.exe too.
-    - Windows: avoid calling CloseHandle(INVALID_HANDLE_VALUE).
-    - Windows: avoid that closing a pass_persist pipe triggers a crash.
-    - Windows: pass_persist: close handles of finished processes.
-    
-    Conflicts:
-    
-    	agent/mibgroup/ucd-snmp/pass_persist.c
-    	win32/mib_module_shutdown.h
-
-commit e147e4b96755207de1ce30990d67b4b7c76dd483
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Aug 13 08:39:14 2011 +0200
-
-    Unbreak the Windows build. This is a follow-up for commit 1e1000a8815921b5ec2e7997b53592a544b3dfc2.
-
-commit c1b5a030d8f04876cd5b9af008c879cc468b212f
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Aug 13 08:10:33 2011 +0200
-
-    CHANGES: Windows: building (build.bat): Install netsnmp.dll before running the Perl regression tests such that the regression tests are run with the correct version of netsnmp.dll.
-
-commit 1e9d2003baed227f68b68528f1e97e6f5ea86c1a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Aug 13 08:10:33 2011 +0200
-
-    CHANGES: Windows: perl (build.bat): When installing development files, install the PDB files too.
-
-commit a8d94007e32d03710692c8f1b417d5bdfe3650fa
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Aug 13 08:10:32 2011 +0200
-
-    CHANGES: testing: Fix Perl regression test failures
-    
-    All Perl regression tests pass now on Linux and on Windows (MSVC).
-
-commit b6d0b490181c6df8c11ecf155f1e6eaf11b1ec58
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Aug 13 08:10:33 2011 +0200
-
-    CHANGES: testing: Perl regression tests: Don't fail skipped tests.
-
-commit ca3acf2b07039d96a117f090f7ec76b6e8b541e9
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Aug 13 08:10:32 2011 +0200
-
-    CHANGES: perl: Add SNMP::getenv() and SNMP::setenv().
-
-commit 56759e5ad537f01b4a51e7ff9994ec4b55c32135
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Aug 13 08:14:46 2011 +0200
-
-    CHANGES: snmplib: Add netsnmp_setenv().
-
-commit 9843e5bcf472877e85b031b5e5dafaa9d5fc63c5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Aug 13 08:10:32 2011 +0200
-
-    local/pass_persisttest: document how to use on Windows
-
-commit 6057866b73a022771e90e9967dd25bdc7192fbdc
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Aug 13 08:10:32 2011 +0200
-
-    Set execute flag on local/pass_persisttest such that the instructions in that file work
-
-commit c2daf5940f21a13e8989dd055b17f3181112f856
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Aug 13 08:10:32 2011 +0200
-
-    .gitignore: Fix a suppression pattern
-
-commit 1f0a928a2913cfa7f5ceaaf4696c69fbdc687621
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Fri Aug 12 09:09:11 2011 -0700
-
-    added the missing -e option to the createUser docs
-
-commit 1e1000a8815921b5ec2e7997b53592a544b3dfc2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Aug 11 15:46:32 2011 +0200
-
-    CHANGES: MinGW: Net-SNMP Perl modules build again.
-
-commit 97d6432f95e1cdcf6fd85e7ca1d0c5557eb6d919
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Aug 11 18:16:44 2011 +0200
-
-    CHANGES: Windows: perl: Make sure that the constant SNMP_DEFAULT_RETRIES is recognized.
-    
-    CHANGES: perl: SNMP module: Add constants NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE and NETSNMP_CALLBACK_OP_TIMED_OUT.
-    
-    When the Net-SNMP Perl modules are built on Windows with MSVC or MinGW it
-    is possible that each these are linked with another version of the MSVC
-    runtime library than the Perl interpreter itself. In that case the "errno"
-    variable used inside .xs source files is another variable than the $! variable
-    in .pm files. Or: assignments to "errno" in a .xs file do not modify the "$!"
-    Perl variable This patch avoids using "errno" by modifying the different
-    constant() functions such that these return a two-element array instead of
-    returning a scalar and setting errno.
-
-commit 7690894b7b8464f05c7c902bd7cf751cc269977a
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Aug 10 09:26:37 2011 -0700
-
-    don't assert on a double init; just don't do it twice
-
-commit 47c8ef1b89c6ccb4247d9633477925908c68c1a5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Aug 10 16:44:36 2011 +0200
-
-    SNMP_FREE(): cast argument to (void *) before passing it to netsnmp_free()
-
-commit 0220392d899a9cab701f74af12030bb1d4cc5e2e
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jul 1 13:02:15 2011 +0200
-
-    .gitignore: Ignore *.exe files generated by the Win32 build
-
-commit 0344df92e462f3bec994608c3381fca5348abcdb
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Aug 8 15:12:55 2011 -0700
-
-    fix C++ comments
-
-commit 09a661d5dc60c730fe0384b02ed672830ef74e30
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Aug 8 15:12:55 2011 -0700
-
-    fix C++ comments
-
-commit 69cb42a4ea0583ce6f5ff8f8383516d34bc4c344
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Aug 8 15:12:55 2011 -0700
-
-    fix C++ comments
-
-commit 447ddc66d90dd9e5c3105b268b6a63bfc580b924
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Aug 8 22:03:58 2011 +0100
-
-    Define _BIND_TO_CURRENT_VCLIBS_VERSION token
-    (as per Alex' build instructions)
-
-commit b0a62eb19763ab4f0b776430242a6117ccae5dd3
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Aug 8 21:59:17 2011 +0100
-
-    Define _BIND_TO_CURRENT_VCLIBS_VERSION token
-    (as per Alex' build instructions)
-
-----------------------------------------------------------------------
-
-Changes: V5.7.1 -> V5.7.2.pre1
-
-commit 810185ae0b0cd2ad4d424a1ba775ef5ceaf50f03
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Jun 2 09:24:19 2012 -0700
-
-    make depend for 5.7.2.pre1
-
-commit 6271471e01282f3675724eaf1358ceb0e95ddd4e
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Jun 2 08:32:40 2012 -0700
-
-    Version number update: 5.7.2.pre1
-
-commit fcb782aa8893134c7414a926d9268594f725b915
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Jun 2 08:32:18 2012 -0700
-
-    version update for 5.7.2.pre1
-
-commit e3bcd87c72fcea7706e868b5ace75296093f7497
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 14:09:42 2012 +0100
-
-    Fix dist/release format
-
-commit d813ce2eeefc68229cfcaf20603244cdd6d09d3c
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 14:07:52 2012 +0100
-
-    Fix dist/release format
-
-commit fa7bd581e3783685db39c9b4eaf847be5ac86fd3
-Author: Dave Shield <D.T.Shield at 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 at liverpool.ac.uk>
-Date:   Thu May 31 13:51:45 2012 +0100
-
-    version update for 5.6.2.rc2
-
-commit d9a15445aa74f5316bfc711c1558467872c2958c
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:50:12 2012 +0100
-
-    make depend for 5.6.2.rc2
-
-commit bcabd2c9542dbebd1d319b4494413bdcca06614e
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:38:38 2012 +0100
-
-    Release Candidate for V5-6-patches
-
-commit b473898c0c5ac9eb47c7c05a3f745e4ff2a76aaa
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:38:28 2012 +0100
-
-    Version number update: 5.6.2.rc2
-
-commit 131429e7062fbaa65b82affed1fb92df2c0cc813
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:38:38 2012 +0100
-
-    Release Candidate for V5-6-patches
-
-commit 1c8110b33b8105ca6190945a35fe7ae903252d68
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:21:38 2012 +0100
-
-    Avoid perl versioning problems when setting up the build environment
-
-commit 508ece16e6f6f49562da204792ae0644269994d1
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:20:58 2012 +0100
-
-    Fix handling of dist/release merge
-
-commit 5b8a8547b1a47d2f5b207f48f2496e4241d902c6
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 11:10:48 2012 +0100
-
-    version update for 5.5.2.rc2
-
-commit 6c32914bf28d695df349dca269e488b501700316
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 11:07:22 2012 +0100
-
-    version update for 5.5.2.rc2
-
-commit 9f5a82a5afdbb3daeb2fd437a309f0b8d357cf4b
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 11:05:39 2012 +0100
-
-    make depend for 5.5.2.rc2
-
-commit 39203f29477a3bedf012d41135d8abd6bcad08b1
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 at liverpool.ac.uk>
-Date:   Thu May 31 10:46:11 2012 +0100
-
-    Release Candidate for V5-5-patches
-
-commit ccf8ff2c4db60122d41302e4aeb700e0b868105f
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 at users.sourceforge.net>
-Date:   Sun May 27 13:56:01 2012 +0200
-
-    Fix missing include. Fixes SIGSEGV on FreeBSD9 x64
-
-commit 5805878749c08062debf0a9d798d08fb916caa2d
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun May 27 06:23:19 2012 +0200
-
-    CHANGES: snmpd: Add missing debug tag
-
-commit d1a42bbcc7b14730c9a6d99c4f047097843a549b
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri May 25 09:02:27 2012 +0200
-
-    CHANGES: building: Run libtool --mode=finish on the right directory
-
-commit 1fbf33711a19eac9739ad23f6f6251eacc41f1c4
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue May 22 14:54:45 2012 +0100
-
-    CHANGES: Linux: PATCH: 3525998: Don't use an uninitialised value in error message
-
-commit 32c1686b67dc85c4a189576363065609dfed5e61
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue May 22 14:52:56 2012 +0100
-
-    Attempt to mark release-candidate branches as such.
-    Omit final-release-only steps when preparing preN/rcN releases
-    (Relies on a tweak to the Makerelease perl modules)
-
-commit 4c5633f1603e4bd03ed05c37d782ec8911759c47
-Author: Robert Story <rstory at freesnmp.com>
-Date:   Mon May 14 11:40:06 2012 -0400
-
-    NEWS: snmp: BUG: 3526549: CVE-2012-2141 Array index error leading to crash
-
-commit 65dd83c2255ee58edbf0e25863e55b58a4113679
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 at liverpool.ac.uk>
-Date:   Mon May 7 19:56:33 2012 +0100
-
-    Mark version-specific changes _before_ pushing to central repository
-
-commit 7241accd70b82d0fcd44d5a5238b2ee9445900db
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:53:17 2012 +0100
-
-    version update for 5.5.2.rc1
-
-commit 7c796a15a1d1bb85feea940bd4e3516877920919
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:50:49 2012 +0100
-
-    version update for 5.5.2.rc1
-
-commit 07e268bfb64b0ec645b3f7e87266984f9217cf12
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:44:37 2012 +0100
-
-    make depend for 5.5.2.rc1
-
-commit 16eaaf6c3ba14596ca9efaf4b114f1b709f42b68
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:29:03 2012 +0100
-
-    documentation update for 5.5.2.rc1
-
-commit c729469ef12154930cf9d15967e16186fb445f30
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:27:20 2012 +0100
-
-    Version number update: 5.5.2.rc1
-
-commit 142571d3cea08f0c072d24c1d39a43c7446f8ce7
-Author: Dave Shield <D.T.Shield at 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 eba86b6f7aff261ee0e61334df70de7156e5c3cb
-Author: Dave Shield <D.T.Shield at 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 at users.sourceforge.net>
-Date:   Mon Apr 23 22:25:15 2012 +0200
-
-    Only output cpu warnings once.
-
-commit ee58e4827b9fa16e6635ca003e8a4f11dcb5fb7a
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Apr 23 22:17:42 2012 +0200
-
-    Fix speling in errormessage.
-
-commit 03f485df22f20e149cfae94c57cb82feecb5d74b
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Apr 23 22:12:11 2012 +0200
-
-    Not all Linuxes use rpm (debian/ubuntu comes to mind)
-
-commit 930838224f781696bd35225f22569347416f1b16
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Apr 23 22:10:15 2012 +0200
-
-    Check need for -lm to use round/exp
-
-commit a0609cf1f3a6917d263725732248cd937a45ad94
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Apr 7 08:40:44 2012 +0200
-
-    Remove limitation on configuration line length.
-
-commit 305973338a63ae54c5e02a8626fbe9a8064dcb7e
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Apr 7 00:32:19 2012 +0200
-
-    Reduce variable scopes.
-
-commit ccab4e9d3ed424c39d0dc27be63fa76c7461ea81
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Apr 7 00:15:22 2012 +0200
-
-    Internalize the name and line number of the curret configuration file
-
-commit cf874ad7b9daf4fcc0d46cdd034474b478005341
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Apr 6 21:47:28 2012 +0200
-
-    Replace #if (A) B #else B #endif with B.
-
-commit ef9ea641bc290eec50685b60519b31bee8b14a69
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 9 21:04:06 2012 +0100
-
-    version update for 5.6.2.pre2
-
-commit 35aba1959de119f1fb89203c37109aa6f0e21c57
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 9 21:00:40 2012 +0100
-
-    version update for 5.6.2.pre2
-
-commit e41fbaff18ac9095cf4a739a06ec39a1a6ccfdc1
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 9 20:35:35 2012 +0100
-
-    Version number update: 5.6.2.pre2
-
-commit 137fe582d6cc5611430dab46ef144efd84cfc803
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Apr 6 20:46:56 2012 +0100
-
-    Revert commit 1f4a829b18275e4956ca91e5ec370df015f06133
-    (snmp_store_needed() API is not available in 5.[45].x)
-
-commit 2b7e64288c01a8a062026c521ca31a5e885f30cc
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 2 16:12:12 2012 +0100
-
-    FreeBSD-9: Fix for 'const'ifyed nlist arguments
-    Backport of ed65eca6e7f9cfa7380a78d56c01ed314745b169 from V5-6-patches
-
-commit 7e95d80b698051259645c074a53ffd264a6fa916
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 2 16:06:56 2012 +0100
-
-    FreeBSD-9: Fix for 'const'ifyed nlist arguments
-    Backport of ed65eca6e7f9cfa7380a78d56c01ed314745b169 from V5-6-patches
-
-commit 1a9b7b7c02e2deefe994d595a7cc1dd2ffbeee1d
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 a79141a419953d010a6989e8b88f4df127394d38
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 2 09:19:26 2012 +0100
-
-    Header fiddling for FreeBSD,OpenBSD,Dragonfly
-    Backport of f7b0de1518002c6e8f9b94ef3deb8882e1e9338e from V5-7-patches
-
-commit adf74bf753d3970357afd633803256241d9c7b87
-Author: Dave Shield <D.T.Shield at 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
-
-commit d9555acb9f47c3aa8fde4bc20a44d7ca6181a8a9
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sun Mar 25 18:48:12 2012 +0000
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Avoid dangling pointers (based on patch 3503259)
-
-commit 82a8b47ee96e5d29a2b7ac3ca00722d737d5b479
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Thu Mar 29 22:31:56 2012 +0200
-
-    Running autoheader / autoconf
-
-commit 9ca8d939ab393306a1d0f146c9cb70ea0cb19d49
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Thu Mar 29 22:30:38 2012 +0200
-
-    Running autoheader / autoconf
-
-commit cecd4869deb68f3d4c71e768d5b40dd576446925
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Thu Mar 29 22:29:31 2012 +0200
-
-    Running autoheader / autoconf
-
-commit a1a4513bd3e4e614200f6db5a02f61d6c8eefb32
-Author: Dave Shield <D.T.Shield at 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 at liverpool.ac.uk>
-Date:   Wed Mar 28 09:30:49 2012 +0100
-
-    Doxygen-style documentation fixes (back-port of GIT commit c09903a42e9d97331fd9e48ee831a85afdf9c70a)
-
-commit 1f4a829b18275e4956ca91e5ec370df015f06133
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Mar 27 21:41:24 2012 +0100
-
-    CHANGES: snmpd: PATCHES: 3495697: Store persistent snmpTarget table changes
-
-commit 1f75f377d0db01754c0c161dc44373081beef520
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Mar 27 21:14:06 2012 +0100
-
-    CHANGES: FreeBSD: PATCHES: 3489387: Install FreeBSD 10 header file (plus other missing versions)
-
-commit 3d72c9e78f2ad817c9d1d82977327bbb20d63ab9
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Mar 27 21:06:31 2012 +0100
-
-    CHANGES: snmpd: PATCH: 3487867: Don't skip missing ifXTable entries (ifConnectorPresent FALSE)
-
-commit 12906578ab30cf776d080c0ef3025b30334d7655
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 16:17:45 2012 +0200
-
-    DISMAN-PING-MIB: Fix even more memory leaks
-
-commit ccfd5ca6fe10313d6181d24bbb1797825a97da10
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 15:51:16 2012 +0200
-
-    DISMAN-PING-MIB: Eliminate duplicate code
-
-commit 9fda2668722f08ddbfdd67a2239d8b021db64a83
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 15:48:46 2012 +0200
-
-    DISMAN-PING-MIB: Write a loop as a loop
-
-commit cbc18eb763ba6df69ef70668a54d75bf35e79503
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 15:24:08 2012 +0200
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Fix more memory leaks
-
-commit c7725192478aec018fb4aefa60946e04a406c00c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 13:43:24 2012 +0200
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Avoid reading freed memory when deleting a row from a table
-
-commit a6be739566f310d7441fd7f54989e39446f7a143
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 13:42:28 2012 +0200
-
-    Extend DISMAN-PING-MIB test
-
-commit 8a9b57291453cb8aec28e766c594701ed19c4fc6
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Mar 26 21:03:41 2012 +0200
-
-    Fix for DragonFly 3
-
-commit e5c9a32f79eac2e85527c9cf05087cdae9b35a6c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Mar 26 20:59:53 2012 +0200
-
-    DragonFly needs _KERNEL_STRUCTURES to compile ipv6 code
-
-commit cd43bc09a39bd97ff5e719a2ce232ce424600a65
-Author: David Imhoff <dimhoff at 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 at users.sourceforge.net>
-Date:   Sat Mar 24 15:21:38 2012 +0100
-
-    Fix TCP state values for DragonFly
-
-commit 432fe3ddf54f2c98f936959469cb9b014d599f06
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Sat Mar 24 15:10:52 2012 +0100
-
-    Require perl to do pass_persist test
-
-commit 37d2770cf50c98023eeba90e25d372bff7316ada
-Author: Niels Baggesen <nba at user.sourceforge.net>
-Date:   Sat Mar 24 15:06:40 2012 +0100
-
-    Fix TCP state values for DragonFly
-
-commit 86a948d8691e881d55591dcabddc2739ce72b30e
-Author: Niels Baggesen <nba at nba-linux.sb.statsbiblioteket.dk>
-Date:   Sat Mar 24 15:01:37 2012 +0100
-
-    Properly find pass helpers for testing.
-
-commit fe26a3c4f29f046bf65ed52e9d94054b675fbc4b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Mar 22 09:04:42 2012 +0100
-
-    DISMAN-PING-MIB: Limit source code lines to 80 columns
-
-commit 745bafcdcc9c8e84616d4e274db2a384bf234da2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Mar 22 08:55:05 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Make ping implementation independent of ntpd clock jumps
-
-commit da6925e6763cadbe02f4a8bbfe68a362e535ad5e
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 10:38:36 2012 +0100
-
-    CHANGES: testing: Add testing/fulltests/default/T154dismanpingmib_simple
-
-commit fa606dd7ca6aff9308d4e8b01bbcde148f441271
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 16:49:21 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Make pinging local interface addresses work
-
-commit 617a83ba799575c84c66f6b1c480ef633161a64c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 16:28:46 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Fix a socket leak triggered by pinging a remote host
-
-commit 625f55c272ec6281e38d8e30eb53fd51516b00ae
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Mar 22 09:54:55 2012 +0100
-
-    DISMAN-PING-MIB: Convert a dynamically allocated variable into a stack variable
-
-commit b48f19ad4b4aa68c3e16e2a72df37b9c0cd36c4a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 16:24:07 2012 +0100
-
-    DISMAN-PING-MIB: Add more debugging statements
-
-commit d74cb3966175892562f5e3a9b1683acba2c22e07
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 11:45:18 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Fix several memory leaks
-
-commit 0b1a77674678cc9a15be3e7700d3cef650ed02c7
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 12:00:30 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Do not send the contents of the stack over the network
-
-commit 139023cd3ab51631cc10e2866d71abcf99ae4c1b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Mar 21 08:56:07 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Don't call exit() upon memory allocation failure
-
-commit 169b6aaa7b61827cc1ad0b3aeeae3a7229dd25d8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Mar 21 08:53:26 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Fix IPv6 socket leak in error paths
-
-commit a0be32ad053a71fa96134d55e542bb07d4f0297d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 11:43:46 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Avoid that host name resolution failure causes a crash
-
-commit bf9bff64556787d766ee2ef2d578afb920719f3a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Mar 21 08:51:55 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Convert printf() statements into snmp_log() and DEBUGMSG()-statements.
-
-commit 5d74c01245523a9d8db1eda27d1efae2ebc104fb
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:40:02 2012 +0100
-
-    New MIB: VRRPV3-MIB
-
-commit 5b38f062b99b6ef36708e2c7de4965a3192612e9
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:34:48 2012 +0100
-
-    For safety, sizeof the right variable in memcpy
-
-commit e5f82782da05efa7c0e6dc2bf5a41ee11868f469
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:33:21 2012 +0100
-
-    Fix for hrSWRun data for FreeBSD
-
-commit 8327565e823270d10a4504568edbe5b5ae323a55
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:31:54 2012 +0100
-
-    Clean up variables for OpenBSD/NetBSD
-
-commit 170f6f027bf4f9174b7073530da4d07f400bba58
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:28:58 2012 +0100
-
-    Move declarations in front of statements
-
-commit dbb4573b69fae85cdc931b2892b5ce4e5b16b321
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:23:36 2012 +0100
-
-    Require kernel_netbsd for NetBSD6
-
-commit f11681f15aad7d9a52fa29812ecbb507f1b7fe24
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Wed Mar 21 12:36:38 2012 +0000
-
-    Check for old tarballs (and unpacked distributions) before starting.
-    These can confuse steps such as "make dependcheck", that do a 'find'
-    on the current tree, and would descend into such unpacked source trees.
-
-commit 470dcd4b6c3ff11ff0a3532a7340a56cffd69098
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Wed Mar 21 12:32:13 2012 +0000
-
-    Don't run "make docs; make mancp" if there's no Makefile present
-
-commit c9ac420343e16df2b7065f5bf2790df44e247fba
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Mar 20 10:26:10 2012 +0000
-
-    Allow distribution as part of normal Net-SNMP packages.
-
-commit 5999f60c57723f23f3c254af57fdb10af301a8eb
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Mar 18 19:03:08 2012 +0100
-
-    Regenerate
-
-commit 275d204036a607e3df50e8447d4bc755e9db02fd
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Aug 28 21:29:03 2011 +0200
-
-    CHANGES: building: Make it possible to use --disable-applications/--disable-agent together with --enable-minimalist
-
-commit bdccc875710295aacf50f71eb1c1d2ee97f336fe
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Mar 16 20:10:58 2012 +0100
-
-    Do not declare the local variables for opaque_special_types unless that option is set.
-
-commit b80a67da052adca1b5a644db83a782e15c2237c3
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Mar 16 19:50:03 2012 +0100
-
-    Check that the data exist before trying to read it
-
-commit efae86bba5962491d42b77b935191a3eb25dd939
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Wed Mar 14 01:05:33 2012 +0100
-
-    Partially revert "Merge remote branch 'origin/V5-7-patches' into V5-7-patches"
-    
-    Commit d35a1860217e723e4f866dd98ef6621665934c4a accidentally reverted
-    
-    4a2e5bcd56cd2afb36eb15d754e2fee888dd50c0 (hrh_storage is a proper replacement for hr_storage)
-    0dd1e54557d1ba498b55d017b0a93e8ccf9bd522 (CHANGES: snmpd: UDP-MIB: Report the proper address in udpLocalAddress)
-    5116d48378ecf03e722f3010ad47bf22a3fbcb8c (Reduce scope of prefix_val such that the compiler doesn't warn about an unsed variable)
-    10f566f4d4cbb3e205023c23669289e4bfd089cb (perl/SNMP/SNMP.xs: Fix a compiler warning)
-    
-    and part of
-    
-    6e74d64f85a59d50e461db4c34ac76f9de468bfb (Avoid using grep options -q and -w because grep in Solaris)
-    
-    This reverts those reverts.
-
-commit aaedd59cc2da701527dc2d261d4e9f85f16e7504
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Mar 11 20:57:38 2012 +0100
-
-    Allow make test where the source path contains the string Net-SNMP to succeed.
-
-commit 4b94d796918a4eeae68ab21aa53d444a8b5c2921
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Mar 9 08:04:59 2012 +0100
-
-    Unbreak compilation on FreeBSD 4
-
-commit 10fe6b83324ad37d18b937cc8c6de94de534d035
-Author: Dave Shield <D.T.Shield at 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 at 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 at liverpool.ac.uk>
-Date:   Thu Mar 8 12:33:03 2012 +0000
-
-    make depend for 5.6.2.pre1
-
-commit 0ef34e6519dfcb82c97df8427547c08dcf81e69a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Mar 8 10:11:30 2012 +0100
-
-    CHANGES: snmpd: Fixed snmpd '-d' option.
-    
-    Now it dumps packets again.
-
-commit 8e69742f143e4fc11196e5b2ed66c8f7f53fd02f
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 at 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 at users.sourceforge.net>
-Date:   Mon Mar 5 20:56:40 2012 +0100
-
-    More fixes for Solaris sh
-
-commit 0dd1e54557d1ba498b55d017b0a93e8ccf9bd522
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 15:08:26 2012 +0100
-
-    CHANGES: snmpd: UDP-MIB: Report the proper address in udpLocalAddress instead of 0.0.0.0. Makes test T160snmpnetstat pass again. Fixes a bug introduced in commit c76fb96f65e33ba2fd212a921e8c386155ee5c7a.
-
-commit 518917e9f39f7a9d3c3bf3a865e8ac0e3026d600
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 14:04:54 2012 +0100
-
-    snmplib/snmpUDPDomain.c: Fix source code indentation
-
-commit 2651909ccceabfcfadaf942c02450e28fe837dc9
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Tue Nov 9 12:04:04 2010 +0000
-
-    Passes now on MinGW too.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19653 06827809-a52a-0410-b366-d66718629ded
-
-commit e41f115e40304c941ba17d67e24710722d90741b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 13:39:17 2012 +0100
-
-    testing/fulltests/support/simple_eval_tools.sh: Avoid using grep options -w and -q because grep in Solaris' default path doesn't understand these.
-
-commit 5116d48378ecf03e722f3010ad47bf22a3fbcb8c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 10:47:20 2012 +0100
-
-    agent/mibgroup/ip-mib/data_access/ipaddress_linux.c: Reduce scope of prefix_val such that the compiler doesn't warn about an unsed variable if it isn't needed.
-
-commit 6e74d64f85a59d50e461db4c34ac76f9de468bfb
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 09:22:31 2012 +0100
-
-    testing/eval_tools.sh: Avoid using grep options -q and -w because grep in Solaris' default path doesn't understand these options.
-
-commit 10f566f4d4cbb3e205023c23669289e4bfd089cb
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 10:47:39 2012 +0100
-
-    perl/SNMP/SNMP.xs: Fix a compiler warning
-
-commit 44aa265891cd563f7f4114ef25dcf7aaf3b14e9a
-Author: Dave Shield <D.T.Shield at 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 dae4e16be86117861f63d1a2f981ad361418f5c6
-Author: Dave Shield <D.T.Shield at 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 28f6226f2e228b8ca248489735f86502b2cce0a1
-Author: Dave Shield <D.T.Shield at 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 40022a697958259ccfbb3fed44eb3c472f5e837e
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Sun Mar 4 10:37:41 2012 +0100
-
-    Solaris sh does not understand "test -e"
-
-commit 773af0c42e077bebdaecf1c0caf393285a7688f1
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Sat Mar 3 17:19:30 2012 +0100
-
-    Clean up nsrollup complications
-
-commit ee71049c3e21c1d0e3424297136652bbe0e39d85
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Sat Mar 3 16:49:41 2012 +0100
-
-    mibgroup/icmp.c: adjust ifdefs to make it compile on BSD's
-
-commit ce9600361e665dde17af9d8ab16d7ce85dc05643
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:39:55 2012 +0100
-
-    dot3StatsTable has bugs :-(
-
-commit dffacf6fa0755e1700cbac25b844185abd807a0a
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:38:10 2012 +0100
-
-    passpersist test needs /usr/bin/perl
-
-commit 8726995c7a8aef674c4f164b1871c37bbdcdad50
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:36:58 2012 +0100
-
-    grep -w fails with OpenBSD and Solaris 10-64
-
-commit 1eb4745b23cc3a839864e7f6ea28355b0566eb67
-Author: Niels Baggesen <nba at 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 at 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 78369002be2711f0aa876b64a4e10b090cc241cd
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:33:31 2012 +0100
-
-    Not all make versions define $(RM)
-
-commit 94245b29a3cda89475c6eab5d9493c6657ff38e3
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:24:24 2012 +0100
-
-    Make autoconf 2.68 happy
-
-commit 44acd6c285fb5614b4c9611b1abdeca9dd28e4bb
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:12:47 2012 +0100
-
-    Fix spelling of mib module fsys_getfsstats
-
-commit 1fa1fee3693f67b820223806b3d73afd4c50ec18
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Mar 2 01:37:20 2012 +0100
-
-    Silence a clang warning.
-
-commit 93263b98a5db344cf2c4d489c43971e7b29cdb03
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 13:37:20 2012 +0000
-
-    version update for 5.5.2.pre1
-
-commit 5a175428b973d2ea8553e29fecf94cf1566aa858
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 11:48:18 2012 +0000
-
-    version update for 5.5.2.pre1
-
-commit 364276a1c5aa66caa23eb5b7f111fdeb5af71fa7
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 11:45:10 2012 +0000
-
-    make depend for 5.5.2.pre1
-
-commit 73598340172eff75729a6d57192b8171d5bbf00e
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 10:42:56 2012 +0000
-
-    Version number update: 5.5.2.pre1
-
-commit f3214402672ca199fd531e66122bf96c4d9a4eb7
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 10:42:39 2012 +0000
-
-    version update for 5.5.2.pre1
-
-commit 2e74acb6f19e4729cede0ab43e931961cb23aaea
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Mar 1 09:18:39 2012 +0100
-
-    CHANGES: Bug 3152841: Do not install the util_funcs subheaders that were removed in 5.7
-
-commit b7109646b95a70713d1ad991d41bccd57c0bb3eb
-Author: Magnus Fromreide <magfr at 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 at lysator.liu.se>
-Date:   Sat Feb 25 10:13:15 2012 +0100
-
-    Correct typos
-
-commit 6a6c9bbc7584f196a1185cc1935204f1206811ed
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Wed Feb 29 08:55:35 2012 +0100
-
-    CHANGES: Bug 3152841: Install util_funcs subheaders
-
-commit d515e2a6e4c2a1c4d84734cc7b2d0b2fc5a894ad
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 15:56:21 2012 +0000
-
-    CHANGES: snmpd: PATCHES: 3487919: Fix compilation when caching is disabled
-
-commit af8368ed8898a78d0868b47af46bc9db07d1c764
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 15:50:56 2012 +0000
-
-    CHANGES: snmplib: PATCHES: 3414773: Encode integer value using ASN_INTEGER
-
-commit 19e2715807fe06fd0baedf88165011aee933e755
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 14:05:34 2012 +0000
-
-    CHANGES: man: BUGS: 3490708: Clarify use of common command-line options
-
-commit 65f7962f932c9b75c5bbbb047d1e26ae60978e53
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 034f1c572f683ea428583074471e5d5d13b51837
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 10:22:20 2012 +0000
-
-    Skip SET-based tests when configured using --enable-read-only
-
-commit 36423e210bfb65ef121c6a66aec438c7c237d3df
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 10:03:25 2012 +0000
-
-    CHANGES: BUG: 3454168: configure: Fix building with --enable-read-only
-
-commit eed0bcbc43fea18259f0f63b2081b6d10535a052
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 09:27:11 2012 +0000
-
-    Skip SET-based baby-steps when compiled with --disable-set-support.
-    Inspired by bug #3454168
-
-commit ec6a23030e5a2072c19c18c1d9c124387da56b7b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 27 18:42:58 2012 +0000
-
-    Add -lrt to NETSNMPLIBS such that clock_gettime() can be found
-
-commit f13320500294bb240f63c6dd7d2e9a2208eb740d
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Feb 27 16:52:51 2012 +0000
-
-    Skip SET-based tests when compiled using --disable-set-support
-
-commit c4276b6232c29145c039884e6b5a6b6da4b93837
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Feb 27 15:54:45 2012 +0000
-
-    Omit SET-related code when compiling with --disable-set-support (inspired by patch #3424930)
-
-commit 01c930edcc25700d6b5fb0376f55a26425e13fb0
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Feb 27 15:17:22 2012 +0000
-
-    Omit SET-related code when compiling with --disable-set-support
-    (inspired by patch #3424930)
-
-commit 9484d83203c4e2d820416be665fa833aa70444d2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Feb 24 14:00:32 2012 +0100
-
-    Rework commit b4a19505a05816e94e01de97bf99ac37fcdc6d23.
-
-commit 2b7f13495228635d816e58b2174dc124dd0cf39f
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Fri Feb 24 07:43:22 2012 -0800
-
-    set MERGE_AUTOEDIT before merging to avoid the future git 1.7.10 forced msg
-
-commit e1b910b0be9343586ae9edba6f46040af315fcdd
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 23 10:27:54 2012 +0100
-
-    CHANGES: snmpd: init_agent() + init_kmem(): Return an error value instead of invoking exit() if access to kernel virtual memory is denied
-
-commit 463eed2120f9d191bc22673496a49e8174664e4b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 23 10:03:31 2012 +0100
-
-    Remove obsolete symbol NETSNMP_EXIT_ON_BAD_KLREAD
-
-commit c36ab71a4e096f16cc5a55533f080c9a94009914
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 23 08:53:56 2012 +0100
-
-    CHANGES: FreeBSD: snmpd + apps: Sending UDP packets works again for non-root users
-
-commit edebddba930f8b1472fa0bd20fc413ef8cf464a2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Feb 21 11:31:46 2012 +0100
-
-    testing/RUNTESTS: Fix a bashism
-
-commit b4a19505a05816e94e01de97bf99ac37fcdc6d23
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 20 16:58:47 2012 +0100
-
-    Fix compiler warnings about %ld versus time_t on systems where time_t is a synonym for long long instead of long.
-
-commit d8978ecc8211be7c1e7905f1e215bb06ded266b6
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Mon Feb 20 17:07:13 2012 +0100
-
-    IF-MIB: do not trigger undefined behavior (>> 32 of a 32-bit variable) when updating a counter and ifi_ipackets is a 32-bit variable
-
-commit c3fb6dd9e6b99e9542493188987871fc5017cb3c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 23 09:45:45 2012 +0100
-
-    Fix a compiler warning on systems where mode_t is unsigned
-
-commit f8a3ef0d3d4e530279900101049b8de98a44a6fb
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 14:48:52 2012 +0100
-
-    CHANGES: snmplib + snmpd + snmpwalk: Avoid that system clock changes (e.g. by ntpd) affect code that needs relative time
-    CHANGES: snmpd: Make sure that the range of the SNMPv3 variable snmpEngineTime is 0..2147483647 on all supported systems instead of 0..42949672 on some systems (i.e. wraparound after 497 days)
-    CHANGES: snmplib: Add netsnmp_get_monotonic_clock(), netsnmp_set_monotonic_marker(), netsnmp_ready_monotonic(), netsnmp_get_agent_runtime()
-    CHANGES: snmplib: Deprecate atime_diff(), atime_newMarker(), atime_ready(), atime_setMarker(), marker_tticks(), netsnmp_marker_uptime(), netsnmp_timeval_uptime(), timeval_tticks(), uatime_diff(), uatime_hdiff() and uatime_ready().
-    CHANGES: snmplib: Change the names of the struct timeval members of data structures that were used to store a wall clock time but that do now contain a monotonic clock value
-
-commit c19760f3333c92fac5d50e9768cdf939218bc487
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Feb 15 09:45:03 2012 +0100
-
-    snmplib/snmpv3.c: Fix source code indentation
-
-commit a6db239945e195de5a90fa183700b27a6ecb28d3
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Tue Feb 7 00:11:14 2012 +0100
-
-    Fix possible memory leak from recent declarations patch
-
-commit 0fbbb9a9e2906a7af956957061d485874462aea9
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Feb 6 20:43:04 2012 +0100
-
-    Do not mix declarations and statements
-
-commit f308d5bafb05d78ed4030c4ecff324b6cbda680f
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 15:25:30 2012 +0100
-
-    Fix two compiler warnings in agent/mibgroup/disman/ping/pingCtlTable.c
-
-commit 46f0fc1b7fc26a225763bc65cca520a1c59f0251
-Author: Niels Baggesen <nba at 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 at users.sourceforge.net>
-Date:   Mon Feb 6 16:48:09 2012 +0100
-
-    CHANGES: added OCFS2 (Oracle Cluster FS) to hrStorageTable and hrFSTable
-
-commit fafc99cd89e73ec7e00bf7360d0b4fa61944a4f4
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 11:18:34 2012 +0100
-
-    Simplify calculate_time_diff() and calculate_sectime_diff()
-
-commit 7af2013de8bf1b379c076db4e104508e17874d3e
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 14:55:58 2012 +0100
-
-    Fix order of feature #ifndef and Doxygen comment block
-
-commit bbd67f63530f5ef0bfc948fc58dfe6a93f8f8679
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Mon Feb 6 14:47:54 2012 +0100
-
-    Rename two function arguments
-
-commit 3fe72b3b99b7e4b2b982363dfc4f2d8d13f40592
-Author: Bart Van Assche <bvanassche at 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 at 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 at 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 at acm.org>
-Date:   Mon Feb 6 14:51:33 2012 +0100
-
-    Fix spelling in a source code comment
-
-commit 910d7b0d99183609b9529b04c3f29330eb661021
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 14:38:12 2012 +0100
-
-    Replace netsnmp_timeval_uptime() by netsnmp_get_agent_uptime()
-
-commit 43a83f6c6a96cc2316b70eecacf127eb6913c7a7
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 11:19:15 2012 +0100
-
-    Use the assignment operator instead of memcpy() for copying struct timeval
-
-commit 2fe579efb1cb3a74f82803ca323928f6b8e4b5c0
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Feb 3 14:04:02 2012 +0100
-
-    Make agent/mibgroup/mibII/icmp.c build again on non-Linux systems.
-    
-    See also commit 345a1e4254812cb9edc1d274491b76681a9dba1e.
-
-commit 881de6ab7355277a5c116a008fbe513293b05039
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Feb 3 10:08:21 2012 +0100
-
-    Fix compiler warnings triggered by the Rmon MIB implementation
-
-commit 4629933c0d3b3f9f4ba583534f79a37fb9633817
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 20:05:31 2012 +0000
-
-    More compiler warning fixes
-
-commit e9b5a3dee6f9afab8b90a29392040632b075ad7a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 16:56:55 2012 +0100
-
-    Use SNMP_MIN() instead of min()
-
-commit ae452c77b411139d6b5800ffcf88d48e9b4792a8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 15:23:38 2012 +0100
-
-    Restore commit dbb8795a7df595f0603f2ec61704799f4c482667.
-
-commit c7d11fa00f9995ddb9fe3d4994a3e9790da2e189
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 15:18:40 2012 +0100
-
-    Restore commit dbb8795a7df595f0603f2ec61704799f4c482667 partially.
-
-commit 00fd62720ec454f5a690de4feba08223cfb2c3f8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 14:48:44 2012 +0100
-
-    CHANGES: snmptrapd: Avoid crash during shutdown due to invoking perl_destruct(NULL)
-
-commit d9e229d81abeaf191ef2ccb077842885c230d622
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 14:47:41 2012 +0100
-
-    Remove a superfluous declaration
-
-commit 1e2e2af6cae830f381e87a244d029eb86bf3fcce
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 13:20:37 2012 +0100
-
-    perl/SNMP/examples/pingmib.pl: Add error checking
-
-commit 241a141e31f1684fc6cf70cc4a00cce636fd3526
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 11:28:37 2012 +0100
-
-    Make configure-time EVP_MD_CTX_create() detection work on the 5.4 branch.
-    
-    See also commit 46eac02e9a27bf4f3068e795cab891f05a848870.
-
-commit 6d9d14feaaa2d0fec68b4d158944d32cb04ff1bc
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 11:12:00 2012 +0100
-
-    Revert the changes that break the build on the 5.4 branch from commit dbb8795a7df595f0603f2ec61704799f4c482667.
-
-commit 8abe49e30c97c8983e83b45a35c716fe91f66bea
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Feb 1 11:56:58 2012 +0100
-
-    Fix several compiler warnings in the DISMAN MIB implementations.
-
-commit f9fb0a533375e14dc370025a0b2fbc761bf27be6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 09:56:02 2012 +0100
-
-    Revert "HOST-RESOURCES_MIB: fix a compiler warning" because it's wrong.
-    
-    This reverts commit aa6b79bc124a7b7a885d7e5035ab06aa3ecef613.
-
-commit ca4a4fe25efd2714f8f1961b97856616563f42c9
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 10:21:49 2012 +0100
-
-    .gitignore: Add python/build
-
-commit 13ada56558b44e28d1355c0dce1d921f3746d548
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Fri Jan 20 14:13:18 2012 +0100
-
-    Revert "Fix format specifiers to avoid warnings" - there is no NETSNMP_PRIo in V5-4 or V5-5 branches
-    
-    This reverts commit 390c0114c8ec0bdb27b08b6f74e3f6ef3a62981b.
-
-commit 2fb99be9aa86a6ca349b86d4ef8bc726ed9f2a82
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 14:58:35 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit e5c35589e0bf416bfd036bd468f42aaeab25e788
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 14:55:56 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 345a1e4254812cb9edc1d274491b76681a9dba1e
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 14:51:26 2012 +0100
-
-    Fixed error handling in init_icmp().
-
-commit c303549a59fa8c2f20a9d8bf1e985fbc8abde6a8
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:46:29 2012 +0100
-
-    Reworked _register_extend() error handling.
-
-commit 9c20e27a7026fc030da3b328b9a2e1b4f36670cd
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:21:28 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 22fd0bfc2df0e1f6020dc3c50a753ddf28a4599c
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:20:22 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 5d61e57baf580c78252c0abb0098c07bb05af17c
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:17:05 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 3c3eeae80d796f27597c901e7ff2046c769ef4b8
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:08:09 2012 +0100
-
-    Mark rowreq_ctx as freed so next iteration allocates new one instead of reusing the freed one.
-
-commit af9abd53c2337c90a691a7b044ff3f97c1003161
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:05:10 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit cf9465f54181e62e21a9b10219131107a3d2ebf6
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:04:06 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 7871f2b09b8b52f34a9e57784266459053165bcb
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:02:50 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 7a37f33d310c9598607bc323d9bdbf91aaf72c95
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:00:51 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 3e45f7026249e45350edaac85337423aa0e95d8b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 14:13:18 2012 +0100
-
-    Revert "Fix format specifiers to avoid warnings" - there is no NETSNMP_PRIo in V5-4 or V5-5 branches
-    
-    This reverts commit 390c0114c8ec0bdb27b08b6f74e3f6ef3a62981b.
-
-commit 61936762e641c18db75aa5125a33e776c677adc5
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 11:13:39 2012 +0100
-
-    Fixed freeing reginfo twice on error in a template and all its instances.
-
-commit 496437430415fbafeb1ccd4774f1ca00d627ea1f
-Author: Bart Van Assche <bvanassche at 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 at 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 at acm.org>
-Date:   Fri Jan 20 09:20:42 2012 +0100
-
-    Use snmpTargetParamTable_dispose() to free a struct targetParamTable_struct.
-    
-    Fixes a bug introduced in commit dbf26a05a04ef24c47346e5adda48e338498e71f.
-
-commit aa6b79bc124a7b7a885d7e5035ab06aa3ecef613
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 20 09:20:31 2012 +0100
-
-    HOST-RESOURCES_MIB: fix a compiler warning
-
-commit 3a76b43e11fffada632fccb848ab500e876ad48b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 18 16:21:05 2012 +0100
-
-    CHANGES: python: Avoid that an SNMP set with UseEnums enabled causes a segmentation fault
-
-commit 84dec9fa92b0aa2d58eb7020330f4f98e5154321
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 18 14:38:21 2012 +0100
-
-    python/netsnmp/client_intf.c: Fix most compiler warnings
-
-commit 38cf218c3f1a727786e227a5d3fb186fd0f1a15f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 14:50:13 2012 +0100
-
-    Fix a typo
-
-commit 454122244122bfdb6f67cab31256d7b46372e9e1
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 14:30:18 2012 +0100
-
-    Free tmStateRef on errors.
-
-commit 0119022daa59c73bfec0da2386d0628f14e6dab7
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Thu Jan 19 13:48:26 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 63dc846a7949ce697b3e28c543dc1105e63a2250
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:08:28 2012 +0100
-
-    Free certificate fingerprint.
-
-commit ce1f284a63eb81644b3e32606cbe39b67e1dff2a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 14:37:09 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 7e21413ca6f2efd7a3afb62c62b644881b8bd1e7
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:46:30 2012 +0100
-
-    Properly allocate and free engineID.
-
-commit 34c962882607c3638a2fa25a2ac531492d71c787
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:37:25 2012 +0100
-
-    Free locally allocated tmStateRef.
-
-commit f57ae531dc5658abcd65b1627615525238d16d2d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:20:24 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 536bc57556c3141561ea4a194810b16290a691ee
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:15:47 2012 +0100
-
-    Added check if the function actually does something.
-
-commit a0777d307dbcaf219ee0184a0fbab9d4e5d6aa0b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:01:45 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 8b97a71c8e7959428eb4d4e8d90e9096d43ff09f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 12:57:26 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 2c1507c22030549ae660c0e211fbdc5c75ec5c57
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 12:53:47 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 65f2b7bcd4fe03906aa1a115ab60a89b8ae933d5
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 12:51:36 2012 +0100
-
-    Close open files on error.
-
-commit 0e52e4f66d44766bea37473556c78e5219b95461
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:45:33 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit dbf26a05a04ef24c47346e5adda48e338498e71f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:42:17 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 748da84b1fd654e338bc701e8f9e5da229187f1c
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:32:04 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit eb217146fd54036ea4202bfef78bbf774d7e382d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:23:10 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 9ba38eec66138ec1f613ea8d04e158130c7121bc
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:18:55 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit d9d938d3018c27f53277bc5e59578500490c1d09
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:16:38 2012 +0100
-
-    Close open file on error.
-
-commit d5e817d5bd518d9ac6a0d60e0e141dd64f27ad19
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:14:12 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 2ae68f059df9d74b074d12f59c1847466ed576cd
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:03:17 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit a00f3d461121b545aed72ac12b2438791dcfc4ba
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 14:58:39 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 59884bb4d35ad13747ffa6723436dca587a9ab77
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 17:09:12 2012 +0100
-
-    In above code, olength is checked, so let's check it also here.
-
-commit ba5d5292b04393b0c7d7d7ed961241929418c6e4
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 17:05:14 2012 +0100
-
-    Fixed dereferencing NULL.
-
-commit da2d6a7028a13b9edf3a5c84314d0f1feef76714
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:44:56 2012 +0100
-
-    Prevent dereferencing NULL.
-
-commit f88054a9b69b6de274f7a14a59b47323e5e4e4c6
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:37:35 2012 +0100
-
-    Don't dereference context if it's NULL.
-
-commit 7c4d459e8f1f652cc2098c3d4c81de90a84ed710
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:30:09 2012 +0100
-
-    Don't deference NULL.
-
-commit fc19b7f33b587927d2a01e72d23d21b9b1696ab3
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:25:26 2012 +0100
-
-    Don't close NULL file.
-
-commit 5e95ca6790076b788072a801ee7c82969d995bcb
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:17:09 2012 +0100
-
-    Prevent dereferencing NULL when a transport does not have f_fmtaddr.
-
-commit eed6f5f9b9ae54d2ceab67ad85adde1f6a8a21d5
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:13:13 2012 +0100
-
-    Prevent dereferencing NULL.
-
-commit 41cde68b5fa4b38d81450cf91e082cdfa825e7cf
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:10:10 2012 +0100
-
-    Check if a registration was really found.
-
-commit 5b72a40853876a186efcc0090a4e32c235b9c05f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:03:58 2012 +0100
-
-    Don't dereference NULL when difflen is SMUX_MAX_PRIORITY (which is highly unlikely, but...)
-
-commit fa6a912e41c5d0fd2a636894e86b6426c07375ab
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 15:37:44 2012 +0100
-
-    Check for missing value in setEvent.
-
-commit 410b71da425389fecc25d14f49f23753581576ad
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 15:28:41 2012 +0100
-
-    Dereference ereg only if it is not NULL.
-
-commit 185272d1a0b913774186f1b9135aeaf637ebed52
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 15:17:21 2012 +0100
-
-    As per above code, template_v2pdu can be NULL, so check it before dereferencing.
-
-commit 48e5ead3fd2c2b385df6972c67526ff6bdc30768
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 14:42:22 2012 +0100
-
-    Updated last fix to new error reporting style.
-
-commit f33d33615d6d85d0073726473c4146cbcdf11ced
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 14:30:07 2012 +0100
-
-    Fixed sigsegv when empty config line is parsed.
-
-commit b5df1eeb47ed3559b6f4d9ecccdb242126e6c992
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 14:11:58 2012 +0100
-
-    Fixed (highly theoretical) sigsegv when sp->securityEngineID is NULL.
-
-commit 6feed629a71899c113096959d8549dc1201e8f9a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 13:43:37 2012 +0100
-
-    Added NULL and len check just in case someone provides value = NULL and nozero len (-> NULL is then dereferenced).
-
-commit 355c5ab264af2a6020a1d8a923f80f11b942295e
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 13:36:41 2012 +0100
-
-    Extend the NULL check, i.e. return if there is nothing to remove.
-
-commit ddd7948acad938cd42974505ddca4f0372116709
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jan 16 11:11:29 2012 -0800
-
-    update sparta's copyright
-
-commit 41256086a7a5041453419cfd6e562c7b55c56b0a
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jan 16 10:32:04 2012 -0800
-
-    pulled full copy of extractnews from master
-
-commit 625a70dbdfd9902da79efa293fe6d2ac8ccf2b2e
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jan 16 10:24:19 2012 -0800
-
-    update to change to the newer log generating/parsing
-
-commit 62e32b13089b29edcf276f615da67e4508fe7bb5
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jan 16 09:29:42 2012 -0800
-
-    conflicting merge from master for extractnews
-
-commit 70084da61d2bcbd2cf1ed81bdc3bf6794c2affb6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 13 11:49:16 2012 +0100
-
-    CHANGES: snmpd: DISMAN-SCHEDULER-MIB: Handle 32-character schedContextName values correctly.
-    
-    See also commit b3c4982542e0ab151fb3884754cdfbcb472da52d.
-
-commit 04bf3e288158ee880edf237e4007fee37d2044dd
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Thu Jan 12 15:13:21 2012 +0100
-
-    Fixed a typo.
-
-commit a27aa19df283156c032c81eaee5e115859d38c17
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 15:11:32 2012 +0100
-
-    Don't replace 'rc' variable, it's value is needed outside the loop.
-
-commit 985dff2b0876d9483c414fccea3ef6bc63e14561
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 15:01:32 2012 +0100
-
-    Removed duplicate code.
-
-commit 2fd7818318e7a5dfe98f52ccf750c2a63e825ded
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 15:00:22 2012 +0100
-
-    Removed duplicate code.
-
-commit 15f21130ba33dc9afd164e52dfd74c9cec0e9232
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 14:58:14 2012 +0100
-
-    Removed duplicate code.
-
-commit 2a8a8f2ab7cd75826c5d41ec3cfd5ce3e9634cf3
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Thu Jan 12 14:25:06 2012 +0100
-
-    Fixed a typo.
-
-commit ebd92e19b10c0a38e17cde407864b45c26e17327
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 14:07:43 2012 +0100
-
-    Removed unnecessary if (value) check - value is checked few lines before.
-
-commit c5cacf5caf979d018ea6cae1c03b8fdf0b118dfd
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Thu Jan 12 13:43:19 2012 +0100
-
-    Prevent memory leak when malloc fails.
-
-commit 17053e34cfe9a8ab395fb50f5c3f1dafc7247aeb
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 13:32:57 2012 +0100
-
-    Fixed double fclose().
-    Linux man page for fclose(3) says: In either case any further access (including another call to fclose()) to the stream results in undefined behavior.
-
-commit a6641edb9cb74fc2236b42ce5554fc3329956552
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 15:22:34 2012 +0100
-
-    MinGW: Skip test T065 if not started from inside an MSYS shell
-
-commit a883ef1982f301b1485d227301674927330f5b67
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 11 15:14:53 2012 +0100
-
-    Moved debug oputput before return.
-
-commit 45751967287d97640efdcdf8e77e8d490939d8eb
-Author: Bart Van Assche <bvanassche at 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 at 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 at 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 at users.sourceforge.net>
-Date:   Mon Oct 18 06:25:56 2010 +0000
-
-    Win32: builds again without warnings with MSVC 6.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19489 06827809-a52a-0410-b366-d66718629ded
-
-commit f3a7d1b09609dad649f58bbdb5b7e10d39b398c1
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Sun Oct 17 11:04:06 2010 +0000
-
-    Follow-up for r19476: fixed a typo.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19478 06827809-a52a-0410-b366-d66718629ded
-
-commit 2de73bd365a381b9c353ca5230769eefb1ac71ed
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 11:42:42 2012 +0100
-
-    local/passtest: Remove an incorrect PATH= statement
-
-commit 699513f1238e0adce1f1cec98e0d147293fc5047
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Sun Oct 17 09:25:51 2010 +0000
-
-    NETSNMP_REMOVE_CONST()-related cleanup.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19476 06827809-a52a-0410-b366-d66718629ded
-
-commit 6358dee72fb347e2600a0a7bd21f23270d3a00f6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 10:58:15 2012 +0100
-
-    agent/mibgroup/ucd-snmp/versioninfo.c: Add a comment
-
-commit 5396bfe032c8cbc73c8ff5d4b085ebada9f59846
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 10:30:16 2012 +0100
-
-    Replace strncpy()/strncat() by strlcpy()/strlcat()
-
-commit feb3af28dcae22015ae865a2e5dd8c416e9991d8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 10:02:08 2012 +0100
-
-    Replace strncpy()/strncat() by strlcpy()/strlcat()
-
-commit b7e1aa255bae4a3453f9eca644a876634351f11d
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Sat Mar 20 19:36:28 2010 +0000
-
-    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.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@18345 06827809-a52a-0410-b366-d66718629ded
-    
-    Conflicts:
-    	agent/agent_registry.c
-    	agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c
-    	agent/mibgroup/mibII/interfaces.c
-    	agent/mibgroup/ucd-snmp/disk.c
-    	apps/snmptrapd.c
-    	snmplib/snmpIPv6BaseDomain.c
-    	snmplib/snmpUDPIPv6Domain.c
-    	snmplib/system.c
-
-commit f47a3752849db075e6f2053b8595b7b792fb6462
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Fri Oct 15 10:56:09 2010 +0000
-
-    CHANGES: Win32: building: Builds now correctly with a 64-bit compiler.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19458 06827809-a52a-0410-b366-d66718629ded
-
-commit 02b6056df95da8b673034e39c2c7c386ed0f369c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Jan 10 11:44:53 2012 +0100
-
-    Fix a compiler warning about casting away const
-
-commit a19865832fc77f4c048144d91a431b1e94d329f2
-Author: Magnus Fromreide <magfr at users.sourceforge.net>
-Date:   Wed Oct 14 23:12:05 2009 +0000
-
-    CHANGES: apps, snmplib: PATCH: 2835577: identified by "Bart Van Assche": Replace SNMP_ZERO of arrays with a memset.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@17797 06827809-a52a-0410-b366-d66718629ded
-
-commit 67a3e2eccb95f9c9d0809efcbddcd866ee3062d5
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Wed Jan 6 14:27:15 2010 +0000
-
-    Fixed a compiler warning about discarding the const qualifier.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@17970 06827809-a52a-0410-b366-d66718629ded
-
-commit 3dcde2e8a595a527f06142c3b852de8433a1cf28
-Author: Magnus Fromreide <magfr at users.sourceforge.net>
-Date:   Sun Jan 24 14:27:55 2010 +0000
-
-    CHANGES: snmplib: Prevent gcc ped-warning for NETSNMP_REMOVE_CONST
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@18052 06827809-a52a-0410-b366-d66718629ded
-
-commit c2e1525a85bda5299a3b9f241614f7e6509aeeba
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Wed Jan 6 13:35:11 2010 +0000
-
-    Backport commit 295f473c83546221b2a71d815c61e33a67f98ae3: refine NETSNMP_REMOVE_CONST() implementation.
-
-commit cb423b0ae9ed0059aa100dc4e2fd93ad1b97faf8
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Wed Jan 6 11:57:51 2010 +0000
-
-    Backport commit e2fb09e0093e2f648fe2638da2f3af18fdb32bf0 - introduce NETSNMP_REMOVE_CONST().
-    
-    Conflicts:
-    	agent/snmp_perl.c
-    	snmplib/snmp_service.c
-
-commit afc396ab1618a8595a2519fbc25f7a498e174411
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 08:49:34 2012 +0100
-
-    Unbreak netsnmp_mktemp() and make_temp().
-    
-    These were broken by commit bb8fcbb874998000f945f058d1aa6fe14e925899.
-    Also replace a strncpy() call by a call to strlcpy() and replace the
-    make_tempfile() implementation by a call to netsnmp_mktemp().
-
-commit 210185c15d0d65f0ea98b5e3c2e0776f6222d170
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 08:27:43 2012 +0100
-
-    Fix a crash during startup of snmpd introduced by commit 885061687d9caa38470979667d7d8ad6563cedad.
-    
-    Also, make sure there is only a single copy of the cleanup code in function
-    mkdirhier().
-
-commit 8bb4e86abcf98ff28748af0af89c98e64d5cd961
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Wed Jan 11 07:47:12 2012 +0100
-
-    Reduce the scope of the oldmask variable.
-
-commit 6680147b138ec114f81c5d128ac9350c8450d081
-Author: Bart Van Assche <bvanassche at 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 at users.sourceforge.net>
-Date:   Tue Jan 10 15:40:59 2012 +0100
-
-    Fixed buffer overflow for large OID names
-
-commit fba188ee82010b2f2d8ca2e426ba654499ab3d0a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 15:31:33 2012 +0100
-
-    fixed buffer overflow in __concat_oid_str
-
-commit 21d25d86b8e4904d798dc8c96dade9e5048457a8
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 15:26:07 2012 +0100
-
-    Fixed buffer overflow when parsing port numbers.
-
-commit d36931841b2fc2cebc6364b2949129a0ad42ad1d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 15:05:51 2012 +0100
-
-    Fixed a buffer overflow when large SumFile is used.
-
-commit 0efdd022da09af1b5e16171fa7a2b523c5d6ec59
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 15:01:53 2012 +0100
-
-    Fixed buffer overflow when too big temp file pattern is used.
-
-commit 560bc6c09b751556efd6b4c4495751b109a93f92
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:59:24 2012 +0100
-
-    Fixed buffer overflow, just to be sure.
-
-commit 8291d7c5b92a31dd4f582b497d4b2a0853367a56
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:55:16 2012 +0100
-
-    Fixed buffer overflow.
-
-commit 88e1f34de7300575fa6dab857ecddb242a87de80
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:48:55 2012 +0100
-
-    Fixed buffer overflow when too long interface names are used.
-
-commit be1375a9926ebe0cd5b78a4045c3bd11c83664b1
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:46:49 2012 +0100
-
-    Fixed buffer overflow when a sensor name is too long.
-
-commit 1cb24625372062b14c71d7dd51e20fef773e2743
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:41:00 2012 +0100
-
-    Fixed buffer overflow when a CPU has too long name.
-
-commit 84c807ee03251e54856e83d62d06ea08b8df527a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:36:50 2012 +0100
-
-    Fixed buffer overflow when too long interface names are used.
-
-commit c310e390b5dd05f24be7eb1904c74e41259c93db
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:24:54 2012 +0100
-
-    Fixed buffer overflow when too big temp file pattern is used.
-
-commit 4600d11434e83b8653cf9f813a3d8b630455b42d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:17:08 2012 +0100
-
-    Fixed plausible string overflow before parsing command line options.
-
-commit 885061687d9caa38470979667d7d8ad6563cedad
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:11:02 2012 +0100
-
-    Get rid of (insecure) SNMP_MAXPATH in mkdirhier()
-
-commit 8016890a445f6a7e2a873a04873d4e27b6ee64e3
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 13:48:34 2012 +0100
-
-    Fixed wrong integer size on 64 bit platform.
-
-commit bb8fcbb874998000f945f058d1aa6fe14e925899
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 13:31:36 2012 +0100
-
-    Secure mkstemp() with umask() - on some implementations it does not set 0600 permissions automatically.
-
-commit 202523ca704bd722dc1ac0e1e6b0e4b4e5424495
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 13:11:57 2012 +0100
-
-    Fixed dereferencing 'c' before NULL check.
-
-commit 73a523e468277f6df2e984891313b8be8bce1921
-Author: Jan Safranek <jsafranek at 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 at acm.org>
-Date:   Tue Jan 10 10:38:16 2012 +0100
-
-    .gitignore: Ignore perl/*.yml files
-
-commit c365d80c16c2d17b160011e8c1f9cb958954e9db
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Jan 10 08:34:16 2012 +0100
-
-    CHANGES: snmptrapd: Do not invoke shutdown_perl() from inside the SIGTERM handler since that fails if SIGTERM is received while a Perl handler is active. Based on a patch posted by Joel Avni <javni at arubanetworks.com>
-
-commit d059fb878b1436599953cea5a077499ddcdcbcb5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 17:03:55 2012 +0000
-
-    CHANGES: BUG: 3440752: IF-MIB: Report interface speed correctly for Ethernet interfaces if other than 10 Mbps, 100 Mbps, 1 Gbps, 2.5 Gbps or 10 Gbps. Add support for NICs faster than 65 Gbps.
-
-commit c09903a42e9d97331fd9e48ee831a85afdf9c70a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Jan 9 13:26:17 2012 +0100
-
-    Doxygen-style documentation fixes
-
-commit e325ecbfce77f00ac5cf6fbd957f95495f61c59b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Jan 9 13:25:10 2012 +0100
-
-    Suppress uninteresting Doxygen warnings
-
-commit be9161d3a5898e863767f926613486126c2cbf67
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 12:35:39 2012 +0100
-
-    CHANGES: snmplib: Simplify implementation of functions manipulating 64-bit numbers.
-
-commit 86e4c2be0852a0a13b0603075720b3264ec70dde
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 12:29:11 2012 +0100
-
-    CHANGES: snmplib: Make it explicit that MAX_SUBID is an unsigned constant
-
-commit 37e272d8f7b7180ba140fa386a5ff058968a08a2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 18:21:48 2012 +0000
-
-    CHANGES: snmpd: IF-MIB::ifType: Report type "infiniband (199)" for InfiniBand interfaces instead of type "other (1)".
-
-commit 269932fa32c7cd47957489698e09bee31f63b7af
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 14:34:42 2012 +0100
-
-    Fix an MSVC compiler warning
-
-commit 0d1c21f9991d1309d057e3e4056d547df7d40ecf
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 16:06:31 2012 +0100
-
-    Make declaration and definition of strlcat() consistent.
-
-commit 0c3d4dbb0a9cf5b359f70b2f19915495554f840f
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 15:23:16 2012 +0100
-
-    CHANGES: Win32: snmpd: Remove dlmod
-
-commit 893ecc97b587661045becbe09a320c1bcbc71c7c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 14:36:59 2012 +0100
-
-    Add strlcat() to the MSVC build infrastructure.
-
-commit 3d126422e625702b9d3fa0676a97ec5cb20d9d10
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 15:01:06 2012 +0100
-
-    Make win32/net-snmp/net-snmp-config.h consistent with its .in file
-
-commit af53b76c2ffa751e3958d0fc5d8279f78c2c1c26
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 14:43:55 2012 +0100
-
-    Skip T066pass_simple and T067passpersist_simple on MinGW
-
-commit 35a92e693d133a5b11e9e9b599dbf47edef4933b
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Thu Jan 5 17:47:11 2012 +0000
-
-    Fix 64-bit compiler warnings
-
-commit 7e890dad95f566069ee280215a4fea3f0e2e3980
-Author: Bart Van Assche <bvanassche at 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 at 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 at acm.org>
-Date:   Thu Jan 5 15:02:39 2012 +0100
-
-    Replace most strncpy() calls introduced in v5.5
-
-commit b24ee7c909657db43bd8c5d8c01055ca0883c9cf
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 08:40:39 2012 +0100
-
-    Eliminate most strncpy() and strncat() calls
-    
-    Using strncpy() and strncat() is error prone -- see also
-    http://www.gratisoft.us/todd/papers/strlcpy.html. Hence replace
-    all invocations of strncpy() and strncat(). Replace
-    strncpy(dst, src, n) calls by:
-    * strlcpy(dst, src, n) if the goal was to avoid output buffer overflow.
-    * sprintf(dst, "%.*s", n, src) to copy a prefix of src to dst or if src is
-        not '\0'-terminated.
-    * memcpy(dst, src, n) if strlen(src) >= n and n < size of dst.
-    * strcpy(dst, src) if n > strlen(src) and n < size of dst.
-
-commit 6d95bc4149472931005475c30a541fed5534da39
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Jan 5 11:19:16 2012 +0100
-
-    Fix warnings triggered during compilation of the Perl xs source files
-
-commit bad0600f6ec944ef8455e327ce784b9b07d247c9
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Thu Jan 5 10:00:29 2012 +0100
-
-    Get rid of a compiler warning
-
-commit 83e4c0e304f617ccac6610edd74d1706797bbf52
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Thu Jan 5 09:17:15 2012 +0100
-
-    CHANGES: snmplib: Simplify the se_store_enum_list() implementation
-
-commit b3222bb275f2f2346e0fd0478afa2efb600773e5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Jan 5 09:16:45 2012 +0100
-
-    CHANGES: snmplib: Declare "type" argument of se_store_list() / se_store_slist() / se_store_enum_list() const
-
-commit 022f840fbfcb0e26b08f0e55728231f611495803
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Wed Jan 4 17:33:09 2012 +0000
-
-    Fix a 64-bit compiler warning
-
-commit 24ff260ad89ce2aa361a55c7c72e916031defe35
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 17:11:24 2012 +0100
-
-    Change the type of the second argument of snmp_set_var_value() and snmp_set_var_typed_value() from u_char* to void*, like on more recent branches
-
-commit c6ca737fb46f90a4bda5d43734aac34e837a05f4
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Sat Mar 13 19:07:37 2010 +0000
-
-    Backport commit f504ce2d74a4bc88f68cc9515fa7053373cb15b5.
-    (Fixed most compiler warnings triggered by the source code in the perl subdirectory. Note: these changes may contain some real bug fixes.)
-    
-    Conflicts:
-    
-    	perl/ASN/ASN.xs
-    	perl/OID/OID.xs
-    	perl/SNMP/SNMP.xs
-    	perl/agent/agent.xs
-
-commit d212dc984ec34e4d230625e46e58b0c628a50df5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 16:46:49 2012 +0100
-
-    SNMP.xs compiler warning fixes
-
-commit baceebb10d8caf5db63cc36935fed65ee931029d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 16:22:44 2012 +0100
-
-    Add declaration for shutdown_snmpNotifyTable()
-
-commit f7f966abd6d2849b1331252afe5c473e5c40b32d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 14:24:33 2012 +0100
-
-    Fix format specification mismatches.
-
-commit 303c015bcfe9af0b154e9881c7b4f449e08f30bb
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed May 6 22:06:23 2009 +0000
-
-    Backport commit d3eb2b5ced22a8480053ce43acf9739729055404
-    (Sprinkle some const-ness where relevant / fix format string mismatches,
-    Niels Baggesen, May 2009)
-    
-    Conflicts:
-    
-    	agent/agent_sysORTable.c
-    	agent/helpers/instance.c
-    	agent/mibgroup/disman/event/mteTriggerConf.c
-    	include/net-snmp/agent/instance.h
-    	include/net-snmp/agent/sysORTable.h
-
-commit d95b40406916bda5b48b5a6131bec27b866b0a79
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed May 6 21:59:20 2009 +0000
-
-    Backport a2a7316c310f0fcc3728673fa047051c23b71960
-    (Trivial warning fixes, Niels Baggesen, May 2009).
-    
-    Conflicts:
-    
-    	agent/mibgroup/hardware/cpu/cpu_linux.c
-    	agent/mibgroup/host/hr_swrun.c
-    	agent/mibgroup/if-mib/data_access/interface_linux.c
-    	agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c
-    	agent/mibgroup/ip-mib/data_access/systemstats_linux.c
-    	agent/mibgroup/mibII/sysORTable.c
-    	agent/mibgroup/mibII/system_mib.c
-    	agent/mibgroup/ucd-snmp/logmatch.c
-    	agent/mibgroup/util_funcs/get_pid_from_inode.c
-    	agent/snmpd.c
-    	snmplib/container_list_ssll.c
-
-commit d86c47f003fdc192bce7b46ac4f06b09e387c12b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 13:29:08 2012 +0100
-
-    Fixed a typo
-
-commit bee4d79cf4eb7e0a45397f59b5298da633a8e1ba
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 13:14:57 2012 +0100
-
-    Fixed reading past end of buffer.
-
-commit 3dc0e00a2fd8e34fe1ae33ecabf36e146460a31f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 12:40:07 2012 +0100
-
-    Fixed buffer overflow when large 'token' is used.
-
-commit b3c4982542e0ab151fb3884754cdfbcb472da52d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 12:28:52 2012 +0100
-
-    Fixed off-by-one memset.
-
-commit 0f53695044dd3f0c3507753e3f8c29d97e96872d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Aug 3 21:38:26 2011 +0200
-
-    CHANGES: snmplib, snmpd, perl: Eliminate dead variables
-    
-    Conflicts:
-    
-    	agent/mibgroup/agentx/master_admin.c
-    	agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c
-    	agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c
-    	agent/mibgroup/host/data_access/swinst_pkginfo.c
-    	agent/mibgroup/host/data_access/swrun_procfs_status.c
-    	agent/mibgroup/ip-mib/data_access/systemstats_linux.c
-    	agent/mibgroup/mibII/kernel_linux.c
-    	agent/mibgroup/rmon-mib/data_access/etherstats_linux.c
-    	agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c
-    	apps/snmptls.c
-    	apps/snmptrapd_log.c
-    	snmplib/dir_utils.c
-    	snmplib/snmp_client.c
-    	snmplib/snmp_openssl.c
-    	snmplib/transports/snmpTLSTCPDomain.c
-
-commit 0153805c99b9197365935c5d11ae9c3d4bfaa0f3
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 09:48:41 2012 +0100
-
-    Fix a set-but-not-used warning
-
-commit 3f8885fbee9407748fc2f0573728a11ba2bc023a
-Author: Magnus Fromreide <magfr at users.sourceforge.net>
-Date:   Tue Apr 28 05:51:13 2009 +0000
-
-    Return a value from sprint_realloc_value even if no subtree is located.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@17578 06827809-a52a-0410-b366-d66718629ded
-
-commit b1eaaf302369fd4552e8fee7b6a805091ec0a9b4
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 11:38:51 2012 +0100
-
-    Added check of find_sec_mod() return value.
-
-commit aee4e895fe3bd5f4a61e34275bfca0368b560555
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 11:31:22 2012 +0100
-
-    Added check of snmp_sess_transport() return value.
-
-commit 5d1d0a744ab30c8e645c3b8506cbbd2cceb3d275
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 11:04:48 2012 +0100
-
-    Added check of netsnmp_extract_iterator_context() return value.
-
-commit 299ea9a89c3f1758a7748bb9b3411f62f2c70f88
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 10:54:55 2012 +0100
-
-    Added check of fopen() return value, just in case of some race.
-
-commit 90f1ae6757917481636eef77100caeeb53edfe01
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Jan 3 10:06:56 2012 +0100
-
-    Add strlcat.c. Source: http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/string/strlcat.c.
-
-commit 089bcb360aa26790ad2a8ceddf583b7ba5ddfd48
-Author: Jan Safranek <jsafranek at 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 at acm.org>
-Date:   Wed Jan 4 10:31:26 2012 +0100
-
-    CHANGES: snmpd: smux: simplify smux_list_detach()
-
-commit d883573aa73e0f5fc188acedee6451f95dae900c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 10:23:06 2012 +0100
-
-    Fix a compiler warning introduced by commit a809fe5075c9f374715f7d1a682949a0730172c1.
-
-commit 7b7a3eb2500527eaa1699287a6ca6fcc4cc2e08a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 09:40:02 2012 +0100
-
-    Fix a build error caused by commit a809fe5075c9f374715f7d1a682949a0730172c1.
-
-commit 2b6c119fed4848da6663c11f0c2cbdc29921b5c6
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 15:51:10 2012 +0100
-
-    Check for netsnmp_ds_get_int() errors.
-
-commit 6ce5360caa4c9de51ade57879e83f96bd04b4c5a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 15:42:23 2012 +0100
-
-    Check for missing view.
-
-commit b3bc54bed31690a85df2acfbf3296da93a9e89b4
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 15:23:17 2012 +0100
-
-    Check socket() result.
-    Also close the socket on error.
-
-commit 92075f51cd45a38ca38760b3ffe82e16559e9c2e
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 15:18:26 2012 +0100
-
-    Check open() result.
-
-commit 6665d5fe2fc569d6fa854d1d78e347bbac69e070
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:22:22 2012 +0100
-
-    Fixed missing break.
-
-commit a6648c5453e1ef8dac57a38efcc00cce53bf9e4f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:20:27 2012 +0100
-
-    Fixed missing break.
-
-commit d68dcae0f18d554571aef321944a5290548dde86
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:16:11 2012 +0100
-
-    Added 'fallthrough' comment for Coverity.
-
-commit fb6f80c0fe3ba36e56f5b911a47e3f6f32ba266e
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:14:07 2012 +0100
-
-    Fixed exit code of encode_keychange with wrong arguments.
-    Also added a comment for Coverity.
-
-commit 3130e24fdc232464dd7bb216f46cafa2e0e775a6
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:09:54 2012 +0100
-
-    Added missing break
-
-commit 18c126a9565cb4d69d7513b944a2105588045d35
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:07:29 2012 +0100
-
-    Added 'fallthrough' comment for Coverity.
-
-commit 6d31c82070a2c68fe3c519e9d56fa2779554d01f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:01:53 2012 +0100
-
-    Added 'fallthrough' comment for Coverity.
-
-commit dc6f0e2e549b4cd061ebc190084b1fc77a55f40f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 13:32:59 2012 +0100
-
-    Fixed wrong operator
-
-commit dab32867ed0b99301efd7b8d852ad1288a184be0
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 13:30:33 2012 +0100
-
-    Fixed QUITFUN usage.
-
-commit b1a2bcf64615eb66bc24d5be4950e45012962045
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 13:18:03 2012 +0100
-
-    Fixed wrong operator
-
-commit b2b1c851b94fed37c386eaa1bfead5c77696e3ef
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 13:14:52 2012 +0100
-
-    Fixed wrong operator
-
-commit a809fe5075c9f374715f7d1a682949a0730172c1
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 10:58:46 2012 +0100
-
-    Added check for failed register_mib.
-
-commit 5949f055c16ae650615aae7a1fee3f2d7b16d940
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 10:29:59 2012 +0100
-
-    Make MIB file parsing and detection more strict - LABEL is required at the beginning of MIB files.
-
-commit e4b673683c68ba8b3abc040b9125ec304643cc7c
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Jan 1 23:00:24 2012 +0100
-
-    Assume that libdl might be in AGENTLIBS or SNMPLIBS so preadd them.
-
-commit b13c1e57bedba79b806103c74f1921d53a706b38
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Jan 1 22:55:06 2012 +0100
-
-    Do not require ucd-snmp/dlmod unless it will work.
-
-commit 27dcea0d5f801df494ab2cb5c5c0ebe54eb0dcd3
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Dec 31 14:48:29 2011 +0100
-
-    Adjust paths for test restructure
-
-commit 14b60e85a1b5700e93d126e2f291d5c485f34e36
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Dec 31 14:14:29 2011 +0100
-
-    CHANGES: snmpd: Make the configuration of the dlmod module fail rather than generate a dummy module if the dlopen function isn't available.
-
-commit 98a97538fc1e9ff46b60d5d969347444578378c0
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Dec 31 13:35:13 2011 +0100
-
-    Adjust the paths to support testing even if builddir != srcdir
-
-commit 88f0af3cfb916ae5863cc2986071d435f20c3064
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Dec 31 11:37:52 2011 +0100
-
-    Reduce the scope of the variables 'p' and 'len'.
-
-commit 0815a7536c76f7e4842638683f674894a1a8ce14
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Dec 29 14:42:54 2011 +0000
-
-    Report problems with SetUndo processing
-    Missed when applying patch #3445440
-
-commit eb2ab23742ca86c0b89ccfe91eb6ea374bf3acc1
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Dec 29 14:37:31 2011 +0000
-
-    Check for the expected error (EPIPE) on closure.
-    Missed when applying patch #3447444
-
-commit aac10bc4f053c014f382d6593fc32ab95e0b1a57
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Dec 29 12:59:52 2011 +0000
-
-    CHANGES: snmpd: BUG: 3463767: Handle parsing subidentifiers > 2^31
-
-commit bbc02e36e90c1aab7898562f963f5cadb26e10bd
-Author: Dave Shield <D.T.Shield at 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 at liverpool.ac.uk>
-Date:   Wed Dec 28 16:53:24 2011 +0000
-
-    Add tests for pass/pass_persist, supplied by Bill Fenner
-
-commit d5ee3f0a1a63bb1752c74cbca55aa3d40bf9bf13
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 21:58:51 2011 +0000
-
-    CHANGES: snmpd: PATCHES: 3447444: Fix SIG_PIPE handling
-    Patch provided by Bill Fenner
-
-commit 2a17b37430c1852998c3588e547d7eb61c06da71
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 21:45:38 2011 +0000
-
-    CHANGES: agentx: PATCHES: 3445440: More robust handling of AgentX errors
-    Patch provided by Bill Fenner
-
-commit fe58a0e5f4d4e2e2ecbcb47382b08cb1e4df352c
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 18:16:23 2011 +0000
-
-    CHANGES: snmplib: PATCHES: 3456770: Handle (obsolete) UInteger type properly
-    Patch provided by Bill Fenner
-
-commit 1be8cf08a67a91855fee1ec4a2d8e087c7812456
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 18:04:10 2011 +0000
-
-    CHANGES: agentx: PATCHES: 3445437: Log AgentX disconnections
-    (in line with connections) Patch provided by Bill Fenner
-
-commit 068037289107faa2ba3f5cd2fb00c19494bb9a04
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 17:27:46 2011 +0000
-
-    Handle any GETNEXT request OID, not just a simple walk.
-
-commit a74fa528983123d355a8cdcaa77dd4eb4b8c6959
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 17:00:18 2011 +0000
-
-    CHANGES: pass: PATCHES: 349394: Bring pass_persisttest script into line with passtest*
-    (i.e. using the legitimate structure of NET-SNMP-PASS-MIB)
-    Patch provided by Bill Fenner
-
-commit bbe649ebfa61ea22399170b36b99db30a1de8012
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 16:54:38 2011 +0000
-
-    Rework "passtest" example to fully validate GETNEXT requests
-    and use a legitimate structure for output.  Backport of SVN
-    revision 17632 (which updated 'passtest.pl' but missed 'passtest')
-    Correct in branches 5.5 and above
-
-commit 82d06c7247b22c8b01d45bf55041d2f1e6427d49
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 13:45:18 2011 +0000
-
-    CHANGES: snmpd: PATCHES: 3447671: Fix override handling of OID values
-    Patch supplied by Phillip O'Donnell
-
-commit ba4a9ce51c9600f9fda168f1e6eff32a1db63cb9
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 13:24:26 2011 +0000
-
-    Tweak --disable-snmp-set changes
-
-commit 827c8b28830171faa9c61d53efca9eb6600561c2
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 11:25:43 2011 +0000
-
-    CHANGES: python: PATCHES: 3433846: Fix for use with python 2.4
-
-commit f98a54a99caf7b46b100a920db942cbca9c43926
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 10:10:36 2011 +0000
-
-    Skip SET-based tests when configured with --disable-set-support
-
-commit 230df14f94c3736ff34379a4e281eea353b47f80
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Mon Dec 26 23:34:23 2011 +0100
-
-    Do not assign tmStateRef twice
-
-commit c96b3b4d8530ad5e0efb03f24dab5e5f1a460031
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Dec 25 11:18:21 2011 +0100
-
-    Correct use-after-free.
-
-commit c5978c89cde2440f4d20dadbc9d1dd8db562d56e
-Author: Magnus Fromreide <magfr at 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 at liverpool.ac.uk>
-Date:   Sat Dec 24 16:55:30 2011 +0000
-
-    CHANGES: snmpd: PATCHES 3410059: Fix sparsely augmenting trigger tables
-    Patch provided by Stephen Turner
-
-commit c4ae021b2e6384437081c5623f360c8896390188
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Sat Dec 24 16:29:54 2011 +0000
-
-    CHANGES: snmpd: PATCHES 3410050: Skip already-'processed' varbinds
-    Based on mib2c patch provided by Stephen Turner
-
-commit c6accf8c66254fa8c48767ed7dec795ddafc522e
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Sat Dec 24 16:27:11 2011 +0000
-
-    CHANGES: mib2c: PATCHES 3410050: Skip already-'processed' varbinds
-    Patch provided by Stephen Turner
-
-commit a61826ad8ca54661d1d909712503bd3a8b32eed0
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Dec 22 18:35:46 2011 +0100
-
-    Remove unused variable.
-    
-    myMatch is unused as nmatch is zero and also since regexBuffer is created
-    with REG_NOSUB set.
-
-commit ba4fc80fe2cfd5a5d89230d8f3703e4fe01e6019
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Dec 22 19:24:40 2011 +0000
-
-    CHANGES: agent: PATCH 3402376: from Leonardo Chiquitto: Recognise ReiserFS
-    Also move various FSType definitions to the appropriate blocks
-
-commit b5ac4a04dcd5470d08d03321abcd1e982621e6e0
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:39:46 2011 +0100
-
-    Fixed unterminated strings after strncpy
-
-commit 2b37e4e8f250a0d8821199a74ac3f4e5b7b7baba
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:31:51 2011 +0100
-
-    Fixed unterminated strings after strncpy
-
-commit 3d08345156c419333de969f13d21fcec7e18e94d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:32:29 2011 +0100
-
-    Fixed unterminated strings after strncpy
-
-commit cd859ad51c4f18d5b0fc69dd669fcb051c798969
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:39:33 2011 +0100
-
-    Fixed wrong memmove size
-
-commit 30ff58d09d4c9d5438bb621054fd7ad7a2a597e4
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:07:19 2011 +0100
-
-    Fixed wrong length of buffer when printing ASN_BIT_STR
-
-commit 6c1487e1d360d3d260a39cb1f5b15da978395053
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 15:47:34 2011 +0100
-
-    Fixed potential free of uninitialized pointer in error cases
-
-commit c76fb96f65e33ba2fd212a921e8c386155ee5c7a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 15:44:46 2011 +0100
-
-    Fixed unitialized values in udpTable
-
-commit c44608679b89751176f28a2e54d5282b46e2a05c
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 14:56:13 2011 +0100
-
-    Use calloc instead of malloc and manual clearing
-
-commit a05c5f9513461824e7903ae9ae9a6c3386e33879
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 14:40:50 2011 +0100
-
-    Fixed printing of unitialized variable when sensors_get_label() fails
-
-commit e4a5edc72393bd3de9bf12bceba9d83bbf7de70b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 14:31:25 2011 +0100
-
-    Removed unused variable
-
-commit fae2e5b835b8df1eae47e4cebb4eb404d7282377
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 13:31:21 2011 +0100
-
-    Fixed dereferencing unitialized iid in error cases and with debug info enabled.
-
-commit 9d58f81a9239cfbcfc8ebce367d21e9b3dcb028b
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Wed Dec 21 13:20:52 2011 +0100
-
-    Fixed returning uninitialized variable 'status' when ss == NULL
-
-commit 7304c53cf8adee8eccef1a8f26756fc07f098721
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Dec 18 23:31:53 2011 +0100
-
-    On solaris 10 test in /bin/sh doesn't support the -e test. Replace it with -f
-
-commit 8cd3be60d693c9c36ffb97d3d9bcb49c1b4abe35
-Author: Magnus Fromreide <magfr at 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 at 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 at 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 at 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 at 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 at 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 at lysator.liu.se>
-Date:   Sun Dec 11 19:27:59 2011 +0100
-
-    Reduce variable scope.
-
-commit bc879571eca9520bc132f840c3e659d3793144d7
-Author: Magnus Fromreide <magfr at 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 at 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 at 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 at 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 at 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 at acm.org>
-Date:   Thu Dec 8 12:00:32 2011 +0100
-
-    Remove a cast
-
-commit de9250d9dae9727a6cc7f647688dddf1b8597128
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 8 11:58:04 2011 +0100
-
-    CHANGES: snmpd: Make sprint_mib_oid() treat OID components as unsigned instead of signed integers
-
-commit 0e33b3b6d5854a4bac15d4ea5e016c53d161d0cd
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 8 10:02:28 2011 +0100
-
-    Fix recently introduced compiler warnings
-
-commit b7e50d5f9a6755982d2af3191473cb34643bc03f
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 8 08:37:22 2011 +0100
-
-    CHANGES: snmplib: Reduce overhead of config file parsing
-
-commit 73c9ee42d28afe2e107a7d6616b6d011890c36ea
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 8 09:09:59 2011 +0100
-
-    Remove unused variables
-
-commit 3db97962b37eb12d254d61e6be234b06a391c8bb
-Author: Bill Fenner <fenner at gmail.com>
-Date:   Thu Dec 8 07:43:45 2011 +0100
-
-    CHANGES: snmpd: PATCH 3453868: from "Bill Fenner <fenner at gmail.com>": Factor common code into pass_common
-    
-    Move the code for pormatting and printing values from pass and pass_persist
-    into pass_common.
-
-commit b6568c83f1756e9a65434edeeeb40d23ddbbb652
-Author: ccchiu <ccchiu at 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 d494db64c208b4dc62813132f8863bd5c1a39d77
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 10:38:17 2011 +0100
-
-    CHANGES: snmptrapd: Eliminate an unused variable (Now)
-
-commit 28f2561bc2935d8e1cbf46d2820158173e7a4cf4
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 10:37:11 2011 +0100
-
-    CHANGES: snmptrapd: Move the main loop code into a new function
-
-commit 396e122ddc42a916f06a02884c0e8a258edbe238
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 09:32:16 2011 +0100
-
-    CHANGES: snmpd: Match each getpwnam()/getpwuid() call with an endpwent() call and each getgrent() call with an endgrent() call.
-
-commit 3efefbc0024399786f8b68b1e93b0a8fddddc7da
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 10:41:01 2011 +0100
-
-    CHANGES: snmptrapd: Remove superfluous casts
-
-commit 7f05daa8e0e0f533b0f12a3e1cf07641519909d6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 11:58:32 2011 +0100
-
-    CHANGES: BUG: 3444939: BUG: 1796886: snmplib: Avoid that sprint_realloc_octet_string() embeds unprintable control characters or binary zeroes in its output. This behavior could cause truncated output in snmptrapd.
-
-commit db8f558fd2f3b7c109ea3a1c2133b75b6f8cb2ad
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 10:04:41 2011 +0100
-
-    Compiler warning fix: pass unsigned chars to isprint() instead of signed chars.
-
-commit 800dc1028e7e0cd8cc14d84dd31723d47ac073db
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Dec 1 10:18:58 2011 +0100
-
-    Reduce the scope of the hint variable
-
-commit 83ea4a080c90a74b9743d3f24cf0d4b8a1e8c849
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Nov 27 21:16:52 2011 +0100
-
-    Reduce the scope of the variable qos
-
-commit 7b9e03441c3dc3a07670ed01f5d04791a82c750c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:04:01 2011 +0100
-
-    Remove #define val(x) __STRING(x) and change val(x) into __STRING(x).
-
-commit 2f379b0e4ecadfa4e541e3005c8fc8281882b741
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 15:58:47 2011 +0100
-
-    Follow-up for commit 1aa704e: unbreak the MSVC build
-
-commit 64ef0f71127617837027fb2cfaf174b95ba79e0d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:19:50 2011 +0100
-
-    Add SNMP::register_debug_tokens()
-
-commit 7bead9ca917c67566d5ed98ab507bbc02816217d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:08:08 2011 +0100
-
-    AgentX subagent: Reduce code duplication
-
-commit 0ed71541f87e7d78bc998eebda3217c59e1df830
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:03:19 2011 +0100
-
-    CHANGES: snmplib: Add Doxygen-style function header for netsnmp_register_default_target() and netsnmp_clear_default_target().
-
-commit 8c2972b61e40169b47c50988b6ae9e8c285f84f8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:02:54 2011 +0100
-
-    CHANGES: perl: Fix spelling in the documentation of the SNMP module
-
-commit 5df2bac6bd717799311f001ac7b73db88f11bdda
-Author: Magnus Fromreide <magfr at 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 at 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 at linux.vnet.ibm.com>
-
-commit 82e39fb6706df90ecf2fc9e10ada2b962ee196f3
-Author: Dave Shield <D.T.Shield at 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 at gmail.com>
-Date:   Tue Nov 29 08:29:49 2011 +0100
-
-    CHANGES: FreeBSD: Restore IP_RECVDSTADDR functionality.
-
-commit 7f47f52e481baa9aafb5784244b0dd2653e7dcff
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Mon Nov 28 08:51:39 2011 +0100
-
-    CHANGES: snmplib: Use SNMP_ALLOC_TYPEDEF to allocate transports in order to avoid the separate call to memset.
-
-commit cf86039e3086225c3085bb9adf088b8ba5ba6979
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Nov 22 15:02:58 2011 +0100
-
-    CHANGES: MinGW: testing: Make unit-tests/T102pdu_build_clib pass.
-
-commit 1a87e76e00ee3d5cd37a07bfc3d84490d3c2a4ec
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Nov 22 14:55:42 2011 +0100
-
-    CHANGES: MinGW: testing: Make unit-tests/T014gethostbyaddr_clib pass
-
-commit 8867fd1dcfe72b59d07322ff38a699b66ec4f326
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Nov 22 09:44:38 2011 +0100
-
-    CHANGES: snmplib: Make netsnmp_large_fd_set_resize() robust against memory allocation failures.
-    
-    CHANGES: snmplib: Make NETSNMP_LARGE_FD_ZERO() use memset() on Unix systems instead of an explicit loop.
-    CHANGES: snmplib: Make sure that on Unix systems netsnmp_large_fd_clr() doesn't try to read memory it isn't allowed to read if the first argument equals -1 (a value that shouldn't be passed by the caller).
-    CHANGES: snmplib: Make netsnmp_large_fd_is_set() return false on Unix systems if the first argument equals -1 (a value that shouldn't be passed by the caller).
-    CHANGES: Windows: Make netsnmp_large_fd_set_resize() shrink behavior correct.
-
-commit 23db0cf09b8b0eab37b749ef0c3c3f306900245c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Nov 21 23:02:57 2011 +0100
-
-    Fix casting tv_usec to int which may be too short
-
-commit 80ee4022e534e64aad5a5f27192843b42acb85e0
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Nov 19 09:14:02 2011 +0100
-
-    CHANGES: snmpd: BUG: 3439234: Move netsnmp_pass_str_to_errno to pass_common and rename it to netsnmp_internal_pass_str_to_errno
-
-commit 0baa9296c072bb3735760b0dd992f2d1d3ca27fa
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Nov 19 09:05:24 2011 +0100
-
-    CHANGES: snmpd: BUG: 3439234: Correct the dependencies of ucd-snmp/pass and ucd-snmp/pass_persist
-
-commit 1aa704e4a294430b28e39b6f9e4683b8a48bce04
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Nov 19 08:35:21 2011 +0100
-
-    CHANGES: snmpd: Factor out asc2bin and bin2asc. Add a netsnmp_internal_ prefix to them
-
-commit cda8fe91013f12cbf64a0775abb55720035af931
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Nov 19 00:55:24 2011 +0100
-
-    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 at 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 at users.sourceforge.net>
-Date:   Wed Nov 16 23:33:07 2011 +0100
-
-    Define the full NetBSD hierarchy downwards
-
-commit b881841bd0493dd71d63259bdded449b06f02c32
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:30:33 2011 +0100
-
-    Fix size_t/int mismatches
-
-commit ca294cf75bbc8e90dbf44ee40478935e91db1487
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:18:03 2011 +0100
-
-    Remove unused variables
-
-commit cd32c2dff06b9b452cc18d552d2f2234092c829c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:17:09 2011 +0100
-
-    Fix format warning
-
-commit 883136c2b2fa0739f437a8cfb6614accc76e268e
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:15:58 2011 +0100
-
-    More needs for NETSNMP_PRIo format specifier
-
-commit b8084a7ccc909b6d6db7c0e8e596d78671f5678b
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:14:26 2011 +0100
-
-    Fix using char as array index (ctype.h)
-
-commit 84529e6320a89d97f1314aebad806255d2a1b18c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:00:57 2011 +0100
-
-    Fix missing format for FreeBSD 4
-
-commit 4bd0352955a2551bfe02308dd134b9128c98b9e9
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 22:59:36 2011 +0100
-
-    Fix paranthesis problem
-
-commit fe6269b1900cf44dc27a199a761d15a01c3f3092
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 22:58:34 2011 +0100
-
-    Fix size_t/int mismatches
-
-commit a4db9f9fc13d21ecff488eb410376edda6c28232
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 13:43:34 2011 +0100
-
-    Remove unused variables
-
-commit 390c0114c8ec0bdb27b08b6f74e3f6ef3a62981b
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 13:37:49 2011 +0100
-
-    Fix format specifiers to avoid warnings
-
-commit 25cfc1962ae576ccb1558da1e3ef8b6c17f63c16
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 11:27:53 2011 +0100
-
-    Really up-to-date mibs
-
-commit 0e86c781f3989bf022c8993a118617b74a75420c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 09:17:19 2011 +0100
-
-    memory_linux: get Shmem from /proc/meminfo for 2.6 (or newer) kernels
-
-commit bf264d15ded7acbbf2e3871b98fd1fcef43d9ec3
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 09:16:16 2011 +0100
-
-    memory_linux: close sockets in error situations
-
-commit 57ff8a40bae5d9bcad16089142a9cf328c9fa1f5
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 09:14:57 2011 +0100
-
-    disman/ping, disman/traceroute: Close sockets in error situations
-
-commit 8a2502a15c3217b95939a3c836167d230ac35f02
-Author: Niels Baggesen <nba at 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 at 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 ba619804e5978a8df754844efcca52b69b5015fa
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Nov 14 13:34:20 2011 +0100
-
-    MinGW: Make sure that the backslashes in the pskill message are displayed.
-
-commit 923eecc507f75043b60c5e68053a4f396ab0b0d2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Nov 14 12:36:38 2011 +0100
-
-    Compiler warning fix for systems where uint64_t = unsigned long (e.g. RHEL 6.1/x86_64)
-
-commit 434bfc1f7457550b6f87d5bcd511276b270b5964
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Mon Nov 14 11:22:53 2011 +0100
-
-    CHANGES: snmpd: from Martin Wilck: fixed snmpd crashing with 'select: bad file descriptor'.
-    
-    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 at 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 at users.sourceforge.net>
-Date:   Fri Nov 11 19:00:12 2011 +0100
-
-    NetBSD-6: One more instance of timespec replacing timeval
-
-commit 8ad6c53fdec5adeae4e52f1751ecec4a345bab05
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Nov 11 18:59:01 2011 +0100
-
-    Fix buig #3436527: arp_netlink: fix dying reload of cache
-
-commit 378ffed03ba79a8346d6c62781e2ddf5ce92a478
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Nov 11 18:55:43 2011 +0100
-
-    Fix bug #3436528: swinst_pkginfo: recover from NULL return from opendir
-
-commit d7ad8f5f9f3f67f16f65c2515d11e194d2cdd12c
-Author: Bart Van Assche <bvanassche at 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 at 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 at 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 at 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 at lysator.liu.se>
-Date:   Mon Nov 7 01:25:57 2011 +0100
-
-    CHANGES: testing: Remove unused variable
-
-commit e221e65fdc1c68f1968651717dcc9ccfb6414783
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Nov 3 15:05:00 2011 +0100
-
-    Fix warnings about converting sockaddr_in * into sockaddr *.
-    
-    This is a follow-up for commit a0af385.
-
-commit 2e7e9eda0b0d62a7645a9a8f70ef3fb6f3dd6941
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Nov 3 11:17:48 2011 +0100
-
-    Fix uninitialized variable warnings.
-
-commit 3462ebcdd0b7c298cb15c3099736f4f952257846
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Oct 28 16:07:15 2011 +0200
-
-    Remove those superfluous parentheses that trigger a clang warning.
-
-commit 3e5fedd3e7d1ef31683604bf73dc56e944cad349
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Nov 3 09:45:27 2011 +0100
-
-    CHANGES: snmpd: fixed UCD-SNMP-MIB::systemStats after 30 days of uptime.
-    
-    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 at users.sourceforge.net>
-Date:   Wed Nov 2 22:59:08 2011 +0100
-
-    dskIndex was off by one
-
-commit a5b28829e64d5f3b87e4b9b1ef8cc204f33a61b7
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 2 21:25:07 2011 +0100
-
-    Solaris needs $AWK to get a usable nawk
-
-commit 2801a2139f27021e1ab15e362e2d3d624ffaa494
-Author: Niels Baggesen <nba at 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 at 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 at 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 at 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 at lysator.liu.se>
-Date:   Sat Oct 29 08:34:33 2011 +0200
-
-    CHANGES: snmpd: Disable the support for integer64 in pass scripts if compiling without opaque-special-types.
-
-commit 29bf69d70424f359d9c87f07a964a099415649a5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 10 13:02:25 2011 +0200
-
-    CHANGES: snmptrapd_sql: Avoid that a linker error is triggered on systems where my_progname is missing in libmysqlclient (e.g. Fedora 15 and 16).
-    
-    This is a backport of commit 9f653f7.
-
-commit 2cc9504b9bb8625b94be6cda7e60993d059cd928
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Oct 26 09:01:23 2011 +0200
-
-    CHANGES: snmplib: BUG: 3428506: Fix netsnmp_gethostbyaddr()
-    
-    This patch should fix the regressions introduced by commit 85d96c4 (May 13, 2011).
-
-commit 9b427b353f1ceb8fe87e6fc8ed3b6cfab3ce7f20
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Oct 27 08:20:00 2011 +0200
-
-    MinGW: Avoid confusion between MinGW's kill.exe and the SysInternals pskill.exe
-
-commit 2c45f92cfcb5b05e049226a5a7883a0b106011ae
-Author: Bart Van Assche <bvanassche at 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 at 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 at acm.org>
-Date:   Wed Oct 26 09:32:46 2011 +0200
-
-    Fix compiler warnings about casting away const
-
-commit 13952f6bee9f408867ab6d2fdfdde4f284074957
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Oct 26 14:05:16 2011 +0200
-
-    CHANGES: snmplib: from Siddhesh Poyarekar: properly clean up old requests in a subagent when we reconnect to master.
-    
-    An snmp subagent linked against net-snmp-libs may crash if it handles a
-    response which has magic referring to an older disconnected main session. This
-    may happen when the subagent
-    attempts to clean up old requests on reconnection of the disconnected master
-    session.
-
-commit ae052472b22720d08369e85127db214245df2e3f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Oct 25 16:15:17 2011 +0200
-
-    CHANGES: perl: fixed segmentation fault when handler registration fails.
-    
-    When netsnmp_register_handler fails, it frees its reginfo -> nsahr_DESTROY (and any other function) must not dereference it.
-
-commit c199bf91b6239f26b2aab34e8575e0f0df9cde9b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Mon Oct 24 14:25:28 2011 +0200
-
-    CHANGES: snmpd: xfs, jfs and vxfs filesystems are now recognized in hrStorageTable
-
-commit 747fdc71e64d09e080928ebbb4d04cbde3906799
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Oct 5 15:57:59 2011 +0200
-
-    CHANGES: snmpd: Lowered severity of 'error finding row index in _ifXTable_container_row_restore' message.
-    
-    The message is shows up when snmpd is started and there is different set of network interfaces than it was when snmpd wast last stopped. This is common on ppp-servers or virtual hosts.
-
-commit 250f698e59eab9f1ffd332ff59fdb72ea0df06ff
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Oct 23 08:51:23 2011 +0200
-
-    CHANGES: building: Make the transport configuration code work again
-    
-    Previously the transport inheritance processing code ran with
-    NETSNMP_FEATURE_CHECKING set. In this mode the file net-snmp/feature-details.h
-    is requiered. That file is created during the first make run, and that happens
-    after configure is run.
-    Change this to undefine NETSNMP_MINIMAL_CODE, effectively turning off feature
-    support during transport configuration in order to make it work at all.
-
-commit 6ef6907642247c663b9b8964b9fd44a211dbcaa7
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Oct 20 20:30:54 2011 +0200
-
-    CHANGES: snmpd: BUG: 3408398: Fix a memory leak in agent/mibgroup/hardware/fsys.
-    
-    This memory leak was introduced via commit
-    9bf3d96d96a8ecd4a5fc35c326dc937467002b6c: Initial HAL
-    implementation of FileSystem information (March 7, 2008).
-
-commit cf82b894b2217c26edc6f1356351c932415604e2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Oct 15 14:45:08 2011 +0200
-
-    CHANGES: snmplib: BUG: 3423915: Change default number of retries back from 0 to 5
-    
-    This patch fixes a bug introduced via commit 6cac050 (May 5, 2011,
-    added support for specifying the default number of retries in
-    snmpd.conf).
-
-commit c11adaa12915abfee629bb6c026c21f2185b216e
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 17 10:24:46 2011 +0200
-
-    CHANGES: Win32: Avoid that compiling the header file <net-snmp/net-snmp-config.h> with the MinGW gcc compiler triggers warnings about "pragma comment".
-
-commit b17a72a793483aee4a5bb2f2e2c7f4fd869817e6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 17 10:22:20 2011 +0200
-
-    CHANGES: Win32: Avoid that the PACKAGE_* macros defined in <net-snmp/net-snmp-config.h> cause trouble when including this header in a package that uses the GNU autotools.
-
-commit 664d3ae107d754051b8c42279d459aa57a1be1c3
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 10 16:47:16 2011 +0200
-
-    MinGW, hw_fsys: Use proper format specifiers in a debug statement.
-    
-    This patch fixes an issue introduced in commit 76ff25d.
-
-commit 211dcb49306561e35ba3c213be7cfa257b40a8e5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 10 15:52:43 2011 +0200
-
-    Avoid that gcc 4.6 complains about set but not used variables
-
-commit 9f653f73e5aa70f0bef1174632e95594f87f669f
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 10 13:02:25 2011 +0200
-
-    CHANGES: snmptrapd_sql: Avoid that a linker error is triggered on systems where my_progname is missing in libmysqlclient (e.g. Fedora 15 and 16).
-
-commit 4c83b9229a7454f34f6ff75f69e67e4030c419b5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Oct 7 15:58:45 2011 +0200
-
-    CHANGES: snmplib: Set the rpath for libperl.so in libnetsnmpmibs.so such that the dynamic linker can find libperl.so without requiring the user to modify the dynamic linker settings.
-    
-    This change in agent/Makefile.in is necessary on the 5.5 branch and
-    later but not on the 5.4 branch. That is because the 5.4 branch uses
-    an older version of libtool that propagates the rpath of dependent
-    libraries. This is called inter-library dependency tracking in the
-    libtool manual. This functionality is present in libtool version 1
-    but not in libtool version 2. For more background information about
-    dynamic libraries and rpaths, see also the document with the title
-    "RpathIssue" on the Debian wiki (http://wiki.debian.org/RpathIssue).
-
-commit 8925c912d2639752a84bcffeef1b70a81026449b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Oct 7 14:21:28 2011 +0200
-
-    CHANGES: agent: HOST-RESOURCES-MIB: Add missing brace in a debug statement
-
-commit 76ff25d9bf97579e7213102065fd5096f049a4c5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Oct 7 14:13:18 2011 +0200
-
-    CHANGES: snmpd: HOST-RESOURCES-MIB::hrStorageTable: fix bug in handling large filesystems, where large means above 8 TB (= 2**31 * 4096 bytes).
-    
-    This patch fixes a bug introduced in commit
-    71d8293f387a6cd66bb0dbb13c0f50174d2e678b.
-    For the original bug report, see also
-    https://sourceforge.net/tracker/?func=detail&atid=112694&aid=3419825&group_id=12694.
-
-commit 866033db9904ffb1203f283f838092e4cf68de6b
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Oct 6 07:33:27 2011 +0200
-
-    CHANGES: snmpd: Remove spurious #endif that seems to be the result of a mismerge.
-
-commit 20f4f3267ee20d55705b7a43789879c103f96620
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Oct 6 00:08:59 2011 +0200
-
-    CHANGES: building: Add missing end comments to feature ifndefs.
-
-commit e5de2cc57bf304f3320cad0034d2ea2d8aedc436
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Oct 5 09:15:10 2011 +0200
-
-    CHANGES: agent: Log a more detailed error message if embedded perl initialization fails
-
-commit 5eef9990de28f63111e6c093be0f3c7ae2d513a1
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Oct 5 08:45:49 2011 +0200
-
-    CHANGES: perl: Add agent::uptime()
-
-commit 6810ed42f9bc560750d6dbfb7e50b6e2ac11899c
-Author: Bart Van Assche <bvanassche at 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 at 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 6591937adb85000c27069c4be84cf4688838ebcd
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Oct 2 16:18:03 2011 +0200
-
-    CHANGES: building: Add dependencies on @FEATURETARGS@ to make the subtarget work as well.
-
-commit b9c8012ec035bc084f175876fecc375195f9be81
-Author: Magnus Fromreide <magfr at 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 at lysator.liu.se>
-Date:   Sun Oct 2 15:44:36 2011 +0200
-
-    CHANGES: building: Remove the use of -L flags for internal libraries as it confuses libtool.
-
-commit 93dc1235a0db58ffd29617cff00dc11263780202
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Oct 2 11:31:46 2011 +0200
-
-    CHANGES: building: Make make apps work again
-    
-    apps include snmptrapd and that require the agent libraries as well.
-
-commit ba41488ed44cd23c25963d4fc56c476853b2ab59
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Oct 2 11:29:33 2011 +0200
-
-    CHANGES: building: When you say make libs you expect all the libs to be built.
-    
-    This is demonstrated by the snmptrapd target at the top level which obviously
-    expected both libs to be built and so failed to compile before this patch.
-
-commit 3057c73e093473be46254bcdfb4ca788e432d1b8
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Sep 30 07:32:52 2008 +0000
-
-    NEWS: building: PATCH: 2091156: correctly declare dependencies in Makefile.
-    'make -j <N>' should work now.
-    
-    Backport this to V5-4 as it is needed for correct operation in the single
-    threaded case of make miblib as well.
-
-commit 6eae340fa2a64086592982cc52735bc01487d978
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Oct 1 19:33:50 2011 +0200
-
-    CHANGES: building: Silence libbsd 0.3.0 nagging
-    
-    If you have libbsd 0.3.0 installed then their version of nlist.h warns and
-    tries to make you include bsd/nlist.h instead. The problem is that we don't
-    need that compatibility library as we know how to do it ourself so it becomes
-    pure nagging. This patch adds a define that changes the warning into an
-    error and then figures out that there is no usable nlist.h and ignores it
-    for the future.
-
-commit ac38cb531bee50edc8d4c834f3005f5992c771d8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 29 19:03:02 2011 +0200
-
-    CHANGES: perl: Enable sending SNMPv2 traps with an empty varbind list
-
-commit a75de2971527ac2d2e812024298602bb2412f337
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Sep 30 10:41:44 2011 +0200
-
-    perl/SNMP/SNMP.xs: Update emacs modeline
-
-commit 848f6300efe38492fb454451a030f0b7e6ff8c9d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Sep 30 10:41:44 2011 +0200
-
-    perl/SNMP/SNMP.xs: Update emacs modeline
-
-commit c1374473ecd8ec9e0310013861ee18c83e5d6c5b
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Sep 30 03:29:36 2011 +0200
-
-    CHANGES: testing: Protect the use of $OSTYPE to ensure that 'test' get enough parameters.
-
-commit 7e97a20633a57eae39d015b23339463c32f5f848
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 29 10:22:08 2011 +0200
-
-    CHANGES: testing: Convert snmplib/test_binary_array.c into two unit tests
-
-commit 9c0dd98176457342fffaa5e74d802e3145ed70e7
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 29 08:56:17 2011 +0200
-
-    CHANGES: testing: Add unit test for netsnmp_register_old_api()
-
-commit 5fd26e4fa3e000ea9c81c38ab975b7946efe2157
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Sep 28 17:49:55 2011 +0200
-
-    CHANGES: agent: Avoid that netsnmp_register_old_api() failure triggers a double free.
-    
-    Fixes a regression introduced via commit
-    aa4d47c2609e52818c9cdf1a8e2205de9a335a0a (svn r19515).
-
-commit d2252d016693807326f72b66123649dea00af916
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 29 10:20:08 2011 +0200
-
-    CHANGES: testing: Require a semicolon after OK(), OKF() and PLAN()
-    
-    Also, let OKF() emit a single line of output such that all output it
-    produces is visible in the output of "make test".
-
-commit 1421924b4852142192c5bb9e93ddbfed69e908fa
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Sep 21 22:20:08 2011 +0200
-
-    CHANGES: snmplib: Avoid waiting indefinitely if a session has timeout zero
-
-commit 5f27f4f74ae2bd5baf503cf306b4f9a2841a57cf
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:32:03 2011 +0200
-
-    CHANGES: MinGW: testing: Fix a race condition in the test runner
-
-commit 09703958cc5ea845929ae19ef9e0804aecaa512e
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 27 12:42:41 2011 +0200
-
-    CHANGES: testing: Avoid false negative for T114agentxagentxtrap_simple caused by the test result being present in the hex dump ("mostly_harmless")
-
-commit 439300279f6f31438638d2f222c24c3c841fa6ab
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 27 11:16:32 2011 +0200
-
-    CHANGES: building: Micro-optimize agent module dependency analysis
-    
-    This makes the agent module dependency analysis carried out by the
-    configure script slightly faster, especially on those systems where
-    fork() is expensive (Cygwin).
-
-commit bbc680004a1376038dfdc4172dbe7b9e311fba68
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Sep 26 10:14:45 2011 +0200
-
-    CHANGES: MinGW: testing: Make test T130snmpv1vacmget_simple pass
-
-commit 70b06cf789208eaa890bfbcd638bdb775f817054
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 20 09:50:57 2011 +0000
-
-    CHANGES: Windows: testing: perl: Fix an incorrect message printed while running the Perl module regression tests
-
-commit 70bcc8de2d0fc92bbb8481823630fab9bc87af75
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Sep 16 16:14:24 2011 +0200
-
-    CHANGES: MinGW: testing: Obtain the MSYS path from the environment
-
-commit 626275e2d1acafae7144a33ed301a40f596b37b0
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Sep 14 13:14:17 2011 +0200
-
-    CHANGES: Windows: Remove superfluous link libraries from project files (*.dsp)
-
-commit 38fc3caa9eeb3800254b4f6ad6f8f4764c0f83db
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 20 09:34:08 2011 +0200
-
-    CHANGES: snmplib: Make netsnmp_callback_accept() return -1 (failure) instead of 0 (STDIN_FILENO)
-
-commit 6c8c7e8aca8fc2eeb52010ae3e9fee6dd83ef780
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 13 09:58:26 2011 +0200
-
-    CHANGES: snmplib: Remove obsolete snmp_get_fd_for_session() declaration
-
-commit 0860d11fd8fc5dbdaaae2261fae2c07fb9c2c82d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 8 13:54:55 2011 +0200
-
-    CHANGES: Windows: MSVC: Avoid that the typedefs in <net-snmp/net-snmp-config.h> conflict with those in <stdint.h> from the msinttypes project
-
-commit f8a036f63ff68f083436120e0abd478b692a2f61
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 8 13:21:06 2011 +0200
-
-    CHANGES: Windows: MSVC: When linking with OpenSSL, link with user32.lib too
-
-commit 836a23e10ca810c3899902d32587616a9d1203df
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Jul 14 18:38:13 2011 +0200
-
-    CHANGES: Windows: MSVC: Link with proper libeay32 library
-
-commit 7b07fd6cdef49ec7bb04b166e2a4fbb37b582840
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 11:10:38 2011 +0200
-
-    CHANGES: testing: Remove an incorrect comment from simple_eval_tools.sh
-
-commit 98f6d29d981ff8e607600c63dadb240535629807
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:49:03 2011 +0200
-
-    CHANGES: testing: Make ISDEFINED() check for an exact match instead of a prefix match
-
-commit 52cd0031a31f692f13263a94c335d06be1454803
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:12:59 2011 +0200
-
-    CHANGES: MinGW: testing: Make those regression tests pass for which SNMPCONFPATH and/or SNMP_PERSISTENT_DIR matter
-
-commit f5cd89bd3356dd74e1556c0b50966a643f192085
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:12:59 2011 +0200
-
-    CHANGES: MinGW: testing: Fix a race condition in the test framework
-
-commit deedd52c834a6448852a06785536e13865969694
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:12:58 2011 +0200
-
-    CHANGES: MinGW: Support the directory structure of recent Shining Light OpenSSL binary distributions
-
-commit d55bd4e0549f03b6fd32562c2aa7fe39272a9ef7
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Sep 28 06:55:19 2011 -0700
-
-    remove the v5.7 from the frozen list
-
-commit ac2aed3c94bb2ebb473af0a1e20f0561ad629956
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Sep 28 06:55:11 2011 -0700
-
-    remove the v5.7 from the frozen list
-
-commit 46eac02e9a27bf4f3068e795cab891f05a848870
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Sep 26 21:49:27 2011 +0200
-
-    CHANGES: snmpd: Avoid that snmpd crashes if started on a system with another OpenSSL library version than the one it has been built with.
-	
-----------------------------------------------------------------------
-
-Changes: V5.7.1 -> V5.7.2.pre2
-
-commit 810185ae0b0cd2ad4d424a1ba775ef5ceaf50f03
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Jun 2 09:24:19 2012 -0700
-
-    make depend for 5.7.2.pre1
-
-commit 6271471e01282f3675724eaf1358ceb0e95ddd4e
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Jun 2 08:32:40 2012 -0700
-
-    Version number update: 5.7.2.pre1
-
-commit fcb782aa8893134c7414a926d9268594f725b915
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Sat Jun 2 08:32:18 2012 -0700
-
-    version update for 5.7.2.pre1
-
-commit e3bcd87c72fcea7706e868b5ace75296093f7497
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 14:09:42 2012 +0100
-
-    Fix dist/release format
-
-commit d813ce2eeefc68229cfcaf20603244cdd6d09d3c
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 14:07:52 2012 +0100
-
-    Fix dist/release format
-
-commit fa7bd581e3783685db39c9b4eaf847be5ac86fd3
-Author: Dave Shield <D.T.Shield at 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 at liverpool.ac.uk>
-Date:   Thu May 31 13:51:45 2012 +0100
-
-    version update for 5.6.2.rc2
-
-commit d9a15445aa74f5316bfc711c1558467872c2958c
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:50:12 2012 +0100
-
-    make depend for 5.6.2.rc2
-
-commit bcabd2c9542dbebd1d319b4494413bdcca06614e
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:38:38 2012 +0100
-
-    Release Candidate for V5-6-patches
-
-commit b473898c0c5ac9eb47c7c05a3f745e4ff2a76aaa
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:38:28 2012 +0100
-
-    Version number update: 5.6.2.rc2
-
-commit 131429e7062fbaa65b82affed1fb92df2c0cc813
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:38:38 2012 +0100
-
-    Release Candidate for V5-6-patches
-
-commit 1c8110b33b8105ca6190945a35fe7ae903252d68
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:21:38 2012 +0100
-
-    Avoid perl versioning problems when setting up the build environment
-
-commit 508ece16e6f6f49562da204792ae0644269994d1
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 13:20:58 2012 +0100
-
-    Fix handling of dist/release merge
-
-commit 5b8a8547b1a47d2f5b207f48f2496e4241d902c6
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 11:10:48 2012 +0100
-
-    version update for 5.5.2.rc2
-
-commit 6c32914bf28d695df349dca269e488b501700316
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 11:07:22 2012 +0100
-
-    version update for 5.5.2.rc2
-
-commit 9f5a82a5afdbb3daeb2fd437a309f0b8d357cf4b
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu May 31 11:05:39 2012 +0100
-
-    make depend for 5.5.2.rc2
-
-commit 39203f29477a3bedf012d41135d8abd6bcad08b1
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 at liverpool.ac.uk>
-Date:   Thu May 31 10:46:11 2012 +0100
-
-    Release Candidate for V5-5-patches
-
-commit ccf8ff2c4db60122d41302e4aeb700e0b868105f
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 at users.sourceforge.net>
-Date:   Sun May 27 13:56:01 2012 +0200
-
-    Fix missing include. Fixes SIGSEGV on FreeBSD9 x64
-
-commit 5805878749c08062debf0a9d798d08fb916caa2d
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun May 27 06:23:19 2012 +0200
-
-    CHANGES: snmpd: Add missing debug tag
-
-commit d1a42bbcc7b14730c9a6d99c4f047097843a549b
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri May 25 09:02:27 2012 +0200
-
-    CHANGES: building: Run libtool --mode=finish on the right directory
-
-commit 1fbf33711a19eac9739ad23f6f6251eacc41f1c4
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue May 22 14:54:45 2012 +0100
-
-    CHANGES: Linux: PATCH: 3525998: Don't use an uninitialised value in error message
-
-commit 32c1686b67dc85c4a189576363065609dfed5e61
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue May 22 14:52:56 2012 +0100
-
-    Attempt to mark release-candidate branches as such.
-    Omit final-release-only steps when preparing preN/rcN releases
-    (Relies on a tweak to the Makerelease perl modules)
-
-commit 4c5633f1603e4bd03ed05c37d782ec8911759c47
-Author: Robert Story <rstory at freesnmp.com>
-Date:   Mon May 14 11:40:06 2012 -0400
-
-    NEWS: snmp: BUG: 3526549: CVE-2012-2141 Array index error leading to crash
-
-commit 65dd83c2255ee58edbf0e25863e55b58a4113679
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 at liverpool.ac.uk>
-Date:   Mon May 7 19:56:33 2012 +0100
-
-    Mark version-specific changes _before_ pushing to central repository
-
-commit 7241accd70b82d0fcd44d5a5238b2ee9445900db
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:53:17 2012 +0100
-
-    version update for 5.5.2.rc1
-
-commit 7c796a15a1d1bb85feea940bd4e3516877920919
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:50:49 2012 +0100
-
-    version update for 5.5.2.rc1
-
-commit 07e268bfb64b0ec645b3f7e87266984f9217cf12
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:44:37 2012 +0100
-
-    make depend for 5.5.2.rc1
-
-commit 16eaaf6c3ba14596ca9efaf4b114f1b709f42b68
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:29:03 2012 +0100
-
-    documentation update for 5.5.2.rc1
-
-commit c729469ef12154930cf9d15967e16186fb445f30
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon May 7 17:27:20 2012 +0100
-
-    Version number update: 5.5.2.rc1
-
-commit 142571d3cea08f0c072d24c1d39a43c7446f8ce7
-Author: Dave Shield <D.T.Shield at 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 eba86b6f7aff261ee0e61334df70de7156e5c3cb
-Author: Dave Shield <D.T.Shield at 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 at users.sourceforge.net>
-Date:   Mon Apr 23 22:25:15 2012 +0200
-
-    Only output cpu warnings once.
-
-commit ee58e4827b9fa16e6635ca003e8a4f11dcb5fb7a
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Apr 23 22:17:42 2012 +0200
-
-    Fix speling in errormessage.
-
-commit 03f485df22f20e149cfae94c57cb82feecb5d74b
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Apr 23 22:12:11 2012 +0200
-
-    Not all Linuxes use rpm (debian/ubuntu comes to mind)
-
-commit 930838224f781696bd35225f22569347416f1b16
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Apr 23 22:10:15 2012 +0200
-
-    Check need for -lm to use round/exp
-
-commit a0609cf1f3a6917d263725732248cd937a45ad94
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Apr 7 08:40:44 2012 +0200
-
-    Remove limitation on configuration line length.
-
-commit 305973338a63ae54c5e02a8626fbe9a8064dcb7e
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Apr 7 00:32:19 2012 +0200
-
-    Reduce variable scopes.
-
-commit ccab4e9d3ed424c39d0dc27be63fa76c7461ea81
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Apr 7 00:15:22 2012 +0200
-
-    Internalize the name and line number of the curret configuration file
-
-commit cf874ad7b9daf4fcc0d46cdd034474b478005341
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Apr 6 21:47:28 2012 +0200
-
-    Replace #if (A) B #else B #endif with B.
-
-commit ef9ea641bc290eec50685b60519b31bee8b14a69
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 9 21:04:06 2012 +0100
-
-    version update for 5.6.2.pre2
-
-commit 35aba1959de119f1fb89203c37109aa6f0e21c57
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 9 21:00:40 2012 +0100
-
-    version update for 5.6.2.pre2
-
-commit e41fbaff18ac9095cf4a739a06ec39a1a6ccfdc1
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 9 20:35:35 2012 +0100
-
-    Version number update: 5.6.2.pre2
-
-commit 137fe582d6cc5611430dab46ef144efd84cfc803
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Fri Apr 6 20:46:56 2012 +0100
-
-    Revert commit 1f4a829b18275e4956ca91e5ec370df015f06133
-    (snmp_store_needed() API is not available in 5.[45].x)
-
-commit 2b7e64288c01a8a062026c521ca31a5e885f30cc
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 2 16:12:12 2012 +0100
-
-    FreeBSD-9: Fix for 'const'ifyed nlist arguments
-    Backport of ed65eca6e7f9cfa7380a78d56c01ed314745b169 from V5-6-patches
-
-commit 7e95d80b698051259645c074a53ffd264a6fa916
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 2 16:06:56 2012 +0100
-
-    FreeBSD-9: Fix for 'const'ifyed nlist arguments
-    Backport of ed65eca6e7f9cfa7380a78d56c01ed314745b169 from V5-6-patches
-
-commit 1a9b7b7c02e2deefe994d595a7cc1dd2ffbeee1d
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 a79141a419953d010a6989e8b88f4df127394d38
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Apr 2 09:19:26 2012 +0100
-
-    Header fiddling for FreeBSD,OpenBSD,Dragonfly
-    Backport of f7b0de1518002c6e8f9b94ef3deb8882e1e9338e from V5-7-patches
-
-commit adf74bf753d3970357afd633803256241d9c7b87
-Author: Dave Shield <D.T.Shield at 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
-
-commit d9555acb9f47c3aa8fde4bc20a44d7ca6181a8a9
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sun Mar 25 18:48:12 2012 +0000
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Avoid dangling pointers (based on patch 3503259)
-
-commit 82a8b47ee96e5d29a2b7ac3ca00722d737d5b479
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Thu Mar 29 22:31:56 2012 +0200
-
-    Running autoheader / autoconf
-
-commit 9ca8d939ab393306a1d0f146c9cb70ea0cb19d49
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Thu Mar 29 22:30:38 2012 +0200
-
-    Running autoheader / autoconf
-
-commit cecd4869deb68f3d4c71e768d5b40dd576446925
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Thu Mar 29 22:29:31 2012 +0200
-
-    Running autoheader / autoconf
-
-commit a1a4513bd3e4e614200f6db5a02f61d6c8eefb32
-Author: Dave Shield <D.T.Shield at 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 at liverpool.ac.uk>
-Date:   Wed Mar 28 09:30:49 2012 +0100
-
-    Doxygen-style documentation fixes (back-port of GIT commit c09903a42e9d97331fd9e48ee831a85afdf9c70a)
-
-commit 1f4a829b18275e4956ca91e5ec370df015f06133
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Mar 27 21:41:24 2012 +0100
-
-    CHANGES: snmpd: PATCHES: 3495697: Store persistent snmpTarget table changes
-
-commit 1f75f377d0db01754c0c161dc44373081beef520
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Mar 27 21:14:06 2012 +0100
-
-    CHANGES: FreeBSD: PATCHES: 3489387: Install FreeBSD 10 header file (plus other missing versions)
-
-commit 3d72c9e78f2ad817c9d1d82977327bbb20d63ab9
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Mar 27 21:06:31 2012 +0100
-
-    CHANGES: snmpd: PATCH: 3487867: Don't skip missing ifXTable entries (ifConnectorPresent FALSE)
-
-commit 12906578ab30cf776d080c0ef3025b30334d7655
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 16:17:45 2012 +0200
-
-    DISMAN-PING-MIB: Fix even more memory leaks
-
-commit ccfd5ca6fe10313d6181d24bbb1797825a97da10
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 15:51:16 2012 +0200
-
-    DISMAN-PING-MIB: Eliminate duplicate code
-
-commit 9fda2668722f08ddbfdd67a2239d8b021db64a83
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 15:48:46 2012 +0200
-
-    DISMAN-PING-MIB: Write a loop as a loop
-
-commit cbc18eb763ba6df69ef70668a54d75bf35e79503
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 15:24:08 2012 +0200
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Fix more memory leaks
-
-commit c7725192478aec018fb4aefa60946e04a406c00c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 13:43:24 2012 +0200
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Avoid reading freed memory when deleting a row from a table
-
-commit a6be739566f310d7441fd7f54989e39446f7a143
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 26 13:42:28 2012 +0200
-
-    Extend DISMAN-PING-MIB test
-
-commit 8a9b57291453cb8aec28e766c594701ed19c4fc6
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Mar 26 21:03:41 2012 +0200
-
-    Fix for DragonFly 3
-
-commit e5c9a32f79eac2e85527c9cf05087cdae9b35a6c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Mar 26 20:59:53 2012 +0200
-
-    DragonFly needs _KERNEL_STRUCTURES to compile ipv6 code
-
-commit cd43bc09a39bd97ff5e719a2ce232ce424600a65
-Author: David Imhoff <dimhoff at 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 at users.sourceforge.net>
-Date:   Sat Mar 24 15:21:38 2012 +0100
-
-    Fix TCP state values for DragonFly
-
-commit 432fe3ddf54f2c98f936959469cb9b014d599f06
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Sat Mar 24 15:10:52 2012 +0100
-
-    Require perl to do pass_persist test
-
-commit 37d2770cf50c98023eeba90e25d372bff7316ada
-Author: Niels Baggesen <nba at user.sourceforge.net>
-Date:   Sat Mar 24 15:06:40 2012 +0100
-
-    Fix TCP state values for DragonFly
-
-commit 86a948d8691e881d55591dcabddc2739ce72b30e
-Author: Niels Baggesen <nba at nba-linux.sb.statsbiblioteket.dk>
-Date:   Sat Mar 24 15:01:37 2012 +0100
-
-    Properly find pass helpers for testing.
-
-commit fe26a3c4f29f046bf65ed52e9d94054b675fbc4b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Mar 22 09:04:42 2012 +0100
-
-    DISMAN-PING-MIB: Limit source code lines to 80 columns
-
-commit 745bafcdcc9c8e84616d4e274db2a384bf234da2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Mar 22 08:55:05 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Make ping implementation independent of ntpd clock jumps
-
-commit da6925e6763cadbe02f4a8bbfe68a362e535ad5e
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 10:38:36 2012 +0100
-
-    CHANGES: testing: Add testing/fulltests/default/T154dismanpingmib_simple
-
-commit fa606dd7ca6aff9308d4e8b01bbcde148f441271
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 16:49:21 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Make pinging local interface addresses work
-
-commit 617a83ba799575c84c66f6b1c480ef633161a64c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 16:28:46 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Fix a socket leak triggered by pinging a remote host
-
-commit 625f55c272ec6281e38d8e30eb53fd51516b00ae
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Mar 22 09:54:55 2012 +0100
-
-    DISMAN-PING-MIB: Convert a dynamically allocated variable into a stack variable
-
-commit b48f19ad4b4aa68c3e16e2a72df37b9c0cd36c4a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 16:24:07 2012 +0100
-
-    DISMAN-PING-MIB: Add more debugging statements
-
-commit d74cb3966175892562f5e3a9b1683acba2c22e07
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 11:45:18 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Fix several memory leaks
-
-commit 0b1a77674678cc9a15be3e7700d3cef650ed02c7
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 12:00:30 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Do not send the contents of the stack over the network
-
-commit 139023cd3ab51631cc10e2866d71abcf99ae4c1b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Mar 21 08:56:07 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Don't call exit() upon memory allocation failure
-
-commit 169b6aaa7b61827cc1ad0b3aeeae3a7229dd25d8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Mar 21 08:53:26 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Fix IPv6 socket leak in error paths
-
-commit a0be32ad053a71fa96134d55e542bb07d4f0297d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Mar 20 11:43:46 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Avoid that host name resolution failure causes a crash
-
-commit bf9bff64556787d766ee2ef2d578afb920719f3a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Mar 21 08:51:55 2012 +0100
-
-    CHANGES: snmpd: DISMAN-PING-MIB: Convert printf() statements into snmp_log() and DEBUGMSG()-statements.
-
-commit 5d74c01245523a9d8db1eda27d1efae2ebc104fb
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:40:02 2012 +0100
-
-    New MIB: VRRPV3-MIB
-
-commit 5b38f062b99b6ef36708e2c7de4965a3192612e9
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:34:48 2012 +0100
-
-    For safety, sizeof the right variable in memcpy
-
-commit e5f82782da05efa7c0e6dc2bf5a41ee11868f469
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:33:21 2012 +0100
-
-    Fix for hrSWRun data for FreeBSD
-
-commit 8327565e823270d10a4504568edbe5b5ae323a55
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:31:54 2012 +0100
-
-    Clean up variables for OpenBSD/NetBSD
-
-commit 170f6f027bf4f9174b7073530da4d07f400bba58
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:28:58 2012 +0100
-
-    Move declarations in front of statements
-
-commit dbb4573b69fae85cdc931b2892b5ce4e5b16b321
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Mar 21 18:23:36 2012 +0100
-
-    Require kernel_netbsd for NetBSD6
-
-commit f11681f15aad7d9a52fa29812ecbb507f1b7fe24
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Wed Mar 21 12:36:38 2012 +0000
-
-    Check for old tarballs (and unpacked distributions) before starting.
-    These can confuse steps such as "make dependcheck", that do a 'find'
-    on the current tree, and would descend into such unpacked source trees.
-
-commit 470dcd4b6c3ff11ff0a3532a7340a56cffd69098
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Wed Mar 21 12:32:13 2012 +0000
-
-    Don't run "make docs; make mancp" if there's no Makefile present
-
-commit c9ac420343e16df2b7065f5bf2790df44e247fba
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Mar 20 10:26:10 2012 +0000
-
-    Allow distribution as part of normal Net-SNMP packages.
-
-commit 5999f60c57723f23f3c254af57fdb10af301a8eb
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Mar 18 19:03:08 2012 +0100
-
-    Regenerate
-
-commit 275d204036a607e3df50e8447d4bc755e9db02fd
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Aug 28 21:29:03 2011 +0200
-
-    CHANGES: building: Make it possible to use --disable-applications/--disable-agent together with --enable-minimalist
-
-commit bdccc875710295aacf50f71eb1c1d2ee97f336fe
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Mar 16 20:10:58 2012 +0100
-
-    Do not declare the local variables for opaque_special_types unless that option is set.
-
-commit b80a67da052adca1b5a644db83a782e15c2237c3
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Mar 16 19:50:03 2012 +0100
-
-    Check that the data exist before trying to read it
-
-commit efae86bba5962491d42b77b935191a3eb25dd939
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Wed Mar 14 01:05:33 2012 +0100
-
-    Partially revert "Merge remote branch 'origin/V5-7-patches' into V5-7-patches"
-    
-    Commit d35a1860217e723e4f866dd98ef6621665934c4a accidentally reverted
-    
-    4a2e5bcd56cd2afb36eb15d754e2fee888dd50c0 (hrh_storage is a proper replacement for hr_storage)
-    0dd1e54557d1ba498b55d017b0a93e8ccf9bd522 (CHANGES: snmpd: UDP-MIB: Report the proper address in udpLocalAddress)
-    5116d48378ecf03e722f3010ad47bf22a3fbcb8c (Reduce scope of prefix_val such that the compiler doesn't warn about an unsed variable)
-    10f566f4d4cbb3e205023c23669289e4bfd089cb (perl/SNMP/SNMP.xs: Fix a compiler warning)
-    
-    and part of
-    
-    6e74d64f85a59d50e461db4c34ac76f9de468bfb (Avoid using grep options -q and -w because grep in Solaris)
-    
-    This reverts those reverts.
-
-commit aaedd59cc2da701527dc2d261d4e9f85f16e7504
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Mar 11 20:57:38 2012 +0100
-
-    Allow make test where the source path contains the string Net-SNMP to succeed.
-
-commit 4b94d796918a4eeae68ab21aa53d444a8b5c2921
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Mar 9 08:04:59 2012 +0100
-
-    Unbreak compilation on FreeBSD 4
-
-commit 10fe6b83324ad37d18b937cc8c6de94de534d035
-Author: Dave Shield <D.T.Shield at 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 at 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 at liverpool.ac.uk>
-Date:   Thu Mar 8 12:33:03 2012 +0000
-
-    make depend for 5.6.2.pre1
-
-commit 0ef34e6519dfcb82c97df8427547c08dcf81e69a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Mar 8 10:11:30 2012 +0100
-
-    CHANGES: snmpd: Fixed snmpd '-d' option.
-    
-    Now it dumps packets again.
-
-commit 8e69742f143e4fc11196e5b2ed66c8f7f53fd02f
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 at 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 at users.sourceforge.net>
-Date:   Mon Mar 5 20:56:40 2012 +0100
-
-    More fixes for Solaris sh
-
-commit 0dd1e54557d1ba498b55d017b0a93e8ccf9bd522
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 15:08:26 2012 +0100
-
-    CHANGES: snmpd: UDP-MIB: Report the proper address in udpLocalAddress instead of 0.0.0.0. Makes test T160snmpnetstat pass again. Fixes a bug introduced in commit c76fb96f65e33ba2fd212a921e8c386155ee5c7a.
-
-commit 518917e9f39f7a9d3c3bf3a865e8ac0e3026d600
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 14:04:54 2012 +0100
-
-    snmplib/snmpUDPDomain.c: Fix source code indentation
-
-commit 2651909ccceabfcfadaf942c02450e28fe837dc9
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Tue Nov 9 12:04:04 2010 +0000
-
-    Passes now on MinGW too.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19653 06827809-a52a-0410-b366-d66718629ded
-
-commit e41f115e40304c941ba17d67e24710722d90741b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 13:39:17 2012 +0100
-
-    testing/fulltests/support/simple_eval_tools.sh: Avoid using grep options -w and -q because grep in Solaris' default path doesn't understand these.
-
-commit 5116d48378ecf03e722f3010ad47bf22a3fbcb8c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 10:47:20 2012 +0100
-
-    agent/mibgroup/ip-mib/data_access/ipaddress_linux.c: Reduce scope of prefix_val such that the compiler doesn't warn about an unsed variable if it isn't needed.
-
-commit 6e74d64f85a59d50e461db4c34ac76f9de468bfb
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 09:22:31 2012 +0100
-
-    testing/eval_tools.sh: Avoid using grep options -q and -w because grep in Solaris' default path doesn't understand these options.
-
-commit 10f566f4d4cbb3e205023c23669289e4bfd089cb
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Mar 5 10:47:39 2012 +0100
-
-    perl/SNMP/SNMP.xs: Fix a compiler warning
-
-commit 44aa265891cd563f7f4114ef25dcf7aaf3b14e9a
-Author: Dave Shield <D.T.Shield at 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 dae4e16be86117861f63d1a2f981ad361418f5c6
-Author: Dave Shield <D.T.Shield at 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 28f6226f2e228b8ca248489735f86502b2cce0a1
-Author: Dave Shield <D.T.Shield at 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 40022a697958259ccfbb3fed44eb3c472f5e837e
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Sun Mar 4 10:37:41 2012 +0100
-
-    Solaris sh does not understand "test -e"
-
-commit 773af0c42e077bebdaecf1c0caf393285a7688f1
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Sat Mar 3 17:19:30 2012 +0100
-
-    Clean up nsrollup complications
-
-commit ee71049c3e21c1d0e3424297136652bbe0e39d85
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Sat Mar 3 16:49:41 2012 +0100
-
-    mibgroup/icmp.c: adjust ifdefs to make it compile on BSD's
-
-commit ce9600361e665dde17af9d8ab16d7ce85dc05643
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:39:55 2012 +0100
-
-    dot3StatsTable has bugs :-(
-
-commit dffacf6fa0755e1700cbac25b844185abd807a0a
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:38:10 2012 +0100
-
-    passpersist test needs /usr/bin/perl
-
-commit 8726995c7a8aef674c4f164b1871c37bbdcdad50
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:36:58 2012 +0100
-
-    grep -w fails with OpenBSD and Solaris 10-64
-
-commit 1eb4745b23cc3a839864e7f6ea28355b0566eb67
-Author: Niels Baggesen <nba at 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 at 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 78369002be2711f0aa876b64a4e10b090cc241cd
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:33:31 2012 +0100
-
-    Not all make versions define $(RM)
-
-commit 94245b29a3cda89475c6eab5d9493c6657ff38e3
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:24:24 2012 +0100
-
-    Make autoconf 2.68 happy
-
-commit 44acd6c285fb5614b4c9611b1abdeca9dd28e4bb
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Mar 2 21:12:47 2012 +0100
-
-    Fix spelling of mib module fsys_getfsstats
-
-commit 1fa1fee3693f67b820223806b3d73afd4c50ec18
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Mar 2 01:37:20 2012 +0100
-
-    Silence a clang warning.
-
-commit 93263b98a5db344cf2c4d489c43971e7b29cdb03
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 13:37:20 2012 +0000
-
-    version update for 5.5.2.pre1
-
-commit 5a175428b973d2ea8553e29fecf94cf1566aa858
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 11:48:18 2012 +0000
-
-    version update for 5.5.2.pre1
-
-commit 364276a1c5aa66caa23eb5b7f111fdeb5af71fa7
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 11:45:10 2012 +0000
-
-    make depend for 5.5.2.pre1
-
-commit 73598340172eff75729a6d57192b8171d5bbf00e
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 10:42:56 2012 +0000
-
-    Version number update: 5.5.2.pre1
-
-commit f3214402672ca199fd531e66122bf96c4d9a4eb7
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Mar 1 10:42:39 2012 +0000
-
-    version update for 5.5.2.pre1
-
-commit 2e74acb6f19e4729cede0ab43e931961cb23aaea
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Mar 1 09:18:39 2012 +0100
-
-    CHANGES: Bug 3152841: Do not install the util_funcs subheaders that were removed in 5.7
-
-commit b7109646b95a70713d1ad991d41bccd57c0bb3eb
-Author: Magnus Fromreide <magfr at 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 at lysator.liu.se>
-Date:   Sat Feb 25 10:13:15 2012 +0100
-
-    Correct typos
-
-commit 6a6c9bbc7584f196a1185cc1935204f1206811ed
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Wed Feb 29 08:55:35 2012 +0100
-
-    CHANGES: Bug 3152841: Install util_funcs subheaders
-
-commit d515e2a6e4c2a1c4d84734cc7b2d0b2fc5a894ad
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 15:56:21 2012 +0000
-
-    CHANGES: snmpd: PATCHES: 3487919: Fix compilation when caching is disabled
-
-commit af8368ed8898a78d0868b47af46bc9db07d1c764
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 15:50:56 2012 +0000
-
-    CHANGES: snmplib: PATCHES: 3414773: Encode integer value using ASN_INTEGER
-
-commit 19e2715807fe06fd0baedf88165011aee933e755
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 14:05:34 2012 +0000
-
-    CHANGES: man: BUGS: 3490708: Clarify use of common command-line options
-
-commit 65f7962f932c9b75c5bbbb047d1e26ae60978e53
-Author: Dave Shield <D.T.Shield at 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 at 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 at 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 034f1c572f683ea428583074471e5d5d13b51837
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 10:22:20 2012 +0000
-
-    Skip SET-based tests when configured using --enable-read-only
-
-commit 36423e210bfb65ef121c6a66aec438c7c237d3df
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 10:03:25 2012 +0000
-
-    CHANGES: BUG: 3454168: configure: Fix building with --enable-read-only
-
-commit eed0bcbc43fea18259f0f63b2081b6d10535a052
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Feb 28 09:27:11 2012 +0000
-
-    Skip SET-based baby-steps when compiled with --disable-set-support.
-    Inspired by bug #3454168
-
-commit ec6a23030e5a2072c19c18c1d9c124387da56b7b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 27 18:42:58 2012 +0000
-
-    Add -lrt to NETSNMPLIBS such that clock_gettime() can be found
-
-commit f13320500294bb240f63c6dd7d2e9a2208eb740d
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Feb 27 16:52:51 2012 +0000
-
-    Skip SET-based tests when compiled using --disable-set-support
-
-commit c4276b6232c29145c039884e6b5a6b6da4b93837
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Feb 27 15:54:45 2012 +0000
-
-    Omit SET-related code when compiling with --disable-set-support (inspired by patch #3424930)
-
-commit 01c930edcc25700d6b5fb0376f55a26425e13fb0
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Mon Feb 27 15:17:22 2012 +0000
-
-    Omit SET-related code when compiling with --disable-set-support
-    (inspired by patch #3424930)
-
-commit 9484d83203c4e2d820416be665fa833aa70444d2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Feb 24 14:00:32 2012 +0100
-
-    Rework commit b4a19505a05816e94e01de97bf99ac37fcdc6d23.
-
-commit 2b7f13495228635d816e58b2174dc124dd0cf39f
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Fri Feb 24 07:43:22 2012 -0800
-
-    set MERGE_AUTOEDIT before merging to avoid the future git 1.7.10 forced msg
-
-commit e1b910b0be9343586ae9edba6f46040af315fcdd
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 23 10:27:54 2012 +0100
-
-    CHANGES: snmpd: init_agent() + init_kmem(): Return an error value instead of invoking exit() if access to kernel virtual memory is denied
-
-commit 463eed2120f9d191bc22673496a49e8174664e4b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 23 10:03:31 2012 +0100
-
-    Remove obsolete symbol NETSNMP_EXIT_ON_BAD_KLREAD
-
-commit c36ab71a4e096f16cc5a55533f080c9a94009914
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 23 08:53:56 2012 +0100
-
-    CHANGES: FreeBSD: snmpd + apps: Sending UDP packets works again for non-root users
-
-commit edebddba930f8b1472fa0bd20fc413ef8cf464a2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Feb 21 11:31:46 2012 +0100
-
-    testing/RUNTESTS: Fix a bashism
-
-commit b4a19505a05816e94e01de97bf99ac37fcdc6d23
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 20 16:58:47 2012 +0100
-
-    Fix compiler warnings about %ld versus time_t on systems where time_t is a synonym for long long instead of long.
-
-commit d8978ecc8211be7c1e7905f1e215bb06ded266b6
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Mon Feb 20 17:07:13 2012 +0100
-
-    IF-MIB: do not trigger undefined behavior (>> 32 of a 32-bit variable) when updating a counter and ifi_ipackets is a 32-bit variable
-
-commit c3fb6dd9e6b99e9542493188987871fc5017cb3c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 23 09:45:45 2012 +0100
-
-    Fix a compiler warning on systems where mode_t is unsigned
-
-commit f8a3ef0d3d4e530279900101049b8de98a44a6fb
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 14:48:52 2012 +0100
-
-    CHANGES: snmplib + snmpd + snmpwalk: Avoid that system clock changes (e.g. by ntpd) affect code that needs relative time
-    CHANGES: snmpd: Make sure that the range of the SNMPv3 variable snmpEngineTime is 0..2147483647 on all supported systems instead of 0..42949672 on some systems (i.e. wraparound after 497 days)
-    CHANGES: snmplib: Add netsnmp_get_monotonic_clock(), netsnmp_set_monotonic_marker(), netsnmp_ready_monotonic(), netsnmp_get_agent_runtime()
-    CHANGES: snmplib: Deprecate atime_diff(), atime_newMarker(), atime_ready(), atime_setMarker(), marker_tticks(), netsnmp_marker_uptime(), netsnmp_timeval_uptime(), timeval_tticks(), uatime_diff(), uatime_hdiff() and uatime_ready().
-    CHANGES: snmplib: Change the names of the struct timeval members of data structures that were used to store a wall clock time but that do now contain a monotonic clock value
-
-commit c19760f3333c92fac5d50e9768cdf939218bc487
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Feb 15 09:45:03 2012 +0100
-
-    snmplib/snmpv3.c: Fix source code indentation
-
-commit a6db239945e195de5a90fa183700b27a6ecb28d3
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Tue Feb 7 00:11:14 2012 +0100
-
-    Fix possible memory leak from recent declarations patch
-
-commit 0fbbb9a9e2906a7af956957061d485874462aea9
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Feb 6 20:43:04 2012 +0100
-
-    Do not mix declarations and statements
-
-commit f308d5bafb05d78ed4030c4ecff324b6cbda680f
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 15:25:30 2012 +0100
-
-    Fix two compiler warnings in agent/mibgroup/disman/ping/pingCtlTable.c
-
-commit 46f0fc1b7fc26a225763bc65cca520a1c59f0251
-Author: Niels Baggesen <nba at 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 at users.sourceforge.net>
-Date:   Mon Feb 6 16:48:09 2012 +0100
-
-    CHANGES: added OCFS2 (Oracle Cluster FS) to hrStorageTable and hrFSTable
-
-commit fafc99cd89e73ec7e00bf7360d0b4fa61944a4f4
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 11:18:34 2012 +0100
-
-    Simplify calculate_time_diff() and calculate_sectime_diff()
-
-commit 7af2013de8bf1b379c076db4e104508e17874d3e
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 14:55:58 2012 +0100
-
-    Fix order of feature #ifndef and Doxygen comment block
-
-commit bbd67f63530f5ef0bfc948fc58dfe6a93f8f8679
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Mon Feb 6 14:47:54 2012 +0100
-
-    Rename two function arguments
-
-commit 3fe72b3b99b7e4b2b982363dfc4f2d8d13f40592
-Author: Bart Van Assche <bvanassche at 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 at 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 at 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 at acm.org>
-Date:   Mon Feb 6 14:51:33 2012 +0100
-
-    Fix spelling in a source code comment
-
-commit 910d7b0d99183609b9529b04c3f29330eb661021
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 14:38:12 2012 +0100
-
-    Replace netsnmp_timeval_uptime() by netsnmp_get_agent_uptime()
-
-commit 43a83f6c6a96cc2316b70eecacf127eb6913c7a7
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Feb 6 11:19:15 2012 +0100
-
-    Use the assignment operator instead of memcpy() for copying struct timeval
-
-commit 2fe579efb1cb3a74f82803ca323928f6b8e4b5c0
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Feb 3 14:04:02 2012 +0100
-
-    Make agent/mibgroup/mibII/icmp.c build again on non-Linux systems.
-    
-    See also commit 345a1e4254812cb9edc1d274491b76681a9dba1e.
-
-commit 881de6ab7355277a5c116a008fbe513293b05039
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Feb 3 10:08:21 2012 +0100
-
-    Fix compiler warnings triggered by the Rmon MIB implementation
-
-commit 4629933c0d3b3f9f4ba583534f79a37fb9633817
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 20:05:31 2012 +0000
-
-    More compiler warning fixes
-
-commit e9b5a3dee6f9afab8b90a29392040632b075ad7a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 16:56:55 2012 +0100
-
-    Use SNMP_MIN() instead of min()
-
-commit ae452c77b411139d6b5800ffcf88d48e9b4792a8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 15:23:38 2012 +0100
-
-    Restore commit dbb8795a7df595f0603f2ec61704799f4c482667.
-
-commit c7d11fa00f9995ddb9fe3d4994a3e9790da2e189
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 15:18:40 2012 +0100
-
-    Restore commit dbb8795a7df595f0603f2ec61704799f4c482667 partially.
-
-commit 00fd62720ec454f5a690de4feba08223cfb2c3f8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 14:48:44 2012 +0100
-
-    CHANGES: snmptrapd: Avoid crash during shutdown due to invoking perl_destruct(NULL)
-
-commit d9e229d81abeaf191ef2ccb077842885c230d622
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 14:47:41 2012 +0100
-
-    Remove a superfluous declaration
-
-commit 1e2e2af6cae830f381e87a244d029eb86bf3fcce
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 13:20:37 2012 +0100
-
-    perl/SNMP/examples/pingmib.pl: Add error checking
-
-commit 241a141e31f1684fc6cf70cc4a00cce636fd3526
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 11:28:37 2012 +0100
-
-    Make configure-time EVP_MD_CTX_create() detection work on the 5.4 branch.
-    
-    See also commit 46eac02e9a27bf4f3068e795cab891f05a848870.
-
-commit 6d9d14feaaa2d0fec68b4d158944d32cb04ff1bc
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 11:12:00 2012 +0100
-
-    Revert the changes that break the build on the 5.4 branch from commit dbb8795a7df595f0603f2ec61704799f4c482667.
-
-commit 8abe49e30c97c8983e83b45a35c716fe91f66bea
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Feb 1 11:56:58 2012 +0100
-
-    Fix several compiler warnings in the DISMAN MIB implementations.
-
-commit f9fb0a533375e14dc370025a0b2fbc761bf27be6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 09:56:02 2012 +0100
-
-    Revert "HOST-RESOURCES_MIB: fix a compiler warning" because it's wrong.
-    
-    This reverts commit aa6b79bc124a7b7a885d7e5035ab06aa3ecef613.
-
-commit ca4a4fe25efd2714f8f1961b97856616563f42c9
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Feb 2 10:21:49 2012 +0100
-
-    .gitignore: Add python/build
-
-commit 13ada56558b44e28d1355c0dce1d921f3746d548
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Fri Jan 20 14:13:18 2012 +0100
-
-    Revert "Fix format specifiers to avoid warnings" - there is no NETSNMP_PRIo in V5-4 or V5-5 branches
-    
-    This reverts commit 390c0114c8ec0bdb27b08b6f74e3f6ef3a62981b.
-
-commit 2fb99be9aa86a6ca349b86d4ef8bc726ed9f2a82
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 14:58:35 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit e5c35589e0bf416bfd036bd468f42aaeab25e788
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 14:55:56 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 345a1e4254812cb9edc1d274491b76681a9dba1e
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 14:51:26 2012 +0100
-
-    Fixed error handling in init_icmp().
-
-commit c303549a59fa8c2f20a9d8bf1e985fbc8abde6a8
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:46:29 2012 +0100
-
-    Reworked _register_extend() error handling.
-
-commit 9c20e27a7026fc030da3b328b9a2e1b4f36670cd
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:21:28 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 22fd0bfc2df0e1f6020dc3c50a753ddf28a4599c
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:20:22 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 5d61e57baf580c78252c0abb0098c07bb05af17c
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:17:05 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 3c3eeae80d796f27597c901e7ff2046c769ef4b8
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:08:09 2012 +0100
-
-    Mark rowreq_ctx as freed so next iteration allocates new one instead of reusing the freed one.
-
-commit af9abd53c2337c90a691a7b044ff3f97c1003161
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:05:10 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit cf9465f54181e62e21a9b10219131107a3d2ebf6
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:04:06 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 7871f2b09b8b52f34a9e57784266459053165bcb
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:02:50 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 7a37f33d310c9598607bc323d9bdbf91aaf72c95
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 15:00:51 2012 +0100
-
-    Don't touch reginfo when registration fails - it has been already freed.
-
-commit 3e45f7026249e45350edaac85337423aa0e95d8b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 14:13:18 2012 +0100
-
-    Revert "Fix format specifiers to avoid warnings" - there is no NETSNMP_PRIo in V5-4 or V5-5 branches
-    
-    This reverts commit 390c0114c8ec0bdb27b08b6f74e3f6ef3a62981b.
-
-commit 61936762e641c18db75aa5125a33e776c677adc5
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Fri Jan 20 11:13:39 2012 +0100
-
-    Fixed freeing reginfo twice on error in a template and all its instances.
-
-commit 496437430415fbafeb1ccd4774f1ca00d627ea1f
-Author: Bart Van Assche <bvanassche at 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 at 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 at acm.org>
-Date:   Fri Jan 20 09:20:42 2012 +0100
-
-    Use snmpTargetParamTable_dispose() to free a struct targetParamTable_struct.
-    
-    Fixes a bug introduced in commit dbf26a05a04ef24c47346e5adda48e338498e71f.
-
-commit aa6b79bc124a7b7a885d7e5035ab06aa3ecef613
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 20 09:20:31 2012 +0100
-
-    HOST-RESOURCES_MIB: fix a compiler warning
-
-commit 3a76b43e11fffada632fccb848ab500e876ad48b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 18 16:21:05 2012 +0100
-
-    CHANGES: python: Avoid that an SNMP set with UseEnums enabled causes a segmentation fault
-
-commit 84dec9fa92b0aa2d58eb7020330f4f98e5154321
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 18 14:38:21 2012 +0100
-
-    python/netsnmp/client_intf.c: Fix most compiler warnings
-
-commit 38cf218c3f1a727786e227a5d3fb186fd0f1a15f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 14:50:13 2012 +0100
-
-    Fix a typo
-
-commit 454122244122bfdb6f67cab31256d7b46372e9e1
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 14:30:18 2012 +0100
-
-    Free tmStateRef on errors.
-
-commit 0119022daa59c73bfec0da2386d0628f14e6dab7
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Thu Jan 19 13:48:26 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 63dc846a7949ce697b3e28c543dc1105e63a2250
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:08:28 2012 +0100
-
-    Free certificate fingerprint.
-
-commit ce1f284a63eb81644b3e32606cbe39b67e1dff2a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 14:37:09 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 7e21413ca6f2efd7a3afb62c62b644881b8bd1e7
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:46:30 2012 +0100
-
-    Properly allocate and free engineID.
-
-commit 34c962882607c3638a2fa25a2ac531492d71c787
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:37:25 2012 +0100
-
-    Free locally allocated tmStateRef.
-
-commit f57ae531dc5658abcd65b1627615525238d16d2d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:20:24 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 536bc57556c3141561ea4a194810b16290a691ee
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:15:47 2012 +0100
-
-    Added check if the function actually does something.
-
-commit a0777d307dbcaf219ee0184a0fbab9d4e5d6aa0b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 13:01:45 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 8b97a71c8e7959428eb4d4e8d90e9096d43ff09f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 12:57:26 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 2c1507c22030549ae660c0e211fbdc5c75ec5c57
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 12:53:47 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 65f2b7bcd4fe03906aa1a115ab60a89b8ae933d5
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 19 12:51:36 2012 +0100
-
-    Close open files on error.
-
-commit 0e52e4f66d44766bea37473556c78e5219b95461
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:45:33 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit dbf26a05a04ef24c47346e5adda48e338498e71f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:42:17 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 748da84b1fd654e338bc701e8f9e5da229187f1c
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:32:04 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit eb217146fd54036ea4202bfef78bbf774d7e382d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:23:10 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 9ba38eec66138ec1f613ea8d04e158130c7121bc
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:18:55 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit d9d938d3018c27f53277bc5e59578500490c1d09
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:16:38 2012 +0100
-
-    Close open file on error.
-
-commit d5e817d5bd518d9ac6a0d60e0e141dd64f27ad19
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:14:12 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 2ae68f059df9d74b074d12f59c1847466ed576cd
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 15:03:17 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit a00f3d461121b545aed72ac12b2438791dcfc4ba
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 18 14:58:39 2012 +0100
-
-    Free previously allocated memory on errors.
-
-commit 59884bb4d35ad13747ffa6723436dca587a9ab77
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 17:09:12 2012 +0100
-
-    In above code, olength is checked, so let's check it also here.
-
-commit ba5d5292b04393b0c7d7d7ed961241929418c6e4
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 17:05:14 2012 +0100
-
-    Fixed dereferencing NULL.
-
-commit da2d6a7028a13b9edf3a5c84314d0f1feef76714
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:44:56 2012 +0100
-
-    Prevent dereferencing NULL.
-
-commit f88054a9b69b6de274f7a14a59b47323e5e4e4c6
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:37:35 2012 +0100
-
-    Don't dereference context if it's NULL.
-
-commit 7c4d459e8f1f652cc2098c3d4c81de90a84ed710
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:30:09 2012 +0100
-
-    Don't deference NULL.
-
-commit fc19b7f33b587927d2a01e72d23d21b9b1696ab3
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:25:26 2012 +0100
-
-    Don't close NULL file.
-
-commit 5e95ca6790076b788072a801ee7c82969d995bcb
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:17:09 2012 +0100
-
-    Prevent dereferencing NULL when a transport does not have f_fmtaddr.
-
-commit eed6f5f9b9ae54d2ceab67ad85adde1f6a8a21d5
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:13:13 2012 +0100
-
-    Prevent dereferencing NULL.
-
-commit 41cde68b5fa4b38d81450cf91e082cdfa825e7cf
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:10:10 2012 +0100
-
-    Check if a registration was really found.
-
-commit 5b72a40853876a186efcc0090a4e32c235b9c05f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 16:03:58 2012 +0100
-
-    Don't dereference NULL when difflen is SMUX_MAX_PRIORITY (which is highly unlikely, but...)
-
-commit fa6a912e41c5d0fd2a636894e86b6426c07375ab
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 15:37:44 2012 +0100
-
-    Check for missing value in setEvent.
-
-commit 410b71da425389fecc25d14f49f23753581576ad
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 15:28:41 2012 +0100
-
-    Dereference ereg only if it is not NULL.
-
-commit 185272d1a0b913774186f1b9135aeaf637ebed52
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 15:17:21 2012 +0100
-
-    As per above code, template_v2pdu can be NULL, so check it before dereferencing.
-
-commit 48e5ead3fd2c2b385df6972c67526ff6bdc30768
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 14:42:22 2012 +0100
-
-    Updated last fix to new error reporting style.
-
-commit f33d33615d6d85d0073726473c4146cbcdf11ced
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 14:30:07 2012 +0100
-
-    Fixed sigsegv when empty config line is parsed.
-
-commit b5df1eeb47ed3559b6f4d9ecccdb242126e6c992
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 14:11:58 2012 +0100
-
-    Fixed (highly theoretical) sigsegv when sp->securityEngineID is NULL.
-
-commit 6feed629a71899c113096959d8549dc1201e8f9a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 13:43:37 2012 +0100
-
-    Added NULL and len check just in case someone provides value = NULL and nozero len (-> NULL is then dereferenced).
-
-commit 355c5ab264af2a6020a1d8a923f80f11b942295e
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 17 13:36:41 2012 +0100
-
-    Extend the NULL check, i.e. return if there is nothing to remove.
-
-commit ddd7948acad938cd42974505ddca4f0372116709
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jan 16 11:11:29 2012 -0800
-
-    update sparta's copyright
-
-commit 41256086a7a5041453419cfd6e562c7b55c56b0a
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jan 16 10:32:04 2012 -0800
-
-    pulled full copy of extractnews from master
-
-commit 625a70dbdfd9902da79efa293fe6d2ac8ccf2b2e
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jan 16 10:24:19 2012 -0800
-
-    update to change to the newer log generating/parsing
-
-commit 62e32b13089b29edcf276f615da67e4508fe7bb5
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Mon Jan 16 09:29:42 2012 -0800
-
-    conflicting merge from master for extractnews
-
-commit 70084da61d2bcbd2cf1ed81bdc3bf6794c2affb6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 13 11:49:16 2012 +0100
-
-    CHANGES: snmpd: DISMAN-SCHEDULER-MIB: Handle 32-character schedContextName values correctly.
-    
-    See also commit b3c4982542e0ab151fb3884754cdfbcb472da52d.
-
-commit 04bf3e288158ee880edf237e4007fee37d2044dd
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Thu Jan 12 15:13:21 2012 +0100
-
-    Fixed a typo.
-
-commit a27aa19df283156c032c81eaee5e115859d38c17
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 15:11:32 2012 +0100
-
-    Don't replace 'rc' variable, it's value is needed outside the loop.
-
-commit 985dff2b0876d9483c414fccea3ef6bc63e14561
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 15:01:32 2012 +0100
-
-    Removed duplicate code.
-
-commit 2fd7818318e7a5dfe98f52ccf750c2a63e825ded
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 15:00:22 2012 +0100
-
-    Removed duplicate code.
-
-commit 15f21130ba33dc9afd164e52dfd74c9cec0e9232
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 14:58:14 2012 +0100
-
-    Removed duplicate code.
-
-commit 2a8a8f2ab7cd75826c5d41ec3cfd5ce3e9634cf3
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Thu Jan 12 14:25:06 2012 +0100
-
-    Fixed a typo.
-
-commit ebd92e19b10c0a38e17cde407864b45c26e17327
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 14:07:43 2012 +0100
-
-    Removed unnecessary if (value) check - value is checked few lines before.
-
-commit c5cacf5caf979d018ea6cae1c03b8fdf0b118dfd
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Thu Jan 12 13:43:19 2012 +0100
-
-    Prevent memory leak when malloc fails.
-
-commit 17053e34cfe9a8ab395fb50f5c3f1dafc7247aeb
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Jan 12 13:32:57 2012 +0100
-
-    Fixed double fclose().
-    Linux man page for fclose(3) says: In either case any further access (including another call to fclose()) to the stream results in undefined behavior.
-
-commit a6641edb9cb74fc2236b42ce5554fc3329956552
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 15:22:34 2012 +0100
-
-    MinGW: Skip test T065 if not started from inside an MSYS shell
-
-commit a883ef1982f301b1485d227301674927330f5b67
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 11 15:14:53 2012 +0100
-
-    Moved debug oputput before return.
-
-commit 45751967287d97640efdcdf8e77e8d490939d8eb
-Author: Bart Van Assche <bvanassche at 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 at 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 at 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 at users.sourceforge.net>
-Date:   Mon Oct 18 06:25:56 2010 +0000
-
-    Win32: builds again without warnings with MSVC 6.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19489 06827809-a52a-0410-b366-d66718629ded
-
-commit f3a7d1b09609dad649f58bbdb5b7e10d39b398c1
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Sun Oct 17 11:04:06 2010 +0000
-
-    Follow-up for r19476: fixed a typo.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19478 06827809-a52a-0410-b366-d66718629ded
-
-commit 2de73bd365a381b9c353ca5230769eefb1ac71ed
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 11:42:42 2012 +0100
-
-    local/passtest: Remove an incorrect PATH= statement
-
-commit 699513f1238e0adce1f1cec98e0d147293fc5047
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Sun Oct 17 09:25:51 2010 +0000
-
-    NETSNMP_REMOVE_CONST()-related cleanup.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19476 06827809-a52a-0410-b366-d66718629ded
-
-commit 6358dee72fb347e2600a0a7bd21f23270d3a00f6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 10:58:15 2012 +0100
-
-    agent/mibgroup/ucd-snmp/versioninfo.c: Add a comment
-
-commit 5396bfe032c8cbc73c8ff5d4b085ebada9f59846
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 10:30:16 2012 +0100
-
-    Replace strncpy()/strncat() by strlcpy()/strlcat()
-
-commit feb3af28dcae22015ae865a2e5dd8c416e9991d8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 10:02:08 2012 +0100
-
-    Replace strncpy()/strncat() by strlcpy()/strlcat()
-
-commit b7e1aa255bae4a3453f9eca644a876634351f11d
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Sat Mar 20 19:36:28 2010 +0000
-
-    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.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@18345 06827809-a52a-0410-b366-d66718629ded
-    
-    Conflicts:
-    	agent/agent_registry.c
-    	agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c
-    	agent/mibgroup/mibII/interfaces.c
-    	agent/mibgroup/ucd-snmp/disk.c
-    	apps/snmptrapd.c
-    	snmplib/snmpIPv6BaseDomain.c
-    	snmplib/snmpUDPIPv6Domain.c
-    	snmplib/system.c
-
-commit f47a3752849db075e6f2053b8595b7b792fb6462
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Fri Oct 15 10:56:09 2010 +0000
-
-    CHANGES: Win32: building: Builds now correctly with a 64-bit compiler.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19458 06827809-a52a-0410-b366-d66718629ded
-
-commit 02b6056df95da8b673034e39c2c7c386ed0f369c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Jan 10 11:44:53 2012 +0100
-
-    Fix a compiler warning about casting away const
-
-commit a19865832fc77f4c048144d91a431b1e94d329f2
-Author: Magnus Fromreide <magfr at users.sourceforge.net>
-Date:   Wed Oct 14 23:12:05 2009 +0000
-
-    CHANGES: apps, snmplib: PATCH: 2835577: identified by "Bart Van Assche": Replace SNMP_ZERO of arrays with a memset.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@17797 06827809-a52a-0410-b366-d66718629ded
-
-commit 67a3e2eccb95f9c9d0809efcbddcd866ee3062d5
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Wed Jan 6 14:27:15 2010 +0000
-
-    Fixed a compiler warning about discarding the const qualifier.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@17970 06827809-a52a-0410-b366-d66718629ded
-
-commit 3dcde2e8a595a527f06142c3b852de8433a1cf28
-Author: Magnus Fromreide <magfr at users.sourceforge.net>
-Date:   Sun Jan 24 14:27:55 2010 +0000
-
-    CHANGES: snmplib: Prevent gcc ped-warning for NETSNMP_REMOVE_CONST
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@18052 06827809-a52a-0410-b366-d66718629ded
-
-commit c2e1525a85bda5299a3b9f241614f7e6509aeeba
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Wed Jan 6 13:35:11 2010 +0000
-
-    Backport commit 295f473c83546221b2a71d815c61e33a67f98ae3: refine NETSNMP_REMOVE_CONST() implementation.
-
-commit cb423b0ae9ed0059aa100dc4e2fd93ad1b97faf8
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Wed Jan 6 11:57:51 2010 +0000
-
-    Backport commit e2fb09e0093e2f648fe2638da2f3af18fdb32bf0 - introduce NETSNMP_REMOVE_CONST().
-    
-    Conflicts:
-    	agent/snmp_perl.c
-    	snmplib/snmp_service.c
-
-commit afc396ab1618a8595a2519fbc25f7a498e174411
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 08:49:34 2012 +0100
-
-    Unbreak netsnmp_mktemp() and make_temp().
-    
-    These were broken by commit bb8fcbb874998000f945f058d1aa6fe14e925899.
-    Also replace a strncpy() call by a call to strlcpy() and replace the
-    make_tempfile() implementation by a call to netsnmp_mktemp().
-
-commit 210185c15d0d65f0ea98b5e3c2e0776f6222d170
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 11 08:27:43 2012 +0100
-
-    Fix a crash during startup of snmpd introduced by commit 885061687d9caa38470979667d7d8ad6563cedad.
-    
-    Also, make sure there is only a single copy of the cleanup code in function
-    mkdirhier().
-
-commit 8bb4e86abcf98ff28748af0af89c98e64d5cd961
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Wed Jan 11 07:47:12 2012 +0100
-
-    Reduce the scope of the oldmask variable.
-
-commit 6680147b138ec114f81c5d128ac9350c8450d081
-Author: Bart Van Assche <bvanassche at 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 at users.sourceforge.net>
-Date:   Tue Jan 10 15:40:59 2012 +0100
-
-    Fixed buffer overflow for large OID names
-
-commit fba188ee82010b2f2d8ca2e426ba654499ab3d0a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 15:31:33 2012 +0100
-
-    fixed buffer overflow in __concat_oid_str
-
-commit 21d25d86b8e4904d798dc8c96dade9e5048457a8
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 15:26:07 2012 +0100
-
-    Fixed buffer overflow when parsing port numbers.
-
-commit d36931841b2fc2cebc6364b2949129a0ad42ad1d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 15:05:51 2012 +0100
-
-    Fixed a buffer overflow when large SumFile is used.
-
-commit 0efdd022da09af1b5e16171fa7a2b523c5d6ec59
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 15:01:53 2012 +0100
-
-    Fixed buffer overflow when too big temp file pattern is used.
-
-commit 560bc6c09b751556efd6b4c4495751b109a93f92
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:59:24 2012 +0100
-
-    Fixed buffer overflow, just to be sure.
-
-commit 8291d7c5b92a31dd4f582b497d4b2a0853367a56
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:55:16 2012 +0100
-
-    Fixed buffer overflow.
-
-commit 88e1f34de7300575fa6dab857ecddb242a87de80
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:48:55 2012 +0100
-
-    Fixed buffer overflow when too long interface names are used.
-
-commit be1375a9926ebe0cd5b78a4045c3bd11c83664b1
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:46:49 2012 +0100
-
-    Fixed buffer overflow when a sensor name is too long.
-
-commit 1cb24625372062b14c71d7dd51e20fef773e2743
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:41:00 2012 +0100
-
-    Fixed buffer overflow when a CPU has too long name.
-
-commit 84c807ee03251e54856e83d62d06ea08b8df527a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:36:50 2012 +0100
-
-    Fixed buffer overflow when too long interface names are used.
-
-commit c310e390b5dd05f24be7eb1904c74e41259c93db
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:24:54 2012 +0100
-
-    Fixed buffer overflow when too big temp file pattern is used.
-
-commit 4600d11434e83b8653cf9f813a3d8b630455b42d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:17:08 2012 +0100
-
-    Fixed plausible string overflow before parsing command line options.
-
-commit 885061687d9caa38470979667d7d8ad6563cedad
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 14:11:02 2012 +0100
-
-    Get rid of (insecure) SNMP_MAXPATH in mkdirhier()
-
-commit 8016890a445f6a7e2a873a04873d4e27b6ee64e3
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 13:48:34 2012 +0100
-
-    Fixed wrong integer size on 64 bit platform.
-
-commit bb8fcbb874998000f945f058d1aa6fe14e925899
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 13:31:36 2012 +0100
-
-    Secure mkstemp() with umask() - on some implementations it does not set 0600 permissions automatically.
-
-commit 202523ca704bd722dc1ac0e1e6b0e4b4e5424495
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 10 13:11:57 2012 +0100
-
-    Fixed dereferencing 'c' before NULL check.
-
-commit 73a523e468277f6df2e984891313b8be8bce1921
-Author: Jan Safranek <jsafranek at 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 at acm.org>
-Date:   Tue Jan 10 10:38:16 2012 +0100
-
-    .gitignore: Ignore perl/*.yml files
-
-commit c365d80c16c2d17b160011e8c1f9cb958954e9db
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Jan 10 08:34:16 2012 +0100
-
-    CHANGES: snmptrapd: Do not invoke shutdown_perl() from inside the SIGTERM handler since that fails if SIGTERM is received while a Perl handler is active. Based on a patch posted by Joel Avni <javni at arubanetworks.com>
-
-commit d059fb878b1436599953cea5a077499ddcdcbcb5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 17:03:55 2012 +0000
-
-    CHANGES: BUG: 3440752: IF-MIB: Report interface speed correctly for Ethernet interfaces if other than 10 Mbps, 100 Mbps, 1 Gbps, 2.5 Gbps or 10 Gbps. Add support for NICs faster than 65 Gbps.
-
-commit c09903a42e9d97331fd9e48ee831a85afdf9c70a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Jan 9 13:26:17 2012 +0100
-
-    Doxygen-style documentation fixes
-
-commit e325ecbfce77f00ac5cf6fbd957f95495f61c59b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Jan 9 13:25:10 2012 +0100
-
-    Suppress uninteresting Doxygen warnings
-
-commit be9161d3a5898e863767f926613486126c2cbf67
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 12:35:39 2012 +0100
-
-    CHANGES: snmplib: Simplify implementation of functions manipulating 64-bit numbers.
-
-commit 86e4c2be0852a0a13b0603075720b3264ec70dde
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 12:29:11 2012 +0100
-
-    CHANGES: snmplib: Make it explicit that MAX_SUBID is an unsigned constant
-
-commit 37e272d8f7b7180ba140fa386a5ff058968a08a2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 18:21:48 2012 +0000
-
-    CHANGES: snmpd: IF-MIB::ifType: Report type "infiniband (199)" for InfiniBand interfaces instead of type "other (1)".
-
-commit 269932fa32c7cd47957489698e09bee31f63b7af
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 14:34:42 2012 +0100
-
-    Fix an MSVC compiler warning
-
-commit 0d1c21f9991d1309d057e3e4056d547df7d40ecf
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 16:06:31 2012 +0100
-
-    Make declaration and definition of strlcat() consistent.
-
-commit 0c3d4dbb0a9cf5b359f70b2f19915495554f840f
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 15:23:16 2012 +0100
-
-    CHANGES: Win32: snmpd: Remove dlmod
-
-commit 893ecc97b587661045becbe09a320c1bcbc71c7c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 14:36:59 2012 +0100
-
-    Add strlcat() to the MSVC build infrastructure.
-
-commit 3d126422e625702b9d3fa0676a97ec5cb20d9d10
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 15:01:06 2012 +0100
-
-    Make win32/net-snmp/net-snmp-config.h consistent with its .in file
-
-commit af53b76c2ffa751e3958d0fc5d8279f78c2c1c26
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Jan 6 14:43:55 2012 +0100
-
-    Skip T066pass_simple and T067passpersist_simple on MinGW
-
-commit 35a92e693d133a5b11e9e9b599dbf47edef4933b
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Thu Jan 5 17:47:11 2012 +0000
-
-    Fix 64-bit compiler warnings
-
-commit 7e890dad95f566069ee280215a4fea3f0e2e3980
-Author: Bart Van Assche <bvanassche at 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 at 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 at acm.org>
-Date:   Thu Jan 5 15:02:39 2012 +0100
-
-    Replace most strncpy() calls introduced in v5.5
-
-commit b24ee7c909657db43bd8c5d8c01055ca0883c9cf
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 08:40:39 2012 +0100
-
-    Eliminate most strncpy() and strncat() calls
-    
-    Using strncpy() and strncat() is error prone -- see also
-    http://www.gratisoft.us/todd/papers/strlcpy.html. Hence replace
-    all invocations of strncpy() and strncat(). Replace
-    strncpy(dst, src, n) calls by:
-    * strlcpy(dst, src, n) if the goal was to avoid output buffer overflow.
-    * sprintf(dst, "%.*s", n, src) to copy a prefix of src to dst or if src is
-        not '\0'-terminated.
-    * memcpy(dst, src, n) if strlen(src) >= n and n < size of dst.
-    * strcpy(dst, src) if n > strlen(src) and n < size of dst.
-
-commit 6d95bc4149472931005475c30a541fed5534da39
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Jan 5 11:19:16 2012 +0100
-
-    Fix warnings triggered during compilation of the Perl xs source files
-
-commit bad0600f6ec944ef8455e327ce784b9b07d247c9
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Thu Jan 5 10:00:29 2012 +0100
-
-    Get rid of a compiler warning
-
-commit 83e4c0e304f617ccac6610edd74d1706797bbf52
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Thu Jan 5 09:17:15 2012 +0100
-
-    CHANGES: snmplib: Simplify the se_store_enum_list() implementation
-
-commit b3222bb275f2f2346e0fd0478afa2efb600773e5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Jan 5 09:16:45 2012 +0100
-
-    CHANGES: snmplib: Declare "type" argument of se_store_list() / se_store_slist() / se_store_enum_list() const
-
-commit 022f840fbfcb0e26b08f0e55728231f611495803
-Author: Bart Van Assche <bvanassche at 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 at acm.org>
-Date:   Wed Jan 4 17:33:09 2012 +0000
-
-    Fix a 64-bit compiler warning
-
-commit 24ff260ad89ce2aa361a55c7c72e916031defe35
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 17:11:24 2012 +0100
-
-    Change the type of the second argument of snmp_set_var_value() and snmp_set_var_typed_value() from u_char* to void*, like on more recent branches
-
-commit c6ca737fb46f90a4bda5d43734aac34e837a05f4
-Author: Bart Van Assche <bvassche at users.sourceforge.net>
-Date:   Sat Mar 13 19:07:37 2010 +0000
-
-    Backport commit f504ce2d74a4bc88f68cc9515fa7053373cb15b5.
-    (Fixed most compiler warnings triggered by the source code in the perl subdirectory. Note: these changes may contain some real bug fixes.)
-    
-    Conflicts:
-    
-    	perl/ASN/ASN.xs
-    	perl/OID/OID.xs
-    	perl/SNMP/SNMP.xs
-    	perl/agent/agent.xs
-
-commit d212dc984ec34e4d230625e46e58b0c628a50df5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 16:46:49 2012 +0100
-
-    SNMP.xs compiler warning fixes
-
-commit baceebb10d8caf5db63cc36935fed65ee931029d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 16:22:44 2012 +0100
-
-    Add declaration for shutdown_snmpNotifyTable()
-
-commit f7f966abd6d2849b1331252afe5c473e5c40b32d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 14:24:33 2012 +0100
-
-    Fix format specification mismatches.
-
-commit 303c015bcfe9af0b154e9881c7b4f449e08f30bb
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed May 6 22:06:23 2009 +0000
-
-    Backport commit d3eb2b5ced22a8480053ce43acf9739729055404
-    (Sprinkle some const-ness where relevant / fix format string mismatches,
-    Niels Baggesen, May 2009)
-    
-    Conflicts:
-    
-    	agent/agent_sysORTable.c
-    	agent/helpers/instance.c
-    	agent/mibgroup/disman/event/mteTriggerConf.c
-    	include/net-snmp/agent/instance.h
-    	include/net-snmp/agent/sysORTable.h
-
-commit d95b40406916bda5b48b5a6131bec27b866b0a79
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed May 6 21:59:20 2009 +0000
-
-    Backport a2a7316c310f0fcc3728673fa047051c23b71960
-    (Trivial warning fixes, Niels Baggesen, May 2009).
-    
-    Conflicts:
-    
-    	agent/mibgroup/hardware/cpu/cpu_linux.c
-    	agent/mibgroup/host/hr_swrun.c
-    	agent/mibgroup/if-mib/data_access/interface_linux.c
-    	agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c
-    	agent/mibgroup/ip-mib/data_access/systemstats_linux.c
-    	agent/mibgroup/mibII/sysORTable.c
-    	agent/mibgroup/mibII/system_mib.c
-    	agent/mibgroup/ucd-snmp/logmatch.c
-    	agent/mibgroup/util_funcs/get_pid_from_inode.c
-    	agent/snmpd.c
-    	snmplib/container_list_ssll.c
-
-commit d86c47f003fdc192bce7b46ac4f06b09e387c12b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 13:29:08 2012 +0100
-
-    Fixed a typo
-
-commit bee4d79cf4eb7e0a45397f59b5298da633a8e1ba
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 13:14:57 2012 +0100
-
-    Fixed reading past end of buffer.
-
-commit 3dc0e00a2fd8e34fe1ae33ecabf36e146460a31f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 12:40:07 2012 +0100
-
-    Fixed buffer overflow when large 'token' is used.
-
-commit b3c4982542e0ab151fb3884754cdfbcb472da52d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 12:28:52 2012 +0100
-
-    Fixed off-by-one memset.
-
-commit 0f53695044dd3f0c3507753e3f8c29d97e96872d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Aug 3 21:38:26 2011 +0200
-
-    CHANGES: snmplib, snmpd, perl: Eliminate dead variables
-    
-    Conflicts:
-    
-    	agent/mibgroup/agentx/master_admin.c
-    	agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c
-    	agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c
-    	agent/mibgroup/host/data_access/swinst_pkginfo.c
-    	agent/mibgroup/host/data_access/swrun_procfs_status.c
-    	agent/mibgroup/ip-mib/data_access/systemstats_linux.c
-    	agent/mibgroup/mibII/kernel_linux.c
-    	agent/mibgroup/rmon-mib/data_access/etherstats_linux.c
-    	agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c
-    	apps/snmptls.c
-    	apps/snmptrapd_log.c
-    	snmplib/dir_utils.c
-    	snmplib/snmp_client.c
-    	snmplib/snmp_openssl.c
-    	snmplib/transports/snmpTLSTCPDomain.c
-
-commit 0153805c99b9197365935c5d11ae9c3d4bfaa0f3
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 09:48:41 2012 +0100
-
-    Fix a set-but-not-used warning
-
-commit 3f8885fbee9407748fc2f0573728a11ba2bc023a
-Author: Magnus Fromreide <magfr at users.sourceforge.net>
-Date:   Tue Apr 28 05:51:13 2009 +0000
-
-    Return a value from sprint_realloc_value even if no subtree is located.
-    
-    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@17578 06827809-a52a-0410-b366-d66718629ded
-
-commit b1eaaf302369fd4552e8fee7b6a805091ec0a9b4
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 11:38:51 2012 +0100
-
-    Added check of find_sec_mod() return value.
-
-commit aee4e895fe3bd5f4a61e34275bfca0368b560555
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 11:31:22 2012 +0100
-
-    Added check of snmp_sess_transport() return value.
-
-commit 5d1d0a744ab30c8e645c3b8506cbbd2cceb3d275
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 11:04:48 2012 +0100
-
-    Added check of netsnmp_extract_iterator_context() return value.
-
-commit 299ea9a89c3f1758a7748bb9b3411f62f2c70f88
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Jan 4 10:54:55 2012 +0100
-
-    Added check of fopen() return value, just in case of some race.
-
-commit 90f1ae6757917481636eef77100caeeb53edfe01
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Jan 3 10:06:56 2012 +0100
-
-    Add strlcat.c. Source: http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/string/strlcat.c.
-
-commit 089bcb360aa26790ad2a8ceddf583b7ba5ddfd48
-Author: Jan Safranek <jsafranek at 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 at acm.org>
-Date:   Wed Jan 4 10:31:26 2012 +0100
-
-    CHANGES: snmpd: smux: simplify smux_list_detach()
-
-commit d883573aa73e0f5fc188acedee6451f95dae900c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 10:23:06 2012 +0100
-
-    Fix a compiler warning introduced by commit a809fe5075c9f374715f7d1a682949a0730172c1.
-
-commit 7b7a3eb2500527eaa1699287a6ca6fcc4cc2e08a
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Jan 4 09:40:02 2012 +0100
-
-    Fix a build error caused by commit a809fe5075c9f374715f7d1a682949a0730172c1.
-
-commit 2b6c119fed4848da6663c11f0c2cbdc29921b5c6
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 15:51:10 2012 +0100
-
-    Check for netsnmp_ds_get_int() errors.
-
-commit 6ce5360caa4c9de51ade57879e83f96bd04b4c5a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 15:42:23 2012 +0100
-
-    Check for missing view.
-
-commit b3bc54bed31690a85df2acfbf3296da93a9e89b4
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 15:23:17 2012 +0100
-
-    Check socket() result.
-    Also close the socket on error.
-
-commit 92075f51cd45a38ca38760b3ffe82e16559e9c2e
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 15:18:26 2012 +0100
-
-    Check open() result.
-
-commit 6665d5fe2fc569d6fa854d1d78e347bbac69e070
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:22:22 2012 +0100
-
-    Fixed missing break.
-
-commit a6648c5453e1ef8dac57a38efcc00cce53bf9e4f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:20:27 2012 +0100
-
-    Fixed missing break.
-
-commit d68dcae0f18d554571aef321944a5290548dde86
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:16:11 2012 +0100
-
-    Added 'fallthrough' comment for Coverity.
-
-commit fb6f80c0fe3ba36e56f5b911a47e3f6f32ba266e
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:14:07 2012 +0100
-
-    Fixed exit code of encode_keychange with wrong arguments.
-    Also added a comment for Coverity.
-
-commit 3130e24fdc232464dd7bb216f46cafa2e0e775a6
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:09:54 2012 +0100
-
-    Added missing break
-
-commit 18c126a9565cb4d69d7513b944a2105588045d35
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:07:29 2012 +0100
-
-    Added 'fallthrough' comment for Coverity.
-
-commit 6d31c82070a2c68fe3c519e9d56fa2779554d01f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 14:01:53 2012 +0100
-
-    Added 'fallthrough' comment for Coverity.
-
-commit dc6f0e2e549b4cd061ebc190084b1fc77a55f40f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 13:32:59 2012 +0100
-
-    Fixed wrong operator
-
-commit dab32867ed0b99301efd7b8d852ad1288a184be0
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 13:30:33 2012 +0100
-
-    Fixed QUITFUN usage.
-
-commit b1a2bcf64615eb66bc24d5be4950e45012962045
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 13:18:03 2012 +0100
-
-    Fixed wrong operator
-
-commit b2b1c851b94fed37c386eaa1bfead5c77696e3ef
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 13:14:52 2012 +0100
-
-    Fixed wrong operator
-
-commit a809fe5075c9f374715f7d1a682949a0730172c1
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 10:58:46 2012 +0100
-
-    Added check for failed register_mib.
-
-commit 5949f055c16ae650615aae7a1fee3f2d7b16d940
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Jan 3 10:29:59 2012 +0100
-
-    Make MIB file parsing and detection more strict - LABEL is required at the beginning of MIB files.
-
-commit e4b673683c68ba8b3abc040b9125ec304643cc7c
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Jan 1 23:00:24 2012 +0100
-
-    Assume that libdl might be in AGENTLIBS or SNMPLIBS so preadd them.
-
-commit b13c1e57bedba79b806103c74f1921d53a706b38
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Jan 1 22:55:06 2012 +0100
-
-    Do not require ucd-snmp/dlmod unless it will work.
-
-commit 27dcea0d5f801df494ab2cb5c5c0ebe54eb0dcd3
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Dec 31 14:48:29 2011 +0100
-
-    Adjust paths for test restructure
-
-commit 14b60e85a1b5700e93d126e2f291d5c485f34e36
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Dec 31 14:14:29 2011 +0100
-
-    CHANGES: snmpd: Make the configuration of the dlmod module fail rather than generate a dummy module if the dlopen function isn't available.
-
-commit 98a97538fc1e9ff46b60d5d969347444578378c0
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Dec 31 13:35:13 2011 +0100
-
-    Adjust the paths to support testing even if builddir != srcdir
-
-commit 88f0af3cfb916ae5863cc2986071d435f20c3064
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Dec 31 11:37:52 2011 +0100
-
-    Reduce the scope of the variables 'p' and 'len'.
-
-commit 0815a7536c76f7e4842638683f674894a1a8ce14
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Dec 29 14:42:54 2011 +0000
-
-    Report problems with SetUndo processing
-    Missed when applying patch #3445440
-
-commit eb2ab23742ca86c0b89ccfe91eb6ea374bf3acc1
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Dec 29 14:37:31 2011 +0000
-
-    Check for the expected error (EPIPE) on closure.
-    Missed when applying patch #3447444
-
-commit aac10bc4f053c014f382d6593fc32ab95e0b1a57
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Dec 29 12:59:52 2011 +0000
-
-    CHANGES: snmpd: BUG: 3463767: Handle parsing subidentifiers > 2^31
-
-commit bbc02e36e90c1aab7898562f963f5cadb26e10bd
-Author: Dave Shield <D.T.Shield at 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 at liverpool.ac.uk>
-Date:   Wed Dec 28 16:53:24 2011 +0000
-
-    Add tests for pass/pass_persist, supplied by Bill Fenner
-
-commit d5ee3f0a1a63bb1752c74cbca55aa3d40bf9bf13
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 21:58:51 2011 +0000
-
-    CHANGES: snmpd: PATCHES: 3447444: Fix SIG_PIPE handling
-    Patch provided by Bill Fenner
-
-commit 2a17b37430c1852998c3588e547d7eb61c06da71
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 21:45:38 2011 +0000
-
-    CHANGES: agentx: PATCHES: 3445440: More robust handling of AgentX errors
-    Patch provided by Bill Fenner
-
-commit fe58a0e5f4d4e2e2ecbcb47382b08cb1e4df352c
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 18:16:23 2011 +0000
-
-    CHANGES: snmplib: PATCHES: 3456770: Handle (obsolete) UInteger type properly
-    Patch provided by Bill Fenner
-
-commit 1be8cf08a67a91855fee1ec4a2d8e087c7812456
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 18:04:10 2011 +0000
-
-    CHANGES: agentx: PATCHES: 3445437: Log AgentX disconnections
-    (in line with connections) Patch provided by Bill Fenner
-
-commit 068037289107faa2ba3f5cd2fb00c19494bb9a04
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 17:27:46 2011 +0000
-
-    Handle any GETNEXT request OID, not just a simple walk.
-
-commit a74fa528983123d355a8cdcaa77dd4eb4b8c6959
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 17:00:18 2011 +0000
-
-    CHANGES: pass: PATCHES: 349394: Bring pass_persisttest script into line with passtest*
-    (i.e. using the legitimate structure of NET-SNMP-PASS-MIB)
-    Patch provided by Bill Fenner
-
-commit bbe649ebfa61ea22399170b36b99db30a1de8012
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 16:54:38 2011 +0000
-
-    Rework "passtest" example to fully validate GETNEXT requests
-    and use a legitimate structure for output.  Backport of SVN
-    revision 17632 (which updated 'passtest.pl' but missed 'passtest')
-    Correct in branches 5.5 and above
-
-commit 82d06c7247b22c8b01d45bf55041d2f1e6427d49
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 13:45:18 2011 +0000
-
-    CHANGES: snmpd: PATCHES: 3447671: Fix override handling of OID values
-    Patch supplied by Phillip O'Donnell
-
-commit ba4a9ce51c9600f9fda168f1e6eff32a1db63cb9
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 13:24:26 2011 +0000
-
-    Tweak --disable-snmp-set changes
-
-commit 827c8b28830171faa9c61d53efca9eb6600561c2
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 11:25:43 2011 +0000
-
-    CHANGES: python: PATCHES: 3433846: Fix for use with python 2.4
-
-commit f98a54a99caf7b46b100a920db942cbca9c43926
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Tue Dec 27 10:10:36 2011 +0000
-
-    Skip SET-based tests when configured with --disable-set-support
-
-commit 230df14f94c3736ff34379a4e281eea353b47f80
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Mon Dec 26 23:34:23 2011 +0100
-
-    Do not assign tmStateRef twice
-
-commit c96b3b4d8530ad5e0efb03f24dab5e5f1a460031
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Dec 25 11:18:21 2011 +0100
-
-    Correct use-after-free.
-
-commit c5978c89cde2440f4d20dadbc9d1dd8db562d56e
-Author: Magnus Fromreide <magfr at 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 at liverpool.ac.uk>
-Date:   Sat Dec 24 16:55:30 2011 +0000
-
-    CHANGES: snmpd: PATCHES 3410059: Fix sparsely augmenting trigger tables
-    Patch provided by Stephen Turner
-
-commit c4ae021b2e6384437081c5623f360c8896390188
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Sat Dec 24 16:29:54 2011 +0000
-
-    CHANGES: snmpd: PATCHES 3410050: Skip already-'processed' varbinds
-    Based on mib2c patch provided by Stephen Turner
-
-commit c6accf8c66254fa8c48767ed7dec795ddafc522e
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Sat Dec 24 16:27:11 2011 +0000
-
-    CHANGES: mib2c: PATCHES 3410050: Skip already-'processed' varbinds
-    Patch provided by Stephen Turner
-
-commit a61826ad8ca54661d1d909712503bd3a8b32eed0
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Dec 22 18:35:46 2011 +0100
-
-    Remove unused variable.
-    
-    myMatch is unused as nmatch is zero and also since regexBuffer is created
-    with REG_NOSUB set.
-
-commit ba4fc80fe2cfd5a5d89230d8f3703e4fe01e6019
-Author: Dave Shield <D.T.Shield at liverpool.ac.uk>
-Date:   Thu Dec 22 19:24:40 2011 +0000
-
-    CHANGES: agent: PATCH 3402376: from Leonardo Chiquitto: Recognise ReiserFS
-    Also move various FSType definitions to the appropriate blocks
-
-commit b5ac4a04dcd5470d08d03321abcd1e982621e6e0
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:39:46 2011 +0100
-
-    Fixed unterminated strings after strncpy
-
-commit 2b37e4e8f250a0d8821199a74ac3f4e5b7b7baba
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:31:51 2011 +0100
-
-    Fixed unterminated strings after strncpy
-
-commit 3d08345156c419333de969f13d21fcec7e18e94d
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:32:29 2011 +0100
-
-    Fixed unterminated strings after strncpy
-
-commit cd859ad51c4f18d5b0fc69dd669fcb051c798969
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:39:33 2011 +0100
-
-    Fixed wrong memmove size
-
-commit 30ff58d09d4c9d5438bb621054fd7ad7a2a597e4
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Dec 22 14:07:19 2011 +0100
-
-    Fixed wrong length of buffer when printing ASN_BIT_STR
-
-commit 6c1487e1d360d3d260a39cb1f5b15da978395053
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 15:47:34 2011 +0100
-
-    Fixed potential free of uninitialized pointer in error cases
-
-commit c76fb96f65e33ba2fd212a921e8c386155ee5c7a
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 15:44:46 2011 +0100
-
-    Fixed unitialized values in udpTable
-
-commit c44608679b89751176f28a2e54d5282b46e2a05c
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 14:56:13 2011 +0100
-
-    Use calloc instead of malloc and manual clearing
-
-commit a05c5f9513461824e7903ae9ae9a6c3386e33879
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 14:40:50 2011 +0100
-
-    Fixed printing of unitialized variable when sensors_get_label() fails
-
-commit e4a5edc72393bd3de9bf12bceba9d83bbf7de70b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 14:31:25 2011 +0100
-
-    Removed unused variable
-
-commit fae2e5b835b8df1eae47e4cebb4eb404d7282377
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Dec 21 13:31:21 2011 +0100
-
-    Fixed dereferencing unitialized iid in error cases and with debug info enabled.
-
-commit 9d58f81a9239cfbcfc8ebce367d21e9b3dcb028b
-Author: Jan Safranek <jsafranek at 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 at users.sourceforge.net>
-Date:   Wed Dec 21 13:20:52 2011 +0100
-
-    Fixed returning uninitialized variable 'status' when ss == NULL
-
-commit 7304c53cf8adee8eccef1a8f26756fc07f098721
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Dec 18 23:31:53 2011 +0100
-
-    On solaris 10 test in /bin/sh doesn't support the -e test. Replace it with -f
-
-commit 8cd3be60d693c9c36ffb97d3d9bcb49c1b4abe35
-Author: Magnus Fromreide <magfr at 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 at 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 at 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 at 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 at 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 at 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 at lysator.liu.se>
-Date:   Sun Dec 11 19:27:59 2011 +0100
-
-    Reduce variable scope.
-
-commit bc879571eca9520bc132f840c3e659d3793144d7
-Author: Magnus Fromreide <magfr at 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 at 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 at 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 at 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 at 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 at acm.org>
-Date:   Thu Dec 8 12:00:32 2011 +0100
-
-    Remove a cast
-
-commit de9250d9dae9727a6cc7f647688dddf1b8597128
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 8 11:58:04 2011 +0100
-
-    CHANGES: snmpd: Make sprint_mib_oid() treat OID components as unsigned instead of signed integers
-
-commit 0e33b3b6d5854a4bac15d4ea5e016c53d161d0cd
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 8 10:02:28 2011 +0100
-
-    Fix recently introduced compiler warnings
-
-commit b7e50d5f9a6755982d2af3191473cb34643bc03f
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 8 08:37:22 2011 +0100
-
-    CHANGES: snmplib: Reduce overhead of config file parsing
-
-commit 73c9ee42d28afe2e107a7d6616b6d011890c36ea
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 8 09:09:59 2011 +0100
-
-    Remove unused variables
-
-commit 3db97962b37eb12d254d61e6be234b06a391c8bb
-Author: Bill Fenner <fenner at gmail.com>
-Date:   Thu Dec 8 07:43:45 2011 +0100
-
-    CHANGES: snmpd: PATCH 3453868: from "Bill Fenner <fenner at gmail.com>": Factor common code into pass_common
-    
-    Move the code for pormatting and printing values from pass and pass_persist
-    into pass_common.
-
-commit b6568c83f1756e9a65434edeeeb40d23ddbbb652
-Author: ccchiu <ccchiu at 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 d494db64c208b4dc62813132f8863bd5c1a39d77
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 10:38:17 2011 +0100
-
-    CHANGES: snmptrapd: Eliminate an unused variable (Now)
-
-commit 28f2561bc2935d8e1cbf46d2820158173e7a4cf4
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 10:37:11 2011 +0100
-
-    CHANGES: snmptrapd: Move the main loop code into a new function
-
-commit 396e122ddc42a916f06a02884c0e8a258edbe238
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 09:32:16 2011 +0100
-
-    CHANGES: snmpd: Match each getpwnam()/getpwuid() call with an endpwent() call and each getgrent() call with an endgrent() call.
-
-commit 3efefbc0024399786f8b68b1e93b0a8fddddc7da
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 10:41:01 2011 +0100
-
-    CHANGES: snmptrapd: Remove superfluous casts
-
-commit 7f05daa8e0e0f533b0f12a3e1cf07641519909d6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 11:58:32 2011 +0100
-
-    CHANGES: BUG: 3444939: BUG: 1796886: snmplib: Avoid that sprint_realloc_octet_string() embeds unprintable control characters or binary zeroes in its output. This behavior could cause truncated output in snmptrapd.
-
-commit db8f558fd2f3b7c109ea3a1c2133b75b6f8cb2ad
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Dec 1 10:04:41 2011 +0100
-
-    Compiler warning fix: pass unsigned chars to isprint() instead of signed chars.
-
-commit 800dc1028e7e0cd8cc14d84dd31723d47ac073db
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Dec 1 10:18:58 2011 +0100
-
-    Reduce the scope of the hint variable
-
-commit 83ea4a080c90a74b9743d3f24cf0d4b8a1e8c849
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Nov 27 21:16:52 2011 +0100
-
-    Reduce the scope of the variable qos
-
-commit 7b9e03441c3dc3a07670ed01f5d04791a82c750c
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:04:01 2011 +0100
-
-    Remove #define val(x) __STRING(x) and change val(x) into __STRING(x).
-
-commit 2f379b0e4ecadfa4e541e3005c8fc8281882b741
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 15:58:47 2011 +0100
-
-    Follow-up for commit 1aa704e: unbreak the MSVC build
-
-commit 64ef0f71127617837027fb2cfaf174b95ba79e0d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:19:50 2011 +0100
-
-    Add SNMP::register_debug_tokens()
-
-commit 7bead9ca917c67566d5ed98ab507bbc02816217d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:08:08 2011 +0100
-
-    AgentX subagent: Reduce code duplication
-
-commit 0ed71541f87e7d78bc998eebda3217c59e1df830
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:03:19 2011 +0100
-
-    CHANGES: snmplib: Add Doxygen-style function header for netsnmp_register_default_target() and netsnmp_clear_default_target().
-
-commit 8c2972b61e40169b47c50988b6ae9e8c285f84f8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Nov 30 14:02:54 2011 +0100
-
-    CHANGES: perl: Fix spelling in the documentation of the SNMP module
-
-commit 5df2bac6bd717799311f001ac7b73db88f11bdda
-Author: Magnus Fromreide <magfr at 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 at 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 at linux.vnet.ibm.com>
-
-commit 82e39fb6706df90ecf2fc9e10ada2b962ee196f3
-Author: Dave Shield <D.T.Shield at 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 at gmail.com>
-Date:   Tue Nov 29 08:29:49 2011 +0100
-
-    CHANGES: FreeBSD: Restore IP_RECVDSTADDR functionality.
-
-commit 7f47f52e481baa9aafb5784244b0dd2653e7dcff
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Mon Nov 28 08:51:39 2011 +0100
-
-    CHANGES: snmplib: Use SNMP_ALLOC_TYPEDEF to allocate transports in order to avoid the separate call to memset.
-
-commit cf86039e3086225c3085bb9adf088b8ba5ba6979
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Nov 22 15:02:58 2011 +0100
-
-    CHANGES: MinGW: testing: Make unit-tests/T102pdu_build_clib pass.
-
-commit 1a87e76e00ee3d5cd37a07bfc3d84490d3c2a4ec
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Nov 22 14:55:42 2011 +0100
-
-    CHANGES: MinGW: testing: Make unit-tests/T014gethostbyaddr_clib pass
-
-commit 8867fd1dcfe72b59d07322ff38a699b66ec4f326
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Nov 22 09:44:38 2011 +0100
-
-    CHANGES: snmplib: Make netsnmp_large_fd_set_resize() robust against memory allocation failures.
-    
-    CHANGES: snmplib: Make NETSNMP_LARGE_FD_ZERO() use memset() on Unix systems instead of an explicit loop.
-    CHANGES: snmplib: Make sure that on Unix systems netsnmp_large_fd_clr() doesn't try to read memory it isn't allowed to read if the first argument equals -1 (a value that shouldn't be passed by the caller).
-    CHANGES: snmplib: Make netsnmp_large_fd_is_set() return false on Unix systems if the first argument equals -1 (a value that shouldn't be passed by the caller).
-    CHANGES: Windows: Make netsnmp_large_fd_set_resize() shrink behavior correct.
-
-commit 23db0cf09b8b0eab37b749ef0c3c3f306900245c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Mon Nov 21 23:02:57 2011 +0100
-
-    Fix casting tv_usec to int which may be too short
-
-commit 80ee4022e534e64aad5a5f27192843b42acb85e0
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Nov 19 09:14:02 2011 +0100
-
-    CHANGES: snmpd: BUG: 3439234: Move netsnmp_pass_str_to_errno to pass_common and rename it to netsnmp_internal_pass_str_to_errno
-
-commit 0baa9296c072bb3735760b0dd992f2d1d3ca27fa
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Nov 19 09:05:24 2011 +0100
-
-    CHANGES: snmpd: BUG: 3439234: Correct the dependencies of ucd-snmp/pass and ucd-snmp/pass_persist
-
-commit 1aa704e4a294430b28e39b6f9e4683b8a48bce04
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Nov 19 08:35:21 2011 +0100
-
-    CHANGES: snmpd: Factor out asc2bin and bin2asc. Add a netsnmp_internal_ prefix to them
-
-commit cda8fe91013f12cbf64a0775abb55720035af931
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Nov 19 00:55:24 2011 +0100
-
-    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 at 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 at users.sourceforge.net>
-Date:   Wed Nov 16 23:33:07 2011 +0100
-
-    Define the full NetBSD hierarchy downwards
-
-commit b881841bd0493dd71d63259bdded449b06f02c32
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:30:33 2011 +0100
-
-    Fix size_t/int mismatches
-
-commit ca294cf75bbc8e90dbf44ee40478935e91db1487
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:18:03 2011 +0100
-
-    Remove unused variables
-
-commit cd32c2dff06b9b452cc18d552d2f2234092c829c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:17:09 2011 +0100
-
-    Fix format warning
-
-commit 883136c2b2fa0739f437a8cfb6614accc76e268e
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:15:58 2011 +0100
-
-    More needs for NETSNMP_PRIo format specifier
-
-commit b8084a7ccc909b6d6db7c0e8e596d78671f5678b
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:14:26 2011 +0100
-
-    Fix using char as array index (ctype.h)
-
-commit 84529e6320a89d97f1314aebad806255d2a1b18c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 23:00:57 2011 +0100
-
-    Fix missing format for FreeBSD 4
-
-commit 4bd0352955a2551bfe02308dd134b9128c98b9e9
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 22:59:36 2011 +0100
-
-    Fix paranthesis problem
-
-commit fe6269b1900cf44dc27a199a761d15a01c3f3092
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 22:58:34 2011 +0100
-
-    Fix size_t/int mismatches
-
-commit a4db9f9fc13d21ecff488eb410376edda6c28232
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 13:43:34 2011 +0100
-
-    Remove unused variables
-
-commit 390c0114c8ec0bdb27b08b6f74e3f6ef3a62981b
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 13:37:49 2011 +0100
-
-    Fix format specifiers to avoid warnings
-
-commit 25cfc1962ae576ccb1558da1e3ef8b6c17f63c16
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 11:27:53 2011 +0100
-
-    Really up-to-date mibs
-
-commit 0e86c781f3989bf022c8993a118617b74a75420c
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 09:17:19 2011 +0100
-
-    memory_linux: get Shmem from /proc/meminfo for 2.6 (or newer) kernels
-
-commit bf264d15ded7acbbf2e3871b98fd1fcef43d9ec3
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 09:16:16 2011 +0100
-
-    memory_linux: close sockets in error situations
-
-commit 57ff8a40bae5d9bcad16089142a9cf328c9fa1f5
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 16 09:14:57 2011 +0100
-
-    disman/ping, disman/traceroute: Close sockets in error situations
-
-commit 8a2502a15c3217b95939a3c836167d230ac35f02
-Author: Niels Baggesen <nba at 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 at 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 ba619804e5978a8df754844efcca52b69b5015fa
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Nov 14 13:34:20 2011 +0100
-
-    MinGW: Make sure that the backslashes in the pskill message are displayed.
-
-commit 923eecc507f75043b60c5e68053a4f396ab0b0d2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Nov 14 12:36:38 2011 +0100
-
-    Compiler warning fix for systems where uint64_t = unsigned long (e.g. RHEL 6.1/x86_64)
-
-commit 434bfc1f7457550b6f87d5bcd511276b270b5964
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Mon Nov 14 11:22:53 2011 +0100
-
-    CHANGES: snmpd: from Martin Wilck: fixed snmpd crashing with 'select: bad file descriptor'.
-    
-    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 at 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 at users.sourceforge.net>
-Date:   Fri Nov 11 19:00:12 2011 +0100
-
-    NetBSD-6: One more instance of timespec replacing timeval
-
-commit 8ad6c53fdec5adeae4e52f1751ecec4a345bab05
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Nov 11 18:59:01 2011 +0100
-
-    Fix buig #3436527: arp_netlink: fix dying reload of cache
-
-commit 378ffed03ba79a8346d6c62781e2ddf5ce92a478
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Fri Nov 11 18:55:43 2011 +0100
-
-    Fix bug #3436528: swinst_pkginfo: recover from NULL return from opendir
-
-commit d7ad8f5f9f3f67f16f65c2515d11e194d2cdd12c
-Author: Bart Van Assche <bvanassche at 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 at 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 at 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 at 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 at lysator.liu.se>
-Date:   Mon Nov 7 01:25:57 2011 +0100
-
-    CHANGES: testing: Remove unused variable
-
-commit e221e65fdc1c68f1968651717dcc9ccfb6414783
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Nov 3 15:05:00 2011 +0100
-
-    Fix warnings about converting sockaddr_in * into sockaddr *.
-    
-    This is a follow-up for commit a0af385.
-
-commit 2e7e9eda0b0d62a7645a9a8f70ef3fb6f3dd6941
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Nov 3 11:17:48 2011 +0100
-
-    Fix uninitialized variable warnings.
-
-commit 3462ebcdd0b7c298cb15c3099736f4f952257846
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Oct 28 16:07:15 2011 +0200
-
-    Remove those superfluous parentheses that trigger a clang warning.
-
-commit 3e5fedd3e7d1ef31683604bf73dc56e944cad349
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Thu Nov 3 09:45:27 2011 +0100
-
-    CHANGES: snmpd: fixed UCD-SNMP-MIB::systemStats after 30 days of uptime.
-    
-    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 at users.sourceforge.net>
-Date:   Wed Nov 2 22:59:08 2011 +0100
-
-    dskIndex was off by one
-
-commit a5b28829e64d5f3b87e4b9b1ef8cc204f33a61b7
-Author: Niels Baggesen <nba at users.sourceforge.net>
-Date:   Wed Nov 2 21:25:07 2011 +0100
-
-    Solaris needs $AWK to get a usable nawk
-
-commit 2801a2139f27021e1ab15e362e2d3d624ffaa494
-Author: Niels Baggesen <nba at 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 at 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 at 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 at 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 at lysator.liu.se>
-Date:   Sat Oct 29 08:34:33 2011 +0200
-
-    CHANGES: snmpd: Disable the support for integer64 in pass scripts if compiling without opaque-special-types.
-
-commit 29bf69d70424f359d9c87f07a964a099415649a5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 10 13:02:25 2011 +0200
-
-    CHANGES: snmptrapd_sql: Avoid that a linker error is triggered on systems where my_progname is missing in libmysqlclient (e.g. Fedora 15 and 16).
-    
-    This is a backport of commit 9f653f7.
-
-commit 2cc9504b9bb8625b94be6cda7e60993d059cd928
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Oct 26 09:01:23 2011 +0200
-
-    CHANGES: snmplib: BUG: 3428506: Fix netsnmp_gethostbyaddr()
-    
-    This patch should fix the regressions introduced by commit 85d96c4 (May 13, 2011).
-
-commit 9b427b353f1ceb8fe87e6fc8ed3b6cfab3ce7f20
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Oct 27 08:20:00 2011 +0200
-
-    MinGW: Avoid confusion between MinGW's kill.exe and the SysInternals pskill.exe
-
-commit 2c45f92cfcb5b05e049226a5a7883a0b106011ae
-Author: Bart Van Assche <bvanassche at 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 at 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 at acm.org>
-Date:   Wed Oct 26 09:32:46 2011 +0200
-
-    Fix compiler warnings about casting away const
-
-commit 13952f6bee9f408867ab6d2fdfdde4f284074957
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Oct 26 14:05:16 2011 +0200
-
-    CHANGES: snmplib: from Siddhesh Poyarekar: properly clean up old requests in a subagent when we reconnect to master.
-    
-    An snmp subagent linked against net-snmp-libs may crash if it handles a
-    response which has magic referring to an older disconnected main session. This
-    may happen when the subagent
-    attempts to clean up old requests on reconnection of the disconnected master
-    session.
-
-commit ae052472b22720d08369e85127db214245df2e3f
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Oct 25 16:15:17 2011 +0200
-
-    CHANGES: perl: fixed segmentation fault when handler registration fails.
-    
-    When netsnmp_register_handler fails, it frees its reginfo -> nsahr_DESTROY (and any other function) must not dereference it.
-
-commit c199bf91b6239f26b2aab34e8575e0f0df9cde9b
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Mon Oct 24 14:25:28 2011 +0200
-
-    CHANGES: snmpd: xfs, jfs and vxfs filesystems are now recognized in hrStorageTable
-
-commit 747fdc71e64d09e080928ebbb4d04cbde3906799
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Wed Oct 5 15:57:59 2011 +0200
-
-    CHANGES: snmpd: Lowered severity of 'error finding row index in _ifXTable_container_row_restore' message.
-    
-    The message is shows up when snmpd is started and there is different set of network interfaces than it was when snmpd wast last stopped. This is common on ppp-servers or virtual hosts.
-
-commit 250f698e59eab9f1ffd332ff59fdb72ea0df06ff
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Oct 23 08:51:23 2011 +0200
-
-    CHANGES: building: Make the transport configuration code work again
-    
-    Previously the transport inheritance processing code ran with
-    NETSNMP_FEATURE_CHECKING set. In this mode the file net-snmp/feature-details.h
-    is requiered. That file is created during the first make run, and that happens
-    after configure is run.
-    Change this to undefine NETSNMP_MINIMAL_CODE, effectively turning off feature
-    support during transport configuration in order to make it work at all.
-
-commit 6ef6907642247c663b9b8964b9fd44a211dbcaa7
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Oct 20 20:30:54 2011 +0200
-
-    CHANGES: snmpd: BUG: 3408398: Fix a memory leak in agent/mibgroup/hardware/fsys.
-    
-    This memory leak was introduced via commit
-    9bf3d96d96a8ecd4a5fc35c326dc937467002b6c: Initial HAL
-    implementation of FileSystem information (March 7, 2008).
-
-commit cf82b894b2217c26edc6f1356351c932415604e2
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Sat Oct 15 14:45:08 2011 +0200
-
-    CHANGES: snmplib: BUG: 3423915: Change default number of retries back from 0 to 5
-    
-    This patch fixes a bug introduced via commit 6cac050 (May 5, 2011,
-    added support for specifying the default number of retries in
-    snmpd.conf).
-
-commit c11adaa12915abfee629bb6c026c21f2185b216e
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 17 10:24:46 2011 +0200
-
-    CHANGES: Win32: Avoid that compiling the header file <net-snmp/net-snmp-config.h> with the MinGW gcc compiler triggers warnings about "pragma comment".
-
-commit b17a72a793483aee4a5bb2f2e2c7f4fd869817e6
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 17 10:22:20 2011 +0200
-
-    CHANGES: Win32: Avoid that the PACKAGE_* macros defined in <net-snmp/net-snmp-config.h> cause trouble when including this header in a package that uses the GNU autotools.
-
-commit 664d3ae107d754051b8c42279d459aa57a1be1c3
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 10 16:47:16 2011 +0200
-
-    MinGW, hw_fsys: Use proper format specifiers in a debug statement.
-    
-    This patch fixes an issue introduced in commit 76ff25d.
-
-commit 211dcb49306561e35ba3c213be7cfa257b40a8e5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 10 15:52:43 2011 +0200
-
-    Avoid that gcc 4.6 complains about set but not used variables
-
-commit 9f653f73e5aa70f0bef1174632e95594f87f669f
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Oct 10 13:02:25 2011 +0200
-
-    CHANGES: snmptrapd_sql: Avoid that a linker error is triggered on systems where my_progname is missing in libmysqlclient (e.g. Fedora 15 and 16).
-
-commit 4c83b9229a7454f34f6ff75f69e67e4030c419b5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Oct 7 15:58:45 2011 +0200
-
-    CHANGES: snmplib: Set the rpath for libperl.so in libnetsnmpmibs.so such that the dynamic linker can find libperl.so without requiring the user to modify the dynamic linker settings.
-    
-    This change in agent/Makefile.in is necessary on the 5.5 branch and
-    later but not on the 5.4 branch. That is because the 5.4 branch uses
-    an older version of libtool that propagates the rpath of dependent
-    libraries. This is called inter-library dependency tracking in the
-    libtool manual. This functionality is present in libtool version 1
-    but not in libtool version 2. For more background information about
-    dynamic libraries and rpaths, see also the document with the title
-    "RpathIssue" on the Debian wiki (http://wiki.debian.org/RpathIssue).
-
-commit 8925c912d2639752a84bcffeef1b70a81026449b
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Oct 7 14:21:28 2011 +0200
-
-    CHANGES: agent: HOST-RESOURCES-MIB: Add missing brace in a debug statement
-
-commit 76ff25d9bf97579e7213102065fd5096f049a4c5
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Oct 7 14:13:18 2011 +0200
-
-    CHANGES: snmpd: HOST-RESOURCES-MIB::hrStorageTable: fix bug in handling large filesystems, where large means above 8 TB (= 2**31 * 4096 bytes).
-    
-    This patch fixes a bug introduced in commit
-    71d8293f387a6cd66bb0dbb13c0f50174d2e678b.
-    For the original bug report, see also
-    https://sourceforge.net/tracker/?func=detail&atid=112694&aid=3419825&group_id=12694.
-
-commit 866033db9904ffb1203f283f838092e4cf68de6b
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Oct 6 07:33:27 2011 +0200
-
-    CHANGES: snmpd: Remove spurious #endif that seems to be the result of a mismerge.
-
-commit 20f4f3267ee20d55705b7a43789879c103f96620
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Thu Oct 6 00:08:59 2011 +0200
-
-    CHANGES: building: Add missing end comments to feature ifndefs.
-
-commit e5de2cc57bf304f3320cad0034d2ea2d8aedc436
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Oct 5 09:15:10 2011 +0200
-
-    CHANGES: agent: Log a more detailed error message if embedded perl initialization fails
-
-commit 5eef9990de28f63111e6c093be0f3c7ae2d513a1
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Oct 5 08:45:49 2011 +0200
-
-    CHANGES: perl: Add agent::uptime()
-
-commit 6810ed42f9bc560750d6dbfb7e50b6e2ac11899c
-Author: Bart Van Assche <bvanassche at 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 at 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 6591937adb85000c27069c4be84cf4688838ebcd
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Oct 2 16:18:03 2011 +0200
-
-    CHANGES: building: Add dependencies on @FEATURETARGS@ to make the subtarget work as well.
-
-commit b9c8012ec035bc084f175876fecc375195f9be81
-Author: Magnus Fromreide <magfr at 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 at lysator.liu.se>
-Date:   Sun Oct 2 15:44:36 2011 +0200
-
-    CHANGES: building: Remove the use of -L flags for internal libraries as it confuses libtool.
-
-commit 93dc1235a0db58ffd29617cff00dc11263780202
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Oct 2 11:31:46 2011 +0200
-
-    CHANGES: building: Make make apps work again
-    
-    apps include snmptrapd and that require the agent libraries as well.
-
-commit ba41488ed44cd23c25963d4fc56c476853b2ab59
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sun Oct 2 11:29:33 2011 +0200
-
-    CHANGES: building: When you say make libs you expect all the libs to be built.
-    
-    This is demonstrated by the snmptrapd target at the top level which obviously
-    expected both libs to be built and so failed to compile before this patch.
-
-commit 3057c73e093473be46254bcdfb4ca788e432d1b8
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Sep 30 07:32:52 2008 +0000
-
-    NEWS: building: PATCH: 2091156: correctly declare dependencies in Makefile.
-    'make -j <N>' should work now.
-    
-    Backport this to V5-4 as it is needed for correct operation in the single
-    threaded case of make miblib as well.
-
-commit 6eae340fa2a64086592982cc52735bc01487d978
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Sat Oct 1 19:33:50 2011 +0200
-
-    CHANGES: building: Silence libbsd 0.3.0 nagging
-    
-    If you have libbsd 0.3.0 installed then their version of nlist.h warns and
-    tries to make you include bsd/nlist.h instead. The problem is that we don't
-    need that compatibility library as we know how to do it ourself so it becomes
-    pure nagging. This patch adds a define that changes the warning into an
-    error and then figures out that there is no usable nlist.h and ignores it
-    for the future.
-
-commit ac38cb531bee50edc8d4c834f3005f5992c771d8
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 29 19:03:02 2011 +0200
-
-    CHANGES: perl: Enable sending SNMPv2 traps with an empty varbind list
-
-commit a75de2971527ac2d2e812024298602bb2412f337
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Sep 30 10:41:44 2011 +0200
-
-    perl/SNMP/SNMP.xs: Update emacs modeline
-
-commit 848f6300efe38492fb454451a030f0b7e6ff8c9d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Sep 30 10:41:44 2011 +0200
-
-    perl/SNMP/SNMP.xs: Update emacs modeline
-
-commit c1374473ecd8ec9e0310013861ee18c83e5d6c5b
-Author: Magnus Fromreide <magfr at lysator.liu.se>
-Date:   Fri Sep 30 03:29:36 2011 +0200
-
-    CHANGES: testing: Protect the use of $OSTYPE to ensure that 'test' get enough parameters.
-
-commit 7e97a20633a57eae39d015b23339463c32f5f848
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 29 10:22:08 2011 +0200
-
-    CHANGES: testing: Convert snmplib/test_binary_array.c into two unit tests
-
-commit 9c0dd98176457342fffaa5e74d802e3145ed70e7
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 29 08:56:17 2011 +0200
-
-    CHANGES: testing: Add unit test for netsnmp_register_old_api()
-
-commit 5fd26e4fa3e000ea9c81c38ab975b7946efe2157
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Sep 28 17:49:55 2011 +0200
-
-    CHANGES: agent: Avoid that netsnmp_register_old_api() failure triggers a double free.
-    
-    Fixes a regression introduced via commit
-    aa4d47c2609e52818c9cdf1a8e2205de9a335a0a (svn r19515).
-
-commit d2252d016693807326f72b66123649dea00af916
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 29 10:20:08 2011 +0200
-
-    CHANGES: testing: Require a semicolon after OK(), OKF() and PLAN()
-    
-    Also, let OKF() emit a single line of output such that all output it
-    produces is visible in the output of "make test".
-
-commit 1421924b4852142192c5bb9e93ddbfed69e908fa
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Sep 21 22:20:08 2011 +0200
-
-    CHANGES: snmplib: Avoid waiting indefinitely if a session has timeout zero
-
-commit 5f27f4f74ae2bd5baf503cf306b4f9a2841a57cf
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:32:03 2011 +0200
-
-    CHANGES: MinGW: testing: Fix a race condition in the test runner
-
-commit 09703958cc5ea845929ae19ef9e0804aecaa512e
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 27 12:42:41 2011 +0200
-
-    CHANGES: testing: Avoid false negative for T114agentxagentxtrap_simple caused by the test result being present in the hex dump ("mostly_harmless")
-
-commit 439300279f6f31438638d2f222c24c3c841fa6ab
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 27 11:16:32 2011 +0200
-
-    CHANGES: building: Micro-optimize agent module dependency analysis
-    
-    This makes the agent module dependency analysis carried out by the
-    configure script slightly faster, especially on those systems where
-    fork() is expensive (Cygwin).
-
-commit bbc680004a1376038dfdc4172dbe7b9e311fba68
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Sep 26 10:14:45 2011 +0200
-
-    CHANGES: MinGW: testing: Make test T130snmpv1vacmget_simple pass
-
-commit 70b06cf789208eaa890bfbcd638bdb775f817054
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 20 09:50:57 2011 +0000
-
-    CHANGES: Windows: testing: perl: Fix an incorrect message printed while running the Perl module regression tests
-
-commit 70bcc8de2d0fc92bbb8481823630fab9bc87af75
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Fri Sep 16 16:14:24 2011 +0200
-
-    CHANGES: MinGW: testing: Obtain the MSYS path from the environment
-
-commit 626275e2d1acafae7144a33ed301a40f596b37b0
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Wed Sep 14 13:14:17 2011 +0200
-
-    CHANGES: Windows: Remove superfluous link libraries from project files (*.dsp)
-
-commit 38fc3caa9eeb3800254b4f6ad6f8f4764c0f83db
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 20 09:34:08 2011 +0200
-
-    CHANGES: snmplib: Make netsnmp_callback_accept() return -1 (failure) instead of 0 (STDIN_FILENO)
-
-commit 6c8c7e8aca8fc2eeb52010ae3e9fee6dd83ef780
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 13 09:58:26 2011 +0200
-
-    CHANGES: snmplib: Remove obsolete snmp_get_fd_for_session() declaration
-
-commit 0860d11fd8fc5dbdaaae2261fae2c07fb9c2c82d
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 8 13:54:55 2011 +0200
-
-    CHANGES: Windows: MSVC: Avoid that the typedefs in <net-snmp/net-snmp-config.h> conflict with those in <stdint.h> from the msinttypes project
-
-commit f8a036f63ff68f083436120e0abd478b692a2f61
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Sep 8 13:21:06 2011 +0200
-
-    CHANGES: Windows: MSVC: When linking with OpenSSL, link with user32.lib too
-
-commit 836a23e10ca810c3899902d32587616a9d1203df
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Thu Jul 14 18:38:13 2011 +0200
-
-    CHANGES: Windows: MSVC: Link with proper libeay32 library
-
-commit 7b07fd6cdef49ec7bb04b166e2a4fbb37b582840
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 11:10:38 2011 +0200
-
-    CHANGES: testing: Remove an incorrect comment from simple_eval_tools.sh
-
-commit 98f6d29d981ff8e607600c63dadb240535629807
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:49:03 2011 +0200
-
-    CHANGES: testing: Make ISDEFINED() check for an exact match instead of a prefix match
-
-commit 52cd0031a31f692f13263a94c335d06be1454803
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:12:59 2011 +0200
-
-    CHANGES: MinGW: testing: Make those regression tests pass for which SNMPCONFPATH and/or SNMP_PERSISTENT_DIR matter
-
-commit f5cd89bd3356dd74e1556c0b50966a643f192085
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:12:59 2011 +0200
-
-    CHANGES: MinGW: testing: Fix a race condition in the test framework
-
-commit deedd52c834a6448852a06785536e13865969694
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Tue Sep 6 10:12:58 2011 +0200
-
-    CHANGES: MinGW: Support the directory structure of recent Shining Light OpenSSL binary distributions
-
-commit d55bd4e0549f03b6fd32562c2aa7fe39272a9ef7
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Sep 28 06:55:19 2011 -0700
-
-    remove the v5.7 from the frozen list
-
-commit ac2aed3c94bb2ebb473af0a1e20f0561ad629956
-Author: Wes Hardaker <hardaker at users.sourceforge.net>
-Date:   Wed Sep 28 06:55:11 2011 -0700
-
-    remove the v5.7 from the frozen list
-
-commit 46eac02e9a27bf4f3068e795cab891f05a848870
-Author: Bart Van Assche <bvanassche at acm.org>
-Date:   Mon Sep 26 21:49:27 2011 +0200
-
-    CHANGES: snmpd: Avoid that snmpd crashes if started on a system with another OpenSSL library version than the one it has been built with.
-
-----------------------------------------------------------------------
-
-Changes: V5.7.rc3 -> V5.7.1
-
-2011-09-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile, 
-      dist/net-snmp.spec: Version number update: 5.7.1
-
-
-2011-09-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * ChangeLog: version update for 5.7.1.rc3
-
-----------------------------------------------------------------------
-
-Changes: V5.7.rc2 -> V5.7.1.rc3
-
-2011-09-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile, 
-      dist/net-snmp.spec: Version number update: 5.7.1.rc3
-
-
-2011-09-22  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   * : commit 07f61a02a2409096e5c962cd211126396ad09d2b Merge: ee0d3ad
-
- bda324b Author: Dave Shield <D.T.Shield at liverpool.ac.uk> Date:   Thu
- Sep 22 10:39:59 2011 +0100
-
-2011-09-22  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   * : commit c55f608f16f160f5e79dc057f8878def462973e1 Author: Dave
-
- Shield <D.T.Shield at liverpool.ac.uk> Date:   Thu Sep 22 10:35:24 2011
- +0100
-
-2011-09-22  Steve Friedl <steve at unixwiz.net>
-
-   * agent/mibgroup/ucd-snmp/disk_hw.c: CHANGES: snmpd: 3409692:
-
- Calculate disk percentage usage via floating-point arithmetic to
- avoid integer arithmetic errors.  (Code based on patch, rather than
- applied verbatim)
-
-2011-09-22  Steve Friedl <steve at unixwiz.net>
-
-   * agent/mibgroup/ucd-snmp/disk_hw.c: 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)
-
-2011-09-22  Bart Van Assche <bvanassche at acm.org>
-
-   * ChangeLog: The only change between V5.7.rc1 and V5.7.1.rc2 is the
-
- version number. Make this clear in the ChangeLog file.
-
-2011-09-21  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * ChangeLog: changelog update
-
-----------------------------------------------------------------------
-
-Changes: V5.7.rc1 -> V5.7.1.rc2
-
-2011-09-21  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile, 
-      dist/net-snmp.spec: Version number update: 5.7.1.rc2
-
-
-2011-09-04  Magnus Fromreide <magfr at lysator.liu.se>
-
-   * : commit 4d6defdae72c35b1080076180313d2910568475b Merge: d3a758c
-
- 3b7fdc4 Author: Magnus Fromreide <magfr at lysator.liu.se> Date:   Sun
- Sep 4 14:46:02 2011 +0200
-
-2011-09-04  Magnus Fromreide <magfr at lysator.liu.se>
-
-   * : commit bbe2c19a01ecec024f741e2e54701ae6212f4c3e Author: Magnus
-
- Fromreide <magfr at lysator.liu.se> Date:   Sun Sep 4 14:44:38 2011
- +0200
-
-2011-09-04  Magnus Fromreide <magfr at lysator.liu.se>
-
-   * : commit d3a758cf30254b80706a43f191c15238b2cb73c9 Merge: c107ce0
-
- 227dbd7 Author: Magnus Fromreide <magfr at lysator.liu.se> Date:   Sun
- Sep 4 14:08:35 2011 +0200
-
-2011-09-04  Magnus Fromreide <magfr at lysator.liu.se>
-
-   * : commit 9efa467a972bb6e1c7fbdaf2e27429d29f4ab89e Author: Magnus
-
- Fromreide <magfr at lysator.liu.se> Date:   Sun Sep 4 14:00:12 2011
- +0200
-
-----------------------------------------------------------------------
-
-Changes: V5.7.pre2 -> V5.7.1.rc1
-
-2011-08-30  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/Makefile.depend, agent/helpers/Makefile.depend, 
-      agent/mibgroup/Makefile.depend, apps/Makefile.depend, 
-      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend: make
-
- depend for 5.7.1.rc1
-
-2011-08-30  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/read_config.c: fix C++ comment
-
-
-2011-08-30  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile, 
-      dist/net-snmp.spec: Version number update: 5.7.1.rc1
-
-
-2011-08-30  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit c107ce078409d265b9b218d49f3815b795db1dc3 Merge: ea4b3b2
-
- 915aa8d Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Tue Aug 30 19:07:07 2011 -0700
-
-2011-08-30  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 422b082a9593ca9c65aac449e6d128a9e97e94fb Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Tue Aug 30
- 19:06:56 2011 -0700
-
-2011-08-30  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit ea4b3b23f350583e5626328b5367e6c617255f95 Merge: bcf38b8
-
- b34d5dc Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Tue Aug 30 16:38:25 2011 -0700
-
-2011-08-30  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 71c0d7650493710631fa08d5dc4dad501a9aa771 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Tue Aug 30
- 16:37:41 2011 -0700
-
-2011-08-30  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit b13f4d8886b6a4e73bc07df2b90d1a6115cf3dfc Merge: f7e21f2
-
- 64e9778 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Tue Aug 30 11:09:30 2011 -0700
-
-2011-08-30  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit b5d2a43f97a59858c944eba2290b59b93c230a6a Merge: 86efee2
-
- cf4cf7f Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Tue Aug 30 11:09:29 2011 -0700
-
-2011-08-30  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-6-patches' into
-
- V5-6-patches
-
-2011-08-30  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: auto-determine patch arguments if
-
- possible for nspatchtry
-
-2011-08-30  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: make it so the git commit line can
-
- be cut/paste without linebreaks
-
-2011-08-30  Ronald Wahl <rwa-co at users.sourceforge.net>
-
-   * snmplib/read_config.c: CHANGES: libnetsnmp: PATCH 3394586: from
-
- rwa-co: file descriptor leak in read_config (+fix) Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-30  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: describe that nsrollup needs to be run now.
-
-
-2011-08-30  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   * : commit 2b92a0a1e3a0618c515ebd902271b95c08931afa Merge: a086347
-
- 86efee2 Author: Dave Shield <D.T.Shield at liverpool.ac.uk> Date:   Tue
- Aug 30 11:28:14 2011 +0100
-
-2011-08-30  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   * agent/mibgroup/hardware/fsys/fsys_mntent.c: Apparently IRIX has a
-
- different API for statfs
-
-2011-08-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/helpers/table_tdata.c: don't provide a feature when your a
-
- child of another feature
-
-2011-08-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-7-patches' into
-
- V5-7-patches
-
-2011-08-28  Magnus Fromreide <magfr at lysator.liu.se>
-
-   * apps/Makefile.in: Use the feature target instead of the target
-
- when building the feature set
-
-2011-08-29  Thomas Anders <tanders at users.sourceforge.net>
-
-   * agent/mibgroup/hardware/fsys.h: the irix6 build only defines
-
- irix6, not irix
-
-2011-08-29  Thomas Anders <tanders at users.sourceforge.net>
-
-   *  configure, configure.d/config_os_struct_members, 
-      include/net-snmp/net-snmp-config.h.in: re-add sockaddr_un.sun_path
-
- configure check (lost in previous commit)
-
-2011-08-28  Thomas Anders <tanders at users.sourceforge.net>
-
-   * agent/mibgroup/hardware/fsys.h: 
-
- agent/mibgroup/hardware/fsys/fsys_mntent.c doesn't build on IRIX yet
-
-2011-08-28  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit a0863479d80962c652947dfdee11bdd136c0e013 Merge: 5250893
-
- f95aa31 Author: Thomas Anders <tanders at users.sourceforge.net> Date:
- Sun Aug 28 23:37:27 2011 +0200
-
-2011-08-28  Thomas Anders <tanders at users.sourceforge.net>
-
-   *  configure, configure.d/config_os_struct_members, 
-      include/net-snmp/net-snmp-config.h.in, snmplib/snmpUDPDomain.c, 
-      win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: CHANGES: building: build fix
-
- for systems lacking fields msg_control/msg_flags in struct msghdr
- (backport)
-
-2011-08-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/mfd-interface.m2c: added required features for
-
- mfd handling
-
-2011-08-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * .gitignore: added .ft and .ft.1 for feature files
-
-
-2011-08-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * perl/agent/agent.xs: no_write_support supported
-
-
-2011-08-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/mfd-interface.m2c: handle no-write-support with
-
- ifdefs
-
-2011-08-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 525089327aba7d01d633c634c6b6f06de42acbb8 Merge: 1bb234a
-
- 04fd71a Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 25 06:57:21 2011 -0700
-
-2011-08-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit ea8bed79e81c42e33cbf37ca6f3c03c549987b22 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Thu Aug 25
- 06:56:22 2011 -0700
-
-2011-08-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * python/netsnmp/client.py: use >> to print to stderr
-
-
-2011-08-23  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * local/minimalist/feature-remove: CHANGES: build: Do not generate
-
- an output file on failure make supposes that no output is generated if the command failed.
- Change feature-remove to follow that presumption.
-
-2011-08-21  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * local/minimalist/feature-remove: Correct typo
-
-
-2011-08-23  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit 1bb234a6cc36e6a4efbe3fb29c480210dc2b9c13 Merge: 35a98c3
-
- 1f082a3 Author: Thomas Anders <tanders at users.sourceforge.net> Date:
- Tue Aug 23 23:38:07 2011 +0200
-
-2011-08-23  Thomas Anders <tanders at users.sourceforge.net>
-
-   * configure, configure.d/config_os_struct_members: make sure that
-
- _KERNEL is defined to 1 so that "#if _KERNEL" works on systems that
- need it (e.g. IRIX)
-
-2011-08-23  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit 35a98c3d7c5a3c5df356add9e8b808287899b69a Merge: 1f37f57
-
- a27f744 Author: Thomas Anders <tanders at users.sourceforge.net> Date:
- Tue Aug 23 23:30:27 2011 +0200
-
-2011-08-23  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit 26bb2470c106f834442a2adbc7611bf16657fbdf Author: Thomas
-
- Anders <tanders at users.sourceforge.net> Date:   Tue Aug 23 23:22:44
- 2011 +0200
-
-2011-08-22  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : autoreconf
-
-
-2011-08-22  Thomas Anders <tanders at users.sourceforge.net>
-
-   *  configure.d/config_os_struct_members, 
-      snmplib/transports/snmpUDPBaseDomain.c, 
-      snmplib/transports/snmpUDPDomain.c, 
-      snmplib/transports/snmpUDPIPv4BaseDomain.c, 
-      win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: CHANGES: building: build fix
-
- for systems lacking field msg_flags in struct msghdr (e.g. IRIX)
-
-2011-08-21  Thomas Anders <tanders at users.sourceforge.net>
-
-   * configure: autoreconf
-
-
-2011-08-21  Thomas Anders <tanders at users.sourceforge.net>
-
-   * configure: autoreconf
-
-
-2011-08-21  Thomas Anders <tanders at users.sourceforge.net>
-
-   * configure: autoreconf
-
-
-2011-08-21  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit b62cb0864f577ba85573d0d250d12a39387c07b4 Author: Thomas
-
- Anders <tanders at users.sourceforge.net> Date:   Sun Aug 21 00:55:33
- 2011 +0200
-
-2011-08-21  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit 71b90b6f217944b4ffc1836e5160d40e33b4423d Author: Thomas
-
- Anders <tanders at users.sourceforge.net> Date:   Sun Aug 21 00:40:28
- 2011 +0200
-
-----------------------------------------------------------------------
-
-Changes: V5.7.pre1 -> V5.7.1.pre2
-
-2011-08-18  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/Makefile.depend, agent/helpers/Makefile.depend, 
-      agent/mibgroup/Makefile.depend, apps/Makefile.depend, 
-      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend: make
-
- depend for 5.7.1.pre2
-
-2011-08-18  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile, 
-      dist/net-snmp.spec: Version number update: 5.7.1.pre2
-
-
-2011-08-18  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 03053479604bc83efbea579b4562b1831cea1cb6 Merge: f73e636
-
- d94df39 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 18 11:57:46 2011 -0700
-
-2011-08-18  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 28b54070514753e8d8abb718b224d657ab7a8ab8 Author: Garrett
-
- Cooper <yaberauneya at users.sourceforge.net> Date:   Thu Aug 18
- 11:49:56 2011 -0700
-
-2011-08-18  Vladimir Kondratiev <wulf2001 at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/disk_hw.c: CHANGES: agent: PATCH 3389228:
-
- from wulf2001: incomplete commit (patch 3386633: fix integer
- overflow) Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-18  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * man/snmp.conf.5.def: Patch from Claus Klein on -coders for fixing
-
- man page typos
-
-2011-08-18  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: changed clientaddr so it registers as pre-mib
-
- to be picked up before the transports get created
-
-2011-08-17  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit c02131e5b35d296755baec99bd363205a86307dd Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Wed Aug 17
- 09:34:00 2011 -0700
-
-2011-08-17  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/system.c: Fix the log message that reports that
-
- gethostbyaddr() is missing
-
-2011-08-17  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 182e1dc0c3eacfa4e9ccdb28600ff0f2370211ae Merge: 499b796
-
- 517b6b0 Author: Bart Van Assche <bvanassche at acm.org> Date:   Wed Aug
- 17 18:09:30 2011 +0200
-
-2011-08-17  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 6580556cc7bd833af731b62ce1ed2017564fe7eb Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Wed Aug 17 18:08:01 2011 +0200
-
-2011-08-14  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 499b796cbd78065c3354779136bd3d9d1f548a58 Merge: 0418ff0
-
- a9cb267 Author: Bart Van Assche <bvanassche at acm.org> Date:   Sun Aug
- 14 08:02:38 2011 +0200
-
-2011-08-14  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 3cb3f1ede388d84e392e1d815d5994a4bf0f10f9 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Sun Aug 14 07:59:25 2011 +0200
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * perl/OID/OID.xs, perl/SNMP/SNMP.xs, perl/agent/agent.xs: Windows:
-
- Make the Perl agent module work again with the original SNMP_FREE()
- definition.
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 0418ff0cda21411a47fa8978c3e0d043a19d24b6 Merge: 26b0aa3
-
- 3c73b48 Author: Bart Van Assche <bvanassche at acm.org> Date:   Sat Aug
- 13 18:42:05 2011 +0200
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * include/net-snmp/library/tools.h: Revert the two most recent
-
- SNMP_FREE() changes (commits
- 47c8ef1b89c6ccb4247d9633477925908c68c1a5 and
- 7f42d0d93320484152271427cc9808cbda49bbd0).
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 26b0aa3010fa182b6039a8c2cad8ccb4571652de Merge: 2f3d607
-
- 0c8e1a9 Author: Bart Van Assche <bvanassche at acm.org> Date:   Sat Aug
- 13 11:43:20 2011 +0200
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 3e50c3e00e9f321fb708bc579eb4dc1a0f1e7c4d Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Sat Aug 13 11:31:40 2011 +0200
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 2f3d6079dc36aad9559d91c5c324e2ce535573dd Merge: e32aa97
-
- ff1734d Author: Bart Van Assche <bvanassche at acm.org> Date:   Sat Aug
- 13 09:08:06 2011 +0200
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit e147e4b96755207de1ce30990d67b4b7c76dd483 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Sat Aug 13 08:39:14 2011 +0200
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * win32/build.pl: CHANGES: Windows: building (build.bat): Install
-
- netsnmp.dll before running the Perl regression tests such that the
- regression tests are run with the correct version of netsnmp.dll.
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * win32/Makefile.in: CHANGES: Windows: perl (build.bat): When
-
- installing development files, install the PDB files too.
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   *  perl/SNMP/t/async.t, perl/SNMP/t/conf.t, perl/SNMP/t/mib.t, 
-      perl/agent/test.pl: CHANGES: testing: Fix Perl regression test
-
- failures All Perl regression tests pass now on Linux and on Windows (MSVC).
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * perl/SNMP/t/async.t, perl/SNMP/t/bulkwalk.t: CHANGES: testing:
-
- Perl regression tests: Don't fail skipped tests.
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * perl/SNMP/SNMP.pm, perl/SNMP/SNMP.xs: CHANGES: perl: Add
-
- SNMP::getenv() and SNMP::setenv().
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * include/net-snmp/library/tools.h, snmplib/tools.c: CHANGES:
-
- snmplib: Add netsnmp_setenv().
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * local/pass_persisttest: local/pass_persisttest: document how to
-
- use on Windows
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * local/pass_persisttest: Set execute flag on local/pass_persisttest
-
- such that the instructions in that file work
-
-2011-08-13  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Fix a suppression pattern
-
-
-2011-08-12  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit e32aa97742232ced3a72f8b845ace5ce3d53b8df Merge: 4adfec8
-
- 86fbd33 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Fri Aug 12 09:11:14 2011 -0700
-
-2011-08-12  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit a73eb40ec263a0fdf53a74e720ddf41c4a7ee3d4 Merge: 7690894
-
- 2940ee3 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Fri Aug 12 09:11:13 2011 -0700
-
-2011-08-12  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 1f0a928a2913cfa7f5ceaaf4696c69fbdc687621 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Fri Aug 12
- 09:09:11 2011 -0700
-
-2011-08-11  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 4adfec81216f6c5bf25c9ac6b2b7478d1be8e842 Merge: 281b869
-
- 2940ee3 Author: Bart Van Assche <bvanassche at acm.org> Date:   Thu Aug
- 11 18:57:29 2011 +0200
-
-2011-08-11  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 1e1000a8815921b5ec2e7997b53592a544b3dfc2 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Thu Aug 11 15:46:32 2011 +0200
-
-2011-08-11  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 281b86961b10266ddf3883942d4dc3b6b98d3227 Merge: d8d225c
-
- f181099 Author: Bart Van Assche <bvanassche at acm.org> Date:   Thu Aug
- 11 18:46:06 2011 +0200
-
-2011-08-11  Bart Van Assche <bvanassche at acm.org>
-
-   * : Merge V5-4-patches.
-
-
-2011-08-10  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/host/data_access/swrun.c: don't assert on a double
-
- init; just don't do it twice
-
-2011-08-10  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit d8d225ca34a8f22752153acb7944f9435f564d2c Merge: 06b4186
-
- 47c8ef1 Author: Bart Van Assche <bvanassche at acm.org> Date:   Wed Aug
- 10 18:05:21 2011 +0200
-
-2011-08-10  Bart Van Assche <bvanassche at acm.org>
-
-   * include/net-snmp/library/tools.h: SNMP_FREE(): cast argument to
-
- (void *) before passing it to netsnmp_free()
-
-2011-08-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 06b41865ec302c3931b1083d3fde89f9345ec06f Merge: 11426fb
-
- a4f6ac7 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Tue Aug 9 06:44:41 2011 -0700
-
-2011-08-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 11426fb3c6f327820b9bb86a76ecc9e2c37e7934 Merge: 0344df9
-
- 9bf0681 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Tue Aug 9 06:44:11 2011 -0700
-
-2011-08-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-4-patches' into
-
- V5-4-patches
-
-2011-08-09  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 9bf0681218edf43cdb5fc68f172123bc4a2d0188 Merge: f9db611
-
- ccb0eb6 Author: Bart Van Assche <bvanassche at acm.org> Date:   Tue Aug
- 9 08:19:33 2011 +0200
-
-2011-08-09  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit de7e348ece03d2380c2a8806ebbad5d9b5487682 Merge: d538bcb
-
- ccb0eb6 Author: Bart Van Assche <bvanassche at acm.org> Date:   Tue Aug
- 9 08:07:22 2011 +0200
-
-2011-08-09  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 0220392d899a9cab701f74af12030bb1d4cc5e2e Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Fri Jul 1 13:02:15 2011 +0200
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * CHANGES, NEWS: version update for 5.7.1.pre1
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * ChangeLog: version update for 5.7.1.pre1
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/snmpd.c: fix C++ comments
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/snmpd.c: fix C++ comments
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/snmpd.c: fix C++ comments
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/snmpd.c: fix C++ comments
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  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:
-
- 5.7.1.pre1
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * Makefile.top: version update for 5.7.1.pre1
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit cf4cce4c189cf47f4c489db43b7fa510f8906a1a Merge: df91a9f
-
- 93e97dc Author: Dave Shield <D.T.Shield at liverpool.ac.uk> Date:   Mon
- Aug 8 22:15:28 2011 +0100
-
-2011-08-08  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   * : Merge remote-tracking branch 'origin/V5-6-patches' into
-
- V5-6-patches
-
-2011-08-08  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   * : Merge remote-tracking branch 'origin/V5-4-patches' into
-
- V5-4-patches
-
-2011-08-08  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   *  win32/Makefile-apps.in, win32/dist/README.build.win32.txt, 
-      win32/libagent/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: Define
-
- _BIND_TO_CURRENT_VCLIBS_VERSION token (as per Alex' build
- instructions)
-
-2011-08-08  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   *  win32/Makefile-apps.in, 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: Define
-
- _BIND_TO_CURRENT_VCLIBS_VERSION token (as per Alex' build
- instructions)
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-4-patches' into
-
- V5-4-patches
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit df16dc2221e993dd3c66650d5e872577ffe6c01b Merge: 714bc82
-
- 8e5a28d Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Mon Aug 8 13:56:43 2011 -0700
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit ffa05b051ac3e2b197195a9989cc7a91fe8d9282 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Mon Aug 8 13:55:38
- 2011 -0700
-
-2011-08-08  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   * : commit 714bc82fa01e21a3655824963fa54e9b8042ffb0 Merge: 6fe8fe5
-
- 3ef1db5 Author: Dave Shield <D.T.Shield at liverpool.ac.uk> Date:   Mon
- Aug 8 21:21:46 2011 +0100
-
-2011-08-08  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   * : commit b451607dca015c111e96fdfeb2ddb0661fb4f724 Author: Dave
-
- Shield <D.T.Shield at liverpool.ac.uk> Date:   Mon Aug 8 21:20:32 2011
- +0100
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 6fe8fe5294a45bc7e4ea3751a1ad7aa47b5cabb2 Merge: 364f8ff
-
- f69abe3 Author: Bart Van Assche <bvanassche at acm.org> Date:   Mon Aug
- 8 22:02:38 2011 +0200
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit c94813044a4c4a608e98e80223075c6faf04ee11 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Mon Aug 8 21:56:15 2011 +0200
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 364f8ffaeb90b4eb0165fc855688cd0626632794 Merge: 3287295
-
- 7abb926 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Mon Aug 8 11:24:26 2011 -0700
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-6-patches' into
-
- V5-6-patches
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: display the branch we'll commit to
-
-
-2011-08-08  Vladimir Kondratiev <wulf2001 at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/disk_hw.c: CHANGES: snmpd: PATCH 3386633:
-
- from wulf2001: fix integer overflow in disk percent calculations Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 84a775d0557fea97570e41715a3164970b4c03a2 Merge: 6fff1c1
-
- d373c4f Author: Bart Van Assche <bvanassche at acm.org> Date:   Mon Aug
- 8 20:12:32 2011 +0200
-
-2011-08-08  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * agent/agent_trap.c: CHANGES: libnetsnmp: PATCH 3387139: from
-
- yaberauneya: Avoid segfault if trapsess transport element cant be
- parsed Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: nssfpatchapply: split the
-
- displayed git commit command into multiple segments
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/helpers/scalar_group.c: CHANGES: snmplib: PATCH: 3386961:
-
- Make SNMP GET work in an AgentX subagent if write support is
- disabled via NETSNMP_NO_WRITE_SUPPORT (Mark Rusk).
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/mib.c: CHANGES: snmplib: Fix a crash that could be
-
- triggered by calling _mibindex_add() with the second argument not
- equal to -1.
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 6fff1c1ae51b06c9d80faf15373a963d173f14e8 Merge: 837c52e
-
- 8cc9004 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Mon Aug 8 10:58:59 2011 -0700
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 8ca7ff1e692caec4186b788c9ae2d27be213290f Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Mon Aug 8 10:33:56
- 2011 -0700
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-4-patches' into
-
- V5-4-patches
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit b8f529cba27c0114b4cb7340cfd449504fa07506 Merge: 0822f2d
-
- 556e938 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Mon Aug 8 10:05:36 2011 -0700
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: fix function name typo
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 29882a078a959a0f78b03e01968f1d17b7f6a299 Merge: 5e9bd2f
-
- 0409c0a Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Mon Aug 8 10:03:34 2011 -0700
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : manual merge of pull/push
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: make nspull/nspush check for a
-
- clean repo
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: new function "nsmakeall" to test
-
- building on every branch
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: default to merge
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-7-patches' into
-
- V5-7-patches
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * include/net-snmp/library/tools.h: CHANGES: Windows: Avoid that if
-
- the Net-SNMP Perl modules have been built with another version of
- Microsoft Visual Studio than ActivePerl that using one of these Perl
- modules triggers a "Free to wrong pool" crash. This regression was
- caused by commit 3b14c59cf8278d410207ff42debda2636426a468 (the
- netsnmp_free() into SNMP_FREE() changes in the *.xs files).
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit e109539930703cb3052d5241b18ac6fc062faaca Merge: 0c9b6cb
-
- e46b170 Author: Bart Van Assche <bvanassche at acm.org> Date:   Mon Aug
- 8 18:34:11 2011 +0200
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/mib.c: CHANGES: snmplib: Fix a crash that could be
-
- triggered by calling _mibindex_add() with the second argument not
- equal to -1.
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 7f42d0d93320484152271427cc9808cbda49bbd0 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Mon Aug 8 09:50:51 2011 +0200
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 0c9b6cbe9dbe2ec5217a95b6781fd7dc1f6ebda7 Merge: fa6cef5
-
- 963320f Author: Bart Van Assche <bvanassche at acm.org> Date:   Mon Aug
- 8 18:14:36 2011 +0200
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit a3b8654a232c563bc97cc9925cd98590a30c5bc5 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Mon Aug 8 17:24:18 2011 +0200
-
-2011-08-07  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit fa6cef5ca91df3a0b03455b68559d2bee248101c Merge: f5fe536
-
- 8add0da Author: Bart Van Assche <bvanassche at acm.org> Date:   Sun Aug
- 7 10:18:54 2011 +0200
-
-2011-08-07  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit a0dd3caf25926e43465718bf417a464c2fb36366 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Sun Aug 7 10:17:01 2011 +0200
-
-2011-08-05  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: 32 is too limited for
-
- bigger tables; increase the max msg count to 128
-
-2011-08-05  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: make rollup and sync support
-
- --rebase and change the default back to merge
-
-2011-08-05  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-4-patches' into
-
- V5-4-patches
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * README.win32: CHANGES: Win32: Documented how to use build.bat with
-
- OpenSSL enabled
-
-2011-07-15  Bart Van Assche <bvanassche at acm.org>
-
-   * README.win32: CHANGES: Windows: Remove outdated instructions about
-
- editing win32\libsnmp_dll\libsnmp.def from README.win32
-
-2011-07-15  Bart Van Assche <bvanassche at acm.org>
-
-   * README.win32: CHANGES: Win32: Document how to build 64-bit
-
- executables for the x64/amd64 architecture
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit f5fe536e8fd6c48fe243decd31fac9cf1c92f4cc Merge: 7850ea1
-
- 80928a8 Author: Bart Van Assche <bvanassche at acm.org> Date:   Fri Aug
- 5 15:13:27 2011 +0200
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 80928a8909cfab37f01b39a071a3e8ad85956222 Merge: f16a094
-
- 0dbc869 Author: Bart Van Assche <bvanassche at acm.org> Date:   Fri Aug
- 5 13:57:30 2011 +0200
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 0dbc869fec07d8e90dbd1c95493ee7cbc623c95c Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Fri Aug 5 12:40:31 2011 +0200
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Add
-
- perl/agent/default_store/default_store.def and perl/SNMP/t
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 86c1e2b9679fec2cd799ba76005c3d60e9d47634 Merge: bcd8635
-
- f16a094 Author: Bart Van Assche <bvanassche at acm.org> Date:   Fri Aug
- 5 12:20:50 2011 +0200
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 2f8d4f5796cbc1c7e967acdaa8019b24f1520a36 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Fri Aug 5 12:02:51 2011 +0200
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/parse.c: Unbreak the V5-4-patches - revert commit
-
- d2c4768bd2efb48664434a831425c2dda85d7133 (CHANGES: libnetsnmp: PATCH
- 3362233: from yaberauneya: Mute unnecessary cannot find module
- noise).
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/mibgroup/mibII/snmp_mib.c, agent/mibgroup/mibII/snmp_mib.h: 
-
- Unbreak the V5-4-patches branch - was broken by commit
- bf7178b0b22587d43d1a80c269cd216bd5930214 (agent: change type of
- snmp_enableauthentraps to long)
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * include/net-snmp/library/snmpusm.h: Unbreak the V5-4-patches
-
- branch - was broken by commit
- 0e6842fe080cec853b08cd2323015ababc381ce1 (CHANGES: snmptrapd: PATCH
- 3383441: from sachinsurendran: Fix crash on 5.4.4 due to access of
- freed memory).
-
-2011-08-05  Thomas Anders <tanders at users.sourceforge.net>
-
-   * NEWS: minor NEWS polish
-
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit bcd86350713822963d376eff582a92f43e426d6c Merge: 9c810a3
-
- 7a20f71 Author: Bart Van Assche <bvanassche at acm.org> Date:   Fri Aug
- 5 10:28:55 2011 +0200
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 3aa949fbdfc1a94a8340ad8baf8b314756a0bb9d Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Fri Aug 5 10:26:15 2011 +0200
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 9c810a3b37b68573c40337e246e2faf299b77d31 Merge: 71cb2e8
-
- 610d63f Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 10:42:08 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 943930e1e124385fd94738b6dcda37d29dc7ac7f Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Thu Aug 4 10:41:41
- 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-4-patches' into
-
- V5-4-patches
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 4edcb88dae8b2e59dc683e80d414fa7ecec36885 Merge: 65f3eef
-
- 2dd9ed0 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 10:24:11 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-5-patches' into
-
- V5-5-patches
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit bc5ca03a04ab19c634a34d060b0b16b7484cb520 Merge: 88fddb7
-
- 90c0e75 Author: Bart Van Assche <bvanassche at acm.org> Date:   Thu Aug
- 4 19:13:07 2011 +0200
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/snmp_client.c, snmplib/snmpusm.c: snmpusm: Fix recently
-
- introduced compiler warnings
-
-2011-08-04  Stuart Henderson <t0jw2fu0kmg at users.sourceforge.net>
-
-   * agent/mibgroup/hardware/memory/memory_netbsd.c: CHANGES: openbsd:
-
- PATCH 3357932: from t0jw2fu0kmg: Cleaning in memory_netbsd.c Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Vladimir Kondratiev <wulf2001 at users.sourceforge.net>
-
-   * agent/mibgroup/hardware/fsys/fsys_getfsstats.c: CHANGES: agent:
-
- PATCH 3386147: from wulf2001: fix UCD-SNMP-MIB::dskUsed Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 473d7e5cd4d411bba20eb85359d8728063301cbd Merge: a4e8b62
-
- 88fddb7 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 09:28:22 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 2101bb2d7ad6db038c755aa9193c8ace0dbd4f58 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Thu Aug 4 09:28:06
- 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * .gitignore: ignore *.orig and *.rej
-
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: help output describes rebase vs
-
- merge better
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit f126a17c6a3063455a511940b023047abd9b48ee Merge: ad765f4
-
- 77a4784 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 09:25:16 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 452e1707f209ec45e7c7f2a3040ef595fb9d1af6 Merge: dc755a6
-
- b372e5a Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 09:25:03 2011 -0700
-
-2011-08-04  Stuart Henderson <t0jw2fu0kmg at users.sourceforge.net>
-
-   *  Makefile.in, acconfig.h, agent/mibgroup/hardware/cpu.h, 
-      agent/mibgroup/hardware/memory.h, 
-      agent/mibgroup/if-mib/data_access/interface.h, 
-      include/net-snmp/net-snmp-config.h.in, 
-      include/net-snmp/system/openbsd.h, 
-      include/net-snmp/system/openbsd4.h, 
-      include/net-snmp/system/openbsd5.h: CHANGES: openbsd: PATCH
-      3357927:
-
- from t0jw2fu0kmg: Recognise openbsd5 Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: fix where arguments are set
-
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: split nssfpatchapply into two
-
- parts: apply and commiting
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: patch using -N
-
-
-2011-08-04  David Arnold <dja at users.sourceforge.net>
-
-   *  man/default_store.3.bot, man/encode_keychange.1.def, 
-      man/fixproc.1.def, man/mib2c.conf.5.in, man/net-snmp-config.1.def,
-       man/netsnmp_agent_api.3.def, man/netsnmp_mib_api.3.def, 
-      man/snmp.conf.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/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: CHANGES: man: PATCH 3312861: from dja: Man
-      pages
-
- hyphen-vs-minus cleanup Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/installer/net-snmp.nsi: Detect (and reject) OpenSSL
-
- 1.0.0
-
-2011-08-04  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/installer/net-snmp.nsi: Command-line options for silent
-
- install
-
-2011-08-04  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/installer/net-snmp.nsi: Ensure Windows package
-
- uninstalls completely.
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 81c63fb5c5e4abb9c29aca89bf9d694410086e97 Merge: 4a6920a
-
- dc755a6 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 08:33:34 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_client.c: added spacing to match the later branches
-
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : manual merge
-
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_client.c: removed accidentially duplicated code
-
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : manual merge
-
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : manual merge
-
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * snmplib/parse.c: CHANGES: libnetsnmp: PATCH 3362233: from
-
- yaberauneya: Mute unnecessary cannot find module noise Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/agent_read_config.c, agent/snmp_vars.c, 
-      configure.d/config_os_headers: CHANGES: freebsd: PATCH 3363308:
-      from
-
- yaberauneya: Fix compilation on FreeBSD 9.x with recent header
- shuffling Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: allow nsrollup to take a --merge
-
- flag for merging instead of rebasing
-
-2011-08-04  Sachin Surendran <sachinsurendran at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpusm.h, snmplib/snmp_client.c, 
-      snmplib/snmpusm.c: CHANGES: snmptrapd: PATCH 3383441: from
-
- sachinsurendran: Fix crash on 5.4.4 due to access of freed memory Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * Makefile.in: CHANGES: freebsd: PATCH 3363328: from yaberauneya:
-
- Add FreeBSD 9.x to supported OSes list Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * snmplib/parse.c: CHANGES: libnetsnmp: PATCH 3362233: from
-
- yaberauneya: Mute unnecessary cannot find module noise Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/agent_read_config.c, agent/snmp_vars.c, 
-      configure.d/config_os_headers: CHANGES: freebsd: PATCH 3363308:
-      from
-
- yaberauneya: Fix compilation on FreeBSD 9.x with recent header
- shuffling Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: allow nsrollup to take a --merge
-
- flag for merging instead of rebasing
-
-2011-08-04  Sachin Surendran <sachinsurendran at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpusm.h, snmplib/snmp_client.c, 
-      snmplib/snmpusm.c: CHANGES: snmptrapd: PATCH 3383441: from
-
- sachinsurendran: Fix crash on 5.4.4 due to access of freed memory Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * Makefile.in: CHANGES: freebsd: PATCH 3363328: from yaberauneya:
-
- Add FreeBSD 9.x to supported OSes list Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * snmplib/parse.c: CHANGES: libnetsnmp: PATCH 3362233: from
-
- yaberauneya: Mute unnecessary cannot find module noise Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/agent_read_config.c, agent/snmp_vars.c, 
-      configure.d/config_os_headers: CHANGES: freebsd: PATCH 3363308:
-      from
-
- yaberauneya: Fix compilation on FreeBSD 9.x with recent header
- shuffling Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: allow nsrollup to take a --merge
-
- flag for merging instead of rebasing
-
-2011-08-04  Sachin Surendran <sachinsurendran at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpusm.h, snmplib/snmp_client.c, 
-      snmplib/snmpusm.c: CHANGES: snmptrapd: PATCH 3383441: from
-
- sachinsurendran: Fix crash on 5.4.4 due to access of freed memory Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * snmplib/parse.c: CHANGES: libnetsnmp: PATCH 3362233: from
-
- yaberauneya: Mute unnecessary cannot find module noise Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: allow nsrollup to take a --merge
-
- flag for merging instead of rebasing
-
-2011-08-04  Sachin Surendran <sachinsurendran at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpusm.h, snmplib/snmp_client.c, 
-      snmplib/snmpusm.c: CHANGES: snmptrapd: PATCH 3383441: from
-
- sachinsurendran: Fix crash on 5.4.4 due to access of freed memory Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/mibgroup/hardware/cpu/cpu_sysctl.c, 
-      agent/mibgroup/hardware/memory/memory_freebsd.c, 
-      agent/mibgroup/mibII/ipAddr.c, snmplib/keytools.c,
-      snmplib/scapi.c:
-
- CHANGES: building: PATCH 3383951: from yaberauneya: Fix -Wunused
- compile warnings with FreeBSD/NetBSD Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/mibgroup/hardware/cpu/cpu_sysctl.c, 
-      agent/mibgroup/hardware/memory/memory_freebsd.c, 
-      agent/mibgroup/mibII/ipAddr.c, snmplib/keytools.c,
-      snmplib/scapi.c:
-
- CHANGES: building: PATCH 3383951: from yaberauneya: Fix -Wunused
- compile warnings with FreeBSD/NetBSD Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit e878abbdb1808ef83e0a8074536fb54e13219a8b Merge: 403de42
-
- 878fbf4 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 07:55:00 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 250afa06892fd897ac31e3836a7ffc9e2b4cf7b9 Merge: 2c14c1c
-
- 3afc5e0 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 07:51:33 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 578cd7cce351ae8d904ec3d80be9ba6d1d48a712 Merge: 25988be
-
- f3bc551 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 07:50:56 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : autoconf
-
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * configure.d/config_os_struct_members: CHANGES: building: PATCH
-
- 3383949: from yaberauneya: Fix autoconf tests for sys/mbuf.h Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: prompt for patch and an area, and
-
- use the proper CHANGES line format
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: Use fetch --all and rebase as
-
- suggested by Bart for speed improvements
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit d6a1a89e6f648951a9b831932d3cc230821f2d37 Merge: dcb712f
-
- 872e013 Author: Bart Van Assche <bvanassche at acm.org> Date:   Thu Aug
- 4 12:06:18 2011 +0200
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 44969b4e57c27194e5bd357bc45275feb8695d22 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Fri Jul 8 20:52:25 2011 +0200
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/mibgroup/winExtDLL.c: CHANGES: Win32: winExtDLL: Invoke
-
- SnmpUtilOidFree() before SnmpUtilOidCpy(). It's not clear yet why
- the original code did not make snmpwalk trigger a memory leak.
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit dcb712ffc86b33583000ef4ae9a51ced25cd15bf Merge: e85cfa5
-
- 98623ef Author: Bart Van Assche <bvanassche at acm.org> Date:   Thu Aug
- 4 11:36:17 2011 +0200
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 8a01ec6423d400c4a13ccac68a3791d0218a0885 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Thu Aug 4 11:19:17 2011 +0200
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit e85cfa599b23b76d97913c96b5d703bff6ba4944 Merge: b056ee6
-
- e21eef2 Author: Bart Van Assche <bvanassche at acm.org> Date:   Thu Aug
- 4 08:44:43 2011 +0200
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/mibgroup/host/data_access/swinst_pkginfo.c: CHANGES: agent:
-
- Avoid that a MIB walk on the host resources MIB triggers a crash on
- Fedora 15
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit b056ee6eb53909ad04f16ec26d2690d7a083192a Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Thu Aug 4 07:59:04 2011 +0200
-
-2011-08-03  Bart Van Assche <bvanassche at acm.org>
-
-   *  agent/agent_trap.c, agent/helpers/table_array.c, 
-      agent/mibgroup/agentx/master_admin.c, 
-      agent/mibgroup/agentx/protocol.c, 
-      agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_acc
-       ess.c, agent/mibgroup/host/data_access/swinst_pkginfo.c, 
-      agent/mibgroup/host/data_access/swrun_procfs_status.c, 
-      agent/mibgroup/if-mib/data_access/interface_linux.c, 
-      agent/mibgroup/ip-mib/data_access/systemstats_linux.c, 
-      agent/mibgroup/mibII/kernel_linux.c, 
-      agent/mibgroup/rmon-mib/data_access/etherstats_linux.c, 
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access
-       .c, agent/mibgroup/smux/smux.c, agent/mibgroup/snmpv3/usmUser.c, 
-      agent/mibgroup/ucd-snmp/versioninfo.c, agent/snmp_agent.c, 
-      apps/snmpbulkget.c, apps/snmptls.c, apps/snmptrapd_log.c, 
-      perl/SNMP/SNMP.xs, snmplib/container_iterator.c, 
-      snmplib/dir_utils.c, snmplib/snmp_api.c, snmplib/snmp_client.c, 
-      snmplib/snmp_enum.c, snmplib/snmp_openssl.c, snmplib/snmpusm.c, 
-      snmplib/transports/snmpTLSTCPDomain.c: CHANGES: snmplib, snmpd:
-
- perl: Eliminate dead variables
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit ae8e3ecd2df4cf37625944aded1dfe4735d44eea Merge: 73187ce
-
- 9335e19 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Wed Aug 3 14:37:36 2011 -0700
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 794f9a69d7eb642268200b0a4b199151def66ed0 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Wed Aug 3 14:36:25
- 2011 -0700
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added a comment
-
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: at end of nsrollup mention that
-
- now would be a good time to run nssync
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: a new nssync() function for
-
- push/pulling active branches
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added a comment
-
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: at end of nsrollup mention that
-
- now would be a good time to run nssync
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: a new nssync() function for
-
- push/pulling active branches
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: at end of nsrollup mention that
-
- now would be a good time to run nssync
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: a new nssync() function for
-
- push/pulling active branches
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added a comment
-
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: at end of nsrollup mention that
-
- now would be a good time to run nssync
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: a new nssync() function for
-
- push/pulling active branches
-
-2011-08-03  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/mibgroup/ip-mib.h: Reenable IP-MIB::ipDefaultRouterTable
-      Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: A new function: nssfpatchapply
-
- that auto-pulls git command line info from SF
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/generic-ctx-get.m2i: added variables names to
-
- the generated error messages.
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/mfd-interactive-setup.m2c: Wording changes to
-
- help describe contexts better
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/Makefile.in, local/mib2c-conf.d/generic-get-U64.m2i: Added
-
- the missing U64 m2i file
-
-2011-08-03  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/mibgroup/ip-mib.h: Reenable IP-MIB::ipDefaultRouterTable
-      Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: A new function: nssfpatchapply
-
- that auto-pulls git command line info from SF
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/generic-ctx-get.m2i: added variables names to
-
- the generated error messages.
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/mfd-interactive-setup.m2c: Wording changes to
-
- help describe contexts better
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/Makefile.in, local/mib2c-conf.d/generic-get-U64.m2i: Added
-
- the missing U64 m2i file
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: A new function: nssfpatchapply
-
- that auto-pulls git command line info from SF
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/generic-ctx-get.m2i: added variables names to
-
- the generated error messages.
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/mfd-interactive-setup.m2c: Wording changes to
-
- help describe contexts better
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/Makefile.in, local/mib2c-conf.d/generic-get-U64.m2i: Added
-
- the missing U64 m2i file
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: A new function: nssfpatchapply
-
- that auto-pulls git command line info from SF
-
-2011-07-18  Ilya Yanok <yanok at emcraft.com>
-
-   * agent/agent_trap.c, agent/mibgroup/mibII/snmp_mib.c: agent: change
-
- type of snmp_enableauthentraps to long Type of snmp_enableauthentraps variable is changed from int to long.
- This fixes the bug with writing to snmpEnableAuthenTraps if server
- is compiled for 64bit (snmpset reports wrong length). This bug was
- introduced a long time ago (by faeecd0 commit).  Actually this is a 'less effort' type of fix but I wonder why we
- need a long to store an INTEGER in the first place? Signed-off-by: Ilya Yanok <yanok at emcraft.com> Signed-off-by: Wes
- Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/generic-ctx-get.m2i: added variables names to
-
- the generated error messages.
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/mfd-interactive-setup.m2c: Wording changes to
-
- help describe contexts better
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/Makefile.in, local/mib2c-conf.d/generic-get-U64.m2i: Added
-
- the missing U64 m2i file
-
-2011-08-03  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 6ad7e28ff9e5e4ebc1358ee39cc9796a44a1bee7 Merge: f2832e3
-
- 1e154ce Author: Bart Van Assche <bvanassche at acm.org> Date:   Wed Aug
- 3 19:15:24 2011 +0200
-
-2011-08-03  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 61b178f1ee8952aa03aa3b1ba51f4a6655e47f01 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Wed Aug 3 18:09:47 2011 +0200
-
-2011-08-03  Bart Van Assche <bvanassche at acm.org>
-
-   * include/net-snmp/types.h: Whitespace-only change: fix indentation
-
- of an #include directive
-
-2011-08-02  Bart Van Assche <bvanassche at acm.org>
-
-   * perl/NetSNMP.xs: CHANGES: Perl: Remove file perl/NetSNMP.xs
-
- because it breaks the Windows build.  To Wes: if you can tell me how to reproduce the problem you observed
- I'll try to find a portable fix.  This reverts commit d54871f5293675c8058ecce88fed5b646c836323 ("Added
- a bogus empty .xs file for bundling on newer perl that wants
- "something"").
-
-2011-08-02  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 0f489b199adab48b1633ebcaf5ff5a7c22c4cb89 Merge: f4eaa02
-
- 72a59bc Author: Bart Van Assche <bvanassche at acm.org> Date:   Tue Aug
- 2 10:11:53 2011 +0200
-
-2011-08-02  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 7fcc0b8032f8da5b7bc30059af0ba656eae71091 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Mon Aug 1 14:11:28 2011 +0200
-
-2011-08-02  Bart Van Assche <bvanassche at acm.org>
-
-   *   * 
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_dat
-       a_access.c: Fix a compiler warning in
-
-
- agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.c
-
-2011-08-01  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Add file names and patterns for output
-
- files generated during the Windows build
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Sort alphabetically
-
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Add apps/sshtosnmp
-
-
-2011-08-01  Bart Van Assche <bvanassche at acm.org>
-
-   *  .gitignore, perl/TrapReceiver/const-c.inc, 
-      perl/TrapReceiver/const-xs.inc: Remove two generated Perl files.
-
-
-2011-08-02  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit f4eaa02d9b076a67d7272de7eef8e9dfbf189bbf Merge: 40125d8
-
- adadcb9 Author: Thomas Anders <tanders at users.sourceforge.net> Date:
- Tue Aug 2 00:57:51 2011 +0200
-
-2011-08-02  Thomas Anders <tanders at users.sourceforge.net>
-
-   * dist/nsb-functions: suppress "ok" test output in nsb
-
-
-2011-08-01  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit 40125d8539cd89f952fbc24588c5e81e9cd821fe Author: Jan
-
- Safranek <jsafranek at users.sourceforge.net> Date:   Mon Aug 1
- 13:58:33 2011 +0200
-
-2011-08-01  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit 5acf0d2ceb3977964ed39f003073ba64138c2ebd Author: Thomas
-
- Anders <tanders at users.sourceforge.net> Date:   Sun Jul 31 23:57:41
- 2011 +0200
-
-2011-07-31  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit a7722a81f9cb7aa8670e7c238601362a31087acc Merge: 242e179
-
- ae9ac6c Author: Bart Van Assche <bvanassche at acm.org> Date:   Sun Jul
- 31 09:11:45 2011 +0200
-
-2011-07-31  Bart Van Assche <bvanassche at acm.org>
-
-   * apps/sshtosnmp.c: Fix an incorrect source code comment: there is
-
- no requirement in the ANSI C standard that stack variables should be
- initialized to zero.
-
-2011-07-31  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit 242e1797b2694a0689856ae36d05d3413aaf8d77 Author: Thomas
-
- Anders <tanders at users.sourceforge.net> Date:   Sun Jul 31 01:44:09
- 2011 +0200
-
-2011-07-30  Thomas Anders <tanders at users.sourceforge.net>
-
-   * snmplib/system.c: CHANGES: building: build fix for systems lacking
-
- getaddrinfo() and EAI_FAIL (e.g. HP-UX 10.20/11.00)
-
-2011-07-30  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 18df759f19b975c449d010bb0a162119bb68360d Merge: 54a44cb
-
- 7050718 Author: Bart Van Assche <bvanassche at acm.org> Date:   Sat Jul
- 30 16:39:13 2011 +0200
-
-2011-07-30  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 82d73fb11be3ae31f39c9d618d5388dc9b1006d7 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Fri Jul 29 20:51:27 2011 +0200
-
-2011-07-30  Thomas Anders <tanders at users.sourceforge.net>
-
-   *  configure, include/net-snmp/net-snmp-config.h.in, 
-      win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: autoreconf
-
-
-2011-07-30  Thomas Anders <tanders at users.sourceforge.net>
-
-   *  configure, include/net-snmp/net-snmp-config.h.in, 
-      win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: autoreconf
-
-
-2011-07-30  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit 109f6694d788f48ebd9fc0a1e90c45abc37bea20 Author: Thomas
-
- Anders <tanders at users.sourceforge.net> Date:   Sat Jul 30 14:22:19
- 2011 +0200
-
-2011-07-30  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit 7d8100eed459a1ff1a20c067364fa6cb47491309 Merge: 116c24f
-
- 9e47ac4 Author: Thomas Anders <tanders at users.sourceforge.net> Date:
- Sat Jul 30 00:20:01 2011 +0200
-
-2011-07-30  Thomas Anders <tanders at users.sourceforge.net>
-
-   * dist/nsb-functions, dist/nsb-nightly, dist/nsb-package: minor nsb
-
- fixes/enhancements from my old svn tree
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 116c24f0f7fb3f99ba646730f61c56d1ae23ba41 Merge: 982fb7f
-
- 4fc0b8b Author: Bart Van Assche <bvanassche at acm.org> Date:   Fri Jul
- 29 11:31:20 2011 +0200
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit c48173c06a9eaadbf81e6b4962d55ef0a54db251 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Fri Jul 29 10:27:39 2011 +0200
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * configure, ltmain.sh, m4/libtool.m4: Rerun autoreconf
-
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Sort alphabetically
-
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Add apps/sshtosnmp
-
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   *  agent/mibgroup/host/hr_storage.h, 
-      agent/mibgroup/host/hrh_storage.c: Fix two filenames in host mib
-
- source code comments.
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit 982fb7fd8bab25c4322aa62c50437036ce296e3e Merge: 1eda675
-
- 3458128 Author: Jan Safranek <jsafranek at users.sourceforge.net> Date:
- Thu Jul 28 16:24:03 2011 +0200
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: Fix potential
-
- sigsegv when an ifTable entry is removed as result of both
- interface_replace_old and interface_fadeout at the same time.
-
-2011-07-28  Bart Van Assche <bvanassche at acm.org>
-
-   * apps/sshtosnmp.c: Make apps/sshtosnmp.c build again (was broken by
-
- commit 612247cdf14c1e745c384cefe1f3fde3e445b347 that changed
- MSG_NOSIGNAL into NETSNMP_NOSIGNAL)
-
-2011-07-28  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 1eda6753b7fe7d3b3f217c09254ec02d0ee1d0ce Merge: db8b860
-
- a2f9ece Author: Bart Van Assche <bvanassche at acm.org> Date:   Thu Jul
- 28 15:32:28 2011 +0200
-
-2011-07-28  Niels Baggesen <nba at users.sourceforge.net>
-
-   * configure.d/config_os_functions, configure.d/config_os_libs1: 
-
- CHANGES: snmpd: Restore storage tables on Linux
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * man/snmpd.conf.5.def: Document interface_replace_old option.
-
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: CHANGES:
-
- snmpd: added 'interface_replace_old' option to remove old entries in
- ifTable when an interface with the same name as already exising one
- appears.  E.g. remove old ppp0 interface when new ppp0 shows up.
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * man/snmpd.conf.5.def: Document the interface_fadeout option.
-
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: Allow ifTable
-
- entries to be deleted immediately when appropriate interface
- disappears (i.e. interface_fadeout = 0 works as expected).
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: CHANGES:
-
- snmpd: added 'interface_fadeout' configuration option to set
- lifetime of ifTable entries of removed interfaces.  Previous lifetime was hardcoded 5 minutes, now it's configurable.
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit d62a0eb9070b4d8d9fe2bcfdb4d53d37ef814f9b Author: Jan
-
- Safranek <jsafranek at users.sourceforge.net> Date:   Thu Jul 28
- 14:49:08 2011 +0200
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: CHANGES:
-
- snmpd: added 'interface_replace_old' option to remove old entries in
- ifTable when an interface with the same name as already exising one
- appears.  E.g. remove old ppp0 interface when new ppp0 shows up.
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * man/snmpd.conf.5.def: Document the interface_fadeout option.
-
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: Allow ifTable
-
- entries to be deleted immediately when appropriate interface
- disappears (i.e. interface_fadeout = 0 works as expected).
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: CHANGES:
-
- snmpd: added 'interface_fadeout' configuration option to set
- lifetime of ifTable entries of removed interfaces.  Previous lifetime was hardcoded 5 minutes, now it's configurable.
-
-2011-07-28  Thomas Anders <tanders at users.sourceforge.net>
-
-   *  apps/sshtosnmp.c, include/net-snmp/library/snmpUDPBaseDomain.h, 
-      include/net-snmp/library/snmpUDPIPv4BaseDomain.h, 
-      snmplib/transports/snmpUDPBaseDomain.c: CHANGES: building: build
-      fix
-
- for systems lacking MSG_DONTWAIT
-
-2011-07-27  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/mibgroup/mibII/tcp.c: CHANGES: snmpd: Make
-
- TCP-MIB::tcpCurrEstab work again. Was broken in 5.7 by the
- introduction of the "features" feature.
-
-2011-07-27  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit fb88074fbbc268c7f0509491535aec5fecb05684 Merge: a743ae5
-
- 3821273 Author: Jan Safranek <jsafranek at users.sourceforge.net> Date:
- Wed Jul 27 14:47:25 2011 +0200
-
-2011-07-27  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit 31fa07cd9ffde46d41d2b5838c3fc4d01548bfb5 Author: Jan
-
- Safranek <jsafranek at users.sourceforge.net> Date:   Wed Jul 27
- 14:45:47 2011 +0200
-
-2011-07-27  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/snmpd.c: CHANGES: snmpd: run signal handlers when select()
-
- is interrupted.  This behavior is indicated in comment on line 1244, but it was not
- actually done.
-
-2011-07-26  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 2e9466d7f59d65d050277735e4ed9d30719ff752 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Tue Jul 26 13:10:04 2011 +0200
-
-2011-07-26  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 7708296760eaf5a80d8540746c9c249826fd1bfe Merge: ea11e5e
-
- cd6e382 Author: Bart Van Assche <bvanassche at acm.org> Date:   Tue Jul
- 26 16:21:41 2011 +0200
-
-2011-07-26  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/snmpUDPIPv6Domain.c: Clarify an IPv6 source code comment
-
-
-2011-07-26  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/agent_handler.c, man/netsnmp_handler.3: Spelling fix:
-
- definedy -> defined
-
-2011-07-26  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/helpers/stash_cache.c, man/netsnmp_stash_cache.3: Spelling
-
- fix: aleviate -> alleviate
-
-2011-07-26  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit dd2c47133493d5a00de6b3cdbcfac7e9d44b6ffe Merge: f9ccbc7
-
- ea11e5e Author: Jan Safranek <jsafranek at users.sourceforge.net> Date:
- Tue Jul 26 14:25:28 2011 +0200
-
-2011-07-26  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit c5a8464c42a94c250ee2dfa2a473109a734203d8 Author: Jan
-
- Safranek <jsafranek at users.sourceforge.net> Date:   Tue Jul 26
- 14:24:55 2011 +0200
-
-2011-07-25  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit f9ccbc772666134d1d178b505af9ddcdd9ed4244 Author: Jan
-
- Safranek <jsafranek at users.sourceforge.net> Date:   Mon Jul 25
- 15:02:15 2011 +0200
-
-2011-07-20  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit b0c0a355d5f601a11be4914fbf713716abd30a29 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Tue Jul 19
- 18:36:11 2011 -0700
-
-2011-07-20  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit c14fc38614baf10d517136f0480907b7f03d8d74 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Wed Jul 20
- 13:44:59 2011 -0700
-
-2011-07-19  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/testhandler.c: remove broken whitespace lines that
-
- leads to reading confusion
-
-2011-07-20  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit ebdd216c074bf41cd3a084bd14689cf01c887b31 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Tue Jul 19
- 18:36:11 2011 -0700
-
-2011-07-19  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * .gitignore: updated gitignore to ignore a number of auto-generated
-
- files
-
-2011-07-19  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/testhandler.c: remove broken whitespace lines that
-
- leads to reading confusion
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit df5f70055cf9be33f05fb50abe2f5a81eac092ad Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Tue Jul 19 11:07:19 2011 +0200
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit f596f18242dcdfd6cf49c88da1d836c16e260cac Merge: 0f309b4
-
- 70dee4b Author: Bart Van Assche <bvanassche at acm.org> Date:   Tue Jul
- 19 11:33:28 2011 +0200
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   *  agent/agent_trap.c, agent/mibgroup/mibII/snmp_mib.c, 
-      agent/mibgroup/mibII/snmp_mib_5_5.c: 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.
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/mibgroup/agentx/subagent.c: CHANGES: snmpd: PATCH: 3370645:
-
- from Bill Fenner: Fix AgentX subagent four byte leak
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: Test harness: do
-
- not invoke ISRUNNING() on MinGW.
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: Test harness:
-
- cleanup - remove code that became superfluous.
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: MinGW: Do not
-
- assume that kill.exe reports via its exit status whether the
- signalled process still exists.
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: CHANGES: testing:
-
- Remove the function WAITORDIE() from simple_eval_tools.sh since it
- is never invoked.
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: CHANGES: testing:
-
- Simplify WAITFOR() in simple_eval_tools.sh. The code that handled
- invocation of WAITFOR() with zero or one arguments has been dropped
- since WAITFOR() is always invoked with two arguments.
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: Test harness:
-
- minor simplification.
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/default/T059trapdtraphandle_simple: CHANGES:
-
- testing: Skip test 59 if SIGHUP is not supported. Makes test 59 pass
- on MinGW.
-
-2011-07-06  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: MinGW fix
-
-
-2011-07-06  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: Test framework
-
- refactoring: Introduce WAITFORNOTCOND().
-
-2011-07-05  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: CHANGES: testing:
-
- Make STOPPROG send SIGTERM repeatedly. This fixes a race where
- SIGTERM could be sent before the SIGTERM signal handler was set up,
- especially when running the regression tests under Valgrind.
- CHANGES: testing: Make the SNMP_VERBOSE=1 output even more verbose.
-
-2011-07-05  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: Test harness
-
- refactoring: introduce ECHOSENDSIGTERM() and ECHOSENDSIGKILL()
-
-2011-07-05  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: Fix a bug in
-
- testing/fulltests/support/simple_eval_tools.sh that was introduced
- in commit 938d75c.
-
-2011-07-01  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Ignore *.exe files generated by the Win32
-
- build
-
-2011-07-04  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: CHANGES: testing:
-
- Test only once during a test whether the shell supports sub-second
- sleeping instead of repeatedly.
-
-2011-07-04  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_run: CHANGES: testing: Changed
-
- default timeout from 1s to 10s when the regression tests are run
- under Valgrind
-
-2011-07-04  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: CHANGES: testing:
-
- After having sent SIGTERM to snmpd or snmptrapd, wait until the
- process has stopped before sending SIGKILL. This race condition was
- hit most easily when running the regression tests under Valgrind.
- CHANGES: testing: Check PID file existence after having read it
- instead of before. This fixes the race condition where the PID file
- disappeared after the existence check and before it was read.
-
-2011-06-17  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/agentx/protocol.c: Fix a bug in a debug statement
-
- introduced by patch 3310250 / r20494: use %ld to print a value of
- type oid instead of %d.  This patch is a combination of the following to V5.6 SVN patches: git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20511 06827809-a52a-0410-b366-d66718629dedgit-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20512 06827809-a52a-0410-b366-d66718629ded
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 0f309b493c21d3c6914487514b41560754ffcdf9 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Tue Jul 19 08:37:50 2011 +0200
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 1b7454bc281568470a1300476d2edb4f411e6029 Merge: 8d9dcc8
-
- 690ea7d Author: Bart Van Assche <bvanassche at acm.org> Date:   Tue Jul
- 19 08:31:28 2011 +0200
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * apps/snmptrapd.c: CHANGES: snmptrapd: Add missing newline
-
- character in a log message
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * apps/snmptrapd.c: CHANGES: snmptrapd: Invoke shutdown_perl() when
-
- shutting down
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/snmpUDPIPv6Domain.c: Spelling fix: branket -> bracket
-
-
-2011-07-17  Bart Van Assche <bvanassche at acm.org>
-
-   * configure, include/net-snmp/net-snmp-config.h.in: Run autoreconf.
-
- Fixes build breakage caused by patch
- d588ec853bd0531f212fcbf51b962b96c6828b59 (RPM 4.9 support)
-
-2011-07-17  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit d617d84f83fa69ed9fa9f98efc4afaf880d121f2 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Thu Jul 14 16:43:47 2011 +0200
-
-2011-07-14  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/transports/snmpIPv6BaseDomain.c: CHANGES: snmplib: Make
-
- netsnmp_ipv6_fmtaddr() show the IPv6 scope ID
-
-2011-07-17  Bart Van Assche <bvanassche at acm.org>
-
-   *  configure, configure.d/config_os_functions, 
-      include/net-snmp/net-snmp-config.h.in, 
-      snmplib/transports/snmpIPv6BaseDomain.c, 
-      win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: CHANGES: Win32: Add support
-      for
-
- IPv6 address scope ID
-
-2011-07-17  Bart Van Assche <bvanassche at acm.org>
-
-   * configure, include/net-snmp/net-snmp-config.h.in: Run autoreconf
-
-
-2011-07-17  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit a56721a3e7754e389daa7e8a3d5792899edc9de3 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Thu Jul 14 16:18:32 2011 +0200
-
-2011-07-15  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 844d4ce867bf3abe7b7536c5dbfba401937a8d4a Merge: eed0198
-
- 61036a8 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Fri Jul 15 15:33:10 2011 -0700
-
-2011-07-15  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 851bcf53fcd13cdf0ba9f12e5d603e73f8bb9611 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Fri Jul 15
- 15:32:49 2011 -0700
-
-2011-07-14  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/helpers/cache_handler.c: fix a typo
-
-
-2011-07-13  Robert Story <rstory at localhost>
-
-   * snmplib/parse.c: CHANGES: snmplib:  tweak patch 3044888 to restore
-
- proper non-error return during mib loading
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : added 5.7 patches to the branch list and fix the release file
-
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : added 5.7 patches to the branch list
-
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/release: a copy of the release file applied to the older
-
- branches
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added 5.7 patches
-
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit c431231e8f0a39d1950bc72c32e3402f90fa8030 Merge: 56fee40
-
- a2ac24d Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Mon Jul 11 19:33:17 2011 -0700
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added a copy of the
-
- shell-functions to the older branch
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/release: a copy of the release file applied to the older
-
- branches
-
-2011-07-01  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * ChangeLog: version update for 5.7
-
-
-2011-07-01  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile, 
-      dist/net-snmp.spec: Version number update: 5.7
-
-
-2011-07-01  Robert Story <rstory at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpTLSBaseDomain.h, 
-      snmplib/transports/snmpDTLSUDPDomain.c, 
-      snmplib/transports/snmpIPv4BaseDomain.c, 
-      snmplib/transports/snmpTLSBaseDomain.c: Revert "fix dtlsudp
-
- transport address format function" This reverts commit 2ab3a6e6f2fcc1ff3e5f0fb5dc5d05e498820d89.   - for some reason I saw 'rc' and my brain interpreted it as    'pre-release'. What can I say, it was late. :-/
-
-2011-07-01  Robert Story <rstory at localhost>
-
-   *  include/net-snmp/library/snmpTLSBaseDomain.h, 
-      snmplib/transports/snmpDTLSUDPDomain.c, 
-      snmplib/transports/snmpIPv4BaseDomain.c, 
-      snmplib/transports/snmpTLSBaseDomain.c: fix dtlsudp transport
-
- address format function  - update ipv4 fmtaddr to handle sockaddr and to check    size before assuming data is addr pair  - move dtlsudp functions to extract addr(s) to tlsbase
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 56fee40118b21a9f4dc02a6f247f7da6fc69a005 Merge: d39194b
-
- 9ff4714 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Wed Jun 29 23:18:13 2011 -0700
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: fix tag pushing
-
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: fix tag pushing
-
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: misc publication fixes found while
-
- publishing
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * ChangeLog: version update for 5.7.rc3
-
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile, 
-      dist/net-snmp.spec: Version number update: 5.7.rc3
-
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: remove unneeded comment
-
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: misc publication fixes found while
-
- publishing
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * include/net-snmp/net-snmp-config.h.in: ran autoheader to add the
-
- missing template ifdefs
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * ChangeLog: version update for 5.7.rc2
-
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile, 
-      dist/net-snmp.spec: Version number update: 5.7.rc2
-
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 64b6c68a84930ab01e3e146c49f3ab5382efda3e Merge: 127eec2
-
- d39194b Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Wed Jun 29 17:12:46 2011 -0700
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit df9cf9a1e293d05a24786694f68c05a2be13a9b3 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Wed Jun 29
- 16:34:11 2011 -0700
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: use git2cl to generate the ChangeLog file;
-
- needs much more work.
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: use the new run-autoconf script
-
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/run-autoconf: A script to invoke the correct version of the
-
- autoconf tool
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: remaining command line changes for svn ->
-
- git
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: make the branch echo output and svn update
-
- converted to git equivalents
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: pull the branch info from git
-
-
-2011-06-29  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   *  agent/mibgroup/host/data_access/swinst_rpm.c, 
-      agent/mibgroup/host/hr_swinst.c, configure.d/config_os_headers, 
-      configure.d/config_os_libs1: Tweak RPM handling to work with
-      library
-
- version 4.9
-
-2011-06-29  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit d588ec853bd0531f212fcbf51b962b96c6828b59 Author: Jan
-
- Safranek <jsafranek at users.sourceforge.net> Date:   Wed Jun 29
- 16:07:00 2011 +0200
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/release: noted that the master branch is in rc state
-
-
-2011-06-28  Wes Hardaker <opensource at hardakers.net>
-
-   * : commit 8b23b4c13923b8caf4d4aed32a450933934ff461 Merge: 153781d
-
- 47f5048 Author: Wes Hardaker <opensource at hardakers.net> Date:   Tue
- Jun 28 13:14:52 2011 -0700
-
-2011-06-28  Wes Hardaker <opensource at hardakers.net>
-
-   * : commit af8b235234f72944a649a76f0d30cff95ac2e895 Author: Wes
-
- Hardaker <opensource at hardakers.net> Date:   Tue Jun 28 13:11:19 2011
- -0700
-
-2011-06-28  Wes Hardaker <opensource at hardakers.net>
-
-   * local/gittools/shell-functions: use git merge with the --log
-
- option
-
-2011-06-28  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 153781dbfb2afc0003ba4e58ffcca53001e486d6 Merge: b3e80de
-
- 3c5a409 Author: Bart Van Assche <bvanassche at acm.org> Date:   Tue Jun
- 28 19:43:13 2011 +0200
-
-2011-06-28  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 9bc82e4ca4837f00072dba86b9497a27186909f9 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Tue Jun 28 19:13:35 2011 +0200
-
-2011-06-28  Wes Hardaker <opensource at hardakers.net>
-
-   * FAQ: We're now using git!
-
-
-2011-06-27  Wes Hardaker <opensource at hardakers.net>
-
-   * : commit b3e80de9b07d282ff11af8b06a91d64279d3261d Merge: c4ad278
-
- 6a5e5a6 Author: Wes Hardaker <opensource at hardakers.net> Date:   Mon
- Jun 27 21:34:59 2011 -0700
-
-2011-06-27  Wes Hardaker <opensource at hardakers.net>
-
-   * : commit 38fe8177d533135a6cc682724f16a91113bcd7f3 Merge: 7d917cf
-
- dd58baf Author: Wes Hardaker <opensource at hardakers.net> Date:   Mon
- Jun 27 21:34:56 2011 -0700
-
-2011-06-27  Wes Hardaker <opensource at hardakers.net>
-
-   * : commit 5c177f517d16f05545b279d16f0e4fd5696be651 Merge: f0d6bf0
-
- c2bcebc Author: Wes Hardaker <opensource at hardakers.net> Date:   Mon
- Jun 27 21:34:55 2011 -0700
-
-2011-06-27  Wes Hardaker <opensource at hardakers.net>
-
-   * : commit 9c9769572eb8c03b69556c1c5aab9b4d56c6d1d3 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Mon Jun 27
- 14:11:14 2011 +0000
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added a feature to not roll
-
- branches currenly in rc phase git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20532 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added a nsrollup function for
-
- rolling branches upward.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20531 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: created an nspatchapply function
-
- to apply a previously tested patch git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20530 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added a nstrypatch function to
-
- test patch application against various branches git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20529 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added verbose output git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20528 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: more prefix changes and better
-
- setting of default values git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20527 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: use ns prefixes instead of generic
-
- snmp prefixes git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20526 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-24  Dave Shield <dts12 at users.sourceforge.net>
-
-   * ChangeLog: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20524 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-24  Dave Shield <dts12 at users.sourceforge.net>
-
-   * configure, configure.in, include/net-snmp/net-snmp-config.h.in: 
-
- Missing check for rpmts.h git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20523 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-24  Dave Shield <dts12 at users.sourceforge.net>
-
-   * configure: Version number update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20522 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-24  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  man/netsnmp_agent.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_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_request_info_s.3, 
-      man/netsnmp_netsnmp_table_registration_info_s.3, 
-      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3, man/netsnmp_util.3,
-       man/netsnmp_utilities.3, man/netsnmp_variable_list.3, 
-      man/netsnmp_watcher.3: documentation update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20521 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-24  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.in, dist/net-snmp.spec, 
-      snmplib/snmp_version.c: Version number update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20520 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-23  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  agent/mibgroup/host/hr_swinst.c, configure, configure.in, 
-      include/net-snmp/net-snmp-config.h.in: Tweak RPM handling to work
-
- with library version 4.9 Based on a patch by Jan Safranek git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20519 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * agent/mibgroup/host/hr_swinst.c: 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-4-patches@20518 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * ChangeLog: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20516 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * configure: Version number update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20515 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.in, dist/net-snmp.spec, 
-      snmplib/snmp_version.c: Version number update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20514 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-21  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  agent/mibgroup/host/data_access/swinst.h, 
-      agent/mibgroup/host/data_access/swinst_pkginfo.c: 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
-
-2011-06-21  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  agent/mibgroup/host/data_access/swinst.h, 
-      agent/mibgroup/host/data_access/swinst_pkginfo.c: 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-5-patches@20513 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-21  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  agent/mibgroup/host/data_access/swinst.h, 
-      agent/mibgroup/host/data_access/swinst_pkginfo.c: 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/trunk@20513 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-19  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/agentx/protocol.c: 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
-
-2011-06-19  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/agentx/protocol.c: 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-5-patches@20512 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-17  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/agentx/protocol.c: 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
-
-2011-06-17  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/agentx/protocol.c: 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-5-patches@20511 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-17  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/helpers/cache_handler.c: Use %p to print a pointer instead
-
- of %ld git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20510 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-17  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/helpers/cache_handler.c: Use %p to print a pointer instead
-
- of %ld git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20510 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-13  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * CHANGES: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20508 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-13  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * ChangeLog: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20507 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-13  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * configure: run correct version of autoconf git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20506 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-13  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile, 
-      dist/net-snmp.spec: Version number update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20505 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-13  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * configure: ran autoconf git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20504 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-10  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  snmplib/cert_util.c: 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
-
-2011-06-10  Niels Baggesen <nba at users.sourceforge.net>
-
-   * configure.d/config_modules_security_modules: Fix build of snmpusm
-
- when additional sec modules requested git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20501 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  snmplib/cert_util.c: Include stdॆअआॆअ�ib.h to make dmalloc happy
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20500 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-09  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/snmp_transport.c: 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
-
-2011-06-09  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/snmp_transport.c: CHANGES: BUG: 3151845: fix multiple
-
- registrations of snmp transport handler git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20499 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-08  Robert Story <rstory at users.sourceforge.net>
-
-   *  include/net-snmp/library/default_store.h, snmplib/snmp_api.c, 
-      snmplib/system.c: more dnssec tweaks  - create an app-global
-      validator context for use with all    validation routines. mainly
-      useful for long-lived apps.   - use the apptype as the validator
-      'scope', allowing    for app-specific configuration of validation
-      via libval's    dnsval.conf git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20498 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-07  Robert Story <rstory at users.sourceforge.net>
-
-   * include/net-snmp/library/default_store.h: add a max define for
-
- each default store type   not actually used, just a helpful reminder for those adding   new ids who might not think to check NETSNMP_DS_MAX_SUBIDS.    (the bool list is rapidly approaching the current limit.) git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20497 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-07  Robert Story <rstory at users.sourceforge.net>
-
-   * testing/fulltests/support/simple_run: mention builddir when
-
- complaining about not being run from source tree git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20496 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * perl/SNMP/SNMP.xs: Reverted r20362: that patch makes sense on the
-
- trunk and the 5.6 branch but not on the 5.5 nor on the 5.4 branch.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20495 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/agentx/master.c, 
-      agent/mibgroup/agentx/master_admin.c, 
-      agent/mibgroup/agentx/protocol.c,
-      agent/mibgroup/agentx/subagent.c:
-
- 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
-
-2011-06-01  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/agentx/master.c, 
-      agent/mibgroup/agentx/master_admin.c, 
-      agent/mibgroup/agentx/protocol.c,
-      agent/mibgroup/agentx/subagent.c:
-
- 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/trunk@20494 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/agentx/master.c, 
-      agent/mibgroup/agentx/master_admin.c, 
-      agent/mibgroup/agentx/protocol.c,
-      agent/mibgroup/agentx/subagent.c:
-
- 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-5-patches@20494 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * CHANGES, NEWS: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20492 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/Makefile.depend: make depend git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20491 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * configure: fixed autoconf version git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20490 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile, 
-      dist/net-snmp.spec: Version number update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20489 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Dave Shield <dts12 at users.sourceforge.net>
-
-   * CHANGES: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20487 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Dave Shield <dts12 at users.sourceforge.net>
-
-   * ChangeLog: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20486 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  agent/Makefile.depend, agent/helpers/Makefile.depend, 
-      agent/mibgroup/Makefile.depend, apps/Makefile.depend, 
-      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend: make
-
- depend git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20485 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Dave Shield <dts12 at users.sourceforge.net>
-
-   * perl/SNMP/SNMP.xs: Reinstate an "unused" label that is actually
-
- still required.  (referenced in line 2710) git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20484 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Dave Shield <dts12 at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/disk.c: Fix typo git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20483 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  man/netsnmp_agent.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_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_request_info_s.3, 
-      man/netsnmp_netsnmp_table_registration_info_s.3, 
-      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3, man/netsnmp_util.3,
-       man/netsnmp_utilities.3, man/netsnmp_variable_list.3, 
-      man/netsnmp_watcher.3: documentation update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20482 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.in, dist/net-snmp.spec, 
-      snmplib/snmp_version.c: Version number update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20481 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Dave Shield <dts12 at users.sourceforge.net>
-
-   * CHANGES: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20479 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Dave Shield <dts12 at users.sourceforge.net>
-
-   * ChangeLog: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20478 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  agent/helpers/Makefile.depend, agent/mibgroup/Makefile.depend, 
-      apps/Makefile.depend, apps/snmpnetstat/Makefile.depend, 
-      snmplib/Makefile.depend: make depend git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20477 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  man/netsnmp_agent.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_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_request_info_s.3, 
-      man/netsnmp_netsnmp_table_registration_info_s.3, 
-      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3, man/netsnmp_util.3,
-       man/netsnmp_utilities.3, man/netsnmp_variable_list.3, 
-      man/netsnmp_watcher.3: documentation update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20476 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  CHANGES, FAQ, README, configure, configure.in, 
-      dist/net-snmp.spec, snmplib/snmp_version.c: Version number update
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20475 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-01  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: fix xml quoting git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20474 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-31  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  snmplib/parse.c: fix non existent malloc macro to use calloc
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20473 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-31  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * include/net-snmp/library/parse.h, snmplib/parse.c: CHANGES:
-
- snmplib: Applied the intent of patch 3044888 to allow applications
- to read the error messages of a MIB parsing failure.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20472 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-31  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/agent/extend.c, agent/mibgroup/ucd-snmp/disk.c: 
-
- 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
-
-2011-05-31  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/agent/extend.c, agent/mibgroup/ucd-snmp/disk.c: 
-
- 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-5-patches@20471 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-31  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/agent/extend.c, agent/mibgroup/ucd-snmp/disk.c: 
-
- 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-4-patches@20471 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-31  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/agent/extend.c, agent/mibgroup/ucd-snmp/disk.c: 
-
- 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-3-patches@20471 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-31  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/agent/extend.c, agent/mibgroup/ucd-snmp/disk.c: 
-
- 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/trunk@20471 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-31  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/host/hr_swrun.c: 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
-
-2011-05-31  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/host/hr_swrun.c: 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-5-patches@20470 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-31  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/host/hr_swrun.c: 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-4-patches@20470 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-31  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/host/hr_swrun.c: 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/trunk@20470 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: up the ante and run other test suites
-
- besides just the default set git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20462 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmpusm.c: 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/trunk@20461 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmpusm.c: Applied (roughly) patch 3299370 to avoid
-
- rewriting existing authkey/privkey/etcs git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20460 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/header_complex.c, agent/mibgroup/header_complex.h, 
-      agent/mibgroup/notification/snmpNotifyFilterProfileTable.c, 
-      agent/mibgroup/notification/snmpNotifyTable.c: Applied the intent
-      of
-
- patch 3299386 which fixes duplicate entries on a SIGHUP.  To achieve
- this some new header_complex functions needed to be created that
- didn't change the behavior of the older ones.  The notification code
- now calls these newer functions.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20459 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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-3-patches@20458 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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
-
-2011-05-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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-5-patches@20458 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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-4-patches@20458 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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-3-patches@20457 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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
-
-2011-05-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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-5-patches@20457 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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-4-patches@20457 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c, 
-      agent/mibgroup/util_funcs/get_pid_from_inode.c, 
-      agent/mibgroup/util_funcs/get_pid_from_inode.h, perl/Makefile.PL:
-
- NEWS: snmpd: patch 3131397: from takevos: huge speedups of the
- TCP/UDP Tables git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20456 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * perl/NetSNMP.xs: Added a bogus empty .xs file for bundling on
-
- newer perl that wants "something" git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20455 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/host/data_access/swrun_procfs_status.c: 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
-
-2011-05-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/host/data_access/swrun_procfs_status.c: 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/trunk@20454 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-25  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  agent/mibgroup/host/data_access/swinst.c, 
-      agent/mibgroup/tunnel/tunnel.c: 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
-
-2011-05-25  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  agent/mibgroup/host/data_access/swinst.c, 
-      agent/mibgroup/tunnel/tunnel.c: 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/trunk@20453 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-25  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: 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-5-patches@20451 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-25  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: 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
-
-2011-05-25  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: 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/trunk@20451 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-25  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * include/net-snmp/library/oid.h: 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
-
-2011-05-25  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * include/net-snmp/library/oid.h: 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/trunk@20450 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-25  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/tunnel/tunnel.c: 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-4-patches@20449 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-25  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  agent/mibgroup/host/data_access/swinst.c, 
-      agent/mibgroup/tunnel/tunnel.c: 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-5-patches@20449 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-25  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  agent/mibgroup/host/data_access/swinst.c, 
-      agent/mibgroup/tunnel/tunnel.c: 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
-
-2011-05-25  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  agent/mibgroup/host/data_access/swinst.c, 
-      agent/mibgroup/tunnel/tunnel.c: 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/trunk@20449 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-24  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * include/net-snmp/library/oid.h: 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
-
-2011-05-24  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * include/net-snmp/library/oid.h: 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/trunk@20448 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-24  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  snmplib/system.c: Remember to return info also without DNSSEC
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20447 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-24  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib/data_access/arp_common.c: Added NULL-checks
-
- after malloc git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20446 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-24  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib/data_access/arp_common.c: Added NULL-checks
-
- after malloc git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20446 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-24  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib/data_access/arp_common.c: 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
-
-2011-05-24  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib/data_access/arp_common.c: Added NULL-checks
-
- after malloc git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20446 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c: CHANGES:
-
- agent: BUG: 3305157: Fix ipAddressPrefix handling of IPv6 addresses git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20445 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c: CHANGES:
-
- agent: BUG: 3305157: Fix ipAddressPrefix handling of IPv6 addresses git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20445 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * python/netsnmp/client_intf.c: CHANGES: python: BUG: 3295407: Fix
-
- handling of void pointer git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20444 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * python/netsnmp/client_intf.c: 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
-
-2011-05-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * python/netsnmp/client_intf.c: CHANGES: python: BUG: 3295407: Fix
-
- handling of void pointer git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20444 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * python/netsnmp/client_intf.c: CHANGES: python: BUG: 3295407: Fix
-
- handling of void pointer git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20444 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * include/net-snmp/library/snmp_api.h, snmplib/snmp_api.c: 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-3-patches@20443 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * include/net-snmp/library/snmp_api.h, snmplib/snmp_api.c: 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-5-patches@20443 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * include/net-snmp/library/snmp_api.h, snmplib/snmp_api.c: 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
-
-2011-05-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * include/net-snmp/library/snmp_api.h, snmplib/snmp_api.c: 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/trunk@20443 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * include/net-snmp/library/snmp_api.h, snmplib/snmp_api.c: 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-4-patches@20443 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-20  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  snmplib/snmpAAL5PVCDomain.c, snmplib/snmpAliasDomain.c, 
-      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpIPXDomain.c, 
-      snmplib/snmpSSHDomain.c, snmplib/snmpSTDDomain.c, 
-      snmplib/snmpTCPDomain.c, snmplib/snmpTCPIPv6Domain.c, 
-      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c, 
-      snmplib/snmpUnixDomain.c: 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-5-patches@20442 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-20  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  snmplib/transports/snmpAAL5PVCDomain.c, 
-      snmplib/transports/snmpAliasDomain.c, 
-      snmplib/transports/snmpDTLSUDPDomain.c, 
-      snmplib/transports/snmpIPXDomain.c, 
-      snmplib/transports/snmpSSHDomain.c, 
-      snmplib/transports/snmpSTDDomain.c, 
-      snmplib/transports/snmpTCPDomain.c, 
-      snmplib/transports/snmpTCPIPv6Domain.c, 
-      snmplib/transports/snmpTLSTCPDomain.c, 
-      snmplib/transports/snmpUDPDomain.c, 
-      snmplib/transports/snmpUDPIPv6Domain.c, 
-      snmplib/transports/snmpUnixDomain.c: 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
-
-2011-05-20  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  snmplib/transports/snmpAAL5PVCDomain.c, 
-      snmplib/transports/snmpAliasDomain.c, 
-      snmplib/transports/snmpDTLSUDPDomain.c, 
-      snmplib/transports/snmpIPXDomain.c, 
-      snmplib/transports/snmpSSHDomain.c, 
-      snmplib/transports/snmpSTDDomain.c, 
-      snmplib/transports/snmpTCPDomain.c, 
-      snmplib/transports/snmpTCPIPv6Domain.c, 
-      snmplib/transports/snmpTLSTCPDomain.c, 
-      snmplib/transports/snmpUDPDomain.c, 
-      snmplib/transports/snmpUDPIPv6Domain.c, 
-      snmplib/transports/snmpUnixDomain.c: 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/trunk@20442 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-20  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  snmplib/snmpAAL5PVCDomain.c, snmplib/snmpIPXDomain.c, 
-      snmplib/snmpSTDDomain.c, snmplib/snmpTCPDomain.c, 
-      snmplib/snmpTCPIPv6Domain.c, snmplib/snmpUDPDomain.c, 
-      snmplib/snmpUDPIPv6Domain.c, snmplib/snmpUnixDomain.c: 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-4-patches@20442 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-19  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * acconfig.h, include/net-snmp/net-snmp-config.h.in: use #ifdef
-
- rather than #if for define checks.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20441 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-19  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * acconfig.h, include/net-snmp/net-snmp-config.h.in: use #ifdef
-
- rather than #if for define checks.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20441 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-19  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * acconfig.h, include/net-snmp/net-snmp-config.h.in: 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
-
-2011-05-19  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * acconfig.h, include/net-snmp/net-snmp-config.h.in: use #ifdef
-
- rather than #if for define checks.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20441 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-19  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * acconfig.h, include/net-snmp/net-snmp-config.h.in: use #ifdef
-
- rather than #if for define checks.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20441 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-19  Dave Shield <dts12 at users.sourceforge.net>
-
-   * man/snmp_api.3.def, man/snmp_sess_api.3.def: 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-3-patches@20440 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-19  Dave Shield <dts12 at users.sourceforge.net>
-
-   * man/session_api.3.def, man/snmp_sess_api.3.def: 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-5-patches@20440 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-19  Dave Shield <dts12 at users.sourceforge.net>
-
-   * man/netsnmp_sess_api.3.def, man/netsnmp_session_api.3.def: 
-
- 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
-
-2011-05-19  Dave Shield <dts12 at users.sourceforge.net>
-
-   * man/netsnmp_sess_api.3.def, man/netsnmp_session_api.3.def: 
-
- 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/trunk@20440 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-19  Dave Shield <dts12 at users.sourceforge.net>
-
-   * man/snmp_api.3.def, man/snmp_sess_api.3.def: 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-4-patches@20440 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-19  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * 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.  (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
-
-2011-05-19  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * 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.  (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/trunk@20438 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-19  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/keytools.c, snmplib/scapi.c: 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
-
-2011-05-19  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/keytools.c, snmplib/scapi.c: 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/trunk@20437 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-16  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/system.c: make sure we get the hint git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20436 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-15  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * testing/RUNTESTS: 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
-
-2011-05-15  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * testing/RUNTESTS: 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/trunk@20435 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-14  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/transports/snmpIPv6BaseDomain.c: Ran
-
- snmplib/transports/snmpIPv6BaseDomain.c through dos2unix.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20434 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-14  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * testing/fulltests/default/T071com2sec6_simple: 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
-
-2011-05-14  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * testing/fulltests/default/T071com2sec6_simple: Fixed a typo in a
-
- comment.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20433 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-14  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * testing/RUNTESTS: 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
-
-2011-05-14  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * testing/RUNTESTS: RUNTESTS works again for tests with a four-digit
-
- number.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20432 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-14  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/system.c: Fixed a recently introduced bug in
-
- netsnmp_getaddrinfo().  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20431 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-14  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/diskio.c: 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
-
-2011-05-14  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/diskio.c: 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/trunk@20430 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-13  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/system.c: fix cast git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20429 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-13  Robert Story <rstory at users.sourceforge.net>
-
-   *   * 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_a
-       ccess.c, 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_acces
-       s.c: Revert 20420 "CHANGES: snmpd: Fixed memory leak in TCP-MIB
-
- tables introduced by patch #3053436." Revert 19708 "CHANGES: snmpd:
- PATCH: 3053436: from: takevos: fix: tcpConnectionTable_data_access
- invalid memory access" the bug 3053436 is fixing was introduced in r17719, and fixed in
- r17861.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20428 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-13  Robert Story <rstory at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/nslookup/lookupCtlTable.c, 
-      agent/mibgroup/disman/ping/pingCtlTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c, 
-      apps/snmpnetstat/inet.c, apps/snmpnetstat/route.c, 
-      apps/snmptrapd_log.c, configure, configure.d/config_os_functions, 
-      configure.d/config_os_libs2, include/net-snmp/library/system.h, 
-      include/net-snmp/net-snmp-config.h.in, snmplib/system.c, 
-      snmplib/transports/snmpIPv4BaseDomain.c, 
-      snmplib/transports/snmpIPv6BaseDomain.c, 
-      snmplib/transports/snmpUDPIPv6Domain.c: more dns related tweaks  -
-      add netsnmp_gethostbyaddr  - always define netsnmp_* versions;
-      logonce if underlying    function is not available  - use new
-      functions in disman mibs git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20427 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-13  Robert Story <rstory at users.sourceforge.net>
-
-   *  apps/snmpnetstat/inet6.c, snmplib/snmpv3.c, 
-      snmplib/transports/snmpIPv6BaseDomain.c, 
-      snmplib/transports/snmpUDPIPv6Domain.c: use new netsnmp dns
-
- functions in apps/snmplib git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20426 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-13  Robert Story <rstory at users.sourceforge.net>
-
-   * include/net-snmp/library/system.h, snmplib/system.c: move DNSSEC
-
- validation into resolver wrapper functions   - allows other code to benefit from validation   - new netsnmp_gethostbyname, netsnmp_getaddrinfo git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20425 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-13  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/mib.c: 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-5-patches@20424 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-13  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/mib.c: 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
-
-2011-05-13  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/mib.c: 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/trunk@20424 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/ip-mib/data_access/arp_netlink.c: Fix for RHEL4
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20423 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmp_transport.h, 
-      snmplib/transports/snmpUDPBaseDomain.c: Header fiddling for the
-
- benefit of RHEL4, Solaris, OpenBSD git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20422 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   *   * 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_a
-       ccess.c, 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_acces
-       s.c: CHANGES: snmpd: Fixed memory leak in TCP-MIB tables
-      introduced
-
- by patch #3053436.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20421 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   *   * 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_a
-       ccess.c, 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_acces
-       s.c: CHANGES: snmpd: Fixed memory leak in TCP-MIB tables
-      introduced
-
- by patch #3053436.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20420 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * win32/net-snmp/net-snmp-config.h: Reverted accidentally committed
-
- changes of r20412.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20419 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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-4-patches@20418 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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-5-patches@20418 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: CHANGES: snmplib: Fixed a memory leak in
-
- snmp_free_session().  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20418 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/mib.c: 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-5-patches@20417 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/mib.c: 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
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/mib.c: 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/trunk@20417 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/lcd_time.c: Avoid that MSVC triggers a compiler warning on
-
- the code in snmplib/lcd_time.c.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20416 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/notification/snmpNotifyFilterProfileTable.c: Avoid
-
- reading an uninitialized variable.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20415 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/at.c: 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-4-patches@20414 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/at.c: 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-5-patches@20414 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/at.c: 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
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/at.c: 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/trunk@20414 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/interfaces.c: 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-4-patches@20413 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/interfaces.c: 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-5-patches@20413 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/interfaces.c: 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
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/interfaces.c: 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/trunk@20413 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/ipAddr.c: 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-4-patches@20412 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/ipAddr.c: 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-5-patches@20412 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/ipAddr.c: 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
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/ipAddr.c, win32/net-snmp/net-snmp-config.h: 
-
- 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/trunk@20412 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * ChangeLog: Documentation / source code comment spelling fix:
-
- exitent -> existent.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20411 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * ChangeLog, snmplib/mib.c: Documentation / source code comment
-
- spelling fix: exitent -> existent.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20411 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * ChangeLog, snmplib/mib.c: 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
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * ChangeLog, snmplib/mib.c: Documentation / source code comment
-
- spelling fix: exitent -> existent.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20411 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-12  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/transports/snmpIPv6BaseDomain.c: CHANGES: Win32: Build
-
- snmplib/transports/snmpIPv6BaseDomain.c only if NETSNMP_ENABLE_IPV6
- has been defined.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20410 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  Makefile.in, Makefile.rules, configure, 
-      configure.d/config_project_with_enable: install the built feature
-
- headers too git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20409 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-11  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  testing/fulltests/default/T025snmpv3getSHADES_simple, 
-      testing/fulltests/default/T026snmpv3getSHAAES_simple: CHANGES:
-
- testing: Tests 025 and 026 pass on MinGW even if winExtDLL has been
- enabled.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20408 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-11  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * testing/fulltests/default/T065agentextend_simple: T065 robustness
-
- improvement.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20407 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-11  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  agent/mibgroup/hardware/fsys.h, 
-      agent/mibgroup/hardware/fsys/fsys_void.c, 
-      agent/mibgroup/ucd-snmp/disk_hw.h: CHANGES: snmpd: ucd_snmp builds
-
- again on MinGW and Cygwin.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20406 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * Makefile.in: install the net-snmp-features.h file git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20405 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * testing/fulltests/default/T0141snmpv2cset_simple: Improved test
-
- robustness.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20404 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/schedule/schedCore.c, 
-      agent/mibgroup/smux/smux.c: Compiler warning fixes.  git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20403 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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-4-patches@20402 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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-5-patches@20402 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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
-
-2011-05-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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/trunk@20402 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/tools.c: Avoid out-of-bounds array access if the last char
-
- of time_string is in the range 0x80..0xfe and char is a signed type.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20401 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * include/net-snmp/library/oid.h: Reverted r20380 because it breaks
-
- all statements that print an OID sub-ID on any 64-bit platform. The
- effect of r20380 on big endian architectures was that a "0" would be
- printed instead of the OID sub-ID (at least with the LP64 and the
- ILP64 models).  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20400 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-10  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * CHANGES, NEWS: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20385 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-10  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * ChangeLog: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20384 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-10  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/Makefile.depend, agent/helpers/Makefile.depend, 
-      agent/mibgroup/Makefile.depend, apps/Makefile.depend, 
-      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend: make
-
- depend git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20383 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-10  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/deliver/deliverByNotify.c, 
-      agent/mibgroup/hardware/cpu/cpu_linux.c, 
-      agent/mibgroup/ip-mib/data_access/arp_linux.c: C++ -> C comments
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20382 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-10  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * NEWS: NEWS update for 5.7 git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20381 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * include/net-snmp/library/oid.h: revert the oid typedef resizing
-
- from r17809 because it broke backwards compat, as pointed out by
- users on the -coders list git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20380 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * configure: use proper autoconf version git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20379 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  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
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20378 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * Makefile.top: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20377 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  mibs/UCD-SNMP-MIB.txt: added a missing 0 in the revision date
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20376 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/data_access/interface_ioctl.c: Use symbolic
-
- named for ifType values git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20375 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/data_access/interface_ioctl.c: Use symbolic
-
- named for ifType values git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20375 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/data_access/interface_ioctl.c: Use symbolic
-
- named for ifType values git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20375 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/data_access/interface_ioctl.c: 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
-
-2011-05-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/data_access/interface_ioctl.c: Use symbolic
-
- named for ifType values git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20375 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   * mibs/rfcmibs.diff: 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
-
-2011-05-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   * mibs/rfcmibs.diff: IANA has fixed the
-
- IANA-IPPM-METRICS-REGISTRY-MIB git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20374 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * mibs/UCD-SNMP-MIB.txt: added a new REVISION clause to list the
-
- changes in the the recent update git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20373 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * NEWS: added ping/traceroute mibs note git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20372 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/proxy.c: we actually want to use the base
-
- OID as the starting point, not the reg OID.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20371 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/proxy.c: fixed the proxy support to do a
-
- proper OID less than OID compare.  We actually don't care about the
- length of the original request, only that it was before the
- registered rebase git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20370 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/proxy.c: CHANGES: patch 3140833: from
-
- jsafranek: fix proxy GETNEXT requests When OIDs requested are below
- the proxy request remap, we need to not include any OIDs that might
- be in the space between the original OID and the remapped OID.  This
- patch fudges the request so that it fixes the request OID so it's
- just before the remapped proxy range.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20369 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/hardware/cpu/cpu.c, 
-      agent/mibgroup/hardware/cpu/cpu_linux.c, 
-      agent/mibgroup/ucd-snmp/vmstat.c,
-      agent/mibgroup/ucd-snmp/vmstat.h, 
-      include/net-snmp/agent/hardware/cpu.h, mibs/UCD-SNMP-MIB.txt:
-      NEWS:
-
- PATCH 3167325: from krisztoforo: UCD-SNMP/SystemStats: add variables
- to report cpusteal, cpuguest, cpuguestnice git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20368 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/data_access/interface.c: CHANGES: patch
-
- 3184026: from eivnaes: Avoid constant refresh of interface
- statistics git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20367 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  agent/snmp_agent.c, apps/snmpdelta.c, snmplib/scapi.c, 
-      snmplib/snmp_api.c, snmplib/system.c, snmplib/tools.c: Fixed
-      several
-
- compiler warnings reported by the MSVC compiler.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20366 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  snmplib/gettimeofday.c: Win32/MSVC: Fixed a compiler warning. 
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20365 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-09  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/var_route.c: CHANGES: agent: Fixed a
-
- year-2038 bug in the implementation of ipRouteTable.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20364 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-08  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/ping/pingCtlTable.c, 
-      agent/mibgroup/disman/ping/pingCtlTable.h, 
-      agent/mibgroup/disman/ping/pingProbeHistoryTable.c, 
-      agent/mibgroup/disman/ping/pingResultsTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h, 
-      agent/mibgroup/disman/traceroute/traceRouteHopsTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteProbeHistoryTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteResultsTable.c: 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-3-patches@20363 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-08  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/ping/pingCtlTable.c, 
-      agent/mibgroup/disman/ping/pingCtlTable.h, 
-      agent/mibgroup/disman/ping/pingProbeHistoryTable.c, 
-      agent/mibgroup/disman/ping/pingResultsTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h, 
-      agent/mibgroup/disman/traceroute/traceRouteHopsTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteProbeHistoryTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteResultsTable.c: 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-4-patches@20363 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-08  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/ping/pingCtlTable.c, 
-      agent/mibgroup/disman/ping/pingCtlTable.h, 
-      agent/mibgroup/disman/ping/pingProbeHistoryTable.c, 
-      agent/mibgroup/disman/ping/pingResultsTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h, 
-      agent/mibgroup/disman/traceroute/traceRouteHopsTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteProbeHistoryTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteResultsTable.c: 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-5-patches@20363 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-08  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/ping/pingCtlTable.c, 
-      agent/mibgroup/disman/ping/pingCtlTable.h, 
-      agent/mibgroup/disman/ping/pingProbeHistoryTable.c, 
-      agent/mibgroup/disman/ping/pingResultsTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h, 
-      agent/mibgroup/disman/traceroute/traceRouteHopsTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteProbeHistoryTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteResultsTable.c: 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
-
-2011-05-08  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/ping/pingCtlTable.c, 
-      agent/mibgroup/disman/ping/pingCtlTable.h, 
-      agent/mibgroup/disman/ping/pingProbeHistoryTable.c, 
-      agent/mibgroup/disman/ping/pingResultsTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h, 
-      agent/mibgroup/disman/traceroute/traceRouteHopsTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteProbeHistoryTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteResultsTable.c: 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/trunk@20363 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  perl/SNMP/SNMP.xs: Removed an unused label from perl/SNMP/SNMP.xs.
-       git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20362 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  perl/SNMP/SNMP.xs: Removed an unused label from perl/SNMP/SNMP.xs.
-       git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20362 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  perl/SNMP/SNMP.xs: 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
-
-2011-05-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  perl/SNMP/SNMP.xs: Removed an unused label from perl/SNMP/SNMP.xs.
-       git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20362 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  agent/agent_registry.c, agent/helpers/old_api.c, 
-      include/net-snmp/agent/agent_registry.h, 
-      include/net-snmp/agent/old_api.h: CHANGES: snmpd: Declare the OID
-
- argument type of MIB registration functions as 'const oid *' instead
- of 'oid *' since these functions do not modify the OID.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20361 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  agent/mibgroup/ip-mib/data_access/arp_linux.c, 
-      agent/mibgroup/ip-mib/data_access/arp_netlink.c, 
-      include/net-snmp/data_access/arp.h: Use the correct data type for
-
- the 'cache expired' variable: char instead of int.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20360 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/dlmod.c: Fixed a compiler warning that was
-
- introduced in r20151.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20359 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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
-
-2011-05-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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/trunk@20358 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-07  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib/data_access/arp_netlink.c: Add file
-
- forgotten in r20353 git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20357 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * win32/net-snmp/net-snmp-config.h: 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
-
-2011-05-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/transports/snmpDTLSUDPDomain.c: 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
-
-2011-05-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/diskio.c: 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
-
-2011-05-06  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/helpers/cache_handler.c, 
-      agent/mibgroup/ip-mib/data_access/arp.h, 
-      agent/mibgroup/ip-mib/data_access/arp_common.c, 
-      agent/mibgroup/ip-mib/data_access/arp_linux.c, 
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h, 
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_
-       access.c, include/net-snmp/agent/cache_handler.h, 
-      include/net-snmp/data_access/arp.h: CHANGES: snmpd: PATCH 312596:
-
- from fabled80: listen for netlink change events for the arp-related
- tables git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20353 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/ping/pingCtlTable.c, 
-      agent/mibgroup/disman/ping/pingCtlTable.h, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h: 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-3-patches@20352 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/ping/pingCtlTable.c, 
-      agent/mibgroup/disman/ping/pingCtlTable.h, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h: 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-4-patches@20352 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/ping/pingCtlTable.c, 
-      agent/mibgroup/disman/ping/pingCtlTable.h, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h: 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-5-patches@20352 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/ping/pingCtlTable.c, 
-      agent/mibgroup/disman/ping/pingCtlTable.h, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h: 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
-
-2011-05-06  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/system.c: NEWS: snmplib: add optional support for local
-
- DNSSEC validation of hostnames  - optional at configure time: --with-local-dnssec-validation  - requires DNSSEC-Tool validation libraries  - initial support, for systems with getaddrinfo. support for
-    additional resolver interfaces coming soon.   - also TODO: flag for ignoring validatoin errors (log & continue) git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20351 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Robert Story <rstory at users.sourceforge.net>
-
-   * include/net-snmp/library/parse.h: move unused (and too generic)
-
- token within UCD_COMPATIBLE ifdef   - MAXLABEL conflicts with <arpa/nameser.h>   - added NETSNMP_MAXLABEL git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20350 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Robert Story <rstory at users.sourceforge.net>
-
-   *  agent/Makefile.in, apps/Makefile.in, 
-      apps/snmpnetstat/Makefile.in, configure, 
-      configure.d/config_os_misc2, 
-      configure.d/config_project_with_enable, 
-      include/net-snmp/net-snmp-config.h.in: update configure/Makefiles
-
- for DNSSEC local validation option git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20349 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * CHANGES: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20347 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * ChangeLog: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20346 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * agent/mibgroup/Makefile.depend: make depend git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20345 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  man/netsnmp_agent.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_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_request_info_s.3, 
-      man/netsnmp_netsnmp_table_registration_info_s.3, 
-      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3, man/netsnmp_util.3,
-       man/netsnmp_utilities.3, man/netsnmp_variable_list.3, 
-      man/netsnmp_watcher.3: documentation update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20344 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.in, dist/net-snmp.spec, 
-      snmplib/snmp_version.c: Version number update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20343 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/data_access/interface_sysctl.c: removed the
-
- accidental broken feature require line that got half inserted git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20342 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * CHANGES: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20340 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * ChangeLog: version update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20339 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * agent/mibgroup/Makefile.depend: make depend git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20338 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  man/netsnmp_agent.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_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_request_info_s.3, 
-      man/netsnmp_netsnmp_table_registration_info_s.3, 
-      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3, man/netsnmp_util.3,
-       man/netsnmp_utilities.3, man/netsnmp_variable_list.3, 
-      man/netsnmp_watcher.3: documentation update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20337 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.in, dist/net-snmp.spec, 
-      snmplib/snmp_version.c: Version number update git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20336 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/installer/net-snmp.nsi: 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-5-patches@20335 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/installer/net-snmp.nsi: 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
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/installer/net-snmp.nsi: 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-4-patches@20335 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/installer/net-snmp.nsi: 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/trunk@20335 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/installer/net-snmp.nsi: 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-3-patches@20335 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/build-binary.pl: Support Tar/GZip command paths
-
- containing spaces git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20334 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/build-binary.pl: 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
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/build-binary.pl: Support Tar/GZip command paths
-
- containing spaces git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20334 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  win32/dist/build-binary.pl: Report GZip command correctly
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20333 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  win32/dist/build-binary.pl: 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
-
-2011-05-06  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  win32/dist/build-binary.pl: Report GZip command correctly
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20333 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-05  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  snmplib/transports/snmpUDPBaseDomain.c, 
-      snmplib/transports/snmpUDPDomain.c: 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
-
-2011-05-05  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  snmplib/transports/snmpUDPBaseDomain.c, 
-      snmplib/transports/snmpUDPDomain.c: Fix for DragonFly BSD (does
-      not
-
- define IP_SENDSRCADDR) git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20332 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-05  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpUDPBaseDomain.h, 
-      include/net-snmp/library/snmpUDPIPv4BaseDomain.h: 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
-
-2011-05-05  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpUDPBaseDomain.h, 
-      include/net-snmp/library/snmpUDPIPv4BaseDomain.h: Fix spelling of
-
- SO_RECVDSTADDR git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20331 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-05  Robert Story <rstory at users.sourceforge.net>
-
-   *  include/net-snmp/library/default_store.h, man/snmp.conf.5.def, 
-      snmplib/snmp_api.c: NEWS: apps: add snmp.conf tokens for timeouts
-
- and retries git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20330 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-05  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/tools.c, testing/TESTCONF.sh: 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-4-patches@20329 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-05  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/tools.c, testing/TESTCONF.sh: 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-5-patches@20329 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-05  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/tools.c, testing/fulltests/support/simple_TESTCONF.sh: 
-
- 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
-
-2011-05-05  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/tools.c, testing/fulltests/support/simple_TESTCONF.sh: 
-
- 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/trunk@20329 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-05  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  win32/encode_keychange/encode_keychange.vcproj, 
-      win32/libagent/libagent.vcproj, 
-      win32/libnetsnmptrapd/libnetsnmptrapd.vcproj, 
-      win32/libsnmp/libsnmp.vcproj,
-      win32/libsnmp_dll/libsnmp_dll.vcproj, 
-      win32/netsnmpmibs/netsnmpmibs.vcproj, 
-      win32/snmpbulkget/snmpbulkget.vcproj, 
-      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd/snmpd.vcproj, 
-      win32/snmpdelta/snmpdelta.vcproj, win32/snmpdf/snmpdf.vcproj, 
-      win32/snmpget/snmpget.vcproj,
-      win32/snmpgetnext/snmpgetnext.vcproj, 
-      win32/snmpnetstat/snmpnetstat.vcproj,
-      win32/snmpset/snmpset.vcproj,  win32/snmpstatus/snmpstatus.vcproj,
-       win32/snmptable/snmptable.vcproj, win32/snmptest/snmptest.vcproj,
-       win32/snmptranslate/snmptranslate.vcproj, 
-      win32/snmptrap/snmptrap.vcproj, win32/snmptrapd/snmptrapd.vcproj, 
-      win32/snmpusm/snmpusm.vcproj, win32/snmpvacm/snmpvacm.vcproj, 
-      win32/snmpwalk/snmpwalk.vcproj, win32/win32.sln,
-      win32/win32dll.sln:
-
- Removed Visual Studio 2005 solution and project files again since
- Visual Studio 2010 refuses to load these.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20328 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * Makefile.in: clean the perl/python feature leftovers git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20327 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: fix mib module invocation git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20326 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c: fix ifdef
-
- typo git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20325 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * Makefile.in: fix perl/python feature dependencies git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20324 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/auto_nlist.c: reverted auto_nlist macro usage; the function
-
- is used in headers git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20323 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  local/minimalist/sizetests: Add a -T option to run 'make test'
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20322 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * apps/Makefile.in: fix the encode_keychange .ft filename git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20321 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * perl/TrapReceiver/netsnmp-feature-definitions.h, snmplib/tools.c: 
-
- fix the features required by the TrapReceiver module git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20320 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  Makefile.in: Add the TrapReceiver to the list of perl modules
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20319 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * perl/SNMP/SNMP.xs: use the newer Net-SNMP APIs, rather than the
-
- older UCD ones git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20318 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  perl/SNMP/SNMP.xs: remove SET code when under --read-only mode
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20317 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/disman/event/mteTriggerTable.c: require
-
- check_vb_uint git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20316 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *   * 
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_subagen
-       t.c, agent/snmp_agent.c, local/mib2c-conf.d/subagent.m2c, 
-      python/netsnmp/netsnmp-feature-definitions.h, 
-      snmplib/snmp_logging.c: last of the perl-used feature functions
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20315 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/Rmon/event.c, agent/mibgroup/agentx/subagent.c, 
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_subagen
-       t.c, agent/mibgroup/smux/smux.c, apps/snmptrapd_handlers.c, 
-      local/mib2c-conf.d/subagent.m2c, snmplib/mib.c, snmplib/parse.c:
-
- started the final set of function removals for features required by
- perl/python git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20314 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/generic-source-includes.m2i: added the
-
- net-snmp-features.h header git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20313 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  perl/OID/netsnmp-feature-definitions.h, 
-      perl/SNMP/netsnmp-feature-definitions.h, 
-      perl/TrapReceiver/netsnmp-feature-definitions.h, 
-      perl/agent/netsnmp-feature-definitions.h: Added perl feature
-
- requirements git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20312 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  Makefile.in, Makefile.rules, configure, 
-      configure.d/config_project_perl_python, 
-      perl/ASN/netsnmp-feature-definitions.h, 
-      perl/OID/netsnmp-feature-definitions.h, 
-      perl/SNMP/netsnmp-feature-definitions.h, 
-      perl/agent/netsnmp-feature-definitions.h, 
-      perl/default_store/netsnmp-feature-definitions.h: hopefully
-      working
-
- rules to apply feature requirements to perl and python git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20311 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/if-mib/data_access/interface.c, 
-      agent/mibgroup/if-mib/data_access/interface_ioctl.c, 
-      agent/mibgroup/if-mib/data_access/interface_linux.c, 
-      agent/mibgroup/ip-mib/data_access/ipaddress_common.c, 
-      agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c, 
-      agent/mibgroup/ip-mib/data_access/ipaddress_linux.c, 
-      agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c, 
-      agent/snmp_agent.c: more changes to remove unneeded functions
-
- primarily when write mode is turned off git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20310 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_logging.c: change the want invocation to only default
-
- to exclude external hooks git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20309 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/find-unused-code: search through .xs files for
-
- function invocations git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20308 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/auto_nlist.c: forgot a semicolon git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20307 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/Rmon/alarmTable.c, 
-      agent/mibgroup/disman/event/mteEventTable.c, 
-      agent/mibgroup/disman/event/mteTriggerTable.c, 
-      agent/mibgroup/disman/expr/expExpressionTable.c: iquery pdu
-      sessions
-
- are only needed in write mode.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20306 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * apps/Makefile.in: fix feature detection of sometimes-built
-
- applications git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20305 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/auto_nlist.c: use the feature_unused macro for making an
-
- empty file for consistency git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20304 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/helpers/table_dataset.c, agent/mibgroup/Rmon/alarmTable.c, 
-      agent/mibgroup/disman/event/mteEventTable.c, 
-      agent/mibgroup/disman/schedule/schedTable.c, 
-      agent/mibgroup/hardware/fsys/hw_fsys.c, 
-      agent/mibgroup/host/data_access/swrun.c, 
-      agent/mibgroup/host/hr_network.c, 
-      agent/mibgroup/if-mib/data_access/interface.c, 
-      agent/mibgroup/if-mib/data_access/interface_linux.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/ip-mib/data_access/ipaddress_common.c, 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_dat
-       a_access.c,
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c, 
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c,
-       agent/mibgroup/mibII/interfaces.c, agent/mibgroup/mibII/ipAddr.c,
-       agent/mibgroup/mibII/var_route.c, 
-      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSN
-       Table.c, agent/mibgroup/ucd-snmp/proc.c, 
-      agent/mibgroup/utilities/iquery.c, apps/snmptls.c, 
-      snmplib/cert_util.c, snmplib/mib.c, snmplib/snmp_openssl.c, 
-      snmplib/transports/snmpDTLSUDPDomain.c: Another sweep for unused
-
- functions when read_only mode is turned on git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20303 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/helpers/table_tdata.c, agent/mibgroup/Rmon/alarmTable.c, 
-      agent/mibgroup/agent/extend.c, agent/mibgroup/agent/nsLogging.c, 
-      agent/mibgroup/agent/nsVacmAccessTable.c, 
-      agent/mibgroup/disman/event/mteEvent.c, 
-      agent/mibgroup/disman/event/mteEventNotificationTable.c, 
-      agent/mibgroup/disman/event/mteEventSetTable.c, 
-      agent/mibgroup/disman/event/mteEventTable.c, 
-      agent/mibgroup/disman/event/mteObjectsTable.c, 
-      agent/mibgroup/disman/event/mteTrigger.c, 
-      agent/mibgroup/disman/event/mteTriggerBooleanTable.c, 
-      agent/mibgroup/disman/event/mteTriggerDeltaTable.c, 
-      agent/mibgroup/disman/event/mteTriggerExistenceTable.c, 
-      agent/mibgroup/disman/event/mteTriggerTable.c, 
-      agent/mibgroup/disman/event/mteTriggerThresholdTable.c, 
-      agent/mibgroup/disman/expr/expExpressionTable.c, 
-      agent/mibgroup/disman/expr/expObjectTable.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/schedule/schedTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c, 
-      agent/mibgroup/header_complex.c, 
-      agent/mibgroup/if-mib/data_access/interface.c, 
-      agent/mibgroup/if-mib/data_access/interface_sysctl.c, 
-      agent/mibgroup/if-mib/ifTable/ifTable.c, 
-      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c, 
-      agent/mibgroup/mibII/snmp_mib.c, 
-      agent/mibgroup/mibII/snmp_mib_5_5.c, 
-      agent/mibgroup/notification/snmpNotifyFilterProfileTable.c, 
-      agent/mibgroup/notification/snmpNotifyTable.c, 
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c
-       , 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNoti
-       fyFilterTable_interface.c, 
-      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
-      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSN
-       Table.c, 
-      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.
-       c, snmplib/check_varbind.c: mark a slew of functions as features
-
- that are only needed with write_support git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20302 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/find-unused-code: run grep with -n git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20301 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_transport.c, snmplib/transports/snmpDTLSUDPDomain.c: 
-
- featurize netsnmp_sockaddr_size git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20300 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib/data_access/ipaddress_linux.c: remove a
-
- feature_require not actually needed.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20299 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/cert_util.c, snmplib/container.c: mark SUBCONTAINER_FIND
-
- as a feature git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20298 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_client.c, snmplib/snmptsm.c: the row creation API is
-
- only used in the TSM implementation git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20297 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_api.c, snmplib/snmptsm.c: the newer context engineID
-
- probing is only needed iff TSM is in use git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20296 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/dir_utils.c: fix an ifdef typo git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20295 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_openssl.c: moved fetaure child_of statements to the
-
- top of the file git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20294 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  snmplib/cert_util.c, snmplib/container.c, snmplib/dir_utils.c, 
-      snmplib/snmp_openssl.c: marked a couple of rarely used container
-
- functions.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20293 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/if-mib/data_access/interface_linux.c, 
-      agent/mibgroup/ip-mib/data_access/ipaddress_linux.c, 
-      agent/mibgroup/util_funcs.c: split out the prefix_info feature
-      into
-
- sub-features git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20292 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *   * 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_int
-       erface.c: mark the accessor functions as unneeded git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20291 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/host/data_access/swinst.c: fix a child_of statement
-
- with a copy/paste error git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20290 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/helpers/table_tdata.c: the container row-remove is only
-
- needed if the tdata remove_row is needed git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20289 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/helpers/table_tdata.c, agent/mibgroup/Rmon/alarmTable.c, 
-      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
-      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSN
-       Table.c, 
-      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.
-       c: feature marking of unused tdata functions    
-      table_tdata_delete_table     table_tdata_extract_table    
-      table_tdata_remove_row git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20288 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/helpers/table_dataset.c, 
-      agent/mibgroup/disman/mteEventNotificationTable.c, 
-      agent/mibgroup/disman/mteEventTable.c, 
-      agent/mibgroup/examples/data_set.c: removal of some rarely used
-
- 	functions table_set_multi_add_default_row 	table_dataset_unregister_auto_data_table git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20287 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: Added a definition to incorporate
-
- read_only/notify_only git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20286 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/helpers/table_data.c: added a missing feature definition
-
- line git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20285 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/Makefile.in: added back in missing mibgroup feature
-
- definition list git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20284 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: Include the original base flags to
-
- ensure --with-defaults gets picked up git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20283 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: fix usage git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20282 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: Added a -b flag for base arguments to
-
- start from git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20281 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: default to a linear seach of size
-
- tests, rather than exponential git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20280 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * include/net-snmp/library/snmpUDPDomain.h, snmplib/snmpUDPDomain.c: 
-
- 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-5-patches@20279 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpUDPBaseDomain.h, 
-      include/net-snmp/library/snmpUDPDomain.h, 
-      include/net-snmp/library/snmpUDPIPv4BaseDomain.h, 
-      snmplib/transports/snmpUDPBaseDomain.c, 
-      snmplib/transports/snmpUDPDomain.c, 
-      snmplib/transports/snmpUDPIPv4BaseDomain.c: 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
-
-2011-05-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpUDPBaseDomain.h, 
-      include/net-snmp/library/snmpUDPDomain.h, 
-      include/net-snmp/library/snmpUDPIPv4BaseDomain.h, 
-      snmplib/transports/snmpUDPBaseDomain.c, 
-      snmplib/transports/snmpUDPDomain.c, 
-      snmplib/transports/snmpUDPIPv4BaseDomain.c: 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/trunk@20278 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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-4-patches@20277 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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-5-patches@20277 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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
-
-2011-05-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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/trunk@20277 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-02  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: 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-4-patches@20276 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-02  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: 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-5-patches@20276 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-02  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: 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
-
-2011-05-02  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: 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/trunk@20276 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-02  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  include/net-snmp/library/getopt.h, 
-      include/net-snmp/library/large_fd_set.h, 
-      include/net-snmp/net-snmp-includes.h: Win32 DLL build fixes.
-
- (Backported r20184 from trunk.) git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20275 06827809-a52a-0410-b366-d66718629ded
-
-2011-05-02  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  include/net-snmp/library/getopt.h, 
-      include/net-snmp/library/large_fd_set.h, 
-      include/net-snmp/net-snmp-includes.h: 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
-
-2011-04-29  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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-4-patches@20274 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-29  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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/trunk@20274 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-29  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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-5-patches@20274 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-29  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/winservice.c: 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
-
-2011-04-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * NEWS: added note about the new timing function git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20273 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * man/snmpd.conf.5.def: Update the manual page to reflect the new
-
- timing options git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20272 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/tools.c: better documentation git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20271 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/agentx/agentx_config.c, 
-      agent/mibgroup/disman/mteTriggerTable.c, 
-      agent/mibgroup/disman/schedule/schedConf.c: use the
-
- netsnmp_string_time_to_secs() for parsing frequencies/time git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20270 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * testing/fulltests/unit-tests/T102pdu_build_clib.c: fix pdu
-
- building tests under various disabled modes git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20269 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * testing/fulltests/unit-tests/T102pdu_build_clib.c: don't try to
-
- build the GET pdu under notify_only git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20268 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * include/net-snmp/library/tools.h, snmplib/tools.c: fix a bug with
-
- no-suffix strings and use a const input string git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20267 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *   * 
-      testing/fulltests/unit-tests/T010netsnmp_string_time_to_secs_clib.c:
-
- A new unit test for the time conversion routine git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20266 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: use the
-
- netsnmp_string_time_to_secs() function for computing interval
- periods git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20265 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * include/net-snmp/library/tools.h, snmplib/tools.c: Added a
-
- netsnmp_string_time_to_secs() functions to convert, e.g., 1h to 3600 git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20264 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: remove code to build/parse GET/etc requests
-
- when NOTIFY_ONLY is turned on.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20263 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * NEWS: update the NEWS to reflect the new --enable-read-only and
-
- --enable-notify-only git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20262 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/if-mib/ifTable/ifTable_interface.c, 
-      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c: minor
-
- improvements for ronly vs rwrite handling git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20261 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_interface.c: still enable
-
- RONLY when RWRITE isn't possible git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20260 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/helpers/cache_handler.c: fix GET support when no_write is
-
- enabled git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20259 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: mark a future
-
- modification need in a comment git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20258 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/helpers/old_api.c: fix handling of no_write support
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20257 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/agent_read_config.c, agent/snmp_agent.c, agent/snmpd.c: 
-
- don't open any listening transports when notify-only is specified git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20256 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * configure, configure.d/config_project_with_enable: set the
-
- no-listen and read-only flags when --enable-notify-only is set git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20255 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * include/net-snmp/net-snmp-config.h.in: ran autoheader git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20254 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  snmplib/transports/snmpAAL5PVCDomain.c, 
-      snmplib/transports/snmpDTLSUDPDomain.c, 
-      snmplib/transports/snmpIPXDomain.c, 
-      snmplib/transports/snmpSSHDomain.c, 
-      snmplib/transports/snmpTCPDomain.c, 
-      snmplib/transports/snmpTCPIPv6Domain.c, 
-      snmplib/transports/snmpTLSTCPDomain.c, 
-      snmplib/transports/snmpUDPIPv4BaseDomain.c, 
-      snmplib/transports/snmpUDPIPv6Domain.c, 
-      snmplib/transports/snmpUnixDomain.c: implement the
-
- NETSNMP_NO_LISTEN_SUPPORT in these transports git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20253 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * configure: run autoconf git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20252 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * configure.d/config_project_with_enable: move the read-only flag
-
- definition below the notify-only, since notify-only needs to imply
- read-only git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20251 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * configure, configure.d/config_project_with_enable: Defined a new
-
- --enable-notify-only flag for building a toolset that only allows
- for notifications with no read/write support git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20250 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * configure, configure.d/config_project_with_enable: Defined a new
-
- --no-listen flag to remove listening support git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20249 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/default_modules.h: the disman schedule mib is only
-
- useful when SETs are turned on git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20248 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/disman.h: the disman schedule mib is only useful
-
- when SETs are turned on git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20247 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *   * 
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable
-       _interface.c, 
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_int
-       erface.c, 
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_inter
-       face.c, 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_int
-       erface.c, 
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c, 
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c, 
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interfa
-       ce.c, 
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTab
-       le_interface.c, 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interf
-       ace.c, 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.
-       c, 
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.
-       c: finished no_write support for common included tables
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20246 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/helpers/table_dataset.c: Add back in
-
- 'netsnmp_set_row_column' when no_write support is enabled This
- function is a generic data manipulation function, not SET specific git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20245 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/helpers/table_dataset.c: don't use mark_row_column_writable
-
- when read-only support is enabled git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20244 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/agent/nsCache.c, agent/mibgroup/agent/nsDebug.c, 
-      agent/mibgroup/agent/nsLogging.c, 
-      agent/mibgroup/ip-mib/ip_scalars.c, 
-      agent/mibgroup/mibII/tcpTable.c, agent/mibgroup/mibII/udpTable.c, 
-      agent/mibgroup/notification-log-mib/notification_log.c, 
-      agent/mibgroup/ucd-snmp/proxy.c, 
-      agent/mibgroup/utilities/override.c: fix no_write support
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20243 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/agent/extend.c: fix no_write support git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20242 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c: 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-3-patches@20241 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c: 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-4-patches@20241 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c: 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-5-patches@20241 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c: 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
-
-2011-04-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c: 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/trunk@20241 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: git bash-shell functions to enable
-
- branch switching and external building These local shell functions
- (snmpconfigure and snmpmake) let you configure and build the
- Net-SNMP source code in external directories that are
- auto-calculated based on the existing branch name (with an optional
- suffix).  This lets you run 'snmpmake' from within the source
- directory and have it actually externally keep track of modified
- files, etc, so building in multiple branches can be done from a
- single git checkout.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20240 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/deliver/deliverByNotify.c: clean up the iterators
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20239 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: free varbinds after
-
- sending git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20238 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-25  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/diskio.c: Commented out an unused function
-
- because the compiler complained about it.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20237 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-25  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/transports/snmpDTLSUDPDomain.c: Fixed two compiler
-
- warnings.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20236 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-23  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   *  agent/helpers/table_data.c: Remove unnecessary null check
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20235 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-23  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/helpers/table_container.c: Move pointer dereference to after
-
- the check for successful allocation of the pointer git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20234 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-23  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/agent_registry.c: Reduce variable scope git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20233 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-23  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/agent_registry.c: Remove an unused variable git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20232 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-23  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/agent_registry.c: Reduce variable scope git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20231 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-23  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/agent_registry.c: Reduce variable scope git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20230 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/agent_trap.c: Reduce variable scope git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20229 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/agent_trap.c: Remove unused variable git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20228 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * man/snmpd.conf.5.def: mention which module is required when
-
- building to get the deliver support git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20227 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: deleted an unneeded
-
- debugging statement git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20226 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: properly update the max
-
- count in the outgoing notifications git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20225 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: better packet estimation
-
- to ensure we don't overrun.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20224 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: estimate the packet size
-
- and break the notification up based on it git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20223 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: transform the
-
- notification sending into a larger loop for later multi-notifs git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20222 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  NEWS: further information about feature marking/selection
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20221 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * NEWS: mention the new delivery by notifications git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20220 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * NEWS: document the minimalist support git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20219 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * man/snmpd.conf.5.def: document the new deliverByNotify config
-
- tokens git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20218 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: allow run time
-
- modifications of the OIDs to use git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20217 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/deliver/deliverByNotify.c, 
-      agent/mibgroup/deliver/deliverByNotify.h: add config flags to not
-
- include the period config and msg count values git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20216 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: include the periodic
-
- count, the message number and the max message number git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20215 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: deleted debugging
-
- comment git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20214 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/deliver/deliverByNotify.c, 
-      mibs/NET-SNMP-PERIODIC-NOTIFY-MIB.txt: Move the notification
-
- definition to within the sub-mib git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20213 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: delete an unused
-
- variable git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20212 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.h: load the MIB into the
-
- default set git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20211 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * mibs/NET-SNMP-PERIODIC-NOTIFY-MIB.txt: A new mib to hold the
-
- periodic notify objects git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20210 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: fill out the config free
-
- routine git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20209 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: properly monitor the
-
- whole container git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20208 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/deliver/deliverByNotify.c, 
-      agent/mibgroup/deliver/deliverByNotify.h: parse the conf files and
-
- create and insert objects into the container git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20207 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: defined a container to
-
- store a list of deliver objects in git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20206 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.h: added a next_run
-
- timestamp git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20205 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: actually send a
-
- notification with the results git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20204 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: make the walk on the
-
- test object function.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20203 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: create a max packet size
-
- config token and parse it git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20202 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/deliver/deliverByNotify.c, 
-      agent/mibgroup/deliver/deliverByNotify.h: minimal starting test
-
- object git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20201 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/deliver/deliverByNotify.c, 
-      agent/mibgroup/deliver/deliverByNotify.h: added a function to
-
- calculate the time until the next run git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20200 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: remove left in template
-
- line git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20199 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/deliver/deliverByNotify.c, 
-      agent/mibgroup/deliver/deliverByNotify.h: use an alarm callback
-
- prototype for execute git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20198 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/deliver/deliverByNotify.c, 
-      agent/mibgroup/deliver/deliverByNotify.h: beginning template code
-
- for delivery of data by notifications git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20197 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/snmp_agent.c: Reduce variable scope git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20196 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/snmp_agent.c: Reduce variable scopes git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20195 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-22  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/snmp_agent.c: Remove unused variable git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20194 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-19  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * win32/libsnmp/libsnmp.vcproj, win32/win32.sln: Added Visual Studio
-
- 2005 project and solution file for building the Net-SNMP library as
- a static library. Both the Win32 and the x64 configurations are
- included.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20193 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-19  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  win32/encode_keychange/encode_keychange.vcproj, 
-      win32/libagent/libagent.vcproj, 
-      win32/libnetsnmptrapd/libnetsnmptrapd.vcproj, 
-      win32/libsnmp_dll/libsnmp_dll.vcproj, 
-      win32/netsnmpmibs/netsnmpmibs.vcproj, 
-      win32/snmpbulkget/snmpbulkget.vcproj, 
-      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd/snmpd.vcproj, 
-      win32/snmpdelta/snmpdelta.vcproj, win32/snmpdf/snmpdf.vcproj, 
-      win32/snmpget/snmpget.vcproj,
-      win32/snmpgetnext/snmpgetnext.vcproj, 
-      win32/snmpnetstat/snmpnetstat.vcproj,
-      win32/snmpset/snmpset.vcproj,  win32/snmpstatus/snmpstatus.vcproj,
-       win32/snmptable/snmptable.vcproj, win32/snmptest/snmptest.vcproj,
-       win32/snmptranslate/snmptranslate.vcproj, 
-      win32/snmptrap/snmptrap.vcproj, win32/snmptrapd/snmptrapd.vcproj, 
-      win32/snmpusm/snmpusm.vcproj, win32/snmpvacm/snmpvacm.vcproj, 
-      win32/snmpwalk/snmpwalk.vcproj: More Visual Studio 2005 project
-      file
-
- cleanup.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20191 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-18  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  win32/encode_keychange/encode_keychange.vcproj, 
-      win32/snmpbulkget/snmpbulkget.vcproj, 
-      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd/snmpd.vcproj, 
-      win32/snmpdelta/snmpdelta.vcproj, win32/snmpdf/snmpdf.vcproj, 
-      win32/snmpget/snmpget.vcproj,
-      win32/snmpgetnext/snmpgetnext.vcproj, 
-      win32/snmpnetstat/snmpnetstat.vcproj,
-      win32/snmpset/snmpset.vcproj,  win32/snmpstatus/snmpstatus.vcproj,
-       win32/snmptable/snmptable.vcproj, win32/snmptest/snmptest.vcproj,
-       win32/snmptranslate/snmptranslate.vcproj, 
-      win32/snmptrap/snmptrap.vcproj, win32/snmptrapd/snmptrapd.vcproj, 
-      win32/snmpusm/snmpusm.vcproj, win32/snmpvacm/snmpvacm.vcproj, 
-      win32/snmpwalk/snmpwalk.vcproj: Cleaned up Win32 VS2005 project
-
- files - removed superfluous library references.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20189 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-18  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  win32/encode_keychange/encode_keychange.vcproj, 
-      win32/libagent/libagent.vcproj, 
-      win32/libnetsnmptrapd/libnetsnmptrapd.vcproj, 
-      win32/libsnmp_dll/libsnmp_dll.vcproj, 
-      win32/netsnmpmibs/netsnmpmibs.vcproj, 
-      win32/snmpbulkget/snmpbulkget.vcproj, 
-      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd/snmpd.vcproj, 
-      win32/snmpdelta/snmpdelta.vcproj, win32/snmpdf/snmpdf.vcproj, 
-      win32/snmpget/snmpget.vcproj,
-      win32/snmpgetnext/snmpgetnext.vcproj, 
-      win32/snmpnetstat/snmpnetstat.vcproj,
-      win32/snmpset/snmpset.vcproj,  win32/snmpstatus/snmpstatus.vcproj,
-       win32/snmptable/snmptable.vcproj, win32/snmptest/snmptest.vcproj,
-       win32/snmptranslate/snmptranslate.vcproj, 
-      win32/snmptrap/snmptrap.vcproj, win32/snmptrapd/snmptrapd.vcproj, 
-      win32/snmpusm/snmpusm.vcproj, win32/snmpvacm/snmpvacm.vcproj, 
-      win32/snmpwalk/snmpwalk.vcproj, win32/win32dll.sln: Added x64
-
- configurations.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20188 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-18  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  win32/encode_keychange/encode_keychange.vcproj, 
-      win32/libagent/libagent.vcproj, 
-      win32/libnetsnmptrapd/libnetsnmptrapd.vcproj, 
-      win32/libsnmp_dll/libsnmp_dll.vcproj, 
-      win32/netsnmpmibs/netsnmpmibs.vcproj, 
-      win32/snmpbulkget/snmpbulkget.vcproj, 
-      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd/snmpd.vcproj, 
-      win32/snmpdelta/snmpdelta.vcproj, win32/snmpdf/snmpdf.vcproj, 
-      win32/snmpget/snmpget.vcproj,
-      win32/snmpgetnext/snmpgetnext.vcproj, 
-      win32/snmpnetstat/snmpnetstat.vcproj,
-      win32/snmpset/snmpset.vcproj,  win32/snmpstatus/snmpstatus.vcproj,
-       win32/snmptable/snmptable.vcproj, win32/snmptest/snmptest.vcproj,
-       win32/snmptranslate/snmptranslate.vcproj, 
-      win32/snmptrap/snmptrap.vcproj, win32/snmptrapd/snmptrapd.vcproj, 
-      win32/snmpusm/snmpusm.vcproj, win32/snmpvacm/snmpvacm.vcproj, 
-      win32/snmpwalk/snmpwalk.vcproj, win32/win32dll.sln: Added
-
- win32dll-related Visual Studio 2005 project and solution files.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20186 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-18  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  include/net-snmp/library/getopt.h, 
-      include/net-snmp/library/large_fd_set.h, 
-      include/net-snmp/net-snmp-includes.h: Win32 DLL build fixes. 
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20184 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-17  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmpUDPDomain.c: 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-5-patches@20183 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-17  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  snmplib/transports/snmpUDPBaseDomain.c, 
-      snmplib/transports/snmpUDPDomain.c, 
-      snmplib/transports/snmpUDPIPv4BaseDomain.c: 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
-
-2011-04-17  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  snmplib/transports/snmpUDPBaseDomain.c, 
-      snmplib/transports/snmpUDPDomain.c, 
-      snmplib/transports/snmpUDPIPv4BaseDomain.c: CHANGES: snmpd:
-      PATCHES:
-
- 3175640: Use IP_RECVDSTADDR sockopt where available (*BSD) git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20183 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-15  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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-3-patches@20182 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-15  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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-4-patches@20182 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-15  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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-5-patches@20182 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-15  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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
-
-2011-04-15  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmp_api.c: 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/trunk@20182 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-15  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  agent/mibgroup/ucd-snmp/diskio.c, apps/snmptrapd_ds.h, 
-      include/net-snmp/agent/ds_agent.h, man/snmpd.conf.5.def: 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
-
-2011-04-15  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  agent/mibgroup/ucd-snmp/diskio.c, apps/snmptrapd_ds.h, 
-      include/net-snmp/agent/ds_agent.h, man/snmpd.conf.5.def: 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/trunk@20181 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * python/netsnmp/client_intf.c: 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-4-patches@20180 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * python/netsnmp/client_intf.c: 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-5-patches@20180 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * python/netsnmp/client_intf.c: 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
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * python/netsnmp/client_intf.c: CHANGES: python: PATCHES: 3185085:
-
- Fix segfault on 64-bit systems git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20180 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: 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-3-patches@20179 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: 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-4-patches@20179 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: 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-5-patches@20179 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: 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
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: CHANGES: mib2c: PATCHES: 3175323: Fix handling of
-
- 'while (false)' blocks git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20179 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: 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-3-patches@20178 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: 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-4-patches@20178 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: 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-5-patches@20178 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: 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
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: 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/trunk@20178 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: CHANGES: mib2c: PATCHES: 3211484: Support
-
- enumerations in notification varbinds git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20177 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: CHANGES: mib2c: PATCHES: 3211484: Support
-
- enumerations in notification varbinds git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20177 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: CHANGES: mib2c: PATCHES: 3211484: Support
-
- enumerations in notification varbinds git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20177 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: 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
-
-2011-04-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * local/mib2c: CHANGES: mib2c: PATCHES: 3211484: Support
-
- enumerations in notification varbinds git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20177 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * mibs/UCD-SNMP-MIB.txt: Add missing system oids to mib git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20176 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * mibs/UCD-SNMP-MIB.txt: Add missing system oids to mib git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20176 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * mibs/UCD-SNMP-MIB.txt: Add missing system oids to mib git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20176 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * mibs/UCD-SNMP-MIB.txt: 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
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * mibs/UCD-SNMP-MIB.txt: Add missing system oids to mib git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20176 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * apps/snmptable.c: 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-3-patches@20175 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * apps/snmptable.c: 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-4-patches@20175 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * apps/snmptable.c: 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-5-patches@20175 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * apps/snmptable.c: 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
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * apps/snmptable.c: 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/trunk@20175 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * man/snmptrapd.8.def: Fix wrong name for config token
-
- 'doNotRetainNotificationLogs' git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20174 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * man/snmptrapd.8.def: Fix wrong name for config token
-
- 'doNotRetainNotificationLogs' git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20174 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * man/snmptrapd.8.def: Fix wrong name for config token
-
- 'doNotRetainNotificationLogs' git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20174 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * man/snmptrapd.8.def: 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
-
-2011-04-12  Niels Baggesen <nba at users.sourceforge.net>
-
-   * man/snmptrapd.8.def: Fix wrong name for config token
-
- 'doNotRetainNotificationLogs' git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20174 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/sctp-mib/sctpScalars_freebsd.c: Remove bogus
-
- (Linux) defines git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20173 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/sctp-mib/sctpScalars_freebsd.c: 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
-
-2011-04-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/sctp-mib/sctpScalars_freebsd.c: Remove bogus
-
- (Linux) defines git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20173 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  snmplib/snmp-tc.c: 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-5-patches@20172 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  snmplib/snmp-tc.c: 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
-
-2011-04-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  snmplib/snmp-tc.c: HAVE_TM_TM_GMTOFF is HAVE_STRUCT_TM_TM_GMTOFF
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20172 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/ping/pingCtlTable.c, 
-      agent/mibgroup/disman/ping/pingCtlTable.h, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h, configure, 
-      include/net-snmp/net-snmp-config.h.in: Bill Fenners patch to make
-
- DISMAN PING and TRACEROUTE MIBS compile under Linux git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20171 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/kernel_sunos5.c, agent/mibgroup/kernel_sunos5.h, 
-      agent/mibgroup/sctp-mib/sctpScalars.h, 
-      agent/mibgroup/sctp-mib/sctpScalars_solaris2.c, 
-      agent/mibgroup/sctp-mib/sctpTables.h, 
-      agent/mibgroup/sctp-mib/sctpTables_solaris2.c: Solaris support for
-
- SCTP-MIB git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20170 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/kernel_sunos5.c, agent/mibgroup/kernel_sunos5.h, 
-      agent/mibgroup/sctp-mib/sctpScalars.h, 
-      agent/mibgroup/sctp-mib/sctpScalars_solaris2.c, 
-      agent/mibgroup/sctp-mib/sctpTables.h, 
-      agent/mibgroup/sctp-mib/sctpTables_solaris2.c: 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
-
-2011-04-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/kernel_sunos5.c, agent/mibgroup/kernel_sunos5.h, 
-      agent/mibgroup/sctp-mib/sctpScalars.h, 
-      agent/mibgroup/sctp-mib/sctpScalars_solaris2.c, 
-      agent/mibgroup/sctp-mib/sctpTables.h, 
-      agent/mibgroup/sctp-mib/sctpTables_solaris2.c: Solaris support for
-
- SCTP-MIB git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20170 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   * snmplib/snmp-tc.c: 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-5-patches@20169 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   * snmplib/snmp-tc.c: 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
-
-2011-04-09  Niels Baggesen <nba at users.sourceforge.net>
-
-   * snmplib/snmp-tc.c: 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/trunk@20169 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-01  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/transports/snmpDTLSUDPDomain.c: 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
-
-2011-04-01  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/transports/snmpDTLSUDPDomain.c: 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/trunk@20168 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-01  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/transports/snmpDTLSUDPDomain.c: 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 cor [...]
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20167 06827809-a52a-0410-b366-d66718629ded
-
-2011-04-01  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/transports/snmpDTLSUDPDomain.c: 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 cor [...]
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20167 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-31  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/transports/snmpDTLSUDPDomain.c: 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
-
-2011-03-31  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/transports/snmpDTLSUDPDomain.c: 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/trunk@20166 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-31  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/transports/snmpDTLSUDPDomain.c: 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
-
-2011-03-27  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * snmplib/container_binary_array.c: Simplify array resizing somewhat
-
- further git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20164 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-27  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * snmplib/container_binary_array.c: Do not assign new_data if the
-
- value won't be used.  Reduce variable scopes.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20163 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-27  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * snmplib/container_binary_array.c: It is not necessary to clear a
-
- chunk of memory if the next action on it is to fill it so use malloc
- instead of calloc.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20162 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-27  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * snmplib/container_binary_array.c: ContainerBinaryArray really
-
- can't hold anythng but pointers and that means the data_size field
- is unnecessary so I removed it.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20161 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-26  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   *  agent/mibgroup/hardware/memory/hw_mem.c, 
-      agent/mibgroup/header_complex.c, 
-      agent/mibgroup/ip-mib/data_access/ipaddress_common.c, 
-      agent/mibgroup/mibII/interfaces.c, 
-      agent/mibgroup/mibII/sysORTable.c, apps/snmptrapd.c, 
-      snmplib/int64.c, snmplib/snmp_openssl.c, snmplib/snmp_secmod.c, 
-      snmplib/snmpv3.c: Add missing include git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20160 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-26  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * snmplib/transports/snmpDTLSUDPDomain.c: Use the right feature
-
- macro in order to make builds with --enable-ipv6
- --with-out-transports=UDPIPv6 succeed.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20159 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-26  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * snmplib/transports/snmpDTLSUDPDomain.c: Remove duplicate copies of
-
- functions git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20158 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-25  Robert Story <rstory at users.sourceforge.net>
-
-   * local/net-snmp-cert: tweak debug message git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20157 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-25  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/transports/snmpTLSBaseDomain.c: CHANGES: snmplib: update
-
- cert token handling  - remove defX509 cert tokens (should have been removed before 5.6)  - warnings for our/their tokens, recommend using local/peer git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20156 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-25  Robert Story <rstory at users.sourceforge.net>
-
-   *  snmplib/transports/snmpDTLSUDPDomain.c, 
-      snmplib/transports/snmpUDPBaseDomain.c: merge netsnmp_dtlsudp6
-      into
-
- netsnmp_dtlsudp    use addr size to tell them apart git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20155 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-25  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/snmp_transport.c: log (once) warning when deprecated
-
- f_create_from_tstring transport function used git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20154 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-25  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/transports/snmpTCPDomain.c: reduce casting; make sure to
-
- free the right pointer git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20153 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-25  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/transports/snmpUDPBaseDomain.c: reduce casting git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20152 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-24  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/dlmod.c: Replace a variable with a
-
- constant. Make one more oid const.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20151 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-18  Dave Shield <dts12 at users.sourceforge.net>
-
-   * CHANGES: 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
-
-2011-03-18  Dave Shield <dts12 at users.sourceforge.net>
-
-   * ChangeLog: 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
-
-2011-03-18  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  agent/Makefile.depend, agent/helpers/Makefile.depend, 
-      agent/mibgroup/Makefile.depend, apps/snmpnetstat/Makefile.depend, 
-      snmplib/Makefile.depend: 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
-
-2011-03-18  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  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 git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20144 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-18  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile, 
-      dist/net-snmp.spec: 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
-
-2011-03-17  Niels Baggesen <nba at users.sourceforge.net>
-
-   * man/snmpdelta.1.def: 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
-
-2011-03-17  Niels Baggesen <nba at users.sourceforge.net>
-
-   * man/snmpdelta.1.def: Formatting botch git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20142 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-17  Niels Baggesen <nba at users.sourceforge.net>
-
-   * mibs/Makefile.in: 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
-
-2011-03-17  Niels Baggesen <nba at users.sourceforge.net>
-
-   * mibs/Makefile.in: Install required mibs git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20141 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-17  Niels Baggesen <nba at users.sourceforge.net>
-
-   * mibs/rfclist: 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
-
-2011-03-17  Niels Baggesen <nba at users.sourceforge.net>
-
-   * mibs/rfclist: New RFC mibs git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20140 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-15  Dave Shield <dts12 at users.sourceforge.net>
-
-   * CHANGES, NEWS: 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
-
-2011-03-15  Dave Shield <dts12 at users.sourceforge.net>
-
-   * ChangeLog: 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
-
-2011-03-15  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  agent/Makefile.depend, agent/helpers/Makefile.depend, 
-      agent/mibgroup/Makefile.depend, apps/Makefile.depend, 
-      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend: 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
-
-2011-03-15  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.in, 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, snmplib/snmp_version.c:
-      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
-
-2011-03-15  Dave Shield <dts12 at users.sourceforge.net>
-
-   * Makefile.top: 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
-
-2011-03-15  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  snmplib/cert_util.c: 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
-
-2011-03-15  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  snmplib/cert_util.c: Spelling fix: reginerated -> regenerated. 
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20133 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-15  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  snmplib/cert_util.c: Simplified r19594 (leak-at-exit fix). 
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20132 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-15  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/snmp_openssl.c: 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
-
-2011-03-15  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/snmp_openssl.c: Fixed a compiler warning that was
-
- introduced in r20113.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20130 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * CHANGES, NEWS: 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
-
-2011-03-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * ChangeLog: 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
-
-2011-03-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  agent/Makefile.depend, agent/helpers/Makefile.depend, 
-      agent/mibgroup/Makefile.depend, apps/Makefile.depend, 
-      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend: 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
-
-2011-03-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  man/netsnmp_agent.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_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_request_info_s.3, 
-      man/netsnmp_netsnmp_table_registration_info_s.3, 
-      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3, man/netsnmp_util.3,
-       man/netsnmp_utilities.3, man/netsnmp_variable_list.3, 
-      man/netsnmp_watcher.3: 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
-
-2011-03-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.in, 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/agent.pm, perl/agent/default_store/default_store.pm, 
-      perl/default_store/default_store.pm, snmplib/snmp_version.c:
-      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
-
-2011-03-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * Makefile.top: 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
-
-2011-03-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * agent/snmpd.c: 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
-
-2011-03-14  Dave Shield <dts12 at users.sourceforge.net>
-
-   * agent/snmpd.c: Fix main agent select call to use the renamed API
-
- routine.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20122 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-13  Dave Shield <dts12 at users.sourceforge.net>
-
-   * 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.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20121 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-13  Dave Shield <dts12 at users.sourceforge.net>
-
-   * 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.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20121 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-13  Dave Shield <dts12 at users.sourceforge.net>
-
-   * 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.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20121 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-13  Dave Shield <dts12 at users.sourceforge.net>
-
-   * 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) git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20120 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-12  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/container_binary_array.c: 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
-
-2011-03-12  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/container_binary_array.c: 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
-
-2011-03-12  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/container_binary_array.c: 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/trunk@20119 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-12  Robert Story <rstory at users.sourceforge.net>
-
-   *  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_int
-       erface.c, include/net-snmp/library/container_binary_array.h:
-
- 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
-
-2011-03-12  Robert Story <rstory at users.sourceforge.net>
-
-   *  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_int
-       erface.c: 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
-
-2011-03-12  Robert Story <rstory at users.sourceforge.net>
-
-   *  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_int
-       erface.c: 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/trunk@20118 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-11  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/transports/snmpTLSBaseDomain.c: 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
-
-2011-03-11  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/transports/snmpTLSBaseDomain.c: 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/trunk@20117 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-11  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/disk.c: 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
-
-2011-03-11  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/disk.c: MinGW: dskTable: Report zero for
-
- unimplemented fields instead of random data.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20116 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-11  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * 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.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20115 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-11  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * 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.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20115 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-11  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/disman/schedule/schedCore.c: 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
-
-2011-03-11  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/disman/schedule/schedCore.c: CHANGES: snmpd: Builds
-
- with most recent MinGW (having #define localtime_r).  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20114 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-11  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/cert_util.c, snmplib/snmp_openssl.c: 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
-
-2011-03-11  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/cert_util.c, snmplib/snmp_openssl.c: CHANGES: snmplib:
-
- refine cert debugging; remove unused function git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20113 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-10  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/cert_util.c: 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
-
-2011-03-10  Robert Story <rstory at users.sourceforge.net>
-
-   * snmplib/cert_util.c: CHANGES: snmpd: BUG: 3205765: handle reconfig
-
- for certSecName token git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20112 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/snmpd.c: 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
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/snmpd.c: Spelling fix in a source code comment: messges ->
-
- messages.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20111 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/large_fd_set.c: 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
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/large_fd_set.c: 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/trunk@20110 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/snmpd.c: 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
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/snmpd.c: 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/trunk@20109 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * include/net-snmp/library/large_fd_set.h, snmplib/large_fd_set.c: 
-
- 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
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * include/net-snmp/library/large_fd_set.h, snmplib/large_fd_set.c: 
-
- CHANGES: snmplib: PATCH: 3203806: Add the function
- netsnmp_large_select().  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20108 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c: 
-
- 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
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  testing/fulltests/support/clib_build, 
-      testing/fulltests/unit-tests/T009large_fd_set_clib.c: Added a
-
- minimal unit test for netsnmp_large_fd_set.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20106 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  testing/fulltests/support/clib_build, 
-      testing/fulltests/unit-tests/T009large_fd_set_clib.c: 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
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/large_fd_set.c: 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/trunk@20105 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/large_fd_set.c: 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
-
-2011-03-10  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmp-tc.c: 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
-
-2011-03-10  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmp-tc.c: 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
-
-2011-03-10  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmp-tc.c: 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
-
-2011-03-10  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmp-tc.c: CHANGES: snmpd: BUG: 3178389: Fix inconsistent
-
- handling of TZ offsets git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20104 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-10  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmp-tc.c: 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
-
-2011-03-10  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * apps/Makefile.in, configure, configure.d/config_os_libs2: make
-
- variable names match git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20099 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-10  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c: 
-
- Fixed two compiler warnings.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20098 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-10  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * configure, configure.d/config_os_libs2: fixed installation
-
- variables for the optional SET programs git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20097 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/remove-unneeded-modules: chmod a+x git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20096 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/removeifdefcode.pl: print an error if the end of
-
- a file was reached and we're not back into the state we can write;
- otherwise a closing #ifdef is missing.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20095 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/transports/snmpUnixDomain.c: fix endif comment to match
-
- the opening ifdef git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20094 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/removeifdefcode.pl: reset the canwrite flag for
-
- every file git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20093 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/remove-unneeded-modules: temporarily leave in
-
- header files git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20092 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * configure, configure.ac: change the unique file check to one that
-
- is not in the mibgroup directory git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20091 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * testing/fulltests/read-only/T0141snmpv2csetfail_simple: a test for
-
- ensuring the agent rejects SET requests with --enable-read-only git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20090 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * testing/fulltests/default/T0141snmpv2cset_simple: add back in the
-
- stopagent command git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20089 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  testing/fulltests/unit-tests/T101pdu_type_clib.c, 
-      testing/fulltests/unit-tests/T102pdu_build_clib.c, 
-      testing/fulltests/unit-tests/T103pdu_parse_clib.c: unit tests
-      writen
-
- for the read-only support converted to work with or without
- read-only git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20088 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * testing/fulltests/default/T0141snmpv2cset_simple: don't run the
-
- set test if no_write_support is turned on git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20087 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * testing/fulltests/default/T030snmpv3usercreation_simple: skip if
-
- no_write_support git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20086 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * testing/fulltests/default/T0141snmpv2cset_simple: A new test to
-
- check whether SNMPv2c SETs to sysContact work as expected git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20085 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * testing/fulltests/default/Svanyconfig: allow for v2c SET support
-
- testing git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20084 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/vacm_conf.c: Allow for single quotes for vacm
-
- context name quoting too git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20083 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-07  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * configure: fix the configure tests to include the word test in the
-
- test git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20082 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-07  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * configure.d/config_os_libs2: fix the configure tests to include
-
- the word test in the test git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20081 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-07  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/remove-unneeded-modules: Added an annoyingly long
-
- list of exceptions that needs to be automated git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20080 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-07  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/remove-unneeded-modules: A quick perl script to
-
- remove unneeded code modules from the modules directory git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20079 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-07  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/mibgroup/target/target.c, 
-      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
-      snmplib/cert_util.c, snmplib/snmpusm.c, snmplib/vacm.c: more
-
- improvements (removements) for featurization and read-only support git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20078 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/container_binary_array.c: 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
-
-2011-03-07  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/container_binary_array.c: CHANGES: snmplib: PATCH:
-
- 3195537: Minor binary_array container sort optimization git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20077 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-06  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/nslookup/lookupCtlTable.c: 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
-
-2011-03-06  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/nslookup/lookupCtlTable.c: Tabs to spaces
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20076 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-06  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/nslookup/lookupCtlTable.c, 
-      configure.d/config_os_functions: 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
-
-2011-03-06  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/nslookup/lookupCtlTable.c, 
-      configure.d/config_os_functions: 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/trunk@20075 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-05  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * apps/snmptest.c: Add dropped ||'s from r20072 git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20074 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-05  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/nslookup/lookupCtlTable.c, 
-      agent/mibgroup/disman/nslookup/lookupCtlTable.h, 
-      agent/mibgroup/disman/nslookup/lookupResultsTable.c: 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
-
-2011-03-05  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/disman/nslookup/lookupCtlTable.c, 
-      agent/mibgroup/disman/nslookup/lookupCtlTable.h, 
-      agent/mibgroup/disman/nslookup/lookupResultsTable.c: 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/trunk@20073 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-05  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  apps/Makefile.in, apps/snmptest.c, configure, 
-      configure.d/config_os_libs2: don't build SET related apps with
-
- --enable-read-only git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20072 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-05  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/helpers/baby_steps.c, 
-      agent/mibgroup/disman/event/mteEvent.c, 
-      agent/mibgroup/if-mib/ifTable/ifTable.c, 
-      agent/mibgroup/if-mib/ifTable/ifTable_interface.c, 
-      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c, 
-      agent/mibgroup/mibII/snmp_mib.c, agent/mibgroup/mibII/updates.c, 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNoti
-       fyFilterTable_interface.c, agent/mibgroup/target/target.c, 
-      include/net-snmp/agent/baby_steps.h, 
-      include/net-snmp/agent/snmp_agent.h, snmplib/snmp_client.c: fix
-
- issues with combining --enable-minimalist and --enable-read-only git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20071 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-05  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/find-unused-code: better output for finding
-
- object symbols.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20070 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-04  Mike Baer <baerm at susers.sourceforge.net>
-
-   * local/minimalist/removeifdefcode.pl: last commit: changes to allow
-
- parsing of featuers files to get all minimalist tags which are then
- processed for removal this commit: changed comments/white space git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20069 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-04  Mike Baer <baerm at susers.sourceforge.net>
-
-   *  agent/mibgroup/agent/extend.c: added no_write support to extend.c
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20068 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-04  Mike Baer <baerm at susers.sourceforge.net>
-
-   * agent/helpers/instance.c: Added missing #endif comment for remove
-
- ifdef code support git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20067 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-04  Mike Baer <baerm at susers.sourceforge.net>
-
-   * local/minimalist/removeifdefcode.pl: added changes to allow code
-
- removal in-place (i.e. does not require creating a new file) git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20066 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-04  Mike Baer <baerm at susers.sourceforge.net>
-
-   * local/minimalist/ignore.regexp: adding a ignore.regexp file that
-
- can be used with removeifdefcode.pl git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20065 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/feature-makedocs: add a outgoing link to the
-
- parent marking page git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20064 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  local/minimalist/feature-makedocs: Added a wiki output mode
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20063 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/feature-makedocs: Note that the org output is the
-
- default in the help output git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20062 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-04  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/vmstat_linux.c: 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
-
-2011-03-04  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/vmstat_linux.c: 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
-
-2011-03-04  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/vmstat_linux.c: 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
-
-2011-03-04  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/vmstat_linux.c: 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/trunk@20061 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/agent_read_config.c, agent/helpers/watcher.c, 
-      agent/mibgroup/agentx/master.c, agent/mibgroup/agentx/subagent.c, 
-      agent/mibgroup/header_complex.c, 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_dat
-       a_access.c, agent/mibgroup/mibII/kernel_linux.c, 
-      agent/mibgroup/mibII/tcpTable.c, agent/mibgroup/mibII/var_route.c,
-       agent/mibgroup/notification-log-mib/notification_log.c, 
-      agent/mibgroup/snmpv3/snmpEngine.c, 
-      agent/mibgroup/snmpv3/usmUser.c, agent/mibgroup/util_funcs.c, 
-      agent/mibgroup/utilities/iquery.c, snmplib/snmp_api.c:
-
- reclassification of the remaining features into a hierarchy git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20060 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_openssl.c: don't double-declare cert_utils git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20059 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib/data_access/ipaddress_linux.c: the
-
- ipaddress_linux was incorrectly marked as needing cert_fingerprints git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20058 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/agent_registry.c: put the agent_registry feature in
-
- libnetsnmpagent.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20057 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * win32/libsnmp_dll/libsnmp.def: 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
-
-2011-03-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * win32/libsnmp_dll/libsnmp.def: 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/trunk@20056 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * include/net-snmp/library/snmp_debug.h: 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
-
-2011-03-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpIPv6BaseDomain.h, 
-      include/net-snmp/library/snmp_debug.h: Added missing
-      NETSNMP_IMPORT
-
- declarations.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20054 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpIPv6BaseDomain.h, 
-      include/net-snmp/library/snmp_debug.h: 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
-
-2011-03-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * win32/libagent/libagent.def, win32/libucdmibs/libucdmibs.def: 
-
- Removed two obsolete Win32 files.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20053 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * win32/libagent/libagent.def, win32/libucdmibs/libucdmibs.def: 
-
- 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
-
-2011-03-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/transports/snmpIPv6BaseDomain.c: 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/trunk@20052 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-03  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * snmplib/transports/snmpIPv6BaseDomain.c: 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
-
-2011-03-02  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * win32/config.h: Removed an obsolete file.  git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20050 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-02  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmp_secmod.h, win32/snmpsm_shutdown.h, 
-      win32/snmpv3-security-includes.h: Builds again with Visual Studio
-
- after the introduction of the "feature" feature.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20049 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-02  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * win32/snmpsm_init.h: Removed a misleading comment.  git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20048 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-02  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * configure, configure.d/config_os_libs2: Correct the check of
-
- wether usm security is enabled.  Regenerate configure.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20047 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-02  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * include/net-snmp/net-snmp-config.h.in: Regenerate git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20046 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-02  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   *   * 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_dat
-       a_access.c: Add missing dependencies git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20045 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-02  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * snmplib/snmpusm.c: Ignore the return value from
-
- snmp_increment_statistic git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20044 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-02  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * snmplib/container.c: Split the container_compare_functions feature
-
- into container_compare_mem, container_compare_long,
- container_compare_ulong, container_compare_int32 and
- container_compare_uint32 Unify the structure of the compare
- functions further.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20043 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-02  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * snmplib/container.c: Change the spelling of the
-
- container_compare_cstring feature to container_ncompare_cstring as
- that is the function that is guarded by that attribute.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20042 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-02  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * include/net-snmp/library/snmp_api.h: Add the missing replacement
-
- macro for snmp_init_statistics git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20041 06827809-a52a-0410-b366-d66718629ded
-
-2011-03-02  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * include/net-snmp/library/snmp_api.h: snmp_increment_statistic_by
-
- takes two arguments so let the replacement macro take two arguments
- as well.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20040 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-27  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/disman/nslookup/lookupCtlTable.c: Fix typo in
-
- r19990 git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20039 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * local/minimalist/feature-check: Remove lines starting with #define
-
- in the output of the preprocessor When gcc -E is called with -ggdb3
- (or -dD) then all the macro definitions are passed through the
- preprocessor and that messes up our processing.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20038 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * Makefile.rules: Put the generated file in the build tree, not the
-
- source tree.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20037 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/agent_trap.c, agent/helpers/table_dataset.c, 
-      agent/mibgroup/disman/event/mteEvent.c, 
-      agent/mibgroup/disman/event/mteTrigger.c, 
-      agent/mibgroup/disman/schedule/schedCore.c, 
-      agent/mibgroup/hardware/cpu/cpu.c, 
-      agent/mibgroup/hardware/memory/hw_mem.c, 
-      agent/mibgroup/host/data_access/swinst.c, 
-      agent/mibgroup/host/data_access/swrun.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_int
-       erface.c, agent/mibgroup/ip-mib/data_access/ipaddress_common.c, 
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_inter
-       face.c, 
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c, 
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c, 
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interfa
-       ce.c, 
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTab
-       le_interface.c, 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNoti
-       fyFilterTable_interface.c, 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interf
-       ace.c, 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.
-       c, agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_solaris2.c, 
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.
-       c: moved a bunch of features into the libnetsnmpmibs feature set.
-       git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20036 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/agent_handler.c, agent/agent_index.c, 
-      agent/agent_registry.c, agent/agent_trap.c, 
-      agent/helpers/all_helpers.c, agent/helpers/cache_handler.c, 
-      agent/helpers/table.c, agent/helpers/table_array.c, 
-      agent/helpers/table_data.c, agent/helpers/table_dataset.c, 
-      agent/helpers/table_iterator.c, agent/helpers/table_row.c, 
-      agent/snmp_agent.c, local/minimalist/sizetests, snmplib/mib.c:
-
- classified libnetsnmpagent features git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20035 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: reverse the order of the libraries
-
- (snmplib first) git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20034 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: output cleanup and added agent-mibs
-
- and logging options git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20033 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: add a default set of arguments
-
- calculate resulting sizes git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20032 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/dir_utils.c: Added a missing ; git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20031 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: prefix the output files with a number
-
- to indicate order git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20030 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: save the results of the system
-
- executions git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20029 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: enable building of the resulting
-
- combinations Add a -n flag for dry-runs git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20028 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  local/minimalist/sizetests: enable the -t tag for limiting types
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20027 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: Added argument parsing and arguments
-
- for selecting and listing types git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20026 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: generate configure script arguments
-
- from specs git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20025 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: added a bunch of new feature options
-
- and cleaned up a bit git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20024 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/sizetests: added a new (not yet working) script
-
- to test sizing of various argument sets git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20023 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/dlmod.c: Simplify the code. Unify some
-
- debug logs.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20022 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/dlmod.c: Reduce the scope of a few
-
- variables git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20021 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   *  agent/mibgroup/ucd-snmp/dlmod.c: Remove some unused includes. 
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20020 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/dlmod.c: Make it possible to
-
- initialize/uninitialize modules with 64 character names and not
- suffer wild writes.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20019 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/dlmod.c: Code restructuring - put the
-
- managed routines before the managment code.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20018 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/dlmod.c, agent/mibgroup/ucd-snmp/dlmod.h: 
-
- CHANGES: libnetsnmpmibs: Make all functions in the dlmod module that
- don't have to be public static git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20017 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-26  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/dlmod.c: Rename deinit_dlmod to
-
- shutdown_dlmod as that is what it really is about.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20016 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Mike Baer <baerm at susers.sourceforge.net>
-
-   * agent/mibgroup/agent/nsVacmAccessTable.c: adding minimalist ifdefs
-
- to net-snmp-vacm mib git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20015 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/feature-makedocs: properly handle twin children;
-
- also sort the child list alphabetically.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20014 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_logging.c: I suppose logging should probably default
-
- to being a wanted option :-) git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20013 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/feature-makedocs: org-link the files in the
-
- output git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20012 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  Makefile.rules, agent/Makefile.in, agent/mibgroup/Makefile.in, 
-      apps/Makefile.in, apps/snmpnetstat/Makefile.in, 
-      local/minimalist/feature-check, snmplib/Makefile.in: make the
-
- features-check script track the full source path git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20011 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/feature-makedocs: change the function names to
-
- match that it's printing to org-mode at the moment.  git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20010 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  snmplib/file_utils.c, snmplib/mib.c, snmplib/oid_stash.c, 
-      snmplib/snmp_api.c, snmplib/snmp_logging.c, snmplib/tools.c: last
-      of
-
- the feature classification in libnetsnmp git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20009 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/keytools.c, snmplib/lcd_time.c, snmplib/scapi.c: make the
-
- usm_support utilities self-declare themselves as children to make
- sure they're properly included during dependency ordering git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20008 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  snmplib/callback.c, snmplib/cert_util.c, snmplib/check_varbind.c, 
-      snmplib/container.c, snmplib/data_list.c, snmplib/default_store.c,
-       snmplib/fd_event_manager.c, snmplib/file_utils.c, 
-      snmplib/keytools.c, snmplib/snmpusm.c: superstructuralizationizing
-
- the features git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20007 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  snmplib/read_config.c, snmplib/snmp-tc.c, snmplib/snmp_client.c, 
-      snmplib/snmp_enum.c, snmplib/snmp_transport.c, snmplib/system.c, 
-      snmplib/text_utils.c, snmplib/tools.c, 
-      snmplib/transports/snmpUnixDomain.c, snmplib/ucd_compat.c:
-
- significant parent/child feature classification git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20006 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_api.c, snmplib/snmpusm.c: classify a few components
-
- into a top-level libnetsnmp component git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20005 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  snmplib/keytools.c, snmplib/lcd_time.c, snmplib/scapi.c, 
-      snmplib/snmpusm.c: structurize the usm features git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20004 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  snmplib/container.c, snmplib/container_iterator.c, 
-      snmplib/container_list_ssll.c, snmplib/container_null.c, 
-      snmplib/dir_utils.c: structure the container features into a
-
- hierarchy git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20003 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_logging.c: group the logging handlers under a parent
-
- feature git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20002 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  local/minimalist/feature-makedocs: fix the expect argument count
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20001 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/feature-makedocs: fix the name of the expected
-
- input file git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20000 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/feature-makedocs: argument parsing and usage()
-
- output git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19999 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/helpers/stash_cache.c, agent/helpers/stash_to_next.c, 
-      agent/helpers/table_dataset.c, agent/helpers/table_iterator.c, 
-      agent/mibgroup/examples/netSnmpHostsTable.c, 
-      agent/mibgroup/mibII/ipCidrRouteTable.c, snmplib/oid_stash.c: -
-      added two oid_stash functions as individual features - cleaned up
-      some warnings in the table_iterator code git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19998 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  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!) git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19997 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  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!) git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19997 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  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!) git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19997 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  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!) git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19997 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  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 git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19995 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  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
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19994 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Dave Shield <dts12 at users.sourceforge.net>
-
-   * ChangeLog: 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
-
-2011-02-25  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  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
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19992 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmpv3.c: 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
-
-2011-02-25  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmpv3.c: 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
-
-2011-02-25  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmpv3.c: 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
-
-2011-02-25  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmpv3.c: 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/trunk@19991 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-25  Dave Shield <dts12 at users.sourceforge.net>
-
-   * snmplib/snmpv3.c: 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
-
-2011-02-25  Mike Baer <baerm at susers.sourceforge.net>
-
-   *  agent/mibgroup/disman/event/mteEventNotificationTable.c, 
-      agent/mibgroup/disman/event/mteEventSetTable.c, 
-      agent/mibgroup/disman/event/mteEventTable.c, 
-      agent/mibgroup/disman/event/mteObjectsTable.c, 
-      agent/mibgroup/disman/event/mteTriggerBooleanTable.c, 
-      agent/mibgroup/disman/event/mteTriggerDeltaTable.c, 
-      agent/mibgroup/disman/event/mteTriggerExistenceTable.c, 
-      agent/mibgroup/disman/event/mteTriggerTable.c, 
-      agent/mibgroup/disman/event/mteTriggerThresholdTable.c, 
-      agent/mibgroup/disman/mteEventNotificationTable.c, 
-      agent/mibgroup/disman/mteObjectsTable.c, 
-      agent/mibgroup/disman/mteObjectsTable.h, 
-      agent/mibgroup/disman/mteTriggerBooleanTable.c, 
-      agent/mibgroup/disman/mteTriggerBooleanTable.h, 
-      agent/mibgroup/disman/mteTriggerDeltaTable.c, 
-      agent/mibgroup/disman/mteTriggerDeltaTable.h, 
-      agent/mibgroup/disman/mteTriggerExistenceTable.c, 
-      agent/mibgroup/disman/mteTriggerExistenceTable.h, 
-      agent/mibgroup/disman/mteTriggerTable.c, 
-      agent/mibgroup/disman/mteTriggerTable.h, 
-      agent/mibgroup/disman/mteTriggerThresholdTable.c, 
-      agent/mibgroup/disman/mteTriggerThresholdTable.h, 
-      agent/mibgroup/disman/nslookup/lookupCtlTable.c, 
-      agent/mibgroup/disman/nslookup/lookupCtlTable.h: adding ifdef code
-
- for minimalist support of diffman mib git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19990 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-24  Mike Baer <baerm at susers.sourceforge.net>
-
-   *  agent/mibgroup/host/hrSWRunTable.c, 
-      agent/mibgroup/host/hr_system.c, agent/mibgroup/host/hr_system.h:
-
- Adding minimalist ifdefs to host resource mib git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19989 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-24  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/helpers/table_iterator.c, snmplib/data_list.c: mark the
-
- data_list function that's only used in stach_caching as a feature git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19988 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-24  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/helpers/table_iterator.c: whoops.  git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19987 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-24  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  agent/helpers/table_iterator.c: more missing stash references
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19986 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-24  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/helpers/table_iterator.c: ifdefed/featured out a missing
-
- stash_cache section git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19985 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-24  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/util_funcs.c: make the prefix_info more
-
- hierarchical and sub-feature the unused one git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19984 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-24  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/minimalist/find-unused-code: do include the perl/python code
-
- when searching for files git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19983 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-24  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/helpers/table_tdata.c: make the semi-used table_tdata
-
- functions children of table_tdata_all instead of just table_tdata git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19982 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-23  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * agent/helpers/table_tdata.c: Correct typo git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19981 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-23  Magnus Fromreide <magfr at users.sourceforge.net>
-
-   * snmplib/parse.c: Correct typo git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19980 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/snmp_vars.c: proper include of prototype git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19979 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-23  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  configure, configure.d/config_modules_agent, 
-      configure.d/config_modules_transports, 
-      configure.d/config_project_with_enable: compat some feature header
-
- chicken and egg problems git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19978 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/snmp_vars.c: 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
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * snmplib/snmpusm.c: unsigned juggling to remove warnings git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19976 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   *   * 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c,
-      
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h,
-      
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_dat
-       a_access.c,
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c, 
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h, 
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c:
-
- 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
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   *   * 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c,
-      
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h,
-      
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_dat
-       a_access.c,
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c, 
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h, 
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c:
-
- unsigned juggling to remove warnings git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19975 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib.h: 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
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/ip-mib.h: Enable (probably forgotten)
-
- ipAddressPrefixTable git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19974 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-23  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  local/minimalist/feature-check, 
-      local/minimalist/feature-makedocs,
-      local/minimalist/feature-remove, 
-      local/minimalist/find-unused-code, 
-      local/minimalist/removeifdefcode.pl: added other missing 'new'
-      files
-
- not included in the minimalist patch file git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19973 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/tcp-mib/data_access/tcpConn_freebsd4.c, 
-      agent/mibgroup/tcp-mib/data_access/tcpConn_netbsd.c, 
-      agent/mibgroup/tcp-mib/data_access/tcpConn_openbsd.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_freebsd4.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_netbsd.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_openbsd.c: 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
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/tcp-mib/data_access/tcpConn_freebsd4.c, 
-      agent/mibgroup/tcp-mib/data_access/tcpConn_netbsd.c, 
-      agent/mibgroup/tcp-mib/data_access/tcpConn_openbsd.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_freebsd4.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_netbsd.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_openbsd.c: Loading
-
- IPv6 data is a no-no when IPv6 not enabled git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19972 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * apps/snmptable.c: 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
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * apps/snmptable.c: 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
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * apps/snmptable.c: 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
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * apps/snmptable.c: 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
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * apps/snmptable.c: Fix bug 3118631: snmptable segfaults if index
-
- contains : character git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19971 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * include/net-snmp/system/freebsd8.h: 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
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * include/net-snmp/system/freebsd8.h: 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
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * include/net-snmp/system/freebsd8.h: 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
-
-2011-02-23  Niels Baggesen <nba at users.sourceforge.net>
-
-   * include/net-snmp/system/freebsd8.h: FreeBSD 8 support git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19970 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-23  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * include/net-snmp/net-snmp-features.h: added missing
-
- net-snmp-features.h git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19969 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-23  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  Makefile.in, Makefile.rules, Makefile.top, agent/Makefile.in, 
-      agent/agent_handler.c, agent/agent_index.c, 
-      agent/agent_read_config.c, agent/agent_registry.c, 
-      agent/agent_trap.c, agent/helpers/all_helpers.c, 
-      agent/helpers/baby_steps.c, agent/helpers/cache_handler.c, 
-      agent/helpers/instance.c, agent/helpers/mode_end_call.c, 
-      agent/helpers/multiplexer.c, agent/helpers/old_api.c, 
-      agent/helpers/read_only.c, agent/helpers/row_merge.c, 
-      agent/helpers/scalar.c, agent/helpers/scalar_group.c, 
-      agent/helpers/snmp_get_statistic.c, agent/helpers/stash_cache.c, 
-      agent/helpers/stash_to_next.c, agent/helpers/table.c, 
-      agent/helpers/table_array.c, agent/helpers/table_container.c, 
-      agent/helpers/table_data.c, agent/helpers/table_dataset.c, 
-      agent/helpers/table_iterator.c, agent/helpers/table_row.c, 
-      agent/helpers/table_tdata.c, agent/helpers/watcher.c, 
-      agent/mibgroup/Makefile.in, agent/mibgroup/Rmon/alarmTable.c, 
-      agent/mibgroup/agent/extend.c, agent/mibgroup/agent/nsCache.c, 
-      agent/mibgroup/agent/nsLogging.c, 
-      agent/mibgroup/agent/nsModuleTable.c, 
-      agent/mibgroup/agent/nsTransactionTable.c, 
-      agent/mibgroup/agent/nsVacmAccessTable.c, 
-      agent/mibgroup/agentx/agentx_config.c, 
-      agent/mibgroup/agentx/client.c, agent/mibgroup/agentx/master.c, 
-      agent/mibgroup/agentx/master_admin.c, 
-      agent/mibgroup/agentx/subagent.c, 
-      agent/mibgroup/disman/event/mteEvent.c, 
-      agent/mibgroup/disman/event/mteEventConf.c, 
-      agent/mibgroup/disman/event/mteEventNotificationTable.c, 
-      agent/mibgroup/disman/event/mteEventSetTable.c, 
-      agent/mibgroup/disman/event/mteEventTable.c, 
-      agent/mibgroup/disman/event/mteObjectsTable.c, 
-      agent/mibgroup/disman/event/mteTrigger.c, 
-      agent/mibgroup/disman/event/mteTriggerBooleanTable.c, 
-      agent/mibgroup/disman/event/mteTriggerConf.c, 
-      agent/mibgroup/disman/event/mteTriggerDeltaTable.c, 
-      agent/mibgroup/disman/event/mteTriggerExistenceTable.c, 
-      agent/mibgroup/disman/event/mteTriggerTable.c, 
-      agent/mibgroup/disman/event/mteTriggerThresholdTable.c, 
-      agent/mibgroup/disman/expr/expErrorTable.c, 
-      agent/mibgroup/disman/expr/expExpressionConf.c, 
-      agent/mibgroup/disman/expr/expExpressionTable.c, 
-      agent/mibgroup/disman/expr/expObjectConf.c, 
-      agent/mibgroup/disman/expr/expObjectTable.c, 
-      agent/mibgroup/disman/expression/expExpressionTable.c, 
-      agent/mibgroup/disman/mteEventNotificationTable.c, 
-      agent/mibgroup/disman/mteEventTable.c, 
-      agent/mibgroup/disman/mteTriggerTable.c, 
-      agent/mibgroup/disman/schedule/schedConf.c, 
-      agent/mibgroup/disman/schedule/schedCore.c, 
-      agent/mibgroup/disman/schedule/schedTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteResultsTable.c, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interfac
-       e.c, agent/mibgroup/examples/data_set.c, 
-      agent/mibgroup/examples/delayed_instance.c, 
-      agent/mibgroup/examples/netSnmpHostsTable.c, 
-      agent/mibgroup/examples/netSnmpHostsTable_checkfns.c, 
-      agent/mibgroup/examples/scalar_int.c, 
-      agent/mibgroup/hardware/cpu/cpu.c, 
-      agent/mibgroup/hardware/cpu/cpu_kinfo.c, 
-      agent/mibgroup/hardware/cpu/cpu_nlist.c, 
-      agent/mibgroup/hardware/cpu/cpu_perfstat.c, 
-      agent/mibgroup/hardware/cpu/cpu_sysctl.c, 
-      agent/mibgroup/hardware/memory/hw_mem.c, 
-      agent/mibgroup/header_complex.c, 
-      agent/mibgroup/host/data_access/swinst.c, 
-      agent/mibgroup/host/data_access/swinst_darwin.c, 
-      agent/mibgroup/host/data_access/swinst_pkginfo.c, 
-      agent/mibgroup/host/data_access/swinst_rpm.c, 
-      agent/mibgroup/host/data_access/swrun.c, 
-      agent/mibgroup/host/hr_filesys.c, agent/mibgroup/host/hr_swinst.c,
-       agent/mibgroup/host/hr_system.c,
-      agent/mibgroup/host/hrh_filesys.c, 
-      agent/mibgroup/if-mib/data_access/interface_linux.c, 
-      agent/mibgroup/if-mib/ifTable/ifTable.c, 
-      agent/mibgroup/if-mib/ifTable/ifTable.h, 
-      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.h, 
-      agent/mibgroup/if-mib/ifXTable/ifXTable_constants.h, 
-      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c, 
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable
-       .c, 
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable
-       _interface.c, 
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_int
-       erface.c, agent/mibgroup/ip-mib/data_access/arp_common.c, 
-      agent/mibgroup/ip-mib/data_access/ipaddress_common.c, 
-      agent/mibgroup/ip-mib/data_access/ipaddress_linux.c, 
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_
-       access.c, 
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_inter
-       face.c, 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_dat
-       a_access.c, 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_int
-       erface.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/ipDefaultRouterTable/ipDefaultRouterTable_dat
-       a_access.c, 
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_int
-       erface.c, 
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c, 
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interfa
-       ce.c, agent/mibgroup/ip-mib/ip_scalars.c, 
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interfa
-       ce.c, 
-      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interfa
-       ce.c, 
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTab
-       le_interface.c, agent/mibgroup/mibII/icmp.c, 
-      agent/mibgroup/mibII/interfaces.c, agent/mibgroup/mibII/ip.c, 
-      agent/mibgroup/mibII/ipCidrRouteTable.c, 
-      agent/mibgroup/mibII/ipv6.c, agent/mibgroup/mibII/kernel_linux.c, 
-      agent/mibgroup/mibII/setSerialNo.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/tcpTable.c, agent/mibgroup/mibII/udp.c, 
-      agent/mibgroup/mibII/vacm_conf.c, 
-      agent/mibgroup/mibII/vacm_context.c, 
-      agent/mibgroup/mibII/vacm_vars.c,
-      agent/mibgroup/mibII/vacm_vars.h, 
-      agent/mibgroup/mibII/var_route.c, 
-      agent/mibgroup/notification-log-mib/notification_log.c, 
-      agent/mibgroup/notification/snmpNotifyFilterProfileTable.c, 
-      agent/mibgroup/notification/snmpNotifyFilterProfileTable.h, 
-      agent/mibgroup/notification/snmpNotifyTable.c, 
-      agent/mibgroup/notification/snmpNotifyTable.h, 
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c
-       , agent/mibgroup/sctp-mib/sctpTables_common.c, 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNoti
-       fyFilterTable.c, 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNoti
-       fyFilterTable_data_access.c, 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNoti
-       fyFilterTable_interface.c, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable_interface.c, agent/mibgroup/snmpv3/snmpEngine.c, 
-      agent/mibgroup/snmpv3/snmpMPDStats_5_5.c, 
-      agent/mibgroup/snmpv3/usmStats.c, 
-      agent/mibgroup/snmpv3/usmStats_5_5.c, 
-      agent/mibgroup/snmpv3/usmUser.c, agent/mibgroup/snmpv3/usmUser.h, 
-      agent/mibgroup/snmpv3mibs.h, 
-      agent/mibgroup/target/snmpTargetAddrEntry.c, 
-      agent/mibgroup/target/snmpTargetAddrEntry.h, 
-      agent/mibgroup/target/snmpTargetParamsEntry.c, 
-      agent/mibgroup/target/snmpTargetParamsEntry.h, 
-      agent/mibgroup/target/target.c, 
-      agent/mibgroup/target/target_counters.c, 
-      agent/mibgroup/target/target_counters.h, 
-      agent/mibgroup/target/target_counters_5_5.c, 
-      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, 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interf
-       ace.c, 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.
-       c, agent/mibgroup/testhandler.c, 
-      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
-      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSN
-       Table.c, 
-      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.
-       c, agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.c, 
-      agent/mibgroup/ucd-snmp/dlmod.c, 
-      agent/mibgroup/ucd-snmp/extensible.c, 
-      agent/mibgroup/ucd-snmp/lmSensors.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/ucd-snmp/vmstat_linux.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_solaris2.c, 
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.
-       c, agent/mibgroup/util_funcs.c,
-      agent/mibgroup/utilities/iquery.c,  agent/mibgroup/winExtDLL.c,
-      agent/snmp_agent.c, agent/snmp_vars.c,  agent/snmpd.c,
-      apps/Makefile.in, apps/agentxtrap.c, 
-      apps/snmpnetstat/Makefile.in, apps/snmpnetstat/main.c, 
-      apps/snmpnetstat/netstat.h, apps/snmpnetstat/route.c, 
-      apps/snmptest.c, apps/snmptranslate.c, apps/snmptrapd.c, 
-      apps/snmptrapd_handlers.c, apps/snmptrapd_sql.c, configure, 
-      configure.ac, configure.d/config_modules_agent, 
-      configure.d/config_modules_lib, 
-      configure.d/config_modules_security_modules, 
-      configure.d/config_modules_transports,
-      configure.d/config_os_libs2, 
-      configure.d/config_project_perl_python, 
-      configure.d/config_project_with_enable, 
-      include/net-snmp/agent/snmp_agent.h, 
-      include/net-snmp/library/libsnmp.h, 
-      include/net-snmp/library/snmp.h, 
-      include/net-snmp/library/snmp_api.h, 
-      include/net-snmp/library/snmp_client.h, 
-      include/net-snmp/library/snmp_secmod.h, 
-      include/net-snmp/library/snmpksm.h, 
-      include/net-snmp/library/snmptsm.h, 
-      include/net-snmp/library/snmpusm.h, 
-      include/net-snmp/library/snmpv3.h, 
-      include/net-snmp/net-snmp-config.h.in, perl/OID/OID.xs, 
-      perl/SNMP/SNMP.xs, perl/agent/agent.xs, snmplib/Makefile.in, 
-      snmplib/callback.c, snmplib/cert_util.c, snmplib/check_varbind.c, 
-      snmplib/container.c, snmplib/container_iterator.c, 
-      snmplib/container_list_ssll.c, snmplib/container_null.c, 
-      snmplib/data_list.c, snmplib/default_store.c, snmplib/dir_utils.c,
-       snmplib/fd_event_manager.c, snmplib/file_utils.c,
-      snmplib/int64.c,  snmplib/keytools.c, snmplib/lcd_time.c,
-      snmplib/mib.c,  snmplib/oid_stash.c, snmplib/parse.c,
-      snmplib/read_config.c,  snmplib/scapi.c, snmplib/snmp-tc.c,
-      snmplib/snmp_api.c,  snmplib/snmp_client.c, snmplib/snmp_enum.c,
-      snmplib/snmp_logging.c,  snmplib/snmp_openssl.c,
-      snmplib/snmp_parse_args.c,  snmplib/snmp_secmod.c,
-      snmplib/snmp_transport.c, snmplib/snmpksm.c,  snmplib/snmptsm.c,
-      snmplib/snmpusm.c, snmplib/snmpv3.c,  snmplib/system.c,
-      snmplib/text_utils.c, snmplib/tools.c, 
-      snmplib/transports/snmpDTLSUDPDomain.c, 
-      snmplib/transports/snmpSSHDomain.c, 
-      snmplib/transports/snmpTLSBaseDomain.c, 
-      snmplib/transports/snmpTLSTCPDomain.c, 
-      snmplib/transports/snmpUnixDomain.c, snmplib/ucd_compat.c, 
-      testing/fulltests/default/Sv3config, 
-      testing/fulltests/default/Sv3usmconfigbase, 
-      testing/fulltests/default/Sv3vacmconfig, 
-      testing/fulltests/default/T049snmpv3inform_simple, 
-      testing/fulltests/default/T049snmpv3informauth_simple, 
-      testing/fulltests/default/T057trapdauthtest2_simple, 
-      testing/fulltests/default/T057trapdauthtest3_simple, 
-      testing/fulltests/default/T057trapdauthtest_simple, 
-      testing/fulltests/default/T060trapdperl_simple, 
-      testing/fulltests/default/T061agentperl_simple, 
-      testing/fulltests/default/T113agentxtrap_simple, 
-      testing/fulltests/default/T114agentxagentxtrap_simple: NEWS:
-
- packaging: Enable micro-and-macro-feature management within
- Net-SNMP; this adds a number of new flags to configure
- (--enable-minimalist and --enable-read-only).  These changes are
- designed to remove much of the inline code that isn't always
- necessary or desired.  Scripts exist (and will be improved) to stip
- out unused components from the code entirely to enable a shorter
- review process for upgrading to new releases.  This work was done by
- Wes Hardaker and Michael Baer from SPARTA, Inc. but is being checked
- in as a large patch since converting the micro patches from git to
- svn turend out to be impossible git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19968 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-22  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * FAQ: use the wiki URL instead of the tutorial-5 URL for the
-
- snmptrap tutorial git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19967 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   * agent/mibgroup/host/hr_swinst.c: 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
-
-2011-02-22  Dave Shield <dts12 at users.sourceforge.net>
-
-   *  AGENT.txt, CHANGES, COPYING, ChangeLog, CodingStyle, 
-      EXAMPLE.conf.def, FAQ, INSTALL, Makefile.am, Makefile.in, 
-      Makefile.rules, Makefile.top, NEWS, PORTING, README, 
-      README.Panasonic_AM3X.txt, README.agent-mibs, README.agentx, 
-      README.aix, README.hpux11, README.irix, README.krb5, README.osX, 
-      README.snmpv3, README.solaris, README.sql, README.thread, 
-      README.tru64, README.win32, TODO, acconfig.h, aclocal.m4, 
-      agent/Makefile.depend, agent/Makefile.in, agent/agent_handler.c, 
-      agent/agent_index.c, agent/agent_read_config.c, 
-      agent/agent_registry.c, agent/agent_sysORTable.c, 
-      agent/agent_trap.c, agent/auto_nlist.c, agent/autonlist.h, 
-      agent/helpers/Makefile.depend, agent/helpers/Makefile.in, 
-      agent/helpers/all_helpers.c, agent/helpers/baby_steps.c, 
-      agent/helpers/bulk_to_next.c, agent/helpers/cache_handler.c, 
-      agent/helpers/debug_handler.c, agent/helpers/instance.c, 
-      agent/helpers/mode_end_call.c, agent/helpers/multiplexer.c, 
-      agent/helpers/null.c, agent/helpers/old_api.c, 
-      agent/helpers/read_only.c, agent/helpers/row_merge.c, 
-      agent/helpers/scalar.c, agent/helpers/scalar_group.c, 
-      agent/helpers/serialize.c, agent/helpers/stash_cache.c, 
-      agent/helpers/stash_to_next.c, agent/helpers/table.c, 
-      agent/helpers/table_array.c, agent/helpers/table_container.c, 
-      agent/helpers/table_data.c, agent/helpers/table_dataset.c, 
-      agent/helpers/table_generic.c, agent/helpers/table_iterator.c, 
-      agent/helpers/table_row.c, agent/helpers/table_tdata.c, 
-      agent/helpers/watcher.c, agent/kernel.c, agent/kernel.h, 
-      agent/m2m.h, agent/mib_modules.c, agent/mibgroup/Makefile.depend, 
-      agent/mibgroup/Makefile.in, agent/mibgroup/README, 
-      agent/mibgroup/README.smux, agent/mibgroup/Rmon.h, 
-      agent/mibgroup/Rmon/README, agent/mibgroup/Rmon/agutil.c, 
-      agent/mibgroup/Rmon/agutil.h, agent/mibgroup/Rmon/agutil_api.h, 
-      agent/mibgroup/Rmon/alarm.c, agent/mibgroup/Rmon/alarm.h, 
-      agent/mibgroup/Rmon/alarmTable.c,
-      agent/mibgroup/Rmon/alarmTable.h,  agent/mibgroup/Rmon/event.c,
-      agent/mibgroup/Rmon/event.h,  agent/mibgroup/Rmon/history.c,
-      agent/mibgroup/Rmon/history.h,  agent/mibgroup/Rmon/row_api.h,
-      agent/mibgroup/Rmon/rows.c,  agent/mibgroup/Rmon/rows.h,
-      agent/mibgroup/Rmon/statistics.c, 
-      agent/mibgroup/Rmon/statistics.h, 
-      agent/mibgroup/Rmon/test_alarm.sh, 
-      agent/mibgroup/Rmon/test_hist.sh, agent/mibgroup/agent/extend.c, 
-      agent/mibgroup/agent/extend.h, agent/mibgroup/agent/nsCache.c, 
-      agent/mibgroup/agent/nsCache.h, agent/mibgroup/agent/nsDebug.c, 
-      agent/mibgroup/agent/nsDebug.h, agent/mibgroup/agent/nsLogging.c, 
-      agent/mibgroup/agent/nsLogging.h, 
-      agent/mibgroup/agent/nsModuleTable.c, 
-      agent/mibgroup/agent/nsModuleTable.h, 
-      agent/mibgroup/agent/nsTransactionTable.c, 
-      agent/mibgroup/agent/nsTransactionTable.h, 
-      agent/mibgroup/agent/nsVacmAccessTable.c, 
-      agent/mibgroup/agent/nsVacmAccessTable.h, 
-      agent/mibgroup/agent_mibs.h, agent/mibgroup/agentx.h, 
-      agent/mibgroup/agentx/agentx_config.c, 
-      agent/mibgroup/agentx/agentx_config.h, 
-      agent/mibgroup/agentx/client.c, agent/mibgroup/agentx/client.h, 
-      agent/mibgroup/agentx/master.c, agent/mibgroup/agentx/master.h, 
-      agent/mibgroup/agentx/master_admin.c, 
-      agent/mibgroup/agentx/master_admin.h, 
-      agent/mibgroup/agentx/protocol.c,
-      agent/mibgroup/agentx/protocol.h, 
-      agent/mibgroup/agentx/subagent.c,
-      agent/mibgroup/agentx/subagent.h, 
-      agent/mibgroup/default_modules.h, agent/mibgroup/disman.h, 
-      agent/mibgroup/disman/event-mib.h, agent/mibgroup/disman/event.h, 
-      agent/mibgroup/disman/event/mteEvent.c, 
-      agent/mibgroup/disman/event/mteEvent.h, 
-      agent/mibgroup/disman/event/mteEventConf.c, 
-      agent/mibgroup/disman/event/mteEventConf.h, 
-      agent/mibgroup/disman/event/mteEventNotificationTable.c, 
-      agent/mibgroup/disman/event/mteEventNotificationTable.h, 
-      agent/mibgroup/disman/event/mteEventSetTable.c, 
-      agent/mibgroup/disman/event/mteEventSetTable.h, 
-      agent/mibgroup/disman/event/mteEventTable.c, 
-      agent/mibgroup/disman/event/mteEventTable.h, 
-      agent/mibgroup/disman/event/mteObjects.c, 
-      agent/mibgroup/disman/event/mteObjects.h, 
-      agent/mibgroup/disman/event/mteObjectsConf.c, 
-      agent/mibgroup/disman/event/mteObjectsConf.h, 
-      agent/mibgroup/disman/event/mteObjectsTable.c, 
-      agent/mibgroup/disman/event/mteObjectsTable.h, 
-      agent/mibgroup/disman/event/mteScalars.c, 
-      agent/mibgroup/disman/event/mteScalars.h, 
-      agent/mibgroup/disman/event/mteTrigger.c, 
-      agent/mibgroup/disman/event/mteTrigger.h, 
-      agent/mibgroup/disman/event/mteTriggerBooleanTable.c, 
-      agent/mibgroup/disman/event/mteTriggerBooleanTable.h, 
-      agent/mibgroup/disman/event/mteTriggerConf.c, 
-      agent/mibgroup/disman/event/mteTriggerConf.h, 
-      agent/mibgroup/disman/event/mteTriggerDeltaTable.c, 
-      agent/mibgroup/disman/event/mteTriggerDeltaTable.h, 
-      agent/mibgroup/disman/event/mteTriggerExistenceTable.c, 
-      agent/mibgroup/disman/event/mteTriggerExistenceTable.h, 
-      agent/mibgroup/disman/event/mteTriggerTable.c, 
-      agent/mibgroup/disman/event/mteTriggerTable.h, 
-      agent/mibgroup/disman/event/mteTriggerThresholdTable.c, 
-      agent/mibgroup/disman/event/mteTriggerThresholdTable.h, 
-      agent/mibgroup/disman/expr/expErrorTable.c, 
-      agent/mibgroup/disman/expr/expErrorTable.h, 
-      agent/mibgroup/disman/expr/expExpression.c, 
-      agent/mibgroup/disman/expr/expExpression.h, 
-      agent/mibgroup/disman/expr/expExpressionConf.c, 
-      agent/mibgroup/disman/expr/expExpressionConf.h, 
-      agent/mibgroup/disman/expr/expExpressionTable.c, 
-      agent/mibgroup/disman/expr/expExpressionTable.h, 
-      agent/mibgroup/disman/expr/expObject.c, 
-      agent/mibgroup/disman/expr/expObject.h, 
-      agent/mibgroup/disman/expr/expObjectConf.c, 
-      agent/mibgroup/disman/expr/expObjectConf.h, 
-      agent/mibgroup/disman/expr/expObjectTable.c, 
-      agent/mibgroup/disman/expr/expObjectTable.h, 
-      agent/mibgroup/disman/expr/expScalars.c, 
-      agent/mibgroup/disman/expr/expScalars.h, 
-      agent/mibgroup/disman/expr/expValue.c, 
-      agent/mibgroup/disman/expr/expValue.h, 
-      agent/mibgroup/disman/expr/expValueTable.c, 
-      agent/mibgroup/disman/expr/expValueTable.h, 
-      agent/mibgroup/disman/expr/exp_enum.h, 
-      agent/mibgroup/disman/expression-mib.h, 
-      agent/mibgroup/disman/expression.h, 
-      agent/mibgroup/disman/expression/expErrorTable.c, 
-      agent/mibgroup/disman/expression/expErrorTable.h, 
-      agent/mibgroup/disman/expression/expExpressionTable.c, 
-      agent/mibgroup/disman/expression/expExpressionTable.h, 
-      agent/mibgroup/disman/expression/expObjectTable.c, 
-      agent/mibgroup/disman/expression/expObjectTable.h, 
-      agent/mibgroup/disman/expression/expValueTable.c, 
-      agent/mibgroup/disman/expression/expValueTable.h, 
-      agent/mibgroup/disman/mteEventNotificationTable.c, 
-      agent/mibgroup/disman/mteEventNotificationTable.h, 
-      agent/mibgroup/disman/mteEventTable.c, 
-      agent/mibgroup/disman/mteEventTable.h, 
-      agent/mibgroup/disman/mteObjectsTable.c, 
-      agent/mibgroup/disman/mteObjectsTable.h, 
-      agent/mibgroup/disman/mteTriggerBooleanTable.c, 
-      agent/mibgroup/disman/mteTriggerBooleanTable.h, 
-      agent/mibgroup/disman/mteTriggerDeltaTable.c, 
-      agent/mibgroup/disman/mteTriggerDeltaTable.h, 
-      agent/mibgroup/disman/mteTriggerExistenceTable.c, 
-      agent/mibgroup/disman/mteTriggerExistenceTable.h, 
-      agent/mibgroup/disman/mteTriggerTable.c, 
-      agent/mibgroup/disman/mteTriggerTable.h, 
-      agent/mibgroup/disman/mteTriggerThresholdTable.c, 
-      agent/mibgroup/disman/mteTriggerThresholdTable.h, 
-      agent/mibgroup/disman/nslookup-mib.h, 
-      agent/mibgroup/disman/nslookup/lookupCtlTable.c, 
-      agent/mibgroup/disman/nslookup/lookupCtlTable.h, 
-      agent/mibgroup/disman/nslookup/lookupResultsTable.c, 
-      agent/mibgroup/disman/nslookup/lookupResultsTable.h, 
-      agent/mibgroup/disman/old-event-mib.h, 
-      agent/mibgroup/disman/ping-mib.h, 
-      agent/mibgroup/disman/ping/pingCtlTable.c, 
-      agent/mibgroup/disman/ping/pingCtlTable.h, 
-      agent/mibgroup/disman/ping/pingProbeHistoryTable.c, 
-      agent/mibgroup/disman/ping/pingProbeHistoryTable.h, 
-      agent/mibgroup/disman/ping/pingResultsTable.c, 
-      agent/mibgroup/disman/ping/pingResultsTable.h, 
-      agent/mibgroup/disman/schedule.h, 
-      agent/mibgroup/disman/schedule/schedConf.c, 
-      agent/mibgroup/disman/schedule/schedConf.h, 
-      agent/mibgroup/disman/schedule/schedCore.c, 
-      agent/mibgroup/disman/schedule/schedCore.h, 
-      agent/mibgroup/disman/schedule/schedTable.c, 
-      agent/mibgroup/disman/schedule/schedTable.h, 
-      agent/mibgroup/disman/traceroute-mib.h, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h, 
-      agent/mibgroup/disman/traceroute/traceRouteHopsTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteHopsTable.h, 
-      agent/mibgroup/disman/traceroute/traceRouteProbeHistoryTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteProbeHistoryTable.h, 
-      agent/mibgroup/disman/traceroute/traceRouteResultsTable.c, 
-      agent/mibgroup/disman/traceroute/traceRouteResultsTable.h, 
-      agent/mibgroup/etherlike-mib.h, 
-      agent/mibgroup/etherlike-mib/data_access/dot3stats.h, 
-      agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable.h, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable.c, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable.h, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_acc
-       ess.c, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_acc
-       ess.h, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_get
-       .c, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_get
-       .h, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_set
-       .c, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_set
-       .h, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_enums.h,
-      
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interfac
-       e.c, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interfac
-       e.h, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_oids.h,
-       agent/mibgroup/etherlike-mib/dot3StatsTable/ioctl_imp_common.h, 
-      agent/mibgroup/examples.h, agent/mibgroup/examples/Makefile.dlmod,
-       agent/mibgroup/examples/data_set.c, 
-      agent/mibgroup/examples/data_set.h, 
-      agent/mibgroup/examples/delayed_instance.c, 
-      agent/mibgroup/examples/delayed_instance.h, 
-      agent/mibgroup/examples/example.c, 
-      agent/mibgroup/examples/example.h, 
-      agent/mibgroup/examples/netSnmpHostsTable.c, 
-      agent/mibgroup/examples/netSnmpHostsTable.h, 
-      agent/mibgroup/examples/netSnmpHostsTable_access.c, 
-      agent/mibgroup/examples/netSnmpHostsTable_access.h, 
-      agent/mibgroup/examples/netSnmpHostsTable_checkfns.c, 
-      agent/mibgroup/examples/netSnmpHostsTable_checkfns.h, 
-      agent/mibgroup/examples/netSnmpHostsTable_checkfns_local.c, 
-      agent/mibgroup/examples/netSnmpHostsTable_checkfns_local.h, 
-      agent/mibgroup/examples/netSnmpHostsTable_columns.h, 
-      agent/mibgroup/examples/netSnmpHostsTable_enums.h, 
-      agent/mibgroup/examples/notification.c, 
-      agent/mibgroup/examples/notification.h, 
-      agent/mibgroup/examples/scalar_int.c, 
-      agent/mibgroup/examples/scalar_int.h, 
-      agent/mibgroup/examples/ucdDemoPublic.c, 
-      agent/mibgroup/examples/ucdDemoPublic.cmds, 
-      agent/mibgroup/examples/ucdDemoPublic.conf, 
-      agent/mibgroup/examples/ucdDemoPublic.h, 
-      agent/mibgroup/examples/watched.c, 
-      agent/mibgroup/examples/watched.h, agent/mibgroup/hardware/cpu.h, 
-      agent/mibgroup/hardware/cpu/cpu.c, 
-      agent/mibgroup/hardware/cpu/cpu.h, 
-      agent/mibgroup/hardware/cpu/cpu_kerndata.c, 
-      agent/mibgroup/hardware/cpu/cpu_kerndata.h, 
-      agent/mibgroup/hardware/cpu/cpu_kinfo.c, 
-      agent/mibgroup/hardware/cpu/cpu_kinfo.h, 
-      agent/mibgroup/hardware/cpu/cpu_kstat.c, 
-      agent/mibgroup/hardware/cpu/cpu_kstat.h, 
-      agent/mibgroup/hardware/cpu/cpu_linux.c, 
-      agent/mibgroup/hardware/cpu/cpu_linux.h, 
-      agent/mibgroup/hardware/cpu/cpu_mach.c, 
-      agent/mibgroup/hardware/cpu/cpu_mach.h, 
-      agent/mibgroup/hardware/cpu/cpu_nlist.c, 
-      agent/mibgroup/hardware/cpu/cpu_nlist.h, 
-      agent/mibgroup/hardware/cpu/cpu_null.c, 
-      agent/mibgroup/hardware/cpu/cpu_null.h, 
-      agent/mibgroup/hardware/cpu/cpu_pcp.c, 
-      agent/mibgroup/hardware/cpu/cpu_pcp.h, 
-      agent/mibgroup/hardware/cpu/cpu_perfstat.c, 
-      agent/mibgroup/hardware/cpu/cpu_perfstat.h, 
-      agent/mibgroup/hardware/cpu/cpu_pstat.c, 
-      agent/mibgroup/hardware/cpu/cpu_pstat.h, 
-      agent/mibgroup/hardware/cpu/cpu_sysctl.c, 
-      agent/mibgroup/hardware/cpu/cpu_sysctl.h, 
-      agent/mibgroup/hardware/cpu/cpu_sysinfo.c, 
-      agent/mibgroup/hardware/cpu/cpu_sysinfo.h, 
-      agent/mibgroup/hardware/fsys.h, 
-      agent/mibgroup/hardware/fsys/fsys_getfsstats.c, 
-      agent/mibgroup/hardware/fsys/fsys_mntctl.c, 
-      agent/mibgroup/hardware/fsys/fsys_mntent.c, 
-      agent/mibgroup/hardware/fsys/hw_fsys.c, 
-      agent/mibgroup/hardware/fsys/hw_fsys.h, 
-      agent/mibgroup/hardware/fsys/mnttypes.h, 
-      agent/mibgroup/hardware/fsys/mounts.h, 
-      agent/mibgroup/hardware/memory.h, 
-      agent/mibgroup/hardware/memory/hw_mem.c, 
-      agent/mibgroup/hardware/memory/hw_mem.h, 
-      agent/mibgroup/hardware/memory/memory_aix.c, 
-      agent/mibgroup/hardware/memory/memory_darwin.c, 
-      agent/mibgroup/hardware/memory/memory_dynix.c, 
-      agent/mibgroup/hardware/memory/memory_freebsd.c, 
-      agent/mibgroup/hardware/memory/memory_hpux.c, 
-      agent/mibgroup/hardware/memory/memory_irix.c, 
-      agent/mibgroup/hardware/memory/memory_linux.c, 
-      agent/mibgroup/hardware/memory/memory_linux.h, 
-      agent/mibgroup/hardware/memory/memory_netbsd.c, 
-      agent/mibgroup/hardware/memory/memory_null.c, 
-      agent/mibgroup/hardware/memory/memory_solaris.c, 
-      agent/mibgroup/hardware/memory/memory_win.c, 
-      agent/mibgroup/hardware/sensors.h, 
-      agent/mibgroup/hardware/sensors/dummy_sensors.c, 
-      agent/mibgroup/hardware/sensors/dummy_sensors.h, 
-      agent/mibgroup/hardware/sensors/hw_sensors.c, 
-      agent/mibgroup/hardware/sensors/hw_sensors.h, 
-      agent/mibgroup/hardware/sensors/kstat_sensors.c, 
-      agent/mibgroup/hardware/sensors/kstat_sensors.h, 
-      agent/mibgroup/hardware/sensors/lmsensors_v2.c, 
-      agent/mibgroup/hardware/sensors/lmsensors_v2.h, 
-      agent/mibgroup/hardware/sensors/lmsensors_v3.c, 
-      agent/mibgroup/hardware/sensors/lmsensors_v3.h, 
-      agent/mibgroup/hardware/sensors/picld_sensors.c, 
-      agent/mibgroup/hardware/sensors/picld_sensors.h, 
-      agent/mibgroup/header_complex.c, agent/mibgroup/header_complex.h, 
-      agent/mibgroup/host.h, agent/mibgroup/host/data_access/swinst.c, 
-      agent/mibgroup/host/data_access/swinst.h, 
-      agent/mibgroup/host/data_access/swinst_darwin.c, 
-      agent/mibgroup/host/data_access/swinst_null.c, 
-      agent/mibgroup/host/data_access/swinst_pkginfo.c, 
-      agent/mibgroup/host/data_access/swinst_rpm.c, 
-      agent/mibgroup/host/data_access/swrun.c, 
-      agent/mibgroup/host/data_access/swrun.h, 
-      agent/mibgroup/host/data_access/swrun_cygwin.c, 
-      agent/mibgroup/host/data_access/swrun_darwin.c, 
-      agent/mibgroup/host/data_access/swrun_kinfo.c, 
-      agent/mibgroup/host/data_access/swrun_kvm_proc.c, 
-      agent/mibgroup/host/data_access/swrun_nlist.c, 
-      agent/mibgroup/host/data_access/swrun_null.c, 
-      agent/mibgroup/host/data_access/swrun_procfs_psinfo.c, 
-      agent/mibgroup/host/data_access/swrun_procfs_status.c, 
-      agent/mibgroup/host/data_access/swrun_procinfo.c, 
-      agent/mibgroup/host/data_access/swrun_prpsinfo.c, 
-      agent/mibgroup/host/data_access/swrun_pstat.c, 
-      agent/mibgroup/host/hrSWInstalledTable.c, 
-      agent/mibgroup/host/hrSWInstalledTable.h, 
-      agent/mibgroup/host/hrSWRunPerfTable.c, 
-      agent/mibgroup/host/hrSWRunPerfTable.h, 
-      agent/mibgroup/host/hrSWRunTable.c, 
-      agent/mibgroup/host/hrSWRunTable.h, 
-      agent/mibgroup/host/hr_device.c, agent/mibgroup/host/hr_device.h, 
-      agent/mibgroup/host/hr_disk.c, agent/mibgroup/host/hr_disk.h, 
-      agent/mibgroup/host/hr_filesys.c,
-      agent/mibgroup/host/hr_filesys.h, 
-      agent/mibgroup/host/hr_network.c,
-      agent/mibgroup/host/hr_network.h,  agent/mibgroup/host/hr_other.c,
-      agent/mibgroup/host/hr_other.h, 
-      agent/mibgroup/host/hr_partition.c, 
-      agent/mibgroup/host/hr_partition.h,
-      agent/mibgroup/host/hr_print.c,  agent/mibgroup/host/hr_print.h,
-      agent/mibgroup/host/hr_proc.c,  agent/mibgroup/host/hr_proc.h,
-      agent/mibgroup/host/hr_storage.c, 
-      agent/mibgroup/host/hr_storage.h, agent/mibgroup/host/hr_swinst.c,
-       agent/mibgroup/host/hr_swinst.h, agent/mibgroup/host/hr_swrun.c, 
-      agent/mibgroup/host/hr_swrun.h, agent/mibgroup/host/hr_system.c, 
-      agent/mibgroup/host/hr_system.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, agent/mibgroup/host_res.h, 
-      agent/mibgroup/if-mib.h, 
-      agent/mibgroup/if-mib/data_access/interface.c, 
-      agent/mibgroup/if-mib/data_access/interface.h, 
-      agent/mibgroup/if-mib/data_access/interface_ioctl.c, 
-      agent/mibgroup/if-mib/data_access/interface_ioctl.h, 
-      agent/mibgroup/if-mib/data_access/interface_linux.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/data_access/interface_sysctl.h, 
-      agent/mibgroup/if-mib/ifTable.h, 
-      agent/mibgroup/if-mib/ifTable/ifTable.c, 
-      agent/mibgroup/if-mib/ifTable/ifTable.h, 
-      agent/mibgroup/if-mib/ifTable/ifTable_constants.h, 
-      agent/mibgroup/if-mib/ifTable/ifTable_data_access.c, 
-      agent/mibgroup/if-mib/ifTable/ifTable_data_access.h, 
-      agent/mibgroup/if-mib/ifTable/ifTable_defs.h, 
-      agent/mibgroup/if-mib/ifTable/ifTable_interface.c, 
-      agent/mibgroup/if-mib/ifTable/ifTable_interface.h, 
-      agent/mibgroup/if-mib/ifXTable.h, 
-      agent/mibgroup/if-mib/ifXTable/ifXTable.c, 
-      agent/mibgroup/if-mib/ifXTable/ifXTable.h, 
-      agent/mibgroup/if-mib/ifXTable/ifXTable_constants.h, 
-      agent/mibgroup/if-mib/ifXTable/ifXTable_data_access.c, 
-      agent/mibgroup/if-mib/ifXTable/ifXTable_data_access.h, 
-      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c, 
-      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.h, 
-      agent/mibgroup/ip-forward-mib.h, 
-      agent/mibgroup/ip-forward-mib/data_access/route.h, 
-      agent/mibgroup/ip-forward-mib/data_access/route_common.c, 
-      agent/mibgroup/ip-forward-mib/data_access/route_ioctl.c, 
-      agent/mibgroup/ip-forward-mib/data_access/route_ioctl.h, 
-      agent/mibgroup/ip-forward-mib/data_access/route_linux.c, 
-      agent/mibgroup/ip-forward-mib/data_access/route_linux.h, 
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable.h, 
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable
-       .c, 
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable
-       .h, 
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable
-       _constants.h, 
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable
-       _data_access.c, 
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable
-       _data_access.h, 
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable
-       _interface.c, 
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable
-       _interface.h, agent/mibgroup/ip-forward-mib/ipCidrRouteTable.h, 
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c,
-      
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.h,
-      
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_con
-       stants.h, 
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_dat
-       a_access.c, 
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_dat
-       a_access.h, 
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_int
-       erface.c, 
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_int
-       erface.h, agent/mibgroup/ip-mib.h, 
-      agent/mibgroup/ip-mib/data_access/arp.h, 
-      agent/mibgroup/ip-mib/data_access/arp_common.c, 
-      agent/mibgroup/ip-mib/data_access/arp_linux.c, 
-      agent/mibgroup/ip-mib/data_access/defaultrouter.h, 
-      agent/mibgroup/ip-mib/data_access/defaultrouter_common.c, 
-      agent/mibgroup/ip-mib/data_access/defaultrouter_linux.c, 
-      agent/mibgroup/ip-mib/data_access/ipaddress.h, 
-      agent/mibgroup/ip-mib/data_access/ipaddress_common.c, 
-      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, 
-      agent/mibgroup/ip-mib/data_access/ipaddress_linux.h, 
-      agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c, 
-      agent/mibgroup/ip-mib/data_access/ipv6scopezone.h, 
-      agent/mibgroup/ip-mib/data_access/ipv6scopezone_common.c, 
-      agent/mibgroup/ip-mib/data_access/ipv6scopezone_linux.c, 
-      agent/mibgroup/ip-mib/data_access/scalars_common.h, 
-      agent/mibgroup/ip-mib/data_access/scalars_linux.c, 
-      agent/mibgroup/ip-mib/data_access/systemstats.h, 
-      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/ip-mib/inetNetToMediaTable.h, 
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.c, 
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h, 
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_const
-       ants.h, 
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_
-       access.c, 
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_
-       access.h, 
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_inter
-       face.c, 
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_inter
-       face.h, agent/mibgroup/ip-mib/ipAddressPrefixTable.h, 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c,
-      
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h,
-      
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_con
-       stants.h, 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_dat
-       a_access.c, 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_dat
-       a_access.h, 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_int
-       erface.c, 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_int
-       erface.h, agent/mibgroup/ip-mib/ipAddressTable.h, 
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c, 
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h, 
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_constants.h, 
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c,
-      
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.h,
-       agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c, 
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.h, 
-      agent/mibgroup/ip-mib/ipDefaultRouterTable.h, 
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.c,
-      
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h,
-      
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_dat
-       a_access.c, 
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_dat
-       a_access.h, 
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_dat
-       a_get.c, 
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_dat
-       a_get.h, 
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_enu
-       ms.h, 
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_int
-       erface.c, 
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_int
-       erface.h, 
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_oid
-       s.h, agent/mibgroup/ip-mib/ipIfStatsTable.h, 
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.c, 
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h, 
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c,
-      
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.h,
-       agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c, 
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h, 
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_enums.h, 
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c, 
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.h, 
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_oids.h, 
-      agent/mibgroup/ip-mib/ipSystemStatsTable.h, 
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c, 
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h, 
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_constan
-       ts.h, 
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_ac
-       cess.c, 
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_ac
-       cess.h, 
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interfa
-       ce.c, 
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interfa
-       ce.h, agent/mibgroup/ip-mib/ip_scalars.c, 
-      agent/mibgroup/ip-mib/ip_scalars.h, 
-      agent/mibgroup/ip-mib/ipv4InterfaceTable.h, 
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.c, 
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h, 
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_constan
-       ts.h, 
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_ac
-       cess.c, 
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_ac
-       cess.h, 
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interfa
-       ce.c, 
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interfa
-       ce.h, 
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_subagen
-       t.c, agent/mibgroup/ip-mib/ipv6InterfaceTable.h, 
-      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.c, 
-      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h, 
-      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_constan
-       ts.h, 
-      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_ac
-       cess.c, 
-      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_ac
-       cess.h, 
-      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interfa
-       ce.c, 
-      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interfa
-       ce.h, agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable.h, 
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTab
-       le.c, 
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTab
-       le.h, 
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTab
-       le_data_access.c, 
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTab
-       le_data_access.h, 
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTab
-       le_enums.h, 
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTab
-       le_interface.c, 
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTab
-       le_interface.h, 
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTab
-       le_oids.h, agent/mibgroup/ipfwchains/README, 
-      agent/mibgroup/kernel_sunos5.c, agent/mibgroup/kernel_sunos5.h, 
-      agent/mibgroup/mibII.h, agent/mibgroup/mibII/at.c, 
-      agent/mibgroup/mibII/at.h, agent/mibgroup/mibII/icmp.c, 
-      agent/mibgroup/mibII/icmp.h, agent/mibgroup/mibII/ifTable.h, 
-      agent/mibgroup/mibII/interfaces.c, 
-      agent/mibgroup/mibII/interfaces.h, agent/mibgroup/mibII/ip.c, 
-      agent/mibgroup/mibII/ip.h, agent/mibgroup/mibII/ipAddr.c, 
-      agent/mibgroup/mibII/ipAddr.h, 
-      agent/mibgroup/mibII/ipCidrRouteTable.c, 
-      agent/mibgroup/mibII/ipCidrRouteTable.h, 
-      agent/mibgroup/mibII/ipCidrRouteTable_access.c, 
-      agent/mibgroup/mibII/ipCidrRouteTable_access.h, 
-      agent/mibgroup/mibII/ipCidrRouteTable_checkfns.c, 
-      agent/mibgroup/mibII/ipCidrRouteTable_checkfns.h, 
-      agent/mibgroup/mibII/ipCidrRouteTable_columns.h, 
-      agent/mibgroup/mibII/ipCidrRouteTable_enums.h, 
-      agent/mibgroup/mibII/ipv6.c, agent/mibgroup/mibII/ipv6.h, 
-      agent/mibgroup/mibII/kernel_linux.c, 
-      agent/mibgroup/mibII/kernel_linux.h, 
-      agent/mibgroup/mibII/kernel_netbsd.c, 
-      agent/mibgroup/mibII/kernel_netbsd.h, 
-      agent/mibgroup/mibII/mibII_common.h, 
-      agent/mibgroup/mibII/mta_sendmail.c, 
-      agent/mibgroup/mibII/mta_sendmail.h, 
-      agent/mibgroup/mibII/route_headers.h, 
-      agent/mibgroup/mibII/route_write.c, 
-      agent/mibgroup/mibII/route_write.h, 
-      agent/mibgroup/mibII/setSerialNo.c, 
-      agent/mibgroup/mibII/setSerialNo.h, 
-      agent/mibgroup/mibII/snmp_mib.c, agent/mibgroup/mibII/snmp_mib.h, 
-      agent/mibgroup/mibII/snmp_mib_5_5.c, 
-      agent/mibgroup/mibII/snmp_mib_5_5.h, 
-      agent/mibgroup/mibII/sysORTable.c, 
-      agent/mibgroup/mibII/sysORTable.h, 
-      agent/mibgroup/mibII/system_mib.c, 
-      agent/mibgroup/mibII/system_mib.h, agent/mibgroup/mibII/tcp.c, 
-      agent/mibgroup/mibII/tcp.h, agent/mibgroup/mibII/tcpTable.c, 
-      agent/mibgroup/mibII/tcpTable.h, agent/mibgroup/mibII/udp.c, 
-      agent/mibgroup/mibII/udp.h, agent/mibgroup/mibII/udpTable.c, 
-      agent/mibgroup/mibII/udpTable.h, agent/mibgroup/mibII/updates.c, 
-      agent/mibgroup/mibII/updates.h, agent/mibgroup/mibII/vacm_conf.c, 
-      agent/mibgroup/mibII/vacm_conf.h, 
-      agent/mibgroup/mibII/vacm_context.c, 
-      agent/mibgroup/mibII/vacm_context.h, 
-      agent/mibgroup/mibII/vacm_vars.c,
-      agent/mibgroup/mibII/vacm_vars.h, 
-      agent/mibgroup/mibII/var_route.c,
-      agent/mibgroup/mibII/var_route.h,  agent/mibgroup/mibdefs.h,
-      agent/mibgroup/mibincl.h,  agent/mibgroup/misc/ipfwacc.c,
-      agent/mibgroup/misc/ipfwacc.h, 
-      agent/mibgroup/notification-log-mib.h, 
-      agent/mibgroup/notification-log-mib/notification_log.c, 
-      agent/mibgroup/notification-log-mib/notification_log.h, 
-      agent/mibgroup/notification.h, 
-      agent/mibgroup/notification/snmpNotifyFilterProfileTable.c, 
-      agent/mibgroup/notification/snmpNotifyFilterProfileTable.h, 
-      agent/mibgroup/notification/snmpNotifyTable.c, 
-      agent/mibgroup/notification/snmpNotifyTable.h, 
-      agent/mibgroup/rmon-mib.h, 
-      agent/mibgroup/rmon-mib/data_access/etherstats.h, 
-      agent/mibgroup/rmon-mib/data_access/etherstats_linux.c, 
-      agent/mibgroup/rmon-mib/etherStatsTable.h, 
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable.c, 
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable.h, 
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access
-       .c, 
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access
-       .h, 
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.c,
-      
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.h,
-      
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_set.c,
-      
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_set.h,
-       agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_enums.h, 
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c
-       , 
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.h
-       , agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_oids.h,
-       agent/mibgroup/rmon-mib/etherStatsTable/ioctl_imp_common.h, 
-      agent/mibgroup/sctp-mib.h, 
-      agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.c, 
-      agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.h, 
-      agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.c, 
-      agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.h, 
-      agent/mibgroup/sctp-mib/sctpAssocTable.c, 
-      agent/mibgroup/sctp-mib/sctpAssocTable.h, 
-      agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.c, 
-      agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.h, 
-      agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.c, 
-      agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.h, 
-      agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.c, 
-      agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.h, 
-      agent/mibgroup/sctp-mib/sctpLookupRemPortTable.c, 
-      agent/mibgroup/sctp-mib/sctpLookupRemPortTable.h, 
-      agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.c, 
-      agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.h, 
-      agent/mibgroup/sctp-mib/sctpScalars.c, 
-      agent/mibgroup/sctp-mib/sctpScalars.h, 
-      agent/mibgroup/sctp-mib/sctpScalars_common.c, 
-      agent/mibgroup/sctp-mib/sctpScalars_common.h, 
-      agent/mibgroup/sctp-mib/sctpScalars_freebsd.c, 
-      agent/mibgroup/sctp-mib/sctpScalars_linux.c, 
-      agent/mibgroup/sctp-mib/sctpTables.h, 
-      agent/mibgroup/sctp-mib/sctpTables_common.c, 
-      agent/mibgroup/sctp-mib/sctpTables_common.h, 
-      agent/mibgroup/sctp-mib/sctpTables_freebsd.c, 
-      agent/mibgroup/sctp-mib/sctpTables_linux.c, agent/mibgroup/smux.h,
-       agent/mibgroup/smux/smux.c, agent/mibgroup/smux/smux.h, 
-      agent/mibgroup/smux/snmp_bgp.c, agent/mibgroup/smux/snmp_bgp.h, 
-      agent/mibgroup/smux/snmp_ospf.c, agent/mibgroup/smux/snmp_ospf.h, 
-      agent/mibgroup/smux/snmp_rip2.c, agent/mibgroup/smux/snmp_rip2.h, 
-      agent/mibgroup/smux_gated.h, 
-      agent/mibgroup/snmp-notification-mib.h, 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable.h, 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNoti
-       fyFilterTable.c, 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNoti
-       fyFilterTable.h, 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNoti
-       fyFilterTable_constants.h, 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNoti
-       fyFilterTable_data_access.c, 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNoti
-       fyFilterTable_data_access.h, 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNoti
-       fyFilterTable_interface.c, 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNoti
-       fyFilterTable_interface.h, 
-      agent/mibgroup/snmp-usm-dh-objects-mib.h, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHParameters.h, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHParameters/usmDHParamet
-       ers.c, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHParameters/usmDHParamet
-       ers.h,
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable.h, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable.c, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable.h, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable_data_access.c, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable_data_access.h, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable_data_get.c, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable_data_get.h, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable_data_set.c, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable_data_set.h, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable_doxygen.conf, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable_enums.h, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable_interface.c, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable_interface.h, 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserK
-       eyTable_oids.h, agent/mibgroup/snmpv3/snmpEngine.c, 
-      agent/mibgroup/snmpv3/snmpEngine.h, 
-      agent/mibgroup/snmpv3/snmpMPDStats.c, 
-      agent/mibgroup/snmpv3/snmpMPDStats.h, 
-      agent/mibgroup/snmpv3/snmpMPDStats_5_5.c, 
-      agent/mibgroup/snmpv3/snmpMPDStats_5_5.h, 
-      agent/mibgroup/snmpv3/usmConf.c, agent/mibgroup/snmpv3/usmConf.h, 
-      agent/mibgroup/snmpv3/usmStats.c,
-      agent/mibgroup/snmpv3/usmStats.h, 
-      agent/mibgroup/snmpv3/usmStats_5_5.c, 
-      agent/mibgroup/snmpv3/usmStats_5_5.h, 
-      agent/mibgroup/snmpv3/usmUser.c, agent/mibgroup/snmpv3/usmUser.h, 
-      agent/mibgroup/snmpv3mibs.h, agent/mibgroup/struct.h, 
-      agent/mibgroup/target.h, 
-      agent/mibgroup/target/snmpTargetAddrEntry.c, 
-      agent/mibgroup/target/snmpTargetAddrEntry.h, 
-      agent/mibgroup/target/snmpTargetParamsEntry.c, 
-      agent/mibgroup/target/snmpTargetParamsEntry.h, 
-      agent/mibgroup/target/target.c, agent/mibgroup/target/target.h, 
-      agent/mibgroup/target/target_counters.c, 
-      agent/mibgroup/target/target_counters.h, 
-      agent/mibgroup/target/target_counters_5_5.c, 
-      agent/mibgroup/target/target_counters_5_5.h, 
-      agent/mibgroup/tcp-mib.h, 
-      agent/mibgroup/tcp-mib/data_access/Makefile, 
-      agent/mibgroup/tcp-mib/data_access/tcpConn.h, 
-      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_private.h, 
-      agent/mibgroup/tcp-mib/data_access/tcpConn_solaris2.c, 
-      agent/mibgroup/tcp-mib/tcpConnTable.h, 
-      agent/mibgroup/tcp-mib/tcpConnectionTable.h, 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c, 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.h, 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_consta
-       nts.h, 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_a
-       ccess.c, 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_a
-       ccess.h, 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interf
-       ace.c, 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interf
-       ace.h, agent/mibgroup/tcp-mib/tcpListenerTable.h, 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.c, 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.h, 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_constants.
-       h, 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_acces
-       s.c, 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_acces
-       s.h, 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.
-       c, 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.
-       h, agent/mibgroup/testhandler.c, agent/mibgroup/testhandler.h, 
-      agent/mibgroup/tunnel.h, agent/mibgroup/tunnel/tunnel.c, 
-      agent/mibgroup/tunnel/tunnel.h, agent/mibgroup/ucd-snmp/disk.c, 
-      agent/mibgroup/ucd-snmp/disk.h, agent/mibgroup/ucd-snmp/diskio.c, 
-      agent/mibgroup/ucd-snmp/diskio.h, agent/mibgroup/ucd-snmp/dlmod.c,
-       agent/mibgroup/ucd-snmp/dlmod.h, 
-      agent/mibgroup/ucd-snmp/errormib.c, 
-      agent/mibgroup/ucd-snmp/errormib.h, 
-      agent/mibgroup/ucd-snmp/extensible.c, 
-      agent/mibgroup/ucd-snmp/extensible.h, 
-      agent/mibgroup/ucd-snmp/file.c, agent/mibgroup/ucd-snmp/file.h, 
-      agent/mibgroup/ucd-snmp/hpux.c, agent/mibgroup/ucd-snmp/hpux.h, 
-      agent/mibgroup/ucd-snmp/lmSensors.c, 
-      agent/mibgroup/ucd-snmp/lmSensors.h, 
-      agent/mibgroup/ucd-snmp/lmsensorsMib.c, 
-      agent/mibgroup/ucd-snmp/lmsensorsMib.h, 
-      agent/mibgroup/ucd-snmp/loadave.c, 
-      agent/mibgroup/ucd-snmp/loadave.h, 
-      agent/mibgroup/ucd-snmp/logmatch.c, 
-      agent/mibgroup/ucd-snmp/logmatch.h, 
-      agent/mibgroup/ucd-snmp/memory.c,
-      agent/mibgroup/ucd-snmp/memory.h, 
-      agent/mibgroup/ucd-snmp/memory_aix4.c, 
-      agent/mibgroup/ucd-snmp/memory_aix4.h, 
-      agent/mibgroup/ucd-snmp/memory_darwin7.c, 
-      agent/mibgroup/ucd-snmp/memory_darwin7.h, 
-      agent/mibgroup/ucd-snmp/memory_dynix.c, 
-      agent/mibgroup/ucd-snmp/memory_dynix.h, 
-      agent/mibgroup/ucd-snmp/memory_freebsd2.c, 
-      agent/mibgroup/ucd-snmp/memory_freebsd2.h, 
-      agent/mibgroup/ucd-snmp/memory_hpux.c, 
-      agent/mibgroup/ucd-snmp/memory_hpux.h, 
-      agent/mibgroup/ucd-snmp/memory_netbsd1.c, 
-      agent/mibgroup/ucd-snmp/memory_netbsd1.h, 
-      agent/mibgroup/ucd-snmp/memory_solaris2.c, 
-      agent/mibgroup/ucd-snmp/memory_solaris2.h, 
-      agent/mibgroup/ucd-snmp/pass.c, agent/mibgroup/ucd-snmp/pass.h, 
-      agent/mibgroup/ucd-snmp/pass_persist.c, 
-      agent/mibgroup/ucd-snmp/pass_persist.h, 
-      agent/mibgroup/ucd-snmp/proc.c, agent/mibgroup/ucd-snmp/proc.h, 
-      agent/mibgroup/ucd-snmp/proxy.c, agent/mibgroup/ucd-snmp/proxy.h, 
-      agent/mibgroup/ucd-snmp/versioninfo.c, 
-      agent/mibgroup/ucd-snmp/versioninfo.h, 
-      agent/mibgroup/ucd-snmp/vmstat.c,
-      agent/mibgroup/ucd-snmp/vmstat.h, 
-      agent/mibgroup/ucd-snmp/vmstat_aix4.c, 
-      agent/mibgroup/ucd-snmp/vmstat_aix4.h, 
-      agent/mibgroup/ucd-snmp/vmstat_bsdi4.c, 
-      agent/mibgroup/ucd-snmp/vmstat_bsdi4.h, 
-      agent/mibgroup/ucd-snmp/vmstat_darwin7.c, 
-      agent/mibgroup/ucd-snmp/vmstat_darwin7.h, 
-      agent/mibgroup/ucd-snmp/vmstat_dynix.c, 
-      agent/mibgroup/ucd-snmp/vmstat_dynix.h, 
-      agent/mibgroup/ucd-snmp/vmstat_freebsd2.c, 
-      agent/mibgroup/ucd-snmp/vmstat_freebsd2.h, 
-      agent/mibgroup/ucd-snmp/vmstat_hpux.c, 
-      agent/mibgroup/ucd-snmp/vmstat_hpux.h, 
-      agent/mibgroup/ucd-snmp/vmstat_linux.c, 
-      agent/mibgroup/ucd-snmp/vmstat_linux.h, 
-      agent/mibgroup/ucd-snmp/vmstat_netbsd1.c, 
-      agent/mibgroup/ucd-snmp/vmstat_netbsd1.h, 
-      agent/mibgroup/ucd-snmp/vmstat_solaris2.c, 
-      agent/mibgroup/ucd-snmp/vmstat_solaris2.h, 
-      agent/mibgroup/ucd_snmp.h, agent/mibgroup/udp-mib.h, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint.h, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_private.h, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_solaris2.c, 
-      agent/mibgroup/udp-mib/udpEndpointTable.h, 
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.c, 
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.h, 
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_constants.
-       h, 
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_acces
-       s.c, 
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_acces
-       s.h, 
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.
-       c, 
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.
-       h, agent/mibgroup/util_funcs.c, agent/mibgroup/util_funcs.h, 
-      agent/mibgroup/util_funcs/MIB_STATS_CACHE_TIMEOUT.h, 
-      agent/mibgroup/util_funcs/get_pid_from_inode.c, 
-      agent/mibgroup/util_funcs/get_pid_from_inode.h, 
-      agent/mibgroup/util_funcs/header_generic.c, 
-      agent/mibgroup/util_funcs/header_generic.h, 
-      agent/mibgroup/util_funcs/header_simple_table.c, 
-      agent/mibgroup/util_funcs/header_simple_table.h, 
-      agent/mibgroup/utilities.h, agent/mibgroup/utilities/execute.c, 
-      agent/mibgroup/utilities/execute.h, 
-      agent/mibgroup/utilities/iquery.c, 
-      agent/mibgroup/utilities/iquery.h, 
-      agent/mibgroup/utilities/override.c, 
-      agent/mibgroup/utilities/override.h, 
-      agent/mibgroup/utilities/snmp_get_statistic.c, 
-      agent/mibgroup/utilities/snmp_get_statistic.h, 
-      agent/mibgroup/versiontag, agent/mibgroup/winExtDLL.c, 
-      agent/mibgroup/winExtDLL.h, agent/object_monitor.c, 
-      agent/snmp_agent.c, agent/snmp_perl.c, agent/snmp_perl.h, 
-      agent/snmp_perl.pl, agent/snmp_vars.c, agent/snmpd.c, 
-      agent/snmpd.h, apps/Makefile.depend, apps/Makefile.in, 
-      apps/encode_keychange.c, apps/snmp_perl_trapd.pl, 
-      apps/snmpbulkget.c, apps/snmpbulkwalk.c, apps/snmpdelta.c, 
-      apps/snmpdf.c, apps/snmpget.c, apps/snmpgetnext.c, 
-      apps/snmpnetstat/Makefile.depend, apps/snmpnetstat/Makefile.in, 
-      apps/snmpnetstat/ffs.c, apps/snmpnetstat/if.c, 
-      apps/snmpnetstat/inet.c, apps/snmpnetstat/inet6.c, 
-      apps/snmpnetstat/main.c, apps/snmpnetstat/main.h, 
-      apps/snmpnetstat/netstat.h, apps/snmpnetstat/route.c, 
-      apps/snmpnetstat/winstub.c, apps/snmpnetstat/winstub.h, 
-      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_auth.h, 
-      apps/snmptrapd_ds.h, apps/snmptrapd_handlers.c, 
-      apps/snmptrapd_handlers.h, apps/snmptrapd_log.c, 
-      apps/snmptrapd_log.h, apps/snmptrapd_sql.c, apps/snmpusm.c, 
-      apps/snmpvacm.c, apps/snmpwalk.c, apps/sshtosnmp.c, config.guess, 
-      config.sub, configure, configure.ac, 
-      configure.d/config_modules_agent, configure.d/config_modules_lib, 
-      configure.d/config_os_functions, configure.d/config_os_headers, 
-      configure.d/config_os_libs1, configure.d/config_os_libs2, 
-      configure.d/config_os_misc1, configure.d/config_os_misc2, 
-      configure.d/config_os_misc3, configure.d/config_os_misc4, 
-      configure.d/config_os_progs, configure.d/config_os_struct_members,
-       configure.d/config_project_ipv6_types, 
-      configure.d/config_project_manual, 
-      configure.d/config_project_paths, 
-      configure.d/config_project_perl_python, 
-      configure.d/config_project_types, 
-      configure.d/config_project_with_enable, dist/Makefile, 
-      dist/README.build-scripts, dist/RELEASE-INSTRUCTIONS, 
-      dist/autoconf-version, dist/changelogfix, dist/check-api-change, 
-      dist/cvsshow, dist/cvsup, dist/extractnews, dist/find-requires, 
-      dist/makerelease.xml, dist/net-snmp-solaris-build/DEVENV, 
-      dist/net-snmp-solaris-build/README, 
-      dist/net-snmp-solaris-build/buildpackage-solaris, 
-      dist/net-snmp-solaris-build/elfdepend.sh, dist/net-snmp.spec, 
-      dist/nsb-config, dist/nsb-functions, dist/nsb-nightly, 
-      dist/nsb-package, dist/nsb-platform, dist/patme, 
-      dist/schema-snmptrapd.sql, dist/snmpd-init.d, 
-      dist/snmptrapd-init.d, dist/svnup, doc/rfc/agentx/rfc2741.txt, 
-      doc/rfc/misc/rfc3512.txt, doc/rfc/misc/rfc3584.txt, 
-      doc/rfc/smiV2/rfc2578.txt, doc/rfc/smiV2/rfc2579.errata, 
-      doc/rfc/smiV2/rfc2579.txt, doc/rfc/smiV2/rfc2580.txt, 
-      doc/rfc/snmpV1/rfc1155.txt, doc/rfc/snmpV1/rfc1157.txt, 
-      doc/rfc/snmpV1/rfc1212.txt, doc/rfc/snmpV1/rfc1213.txt, 
-      doc/rfc/snmpV2/rfc1901.txt, doc/rfc/snmpV2/rfc1902.txt, 
-      doc/rfc/snmpV2/rfc1903.txt, doc/rfc/snmpV2/rfc1904.txt, 
-      doc/rfc/snmpV2/rfc1905.txt, doc/rfc/snmpV2/rfc1906.txt, 
-      doc/rfc/snmpV2/rfc1907.txt, doc/rfc/snmpV2/rfc1908.txt, 
-      doc/rfc/snmpV2/rfc2089.txt, doc/rfc/snmpV3/rfc3410.errata, 
-      doc/rfc/snmpV3/rfc3410.txt, doc/rfc/snmpV3/rfc3411.txt, 
-      doc/rfc/snmpV3/rfc3412.txt, doc/rfc/snmpV3/rfc3413.errata, 
-      doc/rfc/snmpV3/rfc3413.txt, doc/rfc/snmpV3/rfc3414.errata, 
-      doc/rfc/snmpV3/rfc3414.txt, doc/rfc/snmpV3/rfc3415.errata, 
-      doc/rfc/snmpV3/rfc3415.txt, doc/rfc/snmpV3/rfc3416.txt, 
-      doc/rfc/snmpV3/rfc3417.txt, doc/rfc/snmpV3/rfc3418.errata, 
-      doc/rfc/snmpV3/rfc3418.txt, dotgdbinit, doxygen.conf, 
-      include/net-snmp/agent/agent_callbacks.h, 
-      include/net-snmp/agent/agent_handler.h, 
-      include/net-snmp/agent/agent_index.h, 
-      include/net-snmp/agent/agent_read_config.h, 
-      include/net-snmp/agent/agent_registry.h, 
-      include/net-snmp/agent/agent_sysORTable.h, 
-      include/net-snmp/agent/agent_trap.h, 
-      include/net-snmp/agent/all_helpers.h, 
-      include/net-snmp/agent/auto_nlist.h, 
-      include/net-snmp/agent/baby_steps.h, 
-      include/net-snmp/agent/bulk_to_next.h, 
-      include/net-snmp/agent/cache_handler.h, 
-      include/net-snmp/agent/debug_handler.h, 
-      include/net-snmp/agent/ds_agent.h, 
-      include/net-snmp/agent/hardware/cpu.h, 
-      include/net-snmp/agent/hardware/fsys.h, 
-      include/net-snmp/agent/hardware/memory.h, 
-      include/net-snmp/agent/hardware/sensors.h, 
-      include/net-snmp/agent/instance.h, include/net-snmp/agent/mfd.h, 
-      include/net-snmp/agent/mib_modules.h, 
-      include/net-snmp/agent/mode_end_call.h, 
-      include/net-snmp/agent/multiplexer.h, 
-      include/net-snmp/agent/net-snmp-agent-includes.h, 
-      include/net-snmp/agent/null.h, 
-      include/net-snmp/agent/object_monitor.h, 
-      include/net-snmp/agent/old_api.h, 
-      include/net-snmp/agent/read_only.h, 
-      include/net-snmp/agent/row_merge.h, 
-      include/net-snmp/agent/scalar.h, 
-      include/net-snmp/agent/scalar_group.h, 
-      include/net-snmp/agent/serialize.h, 
-      include/net-snmp/agent/set_helper.h, 
-      include/net-snmp/agent/snmp_agent.h, 
-      include/net-snmp/agent/snmp_vars.h, 
-      include/net-snmp/agent/stash_cache.h, 
-      include/net-snmp/agent/stash_to_next.h, 
-      include/net-snmp/agent/sysORTable.h, 
-      include/net-snmp/agent/table.h, 
-      include/net-snmp/agent/table_array.h, 
-      include/net-snmp/agent/table_container.h, 
-      include/net-snmp/agent/table_data.h, 
-      include/net-snmp/agent/table_dataset.h, 
-      include/net-snmp/agent/table_iterator.h, 
-      include/net-snmp/agent/table_tdata.h, 
-      include/net-snmp/agent/var_struct.h, 
-      include/net-snmp/agent/watcher.h, include/net-snmp/config_api.h, 
-      include/net-snmp/data_access/arp.h, 
-      include/net-snmp/data_access/defaultrouter.h, 
-      include/net-snmp/data_access/interface.h, 
-      include/net-snmp/data_access/ip_scalars.h, 
-      include/net-snmp/data_access/ipaddress.h, 
-      include/net-snmp/data_access/ipstats.h, 
-      include/net-snmp/data_access/net-snmp-data-access-includes.h, 
-      include/net-snmp/data_access/route.h, 
-      include/net-snmp/data_access/scopezone.h, 
-      include/net-snmp/data_access/swinst.h, 
-      include/net-snmp/data_access/swrun.h, 
-      include/net-snmp/data_access/systemstats.h, 
-      include/net-snmp/data_access/tcpConn.h, 
-      include/net-snmp/data_access/udp_endpoint.h, 
-      include/net-snmp/definitions.h, include/net-snmp/library/README, 
-      include/net-snmp/library/asn1.h, 
-      include/net-snmp/library/callback.h, 
-      include/net-snmp/library/check_varbind.h, 
-      include/net-snmp/library/cmu_compat.h, 
-      include/net-snmp/library/container.h, 
-      include/net-snmp/library/container_binary_array.h, 
-      include/net-snmp/library/container_iterator.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/dir_utils.h, 
-      include/net-snmp/library/factory.h, 
-      include/net-snmp/library/fd_event_manager.h, 
-      include/net-snmp/library/file_utils.h, 
-      include/net-snmp/library/getopt.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/lcd_time.h, 
-      include/net-snmp/library/libsnmp.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/snmpAAL5PVCDomain.h, 
-      include/net-snmp/library/snmpAliasDomain.h, 
-      include/net-snmp/library/snmpCallbackDomain.h, 
-      include/net-snmp/library/snmpDTLSUDPDomain.h, 
-      include/net-snmp/library/snmpIPXDomain.h, 
-      include/net-snmp/library/snmpSSHDomain.h, 
-      include/net-snmp/library/snmpSTDDomain.h, 
-      include/net-snmp/library/snmpTCPDomain.h, 
-      include/net-snmp/library/snmpTCPIPv6Domain.h, 
-      include/net-snmp/library/snmpUDPDomain.h, 
-      include/net-snmp/library/snmpUDPIPv6Domain.h, 
-      include/net-snmp/library/snmpUnixDomain.h, 
-      include/net-snmp/library/snmp_alarm.h, 
-      include/net-snmp/library/snmp_api.h, 
-      include/net-snmp/library/snmp_assert.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_impl.h, 
-      include/net-snmp/library/snmp_logging.h, 
-      include/net-snmp/library/snmp_openssl.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/snmpksm.h, 
-      include/net-snmp/library/snmptsm.h, 
-      include/net-snmp/library/snmpusm.h, 
-      include/net-snmp/library/snmpv3.h, 
-      include/net-snmp/library/system.h, 
-      include/net-snmp/library/text_utils.h, 
-      include/net-snmp/library/tools.h, 
-      include/net-snmp/library/transform_oids.h, 
-      include/net-snmp/library/types.h, 
-      include/net-snmp/library/ucd_compat.h, 
-      include/net-snmp/library/vacm.h, 
-      include/net-snmp/library/winpipe.h, 
-      include/net-snmp/library/winservice.h, 
-      include/net-snmp/machine/generic.h, include/net-snmp/mib_api.h, 
-      include/net-snmp/net-snmp-config.h.in, 
-      include/net-snmp/net-snmp-includes.h, 
-      include/net-snmp/output_api.h, include/net-snmp/pdu_api.h, 
-      include/net-snmp/session_api.h, include/net-snmp/snmpv3_api.h, 
-      include/net-snmp/system/aix.h, include/net-snmp/system/bsd.h, 
-      include/net-snmp/system/bsdi.h, include/net-snmp/system/bsdi3.h, 
-      include/net-snmp/system/bsdi4.h, include/net-snmp/system/cygwin.h,
-       include/net-snmp/system/darwin.h, 
-      include/net-snmp/system/darwin7.h, 
-      include/net-snmp/system/darwin8.h, 
-      include/net-snmp/system/darwin9.h, 
-      include/net-snmp/system/dragonfly.h, 
-      include/net-snmp/system/dynix.h,
-      include/net-snmp/system/freebsd.h, 
-      include/net-snmp/system/freebsd2.h, 
-      include/net-snmp/system/freebsd3.h, 
-      include/net-snmp/system/freebsd4.h, 
-      include/net-snmp/system/freebsd5.h, 
-      include/net-snmp/system/freebsd6.h, 
-      include/net-snmp/system/freebsd7.h, 
-      include/net-snmp/system/generic.h, include/net-snmp/system/hpux.h,
-       include/net-snmp/system/irix.h,
-      include/net-snmp/system/kfreebsd.h, 
-      include/net-snmp/system/linux.h,
-      include/net-snmp/system/mingw32.h, 
-      include/net-snmp/system/mingw32msvc.h, 
-      include/net-snmp/system/mips.h, include/net-snmp/system/netbsd.h, 
-      include/net-snmp/system/openbsd.h, include/net-snmp/system/osf5.h,
-       include/net-snmp/system/solaris.h, 
-      include/net-snmp/system/solaris2.3.h, 
-      include/net-snmp/system/solaris2.4.h, 
-      include/net-snmp/system/solaris2.5.h, 
-      include/net-snmp/system/solaris2.6.h, 
-      include/net-snmp/system/sunos.h, include/net-snmp/system/svr5.h, 
-      include/net-snmp/system/sysv.h, include/net-snmp/system/ultrix4.h,
-       include/net-snmp/types.h, include/net-snmp/utilities.h, 
-      include/net-snmp/varbind_api.h, include/net-snmp/version.h, 
-      include/ucd-snmp/README, include/ucd-snmp/agent_index.h, 
-      include/ucd-snmp/agent_read_config.h, 
-      include/ucd-snmp/agent_registry.h, include/ucd-snmp/agent_trap.h, 
-      include/ucd-snmp/asn1.h, include/ucd-snmp/auto_nlist.h, 
-      include/ucd-snmp/callback.h, include/ucd-snmp/default_store.h, 
-      include/ucd-snmp/ds_agent.h, include/ucd-snmp/header_complex.h, 
-      include/ucd-snmp/int64.h, include/ucd-snmp/keytools.h, 
-      include/ucd-snmp/mib.h, include/ucd-snmp/mib_module_config.h, 
-      include/ucd-snmp/mibincl.h, include/ucd-snmp/parse.h, 
-      include/ucd-snmp/read_config.h, include/ucd-snmp/scapi.h, 
-      include/ucd-snmp/snmp-tc.h, include/ucd-snmp/snmp.h, 
-      include/ucd-snmp/snmp_agent.h, include/ucd-snmp/snmp_alarm.h, 
-      include/ucd-snmp/snmp_api.h, include/ucd-snmp/snmp_client.h, 
-      include/ucd-snmp/snmp_debug.h, include/ucd-snmp/snmp_impl.h, 
-      include/ucd-snmp/snmp_logging.h, 
-      include/ucd-snmp/snmp_parse_args.h, include/ucd-snmp/snmp_vars.h, 
-      include/ucd-snmp/snmpusm.h, include/ucd-snmp/snmpv3.h, 
-      include/ucd-snmp/struct.h, include/ucd-snmp/system.h, 
-      include/ucd-snmp/tools.h, include/ucd-snmp/transform_oids.h, 
-      include/ucd-snmp/ucd-snmp-agent-includes.h, 
-      include/ucd-snmp/ucd-snmp-config.h, 
-      include/ucd-snmp/ucd-snmp-includes.h, 
-      include/ucd-snmp/util_funcs.h, include/ucd-snmp/var_struct.h, 
-      include/ucd-snmp/version.h, install-sh, local/FAQ2HTML, 
-      local/Makefile.in, local/README.mib2c, local/Version-Munge.pl, 
-      local/convertcode, local/fixproc, local/html-add-header-footer.pl,
-       local/html-textfile-fix.pl, local/ipf-mod.pl, local/mib2c, 
-      local/mib2c-conf.d/default-mfd-top.m2c, 
-      local/mib2c-conf.d/details-enums.m2i, 
-      local/mib2c-conf.d/details-node.m2i, 
-      local/mib2c-conf.d/details-table.m2i, 
-      local/mib2c-conf.d/generic-ctx-copy.m2i, 
-      local/mib2c-conf.d/generic-ctx-get.m2i, 
-      local/mib2c-conf.d/generic-ctx-set.m2i, 
-      local/mib2c-conf.d/generic-data-allocate.m2i, 
-      local/mib2c-conf.d/generic-data-context.m2i, 
-      local/mib2c-conf.d/generic-get-char.m2i, 
-      local/mib2c-conf.d/generic-get-decl-bot.m2i, 
-      local/mib2c-conf.d/generic-get-decl.m2i, 
-      local/mib2c-conf.d/generic-get-long.m2i, 
-      local/mib2c-conf.d/generic-get-oid.m2i, 
-      local/mib2c-conf.d/generic-header-bottom.m2i, 
-      local/mib2c-conf.d/generic-header-top.m2i, 
-      local/mib2c-conf.d/generic-source-includes.m2i, 
-      local/mib2c-conf.d/generic-table-constants.m2c, 
-      local/mib2c-conf.d/generic-table-enums.m2c, 
-      local/mib2c-conf.d/generic-table-indexes-from-oid.m2i, 
-      local/mib2c-conf.d/generic-table-indexes-set.m2i, 
-      local/mib2c-conf.d/generic-table-indexes-to-oid.m2i, 
-      local/mib2c-conf.d/generic-table-indexes-varbind-setup.m2i, 
-      local/mib2c-conf.d/generic-table-indexes.m2i, 
-      local/mib2c-conf.d/generic-table-oids.m2c, 
-      local/mib2c-conf.d/generic-value-map-func.m2i, 
-      local/mib2c-conf.d/generic-value-map-reverse.m2i, 
-      local/mib2c-conf.d/generic-value-map.m2i, 
-      local/mib2c-conf.d/m2c-internal-warning.m2i, 
-      local/mib2c-conf.d/m2c_setup_enum.m2i, 
-      local/mib2c-conf.d/m2c_setup_node.m2i, 
-      local/mib2c-conf.d/m2c_setup_table.m2i, 
-      local/mib2c-conf.d/m2c_table_save_defaults.m2i, 
-      local/mib2c-conf.d/mfd-access-container-cached-defines.m2i, 
-      local/mib2c-conf.d/mfd-access-unsorted-external-defines.m2i, 
-      local/mib2c-conf.d/mfd-data-access.m2c, 
-      local/mib2c-conf.d/mfd-data-get.m2c, 
-      local/mib2c-conf.d/mfd-data-set.m2c, 
-      local/mib2c-conf.d/mfd-doxygen.m2c, 
-      local/mib2c-conf.d/mfd-interactive-setup.m2c, 
-      local/mib2c-conf.d/mfd-interface.m2c, 
-      local/mib2c-conf.d/mfd-makefile.m2m, 
-      local/mib2c-conf.d/mfd-persistence.m2i, 
-      local/mib2c-conf.d/mfd-readme.m2c, local/mib2c-conf.d/mfd-top.m2c,
-       local/mib2c-conf.d/node-get.m2i, local/mib2c-conf.d/node-set.m2i,
-       local/mib2c-conf.d/node-storage.m2i, 
-      local/mib2c-conf.d/node-validate.m2i, 
-      local/mib2c-conf.d/node-varbind-validate.m2i, 
-      local/mib2c-conf.d/parent-dependencies.m2i, 
-      local/mib2c-conf.d/parent-set.m2i,
-      local/mib2c-conf.d/subagent.m2c, 
-      local/mib2c-conf.d/syntax-COUNTER64-get.m2i, 
-      local/mib2c-conf.d/syntax-DateAndTime-get.m2d, 
-      local/mib2c-conf.d/syntax-DateAndTime-get.m2i, 
-      local/mib2c-conf.d/syntax-DateAndTime-readme.m2i, 
-      local/mib2c-conf.d/syntax-InetAddress-get.m2i, 
-      local/mib2c-conf.d/syntax-InetAddress-set.m2i, 
-      local/mib2c-conf.d/syntax-InetAddressType-get.m2i, 
-      local/mib2c-conf.d/syntax-InetAddressType-set.m2i, 
-      local/mib2c-conf.d/syntax-RowStatus-dependencies.m2i, 
-      local/mib2c-conf.d/syntax-RowStatus-get.m2i, 
-      local/mib2c-conf.d/syntax-RowStatus-varbind-validate.m2i, 
-      local/mib2c-conf.d/syntax-StorageType-dependencies.m2i, 
-      local/mib2c-conf.d/syntax-TestAndIncr-get.m2i, local/mib2c-update,
-       local/mib2c.access_functions.conf, local/mib2c.array-user.conf, 
-      local/mib2c.check_values.conf,
-      local/mib2c.check_values_local.conf, 
-      local/mib2c.column_defines.conf, local/mib2c.column_enums.conf, 
-      local/mib2c.column_storage.conf, local/mib2c.conf, 
-      local/mib2c.container.conf, local/mib2c.create-dataset.conf, 
-      local/mib2c.emulation.conf, local/mib2c.genhtml.conf, 
-      local/mib2c.int_watch.conf, local/mib2c.iterate.conf, 
-      local/mib2c.iterate_access.conf, local/mib2c.mfd.conf, 
-      local/mib2c.notify.conf, local/mib2c.old-api.conf, 
-      local/mib2c.perl.conf, local/mib2c.raw-table.conf, 
-      local/mib2c.row.conf, local/mib2c.scalar.conf, 
-      local/mib2c.table_data.conf, local/pass_persisttest, 
-      local/passtest, local/passtest.pl, local/snmp-ucd.sh, 
-      local/snmpcheck.def, local/snmpconf, 
-      local/snmpconf.dir/snmp-data/authopts, 
-      local/snmpconf.dir/snmp-data/debugging, 
-      local/snmpconf.dir/snmp-data/mibs, 
-      local/snmpconf.dir/snmp-data/output, 
-      local/snmpconf.dir/snmp-data/snmpconf-config, 
-      local/snmpconf.dir/snmpd-data/acl, 
-      local/snmpconf.dir/snmpd-data/basic_setup, 
-      local/snmpconf.dir/snmpd-data/extending, 
-      local/snmpconf.dir/snmpd-data/monitor, 
-      local/snmpconf.dir/snmpd-data/operation, 
-      local/snmpconf.dir/snmpd-data/snmpconf-config, 
-      local/snmpconf.dir/snmpd-data/system, 
-      local/snmpconf.dir/snmpd-data/trapsinks, 
-      local/snmpconf.dir/snmptrapd-data/authentication, 
-      local/snmpconf.dir/snmptrapd-data/formatting, 
-      local/snmpconf.dir/snmptrapd-data/logging, 
-      local/snmpconf.dir/snmptrapd-data/runtime, 
-      local/snmpconf.dir/snmptrapd-data/snmpconf-config, 
-      local/snmpconf.dir/snmptrapd-data/traphandle, local/snmpdump.pl, 
-      local/tkmib, local/traptoemail, ltmain.sh, 
-      m4/ac_add_search_path.m4, m4/ac_msg_cache.m4, 
-      m4/ac_msg_module_dbg.m4, m4/ac_prompt_user.m4, m4/libtool.m4, 
-      m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.m4,
-      m4/lt~obsolete.m4,  m4/netsnmp_arg.m4, m4/netsnmp_search_libs.m4,
-      makedepend.in,  makefileindepend.pl, makenosysdepend.pl,
-      maketarget,  man/Makefile.in, man/add_mibdir.3,
-      man/add_module_replacement.3,  man/config_api.3.def,
-      man/default_store.3.bot,  man/default_store.3.top,
-      man/encode_keychange.1.def,  man/fixproc.1.def,
-      man/get_module_node.3, man/init_mib.3,  man/init_mib_internals.3,
-      man/make_index.pl, man/man_sections.txt,  man/mib2c-update.1.def,
-      man/mib2c.1.def, man/mib2c.conf.5.in,  man/mib2c.extract.pl,
-      man/mib_api.3.def, man/net-snmp-config.1.def, 
-      man/net-snmp-create-v3-user.1.def, 
-      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/pdu_api.3.def, 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/session_api.3.def, man/shutdown_mib.3, man/snmp.conf.5.def, 
-      man/snmp_agent_api.3.def, man/snmp_alarm.3.def, 
-      man/snmp_api_errstring.3, man/snmp_close.3, man/snmp_config.5.def,
-       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_api.3.def, 
-      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, 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/snmpinform.1,  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, mibs/AGENTX-MIB.txt, 
-      mibs/DISMAN-EVENT-MIB.txt, mibs/DISMAN-EXPRESSION-MIB.txt, 
-      mibs/DISMAN-NSLOOKUP-MIB.txt, mibs/DISMAN-PING-MIB.txt, 
-      mibs/DISMAN-SCHEDULE-MIB.txt, mibs/DISMAN-SCRIPT-MIB.txt, 
-      mibs/DISMAN-TRACEROUTE-MIB.txt, mibs/EtherLike-MIB.txt, 
-      mibs/HCNUM-TC.txt, mibs/HOST-RESOURCES-MIB.txt, 
-      mibs/HOST-RESOURCES-TYPES.txt, 
-      mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt, 
-      mibs/IANA-LANGUAGE-MIB.txt, mibs/IANA-RTPROTO-MIB.txt, 
-      mibs/IANAifType-MIB.txt, mibs/IF-INVERTED-STACK-MIB.txt, 
-      mibs/IF-MIB.txt, mibs/INET-ADDRESS-MIB.txt, 
-      mibs/IP-FORWARD-MIB.txt, mibs/IP-MIB.txt, 
-      mibs/IPV6-FLOW-LABEL-MIB.txt, mibs/IPV6-ICMP-MIB.txt, 
-      mibs/IPV6-MIB.txt, mibs/IPV6-TC.txt, mibs/IPV6-TCP-MIB.txt, 
-      mibs/IPV6-UDP-MIB.txt, mibs/LM-SENSORS-MIB.txt, mibs/MTA-MIB.txt, 
-      mibs/Makefile.in, mibs/Makefile.mib, mibs/NET-SNMP-AGENT-MIB.txt, 
-      mibs/NET-SNMP-EXAMPLES-MIB.txt, mibs/NET-SNMP-EXTEND-MIB.txt, 
-      mibs/NET-SNMP-MIB.txt, mibs/NET-SNMP-MONITOR-MIB.txt, 
-      mibs/NET-SNMP-PASS-MIB.txt, mibs/NET-SNMP-SYSTEM-MIB.txt, 
-      mibs/NET-SNMP-TC.txt, mibs/NET-SNMP-VACM-MIB.txt, 
-      mibs/NETWORK-SERVICES-MIB.txt, mibs/NOTIFICATION-LOG-MIB.txt, 
-      mibs/README.mibs, mibs/RFC-1215.txt, mibs/RFC1155-SMI.txt, 
-      mibs/RFC1213-MIB.txt, mibs/RMON-MIB.txt, mibs/SCTP-MIB.txt, 
-      mibs/SMUX-MIB.txt, mibs/SNMP-COMMUNITY-MIB.txt, 
-      mibs/SNMP-FRAMEWORK-MIB.txt, mibs/SNMP-MPD-MIB.txt, 
-      mibs/SNMP-NOTIFICATION-MIB.txt, mibs/SNMP-PROXY-MIB.txt, 
-      mibs/SNMP-TARGET-MIB.txt, mibs/SNMP-USER-BASED-SM-MIB.txt, 
-      mibs/SNMP-USM-AES-MIB.txt, mibs/SNMP-USM-DH-OBJECTS-MIB.txt, 
-      mibs/SNMP-VIEW-BASED-ACM-MIB.txt, mibs/SNMPv2-CONF.txt, 
-      mibs/SNMPv2-MIB.txt, mibs/SNMPv2-SMI.txt, mibs/SNMPv2-TC.txt, 
-      mibs/SNMPv2-TM.txt, mibs/TCP-MIB.txt, 
-      mibs/TRANSPORT-ADDRESS-MIB.txt, mibs/TUNNEL-MIB.txt, 
-      mibs/UCD-DEMO-MIB.inc, mibs/UCD-DEMO-MIB.txt, 
-      mibs/UCD-DISKIO-MIB.inc, mibs/UCD-DISKIO-MIB.txt, 
-      mibs/UCD-DLMOD-MIB.inc, mibs/UCD-DLMOD-MIB.txt, 
-      mibs/UCD-IPFILTER-MIB.inc, mibs/UCD-IPFILTER-MIB.txt, 
-      mibs/UCD-IPFWACC-MIB.inc, mibs/UCD-IPFWACC-MIB.txt, 
-      mibs/UCD-SNMP-MIB-OLD.txt, mibs/UCD-SNMP-MIB.inc, 
-      mibs/UCD-SNMP-MIB.txt, mibs/UDP-MIB.txt, mibs/ianalist, 
-      mibs/makehtml.pl, mibs/mibfetch, mibs/nodemap, mibs/rfclist, 
-      mibs/rfcmibs.diff, mibs/smistrip, mkinstalldirs, 
-      net-snmp-config.in, net-snmp-create-v3-user.in, ov/Makefile.in, 
-      ov/README, ov/UCD-Computer, ov/UCD-fields, ov/bitmaps/UCD.20.m, 
-      ov/bitmaps/UCD.20.p, ov/bitmaps/UCD.26.m, ov/bitmaps/UCD.26.p, 
-      ov/bitmaps/UCD.32.m, ov/bitmaps/UCD.32.p, ov/bitmaps/UCD.38.m, 
-      ov/bitmaps/UCD.38.p, ov/bitmaps/UCD.44.m, ov/bitmaps/UCD.44.p, 
-      ov/bitmaps/UCD.50.m, ov/bitmaps/UCD.50.p, ov/bitmaps/UCD.fields, 
-      ov/oid_to_sym.in, ov/oid_to_type.in, perl/ASN/ASN.pm, 
-      perl/ASN/ASN.xs, perl/ASN/Changes, perl/ASN/MANIFEST, 
-      perl/ASN/Makefile.PL, perl/ASN/test.pl, perl/AnyData_SNMP/Changes,
-       perl/AnyData_SNMP/DBD_AnyData.patch, perl/AnyData_SNMP/Format.pm,
-       perl/AnyData_SNMP/INSTALL, perl/AnyData_SNMP/MANIFEST, 
-      perl/AnyData_SNMP/Makefile.PL, perl/AnyData_SNMP/README, 
-      perl/AnyData_SNMP/Storage.pm, perl/AnyData_SNMP/configs/scli, 
-      perl/AnyData_SNMP/configs/unix, perl/AnyData_SNMP/netsh, 
-      perl/Makefile.PL, perl/Makefile.makefiles, perl/Makefile.subs.pl, 
-      perl/OID/Changes, perl/OID/MANIFEST, perl/OID/Makefile.PL, 
-      perl/OID/OID.pm, perl/OID/OID.xs, perl/OID/README, 
-      perl/OID/test.pl, perl/OID/typemap, perl/SNMP/BUG, 
-      perl/SNMP/MANIFEST, perl/SNMP/MANIFEST.SKIP,
-      perl/SNMP/Makefile.PL,  perl/SNMP/README, perl/SNMP/SNMP.pm,
-      perl/SNMP/SNMP.xs,  perl/SNMP/TODO, perl/SNMP/examples/async1.pl, 
-      perl/SNMP/examples/async2.pl, perl/SNMP/examples/bulkwalk.pl, 
-      perl/SNMP/examples/ipforward.pl, perl/SNMP/examples/mibtree.pl, 
-      perl/SNMP/examples/mibwalk.pl, perl/SNMP/examples/pingmib.pl, 
-      perl/SNMP/examples/tablewalk.pl, perl/SNMP/examples/testleak.pl, 
-      perl/SNMP/examples/trap-example.pl, perl/SNMP/hints/irix.pl, 
-      perl/SNMP/hints/solaris.pl, perl/SNMP/perlsnmp.h, 
-      perl/SNMP/t/README, perl/SNMP/t/async.t, perl/SNMP/t/bulkwalk.t, 
-      perl/SNMP/t/conf.t, perl/SNMP/t/conftest.conf, perl/SNMP/t/get.t, 
-      perl/SNMP/t/getnext.t, perl/SNMP/t/mib.t, perl/SNMP/t/mib.txt, 
-      perl/SNMP/t/mibload.t, perl/SNMP/t/notify.t,
-      perl/SNMP/t/session.t,  perl/SNMP/t/set.t,
-      perl/SNMP/t/snmptest.conf,  perl/SNMP/t/startagent.pl,
-      perl/SNMP/typemap,  perl/TrapReceiver/Changes,
-      perl/TrapReceiver/MANIFEST,  perl/TrapReceiver/Makefile.PL,
-      perl/TrapReceiver/README,  perl/TrapReceiver/TrapReceiver.pm, 
-      perl/TrapReceiver/TrapReceiver.xs, perl/TrapReceiver/const-c.inc, 
-      perl/TrapReceiver/const-xs.inc, 
-      perl/TrapReceiver/fallback/const-c.inc, 
-      perl/TrapReceiver/fallback/const-xs.inc, 
-      perl/TrapReceiver/perl_snmptrapd.h, perl/TrapReceiver/ppport.h, 
-      perl/TrapReceiver/t/1.t, perl/TrapReceiver/typemap, 
-      perl/agent/Changes, perl/agent/MANIFEST, perl/agent/Makefile.PL, 
-      perl/agent/Support/Makefile.PL, perl/agent/Support/Support.pm, 
-      perl/agent/agent.pm, perl/agent/agent.xs, 
-      perl/agent/default_store/Makefile.PL, 
-      perl/agent/default_store/default_store.pm, 
-      perl/agent/default_store/default_store.xs, 
-      perl/agent/default_store/gen, perl/agent/default_store/test.pl, 
-      perl/agent/netsnmp_request_infoPtr.pm, perl/agent/test.pl, 
-      perl/agent/typemap, perl/default_store/Changes, 
-      perl/default_store/MANIFEST, perl/default_store/Makefile.PL, 
-      perl/default_store/README, perl/default_store/default_store.pm, 
-      perl/default_store/default_store.xs, perl/default_store/gen, 
-      perl/default_store/test.pl, perl/default_store/typemap, 
-      perl/make-perl-makefiles, perl/manager/INSTALL, 
-      perl/manager/Makefile.PL, perl/manager/displaytable.pm, 
-      perl/manager/getValues.pm, perl/manager/manager.pm, 
-      perl/manager/setupauth, perl/manager/setupdb, 
-      perl/manager/setupuser, perl/manager/snmptosql, python/LICENSE, 
-      python/README, python/netsnmp/__init__.py, 
-      python/netsnmp/client.py, python/netsnmp/client_intf.c, 
-      python/netsnmp/tests/__init__.py, python/netsnmp/tests/snmpd.conf,
-       python/netsnmp/tests/test.py, python/setup.py, remove-files, 
-      sedscript.in, snmplib/Makefile.depend, snmplib/Makefile.in, 
-      snmplib/asn1.c, snmplib/callback.c, snmplib/check_varbind.c, 
-      snmplib/cmu_compat.c, snmplib/container.c, 
-      snmplib/container_binary_array.c, snmplib/container_iterator.c, 
-      snmplib/container_list_ssll.c, snmplib/container_null.c, 
-      snmplib/data_list.c, snmplib/default_store.c, snmplib/dir_utils.c,
-       snmplib/fd_event_manager.c, snmplib/file_utils.c,
-      snmplib/getopt.c,  snmplib/inet_ntop.c, snmplib/inet_pton.c,
-      snmplib/int64.c,  snmplib/keytools.c, snmplib/large_fd_set.c,
-      snmplib/lcd_time.c,  snmplib/md5.c, snmplib/mib.c,
-      snmplib/mt_support.c,  snmplib/oid_stash.c, snmplib/parse.c,
-      snmplib/pkcs.c,  snmplib/read_config.c, snmplib/scapi.c,
-      snmplib/snmp-tc.c,  snmplib/snmp.c, snmplib/snmpAAL5PVCDomain.c, 
-      snmplib/snmpAliasDomain.c, snmplib/snmpCallbackDomain.c, 
-      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpIPXDomain.c, 
-      snmplib/snmpSSHDomain.c, snmplib/snmpSTDDomain.c, 
-      snmplib/snmpTCPDomain.c, snmplib/snmpTCPIPv6Domain.c, 
-      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c, 
-      snmplib/snmpUnixDomain.c, snmplib/snmp_alarm.c,
-      snmplib/snmp_api.c,  snmplib/snmp_auth.c, snmplib/snmp_client.c,
-      snmplib/snmp_debug.c,  snmplib/snmp_enum.c,
-      snmplib/snmp_logging.c,  snmplib/snmp_openssl.c,
-      snmplib/snmp_parse_args.c,  snmplib/snmp_secmod.c,
-      snmplib/snmp_service.c,  snmplib/snmp_transport.c,
-      snmplib/snmp_version.c,  snmplib/snmpksm.c, snmplib/snmptsm.c,
-      snmplib/snmpusm.c,  snmplib/snmpv3.c, snmplib/snprintf.c,
-      snmplib/strlcpy.c,  snmplib/strtok_r.c, snmplib/strtol.c,
-      snmplib/strtoul.c,  snmplib/strtoull.c, snmplib/system.c,
-      snmplib/test_binary_array.c,  snmplib/text_utils.c,
-      snmplib/tools.c, snmplib/ucd-snmp-includes.h, 
-      snmplib/ucd_compat.c, snmplib/vacm.c, snmplib/winpipe.c, 
-      snmplib/winservice.c, snmplib/winservice.mc,
-      snmplib/winservice.rc,  snmplib/winservicerc.rc, stamp-h,
-      stamp-h.in, testing/Makefile.in,  testing/README,
-      testing/RUNTESTS, testing/T.c, testing/T2.sh, 
-      testing/TESTCONF.sh, testing/data.keychange-md5, 
-      testing/data.keychange-sha1, testing/data.keychange-sha1-des, 
-      testing/data.kul-md5, testing/data.kul-sha1, testing/etimetest.c, 
-      testing/eval_oneprogram.sh, testing/eval_onescript.sh, 
-      testing/eval_suite.sh, testing/eval_testlist, 
-      testing/eval_tools.sh, testing/keymanagetest.c,
-      testing/misctest.c,  testing/rfc1213/README, testing/rfc1213/run, 
-      testing/rfc1213/snmpfun.sh, testing/rfc1213/test_fun, 
-      testing/rfc1213/testmib1.sh, testing/rfc1213/testmib2.sh, 
-      testing/rfc1213/testmib3.sh, testing/scapitest.c, 
-      testing/test_keychange.sh, testing/test_kul.sh, 
-      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/T000configure, 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/T100agenthup,  testing/tests/T110agentxget,
-      testing/tests/T111agentxset,  testing/tests/T112agentxsetfail,
-      testing/tests/T113agentxtrap,  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/T300udp, 
-      testing/tests/T310tcp, testing/tests/T320udpv6, 
-      testing/tests/T330tcpv6, testing/tests/T350unix, 
-      testing/tests/T360dtlsudp, testing/tests/T399alias, 
-      testing/tests/test-localhost.cert, 
-      testing/tests/test-localhost.priv, testing/tests/test-user.cert, 
-      testing/tests/test-user.priv, win32/Configure, 
-      win32/EXAMPLE.conf.win32, win32/Makefile-apps.in, 
-      win32/Makefile.in, win32/MgmtApi-winExtDLL.h, 
-      win32/Snmp-winExtDLL.h, win32/agent_module_dot_conf.h, 
-      win32/agent_module_includes.h, win32/agent_module_inits.h, 
-      win32/build.bat, win32/build.pl, win32/config.h, 
-      win32/config.h.borland, win32/dist/README.build.win32.txt, 
-      win32/dist/README.txt, win32/dist/build-binary.bat, 
-      win32/dist/build-binary.pl, 
-      win32/dist/htmlhelp/Configuration_Overview.html, 
-      win32/dist/htmlhelp/Developer_FAQ.html, 
-      win32/dist/htmlhelp/FAQ.html, 
-      win32/dist/htmlhelp/Help_Caveats.html, 
-      win32/dist/htmlhelp/Introduction.html, 
-      win32/dist/htmlhelp/Net-SNMP.hhc,
-      win32/dist/htmlhelp/Net-SNMP.hhp, 
-      win32/dist/htmlhelp/snmp.conf.win32.html, 
-      win32/dist/htmlhelp/snmpd.conf.win32.html, 
-      win32/dist/htmlhelp/snmptrapd.conf.win32.html, 
-      win32/dist/installer/Add2Path.nsi, 
-      win32/dist/installer/SetEnVar.nsi, 
-      win32/dist/installer/net-snmp.nsi, win32/dist/scripts/create-toc, 
-      win32/dist/scripts/mandir2html, 
-      win32/dist/scripts/net-snmp-perl-test.pl, 
-      win32/dist/scripts/poddir2html, win32/dist/scripts/readme2html, 
-      win32/dist/scripts/txt2html, win32/dist/tosock1.sh, 
-      win32/encode_keychange/encode_keychange.dsp, 
-      win32/install-net-snmp.bat, win32/libagent/Makefile.in, 
-      win32/libagent/libagent.def, win32/libagent/libagent.dsp, 
-      win32/libhelpers/Makefile.in, win32/libhelpers/libhelpers.dsp, 
-      win32/libnetsnmptrapd/Makefile.in, 
-      win32/libnetsnmptrapd/libnetsnmptrapd.dsp, 
-      win32/libsnmp/Makefile.in, win32/libsnmp/libsnmp.dsp, 
-      win32/libsnmp_dll/Makefile.in, win32/libsnmp_dll/libsnmp.def, 
-      win32/libsnmp_dll/libsnmp_dll.dsp,
-      win32/libucdmibs/libucdmibs.def,  win32/local/Makefile.in,
-      win32/local/mib2c.bat,  win32/local/snmpconf.bat,
-      win32/local/traptoemail.bat,  win32/mib_module_dot_conf.h,
-      win32/mib_module_includes.h,  win32/mib_module_inits.h,
-      win32/mib_module_shutdown.h, 
-      win32/net-snmp/agent/agent_module_config.h, 
-      win32/net-snmp/agent/mib_module_config.h, 
-      win32/net-snmp/library/snmpv3-security-includes.h, 
-      win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in,
-      win32/netsnmpmibs/Makefile.in,  win32/netsnmpmibs/netsnmpmibs.dsp,
-      win32/nmakeperl.bat,  win32/snmpbulkget/snmpbulkget.dsp, 
-      win32/snmpbulkwalk/snmpbulkwalk.dsp, win32/snmpd/Makefile.in, 
-      win32/snmpd/snmpd.dsp, win32/snmpdelta/snmpdelta.dsp, 
-      win32/snmpdf/snmpdf.dsp, win32/snmpget/snmpget.dsp, 
-      win32/snmpgetnext/snmpgetnext.dsp, win32/snmpnetstat/Makefile.in, 
-      win32/snmpnetstat/snmpnetstat.dsp, win32/snmpset/snmpset.dsp, 
-      win32/snmpsm_init.h, win32/snmpstatus/snmpstatus.dsp, 
-      win32/snmptable/snmptable.dsp, win32/snmptest/snmptest.dsp, 
-      win32/snmptranslate/snmptranslate.dsp,
-      win32/snmptrap/snmptrap.dsp,  win32/snmptrapd/Makefile.in,
-      win32/snmptrapd/snmptrapd.dsp,  win32/snmpusm/snmpusm.dsp,
-      win32/snmpvacm/snmpvacm.dsp,  win32/snmpwalk/snmpwalk.dsp,
-      win32/win32.dsw, win32/win32dll.dsw:
-
- 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
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/host/data_access/swrun_kinfo.c: 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
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/host/data_access/swrun_kinfo.c: proper process
-
- status values for netbsd git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19962 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   * snmplib/scapi.c: 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
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   * snmplib/scapi.c: conditionalize variable git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19961 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/tcp-mib/data_access/tcpConn.h: 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
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/tcp-mib/data_access/tcpConn.h: tcp-mib/udp-mib
-
- support for the *bsds git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19960 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/mibII.h, 
-      agent/mibgroup/tcp-mib/data_access/tcpConn_freebsd4.c, 
-      agent/mibgroup/tcp-mib/data_access/tcpConn_netbsd.c, 
-      agent/mibgroup/tcp-mib/data_access/tcpConn_openbsd.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint.h, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_freebsd4.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_netbsd.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_openbsd.c, 
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.
-       c: 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
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/mibII.h, 
-      agent/mibgroup/tcp-mib/data_access/tcpConn_freebsd4.c, 
-      agent/mibgroup/tcp-mib/data_access/tcpConn_netbsd.c, 
-      agent/mibgroup/tcp-mib/data_access/tcpConn_openbsd.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint.h, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_freebsd4.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_netbsd.c, 
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_openbsd.c, 
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.
-       c: tcp-mib/udp-mib support for the *bsds git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19959 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   *   * 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_a
-       ccess.c: 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
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   *   * 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_a
-       ccess.c: Properly end debug message with newline git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19958 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c: 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
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c: remove var
-
- that shadows the useful one git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19957 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/ipv6.c: 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
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   * agent/mibgroup/mibII/ipv6.c: 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/trunk@19956 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/mibII/tcpTable.c: 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
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/mibII/tcpTable.c: fix tcp states for dragonflybsd
-      git-svn-id:
-
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@19955 06827809-a52a-0410-b366-d66718629ded
-
-2011-02-21  Niels Baggesen <nba at users.sourceforge.net>
-
-   *  agent/mibgroup/mibII.h: enable new tcp/udp mibs for solaris
-      git-svn-id:
-
-
-
-----------------------------------------------------------------------
-
-Changes: V5.7 -> V5.7.1.pre1
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/snmpd.c: fix C++ comments
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  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:
-
- 5.7.1.pre1
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * Makefile.top: version update for 5.7.1.pre1
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit cf4cce4c189cf47f4c489db43b7fa510f8906a1a Merge: df91a9f
-
- 93e97dc Author: Dave Shield <D.T.Shield at liverpool.ac.uk> Date:   Mon
- Aug 8 22:15:28 2011 +0100
-
-2011-08-08  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   * : Merge remote-tracking branch 'origin/V5-6-patches' into
-
- V5-6-patches
-
-2011-08-08  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   *  win32/Makefile-apps.in, win32/dist/README.build.win32.txt, 
-      win32/libagent/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: Define
-
- _BIND_TO_CURRENT_VCLIBS_VERSION token (as per Alex' build
- instructions)
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit df16dc2221e993dd3c66650d5e872577ffe6c01b Merge: 714bc82
-
- 8e5a28d Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Mon Aug 8 13:56:43 2011 -0700
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit ffa05b051ac3e2b197195a9989cc7a91fe8d9282 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Mon Aug 8 13:55:38
- 2011 -0700
-
-2011-08-08  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   * : commit 714bc82fa01e21a3655824963fa54e9b8042ffb0 Merge: 6fe8fe5
-
- 3ef1db5 Author: Dave Shield <D.T.Shield at liverpool.ac.uk> Date:   Mon
- Aug 8 21:21:46 2011 +0100
-
-2011-08-08  Dave Shield <D.T.Shield at liverpool.ac.uk>
-
-   * : commit b451607dca015c111e96fdfeb2ddb0661fb4f724 Author: Dave
-
- Shield <D.T.Shield at liverpool.ac.uk> Date:   Mon Aug 8 21:20:32 2011
- +0100
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 6fe8fe5294a45bc7e4ea3751a1ad7aa47b5cabb2 Merge: 364f8ff
-
- f69abe3 Author: Bart Van Assche <bvanassche at acm.org> Date:   Mon Aug
- 8 22:02:38 2011 +0200
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit c94813044a4c4a608e98e80223075c6faf04ee11 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Mon Aug 8 21:56:15 2011 +0200
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 364f8ffaeb90b4eb0165fc855688cd0626632794 Merge: 3287295
-
- 7abb926 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Mon Aug 8 11:24:26 2011 -0700
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-6-patches' into
-
- V5-6-patches
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: display the branch we'll commit to
-
-
-2011-08-08  Vladimir Kondratiev <wulf2001 at users.sourceforge.net>
-
-   * agent/mibgroup/ucd-snmp/disk_hw.c: CHANGES: snmpd: PATCH 3386633:
-
- from wulf2001: fix integer overflow in disk percent calculations Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 84a775d0557fea97570e41715a3164970b4c03a2 Merge: 6fff1c1
-
- d373c4f Author: Bart Van Assche <bvanassche at acm.org> Date:   Mon Aug
- 8 20:12:32 2011 +0200
-
-2011-08-08  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * agent/agent_trap.c: CHANGES: libnetsnmp: PATCH 3387139: from
-
- yaberauneya: Avoid segfault if trapsess transport element cant be
- parsed Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: nssfpatchapply: split the
-
- displayed git commit command into multiple segments
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/helpers/scalar_group.c: CHANGES: snmplib: PATCH: 3386961:
-
- Make SNMP GET work in an AgentX subagent if write support is
- disabled via NETSNMP_NO_WRITE_SUPPORT (Mark Rusk).
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/mib.c: CHANGES: snmplib: Fix a crash that could be
-
- triggered by calling _mibindex_add() with the second argument not
- equal to -1.
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 6fff1c1ae51b06c9d80faf15373a963d173f14e8 Merge: 837c52e
-
- 8cc9004 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Mon Aug 8 10:58:59 2011 -0700
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 8ca7ff1e692caec4186b788c9ae2d27be213290f Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Mon Aug 8 10:33:56
- 2011 -0700
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-4-patches' into
-
- V5-4-patches
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit b8f529cba27c0114b4cb7340cfd449504fa07506 Merge: 0822f2d
-
- 556e938 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Mon Aug 8 10:05:36 2011 -0700
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: fix function name typo
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 29882a078a959a0f78b03e01968f1d17b7f6a299 Merge: 5e9bd2f
-
- 0409c0a Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Mon Aug 8 10:03:34 2011 -0700
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : manual merge of pull/push
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: make nspull/nspush check for a
-
- clean repo
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: new function "nsmakeall" to test
-
- building on every branch
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: default to merge
-
-
-2011-08-08  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-7-patches' into
-
- V5-7-patches
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * include/net-snmp/library/tools.h: CHANGES: Windows: Avoid that if
-
- the Net-SNMP Perl modules have been built with another version of
- Microsoft Visual Studio than ActivePerl that using one of these Perl
- modules triggers a "Free to wrong pool" crash. This regression was
- caused by commit 3b14c59cf8278d410207ff42debda2636426a468 (the
- netsnmp_free() into SNMP_FREE() changes in the *.xs files).
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit e109539930703cb3052d5241b18ac6fc062faaca Merge: 0c9b6cb
-
- e46b170 Author: Bart Van Assche <bvanassche at acm.org> Date:   Mon Aug
- 8 18:34:11 2011 +0200
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/mib.c: CHANGES: snmplib: Fix a crash that could be
-
- triggered by calling _mibindex_add() with the second argument not
- equal to -1.
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 7f42d0d93320484152271427cc9808cbda49bbd0 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Mon Aug 8 09:50:51 2011 +0200
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 0c9b6cbe9dbe2ec5217a95b6781fd7dc1f6ebda7 Merge: fa6cef5
-
- 963320f Author: Bart Van Assche <bvanassche at acm.org> Date:   Mon Aug
- 8 18:14:36 2011 +0200
-
-2011-08-08  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit a3b8654a232c563bc97cc9925cd98590a30c5bc5 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Mon Aug 8 17:24:18 2011 +0200
-
-2011-08-07  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit fa6cef5ca91df3a0b03455b68559d2bee248101c Merge: f5fe536
-
- 8add0da Author: Bart Van Assche <bvanassche at acm.org> Date:   Sun Aug
- 7 10:18:54 2011 +0200
-
-2011-08-07  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit a0dd3caf25926e43465718bf417a464c2fb36366 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Sun Aug 7 10:17:01 2011 +0200
-
-2011-08-05  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/deliver/deliverByNotify.c: 32 is too limited for
-
- bigger tables; increase the max msg count to 128
-
-2011-08-05  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: make rollup and sync support
-
- --rebase and change the default back to merge
-
-2011-08-05  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-4-patches' into
-
- V5-4-patches
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * README.win32: CHANGES: Win32: Documented how to use build.bat with
-
- OpenSSL enabled
-
-2011-07-15  Bart Van Assche <bvanassche at acm.org>
-
-   * README.win32: CHANGES: Windows: Remove outdated instructions about
-
- editing win32\libsnmp_dll\libsnmp.def from README.win32
-
-2011-07-15  Bart Van Assche <bvanassche at acm.org>
-
-   * README.win32: CHANGES: Win32: Document how to build 64-bit
-
- executables for the x64/amd64 architecture
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit f5fe536e8fd6c48fe243decd31fac9cf1c92f4cc Merge: 7850ea1
-
- 80928a8 Author: Bart Van Assche <bvanassche at acm.org> Date:   Fri Aug
- 5 15:13:27 2011 +0200
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 80928a8909cfab37f01b39a071a3e8ad85956222 Merge: f16a094
-
- 0dbc869 Author: Bart Van Assche <bvanassche at acm.org> Date:   Fri Aug
- 5 13:57:30 2011 +0200
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 0dbc869fec07d8e90dbd1c95493ee7cbc623c95c Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Fri Aug 5 12:40:31 2011 +0200
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Add
-
- perl/agent/default_store/default_store.def and perl/SNMP/t
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 86c1e2b9679fec2cd799ba76005c3d60e9d47634 Merge: bcd8635
-
- f16a094 Author: Bart Van Assche <bvanassche at acm.org> Date:   Fri Aug
- 5 12:20:50 2011 +0200
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 2f8d4f5796cbc1c7e967acdaa8019b24f1520a36 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Fri Aug 5 12:02:51 2011 +0200
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/parse.c: Unbreak the V5-4-patches - revert commit
-
- d2c4768bd2efb48664434a831425c2dda85d7133 (CHANGES: libnetsnmp: PATCH
- 3362233: from yaberauneya: Mute unnecessary cannot find module
- noise).
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/mibgroup/mibII/snmp_mib.c, agent/mibgroup/mibII/snmp_mib.h: 
-
- Unbreak the V5-4-patches branch - was broken by commit
- bf7178b0b22587d43d1a80c269cd216bd5930214 (agent: change type of
- snmp_enableauthentraps to long)
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * include/net-snmp/library/snmpusm.h: Unbreak the V5-4-patches
-
- branch - was broken by commit
- 0e6842fe080cec853b08cd2323015ababc381ce1 (CHANGES: snmptrapd: PATCH
- 3383441: from sachinsurendran: Fix crash on 5.4.4 due to access of
- freed memory).
-
-2011-08-05  Thomas Anders <tanders at users.sourceforge.net>
-
-   * NEWS: minor NEWS polish
-
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit bcd86350713822963d376eff582a92f43e426d6c Merge: 9c810a3
-
- 7a20f71 Author: Bart Van Assche <bvanassche at acm.org> Date:   Fri Aug
- 5 10:28:55 2011 +0200
-
-2011-08-05  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 3aa949fbdfc1a94a8340ad8baf8b314756a0bb9d Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Fri Aug 5 10:26:15 2011 +0200
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 9c810a3b37b68573c40337e246e2faf299b77d31 Merge: 71cb2e8
-
- 610d63f Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 10:42:08 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 943930e1e124385fd94738b6dcda37d29dc7ac7f Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Thu Aug 4 10:41:41
- 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-4-patches' into
-
- V5-4-patches
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 4edcb88dae8b2e59dc683e80d414fa7ecec36885 Merge: 65f3eef
-
- 2dd9ed0 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 10:24:11 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : Merge remote-tracking branch 'origin/V5-5-patches' into
-
- V5-5-patches
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit bc5ca03a04ab19c634a34d060b0b16b7484cb520 Merge: 88fddb7
-
- 90c0e75 Author: Bart Van Assche <bvanassche at acm.org> Date:   Thu Aug
- 4 19:13:07 2011 +0200
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/snmp_client.c, snmplib/snmpusm.c: snmpusm: Fix recently
-
- introduced compiler warnings
-
-2011-08-04  Stuart Henderson <t0jw2fu0kmg at users.sourceforge.net>
-
-   * agent/mibgroup/hardware/memory/memory_netbsd.c: CHANGES: openbsd:
-
- PATCH 3357932: from t0jw2fu0kmg: Cleaning in memory_netbsd.c Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Vladimir Kondratiev <wulf2001 at users.sourceforge.net>
-
-   * agent/mibgroup/hardware/fsys/fsys_getfsstats.c: CHANGES: agent:
-
- PATCH 3386147: from wulf2001: fix UCD-SNMP-MIB::dskUsed Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 473d7e5cd4d411bba20eb85359d8728063301cbd Merge: a4e8b62
-
- 88fddb7 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 09:28:22 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 2101bb2d7ad6db038c755aa9193c8ace0dbd4f58 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Thu Aug 4 09:28:06
- 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * .gitignore: ignore *.orig and *.rej
-
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: help output describes rebase vs
-
- merge better
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit f126a17c6a3063455a511940b023047abd9b48ee Merge: ad765f4
-
- 77a4784 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 09:25:16 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 452e1707f209ec45e7c7f2a3040ef595fb9d1af6 Merge: dc755a6
-
- b372e5a Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 09:25:03 2011 -0700
-
-2011-08-04  Stuart Henderson <t0jw2fu0kmg at users.sourceforge.net>
-
-   *  Makefile.in, acconfig.h, agent/mibgroup/hardware/cpu.h, 
-      agent/mibgroup/hardware/memory.h, 
-      agent/mibgroup/if-mib/data_access/interface.h, 
-      include/net-snmp/net-snmp-config.h.in, 
-      include/net-snmp/system/openbsd.h, 
-      include/net-snmp/system/openbsd4.h, 
-      include/net-snmp/system/openbsd5.h: CHANGES: openbsd: PATCH
-      3357927:
-
- from t0jw2fu0kmg: Recognise openbsd5 Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: fix where arguments are set
-
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: split nssfpatchapply into two
-
- parts: apply and commiting
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: patch using -N
-
-
-2011-08-04  David Arnold <dja at users.sourceforge.net>
-
-   *  man/default_store.3.bot, man/encode_keychange.1.def, 
-      man/fixproc.1.def, man/mib2c.conf.5.in, man/net-snmp-config.1.def,
-       man/netsnmp_agent_api.3.def, man/netsnmp_mib_api.3.def, 
-      man/snmp.conf.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/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: CHANGES: man: PATCH 3312861: from dja: Man
-      pages
-
- hyphen-vs-minus cleanup Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/installer/net-snmp.nsi: Detect (and reject) OpenSSL
-
- 1.0.0
-
-2011-08-04  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/installer/net-snmp.nsi: Command-line options for silent
-
- install
-
-2011-08-04  Dave Shield <dts12 at users.sourceforge.net>
-
-   * win32/dist/installer/net-snmp.nsi: Ensure Windows package
-
- uninstalls completely.
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 81c63fb5c5e4abb9c29aca89bf9d694410086e97 Merge: 4a6920a
-
- dc755a6 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 08:33:34 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_client.c: added spacing to match the later branches
-
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : manual merge
-
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * snmplib/snmp_client.c: removed accidentially duplicated code
-
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : manual merge
-
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : manual merge
-
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * snmplib/parse.c: CHANGES: libnetsnmp: PATCH 3362233: from
-
- yaberauneya: Mute unnecessary cannot find module noise Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/agent_read_config.c, agent/snmp_vars.c, 
-      configure.d/config_os_headers: CHANGES: freebsd: PATCH 3363308:
-      from
-
- yaberauneya: Fix compilation on FreeBSD 9.x with recent header
- shuffling Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: allow nsrollup to take a --merge
-
- flag for merging instead of rebasing
-
-2011-08-04  Sachin Surendran <sachinsurendran at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpusm.h, snmplib/snmp_client.c, 
-      snmplib/snmpusm.c: CHANGES: snmptrapd: PATCH 3383441: from
-
- sachinsurendran: Fix crash on 5.4.4 due to access of freed memory Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * Makefile.in: CHANGES: freebsd: PATCH 3363328: from yaberauneya:
-
- Add FreeBSD 9.x to supported OSes list Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * snmplib/parse.c: CHANGES: libnetsnmp: PATCH 3362233: from
-
- yaberauneya: Mute unnecessary cannot find module noise Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/agent_read_config.c, agent/snmp_vars.c, 
-      configure.d/config_os_headers: CHANGES: freebsd: PATCH 3363308:
-      from
-
- yaberauneya: Fix compilation on FreeBSD 9.x with recent header
- shuffling Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: allow nsrollup to take a --merge
-
- flag for merging instead of rebasing
-
-2011-08-04  Sachin Surendran <sachinsurendran at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpusm.h, snmplib/snmp_client.c, 
-      snmplib/snmpusm.c: CHANGES: snmptrapd: PATCH 3383441: from
-
- sachinsurendran: Fix crash on 5.4.4 due to access of freed memory Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * Makefile.in: CHANGES: freebsd: PATCH 3363328: from yaberauneya:
-
- Add FreeBSD 9.x to supported OSes list Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * snmplib/parse.c: CHANGES: libnetsnmp: PATCH 3362233: from
-
- yaberauneya: Mute unnecessary cannot find module noise Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/agent_read_config.c, agent/snmp_vars.c, 
-      configure.d/config_os_headers: CHANGES: freebsd: PATCH 3363308:
-      from
-
- yaberauneya: Fix compilation on FreeBSD 9.x with recent header
- shuffling Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: allow nsrollup to take a --merge
-
- flag for merging instead of rebasing
-
-2011-08-04  Sachin Surendran <sachinsurendran at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpusm.h, snmplib/snmp_client.c, 
-      snmplib/snmpusm.c: CHANGES: snmptrapd: PATCH 3383441: from
-
- sachinsurendran: Fix crash on 5.4.4 due to access of freed memory Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * snmplib/parse.c: CHANGES: libnetsnmp: PATCH 3362233: from
-
- yaberauneya: Mute unnecessary cannot find module noise Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: allow nsrollup to take a --merge
-
- flag for merging instead of rebasing
-
-2011-08-04  Sachin Surendran <sachinsurendran at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpusm.h, snmplib/snmp_client.c, 
-      snmplib/snmpusm.c: CHANGES: snmptrapd: PATCH 3383441: from
-
- sachinsurendran: Fix crash on 5.4.4 due to access of freed memory Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/mibgroup/hardware/cpu/cpu_sysctl.c, 
-      agent/mibgroup/hardware/memory/memory_freebsd.c, 
-      agent/mibgroup/mibII/ipAddr.c, snmplib/keytools.c,
-      snmplib/scapi.c:
-
- CHANGES: building: PATCH 3383951: from yaberauneya: Fix -Wunused
- compile warnings with FreeBSD/NetBSD Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/mibgroup/hardware/cpu/cpu_sysctl.c, 
-      agent/mibgroup/hardware/memory/memory_freebsd.c, 
-      agent/mibgroup/mibII/ipAddr.c, snmplib/keytools.c,
-      snmplib/scapi.c:
-
- CHANGES: building: PATCH 3383951: from yaberauneya: Fix -Wunused
- compile warnings with FreeBSD/NetBSD Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit e878abbdb1808ef83e0a8074536fb54e13219a8b Merge: 403de42
-
- 878fbf4 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 07:55:00 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 250afa06892fd897ac31e3836a7ffc9e2b4cf7b9 Merge: 2c14c1c
-
- 3afc5e0 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 07:51:33 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 578cd7cce351ae8d904ec3d80be9ba6d1d48a712 Merge: 25988be
-
- f3bc551 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Thu Aug 4 07:50:56 2011 -0700
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : autoconf
-
-
-2011-08-04  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   * configure.d/config_os_struct_members: CHANGES: building: PATCH
-
- 3383949: from yaberauneya: Fix autoconf tests for sys/mbuf.h Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: prompt for patch and an area, and
-
- use the proper CHANGES line format
-
-2011-08-04  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: Use fetch --all and rebase as
-
- suggested by Bart for speed improvements
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit d6a1a89e6f648951a9b831932d3cc230821f2d37 Merge: dcb712f
-
- 872e013 Author: Bart Van Assche <bvanassche at acm.org> Date:   Thu Aug
- 4 12:06:18 2011 +0200
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 44969b4e57c27194e5bd357bc45275feb8695d22 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Fri Jul 8 20:52:25 2011 +0200
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/mibgroup/winExtDLL.c: CHANGES: Win32: winExtDLL: Invoke
-
- SnmpUtilOidFree() before SnmpUtilOidCpy(). It's not clear yet why
- the original code did not make snmpwalk trigger a memory leak.
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit dcb712ffc86b33583000ef4ae9a51ced25cd15bf Merge: e85cfa5
-
- 98623ef Author: Bart Van Assche <bvanassche at acm.org> Date:   Thu Aug
- 4 11:36:17 2011 +0200
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 8a01ec6423d400c4a13ccac68a3791d0218a0885 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Thu Aug 4 11:19:17 2011 +0200
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit e85cfa599b23b76d97913c96b5d703bff6ba4944 Merge: b056ee6
-
- e21eef2 Author: Bart Van Assche <bvanassche at acm.org> Date:   Thu Aug
- 4 08:44:43 2011 +0200
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/mibgroup/host/data_access/swinst_pkginfo.c: CHANGES: agent:
-
- Avoid that a MIB walk on the host resources MIB triggers a crash on
- Fedora 15
-
-2011-08-04  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit b056ee6eb53909ad04f16ec26d2690d7a083192a Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Thu Aug 4 07:59:04 2011 +0200
-
-2011-08-03  Bart Van Assche <bvanassche at acm.org>
-
-   *  agent/agent_trap.c, agent/helpers/table_array.c, 
-      agent/mibgroup/agentx/master_admin.c, 
-      agent/mibgroup/agentx/protocol.c, 
-      agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c, 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_acc
-       ess.c, agent/mibgroup/host/data_access/swinst_pkginfo.c, 
-      agent/mibgroup/host/data_access/swrun_procfs_status.c, 
-      agent/mibgroup/if-mib/data_access/interface_linux.c, 
-      agent/mibgroup/ip-mib/data_access/systemstats_linux.c, 
-      agent/mibgroup/mibII/kernel_linux.c, 
-      agent/mibgroup/rmon-mib/data_access/etherstats_linux.c, 
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access
-       .c, agent/mibgroup/smux/smux.c, agent/mibgroup/snmpv3/usmUser.c, 
-      agent/mibgroup/ucd-snmp/versioninfo.c, agent/snmp_agent.c, 
-      apps/snmpbulkget.c, apps/snmptls.c, apps/snmptrapd_log.c, 
-      perl/SNMP/SNMP.xs, snmplib/container_iterator.c, 
-      snmplib/dir_utils.c, snmplib/snmp_api.c, snmplib/snmp_client.c, 
-      snmplib/snmp_enum.c, snmplib/snmp_openssl.c, snmplib/snmpusm.c, 
-      snmplib/transports/snmpTLSTCPDomain.c: CHANGES: snmplib, snmpd:
-
- perl: Eliminate dead variables
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit ae8e3ecd2df4cf37625944aded1dfe4735d44eea Merge: 73187ce
-
- 9335e19 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Wed Aug 3 14:37:36 2011 -0700
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 794f9a69d7eb642268200b0a4b199151def66ed0 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Wed Aug 3 14:36:25
- 2011 -0700
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added a comment
-
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: at end of nsrollup mention that
-
- now would be a good time to run nssync
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: a new nssync() function for
-
- push/pulling active branches
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added a comment
-
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: at end of nsrollup mention that
-
- now would be a good time to run nssync
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: a new nssync() function for
-
- push/pulling active branches
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: at end of nsrollup mention that
-
- now would be a good time to run nssync
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: a new nssync() function for
-
- push/pulling active branches
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added a comment
-
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: at end of nsrollup mention that
-
- now would be a good time to run nssync
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: a new nssync() function for
-
- push/pulling active branches
-
-2011-08-03  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/mibgroup/ip-mib.h: Reenable IP-MIB::ipDefaultRouterTable
-      Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: A new function: nssfpatchapply
-
- that auto-pulls git command line info from SF
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/generic-ctx-get.m2i: added variables names to
-
- the generated error messages.
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/mfd-interactive-setup.m2c: Wording changes to
-
- help describe contexts better
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/Makefile.in, local/mib2c-conf.d/generic-get-U64.m2i: Added
-
- the missing U64 m2i file
-
-2011-08-03  Garrett Cooper <yaberauneya at users.sourceforge.net>
-
-   *  agent/mibgroup/ip-mib.h: Reenable IP-MIB::ipDefaultRouterTable
-      Signed-off-by: Wes Hardaker <hardaker at users.sourceforge.net>
-
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: A new function: nssfpatchapply
-
- that auto-pulls git command line info from SF
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/generic-ctx-get.m2i: added variables names to
-
- the generated error messages.
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/mfd-interactive-setup.m2c: Wording changes to
-
- help describe contexts better
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/Makefile.in, local/mib2c-conf.d/generic-get-U64.m2i: Added
-
- the missing U64 m2i file
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: A new function: nssfpatchapply
-
- that auto-pulls git command line info from SF
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/generic-ctx-get.m2i: added variables names to
-
- the generated error messages.
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/mfd-interactive-setup.m2c: Wording changes to
-
- help describe contexts better
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/Makefile.in, local/mib2c-conf.d/generic-get-U64.m2i: Added
-
- the missing U64 m2i file
-
-2011-08-03  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: A new function: nssfpatchapply
-
- that auto-pulls git command line info from SF
-
-2011-07-18  Ilya Yanok <yanok at emcraft.com>
-
-   * agent/agent_trap.c, agent/mibgroup/mibII/snmp_mib.c: agent: change
-
- type of snmp_enableauthentraps to long Type of snmp_enableauthentraps variable is changed from int to long.
- This fixes the bug with writing to snmpEnableAuthenTraps if server
- is compiled for 64bit (snmpset reports wrong length). This bug was
- introduced a long time ago (by faeecd0 commit).  Actually this is a 'less effort' type of fix but I wonder why we
- need a long to store an INTEGER in the first place? Signed-off-by: Ilya Yanok <yanok at emcraft.com> Signed-off-by: Wes
- Hardaker <hardaker at users.sourceforge.net>
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/generic-ctx-get.m2i: added variables names to
-
- the generated error messages.
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/mib2c-conf.d/mfd-interactive-setup.m2c: Wording changes to
-
- help describe contexts better
-
-2011-08-02  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/Makefile.in, local/mib2c-conf.d/generic-get-U64.m2i: Added
-
- the missing U64 m2i file
-
-2011-08-03  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 6ad7e28ff9e5e4ebc1358ee39cc9796a44a1bee7 Merge: f2832e3
-
- 1e154ce Author: Bart Van Assche <bvanassche at acm.org> Date:   Wed Aug
- 3 19:15:24 2011 +0200
-
-2011-08-03  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 61b178f1ee8952aa03aa3b1ba51f4a6655e47f01 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Wed Aug 3 18:09:47 2011 +0200
-
-2011-08-03  Bart Van Assche <bvanassche at acm.org>
-
-   * include/net-snmp/types.h: Whitespace-only change: fix indentation
-
- of an #include directive
-
-2011-08-02  Bart Van Assche <bvanassche at acm.org>
-
-   * perl/NetSNMP.xs: CHANGES: Perl: Remove file perl/NetSNMP.xs
-
- because it breaks the Windows build.  To Wes: if you can tell me how to reproduce the problem you observed
- I'll try to find a portable fix.  This reverts commit d54871f5293675c8058ecce88fed5b646c836323 ("Added
- a bogus empty .xs file for bundling on newer perl that wants
- "something"").
-
-2011-08-02  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 0f489b199adab48b1633ebcaf5ff5a7c22c4cb89 Merge: f4eaa02
-
- 72a59bc Author: Bart Van Assche <bvanassche at acm.org> Date:   Tue Aug
- 2 10:11:53 2011 +0200
-
-2011-08-02  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 7fcc0b8032f8da5b7bc30059af0ba656eae71091 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Mon Aug 1 14:11:28 2011 +0200
-
-2011-08-02  Bart Van Assche <bvanassche at acm.org>
-
-   *   * 
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_dat
-       a_access.c: Fix a compiler warning in
-
-
- agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.c
-
-2011-08-01  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Add file names and patterns for output
-
- files generated during the Windows build
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Sort alphabetically
-
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Add apps/sshtosnmp
-
-
-2011-08-01  Bart Van Assche <bvanassche at acm.org>
-
-   *  .gitignore, perl/TrapReceiver/const-c.inc, 
-      perl/TrapReceiver/const-xs.inc: Remove two generated Perl files.
-
-
-2011-08-02  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit f4eaa02d9b076a67d7272de7eef8e9dfbf189bbf Merge: 40125d8
-
- adadcb9 Author: Thomas Anders <tanders at users.sourceforge.net> Date:
- Tue Aug 2 00:57:51 2011 +0200
-
-2011-08-02  Thomas Anders <tanders at users.sourceforge.net>
-
-   * dist/nsb-functions: suppress "ok" test output in nsb
-
-
-2011-08-01  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit 40125d8539cd89f952fbc24588c5e81e9cd821fe Author: Jan
-
- Safranek <jsafranek at users.sourceforge.net> Date:   Mon Aug 1
- 13:58:33 2011 +0200
-
-2011-08-01  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit 5acf0d2ceb3977964ed39f003073ba64138c2ebd Author: Thomas
-
- Anders <tanders at users.sourceforge.net> Date:   Sun Jul 31 23:57:41
- 2011 +0200
-
-2011-07-31  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit a7722a81f9cb7aa8670e7c238601362a31087acc Merge: 242e179
-
- ae9ac6c Author: Bart Van Assche <bvanassche at acm.org> Date:   Sun Jul
- 31 09:11:45 2011 +0200
-
-2011-07-31  Bart Van Assche <bvanassche at acm.org>
-
-   * apps/sshtosnmp.c: Fix an incorrect source code comment: there is
-
- no requirement in the ANSI C standard that stack variables should be
- initialized to zero.
-
-2011-07-31  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit 242e1797b2694a0689856ae36d05d3413aaf8d77 Author: Thomas
-
- Anders <tanders at users.sourceforge.net> Date:   Sun Jul 31 01:44:09
- 2011 +0200
-
-2011-07-30  Thomas Anders <tanders at users.sourceforge.net>
-
-   * snmplib/system.c: CHANGES: building: build fix for systems lacking
-
- getaddrinfo() and EAI_FAIL (e.g. HP-UX 10.20/11.00)
-
-2011-07-30  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 18df759f19b975c449d010bb0a162119bb68360d Merge: 54a44cb
-
- 7050718 Author: Bart Van Assche <bvanassche at acm.org> Date:   Sat Jul
- 30 16:39:13 2011 +0200
-
-2011-07-30  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 82d73fb11be3ae31f39c9d618d5388dc9b1006d7 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Fri Jul 29 20:51:27 2011 +0200
-
-2011-07-30  Thomas Anders <tanders at users.sourceforge.net>
-
-   *  configure, include/net-snmp/net-snmp-config.h.in, 
-      win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: autoreconf
-
-
-2011-07-30  Thomas Anders <tanders at users.sourceforge.net>
-
-   *  configure, include/net-snmp/net-snmp-config.h.in, 
-      win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: autoreconf
-
-
-2011-07-30  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit 109f6694d788f48ebd9fc0a1e90c45abc37bea20 Author: Thomas
-
- Anders <tanders at users.sourceforge.net> Date:   Sat Jul 30 14:22:19
- 2011 +0200
-
-2011-07-30  Thomas Anders <tanders at users.sourceforge.net>
-
-   * : commit 7d8100eed459a1ff1a20c067364fa6cb47491309 Merge: 116c24f
-
- 9e47ac4 Author: Thomas Anders <tanders at users.sourceforge.net> Date:
- Sat Jul 30 00:20:01 2011 +0200
-
-2011-07-30  Thomas Anders <tanders at users.sourceforge.net>
-
-   * dist/nsb-functions, dist/nsb-nightly, dist/nsb-package: minor nsb
-
- fixes/enhancements from my old svn tree
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 116c24f0f7fb3f99ba646730f61c56d1ae23ba41 Merge: 982fb7f
-
- 4fc0b8b Author: Bart Van Assche <bvanassche at acm.org> Date:   Fri Jul
- 29 11:31:20 2011 +0200
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit c48173c06a9eaadbf81e6b4962d55ef0a54db251 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Fri Jul 29 10:27:39 2011 +0200
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * configure, ltmain.sh, m4/libtool.m4: Rerun autoreconf
-
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Sort alphabetically
-
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Add apps/sshtosnmp
-
-
-2011-07-29  Bart Van Assche <bvanassche at acm.org>
-
-   *  agent/mibgroup/host/hr_storage.h, 
-      agent/mibgroup/host/hrh_storage.c: Fix two filenames in host mib
-
- source code comments.
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit 982fb7fd8bab25c4322aa62c50437036ce296e3e Merge: 1eda675
-
- 3458128 Author: Jan Safranek <jsafranek at users.sourceforge.net> Date:
- Thu Jul 28 16:24:03 2011 +0200
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: Fix potential
-
- sigsegv when an ifTable entry is removed as result of both
- interface_replace_old and interface_fadeout at the same time.
-
-2011-07-28  Bart Van Assche <bvanassche at acm.org>
-
-   * apps/sshtosnmp.c: Make apps/sshtosnmp.c build again (was broken by
-
- commit 612247cdf14c1e745c384cefe1f3fde3e445b347 that changed
- MSG_NOSIGNAL into NETSNMP_NOSIGNAL)
-
-2011-07-28  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 1eda6753b7fe7d3b3f217c09254ec02d0ee1d0ce Merge: db8b860
-
- a2f9ece Author: Bart Van Assche <bvanassche at acm.org> Date:   Thu Jul
- 28 15:32:28 2011 +0200
-
-2011-07-28  Niels Baggesen <nba at users.sourceforge.net>
-
-   * configure.d/config_os_functions, configure.d/config_os_libs1: 
-
- CHANGES: snmpd: Restore storage tables on Linux
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * man/snmpd.conf.5.def: Document interface_replace_old option.
-
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: CHANGES:
-
- snmpd: added 'interface_replace_old' option to remove old entries in
- ifTable when an interface with the same name as already exising one
- appears.  E.g. remove old ppp0 interface when new ppp0 shows up.
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * man/snmpd.conf.5.def: Document the interface_fadeout option.
-
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: Allow ifTable
-
- entries to be deleted immediately when appropriate interface
- disappears (i.e. interface_fadeout = 0 works as expected).
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: CHANGES:
-
- snmpd: added 'interface_fadeout' configuration option to set
- lifetime of ifTable entries of removed interfaces.  Previous lifetime was hardcoded 5 minutes, now it's configurable.
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit d62a0eb9070b4d8d9fe2bcfdb4d53d37ef814f9b Author: Jan
-
- Safranek <jsafranek at users.sourceforge.net> Date:   Thu Jul 28
- 14:49:08 2011 +0200
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: CHANGES:
-
- snmpd: added 'interface_replace_old' option to remove old entries in
- ifTable when an interface with the same name as already exising one
- appears.  E.g. remove old ppp0 interface when new ppp0 shows up.
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * man/snmpd.conf.5.def: Document the interface_fadeout option.
-
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: Allow ifTable
-
- entries to be deleted immediately when appropriate interface
- disappears (i.e. interface_fadeout = 0 works as expected).
-
-2011-07-28  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c: CHANGES:
-
- snmpd: added 'interface_fadeout' configuration option to set
- lifetime of ifTable entries of removed interfaces.  Previous lifetime was hardcoded 5 minutes, now it's configurable.
-
-2011-07-28  Thomas Anders <tanders at users.sourceforge.net>
-
-   *  apps/sshtosnmp.c, include/net-snmp/library/snmpUDPBaseDomain.h, 
-      include/net-snmp/library/snmpUDPIPv4BaseDomain.h, 
-      snmplib/transports/snmpUDPBaseDomain.c: CHANGES: building: build
-      fix
-
- for systems lacking MSG_DONTWAIT
-
-2011-07-27  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/mibgroup/mibII/tcp.c: CHANGES: snmpd: Make
-
- TCP-MIB::tcpCurrEstab work again. Was broken in 5.7 by the
- introduction of the "features" feature.
-
-2011-07-27  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit fb88074fbbc268c7f0509491535aec5fecb05684 Merge: a743ae5
-
- 3821273 Author: Jan Safranek <jsafranek at users.sourceforge.net> Date:
- Wed Jul 27 14:47:25 2011 +0200
-
-2011-07-27  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit 31fa07cd9ffde46d41d2b5838c3fc4d01548bfb5 Author: Jan
-
- Safranek <jsafranek at users.sourceforge.net> Date:   Wed Jul 27
- 14:45:47 2011 +0200
-
-2011-07-27  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * agent/snmpd.c: CHANGES: snmpd: run signal handlers when select()
-
- is interrupted.  This behavior is indicated in comment on line 1244, but it was not
- actually done.
-
-2011-07-26  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 2e9466d7f59d65d050277735e4ed9d30719ff752 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Tue Jul 26 13:10:04 2011 +0200
-
-2011-07-26  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 7708296760eaf5a80d8540746c9c249826fd1bfe Merge: ea11e5e
-
- cd6e382 Author: Bart Van Assche <bvanassche at acm.org> Date:   Tue Jul
- 26 16:21:41 2011 +0200
-
-2011-07-26  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/snmpUDPIPv6Domain.c: Clarify an IPv6 source code comment
-
-
-2011-07-26  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/agent_handler.c, man/netsnmp_handler.3: Spelling fix:
-
- definedy -> defined
-
-2011-07-26  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/helpers/stash_cache.c, man/netsnmp_stash_cache.3: Spelling
-
- fix: aleviate -> alleviate
-
-2011-07-26  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit dd2c47133493d5a00de6b3cdbcfac7e9d44b6ffe Merge: f9ccbc7
-
- ea11e5e Author: Jan Safranek <jsafranek at users.sourceforge.net> Date:
- Tue Jul 26 14:25:28 2011 +0200
-
-2011-07-26  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit c5a8464c42a94c250ee2dfa2a473109a734203d8 Author: Jan
-
- Safranek <jsafranek at users.sourceforge.net> Date:   Tue Jul 26
- 14:24:55 2011 +0200
-
-2011-07-25  Jan Safranek <jsafranek at users.sourceforge.net>
-
-   * : commit f9ccbc772666134d1d178b505af9ddcdd9ed4244 Author: Jan
-
- Safranek <jsafranek at users.sourceforge.net> Date:   Mon Jul 25
- 15:02:15 2011 +0200
-
-2011-07-20  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit b0c0a355d5f601a11be4914fbf713716abd30a29 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Tue Jul 19
- 18:36:11 2011 -0700
-
-2011-07-20  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit c14fc38614baf10d517136f0480907b7f03d8d74 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Wed Jul 20
- 13:44:59 2011 -0700
-
-2011-07-19  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/testhandler.c: remove broken whitespace lines that
-
- leads to reading confusion
-
-2011-07-20  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit ebdd216c074bf41cd3a084bd14689cf01c887b31 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Tue Jul 19
- 18:36:11 2011 -0700
-
-2011-07-19  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * .gitignore: updated gitignore to ignore a number of auto-generated
-
- files
-
-2011-07-19  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/mibgroup/testhandler.c: remove broken whitespace lines that
-
- leads to reading confusion
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit df5f70055cf9be33f05fb50abe2f5a81eac092ad Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Tue Jul 19 11:07:19 2011 +0200
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit f596f18242dcdfd6cf49c88da1d836c16e260cac Merge: 0f309b4
-
- 70dee4b Author: Bart Van Assche <bvanassche at acm.org> Date:   Tue Jul
- 19 11:33:28 2011 +0200
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   *  agent/agent_trap.c, agent/mibgroup/mibII/snmp_mib.c, 
-      agent/mibgroup/mibII/snmp_mib_5_5.c: 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.
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * agent/mibgroup/agentx/subagent.c: CHANGES: snmpd: PATCH: 3370645:
-
- from Bill Fenner: Fix AgentX subagent four byte leak
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: Test harness: do
-
- not invoke ISRUNNING() on MinGW.
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: Test harness:
-
- cleanup - remove code that became superfluous.
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: MinGW: Do not
-
- assume that kill.exe reports via its exit status whether the
- signalled process still exists.
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: CHANGES: testing:
-
- Remove the function WAITORDIE() from simple_eval_tools.sh since it
- is never invoked.
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: CHANGES: testing:
-
- Simplify WAITFOR() in simple_eval_tools.sh. The code that handled
- invocation of WAITFOR() with zero or one arguments has been dropped
- since WAITFOR() is always invoked with two arguments.
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: Test harness:
-
- minor simplification.
-
-2011-07-08  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/default/T059trapdtraphandle_simple: CHANGES:
-
- testing: Skip test 59 if SIGHUP is not supported. Makes test 59 pass
- on MinGW.
-
-2011-07-06  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: MinGW fix
-
-
-2011-07-06  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: Test framework
-
- refactoring: Introduce WAITFORNOTCOND().
-
-2011-07-05  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: CHANGES: testing:
-
- Make STOPPROG send SIGTERM repeatedly. This fixes a race where
- SIGTERM could be sent before the SIGTERM signal handler was set up,
- especially when running the regression tests under Valgrind.
- CHANGES: testing: Make the SNMP_VERBOSE=1 output even more verbose.
-
-2011-07-05  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: Test harness
-
- refactoring: introduce ECHOSENDSIGTERM() and ECHOSENDSIGKILL()
-
-2011-07-05  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: Fix a bug in
-
- testing/fulltests/support/simple_eval_tools.sh that was introduced
- in commit 938d75c.
-
-2011-07-01  Bart Van Assche <bvanassche at acm.org>
-
-   * .gitignore: .gitignore: Ignore *.exe files generated by the Win32
-
- build
-
-2011-07-04  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: CHANGES: testing:
-
- Test only once during a test whether the shell supports sub-second
- sleeping instead of repeatedly.
-
-2011-07-04  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_run: CHANGES: testing: Changed
-
- default timeout from 1s to 10s when the regression tests are run
- under Valgrind
-
-2011-07-04  Bart Van Assche <bvanassche at acm.org>
-
-   * testing/fulltests/support/simple_eval_tools.sh: CHANGES: testing:
-
- After having sent SIGTERM to snmpd or snmptrapd, wait until the
- process has stopped before sending SIGKILL. This race condition was
- hit most easily when running the regression tests under Valgrind.
- CHANGES: testing: Check PID file existence after having read it
- instead of before. This fixes the race condition where the PID file
- disappeared after the existence check and before it was read.
-
-2011-06-17  Bart Van Assche <bvassche at users.sourceforge.net>
-
-   * agent/mibgroup/agentx/protocol.c: Fix a bug in a debug statement
-
- introduced by patch 3310250 / r20494: use %ld to print a value of
- type oid instead of %d.  This patch is a combination of the following to V5.6 SVN patches: git-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20511 06827809-a52a-0410-b366-d66718629dedgit-svn-id:
-
- file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20512 06827809-a52a-0410-b366-d66718629ded
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 0f309b493c21d3c6914487514b41560754ffcdf9 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Tue Jul 19 08:37:50 2011 +0200
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit 1b7454bc281568470a1300476d2edb4f411e6029 Merge: 8d9dcc8
-
- 690ea7d Author: Bart Van Assche <bvanassche at acm.org> Date:   Tue Jul
- 19 08:31:28 2011 +0200
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * apps/snmptrapd.c: CHANGES: snmptrapd: Add missing newline
-
- character in a log message
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * apps/snmptrapd.c: CHANGES: snmptrapd: Invoke shutdown_perl() when
-
- shutting down
-
-2011-07-19  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/snmpUDPIPv6Domain.c: Spelling fix: branket -> bracket
-
-
-2011-07-17  Bart Van Assche <bvanassche at acm.org>
-
-   * configure, include/net-snmp/net-snmp-config.h.in: Run autoreconf.
-
- Fixes build breakage caused by patch
- d588ec853bd0531f212fcbf51b962b96c6828b59 (RPM 4.9 support)
-
-2011-07-17  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit d617d84f83fa69ed9fa9f98efc4afaf880d121f2 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Thu Jul 14 16:43:47 2011 +0200
-
-2011-07-14  Bart Van Assche <bvanassche at acm.org>
-
-   * snmplib/transports/snmpIPv6BaseDomain.c: CHANGES: snmplib: Make
-
- netsnmp_ipv6_fmtaddr() show the IPv6 scope ID
-
-2011-07-17  Bart Van Assche <bvanassche at acm.org>
-
-   *  configure, configure.d/config_os_functions, 
-      include/net-snmp/net-snmp-config.h.in, 
-      snmplib/transports/snmpIPv6BaseDomain.c, 
-      win32/net-snmp/net-snmp-config.h, 
-      win32/net-snmp/net-snmp-config.h.in: CHANGES: Win32: Add support
-      for
-
- IPv6 address scope ID
-
-2011-07-17  Bart Van Assche <bvanassche at acm.org>
-
-   * configure, include/net-snmp/net-snmp-config.h.in: Run autoreconf
-
-
-2011-07-17  Bart Van Assche <bvanassche at acm.org>
-
-   * : commit a56721a3e7754e389daa7e8a3d5792899edc9de3 Author: Bart Van
-
- Assche <bvanassche at acm.org> Date:   Thu Jul 14 16:18:32 2011 +0200
-
-2011-07-15  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 844d4ce867bf3abe7b7536c5dbfba401937a8d4a Merge: eed0198
-
- 61036a8 Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Fri Jul 15 15:33:10 2011 -0700
-
-2011-07-15  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit 851bcf53fcd13cdf0ba9f12e5d603e73f8bb9611 Author: Wes
-
- Hardaker <hardaker at users.sourceforge.net> Date:   Fri Jul 15
- 15:32:49 2011 -0700
-
-2011-07-14  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * agent/helpers/cache_handler.c: fix a typo
-
-
-2011-07-13  Robert Story <rstory at localhost>
-
-   * snmplib/parse.c: CHANGES: snmplib:  tweak patch 3044888 to restore
-
- proper non-error return during mib loading
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : added 5.7 patches to the branch list and fix the release file
-
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : added 5.7 patches to the branch list
-
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/release: a copy of the release file applied to the older
-
- branches
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added 5.7 patches
-
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * : commit c431231e8f0a39d1950bc72c32e3402f90fa8030 Merge: 56fee40
-
- a2ac24d Author: Wes Hardaker <hardaker at users.sourceforge.net> Date:
- Mon Jul 11 19:33:17 2011 -0700
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * local/gittools/shell-functions: added a copy of the
-
- shell-functions to the older branch
-
-2011-07-11  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/release: a copy of the release file applied to the older
-
- branches
-
-----------------------------------------------------------------------
-
-Changes: V5.7.rc3 -> V5.7
-
-2011-07-01  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile, 
-      dist/net-snmp.spec: Version number update: 5.7
-
-
-2011-07-01  Robert Story <rstory at users.sourceforge.net>
-
-   *  include/net-snmp/library/snmpTLSBaseDomain.h, 
-      snmplib/transports/snmpDTLSUDPDomain.c, 
-      snmplib/transports/snmpIPv4BaseDomain.c, 
-      snmplib/transports/snmpTLSBaseDomain.c: Revert "fix dtlsudp
-
- transport address format function" This reverts commit 2ab3a6e6f2fcc1ff3e5f0fb5dc5d05e498820d89.   - for some reason I saw 'rc' and my brain interpreted it as    'pre-release'. What can I say, it was late. :-/
-
-2011-07-01  Robert Story <rstory at localhost>
-
-   *  include/net-snmp/library/snmpTLSBaseDomain.h, 
-      snmplib/transports/snmpDTLSUDPDomain.c, 
-      snmplib/transports/snmpIPv4BaseDomain.c, 
-      snmplib/transports/snmpTLSBaseDomain.c: fix dtlsudp transport
-
- address format function  - update ipv4 fmtaddr to handle sockaddr and to check    size before assuming data is addr pair  - move dtlsudp functions to extract addr(s) to tlsbase
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-   * dist/makerelease.xml: fix tag pushing
-
-----------------------------------------------------------------------
-
-Changes: V5.7.rc2 -> V5.7.rc3
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* FAQ, README, configure, configure.ac, dist/Makefile,
-	dist/net-snmp.spec: Version number update: 5.7.rc3
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* dist/makerelease.xml: remove unneeded comment
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* dist/makerelease.xml: misc publication fixes found while
-	publishing
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* include/net-snmp/net-snmp-config.h.in: ran autoheader to add the
-	missing template ifdefs
-
-----------------------------------------------------------------------
-
-Changes: V5.7.rc1 -> V5.7.rc2
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* dist/makerelease.xml: use the new run-autoconf script
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* dist/run-autoconf: A script to invoke the correct version of the
-	autoconf tool
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* dist/makerelease.xml: remaining command line changes for svn ->
-	git
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* dist/makerelease.xml: make the branch echo output and svn update
-	converted to git equivalents
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* dist/makerelease.xml: pull the branch info from git
-
-2011-06-29  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* dist/release: noted that the master branch is in rc state
-
-2011-06-28  Wes Hardaker <opensource at hardakers.net>
-
-	* FAQ: Mention the Git wiki page
-
-2011-06-28  Wes Hardaker <opensource at hardakers.net>
-
-	* local/gittools/shell-functions: use git merge with the --log
-	option
-
-2011-06-28  Bart Van Assche <bvanassche at acm.org>
-
-	* .gitignore: Add .gitignore
-
-2011-06-28  Wes Hardaker <opensource at hardakers.net>
-
-	* FAQ: We're now using git!
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* local/gittools/shell-functions: use rebase to put local changes at
-	the top of the remote branches git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20533 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* local/gittools/shell-functions: added a feature to not roll
-	branches currenly in rc phase git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20532 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* local/gittools/shell-functions: added a nsrollup function for
-	rolling branches upward.  git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20531 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* local/gittools/shell-functions: created an nspatchapply function
-	to apply a previously tested patch git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20530 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* local/gittools/shell-functions: added a nstrypatch function to
-	test patch application against various branches git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20529 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* local/gittools/shell-functions: added verbose output git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20528 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* local/gittools/shell-functions: more prefix changes and better
-	setting of default values git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20527 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-27  Wes Hardaker <hardaker at users.sourceforge.net>
-
-	* local/gittools/shell-functions: use ns prefixes instead of generic
-	snmp prefixes git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@20526 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-24  Dave Shield <dts12 at users.sourceforge.net>
-
-	* ChangeLog: version update git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20524 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-24  Dave Shield <dts12 at users.sourceforge.net>
-
-	* configure, configure.in, include/net-snmp/net-snmp-config.h.in: 
-	Missing check for rpmts.h git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20523 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-24  Dave Shield <dts12 at users.sourceforge.net>
-
-	* configure: Version number update git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20522 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-24  Dave Shield <dts12 at users.sourceforge.net>
-
-	* man/netsnmp_agent.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_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_request_info_s.3,
-	man/netsnmp_netsnmp_table_registration_info_s.3,
-	man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3, man/netsnmp_util.3,
-	man/netsnmp_utilities.3, man/netsnmp_variable_list.3,
-	man/netsnmp_watcher.3: documentation update git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20521 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-24  Dave Shield <dts12 at users.sourceforge.net>
-
-	* FAQ, README, configure, configure.in, dist/net-snmp.spec,
-	snmplib/snmp_version.c: Version number update git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20520 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-23  Dave Shield <dts12 at users.sourceforge.net>
-
-	* agent/mibgroup/host/hr_swinst.c, configure, configure.in,
-	include/net-snmp/net-snmp-config.h.in: Tweak RPM handling to work
-	with library version 4.9 Based on a patch by Jan Safranek git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20519 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-22  Dave Shield <dts12 at users.sourceforge.net>
-
-	* agent/mibgroup/host/hr_swinst.c: 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-4-patches@20518 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-22  Dave Shield <dts12 at users.sourceforge.net>
-
-	* ChangeLog: version update git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20516 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-22  Dave Shield <dts12 at users.sourceforge.net>
-
-	* configure: Version number update git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20515 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-22  Dave Shield <dts12 at users.sourceforge.net>
-
-	* FAQ, README, configure, configure.in, dist/net-snmp.spec,
-	snmplib/snmp_version.c: Version number update git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20514 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-21  Dave Shield <dts12 at users.sourceforge.net>
-
-	* agent/mibgroup/host/data_access/swinst.h,
-	agent/mibgroup/host/data_access/swinst_pkginfo.c: 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
-
-2011-06-21  Dave Shield <dts12 at users.sourceforge.net>
-
-	* agent/mibgroup/host/data_access/swinst.h,
-	agent/mibgroup/host/data_access/swinst_pkginfo.c: 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-5-patches@20513 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-21  Dave Shield <dts12 at users.sourceforge.net>
-
-	* agent/mibgroup/host/data_access/swinst.h,
-	agent/mibgroup/host/data_access/swinst_pkginfo.c: 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/trunk@20513 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-19  Bart Van Assche <bvassche at users.sourceforge.net>
-
-	* agent/mibgroup/agentx/protocol.c: 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
-
-2011-06-19  Bart Van Assche <bvassche at users.sourceforge.net>
-
-	* agent/mibgroup/agentx/protocol.c: 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-5-patches@20512 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-17  Bart Van Assche <bvassche at users.sourceforge.net>
-
-	* agent/mibgroup/agentx/protocol.c: 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
-
-2011-06-17  Bart Van Assche <bvassche at users.sourceforge.net>
-
-	* agent/mibgroup/agentx/protocol.c: 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-5-patches@20511 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-17  Bart Van Assche <bvassche at users.sourceforge.net>
-
-	* agent/helpers/cache_handler.c: Use %p to print a pointer instead
-	of %ld git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20510 06827809-a52a-0410-b366-d66718629ded
-
-2011-06-17  Bart Van Assche <bvassche at users.sourceforge.net>
-
-	* agent/helpers/cache_handler.c: Use %p to print a pointer instead
-	of %ld git-svn-id:
-
-	file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20510 06827809-a52a-0410-b366-d66718629ded
-
-----------------------------------------------------------------------
-
-Changes: V5.7.pre2 -> V5.7.rc1
-
-2011-06-13 16:11  hardaker
-
-   * configure:
-
-   run correct version of autoconf
-
-2011-06-13 16:10  hardaker
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile,   
-      dist/net-snmp.spec:
-
-   Version number update
-
-2011-06-13 16:04  hardaker
-
-   * configure:
-
-   ran autoconf
-
-2011-06-10 06:03  nba
-
-   * configure.d/config_modules_security_modules:
-
-   Fix build of snmpusm when additional sec modules requested
-
-2011-06-09 21:13  nba
-
-   * snmplib/cert_util.c:
-
-   Include stdॆअआॆअ�ib.h to make dmalloc happy
-
-2011-06-09 14:35  rstory
-
-   * snmplib/snmp_transport.c:
-
-   CHANGES: BUG: 3151845: fix multiple registrations of snmp
-   transport handler
-
-2011-06-08 16:34  rstory
-
-   *  include/net-snmp/library/default_store.h, snmplib/snmp_api.c,   
-      snmplib/system.c:
-
-   more dnssec tweaks
-   
-   - create an app-global validator context for use with all
-   validation routines. mainly useful for long-lived apps.
-   - use the apptype as the validator 'scope', allowing
-   for app-specific configuration of validation via libval's
-   dnsval.conf
-
-2011-06-07 16:48  rstory
-
-   * include/net-snmp/library/default_store.h:
-
-   add a max define for each default store type
-   
-   not actually used, just a helpful reminder for those adding
-   new ids who might not think to check NETSNMP_DS_MAX_SUBIDS.
-   (the bool list is rapidly approaching the current limit.)
-
-2011-06-07 16:46  rstory
-
-   * testing/fulltests/support/simple_run:
-
-   mention builddir when complaining about not being run from source
-   tree
-
-2011-06-01 22:24  hardaker
-
-   *  agent/mibgroup/agentx/master.c,   
-      agent/mibgroup/agentx/master_admin.c,   
-      agent/mibgroup/agentx/protocol.c,   
-      agent/mibgroup/agentx/subagent.c:
-
-   CHANGES: snmpd: patch 3310250: from fenner: misc fixes for
-   debugging output of agentx
-
-
-
-----------------------------------------------------------------------
-
-Changes: V5.6 -> V5.7.pre2
-
-2011-05-10 00:20  hardaker
-
-   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
-      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
-      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
-
-   make depend
-
-2011-05-10 00:20  hardaker
-
-   *  agent/mibgroup/deliver/deliverByNotify.c,   
-      agent/mibgroup/hardware/cpu/cpu_linux.c,   
-      agent/mibgroup/ip-mib/data_access/arp_linux.c:
-
-   C++ -> C comments
-
-2011-05-10 00:17  hardaker
-
-   * NEWS:
-
-   NEWS update for 5.7
-
-2011-05-09 23:14  hardaker
-
-   * include/net-snmp/library/oid.h:
-
-   revert the oid typedef resizing from r17809 because it broke
-   backwards compat, as pointed out by users on the -coders list
-
-2011-05-09 22:51  hardaker
-
-   * configure:
-
-   use proper autoconf version
-
-2011-05-09 22:38  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
-
-2011-05-09 22:38  hardaker
-
-   * Makefile.top:
-
-   version update
-
-2011-05-09 22:10  hardaker
-
-   * mibs/UCD-SNMP-MIB.txt:
-
-   added a missing 0 in the revision date
-
-2011-05-09 20:52  nba
-
-   * agent/mibgroup/if-mib/data_access/interface_ioctl.c:
-
-   Use symbolic named for ifType values
-
-2011-05-09 20:43  nba
-
-   * mibs/rfcmibs.diff:
-
-   IANA has fixed the IANA-IPPM-METRICS-REGISTRY-MIB
-
-2011-05-09 15:24  hardaker
-
-   * mibs/UCD-SNMP-MIB.txt:
-
-   added a new REVISION clause to list the changes in the the recent
-   update
-
-2011-05-09 14:19  hardaker
-
-   * NEWS:
-
-   added ping/traceroute mibs note
-
-2011-05-09 14:19  hardaker
-
-   * agent/mibgroup/ucd-snmp/proxy.c:
-
-   we actually want to use the base OID as the starting point, not
-   the reg OID.
-
-2011-05-09 14:18  hardaker
-
-   * agent/mibgroup/ucd-snmp/proxy.c:
-
-   fixed the proxy support to do a proper OID less than OID compare.
-   We actually don't care about the length of the original request,
-   only
-   that it was before the registered rebase
-
-2011-05-09 14:18  hardaker
-
-   * agent/mibgroup/ucd-snmp/proxy.c:
-
-   CHANGES: patch 3140833: from jsafranek: fix proxy GETNEXT
-   requests
-   When OIDs requested are below the proxy request remap, we need to
-   not
-   include any OIDs that might be in the space between the original
-   OID
-   and the remapped OID. This patch fudges the request so that it
-   fixes
-   the request OID so it's just before the remapped proxy range.
-
-2011-05-09 14:18  hardaker
-
-   *  agent/mibgroup/hardware/cpu/cpu.c,   
-      agent/mibgroup/hardware/cpu/cpu_linux.c,   
-      agent/mibgroup/ucd-snmp/vmstat.c,   
-      agent/mibgroup/ucd-snmp/vmstat.h,   
-      include/net-snmp/agent/hardware/cpu.h, mibs/UCD-SNMP-MIB.txt:
-
-   NEWS: PATCH 3167325: from krisztoforo: UCD-SNMP/SystemStats: add
-   variables
-   to report cpusteal, cpuguest, cpuguestnice
-
-2011-05-09 14:17  hardaker
-
-   * agent/mibgroup/if-mib/data_access/interface.c:
-
-   CHANGES: patch 3184026: from eivnaes: Avoid constant refresh of
-   interface statistics
-
-2011-05-09 10:44  bvassche
-
-   *  agent/snmp_agent.c, apps/snmpdelta.c, snmplib/scapi.c,   
-      snmplib/snmp_api.c, snmplib/system.c, snmplib/tools.c:
-
-   Fixed several compiler warnings reported by the MSVC compiler.
-
-2011-05-09 10:35  bvassche
-
-   * snmplib/gettimeofday.c:
-
-   Win32/MSVC: Fixed a compiler warning.
-
-2011-05-09 10:33  bvassche
-
-   * agent/mibgroup/mibII/var_route.c:
-
-   CHANGES: agent: Fixed a year-2038 bug in the implementation of
-   ipRouteTable.
-
-2011-05-08 20:01  nba
-
-   *  agent/mibgroup/disman/ping/pingCtlTable.c,   
-      agent/mibgroup/disman/ping/pingCtlTable.h,   
-      agent/mibgroup/disman/ping/pingProbeHistoryTable.c,   
-      agent/mibgroup/disman/ping/pingResultsTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h,   
-      agent/mibgroup/disman/traceroute/traceRouteHopsTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteProbeHistoryTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteResultsTable.c:
-
-   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 ...)
-
-2011-05-07 15:22  bvassche
-
-   * perl/SNMP/SNMP.xs:
-
-   Removed an unused label from perl/SNMP/SNMP.xs.
-
-2011-05-07 14:48  bvassche
-
-   *  agent/agent_registry.c, agent/helpers/old_api.c,   
-      include/net-snmp/agent/agent_registry.h,   
-      include/net-snmp/agent/old_api.h:
-
-   CHANGES: snmpd: Declare the OID argument type of MIB registration
-   functions as 'const oid *' instead of 'oid *' since these
-   functions do not modify the OID.
-
-2011-05-07 14:44  bvassche
-
-   *  agent/mibgroup/ip-mib/data_access/arp_linux.c,   
-      agent/mibgroup/ip-mib/data_access/arp_netlink.c,   
-      include/net-snmp/data_access/arp.h:
-
-   Use the correct data type for the 'cache expired' variable: char
-   instead of int.
-
-2011-05-07 14:43  bvassche
-
-   * agent/mibgroup/ucd-snmp/dlmod.c:
-
-   Fixed a compiler warning that was introduced in r20151.
-
-2011-05-07 13:15  bvassche
-
-   * snmplib/winservice.c:
-
-   Win32: improved source code consistency by using LPCTSTR instead
-   of LPCSTR. Note: this does not mean that Unicode builds are
-   supported.
-
-2011-05-07 13:14  nba
-
-   * agent/mibgroup/ip-mib/data_access/arp_netlink.c:
-
-   Add file forgotten in r20353
-
-2011-05-06 23:32  hardaker
-
-   *  agent/helpers/cache_handler.c,   
-      agent/mibgroup/ip-mib/data_access/arp.h,   
-      agent/mibgroup/ip-mib/data_access/arp_common.c,   
-      agent/mibgroup/ip-mib/data_access/arp_linux.c,   
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h,  
-      
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c,
-         include/net-snmp/agent/cache_handler.h,   
-      include/net-snmp/data_access/arp.h:
-
-   CHANGES: snmpd: PATCH 312596: from fabled80: listen for netlink
-   change events for the arp-related tables
-
-2011-05-06 18:36  rstory
-
-   * snmplib/system.c:
-
-   NEWS: snmplib: add optional support for local DNSSEC validation
-   of hostnames
-   
-   - optional at configure time: --with-local-dnssec-validation
-   - requires DNSSEC-Tool validation libraries
-   - initial support, for systems with getaddrinfo. support for
-   additional
-   resolver interfaces coming soon.
-   - also TODO: flag for ignoring validatoin errors (log & continue)
-
-2011-05-06 18:36  rstory
-
-   * include/net-snmp/library/parse.h:
-
-   move unused (and too generic) token within UCD_COMPATIBLE ifdef
-   
-   - MAXLABEL conflicts with <arpa/nameser.h>
-   - added NETSNMP_MAXLABEL
-
-2011-05-06 18:36  rstory
-
-   *  agent/Makefile.in, apps/Makefile.in,   
-      apps/snmpnetstat/Makefile.in, configure,   
-      configure.d/config_os_misc2,   
-      configure.d/config_project_with_enable,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   update configure/Makefiles for DNSSEC local validation option
-
-2011-05-06 14:38  hardaker
-
-   * agent/mibgroup/if-mib/data_access/interface_sysctl.c:
-
-   removed the accidental broken feature require line that got half
-   inserted
-
-2011-05-06 13:50  dts12
-
-   * win32/dist/installer/net-snmp.nsi:
-
-   Fix incomplete uninstall configuration:
-   - broken removal of Microsoft DLL
-   - remove assorted new MIBs and header files
-
-2011-05-06 12:58  dts12
-
-   * win32/dist/build-binary.pl:
-
-   Support Tar/GZip command paths containing spaces
-
-2011-05-06 12:57  dts12
-
-   * win32/dist/build-binary.pl:
-
-   Report GZip command correctly
-
-2011-05-05 21:48  nba
-
-   *  snmplib/transports/snmpUDPBaseDomain.c,   
-      snmplib/transports/snmpUDPDomain.c:
-
-   Fix for DragonFly BSD (does not define IP_SENDSRCADDR)
-
-2011-05-05 20:29  nba
-
-   *  include/net-snmp/library/snmpUDPBaseDomain.h,   
-      include/net-snmp/library/snmpUDPIPv4BaseDomain.h:
-
-   Fix spelling of SO_RECVDSTADDR
-
-2011-05-05 18:54  rstory
-
-   *  include/net-snmp/library/default_store.h, man/snmp.conf.5.def,   
-      snmplib/snmp_api.c:
-
-   NEWS: apps: add snmp.conf tokens for timeouts and retries
-
-2011-05-05 06:07  bvassche
-
-   * snmplib/tools.c, testing/fulltests/support/simple_TESTCONF.sh:
-
-   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.
-
-2011-05-05 05:57  bvassche
-
-   *  win32/encode_keychange/encode_keychange.vcproj,   
-      win32/libagent/libagent.vcproj,   
-      win32/libnetsnmptrapd/libnetsnmptrapd.vcproj,   
-      win32/libsnmp/libsnmp.vcproj,   
-      win32/libsnmp_dll/libsnmp_dll.vcproj,   
-      win32/netsnmpmibs/netsnmpmibs.vcproj,   
-      win32/snmpbulkget/snmpbulkget.vcproj,   
-      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd/snmpd.vcproj, 
-        win32/snmpdelta/snmpdelta.vcproj, win32/snmpdf/snmpdf.vcproj,   
-      win32/snmpget/snmpget.vcproj,   
-      win32/snmpgetnext/snmpgetnext.vcproj,   
-      win32/snmpnetstat/snmpnetstat.vcproj,   
-      win32/snmpset/snmpset.vcproj, win32/snmpstatus/snmpstatus.vcproj, 
-        win32/snmptable/snmptable.vcproj,
-      win32/snmptest/snmptest.vcproj,   
-      win32/snmptranslate/snmptranslate.vcproj,   
-      win32/snmptrap/snmptrap.vcproj, win32/snmptrapd/snmptrapd.vcproj, 
-        win32/snmpusm/snmpusm.vcproj, win32/snmpvacm/snmpvacm.vcproj,   
-      win32/snmpwalk/snmpwalk.vcproj, win32/win32.sln,   
-      win32/win32dll.sln:
-
-   Removed Visual Studio 2005 solution and project files again since
-   Visual Studio 2010 refuses to load these.
-
-2011-05-04 23:43  hardaker
-
-   * Makefile.in:
-
-   clean the perl/python feature leftovers
-
-2011-05-04 23:42  hardaker
-
-   * local/minimalist/sizetests:
-
-   fix mib module invocation
-
-2011-05-04 20:57  hardaker
-
-   * agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c:
-
-   fix ifdef typo
-
-2011-05-04 20:56  hardaker
-
-   * Makefile.in:
-
-   fix perl/python feature dependencies
-
-2011-05-04 20:56  hardaker
-
-   * agent/auto_nlist.c:
-
-   reverted auto_nlist macro usage; the function is used in headers
-
-2011-05-04 20:56  hardaker
-
-   * local/minimalist/sizetests:
-
-   Add a -T option to run 'make test'
-
-2011-05-04 20:56  hardaker
-
-   * apps/Makefile.in:
-
-   fix the encode_keychange .ft filename
-
-2011-05-04 16:20  hardaker
-
-   * perl/TrapReceiver/netsnmp-feature-definitions.h, snmplib/tools.c:
-
-   fix the features required by the TrapReceiver module
-
-2011-05-04 16:20  hardaker
-
-   * Makefile.in:
-
-   Add the TrapReceiver to the list of perl modules
-
-2011-05-04 14:42  hardaker
-
-   * perl/SNMP/SNMP.xs:
-
-   use the newer Net-SNMP APIs, rather than the older UCD ones
-
-2011-05-04 14:41  hardaker
-
-   * perl/SNMP/SNMP.xs:
-
-   remove SET code when under --read-only mode
-
-2011-05-04 14:41  hardaker
-
-   * agent/mibgroup/disman/event/mteTriggerTable.c:
-
-   require check_vb_uint
-
-2011-05-04 14:41  hardaker
-
-   * 
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_subagent.c,
-         agent/snmp_agent.c, local/mib2c-conf.d/subagent.m2c,   
-      python/netsnmp/netsnmp-feature-definitions.h,   
-      snmplib/snmp_logging.c:
-
-   last of the perl-used feature functions
-
-2011-05-04 14:40  hardaker
-
-   *  agent/mibgroup/Rmon/event.c, agent/mibgroup/agentx/subagent.c,   
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_subagent.c,
-         agent/mibgroup/smux/smux.c, apps/snmptrapd_handlers.c,   
-      local/mib2c-conf.d/subagent.m2c, snmplib/mib.c, snmplib/parse.c:
-
-   started the final set of function removals for features required
-   by perl/python
-
-2011-05-04 14:39  hardaker
-
-   * local/mib2c-conf.d/generic-source-includes.m2i:
-
-   added the net-snmp-features.h header
-
-2011-05-04 14:39  hardaker
-
-   *  perl/OID/netsnmp-feature-definitions.h,   
-      perl/SNMP/netsnmp-feature-definitions.h,   
-      perl/TrapReceiver/netsnmp-feature-definitions.h,   
-      perl/agent/netsnmp-feature-definitions.h:
-
-   Added perl feature requirements
-
-2011-05-04 14:39  hardaker
-
-   *  Makefile.in, Makefile.rules, configure,   
-      configure.d/config_project_perl_python,   
-      perl/ASN/netsnmp-feature-definitions.h,   
-      perl/OID/netsnmp-feature-definitions.h,   
-      perl/SNMP/netsnmp-feature-definitions.h,   
-      perl/agent/netsnmp-feature-definitions.h,   
-      perl/default_store/netsnmp-feature-definitions.h:
-
-   hopefully working rules to apply feature requirements to perl and
-   python
-
-2011-05-04 14:38  hardaker
-
-   *  agent/mibgroup/if-mib/data_access/interface.c,   
-      agent/mibgroup/if-mib/data_access/interface_ioctl.c,   
-      agent/mibgroup/if-mib/data_access/interface_linux.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_common.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_linux.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c,   
-      agent/snmp_agent.c:
-
-   more changes to remove unneeded functions primarily when write
-   mode is turned off
-
-2011-05-04 14:37  hardaker
-
-   * snmplib/snmp_logging.c:
-
-   change the want invocation to only default to exclude external
-   hooks
-
-2011-05-04 14:37  hardaker
-
-   * local/minimalist/find-unused-code:
-
-   search through .xs files for function invocations
-
-2011-05-04 14:37  hardaker
-
-   * agent/auto_nlist.c:
-
-   forgot a semicolon
-
-2011-05-04 14:37  hardaker
-
-   *  agent/mibgroup/Rmon/alarmTable.c,   
-      agent/mibgroup/disman/event/mteEventTable.c,   
-      agent/mibgroup/disman/event/mteTriggerTable.c,   
-      agent/mibgroup/disman/expr/expExpressionTable.c:
-
-   iquery pdu sessions are only needed in write mode.
-
-2011-05-04 14:36  hardaker
-
-   * apps/Makefile.in:
-
-   fix feature detection of sometimes-built applications
-
-2011-05-04 14:36  hardaker
-
-   * agent/auto_nlist.c:
-
-   use the feature_unused macro for making an empty file for
-   consistency
-
-2011-05-04 14:36  hardaker
-
-   *  agent/helpers/table_dataset.c, agent/mibgroup/Rmon/alarmTable.c,  
-       agent/mibgroup/disman/event/mteEventTable.c,   
-      agent/mibgroup/disman/schedule/schedTable.c,   
-      agent/mibgroup/hardware/fsys/hw_fsys.c,   
-      agent/mibgroup/host/data_access/swrun.c,   
-      agent/mibgroup/host/hr_network.c,   
-      agent/mibgroup/if-mib/data_access/interface.c,   
-      agent/mibgroup/if-mib/data_access/interface_linux.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/ip-mib/data_access/ipaddress_common.c,   
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c,
-         agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c,   
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c,
-         agent/mibgroup/mibII/interfaces.c,
-      agent/mibgroup/mibII/ipAddr.c,   
-      agent/mibgroup/mibII/var_route.c,   
-      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
-         agent/mibgroup/ucd-snmp/proc.c,   
-      agent/mibgroup/utilities/iquery.c, apps/snmptls.c,   
-      snmplib/cert_util.c, snmplib/mib.c, snmplib/snmp_openssl.c,   
-      snmplib/transports/snmpDTLSUDPDomain.c:
-
-   Another sweep for unused functions when read_only mode is turned
-   on
-
-2011-05-04 14:34  hardaker
-
-   *  agent/helpers/table_tdata.c, agent/mibgroup/Rmon/alarmTable.c,   
-      agent/mibgroup/agent/extend.c, agent/mibgroup/agent/nsLogging.c,  
-       agent/mibgroup/agent/nsVacmAccessTable.c,   
-      agent/mibgroup/disman/event/mteEvent.c,   
-      agent/mibgroup/disman/event/mteEventNotificationTable.c,   
-      agent/mibgroup/disman/event/mteEventSetTable.c,   
-      agent/mibgroup/disman/event/mteEventTable.c,   
-      agent/mibgroup/disman/event/mteObjectsTable.c,   
-      agent/mibgroup/disman/event/mteTrigger.c,   
-      agent/mibgroup/disman/event/mteTriggerBooleanTable.c,   
-      agent/mibgroup/disman/event/mteTriggerDeltaTable.c,   
-      agent/mibgroup/disman/event/mteTriggerExistenceTable.c,   
-      agent/mibgroup/disman/event/mteTriggerTable.c,   
-      agent/mibgroup/disman/event/mteTriggerThresholdTable.c,   
-      agent/mibgroup/disman/expr/expExpressionTable.c,   
-      agent/mibgroup/disman/expr/expObjectTable.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/schedule/schedTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c,   
-      agent/mibgroup/header_complex.c,   
-      agent/mibgroup/if-mib/data_access/interface.c,   
-      agent/mibgroup/if-mib/data_access/interface_sysctl.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable.c,   
-      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c,   
-      agent/mibgroup/mibII/snmp_mib.c,   
-      agent/mibgroup/mibII/snmp_mib_5_5.c,   
-      agent/mibgroup/notification/snmpNotifyFilterProfileTable.c,   
-      agent/mibgroup/notification/snmpNotifyTable.c,   
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c,
-        
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
-        
-      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
-       
-      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
-        
-      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c,
-         snmplib/check_varbind.c:
-
-   mark a slew of functions as features that are only needed with
-   write_support
-
-2011-05-04 14:32  hardaker
-
-   * local/minimalist/find-unused-code:
-
-   run grep with -n
-
-2011-05-04 14:32  hardaker
-
-   * snmplib/snmp_transport.c, snmplib/transports/snmpDTLSUDPDomain.c:
-
-   featurize netsnmp_sockaddr_size
-
-2011-05-04 14:32  hardaker
-
-   * agent/mibgroup/ip-mib/data_access/ipaddress_linux.c:
-
-   remove a feature_require not actually needed.
-
-2011-05-04 14:31  hardaker
-
-   * snmplib/cert_util.c, snmplib/container.c:
-
-   mark SUBCONTAINER_FIND as a feature
-
-2011-05-04 14:31  hardaker
-
-   * snmplib/snmp_client.c, snmplib/snmptsm.c:
-
-   the row creation API is only used in the TSM implementation
-
-2011-05-04 14:31  hardaker
-
-   * snmplib/snmp_api.c, snmplib/snmptsm.c:
-
-   the newer context engineID probing is only needed iff TSM is in
-   use
-
-2011-05-04 14:30  hardaker
-
-   * snmplib/dir_utils.c:
-
-   fix an ifdef typo
-
-2011-05-04 14:30  hardaker
-
-   * snmplib/snmp_openssl.c:
-
-   moved fetaure child_of statements to the top of the file
-
-2011-05-04 14:30  hardaker
-
-   *  snmplib/cert_util.c, snmplib/container.c, snmplib/dir_utils.c,   
-      snmplib/snmp_openssl.c:
-
-   marked a couple of rarely used container functions.
-
-2011-05-04 14:29  hardaker
-
-   *  agent/mibgroup/if-mib/data_access/interface_linux.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_linux.c,   
-      agent/mibgroup/util_funcs.c:
-
-   split out the prefix_info feature into sub-features
-
-2011-05-04 14:29  hardaker
-
-   * 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.c:
-
-   mark the accessor functions as unneeded
-
-2011-05-04 14:29  hardaker
-
-   * agent/mibgroup/host/data_access/swinst.c:
-
-   fix a child_of statement with a copy/paste error
-
-2011-05-04 14:28  hardaker
-
-   * agent/helpers/table_tdata.c:
-
-   the container row-remove is only needed if the tdata remove_row
-   is needed
-
-2011-05-04 14:28  hardaker
-
-   *  agent/helpers/table_tdata.c, agent/mibgroup/Rmon/alarmTable.c,   
-      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
-       
-      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
-        
-      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c:
-
-   feature marking of unused tdata functions
-   table_tdata_delete_table
-   table_tdata_extract_table
-   table_tdata_remove_row
-
-2011-05-04 14:27  hardaker
-
-   *  agent/helpers/table_dataset.c,   
-      agent/mibgroup/disman/mteEventNotificationTable.c,   
-      agent/mibgroup/disman/mteEventTable.c,   
-      agent/mibgroup/examples/data_set.c:
-
-   removal of some rarely used functions
-   table_set_multi_add_default_row
-   table_dataset_unregister_auto_data_table
-
-2011-05-04 14:27  hardaker
-
-   * local/minimalist/sizetests:
-
-   Added a definition to incorporate read_only/notify_only
-
-2011-05-04 14:27  hardaker
-
-   * agent/helpers/table_data.c:
-
-   added a missing feature definition line
-
-2011-05-04 14:26  hardaker
-
-   * agent/Makefile.in:
-
-   added back in missing mibgroup feature definition list
-
-2011-05-04 14:26  hardaker
-
-   * local/minimalist/sizetests:
-
-   Include the original base flags to ensure --with-defaults gets
-   picked up
-
-2011-05-04 14:26  hardaker
-
-   * local/minimalist/sizetests:
-
-   fix usage
-
-2011-05-04 14:26  hardaker
-
-   * local/minimalist/sizetests:
-
-   Added a -b flag for base arguments to start from
-
-2011-05-04 14:25  hardaker
-
-   * local/minimalist/sizetests:
-
-   default to a linear seach of size tests, rather than exponential
-
-2011-05-03 18:55  bvassche
-
-   *  include/net-snmp/library/snmpUDPBaseDomain.h,   
-      include/net-snmp/library/snmpUDPDomain.h,   
-      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
-      snmplib/transports/snmpUDPBaseDomain.c,   
-      snmplib/transports/snmpUDPDomain.c,   
-      snmplib/transports/snmpUDPIPv4BaseDomain.c:
-
-   CHANGES: snmplib: Guard netsnmp_udp_recvfrom() etc. declarations
-   consistently.
-   CHANGES: Win32: Builds with Visual Studio 2010.
-
-2011-05-03 15:29  bvassche
-
-   * snmplib/winservice.c:
-
-   CHANGES: Win32: PATCH: 3293842: Eliminate registry argument limit
-   of 127 characters (this limitation was reported by Sylvain Dery).
-
-2011-05-02 11:22  bvassche
-
-   *  win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: Win32: header file <net-snmp/net-snmp-config.h> can now
-   be used in the MinGW environment.
-
-2011-04-29 11:17  bvassche
-
-   * snmplib/winservice.c:
-
-   Spelling and grammar fixes for the source code comments in
-   snmplib/winservice.c.
-
-2011-04-29 00:23  hardaker
-
-   * NEWS:
-
-   added note about the new timing function
-
-2011-04-29 00:14  hardaker
-
-   * man/snmpd.conf.5.def:
-
-   Update the manual page to reflect the new timing options
-
-2011-04-29 00:14  hardaker
-
-   * snmplib/tools.c:
-
-   better documentation
-
-2011-04-29 00:14  hardaker
-
-   *  agent/mibgroup/agentx/agentx_config.c,   
-      agent/mibgroup/disman/mteTriggerTable.c,   
-      agent/mibgroup/disman/schedule/schedConf.c:
-
-   use the netsnmp_string_time_to_secs() for parsing
-   frequencies/time
-
-2011-04-29 00:13  hardaker
-
-   * testing/fulltests/unit-tests/T102pdu_build_clib.c:
-
-   fix pdu building tests under various disabled modes
-
-2011-04-29 00:13  hardaker
-
-   * testing/fulltests/unit-tests/T102pdu_build_clib.c:
-
-   don't try to build the GET pdu under notify_only
-
-2011-04-29 00:12  hardaker
-
-   * include/net-snmp/library/tools.h, snmplib/tools.c:
-
-   fix a bug with no-suffix strings and use a const input string
-
-2011-04-29 00:12  hardaker
-
-   * testing/fulltests/unit-tests/T010netsnmp_string_time_to_secs_clib.c:
-
-   A new unit test for the time conversion routine
-
-2011-04-29 00:12  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   use the netsnmp_string_time_to_secs() function for computing
-   interval periods
-
-2011-04-29 00:11  hardaker
-
-   * include/net-snmp/library/tools.h, snmplib/tools.c:
-
-   Added a netsnmp_string_time_to_secs() functions to convert, e.g.,
-   1h to 3600
-
-2011-04-29 00:11  hardaker
-
-   * snmplib/snmp_api.c:
-
-   remove code to build/parse GET/etc requests when NOTIFY_ONLY is
-   turned on.
-
-2011-04-27 21:33  hardaker
-
-   * NEWS:
-
-   update the NEWS to reflect the new --enable-read-only and
-   --enable-notify-only
-
-2011-04-27 21:33  hardaker
-
-   *  agent/mibgroup/if-mib/ifTable/ifTable_interface.c,   
-      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c:
-
-   minor improvements for ronly vs rwrite handling
-
-2011-04-27 21:32  hardaker
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_interface.c:
-
-   still enable RONLY when RWRITE isn't possible
-
-2011-04-27 21:32  hardaker
-
-   * agent/helpers/cache_handler.c:
-
-   fix GET support when no_write is enabled
-
-2011-04-27 21:32  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   mark a future modification need in a comment
-
-2011-04-27 21:31  hardaker
-
-   * agent/helpers/old_api.c:
-
-   fix handling of no_write support
-
-2011-04-27 21:31  hardaker
-
-   * agent/agent_read_config.c, agent/snmp_agent.c, agent/snmpd.c:
-
-   don't open any listening transports when notify-only is specified
-
-2011-04-27 21:31  hardaker
-
-   * configure, configure.d/config_project_with_enable:
-
-   set the no-listen and read-only flags when --enable-notify-only
-   is set
-
-2011-04-27 21:30  hardaker
-
-   * include/net-snmp/net-snmp-config.h.in:
-
-   ran autoheader
-
-2011-04-27 21:30  hardaker
-
-   *  snmplib/transports/snmpAAL5PVCDomain.c,   
-      snmplib/transports/snmpDTLSUDPDomain.c,   
-      snmplib/transports/snmpIPXDomain.c,   
-      snmplib/transports/snmpSSHDomain.c,   
-      snmplib/transports/snmpTCPDomain.c,   
-      snmplib/transports/snmpTCPIPv6Domain.c,   
-      snmplib/transports/snmpTLSTCPDomain.c,   
-      snmplib/transports/snmpUDPIPv4BaseDomain.c,   
-      snmplib/transports/snmpUDPIPv6Domain.c,   
-      snmplib/transports/snmpUnixDomain.c:
-
-   implement the NETSNMP_NO_LISTEN_SUPPORT in these transports
-
-2011-04-27 21:30  hardaker
-
-   * configure:
-
-   run autoconf
-
-2011-04-27 21:29  hardaker
-
-   * configure.d/config_project_with_enable:
-
-   move the read-only flag definition below the notify-only, since
-   notify-only needs to imply read-only
-
-2011-04-27 21:29  hardaker
-
-   * configure, configure.d/config_project_with_enable:
-
-   Defined a new --enable-notify-only flag for building a toolset
-   that only allows for notifications with no read/write support
-
-2011-04-27 21:29  hardaker
-
-   * configure, configure.d/config_project_with_enable:
-
-   Defined a new --no-listen flag to remove listening support
-
-2011-04-27 21:28  hardaker
-
-   * agent/mibgroup/default_modules.h:
-
-   the disman schedule mib is only useful when SETs are turned on
-
-2011-04-27 21:28  hardaker
-
-   * agent/mibgroup/disman.h:
-
-   the disman schedule mib is only useful when SETs are turned on
-
-2011-04-27 21:28  hardaker
-
-   * 
-      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/ipIfStatsTable/ipIfStatsTable_interface.c, 
-       
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c,
-        
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_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:
-
-   finished no_write support for common included tables
-
-2011-04-27 21:27  hardaker
-
-   * agent/helpers/table_dataset.c:
-
-   Add back in 'netsnmp_set_row_column' when no_write support is
-   enabled
-   This function is a generic data manipulation function, not SET
-   specific
-
-2011-04-27 21:27  hardaker
-
-   * agent/helpers/table_dataset.c:
-
-   don't use mark_row_column_writable when read-only support is
-   enabled
-
-2011-04-27 21:26  hardaker
-
-   *  agent/mibgroup/agent/nsCache.c, agent/mibgroup/agent/nsDebug.c,   
-      agent/mibgroup/agent/nsLogging.c,   
-      agent/mibgroup/ip-mib/ip_scalars.c,   
-      agent/mibgroup/mibII/tcpTable.c, agent/mibgroup/mibII/udpTable.c, 
-        agent/mibgroup/notification-log-mib/notification_log.c,   
-      agent/mibgroup/ucd-snmp/proxy.c,   
-      agent/mibgroup/utilities/override.c:
-
-   fix no_write support
-
-2011-04-27 21:26  hardaker
-
-   * agent/mibgroup/agent/extend.c:
-
-   fix no_write support
-
-2011-04-27 21:16  hardaker
-
-   * agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c:
-
-   Don't free the ifXTable row found on load failure as we don't own
-   it
-
-2011-04-26 18:16  hardaker
-
-   * local/gittools, local/gittools/shell-functions:
-
-   git bash-shell functions to enable branch switching and external
-   building
-   These local shell functions (snmpconfigure and snmpmake) let you
-   configure and build the Net-SNMP source code in external
-   directories
-   that are auto-calculated based on the existing branch name (with
-   an
-   optional suffix). This lets you run 'snmpmake' from within the
-   source
-   directory and have it actually externally keep track of modified
-   files, etc, so building in multiple branches can be done from a
-   single
-   git checkout.
-
-2011-04-25 20:57  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   clean up the iterators
-
-2011-04-25 20:57  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   free varbinds after sending
-
-2011-04-25 18:48  bvassche
-
-   * agent/mibgroup/ucd-snmp/diskio.c:
-
-   Commented out an unused function because the compiler complained
-   about it.
-
-2011-04-25 18:46  bvassche
-
-   * snmplib/transports/snmpDTLSUDPDomain.c:
-
-   Fixed two compiler warnings.
-
-2011-04-23 14:31  magfr
-
-   * agent/helpers/table_data.c:
-
-   Remove unnecessary null check
-
-2011-04-23 14:05  magfr
-
-   * agent/helpers/table_container.c:
-
-   Move pointer dereference to after the check for successful
-   allocation of the pointer
-
-2011-04-23 08:20  magfr
-
-   * agent/agent_registry.c:
-
-   Reduce variable scope
-
-2011-04-23 08:16  magfr
-
-   * agent/agent_registry.c:
-
-   Remove an unused variable
-
-2011-04-23 08:06  magfr
-
-   * agent/agent_registry.c:
-
-   Reduce variable scope
-
-2011-04-23 07:55  magfr
-
-   * agent/agent_registry.c:
-
-   Reduce variable scope
-
-2011-04-22 19:35  magfr
-
-   * agent/agent_trap.c:
-
-   Reduce variable scope
-
-2011-04-22 19:30  magfr
-
-   * agent/agent_trap.c:
-
-   Remove unused variable
-
-2011-04-22 17:29  hardaker
-
-   * man/snmpd.conf.5.def:
-
-   mention which module is required when building to get the deliver
-   support
-
-2011-04-22 16:33  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   deleted an unneeded debugging statement
-
-2011-04-22 16:33  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   properly update the max count in the outgoing notifications
-
-2011-04-22 16:32  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   better packet estimation to ensure we don't overrun.
-
-2011-04-22 16:32  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   estimate the packet size and break the notification up based on
-   it
-
-2011-04-22 16:31  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   transform the notification sending into a larger loop for later
-   multi-notifs
-
-2011-04-22 16:31  hardaker
-
-   * NEWS:
-
-   further information about feature marking/selection
-
-2011-04-22 16:31  hardaker
-
-   * NEWS:
-
-   mention the new delivery by notifications
-
-2011-04-22 16:31  hardaker
-
-   * NEWS:
-
-   document the minimalist support
-
-2011-04-22 16:30  hardaker
-
-   * man/snmpd.conf.5.def:
-
-   document the new deliverByNotify config tokens
-
-2011-04-22 16:30  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   allow run time modifications of the OIDs to use
-
-2011-04-22 16:30  hardaker
-
-   *  agent/mibgroup/deliver/deliverByNotify.c,   
-      agent/mibgroup/deliver/deliverByNotify.h:
-
-   add config flags to not include the period config and msg count
-   values
-
-2011-04-22 16:29  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   include the periodic count, the message number and the max
-   message number
-
-2011-04-22 16:29  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   deleted debugging comment
-
-2011-04-22 16:29  hardaker
-
-   *  agent/mibgroup/deliver/deliverByNotify.c,   
-      mibs/NET-SNMP-PERIODIC-NOTIFY-MIB.txt:
-
-   Move the notification definition to within the sub-mib
-
-2011-04-22 16:28  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   delete an unused variable
-
-2011-04-22 16:28  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.h:
-
-   load the MIB into the default set
-
-2011-04-22 16:28  hardaker
-
-   * mibs/NET-SNMP-PERIODIC-NOTIFY-MIB.txt:
-
-   A new mib to hold the periodic notify objects
-
-2011-04-22 16:28  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   fill out the config free routine
-
-2011-04-22 16:27  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   properly monitor the whole container
-
-2011-04-22 16:27  hardaker
-
-   *  agent/mibgroup/deliver/deliverByNotify.c,   
-      agent/mibgroup/deliver/deliverByNotify.h:
-
-   parse the conf files and create and insert objects into the
-   container
-
-2011-04-22 16:27  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   defined a container to store a list of deliver objects in
-
-2011-04-22 16:27  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.h:
-
-   added a next_run timestamp
-
-2011-04-22 16:26  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   actually send a notification with the results
-
-2011-04-22 16:26  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   make the walk on the test object function.
-
-2011-04-22 16:26  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   create a max packet size config token and parse it
-
-2011-04-22 16:25  hardaker
-
-   *  agent/mibgroup/deliver/deliverByNotify.c,   
-      agent/mibgroup/deliver/deliverByNotify.h:
-
-   minimal starting test object
-
-2011-04-22 16:25  hardaker
-
-   *  agent/mibgroup/deliver/deliverByNotify.c,   
-      agent/mibgroup/deliver/deliverByNotify.h:
-
-   added a function to calculate the time until the next run
-
-2011-04-22 16:25  hardaker
-
-   * agent/mibgroup/deliver/deliverByNotify.c:
-
-   remove left in template line
-
-2011-04-22 16:25  hardaker
-
-   *  agent/mibgroup/deliver/deliverByNotify.c,   
-      agent/mibgroup/deliver/deliverByNotify.h:
-
-   use an alarm callback prototype for execute
-
-2011-04-22 16:24  hardaker
-
-   *  agent/mibgroup/deliver, agent/mibgroup/deliver/deliverByNotify.c, 
-        agent/mibgroup/deliver/deliverByNotify.h:
-
-   beginning template code for delivery of data by notifications
-
-2011-04-22 09:13  magfr
-
-   * agent/snmp_agent.c:
-
-   Reduce variable scope
-
-2011-04-22 09:07  magfr
-
-   * agent/snmp_agent.c:
-
-   Reduce variable scopes
-
-2011-04-22 09:03  magfr
-
-   * agent/snmp_agent.c:
-
-   Remove unused variable
-
-2011-04-19 08:38  bvassche
-
-   * win32/libsnmp/libsnmp.vcproj, win32/win32.sln:
-
-   Added Visual Studio 2005 project and solution file for building
-   the Net-SNMP library as a static library. Both the Win32 and the
-   x64 configurations are included.
-
-2011-04-19 07:57  bvassche
-
-   * win32/libsnmp:
-
-   Updated Subversion ignore list.
-
-2011-04-19 07:39  bvassche
-
-   *  win32/encode_keychange/encode_keychange.vcproj,   
-      win32/libagent/libagent.vcproj,   
-      win32/libnetsnmptrapd/libnetsnmptrapd.vcproj,   
-      win32/libsnmp_dll/libsnmp_dll.vcproj,   
-      win32/netsnmpmibs/netsnmpmibs.vcproj,   
-      win32/snmpbulkget/snmpbulkget.vcproj,   
-      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd/snmpd.vcproj, 
-        win32/snmpdelta/snmpdelta.vcproj, win32/snmpdf/snmpdf.vcproj,   
-      win32/snmpget/snmpget.vcproj,   
-      win32/snmpgetnext/snmpgetnext.vcproj,   
-      win32/snmpnetstat/snmpnetstat.vcproj,   
-      win32/snmpset/snmpset.vcproj, win32/snmpstatus/snmpstatus.vcproj, 
-        win32/snmptable/snmptable.vcproj,
-      win32/snmptest/snmptest.vcproj,   
-      win32/snmptranslate/snmptranslate.vcproj,   
-      win32/snmptrap/snmptrap.vcproj, win32/snmptrapd/snmptrapd.vcproj, 
-        win32/snmpusm/snmpusm.vcproj, win32/snmpvacm/snmpvacm.vcproj,   
-      win32/snmpwalk/snmpwalk.vcproj:
-
-   More Visual Studio 2005 project file cleanup.
-
-2011-04-19 06:57  bvassche
-
-   * win32/bin:
-
-   Updated Subversion ignore list.
-
-2011-04-18 15:34  bvassche
-
-   *  win32/encode_keychange/encode_keychange.vcproj,   
-      win32/snmpbulkget/snmpbulkget.vcproj,   
-      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd/snmpd.vcproj, 
-        win32/snmpdelta/snmpdelta.vcproj, win32/snmpdf/snmpdf.vcproj,   
-      win32/snmpget/snmpget.vcproj,   
-      win32/snmpgetnext/snmpgetnext.vcproj,   
-      win32/snmpnetstat/snmpnetstat.vcproj,   
-      win32/snmpset/snmpset.vcproj, win32/snmpstatus/snmpstatus.vcproj, 
-        win32/snmptable/snmptable.vcproj,
-      win32/snmptest/snmptest.vcproj,   
-      win32/snmptranslate/snmptranslate.vcproj,   
-      win32/snmptrap/snmptrap.vcproj, win32/snmptrapd/snmptrapd.vcproj, 
-        win32/snmpusm/snmpusm.vcproj, win32/snmpvacm/snmpvacm.vcproj,   
-      win32/snmpwalk/snmpwalk.vcproj:
-
-   Cleaned up Win32 VS2005 project files - removed superfluous
-   library references.
-
-2011-04-18 15:25  bvassche
-
-   *  win32/encode_keychange/encode_keychange.vcproj,   
-      win32/libagent/libagent.vcproj,   
-      win32/libnetsnmptrapd/libnetsnmptrapd.vcproj,   
-      win32/libsnmp_dll/libsnmp_dll.vcproj,   
-      win32/netsnmpmibs/netsnmpmibs.vcproj,   
-      win32/snmpbulkget/snmpbulkget.vcproj,   
-      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd/snmpd.vcproj, 
-        win32/snmpdelta/snmpdelta.vcproj, win32/snmpdf/snmpdf.vcproj,   
-      win32/snmpget/snmpget.vcproj,   
-      win32/snmpgetnext/snmpgetnext.vcproj,   
-      win32/snmpnetstat/snmpnetstat.vcproj,   
-      win32/snmpset/snmpset.vcproj, win32/snmpstatus/snmpstatus.vcproj, 
-        win32/snmptable/snmptable.vcproj,
-      win32/snmptest/snmptest.vcproj,   
-      win32/snmptranslate/snmptranslate.vcproj,   
-      win32/snmptrap/snmptrap.vcproj, win32/snmptrapd/snmptrapd.vcproj, 
-        win32/snmpusm/snmpusm.vcproj, win32/snmpvacm/snmpvacm.vcproj,   
-      win32/snmpwalk/snmpwalk.vcproj, win32/win32dll.sln:
-
-   Added x64 configurations.
-
-2011-04-18 15:14  bvassche
-
-   * win32/lib:
-
-   Another Win32-related Subversion ignore list update.
-
-2011-04-18 15:13  bvassche
-
-   *  win32/encode_keychange/encode_keychange.vcproj,   
-      win32/libagent/libagent.vcproj,   
-      win32/libnetsnmptrapd/libnetsnmptrapd.vcproj,   
-      win32/libsnmp_dll/libsnmp_dll.vcproj,   
-      win32/netsnmpmibs/netsnmpmibs.vcproj,   
-      win32/snmpbulkget/snmpbulkget.vcproj,   
-      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd/snmpd.vcproj, 
-        win32/snmpdelta/snmpdelta.vcproj, win32/snmpdf/snmpdf.vcproj,   
-      win32/snmpget/snmpget.vcproj,   
-      win32/snmpgetnext/snmpgetnext.vcproj,   
-      win32/snmpnetstat/snmpnetstat.vcproj,   
-      win32/snmpset/snmpset.vcproj, win32/snmpstatus/snmpstatus.vcproj, 
-        win32/snmptable/snmptable.vcproj,
-      win32/snmptest/snmptest.vcproj,   
-      win32/snmptranslate/snmptranslate.vcproj,   
-      win32/snmptrap/snmptrap.vcproj, win32/snmptrapd/snmptrapd.vcproj, 
-        win32/snmpusm/snmpusm.vcproj, win32/snmpvacm/snmpvacm.vcproj,   
-      win32/snmpwalk/snmpwalk.vcproj, win32/win32dll.sln:
-
-   Added win32dll-related Visual Studio 2005 project and solution
-   files.
-
-2011-04-18 13:37  bvassche
-
-   *  win32, win32/encode_keychange, win32/lib, win32/libagent,   
-      win32/libnetsnmptrapd, win32/libsnmp, win32/libsnmp_dll,   
-      win32/libucdmibs, win32/net-snmp, 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:
-
-   Added *.vcproj.*.user and x64 to the win32 Subversion ignore
-   lists. Ran these through LC_ALL=C sort -fu too.
-
-2011-04-18 12:10  bvassche
-
-   *  include/net-snmp/library/getopt.h,   
-      include/net-snmp/library/large_fd_set.h,   
-      include/net-snmp/net-snmp-includes.h:
-
-   Win32 DLL build fixes.
-
-2011-04-17 20:56  dts12
-
-   *  snmplib/transports/snmpUDPBaseDomain.c,   
-      snmplib/transports/snmpUDPDomain.c,   
-      snmplib/transports/snmpUDPIPv4BaseDomain.c:
-
-   CHANGES: snmpd: PATCHES: 3175640: Use IP_RECVDSTADDR sockopt
-   where available (*BSD)
-
-2011-04-15 13:42  dts12
-
-   * snmplib/snmp_api.c:
-
-   CHANGES: snmplib: PATCHES: 3183000: Fix calculation of common OID
-   prefix length
-   CHANGES: snmplib: BUGS: 3182985: Fix calculation of common OID
-   prefix length
-
-2011-04-15 13:17  dts12
-
-   *  agent/mibgroup/ucd-snmp/diskio.c, apps/snmptrapd_ds.h,   
-      include/net-snmp/agent/ds_agent.h, man/snmpd.conf.5.def:
-
-   CHANGES: Linux: PATCHES: 3205811: Option to skip fd/loop/ram
-   devices in diskIOTable
-
-2011-04-14 21:31  dts12
-
-   * python/netsnmp/client_intf.c:
-
-   CHANGES: python: PATCHES: 3185085: Fix segfault on 64-bit systems
-
-2011-04-14 21:10  dts12
-
-   * local/mib2c:
-
-   CHANGES: mib2c: PATCHES: 3175323: Fix handling of 'while (false)'
-   blocks
-
-2011-04-14 20:52  dts12
-
-   * local/mib2c:
-
-   CHANGES: mib2c: PATCHES: 3204883: Fix handling of non-table
-   objects named fooTable
-
-2011-04-14 20:44  dts12
-
-   * local/mib2c:
-
-   CHANGES: mib2c: PATCHES: 3211484: Support enumerations in
-   notification varbinds
-
-2011-04-12 20:01  nba
-
-   * mibs/UCD-SNMP-MIB.txt:
-
-   Add missing system oids to mib
-
-2011-04-12 19:53  nba
-
-   * apps/snmptable.c:
-
-   Fix for garbage output when agent presents more columns in bulk
-   response than our local MIB file specified.
-
-2011-04-12 19:50  nba
-
-   * man/snmptrapd.8.def:
-
-   Fix wrong name for config token 'doNotRetainNotificationLogs'
-
-2011-04-09 21:59  nba
-
-   * agent/mibgroup/sctp-mib/sctpScalars_freebsd.c:
-
-   Remove bogus (Linux) defines
-
-2011-04-09 21:56  nba
-
-   * snmplib/snmp-tc.c:
-
-   HAVE_TM_TM_GMTOFF is HAVE_STRUCT_TM_TM_GMTOFF
-
-2011-04-09 20:08  nba
-
-   *  agent/mibgroup/disman/ping/pingCtlTable.c,   
-      agent/mibgroup/disman/ping/pingCtlTable.h,   
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h, configure, 
-        include/net-snmp/net-snmp-config.h.in:
-
-   Bill Fenners patch to make DISMAN PING and TRACEROUTE MIBS
-   compile under Linux
-
-2011-04-09 20:04  nba
-
-   *  agent/mibgroup/kernel_sunos5.c, agent/mibgroup/kernel_sunos5.h,   
-      agent/mibgroup/sctp-mib/sctpScalars.h,   
-      agent/mibgroup/sctp-mib/sctpScalars_solaris2.c,   
-      agent/mibgroup/sctp-mib/sctpTables.h,   
-      agent/mibgroup/sctp-mib/sctpTables_solaris2.c:
-
-   Solaris support for SCTP-MIB
-
-2011-04-09 19:50  nba
-
-   * snmplib/snmp-tc.c:
-
-   TZ is one hour off if HAVE_TM_TM_GMTOFF and SYSV (such is Linux)
-
-2011-04-01 01:11  rstory
-
-   * snmplib/transports/snmpDTLSUDPDomain.c:
-
-   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
-
-2011-04-01 00:53  rstory
-
-   * snmplib/transports/snmpDTLSUDPDomain.c:
-
-   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
-
-2011-03-31 05:17  rstory
-
-   * snmplib/transports/snmpDTLSUDPDomain.c:
-
-   make trunk and v5-6-patches closely aligned
-   
-   mostly changes in debug, cookie tracking
-
-2011-03-27 11:08  magfr
-
-   * snmplib/container_binary_array.c:
-
-   Simplify array resizing somewhat further
-
-2011-03-27 10:21  magfr
-
-   * snmplib/container_binary_array.c:
-
-   Do not assign new_data if the value won't be used.
-   Reduce variable scopes.
-
-2011-03-27 10:14  magfr
-
-   * snmplib/container_binary_array.c:
-
-   It is not necessary to clear a chunk of memory if the next action
-   on it is to
-   fill it so use malloc instead of calloc.
-
-2011-03-27 10:09  magfr
-
-   * snmplib/container_binary_array.c:
-
-   ContainerBinaryArray really can't hold anythng but pointers and
-   that means the
-   data_size field is unnecessary so I removed it.
-
-2011-03-26 19:55  magfr
-
-   *  agent/mibgroup/hardware/memory/hw_mem.c,   
-      agent/mibgroup/header_complex.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_common.c,   
-      agent/mibgroup/mibII/interfaces.c,   
-      agent/mibgroup/mibII/sysORTable.c, apps/snmptrapd.c,   
-      snmplib/int64.c, snmplib/snmp_openssl.c, snmplib/snmp_secmod.c,   
-      snmplib/snmpv3.c:
-
-   Add missing include
-
-2011-03-26 08:07  magfr
-
-   * snmplib/transports/snmpDTLSUDPDomain.c:
-
-   Use the right feature macro in order to make builds with
-   --enable-ipv6 --with-out-transports=UDPIPv6 succeed.
-
-2011-03-26 08:02  magfr
-
-   * snmplib/transports/snmpDTLSUDPDomain.c:
-
-   Remove duplicate copies of functions
-
-2011-03-25 20:35  rstory
-
-   * local/net-snmp-cert:
-
-   tweak debug message
-
-2011-03-25 20:32  rstory
-
-   * snmplib/transports/snmpTLSBaseDomain.c:
-
-   CHANGES: snmplib: update cert token handling
-   
-   - remove defX509 cert tokens (should have been removed before
-   5.6)
-   - warnings for our/their tokens, recommend using local/peer
-
-2011-03-25 20:31  rstory
-
-   *  snmplib/transports/snmpDTLSUDPDomain.c,   
-      snmplib/transports/snmpUDPBaseDomain.c:
-
-   merge netsnmp_dtlsudp6 into netsnmp_dtlsudp
-   
-   use addr size to tell them apart
-
-2011-03-25 20:31  rstory
-
-   * snmplib/snmp_transport.c:
-
-   log (once) warning when deprecated f_create_from_tstring
-   transport function used
-
-2011-03-25 20:30  rstory
-
-   * snmplib/transports/snmpTCPDomain.c:
-
-   reduce casting; make sure to free the right pointer
-
-2011-03-25 20:29  rstory
-
-   * snmplib/transports/snmpUDPBaseDomain.c:
-
-   reduce casting
-
-2011-03-24 06:19  magfr
-
-   * agent/mibgroup/ucd-snmp/dlmod.c:
-
-   Replace a variable with a constant. Make one more oid const.
-
-2011-03-17 21:09  nba
-
-   * man/snmpdelta.1.def:
-
-   Formatting botch
-
-2011-03-17 21:07  nba
-
-   * mibs/Makefile.in:
-
-   Install required mibs
-
-2011-03-17 21:05  nba
-
-   * mibs/rfclist:
-
-   New RFC mibs
-
-2011-03-15 10:31  bvassche
-
-   * snmplib/cert_util.c:
-
-   Spelling fix: reginerated -> regenerated.
-
-2011-03-15 10:19  bvassche
-
-   * snmplib/cert_util.c:
-
-   Simplified r19594 (leak-at-exit fix).
-
-2011-03-15 09:59  bvassche
-
-   * snmplib/snmp_openssl.c:
-
-   Fixed a compiler warning that was introduced in r20113.
-
-2011-03-14 09:31  dts12
-
-   * agent/snmpd.c:
-
-   Fix main agent select call to use the renamed API routine.
-
-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-12 06:59  rstory
-
-   * snmplib/container_binary_array.c:
-
-   CHANGES: snmplib: realloc+init instead of calloc
-   
-   inspired by patch 3195532 from Stephen Hemminger
-
-2011-03-12 05:47  rstory
-
-   *  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:
-
-   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
-
-2011-03-11 14:43  rstory
-
-   * snmplib/transports/snmpTLSBaseDomain.c:
-
-   CHANGES: snmplib: add more openssl error cases where we check for
-   local cert
-
-2011-03-11 12:01  bvassche
-
-   * agent/mibgroup/ucd-snmp/disk.c:
-
-   MinGW: dskTable: Report zero for unimplemented fields instead of
-   random data.
-
-2011-03-11 08:42  bvassche
-
-   * agent/mibgroup/disman/schedule/schedCore.c:
-
-   CHANGES: snmpd: Builds with most recent MinGW (having #define
-   localtime_r).
-
-2011-03-11 03:08  rstory
-
-   * snmplib/cert_util.c, snmplib/snmp_openssl.c:
-
-   CHANGES: snmplib: refine cert debugging; remove unused function
-
-2011-03-10 21:21  rstory
-
-   * snmplib/cert_util.c:
-
-   CHANGES: snmpd: BUG: 3205765: handle reconfig for certSecName
-   token
-
-2011-03-10 20:01  bvassche
-
-   * agent/snmpd.c:
-
-   Spelling fix in a source code comment: messges -> messages.
-
-2011-03-10 19:55  bvassche
-
-   * snmplib/large_fd_set.c:
-
-   CHANGES: snmplib: PATCH: 3203806: Minor performance optimization
-   of netsnmp_large_fd_set_resize().
-
-2011-03-10 19:48  bvassche
-
-   * agent/snmpd.c:
-
-   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().
-
-2011-03-10 19:43  bvassche
-
-   * include/net-snmp/library/large_fd_set.h, snmplib/large_fd_set.c:
-
-   CHANGES: snmplib: PATCH: 3203806: Add the function
-   netsnmp_large_select().
-
-2011-03-10 18:55  bvassche
-
-   *  testing/fulltests/support/clib_build,   
-      testing/fulltests/unit-tests/T009large_fd_set_clib.c:
-
-   Added a minimal unit test for netsnmp_large_fd_set.
-
-2011-03-10 18:52  bvassche
-
-   * snmplib/large_fd_set.c:
-
-   CHANGES: snmplib: PATCH: 3203806: Make
-   netsnmp_large_fd_set_resize() clear all relevant file
-   descriptors.
-
-2011-03-10 15:51  dts12
-
-   * snmplib/snmp-tc.c:
-
-   CHANGES: snmpd: BUG: 3178389: Fix inconsistent handling of TZ
-   offsets
-
-2011-03-10 15:40  dts12
-
-   *  agent/mibgroup/hardware/fsys,   
-      agent/mibgroup/ip-mib/ipAddressPrefixTable,   
-      agent/mibgroup/ip-mib/ipIfStatsTable:
-
-   Ignore object files and libraries
-
-2011-03-10 15:05  dts12
-
-   * snmplib/transports:
-
-   Ignore object files and libraries
-
-2011-03-10 14:32  hardaker
-
-   * apps/Makefile.in, configure, configure.d/config_os_libs2:
-
-   make variable names match
-
-2011-03-10 14:28  bvassche
-
-   * agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c:
-
-   Fixed two compiler warnings.
-
-2011-03-10 14:24  hardaker
-
-   * configure, configure.d/config_os_libs2:
-
-   fixed installation variables for the optional SET programs
-
-2011-03-08 00:53  hardaker
-
-   * local/minimalist/remove-unneeded-modules:
-
-   chmod a+x
-
-2011-03-08 00:15  hardaker
-
-   * local/minimalist/removeifdefcode.pl:
-
-   print an error if the end of a file was reached and we're not
-   back
-   into the state we can write; otherwise a closing #ifdef is
-   missing.
-
-2011-03-08 00:15  hardaker
-
-   * snmplib/transports/snmpUnixDomain.c:
-
-   fix endif comment to match the opening ifdef
-
-2011-03-08 00:15  hardaker
-
-   * local/minimalist/removeifdefcode.pl:
-
-   reset the canwrite flag for every file
-
-2011-03-08 00:15  hardaker
-
-   * local/minimalist/remove-unneeded-modules:
-
-   temporarily leave in header files
-
-2011-03-08 00:14  hardaker
-
-   * configure, configure.ac:
-
-   change the unique file check to one that is not in the mibgroup
-   directory
-
-2011-03-08 00:14  hardaker
-
-   *  testing/fulltests/read-only,   
-      testing/fulltests/read-only/T0141snmpv2csetfail_simple:
-
-   a test for ensuring the agent rejects SET requests with
-   --enable-read-only
-
-2011-03-08 00:14  hardaker
-
-   * testing/fulltests/default/T0141snmpv2cset_simple:
-
-   add back in the stopagent command
-
-2011-03-08 00:14  hardaker
-
-   *  testing/fulltests/unit-tests/T101pdu_type_clib.c,   
-      testing/fulltests/unit-tests/T102pdu_build_clib.c,   
-      testing/fulltests/unit-tests/T103pdu_parse_clib.c:
-
-   unit tests writen for the read-only support converted to work
-   with or without read-only
-
-2011-03-08 00:13  hardaker
-
-   * testing/fulltests/default/T0141snmpv2cset_simple:
-
-   don't run the set test if no_write_support is turned on
-
-2011-03-08 00:13  hardaker
-
-   * testing/fulltests/default/T030snmpv3usercreation_simple:
-
-   skip if no_write_support
-
-2011-03-08 00:13  hardaker
-
-   * testing/fulltests/default/T0141snmpv2cset_simple:
-
-   A new test to check whether SNMPv2c SETs to sysContact work as
-   expected
-
-2011-03-08 00:13  hardaker
-
-   * testing/fulltests/default/Svanyconfig:
-
-   allow for v2c SET support testing
-
-2011-03-08 00:12  hardaker
-
-   * agent/mibgroup/mibII/vacm_conf.c:
-
-   Allow for single quotes for vacm context name quoting too
-
-2011-03-07 19:19  hardaker
-
-   * configure:
-
-   fix the configure tests to include the word test in the test
-
-2011-03-07 19:18  hardaker
-
-   * configure.d/config_os_libs2:
-
-   fix the configure tests to include the word test in the test
-
-2011-03-07 19:18  hardaker
-
-   * local/minimalist/remove-unneeded-modules:
-
-   Added an annoyingly long list of exceptions that needs to be
-   automated
-
-2011-03-07 19:18  hardaker
-
-   * local/minimalist/remove-unneeded-modules:
-
-   A quick perl script to remove unneeded code modules from the
-   modules directory
-
-2011-03-07 19:18  hardaker
-
-   *  agent/mibgroup/target/target.c,   
-      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
-        snmplib/cert_util.c, snmplib/snmpusm.c, snmplib/vacm.c:
-
-   more improvements (removements) for featurization and read-only
-   support
-
-2011-03-07 17:19  bvassche
-
-   * snmplib/container_binary_array.c:
-
-   CHANGES: snmplib: PATCH: 3195537: Minor binary_array container
-   sort optimization
-
-2011-03-06 19:47  nba
-
-   * agent/mibgroup/disman/nslookup/lookupCtlTable.c:
-
-   Tabs to spaces
-
-2011-03-06 11:28  nba
-
-   *  agent/mibgroup/disman/nslookup/lookupCtlTable.c,   
-      configure.d/config_os_functions:
-
-   Configure check for gethostname2
-   Use getaddrinfo if available. Now works for Solaris (and
-   Windows?)
-
-2011-03-05 19:16  magfr
-
-   * apps/snmptest.c:
-
-   Add dropped ||'s from r20072
-
-2011-03-05 12:50  nba
-
-   *  agent/mibgroup/disman/nslookup/lookupCtlTable.c,   
-      agent/mibgroup/disman/nslookup/lookupCtlTable.h,   
-      agent/mibgroup/disman/nslookup/lookupResultsTable.c:
-
-   Clean up, and cosolidate result table row creation into a new
-   function.
-   Saves 200 lines of code, with (hopefully) no functionality change
-
-2011-03-05 06:17  hardaker
-
-   *  apps/Makefile.in, apps/snmptest.c, configure,   
-      configure.d/config_os_libs2:
-
-   don't build SET related apps with --enable-read-only
-
-2011-03-05 06:16  hardaker
-
-   *  agent/helpers/baby_steps.c,   
-      agent/mibgroup/disman/event/mteEvent.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable_interface.c,   
-      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c,   
-      agent/mibgroup/mibII/snmp_mib.c, agent/mibgroup/mibII/updates.c,  
-      
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
-         agent/mibgroup/target/target.c,   
-      include/net-snmp/agent/baby_steps.h,   
-      include/net-snmp/agent/snmp_agent.h, snmplib/snmp_client.c:
-
-   fix issues with combining --enable-minimalist and
-   --enable-read-only
-
-2011-03-05 06:16  hardaker
-
-   * local/minimalist/find-unused-code:
-
-   better output for finding object symbols.
-
-2011-03-04 21:56  baerm
-
-   * local/minimalist/removeifdefcode.pl:
-
-   last commit: changes to allow parsing of featuers files to get
-   all minimalist tags which are then processed for removal
-   
-   this commit: changed comments/white space
-
-2011-03-04 19:27  baerm
-
-   * agent/mibgroup/agent/extend.c:
-
-   added no_write support to extend.c
-
-2011-03-04 19:26  baerm
-
-   * agent/helpers/instance.c:
-
-   Added missing #endif comment for remove ifdef code support
-
-2011-03-04 19:24  baerm
-
-   * local/minimalist/removeifdefcode.pl:
-
-   added changes to allow code removal in-place
-   (i.e. does not require creating a new file)
-
-2011-03-04 19:23  baerm
-
-   * local/minimalist/ignore.regexp:
-
-   adding a ignore.regexp file that can be used with
-   removeifdefcode.pl
-
-2011-03-04 19:20  hardaker
-
-   * local/minimalist/feature-makedocs:
-
-   add a outgoing link to the parent marking page
-
-2011-03-04 19:19  hardaker
-
-   * local/minimalist/feature-makedocs:
-
-   Added a wiki output mode
-
-2011-03-04 19:19  hardaker
-
-   * local/minimalist/feature-makedocs:
-
-   Note that the org output is the default in the help output
-
-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-03-04 14:49  hardaker
-
-   *  agent/agent_read_config.c, agent/helpers/watcher.c,   
-      agent/mibgroup/agentx/master.c, agent/mibgroup/agentx/subagent.c, 
-        agent/mibgroup/header_complex.c,   
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c,
-         agent/mibgroup/mibII/kernel_linux.c,   
-      agent/mibgroup/mibII/tcpTable.c,   
-      agent/mibgroup/mibII/var_route.c,   
-      agent/mibgroup/notification-log-mib/notification_log.c,   
-      agent/mibgroup/snmpv3/snmpEngine.c,   
-      agent/mibgroup/snmpv3/usmUser.c, agent/mibgroup/util_funcs.c,   
-      agent/mibgroup/utilities/iquery.c, snmplib/snmp_api.c:
-
-   reclassification of the remaining features into a hierarchy
-
-2011-03-04 14:49  hardaker
-
-   * snmplib/snmp_openssl.c:
-
-   don't double-declare cert_utils
-
-2011-03-04 14:49  hardaker
-
-   * agent/mibgroup/ip-mib/data_access/ipaddress_linux.c:
-
-   the ipaddress_linux was incorrectly marked as needing
-   cert_fingerprints
-
-2011-03-04 14:48  hardaker
-
-   * agent/agent_registry.c:
-
-   put the agent_registry feature in libnetsnmpagent.
-
-2011-03-03 10:56  bvassche
-
-   * win32/libsnmp_dll/libsnmp.def:
-
-   CHANGES: Win32: Deprecated libsnmp.def - add NETSNMP_IMPORT to
-   function declarations instead to export a function from
-   netsnmp.dll.
-
-2011-03-03 10:48  bvassche
-
-   *  include/net-snmp/library/snmpIPv6BaseDomain.h,   
-      include/net-snmp/library/snmp_debug.h:
-
-   Added missing NETSNMP_IMPORT declarations.
-
-2011-03-03 10:24  bvassche
-
-   * win32/libagent/libagent.def, win32/libucdmibs/libucdmibs.def:
-
-   Removed two obsolete Win32 files.
-
-2011-03-03 10:09  bvassche
-
-   * snmplib/transports/snmpIPv6BaseDomain.c:
-
-   Trivial comment fix: snmpIPv6BaseDomain.c contains IPv6 base
-   transport support functions instead of IPv4.
-
-2011-03-02 19:10  bvassche
-
-   * snmplib:
-
-   Added snmpsm_shutdown.h to the Subversion ignore list because
-   it's a generated file.
-
-2011-03-02 15:58  bvassche
-
-   * win32/config.h:
-
-   Removed an obsolete file.
-
-2011-03-02 15:52  bvassche
-
-   *  include/net-snmp/library/snmp_secmod.h, win32/snmpsm_shutdown.h,  
-       win32/snmpv3-security-includes.h:
-
-   Builds again with Visual Studio after the introduction of the
-   "feature" feature.
-
-2011-03-02 15:48  bvassche
-
-   * win32/snmpsm_init.h:
-
-   Removed a misleading comment.
-
-2011-03-02 08:40  magfr
-
-   * configure, configure.d/config_os_libs2:
-
-   Correct the check of wether usm security is enabled.
-   Regenerate configure.
-
-2011-03-02 08:39  magfr
-
-   * include/net-snmp/net-snmp-config.h.in:
-
-   Regenerate
-
-2011-03-02 08:21  magfr
-
-   * 
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c:
-
-   Add missing dependencies
-
-2011-03-02 07:19  magfr
-
-   * snmplib/snmpusm.c:
-
-   Ignore the return value from snmp_increment_statistic
-
-2011-03-02 07:19  magfr
-
-   * snmplib/container.c:
-
-   Split the container_compare_functions feature into
-   container_compare_mem,
-   container_compare_long, container_compare_ulong,
-   container_compare_int32 and
-   container_compare_uint32
-   Unify the structure of the compare functions further.
-
-2011-03-02 07:19  magfr
-
-   * snmplib/container.c:
-
-   Change the spelling of the container_compare_cstring feature to
-   container_ncompare_cstring as that is the function that is
-   guarded by that
-   attribute.
-
-2011-03-02 07:17  magfr
-
-   * include/net-snmp/library/snmp_api.h:
-
-   Add the missing replacement macro for snmp_init_statistics
-
-2011-03-02 07:16  magfr
-
-   * include/net-snmp/library/snmp_api.h:
-
-   snmp_increment_statistic_by takes two arguments so let the
-   replacement macro
-   take two arguments as well.
-
-2011-02-27 13:55  nba
-
-   * agent/mibgroup/disman/nslookup/lookupCtlTable.c:
-
-   Fix typo in r19990
-
-2011-02-26 10:53  magfr
-
-   * local/minimalist/feature-check:
-
-   Remove lines starting with #define in the output of the
-   preprocessor
-   When gcc -E is called with -ggdb3 (or -dD) then all the macro
-   definitions are
-   passed through the preprocessor and that messes up our
-   processing.
-
-2011-02-26 10:52  magfr
-
-   * Makefile.rules:
-
-   Put the generated file in the build tree, not the source tree.
-
-2011-02-26 01:23  hardaker
-
-   *  agent/agent_trap.c, agent/helpers/table_dataset.c,   
-      agent/mibgroup/disman/event/mteEvent.c,   
-      agent/mibgroup/disman/event/mteTrigger.c,   
-      agent/mibgroup/disman/schedule/schedCore.c,   
-      agent/mibgroup/hardware/cpu/cpu.c,   
-      agent/mibgroup/hardware/memory/hw_mem.c,   
-      agent/mibgroup/host/data_access/swinst.c,   
-      agent/mibgroup/host/data_access/swrun.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/data_access/ipaddress_common.c,   
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c,
-        
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c,  
-       agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c, 
-       
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c,
-        
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.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/tsm-mib/snmpTsmStats/snmpTsmStats.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_solaris2.c,   
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c:
-
-   moved a bunch of features into the libnetsnmpmibs feature set.
-
-2011-02-26 01:22  hardaker
-
-   *  agent/agent_handler.c, agent/agent_index.c,   
-      agent/agent_registry.c, agent/agent_trap.c,   
-      agent/helpers/all_helpers.c, agent/helpers/cache_handler.c,   
-      agent/helpers/table.c, agent/helpers/table_array.c,   
-      agent/helpers/table_data.c, agent/helpers/table_dataset.c,   
-      agent/helpers/table_iterator.c, agent/helpers/table_row.c,   
-      agent/snmp_agent.c, local/minimalist/sizetests, snmplib/mib.c:
-
-   classified libnetsnmpagent features
-
-2011-02-26 01:21  hardaker
-
-   * local/minimalist/sizetests:
-
-   reverse the order of the libraries (snmplib first)
-
-2011-02-26 01:21  hardaker
-
-   * local/minimalist/sizetests:
-
-   output cleanup and added agent-mibs and logging options
-
-2011-02-26 01:21  hardaker
-
-   * local/minimalist/sizetests:
-
-   add a default set of arguments
-   calculate resulting sizes
-
-2011-02-26 01:21  hardaker
-
-   * snmplib/dir_utils.c:
-
-   Added a missing ;
-
-2011-02-26 01:20  hardaker
-
-   * local/minimalist/sizetests:
-
-   prefix the output files with a number to indicate order
-
-2011-02-26 01:20  hardaker
-
-   * local/minimalist/sizetests:
-
-   save the results of the system executions
-
-2011-02-26 01:20  hardaker
-
-   * local/minimalist/sizetests:
-
-   enable building of the resulting combinations
-   Add a -n flag for dry-runs
-
-2011-02-26 01:20  hardaker
-
-   * local/minimalist/sizetests:
-
-   enable the -t tag for limiting types
-
-2011-02-26 01:19  hardaker
-
-   * local/minimalist/sizetests:
-
-   Added argument parsing and arguments for selecting and listing
-   types
-
-2011-02-26 01:19  hardaker
-
-   * local/minimalist/sizetests:
-
-   generate configure script arguments from specs
-
-2011-02-26 01:19  hardaker
-
-   * local/minimalist/sizetests:
-
-   added a bunch of new feature options and cleaned up a bit
-
-2011-02-26 01:19  hardaker
-
-   * local/minimalist/sizetests:
-
-   added a new (not yet working) script to test sizing of various
-   argument sets
-
-2011-02-26 00:26  magfr
-
-   * agent/mibgroup/ucd-snmp/dlmod.c:
-
-   Simplify the code. Unify some debug logs.
-
-2011-02-26 00:19  magfr
-
-   * agent/mibgroup/ucd-snmp/dlmod.c:
-
-   Reduce the scope of a few variables
-
-2011-02-26 00:16  magfr
-
-   * agent/mibgroup/ucd-snmp/dlmod.c:
-
-   Remove some unused includes.
-
-2011-02-26 00:15  magfr
-
-   * agent/mibgroup/ucd-snmp/dlmod.c:
-
-   Make it possible to initialize/uninitialize modules with 64
-   character names and not suffer wild writes.
-
-2011-02-26 00:12  magfr
-
-   * agent/mibgroup/ucd-snmp/dlmod.c:
-
-   Code restructuring - put the managed routines before the
-   managment code.
-
-2011-02-26 00:11  magfr
-
-   * agent/mibgroup/ucd-snmp/dlmod.c, agent/mibgroup/ucd-snmp/dlmod.h:
-
-   CHANGES: libnetsnmpmibs: Make all functions in the dlmod module
-   that don't have to be public static
-
-2011-02-26 00:07  magfr
-
-   * agent/mibgroup/ucd-snmp/dlmod.c:
-
-   Rename deinit_dlmod to shutdown_dlmod as that is what it really
-   is about.
-
-2011-02-25 18:24  baerm
-
-   * agent/mibgroup/agent/nsVacmAccessTable.c:
-
-   adding minimalist ifdefs to net-snmp-vacm mib
-
-2011-02-25 16:09  hardaker
-
-   * local/minimalist/feature-makedocs:
-
-   properly handle twin children; also sort the child list
-   alphabetically.
-
-2011-02-25 16:09  hardaker
-
-   * snmplib/snmp_logging.c:
-
-   I suppose logging should probably default to being a wanted
-   option :-)
-
-2011-02-25 16:09  hardaker
-
-   * local/minimalist/feature-makedocs:
-
-   org-link the files in the output
-
-2011-02-25 16:08  hardaker
-
-   *  Makefile.rules, agent/Makefile.in, agent/mibgroup/Makefile.in,   
-      apps/Makefile.in, apps/snmpnetstat/Makefile.in,   
-      local/minimalist/feature-check, snmplib/Makefile.in:
-
-   make the features-check script track the full source path
-
-2011-02-25 16:08  hardaker
-
-   * local/minimalist/feature-makedocs:
-
-   change the function names to match that it's printing to org-mode
-   at the moment.
-
-2011-02-25 16:08  hardaker
-
-   *  snmplib/file_utils.c, snmplib/mib.c, snmplib/oid_stash.c,   
-      snmplib/snmp_api.c, snmplib/snmp_logging.c, snmplib/tools.c:
-
-   last of the feature classification in libnetsnmp
-
-2011-02-25 16:07  hardaker
-
-   * snmplib/keytools.c, snmplib/lcd_time.c, snmplib/scapi.c:
-
-   make the usm_support utilities self-declare themselves as
-   children to
-   make sure they're properly included during dependency ordering
-
-2011-02-25 16:07  hardaker
-
-   *  snmplib/callback.c, snmplib/cert_util.c, snmplib/check_varbind.c, 
-        snmplib/container.c, snmplib/data_list.c,   
-      snmplib/default_store.c, snmplib/fd_event_manager.c,   
-      snmplib/file_utils.c, snmplib/keytools.c, snmplib/snmpusm.c:
-
-   superstructuralizationizing the features
-
-2011-02-25 16:07  hardaker
-
-   *  snmplib/read_config.c, snmplib/snmp-tc.c, snmplib/snmp_client.c,  
-       snmplib/snmp_enum.c, snmplib/snmp_transport.c, snmplib/system.c, 
-        snmplib/text_utils.c, snmplib/tools.c,   
-      snmplib/transports/snmpUnixDomain.c, snmplib/ucd_compat.c:
-
-   significant parent/child feature classification
-
-2011-02-25 16:06  hardaker
-
-   * snmplib/snmp_api.c, snmplib/snmpusm.c:
-
-   classify a few components into a top-level libnetsnmp component
-
-2011-02-25 16:06  hardaker
-
-   *  snmplib/keytools.c, snmplib/lcd_time.c, snmplib/scapi.c,   
-      snmplib/snmpusm.c:
-
-   structurize the usm features
-
-2011-02-25 16:06  hardaker
-
-   *  snmplib/container.c, snmplib/container_iterator.c,   
-      snmplib/container_list_ssll.c, snmplib/container_null.c,   
-      snmplib/dir_utils.c:
-
-   structure the container features into a hierarchy
-
-2011-02-25 16:05  hardaker
-
-   * snmplib/snmp_logging.c:
-
-   group the logging handlers under a parent feature
-
-2011-02-25 16:05  hardaker
-
-   * local/minimalist/feature-makedocs:
-
-   fix the expect argument count
-
-2011-02-25 16:05  hardaker
-
-   * local/minimalist/feature-makedocs:
-
-   fix the name of the expected input file
-
-2011-02-25 16:05  hardaker
-
-   * local/minimalist/feature-makedocs:
-
-   argument parsing and usage() output
-
-2011-02-25 16:04  hardaker
-
-   *  agent/helpers/stash_cache.c, agent/helpers/stash_to_next.c,   
-      agent/helpers/table_dataset.c, agent/helpers/table_iterator.c,   
-      agent/mibgroup/examples/netSnmpHostsTable.c,   
-      agent/mibgroup/mibII/ipCidrRouteTable.c, snmplib/oid_stash.c:
-
-   - added two oid_stash functions as individual features
-   - cleaned up some warnings in the table_iterator code
-
-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:10  dts12
-
-   * snmplib/snmpv3.c:
-
-   Avoid a possible crash if the engineID is not available or set.
-
-2011-02-25 00:40  baerm
-
-   *  agent/mibgroup/disman/event/mteEventNotificationTable.c,   
-      agent/mibgroup/disman/event/mteEventSetTable.c,   
-      agent/mibgroup/disman/event/mteEventTable.c,   
-      agent/mibgroup/disman/event/mteObjectsTable.c,   
-      agent/mibgroup/disman/event/mteTriggerBooleanTable.c,   
-      agent/mibgroup/disman/event/mteTriggerDeltaTable.c,   
-      agent/mibgroup/disman/event/mteTriggerExistenceTable.c,   
-      agent/mibgroup/disman/event/mteTriggerTable.c,   
-      agent/mibgroup/disman/event/mteTriggerThresholdTable.c,   
-      agent/mibgroup/disman/mteEventNotificationTable.c,   
-      agent/mibgroup/disman/mteObjectsTable.c,   
-      agent/mibgroup/disman/mteObjectsTable.h,   
-      agent/mibgroup/disman/mteTriggerBooleanTable.c,   
-      agent/mibgroup/disman/mteTriggerBooleanTable.h,   
-      agent/mibgroup/disman/mteTriggerDeltaTable.c,   
-      agent/mibgroup/disman/mteTriggerDeltaTable.h,   
-      agent/mibgroup/disman/mteTriggerExistenceTable.c,   
-      agent/mibgroup/disman/mteTriggerExistenceTable.h,   
-      agent/mibgroup/disman/mteTriggerTable.c,   
-      agent/mibgroup/disman/mteTriggerTable.h,   
-      agent/mibgroup/disman/mteTriggerThresholdTable.c,   
-      agent/mibgroup/disman/mteTriggerThresholdTable.h,   
-      agent/mibgroup/disman/nslookup/lookupCtlTable.c,   
-      agent/mibgroup/disman/nslookup/lookupCtlTable.h:
-
-   adding ifdef code for minimalist support of diffman mib
-
-2011-02-24 19:21  baerm
-
-   *  agent/mibgroup/host/hrSWRunTable.c,   
-      agent/mibgroup/host/hr_system.c, agent/mibgroup/host/hr_system.h:
-
-   Adding minimalist ifdefs to host resource mib
-
-2011-02-24 05:46  hardaker
-
-   * agent/helpers/table_iterator.c, snmplib/data_list.c:
-
-   mark the data_list function that's only used in stach_caching as
-   a feature
-
-2011-02-24 05:46  hardaker
-
-   * agent/helpers/table_iterator.c:
-
-   whoops.
-
-2011-02-24 05:46  hardaker
-
-   * agent/helpers/table_iterator.c:
-
-   more missing stash references
-
-2011-02-24 05:45  hardaker
-
-   * agent/helpers/table_iterator.c:
-
-   ifdefed/featured out a missing stash_cache section
-
-2011-02-24 05:45  hardaker
-
-   * agent/mibgroup/util_funcs.c:
-
-   make the prefix_info more hierarchical and sub-feature the unused
-   one
-
-2011-02-24 05:45  hardaker
-
-   * local/minimalist/find-unused-code:
-
-   do include the perl/python code when searching for files
-
-2011-02-24 05:45  hardaker
-
-   * agent/helpers/table_tdata.c:
-
-   make the semi-used table_tdata functions children of
-   table_tdata_all
-   instead of just table_tdata
-
-2011-02-23 22:00  magfr
-
-   * agent/helpers/table_tdata.c:
-
-   Correct typo
-
-2011-02-23 21:54  magfr
-
-   * snmplib/parse.c:
-
-   Correct typo
-
-2011-02-23 21:10  nba
-
-   * agent/snmp_vars.c:
-
-   proper include of prototype
-
-2011-02-23 21:07  hardaker
-
-   *  configure, configure.d/config_modules_agent,   
-      configure.d/config_modules_transports,   
-      configure.d/config_project_with_enable:
-
-   compat some feature header chicken and egg problems
-
-2011-02-23 15:27  nba
-
-   * snmplib/snmpusm.c:
-
-   unsigned juggling to remove warnings
-
-2011-02-23 15:23  nba
-
-   *  agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c,
-        
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h,
-        
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c,
-         agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c,   
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h,   
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c:
-
-   unsigned juggling to remove warnings
-
-2011-02-23 15:20  nba
-
-   * agent/mibgroup/ip-mib.h:
-
-   Enable (probably forgotten) ipAddressPrefixTable
-
-2011-02-23 14:30  hardaker
-
-   *  local/minimalist, local/minimalist/feature-check,   
-      local/minimalist/feature-makedocs,   
-      local/minimalist/feature-remove,   
-      local/minimalist/find-unused-code,   
-      local/minimalist/removeifdefcode.pl:
-
-   added other missing 'new' files not included in the minimalist
-   patch file
-
-2011-02-23 09:54  nba
-
-   *  agent/mibgroup/tcp-mib/data_access/tcpConn_freebsd4.c,   
-      agent/mibgroup/tcp-mib/data_access/tcpConn_netbsd.c,   
-      agent/mibgroup/tcp-mib/data_access/tcpConn_openbsd.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_freebsd4.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_netbsd.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_openbsd.c:
-
-   Loading IPv6 data is a no-no when IPv6 not enabled
-
-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-23 01:48  hardaker
-
-   * include/net-snmp/net-snmp-features.h:
-
-   added missing net-snmp-features.h
-
-2011-02-23 00:01  hardaker
-
-   *  Makefile.in, Makefile.rules, Makefile.top, agent/Makefile.in,   
-      agent/agent_handler.c, agent/agent_index.c,   
-      agent/agent_read_config.c, agent/agent_registry.c,   
-      agent/agent_trap.c, agent/helpers/all_helpers.c,   
-      agent/helpers/baby_steps.c, agent/helpers/cache_handler.c,   
-      agent/helpers/instance.c, agent/helpers/mode_end_call.c,   
-      agent/helpers/multiplexer.c, agent/helpers/old_api.c,   
-      agent/helpers/read_only.c, agent/helpers/row_merge.c,   
-      agent/helpers/scalar.c, agent/helpers/scalar_group.c,   
-      agent/helpers/snmp_get_statistic.c, agent/helpers/stash_cache.c,  
-       agent/helpers/stash_to_next.c, agent/helpers/table.c,   
-      agent/helpers/table_array.c, agent/helpers/table_container.c,   
-      agent/helpers/table_data.c, agent/helpers/table_dataset.c,   
-      agent/helpers/table_iterator.c, agent/helpers/table_row.c,   
-      agent/helpers/table_tdata.c, agent/helpers/watcher.c,   
-      agent/mibgroup/Makefile.in, agent/mibgroup/Rmon/alarmTable.c,   
-      agent/mibgroup/agent/extend.c, agent/mibgroup/agent/nsCache.c,   
-      agent/mibgroup/agent/nsLogging.c,   
-      agent/mibgroup/agent/nsModuleTable.c,   
-      agent/mibgroup/agent/nsTransactionTable.c,   
-      agent/mibgroup/agent/nsVacmAccessTable.c,   
-      agent/mibgroup/agentx/agentx_config.c,   
-      agent/mibgroup/agentx/client.c, agent/mibgroup/agentx/master.c,   
-      agent/mibgroup/agentx/master_admin.c,   
-      agent/mibgroup/agentx/subagent.c,   
-      agent/mibgroup/disman/event/mteEvent.c,   
-      agent/mibgroup/disman/event/mteEventConf.c,   
-      agent/mibgroup/disman/event/mteEventNotificationTable.c,   
-      agent/mibgroup/disman/event/mteEventSetTable.c,   
-      agent/mibgroup/disman/event/mteEventTable.c,   
-      agent/mibgroup/disman/event/mteObjectsTable.c,   
-      agent/mibgroup/disman/event/mteTrigger.c,   
-      agent/mibgroup/disman/event/mteTriggerBooleanTable.c,   
-      agent/mibgroup/disman/event/mteTriggerConf.c,   
-      agent/mibgroup/disman/event/mteTriggerDeltaTable.c,   
-      agent/mibgroup/disman/event/mteTriggerExistenceTable.c,   
-      agent/mibgroup/disman/event/mteTriggerTable.c,   
-      agent/mibgroup/disman/event/mteTriggerThresholdTable.c,   
-      agent/mibgroup/disman/expr/expErrorTable.c,   
-      agent/mibgroup/disman/expr/expExpressionConf.c,   
-      agent/mibgroup/disman/expr/expExpressionTable.c,   
-      agent/mibgroup/disman/expr/expObjectConf.c,   
-      agent/mibgroup/disman/expr/expObjectTable.c,   
-      agent/mibgroup/disman/expression/expExpressionTable.c,   
-      agent/mibgroup/disman/mteEventNotificationTable.c,   
-      agent/mibgroup/disman/mteEventTable.c,   
-      agent/mibgroup/disman/mteTriggerTable.c,   
-      agent/mibgroup/disman/schedule/schedConf.c,   
-      agent/mibgroup/disman/schedule/schedCore.c,   
-      agent/mibgroup/disman/schedule/schedTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteResultsTable.c,   
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.c,
-         agent/mibgroup/examples/data_set.c,   
-      agent/mibgroup/examples/delayed_instance.c,   
-      agent/mibgroup/examples/netSnmpHostsTable.c,   
-      agent/mibgroup/examples/netSnmpHostsTable_checkfns.c,   
-      agent/mibgroup/examples/scalar_int.c,   
-      agent/mibgroup/hardware/cpu/cpu.c,   
-      agent/mibgroup/hardware/cpu/cpu_kinfo.c,   
-      agent/mibgroup/hardware/cpu/cpu_nlist.c,   
-      agent/mibgroup/hardware/cpu/cpu_perfstat.c,   
-      agent/mibgroup/hardware/cpu/cpu_sysctl.c,   
-      agent/mibgroup/hardware/memory/hw_mem.c,   
-      agent/mibgroup/header_complex.c,   
-      agent/mibgroup/host/data_access/swinst.c,   
-      agent/mibgroup/host/data_access/swinst_darwin.c,   
-      agent/mibgroup/host/data_access/swinst_pkginfo.c,   
-      agent/mibgroup/host/data_access/swinst_rpm.c,   
-      agent/mibgroup/host/data_access/swrun.c,   
-      agent/mibgroup/host/hr_filesys.c,   
-      agent/mibgroup/host/hr_swinst.c, agent/mibgroup/host/hr_system.c, 
-        agent/mibgroup/host/hrh_filesys.c,   
-      agent/mibgroup/if-mib/data_access/interface_linux.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable.h,   
-      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.h,   
-      agent/mibgroup/if-mib/ifXTable/ifXTable_constants.h,   
-      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c,   
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.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/ipaddress_common.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_linux.c,   
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c,
-        
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c,
-        
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c,
-        
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_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/ipDefaultRouterTable/ipDefaultRouterTable_data_access.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/ip_scalars.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/icmp.c, agent/mibgroup/mibII/interfaces.c,
-         agent/mibgroup/mibII/ip.c,   
-      agent/mibgroup/mibII/ipCidrRouteTable.c,   
-      agent/mibgroup/mibII/ipv6.c, agent/mibgroup/mibII/kernel_linux.c, 
-        agent/mibgroup/mibII/setSerialNo.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/tcpTable.c, agent/mibgroup/mibII/udp.c,   
-      agent/mibgroup/mibII/vacm_conf.c,   
-      agent/mibgroup/mibII/vacm_context.c,   
-      agent/mibgroup/mibII/vacm_vars.c,   
-      agent/mibgroup/mibII/vacm_vars.h,   
-      agent/mibgroup/mibII/var_route.c,   
-      agent/mibgroup/notification-log-mib/notification_log.c,   
-      agent/mibgroup/notification/snmpNotifyFilterProfileTable.c,   
-      agent/mibgroup/notification/snmpNotifyFilterProfileTable.h,   
-      agent/mibgroup/notification/snmpNotifyTable.c,   
-      agent/mibgroup/notification/snmpNotifyTable.h,   
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c,
-         agent/mibgroup/sctp-mib/sctpTables_common.c,   
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c,
-        
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c,
-        
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
-        
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.c,
-         agent/mibgroup/snmpv3/snmpEngine.c,   
-      agent/mibgroup/snmpv3/snmpMPDStats_5_5.c,   
-      agent/mibgroup/snmpv3/usmStats.c,   
-      agent/mibgroup/snmpv3/usmStats_5_5.c,   
-      agent/mibgroup/snmpv3/usmUser.c, agent/mibgroup/snmpv3/usmUser.h, 
-        agent/mibgroup/snmpv3mibs.h,   
-      agent/mibgroup/target/snmpTargetAddrEntry.c,   
-      agent/mibgroup/target/snmpTargetAddrEntry.h,   
-      agent/mibgroup/target/snmpTargetParamsEntry.c,   
-      agent/mibgroup/target/snmpTargetParamsEntry.h,   
-      agent/mibgroup/target/target.c,   
-      agent/mibgroup/target/target_counters.c,   
-      agent/mibgroup/target/target_counters.h,   
-      agent/mibgroup/target/target_counters_5_5.c,   
-      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,   
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c,
-        
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c,
-         agent/mibgroup/testhandler.c,   
-      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
-       
-      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
-        
-      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c,
-         agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.c,   
-      agent/mibgroup/ucd-snmp/dlmod.c,   
-      agent/mibgroup/ucd-snmp/extensible.c,   
-      agent/mibgroup/ucd-snmp/lmSensors.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/ucd-snmp/vmstat_linux.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_solaris2.c,   
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c,
-         agent/mibgroup/util_funcs.c, agent/mibgroup/utilities/iquery.c,
-         agent/mibgroup/winExtDLL.c, agent/snmp_agent.c,   
-      agent/snmp_vars.c, agent/snmpd.c, apps/Makefile.in,   
-      apps/agentxtrap.c, apps/snmpnetstat/Makefile.in,   
-      apps/snmpnetstat/main.c, apps/snmpnetstat/netstat.h,   
-      apps/snmpnetstat/route.c, apps/snmptest.c, apps/snmptranslate.c,  
-       apps/snmptrapd.c, apps/snmptrapd_handlers.c,   
-      apps/snmptrapd_sql.c, configure, configure.ac,   
-      configure.d/config_modules_agent, configure.d/config_modules_lib, 
-        configure.d/config_modules_security_modules,   
-      configure.d/config_modules_transports,   
-      configure.d/config_os_libs2,   
-      configure.d/config_project_perl_python,   
-      configure.d/config_project_with_enable,   
-      include/net-snmp/agent/snmp_agent.h,   
-      include/net-snmp/library/libsnmp.h,   
-      include/net-snmp/library/snmp.h,   
-      include/net-snmp/library/snmp_api.h,   
-      include/net-snmp/library/snmp_client.h,   
-      include/net-snmp/library/snmp_secmod.h,   
-      include/net-snmp/library/snmpksm.h,   
-      include/net-snmp/library/snmptsm.h,   
-      include/net-snmp/library/snmpusm.h,   
-      include/net-snmp/library/snmpv3.h,   
-      include/net-snmp/net-snmp-config.h.in, perl/OID/OID.xs,   
-      perl/SNMP/SNMP.xs, perl/agent/agent.xs, snmplib/Makefile.in,   
-      snmplib/callback.c, snmplib/cert_util.c, snmplib/check_varbind.c, 
-        snmplib/container.c, snmplib/container_iterator.c,   
-      snmplib/container_list_ssll.c, snmplib/container_null.c,   
-      snmplib/data_list.c, snmplib/default_store.c,   
-      snmplib/dir_utils.c, snmplib/fd_event_manager.c,   
-      snmplib/file_utils.c, snmplib/int64.c, snmplib/keytools.c,   
-      snmplib/lcd_time.c, snmplib/mib.c, snmplib/oid_stash.c,   
-      snmplib/parse.c, snmplib/read_config.c, snmplib/scapi.c,   
-      snmplib/snmp-tc.c, snmplib/snmp_api.c, snmplib/snmp_client.c,   
-      snmplib/snmp_enum.c, snmplib/snmp_logging.c,   
-      snmplib/snmp_openssl.c, snmplib/snmp_parse_args.c,   
-      snmplib/snmp_secmod.c, snmplib/snmp_transport.c,   
-      snmplib/snmpksm.c, snmplib/snmptsm.c, snmplib/snmpusm.c,   
-      snmplib/snmpv3.c, snmplib/system.c, snmplib/text_utils.c,   
-      snmplib/tools.c, snmplib/transports/snmpDTLSUDPDomain.c,   
-      snmplib/transports/snmpSSHDomain.c,   
-      snmplib/transports/snmpTLSBaseDomain.c,   
-      snmplib/transports/snmpTLSTCPDomain.c,   
-      snmplib/transports/snmpUnixDomain.c, snmplib/ucd_compat.c,   
-      testing/fulltests/default/Sv3config,   
-      testing/fulltests/default/Sv3usmconfigbase,   
-      testing/fulltests/default/Sv3vacmconfig,   
-      testing/fulltests/default/T049snmpv3inform_simple,   
-      testing/fulltests/default/T049snmpv3informauth_simple,   
-      testing/fulltests/default/T057trapdauthtest2_simple,   
-      testing/fulltests/default/T057trapdauthtest3_simple,   
-      testing/fulltests/default/T057trapdauthtest_simple,   
-      testing/fulltests/default/T060trapdperl_simple,   
-      testing/fulltests/default/T061agentperl_simple,   
-      testing/fulltests/default/T113agentxtrap_simple,   
-      testing/fulltests/default/T114agentxagentxtrap_simple:
-
-   NEWS: packaging: Enable micro-and-macro-feature management within
-   Net-SNMP; this adds a number of new flags to configure
-   (--enable-minimalist and --enable-read-only). These changes are
-   designed to remove much of the inline code that isn't always
-   necessary or desired. Scripts exist (and will be improved) to
-   stip out unused components from the code entirely to enable a
-   shorter review process for upgrading to new releases. This work
-   was done by Wes Hardaker and Michael Baer from SPARTA, Inc. but
-   is being checked in as a large patch since converting the micro
-   patches from git to svn turend out to be impossible
-
-2011-02-22 23:55  hardaker
-
-   * FAQ:
-
-   use the wiki URL instead of the tutorial-5 URL for the snmptrap
-   tutorial
-
-2011-02-21 22:40  nba
-
-   * agent/mibgroup/host/data_access/swrun_kinfo.c:
-
-   proper process status values for netbsd
-
-2011-02-21 22:39  nba
-
-   * snmplib/scapi.c:
-
-   conditionalize variable
-
-2011-02-21 22:20  nba
-
-   * agent/mibgroup/tcp-mib/data_access/tcpConn.h:
-
-   tcp-mib/udp-mib support for the *bsds
-
-2011-02-21 22:16  nba
-
-   *  agent/mibgroup/mibII.h,   
-      agent/mibgroup/tcp-mib/data_access/tcpConn_freebsd4.c,   
-      agent/mibgroup/tcp-mib/data_access/tcpConn_netbsd.c,   
-      agent/mibgroup/tcp-mib/data_access/tcpConn_openbsd.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint.h,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_freebsd4.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_netbsd.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_openbsd.c,   
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c:
-
-   tcp-mib/udp-mib support for the *bsds
-
-2011-02-21 22:05  nba
-
-   * 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c:
-
-   Properly end debug message with newline
-
-2011-02-21 22:04  nba
-
-   * agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c:
-
-   remove var that shadows the useful one
-
-2011-02-21 22:02  nba
-
-   * agent/mibgroup/mibII/ipv6.c:
-
-   major fiddling to get things working for openbsd too. This should
-   really be reworked to use the tcp-mib/udp-mib/data_access
-
-2011-02-21 21:59  nba
-
-   * agent/mibgroup/mibII/tcpTable.c:
-
-   fix tcp states for dragonflybsd
-
-2011-02-21 21:57  nba
-
-   * agent/mibgroup/mibII.h:
-
-   enable new tcp/udp mibs for solaris
-
-2011-02-21 21:53  magfr
-
-   * agent/mibgroup/hardware/sensors/lmsensors_v3.c:
-
-   Do not use c99
-
-2011-02-21 19:08  hardaker
-
-   * dist/makerelease.xml:
-
-   Updated comment about where makerelease comes from (now github)
-
-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-18 14:43  jsafranek
-
-   *  agent/mibgroup/hardware/fsys/fsys_getfsstats.c,   
-      agent/mibgroup/hardware/fsys/fsys_mntctl.c,   
-      agent/mibgroup/hardware/fsys/fsys_mntent.c,   
-      agent/mibgroup/hardware/fsys/hw_fsys.c,   
-      agent/mibgroup/host/hrh_storage.c,   
-      include/net-snmp/agent/ds_agent.h,   
-      include/net-snmp/agent/hardware/fsys.h, man/snmpd.conf.5.def:
-
-   CHANGES: snmpd: reworked hrStorageTable to support large
-   filesystems.
-   
-   The hrStorageAllocationUnits does not report real allocation unit
-   size,
-   but some calculated value so hrStorageAllocationUnits *
-   hrStorageSize
-   gives real size of the filesystem.
-   
-   This calculation happens only when hrStorageSize is too small
-   (32bits)
-   for filesystem size, e.g. filesystems larger than 8TB with 4096
-   bytes
-   block size.
-   
-   This calculation can be turned off by 'realStorageUnits' config
-   option.
-
-2011-02-18 14:29  jsafranek
-
-   *  agent/mibgroup/hardware/fsys/fsys_mntent.c,   
-      agent/mibgroup/hardware/fsys/mnttypes.h:
-
-   Add JFS and XFS to list of known filesustems
-
-2011-02-17 11:28  jsafranek
-
-   * local/snmp-bridge-mib:
-
-   Fixed snmp-bridge-mib in standalone (agentx) version.
-   Don't declare local variables inside block. Patch provided by
-   Jens Osterkamp.
-
-2011-02-16 14:56  jsafranek
-
-   * local/snmp-bridge-mib:
-
-   Fixed snmp-bridge-mib when working in the embedded perl.
-
-2011-02-16 13:16  jsafranek
-
-   * local/snmp-bridge-mib:
-
-   Fixed GETNEXT processing in snmp-bridge-mib.
-
-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:46  nba
-
-   * configure:
-
-   rerun autoheader/autoconf
-
-2011-02-15 21:33  nba
-
-   * include/net-snmp/library/snmp_transport.h:
-
-   include sys/types.h before sys/socket.h
-
-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-15 19:42  hardaker
-
-   * snmplib/snmp_logging.c:
-
-   remove the statement about enabling stderr by default.
-
-2011-02-15 19:42  hardaker
-
-   * agent/mibgroup/mibII/vacm_vars.c:
-
-   remove 3 functions that as far as I can tell have possibly never
-   been used
-
-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-09 07:34  bvassche
-
-   * include/net-snmp/library/container.h:
-
-   Building DLL and Perl modules with win32/build.bat works again.
-
-2011-02-08 19:38  hardaker
-
-   * agent/helpers/instance.c, include/net-snmp/agent/instance.h:
-
-   Remove the functions marked as deprecated and safe for removal in
-   5.6.
-
-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-07 20:07  hardaker
-
-   * man/snmp.conf.5.def:
-
-   document the 3 new SSH config tokens
-
-2011-02-07 20:07  hardaker
-
-   * snmplib/transports/snmpSSHDomain.c:
-
-   CHANGES: libnetsnmp: made the SSH transport configurable as it
-   should be.
-
-2011-02-07 20:07  hardaker
-
-   * include/net-snmp/library/default_store.h:
-
-   Added default_store strings for ssh: username, pubkey, privkey
-
-2011-02-06 06:34  magfr
-
-   * agent/mibgroup/mibII/system_mib.c:
-
-   Simplify the control flow to allow for more optimization.
-
-2011-02-03 22:42  tanders
-
-   * snmplib/snmp_api.c:
-
-   CHANGES: snmplib: BUG: 3171878: Using SNMPv3 context does not
-   work
-
-2011-02-02 07:09  magfr
-
-   * agent/snmpd.c:
-
-   Include the USING_ variables from the agent library as well, in
-   particular the
-   USING_AGENTX_* variables.
-
-2011-02-01 13:07  jsafranek
-
-   * agent/mibgroup/ip-mib/data_access/systemstats_common.c:
-
-   Don't check for 32/64bit wrap in calculated entries.
-
-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-02-01 07:19  magfr
-
-   * agent/snmpd.c:
-
-   Remove some unused includes
-
-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 15:21  magfr
-
-   * apps/agentxtrap.c:
-
-   Reduce the number of used include files.
-
-2011-01-30 09:35  magfr
-
-   * agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.h:
-
-   CHANGES: snmpd: Add missing function declaration
-
-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 16:49  hardaker
-
-   * testing/fulltests/default/T027snmpv3Defaults_simple:
-
-   a test to ensure v3/USM snmp.conf settings work
-
-2011-01-26 16:49  hardaker
-
-   * dist/makerelease.xml:
-
-   remove testopts
-
-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, 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-18 22:39  nba
-
-   * include/net-snmp/net-snmp-config.h.in:
-
-   autoheader
-
-2011-01-18 22:37  nba
-
-   * agent/mibgroup/if-mib/data_access/interface.h:
-
-   Find proper if-mib interface for NetBSD
-
-2011-01-18 22:36  nba
-
-   * agent/mibgroup/host/hr_swrun.c:
-
-   typo
-
-2011-01-18 22:35  nba
-
-   * acconfig.h:
-
-   define dragonflyid
-
-2011-01-14 13:24  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,   
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c:
-
-   Add IPv6 support for creating rows in ipAddresstable.
-   
-   Using SNMP SET, it is now possible to create and destroy IPv6
-   addresses on an interface.
-
-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 06:25  rstory
-
-   * agent/mibgroup/agentx/protocol.c:
-
-   remove completely useless and nonsensical code
-
-2011-01-13 17:24  rstory
-
-   * snmplib/transports/snmpDTLSUDPDomain.c:
-
-   allocate space for array NULL termination
-
-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:15  dts12
-
-   * agent/mibgroup/mibII/kernel_netbsd.c:
-
-   Remove C++ comments
-
-2011-01-13 13:17  dts12
-
-   * agent/auto_nlist.c:
-
-   Fix broken patch
-
-2011-01-13 12:14  dts12
-
-   *  configure, configure.d/config_os_headers,   
-      configure.d/config_os_libs1:
-
-   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 21:23  rstory
-
-   * agent/mibgroup/notification/snmpNotifyTable.c:
-
-   merge duplicated shutdown functions
-
-2011-01-12 20:11  bvassche
-
-   *  agent/helpers/table_iterator.c,   
-      include/net-snmp/agent/table_iterator.h:
-
-   Reimplement netsnmp_register_table_iterator2() by adding the flag
-   NETSNMP_ITERATOR_OWNS_IINFO for
-   netsnmp_iterator_info. Remove
-   netsnmp_get_table_iterator_handler2() because it is now
-   superfluous.
-
-2011-01-12 19:22  bvassche
-
-   * agent/snmp_vars.c:
-
-   Avoid that the compiler complains about a missing declaration for
-   netsnmp_certs_agent_init().
-
-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-11 17:27  rstory
-
-   * include/net-snmp/library/snmp_transport.h:
-
-   do not include ipv6 struct if ipv6 is not enabled
-
-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:
-
-   CHANGES: 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 13:34  jsafranek
-
-   * snmplib/transports/snmpUDPBaseDomain.c:
-
-   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).
-
-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/transports/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-11 07:04  nba
-
-   * agent/mibgroup/if-mib/data_access/interface_linux.c:
-
-   Fix for pci_lookup_name and RHEL4
-
-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 08:30  magfr
-
-   * configure, configure.d/config_modules_security_modules:
-
-   CHANGES: building: Fix --with-security-modules handling
-   Allow repeated modules (tsm,tsm) as well as defailt modules (usm)
-   Move the generation of the files after the checking
-
-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: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: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-06 09:35  bvassche
-
-   *  agent/helpers/table_iterator.c, agent/mibgroup/agent/nsCache.c,   
-      agent/mibgroup/agent/nsDebug.c, agent/mibgroup/agent/nsLogging.c, 
-        agent/mibgroup/agent/nsModuleTable.c,   
-      agent/mibgroup/agent/nsTransactionTable.c,   
-      agent/mibgroup/agent/nsVacmAccessTable.c,   
-      agent/mibgroup/examples/netSnmpHostsTable.c,   
-      agent/mibgroup/mibII/icmp.c,   
-      agent/mibgroup/mibII/ipCidrRouteTable.c,   
-      agent/mibgroup/mibII/tcpTable.c, agent/mibgroup/mibII/udpTable.c, 
-        agent/mibgroup/mibII/vacm_context.c,   
-      agent/mibgroup/notification/snmpNotifyTable.c,   
-      agent/mibgroup/notification/snmpNotifyTable.h,   
-      agent/mibgroup/target/snmpTargetAddrEntry.c,   
-      agent/mibgroup/target/snmpTargetAddrEntry.h,   
-      include/net-snmp/agent/table_iterator.h:
-
-   CHANGES: agent: Added netsnmp_get_table_iterator2().
-   CHANGES: agent: Added netsnmp_register_table_iterator2().
-   CHANGES: agent: Added netsnmp_handler_owns_iterator_info().
-   CHANGES: agent: Fixed leak-at-exit triggered by snmpNotifyTable.
-   CHANGES: agent: Fixed leak-at-exit triggered by
-   snmpTargetAddrTable.
-   Also, restored backwards compatibility of
-   netsnmp_register_table_iterator().
-
-2011-01-06 04:45  rstory
-
-   * include/net-snmp/library/snmp_transport.h:
-
-   include sys/socket.h if available
-
-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-05 09:55  dts12
-
-   * apps/snmpwalk.c:
-
-   Expand tab characters
-
-2011-01-04 22:06  magfr
-
-   * snmplib/snmp_transport.c:
-
-   CHANGES: snmplib: Check that the argument to
-   netsnmp_transport_copy is non-NULL
-
-2011-01-04 18:24  hardaker
-
-   * COPYING:
-
-   Copyright update for 2011
-
-2011-01-04 12:01  bvassche
-
-   * agent/mibgroup/mibII/var_route.c:
-
-   Fix compiler warnings triggered by the Win32 MIB-II
-   implementation.
-
-2011-01-03 19:48  bvassche
-
-   * agent/mibgroup/sctp-mib/sctpScalars.c:
-
-   Removed two unused variables.
-
-2011-01-03 19:47  bvassche
-
-   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
-
-   Fixed a recently introduced mismatch between format specification
-   and argument list.
-
-2011-01-03 19:47  bvassche
-
-   * snmplib/transports/snmpTLSBaseDomain.c:
-
-   Get rid of recently introduced compiler warnings by adding two
-   #include directives and commenting out two unused functions.
-
-2011-01-02 05:48  rstory
-
-   * snmplib/transports/snmpTLSTCPDomain.c:
-
-   don't free callers ptr
-
-2011-01-02 05:48  rstory
-
-   *  agent/agent_registry.c, agent/helpers/table.c,   
-      agent/helpers/table_data.c,   
-      agent/mibgroup/disman/event/mteEvent.c,   
-      agent/mibgroup/disman/event/mteObjects.c,   
-      agent/mibgroup/disman/nslookup/lookupCtlTable.c,   
-      agent/mibgroup/disman/ping/pingCtlTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c,   
-      agent/mibgroup/hardware/cpu/cpu.c,   
-      agent/mibgroup/if-mib/data_access/interface.c,   
-      agent/mibgroup/ip-forward-mib/data_access/route_common.c,   
-      agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.c,   
-      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,   
-      agent/mibgroup/snmpv3/usmUser.c, agent/snmp_agent.c,   
-      apps/snmpnetstat/if.c, snmplib/container_binary_array.c,   
-      snmplib/keytools.c, snmplib/mib.c, snmplib/snmp_api.c,   
-      snmplib/snmpv3.c, snmplib/tools.c,   
-      snmplib/transports/snmpCallbackDomain.c,   
-      testing/fulltests/snmpv3/T040keymanagetest_capp.c:
-
-   clean up SNMP_FREE usage
-
-2011-01-02 05:47  rstory
-
-   * snmplib/transports/snmpIPv6BaseDomain.c:
-
-   fix cut-n-paste error in debug token
-
-2011-01-02 05:47  rstory
-
-   * include/net-snmp/library/snmpUDPIPv6Domain.h:
-
-   fix function name in prototype
-
-2011-01-02 05:46  rstory
-
-   * agent/helpers/cache_handler.c:
-
-   fix compiler warning
-
-2011-01-02 05:46  rstory
-
-   * include/net-snmp/library/container.h, snmplib/container.c:
-
-   CHANGES: snmplib: remove inline versions of container funcs
-
-2011-01-02 05:46  rstory
-
-   * snmplib/cert_util.c:
-
-   CHANGES: snmplib: dont return empty array
-
-2011-01-02 05:46  rstory
-
-   * man/snmpd.conf.5.def, snmplib/transports/snmpUDPIPv6Domain.c:
-
-   fix typos/grammar in man pages/comments (no code changes)
-
-2011-01-02 05:45  rstory
-
-   *  agent/mibgroup/target/target.c, python/netsnmp/client_intf.c,   
-      snmplib/transports/snmpTLSBaseDomain.c:
-
-   NEWS: snmplib: add new transport config tokens
-   localCert/peerCert,
-   deprecate our_identity, their_identity
-
-2011-01-02 05:45  rstory
-
-   *  include/net-snmp/library/default_store.h, man/snmpcmd.1.def,   
-      man/snmpd.conf.5.def, snmplib/cert_util.c,   
-      snmplib/transports/snmpTLSBaseDomain.c:
-
-   NEWS: snmplib: introduce new localCert/peerCert, deprecate
-   serverCert, clientCert, defX509ServerPub, defX509ClientPub
-
-2011-01-02 05:44  rstory
-
-   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
-      include/net-snmp/library/snmp_transport.h,   
-      snmplib/snmp_transport.c, snmplib/transports/snmpDTLSUDPDomain.c, 
-        snmplib/transports/snmpIPv4BaseDomain.c,   
-      snmplib/transports/snmpTCPIPv6Domain.c,   
-      snmplib/transports/snmpTLSTCPDomain.c,   
-      snmplib/transports/snmpUDPBaseDomain.c,   
-      snmplib/transports/snmpUDPIPv6Domain.c:
-
-   NEWS: snmplib: add IPv6 support to DTLSUDP transport
-   CHANGES: snmplib: use new netsnmp_sockaddr_storage in
-   netsnmp_addr_pair
-   CHANGES: snmplib: add base_transport ptr for tunneled transports
-
-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:
-
-   NEWS: snmpd: Patch 3141462: from fenner: fix agentx subagent
-   issues with multiple-object requests
-
-2010-12-29 01:33  hardaker
-
-   * snmplib/vacm.c:
-
-   NEWS: snmpd: Patch from Niels to fix VACM persistant storage.
-
-2010-12-21 11:29  dts12
-
-   * dist/makerelease.xml:
-
-   Bring all versions of makerelease.xml into line
-
-2010-12-21 06:14  nba
-
-   * agent/mibgroup/agent_mibs.h:
-
-   fix configuring with --disable-debugging
-
-2010-12-20 23:27  hardaker
-
-   *  testing/fulltests/default/T200snmpv2cwalkall_simple,   
-      testing/fulltests/support/simple_eval_tools.sh,   
-      testing/fulltests/support/simple_run:
-
-   Patch from Magnus to fix if ! tests on solaris
-
-2010-12-14 20:10  rstory
-
-   * man/snmpcmd.1.def:
-
-   fix typo in man page
-
-2010-12-10 15:50  hardaker
-
-   * agent/agent_trap.c, snmplib/snmpusm.c:
-
-   CHANGES: snmpd: Patch from Claus Klein to fix engineid generation
-   on outgoing v3 traps from the agent
-
-2010-12-08 13:17  jsafranek
-
-   * agent/mibgroup/mibII/ipv6.c:
-
-   CHANGES: snmpd: 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.
-
-2010-12-06 23:23  hardaker
-
-   * agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c:
-
-   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:
-
-   fix contextEngineIDs for outgoing informs from snmpinform to be
-   the local engineID
-
-2010-12-01 21:18  nba
-
-   * agent/mibgroup/if-mib/data_access/interface_linux.c:
-
-   Fix conflicting declarations
-
-2010-12-01 01:23  hardaker
-
-   * agent/snmp_vars.c:
-
-   Patch from magfr to fix building without openssl
-
-2010-12-01 01:06  hardaker
-
-   * agent/snmpd.c:
-
-   use netsnmp_assert instead of assert
-
-2010-11-30 23:43  hardaker
-
-   * snmplib/transports/snmpDTLSUDPDomain.c:
-
-   implement DTLS cookies semi-properly (state is still saved, which
-   still needs to change)
-
-2010-11-30 23:27  hardaker
-
-   * perl/SNMP/SNMP.xs:
-
-   CHANGES: perl: patch 3049029: from fennec: fix a memory leak with
-   snmp bulkwalks
-
-2010-11-30 23:16  hardaker
-
-   * 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c:
-
-   CHANGES: snmpd: PATCH: 3053436: from: takevos: fix:
-   tcpConnectionTable_data_access invalid memory access
-
-2010-11-30 23:12  hardaker
-
-   * 
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.c:
-
-   CHANGES: snmpd: PATCH: 3053436: from: takevos: fix:
-   tcpListenerTable_data_access invalid memory access
-
-2010-11-30 22:18  hardaker
-
-   *  agent/mibgroup/if-mib/data_access/interface_linux.c, configure,   
-      configure.d/config_os_struct_members,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   reverted 19701 (ethtool) as it broke things
-
-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:58  hardaker
-
-   * apps/snmpwalk.c:
-
-   NEWS: apps: PATCH 3054817: from nightcoding: Adds per-variable
-   timed output support to snmpwalk using -CT
-
-2010-11-30 05:56  hardaker
-
-   *  agent/mibgroup/if-mib/data_access/interface_linux.c, configure,   
-      configure.d/config_os_struct_members,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: snmpd: PATCH: 3057090: from shemminger: make ethtool
-   support on linux use the high speed struct info for 100G+.
-
-2010-11-30 05:47  hardaker
-
-   *  agent/mibgroup/if-mib/data_access/interface_linux.c, configure,   
-      configure.d/config_os_libs2,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   NEWS: snmpd: PATCH 3057093: from shemminger: allow linux to use
-   libpci for creating useful ifDescr strings
-
-2010-11-30 04:58  hardaker
-
-   * agent/mibgroup/ip-mib/data_access/systemstats_linux.c:
-
-   CHANGES: PATCH 3074918: from weizheng: check for CONTAINER_INSERT
-   failures and react appropriately to avoid memory leaks
-
-2010-11-30 04:34  rstory
-
-   * snmplib/cert_util.c:
-
-   CHANGES: snmpd: add debug for cert find hint as string/int
-
-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-29 22:20  rstory
-
-   * snmplib/transports/snmpTLSBaseDomain.c:
-
-   CHANGES: snmpd: add debug for ssl ciphers, clarify fingerprint
-   match debug
-
-2010-11-29 22:18  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 11:04  bvassche
-
-   *  .,   
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c:
-
-   Applied r19688 on the trunk too (follow-up for r19685).
-
-2010-11-18 03:49  rstory
-
-   *  agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/ip.c,   
-      agent/mibgroup/mibII/tcp.c, agent/mibgroup/mibII/udp.c,   
-      agent/mibgroup/sctp-mib/sctpScalars.c:
-
-   CHANGES: agent: 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
-
-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 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:
-
-   CHANGES: Linux: 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.
-
-2010-11-15 14:15  bvassche
-
-   * snmplib/asn1.c:
-
-   CHANGES: snmplib: 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.
-
-2010-11-15 13:32  bvassche
-
-   * testing/fulltests/unit-tests/T008asn1_clib.c:
-
-   Avoid triggering truncation warnings.
-
-2010-11-15 13:16  bvassche
-
-   * testing/fulltests/unit-tests/T008asn1_clib.c:
-
-   Restricted all constants to 32 bits.
-
-2010-11-15 12:35  bvassche
-
-   * snmplib/snmp_debug.c:
-
-   Follow-up for r19665.
-
-2010-11-15 12:33  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 *.
-
-2010-11-15 10:56  bvassche
-
-   * testing/fulltests/unit-tests/T008asn1_clib.c:
-
-   Added unit test for ASN.1 encoding and decoding (only 32-bit and
-   64-bit
-   integers so far).
-
-2010-11-11 22:48  nba
-
-   * agent/mibgroup/notification-log-mib/notification_log.c:
-
-   Fix r19636: TrapOID is not the first varbind in the converted v2
-   trap
-
-2010-11-11 08:38  bvassche
-
-   *  agent/mibgroup/if-mib/data_access/interface_linux.c,   
-      agent/mibgroup/util_funcs.c, agent/mibgroup/util_funcs.h:
-
-   Cleanup: Removed superfluous references to the POSIX threads
-   library.
-
-2010-11-11 08:20  bvassche
-
-   * agent/mibgroup/util_funcs.h:
-
-   Follow-up for r19660: Use pid_t consistently.
-
-2010-11-10 16:36  bvassche
-
-   *  agent/mibgroup/struct.h, agent/mibgroup/ucd-snmp/pass_persist.c,  
-       agent/mibgroup/util_funcs.c, agent/mibgroup/util_funcs.h,   
-      include/net-snmp/types.h:
-
-   CHANGES: agent: Introduced netsnmp_pid_t.
-   CHANGES: Win32: Eliminated casts between int and HANDLE in
-   agent/mibgroup/util_funcs.c and
-   agent/mibgroup/ucd-snmp/pass_persist.c.
-
-2010-11-10 15:49  bvassche
-
-   *  win32/libsnmp/Makefile.in, win32/libsnmp/libsnmp.dsp,   
-      win32/libsnmp_dll/Makefile.in, win32/libsnmp_dll/libsnmp_dll.dsp:
-
-   Follow-up for r19606: cmu_compat removal.
-
-2010-11-10 12:31  bvassche
-
-   * configure, configure.d/config_os_progs:
-
-   CHANGES: 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.
-
-2010-11-09 13:47  bvassche
-
-   * 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:
-
-   Passes now on MinGW too.
-
-2010-11-09 11:31  bvassche
-
-   * configure, configure.d/config_os_functions:
-
-   Follow-up for r19646.
-
-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-09 10:02  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.
-
-2010-11-08 15:36  bvassche
-
-   * testing/fulltests/default/T071com2sec6_simple:
-
-   CHANGES: testing: Test 71 (com2sec6_simple) does now succeed even
-   if IPv6 DNS resolution is not available.
-
-2010-11-08 15:02  bvassche
-
-   * testing/fulltests/support/clib_build:
-
-   MinGW, testing: clib tests build again without warnings.
-
-2010-11-08 14:52  bvassche
-
-   *  configure, configure.d/config_os_functions,   
-      configure.d/config_os_progs:
-
-   CHANGES: MinGW: configure: Detection of the functions
-   gai_strerror(), getaddrinfo(), gethostbyname() and gethostname()
-   does now succeed.
-
-2010-11-08 14:48  bvassche
-
-   * testing/fulltests/unit-tests/T007inet_pton_clib.c:
-
-   CHANGES: testing: Added inet_ntop() and inet_pton() unit test.
-
-2010-11-08 14:47  bvassche
-
-   * testing/fulltests/support/clib_build:
-
-   testing: clib_build: Added #include directives (<arpa/inet.h> and
-   <netinet/ip6.h>).
-
-2010-11-08 08:46  bvassche
-
-   * agent/mibgroup/struct.h, agent/mibgroup/util_funcs.c:
-
-   Win32: agent: eliminated casts from/to int for thread handles.
-
-2010-11-08 07:58  bvassche
-
-   * agent/helpers/cache_handler.c:
-
-   Removed NETSNMP_STATIC_INLINE from the declaration of
-   _build_cache_name - at least gcc is better than a human at
-   deciding which functions should be inlined and which ones not.
-
-2010-11-08 07:56  bvassche
-
-   * agent/helpers/table_data.c:
-
-   netsnmp_table_data_clone_row(): Added missing free() statement in
-   an error path.
-
-2010-11-07 21:15  dts12
-
-   * agent/mibgroup/host/hr_storage.c:
-
-   CHANGES: snmpd: PATCHES: 2119725: Fix skipNFSInHostResources
-   handling of hrStorageTable
-
-2010-11-07 21:14  magfr
-
-   * snmplib/data_list.c:
-
-   CHANGES: snmplib: Check the return value of strdup in
-   netsnmp_create_data_list and fail if strdup fails.
-
-2010-11-07 19:44  dts12
-
-   * agent/mibgroup/notification/snmpNotifyTable.c:
-
-   CHANGES: snmpd: PATCHES: 3096725: Don't register v1Trap callback,
-   if SNMPv1 is not supported
-
-2010-11-07 19:38  dts12
-
-   * agent/mibgroup/notification-log-mib/notification_log.c:
-
-   CHANGES: snmpd: BUGS: 1840230: Don't include the index object as
-   (pseudo-)accessible column.
-
-2010-11-07 19:33  dts12
-
-   * agent/mibgroup/notification-log-mib/notification_log.c:
-
-   CHANGES: snmpd: PATCHES: 3096725: Include SNMPv1 trap OIDs in
-   nlmLogNotificationID column
-
-2010-11-07 16:35  magfr
-
-   * include/net-snmp/library/snmp_assert.h:
-
-   CHANGES: snmplib: force a ; at the end of the static_assert
-   macro.
-
-2010-11-05 15:41  bvassche
-
-   * configure, configure.d/config_os_functions:
-
-   Made sure that rpmGetPath() can be found by configure.
-
-2010-11-05 14:50  bvassche
-
-   * configure, configure.d/config_os_libs1:
-
-   Removed superfluous -I/usr/include/rpm.
-
-2010-11-05 12:18  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: Find out whether librpm is available before
-   configuring the agent modules because host/data/access/swinst
-   needs symbol HAVE_LIBRPM. As a result, configure has to be run
-   only once instead of twice to enable the hrSWInstalled table on
-   systems that have librpm.
-
-2010-11-05 12:11  bvassche
-
-   * agent/mibgroup/disman/expression/expErrorTable.c:
-
-   Suppress a compiler warning.
-
-2010-11-05 10:00  bvassche
-
-   * agent/mibgroup/host/data_access/swinst_rpm.c:
-
-   CHANGES: agent: host/data_access/swinst_rpm: Fixed a memory leak
-   in netsnm_swinst_arch_init().
-
-2010-11-05 09:23  bvassche
-
-   * agent/mibgroup/host/data_access/swinst_rpm.c:
-
-   CHANGES: agent: host/data_access/swinst_rpm: Pass correct path to
-   rpmdbOpen() such that opening the database succeeds.
-   CHANGES: agent: host/data_access/swinst_rpm: Log an error message
-   if rpmdbOpen() fails.
-
-2010-11-05 08:50  bvassche
-
-   *  agent/mibgroup/Rmon/alarmTable.c, agent/mibgroup/Rmon/event.c,   
-      agent/mibgroup/Rmon/history.c, agent/mibgroup/Rmon/row_api.h,   
-      agent/mibgroup/Rmon/rows.c, agent/mibgroup/Rmon/statistics.c,   
-      agent/mibgroup/disman/expression/expExpressionTable.c,   
-      agent/mibgroup/disman/expression/expObjectTable.c,   
-      agent/mibgroup/disman/expression/expValueTable.c:
-
-   Rmon / disman compiler warning fixes.
-
-2010-11-05 08:48  bvassche
-
-   * include/net-snmp/library/snmp_assert.h:
-
-   CHANGES: snmplib: Added macro netsnmp_static_assert().
-
-2010-11-05 08:40  bvassche
-
-   * agent/mibgroup/agentx/subagent.c:
-
-   Follow-up for r19566.
-
-2010-11-05 08:37  bvassche
-
-   * agent/mibgroup/host/data_access/swinst.h:
-
-   Removed a (harmless ?) circular reference.
-
-2010-11-04 13:09  dts12
-
-   * dist/net-snmp.spec:
-
-   CHANGES: Linux: PATCHES: 3083027: Fix RPM spec file to support
-   CentOS
-
-2010-11-03 13:22  rstory
-
-   * testing/fulltests/tls/T200TlsIpv6_simple:
-
-   skip tlsipv6 test if not tlstcp/tcpipv6 domains
-
-2010-11-01 23:03  magfr
-
-   *  acconfig.h, include/net-snmp/library/cmu_compat.h,   
-      include/net-snmp/library/libsnmp.h,   
-      include/net-snmp/net-snmp-config.h.in,   
-      include/net-snmp/net-snmp-includes.h, snmplib/Makefile.in,   
-      snmplib/cmu_compat.c, snmplib/mib.c,   
-      win32/net-snmp/net-snmp-config.h:
-
-   NEWS: snmplib: Remove the support for CMU compatibility since
-   there is no way to enable it and nobody have missed it.
-
-2010-11-01 16:50  dts12
-
-   * man/variables.5.def:
-
-   Rework description of OID name handling to be
-   not quite so incredibly out of date.
-
-2010-11-01 16:47  dts12
-
-   * man/snmpget.1.def:
-
-   Document -Cf in the two man pages separately.
-
-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 14:35  bvassche
-
-   *  agent/mibgroup/host/hrSWInstalledTable.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable_interface.c:
-
-   Reverted incorrect changes from r19575.
-
-2010-10-29 14:21  bvassche
-
-   * agent/helpers/cache_handler.c:
-
-   Fixed a bug that was introduced in r19515.
-
-2010-10-29 14:00  bvassche
-
-   * 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.c,
-         agent/mibgroup/host/data_access/swinst.c,   
-      agent/mibgroup/host/data_access/swrun.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable_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/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.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:
-
-   Reverted the incorrect changes from r19593.
-
-2010-10-29 13:38  bvassche
-
-   * snmplib/cert_util.c:
-
-   Reduced number of leak-at-exit complaints triggered by
-   snmplib/cert_util.c.
-
-2010-10-29 13:37  bvassche
-
-   * 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.c,
-         agent/mibgroup/host/data_access/swinst.c,   
-      agent/mibgroup/host/data_access/swrun.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable_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/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.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/target/snmpTargetParamsEntry.c,   
-      agent/mibgroup/target/snmpTargetParamsEntry.h,   
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c,
-        
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c,
-        
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c:
-
-   More leak-at-exit fixes.
-
-2010-10-29 13:35  bvassche
-
-   * agent/mibgroup/agent/extend.c, agent/mibgroup/agent/extend.h:
-
-   More leak-at-exit fixes.
-
-2010-10-29 12:18  bvassche
-
-   * snmplib/cert_util.c, snmplib/container_binary_array.c:
-
-   Spelling fix in log texts: containter -> container.
-
-2010-10-29 09:58  bvassche
-
-   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
-
-   Ran fillup_entry_info() through indent.
-
-2010-10-29 09:56  bvassche
-
-   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
-
-   Netlink IPv6 prefix processing: Added more debug statements.
-
-2010-10-29 09:54  bvassche
-
-   * agent/helpers/table.c:
-
-   Made argument checking of netsnmp_handler_owns_table_info() more
-   strict.
-
-2010-10-29 09:52  bvassche
-
-   *  agent/mibgroup/agent/extend.c,   
-      agent/mibgroup/disman/event/mteEventNotificationTable.c,   
-      agent/mibgroup/disman/event/mteEventNotificationTable.h,   
-      agent/mibgroup/disman/event/mteEventSetTable.c,   
-      agent/mibgroup/disman/event/mteEventSetTable.h,   
-      agent/mibgroup/disman/event/mteEventTable.c,   
-      agent/mibgroup/disman/event/mteEventTable.h,   
-      agent/mibgroup/disman/event/mteObjectsTable.c,   
-      agent/mibgroup/disman/event/mteObjectsTable.h,   
-      agent/mibgroup/disman/event/mteTriggerBooleanTable.c,   
-      agent/mibgroup/disman/event/mteTriggerBooleanTable.h,   
-      agent/mibgroup/disman/event/mteTriggerDeltaTable.c,   
-      agent/mibgroup/disman/event/mteTriggerExistenceTable.c,   
-      agent/mibgroup/disman/event/mteTriggerTable.c,   
-      agent/mibgroup/disman/event/mteTriggerTable.h,   
-      agent/mibgroup/disman/event/mteTriggerThresholdTable.c,   
-      agent/mibgroup/disman/event/mteTriggerThresholdTable.h,   
-      agent/mibgroup/disman/schedule/schedTable.c,   
-      agent/mibgroup/disman/schedule/schedTable.h,   
-      agent/mibgroup/host/hrSWRunPerfTable.c,   
-      agent/mibgroup/host/hrSWRunPerfTable.h,   
-      agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.c,   
-      agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.h,   
-      agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.c,   
-      agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.h,   
-      agent/mibgroup/sctp-mib/sctpAssocTable.c,   
-      agent/mibgroup/sctp-mib/sctpAssocTable.h,   
-      agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.h,   
-      agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.h,   
-      agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.h,   
-      agent/mibgroup/sctp-mib/sctpLookupRemPortTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupRemPortTable.h,   
-      agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.h:
-
-   More MIB-specific leak-at-exit fixes.
-
-2010-10-29 07:56  bvassche
-
-   *  agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c,   
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.h,
-         agent/mibgroup/rmon-mib/data_access/etherstats_linux.c:
-
-   More compiler warning fixes.
-
-2010-10-28 18:31  nba
-
-   * snmplib/snmp_openssl.c:
-
-   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 15:15  bvassche
-
-   *  agent/helpers/instance.c, agent/mibgroup/agent/extend.c,   
-      agent/mibgroup/host/hrSWInstalledTable.c,   
-      agent/mibgroup/host/hrSWInstalledTable.h,   
-      agent/mibgroup/host/hrSWRunTable.c,   
-      agent/mibgroup/host/hrSWRunTable.h,   
-      agent/mibgroup/if-mib/ifTable/ifTable_interface.c,   
-      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c,   
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c,  
-      
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c,
-        
-      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c,
-        
-      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
-       
-      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
-        
-      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c:
-
-   More leak-at-exit fixes.
-
-2010-10-28 15:13  bvassche
-
-   * agent/helpers/watcher.c, include/net-snmp/agent/watcher.h:
-
-   CHANGES: agent: Added netsnmp_register_watched_instance2(),
-   netsnmp_register_watched_scalar2(), netsnmp_clone_watcher_info()
-   and netsnmp_owns_watcher_info(). See also the Doxygen comments
-   for more info.
-
-2010-10-28 14:02  dts12
-
-   * local/mib2c.check_values.conf:
-
-   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:
-
-   Fixed a compiler warning (mismatch between format specification
-   and argument) that was introduced in r6562.
-
-2010-10-28 11:43  bvassche
-
-   *  agent/mibgroup/agentx/subagent.c,   
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c:
-
-   Get rid of recently introduced memdup() compiler warnings.
-
-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:
-
-   Reverted r19565 because it caused gcc to report more warnings
-   instead of less.
-
-2010-10-28 11:18  bvassche
-
-   * 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c:
-
-   Fixed a compiler warning that was introduced in r19566.
-
-2010-10-28 10:40  bvassche
-
-   *  agent/mibgroup/agentx/subagent.c,   
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
-         include/net-snmp/library/callback.h, snmplib/callback.c:
-
-   Partially reverted r19515: removed the newly introduced functions
-   and data members again, but without reintroducing the
-   leak-at-exit.
-
-2010-10-28 10:32  bvassche
-
-   * include/net-snmp/library/tools.h, snmplib/tools.c:
-
-   Changed the type of the first two arguments such that it is no
-   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-28 08:44  bvassche
-
-   * agent/snmpd.c:
-
-   Made it easier to enable the memory leak checker built-in in
-   MSVC's C runtime library.
-
-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:
-
-   CHANGES: build: BUG: 3088360: Ensure python modules are built
-   against the correct libraries
-
-2010-10-25 20:34  dts12
-
-   * agent/helpers/instance.c, agent/mibgroup/examples/scalar_int.c:
-
-   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:
-
-   Fix a stupid typo
-
-2010-10-25 15:38  dts12
-
-   * agent/mibgroup/mibII/vacm_conf.c:
-
-   CHANGES: snmpd: BUG: 3062538: Fix com2sec* handling of
-   non-default contexts
-
-2010-10-25 12:54  bvassche
-
-   *  testing/fulltests/default/T065agentextend_simple,   
-      testing/fulltests/default/T200snmpv2cwalkall_simple:
-
-   CHANGES: Win32: testing: Avoid that T200 fails on known Microsoft
-   SNMP extension DLL bugs.
-
-2010-10-25 08:06  bvassche
-
-   *  agent/mibgroup/if-mib/data_access/interface_linux.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_linux.c,   
-      agent/mibgroup/util_funcs.c, agent/mibgroup/util_funcs.h,   
-      configure, configure.d/config_os_libs:
-
-   NEWS: Linux: snmpd is again single-threaded.
-   CHANGES: agent: PATCH: 2959811: from Jan Safranek: Reimplement
-   Linux Netlink IPv6 prefix listener.
-
-2010-10-25 07:15  bvassche
-
-   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
-      snmplib/transports/snmpTLSBaseDomain.c:
-
-   Avoid that the compiler complains about casting away the 'const'
-   attribute for the first argument of sslctx_client_setup() and
-   sslctx_server_setup().
-
-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:56  bvassche
-
-   * agent/helpers/cache_handler.c:
-
-   Reenabled cache removal and freeing / moved cache refcount
-   incrementing to netsnmp_cache_owns_cache() / converted tabs to
-   spaces.
-
-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-23 10:57  bvassche
-
-   * 
-      testing/fulltests/unit-tests/T006snmp_handler_registration_cagentlib.c:
-
-   T006snmp_handler_registration_cagentlib: Introduced
-   netsnmp_cache_create().
-
-2010-10-22 15:24  bvassche
-
-   * agent/helpers/cache_handler.c:
-
-   Disabled cache deallocation because it makes two unit tests fail
-   - to be analyzed further.
-
-2010-10-22 15:03  bvassche
-
-   * 
-      testing/fulltests/unit-tests/T006snmp_handler_registration_cagentlib.c:
-
-   Builds again.
-
-2010-10-22 14:49  bvassche
-
-   *  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/sctp-mib/sctpAssocTable.c,   
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c,
-         agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.c:
-
-   CHANGES: agent: MIB-specific leak-at-exit fixes.
-
-2010-10-22 14:42  bvassche
-
-   *  agent/mibgroup/examples/data_set.c,   
-      agent/mibgroup/examples/data_set.h:
-
-   CHANGES: agent: example MIB: Added shutdown function that frees
-   all memory owned by this MIB implementation.
-
-2010-10-22 14:40  bvassche
-
-   * agent/helpers/table_container.c:
-
-   CHANGES: agent: Automatically free the private data structure
-   allocated by netsnmp_container_table_handler_get().
-
-2010-10-22 14:38  bvassche
-
-   *  agent/helpers/cache_handler.c,   
-      include/net-snmp/agent/cache_handler.h:
-
-   CHANGES: agent: Count the number of users of a netsnmp_cache data
-   structure instead of duplicating it.
-
-2010-10-22 14:36  bvassche
-
-   * agent/helpers/baby_steps.c, include/net-snmp/agent/baby_steps.h:
-
-   CHANGES: agent: Added reference count in the
-   netsnmp_baby_steps_modes data structure and made sure that this
-   data structure is automatically freed when the handler that owns
-   it is unregistered.
-
-2010-10-22 14:34  bvassche
-
-   *  agent/helpers/table_dataset.c,   
-      include/net-snmp/agent/table_dataset.h:
-
-   CHANGES: agent: Added netsnmp_unregister_auto_data_table().
-
-2010-10-22 08:51  bvassche
-
-   * agent/agent_registry.c:
-
-   Follow-up for r19511: made sure that clean_subtree() deallocates
-   all context cache nodes.
-
-2010-10-22 08:49  bvassche
-
-   * agent/helpers/cache_handler.c:
-
-   CHANGES: agent: netsnmp_cache_free(): A more detailed message is
-   now logged when attempting to free a cache that is still in the
-   cache list.
-
-2010-10-22 06:39  bvassche
-
-   * ltmain.sh:
-
-   Reverted ltmain.sh changes from r19522.
-
-2010-10-22 06:34  bvassche
-
-   * configure, include/net-snmp/net-snmp-config.h.in, ltmain.sh:
-
-   Regenerated autoconf/automake/libtool-generated files by running
-   autoreconf -f.
-
-2010-10-21 07:51  bvassche
-
-   * ltmain.sh:
-
-   Reapplied r18726+r18766: make libtool support -fstack-protector*.
-   See also
-   http://blog.gmane.org/gmane.comp.gnu.libtool.bugs/month=20100601
-   for the confirmation that this is a libtool bug.
-
-2010-10-20 20:16  bvassche
-
-   * snmplib/tools.c:
-
-   Avoid that netsnmp_check_definedness() triggers a build failure
-   when compiled against old Valgrind headers. Note: the introduced
-   check is stricter than necessary - VALGRIND_PRINTF_BACKTRACE()
-   was introduced in Valgrind 3.5.0 or before (not sure which
-   version).
-
-2010-10-20 17:13  hardaker
-
-   * snmplib/tools.c:
-
-   added a comment in code note that this requires a fairly recent
-   valgrind
-
-2010-10-20 17:00  hardaker
-
-   * configure:
-
-   reran autoconf after updating libtool
-
-2010-10-20 16:59  hardaker
-
-   *  config.guess, config.sub, install-sh, ltmain.sh, m4/libtool.m4,   
-      m4/ltoptions.m4, m4/ltversion.m4, m4/lt~obsolete.m4:
-
-   update to libtool 2.4
-
-2010-10-20 16:59  hardaker
-
-   * configure, dist/autoconf-version:
-
-   updated to autoconf 2.68
-
-2010-10-20 14:26  bvassche
-
-   *  agent/helpers/cache_handler.c, agent/helpers/old_api.c,   
-      agent/helpers/stash_cache.c, agent/mibgroup/agentx/subagent.c,   
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
-         include/net-snmp/agent/cache_handler.h,   
-      include/net-snmp/agent/snmp_vars.h,   
-      include/net-snmp/library/callback.h, snmplib/callback.c,   
-      win32/mib_module_shutdown.h:
-
-   CHANGES: agent: Added the functions netsnmp_duplicate_variable()
-   and netsnmp_cache_handler_owns_cache().
-   CHANGES: agent: Memory allocated by netsnmp_register_old_api()
-   for storing SNMP variables is now freed when the associated
-   handler is unregistered.
-   CHANGES: agent: Callback function data deallocation does no
-   longer free the memory allocated for the AgentX session - the
-   memory that was allocated for AgentX sessions is now deallocated
-   just as that for any other session. This fixes a leak-at-exit.
-   CHANGES: agent: Notify filter table: Callback function data
-   deallocation does no longer free the data in
-   *     *snmpNotifyFilterTable_if_ctx.container - this is now done by  
-       shutdown_snmpNotifyFilterTable().    CHANGES: Win32:
-      shutdown_snmpNotifyFilterTable() and
-
-   shutdown_winExtDLL() are now invoked when the Net-SNMP service is
-   stopped.
-
-2010-10-20 13:47  bvassche
-
-   * testing/fulltests/unit-tests/T005table_dataset_cagentlib.c:
-
-   Unit-testing, T005table_dataset_cagentlib: added init_agent() and
-   shutdown_agent() calls.
-
-2010-10-20 13:12  nba
-
-   * agent/mibgroup/mibII/tcpTable.c:
-
-   Fix non-ANSI function heading
-
-2010-10-20 12:51  rstory
-
-   * agent/mibgroup/ip-forward-mib/data_access/route_linux.c:
-
-   fix ipCidrRouteTable (mask) for little endian systems
-
-2010-10-20 10:34  bvassche
-
-   *  agent/agent_handler.c, agent/agent_registry.c,   
-      agent/snmp_agent.c, agent/snmpd.c,   
-      include/net-snmp/session_api.h, snmplib/snmp_api.c:
-
-   CHANGES: snmplib: Added snmp_sess_session_lookup().
-   CHANGES: agent: Call shutdown_master_agent() and shutdown_agent()
-   during shutdown.
-   CHANGES: agent: 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).
-   CHANGES: agent: Removed a comment in netsnmp_handler_free() that
-   is now obsolete because of the clean_subtree() changes.
-   CHANGES: agent: 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().
-
-2010-10-19 23:49  magfr
-
-   *  testing/fulltests/default/T016snmpv2cgetfail_simple,   
-      testing/fulltests/default/T051snmpv2ctrap_simple,   
-      testing/fulltests/default/T052snmpv2cinform_simple,   
-      testing/fulltests/default/T141snmpv2cvacmgetfail_simple:
-
-   CHANGES: testing: Add missing preconditions
-
-2010-10-19 22:11  hardaker
-
-   * dist/patme:
-
-   don't default to applying to 5.2
-
-2010-10-19 22:10  hardaker
-
-   * dist/patme:
-
-   added the 5.6 branch
-
-2010-10-19 21:13  nba
-
-   * snmplib/parse.c:
-
-   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,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   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-19 07:04  magfr
-
-   * agent/mibgroup/default_modules.h:
-
-   CHANGES: agent: Factor out common config_add_mib statments
-
-2010-10-18 14:22  bvassche
-
-   * agent/helpers/table_dataset.c:
-
-   Mark the proper handler that owns the table registration
-   information.
-
-2010-10-18 10:54  bvassche
-
-   *  agent/helpers/table.c, agent/helpers/table_dataset.c,   
-      agent/helpers/table_iterator.c,   
-      agent/mibgroup/disman/event/mteEventNotificationTable.c,   
-      agent/mibgroup/disman/event/mteEventSetTable.c,   
-      agent/mibgroup/disman/event/mteEventTable.c,   
-      agent/mibgroup/disman/event/mteObjectsTable.c,   
-      agent/mibgroup/disman/event/mteTriggerBooleanTable.c,   
-      agent/mibgroup/disman/event/mteTriggerDeltaTable.c,   
-      agent/mibgroup/disman/event/mteTriggerExistenceTable.c,   
-      agent/mibgroup/disman/event/mteTriggerTable.c,   
-      agent/mibgroup/disman/event/mteTriggerThresholdTable.c,   
-      agent/mibgroup/mibII/sysORTable.c,   
-      include/net-snmp/agent/table.h,   
-      include/net-snmp/agent/table_iterator.h:
-
-   CHANGES: agent: Added functions netsnmp_handler_owns_tabreq(),
-   netsnmp_registration_owns_tabreq(), netsnmp_iterator_clone().
-   Exported netsnmp_table_registration_info_clone().
-   CHANGES: agent: Modified netsnmp_iterator_delete_table() such
-   that it frees the table registration information stored in a
-   table iterator too.
-   CHANGES: agent: Modified netsnmp_get_table_iterator_handler()
-   such that the table iterator passed to this function is freed
-   when the associated handler is freed.
-   
-   Restored the behavior of netsnmp_get_table_handler() to that of
-   r19449, that is, not setting up the data_free pointer because not
-   all callers of netsnmp_get_table_handler() expect that table
-   registration information is freed when the associated handler is
-   freed.
-
-2010-10-18 10:34  bvassche
-
-   * snmplib/transports/snmpTLSTCPDomain.c:
-
-   Fixed a compiler warning about casting away constness.
-
-2010-10-18 08:52  bvassche
-
-   * agent/snmpd.c:
-
-   CHANGES: Win32: 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.
-
-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:
-
-   CHANGES: snmpd: Use the same autoconf symbol to decide both if
-   strcasecmp should be declared and if it should be defined.
-
-2010-10-17 18:29  bvassche
-
-   * agent/snmp_perl.c:
-
-   CHANGES: snmpd: Fixed a double free at exit that was triggered by
-   cleaning up the data structures used for embedded Perl support.
-   CHANGES: snmptrapd: 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 0x403966: term_handler (snmptrapd.c:318)
-   by 0x6D43A5F: ??? (in /lib64/libc-2.11.2.so)
-   by 0x6DDADF2: __select_nocancel (in /lib64/libc-2.11.2.so)
-   by 0x404E20: main (snmptrapd.c:1258)
-
-2010-10-17 17:33  bvassche
-
-   * 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,   
-      agent/mibgroup/host/data_access/swrun_procfs_status.c:
-
-   CHANGES: agent: Avoid that hrSWRunPath contains trailing garbage
-   characters on Linux systems.
-   Found this by analyzing a Valgrind complaint. For anyone who is
-   wondering why this patch makes sense, a quote from the glibc
-   snprintf() documentation
-   (http://www.gnu.org/software/libc/manual/html_node/Formatted-Output-Functions.html):
-   <quote>
-   The return value is the number of characters which would be
-   generated for the given input, excluding the trailing null. If
-   this value is greater or equal to size, not all characters from
-   the result have been stored in s.
-   </quote>
-   Please note that this differs from the standard behavior. A quote
-   from http://opengroup.org/onlinepubs/007908799/xsh/snprintf.html:
-   <quote>
-   RETURN VALUE
-   Upon successful completion, these functions return the number of
-   bytes transmitted excluding the terminating null in the case of
-   sprintf() or snprintf() or a negative value if an output error
-   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:28  bvassche
-
-   * include/net-snmp/library/tools.h, snmplib/tools.c:
-
-   CHANGES: snmplib: Added the function netsnmp_check_definedness(),
-   which helps to find the cause of undefined value errors as
-   reported by Valgrind.
-
-2010-10-17 14:24  bvassche
-
-   * agent/mibgroup/agentx/protocol.h:
-
-   Removed an obsolete declaration: the function agentx_build() has
-   been removed a long time ago.
-
-2010-10-17 14:05  bvassche
-
-   *  configure, configure.d/config_os_headers,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   Added configure test for the Valgrind header files.
-
-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
-
-   *  agent/helpers/scalar_group.c, agent/helpers/watcher.c,   
-      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-17 01:41  magfr
-
-   *  agent/mibgroup/default_modules.h, agent/mibgroup/util_funcs.h,   
-      agent/snmpd.c:
-
-   NEWS: snmpd: Remove util_funcs/Exit from the requirement sets of
-   util_funcs and default_modules.
-   NEWS: snmpd: Never use Exit to terminate the agent.
-
-2010-10-16 22:32  magfr
-
-   *  agent/mibgroup/default_modules.h,   
-      agent/mibgroup/ucd-snmp/versioninfo.c,   
-      agent/mibgroup/ucd-snmp/versioninfo.h,   
-      agent/mibgroup/util_funcs.h, agent/snmpd.c:
-
-   CHANGES: snmpd: Make the setting of the argvrestart* variables
-   optional on USING_UTIL_FUNCS_RESTART_MODULE.
-   NEWS: snmpd: Remove util_funcs/restart from the requirement sets
-   of util_funcs and default_modules.
-   CHANGES: snmpd: Add util_funcs/restart to the requirement set of
-   ucd-snmp/versioninfo.
-
-2010-10-16 22:05  magfr
-
-   * include/net-snmp/agent/agent_handler.h:
-
-   CHANGES: snmpd: Extend the documentation for data_clone and
-   data_free
-
-2010-10-16 22:03  magfr
-
-   * agent/helpers/watcher.c:
-
-   CHANGES: snmpd: Make it possible to copy watched data items
-   without memory leaks.
-
-2010-10-16 22:01  magfr
-
-   * agent/helpers/watcher.c:
-
-   CHANGES: snmpd: Remove unused variable cmp
-
-2010-10-16 19:44  magfr
-
-   * agent/helpers/scalar_group.c:
-
-   CHANGES: snmpd: Do not leak the limits of scalar_group objects on
-   shutdown.
-
-2010-10-16 08:37  bvassche
-
-   *  agent/agent_handler.c, configure,   
-      configure.d/config_modules_agent:
-
-   Spelling fix: dulpicate -> duplicate.
-
-2010-10-16 08:34  bvassche
-
-   * 
-      testing/fulltests/unit-tests/T006snmp_handler_registration_cagentlib.c:
-
-   Added more test code.
-
-2010-10-16 08:33  bvassche
-
-   *  agent/agent_handler.c, agent/helpers/cache_handler.c,   
-      agent/helpers/table.c:
-
-   Follow-up for r19465: handle out-of-memory properly / removed a
-   duplicate function.
-
-2010-10-15 19:17  bvassche
-
-   *  testing/fulltests/support/cagentlib_build,   
-      testing/fulltests/support/cagentlib_run,   
-      testing/fulltests/support/clib_build,   
-      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:56  bvassche
-
-   *  agent/agent_handler.c, agent/helpers/cache_handler.c,   
-      agent/helpers/stash_cache.c, agent/helpers/table.c,   
-      agent/mibgroup/mibII/sysORTable.c,   
-      include/net-snmp/agent/agent_handler.h,   
-      include/net-snmp/agent/cache_handler.h,   
-      testing/fulltests/unit-tests/T006snmp_handler_registration_clib.c:
-
-   NEWS: snmplib: Added netsnmp_mib_handler.data_clone, a function
-   pointer that defines how to clone netsnmp_mib_handler.myvoid.
-   Must be defined if and only if data_free is set. The function
-   netsnmp_handler_dup() does now clone MIB handler private data if
-   data_clone() is set. Previously after duplicating a MIB handler
-   and unregistering one of the two MIB handlers, the private data
-   pointer (myvoid) of the other became a dangling pointer. Note:
-   addition of netsnmp_mib_handler.data_clone is an ABI change.
-   CHANGES: testing: added more test cases to the handler
-   registration test.
-
-2010-10-15 18:32  bvassche
-
-   * agent/mibgroup/ucd-snmp/loadave.c:
-
-   Fixed a compiler warning.
-
-2010-10-15 12:30  bvassche
-
-   *  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,
-   T122proxysetfail_simple, T200snmpv2cwalkall_simple). Disabled the
-   handler duplication test in T006 because it triggers a crash
-   without r19460.
-
-2010-10-15 11:37  bvassche
-
-   * agent/agent_handler.c:
-
-   CHANGES: snmplib: netsnmp_handler_dup(): freeing the duplicated
-   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
-
-   *  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 09:45  bvassche
-
-   * snmplib/snmp_api.c:
-
-   CHANGES: snmplib: snmp_shutdown(): added call to
-   netsnmp_certs_shutdown().
-
-2010-10-15 06:45  bvassche
-
-   * agent/helpers/table_dataset.c:
-
-   Follow-up for r19450: let netsnmp_delete_table_data_set() free
-   all table_dataset-related memory.
-
-2010-10-14 23:15  magfr
-
-   *  configure, configure.d/config_modules_agent,   
-      configure.d/config_modules_transports,   
-      configure.d/config_os_functions,   
-      configure.d/config_os_struct_members:
-
-   CHANGES: building: Make it possible to regenerate using autoconf
-   2.68.
-
-2010-10-14 23:01  magfr
-
-   *  snmplib/snmp_logging.c, snmplib/snmp_transport.c,   
-      snmplib/transports/snmpIPXDomain.c:
-
-   CHANGES: snmplib: Be const correct over calls to str* functions.
-
-2010-10-14 15:19  bvassche
-
-   *  agent/helpers/table.c, agent/helpers/table_data.c,   
-      agent/helpers/table_dataset.c,   
-      include/net-snmp/agent/table_data.h,   
-      include/net-snmp/agent/table_dataset.h,   
-      testing/fulltests/support/clib_build,   
-      testing/fulltests/unit-tests/T005table_dataset_clib.c:
-
-   CHANGES: snmplib: Added function netsnmp_delete_table_data_set().
-   CHANGES: snmplib: Added declaration for the function
-   netsnmp_table_data_delete_table() in a public agent header file.
-   CHANGES: snmplib: Fixed memory leak in
-   netsnmp_table_data_delete_table().
-   CHANGES: snmplib: Fixed memory leak triggered by unregistering a
-   table handler.
-   CHANGES: testing: Unit tests can now invoke functions from
-   libagent.
-   CHANGES: testing: Added unit test for table_dataset.
-
-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
-
-   * snmplib/snmp_enum.c:
-
-   CHANGES: snmplib: Fixed memory leak triggered by calling
-   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 06:19  magfr
-
-   * configure, include/net-snmp/net-snmp-config.h.in:
-
-   Regenerated
-
-2010-10-14 05:36  nba
-
-   * agent/mibgroup/ucd-snmp/lmSensors.c:
-
-   Quell warnings
-
-2010-10-14 03:50  rstory
-
-   *  configure.d/config_os_libs,   
-      include/net-snmp/net-snmp-config.h.in,   
-      include/net-snmp/system/darwin.h,   
-      include/net-snmp/system/darwin10.h,   
-      include/net-snmp/system/darwin7.h,   
-      include/net-snmp/system/darwin8.h,   
-      include/net-snmp/system/darwin9.h, snmplib/snmp_openssl.c:
-
-   test for openssl sha 224/256/385/512 support instead of
-   hardcoding
-
-2010-10-14 03:50  rstory
-
-   * testing/fulltests/support/simple_eval_tools.sh:
-
-   add OUTPUTENVVARS to save important environment variables; when
-   SNMP_VERBOSE
-   is set, save env vars and command to individual invoked file for
-   each test;
-   save env vars and command for each STARTPROG
-
-2010-10-14 03:50  rstory
-
-   * testing/fulltests/support/simple_TESTCONF.sh:
-
-   CHANGES: testing: auto-create user specified SNMP_TMPDIR and
-   SNMP_TMP_PERSISTENTDIR too; default SNMP_TMP_PERSISTENDIR based
-   on SNMP_TMPDIR
-   for user specified SNMP_TMPDIR
-
-2010-10-14 03:49  rstory
-
-   *  acconfig.h, configure.d/config_os_misc4,   
-      include/net-snmp/system/darwin10.h,   
-      include/net-snmp/system/darwin8.h,   
-      include/net-snmp/system/darwin9.h:
-
-   CHANGES: building: check for /dev/kmem instead of assuming it
-   exists and hardcoding when it is not there
-
-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 20:12  magfr
-
-   * testing/fulltests/support/clib_build:
-
-   CHANGES: testing: Generate a normal #line directive as per C99
-   instead of the compiler-specific #<n>-directive.
-
-2010-10-13 16:53  hardaker
-
-   * 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/Makefile-apps.in, win32/libsnmp_dll/Makefile.in,   
-      win32/snmpd/Makefile.in, win32/snmpnetstat/Makefile.in,   
-      win32/snmptrapd/Makefile.in:
-
-   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:
-
-   CHANGES: snmplib: Invoking se_clear_slist() does no longer create
-   a dangling pointer.
-   CHANGES: snmplib: Fixed leaks-at-exit triggered by using the
-   snmp_enum code.
-   CHANGES: snmplib: 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().
-   CHANGES: snmplib: 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.
-   CHANGES: snmplib:
-
-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.
-
-----------------------------------------------------------------------
-
-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:
-
-   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/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.
-
-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:
-
-   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")
-
-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:
-
-   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
-
-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 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:
-
-   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
-
-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.
-
-2009-09-24 00:08  hardaker
-
-   * NEWS:
-
-   version update
-
-2009-09-23 23:54  hardaker
-
-   * ChangeLog:
-
-   version update
-
-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
-
-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,   
-      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
-
-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
-
-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.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.
+-------------------------------------------------------------------------------
+Changes: V5.4.2 -> V5.4.3
 
-2010-02-22 19:21  bvassche
+2010-05-23 20:42  dts12
 
-   * agent/agent_registry.c:
+   *  man/netsnmp_agent.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_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_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_util.3, man/netsnmp_utilities.3,   
+      man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
 
-   Follow-up for r18186. Regression test 34 (whether authentication
-   failure traps are sent by snmpd) passes now again.
+   documentation update
 
-2010-02-22 09:18  bvassche
+2010-05-23 20:39  dts12
 
-   * agent/agent_registry.c:
+   *  FAQ, README, configure, configure.in, dist/net-snmp.spec,   
+      snmplib/parse.c, snmplib/snmp_version.c:
 
-   CHANGES: snmpd: made sure that handler registration failure does
-   not create dangling pointers in the MIB subtree registry.
+   Version number update
 
-2010-02-22 09:11  bvassche
+2010-05-14 12:46  dts12
 
-   * agent, apps, apps/snmpnetstat:
+   * CHANGES, NEWS:
 
-   Updated Subversion ignore list.
+   version update
 
-2010-02-22 08:42  bvassche
+2010-05-14 12:41  dts12
 
-   * configure:
+   * ChangeLog:
 
-   Follow-up for r18084: fixed libeay32 (OpenSSL) configure test for
-   MinGW.
+   version update
 
-2010-02-22 08:31  bvassche
+2010-05-14 12:28  dts12
 
-   * configure.d/config_os_libs:
+   * snmplib/Makefile.depend:
 
-   Follow-up for r18084: fixed libeay32 (OpenSSL) configure test for
-   MinGW.
+   make depend
 
-2010-02-22 08:13  bvassche
+2010-05-14 12:19  dts12
 
-   * agent/mibgroup/winExtDLL.c:
+   *  man/netsnmp_agent.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_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_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_util.3, man/netsnmp_utilities.3,   
+      man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
 
-   Builds again with MinGW when IPv6 support is enabled.
+   documentation update
 
-2010-02-21 18:58  bvassche
+2010-05-14 12:10  dts12
 
-   *  README.win32, win32/libsdll.dsw,   
-      win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in, win32/win32dll.dsw:
+   *  FAQ, README, configure, configure.in, dist/net-snmp.spec,   
+      snmplib/snmp_version.c:
 
-   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.
+   Version number update
 
-2010-02-21 18:51  bvassche
+2010-05-11 17:26  bvassche
 
-   * win32/libsnmp_dll/libsnmp_dll.dsp:
+   * perl/agent/agent.xs:
 
-   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.
+   Builds again with the Microsoft Visual C compilers, which do not
+   recognize the C99 ULL suffix.
 
-2010-02-21 18:45  bvassche
+2010-05-11 15:46  dts12
 
    * 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
+   Ensure 'netsnmp_read_module' is available for perl build.
 
-2010-01-26 14:59  hardaker
+2010-05-11 15:44  dts12
 
-   * snmplib/snmptsm.c:
+   * perl/agent/agent.xs:
 
-   use netsnmp_assert_or_return
+   Fix perl build under Windows (strtoull not available)
 
-2010-01-26 14:58  hardaker
+2010-05-09 16:34  bvassche
 
-   * include/net-snmp/library/snmp_assert.h:
+   * include/net-snmp/system/cygwin.h:
 
-   define netsnmp_assert_or_return
+   CHANGES: Cygwin: BUG: 2997492: byte order of udpLocalPort is now correct
+   (Backported r18074 from trunk.)
 
-2010-01-26 14:58  hardaker
+2010-05-06 14:49  dts12
 
-   * snmplib/snmptsm.c:
+   * snmplib/inet_ntop.c, snmplib/inet_pton.c:
 
-   update comments to reflect RFC5591 as the document describing the
-   implementation
+   Don't assume the presence of <string.h>
+   (bring into line with all other occurances)
 
-2010-01-26 11:43  bvassche
+2010-05-06 14:44  dts12
 
-   * include/net-snmp/system/cygwin.h:
+   * win32/win32.dsw, win32/win32sdk.dsw:
 
-   NEWS: Cygwin: BUG: 2939168: byte order of udpLocalPort is now
-   correct.
+   Add project dependencies for MSVC builds.
 
-2010-01-26 10:46  bvassche
+2010-05-06 06:33  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".
+   CHANGES: Cygwin: Detect free UDP ports correctly for use in test infrastructure.
+   (Backported trunk r18073 and r18080).
 
-2010-01-25 14:13  bvassche
+2010-04-30 19:10  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.
+   *  agent/mibgroup/mibII/system_mib.c, apps/snmptrapd.c,   
+      apps/snmptrapd_log.c, snmplib/callback.c:
 
-2010-01-25 07:28  magfr
-
-   *  configure, configure.d/config_os_functions, snmplib/inet_ntop.c,  
-       snmplib/inet_pton.c:
+   CHANGES: Windows: Fix build under MinGW
 
-   CHANGES: building: Use autoconf to decide if inet_ntop.c and
-   inet_pton.c are to be compiled.
+2010-04-30 18:44  bvassche
 
-2010-01-25 07:09  bvassche
+   * configure:
 
-   * configure, configure.d/config_os_struct_members:
+   Should have been included in r18627.
 
-   CHANGES: MinGW: struct sockaddr_in6.sin6_scope_id configure test
-   does now work.
+2010-04-30 18:27  bvassche
 
-2010-01-25 05:14  hardaker
+   * configure.in:
 
-   * include/net-snmp/library/snmp_api.h:
+   made sure that cross-compiling without specifying the endianness
+   does not trigger a syntax error in the configure script.
 
-   TLSTM counter stats
+2010-04-28 10:48  bvassche
 
-2010-01-25 05:13  hardaker
+   * configure, configure.in:
 
-   * include/net-snmp/library/snmp_api.h:
+   left out inet_ntop() and inet_pton() from libnetsnmp since these
+   functions are already present in Cygwins C library.
 
-   add in TSM needed counter definitions
+2010-04-28 10:26  bvassche
 
-2010-01-25 05:12  hardaker
+   * README.win32:
 
-   * mibs/SNMP-TSM-MIB.txt, mibs/rfclist:
+   Fixed a documentation bug with regard to the Cygwin build:
+   linking with ws2_32 is only necessary for really ancient Cygwin versions.
 
-   added the SNMP-TSM-MIB
+2010-04-28 07:29  bvassche
 
-2010-01-24 14:43  magfr
+   *  snmplib/inet_ntop.c, snmplib/inet_pton.c,   
+      snmplib/snmpTCPIPv6Domain.c, snmplib/snmpUDPIPv6Domain.c:
 
-   * agent/agent_registry.c, include/net-snmp/agent/agent_registry.h:
+   CHANGES: Cygwin: builds now with IPv6 support enabled.
 
-   NEWS: snmpd: Made subtree_context_cache::context_name a const
-   char*.
+2010-04-27 16:55  bvassche
 
-2010-01-24 14:27  magfr
+   *  win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
 
-   * include/net-snmp/library/tools.h:
+   CHANGES: Win32: builds again with IPv6 support enabled.
 
-   CHANGES: snmplib: Prevent gcc ped-warning for
-   NETSNMP_REMOVE_CONST
+2010-04-27 15:42  dts12
 
-2010-01-24 13:27  magfr
+   *  win32/net-snmp/agent/mib_module_config.h,   
+      win32/netsnmpmibssdk/Makefile.in:
 
-   * apps/snmpusm.c:
+   Re-instate Notification-Log MIB support when building with
+   Windows Platform SDK.
 
-   CHANGES: snmpusm: Prefer to use a variable of the right type over
-   an ugly cast. Lessen the scope of the variable as well.
+2010-04-25 17:37  bvassche
 
-2010-01-24 12:59  bvassche
+   * README.win32:
 
-   *  configure, configure.d/config_os_headers,   
-      configure.d/config_os_libs, configure.d/config_os_progs:
+   Documentation update.
 
-   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-04-21 11:05  bvassche
 
-2010-01-24 12:53  magfr
+   * snmplib/strtoull.c:
 
-   * snmplib/snmpUDPIPv6Domain.c:
+   Copied the source file snmplib/strtoull.c from the trunk to the
+   V5.4 branch.
 
-   Remove superfluous debug logs.
+2010-04-18 13:40  bvassche
 
-2010-01-24 12:45  bvassche
+   * snmplib/winpipe.c:
 
-   * agent/mibgroup/winExtDLL.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.
 
-   Windows, compiler warning fixes: fixed warnings about char * /
-   unsigned char *
-   mismatches.
+2010-04-18 13:24  bvassche
 
-2010-01-24 12:44  bvassche
+   *  win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
 
-   * snmplib/snmpUDPDomain.c:
+   Reverted another change that was introduced in r18495 and that's
+   obviously broken.
 
-   Windows, compiler warning fix: make inet_ntop() and inet_pton()
-   declarations
-   available to the compiler.
+2010-04-15 16:55  bvassche
 
-2010-01-24 12:44  bvassche
+   * win32/net-snmp/net-snmp-config.h:
 
-   * snmplib/snmp_logging.c:
+   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.
 
-   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-04-14 09:47  dts12
 
-2010-01-24 11:42  bvassche
+   *  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/netsnmpmibssdk, win32/snmpbulkget, win32/snmpbulkwalk,   
+      win32/snmpd, win32/snmpdelta, win32/snmpdf, win32/snmpdsdk,   
+      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:
 
-   * man:
+   Don't try to SVN-manage the Windows batch build infrastructure
+   (add release, debug, Makefile to the previous ignore list)
 
-   Updated Subversion ignore list.
+2010-04-14 08:16  dts12
 
-2010-01-24 11:41  bvassche
+   * win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
 
-   *  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
+   Fix Windows batch build using Visual Studio with dynamic linking.
+   Unreferenced symbol introduced by SVN revision 18393
 
-   * apps/snmpnetstat/inet.c:
+2010-04-14 08:11  dts12
 
-   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.
+   *  agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/mibII/interfaces.h:
 
-2010-01-24 10:33  bvassche
+   Fix Windows batch build using Visual Studio 2008 with Platform
+   SDK enabled.
 
-   * man/config_api.3:
+2010-04-14 08:08  dts12
 
-   Follow-up for r17946: removed generated man pages from
-   repository.
+   *  win32/build.pl, win32/net-snmp/agent/mib_module_config.h,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
 
-2010-01-24 10:31  bvassche
+   CHANGES: Win32: Fix batch build using recent versions of Visual Studio.
+   Partial back port of SVN revisions 17573 and 17696.
 
-   * include/net-snmp/library/winservice.h, snmplib/winservice.c:
+2010-04-07 14:37  dts12
 
-   Moved two declarations of static functions from .h to .c.
+   * CHANGES, NEWS:
 
-2010-01-24 10:21  magfr
+   version update
 
-   * agent/mibgroup/agent/nsModuleTable.c:
+2010-04-07 14:22  dts12
 
-   Remove unnecessary casts.
+   * agent/Makefile.depend, agent/mibgroup/Makefile.depend:
 
-2010-01-24 10:19  bvassche
+   make depend
 
-   * snmplib/snmpUDPIPv6Domain.c:
+2010-04-07 14:12  dts12
 
-   CHANGES: snmplib: builds again when HAVE_GETADDRINFO is not
-   defined.
+   *  man/netsnmp_agent.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_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_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_util.3, man/netsnmp_utilities.3,   
+      man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
 
-2010-01-24 10:03  bvassche
+   documentation update
 
-   *  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:
+2010-04-07 14:08  dts12
 
-   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.
+   *  FAQ, README, configure, configure.in, dist/net-snmp.spec,   
+      snmplib/snmp_version.c:
 
-2010-01-24 06:08  magfr
+   Version number update
 
-   * include/net-snmp/library/snmpDTLSUDPDomain.h:
+2010-04-07 14:05  dts12
 
-   CHANGES: snmplib: Remove declarations of functions that don't
-   exist or are declared elsewhere.
+   * local/mib2c.table_data.conf:
 
-2010-01-24 05:48  magfr
+   Insert the cache helper correctly.
 
-   * agent/agent_trap.c:
+2010-04-06 11:03  dts12
 
-   NEWS: snmplib: Removed the unused variables warm_start_oid,
-   link_down_oid, link_up_oid, auth_fail_oid and egp_xxx_oid.
+   * FAQ:
 
-2010-01-23 22:06  magfr
+   Python is apparently client-side only.
 
-   *  testing/tests/T070com2sec, testing/tests/T071com2sec6,   
-      testing/tests/T072com2secunix:
+2010-04-06 08:56  dts12
 
-   Better set of SKIPIF/SKIPIFNOTS
+   * agent/mibgroup/ucd-snmp/disk.c, mibs/UCD-SNMP-MIB.txt:
 
-2010-01-23 20:31  magfr
+   NEWS: snmpd: Latch large-disk statistics at 2Tb (rather than
+   wrapping.
 
-   * testing/tests/T071com2sec6, testing/tests/T072com2secunix:
+2010-03-29 15:26  dts12
 
-   Be correct in what it is that is tested in the header.
+   * agent/mibgroup/mibII/vacm_conf.c, snmplib/parse.c:
 
-2010-01-23 20:27  magfr
+   Include MIB directory search path in reports of missing MIB
+   files.
+   Include config file search path in reports of missing access
+   control settings.
 
-   *  snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c,   
-      snmplib/snmpUnixDomain.c:
+2010-03-29 15:20  dts12
 
-   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.
+   * snmplib/vacm.c:
 
-2010-01-23 20:22  magfr
+   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.
 
-   *  testing/tests/T070com2sec, testing/tests/T071com2sec6,   
-      testing/tests/T072com2secunix:
+2010-03-29 15:15  dts12
 
-   new tests checking the error handling of the com2sec* directives
+   * snmplib/snmpusm.c:
 
-2010-01-23 19:17  bvassche
+   CHANGES: snmplib: Fix agent crash when sending encrypted SNMPv3
+   traps.
+   Reported by Srikapilan Gandhi
 
-   *  win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
+2010-03-25 20:07  bvassche
 
-   Follow-up for r18025: builds again with Microsoft Visual Studio.
+   * agent/mibgroup/agentx/agentx_config.c:
 
-2010-01-23 17:51  bvassche
+   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.
 
-   * configure, configure.ac:
+2010-03-22 16:10  dts12
 
-   CHANGES: building: OS header detection check is now run before
-   IPv6 stack detection.
-   CHANGES: Solaris: sockaddr_in6.sin6_addr configure test does now
-   work.
+   * mibs/NET-SNMP-PASS-MIB.txt:
 
-2010-01-23 17:42  bvassche
+   Fix typo in default IpAddress value
+   (See Bug #2972141)
 
-   * snmplib/large_fd_set.c:
+2010-03-22 15:24  bvassche
 
-   Fixed a Solaris-specific compiler warning.
+   * mibs/UCD-DISKIO-MIB.txt:
 
-2010-01-23 17:00  bvassche
+   Follow-up for r18349: added missing comma such that it is again
+   possible to compile UCD-DISKIO-MIB.
 
-   *  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:
+2010-03-22 13:49  dts12
 
-   MinGW: added configure test for <sys/timeb.h> and also for struct
-   timezone.
+   *  mibs/UCD-DISKIO-MIB.txt, mibs/UCD-DLMOD-MIB.txt,   
+      mibs/UCD-IPFILTER-MIB.txt, mibs/UCD-SNMP-MIB.txt:
 
-2010-01-23 16:32  bvassche
+   CHANGES: mibs: BUG: 2973890: Fix imports, DiskIOEntry list and
+   revision histories
 
-   *  include/net-snmp/library/snmpTCPIPv6Domain.h,   
-      include/net-snmp/library/snmpUDPIPv6Domain.h,   
-      snmplib/snmpUDPIPv6Domain.c:
+2010-03-22 11:55  bvassche
 
-   MinGW: made sure that the IPv6-related datatypes are available
-   before being used.
+   * agent/mibgroup/winExtDLL.c, include/net-snmp/library/snmp_api.h:
 
-2010-01-23 16:30  bvassche
+   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.
 
-   * include/net-snmp/net-snmp-config.h.in:
+2010-03-20 19:16  bvassche
 
-   Added #undef HAVE_WINDOWS_H.
+   * agent/mibgroup/winExtDLL.c:
 
-2010-01-23 16:28  bvassche
+   Fixed the compiler warnings reported by gcc (MinGW).
 
-   * include/net-snmp/types.h:
+2010-03-19 12:40  bvassche
 
-   MinGW: made gettimeofday() declaration available for the
-   compiler.
+   *  agent/mibgroup/winExtDLL.c, win32/libsnmp_dll/libsnmp.def,   
+      win32/libsnmp_dll/libsnmp.def.in:
 
-2010-01-23 16:27  bvassche
+   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.
 
-   * snmplib/snmp_api.c:
+2010-03-19 11:41  bvassche
 
-   MinGW: made gettimeofday() declaration available for the
-   compiler.
+   * agent/snmp_agent.c:
 
-2010-01-23 16:26  bvassche
+   Reverted r18324 since the 5.4 branch is in RC stage and a
+   leak-at-exit is not a showstopper.
 
-   * snmplib/inet_pton.c:
+2010-03-17 13:41  bvassche
 
-   Made sure that the compiler does not complain about a missing
-   prototype for isdigit().
+   * mibs/NET-SNMP-AGENT-MIB.txt, mibs/NET-SNMP-EXTEND-MIB.txt:
 
-2010-01-23 16:24  bvassche
+   Minor MIB fixes (backported r18320, r18321 and r18325).
 
-   * configure, configure.d/config_os_headers:
+2010-03-17 13:29  bvassche
 
-   MinGW: iphlpapi.h configure test does now work.
+   * agent/snmp_agent.c:
 
-2010-01-23 15:10  bvassche
+   CHANGES: snmpd: fixed one leak-at-exit.
 
-   * configure, configure.d/config_project_ipv6_types:
+2010-03-17 12:44  bvassche
 
-   Renamed the Winsock2 IPv6 stack from 'mingw' into 'winsock2'.
+   * agent/mibgroup/winExtDLL.c:
 
-2010-01-23 15:07  bvassche
+   CHANGES: BUG: 2971257: Fixed winExtDLL handling of multi-varbind
+   getNext requests with OIDs in reverse lexicographical order.
 
-   *  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:
+2010-03-14 22:56  dts12
 
-   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.
+   * CHANGES, NEWS:
 
-2010-01-22 16:46  bvassche
+   version update
 
-   * snmplib/tools.c:
+2010-03-14 22:31  dts12
 
-   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:
+   * ChangeLog:
 
-   NEWS: MinGW: winExtDLL compiles now under MinGW.
-   CHANGES: MinGW: building Net-SNMP works again.
-   
-   Detailed overview:
-   * Changes in the configure script:
+   version update
 
-   - 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:
+2010-03-14 22:28  dts12
 
-   - 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.
+   * agent/Makefile.depend, agent/mibgroup/Makefile.depend:
 
+   make depend
 
-2010-01-22 08:34  magfr
+2010-03-14 22:19  dts12
 
-   * snmplib/read_config.c:
+   * agent/Makefile.depend, agent/mibgroup/Makefile.depend:
 
-   CHANGES: snmplib: Do not cast from char* to char*
+   make depend
 
-2010-01-22 00:39  hardaker
+2010-03-14 22:19  dts12
 
-   * COPYING:
+   * agent/Makefile.depend, agent/mibgroup/Makefile.depend:
 
-   Copyright file update for SPARTA, Inc.
+   make depend
 
-2010-01-22 00:22  hardaker
+2010-03-14 22:10  dts12
 
-   * snmplib/snmptsm.c:
+   *  man/netsnmp_agent.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_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_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_util.3, man/netsnmp_utilities.3,   
+      man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
 
-   add proper prefixes in TSM for SSH, DTLS, etc, based on the
-   domain
+   documentation update
 
-2010-01-22 00:20  hardaker
+2010-03-14 22:07  dts12
 
-   * dist/patme:
+   *  FAQ, README, configure, configure.in, dist/net-snmp.spec,   
+      snmplib/snmp_version.c:
 
-   added 5.5 branch
+   Version number update
 
-2010-01-22 00:20  hardaker
+2010-03-12 11:53  dts12
 
-   * dist/makerelease.xml:
+   * apps/snmptable.c:
 
-   minor echo output change
+   CHANGES: snmptable: PATCH: 2850067: Suppress extraneous "index"
+   header token
+   Patch supplied by Dan Nelson
 
-2010-01-21 20:51  rstory
+2010-03-11 16:52  dts12
 
-   * snmplib/snmp_api.c:
+   * man/snmpcmd.1.def:
 
-   move comment next to code it is talking about; No code change
+   Document the format of the -e/-E command line options.
 
-2010-01-21 14:55  jsafranek
+2010-03-11 16:47  dts12
 
-   * agent/mibgroup/ip-mib/data_access/ipaddress_linux.c:
+   * agent/helpers/table_dataset.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.
+   Remove mention of the (abandoned) 'dataset2' helper.
 
-2010-01-20 12:42  bvassche
+2010-03-11 16:03  dts12
 
-   * PORTING, local/snmpcheck.def:
+   * testing/eval_suite.sh:
 
-   Fixed typo: replaced 'necissary' by 'necessary'.
+   Use SNMP_TMPDIR instead of TMPDIR
+   Backport of revision 18262
 
-2010-01-20 08:53  jsafranek
+2010-03-11 15:08  dts12
 
-   * man/snmpnetstat.1.def:
+   *  agent/auto_nlist.c, agent/mibgroup/examples/ucdDemoPublic.c,   
+      apps/snmptest.c, snmplib/parse.c, snmplib/tools.c:
 
-   Fix minor typo in man page, it's snmpnetstat -Cp, not -CP.
+   CHANGES: PATCH: 2952034: Return of the Great SuSE 'sprintf'
+   Hunt...
+   Patch supplied by Leonardo Chiquitto
 
-2010-01-14 12:34  jsafranek
+2010-03-11 14:55  dts12
 
-   * 
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c,
-        
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c:
+   * local/traptoemail:
 
-   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.
+   CHANGES: PATCH: 2937996: Add Date: header to email send by
+   traptoemail
 
-2010-01-13 11:21  jsafranek
+2010-03-11 14:23  dts12
 
-   * agent/mibgroup/if-mib/data_access/interface_linux.c:
+   * agent/mibgroup/ucd-snmp/pass.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.
+   CHANGES: snmpd: PATCH: 2968642: Catch overflow of pass-through
+   command buffer.
+   Patch from Andreas Jaeger/Leonardo Chiquitto
 
-2010-01-12 00:52  tanders
+2010-03-11 12:37  dts12
 
-   * configure, configure.d/config_os_libs:
+   * agent/mibgroup/agentx/protocol.c:
 
-   CHANGES: build: run rpm configure checks for hr_swinst rewrite
-   (rpm
-   version only)
+   CHANGES: snmpd: PATCH: 2956657: Handle over-length AgentX OIDs.
+   Patch provided by Rob West
 
-2010-01-11 23:58  tanders
+2010-03-11 12:19  dts12
 
-   * apps/Makefile.in:
+   * agent/mibgroup/ucd-snmp/pass.c:
 
-   add PERLLDOPTS_FOR_APPS to agentxtrap link line (fixes
-   "libperl.so not
-   found" errors)
+   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-01-11 00:11  tanders
+2010-03-11 11:57  dts12
 
-   *  testing/tests/T053agentv1trap, testing/tests/T054agentv2ctrap,   
-      testing/tests/T055agentv1mintrap,   
-      testing/tests/T056agentv2cmintrap, testing/tests/T113agentxtrap,  
-       testing/tests/T114agentxagentxtrap:
+   * configure, configure.in:
 
-   get rid of using deprecated syntax for trap/inform sinks
+   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-01-08 08:42  bvassche
+2010-03-11 11:43  dts12
 
-   * snmplib/snmp_alarm.c, snmplib/snmp_api.c:
+   * snmplib/mib.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.
+   CHANGES: library: PATCH: 2952140: Overflow counter32 and gauge32
+   on 64bit systems correctly
+   Patch provided by Leonardo Chiquitto
 
-2010-01-07 19:42  hardaker
+2010-03-11 11:36  dts12
 
-   * agent/mibgroup/hardware/cpu/cpu_sysctl.c:
+   * testing/TESTCONF.sh, testing/eval_suite.sh:
 
-   Patch from Stephen Hemminger to fix a minor memleak in cpu
-   sysctrl fetching
+   CHANGES: build: PATCH: 2952020: Explicitly set permission on
+   temporary testing output directories.
+   Patch provided by Leonardo Chiquitto.
 
-2010-01-07 16:21  bvassche
+2010-03-11 11:26  dts12
 
-   *  include/net-snmp/library/read_config.h, snmplib/read_config.c,   
-      snmplib/snmpusm.c, snmplib/vacm.c:
+   * agent/mibgroup/if-mib/ifXTable/ifXTable.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.
+   CHANGES: snmpd: PATCH: 2950845: Fix ifHighSpeed calculation
+   Patch provided by Leonardo Chiquitto
 
-2010-01-07 14:41  bvassche
+2010-03-03 16:11  jsafranek
 
-   * snmplib/snmpusm.c:
+   * configure, include/net-snmp/net-snmp-config.h.in:
 
-   Removed three superfluous casts because these triggered a
-   compiler warning
-   when compiled with MSVC.
+   Regerate configure script after rev. 18193 (automatic RPM version
+   detection).
+   Net-SNMP should compile with rpm-4.6 automatically.
 
-2010-01-07 13:28  bvassche
+2010-02-23 12:27  jsafranek
 
-   * snmplib/read_config.c:
+   * configure.in:
 
-   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)
+   CHANGES: building: Fixed compilation with rpm-4.6.
+   Turn on the legacy API when rpm-4.6 is detected.
 
-2010-01-07 12:30  bvassche
+2010-02-10 10:04  dts12
 
-   * 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c:
+   * python/netsnmp/client_intf.c:
 
-   Fixed a format specification mismatch.
+   CHANGES: python: Support null-bytes in octet strings
+   Patch supplied by Tommy Beadle
 
-2010-01-07 12:19  bvassche
+2010-02-09 15:05  bvassche
 
-   * include/net-snmp/agent/sysORTable.h:
+   *  ., README.win32, agent/mibgroup/winExtDLL.c,   
+      agent/mibgroup/winExtDLL.h, win32/MgmtApi-winExtDLL.h,   
+      win32/Snmp-winExtDLL.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
+   CHANGES: Win32: winExtDLL: works now on Windows Vista, Windows 7
+   and Windows 2008 too.
+   CHANGES: Win32: simplified building Net-SNMP + winExtDLL with
+   MSVC.
+   CHANGES: MinGW: winExtDLL: builds now.
+   Note: all these changes have been backported from the trunk.
 
+2010-02-09 14:29  bvassche
 
-   * snmplib/snmpusm.c:
+   * include/net-snmp/library/snmp_logging.h:
 
-   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.
+   CHANGES: Win32: added #include <stdio.h> in
+   include/net-snmp/library/snmp_logging.h such that Net-SNMP 5.5
+   builds again with Microsoft Visual Studio 6.
 
-2010-01-07 09:13  bvassche
+2010-02-08 19:47  bvassche
 
-   * snmplib/read_config.c:
+   *  ., agent/agent_handler.c, agent/helpers/table_dataset.c,   
+      include/net-snmp/agent/agent_handler.h,   
+      include/net-snmp/agent/snmp_agent.h,   
+      include/net-snmp/agent/table_data.h,   
+      include/net-snmp/agent/table_dataset.h,   
+      include/net-snmp/library/data_list.h:
 
-   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.
+   CHANGES: snmpd, snmplib: Remove the inline declarations for
+   functions that lack an inline definition.
+   
+   Backported r16926 from the trunk to the 5.4 branch because Mario
+   Gartner posted
+   patch 2945202 in which he reported that gcc printed several
+   warnings like the
+   following for the code on the 5.4 branch:
+   include/net-snmp/agent/agent_handler.h:241: warning: inline
+   function 'void*
+   netsnmp_request_get_list_data(netsnmp_request_info*, const
+   char*)' used but
+   never defined
 
-2010-01-06 17:52  bvassche
+2010-02-05 09:48  jsafranek
 
-   *  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:
+   *  agent/mibgroup/if-mib/data_access/interface_linux.c,   
+      agent/mibgroup/mibII/interfaces.c,   
+      include/net-snmp/data_access/interface.h:
 
-   Reverted r17968 and r17972.
+   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-01-06 15:40  bvassche
+2010-02-01 01:07  tanders
 
-   *  agent/mibgroup/disman/event/mteTriggerConf.c,   
-      agent/mibgroup/if-mib/data_access/interface.c,   
-      agent/mibgroup/mibII/vacm_conf.c:
+   * testing/tests/T055agentv1mintrap:
 
-   Fixed more compiler warnings related to the use of the const
-   keyword.
+   Follow-up for r18093: same changes for all branches
 
-2010-01-06 15:38  bvassche
+2010-02-01 01:05  tanders
 
-   * agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c:
+   *  testing/tests/T053agentv1trap, testing/tests/T054agentv2ctrap,   
+      testing/tests/T056agentv2cmintrap, testing/tests/T113agentxtrap:
 
-   Fixed a format specification mismatch.
+   CHANGES: building: 'make test TESTOPTS="-P tcp"' works fine now
 
-2010-01-06 15:36  bvassche
+2010-01-31 01:42  tanders
 
-   * include/net-snmp/library/snmpusm.h:
+   * man/Makefile.in:
 
-   Changed argument type from char * into const char *. Should have
-   been included in r17975.
+   Follow-up for r17710 / backport of r17712: remove an obsolete
+   manual
+   page from the set of files that should be installed
 
-2010-01-06 15:33  bvassche
+2010-01-29 20:07  jsafranek
 
-   *  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:
+   * testing/tests/T059trapdtraphandle:
 
-   Fixed several compiler warnings about char * / u_char *
-   mismatches.
+   Elaborate on rev. 18089 and adjust the temporary directory to the
+   *    *really working one*.  2010-01-29 19:11  jsafranek
 
-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:
+   * testing/tests/T059trapdtraphandle:
 
-   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*)).
+   Fix test 35 when configure option '--with-temp-file-pattern' was
+   used and the directory for temp. files does not exist yet.
 
-2010-01-06 15:27  bvassche
+2010-01-26 09:27  jsafranek
 
-   * snmplib/snmpusm.c:
+   * agent/mibgroup/host/hr_swinst.c:
 
-   Fixed a compiler warning about discarding the const qualifier.
+   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-06 14:48  bvassche
+2010-01-22 00:39  hardaker
 
-   * include/net-snmp/library/read_config.h, snmplib/read_config.c:
+   * COPYING:
 
-   Added read_config_read_objid_const().
+   Copyright file update for SPARTA, Inc.
 
-2010-01-06 14:42  bvassche
+2010-01-21 14:55  jsafranek
 
-   * agent/mibgroup/tunnel/tunnel.c:
+   * agent/mibgroup/ip-mib/data_access/ipaddress_linux.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.
+   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-06 14:34  bvassche
+2010-01-20 08:53  jsafranek
 
-   * include/net-snmp/library/vacm.h, snmplib/vacm.c:
+   * man/snmpnetstat.1.def:
 
-   For those VACM functions that do not modify the strings passed as
-   arguments,
-   changed the argument type from char * to const char *.
+   Fix minor typo in man page, it's snmpnetstat -Cp, not -CP.
 
-2010-01-06 14:27  bvassche
+2010-01-07 19:42  hardaker
 
-   * snmplib/snmp_logging.c:
+   *  agent/mibgroup/hardware/cpu/cpu_sysctl.c,   
+      agent/mibgroup/host/hr_swinst.c:
 
-   Fixed a compiler warning about discarding the const qualifier.
+   Patch from Stephen Hemminger to fix a minor memleak in cpu
+   sysctrl fetching
 
-2010-01-06 14:26  bvassche
+2010-01-06 17:56  dts12
 
-   * agent/mibgroup/sctp-mib/sctpScalars_common.c:
+   * CHANGES:
 
-   Removed an unused variable.
+   version update
 
-2010-01-06 14:14  bvassche
+2010-01-06 17:25  dts12
 
-   *  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:
+   * ChangeLog:
 
-   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.
+   version update
 
-2010-01-06 14:08  bvassche
+2010-01-06 17:06  dts12
 
-   *  agent/mibgroup/disman/event/mteTriggerConf.c,   
-      agent/mibgroup/disman/event/mteTriggerConf.h:
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
 
-   Fixed several compiler warnings about discarding the const
-   qualifier.
+   make depend
 
-2010-01-06 14:06  bvassche
+2010-01-06 17:06  dts12
 
-   * agent/helpers/table.c, agent/helpers/table_dataset.c:
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
 
-   Fixed several compiler warnings about char * / u_char *
-   mismatches.
+   make depend
 
-2010-01-06 14:04  bvassche
+2010-01-06 16:55  dts12
 
-   * include/net-snmp/library/read_config.h, snmplib/read_config.c:
+   *  man/netsnmp_agent.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_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_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_util.3, man/netsnmp_utilities.3,   
+      man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
 
-   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.
+   documentation update
 
-2010-01-06 13:35  bvassche
+2010-01-06 16:43  dts12
 
-   * include/net-snmp/library/tools.h:
+   *  FAQ, README, configure, configure.in, dist/net-snmp.spec,   
+      snmplib/snmp_version.c:
 
-   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.
+   Version number update
 
 2010-01-06 13:33  jsafranek
 
@@ -58187,96 +947,7 @@ Changes: V5.5 -> V5.6.pre1
 
    * 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.
+   CHANGES: snmplib: BUGS: 2922390: Fix test for missing contextName parameter
 
 2010-01-05 22:33  dts12
 
@@ -58302,175 +973,9 @@ Changes: V5.5 -> V5.6.pre1
 
    * agent/mibgroup/agentx/protocol.c:
 
-   CHANGES: snmpd: PATCH: 2912584: Fix null OID handling in Agentx
-   on 64bit
+   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:
@@ -58484,25 +989,6 @@ Changes: V5.5 -> V5.6.pre1
    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:
@@ -58517,30 +1003,6 @@ Changes: V5.5 -> V5.6.pre1
    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:
@@ -58581,8 +1043,7 @@ Changes: V5.5 -> V5.6.pre1
    * 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
+   The function log_notification() adds a row to the table
    nlmLogVarTable, but
    this function can be called before that table has been
    initialized. If
@@ -58607,119 +1068,11 @@ Changes: V5.5 -> V5.6.pre1
    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-21 10:50  bvassche
 
-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
+   * README.win32:
 
-   *  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.
+   Backported r17901 (spelling fixes and hrSystemUptime documentation).
 
 2009-12-17 10:03  dts12
 
@@ -58727,55 +1080,6 @@ Changes: V5.5 -> V5.6.pre1
 
    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:
@@ -58789,36 +1093,12 @@ Changes: V5.5 -> V5.6.pre1
    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.
+   CHANGES: snmpd: PATCHES: 2911323: Fix agent lockup when monitoring AgentX-delegated information
 
 2009-12-10 12:54  bvassche
 
@@ -58833,294 +1113,21 @@ Changes: V5.5 -> V5.6.pre1
    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.
+   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.
+   CHANGES: snmplib, snmpd: Make sure that a mask is given to open when O_CREAT is specified
 
 2009-12-07 10:46  dts12
 
@@ -59129,46 +1136,18 @@ Changes: V5.5 -> V5.6.pre1
    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
+   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
 
@@ -59191,7 +1170,7 @@ Changes: V5.5 -> V5.6.pre1
 
 2009-12-01 12:36  dts12
 
-   * include/net-snmp/types.h:
+   * include/net-snmp/library/snmp_api.h:
 
    Update a redundant (and probably inaccurate) comment.
 
@@ -59199,52 +1178,19 @@ Changes: V5.5 -> V5.6.pre1
 
    * agent/helpers/table.c:
 
-   CHANGES: agent: BUGS: 2822360: Fix memory leak when building
-   table OIDs
+   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
+   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.
+   CHANGES: agent: BUGS: 2841008: Protect against crash following failed AgentX response
 
 2009-11-30 16:55  dts12
 
@@ -59257,92 +1203,52 @@ Changes: V5.5 -> V5.6.pre1
 
    * local/mib2c.old-api.conf:
 
-   CHANGES: mib2c: BUGS: 2888569: Fix generation of table columns
-   array
+   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
+   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.
+   CHANGES: agent: BUG: 2897000: Suppress 32-bit counter truncation warnings.
 
 2009-11-30 15:19  dts12
 
    * agent/mibgroup/ucd-snmp/pass_persist.c:
 
-   CHANGES: agent: PATCH: 2901029: Fix compiler warning on
-   CloseHandle()
+   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.
+   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.
+   CHANGES: agent: PATCH: 2887816: Protect against division-by-zero crash
 
 2009-11-30 14:49  dts12
 
    * agent/mibgroup/ucd-snmp/proxy.c:
 
-   CHANGES: agent: PATCH: 2883155: Fix memory leak in proxy
-   handling.
+   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
+   CHANGES: agent: PATCH: 2877518: Fix handling of scoped AgentX variables
 
 2009-11-27 08:54  jsafranek
 
@@ -59350,173 +1256,13 @@ Changes: V5.5 -> V5.6.pre1
 
    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
+   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:
@@ -59525,659 +1271,37 @@ Changes: V5.5 -> V5.6.pre1
    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
+2009-10-29 16:05  dts12
 
--------------------------------------------------------------------------------
+   *  FAQ, README, configure, configure.in, 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, sedscript.in,   
+      snmplib/snmp_version.c:
 
-Changes: V5.5.pre3 -> V5.5.rc1
+   - version tag ( 5.4.3.pre1 )
 
-2009-08-10 23:10  hardaker
+2009-10-29 14:24  dts12
 
-   * dist/makerelease.xml:
+   * CHANGES, NEWS:
 
-   fix typo in svn2cl line
+   version update
 
-2009-08-10 23:05  hardaker
+2009-10-29 11:46  dts12
 
-   * snmplib/Makefile.depend:
+   * ChangeLog:
 
-   make depend
+   version update
 
-2009-08-10 21:32  hardaker
+2009-10-29 10:30  dts12
 
-   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
-      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+   *  man/netsnmp_agent.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_container.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,   
@@ -60192,50 +1316,106 @@ Changes: V5.5.pre3 -> V5.5.rc1
       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:
+      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_rows.3, man/netsnmp_tdata.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
+2009-10-29 10:28  dts12
 
-   *  dist/makerelease.xml, man/pdu_api.3, man/session_api.3,   
-      man/varbind_api.3:
+   * doxygen.conf:
 
-   Version number update
+   - version tag ( 5.4.3.pre1 )
 
-2009-08-07 10:32  dts12
+2009-10-29 09:55  dts12
 
-   * CHANGES, NEWS:
+   * Makefile.top:
+
+   version update
+
+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 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/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-09-30 10:12  dts12
+
+   * agent/mibgroup/host/hr_swinst.c:
 
-   Correct, consolidate, clarify and cleanup the catalog of current
-   changes.
+   CHANGES: Solaris: Protect against missing package version
+   information crashing the agent.
+   Problem reported by Inyaven Sakarai.
 
-2009-08-06 07:57  dts12
+2009-09-23 23:40  hardaker
 
    * FAQ:
 
-   Expand on exec vs extend.
+   proper project capitalization
+
+2009-09-22 21:51  tanders
+
+   * README.solaris:
+
+   fix typos
+
+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-05 20:07  dts12
 
@@ -60254,22 +1434,6 @@ Changes: V5.5.pre3 -> V5.5.rc1
    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
 
    * 
@@ -60304,192 +1468,32 @@ Changes: V5.5.pre3 -> V5.5.rc1
    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
+   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
+2009-07-27 12:13  hardaker
 
    * man/netsnmp_Container_iterator.3:
 
-   remove an obsolete manual page
+   remove outdate case-conflicting manual page
 
-2009-07-27 12:03  hardaker
+2009-07-27 12:06  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:
@@ -60508,52 +1512,12 @@ Changes: V5.5.pre3 -> V5.5.rc1
 
    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
 
    * 
@@ -60564,43 +1528,6 @@ Changes: V5.5.pre3 -> V5.5.rc1
    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,   
@@ -60618,89 +1545,23 @@ Changes: V5.5.pre3 -> V5.5.rc1
    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
-
+2009-06-16 15:19  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,   
-      configure.d/config_os_libs,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: snmpd: PATCH: 2564552: from ahmake: provide libnetlink
-   support for loading the tcp table
-
-2009-06-12 19:02  rstory
+2009-06-14 22:01  tanders
 
-   *  agent/mibgroup/if-mib/ifTable/ifTable_data_access.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable_data_access.h:
+   * agent/mibgroup/host/hr_swrun.c:
 
-   CHANGES: snmpd: BUG: 1400101: remove deleted interfaces from
-   ifTable
+   portability fix (sync with 5.5)
 
 2009-06-11 23:09  hardaker
 
@@ -60709,36 +1570,19 @@ Changes: V5.5.pre2 -> V5.5.pre3
       win32/net-snmp/agent/mib_module_config.h,   
       win32/netsnmpmibssdk/netsnmpmibssdk.dsp:
 
-   CHANGES: win32: PATCH: 2693746: from bvassche: improved socket
-   startup support
+   CHANGES: win32: PATCH: 2693746: from bvassche: improved socket startup support
 
 2009-06-11 22:57  hardaker
 
    * agent/mibgroup/kernel_sunos5.c:
 
-   CHANGES: snmpd: PATCH: 2012402: don't fail on failure to look up
-   interface error counters.
-
-2009-06-11 22:03  hardaker
-
-   * include/net-snmp/types.h:
-
-   revert previous commit to make circular dependencies back to
-   their regular insane ordering; I don't like this situation at all
-
-2009-06-11 21:42  hardaker
-
-   * include/net-snmp/types.h:
-
-   include large_fd_set.h before typedefing something based on the
-   structure
+   CHANGES: snmpd: PATCH: 2012402: don't fail on failure to look up interface error counters.
 
 2009-06-03 12:35  dts12
 
    * perl/SNMP/SNMP.xs:
 
-   CHANGES: perl: PATCHES: 2793857: Report failed asynchronous
-   requests.
+   CHANGES: perl: PATCHES: 2793857: Report failed asynchronous requests.
 
 2009-06-03 11:46  dts12
 
@@ -60751,8 +1595,7 @@ Changes: V5.5.pre2 -> V5.5.pre3
 
    * agent/mibgroup/agentx/master_admin.c:
 
-   CHANGES: snmpd: PATCH: 2182592: Clean up vacmContextTable after
-   unregistrations
+   PATCH: 2182592: Clean up vacmContextTable after unregistrations
    Patch supplied by John Forsyth
 
 2009-06-03 10:12  dts12
@@ -60763,21 +1606,18 @@ Changes: V5.5.pre2 -> V5.5.pre3
       include/net-snmp/agent/snmp_agent.h, snmplib/snmpUDPDomain.c,   
       snmplib/snmp_api.c, snmplib/snmpv3.c:
 
-   CHANGES: PATCH: 2797251: Support multiple initialisation and
-   shutdown, fix memory leaks
+   CHANGES: PATCH: 2797251: Support multiple initialisation and shutdown, fix memory leaks
    Patch supplied by Ivosh
 
 2009-06-01 15:53  dts12
 
    * man/snmpd.conf.5.def:
 
-   CHANEGS: docs: PATCHES: 2788072: Document 'logmatch'
-   functionality.
+   CHANGES: docs: PATCHES: 2788072: Document 'logmatch' functionality.
 
 2009-06-01 15:50  dts12
 
    *  agent/mibgroup/utilities/iquery.c, snmplib/mib.c,   
-      snmplib/parse.c, snmplib/snmp_api.c, snmplib/snmp_parse_args.c,   
       snmplib/system.c, win32/net-snmp/net-snmp-config.h,   
       win32/net-snmp/net-snmp-config.h.in:
 
@@ -60785,32 +1625,17 @@ Changes: V5.5.pre2 -> V5.5.pre3
 
 2009-06-01 15:37  dts12
 
-   *  agent/mibgroup/host/data_access/swrun_kinfo.c,   
-      agent/mibgroup/host/data_access/swrun_kvm_proc.c,   
-      agent/mibgroup/host/data_access/swrun_procfs_psinfo.c,   
-      agent/mibgroup/host/data_access/swrun_procfs_status.c,   
-      agent/mibgroup/host/data_access/swrun_procinfo.c,   
-      agent/mibgroup/host/data_access/swrun_prpsinfo.c,   
-      agent/mibgroup/host/data_access/swrun_pstat.c, configure,   
-      local/snmpconf.dir/snmpd-data/monitor, m4/libtool.m4,   
+   *  aclocal.m4, configure, local/snmpconf.dir/snmpd-data/monitor,   
       man/snmpd.conf.5.def, man/snmpd.examples.5.def:
 
-   CHANGES: docs: PATCH: 2795739: Fix incorrect disk/file size
-   descriptions & unit specifiers
+   CHANGES: docs: PATCH: 2795739: Fix incorrect disk/file size descriptions & unit specifiers
 
 2009-06-01 13:11  dts12
 
    * EXAMPLE.conf.def:
 
    Rework example configuration file to match current snmpd.conf(5)
-   structure,
-   and more clearly illustrate current best practise.
-
-2009-05-30 06:58  magfr
-
-   * agent/mib_modules.c:
-
-   Remove unused include.
+   structure, and more clearly illustrate current best practise.
 
 2009-05-29 09:14  dts12
 
@@ -60820,42 +1645,18 @@ Changes: V5.5.pre2 -> V5.5.pre3
 
 2009-05-29 09:08  dts12
 
-   *  local/passtest, local/passtest.pl, mibs/Makefile.in,   
-      mibs/NET-SNMP-PASS-MIB.txt:
+   * local/passtest.pl, mibs/Makefile.in, mibs/NET-SNMP-PASS-MIB.txt:
 
    Rework "passtest" examples to fully validate GETNEXT requests,
    and use a legitimate MIB structure for output.
    Add an example MIB to define that structure.
 
-2009-05-28 12:41  dts12
-
-   * FAQ:
-
-   Updates to MIBs section
-
-2009-05-28 11:56  dts12
-
-   * FAQ:
-
-   Tweak phrasing of an (overlong) question in the Perl section
-
-2009-05-28 11:31  dts12
-
-   * FAQ:
-
-   New entry in the Applications section
-
-2009-05-28 10:41  dts12
-
-   * FAQ:
-
-   Updates to Applications section
-
-2009-05-27 15:26  dts12
+2009-05-28 12:55  dts12
 
    * FAQ:
 
-   Updates to GENERAL section.
+   Synchronise with latest FAQ
+   (including 5.5 revisions up to MIBs section)
 
 2009-05-19 17:50  alex_b
 
@@ -60874,9 +1675,7 @@ Changes: V5.5.pre2 -> V5.5.pre3
 
    * snmplib/scapi.c:
 
-   CHANGES: build: BUG: 2782700: build failure when using
-   --with-pkcs on
-   Solaris
+   CHANGES: build: BUG: 2782700: build failure when using --with-pkcs on Solaris
 
 2009-05-15 14:59  jsafranek
 
@@ -60898,50 +1697,29 @@ Changes: V5.5.pre2 -> V5.5.pre3
 
    * agent/mibgroup/disman/event/mteTriggerConf.c:
 
-   CHANGES: snmpd: Allow "monitor" to handle negative threshold
-   values.
+   CHANGES: snmpd: Allow "monitor" to handle negative threshold values.
    Reported by Richard Gipps.
 
 2009-05-13 22:32  tanders
 
    * snmplib/vacm.c:
 
-   CHANGES: snmpd: PATCH: 2791417: fix snmpd segfault when run with
-   -DALL
+   CHANGES: snmpd: PATCH: 2791417: fix snmpd segfault when run with -DALL
    Patch supplied by Ron Roskens.
 
 2009-05-13 08:02  dts12
 
    * man/snmpd.conf.5.def:
 
-   Bring documentation of notificationEvent syntax into line with
-   reality.
-   (Uses "-m" rather than "-n" to register standard MIB payload
-   objects)
+   Bring documentation of notificationEvent syntax into line with reality.
+   (Uses "-m" rather than "-n" to register standard MIB payload objects)
    Inconsistency reported by Richard Gipps.
 
-2009-05-10 21:12  alex_b
-
-   *  win32/Makefile-apps.in, win32/Makefile.in,   
-      win32/libsnmp_dll/Makefile.in, win32/snmpd/Makefile.in,   
-      win32/snmpdsdk/Makefile.in, win32/snmpnetstat/Makefile.in,   
-      win32/snmptrapd/Makefile.in:
-
-   Win32: Added automatic manifest merging with mt.exe for MSVC 2008
-   etc.
+2009-05-12 23:26  alex_b
 
-2009-05-08 13:12  alex_b
+   * include/net-snmp/data_access/interface.h, perl/agent/agent.xs:
 
-   * agent/mibgroup/winExtDLL.c:
-
-   Changes: Win32: Add support for Windows 7, Vista and 2008 for
-   winExtDLL.
-
-2009-05-08 02:07  alex_b
-
-   * win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
-
-   Win32: Build fixes for DLL.
+   Win32: Build fixes - change unsigned long long to uint64_t.
 
 2009-05-07 23:00  tanders
 
@@ -60949,315 +1727,17 @@ Changes: V5.5.pre2 -> V5.5.pre3
 
    build fix for HP-UX: include <sys/param.h> for DEV_BSIZE
 
-2009-05-07 05:11  nba
-
-   * agent/snmp_perl.h:
-
-   Ups, missed a new prototype header
-
-2009-05-06 22:26  nba
-
-   * man/snmpd.conf.5.def:
-
-   A man line cannot start with a '
-
-2009-05-06 22:07  nba
-
-   * snmplib/snmpUDPIPv6Domain.c:
-
-   IPv6 adresses are a bit more complicated then 32bits
-
-2009-05-06 22:06  nba
-
-   *  agent/agent_sysORTable.c, agent/helpers/instance.c,   
-      agent/mibgroup/agentx/client.c, agent/mibgroup/agentx/client.h,   
-      agent/mibgroup/disman/event/mteObjects.c,   
-      agent/mibgroup/disman/event/mteObjects.h,   
-      agent/mibgroup/disman/event/mteTrigger.c,   
-      agent/mibgroup/disman/event/mteTrigger.h,   
-      agent/mibgroup/disman/event/mteTriggerConf.c,   
-      agent/mibgroup/mibII/vacm_conf.c,   
-      include/net-snmp/agent/instance.h,   
-      include/net-snmp/agent/sysORTable.h,   
-      include/net-snmp/library/oid_stash.h, snmplib/oid_stash.c:
-
-   Sprinkle some const-ness where relevant
-
-2009-05-06 22:02  nba
-
-   * snmplib/scapi.c, snmplib/snmpUDPDomain.c:
-
-   Trivial warning fixes
-
-2009-05-06 22:00  nba
-
-   * mibs/rfcmibs.diff:
-
-   Hmmm, IANA fixed their bug too
-
-2009-05-06 21:59  nba
-
-   * README:
-
-   Update email to current
-
-2009-05-06 21:59  nba
-
-   *  agent/agent_trap.c, agent/mibgroup/hardware/cpu/cpu_linux.c,   
-      agent/mibgroup/host/hr_swrun.c,   
-      agent/mibgroup/if-mib/data_access/interface_linux.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
-      agent/mibgroup/ip-mib/data_access/systemstats_linux.c,   
-      agent/mibgroup/mibII/sysORTable.c,   
-      agent/mibgroup/mibII/system_mib.c,   
-      agent/mibgroup/notification/snmpNotifyFilterProfileTable.c,   
-      agent/mibgroup/ucd-snmp/logmatch.c,   
-      agent/mibgroup/ucd-snmp/pass.c,   
-      agent/mibgroup/ucd-snmp/pass_persist.c,   
-      agent/mibgroup/util_funcs/get_pid_from_inode.c,   
-      agent/snmp_agent.c, agent/snmp_perl.c, agent/snmp_vars.c,   
-      agent/snmpd.c, perl/SNMP/SNMP.xs,   
-      perl/TrapReceiver/TrapReceiver.xs, snmplib/container_list_ssll.c, 
-        snmplib/snmp_service.c:
-
-   Trivial warning fixes
-
-2009-05-06 21:49  nba
-
-   * apps/snmptrapd_log.c:
-
-   contextEngineID is a hexstring, not an object identifier
-
-2009-05-06 21:45  nba
-
-   *  agent/agent_registry.c, agent/helpers/cache_handler.c,   
-      agent/helpers/table.c, agent/helpers/table_dataset.c,   
-      agent/mibgroup/agent/extend.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/event/mteObjectsConf.c,   
-      agent/mibgroup/disman/schedule/schedCore.c,   
-      agent/mibgroup/header_complex.c,   
-      agent/mibgroup/if-mib/data_access/interface.c,   
-      agent/mibgroup/if-mib/data_access/interface_solaris2.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable_data_access.c,   
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.c,
-        
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_data_access.c,
-         agent/mibgroup/ip-mib/data_access/ipaddress_common.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/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c,
-        
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c,
-        
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.c,
-         agent/mibgroup/notification-log-mib/notification_log.c,   
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c,
-        
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
-         agent/mibgroup/snmpv3/usmUser.c,   
-      agent/mibgroup/target/snmpTargetAddrEntry.c,   
-      agent/mibgroup/target/snmpTargetParamsEntry.c,   
-      agent/mibgroup/target/target.c,   
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c,
-        
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.c,
-         agent/mibgroup/ucd-snmp/proxy.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c,   
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c,
-         agent/mibgroup/utilities/execute.c, apps/encode_keychange.c,   
-      snmplib/asn1.c, snmplib/dir_utils.c, snmplib/int64.c,   
-      snmplib/mib.c, snmplib/read_config.c,   
-      snmplib/snmpCallbackDomain.c, snmplib/snmp_alarm.c,   
-      snmplib/snmp_api.c, snmplib/snmp_client.c, snmplib/snmpusm.c,   
-      snmplib/snmpv3.c:
-
-   Fix format warnings from debug output
-
-2009-05-06 20:45  nba
-
-   * mibs/smistrip:
-
-   Properly recognize message syntax modules (to be able to ignore
-   them)
-
-2009-05-06 20:36  nba
-
-   * mibs/rfclist:
-
-   RFC updates
-
-2009-05-06 20:35  nba
-
-   * mibs/rfcmibs.diff:
-
-   Syntax fix for current IANA-PRINTER-MIB
-
-2009-05-06 20:34  nba
-
-   * mibs/IANAifType-MIB.txt:
-
-   Update to current IANA version
-
-2009-05-04 13:47  alex_b
-
-   * win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
-
-   Win32: Build fixes for DLL.
-
-2009-05-01 15:43  magfr
-
-   * include/net-snmp/library/snmp_debug.h, snmplib/snmp_debug.c:
-
-   NEWS: snmplib: Stop using a fixed string for indentation. Remove
-   the DEBUGINDENT() macro (that did nothing). Change the meaning of
-   the internal __DBGINDENT() macro to return the number of spaces
-   to indent instead of a string that represent the indentation
-   level. Deprecate the debug_indent function.
-
-2009-04-30 06:57  magfr
-
-   *  agent/mibgroup/examples/watched.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, local/mib2c.int_watch.conf:
-
-   CHANGES: snmpd: Use static watcher_info for all watched variables
-   and in int_watch.
-
-2009-04-30 06:41  magfr
-
-   * agent/helpers/watcher.c, include/net-snmp/agent/watcher.h:
-
-   CHANGES: snmplib: Separate initialization from allocation for
-   netsnmp_watcher_info structures to make it possible to use
-   statically allocated data.
-
-2009-04-30 06:34  magfr
-
-   * snmplib/snmpDTLSUDPDomain.c:
-
-   Add missing return value.
-
-2009-04-30 00:18  hardaker
-
-   * man/snmpd.conf.5.def:
-
-   document the DTLS support; semi document the SSH support and
-   document the -s switch to many VACM settings
-
-2009-04-29 23:54  hardaker
-
-   * snmplib/snmpDTLSUDPDomain.c:
-
-   protect against connection opening errors and free memory on
-   failures
-
-2009-04-29 12:19  alex_b
-
-   *  win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   Win32: Update defines for _WIN32_WINNT and NTDDI_VERSION to
-   support Windows 2000 and higher and add IPV6 define to allow IPV6
-   code to compile.
-
-2009-04-28 06:34  magfr
-
-   * agent/mibgroup/ip-mib/data_access/systemstats_linux.c:
-
-   snmpd, Linux: Remove some unused variables.
-
-2009-04-28 06:07  magfr
-
-   * agent/mibgroup/ip-mib/data_access/scalars_linux.c:
-
-   snmpd: Add missing argument to printf-like call.
-
-2009-04-28 05:53  magfr
-
-   * agent/mibgroup/mibII/system_mib.c:
-
-   snmpd: Mark more oids as const.
-
-2009-04-28 05:51  magfr
-
-   * snmplib/mib.c:
-
-   Return a value from sprint_realloc_value even if no subtree is
-   located.
-
-2009-04-28 01:12  alex_b
-
-   *  agent/mibgroup/winExtDLL.c, win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   Win32: MSVC: Only use Windows API functions available on WinXP or
-   before (IPV6) or 2000 or before (no IPV6).
-
-2009-04-26 23:30  alex_b
-
-   *  win32/Makefile-apps.in, win32/libsnmp_dll/Makefile.in,   
-      win32/snmpd/Makefile.in, win32/snmpdsdk/Makefile.in,   
-      win32/snmpnetstat/Makefile.in, win32/snmptrapd/Makefile.in:
-
-   Win32: Remove machine type of I386 from LINK32_FLAGS to allow
-   compiling with MSVC 2008 as either 32 or 64-bit.
-
-2009-04-26 17:38  alex_b
-
-   *  win32/Makefile-apps.in, win32/Makefile.in,   
-      win32/libsnmp_dll/Makefile.in, win32/snmpd/Makefile.in,   
-      win32/snmpdsdk/Makefile.in, win32/snmpnetstat/Makefile.in,   
-      win32/snmptrapd/Makefile.in:
-
-   CHANGES: Win32: Build fixes for MSVC 2008. Copy and cleanup
-   manifest files.
-
-2009-04-26 15:21  alex_b
-
-   *  agent/mibgroup/ucd-snmp/pass.c,   
-      agent/mibgroup/ucd-snmp/pass_persist.c,   
-      win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   Win32: Re-enable pass and pass_persist Counter64 for MSVC.
-
-2009-04-26 14:34  alex_b
-
-   *  agent/mibgroup/mibII/interfaces.c,   
-      agent/mibgroup/mibII/interfaces.h, snmplib/snmpTCPIPv6Domain.c,   
-      snmplib/snmpUDPIPv6Domain.c, win32/build.pl,   
-      win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: Win32: Build fixes for MSVC 2008. IFTYPE is defined by
-   MSVC 2008, so interfaces.c variables were changed to NETSNMP_.
-
 2009-04-26 13:06  alex_b
 
    * agent/mibgroup/winExtDLL.c:
 
    Win32: Update build instructions in comments.
 
-2009-04-24 13:28  hardaker
-
-   * perl/agent/agent.xs:
-
-   fix the ASN_OPAQUE patch that was commited without proper diff
-   context
-
 2009-04-24 07:31  tanders
 
-   * configure, configure.d/config_os_misc4:
+   * configure, configure.in:
 
-   CHANGES: HP-UX: BUG: 2779472: Filesystems missing in hrStorage
-   table on HP-UX 11.31
+   CHANGES: HP-UX: BUG: 2779472: Filesystems missing in hrStorage table on HP-UX 11.31
    (allow for mnttab that is a character special device)
 
 2009-04-24 01:36  alex_b
@@ -61267,78 +1747,18 @@ Changes: V5.5.pre2 -> V5.5.pre3
 
    CHANGES: Win32: BUG: 2779541 Fixed handle leak in pass_persist.
 
--------------------------------------------------------------------------------
+2009-04-23 23:14  tanders
+
+   * agent/mibgroup/host/hr_storage.c:
 
-Changes: V5.5.pre1 -> V5.5.pre2
+   CHANGES: AIX: BUG: 2712670: Agent crashes on AIX with hrStorage
 
 2009-04-23 22:53  hardaker
 
-   * agent/mibgroup/hardware/sensors.h, snmplib/snmp_alarm.c:
+   * snmplib/snmp_alarm.c:
 
    fix C++ style comments
 
-2009-04-23 22:25  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-04-23 22:23  hardaker
-
-   *  man/config_api.3, man/pdu_api.3, man/session_api.3,   
-      man/varbind_api.3:
-
-   initial doxygen extracts for the new headers
-
-2009-04-23 22:19  hardaker
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile,   
-      dist/net-snmp.spec:
-
-   Version number update
-
 2009-04-23 22:16  tanders
 
    * agent/mibgroup/host/hr_filesys.c:
@@ -61347,91 +1767,28 @@ Changes: V5.5.pre1 -> V5.5.pre2
 
 2009-04-23 22:10  tanders
 
-   * configure, configure.d/config_os_misc4:
+   * configure, configure.in:
 
-   CHANGES: HP-UX: BUG: 2779472: Filesystems missing in hrStorage
-   table on
-   HP-UX 11.31
+   CHANGES: HP-UX: BUG: 2779472: Filesystems missing in hrStorage table on HP-UX 11.31
 
 2009-04-23 21:48  tanders
 
    * agent/mibgroup/kernel_sunos5.c:
 
-   CHANGES: Solaris: PATCH: 2751588: Inconsistent data (e.g. UDP/TCP
-   MIB
-   scalar values of zero) can be reported on Solaris 10U4+
+   CHANGES: Solaris: PATCH: 2751588: Inconsistent data (e.g. UDP/TCP MIB scalar values of zero) can be reported on Solaris 10U4+
    Patch provided by Anders Persson
 
-2009-04-23 17:30  hardaker
-
-   *  agent/mibgroup/ucd-snmp/logmatch.c,   
-      agent/mibgroup/ucd-snmp/logmatch.h:
-
-   NEWS: snmpd: PATCH: 1901764: from krisztoforo for supporting
-   logwatch files that are date based
-
-2009-04-23 17:22  hardaker
-
-   * perl/SNMP/SNMP.pm, perl/SNMP/SNMP.xs:
-
-   NEWS: perl: PATCH 1956193: from cacoyle: beta threadable perl
-   module code for SNMPv1/SNMPv2c usage.
-
 2009-04-23 16:57  hardaker
 
    * agent/mibgroup/kernel_sunos5.c:
 
-   CHANGES: solaris: PATCH: 2012404: deal with more than 10
-   interfaces. New hardcoded limit is 50. A better scaling patch
-   would be appreciated :-)
-
-2009-04-23 16:47  hardaker
-
-   *  README.agent-mibs, configure,   
-      configure.d/config_project_with_enable:
-
-   document that the etherlike-mib has an implementation
-
-2009-04-23 16:40  hardaker
-
-   *  agent/mibgroup/etherlike-mib,   
-      agent/mibgroup/etherlike-mib/data_access,   
-      agent/mibgroup/etherlike-mib/data_access/dot3stats.h,   
-      agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c,   
-      agent/mibgroup/etherlike-mib/dot3StatsTable,   
-      agent/mibgroup/etherlike-mib/dot3StatsTable.h,   
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable.c,   
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable.h,   
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c,
-        
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.h,
-        
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_get.c,
-        
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_get.h,
-        
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_set.c,
-        
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_set.h,
-        
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_enums.h,
-        
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.c,
-        
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.h,
-        
-      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_oids.h,
-         agent/mibgroup/etherlike-mib/dot3StatsTable/ioctl_imp_common.h:
-
-   NEWS: snmpd: PATCH: 2053273: from narendra_k_dell to imlpement
-   the etherlike mib (at least on linux)
+   CHANGES: solaris: PATCH: 2012404: deal with more than 10 interfaces. New hardcoded limit is 50. A better scaling patch would be appreciated :-)
 
 2009-04-23 16:35  hardaker
 
    * local/mib2c-conf.d/generic-table-oids.m2c:
 
-   CHANGES: mib2c: PATCH: 2136437: make FLAG defines more 64bit
-   friendly when huge tables are encountered
+   CHANGES: mib2c: PATCH: 2136437: make FLAG defines more 64bit friendly when huge tables are encountered
 
 2009-04-23 16:27  hardaker
 
@@ -61444,15 +1801,13 @@ Changes: V5.5.pre1 -> V5.5.pre2
 
    * python/netsnmp/client.py:
 
-   CHANGES: python: PATCH: 2074817: from fenner to fix regexp engine
-   CPU performance issues
+   CHANGES: python: PATCH: 2074817: from fenner to fix regexp engine CPU performance issues
 
 2009-04-23 16:14  hardaker
 
    * agent/mibgroup/host/hr_storage.c:
 
-   CHANGES: snmpd: PATCH: 2162652: patch to fix simple hrfs checks
-   when NFS is in use.
+   CHANGES: snmpd: PATCH: 2162652: patch to fix simple hrfs checks when NFS is in use.
 
 2009-04-23 16:11  hardaker
 
@@ -61504,58 +1859,6 @@ Changes: V5.5.pre1 -> V5.5.pre2
 
    Fix memory leak in SCTP containers.
 
-2009-04-23 08:29  dts12
-
-   *  include/net-snmp/library/large_fd_set.h,   
-      include/net-snmp/types.h:
-
-   netsnmp_large_fd_set is probably best regarded as an "opaque"
-   data
-   structure, and isn't really intended for direct manipulation.
-   Move it back into the <library/large_fd_set.h> header file.
-   (Like it was before Dave stuck his oar in....)
-
-2009-04-23 08:19  dts12
-
-   *  include/net-snmp/library/large_fd_set.h,   
-      include/net-snmp/session_api.h, include/net-snmp/types.h,   
-      snmplib/fd_event_manager.c, snmplib/large_fd_set.c,   
-      snmplib/snmp_api.c:
-
-   Fuerther improvements to the large FD set support
-   (See patch #2772787)
-
-2009-04-23 06:45  magfr
-
-   * agent/mibgroup/sctp-mib/sctpTables.h:
-
-   building: Use config_error(...) instead of
-   config_require(non-existing) to get better error messages.
-
-2009-04-23 06:41  magfr
-
-   *  agent/mibgroup/sctp-mib/sctpTables.h,   
-      agent/mibgroup/sctp-mib/sctpTables_linux.c,   
-      agent/mibgroup/tcp-mib/data_access/tcpConn.h,   
-      agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint.h,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c,   
-      agent/mibgroup/util_funcs.c, agent/mibgroup/util_funcs.h,   
-      agent/mibgroup/util_funcs/get_pid_from_inode.c,   
-      agent/mibgroup/util_funcs/get_pid_from_inode.h:
-
-   snmplib, Linux: Move get_pid_from_inode to it's own file and only
-   compile it if needed, also rename it to
-   netsnmp_get_pid_from_inode.
-
-2009-04-23 04:33  hardaker
-
-   *  agent/mibgroup/mibII/sysORTable.h,   
-      agent/mibgroup/mibII/system_mib.h, agent/snmpd.h:
-
-   CHANGES: snmpd: PATCH: 2431353 from hnrose to make some C++
-   compilers happier
-
 2009-04-23 03:27  hardaker
 
    * snmplib/snmp_alarm.c:
@@ -61563,264 +1866,27 @@ Changes: V5.5.pre1 -> V5.5.pre2
    CHANGES: snmplib: PATCH: 2505488: from dabokey to fix alarms not
    being triggered at the right times due to large clock skews.
 
-2009-04-23 00:01  hardaker
-
-   *  apps/snmpnetstat/inet.c, apps/snmpnetstat/main.c,   
-      apps/snmpnetstat/netstat.h, man/snmpnetstat.1.def:
-
-   NEWS: snmpnetstat: PATCH: 2564538: from ahmake to support GETBULK
-   in v2c+ snmp versions
-
 2009-04-22 23:49  hardaker
 
    *  agent/mibgroup/agent/extend.c, apps/snmpnetstat/inet.c,   
-      apps/snmpnetstat/route.c, snmplib/system.c:
+      apps/snmpnetstat/route.c, apps/snmptrapd_handlers.c,   
+      apps/snmptrapd_handlers.h, snmplib/system.c:
 
    CHANGES: ports: PATCH: 2688342: from ahmake to fix various
    compiler warning
 
-2009-04-22 23:23  hardaker
-
-   * perl/agent/agent.xs:
-
-   CHANGES: perl: PATCH: 276371: from fhew to allow perl to use
-   OPAQUEs
-
-2009-04-22 23:17  hardaker
-
-   * python/netsnmp/client_intf.c:
-
-   CHANGES: python: PATCH: 2775800: from Adam Romanek to allow
-   python threading to continue when a request is sent
-
 2009-04-22 22:11  alex_b
 
    * README, README.win32:
 
    Update THANKS section.
 
-2009-04-22 21:21  magfr
-
-   * agent/mibgroup/util_funcs.c:
-
-   Fold the function extract_inode. with only one user, into it's
-   user.
-   Remove the #define FILE_DISP, with only one user, with the actual
-   value.
-
-2009-04-22 21:03  magfr
-
-   * agent/snmpd.c:
-
-   Make it possible to build with SMUX enabled.
-
-2009-04-22 13:43  jsafranek
-
-   * README.agent-mibs:
-
-   Add a note how the new RMON-MIB implementaion works
-
-2009-04-22 13:41  dts12
-
-   * man/varbind_api.3.def:
-
-   Fill out the documentation of the Varbind-related API calls.
-
-2009-04-22 13:37  jsafranek
-
-   *  README.agent-mibs, agent/mibgroup/rmon-mib,   
-      agent/mibgroup/rmon-mib.h, agent/mibgroup/rmon-mib/data_access,   
-      agent/mibgroup/rmon-mib/data_access/etherstats.h,   
-      agent/mibgroup/rmon-mib/data_access/etherstats_linux.c,   
-      agent/mibgroup/rmon-mib/etherStatsTable,   
-      agent/mibgroup/rmon-mib/etherStatsTable.h,   
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable.c,   
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable.h,   
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c,
-        
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.h,
-        
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.c,
-        
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.h,
-        
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_set.c,
-        
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_set.h,
-        
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_enums.h,  
-      
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c,
-        
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.h,
-         agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_oids.h,
-         agent/mibgroup/rmon-mib/etherStatsTable/ioctl_imp_common.h:
-
-   NEWS: snmpd: PATCH: 2103492: implement
-   RMON-MIB::etherStatsJabbers
-   Patch from Narendra K., Sandeep K. Shandilya and Shyam Iyer
-
 2009-04-22 10:08  dts12
 
    * man/mib_api.3.def:
 
    Correct a seriously misleading (i.e. wrong) description of the
-   purpose
-   and behaviour of the print_description family of calls.
-
-2009-04-22 09:32  dts12
-
-   * man/mib_api.3.def:
-
-   Further polishing of the descriptions of MIB-related API calls.
-
-2009-04-22 07:39  dts12
-
-   * snmplib/snmp_api.c:
-
-   Remove unnecessary range checks.
-   (These are handled within the large_fd_set routines themselves).
-
-2009-04-21 23:27  alex_b
-
-   *  win32/libsnmp/Makefile.in, win32/libsnmp/libsnmp.dsp,   
-      win32/libsnmp_dll/Makefile.in, win32/libsnmp_dll/libsnmp.def,   
-      win32/libsnmp_dll/libsnmp.def.in,   
-      win32/libsnmp_dll/libsnmp_dll.dsp:
-
-   win32: Fix Windows build environment to support patch 2772787.
-
-2009-04-21 15:33  dts12
-
-   *  agent/snmpd.c, include/net-snmp/library/fd_event_manager.h,   
-      include/net-snmp/library/large_fd_set.h,   
-      include/net-snmp/session_api.h, include/net-snmp/types.h,   
-      snmplib/Makefile.in, snmplib/fd_event_manager.c,   
-      snmplib/large_fd_set.c, snmplib/snmp_api.c:
-
-   Revised version of patch #2772787
-
-2009-04-21 15:15  dts12
-
-   *  include/net-snmp/library/large_fd_set.h,   
-      include/net-snmp/session_api.h, include/net-snmp/types.h,   
-      snmplib/Makefile.in, snmplib/large_fd_set.c, snmplib/snmp_api.c,  
-       win32/libsnmp/libsnmp.dsp:
-
-   Undo revision 17515
-   (broken/incomplete patch)
-
-2009-04-21 14:37  dts12
-
-   *  include/net-snmp/library/large_fd_set.h,   
-      include/net-snmp/session_api.h, include/net-snmp/types.h,   
-      snmplib/Makefile.in, snmplib/large_fd_set.c, snmplib/snmp_api.c,  
-       win32/libsnmp/libsnmp.dsp:
-
-   CHANGES: snmplib: PATCH: 2772787: Cleaner approach to handling
-   large fd_sets.
-   Based on patch supplied by Bart Van Assche.
-
-2009-04-21 14:34  dts12
-
-   * man/Makefile.in:
-
-   Properly generate new core API man pages.
-
-2009-04-21 09:38  dts12
-
-   *  include/net-snmp/config_api.h, include/net-snmp/library/mib.h,   
-      include/net-snmp/library/parse.h,   
-      include/net-snmp/library/read_config.h,   
-      include/net-snmp/library/snmp_api.h,   
-      include/net-snmp/library/snmp_client.h,   
-      include/net-snmp/mib_api.h, include/net-snmp/pdu_api.h,   
-      include/net-snmp/session_api.h, include/net-snmp/types.h,   
-      include/net-snmp/varbind_api.h:
-
-   First-cut at identifying the core Net-SNMP API calls.
-   Move these into the appropriate top-level header files.
-
-2009-04-21 09:36  dts12
-
-   *  man/Makefile.in, man/config_api.3.def, man/read_config.3.def,   
-      man/session_api.3.def, man/snmp_api.3.def:
-
-   Rename config/session API man pages, in line with other core API
-   structure.
-
-2009-04-21 09:32  dts12
-
-   *  man/Makefile.in, man/mib_api.3.def, man/pdu_api.3.def,   
-      man/read_config.3.def, man/snmp_api.3.def, man/varbind_api.3.def:
-
-   Document (or restructure) the core API elements.
-   Align this organisation with the first-cut restructuring
-   of the main header files.
-
-2009-04-20 10:23  dts12
-
-   * snmplib/snmp_api.c:
-
-   Skip file handles that are too large for fd_set to cope with.
-   A simple fix for the immediate problem addressed by patch
-   #1627049.
-
-2009-04-20 10:19  dts12
-
-   * include/net-snmp/library/snmp_api.h, snmplib/snmp_api.c:
-
-   Revert patch #1627049 (extension to deal with large file
-   handlers).
-   See the discussion on that tracker entry for background as to
-   why.
-
-2009-04-20 00:59  alex_b
-
-   *  README.win32, agent/mibgroup/ucd-snmp/pass.c,   
-      agent/mibgroup/ucd-snmp/pass_persist.c,   
-      agent/mibgroup/util_funcs.h,   
-      include/net-snmp/data_access/interface.h,   
-      include/net-snmp/library/snmpUDPDomain.h, perl/agent/agent.xs,   
-      win32/Configure, win32/libagent/Makefile.in,   
-      win32/libagent/libagent.dsp, win32/libsnmp_dll/libsnmp.def.in,   
-      win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in,   
-      win32/netsnmpmibs/Makefile.in, win32/netsnmpmibs/netsnmpmibs.dsp, 
-        win32/netsnmpmibssdk/Makefile.in,   
-      win32/netsnmpmibssdk/netsnmpmibssdk.dsp:
-
-   win32: Build fixes for Windows. pass and pass_persist still need
-   to be fixed to support Counter64 on Windows.
-
-2009-04-20 00:48  alex_b
-
-   *  win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   win32: Sync net-snmp-config.h.in and net-snmp-config.h
-
-2009-04-17 21:21  magfr
-
-   *  configure, configure.d/config_os_progs, ltmain.sh, m4/libtool.m4, 
-        m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.m4:
-
-   CHANGES: build: Upgrade libtool version to 2.2.6 in order to work
-   around a buglet that made autoreconf -vif erase config.sub and
-   config.guess.
-
-2009-04-14 21:59  magfr
-
-   * snmplib/parse.c:
-
-   CHANGES: snmplib: BUG: 1976772: Changed the mib parser to handle
-   long binary and hex strings.
-
-2009-04-11 12:52  rstory
-
-   * dist/makerelease.xml:
-
-   suggest truncation of ChangeLog.reallyadd
+   purpose and behaviour of the print_description family of calls.
 
 2009-04-10 23:18  alex_b
 
@@ -61855,8 +1921,7 @@ Changes: V5.5.pre1 -> V5.5.pre2
 
 2009-04-10 21:45  alex_b
 
-   *  win32/Configure, win32/dist/README.build.win32.txt,   
-      win32/dist/README.txt:
+   * win32/Configure:
 
    Win32: Minor build and readme updates.
 
@@ -61868,27 +1933,24 @@ Changes: V5.5.pre1 -> V5.5.pre2
    NEWS: Win32: PATCH 2686248: Applied patch by Bart Van Assche
    which fixes several winExtDLL bugs.
 
-2009-04-10 20:17  rstory
+2009-04-10 20:14  rstory
 
    * agent/mibgroup/ucd-snmp/diskio.c:
 
-   restore annoying log message, but fix cause of it on !freebsd
-   systems
+   restore annoying log message, but fix cause of it on !freebsd systems
 
 2009-04-09 12:28  dts12
 
    * agent/helpers/table_iterator.c:
 
-   CHANGES: snmpd: PATCH: 1550730: Report errors from iterator-based
-   handlers.
+   CHANGES: snmpd: PATCH: 1550730: Report errors from iterator-based handlers.
    Based on a patch provided by Wayne Glantz
 
 2009-04-09 11:41  dts12
 
    * agent/mibgroup/snmpv3/usmUser.c:
 
-   CHANGES: snmpd: PATCH: 2124288: Fix setting of
-   usmUserPrivProtocol at creation.
+   CHANGES: snmpd: PATCH: 2124288: Fix setting of usmUserPrivProtocol at creation.
    Logic bug, reported by Ramesh Kotabagi
 
 2009-04-09 09:12  dts12
@@ -61905,98 +1967,47 @@ Changes: V5.5.pre1 -> V5.5.pre2
    CHANGES: python: PATCH: 2260828: Fix python snmpwalk memory leak
    Patch provided by Gabriele Messineo
 
-2009-04-09 08:58  dts12
-
-   * perl/SNMP/SNMP.pm, perl/SNMP/SNMP.xs:
-
-   CHANGES: perl: PATCH: 2272347: Implement "implied" in MIB hash
-   Patch provided by Bill Fenner
-
 2009-04-09 08:54  dts12
 
    * local/mib2c.iterate_access.conf:
 
-   CHANGES: mib2c: PATCH: 2316127: Fix bug in iterate_access
-   generated code.
-
-2009-04-09 08:48  dts12
-
-   * include/net-snmp/system/netbsd.h:
-
-   CHANGES: snmpd: PATCH: 2435681: Enable if-mib rewrite (with
-   sysctl backend) on NetBSD
+   CHANGES: mib2c: PATCH: 2316127: Fix bug in iterate_access generated code.
 
 2009-04-09 08:44  dts12
 
    * agent/mibgroup/if-mib/data_access/interface_sysctl.c:
 
-   CHANGES: snmpd: PATCH: 2435793: Support 64-bit IF-MIB counters on
-   sysctl (*BSD) systems.
+   CHANGES: snmpd: PATCH: 2435793: Support 64-bit IF-MIB counters on sysctl (*BSD) systems.
    Patch provided by Jan Andres
 
-2009-04-09 08:00  tanders
-
-   * perl/agent/agent.xs:
-
-   fix compilation warnings
-
-2009-04-08 23:17  tanders
-
-   * perl/agent/agent.xs:
-
-   move comments to a place where they are legal
-
-2009-04-08 23:03  tanders
-
-   * perl/agent/agent.pm, perl/agent/agent.xs:
-
-   - rename new getRequestorIp to getSourceIP and getTargetIp to
-   getDestIp
-   - remind that this is fully transport-specific, i.e. UDP/IPv4
-   only!
-
 2009-04-08 16:00  dts12
 
    * agent/snmp_agent.c:
 
-   CHANGES: snmpd: PATCH: 2384779: Fix handling of GetBulk with
-   N>0,M==0
+   CHANGES: snmpd: PATCH: 2384779: Fix handling of GetBulk with N>0,M==0
    Patch provided by Angus Salkeld
 
 2009-04-08 15:52  dts12
 
    * agent/mibgroup/host/hr_swrun.c:
 
-   CHANGES: snmpd: PATCH: 2406378: Fix hrSWRunPerfMem on 64-bit
-   Solaris systems
+   CHANGES: snmpd: PATCH: 2406378: Fix hrSWRunPerfMem on 64-bit Solaris systems
    Patch provided by NTwoO
 
 2009-04-08 15:48  dts12
 
    * snmplib/mib.c:
 
-   CHANGES: snmplib: PATCH: 2479700: Fix zoned IP address used as
-   table indices
+   CHANGES: snmplib: PATCH: 2479700: Fix zoned IP address used as table indices
    Patch provided by Brian Retford.
 
 2009-04-08 15:33  dts12
 
    * snmplib/snmp_logging.c:
 
-   CHANGES: snmplib: PATCH: 2492377: Fix typo/bug in
-   snmp_enable_callback()
+   CHANGES: snmplib: PATCH: 2492377: Fix typo/bug in snmp_enable_callback()
    Reported by joyceanmachine
 
-2009-04-08 15:29  dts12
-
-   *  agent/mibgroup/sctp-mib/sctpScalars.h,   
-      agent/mibgroup/sctp-mib/sctpScalars_freebsd.c,   
-      agent/mibgroup/sctp-mib/sctpTables.h,   
-      agent/mibgroup/sctp-mib/sctpTables_common.h,   
-      agent/mibgroup/sctp-mib/sctpTables_freebsd.c:
-
-   CHANGES: snmpd: PATCH: 2507249: sctp-mib support for FreeBSD.
-
 2009-04-08 15:16  dts12
 
    * snmplib/snmp_client.c:
@@ -62009,8 +2020,7 @@ Changes: V5.5.pre1 -> V5.5.pre2
 
    * python/netsnmp/client_intf.c:
 
-   CHANGES: python: PATCH: 2580979: Fix python session pointers on
-   64-bit systems.
+   CHANGES: python: PATCH: 2580979: Fix python session pointers on 64-bit systems.
    Patch provided by John Khvatov.
 
 2009-04-08 14:49  dts12
@@ -62024,7 +2034,8 @@ Changes: V5.5.pre1 -> V5.5.pre2
 2009-04-08 14:34  dts12
 
    *  perl/TrapReceiver/TrapReceiver.pm,   
-      perl/TrapReceiver/TrapReceiver.xs:
+      perl/TrapReceiver/TrapReceiver.xs, perl/TrapReceiver/const-c.inc, 
+        perl/TrapReceiver/const-xs.inc:
 
    CHANGES: snmptrapd: PATCH: 2726302: Pass results of Perl trap
    handlers to trap daemon
@@ -62038,14 +2049,6 @@ Changes: V5.5.pre1 -> V5.5.pre2
    high-ASCII chars
    Patch provided by Bart Van Assche
 
-2009-04-08 14:24  dts12
-
-   * perl/agent/agent.pm, perl/agent/agent.xs:
-
-   CHANGES: perl: PATCH: 2709705: Retrieve src/target IP address in
-   Perl-based agents
-   Patch provided by fhew
-
 2009-04-08 14:16  dts12
 
    * snmplib/snmpUDPIPv6Domain.c:
@@ -62072,28 +2075,6 @@ Changes: V5.5.pre1 -> V5.5.pre2
    Qn: Does this even qualify as an error? Wouldn't a warning be
    sufficient?
 
-2009-04-06 19:33  magfr
-
-   * include/net-snmp/library/parse.h, snmplib/parse.c:
-
-   snmplib: Make the node struct private. Hide the orhan_nodes
-   variable.
-
-2009-04-06 18:45  magfr
-
-   * agent/snmp_perl.c:
-
-   snmpd,perl: If my_perl is NULL when passed to perl_destruct then
-   that function crashes for some perl versions so check that it is
-   non-null before destroying it.
-
-2009-04-06 18:42  magfr
-
-   * perl/agent/agent.xs:
-
-   perl: Avoid surprises if the perl string contains printf escape
-   characters.
-
 2009-04-06 18:22  dts12
 
    * agent/mibgroup/host/hr_swrun.c:
@@ -62102,7 +2083,7 @@ Changes: V5.5.pre1 -> V5.5.pre2
    (Avoids truncated walk of hrSWRunPath on SuSE systems)
    Reported by Kamil Kisiel.
 
-2009-04-06 11:58  tanders
+2009-04-06 12:05  tanders
 
    * perl/agent/agent.xs, perl/agent/typemap:
 
@@ -62111,109 +2092,11 @@ Changes: V5.5.pre1 -> V5.5.pre2
    getRootOID works properly. Now passes "make test" and "make
    perltest".
 
-2009-04-05 10:05  magfr
-
-   *  agent/mibgroup/host/hr_storage.c,   
-      agent/mibgroup/ip-mib/data_access/systemstats_common.c,   
-      agent/mibgroup/ip-mib/data_access/systemstats_linux.c,   
-      agent/mibgroup/smux/smux.c:
-
-   Remove unused variables.
-
-2009-04-05 09:53  magfr
-
-   *  agent/helpers/table_dataset.c,   
-      agent/mibgroup/examples/netSnmpHostsTable.c,   
-      agent/mibgroup/mibII/ipCidrRouteTable.c,   
-      local/mib2c.iterate_access.conf, local/mib2c.notify.conf:
-
-   Make even more variables and templates const.
-
-2009-04-04 22:13  magfr
-
-   *  agent/mibgroup/agent/nsCache.c, agent/mibgroup/agent/nsDebug.c,   
-      agent/mibgroup/agent/nsLogging.c,   
-      agent/mibgroup/agent/nsModuleTable.c,   
-      agent/mibgroup/agent/nsTransactionTable.c,   
-      agent/mibgroup/agent/nsVacmAccessTable.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable.h,   
-      agent/mibgroup/if-mib/ifXTable/ifXTable.c,   
-      agent/mibgroup/if-mib/ifXTable/ifXTable.h,   
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c,
-        
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.h,
-        
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c,
-        
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.h,
-        
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.c,  
-       agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h, 
-       
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c,
-        
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h,
-         agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c,   
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h,   
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.c,
-        
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h,
-         agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.c,   
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h,   
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c,   
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h,   
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.c,   
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h,   
-      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.c,   
-      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h,   
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.c,
-        
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h,
-         agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/snmp_mib.c,  
-       agent/mibgroup/mibII/sysORTable.c,   
-      agent/mibgroup/mibII/tcpTable.c, agent/mibgroup/mibII/updates.c,  
-       agent/mibgroup/mibII/updates.h,   
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c,
-        
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.h,
-        
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable.c,
-        
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable.h,
-         agent/mibgroup/target/target_counters.c,   
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c,   
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.h,   
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.c,   
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.h,   
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.c,   
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.h:
-
-   snmpd: Make more local variables const and local.
-
-2009-04-04 10:07  magfr
-
-   * agent/snmpd.c, apps/snmptrapd.c, net-snmp-config.in:
-
-   Mark the reconfig variable as static since it is private to the
-   module.
-
-2009-04-04 10:03  magfr
+2009-04-06 12:02  dts12
 
-   * agent/mibgroup/ucd-snmp/memory.c:
-
-   Mark the file scope private variable minimum_swap as static.
-
-2009-04-04 09:58  magfr
-
-   *  agent/mibgroup/if-mib/ifTable/ifTable.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable_interface.c,   
-      agent/mibgroup/ucd-snmp/lmsensorsMib.c,   
-      agent/mibgroup/ucd-snmp/memory.c,   
-      agent/mibgroup/ucd-snmp/vmstat.c:
+   * agent/mibgroup/hardware/memory/memory_linux.c:
 
-   snmplib: Make more symbols const in order to move them to
-   readonly memory.
+   Fix typo
 
 2009-04-02 21:24  hardaker
 
@@ -62222,131 +2105,6 @@ Changes: V5.5.pre1 -> V5.5.pre2
    CHANGES: BUG 112694: Patch from Bill Fenner: don't open (and
    clobber) an agentx socket if the other transports fail to open
 
-2009-04-01 23:41  hardaker
-
-   * CHANGES, NEWS:
-
-   version update
-
-2009-04-01 23:19  hardaker
-
-   * ChangeLog:
-
-   version update
-
-2009-04-01 23:04  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-04-01 23:03  hardaker
-
-   * snmplib/parse.c, snmplib/snmpDTLSUDPDomain.c, snmplib/snmptsm.c:
-
-   convert comments to ANSI comments
-
-2009-04-01 22:21  hardaker
-
-   *  man/Makefile.in, 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-04-01 22:03  hardaker
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile,   
-      dist/makerelease.xml, dist/net-snmp.spec:
-
-   Version number update
-
--------------------------------------------------------------------------------
-
-Changes: V5.4 -> V5.5.pre1
-
-2009-04-01 21:58  hardaker
-
-   * man/snmp.conf.5.def, man/snmpd.8.def:
-
-   updates for SSH
-
-2009-04-01 19:39  magfr
-
-   * include/net-snmp/library/snmp_client.h, snmplib/snmp_client.c:
-
-   Make the src pointer of snmp_clone_mem a pointer to constant.
-
-2009-04-01 18:23  hardaker
-
-   * apps:
-
-   ignore 'sshtosnmp'
-
-2009-04-01 17:31  hardaker
-
-   *  apps/sshtosnmp.c, include/net-snmp/library/default_store.h,   
-      man/snmpd.8.def, snmplib/snmpSSHDomain.c:
-
-   Make ssh transport support use a unix socket with proper
-   credential passing
-
-2009-04-01 17:29  hardaker
-
-   * agent/mibgroup/util_funcs.c:
-
-   make the exec cache readable only by the user
-
-2009-04-01 17:28  hardaker
-
-   *  agent/mibgroup/agentx/agentx_config.c,   
-      include/net-snmp/library/system.h, snmplib/system.c:
-
-   move string to uid/gid functionality to snmplib for reuse
-
 2009-03-31 15:12  dts12
 
    * local/mib2c.table_data.conf:
@@ -62368,93 +2126,6 @@ Changes: V5.4 -> V5.5.pre1
 
    C comments use /* ... */, not #
 
-2009-03-31 08:05  jsafranek
-
-   * agent/mibgroup/mibII/icmp.c:
-
-   Fix compilation with glibc < 2.4, ICMPv6 message types starting
-   with MLD_* have different name there.
-
-2009-03-24 06:04  magfr
-
-   * snmplib/snmp_openssl.c:
-
-   Do not compile the parts that depend on libssl if libssl is
-   missing.
-
-2009-03-23 09:21  jsafranek
-
-   *  agent/mibgroup/ip-mib/data_access/arp_common.c,   
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.c,  
-       agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h, 
-       
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c,
-         include/net-snmp/data_access/arp.h:
-
-   NEWS: snmpd: ipNetToPhysicalLastUpdated OID implemented
-   
-   The value is estimated with every cache reload, which is once in
-   60 seconds by default.
-   That means the value reported by snmpd may differ from reality by
-   one minute.
-   If anybody needs better precision, the cache timeout can be
-   configured by setting
-   NET-SNMP-AGENT-MIB::nsCacheTimeout.1.3.6.1.2.1.4.35 to
-   appropriate value by snmpset.
-
-2009-03-20 19:38  hardaker
-
-   * dist/extractnews:
-
-   fix lack of wrapping lines problem
-
-2009-03-20 18:31  hardaker
-
-   * NEWS, configure, configure.d/config_project_with_enable:
-
-   config options, etc, for SSH and DTLS
-
-2009-03-20 18:24  hardaker
-
-   * man/snmpcmd.1.def, man/snmpd.8.def:
-
-   currently minimal documentation on dtls and ssh
-
-2009-03-20 16:50  hardaker
-
-   *  apps/Makefile.in, apps/sshtosnmp.c, configure,   
-      configure.d/config_os_libs,   
-      include/net-snmp/library/snmpSSHDomain.h,   
-      include/net-snmp/net-snmp-config.h.in, snmplib/snmpSSHDomain.c,   
-      snmplib/snmp_transport.c:
-
-   Added alpha snmp over ssh support
-
-2009-03-20 16:16  hardaker
-
-   * snmplib/snmpDTLSUDPDomain.c:
-
-   check the sec name length, not just the contents
-
-2009-03-20 16:01  hardaker
-
-   * snmplib/snmptsm.c:
-
-   sequence parsing fix
-
-2009-03-20 15:53  hardaker
-
-   * include/net-snmp/library/snmp_transport.h, snmplib/snmp_api.c:
-
-   added a new flag to allow for signalling of legal empty packets
-   from a transport
-
-2009-03-18 19:42  magfr
-
-   * agent/mibgroup/hardware/memory/memory_linux.c:
-
-   Make it possible to compile again.
-
 2009-03-18 10:52  dts12
 
    * agent/mibgroup/hardware/cpu/cpu_linux.c:
@@ -62484,20 +2155,6 @@ Changes: V5.4 -> V5.5.pre1
    Fix valgrind warning.
    Patch provided by Stephen Hemminger
 
-2009-03-17 22:57  magfr
-
-   * apps/snmptrapd_handlers.c, apps/snmptrapd_handlers.h:
-
-   PATCH: 2688342: from "Bart Van Assche": Use proper function
-   pointers
-
-2009-03-13 21:26  dts12
-
-   * agent/mibgroup/host/hr_storage.c:
-
-   Process hrMemorySize (scalar) separately from hrStorageTable.
-   This simplifies the handler code structure.
-
 2009-03-13 21:23  dts12
 
    *  agent/mibgroup/hardware/cpu/cpu.c,   
@@ -62522,27 +2179,6 @@ Changes: V5.4 -> V5.5.pre1
    (An alternative might be to create a new entry instead).
    Problem reported by Nick Hindley
 
-2009-03-10 15:25  jsafranek
-
-   * README.agent-mibs, agent/mibgroup/ip-mib/ip_scalars.c:
-
-   NEWS: snmpd: ipAddressSpinLock implemented
-
-2009-03-02 11:23  dts12
-
-   * COPYING:
-
-   Fix attribution of latest copyright notice.
-
-2009-02-28 18:21  magfr
-
-   *  acconfig.h, configure, configure.d/config_modules_agent,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   Move the #define config_*(...) from acconfig.h to the configure
-   script so that they are next to the code that handle the
-   corresponding config_* token.
-
 2009-02-27 13:20  jsafranek
 
    * agent/mibgroup/ucd-snmp/diskio.c:
@@ -62552,20 +2188,6 @@ Changes: V5.4 -> V5.5.pre1
    It's being written to log everytime someone queries
    UCD-SNMP-DISKIO MIB.
 
-2009-02-25 06:41  magfr
-
-   * apps/snmpnetstat/if.c:
-
-   Use the feature test macros to set what is needed.
-   Do not use the internal GNU libc macros that are set by setting
-   the feature test macros.
-
-2009-02-25 06:38  magfr
-
-   * snmplib/snmpUnixDomain.c:
-
-   Add missing include.
-
 2009-02-24 07:26  magfr
 
    * snmplib/snmp_logging.c:
@@ -62573,94 +2195,27 @@ Changes: V5.4 -> V5.5.pre1
    CHANGES: Make -LN stop dumping core. Make bad debug levels report
    the offending symbol.
 
-2009-02-24 06:50  magfr
-
-   *  agent/mibgroup/agentx/master.c,   
-      include/net-snmp/library/snmpUnixDomain.h,   
-      snmplib/snmpUnixDomain.c:
-
-   Move the directory creation code to happen after the domain
-   selection code so that the directory creation code knows what
-   directory to create.
-
-2009-02-24 06:47  magfr
-
-   * configure, configure.d/config_project_with_enable:
-
-   Change the error checking option --enable-mysql to suggest that
-   that --with-mysql is used rather that --with-openssl.
-
-2009-02-24 06:44  magfr
-
-   * configure, include/net-snmp/net-snmp-config.h.in:
-
-   Regenerate autoconf artifacts.
-
-2009-02-23 18:43  rstory
-
-   * apps/snmptrapd_sql.c:
-
-   add forgotten file
-
-2009-02-20 04:41  hardaker
-
-   *  configure.d/config_modules_agent, configure.d/config_modules_lib, 
-        configure.d/config_os_functions, configure.d/config_os_libs,   
-      configure.d/config_os_misc1, configure.d/config_os_misc2,   
-      configure.d/config_os_misc3, configure.d/config_os_misc4,   
-      configure.d/config_os_progs,   
-      configure.d/config_os_struct_members,   
-      configure.d/config_project_ipv6_types,   
-      configure.d/config_project_manual,   
-      configure.d/config_project_paths,   
-      configure.d/config_project_perl_python,   
-      configure.d/config_project_types,   
-      configure.d/config_project_with_enable:
-
-   added emacs autoconf mode specifier
-
-2009-02-19 18:32  rstory
-
-   * README.sql, man/snmptrapd.conf.5.def:
-
-   document new sql trap logging
-
-2009-02-19 18:20  rstory
-
-   *  COPYING, NEWS, apps/Makefile.in, apps/snmptrapd.c,   
-      apps/snmptrapd_handlers.c, apps/snmptrapd_handlers.h, configure,  
-       configure.d/config_os_libs,   
-      configure.d/config_project_with_enable,   
-      dist/schema-snmptrapd.sql, include/net-snmp/net-snmp-config.h.in:
-
-   NEWS: snmptrapd: add trap handler for logging traps to a mysql
-   database
-
-2009-02-19 17:58  rstory
-
-   *  include/net-snmp/library/container.h, snmplib/container.c,   
-      snmplib/container_list_ssll.c:
-
-   NEWS: snmplib: added iterator for singly linked lists; add
-   container name in more error msgs
-
-2009-02-18 18:52  rstory
+2009-02-18 15:27  jsafranek
 
-   * apps/snmpusm.c, include/net-snmp/library/snmpv3.h:
+   *  agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.c,   
+      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,   
+      agent/mibgroup/sctp-mib/sctpTables_common.c,   
+      agent/mibgroup/sctp-mib/sctpTables_common.h,   
+      agent/mibgroup/sctp-mib/sctpTables_linux.c:
 
-   CHANGES: snmplib: change MAX_ENGINEID_LENGTH to 32, per
-   SNMP-FRAMEWORK-MIB SnmpEngineID TC
+   Fix sctp-mib compilation problems
 
-2009-02-18 14:41  jsafranek
+2009-02-18 15:27  jsafranek
 
-   *  agent/mibgroup/sctp-mib/sctpTables_common.c,   
-      agent/mibgroup/sctp-mib/sctpTables_common.h,   
-      agent/mibgroup/sctp-mib/sctpTables_linux.c:
+   * agent/mibgroup/util_funcs.c, agent/mibgroup/util_funcs.h:
 
-   Configure script does not like net-snmp-config.h being included
-   from header
-   files, which are added by --with-mib-modules=, let's remove it
-   from there.
+   Backport get_pid_from_inode from trunk, it's needed by sctp-mib
 
 2009-02-16 21:24  hardaker
 
@@ -62669,101 +2224,6 @@ Changes: V5.4 -> V5.5.pre1
    CHANGES: perl: BUG 1554817: Patch from xanco: fix the class
    assigment so getRootOID works properly.
 
-2009-02-15 07:20  magfr
-
-   * acconfig.h:
-
-   Correct copy/paste mistake
-
-2009-02-12 00:25  hardaker
-
-   *  acconfig.h, include/net-snmp/library/default_store.h,   
-      include/net-snmp/library/snmpDTLSUDPDomain.h,   
-      include/net-snmp/library/snmp_transport.h,   
-      include/net-snmp/net-snmp-config.h.in, mibs/NET-SNMP-TC.txt,   
-      snmplib/snmpDTLSUDPDomain.c, snmplib/snmp_transport.c,   
-      snmplib/snmptsm.c:
-
-   An early experimental implementation of the DTLS over UDP
-   transport from the IETF ISMS working group
-
-2009-02-11 23:30  hardaker
-
-   * dist/RELEASE-INSTRUCTIONS:
-
-   updated release instructions
-
-2009-02-06 21:36  magfr
-
-   * snmplib/read_config.c:
-
-   Make it possible to build as C++ again.
-
-2009-02-05 22:56  magfr
-
-   *  acconfig.h, agent/mibgroup/disman/nslookup/lookupCtlTable.c,   
-      agent/mibgroup/disman/ping/pingCtlTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.h,   
-      agent/mibgroup/if-mib/data_access/interface_solaris2.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c,   
-      agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c,   
-      agent/mibgroup/ucd-snmp/diskio.c, configure,   
-      configure.d/config_os_functions,   
-      include/net-snmp/net-snmp-config.h.in,   
-      include/net-snmp/system/svr5.h:
-
-   CHANGES: build: Assume that the target platform supports memcpy,
-   memmove, memset, strchr and strrchr.
-
-2009-02-04 06:57  magfr
-
-   *  agent/helpers/table.c, agent/helpers/table_dataset.c,   
-      agent/mibgroup/mibII/mta_sendmail.c, configure,   
-      configure.d/config_os_headers, include/net-snmp/agent/table.h,   
-      include/net-snmp/agent/table_dataset.h,   
-      include/net-snmp/library/read_config.h,   
-      include/net-snmp/library/snmp_debug.h,   
-      include/net-snmp/library/snmp_logging.h,   
-      include/net-snmp/net-snmp-config.h.in, snmplib/snmp_debug.c,   
-      snmplib/snmp_logging.c, snmplib/snprintf.c,   
-      win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   NEWS: Remove support for use of varargs.h. Now assumes that
-   stdarg.h is available.
-
-2009-02-04 06:49  magfr
-
-   *  agent/agent_handler.c, agent/agent_trap.c,   
-      agent/mibgroup/agentx/agentx_config.c,   
-      agent/mibgroup/disman/mteTriggerTable.c,   
-      agent/mibgroup/host/hr_filesys.c,   
-      agent/mibgroup/mibII/mta_sendmail.c,   
-      agent/mibgroup/mibII/system_mib.c,   
-      agent/mibgroup/ucd-snmp/disk.c,   
-      agent/mibgroup/utilities/iquery.c, apps/snmptrapd_handlers.c,   
-      include/net-snmp/library/read_config.h, snmplib/read_config.c,   
-      snmplib/snmpv3.c:
-
-   NEWS: snmplib: Introduce printf-like versions of config_perror
-   and config_pwarn (netsnmp_config_error and netsnmp_config_warn).
-   Replace many instances of { tmpbuf[...]; sprintf(tmpbuf, ...);
-   config_p*(tmpbuf); } with netsnmp_config_*(...);
-
-2009-02-03 16:14  hardaker
-
-   * agent/agent_registry.c, include/net-snmp/agent/agent_registry.h:
-
-   add the reginfo and and session pointer to the REGISTER_OID
-   callback
-
-2009-02-03 00:18  hardaker
-
-   * configure, configure.d/config_os_libs:
-
-   fixed -lssl check
-
 2009-01-29 08:38  dts12
 
    * snmplib/snmp_api.c:
@@ -62775,14 +2235,14 @@ Changes: V5.4 -> V5.5.pre1
    * snmplib/snmpUDPDomain.c:
 
    Fix src/dst confusion
-   Patch provided by Krzysztof Olॆअइ�dzki
+   Patch provided by Krzysztof Ol�dzki
 
 2009-01-28 09:29  dts12
 
    * agent/mibgroup/smux/smux.c:
 
    CHANGES: Fix two bugs with smux password support.
-   Patch supplied by Krzysztof Olॆअइ�dzki
+   Patch supplied by Krzysztof Ol�dzki
 
 2009-01-23 14:53  jsafranek
 
@@ -62790,51 +2250,6 @@ Changes: V5.4 -> V5.5.pre1
 
    Fix parsing of level ranges in '-L<capital>'.
 
-2009-01-20 14:51  dts12
-
-   *  agent/mibgroup/host/hr_swinst.c, configure,   
-      configure.d/config_os_headers:
-
-   Check for the existence of <rpm/rpmfileutil.h> before including
-   it.
-
-2009-01-19 20:50  magfr
-
-   * agent/mibgroup/mibII/icmp.c:
-
-   Make it possible to build without IPv6 again.
-
-2009-01-19 15:01  jsafranek
-
-   *  agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/icmp.h,   
-      agent/mibgroup/mibII/kernel_linux.c,   
-      agent/mibgroup/mibII/kernel_linux.h, configure,   
-      configure.d/config_os_headers,   
-      include/net-snmp/net-snmp-config.h.in,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   NEWS: snmpd: PATCH: 1927751: from Mitsuru Chinen: implement
-   icmpMsgStatsTable on Linux
-
-2009-01-19 09:41  jsafranek
-
-   *  agent/mibgroup/ucd-snmp/disk.c, agent/mibgroup/ucd-snmp/disk.h,   
-      mibs/UCD-SNMP-MIB.txt:
-
-   NEWS: snmpd: PATCH: 2449210: add 64-bit disk usage statistics to
-   UCD-SNMP-MIB::dskTable
-
-2009-01-18 07:40  magfr
-
-   * configure, configure.d/config_project_with_enable:
-
-   CHANGES: BUG: 2168180: Changed --disable-reentrant to not
-   activate the reentrant code and made --enable-reentrant accept no
-   values other than yes and no. Did the same for
-   --enable-mib-config-checks, --enable-mib-config-debug,
-   --with-defaults, --enable-developer and --enable-testing-code as
-   well.
-
 2009-01-13 09:17  jsafranek
 
    * snmplib/asn1.c:
@@ -62845,63 +2260,6 @@ Changes: V5.4 -> V5.5.pre1
    each subidentifier. This is now checked and parsing of OID fails,
    if this condition is not met.
 
-2009-01-11 21:54  magfr
-
-   * configure, configure.d/config_project_with_enable:
-
-   CHANGES: building: Check that the temp-file-pattern ends in 6 X's
-   as mkstemp and mktemp require that.
-
-2009-01-11 21:38  magfr
-
-   *  acconfig.h, configure, configure.d/config_project_with_enable,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: building: Be a lot more strict on the values that are
-   acceptable for --with-persistent-mask (only allow three octal
-   digits)
-
-2009-01-11 20:42  magfr
-
-   *  aclocal.m4, configure, configure.d/config_project_with_enable,   
-      m4/netsnmp_arg.m4:
-
-   CHANGES: building: We are currently using the practice of adding
-   a mirroring AC_ARG_WITH/ENABLE to each AC_ARG_ENABLE/WITH. This
-   patch adds NETSNMP_ARG_WITH/ENABLE macros that automatically adds
-   the mirror variable and then converts the configure machinery to
-   use them.
-
-2009-01-11 20:36  magfr
-
-   * configure, configure.d/config_project_with_enable:
-
-   Move AC_DEFINES in config_project_with_enable to be located next
-   to the AC_ARG_... they depend on.
-
-2009-01-11 20:34  magfr
-
-   *  configure, configure.d/config_project_manual,   
-      configure.d/config_project_with_enable:
-
-   Change the default version number checking to be easier to read
-
-2009-01-11 19:19  magfr
-
-   *  configure, configure.d/config_os_libs,   
-      configure.d/config_os_misc4,   
-      configure.d/config_project_with_enable:
-
-   Move the last AC_ARG_...'s to config_project_with_enable.
-
-2009-01-11 19:08  magfr
-
-   * configure, configure.d/config_project_with_enable:
-
-   CHANGES: building: Change the macro for --with-features-of from
-   AC_ARG_ENABLE to AC_ARG_WITH in order to make the option be
-   --with-features-of.
-
 2009-01-08 10:45  jsafranek
 
    * snmplib/snmp_logging.c:
@@ -62916,209 +2274,12 @@ Changes: V5.4 -> V5.5.pre1
    in stable
    branches. We now support both of them.
 
-2009-01-08 03:51  magfr
-
-   * Makefile.top:
-
-   Do not depend on the existance of /bin/sh. Also follow the advice
-   of the autoconf manual and finally allow for libtool that adopts
-   the generated script after the capabilities of SHELL.
-
-2009-01-07 16:02  jsafranek
-
-   * configure, configure.d/config_os_headers:
-
-   Reorder the netinet/icmp_var.h and netinet/ip_icmp.h, the later
-   one must be checked first on FreeBSD 7
-
 2009-01-06 22:23  hardaker
 
    * COPYING:
 
    update SPARTA for 2009
 
-2009-01-03 20:23  magfr
-
-   * configure, m4/ac_prompt_user.m4:
-
-   Upgrade the AC_PROMPT_USER macros to autoconf 2.63 where
-   AC_FD_MSG is deprecated and AS_MESSAGE_FD is recommended.
-
-2009-01-03 14:20  magfr
-
-   *  acinclude.m4, aclocal.m4, configure, m4/ac_add_search_path.m4,   
-      m4/ac_msg_cache.m4, m4/ac_msg_module_dbg.m4,   
-      m4/ac_prompt_user.m4, m4/netsnmp_search_libs.m4:
-
-   Split acinclude.m4 into smaller parts by function.
-
-2009-01-03 14:15  magfr
-
-   * Makefile.am:
-
-   Make autoreconf work again.
-
-2009-01-03 14:11  magfr
-
-   *  aclocal.m4, config.guess, configure, configure.ac,   
-      configure.d/config_os_progs,   
-      include/net-snmp/net-snmp-config.h.in, install-sh, ltmain.sh, m4, 
-        m4/libtool.m4, m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.m4, 
-        m4/lt~obsolete.m4:
-
-   Update to libtool-2.2.4
-
-2009-01-03 13:28  magfr
-
-   * configure, configure.d/config_os_libs:
-
-   configure.d/config_os_libs: Check for a function, not a macro.
-   configure: Regenerate
-
-2009-01-03 01:03  hardaker
-
-   * configure.d/config_os_libs:
-
-   require -lssl; will be changed later to do 'if needed'
-
-2009-01-03 00:19  magfr
-
-   *  README.agent-mibs, agent/mibgroup/mibII.h,   
-      agent/mibgroup/mibII/snmp_mib.h,   
-      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.h,   
-      agent/mibgroup/target/target_counters.h,   
-      agent/mibgroup/target/target_counters_5_5.c,   
-      agent/mibgroup/target/target_counters_5_5.h,   
-      agent/mibgroup/utilities/snmp_get_statistic.c,   
-      agent/mibgroup/utilities/snmp_get_statistic.h:
-
-   CHANGES: snmpd: Unify all snmpd statistic variables and make the
-   handlers instances of a common handler.
-
-2009-01-01 17:26  hardaker
-
-   * snmplib/snmptsm.c:
-
-   clean up a few comments and remove unused function
-
-2009-01-01 17:25  hardaker
-
-   * snmplib/snmptsm.c:
-
-   fix various minor memory leak issues
-
-2009-01-01 14:28  magfr
-
-   *  agent/agent_handler.c, agent/helpers/cache_handler.c,   
-      agent/helpers/instance.c, agent/helpers/watcher.c,   
-      include/net-snmp/agent/agent_handler.h,   
-      include/net-snmp/agent/cache_handler.h,   
-      include/net-snmp/agent/instance.h,   
-      include/net-snmp/agent/watcher.h, local/mib2c-conf.d/mfd-top.m2c, 
-        local/mib2c.array-user.conf, local/mib2c.container.conf,   
-      local/mib2c.create-dataset.conf, local/mib2c.int_watch.conf,   
-      local/mib2c.iterate.conf, local/mib2c.iterate_access.conf,   
-      local/mib2c.row.conf, local/mib2c.scalar.conf,   
-      local/mib2c.table_data.conf:
-
-   NEWS: snmplib: Change the type of the oid arguments from oid* to
-   const oid*. Update mib2c to take advantage of the change.
-
-2009-01-01 13:56  magfr
-
-   * agent/agent_handler.c:
-
-   Check return values and free allocated resources on error.
-
-2009-01-01 12:54  magfr
-
-   * agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c:
-
-   Do not leak alias_list on return from _next_alias.
-
-2009-01-01 11:26  magfr
-
-   * agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c:
-
-   Make variable const as it never is changed.
-
-2009-01-01 11:25  magfr
-
-   * agent/mibgroup/if-mib/ifXTable/ifXTable.c:
-
-   Remove an unused variable.
-
-2008-12-31 21:41  hardaker
-
-   * snmplib/snmp_openssl.c:
-
-   don't use the functions if we're not linked with openssl
-
-2008-12-31 20:56  hardaker
-
-   * perl/TrapReceiver/const-c.inc, perl/TrapReceiver/const-xs.inc:
-
-   newer perl generated updates
-
-2008-12-31 18:02  hardaker
-
-   * snmplib/snmp_api.c:
-
-   added a few more recv/send debugging statements
-
-2008-12-31 18:02  hardaker
-
-   * agent/mibgroup/mibII/vacm_conf.c:
-
-   Allow quoted security names for ones containing spaces
-
-2008-12-31 18:01  hardaker
-
-   *  include/net-snmp/library/snmp_openssl.h, snmplib/Makefile.in,   
-      snmplib/snmp_openssl.c:
-
-   an openssl initialization wrapper
-
-2008-12-30 00:03  magfr
-
-   * apps/snmptest.c, python/netsnmp/client_intf.c:
-
-   Use snmp_duplicate_objid instead of various malloc+memcpy
-   variants in order to make clearer code.
-
-2008-12-29 23:34  magfr
-
-   *  agent/mibgroup/examples/example.c,   
-      agent/mibgroup/host/hr_filesys.c,   
-      agent/mibgroup/host/hr_swinst.c,   
-      agent/mibgroup/target/snmpTargetAddrEntry.c,   
-      agent/mibgroup/target/snmpTargetParamsEntry.c,   
-      agent/mibgroup/ucd-snmp/versioninfo.c,   
-      include/net-snmp/library/snmp_debug.h, snmplib/asn1.c:
-
-   Use format strings for printf-like functions.
-   Prefer strcpy over sprintf(dest, "%s", src)
-   Prefer DEBUGMSGTL((format, args)) over sprintf(local, format,
-   args); DEBUGMSGTL(("%s", local))
-
-2008-12-18 17:04  hardaker
-
-   *  include/net-snmp/library/snmpUDPDomain.h,   
-      snmplib/snmpUDPDomain.c:
-
-   export out of the file some helpful generic udp functions
-
-2008-12-16 00:13  hardaker
-
-   * include/net-snmp/library/snmp_secmod.h:
-
-   change localsm security model to tsm (and add 1)
-
 2008-12-15 23:25  hardaker
 
    * agent/mibgroup/disman/expression/expValueTable.c:
@@ -63126,61 +2287,12 @@ Changes: V5.4 -> V5.5.pre1
    Patch to change a typedef name from link to nodelink to avoid
    naming conflict issues.
 
-2008-12-09 01:41  hardaker
-
-   * agent/mibgroup/host/hr_swinst.c:
-
-   use int32_t instead of int_32 which doesn't work at all on F10
-
-2008-12-09 01:07  hardaker
-
-   * NEWS:
-
-   remove the note that we moved to svn... obsolete at this point,
-   to say the least
-
-2008-12-09 01:05  hardaker
-
-   * NEWS:
-
-   mention the TSM implementation
-
-2008-12-09 00:58  hardaker
-
-   * dist/makerelease.xml:
-
-   flag some steps and mandatory
-
-2008-12-09 00:57  hardaker
-
-   * include/net-snmp/library/default_store.h:
-
-   remove accidential new defines that aren't needed yet
-
-2008-12-09 00:56  hardaker
-
-   *  include/net-snmp/library/default_store.h,   
-      include/net-snmp/library/snmp_transport.h,   
-      include/net-snmp/library/snmplocalsm.h,   
-      include/net-snmp/library/snmptsm.h, snmplib/snmplocalsm.c,   
-      snmplib/snmptsm.c:
-
-   remove older localsm security model and replace with a newer TSM
-   based on the upcoming IETF spec
-
-2008-12-09 00:50  hardaker
-
-   * snmplib/snmp_api.c:
-
-   fix issue with context probing
-
-2008-12-04 12:33  jsafranek
+2008-12-09 01:01  hardaker
 
-   * agent/snmpd.c, apps/snmptrapd.c:
+   * include/net-snmp/library/snmplocalsm.h, snmplib/snmplocalsm.c:
 
-   Daemonize after transports are created and listening sockets are
-   bound to appropriate ports. This allows to exit with nozero exit
-   code when the binding fails.
+   As agreed in the admin meeting, remove the older snmplocalsm
+   security model
 
 2008-12-04 11:44  jsafranek
 
@@ -63189,40 +2301,6 @@ Changes: V5.4 -> V5.5.pre1
 
    Print ports as unsigned numbers.
 
-2008-11-24 19:09  tanders
-
-   * include/net-snmp/system/solaris.h:
-
-   __EXTENSIONS__ is now handled by configure
-
-2008-11-22 18:36  magfr
-
-   * configure, configure.d/config_modules_agent:
-
-   Do not try to use the module list as a file that should be
-   included in the build, thus making it possible to build on
-   Solaris.
-
-2008-11-20 22:30  magfr
-
-   *  agent/agent_handler.c, agent/agent_trap.c,   
-      agent/helpers/table_data.c, agent/helpers/table_row.c,   
-      agent/helpers/table_tdata.c, agent/mibgroup/utilities/override.c, 
-        apps/snmptrapd_handlers.c:
-
-   Replace memdup((u_char**)&x, (u_char*)y, z * sizeof(oid)) with x
-   = snmp_duplicat
-   e_objid(y, z) since the later is easier to read and expresses the
-   intention of t
-   he code clearer.
-
-2008-11-20 22:01  magfr
-
-   * snmplib/snmp_api.c:
-
-   Use memcpy instead of memmove to copy oids as it is known that
-   the areas are nonoverlapping.
-
 2008-11-20 20:51  magfr
 
    * snmplib/snmpSTDDomain.c:
@@ -63233,37 +2311,8 @@ Changes: V5.4 -> V5.5.pre1
 
    * apps/snmptrapd.c:
 
-   CHANGES: Do not use %m in printf-formatted strings since %m in
-   printf is a glibc extension.
-
-2008-11-16 22:01  magfr
-
-   * configure.ac:
-
-   Bump the required autoconf version to 2.63 as per 17301.
-
-2008-11-16 21:55  magfr
-
-   * configure, configure.d/config_os_functions:
-
-   Remove an unused function from the configure test for __func__.
-
-2008-11-16 21:51  magfr
-
-   *  configure, configure.d/config_os_functions,   
-      configure.d/config_os_headers, configure.d/config_os_misc4,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   M4 uses dnl, not \ for line concatenation.
-   \ introduced a spurious define in net-snmp-config.h.in, thus this
-   change.
-   Reran autoconf and autoheader.
-
-2008-11-13 22:14  tanders
-
-   * configure:
-
-   NEWS: build: update to autoconf 2.63
+   CHANGES: Do not use %m in printf-formatted strings since %m in
+   printf is a glibc extension.
 
 2008-11-13 00:30  tanders
 
@@ -63274,17 +2323,11 @@ Changes: V5.4 -> V5.5.pre1
 
 2008-11-13 00:26  tanders
 
-   * configure.d/config_modules_agent:
-
-   fix typo
-
-2008-11-13 00:26  tanders
-
-   * configure.d/config_modules_agent:
+   * configure.in:
 
    fix typo
 
-2008-11-13 00:19  tanders
+2008-11-13 00:24  tanders
 
    * dist/extractnews:
 
@@ -63310,117 +2353,12 @@ Changes: V5.4 -> V5.5.pre1
    NEWS: snmpd: Applying patch from Magnus Fromreide to fix the
    getbulk issue reported by Oscar Mira-Sanchez
 
-2008-10-30 22:34  hardaker
-
-   * dist/makerelease:
-
-   remove the older (obsolete) makerelease script
-
-2008-10-22 17:24  magfr
-
-   * snmplib/snmp_api.c, snmplib/snmp_client.c:
-
-   Make it possible to build the lib using a C++ compiler once more.
-
 2008-10-22 07:29  dts12
 
    * snmplib/snmp_client.c:
 
    Don't clear session flags when testing one bit.
 
-2008-10-21 21:10  magfr
-
-   *  AGENT.txt, agent/mibgroup/Rmon/alarm.c,   
-      agent/mibgroup/Rmon/event.c, agent/mibgroup/Rmon/history.c,   
-      agent/mibgroup/Rmon/statistics.c, agent/mibgroup/agent/extend.c,  
-       agent/mibgroup/disman/expression/expErrorTable.c,   
-      agent/mibgroup/disman/expression/expExpressionTable.c,   
-      agent/mibgroup/disman/expression/expObjectTable.c,   
-      agent/mibgroup/disman/expression/expValueTable.c,   
-      agent/mibgroup/disman/mteObjectsTable.c,   
-      agent/mibgroup/disman/mteTriggerBooleanTable.c,   
-      agent/mibgroup/disman/mteTriggerDeltaTable.c,   
-      agent/mibgroup/disman/mteTriggerExistenceTable.c,   
-      agent/mibgroup/disman/mteTriggerTable.c,   
-      agent/mibgroup/disman/mteTriggerThresholdTable.c,   
-      agent/mibgroup/disman/nslookup/lookupCtlTable.c,   
-      agent/mibgroup/disman/nslookup/lookupResultsTable.c,   
-      agent/mibgroup/disman/ping/pingCtlTable.c,   
-      agent/mibgroup/disman/ping/pingProbeHistoryTable.c,   
-      agent/mibgroup/disman/ping/pingResultsTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteHopsTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteProbeHistoryTable.c,   
-      agent/mibgroup/disman/traceroute/traceRouteResultsTable.c,   
-      agent/mibgroup/examples/example.c,   
-      agent/mibgroup/examples/ucdDemoPublic.c,   
-      agent/mibgroup/host/hr_device.c, agent/mibgroup/host/hr_disk.c,   
-      agent/mibgroup/host/hr_filesys.c,   
-      agent/mibgroup/host/hr_network.c,   
-      agent/mibgroup/host/hr_partition.c,   
-      agent/mibgroup/host/hr_print.c, agent/mibgroup/host/hr_proc.c,   
-      agent/mibgroup/host/hr_storage.c,   
-      agent/mibgroup/host/hr_swinst.c, agent/mibgroup/host/hr_swrun.c,  
-       agent/mibgroup/host/hr_system.c,   
-      agent/mibgroup/host/hrh_filesys.c, agent/mibgroup/mibII/at.c,   
-      agent/mibgroup/mibII/interfaces.c, agent/mibgroup/mibII/ip.c,   
-      agent/mibgroup/mibII/ipv6.c, agent/mibgroup/mibII/mta_sendmail.c, 
-        agent/mibgroup/mibII/vacm_vars.c, agent/mibgroup/misc/ipfwacc.c,
-         agent/mibgroup/notification/snmpNotifyFilterProfileTable.c,   
-      agent/mibgroup/notification/snmpNotifyTable.c,   
-      agent/mibgroup/smux/smux.c, agent/mibgroup/smux/snmp_bgp.c,   
-      agent/mibgroup/smux/snmp_ospf.c, agent/mibgroup/smux/snmp_rip2.c, 
-        agent/mibgroup/snmpv3/snmpEngine.c,   
-      agent/mibgroup/snmpv3/snmpMPDStats.c,   
-      agent/mibgroup/snmpv3/usmStats.c,   
-      agent/mibgroup/snmpv3/usmUser.c,   
-      agent/mibgroup/target/snmpTargetAddrEntry.c,   
-      agent/mibgroup/target/snmpTargetParamsEntry.c,   
-      agent/mibgroup/tunnel/tunnel.c, agent/mibgroup/ucd-snmp/disk.c,   
-      agent/mibgroup/ucd-snmp/diskio.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/hpux.c,   
-      agent/mibgroup/ucd-snmp/lmSensors.c,   
-      agent/mibgroup/ucd-snmp/loadave.c,   
-      agent/mibgroup/ucd-snmp/logmatch.c,   
-      agent/mibgroup/ucd-snmp/memory_aix4.c,   
-      agent/mibgroup/ucd-snmp/memory_darwin7.c,   
-      agent/mibgroup/ucd-snmp/memory_dynix.c,   
-      agent/mibgroup/ucd-snmp/memory_freebsd2.c,   
-      agent/mibgroup/ucd-snmp/memory_hpux.c,   
-      agent/mibgroup/ucd-snmp/memory_netbsd1.c,   
-      agent/mibgroup/ucd-snmp/memory_solaris2.c,   
-      agent/mibgroup/ucd-snmp/pass.c,   
-      agent/mibgroup/ucd-snmp/pass_persist.c,   
-      agent/mibgroup/ucd-snmp/proc.c,   
-      agent/mibgroup/ucd-snmp/versioninfo.c,   
-      agent/mibgroup/ucd-snmp/vmstat_aix4.c,   
-      agent/mibgroup/ucd-snmp/vmstat_bsdi4.c,   
-      agent/mibgroup/ucd-snmp/vmstat_darwin7.c,   
-      agent/mibgroup/ucd-snmp/vmstat_dynix.c,   
-      agent/mibgroup/ucd-snmp/vmstat_freebsd2.c,   
-      agent/mibgroup/ucd-snmp/vmstat_hpux.c,   
-      agent/mibgroup/ucd-snmp/vmstat_linux.c,   
-      agent/mibgroup/ucd-snmp/vmstat_netbsd1.c,   
-      agent/mibgroup/ucd-snmp/vmstat_solaris2.c,   
-      include/net-snmp/library/snmp_impl.h, local/mib2c.old-api.conf,   
-      win32/dist/htmlhelp/FAQ.html:
-
-   NEWS: misc: PATCH: 1737727: from joyceanmachine: Add a
-   NETSNMP_OLDAPI_ prefix to the access macros that are used in the
-   old-api helper.
-   I did add the prefix to all users in our code.
-
-2008-10-21 21:00  magfr
-
-   *  include/net-snmp/library/mib.h, include/net-snmp/library/parse.h, 
-        snmplib/mib.c, snmplib/parse.c:
-
-   NEWS: misc: PATCH: 1737727: from joyceanmachine: Replace all uses
-   of NETSNMP_CLEAN_NAMESPACE with NETSNMP_NO_LEGACY_DEFINITIONS
-
 2008-10-16 09:56  jsafranek
 
    *  agent/mibgroup/if-mib/data_access/interface.c,   
@@ -63430,51 +2368,6 @@ Changes: V5.4 -> V5.5.pre1
    CHANGES: snmpd: PATCH: 2082726: correctly report NIC speeds
    higher than 4Gbit/s
 
-2008-10-16 08:00  jsafranek
-
-   * man:
-
-   Scratch previous commit, net-snmp-create-v3-user.1 to be ignored.
-
-2008-10-16 07:37  jsafranek
-
-   * man:
-
-   Add compiled net-snmp-config.1 to svn:ignore list
-
-2008-10-15 12:57  jsafranek
-
-   *  README.agent-mibs, agent/mibgroup/ip-mib.h,   
-      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/ip-mib/ipIfStatsTable,   
-      agent/mibgroup/ip-mib/ipIfStatsTable.h,   
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.c,   
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h,   
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c,
-        
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.h,
-         agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c,
-         agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h,
-         agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_enums.h,   
-      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c,  
-       agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.h, 
-        agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_oids.h,   
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c,   
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c,
-         include/net-snmp/data_access/ipstats.h,   
-      include/net-snmp/data_access/systemstats.h:
-
-   CHANGES: snmpd: PATCH 1797111: implement IP-MIB::ipIfStatsTable
-
-2008-10-15 09:27  tanders
-
-   * snmplib/snmp_api.c:
-
-   portability fix: avoid variable declarations in the middle of
-   code
-
 2008-10-14 18:55  dts12
 
    * snmplib/snmpUDPDomain.c:
@@ -63503,23 +2396,6 @@ Changes: V5.4 -> V5.5.pre1
    CHANGES: snmpd: PATCH: 1977439: Fix pass/_persist bug with SET
    oid value
 
-2008-10-12 17:24  magfr
-
-   *  README.agent-mibs, agent/mibgroup/snmpv3/snmpMPDStats.h,   
-      agent/mibgroup/snmpv3/snmpMPDStats_5_5.c,   
-      agent/mibgroup/snmpv3/snmpMPDStats_5_5.h,   
-      agent/mibgroup/snmpv3mibs.h:
-
-   CHANGES: snmpd: Reimplementation of snmpMPDStats.
-
-2008-10-10 21:13  dts12
-
-   *  configure, configure.d/config_os_functions,   
-      configure.d/config_os_misc1, configure.d/config_os_misc2,   
-      configure.d/config_os_misc3, configure.d/config_os_misc4:
-
-   Consolidate checks on general O/S characteristics
-
 2008-10-07 08:50  jsafranek
 
    * dist/find-requires:
@@ -63527,78 +2403,18 @@ Changes: V5.4 -> V5.5.pre1
    CHANGES: building: BUG: 2095983: fix syntax error in
    find-requires helper script and make it executable
 
-2008-10-06 19:31  hardaker
-
-   * include/net-snmp/library/snmp_api.h:
-
-   ifdef sys/poll
-
-2008-10-03 14:16  hardaker
-
-   * configure, configure.ac:
-
-   patch from Shachar Schemesh to fix a quote escaping
-
-2008-09-30 22:19  hardaker
-
-   * apps/snmptrapd.c:
-
-   added a needed trailing newline
-
 2008-09-30 22:11  dts12
 
    * perl/agent/agent.xs:
 
    CHANGES: perl: PATCH: 2022948: Fix for Counter64 in perl subagent
 
-2008-09-30 21:40  hardaker
-
-   *  include/net-snmp/library/default_store.h,   
-      include/net-snmp/library/snmp_api.h, snmplib/snmp_api.c:
-
-   - NEWS: snmplib: Implemented RFC5343 contextEngineID probing.
-   This allows for probing of the contextEngineID without requiring
-   the USM security model.
-   - implemented entirely within the library for both clients and
-   servers.
-
-2008-09-30 21:33  hardaker
-
-   * include/net-snmp/library/snmp_secmod.h:
-
-   Add a local definition for having security models define their
-   own
-   contextEngineID probe
-
-2008-09-30 21:31  hardaker
-
-   * acconfig.h, include/net-snmp/net-snmp-config.h.in:
-
-   Add a definition for the SSH domain
-
 2008-09-30 21:08  dts12
 
    * agent/snmp_agent.c:
 
    CHANGES: agent: PATCH: 1257347: Non-fixed size connection buffer
 
-2008-09-30 07:32  jsafranek
-
-   * agent/Makefile.in:
-
-   NEWS: building: PATCH: 2091156: correctly declare dependencies in
-   Makefile.
-   'make -j <N>' should work now.
-
-2008-09-24 20:58  dts12
-
-   *  configure, configure.d/config_os_functions,   
-      configure.d/config_os_headers, configure.d/config_os_libs,   
-      configure.d/config_os_struct_members:
-
-   Identify where particular checks are actually used
-   (library, agent, applications or not at all)
-
 2008-09-24 12:53  jsafranek
 
    *  agent/mibgroup/sctp-mib/sctpScalars_linux.c,   
@@ -63607,132 +2423,77 @@ Changes: V5.4 -> V5.5.pre1
    Use the longest integer for inode numbers and (possibly 64 bit)
    counters.
 
-2008-09-20 09:01  magfr
+2008-09-05 09:27  dts12
 
-   * configure, configure.d/config_os_misc3:
+   *  FAQ, README, configure, configure.in, dist/net-snmp.spec,   
+      sedscript.in, snmplib/snmp_version.c:
 
-   NEWS: build: Do not require use of --with-endianness when
-   cross-compiling.
+   - version tag ( 5.4.2 )
 
-2008-09-19 15:19  dts12
+2008-09-05 09:27  dts12
 
-   * dist/RELEASE-INSTRUCTIONS:
-
-   Correct location of documentation files.
-
-2008-09-19 05:28  magfr
-
-   *  configure, configure.d/config_os_misc2,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   And add the chunk that I lost.
-
-2008-09-19 05:23  magfr
-
-   *  acconfig.h, configure, configure.ac,   
-      configure.d/config_modules_lib, configure.d/config_os_libs,   
-      configure.d/config_os_misc1,   
-      configure.d/config_project_perl_python,   
-      configure.d/config_project_with_enable,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   Move more things from acconfig.h to the templates in the
-   configure input files.
-
-2008-09-17 13:31  jsafranek
-
-   * dist/find-requires:
-
-   make find-requires executable so it's actually usable by the
-   net-snmp.spec
-
-2008-09-17 12:08  jsafranek
-
-   * man/Makefile.in, man/net-snmp-create-v3-user.1.def:
-
-   add man page for net-snmp-create-v3-user
-
-2008-09-16 18:02  magfr
-
-   *  acconfig.h, configure, configure.d/config_os_functions,   
-      configure.d/config_os_libs, configure.d/config_os_misc1,   
-      configure.d/config_os_misc2, configure.d/config_os_misc4,   
-      configure.d/config_project_with_enable,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   Further minimization of acconfig.h
-
-2008-09-11 22:28  magfr
-
-   *  acconfig.h, configure, configure.d/config_os_misc3,   
-      configure.d/config_os_progs,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   Move a few more variables out of acconfig.h
-
-2008-09-11 20:37  hardaker
-
-   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c:
-
-   NEWS: snmpd: PATCH: 1737439: from emiy: automatic link up/down
-   traps on a walk; still need a better interface for manually doing
-   things on an occasional basis
-
-2008-09-11 20:25  hardaker
-
-   *  include/net-snmp/library/snmp_api.h, snmplib/snmpUDPDomain.c,   
-      snmplib/snmp_api.c:
-
-   NEWS: snmplib: PATCH: 700681: limited support for UDPv4 broadcast
-   addresses
-
-2008-09-10 06:39  magfr
-
-   *  acconfig.h, configure, configure.d/config_project_types,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: building: Use AC_CHECK_TYPES instead of a homegrown
-   alternative to check for types
-
-2008-09-09 20:27  magfr
-
-   * Makefile.in:
-
-   Add all the parts of configure.ac to the dependency list
-
-2008-09-09 18:13  hardaker
-
-   * Makefile.in:
-
-   update to reflect configure.in -> configure.ac change
+   * CHANGES:
 
-2008-09-09 16:15  hardaker
+   version update
 
-   * dist/patme:
+2008-09-05 09:25  dts12
 
-   default to -p0
+   * ChangeLog:
 
-2008-09-08 23:41  hardaker
+   version update
 
-   * snmplib/snmplocalsm.c:
+2008-09-05 09:20  dts12
 
-   check for a session tunneled flag before returning an
-   authentication failure
+   *  man/netsnmp_agent.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_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_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_util.3, man/netsnmp_utilities.3,   
+      man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
 
-2008-09-08 23:39  hardaker
+   documentation update
 
-   * snmplib/snmp_api.c:
+2008-09-05 09:16  dts12
 
-   Set the tunneled flag when dealing with a tunnel-based transport;
-   don't require a securityEngineID if the security model doesn't
-   have one (just USM needs it)
+   * doxygen.conf:
 
-2008-09-08 20:24  magfr
+   - version tag ( 5.4.2 )
 
-   * include/net-snmp/library/snmp-tc.h, snmplib/snmp-tc.c:
+-------------------------------------------------------------------------------
 
-   CHANGES: snmplib: BUG: 2099985: Added const qualifiers to time
-   conversion routins
+Changes: V5.4.1 -> V5.4.2
 
 2008-09-05 07:51  dts12
 
@@ -63745,75 +2506,76 @@ Changes: V5.4 -> V5.5.pre1
 
    * python/netsnmp/client_intf.c:
 
-   CHANGES: python: BUG: 1868278: Python segfault (introduced by
-   r16962)
-
-2008-09-03 13:43  dts12
+   CHANGES: python: BUG: 1868278: Python segfault (introduced by r16962)
 
-   *  configure, configure.d/config_modules_lib,   
-      configure.d/config_project_with_enable:
+2008-08-29 21:19  dts12
 
-   CHANGES: build: PATCH: 2000874: Cleanup transport selection.
+   *  FAQ, README, configure, configure.in, dist/net-snmp.spec,   
+      sedscript.in, snmplib/snmp_version.c:
 
-2008-09-03 13:29  dts12
+   - version tag ( 5.4.2.rc3 )
 
-   *  configure, configure.d/config_os_struct_members,   
-      configure.d/config_project_perl_python:
+2008-08-29 21:18  dts12
 
-   Tidy up perl/python and O/S data structure tests.
-
-2008-08-31 18:14  dts12
+   * CHANGES, NEWS:
 
-   *  configure, configure.d/config_os_functions,   
-      configure.d/config_os_headers, configure.d/config_os_libs,   
-      configure.d/config_os_misc1, configure.d/config_os_misc2,   
-      configure.d/config_os_misc3, configure.d/config_os_misc4,   
-      configure.d/config_os_progs,   
-      configure.d/config_project_ipv6_types,   
-      configure.d/config_project_paths,   
-      configure.d/config_project_types,   
-      configure.d/config_project_with_enable:
+   version update
 
-   Tidy up (most of) the individual components of the configure
-   framework.
-   This is mostly re-indentation, re-commenting, and a certain
-   amount
-   of judicious re-ordering of the tests within individual
-   sub-script.
+2008-08-29 21:15  dts12
 
-2008-08-31 17:30  dts12
+   * ChangeLog:
 
-   * configure, configure.ac:
+   version update
 
-   Annotate configure template with suggested best practice
-   structure.
-   Note that none of these changes has altered the code within
-   'configure' itself (other than affecting line numbers)
+2008-08-29 21:08  dts12
 
-2008-08-31 17:26  dts12
+   *  man/netsnmp_agent.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_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_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_util.3, man/netsnmp_utilities.3,   
+      man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
 
-   *  configure, configure.ac, configure.d,   
-      configure.d/config_modules_agent, configure.d/config_modules_lib, 
-        configure.d/config_os_functions, configure.d/config_os_headers, 
-        configure.d/config_os_libs, configure.d/config_os_misc1,   
-      configure.d/config_os_misc2, configure.d/config_os_misc3,   
-      configure.d/config_os_misc4, configure.d/config_os_progs,   
-      configure.d/config_os_struct_members,   
-      configure.d/config_project_ipv6_types,   
-      configure.d/config_project_manual,   
-      configure.d/config_project_paths,   
-      configure.d/config_project_perl_python,   
-      configure.d/config_project_types,   
-      configure.d/config_project_with_enable:
+   documentation update
 
-   NEWS: build: split configure template into separate pieces.
-   (Mostly) self-contained, and significantly less confusing!
+2008-08-29 21:04  dts12
 
-2008-08-31 17:23  dts12
+   * doxygen.conf:
 
-   * configure.ac, configure.in:
+   - version tag ( 5.4.2.rc3 )
 
-   Rename configure template in line with current best practice.
 
 2008-08-29 19:54  dts12
 
@@ -63821,20 +2583,12 @@ Changes: V5.4 -> V5.5.pre1
 
    Retain filenames which don't include the expected prefix.
 
-2008-08-27 21:55  tanders
-
-   *  agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable,   
-      agent/mibgroup/util_funcs:
-
-   ignore .libs directories
-
 2008-08-27 13:39  jsafranek
 
    * agent/mibgroup/hardware/cpu/cpu_linux.c:
 
    S/390 uses slightly different format of the /proc/cpuinfo file:
-   processor 0: version = FF, identification = 060AFE, machine =
-   2094
+   processor 0: version = FF, identification = 060AFE, machine = 2094
 
 2008-08-22 23:47  tanders
 
@@ -63848,18 +2602,14 @@ Changes: V5.4 -> V5.5.pre1
 
    NEWS: build: BUG: 2023803: Compilation problems on HP-UX 11.31
    CHANGES: build: Limit the use of _KERNEL definitions in configure
-   tests to match the use
-   of _KERNEL in our codebase
+   tests to match the use of _KERNEL in our codebase
 
 2008-08-22 00:18  tanders
 
-   *  agent/mibgroup/host/data_access/swrun_pstat.c,   
-      agent/mibgroup/host/hr_swrun.c:
+   * agent/mibgroup/host/hr_swrun.c:
 
-   Fix build failure on HP-UX 11.31: use getpagesize() instead of
-   PGSHIFT.
-   Successfully tested on HP-UX 10.20, 11.00, 11.11, 11.23 and
-   11.31.
+   Fix build failure on HP-UX 11.31: use getpagesize() instead of PGSHIFT.
+   Successfully tested on HP-UX 10.20, 11.00, 11.11, 11.23 and 11.31.
 
 2008-08-21 10:03  jsafranek
 
@@ -63867,5328 +2617,3547 @@ Changes: V5.4 -> V5.5.pre1
 
    add SCTP-MIB
 
-2008-08-20 17:37  magfr
-
-   * agent/mibgroup/smux/smux.c:
-
-   Have only one variable named passwd in smux_auth_peer.
-
 2008-08-19 23:22  tanders
 
    * README.tru64:
 
    update README for Tru64 after the sendto/recvfrom fixes
 
-2008-08-19 20:27  tanders
+2008-08-19 20:36  dts12
 
-   * agent/mibgroup/host/data_access/swrun.h:
+   *  FAQ, README, configure, configure.in, dist/net-snmp.spec,   
+      sedscript.in, snmplib/snmp_version.c:
 
-   fix significant typo
+   - version tag ( 5.4.2.rc2 )
 
-2008-08-19 13:25  dts12
+2008-08-19 20:36  dts12
 
-   * agent/mibgroup/host/data_access/swrun.h:
+   * CHANGES, NEWS:
 
-   Force use of /proc/%d/psinfo interface on Solaris.
-   Temporary hack while we investigate the issues with
-   the kvm_proc() code.
-   
-   The 'config_require' processing doesn't currently
-   pick up the full #ifdef environment, so defaults
-   to using kvm_proc(). I'm not convinced this was
-   working before anyway,
+   version update
+
+2008-08-19 20:26  dts12
 
-2008-08-19 13:17  dts12
+   * ChangeLog:
 
-   * agent/mibgroup/host/data_access/swrun_procfs_psinfo.c:
+   version update
 
-   Fix problems in /proc/%d/psinfo interface processing.
+2008-08-19 20:08  dts12
 
-2008-08-19 08:47  dts12
+   * agent/mibgroup/Makefile.depend:
 
-   * agent/mibgroup/hardware/sensors, agent/mibgroup/host/data_access:
+   make depend
 
-   Ignore library and object files
+2008-08-19 20:03  dts12
 
-2008-08-19 08:36  dts12
+   *  man/netsnmp_agent.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_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_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_util.3, man/netsnmp_utilities.3,   
+      man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
 
-   * 
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c:
+   documentation update
 
-   Activate statistics that are supported on Solaris and/or Linux
-   IPv6
+2008-08-19 19:55  dts12
 
-2008-08-19 08:11  dts12
+   * doxygen.conf:
 
-   * agent/mibgroup/smux/smux.c:
+   - version tag ( 5.4.2.rc2 )
 
-   Improved tracing of SMUX authentication problems.
 
 2008-08-19 08:08  dts12
 
    * agent/mibgroup/disman/event/mteObjects.c:
-
-   Better tracing of DisMan object processing.
+     Better tracing of DisMan object processing.
 
 2008-08-18 22:43  tanders
 
    * agent/mibgroup/sctp-mib/sctpScalars.h:
+     remove bogus white space
 
-   remove bogus white space
+2008-08-18 22:38  tanders
+
+   * README.agent-mibs:
+     document SCTP-MIB addition
 
 2008-08-18 22:01  dts12
 
    * perl/SNMP/SNMP.pm:
-
-   CHANGES: perl: PATCH: 2021444: Support SNMPv2c in gettable
-   processing
+     CHANGES: perl: PATCH: 2021444: Support SNMPv2c in gettable processing
 
 2008-08-18 21:44  dts12
 
    * snmplib/snmpksm.c:
+     CHANGES: snmplib: PATCH: 2003450: Fix a couple of 64-bit problems.
 
-   CHANGES: snmplib: PATCH: 2003450: Fix a couple of 64-bit
-   problems.
-
-2008-08-18 14:30  hardaker
+2008-08-18 19:05  tanders
 
-   * apps/snmpusm.c:
-
-   revert 17157 since it broke something
-
-2008-08-18 07:06  jsafranek
-
-   * README.agent-mibs:
-
-   add SCTP-MIB implementation (Linux only)
+   * mibs/Makefile.in:
+     fix SCTP-MIB install
+
+2008-08-17 21:29  dts12
+
+   * agent/mibgroup/sctp-mib, agent/mibgroup/sctp-mib.h,
+     agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.c,
+     agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.h,
+     agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.c,
+     agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.h,
+     agent/mibgroup/sctp-mib/sctpAssocTable.c,
+     agent/mibgroup/sctp-mib/sctpAssocTable.h,
+     agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.c,
+     agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.h,
+     agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.c,
+     agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.h,
+     agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.c,
+     agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.h,
+     agent/mibgroup/sctp-mib/sctpLookupRemPortTable.c,
+     agent/mibgroup/sctp-mib/sctpLookupRemPortTable.h,
+     agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.c,
+     agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.h,
+     agent/mibgroup/sctp-mib/sctpScalars.c,
+     agent/mibgroup/sctp-mib/sctpScalars.h,
+     agent/mibgroup/sctp-mib/sctpScalars_common.c,
+     agent/mibgroup/sctp-mib/sctpScalars_common.h,
+     agent/mibgroup/sctp-mib/sctpScalars_linux.c,
+     agent/mibgroup/sctp-mib/sctpTables.h,
+     agent/mibgroup/sctp-mib/sctpTables_common.c,
+     agent/mibgroup/sctp-mib/sctpTables_common.h,
+     agent/mibgroup/sctp-mib/sctpTables_linux.c, mibs/Makefile.in,
+     mibs/Makefile.mib, mibs/SCTP-MIB.txt:
+     NEWS: snmpd: PATCH: 2023633: add SCTP-MIB implementation (Linux only)
 
 2008-08-17 21:08  dts12
 
    * agent/mibgroup/agentx/protocol.c:
-
-   CHANGES: snmpd: PATCH: 2022936: Fix AgentX Counter64 decoding on
-   64-bit architectures
+     CHANGES: snmpd: PATCH: 2022936: Fix AgentX Counter64 decoding on
+     64-bit architectures
 
 2008-08-17 20:50  dts12
 
    * agent/snmpd.c:
-
-   CHANGES: snmpd: PATCH: 2014204: Support -g {groupname}
-
-2008-08-15 13:45  hardaker
-
-   * apps/snmpusm.c:
-
-   NEWS: snmpusm: PATCH: 1591355: from ppassera: Allow cloning to
-   engineIDs that are different from the agent's engineID
-
-2008-08-14 15:54  dts12
-
-   * agent/mibgroup/host/data_access/swrun_kvm_proc.c:
-
-   SWRun processing needs access to the internals of 'struct user'
-   (Solaris)
+     CHANGES: snmpd: PATCH: 2014204: Support -g {groupname}
 
 2008-08-13 13:02  jsafranek
 
-   *  agent/mibgroup/ip-mib/data_access/ipaddress_linux.c,   
-      agent/mibgroup/ip-mib/data_access/ipv6scopezone_linux.c:
-
-   Correctly parse interface indexes higher than 0xff.
+   * agent/mibgroup/ip-mib/data_access/ipaddress_linux.c:
+     Correctly parse interface indexes higher than 0xff.
 
 2008-08-12 08:27  jsafranek
 
    * agent/mibgroup/host/hr_swrun.c:
-
-   Close file when parsing of /proc/XXX/status fails.
-
-2008-08-12 07:27  jsafranek
-
-   *  agent/mibgroup/sctp-mib, agent/mibgroup/sctp-mib.h,   
-      agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.c,   
-      agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.h,   
-      agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.c,   
-      agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.h,   
-      agent/mibgroup/sctp-mib/sctpAssocTable.c,   
-      agent/mibgroup/sctp-mib/sctpAssocTable.h,   
-      agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.h,   
-      agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.h,   
-      agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.h,   
-      agent/mibgroup/sctp-mib/sctpLookupRemPortTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupRemPortTable.h,   
-      agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.h,   
-      agent/mibgroup/sctp-mib/sctpScalars.c,   
-      agent/mibgroup/sctp-mib/sctpScalars.h,   
-      agent/mibgroup/sctp-mib/sctpScalars_common.c,   
-      agent/mibgroup/sctp-mib/sctpScalars_common.h,   
-      agent/mibgroup/sctp-mib/sctpScalars_linux.c,   
-      agent/mibgroup/sctp-mib/sctpTables.h,   
-      agent/mibgroup/sctp-mib/sctpTables_common.c,   
-      agent/mibgroup/sctp-mib/sctpTables_common.h,   
-      agent/mibgroup/sctp-mib/sctpTables_linux.c, mibs/Makefile.in,   
-      mibs/Makefile.mib, mibs/SCTP-MIB.txt:
-
-   NEWS: snmpd: PATCH: 2023633: add SCTP-MIB implementation (Linux
-   only)
-
-2008-08-07 10:03  jsafranek
-
-   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
-
-   Fix inetNetToMediaTable table processing - continue with next
-   entry when fillup_entry_info() fails.
+     Close file when parsing of /proc/XXX/status fails.
 
 2008-08-07 09:00  jsafranek
 
    * man/snmpd.conf.5.def:
+     Fix documentation of exec statament - it does not cache results anymore.
+     Related to bug 883134
 
-   Fix documentation of exec statament - it does not cache results
-   anymore. Related to bug 883134
-
-2008-07-31 23:39  dts12
+2008-07-31 16:48  dts12
 
-   * agent/mibgroup/host/data_access/swrun_procinfo.c:
+   * FAQ, README, configure, configure.in, dist/net-snmp.spec,
+     sedscript.in, snmplib/snmp_version.c:
+     - version tag ( 5.4.2.rc1 )
 
-   Fix a typo, and a bogus field name in the AIX procinfo structure.
+2008-07-31 16:47  dts12
 
-2008-07-31 23:35  dts12
+   * CHANGES:
+     version update
 
-   * agent/mibgroup/host/data_access/swrun_kvm_proc.c:
+2008-07-31 16:14  dts12
 
-   Include missing headers, and fix one bogus field name in Solaris
-   proc structure.
+   * ChangeLog:
+     version update
 
-2008-07-30 17:40  dts12
+2008-07-31 16:05  dts12
 
-   * agent/mibgroup/agentx/protocol.c:
+   * agent/Makefile.depend, agent/helpers/Makefile.depend,
+     agent/mibgroup/Makefile.depend, apps/snmpnetstat/Makefile.depend,
+     snmplib/Makefile.depend:
+     make depend
 
-   CHANGES: agent: BUG: 2003144: Increase size of AgentX packet
-   build buffer
+2008-07-31 16:03  dts12
 
-2008-07-30 07:57  dts12
+   * man/netsnmp_agent.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_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_request_info_s.3,
+     man/netsnmp_netsnmp_table_registration_info_s.3,
+     man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,
+     man/netsnmp_util.3, man/netsnmp_utilities.3,
+     man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
+     documentation update
 
-   * snmplib/mib.c:
+2008-07-30 17:40  dts12
 
-   CHANGES: snmplib: BUG: 2027834: Extend string print buffer by the
-   minimum necessary.
+   * agent/mibgroup/agentx/protocol.c:
+     CHANGES: agent: BUG: 2003144: Increase size of AgentX packet build buffer
 
-2008-07-29 23:34  dts12
+2008-07-30 17:28  dts12
 
-   *  agent/mibgroup/host/data_access/swrun_cygwin.c,   
-      agent/mibgroup/host/data_access/swrun_kvm_proc.c,   
-      agent/mibgroup/host/data_access/swrun_nlist.c,   
-      agent/mibgroup/host/data_access/swrun_procfs_psinfo.c,   
-      agent/mibgroup/host/data_access/swrun_procinfo.c,   
-      agent/mibgroup/host/data_access/swrun_prpsinfo.c,   
-      agent/mibgroup/host/data_access/swrun_pstat.c:
+   * net-snmp-config.in:
+     CHANGES: build: PATCH: 1681035: from magfr: improve net-snmp-config /bin/sh compatibility
+     Back-port of SVN revision 15961
 
-   Fix assorted silly typos - unbalanced parentheses
-   and the wrong type enumeration value names.
+2008-07-30 09:58  dts12
 
-2008-07-29 23:31  dts12
+   * agent/mibgroup/host/hr_filesys.c:
+     CHANGES: agent: BUG: 1557372: Realign hrFSStorageIndex with hrStorageTable
 
-   * agent/mibgroup/host/data_access/swrun.c:
+2008-07-30 07:57  dts12
 
-   Ensure swrun data is available for the prTable calls,
-   rather than relying on hrSWRunTable to trigger this.
+   * snmplib/mib.c:
+     CHANGES: snmplib: BUG: 2027834: Extend string print buffer by the minimum necessary.
 
 2008-07-29 16:19  dts12
 
    * agent/mibgroup/agentx/protocol.c:
-
-   a) Fix the size of the buffer in just one place
-   (makes it easier to change if necessary)
-   b) Fix various unfortunate line-breaks (within "pdu->flags")
-
-2008-07-29 16:05  dts12
-
-   *  agent/mibgroup/ucd-snmp/proc.c,   
-      include/net-snmp/data_access/swrun.h:
-
-   If the re-written SWRun module if available, then use it for
-   the UCD-specific prTable as well as the hrSWRunTable.
-   Consistency is good....
-
-2008-07-29 15:23  dts12
-
-   * agent/mibgroup/host/data_access/swrun_procfs_status.c:
-
-   Suppress junk in hrSWRunName & hrSWRunParameters values
-
-2008-07-29 10:27  dts12
-
-   *  agent/mibgroup/host/data_access/swrun.c,   
-      agent/mibgroup/host/data_access/swrun.h,   
-      agent/mibgroup/host/hrSWRunPerfTable.c,   
-      agent/mibgroup/host/hrSWRunTable.c:
-
-   The cache/container relate to the data itself, so should
-   more naturally be handled by the data_access module,
-   rather than a particular MIB table module.
-
-2008-07-28 21:18  dts12
-
-   * agent/mibgroup/hardware/fsys/fsys_mntent.c:
-
-   'used' and 'free' are not the same thing, Dave. Pay attention at
-   the back....
+     a) Fix the size of the buffer in just one place
+     (makes it easier to change if necessary)
+     b) Fix various unfortunate line-breaks (within "pdu->flags")
 
 2008-07-28 14:39  dts12
 
    * agent/mibgroup/mibII/var_route.c:
+     CHANGES: agent: BUG: 2023803: Ensure compilation is not dependent
+     on an irrelevant configure characteristic for HP-UX 11
 
-   CHANGES: agent: BUG: 2023803: Ensure compilation is not dependent
-   on an irrelevant configure characteristic for HP-UX 11
+2008-07-28 11:41  dts12
+
+   * configure, configure.in, include/net-snmp/net-snmp-config.h.in:
+     NEWS: building: add --with-temp-file-pattern configure option
+     Backport of SVN revision 17121
 
 2008-07-28 10:56  dts12
 
    * apps/snmpset.c:
-
-   CHANGES: apps: BUG: 1964136: Drop NULL type from snmpset usage
-   message.
-
-2008-07-25 14:19  dts12
-
-   * agent/mibgroup/host.h, agent/mibgroup/host/hrSWRunTable.h:
-
-   Use '--enable-new-features' mechanism to include hrSW* re-writes
-
-2008-07-25 14:13  dts12
-
-   *  agent/mibgroup/host/data_access/swinst.h,   
-      agent/mibgroup/host/data_access/swinst_null.c,   
-      agent/mibgroup/host/data_access/swinst_pkginfo.c,   
-      agent/mibgroup/host/data_access/swinst_rpm.c,   
-      agent/mibgroup/host/data_access/swrun.c,   
-      agent/mibgroup/host/data_access/swrun.h,   
-      agent/mibgroup/host/data_access/swrun_cygwin.c,   
-      agent/mibgroup/host/data_access/swrun_darwin.c,   
-      agent/mibgroup/host/data_access/swrun_kinfo.c,   
-      agent/mibgroup/host/data_access/swrun_kvm_proc.c,   
-      agent/mibgroup/host/data_access/swrun_nlist.c,   
-      agent/mibgroup/host/data_access/swrun_null.c,   
-      agent/mibgroup/host/data_access/swrun_procfs_psinfo.c,   
-      agent/mibgroup/host/data_access/swrun_procfs_status.c,   
-      agent/mibgroup/host/data_access/swrun_procinfo.c,   
-      agent/mibgroup/host/data_access/swrun_prpsinfo.c,   
-      agent/mibgroup/host/data_access/swrun_pstat.c:
-
-   Preliminary OS-specific implementations of Running and Installed
-   Software data access.
+     CHANGES: apps: BUG: 1964136: Drop NULL type from snmpset usage message.
 
 2008-07-24 23:22  tanders
 
    * man/snmpcmd.1.def:
-
-   CHANGES: documentation: BUG: 2027129: fix typo in snmpcmd.1
-
-2008-07-24 10:00  jsafranek
-
-   * man/snmp.conf.5.def, sedscript.in:
-
-   reflect default temp file pattern in man page if it's modified by
-   ./configure script
-
-2008-07-24 08:36  jsafranek
-
-   * configure, configure.in, include/net-snmp/net-snmp-config.h.in:
-
-   NEWS: building: add --with-temp-file-pattern configure option
+     CHANGES: documentation: BUG: 2027129: fix typo in snmpcmd.1
 
 2008-07-24 06:53  jsafranek
 
    * agent/agent_read_config.c:
-
-   CHANGES: snmpd: PATCH: 1823800: release and reload all trap
-   destinations on SIGHUP
-
-2008-07-22 14:33  jsafranek
-
-   * net-snmp-create-v3-user.in:
-
-   fix net-snmp-create-v3-user to run without arguments
-
-2008-07-22 14:21  jsafranek
-
-   *  ., Makefile.in, configure, configure.in, net-snmp-config.in,   
-      net-snmp-create-v3-user.in:
-
-   NEWS: misc: separate user management from net-snmp-config into
-   new net-snmp-create-v3-user script
+     CHANGES: snmpd: PATCH: 1823800: release and reload all trap destinations on SIGHUP
 
 2008-07-21 13:44  dts12
 
    * agent/helpers/old_api.c:
+     CHANGES: agent: PATCH 1944581: Protect against core dumps with long string index values.
 
-   CHANGES: agent: PATCH 1944581: Protect against core dumps with
-   long string index values.
+2008-07-17 15:07  dts12
 
-2008-07-18 15:19  hardaker
+   * agent/Makefile.depend, agent/helpers/Makefile.depend,
+     agent/mibgroup/Makefile.depend, apps/Makefile.depend,
+     apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+     make depend
 
-   * dist/makerelease.xml:
+2008-07-17 14:42  dts12
 
-   new signing key
+   * doxygen.conf:
+     - version tag ( 5.4.2.rc1 )
 
 2008-07-17 10:05  jsafranek
 
    * agent/mibgroup/utilities/iquery.c:
-
-   CHANGES: snmpd: BUG: 2018031: Don't probe engineID in internal
-   monitor sessions.
-
-2008-07-10 19:33  hardaker
-
-   * dist/makerelease.xml:
-
-   fix a regexp quote
-
-2008-07-10 14:12  tanders
-
-   * snmplib/system.c:
-
-   build fix for systems that don't have getaddrinfo (e.g. HP-UX
-   11.0 and earlier, Solaris 7 and earlier)
+     CHANGES: snmpd: BUG: 2018031: Don't probe engineID in internal monitor sessions.
 
 2008-07-10 13:50  alex_b
 
    * win32/Makefile.in:
-
-   CHANGES: building: BUG: 2014526: Win32:
-   snmpv3-security-includes.h not installed
+     CHANGES: building: BUG: 2014526: Win32: snmpv3-security-includes.h not installed
 
 2008-07-06 15:05  alex_b
 
-   *  README.win32, win32/Configure, win32/build.pl,   
-      win32/dist/README.build.win32.txt,   
-      win32/netsnmpmibssdk/Makefile.in:
-
-   CHANGES: bulding: Add support for winExtDLL to build.bat (win32)
+   * README.win32, win32/Configure, win32/build.pl,
+     win32/netsnmpmibssdk/Makefile.in:
+     CHANGES: bulding: Add support for winExtDLL to build.bat (win32)
 
 2008-07-06 12:38  alex_b
 
    * win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
-
-   Win32 build fixes - add missing function for DLL build.
+     Win32 build fixes - add missing function for DLL build.
 
 2008-07-02 12:39  jsafranek
 
    * agent/mibgroup/ip-forward-mib/data_access/route_linux.c:
-
-   CHANGES: snmpd: BUG: 2006786: Interface name can have more than 8
-   characters.
-
-2008-06-25 17:39  tanders
-
-   *  agent/agent_read_config.c, agent/agent_trap.c, apps/snmptrap.c,   
-      include/net-snmp/agent/ds_agent.h,   
-      include/net-snmp/library/system.h, man/snmpd.conf.5.def,   
-      perl/SNMP/SNMP.xs, python/netsnmp/client_intf.c,   
-      snmplib/snmpUDPDomain.c, snmplib/system.c:
-
-   NEWS: snmpd: PATCH: 1916840: new config option to set SNMPv1 trap
-   agent address
-   CHANGES: snmplib: PATCH: 1916840: introduce
-   netsnmp_gethostbyname_v4
+     CHANGES: snmpd: BUG: 2006786: Interface name can have more than 8 characters.
 
 2008-06-25 15:16  jsafranek
 
    * perl/SNMP/SNMP.xs:
+     fix assertion when used with perl 5.10
 
-   fix assertion when used with perl 5.10
-
-2008-06-24 05:01  magfr
-
-   *  agent/mibgroup/snmpv3/usmUser.c,   
-      include/net-snmp/library/snmpusm.h, snmplib/snmpusm.c:
-
-   CHANGES: snmplib, snmpd: BUG: 2001124: Allow embedded NUL
-   characters in usmUserPublic
-
-2008-06-23 19:57  magfr
-
-   * snmplib/snmp_client.c:
-
-   Only reserve space for the extra \0 after the data for OCTET
-   STRING valued entities
-
-2008-06-23 19:13  magfr
-
-   *  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:
-
-   CHANGES: building: Disable tests if the agent is built without
-   the mib module they depend on.
+2008-06-24 22:36  tanders
 
-2008-06-21 12:14  magfr
-
-   * configure, configure.in:
+   * 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:
+     CHANGES: building: Disable tests if the agent is built without the mib module they depend on.
+     Backport of r17087.
 
-   Remove spurious AC_MSG_RESULT inside an AC_CACHE_CHECK
+2008-06-17 08:57  dts12
 
-2008-06-18 05:07  magfr
+   * snmplib/snmpTCPIPv6Domain.c:
+     Fix potential buffer overflow in sprintf for TCP/IPv6
+     Cross-port of revision 16668
 
-   * configure, configure.in:
+2008-06-16 23:55  tanders
 
-   Handle solaris awk as well.
+   * configure.in:
+     CHANGES: build: BUG: 1995172: fix --without-elf configure usage message
 
-2008-06-17 16:01  tanders
+2008-06-15 22:15  dts12
 
-   * agent/auto_nlist.c:
+   * FAQ, README, configure, configure.in, dist/net-snmp.spec,
+     sedscript.in, snmplib/snmp_version.c:
+     - version tag ( 5.4.2.pre2 )
 
-   CHANGES: snmpd: PATCH: 1995753: from volkov_peter: minor cleanup
-   agent/auto_nlist.c
+2008-06-15 22:14  dts12
 
-2008-06-17 08:57  dts12
+   * CHANGES, NEWS:
+     version update
 
-   * snmplib/snmpTCPIPv6Domain.c:
+2008-06-15 21:55  dts12
 
-   Fix potential buffer overflow in sprintf for TCP/IPv6
-   Cross-port of revision 16668
+   * ChangeLog:
+     Version update
+     
+     Also fix all ChangeLog entries since the CVS->SVN move,
+     which have been omitting information about what files
+     were affected by any given change.
 
-2008-06-16 23:55  tanders
+2008-06-15 21:32  dts12
 
-   * configure.in:
+   * agent/Makefile.depend, agent/helpers/Makefile.depend,
+     agent/mibgroup/Makefile.depend, apps/Makefile.depend,
+     apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+     make depend
 
-   CHANGES: build: BUG: 1995172: fix --without-elf configure usage
-   message
+2008-06-15 21:06  dts12
 
+   * doxygen.conf:
+     - version tag ( 5.4.2.pre2 )
 2008-06-13 22:16  dts12
 
    * dist/find-requires, dist/net-snmp.spec:
+     CHANGES: build: Improved RPM spec files, for better consistency with vendor-provided packages.
+     Provided by Jan Safranek
+
+2008-06-13 21:54  dts12
 
-   CHANGES: build: Improved RPM spec files, for better consistency
-   with vendor-provided packages.
-   Provided by Jan Safranek
+   * configure, configure.in:
+     Restore embedded perl to default Mac OS/X build.
+     (reversing revision 16988)
 
 2008-06-13 21:03  dts12
 
    * configure, configure.in:
+     CHANGES: build: PATCH: 1899762: Tweak embedded_perl configure checks.
 
-   CHANGES: build: PATCH: 1899762: Tweak embedded_perl configure
-   checks.
+2008-06-12 12:50  dts12
 
-2008-06-13 05:43  magfr
+   * dist/makerelease:
+     Only add non-default MIB modules to the test builds.
+     Specifying the host module is not needed on Linux systems,
+     and may break on other O/Ss. Specifying the disman/event
+     MIB is unnecessary on any system.
 
-   *  acconfig.h, agent/mibgroup/snmpv3mibs.h, configure, configure.in, 
-        include/net-snmp/net-snmp-config.h.in:
+2008-06-12 12:45  dts12
 
-   NEWS: building: Retire the config_old/new_require feature and
-   replace it with config_version_require that compares version
-   numbers to achieve a similar thing
+   * dist/makerelease:
+     Missing MD5 signature file for zip release
 
-2008-06-12 12:50  dts12
+2008-06-12 12:44  dts12
 
    * dist/makerelease:
-
-   Only add non-default MIB modules to the test builds.
-   Specifying the host module is not needed on Linux systems,
-   and may break on other O/Ss. Specifying the disman/event
-   MIB is unnecessary on any system.
+     Basic documentation and help/usage messages.
 
 2008-06-11 10:16  dts12
 
    * dist/makerelease:
-
-   Only enable IPX transport on Linux systems
+     Only enable IPX transport on Linux systems
 
 2008-06-10 14:37  dts12
 
-   *  agent/mibgroup/utilities/iquery.c,   
-      include/net-snmp/library/snmp_api.h, snmplib/snmp_client.c:
-
-   snmpd: PATCH: 1918383: Fix DisMan monitoring of AgentX subagents
-   Note that this doesn't actually use the code submitted in that
-   patch.
-   Instead it inserts a callback hook into the
-   snmp_synch_response_cb
-   routine (using the myvoid pointer and a new session flag), which
-   has
-   the same effect without needing to duplicate any code.
+   * agent/mibgroup/utilities/iquery.c,
+     include/net-snmp/library/snmp_api.h, snmplib/snmp_client.c:
+     snmpd: PATCH: 1918383: Fix DisMan monitoring of AgentX subagents
+     Note that this doesn't actually use the code submitted in that
+     patch.
+     Instead it inserts a callback hook into the
+     snmp_synch_response_cb
+     routine (using the myvoid pointer and a new session flag), which
+     has
+     the same effect without needing to duplicate any code.
 
 2008-06-10 12:52  dts12
 
    * agent/mibgroup/disman/event/mteTrigger.c:
+     Fix logic errors in handling of old/current varbind lists.
+     Reported by Fred Gao in patch #1918383
 
-   Fix logic errors in handling of old/current varbind lists.
-   Reported by Fred Gao in patch #1918383
-
-2008-06-09 19:08  hardaker
+2008-06-10 10:51  dts12
 
    * snmplib/scapi.c:
-
-   update to match published release
-
-2008-06-09 16:58  hardaker
-
-   * dist/makerelease.xml:
-
-   added snmp_version.c
+     update to match published release
 
 2008-06-09 09:05  dts12
 
    * apps/snmptrap.c, apps/snmpusm.c:
-
-   A couple more missing error checks.
-   Based on those reported by Boya Sun
+     A couple more missing error checks.
+     Based on those reported by Boya Sun
 
 2008-06-06 12:02  dts12
 
    * configure, configure.in:
+     Better handling of embedded perl on Mac OS/X
+     (nearly working on Leopard now)
 
-   Better handling of embedded perl on Mac OS/X
-   (nearly working on Leopard now)
+2008-06-05 23:07  tanders
 
-2008-06-03 23:14  tanders
+   * dist/net-snmp.spec:
+     sync with trunk
 
-   *  acconfig.h, agent/auto_nlist.c, agent/mibgroup/hardware/cpu.h,   
-      agent/mibgroup/hardware/memory.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.in,   
-      include/net-snmp/net-snmp-config.h.in, snmplib/system.c:
+2008-06-05 21:12  tanders
 
-   NEWS: aix: Add support for AIX 6.x
+   * configure:
+     run autoconf
 
-2008-06-03 22:46  tanders
+2008-06-05 21:11  tanders
 
-   * aclocal.m4, config.guess, config.sub, configure, ltmain.sh:
+   * acconfig.h, agent/auto_nlist.c, agent/mibgroup/hardware/cpu.h,
+     agent/mibgroup/hardware/memory.h,
+     agent/mibgroup/host/hr_filesys.c,
+     agent/mibgroup/host/hr_storage.c, agent/mibgroup/host/hr_swrun.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.in,
+     include/net-snmp/net-snmp-config.h.in, snmplib/system.c:
+     NEWS: AIX: Add support for AIX 6.x.
+     Successfully tested on trunk (passed extensive regression
+     testing).
 
-   NEWS: build: Update to libtool 1.5.26 (from 1.5.24), e.g. to
-   better support AIX 6.1 and Mac OS X Leopard
+2008-06-05 21:04  tanders
 
-2008-06-03 22:39  tanders
+   * aclocal.m4, config.guess, config.sub, configure, ltmain.sh:
+     NEWS: build: Update to libtool 1.5.26 (from 1.5.24), e.g. to
+     better support AIX 6.1 and Mac OS X Leopard.
+     Successfully tested on trunk (passed extensive regression
+     testing).
 
-   * acconfig.h, include/net-snmp/net-snmp-config.h.in:
+2008-06-03 09:37  dts12
 
-   why add legacy definitions for new stuff?
+   * README.osX:
+     Document why embedded perl was disabled.
 
-2008-06-03 09:03  dts12
+2008-06-03 08:57  dts12
 
    * agent/mibgroup/utilities/iquery.c:
+     Ensure the default internal query session has a valid engineID,
+     to avoid having to probe for it on the first use.
 
-   Ensure the default internal query session has a valid engineID,
-   to avoid having to probe for it on the first use.
-
-2008-06-02 22:17  magfr
-
-   *  include/net-snmp/library/snmp_api.h,   
-      include/net-snmp/library/snmp_client.h,   
-      include/net-snmp/library/tools.h, snmplib/snmp_api.c,   
-      snmplib/snmp_client.c, snmplib/tools.c:
+2008-06-02 15:18  dts12
 
-   NEWS: snmplib: Convert generic source arguments from const
-   u_char* to const void* for snmp_pdu_add_variable,
-   snmp_varlist_add_variable, snmp_set_var_value,
-   snmp_set_var_typed_value and memdup.
+   * configure, configure.in:
+     Drop embedded perl from the default build on Mac OS/X
+     Th dual-architecture nature of the default perl binary
+     confuses the configure script sufficiently that the
+     code won't actually compile.
 
-2008-06-02 13:28  dts12
+2008-06-02 13:27  dts12
 
    * agent/mibgroup/disman/event/mteTrigger.c:
-
-   Ensure that the "trigger armed" flag is cleared whenever the
-   matching
-   expression is found to hold - even if the trigger doesn't
-   actually fire.
-   This affects the behaviour of initially-true expressions, when
-   this
-   initial firing is suppressed using the mteTrigger*Startup object.
-   Without this tweak, the trigger will fire on the second sampling
-   (as if the expression had evaluated false first time round).
+     Ensure that the "trigger armed" flag is cleared whenever the
+     matching
+     expression is found to hold - even if the trigger doesn't
+     actually fire.
+     This affects the behaviour of initially-true expressions, when
+     this
+     initial firing is suppressed using the mteTrigger*Startup object.
+     Without this tweak, the trigger will fire on the second sampling
+     (as if the expression had evaluated false first time round).
 
 2008-06-01 20:02  dts12
 
-   *  agent/mibgroup/disman/event/mteEvent.c,   
-      agent/mibgroup/disman/event/mteObjects.c,   
-      agent/mibgroup/disman/event/mteObjects.h:
-
-   Handle varbind payload for internal linkUp/Down notifications.
+   * agent/mibgroup/disman/event/mteEvent.c,
+     agent/mibgroup/disman/event/mteObjects.c,
+     agent/mibgroup/disman/event/mteObjects.h:
+     Handle varbind payload for internal linkUp/Down notifications.
 
 2008-06-01 06:45  tanders
 
    * perl/TrapReceiver/TrapReceiver.xs:
+     NEWS: snmptrapd: BUG: 1955227: Memory leak for embedded Perl on
+     x86_64
 
-   NEWS: snmptrapd: BUG: 1955227: Memory leak for embedded Perl on
-   x86_64
-
-2008-05-31 12:08  magfr
-
-   * agent/helpers/scalar_group.c:
-
-   CHANGES: snmpd: The scalar helper that was called from the
-   scalar_group helper did nothing save adding a trailing 0 to the
-   argument. Remove the use of the scalar helper from the
-   scalar_group and add the trailing 0 in the scalar_group helper.
-
-2008-05-30 13:56  dts12
-
-   * dist/RELEASE-INSTRUCTIONS:
+2008-05-29 16:11  dts12
 
-   Tweak list of on-line software directories to be updated.
+   * agent/mibgroup/hardware/memory/memory_linux.c:
+     Silly typo
 
 2008-05-29 09:59  dts12
 
-   *  agent/agent_registry.c, agent/helpers/stash_cache.c,   
-      agent/mibgroup/agent/extend.c, agent/mibgroup/agentx/client.c,   
-      agent/mibgroup/disman/event/mteTrigger.c, apps/snmptest.c,   
-      apps/snmptrap.c, apps/snmpusm.c, snmplib/snmpusm.c:
-
-   Various missing error checks, etc.
-   Reported by Boya Sun.
+   * agent/agent_registry.c, agent/helpers/stash_cache.c,
+     agent/mibgroup/agent/extend.c, agent/mibgroup/agentx/client.c,
+     agent/mibgroup/disman/event/mteTrigger.c, apps/snmptest.c,
+     apps/snmptrap.c, apps/snmpusm.c, snmplib/snmpusm.c:
+     Various missing error checks, etc.
+     Reported by Boya Sun.
 
 2008-05-28 11:48  dts12
 
-   *  agent/mibgroup/hardware/memory/memory_freebsd.c,   
-      agent/mibgroup/ucd-snmp/memory.c:
-
-   Report cached memory size/usage properly (particularly on
-   FreeBSD).
+   * agent/mibgroup/hardware/memory/memory_freebsd.c,
+     agent/mibgroup/ucd-snmp/memory.c:
+     Report cached memory size/usage properly (particularly on
+     FreeBSD).
 
 2008-05-28 11:21  dts12
 
    * agent/mibgroup/ucd-snmp/memory.c:
-
-   Bring memBuffer code into line with revision 16975.
+     Bring memBuffer code into line with revision 16975.
 
 2008-05-28 11:10  dts12
 
    * agent/mibgroup/hardware/memory/memory_linux.c:
-
-   Linux 2.6 kernel does not report shared memory information.
+     Linux 2.6 kernel does not report shared memory information.
 
 2008-05-28 09:18  dts12
 
    * agent/mibgroup/hardware/memory/memory_linux.c:
-
-   CHANGES: snmpd: BUG: 1931391: Fix reporting of Memory buffers and
-   cached memory.
-   Problem reported by doconeill.
-
-2008-05-28 08:30  dts12
-
-   * agent/mibgroup/agentx/subagent.c:
-
-   Tweak the fix for bug #1912647
+     CHANGES: snmpd: BUG: 1931391: Fix reporting of Memory buffers and
+     cached memory.
+     Problem reported by doconeill.
 
 2008-05-28 06:56  magfr
 
    * agent/helpers/scalar_group.c:
-
-   CHANGES: snmpd: Enforce the lower limit on scalar_groups
-   This fixes the case of getnext icmp.0 returning icmp.0.0 instead
-   of the
-   expected icmpInMsgs.0
+     CHANGES: snmpd: Enforce the lower limit on scalar_groups
+     This fixes the case of getnext icmp.0 returning icmp.0.0 instead
+     of the
+     expected icmpInMsgs.0
 
 2008-05-27 22:03  dts12
 
    * agent/mibgroup/agentx/master.c, agent/mibgroup/agentx/subagent.c:
-
-   CHANGES: snmpd: BUG: 1912647: Fix memory leak following failed
-   requests.
-   Fix provided by Anton Pak
+     CHANGES: snmpd: BUG: 1912647: Fix memory leak following failed
+     requests.
+     Fix provided by Anton Pak
 
 2008-05-27 21:22  dts12
 
    * snmplib/snmp_api.c:
-
-   CHANGES: snmplib: BUG: 1958041: Ensure IDs are not truncated.
+     CHANGES: snmplib: BUG: 1958041: Ensure IDs are not truncated.
 
 2008-05-27 14:18  dts12
 
    * agent/mibgroup/hardware/memory/memory_freebsd.c:
-
-   Monitor memory buffers on FreeBSD systems.
-   API suggested by Chris
+     Monitor memory buffers on FreeBSD systems.
+     API suggested by Chris
 
 2008-05-27 12:47  dts12
 
    * agent/mibgroup/hardware/cpu/cpu_sysctl.c:
-
-   Fix careless typo when applying Maxim's patch.
-
-2008-05-25 21:37  magfr
-
-   *  README.agent-mibs, agent/mibgroup/snmpv3/usmStats.h,   
-      agent/mibgroup/snmpv3/usmStats_5_5.c,   
-      agent/mibgroup/snmpv3/usmStats_5_5.h,   
-      agent/mibgroup/snmpv3mibs.h:
-
-   CHANGES: snmpd: Reimplementation of usmStats.
+     Fix careless typo when applying Maxim's patch.
 
 2008-05-25 07:24  magfr
 
    * agent/mibgroup/disman/event/mteEventConf.c:
-
-   Remove a local variable only used to track a local string
-   constant and replace t with a direct reference to the string
-   constant.
-   Mark two local functions static as well.
+     Remove a local variable only used to track a local string
+     constant and replace t with a direct reference to the string
+     constant.
+     Mark two local functions static as well.
 
 2008-05-25 07:17  magfr
 
    * agent/mibgroup/utilities/iquery.c:
-
-   Reorder to avoid one strlen call.
-   Add missing cast.
+     Reorder to avoid one strlen call.
+     Add missing cast.
 
 2008-05-25 07:14  magfr
 
    * agent/mibgroup/ip-mib/data_access/scalars_linux.c:
-
-   Make ipfw_name a static array instead of a pointer as it is
-   private to this module.
+     Make ipfw_name a static array instead of a pointer as it is
+     private to this module.
 
 2008-05-25 07:05  magfr
 
    * agent/helpers/instance.c:
-
-   When casting, cast to the right type.
-
-2008-05-25 06:08  magfr
-
-   *  agent/helpers/cache_handler.c, agent/helpers/read_only.c,   
-      agent/helpers/stash_cache.c, agent/mibgroup/agent/extend.c,   
-      agent/mibgroup/agent/nsCache.c, agent/mibgroup/agent/nsLogging.c, 
-        agent/mibgroup/host/hr_print.c, agent/mibgroup/host/hr_swinst.c,
-         agent/snmp_agent.c, apps/snmptest.c, snmplib/read_config.c,   
-      snmplib/snmp_client.c:
-
-   Remove warnings about unreachable code on solaris.
+     When casting, cast to the right type.
 
 2008-05-24 20:30  dts12
 
    * python/netsnmp/client_intf.c:
-
-   CHANGES: python: BUG: 1826174: Check for buffer overflow when
-   printing values.
-   Addresses CVE-2008-2292
-
-2008-05-24 13:11  magfr
-
-   * configure, configure.in:
-
-   On AIX netinet/in_pcb.h depends on net/route.h. Add the include
-   for configure.
-
-2008-05-24 09:06  magfr
-
-   *  acconfig.h, configure, configure.in,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   Make the checks for netinet/in_pcb.h and sys/disklabel.h use the
-   normal
-   machinery.
-   Add a netsnmp prefix to the cache variable
-   cv_sys_ioctl_h_has_SIOCGIFADDR to
-   pacify aclocal.
+     CHANGES: python: BUG: 1826174: Check for buffer overflow when
+     printing values.
+     Addresses CVE-2008-2292
 
 2008-05-23 20:27  dts12
 
-   *  agent/mibgroup/hardware/cpu.h,   
-      agent/mibgroup/hardware/cpu/cpu_sysctl.c:
-
-   CHANGES: snmpd: PATCH: Fix for CPU stats on FreeBSD
-   Provided by Maxim Sobolev
+   * agent/mibgroup/hardware/cpu.h,
+     agent/mibgroup/hardware/cpu/cpu_sysctl.c:
+     CHANGES: snmpd: PATCH: Fix for CPU stats on FreeBSD
+     Provided by Maxim Sobolev
 
 2008-05-23 20:12  dts12
 
    * dist/snmpd-init.d, dist/snmptrapd-init.d:
-
-   CHANGES: install: PATCH: 1969627: Handle empty
-   /etc/sysconfig/network file
-   Fix provided by Josh Wilmes
+     CHANGES: install: PATCH: 1969627: Handle empty
+     /etc/sysconfig/network file
+     Fix provided by Josh Wilmes
 
 2008-05-23 20:07  dts12
 
    * agent/mibgroup/host/hr_filesys.c:
-
-   CHANGES: snmpd: PATCH: 1967194: Recognise NFS4 mounts
-   Submitted by Fabrice Bacchella
+     CHANGES: snmpd: PATCH: 1967194: Recognise NFS4 mounts
+     Submitted by Fabrice Bacchella
 
 2008-05-22 20:55  dts12
 
    * snmplib/asn1.c:
-
-   Don't change length of OID buffer if parsing the OID fails.
-   Reported by saifulla Mohd Abdul.
-
-2008-05-22 13:34  hardaker
-
-   * dist/makerelease.xml:
-
-   update the advertising section and change note about how to
-   upload files (adding an automatted rsync command)
-
-2008-05-22 04:08  magfr
-
-   * agent/mibgroup/util_funcs/header_simple_table.c:
-
-   Add missing include.
-
-2008-05-21 20:27  magfr
-
-   * snmplib/snmpAliasDomain.c:
-
-   Make it possible to build the alias module with a C++ compiler.
-
-2008-05-21 13:40  hardaker
-
-   * dist/makerelease.xml:
-
-   added FSF directory info
-
-2008-05-21 09:21  dts12
-
-   * dist/RELEASE-INSTRUCTIONS:
-
-   Add Free Software Directory to the list of places to be updated.
-
-2008-05-20 23:00  magfr
-
-   *  agent/mibgroup/agent/extend.c, agent/mibgroup/agent/extend.h,   
-      agent/mibgroup/examples/example.c,   
-      agent/mibgroup/examples/example.h,   
-      agent/mibgroup/examples/ucdDemoPublic.c,   
-      agent/mibgroup/examples/ucdDemoPublic.h,   
-      agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/interfaces.c,   
-      agent/mibgroup/mibII/interfaces.h, agent/mibgroup/mibII/ip.c,   
-      agent/mibgroup/mibII/tcp.c, agent/mibgroup/mibII/udp.c,   
-      agent/mibgroup/mibII/vacm_vars.c,   
-      agent/mibgroup/mibII/vacm_vars.h, agent/mibgroup/misc/ipfwacc.c,  
-       agent/mibgroup/misc/ipfwacc.h,   
-      agent/mibgroup/snmpv3/snmpEngine.c,   
-      agent/mibgroup/snmpv3/snmpEngine.h,   
-      agent/mibgroup/snmpv3/snmpMPDStats.c,   
-      agent/mibgroup/snmpv3/snmpMPDStats.h,   
-      agent/mibgroup/snmpv3/usmStats.c,   
-      agent/mibgroup/snmpv3/usmStats.h,   
-      agent/mibgroup/snmpv3/usmUser.c, agent/mibgroup/snmpv3/usmUser.h, 
-        agent/mibgroup/target/snmpTargetAddrEntry.c,   
-      agent/mibgroup/target/snmpTargetAddrEntry.h,   
-      agent/mibgroup/ucd-snmp/disk.c, agent/mibgroup/ucd-snmp/disk.h,   
-      agent/mibgroup/ucd-snmp/diskio.c,   
-      agent/mibgroup/ucd-snmp/diskio.h,   
-      agent/mibgroup/ucd-snmp/errormib.c,   
-      agent/mibgroup/ucd-snmp/errormib.h,   
-      agent/mibgroup/ucd-snmp/extensible.c,   
-      agent/mibgroup/ucd-snmp/extensible.h,   
-      agent/mibgroup/ucd-snmp/file.c, agent/mibgroup/ucd-snmp/file.h,   
-      agent/mibgroup/ucd-snmp/lmSensors.c,   
-      agent/mibgroup/ucd-snmp/lmSensors.h,   
-      agent/mibgroup/ucd-snmp/loadave.c,   
-      agent/mibgroup/ucd-snmp/loadave.h,   
-      agent/mibgroup/ucd-snmp/logmatch.c,   
-      agent/mibgroup/ucd-snmp/logmatch.h,   
-      agent/mibgroup/ucd-snmp/memory_aix4.c,   
-      agent/mibgroup/ucd-snmp/memory_aix4.h,   
-      agent/mibgroup/ucd-snmp/memory_darwin7.c,   
-      agent/mibgroup/ucd-snmp/memory_darwin7.h,   
-      agent/mibgroup/ucd-snmp/memory_dynix.c,   
-      agent/mibgroup/ucd-snmp/memory_dynix.h,   
-      agent/mibgroup/ucd-snmp/memory_netbsd1.c,   
-      agent/mibgroup/ucd-snmp/memory_netbsd1.h,   
-      agent/mibgroup/ucd-snmp/memory_solaris2.c,   
-      agent/mibgroup/ucd-snmp/memory_solaris2.h,   
-      agent/mibgroup/ucd-snmp/vmstat_aix4.c,   
-      agent/mibgroup/ucd-snmp/vmstat_aix4.h,   
-      agent/mibgroup/ucd-snmp/vmstat_bsdi4.c,   
-      agent/mibgroup/ucd-snmp/vmstat_bsdi4.h,   
-      agent/mibgroup/ucd-snmp/vmstat_darwin7.c,   
-      agent/mibgroup/ucd-snmp/vmstat_darwin7.h,   
-      agent/mibgroup/ucd-snmp/vmstat_dynix.c,   
-      agent/mibgroup/ucd-snmp/vmstat_dynix.h,   
-      agent/mibgroup/ucd-snmp/vmstat_freebsd2.c,   
-      agent/mibgroup/ucd-snmp/vmstat_freebsd2.h,   
-      agent/mibgroup/ucd-snmp/vmstat_hpux.c,   
-      agent/mibgroup/ucd-snmp/vmstat_hpux.h,   
-      agent/mibgroup/ucd-snmp/vmstat_linux.c,   
-      agent/mibgroup/ucd-snmp/vmstat_linux.h,   
-      agent/mibgroup/ucd-snmp/vmstat_netbsd1.c,   
-      agent/mibgroup/ucd-snmp/vmstat_netbsd1.h,   
-      agent/mibgroup/ucd-snmp/vmstat_solaris2.c,   
-      agent/mibgroup/ucd-snmp/vmstat_solaris2.h,   
-      agent/mibgroup/util_funcs, agent/mibgroup/util_funcs.c,   
-      agent/mibgroup/util_funcs.h,   
-      agent/mibgroup/util_funcs/MIB_STATS_CACHE_TIMEOUT.h,   
-      agent/mibgroup/util_funcs/header_generic.c,   
-      agent/mibgroup/util_funcs/header_generic.h,   
-      agent/mibgroup/util_funcs/header_simple_table.c,   
-      agent/mibgroup/util_funcs/header_simple_table.h:
-
-   CHANGES: snmpd: The majority of the dependencies on util_funcs is
-   for the header_* functions. Factor out the header_* functions and
-   adjust the requirements.
-
-2008-05-20 22:40  magfr
-
-   *  agent/mibgroup/Rmon/agutil.c, agent/mibgroup/Rmon/alarm.c,   
-      agent/mibgroup/Rmon/alarm.h, agent/mibgroup/Rmon/event.c,   
-      agent/mibgroup/Rmon/event.h, agent/mibgroup/Rmon/history.c,   
-      agent/mibgroup/Rmon/history.h, agent/mibgroup/Rmon/rows.c,   
-      agent/mibgroup/Rmon/statistics.c,   
-      agent/mibgroup/Rmon/statistics.h, agent/mibgroup/agent/nsCache.c, 
-        agent/mibgroup/agent/nsDebug.c,
-      agent/mibgroup/agent/nsLogging.c,   
-      agent/mibgroup/hardware/sensors/kstat_sensors.c,   
-      agent/mibgroup/hardware/sensors/lmsensors_v2.c,   
-      agent/mibgroup/hardware/sensors/lmsensors_v3.c,   
-      agent/mibgroup/hardware/sensors/picld_sensors.c,   
-      agent/mibgroup/mibII/ipAddr.h, agent/mibgroup/mibII/ipv6.c,   
-      agent/mibgroup/mibII/kernel_linux.c,   
-      agent/mibgroup/mibII/route_headers.h,   
-      agent/mibgroup/mibII/snmp_mib.c, agent/mibgroup/mibII/tcp.h,   
-      agent/mibgroup/mibII/tcpTable.h, agent/mibgroup/mibII/udp.h,   
-      agent/mibgroup/mibII/udpTable.h,   
-      agent/mibgroup/mibII/vacm_conf.c,   
-      agent/mibgroup/mibII/vacm_conf.h,   
-      agent/mibgroup/mibII/var_route.c,   
-      agent/mibgroup/mibII/var_route.h, agent/mibgroup/smux/smux.c,   
-      agent/mibgroup/target/snmpTargetParamsEntry.h,   
-      agent/mibgroup/tunnel/tunnel.c,   
-      agent/mibgroup/utilities/override.c, agent/mibgroup/winExtDLL.c,  
-       agent/mibgroup/winExtDLL.h, agent/snmp_agent.c:
-
-   CHANGES: Do not config_require(util_funcs) if nothing from
-   util_funcs is used
+     Don't change length of OID buffer if parsing the OID fails.
+     Reported by saifulla Mohd Abdul.
 
 2008-05-14 13:35  tanders
 
    * agent/mibgroup/if-mib/data_access/interface_linux.c:
+     fix build failures with earlier Linux kernels (e.g. with RH7.1)
+     introduced by r16909
 
-   fix build failures with earlier Linux kernels (e.g. with RH7.1)
-   introduced by r16909
-
-2008-05-13 18:56  hardaker
-
-   * include/net-snmp/net-snmp-config.h.in:
-
-   fix comment typo
-
-2008-05-13 15:46  hardaker
-
-   * NEWS:
-
-   document the -t switch change
-
-2008-05-13 15:45  hardaker
-
-   * man/snmpcmd.1.def:
-
-   document the alias keyword
-
-2008-05-13 15:41  hardaker
-
-   * man/snmpcmd.1.def, snmplib/snmp_parse_args.c:
-
-   allow floating point numbers to be used for timeout values
-
-2008-05-12 21:11  hardaker
-
-   * mibs/NET-SNMP-TC.txt, snmplib/snmpAliasDomain.c:
-
-   Added a real snmpAliasDomain OID definition
-
-2008-05-12 21:07  hardaker
-
-   * NEWS:
-
-   updated NEWS with new alias blurb
-
-2008-05-12 21:07  hardaker
-
-   *  acconfig.h, configure, configure.in,   
-      include/net-snmp/library/snmpAliasDomain.h,   
-      include/net-snmp/net-snmp-config.h.in, man/snmp.conf.5.def,   
-      snmplib/snmpAliasDomain.c, snmplib/snmp_transport.c:
-
-   NEWS: snmplib: Added a alias transport for mapping complex
-   transport strings to simple name definitions
-
-2008-05-12 19:38  hardaker
-
-   * dist/makerelease.xml:
-
-   strip off trailing module name
-
-2008-05-12 06:03  magfr
-
-   * agent/mibgroup/mibII/snmp_mib.c:
-
-   Make mibII/snmp work again.
+2008-05-09 19:04  dts12
 
-2008-05-10 21:47  magfr
-
-   *  agent/mibgroup/ip-mib/ip_scalars.c,   
-      agent/mibgroup/ucd-snmp/diskio.c:
-
-   CHANGES: snmpd: Remove unused variables.
-
-2008-05-10 09:55  magfr
-
-   *  agent/agent_index.c, agent/mibgroup/agentx/master.c,   
-      agent/mibgroup/agentx/master_admin.c,   
-      agent/mibgroup/ucd-snmp/proxy.c, agent/snmp_agent.c,   
-      snmplib/asn1.c:
-
-   CHANGES: snmpd, snmplib: Replace the invalid %08p format
-   specifier with the correct %8p.
-
-2008-05-10 09:51  magfr
-
-   *  agent/mibgroup/disman/schedule/schedCore.c,   
-      agent/mibgroup/if-mib/data_access/interface_linux.c,   
-      agent/mibgroup/mibII/at.c, agent/mibgroup/mibII/icmp.c,   
-      agent/mibgroup/mibII/ipAddr.c, agent/mibgroup/mibII/ipv6.c,   
-      agent/mibgroup/mibII/route_write.c,   
-      agent/mibgroup/mibII/tcpTable.c, agent/mibgroup/mibII/udpTable.c, 
-        agent/mibgroup/mibII/vacm_vars.c,   
-      agent/mibgroup/mibII/var_route.c,   
-      agent/mibgroup/snmpv3/snmpEngine.c,   
-      agent/mibgroup/snmpv3/usmUser.c,   
-      agent/mibgroup/target/snmpTargetAddrEntry.c,   
-      agent/mibgroup/target/snmpTargetParamsEntry.c,   
-      agent/mibgroup/ucd-snmp/disk.c,   
-      agent/mibgroup/ucd-snmp/loadave.c,   
-      agent/mibgroup/ucd-snmp/pass.c,   
-      agent/mibgroup/ucd-snmp/pass_persist.c, apps/snmpdelta.c,   
-      apps/snmpnetstat/inet.c, apps/snmpnetstat/inet6.c,   
-      apps/snmpnetstat/main.c, apps/snmptrapd.c,   
-      apps/snmptrapd_handlers.c:
-
-   CHANGES: snmpd, snmpnetstat, snmptrapd, snmpdelta: Use NULL
-   instead of 0 for NULL pointers. Use casted 0's instead of 0 for
-   NULL function pointers.
-
-2008-05-10 09:40  magfr
-
-   *  agent/mibgroup/host/hr_disk.h,   
-      include/net-snmp/agent/agent_sysORTable.h,   
-      include/net-snmp/agent/stash_cache.h:
-
-   CHANGES: snmpd: Add missing function declarations.
-
-2008-05-10 09:39  magfr
-
-   *  agent/mibgroup/agentx/subagent.c,   
-      agent/mibgroup/disman/expr/expExpressionConf.c,   
-      agent/mibgroup/ucd-snmp/diskio.c, agent/snmp_vars.c:
-
-   CHANGES: snmpd: Add missing include files.
-
-2008-05-10 09:33  magfr
-
-   *  agent/agent_registry.c, agent/helpers/table_data.c,   
-      agent/helpers/table_dataset.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/ipAddressTable/ipAddressTable_interface.c,  
-      
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
-         agent/snmp_agent.c, local/mib2c-conf.d/mfd-interface.m2c,   
-      snmplib/data_list.c:
-
-   CHANGES: snmpd, snmplib, mib2c: Move the definition of inline
-   functions so that the compiler sees them before it sees uses of
-   them.
-
-2008-05-10 09:30  magfr
-
-   *  agent/agent_handler.c, agent/helpers/table_dataset.c,   
-      include/net-snmp/agent/agent_handler.h,   
-      include/net-snmp/agent/snmp_agent.h,   
-      include/net-snmp/agent/table_data.h,   
-      include/net-snmp/agent/table_dataset.h,   
-      include/net-snmp/library/data_list.h:
+   * FAQ, README, configure, configure.in, 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, sedscript.in,
+     snmplib/snmp_version.c:
+     - version tag ( 5.4.2.pre1 )
 
-   CHANGES: snmpd, snmplib: Remove the inline declarations for
-   functions that lack an inline definition.
+2008-05-09 19:04  dts12
 
-2008-05-09 21:35  magfr
+   * CHANGES, NEWS:
+     version update
 
-   *  agent/agent_index.c, agent/agent_registry.c, agent/agent_trap.c,  
-       agent/helpers/table.c, agent/mibgroup/Rmon/rows.c,   
-      agent/mibgroup/agentx/subagent.c,   
-      agent/mibgroup/disman/expr/expValueTable.c,   
-      agent/mibgroup/host/hr_device.c, agent/mibgroup/host/hr_disk.c,   
-      agent/mibgroup/host/hr_filesys.c,   
-      agent/mibgroup/host/hr_network.c,   
-      agent/mibgroup/host/hr_partition.c,   
-      agent/mibgroup/host/hr_print.c, agent/mibgroup/host/hr_proc.c,   
-      agent/mibgroup/host/hr_storage.c,   
-      agent/mibgroup/host/hr_swinst.c, agent/mibgroup/host/hr_swrun.c,  
-       agent/mibgroup/host/hr_system.c,   
-      agent/mibgroup/mibII/vacm_conf.c, agent/mibgroup/smux/smux.c,   
-      agent/mibgroup/util_funcs.c, agent/mibgroup/utilities/execute.c,  
-       agent/snmp_agent.c, snmplib/container_binary_array.c,   
-      snmplib/container_null.c, snmplib/lcd_time.c, snmplib/md5.c,   
-      snmplib/mib.c, snmplib/parse.c, snmplib/snmpAAL5PVCDomain.c,   
-      snmplib/snmpTCPDomain.c, snmplib/snmpTCPIPv6Domain.c,   
-      snmplib/snmpUnixDomain.c, snmplib/snmp_alarm.c,   
-      snmplib/snmp_api.c, snmplib/snmp_client.c, snmplib/snmp_debug.c,  
-       snmplib/snmp_logging.c, snmplib/snmpusm.c, snmplib/tools.c:
+2008-05-09 18:47  dts12
 
-   CHANGES: snmpd, snmplib: Use NULL instead of 0 for NULL pointers.
-   Use casted 0's instead of 0 for NULL function pointers.
+   * ChangeLog:
+     version update
 
-2008-05-09 21:27  magfr
+2008-05-09 15:24  dts12
 
-   *  agent/helpers/old_api.c, agent/mibgroup/mibII/ipv6.c,   
-      agent/mibgroup/smux/smux.c, agent/snmp_agent.c,   
-      snmplib/default_store.c, snmplib/parse.c, snmplib/read_config.c,  
-       snmplib/snmp_version.c:
+   * agent/Makefile.depend, agent/helpers/Makefile.depend,
+     agent/mibgroup/Makefile.depend, apps/Makefile.depend,
+     apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+     make depend
 
-   CHANGES: snmpd, snmplib: fixups for prototype [(void) replacing
-   ()].
+2008-05-09 15:14  dts12
 
-2008-05-09 21:23  magfr
+   * doxygen.conf:
+     - version tag ( 5.4.2.pre1 )
 
-   * agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c:
+2008-05-09 14:51  dts12
 
-   Remove dead code.
+   * man/netsnmp_agent.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_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_request_info_s.3,
+     man/netsnmp_netsnmp_table_registration_info_s.3,
+     man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,
+     man/netsnmp_util.3, man/netsnmp_utilities.3,
+     man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
+     documentation update
 
-2008-05-09 19:16  dts12
+2008-05-09 14:47  dts12
 
-   * dist/makerelease:
+   * doxygen.conf:
+     - version tag ( 5.4.2 )
 
-   Missing MD5 signature file for zip release
+2008-05-09 14:23  dts12
 
-2008-05-09 19:15  dts12
+   * Makefile.top:
+     version update
 
-   * dist/makerelease:
+2008-05-09 13:58  dts12
 
-   Basic documentation and help/usage messages.
+   * agent/mibgroup/host/hr_filesys.c:
+     Debugging messages.
 
 2008-05-08 14:00  dts12
 
    * agent/mibgroup/if-mib/data_access/interface_linux.c:
-
-   Drop support for the interim SIOCDEVPRIVATE-based ioctl calls.
-   SIOCGMIIPHY/SIOCGMIIREG have been defined since at least Sept
-   2001 (kernel 2.4.10),
-   so the risk of calling an inappropriate private ioctl is probably
-   greater than
-   that of missing information from an ancient system.
+     Drop support for the interim SIOCDEVPRIVATE-based ioctl calls.
+     SIOCGMIIPHY/SIOCGMIIREG have been defined since at least Sept
+     2001 (kernel 2.4.10),
+     so the risk of calling an inappropriate private ioctl is probably
+     greater than
+     that of missing information from an ancient system.
 
 2008-05-08 09:02  dts12
 
    * snmplib/snmp_api.c:
-
-   Don't try to automatically create anonymous users.
-   (An invalid trapsess directive may crash the agent)
-
-2008-05-06 08:38  jsafranek
-
-   * dist/net-snmp.spec:
-
-   - remove %{libcurrent}
-   - add openssl-devel to build requirements
-   - don't use Provides: unless necessary, let rpmbuild compute the
-   provided libraries
-   - don't specify PREFIX for perl
-
-2008-05-06 08:38  jsafranek
-
-   * agent/agent_read_config.c, agent/agent_trap.c:
-
-   reverting accidentaly commited files
-
-2008-05-06 08:34  jsafranek
-
-   * agent/agent_read_config.c, agent/agent_trap.c:
-
-   - remove %{libcurrent}
-   - add openssl-devel to build requirements
-   - don't use Provides: unless necessary, let rpmbuild compute the
-   provided libraries
-   - don't specify PREFIX for perl
-
-2008-05-05 21:43  dts12
-
-   * configure, configure.in:
-
-   Mechanism to select upcoming module re-writes and/or
-   recently-deprecated modules.
+     Don't try to automatically create anonymous users.
+     (An invalid trapsess directive may crash the agent)
 
 2008-05-02 10:19  dts12
 
    * include/net-snmp/system/darwin9.h:
-
-   Handle udpTable indexing on both PPC and Intel hardware.
-
-2008-04-30 19:45  magfr
-
-   * snmplib/snmp_debug.c:
-
-   CHANGES: snmplib: Remove the support for generation of statistics
-   of how often a certain debug log level is triggered.
-
-2008-04-30 19:41  magfr
-
-   * snmplib/snmp_debug.c:
-
-   NEWS: snmplib: Remove the variable debug_num_excluded.
-   There is nothing that sets debug_num_excluded and there is no way
-   to for it
-   to affect the result of any function.
+     Handle udpTable indexing on both PPC and Intel hardware.
 
 2008-04-30 05:28  magfr
 
    * snmplib/snmp_debug.c:
-
-   Remove unncessary prototypes
-
-2008-04-23 16:39  hardaker
-
-   * dist/makerelease.xml:
-
-   actually use the branch path, don't just say you're going to
+     Remove unncessary prototypes
 
 2008-04-19 22:20  tanders
 
    * agent/mibgroup/disman/event/mteTriggerConf.c:
-
-   don't depend on OID resolution for disman linkUpDownNotifications
-
-2008-04-08 20:43  magfr
-
-   * include/net-snmp/agent/sysORTable.h:
-
-   Accept that people will try to compile this code with pre-ANSI
-   compilers and change it to handle that case.
+     don't depend on OID resolution for disman linkUpDownNotifications
 
 2008-04-08 20:38  hardaker
 
    * perl/agent/agent.pm:
-
-   CHANGES: perl: fixed an extra brace in the docs pointed out by
-   Jason Martin
-
-2008-04-08 20:34  hardaker
-
-   * dist/makerelease.xml:
-
-   update and restructure a bit to fix a few problems
-
-2008-04-07 20:06  magfr
-
-   * agent/helpers/null.c:
-
-   CHANGES: snmpd: As the null handler is perfectly capable of
-   handling GET_BULK requests it is now marked as such in the
-   registration.
+     CHANGES: perl: fixed an extra brace in the docs pointed out by
+     Jason Martin
 
 2008-04-07 14:00  dts12
 
    * snmplib/parse.c:
-
-   Another over-short DESCRIPTION buffer.
+     Another over-short DESCRIPTION buffer.
 
 2008-04-07 13:57  dts12
 
    * snmplib/parse.c:
-
-   Handle longer DESCRIPTION/REFERENCE strings in Capabilities
-   statements.
-   (Consistent processing with other MIB definition macros).
-   Fix provided by Aleksandr Lomanov.
-
-2008-04-02 19:35  hardaker
-
-   * FAQ:
-
-   mention libelf package rename
-
-2008-03-29 09:29  magfr
-
-   *  README.agent-mibs, agent/Makefile.in, agent/agent_sysORTable.c,   
-      agent/mibgroup/agentx/master.h,   
-      agent/mibgroup/agentx/master_admin.c,   
-      agent/mibgroup/agentx/subagent.c, agent/mibgroup/mibII/icmp.c,   
-      agent/mibgroup/mibII/interfaces.c, agent/mibgroup/mibII/ip.c,   
-      agent/mibgroup/mibII/ipAddr.c, agent/mibgroup/mibII/snmp_mib.c,   
-      agent/mibgroup/mibII/sysORTable.c,   
-      agent/mibgroup/mibII/sysORTable.h,   
-      agent/mibgroup/mibII/system_mib.c, agent/mibgroup/mibII/tcp.c,   
-      agent/mibgroup/mibII/tcpTable.c, agent/mibgroup/mibII/udp.c,   
-      agent/mibgroup/mibII/udpTable.c,   
-      agent/mibgroup/mibII/vacm_conf.c,   
-      agent/mibgroup/mibII/vacm_vars.c,   
-      agent/mibgroup/snmpv3/snmpEngine.c,   
-      agent/mibgroup/snmpv3/snmpMPDStats.c,   
-      agent/mibgroup/snmpv3/usmStats.c, agent/mibgroup/tunnel/tunnel.c, 
-        agent/snmp_vars.c, include/net-snmp/agent/agent_sysORTable.h,   
-      include/net-snmp/agent/sysORTable.h:
-
-   NEWS: snmpd: Enable automatic reregistering of sysORTable entries
-   from AgentX subagents. Add the sysORTable interface to the
-   include directory. Rewrite the sysORTable module to use the
-   table_container handler.
-
-2008-03-27 03:21  hardaker
-
-   * dist/makerelease, dist/net-snmp.spec, dist/patme:
-
-   uncommit 3 accidental multiple file commits
-
-2008-03-27 03:18  hardaker
-
-   *  dist/makerelease, dist/makerelease.xml, dist/net-snmp.spec,   
-      dist/patme:
-
-   various rewording, restructuring and proper file replacement
-   scheme
+     Handle longer DESCRIPTION/REFERENCE strings in Capabilities
+     statements.
+     (Consistent processing with other MIB definition macros).
+     Fix provided by Aleksandr Lomanov.
 
 2008-03-26 07:52  magfr
 
    * snmplib/read_config.c:
-
-   NEWS: snmplib: from "Aleksandr Lomanov": Corrected registering of
-   multiple premib config handlers so that all of them get
-   registered as premib handlers as opposed to the earlier behaviour
-   where they always got registered as normal config items.
-
-2008-03-26 07:16  magfr
-
-   * agent/helpers/table_container.c:
-
-   CHANGES: snmpd: Get the table_container data from the right
-   handler when unregistering a table_container.
+     NEWS: snmplib: from "Aleksandr Lomanov": Corrected registering of
+     multiple premib config handlers so that all of them get
+     registered as premib handlers as opposed to the earlier behaviour
+     where they always got registered as normal config items.
 
 2008-03-25 06:07  magfr
 
    * agent/agent_registry.c:
-
-   Remove spurious printf from unregister_mib_context
+     Remove spurious printf from unregister_mib_context
 
 2008-03-24 17:54  dts12
 
    * local/mib2c:
-
-   CHANGES: mib2c: BUG: 1874059,1737068: Handle MIB objects with
-   embedded hyphens
+     CHANGES: mib2c: BUG: 1874059,1737068: Handle MIB objects with
+     embedded hyphens
 
 2008-03-24 17:29  dts12
 
    * snmplib/asn1.c:
-
-   CHANGES: snmplib: BUG: 1866655: Handle parsing invalid OID
-   subidentifiers
+     CHANGES: snmplib: BUG: 1866655: Handle parsing invalid OID
+     subidentifiers
 
 2008-03-24 16:53  dts12
 
    * snmplib/asn1.c:
-
-   CHANGES: library: PATCH: 1921861: Avoid endless loop after
-   truncating 64bit int
+     CHANGES: library: PATCH: 1921861: Avoid endless loop after
+     truncating 64bit int
 
 2008-03-24 15:00  dts12
 
    * configure, configure.in:
-
-   CHANGES: build: BUG: 1823381: Valid MIB directory search path on
-   Windows
-
-2008-03-22 08:42  magfr
-
-   * apps/snmptrapd.c:
-
-   Make it possible to build snmptrapd without embedded perl again.
+     CHANGES: build: BUG: 1823381: Valid MIB directory search path on
+     Windows
 
 2008-03-21 17:55  hardaker
 
-   *  agent/mibgroup/smux/smux.c, snmplib/snmpAAL5PVCDomain.c,   
-      snmplib/snmpCallbackDomain.c, snmplib/snmpTCPDomain.c,   
-      snmplib/snmpTCPIPv6Domain.c, snmplib/snmpUnixDomain.c,   
-      snmplib/winpipe.c:
-
-   NEWS: libsnmp: PATCH: 1895927: from jhum8111: change obsolete
-   recv/send to recvfrom/sendto
+   * agent/mibgroup/smux/smux.c, snmplib/snmpAAL5PVCDomain.c,
+     snmplib/snmpCallbackDomain.c, snmplib/snmpTCPDomain.c,
+     snmplib/snmpTCPIPv6Domain.c, snmplib/snmpUnixDomain.c,
+     snmplib/winpipe.c:
+     NEWS: libsnmp: PATCH: 1895927: from jhum8111: change obsolete
+     recv/send to recvfrom/sendto
 
 2008-03-21 17:49  hardaker
 
    * python/netsnmp/client_intf.c:
-
-   CHANGES: python: PATCH: 1862177: from wafflesouffle: made code
-   more windows/cygwin compiler friendl
+     CHANGES: python: PATCH: 1862177: from wafflesouffle: made code
+     more windows/cygwin compiler friendl
 
 2008-03-21 17:45  hardaker
 
    * python/netsnmp/client.py:
-
-   CHANGES: python: PATCH: 1877840: fix MIB label and indexing due
-   to slightly broken regexp
+     CHANGES: python: PATCH: 1877840: fix MIB label and indexing due
+     to slightly broken regexp
 
 2008-03-21 17:39  hardaker
 
    * perl/agent/Support/Support.pm:
-
-   CHANGES: perl: PATCH: 1920390: from wilmesj: fix registration of
-   tables with .0 as IIDs
+     CHANGES: perl: PATCH: 1920390: from wilmesj: fix registration of
+     tables with .0 as IIDs
 
 2008-03-21 17:32  hardaker
 
    * perl/agent/Support/Support.pm:
-
-   CHANGES: perl: PATCH: 1914645: from wilmesj: better end of mib
-   support
+     CHANGES: perl: PATCH: 1914645: from wilmesj: better end of mib
+     support
 
 2008-03-21 17:28  hardaker
 
    * perl/agent/agent.xs:
-
-   CHANGES: perl: PATCH: 1914643: from wilmesj: fix issues with
-   embedded perl returning 0 being reclassified as a wrong data type
-   when an int works.
+     CHANGES: perl: PATCH: 1914643: from wilmesj: fix issues with
+     embedded perl returning 0 being reclassified as a wrong data type
+     when an int works.
 
 2008-03-21 17:22  hardaker
 
    * local/Makefile.in:
-
-   CHANGES: mib2c: PATCH 1914398: from wilmesj: install
-   mib2c.perl.conf
+     CHANGES: mib2c: PATCH 1914398: from wilmesj: install
+     mib2c.perl.conf
 
 2008-03-21 17:02  hardaker
 
    * perl/agent/Support/Support.pm:
-
-   CHANGES: perl: PATCH: 1914393: from wilmesj: registerAgent can
-   now be run multiple times
+     CHANGES: perl: PATCH: 1914393: from wilmesj: registerAgent can
+     now be run multiple times
 
 2008-03-21 16:35  hardaker
 
    * agent/helpers/table_iterator.c:
-
-   NEWS: snmpd: PATCH: 1909813: fix table_iterator hint to get_first
-   when SORTED flag is set
-
-2008-03-21 16:24  hardaker
-
-   * agent/snmp_perl.c, apps/snmptrapd.c:
-
-   NEWS: snmptrapd: PATCH: 1908288: from anedel: If snmptrapd -f
-   interrupted with ctrl-C run perl END block
-
-2008-03-21 16:16  hardaker
-
-   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
-
-   CHANGES: PATCH: 1902113: from jsafranek: fix error log in
-   inetNetToMediatable
-
-2008-03-21 16:12  hardaker
-
-   *  agent/mibgroup/if-mib/data_access/interface_linux.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_linux.c,   
-      agent/mibgroup/util_funcs.c:
-
-   CHANGES: PATCH: 1902105: from jsafranek: hide and improve debug
-   log messages created by patch 1705594
-
-2008-03-07 15:42  dts12
-
-   *  agent/mibgroup/host/hr_storage.h,   
-      agent/mibgroup/host/hrh_filesys.c,   
-      agent/mibgroup/host/hrh_filesys.h:
-
-   HAL-based implementation of the hrFSTable.
-
-2008-03-07 15:40  dts12
-
-   *  agent/mibgroup/hardware/fsys, agent/mibgroup/hardware/fsys.h,   
-      agent/mibgroup/hardware/fsys/fsys_getfsstats.c,   
-      agent/mibgroup/hardware/fsys/fsys_mntent.c,   
-      agent/mibgroup/hardware/fsys/hw_fsys.c,   
-      agent/mibgroup/hardware/fsys/hw_fsys.h,   
-      agent/mibgroup/hardware/fsys/mnttypes.h,   
-      agent/mibgroup/hardware/fsys/mounts.h:
-
-   Initial HAL implementation of FileSystem information
-
-2008-03-07 15:35  dts12
-
-   * configure, configure.in, include/net-snmp/net-snmp-config.h.in:
-
-   Check for getvfsstat()
-
-2008-03-07 15:34  dts12
-
-   * configure, configure.in:
-
-   CHANGES: build: BUG: 1823381: Use a sensible default MIBDIR path
-   on Cygwin/MinGW
-   (Should this be applied to other branches? If so, which?)
+     NEWS: snmpd: PATCH: 1909813: fix table_iterator hint to get_first
+     when SORTED flag is set
 
 2008-02-27 22:12  hardaker
 
    * agent/mibgroup/host/hr_swinst.c:
-
-   Fix C++ style comment
-
-2008-02-27 07:49  magfr
-
-   * agent/mibgroup/host/hr_disk.c:
-
-   The LVM disk patch introduced a memory leak. This removes the
-   leak.
-
-2008-02-26 23:27  hardaker
-
-   * dist/makerelease.xml:
-
-   make the script more hierarchial/structured
-
-2008-02-26 21:36  nba
-
-   * apps/snmptranslate.c:
-
-   CHANGES: Initalize log subsystem
-
-2008-02-26 21:34  nba
-
-   * snmplib/parse.c:
-
-   CHANGES: Fix for refs to OBJECT-GROUP in another MIB
-
-2008-02-26 21:23  nba
-
-   *  mibs/DISMAN-EVENT-MIB.txt, mibs/DISMAN-EXPRESSION-MIB.txt,   
-      mibs/IP-FORWARD-MIB.txt, mibs/IP-MIB.txt,   
-      mibs/IPV6-FLOW-LABEL-MIB.txt, mibs/NOTIFICATION-LOG-MIB.txt,   
-      mibs/SNMP-USM-AES-MIB.txt, mibs/SNMP-USM-DH-OBJECTS-MIB.txt,   
-      mibs/TRANSPORT-ADDRESS-MIB.txt, mibs/TUNNEL-MIB.txt:
-
-   Update to autoextracted mib files (blank line chanmges)
-
-2008-02-26 20:46  nba
-
-   * mibs/Makefile.mib, mibs/ianalist, mibs/rfclist:
-
-   Update for currently released RFC MIBS
-
-2008-02-26 20:45  nba
-
-   *  mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt,   
-      mibs/IANA-LANGUAGE-MIB.txt, mibs/IANA-RTPROTO-MIB.txt,   
-      mibs/IANAifType-MIB.txt:
-
-   Update IANA MIBS to current version
-
-2008-02-25 22:21  tanders
-
-   * agent/mibgroup/util_funcs.h:
-
-   add missing #include<pthread.h> for pthread_mutex_t
-
-2008-02-25 22:06  tanders
-
-   * agent/mibgroup/Rmon/alarmTable.c:
-
-   a better portability fix
-
-2008-02-23 00:59  hardaker
-
-   *  agent/mibgroup/if-mib/data_access/interface_linux.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_common.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_linux.c,   
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c,
-        
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_constants.h,
-        
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c,
-         agent/mibgroup/util_funcs.c, agent/mibgroup/util_funcs.h,   
-      include/net-snmp/data_access/ipaddress.h:
-
-   NEWS: snmpd: PATCH: 1705594: from c_varun: Fix various aspects of
-   linux ipAddressPrefixTable reporting.
+     Fix C++ style comment
 
 2008-02-22 23:52  hardaker
 
    * agent/mibgroup/if-mib/data_access/interface.c:
-
-   CHANGES: snmpd: PATCH: 1896118: patch from jsafranek: fix ifTable
-   32bit counters on linux
-
-2008-02-22 23:49  hardaker
-
-   * agent/mibgroup/ip-mib/data_access/ipv6scopezone_linux.c:
-
-   patch from jsafranek: Create ipv6ScopeZoneEntry only for
-   link-local addresses and only once per interface.
+     CHANGES: snmpd: PATCH: 1896118: patch from jsafranek: fix ifTable
+     32bit counters on linux
 
 2008-02-22 23:44  hardaker
 
    * snmplib/parse.c:
-
-   CHANGES: libsnmp: PATCH: 1898204: from Mike Wescott: fix bug
-   1898198 in parse.c to avoid a segfault when parsing broken mibs.
+     CHANGES: libsnmp: PATCH: 1898204: from Mike Wescott: fix bug
+     1898198 in parse.c to avoid a segfault when parsing broken mibs.
 
 2008-02-18 12:11  dts12
 
    * man/mib_api.3.def:
-
-   Clarify the need to reset buffer length when calling 'read_objid'
-   repeatedly.
-
-2008-02-18 10:32  tanders
-
-   * agent/mibgroup/Rmon/alarmTable.c:
-
-   portability fix
-
-2008-02-18 07:39  tanders
-
-   * agent/mibgroup/Rmon/alarmTable.c:
-
-   make sure that netsnmp_iquery_user_session et al. are properly
-   declared
+     Clarify the need to reset buffer length when calling 'read_objid'
+     repeatedly.
 
 2008-02-17 18:01  tanders
 
    * agent/mibgroup/mibII/var_route.c:
-
-   fix typo in variable name
+     fix typo in variable name
 
 2008-02-17 08:38  tanders
 
    * agent/agent_registry.c:
-
-   portability fix
-
-2008-02-15 17:45  hardaker
-
-   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
-
-   lowered failure message to insert to debug; removed CVS ID from
-   top of line
-
-2008-02-15 17:39  hardaker
-
-   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
-
-   don't insert empty entries
-
-2008-02-15 17:31  hardaker
-
-   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
-
-   patch from jsafrane on irc: make ipv6 entries work on 64 bit
-   machines
-
-2008-02-15 16:24  hardaker
-
-   * dist/makerelease.xml:
-
-   pass 1 at a new makerelease script; currently just converted code
-   mostly
-
-2008-02-15 16:22  hardaker
-
-   * agent/mibgroup/host/hr_disk.c:
-
-   remove linux checks
-
-2008-02-15 15:45  hardaker
-
-   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
-
-   remove references to RDA_RTA
-
-2008-02-15 15:37  hardaker
-
-   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
-
-   don't compile in the ipv6 code if NDA_RTA isn't defined
+     portability fix
 
 2008-02-15 13:00  tanders
 
    * agent/mibgroup/host/hr_swinst.c:
-
-   portability fix
-
-2008-02-15 06:19  hardaker
-
-   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
-
-   minor bug update from c_varun
-
-2008-02-15 05:13  hardaker
-
-   *  agent/mibgroup/ip-mib/data_access/arp_linux.c,   
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c,
-         configure, configure.in:
-
-   NEWS: snmpd: PATCH: 1704105: from c_varun: Add IPv6 support to
-   the inetNetToMediaTable for linux
-
-2008-02-15 05:12  hardaker
-
-   * agent/mibgroup/ip-mib.h:
-
-   require new ipv6ScopeZoneIndexTable table
-
-2008-02-15 05:00  hardaker
-
-   *  agent/mibgroup/ip-mib/data_access/ipv6scopezone.h,   
-      agent/mibgroup/ip-mib/data_access/ipv6scopezone_common.c,   
-      agent/mibgroup/ip-mib/data_access/ipv6scopezone_linux.c,   
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable,   
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable.h,   
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.c,
-        
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h,
-        
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.c,
-        
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.h,
-        
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_enums.h,
-        
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c,
-        
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.h,
-        
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_oids.h,
-         include/net-snmp/data_access/scopezone.h:
-
-   NEWS: snmpd: PATCH: 1715405: from c_varun: Implement the
-   ipv6ScopeZoneIndexTable on linux
+     portability fix
 
 2008-02-15 04:39  hardaker
 
    * agent/snmpd.c:
-
-   CHANGES: snmpd: PATCH: 1716548: from myamato: Fix help output so
-   no space is printed between -D and arguments.
-
-2008-02-15 04:27  hardaker
-
-   *  agent/mibgroup/Rmon.h, agent/mibgroup/Rmon/alarmTable.c,   
-      agent/mibgroup/Rmon/alarmTable.h:
-
-   NEWS: snmpd: PATCH: 1723611: from Emi Yanagi: New implementation
-   of the rmon alarmTable
+     CHANGES: snmpd: PATCH: 1716548: from myamato: Fix help output so
+     no space is printed between -D and arguments.
 
 2008-02-15 03:44  hardaker
 
    * agent/agent_registry.c:
-
-   NEWS: snmpd: PATCH: 1893468: from gkoenig: fixed registration of
-   OIDs with ranges
+     NEWS: snmpd: PATCH: 1893468: from gkoenig: fixed registration of
+     OIDs with ranges
 
 2008-02-14 21:40  tanders
 
    * agent/mibgroup/mibII/var_route.c:
-
-   fix typo in variable declaration (unbreaks the build on a few
-   systems)
+     fix typo in variable declaration (unbreaks the build on a few
+     systems)
 
 2008-02-14 00:29  hardaker
 
    * COPYING:
-
-   year update for sparta
+     year update for sparta
 
 2008-02-13 23:37  magfr
 
    * include/net-snmp/library/container.h, snmplib/container.c:
-
-   NEWS: snmplib: Change CONTAINER_INSERT to not do partial inserts
-   in containers with multiple indices when one insert fails.
+     NEWS: snmplib: Change CONTAINER_INSERT to not do partial inserts
+     in containers with multiple indices when one insert fails.
 
 2008-02-13 23:11  hardaker
 
    * snmplib/snmpusm.c:
-
-   Fixed the createUser line to specify the -e flag (responding to a
-   complaint about it be missing)
-
-2008-02-13 17:42  hardaker
-
-   * agent/mibgroup/ucd-snmp/diskio.c:
-
-   NEWS: snmpd: PATCH: 1779558: from brumbs: Implement the
-   diskIOLA1,5,10 objections in the diskio-mib under linux
+     Fixed the createUser line to specify the -e flag (responding to a
+     complaint about it be missing)
 
 2008-02-13 17:15  hardaker
 
    * agent/mibgroup/host/hr_swinst.c:
-
-   CHANGES: snmpd: PATCH: 1783733: Put the package version number
-   into the hrSWInst table for solaris.
-
-2008-02-13 16:58  hardaker
-
-   * agent/mibgroup/if-mib/data_access/interface_linux.c:
-
-   CHANGES: snmpd: PATCH: 1783423: from jsafranek: return a correct
-   ipv6InterfaceIdentifier of loopback on linux
+     CHANGES: snmpd: PATCH: 1783733: Put the package version number
+     into the hrSWInst table for solaris.
 
 2008-02-13 16:12  hardaker
 
-   *  agent/mibgroup/mibII/at.c, agent/mibgroup/mibII/ipAddr.c,   
-      agent/mibgroup/mibII/udpTable.c,   
-      agent/mibgroup/mibII/var_route.c:
-
-   CHANGES: snmpd: PATCH: 1784747: from jsafranek: Fix long usage
-   for ip adresses on 64 bit systems in various MIB-II tables.
-
-2008-02-13 16:07  hardaker
-
-   *  agent/agent_trap.c, agent/mibgroup/agentx/master_admin.c,   
-      agent/mibgroup/agentx/protocol.c,   
-      include/net-snmp/agent/agent_trap.h:
-
-   NEWS: snmpd: PATCH: 1806501: from jmagder: Add a snmp_v3trap
-   function for sending traps with a snmpv3 context
+   * agent/mibgroup/mibII/at.c, agent/mibgroup/mibII/ipAddr.c,
+     agent/mibgroup/mibII/udpTable.c,
+     agent/mibgroup/mibII/var_route.c:
+     CHANGES: snmpd: PATCH: 1784747: from jsafranek: Fix long usage
+     for ip adresses on 64 bit systems in various MIB-II tables.
 
 2008-02-13 16:02  hardaker
 
-   *  agent/mibgroup/ip-mib/data_access/ipaddress_linux.c,   
-      include/net-snmp/library/tools.h:
+   * agent/mibgroup/ip-mib/data_access/ipaddress_linux.c,
+     include/net-snmp/library/tools.h:
+     CHANGES: snmpd: PATCH: 1826102: from jsafranek: support longer
+     interface names on linux
 
-   CHANGES: snmpd: PATCH: 1826102: from jsafranek: support longer
-   interface names on linux
+2008-02-13 09:22  tanders
+
+   * configure:
+     revert to autoconf 2.59 per existing policy
 
 2008-02-12 23:23  hardaker
 
    * snmplib/mib.c:
-
-   CHANGES: libsnmp: PATCH: 1807489: fix ignoring of display hints.
-
-2008-02-12 23:19  hardaker
-
-   * agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c:
-
-   
-
-2008-02-12 23:16  hardaker
-
-   * agent/mibgroup/mibII/icmp.c:
-
-   CHANGES: snmpd: patch 1823465 from jsafranek: fix icmp cache
-   registration
-
-2008-02-12 22:16  hardaker
-
-   *  README.agent-mibs,   
-      agent/mibgroup/ip-mib/data_access/scalars_linux.c,   
-      agent/mibgroup/ip-mib/ip_scalars.c:
-
-   NEWS: snmpd: PATCH: 1828602: from tgohad: Support ipDefaultTTL
-   and ipForwarding SETs on linux
+     CHANGES: libsnmp: PATCH: 1807489: fix ignoring of display hints.
 
 2008-02-12 22:09  hardaker
 
    * agent/mibgroup/ucd-snmp/diskio.c:
-
-   CHANGES: snmpd: PATCH: 1866823: from jsafranek: truncate 32 bit
-   counter values on 64 bit machines to avoid bogus warnings.
+     CHANGES: snmpd: PATCH: 1866823: from jsafranek: truncate 32 bit
+     counter values on 64 bit machines to avoid bogus warnings.
 
 2008-02-12 19:05  hardaker
 
-   *  agent/mibgroup/if-mib/data_access/interface.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable_data_access.c:
-
-   CHANGES: snmpd: PATCH: 1849903: from jsafranek: do not spam log
-   with asserts when XEN is used
+   * agent/mibgroup/if-mib/data_access/interface.c,
+     agent/mibgroup/if-mib/ifTable/ifTable_data_access.c:
+     CHANGES: snmpd: PATCH: 1849903: from jsafranek: do not spam log
+     with asserts when XEN is used
 
 2008-02-12 18:50  hardaker
 
    * snmplib/callback.c:
-
-   CHANGES: libsnmp: PATCH: 1875022: from sem_prg: improve callback
-   locking mechanisms
+     CHANGES: libsnmp: PATCH: 1875022: from sem_prg: improve callback
+     locking mechanisms
 
 2008-02-12 17:40  hardaker
 
    * agent/mibgroup/ucd-snmp/memory_freebsd2.c:
+     CHANGES: snmpd: PATCH: 1879261: from amesbury: Add in inactive
+     memory to the cached report for freebsd
 
-   CHANGES: snmpd: PATCH: 1879261: from amesbury: Add in inactive
-   memory to the cached report for freebsd
-
-2008-02-12 15:32  hardaker
-
-   * include/net-snmp/library/snmpv3.h, snmplib/snmpv3.c:
-
-   NEWS: libsnmp: Patch: 1882069: from nschrenk: Add a exactEngineID
-   token for specifying an exact SNMPv3 engineID to use
-
-2008-02-12 15:18  hardaker
-
-   * agent/mibgroup/host/hr_disk.c:
-
-   minor cleanups from reviewing parts of the code
-
-2008-02-12 15:17  hardaker
+2008-02-12 15:22  hardaker
 
    * agent/mibgroup/host/hr_disk.c:
-
-   NEWS: snmpd: PATCH: 1882621: from jsafranek: Add LVM support to
-   the partition table
+     Change snprintf print lengths to len-1 to leave 0 in final
+     position for printing
 
 2008-02-11 22:26  hardaker
 
    * configure, configure.in:
-
-   fix quoted strings in help output
+     fix quoted strings in help output
 
 2008-01-30 17:29  hardaker
 
    * configure, configure.in:
-
-   added vacm_conf to existing configure files (for trapd too)
+     added vacm_conf to existing configure files (for trapd too)
 
 2008-01-20 07:55  tanders
 
    * configure, configure.in:
-
-   CHANGES: build: BUG: 1872266: PERLCC check fails for CC with
-   options
+     CHANGES: build: BUG: 1872266: PERLCC check fails for CC with
+     options
 
 2008-01-17 01:13  hardaker
 
    * agent/mibgroup/default_modules.h:
-
-   fix default mibs to include vacm_conf too
+     fix default mibs to include vacm_conf too
 
 2008-01-17 00:09  magfr
 
    * agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c:
-
-   CHANGES: snmpd: PATCH: 1826088: from Jan Safranek: Use the right
-   interface t read the netmask
+     CHANGES: snmpd: PATCH: 1826088: from Jan Safranek: Use the right
+     interface t read the netmask
 
 2008-01-16 21:54  magfr
 
    * agent/mibgroup/ucd-snmp/disk.c:
-
-   CHANGES: Handle device names with embedded spaces in
-   UCD-SNMP-MIB::dskDevice
+     CHANGES: Handle device names with embedded spaces in
+     UCD-SNMP-MIB::dskDevice
 
 2008-01-16 00:47  magfr
 
    * agent/mibgroup/ucd-snmp/disk.c:
-
-   CHANGES: snmpd: PATCH: 1828839: from jsafranek to provide better
-   handling of disks mounted on paths with embedded spaces
+     CHANGES: snmpd: PATCH: 1828839: from jsafranek to provide better
+     handling of disks mounted on paths with embedded spaces
 
 2008-01-15 16:47  hardaker
 
    * snmplib/default_store.c:
-
-   coverity bug 205: double check pointer that should never be null
-
-2008-01-14 23:55  magfr
-
-   *  README.agent-mibs, agent/mibgroup/mibII/snmp_mib.c,   
-      agent/mibgroup/mibII/snmp_mib.h,   
-      agent/mibgroup/mibII/system_mib.c,   
-      agent/mibgroup/mibII/system_mib.h,   
-      agent/mibgroup/mibII/updates.c, agent/mibgroup/mibII/updates.h:
-
-   Update the snmp and system mibs to be handler based
-
-2008-01-13 00:00  magfr
-
-   *  Makefile.in, configure, configure.in, dist/RELEASE-INSTRUCTIONS,  
-       doxygen.conf, local/Version-Munge.pl, sedscript.in,   
-      snmplib/snmp_version.c:
-
-   Lessen the number of places that need to be changed in order to
-   do a release.
-   Change to use the configure version number as the package version
-   number.
+     coverity bug 205: double check pointer that should never be null
 
 2008-01-09 21:58  magfr
 
    * snmplib/container_binary_array.c:
-
-   Delete unused static functions
+     Delete unused static functions
 
 2008-01-06 13:01  magfr
 
    * snmplib/snmp_client.c:
-
-   Make error_string private and readonly
+     Make error_string private and readonly
 
 2007-12-22 19:22  dts12
 
    * perl/SNMP/SNMP.xs:
-
-   CHANGES: perl: BUG: 1826174: Check for buffer overflow when
-   printing values.
+     CHANGES: perl: BUG: 1826174: Check for buffer overflow when
+     printing values.
 
 2007-12-21 23:19  dts12
 
    * perl/SNMP/SNMP.pm:
-
-   CHANGES: perl: BUG: 1747733: More robust handling of undefined
-   values.
-   Patch supplied by Matti Linnanvuori
+     CHANGES: perl: BUG: 1747733: More robust handling of undefined
+     values.
+     Patch supplied by Matti Linnanvuori
 
 2007-12-21 21:33  dts12
 
    * agent/mibgroup/host/hr_filesys.c, agent/mibgroup/ucd-snmp/disk.c:
-
-   CHANGES: snmpd: BUG: 1748206: Protect against failures to open
-   /etc/mtab (or equiv)
+     CHANGES: snmpd: BUG: 1748206: Protect against failures to open
+     /etc/mtab (or equiv)
 
 2007-12-21 18:42  dts12
 
    * net-snmp-config.in:
-
-   Bring order of agent library linking into line with agent
-   Makefile.
-   Problem reported by Steve McCarthy.
-   Qn: Should 5.2.x and 5.3.x also use the same order?
-   (for both agent Makefile and net-snmp-config)
+     Bring order of agent library linking into line with agent
+     Makefile.
+     Problem reported by Steve McCarthy.
+     Qn: Should 5.2.x and 5.3.x also use the same order?
+     (for both agent Makefile and net-snmp-config)
 
 2007-12-21 13:11  dts12
 
    * apps/snmptrapd_log.c:
-
-   CHANGES: build: BUG: 1802833: Ensure snmptrapd builds with
-   --disable-snmpv1/2c
+     CHANGES: build: BUG: 1802833: Ensure snmptrapd builds with
+     --disable-snmpv1/2c
 
 2007-12-20 16:26  dts12
 
    * perl/SNMP/SNMP.xs:
-
-   CHANGES: perl: BUG: 1834539: Consistent handling of OID parsing.
-   Applies patch #1834983, provided by Dmitry Karasik
-
-2007-12-20 16:05  dts12
-
-   * snmplib/snmp_client.c:
-
-   More internal query debugging output.
+     CHANGES: perl: BUG: 1834539: Consistent handling of OID parsing.
+     Applies patch #1834983, provided by Dmitry Karasik
 
 2007-12-20 14:20  dts12
 
    * agent/helpers/watcher.c:
-
-   CHANGES: snmpd: BUG: 1822360: Fix spinlock helper error handling.
+     CHANGES: snmpd: BUG: 1822360: Fix spinlock helper error handling.
 
 2007-12-20 14:18  dts12
 
    * snmplib/asn1.c:
-
-   CHANGES: snmplib: BUG: 1795840: Signed 32-bit truncation logged
-   as debug message rather then error.
+     CHANGES: snmplib: BUG: 1795840: Signed 32-bit truncation logged
+     as debug message rather then error.
 
 2007-12-20 14:14  dts12
 
    * agent/mibgroup/host/hr_filesys.c:
-
-   CHANGES: snmpd: BUG: 1792890: include CIFS mounts when skipping
-   remote filesystems
+     CHANGES: snmpd: BUG: 1792890: include CIFS mounts when skipping
+     remote filesystems
 
 2007-12-20 14:12  dts12
 
    * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c:
-
-   CHANGES: snmpd: BUG: 1771221: Retain ifLastChange information on
-   data reload.
+     CHANGES: snmpd: BUG: 1771221: Retain ifLastChange information on
+     data reload.
 
 2007-12-20 14:08  dts12
 
    * agent/mibgroup/notification-log-mib/notification_log.c:
-
-   CHANGES: snmpd: BUG: 1758212: Handling missing variable types
-   (IpAddress,Counter,Opaque)
+     CHANGES: snmpd: BUG: 1758212: Handling missing variable types
+     (IpAddress,Counter,Opaque)
 
 2007-12-19 22:39  magfr
 
-   *  snmplib/container.c, snmplib/container_iterator.c,   
-      snmplib/container_null.c, snmplib/data_list.c,   
-      snmplib/read_config.c:
-
-   Correct doxygen warnings
+   * snmplib/container.c, snmplib/container_iterator.c,
+     snmplib/container_null.c, snmplib/data_list.c,
+     snmplib/read_config.c:
+     Correct doxygen warnings
 
 2007-12-19 22:31  magfr
 
-   *  testing/tests/Sv3vacmconfig, 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/T022snmpv3getMD5,  
-       testing/tests/T023snmpv3getMD5AES,   
-      testing/tests/T023snmpv3getMD5DES,   
-      testing/tests/T025snmpv3getSHADES,   
-      testing/tests/T030snmpv3usercreation,   
-      testing/tests/T051snmpv2ctrap, testing/tests/T052snmpv2cinform,   
-      testing/tests/T058agentauthtrap,   
-      testing/tests/T059trapdtraphandle, testing/tests/T060trapdperl,   
-      testing/tests/T061agentperl, testing/tests/T065agentextend,   
-      testing/tests/T100agenthup, testing/tests/T115agentxperl,   
-      testing/tests/T120proxyget, testing/tests/T121proxyset,   
-      testing/tests/T122proxysetfail, testing/tests/T130snmpv1vacmget,  
-       testing/tests/T131snmpv2cvacmget,   
-      testing/tests/T140snmpv1vacmgetfail,   
-      testing/tests/T141snmpv2cvacmgetfail,   
-      testing/tests/T150solarishostcpu,   
-      testing/tests/T151solarishostdisk, testing/tests/T152hostuptime,  
-       testing/tests/T153solarisswap, testing/tests/T160snmpnetstat,   
-      testing/tests/T200snmpv2cwalkall:
-
-   Use NETSNMP_-prefixed symbols when deciding what tests to run as
-   the compat symbols aren't defined.
+   * testing/tests/Sv3vacmconfig, 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/T022snmpv3getMD5,
+     testing/tests/T023snmpv3getMD5AES,
+     testing/tests/T023snmpv3getMD5DES,
+     testing/tests/T025snmpv3getSHADES,
+     testing/tests/T030snmpv3usercreation,
+     testing/tests/T051snmpv2ctrap, testing/tests/T052snmpv2cinform,
+     testing/tests/T058agentauthtrap,
+     testing/tests/T059trapdtraphandle, testing/tests/T060trapdperl,
+     testing/tests/T061agentperl, testing/tests/T065agentextend,
+     testing/tests/T100agenthup, testing/tests/T115agentxperl,
+     testing/tests/T120proxyget, testing/tests/T121proxyset,
+     testing/tests/T122proxysetfail, testing/tests/T130snmpv1vacmget,
+     testing/tests/T131snmpv2cvacmget,
+     testing/tests/T140snmpv1vacmgetfail,
+     testing/tests/T141snmpv2cvacmgetfail,
+     testing/tests/T150solarishostcpu,
+     testing/tests/T151solarishostdisk, testing/tests/T152hostuptime,
+     testing/tests/T153solarisswap, testing/tests/T160snmpnetstat,
+     testing/tests/T200snmpv2cwalkall:
+     Use NETSNMP_-prefixed symbols when deciding what tests to run as
+     the compat symbols aren't defined.
 
 2007-12-19 22:06  magfr
 
    * snmplib/snmp_api.c:
-
-   BUG 1831568: strdup might fail and return NULL - take care of it
-   in this case at least.
+     BUG 1831568: strdup might fail and return NULL - take care of it
+     in this case at least.
 
 2007-12-19 21:49  magfr
 
    * agent/mibgroup/utilities/override.c, snmplib/snmp_api.c:
-
-   BUG 1824883: Remove memory leak
+     BUG 1824883: Remove memory leak
 
 2007-12-19 20:46  magfr
 
    * agent/helpers/watcher.c:
-
-   CHANGES: BUG: 1851047: Do not try to do more handling of a value
-   once it is found to be corrupt by the watcher helper, thus
-   avoiding code that counts on getting the right type. This bug was
-   found by Charlie Miller, Independent Security Evaluators.
+     CHANGES: BUG: 1851047: Do not try to do more handling of a value
+     once it is found to be corrupt by the watcher helper, thus
+     avoiding code that counts on getting the right type. This bug was
+     found by Charlie Miller, Independent Security Evaluators.
 
 2007-11-27 09:56  dts12
 
    * man/snmptrapd.8.def:
-
-   Clarify use of the -A (log append) option.
+     Clarify use of the -A (log append) option.
 
 2007-11-22 15:42  rstory
 
    * agent/mibgroup/agent/nsCache.c, agent/mibgroup/agent/nsDebug.c:
+     check request, not requests. reported by ulim on irc
 
-   check request, not requests. reported by ulim on irc
-
-2007-11-22 15:17  rstory
+2007-11-22 15:16  rstory
 
    * agent/mibgroup/agent/nsLogging.c:
-
-   check request, not requests. reported by ulim on irc
+     check request, not requests. reported by ulim on irc
 
 2007-11-19 21:34  tanders
 
    * agent/mibgroup/kernel_sunos5.c:
-
-   CHANGES: Solaris: PATCH: 1834699: from apersson: Fix 1833294:
-   DLPI problems on Solaris 2.6
-
-2007-11-17 16:26  magfr
-
-   *  agent/helpers/instance.c, configure, configure.in,   
-      include/net-snmp/agent/instance.h,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: snmpd: Use the worker helpers from the
-   register_*_instance helpers and schedule the instance helpers for
-   removal in 5.6
-
-2007-11-14 12:21  dts12
-
-   *  agent/mibgroup/hardware/sensors/lmsensors_v3.c,   
-      agent/mibgroup/hardware/sensors/lmsensors_v3.h:
-
-   Support v3 lmsensors API.
-
-2007-11-14 12:19  dts12
-
-   * agent/mibgroup/hardware/sensors/hw_sensors.c:
-
-   Fix misleading debug output message.
-
-2007-11-13 13:59  dts12
-
-   *  agent/mibgroup/hardware/sensors,   
-      agent/mibgroup/hardware/sensors.h,   
-      agent/mibgroup/hardware/sensors/dummy_sensors.c,   
-      agent/mibgroup/hardware/sensors/dummy_sensors.h,   
-      agent/mibgroup/hardware/sensors/hw_sensors.c,   
-      agent/mibgroup/hardware/sensors/hw_sensors.h,   
-      agent/mibgroup/hardware/sensors/kstat_sensors.c,   
-      agent/mibgroup/hardware/sensors/kstat_sensors.h,   
-      agent/mibgroup/hardware/sensors/lmsensors_v2.c,   
-      agent/mibgroup/hardware/sensors/lmsensors_v2.h,   
-      agent/mibgroup/hardware/sensors/picld_sensors.c,   
-      agent/mibgroup/hardware/sensors/picld_sensors.h,   
-      agent/mibgroup/ucd-snmp/lmsensorsMib.c,   
-      agent/mibgroup/ucd-snmp/lmsensorsMib.h, configure, configure.in,  
-       include/net-snmp/agent/hardware/sensors.h:
-
-   Preliminary re-working of the LM-SENSORS-MIB, to separate out
-   the sensor hardware processing from the MIB tables themselves.
+     CHANGES: Solaris: PATCH: 1834699: from apersson: Fix 1833294:
+     DLPI problems on Solaris 2.6
 
 2007-11-08 23:17  tanders
 
-   *  agent/mibgroup/if-mib/data_access/interface_solaris2.c,   
-      agent/mibgroup/kernel_sunos5.c, agent/mibgroup/kernel_sunos5.h,   
-      agent/mibgroup/mibII/interfaces.c:
-
-   CHANGES: Solaris: PATCH: 1824196: {ifOperStatus,ipAdEntIfIndex}
-   reported incorrectly
-   Patch supplied by Anders Persson. Fixes Bugs 1822275 and 1819189.
-
-2007-10-26 21:22  magfr
-
-   *  agent/helpers/watcher.c, agent/mibgroup/examples/watched.c,   
-      include/net-snmp/agent/watcher.h:
-
-   NEWS: snmpd: Added support for a user provided length variable
-   and C string values to the watcher helper.
-
-2007-10-16 22:39  magfr
-
-   *  agent/agent_trap.c, agent/helpers/debug_handler.c,   
-      agent/helpers/table_iterator.c, agent/helpers/table_tdata.c,   
-      agent/mibgroup/agentx/subagent.c,   
-      agent/mibgroup/disman/event/mteEvent.c,   
-      agent/mibgroup/disman/event/mteEventNotificationTable.c,   
-      agent/mibgroup/disman/event/mteEventSetTable.c,   
-      agent/mibgroup/disman/event/mteEventTable.c,   
-      agent/mibgroup/disman/event/mteTrigger.c,   
-      agent/mibgroup/disman/expr/expErrorTable.c,   
-      agent/mibgroup/disman/expr/expExpression.c,   
-      agent/mibgroup/disman/expr/expExpressionTable.c,   
-      agent/mibgroup/disman/expr/expObject.c,   
-      agent/mibgroup/disman/expr/expObjectTable.c,   
-      agent/mibgroup/disman/expr/expValueTable.c,   
-      agent/mibgroup/disman/schedule/schedCore.c,   
-      agent/mibgroup/host/hr_storage.c,   
-      agent/mibgroup/if-mib/data_access/interface_linux.c,   
-      agent/mibgroup/ip-forward-mib/data_access/route_linux.c,   
-      agent/mibgroup/ip-mib/data_access/systemstats_linux.c,   
-      agent/mibgroup/notification/snmpNotifyTable.c,   
-      agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c,   
-      apps/snmptrapd_handlers.c, snmplib/default_store.c,   
-      snmplib/snmpSTDDomain.c, snmplib/snmpUDPDomain.c,   
-      snmplib/snmp_client.c:
-
-   Use %p to print pointers. Do not use %p to print numbers.
-
-2007-10-16 07:31  magfr
-
-   * snmplib/snmp_api.c:
-
-   Make the library buildable as C again.
+   * agent/mibgroup/if-mib/data_access/interface_solaris2.c,
+     agent/mibgroup/kernel_sunos5.c, agent/mibgroup/kernel_sunos5.h,
+     agent/mibgroup/mibII/interfaces.c:
+     CHANGES: Solaris: PATCH: 1824196: {ifOperStatus,ipAdEntIfIndex}
+     reported incorrectly
+     Patch supplied by Anders Persson. Fixes Bugs 1822275 and 1819189.
 
 2007-10-16 07:17  magfr
 
-   *  agent/helpers/instance.c, agent/helpers/scalar.c,   
-      agent/helpers/watcher.c, agent/mibgroup/examples/example.c,   
-      agent/mibgroup/smux/smux.c:
-
-   CHANGES: misc: avoid calling debug macros with too many
-   arguments.
+   * agent/helpers/instance.c, agent/helpers/scalar.c,
+     agent/helpers/watcher.c, agent/mibgroup/examples/example.c,
+     agent/mibgroup/smux/smux.c:
+     CHANGES: misc: avoid calling debug macros with too many
+     arguments.
 
 2007-10-16 06:18  magfr
 
-   *  snmplib/snmp_api.c, snmplib/snmp_service.c,   
-      snmplib/snmp_transport.c:
-
-   Make the library buildable as C++ again.
-
-2007-10-15 20:52  rstory
-
-   *  include/net-snmp/library/container_binary_array.h,   
-      snmplib/dir_utils.c:
-
-   declare netsnmp_binary_array_options_set; include header for it
-   as needed
+   * snmplib/snmp_service.c, snmplib/snmp_transport.c:
+     Make the library buildable as C++ again.
 
 2007-10-15 20:39  magfr
 
    * agent/mibgroup/disman/expr/expValueTable.c:
-
-   Convert an infinite loop to a finite one.
-   Remove an unused variable.
+     Convert an infinite loop to a finite one.
+     Remove an unused variable.
 
 2007-10-14 22:10  magfr
 
-   *  agent/mibgroup/ip-mib/data_access/ipaddress_common.c,   
-      agent/mibgroup/ip-mib/data_access/scalars_linux.c,   
-      agent/mibgroup/smux/smux.c,   
-      agent/mibgroup/tcp-mib/data_access/tcpConn_common.c:
-
-   CHANGES: misc: Avoid calling debug macros with too few arguments.
+   * agent/mibgroup/ip-mib/data_access/ipaddress_common.c,
+     agent/mibgroup/ip-mib/data_access/scalars_linux.c,
+     agent/mibgroup/smux/smux.c,
+     agent/mibgroup/tcp-mib/data_access/tcpConn_common.c:
+     CHANGES: misc: Avoid calling debug macros with too few arguments.
 
 2007-10-14 20:51  tanders
 
    * snmplib/read_config.c:
-
-   CHANGES: snmplib: PATCH: 1811469: read_config_files_in_path()
-   reads past malloc'd buffer
+     CHANGES: snmplib: PATCH: 1811469: read_config_files_in_path()
+     reads past malloc'd buffer
 
 2007-10-14 20:41  tanders
 
    * perl/SNMP/SNMP.xs:
-
-   CHANGES: perl: PATCH: 1811463: perl async callback coredump
-   CHANGES: perl: BUG: 1606062: perl bulkwalk (async) coredump
+     CHANGES: perl: PATCH: 1811463: perl async callback coredump
+     CHANGES: perl: BUG: 1606062: perl bulkwalk (async) coredump
 
 2007-10-14 19:07  tanders
 
    * snmplib/snmp_logging.c:
-
-   CHANGES: snmplib: PATCH: 1806336: fix -LS option parsing
+     CHANGES: snmplib: PATCH: 1806336: fix -LS option parsing
 
 2007-10-14 12:12  tanders
 
    * agent/mibgroup/mibII/tcpTable.c:
-
-   fix comment
+     fix comment
 
 2007-10-13 23:28  tanders
 
    * testing/tests/T160snmpnetstat:
-
-   CHANGES: test: enhance snmpnetstat test to check tcpTable in TCP
-   mode
+     CHANGES: test: enhance snmpnetstat test to check tcpTable in TCP
+     mode
 
 2007-10-13 22:28  tanders
 
-   *  agent/mibgroup/mibII/tcpTable.c,   
-      include/net-snmp/system/solaris.h:
-
-   CHANGES: Solaris: BUG: 1810814: tcpTable missing entries and
-   wrong ports
+   * agent/mibgroup/mibII/tcpTable.c,
+     include/net-snmp/system/solaris.h:
+     CHANGES: Solaris: BUG: 1810814: tcpTable missing entries and
+     wrong ports
 
 2007-10-12 21:46  tanders
 
    * include/net-snmp/system/solaris.h:
-
-   CHANGES: Solaris: #define NEW_MIB_COMPLIANT to support Solaris
-   10U4+
+     CHANGES: Solaris: #define NEW_MIB_COMPLIANT to support Solaris
+     10U4+
 
 2007-10-11 20:46  magfr
 
    * snmplib/snmpUDPDomain.c:
-
-   CHANGES: snmplib: Do not leak memory whenever an udp address is
-   formatted.
-
-2007-10-03 01:02  alex_b
-
-   *  win32/dist/README.build.win32.txt, win32/dist/README.txt,   
-      win32/dist/installer/Add2Path.nsi,   
-      win32/dist/installer/net-snmp.nsi:
-
-   -Fix for bug 1768797. NSIS Installer script now warns the user if
-   the PATH
-   is > 1024 as NSIS can not handle variables larger than 1024.
-   -Updates to build instructions.
+     CHANGES: snmplib: Do not leak memory whenever an udp address is
+     formatted.
 
 2007-09-30 20:59  magfr
 
-   *  agent/mibgroup/agentx/agentx_config.c,   
-      include/net-snmp/library/snmp_service.h, snmplib/snmp_api.c,   
-      snmplib/snmp_service.c, snmplib/snmp_transport.c:
-
-   CHANGES: BUG: 1801835: Added the ability to have multiple default
-   transports for an application. On open the different transports
-   will be tried in order. As a consequence snmp and snmptrap now
-   will try first udp and then udp6 and agentx wil try first unix
-   and then tcp.
+   * agent/mibgroup/agentx/agentx_config.c,
+     include/net-snmp/library/snmp_service.h, snmplib/snmp_api.c,
+     snmplib/snmp_service.c, snmplib/snmp_transport.c:
+     CHANGES: BUG: 1801835: Added the ability to have multiple default
+     transports for an application. On open the different transports
+     will be tried in order. As a consequence snmp and snmptrap now
+     will try first udp and then udp6 and agentx wil try first unix
+     and then tcp.
 
 2007-09-29 13:10  magfr
 
    * snmplib/snmpUDPIPv6Domain.c:
-
-   CHANGES: snmplib: Do not try to look up empty strings as
-   hostnames for IPv6
-   Additinally, print what string filed to resolve using getaddrinfo
-   for IPv6
-
-2007-09-29 06:26  tanders
-
-   * agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c:
-
-   CHANGES: snmpd: PATCH: 1804445: from apersson: High order bits of
-   HCInOctets not set on Solaris
+     CHANGES: snmplib: Do not try to look up empty strings as
+     hostnames for IPv6
+     Additinally, print what string filed to resolve using getaddrinfo
+     for IPv6
 
 2007-09-24 20:43  hardaker
 
    * COPYING:
-
-   year update
-
-2007-09-23 06:03  tanders
-
-   * snmplib/dir_utils.c:
-
-   fix #elif
-
-2007-09-21 22:04  tanders
-
-   *  configure, configure.in, include/net-snmp/net-snmp-config.h.in,   
-      snmplib/dir_utils.c:
-
-   CHANGES: snmplib: attempt to fix build for Solaris/AIX/HP-UX
-   broken by r16684
+     year update
 
 2007-09-20 21:55  tanders
 
    * agent/mibgroup/ucd-snmp/proc.c:
-
-   CHANGES: snmpd: PATCH: 1746831: from cunnijd: fix process
-   checking race
-   condition under Linux and platform #ifdefs
+     CHANGES: snmpd: PATCH: 1746831: from cunnijd: fix process
+     checking race
+     condition under Linux and platform #ifdefs
 
 2007-09-19 21:09  tanders
 
    * snmplib/snmpUDPDomain.c:
-
-   CHANGES: snmplib: BUG: Coverity #183: fix memory leak if
-   IP_PKTINFO fails
-
-2007-09-19 19:57  dts12
-
-   * dist/RELEASE-INSTRUCTIONS:
-
-   Fix misnumberings of steps.
-   It is *so* difficult to find properly numerate staff these
-   days....
+     CHANGES: snmplib: BUG: Coverity #183: fix memory leak if
+     IP_PKTINFO fails
 
 2007-09-16 09:51  magfr
 
    * local/mib2c-update:
-
-   Remove bashisms. This is netbsd patch-et from bug 1745404.
+     Remove bashisms. This is netbsd patch-et from bug 1745404.
 
 2007-09-16 09:45  magfr
 
    * agent/mibgroup/host/hr_device.c:
-
-   Use const char* for temporary constant string variable. This is
-   netbsd patch-ea from bug 1745404.
+     Use const char* for temporary constant string variable. This is
+     netbsd patch-ea from bug 1745404.
 
 2007-09-16 09:40  magfr
 
    * snmplib/snmp_api.c:
-
-   Use the natural type of in_addr_t's for comparisions. This is
-   netbsd patch-ea from bug 1745404.
+     Use the natural type of in_addr_t's for comparisions. This is
+     netbsd patch-ea from bug 1745404.
 
 2007-09-16 07:06  magfr
 
    * agent/mibgroup/agentx/master.c:
+     CHANGES: BUG: 1793545: Take the name from the sockaddr_un in
+     order to avoid transport specifiers and other decorations.
 
-   CHANGES: BUG: 1793545: Take the name from the sockaddr_un in
-   order to avoid transport specifiers and other decorations.
-
-2007-09-14 13:18  rstory
-
-   * include/net-snmp/data_access/swrun.h:
-
-   Apple patches
-   - header for swrun rewrite
-
-2007-09-14 13:16  rstory
-
-   * include/net-snmp/system/darwin9.h:
-
-   Apple patches
-   - add utility macro
-   - activate new host resource rewrites
-
-2007-09-14 13:13  rstory
-
-   * agent/mibgroup/host.h:
-
-   Apple patches
-   - config_require for new rewrites, if enabled
-
-2007-09-14 13:11  rstory
-
-   *  agent/mibgroup/host/hr_disk.c, agent/mibgroup/host/hr_filesys.c,  
-       agent/mibgroup/host/hr_partition.c:
-
-   Apple patches
-   - add/fix disk/partition tables on darwin
-
-2007-09-14 13:09  rstory
-
-   *  agent/mibgroup/host/data_access/swinst.c,   
-      agent/mibgroup/host/data_access/swinst.h,   
-      agent/mibgroup/host/data_access/swinst_darwin.c,   
-      agent/mibgroup/host/hrSWInstalledTable.c,   
-      agent/mibgroup/host/hrSWInstalledTable.h,   
-      include/net-snmp/data_access/swinst.h:
-
-   Apple patches
-   - add hrSWInstalledTable for darwin
-
-2007-09-14 08:44  dts12
+2007-09-14 14:44  dts12
 
    * dist/makerelease:
-
-   Protect against unexpected command arguments.
-
-2007-09-14 08:00  dts12
-
-   * dist/RELEASE-INSTRUCTIONS:
-
-   Document use of "svn export" rather than "svn checkout".
-   Cover generation of the zip archive as well as the tarball.
+     Synch with main trunk release script.
 
 2007-09-13 21:25  tanders
 
    * README:
-
-   drop obsolete mirrors
-
-2007-09-13 17:29  rstory
-
-   *  agent/mibgroup/host/data_access,   
-      agent/mibgroup/host/data_access/swrun.c,   
-      agent/mibgroup/host/data_access/swrun.h,   
-      agent/mibgroup/host/data_access/swrun_darwin.c,   
-      agent/mibgroup/host/hrSWRunPerfTable.c,   
-      agent/mibgroup/host/hrSWRunPerfTable.h,   
-      agent/mibgroup/host/hrSWRunTable.c,   
-      agent/mibgroup/host/hrSWRunTable.h:
-
-   Apple patches
-   - host resources SWRun and SWRunPerf Table for darwin9
-
-2007-09-13 17:22  rstory
-
-   * agent/helpers/table.c, include/net-snmp/agent/table.h:
-
-   Apple patches
-   - improve error handling and cleanup in registration functions
-
-2007-09-13 17:19  rstory
-
-   * snmplib/system.c:
-
-   Apple patches
-   - for darwin9, rexec after fork to avoid problems with some mach
-   calls
-
-2007-09-12 18:51  rstory
-
-   *  include/net-snmp/library/dir_utils.h, snmplib/Makefile.in,   
-      snmplib/dir_utils.c:
-
-   Apple patches
-   - new utility function to read a directory hierarcy into a
-   container
-
-2007-09-12 17:55  rstory
-
-   * include/net-snmp/library/container.h, snmplib/container.c:
-
-   Apple patches
-   - new string compare callback
-
-2007-09-12 17:53  rstory
-
-   *  agent/helpers/cache_handler.c,   
-      include/net-snmp/agent/cache_handler.h:
-
-   Apple patches
-   - new netsnmp_cache_free function
-
-2007-09-12 17:46  rstory
-
-   * snmplib/snmpUDPDomain.c:
-
-   add missing newline in debug msg
-
-2007-09-12 17:42  rstory
-
-   * local/mib2c.container.conf:
-
-   Patches from Apple
-   - add optional cache
-   - check/handle errors for all functions in init func
-   - typedef generated struct
-   - skip processed requests
-   - check for null when extracting row
-
-2007-09-12 17:35  rstory
-
-   * COPYING:
-
-   add new copyright/contributor
-
-2007-09-05 20:12  magfr
-
-   * agent/mibgroup/mibII/system_mib.c:
-
-   Combine system_parse_config_sys{loc,con,name} into one function
-   since they all do the same thing
+     drop obsolete mirrors
 
 2007-08-25 14:24  magfr
 
-   *  agent/mibgroup/notification-log-mib/notification_log.c,   
-      agent/mibgroup/notification-log-mib/notification_log.h:
-
-   Make most of notification_log static. Minimize the header file.
+   * agent/mibgroup/notification-log-mib/notification_log.c,
+     agent/mibgroup/notification-log-mib/notification_log.h:
+     Make most of notification_log static. Minimize the header file.
 
 2007-08-22 21:56  tanders
 
    * agent/agent_registry.c:
-
-   NEWS: agent: suppress annoying "registration != duplicate"
-   warning for root oids
-   (otherwise, you'll get this message on almost every startup)
+     NEWS: agent: suppress annoying "registration != duplicate"
+     warning for root oids
+     (otherwise, you'll get this message on almost every startup)
 
 2007-08-20 08:06  tanders
 
    * snmplib/snmpUDPIPv6Domain.c:
+     NEWS: snmplib: fix potential buffer overflow in sprintf for
+     UDP/IPv6
 
-   NEWS: snmplib: fix potential buffer overflow in sprintf for
-   UDP/IPv6
-
-2007-08-17 09:10  dts12
+2007-08-17 09:08  dts12
 
    * FAQ:
-
-   Subversion, not CVS.
+     Synch with main development (and on-line) FAQ text.
 
 2007-08-17 08:59  dts12
 
    * FAQ:
-
-   Clarify handling of unknown communities
+     Clarify handling of unknown communities
 
 2007-08-16 15:36  dts12
 
    * agent/mibgroup/agent/extend.c:
-
-   Don't just report the problem - it might be sensible to avoid
-   crashing the agent as well!
+     Don't just report the problem - it might be sensible to avoid
+     crashing the agent as well!
 
 2007-08-16 15:35  dts12
 
    * agent/mibgroup/agent/extend.c:
-
-   CHANGES: snmpd: PATCH: 1744157: Report duplicate "extend/exec"
-   identifiers.
+     CHANGES: snmpd: PATCH: 1744157: Report duplicate "extend/exec"
+     identifiers.
 
 2007-08-16 15:24  dts12
 
    * agent/mibgroup/mibII/vacm_conf.c, apps/snmptrapd_ds.h:
-
-   CHANGES: snmptrapd: PATCH: 1746992: Improve snmptrapd
-   access-control error messages.
+     CHANGES: snmptrapd: PATCH: 1746992: Improve snmptrapd
+     access-control error messages.
 
 2007-08-16 14:12  dts12
 
    * agent/mibgroup/util_funcs.c:
-
-   CHANGES: snmpd: PATCH: 1752934: Fix off-by-one qsort error in
-   table utilities.
+     CHANGES: snmpd: PATCH: 1752934: Fix off-by-one qsort error in
+     table utilities.
 
 2007-08-16 13:31  dts12
 
    * agent/snmp_agent.c:
-
-   CHANGES: snmpd: PATCH: 1753437: Fix error index on failing SET
-   requests
+     CHANGES: snmpd: PATCH: 1753437: Fix error index on failing SET
+     requests
 
 2007-08-16 13:25  dts12
 
    * agent/mibgroup/agentx/master.c:
-
-   CHANGES: snmpd: PATCH: 1753449: Fix AgentX error propagation
+     CHANGES: snmpd: PATCH: 1753449: Fix AgentX error propagation
 
 2007-08-16 12:34  dts12
 
    * agent/mibgroup/agentx/subagent.c:
-
-   CHANGES: snmpd: PATCH: 1753463: Fix AgentX subagent ping alarm
-   handling
+     CHANGES: snmpd: PATCH: 1753463: Fix AgentX subagent ping alarm
+     handling
 
 2007-08-16 12:13  dts12
 
    * agent/mibgroup/notification-log-mib/notification_log.c:
-
-   CHANGES: snmpd: PATCH: 1758208: Fix memory leak
+     CHANGES: snmpd: PATCH: 1758208: Fix memory leak
 
 2007-08-16 12:03  dts12
 
    * agent/mibgroup/host/hr_swrun.c:
-
-   CHANGES: snmpd: PATCH: 1774612: More resilient process status
-   handling
+     CHANGES: snmpd: PATCH: 1774612: More resilient process status
+     handling
 
 2007-08-16 11:58  dts12
 
    * snmplib/snmpUDPDomain.c:
-
-   CHANGES: snmplib: PATCH: 1775124: Fix clientaddr functionality
+     CHANGES: snmplib: PATCH: 1775124: Fix clientaddr functionality
 
 2007-08-16 09:38  dts12
 
    * snmplib/parse.c:
-
-   CHANGES: snmplib: PATCH: 1768285: Count MIB files correctly in
-   add_mibdir()
+     CHANGES: snmplib: PATCH: 1768285: Count MIB files correctly in
+     add_mibdir()
 
 2007-08-16 09:35  dts12
 
    * apps/snmptrapd.c:
-
-   CHANGES: snmptrapd: PATCH: 1767725: Close all non standard file
-   handles
+     CHANGES: snmptrapd: PATCH: 1767725: Close all non standard file
+     handles
 
 2007-08-16 09:00  dts12
 
    * agent/mibgroup/disman/expr/expValue.c:
-
-   Declare initialisation routine correctly, and omit unused
-   variables.
-   Patch from Magnus Fromreide.
+     Declare initialisation routine correctly, and omit unused
+     variables.
+     Patch from Magnus Fromreide.
 
 2007-08-16 08:55  dts12
 
    * include/net-snmp/agent/net-snmp-agent-includes.h:
+     Read in agent configuration settings *before* the header
+     files that might rely on them.
+
+2007-08-02 13:46  dts12
 
-   Read in agent configuration settings *before* the header
-   files that might rely on them.
+   * mibs/NET-SNMP-EXAMPLES-MIB.txt:
+     It might be slightly less confusing if the netSnmpExampleString
+     MIB object did actually take string values. Picky, I know....
 
-2007-08-05 16:16  alex_b
+-------------------------------------------------------------------------------
 
-   * win32/dist/README.build.win32.txt, win32/dist/README.txt:
+Changes: V5-4-patches branch created -> V5.4.1
 
-   Change win32 build readme files to CRLF.
+2007-07-27 17:02  hardaker
 
-2007-08-05 14:16  alex_b
+   * FAQ, README, configure, configure.in, dist/net-snmp.spec,
+     sedscript.in, snmplib/snmp_version.c:
+     - version tag ( 5.4.1 )
 
-   * win32/dist/README.build.win32.txt:
+2007-07-27 17:01  hardaker
 
-   Win32: Change build docs to use dynamic (DLL) instead of static.
+   * CHANGES, NEWS:
+     version update
 
-2007-08-02 13:46  dts12
+2007-07-27 16:58  hardaker
 
-   * mibs/NET-SNMP-EXAMPLES-MIB.txt:
+   * ChangeLog:
+     remove bogus empty * lines from the ChangeLog
 
-   It might be slightly less confusing if the netSnmpExampleString
-   MIB object did actually take string values. Picky, I know....
+2007-07-27 16:54  hardaker
 
-2007-07-28 13:02  rstory
+   * ChangeLog:
+     fix version numbers in ChangeLog
+
+2007-07-27 16:54  hardaker
+
+   * ChangeLog:
+     version update
+
+2007-07-27 16:15  hardaker
+
+   * man/netsnmp_agent.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_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_request_info_s.3,
+     man/netsnmp_netsnmp_table_registration_info_s.3,
+     man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,
+     man/netsnmp_util.3, man/netsnmp_utilities.3,
+     man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
+     documentation update
 
-   * dist/svnup:
+2007-07-27 16:13  hardaker
 
-   fix tag extraction; check for empty tag earlier
+   * doxygen.conf:
+     - version tag ( 5.4.1 )
 
 2007-07-25 22:41  tanders
 
    * agent/mibgroup/agentx/subagent.c:
+     CHANGES: snmpd: BUG: 1760633: fix typo in debug message
+
+2007-07-22 00:55  tanders
 
-   CHANGES: snmpd: BUG: 1760633: fix typo in debug message
+   * NEWS:
+     remove duplicate entry
 
-2007-07-21 21:36  tanders
+2007-07-22 00:52  tanders
 
-   * snmplib/snmp_api.c:
+   * NEWS:
+     improve NEWS section for 5.4.1
+
+2007-07-21 16:17  hardaker
+
+   * FAQ, README, configure, configure.in, dist/net-snmp.spec,
+     sedscript.in, snmplib/snmp_version.c:
+     - version tag ( 5.4.1.rc4 )
+
+2007-07-21 16:16  hardaker
+
+   * CHANGES, NEWS:
+     version update
+
+2007-07-21 16:13  hardaker
+
+   * ChangeLog:
+     version update
+
+2007-07-21 15:07  hardaker
+
+   * man/netsnmp_agent.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_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_request_info_s.3,
+     man/netsnmp_netsnmp_table_registration_info_s.3,
+     man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,
+     man/netsnmp_util.3, man/netsnmp_utilities.3,
+     man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
+     documentation update
+
+2007-07-21 15:06  hardaker
+
+   * doxygen.conf:
+     - version tag ( 5.4.1.rc4 )
 
-   CHANGES: snmplib: fix forwarding encoding
+2007-07-21 14:51  hardaker
+
+   * snmplib/snmp_api.c:
+     patch to fix forwarding encoding
 
 2007-07-20 08:21  dts12
 
    * agent/mibgroup/ucd-snmp/extensible.c:
+     Tweak warning message for (old-style, invalid format) "exec OID"
+     directives.
 
-   Tweak warning message for (old-style, invalid format) "exec OID"
-   directives.
+2007-07-19 21:16  tanders
 
-2007-07-16 23:59  hardaker
+   * aclocal.m4, config.guess, config.sub, configure, ltmain.sh:
+     NEWS: build: update to libtool 1.5.24 (from 1.5.22)
+     CHANGES: HP-UX: BUG: 1742278: compile error on HP-UX 11.23 (IA64)
 
-   *  agent/agent_registry.c,   
-      agent/mibgroup/ip-forward-mib/data_access/route_common.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_common.c,   
-      agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/ip.c,   
-      agent/mibgroup/mibII/tcp.c, agent/mibgroup/mibII/udp.c,   
-      snmplib/data_list.c:
+2007-07-19 21:01  dts12
 
-   Apply (correct) patch from Marcus Rueckert to remove asserts
-   using sort-o-illegal C string compares
+   * agent/mibgroup/disman/schedule/schedCore.c, agent/snmpd.c:
+     Check for presence of 'chown' and 'localtime_r' routines before
+     using them.
 
-2007-07-16 23:59  hardaker
+2007-07-19 21:00  dts12
 
-   *  agent/agent_registry.c,   
-      agent/mibgroup/ip-forward-mib/data_access/route_common.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_common.c,   
-      agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/ip.c,   
-      agent/mibgroup/mibII/tcp.c, agent/mibgroup/mibII/udp.c,   
-      snmplib/data_list.c:
+   * configure, configure.in, include/net-snmp/net-snmp-config.h.in,
+     win32/net-snmp/net-snmp-config.h,
+     win32/net-snmp/net-snmp-config.h.in:
+     Configure checks for 'chown' and 'localtime_r' functions
 
-   Remove previous patch which was the wrong version
+2007-07-17 00:20  hardaker
 
-2007-07-16 23:57  hardaker
+   * FAQ, README, configure, configure.in, dist/net-snmp.spec,
+     sedscript.in, snmplib/snmp_version.c:
+     - version tag ( 5.4.1.rc3 )
 
-   *  agent/agent_registry.c,   
-      agent/mibgroup/ip-forward-mib/data_access/route_common.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_common.c,   
-      agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/ip.c,   
-      agent/mibgroup/mibII/tcp.c, agent/mibgroup/mibII/udp.c,   
-      snmplib/data_list.c:
+2007-07-17 00:19  hardaker
 
-   Apply patch from Marcus Rueckert to remove asserts using
-   sort-o-illegal C string compares
+   * ChangeLog:
+     version update
 
-2007-07-13 19:27  hardaker
+2007-07-17 00:17  hardaker
 
-   * dist/makerelease:
+   * man/netsnmp_agent.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_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_request_info_s.3,
+     man/netsnmp_netsnmp_table_registration_info_s.3,
+     man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,
+     man/netsnmp_util.3, man/netsnmp_utilities.3,
+     man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
+     documentation update
+
+2007-07-17 00:16  hardaker
+
+   * doxygen.conf:
+     - version tag ( 5.4.1.rc3 )
+
+2007-07-16 23:59  hardaker
+
+   * agent/agent_registry.c,
+     agent/mibgroup/ip-forward-mib/data_access/route_common.c,
+     agent/mibgroup/ip-mib/data_access/ipaddress_common.c,
+     agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/ip.c,
+     agent/mibgroup/mibII/tcp.c, agent/mibgroup/mibII/udp.c,
+     snmplib/data_list.c:
+     Apply (correct) patch from Marcus Rueckert to remove asserts
+     using sort-o-illegal C string compares
+
+2007-07-16 23:59  hardaker
+
+   * agent/agent_registry.c,
+     agent/mibgroup/ip-forward-mib/data_access/route_common.c,
+     agent/mibgroup/ip-mib/data_access/ipaddress_common.c,
+     agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/ip.c,
+     agent/mibgroup/mibII/tcp.c, agent/mibgroup/mibII/udp.c,
+     snmplib/data_list.c:
+     Remove previous patch which was the wrong version
+
+2007-07-16 23:57  hardaker
 
-   generate zip files
+   * agent/agent_registry.c,
+     agent/mibgroup/ip-forward-mib/data_access/route_common.c,
+     agent/mibgroup/ip-mib/data_access/ipaddress_common.c,
+     agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/ip.c,
+     agent/mibgroup/mibII/tcp.c, agent/mibgroup/mibII/udp.c,
+     snmplib/data_list.c:
+     Apply patch from Marcus Rueckert to remove asserts using
+     sort-o-illegal C string compares
 
 2007-07-12 21:51  tanders
 
    * perl/agent/agent.pm:
-
-   fix subagent example (documentation)
+     fix subagent example (documentation)
 
 2007-07-12 21:27  tanders
 
    * man/snmp_sess_api.3.def:
+     snmp_sess_read returns int, not void
 
-   snmp_sess_read returns int, not void
+2007-07-07 00:17  hardaker
 
-2007-07-06 23:39  hardaker
+   * FAQ, README, configure, configure.in, dist/net-snmp.spec,
+     sedscript.in, snmplib/snmp_version.c:
+     - version tag ( 5.4.1.rc2 )
 
-   * Makefile.rules, Makefile.top:
+2007-07-07 00:17  hardaker
 
-   CHANGES: build: use libtool clean for removing files to ensure we
-   delete all libtool temporary files.
+   * CHANGES:
+     version update
 
-2007-07-06 23:34  hardaker
+2007-07-07 00:13  hardaker
 
-   * dist/patme:
+   * ChangeLog:
+     version update
+
+2007-07-07 00:11  hardaker
+
+   * man/netsnmp_agent.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_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_request_info_s.3,
+     man/netsnmp_netsnmp_table_registration_info_s.3,
+     man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,
+     man/netsnmp_util.3, man/netsnmp_utilities.3,
+     man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
+     documentation update
 
-   use a recursive revert instead of rm/update; remove double / from
-   editing calls
+2007-07-07 00:10  hardaker
+
+   * doxygen.conf:
+     - version tag ( 5.4.1.rc2 )
+
+2007-07-06 23:39  hardaker
+
+   * Makefile.rules, Makefile.top:
+     CHANGES: build: use libtool clean for removing files to ensure we
+     delete all libtool temporary files.
 
 2007-07-06 21:22  rstory
 
    * snmplib/read_config.c:
-
-   stop searching paths when done
+     stop searching paths when done
 
 2007-07-06 21:14  rstory
 
    * agent/mibgroup/if-mib/data_access/interface_linux.c:
-
-   do not free interface entry just because we can not get stats for
-   it
+     do not free interface entry just because we can not get stats for
+     it
 
 2007-07-06 15:32  dts12
 
    * agent/mibgroup/agent/extend.c:
-
-   CHANGES: snmpd: BUG 1745113: Handle single-line (and zero-line)
-   output in UCD compatability mode.
-
-2007-07-06 09:08  dts12
-
-   *  configure, configure.in, snmplib/snmp_client.c,   
-      win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: library: PATCH 1728247: from Mitsuru Chinen: cleans up
-   the int64 type checking and usage for building packets especially
-   under MSVC.
+     CHANGES: snmpd: BUG 1745113: Handle single-line (and zero-line)
+     output in UCD compatability mode.
 
 2007-07-05 14:45  rstory
 
    * ., README.osX:
-
-   r20044 at dhcp211: rstory | 2007-07-05 10:44:01 -0400
-   remove disable-static from recommended options
+     r20044 at dhcp211: rstory | 2007-07-05 10:44:01 -0400
+     remove disable-static from recommended options
 
 2007-07-05 11:05  rstory
 
    * agent/mibgroup/if-mib/data_access/interface_linux.c:
-
-   skip stats parsing on interfaces with no statistics
-
-2007-07-05 11:01  rstory
-
-   * dist/check-api-change:
-
-   check for dir existence
+     skip stats parsing on interfaces with no statistics
 
 2007-07-04 23:26  tanders
 
    * agent/Makefile.in, apps/Makefile.in:
-
-   CHANGES: perl: install embedded perl init files for
-   snmpd/snmptrapd with mode 644 instead of 755
+     CHANGES: perl: install embedded perl init files for
+     snmpd/snmptrapd with mode 644 instead of 755
 
 2007-07-04 21:42  tanders
 
    * README.osX:
+     Perl problems (believed to be) fixed
 
-   Perl problems (believed to be) fixed
+2007-07-03 22:36  hardaker
+
+   * configure, configure.in, include/net-snmp/net-snmp-config.h.in,
+     include/net-snmp/types.h, snmplib/snmp_client.c,
+     win32/net-snmp/net-snmp-config.h,
+     win32/net-snmp/net-snmp-config.h.in:
+     CHANGES: library: Patch from "Mitsuru Chinen": cleans up the
+     int64 type checking and usage for building packets especially
+     under MSVC.
 
 2007-07-03 12:56  tanders
 
    * perl/agent/Support/Support.pm:
-
-   remove executable flag from SVN properties
-
-2007-07-02 06:53  magfr
-
-   * apps/snmptrapd.c, apps/snmpvacm.c:
-
-   Remove unused oid declarations
+     remove executable flag from SVN properties
 
 2007-07-02 06:02  magfr
 
    * agent/mibgroup/disman/event/mteEvent.c:
-
-   Add missing return value to _mteEvent_fire_notify.
+     Add missing return value to _mteEvent_fire_notify.
 
 2007-07-02 05:31  magfr
 
    * agent/mibgroup/tcp-mib/data_access/tcpConn_common.c:
+     Remove the declaration of an undefined static function.
 
-   Remove the declaration of an undefined static function.
+2007-07-01 19:59  tanders
 
-2007-07-01 20:32  tanders
-
-   * dist/nsb-nightly, dist/nsb-package:
-
-   make getopts work on Tru64 by respawning in Posix mode
-
-2007-07-01 19:56  tanders
+   * configure, configure.in:
+     minor help text formatting fix
 
-   *  agent/Makefile.in, apps/Makefile.in, configure, configure.in,   
-      net-snmp-config.in:
+2007-06-30 05:34  tanders
 
-   CHANGES: build: --disable-as-needed now allows to revert to the
-   former default behaviour of linking libperl to applications
-   rather than Net-SNMP Libraries (in case of any problems)
+   * dist/net-snmp.spec:
+     add --enable-as-needed if building with embedded Perl support
 
-2007-06-30 06:17  hardaker
+2007-06-30 04:37  hardaker
 
-   * dist/makerelease:
+   * FAQ, README, configure, configure.in, dist/net-snmp.spec,
+     sedscript.in, snmplib/snmp_version.c:
+     - version tag ( 5.4.1.rc1 )
 
-   actually call removefiles
+2007-06-30 04:37  hardaker
 
-2007-06-28 23:50  magfr
+   * CHANGES, NEWS:
+     version update
 
-   * include/net-snmp/library/snmp_debug.h:
+2007-06-30 04:36  hardaker
 
-   NEWS: snmplib: Added GCC format checking attributes to the debug
-   functions.
+   * ChangeLog:
+     version update
 
-2007-06-28 23:37  magfr
+2007-06-30 04:34  hardaker
 
-   * agent/mibgroup/host/hr_disk.c, agent/mibgroup/host/hr_system.c:
+   * man/netsnmp_agent.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_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_request_info_s.3,
+     man/netsnmp_netsnmp_table_registration_info_s.3,
+     man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,
+     man/netsnmp_util.3, man/netsnmp_utilities.3,
+     man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
+     documentation update
 
-   Remove casts of unused values
+2007-06-30 04:32  hardaker
 
-2007-06-28 23:36  magfr
+   * doxygen.conf:
+     - version tag ( 5.4.1.rc1 )
 
-   *  agent/mibgroup/agentx/protocol.c,   
-      agent/mibgroup/host/hr_storage.c:
+2007-06-29 22:18  tanders
 
-   Remove unused variables
+   * README.aix, README.irix, README.solaris, agent/Makefile.in,
+     apps/Makefile.in, configure, configure.in, net-snmp-config.in:
+     NEWS: perl: BUG: 1619827: link libnetsnmpagent/libnetsnmptrapd
+     (rather than snmpd/snmptrapd) against libperl when configured
+     with --enable-as-needed
 
 2007-06-28 22:09  tanders
 
    * net-snmp-config.in:
-
-   rename last occurence of DEFAULT_MIB[DIR]S to
-   NETSNMP_DEFAULT_MIB[DIR]S
-
-2007-06-28 08:15  magfr
-
-   * apps/snmptrapd_handlers.c:
-
-   Do not transform the ignored result of realloc_format_trap
+     rename last occurence of DEFAULT_MIB[DIR]S to
+     NETSNMP_DEFAULT_MIB[DIR]S
 
 2007-06-26 22:12  tanders
 
    * apps/Makefile.in:
-
-   CHANGES: build: work around libnetsnmpagent/libnetsnmphelpers
-   dependency issues when linking snmptrapd
+     CHANGES: build: work around libnetsnmpagent/libnetsnmphelpers
+     dependency issues when linking snmptrapd
 
 2007-06-26 21:45  tanders
 
    * agent/Makefile.in, agent/helpers/Makefile.in:
-
-   CHANGES: build: use LDFLAGS when building agent, helpers and mib
-   lib to be consistent with libnetnmp
+     CHANGES: build: use LDFLAGS when building agent, helpers and mib
+     lib to be consistent with libnetnmp
 
 2007-06-26 21:28  tanders
 
    * INSTALL:
-
-   minor updates
-
-2007-06-26 15:10  rstory
-
-   * apps/snmptrapd.c, apps/snmptrapd_handlers.c:
-
-   don't initialize var in extern decl; instead, initialize actual
-   var
-
-2007-06-25 21:29  tanders
-
-   * aclocal.m4, config.guess, config.sub, configure, ltmain.sh:
-
-   NEWS: build: update to libtool 1.5.24 (from 1.5.22)
+     minor updates
 
 2007-06-24 12:57  tanders
 
-   *  acconfig.h, configure, configure.in,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   HAVE_SSIZE_T cleanup
+   * acconfig.h, configure, configure.in,
+     include/net-snmp/net-snmp-config.h.in:
+     HAVE_SSIZE_T cleanup
 
 2007-06-23 22:56  tanders
 
    * README.hpux11:
+     don't suggest --with-libs=-lnm
 
-   don't suggest --with-libs=-lnm
-
-2007-06-22 15:05  dts12
-
-   *  win32/encode_keychange/encode_keychange.dsp,   
-      win32/libagent/libagent.dsp, win32/libhelpers/libhelpers.dsp,   
-      win32/libnetsnmptrapd/libnetsnmptrapd.dsp, win32/libsdll.dsw,   
-      win32/libsnmp/libsnmp.dsp, win32/libsnmp_dll/libsnmp_dll.dsp,   
-      win32/netsnmpmibs/netsnmpmibs.dsp,   
-      win32/netsnmpmibssdk/netsnmpmibssdk.dsp,   
-      win32/snmpbulkget/snmpbulkget.dsp,   
-      win32/snmpbulkwalk/snmpbulkwalk.dsp, win32/snmpd/snmpd.dsp,   
-      win32/snmpdelta/snmpdelta.dsp, win32/snmpdf/snmpdf.dsp,   
-      win32/snmpdsdk/snmpd.dsp, win32/snmpget/snmpget.dsp,   
-      win32/snmpgetnext/snmpgetnext.dsp,   
-      win32/snmpnetstat/snmpnetstat.dsp, win32/snmpset/snmpset.dsp,   
-      win32/snmpstatus/snmpstatus.dsp, win32/snmptable/snmptable.dsp,   
-      win32/snmptest/snmptest.dsp,   
-      win32/snmptranslate/snmptranslate.dsp,   
-      win32/snmptrap/snmptrap.dsp, win32/snmptrapd/snmptrapd.dsp,   
-      win32/snmpusm/snmpusm.dsp, win32/snmpvacm/snmpvacm.dsp,   
-      win32/snmpwalk/snmpwalk.dsp, win32/win32.dsw, win32/win32sdk.dsw:
-
-   Enforce DOS-style line endings, to keep Visual Studio happy.
-
-2007-06-21 14:01  rstory
+2007-06-22 15:09  dts12
 
-   *  include/net-snmp/system/freebsd.h,   
-      include/net-snmp/system/openbsd.h,   
-      include/net-snmp/system/solaris.h:
-
-   default to using ifTable rewrites
+   * win32/encode_keychange/encode_keychange.dsp,
+     win32/libagent/libagent.dsp, win32/libhelpers/libhelpers.dsp,
+     win32/libnetsnmptrapd/libnetsnmptrapd.dsp, win32/libsdll.dsw,
+     win32/libsnmp/libsnmp.dsp, win32/libsnmp_dll/libsnmp_dll.dsp,
+     win32/netsnmpmibs/netsnmpmibs.dsp,
+     win32/netsnmpmibssdk/netsnmpmibssdk.dsp,
+     win32/snmpbulkget/snmpbulkget.dsp,
+     win32/snmpbulkwalk/snmpbulkwalk.dsp, win32/snmpd/snmpd.dsp,
+     win32/snmpdelta/snmpdelta.dsp, win32/snmpdf/snmpdf.dsp,
+     win32/snmpdsdk/snmpd.dsp, win32/snmpget/snmpget.dsp,
+     win32/snmpgetnext/snmpgetnext.dsp,
+     win32/snmpnetstat/snmpnetstat.dsp, win32/snmpset/snmpset.dsp,
+     win32/snmpstatus/snmpstatus.dsp, win32/snmptable/snmptable.dsp,
+     win32/snmptest/snmptest.dsp,
+     win32/snmptranslate/snmptranslate.dsp,
+     win32/snmptrap/snmptrap.dsp, win32/snmptrapd/snmptrapd.dsp,
+     win32/snmpusm/snmpusm.dsp, win32/snmpvacm/snmpvacm.dsp,
+     win32/snmpwalk/snmpwalk.dsp, win32/win32.dsw, win32/win32sdk.dsw:
+     Enforce DOS-style line endings, to keep Visual Studio happy.
 
 2007-06-20 21:34  tanders
 
-   *  agent/mibgroup/if-mib/data_access/interface_openbsd.c,   
-      agent/mibgroup/if-mib/data_access/interface_sysctl.c:
-
-   fix typo
+   * agent/mibgroup/if-mib/data_access/interface_sysctl.c:
+     fix typo
 
 2007-06-19 22:23  tanders
 
    * configure, configure.in:
-
-   fix Perl-related autoconf messages
+     fix Perl-related autoconf messages
 
 2007-06-19 15:08  tanders
 
    * dist/net-snmp.spec:
-
-   CHANGES: build: add "BuildRequires: perl-ExtUtils-Embed" to the
-   spec file, e.g. for Fedora 7
+     CHANGES: build: add "BuildRequires: perl-ExtUtils-Embed" to the
+     spec file, e.g. for Fedora 7
 
 2007-06-18 22:28  hardaker
 
    * perl/SNMP/SNMP.xs:
+     fix broken comment.
+
+2007-06-18 22:04  hardaker
+
+   * FAQ, README, configure, configure.in, dist/net-snmp.spec,
+     sedscript.in, snmplib/snmp_version.c:
+     - version tag ( 5.4.1.pre3 )
+
+2007-06-18 22:03  hardaker
+
+   * CHANGES, NEWS:
+     version update
 
-   fix broken comment.
+2007-06-18 21:57  hardaker
+
+   * ChangeLog:
+     version update
 
 2007-06-18 21:54  hardaker
 
    * agent/helpers/Makefile.in:
+     revert double linking of libnetsmnp part of patch that was
+     supposed to be pulled bofer applying in r16538 (thanks tanders
+     for catching it)
+
+2007-06-18 21:48  hardaker
+
+   * agent/mibgroup/Makefile.depend:
+     make depend
+
+2007-06-18 21:47  hardaker
+
+   * man/netsnmp_agent.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_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_request_info_s.3,
+     man/netsnmp_netsnmp_table_registration_info_s.3,
+     man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,
+     man/netsnmp_util.3, man/netsnmp_utilities.3,
+     man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
+     documentation update
+
+2007-06-18 21:46  hardaker
 
-   revert double linking of libnetsmnp part of patch that was
-   supposed to be pulled bofer applying in r16538 (thanks tanders
-   for catching it)
+   * doxygen.conf:
+     - version tag ( 5.4.1.pre3 )
 
 2007-06-18 21:34  hardaker
 
    * agent/helpers/Makefile.in, apps/Makefile.in, snmplib/Makefile.in:
-
-   CHANGES: build: patch from apple to simplify makefile target
-   references in some rules.
+     CHANGES: build: patch from apple to simplify makefile target
+     references in some rules.
 
 2007-06-18 21:17  hardaker
 
    * man/snmp_config.5.def, man/snmpget.1.def:
-
-   CHANGES: patch from apple to fix minor documentation bugs.
+     CHANGES: patch from apple to fix minor documentation bugs.
 
 2007-06-18 21:13  hardaker
 
-   *  agent/mibgroup/if-mib/data_access/interface.h,   
-      include/net-snmp/system/darwin9.h:
-
-   
+   * agent/mibgroup/if-mib/data_access/interface.h,
+     include/net-snmp/system/darwin9.h:
+     
 
 2007-06-18 21:12  hardaker
 
    * agent/mibgroup/hardware/memory/memory_darwin.c:
-
-   CHANGES: patch from apple to improve memory reporting
+     CHANGES: patch from apple to improve memory reporting
 
 2007-06-18 21:09  hardaker
 
    * include/net-snmp/system/darwin9.h:
-
-   CHANGES: patch from apple to fix cross-compile builds in apples
-   build environment.
+     CHANGES: patch from apple to fix cross-compile builds in apples
+     build environment.
 
 2007-06-18 20:54  hardaker
 
    * snmplib/snmp_parse_args.c:
-
-   CHANGES: patch: 1737085: from jsafranek: fix the -M switch for
-   mib parsing by loading defaults first before performing the set
-   so it does not get overwritten by the defaults later.
+     CHANGES: patch: 1737085: from jsafranek: fix the -M switch for
+     mib parsing by loading defaults first before performing the set
+     so it does not get overwritten by the defaults later.
 
 2007-06-18 20:50  hardaker
 
    * perl/SNMP/SNMP.xs:
-
-   NEWS: perl: patch: 1725049: fix bulkwalk in cases of non-repeater
-   usage.
+     NEWS: perl: patch: 1725049: fix bulkwalk in cases of non-repeater
+     usage.
 
 2007-06-18 14:10  tanders
 
    * perl/TrapReceiver/Makefile.PL:
-
-   CHANGES: perl: fix prerequisites for NetSNMP::TrapReceiver
+     CHANGES: perl: fix prerequisites for NetSNMP::TrapReceiver
 
 2007-06-18 13:39  tanders
 
    * perl/agent/Support/Support.pm:
-
-   CHANGES: perl: fix syntax error in NetSNMP::agent::Support
-
-2007-06-16 23:01  tanders
-
-   *  agent/Makefile.in, apps/Makefile.in, configure, configure.in,   
-      net-snmp-config.in:
-
-   NEWS: perl: BUG: 1619827: link libnetsnmpagent/libnetsnmptrapd
-   (rather than snmpd/snmptrapd) against libperl.
+     CHANGES: perl: fix syntax error in NetSNMP::agent::Support
 
 2007-06-14 15:41  rstory
 
    * local/mib2c.conf:
-
-   fix typo in user output, as noted on coders
-
-2007-06-14 15:36  rstory
-
-   * dist/cvsshow:
-
-   use 'svn info' to query for url
+     fix typo in user output, as noted on coders
 
 2007-06-14 04:37  magfr
 
    * agent/mibgroup/smux/smux.h:
-
-   Add missing argument type in order to silence a gcc warning
-
-2007-06-13 06:37  magfr
-
-   * configure, configure.in:
-
-   Do not try to be clever in the handing of -lkvm in LAGENTLIBS.
-   Include it if any sought function is in it.
+     Add missing argument type in order to silence a gcc warning
 
 2007-06-11 10:11  tanders
 
    * README.aix:
-
-   document xlc<->cc_r compiler issues with Perl on AIX (see bug
-   #1600099)
+     document xlc<->cc_r compiler issues with Perl on AIX (see bug
+     #1600099)
 
 2007-06-10 22:29  tanders
 
-   *  configure, configure.in, include/net-snmp/net-snmp-config.h.in,   
-      include/net-snmp/types.h:
-
-   CHANGES: build: PATCH: 1728247: from mitsuru_chinen: Add type
-   check for int??_t and uint??_t
+   * configure, configure.in, include/net-snmp/net-snmp-config.h.in,
+     include/net-snmp/types.h:
+     CHANGES: build: PATCH: 1728247: from mitsuru_chinen: Add type
+     check for int??_t and uint??_t
 
 2007-06-10 22:22  tanders
 
-   *  configure, configure.in, include/net-snmp/net-snmp-config.h.in,   
-      snmplib/snmpUDPIPv6Domain.c:
-
-   CHANGES: build: PATCH: 1728244: from mitsuru_chinen: Add
-   configure check for sin6_scope_id
+   * configure, configure.in, include/net-snmp/net-snmp-config.h.in,
+     snmplib/snmpUDPIPv6Domain.c:
+     CHANGES: build: PATCH: 1728244: from mitsuru_chinen: Add
+     configure check for sin6_scope_id
 
 2007-06-10 22:15  tanders
 
-   *  configure, configure.in, include/net-snmp/net-snmp-config.h.in,   
-      snmplib/snmpUDPDomain.c:
-
-   CHANGES: PATCH: 1728241: from mitsuru_chinen: add configure check
-   for <sys/uio.h> (make sure iov structure is declared)
-
-2007-06-10 06:33  magfr
-
-   *  acconfig.h, configure, configure.in,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   Use NETSNMP_SEARCH_LIBS to simplify searching for system specific
-   libraries
-
-2007-06-10 06:26  magfr
-
-   * configure, configure.in:
-
-   Use NETSNMP_SEARCH_LIBS to simplify searching for -lsensors
-
-2007-06-10 06:18  magfr
-
-   *  acconfig.h, configure, configure.in,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   Use NETSNMP_SEARCH_LIBS to simplify searching for -ldevstat
-
-2007-06-10 06:13  magfr
-
-   *  agent/mibgroup/ucd-snmp/dlmod.c, configure, configure.in,   
-      include/net-snmp/net-snmp-config.h.in,   
-      win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   Use NETSNMP_SEARCH_LIBS to simplify searching for -ldl
-
-2007-06-09 08:58  magfr
-
-   *  configure, configure.in, include/net-snmp/net-snmp-config.h.in,   
-      win32/config.h.borland, win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   Use NETSNMP_SEARCH_LIBS to simplify searching for -lkvm
+   * configure, configure.in, include/net-snmp/net-snmp-config.h.in,
+     snmplib/snmpUDPDomain.c:
+     CHANGES: PATCH: 1728241: from mitsuru_chinen: add configure check
+     for <sys/uio.h> (make sure iov structure is declared)
 
 2007-06-08 20:32  tanders
 
-   * Makefile.in, dist/makerelease:
-
-   Fix regression introduced by r16479: 'make test TESTOPTS="-T
-   tcp"' now
-   works again. makerelease now uses the right option.
-
-2007-06-08 10:46  dts12
-
-   * apps/snmptrapd.c, apps/snmptrapd_handlers.c:
-
-   CHANGES: snmptrapd: FEATURE: 741375: Extend -F flag to cover
-   syslog/execute format strings.
+   * Makefile.in:
+     Fix regression introduced by r16479: 'make test TESTOPTS="-T
+     tcp"' now
+     works again. makerelease now uses the right option.
 
 2007-06-08 10:44  dts12
 
-   * apps/snmptrapd_handlers.c:
-
-   Improve memory handling of style-specific format strings.
+   * apps/snmptrapd.c, apps/snmptrapd_handlers.c:
+     Improve memory handling of style-specific format strings.
 
 2007-06-08 10:33  dts12
 
    * agent/mibgroup/host/hr_storage.c:
-
-   Default to reporting NFS mounts as NetworkDisk.
-
-2007-06-08 06:02  magfr
-
-   *  configure, configure.in, include/net-snmp/net-snmp-config.h.in,   
-      win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   Use NETSNMP_SEARCH_LIBS to simplify searching for -lrpm and
-   things it depends
-   on
-
-2007-06-08 05:59  magfr
-
-   * agent/helpers/Makefile.in:
-
-   Add missing \
-
-2007-06-08 05:31  magfr
-
-   * configure, configure.in:
-
-   Use NETSNMP_SEARCH_LIBS to simplify searching for -lkstat
-
-2007-06-08 05:28  magfr
-
-   * acinclude.m4:
-
-   CHANGES: building: Add a variation of AC_SEARCH_LIBS where the
-   result variable is settable.
+     Default to reporting NFS mounts as NetworkDisk.
 
 2007-06-08 05:16  magfr
 
-   *  win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   Remove the unused undef HAVE_PERL_EVAL_PV.
-   The Perl_eval_pv functions are handled by the
-   HAVE_PERL_EVAL_PV_[UL]C defines,
-   this one is never set by our configure script.
+   * acconfig.h, include/net-snmp/net-snmp-config.h.in,
+     win32/net-snmp/net-snmp-config.h,
+     win32/net-snmp/net-snmp-config.h.in:
+     Remove the unused undef HAVE_PERL_EVAL_PV.
+     The Perl_eval_pv functions are handled by the
+     HAVE_PERL_EVAL_PV_[UL]C defines,
+     this one is never set by our configure script.
 
 2007-06-07 16:02  dts12
 
-   *  .cvsignore, agent/.cvsignore, agent/helpers/.cvsignore,   
-      agent/mibgroup/.cvsignore, agent/mibgroup/Rmon/.cvsignore,   
-      agent/mibgroup/agent/.cvsignore,   
-      agent/mibgroup/agentx/.cvsignore,   
-      agent/mibgroup/disman/.cvsignore,   
-      agent/mibgroup/disman/event/.cvsignore,   
-      agent/mibgroup/disman/expr/.cvsignore,   
-      agent/mibgroup/disman/schedule/.cvsignore,   
-      agent/mibgroup/examples/.cvsignore,   
-      agent/mibgroup/hardware/cpu/.cvsignore,   
-      agent/mibgroup/hardware/memory/.cvsignore,   
-      agent/mibgroup/host/.cvsignore,   
-      agent/mibgroup/if-mib/data_access/.cvsignore,   
-      agent/mibgroup/if-mib/ifTable/.cvsignore,   
-      agent/mibgroup/if-mib/ifXTable/.cvsignore,   
-      agent/mibgroup/ip-forward-mib/data_access/.cvsignore,   
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/.cvsignore,   
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/.cvsignore,   
-      agent/mibgroup/ip-mib/.cvsignore,   
-      agent/mibgroup/ip-mib/data_access/.cvsignore,   
-      agent/mibgroup/ip-mib/inetNetToMediaTable/.cvsignore,   
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/.cvsignore,   
-      agent/mibgroup/ip-mib/ipAddressTable/.cvsignore,   
-      agent/mibgroup/ip-mib/ipSystemStatsTable/.cvsignore,   
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/.cvsignore,   
-      agent/mibgroup/ip-mib/ipv6InterfaceTable/.cvsignore,   
-      agent/mibgroup/ipfwchains/.cvsignore,   
-      agent/mibgroup/mibII/.cvsignore, agent/mibgroup/misc/.cvsignore,  
-       agent/mibgroup/notification-log-mib/.cvsignore,   
-      agent/mibgroup/notification/.cvsignore,   
-      agent/mibgroup/smux/.cvsignore,   
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/.cvsignore,
-        
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHParameters/.cvsignore,
-        
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/.cvsignore,
-         agent/mibgroup/snmpv3/.cvsignore,   
-      agent/mibgroup/target/.cvsignore,   
-      agent/mibgroup/tcp-mib/data_access/.cvsignore,   
-      agent/mibgroup/tcp-mib/tcpConnectionTable/.cvsignore,   
-      agent/mibgroup/tcp-mib/tcpListenerTable/.cvsignore,   
-      agent/mibgroup/ucd-snmp/.cvsignore,   
-      agent/mibgroup/udp-mib/data_access/.cvsignore,   
-      agent/mibgroup/udp-mib/udpEndpointTable/.cvsignore,   
-      agent/mibgroup/utilities/.cvsignore, apps/.cvsignore,   
-      apps/snmpnetstat/.cvsignore, dist/.cvsignore,   
-      include/net-snmp/.cvsignore, include/net-snmp/agent/.cvsignore,   
-      include/net-snmp/library/.cvsignore, include/ucd-snmp/.cvsignore, 
-        local/.cvsignore, man/.cvsignore, mibs/.cvsignore,
-      ov/.cvsignore,    perl/.cvsignore, perl/ASN/.cvsignore,   
-      perl/AnyData_SNMP/.cvsignore, perl/OID/.cvsignore,   
-      perl/SNMP/.cvsignore, perl/SNMP/t/.cvsignore,   
-      perl/TrapReceiver/.cvsignore, perl/agent/.cvsignore,   
-      perl/agent/Support/.cvsignore,   
-      perl/agent/default_store/.cvsignore,   
-      perl/default_store/.cvsignore, perl/manager/.cvsignore,   
-      snmplib/.cvsignore, testing/.cvsignore, win32/.cvsignore,   
-      win32/bin/.cvsignore, win32/encode_keychange/.cvsignore,   
-      win32/lib/.cvsignore, win32/libagent/.cvsignore,   
-      win32/libhelpers/.cvsignore, win32/libnetsnmptrapd/.cvsignore,   
-      win32/libsnmp/.cvsignore, win32/libsnmp_dll/.cvsignore,   
-      win32/libucdmibs/.cvsignore, win32/net-snmp/.cvsignore,   
-      win32/net-snmp/agent/.cvsignore,   
-      win32/net-snmp/library/.cvsignore, win32/netsnmpmibs/.cvsignore,  
-       win32/netsnmpmibssdk/.cvsignore, win32/snmpbulkget/.cvsignore,   
-      win32/snmpbulkwalk/.cvsignore, win32/snmpd/.cvsignore,   
-      win32/snmpdelta/.cvsignore, win32/snmpdf/.cvsignore,   
-      win32/snmpdsdk/.cvsignore, win32/snmpget/.cvsignore,   
-      win32/snmpgetnext/.cvsignore, win32/snmpnetstat/.cvsignore,   
-      win32/snmpset/.cvsignore, win32/snmpstatus/.cvsignore,   
-      win32/snmptable/.cvsignore, win32/snmptest/.cvsignore,   
-      win32/snmptranslate/.cvsignore, win32/snmptrap/.cvsignore,   
-      win32/snmptrapd/.cvsignore, win32/snmpusm/.cvsignore,   
-      win32/snmpvacm/.cvsignore, win32/snmpwalk/.cvsignore:
-
-   Remove redundant CVS-admin files.
+   * .cvsignore, agent/.cvsignore, agent/helpers/.cvsignore,
+     agent/mibgroup/.cvsignore, agent/mibgroup/Rmon/.cvsignore,
+     agent/mibgroup/agent/.cvsignore,
+     agent/mibgroup/agentx/.cvsignore,
+     agent/mibgroup/disman/.cvsignore,
+     agent/mibgroup/disman/event/.cvsignore,
+     agent/mibgroup/disman/expr/.cvsignore,
+     agent/mibgroup/disman/schedule/.cvsignore,
+     agent/mibgroup/examples/.cvsignore,
+     agent/mibgroup/hardware/cpu/.cvsignore,
+     agent/mibgroup/hardware/memory/.cvsignore,
+     agent/mibgroup/host/.cvsignore,
+     agent/mibgroup/if-mib/data_access/.cvsignore,
+     agent/mibgroup/if-mib/ifTable/.cvsignore,
+     agent/mibgroup/if-mib/ifXTable/.cvsignore,
+     agent/mibgroup/ip-forward-mib/data_access/.cvsignore,
+     agent/mibgroup/ip-forward-mib/inetCidrRouteTable/.cvsignore,
+     agent/mibgroup/ip-forward-mib/ipCidrRouteTable/.cvsignore,
+     agent/mibgroup/ip-mib/.cvsignore,
+     agent/mibgroup/ip-mib/data_access/.cvsignore,
+     agent/mibgroup/ip-mib/inetNetToMediaTable/.cvsignore,
+     agent/mibgroup/ip-mib/ipAddressPrefixTable/.cvsignore,
+     agent/mibgroup/ip-mib/ipAddressTable/.cvsignore,
+     agent/mibgroup/ip-mib/ipSystemStatsTable/.cvsignore,
+     agent/mibgroup/ip-mib/ipv4InterfaceTable/.cvsignore,
+     agent/mibgroup/ip-mib/ipv6InterfaceTable/.cvsignore,
+     agent/mibgroup/ipfwchains/.cvsignore,
+     agent/mibgroup/mibII/.cvsignore, agent/mibgroup/misc/.cvsignore,
+     agent/mibgroup/notification-log-mib/.cvsignore,
+     agent/mibgroup/notification/.cvsignore,
+     agent/mibgroup/smux/.cvsignore,
+     agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/.cvsignore,
+     agent/mibgroup/snmp-usm-dh-objects-mib/usmDHParameters/.cvsignore,
+     agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/.cvsignore,
+     agent/mibgroup/snmpv3/.cvsignore,
+     agent/mibgroup/target/.cvsignore,
+     agent/mibgroup/tcp-mib/data_access/.cvsignore,
+     agent/mibgroup/tcp-mib/tcpConnectionTable/.cvsignore,
+     agent/mibgroup/tcp-mib/tcpListenerTable/.cvsignore,
+     agent/mibgroup/ucd-snmp/.cvsignore,
+     agent/mibgroup/udp-mib/data_access/.cvsignore,
+     agent/mibgroup/udp-mib/udpEndpointTable/.cvsignore,
+     agent/mibgroup/utilities/.cvsignore, apps/.cvsignore,
+     apps/snmpnetstat/.cvsignore, dist/.cvsignore,
+     include/net-snmp/.cvsignore, include/net-snmp/agent/.cvsignore,
+     include/net-snmp/library/.cvsignore, include/ucd-snmp/.cvsignore,
+     local/.cvsignore, man/.cvsignore, mibs/.cvsignore, ov/.cvsignore,
+     perl/.cvsignore, perl/ASN/.cvsignore,
+     perl/AnyData_SNMP/.cvsignore, perl/OID/.cvsignore,
+     perl/SNMP/.cvsignore, perl/SNMP/t/.cvsignore,
+     perl/TrapReceiver/.cvsignore, perl/agent/.cvsignore,
+     perl/agent/Support/.cvsignore,
+     perl/agent/default_store/.cvsignore,
+     perl/default_store/.cvsignore, perl/manager/.cvsignore,
+     snmplib/.cvsignore, testing/.cvsignore, win32/.cvsignore,
+     win32/bin/.cvsignore, win32/encode_keychange/.cvsignore,
+     win32/lib/.cvsignore, win32/libagent/.cvsignore,
+     win32/libhelpers/.cvsignore, win32/libnetsnmptrapd/.cvsignore,
+     win32/libsnmp/.cvsignore, win32/libsnmp_dll/.cvsignore,
+     win32/libucdmibs/.cvsignore, win32/net-snmp/.cvsignore,
+     win32/net-snmp/agent/.cvsignore,
+     win32/net-snmp/library/.cvsignore, win32/netsnmpmibs/.cvsignore,
+     win32/netsnmpmibssdk/.cvsignore, win32/snmpbulkget/.cvsignore,
+     win32/snmpbulkwalk/.cvsignore, win32/snmpd/.cvsignore,
+     win32/snmpdelta/.cvsignore, win32/snmpdf/.cvsignore,
+     win32/snmpdsdk/.cvsignore, win32/snmpget/.cvsignore,
+     win32/snmpgetnext/.cvsignore, win32/snmpnetstat/.cvsignore,
+     win32/snmpset/.cvsignore, win32/snmpstatus/.cvsignore,
+     win32/snmptable/.cvsignore, win32/snmptest/.cvsignore,
+     win32/snmptranslate/.cvsignore, win32/snmptrap/.cvsignore,
+     win32/snmptrapd/.cvsignore, win32/snmpusm/.cvsignore,
+     win32/snmpvacm/.cvsignore, win32/snmpwalk/.cvsignore:
+     Remove redundant CVS-admin files.
 
 2007-06-07 12:56  dts12
 
    * snmplib/snmp_secmod.c:
-
-   Handle unregistering the first Security Model in the list.
-   Reported by Aleksandr Lomanov.
+     Handle unregistering the first Security Model in the list.
+     Reported by Aleksandr Lomanov.
 
 2007-06-07 09:13  dts12
 
    * agent/helpers/Makefile.in:
-
-   Install header files for stash_cache and stash_to_next helpers.
+     Install header files for stash_cache and stash_to_next helpers.
 
 2007-06-07 09:07  dts12
 
    * agent/helpers/Makefile.in:
-
-   Separate out header files that don't have a corresponding C
-   source file.
+     Separate out header files that don't have a corresponding C
+     source file.
 
 2007-06-07 08:59  dts12
 
    * agent/helpers/Makefile.in:
-
-   Sort lists of helpers (source code, object files and headers).
-   This should make it easier to spot files that have been omitted.
+     Sort lists of helpers (source code, object files and headers).
+     This should make it easier to spot files that have been omitted.
 
 2007-06-07 08:42  dts12
 
    * snmplib/read_config.c:
-
-   Protect against systems without S_ISDIR.
-
-2007-06-06 22:36  magfr
-
-   * configure, configure.in:
-
-   We aren't using libtools dlopen support, so there is no need to
-   configure for it
+     Protect against systems without S_ISDIR.
 
 2007-06-06 12:37  tanders
 
    * configure, configure.in:
-
-   CHANGES: AIX: use "-Wl,-brtl" when compiling with gcc
-
-2007-06-06 10:26  magfr
-
-   * acconfig.h, include/net-snmp/net-snmp-config.h.in:
-
-   Remove the unused undef HAVE_PERL_EVAL_PV.
-   The Perl_eval_pv functions are handled by the
-   HAVE_PERL_EVAL_PV_[UL]C defines,
-   this one is never set by our configure script.
+     CHANGES: AIX: use "-Wl,-brtl" when compiling with gcc
 
 2007-06-06 10:20  dts12
 
    * apps/snmptrapd.c:
-
-   Ensure output is properly directed to syslog.
-   Otherwise, problems in the config environment can trigger
-   errors being directed to stderr, and subsequent logging
-   output gets lost.
+     Ensure output is properly directed to syslog.
+     Otherwise, problems in the config environment can trigger
+     errors being directed to stderr, and subsequent logging
+     output gets lost.
 
 2007-06-06 10:13  dts12
 
    * snmplib/snmp_client.c:
-
-   More helpful debugging output.
+     More helpful debugging output.
 
 2007-06-06 05:53  magfr
 
-   *  apps/snmptrapd.c, apps/snmptrapd_handlers.c,   
-      testing/tests/T035snmpv3trapdusermgmt:
-
-   CHANGES: misc: Don't use the legacy symbol
-   SNMPTRAPD_DISABLE_AGENTX
-
-2007-06-05 17:49  magfr
-
-   * acconfig.h, include/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: building: Remove explicit definitions of items that
-   autoheader also defines
+   * apps/snmptrapd.c, apps/snmptrapd_handlers.c,
+     testing/tests/T035snmpv3trapdusermgmt:
+     CHANGES: misc: Don't use the legacy symbol
+     SNMPTRAPD_DISABLE_AGENTX
 
 2007-06-05 15:59  dts12
 
    * agent/mibgroup/disman/event/mteEvent.c:
+     CHANGES: snmpd: PATCHES: 1729629: Fix memory leak in disman
+     agent.
 
-   CHANGES: snmpd: PATCHES: 1729629: Fix memory leak in disman
-   agent.
+2007-06-04 22:06  magfr
 
-2007-06-05 14:52  dts12
+   * snmplib/snmp_api.c:
+     NEWS: snmplib: Change snmp_sess_add_ex to consistently close and
+     delete the transport argument on failure, earlier the liveness of
+     the transport argument was undecided.
 
-   * apps/snmptrapd_handlers.c:
+2007-06-04 15:50  hardaker
 
-   CHANGES: snmptrapd: Support per-trap format specifications
+   * FAQ, README, configure, configure.in, dist/net-snmp.spec,
+     sedscript.in, snmplib/snmp_version.c:
+     - version tag ( 5.4.1.pre2 )
 
-2007-06-05 06:57  magfr
+2007-06-04 15:50  hardaker
 
-   * net-snmp-config.in:
+   * CHANGES, NEWS:
+     version update
 
-   NEWS: misc: Add config rereading support to the subagent
-   generated by net-snmp-config --compile-subagent
+2007-06-04 15:44  hardaker
 
-2007-06-04 22:29  magfr
+   * ChangeLog:
+     version update
 
-   *  acconfig.h, configure, configure.in,   
-      include/net-snmp/net-snmp-config.h.in:
+2007-06-04 15:42  hardaker
 
-   CHANGES: building: Simplify the detection of libraries needed for
-   gethostbyname
+   * agent/Makefile.depend:
+     make depend
 
-2007-06-04 22:06  magfr
+2007-06-04 15:41  hardaker
 
-   * snmplib/snmp_api.c:
+   * man/netsnmp_agent.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_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_request_info_s.3,
+     man/netsnmp_netsnmp_table_registration_info_s.3,
+     man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,
+     man/netsnmp_util.3, man/netsnmp_utilities.3,
+     man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
+     documentation update
 
-   NEWS: snmplib: Change snmp_sess_add_ex to consistently close and
-   delete the transport argument on failure, earlier the liveness of
-   the transport argument was undecided.
+2007-06-04 15:39  hardaker
 
-2007-06-04 14:36  hardaker
+   * doxygen.conf:
+     - version tag ( 5.4.1.pre2 )
 
-   * Makefile.in, dist/makerelease, testing/RUNTESTS:
+2007-06-04 14:36  hardaker
 
-   CHANGES: test: support a -n flag to RUNTESTS to print the test
-   number found in the test file as opposed to the numerical count
+   * Makefile.in, testing/RUNTESTS:
+     CHANGES: test: support a -n flag to RUNTESTS to print the test
+     number found in the test file as opposed to the numerical count
 
 2007-06-04 13:09  tanders
 
    * snmplib/snmpUDPDomain.c:
-
-   CHANGES: build: PATCH: 1728237: from mitsuru_chinen: Move
-   variable declaration at the top of netsnmp_udp_sendto
-
-2007-06-04 12:52  tanders
-
-   *  configure, configure.in, include/net-snmp/net-snmp-config.h.in,   
-      include/net-snmp/types.h:
-
-   CHANGES: build: PATCH: 1728233: from mitsuru_chinen: make sure
-   type nfds_t is defined
+     CHANGES: build: PATCH: 1728237: from mitsuru_chinen: Move
+     variable declaration at the top of netsnmp_udp_sendto
 
 2007-06-04 12:13  tanders
 
-   *  agent/mibgroup/disman/ping/pingCtlTable.c, configure,   
-      configure.in, include/net-snmp/net-snmp-config.h.in,   
-      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c:
-
-   CHANGES: build: PATCH: 1728230: from mitsuru_chinen: add
-   configure check for gai_strerror()
+   * agent/mibgroup/disman/ping/pingCtlTable.c, configure,
+     configure.in, include/net-snmp/net-snmp-config.h.in,
+     snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c:
+     CHANGES: build: PATCH: 1728230: from mitsuru_chinen: add
+     configure check for gai_strerror()
 
 2007-06-04 10:35  tanders
 
    * agent/mibgroup/if-mib/data_access/interface_linux.c:
-
-   CHANGES: build: PATCH: 1728226: from mitsuru_chinen: make sure
-   IF_NAMESIZE is defined
-
-2007-06-04 10:28  tanders
-
-   *  agent/mibgroup/ip-mib/data_access/defaultrouter_linux.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_linux.c, configure,   
-      configure.in, include/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: build: PATCH: 1728223: from mitsuru_chinen: add
-   configure check for netlink socket
+     CHANGES: build: PATCH: 1728226: from mitsuru_chinen: make sure
+     IF_NAMESIZE is defined
 
 2007-06-04 09:47  tanders
 
    * testing/tests/T160snmpnetstat:
-
-   also skip this test on IRIX64
-
-2007-06-02 16:13  magfr
-
-   * configure, configure.in:
-
-   CHANGES: building: Fix compilation on IRIX
+     also skip this test on IRIX64
 
 2007-06-02 08:24  magfr
 
-   *  acconfig.h, configure, configure.in,   
-      include/net-snmp/net-snmp-config.h.in,   
-      include/net-snmp/system/dynix.h,   
-      include/net-snmp/system/mingw32.h, snmplib/snmp_api.c,   
-      win32/config.h.borland, win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: snmpapi: Do not use getservbyname to find default port
-   numbers, just hardcode them and let the user override them if
-   needed.
+   * acconfig.h, configure, configure.in,
+     include/net-snmp/net-snmp-config.h.in,
+     include/net-snmp/system/dynix.h,
+     include/net-snmp/system/mingw32.h, snmplib/snmp_api.c,
+     win32/config.h.borland, win32/net-snmp/net-snmp-config.h,
+     win32/net-snmp/net-snmp-config.h.in:
+     CHANGES: snmpapi: Do not use getservbyname to find default port
+     numbers, just hardcode them and let the user override them if
+     needed.
 
 2007-06-01 22:55  tanders
 
    * configure, configure.in:
+     CHANGES: build: Link libdl against libnetsnmpmibs instead of
+     snmpd.
+     Fixes the build on (some) Solaris systems.
 
-   CHANGES: build: Link libdl against libnetsnmpmibs instead of
-   snmpd.
-   Fixes the build on (some) Solaris systems.
-
-2007-06-01 22:34  tanders
-
-   * configure, configure.in:
-
-   fix NETSNMP_IFNET_NEEDS_KERNEL configure check on IRIX
-   (regression from r16451)
+2007-06-01 21:36  dts12
 
-2007-06-01 14:33  dts12
+   * snmplib/read_config.c:
+     CHANGES: snmplib: FEATURES: 1041888: Check directory paths for
+     config files.
+     Backport from main development trunk of bug fix.
 
-   * apps/snmptrapd.c:
+2007-06-01 21:23  dts12
 
-   NEWS: snmptrapd: Withdraw deprecated options.
-   (Three and a half years' warning should be enough for anyone!)
+   * snmplib/snmp_api.c:
+     CHANGES: snmplib: FEATURES: 851887: Report range information for
+     invalid SET requests.
+     Backport from main trunk of bug fix.
 
 2007-05-31 23:51  tanders
 
-   *  agent/Makefile.in, apps/Makefile.in, configure, configure.in,   
-      net-snmp-config.in:
-
-   CHANGES: build: Link libkvm and libwrap to libnetsnmpagent
-   instead of snmpd.
-   Fixes test #44 (Perl subagent) on systems using one of those
-   libraries.
-
-2007-05-31 23:42  magfr
-
-   *  README.agent-mibs, agent/mibgroup/mibII/sysORTable.c,   
-      agent/mibgroup/mibII/system_mib.c,   
-      agent/mibgroup/mibII/system_mib.h:
-
-   CHANGES: snmpd: Move sysORLastChange from mibII/system_mib to
-   mibII/sysORTable in order to keep the data and the use together.
+   * agent/Makefile.in, apps/Makefile.in, configure, configure.in,
+     net-snmp-config.in:
+     CHANGES: build: Link libkvm and libwrap to libnetsnmpagent
+     instead of snmpd.
+     Fixes test #44 (Perl subagent) on systems using one of those
+     libraries.
 
 2007-05-31 14:39  dts12
 
    * apps/snmptrapd_log.c:
-
-   Fix logging of authentication information.
+     Fix logging of authentication information.
 
 2007-05-31 10:10  dts12
 
    * apps/snmptrapd_log.c:
-
-   Remove bogus debug output.
-
-2007-05-31 09:48  dts12
-
-   * apps/snmptrapd_handlers.c:
-
-   Remove redundant code.
-
-2007-05-31 09:43  dts12
-
-   * apps/snmptrapd_handlers.c:
-
-   CHANGES: snmptrapd: FEATURE: 1159947: Allow control of traphandle
-   data format
+     Remove bogus debug output.
 
 2007-05-30 22:53  tanders
 
-   *  configure, configure.in, perl/ASN/Makefile.PL,   
-      perl/OID/Makefile.PL, perl/SNMP/Makefile.PL,   
-      perl/TrapReceiver/Makefile.PL, perl/agent/Makefile.PL,   
-      perl/default_store/Makefile.PL:
-
-   CHANGES: AIX: build fixes for embedded Perl
-
-2007-05-30 22:34  tanders
-
-   * configure, configure.in:
-
-   HP-UX 11.x and IRIX 6.5 build fix (regression introduced by
-   r16451)
-
-2007-05-29 23:04  tanders
-
-   * configure, configure.in:
-
-   CHANGES: build: make use of AC_PROG_SED/AC_PROG_GREP and / to
-   further minimize sed/grep problems
+   * configure, configure.in, perl/ASN/Makefile.PL,
+     perl/OID/Makefile.PL, perl/SNMP/Makefile.PL,
+     perl/TrapReceiver/Makefile.PL, perl/agent/Makefile.PL,
+     perl/default_store/Makefile.PL:
+     CHANGES: AIX: build fixes for embedded Perl
 
 2007-05-29 22:42  magfr
 
    * snmplib/snmpUDPIPv6Domain.c:
-
-   CHANGES: snmplib: Use the default_target argument if it is
-   non-NULL, not if it is NULL.
-
-2007-05-29 10:30  tanders
-
-   * win32/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: building: Remove more net-snmp specials in the configure
-   scripts to ease maintenance.
-   Also change recently added STRUCT_SOCKADDR_STORAGE_HAS_SS_FAMILY.
+     CHANGES: snmplib: Use the default_target argument if it is
+     non-NULL, not if it is NULL.
 
 2007-05-29 10:27  tanders
 
    * README.agent-mibs:
-
-   add recent mfd rewrites
-
-2007-05-29 10:22  tanders
-
-   * win32/net-snmp/net-snmp-config.h:
-
-   CHANGES: building: Remove more net-snmp specials in the configure
-   scripts to ease maintenance.
-   Also change win32/net-snmp/net-snmp-config.h for consistency.
-
-2007-05-28 23:30  magfr
-
-   *  PORTING, acconfig.h, acinclude.m4,   
-      agent/mibgroup/host/hr_filesys.c,   
-      agent/mibgroup/host/hr_storage.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/ipv6.c,   
-      agent/mibgroup/mibII/mibII_common.h,   
-      agent/mibgroup/mibII/route_headers.h,   
-      agent/mibgroup/mibII/route_write.c, agent/mibgroup/mibII/tcp.c,   
-      agent/mibgroup/mibII/udp.c, agent/mibgroup/mibII/var_route.c,   
-      agent/mibgroup/ucd-snmp/disk.c,   
-      agent/mibgroup/ucd-snmp/pass_persist.c, configure, configure.in,  
-       include/net-snmp/net-snmp-config.h.in,   
-      include/net-snmp/system/freebsd5.h,   
-      include/net-snmp/system/irix.h, include/net-snmp/system/svr5.h,   
-      snmplib/scapi.c, snmplib/snmp-tc.c, snmplib/snmpUDPIPv6Domain.c,  
-       snmplib/system.c:
-
-   CHANGES: building: Remove more net-snmp specials in the configure
-   scripts to ease maintenance.
-
-2007-05-28 16:31  dts12
-
-   * man/snmp.conf.5.def, man/snmpcmd.1.def, snmplib/mib.c:
-
-   CHANGES: library: FEATURES: 1407476: Rename 'strictCommentTerm'
-   to reflect the actual behaviour.
-
-2007-05-28 15:25  dts12
-
-   * snmplib/read_config.c:
-
-   CHANGES: library: FEATURES: 1041888: Check directory paths for
-   config files.
-
-2007-05-28 13:13  dts12
-
-   * snmplib/snmp_api.c:
-
-   CHANGES: library: FEATURES: 851887: Report range information for
-   invalid SET requests.
-
-2007-05-28 12:08  tanders
-
-   *  agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c,   
-      agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c:
-
-   NEWS: Solaris: PATCH: 1719730: from apersson: support for
-   ipSystemStatsTable and ipAddressTable
-   Part 2 (Solaris-specific new files)
-
-2007-05-28 12:02  tanders
-
-   * include/net-snmp/data_access/defaultrouter.h:
-
-   NEWS: Linux: PATCH: 1724602: from mitsuru_chinen: mfd-based
-   ipDefaultRouterTable implementation
-
-2007-05-28 12:00  tanders
-
-   *  agent/mibgroup/ip-mib/data_access/defaultrouter.h,   
-      agent/mibgroup/ip-mib/data_access/defaultrouter_common.c,   
-      agent/mibgroup/ip-mib/data_access/defaultrouter_linux.c,   
-      agent/mibgroup/ip-mib/ipDefaultRouterTable,   
-      agent/mibgroup/ip-mib/ipDefaultRouterTable.h,   
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.c,
-        
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h,
-        
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.c,
-        
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.h,
-        
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.c,
-        
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.h,
-        
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_enums.h,
-        
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.c,
-        
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.h,
-        
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_oids.h:
-
-   NEWS: Linux: PATCH: 1724602: from mitsuru_chinen: mfd-based
-   ipDefaultRouterTable implementation
-
-2007-05-28 11:59  tanders
-
-   *  agent/mibgroup/mibII/ip.c, agent/mibgroup/mibII/ip.h,   
-      agent/mibgroup/mibII/var_route.c,   
-      agent/mibgroup/mibII/var_route.h:
-
-   NEWS: Linux: PATCH: 1724602: from mitsuru_chinen: mfd-based
-   ipDefaultRouterTable implementation
-
-2007-05-28 10:09  dts12
-
-   * apps/snmpwalk.c, man/snmpwalk.1.def:
-
-   Document the -CE option.
+     add recent mfd rewrites
 
 2007-05-27 21:42  tanders
 
    * perl/TrapReceiver/Makefile.PL, perl/agent/Makefile.PL:
-
-   Some lame linkers (e.g. on HP-UX 11.23/IA64) need quite a bit of
-   help to successfully link the Perl modules.
-
-2007-05-27 21:33  dts12
-
-   * apps/snmpwalk.c:
-
-   CHANGES: snmpwalk: PATCH: 1723620: Specify an explicit end-point
-   for the walk.
-   An alternative (more flexible) approach to the proposed patch,
-   but one that
-   provides equivalent functionality. Also addresses Feature Request
-   #722784.
+     Some lame linkers (e.g. on HP-UX 11.23/IA64) need quite a bit of
+     help to successfully link the Perl modules.
 
 2007-05-27 20:52  tanders
 
    * configure, configure.in, include/net-snmp/net-snmp-config.h.in:
+     Add descriptions to AC_DEFINE; drop obsolete AC_CHECK_LIB(m,
+     asin).
 
-   Add descriptions to AC_DEFINE; drop obsolete AC_CHECK_LIB(m,
-   asin).
-
-2007-05-27 19:28  dts12
-
-   * snmplib/mib.c:
-
-   CHANGES: library: FEATURES: 454028: Detect empty MIB index files.
-
-2007-05-27 19:06  dts12
-
-   *  agent/snmpd.c, configure, configure.in,   
-      include/net-snmp/net-snmp-config.h.in:
+2007-05-27 19:54  dts12
 
-   CHANGES: snmpd: FEATURES: 1019429: Set supplementary groups via
-   initgroups(3)
-
-2007-05-27 06:27  tanders
-
-   *  agent/mibgroup/if-mib/data_access/interface_solaris2.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress.h,   
-      agent/mibgroup/ip-mib/data_access/systemstats.h,   
-      agent/mibgroup/kernel_sunos5.c, agent/mibgroup/kernel_sunos5.h,   
-      agent/mibgroup/mibII.h, configure, configure.in,   
-      include/net-snmp/system/solaris.h:
-
-   NEWS: Solaris: PATCH: 1719730: from apersson: support for
-   ipSystemStatsTable and ipAddressTable
+   * snmplib/parse.c:
+     CHANGES: library: FEATURES: 454028: Detect and handle empty MIB
+     index files.
 
 2007-05-27 06:20  tanders
 
    * README.aix:
-
-   grammar fix
+     grammar fix
 
 2007-05-26 16:41  alex_b
 
-   *  README.win32, win32/Configure, win32/build.pl,   
-      win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   Win32 IPv6 build fixes. IPv6 now requires PSDK.
-
-2007-05-26 15:16  alex_b
+   * README.win32, win32/Configure, win32/build.pl,
+     win32/net-snmp/net-snmp-config.h,
+     win32/net-snmp/net-snmp-config.h.in:
+     Win32 IPv6 build fixes. IPv6 now requires PSDK.
 
-   *  README.win32, win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
+2007-05-26 15:14  alex_b
 
-   IPv6 build fixes for build.bat, Configure and README.win32.
+   * README.win32, win32/net-snmp/net-snmp-config.h,
+     win32/net-snmp/net-snmp-config.h.in:
+     IPv6 build fixes for build.bat, Configure and README.win32.
 
 2007-05-25 23:03  tanders
 
    * README.aix, README.solaris, README.tru64:
-
-   Documentation update w.r.t. recent changes (mibII/ipv6 and AIX
-   shared library building).
-
-2007-05-25 18:54  rstory
-
-   * dist/cvsshow:
-
-   update for new url format in svn entries
+     Documentation update w.r.t. recent changes (mibII/ipv6 and AIX
+     shared library building).
 
 2007-05-25 15:28  tanders
 
    * perl/default_store/Makefile.PL:
-
-   Some systems (e.g. HP-UX 11.23/IA64) currently still need
-   "net-snmp-config --libs" (instead of just --netsnmp-libs) for
-   linking
-   libnetsnmp to a Perl module.
+     Some systems (e.g. HP-UX 11.23/IA64) currently still need
+     "net-snmp-config --libs" (instead of just --netsnmp-libs) for
+     linking
+     libnetsnmp to a Perl module.
 
 2007-05-24 23:55  tanders
 
    * agent/mibgroup/mibII.h, configure, configure.in:
-
-   CHANGES: build: only enable mibII/ipv6 through --enable-ipv6 on
-   systems it builds properly on (Linux and *BSD)
+     CHANGES: build: only enable mibII/ipv6 through --enable-ipv6 on
+     systems it builds properly on (Linux and *BSD)
 
 2007-05-24 23:15  tanders
 
    * perl/agent/default_store/Makefile.PL:
-
-   Some systems (e.g. HP-UX 11.23/IA64) currently still need
-   "net-snmp-config --libs" (instead of just --netsnmp-libs) for
-   linking libsnmpagent to a Perl module.
+     Some systems (e.g. HP-UX 11.23/IA64) currently still need
+     "net-snmp-config --libs" (instead of just --netsnmp-libs) for
+     linking libsnmpagent to a Perl module.
 
 2007-05-24 22:01  magfr
 
    * agent/mibgroup/mibII/ipv6.c:
-
-   Correct obviously broken use of the KLOOKUP macro to be
-   consistent at least
+     Correct obviously broken use of the KLOOKUP macro to be
+     consistent at least
 
 2007-05-24 20:51  tanders
 
    * include/net-snmp/system/freebsd7.h:
-
-   CHANGES: FreeBSD: add initial support for upcoming FreeBSD 7
-
-2007-05-24 14:06  rstory
-
-   * Makefile.top:
-
-   bump libcurrent to 20 to leave space for 5.4.x releases
+     CHANGES: FreeBSD: add initial support for upcoming FreeBSD 7
 
 2007-05-24 12:48  tanders
 
    * agent/Makefile.in, apps/Makefile.in:
+     fix library linking on HP-UX 11.23/IA64
 
-   fix library linking on HP-UX 11.23/IA64
+2007-05-24 08:36  tanders
+
+   * Makefile.top:
+     CHANGES: snmplib: increment "current" and "age" according to
+     libtool
+     versioning policy, since interfaces have been added since 5.4.
+     We now build libnetsnmp.so.15.1.0.
+     5.4.1.pre1 was broken in this regard.
 
 2007-05-23 19:05  tanders
 
-   *  Makefile.in, Makefile.rules, agent/Makefile.in,   
-      agent/helpers/Makefile.in, apps/Makefile.in, configure,   
-      configure.in, perl/TrapReceiver/Makefile.PL,   
-      perl/agent/Makefile.PL, perl/agent/default_store/Makefile.PL,   
-      perl/default_store/Makefile.PL, snmplib/Makefile.in:
+   * Makefile.in, Makefile.rules, agent/Makefile.in,
+     agent/helpers/Makefile.in, apps/Makefile.in, configure,
+     configure.in, perl/TrapReceiver/Makefile.PL,
+     perl/agent/Makefile.PL, perl/agent/default_store/Makefile.PL,
+     perl/default_store/Makefile.PL, snmplib/Makefile.in:
+     NEWS: snmplib: BUG: 1619827: link net-snmp libraries and binaries
+     against the net-snmp libraries they really depend on
+     - reflect library interdependencies at link time
+     - fix dependencies on libcrypto, libpkcs11 and libkstat
+     - install libraries in correct order (important for libtool
+     relinking)
+     NEWS: Perl: link Perl modules against the exact set of libraries
+     they depend on
+
+2007-05-22 14:40  hardaker
+
+   * FAQ, README, configure, configure.in, 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, sedscript.in,
+     snmplib/snmp_version.c:
+     version stamp 5.4.1.pre1
 
-   NEWS: snmplib: BUG: 1619827: link net-snmp libraries and binaries
-   against the net-snmp libraries they really depend on
-   - reflect library interdependencies at link time
-   - fix dependencies on libcrypto, libpkcs11 and libkstat
-   - install libraries in correct order (important for libtool
-   relinking)
-   NEWS: Perl: link Perl modules against the exact set of libraries
-   they depend on
+2007-05-22 00:24  hardaker
 
-2007-05-22 16:26  hardaker
+   * CHANGES, NEWS:
+     version update
 
-   * dist/makerelease:
+2007-05-22 00:19  hardaker
 
-   use svn export instead of checkout
+   * ChangeLog:
+     version update
+
+2007-05-22 00:01  hardaker
+
+   * agent/Makefile.depend, agent/helpers/Makefile.depend,
+     agent/mibgroup/Makefile.depend, apps/Makefile.depend,
+     apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+     make depend
 
 2007-05-22 00:00  hardaker
 
    * Makefile.in:
-
-   ignore winExtDLL in comment check
+     ignore winExtDLL in comment check
 
 2007-05-21 23:54  hardaker
 
    * agent/mibgroup/hardware/cpu/cpu_sysinfo.c:
+     // -> C comment
 
-   // -> C comment
-
-2007-05-21 23:33  tanders
+2007-05-21 23:51  hardaker
 
-   *  include/net-snmp/system/solaris2.10.h,   
-      include/net-snmp/system/solaris2.7.h,   
-      include/net-snmp/system/solaris2.8.h,   
-      include/net-snmp/system/solaris2.9.h:
-
-   sync with 5.4, these are obsolete now
+   * man/netsnmp_agent.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_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_request_info_s.3,
+     man/netsnmp_netsnmp_table_registration_info_s.3,
+     man/netsnmp_netsnmp_table_request_info_s.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_rows.3, man/netsnmp_tdata.3,
+     man/netsnmp_util.3, man/netsnmp_utilities.3,
+     man/netsnmp_variable_list.3, man/netsnmp_watcher.3:
+     documentation update
 
 2007-05-21 23:11  magfr
 
    * configure, configure.in:
+     CHANGES: building: Disable inlining on solaris as there are some
+     linking errors that show up if the inline support is left
+     enabled.
 
-   CHANGES: building: Disable inlining on solaris as there are some
-   linking errors that show up if the inline support is left
-   enabled.
+2007-05-21 22:46  hardaker
 
-2007-05-21 06:05  magfr
+   * doxygen.conf:
+     - version tag ( 5.4.1.pre1 )
 
-   * configure, configure.in:
+2007-05-21 22:22  hardaker
 
-   CHANGES: building: At least Sun C 5.7 fails if one tries to
-   access __func__ in a extern inline function, so test for that
-   case.
+   * Makefile.top:
+     version update
 
-2007-05-20 21:34  tanders
+2007-05-21 23:51  hardaker
 
-   * agent/Makefile.in, configure, configure.in:
+   documentation update
 
-   NEWS: snmplib: BUG: 1619827: link against needed external
-   libraries at library link time (where they are referenced),
-   rather than application link time.
-   Already covers most of libnetsnmpmibs' external dependencies.
-   Fixes build issues on some platforms (e.g. building with shared
-   libraries on AIX). Tested on different versions of Linux,
-   Solaris, HP-UX, AIX and IRIX.
+2007-05-21 23:11  magfr
 
-2007-05-19 15:27  magfr
+   CHANGES: building: Disable inlining on solaris as there are some
+   linking errors that show up if the inline support is left
+   enabled.
 
-   *  acconfig.h, configure, configure.in,   
-      include/net-snmp/net-snmp-config.h.in:
+2007-05-21 22:46  hardaker
 
-   CHANGES: building: Check for support of static inline functions
-   instead of nested static inline functions when determining if
-   static inline functions work
+   - version tag ( 5.4.1.pre1 )
 
-2007-05-19 08:40  magfr
+2007-05-21 22:22  hardaker
 
-   *  acconfig.h, configure, configure.in,   
-      include/net-snmp/library/snmp_assert.h,   
-      include/net-snmp/library/snmp_debug.h,   
-      include/net-snmp/net-snmp-config.h.in, win32/config.h.borland,   
-      win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
+   version update
 
-   CHANGES: snmplib: Make use of the C99 predefined variable
-   __func__ in addition to the GCC symbol __FUNCTION__ to get the
-   name of the current function
+2007-05-20 21:34  tanders
 
-2007-05-18 18:12  hardaker
+	* agent/Makefile.in, configure, configure.in:
+	  NEWS: snmplib: BUG: 1619827: link against needed external
+	  libraries at library link time (where they are referenced),
+	  rather than application link time.
+	  Already covers most of libnetsnmpmibs' external dependencies.
+	  Fixes build issues on some platforms (e.g. building with shared
+	  libraries on AIX). Tested on different versions of Linux,
+	  Solaris, HP-UX, AIX and IRIX.
 
-   * agent/mibgroup/mibII/kernel_linux.h:
+2007-05-19 15:27  magfr
 
-   CHANGES: snmpd: patch: 1721096: from mitsuru_chinen: remove
-   unused variable stats from kernel extraction for better
-   portability.
+	* acconfig.h, configure, configure.in,
+	  include/net-snmp/net-snmp-config.h.in:
+	  CHANGES: building: Check for support of static inline functions
+	  instead of nested static inline functions when determining if
+	  static inline functions work
 
 2007-05-18 18:08  hardaker
 
-   * agent/mibgroup/host/hr_filesys.c:
-
-   CHANGES: snmpd: patch: 1719254: from "Christan Jung": update
-   HRFS_ignore list to current linux likelyhoods
+	* agent/mibgroup/host/hr_filesys.c:
+	  CHANGES: snmpd: patch: 1719254: from "Christan Jung": update
+	  HRFS_ignore list to current linux likelyhoods
 
 2007-05-18 18:02  hardaker
 
-   * agent/mibgroup/host/hr_storage.c:
-
-   NEWS: snmpd: patch: 1719253: from "Christian Jung": fix
-   skipNFSInHostResources so it does not break on the second walk of
-   the table.
-
-2007-05-18 17:55  magfr
-
-   * acconfig.h, include/net-snmp/net-snmp-config.h.in:
-
-   Reran autoheader and adjusted acconfig.h after changes in r16387
-
-2007-05-18 17:54  hardaker
-
-   * agent/mibgroup/mibII/icmp.c:
-
-   CHANGES: snmpd: patch: 1715406: from mitsuru_chinen: registration
-   ordering fixes for icmpStatsTable
-
-2007-05-18 17:46  hardaker
-
-   * agent/mibgroup/mibII/icmp.c:
-
-   CHANGES: snmpd: patch: 1715395: fix icmp table errors in new icmp
-   code
-
-2007-05-18 17:45  hardaker
-
-   * agent/mibgroup/mibII/icmp.c:
-
-   
+	* agent/mibgroup/host/hr_storage.c:
+	  NEWS: snmpd: patch: 1719253: from "Christian Jung": fix
+	  skipNFSInHostResources so it does not break on the second walk of
+	  the table.
 
 2007-05-18 15:05  tanders
 
-   * configure, configure.in:
-
-   NEWS: AIX: fix default shared library building instead of forcing
-   static
-
-2007-05-18 14:18  magfr
-
-   *  acconfig.h, agent/mibgroup/mibII/ip.c, configure, configure.in,   
-      include/net-snmp/net-snmp-config.h.in,   
-      win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: building: Use AC_CHECK_MEMBERS instead of
-   AC_CHECK_STRUCT_FOR when checking for struct ipstat members in
-   order to make configure.in smaller
+	* configure, configure.in:
+	  NEWS: AIX: fix default shared library building instead of forcing
+	  static
 
 2007-05-18 10:22  magfr
 
-   * agent/mibgroup/host/hr_storage.h:
-
-   CHANGES: snmpd: Correct the dependency information for
-   host/hr_storage
-
-2007-05-18 09:57  magfr
-
-   * testing/RUNTESTS:
-
-   CHANGES: testing: Do not terminate on SIGCHLD since dash and
-   soume bourne shells will exit the main shell when a subshell
-   terminates in that case.
-
-2007-05-18 09:22  tanders
-
-   * apps/snmpusm.c:
-
-   Undoing accidental change committed in r16373.
-
-2007-05-17 23:21  magfr
-
-   * snmplib/snmp_api.c:
-
-   CHANGES: snmplib: PATCH: 1687337: Implement _sess_open in terms
-   of snmp_sess_add
+	* agent/mibgroup/host/hr_storage.h:
+	  CHANGES: snmpd: Correct the dependency information for
+	  host/hr_storage
 
 2007-05-17 22:16  magfr
 
-   *  agent/agent_trap.c, apps/snmptrap.c, apps/snmptrapd.c,   
-      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c,   
-      snmplib/snmp_api.c:
-
-   CHANGES: snmpd: PATCH: 1620424: Fix notification sending so that
-   explicit specification of port 162 should be unnecessary
-   CHANGES: snmptrapd: PATCH: 1620424: Fix notification reception so
-   that explicit specification of port 162 should be unnecessary
-   CHANGES: apps: PATCH: 1620424: Fix notification sending so that
-   explicit specification of port 162 should be unnecessary
-   CHANGES: snmplib: PATCH: 1620424: Honor
-   NETSNMP_DS_LIB_DEFAULT_PORT over the default system
+	* agent/agent_trap.c, apps/snmptrap.c, apps/snmptrapd.c,
+	  snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c,
+	  snmplib/snmp_api.c:
+	  CHANGES: snmpd: PATCH: 1620424: Fix notification sending so that
+	  explicit specification of port 162 should be unnecessary
+	  CHANGES: snmptrapd: PATCH: 1620424: Fix notification reception so
+	  that explicit specification of port 162 should be unnecessary
+	  CHANGES: apps: PATCH: 1620424: Fix notification sending so that
+	  explicit specification of port 162 should be unnecessary
+	  CHANGES: snmplib: PATCH: 1620424: Honor
+	  NETSNMP_DS_LIB_DEFAULT_PORT over the default system
 
 2007-05-17 21:53  hardaker
 
-   *  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/ipaddress_ioctl.c,   
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c:
-
-   CHANGES: snmpd: patch: 1710632: from mavarley: fix memory leak on
-   broken container insertions for the ipAddressTable
+	* 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/ipaddress_ioctl.c,
+	  agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c:
+	  CHANGES: snmpd: patch: 1710632: from mavarley: fix memory leak on
+	  broken container insertions for the ipAddressTable
 
 2007-05-17 18:06  rstory
 
-   * local/mib2c-conf.d/mfd-interactive-setup.m2c:
-
-   CHANGES: PATCH: 1719244: fix mfd generating map function
-
-2007-05-17 17:46  hardaker
-
-   *  agent/mibgroup/mibII/ip.c, agent/mibgroup/mibII/ip.h,   
-      agent/mibgroup/mibII/var_route.c,   
-      agent/mibgroup/mibII/var_route.h:
-
-   NEWS: snmpd: patch: 1708243: from nhorman: implement the
-   ipDefaultRouteTable on linux
+	* local/mib2c-conf.d/mfd-interactive-setup.m2c:
+	  CHANGES: PATCH: 1719244: fix mfd generating map function
 
 2007-05-17 16:31  hardaker
 
-   * configure.in:
-
-   NEWS: ports: patch: 1706344: from naylor: fix compilation with
-   cygwin
+	* configure.in:
+	  NEWS: ports: patch: 1706344: from naylor: fix compilation with
+	  cygwin
 
 2007-05-17 16:22  hardaker
 
-   * agent/mibgroup/ucd-snmp/extensible.c:
-
-   NEWS: snmpd: patch: 1700157: from afrika: fixes ordering of exec
-   tokens in the resulting mib tree
+	* agent/mibgroup/ucd-snmp/extensible.c:
+	  NEWS: snmpd: patch: 1700157: from afrika: fixes ordering of exec
+	  tokens in the resulting mib tree
 
 2007-05-17 15:53  hardaker
 
-   * agent/mibgroup/host/hr_disk.c:
-
-   CHANGES: snmpd: patch: 1617255: fix length of the history array
-   to match code.
+	* agent/mibgroup/host/hr_disk.c:
+	  CHANGES: snmpd: patch: 1617255: fix length of the history array
+	  to match code.
 
 2007-05-17 13:53  hardaker
 
-   * agent/snmpd.c, apps/snmptrapd.c:
-
-   CHANGES: snmpd: patch: 1225440: Apply intent of patch: to delay
-   sighup till it is safe.
-   CHANGES: snmptrapd: patch: 1225440: Apply intent of patch: to
-   delay sighup till it is safe.
-
-2007-05-17 13:35  magfr
-
-   *  agent/mibgroup/ip-forward-mib/data_access/route.h,   
-      agent/mibgroup/ip-mib/data_access/arp.h,   
-      agent/mibgroup/ip-mib/data_access/ipaddress.h,   
-      agent/mibgroup/ip-mib/data_access/systemstats.h:
-
-   CHANGES: building: Use config_error instead of config_require of
-   a bogus file/#error to generate error messages at configure time.
+	* agent/snmpd.c, apps/snmptrapd.c:
+	  CHANGES: snmpd: patch: 1225440: Apply intent of patch: to delay
+	  sighup till it is safe.
+	  CHANGES: snmptrapd: patch: 1225440: Apply intent of patch: to
+	  delay sighup till it is safe.
 
 2007-05-17 04:39  hardaker
 
-   * apps/snmpusm.c, snmplib/asn1.c:
-
-   CHANGES: snmplib: patch: 1645698: fix 64-bit signed integer
-   encoding
+	* snmplib/asn1.c:
+	  CHANGES: snmplib: patch: 1645698: fix 64-bit signed integer
+	  encoding
 
 2007-05-16 23:53  tanders
 
-   * include/net-snmp/system/hpux.h:
-
-   CHANGES: HP-UX: HP-UX needs _REENTRANT defined to pick up
-   strtok_r.
-   Otherwise, at least for 64-bit code, strtok_r will not work
-   and will make net-snmp segfault.
-
-2007-05-16 23:39  tanders
-
-   *  agent/mibgroup/mibII/route_headers.h, configure, configure.in,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   fix patch 1625069 (r16365) to not break the build on Solaris
-   2.6/7
-
-2007-05-15 17:33  rstory
-
-   * dist/svnup:
-
-   - add warning if star not available
-   - fix pattern to exclude .svn dirs from tarballs
-
-2007-05-15 15:55  rstory
-
-   * dist/cvsup:
-
-   warn if star not available
+	* include/net-snmp/system/hpux.h:
+	  CHANGES: HP-UX: HP-UX needs _REENTRANT defined to pick up
+	  strtok_r.
+	  Otherwise, at least for 64-bit code, strtok_r will not work
+	  and will make net-snmp segfault.
 
 2007-05-15 14:36  tanders
 
-   * agent/mibgroup/hardware/memory/memory_solaris.c:
-
-   fix typo
+	* agent/mibgroup/hardware/memory/memory_solaris.c:
+	  fix typo
 
 2007-05-14 21:49  tanders
 
-   * apps/Makefile.in:
-
-   add missing CFLAGS to link line
+	* apps/Makefile.in:
+	  add missing CFLAGS to link line
 
 2007-05-14 21:48  tanders
 
-   * apps/snmpnetstat/Makefile.in:
-
-   add missing CFLAGS to link line
-
-2007-05-14 15:57  hardaker
-
-   *  agent/mibgroup/kernel_sunos5.c,   
-      agent/mibgroup/mibII/route_headers.h,   
-      agent/mibgroup/mibII/var_route.c, configure, configure.in,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: snmpd: patch: 1625069: speed improvements for solaris
-   routing table access
+	* apps/snmpnetstat/Makefile.in:
+	  add missing CFLAGS to link line
 
 2007-05-14 14:50  hardaker
 
-   * agent/snmp_agent.c:
-
-   CHANGES: snmpd: patch: 1595568: from cyril_margaria: fix
-   delegated SET requests from agentx subagents
-
-2007-05-14 14:04  hardaker
-
-   * dist/RELEASE-INSTRUCTIONS:
-
-   update to point to wiki and a few more cvs -> svn changes
+	* agent/snmp_agent.c:
+	  CHANGES: snmpd: patch: 1595568: from cyril_margaria: fix
+	  delegated SET requests from agentx subagents
 
 2007-05-13 14:27  magfr
 
-   * snmplib/snmp_service.c:
-
-   CHANGES: snmplib: Read the config parameters defTarget and
-   defDomain from snmp.conf as well as from <application>.conf
-
-2007-05-12 11:17  magfr
-
-   * snmplib/mib.c:
-
-   CHANGES: snmplib: Deallocate the _mibindexes cache in
-   shutdown_mib to make for a cleaner exit of the library
+	* snmplib/snmp_service.c:
+	  CHANGES: snmplib: Read the config parameters defTarget and
+	  defDomain from snmp.conf as well as from <application>.conf
 
 2007-05-12 11:14  magfr
 
-   * snmplib/mib.c:
-
-   CHANGES: snmplib: Deallocate the confmibs and confmibdirs
-   variables in shutdown_mib to make for a cleaner exit of the
-   library
+	* snmplib/mib.c:
+	  CHANGES: snmplib: Deallocate the confmibs and confmibdirs
+	  variables in shutdown_mib to make for a cleaner exit of the
+	  library
 
 2007-05-11 21:06  magfr
 
-   * agent/mibgroup/agentx/agentx_config.c:
-
-   CHANGES: snmpd: PATCH: 1687336: Start using the enhanced
-   read_config interface
+	* agent/mibgroup/agentx/agentx_config.c:
+	  CHANGES: snmpd: PATCH: 1687336: Start using the enhanced
+	  read_config interface
 
 2007-05-11 20:33  magfr
 
-   * snmplib/read_config.c:
-
-   PATCH 1687329: Applied part 2 of the patch - When registering
-   multiple premib handlers only the last one was registered premib,
-   the others were registerd at the normal time. This patch puts all
-   registration in one function that takes the problematic value as
-   an argument and makes the old functions thin wrappers of the new
-   one
+	* snmplib/read_config.c:
+	  PATCH 1687329: Applied part 2 of the patch - When registering
+	  multiple premib handlers only the last one was registered premib,
+	  the others were registerd at the normal time. This patch puts all
+	  registration in one function that takes the problematic value as
+	  an argument and makes the old functions thin wrappers of the new
+	  one
 
 2007-05-11 20:24  magfr
 
-   * snmplib/read_config.c:
-
-   CHANGE: snmplib: PATCH 1687329: Applied part 3 of the patch - use
-   the same algorithm to determine what to unregister as is used to
-   determine what to regster
+	* snmplib/read_config.c:
+	  CHANGE: snmplib: PATCH 1687329: Applied part 3 of the patch - use
+	  the same algorithm to determine what to unregister as is used to
+	  determine what to regster
 
 2007-05-11 16:32  magfr
 
-   * agent/mibgroup/host/hr_proc.c:
-
-   Don't log host/hr_proc events in the snmpd domain
+	* agent/mibgroup/host/hr_proc.c:
+	  Don't log host/hr_proc events in the snmpd domain
 
 2007-05-11 16:27  magfr
 
-   * agent/helpers/cache_handler.c:
-
-   Decorate more debug lines with the tag that controls the log
+	* agent/helpers/cache_handler.c:
+	  Decorate more debug lines with the tag that controls the log
 
 2007-05-11 15:07  dts12
 
-   * agent/mibgroup/hardware/memory/memory_solaris.c:
-
-   CHANGES: snmpd: BUG: 1628613: Restore memTotalFree.0 on Solaris
+	* agent/mibgroup/hardware/memory/memory_solaris.c:
+	  CHANGES: snmpd: BUG: 1628613: Restore memTotalFree.0 on Solaris
 
 2007-05-10 21:52  tanders
 
-   * Makefile.in, python/setup.py:
-
-   NEWS: python: PATCH: 1716114: Let python build in source tree
-   Patch provided by Jochen Friedrich (Debian patch #38).
+	* Makefile.in, python/setup.py:
+	  NEWS: python: PATCH: 1716114: Let python build in source tree
+	  Patch provided by Jochen Friedrich (Debian patch #38).
 
 2007-05-10 05:18  magfr
 
-   * snmplib/read_config.c:
-
-   PATCH 1687329: Applied part 1 of the patch - lessens the scope of
-   the ltmp2 variable
+	* snmplib/read_config.c:
+	  PATCH 1687329: Applied part 1 of the patch - lessens the scope of
+	  the ltmp2 variable
 
 2007-05-09 23:57  tanders
 
-   * README.irix:
-
-   document optimized IRIX cpu stats
+	* README.irix:
+	  document optimized IRIX cpu stats
 
 2007-05-09 23:49  tanders
 
-   *  agent/mibgroup/hardware/cpu.h,   
-      agent/mibgroup/hardware/cpu/cpu_sysinfo.c,   
-      agent/mibgroup/hardware/cpu/cpu_sysinfo.h:
-
-   NEWS: irix: PATCH: 1709748: Optimized IRIX cpu stats
-
-2007-05-09 21:23  rstory
-
-   * dist/cvsshow:
+	* agent/mibgroup/hardware/cpu.h,
+	  agent/mibgroup/hardware/cpu/cpu_sysinfo.c,
+	  agent/mibgroup/hardware/cpu/cpu_sysinfo.h:
+	  NEWS: irix: PATCH: 1709748: Optimized IRIX cpu stats
 
-   update to show svn repo too
+2007-05-09 22:16  tanders
 
-2007-05-09 15:39  tanders
+	* agent/mibgroup/agent/extend.c:
+	  Fix problems with single-line extend scripts.
+	  (fix typo in r16332 for 5.4.x)
 
-   * agent/mibgroup/mibII/icmp.c:
+2007-05-09 01:10  alex_b
 
-   icmpStatsTable is only implemented for Linux
+	* win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
+	  Win32 build fixes.
 
 2007-05-08 19:48  magfr
 
-   * agent/snmp_agent.c:
-
-   Revert mistakenly committed extra trace logs
+	* agent/snmp_agent.c:
+	  Revert mistakenly committed extra trace logs
 
 2007-05-07 20:46  hardaker
 
-   *  perl/agent/default_store/default_store.pm,   
-      perl/agent/default_store/default_store.xs,   
-      perl/agent/default_store/test.pl:
-
-   update agent::default_store perl module for new defs
-
-2007-05-07 20:24  hardaker
-
-   * dist/patme:
-
-   more svn conversion fixes
+	* perl/agent/default_store/default_store.pm,
+	  perl/agent/default_store/default_store.xs,
+	  perl/agent/default_store/test.pl:
+	  update agent::default_store perl module for new defs
 
 2007-05-07 20:23  hardaker
 
-   *  agent/agent_read_config.c, agent/snmp_agent.c,   
-      include/net-snmp/agent/ds_agent.h, man/snmpd.conf.5.def:
-
-   NEWS: snmpd: BUG: 1712988: default and configurable maximum
-   number of varbinds returnable to a GETBULK request
-
-2007-05-07 20:05  hardaker
-
-   * dist/patme:
-
-   rename of branch dirs
-
-2007-05-07 16:14  hardaker
-
-   * dist/patme:
-
-   attempted (untested) update
-
-2007-05-07 13:55  rstory
-
-   * dist/svnup:
-
-   don't delete tarball if scp fails
+	* agent/agent_read_config.c, agent/snmp_agent.c,
+	  include/net-snmp/agent/ds_agent.h, man/snmpd.conf.5.def:
+	  NEWS: snmpd: BUG: 1712988: default and configurable maximum
+	  number of varbinds returnable to a GETBULK request
 
 2007-05-04 20:27  tanders
 
-   * perl/SNMP/SNMP.xs:
-
-   CHANGES: perl: fix SNMP SET for IP addresses on 64-bit
+	* perl/SNMP/SNMP.xs:
+	  CHANGES: perl: fix SNMP SET for IP addresses on 64-bit
 
 2007-05-04 10:22  tanders
 
-   * Makefile.in:
-
-   install dragonfly.h
+	* Makefile.in:
+	  install dragonfly.h
 
 2007-05-03 23:01  tanders
 
-   * include/net-snmp/system/dragonfly.h:
-
-   CHANGES: BUG: 1710910: initial support for DragonFly BSD
+	* include/net-snmp/system/dragonfly.h:
+	  CHANGES: BUG: 1710910: initial support for DragonFly BSD
 
 2007-05-03 22:10  tanders
 
-   * perl/SNMP/SNMP.xs:
-
-   CHANGES: perl: fix SNMP SET for IP addresses on 64-bit
-   Patch proposed by Jeff Lange.
-
-2007-05-03 16:00  tanders
-
-   * agent/mibgroup/mibII/icmp.c:
-
-   build fix (e.g. for early AIX): use uint32_t i.s.o. __uint32_t
+	* perl/SNMP/SNMP.xs:
+	  CHANGES: perl: fix SNMP SET for IP addresses on 64-bit
+	  Patch proposed by Jeff Lange.
 
 2007-05-02 13:13  dts12
 
-   * agent/mibgroup/agent/extend.c:
-
-   Fix problems with single-line extend scripts.
-
-2007-05-01 19:51  rstory
-
-   * agent/mibgroup/ip-mib/data_access/ipaddress_linux.c:
-
-   - test for IFA_F_TEMPORARY before using
-   - remove redundant ifdef
+	* agent/mibgroup/agent/extend.c:
+	  Fix problems with single-line extend scripts.
 
 2007-05-01 11:34  dts12
 
-   * apps/snmptrapd_handlers.c:
-
-   CHANGES: snmptrapd: Support for forwarding traps by OID subtree.
-   (Consistent with subtree-based script processing).
-
-2007-04-30 14:51  dts12
-
-   * agent/mibgroup/mibII/kernel_linux.c:
-
-   CHANGES: snmpd: PATCH: 1703004: Consolidate snmp6 handling.
-   Patch supplied by Neil Horman, plus some extra tidying up.
-
-2007-04-30 14:33  dts12
-
-   * agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/icmp.h:
-
-   CHANGES: snmpd: PATCH: 1702366: Support for icmpStatsTable
-   Patch provided by Neil Horman
-
-2007-04-30 14:31  dts12
-
-   *  agent/mibgroup/mibII/ipv6.c, agent/mibgroup/mibII/kernel_linux.c, 
-        agent/mibgroup/mibII/kernel_linux.h:
-
-   CHANGES: snmpd: PATCH: 1702361: Read stats from /proc/net/snmp6
-
-2007-04-30 14:14  dts12
-
-   *  agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
-      agent/mibgroup/ip-mib/data_access/ipaddress_linux.c:
-
-   Fix compilation problems when IPv6 support is not enabled.
+	* apps/snmptrapd_handlers.c:
+	  CHANGES: snmptrapd: Support for forwarding traps by OID subtree.
+	  (Consistent with subtree-based script processing).
 
 2007-04-30 13:26  dts12
 
-   *  README.agent-mibs, agent/mibgroup/mibII/setSerialNo.c,   
-      agent/mibgroup/mibII/setSerialNo.h:
-
-   CHANGES: snmpd: PATCH: 1700737: Tidy up setSerialNo
-   implementations.
+	* README.agent-mibs, agent/mibgroup/mibII/setSerialNo.c,
+	  agent/mibgroup/mibII/setSerialNo.h:
+	  CHANGES: snmpd: PATCH: 1700737: Tidy up setSerialNo
+	  implementations.
 
 2007-04-30 13:06  dts12
 
-   * agent/helpers/cache_handler.c:
-
-   CHANGES: snmpd: PATCH: 1700732: Fix debug output statements.
+	* agent/helpers/cache_handler.c:
+	  CHANGES: snmpd: PATCH: 1700732: Fix debug output statements.
 
 2007-04-30 13:02  dts12
 
-   * agent/mibgroup/ucd-snmp/extensible.c:
-
-   CHANGES: snmpd: PATCH: 1700730: Remove unused extern declaration.
+	* agent/mibgroup/ucd-snmp/extensible.c:
+	  CHANGES: snmpd: PATCH: 1700730: Remove unused extern declaration.
 
 2007-04-30 11:32  dts12
 
-   * agent/helpers/instance.c:
-
-   CHANGES: snmpd: PATCH: 1698184: Register non-default context
-   integers as writable.
-   Patch provided by Mark Naylor.
-
-2007-04-30 11:26  dts12
-
-   *  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,   
-      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c:
-
-   CHANGES: snmpd: PATCH: 169817: Improved RFC 4293 support.
-   Includes non-unicast and randomly chosen IP addresses.
-   Patch provided by Varun Chandramohan
+	* agent/helpers/instance.c:
+	  CHANGES: snmpd: PATCH: 1698184: Register non-default context
+	  integers as writable.
+	  Patch provided by Mark Naylor.
 
 2007-04-30 11:04  dts12
 
-   * agent/mibgroup/ip-mib/data_access/ipaddress_common.c:
-
-   CHANGES: snmpd: PATCH: 1692768: Fix copying of non-octet-aligned
-   IP address prefixes.
-
-2007-04-30 10:50  dts12
-
-   *  agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c,   
-      agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c,   
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.c,   
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.h,   
-      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c,
-         agent/mibgroup/util_funcs.c, agent/mibgroup/util_funcs.h,   
-      include/net-snmp/data_access/udp_endpoint.h:
-
-   CHANGES: snmpd: PATCH: 1670511: Implement network connection
-   process ID objects.
-   Patch provided by Varun Chandramohan
-
-2007-04-30 10:46  dts12
-
-   * include/net-snmp/library/snmp_api.h:
-
-   Fix declaration of snmp_sess_read_extd()
+	* agent/mibgroup/ip-mib/data_access/ipaddress_common.c:
+	  CHANGES: snmpd: PATCH: 1692768: Fix copying of non-octet-aligned
+	  IP address prefixes.
 
 2007-04-30 10:25  dts12
 
-   * snmplib/fd_event_manager.c:
-
-   CHANGES: snmplib: PATCH: 1687325: Fix problem with operator
-   precedence.
-
-2007-04-30 10:21  dts12
-
-   * include/net-snmp/library/snmp_api.h:
-
-   CHANGES: snmplib: PATCH: 1687319: Declare snmp_sess_read_extd()
-
-2007-04-30 10:14  dts12
-
-   * snmplib/snmp_api.c:
-
-   CHANGES: snmplib: PATCH: 1687318: Make _sess_selpol_info static.
-
-2007-04-30 10:09  dts12
-
-   * snmplib/snmp_api.c:
-
-   CHANGES: snmplib: PATCH: 1687317: Remove an unused local variable
+	* snmplib/fd_event_manager.c:
+	  CHANGES: snmplib: PATCH: 1687325: Fix problem with operator
+	  precedence.
 
 2007-04-30 10:07  dts12
 
-   * snmplib/snmpUnixDomain.c, snmplib/snmp_api.c:
-
-   CHANGES: snmplib: PATCH: 1687316: Don't drop const from casts.
-
-2007-04-27 10:21  dts12
-
-   * agent/mibgroup/ucd-snmp/dlmod.c:
-
-   Bring dynamic module unload processing more into line with
-   "normal" MIB modules. Suggested by Magnus Fromreide.
-   See coders thread "shutdown_foo or deinit_foo".
-
-2007-04-27 10:17  dts12
-
-   * dist/RELEASE-INSTRUCTIONS:
-
-   Update post-release announcement instructions.
+	* snmplib/snmpUnixDomain.c, snmplib/snmp_api.c:
+	  CHANGES: snmplib: PATCH: 1687316: Don't drop const from casts.
 
 2007-04-24 12:35  dts12
 
-   * agent/mibgroup/agent/extend.c:
-
-   Fix incomplete OID handling of single-line extend scripts.
-   Reported by Max on coders list, 7th April. See thread
-   "... segfault .. when attempting SNMP GET on extend or exec item"
+	* agent/mibgroup/agent/extend.c:
+	  Fix incomplete OID handling of single-line extend scripts.
+	  Reported by Max on coders list, 7th April. See thread
+	  "... segfault .. when attempting SNMP GET on extend or exec item"
 
 2007-04-20 08:30  dts12
 
-   * man/snmpd.conf.5.def:
-
-   Document the behaviour of a load threshold of 0.
-   Reported by Fong Tsui.
+	* man/snmpd.conf.5.def:
+	  Document the behaviour of a load threshold of 0.
+	  Reported by Fong Tsui.
 
 2007-04-20 08:21  dts12
 
-   * mibs/UCD-SNMP-MIB.txt:
-
-   Long-term load average is calculated over 15 minutes, not 10.
-   Reported by Fong Tsui
-
-2007-04-19 12:53  dts12
-
-   * dist/RELEASE-INSTRUCTIONS:
-
-   Tweak ChangeLog instructions for SVN
+	* mibs/UCD-SNMP-MIB.txt:
+	  Long-term load average is calculated over 15 minutes, not 10.
+	  Reported by Fong Tsui
 
 2007-04-10 14:16  dts12
 
-   * perl/SNMP/SNMP.xs:
-
-   Detect OID retracking (as well as simple repetitions) when
-   bulkwalking an OID tree.
-   See users thread "missing indices in bulkwalk result".
+	* perl/SNMP/SNMP.xs:
+	  Detect OID retracking (as well as simple repetitions) when
+	  bulkwalking an OID tree.
+	  See users thread "missing indices in bulkwalk result".
 
 2007-04-10 11:49  dts12
 
-   * include/net-snmp/system/mingw32.h:
-
-   Clarify copyright status of Win32 API definitions.
+	* include/net-snmp/system/mingw32.h:
+	  Clarify copyright status of Win32 API definitions.
 
 2007-04-10 11:27  dts12
 
-   * include/net-snmp/system/dynix.h:
+	* include/net-snmp/system/dynix.h:
+	  Clarify copyright status of BSD-derived TCPTV* definitions.
 
-   Clarify copyright status of BSD-derived TCPTV* definitions.
+2007-04-03 08:59  tanders
 
-2007-04-09 14:02  rstory
-
-   * dist/svnup:
-
-   - remove debugging
-   - check rc for tar, gzip and scp steps
-
-2007-04-06 18:38  rstory
-
-   * dist/svnup:
-
-   svn equivalent of cvsup
+	* agent/mibgroup/smux/smux.c:
+	  fix syntax error introduced by last patch
 
 2007-04-03 08:54  dts12
 
-   * man/snmpd.conf.5.def:
-
-   Emphasise the use of SNMPv3 in DisMan monitoring.
-   Fix the syntax of non-existance/value-change tests.
+	* man/snmpd.conf.5.def:
+	  Emphasise the use of SNMPv3 in DisMan monitoring.
+	  Fix the syntax of non-existance/value-change tests.
 
 2007-04-02 14:55  dts12
 
-   * agent/mibgroup/ucd-snmp/disk.c:
-
-   CHANGES: snmpd: BUG: 1046327: Reset "includeAllDisks" flag when
-   reloading.
+	* agent/mibgroup/ucd-snmp/disk.c:
+	  CHANGES: snmpd: BUG: 1046327: Reset "includeAllDisks" flag when
+	  reloading.
 
 2007-04-02 14:45  dts12
 
-   * agent/mibgroup/ucd-snmp/disk.c:
-
-   CHANGES: snmpd: BUG: 1602286: Don't let table holes block later
-   rows.
+	* agent/mibgroup/ucd-snmp/disk.c:
+	  CHANGES: snmpd: BUG: 1602286: Don't let table holes block later
+	  rows.
 
 2007-04-02 13:51  dts12
 
-   * agent/mibgroup/host/hr_swrun.c:
-
-   CHANGES: snmpd: BUG: 1073782: Restore PerfStat values for FreeBSD
-   5.x systems.
-   It's unclear why the "new" calculation was a) proposed, b)
-   withdrawn,
-   and c) what was wrong with the previous calculation (which seems
-   to
-   match the output of 'ps')
+	* agent/mibgroup/host/hr_swrun.c:
+	  CHANGES: snmpd: BUG: 1073782: Restore PerfStat values for FreeBSD
+	  5.x systems.
+	  It's unclear why the "new" calculation was a) proposed, b)
+	  withdrawn,
+	  and c) what was wrong with the previous calculation (which seems
+	  to
+	  match the output of 'ps')
 
 2007-04-02 13:06  dts12
 
-   * agent/mibgroup/smux/smux.c:
-
-   CHANGES: snmpd: BUG: 902610: Don't discard pending data following
-   a TRAP.
+	* agent/mibgroup/smux/smux.c:
+	  CHANGES: snmpd: BUG: 902610: Don't discard pending data following
+	  a TRAP.
 
 2007-04-02 12:56  dts12
 
-   * agent/mibgroup/smux/smux.c:
-
-   CHANGES: snmpd: BUG: 902801: Fix ordering of SMUX-registered
-   subtrees.
+	* agent/mibgroup/smux/smux.c:
+	  CHANGES: snmpd: BUG: 902801: Fix ordering of SMUX-registered
+	  subtrees.
 
 2007-04-02 12:35  dts12
 
-   * agent/mibgroup/mibII/vacm_vars.c:
-
-   CHANGES: snmpd: BUG: 1685067: More precise handling of
-   SNMPv3-admin MIB tables.
-   This actually fixes three separate problems:
-   *  A GET request for 'vacmAccessStatus."group"."".3.4' will   
-      succeed    (since VACM checks accept the given security level
-      *or*higher*)  2007-04-02 12:26  dts12
-
-
-   * agent/mibgroup/host/hr_storage.c:
-
-   Check that GET requests match a valid OID.
-   (Otherwise a request for hrStorage{Column}.{index}.{anything}
-   will ignore the extra subids, and return success)
+	* agent/mibgroup/mibII/vacm_vars.c:
+	  CHANGES: snmpd: BUG: 1685067: More precise handling of
+	  SNMPv3-admin MIB tables.
+	  This actually fixes three separate problems:
+	  * A GET request for 'vacmGroupName.{group}.0.{anything}' will
+	  succeed
+	  (since the 0 subid acts as a null-terminator for the group name).
+	  * A GET request for 'vacmViewTreeFamilyType."_none".1' will
+	  succeed
+	  (implicitly adding the subid 0 to the incomplete OID index value)
+	  * A GET request for 'vacmAccessStatus."group"."".3.4' will
+	  succeed
+	  (since VACM checks accept the given security level *or*higher*)
+
+2007-04-02 12:26  dts12
+
+	* agent/mibgroup/host/hr_storage.c:
+	  Check that GET requests match a valid OID.
+	  (Otherwise a request for hrStorage{Column}.{index}.{anything}
+	  will ignore the extra subids, and return success)
 
 2007-04-02 12:21  dts12
 
-   * agent/mibgroup/disman/event/mteObjectsTable.c:
-
-   Prevent crash when walking (invalid?) Event-MIB Objects Table.
+	* agent/mibgroup/disman/event/mteObjectsTable.c:
+	  Prevent crash when walking (invalid?) Event-MIB Objects Table.
 
 2007-04-02 11:30  dts12
 
-   * dist/makerelease:
-
-   Fix a couple of typos in the re-worked makerelease script.
+	* dist/makerelease:
+	  Fix a couple of typos in the re-worked makerelease script.
 
 2007-03-29 12:14  tanders
 
-   * configure, configure.in:
-
-   fix syntax error ("==" is bad)
-
-2007-03-27 08:55  dts12
-
-   * acinclude.m4, configure, configure.in:
-
-   Read user-prompted values from original stdin (not /dev/null)
+	* configure, configure.in:
+	  fix syntax error ("==" is bad)
 
 2007-03-27 08:38  dts12
 
-   * configure, configure.in:
-
-   Accept '2c' as a valid response when choosing the default version
+	* configure, configure.in:
+	  Accept '2c' as a valid response when choosing the default version
 
 2007-03-27 08:29  dts12
 
-   * configure, configure.in:
-
-   CHANGES: configure: BUG: 1567324: Clarify prompting for
-   user-supplied values.
-   Now only remembers (and uses) previous values when explicitly
-   told to do so,
-   e.g. configure -C
-
-2007-03-27 08:23  dts12
-
-   * configure, configure.in:
-
-   Fix inconsistency in patch #1627049 - <poll.h> vs <sys/poll.h>
+	* configure, configure.in:
+	  CHANGES: configure: BUG: 1567324: Clarify prompting for
+	  user-supplied values.
+	  Now only remembers (and uses) previous values when explicitly
+	  told to do so,
+	  e.g. configure -C
 
-2007-03-25 22:31  dts12
+2007-03-25 22:32  dts12
 
-   *  local/mib2c.container.conf, local/mib2c.iterate.conf,   
-      local/mib2c.table_data.conf:
-
-   Variable-length string values are more likely than fixed length.
+	* local/mib2c.container.conf, local/mib2c.iterate.conf,
+	  local/mib2c.table_data.conf:
+	  Variable-length string values are more likely than fixed length.
 
 2007-03-25 22:28  dts12
 
-   * local/mib2c.array-user.conf:
-
-   CHANGES: mib2c: BUG: 833673: More focused size checks.
+	* local/mib2c.array-user.conf:
+	  CHANGES: mib2c: BUG: 833673: More focused size checks.
 
 2007-03-25 21:25  dts12
 
-   * agent/snmp_agent.c:
-
-   CHANGES: snmpd: BUG: 1677063: Check for failed malloc calls.
+	* agent/snmp_agent.c:
+	  CHANGES: snmpd: BUG: 1677063: Check for failed malloc calls.
 
 2007-03-25 19:03  dts12
 
-   * agent/mibgroup/mibII/route_write.c:
-
-   Check SET requests against the correct type (IP Address != Octet
-   Str)
-
-2007-03-25 18:55  dts12
+	* agent/mibgroup/mibII/route_write.c:
+	  Check SET requests against the correct type (IP Address != Octet
+	  Str)
 
-   * agent/mibgroup/snmpv3/usmUser.c:
+2007-03-25 18:58  dts12
 
-   CHANGES: snmpd: BUG: 1685081: Check for valid OID on Free/Undo
-   passes.
+	* agent/mibgroup/snmpv3/usmUser.c:
+	  CHANGES: snmpd: BUG: 1685081: Check for valid OID on Free/Undo
+	  passes.
 
 2007-03-23 09:44  dts12
 
-   * include/net-snmp/library/snmp_api.h:
-
-   CHANEGS: snmplib: BUG: 1686384: Document non-use of 'remote_port'
-   field.
+	* include/net-snmp/library/snmp_api.h:
+	  CHANEGS: snmplib: BUG: 1686384: Document non-use of 'remote_port'
+	  field.
 
 2007-03-23 09:19  dts12
 
-   * local/mib2c-conf.d/mfd-persistence.m2i:
-
-   Allow space for external indexes when saving table entries.
-   (See patch #1642255)
-
-2007-03-23 09:14  dts12
-
-   * 
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c:
-
-   CHANGES: snmpd: PATCH: 1642255: Handle saving long
-   snmpNotifyFilterTable entries.
-
-2007-03-23 09:09  dts12
+	* local/mib2c-conf.d/mfd-persistence.m2i:
+	  Allow space for external indexes when saving table entries.
+	  (See patch #1642255)
 
-   *  agent/agent_read_config.c, agent/mibgroup/mibII/vacm_conf.c,   
-      include/net-snmp/library/callback.h, snmplib/read_config.c:
+2007-03-23 09:15  dts12
 
-   CHANGES: snmplib: PATCH: 1681977: Add callbacks prior to reading
-   config.
+	* agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c:
+	  CHANGES: snmpd: PATCH: 1642255: Handle saving long
+	  snmpNotifyFilterTable entries.
 
 2007-03-23 09:06  dts12
 
-   * agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c:
-
-   CHANGES: snmpd: PATCH: 1676478: fix udpEndpointRemoteAddress
-   CHANGES: snmpd: BUG: 1676476: fix udpEndpointRemoteAddress
+	* agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c:
+	  CHANGES: snmpd: PATCH: 1676478: fix udpEndpointRemoteAddress
+	  CHANGES: snmpd: BUG: 1676476: fix udpEndpointRemoteAddress
 
 2007-03-23 09:01  dts12
 
-   * snmplib/snmp_api.c:
-
-   CHANGES: snmplib: PATCH: 1653670: Consistent SNMPv3 behaviour
-   when opening sessions.
-
-2007-03-23 08:57  dts12
-
-   *  configure, configure.in, include/net-snmp/library/snmp_api.h,   
-      include/net-snmp/net-snmp-config.h.in, snmplib/snmp_api.c:
-
-   CHANGES: snmplib: PATCH: 1627049: New API to handle large numbers
-   of file descriptors.
+	* snmplib/snmp_api.c:
+	  CHANGES: snmplib: PATCH: 1653670: Consistent SNMPv3 behaviour
+	  when opening sessions.
 
 2007-03-22 19:14  dts12
 
-   * snmplib/read_config.c:
-
-   CHANGES: snmplib: PATCH: 1681030: Better handling of empty
-   apptype configs.
+	* snmplib/read_config.c:
+	  CHANGES: snmplib: PATCH: 1681030: Better handling of empty
+	  apptype configs.
 
 2007-03-22 19:12  dts12
 
-   *  agent/mibgroup/smux/smux.c, agent/mibgroup/smux/smux.h,   
-      agent/snmpd.c:
-
-   CHANGES: snmpd: PATCH: 1678788: Better handling of SMUX socket
-   descriptors.
+	* agent/mibgroup/smux/smux.c, agent/mibgroup/smux/smux.h,
+	  agent/snmpd.c:
+	  CHANGES: snmpd: PATCH: 1678788: Better handling of SMUX socket
+	  descriptors.
 
 2007-03-22 19:09  dts12
 
-   * agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c:
-
-   CHANGES: snmpd: PATCH: 1683054: set udpEndpointInstance to
-   identify different processes.
+	* agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c:
+	  CHANGES: snmpd: PATCH: 1683054: set udpEndpointInstance to
+	  identify different processes.
 
 2007-03-21 12:35  dts12
 
-   * win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
-
-   Declare OID constants as such (rather than API calls).
-   Proposed by Alex Burger
+	* win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
+	  Declare OID constants as such (rather than API calls).
+	  Proposed by Alex Burger
 
-2007-03-20 20:07  rstory
+2007-03-20 20:08  rstory
 
-   * agent/mibgroup/mibII/kernel_linux.c:
-
-   NEWS: snmpd: PATCH: 1666737: include ipv6 counts in
-   udpInDatagrams, udpNoPorts, udpInErrors, udpOutDatagrams
+	* agent/mibgroup/mibII/kernel_linux.c:
+	  NEWS: snmpd: PATCH: 1666737: include ipv6 counts in
+	  udpInDatagrams, udpNoPorts, udpInErrors, udpOutDatagrams
 
 2007-03-19 22:09  tanders
 
-   * agent/mibgroup/hardware/cpu/cpu_pcp.c:
-
-   use pmFreeResult() instead of free()
-
-2007-03-19 09:39  tanders
+	* agent/mibgroup/hardware/cpu/cpu_pcp.c:
+	  use pmFreeResult() instead of free()
 
-   * agent/mibgroup/ucd-snmp/pass_persist.c:
+2007-03-17 00:25  tanders
 
-   get rid of C++ comments
+	* agent/mibgroup/agentx/subagent.h,
+	  agent/mibgroup/disman/mteTriggerTable.h,
+	  agent/mibgroup/utilities/iquery.h, configure, configure.in:
+	  CHANGES: build: PATCH: 1681073: #ifdef based config_error instead
+	  of special cases in configure
+	  Backport from MAIN.
 
 2007-03-16 14:04  dts12
 
-   *  dist/RELEASE-INSTRUCTIONS, dist/changelogfix, dist/makerelease,   
-      local/Version-Munge.pl:
-
-   Convert build system to SVN version.
-
-2007-03-15 10:59  tanders
-
-   *  agent/mibgroup/agentx/subagent.h,   
-      agent/mibgroup/disman/mteTriggerTable.h,   
-      agent/mibgroup/utilities/iquery.h, configure, configure.in:
-
-   CHANGES: build: PATCH: 1681073: #ifdef based config_error instead
-   of special cases in configure
-
-2007-03-15 10:47  tanders
-
-   * agent/mibgroup/ucd-snmp/pass.c:
-
-   get rid of C++ comments
+	* dist/changelogfix, dist/makerelease, local/Version-Munge.pl:
+	  Convert build system to SVN version.
 
 2007-03-14 23:31  tanders
 
-   *  README.irix, agent/mibgroup/hardware/cpu.h,   
-      agent/mibgroup/hardware/cpu/cpu_pcp.c,   
-      agent/mibgroup/hardware/cpu/cpu_pcp.h:
-
-   NEWS: IRIX: PATCH: 1675869: from bbice: CPU statistics for IRIX
-   based on PCP
-
-2007-03-14 22:09  tanders
-
-   *  agent/helpers/all_helpers.c, agent/helpers/bulk_to_next.c,   
-      agent/helpers/cache_handler.c, agent/helpers/debug_handler.c,   
-      agent/helpers/instance.c, agent/helpers/null.c,   
-      agent/helpers/old_api.c, agent/helpers/read_only.c,   
-      agent/helpers/row_merge.c, agent/helpers/scalar.c,   
-      agent/helpers/scalar_group.c, agent/helpers/serialize.c,   
-      agent/helpers/stash_cache.c, agent/helpers/stash_to_next.c,   
-      agent/helpers/table.c, agent/helpers/table_array.c,   
-      agent/helpers/table_container.c, agent/helpers/table_data.c,   
-      agent/helpers/table_dataset.c, agent/helpers/table_iterator.c,   
-      agent/helpers/table_tdata.c, agent/helpers/watcher.c:
-
-   CHANGES: snmpd: PATCH: 1681043: from magfr: clean up helper
-   includes
-
-2007-03-14 21:54  tanders
-
-   * net-snmp-config.in:
-
-   CHANGES: PATCH: 1681035: from magfr: improve net-snmp-config
-   /bin/sh compatibility
-
-2007-03-14 18:31  tanders
-
-   * net-snmp-config.in:
-
-   CHANGES: build: PATCH: 1678300: from magfr: compile-subagent
-   doesn't call shutdown_ methods
+	* README.irix, agent/mibgroup/hardware/cpu.h,
+	  agent/mibgroup/hardware/cpu/cpu_pcp.c,
+	  agent/mibgroup/hardware/cpu/cpu_pcp.h:
+	  NEWS: IRIX: PATCH: 1675869: from bbice: CPU statistics for IRIX
+	  based on PCP
 
 2007-03-14 16:12  dts12
 
-   * agent/mibgroup/target/target.c:
-
-   CHANGES: snmpd: PATCHES: 1644280: Don't automatically probe for
-   v3 EngineIDs.
+	* agent/mibgroup/target/target.c:
+	  CHANGES: snmpd: PATCHES: 1644280: Don't automatically probe for
+	  v3 EngineIDs.
 
 2007-03-13 10:26  dts12
 
-   * agent/mibgroup/ucd-snmp/disk.c:
+	* agent/mibgroup/ucd-snmp/disk.c:
+	  Check for zero-size pseudo-filesystems. Report them as empty
+	  rather than full, so they won't be treated as an error.
 
-   Check for zero-size pseudo-filesystems. Report them as empty
-   rather than full, so they won't be treated as an error.
+2007-03-13 09:11  tanders
 
-2007-03-13 05:59  tanders
+	* snmplib/mib.c:
+	  Back out changes to branches done in SVN 15953 (patch 1678302)
+	  because they are only appropriate for MAIN
 
-   * agent/mibgroup/hardware/cpu/cpu.h:
+2007-03-13 05:59  tanders
 
-   CHANGES: PATCH: 1678305: from magfr: Deallocate the cache in
-   hardware/cpu/cpu on shutdown (header part)
+	* agent/mibgroup/hardware/cpu/cpu.h:
+	  CHANGES: PATCH: 1678305: from magfr: Deallocate the cache in
+	  hardware/cpu/cpu on shutdown (header part)
 
 2007-03-12 23:09  tanders
 
-   *  agent/mibgroup/notification-log-mib/notification_log.c,   
-      agent/mibgroup/notification-log-mib/notification_log.h:
-
-   CHANGES: PATCH: 1678306: from magfr: Deallocate the log in
-   notification-log-mib/notification_log
+	* agent/mibgroup/notification-log-mib/notification_log.c,
+	  agent/mibgroup/notification-log-mib/notification_log.h:
+	  CHANGES: PATCH: 1678306: from magfr: Deallocate the log in
+	  notification-log-mib/notification_log
 
 2007-03-12 23:04  tanders
 
-   * agent/mibgroup/hardware/cpu/cpu.c:
-
-   CHANGES: PATCH: 1678305: from magfr: Deallocate the cache in
-   hardware/cpu/cpu on shutdown
+	* agent/mibgroup/hardware/cpu/cpu.c:
+	  CHANGES: PATCH: 1678305: from magfr: Deallocate the cache in
+	  hardware/cpu/cpu on shutdown
 
 2007-03-12 22:57  tanders
 
-   * snmplib/mib.c:
-
-   CHANGES: PATCH: 1678302: from magfr: netsnmp_mibindex_load leaks
-   memory
+	* snmplib/mib.c:
+	  CHANGES: PATCH: 1678302: from magfr: netsnmp_mibindex_load leaks
+	  memory
 
 2007-03-12 22:50  tanders
 
-   * snmplib/snmp_api.c:
-
-   CHANGES: PATCH: 1678301: from magfr: deallocate domain registry
-   at shutdown
+	* snmplib/snmp_api.c:
+	  CHANGES: PATCH: 1678301: from magfr: deallocate domain registry
+	  at shutdown
 
 2007-03-12 22:31  tanders
 
-   * net-snmp-config.in:
-
-   CHANGES: PATCH: 1678298: from magfr: compile-subagent checks for
-   bad HAVE_SIGNAL_H
-
-2007-03-12 21:47  dts12
-
-   * agent/mibgroup/if-mib/data_access/interface_linux.c:
-
-   CHANGES: snmpd: PATCHES: 1669048: Add support for
-   ipv6InterfaceIdentifier
+	* net-snmp-config.in:
+	  CHANGES: PATCH: 1678298: from magfr: compile-subagent checks for
+	  bad HAVE_SIGNAL_H
 
 2007-03-12 21:37  dts12
 
-   * agent/helpers/table.c:
-
-   CHANGES: snmpd: BUG: 1413728: Reference index values in debug
-   output correctly.
+	* agent/helpers/table.c:
+	  CHANGES: snmpd: BUG: 1413728: Reference index values in debug
+	  output correctly.
 
 2007-03-12 21:34  dts12
 
-   * agent/mibgroup/ucd-snmp/disk.c:
-
-   CHANGES: snmpd: BUG: 1102058: Skip non-mounted disks (e.g. swap
-   partitions)
+	* agent/mibgroup/ucd-snmp/disk.c:
+	  CHANGES: snmpd: BUG: 1102058: Skip non-mounted disks (e.g. swap
+	  partitions)
 
 2007-03-12 21:30  dts12
 
-   *  agent/mibgroup/if-mib/data_access/interface_linux.c,   
-      agent/mibgroup/if-mib/data_access/interface_solaris2.c,   
-      agent/mibgroup/if-mib/data_access/interface_sysctl.c:
-
-   CHANGES: snmpd: PATCHES: 1668193: Update registration of
-   ReasmMaxSize support.
+	* agent/mibgroup/if-mib/data_access/interface_linux.c,
+	  agent/mibgroup/if-mib/data_access/interface_solaris2.c,
+	  agent/mibgroup/if-mib/data_access/interface_sysctl.c:
+	  CHANGES: snmpd: PATCHES: 1668193: Update registration of
+	  ReasmMaxSize support.
 
 2007-03-12 21:28  dts12
 
-   * agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.c:
-
-   CHANGES: snmpd: PATCHES: 1668193: Fix check for v6 ReasmMaxSize
-   support.
+	* agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.c:
+	  CHANGES: snmpd: PATCHES: 1668193: Fix check for v6 ReasmMaxSize
+	  support.
 
 2007-03-12 19:56  dts12
 
-   * agent/mibgroup/ucd-snmp/proc.c:
-
-   CHANGES: snmpd: PATCHES: 1668952: Ignore zombie processes.
+	* agent/mibgroup/ucd-snmp/proc.c:
+	  CHANGES: snmpd: PATCHES: 1668952: Ignore zombie processes.
 
 2007-03-12 19:54  dts12
 
-   * agent/mibgroup/ip-mib/ip_scalars.c:
-
-   CHANGES: snmpd: PATCHES: 1665985: Implement ipReasmTimeout
-   Though this registers an instance, rather than the full scalar
-   object
+	* agent/mibgroup/ip-mib/ip_scalars.c:
+	  CHANGES: snmpd: PATCHES: 1665985: Implement ipReasmTimeout
+	  Though this registers an instance, rather than the full scalar
+	  object
 
 2007-03-12 19:51  dts12
 
-   * agent/mibgroup/mibII/vacm_vars.c, snmplib/vacm.c:
-
-   CHANGES: library: PATCHES: 1665543: Handle VACM checks correctly.
-   CHANGES: snmpd: PATCHES: 1665549: Handle creating VACM entries
-   correctly.
-   [Both patches are required for correct operation]
+	* agent/mibgroup/mibII/vacm_vars.c, snmplib/vacm.c:
+	  CHANGES: library: PATCHES: 1665543: Handle VACM checks correctly.
+	  CHANGES: snmpd: PATCHES: 1665549: Handle creating VACM entries
+	  correctly.
+	  [Both patches are required for correct operation]
 
 2007-03-12 19:47  dts12
 
-   * agent/mibgroup/smux/smux.c:
-
-   CHANGES: snmpd: PATCHES: 1659623: Handle SMUX peers with an empty
-   password.
-
-2007-03-12 19:44  dts12
-
-   *  agent/mibgroup/ucd-snmp/pass.c,   
-      agent/mibgroup/ucd-snmp/pass_persist.c:
-
-   CHANGES: snmpd: PATCHES: 1657741: Handle 64-bit types via pass
-   mechanism.
+	* agent/mibgroup/smux/smux.c:
+	  CHANGES: snmpd: PATCHES: 1659623: Handle SMUX peers with an empty
+	  password.
 
 2007-03-12 19:40  dts12
 
-   * agent/agent_trap.c:
-
-   CHANGES: snmpd: PATCHES: 1644280: Use the correct engineID when
-   sending v3 traps.
+	* agent/agent_trap.c:
+	  CHANGES: snmpd: PATCHES: 1644280: Use the correct engineID when
+	  sending v3 traps.
 
 2007-03-12 19:32  dts12
 
-   * snmplib/snmp_api.c:
-
-   CHANGES: library: PATCHES: 1642071: Don't fiddle with the storage
-   of pre-existing users.
+	* snmplib/snmp_api.c:
+	  CHANGES: library: PATCHES: 1642071: Don't fiddle with the storage
+	  of pre-existing users.
 
 2007-03-12 19:30  dts12
 
-   * agent/mibgroup/notification/snmpNotifyTable.c:
-
-   CHANGES: snmpd: PATCHES: 1641865: Don't double check snmpTrapOID
-   in the filter table.
+	* agent/mibgroup/notification/snmpNotifyTable.c:
+	  CHANGES: snmpd: PATCHES: 1641865: Don't double check snmpTrapOID
+	  in the filter table.
 
 2007-03-12 19:25  dts12
 
-   *  agent/mibgroup/ucd-snmp/memory_freebsd2.c,   
-      agent/mibgroup/ucd-snmp/memory_netbsd1.c:
-
-   CHANGES: snmpd: PATCHES: 1639726: Report physical memory
-   correctly on *BSD
-
-2007-03-09 21:31  tanders
-
-   * snmplib/mib.c:
-
-   CHANGES: PATCH: 1674299: from magfr: Lessen the scope of the zone
-   variable in dump_realloc_oid_to_inetaddress
-
-2007-03-09 21:29  tanders
-
-   * agent/agent_trap.c:
-
-   CHANGES: PATCH: 1674302: from magfr: Lessen the scope of the len
-   variable in convert_v2pdu_to_v1
+	* agent/mibgroup/ucd-snmp/memory_freebsd2.c,
+	  agent/mibgroup/ucd-snmp/memory_netbsd1.c:
+	  CHANGES: snmpd: PATCHES: 1639726: Report physical memory
+	  correctly on *BSD
 
 2007-03-08 15:52  dts12
 
-   *  include/net-snmp/system/netbsd.h,   
-      include/net-snmp/system/openbsd.h:
-
-   Include Host Resources MIB on NetBSD and OpenBSD
-
-2007-03-07 09:43  tanders
-
-   * agent/agent_trap.c:
-
-   CHANGES: PATCH: 1674298: from magfr: Remove unused sinkport
-   variable
+	* include/net-snmp/system/netbsd.h,
+	  include/net-snmp/system/openbsd.h:
+	  Include Host Resources MIB on NetBSD and OpenBSD
 
 2007-03-06 13:51  dts12
 
-   * agent/snmp_agent.c:
-
-   CHANGES: snmpd: BUG: 1159908: Fix memory leak
-
-2007-03-02 22:40  tanders
-
-   * snmplib/MSG00001.bin:
+	* agent/snmp_agent.c:
+	  CHANGES: snmpd: BUG: 1159908: Fix memory leak
 
-   no eol-style for binary files
+2007-03-02 22:58  tanders
 
-2007-03-02 22:26  tanders
-
-   * doc/rfc/smiV2/rfc2579.errata~:
-
-   don't ship editor backup copies
-
-2007-03-02 16:20  tanders
-
-   * snmplib/MSG00001.bin:
-
-   flag as binary
+	* snmplib/MSG00001.bin:
+	  de-mange binary file
 
 2007-03-02 12:44  tanders
 
-   * CodingStyle:
-
-   fix typo
-
-2007-03-02 09:57  dts12
-
-   * TODO:
-
-   Minor tweak - playing with SVN as much as anything....
-
-2007-03-01 23:57  hardaker
-
-   * NEWS:
-
-   mention that we moved to SVN
+	* CodingStyle:
+	  fix typo
 
 2007-02-28 15:27  dts12
 
-   * CHANGES, ChangeLog, NEWS:
+	* CHANGES, ChangeLog, NEWS:
+	  Checkpoint summary of CVS changes, preparatory for the SVN
+	  switch.
+
+-------------------------------------------------------------------------------
 
-   Checkpoint summary of CVS changes, preparatory for the SVN
-   switch.
+Changes: V5.4 -> SVN checkpoint (V5-4-patches branch)
 
 2007-02-27 13:36  rstory
 
@@ -69208,12 +6177,17 @@ Changes: V5.4 -> V5.5.pre1
 
    add header for easier configure --with-mib-module
 
-2007-02-26 14:54  dts12
+2007-02-27 12:34  rstory
+
+   * agent/mibgroup/ip-mib/ipAddressPrefixTable.h:
+
+   file ipAddressPrefixTable.h was added on branch V5-4-patches on 2007-02-27 12:34:59 +0000
+
+2007-02-26 14:55  dts12
 
    * agent/mibgroup/agentx/protocol.c:
 
    Re-correct interpretation of "null OID" in the AgentX specs.
-   (for the last time, I trust!)
 
 2007-02-26 14:37  dts12
 
@@ -69225,15 +6199,15 @@ Changes: V5.4 -> V5.5.pre1
 
    * perl/: ASN/Makefile.PL, OID/Makefile.PL,
      SNMP/Makefile.PL, TrapReceiver/Makefile.PL,
-     agent/Makefile.PL, agent/default_store/Makefile.PL,
-     default_store/Makefile.PL:
+     agent/Makefile.PL, agent/default_store/Makefile.PL
+, default_store/Makefile.PL:
 
    Prompting for a single directory, not an array.
 
 2007-02-26 11:32  dts12
 
-   * local/: mib2c.container.conf, mib2c.iterate.conf,
-     mib2c.table_data.conf:
+   * local/: mib2c.container.conf, mib2c.iterate.conf
+, mib2c.table_data.conf:
 
    CHANGES: mib2c: BUG: 1429472: Protect against missing instances (and invalid objects)
 
@@ -69251,15 +6225,15 @@ Changes: V5.4 -> V5.5.pre1
 
 2007-02-23 21:53  tanders
 
-   * configure.in, configure:
+   * configure, configure.in:
 
    add quotes to fix shell syntax error when empty
 
-2007-02-22 22:35  tanders
+2007-02-22 22:47  tanders
 
    * configure, configure.in:
 
-   Last commit broke the build. Now escape backslashes properly.
+   Last commit broke the build. Now escape backslashes properly. Please remember to use autoconf 2.59 for the patches branches!
 
 2007-02-22 15:38  dts12
 
@@ -69304,17 +6278,20 @@ Changes: V5.4 -> V5.5.pre1
 
    CHANGES: build: BUG: 1096166: Handle --without-logfile correctly.
 
-2007-02-19 16:34  dts12
+2007-02-19 16:36  dts12
 
-   * dist/RELEASE-INSTRUCTIONS:
+   * dist/: Makefile, nsb-config, nsb-functions
+, nsb-nightly, nsb-package,
+     nsb-platform, patme, README.build-scripts
+:
 
-   Mention removal from CVS of deleted files
+   removed dist files only to be distributed in the main CVS branch
 
-2007-02-19 15:56  dts12
+2007-02-19 16:30  dts12
 
    * dist/RELEASE-INSTRUCTIONS:
 
-   Rework release instructions to take account of "makerelease" script
+   Release Instructions only to be distributed in the main CVS branch
 
 2007-02-19 10:49  dts12
 
@@ -69333,7 +6310,7 @@ Changes: V5.4 -> V5.5.pre1
    * Makefile.in:
 
    Don't invoke 'versiontag' for tagging the CVS tree.
-   It doesn't handle this any more.  (Use 'makerelease' instead)
+   It doesn't handle this any more. (Use 'makerelease' instead)
 
 2007-02-19 10:02  dts12
 
@@ -69394,59 +6371,29 @@ Changes: V5.4 -> V5.5.pre1
 
    added the flow lable mib, which the tunnel-mib refers to
 
-2007-02-05 23:02  tanders
-
-   * dist/nsb-functions:
-
-   more portability fixes
-
-2007-02-05 22:50  tanders
-
-   * dist/check-api-change:
-
-   use /bin/sh unless bash features are really needed
-
-2007-02-05 21:52  rstory
-
-   * Makefile.top:
-
-   note that current should be bumped by 5 when bumped
-
-2007-02-05 21:49  rstory
-
-   * dist/RELEASE-INSTRUCTIONS:
-
-   - note that current should be bumped by 5 when updated
-   - add pointer to new check-api-changes script
-
-2007-02-05 21:46  rstory
+2007-02-07 17:17  hardaker
 
-   * dist/check-api-change:
+   * mibs/IPV6-FLOW-LABEL-MIB.txt:
 
-   simplistic new script to help check for api changes between releases
+   file IPV6-FLOW-LABEL-MIB.txt was added on branch V5-4-patches on 2007-02-07 17:19:10 +0000
 
-2007-02-05 21:38  rstory
+2007-02-05 15:16  dts12
 
-   * agent/mibgroup/struct.h:
+   * snmplib/vacm.c:
 
-   make new struct member conditional, since use is conditional
+   CHANGES: snmplib: PATCH: 1641895: Extend short view masks (as per RFC specs)
+   Patch supplied by Michael Kirkham.
 
-2007-02-05 21:20  tanders
+2007-02-05 15:10  rstory
 
    * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c:
 
    move function call out of assert
 
-2007-02-05 15:16  dts12
-
-   * snmplib/vacm.c:
-
-   CHANGES: snmplib: PATCH: 1641895: Extend short view masks (as per RFC specs)
-   Patch supplied by Michael Kirkham.
-
-2007-02-05 14:31  dts12
+2007-02-05 14:38  dts12
 
-   * agent/mibgroup/notification/snmpNotifyFilterProfileTable.c:
+   * agent/mibgroup/notification/snmpNotifyFilterProfileTable.c
+:
 
    CHANGES: snmpd: PATCH: 1639360: Fix snmpNotifyFilterProfileTable row creation.
    Patch supplied by Michael Kirkham.
@@ -69458,83 +6405,26 @@ Changes: V5.4 -> V5.5.pre1
    Fix compilation if LOCK_PER_CALLBACK_SUBID not defined.
    Reported by Emi Yanagi
 
-2007-02-05 09:48  dts12
-
-   * FAQ:
-
-   Spelling correction: 'superceded' -> 'superseded'
-   (Oh, the shame of it!)
-
 2007-01-31 13:51  tanders
 
    * Makefile.top:
 
    CHANGES: build: BUG: 1647976: Cygwin/MinGW Windows build fails due to libtool error
 
-2007-01-30 13:39  tanders
+2007-01-30 13:43  tanders
 
    * agent/mibgroup/if-mib/data_access/interface_linux.c:
 
    CHANGES: build: yet another fix to address build issues with ethtool (on RH9).
    Patch provided by Magnus Fromreide.
 
-2007-01-30 09:10  dts12
-
-   * FAQ:
-
-   Clarify when symlink fix is/isn't appropriate.  Synch with Wiki.
-
-2007-01-29 11:12  dts12
-
-   * FAQ:
-
-   Authenticated SNMPv3 requests still need a username.  (Synch with Wiki)
-
 2007-01-29 11:03  tanders
 
-   * python/netsnmp/client_intf.c, agent/helpers/table.c
-:
-
-   get rid of C++ comments
-
-2007-01-28 13:36  tanders
-
-   * dist/nsb-functions:
-
-   fix bad test
-
-2007-01-28 13:06  tanders
-
-   * dist/nsb-functions:
-
-   rename variable to resolve name clash and to unbreak nightly builds on Solaris
-
-2007-01-28 12:52  tanders
-
-   * agent/helpers/table_tdata.c:
-
-   get rid of C++ comments
-
-2007-01-27 14:40  tanders
-
-   * dist/nsb-nightly:
-
-   fix typo
-
-2007-01-27 14:23  tanders
-
-   * agent/helpers/table_data.c:
+   * python/netsnmp/client_intf.c:
 
    get rid of C++ comments
 
-2007-01-26 11:15  tanders
-
-   * dist/: nsb-config, nsb-functions, nsb-nightly
-, nsb-package:
-
-   more Bourne shell compatibility fixes
-
-2007-01-25 22:41  tanders
+2007-01-25 22:45  tanders
 
    * configure, configure.in:
 
@@ -69548,7 +6438,6 @@ Changes: V5.4 -> V5.5.pre1
 
 2007-01-25 22:05  tanders
 
-   *
      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_subagent.c
 , local/mib2c-conf.d/subagent.m2c:
 
@@ -69566,70 +6455,12 @@ Changes: V5.4 -> V5.5.pre1
 
    CHANGES: snmpd: PATCH: 1644714: from "Leland Wallace": replace last remaining instance of deprecated copy_word by copy_nword
 
-2007-01-25 15:30  tanders
-
-   * dist/: nsb-config, nsb-functions, nsb-nightly
-, nsb-package, nsb-platform:
-
-   many Bourne shell portability fixes
-
-2007-01-24 16:39  dts12
-
-   * dist/: nsb-config, nsb-functions, nsb-nightly
-, nsb-package, nsb-platform:
-
-   Pre-Posix Bourne shell compatability.
-
 2007-01-24 14:02  dts12
 
    * agent/mibgroup/ucd-snmp/disk.c:
 
    Tweak debug output
 
-2007-01-24 13:58  dts12
-
-   * local/mib2c-update:
-
-   Shellscript portability.  (Everything has /bin/sh)
-
-2007-01-24 13:49  dts12
-
-   * dist/: cvsshow, cvsup, nsb-config,
-     nsb-functions, nsb-nightly, nsb-package,
-     nsb-platform:
-
-   Improve shell-script portability. (Everything has /bin/sh!)
-
-2007-01-24 13:40  dts12
-
-   * snmplib/: snmpUDPDomain.c, snmp_client.c:
-
-   Extra debugging output
-
-2007-01-24 13:38  dts12
-
-   * agent/helpers/table.c, agent/helpers/table_container.c
-, agent/helpers/table_data.c,
-     agent/helpers/table_tdata.c, include/net-snmp/agent/table.h
-, include/net-snmp/agent/table_container.h,
-     include/net-snmp/agent/table_tdata.h:
-
-   Preliminary table unregistration API.
-
-2007-01-24 13:11  dts12
-
-   * apps/snmptrapd_log.c:
-
-   Move hostname translation into the transport-specific library routines.
-   (Where it belongs!)
-
-2007-01-24 13:04  dts12
-
-   * include/net-snmp/library/snmp_transport.h,
-     snmplib/snmpUDPDomain.c:
-
-   Basic framework for transport-specific translation of hostnames.
-
 2007-01-24 12:27  dts12
 
    * apps/snmptrapd_log.c:
@@ -69646,7 +6477,8 @@ Changes: V5.4 -> V5.5.pre1
 
    * agent/mibgroup/:
      ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c
-, ip-mib/ipAddressTable/ipAddressTable_interface.c,
+, ip-mib/ipAddressTable/ipAddressTable_interface.c
+,
      ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c
 ,
      ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c
@@ -69696,7 +6528,6 @@ Changes: V5.4 -> V5.5.pre1
 
    CHANGES: snmptrapd: BUG: 1638225: Fix interpretation of transport address data.
    (Keep this consistent with snmpUDPDomain.c)
-   This does not feel the right way to handle this!
 
 2007-01-23 14:10  dts12
 
@@ -69725,7 +6556,8 @@ Changes: V5.4 -> V5.5.pre1
 
 2007-01-22 16:16  dts12
 
-   * agent/mibgroup/agentx/: master.c, master_admin.c:
+   * agent/mibgroup/agentx/: master_admin.c, master.c
+:
 
    CHANGES: snmpd: PATCH: 1641685: Handle unresponsive AgentX subagents more reliably.
    Fix provided by Josef Moellers
@@ -69752,14 +6584,7 @@ Changes: V5.4 -> V5.5.pre1
    CHANGES: FreeBSD: BUG: 1633483: Support CPU HAL on FreeBSD4.x
    (before CPU definitions were moved to <sys/resource.h>)
 
-2007-01-19 16:15  dts12
-
-   * apps/snmptrapd.c:
-
-   library layering improvements: *move* (rather than copy) global variables
-   from snmptrapd to libnetsnmptrapd
-
-2007-01-19 14:18  tanders
+2007-01-19 14:22  tanders
 
    * configure, configure.in,
      agent/mibgroup/if-mib/data_access/interface_linux.c:
@@ -69769,26 +6594,13 @@ Changes: V5.4 -> V5.5.pre1
 
 2007-01-19 11:25  tanders
 
-   * configure.in, configure,
+   * configure, configure.in,
      include/net-snmp/net-snmp-config.h.in,
      agent/mibgroup/host/hr_filesys.c,
      agent/mibgroup/host/hr_storage.c:
 
    CHANGES: build: add configure check for hasmntopt to fix the build on systems that lack it
 
-2007-01-18 12:50  tanders
-
-   * apps/snmptrapd_handlers.c:
-
-   library layering improvements: move global variables from snmptrapd to libnetsnmptrapd
-
-2007-01-18 11:13  tanders
-
-   * apps/snmptrapd.c, apps/snmptrapd_handlers.c,
-     man/snmptrapd.8.def, man/snmptrapd.conf.5.def:
-
-   drop "-e"/printEventNumbers support for snmptrapd (obsolete, deprecated and breaks library layering)
-
 2007-01-16 10:04  dts12
 
    * agent/mibgroup/notification/snmpNotifyTable.c:
@@ -69809,12 +6621,6 @@ Changes: V5.4 -> V5.5.pre1
 
    Don't hardcode the size of counter64 structure (may be wrong on 64-bit boxes)
 
-2007-01-16 09:00  dts12
-
-   * agent/agent_trap.c:
-
-   Extra debugging output.
-
 2007-01-11 22:13  tanders
 
    * agent/mibgroup/util_funcs.c,
@@ -69824,16 +6630,10 @@ Changes: V5.4 -> V5.5.pre1
 
    CHANGES: snmplib: library layering improvements: introduce netsnmp_mktemp to prevent libnetsnmpagent from depending on libnetsnmpmibs
 
-2007-01-11 21:35  hardaker
-
-   * configure.in:
-
-   changed autoconf req to 2.61
-
 2007-01-11 21:28  hardaker
 
-   * snmplib/: snmpAAL5PVCDomain.c, snmpIPXDomain.c,
-     snmpSTDDomain.c, snmpTCPDomain.c,
+   * snmplib/: snmpAAL5PVCDomain.c, snmpIPXDomain.c
+, snmpSTDDomain.c, snmpTCPDomain.c,
      snmpTCPIPv6Domain.c, snmpUDPDomain.c,
      snmpUDPIPv6Domain.c, snmp_service.c,
      snmp_transport.c:
@@ -69858,12 +6658,6 @@ Changes: V5.4 -> V5.5.pre1
 
    CHANGES: Solaris: IF-MIB fix: add missing return at end of get_if_stats
 
-2007-01-08 08:30  tanders
-
-   * agent/Makefile.in:
-
-   CHANGES: build: library layering improvements: build libraries in the correct order (libnetsnmpagent before libnetsnmphelpers before libnetsnmpmibs)
-
 2007-01-07 19:47  tanders
 
    * include/net-snmp/library/snmp_service.h:
@@ -69877,7 +6671,7 @@ Changes: V5.4 -> V5.5.pre1
    CHANGES: Solaris: BUG: 1626153: no hrSWRun informations on Solaris zones
    Patch provided by Klaus Muehlfeld
 
-2007-01-06 00:30  tanders
+2007-01-06 00:34  tanders
 
    * perl/agent/agent.xs:
 
@@ -69889,17 +6683,12 @@ Changes: V5.4 -> V5.5.pre1
 
    get rid of C++ comments
 
-2007-01-02 23:33  tanders
+2007-01-03 22:23  tanders
 
-   * agent/agent_registry.c:
-
-   BUG: Coverity #173: remove superfluous NULL check (already dereferenced earlier anyway)
-
-2007-01-02 23:08  tanders
-
-   * snmplib/system.c:
+   * perl/SNMP/: SNMP.xs, t/conf.t:
 
-   only log a message when the mib_indexes directory is *really* created
+   clean up compile and fix tests.
+   Backport from 5.5.dev
 
 2007-01-02 22:53  tanders
 
@@ -69913,62 +6702,6 @@ Changes: V5.4 -> V5.5.pre1
 
    BUG: Coverity #193: properly initialize session pointer before use
 
-2007-01-02 20:13  tanders
-
-   * agent/agent_registry.c:
-
-   back out previous bad change to agent registry
-
-2007-01-02 19:52  tanders
-
-   * agent/snmp_agent.c:
-
-   CHANGES: snmpd: PATCH: 1601453: from "Robert Wilcox": Dynamic Memory failure handling improvements
-
-2007-01-02 19:52  tanders
-
-   * snmplib/default_store.c, snmplib/read_config.c,
-     agent/agent_registry.c, agent/helpers/null.c,
-     agent/helpers/old_api.c, agent/helpers/stash_cache.c
-, agent/helpers/table.c, agent/helpers/table_array.c
-, agent/helpers/table_dataset.c,
-     snmplib/snmpCallbackDomain.c, snmplib/snmpusm.c,
-     agent/helpers/table_iterator.c, agent/helpers/watcher.c
-, agent/mibgroup/header_complex.c,
-     agent/mibgroup/testhandler.c,
-     agent/mibgroup/disman/mteObjectsTable.c,
-     agent/mibgroup/mibII/interfaces.c,
-     agent/mibgroup/notification/snmpNotifyFilterProfileTable.c,
-     agent/mibgroup/notification/snmpNotifyTable.c,
-     agent/mibgroup/utilities/override.c:
-
-   CHANGES: PATCH: 1601453: from "Robert Wilcox": Dynamic Memory failure handling improvements
-
-2007-01-02 17:56  tanders
-
-   * Makefile.in:
-
-   remove LD_RUN_PATH comment for python
-
-2007-01-02 17:38  tanders
-
-   * Makefile.top, configure, net-snmp-config.in
-:
-
-   CHANGES: build: update to autoconf 2.61
-
-2007-01-02 17:23  tanders
-
-   * Makefile.in, include/net-snmp/system/kfreebsd.h:
-
-   NEWS: Ports: PATCH: 1623874: from "Petr Salinger": add GNU/kFreeBSD support
-
-2007-01-02 17:17  tanders
-
-   * agent/mibgroup/ucd-snmp/disk.c:
-
-   CHANGES: build: add workaround for AC_FUNC_GETMNTENT() bug in autoconf 2.60b and 2.61 (see Debian bugs #403243, #403079)
-
 2007-01-02 16:48  dts12
 
    * local/mib2c:
@@ -69978,8 +6711,8 @@ Changes: V5.4 -> V5.5.pre1
 
 2007-01-02 16:00  dts12
 
-   * snmplib/: snmpUDPDomain.c, snmpUDPIPv6Domain.c,
-     snmpUnixDomain.c:
+   * snmplib/: snmpUDPDomain.c, snmpUDPIPv6Domain.c
+, snmpUnixDomain.c:
 
    CHANGES: snmplib: BUG: 1600171: Support longer community strings in VACM config.
    Patch provided by Robert Wilcox
@@ -69991,27 +6724,20 @@ Changes: V5.4 -> V5.5.pre1
    CHANGES: snmpd: BUG: 1546817: Fix snmpEnterprise varbind when forwarding v1 traps.
    Patch provided by Pablo Passera.
 
-2007-01-02 10:34  dts12
+2007-01-02 10:38  dts12
 
    * configure, configure.in:
 
    CHANGES: build: PATCH: 1625135: configure location of python interpreter
    Provided by Andrew Langmead
 
-2007-01-02 10:34  dts12
+2007-01-02 10:38  dts12
 
    * Makefile.in, Makefile.top:
 
    NEWS: configure: PATCH 1625135: configure location of python interpreter
    Provided by Andrew Langmead
 
-2007-01-02 10:22  dts12
-
-   * configure.in, configure:
-
-   CHANGES: build: PATCH: 1624406: option to hardcode location of mount table
-   Submitted by Jochen
-
 2007-01-01 17:44  dts12
 
    * agent/mibgroup/util_funcs.c:
@@ -70019,33 +6745,12 @@ Changes: V5.4 -> V5.5.pre1
    CHANGES: snmpd: PATCH: 1601188, BUG: 1600432: Handle signals properly when restarting the agent.
    Fix provided by Loic Domaigne.
 
-2007-01-01 17:35  dts12
-
-   * snmplib/mib.c:
-
-   Handle non-writable MIB indexes (e.g. run as non-privileged user)
-
-2007-01-01 16:09  dts12
+2007-01-01 16:12  dts12
 
-   * include/net-snmp/library/snmp_api.h, snmplib/snmp_client.c
-:
+   * snmplib/snmp_client.c:
 
    NEWS: snmplib: PATCHES 1592706: Fix memory leak when cloning varbinds.
-   Based on a suggestion by Steven Dorigotti.
-
-2007-01-01 16:09  dts12
-
-   * snmplib/snmp_api.c:
-
-   CHANGES: snmplib: PATCH: 1592706: Fix memory leak when cloning varbinds.
-   Based on a suggestion by Steven Dorigotti.
-
-2007-01-01 15:48  dts12
-
-   * agent/mibgroup/ucd-snmp/: pass.c, pass_persist.c:
-
-   NEWS: agent: PATCH 1585146: Extend range of available error codes
-   Submitted by Anthony Novatsis.
+   Patch by Steven Dorigotti.
 
 2007-01-01 15:29  dts12
 
@@ -70056,8 +6761,8 @@ Changes: V5.4 -> V5.5.pre1
 
 2007-01-01 15:16  dts12
 
-   * apps/: snmpdf.c, snmpget.c, snmpgetnext.c,
-     snmpset.c:
+   * apps/: snmpdf.c, snmpget.c, snmpgetnext.c
+, snmpset.c:
 
    Move global 'failures' variable closer to where it is used.
    CHANGES: apps: PATCH: 1529523: Close SNMP session on failure.
@@ -70069,16 +6774,6 @@ Changes: V5.4 -> V5.5.pre1
    Protect against potential double delete.
    Patch provided by Magnus Fromreide.
 
-2007-01-01 14:22  dts12
-
-   * include/net-snmp/library/mib.h, snmplib/mib.c,
-     snmplib/parse.c:
-
-   Maintain MIB directory index files under /var/net-snmp
-   (in line with File Hierarchy Standard specifications)
-   See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=389434
-   and discussion "MIBs in net-snmp" on coders list (Oct 2006)
-
 2007-01-01 11:28  dts12
 
    * agent/mibgroup/agentx/master_admin.c:
@@ -70086,12 +6781,6 @@ Changes: V5.4 -> V5.5.pre1
    Ensure sysORDescriptions are null-terminated, so they can be
    safely passed to 'strdup()'.  Reported by Wolfgang Pedot.
 
-2006-12-29 17:25  dts12
-
-   * FAQ:
-
-   Synchronise with Wiki version.
-
 2006-12-28 23:29  tanders
 
    * snmplib/snmpUDPDomain.c:
@@ -70121,9 +6810,10 @@ Changes: V5.4 -> V5.5.pre1
 
 2006-12-17 18:01  alex_b
 
-   * win32/: Makefile-apps.in, libsnmp_dll/Makefile.in,
-     snmpd/Makefile.in, snmpdsdk/Makefile.in,
-     snmpnetstat/Makefile.in, snmptrapd/Makefile.in:
+   * win32/: Makefile-apps.in, libsnmp_dll/Makefile.in
+, snmpd/Makefile.in, snmpdsdk/Makefile.in
+, snmpnetstat/Makefile.in,
+     snmptrapd/Makefile.in:
 
    Add gdi32.lib to fix linking problem when using the static version of the
    SSL libraries.  Thanks to Simon Edwards for the fix.
@@ -70136,15 +6826,15 @@ Changes: V5.4 -> V5.5.pre1
 
 2006-12-12 23:53  tanders
 
-   * agent/mibgroup/host/: hr_filesys.c, hr_storage.c,
-     hr_swinst.c:
+   * agent/mibgroup/host/: hr_filesys.c, hr_storage.c
+, hr_swinst.c:
 
    CHANGES: Linux: PATCH: 1581294: from "Michael Tatarinov": host-resources improvements
 
 2006-12-12 21:27  tanders
 
-   * win32/net-snmp/: net-snmp-config.h, net-snmp-config.h.in
-:
+   * win32/net-snmp/: net-snmp-config.h,
+     net-snmp-config.h.in:
 
    re-add UDP_ADDRESSES_IN_HOST_ORDER
 
@@ -70160,7 +6850,7 @@ Changes: V5.4 -> V5.5.pre1
 
    CHANGES: Win32: fix win32/Configure --with-ipv6
 
-2006-12-12 18:10  tanders
+2006-12-12 18:21  tanders
 
    * win32/net-snmp/net-snmp-config.h:
 
@@ -70172,88 +6862,13 @@ Changes: V5.4 -> V5.5.pre1
 
    Add version to FAQ.html.
 
-2006-12-09 17:11  alex_b
-
-   * man/: Makefile.in, make_index.pl, man_sections.txt
-:
-
-   -Create html pages for ALL man pages.
-   -Improve error message when creating the index.html file.
-
-2006-12-09 17:06  alex_b
-
-   * local/: html-add-header-footer.pl, html-textfile-fix.pl
-:
-
-   Add tidy command line option and add missing README files.
-
 2006-12-09 00:16  tanders
 
-   * include/net-snmp/system/: darwin8.h, darwin9.h:
+   * include/net-snmp/system/: darwin8.h, darwin9.h
+:
 
    CHANGES: MacOSX: PATCH: 1600453: from "Chris Jalbert": OS X compile-time endian determination
 
-2006-12-08 22:47  tanders
-
-   * dist/RELEASE-INSTRUCTIONS:
-
-   document some more post-release tasks
-
-2006-12-08 22:26  tanders
-
-   * man/netsnmp_agent.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_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_request_info_s.3,
-     man/netsnmp_netsnmp_table_registration_info_s.3,
-     man/netsnmp_netsnmp_table_request_info_s.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_rows.3
-, man/netsnmp_tdata.3, man/netsnmp_util.3,
-     man/netsnmp_utilities.3, man/netsnmp_variable_list.3
-, man/netsnmp_watcher.3, perl/ASN/ASN.pm,
-     perl/AnyData_SNMP/Storage.pm, perl/OID/OID.pm,
-     perl/SNMP/SNMP.pm, perl/TrapReceiver/TrapReceiver.pm
-, perl/agent/agent.pm, perl/agent/Support/Support.pm
-, perl/agent/default_store/default_store.pm,
-     perl/default_store/default_store.pm, configure,
-     configure.in, doxygen.conf, sedscript.in,
-     dist/Makefile, dist/net-snmp.spec,
-     snmplib/snmp_version.c, FAQ, README:
-
-   - version tag ( 5.5.dev )
-
 2006-12-08 22:20  tanders
 
    * local/Version-Munge.pl:
@@ -70266,31 +6881,24 @@ Changes: V5.4 -> V5.5.pre1
 
    NEWS: BUG: 1611524: fix tcp connection table fd leak
 
-2006-12-08 13:17  marz
+2006-12-07 15:56  tanders
 
-   * perl/SNMP/: Makefile.PL, SNMP.pm:
-
-   revert uninformed version change
-
-2006-12-07 21:50  uid39039
+   * agent/mibgroup/hardware/: cpu.h, cpu/cpu_mach.c
+, cpu/cpu_mach.h:
 
-   * perl/SNMP/: Makefile.PL, SNMP.pm, SNMP.xs,
-     t/conf.t:
+   NEWS: MacOSX: PATCH: 1600522: from "Bill Fenner": CPU HAL implementation for mach/darwin
 
-   clean up compile and fix tests
+2006-12-07 15:54  tanders
 
-2006-12-07 16:48  marz
+   * agent/mibgroup/hardware/cpu/cpu_mach.c:
 
-   * perl/SNMP/SNMP.pm:
+   file cpu_mach.c was added on branch V5-4-patches on 2006-12-07 15:56:38 +0000
 
-   comment fix
+2006-12-07 15:54  tanders
 
-2006-12-07 15:52  tanders
+   * agent/mibgroup/hardware/cpu/cpu_mach.h:
 
-   * agent/mibgroup/hardware/: cpu.h, cpu/cpu_mach.c,
-     cpu/cpu_mach.h:
-
-   NEWS: MacOSX: PATCH: 1600522: from "Bill Fenner": CPU HAL implementation for mach/darwin
+   file cpu_mach.h was added on branch V5-4-patches on 2006-12-07 15:56:38 +0000
 
 2006-12-07 13:10  tanders
 
@@ -70298,12 +6906,6 @@ Changes: V5.4 -> V5.5.pre1
 
    CHANGES: documentation: PATCH: 1604580: SNMP(3) manual page corrections (spotted by tek-ops)
 
-2006-12-06 20:30  hardaker
-
-   * dist/RELEASE-INSTRUCTIONS:
-
-   document various aspects of post-release things to do
-
 2006-12-06 15:34  rstory
 
    * agent/mibgroup/tunnel/tunnel.c:
@@ -70342,39 +6944,6 @@ Changes: V5.4 -> V5.5.pre1
 
    CHANGES: BUG: 1600093: autoconf 2.60 breaks the build
 
-2006-12-04 17:49  hardaker
-
-   * COPYING:
-
-   change top text to remove history section which was out of date
-
-2006-12-03 23:20  alex_b
-
-   * win32/: dist/README.build.win32.txt,
-     netsnmpmibssdk/netsnmpmibssdk.dsp:
-
-   Win32:  Workspace compile fix, build instructions update.
-
-2006-11-24 17:53  hardaker
-
-   * FAQ, README, configure, configure.in
-, sedscript.in, snmplib/snmp_version.c,
-     dist/net-snmp.spec:
-
-   - version tag ( 5.4 )
-
-2006-11-24 17:52  hardaker
-
-   * CHANGES, NEWS:
-
-   version update
-
-2006-11-24 17:48  hardaker
-
-   * ChangeLog:
-
-   version update
-
 -------------------------------------------------------------------------------
 
 Changes: V5.4.rc3 -> V5.4
@@ -74200,7 +10769,6 @@ Changes: V5.3 -> V5.4.pre1
 
 2006-08-17 07:50  rstory
 
-   *
      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c
 , local/mib2c-conf.d/mfd-interface.m2c:
 
@@ -75203,7 +11771,6 @@ Changes: V5.3 -> V5.4.pre1
 
 2006-06-12 13:05  rstory
 
-   *
      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c
 :
 
@@ -76695,7 +13262,7 @@ Changes: V5.3 -> V5.4.pre1
 
    * agent/mibgroup/ip-mib/data_access/ipaddress_linux.c:
 
-   Handle full-length IPv6 addresses.  Fix supplied by Radek Vokॆअआॆअ�l
+   Handle full-length IPv6 addresses.  Fix supplied by Radek Vokál
 
 2006-01-30 01:52  dts12
 
@@ -76742,7 +13309,7 @@ Changes: V5.3 -> V5.4.pre1
 , snmplib/snmp_api.c, perl/SNMP/SNMP.pm:
 
    Handle non-increasing OIDs during a (perl) bulkwalk.
-   Patch #1364650 from Ole Bjॆअआॆअ�rn Hessen
+   Patch #1364650 from Ole Bjørn Hessen
 
 2006-01-27 03:07  dts12
 
@@ -77196,7 +13763,6 @@ Changes: V5.3 -> V5.4.pre1
 
 2006-01-10 03:07  tanders
 
-   *
      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c
 :
 
@@ -77204,7 +13770,6 @@ Changes: V5.3 -> V5.4.pre1
 
 2006-01-09 17:41  tanders
 
-   *
      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c
 :
 
@@ -78216,7 +14781,6 @@ Changes: V5.2 -> V5.3
 
 2005-12-09 20:58  rstory
 
-   *
      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access.c
 :
 
@@ -78239,7 +14803,6 @@ Changes: V5.2 -> V5.3
 
 2005-12-09 20:57  rstory
 
-   *
      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c
 :
 
@@ -79520,7 +16083,6 @@ Changes: V5.2 -> V5.3
 
 2005-11-16 15:18  rstory
 
-   *
      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c
 :
 
@@ -79660,7 +16222,6 @@ Changes: V5.2 -> V5.3
 
 2005-11-15 21:14  rstory
 
-   *
      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c
 :
 
@@ -79674,7 +16235,6 @@ Changes: V5.2 -> V5.3
 
 2005-11-15 21:08  rstory
 
-   *
      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c
 :
 
@@ -79704,7 +16264,6 @@ Changes: V5.2 -> V5.3
 
 2005-11-15 19:24  rstory
 
-   *
      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c
 :
 
@@ -79821,7 +16380,6 @@ Changes: V5.2 -> V5.3
 
 2005-11-14 17:28  rstory
 
-   *
      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c
 :
 
@@ -81103,7 +17661,6 @@ Changes: V5.2 -> V5.3
 
 2005-10-28 23:27  rstory
 
-   *
      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.h
 :
 
@@ -81111,7 +17668,6 @@ Changes: V5.2 -> V5.3
 
 2005-10-28 23:26  rstory
 
-   *
      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c
 :
 
@@ -83180,7 +19736,6 @@ Changes: V5.2 -> V5.3
 
 2005-09-27 19:25  rstory
 
-   *
      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c
 :
 
@@ -83893,7 +20448,6 @@ Changes: V5.2 -> V5.3
 
 2005-09-06 19:17  tanders
 
-   *
      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/.cvsignore
 :
 
@@ -84006,7 +20560,6 @@ Changes: V5.2 -> V5.3
 
 2005-08-30 08:06  rstory
 
-   *
      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_constants.h
 :
 
@@ -86843,7 +23396,6 @@ Changes: V5.2 -> V5.3
 
 2005-03-28 14:29  rstory
 
-   *
      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c
 :
 
@@ -86873,7 +23425,7 @@ Changes: V5.2 -> V5.3
    * local/mib2c-conf.d/mfd-interface.m2c:
 
    - pass NULL to config handler reg, to use current apptype
-   - add separators and headers when saving persistent data
+   - add seperators and headers when saving persistent data
    - remove extraneous newline in persistent data
 
 2005-03-24 22:06  rstory
@@ -86884,7 +23436,6 @@ Changes: V5.2 -> V5.3
 
 2005-03-24 16:48  rstory
 
-   *
      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_access.c
 :
 
@@ -87622,7 +24173,6 @@ Changes: V5.2 -> V5.3
 
 2005-01-27 22:52  rstory
 
-   *
      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_access.c
 :
 
@@ -89378,7 +25928,6 @@ Changes: V5.1 -> V5.2
 
 2004-10-17 20:56  rstory
 
-   *
      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.c
 :
 
@@ -89799,7 +26348,6 @@ Changes: V5.1 -> V5.2
 
 2004-10-14 18:15  rstory
 
-   *
      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.h
 :
 
@@ -90148,7 +26696,6 @@ Changes: V5.1 -> V5.2
 
 2004-10-08 19:27  rstory
 
-   *
      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.c
 :
 
@@ -90156,7 +26703,6 @@ Changes: V5.1 -> V5.2
 
 2004-10-08 19:25  rstory
 
-   *
      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.c
 :
 
@@ -91210,7 +27756,6 @@ Changes: V5.1 -> V5.2
 
 2004-09-24 09:15  rstory
 
-   *
      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c
 :
 
@@ -91270,7 +27815,6 @@ Changes: V5.1 -> V5.2
 
 2004-09-23 13:24  rstory
 
-   *
      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_set.c
 :
 
@@ -91447,7 +27991,6 @@ Changes: V5.1 -> V5.2
 
 2004-09-21 06:43  hardaker
 
-   *
      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_get.c
 :
 
@@ -92481,7 +29024,7 @@ Changes: V5.1 -> V5.2
 
    * agent/mibgroup/ucd-snmp/disk.c:
 
-   fix float calc in var_extensible_disk per Harald Straॆआ�berger <hs at syslog.at>
+   fix float calc in var_extensible_disk per Harald Stra�berger <hs at syslog.at>
 
 2004-08-31 14:02  hardaker
 
@@ -92640,7 +29183,6 @@ Changes: V5.1 -> V5.2
 
 2004-08-27 23:22  rstory
 
-   *
      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.c
 :
 
@@ -93501,7 +30043,6 @@ Changes: V5.1 -> V5.2
 
 2004-07-10 19:51  rstory
 
-   *
      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_data_access.c
 :
 
@@ -93586,7 +30127,6 @@ Changes: V5.1 -> V5.2
 
 2004-07-09 22:58  hardaker
 
-   *
      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_set.c
 :
 
@@ -93665,7 +30205,6 @@ Changes: V5.1 -> V5.2
 
 2004-07-09 09:57  hardaker
 
-   *
      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/.cvsignore
 :
 
@@ -93809,7 +30348,6 @@ Changes: V5.1 -> V5.2
 
 2004-07-07 13:41  rstory
 
-   *
      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c
 :
 
@@ -94637,7 +31175,6 @@ Changes: V5.1 -> V5.2
 
 2004-06-28 15:11  rstory
 
-   *
      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_constants.h
 :
 
@@ -95068,7 +31605,7 @@ Changes: V5.1 -> V5.2
    * configure.in, configure:
 
    Fix handling of --enable-local-smux option
-   (Patch #949808 from Erik ॆअइnggॆआ�rd)
+   (Patch #949808 from Erik �ngg�rd)
 
 2004-06-18 06:46  dts12
 
@@ -97308,7 +33845,6 @@ Changes: V5.1 -> V5.2
 
 2004-04-13 11:44  rstory
 
-   *
      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c
 :
 
@@ -97316,7 +33852,6 @@ Changes: V5.1 -> V5.2
 
 2004-04-13 11:43  rstory
 
-   *
      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c
 :
 
@@ -114489,7 +51024,7 @@ Changes: V5.0.9 -> V5.1
 
    * agent/helpers/instance.c:
 
-   Report non-existent subinstances as 'noSuchInstance' rather than 'noSuchObject'.
+   Report non-exitent 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')
    
@@ -126034,7 +62569,7 @@ Changes: V5.0.9 -> V5.1
    * agent/mibgroup/host/: hr_swrun.c (V4-2-patches.5), hr_swrun.c
 :
 
-   Fix Linux file descriptor leak (reported by Oliver Fॆआ�nger)
+   Fix Linux file descriptor leak (reported by Oliver F�nger)
    
 2001-03-14 05:22  jbpn
 
@@ -130559,7 +67094,7 @@ Changes: V5.0.9 -> V5.1
 
    * agent/mibgroup/ucd-snmp/memory.c:
 
-   - (memory.c): Patch from Ragnar Kjॆआऐrstad:
+   - (memory.c): Patch from Ragnar Kj�rstad:
      - fixed linux problem: wrong params getting returned.
    
 2000-05-25 05:38  mslifcak
@@ -132339,7 +68874,7 @@ Changes: V5.0.9 -> V5.1
 
    - (configure* ucd-snmp/vmstat_solaris2.c):
      - Provide missing 'getpagesize' routine for Solaris 2.4
-       (Thanks to Ragnar Kjॆआऐrstad)
+       (Thanks to Ragnar Kj�rstad)
    
 2000-02-16 20:17  mslifcak
 
@@ -139667,7 +76202,7 @@ Changes: V5.0.9 -> V5.1
      loadave.c, memory_solaris2.c, pass.c, pass_persist.c, proc.c,
      versioninfo.c, alarm.c, event.c, Makefile.in, parse.c, snmp.c,
      snmp_debug.c, snmp_logging.c, snmp_logging.h): Patch from Ragnar
-     Kjॆआऐrstad:
+     Kj�rstad:
      - do file, stderr, and syslog support.
    
 1999-07-15 08:45  hardaker
@@ -139810,7 +76345,7 @@ Changes: V5.0.9 -> V5.1
 
    * agent/snmpd.c:
 
-   - (snmpd.c): Patch from Ragnar Kjॆआऐrstad:
+   - (snmpd.c): Patch from Ragnar Kj�rstad:
      - Add options for switching to a given uid and gid.
    
 1999-07-08 15:16  hardaker
@@ -156579,7 +93114,7 @@ Changes: V5.0.7 -> V5.0.8
 
    * snmplib/mib.c:
 
-   Fix a C precedence botch-up, thanks to Fabr५���cio Las Casas <Fabricio at atan.com.br>
+   Fix a C precedence botch-up, thanks to Fabr�cio Las Casas <Fabricio at atan.com.br>
    
 2003-02-26 14:14  nba
 
@@ -162900,7 +99435,7 @@ Changes: V5.0 -> V5.0.1
 
    * agent/helpers/instance.c:
 
-   Report non-existent subinstances as 'noSuchInstance' rather than 'noSuchObject'.
+   Report non-exitent 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')
    
@@ -173362,7 +109897,7 @@ Changes: V4.2 -> V5.0
 
    * agent/mibgroup/host/: hr_swrun.c (V4-2-patches.5), hr_swrun.c:
 
-   Fix Linux file descriptor leak (reported by Oliver Fॆआ�nger)
+   Fix Linux file descriptor leak (reported by Oliver F�nger)
    
 2001-03-14 05:22  jbpn
 
@@ -177607,7 +114142,7 @@ Changes: V4.2 -> V4.2.1
 
    * agent/mibgroup/host/hr_swrun.c:
 
-   Fix Linux file descriptor leak (reported by Oliver Fॆआ�nger)
+   Fix Linux file descriptor leak (reported by Oliver F�nger)
    
 2001-03-13 13:20  hardaker
 
@@ -180853,7 +117388,7 @@ Changes: V4.1.2 -> V4.2
 	
 2000-05-25 10:07  hardaker
 
-	- (memory.c): Patch from Ragnar Kjॆआऐrstad:
+	- (memory.c): Patch from Ragnar Kj�rstad:
 	  - fixed linux problem: wrong params getting returned.
 	
 2000-05-25 05:38  mslifcak
@@ -182042,7 +118577,7 @@ Changes: V4.1.2 -> V4.2
 
 	- (configure* ucd-snmp/vmstat_solaris2.c):
 	  - Provide missing 'getpagesize' routine for Solaris 2.4
-	    (Thanks to Ragnar Kjॆआऐrstad)
+	    (Thanks to Ragnar Kj�rstad)
 	
 2000-02-16 20:17  mslifcak
 
@@ -187376,7 +123911,7 @@ hardaker  8 Jul 99 15:16:35
     - (snmpdelta.c, int64.c, int64.h): minimal c64 support for snmpdelta. Untested.
 
 hardaker  8 Jul 99 16:02:58
-    - (snmpd.c): Patch from Ragnar Kjॆआऐrstad:
+    - (snmpd.c): Patch from Ragnar Kj�rstad:
       - Add options for switching to a given uid and gid.
 
 daves  9 Jul 99 01:49:49
@@ -187423,7 +123958,7 @@ hardaker 20 Jul 99 14:02:26
       loadave.c, memory_solaris2.c, pass.c, pass_persist.c, proc.c,
       versioninfo.c, alarm.c, event.c, Makefile.in, parse.c, snmp.c,
       snmp_debug.c, snmp_logging.c, snmp_logging.h): Patch from Ragnar
-      Kjॆआऐrstad:
+      Kj�rstad:
       - do file, stderr, and syslog support.
 
 hardaker 20 Jul 99 17:06:53
diff --git a/FAQ b/FAQ
index 7cabe2e..81d88a4 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.7.2.1
+	        Net-SNMP Version: 5.4.3 SVN branch
 	    Net-SNMP/UCD-SNMP Project Leader: Wes Hardaker
 	     Email: net-snmp-coders at lists.sourceforge.net
 
@@ -459,11 +459,8 @@ How do I submit a patch or bug report?
   doesn't contain a decent description field.
 
   The best way to submit patch (diff) information is by checking out
-  the current code from the development git trunk, making your changes
-  and then running "git diff" or "git format-patch" after you're done.
-
-  (Please see http://www.net-snmp.org/wiki/index.php/Git for further
-  information on using git with the Net-SNMP project)
+  the current code from the development SVN trunk, making your changes
+  and then running "svn diff" after you're done.
 
   If you're working from a source code distribution, and comparing old
   and new versions of a code file, use "diff -u OLDFILE NEWFILE" 
@@ -1314,7 +1311,7 @@ How do I send traps and notifications?
   covered in the AGENT and CODING sections.
 
   You should also read the snmptrap tutorial at
-        http://www.net-snmp.org/wiki/index.php/TUT:snmptrap
+	http://www.net-snmp.org/tutorial-5/commands/snmptrap.html
   which will help you understand everything you need to know about traps.
 
 
@@ -1351,7 +1348,7 @@ How do I receive traps and notifications?
         forward default                  10.0.0.2
 
   There's a tutorial with more details on the web site at
-        http://www.net-snmp.org/wiki/index.php/TUT:snmptrap
+	http://www.net-snmp.org/tutorial-5/commands/snmptrap.html
 
 
 
@@ -2158,15 +2155,6 @@ What's the difference between 'exec', 'sh', 'extend' and 'pass'?
   output is returned in a fixed format, and it is up to the receiving
   application to interpret this appropriately.
 
-  Note that the "relocatable" form of the 'exec' directive ('exec OID ....')
-  produces MIB output that is not strictly valid. For this reason, support
-  for this has been deprecated in favour of 'extend OID ...', which produces
-  well-formed MIB results (as well as providing fuller functionality).
-  The most recent releases of the agent don't include support for "relocatable
-  exec" by default. This needs to be explicitly included when the agent is
-  first compiled, by including the module 'ucd-snmp/extensible' instead of
-  'agent/extend'.
-
 
   'pass' is a more general mechanism for implementing arbitrary MIB
   objects.  The specified command will be invoked for any request within
@@ -2603,7 +2591,7 @@ The agent is complaining about 'snmpd.conf'.  Where is this?
 
 
 Why does the agent complain about 'no access control information'?
------------------------------------------------------------------
+------------------------------------------------------------------
 
   Although an SNMP agent may support a wide range of management
   information, it is not necessarily appropriate to report the whole
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index cd8c1fa..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-ACLOCAL_AMFLAGS = -I m4
diff --git a/Makefile.in b/Makefile.in
index 4d00168..077f6bc 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,3 @@
-
 #
 # Makefile.in (at the root of net-snmp)
 #
@@ -7,7 +6,6 @@ top_builddir	= .
 VPATH		= @srcdir@
 
 SUBDIRS		= snmplib @MAINSUBS@
-FTSUBDIRS	= @FTMAINSUBS@ snmplib
 TESTDIRS	= testing
 
 CPP		= @CPP@ 					        \
@@ -15,22 +13,18 @@ CPP		= @CPP@ 					        \
 		-DDONT_INC_STRUCTS -DBINDIR=$(bindir) 		        \
 		$(EXTRACPPFLAGS)
 
-INSTALLHEADERS=version.h net-snmp-features.h
+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 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 \
-	hpux.h irix.h linux.h mingw32.h mips.h netbsd.h osf5.h \
-	openbsd.h openbsd5.h openbsd4.h \
+	darwin.h darwin7.h darwin8.h darwin9.h freebsd5.h freebsd6.h \
+	dynix.h freebsd2.h freebsd3.h freebsd4.h freebsd.h generic.h hpux.h \
+	irix.h linux.h mingw32.h mips.h netbsd.h openbsd.h osf5.h \
 	solaris2.3.h solaris2.4.h solaris2.5.h solaris2.6.h \
-	solaris.h sunos.h svr5.h sysv.h ultrix4.h
+	solaris.h sunos.h svr5.h sysv.h ultrix4.h dragonfly.h
 INCLUDESUBDIR2=machine
 INCLUDESUBDIRHEADERS2=generic.h
 INSTALLBUILTHEADERS=include/net-snmp/net-snmp-config.h
-INSTALLBUILTINCLUDEHEADERS=@FEATUREHEADERS@
-INSTALLBINSCRIPTS=net-snmp-config net-snmp-create-v3-user
+INSTALLBINSCRIPTS=net-snmp-config
 INSTALLUCDHEADERS=ucd-snmp-config.h version.h mib_module_config.h
 
 #
@@ -46,20 +40,13 @@ UCDPERSISTENT_DIRECTORY=@UCDPERSISTENT_DIRECTORY@
 # perl specific
 #
 # yes, order matters here.  default_store must occur before anything else
-PERLMODULES=default_store SNMP ASN OID agent TrapReceiver
-PERLMODULEFTS=perl/default_store/netsnmp-feature-definitions.ft \
-	perl/SNMP/netsnmp-feature-definitions.ft \
-	perl/ASN/netsnmp-feature-definitions.ft \
-	perl/OID/netsnmp-feature-definitions.ft \
-	perl/agent/netsnmp-feature-definitions.ft \
-	perl/TrapReceiver/netsnmp-feature-definitions.ft
+PERLMODULES=default_store SNMP ASN OID agent
 PERLARGS=@PERLARGS@
 
 #
 # python specific
 #
 PYTHONARGS=@PYTHONARGS@
-PYTHONMODULEFTS=python/netsnmp/netsnmp-feature-definitions.ft
 
 #
 # libtool
@@ -67,14 +54,9 @@ PYTHONMODULEFTS=python/netsnmp/netsnmp-feature-definitions.ft
 LIBTOOL_DEPS = @LIBTOOL_DEPS@
 
 #
-# feature checks for optional components
-#
-FTOTHERTARGS=@PERLFEATURES@ @PYTHONFEATURES@
-
-#
 # targets
 #
-all:    sedscript EXAMPLE.conf  @FEATURETARGS@ standardall net-snmp-config-x net-snmp-create-v3-user @PERLTARGS@ @PYTHONTARGS@
+all:    sedscript EXAMPLE.conf standardall net-snmp-config-x @PERLTARGS@ @PYTHONTARGS@
 
 start-flag:
 	@touch build-in-progress-flag
@@ -86,23 +68,22 @@ libtool:	$(LIBTOOL_DEPS)
 	$(SHELL) ./config.status --recheck
 
 
-snmplib: @FEATURETARGS@
+snmplib:
 	@(cd snmplib; $(MAKE) )
 
-agent: @FEATURETARGS@
+agent:
 	@(cd snmplib; $(MAKE) )
 	@(cd agent; $(MAKE) )
 
-apps: @FEATURETARGS@
+apps:
 	@(cd snmplib; $(MAKE) )
-	@(cd agent; $(MAKE) libs)
 	@(cd apps; $(MAKE) )
 
-snmpget snmpbulkget snmpwalk snmpbulkwalk snmptranslate snmpstatus snmpdelta snmptable snmptest snmpset snmpusm snmpvacm snmpgetnext encode_keychange snmpdf snmptrap snmptls: @FEATURETARGS@
+snmpget snmpbulkget snmpwalk snmpbulkwalk snmptranslate snmpstatus snmpdelta snmptable snmptest snmpset snmpusm snmpvacm snmpgetnext encode_keychange snmpdf snmptrap:
 	@(cd snmplib; $(MAKE) )
 	@(cd apps; $(MAKE) $@ )
 
-agentxtrap snmptrapd: @FEATURETARGS@
+snmptrapd:
 	@(cd snmplib; $(MAKE) )
 	@(cd agent; $(MAKE) libs)
 	@(cd apps; $(MAKE) $@ )
@@ -112,7 +93,6 @@ agentxtrap snmptrapd: @FEATURETARGS@
 #
 sedscript: sedscript.in include/net-snmp/net-snmp-config.h $(srcdir)/agent/mibgroup/mibdefs.h
 	$(CPP) $(srcdir)/sedscript.in | egrep '^s[/#]' | sed 's/REMOVEME//g;s# */#/#g;s/ *#/#/g;s#/ *#/#g;s/# g/#g/;' > sedscript
-	echo 's/VERSIONINFO/$(VERSION)/g' >> sedscript
 	echo 's#DATADIR#$(datadir)#g' >> sedscript
 	echo 's#LIBDIR#$(libdir)#g' >> sedscript
 	echo 's#BINDIR#$(bindir)#g' >> sedscript
@@ -122,21 +102,24 @@ sedscript: sedscript.in include/net-snmp/net-snmp-config.h $(srcdir)/agent/mibgr
 EXAMPLE.conf: sedscript EXAMPLE.conf.def
 	$(SED) -f sedscript $(srcdir)/EXAMPLE.conf.def > EXAMPLE.conf
 
-docs: docsdir 
+docs: docsdir mancp
 
 docsdir: docsdox
 
 docsdox: doxygen.conf
-	srcdir=$(srcdir) VERSION=$(VERSION) doxygen $(srcdir)/doxygen.conf
+	srcdir=$(srcdir) 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
 	touch net-snmp-config-x
 
-net-snmp-create-v3-user-x: net-snmp-create-v3-user
-	chmod a+x net-snmp-create-v3-user
-	touch net-snmp-create-v3-user-x
-
 #
 # extra install rules
 #
@@ -149,8 +132,11 @@ copypersistentfiles:
 #
 # test targets
 #
-test test-mibs testall testfailed testsimple: all testdirs
-	( cd testing; $(MAKE) $@ )
+test: all testdirs
+	( cd testing; $(MAKE) test )
+
+test-mibs: all testdirs
+	( cd testing; $(MAKE) test-mibs )
 
 testdirs:
 	for i in $(TESTDIRS) ; do	\
@@ -163,7 +149,7 @@ testdirs:
 distall: ${srcdir}/configure ${srcdir}/include/net-snmp/net-snmp-config.h 
 
 OTHERCLEANTARGETS=EXAMPLE.conf sedscript
-OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pythoncleanfeatures
+OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@
 
 #
 # perl specific build rules
@@ -204,25 +190,17 @@ perlclean:
 	@if test -f perl/Makefile; then \
 	   ( cd perl ; $(MAKE) clean ) ; \
 	fi
-
 perlrealclean:
 	@if test -f perl/Makefile; then \
 	   ( cd perl ; $(MAKE) realclean ) ; \
 	fi
 
-.h.ft:
-	$(FEATURECHECK) --feature-global $(top_builddir)/include/net-snmp/feature-details.h `dirname $<` $< $@ $(CC) -I $(top_builddir)/include -I $(top_srcdir)/include -E $(CPPFLAGS) $(CFLAGS) -c
-
-perlfeatures: $(PERLMODULEFTS)
-
-perlcleanfeatures:
-	$(RM) $(PERLMODULEFTS)
-
 
+#
 # python specific build rules
 #
 PYMAKE=$(PYTHON) setup.py $(PYTHONARGS)
-pythonmodules: subdirs
+pythonmodules: 
 	@(dir=`pwd`; cd python; $(PYMAKE) build --basedir=$$dir) ; \
         if test $$? != 0 ; then \
            exit 1 ; \
@@ -246,10 +224,6 @@ pythontest:
 pythonclean:
 	@(dir=`pwd`; cd python; $(PYMAKE) clean --basedir=$$dir)
 
-pythonfeatures: $(PYTHONMODULEFTS)
-
-pythoncleanfeatures:
-	$(RM) $(PYTHONMODULEFTS)
 
 #
 # make distclean completely removes all traces of building including
@@ -268,15 +242,12 @@ makefileclean:
 configclean: makefileclean
 	rm -f config.cache config.status config.log \
 		libtool include/net-snmp/net-snmp-config.h \
-		net-snmp-config net-snmp-config-x configure-summary \
-		net-snmp-create-v3-user net-snmp-create-v3-user-x
+		net-snmp-config net-snmp-config-x configure-summary
 	rm -f mibs/.index
 	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 \
-		include/net-snmp/feature-details.h                  \
-		snmplib/snmpsm_init.h snmplib/snmpsm_shutdown.h     \
-                snmplib/transports/snmp_transport_inits.h           \
+		snmplib/snmpsm_init.h                   \
 		agent/mibgroup/agent_module_includes.h 	\
 		agent/mibgroup/agent_module_inits.h 	\
 		agent/mibgroup/agent_module_shutdown.h 	\
@@ -305,28 +276,8 @@ Makefile: Makefile.in config.status Makefile.rules Makefile.top
 	    echo "WARNING: not running config.status"; \
 	fi
 
-configure_ac = configure.ac \
-	configure.d/config_modules_agent \
-	configure.d/config_modules_lib \
-	configure.d/config_os_functions \
-	configure.d/config_os_headers \
-	configure.d/config_os_libs1 \
-	configure.d/config_os_libs2 \
-	configure.d/config_os_misc1 \
-	configure.d/config_os_misc2 \
-	configure.d/config_os_misc3 \
-	configure.d/config_os_misc4 \
-	configure.d/config_os_progs \
-	configure.d/config_os_struct_members \
-	configure.d/config_project_ipv6_types \
-	configure.d/config_project_manual \
-	configure.d/config_project_paths \
-	configure.d/config_project_perl_python \
-	configure.d/config_project_types \
-	configure.d/config_project_with_enable
-
 $(srcdir)/include/net-snmp/net-snmp-config.h.in: stamp-h.in
-$(srcdir)/stamp-h.in: $(configure_ac) acconfig.h
+$(srcdir)/stamp-h.in: configure.in acconfig.h
 	@if test "x$(NOAUTODEPS)" = "x" -a "x$(AUTOHEADER)" != "x:"; then \
 	    cd ${srcdir} && LC_COLLATE=C $(AUTOHEADER); \
 	    echo timestamp > ${srcdir}/stamp-h.in; \
@@ -345,7 +296,7 @@ stamp-h: include/net-snmp/net-snmp-config.h.in config.status
 	    echo "WARNING: not running config.status"; \
 	fi
 
-$(srcdir)/configure: $(configure_ac) aclocal.m4
+$(srcdir)/configure: configure.in aclocal.m4
 	@if test "x$(NOAUTODEPS)" = "x" -a "x$(AUTOCONF)" != "x:"; then \
 	    cd ${srcdir} && $(AUTOCONF); \
 	    echo "Please run configure now."; \
@@ -354,30 +305,6 @@ $(srcdir)/configure: $(configure_ac) aclocal.m4
 	    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"; \
@@ -415,35 +342,25 @@ tarclean:
 	fi
 
 checks:
-	$(MAKE) -k makefilecheck commentcheck warningcheck dependcheck \
-	assertcheck perlcalloccheck
+	$(MAKE) -k makefilecheck commentcheck warningcheck dependcheck
 
 dependcheck:
 	@echo "Checking for full paths in dependency files..."
-	@if grep -n -E "^/" `$(FIND) $(top_srcdir) -name Makefile.depend`; then false; fi
+	@grep -n -E "^/" `$(FIND) $(top_srcdir) -name Makefile.depend` && exit 1
 
 warningcheck:
 	@echo "Checking for cpp warnings..."
-	@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
+	@grep -n -E "#warning" `$(FIND) $(top_srcdir) -name \*.\[ch\]` && exit 1
 
 commentcheck:
 	@echo "Checking for C++ style comments..."
-	@if grep -n -E "([^:)n]|^)//" `$(FIND) $(top_srcdir) -path './win32' -prune -o -name \*.\[ch\] | grep -v agent/mibgroup/winExtDLL.c`; then false; fi
+	@grep -n -E "([^:)n]|^)//" `$(FIND) $(top_srcdir) -path './win32' -prune -o -name \*.\[ch\] | grep -v agent/mibgroup/winExtDLL.c` && exit 1
 
+# always exit 1, since I can't figure out how to invert grep rc
 makefilecheck:
 	@echo "Checking for non-portable Makefile constructs..."
-	@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
+	@grep -n "\.c=" `$(FIND) $(top_srcdir) -name "Makefile.*"`
+	@exit 1
 
 dist: tar
 
@@ -456,4 +373,3 @@ FAQ.html:
 	snmpget snmpbulkget snmpwalk snmpbulkwalk snmptranslate snmpstatus \
 	snmpdelta snmptable snmptest snmpset snmpusm snmpvacm snmpgetnext \
 	encode_keychange snmpdf snmptrap snmptrapd
-.PHONY: perlfeatures pythonfeatures
diff --git a/Makefile.rules b/Makefile.rules
index 9e9e900..65687ef 100644
--- a/Makefile.rules
+++ b/Makefile.rules
@@ -14,62 +14,6 @@ standardall: subdirs $(STANDARDTARGETS)
 
 objs: ${OBJS} ${LOBJS}
 
-# features require that subdirs be made *first* to get dependency
-# collection processed in the right order
-.PHONY: features ftobjs ftsubdirs
-features: $(FTOTHERTARGS) ftsubdirs ftobjs $(FEATUREFILE)
-ftobjs: $(FTOBJS)
-$(FEATUREFILE): $(FTOBJS) $(top_builddir)/include/net-snmp/feature-details.h
-	cat $(FTOBJS) > $(FEATUREFILE).in
-	$(FEATUREPROCESS) $(FEATUREFILE) $(top_builddir)/include/net-snmp/feature-details.h @FEATURE_REMOVE_FLAGS@ @FEATURE_ADD_FLAGS@
-ftsubdirs:
-	@if test "$(FTSUBDIRS)" != ""; then \
-	    SUBDIRS="$(FTSUBDIRS)" ;        \
-        else 			 	    \
-            SUBDIRS="$(SUBDIRS)" ;          \
-        fi ;                                \
-	if test "$$SUBDIRS" != ""; then \
-		it="$$SUBDIRS" ; \
-		for i in $$it ; do \
-			echo "making features in `pwd`/$$i"; \
-			( cd $$i ; $(MAKE) features ) ; \
-			if test $$? != 0 ; then \
-				exit 1 ; \
-			fi  \
-		done \
-	fi
-
-.PHONY: cleanfeatures cleanfeaturessubdirs
-cleanfeatures: cleanfeaturessubdirs
-	       rm -f $(FTOBJS)
-	       rm -f $(FEATUREFILE)
-	       rm -f $(top_builddir)/include/net-snmp/feature-details.h
-
-cleanfeaturessubdirs:
-	@if test "$(FTSUBDIRS)" != ""; then \
-	    SUBDIRS="$(FTSUBDIRS)" ;        \
-        else 			 	    \
-            SUBDIRS="$(SUBDIRS)" ;          \
-        fi ;                                \
-	if test "$$SUBDIRS" != ""; then \
-		it="$$SUBDIRS" ; \
-		for i in $$it ; do \
-			echo "making cleanfeatures in `pwd`/$$i"; \
-			( cd $$i ; $(MAKE) cleanfeatures ) ; \
-			if test $$? != 0 ; then \
-				exit 1 ; \
-			fi  \
-		done \
-	fi
-
-# feature-check definitions
-.SUFFIXES: .ft
-.c.ft:
-	@test -f $(top_builddir)/include/net-snmp/feature-details.h || \
-	    echo "/* Generated by make. Do not modify directly */" \
-		> $(top_builddir)/include/net-snmp/feature-details.h
-	$(FEATURECHECK) --feature-global $(top_builddir)/include/net-snmp/feature-details.h $(mysubdir) $< $@ $(CC) -E $(CPPFLAGS) $(CFLAGS) -c
-
 subdirs:
 	@if test "$(SUBDIRS)" != ""; then \
 		it="$(SUBDIRS)" ; \
@@ -98,7 +42,6 @@ installprogs: installbin installsbin
 # headers
 #
 # set INSTALLHEADERS to a list of things to install in each makefile.
-# set INSTALLBUILTINCLUDEHEADERS a list built and placed into include/net-snmp/
 # set INSTALLBUILTHEADERS to a list of things to install from builddir
 # set INSTALLSUBDIRHEADERS and INSTALLSUBDIR to subdirectory headers
 # set INSTALLSUBDIRHEADERS2 and INSTALLSUBDIR2 to more subdirectory headers
@@ -107,16 +50,6 @@ installprogs: installbin installsbin
 installheaders: installlocalheaders @installucdheaders@ installsubdirheaders
 
 installlocalheaders:
-	@if test "$(INSTALLBUILTINCLUDEHEADERS)" != "" ; then \
-		echo creating directory $(INSTALL_PREFIX)$(includedir) ; \
-		it="$(INSTALLBUILTINCLUDEHEADERS)" ; \
-		$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(includedir)/library ; \
-		$(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(includedir)/agent ; \
-		for i in $$it ; do \
-			$(INSTALL_DATA) include/net-snmp/$$i $(INSTALL_PREFIX)$(includedir)/$$i ; \
-			echo "installing $$i in $(INSTALL_PREFIX)$(includedir)/$$i" ; \
-		done \
-	fi
 	@if test "$(INSTALLHEADERS)" != "" ; then \
 		echo creating directory $(INSTALL_PREFIX)$(includedir) ; \
 		it="$(INSTALLHEADERS)" ; \
@@ -394,7 +327,7 @@ uninstallsubdirs:
 # cleaning targets
 #
 clean: cleansubdirs $(OTHERCLEANTODOS)
-	$(LIBTOOLCLEAN) ${OBJS} ${LOBJS}  ${FTOBJS} core $(STANDARDCLEANTARGETS) $(OTHERCLEANTARGETS)
+	$(LIBTOOLCLEAN) ${OBJS} ${LOBJS} core $(STANDARDCLEANTARGETS) $(OTHERCLEANTARGETS)
 
 cleansubdirs:
 	@if test "$(SUBDIRS)" != ""; then \
@@ -471,5 +404,5 @@ distdependdirs:
 .PHONY: clean cleansubdirs lint \
 	install installprogs installheaders installlibs \
 	installbin installsbin installsubdirs \
-	all subdirs standardall objs features \
+	all subdirs standardall objs \
 	depend nosysdepend distdepend dependdirs nosysdependdirs distdependdirs
diff --git a/Makefile.top b/Makefile.top
index 862fb94..b5219c4 100644
--- a/Makefile.top
+++ b/Makefile.top
@@ -1,7 +1,7 @@
 #
 # Minimum environment and virtual path setup
 #
-SHELL		= @SHELL@
+SHELL		= /bin/sh
 srcdir		= @srcdir@
 top_srcdir	= @top_srcdir@
 VERSION		= @VERSION@
@@ -15,7 +15,6 @@ exec_prefix	= @exec_prefix@
 bindir		= @bindir@
 sbindir		= @sbindir@
 libdir		= @libdir@
-datarootdir	= @datarootdir@
 datadir		= @datadir@
 includedir	= @includedir@/net-snmp
 ucdincludedir	= @includedir@/ucd-snmp
@@ -36,8 +35,6 @@ INSTALL_PREFIX  = $(DESTDIR)
 INSTALL		= $(LIBTOOL) --mode=install @INSTALL@
 UNINSTALL	= $(LIBTOOL) --mode=uninstall rm -f
 LIBTOOLCLEAN	= $(LIBTOOL) --mode=clean rm -f
-FEATURECHECK	= $(top_srcdir)/local/minimalist/feature-check
-FEATUREPROCESS	= $(top_srcdir)/local/minimalist/feature-remove
 INSTALL_DATA    = @INSTALL_DATA@
 SED		= @SED@
 LN_S		= @LN_S@
@@ -64,7 +61,7 @@ LINKCC	        = @LINKCC@
 # The (slightly clarified) rules:
 #
 # - If any interfaces/structures have been removed or changed since the
-#   last update, increment current (+5), and set age and revision to 0. Stop.
+#   last update, increment current, and set age and revision to 0. Stop.
 #
 # - If any interfaces have been added since the last public release, then
 #   increment current and age, and set revision to 0. Stop.
@@ -78,15 +75,15 @@ LINKCC	        = @LINKCC@
 # 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  = 30
-LIBAGE      = 0
+# 
+LIBCURRENT  = 16
+LIBAGE      = 1
 LIBREVISION = 2
 
 LIB_LD_CMD      = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) -o
 LIB_EXTENSION   = la
 LIB_VERSION     =
-LIB_LDCONFIG_CMD = $(LIBTOOL) --mode=finish $(INSTALL_PREFIX)$(libdir)
+LIB_LDCONFIG_CMD = $(LIBTOOL) --mode=finish $(libdir)
 LINK		= $(LIBTOOL) --mode=link $(LINKCC)
 # RANLIB 	= @RANLIB@
 RANLIB		= :
diff --git a/NEWS b/NEWS
index afde3b2..e46980a 100644
--- a/NEWS
+++ b/NEWS
@@ -3,319 +3,94 @@ Please see the CHANGES file for a more detailed list of specific bugs/patches
 that have been fixed/applied, and the ChangeLog file for a comprehensive
 listing of all changes made to the code.
 
-*5.7.2.1*
-    snmpd:
-      - SECURITY: a denial of service attack vector was discovered on
-        the linux implementation of the ICMP-MIB.  This release fixes
-        this bug and all users are encouraged to update their SNMP
-        agent if they make use of the ICMP-MIB table objects.
-
-*5.7.2*
-    snmp:
-      - BUG: 3526549: CVE-2012-2141 Array index error leading to crash
-
-    snmpd:
-      - BUG: 3532090: Fix high ifIndex values crashing hrDeviceDescr
-
-    building:
-      - PATCH: 2091156: correctly declare dependencies in Makefile. 'make
-        -j <N>' should work now. Backport this to V5-4 as it is needed for
-        correct operation in the single threaded case of make miblib as
-        well.
-
-    Many other miscellaneous minor bug fixes
-
-*5.7.1*
-
-  libnetsnmp:
-      - Fixed the mib-parsing-bug introduced shortly before 5.7
-
-  agent:
-      - fixed rounding errors for disk percentage calculations
-
-  openbsd:
-      - better support for recent openbsd releases
-
-  features:
-      - bug fixes with minimalist support after additional user feedback
-
-  Many other miscellaneous minor bug fixes
-
-*5.7*
-
-  snmpd:
-      - Delivery of data via regularily scheduled notifications.
-        (see "Data Delivery via Notfications" in snmpd.conf)
-      - Many time-based config options can take (m)ins, (h)ours, ... arguments
-        (see the snmpd.conf manual page)
-      - The PING and TRACEROUTE MIBs now compile and work-ish on linux
-        http://www.net-snmp.org/wiki/index.php/DISMAN
-      - Mib handlers can now implement a data_clone function for
-        cloning the myvoid structure variable to avoid dangling pointers
-      - Fixed persistent storage of VACM MIB configuration
-      - Multi-homed agents send UDP responses from the proper IP address
-      - The hrStorageTable implementation now supports large filesystems better
-      - optimizations for large route tables
-      - Added a deliveryByNotify config token for regular data delivery
-        (see the snmpd.conf manual page and the NET-SNMP-PERIODIC-NOTIFY-MIB)
-      - [PATCH 3141462]: fix agentx subagent issues with multiple-object requests
-      - [PATCH 3057093]: linux uses libpci for creating useful ifDescr strings
-      - [PATCH 3131397]: huge speedups of the TCP/UDP Tables
-
-  libnetsnmp:
-      - Removed the older CMU compatibility support
-      - The SSH transport is now configurable
-
-  TLS/DTLS support:
-      - The SNMP over DTLS transport now properly supports IPv6
-      - Introduced new configuration tokens: localCert/peerCert
-        (deprecating serverCert, clientCert, defX509ServerPub, defX509ClientPub)
-      - Various fixes for the TLS/DTLS transports
-
-  apps:
-      - Added a per-variable timed output support to snmpwalk using -CT
-      - snmpinform now correctly uses the local engineID for informs
-      - A number of mib2c bug fixes
-      - New snmp.conf tokens for timeouts and retries
-
-  building:
-      - New flags to reduce the amount of compiled code to bare minimums.
-        This is provided by a new generic feature marking/selection mechanism.
-        http://www.net-snmp.org/wiki/index.php/Feature_Marking_and_Selection
-      - It's now possible to build without SNMPv3/USM
-        (e.g., if you only want TLS/DTLS with SNMPv3/TSM)
-      - It's possible to build the suite with no SET support
-        configure using --enable-read-only
-      - It's possible to build the agent as a notify-only agent
-        configure using --enable-notify-only
-      - Added a script to test memory usage with various config options
-        (see the local/minimalist/sizetests script)
-      - Net-SNMP can now be built to perform local DNSSEC validation
-        (install DNSSEC-Tools' libval and use --with-local-dnssec-validation)
-
-  testing:
-      - a number of new API unit-tests have been added to the suite
-        (to run the tests: cd testing && ./RUNFULLTESTS -g unit-tests)
-      - The unit tests can be more easily run under valgrind
-        (See http://bit.ly/jsgRnv for details)
-
-  openbsd:
-      - Support for updating the routing table via SNMP
-
-  win32:
-      - The testing suite works better under win32 environments
-      - Many building fixes for the win32 environment(s)
-
-  solaris:
-      - Net-SNMP now supports the SCTP-MIB
-
-  DragonFlyBSD, FreeBSD8:
-      - Net-SNMP should now work on DragonFlyBSD and FreeBSD8
-
-  And of course:
-      - Many other bug fixes.  See the CHANGES and ChangeLog for details.
-
-*5.6*
-
-    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
+*5.4.3*
 
     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.
+      - Change default AgentX target from 0.0.0.0:705 to localhost:705
+      - Fix CVE-2008-4309 (GETBULK issue reported by Oscar Mira-Sanchez)
+      - 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.
+      - Latch large-disk statistics at 2Tb (rather than wrapping)
 
-    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
+    Linux:
+      - Fix build on modern distributions (using rpm-4.6)
 
-    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.
+    Windows:
+      - Fix various builds (recent MSVC, MinGW, IPv6, winExtDLL)
 
-    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
+*5.4.2*
 
-    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
-         (see the "alias" keyword in the snmp.conf manual page)
-      - The -t (timeout) switch will accept floating point numbers (eg: .1)
+    snmplib:
+      - [PATCH 1921861]: Avoid endless loop after truncating 64bit int
+      - Better handling of CONTAINER_INSERT failures with multiple indices
 
     snmpd:
-      - [BUG 1712988]: default/configurable max # varbinds returned by GETBULK
-      - [PATCH 1585146]: Extend range of available error codes
-      - [PATCH 1654424]: Handle row deletion issues in dataset tables
-      - [PATCH 1666737]: Include IPv6 traffic in various UDP counters
-      - [PATCH 1700157]: Fix ordering of exec tokens in MIB output
-      - [PATCH 1719253]: fix skipNFSInHostResources for multiple walks
-      - [PATCH 1723611]: New implementation of the RMON alarmTable
-      - [PATCH 1737439]: automatic link up/down traps on a walk
-      - [PATCH 1806501]: Add API for sending traps with a snmpv3 context
-      - [PATCH 1882621]: Add LVM support to the partition table
-      - [PATCH 1893468]: fixed registration of OIDs with ranges
-      - [PATCH 1901764]: Support date-based logwatch files
-      - [PATCH 1909813]: fix table_iterator handling of SORTED hint
-      - [PATCH 1916840]: new config option to set SNMPv1 trap agent address
-      - [PATCH 2103492]: implement RMON-MIB::etherStatsJabbers
-      - [PATCH 2449210]: add 64-bit usage statistics to UCD-SNMP-MIB::dskTable
-      - Add support for a user provided length variable
-	   and C string values to the watcher helper.
-      - Automatically reregister sysORTable entries from AgentX subagents.
-      - Fix various memory leaks
-      - Implement ipAddressSpinLock
-      - Implement ipNetToPhysicalLastUpdated
-      - Suppress annoying "registration != duplicate" warning for root oids
+      - [PATCH 2023633]: add SCTP-MIB implementation (Linux only)
+      - suppress annoying "registration != duplicate" warning for root oids
 
-    snmptrapd:
-      - [PATCH 1908288]: Run perl END block on termination
-      - Add trap handler for logging traps to a mysql database
-      - Withdraw deprecated options.
+    build:
+      - [BUG 2023803]: Compilation problems on HP-UX 11.31
+      - Update to libtool 1.5.26
 
-    snmpnetstat:
-      - [PATCH 2564538]: Support GETBULK in v2c+ snmp versions
+    AIX:
+      - Add support for AIX 6.x.
 
-    snmpusm:
-      - [PATCH 1591355]: Allow cloning to arbitrary engineIDs
+
+*5.4.1*
 
     snmplib:
-      - [BUG 1619827]: Improve handling of link dependencies
-      - [PATCH  700681]: limited support for UDPv4 broadcast addresses
-      - [PATCH 1882069]: Add token for specifying an exact SNMPv3 engineID
-      - Fix assorted memory leaks
-      - Implemented RFC5343 contextEngineID probing.
-      - Support for the TSM security model for use with tunneling
+      - [BUG 1619827]: link libraries against needed external libraries
+      - [PATCH 1616912]: fix memory leak in UDP transport code
+      - [PATCH 1592706]: fix memory leak when cloning varbinds
+      - Change snmp_sess_add_ex to consistently close and delete the
+        transport argument on failure, earlier the liveness of the
+        transport argument was undecided.
 
-    misc:
-      - Add config reread support to "net-snmp-config --compile-subagent" code
-      - Preliminary (alpha) support for SNMP over SSH and DTLS/UDP.
-      - Preliminary (alpha) support for the TSM security model
-      - Separate user management into new net-snmp-create-v3-user script
-
-    building:
-      - Improved cross-compilation support
-      - Improved library layering & dependency handling when linking apps
-      - Improved RPM spec files, for consistency with vendor-provided packages.
-      - Mechanism for selecting build environment based on version
-      - New test scripts to test Net-SNMP transport functionality
-      - Restructure configure template
-      - Update to autoconf 2.63 & libtool 2.2.6
+    snmpd:
+      - [BUG 1558823]: fix ipAddressTable memory leak
+      - [BUG 1596638]: fix memory leak in ipCidrRouteTable, inetCidrRouteTable
+      - [BUG 1611524]: fix tcp connection table file descriptor leak
+      - handle row deletion issues in dataset tables
+      - [BUG 1712988]: default and configurable maximum number of
+        varbinds returnable to a GETBULK request.
+      - [PATCH 1666737]: include ipv6 counts in
+	udpInDatagrams, udpNoPorts, udpInErrors, udpOutDatagrams
+      - [PATCH 1700157]: fixes ordering of exec tokens in the resulting mib tree
+      - [PATCH 1719253]: fix skipNFSInHostResources so it does not break on the
+	second walk of the table.
 
     perl:
-      - [BUG 1619827]: improve handling of link dependencies
-      - [PATCH 1956193]: beta threadable perl module code for SNMPv1/2c usage.
+      - link Perl modules against the exact set of libraries needed
+      - [BUG 1619827]: properly link against libperl when configured with
+	--enable-as-needed
+      - [PATCH 1725049]: fix bulkwalk in cases of non-repeater
 
-    python:
-      - [PATCH 1716114]: Let python build in source tree (Debian patch #38)
+    build:
+      - update to libtool 1.5.24 (from 1.5.22)
 
-    Linux:
-      - [PATCH 1704105]: Add IPv6 support to the inetNetToMediaTable
-      - [PATCH 1705594]: Various fixes to ipAddressPrefixTable reporting
-      - [PATCH 1708243]: Implement ipDefaultRouteTable
-      - [PATCH 1715405]: Implement ipv6ScopeZoneIndexTable
-      - [PATCH 1724602]: MfD-based ipDefaultRouterTable implementation
-      - [PATCH 1828602]: Support ipDefaultTTL and ipForwarding SETs
-      - [PATCH 1927751]: Implement icmpMsgStatsTable
-      - [PATCH 2023633]: Implement SCTP-MIB
-      - [PATCH 2053273]: Implement EtherLike MIB
+    python:
+      - [PATCH 1716114]: Let python build in the Net-SNMP source tree
 
-    AIX:
-      - Add support for AIX 6.x
-      - Fix default shared library building instead of forcing static
+    MacOSX:
+      - [PATCH 1600522]: CPU Hardware Abstraction Layer (HAL)
+        implementation for mach/darwin
+      - IF-MIB rewrite now enabled by default
 
-    FreeBSD:
-      - [BUG 1633483]: Support CPU HAL on FreeBSD4.x
-      - [PATCH 1623874]: add GNU/kFreeBSD support
+    Win32:
+      - fix AES support
+      - [PATCH 1706344]: fix compilation with cygwin
 
     IRIX:
       - [PATCH 1709748]: Optimized IRIX cpu stats
-      - [PATCH 1675869]: CPU statistics for IRIX based on PCP
-
-    MacOSX:
-      - [PATCH 1600522]: CPU HAL implementation for mach/darwin
 
-    Solaris:
-      - [PATCH 1719730]: support for ipSystemStatsTable and ipAddressTable
+    AIX:
+      - Fix default shared library building instead of forcing static use
 
-    Win32:
-      - [PATCH 2686248]: Fix several winExtDLL bugs.
-      - [PATCH 1706344]: Fix compilation with cygwin
-      - Fix AES support
+    FreeBSD:
+      - [BUG 1633483]: Support CPU HAL on FreeBSD4.x
 
 
 *5.4*
@@ -642,7 +417,7 @@ listing of all changes made to the code.
        - 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 will now use the same ifIndex for the same interface.
+         tables/object wiil now use the same ifIndex for the same interface.
 
    Solaris:
      - new experimental support for ucd-snmp/lmSensors MIB module
@@ -676,7 +451,7 @@ listing of all changes made to the code.
 
  Ports:
    - Linux 2.6 improvements
-   - Win32 support for TCP and UDP over IPv6 via Winsock version 2
+   - Win32 Suport for TCP and UDP over IPv6 via Winsock version 2
    - Win32 fixes in many places.
    - Win32 service support for snmptrapd
    - Win32 support for snmpconf
@@ -869,7 +644,7 @@ listing of all changes made to the code.
 *5.0.4*
 
    During the testing for release 5.0.4, a release candidate was uploaded
-   to Sourceforge and marked as hidden. For various reasons, the release
+   to Sourceforge and marked as hidden. For variouse 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
@@ -1139,7 +914,7 @@ UCD-SNMP NEWS:
       (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 formatting directives.
+    - snmptrapd has new formating 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.
@@ -1316,7 +1091,7 @@ UCD-SNMP NEWS:
     - many misc bug fixes, as always.
 
   Ports:
-    - snmpnetstat has been ported to the win32 environment.
+    - snmpnetstat has been ported to the win32 enviornment.
 
 *3.5.3*
     - Bug fixes, including row creation sets to mib modules should work again.
@@ -1472,7 +1247,7 @@ UCD-SNMP NEWS:
     - FAQ file!
     - bug-report script!
     - Agent can read .conf files from more places:
-      - SNMPCONFPATH environment variable.
+      - SNMPCONFPATH enviornment 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 2d453f6..dacb15a 100644
--- a/PORTING
+++ b/PORTING
@@ -25,7 +25,7 @@ architectures is much easier than before.  However, new people porting
 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 necessary
+to use it a lot).  What is better is to check for the necissary
 functionality using the configure script and then use the results of
 those tests.
 
@@ -75,13 +75,17 @@ In source code:
 --- STRUCTURE MEMBER CHECKS
 
 In configure.in:
-  AC_CHECK_MEMBERS([struct STRUCTURE.MEMBER],,,[[
+  AC_CHECK_STRUCT_FOR([
 #include lines
-]])
-                           ^^^^^^^^^ ^^^^^^  (change)
+], STRUCTURE, MEMBER)
+   ^^^^^^^^^  ^^^^^^  (change)
+
+In acconfig.h:
+  #undef STRUCT_STRUCTURE_HAS_MEMBER
+                ^^^^^^^^^     ^^^^^^  (change)
 
 In source code:
-  #ifdef HAVE_STRUCT_STRUCTURE_MEMBER
+  #ifdef STRUCT_STRUCTURE_HAS_MEMBER
     /* use it */
   #endif
 
diff --git a/README b/README
index d0e4d19..7e7f285 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-	       README file for net-snmp Version: 5.7.2.1
+	       README file for net-snmp Version: 5.4.3
 
 DISCLAIMER
 
@@ -256,7 +256,7 @@ THANKS
     Dan A. Dickey <ddickey at transition.com>
     Dave Shield <D.T.Shield at csc.liv.ac.uk>
     Giovanni S. Marzot <gmarzot at nortelnetworks.com>
-    Niels Baggesen <nba at users.sourceforge.net>
+    Niels Baggesen <recnba at mediator.uni-c.dk>
     Simon Leinen <simon at limmat.switch.ch>
     David T. Perkins <dperkins at dsperkins.com>
     Mike Perik <mikep at crt.com>
@@ -349,8 +349,6 @@ THANKS
     Peter Martin <pnmartin at users.sourceforge.net>
     Thomas Lackey <telackey at users.sourceforge.net>
     Joe Buehler <jbuehler at spirentcom.com>
-    Anders Persson <apersson at users.sourceforge.net>
-    Rojer <rojer at users.sourceforge.net>
     Bart Van Assche <bart.vanassche at 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 53f1caa..8716f8d 100644
--- a/README.agent-mibs
+++ b/README.agent-mibs
@@ -40,7 +40,6 @@ Table Style
   G  scalar group helper
   W  watched scalar 
   M  mfd
-  C  container table
 
 Platform Keys
 ------------------
@@ -64,10 +63,9 @@ A number after a platform indicates notes at the bottom of the file.
  table/object group           OS       Rel   Styl File
 ==============================================================================
 SNMPv2-MIB
- system.?.0                   A         5.5     W mibII/system_mib.c
- .sysORLastChange.0           A         5.5     W mibII/sysORTable.c
- sysORTable                   A         5.5     C mibII/sysORTable.c
- snmp.*.0                     A         5.5     G mibII/snmp_mib_5_5.c
+ system.*.0                   A         3.2     O mibII/system_mib.c
+ sysORTable                   A         3.4     O mibII/sysORTable.c
+ snmp.*.0                     A         3.2     O mibII/snmp_mib.c
  setSerialNo.0                A         5.0     W mibII/setSerialNo.c
 
 ------------------------------------------------------------------------------
@@ -76,15 +74,15 @@ SNMP-FRAMEWORK-MIB
 
 ------------------------------------------------------------------------------
 SNMP-MPD-MIB
- snmpMPDStats.*.0             A         ~4.0?   G snmpv3/snmpMPDStats_5_5.c
+ snmpMPDStats.*.0             A         ~4.0?   O snmpv3/snmpMPDStats.c
 
 ------------------------------------------------------------------------------
 SNMP-TARGET-MIB
  snmpTargetSpinLock.0         A         3.6     O target/snmpTargetAddrEntry.c
  snmpTargetAddrTable          A         3.6     O target/snmpTargetAddrEntry.c
  snmpTargetParamsTable        A         3.6     O target/snmpTargetParamsEntry.c
- snmpUnavailableContexts.0    A         5.5     G target/target_counters_5_5.c
- snmpUnknownContexts.0        A         5.5     G target/target_counters_5_5.c
+ snmpUnavailableContexts.0    A         5.0     O target/target_counters.c
+ snmpUnknownContexts.0        A         5.0     O target/target_counters.c
 
 ------------------------------------------------------------------------------
 SNMP-NOTIFICATION-MIB
@@ -105,7 +103,6 @@ SNMP-PROXY-MIB
 ------------------------------------------------------------------------------
 SNMP-USER-BASED-SM-MIB
  usmStats.*.0                 A         ~4.0    O snmpv3/usmStats.c
- usmStats.*.0                 A         5.5     G snmpv3/usmStats_5_5.c
  usmUserTable                 A         ~4.0?   O snmpv3/usmUser.c
 
 ------------------------------------------------------------------------------
@@ -154,21 +151,19 @@ IP-MIB
  icmp.*.0                     U $2      ~3.2    G mibII/icmp.c
 
  ipSystemStatsTable           L         5.2     M ip-mib/=/*
- ipSystemStatsTable            S        5.5     M ip-mib/=/*
  ipIfStatsTableLastChange.0   ---
- ipIfStatsTable               L--       5.5     M ip-mib/=/*
+ ipIfStatsTable               ---
 
  ipAddrTable (D)              U $2      4.2     O mibII/ipAddr.c
- ipAddressSpinLock.0          A         5.5     O mibII/ipAddr.c
+ ipAddressSpinLock.0          ---
  ipAddressTable               L         5.2     M ip-mib/=/*
- ipAddressTable                S        5.5     M ip-mib/=/*
  ipAddressPrefixTable         L         5.3     M ip-mib/=/*
 
  ipRouteTable (D)             U $2      ~3.5    O mibII/*route*.c
  ipNetToMediaTable (D)        U $2      ~3.5    O mibII/at.c
  ipNetToPhysicalTable         (implemented as inetNetToMediaTable)
  inetNetToMediaTable          L         5.2     M ip-mib/=/*
- ipDefaultRouterTable         L         5.5     M ip-mib/=/*
+ ipDefaultRouterTable         ---
 
  icmpStatsTable               ---
  icmpMsgStatsTable            ---
@@ -184,9 +179,6 @@ IP-MIB
  ipv6RouterAdvertSpinLock.0   ---
  ipv6ScopeZoneIndexTable      ---
 
- ipForwarding.0               L          5.4    S ip-mib/ip_scalars.c
- ipDefaultTTL.0               L          5.4    S ip-mib/ip_scalars.c
-
 ------------------------------------------------------------------------------
 IPV6-MIB
  ipv6MIBObjects.?.0           U         4.1     O mibII/ipv6.c
@@ -244,7 +236,6 @@ IF-INVERTED-STACK-MIB
 ------------------------------------------------------------------------------
 RMON-MIB
  etherStatsTable              U         5.0     O Rmon/statistics.c
- .etherStatsJabbers           L3        5.5     M rmon-mib/=/*
  etherHistoryControlTable     U         5.0     O Rmon/history.c
  etherHistoryTable            U         5.0     O Rmon/history.c
  alarmTable                   U         3.2     O Rmon/alarm.c
@@ -332,7 +323,7 @@ DISMAN-SCRIPT-MIB
 
 ------------------------------------------------------------------------------
 EtherLike-MIB
- dot3StatsTable               L        5.5      M etherlike-mib/=
+ *                            ---
 
 ------------------------------------------------------------------------------
 AGENTX-MIB
@@ -417,29 +408,16 @@ TUNNEL-MIB
 
 ------------------------------------------------------------------------------
 SCTP-MIB
- sctpStats                    L         5.5     S sctp-mib/sctpScalars*
- sctpParameters               L         5.5     S sctp-mib/sctpScalars*
- sctpAssocTable               L         5.5     C sctp-mib/=
- sctpAssocLocalAddrTable      L         5.5     C sctp-mib/=
- sctpAssocRemAddrTable        L         5.5     C sctp-mib/=
- sctpLookupLocalPortTable     L         5.5     C sctp-mib/=
- sctpLookupRemPortTable       L         5.5     C sctp-mib/=
- sctpLookupRemHostNameTable   L         5.5     C sctp-mib/=
- 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/=/*
+ sctpStats                    L         5.4.2   S sctp-mib/sctpScalars*
+ sctpParameters               L         5.4.2   S sctp-mib/sctpScalars*
+ sctpAssocTable               L         5.4.2   C sctp-mib/=
+ sctpAssocLocalAddrTable      L         5.4.2   C sctp-mib/=
+ sctpAssocRemAddrTable        L         5.4.2   C sctp-mib/=
+ sctpLookupLocalPortTable     L         5.4.2   C sctp-mib/=
+ sctpLookupRemPortTable       L         5.4.2   C sctp-mib/=
+ sctpLookupRemHostNameTable   L         5.4.2   C sctp-mib/=
+ sctpLookupRemPrimIPAddrTable L         5.4.2   C sctp-mib/=
+ sctpLookupRemIPAddrTable     L         5.4.2   C sctp-mib/=
 
 ==============================================================================
 
@@ -447,7 +425,6 @@ Misc notes
 ----------
  1: available for systems using KAME ipv6
  2: with platform SDK. See README.win32
- 3: works only with Intel and Broadcom network cards and must run as root only
 
 Other feature info
 ------------------
@@ -458,5 +435,3 @@ Other feature info
  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.aix b/README.aix
index e25e9b6..16f725e 100644
--- a/README.aix
+++ b/README.aix
@@ -6,6 +6,7 @@ Some notes for the AIX port
 
 There are the following known problems on AIX:
 
+
 1) Shared libraries / embedded perl
 
 Up to (and including) net-snmp 5.4, configure forced a static build
@@ -13,10 +14,11 @@ on AIX which caused embedded Perl to be disabled as well.
 
 Starting with net-snmp 5.4.1, we build shared libraries by default on AIX
 (like on any other platform) using run-time linking. configure forces the
-use of the required "-brtl" linker flag.
+use of the required "-brtl" linker flag. We also recommend
+
+   ./configure --enable-as-needed ...
 
-With net-snmp 5.5 the shared library build is broken again but the there is
-no forced static build - use --disable-shared when building.
+for proper libperl linking.
 
 2) "grep: capacity exceeded" or "sed: Command line is too long" during configure
 
diff --git a/README.irix b/README.irix
index c7977e9..79bf7ec 100644
--- a/README.irix
+++ b/README.irix
@@ -34,7 +34,17 @@ see Patch #1675869:
   http://sf.net/support/tracker.php?aid=1675869
 
 
-3. Known Issues
+3. Perl
+-------
+
+When compiling with Perl support, it's recommended to specify
+
+  ./configure --enable-as-needed
+
+for proper libperl linking.
+
+
+4. Known Issues
 ---------------
 
 Accessing certain MIB objects on IRIX64 machines (i.e. when running a 64-bit 
@@ -46,7 +56,7 @@ IRIX64) by using
    ./configure --without-kmem-usage ...
 
 
-3. Feedback
+5. Feedback
 -----------
 
 Please also see README and PORTING.
diff --git a/README.osX b/README.osX
index 49b58e7..82bd0d5 100644
--- a/README.osX
+++ b/README.osX
@@ -1,5 +1,5 @@
 README.osX
-$Id$
+$Id: README.osX 16992 2008-06-03 09:37:46Z dts12 $
 
 This is what I had to do to get it to work for me. Your mileage may vary.
 If this doesn't work for you, or you have fixes for any problems listed,
@@ -7,6 +7,10 @@ please post to <net-snmp-coders at lists.sourceforge.net>. Thanks!
 
   - ALL
 
+    - Test 44 (Perl AgentX Subagent) fails.
+
+       - configure with --enable-as-needed for proper libperl linking
+
     - nlist doesn't support icmpstat
 
        - disable the icmp module during configure by specifying
@@ -15,7 +19,7 @@ please post to <net-snmp-coders at lists.sourceforge.net>. Thanks!
 
 
   - 10.4.7 (Universal) and Leopard with 5.4 sources:
-        [Supplied by Chris Jalbert]
+        [Supplied by Chris Jalbert, slightly updated]
 
        - build using gcc 4.0 (see below) and configure using:
                         --with-persistent-directory=/var/db/net-snmp \
@@ -23,6 +27,7 @@ please post to <net-snmp-coders at lists.sourceforge.net>. Thanks!
                         --without-rpm \
                         --with-mib-modules="host ucd-snmp/diskio" \
                         --with-out-mib-modules="mibII/icmp host/hr_swrun" \
+                        --enable-as-needed \
                         --without-kmem-usage
 
        The first line sets up persistent storage in the OS X standard location.
@@ -59,3 +64,20 @@ please post to <net-snmp-coders at lists.sourceforge.net>. Thanks!
                    --prefix=/usr --with-persistent-directory=/var/db/ucd-snmp
                    --with-mib-modules=host
 
+-------------------------------------
+
+With Mac OS X 10.5.2, and Net-SNMP 5.4.2, the default configuration
+seems to build and run successfully.   The main tweak needed to get
+things working was to disable "embedded perl" (which is active by
+default in 5.4 and above).
+
+  The issue here is that enabling embedded perl will try to use the
+same CFLAGS used for compiling perl, when compiling the Net-SNMP code
+(which is probably reasonable).  Unfortunately, the default perl binary
+that comes with Mac OS/X 10.5 (at least) is a "universal binary",
+so the CFLAGS that it uses include "-arch i386 -arch ppc".  This
+dual-architecture option confuses the configure script, and means
+that it cannot detect the characteristics of the host system correctly.
+
+Dave
+June 2008
diff --git a/README.snmpv3 b/README.snmpv3
index 99e4238..263c955 100644
--- a/README.snmpv3
+++ b/README.snmpv3
@@ -5,9 +5,7 @@ do a better job on since I suck at writing documentation and he
 doesn't ;-) --Wes:
 
 Note: SHA authentication and DES/AES encryption support is only available
-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.
+if you have OpenSSL installed.
 
 Note: encryption support now *is* enabled in the binary releases downloadable
 from the net-snmp web site.
diff --git a/README.solaris b/README.solaris
index 625aae2..996ddb4 100644
--- a/README.solaris
+++ b/README.solaris
@@ -1,5 +1,5 @@
 README.solaris
-$Id$
+$Id: README.solaris 17763 2009-09-22 21:51:42Z tanders $
 
 This document describes issues relating to compiling,
 installing and using net-snmp on Solaris.
@@ -994,8 +994,10 @@ Net-SNMP may be compiled with Perl support by configuring like:
 
    ./configure -enable-embedded-perl ...
 
-This should only be done if you are sure you really need Perl, 
-for the following reasons:
+It's recommended to add --enable-as-needed for proper libperl linking.
+
+Enabling Perl support should only be done if you are sure you really 
+need Perl, for the following reasons:
 
 Solaris 8 and later ship with a version of Perl compiled using Sun's cc. 
 
diff --git a/README.sql b/README.sql
deleted file mode 100644
index e2f7038..0000000
--- a/README.sql
+++ /dev/null
@@ -1,29 +0,0 @@
-snmptrapd MySQL Logging
------------------------
-
-A trap handler for logging traps to a MySQL database was added
-in release 5.5.0.
-
-The MySQL database location and password must be configured in
-/root/.my.cnf:
-
-	[snmptrapd]
-	host=localhost
-	password=sql
-
-User may also be configured, if using a MySQL user besides root.
-
-snmptrapd.conf must be configured to for the queue size and
-periodic flush interval:
-
-	# maximum number of traps to queue before forced flush
-	sqlMaxQueue 140
-
-	# seconds between periodic queue flushes
-	sqlSaveInterval 9
-
-A value of 0 for sqlSaveInterval will completely disable MySQL
-logging of traps.
-
-The schema must be loaded into MySQL before running snmptrapd.
-The schema can be found in dist/schema-snmptrapd.sql
diff --git a/README.win32 b/README.win32
index 0f4cb9e..d942b8a 100644
--- a/README.win32
+++ b/README.win32
@@ -4,13 +4,14 @@
 *
 ***************************************************************************
 
-This guide describes how to build Net-SNMP with Microsoft Visual C++, the
-MinGW gcc compiler or the Cygwin gcc compiler.  As developers build with other
-Win32 environments, their notes will be included here.
+This guide describes building with Microsoft Visual C++ 6.0 and higher, with
+the gcc compiler from MinGW / MSYS, and with the gcc compiler from Cygwin.
+As developers build with other Win32 environments, their notes will be 
+included here.
 
-The sections in this guide are:
+The remainder of this guide has the following sections :
 
-Current Status for Win32 platforms
+Status as of 14-Oct-2006 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
@@ -38,32 +39,32 @@ Acknowledgements
 
 ***************************************************************************
 *
-* Net-SNMP status for Win32 platforms
+* Status as of 14-Oct-2006 for Win32 platforms
 *
 ***************************************************************************
 
 All applications build with Microsoft Visual C++ 6.0, Microsoft Development
-Environment 2003 (MSVC 7.0/7.1), Microsoft Visual Studio 2005, Microsoft
-Visual Studio 2008, Microsoft Visual Studio 2010, gcc under Cygwin and gcc
-under MinGW.
+Environment 2003 (MSVC 7.0/7.1), 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
-     Platform SDK).
+  -  All of the applications work
+     (snmpwalk, snmpget, snmpset, snmptrap, etc...).
+  -  The system, snmp, ip, tcp, udp, icmp mibgroups function
+         (when agent is built using the snmpdsdk project).
   -  The Net-SNMP agent runs as an AgentX master agent or as subagent.
   -  smux is working.
   -  The target, notification, disman/mte groups compile but are not tested.
   -  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 service.
-  -  Snmptrapd can be registered as a Windows service.
+  -  Snmpd can be registered as a Windows NT/2000/XP service.
+  -  Snmptrapd can be registered as a Windows NT/2000/XP 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
 
@@ -77,13 +78,8 @@ The next subsection relates to items that are built using Visual Studio
   -  All Debug and Release targets linked with libsnmp project targets
      build without errors, and are fully functional.
 
-  -  Both building via the interactive development environment and via the
-     command line (nmake) is supported.
-
-  -  With Visual Studio 2005 and later, the Net-SNMP source code can be
-     compiled into either 32-bit or 64-bit executables (the amd64/x64
-     architecture). Previous Visual Studio versions support 32-bit executables
-     only.
+  -  Both the Workspace graphical environment and command line nmake is 
+     supported for building under MSVC.
 
 
 ***************************************************************************
@@ -105,9 +101,9 @@ The next subsection relates to items that are built using Visual Studio
      Check the Services panel to be sure no other SNMP program conflicts. 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.
+  -  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 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
@@ -167,9 +163,9 @@ The above command will exclude all the Net-SNMP extensions that overlap with
 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.
 
@@ -239,10 +235,7 @@ Net-SNMP instead of SNMP by modifying the registry.  See Microsoft article
 Compiling Net-SNMP with the winExtDLL extension (MSVC)
 ------------------------------------------------------
 
-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.
+When building with MSVC 6, the Microsoft Platform SDK is required.
 
 Configure / nmake:
 
@@ -412,18 +405,33 @@ See the snmpd.conf man page for more information on configuring security.
 *
 ***************************************************************************
 
-If you are using Microsoft Visual Studio 6.0, you will have to install the
-Platform SDK (PSDK) first.
+If you are compiling using Microsoft Visual C++ 6.0, it is recommended that
+you install the Core Platform SDK (PSDK).  Without the PSDK, some functionality
+will be disabled such as the core elements of the mibII group of the agent 
+which use the "IP Helper API" (IPHLPAPI).
+
+To determine what code is disabled when the PSDK is not used, search the
+source code for HAVE_WIN32_PLATFORM_SDK.
+
+The PSDK can be downloaded from the MSDN site.  Go to http://msdn.microsoft.com 
+and do a search for 'psdk download' (without the quotes).  You should find both
+a web install and a full install.  
 
-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.
+When installing the SDK, all that is required is the 'Core'.
 
-If you are using any of the following environments, the PSDK download is not
-necessary as the required parts of the PSDK are included:
-    - Microsoft Visual Studio 2002 or later.
-    - Cygwin.
-    - MinGW.
+Once this package has installed, from the Start Menu run 
+  "Programs ->Microsoft Platform SDK... -> 
+   Visual Studio Registration ->
+   Register PSDK Directories with Visual Studio"
+
+If you are compiling using any of the following systems, the PSDK download
+is not necessary, as the required parts of the PSDK are included with the 
+installation of the compiler:
+
+    - Microsoft Development Environment 2002 (MSVC 7.0)
+    - Microsoft Development Environment 2003 (MSVC 7.1)
+    - Cygwin (gcc)
+    - MinGW (gcc)
 
 In order for the process part of the host resources MIB to work under Windows
 NT you will need to obtain PSAPI.DLL. This is available under the download 
@@ -443,13 +451,12 @@ Otherwise, see the Building section below.
 
 There are two ways to build Net-SNMP using Microsoft Visual C++.  The first
 and easiest method is using Configure and nmake on the command line, and the 
-second is using the Workspace files inside the interactive development
-environment.
+second is using the Workspace files with the graphical interface.
 
 To use nmake on the command line, the Configure script is run first to create
-the various makefiles.  Once these have been created, nmake is used to build
-the applications.  Perl is required to use this method, as the Configure
-script is written in Perl.  ActiveState ActivePerl is available at:
+the various make files.  Once they are created, nmake is used to build the 
+applications.  Perl is required to use this method, as the Configure script
+is written in Perl.  ActiveState ActivePerl is available at:
 
         http://www.activestate.com/Products/ActivePerl/
 
@@ -458,41 +465,52 @@ projects contained in the Workspace files which are described below.  It is
 recommended that you read and understand how the workspaces are configured
 even if you will only be using the command line Configure / nmake system.
 
-For building via the interactive development environment, there are the Win32
-workspaces win32.dsw and libdll.dsw. The last workspace allows to build a DLL
-version of snmplib (netsnmp.dll).
+For the graphical interface, there are two main Win32 workspaces 
+('win32.dsw' and 'win32sdk.dsw'), containing more or less the same set 
+of projects, plus 'libdll.dsw' which contains a minimal set of projects 
+for use with the Perl module only.  
+
+Win32.dsw is for developers who have not installed the Platform SDK from 
+Microsoft's MSDN SDK Update site when using Microsoft Visual Studio 6.0.
+Win32sdk.dsw is for those who have or who are using the Microsoft Development 
+Environment 2002/2003 (MSVC 7.0/7.1), Cygwin (gcc) or MinGW (gcc).
+
+Libdll.dsw compiles a DLL version of snmplib (netsnmp.dll).
 
 There is one core development library ('libsnmp'), together with a number 
 of utility projects for the individual executable commands ('snmpget', 
 'snmpwalk', etc...).  All of these projects require the .lib created by 
 the libsnmp project.
 
-The agent requires the core library plus the other two library projects
-('libagent' and 'netsnmpmibs') together with the main agent project ('snmpd').
+The agent requires the core library plus the other three library projects 
+('libagent', libhelpers' and either 'netsnmpmibs' or 'netsnmpmibssdk' 
+depending on which workspace is being used) together with the main agent 
+project (either 'snmpd' or 'snmpdsdk').
 
 The final application project is the trap handler 'snmptrapd'.  This also
-requires the agent libraries ('libagent' and 'netsnmpmibs') as well as the
-core development library.
+requires the agent libraries ('libagent', 'libhelpers' 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.
+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.
 
-VC++ 6.0, 7.1, 8.0 (2005), 9.0 (2008) and 10.0 (2010) have been tested.
-Building with earlier Microsoft compiler versions is no longer supported.
+Both VC++ 6.0 and 7.1 have been tested.  Building with earlier Microsoft
+compiler versions is no longer supported.
 
-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.
+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.
 
 OpenSSL is required to support the encryption capabilities in SNMPv3,
 or SHA authentication.
 
 Since the MSVC build environment does not natively use "configure" nor "make"
 to generate the various pathnames that the programs require, the header files 
-need to be manually modified when using the IDE, and an install script is
-provided.  When using the Perl Configure / nmake system, the header files are
-automatically modified and require no manual editing.
+need to be manually modified when using the graphical build system, and an 
+install script is provided.  When using the Perl Configure / nmake system, 
+the header files are automatically modified and require no manual editing.
 
 The projects are arranged so that ALL of the usable products, the .exe files,
 are written to the win32\bin directory.  The win32\lib directory is used only 
@@ -537,22 +555,12 @@ steps to build using build.bat:
 
 1.  Open a command prompt
 
-2.  When building with OpenSSL, set the environment variables INCLUDE and LIB
-    such that these point at the proper OpenSSL directories. An example:
-
-    set INCLUDE=C:\OpenSSL-Win32\include
-    set LIB=C:\OpenSSL-Win32\lib\VC\static
-
-3.  Initialize the Visual Studio build environment by running vcvarsall.bat
+2.  Initialize the Visual Studio build environment by running VCVARS32.bat
     which can be found in the bin folder of your Visual Studio install folder.
-    If you want to generate 64-bit binaries instead of 32-bit binaries, run
-    vcvarsall.bat with the amd64 argument. See also "How to: Enable a 64-Bit
-    Visual C++ Toolset at the Command Line" for more information
-    (http://msdn.microsoft.com/en-us/library/x4d2c09s%28v=vs.80%29.aspx).
 
-4.  Run win32\build.bat
+3.  Run win32\build.bat
 
-5.  The following screen will appear:
+4.  The following screen will appear:
 
     Net-SNMP build and install options
     ==================================
@@ -581,7 +589,7 @@ steps to build using build.bat:
 
     Select option to set / toggle:  
 
-6.  Toggle the options on and off as desired by typing the line number 
+5.  Toggle the options on and off as desired by typing the line number 
     followed by <enter>.  
 
     To compile with OpenSSL, the OpenSSL library and header files must 
@@ -591,7 +599,7 @@ steps to build using build.bat:
     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, Windows 98 or later is required.
+    To use the IPv6 transports, you must be using Windows 98 or later.
 
     See the section 'Running Net-SNMP as a replacement for the Microsoft 
     SNMP service' for important information on using the winExtDLL agent.
@@ -601,7 +609,7 @@ steps to build using build.bat:
 
     When you are ready to build, type f <enter>
 
-7.  Building will begin.  Following is a sample screen shot of a quiet build:
+6.  Building will begin.  Following is a sample screen shot of a quiet build:
 
     Building...
     
@@ -623,7 +631,7 @@ steps to build using build.bat:
     
     Done!
 
-8.  If the folder that Net-SNMP was installed to is ever changed, modify the 
+7.  If the folder that Net-SNMP was installed to is ever changed, modify the 
     system environment variables or registry keys as explained in the 
     'Configuration_Overview.html' file located in win32/dist/htmlhelp.
 
@@ -707,19 +715,19 @@ Note:  The Configure option --linktype=static (or not specifying a linktype)
 *
 ***************************************************************************
 
-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 
-   looking for the PACKAGE_VERSION variable.
+The win32sdk.dsw workspace will build the agent that provides mib-II objects
+for network interface layers, and the IP, ICMP, TCP and UDP tables.  This
+workspace requires the Platform SDK to be installed.  Use the win32.dsw 
+workspace if you don't have or don't need these features.  Note:  Other 
+features may be disabled if the Platform SDK is not used.  See the section
+'Installing Platform SDK' for more information.
 
-2. If SNMPv3 encryption capabilities or SHA authentication is required,
+1. If SNMPv3 encryption capabilities or SHA authentication is required,
    install the OpenSSL DLL and library file as described in the section 
    'Microsoft Visual C++ - Building with OpenSSL" and then continue with 
    step 2.
 
-3. The default installation path is c:\usr.  This folder will contain all
+2. The default installation path is c:\usr.  This folder will contain all
    the binaries, MIB files, configuration files etc.  To change the location,
    the win32\net-snmp\net-snmp-config.h file needs to be modified by changing
    the INSTALL_BASE variable. 
@@ -731,27 +739,97 @@ applications. Proceed as follows:
 
      For example: #define INSTALL_BASE "c:/usr".  
 
-4.  When building DLLs instead of static libraries, *change* the following
-    line which is located near the top of the file:
+3. If you are using win32sdk, the Platform SDK must be enabled.  Edit the 
+   the win32\net-snmp\net-snmp-config.h file and *change*:
 
-        /* #undef NETSNMP_USE_DLL */
+        /* #undef HAVE_WIN32_PLATFORM_SDK */
 
-    *to*
+   to:
 
-        #define NETSNMP_USE_DLL 1
+        #define HAVE_WIN32_PLATFORM_SDK 1
 
-5. Build the agent and the applications
+4. Build the applications
 
-   a. Open win32.dsw (static build) or win32dll.dsw (dynamic build).
-   b. If you want to generate 64-bit binaries instead of 32-bit binaries,
-      select "Build/Configuration Manager" and add the "x64" platform.
-   c. Select "Build/Batch Build..."  
-   d. Select the projects and configurations you want to build.
-   e. Click "ReBuild All".
-   f. When building is done, View the Output window, clip and
-      save to a text file if there is some information to share.
+   Static build (does not use NetSNMP.DLL)
+   =======================================
 
-6.  If the Perl modules are required, continue with the next section:
+   MS VC++ 6.0:
+   ------------
+   a. Open win32.dsw or win32sdk.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 or win32sdk.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 or win32sdk.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 or win32sdk.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".
+  
+5.  If the Perl modules are required, continue with the next section:
     'Microsoft Visual C++ - Building the Perl SNMP modules'.
 
     Otherwise, continue with the section: 
@@ -760,6 +838,62 @@ applications. Proceed as follows:
 
 ***************************************************************************
 *
+* Microsoft Visual C++ - Workspace - Building the DLL
+*
+***************************************************************************
+
+1.  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.
+
+2.  Open win32\net-snmp\net-snmp-config.h using a text editor.
+
+3.  *Change* the following line which is located near the top of the file:
+
+        /* #undef NETSNMP_USE_DLL */
+
+    *to*
+
+        #define NETSNMP_USE_DLL 1
+
+4.  Optional: Make a backup of the new net-snmp-config.h which contains 
+    settings for a DLL build of Net-SNMP:
+
+    Copy win32\net-snmp\net-snmp-config.h to 
+    win32\net-snmp\dll-config.h.
+
+5. Build the DLL
+
+   MS VC++ 6.0:
+   ------------
+   a. Open libsdll.dsw.
+   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
+      save to a text file if there is some information to share.
+   h. Click "File->Close Workspace".
+
+   MS VC++ 7.0+:
+   -------------
+   a. Open libsdll.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".
+
+
+***************************************************************************
+*
 * Microsoft Visual C++ - Workspace - Building the Perl SNMP modules
 *
 ***************************************************************************
@@ -769,16 +903,21 @@ Compiling against a static version is possible, but each module will
 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' and choose for
-    the dynamic build.  This will build the libraries, agent and applications.
+1.  Complete the section 'Microsoft Visual C++ - Building'.  This will build
+    the applications.  
 
     Note:  SNMPD.EXE and SNMPTRAPD.EXE are required for running the tests 
            against the SNMP Perl module.
 
-2.  Install Net-SNMP as described in the 'Microsoft Visual C++ - Installing'
+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'
     section to install the applications, the DLL and the .lib files.
 
-3.  Continue with the Win32 section of the Perl README file located in 
+4.  Continue with the Win32 section of the Perl README file located in 
     perl\SNMP\README.
 
 
@@ -899,9 +1038,26 @@ Building from source:
 	ftp://ftp.openssl.org/source/
 
 
- 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.
+ 3. Once the OpenSSL libraries are built, you must copy them to the the MSVC 
+    directory:
+
+    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
 ============================
@@ -912,6 +1068,23 @@ Using a pre-compiled version
 
  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
 ===============
@@ -920,10 +1093,38 @@ Project changes
 
 	#define NETSNMP_USE_OPENSSL 1
 
- 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.
+ 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 
 
  3. Continue with the section 'Microsoft Visual C++ - Building"
 
@@ -935,10 +1136,16 @@ Project changes
 ***************************************************************************
 
 The default build configuration supports SNMP over IPv4-based transports.
-However Windows 2000 and later include an IPv6-capable stack which
+However, Windows XP and Windows 2000 include an IPv6-capable stack, which
 can be used to provide SNMP over IPv6.  To enable IPv6, the Microsoft PSDK 
-is required and NETSNMP_ENABLE_IPV6 has to be enabled in
-win32\net-snmp\net-snmp-config.h. Change the following single line from:
+is required and the following changes to the Net-SNMP win32 Visual C++ 
+configuration are needed:
+
+Project changes
+===============
+
+ 1. Edit the win32\net-snmp\net-snmp-config.h header file.  Change
+    the single INET6 line from:
 
         /* #undef NETSNMP_ENABLE_IPV6 */
 
@@ -946,7 +1153,20 @@ win32\net-snmp\net-snmp-config.h. Change the following single line from:
 
        	#define NETSNMP_ENABLE_IPV6 1
 
-Next, continue with the section 'Microsoft Visual C++ - Building"
+ 2. Edit the win32\libsnmp_dll\libsnmp.def file.  All the IPv6 functions will
+    be commented out and will need to be enabled by removing ';IPv6' from the
+    beginning of each line.  
+
+    For example, change:
+
+
+        ;IPv6        netsnmp_udp6_parse_security
+
+    to:
+
+                netsnmp_udp6_parse_security
+
+ 3. Continue with the section 'Microsoft Visual C++ - Building"
 
 
 ***************************************************************************
@@ -1049,32 +1269,41 @@ http://www.mingw.org
 *
 ***************************************************************************
 
-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
+An alternate way to build Net-SNMP for win32 is to use Cygnus's cygwin32
+environment.  Information on the Cygnus cygwin32 environment is available
 on the web at: http://sources.redhat.com/cygwin/.
 
 Cygwin allows you to compile almost the complete agent and applications.
-As an example, the following configure options create a working set of
-programs:
+The following configure options creates a working set of programs:
 
 ./configure \
 	--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 \
+If you want to use SNMPv3 auth and privacy features, add:
+	--with-openssl="/usr" \
 
 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' folder or your Desktop folder
-(usually c:\Documents and Settings\xxxx\Desktop) is not supported.
-
-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.
+	--enable-ipv6 --with-transports="TCPIPv6 UDPIPv6"
+
+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.
+
+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.
 
 If the folder that Net-SNMP was installed to is ever changed, modify the 
 system environment variables or registry keys as explained in the 
@@ -1091,16 +1320,17 @@ Currently the tools and agent will compile on win32 platforms using the
 MinGW tools with the MSyS environment. MinGW, MSyS and the associated
 documentation can be downloaded from: http://www.mingw.org.
 
-Compiling net-snmp with MinGW requires GNU regex and libintl. Binaries and
-developer header files for these libraries are available at: 
+Compiling net-snmp with MinGW requires GNU regex. A GNU regex package that
+builds under MinGW with MSyS is available at: 
 
-        http://gnuwin32.sourceforge.net/packages/regex.htm
-        http://gnuwin32.sourceforge.net/packages/libintl.htm
+        http://www.boedog.com/net-snmp/gnu_regex/regex-0-12-mingw-r2.tar.gz
 
-Proceed as follows to build Net-SNMP:
-
-1.  Install GNU regex and GNU libintl binaries and developer files in the
-    MinGW tree.
+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.
+       
+1.  Build and install GNU regex following the instructions in the 
+    regex-0-12-mingw-r2 README.
 
 2.  If SNMPv3 encryption capabilities or SHA authentication is required,
     install the OpenSSL DLL and library file as described in the section 
@@ -1127,7 +1357,7 @@ Proceed as follows to build Net-SNMP:
 
 	./configure --prefix="$BASEDIR" \
 		--with-mibdirs="$BASEDIR/share/snmp/mibs" \
-	--with-mib-modules="agentx disman/event-mib winExtDLL examples/example"\
+	--with-mib-modules="agentx disman/event-mib examples/example" \
         --disable-embedded-perl --without-perl-modules \
 
     Note: while the Net-SNMP implementation of the host resources MIB is not
diff --git a/TODO b/TODO
index 49d913e..2210b6e 100644
--- a/TODO
+++ b/TODO
@@ -24,8 +24,8 @@ Agent MIBs:
   Tunnel
   WWW-MIB
   Hardware Abstraction Layer:
-    HostRes	(convert to use HAL and clean up - in progress)
-    UCDavis	(convert to use HAL and update structures - in progress)
+    HostRes	(convert to use HAL and clean up)
+    UCDavis	(convert to use HAL and update structures)
 
 Extensibility:
   AgentX	(reasonably stable now)
diff --git a/acconfig.h b/acconfig.h
index d7a829b..c9b8527 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -1,9 +1,5 @@
 /* 
  * 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
@@ -27,7 +23,235 @@
  */
 #ifndef NETSNMP_NO_AUTOCONF_DEFINITIONS
 
+/* define if you have type int32_t */
+#undef HAVE_INT32_T
+
+/* define if you have type uint32_t */
+#undef HAVE_UINT32_T
+
+/* define if you have type u_int32_t */
+#undef HAVE_U_INT32_T
+
+/* define if you have type int64_t */
+#undef HAVE_INT64_T
+
+/* define if you have type uint64_t */
+#undef HAVE_UINT64_T
+
+/* define if you have type u_int64_t */
+#undef HAVE_U_INT64_T
+
+/* define if you have type intptr_t */
+#undef HAVE_INTPTR_T
+
+/* define if you have type uintptr_t */
+#undef HAVE_UINTPTR_T
+
+/* got socklen_t? */
+#undef HAVE_SOCKLEN_T
+
+/* got in_addr_t? */
+#undef HAVE_IN_ADDR_T
+
+/* define if you have getdevs() */
+#undef HAVE_GETDEVS
+
+/* define if you have devstat_getdevs() */
+#undef HAVE_DEVSTAT_GETDEVS
+
+/* define if you have <netinet/in_pcb.h> */
+#undef HAVE_NETINET_IN_PCB_H
+
+/* define if you have <sys/disklabel.h> */
+#undef HAVE_SYS_DISKLABEL_H
+
+/* define if your compiler (processor) defines __FUNCTION__ for you */
+#undef HAVE_CPP_UNDERBAR_FUNCTION_DEFINED
+
+/* on aix, if you have perfstat */
+#undef HAVE_PERFSTAT
+
+/* define if you have libdb, libnm or librpm, respectively */
+#undef HAVE_LIBDB
+#undef HAVE_LIBNM
+#undef HAVE_LIBRPM
+
+/* define if you have pkginfo */
+#undef HAVE_PKGINFO
+
+/* define if you have gethostbyname */
+#undef HAVE_GETHOSTBYNAME
+
+/* define if you have the perl_eval_pv() function */
+#undef HAVE_PERL_EVAL_PV_LC
+
+/* define if you have the Perl_eval_pv() function */
+#undef HAVE_PERL_EVAL_PV_UC
+
+/* printing system */
+#undef HAVE_LPSTAT
+#undef LPSTAT_PATH
+#undef HAVE_PRINTCAP
+/* Use dmalloc to do malloc debugging? */
+#undef HAVE_DMALLOC_H
+
+/* location of UNIX kernel */
+#define KERNEL_LOC "/vmunix"
+
+/* location of mount table list */
+#define ETC_MNTTAB "/etc/mnttab"
+
+/* location of swap device (ok if not found) */
+#undef DMEM_LOC
 
+/* Command to generate ps output, the final column must be the process
+   name withOUT arguments */
+#define PSCMD "/bin/ps"
+
+/* Where is the uname command */
+#define UNAMEPROG "/bin/uname"
+
+/* define if you are using linux and /proc/net/dev has the compressed
+   field, which exists in linux kernels 2.2 and greater. */
+#undef PROC_NET_DEV_HAS_COMPRESSED
+
+/* define rtentry to ortentry on SYSV machines (alphas) */
+#undef RTENTRY
+
+/* Use BSD 4.4 routing table entries? */
+#undef RTENTRY_4_4
+
+/* Does struct sigaction have a sa_sigaction field? */
+#undef STRUCT_SIGACTION_HAS_SA_SIGACTION
+
+/* Does struct tm have a tm_gmtoff field? */
+#undef STRUCT_TM_HAS_TM_GMTOFFF
+
+/* Does struct sockaddr have a sa_len field? */
+#undef STRUCT_SOCKADDR_HAS_SA_LEN
+
+/* Does struct sockaddr have a sa_family2 field? */
+#undef STRUCT_SOCKADDR_HAS_SA_UNION_SA_GENERIC_SA_FAMILY2
+
+/* Does struct sockaddr_storage have a ss_family field? */
+#undef STRUCT_SOCKADDR_STORAGE_HAS_SS_FAMILY
+
+/* Does struct sockaddr_storage have a __ss_family field? */
+#undef STRUCT_SOCKADDR_STORAGE_HAS___SS_FAMILY
+
+/* Does struct in6_addr have a s6_un.sa6_ladd field? */
+#undef STRUCT_IN6_ADDR_HAS_S6_UN_SA6_LADDR
+
+/* rtentry structure tests */
+#undef RTENTRY_RT_NEXT
+#undef STRUCT_RTENTRY_HAS_RT_DST
+#undef STRUCT_RTENTRY_HAS_RT_UNIT
+#undef STRUCT_RTENTRY_HAS_RT_USE
+#undef STRUCT_RTENTRY_HAS_RT_REFCNT
+#undef STRUCT_RTENTRY_HAS_RT_HASH
+
+/* ifnet structure tests */
+#undef STRUCT_IFNET_HAS_IF_BAUDRATE
+#undef STRUCT_IFNET_HAS_IF_BAUDRATE_IFS_VALUE
+#undef STRUCT_IFNET_HAS_IF_SPEED
+#undef STRUCT_IFNET_HAS_IF_TYPE
+#undef STRUCT_IFNET_HAS_IF_IMCASTS
+#undef STRUCT_IFNET_HAS_IF_IQDROPS
+#undef STRUCT_IFNET_HAS_IF_LASTCHANGE_TV_SEC
+#undef STRUCT_IFNET_HAS_IF_NOPROTO
+#undef STRUCT_IFNET_HAS_IF_OMCASTS
+#undef STRUCT_IFNET_HAS_IF_XNAME
+#undef STRUCT_IFNET_HAS_IF_OBYTES
+#undef STRUCT_IFNET_HAS_IF_IBYTES
+#undef STRUCT_IFNET_HAS_IF_ADDRLIST
+
+/* tcpstat.tcps_rcvmemdrop */
+#undef STRUCT_TCPSTAT_HAS_TCPS_RCVMEMDROP
+
+/* udpstat.udps_discard */
+#undef STRUCT_UDPSTAT_HAS_UDPS_DISCARD
+
+/* udpstat.udps_discard */
+#undef STRUCT_UDPSTAT_HAS_UDPS_NOPORT
+
+/* udpstat.udps_discard */
+#undef STRUCT_UDPSTAT_HAS_UDPS_NOPORTBCAST
+
+/* udpstat.udps_discard */
+#undef STRUCT_UDPSTAT_HAS_UDPS_FULLSOCK
+
+/* arphd.at_next */
+#undef STRUCT_ARPHD_HAS_AT_NEXT
+
+/* ifaddr.ifa_next */
+#undef STRUCT_IFADDR_HAS_IFA_NEXT
+
+/* ifnet.if_mtu */
+#undef STRUCT_IFNET_HAS_IF_MTU
+
+/* swdevt.sw_nblksenabled */
+#undef STRUCT_SWDEVT_HAS_SW_NBLKSENABLED
+
+/* nlist.n_value */
+#undef STRUCT_NLIST_HAS_N_VALUE
+
+/* nlist64.n_value */
+#undef STRUCT_NLIST64_HAS_N_VALUE
+
+/* ipstat structure tests */
+#undef STRUCT_IPSTAT_HAS_IPS_CANTFORWARD
+#undef STRUCT_IPSTAT_HAS_IPS_CANTFRAG
+#undef STRUCT_IPSTAT_HAS_IPS_DELIVERED
+#undef STRUCT_IPSTAT_HAS_IPS_FRAGDROPPED
+#undef STRUCT_IPSTAT_HAS_IPS_FRAGTIMEOUT
+#undef STRUCT_IPSTAT_HAS_IPS_LOCALOUT
+#undef STRUCT_IPSTAT_HAS_IPS_NOPROTO
+#undef STRUCT_IPSTAT_HAS_IPS_NOROUTE
+#undef STRUCT_IPSTAT_HAS_IPS_ODROPPED
+#undef STRUCT_IPSTAT_HAS_IPS_OFRAGMENTS
+#undef STRUCT_IPSTAT_HAS_IPS_REASSEMBLED
+
+/* vfsstat.f_frsize */
+#undef STRUCT_STATVFS_HAS_F_FRSIZE
+
+/* vfsstat.f_files */
+#undef STRUCT_STATVFS_HAS_F_FILES
+
+/* statfs inode structure tests*/
+#undef STRUCT_STATFS_HAS_F_FILES
+#undef STRUCT_STATFS_HAS_F_FFREE
+#undef STRUCT_STATFS_HAS_F_FAVAIL
+
+/* des_ks_struct.weak_key */
+#undef STRUCT_DES_KS_STRUCT_HAS_WEAK_KEY
+
+/* ifnet needs to have _KERNEL defined */
+#undef IFNET_NEEDS_KERNEL
+
+/* sysctl works to get boottime, etc... */
+#undef NETSNMP_CAN_USE_SYSCTL
+
+/* define if SIOCGIFADDR exists in sys/ioctl.h */
+#undef SYS_IOCTL_H_HAS_SIOCGIFADDR
+
+/* Define if statfs takes 2 args and the second argument has
+   type struct fs_data. [Ultrix] */
+#undef STAT_STATFS_FS_DATA
+
+/* Define if the TCP timer constants in <netinet/tcp_timer.h>
+   depend on the integer variable `hz'.  [FreeBSD 4.x] */
+#undef TCPTV_NEEDS_HZ
+
+/* Not-to-be-compiled macros for use by configure only */
+#define config_require(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)
+#define config_error(x)
+#define config_warning(x)
+  
 #if defined (WIN32) || defined (mingw32) || defined (cygwin)
 #define ENV_SEPARATOR ";"
 #define ENV_SEPARATOR_CHAR ';'
@@ -42,9 +266,50 @@
 
 /* end of definitions added by configure on-the-fly */
 
+#ifndef HAVE_STRCHR
+#ifdef HAVE_INDEX
+# define strchr index
+# define strrchr rindex
+#endif
+#endif
+
+#ifndef HAVE_INDEX
+#ifdef HAVE_STRCHR
+#ifdef mingw32
+# define index(a,b) strchr(a,b)
+# define rindex(a,b) strrchr(a,b)
+#else
+# define index strchr
+# define rindex strrchr
+#endif
+#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
+
 /* 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)) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
+#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_OPENSSL_AES_H) && defined(HAVE_AES_CFB128_ENCRYPT)
 #define HAVE_AES 1
 #endif
 
@@ -70,7 +335,7 @@
 #endif
 #endif
 
-#ifdef HAVE_DMALLOC_H
+#if HAVE_DMALLOC_H
 #define DMALLOC_FUNC_CHECK
 #endif
 
@@ -98,6 +363,27 @@
 /* default list of mibs to load */
 #define NETSNMP_DEFAULT_MIBS "IP-MIB:IF-MIB:TCP-MIB:UDP-MIB:SNMPv2-MIB:RFC1213-MIB"
 
+/* default location to look for mibs to load using the above tokens
+   and/or those in the MIBS envrionment variable*/
+#undef NETSNMP_DEFAULT_MIBDIRS
+
+/* default mib files to load, specified by path. */
+#undef NETSNMP_DEFAULT_MIBFILES
+
+/* should we compile to use special opaque types: float, double,
+   counter64, i64, ui64, union? */
+#undef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
+
+/* define if you want to compile support for both authentication and
+   privacy support. */
+#undef NETSNMP_ENABLE_SCAPI_AUTHPRIV
+
+/* define if you are using the MD5 code ...*/
+#undef NETSNMP_USE_INTERNAL_MD5
+
+/* define if you are using the codeS11 library ...*/
+#undef NETSNMP_USE_PKCS11
+
 /* debugging stuff */
 /* if defined, we optimize the code to exclude all debugging calls. */
 #undef NETSNMP_NO_DEBUGGING
@@ -113,6 +399,9 @@
    lines: PERSISTENT_DIRECTORY/NAME.persistent.conf */
 #define NETSNMP_PERSISTENT_DIRECTORY "/var/snmp"
 
+/* PERSISTENT_MASK: the umask permissions to set up persistent files with */
+#define NETSNMP_PERSISTENT_MASK 077
+
 /* AGENT_DIRECTORY_MODE: the mode the agents should use to create
    directories with. Since the data stored here is probably sensitive, it
    probably should be read-only by root/administrator. */
@@ -157,6 +446,19 @@
 /* Use libwrap to handle allow/deny hosts? */
 #undef NETSNMP_USE_LIBWRAP
 
+/* testing code sections. */
+#undef NETSNMP_ENABLE_TESTING_CODE 
+
+/* If you don't have root access don't exit upon kmem errors */
+#undef NETSNMP_NO_ROOT_ACCESS
+
+/* If we don't want to use kmem. */
+#undef NETSNMP_NO_KMEM_USAGE
+
+/* If you don't want the agent to report on variables it doesn't have data for */
+#undef NETSNMP_NO_DUMMY_VALUES
+
+
 /* Mib-2 tree Info */
 /* These are the system information variables. */
 
@@ -212,7 +514,6 @@
 #define NETSNMP_HPUX11ID 14
 #define NETSNMP_AIXID 15
 #define NETSNMP_MACOSXID 16
-#define NETSNMP_DRAGONFLYID 17
 #define NETSNMP_UNKNOWNID 255
 
 #ifdef hpux9
@@ -242,9 +543,6 @@
 #if defined(__FreeBSD__)
 #define NETSNMP_OSTYPE NETSNMP_FREEBSDID
 #endif
-#if defined(__DragonFly__)
-#define NETSNMP_OSTYPE NETSNMP_DRAGONFLYID
-#endif
 #if defined(irix6) || defined(irix5)
 #define NETSNMP_OSTYPE NETSNMP_IRIXID
 #endif
@@ -254,13 +552,13 @@
 #if defined(bsdi2) || defined(bsdi3) || defined(bsdi4)
 #define NETSNMP_OSTYPE NETSNMP_BSDIID
 #endif
-#if defined(openbsd)
+#if defined(openbsd2) || defined(openbsd3) || defined(openbsd4)
 #define NETSNMP_OSTYPE NETSNMP_OPENBSDID
 #endif
 #ifdef WIN32
 #define NETSNMP_OSTYPE NETSNMP_WIN32ID
 #endif
-#if defined(aix3) || defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#if defined(aix3) || defined(aix4) || defined(aix5) || defined(aix6)
 #define NETSNMP_OSTYPE NETSNMP_AIXID
 #endif
 #if defined(darwin) && (darwin >= 8)
@@ -317,7 +615,7 @@
 
 #define NETSNMP_EXCACHETIME 30
 #define NETSNMP_CACHEFILE ".snmp-exec-cache"
-#define NETSNMP_MAXCACHESIZE (1500*80)   /* roughly 1500 lines max */
+#define NETSNMP_MAXCACHESIZE (200*80)   /* roughly 200 lines max */
 
 /* misc defaults */
 
@@ -345,12 +643,18 @@
 /* UNdefine to allow specifying zero-length community string */
 /* #define NETSNMP_NO_ZEROLENGTH_COMMUNITY 1 */
 
+/* define to exit the agent on a bad kernel read */
+/* #define NETSNMP_EXIT_ON_BAD_KLREAD  */
+
 /* Number of community strings to store */
 #define NETSNMP_NUM_COMMUNITIES	5
 
 /* internal define */
 #define NETSNMP_LASTFIELD -1
 
+/* configure options specified */
+#define NETSNMP_CONFIGURE_OPTIONS ""
+
 /*  Pluggable transports.  */
 
 /*  This is defined if support for the UDP/IP transport domain is
@@ -385,32 +689,13 @@
     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
+/*  This is defined if support for the UDP/IP transport domain is
     available.   */
-#undef NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+#undef NETSNMP_TRANSPORT_TLS_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
 
@@ -420,9 +705,18 @@
 /* define this if the local security module is available */
 #undef NETSNMP_SECMOD_LOCALSM
 
+/* define if you want to build with reentrant/threaded code (incomplete)*/
+#undef NETSNMP_REENTRANT
+
 /* define if configured as a "mini-agent" */
 #undef NETSNMP_MINI_AGENT
 
+/* define if you are embedding perl in the main agent */
+#undef NETSNMP_EMBEDDED_PERL
+
+/* define if you want to build MFD module rewrites*/
+#undef NETSNMP_ENABLE_MFD_REWRITES
+
 /* this is the location of the net-snmp mib tree.  It shouldn't be
    changed, as the places it is used are expected to be constant
    values or are directly tied to the UCD-SNMP-MIB. */
@@ -490,12 +784,33 @@
 #  define NETSNMP_IMPORT extern
 #endif
 
+/* define if you want to enable IPv6 support */
+#undef NETSNMP_ENABLE_IPV6
+
+/* define if you want to restrict SMUX connections to localhost by default */
+#undef NETSNMP_ENABLE_LOCAL_SMUX
+
+/* define if agentx transport is to use domain sockets only */
+#undef NETSNMP_AGENTX_DOM_SOCK_ONLY
+
+/* define if you do not want snmptrapd to register as an AgentX subagent */
+#undef NETSNMP_SNMPTRAPD_DISABLE_AGENTX
+
+/* define this if we're using the new MIT crypto API */
+#undef NETSNMP_USE_KERBEROS_MIT
+
+/* define this if you're using Heimdal Kerberos */
+#undef NETSNMP_USE_KERBEROS_HEIMDAL
+
 /* comment the next line if you are compiling with libsnmp.h 
    and are not using the UC-Davis SNMP library. */
 #define UCD_SNMP_LIBRARY 1
 
+/* add in recent CMU library extensions (not complete) */
+#undef CMU_COMPATIBLE
+
 /* final conclusion on nlist usage */
-#if defined(HAVE_NLIST) && defined(HAVE_STRUCT_NLIST_N_VALUE) && !defined(NETSNMP_DONT_USE_NLIST) && defined(HAVE_KMEM) && !defined(NETSNMP_NO_KMEM_USAGE)
+#if defined(HAVE_NLIST) && defined(STRUCT_NLIST_HAS_N_VALUE) && !defined(NETSNMP_DONT_USE_NLIST) && !defined(NETSNMP_NO_KMEM_USAGE)
 #define NETSNMP_CAN_USE_NLIST
 #endif
 
@@ -701,6 +1016,10 @@
 # define NO_ZEROLENGTH_COMMUNITY NETSNMP_NO_ZEROLENGTH_COMMUNITY
 #endif
 
+#ifdef NETSNMP_EXIT_ON_BAD_KLREAD
+# define EXIT_ON_BAD_KLREAD NETSNMP_EXIT_ON_BAD_KLREAD
+#endif
+
 #define LASTFIELD NETSNMP_LASTFIELD
 
 #define CONFIGURE_OPTIONS NETSNMP_CONFIGURE_OPTIONS
diff --git a/acinclude.m4 b/acinclude.m4
new file mode 100644
index 0000000..5c12980
--- /dev/null
+++ b/acinclude.m4
@@ -0,0 +1,200 @@
+dnl @synopsis AC_PROMPT_USER_NO_DEFINE(VARIABLENAME,QUESTION,[DEFAULT])
+dnl
+dnl Asks a QUESTION and puts the results in VARIABLENAME with an optional
+dnl DEFAULT value if the user merely hits return.
+dnl
+dnl @version 1.15
+dnl @author Wes Hardaker <hardaker at users.sourceforge.net>
+dnl
+AC_DEFUN([AC_PROMPT_USER_NO_DEFINE],
+dnl changequote(<<, >>) dnl
+dnl <<
+[
+if test "x$defaults" = "xno"; then
+echo $ECHO_N "$2 ($3): $ECHO_C"
+read tmpinput
+if test "$tmpinput" = "" -a "$3" != ""; then
+  tmpinput="$3"
+fi
+eval $1=\"$tmpinput\"
+else
+tmpinput="$3"
+eval $1=\"$tmpinput\"
+fi
+]
+dnl >>
+dnl changequote([, ])
+) dnl done AC_PROMPT_USER
+
+dnl @synopsis AC_PROMPT_USER(VARIABLENAME,QUESTION,[DEFAULT],QUOTED)
+dnl
+dnl Asks a QUESTION and puts the results in VARIABLENAME with an optional
+dnl DEFAULT value if the user merely hits return.  Also calls 
+dnl AC_DEFINE_UNQUOTED() on the VARIABLENAME for VARIABLENAMEs that should
+dnl be entered into the config.h file as well.  If QUOTED is "quoted" then
+dnl the result will be defined within quotes.
+dnl
+dnl @version 1.15
+dnl @author Wes Hardaker <hardaker at users.sourceforge.net>
+dnl
+AC_DEFUN([AC_PROMPT_USER],
+[
+MSG_CHECK=`echo "$2" | tail -1`
+AC_CACHE_CHECK($MSG_CHECK, ac_cv_user_prompt_$1,
+[echo "" >&AC_FD_MSG
+AC_PROMPT_USER_NO_DEFINE($1,[$2],$3)
+eval ac_cv_user_prompt_$1=\$$1
+echo $ECHO_N "setting $MSG_CHECK to...  $ECHO_C" >&AC_FD_MSG
+])
+if test "$ac_cv_user_prompt_$1" != "none"; then
+  if test "x$4" = "xquoted" -o "x$4" = "xQUOTED"; then
+    AC_DEFINE_UNQUOTED($1,"$ac_cv_user_prompt_$1")
+  else
+    AC_DEFINE_UNQUOTED($1,$ac_cv_user_prompt_$1)
+  fi
+fi
+]) dnl
+
+dnl @synopsis AC_CHECK_STRUCT_FOR(INCLUDES,STRUCT,MEMBER,DEFINE,[no])
+dnl
+dnl Checks STRUCT for MEMBER and defines DEFINE if found.
+dnl
+dnl @version 1.15
+dnl @author Wes Hardaker <hardaker at users.sourceforge.net>
+dnl
+AC_DEFUN([AC_CHECK_STRUCT_FOR],[
+
+ac_safe_struct=`echo "$2" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "$3" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+changequote(, )dnl
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+changequote([, ])dnl
+
+AC_MSG_CHECKING([for $2.$3])
+AC_CACHE_VAL($ac_safe_all,
+[
+if test "x$4" = "x"; then
+  defineit="= 0"
+elif test "x$4" = "xno"; then
+  defineit=""
+else
+  defineit="$4"
+fi
+AC_TRY_COMPILE([
+$1
+],[
+struct $2 testit; 
+testit.$3 $defineit;
+], eval "${ac_safe_all}=yes", eval "${ac_safe_all}=no" )
+])
+
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  AC_MSG_RESULT(yes)
+  AC_DEFINE_UNQUOTED($ac_uc_define)
+else
+  AC_MSG_RESULT(no)
+fi
+
+])
+
+dnl AC_CHECK_IFNET_FOR(SUBSTRUCT,[no])
+AC_DEFUN([AC_CHECK_IFNET_FOR],[
+dnl check for $1 in struct ifnet
+AC_CHECK_STRUCT_FOR([
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
+#endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
+
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
+
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
+#endif
+], ifnet, $1, $2)
+])
+
+dnl
+dnl Add a search path to the LIBS and CFLAGS variables
+dnl
+AC_DEFUN([AC_ADD_SEARCH_PATH],[
+  if test "x$1" != x -a -d $1; then
+     if test -d $1/lib; then
+       LDFLAGS="-L$1/lib $LDFLAGS"
+     fi
+     if test -d $1/include; then
+	CPPFLAGS="-I$1/include $CPPFLAGS"
+     fi
+  fi
+])
+
+dnl
+dnl Store information for displaying later.
+dnl
+AC_DEFUN([AC_MSG_CACHE_INIT],[
+  rm -f configure-summary
+])
+
+AC_DEFUN([AC_MSG_CACHE_ADD],[
+  cat >> configure-summary << EOF
+  $1
+EOF
+])
+
+AC_DEFUN([AC_MSG_CACHE_DISPLAY],[
+  echo ""
+  echo "---------------------------------------------------------"
+  echo "            Net-SNMP configuration summary:"
+  echo "---------------------------------------------------------"
+  echo ""
+  cat configure-summary
+  echo ""
+  echo "---------------------------------------------------------"
+  echo ""
+])
+
+AC_DEFUN([AC_MSG_MODULE_DBG],
+[
+  if test $module_debug = 1; then
+    echo $1 $2 $3 $4
+  fi
+]
+)
diff --git a/aclocal.m4 b/aclocal.m4
index cd80c74..441c752 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
+# generated automatically by aclocal 1.10.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008  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.
@@ -11,14 +11,6640 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-m4_include([m4/ac_add_search_path.m4])
-m4_include([m4/ac_msg_cache.m4])
-m4_include([m4/ac_msg_module_dbg.m4])
-m4_include([m4/ac_prompt_user.m4])
-m4_include([m4/libtool.m4])
-m4_include([m4/ltoptions.m4])
-m4_include([m4/ltsugar.m4])
-m4_include([m4/ltversion.m4])
-m4_include([m4/lt~obsolete.m4])
-m4_include([m4/netsnmp_arg.m4])
-m4_include([m4/netsnmp_search_libs.m4])
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+
+# serial 52 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+         [],
+         [m4_define([AC_PROVIDE_IFELSE],
+	         [m4_ifdef([AC_PROVIDE_$1],
+		           [$2], [$3])])])
+
+
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+  AC_PROVIDE_IFELSE([AC_PROG_CXX],
+    [AC_LIBTOOL_CXX],
+    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+  ])])
+dnl And a similar setup for Fortran 77 support
+  AC_PROVIDE_IFELSE([AC_PROG_F77],
+    [AC_LIBTOOL_F77],
+    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+    [AC_LIBTOOL_GCJ],
+    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+      [AC_LIBTOOL_GCJ],
+      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+	[AC_LIBTOOL_GCJ],
+      [ifdef([AC_PROG_GCJ],
+	     [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([A][M_PROG_GCJ],
+	     [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([LT_AC_PROG_GCJ],
+	     [define([LT_AC_PROG_GCJ],
+		defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
+
+
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
+
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
+
+# Same as above, but do not quote variable references.
+[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+AC_CHECK_TOOL(AR, ar, false)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    AC_PATH_MAGIC
+  fi
+  ;;
+esac
+
+_LT_REQUIRED_DARWIN_CHECKS
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+AC_ARG_WITH([pic],
+    [AC_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+AC_LIBTOOL_LANG_C_CONFIG
+_LT_AC_TAGCONFIG
+])# AC_LIBTOOL_SETUP
+
+
+# _LT_AC_SYS_COMPILER
+# -------------------
+AC_DEFUN([_LT_AC_SYS_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_AC_SYS_COMPILER
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+AC_DEFUN([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+  case $cc_temp in
+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+AC_DEFUN([_LT_COMPILER_BOILERPLATE],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+AC_DEFUN([_LT_LINKER_BOILERPLATE],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# --------------------------
+# Check for some things on darwin
+AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS],[
+  case $host_os in
+    rhapsody* | darwin*)
+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+
+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+      [lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+   # By default we will add the -single_module flag. You can override
+   # by either setting the environment variable LT_MULTI_MODULE
+   # non-empty at configure time, or by adding -multi_module to the
+   # link flags.
+   echo "int foo(void){return 1;}" > conftest.c
+   $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+     -dynamiclib ${wl}-single_module conftest.c
+   if test -f libconftest.dylib; then
+     lt_cv_apple_cc_single_mod=yes
+     rm -rf libconftest.dylib*
+   fi
+   rm conftest.c
+      fi])
+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+      [lt_cv_ld_exported_symbols_list],
+      [lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+   [lt_cv_ld_exported_symbols_list=yes],
+   [lt_cv_ld_exported_symbols_list=no])
+   LDFLAGS="$save_LDFLAGS"
+    ])
+    case $host_os in
+    rhapsody* | darwin1.[[0123]])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*)
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+   10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+   10.[[012]]*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+   10.*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}"
+    fi
+    if test "$DSYMUTIL" != ":"; then
+      _lt_dsymutil="~$DSYMUTIL \$lib || :"
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+])
+
+# _LT_AC_SYS_LIBPATH_AIX
+# ----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_AC_SYS_LIBPATH_AIX
+
+
+# _LT_AC_SHELL_INIT(ARG)
+# ----------------------
+AC_DEFUN([_LT_AC_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+	 [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_AC_SHELL_INIT
+
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[_LT_AC_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+echo=${ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X[$]1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+[$]*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+    # expected sizes: less than 2kB, 1kB, 512 bytes, 16 bytes, ...
+    if (echo_test_string=`eval $cmd`) 2>/dev/null &&
+       echo_test_string=`eval $cmd` &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+   test "X$echo_testing_string" = "X$echo_test_string"; then
+  :
+else
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for dir in $PATH /usr/ucb; do
+    IFS="$lt_save_ifs"
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running configure again with it.
+      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+    else
+      # Try using printf.
+      echo='printf %s\n'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+	 test "X$echo_testing_string" = "X$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+	  then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "[$]0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+])])# _LT_AC_PROG_ECHO_BACKSLASH
+
+
+# _LT_AC_LOCK
+# -----------
+AC_DEFUN([_LT_AC_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+   fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *32-bit*)
+      case $host in
+        x86_64-*kfreebsd*-gnu)
+          LD="${LD-ld} -m elf_i386_fbsd"
+          ;;
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*|powerpc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      case $host in
+        x86_64-*kfreebsd*-gnu)
+          LD="${LD-ld} -m elf_x86_64_fbsd"
+          ;;
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)
+        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+  ])
+esac
+
+need_locks="$enable_libtool_lock"
+
+])# _LT_AC_LOCK
+
+
+# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$5], , :, [$5])
+else
+    ifelse([$6], , :, [$6])
+fi
+])# AC_LIBTOOL_COMPILER_OPTION
+
+
+# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                          [ACTION-SUCCESS], [ACTION-FAILURE])
+# ------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $rm -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$4], , :, [$4])
+else
+    ifelse([$5], , :, [$5])
+fi
+])# AC_LIBTOOL_LINKER_OPTION
+
+
+# AC_LIBTOOL_SYS_MAX_CMD_LEN
+# --------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+[# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ 	]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
+	       = "XX$teststring") >/dev/null 2>&1 &&
+	      new_result=`expr "X$teststring" : ".*" 2>&1` &&
+	      lt_cv_sys_max_cmd_len=$new_result &&
+	      test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on massive
+      # amounts of additional arguments before passing them to the linker.
+      # It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+
+
+# _LT_AC_CHECK_DLFCN
+# ------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)dnl
+])# _LT_AC_CHECK_DLFCN
+
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ---------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+    exit (status);
+}]
+EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+
+# AC_LIBTOOL_DLOPEN_SELF
+# ----------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+   ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+    	  lt_cv_dlopen_self_static, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+
+# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+# ---------------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler
+AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+])
+])# AC_LIBTOOL_PROG_CC_C_O
+
+
+# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+# -----------------------------------------
+# Check to see if we can do hard links to lock some files if needed
+AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+[AC_REQUIRE([_LT_AC_LOCK])dnl
+
+hard_links="nottested"
+if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
+
+
+# AC_LIBTOOL_OBJDIR
+# -----------------
+AC_DEFUN([AC_LIBTOOL_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+])# AC_LIBTOOL_OBJDIR
+
+
+# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+# ----------------------------------------------
+# Check hardcoding attributes.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_AC_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+   test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \
+   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_AC_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+
+
+# AC_LIBTOOL_SYS_LIB_STRIP
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+[striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         old_striplib="$STRIP -S"
+         AC_MSG_RESULT([yes])
+       else
+  AC_MSG_RESULT([no])
+fi
+       ;;
+   *)
+  AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+])# AC_LIBTOOL_SYS_LIB_STRIP
+
+
+# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+m4_if($1,[],[
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+  sys_lib_search_path_spec=`echo $lt_search_path_spec`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[[4-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+  m4_if([$1], [],[
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) 
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[123]]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix[[3-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+AC_CACHE_VAL([lt_cv_sys_lib_search_path_spec],
+[lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"])
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+AC_CACHE_VAL([lt_cv_sys_lib_dlsearch_path_spec],
+[lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"])
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+
+
+# _LT_AC_TAGCONFIG
+# ----------------
+AC_DEFUN([_LT_AC_TAGCONFIG],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_ARG_WITH([tags],
+    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+        [include additional configurations @<:@automatic@:>@])],
+    [tagnames="$withval"])
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    AC_MSG_WARN([output file `$ofile' does not exist])
+  fi
+
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+    else
+      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+    fi
+  fi
+  if test -z "$LTCFLAGS"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
+  fi
+
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+    "") ;;
+    *)  AC_MSG_ERROR([invalid tag name: $tagname])
+	;;
+    esac
+
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      AC_MSG_ERROR([tag name \"$tagname\" already exists])
+    fi
+
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+	if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+	    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+	    (test "X$CXX" != "Xg++"))) ; then
+	  AC_LIBTOOL_LANG_CXX_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      F77)
+	if test -n "$F77" && test "X$F77" != "Xno"; then
+	  AC_LIBTOOL_LANG_F77_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      GCJ)
+	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+	  AC_LIBTOOL_LANG_GCJ_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      RC)
+	AC_LIBTOOL_LANG_RC_CONFIG
+	;;
+
+      *)
+	AC_MSG_ERROR([Unsupported tag name: $tagname])
+	;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    AC_MSG_ERROR([unable to update list of available tagged configurations.])
+  fi
+fi
+])# _LT_AC_TAGCONFIG
+
+
+# AC_LIBTOOL_DLOPEN
+# -----------------
+# enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN],
+ [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_DLOPEN
+
+
+# AC_LIBTOOL_WIN32_DLL
+# --------------------
+# declare package support for building win32 DLLs
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_WIN32_DLL
+
+
+# AC_ENABLE_SHARED([DEFAULT])
+# ---------------------------
+# implement the --enable-shared flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([shared],
+    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+])# AC_ENABLE_SHARED
+
+
+# AC_DISABLE_SHARED
+# -----------------
+# set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)
+])# AC_DISABLE_SHARED
+
+
+# AC_ENABLE_STATIC([DEFAULT])
+# ---------------------------
+# implement the --enable-static flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([static],
+    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+])# AC_ENABLE_STATIC
+
+
+# AC_DISABLE_STATIC
+# -----------------
+# set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)
+])# AC_DISABLE_STATIC
+
+
+# AC_ENABLE_FAST_INSTALL([DEFAULT])
+# ---------------------------------
+# implement the --enable-fast-install flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([fast-install],
+    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+])# AC_ENABLE_FAST_INSTALL
+
+
+# AC_DISABLE_FAST_INSTALL
+# -----------------------
+# set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)
+])# AC_DISABLE_FAST_INSTALL
+
+
+# AC_LIBTOOL_PICMODE([MODE])
+# --------------------------
+# implement the --with-pic flag
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)
+])# AC_LIBTOOL_PICMODE
+
+
+# AC_PROG_EGREP
+# -------------
+# This is predefined starting with Autoconf 2.54, so this conditional
+# definition can be removed once we require Autoconf 2.54 or later.
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi])
+ EGREP=$ac_cv_prog_egrep
+ AC_SUBST([EGREP])
+])])
+
+
+# AC_PATH_TOOL_PREFIX
+# -------------------
+# find a file program which can recognize shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="ifelse([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+])# AC_PATH_TOOL_PREFIX
+
+
+# AC_PATH_MAGIC
+# -------------
+# find a file program which can recognize a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# AC_PATH_MAGIC
+
+
+# AC_PROG_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+    [AC_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])
+AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])# AC_PROG_LD
+
+
+# AC_PROG_LD_GNU
+# --------------
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# AC_PROG_LD_GNU
+
+
+# AC_PROG_LD_RELOAD_FLAG
+# ----------------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+])# AC_PROG_LD_RELOAD_FLAG
+
+
+# AC_DEPLIBS_CHECK_METHOD
+# -----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  if ( file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[[3-9]]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+])# AC_DEPLIBS_CHECK_METHOD
+
+
+# AC_PROG_NM
+# ----------
+# find the pathname to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+])# AC_PROG_NM
+
+
+# AC_CHECK_LIBM
+# -------------
+# check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+])# AC_CHECK_LIBM
+
+
+# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl convenience library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-convenience to the configure arguments.  Note that
+# AC_CONFIG_SUBDIRS is not called here.  If DIRECTORY is not provided,
+# it is assumed to be `libltdl'.  LIBLTDL will be prefixed with
+# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/'
+# (note the single quotes!).  If your package is not flat and you're not
+# using automake, define top_builddir and top_srcdir appropriately in
+# the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  case $enable_ltdl_convenience in
+  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+  "") enable_ltdl_convenience=yes
+      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+  esac
+  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_CONVENIENCE
+
+
+# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl installable library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-install to the configure arguments.  Note that
+# AC_CONFIG_SUBDIRS is not called here.  If DIRECTORY is not provided,
+# and an installed libltdl is not found, it is assumed to be `libltdl'.
+# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with
+# '${top_srcdir}/' (note the single quotes!).  If your package is not
+# flat and you're not using automake, define top_builddir and top_srcdir
+# appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  AC_CHECK_LIB(ltdl, lt_dlinit,
+  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+  [if test x"$enable_ltdl_install" = xno; then
+     AC_MSG_WARN([libltdl not installed, but installation disabled])
+   else
+     enable_ltdl_install=yes
+   fi
+  ])
+  if test x"$enable_ltdl_install" = x"yes"; then
+    ac_configure_args="$ac_configure_args --enable-ltdl-install"
+    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  else
+    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+    LIBLTDL="-lltdl"
+    LTDLINCL=
+  fi
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_INSTALLABLE
+
+
+# AC_LIBTOOL_CXX
+# --------------
+# enable support for C++ libraries
+AC_DEFUN([AC_LIBTOOL_CXX],
+[AC_REQUIRE([_LT_AC_LANG_CXX])
+])# AC_LIBTOOL_CXX
+
+
+# _LT_AC_LANG_CXX
+# ---------------
+AC_DEFUN([_LT_AC_LANG_CXX],
+[AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+])# _LT_AC_LANG_CXX
+
+# _LT_AC_PROG_CXXCPP
+# ------------------
+AC_DEFUN([_LT_AC_PROG_CXXCPP],
+[
+AC_REQUIRE([AC_PROG_CXX])
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+fi
+])# _LT_AC_PROG_CXXCPP
+
+# AC_LIBTOOL_F77
+# --------------
+# enable support for Fortran 77 libraries
+AC_DEFUN([AC_LIBTOOL_F77],
+[AC_REQUIRE([_LT_AC_LANG_F77])
+])# AC_LIBTOOL_F77
+
+
+# _LT_AC_LANG_F77
+# ---------------
+AC_DEFUN([_LT_AC_LANG_F77],
+[AC_REQUIRE([AC_PROG_F77])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+])# _LT_AC_LANG_F77
+
+
+# AC_LIBTOOL_GCJ
+# --------------
+# enable support for GCJ libraries
+AC_DEFUN([AC_LIBTOOL_GCJ],
+[AC_REQUIRE([_LT_AC_LANG_GCJ])
+])# AC_LIBTOOL_GCJ
+
+
+# _LT_AC_LANG_GCJ
+# ---------------
+AC_DEFUN([_LT_AC_LANG_GCJ],
+[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+	 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+	   [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+])# _LT_AC_LANG_GCJ
+
+
+# AC_LIBTOOL_RC
+# -------------
+# enable support for Windows resource files
+AC_DEFUN([AC_LIBTOOL_RC],
+[AC_REQUIRE([LT_AC_PROG_RC])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+])# AC_LIBTOOL_RC
+
+
+# AC_LIBTOOL_LANG_C_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+[lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF
+
+# Report which library types will actually be built
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix[[4-9]]*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+    ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_C_CONFIG
+
+
+# AC_LIBTOOL_LANG_CXX_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+[AC_LANG_PUSH(C++)
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Dependencies to place before and after the object being linked:
+_LT_AC_TAGVAR(predep_objects, $1)=
+_LT_AC_TAGVAR(postdep_objects, $1)=
+_LT_AC_TAGVAR(predeps, $1)=
+_LT_AC_TAGVAR(postdeps, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+  $as_unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+  $as_unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+else
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+fi
+
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
+
+  AC_PROG_LD
+
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
+
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+	grep 'no-whole-archive' > /dev/null; then
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+  fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  aix[[4-9]]*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      aix_use_runtimelinking=no
+
+      # Test if we are trying to use run time linking or normal
+      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+      # need to do runtime linking.
+      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	for ld_flag in $LDFLAGS; do
+	  case $ld_flag in
+	  *-brtl*)
+	    aix_use_runtimelinking=yes
+	    break
+	    ;;
+	  esac
+	done
+	;;
+      esac
+
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
+
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    _LT_AC_TAGVAR(archive_cmds, $1)=''
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.[[012]]|aix4.[[012]].*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+	collect2name=`${CC} -print-prog-name=collect2`
+	if test -f "$collect2name" && \
+	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	then
+	  # We have reworked collect2
+	  :
+	else
+	  # We have old collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	fi
+	;;
+      esac
+      shared_flag='-shared'
+      if test "$aix_use_runtimelinking" = yes; then
+	shared_flag="$shared_flag "'${wl}-G'
+      fi
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	shared_flag='-G'
+      else
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag='${wl}-G'
+	else
+	  shared_flag='${wl}-bM:SRE'
+	fi
+      fi
+    fi
+
+    # It seems that -bexpall does not export symbols beginning with
+    # underscore (_), so it is better to generate a list of symbols to export.
+    _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      _LT_AC_SYS_LIBPATH_AIX
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+      else
+	# Determine the default libpath from the value encoded in an empty executable.
+	_LT_AC_SYS_LIBPATH_AIX
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	# Warning - without using the other run time loading flags,
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	# Exported symbols can be pulled into shared objects from archives
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	# This is similar to how AIX traditionally builds its shared libraries.
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
+
+  beos*)
+    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+      # support --undefined.  This deserves some investigation.  FIXME
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+    ;;
+
+  chorus*)
+    case $cc_basename in
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+    # as there is no search path for DLLs.
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+    _LT_AC_TAGVAR(always_export_symbols, $1)=no
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	cp $export_symbols $output_objdir/$soname.def;
+      else
+	echo EXPORTS > $output_objdir/$soname.def;
+	cat $export_symbols >> $output_objdir/$soname.def;
+      fi~
+      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+  ;;
+      darwin* | rhapsody*)
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+      if test "$GXX" = yes ; then
+      output_verbose_link_cmd='echo'
+      _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+      _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+      _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+      if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+        _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+        _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+      fi
+      else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+          _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         _LT_AC_TAGVAR(ld_shlibs, $1)=no
+          ;;
+      esac
+      fi
+        ;;
+
+  dgux*)
+    case $cc_basename in
+      ec++*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      ghcx*)
+	# Green Hills C++ Compiler
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  freebsd[[12]]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  freebsd-elf*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  freebsd* | dragonfly*)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				# but as the default
+				# location of the library.
+
+    case $cc_basename in
+    CC*)
+      # FIXME: insert proper C++ library support
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    aCC*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+        # FIXME: insert proper C++ library support
+        _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+      case $host_cpu in
+      hppa*64*|ia64*) ;;
+      *)
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        ;;
+      esac
+    fi
+    case $host_cpu in
+    hppa*64*|ia64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+    *)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    esac
+
+    case $cc_basename in
+      CC*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      aCC*)
+	case $host_cpu in
+	hppa*64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	esac
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test $with_gnu_ld = no; then
+	    case $host_cpu in
+	    hppa*64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    ia64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    esac
+	  fi
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  interix[[3-9]]*)
+    _LT_AC_TAGVAR(hardcode_direct, $1)=no
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+    # Instead, shared libraries are loaded at an image base (0x10000000 by
+    # default) and relocated if they conflict, which is a slow very memory
+    # consuming and fragmenting process.  To avoid this, we pick a random,
+    # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+    # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC*)
+	# SGI C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	# Archives containing C++ object files must be created using
+	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test "$with_gnu_ld" = no; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	  else
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+	  fi
+	fi
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+	;;
+    esac
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    ;;
+  linux* | k*bsd*-gnu)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	;;
+      icpc*)
+	# Intel C++
+	with_gnu_ld=yes
+	# version 8.0 and above of icpc choke on multiply defined symbols
+	# if we add $predep_objects and $postdep_objects, however 7.1 and
+	# earlier do not add the objects themselves.
+	case `$CC -V 2>&1` in
+	*"Version 7."*)
+  	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+  	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	*)  # Version 8.0 or newer
+	  tmp_idyn=
+	  case $host_cpu in
+	    ia64*) tmp_idyn=' -i_dynamic';;
+	  esac
+  	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	esac
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	;;
+      pgCC* | pgcpp*)
+        # Portland Group C++ compiler
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+  	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+        ;;
+      cxx*)
+	# Compaq C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	runpath_var=LD_RUN_PATH
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C++ 5.9
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+
+	  # Not sure whether something based on
+	  # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+	  # would be better.
+	  output_verbose_link_cmd='echo'
+
+	  # Archives containing C++ object files must be created using
+	  # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	  # necessary to make sure instantiated templates are included
+	  # in the archive.
+	  _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	  ;;
+	esac
+	;;
+    esac
+    ;;
+  lynxos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  m88k*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  mvs*)
+    case $cc_basename in
+      cxx*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    fi
+    # Workaround some broken pre-1.5 toolchains
+    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+    ;;
+  openbsd2*)
+    # C++ shared libraries are fairly broken
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  openbsd*)
+    if test -f /usr/libexec/ld.so; then
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      fi
+      output_verbose_link_cmd='echo'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+    ;;
+  osf3*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx*)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  osf4* | osf5*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx*)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	  echo "-hidden">> $lib.exp~
+	  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry ${output_objdir}/so_locations -o $lib~
+	  $rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	 _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  psos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  sunos4*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.x
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      lcc*)
+	# Lucid
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  solaris*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.2, 5.x and Centerline C++
+        _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	$CC -G${allow_undefined_flag}  ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	case $host_os in
+	  solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	  *)
+	    # The compiler driver will combine and reorder linker options,
+	    # but understands `-z linker_flag'.
+	    # Supported since Solaris 2.6 (maybe 2.5.1?)
+	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	    ;;
+	esac
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+	output_verbose_link_cmd='echo'
+
+	# Archives containing C++ object files must be created using
+	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	;;
+      gcx*)
+	# Green Hills C++ Compiler
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	# The C++ compiler must be used to create the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	;;
+      *)
+	# GNU C++ compiler with Solaris linker
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	  if $CC --version | grep -v '^2\.7' > /dev/null; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  else
+	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	    # platform.
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  fi
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	  case $host_os in
+	  solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	  *)
+	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	    ;;
+	  esac
+	fi
+	;;
+    esac
+    ;;
+  sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+    _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  sysv5* | sco3.2v5* | sco5v6*)
+    # Note: We can NOT use -z defs as we might desire, because we do not
+    # link with -lc, and that would cause any symbols used from libc to
+    # always be unresolved, which means just about no library would
+    # ever link correctly.  If we're not using GNU ld we use -z text
+    # though, which does catch some bad symbols but isn't as heavy-handed
+    # as -z defs.
+    # For security reasons, it is highly recommended that you always
+    # use absolute paths for naming shared libraries, and exclude the
+    # DT_RUNPATH tag from executables and libraries.  But doing so
+    # requires that you compile everything twice, which is a pain.
+    # So that behaviour is only enabled if SCOABSPATH is set to a
+    # non-empty value in the environment.  Most likely only useful for
+    # creating official distributions of packages.
+    # This is a hack until libtool officially supports absolute path
+    # names for shared libraries.
+    _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+    _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+    runpath_var='LD_RUN_PATH'
+
+    case $cc_basename in
+      CC*)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  tandem*)
+    case $cc_basename in
+      NCC*)
+	# NonStop-UX NCC 3.20
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  vxworks*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  *)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+esac
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$GXX"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_POSTDEP_PREDEP($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+])# AC_LIBTOOL_LANG_CXX_CONFIG
+
+# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
+# ------------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
+int a;
+void foo (void) { a = 0; }
+EOF
+],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+EOF
+],[$1],[F77],[cat > conftest.$ac_ext <<EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+EOF
+],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  # The `*' in the case matches for architectures that use `case' in
+  # $output_verbose_cmd can trigger glob expansion during the loop
+  # eval without this substitution.
+  output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
+
+  for p in `eval $output_verbose_link_cmd`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" \
+	  || test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	   else
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
+	   _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
+	 else
+	   _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
+	   _LT_AC_TAGVAR(predep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$rm -f confest.$objext
+
+_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+  _LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_AC_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
+# PORTME: override above test on systems where it is broken
+ifelse([$1],[CXX],
+[case $host_os in
+interix[[3-9]]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_AC_TAGVAR(predep_objects,$1)=
+  _LT_AC_TAGVAR(postdep_objects,$1)=
+  _LT_AC_TAGVAR(postdeps,$1)=
+  ;;
+
+linux*)
+  case `$CC -V 2>&1 | sed 5q` in
+  *Sun\ C*)
+    # Sun C++ 5.9
+    #
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+
+solaris*)
+  case $cc_basename in
+  CC*)
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+esac
+])
+case " $_LT_AC_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+])# AC_LIBTOOL_POSTDEP_PREDEP
+
+# AC_LIBTOOL_LANG_F77_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
+AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
+[AC_REQUIRE([AC_PROG_F77])
+AC_LANG_PUSH(Fortran 77)
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="\
+      program t
+      end
+"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+aix[[4-9]]*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+  ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+_LT_AC_TAGVAR(GCC, $1)="$G77"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_F77_CONFIG
+
+
+# AC_LIBTOOL_LANG_GCJ_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
+AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_GCJ_CONFIG
+
+
+# AC_LIBTOOL_LANG_RC_CONFIG
+# -------------------------
+# Ensure that the configuration vars for the Windows resource compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
+AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_RC_CONFIG
+
+
+# AC_LIBTOOL_CONFIG([TAGNAME])
+# ----------------------------
+# If TAGNAME is not passed, then create an initial libtool script
+# with a default configuration from the untagged config vars.  Otherwise
+# add code to config.status for appending the configuration named by
+# TAGNAME from the matching tagged config vars.
+AC_DEFUN([AC_LIBTOOL_CONFIG],
+[# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    _LT_AC_TAGVAR(compiler, $1) \
+    _LT_AC_TAGVAR(CC, $1) \
+    _LT_AC_TAGVAR(LD, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
+    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
+    _LT_AC_TAGVAR(old_archive_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
+    _LT_AC_TAGVAR(predep_objects, $1) \
+    _LT_AC_TAGVAR(postdep_objects, $1) \
+    _LT_AC_TAGVAR(predeps, $1) \
+    _LT_AC_TAGVAR(postdeps, $1) \
+    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+    _LT_AC_TAGVAR(compiler_lib_search_dirs, $1) \
+    _LT_AC_TAGVAR(archive_cmds, $1) \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(postinstall_cmds, $1) \
+    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
+    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
+    _LT_AC_TAGVAR(no_undefined_flag, $1) \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
+    _LT_AC_TAGVAR(hardcode_automatic, $1) \
+    _LT_AC_TAGVAR(module_cmds, $1) \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+    _LT_AC_TAGVAR(fix_srcfile_path, $1) \
+    _LT_AC_TAGVAR(exclude_expsyms, $1) \
+    _LT_AC_TAGVAR(include_expsyms, $1); do
+
+    case $var in
+    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
+    _LT_AC_TAGVAR(module_cmds, $1) | \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\[$]0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
+    ;;
+  esac
+
+ifelse([$1], [],
+  [cfgfile="${ofile}T"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  $rm -f "$cfgfile"
+  AC_MSG_NOTICE([creating $ofile])],
+  [cfgfile="$ofile"])
+
+  cat <<__EOF__ >> "$cfgfile"
+ifelse([$1], [],
+[#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG],
+[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
+
+# Is the compiler the GNU C compiler?
+with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
+archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
+module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
+
+# Symbols that must always be exported.
+include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
+
+ifelse([$1],[],
+[# ### END LIBTOOL CONFIG],
+[# ### END LIBTOOL TAG CONFIG: $tagname])
+
+__EOF__
+
+ifelse([$1],[], [
+  case $host_os in
+  aix3*)
+    cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+EOF
+    ;;
+  esac
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" || \
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+])
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+])# AC_LIBTOOL_CONFIG
+
+
+# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+
+_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
+
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([LT_AC_PROG_SED])
+AC_REQUIRE([AC_PROG_NM])
+AC_REQUIRE([AC_OBJEXT])
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  ;;
+linux* | k*bsd*-gnu)
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDGIRSTW]]'
+    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris*)
+  symcode='[[BDRT]]'
+  ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ 	]]\($symcode$symcode*\)[[ 	]][[ 	]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if grep ' nm_test_var$' "$nlist" >/dev/null; then
+	if grep ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+	  cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[[]] =
+{
+EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+	  cat <<\EOF >> conftest.$ac_ext
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+
+# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
+# ---------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
+[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+ ifelse([$1],[CXX],[
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | cygwin* | os2* | pw32*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix[[4-9]]*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+       darwin*)
+         # PIC is the default on this platform
+         # Common symbols not allowed in MH_DYLIB files
+         case $cc_basename in
+           xlc*)
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           ;;
+         esac
+       ;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    if test "$host_cpu" != ia64; then
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux* | k*bsd*-gnu)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  icpc* | ecpc*)
+	    # Intel C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  pgCC* | pgcpp*)
+	    # Portland Group C++ compiler.
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+	[_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+         _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | cygwin* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      m4_if([$1], [GCJ], [],
+	[_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    linux* | k*bsd*-gnu)
+      case $cc_basename in
+      icc* | ecc*)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      ccc*)
+        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      *)
+        case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C 5.9
+	  _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	  ;;
+	*Sun\ F*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	  _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=''
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    rdos*)
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    unicos*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
+    _LT_AC_TAGVAR(lt_cv_prog_compiler_pic_works, $1),
+    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\"
+AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_AC_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
+])
+
+
+# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
+# ------------------------------------
+# See if the linker supports building shared libraries.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ifelse([$1],[CXX],[
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix[[4-9]]*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+  _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+],[
+  runpath_var=
+  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_AC_TAGVAR(archive_cmds, $1)=
+  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
+  _LT_AC_TAGVAR(module_cmds, $1)=
+  _LT_AC_TAGVAR(module_expsym_cmds, $1)=
+  _LT_AC_TAGVAR(always_export_symbols, $1)=no
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_AC_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  _LT_CC_BASENAME([$compiler])
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[[3-9]]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=no
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    interix[[3-9]]*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | k*bsd*-gnu)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	*)
+	  tmp_sharedflag='-shared' ;;
+	esac
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then
+      runpath_var=
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix[[4-9]]*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_AC_TAGVAR(archive_cmds, $1)=''
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[[012]]|aix4.[[012]].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  :
+	  else
+  	  # We have old collect2
+  	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+  	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+  	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       _LT_AC_SYS_LIBPATH_AIX
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 _LT_AC_SYS_LIBPATH_AIX
+	 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      # see comment about different semantics on the GNU ld section
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    bsdi[[45]]*)
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+      _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case $host_os in
+        rhapsody* | darwin1.[[012]])
+         _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[[012]])
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+        _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+        _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+        _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+         _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         _LT_AC_TAGVAR(ld_shlibs, $1)=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	_LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	_LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+	_LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	     _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	     ;;
+	   *)
+	     _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+        fi
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    os2*)
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test "$GCC" = yes; then
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_AC_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+      $rm conftest*
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+	pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+        then
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+        else
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+        fi
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
+      ;;
+    esac
+  fi
+  ;;
+esac
+])# AC_LIBTOOL_PROG_LD_SHLIBS
+
+
+# _LT_AC_FILE_LTDLL_C
+# -------------------
+# Be careful that the start marker always follows a newline.
+AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# #  ifdef __CYGWIN32__
+# #    define __CYGWIN__ __CYGWIN32__
+# #  endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+#   __hDllInstance_base = hInst;
+#   return TRUE;
+# }
+# /* ltdll.c ends here */
+])# _LT_AC_FILE_LTDLL_C
+
+
+# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
+# ---------------------------------
+AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
+
+
+# old names
+AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
+AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
+AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
+AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
+AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
+
+# This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])
+
+AC_DEFUN([LT_AC_PROG_GCJ],
+[AC_CHECK_TOOL(GCJ, gcj, no)
+  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+  AC_SUBST(GCJFLAGS)
+])
+
+AC_DEFUN([LT_AC_PROG_RC],
+[AC_CHECK_TOOL(RC, windres, no)
+])
+
+
+# Cheap backport of AS_EXECUTABLE_P and required macros
+# from Autoconf 2.59; we should not use $as_executable_p directly.
+
+# _AS_TEST_PREPARE
+# ----------------
+m4_ifndef([_AS_TEST_PREPARE],
+[m4_defun([_AS_TEST_PREPARE],
+[if test -x / >/dev/null 2>&1; then
+  as_executable_p='test -x'
+else
+  as_executable_p='test -f'
+fi
+])])# _AS_TEST_PREPARE
+
+# AS_EXECUTABLE_P
+# ---------------
+# Check whether a file is executable.
+m4_ifndef([AS_EXECUTABLE_P],
+[m4_defun([AS_EXECUTABLE_P],
+[AS_REQUIRE([_AS_TEST_PREPARE])dnl
+$as_executable_p $1[]dnl
+])])# AS_EXECUTABLE_P
+
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+# LT_AC_PROG_SED
+# --------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+AC_DEFUN([LT_AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if AS_EXECUTABLE_P(["$as_dir/$lt_ac_prog$ac_exec_ext"]); then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])
+
+m4_include([acinclude.m4])
diff --git a/agent/Makefile.depend b/agent/Makefile.depend
index 9a1320b..26fbd49 100644
--- a/agent/Makefile.depend
+++ b/agent/Makefile.depend
@@ -4,66 +4,59 @@
 ./agent_handler.lo: ../include/net-snmp/system/linux.h
 ./agent_handler.lo: ../include/net-snmp/system/sysv.h
 ./agent_handler.lo: ../include/net-snmp/system/generic.h
-./agent_handler.lo: ../include/net-snmp/net-snmp-features.h
+./agent_handler.lo: ../include/net-snmp/machine/generic.h
 ./agent_handler.lo: ../include/net-snmp/net-snmp-includes.h
-./agent_handler.lo:  ../include/net-snmp/definitions.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
-./agent_handler.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agent_handler.lo: ../include/net-snmp/library/ucd_compat.h
-./agent_handler.lo: ../include/net-snmp/library/mib.h
-./agent_handler.lo: ../include/net-snmp/mib_api.h
-./agent_handler.lo: ../include/net-snmp/library/parse.h
-./agent_handler.lo: ../include/net-snmp/library/oid_stash.h
 ./agent_handler.lo: ../include/net-snmp/library/snmp_impl.h
 ./agent_handler.lo: ../include/net-snmp/library/snmp.h
 ./agent_handler.lo: ../include/net-snmp/library/snmp-tc.h
-./agent_handler.lo: ../include/net-snmp/library/getopt.h
 ./agent_handler.lo: ../include/net-snmp/utilities.h
+./agent_handler.lo: ../include/net-snmp/library/snmp_client.h
 ./agent_handler.lo: ../include/net-snmp/library/system.h
 ./agent_handler.lo: ../include/net-snmp/library/tools.h
 ./agent_handler.lo: ../include/net-snmp/library/int64.h
 ./agent_handler.lo: ../include/net-snmp/library/mt_support.h
 ./agent_handler.lo: ../include/net-snmp/library/snmp_alarm.h
+./agent_handler.lo: ../include/net-snmp/library/callback.h
 ./agent_handler.lo: ../include/net-snmp/library/data_list.h
+./agent_handler.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./agent_handler.lo: ../include/net-snmp/library/container.h
 ./agent_handler.lo: ../include/net-snmp/library/snmp_assert.h
 ./agent_handler.lo: ../include/net-snmp/version.h
+./agent_handler.lo: ../include/net-snmp/session_api.h
+./agent_handler.lo: ../include/net-snmp/library/snmp_transport.h
+./agent_handler.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agent_handler.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agent_handler.lo: ../include/net-snmp/pdu_api.h
+./agent_handler.lo: ../include/net-snmp/mib_api.h
+./agent_handler.lo: ../include/net-snmp/library/mib.h
+./agent_handler.lo: ../include/net-snmp/library/parse.h
+./agent_handler.lo: ../include/net-snmp/varbind_api.h
 ./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
@@ -72,7 +65,6 @@
 ./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
@@ -110,67 +102,62 @@
 ./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_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-features.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_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
-./agent_index.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agent_index.lo: ../include/net-snmp/library/ucd_compat.h
-./agent_index.lo: ../include/net-snmp/library/mib.h
-./agent_index.lo: ../include/net-snmp/mib_api.h
-./agent_index.lo: ../include/net-snmp/library/parse.h
-./agent_index.lo: ../include/net-snmp/library/oid_stash.h
 ./agent_index.lo: ../include/net-snmp/library/snmp_impl.h
 ./agent_index.lo: ../include/net-snmp/library/snmp.h
 ./agent_index.lo: ../include/net-snmp/library/snmp-tc.h
-./agent_index.lo: ../include/net-snmp/library/getopt.h
 ./agent_index.lo: ../include/net-snmp/utilities.h
+./agent_index.lo: ../include/net-snmp/library/snmp_client.h
 ./agent_index.lo: ../include/net-snmp/library/system.h
 ./agent_index.lo: ../include/net-snmp/library/tools.h
 ./agent_index.lo: ../include/net-snmp/library/int64.h
 ./agent_index.lo: ../include/net-snmp/library/mt_support.h
 ./agent_index.lo: ../include/net-snmp/library/snmp_alarm.h
+./agent_index.lo: ../include/net-snmp/library/callback.h
 ./agent_index.lo: ../include/net-snmp/library/data_list.h
+./agent_index.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./agent_index.lo: ../include/net-snmp/library/container.h
 ./agent_index.lo: ../include/net-snmp/library/snmp_assert.h
 ./agent_index.lo: ../include/net-snmp/version.h
+./agent_index.lo: ../include/net-snmp/session_api.h
+./agent_index.lo: ../include/net-snmp/library/snmp_transport.h
+./agent_index.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agent_index.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agent_index.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./agent_index.lo: ../include/net-snmp/library/mib.h
+./agent_index.lo: ../include/net-snmp/library/parse.h
+./agent_index.lo: ../include/net-snmp/varbind_api.h
 ./agent_index.lo: ../include/net-snmp/config_api.h
 ./agent_index.lo: ../include/net-snmp/library/read_config.h
 ./agent_index.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -179,7 +166,6 @@
 ./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
@@ -217,33 +203,22 @@
 ./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/hrh_storage.h mibgroup/host/hrh_filesys.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_system.h mibgroup/host/hr_storage.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/host/hr_partition.h mibgroup/host/hr_filesys.h
+./agent_index.lo: mibgroup/host/hr_swrun.h mibgroup/host/hr_swinst.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/alarm.h mibgroup/Rmon/history.h
+./agent_index.lo: mibgroup/Rmon/event.h 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
@@ -260,30 +235,29 @@
 ./agent_index.lo: mibgroup/disman/event/mteObjects.h
 ./agent_index.lo: mibgroup/disman/event/mteObjectsTable.h
 ./agent_index.lo: mibgroup/disman/event/mteObjectsConf.h
-./agent_index.lo: mibgroup/snmpv3/snmpMPDStats_5_5.h
-./agent_index.lo: mibgroup/snmpv3/usmStats_5_5.h mibgroup/snmpv3/snmpEngine.h
-./agent_index.lo: mibgroup/snmpv3/usmUser.h mibgroup/mibII/snmp_mib_5_5.h
+./agent_index.lo: mibgroup/snmpv3/snmpEngine.h mibgroup/snmpv3/snmpMPDStats.h
+./agent_index.lo: mibgroup/snmpv3/usmStats.h mibgroup/snmpv3/usmUser.h
 ./agent_index.lo: mibgroup/mibII/system_mib.h mibgroup/mibII/sysORTable.h
 ./agent_index.lo: mibgroup/mibII/at.h mibgroup/mibII/ip.h
 ./agent_index.lo: mibgroup/mibII/var_route.h mibgroup/mibII/route_write.h
-./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/disk_hw.h
-./agent_index.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/proc.h
+./agent_index.lo: mibgroup/mibII/at.h mibgroup/mibII/snmp_mib.h
+./agent_index.lo: mibgroup/mibII/tcp.h mibgroup/mibII/icmp.h
+./agent_index.lo: mibgroup/mibII/udp.h mibgroup/mibII/vacm_vars.h
+./agent_index.lo: mibgroup/mibII/setSerialNo.h mibgroup/mibII/ipv6.h
+./agent_index.lo: mibgroup/ucd-snmp/proc.h ../agent/mibgroup/mibdefs.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/pass_persist.h mibgroup/ucd-snmp/disk.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/ucd-snmp/logmatch.h 
+./agent_index.lo: mibgroup/ucd-snmp/memory.h mibgroup/ucd-snmp/vmstat.h
 ./agent_index.lo: mibgroup/notification/snmpNotifyTable.h
 ./agent_index.lo: mibgroup/notification/snmpNotifyFilterProfileTable.h
 ./agent_index.lo: mibgroup/notification-log-mib/notification_log.h
-./agent_index.lo: mibgroup/target/target_counters_5_5.h
 ./agent_index.lo: mibgroup/target/snmpTargetAddrEntry.h
 ./agent_index.lo: mibgroup/target/snmpTargetParamsEntry.h
+./agent_index.lo: mibgroup/target/target_counters.h
 ./agent_index.lo: mibgroup/agent/nsTransactionTable.h
 ./agent_index.lo: mibgroup/agent/nsModuleTable.h mibgroup/agent/nsDebug.h
 ./agent_index.lo: mibgroup/agent/nsCache.h mibgroup/agent/nsLogging.h
@@ -293,7 +267,6 @@
 ./agent_index.lo: mibgroup/disman/schedule/schedTable.h
 ./agent_index.lo: mibgroup/utilities/override.h
 ./agent_index.lo: mibgroup/hardware/memory/hw_mem.h
-./agent_index.lo: mibgroup/hardware/fsys/hw_fsys.h
 ./agent_index.lo: mibgroup/hardware/cpu/cpu.h
 ./agent_index.lo: mibgroup/hardware/cpu/cpu_linux.h
 ./agent_index.lo: mibgroup/mibII/var_route.h mibgroup/mibII/tcpTable.h
@@ -322,19 +295,6 @@
 ./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
@@ -348,20 +308,6 @@
 ./agent_index.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.h
 ./agent_index.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
 ./agent_index.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.h
-./agent_index.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h
-./agent_index.lo: ../include/net-snmp/data_access/scopezone.h
-./agent_index.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_oids.h
-./agent_index.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_enums.h
-./agent_index.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.h
-./agent_index.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h
-./agent_index.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.h
-./agent_index.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h
-./agent_index.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_oids.h
-./agent_index.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_enums.h
-./agent_index.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.h
-./agent_index.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h
-./agent_index.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.h
-./agent_index.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
 ./agent_index.lo: mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.h
 ./agent_index.lo: ../include/net-snmp/data_access/route.h
 ./agent_index.lo: ../agent/mibgroup/mibII/route_headers.h
@@ -394,65 +340,62 @@
 ./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/net-snmp-features.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/library/oid.h
-./agent_read_config.lo: ../include/net-snmp/library/types.h
+./agent_read_config.lo: ../include/net-snmp/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
-./agent_read_config.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agent_read_config.lo: ../include/net-snmp/library/ucd_compat.h
-./agent_read_config.lo: ../include/net-snmp/library/mib.h
-./agent_read_config.lo: ../include/net-snmp/mib_api.h
-./agent_read_config.lo: ../include/net-snmp/library/parse.h
-./agent_read_config.lo: ../include/net-snmp/library/oid_stash.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmp_impl.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmp.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmp-tc.h
-./agent_read_config.lo: ../include/net-snmp/library/getopt.h
 ./agent_read_config.lo: ../include/net-snmp/utilities.h
+./agent_read_config.lo: ../include/net-snmp/library/snmp_client.h
 ./agent_read_config.lo: ../include/net-snmp/library/system.h
 ./agent_read_config.lo: ../include/net-snmp/library/tools.h
 ./agent_read_config.lo: ../include/net-snmp/library/int64.h
 ./agent_read_config.lo: ../include/net-snmp/library/mt_support.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmp_alarm.h
+./agent_read_config.lo: ../include/net-snmp/library/callback.h
 ./agent_read_config.lo: ../include/net-snmp/library/data_list.h
+./agent_read_config.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./agent_read_config.lo: ../include/net-snmp/library/container.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmp_assert.h
 ./agent_read_config.lo: ../include/net-snmp/version.h
+./agent_read_config.lo: ../include/net-snmp/session_api.h
+./agent_read_config.lo: ../include/net-snmp/library/snmp_transport.h
+./agent_read_config.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agent_read_config.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agent_read_config.lo: ../include/net-snmp/pdu_api.h
+./agent_read_config.lo: ../include/net-snmp/mib_api.h
+./agent_read_config.lo: ../include/net-snmp/library/mib.h
+./agent_read_config.lo: ../include/net-snmp/library/parse.h
+./agent_read_config.lo: ../include/net-snmp/varbind_api.h
 ./agent_read_config.lo: ../include/net-snmp/config_api.h
 ./agent_read_config.lo: ../include/net-snmp/library/read_config.h
 ./agent_read_config.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -461,7 +404,6 @@
 ./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
@@ -498,39 +440,28 @@
 ./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
-./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: ../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: ../agent/mibgroup/agent_module_includes.h
-./agent_read_config.lo: mibgroup/smux/smux.h mibgroup/utilities/iquery.h
-./agent_read_config.lo: mibgroup/snmpv3/usmConf.h mibgroup/mibII/vacm_conf.h
+./agent_read_config.lo: mibgroup/smux/smux.h mibgroup/snmpv3/usmConf.h
+./agent_read_config.lo: mibgroup/utilities/iquery.h
+./agent_read_config.lo: mibgroup/mibII/vacm_conf.h
 ./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/hrh_storage.h
-./agent_read_config.lo: mibgroup/host/hrh_filesys.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
-./agent_read_config.lo: mibgroup/host/hr_disk.h mibgroup/host/hr_partition.h
+./agent_read_config.lo: mibgroup/host/hr_system.h mibgroup/host/hr_storage.h
+./agent_read_config.lo: mibgroup/host/hr_device.h mibgroup/host/hr_other.h
+./agent_read_config.lo: mibgroup/host/hr_proc.h mibgroup/host/hr_network.h
+./agent_read_config.lo: mibgroup/host/hr_print.h mibgroup/host/hr_disk.h
+./agent_read_config.lo: mibgroup/host/hr_partition.h
+./agent_read_config.lo: mibgroup/host/hr_filesys.h mibgroup/host/hr_swrun.h
+./agent_read_config.lo: mibgroup/host/hr_swinst.h
 ./agent_read_config.lo: mibgroup/examples/scalar_int.h
 ./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/statistics.h mibgroup/Rmon/alarm.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
@@ -548,34 +479,33 @@
 ./agent_read_config.lo: mibgroup/disman/event/mteObjects.h
 ./agent_read_config.lo: mibgroup/disman/event/mteObjectsTable.h
 ./agent_read_config.lo: mibgroup/disman/event/mteObjectsConf.h
-./agent_read_config.lo: mibgroup/snmpv3/snmpMPDStats_5_5.h
-./agent_read_config.lo: mibgroup/snmpv3/usmStats_5_5.h
 ./agent_read_config.lo: mibgroup/snmpv3/snmpEngine.h
-./agent_read_config.lo: mibgroup/snmpv3/usmUser.h
-./agent_read_config.lo: mibgroup/mibII/snmp_mib_5_5.h
+./agent_read_config.lo: mibgroup/snmpv3/snmpMPDStats.h
+./agent_read_config.lo: mibgroup/snmpv3/usmStats.h mibgroup/snmpv3/usmUser.h
 ./agent_read_config.lo: mibgroup/mibII/system_mib.h
 ./agent_read_config.lo: mibgroup/mibII/sysORTable.h mibgroup/mibII/at.h
 ./agent_read_config.lo: mibgroup/mibII/ip.h mibgroup/mibII/var_route.h
 ./agent_read_config.lo: mibgroup/mibII/route_write.h mibgroup/mibII/at.h
-./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/snmp_mib.h mibgroup/mibII/tcp.h
+./agent_read_config.lo: mibgroup/mibII/icmp.h mibgroup/mibII/udp.h
+./agent_read_config.lo: mibgroup/mibII/vacm_vars.h
 ./agent_read_config.lo: mibgroup/mibII/setSerialNo.h mibgroup/mibII/ipv6.h
-./agent_read_config.lo: mibgroup/ucd-snmp/disk_hw.h
-./agent_read_config.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/proc.h
+./agent_read_config.lo: mibgroup/ucd-snmp/proc.h ../agent/mibgroup/mibdefs.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/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/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/memory.h mibgroup/ucd-snmp/vmstat.h
 ./agent_read_config.lo: mibgroup/notification/snmpNotifyTable.h
 ./agent_read_config.lo: mibgroup/notification/snmpNotifyFilterProfileTable.h
 ./agent_read_config.lo: mibgroup/notification-log-mib/notification_log.h
-./agent_read_config.lo: mibgroup/target/target_counters_5_5.h
 ./agent_read_config.lo: mibgroup/target/snmpTargetAddrEntry.h
 ./agent_read_config.lo: mibgroup/target/snmpTargetParamsEntry.h
+./agent_read_config.lo: mibgroup/target/target_counters.h
 ./agent_read_config.lo: mibgroup/agent/nsTransactionTable.h
 ./agent_read_config.lo: mibgroup/agent/nsModuleTable.h
 ./agent_read_config.lo: mibgroup/agent/nsDebug.h mibgroup/agent/nsCache.h
@@ -586,7 +516,6 @@
 ./agent_read_config.lo: mibgroup/disman/schedule/schedTable.h
 ./agent_read_config.lo: mibgroup/utilities/override.h
 ./agent_read_config.lo: mibgroup/hardware/memory/hw_mem.h
-./agent_read_config.lo: mibgroup/hardware/fsys/hw_fsys.h
 ./agent_read_config.lo: mibgroup/hardware/cpu/cpu.h
 ./agent_read_config.lo: mibgroup/hardware/cpu/cpu_linux.h
 ./agent_read_config.lo: mibgroup/mibII/var_route.h mibgroup/mibII/tcpTable.h
@@ -616,19 +545,6 @@
 ./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
@@ -642,20 +558,6 @@
 ./agent_read_config.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.h
 ./agent_read_config.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
 ./agent_read_config.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.h
-./agent_read_config.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h
-./agent_read_config.lo: ../include/net-snmp/data_access/scopezone.h
-./agent_read_config.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_oids.h
-./agent_read_config.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_enums.h
-./agent_read_config.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.h
-./agent_read_config.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h
-./agent_read_config.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.h
-./agent_read_config.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h
-./agent_read_config.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_oids.h
-./agent_read_config.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_enums.h
-./agent_read_config.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.h
-./agent_read_config.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h
-./agent_read_config.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.h
-./agent_read_config.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
 ./agent_read_config.lo: mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.h
 ./agent_read_config.lo: ../include/net-snmp/data_access/route.h
 ./agent_read_config.lo: ../agent/mibgroup/mibII/route_headers.h
@@ -688,65 +590,62 @@
 ./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/net-snmp-features.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
-./agent_registry.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agent_registry.lo: ../include/net-snmp/library/ucd_compat.h
-./agent_registry.lo: ../include/net-snmp/library/mib.h
-./agent_registry.lo: ../include/net-snmp/mib_api.h
-./agent_registry.lo: ../include/net-snmp/library/parse.h
-./agent_registry.lo: ../include/net-snmp/library/oid_stash.h
 ./agent_registry.lo: ../include/net-snmp/library/snmp_impl.h
 ./agent_registry.lo: ../include/net-snmp/library/snmp.h
 ./agent_registry.lo: ../include/net-snmp/library/snmp-tc.h
-./agent_registry.lo: ../include/net-snmp/library/getopt.h
 ./agent_registry.lo: ../include/net-snmp/utilities.h
+./agent_registry.lo: ../include/net-snmp/library/snmp_client.h
 ./agent_registry.lo: ../include/net-snmp/library/system.h
 ./agent_registry.lo: ../include/net-snmp/library/tools.h
 ./agent_registry.lo: ../include/net-snmp/library/int64.h
 ./agent_registry.lo: ../include/net-snmp/library/mt_support.h
 ./agent_registry.lo: ../include/net-snmp/library/snmp_alarm.h
+./agent_registry.lo: ../include/net-snmp/library/callback.h
 ./agent_registry.lo: ../include/net-snmp/library/data_list.h
+./agent_registry.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./agent_registry.lo: ../include/net-snmp/library/container.h
 ./agent_registry.lo: ../include/net-snmp/library/snmp_assert.h
 ./agent_registry.lo: ../include/net-snmp/version.h
+./agent_registry.lo: ../include/net-snmp/session_api.h
+./agent_registry.lo: ../include/net-snmp/library/snmp_transport.h
+./agent_registry.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agent_registry.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agent_registry.lo: ../include/net-snmp/pdu_api.h
+./agent_registry.lo: ../include/net-snmp/mib_api.h
+./agent_registry.lo: ../include/net-snmp/library/mib.h
+./agent_registry.lo: ../include/net-snmp/library/parse.h
+./agent_registry.lo: ../include/net-snmp/varbind_api.h
 ./agent_registry.lo: ../include/net-snmp/config_api.h
 ./agent_registry.lo: ../include/net-snmp/library/read_config.h
 ./agent_registry.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -755,7 +654,6 @@
 ./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
@@ -793,33 +691,22 @@
 ./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/hrh_storage.h mibgroup/host/hrh_filesys.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_system.h mibgroup/host/hr_storage.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/host/hr_partition.h mibgroup/host/hr_filesys.h
+./agent_registry.lo: mibgroup/host/hr_swrun.h mibgroup/host/hr_swinst.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/statistics.h mibgroup/Rmon/alarm.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
@@ -837,31 +724,31 @@
 ./agent_registry.lo: mibgroup/disman/event/mteObjects.h
 ./agent_registry.lo: mibgroup/disman/event/mteObjectsTable.h
 ./agent_registry.lo: mibgroup/disman/event/mteObjectsConf.h
-./agent_registry.lo: mibgroup/snmpv3/snmpMPDStats_5_5.h
-./agent_registry.lo: mibgroup/snmpv3/usmStats_5_5.h
-./agent_registry.lo: mibgroup/snmpv3/snmpEngine.h mibgroup/snmpv3/usmUser.h
-./agent_registry.lo: mibgroup/mibII/snmp_mib_5_5.h
+./agent_registry.lo: mibgroup/snmpv3/snmpEngine.h
+./agent_registry.lo: mibgroup/snmpv3/snmpMPDStats.h
+./agent_registry.lo: mibgroup/snmpv3/usmStats.h mibgroup/snmpv3/usmUser.h
 ./agent_registry.lo: mibgroup/mibII/system_mib.h mibgroup/mibII/sysORTable.h
 ./agent_registry.lo: mibgroup/mibII/at.h mibgroup/mibII/ip.h
 ./agent_registry.lo: mibgroup/mibII/var_route.h mibgroup/mibII/route_write.h
-./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/disk_hw.h
-./agent_registry.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/proc.h
+./agent_registry.lo: mibgroup/mibII/at.h mibgroup/mibII/snmp_mib.h
+./agent_registry.lo: mibgroup/mibII/tcp.h mibgroup/mibII/icmp.h
+./agent_registry.lo: mibgroup/mibII/udp.h mibgroup/mibII/vacm_vars.h
+./agent_registry.lo: mibgroup/mibII/setSerialNo.h mibgroup/mibII/ipv6.h
+./agent_registry.lo: mibgroup/ucd-snmp/proc.h ../agent/mibgroup/mibdefs.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/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/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/vmstat.h
 ./agent_registry.lo: mibgroup/notification/snmpNotifyTable.h
 ./agent_registry.lo: mibgroup/notification/snmpNotifyFilterProfileTable.h
 ./agent_registry.lo: mibgroup/notification-log-mib/notification_log.h
-./agent_registry.lo: mibgroup/target/target_counters_5_5.h
 ./agent_registry.lo: mibgroup/target/snmpTargetAddrEntry.h
 ./agent_registry.lo: mibgroup/target/snmpTargetParamsEntry.h
+./agent_registry.lo: mibgroup/target/target_counters.h
 ./agent_registry.lo: mibgroup/agent/nsTransactionTable.h
 ./agent_registry.lo: mibgroup/agent/nsModuleTable.h mibgroup/agent/nsDebug.h
 ./agent_registry.lo: mibgroup/agent/nsCache.h mibgroup/agent/nsLogging.h
@@ -871,7 +758,6 @@
 ./agent_registry.lo: mibgroup/disman/schedule/schedTable.h
 ./agent_registry.lo: mibgroup/utilities/override.h
 ./agent_registry.lo: mibgroup/hardware/memory/hw_mem.h
-./agent_registry.lo: mibgroup/hardware/fsys/hw_fsys.h
 ./agent_registry.lo: mibgroup/hardware/cpu/cpu.h
 ./agent_registry.lo: mibgroup/hardware/cpu/cpu_linux.h
 ./agent_registry.lo: mibgroup/mibII/var_route.h mibgroup/mibII/tcpTable.h
@@ -900,19 +786,6 @@
 ./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
@@ -926,20 +799,6 @@
 ./agent_registry.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.h
 ./agent_registry.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
 ./agent_registry.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.h
-./agent_registry.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h
-./agent_registry.lo: ../include/net-snmp/data_access/scopezone.h
-./agent_registry.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_oids.h
-./agent_registry.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_enums.h
-./agent_registry.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.h
-./agent_registry.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h
-./agent_registry.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.h
-./agent_registry.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h
-./agent_registry.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_oids.h
-./agent_registry.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_enums.h
-./agent_registry.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.h
-./agent_registry.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h
-./agent_registry.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.h
-./agent_registry.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
 ./agent_registry.lo: mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.h
 ./agent_registry.lo: ../include/net-snmp/data_access/route.h
 ./agent_registry.lo: ../agent/mibgroup/mibII/route_headers.h
@@ -971,161 +830,31 @@
 ./agent_registry.lo: mibgroup/if-mib/data_access/interface.h
 ./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/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
-./agent_sysORTable.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agent_sysORTable.lo: ../include/net-snmp/library/ucd_compat.h
-./agent_sysORTable.lo: ../include/net-snmp/library/mib.h
-./agent_sysORTable.lo: ../include/net-snmp/mib_api.h
-./agent_sysORTable.lo: ../include/net-snmp/library/parse.h
-./agent_sysORTable.lo: ../include/net-snmp/library/oid_stash.h
-./agent_sysORTable.lo: ../include/net-snmp/net-snmp-features.h
-./agent_sysORTable.lo: ../include/net-snmp/library/snmp_impl.h
-./agent_sysORTable.lo: ../include/net-snmp/library/snmp.h
-./agent_sysORTable.lo: ../include/net-snmp/library/snmp-tc.h
-./agent_sysORTable.lo: ../include/net-snmp/library/getopt.h
-./agent_sysORTable.lo: ../include/net-snmp/utilities.h
-./agent_sysORTable.lo: ../include/net-snmp/library/system.h
-./agent_sysORTable.lo: ../include/net-snmp/library/tools.h
-./agent_sysORTable.lo: ../include/net-snmp/library/int64.h
-./agent_sysORTable.lo: ../include/net-snmp/library/mt_support.h
-./agent_sysORTable.lo: ../include/net-snmp/library/snmp_alarm.h
-./agent_sysORTable.lo: ../include/net-snmp/library/data_list.h
-./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/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
-./agent_sysORTable.lo: ../include/net-snmp/library/container.h
-./agent_sysORTable.lo: ../include/net-snmp/library/snmp_assert.h
-./agent_sysORTable.lo: ../include/net-snmp/version.h
-./agent_sysORTable.lo: ../include/net-snmp/config_api.h
-./agent_sysORTable.lo: ../include/net-snmp/library/read_config.h
-./agent_sysORTable.lo: ../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./agent_sysORTable.lo: ../include/net-snmp/library/snmpv3.h
-./agent_sysORTable.lo: ../include/net-snmp/library/transform_oids.h
-./agent_sysORTable.lo: ../include/net-snmp/library/keytools.h
-./agent_sysORTable.lo: ../include/net-snmp/library/scapi.h
-./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
-./agent_sysORTable.lo: ../include/net-snmp/agent/agent_module_config.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/snmp_agent.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/snmp_vars.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/agent_handler.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/var_struct.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/agent_registry.h
-./agent_sysORTable.lo: ../include/net-snmp/library/fd_event_manager.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/ds_agent.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/agent_read_config.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/agent_trap.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/all_helpers.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/instance.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/baby_steps.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/scalar.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/scalar_group.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/watcher.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/multiplexer.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/null.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/debug_handler.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/cache_handler.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/old_api.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/read_only.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/row_merge.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/serialize.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/bulk_to_next.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/mode_end_call.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/table.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/table_data.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/table_dataset.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/table_tdata.h
-./agent_sysORTable.lo: ../include/net-snmp/agent/table_iterator.h
-./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/net-snmp-features.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/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
-./agent_trap.lo: ../include/net-snmp/varbind_api.h
-./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
-./agent_trap.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agent_trap.lo: ../include/net-snmp/library/ucd_compat.h
-./agent_trap.lo: ../include/net-snmp/library/mib.h
-./agent_trap.lo: ../include/net-snmp/mib_api.h
-./agent_trap.lo: ../include/net-snmp/library/parse.h
-./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/snmp_client.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
 ./agent_trap.lo: ../include/net-snmp/library/mt_support.h
 ./agent_trap.lo: ../include/net-snmp/library/snmp_alarm.h
+./agent_trap.lo: ../include/net-snmp/library/callback.h
 ./agent_trap.lo: ../include/net-snmp/library/data_list.h
+./agent_trap.lo: ../include/net-snmp/library/oid_stash.h
 ./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
@@ -1133,13 +862,29 @@
 ./agent_trap.lo: ../include/net-snmp/library/snmp_assert.h
 ./agent_trap.lo: ../include/net-snmp/version.h
 ./agent_trap.lo: ../include/net-snmp/net-snmp-includes.h
-./agent_trap.lo: ../include/net-snmp/library/getopt.h
+./agent_trap.lo: ../include/net-snmp/session_api.h
+./agent_trap.lo: ../include/net-snmp/library/snmp_transport.h
+./agent_trap.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agent_trap.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agent_trap.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./agent_trap.lo: ../include/net-snmp/library/mib.h
+./agent_trap.lo: ../include/net-snmp/library/parse.h
+./agent_trap.lo: ../include/net-snmp/varbind_api.h
 ./agent_trap.lo: ../include/net-snmp/config_api.h
 ./agent_trap.lo: ../include/net-snmp/library/read_config.h
 ./agent_trap.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1148,111 +893,81 @@
 ./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
-./agent_trap.lo: ../include/net-snmp/agent/agent_module_config.h
-./agent_trap.lo: ../include/net-snmp/agent/snmp_agent.h
-./agent_trap.lo: ../include/net-snmp/agent/snmp_vars.h
-./agent_trap.lo: ../include/net-snmp/agent/agent_handler.h
-./agent_trap.lo: ../include/net-snmp/agent/var_struct.h
-./agent_trap.lo: ../include/net-snmp/agent/agent_registry.h
-./agent_trap.lo: ../include/net-snmp/library/fd_event_manager.h
-./agent_trap.lo: ../include/net-snmp/agent/ds_agent.h
-./agent_trap.lo: ../include/net-snmp/agent/agent_read_config.h
 ./agent_trap.lo: ../include/net-snmp/agent/agent_trap.h
-./agent_trap.lo: ../include/net-snmp/agent/all_helpers.h
-./agent_trap.lo: ../include/net-snmp/agent/instance.h
-./agent_trap.lo: ../include/net-snmp/agent/baby_steps.h
-./agent_trap.lo: ../include/net-snmp/agent/scalar.h
-./agent_trap.lo: ../include/net-snmp/agent/scalar_group.h
-./agent_trap.lo: ../include/net-snmp/agent/watcher.h
-./agent_trap.lo: ../include/net-snmp/agent/multiplexer.h
-./agent_trap.lo: ../include/net-snmp/agent/null.h
-./agent_trap.lo: ../include/net-snmp/agent/debug_handler.h
-./agent_trap.lo: ../include/net-snmp/agent/cache_handler.h
-./agent_trap.lo: ../include/net-snmp/agent/old_api.h
-./agent_trap.lo: ../include/net-snmp/agent/read_only.h
-./agent_trap.lo: ../include/net-snmp/agent/row_merge.h
-./agent_trap.lo: ../include/net-snmp/agent/serialize.h
-./agent_trap.lo: ../include/net-snmp/agent/bulk_to_next.h
-./agent_trap.lo: ../include/net-snmp/agent/mode_end_call.h
-./agent_trap.lo: ../include/net-snmp/agent/table.h
-./agent_trap.lo: ../include/net-snmp/agent/table_data.h
-./agent_trap.lo: ../include/net-snmp/agent/table_dataset.h
-./agent_trap.lo: ../include/net-snmp/agent/table_tdata.h
-./agent_trap.lo: ../include/net-snmp/agent/table_iterator.h
-./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/snmp_agent.h
 ./agent_trap.lo: ../include/net-snmp/agent/agent_callbacks.h
+./agent_trap.lo: ../include/net-snmp/agent/agent_module_config.h
+./agent_trap.lo: ../include/net-snmp/agent/mib_module_config.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
-./mib_modules.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mib_modules.lo: ../include/net-snmp/library/ucd_compat.h
-./mib_modules.lo: ../include/net-snmp/library/mib.h
-./mib_modules.lo: ../include/net-snmp/mib_api.h
-./mib_modules.lo: ../include/net-snmp/library/parse.h
-./mib_modules.lo: ../include/net-snmp/library/oid_stash.h
-./mib_modules.lo: ../include/net-snmp/net-snmp-features.h
 ./mib_modules.lo: ../include/net-snmp/library/snmp_impl.h
 ./mib_modules.lo: ../include/net-snmp/library/snmp.h
 ./mib_modules.lo: ../include/net-snmp/library/snmp-tc.h
-./mib_modules.lo: ../include/net-snmp/library/getopt.h
 ./mib_modules.lo: ../include/net-snmp/utilities.h
+./mib_modules.lo: ../include/net-snmp/library/snmp_client.h
 ./mib_modules.lo: ../include/net-snmp/library/system.h
 ./mib_modules.lo: ../include/net-snmp/library/tools.h
 ./mib_modules.lo: ../include/net-snmp/library/int64.h
 ./mib_modules.lo: ../include/net-snmp/library/mt_support.h
 ./mib_modules.lo: ../include/net-snmp/library/snmp_alarm.h
+./mib_modules.lo: ../include/net-snmp/library/callback.h
 ./mib_modules.lo: ../include/net-snmp/library/data_list.h
+./mib_modules.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./mib_modules.lo: ../include/net-snmp/library/container.h
 ./mib_modules.lo: ../include/net-snmp/library/snmp_assert.h
 ./mib_modules.lo: ../include/net-snmp/version.h
+./mib_modules.lo: ../include/net-snmp/session_api.h
+./mib_modules.lo: ../include/net-snmp/library/snmp_transport.h
+./mib_modules.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mib_modules.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mib_modules.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./mib_modules.lo: ../include/net-snmp/library/mib.h
+./mib_modules.lo: ../include/net-snmp/library/parse.h
+./mib_modules.lo: ../include/net-snmp/varbind_api.h
 ./mib_modules.lo: ../include/net-snmp/config_api.h
 ./mib_modules.lo: ../include/net-snmp/library/read_config.h
 ./mib_modules.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1261,7 +976,6 @@
 ./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
@@ -1297,33 +1011,23 @@
 ./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
-./mib_modules.lo: ../include/net-snmp/agent/snmp_get_statistic.h m2m.h
+./mib_modules.lo: ../include/net-snmp/agent/mfd.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/hrh_storage.h mibgroup/host/hrh_filesys.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_system.h mibgroup/host/hr_storage.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/host/hr_partition.h mibgroup/host/hr_filesys.h
+./mib_modules.lo: mibgroup/host/hr_swrun.h mibgroup/host/hr_swinst.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/alarm.h mibgroup/Rmon/history.h
+./mib_modules.lo: mibgroup/Rmon/event.h 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
@@ -1340,30 +1044,29 @@
 ./mib_modules.lo: mibgroup/disman/event/mteObjects.h
 ./mib_modules.lo: mibgroup/disman/event/mteObjectsTable.h
 ./mib_modules.lo: mibgroup/disman/event/mteObjectsConf.h
-./mib_modules.lo: mibgroup/snmpv3/snmpMPDStats_5_5.h
-./mib_modules.lo: mibgroup/snmpv3/usmStats_5_5.h mibgroup/snmpv3/snmpEngine.h
-./mib_modules.lo: mibgroup/snmpv3/usmUser.h mibgroup/mibII/snmp_mib_5_5.h
+./mib_modules.lo: mibgroup/snmpv3/snmpEngine.h mibgroup/snmpv3/snmpMPDStats.h
+./mib_modules.lo: mibgroup/snmpv3/usmStats.h mibgroup/snmpv3/usmUser.h
 ./mib_modules.lo: mibgroup/mibII/system_mib.h mibgroup/mibII/sysORTable.h
 ./mib_modules.lo: mibgroup/mibII/at.h mibgroup/mibII/ip.h
 ./mib_modules.lo: mibgroup/mibII/var_route.h mibgroup/mibII/route_write.h
-./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/disk_hw.h
-./mib_modules.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/proc.h
+./mib_modules.lo: mibgroup/mibII/at.h mibgroup/mibII/snmp_mib.h
+./mib_modules.lo: mibgroup/mibII/tcp.h mibgroup/mibII/icmp.h
+./mib_modules.lo: mibgroup/mibII/udp.h mibgroup/mibII/vacm_vars.h
+./mib_modules.lo: mibgroup/mibII/setSerialNo.h mibgroup/mibII/ipv6.h
+./mib_modules.lo: mibgroup/ucd-snmp/proc.h ../agent/mibgroup/mibdefs.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/pass_persist.h mibgroup/ucd-snmp/disk.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/ucd-snmp/logmatch.h 
+./mib_modules.lo: mibgroup/ucd-snmp/memory.h mibgroup/ucd-snmp/vmstat.h
 ./mib_modules.lo: mibgroup/notification/snmpNotifyTable.h
 ./mib_modules.lo: mibgroup/notification/snmpNotifyFilterProfileTable.h
 ./mib_modules.lo: mibgroup/notification-log-mib/notification_log.h
-./mib_modules.lo: mibgroup/target/target_counters_5_5.h
 ./mib_modules.lo: mibgroup/target/snmpTargetAddrEntry.h
 ./mib_modules.lo: mibgroup/target/snmpTargetParamsEntry.h
+./mib_modules.lo: mibgroup/target/target_counters.h
 ./mib_modules.lo: mibgroup/agent/nsTransactionTable.h
 ./mib_modules.lo: mibgroup/agent/nsModuleTable.h mibgroup/agent/nsDebug.h
 ./mib_modules.lo: mibgroup/agent/nsCache.h mibgroup/agent/nsLogging.h
@@ -1373,7 +1076,6 @@
 ./mib_modules.lo: mibgroup/disman/schedule/schedTable.h
 ./mib_modules.lo: mibgroup/utilities/override.h
 ./mib_modules.lo: mibgroup/hardware/memory/hw_mem.h
-./mib_modules.lo: mibgroup/hardware/fsys/hw_fsys.h
 ./mib_modules.lo: mibgroup/hardware/cpu/cpu.h
 ./mib_modules.lo: mibgroup/hardware/cpu/cpu_linux.h
 ./mib_modules.lo: mibgroup/mibII/var_route.h mibgroup/mibII/tcpTable.h
@@ -1385,7 +1087,6 @@
 ./mib_modules.lo: mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.h
 ./mib_modules.lo: mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.h
 ./mib_modules.lo: mibgroup/if-mib/ifTable/ifTable.h
-./mib_modules.lo: ../include/net-snmp/data_access/interface.h
 ./mib_modules.lo: mibgroup/if-mib/ifTable/ifTable_constants.h
 ./mib_modules.lo: mibgroup/if-mib/ifTable/ifTable_interface.h
 ./mib_modules.lo: mibgroup/if-mib/ifTable/ifTable.h
@@ -1402,19 +1103,6 @@
 ./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
@@ -1428,20 +1116,6 @@
 ./mib_modules.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.h
 ./mib_modules.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
 ./mib_modules.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.h
-./mib_modules.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h
-./mib_modules.lo: ../include/net-snmp/data_access/scopezone.h
-./mib_modules.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_oids.h
-./mib_modules.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_enums.h
-./mib_modules.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.h
-./mib_modules.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h
-./mib_modules.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.h
-./mib_modules.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h
-./mib_modules.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_oids.h
-./mib_modules.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_enums.h
-./mib_modules.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.h
-./mib_modules.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h
-./mib_modules.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.h
-./mib_modules.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
 ./mib_modules.lo: mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.h
 ./mib_modules.lo: ../include/net-snmp/data_access/route.h
 ./mib_modules.lo: ../agent/mibgroup/mibII/route_headers.h
@@ -1471,68 +1145,66 @@
 ./mib_modules.lo: mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.h
 ./mib_modules.lo: mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.h
 ./mib_modules.lo: mibgroup/if-mib/data_access/interface.h
+./mib_modules.lo: mibgroup/agentx/subagent.h
 ./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
-./object_monitor.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./object_monitor.lo: ../include/net-snmp/library/ucd_compat.h
-./object_monitor.lo: ../include/net-snmp/library/mib.h
-./object_monitor.lo: ../include/net-snmp/mib_api.h
-./object_monitor.lo: ../include/net-snmp/library/parse.h
-./object_monitor.lo: ../include/net-snmp/library/oid_stash.h
-./object_monitor.lo: ../include/net-snmp/net-snmp-features.h
 ./object_monitor.lo: ../include/net-snmp/library/snmp_impl.h
 ./object_monitor.lo: ../include/net-snmp/library/snmp.h
 ./object_monitor.lo: ../include/net-snmp/library/snmp-tc.h
-./object_monitor.lo: ../include/net-snmp/library/getopt.h
 ./object_monitor.lo: ../include/net-snmp/utilities.h
+./object_monitor.lo: ../include/net-snmp/library/snmp_client.h
 ./object_monitor.lo: ../include/net-snmp/library/system.h
 ./object_monitor.lo: ../include/net-snmp/library/tools.h
 ./object_monitor.lo: ../include/net-snmp/library/int64.h
 ./object_monitor.lo: ../include/net-snmp/library/mt_support.h
 ./object_monitor.lo: ../include/net-snmp/library/snmp_alarm.h
+./object_monitor.lo: ../include/net-snmp/library/callback.h
 ./object_monitor.lo: ../include/net-snmp/library/data_list.h
+./object_monitor.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./object_monitor.lo: ../include/net-snmp/library/container.h
 ./object_monitor.lo: ../include/net-snmp/library/snmp_assert.h
 ./object_monitor.lo: ../include/net-snmp/version.h
+./object_monitor.lo: ../include/net-snmp/session_api.h
+./object_monitor.lo: ../include/net-snmp/library/snmp_transport.h
+./object_monitor.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./object_monitor.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./object_monitor.lo: ../include/net-snmp/pdu_api.h
+./object_monitor.lo: ../include/net-snmp/mib_api.h
+./object_monitor.lo: ../include/net-snmp/library/mib.h
+./object_monitor.lo: ../include/net-snmp/library/parse.h
+./object_monitor.lo: ../include/net-snmp/varbind_api.h
 ./object_monitor.lo: ../include/net-snmp/config_api.h
 ./object_monitor.lo: ../include/net-snmp/library/read_config.h
 ./object_monitor.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1541,7 +1213,6 @@
 ./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
@@ -1579,68 +1250,63 @@
 ./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/net-snmp-features.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
-./snmp_agent.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_agent.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_agent.lo: ../include/net-snmp/library/mib.h
-./snmp_agent.lo: ../include/net-snmp/mib_api.h
-./snmp_agent.lo: ../include/net-snmp/library/parse.h
-./snmp_agent.lo: ../include/net-snmp/library/oid_stash.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmp.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmp-tc.h
-./snmp_agent.lo: ../include/net-snmp/library/getopt.h
 ./snmp_agent.lo: ../include/net-snmp/utilities.h
+./snmp_agent.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_agent.lo: ../include/net-snmp/library/system.h
 ./snmp_agent.lo: ../include/net-snmp/library/tools.h
 ./snmp_agent.lo: ../include/net-snmp/library/int64.h
 ./snmp_agent.lo: ../include/net-snmp/library/mt_support.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmp_agent.lo: ../include/net-snmp/library/callback.h
 ./snmp_agent.lo: ../include/net-snmp/library/data_list.h
+./snmp_agent.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmp_agent.lo: ../include/net-snmp/library/container.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmp_agent.lo: ../include/net-snmp/version.h
+./snmp_agent.lo: ../include/net-snmp/session_api.h
+./snmp_agent.lo: ../include/net-snmp/library/snmp_transport.h
+./snmp_agent.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmp_agent.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmp_agent.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmp_agent.lo: ../include/net-snmp/library/mib.h
+./snmp_agent.lo: ../include/net-snmp/library/parse.h
+./snmp_agent.lo: ../include/net-snmp/varbind_api.h
 ./snmp_agent.lo: ../include/net-snmp/config_api.h
 ./snmp_agent.lo: ../include/net-snmp/library/read_config.h
 ./snmp_agent.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1649,7 +1315,6 @@
 ./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
@@ -1686,69 +1351,66 @@
 ./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
-./snmp_agent.lo: ../include/net-snmp/agent/snmp_get_statistic.h snmpd.h
+./snmp_agent.lo: ../include/net-snmp/agent/mfd.h snmpd.h mibgroup/struct.h
+./snmp_agent.lo: mibgroup/util_funcs.h mibgroup/struct.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/net-snmp-features.h
-./snmpd.lo: ../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/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/snmpIPXDomain.h
-./snmpd.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpd.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./snmpd.lo: ../include/net-snmp/library/parse.h
-./snmpd.lo: ../include/net-snmp/library/oid_stash.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/snmp_api.h
+./snmpd.lo: ../include/net-snmp/library/asn1.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/net-snmp-includes.h 
-./snmpd.lo:  ../include/net-snmp/library/getopt.h
+./snmpd.lo: ../include/net-snmp/library/snmp-tc.h
 ./snmpd.lo: ../include/net-snmp/utilities.h
+./snmpd.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpd.lo: ../include/net-snmp/library/system.h
 ./snmpd.lo: ../include/net-snmp/library/tools.h
 ./snmpd.lo: ../include/net-snmp/library/int64.h
 ./snmpd.lo: ../include/net-snmp/library/mt_support.h
 ./snmpd.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpd.lo: ../include/net-snmp/library/callback.h
 ./snmpd.lo: ../include/net-snmp/library/data_list.h
+./snmpd.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpd.lo: ../include/net-snmp/library/container.h
 ./snmpd.lo: ../include/net-snmp/library/snmp_assert.h
-./snmpd.lo: ../include/net-snmp/version.h ../include/net-snmp/config_api.h
+./snmpd.lo: ../include/net-snmp/version.h ../include/net-snmp/session_api.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/snmpTCPDomain.h
+./snmpd.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpd.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmpd.lo: ../include/net-snmp/library/mib.h
+./snmpd.lo: ../include/net-snmp/library/parse.h
+./snmpd.lo: ../include/net-snmp/varbind_api.h
+./snmpd.lo: ../include/net-snmp/config_api.h
 ./snmpd.lo: ../include/net-snmp/library/read_config.h
 ./snmpd.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1757,7 +1419,6 @@
 ./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
@@ -1794,69 +1455,194 @@
 ./snmpd.lo: ../include/net-snmp/agent/table_iterator.h
 ./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/agent/snmp_get_statistic.h
-./snmpd.lo: ../include/net-snmp/library/large_fd_set.h m2m.h snmpd.h
-./snmpd.lo: ../include/net-snmp/agent/mib_modules.h mibgroup/smux/smux.h
+./snmpd.lo: ../include/net-snmp/agent/mfd.h m2m.h snmpd.h mibgroup/struct.h
+./snmpd.lo: ../include/net-snmp/agent/mib_modules.h mibgroup/util_funcs.h
+./snmpd.lo: mibgroup/struct.h ../agent/mibgroup/mib_module_includes.h
+./snmpd.lo: mibgroup/examples/example.h mibgroup/testhandler.h
+./snmpd.lo: mibgroup/host/hr_system.h mibgroup/host/hr_storage.h
+./snmpd.lo: mibgroup/host/hr_device.h mibgroup/host/hr_other.h
+./snmpd.lo: mibgroup/host/hr_proc.h mibgroup/host/hr_network.h
+./snmpd.lo: mibgroup/host/hr_print.h mibgroup/host/hr_disk.h
+./snmpd.lo: mibgroup/host/hr_partition.h mibgroup/host/hr_filesys.h
+./snmpd.lo: mibgroup/host/hr_swrun.h mibgroup/host/hr_swinst.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/Rmon/rows.h mibgroup/Rmon/agutil.h
+./snmpd.lo: mibgroup/Rmon/statistics.h mibgroup/Rmon/alarm.h
+./snmpd.lo: mibgroup/Rmon/history.h mibgroup/Rmon/event.h
+./snmpd.lo: mibgroup/disman/event/mteScalars.h
+./snmpd.lo: mibgroup/disman/event/mteTrigger.h
+./snmpd.lo: mibgroup/disman/event/mteTriggerTable.h
+./snmpd.lo: mibgroup/disman/event/mteTriggerDeltaTable.h
+./snmpd.lo: mibgroup/disman/event/mteTriggerExistenceTable.h
+./snmpd.lo: mibgroup/disman/event/mteTriggerBooleanTable.h
+./snmpd.lo: mibgroup/disman/event/mteTriggerThresholdTable.h
+./snmpd.lo: mibgroup/disman/event/mteTriggerConf.h
+./snmpd.lo: mibgroup/disman/event/mteEvent.h
+./snmpd.lo: ../agent/mibgroup/disman/event/mteTrigger.h
+./snmpd.lo: mibgroup/disman/event/mteEventTable.h
+./snmpd.lo: mibgroup/disman/event/mteEventSetTable.h
+./snmpd.lo: mibgroup/disman/event/mteEventNotificationTable.h
+./snmpd.lo: mibgroup/disman/event/mteEventConf.h
+./snmpd.lo: mibgroup/disman/event/mteObjects.h
+./snmpd.lo: mibgroup/disman/event/mteObjectsTable.h
+./snmpd.lo: mibgroup/disman/event/mteObjectsConf.h
+./snmpd.lo: mibgroup/snmpv3/snmpEngine.h mibgroup/snmpv3/snmpMPDStats.h
+./snmpd.lo: mibgroup/snmpv3/usmStats.h mibgroup/snmpv3/usmUser.h
+./snmpd.lo: mibgroup/mibII/system_mib.h mibgroup/mibII/sysORTable.h
+./snmpd.lo: mibgroup/mibII/at.h mibgroup/mibII/ip.h
+./snmpd.lo: mibgroup/mibII/var_route.h mibgroup/mibII/route_write.h
+./snmpd.lo: mibgroup/mibII/at.h mibgroup/mibII/snmp_mib.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/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/notification/snmpNotifyTable.h
+./snmpd.lo: mibgroup/notification/snmpNotifyFilterProfileTable.h
+./snmpd.lo: mibgroup/notification-log-mib/notification_log.h
+./snmpd.lo: mibgroup/target/snmpTargetAddrEntry.h
+./snmpd.lo: mibgroup/target/snmpTargetParamsEntry.h
+./snmpd.lo: mibgroup/target/target_counters.h
+./snmpd.lo: mibgroup/agent/nsTransactionTable.h
+./snmpd.lo: mibgroup/agent/nsModuleTable.h mibgroup/agent/nsDebug.h
+./snmpd.lo: mibgroup/agent/nsCache.h mibgroup/agent/nsLogging.h
+./snmpd.lo: mibgroup/agent/nsVacmAccessTable.h
+./snmpd.lo: mibgroup/disman/schedule/schedCore.h
+./snmpd.lo: mibgroup/disman/schedule/schedConf.h
+./snmpd.lo: mibgroup/disman/schedule/schedTable.h
+./snmpd.lo: mibgroup/utilities/override.h mibgroup/hardware/memory/hw_mem.h
+./snmpd.lo: mibgroup/hardware/cpu/cpu.h mibgroup/hardware/cpu/cpu_linux.h
+./snmpd.lo: mibgroup/mibII/var_route.h mibgroup/mibII/tcpTable.h
+./snmpd.lo: mibgroup/mibII/udpTable.h mibgroup/mibII/vacm_context.h
+./snmpd.lo: mibgroup/ip-mib/ip_scalars.h
+./snmpd.lo: mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.h
+./snmpd.lo: mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_constants.h
+./snmpd.lo: mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.h
+./snmpd.lo: mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.h
+./snmpd.lo: mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.h
+./snmpd.lo: mibgroup/if-mib/ifTable/ifTable.h
+./snmpd.lo: ../include/net-snmp/data_access/interface.h
+./snmpd.lo: mibgroup/if-mib/ifTable/ifTable_constants.h
+./snmpd.lo: mibgroup/if-mib/ifTable/ifTable_interface.h
+./snmpd.lo: mibgroup/if-mib/ifTable/ifTable.h
+./snmpd.lo: mibgroup/if-mib/ifTable/ifTable_data_access.h
+./snmpd.lo: mibgroup/if-mib/ifXTable/ifXTable.h
+./snmpd.lo: ../agent/mibgroup/if-mib/ifTable/ifTable.h
+./snmpd.lo: mibgroup/if-mib/ifXTable/ifXTable_constants.h
+./snmpd.lo: mibgroup/if-mib/ifXTable/ifXTable_interface.h
+./snmpd.lo: mibgroup/if-mib/ifXTable/ifXTable.h
+./snmpd.lo: mibgroup/if-mib/ifXTable/ifXTable_data_access.h
+./snmpd.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
+./snmpd.lo: ../include/net-snmp/data_access/ipaddress.h
+./snmpd.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable_constants.h
+./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/inetNetToMediaTable/inetNetToMediaTable.h
+./snmpd.lo: ../include/net-snmp/data_access/arp.h
+./snmpd.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_constants.h
+./snmpd.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.h
+./snmpd.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h
+./snmpd.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.h
+./snmpd.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
+./snmpd.lo: ../include/net-snmp/data_access/ipstats.h
+./snmpd.lo: ../include/net-snmp/data_access/systemstats.h
+./snmpd.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_constants.h
+./snmpd.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.h
+./snmpd.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
+./snmpd.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.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: 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
+./snmpd.lo: mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_data_access.h
+./snmpd.lo: mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.h
+./snmpd.lo: mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_constants.h
+./snmpd.lo: mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.h
+./snmpd.lo: mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.h
+./snmpd.lo: mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.h
+./snmpd.lo: mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.h
+./snmpd.lo: ../include/net-snmp/data_access/tcpConn.h
+./snmpd.lo: mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_constants.h
+./snmpd.lo: mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.h
+./snmpd.lo: mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.h
+./snmpd.lo: mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.h
+./snmpd.lo: mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.h
+./snmpd.lo: mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_constants.h
+./snmpd.lo: mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.h
+./snmpd.lo: mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.h
+./snmpd.lo: mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.h
+./snmpd.lo: mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.h
+./snmpd.lo: mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_constants.h
+./snmpd.lo: mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.h
+./snmpd.lo: mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.h
+./snmpd.lo: mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.h
+./snmpd.lo: mibgroup/if-mib/data_access/interface.h mibgroup/smux/smux.h
 ./snmp_perl.lo: ../include/net-snmp/net-snmp-config.h
+./snmp_perl.lo: ../include/net-snmp/system/linux.h
+./snmp_perl.lo: ../include/net-snmp/system/sysv.h
+./snmp_perl.lo: ../include/net-snmp/system/generic.h
+./snmp_perl.lo: ../include/net-snmp/machine/generic.h
 ./snmp_perl.lo: ../include/net-snmp/net-snmp-includes.h 
-./snmp_perl.lo: ../include/net-snmp/definitions.h ../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/definitions.h
+./snmp_perl.lo: ../include/net-snmp/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
-./snmp_perl.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_perl.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_perl.lo: ../include/net-snmp/library/mib.h
-./snmp_perl.lo: ../include/net-snmp/mib_api.h
-./snmp_perl.lo: ../include/net-snmp/library/parse.h
-./snmp_perl.lo: ../include/net-snmp/library/oid_stash.h
-./snmp_perl.lo: ../include/net-snmp/net-snmp-features.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmp.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmp-tc.h
-./snmp_perl.lo: ../include/net-snmp/library/getopt.h
 ./snmp_perl.lo: ../include/net-snmp/utilities.h
+./snmp_perl.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_perl.lo: ../include/net-snmp/library/system.h
 ./snmp_perl.lo: ../include/net-snmp/library/tools.h
 ./snmp_perl.lo: ../include/net-snmp/library/int64.h
 ./snmp_perl.lo: ../include/net-snmp/library/mt_support.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmp_perl.lo: ../include/net-snmp/library/callback.h
 ./snmp_perl.lo: ../include/net-snmp/library/data_list.h
+./snmp_perl.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmp_perl.lo: ../include/net-snmp/library/container.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmp_perl.lo: ../include/net-snmp/version.h
+./snmp_perl.lo: ../include/net-snmp/session_api.h
+./snmp_perl.lo: ../include/net-snmp/library/snmp_transport.h
+./snmp_perl.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmp_perl.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmp_perl.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmp_perl.lo: ../include/net-snmp/library/mib.h
+./snmp_perl.lo: ../include/net-snmp/library/parse.h
+./snmp_perl.lo: ../include/net-snmp/varbind_api.h
 ./snmp_perl.lo: ../include/net-snmp/config_api.h
 ./snmp_perl.lo: ../include/net-snmp/library/read_config.h
 ./snmp_perl.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1865,7 +1651,6 @@
 ./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
@@ -1903,67 +1688,62 @@
 ./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.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/system/linux.h
+./snmp_vars.lo: ../include/net-snmp/system/sysv.h
+./snmp_vars.lo: ../include/net-snmp/system/generic.h
+./snmp_vars.lo: ../include/net-snmp/machine/generic.h 
 ./snmp_vars.lo: ../include/net-snmp/net-snmp-includes.h 
 ./snmp_vars.lo:  ../include/net-snmp/definitions.h
-./snmp_vars.lo: ../include/net-snmp/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/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
-./snmp_vars.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_vars.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_vars.lo: ../include/net-snmp/library/mib.h
-./snmp_vars.lo: ../include/net-snmp/mib_api.h
-./snmp_vars.lo: ../include/net-snmp/library/parse.h
-./snmp_vars.lo: ../include/net-snmp/library/oid_stash.h
-./snmp_vars.lo: ../include/net-snmp/net-snmp-features.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmp.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmp-tc.h
-./snmp_vars.lo: ../include/net-snmp/library/getopt.h
 ./snmp_vars.lo: ../include/net-snmp/utilities.h
+./snmp_vars.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_vars.lo: ../include/net-snmp/library/system.h
 ./snmp_vars.lo: ../include/net-snmp/library/tools.h
 ./snmp_vars.lo: ../include/net-snmp/library/int64.h
 ./snmp_vars.lo: ../include/net-snmp/library/mt_support.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmp_vars.lo: ../include/net-snmp/library/callback.h
 ./snmp_vars.lo: ../include/net-snmp/library/data_list.h
+./snmp_vars.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmp_vars.lo: ../include/net-snmp/library/container.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmp_vars.lo: ../include/net-snmp/version.h
+./snmp_vars.lo: ../include/net-snmp/session_api.h
+./snmp_vars.lo: ../include/net-snmp/library/snmp_transport.h
+./snmp_vars.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmp_vars.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmp_vars.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmp_vars.lo: ../include/net-snmp/library/mib.h
+./snmp_vars.lo: ../include/net-snmp/library/parse.h
+./snmp_vars.lo: ../include/net-snmp/varbind_api.h
 ./snmp_vars.lo: ../include/net-snmp/config_api.h
 ./snmp_vars.lo: ../include/net-snmp/library/read_config.h
 ./snmp_vars.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1972,7 +1752,6 @@
 ./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
@@ -2010,39 +1789,27 @@
 ./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: ../include/net-snmp/agent/mib_modules.h kernel.h
 ./snmp_vars.lo: mibgroup/struct.h snmpd.h
 ./snmp_vars.lo: ../agent/mibgroup/agentx/agentx_config.h
 ./snmp_vars.lo: ../agent/mibgroup/agentx/subagent.h
 ./snmp_vars.lo: ../agent/mibgroup/agent_module_includes.h
-./snmp_vars.lo: mibgroup/smux/smux.h mibgroup/utilities/iquery.h
-./snmp_vars.lo: mibgroup/snmpv3/usmConf.h mibgroup/mibII/vacm_conf.h
+./snmp_vars.lo: mibgroup/smux/smux.h mibgroup/snmpv3/usmConf.h
+./snmp_vars.lo: mibgroup/utilities/iquery.h mibgroup/mibII/vacm_conf.h
 ./snmp_vars.lo: ../agent/mibgroup/mib_module_includes.h
 ./snmp_vars.lo: mibgroup/examples/example.h mibgroup/testhandler.h
-./snmp_vars.lo: mibgroup/host/hrh_storage.h mibgroup/host/hrh_filesys.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_system.h mibgroup/host/hr_storage.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/host/hr_partition.h mibgroup/host/hr_filesys.h
+./snmp_vars.lo: mibgroup/host/hr_swrun.h mibgroup/host/hr_swinst.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/alarm.h mibgroup/Rmon/history.h
+./snmp_vars.lo: mibgroup/Rmon/event.h 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
@@ -2059,29 +1826,29 @@
 ./snmp_vars.lo: mibgroup/disman/event/mteObjects.h
 ./snmp_vars.lo: mibgroup/disman/event/mteObjectsTable.h
 ./snmp_vars.lo: mibgroup/disman/event/mteObjectsConf.h
-./snmp_vars.lo: mibgroup/snmpv3/snmpMPDStats_5_5.h
-./snmp_vars.lo: mibgroup/snmpv3/usmStats_5_5.h mibgroup/snmpv3/snmpEngine.h
-./snmp_vars.lo: mibgroup/snmpv3/usmUser.h mibgroup/mibII/snmp_mib_5_5.h
+./snmp_vars.lo: mibgroup/snmpv3/snmpEngine.h mibgroup/snmpv3/snmpMPDStats.h
+./snmp_vars.lo: mibgroup/snmpv3/usmStats.h mibgroup/snmpv3/usmUser.h
 ./snmp_vars.lo: mibgroup/mibII/system_mib.h mibgroup/mibII/sysORTable.h
 ./snmp_vars.lo: mibgroup/mibII/at.h mibgroup/mibII/ip.h
 ./snmp_vars.lo: mibgroup/mibII/var_route.h mibgroup/mibII/route_write.h
-./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/disk_hw.h
-./snmp_vars.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/proc.h
+./snmp_vars.lo: mibgroup/mibII/at.h mibgroup/mibII/snmp_mib.h
+./snmp_vars.lo: mibgroup/mibII/tcp.h mibgroup/mibII/icmp.h
+./snmp_vars.lo: mibgroup/mibII/udp.h mibgroup/mibII/vacm_vars.h
+./snmp_vars.lo: mibgroup/mibII/setSerialNo.h mibgroup/mibII/ipv6.h
+./snmp_vars.lo: mibgroup/ucd-snmp/proc.h ../agent/mibgroup/mibdefs.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/pass_persist.h mibgroup/ucd-snmp/disk.h
+./snmp_vars.lo: mibgroup/ucd-snmp/loadave.h mibgroup/agent/extend.h
+./snmp_vars.lo: mibgroup/ucd-snmp/errormib.h mibgroup/ucd-snmp/file.h
+./snmp_vars.lo: mibgroup/ucd-snmp/dlmod.h mibgroup/ucd-snmp/proxy.h
+./snmp_vars.lo: mibgroup/ucd-snmp/logmatch.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
-./snmp_vars.lo: mibgroup/target/target_counters_5_5.h
 ./snmp_vars.lo: mibgroup/target/snmpTargetAddrEntry.h
 ./snmp_vars.lo: mibgroup/target/snmpTargetParamsEntry.h
+./snmp_vars.lo: mibgroup/target/target_counters.h
 ./snmp_vars.lo: mibgroup/agent/nsTransactionTable.h
 ./snmp_vars.lo: mibgroup/agent/nsModuleTable.h mibgroup/agent/nsDebug.h
 ./snmp_vars.lo: mibgroup/agent/nsCache.h mibgroup/agent/nsLogging.h
@@ -2090,8 +1857,7 @@
 ./snmp_vars.lo: mibgroup/disman/schedule/schedConf.h
 ./snmp_vars.lo: mibgroup/disman/schedule/schedTable.h
 ./snmp_vars.lo: mibgroup/utilities/override.h
-./snmp_vars.lo: mibgroup/hardware/memory/hw_mem.h
-./snmp_vars.lo: mibgroup/hardware/fsys/hw_fsys.h mibgroup/hardware/cpu/cpu.h
+./snmp_vars.lo: mibgroup/hardware/memory/hw_mem.h mibgroup/hardware/cpu/cpu.h
 ./snmp_vars.lo: mibgroup/hardware/cpu/cpu_linux.h mibgroup/mibII/var_route.h
 ./snmp_vars.lo: mibgroup/mibII/tcpTable.h mibgroup/mibII/udpTable.h
 ./snmp_vars.lo: mibgroup/mibII/vacm_context.h mibgroup/ip-mib/ip_scalars.h
@@ -2118,19 +1884,6 @@
 ./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
@@ -2144,20 +1897,6 @@
 ./snmp_vars.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.h
 ./snmp_vars.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
 ./snmp_vars.lo: mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.h
-./snmp_vars.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h
-./snmp_vars.lo: ../include/net-snmp/data_access/scopezone.h
-./snmp_vars.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_oids.h
-./snmp_vars.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_enums.h
-./snmp_vars.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.h
-./snmp_vars.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h
-./snmp_vars.lo: mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.h
-./snmp_vars.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h
-./snmp_vars.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_oids.h
-./snmp_vars.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_enums.h
-./snmp_vars.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.h
-./snmp_vars.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h
-./snmp_vars.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.h
-./snmp_vars.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
 ./snmp_vars.lo: mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.h
 ./snmp_vars.lo: ../include/net-snmp/data_access/route.h
 ./snmp_vars.lo: ../agent/mibgroup/mibII/route_headers.h
@@ -2186,68 +1925,65 @@
 ./snmp_vars.lo: mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.h
 ./snmp_vars.lo: mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.h
 ./snmp_vars.lo: mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.h
-./snmp_vars.lo: mibgroup/if-mib/data_access/interface.h snmp_perl.h
+./snmp_vars.lo: mibgroup/if-mib/data_access/interface.h
 ./snmp_vars.lo: ../agent/mibgroup/agent_module_inits.h
 ./helpers/all_helpers.lo: ../include/net-snmp/net-snmp-config.h
-./helpers/all_helpers.lo: ../include/net-snmp/net-snmp-features.h
+./helpers/all_helpers.lo: ../include/net-snmp/system/linux.h
+./helpers/all_helpers.lo: ../include/net-snmp/system/sysv.h
+./helpers/all_helpers.lo: ../include/net-snmp/system/generic.h
+./helpers/all_helpers.lo: ../include/net-snmp/machine/generic.h
 ./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
-./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/all_helpers.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/all_helpers.lo: ../include/net-snmp/library/mib.h
-./helpers/all_helpers.lo: ../include/net-snmp/mib_api.h
-./helpers/all_helpers.lo: ../include/net-snmp/library/parse.h
-./helpers/all_helpers.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmp.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/all_helpers.lo: ../include/net-snmp/library/getopt.h
 ./helpers/all_helpers.lo: ../include/net-snmp/utilities.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/system.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/tools.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/int64.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/callback.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/data_list.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/all_helpers.lo: ../include/net-snmp/library/container.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/all_helpers.lo: ../include/net-snmp/version.h
+./helpers/all_helpers.lo: ../include/net-snmp/session_api.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/all_helpers.lo: ../include/net-snmp/pdu_api.h
+./helpers/all_helpers.lo: ../include/net-snmp/mib_api.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/mib.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/parse.h
+./helpers/all_helpers.lo: ../include/net-snmp/varbind_api.h
 ./helpers/all_helpers.lo: ../include/net-snmp/config_api.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/read_config.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -2256,7 +1992,6 @@
 ./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
@@ -2294,77 +2029,71 @@
 ./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-features.h
+./helpers/baby_steps.lo: ../include/net-snmp/system/linux.h
+./helpers/baby_steps.lo: ../include/net-snmp/system/sysv.h
+./helpers/baby_steps.lo: ../include/net-snmp/system/generic.h
+./helpers/baby_steps.lo: ../include/net-snmp/machine/generic.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
-./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/baby_steps.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/baby_steps.lo: ../include/net-snmp/library/mib.h
-./helpers/baby_steps.lo: ../include/net-snmp/mib_api.h
-./helpers/baby_steps.lo: ../include/net-snmp/library/parse.h
-./helpers/baby_steps.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmp.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/baby_steps.lo: ../include/net-snmp/library/getopt.h
 ./helpers/baby_steps.lo: ../include/net-snmp/utilities.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/system.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/tools.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/int64.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/callback.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/data_list.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/baby_steps.lo: ../include/net-snmp/library/container.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/baby_steps.lo: ../include/net-snmp/version.h
-./helpers/baby_steps.lo: ../include/net-snmp/config_api.h
-./helpers/baby_steps.lo: ../include/net-snmp/library/read_config.h
-./helpers/baby_steps.lo: ../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./helpers/baby_steps.lo: ../include/net-snmp/library/snmpv3.h
+./helpers/baby_steps.lo: ../include/net-snmp/session_api.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/baby_steps.lo: ../include/net-snmp/pdu_api.h
+./helpers/baby_steps.lo: ../include/net-snmp/mib_api.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/mib.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/parse.h
+./helpers/baby_steps.lo: ../include/net-snmp/varbind_api.h
+./helpers/baby_steps.lo: ../include/net-snmp/config_api.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/read_config.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/default_store.h
+./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
 ./helpers/baby_steps.lo: ../include/net-snmp/library/keytools.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/scapi.h
 ./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
@@ -2402,67 +2131,63 @@
 ./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/system/linux.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/system/sysv.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/system/generic.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/machine/generic.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
-./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/bulk_to_next.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/bulk_to_next.lo: ../include/net-snmp/library/mib.h
-./helpers/bulk_to_next.lo: ../include/net-snmp/mib_api.h
-./helpers/bulk_to_next.lo: ../include/net-snmp/library/parse.h
-./helpers/bulk_to_next.lo: ../include/net-snmp/library/oid_stash.h
-./helpers/bulk_to_next.lo: ../include/net-snmp/net-snmp-features.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/bulk_to_next.lo: ../include/net-snmp/library/getopt.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/utilities.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/system.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/tools.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/int64.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/callback.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/data_list.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/container.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/version.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/session_api.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/bulk_to_next.lo: ../include/net-snmp/pdu_api.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/mib_api.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/mib.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/parse.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/varbind_api.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/config_api.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/read_config.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -2471,7 +2196,6 @@
 ./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
@@ -2509,67 +2233,63 @@
 ./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-features.h
+./helpers/cache_handler.lo: ../include/net-snmp/system/linux.h
+./helpers/cache_handler.lo: ../include/net-snmp/system/sysv.h
+./helpers/cache_handler.lo: ../include/net-snmp/system/generic.h
+./helpers/cache_handler.lo: ../include/net-snmp/machine/generic.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
-./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/cache_handler.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/cache_handler.lo: ../include/net-snmp/library/mib.h
-./helpers/cache_handler.lo: ../include/net-snmp/mib_api.h
-./helpers/cache_handler.lo: ../include/net-snmp/library/parse.h
-./helpers/cache_handler.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmp.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/cache_handler.lo: ../include/net-snmp/library/getopt.h
 ./helpers/cache_handler.lo: ../include/net-snmp/utilities.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/system.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/tools.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/int64.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/callback.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/data_list.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/cache_handler.lo: ../include/net-snmp/library/container.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/cache_handler.lo: ../include/net-snmp/version.h
+./helpers/cache_handler.lo: ../include/net-snmp/session_api.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/cache_handler.lo: ../include/net-snmp/pdu_api.h
+./helpers/cache_handler.lo: ../include/net-snmp/mib_api.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/mib.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/parse.h
+./helpers/cache_handler.lo: ../include/net-snmp/varbind_api.h
 ./helpers/cache_handler.lo: ../include/net-snmp/config_api.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/read_config.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -2578,7 +2298,6 @@
 ./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
@@ -2616,67 +2335,63 @@
 ./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/system/linux.h
+./helpers/debug_handler.lo: ../include/net-snmp/system/sysv.h
+./helpers/debug_handler.lo: ../include/net-snmp/system/generic.h
+./helpers/debug_handler.lo: ../include/net-snmp/machine/generic.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
-./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/debug_handler.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/debug_handler.lo: ../include/net-snmp/library/mib.h
-./helpers/debug_handler.lo: ../include/net-snmp/mib_api.h
-./helpers/debug_handler.lo: ../include/net-snmp/library/parse.h
-./helpers/debug_handler.lo: ../include/net-snmp/library/oid_stash.h
-./helpers/debug_handler.lo: ../include/net-snmp/net-snmp-features.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmp.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/debug_handler.lo: ../include/net-snmp/library/getopt.h
 ./helpers/debug_handler.lo: ../include/net-snmp/utilities.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/system.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/tools.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/int64.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/callback.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/data_list.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/debug_handler.lo: ../include/net-snmp/library/container.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/debug_handler.lo: ../include/net-snmp/version.h
+./helpers/debug_handler.lo: ../include/net-snmp/session_api.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/debug_handler.lo: ../include/net-snmp/pdu_api.h
+./helpers/debug_handler.lo: ../include/net-snmp/mib_api.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/mib.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/parse.h
+./helpers/debug_handler.lo: ../include/net-snmp/varbind_api.h
 ./helpers/debug_handler.lo: ../include/net-snmp/config_api.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/read_config.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -2685,7 +2400,6 @@
 ./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
@@ -2723,67 +2437,63 @@
 ./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-features.h
+./helpers/instance.lo: ../include/net-snmp/system/linux.h
+./helpers/instance.lo: ../include/net-snmp/system/sysv.h
+./helpers/instance.lo: ../include/net-snmp/system/generic.h
+./helpers/instance.lo: ../include/net-snmp/machine/generic.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
-./helpers/instance.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/instance.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/instance.lo: ../include/net-snmp/library/mib.h
-./helpers/instance.lo: ../include/net-snmp/mib_api.h
-./helpers/instance.lo: ../include/net-snmp/library/parse.h
-./helpers/instance.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmp.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/instance.lo: ../include/net-snmp/library/getopt.h
 ./helpers/instance.lo: ../include/net-snmp/utilities.h
+./helpers/instance.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/instance.lo: ../include/net-snmp/library/system.h
 ./helpers/instance.lo: ../include/net-snmp/library/tools.h
 ./helpers/instance.lo: ../include/net-snmp/library/int64.h
 ./helpers/instance.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/instance.lo: ../include/net-snmp/library/callback.h
 ./helpers/instance.lo: ../include/net-snmp/library/data_list.h
+./helpers/instance.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/instance.lo: ../include/net-snmp/library/container.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/instance.lo: ../include/net-snmp/version.h
+./helpers/instance.lo: ../include/net-snmp/session_api.h
+./helpers/instance.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/instance.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/instance.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/instance.lo: ../include/net-snmp/pdu_api.h
+./helpers/instance.lo: ../include/net-snmp/mib_api.h
+./helpers/instance.lo: ../include/net-snmp/library/mib.h
+./helpers/instance.lo: ../include/net-snmp/library/parse.h
+./helpers/instance.lo: ../include/net-snmp/varbind_api.h
 ./helpers/instance.lo: ../include/net-snmp/config_api.h
 ./helpers/instance.lo: ../include/net-snmp/library/read_config.h
 ./helpers/instance.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -2792,7 +2502,6 @@
 ./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
@@ -2830,67 +2539,63 @@
 ./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/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-features.h
+./helpers/mode_end_call.lo: ../include/net-snmp/system/linux.h
+./helpers/mode_end_call.lo: ../include/net-snmp/system/sysv.h
+./helpers/mode_end_call.lo: ../include/net-snmp/system/generic.h
+./helpers/mode_end_call.lo: ../include/net-snmp/machine/generic.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
-./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/mode_end_call.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/mode_end_call.lo: ../include/net-snmp/library/mib.h
-./helpers/mode_end_call.lo: ../include/net-snmp/mib_api.h
-./helpers/mode_end_call.lo: ../include/net-snmp/library/parse.h
-./helpers/mode_end_call.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/mode_end_call.lo: ../include/net-snmp/library/getopt.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/utilities.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/system.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/tools.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/int64.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/callback.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/data_list.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/container.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/version.h
+./helpers/mode_end_call.lo: ../include/net-snmp/session_api.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/mode_end_call.lo: ../include/net-snmp/pdu_api.h
+./helpers/mode_end_call.lo: ../include/net-snmp/mib_api.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/mib.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/parse.h
+./helpers/mode_end_call.lo: ../include/net-snmp/varbind_api.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/config_api.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/read_config.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -2899,7 +2604,6 @@
 ./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
@@ -2937,67 +2641,63 @@
 ./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/system/linux.h
+./helpers/multiplexer.lo: ../include/net-snmp/system/sysv.h
+./helpers/multiplexer.lo: ../include/net-snmp/system/generic.h
+./helpers/multiplexer.lo: ../include/net-snmp/machine/generic.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
-./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/multiplexer.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/multiplexer.lo: ../include/net-snmp/library/mib.h
-./helpers/multiplexer.lo: ../include/net-snmp/mib_api.h
-./helpers/multiplexer.lo: ../include/net-snmp/library/parse.h
-./helpers/multiplexer.lo: ../include/net-snmp/library/oid_stash.h
-./helpers/multiplexer.lo: ../include/net-snmp/net-snmp-features.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmp.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/multiplexer.lo: ../include/net-snmp/library/getopt.h
 ./helpers/multiplexer.lo: ../include/net-snmp/utilities.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/system.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/tools.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/int64.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/callback.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/data_list.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/multiplexer.lo: ../include/net-snmp/library/container.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/multiplexer.lo: ../include/net-snmp/version.h
+./helpers/multiplexer.lo: ../include/net-snmp/session_api.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/multiplexer.lo: ../include/net-snmp/pdu_api.h
+./helpers/multiplexer.lo: ../include/net-snmp/mib_api.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/mib.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/parse.h
+./helpers/multiplexer.lo: ../include/net-snmp/varbind_api.h
 ./helpers/multiplexer.lo: ../include/net-snmp/config_api.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/read_config.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -3006,7 +2706,6 @@
 ./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
@@ -3044,67 +2743,63 @@
 ./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/system/linux.h
+./helpers/null.lo: ../include/net-snmp/system/sysv.h
+./helpers/null.lo: ../include/net-snmp/system/generic.h
+./helpers/null.lo: ../include/net-snmp/machine/generic.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
-./helpers/null.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/null.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/null.lo: ../include/net-snmp/library/mib.h
-./helpers/null.lo: ../include/net-snmp/mib_api.h
-./helpers/null.lo: ../include/net-snmp/library/parse.h
-./helpers/null.lo: ../include/net-snmp/library/oid_stash.h
-./helpers/null.lo: ../include/net-snmp/net-snmp-features.h
 ./helpers/null.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/null.lo: ../include/net-snmp/library/snmp.h
 ./helpers/null.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/null.lo: ../include/net-snmp/library/getopt.h
 ./helpers/null.lo: ../include/net-snmp/utilities.h
+./helpers/null.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/null.lo: ../include/net-snmp/library/system.h
 ./helpers/null.lo: ../include/net-snmp/library/tools.h
 ./helpers/null.lo: ../include/net-snmp/library/int64.h
 ./helpers/null.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/null.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/null.lo: ../include/net-snmp/library/callback.h
 ./helpers/null.lo: ../include/net-snmp/library/data_list.h
+./helpers/null.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/null.lo: ../include/net-snmp/library/container.h
 ./helpers/null.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/null.lo: ../include/net-snmp/version.h
+./helpers/null.lo: ../include/net-snmp/session_api.h
+./helpers/null.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/null.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/null.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/null.lo: ../include/net-snmp/pdu_api.h
+./helpers/null.lo: ../include/net-snmp/mib_api.h
+./helpers/null.lo: ../include/net-snmp/library/mib.h
+./helpers/null.lo: ../include/net-snmp/library/parse.h
+./helpers/null.lo: ../include/net-snmp/varbind_api.h
 ./helpers/null.lo: ../include/net-snmp/config_api.h
 ./helpers/null.lo: ../include/net-snmp/library/read_config.h
 ./helpers/null.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -3113,7 +2808,6 @@
 ./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
@@ -3151,67 +2845,63 @@
 ./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/snmp_get_statistic.h
 ./helpers/old_api.lo: ../include/net-snmp/net-snmp-config.h
+./helpers/old_api.lo: ../include/net-snmp/system/linux.h
+./helpers/old_api.lo: ../include/net-snmp/system/sysv.h
+./helpers/old_api.lo: ../include/net-snmp/system/generic.h
+./helpers/old_api.lo: ../include/net-snmp/machine/generic.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
-./helpers/old_api.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/old_api.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/old_api.lo: ../include/net-snmp/library/mib.h
-./helpers/old_api.lo: ../include/net-snmp/mib_api.h
-./helpers/old_api.lo: ../include/net-snmp/library/parse.h
-./helpers/old_api.lo: ../include/net-snmp/library/oid_stash.h
-./helpers/old_api.lo: ../include/net-snmp/net-snmp-features.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmp.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/old_api.lo: ../include/net-snmp/library/getopt.h
 ./helpers/old_api.lo: ../include/net-snmp/utilities.h
+./helpers/old_api.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/old_api.lo: ../include/net-snmp/library/system.h
 ./helpers/old_api.lo: ../include/net-snmp/library/tools.h
 ./helpers/old_api.lo: ../include/net-snmp/library/int64.h
 ./helpers/old_api.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/old_api.lo: ../include/net-snmp/library/callback.h
 ./helpers/old_api.lo: ../include/net-snmp/library/data_list.h
+./helpers/old_api.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/old_api.lo: ../include/net-snmp/library/container.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/old_api.lo: ../include/net-snmp/version.h
+./helpers/old_api.lo: ../include/net-snmp/session_api.h
+./helpers/old_api.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/old_api.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/old_api.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/old_api.lo: ../include/net-snmp/pdu_api.h
+./helpers/old_api.lo: ../include/net-snmp/mib_api.h
+./helpers/old_api.lo: ../include/net-snmp/library/mib.h
+./helpers/old_api.lo: ../include/net-snmp/library/parse.h
+./helpers/old_api.lo: ../include/net-snmp/varbind_api.h
 ./helpers/old_api.lo: ../include/net-snmp/config_api.h
 ./helpers/old_api.lo: ../include/net-snmp/library/read_config.h
 ./helpers/old_api.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -3220,7 +2910,6 @@
 ./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
@@ -3258,68 +2947,64 @@
 ./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/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/system/linux.h
+./helpers/read_only.lo: ../include/net-snmp/system/sysv.h
+./helpers/read_only.lo: ../include/net-snmp/system/generic.h
+./helpers/read_only.lo: ../include/net-snmp/machine/generic.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
-./helpers/read_only.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/read_only.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/read_only.lo: ../include/net-snmp/library/mib.h
-./helpers/read_only.lo: ../include/net-snmp/mib_api.h
-./helpers/read_only.lo: ../include/net-snmp/library/parse.h
-./helpers/read_only.lo: ../include/net-snmp/library/oid_stash.h
-./helpers/read_only.lo: ../include/net-snmp/net-snmp-features.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmp.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/read_only.lo: ../include/net-snmp/library/getopt.h
 ./helpers/read_only.lo: ../include/net-snmp/utilities.h
+./helpers/read_only.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/read_only.lo: ../include/net-snmp/library/system.h
 ./helpers/read_only.lo: ../include/net-snmp/library/tools.h
 ./helpers/read_only.lo: ../include/net-snmp/library/int64.h
 ./helpers/read_only.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/read_only.lo: ../include/net-snmp/library/callback.h
 ./helpers/read_only.lo: ../include/net-snmp/library/data_list.h
+./helpers/read_only.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/read_only.lo: ../include/net-snmp/library/container.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/read_only.lo: ../include/net-snmp/version.h
+./helpers/read_only.lo: ../include/net-snmp/session_api.h
+./helpers/read_only.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/read_only.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/read_only.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/read_only.lo: ../include/net-snmp/pdu_api.h
+./helpers/read_only.lo: ../include/net-snmp/mib_api.h
+./helpers/read_only.lo: ../include/net-snmp/library/mib.h
+./helpers/read_only.lo: ../include/net-snmp/library/parse.h
+./helpers/read_only.lo: ../include/net-snmp/varbind_api.h
 ./helpers/read_only.lo: ../include/net-snmp/config_api.h
 ./helpers/read_only.lo: ../include/net-snmp/library/read_config.h
 ./helpers/read_only.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -3328,7 +3013,6 @@
 ./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
@@ -3366,67 +3050,63 @@
 ./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-features.h
+./helpers/row_merge.lo: ../include/net-snmp/system/linux.h
+./helpers/row_merge.lo: ../include/net-snmp/system/sysv.h
+./helpers/row_merge.lo: ../include/net-snmp/system/generic.h
+./helpers/row_merge.lo: ../include/net-snmp/machine/generic.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
-./helpers/row_merge.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/row_merge.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/row_merge.lo: ../include/net-snmp/library/mib.h
-./helpers/row_merge.lo: ../include/net-snmp/mib_api.h
-./helpers/row_merge.lo: ../include/net-snmp/library/parse.h
-./helpers/row_merge.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmp.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/row_merge.lo: ../include/net-snmp/library/getopt.h
 ./helpers/row_merge.lo: ../include/net-snmp/utilities.h
+./helpers/row_merge.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/system.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/tools.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/int64.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/row_merge.lo: ../include/net-snmp/library/callback.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/data_list.h
+./helpers/row_merge.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/row_merge.lo: ../include/net-snmp/library/container.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/row_merge.lo: ../include/net-snmp/version.h
+./helpers/row_merge.lo: ../include/net-snmp/session_api.h
+./helpers/row_merge.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/row_merge.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/row_merge.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/row_merge.lo: ../include/net-snmp/pdu_api.h
+./helpers/row_merge.lo: ../include/net-snmp/mib_api.h
+./helpers/row_merge.lo: ../include/net-snmp/library/mib.h
+./helpers/row_merge.lo: ../include/net-snmp/library/parse.h
+./helpers/row_merge.lo: ../include/net-snmp/varbind_api.h
 ./helpers/row_merge.lo: ../include/net-snmp/config_api.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/read_config.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -3435,7 +3115,6 @@
 ./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
@@ -3473,67 +3152,63 @@
 ./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/system/linux.h
+./helpers/scalar.lo: ../include/net-snmp/system/sysv.h
+./helpers/scalar.lo: ../include/net-snmp/system/generic.h
+./helpers/scalar.lo: ../include/net-snmp/machine/generic.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
-./helpers/scalar.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/scalar.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/scalar.lo: ../include/net-snmp/library/mib.h
-./helpers/scalar.lo: ../include/net-snmp/mib_api.h
-./helpers/scalar.lo: ../include/net-snmp/library/parse.h
-./helpers/scalar.lo: ../include/net-snmp/library/oid_stash.h
-./helpers/scalar.lo: ../include/net-snmp/net-snmp-features.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmp.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/scalar.lo: ../include/net-snmp/library/getopt.h
 ./helpers/scalar.lo: ../include/net-snmp/utilities.h
+./helpers/scalar.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/scalar.lo: ../include/net-snmp/library/system.h
 ./helpers/scalar.lo: ../include/net-snmp/library/tools.h
 ./helpers/scalar.lo: ../include/net-snmp/library/int64.h
 ./helpers/scalar.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/scalar.lo: ../include/net-snmp/library/callback.h
 ./helpers/scalar.lo: ../include/net-snmp/library/data_list.h
+./helpers/scalar.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/scalar.lo: ../include/net-snmp/library/container.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/scalar.lo: ../include/net-snmp/version.h
+./helpers/scalar.lo: ../include/net-snmp/session_api.h
+./helpers/scalar.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/scalar.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/scalar.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/scalar.lo: ../include/net-snmp/pdu_api.h
+./helpers/scalar.lo: ../include/net-snmp/mib_api.h
+./helpers/scalar.lo: ../include/net-snmp/library/mib.h
+./helpers/scalar.lo: ../include/net-snmp/library/parse.h
+./helpers/scalar.lo: ../include/net-snmp/varbind_api.h
 ./helpers/scalar.lo: ../include/net-snmp/config_api.h
 ./helpers/scalar.lo: ../include/net-snmp/library/read_config.h
 ./helpers/scalar.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -3542,7 +3217,6 @@
 ./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
@@ -3580,67 +3254,63 @@
 ./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/snmp_get_statistic.h
 ./helpers/scalar_group.lo: ../include/net-snmp/net-snmp-config.h
+./helpers/scalar_group.lo: ../include/net-snmp/system/linux.h
+./helpers/scalar_group.lo: ../include/net-snmp/system/sysv.h
+./helpers/scalar_group.lo: ../include/net-snmp/system/generic.h
+./helpers/scalar_group.lo: ../include/net-snmp/machine/generic.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
-./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/scalar_group.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/scalar_group.lo: ../include/net-snmp/library/mib.h
-./helpers/scalar_group.lo: ../include/net-snmp/mib_api.h
-./helpers/scalar_group.lo: ../include/net-snmp/library/parse.h
-./helpers/scalar_group.lo: ../include/net-snmp/library/oid_stash.h
-./helpers/scalar_group.lo: ../include/net-snmp/net-snmp-features.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmp.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/scalar_group.lo: ../include/net-snmp/library/getopt.h
 ./helpers/scalar_group.lo: ../include/net-snmp/utilities.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/system.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/tools.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/int64.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/callback.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/data_list.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/scalar_group.lo: ../include/net-snmp/library/container.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/scalar_group.lo: ../include/net-snmp/version.h
+./helpers/scalar_group.lo: ../include/net-snmp/session_api.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/scalar_group.lo: ../include/net-snmp/pdu_api.h
+./helpers/scalar_group.lo: ../include/net-snmp/mib_api.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/mib.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/parse.h
+./helpers/scalar_group.lo: ../include/net-snmp/varbind_api.h
 ./helpers/scalar_group.lo: ../include/net-snmp/config_api.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/read_config.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -3649,7 +3319,6 @@
 ./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
@@ -3687,67 +3356,63 @@
 ./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/system/linux.h
+./helpers/serialize.lo: ../include/net-snmp/system/sysv.h
+./helpers/serialize.lo: ../include/net-snmp/system/generic.h
+./helpers/serialize.lo: ../include/net-snmp/machine/generic.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
-./helpers/serialize.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/serialize.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/serialize.lo: ../include/net-snmp/library/mib.h
-./helpers/serialize.lo: ../include/net-snmp/mib_api.h
-./helpers/serialize.lo: ../include/net-snmp/library/parse.h
-./helpers/serialize.lo: ../include/net-snmp/library/oid_stash.h
-./helpers/serialize.lo: ../include/net-snmp/net-snmp-features.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmp.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/serialize.lo: ../include/net-snmp/library/getopt.h
 ./helpers/serialize.lo: ../include/net-snmp/utilities.h
+./helpers/serialize.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/serialize.lo: ../include/net-snmp/library/system.h
 ./helpers/serialize.lo: ../include/net-snmp/library/tools.h
 ./helpers/serialize.lo: ../include/net-snmp/library/int64.h
 ./helpers/serialize.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/serialize.lo: ../include/net-snmp/library/callback.h
 ./helpers/serialize.lo: ../include/net-snmp/library/data_list.h
+./helpers/serialize.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/serialize.lo: ../include/net-snmp/library/container.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/serialize.lo: ../include/net-snmp/version.h
+./helpers/serialize.lo: ../include/net-snmp/session_api.h
+./helpers/serialize.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/serialize.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/serialize.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/serialize.lo: ../include/net-snmp/pdu_api.h
+./helpers/serialize.lo: ../include/net-snmp/mib_api.h
+./helpers/serialize.lo: ../include/net-snmp/library/mib.h
+./helpers/serialize.lo: ../include/net-snmp/library/parse.h
+./helpers/serialize.lo: ../include/net-snmp/varbind_api.h
 ./helpers/serialize.lo: ../include/net-snmp/config_api.h
 ./helpers/serialize.lo: ../include/net-snmp/library/read_config.h
 ./helpers/serialize.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -3756,7 +3421,6 @@
 ./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
@@ -3794,174 +3458,63 @@
 ./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-features.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/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-features.h
+./helpers/stash_cache.lo: ../include/net-snmp/system/linux.h
+./helpers/stash_cache.lo: ../include/net-snmp/system/sysv.h
+./helpers/stash_cache.lo: ../include/net-snmp/system/generic.h
+./helpers/stash_cache.lo: ../include/net-snmp/machine/generic.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
-./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/stash_cache.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/stash_cache.lo: ../include/net-snmp/library/mib.h
-./helpers/stash_cache.lo: ../include/net-snmp/mib_api.h
-./helpers/stash_cache.lo: ../include/net-snmp/library/parse.h
-./helpers/stash_cache.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmp.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/stash_cache.lo: ../include/net-snmp/library/getopt.h
 ./helpers/stash_cache.lo: ../include/net-snmp/utilities.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/system.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/tools.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/int64.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/callback.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/data_list.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/stash_cache.lo: ../include/net-snmp/library/container.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/stash_cache.lo: ../include/net-snmp/version.h
+./helpers/stash_cache.lo: ../include/net-snmp/session_api.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/stash_cache.lo: ../include/net-snmp/pdu_api.h
+./helpers/stash_cache.lo: ../include/net-snmp/mib_api.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/mib.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/parse.h
+./helpers/stash_cache.lo: ../include/net-snmp/varbind_api.h
 ./helpers/stash_cache.lo: ../include/net-snmp/config_api.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/read_config.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -3970,7 +3523,6 @@
 ./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
@@ -4008,69 +3560,65 @@
 ./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_to_next.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-features.h
+./helpers/stash_to_next.lo: ../include/net-snmp/system/linux.h
+./helpers/stash_to_next.lo: ../include/net-snmp/system/sysv.h
+./helpers/stash_to_next.lo: ../include/net-snmp/system/generic.h
+./helpers/stash_to_next.lo: ../include/net-snmp/machine/generic.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
-./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/stash_to_next.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/stash_to_next.lo: ../include/net-snmp/library/mib.h
-./helpers/stash_to_next.lo: ../include/net-snmp/mib_api.h
-./helpers/stash_to_next.lo: ../include/net-snmp/library/parse.h
-./helpers/stash_to_next.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/stash_to_next.lo: ../include/net-snmp/library/getopt.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/utilities.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/system.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/tools.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/int64.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/callback.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/data_list.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/container.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/version.h
+./helpers/stash_to_next.lo: ../include/net-snmp/session_api.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/stash_to_next.lo: ../include/net-snmp/pdu_api.h
+./helpers/stash_to_next.lo: ../include/net-snmp/mib_api.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/mib.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/parse.h
+./helpers/stash_to_next.lo: ../include/net-snmp/varbind_api.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/config_api.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/read_config.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -4079,7 +3627,6 @@
 ./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
@@ -4117,69 +3664,65 @@
 ./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/stash_to_next.lo: ../include/net-snmp/agent/stash_to_next.h
 ./helpers/table_array.lo: ../include/net-snmp/net-snmp-config.h
-./helpers/table_array.lo: ../include/net-snmp/net-snmp-features.h
+./helpers/table_array.lo: ../include/net-snmp/system/linux.h
+./helpers/table_array.lo: ../include/net-snmp/system/sysv.h
+./helpers/table_array.lo: ../include/net-snmp/system/generic.h
+./helpers/table_array.lo: ../include/net-snmp/machine/generic.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
-./helpers/table_array.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/table_array.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/table_array.lo: ../include/net-snmp/library/mib.h
-./helpers/table_array.lo: ../include/net-snmp/mib_api.h
-./helpers/table_array.lo: ../include/net-snmp/library/parse.h
-./helpers/table_array.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmp.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/table_array.lo: ../include/net-snmp/library/getopt.h
 ./helpers/table_array.lo: ../include/net-snmp/utilities.h
+./helpers/table_array.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_array.lo: ../include/net-snmp/library/system.h
 ./helpers/table_array.lo: ../include/net-snmp/library/tools.h
 ./helpers/table_array.lo: ../include/net-snmp/library/int64.h
 ./helpers/table_array.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/table_array.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_array.lo: ../include/net-snmp/library/data_list.h
+./helpers/table_array.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/table_array.lo: ../include/net-snmp/library/container.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/table_array.lo: ../include/net-snmp/version.h
+./helpers/table_array.lo: ../include/net-snmp/session_api.h
+./helpers/table_array.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/table_array.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/table_array.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/table_array.lo: ../include/net-snmp/pdu_api.h
+./helpers/table_array.lo: ../include/net-snmp/mib_api.h
+./helpers/table_array.lo: ../include/net-snmp/library/mib.h
+./helpers/table_array.lo: ../include/net-snmp/library/parse.h
+./helpers/table_array.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_array.lo: ../include/net-snmp/config_api.h
 ./helpers/table_array.lo: ../include/net-snmp/library/read_config.h
 ./helpers/table_array.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -4188,7 +3731,6 @@
 ./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
@@ -4226,67 +3768,63 @@
 ./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-features.h
+./helpers/table.lo: ../include/net-snmp/system/linux.h
+./helpers/table.lo: ../include/net-snmp/system/sysv.h
+./helpers/table.lo: ../include/net-snmp/system/generic.h
+./helpers/table.lo: ../include/net-snmp/machine/generic.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/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
-./helpers/table.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/table.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/table.lo: ../include/net-snmp/library/mib.h
-./helpers/table.lo: ../include/net-snmp/mib_api.h
-./helpers/table.lo: ../include/net-snmp/library/parse.h
-./helpers/table.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/table.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/table.lo: ../include/net-snmp/library/snmp.h
 ./helpers/table.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/table.lo: ../include/net-snmp/library/getopt.h
 ./helpers/table.lo: ../include/net-snmp/utilities.h
+./helpers/table.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table.lo: ../include/net-snmp/library/system.h
 ./helpers/table.lo: ../include/net-snmp/library/tools.h
 ./helpers/table.lo: ../include/net-snmp/library/int64.h
 ./helpers/table.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/table.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/table.lo: ../include/net-snmp/library/callback.h
 ./helpers/table.lo: ../include/net-snmp/library/data_list.h
+./helpers/table.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/table.lo: ../include/net-snmp/library/container.h
 ./helpers/table.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/table.lo: ../include/net-snmp/version.h
+./helpers/table.lo: ../include/net-snmp/session_api.h
+./helpers/table.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/table.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/table.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/table.lo: ../include/net-snmp/pdu_api.h
+./helpers/table.lo: ../include/net-snmp/mib_api.h
+./helpers/table.lo: ../include/net-snmp/library/mib.h
+./helpers/table.lo: ../include/net-snmp/library/parse.h
+./helpers/table.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table.lo: ../include/net-snmp/config_api.h
 ./helpers/table.lo: ../include/net-snmp/library/read_config.h
 ./helpers/table.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -4295,7 +3833,6 @@
 ./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
@@ -4333,67 +3870,63 @@
 ./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/snmp_get_statistic.h
 ./helpers/table_container.lo: ../include/net-snmp/net-snmp-config.h
-./helpers/table_container.lo: ../include/net-snmp/net-snmp-features.h
+./helpers/table_container.lo: ../include/net-snmp/system/linux.h
+./helpers/table_container.lo: ../include/net-snmp/system/sysv.h
+./helpers/table_container.lo: ../include/net-snmp/system/generic.h
+./helpers/table_container.lo: ../include/net-snmp/machine/generic.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
-./helpers/table_container.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/table_container.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/table_container.lo: ../include/net-snmp/library/mib.h
-./helpers/table_container.lo: ../include/net-snmp/mib_api.h
-./helpers/table_container.lo: ../include/net-snmp/library/parse.h
-./helpers/table_container.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmp.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/table_container.lo: ../include/net-snmp/library/getopt.h
 ./helpers/table_container.lo: ../include/net-snmp/utilities.h
+./helpers/table_container.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_container.lo: ../include/net-snmp/library/system.h
 ./helpers/table_container.lo: ../include/net-snmp/library/tools.h
 ./helpers/table_container.lo: ../include/net-snmp/library/int64.h
 ./helpers/table_container.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/table_container.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_container.lo: ../include/net-snmp/library/data_list.h
+./helpers/table_container.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/table_container.lo: ../include/net-snmp/library/container.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/table_container.lo: ../include/net-snmp/version.h
+./helpers/table_container.lo: ../include/net-snmp/session_api.h
+./helpers/table_container.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/table_container.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/table_container.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/table_container.lo: ../include/net-snmp/pdu_api.h
+./helpers/table_container.lo: ../include/net-snmp/mib_api.h
+./helpers/table_container.lo: ../include/net-snmp/library/mib.h
+./helpers/table_container.lo: ../include/net-snmp/library/parse.h
+./helpers/table_container.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_container.lo: ../include/net-snmp/config_api.h
 ./helpers/table_container.lo: ../include/net-snmp/library/read_config.h
 ./helpers/table_container.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -4402,7 +3935,6 @@
 ./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
@@ -4440,67 +3972,63 @@
 ./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-features.h
+./helpers/table_data.lo: ../include/net-snmp/system/linux.h
+./helpers/table_data.lo: ../include/net-snmp/system/sysv.h
+./helpers/table_data.lo: ../include/net-snmp/system/generic.h
+./helpers/table_data.lo: ../include/net-snmp/machine/generic.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
-./helpers/table_data.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/table_data.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/table_data.lo: ../include/net-snmp/library/mib.h
-./helpers/table_data.lo: ../include/net-snmp/mib_api.h
-./helpers/table_data.lo: ../include/net-snmp/library/parse.h
-./helpers/table_data.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmp.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/table_data.lo: ../include/net-snmp/library/getopt.h
 ./helpers/table_data.lo: ../include/net-snmp/utilities.h
+./helpers/table_data.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_data.lo: ../include/net-snmp/library/system.h
 ./helpers/table_data.lo: ../include/net-snmp/library/tools.h
 ./helpers/table_data.lo: ../include/net-snmp/library/int64.h
 ./helpers/table_data.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/table_data.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_data.lo: ../include/net-snmp/library/data_list.h
+./helpers/table_data.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/table_data.lo: ../include/net-snmp/library/container.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/table_data.lo: ../include/net-snmp/version.h
+./helpers/table_data.lo: ../include/net-snmp/session_api.h
+./helpers/table_data.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/table_data.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/table_data.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/table_data.lo: ../include/net-snmp/pdu_api.h
+./helpers/table_data.lo: ../include/net-snmp/mib_api.h
+./helpers/table_data.lo: ../include/net-snmp/library/mib.h
+./helpers/table_data.lo: ../include/net-snmp/library/parse.h
+./helpers/table_data.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_data.lo: ../include/net-snmp/config_api.h
 ./helpers/table_data.lo: ../include/net-snmp/library/read_config.h
 ./helpers/table_data.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -4509,7 +4037,6 @@
 ./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
@@ -4547,67 +4074,63 @@
 ./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-features.h
+./helpers/table_dataset.lo: ../include/net-snmp/system/linux.h
+./helpers/table_dataset.lo: ../include/net-snmp/system/sysv.h
+./helpers/table_dataset.lo: ../include/net-snmp/system/generic.h
+./helpers/table_dataset.lo: ../include/net-snmp/machine/generic.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
-./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/table_dataset.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/table_dataset.lo: ../include/net-snmp/library/mib.h
-./helpers/table_dataset.lo: ../include/net-snmp/mib_api.h
-./helpers/table_dataset.lo: ../include/net-snmp/library/parse.h
-./helpers/table_dataset.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmp.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/table_dataset.lo: ../include/net-snmp/library/getopt.h
 ./helpers/table_dataset.lo: ../include/net-snmp/utilities.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/system.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/tools.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/int64.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/data_list.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/table_dataset.lo: ../include/net-snmp/library/container.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/table_dataset.lo: ../include/net-snmp/version.h
+./helpers/table_dataset.lo: ../include/net-snmp/session_api.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/table_dataset.lo: ../include/net-snmp/pdu_api.h
+./helpers/table_dataset.lo: ../include/net-snmp/mib_api.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/mib.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/parse.h
+./helpers/table_dataset.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_dataset.lo: ../include/net-snmp/config_api.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/read_config.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -4616,7 +4139,6 @@
 ./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
@@ -4654,67 +4176,63 @@
 ./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-features.h
+./helpers/table_iterator.lo: ../include/net-snmp/system/linux.h
+./helpers/table_iterator.lo: ../include/net-snmp/system/sysv.h
+./helpers/table_iterator.lo: ../include/net-snmp/system/generic.h
+./helpers/table_iterator.lo: ../include/net-snmp/machine/generic.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
-./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/table_iterator.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/table_iterator.lo: ../include/net-snmp/library/mib.h
-./helpers/table_iterator.lo: ../include/net-snmp/mib_api.h
-./helpers/table_iterator.lo: ../include/net-snmp/library/parse.h
-./helpers/table_iterator.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmp.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/table_iterator.lo: ../include/net-snmp/library/getopt.h
 ./helpers/table_iterator.lo: ../include/net-snmp/utilities.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/system.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/tools.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/int64.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/data_list.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/table_iterator.lo: ../include/net-snmp/library/container.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/table_iterator.lo: ../include/net-snmp/version.h
+./helpers/table_iterator.lo: ../include/net-snmp/session_api.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/table_iterator.lo: ../include/net-snmp/pdu_api.h
+./helpers/table_iterator.lo: ../include/net-snmp/mib_api.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/mib.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/parse.h
+./helpers/table_iterator.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_iterator.lo: ../include/net-snmp/config_api.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/read_config.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -4723,7 +4241,6 @@
 ./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
@@ -4761,68 +4278,64 @@
 ./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-features.h
+./helpers/table_row.lo: ../include/net-snmp/system/linux.h
+./helpers/table_row.lo: ../include/net-snmp/system/sysv.h
+./helpers/table_row.lo: ../include/net-snmp/system/generic.h
+./helpers/table_row.lo: ../include/net-snmp/machine/generic.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
-./helpers/table_row.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/table_row.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/table_row.lo: ../include/net-snmp/library/mib.h
-./helpers/table_row.lo: ../include/net-snmp/mib_api.h
-./helpers/table_row.lo: ../include/net-snmp/library/parse.h
-./helpers/table_row.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmp.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/table_row.lo: ../include/net-snmp/library/getopt.h
 ./helpers/table_row.lo: ../include/net-snmp/utilities.h
+./helpers/table_row.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_row.lo: ../include/net-snmp/library/system.h
 ./helpers/table_row.lo: ../include/net-snmp/library/tools.h
 ./helpers/table_row.lo: ../include/net-snmp/library/int64.h
 ./helpers/table_row.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/table_row.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_row.lo: ../include/net-snmp/library/data_list.h
+./helpers/table_row.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/table_row.lo: ../include/net-snmp/library/container.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/table_row.lo: ../include/net-snmp/version.h
+./helpers/table_row.lo: ../include/net-snmp/session_api.h
+./helpers/table_row.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/table_row.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/table_row.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/table_row.lo: ../include/net-snmp/pdu_api.h
+./helpers/table_row.lo: ../include/net-snmp/mib_api.h
+./helpers/table_row.lo: ../include/net-snmp/library/mib.h
+./helpers/table_row.lo: ../include/net-snmp/library/parse.h
+./helpers/table_row.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_row.lo: ../include/net-snmp/config_api.h
 ./helpers/table_row.lo: ../include/net-snmp/library/read_config.h
 ./helpers/table_row.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -4831,7 +4344,6 @@
 ./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
@@ -4869,67 +4381,63 @@
 ./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-features.h
+./helpers/table_tdata.lo: ../include/net-snmp/system/linux.h
+./helpers/table_tdata.lo: ../include/net-snmp/system/sysv.h
+./helpers/table_tdata.lo: ../include/net-snmp/system/generic.h
+./helpers/table_tdata.lo: ../include/net-snmp/machine/generic.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
-./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/table_tdata.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/table_tdata.lo: ../include/net-snmp/library/mib.h
-./helpers/table_tdata.lo: ../include/net-snmp/mib_api.h
-./helpers/table_tdata.lo: ../include/net-snmp/library/parse.h
-./helpers/table_tdata.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmp.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/table_tdata.lo: ../include/net-snmp/library/getopt.h
 ./helpers/table_tdata.lo: ../include/net-snmp/utilities.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/system.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/tools.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/int64.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/data_list.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/table_tdata.lo: ../include/net-snmp/library/container.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/table_tdata.lo: ../include/net-snmp/version.h
+./helpers/table_tdata.lo: ../include/net-snmp/session_api.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/table_tdata.lo: ../include/net-snmp/pdu_api.h
+./helpers/table_tdata.lo: ../include/net-snmp/mib_api.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/mib.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/parse.h
+./helpers/table_tdata.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_tdata.lo: ../include/net-snmp/config_api.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/read_config.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -4938,7 +4446,6 @@
 ./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
@@ -4976,67 +4483,63 @@
 ./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-features.h
+./helpers/watcher.lo: ../include/net-snmp/system/linux.h
+./helpers/watcher.lo: ../include/net-snmp/system/sysv.h
+./helpers/watcher.lo: ../include/net-snmp/system/generic.h
+./helpers/watcher.lo: ../include/net-snmp/machine/generic.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
-./helpers/watcher.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./helpers/watcher.lo: ../include/net-snmp/library/ucd_compat.h
-./helpers/watcher.lo: ../include/net-snmp/library/mib.h
-./helpers/watcher.lo: ../include/net-snmp/mib_api.h
-./helpers/watcher.lo: ../include/net-snmp/library/parse.h
-./helpers/watcher.lo: ../include/net-snmp/library/oid_stash.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmp_impl.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmp.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmp-tc.h
-./helpers/watcher.lo: ../include/net-snmp/library/getopt.h
 ./helpers/watcher.lo: ../include/net-snmp/utilities.h
+./helpers/watcher.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/watcher.lo: ../include/net-snmp/library/system.h
 ./helpers/watcher.lo: ../include/net-snmp/library/tools.h
 ./helpers/watcher.lo: ../include/net-snmp/library/int64.h
 ./helpers/watcher.lo: ../include/net-snmp/library/mt_support.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/watcher.lo: ../include/net-snmp/library/callback.h
 ./helpers/watcher.lo: ../include/net-snmp/library/data_list.h
+./helpers/watcher.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./helpers/watcher.lo: ../include/net-snmp/library/container.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmp_assert.h
 ./helpers/watcher.lo: ../include/net-snmp/version.h
+./helpers/watcher.lo: ../include/net-snmp/session_api.h
+./helpers/watcher.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/watcher.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./helpers/watcher.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./helpers/watcher.lo: ../include/net-snmp/pdu_api.h
+./helpers/watcher.lo: ../include/net-snmp/mib_api.h
+./helpers/watcher.lo: ../include/net-snmp/library/mib.h
+./helpers/watcher.lo: ../include/net-snmp/library/parse.h
+./helpers/watcher.lo: ../include/net-snmp/varbind_api.h
 ./helpers/watcher.lo: ../include/net-snmp/config_api.h
 ./helpers/watcher.lo: ../include/net-snmp/library/read_config.h
 ./helpers/watcher.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -5045,7 +4548,6 @@
 ./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
@@ -5083,67 +4585,63 @@
 ./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/system/linux.h
+./mibgroup/header_complex.lo: ../include/net-snmp/system/sysv.h
+./mibgroup/header_complex.lo: ../include/net-snmp/system/generic.h
+./mibgroup/header_complex.lo: ../include/net-snmp/machine/generic.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
-./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibgroup/header_complex.lo: ../include/net-snmp/library/ucd_compat.h
-./mibgroup/header_complex.lo: ../include/net-snmp/library/mib.h
-./mibgroup/header_complex.lo: ../include/net-snmp/mib_api.h
-./mibgroup/header_complex.lo: ../include/net-snmp/library/parse.h
-./mibgroup/header_complex.lo: ../include/net-snmp/library/oid_stash.h
-./mibgroup/header_complex.lo: ../include/net-snmp/net-snmp-features.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_impl.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp-tc.h
-./mibgroup/header_complex.lo: ../include/net-snmp/library/getopt.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/utilities.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_client.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/system.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/tools.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/int64.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/mt_support.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_alarm.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/callback.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/data_list.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/container.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_assert.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/version.h
+./mibgroup/header_complex.lo: ../include/net-snmp/session_api.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_transport.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibgroup/header_complex.lo: ../include/net-snmp/pdu_api.h
+./mibgroup/header_complex.lo: ../include/net-snmp/mib_api.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/mib.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/parse.h
+./mibgroup/header_complex.lo: ../include/net-snmp/varbind_api.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/config_api.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/read_config.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -5152,7 +4650,6 @@
 ./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
@@ -5190,69 +4687,69 @@
 ./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/kernel_sunos5.lo: ../include/net-snmp/system/linux.h
+./mibgroup/kernel_sunos5.lo: ../include/net-snmp/system/sysv.h
+./mibgroup/kernel_sunos5.lo: ../include/net-snmp/system/generic.h
+./mibgroup/kernel_sunos5.lo: ../include/net-snmp/machine/generic.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/net-snmp-config.h
-./mibgroup/testhandler.lo: ../include/net-snmp/net-snmp-features.h
+./mibgroup/testhandler.lo: ../include/net-snmp/system/linux.h
+./mibgroup/testhandler.lo: ../include/net-snmp/system/sysv.h
+./mibgroup/testhandler.lo: ../include/net-snmp/system/generic.h
+./mibgroup/testhandler.lo: ../include/net-snmp/machine/generic.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
-./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibgroup/testhandler.lo: ../include/net-snmp/library/ucd_compat.h
-./mibgroup/testhandler.lo: ../include/net-snmp/library/mib.h
-./mibgroup/testhandler.lo: ../include/net-snmp/mib_api.h
-./mibgroup/testhandler.lo: ../include/net-snmp/library/parse.h
-./mibgroup/testhandler.lo: ../include/net-snmp/library/oid_stash.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_impl.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp-tc.h
-./mibgroup/testhandler.lo: ../include/net-snmp/library/getopt.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/utilities.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_client.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/system.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/tools.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/int64.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/mt_support.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_alarm.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/callback.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/data_list.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/container.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_assert.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/version.h
+./mibgroup/testhandler.lo: ../include/net-snmp/session_api.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_transport.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibgroup/testhandler.lo: ../include/net-snmp/pdu_api.h
+./mibgroup/testhandler.lo: ../include/net-snmp/mib_api.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/mib.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/parse.h
+./mibgroup/testhandler.lo: ../include/net-snmp/varbind_api.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/config_api.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/read_config.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -5261,7 +4758,6 @@
 ./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
@@ -5299,68 +4795,64 @@
 ./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-features.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/system/linux.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/system/sysv.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/system/generic.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/machine/generic.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
-./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibgroup/util_funcs.lo: ../include/net-snmp/library/ucd_compat.h
-./mibgroup/util_funcs.lo: ../include/net-snmp/library/mib.h
-./mibgroup/util_funcs.lo: ../include/net-snmp/mib_api.h
-./mibgroup/util_funcs.lo: ../include/net-snmp/library/parse.h
-./mibgroup/util_funcs.lo: ../include/net-snmp/library/oid_stash.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_impl.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp-tc.h
-./mibgroup/util_funcs.lo: ../include/net-snmp/library/getopt.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/utilities.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_client.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/system.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/tools.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/int64.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/mt_support.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_alarm.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/callback.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/data_list.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/container.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_assert.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/version.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/session_api.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_transport.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibgroup/util_funcs.lo: ../include/net-snmp/pdu_api.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/mib_api.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/mib.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/parse.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/varbind_api.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/config_api.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/read_config.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -5369,7 +4861,6 @@
 ./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
@@ -5406,13 +4897,14 @@
 ./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/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/header_generic.h
-./mibgroup/util_funcs.lo: ./mibgroup/util_funcs/header_simple_table.h
-./mibgroup/util_funcs.lo: ./mibgroup/util_funcs/MIB_STATS_CACHE_TIMEOUT.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: ./mibgroup/utilities/execute.h
+./mibgroup/util_funcs.lo: ./mibgroup/ucd-snmp/errormib.h
+./mibgroup/util_funcs.lo: ../agent/mibgroup/mibdefs.h
 ./mibgroup/winExtDLL.lo: ../include/net-snmp/net-snmp-config.h
-./mibgroup/winExtDLL.lo: ../include/net-snmp/net-snmp-features.h
+./mibgroup/winExtDLL.lo: ../include/net-snmp/system/linux.h
+./mibgroup/winExtDLL.lo: ../include/net-snmp/system/sysv.h
+./mibgroup/winExtDLL.lo: ../include/net-snmp/system/generic.h
+./mibgroup/winExtDLL.lo: ../include/net-snmp/machine/generic.h
 ./mibgroup/winExtDLL.lo: ../include/net-snmp/agent/mib_module_config.h
diff --git a/agent/Makefile.in b/agent/Makefile.in
index 748b01c..4c8bc51 100644
--- a/agent/Makefile.in
+++ b/agent/Makefile.in
@@ -3,7 +3,6 @@
 #
 
 top_builddir	= ..
-mysubdir=agent
 
 # use GNU vpath, if available, to only set a path for source and headers
 # VPATH will pick up objects too, which is bad if you are sharing a
@@ -17,18 +16,15 @@ mysubdir=agent
 # what to install
 #
 SUBDIRS=helpers mibgroup
-FTSUBDIRS=mibgroup helpers
 
 INSTALLSBINPROGS= @SNMPD@
 INSTALLLIBS	= libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION)
 INSTALLPOSTLIBS	= libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION)
 
 INCLUDESUBDIR=agent
-HEADERS=\
-	agent_read_config.h \
+INCLUDESUBDIRHEADERS=agent_read_config.h \
 	agent_registry.h \
 	agent_index.h \
-	agent_sysORTable.h \
 	agent_trap.h \
 	auto_nlist.h \
 	ds_agent.h \
@@ -38,38 +34,7 @@ HEADERS=\
 	agent_handler.h \
 	net-snmp-agent-includes.h \
 	mib_modules.h \
-	agent_callbacks.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)
+	agent_callbacks.h
 
 INSTALLBUILTSUBDIRHEADERS=../include/net-snmp/agent/mib_module_config.h \
 			  ../include/net-snmp/agent/agent_module_config.h \
@@ -77,8 +42,7 @@ INSTALLBUILTSUBDIRHEADERS=../include/net-snmp/agent/mib_module_config.h \
 INSTALLBUILTSUBDIR=agent
 
 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
+INCLUDEMIBGROUPDIRHEADERS=util_funcs.h
 
 OTHERINSTALL=installmibgroupheaders @EMBEDPERLINSTALL@
 OTHERUNINSTALL=@EMBEDPERLUNINSTALL@
@@ -96,7 +60,6 @@ INSTALLUCDHEADERS= \
 	agent_index.h	\
 	agent_read_config.h \
 	agent_registry.h \
-	agent_sysORTable.h \
 	agent_trap.h	\
 	auto_nlist.h	\
 	ds_agent.h	\
@@ -112,16 +75,17 @@ INSTALLUCDHEADERS= \
 # 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)
 
+LOCAL_LIBS	= -L../snmplib/.libs -L../snmplib -L./.libs -L./helpers/.libs -L./helpers
 LAGENTLIBS	= @LAGENTLIBS@
 LMIBLIBS	= @LMIBLIBS@
-VAL_LIBS	= @VAL_LIBS@
 PERLLDOPTS_FOR_APPS = @PERLLDOPTS_FOR_APPS@
 PERLLDOPTS_FOR_LIBS = @PERLLDOPTS_FOR_LIBS@
-LIBS		= $(USELIBS) @AGENTLIBS@ $(PERLLDOPTS_FOR_APPS) $(VAL_LIBS)
-OUR_AGENT_LIBS	= $(AGENTLIB) $(MIBLIB) $(LIBS) @DLLIBS@
+LIBS		= $(USELIBS) @AGENTLIBS@ $(PERLLDOPTS_FOR_APPS)
+OUR_AGENT_LIBS	= $(AGENTLIB) $(HELPERLIB) $(MIBLIB) $(LIBS) @DLLIBS@
 CPPFLAGS	= $(TOP_INCLUDES) -I. $(AGENT_INCLUDES) $(MIBGROUP_INCLUDES) \
 		  $(SNMPLIB_INCLUDES) @CPPFLAGS@ 
 
@@ -132,149 +96,30 @@ CPPFLAGS	= $(TOP_INCLUDES) -I. $(AGENT_INCLUDES) $(MIBGROUP_INCLUDES) \
 
 # libnetsnmpmibs objects.
 @mibgroup_list_lo@
- at mibgroup_list_ft@
 @mibgroup_list_o@
 @agentgroup_list_lo@
- at agentgroup_list_ft@
 @agentgroup_list_o@
-FTMIBOBJS	= $(mibgroup_list_ft) mib_modules.ft auto_nlist.ft
 LMIBOBJS	= $(mibgroup_list_lo) mib_modules.lo auto_nlist.lo
 MIBOBJS		= $(mibgroup_list_o) mib_modules.o auto_nlist.o
 
 # libnetsnmpagent objects
-LIBAGENTOBJS= \
-	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 \
-	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@
-
-LLIBAGENTOBJS= \
-	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 \
-	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@
-
-LLIBAGENTFTS= \
-	helpers/all_helpers.ft \
-	helpers/baby_steps.ft \
-	helpers/bulk_to_next.ft \
-	helpers/cache_handler.ft \
-	helpers/debug_handler.ft \
-	helpers/instance.ft \
-	helpers/mode_end_call.ft \
-	helpers/multiplexer.ft \
-	helpers/null.ft \
-	helpers/old_api.ft \
-	helpers/read_only.ft \
-	helpers/row_merge.ft \
-	helpers/scalar.ft \
-	helpers/scalar_group.ft \
-	helpers/serialize.ft \
-	helpers/snmp_get_statistic.ft \
-	helpers/stash_cache.ft \
-	helpers/stash_to_next.ft \
-	helpers/table.ft \
-	helpers/table_array.ft \
-	helpers/table_container.ft \
-	helpers/table_data.ft \
-	helpers/table_dataset.ft \
-	helpers/table_iterator.ft \
-	helpers/table_row.ft \
-	helpers/table_tdata.ft \
-	helpers/watcher.ft \
-	agent_handler.ft \
-	agent_index.ft \
-	agent_read_config.ft \
-	agent_registry.ft \
-	agent_sysORTable.ft \
-	agent_trap.ft \
-	kernel.ft \
-	snmp_agent.ft \
-	snmp_vars.ft \
-	$(agentgroup_list_ft) \
-	@OTHERAGENTLIBLFTS@
+LIBAGENTOBJS=snmp_agent.o snmp_vars.o agent_read_config.o \
+	agent_registry.o agent_index.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_trap.lo kernel.lo \
+	agent_handler.lo $(agentgroup_list_lo) @OTHERAGENTLIBLOBJS@
 
 # The agent objects.
 AGENTOBJS=snmpd.o @other_agentobjs@
 LAGENTOBJS=snmpd.lo @other_lagentobjs@
-FTAGENTOBJS=snmpd.ft @other_ftagentobjs@
 
 #
 # Define OBJS and LOBJS for clean target (just this directory)
 #
 OBJS		= $(LIBAGENTOBJS)  $(AGENTOBJS)  mib_modules.o  auto_nlist.o
 LOBJS		= $(LLIBAGENTOBJS) $(LAGENTOBJS) mib_modules.lo auto_nlist.lo
-FTOBJS		= $(LLIBAGENTFTS) $(FTAGENTOBJS) mib_modules.ft auto_nlist.ft
 
-FEATUREFILE     = $(top_builddir)/include/net-snmp/agent/features.h
 
 all: agentlib subdirs miblib $(INSTALLBINPROGS) $(INSTALLSBINPROGS)
 
@@ -282,33 +127,34 @@ all: agentlib subdirs miblib $(INSTALLBINPROGS) $(INSTALLSBINPROGS)
 # build stuff targets
 #
 getkstat: getkstat.o
-	$(CC) $(CFLAGS) -o $@ $? $(LIBS)
+	$(CC) $(CFLAGS) -o $@ $? $(LOCAL_LIBS) $(LIBS)
 
 getkstat.o: mibgroup/kernel_sunos5.c
 	$(CC) $(CFLAGS) -o $@ -D_GETKSTAT_TEST -DDODEBUG -c $? 
 
 getmibstat: getmibstat.o
-	$(CC) $(CFLAGS) -o $@ $? $(LIBS)
+	$(CC) $(CFLAGS) -o $@ $? $(LOCAL_LIBS) $(LIBS)
 
 getmibstat.o: mibgroup/kernel_sunos5.c
 	$(CC) $(CFLAGS) -o $@ -D_GETMIBSTAT_TEST -DDODEBUG -c $? 
 
 snmpd$(EXEEXT):	${LAGENTOBJS} $(USELIBS) $(AGENTLIB) $(HELPERLIB) $(MIBLIB) $(LIBTARG) 
-	$(LINK) $(CFLAGS) -o $@ ${LAGENTOBJS} ${LDFLAGS} ${OUR_AGENT_LIBS}
+	$(LINK) $(CFLAGS) -o $@ ${LAGENTOBJS} $(LOCAL_LIBS) ${LDFLAGS} ${OUR_AGENT_LIBS}
+
 
 libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION):    ${LLIBAGENTOBJS} $(USELIBS)
-	$(LIB_LD_CMD) $(AGENTLIB) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} @LD_NO_UNDEFINED@ $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS) @AGENTLIBS@
+	$(LIB_LD_CMD) $(AGENTLIB) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS)
 	$(RANLIB) $(AGENTLIB)
 
-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@
+libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION): ${LMIBOBJS} $(HELPERLIB) $(AGENTLIB) $(USELIBS)
+	$(LIB_LD_CMD) $(MIBLIB) ${LMIBOBJS} $(HELPERLIB) $(AGENTLIB) $(USELIBS) ${LMIBLIBS} $(LDFLAGS) $(LIB_LD_LIBS)
 	$(RANLIB) $(MIBLIB)
 
 agentlib: $(AGENTLIB)
 
 miblib: $(MIBLIB)
 
-libs: $(AGENTLIB) $(MIBLIB)
+libs: $(INSTALLLIBS)
 
 embedperlinstall:
 	  @$(SHELL) $(srcdir)/../mkinstalldirs $(INSTALL_PREFIX)$(snmplibdir)
@@ -320,16 +166,15 @@ embedperluninstall:
 	  @echo "removed snmp_perl.pl from $(INSTALL_PREFIX)$(snmplibdir)"
 
 installmibgroupheaders:
-	@for it in $(INCLUDEMIBGROUPDIRHEADERS) ; do \
-		itd=`dirname "$(INSTALL_PREFIX)$(includedir)/agent/$$it"` ; \
-		if [ ! -d "$$itd" ] ; then \
-			echo "creating directory $$itd" ; \
-			$(SHELL) "$(top_srcdir)/mkinstalldirs" "$$itd" ; \
-		fi ; \
-		$(INSTALL_DATA) "$(top_srcdir)/$(INCLUDEMIBGROUPDIR)/$$it" \
-			"$$itd" ; \
-		echo "installing $$it in $$itd" ; \
-	done
+	@if test "$(INCLUDEMIBGROUPDIRHEADERS)" != "" ; then \
+                echo creating directory $(INSTALL_PREFIX)$(includedir)/agent ; \
+                it="$(INCLUDEMIBGROUPDIRHEADERS)" ; \
+                $(SHELL) $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$(includedir)/agent ; \
+                for i in $$it ; do \
+                        $(INSTALL_DATA) $(top_srcdir)/$(INCLUDEMIBGROUPDIR)/$$i $(INSTALL_PREFIX)$(includedir)/agent ; \
+                        echo "installing $$i in $(INSTALL_PREFIX)$(includedir)/agent" ; \
+                done \
+        fi
 
 @module_list_deps@
 @agent_module_list_deps@
@@ -339,7 +184,3 @@ mib_modules.lo: mibgroup/mib_module_inits.h
 #
 # dependency for snmplib object. it's here because the headers listed
 # are relative to the agent directory.
-
-subdirs: agentlib
-# wait for agentlib before building 'subdirs' target
-
diff --git a/agent/agent_handler.c b/agent/agent_handler.c
index 59e9613..3c6c6a7 100644
--- a/agent/agent_handler.c
+++ b/agent/agent_handler.c
@@ -9,7 +9,6 @@
  * distributed with the Net-SNMP package.
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <sys/types.h>
 
@@ -22,9 +21,6 @@
 
 #include <net-snmp/agent/bulk_to_next.h>
 
-netsnmp_feature_child_of(agent_handler, libnetsnmpagent)
-
-netsnmp_feature_child_of(handler_mark_requests_as_delegated, agent_handler)
 
 static netsnmp_mib_handler *_clone_handler(netsnmp_mib_handler *it);
 
@@ -88,11 +84,9 @@ static netsnmp_mib_handler *_clone_handler(netsnmp_mib_handler *it);
  * @{
  */
 
-/** Creates a MIB handler structure.
- *  The new structure is allocated and filled using the given name
- *  and access method.
+/** creates a netsnmp_mib_handler structure given a name and a access method.
  *  The returned handler should then be @link netsnmp_register_handler()
- *  registered @endlink.
+ *  registered. at endlink
  *
  *  @param name is the handler name and is copied then assigned to
  *              netsnmp_mib_handler->handler_name
@@ -123,9 +117,8 @@ netsnmp_create_handler(const char *name,
     return ret;
 }
 
-/** 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
+/** 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
@@ -140,7 +133,7 @@ netsnmp_create_handler(const char *name,
  *
  *  @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, 
@@ -169,7 +162,7 @@ netsnmp_create_handler(const char *name,
 netsnmp_handler_registration *
 netsnmp_handler_registration_create(const char *name,
                                     netsnmp_mib_handler *handler,
-                                    const oid * reg_oid, size_t reg_oid_len,
+                                    oid * reg_oid, size_t reg_oid_len,
                                     int modes)
 {
     netsnmp_handler_registration *the_reg;
@@ -186,68 +179,25 @@ netsnmp_handler_registration_create(const char *name,
     the_reg->priority = DEFAULT_MIB_PRIORITY;
     if (name)
         the_reg->handlerName = strdup(name);
-    the_reg->rootoid = snmp_duplicate_objid(reg_oid, reg_oid_len);
+    memdup((u_char **) & the_reg->rootoid, (const u_char *) reg_oid,
+           reg_oid_len * sizeof(oid));
     the_reg->rootoid_len = reg_oid_len;
     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 *
-                                    handler_access_method, const oid * reg_oid,
+                                    handler_access_method, oid * reg_oid,
                                     size_t reg_oid_len, int modes)
 {
-    netsnmp_handler_registration *rv = NULL;
-    netsnmp_mib_handler *handler =
-        netsnmp_create_handler(name, handler_access_method);
-    if (handler) {
-        rv = netsnmp_handler_registration_create(
-            name, handler, reg_oid, reg_oid_len, modes);
-        if (!rv)
-            netsnmp_handler_free(handler);
-    }
-    return rv;
+    return
+        netsnmp_handler_registration_create(name,
+                                            netsnmp_create_handler(name, handler_access_method),
+                                            reg_oid, reg_oid_len, modes);
 }
 
-/** 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()
- */
+/** register a handler, as defined by the netsnmp_handler_registration pointer. */
 int
 netsnmp_register_handler(netsnmp_handler_registration *reginfo)
 {
@@ -312,18 +262,7 @@ netsnmp_register_handler(netsnmp_handler_registration *reginfo)
                                 reginfo, 1);
 }
 
-/** 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()
- */
+/** unregister a handler, as defined by the netsnmp_handler_registration pointer. */
 int
 netsnmp_unregister_handler(netsnmp_handler_registration *reginfo)
 {
@@ -333,21 +272,7 @@ netsnmp_unregister_handler(netsnmp_handler_registration *reginfo)
                                   reginfo->contextName);
 }
 
-/** 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()
- */
+/** register a handler, as defined by the netsnmp_handler_registration pointer. */
 int
 netsnmp_register_handler_nocallback(netsnmp_handler_registration *reginfo)
 {
@@ -395,16 +320,11 @@ netsnmp_register_handler_nocallback(netsnmp_handler_registration *reginfo)
                                 reginfo, 0);
 }
 
-/** 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()
- */
+/** inject a new handler into the calling chain of the handlers
+   definedy by the netsnmp_handler_registration pointer.  The new
+   handler is injected after the before_what handler, or if NULL at
+   the top of the list and hence will be the new handler to be called
+   first.*/
 int
 netsnmp_inject_handler_before(netsnmp_handler_registration *reginfo,
                               netsnmp_mib_handler *handler,
@@ -458,15 +378,10 @@ netsnmp_inject_handler_before(netsnmp_handler_registration *reginfo,
     return SNMPERR_SUCCESS;
 }
 
-/** 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()
- */
+/** inject a new handler into the calling chain of the handlers
+   definedy by the netsnmp_handler_registration pointer.  The new handler is
+   injected at the top of the list and hence will be the new handler
+   to be called first.*/
 int
 netsnmp_inject_handler(netsnmp_handler_registration *reginfo,
                        netsnmp_mib_handler *handler)
@@ -474,13 +389,7 @@ netsnmp_inject_handler(netsnmp_handler_registration *reginfo,
     return netsnmp_inject_handler_before(reginfo, handler, NULL);
 }
 
-/** 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.
- */
+/** calls a handler with with appropriate NULL checking of arguments, etc. */
 NETSNMP_INLINE int
 netsnmp_call_handler(netsnmp_mib_handler *next_handler,
                      netsnmp_handler_registration *reginfo,
@@ -501,55 +410,53 @@ netsnmp_call_handler(netsnmp_mib_handler *next_handler,
     }
 
     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;
-            }
-            /*
-             * 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;
+    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;
         }
-
-        DEBUGMSGTL(("handler:calling", "calling handler %s for mode %s\n",
-                    next_handler->handler_name,
-                    se_find_label_in_slist("agent_mode", reqinfo->mode)));
-
         /*
-         * XXX: define acceptable return statuses
+         * 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.
          */
-        ret = (*nh) (next_handler, reginfo, reqinfo, requests);
+        return SNMP_ERR_NOERROR;
+    }
 
-        DEBUGMSGTL(("handler:returned", "handler %s returned %d\n",
-                    next_handler->handler_name, ret));
+    DEBUGMSGTL(("handler:calling", "calling handler %s for mode %s\n",
+                next_handler->handler_name,
+                se_find_label_in_slist("agent_mode", reqinfo->mode)));
 
-        if (! (next_handler->flags & MIB_HANDLER_AUTO_NEXT))
-            break;
+    /*
+     * XXX: define acceptable return statuses 
+     */
+    ret = (*nh) (next_handler, reginfo, reqinfo, requests);
 
-        /*
-         * 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;
-        }
+    DEBUGMSGTL(("handler:returned", "handler %s returned %d\n",
+                next_handler->handler_name, ret));
 
-        next_handler = next_handler->next;
+    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;
 
     } while(next_handler);
 
     return ret;
 }
 
-/** @private
- *  Calls all the MIB Handlers in registration struct for a given mode.
- *
- *  @return Returns SNMPERR_SUCCESS or SNMP_ERR_* error code.
+/** @internal
+ *  calls all the handlers for a given mode.
  */
 int
 netsnmp_call_handlers(netsnmp_handler_registration *reginfo,
@@ -580,7 +487,6 @@ netsnmp_call_handlers(netsnmp_handler_registration *reginfo,
             return SNMP_ERR_NOERROR;    /* legal */
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
     case MODE_SET_RESERVE2:
     case MODE_SET_ACTION:
@@ -595,7 +501,6 @@ netsnmp_call_handlers(netsnmp_handler_registration *reginfo,
             return SNMP_ERR_NOERROR;
         }
         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
     default:
         snmp_log(LOG_ERR, "unknown mode in netsnmp_call_handlers! bug!\n");
@@ -613,13 +518,8 @@ netsnmp_call_handlers(netsnmp_handler_registration *reginfo,
     return status;
 }
 
-/** @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.
- */
+/** calls the next handler in the chain after the current one with
+   with appropriate NULL checking, etc. */
 NETSNMP_INLINE int
 netsnmp_call_next_handler(netsnmp_mib_handler *current,
                           netsnmp_handler_registration *reginfo,
@@ -640,15 +540,8 @@ netsnmp_call_next_handler(netsnmp_mib_handler *current,
     return netsnmp_call_handler(current->next, reginfo, reqinfo, requests);
 }
 
-/** @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_feature_child_of(netsnmp_call_next_handler_one_request,netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_CALL_NEXT_HANDLER_ONE_REQUEST
+/** calls the next handler in the chain after the current one with
+   with appropriate NULL checking, etc. */
 NETSNMP_INLINE int
 netsnmp_call_next_handler_one_request(netsnmp_mib_handler *current,
                                       netsnmp_handler_registration *reginfo,
@@ -670,15 +563,8 @@ netsnmp_call_next_handler_one_request(netsnmp_mib_handler *current,
     requests->next = request;
     return ret;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_NETSNMP_CALL_NEXT_HANDLER_ONE_REQUEST */
 
-/** 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
- */
+/** free's the resourceses associated with a given handler */
 void
 netsnmp_handler_free(netsnmp_mib_handler *handler)
 {
@@ -689,6 +575,10 @@ netsnmp_handler_free(netsnmp_mib_handler *handler)
             netsnmp_handler_free(handler->next);
             handler->next = NULL;
         }
+        /** XXX : segv here at shutdown if SHUTDOWN_AGENT_CLEANLY
+         *  defined. About 30 functions down the stack, starting
+         *  in clear_context() -> clear_subtree()
+         */
         if ((handler->myvoid != NULL) && (handler->data_free != NULL))
         {
             handler->data_free(handler->myvoid);
@@ -698,66 +588,39 @@ netsnmp_handler_free(netsnmp_mib_handler *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()
+/** dulpicates a handler and all subsequent handlers
+ * see also _clone_handler
  */
 netsnmp_mib_handler *
 netsnmp_handler_dup(netsnmp_mib_handler *handler)
 {
     netsnmp_mib_handler *h = NULL;
 
-    if (!handler)
-        goto err;
+    if (handler == NULL) {
+        return NULL;
+    }
 
     h = _clone_handler(handler);
-    if (!h)
-        goto err;
 
-    /*
-     * Providing a clone function without a free function is asking for
-     * memory leaks, and providing a free function without clone function
-     * is asking for memory corruption. Hence the log statement below.
-     */
-    if (!!handler->data_clone != !!handler->data_free)
-        snmp_log(LOG_ERR, "data_clone / data_free inconsistent (%s)\n",
-                 handler->handler_name);
-    if (handler->myvoid && handler->data_clone) {
-        h->myvoid = handler->data_clone(handler->myvoid);
-        if (!h->myvoid)
-            goto err;
-    } else
+    if (h != NULL) {
         h->myvoid = handler->myvoid;
-    h->data_clone = handler->data_clone;
-    h->data_free = handler->data_free;
-
-    if (handler->next != NULL) {
-        h->next = netsnmp_handler_dup(handler->next);
-        if (!h->next)
-            goto err;
-        h->next->prev = h;
-    }
-    h->prev = NULL;
-    return h;
+        h->data_free = handler->data_free;
 
-err:
-    netsnmp_handler_free(h);
+        if (handler->next != NULL) {
+            h->next = netsnmp_handler_dup(handler->next);
+            if (h->next == NULL) {
+                netsnmp_handler_free(h);
+                return NULL;
+            }
+            h->next->prev = h;
+        }
+        h->prev = NULL;
+        return h;
+    }
     return NULL;
 }
 
-/** 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
- */
+/** free the resources associated with a handler registration object */
 void
 netsnmp_handler_registration_free(netsnmp_handler_registration *reginfo)
 {
@@ -771,16 +634,7 @@ netsnmp_handler_registration_free(netsnmp_handler_registration *reginfo)
     }
 }
 
-/** 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()
- */
+/** duplicates the handler registration object */
 netsnmp_handler_registration *
 netsnmp_handler_registration_dup(netsnmp_handler_registration *reginfo)
 {
@@ -820,8 +674,9 @@ netsnmp_handler_registration_dup(netsnmp_handler_registration *reginfo)
         }
 
         if (reginfo->rootoid != NULL) {
-            r->rootoid =
-                snmp_duplicate_objid(reginfo->rootoid, reginfo->rootoid_len);
+            memdup((u_char **) & (r->rootoid),
+                   (const u_char *) reginfo->rootoid,
+                   reginfo->rootoid_len * sizeof(oid));
             if (r->rootoid == NULL) {
                 netsnmp_handler_registration_free(r);
                 return NULL;
@@ -839,16 +694,9 @@ netsnmp_handler_registration_dup(netsnmp_handler_registration *reginfo)
     return NULL;
 }
 
-/** 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()
- */
+/** 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. */
 NETSNMP_INLINE netsnmp_delegated_cache *
 netsnmp_create_delegated_cache(netsnmp_mib_handler *handler,
                                netsnmp_handler_registration *reginfo,
@@ -870,17 +718,9 @@ netsnmp_create_delegated_cache(netsnmp_mib_handler *handler,
     return ret;
 }
 
-/** 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()
- */
+/** 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. */
 NETSNMP_INLINE netsnmp_delegated_cache *
 netsnmp_handler_check_cache(netsnmp_delegated_cache *dcache)
 {
@@ -894,16 +734,7 @@ netsnmp_handler_check_cache(netsnmp_delegated_cache *dcache)
     return NULL;
 }
 
-/** 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()
- */
+/** frees a cache once you're finished using it */
 NETSNMP_INLINE void
 netsnmp_free_delegated_cache(netsnmp_delegated_cache *dcache)
 {
@@ -917,14 +748,7 @@ netsnmp_free_delegated_cache(netsnmp_delegated_cache *dcache)
 }
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_HANDLER_MARK_REQUESTS_AS_DELEGATED
-/** Sets a list of requests as delegated or not delegated.
- *  Sweeps through given chain of requests and sets 'delegated'
- *  flag accordingly to the isdelegaded parameter.
- *
- *  @param requests Request list.
- *  @param isdelegated New value of the 'delegated' flag.
- */
+/** marks a list of requests as delegated (or not if isdelegaded = 0) */
 void
 netsnmp_handler_mark_requests_as_delegated(netsnmp_request_info *requests,
                                            int isdelegated)
@@ -934,18 +758,16 @@ netsnmp_handler_mark_requests_as_delegated(netsnmp_request_info *requests,
         requests = requests->next;
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_HANDLER_MARK_REQUESTS_AS_DELEGATED */
 
-/** Adds data from node list to the request information structure.
- *  Data in the request can be later extracted and used by submodules.
+/** add data to a request that can be extracted later 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,
@@ -959,7 +781,7 @@ netsnmp_request_add_list_data(netsnmp_request_info *request,
     }
 }
 
-/** Removes all data from a request.
+/** remove data from a request
  *
  * @param request the netsnmp request info structure
  *
@@ -967,8 +789,6 @@ netsnmp_request_add_list_data(netsnmp_request_info *request,
  *
  * @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,
@@ -980,20 +800,16 @@ netsnmp_request_remove_list_data(netsnmp_request_info *request,
     return netsnmp_remove_list_node(&request->parent_data, name);
 }
 
-/** Extracts data from a request.
- *  Retrieves data that was previously added to the request,
- *  usually by a parent module.
- *
- * @param request Source request information structure.
+/** extract data from a request that was added previously by a parent module
  *
- * @param name Used to compare against the request->parent_data->name value;
- *             if a match is found, request->parent_data->data is returned.
+ * @param request the netsnmp request info function
  *
- * @return Gives a void pointer(request->parent_data->data); NULL is
- *         returned if source data is NULL or the object is not found.
+ * @param name used to compare against the request->parent_data->name value,
+ *             if a match is found request->parent_data->data is returned
  *
- * @see netsnmp_request_add_list_data()
- * @see netsnmp_request_remove_list_data()
+ * @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.
  */
 void    *
 netsnmp_request_get_list_data(netsnmp_request_info *request,
@@ -1004,15 +820,7 @@ netsnmp_request_get_list_data(netsnmp_request_info *request,
     return NULL;
 }
 
-/** 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()
- */
+/** Free the extra data stored in a request */
 NETSNMP_INLINE void
 netsnmp_free_request_data_set(netsnmp_request_info *request)
 {
@@ -1020,14 +828,7 @@ netsnmp_free_request_data_set(netsnmp_request_info *request)
         netsnmp_free_list_data(request->parent_data);
 }
 
-/** 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()
- */
+/** Free the extra data stored in a bunch of requests (all data in the chain) */
 NETSNMP_INLINE void
 netsnmp_free_request_data_sets(netsnmp_request_info *request)
 {
@@ -1037,24 +838,12 @@ netsnmp_free_request_data_sets(netsnmp_request_info *request)
     }
 }
 
-/** 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()
- */
+/** Returns a handler from a chain based on the name */
 netsnmp_mib_handler *
 netsnmp_find_handler_by_name(netsnmp_handler_registration *reginfo,
                              const char *name)
 {
     netsnmp_mib_handler *it;
-    if (reginfo == NULL || name == NULL )
-        return NULL;
     for (it = reginfo->handler; it; it = it->next) {
         if (strcmp(it->handler_name, name) == 0) {
             return it;
@@ -1063,22 +852,10 @@ netsnmp_find_handler_by_name(netsnmp_handler_registration *reginfo,
     return NULL;
 }
 
-/** 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()
- */
+/** 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. */
 void           *
 netsnmp_find_handler_data_by_name(netsnmp_handler_registration *reginfo,
                                   const char *name)
@@ -1089,12 +866,8 @@ netsnmp_find_handler_data_by_name(netsnmp_handler_registration *reginfo,
     return NULL;
 }
 
-/** @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()
+/** clones a mib handler (name, flags and access methods only; not myvoid)
+ * see also netsnmp_handler_dup
  */
 static netsnmp_mib_handler *
 _clone_handler(netsnmp_mib_handler *it)
@@ -1114,20 +887,12 @@ _clone_handler(netsnmp_mib_handler *it)
 static netsnmp_data_list *handler_reg = NULL;
 
 void
-handler_free_callback(void *handler)
+handler_free_callback(void *free)
 {
-    netsnmp_handler_free((netsnmp_mib_handler *)handler);
+    netsnmp_handler_free((netsnmp_mib_handler *)free);
 }
 
-/** 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()
+/** registers a given handler by name so that it can be found easily later.
  */
 void
 netsnmp_register_handler_by_name(const char *name,
@@ -1139,13 +904,7 @@ netsnmp_register_handler_by_name(const char *name,
     DEBUGMSGTL(("handler_registry", "registering helper %s\n", name));
 }
 
-/** 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()
+/** clears the entire handler-registration list
  */
 void
 netsnmp_clear_handler_list(void)
@@ -1155,8 +914,8 @@ netsnmp_clear_handler_list(void)
     handler_reg = NULL;
 }
 
-/** @private
- *  Injects a handler into a subtree, peers and children when a given
+/** @internal
+ *  injects a handler into a subtree, peers and children when a given
  *  subtrees name matches a passed in name.
  */
 void
@@ -1193,7 +952,7 @@ netsnmp_inject_handler_into_subtree(netsnmp_subtree *tp, const char *name,
                                                   before_what);
                     break;
                 } else {
-                    DEBUGMSGTL(("injectHandler",
+                    DEBUGMSGTL(("yyyinjectHandler",
                                 "not injecting handler into %s\n",
                                 mh->handler_name));
                 }
@@ -1203,8 +962,8 @@ netsnmp_inject_handler_into_subtree(netsnmp_subtree *tp, const char *name,
 }
 
 static int      doneit = 0;
-/** @private
- *  Parses the "injectHandler" token line.
+/** @internal
+ *  parses the "injectHandler" token line.
  */
 void
 parse_injectHandler_conf(const char *token, char *cptr)
@@ -1220,10 +979,9 @@ parse_injectHandler_conf(const char *token, char *cptr)
         return;
 
     cptr = copy_nword(cptr, handler_to_insert, sizeof(handler_to_insert));
-    handler = (netsnmp_mib_handler*)netsnmp_get_list_data(handler_reg, handler_to_insert);
+    handler = netsnmp_get_list_data(handler_reg, handler_to_insert);
     if (!handler) {
-	netsnmp_config_error("no \"%s\" handler registered.",
-			     handler_to_insert);
+        config_perror("no such \"%s\" handler registered.");
         return;
     }
 
@@ -1241,23 +999,20 @@ parse_injectHandler_conf(const char *token, char *cptr)
     }
 }
 
-/** @private
- *  Callback to ensure injectHandler parser doesn't do things twice.
+/** @internal
+ *  callback to ensure injectHandler parser doesn't do things twice
  *  @todo replace this with a method to check the handler chain instead.
  */
 static int
-handler_mark_inject_handler_done(int majorID, int minorID,
+handler_mark_doneit(int majorID, int minorID,
                     void *serverarg, void *clientarg)
 {
     doneit = 1;
     return 0;
 }
 
-/** @private
- *  Registers the injectHandle parser token.
- *  Used in init_agent_read_config().
- *
- *  @see init_agent_read_config()
+/** @internal
+ *  register's the injectHandle parser token.
  */
 void
 netsnmp_init_handler_conf(void)
@@ -1267,12 +1022,11 @@ netsnmp_init_handler_conf(void)
                                   NULL, "injectHandler NAME INTONAME [BEFORE_OTHER_NAME]");
     snmp_register_callback(SNMP_CALLBACK_LIBRARY,
                            SNMP_CALLBACK_POST_READ_CONFIG,
-                           handler_mark_inject_handler_done, NULL);
+                           handler_mark_doneit, NULL);
 
     se_add_pair_to_slist("agent_mode", strdup("GET"), MODE_GET);
     se_add_pair_to_slist("agent_mode", strdup("GETNEXT"), MODE_GETNEXT);
     se_add_pair_to_slist("agent_mode", strdup("GETBULK"), MODE_GETBULK);
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     se_add_pair_to_slist("agent_mode", strdup("SET_BEGIN"),
                          MODE_SET_BEGIN);
     se_add_pair_to_slist("agent_mode", strdup("SET_RESERVE1"),
@@ -1313,7 +1067,6 @@ netsnmp_init_handler_conf(void)
     se_add_pair_to_slist("babystep_mode", strdup("post_request"),
                          MODE_BSTEP_POST_REQUEST);
     se_add_pair_to_slist("babystep_mode", strdup("original"), 0xffff);
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
     /*
      * xxx-rks: hmmm.. will this work for modes which are or'd together?
diff --git a/agent/agent_index.c b/agent/agent_index.c
index ce8f8ca..1cccce0 100644
--- a/agent/agent_index.c
+++ b/agent/agent_index.c
@@ -8,7 +8,6 @@
 
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <signal.h>
 #if HAVE_STRING_H
 #include <string.h>
@@ -19,8 +18,15 @@
 #include <sys/types.h>
 #include <stdio.h>
 #include <fcntl.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -49,10 +55,6 @@
 #include "agentx/client.h"
 #endif
 
-netsnmp_feature_child_of(agent_index_all, libnetsnmpagent)
-
-netsnmp_feature_child_of(remove_index, agent_index_all)
-
         /*
          * Initial support for index allocation
          */
@@ -91,11 +93,7 @@ register_string_index(oid * name, size_t name_len, char *cp)
     if (res == NULL) {
         return NULL;
     } else {
-        char *rv = (char *)malloc(res->val_len + 1);
-        if (rv) {
-            memcpy(rv, res->val.string, res->val_len);
-            rv[res->val_len] = 0;
-        }
+        char           *rv = strdup(res->val.string);
         free(res);
         return rv;
     }
@@ -166,7 +164,7 @@ register_index(netsnmp_variable_list * varbind, int flags,
 
     DEBUGMSGTL(("register_index", "register "));
     DEBUGMSGVAR(("register_index", varbind));
-    DEBUGMSG(("register_index", "for session %8p\n", ss));
+    DEBUGMSG(("register_index", "for session %08p\n", ss));
 
 #if defined(USING_AGENTX_SUBAGENT_MODULE) && !defined(TESTING)
     if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
@@ -304,12 +302,12 @@ register_index(netsnmp_variable_list * varbind, int flags,
     if (new_index == NULL)
         return NULL;
 
-    if (NULL == snmp_varlist_add_variable(&new_index->varbind,
-                                          varbind->name,
-                                          varbind->name_length,
-                                          varbind->type,
-                                          varbind->val.string,
-                                          varbind->val_len)) {
+    if (0 == snmp_varlist_add_variable(&new_index->varbind,
+                                       varbind->name,
+                                       varbind->name_length,
+                                       varbind->type,
+                                       varbind->val.string,
+                                       varbind->val_len)) {
         /*
          * if (snmp_clone_var( varbind, new_index->varbind ) != 0 ) 
          */
@@ -456,16 +454,12 @@ register_index(netsnmp_variable_list * varbind, int flags,
          * Release an allocated index,
          *   to allow it to be used elsewhere
          */
-netsnmp_feature_child_of(release_index,netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_RELEASE_INDEX
 int
 release_index(netsnmp_variable_list * varbind)
 {
     return (unregister_index(varbind, TRUE, NULL));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_RELEASE_INDEX */
 
-#ifndef NETSNMP_FEATURE_REMOVE_REMOVE_INDEX
         /*
          * Completely remove an allocated index,
          *   due to errors in the registration process.
@@ -475,7 +469,6 @@ remove_index(netsnmp_variable_list * varbind, netsnmp_session * ss)
 {
     return (unregister_index(varbind, FALSE, ss));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REMOVE_INDEX */
 
 void
 unregister_index_by_session(netsnmp_session * ss)
@@ -578,8 +571,6 @@ unregister_index(netsnmp_variable_list * varbind, int remember,
     return SNMP_ERR_NOERROR;
 }
 
-netsnmp_feature_child_of(unregister_indexes,netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_UNREGISTER_INDEXES
 int
 unregister_string_index(oid * name, size_t name_len, char *cp)
 {
@@ -619,7 +610,6 @@ unregister_oid_index(oid * name, size_t name_len,
                        value_len * sizeof(oid));
     return (unregister_index(&varbind, FALSE, main_session));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UNREGISTER_INDEXES */
 
 void
 dump_idx_registry(void)
@@ -685,8 +675,6 @@ dump_idx_registry(void)
     }
 }
 
-netsnmp_feature_child_of(count_indexes, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_UNUSED
 unsigned long
 count_indexes(oid * name, size_t namelen, int include_unallocated)
 {
@@ -706,7 +694,7 @@ count_indexes(oid * name, size_t namelen, int include_unallocated)
     }
     return n;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UNUSED */
+
 
 #ifdef TESTING
 netsnmp_variable_list varbind;
diff --git a/agent/agent_read_config.c b/agent/agent_read_config.c
index f9ef1af..83b74e8 100644
--- a/agent/agent_read_config.c
+++ b/agent/agent_read_config.c
@@ -3,13 +3,8 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#else
 #include <sys/types.h>
-#endif
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -23,7 +18,11 @@
 #include <errno.h>
 
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -58,6 +57,8 @@
 #include <sys/param.h>
 #endif
 #endif
+#elif HAVE_WINSOCK_H
+#include <winsock.h>
 #endif
 #if HAVE_SYS_STREAM_H
 #   ifdef sysv5UnixWare7
@@ -107,18 +108,20 @@
 #include "agent_module_includes.h"
 #include "mib_module_includes.h"
 
-netsnmp_feature_child_of(agent_read_config_all, libnetsnmpagent)
-
-netsnmp_feature_child_of(snmpd_unregister_config_handler, agent_read_config_all)
+char            dontReadConfigFiles;
+char           *optconfigfile;
 
 #ifdef HAVE_UNISTD_H
 void
 snmpd_set_agent_user(const char *token, char *cptr)
 {
+#if defined(HAVE_GETPWNAM) && defined(HAVE_PWD_H)
+    struct passwd  *info;
+#endif
+
     if (cptr[0] == '#') {
         char           *ecp;
         int             uid;
-
         uid = strtoul(cptr + 1, &ecp, 10);
         if (*ecp != 0) {
             config_perror("Bad number");
@@ -126,51 +129,47 @@ snmpd_set_agent_user(const char *token, char *cptr)
 	    netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
 			       NETSNMP_DS_AGENT_USERID, uid);
 	}
+    }
 #if defined(HAVE_GETPWNAM) && defined(HAVE_PWD_H)
+    else if ((info = getpwnam(cptr)) != NULL) {
+        netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
+			   NETSNMP_DS_AGENT_USERID, info->pw_uid);
     } else {
-        struct passwd  *info;
-
-        info = getpwnam(cptr);
-        if (info)
-            netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
-                               NETSNMP_DS_AGENT_USERID, info->pw_uid);
-        else
-            config_perror("User not found in passwd database");
-        endpwent();
-#endif
+        config_perror("User not found in passwd database");
     }
+    endpwent();
+#endif
 }
 
 void
 snmpd_set_agent_group(const char *token, char *cptr)
 {
+#if defined(HAVE_GETGRNAM) && defined(HAVE_GRP_H)
+    struct group   *info;
+#endif
+
     if (cptr[0] == '#') {
         char           *ecp;
         int             gid = strtoul(cptr + 1, &ecp, 10);
-
         if (*ecp != 0) {
             config_perror("Bad number");
 	} else {
             netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
 			       NETSNMP_DS_AGENT_GROUPID, gid);
 	}
+    }
 #if defined(HAVE_GETGRNAM) && defined(HAVE_GRP_H)
+    else if ((info = getgrnam(cptr)) != NULL) {
+        netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
+			   NETSNMP_DS_AGENT_GROUPID, info->gr_gid);
     } else {
-        struct group   *info;
-
-        info = getgrnam(cptr);
-        if (info)
-            netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
-                               NETSNMP_DS_AGENT_GROUPID, info->gr_gid);
-        else
-            config_perror("Group not found in group database");
-        endgrent();
-#endif
+        config_perror("Group not found in group database");
     }
+    endpwent();
+#endif
 }
 #endif
 
-#ifndef NETSNMP_NO_LISTEN_SUPPORT
 void
 snmpd_set_agent_address(const char *token, char *cptr)
 {
@@ -187,17 +186,15 @@ snmpd_set_agent_address(const char *token, char *cptr)
         /*
          * append to the older specification string 
          */
-        snprintf(buf, sizeof(buf), "%s,%s", ptr, cptr);
-	buf[sizeof(buf) - 1] = '\0';
+        sprintf(buf, "%s,%s", ptr, cptr);
     } else {
-        strlcpy(buf, cptr, sizeof(buf));
+        strcpy(buf, cptr);
     }
 
     DEBUGMSGTL(("snmpd_ports", "port spec: %s\n", buf));
     netsnmp_ds_set_string(NETSNMP_DS_APPLICATION_ID, 
 			  NETSNMP_DS_AGENT_PORTS, buf);
 }
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
 
 void
 init_agent_read_config(const char *app)
@@ -246,20 +243,15 @@ init_agent_read_config(const char *app)
                                 snmpd_free_trapcommunity,
                                 "community-string");
 #endif /* support for community based SNMP */
-    netsnmp_ds_register_config(ASN_OCTET_STR, app, "v1trapaddress", 
-                               NETSNMP_DS_APPLICATION_ID, 
-                               NETSNMP_DS_AGENT_TRAP_ADDR);
 #ifdef HAVE_UNISTD_H
     register_app_config_handler("agentuser",
                                 snmpd_set_agent_user, NULL, "userid");
     register_app_config_handler("agentgroup",
                                 snmpd_set_agent_group, NULL, "groupid");
 #endif
-#ifndef NETSNMP_NO_LISTEN_SUPPORT
     register_app_config_handler("agentaddress",
                                 snmpd_set_agent_address, NULL,
                                 "SNMP bind address");
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
     netsnmp_ds_register_config(ASN_BOOLEAN, app, "quit", 
 			       NETSNMP_DS_APPLICATION_ID,
 			       NETSNMP_DS_AGENT_QUIT_IMMEDIATELY);
@@ -290,6 +282,7 @@ update_config(void)
     snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
                         SNMPD_CALLBACK_PRE_UPDATE_CONFIG, NULL);
     free_config();
+    vacm_standard_views(0,0,NULL,NULL);
     read_configs();
 }
 
@@ -305,27 +298,10 @@ snmpd_register_config_handler(const char *token,
 }
 
 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);
-}
-
-#ifdef NETSNMP_FEATURE_REQUIRE_SNMPD_UNREGISTER_CONFIG_HANDLER
-netsnmp_feature_require(unregister_app_config_handler)
-#endif /* NETSNMP_FEATURE_REQUIRE_SNMPD_UNREGISTER_CONFIG_HANDLER */
-
-#ifndef NETSNMP_FEATURE_REMOVE_SNMPD_UNREGISTER_CONFIG_HANDLER
-void
 snmpd_unregister_config_handler(const char *token)
 {
     unregister_app_config_handler(token);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNMPD_UNREGISTER_CONFIG_HANDLER */
 
 /*
  * this function is intended for use by mib-modules to store permenant
diff --git a/agent/agent_registry.c b/agent/agent_registry.c
index 1e2482a..8ce2c01 100644
--- a/agent/agent_registry.c
+++ b/agent/agent_registry.c
@@ -11,9 +11,7 @@
  * Use is subject to license terms specified in the COPYING file
  * distributed with the Net-SNMP package.
  */
-/** @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
+/** @defgroup agent_registry Maintain a registry of MIB subtrees, together with related information regarding mibmodule, sessions, etc
  *   @ingroup agent
  *
  * @{
@@ -22,8 +20,6 @@
 #define IN_SNMP_VARS_C
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
 #include <signal.h>
 #if HAVE_STRING_H
 #include <string.h>
@@ -34,8 +30,15 @@
 #include <sys/types.h>
 #include <stdio.h>
 #include <fcntl.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -49,7 +52,6 @@
 #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>
 
@@ -67,240 +69,80 @@
 #include "agentx/client.h"
 #endif
 
-netsnmp_feature_child_of(agent_registry_all, libnetsnmpagent)
-
-netsnmp_feature_child_of(unregister_mib_table_row, agent_registry_all)
-
-/** @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 */
-
-typedef struct lookup_cache_s {
-   netsnmp_subtree *next;
-   netsnmp_subtree *previous;
-} lookup_cache;
-
-typedef struct lookup_cache_context_s {
-   char *context;
-   struct lookup_cache_context_s *next;
-   int thecachecount;
-   int currentpos;
-   lookup_cache cache[SUBTREE_MAX_CACHE_SIZE];
-} lookup_cache_context;
+static void register_mib_detach_node(netsnmp_subtree *s);
+NETSNMP_STATIC_INLINE void invalidate_lookup_cache(const char *context);
+void netsnmp_set_lookup_cache_size(int newsize);
+int netsnmp_get_lookup_cache_size(void);
 
-static lookup_cache_context *thecontextcache = NULL;
+subtree_context_cache *context_subtrees = NULL;
 
-/** 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) {
-    if (newsize < 0)
-        lookup_cache_size = SUBTREE_DEFAULT_CACHE_SIZE;
-    else if (newsize < SUBTREE_MAX_CACHE_SIZE)
-        lookup_cache_size = newsize;
-    else
-        lookup_cache_size = SUBTREE_MAX_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
-netsnmp_get_lookup_cache_size(void) {
-    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;
-    if (!context)
-        context = "";
-
-    for(ptr = thecontextcache; ptr; ptr = ptr->next) {
-        if (strcmp(ptr->context, context) == 0)
-            break;
-    }
-    if (!ptr) {
-        if (netsnmp_subtree_find_first(context)) {
-            ptr = SNMP_MALLOC_TYPEDEF(lookup_cache_context);
-            ptr->next = thecontextcache;
-            ptr->context = strdup(context);
-            thecontextcache = ptr;
-        } else {
-            return NULL;
-        }
+netsnmp_subtree_free(netsnmp_subtree *a)
+{
+  if (a != NULL) {
+    if (a->variables != NULL && netsnmp_oid_equals(a->name_a, a->namelen, 
+					     a->start_a, a->start_len) == 0) {
+      SNMP_FREE(a->variables);
     }
-    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) {
-    lookup_cache_context *cptr;
-
-    if ((cptr = get_context_lookup_cache(context)) == NULL)
-        return;
-
-    if (cptr->thecachecount < lookup_cache_size)
-        cptr->thecachecount++;
-
-    cptr->cache[cptr->currentpos].next = next;
-    cptr->cache[cptr->currentpos].previous = previous;
-
-    if (++cptr->currentpos >= lookup_cache_size)
-        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) {
-
-    ptr->next = next;
-    ptr->previous = previous;
+    SNMP_FREE(a->name_a);
+    a->namelen = 0;
+    SNMP_FREE(a->start_a);
+    a->start_len = 0;
+    SNMP_FREE(a->end_a);
+    a->end_len = 0;
+    SNMP_FREE(a->label_a);
+    netsnmp_handler_registration_free(a->reginfo);
+    a->reginfo = NULL;
+    SNMP_FREE(a);
+  }
 }
 
-/** 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, const oid *name, size_t name_len,
-                  int *retcmp) {
-    lookup_cache_context *cptr;
-    lookup_cache *ret = NULL;
-    int cmp;
-    int i;
-
-    if ((cptr = get_context_lookup_cache(context)) == NULL)
-        return NULL;
+netsnmp_subtree *
+netsnmp_subtree_deepcopy(netsnmp_subtree *a)
+{
+  netsnmp_subtree *b = (netsnmp_subtree *)calloc(1, sizeof(netsnmp_subtree));
 
-    for(i = 0; i < cptr->thecachecount && i < lookup_cache_size; i++) {
-        if (cptr->cache[i].previous->start_a)
-            cmp = snmp_oid_compare(name, name_len,
-                                   cptr->cache[i].previous->start_a,
-                                   cptr->cache[i].previous->start_len);
-        else
-            cmp = 1;
-        if (cmp >= 0) {
-            *retcmp = cmp;
-            ret = &(cptr->cache[i]);
-        }
+  if (b != NULL) {
+    memcpy(b, a, sizeof(netsnmp_subtree));
+    b->name_a  = snmp_duplicate_objid(a->name_a,  a->namelen);
+    b->start_a = snmp_duplicate_objid(a->start_a, a->start_len);
+    b->end_a   = snmp_duplicate_objid(a->end_a,   a->end_len);
+    b->label_a = strdup(a->label_a);
+    
+    if (b->name_a == NULL || b->start_a == NULL || 
+	b->end_a  == NULL || b->label_a == NULL) {
+      netsnmp_subtree_free(b);
+      return NULL;
     }
-    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;
-    if ((cptr = get_context_lookup_cache(context)) != NULL) {
-        cptr->thecachecount = 0;
-        cptr->currentpos = 0;
+    if (a->variables != NULL) {
+      b->variables = (struct variable *)malloc(a->variables_len * 
+					       a->variables_width);
+      if (b->variables != NULL) {
+	memcpy(b->variables, a->variables,a->variables_len*a->variables_width);
+      } else {
+	netsnmp_subtree_free(b);
+	return NULL;
+      }
     }
-}
-
-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;
+    if (a->reginfo != NULL) {
+      b->reginfo = netsnmp_handler_registration_dup(a->reginfo);
+      if (b->reginfo == NULL) {
+	netsnmp_subtree_free(b);
+	return NULL;
+      }
     }
-    thecontextcache = NULL; /* !!! */
+  }
+  return b;
 }
 
-/**  @} */
-/* End of Lookup cache code */
-
-/** @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)
 {
@@ -324,14 +166,6 @@ netsnmp_subtree_find_first(const char *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)
 {
@@ -356,37 +190,6 @@ add_subtree(netsnmp_subtree *new_tree, const char *context_name)
     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)
@@ -405,144 +208,18 @@ netsnmp_subtree_replace_first(netsnmp_subtree *new_tree,
     return add_subtree(new_tree, context_name);
 }
 
+NETSNMP_INLINE void
+netsnmp_subtree_change_next(netsnmp_subtree *ptr, netsnmp_subtree *thenext)
+{
+    ptr->next = thenext;
+    if (thenext)
+        netsnmp_oid_compare_ll(ptr->start_a,
+                               ptr->start_len,
+                               thenext->start_a,
+                               thenext->start_len,
+                               &thenext->oid_off);
+}
 
-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)
-{
-  if (a != NULL) {
-    if (a->variables != NULL && netsnmp_oid_equals(a->name_a, a->namelen, 
-					     a->start_a, a->start_len) == 0) {
-      SNMP_FREE(a->variables);
-    }
-    SNMP_FREE(a->name_a);
-    a->namelen = 0;
-    SNMP_FREE(a->start_a);
-    a->start_len = 0;
-    SNMP_FREE(a->end_a);
-    a->end_len = 0;
-    SNMP_FREE(a->label_a);
-    netsnmp_handler_registration_free(a->reginfo);
-    a->reginfo = NULL;
-    SNMP_FREE(a);
-  }
-}
-
-/** 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)
-{
-  netsnmp_subtree *b = (netsnmp_subtree *)calloc(1, sizeof(netsnmp_subtree));
-
-  if (b != NULL) {
-    memcpy(b, a, sizeof(netsnmp_subtree));
-    b->name_a  = snmp_duplicate_objid(a->name_a,  a->namelen);
-    b->start_a = snmp_duplicate_objid(a->start_a, a->start_len);
-    b->end_a   = snmp_duplicate_objid(a->end_a,   a->end_len);
-    b->label_a = strdup(a->label_a);
-    
-    if (b->name_a == NULL || b->start_a == NULL || 
-	b->end_a  == NULL || b->label_a == NULL) {
-      netsnmp_subtree_free(b);
-      return NULL;
-    }
-
-    if (a->variables != NULL) {
-      b->variables = (struct variable *)malloc(a->variables_len * 
-					       a->variables_width);
-      if (b->variables != NULL) {
-	memcpy(b->variables, a->variables,a->variables_len*a->variables_width);
-      } else {
-	netsnmp_subtree_free(b);
-	return NULL;
-      }
-    }
-
-    if (a->reginfo != NULL) {
-      b->reginfo = netsnmp_handler_registration_dup(a->reginfo);
-      if (b->reginfo == NULL) {
-	netsnmp_subtree_free(b);
-	return NULL;
-      }
-    }
-  }
-  return b;
-}
-
-/** @private
- *  Replaces next subtree pointer in given subtree.
- */
-NETSNMP_INLINE void
-netsnmp_subtree_change_next(netsnmp_subtree *ptr, netsnmp_subtree *thenext)
-{
-    ptr->next = thenext;
-    if (thenext)
-        netsnmp_oid_compare_ll(ptr->start_a,
-                               ptr->start_len,
-                               thenext->start_a,
-                               thenext->start_len,
-                               &thenext->oid_off);
-}
-
-/** @private
- *  Replaces previous subtree pointer in given subtree.
- */
 NETSNMP_INLINE void
 netsnmp_subtree_change_prev(netsnmp_subtree *ptr, netsnmp_subtree *theprev)
 {
@@ -555,29 +232,12 @@ netsnmp_subtree_change_prev(netsnmp_subtree *ptr, netsnmp_subtree *theprev)
                                &ptr->oid_off);
 }
 
-netsnmp_feature_child_of(netsnmp_subtree_compare,netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_SUBTREE_COMPARE
-/** 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);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_NETSNMP_SUBTREE_COMPARE */
 
-/** 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)
 {
@@ -624,18 +284,10 @@ netsnmp_subtree_join(netsnmp_subtree *root)
 }
 
 
-/** 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.
- */
+        /*
+         *  Split the subtree into two at the specified point,
+         *    returning the new (second) subtree
+         */
 netsnmp_subtree *
 netsnmp_subtree_split(netsnmp_subtree *current, oid name[], int name_len)
 {
@@ -669,7 +321,9 @@ netsnmp_subtree_split(netsnmp_subtree *current, oid name[], int name_len)
 	return NULL;
     }
 
-    SNMP_FREE(current->end_a);
+    if (current->end_a != NULL) {
+	SNMP_FREE(current->end_a);
+    }
     current->end_a = tmp_a;
     current->end_len = name_len;
     if (new_sub->start_a != NULL) {
@@ -740,19 +394,12 @@ netsnmp_subtree_split(netsnmp_subtree *current, oid name[], int name_len)
     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)
 {
-    netsnmp_subtree *tree1, *tree2;
+    netsnmp_subtree *tree1, *tree2, *new2;
     netsnmp_subtree *prev, *next;
+    int             res, rc = 0;
 
     if (new_sub == NULL) {
         return MIB_REGISTERED_OK;       /* Degenerate case */
@@ -794,7 +441,7 @@ netsnmp_subtree_load(netsnmp_subtree *new_sub, const char *context_name)
     /*  Handle new subtrees that start in virgin territory.  */
 
     if (tree1 == NULL) {
-        netsnmp_subtree *new2 = NULL;
+	new2 = NULL;
 	/*  Is there any overlap with later subtrees?  */
 	if (tree2 && snmp_oid_compare(new_sub->end_a, new_sub->end_len,
 				      tree2->start_a, tree2->start_len) > 0) {
@@ -853,8 +500,10 @@ netsnmp_subtree_load(netsnmp_subtree *new_sub, const char *context_name)
 	    If the new subtree extends beyond this existing region,
 	            split it, and recurse to merge the two parts.  */
 
-	switch (snmp_oid_compare(new_sub->end_a, new_sub->end_len,
-                                 tree1->end_a, tree1->end_len)) {
+	rc = snmp_oid_compare(new_sub->end_a, new_sub->end_len, 
+			      tree1->end_a, tree1->end_len);
+
+        switch (rc) {
 
 	case -1:
 	    /*  Existing subtree contains new one.  */
@@ -883,23 +532,8 @@ netsnmp_subtree_load(netsnmp_subtree *new_sub, const char *context_name)
 	
 	    if (next && (next->namelen  == new_sub->namelen) &&
 		(next->priority == new_sub->priority)) {
-                if (new_sub->namelen != 1) {    /* ignore root OID dups */
-                    size_t          out_len = 0;
-                    size_t          buf_len = 0;
-                    char           *buf = NULL;
-                    int             buf_overflow = 0;
-
-                    netsnmp_sprint_realloc_objid((u_char **) &buf, &buf_len, &out_len,
-                                                 1, &buf_overflow,
-                                                 new_sub->start_a,
-                                                 new_sub->start_len);
-                    snmp_log(LOG_ERR,
-                             "duplicate registration: MIB modules %s and %s (oid %s%s).\n",
-                             next->label_a, new_sub->label_a,
-                             buf ? buf : "",
-                             buf_overflow ? " [TRUNCATED]" : "");
-                    free(buf);
-                }
+                if (new_sub->namelen != 1) /* ignore root OID dups */
+                    snmp_log(LOG_ERR, "duplicate registration (%s, %s)", next->label_a, new_sub->label_a);
 		return MIB_DUPLICATE_REGISTRATION;
 	    }
 
@@ -925,246 +559,78 @@ netsnmp_subtree_load(netsnmp_subtree *new_sub, const char *context_name)
 
 	case  1:
 	    /*  New subtree contains the existing one.  */
-            {
-                netsnmp_subtree *new2 =
-                    netsnmp_subtree_split(new_sub, tree1->end_a,tree1->end_len);
-                int res = netsnmp_subtree_load(new_sub, context_name);
-                if (res != MIB_REGISTERED_OK) {
-                    netsnmp_remove_subtree(new2);
-                    netsnmp_subtree_free(new2);
-                    return res;
-                }
-                return netsnmp_subtree_load(new2, context_name);
-            }
-        }
+	    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_subtree_free(new2);
+		return res;
+	    }
+	    return netsnmp_subtree_load(new2, context_name);
+	}
     }
     return 0;
 }
 
-/** 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.
+/*
+ * Note: reginfo will be freed on failures
  */
-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(const oid *name, size_t len, netsnmp_subtree *subtree,
-			  const char *context_name)
+int
+netsnmp_register_mib(const char *moduleName,
+                     struct variable *var,
+                     size_t varsize,
+                     size_t numvars,
+                     oid * mibloc,
+                     size_t mibloclen,
+                     int priority,
+                     int range_subid,
+                     oid range_ubound,
+                     netsnmp_session * ss,
+                     const char *context,
+                     int timeout,
+                     int flags,
+                     netsnmp_handler_registration *reginfo,
+                     int perform_callback)
 {
-    lookup_cache *lookup_cache = NULL;
-    netsnmp_subtree *myptr = NULL, *previous = NULL;
-    int cmp = 1;
-    size_t ll_off = 0;
+    netsnmp_subtree *subtree, *sub2;
+    int             res, i;
+    struct register_parameters reg_parms;
+    int old_lookup_cache_val = netsnmp_get_lookup_cache_size();
 
-    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);
-        }
+    if (moduleName == NULL ||
+        mibloc     == NULL) {
+        /* Shouldn't happen ??? */
+        netsnmp_handler_registration_free(reginfo);
+        return MIB_REGISTRATION_FAILED;
+    }
+    subtree = (netsnmp_subtree *)calloc(1, sizeof(netsnmp_subtree));
+    if (subtree == NULL) {
+        netsnmp_handler_registration_free(reginfo);
+        return MIB_REGISTRATION_FAILED;
     }
 
+    DEBUGMSGTL(("register_mib", "registering \"%s\" at ", moduleName));
+    DEBUGMSGOIDRANGE(("register_mib", mibloc, mibloclen, range_subid,
+                      range_ubound));
+    DEBUGMSG(("register_mib", " with context \"%s\"\n",
+              SNMP_STRORNULL(context)));
+
     /*
-     * this optimization causes a segfault on sf cf alpha-linux1.
-     * ifdef out until someone figures out why and fixes it. xxx-rks 20051117
+     * verify that the passed context is equal to the context
+     * in the reginfo.
+     * (which begs the question, why do we have both? It appears that the
+     *  reginfo item didn't appear til 5.2)
      */
-#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;
-        }
+    if( ((NULL == context) && (NULL != reginfo->contextName)) ||
+        ((NULL != context) && (NULL == reginfo->contextName)) ||
+        ( ((NULL != context) && (NULL != reginfo->contextName)) &&
+          (0 != strcmp(context, reginfo->contextName))) ) {
+        snmp_log(LOG_WARNING,"context passed during registration does not "
+                 "equal the reginfo contextName! ('%s' != '%s')\n",
+                 context, reginfo->contextName);
+        netsnmp_assert(!"register context == reginfo->contextName"); /* always false */
     }
-    return previous;
-}
 
-netsnmp_subtree *
-netsnmp_subtree_find_next(const 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(const 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,
-                     struct variable *var,
-                     size_t varsize,
-                     size_t numvars,
-                     oid * mibloc,
-                     size_t mibloclen,
-                     int priority,
-                     int range_subid,
-                     oid range_ubound,
-                     netsnmp_session * ss,
-                     const char *context,
-                     int timeout,
-                     int flags,
-                     netsnmp_handler_registration *reginfo,
-                     int perform_callback)
-{
-    netsnmp_subtree *subtree, *sub2;
-    int             res;
-    struct register_parameters reg_parms;
-    int old_lookup_cache_val = netsnmp_get_lookup_cache_size();
-
-    if (moduleName == NULL ||
-        mibloc     == NULL) {
-        /* Shouldn't happen ??? */
-        netsnmp_handler_registration_free(reginfo);
-        return MIB_REGISTRATION_FAILED;
-    }
-    subtree = (netsnmp_subtree *)calloc(1, sizeof(netsnmp_subtree));
-    if (subtree == NULL) {
-        netsnmp_handler_registration_free(reginfo);
-        return MIB_REGISTRATION_FAILED;
-    }
-
-    DEBUGMSGTL(("register_mib", "registering \"%s\" at ", moduleName));
-    DEBUGMSGOIDRANGE(("register_mib", mibloc, mibloclen, range_subid,
-                      range_ubound));
-    DEBUGMSG(("register_mib", " with context \"%s\"\n",
-              SNMP_STRORNULL(context)));
-
-    /*
-     * verify that the passed context is equal to the context
-     * in the reginfo.
-     * (which begs the question, why do we have both? It appears that the
-     *  reginfo item didn't appear til 5.2)
-     */
-    if( ((NULL == context) && (NULL != reginfo->contextName)) ||
-        ((NULL != context) && (NULL == reginfo->contextName)) ||
-        ( ((NULL != context) && (NULL != reginfo->contextName)) &&
-          (0 != strcmp(context, reginfo->contextName))) ) {
-        snmp_log(LOG_WARNING,"context passed during registration does not "
-                 "equal the reginfo contextName! ('%s' != '%s')\n",
-                 context, reginfo->contextName);
-        netsnmp_assert(!"register context == reginfo->contextName"); /* always false */
-    }
-
-    /*  Create the new subtree node being registered.  */
+    /*  Create the new subtree node being registered.  */
 
     subtree->reginfo = reginfo;
     subtree->name_a  = snmp_duplicate_objid(mibloc, mibloclen);
@@ -1207,7 +673,6 @@ netsnmp_register_mib(const char *moduleName,
 	rest of the range.  */
 
     if (res == MIB_REGISTERED_OK && range_subid != 0) {
-        int i;
 	for (i = mibloc[range_subid - 1] + 1; i <= (int)range_ubound; i++) {
 	    sub2 = netsnmp_subtree_deepcopy(subtree);
 
@@ -1234,7 +699,6 @@ netsnmp_register_mib(const char *moduleName,
             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);
@@ -1270,9 +734,6 @@ netsnmp_register_mib(const char *moduleName,
         reg_parms.timeout = timeout;
         reg_parms.flags = (u_char) flags;
         reg_parms.contextName = context;
-        reg_parms.session = ss;
-        reg_parms.reginfo = reginfo;
-        reg_parms.contextName = context;
         snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
                             SNMPD_CALLBACK_REGISTER_OID, &reg_parms);
     }
@@ -1282,9 +743,10 @@ netsnmp_register_mib(const char *moduleName,
     return res;
 }
 
-/** @private
- *  Reattach a particular node.  
+/*
+ * Reattach a particular node.  
  */
+
 static void
 register_mib_reattach_node(netsnmp_subtree *s)
 {
@@ -1305,9 +767,6 @@ register_mib_reattach_node(netsnmp_subtree *s)
         reg_parms.range_ubound = s->range_ubound;
         reg_parms.timeout = s->timeout;
         reg_parms.flags = s->flags;
-        reg_parms.session = s->session;
-        reg_parms.reginfo = s->reginfo;
-        /* XXX: missing in subtree: reg_parms.contextName = s->context; */
         if ((NULL != s->reginfo) && (NULL != s->reginfo->contextName))
             reg_parms.contextName = s->reginfo->contextName;
         snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
@@ -1316,8 +775,10 @@ register_mib_reattach_node(netsnmp_subtree *s)
     }
 }
 
-/** Call callbacks to reattach all our nodes.  
+/*
+ * Call callbacks to reattach all our nodes.  
  */
+
 void
 register_mib_reattach(void)
 {
@@ -1334,11 +795,10 @@ register_mib_reattach(void)
     }
 }
 
-/** @private
- *  Mark a node as detached.
- *
- *  @param s The note to be marked
+/*
+ * Mark a node as detached.  
  */
+
 static void
 register_mib_detach_node(netsnmp_subtree *s)
 {
@@ -1347,10 +807,12 @@ register_mib_detach_node(netsnmp_subtree *s)
     }
 }
 
-/** 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.  
+/*
+ * Mark all our registered OIDs as detached.  This is only really
+ * useful for subagent protocols, when a connection is lost or
+ * something.  
  */
+
 void
 register_mib_detach(void)
 {
@@ -1366,60 +828,12 @@ register_mib_detach(void)
     }
 }
 
-/** 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,
                      size_t varsize,
                      size_t numvars,
-                     const oid * mibloc,
+                     oid * mibloc,
                      size_t mibloclen,
                      int priority,
                      int range_subid,
@@ -1433,58 +847,12 @@ register_mib_context(const char *moduleName,
                                     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,
                    size_t varsize,
                    size_t numvars,
-                   const oid * mibloc,
+                   oid * mibloc,
                    size_t mibloclen,
                    int priority,
                    int range_subid, oid range_ubound, netsnmp_session * ss)
@@ -1494,101 +862,27 @@ register_mib_range(const char *moduleName,
                                 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,
                       size_t varsize,
                       size_t numvars,
-                      const oid * mibloc, size_t mibloclen, int priority)
+                      oid * mibloc, size_t mibloclen, int priority)
 {
     return register_mib_range(moduleName, var, varsize, numvars,
                               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,
              size_t varsize,
-             size_t numvars, const oid * mibloc, size_t mibloclen)
+             size_t numvars, oid * mibloc, size_t mibloclen)
 {
     return register_mib_priority(moduleName, var, varsize, numvars,
                                  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)
 {
@@ -1599,7 +893,6 @@ netsnmp_subtree_unload(netsnmp_subtree *sub, netsnmp_subtree *prev, const char *
         DEBUGMSGOID(("register_mib", sub->start_a, sub->start_len));
     } else {
         DEBUGMSG(("register_mib", "[NIL]"));
-        return;
     }
     DEBUGMSG(("register_mib", ", "));
     if (prev != NULL) {
@@ -1644,10 +937,10 @@ netsnmp_subtree_unload(netsnmp_subtree *sub, netsnmp_subtree *prev, const char *
 }
 
 /**
- * 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.
+ * 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.
  *
  * @param name  the specific OID to unregister if it conatins the associated
  *              context.
@@ -1669,18 +962,15 @@ netsnmp_subtree_unload(netsnmp_subtree *sub, netsnmp_subtree *prev, const char *
  *
  * @param context  a context name that has been created
  *
- * @return gives MIB_UNREGISTERED_OK or MIB_* error code.
+ * @return 
  * 
- * @see unregister_mib()
- * @see unregister_mib_priority()
- * @see unregister_mib_range()
  */
 int
 unregister_mib_context(oid * name, size_t len, int priority,
                        int range_subid, oid range_ubound,
                        const char *context)
 {
-    netsnmp_subtree *list, *myptr = NULL;
+    netsnmp_subtree *list, *myptr;
     netsnmp_subtree *prev, *child, *next; /* loop through children */
     struct register_parameters reg_parms;
     int old_lookup_cache_val = netsnmp_get_lookup_cache_size();
@@ -1689,7 +979,7 @@ unregister_mib_context(oid * name, size_t len, int priority,
 
     netsnmp_set_lookup_cache_size(0);
 
-    if ((range_subid > 0) &&  ((size_t)range_subid <= len))
+    if ((range_subid != 0) &&  (range_subid <= len))
         orig_subid_val = name[range_subid-1];
 
     while(unregistering){
@@ -1774,7 +1064,6 @@ unregister_mib_context(oid * name, size_t len, int priority,
     return MIB_UNREGISTERED_OK;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_UNREGISTER_MIB_TABLE_ROW
 int
 netsnmp_unregister_mib_table_row(oid * name, size_t len, int priority,
                                  int var_subid, oid range_ubound,
@@ -1853,38 +1142,7 @@ netsnmp_unregister_mib_table_row(oid * name, size_t len, int priority,
 
     return 0;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UNREGISTER_MIB_TABLE_ROW */
 
-/**
- * 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)
@@ -1893,61 +1151,18 @@ unregister_mib_range(oid * name, size_t len, int priority,
                                   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)
 {
@@ -2009,153 +1224,374 @@ unregister_mibs_by_session(netsnmp_session * ss)
     }
 }
 
-/** 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)
+/*
+ * 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
+ */
+
+int
+in_a_view(oid *name, size_t *namelen, netsnmp_pdu *pdu, int type)
+{
+    struct view_parameters view_parms;
+
+    if (pdu->flags & UCD_MSG_FLAG_ALWAYS_IN_VIEW) {
+	/* Enable bypassing of view-based access control */
+        return VACM_SUCCESS;
+    }
+
+    /*
+     * check for v1 and counter64s, since snmpv1 doesn't support it 
+     */
+#ifndef NETSNMP_DISABLE_SNMPV1
+    if (pdu->version == SNMP_VERSION_1 && type == ASN_COUNTER64) {
+        return VACM_NOTINVIEW;
+    }
+#endif
+
+    view_parms.pdu = pdu;
+    view_parms.name = name;
+    if (namelen != NULL) {
+        view_parms.namelen = *namelen;
+    } else {
+        view_parms.namelen = 0;
+    }
+    view_parms.errorcode = 0;
+    view_parms.check_subtree = 0;
+
+    switch (pdu->version) {
+#ifndef NETSNMP_DISABLE_SNMPV1
+    case SNMP_VERSION_1:
+#endif
+#ifndef NETSNMP_DISABLE_SNMPV2C
+    case SNMP_VERSION_2c:
+#endif
+    case SNMP_VERSION_3:
+        snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
+                            SNMPD_CALLBACK_ACM_CHECK, &view_parms);
+        return view_parms.errorcode;
+    }
+    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.
+ */
+int
+check_access(netsnmp_pdu *pdu)
+{                               /* IN - pdu being checked */
+    struct view_parameters view_parms;
+    view_parms.pdu = pdu;
+    view_parms.name = 0;
+    view_parms.namelen = 0;
+    view_parms.errorcode = 0;
+    view_parms.check_subtree = 0;
+
+    if (pdu->flags & UCD_MSG_FLAG_ALWAYS_IN_VIEW) {
+	/* Enable bypassing of view-based access control */
+        return 0;
+    }
+
+    switch (pdu->version) {
+#ifndef NETSNMP_DISABLE_SNMPV1
+    case SNMP_VERSION_1:
+#endif
+#ifndef NETSNMP_DISABLE_SNMPV2C
+    case SNMP_VERSION_2c:
+#endif
+    case SNMP_VERSION_3:
+        snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
+                            SNMPD_CALLBACK_ACM_CHECK_INITIAL, &view_parms);
+        return view_parms.errorcode;
+    }
+    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).
+ */
+int
+netsnmp_acm_check_subtree(netsnmp_pdu *pdu, oid *name, size_t namelen)
+{                               /* IN - pdu being checked */
+    struct view_parameters view_parms;
+    view_parms.pdu = pdu;
+    view_parms.name = name;
+    view_parms.namelen = namelen;
+    view_parms.errorcode = 0;
+    view_parms.check_subtree = 1;
+
+    if (pdu->flags & UCD_MSG_FLAG_ALWAYS_IN_VIEW) {
+	/* Enable bypassing of view-based access control */
+        return 0;
+    }
+
+    switch (pdu->version) {
+#ifndef NETSNMP_DISABLE_SNMPV1
+    case SNMP_VERSION_1:
+#endif
+#ifndef NETSNMP_DISABLE_SNMPV2C
+    case SNMP_VERSION_2c:
+#endif
+    case SNMP_VERSION_3:
+        snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
+                            SNMPD_CALLBACK_ACM_CHECK_SUBTREE, &view_parms);
+        return view_parms.errorcode;
+    }
+    return 1;
+}
+
+#define SUBTREE_DEFAULT_CACHE_SIZE 8
+#define SUBTREE_MAX_CACHE_SIZE     32
+int lookup_cache_size = 0; /*enabled later after registrations are loaded */
+
+typedef struct lookup_cache_s {
+   netsnmp_subtree *next;
+   netsnmp_subtree *previous;
+} lookup_cache;
+
+typedef struct lookup_cache_context_s {
+   char *context;
+   struct lookup_cache_context_s *next;
+   int thecachecount;
+   int currentpos;
+   lookup_cache cache[SUBTREE_MAX_CACHE_SIZE];
+} lookup_cache_context;
+
+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%
+ * (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.
+ */
+void
+netsnmp_set_lookup_cache_size(int newsize) {
+    if (newsize < 0)
+        lookup_cache_size = SUBTREE_DEFAULT_CACHE_SIZE;
+    else if (newsize < SUBTREE_MAX_CACHE_SIZE)
+        lookup_cache_size = newsize;
+    else
+        lookup_cache_size = SUBTREE_MAX_CACHE_SIZE;
+}
+
+/** retrieves the current value of the lookup cache size
+ *  @return the current lookup cache size
+ */
+int
+netsnmp_get_lookup_cache_size(void) {
+    return lookup_cache_size;
+}
+
+NETSNMP_STATIC_INLINE lookup_cache_context *
+get_context_lookup_cache(const char *context) {
+    lookup_cache_context *ptr;
+    if (!context)
+        context = "";
+
+    for(ptr = thecontextcache; ptr; ptr = ptr->next) {
+        if (strcmp(ptr->context, context) == 0)
+            break;
+    }
+    if (!ptr) {
+        if (netsnmp_subtree_find_first(context)) {
+            ptr = SNMP_MALLOC_TYPEDEF(lookup_cache_context);
+            ptr->next = thecontextcache;
+            ptr->context = strdup(context);
+            thecontextcache = ptr;
+        } else {
+            return NULL;
+        }
+    }
+    return ptr;
+}
+
+NETSNMP_STATIC_INLINE void
+lookup_cache_add(const char *context,
+                 netsnmp_subtree *next, netsnmp_subtree *previous) {
+    lookup_cache_context *cptr;
+
+    if ((cptr = get_context_lookup_cache(context)) == NULL)
+        return;
+    
+    if (cptr->thecachecount < lookup_cache_size)
+        cptr->thecachecount++;
+
+    cptr->cache[cptr->currentpos].next = next;
+    cptr->cache[cptr->currentpos].previous = previous;
+
+    if (++cptr->currentpos >= lookup_cache_size)
+        cptr->currentpos = 0;
+}
+
+NETSNMP_STATIC_INLINE void
+lookup_cache_replace(lookup_cache *ptr,
+                     netsnmp_subtree *next, netsnmp_subtree *previous) {
+
+    ptr->next = next;
+    ptr->previous = previous;
+}
+
+NETSNMP_STATIC_INLINE lookup_cache *
+lookup_cache_find(const char *context, oid *name, size_t name_len,
+                  int *retcmp) {
+    lookup_cache_context *cptr;
+    lookup_cache *ret = NULL;
+    int cmp;
+    int i;
+
+    if ((cptr = get_context_lookup_cache(context)) == NULL)
+        return NULL;
+
+    for(i = 0; i < cptr->thecachecount && i < lookup_cache_size; i++) {
+        if (cptr->cache[i].previous->start_a)
+            cmp = snmp_oid_compare(name, name_len,
+                                   cptr->cache[i].previous->start_a,
+                                   cptr->cache[i].previous->start_len);
+        else
+            cmp = 1;
+        if (cmp >= 0) {
+            *retcmp = cmp;
+            ret = &(cptr->cache[i]);
+        }
+    }
+    return ret;
+}
+
+NETSNMP_STATIC_INLINE void
+invalidate_lookup_cache(const char *context) {
+    lookup_cache_context *cptr;
+    if ((cptr = get_context_lookup_cache(context)) != NULL) {
+        cptr->thecachecount = 0;
+        cptr->currentpos = 0;
+    }
+}
+
+netsnmp_subtree *
+netsnmp_subtree_find_prev(oid *name, size_t len, netsnmp_subtree *subtree,
+			  const char *context_name)
 {
-    struct view_parameters view_parms;
+    lookup_cache *lookup_cache = NULL;
+    netsnmp_subtree *myptr = NULL, *previous = NULL;
+    int cmp = 1;
+    size_t ll_off = 0;
 
-    if (pdu->flags & UCD_MSG_FLAG_ALWAYS_IN_VIEW) {
-	/* Enable bypassing of view-based access control */
-        return VACM_SUCCESS;
+    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);
+        }
     }
 
     /*
-     * check for v1 and counter64s, since snmpv1 doesn't support it 
+     * this optimization causes a segfault on sf cf alpha-linux1.
+     * ifdef out until someone figures out why and fixes it. xxx-rks 20051117
      */
-#ifndef NETSNMP_DISABLE_SNMPV1
-    if (pdu->version == SNMP_VERSION_1 && type == ASN_COUNTER64) {
-        return VACM_NOTINVIEW;
-    }
+#ifndef __alpha
+#define WTEST_OPTIMIZATION 1
 #endif
-
-    view_parms.pdu = pdu;
-    view_parms.name = name;
-    if (namelen != NULL) {
-        view_parms.namelen = *namelen;
-    } else {
-        view_parms.namelen = 0;
-    }
-    view_parms.errorcode = 0;
-    view_parms.check_subtree = 0;
-
-    switch (pdu->version) {
-#ifndef NETSNMP_DISABLE_SNMPV1
-    case SNMP_VERSION_1:
+#ifdef WTEST_OPTIMIZATION
+    DEBUGMSGTL(("wtest","oid in: "));
+    DEBUGMSGOID(("wtest", name, len));
+    DEBUGMSG(("wtest","\n"));
 #endif
-#ifndef NETSNMP_DISABLE_SNMPV2C
-    case SNMP_VERSION_2c:
+    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 = %d, in off = %d test = %d\n",
+                  myptr->oid_off, 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
-    case SNMP_VERSION_3:
-        snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
-                            SNMPD_CALLBACK_ACM_CHECK, &view_parms);
-        return view_parms.errorcode;
+            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 VACM_NOSECNAME;
+    return previous;
 }
 
-/** 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)
-{                               /* IN - pdu being checked */
-    struct view_parameters view_parms;
-    view_parms.pdu = pdu;
-    view_parms.name = NULL;
-    view_parms.namelen = 0;
-    view_parms.errorcode = 0;
-    view_parms.check_subtree = 0;
+netsnmp_subtree *
+netsnmp_subtree_find_next(oid *name, size_t len,
+			  netsnmp_subtree *subtree, const char *context_name)
+{
+    netsnmp_subtree *myptr = NULL;
 
-    if (pdu->flags & UCD_MSG_FLAG_ALWAYS_IN_VIEW) {
-	/* Enable bypassing of view-based access control */
-        return 0;
-    }
+    myptr = netsnmp_subtree_find_prev(name, len, subtree, context_name);
 
-    switch (pdu->version) {
-#ifndef NETSNMP_DISABLE_SNMPV1
-    case SNMP_VERSION_1:
-#endif
-#ifndef NETSNMP_DISABLE_SNMPV2C
-    case SNMP_VERSION_2c:
-#endif
-    case SNMP_VERSION_3:
-        snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
-                            SNMPD_CALLBACK_ACM_CHECK_INITIAL, &view_parms);
-        return view_parms.errorcode;
+    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;
     }
-    return 1;
 }
 
-/** 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)
-{                               /* IN - pdu being checked */
-    struct view_parameters view_parms;
-    view_parms.pdu = pdu;
-    view_parms.name = name;
-    view_parms.namelen = namelen;
-    view_parms.errorcode = 0;
-    view_parms.check_subtree = 1;
+netsnmp_subtree *
+netsnmp_subtree_find(oid *name, size_t len, netsnmp_subtree *subtree, 
+		     const char *context_name)
+{
+    netsnmp_subtree *myptr;
 
-    if (pdu->flags & UCD_MSG_FLAG_ALWAYS_IN_VIEW) {
-	/* Enable bypassing of view-based access control */
-        return 0;
+    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;
     }
 
-    switch (pdu->version) {
-#ifndef NETSNMP_DISABLE_SNMPV1
-    case SNMP_VERSION_1:
-#endif
-#ifndef NETSNMP_DISABLE_SNMPV2C
-    case SNMP_VERSION_2c:
-#endif
-    case SNMP_VERSION_3:
-        snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
-                            SNMPD_CALLBACK_ACM_CHECK_SUBTREE, &view_parms);
-        return view_parms.errorcode;
-    }
-    return 1;
+    return NULL;
 }
 
-netsnmp_feature_child_of(get_session_for_oid,netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_GET_SESSION_FOR_OID
 netsnmp_session *
-get_session_for_oid(const oid *name, size_t len, const char *context_name)
+get_session_for_oid(oid *name, size_t len, const char *context_name)
 {
     netsnmp_subtree *myptr;
 
@@ -2173,7 +1609,6 @@ get_session_for_oid(const oid *name, size_t len, const char *context_name)
         return myptr->session;
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_GET_SESSION_FOR_OID */
 
 void
 setup_tree(void)
@@ -2233,6 +1668,64 @@ shutdown_tree(void) {
 
 }
 
+void
+clear_subtree (netsnmp_subtree *sub) {
+
+    netsnmp_subtree *nxt;
+    
+    if (sub == NULL)
+	return;
+
+    for(nxt = sub; nxt;) {
+        if (nxt->children != NULL) {
+            clear_subtree(nxt->children);
+        }
+        sub = nxt;
+        nxt = nxt->next;
+        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;
+
+    DEBUGMSGTL(("agent_registry", "clear context\n"));
+
+    ptr = get_top_context_cache(); 
+    while (ptr) {
+	next = ptr->next;
+
+	if (ptr->first_subtree) {
+	    clear_subtree(ptr->first_subtree);
+	}
+
+	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)
@@ -2287,7 +1780,7 @@ dump_registry(void)
                     if (myptr2->label_a && myptr2->label_a[0]) {
                         if (strcmp(myptr2->label_a, "old_api") == 0) {
                             struct variable *vp =
-                                (struct variable*)myptr2->reginfo->handler->myvoid;
+                                myptr2->reginfo->handler->myvoid;
 
                             if (!sprint_realloc_objid(&s, &sl, &sl_o, 1,
                                                  vp->name, vp->namelen)) {
@@ -2309,24 +1802,19 @@ dump_registry(void)
         }
     }
 
-    SNMP_FREE(s);
-    SNMP_FREE(e);
-    SNMP_FREE(v);
+    if (s != NULL) {
+        SNMP_FREE(s);
+    }
+    if (e != NULL) {
+        SNMP_FREE(e);
+    }
+    if (v != NULL) {
+        SNMP_FREE(v);
+    }
 
     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);
 
@@ -2351,20 +1839,6 @@ agent_SIGCHLD_handler(int sig)
 #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))
 {
@@ -2398,12 +1872,6 @@ register_signal(int sig, void (*func) (int))
     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)
 {
@@ -2415,7 +1883,3 @@ unregister_signal(int sig)
 #endif                          /* !WIN32 */
 
 /**  @} */
-/* End of signals support code */
-
-/**  @} */
-
diff --git a/agent/agent_sysORTable.c b/agent/agent_sysORTable.c
deleted file mode 100644
index f628060..0000000
--- a/agent/agent_sysORTable.c
+++ /dev/null
@@ -1,236 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#if HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if HAVE_STRING_H
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-#include <stddef.h>
-
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include <net-snmp/agent/agent_callbacks.h>
-#include <net-snmp/agent/agent_sysORTable.h>
-#include <net-snmp/agent/sysORTable.h>
-
-typedef struct data_node_s {
-    struct sysORTable data;
-    struct data_node_s* next;
-    struct data_node_s* prev;
-}* data_node;
-
-static data_node table = NULL;
-
-static void
-erase(data_node entry)
-{
-    entry->data.OR_uptime = netsnmp_get_agent_uptime();
-    DEBUGMSGTL(("agent/sysORTable", "UNREG_SYSOR %p\n", &entry->data));
-    snmp_call_callbacks(SNMP_CALLBACK_APPLICATION, SNMPD_CALLBACK_UNREG_SYSOR,
-                        &entry->data);
-    free(entry->data.OR_oid);
-    free(entry->data.OR_descr);
-    if (entry->next == entry)
-        table = NULL;
-    else {
-        entry->next->prev = entry->prev;
-        entry->prev->next = entry->next;
-        if (entry == table)
-            table = entry->next;
-    }
-    free(entry);
-}
-
-void
-netsnmp_sysORTable_foreach(void (*f)(const struct sysORTable*, void*), void* c)
-{
-    DEBUGMSGTL(("agent/sysORTable", "foreach(%p, %p)\n", f, c));
-    if(table) {
-        data_node run = table;
-        do {
-            data_node tmp = run;
-            run = run->next;
-            f(&tmp->data, c);
-        } while(table && run != table);
-    }
-}
-
-int
-register_sysORTable_sess(oid * oidin,
-                         size_t oidlen,
-                         const char *descr, netsnmp_session * ss)
-{
-    data_node entry;
-
-    DEBUGMSGTL(("agent/sysORTable", "registering: "));
-    DEBUGMSGOID(("agent/sysORTable", oidin, oidlen));
-    DEBUGMSG(("agent/sysORTable", ", session %p\n", ss));
-
-    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;
-    }
-
-    entry->data.OR_descr = strdup(descr);
-    if (entry->data.OR_descr == NULL) {
-        DEBUGMSGTL(("agent/sysORTable", "Failed to allocate new sysORDescr\n"));
-        free(entry);
-        return SYS_ORTABLE_REGISTRATION_FAILED;
-    }
-
-    entry->data.OR_oid = (oid *) malloc(sizeof(oid) * oidlen);
-    if (entry->data.OR_oid == NULL) {
-        DEBUGMSGTL(("agent/sysORTable", "Failed to allocate new sysORID\n"));
-        free(entry->data.OR_descr);
-        free(entry);
-        return SYS_ORTABLE_REGISTRATION_FAILED;
-    }
-
-    memcpy(entry->data.OR_oid, oidin, sizeof(oid) * oidlen);
-    entry->data.OR_oidlen = oidlen;
-    entry->data.OR_sess = ss;
-
-    if(table) {
-        entry->next = table;
-        entry->prev = table->prev;
-        table->prev->next = entry;
-        table->prev = entry;
-    } else
-        table = entry->next = entry->prev = entry;
-
-    entry->data.OR_uptime = netsnmp_get_agent_uptime();
-
-    snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
-                        SNMPD_CALLBACK_REG_SYSOR, &entry->data);
-
-    return SYS_ORTABLE_REGISTERED_OK;
-}
-
-int
-register_sysORTable(oid * oidin, size_t oidlen, const char *descr)
-{
-    return register_sysORTable_sess(oidin, oidlen, descr, NULL);
-}
-
-int
-unregister_sysORTable_sess(oid * oidin,
-                           size_t oidlen, netsnmp_session * ss)
-{
-    int any_unregistered = 0;
-
-    DEBUGMSGTL(("agent/sysORTable", "sysORTable unregistering: "));
-    DEBUGMSGOID(("agent/sysORTable", oidin, oidlen));
-    DEBUGMSG(("agent/sysORTable", ", session %p\n", ss));
-
-    if(table) {
-        data_node run = table;
-        do {
-            data_node tmp = run;
-            run = run->next;
-            if (tmp->data.OR_sess == ss &&
-                snmp_oid_compare(oidin, oidlen,
-                                 tmp->data.OR_oid, tmp->data.OR_oidlen) == 0) {
-                erase(tmp);
-                any_unregistered = 1;
-            }
-        } while(table && run != table);
-    }
-
-    if (any_unregistered) {
-        DEBUGMSGTL(("agent/sysORTable", "unregistering successfull\n"));
-        return SYS_ORTABLE_UNREGISTERED_OK;
-    } else {
-        DEBUGMSGTL(("agent/sysORTable", "unregistering failed\n"));
-        return SYS_ORTABLE_NO_SUCH_REGISTRATION;
-    }
-}
-
-
-int
-unregister_sysORTable(oid * oidin, size_t oidlen)
-{
-    return unregister_sysORTable_sess(oidin, oidlen, NULL);
-}
-
-
-void
-unregister_sysORTable_by_session(netsnmp_session * ss)
-{
-    DEBUGMSGTL(("agent/sysORTable",
-                "sysORTable unregistering session %p\n", ss));
-
-   if(table) {
-        data_node run = table;
-        do {
-            data_node tmp = run;
-            run = run->next;
-            if (((ss->flags & SNMP_FLAGS_SUBSESSION) &&
-                 tmp->data.OR_sess == ss) ||
-                (!(ss->flags & SNMP_FLAGS_SUBSESSION) && tmp->data.OR_sess &&
-                 tmp->data.OR_sess->subsession == ss))
-                erase(tmp);
-        } while(table && run != table);
-    }
-
-    DEBUGMSGTL(("agent/sysORTable",
-                "sysORTable unregistering session %p done\n", ss));
-}
-
-static int
-register_sysOR_callback(int majorID, int minorID, void *serverarg,
-                        void *clientarg)
-{
-    struct sysORTable *parms = (struct sysORTable *) serverarg;
-
-    return register_sysORTable_sess(parms->OR_oid, parms->OR_oidlen,
-                                    parms->OR_descr, parms->OR_sess);
-}
-
-static int
-unregister_sysOR_by_session_callback(int majorID, int minorID,
-                                     void *serverarg, void *clientarg)
-{
-    netsnmp_session *session = (netsnmp_session *) serverarg;
-
-    unregister_sysORTable_by_session(session);
-
-    return 0;
-}
-
-static int
-unregister_sysOR_callback(int majorID, int minorID, void *serverarg,
-                          void *clientarg)
-{
-    struct sysORTable *parms = (struct sysORTable *) serverarg;
-
-    return unregister_sysORTable_sess(parms->OR_oid,
-                                      parms->OR_oidlen,
-                                      parms->OR_sess);
-}
-
-void
-init_agent_sysORTable(void)
-{
-    DEBUGMSGTL(("agent/sysORTable", "init_agent_sysORTable\n"));
-
-    snmp_register_callback(SNMP_CALLBACK_APPLICATION,
-                           SNMPD_CALLBACK_REQ_REG_SYSOR,
-                           register_sysOR_callback, NULL);
-    snmp_register_callback(SNMP_CALLBACK_APPLICATION,
-                           SNMPD_CALLBACK_REQ_UNREG_SYSOR,
-                           unregister_sysOR_callback, NULL);
-    snmp_register_callback(SNMP_CALLBACK_APPLICATION,
-                           SNMPD_CALLBACK_REQ_UNREG_SYSOR_SESS,
-                           unregister_sysOR_by_session_callback, NULL);
-}
-
-void
-shutdown_agent_sysORTable(void)
-{
-    DEBUGMSGTL(("agent/sysORTable", "shutdown_sysORTable\n"));
-    while(table)
-        erase(table);
-}
diff --git a/agent/agent_trap.c b/agent/agent_trap.c
index dfa9dcf..53e7c59 100644
--- a/agent/agent_trap.c
+++ b/agent/agent_trap.c
@@ -18,7 +18,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #if HAVE_UNISTD_H
 #include <unistd.h>
@@ -35,7 +34,11 @@
 #include <strings.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -46,6 +49,8 @@
 #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>
@@ -53,7 +58,6 @@
 #include <net-snmp/utilities.h>
 
 #include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/agent_trap.h>
 #include <net-snmp/agent/snmp_agent.h>
 #include <net-snmp/agent/agent_callbacks.h>
@@ -65,14 +69,6 @@
 #include "agentx/protocol.h"
 #endif
 
-netsnmp_feature_child_of(agent_trap_all, libnetsnmpagent)
-
-netsnmp_feature_child_of(trap_vars_with_context, agent_trap_all)
-netsnmp_feature_child_of(remove_trap_session, agent_trap_all)
-
-netsnmp_feature_child_of(send_v3trap,netsnmp_unused)
-netsnmp_feature_child_of(send_trap_pdu,netsnmp_unused)
-
 struct trap_sink {
     netsnmp_session *sesp;
     struct trap_sink *next;
@@ -82,28 +78,36 @@ struct trap_sink {
 
 struct trap_sink *sinks = NULL;
 
-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);
+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;
 
 #define SNMPV2_TRAPS_PREFIX	SNMP_OID_SNMPMODULES,1,1,5
-const oid       trap_prefix[]    = { SNMPV2_TRAPS_PREFIX };
-const oid       cold_start_oid[] = { SNMPV2_TRAPS_PREFIX, 1 };  /* SNMPv2-MIB */
+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 }; /* ??? */
 
 #define SNMPV2_TRAP_OBJS_PREFIX	SNMP_OID_SNMPMODULES,1,1,4
-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);
+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;
 
 #define SNMPV2_COMM_OBJS_PREFIX	SNMP_OID_SNMPMODULES,18,1
-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);
+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;
 #if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
 char           *snmp_trapcommunity = NULL;
 #endif
@@ -112,7 +116,7 @@ char           *snmp_trapcommunity = NULL;
 #define SNMP_AUTHENTICATED_TRAPS_ENABLED	1
 #define SNMP_AUTHENTICATED_TRAPS_DISABLED	2
 
-long            snmp_enableauthentraps = SNMP_AUTHENTICATED_TRAPS_DISABLED;
+int             snmp_enableauthentraps = SNMP_AUTHENTICATED_TRAPS_DISABLED;
 int             snmp_enableauthentrapsset = 0;
 
 /*
@@ -137,12 +141,18 @@ int             snmp_enableauthentrapsset = 0;
 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
 free_trap_session(struct trap_sink *sp)
 {
-    DEBUGMSGTL(("trap", "freeing callback trap session (%p, %p)\n", sp, sp->sesp));
     snmp_close(sp->sesp);
     free(sp);
 }
@@ -158,7 +168,7 @@ add_trap_session(netsnmp_session * ss, int pdutype, int confirm,
          * something else wants to handle notification registrations 
          */
         struct agent_add_trap_args args;
-        DEBUGMSGTL(("trap", "adding callback trap sink (%p)\n", ss));
+        DEBUGMSGTL(("trap", "adding callback trap sink\n"));
         args.ss = ss;
         args.confirm = confirm;
         snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
@@ -184,13 +194,11 @@ add_trap_session(netsnmp_session * ss, int pdutype, int confirm,
     return 1;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_REMOVE_TRAP_SESSION
 int
 remove_trap_session(netsnmp_session * ss)
 {
-    struct trap_sink *sp = sinks, *prev = NULL;
+    struct trap_sink *sp = sinks, *prev = 0;
 
-    DEBUGMSGTL(("trap", "removing trap sessions\n"));
     while (sp) {
         if (sp->sesp == ss) {
             if (prev) {
@@ -208,7 +216,6 @@ remove_trap_session(netsnmp_session * ss)
             /*
              * free_trap_session(sp);  
              */
-            DEBUGMSGTL(("trap", "removing trap session (%p, %p)\n", sp, sp->sesp));
             free(sp);
             return 1;
         }
@@ -217,7 +224,6 @@ remove_trap_session(netsnmp_session * ss)
     }
     return 0;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REMOVE_TRAP_SESSION */
 
 #if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
 static int
@@ -248,7 +254,7 @@ create_trap_session2(const char *sink, const char* sinkport,
     if ((NULL == netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
                                        NETSNMP_DS_LIB_CLIENT_ADDR)) && 
         ((0 == strcmp("localhost",sink)) || (0 == strcmp("127.0.0.1",sink))))
-        session.localname = strdup("localhost");
+        session.localname = "localhost";
 
     t = netsnmp_tdomain_transport_full("snmptrap", sink, 0, NULL, sinkport);
     if (t != NULL) {
@@ -312,7 +318,6 @@ void
 snmpd_free_trapsinks(void)
 {
     struct trap_sink *sp = sinks;
-    DEBUGMSGTL(("trap", "freeing trap sessions\n"));
     while (sp) {
         sinks = sinks->next;
         free_trap_session(sp);
@@ -333,6 +338,7 @@ convert_v2pdu_to_v1( netsnmp_pdu* template_v2pdu )
     netsnmp_pdu           *template_v1pdu;
     netsnmp_variable_list *first_vb, *vblist;
     netsnmp_variable_list *var;
+    size_t                 len;
 
     /*
      * Make a copy of the v2 Trap PDU
@@ -412,10 +418,9 @@ convert_v2pdu_to_v1( netsnmp_pdu* template_v2pdu )
                              snmptrapenterprise_oid,
                              snmptrapenterprise_oid_len);
         if (var) {
+            memdup((u_char**)&template_v1pdu->enterprise,
+                   (const u_char*)var->val.objid, var->val_len);
             template_v1pdu->enterprise_length = var->val_len/sizeof(oid);
-            template_v1pdu->enterprise =
-                snmp_duplicate_objid(var->val.objid,
-                                     template_v1pdu->enterprise_length);
         } else {
             template_v1pdu->enterprise        = NULL;
             template_v1pdu->enterprise_length = 0;		/* XXX ??? */
@@ -425,10 +430,10 @@ convert_v2pdu_to_v1( netsnmp_pdu* template_v2pdu )
          * For enterprise-specific traps, split the snmpTrapOID value
          *   into enterprise and specific trap
          */
-        size_t len = vblist->val_len / sizeof(oid);
+        len = vblist->val_len / sizeof(oid);
         if ( len <= 2 ) {
             snmp_log(LOG_WARNING,
-                     "send_trap: v2 trapOID too short (%d)\n", (int)len);
+                     "send_trap: v2 trapOID too short (%d)\n", len);
             snmp_free_pdu(template_v1pdu);
             return NULL;
         }
@@ -438,8 +443,8 @@ convert_v2pdu_to_v1( netsnmp_pdu* template_v2pdu )
         if (vblist->val.objid[len-1] == 0)
             len--;
         SNMP_FREE(template_v1pdu->enterprise);
-        template_v1pdu->enterprise =
-            snmp_duplicate_objid(vblist->val.objid, len);
+        memdup((u_char**)&template_v1pdu->enterprise,
+               (u_char *)vblist->val.objid, len*sizeof(oid));
         template_v1pdu->enterprise_length = len;
     }
     var = find_varbind_in_list( vblist, agentaddr_oid,
@@ -465,6 +470,7 @@ netsnmp_pdu*
 convert_v1pdu_to_v2( netsnmp_pdu* template_v1pdu )
 {
     netsnmp_pdu           *template_v2pdu;
+    netsnmp_variable_list *first_vb;
     netsnmp_variable_list *var;
     oid                    enterprise[MAX_OID_LEN];
     size_t                 enterprise_len;
@@ -481,6 +487,7 @@ convert_v1pdu_to_v2( netsnmp_pdu* template_v1pdu )
         return NULL;
     }
     template_v2pdu->command = SNMP_MSG_TRAP2;
+    first_vb = template_v2pdu->variables;
 
     /*
      * Insert an snmpTrapOID varbind before the original v1 varbind list
@@ -600,7 +607,7 @@ convert_v1pdu_to_v2( netsnmp_pdu* template_v1pdu )
  *			
  * @param specific is the specific trap value.
  *
- * @param enterprise is an enterprise oid in which you want to send specific 
+ * @param enterprise is an enterprise oid in which you want to send specifc 
  *	traps from. 
  *
  * @param enterprise_length is the length of the enterprise oid, use macro,
@@ -620,9 +627,9 @@ convert_v1pdu_to_v2( netsnmp_pdu* template_v1pdu )
  */
 int
 netsnmp_send_traps(int trap, int specific,
-                          const oid * enterprise, int enterprise_length,
+                          oid * enterprise, int enterprise_length,
                           netsnmp_variable_list * vars,
-                          const char * context, int flags)
+                          char * context, int flags)
 {
     netsnmp_pdu           *template_v1pdu;
     netsnmp_pdu           *template_v2pdu;
@@ -632,8 +639,6 @@ netsnmp_send_traps(int trap, int specific,
     in_addr_t             *pdu_in_addr_t;
     u_long                 uptime;
     struct trap_sink *sink;
-    const char            *v1trapaddress;
-    int                    res = 0;
 
     DEBUGMSGTL(( "trap", "send_trap %d %d ", trap, specific));
     DEBUGMSGOID(("trap", enterprise, enterprise_length));
@@ -715,7 +720,7 @@ netsnmp_send_traps(int trap, int specific,
                 !snmp_varlist_add_variable( &(template_v2pdu->variables),
                      snmptrapenterprise_oid, snmptrapenterprise_oid_len,
                      ASN_OBJECT_ID,
-                     enterprise, enterprise_length*sizeof(oid))) {
+                     (char*)enterprise, enterprise_length*sizeof(oid))) {
                 snmp_log(LOG_WARNING,
                      "send_trap: failed to add snmpEnterprise to v2 trap\n");
                 snmp_free_pdu(template_v2pdu);
@@ -787,29 +792,9 @@ netsnmp_send_traps(int trap, int specific,
      * Ensure that the v1 trap PDU includes the local IP address
      */
        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);
-       if (v1trapaddress != NULL) {
-           /* "v1trapaddress" was specified in config, try to resolve it */
-           res = netsnmp_gethostbyname_v4(v1trapaddress, pdu_in_addr_t);
-       }
-       if (v1trapaddress == NULL || res < 0) {
-           /* "v1trapaddress" was not specified in config or the resolution failed,
-            * try any local address */
-           *pdu_in_addr_t = get_myaddr();
-       }
-
+      *pdu_in_addr_t = get_myaddr();
     }
 
-    if (template_v2pdu) {
-	/* A context name was provided, so copy it and its length to the v2 pdu
-	 * template. */
-	if (context != NULL)
-	{
-		template_v2pdu->contextName    = strdup(context);
-		template_v2pdu->contextNameLen = strlen(context);
-	}
-    }
 
     /*
      *  Now loop through the list of trap sinks
@@ -847,7 +832,7 @@ netsnmp_send_traps(int trap, int specific,
 void
 send_enterprise_trap_vars(int trap,
                           int specific,
-                          const oid * enterprise, int enterprise_length,
+                          oid * enterprise, int enterprise_length,
                           netsnmp_variable_list * vars)
 {
     netsnmp_send_traps(trap, specific,
@@ -904,11 +889,14 @@ send_trap_to_sess(netsnmp_session * sess, netsnmp_pdu *template_pdu)
 {
     netsnmp_pdu    *pdu;
     int            result;
+    char           tmp[SPRINT_MAX_LEN];
+    int            len;
+
 
     if (!sess || !template_pdu)
         return;
 
-    DEBUGMSGTL(("trap", "sending trap type=%d, version=%ld\n",
+    DEBUGMSGTL(("trap", "sending trap type=%d, version=%d\n",
                 template_pdu->command, sess->version));
 
 #ifndef NETSNMP_DISABLE_SNMPV1
@@ -934,10 +922,8 @@ send_trap_to_sess(netsnmp_session * sess, netsnmp_pdu *template_pdu)
     } else {
         if ((sess->version == SNMP_VERSION_3) &&
                 (pdu->command == SNMP_MSG_TRAP2) &&
-                (sess->securityEngineIDLen == 0)) {
-            u_char          tmp[SPRINT_MAX_LEN];
-
-            int len = snmpv3_get_engineID(tmp, sizeof(tmp));
+                (pdu->securityEngineIDLen == 0)) {
+            len = snmpv3_get_engineID(tmp, sizeof(tmp));
             memdup(&pdu->securityEngineID, tmp, len);
             pdu->securityEngineIDLen = len;
         }
@@ -965,23 +951,6 @@ send_trap_vars(int trap, int specific, netsnmp_variable_list * vars)
                                   OID_LENGTH(trap_version_id), vars);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_TRAP_VARS_WITH_CONTEXT
-/* Send a trap under a context */
-void send_trap_vars_with_context(int trap, int specific, 
-              netsnmp_variable_list *vars, const char *context)
-{
-    if (trap == SNMP_TRAP_ENTERPRISESPECIFIC)
-        netsnmp_send_traps(trap, specific, objid_enterprisetrap,
-                                  OID_LENGTH(objid_enterprisetrap), vars,
-								  context, 0);
-    else
-        netsnmp_send_traps(trap, specific, trap_version_id,
-                                  OID_LENGTH(trap_version_id), vars, 
-								  context, 0);
-    	
-}
-#endif /* NETSNMP_FEATURE_REMOVE_TRAP_VARS_WITH_CONTEXT */
-
 /**
  * Sends an SNMPv1 trap (or the SNMPv2 equivalent) to the list of  
  * configured trap destinations (or "sinks"), using the provided 
@@ -1040,34 +1009,11 @@ send_v2trap(netsnmp_variable_list * vars)
     send_trap_vars(-1, -1, vars);
 }
 
-/**
- * Similar to send_v2trap(), with the added ability to specify a context.  If
- * the last parameter is NULL, then this call is equivalent to send_v2trap().
- *
- * @param vars is used to supply the list of variable bindings for the trap.
- * 
- * @param context is used to specify the context of the trap.
- *
- * @return void
- *
- * @see send_v2trap
- */
-#ifndef NETSNMP_FEATURE_REMOVE_SEND_V3TRAP
-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);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_SEND_V3TRAP */
-
-#ifndef NETSNMP_FEATURE_REMOVE_SEND_TRAP_PDU
 void
 send_trap_pdu(netsnmp_pdu *pdu)
 {
     send_trap_vars(-1, -1, pdu->variables);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SEND_TRAP_PDU */
 
 
 
@@ -1129,6 +1075,7 @@ snmpd_parse_config_authtrap(const char *token, char *cptr)
 void
 snmpd_parse_config_trapsink(const char *token, char *cptr)
 {
+    char            tmpbuf[1024];
     char           *sp, *cp, *pp = NULL;
     char            *st;
 
@@ -1141,7 +1088,9 @@ snmpd_parse_config_trapsink(const char *token, char *cptr)
     if (pp)
 	config_pwarn("The separate port argument to trapsink is deprecated");
     if (create_v1_trap_session(sp, pp, cp ? cp : snmp_trapcommunity) == 0) {
-	netsnmp_config_error("cannot create trapsink: %s", cptr);
+        snprintf(tmpbuf, sizeof(tmpbuf), "cannot create trapsink: %s", cptr);
+        tmpbuf[sizeof(tmpbuf)-1] = '\0';
+        config_perror(tmpbuf);
     }
 }
 #endif
@@ -1150,7 +1099,10 @@ snmpd_parse_config_trapsink(const char *token, char *cptr)
 void
 snmpd_parse_config_trap2sink(const char *word, char *cptr)
 {
-    char           *st, *sp, *cp, *pp = NULL;
+    char            tmpbuf[1024];
+    char           *sp, *cp, *pp = NULL;
+    int             sinkport;
+    char            *st;
 
     if (!snmp_trapcommunity)
         snmp_trapcommunity = strdup("public");
@@ -1161,14 +1113,19 @@ snmpd_parse_config_trap2sink(const char *word, char *cptr)
     if (pp)
 	config_pwarn("The separate port argument to trapsink2 is deprecated");
     if (create_v2_trap_session(sp, pp, cp ? cp : snmp_trapcommunity) == 0) {
-	netsnmp_config_error("cannot create trap2sink: %s", cptr);
+        snprintf(tmpbuf, sizeof(tmpbuf), "cannot create trap2sink: %s", cptr);
+        tmpbuf[sizeof(tmpbuf)-1] = '\0';
+        config_perror(tmpbuf);
     }
 }
 
 void
 snmpd_parse_config_informsink(const char *word, char *cptr)
 {
-    char           *st, *sp, *cp, *pp = NULL;
+    char            tmpbuf[1024];
+    char           *sp, *cp, *pp = NULL;
+    int             sinkport;
+    char            *st;
 
     if (!snmp_trapcommunity)
         snmp_trapcommunity = strdup("public");
@@ -1179,7 +1136,9 @@ snmpd_parse_config_informsink(const char *word, char *cptr)
     if (pp)
 	config_pwarn("The separate port argument to informsink is deprecated");
     if (create_v2_inform_session(sp, pp, cp ? cp : snmp_trapcommunity) == 0) {
-	netsnmp_config_error("cannot create informsink: %s", cptr);
+        snprintf(tmpbuf, sizeof(tmpbuf), "cannot create informsink: %s", cptr);
+        tmpbuf[sizeof(tmpbuf)-1] = '\0';
+        config_perror(tmpbuf);
     }
 }
 #endif
@@ -1214,10 +1173,9 @@ trapOptProc(int argc, char *const *argv, int opt)
 void
 snmpd_parse_config_trapsess(const char *word, char *cptr)
 {
-    char           *argv[MAX_ARGS], *cp = cptr;
-    int             argn, rc;
+    char           *argv[MAX_ARGS], *cp = cptr, tmp[SPRINT_MAX_LEN];
+    int             argn, arg;
     netsnmp_session session, *ss;
-    netsnmp_transport *transport;
     size_t          len;
 
     /*
@@ -1230,28 +1188,15 @@ snmpd_parse_config_trapsess(const char *word, char *cptr)
      */
     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);
     }
 
-    netsnmp_parse_args(argn, argv, &session, "C:", trapOptProc,
-                       NETSNMP_PARSE_ARGS_NOLOGGING |
-                       NETSNMP_PARSE_ARGS_NOZERO);
+    arg = snmp_parse_args(argn, argv, &session, "C:", trapOptProc);
 
-    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);
+    ss = snmp_add(&session,
+		  netsnmp_transport_open_client("snmptrap", session.peername),
+		  NULL, NULL);
     for (; argn > 0; argn--) {
         free(argv[argn - 1]);
     }
@@ -1270,18 +1215,21 @@ snmpd_parse_config_trapsess(const char *word, char *cptr)
     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)
-        traptype = SNMP_MSG_TRAP;
+    if (ss->version == SNMP_VERSION_1) {
+        add_trap_session(ss, SNMP_MSG_TRAP, 0, SNMP_VERSION_1);
+    } else {
+#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 25d080f..fdc5d71 100644
--- a/agent/auto_nlist.c
+++ b/agent/auto_nlist.c
@@ -52,9 +52,6 @@ auto_nlist_value(const char *string)
         }
     }
     if (*ptr == 0) {
-#if !(defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7))
-        static char *n_name = NULL;
-#endif
         *ptr = (struct autonlist *) malloc(sizeof(struct autonlist));
         it = *ptr;
         it->left = 0;
@@ -65,46 +62,18 @@ auto_nlist_value(const char *string)
          * 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) || defined(aix7)
+#if defined(aix4) || defined(aix5) || defined(aix6)
         strcpy(it->nl[0].n_name, string);
         it->nl[0].n_name[strlen(string)+1] = '\0';
-#elif defined(freebsd9)
-        sprintf(__DECONST(char*, it->nl[0].n_name), "_%s", string);
 #else
-
-        if (n_name != NULL)
-            free(n_name);
-
-        n_name = malloc(strlen(string) + 2);
-        if (n_name == NULL) {
-            snmp_log(LOG_ERR, "nlist err: failed to allocate memory");
-            return (-1);
-        }
-        snprintf(n_name, strlen(string) + 2, "_%s", string);
-        it->nl[0].n_name = (const char*)n_name;
+        sprintf(it->nl[0].n_name, "_%s", string);
 #endif
         it->nl[1].n_name = 0;
         init_nlist(it->nl);
-#if !(defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7) || \
-                    defined(netbsd1) || defined(dragonfly))
+#if !(defined(aix4) || defined(aix5) || defined(aix6)) 
         if (it->nl[0].n_type == 0) {
-#if defined(freebsd9)
-            strcpy(__DECONST(char*, it->nl[0].n_name), string);
-            __DECONST(char*, it->nl[0].n_name)[strlen(string)+1] = '\0';
-#else
-            static char *n_name2 = NULL;
-
-            if (n_name2 != NULL)
-                free(n_name2);
-
-            n_name2 = malloc(strlen(string) + 1);
-            if (n_name2 == NULL) {
-                snmp_log(LOG_ERR, "nlist err: failed to allocate memory");
-                return (-1);
-            }
-            strcpy(n_name2, string);
-            it->nl[0].n_name = (const char*)n_name2;
-#endif
+            strcpy(it->nl[0].n_name, string);
+            it->nl[0].n_name[strlen(string)+1] = '\0';
             init_nlist(it->nl);
         }
 #endif
@@ -116,8 +85,7 @@ auto_nlist_value(const char *string)
 	    }
             return (-1);
         } else {
-            DEBUGMSGTL(("auto_nlist:auto_nlist_value",
-			"found symbol %s at %lx.\n",
+            DEBUGMSGTL(("auto_nlist:auto_nlist_value", "found symbol %s at %x.\n",
                         it->symbol, it->nl[0].n_value));
             return (it->nl[0].n_value);
         }
@@ -126,7 +94,7 @@ auto_nlist_value(const char *string)
 }
 
 int
-auto_nlist(const char *string, char *var, size_t size)
+auto_nlist(const char *string, char *var, int size)
 {
     long            result;
     int             ret;
@@ -148,6 +116,7 @@ auto_nlist(const char *string, char *var, size_t size)
 static void
 init_nlist(struct nlist nl[])
 {
+#ifdef NETSNMP_CAN_USE_NLIST
     int             ret;
 #if HAVE_KVM_OPENFILES
     kvm_t          *kernel;
@@ -175,7 +144,7 @@ init_nlist(struct nlist nl[])
     }
     kvm_close(kernel);
 #else                           /* ! HAVE_KVM_OPENFILES */
-#if (defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)) && defined(HAVE_KNLIST)
+#if (defined(aix4) || defined(aix5) || defined(aix6)) && 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));
@@ -205,7 +174,7 @@ init_nlist(struct nlist nl[])
 #endif                          /*aix4 */
 #endif                          /* ! HAVE_KVM_OPENFILES */
     for (ret = 0; nl[ret].n_name != NULL; ret++) {
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#if defined(aix4) || defined(aix5) || defined(aix6)
         if (nl[ret].n_type == 0 && nl[ret].n_value != 0)
             nl[ret].n_type = 1;
 #endif
@@ -220,10 +189,11 @@ init_nlist(struct nlist nl[])
                         (unsigned int) nl[ret].n_value));
         }
     }
+#endif                          /* NETSNMP_CAN_USE_NLIST */
 }
 
 int
-KNLookup(struct nlist nl[], int nl_which, char *buf, size_t s)
+KNLookup(struct nlist nl[], int nl_which, char *buf, int s)
 {
     struct nlist   *nlp = &nl[nl_which];
 
diff --git a/agent/helpers/Makefile.depend b/agent/helpers/Makefile.depend
index 6bc869a..cfc2115 100644
--- a/agent/helpers/Makefile.depend
+++ b/agent/helpers/Makefile.depend
@@ -4,66 +4,59 @@
 ./all_helpers.lo: ../../include/net-snmp/system/linux.h
 ./all_helpers.lo: ../../include/net-snmp/system/sysv.h
 ./all_helpers.lo: ../../include/net-snmp/system/generic.h
-./all_helpers.lo: ../../include/net-snmp/net-snmp-features.h
+./all_helpers.lo: ../../include/net-snmp/machine/generic.h
 ./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
-./all_helpers.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./all_helpers.lo: ../../include/net-snmp/library/ucd_compat.h
-./all_helpers.lo: ../../include/net-snmp/library/mib.h
-./all_helpers.lo: ../../include/net-snmp/mib_api.h
-./all_helpers.lo: ../../include/net-snmp/library/parse.h
-./all_helpers.lo: ../../include/net-snmp/library/oid_stash.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmp_impl.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmp.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmp-tc.h
-./all_helpers.lo: ../../include/net-snmp/library/getopt.h
 ./all_helpers.lo: ../../include/net-snmp/utilities.h
+./all_helpers.lo: ../../include/net-snmp/library/snmp_client.h
 ./all_helpers.lo: ../../include/net-snmp/library/system.h
 ./all_helpers.lo: ../../include/net-snmp/library/tools.h
 ./all_helpers.lo: ../../include/net-snmp/library/int64.h
 ./all_helpers.lo: ../../include/net-snmp/library/mt_support.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmp_alarm.h
+./all_helpers.lo: ../../include/net-snmp/library/callback.h
 ./all_helpers.lo: ../../include/net-snmp/library/data_list.h
+./all_helpers.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./all_helpers.lo: ../../include/net-snmp/library/container.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmp_assert.h
 ./all_helpers.lo: ../../include/net-snmp/version.h
+./all_helpers.lo: ../../include/net-snmp/session_api.h
+./all_helpers.lo: ../../include/net-snmp/library/snmp_transport.h
+./all_helpers.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./all_helpers.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./all_helpers.lo: ../../include/net-snmp/pdu_api.h
+./all_helpers.lo: ../../include/net-snmp/mib_api.h
+./all_helpers.lo: ../../include/net-snmp/library/mib.h
+./all_helpers.lo: ../../include/net-snmp/library/parse.h
+./all_helpers.lo: ../../include/net-snmp/varbind_api.h
 ./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
@@ -72,7 +65,6 @@
 ./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
@@ -110,68 +102,63 @@
 ./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/net-snmp-features.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
-./baby_steps.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./baby_steps.lo: ../../include/net-snmp/library/ucd_compat.h
-./baby_steps.lo: ../../include/net-snmp/library/mib.h
-./baby_steps.lo: ../../include/net-snmp/mib_api.h
-./baby_steps.lo: ../../include/net-snmp/library/parse.h
-./baby_steps.lo: ../../include/net-snmp/library/oid_stash.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmp_impl.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmp.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmp-tc.h
-./baby_steps.lo: ../../include/net-snmp/library/getopt.h
 ./baby_steps.lo: ../../include/net-snmp/utilities.h
+./baby_steps.lo: ../../include/net-snmp/library/snmp_client.h
 ./baby_steps.lo: ../../include/net-snmp/library/system.h
 ./baby_steps.lo: ../../include/net-snmp/library/tools.h
 ./baby_steps.lo: ../../include/net-snmp/library/int64.h
 ./baby_steps.lo: ../../include/net-snmp/library/mt_support.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmp_alarm.h
+./baby_steps.lo: ../../include/net-snmp/library/callback.h
 ./baby_steps.lo: ../../include/net-snmp/library/data_list.h
+./baby_steps.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./baby_steps.lo: ../../include/net-snmp/library/container.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmp_assert.h
 ./baby_steps.lo: ../../include/net-snmp/version.h
+./baby_steps.lo: ../../include/net-snmp/session_api.h
+./baby_steps.lo: ../../include/net-snmp/library/snmp_transport.h
+./baby_steps.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./baby_steps.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./baby_steps.lo: ../../include/net-snmp/pdu_api.h
+./baby_steps.lo: ../../include/net-snmp/mib_api.h
+./baby_steps.lo: ../../include/net-snmp/library/mib.h
+./baby_steps.lo: ../../include/net-snmp/library/parse.h
+./baby_steps.lo: ../../include/net-snmp/varbind_api.h
 ./baby_steps.lo: ../../include/net-snmp/config_api.h
 ./baby_steps.lo: ../../include/net-snmp/library/read_config.h
 ./baby_steps.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -180,7 +167,6 @@
 ./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
@@ -218,67 +204,63 @@
 ./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
-./bulk_to_next.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./bulk_to_next.lo: ../../include/net-snmp/library/ucd_compat.h
-./bulk_to_next.lo: ../../include/net-snmp/library/mib.h
-./bulk_to_next.lo: ../../include/net-snmp/mib_api.h
-./bulk_to_next.lo: ../../include/net-snmp/library/parse.h
-./bulk_to_next.lo: ../../include/net-snmp/library/oid_stash.h
-./bulk_to_next.lo: ../../include/net-snmp/net-snmp-features.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmp_impl.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmp.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmp-tc.h
-./bulk_to_next.lo: ../../include/net-snmp/library/getopt.h
 ./bulk_to_next.lo: ../../include/net-snmp/utilities.h
+./bulk_to_next.lo: ../../include/net-snmp/library/snmp_client.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/system.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/tools.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/int64.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/mt_support.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmp_alarm.h
+./bulk_to_next.lo: ../../include/net-snmp/library/callback.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/data_list.h
+./bulk_to_next.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./bulk_to_next.lo: ../../include/net-snmp/library/container.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmp_assert.h
 ./bulk_to_next.lo: ../../include/net-snmp/version.h
+./bulk_to_next.lo: ../../include/net-snmp/session_api.h
+./bulk_to_next.lo: ../../include/net-snmp/library/snmp_transport.h
+./bulk_to_next.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./bulk_to_next.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./bulk_to_next.lo: ../../include/net-snmp/pdu_api.h
+./bulk_to_next.lo: ../../include/net-snmp/mib_api.h
+./bulk_to_next.lo: ../../include/net-snmp/library/mib.h
+./bulk_to_next.lo: ../../include/net-snmp/library/parse.h
+./bulk_to_next.lo: ../../include/net-snmp/varbind_api.h
 ./bulk_to_next.lo: ../../include/net-snmp/config_api.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/read_config.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -287,7 +269,6 @@
 ./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
@@ -325,67 +306,63 @@
 ./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/net-snmp-features.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
-./cache_handler.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./cache_handler.lo: ../../include/net-snmp/library/ucd_compat.h
-./cache_handler.lo: ../../include/net-snmp/library/mib.h
-./cache_handler.lo: ../../include/net-snmp/mib_api.h
-./cache_handler.lo: ../../include/net-snmp/library/parse.h
-./cache_handler.lo: ../../include/net-snmp/library/oid_stash.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmp_impl.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmp.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmp-tc.h
-./cache_handler.lo: ../../include/net-snmp/library/getopt.h
 ./cache_handler.lo: ../../include/net-snmp/utilities.h
+./cache_handler.lo: ../../include/net-snmp/library/snmp_client.h
 ./cache_handler.lo: ../../include/net-snmp/library/system.h
 ./cache_handler.lo: ../../include/net-snmp/library/tools.h
 ./cache_handler.lo: ../../include/net-snmp/library/int64.h
 ./cache_handler.lo: ../../include/net-snmp/library/mt_support.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmp_alarm.h
+./cache_handler.lo: ../../include/net-snmp/library/callback.h
 ./cache_handler.lo: ../../include/net-snmp/library/data_list.h
+./cache_handler.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./cache_handler.lo: ../../include/net-snmp/library/container.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmp_assert.h
 ./cache_handler.lo: ../../include/net-snmp/version.h
+./cache_handler.lo: ../../include/net-snmp/session_api.h
+./cache_handler.lo: ../../include/net-snmp/library/snmp_transport.h
+./cache_handler.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./cache_handler.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./cache_handler.lo: ../../include/net-snmp/pdu_api.h
+./cache_handler.lo: ../../include/net-snmp/mib_api.h
+./cache_handler.lo: ../../include/net-snmp/library/mib.h
+./cache_handler.lo: ../../include/net-snmp/library/parse.h
+./cache_handler.lo: ../../include/net-snmp/varbind_api.h
 ./cache_handler.lo: ../../include/net-snmp/config_api.h
 ./cache_handler.lo: ../../include/net-snmp/library/read_config.h
 ./cache_handler.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -394,7 +371,6 @@
 ./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
@@ -432,67 +408,63 @@
 ./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
-./debug_handler.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./debug_handler.lo: ../../include/net-snmp/library/ucd_compat.h
-./debug_handler.lo: ../../include/net-snmp/library/mib.h
-./debug_handler.lo: ../../include/net-snmp/mib_api.h
-./debug_handler.lo: ../../include/net-snmp/library/parse.h
-./debug_handler.lo: ../../include/net-snmp/library/oid_stash.h
-./debug_handler.lo: ../../include/net-snmp/net-snmp-features.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmp_impl.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmp.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmp-tc.h
-./debug_handler.lo: ../../include/net-snmp/library/getopt.h
 ./debug_handler.lo: ../../include/net-snmp/utilities.h
+./debug_handler.lo: ../../include/net-snmp/library/snmp_client.h
 ./debug_handler.lo: ../../include/net-snmp/library/system.h
 ./debug_handler.lo: ../../include/net-snmp/library/tools.h
 ./debug_handler.lo: ../../include/net-snmp/library/int64.h
 ./debug_handler.lo: ../../include/net-snmp/library/mt_support.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmp_alarm.h
+./debug_handler.lo: ../../include/net-snmp/library/callback.h
 ./debug_handler.lo: ../../include/net-snmp/library/data_list.h
+./debug_handler.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./debug_handler.lo: ../../include/net-snmp/library/container.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmp_assert.h
 ./debug_handler.lo: ../../include/net-snmp/version.h
+./debug_handler.lo: ../../include/net-snmp/session_api.h
+./debug_handler.lo: ../../include/net-snmp/library/snmp_transport.h
+./debug_handler.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./debug_handler.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./debug_handler.lo: ../../include/net-snmp/pdu_api.h
+./debug_handler.lo: ../../include/net-snmp/mib_api.h
+./debug_handler.lo: ../../include/net-snmp/library/mib.h
+./debug_handler.lo: ../../include/net-snmp/library/parse.h
+./debug_handler.lo: ../../include/net-snmp/varbind_api.h
 ./debug_handler.lo: ../../include/net-snmp/config_api.h
 ./debug_handler.lo: ../../include/net-snmp/library/read_config.h
 ./debug_handler.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -501,7 +473,6 @@
 ./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
@@ -539,67 +510,63 @@
 ./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/net-snmp-features.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
-./instance.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./instance.lo: ../../include/net-snmp/library/ucd_compat.h
-./instance.lo: ../../include/net-snmp/library/mib.h
-./instance.lo: ../../include/net-snmp/mib_api.h
-./instance.lo: ../../include/net-snmp/library/parse.h
-./instance.lo: ../../include/net-snmp/library/oid_stash.h
 ./instance.lo: ../../include/net-snmp/library/snmp_impl.h
 ./instance.lo: ../../include/net-snmp/library/snmp.h
 ./instance.lo: ../../include/net-snmp/library/snmp-tc.h
-./instance.lo: ../../include/net-snmp/library/getopt.h
 ./instance.lo: ../../include/net-snmp/utilities.h
+./instance.lo: ../../include/net-snmp/library/snmp_client.h
 ./instance.lo: ../../include/net-snmp/library/system.h
 ./instance.lo: ../../include/net-snmp/library/tools.h
 ./instance.lo: ../../include/net-snmp/library/int64.h
 ./instance.lo: ../../include/net-snmp/library/mt_support.h
 ./instance.lo: ../../include/net-snmp/library/snmp_alarm.h
+./instance.lo: ../../include/net-snmp/library/callback.h
 ./instance.lo: ../../include/net-snmp/library/data_list.h
+./instance.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./instance.lo: ../../include/net-snmp/library/container.h
 ./instance.lo: ../../include/net-snmp/library/snmp_assert.h
 ./instance.lo: ../../include/net-snmp/version.h
+./instance.lo: ../../include/net-snmp/session_api.h
+./instance.lo: ../../include/net-snmp/library/snmp_transport.h
+./instance.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./instance.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./instance.lo: ../../include/net-snmp/pdu_api.h
+./instance.lo: ../../include/net-snmp/mib_api.h
+./instance.lo: ../../include/net-snmp/library/mib.h
+./instance.lo: ../../include/net-snmp/library/parse.h
+./instance.lo: ../../include/net-snmp/varbind_api.h
 ./instance.lo: ../../include/net-snmp/config_api.h
 ./instance.lo: ../../include/net-snmp/library/read_config.h
 ./instance.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -608,7 +575,6 @@
 ./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
@@ -646,67 +612,63 @@
 ./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/net-snmp-features.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
-./mode_end_call.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mode_end_call.lo: ../../include/net-snmp/library/ucd_compat.h
-./mode_end_call.lo: ../../include/net-snmp/library/mib.h
-./mode_end_call.lo: ../../include/net-snmp/mib_api.h
-./mode_end_call.lo: ../../include/net-snmp/library/parse.h
-./mode_end_call.lo: ../../include/net-snmp/library/oid_stash.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmp.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmp-tc.h
-./mode_end_call.lo: ../../include/net-snmp/library/getopt.h
 ./mode_end_call.lo: ../../include/net-snmp/utilities.h
+./mode_end_call.lo: ../../include/net-snmp/library/snmp_client.h
 ./mode_end_call.lo: ../../include/net-snmp/library/system.h
 ./mode_end_call.lo: ../../include/net-snmp/library/tools.h
 ./mode_end_call.lo: ../../include/net-snmp/library/int64.h
 ./mode_end_call.lo: ../../include/net-snmp/library/mt_support.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mode_end_call.lo: ../../include/net-snmp/library/callback.h
 ./mode_end_call.lo: ../../include/net-snmp/library/data_list.h
+./mode_end_call.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mode_end_call.lo: ../../include/net-snmp/library/container.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mode_end_call.lo: ../../include/net-snmp/version.h
+./mode_end_call.lo: ../../include/net-snmp/session_api.h
+./mode_end_call.lo: ../../include/net-snmp/library/snmp_transport.h
+./mode_end_call.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mode_end_call.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mode_end_call.lo: ../../include/net-snmp/pdu_api.h
+./mode_end_call.lo: ../../include/net-snmp/mib_api.h
+./mode_end_call.lo: ../../include/net-snmp/library/mib.h
+./mode_end_call.lo: ../../include/net-snmp/library/parse.h
+./mode_end_call.lo: ../../include/net-snmp/varbind_api.h
 ./mode_end_call.lo: ../../include/net-snmp/config_api.h
 ./mode_end_call.lo: ../../include/net-snmp/library/read_config.h
 ./mode_end_call.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -715,7 +677,6 @@
 ./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
@@ -753,67 +714,63 @@
 ./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
-./multiplexer.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./multiplexer.lo: ../../include/net-snmp/library/ucd_compat.h
-./multiplexer.lo: ../../include/net-snmp/library/mib.h
-./multiplexer.lo: ../../include/net-snmp/mib_api.h
-./multiplexer.lo: ../../include/net-snmp/library/parse.h
-./multiplexer.lo: ../../include/net-snmp/library/oid_stash.h
-./multiplexer.lo: ../../include/net-snmp/net-snmp-features.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmp_impl.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmp.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmp-tc.h
-./multiplexer.lo: ../../include/net-snmp/library/getopt.h
 ./multiplexer.lo: ../../include/net-snmp/utilities.h
+./multiplexer.lo: ../../include/net-snmp/library/snmp_client.h
 ./multiplexer.lo: ../../include/net-snmp/library/system.h
 ./multiplexer.lo: ../../include/net-snmp/library/tools.h
 ./multiplexer.lo: ../../include/net-snmp/library/int64.h
 ./multiplexer.lo: ../../include/net-snmp/library/mt_support.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmp_alarm.h
+./multiplexer.lo: ../../include/net-snmp/library/callback.h
 ./multiplexer.lo: ../../include/net-snmp/library/data_list.h
+./multiplexer.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./multiplexer.lo: ../../include/net-snmp/library/container.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmp_assert.h
 ./multiplexer.lo: ../../include/net-snmp/version.h
+./multiplexer.lo: ../../include/net-snmp/session_api.h
+./multiplexer.lo: ../../include/net-snmp/library/snmp_transport.h
+./multiplexer.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./multiplexer.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./multiplexer.lo: ../../include/net-snmp/pdu_api.h
+./multiplexer.lo: ../../include/net-snmp/mib_api.h
+./multiplexer.lo: ../../include/net-snmp/library/mib.h
+./multiplexer.lo: ../../include/net-snmp/library/parse.h
+./multiplexer.lo: ../../include/net-snmp/varbind_api.h
 ./multiplexer.lo: ../../include/net-snmp/config_api.h
 ./multiplexer.lo: ../../include/net-snmp/library/read_config.h
 ./multiplexer.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -822,7 +779,6 @@
 ./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
@@ -860,67 +816,62 @@
 ./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/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
-./null.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./null.lo: ../../include/net-snmp/library/ucd_compat.h
-./null.lo: ../../include/net-snmp/library/mib.h
-./null.lo: ../../include/net-snmp/mib_api.h
-./null.lo: ../../include/net-snmp/library/parse.h
-./null.lo: ../../include/net-snmp/library/oid_stash.h
-./null.lo: ../../include/net-snmp/net-snmp-features.h
 ./null.lo: ../../include/net-snmp/library/snmp_impl.h
 ./null.lo: ../../include/net-snmp/library/snmp.h
 ./null.lo: ../../include/net-snmp/library/snmp-tc.h
-./null.lo: ../../include/net-snmp/library/getopt.h
 ./null.lo: ../../include/net-snmp/utilities.h
+./null.lo: ../../include/net-snmp/library/snmp_client.h
 ./null.lo: ../../include/net-snmp/library/system.h
 ./null.lo: ../../include/net-snmp/library/tools.h
 ./null.lo: ../../include/net-snmp/library/int64.h
 ./null.lo: ../../include/net-snmp/library/mt_support.h
 ./null.lo: ../../include/net-snmp/library/snmp_alarm.h
+./null.lo: ../../include/net-snmp/library/callback.h
 ./null.lo: ../../include/net-snmp/library/data_list.h
+./null.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./null.lo: ../../include/net-snmp/library/container.h
 ./null.lo: ../../include/net-snmp/library/snmp_assert.h
 ./null.lo: ../../include/net-snmp/version.h
+./null.lo: ../../include/net-snmp/session_api.h
+./null.lo: ../../include/net-snmp/library/snmp_transport.h
+./null.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./null.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./null.lo: ../../include/net-snmp/pdu_api.h ../../include/net-snmp/mib_api.h
+./null.lo: ../../include/net-snmp/library/mib.h
+./null.lo: ../../include/net-snmp/library/parse.h
+./null.lo: ../../include/net-snmp/varbind_api.h
 ./null.lo: ../../include/net-snmp/config_api.h
 ./null.lo: ../../include/net-snmp/library/read_config.h
 ./null.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -929,7 +880,6 @@
 ./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
@@ -967,67 +917,63 @@
 ./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/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
-./old_api.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./old_api.lo: ../../include/net-snmp/library/ucd_compat.h
-./old_api.lo: ../../include/net-snmp/library/mib.h
-./old_api.lo: ../../include/net-snmp/mib_api.h
-./old_api.lo: ../../include/net-snmp/library/parse.h
-./old_api.lo: ../../include/net-snmp/library/oid_stash.h
-./old_api.lo: ../../include/net-snmp/net-snmp-features.h
 ./old_api.lo: ../../include/net-snmp/library/snmp_impl.h
 ./old_api.lo: ../../include/net-snmp/library/snmp.h
 ./old_api.lo: ../../include/net-snmp/library/snmp-tc.h
-./old_api.lo: ../../include/net-snmp/library/getopt.h
 ./old_api.lo: ../../include/net-snmp/utilities.h
+./old_api.lo: ../../include/net-snmp/library/snmp_client.h
 ./old_api.lo: ../../include/net-snmp/library/system.h
 ./old_api.lo: ../../include/net-snmp/library/tools.h
 ./old_api.lo: ../../include/net-snmp/library/int64.h
 ./old_api.lo: ../../include/net-snmp/library/mt_support.h
 ./old_api.lo: ../../include/net-snmp/library/snmp_alarm.h
+./old_api.lo: ../../include/net-snmp/library/callback.h
 ./old_api.lo: ../../include/net-snmp/library/data_list.h
+./old_api.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./old_api.lo: ../../include/net-snmp/library/container.h
 ./old_api.lo: ../../include/net-snmp/library/snmp_assert.h
 ./old_api.lo: ../../include/net-snmp/version.h
+./old_api.lo: ../../include/net-snmp/session_api.h
+./old_api.lo: ../../include/net-snmp/library/snmp_transport.h
+./old_api.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./old_api.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./old_api.lo: ../../include/net-snmp/pdu_api.h
+./old_api.lo: ../../include/net-snmp/mib_api.h
+./old_api.lo: ../../include/net-snmp/library/mib.h
+./old_api.lo: ../../include/net-snmp/library/parse.h
+./old_api.lo: ../../include/net-snmp/varbind_api.h
 ./old_api.lo: ../../include/net-snmp/config_api.h
 ./old_api.lo: ../../include/net-snmp/library/read_config.h
 ./old_api.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1036,7 +982,6 @@
 ./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
@@ -1074,68 +1019,64 @@
 ./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/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
-./read_only.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./read_only.lo: ../../include/net-snmp/library/ucd_compat.h
-./read_only.lo: ../../include/net-snmp/library/mib.h
-./read_only.lo: ../../include/net-snmp/mib_api.h
-./read_only.lo: ../../include/net-snmp/library/parse.h
-./read_only.lo: ../../include/net-snmp/library/oid_stash.h
-./read_only.lo: ../../include/net-snmp/net-snmp-features.h
 ./read_only.lo: ../../include/net-snmp/library/snmp_impl.h
 ./read_only.lo: ../../include/net-snmp/library/snmp.h
 ./read_only.lo: ../../include/net-snmp/library/snmp-tc.h
-./read_only.lo: ../../include/net-snmp/library/getopt.h
 ./read_only.lo: ../../include/net-snmp/utilities.h
+./read_only.lo: ../../include/net-snmp/library/snmp_client.h
 ./read_only.lo: ../../include/net-snmp/library/system.h
 ./read_only.lo: ../../include/net-snmp/library/tools.h
 ./read_only.lo: ../../include/net-snmp/library/int64.h
 ./read_only.lo: ../../include/net-snmp/library/mt_support.h
 ./read_only.lo: ../../include/net-snmp/library/snmp_alarm.h
+./read_only.lo: ../../include/net-snmp/library/callback.h
 ./read_only.lo: ../../include/net-snmp/library/data_list.h
+./read_only.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./read_only.lo: ../../include/net-snmp/library/container.h
 ./read_only.lo: ../../include/net-snmp/library/snmp_assert.h
 ./read_only.lo: ../../include/net-snmp/version.h
+./read_only.lo: ../../include/net-snmp/session_api.h
+./read_only.lo: ../../include/net-snmp/library/snmp_transport.h
+./read_only.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./read_only.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./read_only.lo: ../../include/net-snmp/pdu_api.h
+./read_only.lo: ../../include/net-snmp/mib_api.h
+./read_only.lo: ../../include/net-snmp/library/mib.h
+./read_only.lo: ../../include/net-snmp/library/parse.h
+./read_only.lo: ../../include/net-snmp/varbind_api.h
 ./read_only.lo: ../../include/net-snmp/config_api.h
 ./read_only.lo: ../../include/net-snmp/library/read_config.h
 ./read_only.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1144,7 +1085,6 @@
 ./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
@@ -1182,67 +1122,63 @@
 ./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/net-snmp-features.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/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
-./row_merge.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./row_merge.lo: ../../include/net-snmp/library/ucd_compat.h
-./row_merge.lo: ../../include/net-snmp/library/mib.h
-./row_merge.lo: ../../include/net-snmp/mib_api.h
-./row_merge.lo: ../../include/net-snmp/library/parse.h
-./row_merge.lo: ../../include/net-snmp/library/oid_stash.h
 ./row_merge.lo: ../../include/net-snmp/library/snmp_impl.h
 ./row_merge.lo: ../../include/net-snmp/library/snmp.h
 ./row_merge.lo: ../../include/net-snmp/library/snmp-tc.h
-./row_merge.lo: ../../include/net-snmp/library/getopt.h
 ./row_merge.lo: ../../include/net-snmp/utilities.h
+./row_merge.lo: ../../include/net-snmp/library/snmp_client.h
 ./row_merge.lo: ../../include/net-snmp/library/system.h
 ./row_merge.lo: ../../include/net-snmp/library/tools.h
 ./row_merge.lo: ../../include/net-snmp/library/int64.h
 ./row_merge.lo: ../../include/net-snmp/library/mt_support.h
 ./row_merge.lo: ../../include/net-snmp/library/snmp_alarm.h
+./row_merge.lo: ../../include/net-snmp/library/callback.h
 ./row_merge.lo: ../../include/net-snmp/library/data_list.h
+./row_merge.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./row_merge.lo: ../../include/net-snmp/library/container.h
 ./row_merge.lo: ../../include/net-snmp/library/snmp_assert.h
 ./row_merge.lo: ../../include/net-snmp/version.h
+./row_merge.lo: ../../include/net-snmp/session_api.h
+./row_merge.lo: ../../include/net-snmp/library/snmp_transport.h
+./row_merge.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./row_merge.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./row_merge.lo: ../../include/net-snmp/pdu_api.h
+./row_merge.lo: ../../include/net-snmp/mib_api.h
+./row_merge.lo: ../../include/net-snmp/library/mib.h
+./row_merge.lo: ../../include/net-snmp/library/parse.h
+./row_merge.lo: ../../include/net-snmp/varbind_api.h
 ./row_merge.lo: ../../include/net-snmp/config_api.h
 ./row_merge.lo: ../../include/net-snmp/library/read_config.h
 ./row_merge.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1251,7 +1187,6 @@
 ./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
@@ -1289,67 +1224,63 @@
 ./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
-./scalar.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./scalar.lo: ../../include/net-snmp/library/ucd_compat.h
-./scalar.lo: ../../include/net-snmp/library/mib.h
-./scalar.lo: ../../include/net-snmp/mib_api.h
-./scalar.lo: ../../include/net-snmp/library/parse.h
-./scalar.lo: ../../include/net-snmp/library/oid_stash.h
-./scalar.lo: ../../include/net-snmp/net-snmp-features.h
 ./scalar.lo: ../../include/net-snmp/library/snmp_impl.h
 ./scalar.lo: ../../include/net-snmp/library/snmp.h
 ./scalar.lo: ../../include/net-snmp/library/snmp-tc.h
-./scalar.lo: ../../include/net-snmp/library/getopt.h
 ./scalar.lo: ../../include/net-snmp/utilities.h
+./scalar.lo: ../../include/net-snmp/library/snmp_client.h
 ./scalar.lo: ../../include/net-snmp/library/system.h
 ./scalar.lo: ../../include/net-snmp/library/tools.h
 ./scalar.lo: ../../include/net-snmp/library/int64.h
 ./scalar.lo: ../../include/net-snmp/library/mt_support.h
 ./scalar.lo: ../../include/net-snmp/library/snmp_alarm.h
+./scalar.lo: ../../include/net-snmp/library/callback.h
 ./scalar.lo: ../../include/net-snmp/library/data_list.h
+./scalar.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./scalar.lo: ../../include/net-snmp/library/container.h
 ./scalar.lo: ../../include/net-snmp/library/snmp_assert.h
 ./scalar.lo: ../../include/net-snmp/version.h
+./scalar.lo: ../../include/net-snmp/session_api.h
+./scalar.lo: ../../include/net-snmp/library/snmp_transport.h
+./scalar.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./scalar.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./scalar.lo: ../../include/net-snmp/pdu_api.h
+./scalar.lo: ../../include/net-snmp/mib_api.h
+./scalar.lo: ../../include/net-snmp/library/mib.h
+./scalar.lo: ../../include/net-snmp/library/parse.h
+./scalar.lo: ../../include/net-snmp/varbind_api.h
 ./scalar.lo: ../../include/net-snmp/config_api.h
 ./scalar.lo: ../../include/net-snmp/library/read_config.h
 ./scalar.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1358,7 +1289,6 @@
 ./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
@@ -1396,67 +1326,63 @@
 ./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
-./scalar_group.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./scalar_group.lo: ../../include/net-snmp/library/ucd_compat.h
-./scalar_group.lo: ../../include/net-snmp/library/mib.h
-./scalar_group.lo: ../../include/net-snmp/mib_api.h
-./scalar_group.lo: ../../include/net-snmp/library/parse.h
-./scalar_group.lo: ../../include/net-snmp/library/oid_stash.h
-./scalar_group.lo: ../../include/net-snmp/net-snmp-features.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmp_impl.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmp.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmp-tc.h
-./scalar_group.lo: ../../include/net-snmp/library/getopt.h
 ./scalar_group.lo: ../../include/net-snmp/utilities.h
+./scalar_group.lo: ../../include/net-snmp/library/snmp_client.h
 ./scalar_group.lo: ../../include/net-snmp/library/system.h
 ./scalar_group.lo: ../../include/net-snmp/library/tools.h
 ./scalar_group.lo: ../../include/net-snmp/library/int64.h
 ./scalar_group.lo: ../../include/net-snmp/library/mt_support.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmp_alarm.h
+./scalar_group.lo: ../../include/net-snmp/library/callback.h
 ./scalar_group.lo: ../../include/net-snmp/library/data_list.h
+./scalar_group.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./scalar_group.lo: ../../include/net-snmp/library/container.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmp_assert.h
 ./scalar_group.lo: ../../include/net-snmp/version.h
+./scalar_group.lo: ../../include/net-snmp/session_api.h
+./scalar_group.lo: ../../include/net-snmp/library/snmp_transport.h
+./scalar_group.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./scalar_group.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./scalar_group.lo: ../../include/net-snmp/pdu_api.h
+./scalar_group.lo: ../../include/net-snmp/mib_api.h
+./scalar_group.lo: ../../include/net-snmp/library/mib.h
+./scalar_group.lo: ../../include/net-snmp/library/parse.h
+./scalar_group.lo: ../../include/net-snmp/varbind_api.h
 ./scalar_group.lo: ../../include/net-snmp/config_api.h
 ./scalar_group.lo: ../../include/net-snmp/library/read_config.h
 ./scalar_group.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1465,7 +1391,6 @@
 ./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
@@ -1503,67 +1428,63 @@
 ./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/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
-./serialize.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./serialize.lo: ../../include/net-snmp/library/ucd_compat.h
-./serialize.lo: ../../include/net-snmp/library/mib.h
-./serialize.lo: ../../include/net-snmp/mib_api.h
-./serialize.lo: ../../include/net-snmp/library/parse.h
-./serialize.lo: ../../include/net-snmp/library/oid_stash.h
-./serialize.lo: ../../include/net-snmp/net-snmp-features.h
 ./serialize.lo: ../../include/net-snmp/library/snmp_impl.h
 ./serialize.lo: ../../include/net-snmp/library/snmp.h
 ./serialize.lo: ../../include/net-snmp/library/snmp-tc.h
-./serialize.lo: ../../include/net-snmp/library/getopt.h
 ./serialize.lo: ../../include/net-snmp/utilities.h
+./serialize.lo: ../../include/net-snmp/library/snmp_client.h
 ./serialize.lo: ../../include/net-snmp/library/system.h
 ./serialize.lo: ../../include/net-snmp/library/tools.h
 ./serialize.lo: ../../include/net-snmp/library/int64.h
 ./serialize.lo: ../../include/net-snmp/library/mt_support.h
 ./serialize.lo: ../../include/net-snmp/library/snmp_alarm.h
+./serialize.lo: ../../include/net-snmp/library/callback.h
 ./serialize.lo: ../../include/net-snmp/library/data_list.h
+./serialize.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./serialize.lo: ../../include/net-snmp/library/container.h
 ./serialize.lo: ../../include/net-snmp/library/snmp_assert.h
 ./serialize.lo: ../../include/net-snmp/version.h
+./serialize.lo: ../../include/net-snmp/session_api.h
+./serialize.lo: ../../include/net-snmp/library/snmp_transport.h
+./serialize.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./serialize.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./serialize.lo: ../../include/net-snmp/pdu_api.h
+./serialize.lo: ../../include/net-snmp/mib_api.h
+./serialize.lo: ../../include/net-snmp/library/mib.h
+./serialize.lo: ../../include/net-snmp/library/parse.h
+./serialize.lo: ../../include/net-snmp/varbind_api.h
 ./serialize.lo: ../../include/net-snmp/config_api.h
 ./serialize.lo: ../../include/net-snmp/library/read_config.h
 ./serialize.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1572,7 +1493,6 @@
 ./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
@@ -1610,174 +1530,63 @@
 ./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-features.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/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/net-snmp-features.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
-./stash_cache.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./stash_cache.lo: ../../include/net-snmp/library/ucd_compat.h
-./stash_cache.lo: ../../include/net-snmp/library/mib.h
-./stash_cache.lo: ../../include/net-snmp/mib_api.h
-./stash_cache.lo: ../../include/net-snmp/library/parse.h
-./stash_cache.lo: ../../include/net-snmp/library/oid_stash.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmp_impl.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmp.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmp-tc.h
-./stash_cache.lo: ../../include/net-snmp/library/getopt.h
 ./stash_cache.lo: ../../include/net-snmp/utilities.h
+./stash_cache.lo: ../../include/net-snmp/library/snmp_client.h
 ./stash_cache.lo: ../../include/net-snmp/library/system.h
 ./stash_cache.lo: ../../include/net-snmp/library/tools.h
 ./stash_cache.lo: ../../include/net-snmp/library/int64.h
 ./stash_cache.lo: ../../include/net-snmp/library/mt_support.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmp_alarm.h
+./stash_cache.lo: ../../include/net-snmp/library/callback.h
 ./stash_cache.lo: ../../include/net-snmp/library/data_list.h
+./stash_cache.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./stash_cache.lo: ../../include/net-snmp/library/container.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmp_assert.h
 ./stash_cache.lo: ../../include/net-snmp/version.h
+./stash_cache.lo: ../../include/net-snmp/session_api.h
+./stash_cache.lo: ../../include/net-snmp/library/snmp_transport.h
+./stash_cache.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./stash_cache.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./stash_cache.lo: ../../include/net-snmp/pdu_api.h
+./stash_cache.lo: ../../include/net-snmp/mib_api.h
+./stash_cache.lo: ../../include/net-snmp/library/mib.h
+./stash_cache.lo: ../../include/net-snmp/library/parse.h
+./stash_cache.lo: ../../include/net-snmp/varbind_api.h
 ./stash_cache.lo: ../../include/net-snmp/config_api.h
 ./stash_cache.lo: ../../include/net-snmp/library/read_config.h
 ./stash_cache.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1786,7 +1595,6 @@
 ./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
@@ -1824,69 +1632,65 @@
 ./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_to_next.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/net-snmp-features.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
-./stash_to_next.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./stash_to_next.lo: ../../include/net-snmp/library/ucd_compat.h
-./stash_to_next.lo: ../../include/net-snmp/library/mib.h
-./stash_to_next.lo: ../../include/net-snmp/mib_api.h
-./stash_to_next.lo: ../../include/net-snmp/library/parse.h
-./stash_to_next.lo: ../../include/net-snmp/library/oid_stash.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmp_impl.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmp.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmp-tc.h
-./stash_to_next.lo: ../../include/net-snmp/library/getopt.h
 ./stash_to_next.lo: ../../include/net-snmp/utilities.h
+./stash_to_next.lo: ../../include/net-snmp/library/snmp_client.h
 ./stash_to_next.lo: ../../include/net-snmp/library/system.h
 ./stash_to_next.lo: ../../include/net-snmp/library/tools.h
 ./stash_to_next.lo: ../../include/net-snmp/library/int64.h
 ./stash_to_next.lo: ../../include/net-snmp/library/mt_support.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmp_alarm.h
+./stash_to_next.lo: ../../include/net-snmp/library/callback.h
 ./stash_to_next.lo: ../../include/net-snmp/library/data_list.h
+./stash_to_next.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./stash_to_next.lo: ../../include/net-snmp/library/container.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmp_assert.h
 ./stash_to_next.lo: ../../include/net-snmp/version.h
+./stash_to_next.lo: ../../include/net-snmp/session_api.h
+./stash_to_next.lo: ../../include/net-snmp/library/snmp_transport.h
+./stash_to_next.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./stash_to_next.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./stash_to_next.lo: ../../include/net-snmp/pdu_api.h
+./stash_to_next.lo: ../../include/net-snmp/mib_api.h
+./stash_to_next.lo: ../../include/net-snmp/library/mib.h
+./stash_to_next.lo: ../../include/net-snmp/library/parse.h
+./stash_to_next.lo: ../../include/net-snmp/varbind_api.h
 ./stash_to_next.lo: ../../include/net-snmp/config_api.h
 ./stash_to_next.lo: ../../include/net-snmp/library/read_config.h
 ./stash_to_next.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1895,7 +1699,6 @@
 ./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
@@ -1933,69 +1736,65 @@
 ./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
+./stash_to_next.lo: ../../include/net-snmp/agent/stash_to_next.h
 ./table_array.lo: ../../include/net-snmp/net-snmp-config.h
-./table_array.lo: ../../include/net-snmp/net-snmp-features.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
-./table_array.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./table_array.lo: ../../include/net-snmp/library/ucd_compat.h
-./table_array.lo: ../../include/net-snmp/library/mib.h
-./table_array.lo: ../../include/net-snmp/mib_api.h
-./table_array.lo: ../../include/net-snmp/library/parse.h
-./table_array.lo: ../../include/net-snmp/library/oid_stash.h
 ./table_array.lo: ../../include/net-snmp/library/snmp_impl.h
 ./table_array.lo: ../../include/net-snmp/library/snmp.h
 ./table_array.lo: ../../include/net-snmp/library/snmp-tc.h
-./table_array.lo: ../../include/net-snmp/library/getopt.h
 ./table_array.lo: ../../include/net-snmp/utilities.h
+./table_array.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_array.lo: ../../include/net-snmp/library/system.h
 ./table_array.lo: ../../include/net-snmp/library/tools.h
 ./table_array.lo: ../../include/net-snmp/library/int64.h
 ./table_array.lo: ../../include/net-snmp/library/mt_support.h
 ./table_array.lo: ../../include/net-snmp/library/snmp_alarm.h
+./table_array.lo: ../../include/net-snmp/library/callback.h
 ./table_array.lo: ../../include/net-snmp/library/data_list.h
+./table_array.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./table_array.lo: ../../include/net-snmp/library/container.h
 ./table_array.lo: ../../include/net-snmp/library/snmp_assert.h
 ./table_array.lo: ../../include/net-snmp/version.h
+./table_array.lo: ../../include/net-snmp/session_api.h
+./table_array.lo: ../../include/net-snmp/library/snmp_transport.h
+./table_array.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./table_array.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./table_array.lo: ../../include/net-snmp/pdu_api.h
+./table_array.lo: ../../include/net-snmp/mib_api.h
+./table_array.lo: ../../include/net-snmp/library/mib.h
+./table_array.lo: ../../include/net-snmp/library/parse.h
+./table_array.lo: ../../include/net-snmp/varbind_api.h
 ./table_array.lo: ../../include/net-snmp/config_api.h
 ./table_array.lo: ../../include/net-snmp/library/read_config.h
 ./table_array.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2004,7 +1803,6 @@
 ./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
@@ -2042,67 +1840,62 @@
 ./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/net-snmp-features.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
-./table.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./table.lo: ../../include/net-snmp/library/ucd_compat.h
-./table.lo: ../../include/net-snmp/library/mib.h
-./table.lo: ../../include/net-snmp/mib_api.h
-./table.lo: ../../include/net-snmp/library/parse.h
-./table.lo: ../../include/net-snmp/library/oid_stash.h
 ./table.lo: ../../include/net-snmp/library/snmp_impl.h
 ./table.lo: ../../include/net-snmp/library/snmp.h
 ./table.lo: ../../include/net-snmp/library/snmp-tc.h
-./table.lo: ../../include/net-snmp/library/getopt.h
 ./table.lo: ../../include/net-snmp/utilities.h
+./table.lo: ../../include/net-snmp/library/snmp_client.h
 ./table.lo: ../../include/net-snmp/library/system.h
 ./table.lo: ../../include/net-snmp/library/tools.h
 ./table.lo: ../../include/net-snmp/library/int64.h
 ./table.lo: ../../include/net-snmp/library/mt_support.h
 ./table.lo: ../../include/net-snmp/library/snmp_alarm.h
+./table.lo: ../../include/net-snmp/library/callback.h
 ./table.lo: ../../include/net-snmp/library/data_list.h
+./table.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./table.lo: ../../include/net-snmp/library/container.h
 ./table.lo: ../../include/net-snmp/library/snmp_assert.h
 ./table.lo: ../../include/net-snmp/version.h
+./table.lo: ../../include/net-snmp/session_api.h
+./table.lo: ../../include/net-snmp/library/snmp_transport.h
+./table.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./table.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./table.lo: ../../include/net-snmp/pdu_api.h ../../include/net-snmp/mib_api.h
+./table.lo: ../../include/net-snmp/library/mib.h
+./table.lo: ../../include/net-snmp/library/parse.h
+./table.lo: ../../include/net-snmp/varbind_api.h
 ./table.lo: ../../include/net-snmp/config_api.h
 ./table.lo: ../../include/net-snmp/library/read_config.h
 ./table.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2111,7 +1904,6 @@
 ./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
@@ -2149,67 +1941,63 @@
 ./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/net-snmp-features.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
-./table_container.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./table_container.lo: ../../include/net-snmp/library/ucd_compat.h
-./table_container.lo: ../../include/net-snmp/library/mib.h
-./table_container.lo: ../../include/net-snmp/mib_api.h
-./table_container.lo: ../../include/net-snmp/library/parse.h
-./table_container.lo: ../../include/net-snmp/library/oid_stash.h
 ./table_container.lo: ../../include/net-snmp/library/snmp_impl.h
 ./table_container.lo: ../../include/net-snmp/library/snmp.h
 ./table_container.lo: ../../include/net-snmp/library/snmp-tc.h
-./table_container.lo: ../../include/net-snmp/library/getopt.h
 ./table_container.lo: ../../include/net-snmp/utilities.h
+./table_container.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_container.lo: ../../include/net-snmp/library/system.h
 ./table_container.lo: ../../include/net-snmp/library/tools.h
 ./table_container.lo: ../../include/net-snmp/library/int64.h
 ./table_container.lo: ../../include/net-snmp/library/mt_support.h
 ./table_container.lo: ../../include/net-snmp/library/snmp_alarm.h
+./table_container.lo: ../../include/net-snmp/library/callback.h
 ./table_container.lo: ../../include/net-snmp/library/data_list.h
+./table_container.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./table_container.lo: ../../include/net-snmp/library/container.h
 ./table_container.lo: ../../include/net-snmp/library/snmp_assert.h
 ./table_container.lo: ../../include/net-snmp/version.h
+./table_container.lo: ../../include/net-snmp/session_api.h
+./table_container.lo: ../../include/net-snmp/library/snmp_transport.h
+./table_container.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./table_container.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./table_container.lo: ../../include/net-snmp/pdu_api.h
+./table_container.lo: ../../include/net-snmp/mib_api.h
+./table_container.lo: ../../include/net-snmp/library/mib.h
+./table_container.lo: ../../include/net-snmp/library/parse.h
+./table_container.lo: ../../include/net-snmp/varbind_api.h
 ./table_container.lo: ../../include/net-snmp/config_api.h
 ./table_container.lo: ../../include/net-snmp/library/read_config.h
 ./table_container.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2218,7 +2006,6 @@
 ./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
@@ -2256,67 +2043,63 @@
 ./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/net-snmp-features.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
-./table_data.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./table_data.lo: ../../include/net-snmp/library/ucd_compat.h
-./table_data.lo: ../../include/net-snmp/library/mib.h
-./table_data.lo: ../../include/net-snmp/mib_api.h
-./table_data.lo: ../../include/net-snmp/library/parse.h
-./table_data.lo: ../../include/net-snmp/library/oid_stash.h
 ./table_data.lo: ../../include/net-snmp/library/snmp_impl.h
 ./table_data.lo: ../../include/net-snmp/library/snmp.h
 ./table_data.lo: ../../include/net-snmp/library/snmp-tc.h
-./table_data.lo: ../../include/net-snmp/library/getopt.h
 ./table_data.lo: ../../include/net-snmp/utilities.h
+./table_data.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_data.lo: ../../include/net-snmp/library/system.h
 ./table_data.lo: ../../include/net-snmp/library/tools.h
 ./table_data.lo: ../../include/net-snmp/library/int64.h
 ./table_data.lo: ../../include/net-snmp/library/mt_support.h
 ./table_data.lo: ../../include/net-snmp/library/snmp_alarm.h
+./table_data.lo: ../../include/net-snmp/library/callback.h
 ./table_data.lo: ../../include/net-snmp/library/data_list.h
+./table_data.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./table_data.lo: ../../include/net-snmp/library/container.h
 ./table_data.lo: ../../include/net-snmp/library/snmp_assert.h
 ./table_data.lo: ../../include/net-snmp/version.h
+./table_data.lo: ../../include/net-snmp/session_api.h
+./table_data.lo: ../../include/net-snmp/library/snmp_transport.h
+./table_data.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./table_data.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./table_data.lo: ../../include/net-snmp/pdu_api.h
+./table_data.lo: ../../include/net-snmp/mib_api.h
+./table_data.lo: ../../include/net-snmp/library/mib.h
+./table_data.lo: ../../include/net-snmp/library/parse.h
+./table_data.lo: ../../include/net-snmp/varbind_api.h
 ./table_data.lo: ../../include/net-snmp/config_api.h
 ./table_data.lo: ../../include/net-snmp/library/read_config.h
 ./table_data.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2325,7 +2108,6 @@
 ./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
@@ -2363,67 +2145,63 @@
 ./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/net-snmp-features.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
-./table_dataset.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./table_dataset.lo: ../../include/net-snmp/library/ucd_compat.h
-./table_dataset.lo: ../../include/net-snmp/library/mib.h
-./table_dataset.lo: ../../include/net-snmp/mib_api.h
-./table_dataset.lo: ../../include/net-snmp/library/parse.h
-./table_dataset.lo: ../../include/net-snmp/library/oid_stash.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmp_impl.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmp.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmp-tc.h
-./table_dataset.lo: ../../include/net-snmp/library/getopt.h
 ./table_dataset.lo: ../../include/net-snmp/utilities.h
+./table_dataset.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_dataset.lo: ../../include/net-snmp/library/system.h
 ./table_dataset.lo: ../../include/net-snmp/library/tools.h
 ./table_dataset.lo: ../../include/net-snmp/library/int64.h
 ./table_dataset.lo: ../../include/net-snmp/library/mt_support.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmp_alarm.h
+./table_dataset.lo: ../../include/net-snmp/library/callback.h
 ./table_dataset.lo: ../../include/net-snmp/library/data_list.h
+./table_dataset.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./table_dataset.lo: ../../include/net-snmp/library/container.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmp_assert.h
 ./table_dataset.lo: ../../include/net-snmp/version.h
+./table_dataset.lo: ../../include/net-snmp/session_api.h
+./table_dataset.lo: ../../include/net-snmp/library/snmp_transport.h
+./table_dataset.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./table_dataset.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./table_dataset.lo: ../../include/net-snmp/pdu_api.h
+./table_dataset.lo: ../../include/net-snmp/mib_api.h
+./table_dataset.lo: ../../include/net-snmp/library/mib.h
+./table_dataset.lo: ../../include/net-snmp/library/parse.h
+./table_dataset.lo: ../../include/net-snmp/varbind_api.h
 ./table_dataset.lo: ../../include/net-snmp/config_api.h
 ./table_dataset.lo: ../../include/net-snmp/library/read_config.h
 ./table_dataset.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2432,7 +2210,6 @@
 ./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
@@ -2470,67 +2247,63 @@
 ./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/net-snmp-features.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
-./table_iterator.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./table_iterator.lo: ../../include/net-snmp/library/ucd_compat.h
-./table_iterator.lo: ../../include/net-snmp/library/mib.h
-./table_iterator.lo: ../../include/net-snmp/mib_api.h
-./table_iterator.lo: ../../include/net-snmp/library/parse.h
-./table_iterator.lo: ../../include/net-snmp/library/oid_stash.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmp_impl.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmp.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmp-tc.h
-./table_iterator.lo: ../../include/net-snmp/library/getopt.h
 ./table_iterator.lo: ../../include/net-snmp/utilities.h
+./table_iterator.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_iterator.lo: ../../include/net-snmp/library/system.h
 ./table_iterator.lo: ../../include/net-snmp/library/tools.h
 ./table_iterator.lo: ../../include/net-snmp/library/int64.h
 ./table_iterator.lo: ../../include/net-snmp/library/mt_support.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmp_alarm.h
+./table_iterator.lo: ../../include/net-snmp/library/callback.h
 ./table_iterator.lo: ../../include/net-snmp/library/data_list.h
+./table_iterator.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./table_iterator.lo: ../../include/net-snmp/library/container.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmp_assert.h
 ./table_iterator.lo: ../../include/net-snmp/version.h
+./table_iterator.lo: ../../include/net-snmp/session_api.h
+./table_iterator.lo: ../../include/net-snmp/library/snmp_transport.h
+./table_iterator.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./table_iterator.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./table_iterator.lo: ../../include/net-snmp/pdu_api.h
+./table_iterator.lo: ../../include/net-snmp/mib_api.h
+./table_iterator.lo: ../../include/net-snmp/library/mib.h
+./table_iterator.lo: ../../include/net-snmp/library/parse.h
+./table_iterator.lo: ../../include/net-snmp/varbind_api.h
 ./table_iterator.lo: ../../include/net-snmp/config_api.h
 ./table_iterator.lo: ../../include/net-snmp/library/read_config.h
 ./table_iterator.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2539,7 +2312,6 @@
 ./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
@@ -2577,68 +2349,64 @@
 ./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/net-snmp-features.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/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
-./table_row.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./table_row.lo: ../../include/net-snmp/library/ucd_compat.h
-./table_row.lo: ../../include/net-snmp/library/mib.h
-./table_row.lo: ../../include/net-snmp/mib_api.h
-./table_row.lo: ../../include/net-snmp/library/parse.h
-./table_row.lo: ../../include/net-snmp/library/oid_stash.h
 ./table_row.lo: ../../include/net-snmp/library/snmp_impl.h
 ./table_row.lo: ../../include/net-snmp/library/snmp.h
 ./table_row.lo: ../../include/net-snmp/library/snmp-tc.h
-./table_row.lo: ../../include/net-snmp/library/getopt.h
 ./table_row.lo: ../../include/net-snmp/utilities.h
+./table_row.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_row.lo: ../../include/net-snmp/library/system.h
 ./table_row.lo: ../../include/net-snmp/library/tools.h
 ./table_row.lo: ../../include/net-snmp/library/int64.h
 ./table_row.lo: ../../include/net-snmp/library/mt_support.h
 ./table_row.lo: ../../include/net-snmp/library/snmp_alarm.h
+./table_row.lo: ../../include/net-snmp/library/callback.h
 ./table_row.lo: ../../include/net-snmp/library/data_list.h
+./table_row.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./table_row.lo: ../../include/net-snmp/library/container.h
 ./table_row.lo: ../../include/net-snmp/library/snmp_assert.h
 ./table_row.lo: ../../include/net-snmp/version.h
+./table_row.lo: ../../include/net-snmp/session_api.h
+./table_row.lo: ../../include/net-snmp/library/snmp_transport.h
+./table_row.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./table_row.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./table_row.lo: ../../include/net-snmp/pdu_api.h
+./table_row.lo: ../../include/net-snmp/mib_api.h
+./table_row.lo: ../../include/net-snmp/library/mib.h
+./table_row.lo: ../../include/net-snmp/library/parse.h
+./table_row.lo: ../../include/net-snmp/varbind_api.h
 ./table_row.lo: ../../include/net-snmp/config_api.h
 ./table_row.lo: ../../include/net-snmp/library/read_config.h
 ./table_row.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2647,7 +2415,6 @@
 ./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
@@ -2685,67 +2452,63 @@
 ./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/net-snmp-features.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
-./table_tdata.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./table_tdata.lo: ../../include/net-snmp/library/ucd_compat.h
-./table_tdata.lo: ../../include/net-snmp/library/mib.h
-./table_tdata.lo: ../../include/net-snmp/mib_api.h
-./table_tdata.lo: ../../include/net-snmp/library/parse.h
-./table_tdata.lo: ../../include/net-snmp/library/oid_stash.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmp_impl.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmp.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmp-tc.h
-./table_tdata.lo: ../../include/net-snmp/library/getopt.h
 ./table_tdata.lo: ../../include/net-snmp/utilities.h
+./table_tdata.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_tdata.lo: ../../include/net-snmp/library/system.h
 ./table_tdata.lo: ../../include/net-snmp/library/tools.h
 ./table_tdata.lo: ../../include/net-snmp/library/int64.h
 ./table_tdata.lo: ../../include/net-snmp/library/mt_support.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmp_alarm.h
+./table_tdata.lo: ../../include/net-snmp/library/callback.h
 ./table_tdata.lo: ../../include/net-snmp/library/data_list.h
+./table_tdata.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./table_tdata.lo: ../../include/net-snmp/library/container.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmp_assert.h
 ./table_tdata.lo: ../../include/net-snmp/version.h
+./table_tdata.lo: ../../include/net-snmp/session_api.h
+./table_tdata.lo: ../../include/net-snmp/library/snmp_transport.h
+./table_tdata.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./table_tdata.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./table_tdata.lo: ../../include/net-snmp/pdu_api.h
+./table_tdata.lo: ../../include/net-snmp/mib_api.h
+./table_tdata.lo: ../../include/net-snmp/library/mib.h
+./table_tdata.lo: ../../include/net-snmp/library/parse.h
+./table_tdata.lo: ../../include/net-snmp/varbind_api.h
 ./table_tdata.lo: ../../include/net-snmp/config_api.h
 ./table_tdata.lo: ../../include/net-snmp/library/read_config.h
 ./table_tdata.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2754,7 +2517,6 @@
 ./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
@@ -2792,67 +2554,63 @@
 ./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/net-snmp-features.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
-./watcher.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./watcher.lo: ../../include/net-snmp/library/ucd_compat.h
-./watcher.lo: ../../include/net-snmp/library/mib.h
-./watcher.lo: ../../include/net-snmp/mib_api.h
-./watcher.lo: ../../include/net-snmp/library/parse.h
-./watcher.lo: ../../include/net-snmp/library/oid_stash.h
 ./watcher.lo: ../../include/net-snmp/library/snmp_impl.h
 ./watcher.lo: ../../include/net-snmp/library/snmp.h
 ./watcher.lo: ../../include/net-snmp/library/snmp-tc.h
-./watcher.lo: ../../include/net-snmp/library/getopt.h
 ./watcher.lo: ../../include/net-snmp/utilities.h
+./watcher.lo: ../../include/net-snmp/library/snmp_client.h
 ./watcher.lo: ../../include/net-snmp/library/system.h
 ./watcher.lo: ../../include/net-snmp/library/tools.h
 ./watcher.lo: ../../include/net-snmp/library/int64.h
 ./watcher.lo: ../../include/net-snmp/library/mt_support.h
 ./watcher.lo: ../../include/net-snmp/library/snmp_alarm.h
+./watcher.lo: ../../include/net-snmp/library/callback.h
 ./watcher.lo: ../../include/net-snmp/library/data_list.h
+./watcher.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./watcher.lo: ../../include/net-snmp/library/container.h
 ./watcher.lo: ../../include/net-snmp/library/snmp_assert.h
 ./watcher.lo: ../../include/net-snmp/version.h
+./watcher.lo: ../../include/net-snmp/session_api.h
+./watcher.lo: ../../include/net-snmp/library/snmp_transport.h
+./watcher.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./watcher.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./watcher.lo: ../../include/net-snmp/pdu_api.h
+./watcher.lo: ../../include/net-snmp/mib_api.h
+./watcher.lo: ../../include/net-snmp/library/mib.h
+./watcher.lo: ../../include/net-snmp/library/parse.h
+./watcher.lo: ../../include/net-snmp/varbind_api.h
 ./watcher.lo: ../../include/net-snmp/config_api.h
 ./watcher.lo: ../../include/net-snmp/library/read_config.h
 ./watcher.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2861,7 +2619,6 @@
 ./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
@@ -2899,4 +2656,3 @@
 ./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 5178b79..b83af89 100644
--- a/agent/helpers/Makefile.in
+++ b/agent/helpers/Makefile.in
@@ -1,7 +1,3 @@
-#
-# Makefile for libnetsnmphelpers
-#
-
 top_builddir=../..
 
 # use GNU vpath, if available, to only set a path for source and headers
@@ -18,21 +14,131 @@ top_builddir=../..
 
 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.h \
+	table_array.h \
+	table_container.h \
+        table_data.h \
+        table_dataset.h \
+        table_iterator.h \
+        table_tdata.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@
 
-OBJS = dummy.o
+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 =  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 = dummy.lo
+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
 
 all: standardall
 
 libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION):    $(LOBJS)
-	$(LIB_LD_CMD) $@ $(LOBJS) @LD_NO_UNDEFINED@ $(LDFLAGS) $(LIB_LD_LIBS)
+	$(LIB_LD_CMD) $@ $(LOBJS) $(AGENTLIB) $(NETSNMPLIB) $(LDFLAGS) $(LIB_LD_LIBS)
 	$(RANLIB) $@
diff --git a/agent/helpers/all_helpers.c b/agent/helpers/all_helpers.c
index e1e1b78..02bc8af 100644
--- a/agent/helpers/all_helpers.c
+++ b/agent/helpers/all_helpers.c
@@ -2,10 +2,18 @@
  *  @{ */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
+#ifdef STILL_TO_DO
+        /*
+         * It ought to be possible to just #include these files,
+         *   but they rely on various other types being defined first.
+         *
+         * I really can't face tracking down the dependency chain
+         *   just at the moment.
+         * So we'll just have to live with the warnings....
+         */
 #include <net-snmp/agent/debug_handler.h>
 #include <net-snmp/agent/serialize.h>
 #include <net-snmp/agent/read_only.h>
@@ -13,8 +21,15 @@
 #include <net-snmp/agent/table_dataset.h>
 #include <net-snmp/agent/stash_cache.h>
 
-netsnmp_feature_child_of(mib_helpers, libnetsnmpagent)
+#else
 
+void  netsnmp_init_debug_helper(void);
+void  netsnmp_init_serialize(void);
+void  netsnmp_init_read_only_helper(void);
+void  netsnmp_init_bulk_to_next_helper(void);
+void  netsnmp_init_table_dataset(void);
+void  netsnmp_init_stash_cache_helper(void);
+#endif
 
 /** call the initialization sequence for all handlers with init_ routines. */
 void
@@ -24,16 +39,8 @@ netsnmp_init_helpers(void)
     netsnmp_init_serialize();
     netsnmp_init_read_only_helper();
     netsnmp_init_bulk_to_next_helper();
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATASET
     netsnmp_init_table_dataset();
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATASET */
-
-#ifndef NETSNMP_FEATURE_REMOVE_ROW_MERGE
-    netsnmp_init_row_merge();
-#endif /* NETSNMP_FEATURE_REMOVE_ROW_MERGE */
-#ifndef NETSNMP_FEATURE_REMOVE_STASH_CACHE
     netsnmp_init_stash_cache_helper();
-#endif /* NETSNMP_FEATURE_REMOVE_STASH_CACHE */
 }
 
 /** @defgroup utilities utility_handlers
diff --git a/agent/helpers/baby_steps.c b/agent/helpers/baby_steps.c
index d79acbc..77619f5 100644
--- a/agent/helpers/baby_steps.c
+++ b/agent/helpers/baby_steps.c
@@ -1,21 +1,11 @@
 /*
  * baby_steps.c
- * $Id$
+ * $Id: baby_steps.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
-netsnmp_feature_provide(baby_steps)
-netsnmp_feature_child_of(baby_steps, mib_helpers)
-
-#ifdef NETSNMP_FEATURE_REQUIRE_BABY_STEPS
-netsnmp_feature_require(check_requests_error)
-#endif
-
-#ifndef NETSNMP_FEATURE_REMOVE_BABY_STEPS
-
 #include <net-snmp/agent/baby_steps.h>
 
 #define BABY_STEPS_PER_MODE_MAX     4
@@ -24,7 +14,6 @@ netsnmp_feature_require(check_requests_error)
 static u_short get_mode_map[BABY_STEPS_PER_MODE_MAX] = {
     MODE_BSTEP_PRE_REQUEST, MODE_BSTEP_OBJECT_LOOKUP, BSTEP_USE_ORIGINAL, MODE_BSTEP_POST_REQUEST };
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 static u_short set_mode_map[SNMP_MSG_INTERNAL_SET_MAX][BABY_STEPS_PER_MODE_MAX] = {
     /*R1*/
     { MODE_BSTEP_PRE_REQUEST, MODE_BSTEP_OBJECT_LOOKUP, MODE_BSTEP_ROW_CREATE,
@@ -44,7 +33,6 @@ static u_short set_mode_map[SNMP_MSG_INTERNAL_SET_MAX][BABY_STEPS_PER_MODE_MAX]
     { MODE_BSTEP_UNDO_COMMIT, MODE_BSTEP_UNDO_SET, MODE_BSTEP_UNDO_CLEANUP,
       MODE_BSTEP_POST_REQUEST}
 };
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 static int
 _baby_steps_helper(netsnmp_mib_handler *handler,
@@ -63,20 +51,6 @@ _baby_steps_access_multiplexer(netsnmp_mib_handler *handler,
  *  @{
  */
 
-static netsnmp_baby_steps_modes *
-netsnmp_baby_steps_modes_ref(netsnmp_baby_steps_modes *md)
-{
-    md->refcnt++;
-    return md;
-}
-
-static void
-netsnmp_baby_steps_modes_deref(netsnmp_baby_steps_modes *md)
-{
-    if (--md->refcnt == 0)
-	free(md);
-}
-
 /** returns a baby_steps handler that can be injected into a given
  *  handler chain.
  */
@@ -97,10 +71,7 @@ netsnmp_baby_steps_handler_get(u_long modes)
         mh = NULL;
     }
     else {
-	md->refcnt = 1;
         mh->myvoid = md;
-	mh->data_clone = (void *(*)(void *))netsnmp_baby_steps_modes_ref;
-	mh->data_free = (void (*)(void *))netsnmp_baby_steps_modes_deref;
         if (0 == modes)
             modes = BABY_STEP_ALL;
         md->registered = modes;
@@ -128,12 +99,11 @@ _baby_steps_helper(netsnmp_mib_handler *handler,
     DEBUGMSGTL(("baby_steps", "Got request, mode %s\n",
                 se_find_label_in_slist("agent_mode",reqinfo->mode)));
 
-    bs_modes = (netsnmp_baby_steps_modes*)handler->myvoid;
+    bs_modes = handler->myvoid;
     netsnmp_assert(NULL != bs_modes);
 
     switch (reqinfo->mode) {
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
         /*
          * clear completed modes
@@ -151,7 +121,6 @@ _baby_steps_helper(netsnmp_mib_handler *handler,
     case MODE_SET_UNDO:
         mode_map_ptr = set_mode_map[reqinfo->mode];
         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
             
     default:
         /*
@@ -253,7 +222,6 @@ _baby_steps_helper(netsnmp_mib_handler *handler,
         if (BSTEP_USE_ORIGINAL != mode_map_ptr[i]) {
             u_int    mode_flag;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
             /*
              * skip undo commit if commit wasn't hit, and
              * undo_cleanup if undo_setup wasn't hit.
@@ -272,7 +240,6 @@ _baby_steps_helper(netsnmp_mib_handler *handler,
                             "   skipping undo cleanup (no undo setup)\n"));
                 continue;
             }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
             reqinfo->mode = mode_map_ptr[i];
             mode_flag = netsnmp_baby_step_mode2flag( mode_map_ptr[i] );
@@ -326,10 +293,7 @@ _baby_steps_helper(netsnmp_mib_handler *handler,
          * in commit, free or undo.)
          */
         if (MODE_IS_GET(save_mode)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-            || (save_mode < SNMP_MSG_INTERNAL_SET_COMMIT)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-            ) {
+            || (save_mode < SNMP_MSG_INTERNAL_SET_COMMIT)) {
             rc = netsnmp_check_requests_error(requests);
             if(rc) {
                 DEBUGMSGTL(("baby_steps", "   ERROR:request error\n"));
@@ -351,15 +315,12 @@ _baby_steps_helper(netsnmp_mib_handler *handler,
  *  handler as a run-time injectable handler for configuration file
  *  use.
  */
-netsnmp_feature_child_of(netsnmp_baby_steps_handler_init,netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_BABY_STEPS_HANDLER_INIT
 void
 netsnmp_baby_steps_handler_init(void)
 {
     netsnmp_register_handler_by_name("baby_steps",
                                      netsnmp_baby_steps_handler_get(BABY_STEP_ALL));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_NETSNMP_BABY_STEPS_HANDLER_INIT */
 
 /** @} */
 
@@ -430,7 +391,6 @@ _baby_steps_access_multiplexer(netsnmp_mib_handler *handler,
             method = access_methods->get_values;
         break;
         
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_BSTEP_CHECK_VALUE:
         if( access_methods->object_syntax_checks )
             method = access_methods->object_syntax_checks;
@@ -480,7 +440,6 @@ _baby_steps_access_multiplexer(netsnmp_mib_handler *handler,
         if( access_methods->undo_cleanup )
             method = access_methods->undo_cleanup;
         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
         
     case MODE_BSTEP_POST_REQUEST:
         if( access_methods->post_request )
@@ -525,7 +484,6 @@ netsnmp_baby_step_mode2flag( u_int mode )
     switch( mode ) {
         case MODE_BSTEP_OBJECT_LOOKUP:
             return BABY_STEP_OBJECT_LOOKUP;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         case MODE_BSTEP_SET_VALUE:
             return BABY_STEP_SET_VALUE;
         case MODE_BSTEP_IRREVERSIBLE_COMMIT:
@@ -550,7 +508,6 @@ netsnmp_baby_step_mode2flag( u_int mode )
             return BABY_STEP_COMMIT;
         case MODE_BSTEP_UNDO_COMMIT:
             return BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
         default:
             netsnmp_assert("unknown flag");
             break;
@@ -559,7 +516,3 @@ netsnmp_baby_step_mode2flag( u_int mode )
 }
 /**  @} */
 
-#else  /* NETSNMP_FEATURE_REMOVE_BABY_STEPS */
-netsnmp_feature_unused(baby_steps);
-#endif /* NETSNMP_FEATURE_REMOVE_BABY_STEPS */
-
diff --git a/agent/helpers/bulk_to_next.c b/agent/helpers/bulk_to_next.c
index e607eda..4dd1914 100644
--- a/agent/helpers/bulk_to_next.c
+++ b/agent/helpers/bulk_to_next.c
@@ -1,5 +1,11 @@
 #include <net-snmp/net-snmp-config.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>
 
diff --git a/agent/helpers/cache_handler.c b/agent/helpers/cache_handler.c
index 520a4cf..073428b 100644
--- a/agent/helpers/cache_handler.c
+++ b/agent/helpers/cache_handler.c
@@ -1,15 +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:
- */
-/*
- * 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.
- */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #if HAVE_STRING_H
 #include <string.h>
@@ -22,11 +11,6 @@
 
 #include <net-snmp/agent/cache_handler.h>
 
-netsnmp_feature_child_of(cache_handler, mib_helpers)
-
-netsnmp_feature_child_of(cache_find_by_oid, cache_handler)
-netsnmp_feature_child_of(cache_get_head, cache_handler)
-
 static netsnmp_cache  *cache_head = NULL;
 static int             cache_outstanding_valid = 0;
 static int             _cache_load( netsnmp_cache *cache );
@@ -52,7 +36,7 @@ void            release_cached_resources(unsigned int regNo,
  *  expired caches, and will call the free_cache function for any expired
  *  cache.
  *
- *  The load_cache routine should return a negative number if the cache
+ *  The load_cache route should return a negative number if the cache
  *  was not successfully loaded. 0 or any positive number indicates successs.
  *
  *
@@ -85,14 +69,6 @@ void            release_cached_resources(unsigned int regNo,
  *  the cache when it expires. This is useful for keeping the cache fresh,
  *  even in the absence of incoming snmp requests.
  *
- *  If NETSNMP_CACHE_RESET_TIMER_ON_USE is set, the expiry timer will be
- *  reset on each cache access. In practice the 'timeout' becomes a timer
- *  which triggers when the cache is no longer needed. This is useful
- *  if the cache is automatically kept synchronized: e.g. by receiving
- *  change notifications from Netlink, inotify or similar. This should
- *  not be used if cache is not synchronized automatically as it would
- *  result in stale cache information when if polling happens too fast.
- *
  *
  *  Here are some suggestions for some common situations.
  *
@@ -124,20 +100,9 @@ void            release_cached_resources(unsigned int regNo,
  *          NETSNMP_CACHE_DONT_AUTO_RELEASE
  *          NETSNMP_CACHE_AUTO_RELOAD
  *
- *  Dynamically updated, unloaded after timeout:
- *      If the cache is kept up to date dynamically by listening for
- *      change notifications somehow, but it should not be in memory
- *      if it's not needed. Set the following flag:
- *
- *          NETSNMP_CACHE_RESET_TIMER_ON_USE
- *
  *  @{
  */
 
-static void
-_cache_free( netsnmp_cache *cache );
-
-#ifndef NETSNMP_FEATURE_REMOVE_CACHE_GET_HEAD
 /** get cache head
  * @internal
  * unadvertised function to get cache head. You really should not
@@ -148,13 +113,11 @@ netsnmp_cache_get_head(void)
 {
     return cache_head;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CACHE_GET_HEAD */
 
-#ifndef NETSNMP_FEATURE_REMOVE_CACHE_FIND_BY_OID
 /** find existing cache
  */
 netsnmp_cache *
-netsnmp_cache_find_by_oid(const oid * rootoid, int rootoid_len)
+netsnmp_cache_find_by_oid(oid * rootoid, int rootoid_len)
 {
     netsnmp_cache  *cache;
 
@@ -166,14 +129,13 @@ netsnmp_cache_find_by_oid(const oid * rootoid, int rootoid_len)
     
     return NULL;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CACHE_FIND_BY_OID */
 
 /** returns a cache
  */
 netsnmp_cache *
 netsnmp_cache_create(int timeout, NetsnmpCacheLoad * load_hook,
                      NetsnmpCacheFree * free_hook,
-                     const oid * rootoid, int rootoid_len)
+                     oid * rootoid, int rootoid_len)
 {
     netsnmp_cache  *cache = NULL;
 
@@ -211,95 +173,6 @@ netsnmp_cache_create(int timeout, NetsnmpCacheLoad * load_hook,
     return cache;
 }
 
-static netsnmp_cache *
-netsnmp_cache_ref(netsnmp_cache *cache)
-{
-    cache->refcnt++;
-    return cache;
-}
-
-static void
-netsnmp_cache_deref(netsnmp_cache *cache)
-{
-    if (--cache->refcnt == 0) {
-        netsnmp_cache_remove(cache);
-        netsnmp_cache_free(cache);
-    }
-}
-
-/** frees a cache
- */
-int
-netsnmp_cache_free(netsnmp_cache *cache)
-{
-    netsnmp_cache  *pos;
-
-    if (NULL == cache)
-        return SNMPERR_SUCCESS;
-
-    for (pos = cache_head; pos; pos = pos->next) {
-        if (pos == cache) {
-            size_t          out_len = 0;
-            size_t          buf_len = 0;
-            char           *buf = NULL;
-
-            sprint_realloc_objid((u_char **) &buf, &buf_len, &out_len,
-                                 1, pos->rootoid, pos->rootoid_len);
-            snmp_log(LOG_WARNING,
-                     "not freeing cache with root OID %s (still in list)\n",
-                     buf);
-            free(buf);
-            return SNMP_ERR_GENERR;
-        }
-    }
-
-    if(0 != cache->timer_id)
-        netsnmp_cache_timer_stop(cache);
-
-    if (cache->valid)
-        _cache_free(cache);
-
-    if (cache->timestampM)
-	free(cache->timestampM);
-
-    if (cache->rootoid)
-        free(cache->rootoid);
-
-    free(cache);
-
-    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)
@@ -344,7 +217,7 @@ netsnmp_cache_timer_start(netsnmp_cache *cache)
 
     cache->flags &= ~NETSNMP_CACHE_AUTO_RELOAD;
     DEBUGMSGT(("cache_timer:start",
-               "starting timer %lu for cache %p\n", cache->timer_id, cache));
+               "starting timer %d for cache %p\n", cache->timer_id, cache));
     return cache->timer_id;
 }
 
@@ -361,7 +234,7 @@ netsnmp_cache_timer_stop(netsnmp_cache *cache)
     }
 
     DEBUGMSGT(("cache_timer:stop",
-               "stopping timer %lu for cache %p\n", cache->timer_id, cache));
+               "stopping timer %d for cache %p\n", cache->timer_id, cache));
 
     snmp_alarm_unregister(cache->timer_id);
     cache->flags |= NETSNMP_CACHE_AUTO_RELOAD;
@@ -397,23 +270,12 @@ netsnmp_cache_handler_get(netsnmp_cache* cache)
     return ret;
 }
 
-/** Makes sure that memory allocated for the cache is freed when the handler
- *  is unregistered.
- */
-void netsnmp_cache_handler_owns_cache(netsnmp_mib_handler *handler)
-{
-    netsnmp_assert(handler->myvoid);
-    ((netsnmp_cache *)handler->myvoid)->refcnt++;
-    handler->data_clone = (void *(*)(void *))netsnmp_cache_ref;
-    handler->data_free = (void(*)(void*))netsnmp_cache_deref;
-}
-
 /** returns a cache handler that can be injected into a given handler chain.  
  */
 netsnmp_mib_handler *
 netsnmp_get_cache_handler(int timeout, NetsnmpCacheLoad * load_hook,
                           NetsnmpCacheFree * free_hook,
-                          const oid * rootoid, int rootoid_len)
+                          oid * rootoid, int rootoid_len)
 {
     netsnmp_mib_handler *ret = NULL;
     netsnmp_cache  *cache = NULL;
@@ -423,15 +285,12 @@ netsnmp_get_cache_handler(int timeout, NetsnmpCacheLoad * load_hook,
         cache = netsnmp_cache_create(timeout, load_hook, free_hook,
                                      rootoid, rootoid_len);
         ret->myvoid = (void *) cache;
-        netsnmp_cache_handler_owns_cache(ret);
     }
     return ret;
 }
 
 /** functionally the same as calling netsnmp_register_handler() but also
  * injects a cache handler at the same time for you. */
-netsnmp_feature_child_of(netsnmp_cache_handler_register,netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_CACHE_HANDLER_REGISTER
 int
 netsnmp_cache_handler_register(netsnmp_handler_registration * reginfo,
                                netsnmp_cache* cache)
@@ -442,12 +301,9 @@ netsnmp_cache_handler_register(netsnmp_handler_registration * reginfo,
     netsnmp_inject_handler(reginfo, handler);
     return netsnmp_register_handler(reginfo);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_NETSNMP_CACHE_HANDLER_REGISTER */
 
 /** functionally the same as calling netsnmp_register_handler() but also
  * injects a cache handler at the same time for you. */
-netsnmp_feature_child_of(netsnmp_register_cache_handler,netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_REGISTER_CACHE_HANDLER
 int
 netsnmp_register_cache_handler(netsnmp_handler_registration * reginfo,
                                int timeout, NetsnmpCacheLoad * load_hook,
@@ -461,12 +317,11 @@ netsnmp_register_cache_handler(netsnmp_handler_registration * reginfo,
     netsnmp_inject_handler(reginfo, handler);
     return netsnmp_register_handler(reginfo);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_NETSNMP_REGISTER_CACHE_HANDLER */
 
-static char *
+NETSNMP_STATIC_INLINE char *
 _build_cache_name(const char *name)
 {
-    char *dup = (char*)malloc(strlen(name) + strlen(CACHE_NAME) + 2);
+    char *dup = malloc(strlen(name) + strlen(CACHE_NAME) + 2);
     if (NULL == dup)
         return NULL;
     sprintf(dup, "%s:%s", CACHE_NAME, name);
@@ -497,20 +352,17 @@ netsnmp_cache_reqinfo_extract(netsnmp_agent_request_info * reqinfo,
 {
     netsnmp_cache  *result;
     char *cache_name = _build_cache_name(name);
-    result = (netsnmp_cache*)netsnmp_agent_get_list_data(reqinfo, cache_name);
+    result = netsnmp_agent_get_list_data(reqinfo, cache_name);
     SNMP_FREE(cache_name);
     return result;
 }
 
 /** Extract the cache information for a given request (PDU) */
-netsnmp_feature_child_of(netsnmp_extract_cache_info,netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_EXTRACT_CACHE_INFO
 netsnmp_cache  *
 netsnmp_extract_cache_info(netsnmp_agent_request_info * reqinfo)
 {
     return netsnmp_cache_reqinfo_extract(reqinfo, CACHE_NAME);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_NETSNMP_EXTRACT_CACHE_INFO */
 
 
 /** Check if the cache timeout has passed. Sets and return the expired flag. */
@@ -519,13 +371,11 @@ netsnmp_cache_check_expired(netsnmp_cache *cache)
 {
     if(NULL == cache)
         return 0;
-    if (cache->expired)
-        return 1;
-    if(!cache->valid || (NULL == cache->timestampM) || (-1 == cache->timeout))
+    
+    if(!cache->valid || (NULL == cache->timestamp) || (-1 == cache->timeout))
         cache->expired = 1;
     else
-        cache->expired = netsnmp_ready_monotonic(cache->timestampM,
-                                                 1000 * cache->timeout);
+        cache->expired = atime_ready(cache->timestamp, 1000 * cache->timeout);
     
     return cache->expired;
 }
@@ -559,14 +409,11 @@ netsnmp_cache_is_valid(netsnmp_agent_request_info * reqinfo,
 /** Is the cache valid for a given request?
  * for backwards compatability. netsnmp_cache_is_valid() is preferred.
  */
-netsnmp_feature_child_of(netsnmp_is_cache_valid,netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_IS_CACHE_VALID
 int
 netsnmp_is_cache_valid(netsnmp_agent_request_info * reqinfo)
 {
     return netsnmp_cache_is_valid(reqinfo, CACHE_NAME);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_NETSNMP_IS_CACHE_VALID */
 
 /** Implements the cache handler */
 int
@@ -575,8 +422,6 @@ netsnmp_cache_helper_handler(netsnmp_mib_handler * handler,
                              netsnmp_agent_request_info * reqinfo,
                              netsnmp_request_info * requests)
 {
-    char addrstr[32];
-
     netsnmp_cache  *cache = NULL;
     netsnmp_handler_args cache_hint;
 
@@ -596,10 +441,6 @@ netsnmp_cache_helper_handler(netsnmp_mib_handler * handler,
                    "cache not found, disabled or had no load method\n"));
         return SNMP_ERR_NOERROR;
     }
-    snprintf(addrstr,sizeof(addrstr), "%ld", (long int)cache);
-    DEBUGMSGTL(("helper:cache_handler", "using cache %s: ", addrstr));
-    DEBUGMSGOID(("helper:cache_handler", cache->rootoid, cache->rootoid_len));
-    DEBUGMSG(("helper:cache_handler", "\n"));
 
     /*
      * Make the handler-chain parameters available to
@@ -616,9 +457,7 @@ netsnmp_cache_helper_handler(netsnmp_mib_handler * handler,
     case MODE_GET:
     case MODE_GETNEXT:
     case MODE_GETBULK:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-    case MODE_SET_RESERVE1:
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+    case MODE_SET_RESERVE1: {
 
         /*
          * only touch cache once per pdu request, to prevent a cache
@@ -628,26 +467,26 @@ netsnmp_cache_helper_handler(netsnmp_mib_handler * handler,
          * a previous (delegated) request is still using the cache.
          * maybe use a reference counter?
          */
-        if (netsnmp_cache_is_valid(reqinfo, addrstr))
-            break;
+        if (netsnmp_cache_is_valid(reqinfo, reginfo->handlerName))
+            return SNMP_ERR_NOERROR;
 
         /*
          * call the load hook, and update the cache timestamp.
          * If it's not already there, add to reqinfo
          */
         netsnmp_cache_check_and_reload(cache);
-        netsnmp_cache_reqinfo_insert(cache, reqinfo, addrstr);
+        netsnmp_cache_reqinfo_insert(cache, reqinfo, reginfo->handlerName);
         /** next handler called automatically - 'AUTO_NEXT' */
-        break;
+        }
+        return SNMP_ERR_NOERROR;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE2:
     case MODE_SET_FREE:
     case MODE_SET_ACTION:
     case MODE_SET_UNDO:
-        netsnmp_assert(netsnmp_cache_is_valid(reqinfo, addrstr));
+        netsnmp_assert(netsnmp_cache_is_valid(reqinfo, reginfo->handlerName));
         /** next handler called automatically - 'AUTO_NEXT' */
-        break;
+        return SNMP_ERR_NOERROR;
 
         /*
          * A (successful) SET request wouldn't typically trigger a reload of
@@ -661,8 +500,7 @@ netsnmp_cache_helper_handler(netsnmp_mib_handler * handler,
             cache->valid = 0;
         }
         /** next handler called automatically - 'AUTO_NEXT' */
-        break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
+        return SNMP_ERR_NOERROR;
 
     default:
         snmp_log(LOG_WARNING, "cache_handler: Unrecognised mode (%d)\n",
@@ -670,9 +508,8 @@ netsnmp_cache_helper_handler(netsnmp_mib_handler * handler,
         netsnmp_request_set_error_all(requests, SNMP_ERR_GENERR);
         return SNMP_ERR_GENERR;
     }
-    if (cache->flags & NETSNMP_CACHE_RESET_TIMER_ON_USE)
-        netsnmp_set_monotonic_marker(&cache->timestampM);
-    return SNMP_ERR_NOERROR;
+    netsnmp_request_set_error_all(requests, SNMP_ERR_GENERR);
+    return SNMP_ERR_GENERR;     /* should never get here */
 }
 
 static void
@@ -716,7 +553,10 @@ _cache_load( netsnmp_cache *cache )
                             0, release_cached_resources, NULL);
         cache_outstanding_valid = 1;
     }
-    netsnmp_set_monotonic_marker(&cache->timestampM);
+    if (cache->timestamp)
+        atime_setMarker(cache->timestamp);
+    else
+        cache->timestamp = atime_newMarker();
     DEBUGMSGT(("helper:cache_handler", " loaded (%d)\n", cache->timeout));
 
     return ret;
diff --git a/agent/helpers/debug_handler.c b/agent/helpers/debug_handler.c
index e4a8438..4e35695 100644
--- a/agent/helpers/debug_handler.c
+++ b/agent/helpers/debug_handler.c
@@ -9,6 +9,13 @@
  * distributed with the Net-SNMP package.
  */
 #include <net-snmp/net-snmp-config.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>
 
@@ -46,14 +53,8 @@ netsnmp_get_debug_handler(void)
     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 */
-static void
+void
 debug_print_requests(netsnmp_request_info *requests)
 {
     netsnmp_request_info *request;
@@ -81,7 +82,6 @@ debug_print_requests(netsnmp_request_info *requests)
     }
 }
 
-#endif /* NETSNMP_NO_DEBUGGING */
 
 /** @internal Implements the debug handler */
 int
@@ -90,67 +90,60 @@ netsnmp_debug_helper(netsnmp_mib_handler *handler,
                      netsnmp_agent_request_info *reqinfo,
                      netsnmp_request_info *requests)
 {
-    int ret;
-
-    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", "    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));
+    netsnmp_mib_handler *hptr;
+    int             i, ret, count;
+    char           *cp;
+
+    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)));
         }
-        DEBUGMSG(("helper:debug", "\n"));
+    }
+    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", "    Priority:    %d\n",
+                reginfo->priority));
 
-        DEBUGMSGTL(("helper:debug", "  --- calling next handler --- \n"));
+    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 = %x]", hptr->myvoid));
     }
+    DEBUGMSG(("helper:debug", "\n"));
 
-    ret = netsnmp_call_next_handler(handler, reginfo, reqinfo, requests);
+    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);
 
-    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", "  --- calling next handler --- \n"));
+    ret = netsnmp_call_next_handler(handler, reginfo, reqinfo, requests);
 
-        DEBUGMSGTL(("helper:debug", "Exiting Debugging Helper:\n"));
-    }
+    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"));
     return ret;
 }
 
@@ -164,3 +157,4 @@ netsnmp_init_debug_helper(void)
     netsnmp_register_handler_by_name("debug", netsnmp_get_debug_handler());
 }
 /**  @} */
+
diff --git a/agent/helpers/dummy.c b/agent/helpers/dummy.c
deleted file mode 100644
index 6979ae4..0000000
--- a/agent/helpers/dummy.c
+++ /dev/null
@@ -1 +0,0 @@
-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 a187d58..5d7fd1d 100644
--- a/agent/helpers/instance.c
+++ b/agent/helpers/instance.c
@@ -9,12 +9,6 @@
  * distributed with the Net-SNMP package.
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include <net-snmp/agent/instance.h>
 
 #include <stdlib.h>
 #if HAVE_STRING_H
@@ -24,17 +18,16 @@
 #endif
 
 #include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+
+#include <net-snmp/agent/instance.h>
 #include <net-snmp/agent/serialize.h>
 #include <net-snmp/agent/read_only.h>
 
-netsnmp_feature_provide(instance)
-netsnmp_feature_child_of(instance, mib_helpers)
-
 typedef struct netsnmp_num_file_instance_s {
-    int   refcnt;
     char *file_name;
     FILE *filep;
-    u_char type;
+    int   type;
     int   flags;
 } netsnmp_num_file_instance;
 
@@ -44,22 +37,6 @@ typedef struct netsnmp_num_file_instance_s {
  *  @{
  */
 
-static netsnmp_num_file_instance *
-netsnmp_num_file_instance_ref(netsnmp_num_file_instance *nfi)
-{
-    nfi->refcnt++;
-    return nfi;
-}
-
-static void
-netsnmp_num_file_instance_deref(netsnmp_num_file_instance *nfi)
-{
-    if (--nfi->refcnt == 0) {
-	free(nfi->file_name);
-	free(nfi);
-    }
-}
-
 /**
  * Creates an instance helper handler, calls netsnmp_create_handler, which
  * then could be registered, using netsnmp_register_handler().
@@ -131,8 +108,8 @@ static
 netsnmp_handler_registration *
 get_reg(const char *name,
         const char *ourname,
-        const oid * reg_oid, size_t reg_oid_len,
-        netsnmp_num_file_instance *it,
+        oid * reg_oid, size_t reg_oid_len,
+        void *it,
         int modes,
         Netsnmp_Node_Handler * scalarh, Netsnmp_Node_Handler * subhandler,
         const char *contextName)
@@ -147,9 +124,7 @@ get_reg(const char *name,
                                                 reg_oid, reg_oid_len,
                                                 modes);
         myhandler = netsnmp_create_handler(ourname, scalarh);
-        myhandler->myvoid = it;
-	myhandler->data_clone = (void*(*)(void*))netsnmp_num_file_instance_ref;
-	myhandler->data_free = (void(*)(void*))netsnmp_num_file_instance_deref;
+        myhandler->myvoid = (void *) it;
         netsnmp_inject_handler(myreg, myhandler);
     } else {
         myreg =
@@ -157,330 +132,262 @@ get_reg(const char *name,
                                                 scalarh,
                                                 reg_oid, reg_oid_len,
                                                 modes);
-        myreg->handler->myvoid = it;
-	myreg->handler->data_clone
-	    = (void *(*)(void *))netsnmp_num_file_instance_ref;
-	myreg->handler->data_free
-	    = (void (*)(void *))netsnmp_num_file_instance_deref;
+        myreg->handler->myvoid = (void *) it;
     }
     if (contextName)
         myreg->contextName = strdup(contextName);
     return myreg;
 }
 
-/* Watched 'long' instances are writable on both 32-bit and 64-bit systems  */
-netsnmp_feature_child_of(read_only_ulong_instance,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_READ_ONLY_ULONG_INSTANCE
 int
 netsnmp_register_read_only_ulong_instance(const char *name,
-                                          const oid * reg_oid,
+                                          oid * reg_oid,
                                           size_t reg_oid_len, u_long * it,
                                           Netsnmp_Node_Handler *
                                           subhandler)
 {
-    return netsnmp_register_watched_instance2(
-               netsnmp_create_handler_registration(
-                   name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RONLY),
-               netsnmp_create_watcher_info(
-                   (void *)it, sizeof(u_long),
-                   ASN_UNSIGNED, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "ulong_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RONLY, netsnmp_instance_ulong_handler,
+                    subhandler, NULL);
+    return netsnmp_register_read_only_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_READ_ONLY_ULONG_INSTANCE */
 
-netsnmp_feature_child_of(ulong_instance,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_ULONG_INSTANCE
 int
 netsnmp_register_ulong_instance(const char *name,
-                                const oid * reg_oid, size_t reg_oid_len,
+                                oid * reg_oid, size_t reg_oid_len,
                                 u_long * it,
                                 Netsnmp_Node_Handler * subhandler)
 {
-    return netsnmp_register_watched_instance2(
-               netsnmp_create_handler_registration(
-                   name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RWRITE),
-               netsnmp_create_watcher_info(
-                   (void *)it, sizeof(u_long),
-                   ASN_UNSIGNED, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "ulong_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RWRITE, netsnmp_instance_ulong_handler,
+                    subhandler, NULL);
+    return netsnmp_register_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_ULONG_INSTANCE */
 
-netsnmp_feature_child_of(read_only_counter32_instance,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_READ_ONLY_COUNTER32_INSTANCE
 int
 netsnmp_register_read_only_counter32_instance(const char *name,
-                                              const oid * reg_oid,
+                                              oid * reg_oid,
                                               size_t reg_oid_len,
                                               u_long * it,
                                               Netsnmp_Node_Handler *
                                               subhandler)
 {
-    return netsnmp_register_watched_instance2(
-               netsnmp_create_handler_registration(
-                   name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RONLY),
-               netsnmp_create_watcher_info(
-                   (void *)it, sizeof(u_long),
-                   ASN_COUNTER, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "counter32_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RONLY, netsnmp_instance_counter32_handler,
+                    subhandler, NULL);
+    return netsnmp_register_read_only_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_READ_ONLY_COUNTER32_INSTANCE */
 
-netsnmp_feature_child_of(read_only_long_instance,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_READ_ONLY_LONG_INSTANCE
 int
 netsnmp_register_read_only_long_instance(const char *name,
-                                         const oid * reg_oid,
-                                         size_t reg_oid_len,
+                                         oid * reg_oid, size_t reg_oid_len,
                                          long *it,
                                          Netsnmp_Node_Handler * subhandler)
 {
-    return netsnmp_register_watched_instance2(
-               netsnmp_create_handler_registration(
-                   name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RONLY),
-               netsnmp_create_watcher_info(
-                   (void *)it, sizeof(long), ASN_INTEGER, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "long_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RONLY, netsnmp_instance_long_handler,
+                    subhandler, NULL);
+    return netsnmp_register_read_only_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_READ_ONLY_LONG_INSTANCE */
 
-netsnmp_feature_child_of(long_instance,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_LONG_INSTANCE
 int
 netsnmp_register_long_instance(const char *name,
-                               const oid * reg_oid, size_t reg_oid_len,
+                               oid * reg_oid, size_t reg_oid_len,
                                long *it, Netsnmp_Node_Handler * subhandler)
 {
-    return netsnmp_register_watched_instance2(
-               netsnmp_create_handler_registration(
-                   name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RWRITE),
-               netsnmp_create_watcher_info(
-                   (void *)it, sizeof(long), ASN_INTEGER, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "long_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RWRITE, netsnmp_instance_long_handler,
+                    subhandler, NULL);
+    return netsnmp_register_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LONG_INSTANCE */
 
-/* Watched 'int' instances are only writable on 32-bit systems  */
-netsnmp_feature_child_of(read_only_uint_instance,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_READ_ONLY_UINT_INSTANCE
+
 int
 netsnmp_register_read_only_uint_instance(const char *name,
-                                         const oid * reg_oid,
-                                         size_t reg_oid_len,
+                                         oid * reg_oid, size_t reg_oid_len,
                                          unsigned int *it,
                                          Netsnmp_Node_Handler * subhandler)
 {
-    return netsnmp_register_watched_instance2(
-               netsnmp_create_handler_registration(
-                   name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RONLY),
-               netsnmp_create_watcher_info(
-                   (void *)it, sizeof(unsigned int),
-                   ASN_UNSIGNED, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "uint_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RONLY, netsnmp_instance_uint_handler,
+                    subhandler, NULL);
+    return netsnmp_register_read_only_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_READ_ONLY_UINT_INSTANCE */
 
-netsnmp_feature_child_of(uint_instance,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_UINT_INSTANCE
 int
 netsnmp_register_uint_instance(const char *name,
-                               const oid * reg_oid, size_t reg_oid_len,
+                               oid * reg_oid, size_t reg_oid_len,
                                unsigned int *it, Netsnmp_Node_Handler * subhandler)
 {
-    return netsnmp_register_watched_instance2(
-               netsnmp_create_handler_registration(
-                   name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RWRITE),
-               netsnmp_create_watcher_info(
-                   (void *)it, sizeof(unsigned int),
-                   ASN_UNSIGNED, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "uint_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RWRITE, netsnmp_instance_uint_handler,
+                    subhandler, NULL);
+    return netsnmp_register_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UINT_INSTANCE */
 
-netsnmp_feature_child_of(read_only_int_instance,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_READ_ONLY_INT_INSTANCE
 int
 netsnmp_register_read_only_int_instance(const char *name,
-                                const oid * reg_oid, size_t reg_oid_len,
+                                oid * reg_oid, size_t reg_oid_len,
                                 int *it, Netsnmp_Node_Handler * subhandler)
 {
-    return netsnmp_register_watched_instance2(
-               netsnmp_create_handler_registration(
-                   name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RONLY),
-               netsnmp_create_watcher_info(
-                   (void *)it, sizeof(int), ASN_INTEGER, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "int_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RONLY, netsnmp_instance_int_handler,
+                    subhandler, NULL);
+    return netsnmp_register_read_only_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_READ_ONLY_INT_INSTANCE */
 
   /*
    * Compatibility with earlier (inconsistently named) routine
    */
-netsnmp_feature_child_of(register_read_only_int_instance,netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_INT_INSTANCE
 int
 register_read_only_int_instance(const char *name,
-                                const oid * reg_oid, size_t reg_oid_len,
+                                oid * reg_oid, size_t reg_oid_len,
                                 int *it, Netsnmp_Node_Handler * subhandler)
 {
   return netsnmp_register_read_only_int_instance(name,
                                 reg_oid, reg_oid_len,
                                 it, subhandler);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_INT_INSTANCE */
 
 /*
  * Context registrations
  */
 
-netsnmp_feature_child_of(register_read_only_ulong_instance_context,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_ULONG_INSTANCE_CONTEXT
 int
 netsnmp_register_read_only_ulong_instance_context(const char *name,
-                                                  const oid * reg_oid,
+                                                  oid * reg_oid,
                                                   size_t reg_oid_len,
                                                   u_long * it,
                                                   Netsnmp_Node_Handler *
                                                   subhandler,
                                                   const char *contextName)
 {
-    netsnmp_handler_registration *myreg =
-      netsnmp_create_handler_registration(
-          name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RONLY);
-    if (myreg && contextName)
-      myreg->contextName = strdup(contextName);
-    return netsnmp_register_watched_instance2(
-        myreg, netsnmp_create_watcher_info(
-            (void *)it, sizeof(u_long), ASN_UNSIGNED, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "ulong_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RONLY, netsnmp_instance_ulong_handler,
+                    subhandler, contextName);
+    return netsnmp_register_read_only_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_ULONG_INSTANCE_CONTEXT */
 
-netsnmp_feature_child_of(register_ulong_instance_context,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_ULONG_INSTANCE_CONTEXT
 int
 netsnmp_register_ulong_instance_context(const char *name,
-                                        const oid * reg_oid, size_t reg_oid_len,
+                                        oid * reg_oid, size_t reg_oid_len,
                                         u_long * it,
                                         Netsnmp_Node_Handler * subhandler,
                                         const char *contextName)
 {
-    netsnmp_handler_registration *myreg =
-      netsnmp_create_handler_registration(
-          name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RWRITE);
-    if (myreg && contextName)
-      myreg->contextName = strdup(contextName);
-    return netsnmp_register_watched_instance2(
-        myreg, netsnmp_create_watcher_info(
-            (void *)it, sizeof(u_long), ASN_UNSIGNED, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "ulong_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RWRITE, netsnmp_instance_ulong_handler,
+                    subhandler, contextName);
+    return netsnmp_register_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_ULONG_INSTANCE_CONTEXT */
 
-netsnmp_feature_child_of(register_read_only_counter32_instance_context,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_COUNTER32_INSTANCE_CONTEXT
 int
 netsnmp_register_read_only_counter32_instance_context(const char *name,
-                                                      const oid * reg_oid,
+                                                      oid * reg_oid,
                                                       size_t reg_oid_len,
                                                       u_long * it,
                                                       Netsnmp_Node_Handler *
                                                       subhandler,
                                                       const char *contextName)
 {
-    netsnmp_handler_registration *myreg =
-      netsnmp_create_handler_registration(
-          name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RONLY);
-    if (myreg && contextName)
-      myreg->contextName = strdup(contextName);
-    return netsnmp_register_watched_instance2(
-        myreg, netsnmp_create_watcher_info(
-            (void *)it, sizeof(u_long), ASN_COUNTER, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "counter32_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RONLY, netsnmp_instance_counter32_handler,
+                    subhandler, contextName);
+    return netsnmp_register_read_only_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_COUNTER32_INSTANCE_CONTEXT */
 
-netsnmp_feature_child_of(register_read_only_long_instance_context,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_LONG_INSTANCE_CONTEXT
 int
 netsnmp_register_read_only_long_instance_context(const char *name,
-                                                 const oid * reg_oid,
+                                                 oid * reg_oid,
                                                  size_t reg_oid_len,
                                                  long *it,
                                                  Netsnmp_Node_Handler
                                                  *subhandler,
                                                  const char *contextName)
 {
-    netsnmp_handler_registration *myreg =
-      netsnmp_create_handler_registration(
-          name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RONLY);
-    if (myreg && contextName)
-      myreg->contextName = strdup(contextName);
-    return netsnmp_register_watched_instance2(
-        myreg, netsnmp_create_watcher_info(
-            (void *)it, sizeof(long), ASN_INTEGER, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "long_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RONLY, netsnmp_instance_long_handler,
+                    subhandler, contextName);
+    return netsnmp_register_read_only_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_LONG_INSTANCE_CONTEXT */
 
-netsnmp_feature_child_of(register_long_instance_context,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_LONG_INSTANCE_CONTEXT
 int
 netsnmp_register_long_instance_context(const char *name,
-                                       const oid * reg_oid, size_t reg_oid_len,
+                                       oid * reg_oid, size_t reg_oid_len,
                                        long *it,
                                        Netsnmp_Node_Handler * subhandler,
                                        const char *contextName)
 {
-    netsnmp_handler_registration *myreg =
-      netsnmp_create_handler_registration(
-          name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RWRITE);
-    if (myreg && contextName)
-      myreg->contextName = strdup(contextName);
-    return netsnmp_register_watched_instance2(
-        myreg, netsnmp_create_watcher_info(
-            (void *)it, sizeof(long), ASN_INTEGER, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "long_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RWRITE, netsnmp_instance_long_handler,
+                    subhandler, contextName);
+    return netsnmp_register_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_LONG_INSTANCE_CONTEXT */
 
-netsnmp_feature_child_of(register_int_instance_context,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_INT_INSTANCE_CONTEXT
 int
 netsnmp_register_int_instance_context(const char *name,
-                                      const oid * reg_oid,
+                                      oid * reg_oid,
                                       size_t reg_oid_len,
                                       int *it,
                                       Netsnmp_Node_Handler * subhandler,
                                       const char *contextName)
 {
-    netsnmp_handler_registration *myreg =
-      netsnmp_create_handler_registration(
-          name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RWRITE);
-    if (myreg && contextName)
-      myreg->contextName = strdup(contextName);
-    return netsnmp_register_watched_instance2(
-        myreg, netsnmp_create_watcher_info(
-            (void *)it, sizeof(int), ASN_INTEGER, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "int_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RWRITE, netsnmp_instance_int_handler,
+                    subhandler, contextName);
+    return netsnmp_register_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_INT_INSTANCE_CONTEXT */
 
-netsnmp_feature_child_of(register_read_only_int_instance_context,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_INT_INSTANCE_CONTEXT
 int
 netsnmp_register_read_only_int_instance_context(const char *name,
-                                                const oid * reg_oid,
+                                                oid * reg_oid,
                                                 size_t reg_oid_len,
                                                 int *it,
                                                 Netsnmp_Node_Handler * subhandler,
                                                 const char *contextName)
 {
-    netsnmp_handler_registration *myreg =
-      netsnmp_create_handler_registration(
-          name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RONLY);
-    if (myreg && contextName)
-      myreg->contextName = strdup(contextName);
-    return netsnmp_register_watched_instance2(
-        myreg, netsnmp_create_watcher_info(
-            (void *)it, sizeof(int), ASN_INTEGER, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "int_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RONLY, netsnmp_instance_int_handler,
+                    subhandler, contextName);
+    return netsnmp_register_read_only_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_INT_INSTANCE_CONTEXT */
 
 /*
  * Compatibility with earlier (inconsistently named) routine
  */
-netsnmp_feature_child_of(read_only_int_instance_context,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_READ_ONLY_INT_INSTANCE_CONTEXT
 int
 register_read_only_int_instance_context(const char *name,
-                                        const oid * reg_oid, size_t reg_oid_len,
+                                        oid * reg_oid, size_t reg_oid_len,
                                         int *it,
                                         Netsnmp_Node_Handler * subhandler,
                                         const char *contextName)
@@ -490,14 +397,11 @@ register_read_only_int_instance_context(const char *name,
                                                            it, subhandler,
                                                            contextName);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_READ_ONLY_INT_INSTANCE_CONTEXT */
 
-netsnmp_feature_child_of(register_num_file_instance,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_NUM_FILE_INSTANCE
 int
 netsnmp_register_num_file_instance(const char *name,
-                                   const oid * reg_oid, size_t reg_oid_len,
-                                   const char *file_name, int asn_type, int mode,
+                                   oid * reg_oid, size_t reg_oid_len,
+                                   char *file_name, int asn_type, int mode,
                                    Netsnmp_Node_Handler * subhandler,
                                    const char *contextName)
 {
@@ -518,12 +422,11 @@ netsnmp_register_num_file_instance(const char *name,
         return MIB_REGISTRATION_FAILED;
     }
 
-    nfi->refcnt = 1;
     myreg = get_reg(name, "file_num_handler", reg_oid, reg_oid_len, nfi,
                     mode, netsnmp_instance_num_file_handler,
                     subhandler, contextName);
     if (NULL == myreg) {
-        netsnmp_num_file_instance_deref(nfi);
+        free(nfi); /* SNMP_FREE overkill on local var */
         return MIB_REGISTRATION_FAILED;
     }
 
@@ -534,10 +437,7 @@ netsnmp_register_num_file_instance(const char *name,
 
     return netsnmp_register_instance(myreg);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_NUM_FILE_INSTANCE */
 
-netsnmp_feature_child_of(register_int_instance,instance)
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_INT_INSTANCE
 /**
  * This function registers an int helper handler to a specified OID.
  *
@@ -558,25 +458,284 @@ netsnmp_feature_child_of(register_int_instance,instance)
  */
 int
 netsnmp_register_int_instance(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               int *it, Netsnmp_Node_Handler * subhandler)
 {
-    return netsnmp_register_watched_instance2(
-               netsnmp_create_handler_registration(
-                   name, subhandler, reg_oid, reg_oid_len, HANDLER_CAN_RWRITE),
-               netsnmp_create_watcher_info(
-                   (void *)it, sizeof(int), ASN_INTEGER, WATCHER_FIXED_SIZE));
+    netsnmp_handler_registration *myreg;
+
+    myreg = get_reg(name, "int_handler", reg_oid, reg_oid_len, it,
+                    HANDLER_CAN_RWRITE, netsnmp_instance_int_handler,
+                    subhandler, NULL);
+    return netsnmp_register_instance(myreg);
+}
+
+int
+netsnmp_instance_ulong_handler(netsnmp_mib_handler *handler,
+                               netsnmp_handler_registration *reginfo,
+                               netsnmp_agent_request_info *reqinfo,
+                               netsnmp_request_info *requests)
+{
+
+    u_long         *it = (u_long *) handler->myvoid;
+    u_long         *it_save;
+
+    DEBUGMSGTL(("netsnmp_instance_ulong_handler", "Got request:  %d\n",
+                reqinfo->mode));
+
+    switch (reqinfo->mode) {
+        /*
+         * data requests 
+         */
+    case MODE_GET:
+        snmp_set_var_typed_value(requests->requestvb, ASN_UNSIGNED,
+                                 (u_char *) it, sizeof(*it));
+        break;
+
+        /*
+         * SET requests.  Should only get here if registered RWRITE 
+         */
+    case MODE_SET_RESERVE1:
+        if (requests->requestvb->type != ASN_UNSIGNED)
+            netsnmp_set_request_error(reqinfo, requests,
+                                      SNMP_ERR_WRONGTYPE);
+        break;
+
+    case MODE_SET_RESERVE2:
+        /*
+         * store old info for undo later 
+         */
+        memdup((u_char **) & it_save, (u_char *) it, sizeof(u_long));
+        if (it_save == NULL) {
+            netsnmp_set_request_error(reqinfo, requests,
+                                      SNMP_ERR_RESOURCEUNAVAILABLE);
+            return SNMP_ERR_NOERROR;
+        }
+        netsnmp_request_add_list_data(requests,
+                                      netsnmp_create_data_list
+                                      (INSTANCE_HANDLER_NAME, it_save,
+                                       free));
+        break;
+
+    case MODE_SET_ACTION:
+        /*
+         * update current 
+         */
+        DEBUGMSGTL(("testhandler", "updated u_long %ul -> %ul\n", *it,
+                    *(requests->requestvb->val.integer)));
+        *it = *(requests->requestvb->val.integer);
+        break;
+
+    case MODE_SET_UNDO:
+        *it =
+            *((u_long *) netsnmp_request_get_list_data(requests,
+                                                       INSTANCE_HANDLER_NAME));
+        break;
+
+    case MODE_SET_COMMIT:
+    case MODE_SET_FREE:
+        /*
+         * nothing to do 
+         */
+        break;
+    }
+
+    if (handler->next && handler->next->access_method)
+        return netsnmp_call_next_handler(handler, reginfo, reqinfo,
+                                         requests);
+
+    return SNMP_ERR_NOERROR;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_INT_INSTANCE */
 
-#ifdef HAVE_DMALLOC_H
-static void free_wrapper(void * p)
+int
+netsnmp_instance_counter32_handler(netsnmp_mib_handler *handler,
+                                   netsnmp_handler_registration *reginfo,
+                                   netsnmp_agent_request_info *reqinfo,
+                                   netsnmp_request_info *requests)
 {
-    free(p);
+
+    u_long         *it = (u_long *) handler->myvoid;
+
+    DEBUGMSGTL(("netsnmp_instance_counter32_handler",
+                "Got request:  %d\n", reqinfo->mode));
+
+    switch (reqinfo->mode) {
+        /*
+         * data requests 
+         */
+    case MODE_GET:
+        snmp_set_var_typed_value(requests->requestvb, ASN_COUNTER,
+                                 (u_char *) it, sizeof(*it));
+        break;
+
+        /*
+         * SET requests.  Should only get here if registered RWRITE 
+         */
+    default:
+        snmp_log(LOG_ERR,
+                 "netsnmp_instance_counter32_handler: illegal mode\n");
+        netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_GENERR);
+        return SNMP_ERR_NOERROR;
+    }
+    if (handler->next && handler->next->access_method)
+        return netsnmp_call_next_handler(handler, reginfo, reqinfo,
+                                         requests);
+    return SNMP_ERR_NOERROR;
+}
+
+int
+netsnmp_instance_long_handler(netsnmp_mib_handler *handler,
+                              netsnmp_handler_registration *reginfo,
+                              netsnmp_agent_request_info *reqinfo,
+                              netsnmp_request_info *requests)
+{
+
+    long           *it = (long *) handler->myvoid;
+    long           *it_save;
+
+    DEBUGMSGTL(("netsnmp_instance_long_handler", "Got request:  %d\n",
+                reqinfo->mode));
+
+    switch (reqinfo->mode) {
+        /*
+         * data requests 
+         */
+    case MODE_GET:
+        snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER,
+                                 (u_char *) it, sizeof(*it));
+        break;
+
+        /*
+         * SET requests.  Should only get here if registered RWRITE 
+         */
+    case MODE_SET_RESERVE1:
+        if (requests->requestvb->type != ASN_INTEGER)
+            netsnmp_set_request_error(reqinfo, requests,
+                                      SNMP_ERR_WRONGTYPE);
+        break;
+
+    case MODE_SET_RESERVE2:
+        /*
+         * store old info for undo later 
+         */
+        memdup((u_char **) & it_save, (u_char *) it, sizeof(long));
+        if (it_save == NULL) {
+            netsnmp_set_request_error(reqinfo, requests,
+                                      SNMP_ERR_RESOURCEUNAVAILABLE);
+            return SNMP_ERR_NOERROR;
+        }
+        netsnmp_request_add_list_data(requests,
+                                      netsnmp_create_data_list
+                                      (INSTANCE_HANDLER_NAME, it_save,
+                                       free));
+        break;
+
+    case MODE_SET_ACTION:
+        /*
+         * update current 
+         */
+        DEBUGMSGTL(("testhandler", "updated u_long %ul -> %ul\n", *it,
+                    *(requests->requestvb->val.integer)));
+        *it = *(requests->requestvb->val.integer);
+        break;
+
+    case MODE_SET_UNDO:
+        *it =
+            *((u_long *) netsnmp_request_get_list_data(requests,
+                                                       INSTANCE_HANDLER_NAME));
+        break;
+
+    case MODE_SET_COMMIT:
+    case MODE_SET_FREE:
+        /*
+         * nothing to do 
+         */
+        break;
+    }
+    if (handler->next && handler->next->access_method)
+        return netsnmp_call_next_handler(handler, reginfo, reqinfo,
+                                         requests);
+    return SNMP_ERR_NOERROR;
+}
+
+int
+netsnmp_instance_int_handler(netsnmp_mib_handler *handler,
+                             netsnmp_handler_registration *reginfo,
+                             netsnmp_agent_request_info *reqinfo,
+                             netsnmp_request_info *requests)
+{
+
+    int *it = (int *) handler->myvoid;
+    int *it_save;
+    long tmp_it;
+    
+    DEBUGMSGTL(("netsnmp_instance_int_handler", "Got request:  %d\n",
+                reqinfo->mode));
+
+    switch (reqinfo->mode) {
+        /*
+         * data requests 
+         */
+    case MODE_GET:
+	/*
+	 * Use a long here, otherwise on 64 bit use of an int would fail
+	 */
+	tmp_it = *it;
+        snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER,
+                                 (u_char *) &tmp_it, sizeof(tmp_it));
+        break;
+
+        /*
+         * SET requests.  Should only get here if registered RWRITE 
+         */
+    case MODE_SET_RESERVE1:
+        if (requests->requestvb->type != ASN_INTEGER)
+            netsnmp_set_request_error(reqinfo, requests,
+                                      SNMP_ERR_WRONGTYPE);
+        break;
+
+    case MODE_SET_RESERVE2:
+        /*
+         * store old info for undo later 
+         */
+        memdup((u_char **) & it_save, (u_char *) it, sizeof(int));
+        if (it_save == NULL) {
+            netsnmp_set_request_error(reqinfo, requests,
+                                      SNMP_ERR_RESOURCEUNAVAILABLE);
+            return SNMP_ERR_NOERROR;
+        }
+        netsnmp_request_add_list_data(requests,
+                                      netsnmp_create_data_list
+                                      (INSTANCE_HANDLER_NAME, it_save,
+                                       free));
+        break;
+
+    case MODE_SET_ACTION:
+        /*
+         * update current 
+         */
+        DEBUGMSGTL(("testhandler", "updated int %d -> %ld\n", *it,
+                    *(requests->requestvb->val.integer)));
+        *it = (int) *(requests->requestvb->val.integer);
+        break;
+
+    case MODE_SET_UNDO:
+        *it =
+            *((u_int *) netsnmp_request_get_list_data(requests,
+                                                      INSTANCE_HANDLER_NAME));
+        break;
+
+    case MODE_SET_COMMIT:
+    case MODE_SET_FREE:
+        /*
+         * nothing to do 
+         */
+        break;
+    }
+    if (handler->next && handler->next->access_method)
+        return netsnmp_call_next_handler(handler, reginfo, reqinfo,
+                                         requests);
+    return SNMP_ERR_NOERROR;
 }
-#else
-#define free_wrapper free
-#endif
 
 int
 netsnmp_instance_num_file_handler(netsnmp_mib_handler *handler,
@@ -585,10 +744,7 @@ netsnmp_instance_num_file_handler(netsnmp_mib_handler *handler,
                                   netsnmp_request_info *requests)
 {
     netsnmp_num_file_instance *nfi;
-    u_long it;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-    u_long *it_save;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
+    u_long it, *it_save;
     int rc;
 
     netsnmp_assert(NULL != handler);
@@ -630,7 +786,6 @@ netsnmp_instance_num_file_handler(netsnmp_mib_handler *handler,
         /*
          * SET requests.  Should only get here if registered RWRITE 
          */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
         netsnmp_assert(NULL == nfi->filep);
         if (requests->requestvb->type != nfi->type)
@@ -665,7 +820,7 @@ netsnmp_instance_num_file_handler(netsnmp_mib_handler *handler,
         netsnmp_request_add_list_data(requests,
                                       netsnmp_create_data_list
                                       (INSTANCE_HANDLER_NAME, it_save,
-                                       &free_wrapper));
+                                       free));
         break;
 
     case MODE_SET_ACTION:
@@ -703,12 +858,6 @@ netsnmp_instance_num_file_handler(netsnmp_mib_handler *handler,
             nfi->filep = NULL;
         }
         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-    default:
-        snmp_log(LOG_ERR,
-                 "netsnmp_instance_num_file_handler: illegal mode\n");
-        netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_GENERR);
-        return SNMP_ERR_NOERROR;
     }
 
     if (handler->next && handler->next->access_method)
@@ -718,6 +867,86 @@ netsnmp_instance_num_file_handler(netsnmp_mib_handler *handler,
 }
 
 int
+netsnmp_instance_uint_handler(netsnmp_mib_handler *handler,
+                              netsnmp_handler_registration *reginfo,
+                              netsnmp_agent_request_info *reqinfo,
+                              netsnmp_request_info *requests)
+{
+
+    unsigned int *it = (unsigned int *) handler->myvoid;
+    unsigned int *it_save;
+    unsigned long tmp_it;
+    
+    DEBUGMSGTL(("netsnmp_instance_uint_handler", "Got request:  %d\n",
+                reqinfo->mode));
+
+    switch (reqinfo->mode) {
+        /*
+         * data requests 
+         */
+    case MODE_GET:
+	/*
+	 * Use a long here, otherwise on 64 bit use of an int would fail
+	 */
+	tmp_it = *it;
+        snmp_set_var_typed_value(requests->requestvb, ASN_UNSIGNED,
+                                 (u_char *) &tmp_it, sizeof(unsigned long));
+        break;
+
+        /*
+         * SET requests.  Should only get here if registered RWRITE 
+         */
+    case MODE_SET_RESERVE1:
+        if (requests->requestvb->type != ASN_UNSIGNED)
+            netsnmp_set_request_error(reqinfo, requests,
+                                      SNMP_ERR_WRONGTYPE);
+        break;
+
+    case MODE_SET_RESERVE2:
+        /*
+         * store old info for undo later 
+         */
+        memdup((u_char **) & it_save, (u_char *) it, sizeof(u_int));
+        if (it_save == NULL) {
+            netsnmp_set_request_error(reqinfo, requests,
+                                      SNMP_ERR_RESOURCEUNAVAILABLE);
+            return SNMP_ERR_NOERROR;
+        }
+        netsnmp_request_add_list_data(requests,
+                                      netsnmp_create_data_list
+                                      (INSTANCE_HANDLER_NAME, it_save,
+                                       free));
+        break;
+
+    case MODE_SET_ACTION:
+        /*
+         * update current 
+         */
+        DEBUGMSGTL(("testhandler", "updated uint %d -> %ld\n", *it,
+                    *(requests->requestvb->val.integer)));
+        *it = (unsigned int) *(requests->requestvb->val.integer);
+        break;
+
+    case MODE_SET_UNDO:
+        *it =
+            *((u_int *) netsnmp_request_get_list_data(requests,
+                                                      INSTANCE_HANDLER_NAME));
+        break;
+
+    case MODE_SET_COMMIT:
+    case MODE_SET_FREE:
+        /*
+         * nothing to do 
+         */
+        break;
+    }
+    if (handler->next && handler->next->access_method)
+        return netsnmp_call_next_handler(handler, reginfo, reqinfo,
+                                         requests);
+    return SNMP_ERR_NOERROR;
+}
+
+int
 netsnmp_instance_helper_handler(netsnmp_mib_handler *handler,
                                 netsnmp_handler_registration *reginfo,
                                 netsnmp_agent_request_info *reqinfo,
@@ -749,7 +978,6 @@ netsnmp_instance_helper_handler(netsnmp_mib_handler *handler,
         }
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
     case MODE_SET_RESERVE2:
     case MODE_SET_ACTION:
@@ -765,7 +993,6 @@ netsnmp_instance_helper_handler(netsnmp_mib_handler *handler,
                                              requests);
         }
         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
     case MODE_GETNEXT:
         if (cmp < 0 || (cmp == 0 && requests->inclusive)) {
@@ -791,11 +1018,6 @@ netsnmp_instance_helper_handler(netsnmp_mib_handler *handler,
             return SNMP_ERR_NOERROR;
         }
         break;
-    default:
-        snmp_log(LOG_ERR,
-                 "netsnmp_instance_helper_handler: illegal mode\n");
-        netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_GENERR);
-        return SNMP_ERR_NOERROR;
     }
     /*
      * got here only if illegal mode found 
diff --git a/agent/helpers/mode_end_call.c b/agent/helpers/mode_end_call.c
index 0bfcc69..912f58c 100644
--- a/agent/helpers/mode_end_call.c
+++ b/agent/helpers/mode_end_call.c
@@ -9,17 +9,12 @@
  * distributed with the Net-SNMP package.
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
 #include <net-snmp/agent/mode_end_call.h>
 
-netsnmp_feature_provide(mode_end_call)
-netsnmp_feature_child_of(mode_end_call, mib_helpers)
-
-#ifndef NETSNMP_FEATURE_REMOVE_MODE_END_CALL
 /** @defgroup mode_end_call mode_end_call
  *  At the end of a series of requests, call another handler hook.
  *  Handlers that want to loop through a series of requests and then
@@ -106,7 +101,7 @@ netsnmp_mode_end_call_helper(netsnmp_mib_handler *handler,
                                     requests);
 
     /* then call the callback handlers */
-    for (ptr = (netsnmp_mode_handler_list*)handler->myvoid; ptr; ptr = ptr->next) {
+    for(ptr = 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,
@@ -118,10 +113,5 @@ netsnmp_mode_end_call_helper(netsnmp_mib_handler *handler,
     
     return ret2;
 }
-#else
-netsnmp_feature_unused(mode_end_call);
-#endif /* NETSNMP_FEATURE_REMOVE_MODE_END_CALL */
-
-
 /**  @} */
 
diff --git a/agent/helpers/multiplexer.c b/agent/helpers/multiplexer.c
index 2a7a664..e543f57 100644
--- a/agent/helpers/multiplexer.c
+++ b/agent/helpers/multiplexer.c
@@ -84,7 +84,6 @@ netsnmp_multiplexer_helper_handler(netsnmp_mib_handler *handler,
         }
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
     case MODE_SET_RESERVE2:
     case MODE_SET_ACTION:
@@ -101,7 +100,6 @@ netsnmp_multiplexer_helper_handler(netsnmp_mib_handler *handler,
         /*
          * XXX: process SETs specially, and possibly others 
          */
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
     default:
         snmp_log(LOG_ERR, "unsupported mode for multiplexer: %d\n",
                  reqinfo->mode);
diff --git a/agent/helpers/null.c b/agent/helpers/null.c
index 97dfc92..d110eb8 100644
--- a/agent/helpers/null.c
+++ b/agent/helpers/null.c
@@ -1,16 +1,16 @@
 #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/null.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/null.h>
+
 int
 netsnmp_register_null(oid * loc, size_t loc_len)
 {
@@ -23,16 +23,14 @@ netsnmp_register_null_context(oid * loc, size_t loc_len,
 {
     netsnmp_handler_registration *reginfo;
     reginfo = SNMP_MALLOC_TYPEDEF(netsnmp_handler_registration);
-    if (reginfo != NULL) {
-        reginfo->handlerName = strdup("");
-        reginfo->rootoid = loc;
-        reginfo->rootoid_len = loc_len;
-        reginfo->handler =
-            netsnmp_create_handler("null", netsnmp_null_handler);
-        if (contextName)
-            reginfo->contextName = strdup(contextName);
-        reginfo->modes = HANDLER_CAN_DEFAULT | HANDLER_CAN_GETBULK;
-    }
+    reginfo->handlerName = strdup("");
+    reginfo->rootoid = loc;
+    reginfo->rootoid_len = loc_len;
+    reginfo->handler =
+        netsnmp_create_handler("null", netsnmp_null_handler);
+    if (contextName)
+        reginfo->contextName = strdup(contextName);
+    reginfo->modes = HANDLER_CAN_DEFAULT;
     return netsnmp_register_handler(reginfo);
 }
 
diff --git a/agent/helpers/old_api.c b/agent/helpers/old_api.c
index 4888cbc..cc258f9 100644
--- a/agent/helpers/old_api.c
+++ b/agent/helpers/old_api.c
@@ -1,31 +1,19 @@
 #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/old_api.h>
-
 #if HAVE_STRING_H
 #include <string.h>
 #else
 #include <strings.h>
 #endif
 
-#include <net-snmp/agent/agent_callbacks.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
 
-#include <stddef.h>
+#include <net-snmp/agent/old_api.h>
+#include <net-snmp/agent/agent_callbacks.h>
 
 #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! 
  */
@@ -51,19 +39,6 @@ get_old_api_handler(void)
     return netsnmp_create_handler("old_api", netsnmp_old_api_helper);
 }
 
-struct variable *
-netsnmp_duplicate_variable(struct variable *var)
-{
-    struct variable *var2 = NULL;
-    
-    if (var) {
-        const int varsize = offsetof(struct variable, name) + var->namelen * sizeof(var->name[0]);
-        var2 = malloc(varsize);
-        if (var2)
-            memcpy(var2, var, varsize);
-    }
-    return var2;
-}
 
 /** Registers an old API set into the mib tree.  Functionally this
  * mimics the old register_mib_context() function (and in fact the new
@@ -74,7 +49,7 @@ netsnmp_register_old_api(const char *moduleName,
                          struct variable *var,
                          size_t varsize,
                          size_t numvars,
-                         const oid * mibloc,
+                         oid * mibloc,
                          size_t mibloclen,
                          int priority,
                          int range_subid,
@@ -92,31 +67,21 @@ netsnmp_register_old_api(const char *moduleName,
         struct variable *vp;
         netsnmp_handler_registration *reginfo =
             SNMP_MALLOC_TYPEDEF(netsnmp_handler_registration);
-        if (reginfo == NULL)
-            return SNMP_ERR_GENERR;
 
-	vp = netsnmp_duplicate_variable((struct variable *)
-					((char *) var + varsize * i));
+        memdup((void *) &vp,
+               (void *) (struct variable *) ((char *) var + varsize * i),
+               varsize);
 
         reginfo->handler = get_old_api_handler();
         reginfo->handlerName = strdup(moduleName);
         reginfo->rootoid_len = (mibloclen + vp->namelen);
         reginfo->rootoid =
             (oid *) malloc(reginfo->rootoid_len * sizeof(oid));
-        if (reginfo->rootoid == NULL) {
-            SNMP_FREE(vp);
-            SNMP_FREE(reginfo->handlerName);
-            SNMP_FREE(reginfo);
-            return SNMP_ERR_GENERR;
-        }
 
         memcpy(reginfo->rootoid, mibloc, mibloclen * sizeof(oid));
         memcpy(reginfo->rootoid + mibloclen, vp->name, vp->namelen
                * sizeof(oid));
         reginfo->handler->myvoid = (void *) vp;
-        reginfo->handler->data_clone
-	    = (void *(*)(void *))netsnmp_duplicate_variable;
-        reginfo->handler->data_free = free;
 
         reginfo->priority = priority;
         reginfo->range_subid = range_subid;
@@ -131,7 +96,7 @@ netsnmp_register_old_api(const char *moduleName,
          */
         if (netsnmp_register_handler(reginfo) != MIB_REGISTERED_OK) {
             /** netsnmp_handler_registration_free(reginfo); already freed */
-            /* SNMP_FREE(vp); already freed */
+            SNMP_FREE(vp);
         }
     }
     return SNMPERR_SUCCESS;
@@ -196,15 +161,14 @@ netsnmp_register_mib_table_row(const char *moduleName,
                      r->rootoid_len));
         DEBUGMSG(("netsnmp_register_mib_table_row", "(%d)\n",
                      (var_subid - vr->namelen)));
-        r->handler->myvoid = netsnmp_duplicate_variable(vr);
-        r->handler->data_clone = (void *(*)(void *))netsnmp_duplicate_variable;
-        r->handler->data_free = free;
+        r->handler->myvoid = (void *) malloc(varsize);
 
         if (r->handler->myvoid == NULL) {
             netsnmp_handler_registration_free(r);
             rc = MIB_REGISTRATION_FAILED;
             break;
         }
+        memcpy((char *) r->handler->myvoid, vr, varsize);
 
         r->contextName = (context) ? strdup(context) : NULL;
 
@@ -274,13 +238,13 @@ netsnmp_old_api_helper(netsnmp_mib_handler *handler,
     int             status;
 
     struct variable *vp;
-    netsnmp_old_api_cache *cacheptr;
-    netsnmp_agent_session *oldasp = NULL;
-    u_char         *access = NULL;
     WriteMethod    *write_method = NULL;
     size_t          len;
-    size_t          tmp_len;
+    u_char         *access = NULL;
+    netsnmp_old_api_cache *cacheptr;
+    netsnmp_agent_session *oldasp = NULL;
     oid             tmp_name[MAX_OID_LEN];
+    size_t          tmp_len;
 
     vp = (struct variable *) handler->myvoid;
 
@@ -311,9 +275,7 @@ netsnmp_old_api_helper(netsnmp_mib_handler *handler,
         switch (reqinfo->mode) {
         case MODE_GET:
         case MODE_GETNEXT:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         case MODE_SET_RESERVE1:
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
             /*
              * Actually call the old mib-module function 
              */
@@ -344,9 +306,7 @@ netsnmp_old_api_helper(netsnmp_mib_handler *handler,
                 /*
                  * result returned 
                  */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
                 if (reqinfo->mode != MODE_SET_RESERVE1)
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
                     snmp_set_var_typed_value(requests->requestvb,
                                              cvp->type, access, len);
             } else {
@@ -371,9 +331,7 @@ netsnmp_old_api_helper(netsnmp_mib_handler *handler,
             /*
              * AAA: fall through for everything that is a set (see BBB) 
              */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
             if (reqinfo->mode != MODE_SET_RESERVE1)
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
                 break;
 
             cacheptr = SNMP_MALLOC_TYPEDEF(netsnmp_old_api_cache);
@@ -385,8 +343,7 @@ netsnmp_old_api_helper(netsnmp_mib_handler *handler,
             write_method = NULL;
             netsnmp_request_add_list_data(requests,
                                           netsnmp_create_data_list
-                                          (OLD_API_NAME, cacheptr,
-                                           &free_wrapper));
+                                          (OLD_API_NAME, cacheptr, free));
             /*
              * BBB: fall through for everything that is a set (see AAA) 
              */
@@ -446,7 +403,7 @@ netsnmp_old_api_helper(netsnmp_mib_handler *handler,
  */
 static netsnmp_agent_session *current_agent_session = NULL;
 netsnmp_agent_session *
-netsnmp_get_current_agent_session(void)
+netsnmp_get_current_agent_session()
 {
     return current_agent_session;
 }
diff --git a/agent/helpers/read_only.c b/agent/helpers/read_only.c
index 0b06d4f..512f94b 100644
--- a/agent/helpers/read_only.c
+++ b/agent/helpers/read_only.c
@@ -1,5 +1,11 @@
 #include <net-snmp/net-snmp-config.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>
 
@@ -44,7 +50,6 @@ netsnmp_read_only_helper(netsnmp_mib_handler *handler,
 
     switch (reqinfo->mode) {
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
     case MODE_SET_RESERVE2:
     case MODE_SET_ACTION:
@@ -53,17 +58,19 @@ netsnmp_read_only_helper(netsnmp_mib_handler *handler,
     case MODE_SET_UNDO:
         netsnmp_request_set_error_all(requests, SNMP_ERR_NOTWRITABLE);
         return SNMP_ERR_NOTWRITABLE;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
     case MODE_GET:
     case MODE_GETNEXT:
     case MODE_GETBULK:
         /* next handler called automatically - 'AUTO_NEXT' */
         return SNMP_ERR_NOERROR;
-    }
 
+    default:
+        netsnmp_request_set_error_all(requests, SNMP_ERR_GENERR);
+        return SNMP_ERR_GENERR;
+    }
     netsnmp_request_set_error_all(requests, SNMP_ERR_GENERR);
-    return SNMP_ERR_GENERR;
+    return SNMP_ERR_GENERR;     /* should never get here */
 }
 
 /** initializes the read_only helper which then registers a read_only
diff --git a/agent/helpers/row_merge.c b/agent/helpers/row_merge.c
index 4a8e476..6b64430 100644
--- a/agent/helpers/row_merge.c
+++ b/agent/helpers/row_merge.c
@@ -1,10 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include <net-snmp/agent/row_merge.h>
 
 #if HAVE_STRING_H
 #include <string.h>
@@ -12,12 +6,11 @@
 #include <strings.h>
 #endif
 
-netsnmp_feature_provide(row_merge)
-netsnmp_feature_child_of(row_merge, row_merge_all)
-netsnmp_feature_child_of(row_merge_all, mib_helpers)
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
 
+#include <net-snmp/agent/row_merge.h>
 
-#ifndef NETSNMP_FEATURE_REMOVE_ROW_MERGE
 /** @defgroup row_merge row_merge
  *  Calls sub handlers with request for one row at a time.
  *  @ingroup utilities
@@ -45,8 +38,6 @@ netsnmp_get_row_merge_handler(int prefix_len)
 
 /** functionally the same as calling netsnmp_register_handler() but also
  * injects a row_merge handler at the same time for you. */
-netsnmp_feature_child_of(register_row_merge, row_merge_all)
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_ROW_MERGE
 int
 netsnmp_register_row_merge(netsnmp_handler_registration *reginfo)
 {
@@ -54,7 +45,6 @@ netsnmp_register_row_merge(netsnmp_handler_registration *reginfo)
 		    netsnmp_get_row_merge_handler(reginfo->rootoid_len+1));
     return netsnmp_register_handler(reginfo);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_ROW_MERGE */
 
 static void
 _rm_status_free(void *mem)
@@ -86,14 +76,14 @@ netsnmp_row_merge_status_get(netsnmp_handler_registration *reginfo,
      * see if we've already been here
      */
     rc = snprintf(buf, sizeof(buf), "row_merge:%p", reginfo);
-    if ((-1 == rc) || ((size_t)rc >= sizeof(buf))) {
+    if ((-1 == rc) || (rc >= sizeof(buf))) {
         snmp_log(LOG_ERR,"error creating key\n");
         return NULL;
     }
     
-    rm_status = (netsnmp_row_merge_status*)netsnmp_agent_get_list_data(reqinfo, buf);
+    rm_status = netsnmp_agent_get_list_data(reqinfo, buf);
     if ((NULL == rm_status) && create_missing) {
-        netsnmp_data_list *data_list;
+        void *data_list;
         
         rm_status = SNMP_MALLOC_TYPEDEF(netsnmp_row_merge_status);
         if (NULL == rm_status) {
@@ -372,10 +362,5 @@ netsnmp_init_row_merge(void)
     netsnmp_register_handler_by_name("row_merge",
                                      netsnmp_get_row_merge_handler(-1));
 }
-#else /* NETSNMP_FEATURE_REMOVE_ROW_MERGE */
-netsnmp_feature_unused(row_merge);
-#endif /* NETSNMP_FEATURE_REMOVE_ROW_MERGE */
-
-
 /**  @} */
 
diff --git a/agent/helpers/scalar.c b/agent/helpers/scalar.c
index 7a4c9e0..42c66b4 100644
--- a/agent/helpers/scalar.c
+++ b/agent/helpers/scalar.c
@@ -10,11 +10,6 @@
  */
 #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/scalar.h>
-
 #include <stdlib.h>
 #if HAVE_STRING_H
 #include <string.h>
@@ -22,6 +17,10 @@
 #include <strings.h>
 #endif
 
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+
+#include <net-snmp/agent/scalar.h>
 #include <net-snmp/agent/instance.h>
 #include <net-snmp/agent/serialize.h>
 #include <net-snmp/agent/read_only.h>
@@ -78,8 +77,8 @@ netsnmp_register_scalar(netsnmp_handler_registration *reginfo)
      * Extend the registered OID with space for the instance subid
      * (but don't extend the length just yet!)
      */
-    reginfo->rootoid = (oid*)realloc(reginfo->rootoid,
-                                    (reginfo->rootoid_len+1) * sizeof(oid) );
+    reginfo->rootoid = 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 +112,8 @@ netsnmp_register_read_only_scalar(netsnmp_handler_registration *reginfo)
      * Extend the registered OID with space for the instance subid
      * (but don't extend the length just yet!)
      */
-    reginfo->rootoid = (oid*)realloc(reginfo->rootoid,
-                                    (reginfo->rootoid_len+1) * sizeof(oid) );
+    reginfo->rootoid = realloc(reginfo->rootoid,
+                              (reginfo->rootoid_len+1) * sizeof(oid) );
     reginfo->rootoid[ reginfo->rootoid_len ] = 0;
 
     netsnmp_inject_handler(reginfo, netsnmp_get_instance_handler());
@@ -162,7 +161,6 @@ netsnmp_scalar_helper_handler(netsnmp_mib_handler *handler,
         }
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
     case MODE_SET_RESERVE2:
     case MODE_SET_ACTION:
@@ -181,7 +179,6 @@ netsnmp_scalar_helper_handler(netsnmp_mib_handler *handler,
             return ret;
         }
         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
     case MODE_GETNEXT:
         reginfo->rootoid[reginfo->rootoid_len++] = 0;
diff --git a/agent/helpers/scalar_group.c b/agent/helpers/scalar_group.c
index 6b7f098..a5d119e 100644
--- a/agent/helpers/scalar_group.c
+++ b/agent/helpers/scalar_group.c
@@ -1,10 +1,5 @@
 #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/scalar_group.h>
-
 #include <stdlib.h>
 #if HAVE_STRING_H
 #include <string.h>
@@ -12,19 +7,13 @@
 #include <strings.h>
 #endif
 
-#include <net-snmp/agent/instance.h>
-#include <net-snmp/agent/serialize.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
 
-static netsnmp_scalar_group*
-clone_scalar_group(netsnmp_scalar_group* src)
-{
-  netsnmp_scalar_group *t = SNMP_MALLOC_TYPEDEF(netsnmp_scalar_group);
-  if(t != NULL) {
-    t->lbound = src->lbound;
-    t->ubound = src->ubound;
-  }
-  return t;
-}
+#include <net-snmp/agent/scalar_group.h>
+#include <net-snmp/agent/scalar.h>
+#include <net-snmp/agent/serialize.h>
+#include <net-snmp/agent/read_only.h>
 
 /** @defgroup scalar_group_group scalar_group
  *  Process groups of scalars.
@@ -49,8 +38,6 @@ netsnmp_get_scalar_group_handler(oid first, oid last)
 	    sgroup->lbound = first;
 	    sgroup->ubound = last;
             ret->myvoid = (void *)sgroup;
-            ret->data_free = free;
-            ret->data_clone = (void *(*)(void *))clone_scalar_group;
 	}
     }
     return ret;
@@ -61,6 +48,7 @@ netsnmp_register_scalar_group(netsnmp_handler_registration *reginfo,
                               oid first, oid last)
 {
     netsnmp_inject_handler(reginfo, netsnmp_get_instance_handler());
+    netsnmp_inject_handler(reginfo, netsnmp_get_scalar_handler());
     netsnmp_inject_handler(reginfo, netsnmp_get_scalar_group_handler(first, last));
     return netsnmp_register_serialize(reginfo);
 }
@@ -109,14 +97,12 @@ netsnmp_scalar_group_helper_handler(netsnmp_mib_handler *handler,
         ret = SNMP_NOSUCHOBJECT;
         /* Fallthrough */
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
     case MODE_SET_RESERVE2:
     case MODE_SET_ACTION:
     case MODE_SET_COMMIT:
     case MODE_SET_UNDO:
     case MODE_SET_FREE:
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
         if (cmp != 0 ||
             requests->requestvb->name_length <= reginfo->rootoid_len) {
 	    /*
@@ -142,13 +128,12 @@ netsnmp_scalar_group_helper_handler(netsnmp_mib_handler *handler,
                 netsnmp_set_request_error(reqinfo, requests, ret);
                 return SNMP_ERR_NOERROR;
 	    }
-            root_tmp[reginfo->rootoid_len] = subid;
-            reginfo->rootoid_len += 2;
+            root_tmp[reginfo->rootoid_len++] = subid;
             reginfo->rootoid = root_tmp;
             ret = netsnmp_call_next_handler(handler, reginfo, reqinfo,
                                             requests);
             reginfo->rootoid = root_save;
-            reginfo->rootoid_len -= 2;
+            reginfo->rootoid_len--;
             return ret;
         }
         break;
@@ -177,8 +162,7 @@ netsnmp_scalar_group_helper_handler(netsnmp_mib_handler *handler,
 	else if (subid > sgroup->ubound)
             return SNMP_ERR_NOERROR;
         
-        root_tmp[reginfo->rootoid_len] = subid;
-        reginfo->rootoid_len += 2;
+        root_tmp[reginfo->rootoid_len++] = subid;
         reginfo->rootoid = root_tmp;
         ret = netsnmp_call_next_handler(handler, reginfo, reqinfo,
                                             requests);
@@ -191,12 +175,12 @@ netsnmp_scalar_group_helper_handler(netsnmp_mib_handler *handler,
              requests->requestvb->type == SNMP_NOSUCHOBJECT ||
              requests->requestvb->type == SNMP_NOSUCHINSTANCE)) {
             snmp_set_var_objid(requests->requestvb,
-                               reginfo->rootoid, reginfo->rootoid_len - 1);
-            requests->requestvb->name[reginfo->rootoid_len - 2] = ++subid;
+                               reginfo->rootoid, reginfo->rootoid_len);
+            requests->requestvb->name[reginfo->rootoid_len-1] = ++subid;
             requests->requestvb->type = ASN_PRIV_RETRY;
         }
         reginfo->rootoid = root_save;
-        reginfo->rootoid_len -= 2;
+        reginfo->rootoid_len--;
         return ret;
     }
     /*
diff --git a/agent/helpers/serialize.c b/agent/helpers/serialize.c
index eec66b4..892f9b3 100644
--- a/agent/helpers/serialize.c
+++ b/agent/helpers/serialize.c
@@ -1,5 +1,11 @@
 #include <net-snmp/net-snmp-config.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>
 
diff --git a/agent/helpers/snmp_get_statistic.c b/agent/helpers/snmp_get_statistic.c
deleted file mode 100644
index efac2ac..0000000
--- a/agent/helpers/snmp_get_statistic.c
+++ /dev/null
@@ -1,61 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include <net-snmp/agent/snmp_get_statistic.h>
-
-netsnmp_feature_provide(helper_statistics)
-netsnmp_feature_child_of(helper_statistics, mib_helpers)
-
-#ifdef NETSNMP_FEATURE_REQUIRE_HELPER_STATISTICS
-/* if we're not needed, then neither is this */
-netsnmp_feature_require(statistics)
-#endif
-
-#ifndef NETSNMP_FEATURE_REMOVE_HELPER_STATISTICS
-static int
-netsnmp_get_statistic_helper_handler(netsnmp_mib_handler *handler,
-                                     netsnmp_handler_registration *reginfo,
-                                     netsnmp_agent_request_info *reqinfo,
-                                     netsnmp_request_info *requests)
-{
-    if (reqinfo->mode == MODE_GET) {
-        const oid idx = requests->requestvb->name[reginfo->rootoid_len - 2] +
-            (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;
-    }
-    return SNMP_ERR_GENERR;
-}
-
-static netsnmp_mib_handler *
-netsnmp_get_statistic_handler(int offset)
-{
-    netsnmp_mib_handler *ret =
-        netsnmp_create_handler("get_statistic",
-                               netsnmp_get_statistic_helper_handler);
-    if (ret) {
-        ret->flags |= MIB_HANDLER_AUTO_NEXT;
-        ret->myvoid = (void*)(uintptr_t)offset;
-    }
-    return ret;
-}
-
-int
-netsnmp_register_statistic_handler(netsnmp_handler_registration *reginfo,
-                                   oid start, int begin, int end)
-{
-    netsnmp_inject_handler(reginfo,
-                           netsnmp_get_statistic_handler(begin - start));
-    return netsnmp_register_scalar_group(reginfo, start, start + (end - begin));
-}
-#else /* !NETSNMP_FEATURE_REMOVE_HELPER_GET_STATISTICS */
-netsnmp_feature_unused(helper_statistics);
-#endif /* !NETSNMP_FEATURE_REMOVE_HELPER_GET_STATISTICS */
diff --git a/agent/helpers/stash_cache.c b/agent/helpers/stash_cache.c
index 5da1796..e2b3450 100644
--- a/agent/helpers/stash_cache.c
+++ b/agent/helpers/stash_cache.c
@@ -1,28 +1,23 @@
 #include <net-snmp/net-snmp-config.h>
 
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-netsnmp_feature_provide(stash_cache)
-netsnmp_feature_child_of(stash_cache, mib_helpers)
-#ifdef NETSNMP_FEATURE_REQUIRE_STASH_CACHE
-netsnmp_feature_require(oid_stash)
-netsnmp_feature_require(oid_stash_iterate)
-netsnmp_feature_require(oid_stash_get_data)
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
 #endif
 
-#ifndef NETSNMP_FEATURE_REMOVE_STASH_CACHE
-#include <net-snmp/agent/stash_to_next.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
 
 #include <net-snmp/agent/stash_cache.h>
+#include <net-snmp/agent/stash_to_next.h>
 
 extern NetsnmpCacheLoad _netsnmp_stash_cache_load;
 extern NetsnmpCacheFree _netsnmp_stash_cache_free;
  
 /** @defgroup stash_cache stash_cache
  *  Automatically caches data for certain handlers.
- *  This handler caches data in an optimized way which may alleviate
+ *  This handler caches data in an optimized way which may aleviate
  *  the need for the lower level handlers to perform as much
  *  optimization.  Specifically, somewhere in the lower level handlers
  *  must be a handler that supports the MODE_GET_STASH operation.
@@ -37,8 +32,7 @@ netsnmp_get_new_stash_cache(void)
     netsnmp_stash_cache_info *cinfo;
 
     cinfo = SNMP_MALLOC_TYPEDEF(netsnmp_stash_cache_info);
-    if (cinfo != NULL)
-        cinfo->cache_length = 30;
+    cinfo->cache_length = 30;
     return cinfo;
 }
 
@@ -72,7 +66,7 @@ netsnmp_get_timed_bare_stash_cache_handler(int timeout, oid *rootoid, size_t roo
     }
 
     handler->myvoid = cinfo;
-    netsnmp_cache_handler_owns_cache(handler);
+    handler->data_free = free;
 
     return handler;
 }
@@ -118,7 +112,7 @@ netsnmp_get_timed_stash_cache_handler(int timeout, oid *rootoid, size_t rootoid_
 netsnmp_oid_stash_node  **
 netsnmp_extract_stash_cache(netsnmp_agent_request_info *reqinfo)
 {
-    return (netsnmp_oid_stash_node**)netsnmp_agent_get_list_data(reqinfo, STASH_CACHE_NAME);
+    return netsnmp_agent_get_list_data(reqinfo, STASH_CACHE_NAME);
 }
 
 
@@ -149,7 +143,7 @@ netsnmp_stash_cache_helper(netsnmp_mib_handler *handler,
     case MODE_GET:
         DEBUGMSGTL(("helper:stash_cache", "Processing GET request\n"));
         for(request = requests; request; request = request->next) {
-            cdata = (netsnmp_variable_list*)
+            cdata =
                 netsnmp_oid_stash_get_data(cinfo->cache,
                                            requests->requestvb->name,
                                            requests->requestvb->name_length);
@@ -161,6 +155,7 @@ netsnmp_stash_cache_helper(netsnmp_mib_handler *handler,
                                          cdata->val.string, cdata->val_len);
             }
         }
+        return SNMP_ERR_NOERROR;
         break;
 
     case MODE_GETNEXT:
@@ -171,7 +166,7 @@ netsnmp_stash_cache_helper(netsnmp_mib_handler *handler,
                                                requests->requestvb->name,
                                                requests->requestvb->name_length);
             if (cnode && cnode->thedata) {
-                cdata =  (netsnmp_variable_list*)cnode->thedata;
+                cdata = 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));
@@ -183,6 +178,7 @@ netsnmp_stash_cache_helper(netsnmp_mib_handler *handler,
                 }
             }
         }
+        return SNMP_ERR_NOERROR;
         break;
 
     default:
@@ -190,8 +186,7 @@ netsnmp_stash_cache_helper(netsnmp_mib_handler *handler,
         return netsnmp_call_next_handler(handler, reginfo, reqinfo,
                                          requests);
     }
-
-    return SNMP_ERR_NOERROR;
+    return SNMP_ERR_GENERR;     /* should never get here */
 }
 
 /** updates a given cache depending on whether it needs to or not.
@@ -247,6 +242,3 @@ netsnmp_init_stash_cache_helper(void)
 }
 /**  @} */
 
-#else /* NETSNMP_FEATURE_REMOVE_STASH_CACHE */
-netsnmp_feature_unused(stash_cache);
-#endif /* NETSNMP_FEATURE_REMOVE_STASH_CACHE */
diff --git a/agent/helpers/stash_to_next.c b/agent/helpers/stash_to_next.c
index d7baffd..aabaaa8 100644
--- a/agent/helpers/stash_to_next.c
+++ b/agent/helpers/stash_to_next.c
@@ -1,21 +1,16 @@
 #include <net-snmp/net-snmp-config.h>
 
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-netsnmp_feature_provide(stash_to_next)
-netsnmp_feature_child_of(stash_to_next, mib_helpers)
-
-#ifdef NETSNMP_FEATURE_REQUIRE_STASH_TO_NEXT
-netsnmp_feature_require(oid_stash)
-netsnmp_feature_require(oid_stash_add_data)
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
 #endif
 
-#ifndef NETSNMP_FEATURE_REMOVE_STASH_TO_NEXT
-#include <net-snmp/agent/stash_to_next.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
 
 #include <net-snmp/agent/stash_cache.h>
+#include <net-snmp/agent/stash_to_next.h>
 
 /** @defgroup stash_to_next stash_to_next
  *  Convert GET_STASH requests into GETNEXT requests for the handler.
@@ -124,6 +119,3 @@ netsnmp_stash_to_next_helper(netsnmp_mib_handler *handler,
 }
 /**  @} */
 
-#else  /* ! NETSNMP_FEATURE_REMOVE_STASH_TO_NEXT */
-netsnmp_feature_unused(stash_to_next);
-#endif /* ! NETSNMP_FEATURE_REMOVE_STASH_TO_NEXT */
diff --git a/agent/helpers/table.c b/agent/helpers/table.c
index 882e84c..ef2c47b 100644
--- a/agent/helpers/table.c
+++ b/agent/helpers/table.c
@@ -12,39 +12,21 @@
  * Use is subject to license terms specified in the COPYING file
  * distributed with the Net-SNMP package.
  */
-/*
- * 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.
- */
 
 #include <net-snmp/net-snmp-config.h>
 
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include <net-snmp/agent/table.h>
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(oid_stash)
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
 #if HAVE_STRING_H
 #include <string.h>
 #else
 #include <strings.h>
 #endif
 
-#include <net-snmp/library/snmp_assert.h>
 
-netsnmp_feature_child_of(table_all, mib_helpers)
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
 
-netsnmp_feature_child_of(table_build_result, table_all)
-netsnmp_feature_child_of(table_get_or_create_row_stash, table_all)
-netsnmp_feature_child_of(registration_owns_table_info, table_all)
-netsnmp_feature_child_of(table_sparse, table_all)
+#include <net-snmp/agent/table.h>
+#include <net-snmp/library/snmp_assert.h>
 
 static void     table_helper_cleanup(netsnmp_agent_request_info *reqinfo,
                                      netsnmp_request_info *request,
@@ -117,31 +99,6 @@ netsnmp_get_table_handler(netsnmp_table_registration_info *tabreq)
     return ret;
 }
 
-/** Configures a handler such that table registration information is freed by
- *  netsnmp_handler_free(). Should only be called if handler->myvoid points to
- *  an object of type netsnmp_table_registration_info.
- */
-void netsnmp_handler_owns_table_info(netsnmp_mib_handler *handler)
-{
-    netsnmp_assert(handler);
-    netsnmp_assert(handler->myvoid);
-    handler->data_clone
-	= (void *(*)(void *)) netsnmp_table_registration_info_clone;
-    handler->data_free
-	= (void (*)(void *)) netsnmp_table_registration_info_free;
-}
-
-/** Configures a handler such that table registration information is freed by
- *  netsnmp_handler_free(). Should only be called if reg->handler->myvoid
- *  points to an object of type netsnmp_table_registration_info.
- */
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTRATION_OWNS_TABLE_INFO
-void netsnmp_registration_owns_table_info(netsnmp_handler_registration *reg)
-{
-    if (reg)
-        netsnmp_handler_owns_table_info(reg->handler);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTRATION_OWNS_TABLE_INFO */
 
 /** creates a table handler given the netsnmp_table_registration_info object,
  *  inserts it into the request chain and then calls
@@ -151,21 +108,10 @@ int
 netsnmp_register_table(netsnmp_handler_registration *reginfo,
                        netsnmp_table_registration_info *tabreq)
 {
-    int rc = netsnmp_inject_handler(reginfo, netsnmp_get_table_handler(tabreq));
-    if (SNMPERR_SUCCESS != rc)
-        return rc;
-
+    netsnmp_inject_handler(reginfo, netsnmp_get_table_handler(tabreq));
     return netsnmp_register_handler(reginfo);
 }
 
-int
-netsnmp_unregister_table(netsnmp_handler_registration *reginfo)
-{
-    /* Locate "this" reginfo */
-    /* SNMP_FREE(reginfo->myvoid); */
-    return netsnmp_unregister_handler(reginfo);
-}
-
 /** 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
@@ -204,8 +150,8 @@ table_helper_handler(netsnmp_mib_handler *handler,
     int             oid_index_pos;
     unsigned int    oid_column_pos;
     unsigned int    tmp_idx;
-    ssize_t 	    tmp_len;
-    int             incomplete, out_of_range;
+    size_t	    tmp_len;
+    int             incomplete, out_of_range, cleaned_up = 0;
     int             status = SNMP_ERR_NOERROR, need_processing = 0;
     oid            *tmp_name;
     netsnmp_table_request_info *tbl_req_info;
@@ -231,9 +177,8 @@ table_helper_handler(netsnmp_mib_handler *handler,
 
     DEBUGIF("helper:table:req") {
         DEBUGMSGTL(("helper:table:req",
-                    "Got %s (%d) mode request for handler %s: base oid:",
-                    se_find_label_in_slist("agent_mode", reqinfo->mode),
-                    reqinfo->mode, handler->handler_name));
+                    "Got request for handler %s: base oid:",
+                    handler->handler_name));
         DEBUGMSGOID(("helper:table:req", reginfo->rootoid,
                      reginfo->rootoid_len));
         DEBUGMSG(("helper:table:req", "\n"));
@@ -248,20 +193,15 @@ table_helper_handler(netsnmp_mib_handler *handler,
      * in the netsnmp_agent_request_info. 
      */
     if (netsnmp_agent_get_list_data(reqinfo, handler->next->handler_name)) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         if (MODE_IS_SET(reqinfo->mode)) {
             return netsnmp_call_next_handler(handler, reginfo, reqinfo,
                                              requests);
         } else {
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 /** XXX-rks: memory leak. add cleanup handler? */
             netsnmp_free_agent_data_sets(reqinfo);
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
     }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     if ( MODE_IS_SET(reqinfo->mode) &&
          (reqinfo->mode != MODE_SET_RESERVE1)) {
         /*
@@ -271,16 +211,15 @@ table_helper_handler(netsnmp_mib_handler *handler,
          * a valid table info pointer).
          */
         if(NULL == netsnmp_extract_table_info(requests)) {
-            DEBUGMSGTL(("helper:table","no table info for set - skipping\n"));
+            DEBUGMSGTL(("table:helper","no table info for set - skipping\n"));
         }
         else
             need_processing = 1;
     }
     else {
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
         /*
-         * for GETS, only continue if we have at least one valid request.
-         * for RESERVE1, only continue if we have indexes for all requests.
+         * for RESERVE1 and GETS, only continue if we have at least
+         * one valid request.
          */
            
     /*
@@ -313,7 +252,6 @@ table_helper_handler(netsnmp_mib_handler *handler,
             continue;
         }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         if (reqinfo->mode == MODE_SET_RESERVE1) {
             DEBUGIF("helper:table:set") {
                 u_char         *buf = NULL;
@@ -322,7 +260,7 @@ table_helper_handler(netsnmp_mib_handler *handler,
                 DEBUGMSGOID(("helper:table:set", var->name, var->name_length));
                 out_len = 0;
                 if (sprint_realloc_by_type(&buf, &buf_len, &out_len, 1,
-                                           var, NULL, NULL, NULL)) {
+                                           var, 0, 0, 0)) {
                     DEBUGMSG(("helper:table:set"," type=%d(%02x), value=%s\n",
                               var->type, var->type, buf));
                 } else {
@@ -341,7 +279,6 @@ table_helper_handler(netsnmp_mib_handler *handler,
                 }
             }
         }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
         /*
          * check to make sure its in table range 
@@ -397,13 +334,10 @@ table_helper_handler(netsnmp_mib_handler *handler,
             /*
              *  Reject requests of the form 'myTable.N'   (N != 1)
              */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
             if (reqinfo->mode == MODE_SET_RESERVE1)
                 table_helper_cleanup(reqinfo, request,
                                      SNMP_ERR_NOTWRITABLE);
-            else
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-            if (reqinfo->mode == MODE_GET)
+            else if (reqinfo->mode == MODE_GET)
                 table_helper_cleanup(reqinfo, request,
                                      SNMP_NOSUCHOBJECT);
             continue;
@@ -418,11 +352,6 @@ table_helper_handler(netsnmp_mib_handler *handler,
         tbl_req_info = netsnmp_extract_table_info(request);
         if (NULL == tbl_req_info) {
             tbl_req_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_request_info);
-            if (tbl_req_info == NULL) {
-                table_helper_cleanup(reqinfo, request,
-                                     SNMP_ERR_GENERR);
-                continue;
-            }
             tbl_req_info->reg_info = tbl_info;
             tbl_req_info->indexes = snmp_clone_varbind(tbl_info->indexes);
             tbl_req_info->number_indexes = 0;       /* none yet */
@@ -442,8 +371,7 @@ table_helper_handler(netsnmp_mib_handler *handler,
             /*
              * oid is long enough to contain COLUMN info
              */
-            DEBUGMSGTL(("helper:table:col",
-                        "  have at least a column (%" NETSNMP_PRIo "d)\n",
+            DEBUGMSGTL(("helper:table:col", "  have at least a column (%d)\n",
                         var->name[oid_column_pos]));
             if (var->name[oid_column_pos] < tbl_info->min_column) {
                 DEBUGMSGTL(("helper:table:col",
@@ -475,12 +403,10 @@ table_helper_handler(netsnmp_mib_handler *handler,
                 /*
                  *  Reject requests of the form 'myEntry.N'   (invalid N)
                  */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
                 if (reqinfo->mode == MODE_SET_RESERVE1)
                     table_helper_cleanup(reqinfo, request,
                                          SNMP_ERR_NOTWRITABLE);
                 else if (reqinfo->mode == MODE_GET)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
                     table_helper_cleanup(reqinfo, request,
                                          SNMP_NOSUCHOBJECT);
                 continue;
@@ -501,9 +427,8 @@ table_helper_handler(netsnmp_mib_handler *handler,
                     continue;
                 if (tbl_req_info->colnum != var->name[oid_column_pos]) {
                     DEBUGMSGTL(("helper:table:col",
-                                "    which doesn't match req "
-                                "%" NETSNMP_PRIo "d - truncating index info\n",
-                                var->name[oid_column_pos]));
+                                "    which doesn't match req %d - truncating index info\n",
+                                   var->name[oid_column_pos]));
                     /*
                      * different column! truncate useless index info 
                      */
@@ -522,8 +447,8 @@ table_helper_handler(netsnmp_mib_handler *handler,
                  */
                 tbl_req_info->index_oid_len =
                     var->name_length - oid_index_pos;
-                DEBUGMSGTL(("helper:table", "    have %lu bytes of index\n",
-                            (unsigned long)tbl_req_info->index_oid_len));
+                DEBUGMSGTL(("helper:table", "    have %d bytes of index\n",
+                            tbl_req_info->index_oid_len));
                 netsnmp_assert(tbl_req_info->index_oid_len < MAX_OID_LEN);
                 memcpy(tbl_req_info->index_oid, &var->name[oid_index_pos],
                        tbl_req_info->index_oid_len * sizeof(oid));
@@ -548,10 +473,8 @@ table_helper_handler(netsnmp_mib_handler *handler,
              */
             if (reqinfo->mode == MODE_GET ) {
                 table_helper_cleanup(reqinfo, request, SNMP_NOSUCHOBJECT);
-#ifndef NETSNMP_NO_WRITE_SUPPORT
             } else if (reqinfo->mode == MODE_SET_RESERVE1 ) {
                 table_helper_cleanup(reqinfo, request, SNMP_ERR_NOTWRITABLE);
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
             }
             continue;
         }
@@ -577,8 +500,6 @@ table_helper_handler(netsnmp_mib_handler *handler,
         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 
@@ -593,27 +514,29 @@ table_helper_handler(netsnmp_mib_handler *handler,
                  *
                  * 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 = NULL;
+                tmp_name = (oid *) & tmp_len;
                 break;
             }
             /*
              * try and parse current index 
              */
-            netsnmp_assert(tmp_len >= 0);
-            parsed_oid_len = tmp_len;
-            if (parse_one_oid_index(&tmp_name, &parsed_oid_len,
+            if (parse_one_oid_index(&tmp_name, &tmp_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 */
@@ -626,11 +549,12 @@ table_helper_handler(netsnmp_mib_handler *handler,
         }                       /** 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,
@@ -640,7 +564,7 @@ table_helper_handler(netsnmp_mib_handler *handler,
                      count++, vb = vb->next_variable) {
                     out_len = 0;
                     if (sprint_realloc_by_type(&buf, &buf_len, &out_len, 1,
-                                               vb, NULL, NULL, NULL)) {
+                                               vb, 0, 0, 0)) {
                         DEBUGMSG(("helper:table:results",
                                   "   index: type=%d(%02x), value=%s",
                                   vb->type, vb->type, buf));
@@ -660,34 +584,19 @@ table_helper_handler(netsnmp_mib_handler *handler,
                     free(buf);
                 }
                 DEBUGMSG(("helper:table:results", "\n"));
+            }
         }
 
 
         /*
-         * do we have sufficient index info to continue?
+         * do we have sufficent index info to continue?
          */
 
         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"));
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-            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;
-            }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
             table_helper_cleanup(reqinfo, request, SNMP_NOSUCHINSTANCE);
             continue;
         }
@@ -696,9 +605,7 @@ table_helper_handler(netsnmp_mib_handler *handler,
         ++need_processing;
 
     }                           /* for each request */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
     /*
      * bail if there is nothing for our child handlers
@@ -811,7 +718,6 @@ sparse_table_helper_handler(netsnmp_mib_handler *handler,
 
 /** create sparse table handler
  */
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_SPARSE
 netsnmp_mib_handler *
 netsnmp_sparse_table_handler_get(void)
 {
@@ -827,41 +733,14 @@ int
 netsnmp_sparse_table_register(netsnmp_handler_registration *reginfo,
                        netsnmp_table_registration_info *tabreq)
 {
-    netsnmp_mib_handler *handler1, *handler2;
-    int rc;
-
-    handler1 = netsnmp_create_handler(SPARSE_TABLE_HANDLER_NAME,
-                                     sparse_table_helper_handler);
-    if (NULL == handler1)
-        return SNMP_ERR_GENERR;
-
-    handler2 = netsnmp_get_table_handler(tabreq);
-    if (NULL == handler2 ) {
-        netsnmp_handler_free(handler1);
-        return SNMP_ERR_GENERR;
-    }
-
-    rc = netsnmp_inject_handler(reginfo, handler1);
-    if (SNMPERR_SUCCESS != rc) {
-        netsnmp_handler_free(handler1);
-        netsnmp_handler_free(handler2);
-        return rc;
-    }
-
-    rc = netsnmp_inject_handler(reginfo, handler2);
-    if (SNMPERR_SUCCESS != rc) {
-        /** handler1 is in reginfo... remove and free?? */
-        netsnmp_handler_free(handler2);
-        return rc;
-    }
-
-    /** both handlers now in reginfo, so nothing to do on error */
+    netsnmp_inject_handler(reginfo,
+        netsnmp_create_handler(SPARSE_TABLE_HANDLER_NAME,
+                               sparse_table_helper_handler));
+    netsnmp_inject_handler(reginfo, netsnmp_get_table_handler(tabreq));
     return netsnmp_register_handler(reginfo);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_SPARSE */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_BUILD_RESULT
 /** 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
@@ -895,6 +774,7 @@ netsnmp_table_build_result(netsnmp_handler_registration *reginfo,
     return SNMPERR_SUCCESS;
 }
 
+
 /** 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
@@ -931,7 +811,6 @@ netsnmp_table_build_oid(netsnmp_handler_registration *reginfo,
 
     return SNMPERR_SUCCESS;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_BUILD_RESULT */
 
 /** given a registration info object, a request object and the table
  *  info object it builds the request->requestvb->name oid from the
@@ -1050,42 +929,6 @@ netsnmp_check_getnext_reply(netsnmp_request_info *request,
     return 0;
 }
 
-netsnmp_table_registration_info *
-netsnmp_table_registration_info_clone(netsnmp_table_registration_info *tri)
-{
-    netsnmp_table_registration_info *copy;
-    copy = malloc(sizeof(*copy));
-    if (copy) {
-        *copy = *tri;
-        copy->indexes = snmp_clone_varbind(tri->indexes);
-        if (!copy->indexes) {
-            free(copy);
-            copy = NULL;
-        }
-    }
-    return copy;
-}
-
-void
-netsnmp_table_registration_info_free(netsnmp_table_registration_info *tri)
-{
-    if (NULL == tri)
-        return;
-
-    if (NULL != tri->indexes)
-        snmp_free_varbind(tri->indexes);
-
-#if 0
-    /*
-     * sigh... example use of valid_columns points to static memory,
-     * so freeing it would be bad... we'll just have to live with any
-     * leaks, for now...
-     */
-#endif
-
-    free(tri);
-}
-
 /** @} */
 
 /*
@@ -1211,20 +1054,33 @@ netsnmp_closest_column(unsigned int current,
  *
  */
 void
+#if HAVE_STDARG_H
 netsnmp_table_helper_add_indexes(netsnmp_table_registration_info *tinfo,
                                  ...)
+#else
+netsnmp_table_helper_add_indexes(va_alist)
+     va_dcl
+#endif
 {
     va_list         debugargs;
     int             type;
 
+#if HAVE_STDARG_H
     va_start(debugargs, tinfo);
+#else
+    netsnmp_table_registration_info *tinfo;
+
+    va_start(debugargs);
+    tinfo = va_arg(debugargs, netsnmp_table_registration_info *);
+#endif
+
     while ((type = va_arg(debugargs, int)) != 0) {
         netsnmp_table_helper_add_index(tinfo, type);
     }
+
     va_end(debugargs);
 }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 static void
 _row_stash_data_list_free(void *ptr) {
     netsnmp_oid_stash_node **tmp = (netsnmp_oid_stash_node **)ptr;
@@ -1232,7 +1088,6 @@ _row_stash_data_list_free(void *ptr) {
     free(ptr);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_GET_OR_CREATE_ROW_STASH
 /** returns a row-wide place to store data in.
     @todo This function will likely change to add free pointer functions. */
 netsnmp_oid_stash_node **
@@ -1241,7 +1096,7 @@ netsnmp_table_get_or_create_row_stash(netsnmp_agent_request_info *reqinfo,
 {
     netsnmp_oid_stash_node **stashp = NULL;
     stashp = (netsnmp_oid_stash_node **)
-        netsnmp_agent_get_list_data(reqinfo, (const char *) storage_name);
+        netsnmp_agent_get_list_data(reqinfo, storage_name);
 
     if (!stashp) {
         /*
@@ -1253,14 +1108,12 @@ netsnmp_table_get_or_create_row_stash(netsnmp_agent_request_info *reqinfo,
             return NULL;        /* ack. out of mem */
 
         netsnmp_agent_add_list_data(reqinfo,
-                                    netsnmp_create_data_list((const char *) storage_name,
+                                    netsnmp_create_data_list(storage_name,
                                                              stashp,
                                                              _row_stash_data_list_free));
     }
     return stashp;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_GET_OR_CREATE_ROW_STASH */
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 /*
  * advance the table info colnum to the next column, or 0 if there are no more
diff --git a/agent/helpers/table_array.c b/agent/helpers/table_array.c
index 7c98aae..589bc3b 100644
--- a/agent/helpers/table_array.c
+++ b/agent/helpers/table_array.c
@@ -1,15 +1,9 @@
 /*
  * table_array.c
- * $Id$
+ * $Id: table_array.c 14356 2006-03-08 22:48:18Z rstory $
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include <net-snmp/agent/table_array.h>
 
 #if HAVE_STRING_H
 #include <string.h>
@@ -17,19 +11,14 @@
 #include <strings.h>
 #endif
 
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+
 #include <net-snmp/agent/table.h>
+#include <net-snmp/agent/table_array.h>
 #include <net-snmp/library/container.h>
 #include <net-snmp/library/snmp_assert.h>
 
-netsnmp_feature_child_of(table_array_all, mib_helpers)
-
-netsnmp_feature_child_of(table_array_register,table_array_all)
-netsnmp_feature_child_of(table_array_find_table_array_handler,table_array_all)
-netsnmp_feature_child_of(table_array_extract_array_context,table_array_all)
-netsnmp_feature_child_of(table_array_check_row_status,table_array_all)
-
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER
-
 /*
  * snmp.h:#define SNMP_MSG_INTERNAL_SET_BEGIN        -1 
  * snmp.h:#define SNMP_MSG_INTERNAL_SET_RESERVE1     0 
@@ -204,7 +193,6 @@ netsnmp_table_container_register(netsnmp_handler_registration *reginfo,
     return netsnmp_register_table(reginfo, tabreg);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_ARRAY_REGISTER
 int
 netsnmp_table_array_register(netsnmp_handler_registration *reginfo,
                              netsnmp_table_registration_info *tabreg,
@@ -218,10 +206,8 @@ netsnmp_table_array_register(netsnmp_handler_registration *reginfo,
     return netsnmp_table_container_register(reginfo, tabreg, cb,
                                             container, group_rows);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_ARRAY_REGISTER */
 
 /** find the handler for the table_array helper. */
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_ARRAY_FIND_TABLE_ARRAY_HANDLER
 netsnmp_mib_handler *
 netsnmp_find_table_array_handler(netsnmp_handler_registration *reginfo)
 {
@@ -237,19 +223,15 @@ netsnmp_find_table_array_handler(netsnmp_handler_registration *reginfo)
 
     return mh;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_ARRAY_FIND_TABLE_ARRAY_HANDLER */
 
 /** find the context data used by the table_array helper */
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_ARRAY_EXTRACT_ARRAY_CONTEXT
 netsnmp_container      *
 netsnmp_extract_array_context(netsnmp_request_info *request)
 {
-    return (netsnmp_container*)netsnmp_request_get_list_data(request, TABLE_ARRAY_NAME);
+    return netsnmp_request_get_list_data(request, TABLE_ARRAY_NAME);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_ARRAY_EXTRACT_ARRAY_CONTEXT */
 
 /** this function is called to validate RowStatus transitions. */
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_ARRAY_CHECK_ROW_STATUS
 int
 netsnmp_table_array_check_row_status(netsnmp_table_array_callbacks *cb,
                                      netsnmp_request_group *ag,
@@ -328,7 +310,6 @@ netsnmp_table_array_check_row_status(netsnmp_table_array_callbacks *cb,
 
     return SNMP_ERR_NOERROR;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_ARRAY_CHECK_ROW_STATUS */
 
 /** @} */
 
@@ -363,13 +344,37 @@ netsnmp_table_array_check_row_status(netsnmp_table_array_callbacks *cb,
 /*
  * context info for SET requests
  */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 typedef struct set_context_s {
     netsnmp_agent_request_info *agtreq_info;
     table_container_data *tad;
     int             status;
 } set_context;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
+
+static void
+release_netsnmp_request_group(netsnmp_index *g, void *v)
+{
+    netsnmp_request_group_item *tmp;
+    netsnmp_request_group *group = (netsnmp_request_group *) g;
+
+    if (!g)
+        return;
+    while (group->list) {
+        tmp = group->list;
+        group->list = tmp->next;
+        free(tmp);
+    }
+
+    free(group);
+}
+
+static void
+release_netsnmp_request_groups(void *vp)
+{
+    netsnmp_container *c = (netsnmp_container*)vp;
+    CONTAINER_FOR_EACH(c, (netsnmp_container_obj_func*)
+                       release_netsnmp_request_group, NULL);
+    CONTAINER_FREE(c);
+}
 
 void
 build_new_oid(netsnmp_handler_registration *reginfo,
@@ -377,10 +382,12 @@ build_new_oid(netsnmp_handler_registration *reginfo,
               netsnmp_index *row, netsnmp_request_info *current)
 {
     oid             coloid[MAX_OID_LEN];
+    int             coloid_len;
 
     if (!tblreq_info || !reginfo || !row || !current)
         return;
 
+    coloid_len = reginfo->rootoid_len + 2;
     memcpy(coloid, reginfo->rootoid, reginfo->rootoid_len * sizeof(oid));
 
     /** table.entry */
@@ -483,7 +490,7 @@ process_get_requests(netsnmp_handler_registration *reginfo,
             index.oids = tblreq_info->index_oid;
             index.len = tblreq_info->index_oid_len;
 
-            row = (netsnmp_index*)CONTAINER_FIND(tad->table, &index);
+            row = CONTAINER_FIND(tad->table, &index);
             if (!row) {
                 DEBUGMSGTL(("table_array:get", "no row found\n"));
                 netsnmp_set_request_error(agtreq_info, current,
@@ -518,12 +525,16 @@ group_requests(netsnmp_agent_request_info *agtreq_info,
                netsnmp_container *request_group, table_container_data * tad)
 {
     netsnmp_table_request_info *tblreq_info;
+    netsnmp_variable_list *var;
     netsnmp_index *row, *tmp, index;
     netsnmp_request_info *current;
     netsnmp_request_group *g;
     netsnmp_request_group_item *i;
 
     for (current = requests; current; current = current->next) {
+
+        var = current->requestvb;
+
         /*
          * skip anything that doesn't need processing.
          */
@@ -550,7 +561,7 @@ group_requests(netsnmp_agent_request_info *agtreq_info,
          */
         index.oids = tblreq_info->index_oid;
         index.len = tblreq_info->index_oid_len;
-        tmp = (netsnmp_index*)CONTAINER_FIND(request_group, &index);
+        tmp = CONTAINER_FIND(request_group, &index);
         if (tmp) {
             DEBUGMSGTL(("table_array:group",
                         "    existing group:"));
@@ -559,8 +570,6 @@ group_requests(netsnmp_agent_request_info *agtreq_info,
             DEBUGMSG(("table_array:group", "\n"));
             g = (netsnmp_request_group *) tmp;
             i = SNMP_MALLOC_TYPEDEF(netsnmp_request_group_item);
-            if (i == NULL)
-                return;
             i->ri = current;
             i->tri = tblreq_info;
             i->next = g->list;
@@ -576,11 +585,6 @@ group_requests(netsnmp_agent_request_info *agtreq_info,
         DEBUGMSG(("table_array:group", "\n"));
         g = SNMP_MALLOC_TYPEDEF(netsnmp_request_group);
         i = SNMP_MALLOC_TYPEDEF(netsnmp_request_group_item);
-        if (i == NULL || g == NULL) {
-            SNMP_FREE(i);
-            SNMP_FREE(g);
-            return;
-        }
         g->list = i;
         g->table = tad->table;
         i->ri = current;
@@ -591,15 +595,13 @@ group_requests(netsnmp_agent_request_info *agtreq_info,
          * 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 = (netsnmp_index*)CONTAINER_FIND(tad->table, &index);
+        row = g->existing_row = CONTAINER_FIND(tad->table, &index);
         if (!g->existing_row) {
             if (!tad->cb->create_row) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
                 if(MODE_IS_SET(agtreq_info->mode))
                     netsnmp_set_request_error(agtreq_info, current,
                                               SNMP_ERR_NOTWRITABLE);
                 else
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
                     netsnmp_set_request_error(agtreq_info, current,
                                               SNMP_NOSUCHINSTANCE);
                 free(g);
@@ -628,33 +630,6 @@ group_requests(netsnmp_agent_request_info *agtreq_info,
     } /** for( current ... ) */
 }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-static void
-release_netsnmp_request_group(netsnmp_index *g, void *v)
-{
-    netsnmp_request_group_item *tmp;
-    netsnmp_request_group *group = (netsnmp_request_group *) g;
-
-    if (!g)
-        return;
-    while (group->list) {
-        tmp = group->list;
-        group->list = tmp->next;
-        free(tmp);
-    }
-
-    free(group);
-}
-
-static void
-release_netsnmp_request_groups(void *vp)
-{
-    netsnmp_container *c = (netsnmp_container*)vp;
-    CONTAINER_FOR_EACH(c, (netsnmp_container_obj_func*)
-                       release_netsnmp_request_group, NULL);
-    CONTAINER_FREE(c);
-}
-
 static void
 process_set_group(netsnmp_index *o, void *c)
 {
@@ -848,7 +823,6 @@ process_set_requests(netsnmp_agent_request_info *agtreq_info,
 
     return context.status;
 }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 
 /**********************************************************************
@@ -884,7 +858,6 @@ netsnmp_table_array_helper_handler(netsnmp_mib_handler *handler,
                     mode_name[agtreq_info->mode]));
     }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     if (MODE_IS_SET(agtreq_info->mode)) {
         /*
          * netsnmp_mutex_lock(&tad->lock);
@@ -895,7 +868,6 @@ netsnmp_table_array_helper_handler(netsnmp_mib_handler *handler,
          * netsnmp_mutex_unlock(&tad->lock);
          */
     } else
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
         rc = process_get_requests(reginfo, agtreq_info, requests, tad);
 
     if (rc != SNMP_ERR_NOERROR) {
@@ -915,5 +887,4 @@ netsnmp_table_array_helper_handler(netsnmp_mib_handler *handler,
     
     return rc;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER */
 /** @endcond */
diff --git a/agent/helpers/table_container.c b/agent/helpers/table_container.c
index 08e9741..acb698c 100644
--- a/agent/helpers/table_container.c
+++ b/agent/helpers/table_container.c
@@ -1,15 +1,9 @@
 /*
  * table_container.c
- * $Id$
+ * $Id: table_container.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include <net-snmp/agent/table_container.h>
 
 #if HAVE_STRING_H
 #include <string.h>
@@ -17,21 +11,14 @@
 #include <strings.h>
 #endif
 
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+
 #include <net-snmp/agent/table.h>
+#include <net-snmp/agent/table_container.h>
 #include <net-snmp/library/container.h>
 #include <net-snmp/library/snmp_assert.h>
 
-netsnmp_feature_provide(table_container)
-netsnmp_feature_child_of(table_container, table_container_all)
-netsnmp_feature_child_of(table_container_replace_row, table_container_all)
-netsnmp_feature_child_of(table_container_extract, table_container_all)
-netsnmp_feature_child_of(table_container_management, table_container_all)
-netsnmp_feature_child_of(table_container_row_remove, table_container_all)
-netsnmp_feature_child_of(table_container_row_insert, table_container_all)
-netsnmp_feature_child_of(table_container_all, mib_helpers)
-
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER
-
 /*
  * snmp.h:#define SNMP_MSG_INTERNAL_SET_BEGIN        -1 
  * snmp.h:#define SNMP_MSG_INTERNAL_SET_RESERVE1     0 
@@ -47,9 +34,6 @@ netsnmp_feature_child_of(table_container_all, mib_helpers)
  */
 typedef struct container_table_data_s {
 
-    /** Number of handlers whose myvoid pointer points to this structure. */
-    int refcnt;
-
    /** registration info for the table */
     netsnmp_table_registration_info *tblreg_info;
 
@@ -175,7 +159,6 @@ _find_next_row(netsnmp_container *c,
  *
  * ================================== */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER_MANAGEMENT
 container_table_data *
 netsnmp_tcontainer_create_table( const char *name,
                                  netsnmp_container *container, long flags )
@@ -196,7 +179,7 @@ netsnmp_tcontainer_create_table( const char *name,
     }
 
     if (flags)
-        table->key_type = (char)(flags & 0x03);  /* Use lowest two bits */
+        table->key_type = flags & 0x03;  /* Use lowest two bits */
     else
         table->key_type = TABLE_CONTAINER_KEY_NETSNMP_INDEX;
 
@@ -220,7 +203,6 @@ netsnmp_tcontainer_delete_table( container_table_data *table )
     SNMP_FREE(table);
     return;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER_MANAGEMENT */
 
     /*
      * The various standalone row operation routines
@@ -247,7 +229,6 @@ netsnmp_tcontainer_remove_row( container_table_data *table, netsnmp_index *row )
     return NULL;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER_REPLACE_ROW
 int
 netsnmp_tcontainer_replace_row( container_table_data *table,
                                 netsnmp_index *old_row, netsnmp_index *new_row )
@@ -258,7 +239,6 @@ netsnmp_tcontainer_replace_row( container_table_data *table,
     netsnmp_tcontainer_add_row(    table, new_row );
     return 0;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER_REPLACE_ROW */
 
     /* netsnmp_tcontainer_remove_delete_row() will be table-specific too */
 
@@ -269,20 +249,6 @@ netsnmp_tcontainer_replace_row( container_table_data *table,
  *
  * ================================== */
 
-static container_table_data *
-netsnmp_container_table_data_clone(container_table_data *tad)
-{
-    ++tad->refcnt;
-    return tad;
-}
-
-static void
-netsnmp_container_table_data_free(container_table_data *tad)
-{
-    if (--tad->refcnt == 0)
-	free(tad);
-}
-
 /** returns a netsnmp_mib_handler object for the table_container helper */
 netsnmp_mib_handler *
 netsnmp_container_table_handler_get(netsnmp_table_registration_info *tabreg,
@@ -307,7 +273,6 @@ netsnmp_container_table_handler_get(netsnmp_table_registration_info *tabreg,
         return NULL;
     }
 
-    tad->refcnt = 1;
     tad->tblreg_info = tabreg;  /* we need it too, but it really is not ours */
     if(key_type)
         tad->key_type = key_type;
@@ -324,8 +289,6 @@ netsnmp_container_table_handler_get(netsnmp_table_registration_info *tabreg,
         container->ncompare = netsnmp_ncompare_netsnmp_index;
     
     handler->myvoid = (void*)tad;
-    handler->data_clone = (void *(*)(void *))netsnmp_container_table_data_clone;
-    handler->data_free = (void (*)(void *))netsnmp_container_table_data_free;
     handler->flags |= MIB_HANDLER_AUTO_NEXT;
     
     return handler;
@@ -352,35 +315,13 @@ netsnmp_container_table_register(netsnmp_handler_registration *reginfo,
     return netsnmp_register_table(reginfo, tabreg);
 }
 
-int
-netsnmp_container_table_unregister(netsnmp_handler_registration *reginfo)
-{
-    container_table_data *tad;
-
-    if (!reginfo)
-        return MIB_UNREGISTRATION_FAILED;
-    tad = (container_table_data *)
-        netsnmp_find_handler_data_by_name(reginfo, "table_container");
-    if (tad) {
-        CONTAINER_FREE( tad->table );
-        tad->table = NULL;
-	/*
-	 * Note: don't free the memory tad points at here - that is done
-	 * by netsnmp_container_table_data_free().
-	 */
-    }
-    return netsnmp_unregister_table( reginfo );
-}
-
 /** retrieve the container used by the table_container helper */
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER_EXTRACT
 netsnmp_container*
 netsnmp_container_table_container_extract(netsnmp_request_info *request)
 {
     return (netsnmp_container *)
          netsnmp_request_get_list_data(request, TABLE_CONTAINER_CONTAINER);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER_EXTRACT */
 
 #ifndef NETSNMP_USE_INLINE
 /** find the context data used by the table_container helper */
@@ -405,7 +346,6 @@ netsnmp_container_table_extract_context(netsnmp_request_info *request)
 }
 #endif /* inline */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER_ROW_INSERT
 /** inserts a newly created table_container entry into a request list */
 void
 netsnmp_container_table_row_insert(netsnmp_request_info *request,
@@ -473,76 +413,6 @@ netsnmp_container_table_row_insert(netsnmp_request_info *request,
         }
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER_ROW_INSERT */
-
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER_ROW_REMOVE
-/** 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);
-        }
-    }
-}
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER_ROW_REMOVE */
 
 /** @cond */
 /**********************************************************************
@@ -612,7 +482,7 @@ _data_lookup(netsnmp_handler_registration *reginfo,
          * column, if necessary.
          */
         _set_key( tad, request, tblreq_info, &key, &index );
-        row = (netsnmp_index*)_find_next_row(tad->table, tblreq_info, key);
+        row = _find_next_row(tad->table, tblreq_info, key);
         if (row) {
             /*
              * update indexes in tblreq_info (index & varbind),
@@ -648,21 +518,17 @@ _data_lookup(netsnmp_handler_registration *reginfo,
     else {
 
         _set_key( tad, request, tblreq_info, &key, &index );
-        row = (netsnmp_index*)CONTAINER_FIND(tad->table, key);
+        row = CONTAINER_FIND(tad->table, key);
         if (NULL == row) {
             /*
              * not results found. For a get, that is an error
              */
             DEBUGMSGTL(("table_container", "no row found\n"));
-#ifndef NETSNMP_NO_WRITE_SUPPORT
             if((agtreq_info->mode != MODE_SET_RESERVE1) || /* get */
                (reginfo->modes & HANDLER_CAN_NOT_CREATE)) { /* no create */
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
                 netsnmp_set_request_error(agtreq_info, request,
                                           SNMP_NOSUCHINSTANCE);
-#ifndef NETSNMP_NO_WRITE_SUPPORT
             }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
         }
     } /** GET/SET */
     
@@ -724,11 +590,7 @@ _container_table_handler(netsnmp_mib_handler *handler,
      * registration.
      */
     oldmode = agtreq_info->mode;
-    if(MODE_IS_GET(oldmode)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-       || (MODE_SET_RESERVE1 == oldmode)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-        ) {
+    if(MODE_IS_GET(oldmode) || (MODE_SET_RESERVE1 == oldmode)) {
         netsnmp_request_info *curr_request;
         /*
          * Loop through each of the requests, and
@@ -859,7 +721,7 @@ netsnmp_index *
 netsnmp_table_index_find_next_row(netsnmp_container *c,
                                   netsnmp_table_request_info *tblreq)
 {
-    return (netsnmp_index*)_find_next_row(c, tblreq, NULL );
+    return _find_next_row(c, tblreq, NULL );
 }
 
 /* ==================================
@@ -868,9 +730,4 @@ netsnmp_table_index_find_next_row(netsnmp_container *c,
  *
  * ================================== */
 
-#else /* NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER */
-netsnmp_feature_unused(table_container);
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_CONTAINER */
 /** @} */
-
-
diff --git a/agent/helpers/table_data.c b/agent/helpers/table_data.c
index 75ddc1d..7e83fe9 100644
--- a/agent/helpers/table_data.c
+++ b/agent/helpers/table_data.c
@@ -1,10 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include <net-snmp/agent/table_data.h>
 
 #if HAVE_STRING_H
 #include <string.h>
@@ -12,30 +6,13 @@
 #include <strings.h>
 #endif
 
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+
 #include <net-snmp/agent/table.h>
+#include <net-snmp/agent/table_data.h>
 #include <net-snmp/agent/read_only.h>
 
-netsnmp_feature_child_of(table_data_all, mib_helpers)
-
-netsnmp_feature_child_of(table_data, table_data_all)
-netsnmp_feature_child_of(register_read_only_table_data, table_data_all)
-netsnmp_feature_child_of(extract_table_row_data, table_data_all)
-netsnmp_feature_child_of(insert_table_row, table_data_all)
-netsnmp_feature_child_of(table_data_delete_table, table_data_all)
-
-netsnmp_feature_child_of(table_data_extras, table_data_all)
-
-netsnmp_feature_child_of(table_data_create_table, table_data_extras)
-netsnmp_feature_child_of(table_data_create_row, table_data_extras)
-netsnmp_feature_child_of(table_data_copy_row, table_data_extras)
-netsnmp_feature_child_of(table_data_remove_delete_row, table_data_extras)
-netsnmp_feature_child_of(table_data_unregister, table_data_extras)
-netsnmp_feature_child_of(table_data_row_count, table_data_extras)
-netsnmp_feature_child_of(table_data_row_operations, table_data_extras)
-netsnmp_feature_child_of(table_data_row_first, table_data_extras)
-
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATA
-
 /** @defgroup table_data table_data
  *  Helps you implement a table with datamatted storage.
  *  @ingroup table
@@ -104,17 +81,17 @@ netsnmp_table_data_clone_row(netsnmp_table_row *row)
     if (row->indexes) {
         newrow->indexes = snmp_clone_varbind(newrow->indexes);
         if (!newrow->indexes) {
-            free(newrow);
+            free (newrow);
             return NULL;
         }
     }
 
     if (row->index_oid) {
-        newrow->index_oid =
-            snmp_duplicate_objid(row->index_oid, row->index_oid_len);
+        memdup((u_char **) & newrow->index_oid,
+               (u_char *) row->index_oid,
+               row->index_oid_len * sizeof(oid));
         if (!newrow->index_oid) {
-            free(newrow->indexes);
-            free(newrow);
+            free (newrow);
             return NULL;
         }
     }
@@ -252,7 +229,7 @@ netsnmp_table_data_add_row(netsnmp_table_data *table,
 }
 
 /** swaps out origrow with newrow.  This does *not* delete/free anything! */
-void
+NETSNMP_INLINE void
 netsnmp_table_data_replace_row(netsnmp_table_data *table,
                                netsnmp_table_row *origrow,
                                netsnmp_table_row *newrow)
@@ -311,15 +288,12 @@ netsnmp_table_data_remove_and_delete_row(netsnmp_table_data *table,
      * Generic API - mostly renamed wrappers
      * ===================================== */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATA_CREATE_TABLE
 netsnmp_table_data *
 netsnmp_table_data_create_table(const char *name, long flags)
 {
     return netsnmp_create_table_data( name );
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATA_CREATE_TABLE */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATA_DELETE_TABLE
 void
 netsnmp_table_data_delete_table( netsnmp_table_data *table )
 {
@@ -328,9 +302,6 @@ netsnmp_table_data_delete_table( netsnmp_table_data *table )
     if (!table)
         return;
 
-    snmp_free_varbind(table->indexes_template);
-    table->indexes_template = NULL;
-
     for (row = table->first_row; row; row=nextrow) {
         nextrow   = row->next;
         row->next = NULL;
@@ -339,13 +310,14 @@ netsnmp_table_data_delete_table( netsnmp_table_data *table )
     }
     table->first_row = NULL;
 
-    SNMP_FREE(table->name);
+    if (table->name) {
+        SNMP_FREE(table->name);
+        table->name = NULL;
+    }
     SNMP_FREE(table);
     return;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATA_DELETE_TABLE */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATA_CREATE_ROW
 netsnmp_table_row *
 netsnmp_table_data_create_row( void* entry )
 {
@@ -354,11 +326,9 @@ netsnmp_table_data_create_row( void* entry )
         row->data = entry;
     return row;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATA_CREATE_ROW */
 
     /* netsnmp_table_data_clone_row() defined above */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATA_COPY_ROW
 int
 netsnmp_table_data_copy_row( netsnmp_table_row  *old_row,
                              netsnmp_table_row  *new_row )
@@ -371,12 +341,12 @@ netsnmp_table_data_copy_row( netsnmp_table_row  *old_row,
     if (old_row->indexes)
         new_row->indexes = snmp_clone_varbind(old_row->indexes);
     if (old_row->index_oid)
-        new_row->index_oid =
-            snmp_duplicate_objid(old_row->index_oid, old_row->index_oid_len);
+        memdup((u_char **) & new_row->index_oid,
+               (u_char *)    old_row->index_oid,
+               old_row->index_oid_len * sizeof(oid));
     /* XXX - Doesn't copy table-specific row structure */
     return 0;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATA_COPY_ROW */
 
     /*
      * netsnmp_table_data_delete_row()
@@ -386,14 +356,12 @@ netsnmp_table_data_copy_row( netsnmp_table_row  *old_row,
      *     all defined above
      */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATA_REMOVE_DELETE_ROW
 void *
 netsnmp_table_data_remove_delete_row(netsnmp_table_data *table,
                                      netsnmp_table_row *row)
 {
     return netsnmp_table_data_remove_and_delete_row(table, row);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATA_REMOVE_DELETE_ROW */
 
 
 /* ==================================
@@ -435,8 +403,6 @@ netsnmp_register_table_data(netsnmp_handler_registration *reginfo,
     return netsnmp_register_table(reginfo, table_info);
 }
 
-
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_TABLE_DATA
 /** registers a handler as a read-only data table
  *  If table_info != NULL, it registers it as a normal table too. */
 int
@@ -447,16 +413,6 @@ netsnmp_register_read_only_table_data(netsnmp_handler_registration *reginfo,
     netsnmp_inject_handler(reginfo, netsnmp_get_read_only_handler());
     return netsnmp_register_table_data(reginfo, table, table_info);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_READ_ONLY_TABLE_DATA */
-
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATA_UNREGISTER
-int
-netsnmp_unregister_table_data(netsnmp_handler_registration *reginfo)
-{
-    /* free table; */
-    return netsnmp_unregister_table(reginfo);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATA_UNREGISTER */
 
 /*
  * The helper handler that takes care of passing a specific row of
@@ -489,9 +445,7 @@ netsnmp_table_data_helper_handler(netsnmp_mib_handler *handler,
         switch (reqinfo->mode) {
         case MODE_GET:
         case MODE_GETNEXT:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         case MODE_SET_RESERVE1:
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
             netsnmp_request_add_list_data(request,
                                       netsnmp_create_data_list(
                                           TABLE_DATA_TABLE, table, NULL));
@@ -565,7 +519,9 @@ netsnmp_table_data_helper_handler(netsnmp_mib_handler *handler,
                         /*
                          * equal match, return the next row 
                          */
-                        row = row->next;
+                        if (row) {
+                            row = row->next;
+                        }
                         break;
                     } else if (result > 0) {
                         /*
@@ -642,7 +598,6 @@ netsnmp_table_data_helper_handler(netsnmp_mib_handler *handler,
             }
             break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         case MODE_SET_RESERVE1:
             valid_request = 1;
             if (NULL !=
@@ -667,7 +622,6 @@ netsnmp_table_data_helper_handler(netsnmp_mib_handler *handler,
         case MODE_SET_FREE:
         case MODE_SET_UNDO:
             valid_request = 1;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
         }
     }
@@ -710,7 +664,6 @@ netsnmp_extract_table_row(netsnmp_request_info *request)
                                                                TABLE_DATA_ROW);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_EXTRACT_TABLE_ROW_DATA
 /** extracts the data from the row being accessed passed from the
  * table_data helper */
 void           *
@@ -723,11 +676,9 @@ netsnmp_extract_table_row_data(netsnmp_request_info *request)
     else
         return NULL;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_EXTRACT_TABLE_ROW_DATA */
 
-#ifndef NETSNMP_FEATURE_REMOVE_INSERT_TABLE_ROW
 /** inserts a newly created table_data row into a request */
-void
+NETSNMP_INLINE void
 netsnmp_insert_table_row(netsnmp_request_info *request,
                          netsnmp_table_row *row)
 {
@@ -790,7 +741,6 @@ netsnmp_insert_table_row(netsnmp_request_info *request,
         }
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INSERT_TABLE_ROW */
 
 /* builds a result given a row, a varbind to set and the data */
 int
@@ -902,13 +852,11 @@ netsnmp_table_data_num_rows(netsnmp_table_data *table)
      * Generic API - mostly renamed wrappers
      * ===================================== */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATA_ROW_FIRST
 netsnmp_table_row *
 netsnmp_table_data_row_first(netsnmp_table_data *table)
 {
     return netsnmp_table_data_get_first_row(table);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATA_ROW_FIRST */
 
 netsnmp_table_row *
 netsnmp_table_data_row_get(  netsnmp_table_data *table,
@@ -973,13 +921,11 @@ netsnmp_table_data_row_next_byidx(netsnmp_table_data    *table,
     return netsnmp_table_data_row_next_byoid(table, instance, len);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATA_ROW_COUNT
 int
 netsnmp_table_data_row_count(netsnmp_table_data *table)
 {
     return netsnmp_table_data_num_rows(table);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATA_ROW_COUNT */
 
 
 /* ==================================
@@ -989,7 +935,6 @@ netsnmp_table_data_row_count(netsnmp_table_data *table)
  *
  * ================================== */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATA_ROW_OPERATIONS
 void *
 netsnmp_table_data_entry_first(netsnmp_table_data *table)
 {
@@ -1049,7 +994,6 @@ netsnmp_table_data_entry_next_byoid(netsnmp_table_data *table,
         netsnmp_table_data_row_next_byoid(table, instance, len);
     return (row ? row->data : NULL );
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATA_ROW_OPERATIONS */
 
     /* =====================================
      * Generic API - mostly renamed wrappers
@@ -1061,9 +1005,5 @@ netsnmp_table_data_entry_next_byoid(netsnmp_table_data *table,
  *
  * ================================== */
 
-#else /* NETSNMP_FEATURE_REMOVE_TABLE_DATA */
-netsnmp_feature_unused(table_data);
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATA */
-
 /** @} 
  */
diff --git a/agent/helpers/table_dataset.c b/agent/helpers/table_dataset.c
index 0949a8a..354c006 100644
--- a/agent/helpers/table_dataset.c
+++ b/agent/helpers/table_dataset.c
@@ -1,11 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include <net-snmp/agent/table_dataset.h>
 
 #if HAVE_STRING_H
 #include <string.h>
@@ -13,33 +6,8 @@
 #include <strings.h>
 #endif
 
-netsnmp_feature_child_of(table_dataset_all, mib_helpers)
-netsnmp_feature_child_of(table_dataset, table_dataset_all)
-netsnmp_feature_child_of(table_dataset_remove_row, table_dataset_all)
-netsnmp_feature_child_of(table_data_set_column, table_dataset_all)
-netsnmp_feature_child_of(table_dataset_get_newrow, table_dataset_all)
-netsnmp_feature_child_of(table_set_add_indexes, table_dataset_all)
-netsnmp_feature_child_of(delete_table_data_set, table_dataset_all)
-netsnmp_feature_child_of(table_set_multi_add_default_row, table_dataset_all)
-netsnmp_feature_child_of(table_dataset_unregister_auto_data_table, table_dataset_all)
-
-#ifdef NETSNMP_FEATURE_REQUIRE_TABLE_DATASET
-netsnmp_feature_require(table_get_or_create_row_stash)
-netsnmp_feature_require(table_data_delete_table)
-netsnmp_feature_require(table_data)
-netsnmp_feature_require(oid_stash_get_data)
-netsnmp_feature_require(oid_stash_add_data)
-#endif /* NETSNMP_FEATURE_REQUIRE_TABLE_DATASET */
-
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATASET
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(oid_stash)
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
-#ifndef NETSNMP_DISABLE_MIB_LOADING
-netsnmp_feature_require(mib_to_asn_type)
-#endif /* NETSNMP_DISABLE_MIB_LOADING */
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
 
 static netsnmp_data_list *auto_tables;
 
@@ -104,6 +72,59 @@ netsnmp_init_table_dataset(void) {
  *
  * ================================== */
 
+/** Create a netsnmp_table_data_set structure given a table_data definition */
+netsnmp_table_data_set *
+netsnmp_create_table_data_set(const char *table_name)
+{
+    netsnmp_table_data_set *table_set =
+        SNMP_MALLOC_TYPEDEF(netsnmp_table_data_set);
+    if (!table_set)
+        return NULL;
+    table_set->table = netsnmp_create_table_data(table_name);
+    return table_set;
+}
+
+/** clones a dataset row, including all data. */
+netsnmp_table_row *
+netsnmp_table_data_set_clone_row(netsnmp_table_row *row)
+{
+    netsnmp_table_data_set_storage *data, **newrowdata;
+    netsnmp_table_row *newrow;
+
+    if (!row)
+        return NULL;
+
+    newrow = netsnmp_table_data_clone_row(row);
+    if (!newrow)
+        return NULL;
+
+    data = (netsnmp_table_data_set_storage *) row->data;
+
+    if (data) {
+        for (newrowdata =
+             (netsnmp_table_data_set_storage **) &(newrow->data); data;
+             newrowdata = &((*newrowdata)->next), data = data->next) {
+
+            memdup((u_char **) newrowdata, (u_char *) data,
+                   sizeof(netsnmp_table_data_set_storage));
+            if (!*newrowdata) {
+                netsnmp_table_dataset_delete_row(newrow);
+                return NULL;
+            }
+
+            if (data->data.voidp) {
+                memdup((u_char **) & ((*newrowdata)->data.voidp),
+                       (u_char *) data->data.voidp, data->data_len);
+                if (!(*newrowdata)->data.voidp) {
+                    netsnmp_table_dataset_delete_row(newrow);
+                    return NULL;
+                }
+            }
+        }
+    }
+    return newrow;
+}
+
 /** deletes a single dataset table data.
  *  returns the (possibly still good) next pointer of the deleted data object.
  */
@@ -138,7 +159,7 @@ netsnmp_table_dataset_delete_row(netsnmp_table_row *row)
     if (!row)
         return;
 
-    data = (netsnmp_table_data_set_storage*)netsnmp_table_data_delete_row(row);
+    data = netsnmp_table_data_delete_row(row);
     netsnmp_table_dataset_delete_all_data(data);
 }
 
@@ -164,7 +185,6 @@ netsnmp_table_dataset_replace_row(netsnmp_table_data_set *table,
 }
 
 /** removes a row from the table, but doesn't delete/free the column values */
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATASET_REMOVE_ROW
 NETSNMP_INLINE void
 netsnmp_table_dataset_remove_row(netsnmp_table_data_set *table,
                                  netsnmp_table_row *row)
@@ -174,7 +194,6 @@ netsnmp_table_dataset_remove_row(netsnmp_table_data_set *table,
 
     netsnmp_table_data_remove_and_delete_row(table->table, row);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATASET_REMOVE_ROW */
 
 /** removes a row from the table and then deletes it (and all its data) */
 NETSNMP_INLINE void
@@ -192,80 +211,6 @@ netsnmp_table_dataset_remove_and_delete_row(netsnmp_table_data_set *table,
     netsnmp_table_dataset_delete_all_data(data);
 }
 
-/** Create a netsnmp_table_data_set structure given a table_data definition */
-netsnmp_table_data_set *
-netsnmp_create_table_data_set(const char *table_name)
-{
-    netsnmp_table_data_set *table_set =
-        SNMP_MALLOC_TYPEDEF(netsnmp_table_data_set);
-    if (!table_set)
-        return NULL;
-    table_set->table = netsnmp_create_table_data(table_name);
-    return table_set;
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_DELETE_TABLE_DATA_SET
-void netsnmp_delete_table_data_set(netsnmp_table_data_set *table_set)
-{
-    netsnmp_table_data_set_storage *ptr, *next;
-    netsnmp_table_row *prow, *pnextrow;
-
-    for (ptr = table_set->default_row; ptr; ptr = next) {
-        next = ptr->next;
-        free(ptr);
-    }
-    table_set->default_row = NULL;
-    for (prow = table_set->table->first_row; prow; prow = pnextrow) {
-        pnextrow = prow->next;
-        netsnmp_table_dataset_remove_and_delete_row(table_set, prow);
-    }
-    table_set->table->first_row = NULL;
-    netsnmp_table_data_delete_table(table_set->table);
-    free(table_set);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_DELETE_TABLE_DATA_SET */
-
-/** clones a dataset row, including all data. */
-netsnmp_table_row *
-netsnmp_table_data_set_clone_row(netsnmp_table_row *row)
-{
-    netsnmp_table_data_set_storage *data, **newrowdata;
-    netsnmp_table_row *newrow;
-
-    if (!row)
-        return NULL;
-
-    newrow = netsnmp_table_data_clone_row(row);
-    if (!newrow)
-        return NULL;
-
-    data = (netsnmp_table_data_set_storage *) row->data;
-
-    if (data) {
-        for (newrowdata =
-             (netsnmp_table_data_set_storage **) &(newrow->data); data;
-             newrowdata = &((*newrowdata)->next), data = data->next) {
-
-            memdup((u_char **) newrowdata, (u_char *) data,
-                   sizeof(netsnmp_table_data_set_storage));
-            if (!*newrowdata) {
-                netsnmp_table_dataset_delete_row(newrow);
-                return NULL;
-            }
-
-            if (data->data.voidp) {
-                memdup((u_char **) & ((*newrowdata)->data.voidp),
-                       (u_char *) data->data.voidp, data->data_len);
-                if (!(*newrowdata)->data.voidp) {
-                    netsnmp_table_dataset_delete_row(newrow);
-                    return NULL;
-                }
-            }
-        }
-    }
-    return newrow;
-}
-
 /* ==================================
  *
  * Data Set API: Default row operations
@@ -284,10 +229,9 @@ netsnmp_table_data_set_create_row_from_defaults
     for (; defrow; defrow = defrow->next) {
         netsnmp_set_row_column(row, defrow->column, defrow->type,
                                defrow->data.voidp, defrow->data_len);
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         if (defrow->writable)
             netsnmp_mark_row_column_writable(row, defrow->column, 1);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+
     }
     return row;
 }
@@ -325,8 +269,6 @@ netsnmp_table_set_add_default_row(netsnmp_table_data_set *table_set,
     }
 
     new_col = SNMP_MALLOC_TYPEDEF(netsnmp_table_data_set_storage);
-    if (new_col == NULL)
-        return SNMPERR_GENERR;
     new_col->type = type;
     new_col->writable = writable;
     new_col->column = column;
@@ -363,9 +305,14 @@ netsnmp_table_set_add_default_row(netsnmp_table_data_set *table_set,
  *  this is a wrapper around calling netsnmp_table_set_add_default_row
  *  repeatedly for you.
  */
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_SET_MULTI_ADD_DEFAULT_ROW
 void
+#if HAVE_STDARG_H
 netsnmp_table_set_multi_add_default_row(netsnmp_table_data_set *tset, ...)
+#else
+netsnmp_table_set_multi_add_default_row(va_dcl
+    )
+     va_dcl
+#endif
 {
     va_list         debugargs;
     unsigned int    column;
@@ -373,7 +320,14 @@ netsnmp_table_set_multi_add_default_row(netsnmp_table_data_set *tset, ...)
     void           *data;
     size_t          data_len;
 
+#if HAVE_STDARG_H
     va_start(debugargs, tset);
+#else
+    netsnmp_table_data_set *tset;
+
+    va_start(debugargs);
+    tset = va_arg(debugargs, netsnmp_table_data_set *);
+#endif
 
     while ((column = va_arg(debugargs, unsigned int)) != 0) {
         type = va_arg(debugargs, int);
@@ -386,7 +340,7 @@ netsnmp_table_set_multi_add_default_row(netsnmp_table_data_set *tset, ...)
 
     va_end(debugargs);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_SET_MULTI_ADD_DEFAULT_ROW */
+
 
 /* ==================================
  *
@@ -426,15 +380,11 @@ netsnmp_register_table_data_set(netsnmp_handler_registration *reginfo,
                                 netsnmp_table_data_set *data_set,
                                 netsnmp_table_registration_info *table_info)
 {
-    int ret;
-
     if (NULL == table_info) {
         /*
          * allocate the table if one wasn't allocated 
          */
         table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
-        if (table_info == NULL)
-            return SNMP_ERR_GENERR;
     }
 
     if (NULL == table_info->indexes && data_set->table->indexes_template) {
@@ -465,11 +415,8 @@ netsnmp_register_table_data_set(netsnmp_handler_registration *reginfo,
 
     netsnmp_inject_handler(reginfo,
                            netsnmp_get_table_data_set_handler(data_set));
-    ret = netsnmp_register_table_data(reginfo, data_set->table,
+    return netsnmp_register_table_data(reginfo, data_set->table,
                                        table_info);
-    if (ret == SNMPERR_SUCCESS && reginfo->handler)
-        netsnmp_handler_owns_table_info(reginfo->handler->next);
-    return ret;
 }
 
 newrow_stash   *
@@ -481,14 +428,11 @@ netsnmp_table_data_set_create_newrowstash
     netsnmp_table_row *newrow   = NULL;
 
     newrowstash = SNMP_MALLOC_TYPEDEF(newrow_stash);
-
-    if (newrowstash != NULL) {
-        newrowstash->created = 1;
-        newrow = netsnmp_table_data_set_create_row_from_defaults
-            (datatable->default_row);
-        newrow->indexes = snmp_clone_varbind(table_info->indexes);
-        newrowstash->newrow = newrow;
-    }
+    newrowstash->created = 1;
+    newrow = netsnmp_table_data_set_create_row_from_defaults
+                        (datatable->default_row);
+    newrow->indexes = snmp_clone_varbind(table_info->indexes);
+    newrowstash->newrow = newrow;
 
     return newrowstash;
 }
@@ -507,6 +451,8 @@ netsnmp_table_data_set_helper_handler(netsnmp_mib_handler *handler,
     netsnmp_table_row *row, *newrow = NULL;
     netsnmp_table_request_info *table_info;
     netsnmp_request_info *request;
+    oid            *suffix;
+    size_t          suffix_len;
     netsnmp_oid_stash_node **stashp = NULL;
 
     if (!handler)
@@ -516,11 +462,6 @@ netsnmp_table_data_set_helper_handler(netsnmp_mib_handler *handler,
     for (request = requests; request; request = request->next) {
         netsnmp_table_data_set *datatable =
             (netsnmp_table_data_set *) handler->myvoid;
-        const oid * const suffix =
-            requests->requestvb->name + reginfo->rootoid_len + 2;
-        const size_t suffix_len =
-            requests->requestvb->name_length - (reginfo->rootoid_len + 2);
-
         if (request->processed)
             continue;
 
@@ -529,10 +470,16 @@ netsnmp_table_data_set_helper_handler(netsnmp_mib_handler *handler,
          */
         row = netsnmp_extract_table_row(request);
         table_info = netsnmp_extract_table_info(request);
+        suffix = requests->requestvb->name + reginfo->rootoid_len + 2;
+        suffix_len = requests->requestvb->name_length -
+            (reginfo->rootoid_len + 2);
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         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 
              */
@@ -541,16 +488,30 @@ netsnmp_table_data_set_helper_handler(netsnmp_mib_handler *handler,
              * cache location: may have been created already by other
              * SET requests in the same master request. 
              */
-            stashp = netsnmp_table_dataset_get_or_create_stash(reqinfo,
-                                                               datatable,
-                                                               table_info);
-            if (NULL == stashp) {
-                netsnmp_set_request_error(reqinfo, request, SNMP_ERR_GENERR);
+            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);
+                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
-                = (newrow_stash*)netsnmp_oid_stash_get_data(*stashp, suffix, suffix_len);
+                = netsnmp_oid_stash_get_data(*stashp, suffix, suffix_len);
 
             if (!newrowstash) {
                 if (!row) {
@@ -578,11 +539,6 @@ netsnmp_table_data_set_helper_handler(netsnmp_mib_handler *handler,
                      * existing row that needs to be modified 
                      */
                     newrowstash = SNMP_MALLOC_TYPEDEF(newrow_stash);
-                    if (newrowstash == NULL) {
-                        netsnmp_set_request_error(reqinfo, request,
-                                                  SNMP_ERR_GENERR);
-                        continue;
-                    }
                     newrow = netsnmp_table_data_set_clone_row(row);
                     newrowstash->newrow = newrow;
                 }
@@ -599,17 +555,12 @@ netsnmp_table_data_set_helper_handler(netsnmp_mib_handler *handler,
                 reqinfo->mode == MODE_SET_RESERVE2)
                 row = newrow;
         }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
         if (row)
             data = (netsnmp_table_data_set_storage *) row->data;
 
         if (!row || !table_info || !data) {
-            if (!table_info
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-                || !MODE_IS_SET(reqinfo->mode)
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-                ) {
+            if (!MODE_IS_SET(reqinfo->mode) || !table_info) {
                 netsnmp_set_request_error(reqinfo, request,
                                           SNMP_NOSUCHINSTANCE);
                 continue;
@@ -623,24 +574,15 @@ netsnmp_table_data_set_helper_handler(netsnmp_mib_handler *handler,
         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 {
-                /*
-                 * Note: data->data.voidp can be NULL, e.g. when a zero-length
-                 * octet string has been stored in the table cache.
-                 */
+            if (data && data->data.voidp)
                 netsnmp_table_data_build_result(reginfo, reqinfo, request,
                                                 row,
                                                 table_info->colnum,
                                                 data->type,
-                                       (u_char*)data->data.voidp,
+                                                data->data.voidp,
                                                 data->data_len);
-            }
             break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         case MODE_SET_RESERVE1:
             if (data) {
                 /*
@@ -744,7 +686,7 @@ netsnmp_table_data_set_helper_handler(netsnmp_mib_handler *handler,
              * modify row and set new value 
              */
             SNMP_FREE(data->data.string);
-            data->data.string = (u_char *)
+            data->data.string =
                 netsnmp_strdup_and_null(request->requestvb->val.string,
                                         request->requestvb->val_len);
             if (!data->data.string) {
@@ -831,9 +773,9 @@ netsnmp_table_data_set_helper_handler(netsnmp_mib_handler *handler,
     		    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,
@@ -857,12 +799,6 @@ netsnmp_table_data_set_helper_handler(netsnmp_mib_handler *handler,
 		newrow = NULL;
             }
             break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-        default:
-            snmp_log(LOG_ERR,
-                     "table_dataset: unknown mode passed into the handler\n");
-            return SNMP_ERR_GENERR;
         }
     }
 
@@ -883,19 +819,18 @@ netsnmp_extract_table_data_set(netsnmp_request_info *request)
 /**
  * extracts a netsnmp_table_data_set pointer from a given request
  */
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATA_SET_COLUMN
 netsnmp_table_data_set_storage *
 netsnmp_extract_table_data_set_column(netsnmp_request_info *request,
                                      unsigned int column)
 {
     netsnmp_table_data_set_storage *data =
-        (netsnmp_table_data_set_storage*)netsnmp_extract_table_row_data( request );
+        netsnmp_extract_table_row_data( request );
     if (data) {
         data = netsnmp_table_data_set_find_column(data, column);
     }
     return data;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATA_SET_COLUMN */
+
 
 /* ==================================
  *
@@ -923,22 +858,8 @@ netsnmp_register_auto_data_table(netsnmp_table_data_set *table_set,
     if (!registration_name) {
         registration_name = table_set->table->name;
     }
-    netsnmp_add_list_data(&auto_tables,
-                          netsnmp_create_data_list(registration_name,
-                                                   tables, free));     /* XXX */
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATASET_UNREGISTER_AUTO_DATA_TABLE
-/** Undo the effect of netsnmp_register_auto_data_table().
- */
-void
-netsnmp_unregister_auto_data_table(netsnmp_table_data_set *table_set,
-				   char *registration_name)
-{
-    netsnmp_remove_list_node(&auto_tables, registration_name
-			     ? registration_name : table_set->table->name);
+    netsnmp_add_list_data(&auto_tables, netsnmp_create_data_list(registration_name, tables, NULL));     /* XXX */
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATASET_UNREGISTER_AUTO_DATA_TABLE */
 
 #ifndef NETSNMP_DISABLE_MIB_LOADING
 static void
@@ -1067,7 +988,7 @@ netsnmp_config_parse_table_set(const char *token, char *line)
         struct tree    *tp2;
     
         if (!snmp_parse_oid(tp->augments, name, &name_length)) {
-            config_pwarn("I can't parse the augment table name");
+            config_pwarn("I can't parse the augment tabel name");
             snmp_log(LOG_WARNING, "  can't parse %s\n", tp->augments);
             SNMP_FREE (table_set);
             return;
@@ -1099,20 +1020,18 @@ netsnmp_config_parse_table_set(const char *token, char *line)
         }
 
         DEBUGMSGTL(("table_set_add_table",
-                    "adding column %s(%ld) of type %d (access %d)\n",
+                    "adding column %s(%d) of type %d (access %d)\n",
                     tp->label, tp->subid, type, tp->access));
 
         switch (tp->access) {
         case MIB_ACCESS_CREATE:
             table_set->allow_creation = 1;
-            /* fallthrough */
         case MIB_ACCESS_READWRITE:
         case MIB_ACCESS_WRITEONLY:
             canwrite = 1;
-            /* fallthrough */
         case MIB_ACCESS_READONLY:
             DEBUGMSGTL(("table_set_add_table",
-                        "adding column %ld of type %d\n", tp->subid, type));
+                        "adding column %d of type %d\n", tp->subid, type));
             netsnmp_table_set_add_default_row(table_set, tp->subid, type,
                                               canwrite, NULL, 0);
             mincol = SNMP_MIN(mincol, tp->subid);
@@ -1155,7 +1074,7 @@ netsnmp_config_parse_add_row(const char *token, char *line)
     netsnmp_table_row *row;
     netsnmp_table_data_set_storage *dr;
 
-    line = copy_nword(line, tname, sizeof(tname));
+    line = copy_nword(line, tname, SNMP_MAXBUF_MEDIUM);
 
     tables = (data_set_tables *) netsnmp_get_list_data(auto_tables, tname);
     if (!tables) {
@@ -1178,7 +1097,7 @@ netsnmp_config_parse_add_row(const char *token, char *line)
 
         DEBUGMSGTL(("table_set_add_row", "adding index of type %d\n",
                     vb->type));
-        buf_size = sizeof(buf);
+        buf_size = SNMP_MAXBUF_MEDIUM;
         line = read_config_read_memory(vb->type, line, buf, &buf_size);
         netsnmp_table_row_add_index(row, vb->type, buf, buf_size);
     }
@@ -1196,16 +1115,14 @@ netsnmp_config_parse_add_row(const char *token, char *line)
             return;
         }
 
-        buf_size = sizeof(buf);
+        buf_size = SNMP_MAXBUF_MEDIUM;
         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,
                     dr->type));
         netsnmp_set_row_column(row, dr->column, dr->type, buf, buf_size);
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         if (dr->writable)
             netsnmp_mark_row_column_writable(row, dr->column, 1);       /* make writable */
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
     rc = netsnmp_table_data_add_row(tables->table_set->table, row);
     if (SNMPERR_SUCCESS != rc) {
@@ -1218,64 +1135,6 @@ netsnmp_config_parse_add_row(const char *token, char *line)
 }
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-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;
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_DATASET_GET_NEWROW
-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;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATASET_GET_NEWROW */
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
 /* ==================================
  *
  * Data Set API: Row operations
@@ -1323,7 +1182,6 @@ netsnmp_table_data_set_find_column(netsnmp_table_data_set_storage *start,
     return start;
 }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 /**
  * marks a given column in a row as writable or not.
  */
@@ -1350,38 +1208,21 @@ netsnmp_mark_row_column_writable(netsnmp_table_row *row, int column,
         }
         data->column = column;
         data->writable = writable;
-        data->next = (struct netsnmp_table_data_set_storage_s*)row->data;
+        data->next = row->data;
         row->data = data;
     } else {
         data->writable = writable;
     }
     return SNMPERR_SUCCESS;
 }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 /**
- * 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. 
- *
+ * sets a given column in a row with data given a type, value, and
+ * length.  Data is memdup'ed by the function.
  */
 int
 netsnmp_set_row_column(netsnmp_table_row *row, unsigned int column,
-                       int type, const void *value, size_t value_len)
+                       int type, const char *value, size_t value_len)
 {
     netsnmp_table_data_set_storage *data;
 
@@ -1403,36 +1244,29 @@ netsnmp_set_row_column(netsnmp_table_row *row, unsigned int column,
 
         data->column = column;
         data->type = type;
-        data->next = (struct netsnmp_table_data_set_storage_s*)row->data;
+        data->next = row->data;
         row->data = data;
     }
 
-    /* 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;
+    if (value) {
+        if (data->type != type)
+            return SNMPERR_GENERR;
 
-    /* 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;
+        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;
     }
-    if (value && value_len)
-        memcpy(data->data.string, value, value_len);
-    data->type = type;
-    data->data_len = value_len;
     return SNMPERR_SUCCESS;
 }
 
-
 /* ==================================
  *
  * Data Set API: Index operations
@@ -1450,26 +1284,33 @@ netsnmp_table_dataset_add_index(netsnmp_table_data_set *table, u_char type)
 
 /** adds multiple indexes to a table_dataset helper object.
  *  To end the list, use a 0 after the list of ASN index types. */
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_SET_ADD_INDEXES
 void
+#if HAVE_STDARG_H
 netsnmp_table_set_add_indexes(netsnmp_table_data_set *tset,
                               ...)
+#else
+netsnmp_table_set_add_indexes(va_alist)
+     va_dcl
+#endif
 {
     va_list         debugargs;
     int             type;
 
+#if HAVE_STDARG_H
     va_start(debugargs, tset);
+#else
+    netsnmp_table_data_set *tset;
+
+    va_start(debugargs);
+    tset = va_arg(debugargs, netsnmp_table_data_set *);
+#endif
 
     if (tset)
         while ((type = va_arg(debugargs, int)) != 0)
-            netsnmp_table_data_add_index(tset->table, (u_char)type);
+            netsnmp_table_data_add_index(tset->table, type);
 
     va_end(debugargs);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_SET_ADD_INDEXES */
 
-#else /* NETSNMP_FEATURE_REMOVE_TABLE_DATASET */
-netsnmp_feature_unused(table_dataset);
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_DATASET */
 /** @} 
  */
diff --git a/agent/helpers/table_iterator.c b/agent/helpers/table_iterator.c
index 8ed5cd0..e7742ed 100644
--- a/agent/helpers/table_iterator.c
+++ b/agent/helpers/table_iterator.c
@@ -84,34 +84,20 @@
 
 #include <net-snmp/net-snmp-config.h>
 
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include <net-snmp/agent/table_iterator.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/table.h>
 #include <net-snmp/agent/serialize.h>
+#include <net-snmp/agent/table_iterator.h>
 #include <net-snmp/agent/stash_cache.h>
 
-netsnmp_feature_child_of(table_iterator_all, mib_helpers)
-
-netsnmp_feature_child_of(table_iterator_insert_context, table_iterator_all)
-netsnmp_feature_child_of(table_iterator_create_table, table_iterator_all)
-netsnmp_feature_child_of(table_iterator_row_first, table_iterator_all)
-netsnmp_feature_child_of(table_iterator_row_count, table_iterator_all)
-
-#ifdef NETSNMP_FEATURE_REQUIRE_STASH_CACHE
-netsnmp_feature_require(data_list_get_list_node)
-netsnmp_feature_require(oid_stash_add_data)
-#endif /* NETSNMP_FEATURE_REQUIRE_STASH_CACHE */
-
 /* ==================================
  *
  * Iterator API: Table maintenance
@@ -130,7 +116,6 @@ netsnmp_feature_require(oid_stash_add_data)
      *
      * Time will show whether this is a sensible approach or not.
      */
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_ITERATOR_CREATE_TABLE
 netsnmp_iterator_info *
 netsnmp_iterator_create_table( Netsnmp_First_Data_Point *firstDP,
                                Netsnmp_Next_Data_Point  *nextDP,
@@ -151,9 +136,7 @@ netsnmp_iterator_create_table( Netsnmp_First_Data_Point *firstDP,
 
     return iinfo;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_ITERATOR_CREATE_TABLE */
 
-/** Free the memory that was allocated for a table iterator. */
 void
 netsnmp_iterator_delete_table( netsnmp_iterator_info *iinfo )
 {
@@ -164,7 +147,6 @@ netsnmp_iterator_delete_table( netsnmp_iterator_info *iinfo )
         snmp_free_varbind( iinfo->indexes );
         iinfo->indexes = NULL;
     }
-    netsnmp_table_registration_info_free(iinfo->table_reginfo);
     SNMP_FREE( iinfo );
 }
 
@@ -182,37 +164,7 @@ netsnmp_iterator_delete_table( netsnmp_iterator_info *iinfo )
  *
  * ================================== */
 
-static netsnmp_iterator_info *
-netsnmp_iterator_ref(netsnmp_iterator_info *iinfo)
-{
-    iinfo->refcnt++;
-    return iinfo;
-}
-
-static void
-netsnmp_iterator_deref(netsnmp_iterator_info *iinfo)
-{
-    if (--iinfo->refcnt == 0)
-        netsnmp_iterator_delete_table(iinfo);
-}
-
-void netsnmp_handler_owns_iterator_info(netsnmp_mib_handler *h)
-{
-    netsnmp_assert(h);
-    netsnmp_assert(h->myvoid);
-    ((netsnmp_iterator_info *)(h->myvoid))->refcnt++;
-    h->data_clone = (void *(*)(void *))netsnmp_iterator_ref;
-    h->data_free  = (void(*)(void *))netsnmp_iterator_deref;
-}
-
-/**
- * Returns a netsnmp_mib_handler object for the table_iterator helper.
- *
- * The caller remains the owner of the iterator information object if
- * the flag NETSNMP_HANDLER_OWNS_IINFO has not been set, and the created
- * handler becomes the owner of the iterator information if the flag
- * NETSNMP_HANDLER_OWNS_IINFO has been set.
- */
+/** returns a netsnmp_mib_handler object for the table_iterator helper */
 netsnmp_mib_handler *
 netsnmp_get_table_iterator_handler(netsnmp_iterator_info *iinfo)
 {
@@ -229,8 +181,6 @@ netsnmp_get_table_iterator_handler(netsnmp_iterator_info *iinfo)
         return NULL;
 
     me->myvoid = iinfo;
-    if (iinfo->flags & NETSNMP_HANDLER_OWNS_IINFO)
-        netsnmp_handler_owns_iterator_info(me);
     return me;
 }
 
@@ -244,11 +194,7 @@ netsnmp_get_table_iterator_handler(netsnmp_iterator_info *iinfo)
  *
  * @param reginfo is a pointer to a netsnmp_handler_registration struct
  *
- * @param iinfo A pointer to a netsnmp_iterator_info struct. If the flag
- * NETSNMP_HANDLER_OWNS_IINFO is not set in iinfo->flags, the caller remains
- * the owner of this structure. And if the flag NETSNMP_HANDLER_OWNS_IINFO is
- * set in iinfo->flags, ownership of this data structure is passed to the
- * handler.
+ * @param iinfo is a pointer to a netsnmp_iterator_info struct
  *
  * @return MIB_REGISTERED_OK is returned if the registration was a success.
  *	Failures are MIB_REGISTRATION_FAILED, MIB_DUPLICATE_REGISTRATION.
@@ -259,9 +205,7 @@ int
 netsnmp_register_table_iterator(netsnmp_handler_registration *reginfo,
                                 netsnmp_iterator_info *iinfo)
 {
-#ifndef NETSNMP_FEATURE_REMOVE_STASH_CACHE
     reginfo->modes |= HANDLER_CAN_STASH;
-#endif  /* NETSNMP_FEATURE_REMOVE_STASH_CACHE */
     netsnmp_inject_handler(reginfo,
                            netsnmp_get_table_iterator_handler(iinfo));
     if (!iinfo)
@@ -292,7 +236,6 @@ netsnmp_extract_iterator_context(netsnmp_request_info *request)
     return netsnmp_request_get_list_data(request, TABLE_ITERATOR_NAME);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_ITERATOR_INSERT_CONTEXT
 /** inserts table_iterator specific data for a newly
  *  created row into a request */
 NETSNMP_INLINE void
@@ -357,7 +300,6 @@ netsnmp_insert_iterator_context(netsnmp_request_info *request, void *data)
         }
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_ITERATOR_INSERT_CONTEXT */
 
 #define TI_REQUEST_CACHE "ti_cache"
 
@@ -372,7 +314,7 @@ typedef struct ti_cache_info_s {
 
 static void
 netsnmp_free_ti_cache(void *it) {
-    ti_cache_info *beer = (ti_cache_info*)it;
+    ti_cache_info *beer = it;
     if (!it) return;
     if (beer->data_context && beer->free_context) {
             (beer->free_context)(beer->data_context, beer->iinfo);
@@ -398,13 +340,11 @@ netsnmp_iterator_remember(netsnmp_request_info *request,
         return NULL;
 
     /* extract existing cached state */
-    ti_info = (ti_cache_info*)netsnmp_request_get_list_data(request, TI_REQUEST_CACHE);
+    ti_info = netsnmp_request_get_list_data(request, TI_REQUEST_CACHE);
 
     /* no existing cached state.  make a new one. */
     if (!ti_info) {
         ti_info = SNMP_MALLOC_TYPEDEF(ti_cache_info);
-        if (ti_info == NULL)
-            return NULL;
         netsnmp_request_add_list_data(request,
                                       netsnmp_create_data_list
                                       (TI_REQUEST_CACHE,
@@ -460,17 +400,15 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
     void           *callback_data_context = NULL;
     ti_cache_info  *ti_info = NULL;
     int             request_count = 0;
-#ifndef NETSNMP_FEATURE_REMOVE_STASH_CACHE
     netsnmp_oid_stash_node **cinfo = NULL;
     netsnmp_variable_list *old_indexes = NULL, *vb;
     netsnmp_table_registration_info *table_reg_info = NULL;
     int i;
     netsnmp_data_list    *ldata = NULL;
-#endif /* NETSNMP_FEATURE_REMOVE_STASH_CACHE */
-
+    
     iinfo = (netsnmp_iterator_info *) handler->myvoid;
     if (!iinfo || !reginfo || !reqinfo)
-        return SNMP_ERR_GENERR;
+        return SNMPERR_GENERR;
 
     tbl_info = iinfo->table_reginfo;
 
@@ -493,15 +431,12 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
 
     /* preliminary analysis */
     switch (reqinfo->mode) {
-#ifndef NETSNMP_FEATURE_REMOVE_STASH_CACHE
     case MODE_GET_STASH:
         cinfo = netsnmp_extract_stash_cache(reqinfo);
         table_reg_info = netsnmp_find_table_registration_info(reginfo);
 
         /* XXX: move this malloc to stash_cache handler? */
         reqtmp = SNMP_MALLOC_TYPEDEF(netsnmp_request_info);
-        if (reqtmp == NULL)
-            return SNMP_ERR_GENERR;
         reqtmp->subtree = requests->subtree;
         table_info = netsnmp_extract_table_info(requests);
         netsnmp_request_add_list_data(reqtmp,
@@ -512,21 +447,12 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
         /* remember the indexes that were originally parsed. */
         old_indexes = table_info->indexes;
         break;
-#endif /* NETSNMP_FEATURE_REMOVE_STASH_CACHE */
 
     case MODE_GETNEXT:
         for(request = requests ; request; request = request->next) {
             if (request->processed)
                 continue;
             table_info = netsnmp_extract_table_info(request);
-            if (table_info == NULL) {
-                /*
-                 * Cleanup 
-                 */
-                if (free_this_index_search)
-                    snmp_free_varbind(free_this_index_search);
-                return SNMP_ERR_GENERR;
-            }
             if (table_info->colnum < tbl_info->min_column - 1) {
                 /* XXX: optimize better than this */
                 /* for now, just increase to colnum-1 */
@@ -537,18 +463,10 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
                 request->processed = TABLE_ITERATOR_NOTAGAIN;
             }
 
-            ti_info = (ti_cache_info*)
+            ti_info =
                 netsnmp_request_get_list_data(request, TI_REQUEST_CACHE);
             if (!ti_info) {
                 ti_info = SNMP_MALLOC_TYPEDEF(ti_cache_info);
-                if (ti_info == NULL) {
-                    /*
-                     * Cleanup 
-                     */
-                    if (free_this_index_search)
-                        snmp_free_varbind(free_this_index_search);
-                    return SNMP_ERR_GENERR;
-                }
                 netsnmp_request_add_list_data(request,
                                               netsnmp_create_data_list
                                               (TI_REQUEST_CACHE,
@@ -566,11 +484,8 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
      */
     if (reqinfo->mode == MODE_GET ||
         reqinfo->mode == MODE_GETNEXT ||
-        reqinfo->mode == MODE_GET_STASH
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-        || reqinfo->mode == MODE_SET_RESERVE1
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-        ) {
+        reqinfo->mode == MODE_GET_STASH ||
+        reqinfo->mode == MODE_SET_RESERVE1) {
         /*
          * Count the number of request in the list,
          *   so that we'll know when we're finished
@@ -640,53 +555,27 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
                     if (request->processed)
                         continue;
 
-                    /* XXX: store in an array for faster retrieval */
+                    /* XXX: store in an array for faster retrival */
                     table_info = netsnmp_extract_table_info(request);
-                    if (table_info == NULL) {
-                        /*
-                         * Cleanup 
-                         */
-                        if (free_this_index_search)
-                            snmp_free_varbind(free_this_index_search);
-                        netsnmp_free_request_data_sets(reqtmp);
-                        SNMP_FREE(reqtmp);
-                        return SNMP_ERR_GENERR;
-                    }
                     coloid[reginfo->rootoid_len + 1] = table_info->colnum;
 
-                    ti_info = (ti_cache_info*)
+                    ti_info =
                         netsnmp_request_get_list_data(request, TI_REQUEST_CACHE);
 
                     switch(reqinfo->mode) {
                     case MODE_GET:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
                     case MODE_SET_RESERVE1:
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
                         /* looking for exact matches */
                         build_oid_noalloc(myname, MAX_OID_LEN, &myname_len,
                                           coloid, coloid_len, index_search);
                         if (snmp_oid_compare(myname, myname_len,
                                              request->requestvb->name,
                                              request->requestvb->name_length) == 0) {
-                            /* 
-                             * keep this
-                             */
-                            if (netsnmp_iterator_remember(request,
-                                                          myname,
-                                                          myname_len,
-                                                          callback_data_context,
-                                                          callback_loop_context,
-                                                          iinfo) == NULL) {
-                                /*
-                                 * Cleanup 
-                                 */
-                                if (free_this_index_search)
-                                    snmp_free_varbind
-                                        (free_this_index_search);
-                                netsnmp_free_request_data_sets(reqtmp);
-                                SNMP_FREE(reqtmp);
-                                return SNMP_ERR_GENERR;
-                            }
+                            /* keep this */
+                            netsnmp_iterator_remember(request,
+                                                      myname, myname_len,
+                                                      callback_data_context,
+                                                      callback_loop_context, iinfo);
                             request_count--;   /* One less to look for */
                         } else {
                             if (iinfo->free_data_context && callback_data_context) {
@@ -696,7 +585,6 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
                         }
                         break;
 
-#ifndef NETSNMP_FEATURE_REMOVE_STASH_CACHE
                     case MODE_GET_STASH:
                         /* collect data for each column for every row */
                         build_oid_noalloc(myname, MAX_OID_LEN, &myname_len,
@@ -724,15 +612,6 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
                             table_info->colnum = i;
                             vb = reqtmp->requestvb =
                                 SNMP_MALLOC_TYPEDEF(netsnmp_variable_list);
-                            if (vb == NULL) {
-                                /*
-                                 * Cleanup 
-                                 */
-                                if (free_this_index_search)
-                                    snmp_free_varbind
-                                        (free_this_index_search);
-                                return SNMP_ERR_GENERR;
-                            }
                             vb->type = ASN_NULL;
                             snmp_set_var_objid(vb, myname, myname_len);
                             netsnmp_call_next_handler(handler, reginfo,
@@ -748,30 +627,17 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
                         }
                         reqinfo->mode = MODE_GET_STASH;
                         break;
-#endif  /* NETSNMP_FEATURE_REMOVE_STASH_CACHE */
 
                     case MODE_GETNEXT:
                         /* looking for "next" matches */
                         if (netsnmp_check_getnext_reply
                             (request, coloid, coloid_len, index_search,
                              &ti_info->results)) {
-                            if (netsnmp_iterator_remember(request,
-                                                          ti_info->
-                                                          results->name,
-                                                          ti_info->
-                                                          results->
-                                                          name_length,
-                                                          callback_data_context,
-                                                          callback_loop_context,
-                                                          iinfo) == NULL) {
-                                /*
-                                 * Cleanup 
-                                 */
-                                if (free_this_index_search)
-                                    snmp_free_varbind
-                                        (free_this_index_search);
-                                return SNMP_ERR_GENERR;
-                            }
+                            netsnmp_iterator_remember(request,
+                                                      ti_info->results->name,
+                                                      ti_info->results->name_length,
+                                                      callback_data_context,
+                                                      callback_loop_context, iinfo);
                             /*
                              *  If we've been told that the rows are sorted,
                              *   then the first valid one we find
@@ -788,14 +654,12 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
                         }
                         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
                     case MODE_SET_RESERVE2:
                     case MODE_SET_FREE:
                     case MODE_SET_UNDO:
                     case MODE_SET_COMMIT:
                         /* needed processing already done in RESERVE1 */
                         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
                     default:
                         snmp_log(LOG_ERR,
@@ -833,7 +697,7 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
                 for(request = requests ; request; request = request->next) {
                     if (request->processed)
                         continue;
-                    ti_info = (ti_cache_info*)
+                    ti_info =
                         netsnmp_request_get_list_data(request,
                                                       TI_REQUEST_CACHE);
                     if (!ti_info->results) {
@@ -858,16 +722,13 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
     }
 
     if (reqinfo->mode == MODE_GET ||
-        reqinfo->mode == MODE_GETNEXT
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-        || reqinfo->mode == MODE_SET_RESERVE1
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-        ) {
+        reqinfo->mode == MODE_GETNEXT ||
+        reqinfo->mode == MODE_SET_RESERVE1) {
         /* per request last minute processing */
         for(request = requests ; request; request = request->next) {
             if (request->processed)
                 continue;
-            ti_info = (ti_cache_info*)
+            ti_info =
                 netsnmp_request_get_list_data(request, TI_REQUEST_CACHE);
             table_info =
                 netsnmp_extract_table_info(request);
@@ -898,9 +759,7 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
                 /* FALL THROUGH */
 
             case MODE_GET:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
             case MODE_SET_RESERVE1:
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
                 if (ti_info->data_context)
                     /* we don't add a free pointer, since it's in the
                        TI_REQUEST_CACHE instead */
@@ -923,12 +782,10 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
         if (reqinfo->mode == MODE_GETNEXT) {
             reqinfo->mode = MODE_GET;
         }
-#ifndef NETSNMP_FEATURE_REMOVE_STASH_CACHE
     } else if (reqinfo->mode == MODE_GET_STASH) {
         netsnmp_free_request_data_sets(reqtmp);
         SNMP_FREE(reqtmp);
         table_info->indexes = old_indexes;
-#endif  /* NETSNMP_FEATURE_REMOVE_STASH_CACHE */
     }
 
 
@@ -959,7 +816,6 @@ netsnmp_table_iterator_helper_handler(netsnmp_mib_handler *handler,
  *
  * ================================== */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_ITERATOR_ROW_FIRST
 void *
 netsnmp_iterator_row_first( netsnmp_iterator_info *iinfo ) {
     netsnmp_variable_list *vp1, *vp2;
@@ -978,7 +834,6 @@ netsnmp_iterator_row_first( netsnmp_iterator_info *iinfo ) {
     snmp_free_varbind( vp1 );
     return ctx2;  /* or *ctx2 ?? */
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_ITERATOR_ROW_FIRST */
 
 void *
 netsnmp_iterator_row_get( netsnmp_iterator_info *iinfo, void *row )
@@ -1090,7 +945,7 @@ netsnmp_iterator_row_get_byoid(  netsnmp_iterator_info *iinfo,
 
     vp1 = snmp_clone_varbind(iinfo->indexes);
     vp2 = iinfo->get_first_data_point( &ctx1, &ctx2, vp1, iinfo );
-    DEBUGMSGTL(("table:iterator:get", "first DP: %p %p %p\n",
+    DEBUGMSGTL(("table:iterator:get", "first DP: %x %x %x\n",
                                        ctx1, ctx2, vp2));
 
     /* XXX - free context ? */
@@ -1109,7 +964,7 @@ netsnmp_iterator_row_get_byoid(  netsnmp_iterator_info *iinfo,
         }
         
         vp2 = iinfo->get_next_data_point( &ctx1, &ctx2, vp2, iinfo );
-        DEBUGMSGTL(("table:iterator:get", "next DP: %p %p %p\n",
+        DEBUGMSGTL(("table:iterator:get", "next DP: %x %x %x\n",
                                            ctx1, ctx2, vp2));
         /* XXX - free context ? */
     }
@@ -1139,7 +994,7 @@ netsnmp_iterator_row_next_byoid( netsnmp_iterator_info *iinfo,
 
     vp1 = snmp_clone_varbind(iinfo->indexes);
     vp2 = iinfo->get_first_data_point( &ctx1, &ctx2, vp1, iinfo );
-    DEBUGMSGTL(("table:iterator:get", "first DP: %p %p %p\n",
+    DEBUGMSGTL(("table:iterator:get", "first DP: %x %x %x\n",
                                        ctx1, ctx2, vp2));
 
     if ( !instance || !len ) {
@@ -1176,7 +1031,7 @@ netsnmp_iterator_row_next_byoid( netsnmp_iterator_info *iinfo,
         }
         
         vp2 = iinfo->get_next_data_point( &ctx1, &ctx2, vp2, iinfo );
-        DEBUGMSGTL(("table:iterator:get", "next DP: %p %p %p\n",
+        DEBUGMSGTL(("table:iterator:get", "next DP: %x %x %x\n",
                                            ctx1, ctx2, vp2));
         /* XXX - free context ? */
     }
@@ -1187,7 +1042,6 @@ netsnmp_iterator_row_next_byoid( netsnmp_iterator_info *iinfo,
     return ( vp2 ? ctx2 : NULL );
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_ITERATOR_ROW_COUNT
 int
 netsnmp_iterator_row_count( netsnmp_iterator_info *iinfo )
 {
@@ -1206,7 +1060,7 @@ netsnmp_iterator_row_count( netsnmp_iterator_info *iinfo )
         return 0;
     }
     
-    DEBUGMSGTL(("table:iterator:count", "first DP: %p %p %p\n",
+    DEBUGMSGTL(("table:iterator:count", "first DP: %x %x %x\n",
                                          ctx1, ctx2, vp2));
 
     /* XXX - free context ? */
@@ -1214,7 +1068,7 @@ netsnmp_iterator_row_count( netsnmp_iterator_info *iinfo )
     while (vp2) {
         i++;
         vp2 = iinfo->get_next_data_point( &ctx1, &ctx2, vp2, iinfo );
-        DEBUGMSGTL(("table:iterator:count", "next DP: %p %p %p (%d)\n",
+        DEBUGMSGTL(("table:iterator:count", "next DP: %x %x %x (%d)\n",
                                              ctx1, ctx2, vp2, i));
         /* XXX - free context ? */
     }
@@ -1223,7 +1077,6 @@ netsnmp_iterator_row_count( netsnmp_iterator_info *iinfo )
     snmp_free_varbind( vp1 );
     return i;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_ITERATOR_ROW_COUNT */
 
 
 /* ==================================
diff --git a/agent/helpers/table_row.c b/agent/helpers/table_row.c
index 2a33f23..cc1caec 100644
--- a/agent/helpers/table_row.c
+++ b/agent/helpers/table_row.c
@@ -3,12 +3,11 @@
  *
  * Helper for registering single row slices of a shared table
  *
- * $Id$
+ * $Id: table_row.c 17839 2009-11-27 08:54:26Z jsafranek $
  */
 #define TABLE_ROW_DATA  "table_row"
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #if HAVE_STRING_H
 #include <string.h>
@@ -24,11 +23,6 @@
 #include <net-snmp/library/container.h>
 #include <net-snmp/library/snmp_assert.h>
 
-netsnmp_feature_child_of(table_row_all, mib_helpers)
-
-netsnmp_feature_child_of(table_row_extract, table_row_all)
-
-
 /*
  * snmp.h:#define SNMP_MSG_INTERNAL_SET_BEGIN        -1 
  * snmp.h:#define SNMP_MSG_INTERNAL_SET_RESERVE1     0 
@@ -142,7 +136,8 @@ netsnmp_table_row_register(netsnmp_handler_registration *reginfo,
                       MAX_OID_LEN-row_oid_len, &len, NULL, 0, index);
     row_oid_len += len;
     free(reginfo->rootoid);
-    reginfo->rootoid = snmp_duplicate_objid(row_oid, row_oid_len);
+    memdup((u_char **) & reginfo->rootoid, (const u_char *) row_oid,
+           row_oid_len * sizeof(oid));
     reginfo->rootoid_len = row_oid_len;
 
      
@@ -160,13 +155,11 @@ netsnmp_table_row_register(netsnmp_handler_registration *reginfo,
 
 
 /** return the row data structure supplied to the table_row helper */
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_ROW_EXTRACT
 void *
 netsnmp_table_row_extract(netsnmp_request_info *request)
 {
     return netsnmp_request_get_list_data(request, TABLE_ROW_DATA);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_ROW_EXTRACT */
 /** @cond */
 
 /**********************************************************************
diff --git a/agent/helpers/table_tdata.c b/agent/helpers/table_tdata.c
index 5bdb26a..a0befd2 100644
--- a/agent/helpers/table_tdata.c
+++ b/agent/helpers/table_tdata.c
@@ -1,10 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include <net-snmp/agent/table_tdata.h>
 
 #if HAVE_STRING_H
 #include <string.h>
@@ -12,7 +6,11 @@
 #include <strings.h>
 #endif
 
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+
 #include <net-snmp/agent/table.h>
+#include <net-snmp/agent/table_tdata.h>
 #include <net-snmp/agent/table_container.h>
 #include <net-snmp/agent/read_only.h>
 
@@ -20,22 +18,6 @@
 #include <dmalloc.h>
 #endif
 
-netsnmp_feature_child_of(table_tdata_all, mib_helpers)
-netsnmp_feature_child_of(table_tdata, table_tdata_all)
-netsnmp_feature_child_of(table_tdata_delete_table, table_tdata_all)
-netsnmp_feature_child_of(table_tdata_extract_table, table_tdata_all)
-netsnmp_feature_child_of(table_tdata_remove_row, table_tdata_all)
-netsnmp_feature_child_of(table_tdata_insert_row, table_tdata_all)
-
-#ifdef NETSNMP_FEATURE_REQUIRE_TABLE_TDATA
-netsnmp_feature_require(table_container_row_insert)
-#ifdef NETSNMP_FEATURE_REQUIRE_TABLE_TDATA_REMOVE_ROW
-netsnmp_feature_require(table_container_row_remove)
-#endif /* NETSNMP_FEATURE_REQUIRE_TABLE_TDATA_REMOVE_ROW */
-#endif /* NETSNMP_FEATURE_REQUIRE_TABLE_TDATA */
-
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_TDATA
-
 /** @defgroup tdata tdata
  *  Implement a table with datamatted storage.
  *  @ingroup table
@@ -75,21 +57,12 @@ netsnmp_tdata_create_table(const char *name, long flags)
     if ( !table )
         return NULL;
 
-    table->flags = flags;
     if (name)
         table->name = strdup(name);
-
-    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);
-    }
+    table->container = netsnmp_container_find( "table_container" );
     return table;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_TDATA_DELETE_TABLE
 /** creates and returns a 'tdata' table data structure */
 void
 netsnmp_tdata_delete_table(netsnmp_tdata *table)
@@ -105,7 +78,6 @@ netsnmp_tdata_delete_table(netsnmp_tdata *table)
     SNMP_FREE(table);
     return;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_TDATA_DELETE_TABLE */
 
 /** creates and returns a pointer to new row data structure */
 netsnmp_tdata_row *
@@ -116,8 +88,6 @@ netsnmp_tdata_create_row(void)
 }
 
 /** clones a 'tdata' row. DOES NOT CLONE THE TABLE-SPECIFIC ENTRY DATA. */
-netsnmp_feature_child_of(tdata_clone_row, table_tdata_all)
-#ifndef NETSNMP_FEATURE_REMOVE_TDATA_CLONE_ROW
 netsnmp_tdata_row *
 netsnmp_tdata_clone_row(netsnmp_tdata_row *row)
 {
@@ -139,8 +109,9 @@ netsnmp_tdata_clone_row(netsnmp_tdata_row *row)
     }
 
     if (row->oid_index.oids) {
-        newrow->oid_index.oids =
-            snmp_duplicate_objid(row->oid_index.oids, row->oid_index.len);
+        memdup((u_char **) & newrow->oid_index.oids,
+               (u_char *) row->oid_index.oids,
+               row->oid_index.len * sizeof(oid));
         if (!newrow->oid_index.oids) {
             if (newrow->indexes)
                 snmp_free_varbind(newrow->indexes);
@@ -151,12 +122,9 @@ netsnmp_tdata_clone_row(netsnmp_tdata_row *row)
 
     return newrow;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TDATA_CLONE_ROW */
 
 /** copy the contents of a 'tdata' row.
     DOES NOT COPY THE TABLE-SPECIFIC ENTRY DATA. */
-netsnmp_feature_child_of(tdata_copy_row, table_tdata_all)
-#ifndef NETSNMP_FEATURE_REMOVE_TDATA_COPY_ROW
 int
 netsnmp_tdata_copy_row(netsnmp_tdata_row *dst_row, netsnmp_tdata_row *src_row)
 {
@@ -172,15 +140,15 @@ netsnmp_tdata_copy_row(netsnmp_tdata_row *dst_row, netsnmp_tdata_row *src_row)
     }
 
     if (src_row->oid_index.oids) {
-        dst_row->oid_index.oids = snmp_duplicate_objid(src_row->oid_index.oids,
-                                                       src_row->oid_index.len);
+        memdup((u_char **) &dst_row->oid_index.oids,
+               (u_char  *)  src_row->oid_index.oids,
+               src_row->oid_index.len * sizeof(oid));
         if (!dst_row->oid_index.oids)
             return -1;
     }
 
     return 0;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TDATA_COPY_ROW */
 
 /** deletes the memory used by the specified row
  *  returns the table-specific entry data
@@ -248,17 +216,13 @@ netsnmp_tdata_add_row(netsnmp_tdata     *table,
     /*
      * add this row to the stored table
      */
-    if (CONTAINER_INSERT( table->container, row ) != 0)
-        return SNMPERR_GENERR;
-
-    DEBUGMSGTL(("tdata_add_row", "added row (%p)\n", row));
+    CONTAINER_INSERT( table->container, row );
+    DEBUGMSGTL(("tdata_add_row", "added row (%x)\n", row));
 
     return SNMPERR_SUCCESS;
 }
 
 /** swaps out origrow with newrow.  This does *not* delete/free anything! */
-netsnmp_feature_child_of(tdata_replace_row, table_tdata_all)
-#ifndef NETSNMP_FEATURE_REMOVE_TDATA_REPLACE_ROW
 void
 netsnmp_tdata_replace_row(netsnmp_tdata *table,
                                netsnmp_tdata_row *origrow,
@@ -267,7 +231,6 @@ netsnmp_tdata_replace_row(netsnmp_tdata *table,
     netsnmp_tdata_remove_row(table, origrow);
     netsnmp_tdata_add_row(table, newrow);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TDATA_REPLACE_ROW */
 
 /**
  * removes a row from the given table and returns it (no free's called)
@@ -355,34 +318,20 @@ _netsnmp_tdata_helper_handler(netsnmp_mib_handler *handler,
     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 */
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
         for (request = requests; request; request = request->next) {
             if (request->processed)
                 continue;
     
             table_info = netsnmp_extract_table_info(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;
+            if (!table_info)
+                continue;           /* ack */
+            row = netsnmp_container_table_row_extract( request );
+
             netsnmp_request_add_list_data(request,
                                       netsnmp_create_data_list(
                                           TABLE_TDATA_TABLE, table, NULL));
@@ -390,9 +339,6 @@ _netsnmp_tdata_helper_handler(netsnmp_mib_handler *handler,
                                       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' */
@@ -411,17 +357,6 @@ netsnmp_tdata_register(netsnmp_handler_registration    *reginfo,
                   table->container, TABLE_CONTAINER_KEY_NETSNMP_INDEX);
 }
 
-netsnmp_feature_child_of(tdata_unregister, table_tdata_all)
-#ifndef NETSNMP_FEATURE_REMOVE_TDATA_UNREGISTER
-int
-netsnmp_tdata_unregister(netsnmp_handler_registration    *reginfo)
-{
-    /* free table; */
-    return netsnmp_container_table_unregister(reginfo);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_TDATA_UNREGISTER */
-
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_TDATA_EXTRACT_TABLE
 /** extracts the tdata table from the request structure */
 netsnmp_tdata *
 netsnmp_tdata_extract_table(netsnmp_request_info *request)
@@ -429,19 +364,15 @@ netsnmp_tdata_extract_table(netsnmp_request_info *request)
     return (netsnmp_tdata *) netsnmp_request_get_list_data(request,
                                                            TABLE_TDATA_TABLE);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_TDATA_EXTRACT_TABLE */
 
 /** extracts the tdata container from the request structure */
-netsnmp_feature_child_of(tdata_extract_container, table_tdata_all)
-#ifndef NETSNMP_FEATURE_REMOVE_TDATA_EXTRACT_CONTAINER
 netsnmp_container *
 netsnmp_tdata_extract_container(netsnmp_request_info *request)
 {
-    netsnmp_tdata *tdata = (netsnmp_tdata*)
-        netsnmp_request_get_list_data(request, TABLE_TDATA_TABLE);
+    netsnmp_tdata *tdata = netsnmp_request_get_list_data(request,
+                                                         TABLE_TDATA_TABLE);
     return ( tdata ? tdata->container : NULL );
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TDATA_EXTRACT_CONTAINER */
 
 /** extracts the tdata row being accessed from the request structure */
 netsnmp_tdata_row *
@@ -463,7 +394,6 @@ netsnmp_tdata_extract_entry(netsnmp_request_info *request)
         return NULL;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_TDATA_INSERT_ROW
 /** inserts a newly created tdata row into a request */
 NETSNMP_INLINE void
 netsnmp_insert_tdata_row(netsnmp_request_info *request,
@@ -471,17 +401,6 @@ netsnmp_insert_tdata_row(netsnmp_request_info *request,
 {
     netsnmp_container_table_row_insert(request, (netsnmp_index *)row);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_TDATA_INSERT_ROW */
-
-#ifndef NETSNMP_FEATURE_REMOVE_TABLE_TDATA_REMOVE_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);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_TDATA_REMOVE_ROW */
 
 
 /* ==================================
@@ -512,7 +431,7 @@ netsnmp_tdata_row *
 netsnmp_tdata_row_get(  netsnmp_tdata     *table,
                         netsnmp_tdata_row *row)
 {
-    return (netsnmp_tdata_row*)CONTAINER_FIND( table->container, row );
+    return CONTAINER_FIND( table->container, row );
 }
 
 /** returns the next row in the table */
@@ -547,7 +466,7 @@ netsnmp_tdata_row_get_byoid(netsnmp_tdata *table,
 
     index.oids = searchfor;
     index.len  = searchfor_len;
-    return (netsnmp_tdata_row*)CONTAINER_FIND( table->container, &index );
+    return CONTAINER_FIND( table->container, &index );
 }
 
 /** finds the lexically next row in the 'tdata' table
@@ -576,11 +495,9 @@ netsnmp_tdata_row_next_byoid(netsnmp_tdata *table,
 
     index.oids = searchfor;
     index.len  = searchfor_len;
-    return (netsnmp_tdata_row*)CONTAINER_NEXT( table->container, &index );
+    return CONTAINER_NEXT( table->container, &index );
 }
 
-netsnmp_feature_child_of(tdata_row_count, table_tdata_all)
-#ifndef NETSNMP_FEATURE_REMOVE_TDATA_ROW_COUNT
 int
 netsnmp_tdata_row_count(netsnmp_tdata *table)
 {
@@ -588,7 +505,6 @@ netsnmp_tdata_row_count(netsnmp_tdata *table)
         return 0;
     return CONTAINER_SIZE( table->container );
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TDATA_ROW_COUNT */
 
 /* ==================================
  *
@@ -598,8 +514,6 @@ netsnmp_tdata_row_count(netsnmp_tdata *table)
 
 
 /** compare a row with the given index values */
-netsnmp_feature_child_of(tdata_compare_idx, table_tdata_all)
-#ifndef NETSNMP_FEATURE_REMOVE_TDATA_COMPARE_IDX
 int
 netsnmp_tdata_compare_idx(netsnmp_tdata_row     *row,
                           netsnmp_variable_list *indexes)
@@ -611,7 +525,6 @@ netsnmp_tdata_compare_idx(netsnmp_tdata_row     *row,
                       indexes);
     return netsnmp_tdata_compare_oid(row, searchfor, searchfor_len);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TDATA_COMPARE_IDX */
 
 /** compare a row with the given index OID */
 int
@@ -643,10 +556,6 @@ netsnmp_tdata_compare_subtree_oid(netsnmp_tdata_row     *row,
     return snmp_oidtree_compare( index->oids, index->len,
                                  compareto,   compareto_len);
 }
-#else /* NETSNMP_FEATURE_REMOVE_TABLE_TDATA */
-netsnmp_feature_unused(table_tdata);
-#endif /* NETSNMP_FEATURE_REMOVE_TABLE_TDATA */
-
 
 /** @} 
  */
diff --git a/agent/helpers/watcher.c b/agent/helpers/watcher.c
index 9b3933b..b35f550 100644
--- a/agent/helpers/watcher.c
+++ b/agent/helpers/watcher.c
@@ -1,38 +1,19 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
+
+#include <stdlib.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/watcher.h>
-
 #include <net-snmp/agent/instance.h>
 #include <net-snmp/agent/scalar.h>
 
-#include <string.h>
-
-#ifdef HAVE_DMALLOC_H
-static void free_wrapper(void * p)
-{
-    free(p);
-}
-#else
-#define free_wrapper free
-#endif
-
-netsnmp_feature_provide(watcher_all)
-netsnmp_feature_child_of(watcher_all, mib_helpers)
-netsnmp_feature_child_of(watcher_create_info6, watcher_all)
-netsnmp_feature_child_of(watcher_register_timestamp, watcher_all)
-netsnmp_feature_child_of(watcher_ulong_scalar, watcher_all)
-netsnmp_feature_child_of(watcher_read_only_ulong_scalar, watcher_all)
-netsnmp_feature_child_of(watcher_read_only_int_scalar, watcher_all)
-netsnmp_feature_child_of(watcher_long_scalar, watcher_all)
-netsnmp_feature_child_of(watcher_read_only_long_scalar, watcher_all)
-netsnmp_feature_child_of(watcher_int_scalar, watcher_all)
-netsnmp_feature_child_of(read_only_counter32_scalar, watcher_all)
-netsnmp_feature_child_of(watcher_spinlock, watcher_all)
-
 /** @defgroup watcher watcher
  *  Watch a specified variable and process it as an instance or scalar object
  *  @ingroup leaf
@@ -52,57 +33,22 @@ netsnmp_get_watcher_handler(void)
 }
 
 netsnmp_watcher_info *
-netsnmp_init_watcher_info6(netsnmp_watcher_info *winfo,
-                           void *data, size_t size, u_char type,
-                           int flags, size_t max_size, size_t* size_p)
-{
-    winfo->data = data;
-    winfo->data_size = size;
-    winfo->max_size = max_size;
-    winfo->type = type;
-    winfo->flags = flags;
-    winfo->data_size_p = size_p;
-    return winfo;
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_WATCHER_CREATE_INFO6
-netsnmp_watcher_info *
-netsnmp_create_watcher_info6(void *data, size_t size, u_char type,
-                             int flags, size_t max_size, size_t* size_p)
+netsnmp_create_watcher_info(void *data, size_t size, u_char type, int flags)
 {
     netsnmp_watcher_info *winfo = SNMP_MALLOC_TYPEDEF(netsnmp_watcher_info);
-    if (winfo)
-        netsnmp_init_watcher_info6(winfo, data, size, type, flags, max_size,
-                                   size_p);
-    return winfo;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_WATCHER_CREATE_INFO6 */
 
-netsnmp_watcher_info *
-netsnmp_init_watcher_info(netsnmp_watcher_info *winfo,
-                          void *data, size_t size, u_char type, int flags)
-{
-  return netsnmp_init_watcher_info6(winfo, data, size,
-				    type, (flags ? flags : WATCHER_FIXED_SIZE),
-				    size,  /* Probably wrong for non-fixed
-					    * size data */
-				    NULL);
-}
+    winfo->data      = data;
+    winfo->data_size = size;
+    winfo->max_size  = size;	/* Probably wrong for non-fixed size data */
+    winfo->type      = type;
+    if (flags)
+        winfo->flags = flags;
+    else
+        winfo->flags = WATCHER_FIXED_SIZE;
 
-netsnmp_watcher_info *
-netsnmp_create_watcher_info(void *data, size_t size, u_char type, int flags)
-{
-    netsnmp_watcher_info *winfo = SNMP_MALLOC_TYPEDEF(netsnmp_watcher_info);
-    if (winfo)
-        netsnmp_init_watcher_info(winfo, data, size, type, flags);
     return winfo;
 }
 
-/**
- * Register a watched scalar. The caller remains the owner of watchinfo.
- *
- * @see netsnmp_register_watched_instance2()
- */
 int
 netsnmp_register_watched_instance(netsnmp_handler_registration *reginfo,
                                   netsnmp_watcher_info         *watchinfo)
@@ -116,30 +62,6 @@ netsnmp_register_watched_instance(netsnmp_handler_registration *reginfo,
     return netsnmp_register_instance(reginfo);
 }
 
-/**
- * Register a watched scalar. Ownership of watchinfo is transferred to the handler.
- *
- * @see netsnmp_register_watched_instance()
- */
-int
-netsnmp_register_watched_instance2(netsnmp_handler_registration *reginfo,
-				   netsnmp_watcher_info         *watchinfo)
-{
-    netsnmp_mib_handler *whandler;
-
-    whandler         = netsnmp_get_watcher_handler();
-    whandler->myvoid = (void *)watchinfo;
-    netsnmp_owns_watcher_info(whandler);
-
-    netsnmp_inject_handler(reginfo, whandler);
-    return netsnmp_register_instance(reginfo);
-}
-
-/**
- * Register a watched scalar. The caller remains the owner of watchinfo.
- *
- * @see netsnmp_register_watched_scalar2()
- */
 int
 netsnmp_register_watched_scalar(netsnmp_handler_registration *reginfo,
                                   netsnmp_watcher_info         *watchinfo)
@@ -153,87 +75,7 @@ netsnmp_register_watched_scalar(netsnmp_handler_registration *reginfo,
     return netsnmp_register_scalar(reginfo);
 }
 
-/**
- * Register a watched scalar. Ownership of watchinfo is transferred to the handler.
- *
- * @see netsnmp_register_watched_scalar()
- */
-int
-netsnmp_register_watched_scalar2(netsnmp_handler_registration *reginfo,
-                                  netsnmp_watcher_info         *watchinfo)
-{
-    netsnmp_mib_handler *whandler;
-
-    whandler         = netsnmp_get_watcher_handler();
-    whandler->myvoid = (void *)watchinfo;
-    netsnmp_owns_watcher_info(whandler);
-
-    netsnmp_inject_handler(reginfo, whandler);
-    return netsnmp_register_scalar(reginfo);
-}
-
-void
-netsnmp_owns_watcher_info(netsnmp_mib_handler *handler)
-{
-    netsnmp_assert(handler);
-    netsnmp_assert(handler->myvoid);
-    handler->data_clone = (void *(*)(void *))netsnmp_clone_watcher_info;
-    handler->data_free = free;
-}
-
-/** @cond */
-
-NETSNMP_STATIC_INLINE size_t
-get_data_size(const netsnmp_watcher_info* winfo)
-{
-    if (winfo->flags & WATCHER_SIZE_STRLEN)
-        return strlen((const char*)winfo->data);
-    else {
-        size_t res;
-        if (winfo->flags & WATCHER_SIZE_IS_PTR)
-            res = *winfo->data_size_p;
-        else
-            res = winfo->data_size;
-        if (winfo->flags & WATCHER_SIZE_UNIT_OIDS)
-          res *= sizeof(oid);
-        return res;
-    }
-}
-
-NETSNMP_STATIC_INLINE void
-set_data(netsnmp_watcher_info* winfo, void* data, size_t size)
-{
-    memcpy(winfo->data, data, size);
-    if (winfo->flags & WATCHER_SIZE_STRLEN)
-        ((char*)winfo->data)[size] = '\0';
-    else {
-        if (winfo->flags & WATCHER_SIZE_UNIT_OIDS)
-          size /= sizeof(oid);
-        if (winfo->flags & WATCHER_SIZE_IS_PTR)
-            *winfo->data_size_p = size;
-        else
-            winfo->data_size = size;
-    }
-}
 
-typedef struct {
-    size_t size;
-    char data[1];
-} netsnmp_watcher_cache;
-
-NETSNMP_STATIC_INLINE netsnmp_watcher_cache*
-netsnmp_watcher_cache_create(const void* data, size_t size)
-{
-    netsnmp_watcher_cache *res = (netsnmp_watcher_cache*)
-        malloc(sizeof(netsnmp_watcher_cache) + size - 1);
-    if (res) {
-        res->size = size;
-        memcpy(res->data, data, size);
-    }
-    return res;
-}
-
-/** @endcond */
 
 int
 netsnmp_watcher_helper_handler(netsnmp_mib_handler *handler,
@@ -241,15 +83,22 @@ netsnmp_watcher_helper_handler(netsnmp_mib_handler *handler,
                                netsnmp_agent_request_info *reqinfo,
                                netsnmp_request_info *requests)
 {
-    netsnmp_watcher_info  *winfo = (netsnmp_watcher_info *) handler->myvoid;
-    netsnmp_watcher_cache *old_data;
+    netsnmp_watcher_info *winfo = (netsnmp_watcher_info *) handler->myvoid;
+    u_char              *old_data;
+    int                  cmp;
 
     DEBUGMSGTL(("helper:watcher", "Got request:  %d\n", reqinfo->mode));
+    cmp = snmp_oid_compare(requests->requestvb->name,
+                           requests->requestvb->name_length,
+                           reginfo->rootoid, reginfo->rootoid_len);
+
     DEBUGMSGTL(( "helper:watcher", "  oid:"));
     DEBUGMSGOID(("helper:watcher", requests->requestvb->name,
                                    requests->requestvb->name_length));
     DEBUGMSG((   "helper:watcher", "\n"));
 
+
+
     switch (reqinfo->mode) {
         /*
          * data requests 
@@ -258,28 +107,26 @@ netsnmp_watcher_helper_handler(netsnmp_mib_handler *handler,
         snmp_set_var_typed_value(requests->requestvb,
                                  winfo->type,
                                  winfo->data,
-                                 get_data_size(winfo));
+                                 winfo->data_size);
         break;
 
         /*
          * SET requests.  Should only get here if registered RWRITE 
          */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
         if (requests->requestvb->type != winfo->type) {
-            netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_WRONGTYPE);
+            netsnmp_set_request_error(reqinfo, requests,
+                                      SNMP_ERR_WRONGTYPE);
             handler->flags |= MIB_HANDLER_AUTO_NEXT_OVERRIDE_ONCE;
-        } else if (((winfo->flags & WATCHER_MAX_SIZE) &&
-                     requests->requestvb->val_len > winfo->max_size) ||
+        }
+
+        if (((winfo->flags & WATCHER_MAX_SIZE) &&
+               requests->requestvb->val_len >  winfo->max_size) ||
             ((winfo->flags & WATCHER_FIXED_SIZE) &&
-                requests->requestvb->val_len != get_data_size(winfo))) {
-            netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_WRONGLENGTH);
-            handler->flags |= MIB_HANDLER_AUTO_NEXT_OVERRIDE_ONCE;
-        } else if ((winfo->flags & WATCHER_SIZE_STRLEN) &&
-            (memchr(requests->requestvb->val.string, '\0',
-                requests->requestvb->val_len) != NULL)) {
-            netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_WRONGVALUE);
-            handler->flags |= MIB_HANDLER_AUTO_NEXT_OVERRIDE_ONCE;
+               requests->requestvb->val_len != winfo->data_size)) {
+             netsnmp_set_request_error(reqinfo, requests,
+                                      SNMP_ERR_WRONGLENGTH);
+             handler->flags |= MIB_HANDLER_AUTO_NEXT_OVERRIDE_ONCE;
         }
         break;
 
@@ -287,16 +134,16 @@ netsnmp_watcher_helper_handler(netsnmp_mib_handler *handler,
         /*
          * store old info for undo later 
          */
-        old_data =
-            netsnmp_watcher_cache_create(winfo->data, get_data_size(winfo));
+        memdup(&old_data, (u_char *) winfo->data, winfo->data_size);
         if (old_data == NULL) {
             netsnmp_set_request_error(reqinfo, requests,
                                       SNMP_ERR_RESOURCEUNAVAILABLE);
             handler->flags |= MIB_HANDLER_AUTO_NEXT_OVERRIDE_ONCE;
-        } else
-            netsnmp_request_add_list_data(requests,
-                                          netsnmp_create_data_list
-                                          ("watcher", old_data, &free_wrapper));
+            return SNMP_ERR_NOERROR;
+        }
+        netsnmp_request_add_list_data(requests,
+                                      netsnmp_create_data_list
+                                      ("watcher", old_data, free));
         break;
 
     case MODE_SET_FREE:
@@ -309,23 +156,19 @@ netsnmp_watcher_helper_handler(netsnmp_mib_handler *handler,
         /*
          * update current 
          */
-        set_data(winfo, (void *)requests->requestvb->val.string,
-                                requests->requestvb->val_len);
+        memcpy(winfo->data, (void *)requests->requestvb->val.string,
+                                    requests->requestvb->val_len);
         break;
 
     case MODE_SET_UNDO:
-        old_data = (netsnmp_watcher_cache*)netsnmp_request_get_list_data(requests, "watcher");
-        set_data(winfo, old_data->data, old_data->size);
+        memcpy(winfo->data,
+               netsnmp_request_get_list_data(requests, "watcher"),
+               winfo->data_size);
         break;
 
     case MODE_SET_COMMIT:
+        winfo->data_size = requests->requestvb->val_len;
         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-    default:
-        snmp_log(LOG_ERR, "watcher handler called with an unknown mode: %d\n",
-                 reqinfo->mode);
-        return SNMP_ERR_GENERR;
 
     }
 
@@ -364,7 +207,6 @@ netsnmp_watched_timestamp_register(netsnmp_mib_handler *whandler,
     return netsnmp_register_scalar(reginfo);   /* XXX - or instance? */
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_WATCHER_REGISTER_TIMESTAMP
 int
 netsnmp_register_watched_timestamp(netsnmp_handler_registration *reginfo,
                                    marker_t timestamp)
@@ -375,7 +217,6 @@ netsnmp_register_watched_timestamp(netsnmp_handler_registration *reginfo,
 
     return netsnmp_watched_timestamp_register(whandler, reginfo, timestamp);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_WATCHER_REGISTER_TIMESTAMP */
 
 
 int
@@ -386,14 +227,21 @@ netsnmp_watched_timestamp_handler(netsnmp_mib_handler *handler,
 {
     marker_t timestamp = (marker_t) handler->myvoid;
     long     uptime;
+    int      cmp;
 
     DEBUGMSGTL(("helper:watcher:timestamp",
                                "Got request:  %d\n", reqinfo->mode));
+    cmp = snmp_oid_compare(requests->requestvb->name,
+                           requests->requestvb->name_length,
+                           reginfo->rootoid, reginfo->rootoid_len);
+
     DEBUGMSGTL(( "helper:watcher:timestamp", "  oid:"));
     DEBUGMSGOID(("helper:watcher:timestamp", requests->requestvb->name,
                                    requests->requestvb->name_length));
     DEBUGMSG((   "helper:watcher:timestamp", "\n"));
 
+
+
     switch (reqinfo->mode) {
         /*
          * data requests 
@@ -413,13 +261,11 @@ netsnmp_watched_timestamp_handler(netsnmp_mib_handler *handler,
          * Timestamps are inherently Read-Only,
          *  so don't need to support SET requests.
          */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
         netsnmp_set_request_error(reqinfo, requests,
                                   SNMP_ERR_NOTWRITABLE);
         handler->flags |= MIB_HANDLER_AUTO_NEXT_OVERRIDE_ONCE;
         return SNMP_ERR_NOTWRITABLE;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
     }
 
     /* next handler called automatically - 'AUTO_NEXT' */
@@ -433,8 +279,6 @@ netsnmp_watched_timestamp_handler(netsnmp_mib_handler *handler,
      *
      ***************************/
 
-#ifndef NETSNMP_FEATURE_REMOVE_WATCHER_SPINLOCK
-
 netsnmp_mib_handler *
 netsnmp_get_watched_spinlock_handler(void)
 {
@@ -460,7 +304,7 @@ netsnmp_register_watched_spinlock(netsnmp_handler_registration *reginfo,
     winfo            = netsnmp_create_watcher_info((void *)spinlock,
 		           sizeof(int), ASN_INTEGER, WATCHER_FIXED_SIZE);
     netsnmp_inject_handler(reginfo, whandler);
-    return netsnmp_register_watched_scalar2(reginfo, winfo);
+    return netsnmp_register_watched_scalar(reginfo, winfo);
 }
 
 
@@ -472,19 +316,25 @@ netsnmp_watched_spinlock_handler(netsnmp_mib_handler *handler,
 {
     int     *spinlock = (int *) handler->myvoid;
     netsnmp_request_info *request;
+    int      cmp;
 
     DEBUGMSGTL(("helper:watcher:spinlock",
                                "Got request:  %d\n", reqinfo->mode));
+    cmp = snmp_oid_compare(requests->requestvb->name,
+                           requests->requestvb->name_length,
+                           reginfo->rootoid, reginfo->rootoid_len);
+
     DEBUGMSGTL(( "helper:watcher:spinlock", "  oid:"));
     DEBUGMSGOID(("helper:watcher:spinlock", requests->requestvb->name,
                                    requests->requestvb->name_length));
     DEBUGMSG((   "helper:watcher:spinlock", "\n"));
 
+
+
     switch (reqinfo->mode) {
         /*
          * Ensure the assigned value matches the current one
          */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
         for (request=requests; request; request=request->next) {
             if (request->processed)
@@ -505,13 +355,11 @@ netsnmp_watched_spinlock_handler(netsnmp_mib_handler *handler,
     case MODE_SET_COMMIT:
 	(*spinlock)++;
 	break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
     }
 
     /* next handler called automatically - 'AUTO_NEXT' */
     return SNMP_ERR_NOERROR;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_WATCHER_SPINLOCK */
 
     /***************************
      *
@@ -520,142 +368,118 @@ netsnmp_watched_spinlock_handler(netsnmp_mib_handler *handler,
      *
      ***************************/
 
-netsnmp_watcher_info *
-netsnmp_clone_watcher_info(netsnmp_watcher_info *winfo)
-{
-    netsnmp_watcher_info *copy = malloc(sizeof(*copy));
-    if (copy)
-	*copy = *winfo;
-    return copy;
-}
-
-static int
-register_scalar_watcher(const char* name,
-                        const oid* reg_oid, size_t reg_oid_len,
-                        void *data, size_t size, u_char type,
-                        Netsnmp_Node_Handler * subhandler, int mode)
-{
-    netsnmp_handler_registration *reginfo = NULL;
-    netsnmp_mib_handler *whandler = NULL;
-    netsnmp_watcher_info* watchinfo =
-        netsnmp_create_watcher_info(data, size, type, WATCHER_FIXED_SIZE);
-    if (watchinfo)
-        whandler = netsnmp_get_watcher_handler();
-    if (watchinfo && whandler) {
-        whandler->myvoid = watchinfo;
-	netsnmp_owns_watcher_info(whandler);
-        reginfo =
-            netsnmp_create_handler_registration(
-                name, subhandler, reg_oid, reg_oid_len, mode);
-    }
-    if (watchinfo && whandler && reginfo) {
-        netsnmp_inject_handler(reginfo, whandler);
-        return netsnmp_register_scalar(reginfo);
-    }
-    if (whandler)
-        netsnmp_handler_free(whandler);
-    else if (watchinfo)
-        free(watchinfo);
-    return SNMP_ERR_RESOURCEUNAVAILABLE;
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_WATCHER_ULONG_SCALAR
 int
 netsnmp_register_ulong_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               u_long * it,
                               Netsnmp_Node_Handler * subhandler)
 {
-    return register_scalar_watcher(
-        name, reg_oid, reg_oid_len,
-        (void *)it, sizeof( u_long ),
-        ASN_UNSIGNED, subhandler, HANDLER_CAN_RWRITE);
+    return netsnmp_register_watched_scalar(
+               netsnmp_create_handler_registration(
+                   name, subhandler,
+                   reg_oid, reg_oid_len,
+                   HANDLER_CAN_RWRITE ),
+               netsnmp_create_watcher_info(
+                   (void *)it, sizeof( u_long ),
+                   ASN_UNSIGNED, WATCHER_FIXED_SIZE ));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_WATCHER_ULONG_SCALAR */
 
-#ifndef NETSNMP_FEATURE_REMOVE_WATCHER_READ_ONLY_ULONG_SCALAR
 int
 netsnmp_register_read_only_ulong_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               u_long * it,
                               Netsnmp_Node_Handler * subhandler)
 {
-    return register_scalar_watcher(
-        name, reg_oid, reg_oid_len,
-        (void *)it, sizeof( u_long ),
-        ASN_UNSIGNED, subhandler, HANDLER_CAN_RONLY);
+    return netsnmp_register_watched_scalar(
+               netsnmp_create_handler_registration(
+                   name, subhandler,
+                   reg_oid, reg_oid_len,
+                   HANDLER_CAN_RONLY ),
+               netsnmp_create_watcher_info(
+                   (void *)it, sizeof( u_long ),
+                   ASN_UNSIGNED, WATCHER_FIXED_SIZE ));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_WATCHER_READ_ONLY_ULONG_SCALAR */
 
-#ifndef NETSNMP_FEATURE_REMOVE_WATCHER_LONG_SCALAR
 int
 netsnmp_register_long_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               long * it,
                               Netsnmp_Node_Handler * subhandler)
 {
-    return register_scalar_watcher(
-        name, reg_oid, reg_oid_len,
-        (void *)it, sizeof( long ),
-        ASN_INTEGER, subhandler, HANDLER_CAN_RWRITE);
+    return netsnmp_register_watched_scalar(
+               netsnmp_create_handler_registration(
+                   name, subhandler,
+                   reg_oid, reg_oid_len,
+                   HANDLER_CAN_RWRITE ),
+               netsnmp_create_watcher_info(
+                   (void *)it, sizeof( long ),
+                   ASN_INTEGER, WATCHER_FIXED_SIZE ));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_WATCHER_LONG_SCALAR */
 
-#ifndef NETSNMP_FEATURE_REMOVE_WATCHER_READ_ONLY_LONG_SCALAR
 int
 netsnmp_register_read_only_long_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               long * it,
                               Netsnmp_Node_Handler * subhandler)
 {
-    return register_scalar_watcher(
-        name, reg_oid, reg_oid_len,
-        (void *)it, sizeof( long ),
-        ASN_INTEGER, subhandler, HANDLER_CAN_RONLY);
+    return netsnmp_register_watched_scalar(
+               netsnmp_create_handler_registration(
+                   name, subhandler,
+                   reg_oid, reg_oid_len,
+                   HANDLER_CAN_RONLY ),
+               netsnmp_create_watcher_info(
+                   (void *)it, sizeof( long ),
+                   ASN_INTEGER, WATCHER_FIXED_SIZE ));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_WATCHER_READ_ONLY_LONG_SCALAR */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_WATCHER_INT_SCALAR
 int
 netsnmp_register_int_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               int * it,
                               Netsnmp_Node_Handler * subhandler)
 {
-    return register_scalar_watcher(
-        name, reg_oid, reg_oid_len,
-        (void *)it, sizeof( int ),
-        ASN_INTEGER, subhandler, HANDLER_CAN_RWRITE);
+    return netsnmp_register_watched_scalar(
+               netsnmp_create_handler_registration(
+                   name, subhandler,
+                   reg_oid, reg_oid_len,
+                   HANDLER_CAN_RWRITE ),
+               netsnmp_create_watcher_info(
+                   (void *)it, sizeof( int ),
+                   ASN_INTEGER, WATCHER_FIXED_SIZE ));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_WATCHER_INT_SCALAR */
 
-#ifndef NETSNMP_FEATURE_REMOVE_WATCHER_READ_ONLY_INT_SCALAR
 int
 netsnmp_register_read_only_int_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               int * it,
                               Netsnmp_Node_Handler * subhandler)
 {
-    return register_scalar_watcher(
-        name, reg_oid, reg_oid_len,
-        (void *)it, sizeof( int ),
-        ASN_INTEGER, subhandler, HANDLER_CAN_RONLY);
+    return netsnmp_register_watched_scalar(
+               netsnmp_create_handler_registration(
+                   name, subhandler,
+                   reg_oid, reg_oid_len,
+                   HANDLER_CAN_RONLY ),
+               netsnmp_create_watcher_info(
+                   (void *)it, sizeof( int ),
+                   ASN_INTEGER, WATCHER_FIXED_SIZE ));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_WATCHER_READ_ONLY_INT_SCALAR */
 
-#ifndef NETSNMP_FEATURE_REMOVE_READ_ONLY_COUNTER32_SCALAR
+
 int
 netsnmp_register_read_only_counter32_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               u_long * it,
                               Netsnmp_Node_Handler * subhandler)
 {
-    return register_scalar_watcher(
-        name, reg_oid, reg_oid_len,
-        (void *)it, sizeof( u_long ),
-        ASN_COUNTER, subhandler, HANDLER_CAN_RONLY);
+    return netsnmp_register_watched_scalar(
+               netsnmp_create_handler_registration(
+                   name, subhandler,
+                   reg_oid, reg_oid_len,
+                   HANDLER_CAN_RONLY ),
+               netsnmp_create_watcher_info(
+                   (void *)it, sizeof( u_long ),
+                   ASN_COUNTER, WATCHER_FIXED_SIZE ));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_READ_ONLY_COUNTER32_SCALAR */
 /**  @} */
 
diff --git a/agent/kernel.c b/agent/kernel.c
index 200ad0b..4815ed5 100644
--- a/agent/kernel.c
+++ b/agent/kernel.c
@@ -1,19 +1,7 @@
-/***********************************************************************
-   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.
+
+/*
+ *  13 Jun 91  wsak (wk0x at andrew) added mips support
  */
-/***********************************************************************/
 
 #include <net-snmp/net-snmp-config.h>
 
@@ -52,26 +40,18 @@
 
 
 #if HAVE_KVM_H
-kvm_t *kd = NULL;
+kvm_t          *kd;
 
-/**
- * Initialize the support for accessing kernel virtual memory.
- *
- * @return TRUE upon success; FALSE upon failure.
- */
-int
+void
 init_kmem(const char *file)
 {
-    int res = TRUE;
-
 #if HAVE_KVM_OPENFILES
     char            err[4096];
-
     kd = kvm_openfiles(NULL, NULL, NULL, O_RDONLY, err);
-    if (!kd && !netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
-                                       NETSNMP_DS_AGENT_NO_ROOT_ACCESS)) {
+    if (kd == NULL && !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);
-        res = FALSE;
+        exit(1);
     }
 #else
     kd = kvm_open(NULL, NULL, NULL, O_RDONLY, NULL);
@@ -79,26 +59,25 @@ init_kmem(const char *file)
 				       NETSNMP_DS_AGENT_NO_ROOT_ACCESS)) {
         snmp_log(LOG_CRIT, "init_kmem: kvm_open failed: %s\n",
                  strerror(errno));
-        res = FALSE;
+        exit(1);
     }
 #endif                          /* HAVE_KVM_OPENFILES */
-    return res;
 }
 
-/** Reads kernel memory.
- *  Seeks to the specified location in kmem, then
- *  does a read of given amount ob bytes into target buffer.
- *
- * @param off The location to seek.
+
+/*
+ *  klookup:
  *
- * @param target The target buffer to read into.
+ *  It seeks to the location  off  in kmem
+ *  It does a read into  target  of  siz  bytes.
  *
- * @param siz Number of bytes to read.
+ *  Return 0 on failure and 1 on sucess.
  *
- * @return gives 1 on success and 0 on failure.
  */
+
+
 int
-klookup(unsigned long off, void *target, size_t siz)
+klookup(unsigned long off, char *target, int siz)
 {
     int             result;
     if (kd == NULL)
@@ -106,7 +85,7 @@ klookup(unsigned long off, void *target, size_t siz)
     result = kvm_read(kd, off, target, siz);
     if (result != siz) {
 #if HAVE_KVM_OPENFILES
-        snmp_log(LOG_ERR, "kvm_read(*, %lx, %p, %zx) = %d: %s\n", off,
+        snmp_log(LOG_ERR, "kvm_read(*, %lx, %p, %d) = %d: %s\n", off,
                  target, siz, result, kvm_geterr(kd));
 #else
         snmp_log(LOG_ERR, "kvm_read(*, %lx, %p, %d) = %d: ", off, target,
@@ -118,69 +97,53 @@ klookup(unsigned long off, void *target, size_t siz)
     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);
 static int      klread(char *, int);
-int             swap = -1, mem = -1, kmem = -1;
+int             swap, mem, kmem;
 
-/**
- * Initialize the support for accessing kernel virtual memory.
- *
- * @return TRUE upon success; FALSE upon failure.
- */
-int
+void
 init_kmem(const char *file)
 {
     kmem = open(file, O_RDONLY);
     if (kmem < 0 && !netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
 					    NETSNMP_DS_AGENT_NO_ROOT_ACCESS)) {
         snmp_log_perror(file);
+        exit(1);
     }
-    if (kmem >= 0)
-        fcntl(kmem, F_SETFD, 1/*FD_CLOEXEC*/);
+    fcntl(kmem, F_SETFD, 1);
     mem = open("/dev/mem", O_RDONLY);
     if (mem < 0 && !netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
 					   NETSNMP_DS_AGENT_NO_ROOT_ACCESS)) {
         snmp_log_perror("/dev/mem");
+        exit(1);
     }
-    if (mem >= 0)
-        fcntl(mem, F_SETFD, 1/*FD_CLOEXEC*/);
+    fcntl(mem, F_SETFD, 1);
 #ifdef DMEM_LOC
     swap = open(DMEM_LOC, O_RDONLY);
     if (swap < 0 && !netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
 					    NETSNMP_DS_AGENT_NO_ROOT_ACCESS)) {
         snmp_log_perror(DMEM_LOC);
+        exit(1);
     }
-    if (swap >= 0)
-        fcntl(swap, F_SETFD, 1/*FD_CLOEXEC*/);
+    fcntl(swap, F_SETFD, 1);
 #endif
-    return kmem >= 0 && mem >= 0 && swap >= 0;
 }
 
-/** @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));
 }
 
-/** @private
- *  Read from the kernel.
+
+/*
+ *  Read from the kernel 
  */
 static int
 klread(char *buf, int buflen)
@@ -188,20 +151,20 @@ klread(char *buf, int buflen)
     return (read(kmem, buf, buflen));
 }
 
-/** Reads kernel memory.
- *  Seeks to the specified location in kmem, then
- *  does a read of given amount ob bytes into target buffer.
- *
- * @param off The location to seek.
+
+/*
+ *  klookup:
  *
- * @param target The target buffer to read into.
+ *  It seeks to the location  off  in kmem
+ *  It does a read into  target  of  siz  bytes.
  *
- * @param siz Number of bytes to read.
+ *  Return 0 on failure and 1 on sucess.
  *
- * @return gives 1 on success and 0 on failure.
  */
+
+
 int
-klookup(unsigned long off, void *target, size_t siz)
+klookup(unsigned long off, char *target, int siz)
 {
     long            retsiz;
 
@@ -211,6 +174,9 @@ klookup(unsigned long off, void *target, size_t siz)
     if ((retsiz = klseek((off_t) off)) != off) {
         snmp_log(LOG_ERR, "klookup(%lx, %p, %d): ", off, target, siz);
         snmp_log_perror("klseek");
+#ifdef NETSNMP_EXIT_ON_BAD_KLREAD
+        exit(1);
+#endif
         return (0);
     }
     if ((retsiz = klread(target, siz)) != siz) {
@@ -222,33 +188,15 @@ klookup(unsigned long off, void *target, size_t siz)
             snmp_log(LOG_ERR, "klookup(%lx, %p, %d): ", off, target, siz);
             snmp_log_perror("klread");
         }
+#ifdef NETSNMP_EXIT_ON_BAD_KLREAD
+        exit(1);
+#endif
         return (0);
     }
     DEBUGMSGTL(("verbose:kernel:klookup", "klookup(%lx, %p, %d) succeeded", off, target, siz));
     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 131687a..3c939fc 100644
--- a/agent/kernel.h
+++ b/agent/kernel.h
@@ -1,24 +1,7 @@
-/***********************************************************************
-   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);
+extern void     init_kmem(const char *);
+extern int      klookup(unsigned long, char *, int);
 #define NETSNMP_KLOOKUP(x,y,z) klookup((unsigned long) x,y,z)
 #else
 #define NETSNMP_KLOOKUP(x,y,z) (0)
@@ -28,4 +11,3 @@ extern void     free_kmem(void);
 #include <kvm.h>
 extern kvm_t   *kd;
 #endif
-/***********************************************************************/
diff --git a/agent/mib_modules.c b/agent/mib_modules.c
index cde317e..95e4695 100644
--- a/agent/mib_modules.c
+++ b/agent/mib_modules.c
@@ -17,7 +17,11 @@
 #endif
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -29,6 +33,9 @@
 #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>
@@ -42,6 +49,9 @@
 #include <net-snmp/agent/table.h>
 #include <net-snmp/agent/table_iterator.h>
 #include "mib_module_includes.h"
+#ifdef USING_AGENTX_SUBAGENT_MODULE
+#include "mibgroup/agentx/subagent.h"
+#endif
 
 static int need_shutdown = 0;
 
diff --git a/agent/mibgroup/Makefile.depend b/agent/mibgroup/Makefile.depend
index dac364d..e646fc1 100644
--- a/agent/mibgroup/Makefile.depend
+++ b/agent/mibgroup/Makefile.depend
@@ -4,66 +4,59 @@
 ./header_complex.lo: ../../include/net-snmp/system/linux.h
 ./header_complex.lo: ../../include/net-snmp/system/sysv.h
 ./header_complex.lo: ../../include/net-snmp/system/generic.h
+./header_complex.lo: ../../include/net-snmp/machine/generic.h
 ./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
-./header_complex.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./header_complex.lo: ../../include/net-snmp/library/ucd_compat.h
-./header_complex.lo: ../../include/net-snmp/library/mib.h
-./header_complex.lo: ../../include/net-snmp/mib_api.h
-./header_complex.lo: ../../include/net-snmp/library/parse.h
-./header_complex.lo: ../../include/net-snmp/library/oid_stash.h
-./header_complex.lo: ../../include/net-snmp/net-snmp-features.h
 ./header_complex.lo: ../../include/net-snmp/library/snmp_impl.h
 ./header_complex.lo: ../../include/net-snmp/library/snmp.h
 ./header_complex.lo: ../../include/net-snmp/library/snmp-tc.h
-./header_complex.lo: ../../include/net-snmp/library/getopt.h
 ./header_complex.lo: ../../include/net-snmp/utilities.h
+./header_complex.lo: ../../include/net-snmp/library/snmp_client.h
 ./header_complex.lo: ../../include/net-snmp/library/system.h
 ./header_complex.lo: ../../include/net-snmp/library/tools.h
 ./header_complex.lo: ../../include/net-snmp/library/int64.h
 ./header_complex.lo: ../../include/net-snmp/library/mt_support.h
 ./header_complex.lo: ../../include/net-snmp/library/snmp_alarm.h
+./header_complex.lo: ../../include/net-snmp/library/callback.h
 ./header_complex.lo: ../../include/net-snmp/library/data_list.h
+./header_complex.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./header_complex.lo: ../../include/net-snmp/library/container.h
 ./header_complex.lo: ../../include/net-snmp/library/snmp_assert.h
 ./header_complex.lo: ../../include/net-snmp/version.h
+./header_complex.lo: ../../include/net-snmp/session_api.h
+./header_complex.lo: ../../include/net-snmp/library/snmp_transport.h
+./header_complex.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./header_complex.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./header_complex.lo: ../../include/net-snmp/pdu_api.h
+./header_complex.lo: ../../include/net-snmp/mib_api.h
+./header_complex.lo: ../../include/net-snmp/library/mib.h
+./header_complex.lo: ../../include/net-snmp/library/parse.h
+./header_complex.lo: ../../include/net-snmp/varbind_api.h
 ./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
@@ -72,7 +65,6 @@
 ./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
@@ -109,70 +101,69 @@
 ./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.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
-./header_complex.lo: header_complex.h
+./header_complex.lo: ../../include/net-snmp/agent/mfd.h 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/net-snmp-features.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
-./testhandler.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./testhandler.lo: ../../include/net-snmp/library/ucd_compat.h
-./testhandler.lo: ../../include/net-snmp/library/mib.h
-./testhandler.lo: ../../include/net-snmp/mib_api.h
-./testhandler.lo: ../../include/net-snmp/library/parse.h
-./testhandler.lo: ../../include/net-snmp/library/oid_stash.h
 ./testhandler.lo: ../../include/net-snmp/library/snmp_impl.h
 ./testhandler.lo: ../../include/net-snmp/library/snmp.h
 ./testhandler.lo: ../../include/net-snmp/library/snmp-tc.h
-./testhandler.lo: ../../include/net-snmp/library/getopt.h
 ./testhandler.lo: ../../include/net-snmp/utilities.h
+./testhandler.lo: ../../include/net-snmp/library/snmp_client.h
 ./testhandler.lo: ../../include/net-snmp/library/system.h
 ./testhandler.lo: ../../include/net-snmp/library/tools.h
 ./testhandler.lo: ../../include/net-snmp/library/int64.h
 ./testhandler.lo: ../../include/net-snmp/library/mt_support.h
 ./testhandler.lo: ../../include/net-snmp/library/snmp_alarm.h
+./testhandler.lo: ../../include/net-snmp/library/callback.h
 ./testhandler.lo: ../../include/net-snmp/library/data_list.h
+./testhandler.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./testhandler.lo: ../../include/net-snmp/library/container.h
 ./testhandler.lo: ../../include/net-snmp/library/snmp_assert.h
 ./testhandler.lo: ../../include/net-snmp/version.h
+./testhandler.lo: ../../include/net-snmp/session_api.h
+./testhandler.lo: ../../include/net-snmp/library/snmp_transport.h
+./testhandler.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./testhandler.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./testhandler.lo: ../../include/net-snmp/pdu_api.h
+./testhandler.lo: ../../include/net-snmp/mib_api.h
+./testhandler.lo: ../../include/net-snmp/library/mib.h
+./testhandler.lo: ../../include/net-snmp/library/parse.h
+./testhandler.lo: ../../include/net-snmp/varbind_api.h
 ./testhandler.lo: ../../include/net-snmp/config_api.h
 ./testhandler.lo: ../../include/net-snmp/library/read_config.h
 ./testhandler.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -181,7 +172,6 @@
 ./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
@@ -218,69 +208,64 @@
 ./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.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
-./testhandler.lo: testhandler.h
+./testhandler.lo: ../../include/net-snmp/agent/mfd.h testhandler.h
 ./util_funcs.lo: ../../include/net-snmp/net-snmp-config.h
-./util_funcs.lo: ../../include/net-snmp/net-snmp-features.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
-./util_funcs.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./util_funcs.lo: ../../include/net-snmp/library/ucd_compat.h
-./util_funcs.lo: ../../include/net-snmp/library/mib.h
-./util_funcs.lo: ../../include/net-snmp/mib_api.h
-./util_funcs.lo: ../../include/net-snmp/library/parse.h
-./util_funcs.lo: ../../include/net-snmp/library/oid_stash.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmp_impl.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmp.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmp-tc.h
-./util_funcs.lo: ../../include/net-snmp/library/getopt.h
 ./util_funcs.lo: ../../include/net-snmp/utilities.h
+./util_funcs.lo: ../../include/net-snmp/library/snmp_client.h
 ./util_funcs.lo: ../../include/net-snmp/library/system.h
 ./util_funcs.lo: ../../include/net-snmp/library/tools.h
 ./util_funcs.lo: ../../include/net-snmp/library/int64.h
 ./util_funcs.lo: ../../include/net-snmp/library/mt_support.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmp_alarm.h
+./util_funcs.lo: ../../include/net-snmp/library/callback.h
 ./util_funcs.lo: ../../include/net-snmp/library/data_list.h
+./util_funcs.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./util_funcs.lo: ../../include/net-snmp/library/container.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmp_assert.h
 ./util_funcs.lo: ../../include/net-snmp/version.h
+./util_funcs.lo: ../../include/net-snmp/session_api.h
+./util_funcs.lo: ../../include/net-snmp/library/snmp_transport.h
+./util_funcs.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./util_funcs.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./util_funcs.lo: ../../include/net-snmp/pdu_api.h
+./util_funcs.lo: ../../include/net-snmp/mib_api.h
+./util_funcs.lo: ../../include/net-snmp/library/mib.h
+./util_funcs.lo: ../../include/net-snmp/library/parse.h
+./util_funcs.lo: ../../include/net-snmp/varbind_api.h
 ./util_funcs.lo: ../../include/net-snmp/config_api.h
 ./util_funcs.lo: ../../include/net-snmp/library/read_config.h
 ./util_funcs.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -289,7 +274,6 @@
 ./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
@@ -326,74 +310,72 @@
 ./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
-./util_funcs.lo: ../../include/net-snmp/agent/snmp_get_statistic.h struct.h
-./util_funcs.lo: util_funcs.h util_funcs/header_generic.h
-./util_funcs.lo: util_funcs/header_simple_table.h
-./util_funcs.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h utilities/execute.h
+./util_funcs.lo: ../../include/net-snmp/agent/mfd.h struct.h util_funcs.h
+./util_funcs.lo: 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/net-snmp-features.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/net-snmp-features.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
-./agent/extend.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agent/extend.lo: ../../include/net-snmp/library/ucd_compat.h
-./agent/extend.lo: ../../include/net-snmp/library/mib.h
-./agent/extend.lo: ../../include/net-snmp/mib_api.h
-./agent/extend.lo: ../../include/net-snmp/library/parse.h
-./agent/extend.lo: ../../include/net-snmp/library/oid_stash.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmp_impl.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmp.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmp-tc.h
-./agent/extend.lo: ../../include/net-snmp/library/getopt.h
 ./agent/extend.lo: ../../include/net-snmp/utilities.h
+./agent/extend.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/extend.lo: ../../include/net-snmp/library/system.h
 ./agent/extend.lo: ../../include/net-snmp/library/tools.h
 ./agent/extend.lo: ../../include/net-snmp/library/int64.h
 ./agent/extend.lo: ../../include/net-snmp/library/mt_support.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmp_alarm.h
+./agent/extend.lo: ../../include/net-snmp/library/callback.h
 ./agent/extend.lo: ../../include/net-snmp/library/data_list.h
+./agent/extend.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./agent/extend.lo: ../../include/net-snmp/library/container.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmp_assert.h
 ./agent/extend.lo: ../../include/net-snmp/version.h
+./agent/extend.lo: ../../include/net-snmp/session_api.h
+./agent/extend.lo: ../../include/net-snmp/library/snmp_transport.h
+./agent/extend.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agent/extend.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agent/extend.lo: ../../include/net-snmp/pdu_api.h
+./agent/extend.lo: ../../include/net-snmp/mib_api.h
+./agent/extend.lo: ../../include/net-snmp/library/mib.h
+./agent/extend.lo: ../../include/net-snmp/library/parse.h
+./agent/extend.lo: ../../include/net-snmp/varbind_api.h
 ./agent/extend.lo: ../../include/net-snmp/config_api.h
 ./agent/extend.lo: ../../include/net-snmp/library/read_config.h
 ./agent/extend.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -402,7 +384,6 @@
 ./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
@@ -440,70 +421,66 @@
 ./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/extend.lo: agent/extend.h utilities/execute.h struct.h util_funcs.h
+./agent/extend.lo: mibdefs.h
 ./agent/nsCache.lo: ../../include/net-snmp/net-snmp-config.h
-./agent/nsCache.lo: ../../include/net-snmp/net-snmp-features.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
-./agent/nsCache.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agent/nsCache.lo: ../../include/net-snmp/library/ucd_compat.h
-./agent/nsCache.lo: ../../include/net-snmp/library/mib.h
-./agent/nsCache.lo: ../../include/net-snmp/mib_api.h
-./agent/nsCache.lo: ../../include/net-snmp/library/parse.h
-./agent/nsCache.lo: ../../include/net-snmp/library/oid_stash.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmp_impl.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmp.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmp-tc.h
-./agent/nsCache.lo: ../../include/net-snmp/library/getopt.h
 ./agent/nsCache.lo: ../../include/net-snmp/utilities.h
+./agent/nsCache.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/system.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/tools.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/int64.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/mt_support.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmp_alarm.h
+./agent/nsCache.lo: ../../include/net-snmp/library/callback.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/data_list.h
+./agent/nsCache.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./agent/nsCache.lo: ../../include/net-snmp/library/container.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmp_assert.h
 ./agent/nsCache.lo: ../../include/net-snmp/version.h
+./agent/nsCache.lo: ../../include/net-snmp/session_api.h
+./agent/nsCache.lo: ../../include/net-snmp/library/snmp_transport.h
+./agent/nsCache.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agent/nsCache.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agent/nsCache.lo: ../../include/net-snmp/pdu_api.h
+./agent/nsCache.lo: ../../include/net-snmp/mib_api.h
+./agent/nsCache.lo: ../../include/net-snmp/library/mib.h
+./agent/nsCache.lo: ../../include/net-snmp/library/parse.h
+./agent/nsCache.lo: ../../include/net-snmp/varbind_api.h
 ./agent/nsCache.lo: ../../include/net-snmp/config_api.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/read_config.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -512,7 +489,6 @@
 ./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
@@ -549,69 +525,65 @@
 ./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.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
-./agent/nsCache.lo:  agent/nsCache.h
+./agent/nsCache.lo: ../../include/net-snmp/agent/mfd.h agent/nsCache.h
+./agent/nsCache.lo: util_funcs.h struct.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
-./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agent/nsDebug.lo: ../../include/net-snmp/library/ucd_compat.h
-./agent/nsDebug.lo: ../../include/net-snmp/library/mib.h
-./agent/nsDebug.lo: ../../include/net-snmp/mib_api.h
-./agent/nsDebug.lo: ../../include/net-snmp/library/parse.h
-./agent/nsDebug.lo: ../../include/net-snmp/library/oid_stash.h
-./agent/nsDebug.lo: ../../include/net-snmp/net-snmp-features.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_impl.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmp.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmp-tc.h
-./agent/nsDebug.lo: ../../include/net-snmp/library/getopt.h
 ./agent/nsDebug.lo: ../../include/net-snmp/utilities.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/system.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/tools.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/int64.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/mt_support.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_alarm.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/callback.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/data_list.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./agent/nsDebug.lo: ../../include/net-snmp/library/container.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_assert.h
 ./agent/nsDebug.lo: ../../include/net-snmp/version.h
+./agent/nsDebug.lo: ../../include/net-snmp/session_api.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_transport.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agent/nsDebug.lo: ../../include/net-snmp/pdu_api.h
+./agent/nsDebug.lo: ../../include/net-snmp/mib_api.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/mib.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/parse.h
+./agent/nsDebug.lo: ../../include/net-snmp/varbind_api.h
 ./agent/nsDebug.lo: ../../include/net-snmp/config_api.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/read_config.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -620,7 +592,6 @@
 ./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
@@ -657,69 +628,65 @@
 ./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.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
-./agent/nsDebug.lo:  agent/nsDebug.h
+./agent/nsDebug.lo: ../../include/net-snmp/agent/mfd.h agent/nsDebug.h
+./agent/nsDebug.lo: util_funcs.h struct.h
 ./agent/nsLogging.lo: ../../include/net-snmp/net-snmp-config.h
-./agent/nsLogging.lo: ../../include/net-snmp/net-snmp-features.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
-./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agent/nsLogging.lo: ../../include/net-snmp/library/ucd_compat.h
-./agent/nsLogging.lo: ../../include/net-snmp/library/mib.h
-./agent/nsLogging.lo: ../../include/net-snmp/mib_api.h
-./agent/nsLogging.lo: ../../include/net-snmp/library/parse.h
-./agent/nsLogging.lo: ../../include/net-snmp/library/oid_stash.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_impl.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmp.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmp-tc.h
-./agent/nsLogging.lo: ../../include/net-snmp/library/getopt.h
 ./agent/nsLogging.lo: ../../include/net-snmp/utilities.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/system.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/tools.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/int64.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/mt_support.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_alarm.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/callback.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/data_list.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./agent/nsLogging.lo: ../../include/net-snmp/library/container.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_assert.h
 ./agent/nsLogging.lo: ../../include/net-snmp/version.h
+./agent/nsLogging.lo: ../../include/net-snmp/session_api.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_transport.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agent/nsLogging.lo: ../../include/net-snmp/pdu_api.h
+./agent/nsLogging.lo: ../../include/net-snmp/mib_api.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/mib.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/parse.h
+./agent/nsLogging.lo: ../../include/net-snmp/varbind_api.h
 ./agent/nsLogging.lo: ../../include/net-snmp/config_api.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/read_config.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -728,7 +695,6 @@
 ./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
@@ -765,69 +731,65 @@
 ./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.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
-./agent/nsLogging.lo:  agent/nsLogging.h
+./agent/nsLogging.lo: ../../include/net-snmp/agent/mfd.h agent/nsLogging.h
+./agent/nsLogging.lo: util_funcs.h struct.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/net-snmp-config.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/net-snmp-features.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
-./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/library/mib.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/mib_api.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/library/parse.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/library/getopt.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/utilities.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/system.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/tools.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/int64.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/mt_support.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/callback.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/data_list.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/container.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/version.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/session_api.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agent/nsModuleTable.lo: ../../include/net-snmp/pdu_api.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/mib_api.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/mib.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/parse.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/varbind_api.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/config_api.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/read_config.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -836,7 +798,6 @@
 ./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
@@ -874,68 +835,64 @@
 ./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/net-snmp-features.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
-./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agent/nsTransactionTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./agent/nsTransactionTable.lo: ../../include/net-snmp/library/mib.h
-./agent/nsTransactionTable.lo: ../../include/net-snmp/mib_api.h
-./agent/nsTransactionTable.lo: ../../include/net-snmp/library/parse.h
-./agent/nsTransactionTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./agent/nsTransactionTable.lo: ../../include/net-snmp/library/getopt.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/utilities.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/system.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/tools.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/int64.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/mt_support.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/callback.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/data_list.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/container.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/version.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/session_api.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agent/nsTransactionTable.lo: ../../include/net-snmp/pdu_api.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/mib_api.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/mib.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/parse.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/varbind_api.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/config_api.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/read_config.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -944,7 +901,6 @@
 ./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
@@ -982,68 +938,64 @@
 ./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/net-snmp-features.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
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/mib.h
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/mib_api.h
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/parse.h
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/getopt.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/utilities.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/system.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/tools.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/int64.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/mt_support.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/callback.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/data_list.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/container.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/version.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/session_api.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/pdu_api.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/mib_api.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/mib.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/parse.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/varbind_api.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/config_api.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/read_config.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1052,7 +1004,6 @@
 ./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
@@ -1090,68 +1041,64 @@
 ./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/net-snmp-features.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
-./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agentx/agentx_config.lo: ../../include/net-snmp/library/ucd_compat.h
-./agentx/agentx_config.lo: ../../include/net-snmp/library/mib.h
-./agentx/agentx_config.lo: ../../include/net-snmp/mib_api.h
-./agentx/agentx_config.lo: ../../include/net-snmp/library/parse.h
-./agentx/agentx_config.lo: ../../include/net-snmp/library/oid_stash.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_impl.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp-tc.h
-./agentx/agentx_config.lo: ../../include/net-snmp/library/getopt.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/utilities.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_client.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/system.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/tools.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/int64.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/mt_support.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_alarm.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/callback.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/data_list.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/container.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_assert.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/version.h
+./agentx/agentx_config.lo: ../../include/net-snmp/session_api.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_transport.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agentx/agentx_config.lo: ../../include/net-snmp/pdu_api.h
+./agentx/agentx_config.lo: ../../include/net-snmp/mib_api.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/mib.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/parse.h
+./agentx/agentx_config.lo: ../../include/net-snmp/varbind_api.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/config_api.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/read_config.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1160,7 +1107,6 @@
 ./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
@@ -1198,69 +1144,65 @@
 ./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/net-snmp-features.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
-./agentx/client.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agentx/client.lo: ../../include/net-snmp/library/ucd_compat.h
-./agentx/client.lo: ../../include/net-snmp/library/mib.h
-./agentx/client.lo: ../../include/net-snmp/mib_api.h
-./agentx/client.lo: ../../include/net-snmp/library/parse.h
-./agentx/client.lo: ../../include/net-snmp/library/oid_stash.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmp_impl.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmp.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmp-tc.h
-./agentx/client.lo: ../../include/net-snmp/library/getopt.h
 ./agentx/client.lo: ../../include/net-snmp/utilities.h
+./agentx/client.lo: ../../include/net-snmp/library/snmp_client.h
 ./agentx/client.lo: ../../include/net-snmp/library/system.h
 ./agentx/client.lo: ../../include/net-snmp/library/tools.h
 ./agentx/client.lo: ../../include/net-snmp/library/int64.h
 ./agentx/client.lo: ../../include/net-snmp/library/mt_support.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmp_alarm.h
+./agentx/client.lo: ../../include/net-snmp/library/callback.h
 ./agentx/client.lo: ../../include/net-snmp/library/data_list.h
+./agentx/client.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./agentx/client.lo: ../../include/net-snmp/library/container.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmp_assert.h
 ./agentx/client.lo: ../../include/net-snmp/version.h
+./agentx/client.lo: ../../include/net-snmp/session_api.h
+./agentx/client.lo: ../../include/net-snmp/library/snmp_transport.h
+./agentx/client.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agentx/client.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agentx/client.lo: ../../include/net-snmp/pdu_api.h
+./agentx/client.lo: ../../include/net-snmp/mib_api.h
+./agentx/client.lo: ../../include/net-snmp/library/mib.h
+./agentx/client.lo: ../../include/net-snmp/library/parse.h
+./agentx/client.lo: ../../include/net-snmp/varbind_api.h
 ./agentx/client.lo: ../../include/net-snmp/config_api.h
 ./agentx/client.lo: ../../include/net-snmp/library/read_config.h
 ./agentx/client.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1269,7 +1211,6 @@
 ./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
@@ -1307,69 +1248,65 @@
 ./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/net-snmp-features.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
-./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agentx/master_admin.lo: ../../include/net-snmp/library/ucd_compat.h
-./agentx/master_admin.lo: ../../include/net-snmp/library/mib.h
-./agentx/master_admin.lo: ../../include/net-snmp/mib_api.h
-./agentx/master_admin.lo: ../../include/net-snmp/library/parse.h
-./agentx/master_admin.lo: ../../include/net-snmp/library/oid_stash.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_impl.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmp.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmp-tc.h
-./agentx/master_admin.lo: ../../include/net-snmp/library/getopt.h
 ./agentx/master_admin.lo: ../../include/net-snmp/utilities.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_client.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/system.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/tools.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/int64.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/mt_support.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_alarm.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/callback.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/data_list.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./agentx/master_admin.lo: ../../include/net-snmp/library/container.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_assert.h
 ./agentx/master_admin.lo: ../../include/net-snmp/version.h
+./agentx/master_admin.lo: ../../include/net-snmp/session_api.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_transport.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agentx/master_admin.lo: ../../include/net-snmp/pdu_api.h
+./agentx/master_admin.lo: ../../include/net-snmp/mib_api.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/mib.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/parse.h
+./agentx/master_admin.lo: ../../include/net-snmp/varbind_api.h
 ./agentx/master_admin.lo: ../../include/net-snmp/config_api.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/read_config.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1378,7 +1315,6 @@
 ./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
@@ -1416,72 +1352,67 @@
 ./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_admin.lo: mibII/sysORTable.h ./agentx/master.h
 ./agentx/master.lo: ../../include/net-snmp/net-snmp-config.h
-./agentx/master.lo: ../../include/net-snmp/net-snmp-features.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
-./agentx/master.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agentx/master.lo: ../../include/net-snmp/library/ucd_compat.h
-./agentx/master.lo: ../../include/net-snmp/library/mib.h
-./agentx/master.lo: ../../include/net-snmp/mib_api.h
-./agentx/master.lo: ../../include/net-snmp/library/parse.h
-./agentx/master.lo: ../../include/net-snmp/library/oid_stash.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmp_impl.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmp.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmp-tc.h
-./agentx/master.lo: ../../include/net-snmp/library/getopt.h
 ./agentx/master.lo: ../../include/net-snmp/utilities.h
+./agentx/master.lo: ../../include/net-snmp/library/snmp_client.h
 ./agentx/master.lo: ../../include/net-snmp/library/system.h
 ./agentx/master.lo: ../../include/net-snmp/library/tools.h
 ./agentx/master.lo: ../../include/net-snmp/library/int64.h
 ./agentx/master.lo: ../../include/net-snmp/library/mt_support.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmp_alarm.h
+./agentx/master.lo: ../../include/net-snmp/library/callback.h
 ./agentx/master.lo: ../../include/net-snmp/library/data_list.h
+./agentx/master.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./agentx/master.lo: ../../include/net-snmp/library/container.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmp_assert.h
 ./agentx/master.lo: ../../include/net-snmp/version.h
+./agentx/master.lo: ../../include/net-snmp/session_api.h
+./agentx/master.lo: ../../include/net-snmp/library/snmp_transport.h
+./agentx/master.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agentx/master.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agentx/master.lo: ../../include/net-snmp/pdu_api.h
+./agentx/master.lo: ../../include/net-snmp/mib_api.h
+./agentx/master.lo: ../../include/net-snmp/library/mib.h
+./agentx/master.lo: ../../include/net-snmp/library/parse.h
+./agentx/master.lo: ../../include/net-snmp/varbind_api.h
 ./agentx/master.lo: ../../include/net-snmp/config_api.h
 ./agentx/master.lo: ../../include/net-snmp/library/read_config.h
 ./agentx/master.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1490,7 +1421,6 @@
 ./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
@@ -1527,70 +1457,65 @@
 ./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
-./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/master.lo: ../../include/net-snmp/agent/mfd.h ../../agent/snmpd.h
+./agentx/master.lo: agentx/protocol.h 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
-./agentx/protocol.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agentx/protocol.lo: ../../include/net-snmp/library/ucd_compat.h
-./agentx/protocol.lo: ../../include/net-snmp/library/mib.h
-./agentx/protocol.lo: ../../include/net-snmp/mib_api.h
-./agentx/protocol.lo: ../../include/net-snmp/library/parse.h
-./agentx/protocol.lo: ../../include/net-snmp/library/oid_stash.h
-./agentx/protocol.lo: ../../include/net-snmp/net-snmp-features.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmp_impl.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmp.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmp-tc.h
-./agentx/protocol.lo: ../../include/net-snmp/library/getopt.h
 ./agentx/protocol.lo: ../../include/net-snmp/utilities.h
+./agentx/protocol.lo: ../../include/net-snmp/library/snmp_client.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/system.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/tools.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/int64.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/mt_support.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmp_alarm.h
+./agentx/protocol.lo: ../../include/net-snmp/library/callback.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/data_list.h
+./agentx/protocol.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./agentx/protocol.lo: ../../include/net-snmp/library/container.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmp_assert.h
 ./agentx/protocol.lo: ../../include/net-snmp/version.h
+./agentx/protocol.lo: ../../include/net-snmp/session_api.h
+./agentx/protocol.lo: ../../include/net-snmp/library/snmp_transport.h
+./agentx/protocol.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agentx/protocol.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agentx/protocol.lo: ../../include/net-snmp/pdu_api.h
+./agentx/protocol.lo: ../../include/net-snmp/mib_api.h
+./agentx/protocol.lo: ../../include/net-snmp/library/mib.h
+./agentx/protocol.lo: ../../include/net-snmp/library/parse.h
+./agentx/protocol.lo: ../../include/net-snmp/varbind_api.h
 ./agentx/protocol.lo: ../../include/net-snmp/config_api.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/read_config.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1599,69 +1524,65 @@
 ./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/net-snmp-features.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
-./agentx/subagent.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./agentx/subagent.lo: ../../include/net-snmp/library/ucd_compat.h
-./agentx/subagent.lo: ../../include/net-snmp/library/mib.h
-./agentx/subagent.lo: ../../include/net-snmp/mib_api.h
-./agentx/subagent.lo: ../../include/net-snmp/library/parse.h
-./agentx/subagent.lo: ../../include/net-snmp/library/oid_stash.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmp_impl.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmp.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmp-tc.h
-./agentx/subagent.lo: ../../include/net-snmp/library/getopt.h
 ./agentx/subagent.lo: ../../include/net-snmp/utilities.h
+./agentx/subagent.lo: ../../include/net-snmp/library/snmp_client.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/system.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/tools.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/int64.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/mt_support.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmp_alarm.h
+./agentx/subagent.lo: ../../include/net-snmp/library/callback.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/data_list.h
+./agentx/subagent.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./agentx/subagent.lo: ../../include/net-snmp/library/container.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmp_assert.h
 ./agentx/subagent.lo: ../../include/net-snmp/version.h
+./agentx/subagent.lo: ../../include/net-snmp/session_api.h
+./agentx/subagent.lo: ../../include/net-snmp/library/snmp_transport.h
+./agentx/subagent.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./agentx/subagent.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./agentx/subagent.lo: ../../include/net-snmp/pdu_api.h
+./agentx/subagent.lo: ../../include/net-snmp/mib_api.h
+./agentx/subagent.lo: ../../include/net-snmp/library/mib.h
+./agentx/subagent.lo: ../../include/net-snmp/library/parse.h
+./agentx/subagent.lo: ../../include/net-snmp/varbind_api.h
 ./agentx/subagent.lo: ../../include/net-snmp/config_api.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/read_config.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1670,7 +1591,6 @@
 ./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
@@ -1707,182 +1627,68 @@
 ./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
-./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: ../../include/net-snmp/agent/mfd.h ../../agent/snmpd.h
+./agentx/subagent.lo: 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
-./deliver/deliverByNotify.lo: ../../include/net-snmp/net-snmp-config.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/net-snmp-features.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/net-snmp-includes.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/definitions.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/types.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/oid.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/types.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp_api.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/varbind_api.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp_client.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/pdu_api.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/asn1.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/output_api.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp_debug.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp_logging.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/session_api.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/callback.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp_transport.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp_service.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmpUnixDomain.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmpUDPDomain.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmpTCPDomain.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmpIPXDomain.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/ucd_compat.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/mib.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/mib_api.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/parse.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/oid_stash.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp_impl.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp-tc.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/getopt.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/utilities.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/system.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/tools.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/int64.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/mt_support.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp_alarm.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/data_list.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/check_varbind.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/container.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/factory.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/container_binary_array.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/container_list_ssll.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/container_iterator.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/container.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp_assert.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/version.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/config_api.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/read_config.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/default_store.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp_parse_args.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp_enum.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/vacm.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/snmpv3_api.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmpv3.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/transform_oids.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/keytools.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/scapi.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/lcd_time.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmp_secmod.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmptsm.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/snmpusm.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/mib_module_config.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/agent_module_config.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/snmp_agent.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/snmp_vars.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/agent_handler.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/var_struct.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/agent_registry.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/library/fd_event_manager.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/ds_agent.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/agent_read_config.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/agent_trap.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/all_helpers.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/instance.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/baby_steps.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/scalar.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/scalar_group.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/watcher.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/multiplexer.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/null.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/debug_handler.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/cache_handler.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/old_api.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/read_only.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/row_merge.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/serialize.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/mode_end_call.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/table.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/table_data.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/table_dataset.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/table_tdata.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/table_iterator.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/table_container.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/table_array.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/mfd.h
-./deliver/deliverByNotify.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
-./deliver/deliverByNotify.lo: ./deliver/deliverByNotify.h
+./agentx/subagent.lo: mibII/sysORTable.h ./agentx/subagent.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/net-snmp-config.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/net-snmp-features.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
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/mib.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/mib_api.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/parse.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/getopt.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/utilities.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/system.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/tools.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/int64.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/mt_support.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/data_list.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/version.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/session_api.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/pdu_api.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/mib_api.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/mib.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/parse.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/config_api.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/read_config.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1891,7 +1697,6 @@
 ./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
@@ -1929,68 +1734,64 @@
 ./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/net-snmp-features.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
-./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./disman/mteEventTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./disman/mteEventTable.lo: ../../include/net-snmp/library/mib.h
-./disman/mteEventTable.lo: ../../include/net-snmp/mib_api.h
-./disman/mteEventTable.lo: ../../include/net-snmp/library/parse.h
-./disman/mteEventTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./disman/mteEventTable.lo: ../../include/net-snmp/library/getopt.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/utilities.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/system.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/tools.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/int64.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/mt_support.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/data_list.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/version.h
+./disman/mteEventTable.lo: ../../include/net-snmp/session_api.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./disman/mteEventTable.lo: ../../include/net-snmp/pdu_api.h
+./disman/mteEventTable.lo: ../../include/net-snmp/mib_api.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/mib.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/parse.h
+./disman/mteEventTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/config_api.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/read_config.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -1999,7 +1800,6 @@
 ./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
@@ -2037,71 +1837,67 @@
 ./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/net-snmp-features.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
-./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./disman/mteObjectsTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./disman/mteObjectsTable.lo: ../../include/net-snmp/library/mib.h
-./disman/mteObjectsTable.lo: ../../include/net-snmp/mib_api.h
-./disman/mteObjectsTable.lo: ../../include/net-snmp/library/parse.h
-./disman/mteObjectsTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./disman/mteObjectsTable.lo: ../../include/net-snmp/library/getopt.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/utilities.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/system.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/tools.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/int64.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/mt_support.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/data_list.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/version.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/session_api.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./disman/mteObjectsTable.lo: ../../include/net-snmp/pdu_api.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/mib_api.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/mib.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/parse.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/config_api.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/read_config.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2110,7 +1906,6 @@
 ./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
@@ -2148,69 +1943,65 @@
 ./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
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/mib.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/mib_api.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/parse.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/oid_stash.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/net-snmp-features.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/getopt.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/utilities.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/system.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/tools.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/int64.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/mt_support.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/data_list.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/version.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/session_api.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/pdu_api.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/mib_api.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/mib.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/parse.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/config_api.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/read_config.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2219,7 +2010,6 @@
 ./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
@@ -2257,70 +2047,66 @@
 ./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
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/mib.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/mib_api.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/parse.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/oid_stash.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/net-snmp-features.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/getopt.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/utilities.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/system.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/tools.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/int64.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/mt_support.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/data_list.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/version.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/session_api.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/pdu_api.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/mib_api.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/mib.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/parse.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/config_api.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/read_config.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2329,7 +2115,6 @@
 ./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
@@ -2367,70 +2152,66 @@
 ./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
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/mib.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/mib_api.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/parse.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/oid_stash.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/net-snmp-features.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/getopt.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/utilities.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/system.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/tools.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/int64.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/mt_support.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/data_list.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/version.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/session_api.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/pdu_api.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/mib_api.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/mib.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/parse.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/config_api.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/read_config.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2439,7 +2220,6 @@
 ./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
@@ -2477,70 +2257,66 @@
 ./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/net-snmp-features.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
-./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./disman/mteTriggerTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./disman/mteTriggerTable.lo: ../../include/net-snmp/library/mib.h
-./disman/mteTriggerTable.lo: ../../include/net-snmp/mib_api.h
-./disman/mteTriggerTable.lo: ../../include/net-snmp/library/parse.h
-./disman/mteTriggerTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./disman/mteTriggerTable.lo: ../../include/net-snmp/library/getopt.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/utilities.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/system.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/tools.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/int64.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/mt_support.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/data_list.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/version.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/session_api.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./disman/mteTriggerTable.lo: ../../include/net-snmp/pdu_api.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/mib_api.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/mib.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/parse.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/config_api.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/read_config.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2549,7 +2325,6 @@
 ./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
@@ -2587,7 +2362,6 @@
 ./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
@@ -2596,65 +2370,62 @@
 ./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
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/mib.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/mib_api.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/parse.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/oid_stash.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/net-snmp-features.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/getopt.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/utilities.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/system.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/tools.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/int64.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/mt_support.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/data_list.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/version.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/session_api.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/pdu_api.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/mib_api.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/mib.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/parse.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/config_api.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/read_config.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2663,7 +2434,6 @@
 ./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
@@ -2701,70 +2471,66 @@
 ./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
-./examples/data_set.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./examples/data_set.lo: ../../include/net-snmp/library/ucd_compat.h
-./examples/data_set.lo: ../../include/net-snmp/library/mib.h
-./examples/data_set.lo: ../../include/net-snmp/mib_api.h
-./examples/data_set.lo: ../../include/net-snmp/library/parse.h
-./examples/data_set.lo: ../../include/net-snmp/library/oid_stash.h
-./examples/data_set.lo: ../../include/net-snmp/net-snmp-features.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmp_impl.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmp.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmp-tc.h
-./examples/data_set.lo: ../../include/net-snmp/library/getopt.h
 ./examples/data_set.lo: ../../include/net-snmp/utilities.h
+./examples/data_set.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/data_set.lo: ../../include/net-snmp/library/system.h
 ./examples/data_set.lo: ../../include/net-snmp/library/tools.h
 ./examples/data_set.lo: ../../include/net-snmp/library/int64.h
 ./examples/data_set.lo: ../../include/net-snmp/library/mt_support.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmp_alarm.h
+./examples/data_set.lo: ../../include/net-snmp/library/callback.h
 ./examples/data_set.lo: ../../include/net-snmp/library/data_list.h
+./examples/data_set.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./examples/data_set.lo: ../../include/net-snmp/library/container.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmp_assert.h
 ./examples/data_set.lo: ../../include/net-snmp/version.h
+./examples/data_set.lo: ../../include/net-snmp/session_api.h
+./examples/data_set.lo: ../../include/net-snmp/library/snmp_transport.h
+./examples/data_set.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./examples/data_set.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./examples/data_set.lo: ../../include/net-snmp/pdu_api.h
+./examples/data_set.lo: ../../include/net-snmp/mib_api.h
+./examples/data_set.lo: ../../include/net-snmp/library/mib.h
+./examples/data_set.lo: ../../include/net-snmp/library/parse.h
+./examples/data_set.lo: ../../include/net-snmp/varbind_api.h
 ./examples/data_set.lo: ../../include/net-snmp/config_api.h
 ./examples/data_set.lo: ../../include/net-snmp/library/read_config.h
 ./examples/data_set.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2773,7 +2539,6 @@
 ./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
@@ -2811,67 +2576,63 @@
 ./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
-./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./examples/delayed_instance.lo: ../../include/net-snmp/library/ucd_compat.h
-./examples/delayed_instance.lo: ../../include/net-snmp/library/mib.h
-./examples/delayed_instance.lo: ../../include/net-snmp/mib_api.h
-./examples/delayed_instance.lo: ../../include/net-snmp/library/parse.h
-./examples/delayed_instance.lo: ../../include/net-snmp/library/oid_stash.h
-./examples/delayed_instance.lo: ../../include/net-snmp/net-snmp-features.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_impl.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp-tc.h
-./examples/delayed_instance.lo: ../../include/net-snmp/library/getopt.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/utilities.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/system.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/tools.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/int64.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/mt_support.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_alarm.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/callback.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/data_list.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/container.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_assert.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/version.h
+./examples/delayed_instance.lo: ../../include/net-snmp/session_api.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_transport.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./examples/delayed_instance.lo: ../../include/net-snmp/pdu_api.h
+./examples/delayed_instance.lo: ../../include/net-snmp/mib_api.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/mib.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/parse.h
+./examples/delayed_instance.lo: ../../include/net-snmp/varbind_api.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/config_api.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/read_config.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2880,7 +2641,6 @@
 ./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
@@ -2918,68 +2678,64 @@
 ./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
-./examples/example.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./examples/example.lo: ../../include/net-snmp/library/ucd_compat.h
-./examples/example.lo: ../../include/net-snmp/library/mib.h
-./examples/example.lo: ../../include/net-snmp/mib_api.h
-./examples/example.lo: ../../include/net-snmp/library/parse.h
-./examples/example.lo: ../../include/net-snmp/library/oid_stash.h
-./examples/example.lo: ../../include/net-snmp/net-snmp-features.h
 ./examples/example.lo: ../../include/net-snmp/library/snmp_impl.h
 ./examples/example.lo: ../../include/net-snmp/library/snmp.h
 ./examples/example.lo: ../../include/net-snmp/library/snmp-tc.h
-./examples/example.lo: ../../include/net-snmp/library/getopt.h
 ./examples/example.lo: ../../include/net-snmp/utilities.h
+./examples/example.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/example.lo: ../../include/net-snmp/library/system.h
 ./examples/example.lo: ../../include/net-snmp/library/tools.h
 ./examples/example.lo: ../../include/net-snmp/library/int64.h
 ./examples/example.lo: ../../include/net-snmp/library/mt_support.h
 ./examples/example.lo: ../../include/net-snmp/library/snmp_alarm.h
+./examples/example.lo: ../../include/net-snmp/library/callback.h
 ./examples/example.lo: ../../include/net-snmp/library/data_list.h
+./examples/example.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./examples/example.lo: ../../include/net-snmp/library/container.h
 ./examples/example.lo: ../../include/net-snmp/library/snmp_assert.h
 ./examples/example.lo: ../../include/net-snmp/version.h
+./examples/example.lo: ../../include/net-snmp/session_api.h
+./examples/example.lo: ../../include/net-snmp/library/snmp_transport.h
+./examples/example.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./examples/example.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./examples/example.lo: ../../include/net-snmp/pdu_api.h
+./examples/example.lo: ../../include/net-snmp/mib_api.h
+./examples/example.lo: ../../include/net-snmp/library/mib.h
+./examples/example.lo: ../../include/net-snmp/library/parse.h
+./examples/example.lo: ../../include/net-snmp/varbind_api.h
 ./examples/example.lo: ../../include/net-snmp/config_api.h
 ./examples/example.lo: ../../include/net-snmp/library/read_config.h
 ./examples/example.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -2988,7 +2744,6 @@
 ./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
@@ -3025,69 +2780,65 @@
 ./examples/example.lo: ../../include/net-snmp/agent/table_iterator.h
 ./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/example.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h
+./examples/example.lo: struct.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
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/ucd_compat.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/mib.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/mib_api.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/parse.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/oid_stash.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/net-snmp-features.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_impl.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp-tc.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/getopt.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/utilities.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/system.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/tools.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/int64.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/mt_support.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_alarm.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/callback.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/data_list.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/container.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_assert.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/version.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/session_api.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_transport.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/pdu_api.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/mib_api.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/mib.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/parse.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/varbind_api.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/config_api.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/read_config.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -3096,7 +2847,6 @@
 ./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
@@ -3134,69 +2884,65 @@
 ./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/net-snmp-features.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
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/mib.h
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/mib_api.h
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/parse.h
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/getopt.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/utilities.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/system.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/tools.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/int64.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/mt_support.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/callback.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/data_list.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/container.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/version.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/session_api.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/pdu_api.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/mib_api.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/mib.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/parse.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/varbind_api.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/config_api.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/read_config.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -3205,7 +2951,6 @@
 ./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
@@ -3243,72 +2988,68 @@
 ./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/net-snmp-features.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
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/ucd_compat.h
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/mib.h
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/mib_api.h
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/parse.h
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/oid_stash.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_impl.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp-tc.h
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/getopt.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/utilities.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/system.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/tools.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/int64.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/mt_support.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_alarm.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/callback.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/data_list.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/container.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_assert.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/version.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/session_api.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_transport.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/pdu_api.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/mib_api.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/mib.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/parse.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/varbind_api.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/config_api.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/read_config.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -3317,71 +3058,67 @@
 ./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/snmp_impl.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp-tc.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/utilities.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_client.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/system.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/tools.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/int64.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/mt_support.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_alarm.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/callback.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_transport.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/ucd_compat.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/mib.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/mib_api.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/parse.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/oid_stash.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/net-snmp-features.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_impl.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp-tc.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/getopt.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/utilities.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/system.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/tools.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/int64.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/mt_support.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_alarm.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/data_list.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/container.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_assert.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/version.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/session_api.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_transport.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/pdu_api.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/mib_api.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/mib.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/parse.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/varbind_api.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/config_api.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/read_config.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -3390,70 +3127,66 @@
 ./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
-./examples/notification.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./examples/notification.lo: ../../include/net-snmp/library/ucd_compat.h
-./examples/notification.lo: ../../include/net-snmp/library/mib.h
-./examples/notification.lo: ../../include/net-snmp/mib_api.h
-./examples/notification.lo: ../../include/net-snmp/library/parse.h
-./examples/notification.lo: ../../include/net-snmp/library/oid_stash.h
-./examples/notification.lo: ../../include/net-snmp/net-snmp-features.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmp_impl.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmp.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmp-tc.h
-./examples/notification.lo: ../../include/net-snmp/library/getopt.h
 ./examples/notification.lo: ../../include/net-snmp/utilities.h
+./examples/notification.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/notification.lo: ../../include/net-snmp/library/system.h
 ./examples/notification.lo: ../../include/net-snmp/library/tools.h
 ./examples/notification.lo: ../../include/net-snmp/library/int64.h
 ./examples/notification.lo: ../../include/net-snmp/library/mt_support.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmp_alarm.h
+./examples/notification.lo: ../../include/net-snmp/library/callback.h
 ./examples/notification.lo: ../../include/net-snmp/library/data_list.h
+./examples/notification.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./examples/notification.lo: ../../include/net-snmp/library/container.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmp_assert.h
 ./examples/notification.lo: ../../include/net-snmp/version.h
+./examples/notification.lo: ../../include/net-snmp/session_api.h
+./examples/notification.lo: ../../include/net-snmp/library/snmp_transport.h
+./examples/notification.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./examples/notification.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./examples/notification.lo: ../../include/net-snmp/pdu_api.h
+./examples/notification.lo: ../../include/net-snmp/mib_api.h
+./examples/notification.lo: ../../include/net-snmp/library/mib.h
+./examples/notification.lo: ../../include/net-snmp/library/parse.h
+./examples/notification.lo: ../../include/net-snmp/varbind_api.h
 ./examples/notification.lo: ../../include/net-snmp/config_api.h
 ./examples/notification.lo: ../../include/net-snmp/library/read_config.h
 ./examples/notification.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -3462,7 +3195,6 @@
 ./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
@@ -3499,69 +3231,64 @@
 ./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
-./examples/notification.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
-./examples/notification.lo: notification.h
+./examples/notification.lo: ../../include/net-snmp/agent/mfd.h notification.h
 ./examples/scalar_int.lo: ../../include/net-snmp/net-snmp-config.h
-./examples/scalar_int.lo: ../../include/net-snmp/net-snmp-features.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
-./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./examples/scalar_int.lo: ../../include/net-snmp/library/ucd_compat.h
-./examples/scalar_int.lo: ../../include/net-snmp/library/mib.h
-./examples/scalar_int.lo: ../../include/net-snmp/mib_api.h
-./examples/scalar_int.lo: ../../include/net-snmp/library/parse.h
-./examples/scalar_int.lo: ../../include/net-snmp/library/oid_stash.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_impl.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmp.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmp-tc.h
-./examples/scalar_int.lo: ../../include/net-snmp/library/getopt.h
 ./examples/scalar_int.lo: ../../include/net-snmp/utilities.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/system.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/tools.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/int64.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/mt_support.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_alarm.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/callback.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/data_list.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./examples/scalar_int.lo: ../../include/net-snmp/library/container.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_assert.h
 ./examples/scalar_int.lo: ../../include/net-snmp/version.h
+./examples/scalar_int.lo: ../../include/net-snmp/session_api.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_transport.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./examples/scalar_int.lo: ../../include/net-snmp/pdu_api.h
+./examples/scalar_int.lo: ../../include/net-snmp/mib_api.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/mib.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/parse.h
+./examples/scalar_int.lo: ../../include/net-snmp/varbind_api.h
 ./examples/scalar_int.lo: ../../include/net-snmp/config_api.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/read_config.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -3570,7 +3297,6 @@
 ./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
@@ -3608,67 +3334,63 @@
 ./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
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/ucd_compat.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/mib.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/mib_api.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/parse.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/oid_stash.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/net-snmp-features.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_impl.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp-tc.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/getopt.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/utilities.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/system.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/tools.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/int64.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/mt_support.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_alarm.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/callback.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/data_list.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/container.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_assert.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/version.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/session_api.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_transport.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/pdu_api.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/mib_api.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/mib.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/parse.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/varbind_api.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/config_api.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/read_config.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -3677,7 +3399,6 @@
 ./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
@@ -3714,70 +3435,65 @@
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/agent/table_iterator.h
 ./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/ucdDemoPublic.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h
+./examples/ucdDemoPublic.lo: struct.h ./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
-./examples/watched.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./examples/watched.lo: ../../include/net-snmp/library/ucd_compat.h
-./examples/watched.lo: ../../include/net-snmp/library/mib.h
-./examples/watched.lo: ../../include/net-snmp/mib_api.h
-./examples/watched.lo: ../../include/net-snmp/library/parse.h
-./examples/watched.lo: ../../include/net-snmp/library/oid_stash.h
-./examples/watched.lo: ../../include/net-snmp/net-snmp-features.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmp_impl.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmp.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmp-tc.h
-./examples/watched.lo: ../../include/net-snmp/library/getopt.h
 ./examples/watched.lo: ../../include/net-snmp/utilities.h
+./examples/watched.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/watched.lo: ../../include/net-snmp/library/system.h
 ./examples/watched.lo: ../../include/net-snmp/library/tools.h
 ./examples/watched.lo: ../../include/net-snmp/library/int64.h
 ./examples/watched.lo: ../../include/net-snmp/library/mt_support.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmp_alarm.h
+./examples/watched.lo: ../../include/net-snmp/library/callback.h
 ./examples/watched.lo: ../../include/net-snmp/library/data_list.h
+./examples/watched.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./examples/watched.lo: ../../include/net-snmp/library/container.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmp_assert.h
 ./examples/watched.lo: ../../include/net-snmp/version.h
+./examples/watched.lo: ../../include/net-snmp/session_api.h
+./examples/watched.lo: ../../include/net-snmp/library/snmp_transport.h
+./examples/watched.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./examples/watched.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./examples/watched.lo: ../../include/net-snmp/pdu_api.h
+./examples/watched.lo: ../../include/net-snmp/mib_api.h
+./examples/watched.lo: ../../include/net-snmp/library/mib.h
+./examples/watched.lo: ../../include/net-snmp/library/parse.h
+./examples/watched.lo: ../../include/net-snmp/varbind_api.h
 ./examples/watched.lo: ../../include/net-snmp/config_api.h
 ./examples/watched.lo: ../../include/net-snmp/library/read_config.h
 ./examples/watched.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -3786,7 +3502,6 @@
 ./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
@@ -3824,68 +3539,64 @@
 ./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:  host_res.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: ../../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
-./host/hr_device.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hr_device.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hr_device.lo: ../../include/net-snmp/library/mib.h
-./host/hr_device.lo: ../../include/net-snmp/mib_api.h
-./host/hr_device.lo: ../../include/net-snmp/library/parse.h
-./host/hr_device.lo: ../../include/net-snmp/library/oid_stash.h
-./host/hr_device.lo: ../../include/net-snmp/net-snmp-features.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmp_impl.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmp.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hr_device.lo: ../../include/net-snmp/library/getopt.h
 ./host/hr_device.lo: ../../include/net-snmp/utilities.h
+./host/hr_device.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_device.lo: ../../include/net-snmp/library/system.h
 ./host/hr_device.lo: ../../include/net-snmp/library/tools.h
 ./host/hr_device.lo: ../../include/net-snmp/library/int64.h
 ./host/hr_device.lo: ../../include/net-snmp/library/mt_support.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmp_alarm.h
+./host/hr_device.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_device.lo: ../../include/net-snmp/library/data_list.h
+./host/hr_device.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./host/hr_device.lo: ../../include/net-snmp/library/container.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmp_assert.h
 ./host/hr_device.lo: ../../include/net-snmp/version.h
+./host/hr_device.lo: ../../include/net-snmp/session_api.h
+./host/hr_device.lo: ../../include/net-snmp/library/snmp_transport.h
+./host/hr_device.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./host/hr_device.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./host/hr_device.lo: ../../include/net-snmp/pdu_api.h
+./host/hr_device.lo: ../../include/net-snmp/mib_api.h
+./host/hr_device.lo: ../../include/net-snmp/library/mib.h
+./host/hr_device.lo: ../../include/net-snmp/library/parse.h
+./host/hr_device.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_device.lo: ../../include/net-snmp/config_api.h
 ./host/hr_device.lo: ../../include/net-snmp/library/read_config.h
 ./host/hr_device.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -3894,7 +3605,6 @@
 ./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
@@ -3902,67 +3612,64 @@
 ./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_res.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_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
-./host/hr_disk.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hr_disk.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hr_disk.lo: ../../include/net-snmp/library/mib.h
-./host/hr_disk.lo: ../../include/net-snmp/mib_api.h
-./host/hr_disk.lo: ../../include/net-snmp/library/parse.h
-./host/hr_disk.lo: ../../include/net-snmp/library/oid_stash.h
-./host/hr_disk.lo: ../../include/net-snmp/net-snmp-features.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmp_impl.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmp.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hr_disk.lo: ../../include/net-snmp/library/getopt.h
 ./host/hr_disk.lo: ../../include/net-snmp/utilities.h
+./host/hr_disk.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/system.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/tools.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/int64.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/mt_support.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmp_alarm.h
+./host/hr_disk.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/data_list.h
+./host/hr_disk.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./host/hr_disk.lo: ../../include/net-snmp/library/container.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmp_assert.h
 ./host/hr_disk.lo: ../../include/net-snmp/version.h
+./host/hr_disk.lo: ../../include/net-snmp/session_api.h
+./host/hr_disk.lo: ../../include/net-snmp/library/snmp_transport.h
+./host/hr_disk.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./host/hr_disk.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./host/hr_disk.lo: ../../include/net-snmp/pdu_api.h
+./host/hr_disk.lo: ../../include/net-snmp/mib_api.h
+./host/hr_disk.lo: ../../include/net-snmp/library/mib.h
+./host/hr_disk.lo: ../../include/net-snmp/library/parse.h
+./host/hr_disk.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_disk.lo: ../../include/net-snmp/config_api.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/read_config.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -3971,7 +3678,6 @@
 ./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
@@ -3979,68 +3685,65 @@
 ./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/net-snmp-features.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
-./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hr_filesys.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hr_filesys.lo: ../../include/net-snmp/library/mib.h
-./host/hr_filesys.lo: ../../include/net-snmp/mib_api.h
-./host/hr_filesys.lo: ../../include/net-snmp/library/parse.h
-./host/hr_filesys.lo: ../../include/net-snmp/library/oid_stash.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_impl.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmp.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hr_filesys.lo: ../../include/net-snmp/library/getopt.h
 ./host/hr_filesys.lo: ../../include/net-snmp/utilities.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/system.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/tools.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/int64.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/mt_support.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_alarm.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/data_list.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./host/hr_filesys.lo: ../../include/net-snmp/library/container.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_assert.h
 ./host/hr_filesys.lo: ../../include/net-snmp/version.h
+./host/hr_filesys.lo: ../../include/net-snmp/session_api.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_transport.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./host/hr_filesys.lo: ../../include/net-snmp/pdu_api.h
+./host/hr_filesys.lo: ../../include/net-snmp/mib_api.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/mib.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/parse.h
+./host/hr_filesys.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_filesys.lo: ../../include/net-snmp/config_api.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/read_config.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -4049,7 +3752,6 @@
 ./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
@@ -4087,292 +3789,66 @@
 ./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_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/net-snmp-features.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
-./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/mib.h
-./host/hrh_filesys.lo: ../../include/net-snmp/mib_api.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/parse.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/oid_stash.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_impl.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/getopt.h
-./host/hrh_filesys.lo: ../../include/net-snmp/utilities.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/system.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/tools.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/int64.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/mt_support.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_alarm.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./host/hrh_filesys.lo: ../../include/net-snmp/library/container.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_assert.h
-./host/hrh_filesys.lo: ../../include/net-snmp/version.h
-./host/hrh_filesys.lo: ../../include/net-snmp/config_api.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/read_config.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpv3.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/transform_oids.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/keytools.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/scapi.h
-./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
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/agent_module_config.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/snmp_agent.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/snmp_vars.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/agent_handler.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/var_struct.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/agent_registry.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/fd_event_manager.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/ds_agent.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/agent_read_config.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/agent_trap.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/all_helpers.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/instance.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/baby_steps.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/scalar.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/scalar_group.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/watcher.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/multiplexer.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/null.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/debug_handler.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/cache_handler.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/old_api.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/read_only.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/row_merge.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/serialize.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/mode_end_call.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/table.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/table_data.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/table_dataset.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/table_tdata.h
-./host/hrh_filesys.lo: ../../include/net-snmp/agent/table_iterator.h
-./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_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/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
-./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/mib.h
-./host/hrh_storage.lo: ../../include/net-snmp/mib_api.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/parse.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/oid_stash.h
-./host/hrh_storage.lo: ../../include/net-snmp/net-snmp-features.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_impl.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/snmp.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/getopt.h
-./host/hrh_storage.lo: ../../include/net-snmp/utilities.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/system.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/tools.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/int64.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/mt_support.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_alarm.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./host/hrh_storage.lo: ../../include/net-snmp/library/container.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_assert.h
-./host/hrh_storage.lo: ../../include/net-snmp/version.h
-./host/hrh_storage.lo: ../../include/net-snmp/config_api.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/read_config.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/snmpv3.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/transform_oids.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/keytools.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/scapi.h
-./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
-./host/hrh_storage.lo: ../../include/net-snmp/agent/agent_module_config.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/snmp_agent.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/snmp_vars.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/agent_handler.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/var_struct.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/agent_registry.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/fd_event_manager.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/ds_agent.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/agent_read_config.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/agent_trap.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/all_helpers.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/instance.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/baby_steps.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/scalar.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/scalar_group.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/watcher.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/multiplexer.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/null.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/debug_handler.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/cache_handler.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/old_api.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/read_only.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/row_merge.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/serialize.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/mode_end_call.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/table.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/table_data.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/table_dataset.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/table_tdata.h
-./host/hrh_storage.lo: ../../include/net-snmp/agent/table_iterator.h
-./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.h
-./host/hrh_storage.lo: ./host/hr_disk.h 
+./host/hr_filesys.lo: host_res.h  ./host/hr_filesys.h
+./host/hr_filesys.lo: ./host/hr_storage.h 
 ./host/hr_network.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_network.lo: ../../include/net-snmp/net-snmp-features.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
-./host/hr_network.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hr_network.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hr_network.lo: ../../include/net-snmp/library/mib.h
-./host/hr_network.lo: ../../include/net-snmp/mib_api.h
-./host/hr_network.lo: ../../include/net-snmp/library/parse.h
-./host/hr_network.lo: ../../include/net-snmp/library/oid_stash.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmp_impl.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmp.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hr_network.lo: ../../include/net-snmp/library/getopt.h
 ./host/hr_network.lo: ../../include/net-snmp/utilities.h
+./host/hr_network.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_network.lo: ../../include/net-snmp/library/system.h
 ./host/hr_network.lo: ../../include/net-snmp/library/tools.h
 ./host/hr_network.lo: ../../include/net-snmp/library/int64.h
 ./host/hr_network.lo: ../../include/net-snmp/library/mt_support.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmp_alarm.h
+./host/hr_network.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_network.lo: ../../include/net-snmp/library/data_list.h
+./host/hr_network.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./host/hr_network.lo: ../../include/net-snmp/library/container.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmp_assert.h
 ./host/hr_network.lo: ../../include/net-snmp/version.h
+./host/hr_network.lo: ../../include/net-snmp/session_api.h
+./host/hr_network.lo: ../../include/net-snmp/library/snmp_transport.h
+./host/hr_network.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./host/hr_network.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./host/hr_network.lo: ../../include/net-snmp/pdu_api.h
+./host/hr_network.lo: ../../include/net-snmp/mib_api.h
+./host/hr_network.lo: ../../include/net-snmp/library/mib.h
+./host/hr_network.lo: ../../include/net-snmp/library/parse.h
+./host/hr_network.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_network.lo: ../../include/net-snmp/config_api.h
 ./host/hr_network.lo: ../../include/net-snmp/library/read_config.h
 ./host/hr_network.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -4381,7 +3857,6 @@
 ./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
@@ -4419,70 +3894,66 @@
 ./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_res.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-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
-./host/hr_other.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hr_other.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hr_other.lo: ../../include/net-snmp/library/mib.h
-./host/hr_other.lo: ../../include/net-snmp/mib_api.h
-./host/hr_other.lo: ../../include/net-snmp/library/parse.h
-./host/hr_other.lo: ../../include/net-snmp/library/oid_stash.h
-./host/hr_other.lo: ../../include/net-snmp/net-snmp-features.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmp_impl.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmp.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hr_other.lo: ../../include/net-snmp/library/getopt.h
 ./host/hr_other.lo: ../../include/net-snmp/utilities.h
+./host/hr_other.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_other.lo: ../../include/net-snmp/library/system.h
 ./host/hr_other.lo: ../../include/net-snmp/library/tools.h
 ./host/hr_other.lo: ../../include/net-snmp/library/int64.h
 ./host/hr_other.lo: ../../include/net-snmp/library/mt_support.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmp_alarm.h
+./host/hr_other.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_other.lo: ../../include/net-snmp/library/data_list.h
+./host/hr_other.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./host/hr_other.lo: ../../include/net-snmp/library/container.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmp_assert.h
 ./host/hr_other.lo: ../../include/net-snmp/version.h
+./host/hr_other.lo: ../../include/net-snmp/session_api.h
+./host/hr_other.lo: ../../include/net-snmp/library/snmp_transport.h
+./host/hr_other.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./host/hr_other.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./host/hr_other.lo: ../../include/net-snmp/pdu_api.h
+./host/hr_other.lo: ../../include/net-snmp/mib_api.h
+./host/hr_other.lo: ../../include/net-snmp/library/mib.h
+./host/hr_other.lo: ../../include/net-snmp/library/parse.h
+./host/hr_other.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_other.lo: ../../include/net-snmp/config_api.h
 ./host/hr_other.lo: ../../include/net-snmp/library/read_config.h
 ./host/hr_other.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -4491,7 +3962,6 @@
 ./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
@@ -4499,68 +3969,65 @@
 ./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
-./host/hr_partition.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hr_partition.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hr_partition.lo: ../../include/net-snmp/library/mib.h
-./host/hr_partition.lo: ../../include/net-snmp/mib_api.h
-./host/hr_partition.lo: ../../include/net-snmp/library/parse.h
-./host/hr_partition.lo: ../../include/net-snmp/library/oid_stash.h
-./host/hr_partition.lo: ../../include/net-snmp/net-snmp-features.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmp_impl.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmp.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hr_partition.lo: ../../include/net-snmp/library/getopt.h
 ./host/hr_partition.lo: ../../include/net-snmp/utilities.h
+./host/hr_partition.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/system.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/tools.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/int64.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/mt_support.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmp_alarm.h
+./host/hr_partition.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/data_list.h
+./host/hr_partition.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./host/hr_partition.lo: ../../include/net-snmp/library/container.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmp_assert.h
 ./host/hr_partition.lo: ../../include/net-snmp/version.h
+./host/hr_partition.lo: ../../include/net-snmp/session_api.h
+./host/hr_partition.lo: ../../include/net-snmp/library/snmp_transport.h
+./host/hr_partition.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./host/hr_partition.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./host/hr_partition.lo: ../../include/net-snmp/pdu_api.h
+./host/hr_partition.lo: ../../include/net-snmp/mib_api.h
+./host/hr_partition.lo: ../../include/net-snmp/library/mib.h
+./host/hr_partition.lo: ../../include/net-snmp/library/parse.h
+./host/hr_partition.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_partition.lo: ../../include/net-snmp/config_api.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/read_config.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -4569,7 +4036,6 @@
 ./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
@@ -4577,69 +4043,66 @@
 ./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_filesys.h
-./host/hr_partition.lo: ./host/hr_disk.h 
+./host/hr_partition.lo:  ./host/hr_partition.h
+./host/hr_partition.lo: ./host/hr_filesys.h ./host/hr_disk.h
 ./host/hr_print.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_print.lo:  host_res.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: ../../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
-./host/hr_print.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hr_print.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hr_print.lo: ../../include/net-snmp/library/mib.h
-./host/hr_print.lo: ../../include/net-snmp/mib_api.h
-./host/hr_print.lo: ../../include/net-snmp/library/parse.h
-./host/hr_print.lo: ../../include/net-snmp/library/oid_stash.h
-./host/hr_print.lo: ../../include/net-snmp/net-snmp-features.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmp_impl.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmp.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hr_print.lo: ../../include/net-snmp/library/getopt.h
 ./host/hr_print.lo: ../../include/net-snmp/utilities.h
+./host/hr_print.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_print.lo: ../../include/net-snmp/library/system.h
 ./host/hr_print.lo: ../../include/net-snmp/library/tools.h
 ./host/hr_print.lo: ../../include/net-snmp/library/int64.h
 ./host/hr_print.lo: ../../include/net-snmp/library/mt_support.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmp_alarm.h
+./host/hr_print.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_print.lo: ../../include/net-snmp/library/data_list.h
+./host/hr_print.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./host/hr_print.lo: ../../include/net-snmp/library/container.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmp_assert.h
 ./host/hr_print.lo: ../../include/net-snmp/version.h
+./host/hr_print.lo: ../../include/net-snmp/session_api.h
+./host/hr_print.lo: ../../include/net-snmp/library/snmp_transport.h
+./host/hr_print.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./host/hr_print.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./host/hr_print.lo: ../../include/net-snmp/pdu_api.h
+./host/hr_print.lo: ../../include/net-snmp/mib_api.h
+./host/hr_print.lo: ../../include/net-snmp/library/mib.h
+./host/hr_print.lo: ../../include/net-snmp/library/parse.h
+./host/hr_print.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_print.lo: ../../include/net-snmp/config_api.h
 ./host/hr_print.lo: ../../include/net-snmp/library/read_config.h
 ./host/hr_print.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -4648,7 +4111,6 @@
 ./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
@@ -4656,70 +4118,65 @@
 ./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 util_funcs.h
-./host/hr_print.lo: util_funcs/header_generic.h
-./host/hr_print.lo: util_funcs/header_simple_table.h
-./host/hr_print.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h
+./host/hr_print.lo:  ./host/hr_print.h struct.h
+./host/hr_print.lo: util_funcs.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
-./host/hr_proc.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hr_proc.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hr_proc.lo: ../../include/net-snmp/library/mib.h
-./host/hr_proc.lo: ../../include/net-snmp/mib_api.h
-./host/hr_proc.lo: ../../include/net-snmp/library/parse.h
-./host/hr_proc.lo: ../../include/net-snmp/library/oid_stash.h
-./host/hr_proc.lo: ../../include/net-snmp/net-snmp-features.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmp_impl.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmp.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hr_proc.lo: ../../include/net-snmp/library/getopt.h
 ./host/hr_proc.lo: ../../include/net-snmp/utilities.h
+./host/hr_proc.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/system.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/tools.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/int64.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/mt_support.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmp_alarm.h
+./host/hr_proc.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/data_list.h
+./host/hr_proc.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./host/hr_proc.lo: ../../include/net-snmp/library/container.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmp_assert.h
 ./host/hr_proc.lo: ../../include/net-snmp/version.h
+./host/hr_proc.lo: ../../include/net-snmp/session_api.h
+./host/hr_proc.lo: ../../include/net-snmp/library/snmp_transport.h
+./host/hr_proc.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./host/hr_proc.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./host/hr_proc.lo: ../../include/net-snmp/pdu_api.h
+./host/hr_proc.lo: ../../include/net-snmp/mib_api.h
+./host/hr_proc.lo: ../../include/net-snmp/library/mib.h
+./host/hr_proc.lo: ../../include/net-snmp/library/parse.h
+./host/hr_proc.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_proc.lo: ../../include/net-snmp/config_api.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/read_config.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -4728,7 +4185,6 @@
 ./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
@@ -4765,73 +4221,69 @@
 ./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: ../../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/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/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
-./host/hr_storage.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hr_storage.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hr_storage.lo: ../../include/net-snmp/library/mib.h
-./host/hr_storage.lo: ../../include/net-snmp/mib_api.h
-./host/hr_storage.lo: ../../include/net-snmp/library/parse.h
-./host/hr_storage.lo: ../../include/net-snmp/library/oid_stash.h
-./host/hr_storage.lo: ../../include/net-snmp/net-snmp-features.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmp_impl.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmp.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hr_storage.lo: ../../include/net-snmp/library/getopt.h
 ./host/hr_storage.lo: ../../include/net-snmp/utilities.h
+./host/hr_storage.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/system.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/tools.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/int64.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/mt_support.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmp_alarm.h
+./host/hr_storage.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/data_list.h
+./host/hr_storage.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./host/hr_storage.lo: ../../include/net-snmp/library/container.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmp_assert.h
 ./host/hr_storage.lo: ../../include/net-snmp/version.h
+./host/hr_storage.lo: ../../include/net-snmp/session_api.h
+./host/hr_storage.lo: ../../include/net-snmp/library/snmp_transport.h
+./host/hr_storage.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./host/hr_storage.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./host/hr_storage.lo: ../../include/net-snmp/pdu_api.h
+./host/hr_storage.lo: ../../include/net-snmp/mib_api.h
+./host/hr_storage.lo: ../../include/net-snmp/library/mib.h
+./host/hr_storage.lo: ../../include/net-snmp/library/parse.h
+./host/hr_storage.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_storage.lo: ../../include/net-snmp/config_api.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/read_config.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -4840,7 +4292,6 @@
 ./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
@@ -4848,7 +4299,8 @@
 ./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_filesys.h
+./host/hr_storage.lo:  ./host/hr_storage.h
+./host/hr_storage.lo: ./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
@@ -4880,178 +4332,65 @@
 ./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/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
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/mib.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/mib_api.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/parse.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/oid_stash.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/net-snmp-features.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_impl.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/getopt.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/utilities.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/system.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/tools.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/int64.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/mt_support.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_alarm.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/container.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_assert.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/version.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/config_api.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/read_config.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpv3.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/transform_oids.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/keytools.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/scapi.h
-./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
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/agent_module_config.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/snmp_agent.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/snmp_vars.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/agent_handler.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/var_struct.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/agent_registry.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/fd_event_manager.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/ds_agent.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/agent_read_config.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/agent_trap.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/all_helpers.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/instance.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/baby_steps.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/scalar.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/scalar_group.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/watcher.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/multiplexer.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/null.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/debug_handler.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/cache_handler.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/old_api.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/read_only.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/row_merge.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/serialize.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/mode_end_call.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/table.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/table_data.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/table_dataset.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/table_tdata.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/table_iterator.h
-./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/net-snmp-features.h
-./host/hr_swinst.lo:   host_res.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: ../../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
-./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hr_swinst.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hr_swinst.lo: ../../include/net-snmp/library/mib.h
-./host/hr_swinst.lo: ../../include/net-snmp/mib_api.h
-./host/hr_swinst.lo: ../../include/net-snmp/library/parse.h
-./host/hr_swinst.lo: ../../include/net-snmp/library/oid_stash.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_impl.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmp.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hr_swinst.lo: ../../include/net-snmp/library/getopt.h
 ./host/hr_swinst.lo: ../../include/net-snmp/utilities.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/system.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/tools.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/int64.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/mt_support.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_alarm.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/data_list.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./host/hr_swinst.lo: ../../include/net-snmp/library/container.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_assert.h
 ./host/hr_swinst.lo: ../../include/net-snmp/version.h
+./host/hr_swinst.lo: ../../include/net-snmp/session_api.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_transport.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./host/hr_swinst.lo: ../../include/net-snmp/pdu_api.h
+./host/hr_swinst.lo: ../../include/net-snmp/mib_api.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/mib.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/parse.h
+./host/hr_swinst.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_swinst.lo: ../../include/net-snmp/config_api.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/read_config.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -5060,7 +4399,6 @@
 ./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
@@ -5068,53 +4406,34 @@
 ./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
-./host/hr_swrun.lo: ../../include/net-snmp/varbind_api.h
-./host/hr_swrun.lo: ../../include/net-snmp/library/snmp_client.h
-./host/hr_swrun.lo: ../../include/net-snmp/pdu_api.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/asn1.h
-./host/hr_swrun.lo: ../../include/net-snmp/session_api.h
-./host/hr_swrun.lo: ../../include/net-snmp/library/callback.h
-./host/hr_swrun.lo: ../../include/net-snmp/library/snmp_transport.h
-./host/hr_swrun.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hr_swrun.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hr_swrun.lo: ../../include/net-snmp/library/mib.h
-./host/hr_swrun.lo: ../../include/net-snmp/mib_api.h
-./host/hr_swrun.lo: ../../include/net-snmp/library/parse.h
-./host/hr_swrun.lo: ../../include/net-snmp/library/oid_stash.h
-./host/hr_swrun.lo: ../../include/net-snmp/net-snmp-features.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmp_impl.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmp.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmp-tc.h
+./host/hr_swrun.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_swrun.lo:  host_res.h
 ./host/hr_swrun.lo: ../../include/net-snmp/net-snmp-includes.h
-./host/hr_swrun.lo: ../../include/net-snmp/library/getopt.h
 ./host/hr_swrun.lo: ../../include/net-snmp/utilities.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/system.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/tools.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/int64.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/mt_support.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmp_alarm.h
+./host/hr_swrun.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/data_list.h
+./host/hr_swrun.lo: ../../include/net-snmp/library/oid_stash.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/container.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/factory.h
@@ -5124,6 +4443,22 @@
 ./host/hr_swrun.lo: ../../include/net-snmp/library/container.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmp_assert.h
 ./host/hr_swrun.lo: ../../include/net-snmp/version.h
+./host/hr_swrun.lo: ../../include/net-snmp/session_api.h
+./host/hr_swrun.lo: ../../include/net-snmp/library/snmp_transport.h
+./host/hr_swrun.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./host/hr_swrun.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./host/hr_swrun.lo: ../../include/net-snmp/pdu_api.h
+./host/hr_swrun.lo: ../../include/net-snmp/mib_api.h
+./host/hr_swrun.lo: ../../include/net-snmp/library/mib.h
+./host/hr_swrun.lo: ../../include/net-snmp/library/parse.h
+./host/hr_swrun.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_swrun.lo: ../../include/net-snmp/config_api.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/read_config.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/default_store.h
@@ -5138,7 +4473,6 @@
 ./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
@@ -5146,288 +4480,66 @@
 ./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/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
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/mib.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/mib_api.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/parse.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/oid_stash.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/net-snmp-features.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_impl.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/getopt.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/utilities.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/system.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/tools.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/int64.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/mt_support.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_alarm.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/container.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_assert.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/version.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/config_api.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/read_config.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpv3.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/transform_oids.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/keytools.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/scapi.h
-./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
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/agent_module_config.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/snmp_agent.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/snmp_vars.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/agent_handler.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/var_struct.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/agent_registry.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/fd_event_manager.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/ds_agent.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/agent_read_config.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/agent_trap.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/all_helpers.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/instance.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/baby_steps.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/scalar.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/scalar_group.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/watcher.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/multiplexer.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/null.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/debug_handler.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/cache_handler.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/old_api.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/read_only.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/row_merge.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/serialize.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/mode_end_call.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/table.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/table_data.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/table_dataset.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/table_tdata.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/table_iterator.h
-./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/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
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/mib.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/mib_api.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/parse.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/oid_stash.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/net-snmp-features.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_impl.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/getopt.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/utilities.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/system.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/tools.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/int64.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/mt_support.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_alarm.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/container.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_assert.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/version.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/config_api.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/read_config.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpv3.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/transform_oids.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/keytools.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/scapi.h
-./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
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/agent_module_config.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/snmp_agent.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/snmp_vars.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/agent_handler.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/var_struct.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/agent_registry.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/fd_event_manager.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/ds_agent.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/agent_read_config.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/agent_trap.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/all_helpers.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/instance.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/baby_steps.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/scalar.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/scalar_group.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/watcher.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/multiplexer.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/null.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/debug_handler.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/cache_handler.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/old_api.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/read_only.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/row_merge.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/serialize.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/mode_end_call.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/table.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/table_data.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/table_dataset.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/table_tdata.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/agent/table_iterator.h
-./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/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/net-snmp-features.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
-./host/hr_system.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./host/hr_system.lo: ../../include/net-snmp/library/ucd_compat.h
-./host/hr_system.lo: ../../include/net-snmp/library/mib.h
-./host/hr_system.lo: ../../include/net-snmp/mib_api.h
-./host/hr_system.lo: ../../include/net-snmp/library/parse.h
-./host/hr_system.lo: ../../include/net-snmp/library/oid_stash.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmp_impl.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmp.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmp-tc.h
-./host/hr_system.lo: ../../include/net-snmp/library/getopt.h
 ./host/hr_system.lo: ../../include/net-snmp/utilities.h
+./host/hr_system.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_system.lo: ../../include/net-snmp/library/system.h
 ./host/hr_system.lo: ../../include/net-snmp/library/tools.h
 ./host/hr_system.lo: ../../include/net-snmp/library/int64.h
 ./host/hr_system.lo: ../../include/net-snmp/library/mt_support.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmp_alarm.h
+./host/hr_system.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_system.lo: ../../include/net-snmp/library/data_list.h
+./host/hr_system.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./host/hr_system.lo: ../../include/net-snmp/library/container.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmp_assert.h
 ./host/hr_system.lo: ../../include/net-snmp/version.h
+./host/hr_system.lo: ../../include/net-snmp/session_api.h
+./host/hr_system.lo: ../../include/net-snmp/library/snmp_transport.h
+./host/hr_system.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./host/hr_system.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./host/hr_system.lo: ../../include/net-snmp/pdu_api.h
+./host/hr_system.lo: ../../include/net-snmp/mib_api.h
+./host/hr_system.lo: ../../include/net-snmp/library/mib.h
+./host/hr_system.lo: ../../include/net-snmp/library/parse.h
+./host/hr_system.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_system.lo: ../../include/net-snmp/config_api.h
 ./host/hr_system.lo: ../../include/net-snmp/library/read_config.h
 ./host/hr_system.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -5436,7 +4548,6 @@
 ./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
@@ -5473,70 +4584,66 @@
 ./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/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/mfd.h host.h host_res.h
+./host/hr_system.lo:  ./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/net-snmp-features.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
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/ucd_compat.h
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/mib.h
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/mib_api.h
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/parse.h
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/oid_stash.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_api.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/asn1.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp-tc.h
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/getopt.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/utilities.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_client.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/system.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/tools.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/int64.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/mt_support.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/callback.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/data_list.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/container.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/version.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/session_api.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_transport.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/pdu_api.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/mib_api.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/mib.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/parse.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/varbind_api.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/config_api.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/read_config.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -5545,7 +4652,6 @@
 ./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
@@ -5583,71 +4689,67 @@
 ./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
-./mibII/at.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/at.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/at.lo: ../../include/net-snmp/library/mib.h
-./mibII/at.lo: ../../include/net-snmp/mib_api.h
-./mibII/at.lo: ../../include/net-snmp/library/parse.h
-./mibII/at.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/at.lo: ../../include/net-snmp/net-snmp-features.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/at.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/at.lo: ../../include/net-snmp/utilities.h
+./mibII/at.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/at.lo: ../../include/net-snmp/library/system.h
 ./mibII/at.lo: ../../include/net-snmp/library/tools.h
 ./mibII/at.lo: ../../include/net-snmp/library/int64.h
 ./mibII/at.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/at.lo: ../../include/net-snmp/library/callback.h
 ./mibII/at.lo: ../../include/net-snmp/library/data_list.h
+./mibII/at.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/at.lo: ../../include/net-snmp/library/container.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/at.lo: ../../include/net-snmp/version.h
+./mibII/at.lo: ../../include/net-snmp/session_api.h
+./mibII/at.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/at.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/at.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/at.lo: ../../include/net-snmp/pdu_api.h
+./mibII/at.lo: ../../include/net-snmp/mib_api.h
+./mibII/at.lo: ../../include/net-snmp/library/mib.h
+./mibII/at.lo: ../../include/net-snmp/library/parse.h
+./mibII/at.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/at.lo: ../../include/net-snmp/config_api.h
 ./mibII/at.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/at.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -5656,7 +4758,6 @@
 ./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
@@ -5694,72 +4795,68 @@
 ./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/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
-./mibII/icmp.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/icmp.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/icmp.lo: ../../include/net-snmp/library/mib.h
-./mibII/icmp.lo: ../../include/net-snmp/mib_api.h
-./mibII/icmp.lo: ../../include/net-snmp/library/parse.h
-./mibII/icmp.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/icmp.lo: ../../include/net-snmp/net-snmp-features.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/icmp.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/icmp.lo: ../../include/net-snmp/utilities.h
+./mibII/icmp.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/system.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/tools.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/int64.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/icmp.lo: ../../include/net-snmp/library/callback.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/data_list.h
+./mibII/icmp.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/icmp.lo: ../../include/net-snmp/library/container.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/icmp.lo: ../../include/net-snmp/version.h
+./mibII/icmp.lo: ../../include/net-snmp/session_api.h
+./mibII/icmp.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/icmp.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/icmp.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/icmp.lo: ../../include/net-snmp/pdu_api.h
+./mibII/icmp.lo: ../../include/net-snmp/mib_api.h
+./mibII/icmp.lo: ../../include/net-snmp/library/mib.h
+./mibII/icmp.lo: ../../include/net-snmp/library/parse.h
+./mibII/icmp.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/icmp.lo: ../../include/net-snmp/config_api.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -5768,7 +4865,6 @@
 ./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
@@ -5806,72 +4902,66 @@
 ./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/icmp.lo: ../../include/net-snmp/agent/auto_nlist.h util_funcs.h
+./mibII/icmp.lo: struct.h ./mibII/icmp.h ./mibII/sysORTable.h
 ./mibII/interfaces.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/interfaces.lo: ../../include/net-snmp/net-snmp-features.h
-./mibII/interfaces.lo:  ../../agent/kernel.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: ../../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/library/oid.h
-./mibII/interfaces.lo: ../../include/net-snmp/library/types.h
+./mibII/interfaces.lo: ../../include/net-snmp/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
-./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/interfaces.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/interfaces.lo: ../../include/net-snmp/library/mib.h
-./mibII/interfaces.lo: ../../include/net-snmp/mib_api.h
-./mibII/interfaces.lo: ../../include/net-snmp/library/parse.h
-./mibII/interfaces.lo: ../../include/net-snmp/library/oid_stash.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/interfaces.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/interfaces.lo: ../../include/net-snmp/utilities.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/system.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/tools.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/int64.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/callback.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/data_list.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/interfaces.lo: ../../include/net-snmp/library/container.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/interfaces.lo: ../../include/net-snmp/version.h
+./mibII/interfaces.lo: ../../include/net-snmp/session_api.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/interfaces.lo: ../../include/net-snmp/pdu_api.h
+./mibII/interfaces.lo: ../../include/net-snmp/mib_api.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/mib.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/parse.h
+./mibII/interfaces.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/interfaces.lo: ../../include/net-snmp/config_api.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -5880,7 +4970,6 @@
 ./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
@@ -5918,74 +5007,68 @@
 ./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
 ./mibII/interfaces.lo: ../../include/net-snmp/data_access/interface.h
-./mibII/interfaces.lo: ./mibII/interfaces.h struct.h
-./mibII/interfaces.lo: util_funcs/header_generic.h
+./mibII/interfaces.lo: ./mibII/interfaces.h struct.h util_funcs.h
+./mibII/interfaces.lo: ./mibII/sysORTable.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/ipAddr.lo: ../../include/net-snmp/net-snmp-features.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
-./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/ipAddr.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/ipAddr.lo: ../../include/net-snmp/library/mib.h
-./mibII/ipAddr.lo: ../../include/net-snmp/mib_api.h
-./mibII/ipAddr.lo: ../../include/net-snmp/library/parse.h
-./mibII/ipAddr.lo: ../../include/net-snmp/library/oid_stash.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/ipAddr.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/utilities.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/system.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/tools.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/int64.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/callback.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/data_list.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/container.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/version.h
+./mibII/ipAddr.lo: ../../include/net-snmp/session_api.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/ipAddr.lo: ../../include/net-snmp/pdu_api.h
+./mibII/ipAddr.lo: ../../include/net-snmp/mib_api.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/mib.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/parse.h
+./mibII/ipAddr.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/config_api.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -5994,7 +5077,6 @@
 ./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
@@ -6032,73 +5114,69 @@
 ./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/ipAddr.lo: ./mibII/at.h ./mibII/interfaces.h ./mibII/sysORTable.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/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
-./mibII/ip.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/ip.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/ip.lo: ../../include/net-snmp/library/mib.h
-./mibII/ip.lo: ../../include/net-snmp/mib_api.h
-./mibII/ip.lo: ../../include/net-snmp/library/parse.h
-./mibII/ip.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/ip.lo: ../../include/net-snmp/net-snmp-features.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/ip.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/ip.lo: ../../include/net-snmp/utilities.h
+./mibII/ip.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/ip.lo: ../../include/net-snmp/library/system.h
 ./mibII/ip.lo: ../../include/net-snmp/library/tools.h
 ./mibII/ip.lo: ../../include/net-snmp/library/int64.h
 ./mibII/ip.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/ip.lo: ../../include/net-snmp/library/callback.h
 ./mibII/ip.lo: ../../include/net-snmp/library/data_list.h
+./mibII/ip.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/ip.lo: ../../include/net-snmp/library/container.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/ip.lo: ../../include/net-snmp/version.h
+./mibII/ip.lo: ../../include/net-snmp/session_api.h
+./mibII/ip.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/ip.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/ip.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/ip.lo: ../../include/net-snmp/pdu_api.h
+./mibII/ip.lo: ../../include/net-snmp/mib_api.h
+./mibII/ip.lo: ../../include/net-snmp/library/mib.h
+./mibII/ip.lo: ../../include/net-snmp/library/parse.h
+./mibII/ip.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/ip.lo: ../../include/net-snmp/config_api.h
 ./mibII/ip.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/ip.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -6107,7 +5185,6 @@
 ./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
@@ -6145,74 +5222,68 @@
 ./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
-./mibII/ip.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h ./mibII/ip.h
-./mibII/ip.lo: ./mibII/var_route.h ./mibII/route_write.h ./mibII/at.h
-./mibII/ip.lo: ./mibII/ipAddr.h ./mibII/interfaces.h
+./mibII/ip.lo: ../../include/net-snmp/agent/auto_nlist.h util_funcs.h
+./mibII/ip.lo: struct.h ./mibII/ip.h ./mibII/var_route.h
+./mibII/ip.lo: ./mibII/route_write.h ./mibII/at.h ./mibII/ipAddr.h
+./mibII/ip.lo: ./mibII/interfaces.h ./mibII/sysORTable.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
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/mib.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/mib_api.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/parse.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/net-snmp-features.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_api.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/asn1.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/utilities.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/system.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/tools.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/int64.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/callback.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/data_list.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/container.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/version.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/session_api.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/pdu_api.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/mib_api.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/mib.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/parse.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/config_api.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -6221,7 +5292,6 @@
 ./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
@@ -6259,70 +5329,66 @@
 ./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/net-snmp-features.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
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/mib.h
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/mib_api.h
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/parse.h
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/utilities.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/system.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/tools.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/int64.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/callback.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/data_list.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/container.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/version.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/session_api.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/pdu_api.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/mib_api.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/mib.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/parse.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/config_api.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -6331,7 +5397,6 @@
 ./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
@@ -6369,7 +5434,6 @@
 ./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
@@ -6377,65 +5441,62 @@
 ./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
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/mib.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/mib_api.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/parse.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/net-snmp-features.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/utilities.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/system.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/tools.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/int64.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/callback.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/data_list.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/container.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/version.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/session_api.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/pdu_api.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/mib_api.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/mib.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/parse.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/config_api.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -6444,70 +5505,66 @@
 ./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/net-snmp-features.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
-./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/ipv6.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/ipv6.lo: ../../include/net-snmp/library/mib.h
-./mibII/ipv6.lo: ../../include/net-snmp/mib_api.h
-./mibII/ipv6.lo: ../../include/net-snmp/library/parse.h
-./mibII/ipv6.lo: ../../include/net-snmp/library/oid_stash.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/ipv6.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/ipv6.lo: ../../include/net-snmp/utilities.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/system.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/tools.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/int64.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/callback.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/data_list.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/ipv6.lo: ../../include/net-snmp/library/container.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/ipv6.lo: ../../include/net-snmp/version.h
+./mibII/ipv6.lo: ../../include/net-snmp/session_api.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/ipv6.lo: ../../include/net-snmp/pdu_api.h
+./mibII/ipv6.lo: ../../include/net-snmp/mib_api.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/mib.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/parse.h
+./mibII/ipv6.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/ipv6.lo: ../../include/net-snmp/config_api.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -6516,7 +5573,6 @@
 ./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
@@ -6554,70 +5610,67 @@
 ./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/ipv6.lo: ../../agent/kernel.h util_funcs.h struct.h ./mibII/ipv6.h
+./mibII/ipv6.lo: ./mibII/var_route.h ./mibII/route_write.h ./mibII/at.h
+./mibII/ipv6.lo: ./mibII/interfaces.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/net-snmp-features.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
-./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/library/mib.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/mib_api.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/library/parse.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/library/oid_stash.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/utilities.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/system.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/tools.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/int64.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/callback.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/data_list.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/container.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/version.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/session_api.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/kernel_linux.lo: ../../include/net-snmp/pdu_api.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/mib_api.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/mib.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/parse.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/config_api.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -6626,7 +5679,6 @@
 ./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
@@ -6663,177 +5715,66 @@
 ./mibII/kernel_linux.lo: ../../include/net-snmp/agent/table_iterator.h
 ./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: ../../include/net-snmp/agent/mfd.h util_funcs.h
+./mibII/kernel_linux.lo: struct.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/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
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/mib.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/mib_api.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/parse.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/net-snmp-features.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_impl.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/getopt.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/utilities.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/system.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/tools.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/int64.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/mt_support.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_alarm.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/container.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_assert.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/version.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/config_api.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/read_config.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpv3.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/transform_oids.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/keytools.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/scapi.h
-./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
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/agent_module_config.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/snmp_agent.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/snmp_vars.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/agent_handler.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/var_struct.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/agent_registry.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/fd_event_manager.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/ds_agent.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/agent_read_config.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/agent_trap.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/all_helpers.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/instance.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/baby_steps.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/scalar.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/scalar_group.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/watcher.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/multiplexer.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/null.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/debug_handler.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/cache_handler.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/old_api.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/read_only.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/row_merge.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/serialize.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/mode_end_call.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/table.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/table_data.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/table_dataset.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/table_tdata.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/table_iterator.h
-./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
-./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/library/mib.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/mib_api.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/library/parse.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/net-snmp-features.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/utilities.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/system.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/tools.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/int64.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/callback.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/data_list.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/container.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/version.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/session_api.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/mta_sendmail.lo: ../../include/net-snmp/pdu_api.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/mib_api.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/mib.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/parse.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/config_api.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -6842,7 +5783,6 @@
 ./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
@@ -6880,68 +5820,64 @@
 ./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
-./mibII/route_write.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/route_write.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/route_write.lo: ../../include/net-snmp/library/mib.h
-./mibII/route_write.lo: ../../include/net-snmp/mib_api.h
-./mibII/route_write.lo: ../../include/net-snmp/library/parse.h
-./mibII/route_write.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/route_write.lo: ../../include/net-snmp/net-snmp-features.h
+./mibII/route_write.lo: ../../include/net-snmp/library/snmp_api.h
+./mibII/route_write.lo: ../../include/net-snmp/library/asn1.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/route_write.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/route_write.lo: ../../include/net-snmp/utilities.h
+./mibII/route_write.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/system.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/tools.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/int64.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/route_write.lo: ../../include/net-snmp/library/callback.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/data_list.h
+./mibII/route_write.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/route_write.lo: ../../include/net-snmp/library/container.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/route_write.lo: ../../include/net-snmp/version.h
+./mibII/route_write.lo: ../../include/net-snmp/session_api.h
+./mibII/route_write.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/route_write.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/route_write.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/route_write.lo: ../../include/net-snmp/pdu_api.h
+./mibII/route_write.lo: ../../include/net-snmp/mib_api.h
+./mibII/route_write.lo: ../../include/net-snmp/library/mib.h
+./mibII/route_write.lo: ../../include/net-snmp/library/parse.h
+./mibII/route_write.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/route_write.lo: ../../include/net-snmp/config_api.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -6950,7 +5886,6 @@
 ./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
@@ -6987,70 +5922,66 @@
 ./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/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/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/setSerialNo.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/net-snmp-features.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
-./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/library/mib.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/mib_api.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/library/parse.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/library/oid_stash.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/utilities.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/system.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/tools.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/int64.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/callback.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/data_list.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/container.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/version.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/session_api.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/setSerialNo.lo: ../../include/net-snmp/pdu_api.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/mib_api.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/mib.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/parse.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/config_api.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -7059,7 +5990,6 @@
 ./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
@@ -7097,178 +6027,64 @@
 ./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/net-snmp-features.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
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/mib.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/mib_api.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/parse.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_impl.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/getopt.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/utilities.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/system.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/tools.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/int64.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/mt_support.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_alarm.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/container.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_assert.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/version.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/config_api.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/read_config.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/default_store.h
-./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/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
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/keytools.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/scapi.h
-./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
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/agent_module_config.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/snmp_agent.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/snmp_vars.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/agent_handler.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/var_struct.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/agent_registry.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/fd_event_manager.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/ds_agent.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/agent_read_config.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/agent_trap.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/all_helpers.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/instance.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/baby_steps.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/scalar.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/scalar_group.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/watcher.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/multiplexer.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/null.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/debug_handler.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/cache_handler.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/old_api.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/read_only.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/row_merge.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/serialize.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/mode_end_call.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/table.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/table_data.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/table_dataset.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/table_tdata.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/table_iterator.h
-./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: ./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/net-snmp-features.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
-./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/snmp_mib.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/snmp_mib.lo: ../../include/net-snmp/library/mib.h
-./mibII/snmp_mib.lo: ../../include/net-snmp/mib_api.h
-./mibII/snmp_mib.lo: ../../include/net-snmp/library/parse.h
-./mibII/snmp_mib.lo: ../../include/net-snmp/library/oid_stash.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/snmp_mib.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/utilities.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/system.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/tools.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/int64.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/callback.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/data_list.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/container.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/version.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/session_api.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/snmp_mib.lo: ../../include/net-snmp/pdu_api.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/mib_api.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/mib.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/parse.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/config_api.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -7277,7 +6093,6 @@
 ./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
@@ -7314,71 +6129,65 @@
 ./mibII/snmp_mib.lo: ../../include/net-snmp/agent/table_iterator.h
 ./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/snmp_mib.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h struct.h
+./mibII/snmp_mib.lo: ./mibII/snmp_mib.h ./mibII/sysORTable.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
-./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/sysORTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/sysORTable.lo: ../../include/net-snmp/library/mib.h
-./mibII/sysORTable.lo: ../../include/net-snmp/mib_api.h
-./mibII/sysORTable.lo: ../../include/net-snmp/library/parse.h
-./mibII/sysORTable.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/sysORTable.lo: ../../include/net-snmp/net-snmp-features.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/sysORTable.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/utilities.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/system.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/tools.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/int64.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/callback.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/data_list.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/container.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/version.h
+./mibII/sysORTable.lo: ../../include/net-snmp/session_api.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/sysORTable.lo: ../../include/net-snmp/pdu_api.h
+./mibII/sysORTable.lo: ../../include/net-snmp/mib_api.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/mib.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/parse.h
+./mibII/sysORTable.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/config_api.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -7387,7 +6196,6 @@
 ./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
@@ -7425,71 +6233,66 @@
 ./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/sysORTable.lo: struct.h util_funcs.h ./mibII/sysORTable.h
+./mibII/sysORTable.lo: ../../agent/snmpd.h agentx/subagent.h agentx/client.h
 ./mibII/system_mib.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/system_mib.lo: ../../include/net-snmp/net-snmp-features.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
-./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/system_mib.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/system_mib.lo: ../../include/net-snmp/library/mib.h
-./mibII/system_mib.lo: ../../include/net-snmp/mib_api.h
-./mibII/system_mib.lo: ../../include/net-snmp/library/parse.h
-./mibII/system_mib.lo: ../../include/net-snmp/library/oid_stash.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/system_mib.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/system_mib.lo: ../../include/net-snmp/utilities.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/system.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/tools.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/int64.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/callback.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/data_list.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/system_mib.lo: ../../include/net-snmp/library/container.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/system_mib.lo: ../../include/net-snmp/version.h
+./mibII/system_mib.lo: ../../include/net-snmp/session_api.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/system_mib.lo: ../../include/net-snmp/pdu_api.h
+./mibII/system_mib.lo: ../../include/net-snmp/mib_api.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/mib.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/parse.h
+./mibII/system_mib.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/system_mib.lo: ../../include/net-snmp/config_api.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -7498,7 +6301,6 @@
 ./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
@@ -7535,76 +6337,67 @@
 ./mibII/system_mib.lo: ../../include/net-snmp/agent/table_iterator.h
 ./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: ./mibII/system_mib.h ./mibII/updates.h
+./mibII/system_mib.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h
+./mibII/system_mib.lo: struct.h ./mibII/system_mib.h ./mibII/sysORTable.h
 ./mibII/tcp.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/tcp.lo: ../../include/net-snmp/net-snmp-features.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
-./mibII/tcp.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/tcp.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/tcp.lo: ../../include/net-snmp/library/mib.h
-./mibII/tcp.lo: ../../include/net-snmp/mib_api.h
-./mibII/tcp.lo: ../../include/net-snmp/library/parse.h
-./mibII/tcp.lo: ../../include/net-snmp/library/oid_stash.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/tcp.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/tcp.lo: ../../include/net-snmp/utilities.h
+./mibII/tcp.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/system.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/tools.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/int64.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/tcp.lo: ../../include/net-snmp/library/callback.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/data_list.h
+./mibII/tcp.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/tcp.lo: ../../include/net-snmp/library/container.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/tcp.lo: ../../include/net-snmp/version.h
+./mibII/tcp.lo: ../../include/net-snmp/session_api.h
+./mibII/tcp.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/tcp.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/tcp.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/tcp.lo: ../../include/net-snmp/pdu_api.h
+./mibII/tcp.lo: ../../include/net-snmp/mib_api.h
+./mibII/tcp.lo: ../../include/net-snmp/library/mib.h
+./mibII/tcp.lo: ../../include/net-snmp/library/parse.h
+./mibII/tcp.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/tcp.lo: ../../include/net-snmp/config_api.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -7613,7 +6406,6 @@
 ./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
@@ -7651,74 +6443,68 @@
 ./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/tcp.lo: ../../include/net-snmp/agent/auto_nlist.h util_funcs.h
+./mibII/tcp.lo: struct.h ./mibII/tcp.h ./mibII/tcpTable.h
+./mibII/tcp.lo: ./mibII/sysORTable.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/tcpTable.lo: ../../include/net-snmp/net-snmp-features.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
-./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/tcpTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/tcpTable.lo: ../../include/net-snmp/library/mib.h
-./mibII/tcpTable.lo: ../../include/net-snmp/mib_api.h
-./mibII/tcpTable.lo: ../../include/net-snmp/library/parse.h
-./mibII/tcpTable.lo: ../../include/net-snmp/library/oid_stash.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_api.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/asn1.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/tcpTable.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/utilities.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/system.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/tools.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/int64.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/callback.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/data_list.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/container.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/version.h
+./mibII/tcpTable.lo: ../../include/net-snmp/session_api.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/tcpTable.lo: ../../include/net-snmp/pdu_api.h
+./mibII/tcpTable.lo: ../../include/net-snmp/mib_api.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/mib.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/parse.h
+./mibII/tcpTable.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/config_api.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -7727,7 +6513,6 @@
 ./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
@@ -7765,71 +6550,67 @@
 ./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/tcpTable.lo: ./mibII/tcpTable.h ./mibII/sysORTable.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
-./mibII/udp.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/udp.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/udp.lo: ../../include/net-snmp/library/mib.h
-./mibII/udp.lo: ../../include/net-snmp/mib_api.h
-./mibII/udp.lo: ../../include/net-snmp/library/parse.h
-./mibII/udp.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/udp.lo: ../../include/net-snmp/net-snmp-features.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/udp.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/udp.lo: ../../include/net-snmp/utilities.h
+./mibII/udp.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/udp.lo: ../../include/net-snmp/library/system.h
 ./mibII/udp.lo: ../../include/net-snmp/library/tools.h
 ./mibII/udp.lo: ../../include/net-snmp/library/int64.h
 ./mibII/udp.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/udp.lo: ../../include/net-snmp/library/callback.h
 ./mibII/udp.lo: ../../include/net-snmp/library/data_list.h
+./mibII/udp.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/udp.lo: ../../include/net-snmp/library/container.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/udp.lo: ../../include/net-snmp/version.h
+./mibII/udp.lo: ../../include/net-snmp/session_api.h
+./mibII/udp.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/udp.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/udp.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/udp.lo: ../../include/net-snmp/pdu_api.h
+./mibII/udp.lo: ../../include/net-snmp/mib_api.h
+./mibII/udp.lo: ../../include/net-snmp/library/mib.h
+./mibII/udp.lo: ../../include/net-snmp/library/parse.h
+./mibII/udp.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/udp.lo: ../../include/net-snmp/config_api.h
 ./mibII/udp.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/udp.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -7838,7 +6619,6 @@
 ./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
@@ -7876,74 +6656,68 @@
 ./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/udp.lo: ../../include/net-snmp/agent/auto_nlist.h util_funcs.h
+./mibII/udp.lo: struct.h ./mibII/udp.h ./mibII/udpTable.h
+./mibII/udp.lo: ./mibII/sysORTable.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
-./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/udpTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/udpTable.lo: ../../include/net-snmp/library/mib.h
-./mibII/udpTable.lo: ../../include/net-snmp/mib_api.h
-./mibII/udpTable.lo: ../../include/net-snmp/library/parse.h
-./mibII/udpTable.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/udpTable.lo: ../../include/net-snmp/net-snmp-features.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/udpTable.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/udpTable.lo: ../../include/net-snmp/utilities.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/system.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/tools.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/int64.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/callback.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/data_list.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/udpTable.lo: ../../include/net-snmp/library/container.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/udpTable.lo: ../../include/net-snmp/version.h
+./mibII/udpTable.lo: ../../include/net-snmp/session_api.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/udpTable.lo: ../../include/net-snmp/pdu_api.h
+./mibII/udpTable.lo: ../../include/net-snmp/mib_api.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/mib.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/parse.h
+./mibII/udpTable.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/udpTable.lo: ../../include/net-snmp/config_api.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -7952,7 +6726,6 @@
 ./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
@@ -7990,176 +6763,65 @@
 ./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/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
-./mibII/updates.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/updates.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/updates.lo: ../../include/net-snmp/library/mib.h
-./mibII/updates.lo: ../../include/net-snmp/mib_api.h
-./mibII/updates.lo: ../../include/net-snmp/library/parse.h
-./mibII/updates.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/updates.lo: ../../include/net-snmp/net-snmp-features.h
-./mibII/updates.lo: ../../include/net-snmp/library/snmp_impl.h
-./mibII/updates.lo: ../../include/net-snmp/library/snmp.h
-./mibII/updates.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/updates.lo: ../../include/net-snmp/library/getopt.h
-./mibII/updates.lo: ../../include/net-snmp/utilities.h
-./mibII/updates.lo: ../../include/net-snmp/library/system.h
-./mibII/updates.lo: ../../include/net-snmp/library/tools.h
-./mibII/updates.lo: ../../include/net-snmp/library/int64.h
-./mibII/updates.lo: ../../include/net-snmp/library/mt_support.h
-./mibII/updates.lo: ../../include/net-snmp/library/snmp_alarm.h
-./mibII/updates.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./mibII/updates.lo: ../../include/net-snmp/library/container.h
-./mibII/updates.lo: ../../include/net-snmp/library/snmp_assert.h
-./mibII/updates.lo: ../../include/net-snmp/version.h
-./mibII/updates.lo: ../../include/net-snmp/config_api.h
-./mibII/updates.lo: ../../include/net-snmp/library/read_config.h
-./mibII/updates.lo: ../../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./mibII/updates.lo: ../../include/net-snmp/library/snmpv3.h
-./mibII/updates.lo: ../../include/net-snmp/library/transform_oids.h
-./mibII/updates.lo: ../../include/net-snmp/library/keytools.h
-./mibII/updates.lo: ../../include/net-snmp/library/scapi.h
-./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
-./mibII/updates.lo: ../../include/net-snmp/agent/agent_module_config.h
-./mibII/updates.lo: ../../include/net-snmp/agent/snmp_agent.h
-./mibII/updates.lo: ../../include/net-snmp/agent/snmp_vars.h
-./mibII/updates.lo: ../../include/net-snmp/agent/agent_handler.h
-./mibII/updates.lo: ../../include/net-snmp/agent/var_struct.h
-./mibII/updates.lo: ../../include/net-snmp/agent/agent_registry.h
-./mibII/updates.lo: ../../include/net-snmp/library/fd_event_manager.h
-./mibII/updates.lo: ../../include/net-snmp/agent/ds_agent.h
-./mibII/updates.lo: ../../include/net-snmp/agent/agent_read_config.h
-./mibII/updates.lo: ../../include/net-snmp/agent/agent_trap.h
-./mibII/updates.lo: ../../include/net-snmp/agent/all_helpers.h
-./mibII/updates.lo: ../../include/net-snmp/agent/instance.h
-./mibII/updates.lo: ../../include/net-snmp/agent/baby_steps.h
-./mibII/updates.lo: ../../include/net-snmp/agent/scalar.h
-./mibII/updates.lo: ../../include/net-snmp/agent/scalar_group.h
-./mibII/updates.lo: ../../include/net-snmp/agent/watcher.h
-./mibII/updates.lo: ../../include/net-snmp/agent/multiplexer.h
-./mibII/updates.lo: ../../include/net-snmp/agent/null.h
-./mibII/updates.lo: ../../include/net-snmp/agent/debug_handler.h
-./mibII/updates.lo: ../../include/net-snmp/agent/cache_handler.h
-./mibII/updates.lo: ../../include/net-snmp/agent/old_api.h
-./mibII/updates.lo: ../../include/net-snmp/agent/read_only.h
-./mibII/updates.lo: ../../include/net-snmp/agent/row_merge.h
-./mibII/updates.lo: ../../include/net-snmp/agent/serialize.h
-./mibII/updates.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./mibII/updates.lo: ../../include/net-snmp/agent/mode_end_call.h
-./mibII/updates.lo: ../../include/net-snmp/agent/table.h
-./mibII/updates.lo: ../../include/net-snmp/agent/table_data.h
-./mibII/updates.lo: ../../include/net-snmp/agent/table_dataset.h
-./mibII/updates.lo: ../../include/net-snmp/agent/table_tdata.h
-./mibII/updates.lo: ../../include/net-snmp/agent/table_iterator.h
-./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/udpTable.lo: ./mibII/udpTable.h ./mibII/sysORTable.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
-./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/library/mib.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/mib_api.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/library/parse.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/net-snmp-features.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/utilities.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/system.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/tools.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/int64.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/callback.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/data_list.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/container.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/version.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/session_api.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/vacm_conf.lo: ../../include/net-snmp/pdu_api.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/mib_api.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/mib.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/parse.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/config_api.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -8168,7 +6830,6 @@
 ./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
@@ -8206,69 +6867,66 @@
 ./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_conf.lo: ./mibII/vacm_conf.h util_funcs.h struct.h
+./mibII/vacm_conf.lo: ./mibII/sysORTable.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
-./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/vacm_context.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/vacm_context.lo: ../../include/net-snmp/library/mib.h
-./mibII/vacm_context.lo: ../../include/net-snmp/mib_api.h
-./mibII/vacm_context.lo: ../../include/net-snmp/library/parse.h
-./mibII/vacm_context.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/vacm_context.lo: ../../include/net-snmp/net-snmp-features.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/vacm_context.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/utilities.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/system.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/tools.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/int64.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/callback.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/data_list.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/container.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/version.h
+./mibII/vacm_context.lo: ../../include/net-snmp/session_api.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/vacm_context.lo: ../../include/net-snmp/pdu_api.h
+./mibII/vacm_context.lo: ../../include/net-snmp/mib_api.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/mib.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/parse.h
+./mibII/vacm_context.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/config_api.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -8277,7 +6935,6 @@
 ./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
@@ -8315,68 +6972,64 @@
 ./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
-./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/library/mib.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/mib_api.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/library/parse.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/library/oid_stash.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/net-snmp-features.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/utilities.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/system.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/tools.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/int64.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/callback.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/data_list.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/container.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/version.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/session_api.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/vacm_vars.lo: ../../include/net-snmp/pdu_api.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/mib_api.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/mib.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/parse.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/config_api.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -8385,7 +7038,6 @@
 ./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
@@ -8423,71 +7075,67 @@
 ./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/vacm_vars.lo: ./mibII/vacm_vars.h util_funcs.h struct.h
+./mibII/vacm_vars.lo: ./mibII/sysORTable.h
 ./mibII/var_route.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/var_route.lo: ../../include/net-snmp/net-snmp-features.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
-./mibII/var_route.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mibII/var_route.lo: ../../include/net-snmp/library/ucd_compat.h
-./mibII/var_route.lo: ../../include/net-snmp/library/mib.h
-./mibII/var_route.lo: ../../include/net-snmp/mib_api.h
-./mibII/var_route.lo: ../../include/net-snmp/library/parse.h
-./mibII/var_route.lo: ../../include/net-snmp/library/oid_stash.h
+./mibII/var_route.lo: ../../include/net-snmp/library/snmp_api.h
+./mibII/var_route.lo: ../../include/net-snmp/library/asn1.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmp_impl.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmp.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmp-tc.h
-./mibII/var_route.lo: ../../include/net-snmp/library/getopt.h
 ./mibII/var_route.lo: ../../include/net-snmp/utilities.h
+./mibII/var_route.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/system.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/tools.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/int64.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/mt_support.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmp_alarm.h
+./mibII/var_route.lo: ../../include/net-snmp/library/callback.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/data_list.h
+./mibII/var_route.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./mibII/var_route.lo: ../../include/net-snmp/library/container.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmp_assert.h
 ./mibII/var_route.lo: ../../include/net-snmp/version.h
+./mibII/var_route.lo: ../../include/net-snmp/session_api.h
+./mibII/var_route.lo: ../../include/net-snmp/library/snmp_transport.h
+./mibII/var_route.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./mibII/var_route.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./mibII/var_route.lo: ../../include/net-snmp/pdu_api.h
+./mibII/var_route.lo: ../../include/net-snmp/mib_api.h
+./mibII/var_route.lo: ../../include/net-snmp/library/mib.h
+./mibII/var_route.lo: ../../include/net-snmp/library/parse.h
+./mibII/var_route.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/var_route.lo: ../../include/net-snmp/config_api.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/read_config.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -8496,7 +7144,6 @@
 ./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
@@ -8534,72 +7181,68 @@
 ./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
+./mibII/var_route.lo: struct.h util_funcs.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
-./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./misc/ipfwacc.lo: ../../include/net-snmp/library/ucd_compat.h
-./misc/ipfwacc.lo: ../../include/net-snmp/library/mib.h
-./misc/ipfwacc.lo: ../../include/net-snmp/mib_api.h
-./misc/ipfwacc.lo: ../../include/net-snmp/library/parse.h
-./misc/ipfwacc.lo: ../../include/net-snmp/library/oid_stash.h
-./misc/ipfwacc.lo: ../../include/net-snmp/net-snmp-features.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_impl.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp-tc.h
-./misc/ipfwacc.lo: ../../include/net-snmp/library/getopt.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/utilities.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_client.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/system.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/tools.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/int64.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/mt_support.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_alarm.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/callback.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/data_list.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/container.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_assert.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/version.h
+./misc/ipfwacc.lo: ../../include/net-snmp/session_api.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_transport.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./misc/ipfwacc.lo: ../../include/net-snmp/pdu_api.h
+./misc/ipfwacc.lo: ../../include/net-snmp/mib_api.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/mib.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/parse.h
+./misc/ipfwacc.lo: ../../include/net-snmp/varbind_api.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/config_api.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/read_config.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -8608,7 +7251,6 @@
 ./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
@@ -8645,69 +7287,65 @@
 ./misc/ipfwacc.lo: ../../include/net-snmp/agent/table_iterator.h
 ./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
+./misc/ipfwacc.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h struct.h
+./misc/ipfwacc.lo: ./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/net-snmp-features.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
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/ucd_compat.h
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/mib.h
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/mib_api.h
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/parse.h
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/oid_stash.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_impl.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp-tc.h
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/getopt.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/utilities.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_client.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/system.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/tools.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/int64.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/mt_support.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_alarm.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/callback.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/data_list.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/container.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_assert.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/version.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/session_api.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_transport.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/pdu_api.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/mib_api.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/mib.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/parse.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/varbind_api.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/config_api.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/read_config.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -8716,7 +7354,6 @@
 ./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
@@ -8754,70 +7391,64 @@
 ./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/net-snmp-features.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
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/mib.h
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/mib_api.h
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/parse.h
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/getopt.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/utilities.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/system.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/tools.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/int64.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/mt_support.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/callback.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/data_list.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/container.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/version.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/session_api.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/pdu_api.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/mib_api.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/mib.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/parse.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/varbind_api.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/config_api.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/read_config.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -8826,7 +7457,6 @@
 ./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
@@ -8864,69 +7494,65 @@
 ./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/net-snmp-features.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
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/mib.h
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/mib_api.h
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/parse.h
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/getopt.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/utilities.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/system.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/tools.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/int64.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/mt_support.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/callback.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/data_list.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/container.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/version.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/session_api.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/pdu_api.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/mib_api.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/mib.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/parse.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/varbind_api.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/config_api.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/read_config.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -8935,7 +7561,6 @@
 ./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
@@ -8973,7 +7598,6 @@
 ./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
@@ -8986,68 +7610,64 @@
 ./notification/snmpNotifyTable.lo: snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.h
 ./notification/snmpNotifyTable.lo: snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/agent/agent_callbacks.h
-./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
-./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./Rmon/agutil.lo: ../../include/net-snmp/library/ucd_compat.h
-./Rmon/agutil.lo: ../../include/net-snmp/library/mib.h
-./Rmon/agutil.lo: ../../include/net-snmp/mib_api.h
-./Rmon/agutil.lo: ../../include/net-snmp/library/parse.h
-./Rmon/agutil.lo: ../../include/net-snmp/library/oid_stash.h
-./Rmon/agutil.lo: ../../include/net-snmp/net-snmp-features.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_impl.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmp.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmp-tc.h
-./Rmon/agutil.lo: ../../include/net-snmp/library/getopt.h
 ./Rmon/agutil.lo: ../../include/net-snmp/utilities.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_client.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/system.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/tools.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/int64.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/mt_support.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_alarm.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/callback.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/data_list.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./Rmon/agutil.lo: ../../include/net-snmp/library/container.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_assert.h
 ./Rmon/agutil.lo: ../../include/net-snmp/version.h
+./Rmon/agutil.lo: ../../include/net-snmp/session_api.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_transport.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./Rmon/agutil.lo: ../../include/net-snmp/pdu_api.h
+./Rmon/agutil.lo: ../../include/net-snmp/mib_api.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/mib.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/parse.h
+./Rmon/agutil.lo: ../../include/net-snmp/varbind_api.h
 ./Rmon/agutil.lo: ../../include/net-snmp/config_api.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/read_config.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -9056,7 +7676,6 @@
 ./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
@@ -9093,69 +7712,65 @@
 ./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.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./Rmon/agutil.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h struct.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-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/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
-./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./Rmon/alarm.lo: ../../include/net-snmp/library/ucd_compat.h
-./Rmon/alarm.lo: ../../include/net-snmp/library/mib.h
-./Rmon/alarm.lo: ../../include/net-snmp/mib_api.h
-./Rmon/alarm.lo: ../../include/net-snmp/library/parse.h
-./Rmon/alarm.lo: ../../include/net-snmp/library/oid_stash.h
-./Rmon/alarm.lo: ../../include/net-snmp/net-snmp-features.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_api.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/asn1.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_impl.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmp.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmp-tc.h
-./Rmon/alarm.lo: ../../include/net-snmp/library/getopt.h
 ./Rmon/alarm.lo: ../../include/net-snmp/utilities.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_client.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/system.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/tools.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/int64.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/mt_support.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_alarm.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/callback.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/data_list.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./Rmon/alarm.lo: ../../include/net-snmp/library/container.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_assert.h
 ./Rmon/alarm.lo: ../../include/net-snmp/version.h
+./Rmon/alarm.lo: ../../include/net-snmp/session_api.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_transport.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./Rmon/alarm.lo: ../../include/net-snmp/pdu_api.h
+./Rmon/alarm.lo: ../../include/net-snmp/mib_api.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/mib.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/parse.h
+./Rmon/alarm.lo: ../../include/net-snmp/varbind_api.h
 ./Rmon/alarm.lo: ../../include/net-snmp/config_api.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/read_config.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -9164,7 +7779,6 @@
 ./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
@@ -9201,177 +7815,65 @@
 ./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.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./Rmon/alarm.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h struct.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/net-snmp-features.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
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/mib.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/mib_api.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/parse.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/oid_stash.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_impl.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/getopt.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/utilities.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/system.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/tools.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/int64.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/mt_support.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_alarm.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/container.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_assert.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/version.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/config_api.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/read_config.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpv3.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/transform_oids.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/keytools.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/scapi.h
-./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
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/agent_module_config.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/snmp_agent.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/snmp_vars.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/agent_handler.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/var_struct.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/agent_registry.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/fd_event_manager.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/ds_agent.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/agent_read_config.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/agent_trap.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/all_helpers.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/instance.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/baby_steps.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/scalar.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/scalar_group.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/watcher.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/multiplexer.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/null.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/debug_handler.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/cache_handler.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/old_api.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/read_only.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/row_merge.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/serialize.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/mode_end_call.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/table.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/table_data.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/table_dataset.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/table_tdata.h
-./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
-./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-features.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/event.lo: ../../include/net-snmp/net-snmp-includes.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
-./Rmon/event.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./Rmon/event.lo: ../../include/net-snmp/library/ucd_compat.h
-./Rmon/event.lo: ../../include/net-snmp/library/mib.h
-./Rmon/event.lo: ../../include/net-snmp/mib_api.h
-./Rmon/event.lo: ../../include/net-snmp/library/parse.h
-./Rmon/event.lo: ../../include/net-snmp/library/oid_stash.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmp_impl.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmp.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmp-tc.h
-./Rmon/event.lo: ../../include/net-snmp/library/getopt.h
 ./Rmon/event.lo: ../../include/net-snmp/utilities.h
+./Rmon/event.lo: ../../include/net-snmp/library/snmp_client.h
 ./Rmon/event.lo: ../../include/net-snmp/library/system.h
 ./Rmon/event.lo: ../../include/net-snmp/library/tools.h
 ./Rmon/event.lo: ../../include/net-snmp/library/int64.h
 ./Rmon/event.lo: ../../include/net-snmp/library/mt_support.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmp_alarm.h
+./Rmon/event.lo: ../../include/net-snmp/library/callback.h
 ./Rmon/event.lo: ../../include/net-snmp/library/data_list.h
+./Rmon/event.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./Rmon/event.lo: ../../include/net-snmp/library/container.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmp_assert.h
 ./Rmon/event.lo: ../../include/net-snmp/version.h
+./Rmon/event.lo: ../../include/net-snmp/session_api.h
+./Rmon/event.lo: ../../include/net-snmp/library/snmp_transport.h
+./Rmon/event.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./Rmon/event.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./Rmon/event.lo: ../../include/net-snmp/pdu_api.h
+./Rmon/event.lo: ../../include/net-snmp/mib_api.h
+./Rmon/event.lo: ../../include/net-snmp/library/mib.h
+./Rmon/event.lo: ../../include/net-snmp/library/parse.h
+./Rmon/event.lo: ../../include/net-snmp/varbind_api.h
 ./Rmon/event.lo: ../../include/net-snmp/config_api.h
 ./Rmon/event.lo: ../../include/net-snmp/library/read_config.h
 ./Rmon/event.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -9380,7 +7882,6 @@
 ./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
@@ -9417,69 +7918,65 @@
 ./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.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./Rmon/event.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h struct.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
-./Rmon/history.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./Rmon/history.lo: ../../include/net-snmp/library/ucd_compat.h
-./Rmon/history.lo: ../../include/net-snmp/library/mib.h
-./Rmon/history.lo: ../../include/net-snmp/mib_api.h
-./Rmon/history.lo: ../../include/net-snmp/library/parse.h
-./Rmon/history.lo: ../../include/net-snmp/library/oid_stash.h
-./Rmon/history.lo: ../../include/net-snmp/net-snmp-features.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmp_impl.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmp.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmp-tc.h
-./Rmon/history.lo: ../../include/net-snmp/library/getopt.h
 ./Rmon/history.lo: ../../include/net-snmp/utilities.h
+./Rmon/history.lo: ../../include/net-snmp/library/snmp_client.h
 ./Rmon/history.lo: ../../include/net-snmp/library/system.h
 ./Rmon/history.lo: ../../include/net-snmp/library/tools.h
 ./Rmon/history.lo: ../../include/net-snmp/library/int64.h
 ./Rmon/history.lo: ../../include/net-snmp/library/mt_support.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmp_alarm.h
+./Rmon/history.lo: ../../include/net-snmp/library/callback.h
 ./Rmon/history.lo: ../../include/net-snmp/library/data_list.h
+./Rmon/history.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./Rmon/history.lo: ../../include/net-snmp/library/container.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmp_assert.h
 ./Rmon/history.lo: ../../include/net-snmp/version.h
+./Rmon/history.lo: ../../include/net-snmp/session_api.h
+./Rmon/history.lo: ../../include/net-snmp/library/snmp_transport.h
+./Rmon/history.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./Rmon/history.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./Rmon/history.lo: ../../include/net-snmp/pdu_api.h
+./Rmon/history.lo: ../../include/net-snmp/mib_api.h
+./Rmon/history.lo: ../../include/net-snmp/library/mib.h
+./Rmon/history.lo: ../../include/net-snmp/library/parse.h
+./Rmon/history.lo: ../../include/net-snmp/varbind_api.h
 ./Rmon/history.lo: ../../include/net-snmp/config_api.h
 ./Rmon/history.lo: ../../include/net-snmp/library/read_config.h
 ./Rmon/history.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -9488,7 +7985,6 @@
 ./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
@@ -9525,69 +8021,65 @@
 ./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.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./Rmon/history.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h struct.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
-./Rmon/rows.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./Rmon/rows.lo: ../../include/net-snmp/library/ucd_compat.h
-./Rmon/rows.lo: ../../include/net-snmp/library/mib.h
-./Rmon/rows.lo: ../../include/net-snmp/mib_api.h
-./Rmon/rows.lo: ../../include/net-snmp/library/parse.h
-./Rmon/rows.lo: ../../include/net-snmp/library/oid_stash.h
-./Rmon/rows.lo: ../../include/net-snmp/net-snmp-features.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmp_impl.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmp.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmp-tc.h
-./Rmon/rows.lo: ../../include/net-snmp/library/getopt.h
 ./Rmon/rows.lo: ../../include/net-snmp/utilities.h
+./Rmon/rows.lo: ../../include/net-snmp/library/snmp_client.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/system.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/tools.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/int64.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/mt_support.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmp_alarm.h
+./Rmon/rows.lo: ../../include/net-snmp/library/callback.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/data_list.h
+./Rmon/rows.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./Rmon/rows.lo: ../../include/net-snmp/library/container.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmp_assert.h
 ./Rmon/rows.lo: ../../include/net-snmp/version.h
+./Rmon/rows.lo: ../../include/net-snmp/session_api.h
+./Rmon/rows.lo: ../../include/net-snmp/library/snmp_transport.h
+./Rmon/rows.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./Rmon/rows.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./Rmon/rows.lo: ../../include/net-snmp/pdu_api.h
+./Rmon/rows.lo: ../../include/net-snmp/mib_api.h
+./Rmon/rows.lo: ../../include/net-snmp/library/mib.h
+./Rmon/rows.lo: ../../include/net-snmp/library/parse.h
+./Rmon/rows.lo: ../../include/net-snmp/varbind_api.h
 ./Rmon/rows.lo: ../../include/net-snmp/config_api.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/read_config.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -9596,7 +8088,6 @@
 ./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
@@ -9633,69 +8124,65 @@
 ./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/rows.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./Rmon/rows.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h struct.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
-./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./Rmon/statistics.lo: ../../include/net-snmp/library/ucd_compat.h
-./Rmon/statistics.lo: ../../include/net-snmp/library/mib.h
-./Rmon/statistics.lo: ../../include/net-snmp/mib_api.h
-./Rmon/statistics.lo: ../../include/net-snmp/library/parse.h
-./Rmon/statistics.lo: ../../include/net-snmp/library/oid_stash.h
-./Rmon/statistics.lo: ../../include/net-snmp/net-snmp-features.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_impl.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmp.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmp-tc.h
-./Rmon/statistics.lo: ../../include/net-snmp/library/getopt.h
 ./Rmon/statistics.lo: ../../include/net-snmp/utilities.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_client.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/system.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/tools.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/int64.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/mt_support.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_alarm.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/callback.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/data_list.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./Rmon/statistics.lo: ../../include/net-snmp/library/container.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_assert.h
 ./Rmon/statistics.lo: ../../include/net-snmp/version.h
+./Rmon/statistics.lo: ../../include/net-snmp/session_api.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_transport.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./Rmon/statistics.lo: ../../include/net-snmp/pdu_api.h
+./Rmon/statistics.lo: ../../include/net-snmp/mib_api.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/mib.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/parse.h
+./Rmon/statistics.lo: ../../include/net-snmp/varbind_api.h
 ./Rmon/statistics.lo: ../../include/net-snmp/config_api.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/read_config.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -9704,7 +8191,6 @@
 ./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
@@ -9741,70 +8227,66 @@
 ./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.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
-./Rmon/statistics.lo: ./Rmon/statistics.h ./Rmon/agutil_api.h
+./Rmon/statistics.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h
+./Rmon/statistics.lo: struct.h ./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
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/net-snmp-features.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/getopt.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/utilities.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/system.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/tools.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/int64.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/mt_support.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/data_list.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/version.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/session_api.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/pdu_api.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/mib_api.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/mib.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/parse.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/config_api.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/read_config.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -9813,7 +8295,6 @@
 ./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
@@ -9851,69 +8332,65 @@
 ./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
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/net-snmp-features.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_api.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/asn1.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/getopt.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/utilities.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/system.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/tools.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/int64.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/mt_support.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/data_list.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/version.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/session_api.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/pdu_api.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/mib_api.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/mib.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/parse.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/config_api.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/read_config.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -9922,7 +8399,6 @@
 ./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
@@ -9960,69 +8436,65 @@
 ./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
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/net-snmp-features.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/getopt.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/utilities.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/system.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/tools.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/int64.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/mt_support.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/data_list.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/version.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/session_api.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/pdu_api.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/mib_api.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/mib.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/parse.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/config_api.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/read_config.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -10031,7 +8503,6 @@
 ./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
@@ -10069,69 +8540,65 @@
 ./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
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/net-snmp-features.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/getopt.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/utilities.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/system.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/tools.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/int64.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/mt_support.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/data_list.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/version.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/session_api.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/pdu_api.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/mib_api.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/mib.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/parse.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/config_api.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/read_config.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -10140,7 +8607,6 @@
 ./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
@@ -10178,69 +8644,65 @@
 ./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
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/net-snmp-features.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/getopt.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/utilities.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/system.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/tools.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/int64.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/mt_support.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/data_list.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/version.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/session_api.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/pdu_api.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/mib_api.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/mib.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/parse.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/config_api.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/read_config.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -10249,7 +8711,6 @@
 ./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
@@ -10287,69 +8748,65 @@
 ./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
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/net-snmp-features.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/getopt.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/utilities.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/system.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/tools.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/int64.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/mt_support.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/data_list.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/version.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/session_api.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/pdu_api.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/mib_api.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/mib.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/parse.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/config_api.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/read_config.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -10358,7 +8815,6 @@
 ./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
@@ -10396,69 +8852,65 @@
 ./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
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/net-snmp-features.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/getopt.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/utilities.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/system.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/tools.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/int64.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/mt_support.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/data_list.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/version.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/session_api.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/pdu_api.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/mib_api.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/mib.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/parse.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/config_api.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/read_config.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -10467,7 +8919,6 @@
 ./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
@@ -10505,69 +8956,65 @@
 ./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
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/net-snmp-features.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_api.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/asn1.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_impl.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/getopt.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/utilities.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/system.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/tools.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/int64.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/mt_support.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_alarm.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/data_list.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_assert.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/version.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/session_api.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_transport.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/pdu_api.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/mib_api.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/mib.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/parse.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/config_api.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/read_config.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -10576,7 +9023,6 @@
 ./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
@@ -10614,69 +9060,65 @@
 ./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
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/net-snmp-features.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_impl.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/getopt.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/utilities.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/system.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/tools.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/int64.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/mt_support.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_alarm.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/data_list.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_assert.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/version.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/session_api.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_transport.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/pdu_api.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/mib_api.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/mib.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/parse.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/config_api.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/read_config.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -10685,7 +9127,6 @@
 ./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
@@ -10723,69 +9164,65 @@
 ./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
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/net-snmp-features.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_impl.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/getopt.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/utilities.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/system.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/tools.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/int64.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/mt_support.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_alarm.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/data_list.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_assert.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/version.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/session_api.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_transport.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/pdu_api.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/mib_api.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/mib.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/parse.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/config_api.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/read_config.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -10794,7 +9231,6 @@
 ./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
@@ -10832,176 +9268,64 @@
 ./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/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
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/net-snmp-features.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_impl.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/getopt.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/utilities.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/system.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/tools.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/int64.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/mt_support.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_alarm.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/container.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_assert.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/version.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/config_api.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/read_config.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/default_store.h
-./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/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
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/keytools.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/scapi.h
-./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
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/agent_module_config.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/snmp_agent.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/snmp_vars.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/agent_handler.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/var_struct.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/agent_registry.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/fd_event_manager.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/ds_agent.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/agent_read_config.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/agent_trap.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/all_helpers.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/instance.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/baby_steps.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/scalar.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/scalar_group.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/watcher.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/multiplexer.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/null.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/debug_handler.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/cache_handler.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/old_api.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/read_only.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/row_merge.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/serialize.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/mode_end_call.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/table.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/table_data.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/table_dataset.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/table_tdata.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/table_iterator.h
-./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
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/net-snmp-features.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_impl.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/getopt.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/utilities.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/system.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/tools.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/int64.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/mt_support.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_alarm.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/data_list.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_assert.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/version.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/session_api.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_transport.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/pdu_api.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/mib_api.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/mib.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/parse.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/config_api.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/read_config.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -11010,7 +9334,6 @@
 ./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
@@ -11048,177 +9371,64 @@
 ./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/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
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/net-snmp-features.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_impl.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/getopt.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/utilities.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/system.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/tools.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/int64.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/mt_support.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_alarm.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/container.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_assert.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/version.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/config_api.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/read_config.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/default_store.h
-./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/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
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/keytools.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/scapi.h
-./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
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/agent_module_config.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/snmp_agent.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/snmp_vars.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/agent_handler.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/var_struct.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/agent_registry.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/fd_event_manager.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/ds_agent.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/agent_read_config.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/agent_trap.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/all_helpers.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/instance.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/baby_steps.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/scalar.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/scalar_group.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/watcher.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/multiplexer.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/null.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/debug_handler.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/cache_handler.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/old_api.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/read_only.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/row_merge.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/serialize.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/mode_end_call.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/table.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/table_data.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/table_dataset.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/table_tdata.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/table_iterator.h
-./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/net-snmp-features.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
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/oid_stash.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_impl.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/getopt.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/utilities.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/system.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/tools.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/int64.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/mt_support.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_alarm.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/data_list.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_assert.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/version.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/session_api.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_transport.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/pdu_api.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/mib_api.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/mib.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/parse.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/config_api.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/read_config.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -11227,7 +9437,6 @@
 ./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
@@ -11265,7 +9474,6 @@
 ./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
@@ -11275,180 +9483,63 @@
 ./sctp-mib/sctpTables_common.lo: ./sctp-mib/sctpLookupRemHostNameTable.h
 ./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/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
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/net-snmp-features.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_impl.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/getopt.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/utilities.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/system.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/tools.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/int64.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/mt_support.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_alarm.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/container.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_assert.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/version.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/config_api.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/read_config.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/default_store.h
-./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/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
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/keytools.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/scapi.h
-./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
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/agent_module_config.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/snmp_agent.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/snmp_vars.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/agent_handler.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/var_struct.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/agent_registry.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/fd_event_manager.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/ds_agent.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/agent_read_config.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/agent_trap.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/all_helpers.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/instance.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/baby_steps.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/scalar.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/scalar_group.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/watcher.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/multiplexer.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/null.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/debug_handler.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/cache_handler.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/old_api.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/read_only.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/row_merge.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/serialize.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/mode_end_call.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/table.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/table_data.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/table_dataset.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/table_tdata.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/table_iterator.h
-./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/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
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/net-snmp-features.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_impl.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/getopt.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/utilities.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/system.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/tools.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/int64.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/mt_support.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_alarm.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/data_list.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_assert.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/version.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/session_api.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_transport.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/pdu_api.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/mib_api.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/mib.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/parse.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/config_api.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/read_config.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -11457,7 +9548,6 @@
 ./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
@@ -11495,187 +9585,68 @@
 ./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/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
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/ucd_compat.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/mib.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/mib_api.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/parse.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/oid_stash.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/net-snmp-features.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_impl.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp-tc.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/getopt.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/utilities.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/system.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/tools.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/int64.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/mt_support.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_alarm.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/container.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_assert.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/version.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/config_api.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/read_config.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/default_store.h
-./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/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
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/keytools.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/scapi.h
-./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
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/agent_module_config.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/snmp_agent.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/snmp_vars.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/agent_handler.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/var_struct.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/agent_registry.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/fd_event_manager.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/ds_agent.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/agent_read_config.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/agent_trap.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/all_helpers.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/instance.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/baby_steps.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/scalar.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/scalar_group.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/watcher.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/multiplexer.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/null.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/debug_handler.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/cache_handler.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/old_api.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/read_only.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/row_merge.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/serialize.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/mode_end_call.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/table.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/table_data.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/table_dataset.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/table_tdata.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/table_iterator.h
-./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/MIB_STATS_CACHE_TIMEOUT.h
-./sctp-mib/sctpTables_solaris2.lo: kernel_sunos5.h
+./sctp-mib/sctpTables_linux.lo: util_funcs.h struct.h
 ./smux/smux.lo: ../../include/net-snmp/net-snmp-config.h
-./smux/smux.lo: ../../include/net-snmp/net-snmp-features.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/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
-./smux/smux.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./smux/smux.lo: ../../include/net-snmp/library/ucd_compat.h
-./smux/smux.lo: ../../include/net-snmp/library/mib.h
-./smux/smux.lo: ../../include/net-snmp/mib_api.h
-./smux/smux.lo: ../../include/net-snmp/library/parse.h
-./smux/smux.lo: ../../include/net-snmp/library/oid_stash.h
+./smux/smux.lo: ../../include/net-snmp/library/snmp_api.h
+./smux/smux.lo: ../../include/net-snmp/library/asn1.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmp_impl.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmp.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmp-tc.h
-./smux/smux.lo: ../../include/net-snmp/library/getopt.h
 ./smux/smux.lo: ../../include/net-snmp/utilities.h
+./smux/smux.lo: ../../include/net-snmp/library/snmp_client.h
 ./smux/smux.lo: ../../include/net-snmp/library/system.h
 ./smux/smux.lo: ../../include/net-snmp/library/tools.h
 ./smux/smux.lo: ../../include/net-snmp/library/int64.h
 ./smux/smux.lo: ../../include/net-snmp/library/mt_support.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmp_alarm.h
+./smux/smux.lo: ../../include/net-snmp/library/callback.h
 ./smux/smux.lo: ../../include/net-snmp/library/data_list.h
+./smux/smux.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./smux/smux.lo: ../../include/net-snmp/library/container.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmp_assert.h
 ./smux/smux.lo: ../../include/net-snmp/version.h
+./smux/smux.lo: ../../include/net-snmp/session_api.h
+./smux/smux.lo: ../../include/net-snmp/library/snmp_transport.h
+./smux/smux.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./smux/smux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./smux/smux.lo: ../../include/net-snmp/pdu_api.h
+./smux/smux.lo: ../../include/net-snmp/mib_api.h
+./smux/smux.lo: ../../include/net-snmp/library/mib.h
+./smux/smux.lo: ../../include/net-snmp/library/parse.h
+./smux/smux.lo: ../../include/net-snmp/varbind_api.h
 ./smux/smux.lo: ../../include/net-snmp/config_api.h
 ./smux/smux.lo: ../../include/net-snmp/library/read_config.h
 ./smux/smux.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -11684,7 +9655,6 @@
 ./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
@@ -11721,69 +9691,65 @@
 ./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/smux.lo: ../../include/net-snmp/agent/snmp_get_statistic.h smux.h
-./smux/smux.lo: mibdefs.h ../../agent/snmpd.h
+./smux/smux.lo: ../../include/net-snmp/agent/mfd.h smux.h util_funcs.h
+./smux/smux.lo: struct.h 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
-./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/library/ucd_compat.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/library/mib.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/mib_api.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/library/parse.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/library/oid_stash.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/net-snmp-features.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_impl.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp-tc.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/library/getopt.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/utilities.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_client.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/system.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/tools.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/int64.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/mt_support.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_alarm.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/callback.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/data_list.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/container.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_assert.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/version.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/session_api.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_transport.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./smux/snmp_bgp.lo: ../../include/net-snmp/pdu_api.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/mib_api.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/mib.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/parse.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/varbind_api.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/config_api.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/read_config.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -11792,7 +9758,6 @@
 ./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
@@ -11829,69 +9794,65 @@
 ./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/snmp_bgp.lo: ../../include/net-snmp/agent/snmp_get_statistic.h smux.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/agent/mfd.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
-./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/library/ucd_compat.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/library/mib.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/mib_api.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/library/parse.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/library/oid_stash.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/net-snmp-features.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_impl.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp-tc.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/library/getopt.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/utilities.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_client.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/system.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/tools.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/int64.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/mt_support.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_alarm.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/callback.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/data_list.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/container.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_assert.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/version.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/session_api.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_transport.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./smux/snmp_ospf.lo: ../../include/net-snmp/pdu_api.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/mib_api.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/mib.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/parse.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/varbind_api.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/config_api.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/read_config.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -11900,7 +9861,6 @@
 ./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
@@ -11937,69 +9897,65 @@
 ./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/snmp_ospf.lo: ../../include/net-snmp/agent/snmp_get_statistic.h smux.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/agent/mfd.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
-./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/library/ucd_compat.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/library/mib.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/mib_api.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/library/parse.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/library/oid_stash.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/net-snmp-features.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_impl.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp-tc.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/library/getopt.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/utilities.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_client.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/system.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/tools.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/int64.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/mt_support.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_alarm.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/callback.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/data_list.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/container.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_assert.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/version.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/session_api.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_transport.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./smux/snmp_rip2.lo: ../../include/net-snmp/pdu_api.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/mib_api.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/mib.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/parse.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/varbind_api.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/config_api.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/read_config.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -12008,7 +9964,6 @@
 ./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
@@ -12045,69 +10000,65 @@
 ./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/snmp_rip2.lo: ../../include/net-snmp/agent/snmp_get_statistic.h smux.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/agent/mfd.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/net-snmp-features.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
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/ucd_compat.h
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/mib.h
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/mib_api.h
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/parse.h
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/oid_stash.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_impl.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp-tc.h
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/getopt.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/utilities.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_client.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/system.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/tools.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/int64.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/mt_support.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_alarm.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/callback.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/data_list.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/container.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_assert.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/version.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/session_api.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_transport.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/pdu_api.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/mib_api.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/mib.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/parse.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/varbind_api.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/config_api.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/read_config.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -12116,7 +10067,6 @@
 ./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
@@ -12153,181 +10103,65 @@
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/agent/table_iterator.h
 ./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/net-snmp-features.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
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/ucd_compat.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/mib.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/mib_api.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/parse.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/oid_stash.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_impl.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp-tc.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/getopt.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/utilities.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/system.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/tools.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/int64.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/mt_support.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_alarm.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/container.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_assert.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/version.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/config_api.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/read_config.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/default_store.h
-./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/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
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/keytools.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/scapi.h
-./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
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/agent_module_config.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/snmp_agent.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/snmp_vars.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/agent_handler.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/var_struct.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/agent_registry.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/fd_event_manager.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/ds_agent.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/agent_read_config.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/agent_trap.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/all_helpers.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/instance.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/baby_steps.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/scalar.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/scalar_group.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/watcher.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/multiplexer.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/null.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/debug_handler.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/cache_handler.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/old_api.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/read_only.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/row_merge.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/serialize.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/mode_end_call.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/table.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/table_data.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/table_dataset.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/table_tdata.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/table_iterator.h
-./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/snmpEngine.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h
+./snmpv3/snmpEngine.lo: struct.h mibII/sysORTable.h ./snmpv3/snmpEngine.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
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/ucd_compat.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/mib.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/mib_api.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/parse.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/oid_stash.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/net-snmp-features.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_impl.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp-tc.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/getopt.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/utilities.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_client.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/system.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/tools.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/int64.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/mt_support.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_alarm.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/callback.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/data_list.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/container.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_assert.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/version.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/session_api.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_transport.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/pdu_api.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/mib_api.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/mib.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/parse.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/varbind_api.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/config_api.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/read_config.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -12336,7 +10170,6 @@
 ./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
@@ -12374,70 +10207,65 @@
 ./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/snmpMPDStats.lo: mibII/sysORTable.h ./snmpv3/snmpMPDStats.h
+./snmpv3/snmpMPDStats.lo: util_funcs.h struct.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
-./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/library/ucd_compat.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/library/mib.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/mib_api.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/library/parse.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/library/oid_stash.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/net-snmp-features.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_api.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/asn1.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_impl.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp-tc.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/library/getopt.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/utilities.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_client.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/system.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/tools.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/int64.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/mt_support.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_alarm.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/callback.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/data_list.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/container.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_assert.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/version.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/session_api.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_transport.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpv3/usmConf.lo: ../../include/net-snmp/pdu_api.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/mib_api.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/mib.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/parse.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/varbind_api.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/config_api.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/read_config.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -12446,7 +10274,6 @@
 ./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
@@ -12484,177 +10311,63 @@
 ./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/net-snmp-features.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
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/ucd_compat.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/mib.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/mib_api.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/parse.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/oid_stash.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_impl.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp-tc.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/getopt.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/utilities.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/system.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/tools.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/int64.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/mt_support.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_alarm.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/container.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_assert.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/version.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/config_api.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/read_config.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/default_store.h
-./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/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
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/keytools.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/scapi.h
-./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
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/agent_module_config.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/snmp_agent.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/snmp_vars.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/agent_handler.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/var_struct.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/agent_registry.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/fd_event_manager.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/ds_agent.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/agent_read_config.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/agent_trap.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/all_helpers.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/instance.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/baby_steps.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/scalar.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/scalar_group.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/watcher.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/multiplexer.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/null.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/debug_handler.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/cache_handler.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/old_api.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/read_only.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/row_merge.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/serialize.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/mode_end_call.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/table.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/table_data.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/table_dataset.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/table_tdata.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/table_iterator.h
-./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.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
-./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/library/ucd_compat.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/library/mib.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/mib_api.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/library/parse.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/library/oid_stash.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/net-snmp-features.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_impl.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp-tc.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/library/getopt.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/utilities.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_client.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/system.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/tools.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/int64.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/mt_support.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_alarm.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/callback.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/data_list.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/container.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_assert.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/version.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/session_api.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_transport.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpv3/usmStats.lo: ../../include/net-snmp/pdu_api.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/mib_api.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/mib.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/parse.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/varbind_api.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/config_api.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/read_config.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -12663,7 +10376,6 @@
 ./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
@@ -12700,71 +10412,65 @@
 ./snmpv3/usmStats.lo: ../../include/net-snmp/agent/table_iterator.h
 ./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/usmStats.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h
+./snmpv3/usmStats.lo: struct.h mibII/sysORTable.h ./snmpv3/usmStats.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/net-snmp-config.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/net-snmp-features.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
-./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/library/ucd_compat.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/library/mib.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/mib_api.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/library/parse.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/library/oid_stash.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_impl.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp-tc.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/library/getopt.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/utilities.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_client.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/system.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/tools.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/int64.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/mt_support.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_alarm.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/callback.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/data_list.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/container.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_assert.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/version.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/session_api.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_transport.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpv3/usmUser.lo: ../../include/net-snmp/pdu_api.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/mib_api.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/mib.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/parse.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/varbind_api.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/config_api.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/read_config.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -12773,7 +10479,6 @@
 ./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
@@ -12810,69 +10515,65 @@
 ./snmpv3/usmUser.lo: ../../include/net-snmp/agent/table_iterator.h
 ./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
+./snmpv3/usmUser.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h struct.h
+./snmpv3/usmUser.lo: ./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
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/ucd_compat.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/mib.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/mib_api.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/parse.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/oid_stash.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/net-snmp-features.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_impl.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp-tc.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/getopt.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/utilities.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_client.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/system.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/tools.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/int64.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/mt_support.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_alarm.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/callback.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/data_list.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/container.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_assert.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/version.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/session_api.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_transport.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/pdu_api.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/mib_api.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/mib.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/parse.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/varbind_api.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/config_api.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/read_config.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -12881,7 +10582,6 @@
 ./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
@@ -12919,69 +10619,65 @@
 ./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/snmpTargetAddrEntry.lo: ./target/snmpTargetAddrEntry.h util_funcs.h
+./target/snmpTargetAddrEntry.lo: struct.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
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/ucd_compat.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/mib.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/mib_api.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/parse.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/oid_stash.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/net-snmp-features.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_impl.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp-tc.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/getopt.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/utilities.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_client.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/system.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/tools.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/int64.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/mt_support.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_alarm.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/callback.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/data_list.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/container.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_assert.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/version.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/session_api.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_transport.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/pdu_api.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/mib_api.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/mib.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/parse.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/varbind_api.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/config_api.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/read_config.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -12990,7 +10686,6 @@
 ./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
@@ -13028,68 +10723,64 @@
 ./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/net-snmp-features.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
-./target/target.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./target/target.lo: ../../include/net-snmp/library/ucd_compat.h
-./target/target.lo: ../../include/net-snmp/library/mib.h
-./target/target.lo: ../../include/net-snmp/mib_api.h
-./target/target.lo: ../../include/net-snmp/library/parse.h
-./target/target.lo: ../../include/net-snmp/library/oid_stash.h
 ./target/target.lo: ../../include/net-snmp/library/snmp_impl.h
 ./target/target.lo: ../../include/net-snmp/library/snmp.h
 ./target/target.lo: ../../include/net-snmp/library/snmp-tc.h
-./target/target.lo: ../../include/net-snmp/library/getopt.h
 ./target/target.lo: ../../include/net-snmp/utilities.h
+./target/target.lo: ../../include/net-snmp/library/snmp_client.h
 ./target/target.lo: ../../include/net-snmp/library/system.h
 ./target/target.lo: ../../include/net-snmp/library/tools.h
 ./target/target.lo: ../../include/net-snmp/library/int64.h
 ./target/target.lo: ../../include/net-snmp/library/mt_support.h
 ./target/target.lo: ../../include/net-snmp/library/snmp_alarm.h
+./target/target.lo: ../../include/net-snmp/library/callback.h
 ./target/target.lo: ../../include/net-snmp/library/data_list.h
+./target/target.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./target/target.lo: ../../include/net-snmp/library/container.h
 ./target/target.lo: ../../include/net-snmp/library/snmp_assert.h
 ./target/target.lo: ../../include/net-snmp/version.h
+./target/target.lo: ../../include/net-snmp/session_api.h
+./target/target.lo: ../../include/net-snmp/library/snmp_transport.h
+./target/target.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./target/target.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./target/target.lo: ../../include/net-snmp/pdu_api.h
+./target/target.lo: ../../include/net-snmp/mib_api.h
+./target/target.lo: ../../include/net-snmp/library/mib.h
+./target/target.lo: ../../include/net-snmp/library/parse.h
+./target/target.lo: ../../include/net-snmp/varbind_api.h
 ./target/target.lo: ../../include/net-snmp/config_api.h
 ./target/target.lo: ../../include/net-snmp/library/read_config.h
 ./target/target.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -13098,7 +10789,6 @@
 ./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
@@ -13136,177 +10826,65 @@
 ./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/net-snmp-features.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
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/ucd_compat.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/mib.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/mib_api.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/parse.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/oid_stash.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_impl.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp-tc.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/getopt.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/utilities.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/system.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/tools.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/int64.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/mt_support.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_alarm.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/container.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_assert.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/version.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/config_api.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/read_config.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/default_store.h
-./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/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
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/keytools.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/scapi.h
-./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
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/agent_module_config.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/snmp_agent.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/snmp_vars.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/agent_handler.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/var_struct.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/agent_registry.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/fd_event_manager.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/ds_agent.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/agent_read_config.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/agent_trap.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/all_helpers.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/instance.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/baby_steps.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/scalar.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/scalar_group.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/watcher.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/multiplexer.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/null.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/debug_handler.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/cache_handler.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/old_api.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/read_only.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/row_merge.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/serialize.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/mode_end_call.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/table.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/table_data.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/table_dataset.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/table_tdata.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/agent/table_iterator.h
-./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.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
-./target/target_counters.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./target/target_counters.lo: ../../include/net-snmp/library/ucd_compat.h
-./target/target_counters.lo: ../../include/net-snmp/library/mib.h
-./target/target_counters.lo: ../../include/net-snmp/mib_api.h
-./target/target_counters.lo: ../../include/net-snmp/library/parse.h
-./target/target_counters.lo: ../../include/net-snmp/library/oid_stash.h
-./target/target_counters.lo: ../../include/net-snmp/net-snmp-features.h
+./target/target_counters.lo: ../../include/net-snmp/library/snmp_api.h
+./target/target_counters.lo: ../../include/net-snmp/library/asn1.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmp_impl.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmp.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmp-tc.h
-./target/target_counters.lo: ../../include/net-snmp/library/getopt.h
 ./target/target_counters.lo: ../../include/net-snmp/utilities.h
+./target/target_counters.lo: ../../include/net-snmp/library/snmp_client.h
 ./target/target_counters.lo: ../../include/net-snmp/library/system.h
 ./target/target_counters.lo: ../../include/net-snmp/library/tools.h
 ./target/target_counters.lo: ../../include/net-snmp/library/int64.h
 ./target/target_counters.lo: ../../include/net-snmp/library/mt_support.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmp_alarm.h
+./target/target_counters.lo: ../../include/net-snmp/library/callback.h
 ./target/target_counters.lo: ../../include/net-snmp/library/data_list.h
+./target/target_counters.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./target/target_counters.lo: ../../include/net-snmp/library/container.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmp_assert.h
 ./target/target_counters.lo: ../../include/net-snmp/version.h
+./target/target_counters.lo: ../../include/net-snmp/session_api.h
+./target/target_counters.lo: ../../include/net-snmp/library/snmp_transport.h
+./target/target_counters.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./target/target_counters.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./target/target_counters.lo: ../../include/net-snmp/pdu_api.h
+./target/target_counters.lo: ../../include/net-snmp/mib_api.h
+./target/target_counters.lo: ../../include/net-snmp/library/mib.h
+./target/target_counters.lo: ../../include/net-snmp/library/parse.h
+./target/target_counters.lo: ../../include/net-snmp/varbind_api.h
 ./target/target_counters.lo: ../../include/net-snmp/config_api.h
 ./target/target_counters.lo: ../../include/net-snmp/library/read_config.h
 ./target/target_counters.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -13315,7 +10893,6 @@
 ./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
@@ -13353,176 +10930,64 @@
 ./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/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/net-snmp-features.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
-./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./tunnel/tunnel.lo: ../../include/net-snmp/library/ucd_compat.h
-./tunnel/tunnel.lo: ../../include/net-snmp/library/mib.h
-./tunnel/tunnel.lo: ../../include/net-snmp/mib_api.h
-./tunnel/tunnel.lo: ../../include/net-snmp/library/parse.h
-./tunnel/tunnel.lo: ../../include/net-snmp/library/oid_stash.h
-./tunnel/tunnel.lo: ../../include/net-snmp/net-snmp-features.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_impl.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp-tc.h
-./tunnel/tunnel.lo: ../../include/net-snmp/library/getopt.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/utilities.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_client.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/system.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/tools.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/int64.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/mt_support.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_alarm.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/callback.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/data_list.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/container.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_assert.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/version.h
+./tunnel/tunnel.lo: ../../include/net-snmp/session_api.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_transport.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./tunnel/tunnel.lo: ../../include/net-snmp/pdu_api.h
+./tunnel/tunnel.lo: ../../include/net-snmp/mib_api.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/mib.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/parse.h
+./tunnel/tunnel.lo: ../../include/net-snmp/varbind_api.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/config_api.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/read_config.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -13531,7 +10996,6 @@
 ./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
@@ -13568,11 +11032,8 @@
 ./tunnel/tunnel.lo: ../../include/net-snmp/agent/table_iterator.h
 ./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
+./tunnel/tunnel.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h struct.h
+./tunnel/tunnel.lo: tunnel.h if-mib/ifTable/ifTable.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/data_access/interface.h
 ./tunnel/tunnel.lo: if-mib/ifTable/ifTable_constants.h
 ./tunnel/tunnel.lo: if-mib/ifTable/ifTable_interface.h
@@ -13580,65 +11041,62 @@
 ./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
-./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/version.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/disk.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -13647,7 +11105,6 @@
 ./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
@@ -13685,180 +11142,66 @@
 ./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/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/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/net-snmp-features.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/disk.lo: ./ucd-snmp/disk.h mibdefs.h util_funcs.h
+./ucd-snmp/disk.lo: ./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
-./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/version.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/diskio.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -13867,7 +11210,6 @@
 ./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
@@ -13904,69 +11246,65 @@
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/agent/table_iterator.h
 ./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/diskio.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h
+./ucd-snmp/diskio.lo: struct.h ./ucd-snmp/diskio.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/net-snmp-features.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
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/oid_stash.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/version.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -13975,7 +11313,6 @@
 ./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
@@ -14012,69 +11349,65 @@
 ./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
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/agent/mfd.h struct.h util_funcs.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
-./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/version.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/errormib.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -14083,7 +11416,6 @@
 ./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
@@ -14121,70 +11453,65 @@
 ./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/errormib.lo: ./ucd-snmp/errormib.h mibdefs.h util_funcs.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/net-snmp-features.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
-./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/library/oid_stash.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/version.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/extensible.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -14193,7 +11520,6 @@
 ./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
@@ -14231,75 +11557,67 @@
 ./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: ../../agent/mibgroup/util_funcs.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/MIB_STATS_CACHE_TIMEOUT.h
-./ucd-snmp/extensible.lo: utilities/execute.h
+./ucd-snmp/extensible.lo: utilities/execute.h util_funcs.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
-./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/file.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/file.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/file.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/file.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/file.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/file.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/file.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/version.h
+./ucd-snmp/file.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/file.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/file.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/file.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -14308,7 +11626,6 @@
 ./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
@@ -14345,70 +11662,65 @@
 ./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
-./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/file.lo: ../../include/net-snmp/agent/mfd.h struct.h
+./ucd-snmp/file.lo: ./ucd-snmp/file.h mibdefs.h util_funcs.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
-./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/version.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/hpux.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -14417,7 +11729,6 @@
 ./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
@@ -14454,69 +11765,65 @@
 ./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.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
-./ucd-snmp/hpux.lo: ./ucd-snmp/hpux.h mibdefs.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/agent/mfd.h ./ucd-snmp/hpux.h
+./ucd-snmp/hpux.lo: mibdefs.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/net-snmp-features.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
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/oid_stash.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/version.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -14525,7 +11832,6 @@
 ./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
@@ -14562,180 +11868,66 @@
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/agent/table_iterator.h
 ./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/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
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/net-snmp-features.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_impl.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/getopt.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/utilities.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/system.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/tools.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/int64.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/mt_support.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_alarm.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/container.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_assert.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/version.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/config_api.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/read_config.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpv3.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/transform_oids.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/keytools.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/scapi.h
-./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
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/agent_module_config.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/snmp_agent.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/snmp_vars.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/agent_handler.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/var_struct.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/agent_registry.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/fd_event_manager.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/ds_agent.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/agent_read_config.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/agent_trap.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/all_helpers.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/instance.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/baby_steps.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/scalar.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/scalar_group.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/watcher.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/multiplexer.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/null.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/debug_handler.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/cache_handler.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/old_api.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/read_only.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/row_merge.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/serialize.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/mode_end_call.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/table.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/table_data.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/table_dataset.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/table_tdata.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/table_iterator.h
-./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/lmSensors.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h
+./ucd-snmp/lmSensors.lo: struct.h 
+./ucd-snmp/lmSensors.lo: ./ucd-snmp/lmSensors.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
-./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/version.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/loadave.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -14744,7 +11936,6 @@
 ./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
@@ -14782,72 +11973,169 @@
 ./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/loadave.lo: ./ucd-snmp/loadave.h mibdefs.h util_funcs.h
+./ucd-snmp/loadave.lo: ../../agent/kernel.h
 ./ucd-snmp/logmatch.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/logmatch.lo: ./ucd-snmp/logmatch.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/snmp_api.h
+./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/asn1.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/utilities.h
+./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp_client.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/callback.h
+./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/oid_stash.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/session_api.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/pdu_api.h
+./ucd-snmp/logmatch.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/logmatch.lo: ../../include/net-snmp/varbind_api.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: util_funcs.h ./ucd-snmp/logmatch.h mibdefs.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
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/version.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -14856,7 +12144,6 @@
 ./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
@@ -14894,70 +12181,66 @@
 ./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: util_funcs.h struct.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
-./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/version.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/memory.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -14966,7 +12249,6 @@
 ./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
@@ -15004,69 +12286,65 @@
 ./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
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/version.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -15075,7 +12353,6 @@
 ./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
@@ -15113,70 +12390,66 @@
 ./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: util_funcs.h struct.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
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/version.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -15185,7 +12458,6 @@
 ./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
@@ -15223,70 +12495,66 @@
 ./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: util_funcs.h struct.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
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/version.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -15295,7 +12563,6 @@
 ./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
@@ -15333,73 +12600,66 @@
 ./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/MIB_STATS_CACHE_TIMEOUT.h
-./ucd-snmp/memory_freebsd2.lo: ./ucd-snmp/memory.h
+./ucd-snmp/memory_freebsd2.lo: util_funcs.h struct.h ./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
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/version.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -15408,7 +12668,6 @@
 ./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
@@ -15446,70 +12705,66 @@
 ./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
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/version.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -15518,7 +12773,6 @@
 ./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
@@ -15556,70 +12810,66 @@
 ./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: util_funcs.h struct.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
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/version.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -15628,7 +12878,6 @@
 ./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
@@ -15666,71 +12915,66 @@
 ./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: util_funcs.h struct.h ./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/net-snmp-features.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
-./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/library/oid_stash.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/version.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/pass.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -15739,7 +12983,6 @@
 ./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
@@ -15776,185 +13019,66 @@
 ./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
-./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/header_generic.h
-./ucd-snmp/pass.lo: util_funcs/header_simple_table.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/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
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/net-snmp-features.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_impl.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/getopt.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/utilities.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/system.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/tools.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/int64.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/mt_support.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_alarm.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/container.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_assert.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/version.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/config_api.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/read_config.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/default_store.h
-./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/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
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/keytools.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/scapi.h
-./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
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/agent_module_config.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/snmp_agent.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/snmp_vars.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/agent_handler.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/var_struct.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/agent_registry.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/fd_event_manager.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/ds_agent.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/agent_read_config.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/agent_trap.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/all_helpers.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/instance.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/baby_steps.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/scalar.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/scalar_group.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/watcher.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/multiplexer.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/null.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/debug_handler.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/cache_handler.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/old_api.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/read_only.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/row_merge.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/serialize.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/mode_end_call.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/table.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/table_data.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/table_dataset.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/table_tdata.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/table_iterator.h
-./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/MIB_STATS_CACHE_TIMEOUT.h
-./ucd-snmp/pass_common.lo: ./ucd-snmp/pass_common.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/extensible.h
+./ucd-snmp/pass.lo: util_funcs.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/net-snmp-features.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
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/oid_stash.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/version.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -15963,7 +13087,6 @@
 ./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
@@ -16000,73 +13123,66 @@
 ./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
-./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/header_simple_table.h
-./ucd-snmp/pass_persist.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.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: ./ucd-snmp/extensible.h util_funcs.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/net-snmp-features.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
-./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/library/oid_stash.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/version.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/proc.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -16075,7 +13191,6 @@
 ./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
@@ -16112,72 +13227,66 @@
 ./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
-./ucd-snmp/proc.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
-./ucd-snmp/proc.lo: struct.h ./ucd-snmp/proc.h mibdefs.h util_funcs.h
-./ucd-snmp/proc.lo: util_funcs/header_generic.h
-./ucd-snmp/proc.lo: util_funcs/header_simple_table.h
-./ucd-snmp/proc.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h ../../agent/kernel.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 ../../agent/kernel.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/net-snmp-features.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
-./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/library/oid_stash.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/version.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/proxy.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -16186,7 +13295,6 @@
 ./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
@@ -16223,69 +13331,64 @@
 ./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.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
-./ucd-snmp/proxy.lo: ./ucd-snmp/proxy.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/agent/mfd.h ./ucd-snmp/proxy.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/net-snmp-features.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
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/oid_stash.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/version.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -16294,7 +13397,6 @@
 ./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
@@ -16331,72 +13433,65 @@
 ./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
-./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/header_generic.h util_funcs/restart.h
-./ucd-snmp/versioninfo.lo: util_funcs.h util_funcs/header_simple_table.h
-./ucd-snmp/versioninfo.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.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/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
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/version.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -16405,7 +13500,6 @@
 ./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
@@ -16442,70 +13536,66 @@
 ./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
-./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_aix4.lo: ../../include/net-snmp/agent/mfd.h mibdefs.h
+./ucd-snmp/vmstat_aix4.lo: util_funcs.h struct.h ./ucd-snmp/vmstat.h
+./ucd-snmp/vmstat_aix4.lo: ./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
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/version.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -16514,7 +13604,6 @@
 ./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
@@ -16552,70 +13641,66 @@
 ./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: util_funcs.h struct.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
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/version.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -16624,7 +13709,6 @@
 ./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
@@ -16662,70 +13746,66 @@
 ./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
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/version.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -16734,7 +13814,6 @@
 ./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
@@ -16772,70 +13851,66 @@
 ./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: util_funcs.h struct.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
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/version.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -16844,7 +13919,6 @@
 ./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
@@ -16881,70 +13955,66 @@
 ./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
-./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_dynix.lo: ../../include/net-snmp/agent/mfd.h mibdefs.h
+./ucd-snmp/vmstat_dynix.lo: util_funcs.h struct.h ./ucd-snmp/vmstat.h
+./ucd-snmp/vmstat_dynix.lo: ./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
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/version.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -16953,7 +14023,6 @@
 ./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
@@ -16991,71 +14060,66 @@
 ./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_freebsd2.lo: util_funcs.h struct.h ./ucd-snmp/vmstat.h
+./ucd-snmp/vmstat_freebsd2.lo: mibdefs.h ./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
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/version.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -17064,7 +14128,6 @@
 ./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
@@ -17101,70 +14164,66 @@
 ./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
-./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_hpux.lo: ../../include/net-snmp/agent/mfd.h mibdefs.h
+./ucd-snmp/vmstat_hpux.lo: util_funcs.h struct.h ./ucd-snmp/vmstat.h
+./ucd-snmp/vmstat_hpux.lo: ./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/net-snmp-features.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
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/oid_stash.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/version.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -17173,7 +14232,6 @@
 ./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
@@ -17211,71 +14269,67 @@
 ./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: mibdefs.h struct.h util_funcs.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
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/version.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -17284,7 +14338,6 @@
 ./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
@@ -17322,70 +14375,66 @@
 ./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: util_funcs.h struct.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
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/net-snmp-features.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_impl.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/getopt.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/system.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/tools.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/int64.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/mt_support.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_assert.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/version.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/config_api.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/read_config.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -17394,7 +14443,6 @@
 ./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
@@ -17431,431 +14479,66 @@
 ./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
-./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: ../../include/net-snmp/agent/mfd.h mibdefs.h
+./ucd-snmp/vmstat_solaris2.lo: util_funcs.h struct.h ./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/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/net-snmp-features.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: ./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
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/varbind_api.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmp_client.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/pdu_api.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/asn1.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/session_api.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/callback.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmp_transport.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/ucd_compat.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/mib.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/mib_api.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/parse.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/oid_stash.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/net-snmp-features.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmp_impl.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmp.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmp-tc.h
-./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/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
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/ucd_compat.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/mib.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/mib_api.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/parse.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/oid_stash.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/net-snmp-features.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_impl.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp-tc.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/getopt.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/utilities.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/system.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/tools.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/int64.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/mt_support.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_alarm.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/container.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_assert.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/version.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/config_api.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/read_config.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/default_store.h
-./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/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
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/keytools.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/scapi.h
-./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
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/agent_module_config.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/snmp_agent.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/snmp_vars.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/agent_handler.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/var_struct.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/agent_registry.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/fd_event_manager.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/ds_agent.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/agent_read_config.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/agent_trap.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/all_helpers.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/instance.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/baby_steps.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/scalar.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/scalar_group.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/watcher.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/multiplexer.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/null.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/debug_handler.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/cache_handler.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/old_api.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/read_only.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/row_merge.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/serialize.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/mode_end_call.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/table.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/table_data.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/table_dataset.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/table_tdata.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/agent/table_iterator.h
-./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/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
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/ucd_compat.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/mib.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/mib_api.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/parse.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/oid_stash.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/net-snmp-features.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_impl.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp-tc.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/getopt.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/utilities.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/system.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/tools.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/int64.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/mt_support.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_alarm.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/data_list.h
-./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/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
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/container.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_assert.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/version.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/config_api.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/read_config.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/default_store.h
-./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/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
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/keytools.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/scapi.h
-./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
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/agent_module_config.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/snmp_agent.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/snmp_vars.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/agent_handler.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/var_struct.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/agent_registry.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/fd_event_manager.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/ds_agent.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/agent_read_config.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/agent_trap.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/all_helpers.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/instance.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/baby_steps.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/scalar.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/scalar_group.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/watcher.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/multiplexer.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/null.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/debug_handler.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/cache_handler.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/old_api.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/read_only.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/row_merge.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/serialize.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/mode_end_call.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/table.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/table_data.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/table_dataset.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/table_tdata.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/table_iterator.h
-./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/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/net-snmp-features.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
-./utilities/execute.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./utilities/execute.lo: ../../include/net-snmp/library/ucd_compat.h
-./utilities/execute.lo: ../../include/net-snmp/library/mib.h
-./utilities/execute.lo: ../../include/net-snmp/mib_api.h
-./utilities/execute.lo: ../../include/net-snmp/library/parse.h
-./utilities/execute.lo: ../../include/net-snmp/library/oid_stash.h
-./utilities/execute.lo: ../../include/net-snmp/net-snmp-features.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmp_impl.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmp.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmp-tc.h
-./utilities/execute.lo: ../../include/net-snmp/library/getopt.h
 ./utilities/execute.lo: ../../include/net-snmp/utilities.h
+./utilities/execute.lo: ../../include/net-snmp/library/snmp_client.h
 ./utilities/execute.lo: ../../include/net-snmp/library/system.h
 ./utilities/execute.lo: ../../include/net-snmp/library/tools.h
 ./utilities/execute.lo: ../../include/net-snmp/library/int64.h
 ./utilities/execute.lo: ../../include/net-snmp/library/mt_support.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmp_alarm.h
+./utilities/execute.lo: ../../include/net-snmp/library/callback.h
 ./utilities/execute.lo: ../../include/net-snmp/library/data_list.h
+./utilities/execute.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./utilities/execute.lo: ../../include/net-snmp/library/container.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmp_assert.h
 ./utilities/execute.lo: ../../include/net-snmp/version.h
+./utilities/execute.lo: ../../include/net-snmp/session_api.h
+./utilities/execute.lo: ../../include/net-snmp/library/snmp_transport.h
+./utilities/execute.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./utilities/execute.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./utilities/execute.lo: ../../include/net-snmp/pdu_api.h
+./utilities/execute.lo: ../../include/net-snmp/mib_api.h
+./utilities/execute.lo: ../../include/net-snmp/library/mib.h
+./utilities/execute.lo: ../../include/net-snmp/library/parse.h
+./utilities/execute.lo: ../../include/net-snmp/varbind_api.h
 ./utilities/execute.lo: ../../include/net-snmp/config_api.h
 ./utilities/execute.lo: ../../include/net-snmp/library/read_config.h
 ./utilities/execute.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -17864,7 +14547,6 @@
 ./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
@@ -17902,69 +14584,64 @@
 ./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: ../../include/net-snmp/agent/snmp_get_statistic.h
-./utilities/execute.lo: ./ucd-snmp/errormib.h mibdefs.h ./utilities/execute.h
-./utilities/execute.lo: struct.h
+./utilities/execute.lo: ucd-snmp/errormib.h mibdefs.h util_funcs.h struct.h
 ./utilities/iquery.lo: ../../include/net-snmp/net-snmp-config.h
-./utilities/iquery.lo: ../../include/net-snmp/net-snmp-features.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
-./utilities/iquery.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./utilities/iquery.lo: ../../include/net-snmp/library/ucd_compat.h
-./utilities/iquery.lo: ../../include/net-snmp/library/mib.h
-./utilities/iquery.lo: ../../include/net-snmp/mib_api.h
-./utilities/iquery.lo: ../../include/net-snmp/library/parse.h
-./utilities/iquery.lo: ../../include/net-snmp/library/oid_stash.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmp_impl.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmp.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmp-tc.h
-./utilities/iquery.lo: ../../include/net-snmp/library/getopt.h
 ./utilities/iquery.lo: ../../include/net-snmp/utilities.h
+./utilities/iquery.lo: ../../include/net-snmp/library/snmp_client.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/system.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/tools.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/int64.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/mt_support.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmp_alarm.h
+./utilities/iquery.lo: ../../include/net-snmp/library/callback.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/data_list.h
+./utilities/iquery.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./utilities/iquery.lo: ../../include/net-snmp/library/container.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmp_assert.h
 ./utilities/iquery.lo: ../../include/net-snmp/version.h
+./utilities/iquery.lo: ../../include/net-snmp/session_api.h
+./utilities/iquery.lo: ../../include/net-snmp/library/snmp_transport.h
+./utilities/iquery.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./utilities/iquery.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./utilities/iquery.lo: ../../include/net-snmp/pdu_api.h
+./utilities/iquery.lo: ../../include/net-snmp/mib_api.h
+./utilities/iquery.lo: ../../include/net-snmp/library/mib.h
+./utilities/iquery.lo: ../../include/net-snmp/library/parse.h
+./utilities/iquery.lo: ../../include/net-snmp/varbind_api.h
 ./utilities/iquery.lo: ../../include/net-snmp/config_api.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/read_config.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -17973,7 +14650,6 @@
 ./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
@@ -18010,69 +14686,64 @@
 ./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.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
-./utilities/iquery.lo: utilities/iquery.h
+./utilities/iquery.lo: ../../include/net-snmp/agent/mfd.h 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
-./utilities/override.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./utilities/override.lo: ../../include/net-snmp/library/ucd_compat.h
-./utilities/override.lo: ../../include/net-snmp/library/mib.h
-./utilities/override.lo: ../../include/net-snmp/mib_api.h
-./utilities/override.lo: ../../include/net-snmp/library/parse.h
-./utilities/override.lo: ../../include/net-snmp/library/oid_stash.h
-./utilities/override.lo: ../../include/net-snmp/net-snmp-features.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmp_impl.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmp.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmp-tc.h
-./utilities/override.lo: ../../include/net-snmp/library/getopt.h
 ./utilities/override.lo: ../../include/net-snmp/utilities.h
+./utilities/override.lo: ../../include/net-snmp/library/snmp_client.h
 ./utilities/override.lo: ../../include/net-snmp/library/system.h
 ./utilities/override.lo: ../../include/net-snmp/library/tools.h
 ./utilities/override.lo: ../../include/net-snmp/library/int64.h
 ./utilities/override.lo: ../../include/net-snmp/library/mt_support.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmp_alarm.h
+./utilities/override.lo: ../../include/net-snmp/library/callback.h
 ./utilities/override.lo: ../../include/net-snmp/library/data_list.h
+./utilities/override.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./utilities/override.lo: ../../include/net-snmp/library/container.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmp_assert.h
 ./utilities/override.lo: ../../include/net-snmp/version.h
+./utilities/override.lo: ../../include/net-snmp/session_api.h
+./utilities/override.lo: ../../include/net-snmp/library/snmp_transport.h
+./utilities/override.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./utilities/override.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./utilities/override.lo: ../../include/net-snmp/pdu_api.h
+./utilities/override.lo: ../../include/net-snmp/mib_api.h
+./utilities/override.lo: ../../include/net-snmp/library/mib.h
+./utilities/override.lo: ../../include/net-snmp/library/parse.h
+./utilities/override.lo: ../../include/net-snmp/varbind_api.h
 ./utilities/override.lo: ../../include/net-snmp/config_api.h
 ./utilities/override.lo: ../../include/net-snmp/library/read_config.h
 ./utilities/override.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -18081,7 +14752,6 @@
 ./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
@@ -18118,5 +14788,5 @@
 ./utilities/override.lo: ../../include/net-snmp/agent/table_iterator.h
 ./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/override.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./utilities/override.lo: ../../include/net-snmp/agent/mfd.h util_funcs.h
+./utilities/override.lo: struct.h
diff --git a/agent/mibgroup/Makefile.in b/agent/mibgroup/Makefile.in
index 2341ab4..f641ab7 100644
--- a/agent/mibgroup/Makefile.in
+++ b/agent/mibgroup/Makefile.in
@@ -1,6 +1,4 @@
 top_builddir=../..
-mysubdir=agent/mibgroup
-
 # currently assumes gcc:    (XXX: fix via configure tests)
 DLFLAGS=-fPIC -shared
 
@@ -18,8 +16,6 @@ CPPFLAGS= $(TOP_INCLUDES) -I. $(AGENT_INCLUDES) $(MIBGROUP_INCLUDES) \
 
 OTHERCLEANTARGETS=@dllcleans@
 
-FEATUREFILE=../../include/net-snmp/agent/features-mibgroups.h
-
 # Need a special .c -> .o definition here to make sure we place the
 # object files in the sub directory.
 
@@ -29,12 +25,10 @@ FEATUREFILE=../../include/net-snmp/agent/features-mibgroups.h
 @mib_module_list_o@
 @mib_module_list_lo@
 @mib_module_list_c@
- at mib_module_list_ft@
 
-OBJS   = $(mib_module_list_o)
-LOBJS  = $(mib_module_list_lo)
-SRCS   = $(mib_module_list_c)
-FTOBJS = $(mib_module_list_ft)
+OBJS  = $(mib_module_list_o)
+LOBJS = $(mib_module_list_lo)
+SRCS  = $(mib_module_list_c)
 
 all: standardall $(LOBJS)
 
diff --git a/agent/mibgroup/Rmon.h b/agent/mibgroup/Rmon.h
index 3a7d3a4..847eaa9 100644
--- a/agent/mibgroup/Rmon.h
+++ b/agent/mibgroup/Rmon.h
@@ -47,9 +47,7 @@
 config_require(Rmon/rows)
 config_require(Rmon/agutil)
 config_require(Rmon/statistics)
-/* older implementation: */
-/* config_require(Rmon/alarm) */
-config_require(Rmon/alarmTable)
+config_require(Rmon/alarm)
 config_require(Rmon/history)
 config_require(Rmon/event)
 config_add_mib(RMON-MIB)
diff --git a/agent/mibgroup/Rmon/agutil.c b/agent/mibgroup/Rmon/agutil.c
index 12c6342..3b0c87a 100644
--- a/agent/mibgroup/Rmon/agutil.c
+++ b/agent/mibgroup/Rmon/agutil.c
@@ -22,6 +22,8 @@
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
+#include "util_funcs.h"
+
 #include "agutil.h"
 #include "agutil_api.h"
 
@@ -200,7 +202,20 @@ AGUTIL_get_oid_value(u_char * var_val, u_char var_val_type,
 u_long
 AGUTIL_sys_up_time(void)
 {
-    return netsnmp_get_agent_runtime();
+    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;
 }
 
 /*
diff --git a/agent/mibgroup/Rmon/alarm.c b/agent/mibgroup/Rmon/alarm.c
index 95cb017..a04d415 100644
--- a/agent/mibgroup/Rmon/alarm.c
+++ b/agent/mibgroup/Rmon/alarm.c
@@ -27,7 +27,11 @@
 #include <unistd.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -39,6 +43,7 @@
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
+#include "util_funcs.h"
 #include "alarm.h"
     /*
      * Implementation headers 
@@ -679,30 +684,23 @@ var_alarmEntry(struct variable * vp, oid * name, size_t * length,
 oid             oidalarmVariablesOid[] = { 1, 3, 6, 1, 2, 1, 16, 3 };
 
 struct variable7 oidalarmVariables[] = {
-    {IDalarmIndex, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_alarmEntry, 3, {1, 1, 1}},
-    {IDalarmInterval, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_alarmEntry, 3, {1, 1, 2}},
-    {IDalarmVariable, ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
-     var_alarmEntry, 3, {1, 1, 3}},
-    {IDalarmSampleType, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_alarmEntry, 3, {1, 1, 4}},
-    {IDalarmValue, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_alarmEntry, 3, {1, 1, 5}},
-    {IDalarmStartupAlarm, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_alarmEntry, 3, {1, 1, 6}},
-    {IDalarmRisingThreshold, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_alarmEntry, 3, {1, 1, 7}},
-    {IDalarmFallingThreshold, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_alarmEntry, 3, {1, 1, 8}},
-    {IDalarmRisingEventIndex, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_alarmEntry, 3, {1, 1, 9}},
-    {IDalarmFallingEventIndex, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_alarmEntry, 3, {1, 1, 10}},
-    {IDalarmOwner, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_alarmEntry, 3, {1, 1, 11}},
-    {IDalarmStatus, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_alarmEntry, 3, {1, 1, 12}}
+    {IDalarmIndex, ASN_INTEGER, RONLY, var_alarmEntry, 3, {1, 1, 1}},
+    {IDalarmInterval, ASN_INTEGER, RWRITE, var_alarmEntry, 3, {1, 1, 2}},
+    {IDalarmVariable, ASN_OBJECT_ID, RWRITE, var_alarmEntry, 3, {1, 1, 3}},
+    {IDalarmSampleType, ASN_INTEGER, RWRITE, var_alarmEntry, 3, {1, 1, 4}},
+    {IDalarmValue, ASN_INTEGER, RONLY, var_alarmEntry, 3, {1, 1, 5}},
+    {IDalarmStartupAlarm, ASN_INTEGER, RWRITE, var_alarmEntry, 3,
+     {1, 1, 6}},
+    {IDalarmRisingThreshold, ASN_INTEGER, RWRITE, var_alarmEntry, 3,
+     {1, 1, 7}},
+    {IDalarmFallingThreshold, ASN_INTEGER, RWRITE, var_alarmEntry, 3,
+     {1, 1, 8}},
+    {IDalarmRisingEventIndex, ASN_INTEGER, RWRITE, var_alarmEntry, 3,
+     {1, 1, 9}},
+    {IDalarmFallingEventIndex, ASN_INTEGER, RWRITE, var_alarmEntry, 3,
+     {1, 1, 10}},
+    {IDalarmOwner, ASN_OCTET_STR, RWRITE, var_alarmEntry, 3, {1, 1, 11}},
+    {IDalarmStatus, ASN_INTEGER, RWRITE, var_alarmEntry, 3, {1, 1, 12}}
 };
 
 void
diff --git a/agent/mibgroup/Rmon/alarm.h b/agent/mibgroup/Rmon/alarm.h
index 05f2152..ae48c2d 100644
--- a/agent/mibgroup/Rmon/alarm.h
+++ b/agent/mibgroup/Rmon/alarm.h
@@ -21,6 +21,8 @@
 #ifndef _MIBGROUP_ALARM_H
 #define _MIBGROUP_ALARM_H
 
+config_require(util_funcs)
+
     /*
      * function prototypes 
      */
diff --git a/agent/mibgroup/Rmon/alarmTable.c b/agent/mibgroup/Rmon/alarmTable.c
deleted file mode 100644
index 6181628..0000000
--- a/agent/mibgroup/Rmon/alarmTable.c
+++ /dev/null
@@ -1,842 +0,0 @@
-/*--------------------------------------------------------------------------+
-| Edition History:                                                          |
-| #   Date     Comments                                                 By  |
-| --- -------- -------------------------------------------------------- --- |
-|   1 07/05/18 Created.                                                 emi |
-+--------------------------------------------------------------------------*/
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : mib2c.table_data.conf,v 1.11.2.1 2006/01/11 15:17:47 dts12 Exp $
- */
-
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include "utilities/iquery.h"
-#include "alarmTable.h"
-
-netsnmp_feature_require(iquery)
-netsnmp_feature_require(query_set_default_session)
-netsnmp_feature_require(table_tdata)
-netsnmp_feature_require(check_vb_type_and_max_size)
-netsnmp_feature_require(table_tdata_extract_table)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(table_tdata_insert_row)
-netsnmp_feature_require(iquery_pdu_session)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-/** Initializes the alarmTable module */
-void
-init_alarmTable(void)
-{
-    /*
-     * here we initialize all the tables we're planning on supporting 
-     */
-    initialize_table_alarmTable();
-}
-
-/** Initialize the alarmTable table by defining its contents and how it's structured */
-void
-initialize_table_alarmTable(void)
-{
-    static oid      alarmTable_oid[] = { 1, 3, 6, 1, 2, 1, 16, 3, 1 };
-    size_t          alarmTable_oid_len = OID_LENGTH(alarmTable_oid);
-    netsnmp_handler_registration *reg;
-    netsnmp_tdata  *table_data;
-    netsnmp_table_registration_info *table_info;
-
-    DEBUGMSGTL(( "rmon:alarmTable", "initialize_table_alarmTable called.\n"));
-    reg =
-        netsnmp_create_handler_registration("alarmTable",
-                                            alarmTable_handler,
-                                            alarmTable_oid,
-                                            alarmTable_oid_len,
-                                            HANDLER_CAN_RWRITE);
-
-    table_data = netsnmp_tdata_create_table("alarmTable", 0);
-    table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
-    netsnmp_table_helper_add_indexes(table_info, ASN_INTEGER,   /* index: alarmIndex */
-                                     0);
-
-    table_info->min_column = COLUMN_ALARMINDEX;
-    table_info->max_column = COLUMN_ALARMSTATUS;
-
-    netsnmp_tdata_register(reg, table_data, table_info);
-
-    /*
-     * Initialise the contents of the table here 
-     */
-}
-
-extern int
-event_api_send_alarm(u_char is_rising,
-                     u_long alarm_index,
-                     u_long event_index,
-                     oid * alarmed_var,
-                     size_t alarmed_var_length,
-                     u_long sample_type,
-                     u_long value,
-                     u_long the_threshold, const char *alarm_descr);
-
-#define ALARM_STR1_LEN	32
-typedef enum {
-    RMON1_ENTRY_VALID = 1,
-    RMON1_ENTRY_CREATE_REQUEST,
-    RMON1_ENTRY_UNDER_CREATION,
-    RMON1_ENTRY_INVALID
-} RMON1_ENTRY_STATUS_T;
-
-typedef enum {
-    SAMPLE_TYPE_ABSOLUTE =
-    1,
-    SAMPLE_TYPE_DELTE
-} SAMPLE_TYPE_T;
-
-typedef enum {
-    ALARM_NOTHING =
-    0,
-    ALARM_RISING,
-    ALARM_FALLING,
-    ALARM_BOTH
-} ALARM_TYPE_T;
-    /*
-     * Typical data structure for a row entry 
-     */
-struct alarmTable_entry {
-    /*
-     * Index values 
-     */
-    long            alarmIndex;
-
-    /*
-     * Column values 
-     */
-    long            alarmInterval;
-    long            old_alarmInterval;
-    oid             alarmVariable[ALARM_STR1_LEN];
-    size_t          alarmVariable_len;
-    oid             old_alarmVariable[ALARM_STR1_LEN];
-    size_t          old_alarmVariable_len;
-    long            alarmSampleType;
-    long            old_alarmSampleType;
-    long            alarmValue;
-    long            alarmStartupAlarm;
-    long            old_alarmStartupAlarm;
-    long            alarmRisingThreshold;
-    long            old_alarmRisingThreshold;
-    long            alarmFallingThreshold;
-    long            old_alarmFallingThreshold;
-    long            alarmRisingEventIndex;
-    long            old_alarmRisingEventIndex;
-    long            alarmFallingEventIndex;
-    long            old_alarmFallingEventIndex;
-    char            alarmOwner[ALARM_STR1_LEN];
-    size_t          alarmOwner_len;
-    char            old_alarmOwner[ALARM_STR1_LEN];
-    size_t          old_alarmOwner_len;
-    long            alarmStatus;
-    long            old_alarmStatus;
-
-    int             valid;
-    unsigned int    alarm_reg;
-    netsnmp_session *session;
-    u_long          last_abs_value;
-    ALARM_TYPE_T    prev_alarm;        /* NOTHING | RISING | FALLING */
-};
-
-
-void
-alarmTable_run( unsigned int reg, void *clientarg)
-{
-    struct alarmTable_entry *entry = (struct alarmTable_entry *)clientarg;
-    netsnmp_variable_list *var;
-    u_long new_value;
-    int rc;
-
-    if (!entry) {
-        snmp_alarm_unregister( reg );
-        return;
-    }
-    /*
-     * Retrieve the requested MIB value(s)...
-     */
-    DEBUGMSGTL(( "rmon:alarmTable", "alarmTable_run called\n"));
-    var = (netsnmp_variable_list *)SNMP_MALLOC_TYPEDEF( netsnmp_variable_list );
-    if (!var) {
-        snmp_log(LOG_ERR,"failed to create alarmTable query varbind");
-        return;
-    }
-    snmp_set_var_objid( var, entry->alarmVariable,
-                             entry->alarmVariable_len );
-    
-    rc = netsnmp_query_get(  var, entry->session );
-    if ( rc != SNMP_ERR_NOERROR ) {
-        DEBUGMSGTL(( "rmon:alarmTable", "alarmVariable query failed (%d)\n", rc));
-        snmp_free_varbind(var);
-        return;
-    }
-
-	switch (var->type) {
-    case ASN_INTEGER:
-    case ASN_COUNTER:
-    case ASN_TIMETICKS:
-    case ASN_GAUGE:
-    case ASN_COUNTER64:
-        new_value = *var->val.integer;
-        break;
-    default:
-        DEBUGMSGTL(("rmon:alarmTable", "invalid type (%d)\n", var->type));
-        snmp_free_varbind(var);
-        return ;
-    }
-
-    DEBUGMSGTL(("rmon:alarmTable", "alarmIndex.%ld last value (%ld)\n", entry->alarmIndex, entry->last_abs_value));
-    DEBUGMSGTL(("rmon:alarmTable", "alarmIndex.%ld new_value (%ld)\n", entry->alarmIndex, new_value));
-
-    entry->alarmValue = (SAMPLE_TYPE_ABSOLUTE == entry->alarmSampleType) ?
-        new_value : new_value - entry->last_abs_value;
-    entry->last_abs_value = new_value;
-
-    if (ALARM_RISING != entry->prev_alarm &&
-        entry->alarmValue >= entry->alarmRisingThreshold) {
-        if (SNMP_ERR_NOERROR == event_api_send_alarm(1, entry->alarmIndex,
-                                                 entry->alarmRisingEventIndex,
-                                                 entry->alarmVariable,
-                                                 entry->alarmVariable_len,
-                                                 entry->alarmSampleType, 
-                                                 entry->alarmValue,
-                                                 entry->alarmRisingThreshold,
-                                                 "Rising"))
-            entry->prev_alarm = ALARM_RISING;
-        else 
-            snmp_log(LOG_ERR,"failed to send rising alarm\n");
-    }
-    else if (ALARM_FALLING != entry->prev_alarm &&
-             entry->alarmValue <= entry->alarmFallingThreshold) {
-        if (SNMP_ERR_NOERROR == event_api_send_alarm(0, entry->alarmIndex,
-                                                      entry->alarmFallingEventIndex,
-                                                      entry->alarmVariable,
-                                                      entry->alarmVariable_len, 
-                                                      entry->alarmSampleType,
-                                                      entry->alarmValue,
-                                                      entry->alarmFallingThreshold,
-                                                      "Falling"))
-            entry->prev_alarm = ALARM_FALLING;
-        else 
-            snmp_log(LOG_ERR,"failed to send falling alarm\n");
-    }
-    else
-        DEBUGMSGTL(("rmon:alarmTable", "no alarm sent\n"));
-
-    snmp_free_varbind(var);
-}
-
-void
-alarmTable_enable( struct alarmTable_entry *entry )
-{
-    if (!entry)
-        return;
-
-    DEBUGMSGTL(( "rmon:alarmTable", "alarmTable_enable called.\n"));
-    if (entry->alarm_reg) {
-        snmp_alarm_unregister( entry->alarm_reg );
-        entry->alarm_reg = 0;
-    }
-
-    if (entry->alarmInterval) {
-        /*
-         * register once to run ASAP, and another to run
-         * at the trigger frequency
-         */
-        snmp_alarm_register(0, 0, alarmTable_run, entry );
-        entry->alarm_reg = snmp_alarm_register(
-                           entry->alarmInterval, SA_REPEAT,
-                           alarmTable_run, entry );
-    }
-}
-
-void
-alarmTable_disable( struct alarmTable_entry *entry )
-{
-    if (!entry)
-        return;
-
-    DEBUGMSGTL(( "rmon:alarmTable", "alarmTable_disable called.\n"));
-    if (entry->alarm_reg) {
-        snmp_alarm_unregister( entry->alarm_reg );
-        entry->alarm_reg = 0;
-        /* XXX - perhaps release any previous results */
-    }
-}
-
-/*
- * create a new row in the table 
- */
-netsnmp_tdata_row *
-alarmTable_createEntry(netsnmp_tdata * table_data, long alarmIndex)
-{
-    struct alarmTable_entry *entry;
-    netsnmp_tdata_row *row;
-
-    DEBUGMSGTL(( "rmon:alarmTable", "alarmTable_createEntry called.\n"));
-    entry = SNMP_MALLOC_TYPEDEF(struct alarmTable_entry);
-    if (!entry)
-        return NULL;
-
-    row = netsnmp_tdata_create_row();
-    if (!row) {
-        SNMP_FREE(entry);
-        return NULL;
-    }
-    row->data = entry;
-    entry->alarmIndex = alarmIndex;
-    entry->alarmInterval = 1;
-    entry->alarmSampleType = SAMPLE_TYPE_ABSOLUTE;
-    entry->alarmStartupAlarm = ALARM_BOTH;
-    entry->alarmRisingThreshold = 10;
-    entry->alarmFallingThreshold = 5;
-    entry->alarmRisingEventIndex = alarmIndex;
-    entry->alarmFallingEventIndex = alarmIndex;
-    entry->prev_alarm = ALARM_NOTHING;
-    netsnmp_tdata_row_add_index(row, ASN_INTEGER,
-                                &(entry->alarmIndex),
-                                sizeof(entry->alarmIndex));
-    netsnmp_tdata_add_row(table_data, row);
-    return row;
-}
-
-/*
- * remove a row from the table 
- */
-void
-alarmTable_removeEntry(netsnmp_tdata * table_data, netsnmp_tdata_row * row)
-{
-    struct alarmTable_entry *entry;
-
-    DEBUGMSGTL(( "rmon:alarmTable", "alarmTable_removeEntry called.\n"));
-    if (!row)
-        return;                 /* Nothing to remove */
-    entry = (struct alarmTable_entry *)
-        netsnmp_tdata_remove_and_delete_row(table_data, row);
-    if (entry) {
-        alarmTable_disable(entry);
-        SNMP_FREE(entry);       /* XXX - release any other internal resources */
-    }
-}
-
-
-/** handles requests for the alarmTable table */
-int
-alarmTable_handler(netsnmp_mib_handler *handler,
-                   netsnmp_handler_registration *reginfo,
-                   netsnmp_agent_request_info *reqinfo,
-                   netsnmp_request_info *requests)
-{
-    netsnmp_request_info *request;
-    netsnmp_table_request_info *table_info;
-    netsnmp_tdata  *table_data;
-    netsnmp_tdata_row *table_row;
-    struct alarmTable_entry *table_entry;
-    int             ret;
-    netsnmp_session *sess = NULL;
-    char           *secName;
-
-    DEBUGMSGTL(( "rmon:alarmTable", "alarmTable_handler called.\n"));
-    switch (reqinfo->mode) {
-        /*
-         * Read-support (also covers GetNext requests)
-         */
-    case MODE_GET:
-        for (request = requests; request; request = request->next) {
-            table_entry = (struct alarmTable_entry *)
-                netsnmp_tdata_extract_entry(request);
-            table_info = netsnmp_extract_table_info(request);
-
-            switch (table_info->colnum) {
-            case COLUMN_ALARMINDEX:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->alarmIndex);
-                break;
-            case COLUMN_ALARMINTERVAL:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->alarmInterval);
-                break;
-            case COLUMN_ALARMVARIABLE:
-                snmp_set_var_typed_value(request->requestvb, ASN_OBJECT_ID,
-                                         (u_char *) table_entry->
-                                         alarmVariable,
-                                         table_entry->alarmVariable_len *
-                                         sizeof(oid));
-                break;
-            case COLUMN_ALARMSAMPLETYPE:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->alarmSampleType);
-                break;
-            case COLUMN_ALARMVALUE:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->alarmValue);
-                break;
-            case COLUMN_ALARMSTARTUPALARM:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->alarmStartupAlarm);
-                break;
-            case COLUMN_ALARMRISINGTHRESHOLD:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->
-                                           alarmRisingThreshold);
-                break;
-            case COLUMN_ALARMFALLINGTHRESHOLD:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->
-                                           alarmFallingThreshold);
-                break;
-            case COLUMN_ALARMRISINGEVENTINDEX:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->
-                                           alarmRisingEventIndex);
-                break;
-            case COLUMN_ALARMFALLINGEVENTINDEX:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->
-                                           alarmFallingEventIndex);
-                break;
-            case COLUMN_ALARMOWNER:
-                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,
-                                         (u_char *) table_entry->
-                                         alarmOwner,
-                                         table_entry->alarmOwner_len);
-                break;
-            case COLUMN_ALARMSTATUS:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->alarmStatus);
-                break;
-            }
-        }
-        break;
-
-        /*
-         * Write-support
-         */
-    case MODE_SET_RESERVE1:
-        for (request = requests; request; request = request->next) {
-            table_entry = (struct alarmTable_entry *)
-                netsnmp_tdata_extract_entry(request);
-            table_info = netsnmp_extract_table_info(request);
-
-            switch (table_info->colnum) {
-            case COLUMN_ALARMINTERVAL:
-                /*
-                 * or possibly 'netsnmp_check_vb_int_range' 
-                 */
-                ret = netsnmp_check_vb_int(request->requestvb);
-                if (ret != SNMP_ERR_NOERROR) {
-                    netsnmp_set_request_error(reqinfo, request, ret);
-                    return SNMP_ERR_NOERROR;
-                }
-                break;
-            case COLUMN_ALARMVARIABLE:
-                /*
-                 * or possibly 'netsnmp_check_vb_type_and_max_size' 
-                 */
-                break;
-            case COLUMN_ALARMSAMPLETYPE:
-                /*
-                 * or possibly 'netsnmp_check_vb_int_range' 
-                 */
-                ret = netsnmp_check_vb_int(request->requestvb);
-                if (ret != SNMP_ERR_NOERROR) {
-                    netsnmp_set_request_error(reqinfo, request, ret);
-                    return SNMP_ERR_NOERROR;
-                }
-                break;
-            case COLUMN_ALARMSTARTUPALARM:
-                /*
-                 * or possibly 'netsnmp_check_vb_int_range' 
-                 */
-                ret = netsnmp_check_vb_int(request->requestvb);
-                if (ret != SNMP_ERR_NOERROR) {
-                    netsnmp_set_request_error(reqinfo, request, ret);
-                    return SNMP_ERR_NOERROR;
-                }
-                break;
-            case COLUMN_ALARMRISINGTHRESHOLD:
-                /*
-                 * or possibly 'netsnmp_check_vb_int_range' 
-                 */
-                ret = netsnmp_check_vb_int(request->requestvb);
-                if (ret != SNMP_ERR_NOERROR) {
-                    netsnmp_set_request_error(reqinfo, request, ret);
-                    return SNMP_ERR_NOERROR;
-                }
-                break;
-            case COLUMN_ALARMFALLINGTHRESHOLD:
-                /*
-                 * or possibly 'netsnmp_check_vb_int_range' 
-                 */
-                ret = netsnmp_check_vb_int(request->requestvb);
-                if (ret != SNMP_ERR_NOERROR) {
-                    netsnmp_set_request_error(reqinfo, request, ret);
-                    return SNMP_ERR_NOERROR;
-                }
-                break;
-            case COLUMN_ALARMRISINGEVENTINDEX:
-                /*
-                 * or possibly 'netsnmp_check_vb_int_range' 
-                 */
-                ret = netsnmp_check_vb_int(request->requestvb);
-                if (ret != SNMP_ERR_NOERROR) {
-                    netsnmp_set_request_error(reqinfo, request, ret);
-                    return SNMP_ERR_NOERROR;
-                }
-                break;
-            case COLUMN_ALARMFALLINGEVENTINDEX:
-                /*
-                 * or possibly 'netsnmp_check_vb_int_range' 
-                 */
-                ret = netsnmp_check_vb_int(request->requestvb);
-                if (ret != SNMP_ERR_NOERROR) {
-                    netsnmp_set_request_error(reqinfo, request, ret);
-                    return SNMP_ERR_NOERROR;
-                }
-                break;
-            case COLUMN_ALARMOWNER:
-                /*
-                 * or possibly 'netsnmp_check_vb_type_and_max_size' 
-                 */
-                break;
-            case COLUMN_ALARMSTATUS:
-                /*
-                 * or possibly 'netsnmp_check_vb_int_range' 
-                 */
-                ret = netsnmp_check_vb_int(request->requestvb);
-                if (ret != SNMP_ERR_NOERROR) {
-                    netsnmp_set_request_error(reqinfo, request, ret);
-                    return SNMP_ERR_NOERROR;
-                }
-                break;
-            default:
-                netsnmp_set_request_error(reqinfo, request,
-                                          SNMP_ERR_NOTWRITABLE);
-                return SNMP_ERR_NOERROR;
-            }
-        }
-        break;
-
-    case MODE_SET_RESERVE2:
-        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);
-
-            switch (table_info->colnum) {
-            case COLUMN_ALARMINTERVAL:
-            case COLUMN_ALARMVARIABLE:
-            case COLUMN_ALARMSAMPLETYPE:
-            case COLUMN_ALARMSTARTUPALARM:
-            case COLUMN_ALARMRISINGTHRESHOLD:
-            case COLUMN_ALARMFALLINGTHRESHOLD:
-            case COLUMN_ALARMRISINGEVENTINDEX:
-            case COLUMN_ALARMFALLINGEVENTINDEX:
-            case COLUMN_ALARMOWNER:
-            case COLUMN_ALARMSTATUS:
-                if (!table_row) {
-                    table_row =
-                        alarmTable_createEntry(table_data,
-                                               *table_info->indexes->val.
-                                               integer);
-                    if (table_row) {
-                        netsnmp_insert_tdata_row(request, table_row);
-                    } else {
-                        netsnmp_set_request_error(reqinfo, request,
-                                                  SNMP_ERR_RESOURCEUNAVAILABLE);
-                        return SNMP_ERR_NOERROR;
-                    }
-                }
-                break;
-            }
-        }
-        break;
-
-    case MODE_SET_FREE:
-        for (request = requests; request; request = request->next) {
-            table_entry = (struct alarmTable_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_ALARMINTERVAL:
-            case COLUMN_ALARMVARIABLE:
-            case COLUMN_ALARMSAMPLETYPE:
-            case COLUMN_ALARMSTARTUPALARM:
-            case COLUMN_ALARMRISINGTHRESHOLD:
-            case COLUMN_ALARMFALLINGTHRESHOLD:
-            case COLUMN_ALARMRISINGEVENTINDEX:
-            case COLUMN_ALARMFALLINGEVENTINDEX:
-            case COLUMN_ALARMOWNER:
-            case COLUMN_ALARMSTATUS:
-                if (table_entry && !table_entry->valid) {
-                    alarmTable_removeEntry(table_data, table_row);
-                }
-                break;
-            }
-        }
-        break;
-
-    case MODE_SET_ACTION:
-        for (request = requests; request; request = request->next) {
-            table_entry = (struct alarmTable_entry *)
-                netsnmp_tdata_extract_entry(request);
-            table_info = netsnmp_extract_table_info(request);
-
-            switch (table_info->colnum) {
-            case COLUMN_ALARMINTERVAL:
-                table_entry->old_alarmInterval =
-                    table_entry->alarmInterval;
-                table_entry->alarmInterval =
-                    *request->requestvb->val.integer;
-                break;
-            case COLUMN_ALARMVARIABLE:
-                table_entry->alarmVariable_len =
-                    request->requestvb->val_len / sizeof(oid);
-                memset(table_entry->alarmVariable, 0,
-                       sizeof(table_entry->alarmVariable));
-                memcpy(table_entry->alarmVariable,
-                       request->requestvb->val.objid,
-                       request->requestvb->val_len);
-                break;
-            case COLUMN_ALARMSAMPLETYPE:
-                table_entry->old_alarmSampleType =
-                    table_entry->alarmSampleType;
-                table_entry->alarmSampleType =
-                    *request->requestvb->val.integer;
-                break;
-            case COLUMN_ALARMSTARTUPALARM:
-                table_entry->old_alarmStartupAlarm =
-                    table_entry->alarmStartupAlarm;
-                table_entry->alarmStartupAlarm =
-                    *request->requestvb->val.integer;
-                break;
-            case COLUMN_ALARMRISINGTHRESHOLD:
-                table_entry->old_alarmRisingThreshold =
-                    table_entry->alarmRisingThreshold;
-                table_entry->alarmRisingThreshold =
-                    *request->requestvb->val.integer;
-                break;
-            case COLUMN_ALARMFALLINGTHRESHOLD:
-                table_entry->old_alarmFallingThreshold =
-                    table_entry->alarmFallingThreshold;
-                table_entry->alarmFallingThreshold =
-                    *request->requestvb->val.integer;
-                break;
-            case COLUMN_ALARMRISINGEVENTINDEX:
-                table_entry->old_alarmRisingEventIndex =
-                    table_entry->alarmRisingEventIndex;
-                table_entry->alarmRisingEventIndex =
-                    *request->requestvb->val.integer;
-                break;
-            case COLUMN_ALARMFALLINGEVENTINDEX:
-                table_entry->old_alarmFallingEventIndex =
-                    table_entry->alarmFallingEventIndex;
-                table_entry->alarmFallingEventIndex =
-                    *request->requestvb->val.integer;
-                break;
-            case COLUMN_ALARMOWNER:
-                memcpy(table_entry->old_alarmOwner,
-                       table_entry->alarmOwner,
-                       sizeof(table_entry->alarmOwner));
-                table_entry->old_alarmOwner_len =
-                    table_entry->alarmOwner_len;
-                memset(table_entry->alarmOwner, 0,
-                       sizeof(table_entry->alarmOwner));
-                memcpy(table_entry->alarmOwner,
-                       request->requestvb->val.string,
-                       request->requestvb->val_len);
-                table_entry->alarmOwner_len = request->requestvb->val_len;
-                break;
-            case COLUMN_ALARMSTATUS:
-                table_entry->old_alarmStatus = table_entry->alarmStatus;
-                table_entry->alarmStatus =
-                    *request->requestvb->val.integer;
-                break;
-            }
-        }
-        break;
-
-    case MODE_SET_UNDO:
-        for (request = requests; request; request = request->next) {
-            table_entry = (struct alarmTable_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_ALARMINTERVAL:
-                if (table_entry && !table_entry->valid) {
-                    alarmTable_removeEntry(table_data, table_row);
-                } else {
-                    table_entry->alarmInterval =
-                        table_entry->old_alarmInterval;
-                    table_entry->old_alarmInterval = 0;
-                }
-                break;
-            case COLUMN_ALARMVARIABLE:
-                if (table_entry && !table_entry->valid) {
-                    alarmTable_removeEntry(table_data, table_row);
-                } else {
-                    memcpy(table_entry->alarmVariable,
-                           table_entry->old_alarmVariable,
-                           sizeof(table_entry->alarmVariable));
-                    memset(table_entry->old_alarmVariable, 0,
-                           sizeof(table_entry->alarmVariable));
-                    table_entry->alarmVariable_len =
-                        table_entry->old_alarmVariable_len;
-                }
-                break;
-            case COLUMN_ALARMSAMPLETYPE:
-                if (table_entry && !table_entry->valid) {
-                    alarmTable_removeEntry(table_data, table_row);
-                } else {
-                    table_entry->alarmSampleType =
-                        table_entry->old_alarmSampleType;
-                    table_entry->old_alarmSampleType = 0;
-                }
-                break;
-            case COLUMN_ALARMSTARTUPALARM:
-                if (table_entry && !table_entry->valid) {
-                    alarmTable_removeEntry(table_data, table_row);
-                } else {
-                    table_entry->alarmStartupAlarm =
-                        table_entry->old_alarmStartupAlarm;
-                    table_entry->old_alarmStartupAlarm = 0;
-                }
-                break;
-            case COLUMN_ALARMRISINGTHRESHOLD:
-                if (table_entry && !table_entry->valid) {
-                    alarmTable_removeEntry(table_data, table_row);
-                } else {
-                    table_entry->alarmRisingThreshold =
-                        table_entry->old_alarmRisingThreshold;
-                    table_entry->old_alarmRisingThreshold = 0;
-                }
-                break;
-            case COLUMN_ALARMFALLINGTHRESHOLD:
-                if (table_entry && !table_entry->valid) {
-                    alarmTable_removeEntry(table_data, table_row);
-                } else {
-                    table_entry->alarmFallingThreshold =
-                        table_entry->old_alarmFallingThreshold;
-                    table_entry->old_alarmFallingThreshold = 0;
-                }
-                break;
-            case COLUMN_ALARMRISINGEVENTINDEX:
-                if (table_entry && !table_entry->valid) {
-                    alarmTable_removeEntry(table_data, table_row);
-                } else {
-                    table_entry->alarmRisingEventIndex =
-                        table_entry->old_alarmRisingEventIndex;
-                    table_entry->old_alarmRisingEventIndex = 0;
-                }
-                break;
-            case COLUMN_ALARMFALLINGEVENTINDEX:
-                if (table_entry && !table_entry->valid) {
-                    alarmTable_removeEntry(table_data, table_row);
-                } else {
-                    table_entry->alarmFallingEventIndex =
-                        table_entry->old_alarmFallingEventIndex;
-                    table_entry->old_alarmFallingEventIndex = 0;
-                }
-                break;
-            case COLUMN_ALARMOWNER:
-                if (table_entry && !table_entry->valid) {
-                    alarmTable_removeEntry(table_data, table_row);
-                } else {
-                    memcpy(table_entry->alarmOwner,
-                           table_entry->old_alarmOwner,
-                           sizeof(table_entry->alarmOwner));
-                    memset(table_entry->old_alarmOwner, 0,
-                           sizeof(table_entry->alarmOwner));
-                    table_entry->alarmOwner_len =
-                        table_entry->old_alarmOwner_len;
-                }
-                break;
-            case COLUMN_ALARMSTATUS:
-                if (table_entry && !table_entry->valid) {
-                    alarmTable_removeEntry(table_data, table_row);
-                } else {
-                    table_entry->alarmStatus =
-                        table_entry->old_alarmStatus;
-                    table_entry->old_alarmStatus = 0;
-                }
-                break;
-            }
-        }
-        break;
-
-    case MODE_SET_COMMIT:
-        for (request = requests; request; request = request->next) {
-            table_entry = (struct alarmTable_entry *)
-                netsnmp_tdata_extract_entry(request);
-            table_info = netsnmp_extract_table_info(request);
-
-            switch (table_info->colnum) {
-            case COLUMN_ALARMINTERVAL:
-            case COLUMN_ALARMVARIABLE:
-            case COLUMN_ALARMSAMPLETYPE:
-            case COLUMN_ALARMSTARTUPALARM:
-            case COLUMN_ALARMRISINGTHRESHOLD:
-            case COLUMN_ALARMFALLINGTHRESHOLD:
-            case COLUMN_ALARMRISINGEVENTINDEX:
-            case COLUMN_ALARMFALLINGEVENTINDEX:
-            case COLUMN_ALARMOWNER:
-                if (table_entry && !table_entry->valid) {
-                    table_entry->valid = 1;
-                }
-                break;
-            case COLUMN_ALARMSTATUS:
-                switch (*request->requestvb->val.integer) {
-                case RMON1_ENTRY_VALID:
-                    alarmTable_enable( table_entry );
-                    break;
-                case RMON1_ENTRY_UNDER_CREATION:
-                    alarmTable_disable( table_entry );
-#if 0
-                    table_entry->session = (netsnmp_session *)
-                        netsnmp_iquery_pdu_session(reqinfo->asp->pdu);
-#else
-                    secName = netsnmp_ds_get_string(NETSNMP_DS_APPLICATION_ID,
-                                                    NETSNMP_DS_AGENT_INTERNAL_SECNAME);
-                    if (secName) {
-                        sess   = netsnmp_iquery_user_session(secName);
-                        netsnmp_query_set_default_session(sess);
-                        DEBUGMSGTL(("rmon:alarmTable", "user name %s\n", secName));
-                    } else { 
-                        snmp_log(LOG_ERR, "user name %s not found\n", secName);
-                        config_perror("Unknown user name\n");
-                    }
-
-                    if (NULL == sess) {
-                        sess = netsnmp_query_get_default_session();
-                        if (NULL == sess) {
-                            config_perror
-                                ("You must specify a default user name using the agentSecName token\n");
-                            return SNMP_ERR_NOERROR;
-                        }
-                    }
-#endif
-                    break;
-                case RMON1_ENTRY_INVALID:
-                    table_row = netsnmp_tdata_extract_row(request);
-                    table_data = netsnmp_tdata_extract_table(request);
-                    alarmTable_removeEntry(table_data, table_row);
-                }
-                break;
-            }
-        }
-        break;
-    }
-    return SNMP_ERR_NOERROR;
-}
diff --git a/agent/mibgroup/Rmon/alarmTable.h b/agent/mibgroup/Rmon/alarmTable.h
deleted file mode 100644
index 1a070b2..0000000
--- a/agent/mibgroup/Rmon/alarmTable.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*--------------------------------------------------------------------------+
-| Edition History:                                                          |
-| #   Date     Comments                                                 By  |
-| --- -------- -------------------------------------------------------- --- |
-|   1 07/05/18 Created.                                                 emi |
-+--------------------------------------------------------------------------*/
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : mib2c.table_data.conf,v 1.11.2.1 2006/01/11 15:17:47 dts12 Exp $
- */
-#ifndef ALARMTABLE_H
-#define ALARMTABLE_H
-
-config_require(utilities/iquery)
-config_require(Rmon/agutil)
-config_require(Rmon/rows)
-config_require(Rmon/event)
-
-/*
- * function declarations 
- */
-void            init_alarmTable(void);
-void            initialize_table_alarmTable(void);
-Netsnmp_Node_Handler alarmTable_handler;
-
-/*
- * column number definitions for table alarmTable 
- */
-#define COLUMN_ALARMINDEX		1
-#define COLUMN_ALARMINTERVAL		2
-#define COLUMN_ALARMVARIABLE		3
-#define COLUMN_ALARMSAMPLETYPE		4
-#define COLUMN_ALARMVALUE		5
-#define COLUMN_ALARMSTARTUPALARM		6
-#define COLUMN_ALARMRISINGTHRESHOLD		7
-#define COLUMN_ALARMFALLINGTHRESHOLD		8
-#define COLUMN_ALARMRISINGEVENTINDEX		9
-#define COLUMN_ALARMFALLINGEVENTINDEX		10
-#define COLUMN_ALARMOWNER		11
-#define COLUMN_ALARMSTATUS		12
-#endif                          /* ALARMTABLE_H */
diff --git a/agent/mibgroup/Rmon/event.c b/agent/mibgroup/Rmon/event.c
index bb87bfe..6001ea9 100644
--- a/agent/mibgroup/Rmon/event.c
+++ b/agent/mibgroup/Rmon/event.c
@@ -19,13 +19,16 @@
  ******************************************************************/
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -42,6 +45,8 @@
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
+#include "util_funcs.h"
+
 #include "event.h"
 
 /*
@@ -50,8 +55,6 @@
 #include "agutil_api.h"
 #include "row_api.h"
 
-netsnmp_feature_require(snprint_objid)
-
 /*
  * File scope definitions section 
  */
@@ -69,7 +72,6 @@ netsnmp_feature_require(snprint_objid)
 #define EVENTOWNER            8
 #define EVENTSTATUS           9
 
-#define Leaf_event_index        1
 #define Leaf_event_description  2
 #define MIN_event_description   0
 #define MAX_event_description   127
@@ -129,7 +131,6 @@ typedef struct {
 
 static TABLE_DEFINTION_T EventCtrlTable;
 static TABLE_DEFINTION_T *table_ptr = &EventCtrlTable;
-static unsigned char zero_octet_string[1];
 
 /*
  * Control Table RowApi Callbacks 
@@ -264,6 +265,7 @@ write_eventControl(int action, u_char * var_val, u_char var_val_type,
     static int      prev_action = COMMIT;
     RMON_ENTRY_T   *hdr;
     CRTL_ENTRY_T   *cloned_body;
+    CRTL_ENTRY_T   *body;
 
     switch (action) {
     case RESERVE1:
@@ -284,9 +286,8 @@ write_eventControl(int action, u_char * var_val, u_char var_val_type,
         leaf_id = (int) name[eventEntryFirstIndexBegin - 1];
         hdr = ROWAPI_find(table_ptr, long_temp);        /* it MUST be OK */
         cloned_body = (CRTL_ENTRY_T *) hdr->tmp;
+        body = (CRTL_ENTRY_T *) hdr->body;
         switch (leaf_id) {
-        case Leaf_event_index:
-            return SNMP_ERR_NOTWRITABLE;
         case Leaf_event_description:
             char_temp = AGMALLOC(1 + MAX_event_description);
             if (!char_temp)
@@ -321,8 +322,6 @@ write_eventControl(int action, u_char * var_val, u_char var_val_type,
             }
             cloned_body->event_type = long_temp;
             break;
-        case Leaf_event_last_time_sent:
-            return SNMP_ERR_NOTWRITABLE;
         case Leaf_event_community:
             char_temp = AGMALLOC(1 + MAX_event_community);
             if (!char_temp)
@@ -410,7 +409,7 @@ var_eventTable(struct variable *vp,
             return (unsigned char *) theEntry.event_description;
         } else {
             *var_len = 0;
-            return zero_octet_string;
+            return (unsigned char *) "";
         }
     case EVENTTYPE:
         long_ret = theEntry.event_type;
@@ -421,7 +420,7 @@ var_eventTable(struct variable *vp,
             return (unsigned char *) theEntry.event_community;
         } else {
             *var_len = 0;
-            return zero_octet_string;
+            return (unsigned char *) "";
         }
     case EVENTLASTTIMESENT:
         long_ret = theEntry.event_last_time_sent;
@@ -432,7 +431,7 @@ var_eventTable(struct variable *vp,
             return (unsigned char *) hdr->owner;
         } else {
             *var_len = 0;
-            return zero_octet_string;
+            return (unsigned char *) "";
         }
     case EVENTSTATUS:
         long_ret = hdr->status;
@@ -461,6 +460,7 @@ var_logTable(struct variable *vp,
     static long     long_ret;
     static DATA_ENTRY_T theEntry;
     RMON_ENTRY_T   *hdr;
+    CRTL_ENTRY_T   *ctrl;
 
     *write_method = NULL;
     hdr = ROWDATAAPI_header_DataEntry(vp, name, length, exact, var_len,
@@ -470,6 +470,8 @@ var_logTable(struct variable *vp,
     if (!hdr)
         return NULL;
 
+    ctrl = (CRTL_ENTRY_T *) hdr->body;
+
     *var_len = sizeof(long);    /* default */
 
     switch (vp->magic) {
@@ -488,7 +490,7 @@ var_logTable(struct variable *vp,
             return (unsigned char *) theEntry.log_description;
         } else {
             *var_len = 0;
-            return zero_octet_string;
+            return (unsigned char *) "";
         }
     default:
         ERROR_MSG("");
@@ -555,6 +557,29 @@ create_explanaition(CRTL_ENTRY_T * evptr, u_char is_rising,
     return descr;
 }
 
+extern void     send_enterprise_trap_vars(int, int, oid *, int,
+                                          netsnmp_variable_list *);
+
+static netsnmp_variable_list *
+oa_bind_var(netsnmp_variable_list * prev,
+            void *value, int type, size_t sz_val, oid * oid, size_t sz_oid)
+{
+    netsnmp_variable_list *var;
+
+    var = (netsnmp_variable_list *) malloc(sizeof(netsnmp_variable_list));
+    if (!var) {
+        ag_trace("FATAL: cannot malloc in oa_bind_var\n");
+        exit(-1);               /* Sorry :( */
+    }
+    memset(var, 0, sizeof(netsnmp_variable_list));
+    var->next_variable = prev;
+    snmp_set_var_objid(var, oid, sz_oid);
+    snmp_set_var_value(var, (u_char *) value, sz_val);
+    var->type = type;
+
+    return var;
+}
+
 static void
 event_send_trap(CRTL_ENTRY_T * evptr, u_char is_rising,
                 u_int alarm_index,
@@ -562,65 +587,60 @@ event_send_trap(CRTL_ENTRY_T * evptr, u_char is_rising,
                 oid * alarmed_var, size_t alarmed_var_length,
                 u_int sample_type)
 {
-    static oid      objid_snmptrap[] = { 1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0 };
     static oid      rmon1_trap_oid[] = { 1, 3, 6, 1, 2, 1, 16, 0, 0 };
     static oid      alarm_index_oid[] =
-        { 1, 3, 6, 1, 2, 1, 16, 3, 1, 1, 1, 0 };
+        { 1, 3, 6, 1, 2, 1, 16, 3, 1, 1, 1 };
     static oid      alarmed_var_oid[] =
-        { 1, 3, 6, 1, 2, 1, 16, 3, 1, 1, 3, 0 };
+        { 1, 3, 6, 1, 2, 1, 16, 3, 1, 1, 3 };
     static oid      sample_type_oid[] =
-        { 1, 3, 6, 1, 2, 1, 16, 3, 1, 1, 4, 0 };
-    static oid      value_oid[] = { 1, 3, 6, 1, 2, 1, 16, 3, 1, 1, 5, 0 };
-    static oid      threshold_oid[] = { 1, 3, 6, 1, 2, 1, 16, 3, 1, 1, 7, 0 };     /* rising case */
-    netsnmp_variable_list *var_list = NULL;
+        { 1, 3, 6, 1, 2, 1, 16, 3, 1, 1, 4 };
+    static oid      value_oid[] = { 1, 3, 6, 1, 2, 1, 16, 3, 1, 1, 5 };
+    static oid      threshold_oid[] = { 1, 3, 6, 1, 2, 1, 16, 3, 1, 1, 7 };     /* rising case */
+    netsnmp_variable_list *top = NULL;
+    register int    iii;
 
     /*
      * set the last 'oid' : risingAlarm or fallingAlarm 
      */
     if (is_rising) {
-        rmon1_trap_oid[8] = 1;
-        threshold_oid[10] = 7;
+        iii = OID_LENGTH(rmon1_trap_oid);
+        rmon1_trap_oid[iii - 1] = 1;
+        iii = OID_LENGTH(threshold_oid);
+        threshold_oid[iii - 1] = 7;
     } else {
-        rmon1_trap_oid[8] = 2;
-        threshold_oid[10] = 8;
+        iii = OID_LENGTH(rmon1_trap_oid);
+        rmon1_trap_oid[iii - 1] = 0;
+        iii = OID_LENGTH(threshold_oid);
+        threshold_oid[iii - 1] = 8;
     }
-    alarm_index_oid[11] = alarm_index;
-    alarmed_var_oid[11] = alarm_index;
-    sample_type_oid[11] = alarm_index;
-    value_oid[11]       = alarm_index;
-    threshold_oid[11]   = alarm_index;
 
     /*
      * build the var list 
      */
-    snmp_varlist_add_variable(&var_list, objid_snmptrap,
-                              OID_LENGTH(objid_snmptrap),
-                              ASN_OBJECT_ID, (u_char *) rmon1_trap_oid,
-                              sizeof(rmon1_trap_oid));
-    snmp_varlist_add_variable(&var_list, alarm_index_oid,
-                              OID_LENGTH(alarm_index_oid),
-                              ASN_INTEGER, (u_char *) &alarm_index,
-                              sizeof(u_int));
-    snmp_varlist_add_variable(&var_list, alarmed_var_oid,
-                              OID_LENGTH(alarmed_var_oid),
-                              ASN_OBJECT_ID, (u_char *) alarmed_var,
-                              alarmed_var_length * sizeof(oid));
-    snmp_varlist_add_variable(&var_list, sample_type_oid,
-                              OID_LENGTH(sample_type_oid),
-                              ASN_INTEGER, (u_char *) &sample_type,
-                              sizeof(u_int));
-    snmp_varlist_add_variable(&var_list, value_oid,
-                              OID_LENGTH(value_oid),
-                              ASN_INTEGER, (u_char *) &value,
-                              sizeof(u_int));
-    snmp_varlist_add_variable(&var_list, threshold_oid,
-                              OID_LENGTH(threshold_oid),
-                              ASN_INTEGER, (u_char *) &the_threshold,
-                              sizeof(u_int));
-
-    send_v2trap(var_list);
+    top = oa_bind_var(top, &alarm_index, ASN_INTEGER, sizeof(u_int),
+                      alarm_index_oid, OID_LENGTH(alarm_index_oid));
+
+    top =
+        oa_bind_var(top, alarmed_var, ASN_OBJECT_ID,
+                    sizeof(oid) * alarmed_var_length, alarmed_var_oid,
+                    OID_LENGTH(alarmed_var_oid));
+
+    top = oa_bind_var(top, &sample_type, ASN_INTEGER, sizeof(u_int),
+                      sample_type_oid, OID_LENGTH(sample_type_oid));
+
+    top = oa_bind_var(top, &value, ASN_INTEGER, sizeof(u_int),
+                      value_oid, OID_LENGTH(value_oid));
+
+    top = oa_bind_var(top, &the_threshold, ASN_INTEGER, sizeof(u_int),
+                      threshold_oid, OID_LENGTH(threshold_oid));
+
+
+    send_enterprise_trap_vars(SNMP_TRAP_ENTERPRISESPECIFIC, 0,
+                              rmon1_trap_oid,
+                              OID_LENGTH(rmon1_trap_oid), top);
     ag_trace("rmon trap has been sent");
-    snmp_free_varbind(var_list);
+    snmp_free_varbind(top);
+
 }
 
 
@@ -659,7 +679,7 @@ event_api_send_alarm(u_char is_rising,
     CRTL_ENTRY_T   *evptr;
 
     if (!event_index)
-        return SNMP_ERR_NOERROR;
+        return SNMP_ERR_NOSUCHNAME;
 
 #if 0
     ag_trace("event_api_send_alarm(%d,%d,%d,'%s')",
@@ -769,34 +789,23 @@ struct variable2 eventTable_variables[] = {
     /*
      * magic number        , variable type, ro/rw , callback fn  ,           L, oidsuffix 
      */
-    {EVENTINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_eventTable, 2, {1, 1}},
-    {EVENTDESCRIPTION, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_eventTable, 2, {1, 2}},
-    {EVENTTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_eventTable, 2, {1, 3}},
-    {EVENTCOMMUNITY, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_eventTable, 2, {1, 4}},
-    {EVENTLASTTIMESENT, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_eventTable, 2, {1, 5}},
-    {EVENTOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_eventTable, 2, {1, 6}},
-    {EVENTSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_eventTable, 2, {1, 7}}
+    {EVENTINDEX, ASN_INTEGER, RONLY, var_eventTable, 2, {1, 1}},
+    {EVENTDESCRIPTION, ASN_OCTET_STR, RWRITE, var_eventTable, 2, {1, 2}},
+    {EVENTTYPE, ASN_INTEGER, RWRITE, var_eventTable, 2, {1, 3}},
+    {EVENTCOMMUNITY, ASN_OCTET_STR, RWRITE, var_eventTable, 2, {1, 4}},
+    {EVENTLASTTIMESENT, ASN_TIMETICKS, RONLY, var_eventTable, 2, {1, 5}},
+    {EVENTOWNER, ASN_OCTET_STR, RWRITE, var_eventTable, 2, {1, 6}},
+    {EVENTSTATUS, ASN_INTEGER, RWRITE, var_eventTable, 2, {1, 7}}
 };
 
 struct variable2 logTable_variables[] = {
     /*
      * magic number        , variable type, ro/rw , callback fn  ,           L, oidsuffix 
      */
-    {LOGEVENTINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_logTable, 2, {1, 1}},
-    {LOGINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_logTable, 2, {1, 2}},
-    {LOGTIME, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_logTable, 2, {1, 3}},
-    {LOGDESCRIPTION, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_logTable, 2, {1, 4}}
+    {LOGEVENTINDEX, ASN_INTEGER, RONLY, var_logTable, 2, {1, 1}},
+    {LOGINDEX, ASN_INTEGER, RONLY, var_logTable, 2, {1, 2}},
+    {LOGTIME, ASN_TIMETICKS, RONLY, var_logTable, 2, {1, 3}},
+    {LOGDESCRIPTION, ASN_OCTET_STR, RONLY, var_logTable, 2, {1, 4}}
 
 };
 
diff --git a/agent/mibgroup/Rmon/event.h b/agent/mibgroup/Rmon/event.h
index b03e162..e7993f4 100644
--- a/agent/mibgroup/Rmon/event.h
+++ b/agent/mibgroup/Rmon/event.h
@@ -21,13 +21,11 @@
 #ifndef _MIBGROUP_EVENT_H
 #define _MIBGROUP_EVENT_H
 
+config_require(util_funcs)
+
     /*
      * function prototypes 
      */
      void            init_event(void);
 
-config_require(util_funcs)
-
-config_require(Rmon/agutil)
-config_require(Rmon/rows)
 #endif                          /* _MIBGROUP_EVENT_H */
diff --git a/agent/mibgroup/Rmon/history.c b/agent/mibgroup/Rmon/history.c
index c8e9c25..937c559 100644
--- a/agent/mibgroup/Rmon/history.c
+++ b/agent/mibgroup/Rmon/history.c
@@ -24,7 +24,11 @@
 #include <stdlib.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -40,6 +44,8 @@
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
+#include "util_funcs.h"
+
 #include "history.h"
 
 /*
@@ -181,7 +187,7 @@ write_historyControl(int action, u_char * var_val, u_char var_val_type,
                                                var_val_len,
                                                MIN_historyControlBucketsRequested,
                                                MAX_historyControlBucketsRequested,
-                                               (long *) &cloned_body->scrlr.
+                                               &cloned_body->scrlr.
                                                data_requested);
             if (SNMP_ERR_NOERROR != snmp_status) {
                 return snmp_status;
@@ -198,7 +204,7 @@ write_historyControl(int action, u_char * var_val, u_char var_val_type,
                                                var_val_len,
                                                MIN_historyControlInterval,
                                                MAX_historyControlInterval,
-                                               (long *) &cloned_body->interval);
+                                               &cloned_body->interval);
             if (SNMP_ERR_NOERROR != snmp_status) {
                 return snmp_status;
             }
@@ -257,7 +263,6 @@ var_historyControlTable(struct variable *vp,
                         int exact,
                         size_t * var_len, WriteMethod ** write_method)
 {
-    static unsigned char zero_octet_string[1];
     static long     long_ret;
     static CRTL_ENTRY_T theEntry;
     RMON_ENTRY_T   *hdr;
@@ -299,7 +304,7 @@ var_historyControlTable(struct variable *vp,
             return (unsigned char *) hdr->owner;
         } else {
             *var_len = 0;
-            return zero_octet_string;
+            return (unsigned char *) "";
         }
 
     case CTRL_STATUS:
@@ -531,6 +536,7 @@ var_etherHistoryTable(struct variable *vp,
     static long     long_ret;
     static DATA_ENTRY_T theBucket;
     RMON_ENTRY_T   *hdr;
+    CRTL_ENTRY_T   *ctrl;
 
     *write_method = NULL;
     hdr = ROWDATAAPI_header_DataEntry(vp, name, length, exact, var_len,
@@ -542,6 +548,8 @@ var_etherHistoryTable(struct variable *vp,
 
     *var_len = sizeof(long);    /* default */
 
+    ctrl = (CRTL_ENTRY_T *) hdr->body;
+
     switch (vp->magic) {
     case DATA_INDEX:
         long_ret = hdr->ctrl_index;
@@ -650,20 +658,18 @@ struct variable2 historyControlTable_variables[] = {
     /*
      * magic number        , variable type, ro/rw , callback fn  ,           L, oidsuffix 
      */
-    {CTRL_INDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_historyControlTable, 2, {1, 1}},
-    {CTRL_DATASOURCE, ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
-     var_historyControlTable, 2, {1, 2}},
-    {CTRL_BUCKETSREQUESTED, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_historyControlTable, 2, {1, 3}},
-    {CTRL_BUCKETSGRANTED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_historyControlTable, 2, {1, 4}},
-    {CTRL_INTERVAL, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_historyControlTable, 2, {1, 5}},
-    {CTRL_OWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_historyControlTable, 2, {1, 6}},
-    {CTRL_STATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_historyControlTable, 2, {1, 7}},
+    {CTRL_INDEX, ASN_INTEGER, RONLY, var_historyControlTable, 2, {1, 1}},
+    {CTRL_DATASOURCE, ASN_OBJECT_ID, RWRITE, var_historyControlTable, 2,
+     {1, 2}},
+    {CTRL_BUCKETSREQUESTED, ASN_INTEGER, RWRITE, var_historyControlTable,
+     2, {1, 3}},
+    {CTRL_BUCKETSGRANTED, ASN_INTEGER, RONLY, var_historyControlTable, 2,
+     {1, 4}},
+    {CTRL_INTERVAL, ASN_INTEGER, RWRITE, var_historyControlTable, 2,
+     {1, 5}},
+    {CTRL_OWNER, ASN_OCTET_STR, RWRITE, var_historyControlTable, 2,
+     {1, 6}},
+    {CTRL_STATUS, ASN_INTEGER, RWRITE, var_historyControlTable, 2, {1, 7}},
 
 };
 
@@ -674,36 +680,32 @@ struct variable2 etherHistoryTable_variables[] = {
     /*
      * magic number     , variable type , ro/rw , callback fn  ,        L, oidsuffix 
      */
-    {DATA_INDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 1}},
-    {DATA_SAMPLEINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 2}},
-    {DATA_INTERVALSTART, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 3}},
-    {DATA_DROPEVENTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 4}},
-    {DATA_OCTETS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 5}},
-    {DATA_PKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 6}},
-    {DATA_BROADCASTPKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 7}},
-    {DATA_MULTICASTPKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 8}},
-    {DATA_CRCALIGNERRORS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 9}},
-    {DATA_UNDERSIZEPKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 10}},
-    {DATA_OVERSIZEPKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 11}},
-    {DATA_FRAGMENTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 12}},
-    {DATA_JABBERS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 13}},
-    {DATA_COLLISIONS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 14}},
-    {DATA_UTILIZATION, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_etherHistoryTable, 2, {1, 15}},
+    {DATA_INDEX, ASN_INTEGER, RONLY, var_etherHistoryTable, 2, {1, 1}},
+    {DATA_SAMPLEINDEX, ASN_INTEGER, RONLY, var_etherHistoryTable, 2,
+     {1, 2}},
+    {DATA_INTERVALSTART, ASN_TIMETICKS, RONLY, var_etherHistoryTable, 2,
+     {1, 3}},
+    {DATA_DROPEVENTS, ASN_COUNTER, RONLY, var_etherHistoryTable, 2,
+     {1, 4}},
+    {DATA_OCTETS, ASN_COUNTER, RONLY, var_etherHistoryTable, 2, {1, 5}},
+    {DATA_PKTS, ASN_COUNTER, RONLY, var_etherHistoryTable, 2, {1, 6}},
+    {DATA_BROADCASTPKTS, ASN_COUNTER, RONLY, var_etherHistoryTable, 2,
+     {1, 7}},
+    {DATA_MULTICASTPKTS, ASN_COUNTER, RONLY, var_etherHistoryTable, 2,
+     {1, 8}},
+    {DATA_CRCALIGNERRORS, ASN_COUNTER, RONLY, var_etherHistoryTable, 2,
+     {1, 9}},
+    {DATA_UNDERSIZEPKTS, ASN_COUNTER, RONLY, var_etherHistoryTable, 2,
+     {1, 10}},
+    {DATA_OVERSIZEPKTS, ASN_COUNTER, RONLY, var_etherHistoryTable, 2,
+     {1, 11}},
+    {DATA_FRAGMENTS, ASN_COUNTER, RONLY, var_etherHistoryTable, 2,
+     {1, 12}},
+    {DATA_JABBERS, ASN_COUNTER, RONLY, var_etherHistoryTable, 2, {1, 13}},
+    {DATA_COLLISIONS, ASN_COUNTER, RONLY, var_etherHistoryTable, 2,
+     {1, 14}},
+    {DATA_UTILIZATION, ASN_INTEGER, RONLY, var_etherHistoryTable, 2,
+     {1, 15}},
 
 };
 
diff --git a/agent/mibgroup/Rmon/history.h b/agent/mibgroup/Rmon/history.h
index d2c401d..094bee4 100644
--- a/agent/mibgroup/Rmon/history.h
+++ b/agent/mibgroup/Rmon/history.h
@@ -21,6 +21,8 @@
 #ifndef _MIBGROUP_HISTORY_H
 #define _MIBGROUP_HISTORY_H
 
+config_require(util_funcs)
+
     /*
      * function prototypes 
      */
diff --git a/agent/mibgroup/Rmon/row_api.h b/agent/mibgroup/Rmon/row_api.h
index 9f576be..bc986a0 100644
--- a/agent/mibgroup/Rmon/row_api.h
+++ b/agent/mibgroup/Rmon/row_api.h
@@ -62,7 +62,7 @@ typedef struct tagEntry {
 typedef int     (ENTRY_CALLBACK_T) (RMON_ENTRY_T *);
 
 typedef struct {
-    const char     *name;
+    char           *name;
     RMON_ENTRY_T   *first;
     u_long          max_number_of_entries;      /* '<0' means without limit */
     u_long          current_number_of_entries;
@@ -79,7 +79,7 @@ typedef struct {
  * Api prototypes 
  */
 void            ROWAPI_init_table(TABLE_DEFINTION_T * table_ptr,
-                                  const char *name,
+                                  char *name,
                                   u_long max_number_of_entries,
                                   ENTRY_CALLBACK_T * ClbkCreate,
                                   ENTRY_CALLBACK_T * ClbkClone,
diff --git a/agent/mibgroup/Rmon/rows.c b/agent/mibgroup/Rmon/rows.c
index ac26e30..d8c3cc1 100644
--- a/agent/mibgroup/Rmon/rows.c
+++ b/agent/mibgroup/Rmon/rows.c
@@ -26,6 +26,8 @@
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
+#include "util_funcs.h"
+
 #include "agutil_api.h"
 #include "rows.h"
 #include "row_api.h"
@@ -255,7 +257,7 @@ ROWAPI_new(TABLE_DEFINTION_T * table_ptr, u_long ctrl_index)
 
 void
 ROWAPI_init_table(TABLE_DEFINTION_T * table_ptr,
-                  const char *name,
+                  char *name,
                   u_long max_number_of_entries,
                   ENTRY_CALLBACK_T * ClbkCreate,
                   ENTRY_CALLBACK_T * ClbkClone,
@@ -267,7 +269,7 @@ ROWAPI_init_table(TABLE_DEFINTION_T * table_ptr,
 {
     table_ptr->name = name;
     if (!table_ptr->name)
-        table_ptr->name = NETSNMP_REMOVE_CONST(char*,"Unknown");
+        table_ptr->name = "Unknown";
 
     table_ptr->max_number_of_entries = max_number_of_entries;
     table_ptr->ClbkCreate = ClbkCreate;
@@ -754,7 +756,7 @@ ROWDATAAPI_locate_new_data(SCROLLER_T * scrlr)
         scrlr->first_data_ptr = bptr->next;
         scrlr->last_data_ptr->next = bptr;
         scrlr->last_data_ptr = (NEXTED_PTR_T *) bptr;
-        bptr->next = NULL;
+        bptr->next = 0;
     } else {
         bptr = scrlr->current_data_ptr;
         scrlr->current_data_ptr = bptr->next;
diff --git a/agent/mibgroup/Rmon/statistics.c b/agent/mibgroup/Rmon/statistics.c
index 3ed4acb..687a43c 100644
--- a/agent/mibgroup/Rmon/statistics.c
+++ b/agent/mibgroup/Rmon/statistics.c
@@ -24,7 +24,11 @@
 #include <stdlib.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -39,6 +43,7 @@
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
+#include "util_funcs.h"
 #include "statistics.h"
         /*
          * Implementation headers 
@@ -317,7 +322,6 @@ var_etherStatsEntry(struct variable * vp, oid * name, size_t * length,
                     int exact, size_t * var_len,
                     WriteMethod ** write_method)
 {
-    static unsigned char zero_octet_string[1];
     static long     long_return;
     static CRTL_ENTRY_T theEntry;
     RMON_ENTRY_T   *hdr;
@@ -398,7 +402,7 @@ var_etherStatsEntry(struct variable * vp, oid * name, size_t * length,
             return (unsigned char *) hdr->owner;
         } else {
             *var_len = 0;
-            return zero_octet_string;
+            return (unsigned char *) "";
         }
     case IDetherStatsStatus:
         long_return = hdr->status;
@@ -463,52 +467,52 @@ add_statistics_entry(int ctrl_index, int ifIndex)
 oid             oidstatisticsVariablesOid[] = { 1, 3, 6, 1, 2, 1, 16, 1 };
 
 struct variable7 oidstatisticsVariables[] = {
-    {IDetherStatsIndex, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_etherStatsEntry, 3, {1, 1, 1}},
-    {IDetherStatsDataSource, ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
-     var_etherStatsEntry, 3, {1, 1, 2}},
-    {IDetherStatsDropEvents, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherStatsEntry, 3, {1, 1, 3}},
-    {IDetherStatsOctets, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherStatsEntry, 3, {1, 1, 4}},
-    {IDetherStatsPkts, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherStatsEntry, 3, {1, 1, 5}},
-    {IDetherStatsBroadcastPkts, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherStatsEntry, 3, {1, 1, 6}},
-    {IDetherStatsMulticastPkts, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherStatsEntry, 3, {1, 1, 7}},
-    {IDetherStatsCRCAlignErrors, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherStatsEntry, 3, {1, 1, 8}},
-    {IDetherStatsUndersizePkts, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherStatsEntry, 3, {1, 1, 9}},
-    {IDetherStatsOversizePkts, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherStatsEntry, 3, {1, 1, 10}},
-    {IDetherStatsFragments, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherStatsEntry, 3, {1, 1, 11}},
-    {IDetherStatsJabbers, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherStatsEntry, 3, {1, 1, 12}},
-    {IDetherStatsCollisions, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherStatsEntry, 3, {1, 1, 13}},
-    {IDetherStatsPkts64Octets, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherStatsEntry, 3, {1, 1, 14}},
-    {IDetherStatsPkts65to127Octets, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
+    {IDetherStatsIndex, ASN_INTEGER, RONLY, var_etherStatsEntry, 3,
+     {1, 1, 1}},
+    {IDetherStatsDataSource, ASN_OBJECT_ID, RWRITE, var_etherStatsEntry, 3,
+     {1, 1, 2}},
+    {IDetherStatsDropEvents, ASN_COUNTER, RONLY, var_etherStatsEntry, 3,
+     {1, 1, 3}},
+    {IDetherStatsOctets, ASN_COUNTER, RONLY, var_etherStatsEntry, 3,
+     {1, 1, 4}},
+    {IDetherStatsPkts, ASN_COUNTER, RONLY, var_etherStatsEntry, 3,
+     {1, 1, 5}},
+    {IDetherStatsBroadcastPkts, ASN_COUNTER, RONLY, var_etherStatsEntry, 3,
+     {1, 1, 6}},
+    {IDetherStatsMulticastPkts, ASN_COUNTER, RONLY, var_etherStatsEntry, 3,
+     {1, 1, 7}},
+    {IDetherStatsCRCAlignErrors, ASN_COUNTER, RONLY, var_etherStatsEntry,
+     3, {1, 1, 8}},
+    {IDetherStatsUndersizePkts, ASN_COUNTER, RONLY, var_etherStatsEntry, 3,
+     {1, 1, 9}},
+    {IDetherStatsOversizePkts, ASN_COUNTER, RONLY, var_etherStatsEntry, 3,
+     {1, 1, 10}},
+    {IDetherStatsFragments, ASN_COUNTER, RONLY, var_etherStatsEntry, 3,
+     {1, 1, 11}},
+    {IDetherStatsJabbers, ASN_COUNTER, RONLY, var_etherStatsEntry, 3,
+     {1, 1, 12}},
+    {IDetherStatsCollisions, ASN_COUNTER, RONLY, var_etherStatsEntry, 3,
+     {1, 1, 13}},
+    {IDetherStatsPkts64Octets, ASN_COUNTER, RONLY, var_etherStatsEntry, 3,
+     {1, 1, 14}},
+    {IDetherStatsPkts65to127Octets, ASN_COUNTER, RONLY,
      var_etherStatsEntry, 3, {1, 1, 15}},
-    {IDetherStatsPkts128to255Octets, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
+    {IDetherStatsPkts128to255Octets, ASN_COUNTER, RONLY,
      var_etherStatsEntry, 3, {1, 1, 16}},
-    {IDetherStatsPkts256to511Octets, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
+    {IDetherStatsPkts256to511Octets, ASN_COUNTER, RONLY,
      var_etherStatsEntry, 3, {1, 1, 17}},
-    {IDetherStatsPkts512to1023Octets, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
+    {IDetherStatsPkts512to1023Octets, ASN_COUNTER, RONLY,
      var_etherStatsEntry, 3, {1, 1, 18}},
-    {IDetherStatsPkts1024to1518Octets, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
+    {IDetherStatsPkts1024to1518Octets, ASN_COUNTER, RONLY,
      var_etherStatsEntry, 3, {1, 1, 19}},
-    {IDetherStatsOwner, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_etherStatsEntry, 3, {1, 1, 20}},
-    {IDetherStatsStatus, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_etherStatsEntry, 3, {1, 1, 21}},
-    {IDetherStatsDroppedFrames, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_etherStats2Entry, 3, {4, 1, 1}},
-    {IDetherStatsCreateTime, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_etherStats2Entry, 3, {4, 1, 2}},
+    {IDetherStatsOwner, ASN_OCTET_STR, RWRITE, var_etherStatsEntry, 3,
+     {1, 1, 20}},
+    {IDetherStatsStatus, ASN_INTEGER, RWRITE, var_etherStatsEntry, 3,
+     {1, 1, 21}},
+    {IDetherStatsDroppedFrames, ASN_COUNTER, RONLY, var_etherStats2Entry,
+     3, {4, 1, 1}},
+    {IDetherStatsCreateTime, ASN_TIMETICKS, RONLY, var_etherStats2Entry, 3,
+     {4, 1, 2}},
 };
 
 /***************************************************
diff --git a/agent/mibgroup/Rmon/statistics.h b/agent/mibgroup/Rmon/statistics.h
index 9b622a7..8c6d91d 100644
--- a/agent/mibgroup/Rmon/statistics.h
+++ b/agent/mibgroup/Rmon/statistics.h
@@ -21,6 +21,7 @@
 #ifndef _statistics_h_included__
 #define _statistics_h_included__
 
+config_require(util_funcs)
      void            init_statistics(void);
 
 #endif                          /* _statistics_h_included__ */
diff --git a/agent/mibgroup/agent/extend.c b/agent/mibgroup/agent/extend.c
index 68a11e2..34ddf16 100644
--- a/agent/mibgroup/agent/extend.c
+++ b/agent/mibgroup/agent/extend.c
@@ -1,6 +1,5 @@
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/watcher.h>
@@ -11,17 +10,11 @@
 #include "struct.h"
 
 #ifndef USING_UCD_SNMP_EXTENSIBLE_MODULE
-#include "util_funcs/header_simple_table.h"
+#include "util_funcs.h"
 #include "mibdefs.h"
 #define SHELLCOMMAND 3
 #endif
 
-netsnmp_feature_require(extract_table_row_data)
-netsnmp_feature_require(table_data_delete_table)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(insert_table_row)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
 oid  ns_extend_oid[]    = { 1, 3, 6, 1, 4, 1, 8072, 1, 3, 2 };
 oid  extend_count_oid[] = { 1, 3, 6, 1, 4, 1, 8072, 1, 3, 2, 1 };
 oid  extend_config_oid[] = { 1, 3, 6, 1, 4, 1, 8072, 1, 3, 2, 2 };
@@ -42,53 +35,27 @@ extend_registration_block *ereg_head = NULL;
 
 #ifndef USING_UCD_SNMP_EXTENSIBLE_MODULE
 typedef struct netsnmp_old_extend_s {
-    unsigned int idx;
+    int idx;
     netsnmp_extend *exec_entry;
     netsnmp_extend *efix_entry;
 } netsnmp_old_extend;
 
-unsigned int             num_compatability_entries = 0;
-unsigned int             max_compatability_entries = 50;
+int             num_compatability_entries = 0;
+int             max_compatability_entries = 50;
 netsnmp_old_extend *compatability_entries;
 
 WriteMethod fixExec2Error;
 FindVarMethod var_extensible_old;
 oid  old_extensible_variables_oid[] = { NETSNMP_UCDAVIS_MIB, NETSNMP_SHELLMIBNUM, 1 };
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-struct variable2 old_extensible_variables[] = {
-    {MIBINDEX,     ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_extensible_old, 1, {MIBINDEX}},
-    {ERRORNAME,    ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_extensible_old, 1, {ERRORNAME}},
-    {SHELLCOMMAND, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_extensible_old, 1, {SHELLCOMMAND}},
-    {ERRORFLAG,    ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_extensible_old, 1, {ERRORFLAG}},
-    {ERRORMSG,     ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_extensible_old, 1, {ERRORMSG}},
-    {ERRORFIX,     ASN_INTEGER,  NETSNMP_OLDAPI_RWRITE,
-     var_extensible_old, 1, {ERRORFIX}},
-    {ERRORFIXCMD,  ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_extensible_old, 1, {ERRORFIXCMD}}
-};
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
 struct variable2 old_extensible_variables[] = {
-    {MIBINDEX,     ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_extensible_old, 1, {MIBINDEX}},
-    {ERRORNAME,    ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_extensible_old, 1, {ERRORNAME}},
-    {SHELLCOMMAND, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_extensible_old, 1, {SHELLCOMMAND}},
-    {ERRORFLAG,    ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_extensible_old, 1, {ERRORFLAG}},
-    {ERRORMSG,     ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_extensible_old, 1, {ERRORMSG}},
-    {ERRORFIX,     ASN_INTEGER,  NETSNMP_OLDAPI_RONLY,
-     var_extensible_old, 1, {ERRORFIX}},
-    {ERRORFIXCMD,  ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_extensible_old, 1, {ERRORFIXCMD}}
+    {MIBINDEX,     ASN_INTEGER,   RONLY, var_extensible_old, 1, {MIBINDEX}},
+    {ERRORNAME,    ASN_OCTET_STR, RONLY, var_extensible_old, 1, {ERRORNAME}},
+    {SHELLCOMMAND, ASN_OCTET_STR, RONLY, var_extensible_old, 1, {SHELLCOMMAND}},
+    {ERRORFLAG,    ASN_INTEGER,   RONLY, var_extensible_old, 1, {ERRORFLAG}},
+    {ERRORMSG,     ASN_OCTET_STR, RONLY, var_extensible_old, 1, {ERRORMSG}},
+    {ERRORFIX,     ASN_INTEGER,  RWRITE, var_extensible_old, 1, {ERRORFIX}},
+    {ERRORFIXCMD,  ASN_OCTET_STR, RONLY, var_extensible_old, 1, {ERRORFIXCMD}}
 };
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 #endif
 
 
@@ -120,8 +87,7 @@ _register_extend( oid *base, size_t len )
     netsnmp_table_data                *dinfo;
     netsnmp_table_registration_info   *tinfo;
     netsnmp_watcher_info              *winfo;
-    netsnmp_handler_registration      *reg = NULL;
-    int                                rc;
+    netsnmp_handler_registration      *reg;
 
     for ( eptr=ereg_head; eptr; eptr=eptr->next ) {
         if (!snmp_oid_compare( base, len, eptr->root_oid, eptr->oid_len))
@@ -129,8 +95,6 @@ _register_extend( oid *base, size_t len )
     }
     if (!eptr) {
         eptr = SNMP_MALLOC_TYPEDEF( extend_registration_block );
-        if (!eptr)
-            return NULL;
         eptr->root_oid = snmp_duplicate_objid( base, len );
         eptr->oid_len  = len;
         eptr->num_entries = 0;
@@ -151,20 +115,10 @@ _register_extend( oid *base, size_t len )
     tinfo->min_column = COLUMN_EXTCFG_FIRST_COLUMN;
     tinfo->max_column = COLUMN_EXTCFG_LAST_COLUMN;
     oid_buf[len] = 2;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     reg   = netsnmp_create_handler_registration(
                 "nsExtendConfigTable", handle_nsExtendConfigTable, 
                 oid_buf, len+1, HANDLER_CAN_RWRITE);
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-    reg   = netsnmp_create_handler_registration(
-                "nsExtendConfigTable", handle_nsExtendConfigTable, 
-                oid_buf, len+1, HANDLER_CAN_RONLY);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-    rc = netsnmp_register_table_data( reg, dinfo, tinfo );
-    if (rc != SNMPERR_SUCCESS) {
-        goto bail;
-    }
-    netsnmp_handler_owns_table_info(reg->handler->next);
+    netsnmp_register_table_data( reg, dinfo, tinfo );
     eptr->reg[0] = reg;
 
         /*
@@ -181,10 +135,7 @@ _register_extend( oid *base, size_t len )
     reg   = netsnmp_create_handler_registration(
                 "nsExtendOut1Table", handle_nsExtendOutput1Table, 
                 oid_buf, len+1, HANDLER_CAN_RONLY);
-    rc = netsnmp_register_table_data( reg, dinfo, tinfo );
-    if (rc != SNMPERR_SUCCESS)
-        goto bail;
-    netsnmp_handler_owns_table_info(reg->handler->next);
+    netsnmp_register_table_data( reg, dinfo, tinfo );
     eptr->reg[1] = reg;
 
         /*
@@ -203,10 +154,7 @@ _register_extend( oid *base, size_t len )
     reg   = netsnmp_create_handler_registration(
                 "nsExtendOut2Table", handle_nsExtendOutput2Table, 
                 oid_buf, len+1, HANDLER_CAN_RONLY);
-    rc = netsnmp_register_table( reg, tinfo );
-    if (rc != SNMPERR_SUCCESS)
-        goto bail;
-    netsnmp_handler_owns_table_info(reg->handler->next);
+    netsnmp_register_table( reg, tinfo );
     eptr->reg[2] = reg;
 
         /*
@@ -219,41 +167,9 @@ _register_extend( oid *base, size_t len )
     winfo = netsnmp_create_watcher_info(
                 &(eptr->num_entries), sizeof(eptr->num_entries),
                 ASN_INTEGER, WATCHER_FIXED_SIZE);
-    rc = netsnmp_register_watched_scalar2( reg, winfo );
-    if (rc != SNMPERR_SUCCESS)
-        goto bail;
+    netsnmp_register_watched_scalar( reg, winfo );
 
     return eptr;
-
-bail:
-    if (eptr->reg[2])
-        netsnmp_unregister_handler(eptr->reg[2]);
-    if (eptr->reg[1])
-        netsnmp_unregister_handler(eptr->reg[1]);
-    if (eptr->reg[0])
-        netsnmp_unregister_handler(eptr->reg[0]);
-    return NULL;
-}
-
-static void
-_unregister_extend(extend_registration_block *eptr)
-{
-    extend_registration_block *prev;
-
-    netsnmp_assert(eptr);
-    for (prev = ereg_head; prev && prev->next != eptr; prev = prev->next)
-	;
-    if (prev) {
-        netsnmp_assert(eptr == prev->next);
-	prev->next = eptr->next;
-    } else {
-        netsnmp_assert(eptr == ereg_head);
-	ereg_head = eptr->next;
-    }
-
-    netsnmp_table_data_delete_table(eptr->dinfo);
-    free(eptr->root_oid);
-    free(eptr);
 }
 
 int
@@ -287,8 +203,8 @@ void init_extend( void )
     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 = (netsnmp_old_extend *)
-        calloc( max_compatability_entries, sizeof(netsnmp_old_extend));
+    compatability_entries = calloc( max_compatability_entries,
+                                    sizeof(netsnmp_old_extend));
     REGISTER_MIB("ucd-extensible", old_extensible_variables,
                  variable2, old_extensible_variables_oid);
 #endif
@@ -298,17 +214,6 @@ void init_extend( void )
                            extend_clear_callback, NULL);
 }
 
-void
-shutdown_extend(void)
-{
-#ifndef USING_UCD_SNMP_EXTENSIBLE_MODULE
-    free(compatability_entries);
-    compatability_entries = NULL;
-#endif
-    while (ereg_head)
-	_unregister_extend(ereg_head);
-}
-
         /*************************
          *
          *  Cached-data hooks
@@ -319,10 +224,6 @@ shutdown_extend(void)
 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 */
@@ -362,7 +263,7 @@ extend_load_cache(netsnmp_cache *cache, void *magic)
             }
         }
         if ( extension->numlines > 1 ) {
-            extension->lines = (char**)calloc( sizeof(char *), extension->numlines );
+            extension->lines = calloc( sizeof(char *), extension->numlines );
             memcpy( extension->lines, line_buf,
                                        sizeof(char *) * extension->numlines );
         } else {
@@ -371,7 +272,6 @@ extend_load_cache(netsnmp_cache *cache, void *magic)
     }
     extension->result = ret;
     return ret;
-#endif /* !defined(USING_UTILITIES_EXECUTE_MODULE) */
 }
 
 void
@@ -427,9 +327,9 @@ _free_extension( netsnmp_extend *extension, extend_registration_block *ereg )
             eprev->next = eptr->next;
         else
             ereg->ehead = eptr->next;
-        netsnmp_table_data_remove_and_delete_row( ereg->dinfo, extension->row);
     }
 
+    netsnmp_table_data_remove_and_delete_row( ereg->dinfo, extension->row);
     SNMP_FREE( extension->token );
     SNMP_FREE( extension->cache );
     SNMP_FREE( extension->command );
@@ -509,7 +409,6 @@ extend_parse_config(const char *token, char *cptr)
 {
     netsnmp_extend *extension;
     char exec_name[STRMAX];
-    char exec_name2[STRMAX];     /* For use with UCD execFix directive */
     char exec_command[STRMAX];
     oid  oid_buf[MAX_OID_LEN];
     size_t oid_len;
@@ -543,7 +442,6 @@ extend_parse_config(const char *token, char *cptr)
     if (!strcmp( token, "execFix"   ) ||
         !strcmp( token, "extendfix" ) ||
         !strcmp( token, "execFix2" )) {
-        strcpy( exec_name2, exec_name );
         strcat( exec_name, "Fix" );
         flags |= NS_EXTEND_FLAGS_WRITEABLE;
         /* XXX - Check for shell... */
@@ -567,7 +465,7 @@ extend_parse_config(const char *token, char *cptr)
     if (!strcmp( token, "execFix"  )) {
         int  i;
         for ( i=0; i < num_compatability_entries; i++ ) {
-            if (!strcmp( exec_name2,
+            if (!strcmp( exec_name,
                     compatability_entries[i].exec_entry->token))
                 break;
         }
@@ -578,21 +476,10 @@ extend_parse_config(const char *token, char *cptr)
             
     } else if (!strcmp( token, "sh"   ) ||
                !strcmp( token, "exec" )) {
-        if ( num_compatability_entries == max_compatability_entries ) {
+        if ( num_compatability_entries == max_compatability_entries )
             /* XXX - should really use dynamic allocation */
-            netsnmp_old_extend *new_compatability_entries;
-            new_compatability_entries = realloc(compatability_entries,
-                             max_compatability_entries*2*sizeof(netsnmp_old_extend));
-            if (!new_compatability_entries)
-                config_perror("No further UCD-compatible entries" );
-            else {
-                memset(new_compatability_entries+num_compatability_entries, 0,
-                        sizeof(netsnmp_old_extend)*max_compatability_entries);
-                max_compatability_entries *= 2;
-                compatability_entries = new_compatability_entries;
-            }
-        }
-        if (num_compatability_entries != max_compatability_entries)
+            config_perror("No further UCD-compatible entries" );
+        else
             compatability_entries[
                 num_compatability_entries++ ].exec_entry = extension;
     }
@@ -712,7 +599,6 @@ handle_nsExtendConfigTable(netsnmp_mib_handler          *handler,
          *
          **********/
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         case MODE_SET_RESERVE1:
             /*
              * Validate the new assignments
@@ -896,7 +782,7 @@ handle_nsExtendConfigTable(netsnmp_mib_handler          *handler,
                 case RS_CREATEANDWAIT:
                     eptr = _find_extension_block( request->requestvb->name,
                                                   request->requestvb->name_length );
-                    extension = _new_extension( (char *) table_info->indexes->val.string,
+                    extension = _new_extension( table_info->indexes->val.string,
                                                 0, eptr );
                     if (!extension) {  /* failed */
                         netsnmp_set_request_error(reqinfo, request,
@@ -1038,7 +924,6 @@ handle_nsExtendConfigTable(netsnmp_mib_handler          *handler,
                 }
             }
             break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
 
         default:
             netsnmp_set_request_error(reqinfo, request, SNMP_ERR_GENERR);
@@ -1046,7 +931,6 @@ handle_nsExtendConfigTable(netsnmp_mib_handler          *handler,
         }
     }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     /*
      * If we're marking a given row as active,
      *  then we need to check that it's ready.
@@ -1071,8 +955,7 @@ handle_nsExtendConfigTable(netsnmp_mib_handler          *handler,
             }
         }
     }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-    
+
     return SNMP_ERR_NOERROR;
 }
 
@@ -1201,12 +1084,12 @@ _extend_find_entry( netsnmp_request_info       *request,
 {
     netsnmp_extend            *eptr;
     extend_registration_block *ereg;
-    unsigned int line_idx;
+    int line_idx;
     oid oid_buf[MAX_OID_LEN];
     int oid_len;
     int i;
-    char  *token;
-    size_t token_len;
+    char *token;
+    int   token_len;
 
     if (!request || !table_info || !table_info->indexes
                  || !table_info->indexes->next_variable) {
@@ -1221,11 +1104,11 @@ _extend_find_entry( netsnmp_request_info       *request,
      *  GET handling - find the exact entry being requested
      ***/
     if ( mode == MODE_GET ) {
-        DEBUGMSGTL(( "nsExtendTable:output2", "GET: %s / %ld\n ",
+        DEBUGMSGTL(( "nsExtendTable:output2", "GET: %s / %d\n ",
                       table_info->indexes->val.string,
                      *table_info->indexes->next_variable->val.integer));
         for ( eptr = ereg->ehead; eptr; eptr = eptr->next ) {
-            if ( !strcmp( eptr->token, (char *) table_info->indexes->val.string ))
+            if ( !strcmp( eptr->token, table_info->indexes->val.string ))
                 break;
         }
 
@@ -1241,9 +1124,10 @@ _extend_find_entry( netsnmp_request_info       *request,
              * ...and check the line requested is valid
              */
             line_idx = *table_info->indexes->next_variable->val.integer;
-            if (line_idx < 1 || line_idx > eptr->numlines)
+            if (eptr->numlines < line_idx)
                 return NULL;
         }
+        return eptr;
     }
 
         /***
@@ -1264,7 +1148,7 @@ _extend_find_entry( netsnmp_request_info       *request,
                 }
             }
         } else {
-            token     =  (char *) table_info->indexes->val.string;
+            token     =  table_info->indexes->val.string;
             token_len =  table_info->indexes->val_len;
             line_idx  = *table_info->indexes->next_variable->val.integer;
             DEBUGMSGTL(( "nsExtendTable:output2", "GETNEXT: %s / %d\n ",
@@ -1360,8 +1244,9 @@ _extend_find_entry( netsnmp_request_info       *request,
             snmp_set_var_value( table_info->indexes->next_variable,
                                 (const u_char*)&line_idx, sizeof(line_idx));
         }
+        return eptr;  /* Finally, signal success */
     }
-    return eptr;  /* Finally, signal success */
+    return NULL;
 }
 
 /*
@@ -1379,7 +1264,7 @@ handle_nsExtendOutput2Table(netsnmp_mib_handler          *handler,
     netsnmp_table_request_info *table_info;
     netsnmp_extend             *extension;
     char *cp;
-    unsigned int line_idx;
+    int line_idx;
     int len;
 
     for ( request=requests; request; request=request->next ) {
@@ -1412,10 +1297,6 @@ handle_nsExtendOutput2Table(netsnmp_mib_handler          *handler,
                  * Determine which line we've been asked for....
                  */
                 line_idx = *table_info->indexes->next_variable->val.integer;
-                if (line_idx < 1 || line_idx > extension->numlines) {
-                    netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE);
-                    continue;
-                }
                 cp  = extension->lines[line_idx-1];
 
                 /* 
@@ -1460,15 +1341,13 @@ var_extensible_old(struct variable * vp,
 {
     netsnmp_old_extend *exten = NULL;
     static long     long_ret;
-    unsigned int idx;
+    int idx;
 
     if (header_simple_table
         (vp, name, length, exact, var_len, write_method, num_compatability_entries))
         return (NULL);
 
     idx = name[*length-1] -1;
-	if (idx > max_compatability_entries)
-		return NULL;
     exten = &compatability_entries[ idx ];
     if (exten) {
         switch (vp->magic) {
@@ -1524,12 +1403,11 @@ fixExec2Error(int action,
              u_char * statP, oid * name, size_t name_len)
 {
     netsnmp_old_extend *exten = NULL;
-    unsigned int idx;
+    int idx;
 
     idx = name[name_len-1] -1;
     exten = &compatability_entries[ idx ];
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     switch (action) {
     case MODE_SET_RESERVE1:
         if (var_val_type != ASN_INTEGER) {
@@ -1550,7 +1428,6 @@ fixExec2Error(int action,
     case MODE_SET_COMMIT:
         netsnmp_cache_check_and_reload( exten->efix_entry->cache );
     }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     return SNMP_ERR_NOERROR;
 }
-#endif /* USING_UCD_SNMP_EXTENSIBLE_MODULE */
+#endif
diff --git a/agent/mibgroup/agent/extend.h b/agent/mibgroup/agent/extend.h
index 8b76cd4..8f19db3 100644
--- a/agent/mibgroup/agent/extend.h
+++ b/agent/mibgroup/agent/extend.h
@@ -1,7 +1,7 @@
 #ifndef NETSNMP_EXTEND_H
 #define NETSNMP_EXTEND_H
 
-config_require( util_funcs/header_simple_table )
+config_require( util_funcs )
 config_require( utilities/execute )
 config_add_mib(NET-SNMP-EXTEND-MIB)
 
@@ -28,7 +28,6 @@ typedef struct netsnmp_extend_s {
 } netsnmp_extend;
 
 void                 init_extend(void);
-void                 shutdown_extend(void);
 Netsnmp_Node_Handler handle_nsExtendConfigTable;
 Netsnmp_Node_Handler handle_nsExtendOutput1Table;
 Netsnmp_Node_Handler handle_nsExtendOutput2Table;
diff --git a/agent/mibgroup/agent/nsCache.c b/agent/mibgroup/agent/nsCache.c
index a56b0bd..f8e73f0 100644
--- a/agent/mibgroup/agent/nsCache.c
+++ b/agent/mibgroup/agent/nsCache.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/scalar.h>
@@ -12,8 +11,7 @@
 
 #include <net-snmp/agent/cache_handler.h>
 #include "agent/nsCache.h"
-
-netsnmp_feature_require(cache_get_head)
+#include "util_funcs.h"
 
 
 /*
@@ -23,8 +21,6 @@ netsnmp_feature_require(cache_get_head)
 extern netsnmp_cache *netsnmp_cache_get_head(void);
 
 
-#define nsCache 1, 3, 6, 1, 4, 1, 8072, 1, 5
-
 /*
  * OIDs for the cacheging control scalar objects
  *
@@ -32,6 +28,8 @@ extern netsnmp_cache *netsnmp_cache_get_head(void);
  *  than the (sole) valid instance in each case, in order
  *  to handle requests for invalid instances properly.
  */
+oid nsCacheTimeout_oid[]    = { 1, 3, 6, 1, 4, 1, 8072, 1, 5, 1};
+oid nsCacheEnabled_oid[]    = { 1, 3, 6, 1, 4, 1, 8072, 1, 5, 2};
 
 /*
  * ... and for the cache table.
@@ -46,17 +44,15 @@ extern netsnmp_cache *netsnmp_cache_get_head(void);
 #define NSCACHE_STATUS_ACTIVE   4
 #define NSCACHE_STATUS_EXPIRED  5
 
-NETSNMP_IMPORT struct snmp_alarm *
+oid nsCacheTable_oid[]      = { 1, 3, 6, 1, 4, 1, 8072, 1, 5, 3};
+
+extern struct snmp_alarm *
 sa_find_specific(unsigned int clientreg);
 
 
 void
 init_nsCache(void)
 {
-    const oid nsCacheTimeout_oid[]    = { nsCache, 1 };
-    const oid nsCacheEnabled_oid[]    = { nsCache, 2 };
-    const oid nsCacheTable_oid[]      = { nsCache, 3 };
-
     netsnmp_table_registration_info *table_info;
     netsnmp_iterator_info           *iinfo;
 
@@ -106,7 +102,7 @@ init_nsCache(void)
     /*
      * .... and register the table with the agent.
      */
-    netsnmp_register_table_iterator2(
+    netsnmp_register_table_iterator(
         netsnmp_create_handler_registration(
             "tzCacheTable", handle_nsCacheTable,
             nsCacheTable_oid, OID_LENGTH(nsCacheTable_oid),
@@ -141,7 +137,6 @@ handle_nsCacheTimeout(netsnmp_mib_handler *handler,
 	break;
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
 	for (request = requests; request; request=request->next) {
             if ( request->status != 0 ) {
@@ -163,7 +158,6 @@ handle_nsCacheTimeout(netsnmp_mib_handler *handler,
                            NETSNMP_DS_AGENT_CACHE_TIMEOUT,
                            *requests->requestvb->val.integer);
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
 
     return SNMP_ERR_NOERROR;
@@ -193,7 +187,6 @@ handle_nsCacheEnabled(netsnmp_mib_handler *handler,
 	break;
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
 	for (request = requests; request; request=request->next) {
             if ( request->status != 0 ) {
@@ -218,7 +211,6 @@ handle_nsCacheEnabled(netsnmp_mib_handler *handler,
 	netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
                                NETSNMP_DS_AGENT_NO_CACHING, enabled);
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
 
     return SNMP_ERR_NOERROR;
@@ -303,9 +295,9 @@ handle_nsCacheTable(netsnmp_mib_handler *handler,
                     continue;
 		}
 		status = (cache_entry->enabled ?
-	                   (cache_entry->timestampM ?
-                             (!netsnmp_ready_monotonic(cache_entry->timestampM,
-                                                       1000*cache_entry->timeout) ?
+	                   (cache_entry->timestamp ?
+                             (!atime_ready(cache_entry->timestamp,
+                                          1000*cache_entry->timeout) ?
 	                        NSCACHE_STATUS_ACTIVE:
 	                        NSCACHE_STATUS_EXPIRED) :
 	                      NSCACHE_STATUS_EMPTY) :
@@ -322,7 +314,6 @@ handle_nsCacheTable(netsnmp_mib_handler *handler,
 	break;
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
         for (request=requests; request; request=request->next) {
             if (request->processed != 0)
@@ -370,6 +361,7 @@ handle_nsCacheTable(netsnmp_mib_handler *handler,
             default:
                 netsnmp_set_request_error(reqinfo, request, SNMP_ERR_NOCREATION);
                 return SNMP_ERR_NOCREATION;	/* XXX - is this right ? */
+                continue;
 	    }
 	}
 	break;
@@ -413,15 +405,14 @@ handle_nsCacheTable(netsnmp_mib_handler *handler,
                         break;
 		    case NSCACHE_STATUS_EMPTY:
                         cache_entry->free_cache(cache_entry, cache_entry->magic);
-                        free(cache_entry->timestampM);
-                        cache_entry->timestampM = NULL;
+                        free(cache_entry->timestamp);
+                        cache_entry->timestamp = NULL;
                         break;
 		}
 	        break;
 	    }
 	}
 	break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
 
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/agent/nsDebug.c b/agent/mibgroup/agent/nsDebug.c
index 89a90b0..4e92f9d 100644
--- a/agent/mibgroup/agent/nsDebug.c
+++ b/agent/mibgroup/agent/nsDebug.c
@@ -10,32 +10,34 @@
 #endif
 
 #include "agent/nsDebug.h"
+#include "util_funcs.h"
 
-#define nsConfigDebug 1, 3, 6, 1, 4, 1, 8072, 1, 7, 1
 
-void
-init_nsDebug(void)
-{
-    /*
-     * OIDs for the debugging control scalar objects
-     *
-     * Note that these we're registering the full object rather
-     *  than the (sole) valid instance in each case, in order
-     *  to handle requests for invalid instances properly.
-     */
-    const oid nsDebugEnabled_oid[]    = { nsConfigDebug, 1};
-    const oid nsDebugOutputAll_oid[]  = { nsConfigDebug, 2};
-    const oid nsDebugDumpPdu_oid[]    = { nsConfigDebug, 3};
 
-    /*
-     * ... and for the token table.
-     */
+/*
+ * OIDs for the debugging control scalar objects
+ *
+ * Note that these we're registering the full object rather
+ *  than the (sole) valid instance in each case, in order
+ *  to handle requests for invalid instances properly.
+ */
+oid nsDebugEnabled_oid[]    = { 1, 3, 6, 1, 4, 1, 8072, 1, 7, 1, 1};
+oid nsDebugOutputAll_oid[]  = { 1, 3, 6, 1, 4, 1, 8072, 1, 7, 1, 2};
+oid nsDebugDumpPdu_oid[]    = { 1, 3, 6, 1, 4, 1, 8072, 1, 7, 1, 3};
+
+/*
+ * ... and for the token table.
+ */
 
 #define  DBGTOKEN_PREFIX	2
 #define  DBGTOKEN_ENABLED	3
 #define  DBGTOKEN_STATUS	4
-    const oid nsDebugTokenTable_oid[] = { nsConfigDebug, 4};
+oid nsDebugTokenTable_oid[] = { 1, 3, 6, 1, 4, 1, 8072, 1, 7, 1, 4};
 
+
+void
+init_nsDebug(void)
+{
     netsnmp_table_registration_info *table_info;
     netsnmp_iterator_info           *iinfo;
 
@@ -91,7 +93,7 @@ init_nsDebug(void)
     /*
      * .... and register the table with the agent.
      */
-    netsnmp_register_table_iterator2(
+    netsnmp_register_table_iterator(
         netsnmp_create_handler_registration(
             "tzDebugTable", handle_nsDebugTable,
             nsDebugTokenTable_oid, OID_LENGTH(nsDebugTokenTable_oid),
@@ -124,7 +126,6 @@ handle_nsDebugEnabled(netsnmp_mib_handler *handler,
 	break;
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
 	for (request = requests; request; request=request->next) {
             if (request->processed != 0)
@@ -150,7 +151,6 @@ handle_nsDebugEnabled(netsnmp_mib_handler *handler,
 	    enabled = 0;
 	snmp_set_do_debugging( enabled );
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
 
     return SNMP_ERR_NOERROR;
@@ -181,7 +181,6 @@ handle_nsDebugOutputAll(netsnmp_mib_handler *handler,
 	break;
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
 	for (request = requests; request; request=request->next) {
             if (request->processed != 0)
@@ -207,7 +206,6 @@ handle_nsDebugOutputAll(netsnmp_mib_handler *handler,
 	    enabled = 0;
 	snmp_set_do_debugging( enabled );
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
 
     return SNMP_ERR_NOERROR;
@@ -239,7 +237,6 @@ handle_nsDebugDumpPdu(netsnmp_mib_handler *handler,
 	break;
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
 	for (request = requests; request; request=request->next) {
             if (request->processed != 0)
@@ -266,7 +263,6 @@ handle_nsDebugDumpPdu(netsnmp_mib_handler *handler,
 	netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID,
 	                       NETSNMP_DS_LIB_DUMP_PACKET, enabled);
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
 
     return SNMP_ERR_NOERROR;
@@ -351,7 +347,6 @@ handle_nsDebugTable(netsnmp_mib_handler *handler,
 	break;
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
 	for (request = requests; request; request=request->next) {
             if (request->processed != 0)
@@ -423,9 +418,8 @@ handle_nsDebugTable(netsnmp_mib_handler *handler,
 		 */
                 debug_entry = (netsnmp_token_descr*)
                                netsnmp_extract_iterator_context(request);
-                if (debug_entry)
-                    debug_entry->enabled =
-                        (*request->requestvb->val.integer == RS_ACTIVE);
+                debug_entry->enabled =
+                    (*request->requestvb->val.integer == RS_ACTIVE);
 		break;
 
             case RS_CREATEANDWAIT:
@@ -434,7 +428,7 @@ handle_nsDebugTable(netsnmp_mib_handler *handler,
 		 * Create the entry, and set the enabled field appropriately
 		 */
                 table_info = netsnmp_extract_table_info(request);
-                debug_register_tokens((char *) table_info->indexes->val.string);
+                debug_register_tokens(table_info->indexes->val.string);
 #ifdef UMMMMM
                 if (*request->requestvb->val.integer == RS_CREATEANDWAIT) {
 		    /* XXX - how to locate the entry ??  */
@@ -458,7 +452,6 @@ handle_nsDebugTable(netsnmp_mib_handler *handler,
 	    }
         }
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
 
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/agent/nsLogging.c b/agent/mibgroup/agent/nsLogging.c
index 7f20bdb..a8563b3 100644
--- a/agent/mibgroup/agent/nsLogging.c
+++ b/agent/mibgroup/agent/nsLogging.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/scalar.h>
@@ -12,11 +11,9 @@
 
 #include <net-snmp/library/snmp_logging.h>
 #include "agent/nsLogging.h"
+#include "util_funcs.h"
+
 
-netsnmp_feature_require(logging_external)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(table_iterator_insert_context)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 /*
  * OID and columns for the logging table.
@@ -26,14 +23,15 @@ netsnmp_feature_require(table_iterator_insert_context)
 #define  NSLOGGING_MAXLEVEL	4
 #define  NSLOGGING_STATUS	5
 
+oid nsLoggingTable_oid[]      = { 1, 3, 6, 1, 4, 1, 8072, 1, 7, 2, 1};
+
+
 void
 init_nsLogging(void)
 {
     netsnmp_table_registration_info *table_info;
     netsnmp_iterator_info           *iinfo;
 
-    const oid nsLoggingTable_oid[] = { 1, 3, 6, 1, 4, 1, 8072, 1, 7, 2, 1};
-
     /*
      * Register the table.
      * We need to define the column structure and indexing....
@@ -64,7 +62,7 @@ init_nsLogging(void)
     /*
      * .... and register the table with the agent.
      */
-    netsnmp_register_table_iterator2(
+    netsnmp_register_table_iterator(
         netsnmp_create_handler_registration(
             "tzLoggingTable", handle_nsLoggingTable,
             nsLoggingTable_oid, OID_LENGTH(nsLoggingTable_oid),
@@ -192,7 +190,6 @@ handle_nsLoggingTable(netsnmp_mib_handler *handler,
 	break;
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
         for (request=requests; request; request=request->next) {
             if ( request->status != 0 ) {
@@ -290,7 +287,7 @@ handle_nsLoggingTable(netsnmp_mib_handler *handler,
                     }
                     idx = idx->next_variable;
 	            logh->type  = 0;
-	            logh->token = strdup((char *) idx->val.string);
+	            logh->token = strdup(idx->val.string);
                     netsnmp_insert_iterator_context(request, (void*)logh);
 	            break;
 
@@ -311,6 +308,7 @@ handle_nsLoggingTable(netsnmp_mib_handler *handler,
             default:
                 netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT);
                 return SNMP_NOSUCHOBJECT;
+                continue;
 	    }
 	}
 	break;
@@ -363,7 +361,7 @@ handle_nsLoggingTable(netsnmp_mib_handler *handler,
 		switch ( *request->requestvb->val.integer ) {
                 case RS_ACTIVE:
                 case RS_CREATEANDGO:
-                    if ( !logh || !logh->type ) {
+                    if ( !logh->type ) {
                         netsnmp_set_request_error(reqinfo, request,
                                                   SNMP_ERR_INCONSISTENTVALUE);
                         return SNMP_ERR_INCONSISTENTVALUE;
@@ -451,11 +449,11 @@ handle_nsLoggingTable(netsnmp_mib_handler *handler,
                 switch (*request->requestvb->val.integer) {
                     case RS_ACTIVE:
                     case RS_CREATEANDGO:
-                        netsnmp_enable_this_loghandler(logh);
+                        logh->enabled = 1;
                         break;
                     case RS_NOTINSERVICE:
                     case RS_CREATEANDWAIT:
-                        netsnmp_disable_this_loghandler(logh);
+                        logh->enabled = 0;
                         break;
 		    case RS_DESTROY:
 		        netsnmp_remove_loghandler( logh );
@@ -465,7 +463,6 @@ handle_nsLoggingTable(netsnmp_mib_handler *handler,
 	    }
 	}
 	break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
 
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/agent/nsModuleTable.c b/agent/mibgroup/agent/nsModuleTable.c
index 84bd8fa..4f4ea00 100644
--- a/agent/mibgroup/agent/nsModuleTable.c
+++ b/agent/mibgroup/agent/nsModuleTable.c
@@ -4,13 +4,10 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "nsModuleTable.h"
 
-netsnmp_feature_require(table_dataset)
-
 void
 nsModuleTable_free(void *context, netsnmp_iterator_info *dont_care)
 {
@@ -21,7 +18,8 @@ nsModuleTable_free(void *context, netsnmp_iterator_info *dont_care)
 void
 initialize_table_nsModuleTable(void)
 {
-    const oid nsModuleTable_oid[] = { 1, 3, 6, 1, 4, 1, 8072, 1, 2, 1 };
+    static oid      nsModuleTable_oid[] =
+        { 1, 3, 6, 1, 4, 1, 8072, 1, 2, 1 };
     netsnmp_table_registration_info *table_info;
     netsnmp_handler_registration *my_handler;
     netsnmp_iterator_info *iinfo;
@@ -75,10 +73,10 @@ initialize_table_nsModuleTable(void)
      */
     DEBUGMSGTL(("initialize_table_nsModuleTable",
                 "Registering table nsModuleTable as a table iterator\n"));
-    netsnmp_register_table_iterator2(my_handler, iinfo);
+    netsnmp_register_table_iterator(my_handler, iinfo);
 }
 
-/** Initializes the nsModuleTable module */
+/** Initialzies the nsModuleTable module */
 void
 init_nsModuleTable(void)
 {
@@ -139,18 +137,18 @@ nsModuleTable_get_first_data_point(void **my_loop_context,
     *my_data_context = ctree->tree;
 
     vptr = put_index_data;
-    snmp_set_var_value(vptr, ctree->context_ptr->context_name,
+    snmp_set_var_value(vptr, (u_char *) ctree->context_ptr->context_name,
                        strlen(ctree->context_ptr->context_name));
 
     vptr = vptr->next_variable;
     snmp_set_var_value(vptr,
-                       ctree->context_ptr->first_subtree->name_a,
+                       (u_char *)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, & ultmp, sizeof(ultmp));
+    snmp_set_var_value(vptr, (u_char *) & ultmp, sizeof(ultmp));
 
     return put_index_data;
 }
@@ -187,16 +185,16 @@ nsModuleTable_get_next_data_point(void **my_loop_context,
     *my_data_context = ctree->tree;
 
     vptr = put_index_data;
-    snmp_set_var_value(vptr, ctree->context_ptr->context_name,
+    snmp_set_var_value(vptr, (u_char *) ctree->context_ptr->context_name,
                        strlen(ctree->context_ptr->context_name));
 
     vptr = vptr->next_variable;
-    snmp_set_var_value(vptr, ctree->tree->name_a,
+    snmp_set_var_value(vptr, (u_char *) ctree->tree->name_a,
                        ctree->tree->namelen * sizeof(oid));
 
     ultmp = ctree->tree->priority;
     vptr = vptr->next_variable;
-    snmp_set_var_value(vptr, & ultmp, sizeof(ultmp));
+    snmp_set_var_value(vptr, (u_char *) & ultmp, sizeof(ultmp));
 
     return put_index_data;
 }
diff --git a/agent/mibgroup/agent/nsTransactionTable.c b/agent/mibgroup/agent/nsTransactionTable.c
index 75fe7be..71f4188 100644
--- a/agent/mibgroup/agent/nsTransactionTable.c
+++ b/agent/mibgroup/agent/nsTransactionTable.c
@@ -3,7 +3,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -11,14 +10,15 @@
 #include <net-snmp/agent/table_iterator.h>
 #include "nsTransactionTable.h"
 
-netsnmp_feature_require(table_dataset)
-
 /** Initialize the nsTransactionTable table by defining it's contents
    and how it's structured */
 void
 initialize_table_nsTransactionTable(void)
 {
-    const oid nsTransactionTable_oid[] = { 1, 3, 6, 1, 4, 1, 8072, 1, 8, 1 };
+    static oid      nsTransactionTable_oid[] =
+        { 1, 3, 6, 1, 4, 1, 8072, 1, 8, 1 };
+    size_t          nsTransactionTable_oid_len =
+        OID_LENGTH(nsTransactionTable_oid);
     netsnmp_table_registration_info *table_info;
     netsnmp_handler_registration *my_handler;
     netsnmp_iterator_info *iinfo;
@@ -33,10 +33,11 @@ initialize_table_nsTransactionTable(void)
      * if your table is read only, it's easiest to change the
      * HANDLER_CAN_RWRITE definition below to HANDLER_CAN_RONLY 
      */
-    my_handler = netsnmp_create_handler_registration(
-        "nsTransactionTable", nsTransactionTable_handler,
-        nsTransactionTable_oid, OID_LENGTH(nsTransactionTable_oid),
-        HANDLER_CAN_RONLY);
+    my_handler = netsnmp_create_handler_registration("nsTransactionTable",
+                                                     nsTransactionTable_handler,
+                                                     nsTransactionTable_oid,
+                                                     nsTransactionTable_oid_len,
+                                                     HANDLER_CAN_RONLY);
 
     if (!my_handler || !table_info || !iinfo) {
         if (my_handler)
@@ -64,10 +65,10 @@ initialize_table_nsTransactionTable(void)
      */
     DEBUGMSGTL(("initialize_table_nsTransactionTable",
                 "Registering table nsTransactionTable as a table iterator\n"));
-    netsnmp_register_table_iterator2(my_handler, iinfo);
+    netsnmp_register_table_iterator(my_handler, iinfo);
 }
 
-/** Initializes the nsTransactionTable module */
+/** Initialzies the nsTransactionTable module */
 void
 init_nsTransactionTable(void)
 {
diff --git a/agent/mibgroup/agent/nsVacmAccessTable.c b/agent/mibgroup/agent/nsVacmAccessTable.c
index 79fa97d..599bf80 100644
--- a/agent/mibgroup/agent/nsVacmAccessTable.c
+++ b/agent/mibgroup/agent/nsVacmAccessTable.c
@@ -4,18 +4,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/library/vacm.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "nsVacmAccessTable.h"
 
-netsnmp_feature_require(check_vb_storagetype)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_type_and_max_size)
-netsnmp_feature_require(table_iterator_insert_context)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
 /** Initializes the nsVacmAccessTable module */
 void
 init_register_nsVacm_context(const char *context)
@@ -24,22 +17,17 @@ init_register_nsVacm_context(const char *context)
      * Initialize the nsVacmAccessTable table by defining its
      *   contents and how it's structured
      */
-    const oid nsVacmAccessTable_oid[]   = { 1,3,6,1,4,1,8072,1,9,1 };
+    static oid nsVacmAccessTable_oid[]   = { 1,3,6,1,4,1,8072,1,9,1 };
+    size_t     nsVacmAccessTable_oid_len = OID_LENGTH(nsVacmAccessTable_oid);
     netsnmp_handler_registration    *reg;
     netsnmp_iterator_info           *iinfo;
     netsnmp_table_registration_info *table_info;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-    reg = netsnmp_create_handler_registration(
-        "nsVacmAccessTable", nsVacmAccessTable_handler,
-        nsVacmAccessTable_oid, OID_LENGTH(nsVacmAccessTable_oid),
-        HANDLER_CAN_RWRITE);
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-    reg = netsnmp_create_handler_registration(
-        "nsVacmAccessTable", nsVacmAccessTable_handler,
-        nsVacmAccessTable_oid, OID_LENGTH(nsVacmAccessTable_oid),
-        HANDLER_CAN_RONLY);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+    reg = netsnmp_create_handler_registration("nsVacmAccessTable",
+                                            nsVacmAccessTable_handler,
+                                            nsVacmAccessTable_oid,
+                                            nsVacmAccessTable_oid_len,
+                                            HANDLER_CAN_RWRITE);
 
     table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
     netsnmp_table_helper_add_indexes(table_info,
@@ -60,7 +48,7 @@ init_register_nsVacm_context(const char *context)
     if ( context && context[0] )
         reg->contextName = strdup(context);
 
-    netsnmp_register_table_iterator2(reg, iinfo);
+    netsnmp_register_table_iterator(reg, iinfo);
 }
 
 void
@@ -174,11 +162,11 @@ nsVacmAccessTable_handler(netsnmp_mib_handler *handler,
             /* Extract the authType token from the list of indexes */
             idx = table_info->indexes->next_variable->next_variable->next_variable->next_variable;
             memset(atype, 0, sizeof(atype));
-            memcpy(atype, (char *)idx->val.string, idx->val_len);
+            strncpy(atype, (char *)idx->val.string, idx->val_len);
             viewIdx = se_find_value_in_slist(VACM_VIEW_ENUM_NAME, atype);
             DEBUGMSGTL(("nsVacm", "GET %s (%d)\n", idx->val.string, viewIdx));
 
-            if (!entry || viewIdx < 0)
+            if (!entry)
                 continue;
 
             switch (table_info->colnum) {
@@ -203,7 +191,6 @@ nsVacmAccessTable_handler(netsnmp_mib_handler *handler,
         }
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         /*
          * Write-support
          */
@@ -248,7 +235,7 @@ nsVacmAccessTable_handler(netsnmp_mib_handler *handler,
                  */
                 idx = table_info->indexes->next_variable->next_variable->next_variable->next_variable;
                 memset(atype, 0, sizeof(atype));
-                memcpy(atype, (char *)idx->val.string, idx->val_len);
+                strncpy(atype, (char *)idx->val.string, idx->val_len);
                 viewIdx = se_find_value_in_slist(VACM_VIEW_ENUM_NAME, atype);
                 if ( viewIdx < 0 ) {
                     ret = SNMP_ERR_NOCREATION;
@@ -322,10 +309,8 @@ nsVacmAccessTable_handler(netsnmp_mib_handler *handler,
             /* Extract the authType token from the list of indexes */
             idx = table_info->indexes->next_variable->next_variable->next_variable->next_variable;
             memset(atype, 0, sizeof(atype));
-            memcpy(atype, (char *)idx->val.string, idx->val_len);
+            strncpy(atype, (char *)idx->val.string, idx->val_len);
             viewIdx = se_find_value_in_slist(VACM_VIEW_ENUM_NAME, atype);
-            if (viewIdx < 0)
-                    continue;
 
             switch (table_info->colnum) {
             case COLUMN_NSVACMCONTEXTMATCH:
@@ -349,7 +334,6 @@ nsVacmAccessTable_handler(netsnmp_mib_handler *handler,
             }
         }
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
     return SNMP_ERR_NOERROR;
 }
diff --git a/agent/mibgroup/agent_mibs.h b/agent/mibgroup/agent_mibs.h
index 50dd159..8c0de1c 100644
--- a/agent/mibgroup/agent_mibs.h
+++ b/agent/mibgroup/agent_mibs.h
@@ -1,8 +1,6 @@
 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/agentx_config.c b/agent/mibgroup/agentx/agentx_config.c
index ea453c2..d156d47 100644
--- a/agent/mibgroup/agentx/agentx_config.c
+++ b/agent/mibgroup/agentx/agentx_config.c
@@ -2,7 +2,6 @@
  *  AgentX Configuration
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <stdio.h>
 #include <sys/types.h>
@@ -15,15 +14,19 @@
 #include <strings.h>
 #endif
 
+#if HAVE_PWD_H
+#include <pwd.h>
+#endif
+#if HAVE_GRP_H
+#include <grp.h>
+#endif
+
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "snmpd.h"
 #include "agentx/agentx_config.h"
 #include "agentx/protocol.h"
 
-netsnmp_feature_require(user_information)
-netsnmp_feature_require(string_time_to_secs)
-
 /* ---------------------------------------------------------------------
  *
  * Common master and sub-agent
@@ -44,6 +47,7 @@ void
 agentx_parse_master(const char *token, char *cptr)
 {
     int             i = -1;
+    char            buf[BUFSIZ];
 
     if (!strcmp(cptr, "agentx") ||
         !strcmp(cptr, "all") ||
@@ -56,7 +60,8 @@ agentx_parse_master(const char *token, char *cptr)
         i = atoi(cptr);
 
     if (i < 0 || i > 1) {
-	netsnmp_config_error("master '%s' unrecognised", cptr);
+        sprintf(buf, "master '%s' unrecognised", cptr);
+        config_perror(buf);
     } else
         netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_AGENTX_MASTER, i);
 }
@@ -70,6 +75,12 @@ agentx_parse_agentx_perms(const char *token, char *cptr)
     int s_perm = -1;
     int d_perm = -1;
     char *st;
+#if HAVE_GETPWNAM && HAVE_PWD_H
+    struct passwd *pwd;
+#endif
+#if HAVE_GETGRNAM && HAVE_GRP_H
+    struct group  *grp;
+#endif
 
     DEBUGMSGTL(("agentx/config", "port permissions: %s\n", cptr));
     socket_perm = strtok_r(cptr, " \t", &st);
@@ -96,7 +107,16 @@ agentx_parse_agentx_perms(const char *token, char *cptr)
      * Try to handle numeric UIDs or user names for the socket owner
      */
     if (socket_user) {
-        uid = netsnmp_str_to_uid(socket_user);
+        uid = atoi(socket_user);
+        if ( uid == 0 ) {
+#if HAVE_GETPWNAM && HAVE_PWD_H
+            pwd = getpwnam( socket_user );
+            if (pwd)
+                uid = pwd->pw_uid;
+            else
+#endif
+                snmp_log(LOG_WARNING, "Can't identify AgentX socket user (%s).\n", socket_user);
+        }
         if ( uid != 0 )
             netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
                                NETSNMP_DS_AGENT_X_SOCK_USER, uid);
@@ -108,7 +128,16 @@ agentx_parse_agentx_perms(const char *token, char *cptr)
      * and similarly for the socket group ownership
      */
     if (socket_group) {
-        gid = netsnmp_str_to_gid(socket_group);
+        gid = atoi(socket_group);
+        if ( gid == 0 ) {
+#if HAVE_GETGRNAM && HAVE_GRP_H
+            grp = getgrnam( socket_group );
+            if (grp)
+                gid = grp->gr_gid;
+            else
+#endif
+                snmp_log(LOG_WARNING, "Can't identify AgentX socket group (%s).\n", socket_group);
+        }
         if ( gid != 0 )
             netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
                                NETSNMP_DS_AGENT_X_SOCK_GROUP, gid);
@@ -120,12 +149,8 @@ agentx_parse_agentx_perms(const char *token, char *cptr)
 void
 agentx_parse_agentx_timeout(const char *token, char *cptr)
 {
-    int x = netsnmp_string_time_to_secs(cptr);
+    int x = atoi(cptr);
     DEBUGMSGTL(("agentx/config/timeout", "%s\n", cptr));
-    if (x == -1) {
-        config_perror("Invalid timeout value");
-        return;
-    }
     netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
                        NETSNMP_DS_AGENT_AGENTX_TIMEOUT, x * ONE_SEC);
 }
@@ -160,14 +185,11 @@ agentx_register_config_handler(const char *token,
     register_config_handler(":agentx", token, parser, releaser, help);
 }
 
-netsnmp_feature_child_of(agentx_unregister_config_handler, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_AGENTX_UNREGISTER_CONFIG_HANDLER
 void
 agentx_unregister_config_handler(const char *token)
 {
     unregister_config_handler(":agentx", token);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_AGENTX_UNREGISTER_CONFIG_HANDLER */
 
 void
 agentx_config_init(void)
@@ -180,8 +202,10 @@ agentx_config_init(void)
      */
     netsnmp_register_default_domain("agentx", "unix tcp");
     netsnmp_register_default_target("agentx", "unix", NETSNMP_AGENTX_SOCKET);
+#define val(x) __STRING(x)
     netsnmp_register_default_target("agentx", "tcp",
-                                    "localhost:" __STRING(AGENTX_PORT));
+                                    "localhost:" val(AGENTX_PORT));
+#undef val
     agentx_register_config_handler("agentxsocket",
                                   agentx_parse_agentx_socket, NULL,
                                   "AgentX bind address");
diff --git a/agent/mibgroup/agentx/client.c b/agent/mibgroup/agentx/client.c
index d36fe2d..bc27c83 100644
--- a/agent/mibgroup/agentx/client.c
+++ b/agent/mibgroup/agentx/client.c
@@ -3,7 +3,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <stdio.h>
 #include <errno.h>
@@ -20,7 +19,11 @@
 #endif
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -33,6 +36,9 @@
 #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>
@@ -42,7 +48,7 @@
 #include "agentx/client.h"
 #include "agentx/subagent.h"
 
-netsnmp_feature_require(set_agent_uptime)
+extern struct timeval starttime;
 
         /*
          * AgentX handling utility routines
@@ -57,6 +63,7 @@ agentx_synch_input(int op,
                    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);
@@ -73,7 +80,17 @@ agentx_synch_input(int op,
             /*
              * Synchronise sysUpTime with the master agent
              */
-            netsnmp_set_agent_uptime(pdu->time);
+            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++;
+            }
         }
     } else if (op == NETSNMP_CALLBACK_OP_TIMED_OUT) {
         state->pdu = NULL;
@@ -106,7 +123,6 @@ agentx_open_session(netsnmp_session * ss)
     netsnmp_pdu    *pdu, *response;
     extern oid      version_sysoid[];
     extern int      version_sysoid_len;
-    u_long 	    timeout;
 
     DEBUGMSGTL(("agentx/subagent", "opening session \n"));
     if (ss == NULL || !IS_AGENTX_VERSION(ss->version)) {
@@ -116,14 +132,7 @@ agentx_open_session(netsnmp_session * ss)
     pdu = snmp_pdu_create(AGENTX_MSG_OPEN);
     if (pdu == NULL)
         return 0;
-    timeout = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
-                                   NETSNMP_DS_AGENT_AGENTX_TIMEOUT);
-    if (timeout < 0) 
     pdu->time = 0;
-    else
-	/* for master TIMEOUT is usec, but Agentx Open specifies sec */
-    	pdu->time = timeout/ONE_SEC;
-
     snmp_add_var(pdu, version_sysoid, version_sysoid_len,
 		 's', "Net-SNMP AgentX sub-agent");
 
@@ -195,7 +204,7 @@ agentx_register(netsnmp_session * ss, oid start[], size_t startlen,
     pdu->range_subid = range_subid;
     if (contextName) {
         pdu->flags |= AGENTX_MSG_FLAG_NON_DEFAULT_CONTEXT;
-        pdu->community = (u_char *) strdup(contextName);
+        pdu->community = strdup(contextName);
         pdu->community_len = strlen(contextName);
     }
 
@@ -217,7 +226,7 @@ agentx_register(netsnmp_session * ss, oid start[], size_t startlen,
     }
 
     if (response->errstat != SNMP_ERR_NOERROR) {
-        snmp_log(LOG_ERR,"registering pdu failed: %ld!\n", response->errstat);
+        snmp_log(LOG_ERR,"registering pdu failed: %d!\n", response->errstat);
         snmp_free_pdu(response);
         return 0;
     }
@@ -252,7 +261,7 @@ agentx_unregister(netsnmp_session * ss, oid start[], size_t startlen,
     pdu->range_subid = range_subid;
     if (contextName) {
         pdu->flags |= AGENTX_MSG_FLAG_NON_DEFAULT_CONTEXT;
-        pdu->community = (u_char *) strdup(contextName);
+        pdu->community = strdup(contextName);
         pdu->community_len = strlen(contextName);
     }
 
@@ -407,7 +416,7 @@ agentx_unregister_index(netsnmp_session * ss,
 
 int
 agentx_add_agentcaps(netsnmp_session * ss,
-                     const oid * agent_cap, size_t agent_caplen,
+                     oid * agent_cap, size_t agent_caplen,
                      const char *descr)
 {
     netsnmp_pdu    *pdu, *response;
@@ -437,7 +446,7 @@ agentx_add_agentcaps(netsnmp_session * ss,
 
 int
 agentx_remove_agentcaps(netsnmp_session * ss,
-                        const oid * agent_cap, size_t agent_caplen)
+                        oid * agent_cap, size_t agent_caplen)
 {
     netsnmp_pdu    *pdu, *response;
 
diff --git a/agent/mibgroup/agentx/client.h b/agent/mibgroup/agentx/client.h
index 1701aaa..cedeec0 100644
--- a/agent/mibgroup/agentx/client.h
+++ b/agent/mibgroup/agentx/client.h
@@ -23,9 +23,9 @@ extern          "C" {
                                                  int);
     int             agentx_unregister_index(netsnmp_session *,
                                             netsnmp_variable_list *);
-    int             agentx_add_agentcaps(netsnmp_session *, const oid *, size_t,
+    int             agentx_add_agentcaps(netsnmp_session *, oid *, size_t,
                                          const char *);
-    int             agentx_remove_agentcaps(netsnmp_session *, const oid *,
+    int             agentx_remove_agentcaps(netsnmp_session *, oid *,
                                             size_t);
     int             agentx_send_ping(netsnmp_session *);
 
diff --git a/agent/mibgroup/agentx/master.c b/agent/mibgroup/agentx/master.c
index c42a42a..1a66b72 100644
--- a/agent/mibgroup/agentx/master.c
+++ b/agent/mibgroup/agentx/master.c
@@ -14,7 +14,6 @@
 
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #if HAVE_IO_H
 #include <io.h>
 #endif
@@ -32,6 +31,9 @@
 #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
@@ -51,10 +53,6 @@
 #include "agentx/protocol.h"
 #include "agentx/master_admin.h"
 
-netsnmp_feature_require(handler_mark_requests_as_delegated)
-netsnmp_feature_require(unix_socket_paths)
-netsnmp_feature_require(free_agent_snmp_session_by_session)
-
 void
 real_init_master(void)
 {
@@ -62,6 +60,13 @@ real_init_master(void)
     char *agentx_sockets;
     char *cp1;
 
+#ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
+    int agentx_dir_perm;
+    int agentx_sock_perm;
+    int agentx_sock_user;
+    int agentx_sock_group;
+#endif
+
     if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE) != MASTER_AGENT)
         return;
 
@@ -93,18 +98,6 @@ real_init_master(void)
                                       NETSNMP_DS_AGENT_AGENTX_TIMEOUT);
     sess.retries = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
                                       NETSNMP_DS_AGENT_AGENTX_RETRIES);
-
-#ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
-    {
-	int agentx_dir_perm =
-	    netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
-			       NETSNMP_DS_AGENT_X_DIR_PERM);
-	if (agentx_dir_perm == 0)
-	    agentx_dir_perm = NETSNMP_AGENT_DIRECTORY_MODE;
-	netsnmp_unix_create_path_with_mode(agentx_dir_perm);
-    }
-#endif
-
     cp1 = agentx_sockets;
     while (cp1) {
         netsnmp_transport *t;
@@ -118,15 +111,44 @@ real_init_master(void)
         if (cp1 != NULL) {
             *cp1++ = '\0';
 	}
-
+    
+        if (sess.peername[0] == '/') {
+#ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
+            /*
+             *  If this is a Unix pathname,
+             *  try and create the directory first.
+             */
+            agentx_dir_perm = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID, 
+                                                 NETSNMP_DS_AGENT_X_DIR_PERM);
+            if (agentx_dir_perm == 0)
+                agentx_dir_perm = NETSNMP_AGENT_DIRECTORY_MODE;
+            if (mkdirhier(sess.peername, (mode_t)agentx_dir_perm, 1)) {
+                snmp_log(LOG_ERR,
+                         "Failed to create the directory for the agentX socket: %s\n",
+                         sess.peername);
+            }
+#else
+            netsnmp_sess_log_error(LOG_WARNING,
+                                   "unix domain support not available\n",
+                                   &sess);
+#endif
+        }
+    
         /*
-         *  Let 'snmp_open' interpret the descriptor.
+         *  Otherwise, let 'snmp_open' interpret the string.
          */
         sess.local_port = AGENTX_PORT;      /* Indicate server & set default port */
         sess.remote_port = 0;
         sess.callback = handle_master_agentx_packet;
         errno = 0;
         t = netsnmp_transport_open_server("agentx", sess.peername);
+        if (t == NULL && errno == EADDRINUSE) {
+            /*
+             * Could be a left-over socket (now deleted)
+             * Try again
+             */
+            t = netsnmp_transport_open_server("agentx", sess.peername);
+        }
         if (t == NULL) {
             /*
              * diagnose snmp_open errors with the input netsnmp_session
@@ -149,24 +171,23 @@ real_init_master(void)
         } else {
 #ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
             if (t->domain == netsnmp_UnixDomain && t->local != NULL) {
+                char name[sizeof(struct sockaddr_un) + 1];
+                memcpy(name, t->local, t->local_length);
+                name[t->local_length] = '\0';
                 /*
                  * Apply any settings to the ownership/permissions of the
                  * AgentX socket
                  */
-                int agentx_sock_perm =
+                agentx_sock_perm =
                     netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
                                        NETSNMP_DS_AGENT_X_SOCK_PERM);
-                int agentx_sock_user =
+                agentx_sock_user =
                     netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
                                        NETSNMP_DS_AGENT_X_SOCK_USER);
-                int agentx_sock_group =
+                agentx_sock_group =
                     netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID,
                                        NETSNMP_DS_AGENT_X_SOCK_GROUP);
 
-                char name[sizeof(struct sockaddr_un) + 1];
-                memcpy(name, t->local, t->local_length);
-                name[t->local_length] = '\0';
-
                 if (agentx_sock_perm != 0)
                     chmod(name, agentx_sock_perm);
 
@@ -192,10 +213,6 @@ real_init_master(void)
         }
     }
 
-#ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
-    netsnmp_unix_dont_create_path();
-#endif
-
     SNMP_FREE(agentx_sockets);
     DEBUGMSGTL(("agentx/master", "initializing...   DONE\n"));
 }
@@ -217,7 +234,7 @@ agentx_got_response(int operation,
 
     cache = netsnmp_handler_check_cache(cache);
     if (!cache) {
-        DEBUGMSGTL(("agentx/master", "response too late on session %8p\n",
+        DEBUGMSGTL(("agentx/master", "response too late on session %08p\n",
                     session));
         return 0;
     }
@@ -226,8 +243,8 @@ agentx_got_response(int operation,
     switch (operation) {
     case NETSNMP_CALLBACK_OP_TIMED_OUT:{
             void           *s = snmp_sess_pointer(session);
-            DEBUGMSGTL(("agentx/master", "timeout on session %8p req=0x%x\n",
-                        session, (unsigned)reqid));
+            DEBUGMSGTL(("agentx/master", "timeout on session %08p\n",
+                        session));
 
             netsnmp_handler_mark_requests_as_delegated(requests,
                                        REQUEST_IS_NOT_DELEGATED);
@@ -264,10 +281,10 @@ agentx_got_response(int operation,
     case NETSNMP_CALLBACK_OP_DISCONNECT:
     case NETSNMP_CALLBACK_OP_SEND_FAILED:
         if (operation == NETSNMP_CALLBACK_OP_DISCONNECT) {
-            DEBUGMSGTL(("agentx/master", "disconnect on session %8p\n",
+            DEBUGMSGTL(("agentx/master", "disconnect on session %08p\n",
                         session));
         } else {
-            DEBUGMSGTL(("agentx/master", "send failed on session %8p\n",
+            DEBUGMSGTL(("agentx/master", "send failed on session %08p\n",
                         session));
         }
         close_agentx_session(session, -1);
@@ -291,10 +308,9 @@ agentx_got_response(int operation,
         return 0;
     }
 
-    DEBUGMSGTL(("agentx/master", "got response errstat=%ld, (req=0x%x,trans="
+    DEBUGMSGTL(("agentx/master", "got response errstat=%d, (req=0x%x,trans="
                 "0x%x,sess=0x%x)\n",
-                pdu->errstat, (unsigned)pdu->reqid, (unsigned)pdu->transid,
-		(unsigned)pdu->sessid));
+                pdu->errstat,pdu->reqid,pdu->transid, pdu->sessid));
 
     if (pdu->errstat != AGENTX_ERR_NOERROR) {
         /* [RFC 2471 - 7.2.5.2.]
@@ -371,9 +387,9 @@ agentx_got_response(int operation,
             DEBUGMSGOID(("agentx/master", var->name, var->name_length));
             DEBUGMSG(("agentx/master", "\n"));
             if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_VERBOSE)) {
-                DEBUGMSGTL(("agentx/master", "    >> "));
-                DEBUGMSGVAR(("agentx/master", var));
-                DEBUGMSG(("agentx/master", "\n"));
+                DEBUGMSGTL(("snmp_agent", "    >> "));
+                DEBUGMSGVAR(("snmp_agent", var));
+                DEBUGMSG(("snmp_agent", "\n"));
             }
 
             /*
@@ -465,7 +481,6 @@ agentx_master_handler(netsnmp_mib_handler *handler,
         pdu = snmp_pdu_create(AGENTX_MSG_GETNEXT);
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
         pdu = snmp_pdu_create(AGENTX_MSG_TESTSET);
         break;
@@ -489,7 +504,6 @@ agentx_master_handler(netsnmp_mib_handler *handler,
     case MODE_SET_FREE:
         pdu = snmp_pdu_create(AGENTX_MSG_CLEANUPSET);
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     default:
         snmp_log(LOG_WARNING,
@@ -507,7 +521,7 @@ agentx_master_handler(netsnmp_mib_handler *handler,
     pdu->transid = reqinfo->asp->pdu->transid;
     pdu->sessid = ax_session->subsession->sessid;
     if (reginfo->contextName) {
-        pdu->community = (u_char *) strdup(reginfo->contextName);
+        pdu->community = strdup(reginfo->contextName);
         pdu->community_len = strlen(reginfo->contextName);
         pdu->flags |= AGENTX_MSG_FLAG_NON_DEFAULT_CONTEXT;
     }
@@ -601,11 +615,12 @@ agentx_master_handler(netsnmp_mib_handler *handler,
     /*
      * send the requests out.
      */
-    DEBUGMSGTL(("agentx/master", "sending pdu (req=0x%x,trans=0x%x,sess=0x%x)\n",
-                (unsigned)pdu->reqid, (unsigned)pdu->transid, (unsigned)pdu->sessid));
+    DEBUGMSGTL(("agentx", "sending pdu (req=0x%x,trans=0x%x,sess=0x%x)\n",
+                pdu->reqid,pdu->transid, pdu->sessid));
     result = snmp_async_send(ax_session, pdu, agentx_got_response, cb_data);
-    if (result == 0) {
-        snmp_free_pdu(pdu);
+
+    if (result == 0 ) {
+        snmp_free_pdu( pdu );
     }
 
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/agentx/master.h b/agent/mibgroup/agentx/master.h
index a5dbfad..b6a7f6b 100644
--- a/agent/mibgroup/agentx/master.h
+++ b/agent/mibgroup/agentx/master.h
@@ -7,6 +7,7 @@ config_require(agentx/protocol)
 config_require(agentx/client)
 config_require(agentx/master_admin)
 config_require(agentx/agentx_config)
+config_require(mibII/sysORTable)
 
      void            init_master(void);
      void            real_init_master(void);
diff --git a/agent/mibgroup/agentx/master_admin.c b/agent/mibgroup/agentx/master_admin.c
index 64aa491..a04b18a 100644
--- a/agent/mibgroup/agentx/master_admin.c
+++ b/agent/mibgroup/agentx/master_admin.c
@@ -2,7 +2,6 @@
  *  AgentX Administrative request handling
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <sys/types.h>
 #ifdef HAVE_STRING_H
@@ -14,7 +13,11 @@
 #include <stdlib.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -26,6 +29,9 @@
 #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
@@ -39,14 +45,12 @@
 #include <net-snmp/agent/agent_index.h>
 #include <net-snmp/agent/agent_trap.h>
 #include <net-snmp/agent/agent_callbacks.h>
-#include <net-snmp/agent/agent_sysORTable.h>
+#include "mibII/sysORTable.h"
 #include "master.h"
 
-netsnmp_feature_require(unregister_mib_table_row)
-netsnmp_feature_require(trap_vars_with_context)
-netsnmp_feature_require(calculate_sectime_diff)
-netsnmp_feature_require(allocate_globalcacheid)
-netsnmp_feature_require(remove_index)
+extern struct timeval starttime;
+
+
 
 netsnmp_session *
 find_agentx_session(netsnmp_session * session, int sessid)
@@ -64,8 +68,9 @@ int
 open_agentx_session(netsnmp_session * session, netsnmp_pdu *pdu)
 {
     netsnmp_session *sp;
+    struct timeval  now;
 
-    DEBUGMSGTL(("agentx/master", "open %8p\n", session));
+    DEBUGMSGTL(("agentx/master", "open %08p\n", session));
     sp = (netsnmp_session *) malloc(sizeof(netsnmp_session));
     if (sp == NULL) {
         session->s_snmp_errno = AGENTX_ERR_OPEN_FAILED;
@@ -103,7 +108,8 @@ open_agentx_session(netsnmp_session * session, netsnmp_pdu *pdu)
                                                  name_length);
     sp->securityAuthProtoLen = pdu->variables->name_length;
     sp->securityName = strdup((char *) pdu->variables->val.string);
-    sp->engineTime = (uint32_t)((netsnmp_get_agent_runtime() + 50) / 100) & 0x7fffffffL;
+    gettimeofday(&now, NULL);
+    sp->engineTime = calculate_time_diff(&now, &starttime);
 
     sp->subsession = session;   /* link back to head */
     sp->flags |= SNMP_FLAGS_SUBSESSION;
@@ -111,7 +117,7 @@ open_agentx_session(netsnmp_session * session, netsnmp_pdu *pdu)
     sp->flags |= (pdu->flags & AGENTX_MSG_FLAG_NETWORK_BYTE_ORDER);
     sp->next = session->subsession;
     session->subsession = sp;
-    DEBUGMSGTL(("agentx/master", "opened %8p = %ld with flags = %02lx\n",
+    DEBUGMSGTL(("agentx/master", "opened %08p = %d with flags = %02x\n",
                 sp, sp->sessid, sp->flags & AGENTX_MSG_FLAGS_MASK));
 
     return sp->sessid;
@@ -125,7 +131,7 @@ close_agentx_session(netsnmp_session * session, int sessid)
     if (!session)
         return AGENTX_ERR_NOT_OPEN;
 
-    DEBUGMSGTL(("agentx/master", "close %8p, %d\n", session, sessid));
+    DEBUGMSGTL(("agentx/master", "close %08p, %d\n", session, sessid));
     if (sessid == -1) {
         /*
          * The following is necessary to avoid locking up the agent when
@@ -143,7 +149,9 @@ close_agentx_session(netsnmp_session * session, int sessid)
                 
         unregister_mibs_by_session(session);
         unregister_index_by_session(session);
-        unregister_sysORTable_by_session(session);
+        snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
+                            SNMPD_CALLBACK_REQ_UNREG_SYSOR_SESS,
+                            (void*)session);
 	SNMP_FREE(session->myvoid);
         return AGENTX_ERR_NOERROR;
     }
@@ -155,7 +163,9 @@ close_agentx_session(netsnmp_session * session, int sessid)
         if (sp->sessid == sessid) {
             unregister_mibs_by_session(sp);
             unregister_index_by_session(sp);
-            unregister_sysORTable_by_session(sp);
+            snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
+                                SNMPD_CALLBACK_REQ_UNREG_SYSOR_SESS,
+                                (void*)sp);
 
             *prevNext = sp->next;
 
@@ -168,7 +178,7 @@ close_agentx_session(netsnmp_session * session, int sessid)
             free(sp);
             sp = NULL;
 
-            DEBUGMSGTL(("agentx/master", "closed %8p, %d okay\n",
+            DEBUGMSGTL(("agentx/master", "closed %08p, %d okay\n",
                         session, sessid));
             return AGENTX_ERR_NOERROR;
         }
@@ -223,7 +233,7 @@ register_agentx_list(netsnmp_session * session, netsnmp_pdu *pdu)
     reg->handler->myvoid = session;
     reg->global_cacheid = cacheid;
     if (NULL != pdu->community)
-        reg->contextName = strdup((char *)pdu->community);
+        reg->contextName = strdup(pdu->community);
 
     /*
      * register mib. Note that for failure cases, the registration info
@@ -370,17 +380,20 @@ int
 add_agent_caps_list(netsnmp_session * session, netsnmp_pdu *pdu)
 {
     netsnmp_session *sp;
-    char* description;
+    struct sysORTable parms;
 
     sp = find_agentx_session(session, pdu->sessid);
     if (sp == NULL)
         return AGENTX_ERR_NOT_OPEN;
 
-    description = netsnmp_strdup_and_null(pdu->variables->val.string,
-                                          pdu->variables->val_len);
-    register_sysORTable_sess(pdu->variables->name, pdu->variables->name_length,
-                             description, sp);
-    free(description);
+    parms.OR_oid = pdu->variables->name;
+    parms.OR_oidlen = pdu->variables->name_length;
+    parms.OR_descr  = netsnmp_strdup_and_null(pdu->variables->val.string,
+                                              pdu->variables->val_len);
+    parms.OR_sess = sp;
+    snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
+                        SNMPD_CALLBACK_REQ_REG_SYSOR, (void*)&parms);
+    free(parms.OR_descr);
     return AGENTX_ERR_NOERROR;
 }
 
@@ -388,28 +401,33 @@ int
 remove_agent_caps_list(netsnmp_session * session, netsnmp_pdu *pdu)
 {
     netsnmp_session *sp;
-    int rc;
+    struct sysORTable parms;
 
     sp = find_agentx_session(session, pdu->sessid);
     if (sp == NULL)
         return AGENTX_ERR_NOT_OPEN;
 
-    rc = unregister_sysORTable_sess(pdu->variables->name,
-                                    pdu->variables->name_length, sp);
-
-    if (rc < 0)
-      return AGENTX_ERR_UNKNOWN_AGENTCAPS;
-
+    parms.OR_oid = pdu->variables->name;
+    parms.OR_oidlen = pdu->variables->name_length;
+    parms.OR_sess = sp;
+    snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
+                        SNMPD_CALLBACK_REQ_UNREG_SYSOR, (void*)&parms);
+    /*
+     * no easy way to get an error code...
+     * if (rc < 0)
+     *   return AGENTX_ERR_UNKNOWN_AGENTCAPS;
+     */
     return AGENTX_ERR_NOERROR;
 }
 
 int
 agentx_notify(netsnmp_session * session, netsnmp_pdu *pdu)
 {
-    netsnmp_session       *sp;
+    netsnmp_session *sp;
     netsnmp_variable_list *var;
-    extern const oid       sysuptime_oid[], snmptrap_oid[];
-    extern const size_t    sysuptime_oid_len, snmptrap_oid_len;
+    int             got_sysuptime = 0;
+    extern oid      sysuptime_oid[], snmptrap_oid[];
+    extern size_t   sysuptime_oid_len, snmptrap_oid_len;
 
     sp = find_agentx_session(session, pdu->sessid);
     if (sp == NULL)
@@ -421,6 +439,7 @@ agentx_notify(netsnmp_session * session, netsnmp_pdu *pdu)
 
     if (snmp_oid_compare(var->name, var->name_length,
                          sysuptime_oid, sysuptime_oid_len) == 0) {
+        got_sysuptime = 1;
         var = var->next_variable;
     }
 
@@ -437,18 +456,7 @@ agentx_notify(netsnmp_session * session, netsnmp_pdu *pdu)
      *     as this is valid AgentX syntax.
      */
 
-	/* If a context name was specified, send the trap using that context.
-	 * Otherwise, send the trap without the context using the old method */
-	if (pdu->contextName != NULL)
-	{
-        send_trap_vars_with_context(-1, -1, pdu->variables, 
-                       pdu->contextName);
-	}
-	else
-	{
-        send_trap_vars(-1, -1, pdu->variables);
-	}
-
+    send_trap_vars(-1, -1, pdu->variables);
     return AGENTX_ERR_NOERROR;
 }
 
@@ -471,19 +479,16 @@ handle_master_agentx_packet(int operation,
                             int reqid, netsnmp_pdu *pdu, void *magic)
 {
     netsnmp_agent_session *asp;
+    struct timeval  now;
 
     if (operation == NETSNMP_CALLBACK_OP_DISCONNECT) {
         DEBUGMSGTL(("agentx/master",
-                    "transport disconnect on session %8p\n", session));
+                    "transport disconnect on session %08p\n", session));
         /*
          * Shut this session down gracefully.  
          */
         close_agentx_session(session, -1);
         return 1;
-    } else if (operation == NETSNMP_CALLBACK_OP_CONNECT) {
-        DEBUGMSGTL(("agentx/master",
-                    "transport connect on session %8p\n", session));
-        return 1;
     } else if (operation != NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE) {
         DEBUGMSGTL(("agentx/master", "unexpected callback op %d\n",
                     operation));
@@ -500,9 +505,8 @@ handle_master_agentx_packet(int operation,
         asp = init_agent_snmp_session(session, pdu);
     }
 
-    DEBUGMSGTL(("agentx/master", "handle pdu (req=0x%lx,trans=0x%lx,sess=0x%lx)\n",
-                (unsigned long)pdu->reqid, (unsigned long)pdu->transid,
-		(unsigned long)pdu->sessid));
+    DEBUGMSGTL(("agentx/master", "handle pdu (req=0x%x,trans=0x%x,sess=0x%x)\n",
+                pdu->reqid,pdu->transid, pdu->sessid));
     
     switch (pdu->command) {
     case AGENTX_MSG_OPEN:
@@ -573,13 +577,13 @@ handle_master_agentx_packet(int operation,
         break;
     }
 
-    asp->pdu->time = netsnmp_get_agent_uptime();
+    gettimeofday(&now, NULL);
+    asp->pdu->time = calculate_time_diff(&now, &starttime);
     asp->pdu->command = AGENTX_MSG_RESPONSE;
     asp->pdu->errstat = asp->status;
-    DEBUGMSGTL(("agentx/master", "send response, stat %d (req=0x%lx,trans="
-                "0x%lx,sess=0x%lx)\n",
-                asp->status, (unsigned long)pdu->reqid,
-		(unsigned long)pdu->transid, (unsigned long)pdu->sessid));
+    DEBUGMSGTL(("agentx/master", "send response, stat %d (req=0x%x,trans="
+                "0x%x,sess=0x%x)\n",
+                asp->status, pdu->reqid,pdu->transid, pdu->sessid));
     if (!snmp_send(asp->session, asp->pdu)) {
         char           *eb = NULL;
         int             pe, pse;
diff --git a/agent/mibgroup/agentx/protocol.c b/agent/mibgroup/agentx/protocol.c
index 0845cf1..005c883 100644
--- a/agent/mibgroup/agentx/protocol.c
+++ b/agent/mibgroup/agentx/protocol.c
@@ -26,7 +26,11 @@
 #endif
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -42,6 +46,10 @@
 #include <arpa/inet.h>
 #endif
 
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+
 #include <net-snmp/net-snmp-includes.h>
 
 #include "agentx/protocol.h"
@@ -127,7 +135,7 @@ agentx_realloc_build_int(u_char ** buf, size_t * buf_len, size_t * out_len,
 #endif
     }
     DEBUGDUMPSETUP("send", (*buf + ilen), 4);
-    DEBUGMSG(("dumpv_send", "  Integer:\t%u (0x%.2X)\n", ivalue,
+    DEBUGMSG(("dumpv_send", "  Integer:\t%lu (0x%.2lX)\n", ivalue,
               ivalue));
     return 1;
 }
@@ -160,7 +168,7 @@ agentx_build_int(u_char * bufp, u_int value, int network_byte_order)
 #endif
     }
     DEBUGDUMPSETUP("send", orig_bufp, 4);
-    DEBUGMSG(("dumpv_send", "  Integer:\t%u (0x%.2X)\n", orig_val,
+    DEBUGMSG(("dumpv_send", "  Integer:\t%ld (0x%.2X)\n", orig_val,
               orig_val));
 }
 
@@ -256,8 +264,8 @@ agentx_realloc_build_oid(u_char ** buf, size_t * buf_len, size_t * out_len,
 
     DEBUGDUMPHEADER("send", "OID Header");
     DEBUGDUMPSETUP("send", (*buf + ilen), 4);
-    DEBUGMSG(("dumpv_send", "  # subids:\t%d (0x%.2X)\n", (int)name_len,
-              (unsigned int)name_len));
+    DEBUGMSG(("dumpv_send", "  # subids:\t%d (0x%.2X)\n", name_len,
+              name_len));
     DEBUGPRINTINDENT("dumpv_send");
     DEBUGMSG(("dumpv_send", "  prefix:\t%d (0x%.2X)\n", prefix, prefix));
     DEBUGPRINTINDENT("dumpv_send");
@@ -441,7 +449,6 @@ agentx_realloc_build_varbind(u_char ** buf, size_t * buf_len,
                                   vp->name, vp->name_length,
                                   network_order)) {
         DEBUGINDENTLESS();
-        DEBUGINDENTLESS();
         return 0;
     }
     DEBUGINDENTLESS();
@@ -453,7 +460,6 @@ agentx_realloc_build_varbind(u_char ** buf, size_t * buf_len,
     case ASN_COUNTER:
     case ASN_GAUGE:
     case ASN_TIMETICKS:
-    case ASN_UINTEGER:
         if (!agentx_realloc_build_int(buf, buf_len, out_len, allow_realloc,
                                       *(vp->val.integer), network_order)) {
             DEBUGINDENTLESS();
@@ -481,7 +487,7 @@ agentx_realloc_build_varbind(u_char ** buf, size_t * buf_len,
     case ASN_OPAQUE_DOUBLE:
         DEBUGDUMPHEADER("send", "Build Opaque Double");
         DEBUGPRINTINDENT("dumpv_send");
-        DEBUGMSG(("dumpv_send", "  Double:\t%f\n", *(vp->val.doubleVal)));
+        DEBUGMSG(("dumpv_send", "  Double:\t%lf\n", *(vp->val.doubleVal)));
         if (!agentx_realloc_build_double
             (buf, buf_len, out_len, allow_realloc, *(vp->val.doubleVal),
              network_order)) {
@@ -541,7 +547,6 @@ agentx_realloc_build_varbind(u_char ** buf, size_t * buf_len,
                 DEBUGINDENTLESS();
                 return 0;
             }
-            DEBUGINDENTLESS();
         } else {
             DEBUGDUMPHEADER("send", "Build Counter64 (low, high)");
             if (!agentx_realloc_build_int
@@ -556,7 +561,6 @@ agentx_realloc_build_varbind(u_char ** buf, size_t * buf_len,
                 DEBUGINDENTLESS();
                 return 0;
             }
-            DEBUGINDENTLESS();
         }
         break;
 
@@ -672,7 +676,7 @@ _agentx_realloc_build(u_char ** buf, size_t * buf_len, size_t * out_len,
                       int allow_realloc,
                       netsnmp_session * session, netsnmp_pdu *pdu)
 {
-    size_t          ilen = *out_len;
+    size_t          ilen = *out_len, prefix_offset = 0;
     netsnmp_variable_list *vp;
     int             inc, i = 0;
     const int       network_order =
@@ -694,17 +698,6 @@ _agentx_realloc_build(u_char ** buf, size_t * buf_len, size_t * out_len,
         pdu->flags &= ~(AGENTX_MSG_FLAG_NON_DEFAULT_CONTEXT);
     }
 
-	/* We've received a PDU that has specified a context.  NetSNMP however, uses
-	 * the pdu->community field to specify context when using the AgentX
-	 * protocol.  Therefore we need to copy the context name and length into the
-	 * pdu->community and pdu->community_len fields, respectively. */
-	if (pdu->contextName != NULL && pdu->community == NULL)
-	{	
-		pdu->community     = (u_char *) strdup(pdu->contextName);
-		pdu->community_len = pdu->contextNameLen;
-		pdu->flags |= AGENTX_MSG_FLAG_NON_DEFAULT_CONTEXT;
-	}
-
     /*
      * Build the header (and context if appropriate).  
      */
@@ -825,6 +818,7 @@ _agentx_realloc_build(u_char ** buf, size_t * buf_len, size_t * out_len,
         DEBUGINDENTLESS();
 
         vp = pdu->variables;
+        prefix_offset = *out_len + 1;
         DEBUGDUMPHEADER("send", "(Un)Register Prefix");
         if (!agentx_realloc_build_oid
             (buf, buf_len, out_len, allow_realloc, 0, vp->name,
@@ -908,7 +902,7 @@ _agentx_realloc_build(u_char ** buf, size_t * buf_len, size_t * out_len,
         }
         DEBUGDUMPHEADER("send", "Response");
         DEBUGDUMPSETUP("send", (*buf + *out_len - 4), 4);
-        DEBUGMSG(("dumpv_send", "  sysUpTime:\t%lu\n", pdu->time));
+        DEBUGMSG(("dumpv_send", "  sysUpTime:\t%d\n", pdu->time));
         DEBUGINDENTLESS();
 
         if (!agentx_realloc_build_short
@@ -924,9 +918,9 @@ _agentx_realloc_build(u_char ** buf, size_t * buf_len, size_t * out_len,
         }
         DEBUGDUMPHEADER("send", "Response errors");
         DEBUGDUMPSETUP("send", (*buf + *out_len - 4), 4);
-        DEBUGMSG(("dumpv_send", "  errstat:\t%ld\n", pdu->errstat));
+        DEBUGMSG(("dumpv_send", "  errstat:\t%d\n", pdu->errstat));
         DEBUGPRINTINDENT("dumpv_send");
-        DEBUGMSG(("dumpv_send", "  errindex:\t%ld\n", pdu->errindex));
+        DEBUGMSG(("dumpv_send", "  errindex:\t%d\n", pdu->errindex));
         DEBUGINDENTLESS();
 
         /*
@@ -1069,7 +1063,7 @@ agentx_parse_int(u_char * data, u_int network_byte_order)
         value += data[0];
 #endif
     }
-    DEBUGMSG(("dumpv_recv", "  Integer:\t%u (0x%.2X)\n", value, value));
+    DEBUGMSG(("dumpv_recv", "  Integer:\t%ld (0x%.2X)\n", value, value));
 
     return value;
 }
@@ -1100,7 +1094,7 @@ agentx_parse_short(u_char * data, u_int network_byte_order)
     }
 
     DEBUGDUMPSETUP("recv", data, 2);
-    DEBUGMSG(("dumpv_recv", "  Short:\t%hu (0x%.2X)\n", value, value));
+    DEBUGMSG(("dumpv_recv", "  Short:\t%ld (0x%.2X)\n", value, value));
     return value;
 }
 
@@ -1146,7 +1140,7 @@ agentx_parse_oid(u_char * data, size_t * length, int *inc,
     *length -= 4;
 
     DEBUGMSG(("djp", "  parse_oid\n"));
-    DEBUGMSG(("djp", "  sizeof(oid) = %d\n", (int)sizeof(oid)));
+    DEBUGMSG(("djp", "  sizeof(oid) = %d\n", sizeof(oid)));
     if (n_subid == 0 && prefix == 0) {
         /*
          * Null OID 
@@ -1164,9 +1158,7 @@ agentx_parse_oid(u_char * data, size_t * length, int *inc,
      */
     tmp_oid_len = (prefix ? n_subid + 5 : n_subid);
     if (*oid_len < tmp_oid_len) {
-        DEBUGMSGTL(("agentx", "Oversized Object ID (buf=%" NETSNMP_PRIz "d"
-		    " pdu=%d)\n", *oid_len, tmp_oid_len));
-        DEBUGINDENTLESS();
+        DEBUGMSGTL(("agentx", "Oversized Object ID\n"));
         return NULL;
     }
 
@@ -1177,7 +1169,6 @@ agentx_parse_oid(u_char * data, size_t * length, int *inc,
 #endif
     if (*length < 4 * n_subid) {
         DEBUGMSGTL(("agentx", "Incomplete Object ID\n"));
-        DEBUGINDENTLESS();
         return NULL;
     }
 
@@ -1236,14 +1227,14 @@ agentx_parse_string(u_char * data, size_t * length,
 
     if (*length < 4) {
         DEBUGMSGTL(("agentx", "Incomplete string (too short: %d)\n",
-                    (int)*length));
+                    *length));
         return NULL;
     }
 
     len = agentx_parse_int(data, network_byte_order);
     if (*length < len + 4) {
         DEBUGMSGTL(("agentx", "Incomplete string (still too short: %d)\n",
-                    (int)*length));
+                    *length));
         return NULL;
     }
     if (len > *str_len) {
@@ -1282,7 +1273,6 @@ agentx_parse_opaque(u_char * data, size_t * length, int *type,
                     u_char * opaque_buf, size_t * opaque_len,
                     u_int network_byte_order)
 {
-#ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
     union {
         float           floatVal;
         double          doubleVal;
@@ -1291,18 +1281,17 @@ agentx_parse_opaque(u_char * data, size_t * length, int *type,
     } fu;
     int             tmp;
     u_char         *buf;
-#endif
-    u_char         *const cp =
-        agentx_parse_string(data, length,
-                            opaque_buf, opaque_len, network_byte_order);
+    u_char         *cp;
 
-#ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
+    cp = agentx_parse_string(data, length,
+                             opaque_buf, opaque_len, network_byte_order);
     if (cp == NULL)
         return NULL;
 
     buf = opaque_buf;
 
-    if ((*opaque_len <= 3) || (buf[0] != ASN_OPAQUE_TAG1))
+#ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
+    if ((buf[0] != ASN_OPAQUE_TAG1) || (*opaque_len <= 3))
         return cp;              /* Unrecognised opaque type */
 
     switch (buf[1]) {
@@ -1331,7 +1320,7 @@ agentx_parse_opaque(u_char * data, size_t * length, int *type,
         *opaque_len = sizeof(double);
         memcpy(opaque_buf, &fu.c[0], sizeof(double));
         *type = ASN_OPAQUE_DOUBLE;
-        DEBUGMSG(("dumpv_recv", "Double: %f\n", fu.doubleVal));
+        DEBUGMSG(("dumpv_recv", "Double: %lf\n", fu.doubleVal));
         return cp;
 
     case ASN_OPAQUE_I64:
@@ -1354,6 +1343,8 @@ agentx_parse_varbind(u_char * data, size_t * length, int *type,
 {
     u_char         *bufp = data;
     u_int           int_val;
+    int            int_offset;
+    u_int          *int_ptr = (u_int *) data_buf;
     struct counter64 tmp64;
 
     DEBUGDUMPHEADER("recv", "VarBind:");
@@ -1375,7 +1366,6 @@ agentx_parse_varbind(u_char * data, size_t * length, int *type,
     case ASN_COUNTER:
     case ASN_GAUGE:
     case ASN_TIMETICKS:
-    case ASN_UINTEGER:
         int_val = agentx_parse_int(bufp, network_byte_order);
         memmove(data_buf, &int_val, 4);
         *data_len = 4;
@@ -1408,16 +1398,16 @@ agentx_parse_varbind(u_char * data, size_t * length, int *type,
 
     case ASN_COUNTER64:
         memset(&tmp64, 0, sizeof(tmp64));
-	if (network_byte_order) {
-	    tmp64.high = agentx_parse_int(bufp,   network_byte_order);
-	    tmp64.low  = agentx_parse_int(bufp+4, network_byte_order);
-	} else {
-	    tmp64.high = agentx_parse_int(bufp+4, network_byte_order);
-	    tmp64.low  = agentx_parse_int(bufp,   network_byte_order);
-	}
+        if (network_byte_order) {
+            tmp64.high = agentx_parse_int(bufp,   network_byte_order);
+            tmp64.low  = agentx_parse_int(bufp+4, network_byte_order);
+        } else {
+            tmp64.high = agentx_parse_int(bufp+4, network_byte_order);
+            tmp64.low  = agentx_parse_int(bufp,   network_byte_order);
+        }
 
         memcpy(data_buf, &tmp64, sizeof(tmp64));
-	*data_len = sizeof(tmp64);
+        *data_len = sizeof(tmp64);
 	bufp    += 8;
 	*length -= 8;
         break;
@@ -1433,7 +1423,6 @@ agentx_parse_varbind(u_char * data, size_t * length, int *type,
         break;
 
     default:
-        DEBUGMSG(("recv", "Can not parse type %x", *type));
         DEBUGINDENTLESS();
         return NULL;
     }
@@ -1536,7 +1525,6 @@ agentx_parse_header(netsnmp_pdu *pdu, u_char * data, size_t * length)
     DEBUGINDENTLESS();
     bufp += 4;
 
-    DEBUGINDENTLESS();
     *length -= 20;
     if (*length != payload) {   /* Short payload */
         return NULL;
@@ -1551,6 +1539,7 @@ agentx_parse(netsnmp_session * session, netsnmp_pdu *pdu, u_char * data,
 {
     register u_char *bufp = data;
     u_char          buffer[SNMP_MAX_MSG_SIZE];
+    u_char         *prefix_ptr;
     oid             oid_buffer[MAX_OID_LEN], end_oid_buf[MAX_OID_LEN];
     size_t          buf_len = sizeof(buffer);
     size_t          oid_buf_len = MAX_OID_LEN;
@@ -1561,9 +1550,14 @@ agentx_parse(netsnmp_session * session, netsnmp_pdu *pdu, u_char * data,
     int             type;       /* VarBind data type */
     size_t         *length = &len;
 
-    if (pdu == NULL)
+    if (pdu == NULL) {
+        /*
+         * Dump the packet in a formatted style 
+         */
+        pdu = (netsnmp_pdu *) malloc(sizeof(netsnmp_pdu));
+        free(pdu);
         return (0);
- 
+    }
     if (!IS_AGENTX_VERSION(session->version))
         return SNMPERR_BAD_VERSION;
 
@@ -1612,21 +1606,11 @@ agentx_parse(netsnmp_session * session, netsnmp_pdu *pdu, u_char * data,
         pdu->community_len = buf_len;
         snmp_clone_mem((void **) &pdu->community,
                        (void *) buffer, (unsigned) buf_len);
-		
-		/* The NetSNMP API stuffs the context into the PDU's community string
-		 * field, when using the AgentX Protocol.  The rest of the code however,
-		 * expects to find the context in the PDU's context field.  Therefore we
-		 * need to copy the context into the PDU's context fields.  */
-		if (pdu->community_len > 0 && pdu->contextName == NULL)
-		{
-			pdu->contextName    = strdup((char *) pdu->community);
-			pdu->contextNameLen = pdu->community_len;
-		}
-
         buf_len = sizeof(buffer);
     }
 
     DEBUGDUMPHEADER("recv", "PDU");
+    DEBUGINDENTMORE();
     switch (pdu->command) {
     case AGENTX_MSG_OPEN:
         pdu->time = *bufp;      /* Timeout */
@@ -1639,8 +1623,7 @@ agentx_parse(netsnmp_session * session, netsnmp_pdu *pdu, u_char * data,
         DEBUGDUMPHEADER("recv", "Subagent OID");
         bufp = agentx_parse_oid(bufp, length, NULL,
                                 oid_buffer, &oid_buf_len,
-                                pdu->
-                                flags & AGENTX_FLAGS_NETWORK_BYTE_ORDER);
+                                pdu->flags & AGENTX_FLAGS_NETWORK_BYTE_ORDER);
         DEBUGINDENTLESS();
         if (bufp == NULL) {
             DEBUGINDENTLESS();
@@ -1648,8 +1631,7 @@ agentx_parse(netsnmp_session * session, netsnmp_pdu *pdu, u_char * data,
         }
         DEBUGDUMPHEADER("recv", "Subagent Description");
         bufp = agentx_parse_string(bufp, length, buffer, &buf_len,
-                                   pdu->
-                                   flags &
+                                   pdu->flags &
                                    AGENTX_FLAGS_NETWORK_BYTE_ORDER);
         DEBUGINDENTLESS();
         if (bufp == NULL) {
@@ -1691,6 +1673,7 @@ agentx_parse(netsnmp_session * session, netsnmp_pdu *pdu, u_char * data,
         *length -= 4;
         DEBUGINDENTLESS();
 
+        prefix_ptr = bufp + 1;
         DEBUGDUMPHEADER("recv", "Registration OID");
         bufp = agentx_parse_oid(bufp, length, NULL,
                                 oid_buffer, &oid_buf_len,
@@ -1782,11 +1765,11 @@ agentx_parse(netsnmp_session * session, netsnmp_pdu *pdu, u_char * data,
                                       (u_char *) end_oid_buf,
                                       end_oid_buf_len);
             }
-            oid_buf_len = MAX_OID_LEN;
-            end_oid_buf_len = MAX_OID_LEN;
         }
 
         DEBUGINDENTLESS();
+        oid_buf_len = MAX_OID_LEN;
+        end_oid_buf_len = MAX_OID_LEN;
         break;
 
 
@@ -1892,11 +1875,14 @@ agentx_parse(netsnmp_session * session, netsnmp_pdu *pdu, u_char * data,
 
     default:
         DEBUGINDENTLESS();
+        DEBUGINDENTLESS();
         DEBUGMSGTL(("agentx", "Unrecognised PDU type: %d\n",
                     pdu->command));
         return SNMPERR_UNKNOWN_PDU;
     }
     DEBUGINDENTLESS();
+    DEBUGINDENTLESS();
+    DEBUGINDENTLESS();
     return SNMP_ERR_NOERROR;
 }
 
diff --git a/agent/mibgroup/agentx/protocol.h b/agent/mibgroup/agentx/protocol.h
index e1eebc1..341923e 100644
--- a/agent/mibgroup/agentx/protocol.h
+++ b/agent/mibgroup/agentx/protocol.h
@@ -98,6 +98,8 @@ extern          "C" {
 
 
 
+    int             agentx_build(netsnmp_session *, netsnmp_pdu *,
+                                 u_char *, size_t *);
     int             agentx_realloc_build(netsnmp_session * session,
                                          netsnmp_pdu *pdu, u_char ** buf,
                                          size_t * buf_len,
diff --git a/agent/mibgroup/agentx/subagent.c b/agent/mibgroup/agentx/subagent.c
index b3da321..4ab3abd 100644
--- a/agent/mibgroup/agentx/subagent.c
+++ b/agent/mibgroup/agentx/subagent.c
@@ -2,14 +2,17 @@
  *  AgentX sub-agent
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <sys/types.h>
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -18,6 +21,9 @@
 #  include <time.h>
 # endif
 #endif
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
@@ -40,16 +46,12 @@
 #include "agentx/agentx_config.h"
 #include <net-snmp/agent/agent_callbacks.h>
 #include <net-snmp/agent/agent_trap.h>
-#include <net-snmp/agent/sysORTable.h>
-#include <net-snmp/agent/agent_sysORTable.h>
+#ifdef USING_MIBII_SYSORTABLE_MODULE
+#include "mibII/sysORTable.h"
+#endif
 
 #include "subagent.h"
 
-netsnmp_feature_child_of(agentx_subagent, agentx_all)
-netsnmp_feature_child_of(agentx_enable_subagent, agentx_subagent)
-
-netsnmp_feature_require(remove_trap_session)
-
 #ifdef USING_AGENTX_SUBAGENT_MODULE
 
 static SNMPCallback subagent_register_ping_alarm;
@@ -59,12 +61,10 @@ void            agentx_unregister_callbacks(netsnmp_session * ss);
 int             handle_subagent_response(int op, netsnmp_session * session,
                                          int reqid, netsnmp_pdu *pdu,
                                          void *magic);
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 int             handle_subagent_set_response(int op,
                                              netsnmp_session * session,
                                              int reqid, netsnmp_pdu *pdu,
                                              void *magic);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 void            subagent_startup_callback(unsigned int clientreg,
                                           void *clientarg);
 int             subagent_open_master_session(void);
@@ -111,18 +111,6 @@ subagent_startup(int majorID, int minorID,
     return 0;
 }
 
-static void
-subagent_init_callback_session(void)
-{
-    if (agentx_callback_sess == NULL) {
-        agentx_callback_sess = netsnmp_callback_open(callback_master_num,
-                                                     handle_subagent_response,
-                                                     NULL, NULL);
-        DEBUGMSGTL(("agentx/subagent", "subagent_init sess %p\n",
-                    agentx_callback_sess));
-    }
-}
-
 static int subagent_init_init = 0;
 /**
  * init subagent callback (local) session and connect to master agent
@@ -151,7 +139,13 @@ subagent_init(void)
     /*
      * open (local) callback session
      */
-    subagent_init_callback_session();
+    if (agentx_callback_sess == NULL) {
+        agentx_callback_sess = netsnmp_callback_open(callback_master_num,
+                                                     handle_subagent_response,
+                                                     NULL, NULL);
+        DEBUGMSGTL(("agentx/subagent", "subagent_init sess %08x\n",
+                    agentx_callback_sess));
+    }
     if (NULL == agentx_callback_sess)
         return -1;
 
@@ -164,19 +158,18 @@ subagent_init(void)
     return rc;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_AGENTX_ENABLE_SUBAGENT
 void
 netsnmp_enable_subagent(void) {
     netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE,
                            SUB_AGENT);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_AGENTX_ENABLE_SUBAGENT */
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 struct agent_netsnmp_set_info *
 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));
@@ -189,7 +182,8 @@ save_set_vars(netsnmp_session * ss, netsnmp_pdu *pdu)
     ptr->transID = pdu->transid;
     ptr->sess = ss;
     ptr->mode = SNMP_MSG_INTERNAL_SET_RESERVE1;
-    ptr->uptime = netsnmp_get_agent_uptime();
+    gettimeofday(&now, NULL);
+    ptr->uptime = calculate_time_diff(&now, &starttime);
 
     ptr->var_list = snmp_clone_varbind(pdu->variables);
     if (ptr->var_list == NULL) {
@@ -241,25 +235,6 @@ free_set_vars(netsnmp_session * ss, netsnmp_pdu *pdu)
         prev = ptr;
     }
 }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
-static void
-send_agentx_error(netsnmp_session *session, netsnmp_pdu *pdu, int errstat, int errindex)
-{
-    pdu = snmp_clone_pdu(pdu);
-    pdu->command   = AGENTX_MSG_RESPONSE;
-    pdu->version   = session->version;
-    pdu->errstat   = errstat;
-    pdu->errindex  = errindex;
-    snmp_free_varbind(pdu->variables);
-    pdu->variables = NULL;
-
-    DEBUGMSGTL(("agentx/subagent", "Sending AgentX response error stat %d idx %d\n",
-             errstat, errindex));
-    if (!snmp_send(session, pdu)) {
-        snmp_free_pdu(pdu);
-    }
-}
 
 int
 handle_agentx_packet(int operation, netsnmp_session * session, int reqid,
@@ -316,10 +291,8 @@ handle_agentx_packet(int operation, netsnmp_session * session, int reqid,
              * agentx_reopen_session unregisters itself if it succeeds in talking 
              * to the master agent.  
              */
-            snmp_alarm_register(period, SA_REPEAT, agentx_reopen_session, NULL);
-            snmp_log(LOG_INFO, "AgentX master disconnected us, reconnecting in %d\n", period);
-        } else {
-            snmp_log(LOG_INFO, "AgentX master disconnected us, not reconnecting\n");
+            snmp_alarm_register(period, SA_REPEAT, agentx_reopen_session,
+                                NULL);
         }
         return 0;
     } else if (operation != NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE) {
@@ -332,17 +305,11 @@ handle_agentx_packet(int operation, netsnmp_session * session, int reqid,
      * ok, we have a pdu from the net. Modify as needed 
      */
 
-    DEBUGMSGTL(("agentx/subagent", "handling AgentX request (req=0x%x,trans="
-                "0x%x,sess=0x%x)\n", (unsigned)pdu->reqid,
-		(unsigned)pdu->transid, (unsigned)pdu->sessid));
+    DEBUGMSGTL(("agentx/subagent", "handling agentx request (req=0x%x,trans="
+                "0x%x,sess=0x%x)\n", pdu->reqid,pdu->transid, pdu->sessid));
     pdu->version = AGENTX_VERSION_1;
     pdu->flags |= UCD_MSG_FLAG_ALWAYS_IN_VIEW;
 
-    /* Master agent is alive, no need to ping */
-    if (session->securityModel != SNMP_DEFAULT_SECMODEL) {
-        snmp_alarm_reset(session->securityModel);
-    }
-
     if (pdu->command == AGENTX_MSG_GET
         || pdu->command == AGENTX_MSG_GETNEXT
         || pdu->command == AGENTX_MSG_GETBULK) {
@@ -350,7 +317,6 @@ handle_agentx_packet(int operation, netsnmp_session * session, int reqid,
             (ns_subagent_magic *) calloc(1, sizeof(ns_subagent_magic));
         if (smagic == NULL) {
             DEBUGMSGTL(("agentx/subagent", "couldn't malloc() smagic\n"));
-            /* would like to send_agentx_error(), but it needs memory too */
             return 1;
         }
         smagic->original_command = pdu->command;
@@ -405,7 +371,6 @@ handle_agentx_packet(int operation, netsnmp_session * session, int reqid,
         DEBUGMSGTL(("agentx/subagent", "  -> response\n"));
         return 1;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case AGENTX_MSG_TESTSET:
         /*
          * XXXWWW we have to map this twice to both RESERVE1 and RESERVE2 
@@ -415,7 +380,6 @@ handle_agentx_packet(int operation, netsnmp_session * session, int reqid,
         if (asi == NULL) {
             SNMP_FREE(smagic);
             snmp_log(LOG_WARNING, "save_set_vars() failed\n");
-            send_agentx_error(session, pdu, AGENTX_ERR_PARSE_FAILED, 0);
             return 1;
         }
         asi->mode = pdu->command = SNMP_MSG_INTERNAL_SET_RESERVE1;
@@ -429,7 +393,6 @@ handle_agentx_packet(int operation, netsnmp_session * session, int reqid,
         if (asi == NULL) {
             SNMP_FREE(smagic);
             snmp_log(LOG_WARNING, "restore_set_vars() failed\n");
-            send_agentx_error(session, pdu, AGENTX_ERR_PROCESSING_ERROR, 0);
             return 1;
         }
         if (asi->mode != SNMP_MSG_INTERNAL_SET_RESERVE2) {
@@ -437,7 +400,6 @@ handle_agentx_packet(int operation, netsnmp_session * session, int reqid,
             snmp_log(LOG_WARNING,
                      "dropping bad AgentX request (wrong mode %d)\n",
                      asi->mode);
-            send_agentx_error(session, pdu, AGENTX_ERR_PROCESSING_ERROR, 0);
             return 1;
         }
         asi->mode = pdu->command = SNMP_MSG_INTERNAL_SET_ACTION;
@@ -451,7 +413,6 @@ handle_agentx_packet(int operation, netsnmp_session * session, int reqid,
         if (asi == NULL) {
             SNMP_FREE(smagic);
             snmp_log(LOG_WARNING, "restore_set_vars() failed\n");
-            send_agentx_error(session, pdu, AGENTX_ERR_PROCESSING_ERROR, 0);
             return 1;
         }
         if (asi->mode == SNMP_MSG_INTERNAL_SET_RESERVE1 ||
@@ -476,14 +437,12 @@ handle_agentx_packet(int operation, netsnmp_session * session, int reqid,
         if (asi == NULL) {
             SNMP_FREE(smagic);
             snmp_log(LOG_WARNING, "restore_set_vars() failed\n");
-            send_agentx_error(session, pdu, AGENTX_ERR_PROCESSING_ERROR, 0);
             return 1;
         }
         asi->mode = pdu->command = SNMP_MSG_INTERNAL_SET_UNDO;
         mycallback = handle_subagent_set_response;
         retmagic = asi;
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
 
     default:
         SNMP_FREE(smagic);
@@ -503,38 +462,18 @@ handle_agentx_packet(int operation, netsnmp_session * session, int reqid,
      */
 
     internal_pdu = snmp_clone_pdu(pdu);
-    internal_pdu->contextName = (char *) internal_pdu->community;
+    internal_pdu->contextName = internal_pdu->community;
     internal_pdu->contextNameLen = internal_pdu->community_len;
     internal_pdu->community = NULL;
     internal_pdu->community_len = 0;
     result = snmp_async_send(agentx_callback_sess, internal_pdu, mycallback,
                     retmagic);
     if (result == 0) {
-        snmp_free_pdu( internal_pdu );
+        snmp_free_pdu(internal_pdu);
     }
     return 1;
 }
 
-static int
-_invalid_op_and_magic(int op, ns_subagent_magic *smagic)
-{
-    int invalid = 0;
-
-    if (smagic && (snmp_sess_pointer(smagic->session) == NULL ||
-        op == NETSNMP_CALLBACK_OP_TIMED_OUT)) {
-        if (smagic->ovars != NULL) {
-            snmp_free_varbind(smagic->ovars);
-        }
-        free(smagic);
-        invalid = 1;
-    }
-
-    if (op != NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE || smagic == NULL)
-        invalid = 1;
-
-    return invalid;
-}
-
 int
 handle_subagent_response(int op, netsnmp_session * session, int reqid,
                          netsnmp_pdu *pdu, void *magic)
@@ -543,25 +482,20 @@ handle_subagent_response(int op, netsnmp_session * session, int reqid,
     netsnmp_variable_list *u = NULL, *v = NULL;
     int             rc = 0;
 
-    if (_invalid_op_and_magic(op, magic)) {
+    if (op != NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE || magic == NULL) {
         return 1;
     }
 
     pdu = snmp_clone_pdu(pdu);
     DEBUGMSGTL(("agentx/subagent",
-                "handling AgentX response (cmd 0x%02x orig_cmd 0x%02x)"
-                " (req=0x%x,trans=0x%x,sess=0x%x)\n",
-                pdu->command, smagic->original_command,
-                (unsigned)pdu->reqid, (unsigned)pdu->transid,
-                (unsigned)pdu->sessid));
+                "handling AgentX response (cmd 0x%02x orig_cmd 0x%02x)\n",
+                pdu->command, smagic->original_command));
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     if (pdu->command == SNMP_MSG_INTERNAL_SET_FREE ||
         pdu->command == SNMP_MSG_INTERNAL_SET_UNDO ||
         pdu->command == SNMP_MSG_INTERNAL_SET_COMMIT) {
         free_set_vars(smagic->session, pdu);
     }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     if (smagic->original_command == AGENTX_MSG_GETNEXT) {
         DEBUGMSGTL(("agentx/subagent",
@@ -593,7 +527,7 @@ handle_subagent_response(int op, netsnmp_session * session, int reqid,
                      * set to `endOfMibView'".  
                      */
                     snmp_set_var_objid(v, u->name, u->name_length);
-                    snmp_set_var_typed_value(v, SNMP_ENDOFMIBVIEW, NULL, 0);
+                    snmp_set_var_typed_value(v, SNMP_ENDOFMIBVIEW, 0, 0);
                     DEBUGMSGTL(("agentx/subagent",
                                 "scope violation -- return endOfMibView\n"));
                 }
@@ -623,14 +557,13 @@ handle_subagent_response(int op, netsnmp_session * session, int reqid,
     return 1;
 }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 int
 handle_subagent_set_response(int op, netsnmp_session * session, int reqid,
                              netsnmp_pdu *pdu, void *magic)
 {
     netsnmp_session *retsess;
     struct agent_netsnmp_set_info *asi;
-    int result;
+    int    result;
 
     if (op != NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE || magic == NULL) {
         return 1;
@@ -639,8 +572,7 @@ handle_subagent_set_response(int op, netsnmp_session * session, int reqid,
     DEBUGMSGTL(("agentx/subagent",
                 "handling agentx subagent set response (mode=%d,req=0x%x,"
                 "trans=0x%x,sess=0x%x)\n",
-                (unsigned)pdu->command, (unsigned)pdu->reqid,
-		(unsigned)pdu->transid, (unsigned)pdu->sessid));
+                pdu->command, pdu->reqid,pdu->transid, pdu->sessid));
     pdu = snmp_clone_pdu(pdu);
 
     asi = (struct agent_netsnmp_set_info *) magic;
@@ -659,7 +591,7 @@ handle_subagent_set_response(int op, netsnmp_session * session, int reqid,
             result = snmp_async_send(agentx_callback_sess, pdu,
                             handle_subagent_set_response, asi);
             if (result == 0) {
-                snmp_free_pdu( pdu );
+                snmp_free_pdu(pdu);
             }
             DEBUGMSGTL(("agentx/subagent",
                         "  going from RESERVE1 -> RESERVE2\n"));
@@ -685,7 +617,7 @@ handle_subagent_set_response(int op, netsnmp_session * session, int reqid,
     DEBUGMSGTL(("agentx/subagent", "  FINISHED\n"));
     return 1;
 }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+
 
 
 int
@@ -694,7 +626,7 @@ agentx_registration_callback(int majorID, int minorID, void *serverarg,
 {
     struct register_parameters *reg_parms =
         (struct register_parameters *) serverarg;
-    netsnmp_session *agentx_ss = *(netsnmp_session **)clientarg;
+    netsnmp_session *agentx_ss = (netsnmp_session *) clientarg;
 
     if (minorID == SNMPD_CALLBACK_REGISTER_OID)
         return agentx_register(agentx_ss,
@@ -714,13 +646,14 @@ agentx_registration_callback(int majorID, int minorID, void *serverarg,
 }
 
 
-static int
+#ifdef USING_MIBII_SYSORTABLE_MODULE
+int
 agentx_sysOR_callback(int majorID, int minorID, void *serverarg,
                       void *clientarg)
 {
-    const struct register_sysOR_parameters *reg_parms =
-        (const struct register_sysOR_parameters *) serverarg;
-    netsnmp_session *agentx_ss = *(netsnmp_session **)clientarg;
+    struct register_sysOR_parameters *reg_parms =
+        (struct register_sysOR_parameters *) serverarg;
+    netsnmp_session *agentx_ss = (netsnmp_session *) clientarg;
 
     if (minorID == SNMPD_CALLBACK_REG_SYSOR)
         return agentx_add_agentcaps(agentx_ss,
@@ -731,12 +664,13 @@ agentx_sysOR_callback(int majorID, int minorID, void *serverarg,
                                        reg_parms->name,
                                        reg_parms->namelen);
 }
+#endif
 
 
 static int
 subagent_shutdown(int majorID, int minorID, void *serverarg, void *clientarg)
 {
-    netsnmp_session *thesession = *(netsnmp_session **)clientarg;
+    netsnmp_session *thesession = (netsnmp_session *)clientarg;
     DEBUGMSGTL(("agentx/subagent", "shutting down session....\n"));
     if (thesession == NULL) {
 	DEBUGMSGTL(("agentx/subagent", "Empty session to shutdown\n"));
@@ -764,29 +698,24 @@ subagent_shutdown(int majorID, int minorID, void *serverarg, void *clientarg)
 void
 agentx_register_callbacks(netsnmp_session * s)
 {
-    netsnmp_session *sess_p;
-
     DEBUGMSGTL(("agentx/subagent",
                 "registering callbacks for session %p\n", s));
-    memdup((u_char **)&sess_p, &s, sizeof(s));
-    netsnmp_assert(sess_p);
-    s->myvoid = sess_p;
-    if (!sess_p)
-        return;
     snmp_register_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_SHUTDOWN,
-                           subagent_shutdown, sess_p);
+                           subagent_shutdown, s);
     snmp_register_callback(SNMP_CALLBACK_APPLICATION,
                            SNMPD_CALLBACK_REGISTER_OID,
-                           agentx_registration_callback, sess_p);
+                           agentx_registration_callback, s);
     snmp_register_callback(SNMP_CALLBACK_APPLICATION,
                            SNMPD_CALLBACK_UNREGISTER_OID,
-                           agentx_registration_callback, sess_p);
+                           agentx_registration_callback, s);
+#ifdef USING_MIBII_SYSORTABLE_MODULE
     snmp_register_callback(SNMP_CALLBACK_APPLICATION,
                            SNMPD_CALLBACK_REG_SYSOR,
-                           agentx_sysOR_callback, sess_p);
+                           agentx_sysOR_callback, s);
     snmp_register_callback(SNMP_CALLBACK_APPLICATION,
                            SNMPD_CALLBACK_UNREG_SYSOR,
-                           agentx_sysOR_callback, sess_p);
+                           agentx_sysOR_callback, s);
+#endif
 }
 
 /*
@@ -799,20 +728,22 @@ agentx_unregister_callbacks(netsnmp_session * ss)
     DEBUGMSGTL(("agentx/subagent",
                 "unregistering callbacks for session %p\n", ss));
     snmp_unregister_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_SHUTDOWN,
-                             subagent_shutdown, ss->myvoid, 1);
+                             subagent_shutdown, ss, 1);
     snmp_unregister_callback(SNMP_CALLBACK_APPLICATION,
                              SNMPD_CALLBACK_REGISTER_OID,
-                             agentx_registration_callback, ss->myvoid, 1);
+                             agentx_registration_callback, ss, 1);
     snmp_unregister_callback(SNMP_CALLBACK_APPLICATION,
                              SNMPD_CALLBACK_UNREGISTER_OID,
-                             agentx_registration_callback, ss->myvoid, 1);
+                             agentx_registration_callback, ss, 1);
+#ifdef USING_MIBII_SYSORTABLE_MODULE
     snmp_unregister_callback(SNMP_CALLBACK_APPLICATION,
                              SNMPD_CALLBACK_REG_SYSOR,
-                             agentx_sysOR_callback, ss->myvoid, 1);
+                             agentx_sysOR_callback, ss, 1);
     snmp_unregister_callback(SNMP_CALLBACK_APPLICATION,
                              SNMPD_CALLBACK_UNREG_SYSOR,
-                             agentx_sysOR_callback, ss->myvoid, 1);
-    SNMP_FREE(ss->myvoid);
+                             agentx_sysOR_callback, ss, 1);
+#endif
+
 }
 
 /*
@@ -823,7 +754,6 @@ subagent_open_master_session(void)
 {
     netsnmp_transport *t;
     netsnmp_session sess;
-    const char *agentx_socket;
 
     DEBUGMSGTL(("agentx/subagent", "opening session...\n"));
 
@@ -841,9 +771,9 @@ subagent_open_master_session(void)
     sess.callback = handle_agentx_packet;
     sess.authenticator = NULL;
 
-    agentx_socket = netsnmp_ds_get_string(NETSNMP_DS_APPLICATION_ID,
-                                          NETSNMP_DS_AGENT_X_SOCKET);
-    t = netsnmp_transport_open_client("agentx", agentx_socket);
+    t = netsnmp_transport_open_client(
+            "agentx", netsnmp_ds_get_string(NETSNMP_DS_APPLICATION_ID,
+                                            NETSNMP_DS_AGENT_X_SOCKET));
     if (t == NULL) {
         /*
          * Diagnose snmp_open errors with the input
@@ -852,9 +782,12 @@ subagent_open_master_session(void)
         if (!netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
                                     NETSNMP_DS_AGENT_NO_CONNECTION_WARNINGS)) {
             char buf[1024];
+            const char *socket =
+                netsnmp_ds_get_string(NETSNMP_DS_APPLICATION_ID,
+                                      NETSNMP_DS_AGENT_X_SOCKET);
             snprintf(buf, sizeof(buf), "Warning: "
                      "Failed to connect to the agentx master agent (%s)",
-                     agentx_socket ? agentx_socket : "[NIL]");
+                     socket ? socket : "[NIL]");
             if (!netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
                                         NETSNMP_DS_AGENT_NO_ROOT_ACCESS)) {
                 netsnmp_sess_log_error(LOG_WARNING, buf, &sess);
@@ -875,7 +808,8 @@ subagent_open_master_session(void)
             char buf[1024];
             snprintf(buf, sizeof(buf), "Error: "
                      "Failed to create the agentx master agent session (%s)",
-                     agentx_socket);
+                     netsnmp_ds_get_string(NETSNMP_DS_APPLICATION_ID,
+                                           NETSNMP_DS_AGENT_X_SOCKET));
             snmp_sess_perror(buf, &sess);
         }
         netsnmp_transport_free(t);
@@ -926,14 +860,6 @@ subagent_open_master_session(void)
     return 0;
 }
 
-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);
-}
 
 /*
  * Alarm callback function to open a session to the master agent.  If a
@@ -962,20 +888,15 @@ agentx_reopen_session(unsigned int clientreg, void *clientarg)
         register_mib_reattach();
 
         /*
-         * Reregister all our sysOREntries
-         */
-        netsnmp_sysORTable_foreach(&agentx_reopen_sysORTable, main_session);
-
-        /*
          * Register a ping alarm (if need be).  
          */
-        subagent_register_ping_alarm(0, 0, NULL, main_session);
+        subagent_register_ping_alarm(0, 0, 0, main_session);
     } else {
         if (clientreg == 0) {
             /*
              * Register a reattach alarm for later 
              */
-            subagent_register_ping_alarm(0, 0, NULL, main_session);
+            subagent_register_ping_alarm(0, 0, 0, main_session);
         }
     }
 }
@@ -1061,24 +982,9 @@ agentx_check_session(unsigned int clientreg, void *clientarg)
         register_mib_detach();
         if (main_session != NULL) {
             remove_trap_session(ss);
-            snmp_close(main_session);
-            /*
-             * We need to remove the callbacks attached to the callback
-             * session because they have a magic callback data structure
-             * which includes a pointer to the main session
-             *    (which is no longer valid).
-             * 
-             * Given that the main session is not responsive anyway.
-             * it shoudn't matter if we lose some outstanding requests.
-             */
-            if (agentx_callback_sess != NULL ) {
-                snmp_close(agentx_callback_sess);
-                agentx_callback_sess = NULL;
-    
-                subagent_init_callback_session();
-            }
-            main_session = NULL;
-            agentx_reopen_session(0, NULL);
+        snmp_close(main_session);
+        main_session = NULL;
+        agentx_reopen_session(0, NULL);
         }
         else {
             snmp_close(main_session);
diff --git a/agent/mibgroup/default_modules.h b/agent/mibgroup/default_modules.h
index fc5f26a..6a77f70 100644
--- a/agent/mibgroup/default_modules.h
+++ b/agent/mibgroup/default_modules.h
@@ -5,13 +5,6 @@
 /* these go into both the mini agent and the full agent */
 config_require(snmpv3mibs)
 
-/* very few default mibs */
-config_add_mib(SNMPv2-MIB)
-config_add_mib(IF-MIB)
-config_add_mib(IP-MIB)
-config_add_mib(TCP-MIB)
-config_add_mib(UDP-MIB)
-
 #ifdef NETSNMP_MINI_AGENT
 
 /* limit the mibII modules to the bare minimum */
@@ -20,6 +13,11 @@ config_require(mibII/system_mib)
 config_require(mibII/sysORTable)
 config_require(mibII/vacm_vars)
 config_require(mibII/vacm_conf)
+config_require(utilities/execute)
+
+/* very few default mibs */
+config_add_mib(SNMPv2-MIB)
+config_add_mib(RFC1213-MIB)
 
 #else /* !NETSNMP_MINI_AGENT == the full shabang */
 
@@ -31,21 +29,23 @@ config_require(target)
 config_require(agent_mibs)
 config_require(agentx)
 config_require(disman/event)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 config_require(disman/schedule)
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 config_require(utilities)
 
 /* default MIBs to auto-include for parsing */
 /* NOTE: we consider these MIBs users will likely want to load by
    default, even if they're not supporting it in the agent (ie, the
    command line tools need to load them anyway) */
+config_add_mib(IP-MIB)
+config_add_mib(IF-MIB)
+config_add_mib(TCP-MIB)
+config_add_mib(UDP-MIB)
 config_add_mib(HOST-RESOURCES-MIB)
+config_add_mib(SNMPv2-MIB)
+config_add_mib(RFC1213-MIB)
 config_add_mib(NOTIFICATION-LOG-MIB)
 config_add_mib(DISMAN-EVENT-MIB)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 config_add_mib(DISMAN-SCHEDULE-MIB)
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
 /* architecture specific extra modules */
 /* these symbols are set in the host specific net-snmp/system/<os>.h files */
diff --git a/agent/mibgroup/deliver/deliverByNotify.c b/agent/mibgroup/deliver/deliverByNotify.c
deleted file mode 100644
index c89879a..0000000
--- a/agent/mibgroup/deliver/deliverByNotify.c
+++ /dev/null
@@ -1,475 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include <limits.h>
-
-netsnmp_feature_require(container_fifo)
-
-#include "deliverByNotify.h"
-
-/* we should never split beyond this */
-#define MAX_MESSAGE_COUNT 128
-#define BASE_PACKET_SIZE 100 /* should be enough to store SNMPv3 msg headers */
-
-/* if v is !NULL, then estimate it's likely size */
-#define ESTIMATE_VAR_SIZE(v) (v?(v->name_length + v->val_len + 8):0)
-
-void parse_deliver_config(const char *, char *);
-void parse_deliver_maxsize_config(const char *, char *);
-void parse_data_notification_oid_config(const char *, char *);
-void parse_periodic_time_oid_config(const char *, char *);
-void parse_message_number_oid_config(const char *, char *);
-void parse_max_message_number_oid_config(const char *, char *);
-void free_deliver_config(void);
-
-static void _schedule_next_execute_time(void);
-
-oid    data_notification_oid[MAX_OID_LEN]
-       = { 1, 3, 6, 1, 4, 1, 8072, 3, 1, 5, 4, 0, 1 };
-size_t data_notification_oid_len = 13;
-
-oid    netsnmp_periodic_time_oid[MAX_OID_LEN]
-       = { 1, 3, 6, 1, 4, 1, 8072, 3, 1, 5, 3, 1, 0 };
-size_t netsnmp_periodic_time_oid_len = 13;
-
-oid    netsnmp_message_number_oid[MAX_OID_LEN]
-       = { 1, 3, 6, 1, 4, 1, 8072, 3, 1, 5, 3, 2, 0 };
-size_t netsnmp_message_number_oid_len = 13;
-
-oid    netsnmp_max_message_number_oid[MAX_OID_LEN]
-       = { 1, 3, 6, 1, 4, 1, 8072, 3, 1, 5, 3, 3, 0 };
-size_t netsnmp_max_message_number_oid_len = 13;
-
-oid objid_snmptrap[] = { 1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0 };
-
-#define DEFAULT_MAX_DELIVER_SIZE -1;
-static int default_max_size;
-unsigned int alarm_reg;
-static netsnmp_container *deliver_container;
-
-static int
-_deliver_compare(deliver_by_notify *lhs, deliver_by_notify *rhs) {
-    /* sort by the next_run time */
-    if (lhs->next_run < rhs->next_run)
-        return -1;
-    else
-        return 1;
-}
-
-/** Initializes the mteTrigger module */
-void
-init_deliverByNotify(void)
-{
-    /* register the config tokens */
-    snmpd_register_config_handler("deliverByNotify",
-                                  &parse_deliver_config, &free_deliver_config,
-                                  "[-p] [-m] [-s maxsize] FREQUENCY OID");
-
-    snmpd_register_config_handler("deliverByNotifyMaxPacketSize",
-                                  &parse_deliver_maxsize_config, NULL,
-                                  "sizeInBytes");
-
-    snmpd_register_config_handler("deliverByNotifyOid",
-                                  &parse_data_notification_oid_config,
-                                  NULL, /* XXX: reset to default */
-                                  "OID");
-
-    snmpd_register_config_handler("deliverByNotifyFrequencyOid",
-                                  &parse_periodic_time_oid_config,
-                                  NULL, /* XXX: reset to default */
-                                  "OID");
-
-    snmpd_register_config_handler("deliverByNotifyMessageNumberOid",
-                                  &parse_message_number_oid_config,
-                                  NULL, /* XXX: reset to default */
-                                  "OID");
-
-    snmpd_register_config_handler("deliverByNotifyMaxMessageNumberOid",
-                                  &parse_max_message_number_oid_config,
-                                  NULL, /* XXX: reset to default */
-                                  "OID");
-
-    /* create the container to store the config objects*/
-    deliver_container = netsnmp_container_find("deliverByNotify:fifo");
-    if (NULL == deliver_container) {
-        snmp_log(LOG_ERR,
-                 "deliverByNotify: failed to initialize our data container\n");
-        return;
-    }
-    deliver_container->container_name = strdup("deliverByNotify");
-    deliver_container->compare = (netsnmp_container_compare *) _deliver_compare;
-
-    /* set the defaults */
-    default_max_size = DEFAULT_MAX_DELIVER_SIZE;
-
-    alarm_reg = 0;
-}
-
-void
-_parse_config_oid(const char *token, char *line,
-                  oid *oid_store, size_t *oid_store_len) {
-    size_t tmp_len = MAX_OID_LEN;
-    /* parse the OID given */
-
-    if (!snmp_parse_oid(line, oid_store, &tmp_len)) {
-        char buf[SPRINT_MAX_LEN];
-        snprintf(buf, SPRINT_MAX_LEN-1, "unknown %s OID: %s", token, line);
-        config_perror(buf);
-        return;
-    }
-
-    *oid_store_len = tmp_len;
-}
-
-void
-parse_data_notification_oid_config(const char *token, char *line) {
-    _parse_config_oid(token, line,
-                      data_notification_oid, &data_notification_oid_len);
-}
-
-void
-parse_periodic_time_oid_config(const char *token, char *line) {
-    _parse_config_oid(token, line,
-                      netsnmp_periodic_time_oid, &netsnmp_periodic_time_oid_len);
-}
-
-void
-parse_message_number_oid_config(const char *token, char *line) {
-    _parse_config_oid(token, line,
-                      netsnmp_message_number_oid,
-                      &netsnmp_message_number_oid_len);
-}
-
-void
-parse_max_message_number_oid_config(const char *token, char *line) {
-    _parse_config_oid(token, line,
-                      netsnmp_max_message_number_oid,
-                      &netsnmp_max_message_number_oid_len);
-}
-
-void
-parse_deliver_config(const char *token, char *line) {
-    const char *cp = line;
-    char buf[SPRINT_MAX_LEN];
-    size_t buf_len = SPRINT_MAX_LEN;
-    int max_size = DEFAULT_MAX_DELIVER_SIZE;
-    int frequency;
-    oid target_oid[MAX_OID_LEN];
-    size_t target_oid_len = MAX_OID_LEN;
-    deliver_by_notify *new_notify = NULL;
-    int flags = 0;
-
-    while(cp && *cp == '-') {
-        switch (*(cp+1)) {
-        case 's':
-            cp = skip_token_const(cp);
-            if (!cp) {
-                config_perror("no argument given to -s");
-                return;
-            }
-            max_size = atoi(cp);
-            break;
-
-        case 'p':
-            flags = flags | NETSNMP_DELIVER_NO_PERIOD_OID;
-            break;
-
-        case 'm':
-            flags = flags | NETSNMP_DELIVER_NO_MSG_COUNTS;
-            break;
-
-        default:
-            config_perror("unknown flag");
-            return;
-        }
-        cp = skip_token_const(cp);
-    }
-
-    if (!cp) {
-        config_perror("no frequency given");
-        return;
-    }
-    copy_nword(cp, buf, buf_len);
-    frequency = netsnmp_string_time_to_secs(buf);
-    cp = skip_token_const(cp);
-
-    if (frequency <= 0) {
-        config_perror("illegal frequency given");
-        return;
-    }
-
-    if (!cp) {
-        config_perror("no OID given");
-        return;
-    }
-
-    /* parse the OID given */
-    if (!snmp_parse_oid(cp, target_oid, &target_oid_len)) {
-        config_perror("unknown deliverByNotify OID");
-        DEBUGMSGTL(("deliverByNotify", "The OID with the problem: %s\n", cp));
-        return;
-    }
-
-    /* set up the object to store all the data */
-    new_notify = SNMP_MALLOC_TYPEDEF(deliver_by_notify);
-    new_notify->frequency = frequency;
-    new_notify->max_packet_size = max_size;
-    new_notify->last_run = time(NULL);
-    new_notify->next_run = new_notify->last_run + frequency;
-    new_notify->flags = flags;
-
-    new_notify->target = malloc(target_oid_len * sizeof(oid));
-    new_notify->target_len = target_oid_len;
-    memcpy(new_notify->target, target_oid, target_oid_len*sizeof(oid));
-
-    /* XXX: need to do the whole container */
-    snmp_alarm_register(calculate_time_until_next_run(new_notify, NULL), 0, 
-                        &deliver_execute, NULL);
-
-    /* add it to the container */
-    CONTAINER_INSERT(deliver_container, new_notify);
-    _schedule_next_execute_time();
-}
-
-void
-parse_deliver_maxsize_config(const char *token, char *line) {
-    default_max_size = atoi(line);
-}
-
-static void
-_free_deliver_obj(deliver_by_notify *obj, void *context) {
-    netsnmp_assert_or_return(obj != NULL, );
-    SNMP_FREE(obj->target);
-    SNMP_FREE(obj);
-}
-
-void
-free_deliver_config(void) {
-    default_max_size = DEFAULT_MAX_DELIVER_SIZE;
-    CONTAINER_CLEAR(deliver_container,
-                    (netsnmp_container_obj_func *) _free_deliver_obj, NULL);
-    if (alarm_reg) {
-        snmp_alarm_unregister(alarm_reg);
-        alarm_reg = 0;
-    }
-}
-
-void
-deliver_execute(unsigned int clientreg, void *clientarg) {
-    netsnmp_variable_list *vars, *walker, *deliver_notification, *vartmp;
-    netsnmp_variable_list *ready_for_delivery[MAX_MESSAGE_COUNT];
-    netsnmp_session *sess;
-    int rc, i;
-    deliver_by_notify *obj;
-    netsnmp_iterator *iterator;
-    time_t            now = time(NULL);
-    u_long            message_count, max_message_count, tmp_long;
-    u_long           *max_message_count_ptrs[MAX_MESSAGE_COUNT];
-    size_t            estimated_pkt_size;
-
-    DEBUGMSGTL(("deliverByNotify", "Starting the execute routine\n"));
-
-    /* XXX: need to do the whole container */
-    iterator = CONTAINER_ITERATOR(deliver_container);
-    netsnmp_assert_or_return(iterator != NULL,);
-
-    sess = netsnmp_query_get_default_session();
-
-    for(obj = ITERATOR_FIRST(iterator); obj;
-        obj = ITERATOR_NEXT(iterator)) {
-
-        /* check if we need to run this one yet */
-        if (obj->next_run > now)
-            continue;
-
-        max_message_count = 1;
-        message_count = 0;
-
-        /* fill the varbind list with the target object */
-        vars = SNMP_MALLOC_TYPEDEF( netsnmp_variable_list );
-        snmp_set_var_objid( vars, obj->target, obj->target_len );
-        vars->type = ASN_NULL;
-
-        /* walk the OID tree for the data */
-        rc = netsnmp_query_walk(vars, sess);
-        if (rc != SNMP_ERR_NOERROR) {
-            /* XXX: disable? and reset the next query time point! */
-            snmp_log(LOG_ERR, "deliverByNotify: failed to issue the query");
-            ITERATOR_RELEASE(iterator);
-            return;
-        }
-
-        walker = vars;
-
-        while (walker) {
-
-            /* Set up the notification itself */
-            deliver_notification = NULL;
-            estimated_pkt_size = BASE_PACKET_SIZE;
-
-            /* add in the notification type */
-            snmp_varlist_add_variable(&deliver_notification,
-                                      objid_snmptrap, OID_LENGTH(objid_snmptrap),
-                                      ASN_OBJECT_ID,
-                                      data_notification_oid,
-                                      data_notification_oid_len * sizeof(oid));
-            estimated_pkt_size += ESTIMATE_VAR_SIZE(deliver_notification);
-
-            /* add in the current message number in this sequence */
-            if (!(obj->flags & NETSNMP_DELIVER_NO_PERIOD_OID)) {
-                tmp_long = obj->frequency;
-                snmp_varlist_add_variable(&deliver_notification,
-                                          netsnmp_periodic_time_oid,
-                                          netsnmp_periodic_time_oid_len,
-                                          ASN_UNSIGNED,
-                                          (const void *) &tmp_long,
-                                          sizeof(tmp_long));
-                estimated_pkt_size += ESTIMATE_VAR_SIZE(deliver_notification);
-            }
-
-            /* add in the current message number in this sequence */
-            message_count++;
-            if (message_count > MAX_MESSAGE_COUNT) {
-                snmp_log(LOG_ERR, "delivery construct grew too large...  giving up\n");
-                /* XXX: disable it */
-                /* XXX: send a notification about it? */
-                ITERATOR_RELEASE(iterator);
-                return;
-            }
-
-            /* store this for later updating and sending */
-            ready_for_delivery[message_count-1] = deliver_notification;
-
-            if (!(obj->flags & NETSNMP_DELIVER_NO_MSG_COUNTS)) {
-                snmp_varlist_add_variable(&deliver_notification,
-                                          netsnmp_message_number_oid,
-                                          netsnmp_message_number_oid_len,
-                                          ASN_UNSIGNED,
-                                          (const void *) &message_count,
-                                          sizeof(message_count));
-                estimated_pkt_size += ESTIMATE_VAR_SIZE(deliver_notification);
-
-                /* add in the max message number count for this sequence */
-                vartmp = snmp_varlist_add_variable(&deliver_notification,
-                                                   netsnmp_max_message_number_oid,
-                                                   netsnmp_max_message_number_oid_len,
-                                                   ASN_UNSIGNED,
-                                                   (const void *) &max_message_count,
-                                                   sizeof(max_message_count));
-                estimated_pkt_size += ESTIMATE_VAR_SIZE(deliver_notification);
-
-                /* we'll need to update this counter later */
-                max_message_count_ptrs[message_count-1] =
-                    (u_long *) vartmp->val.integer;
-            } else {
-                /* just to be sure */
-                max_message_count_ptrs[message_count-1] = NULL;
-            }
-            
-            /* copy in the collected data */
-            while(walker) {
-                snmp_varlist_add_variable(&deliver_notification,
-                                          walker->name, walker->name_length,
-                                          walker->type,
-                                          walker->val.string, walker->val_len);
-
-                /* 8 byte padding for ASN encodings an a few extra OID bytes */
-                estimated_pkt_size += ESTIMATE_VAR_SIZE(walker);
-
-                walker = walker->next_variable;
-
-                /* if the current size PLUS the next one (which is now
-                   in 'walker') is greater than the limet then we stop here */
-                if (obj->max_packet_size > 0 &&
-                    estimated_pkt_size +
-                    ESTIMATE_VAR_SIZE(walker) >=
-                    obj->max_packet_size) {
-                    break;
-                }
-            }
-
-            /* send out the notification */
-            send_v2trap(deliver_notification);
-        }
-
-        for(i = 0; i < message_count; i++) {
-            /* update the max count pointer */
-            if (max_message_count_ptrs[i])
-                *(max_message_count_ptrs[i]) = message_count;
-            
-            send_v2trap(ready_for_delivery[i]);
-            snmp_free_varbind(ready_for_delivery[i]);
-        }
-
-        snmp_free_varbind(vars);
-
-        /* record this as the time processed */
-        /* XXX: this may creep by a few seconds when processing and maybe we want
-           to do the time stamp at the beginning? */
-        obj->last_run = time(NULL);
-    }
-    ITERATOR_RELEASE(iterator);
-
-    /* calculate the next time to sleep for */
-    _schedule_next_execute_time();
-}
-
-int
-calculate_time_until_next_run(deliver_by_notify *it, time_t *now) {
-    time_t          local_now;
-
-    /* if we weren't passed a valid time, fake it */
-    if (NULL == now) {
-        now = &local_now;
-        time(&local_now);
-    }
-
-    netsnmp_assert_or_return(it->last_run != 0, -1);
-
-    /* set the timestamp for the next run */
-    it->next_run = it->last_run + it->frequency;
-
-    /* how long until the next run? */
-    return it->next_run - *now;
-}
-
-static void
-_schedule_next_execute_time(void) {
-    time_t             local_now = time(NULL);
-    int                sleep_for = INT_MAX;
-    int                next_time;
-    netsnmp_iterator  *iterator;
-    deliver_by_notify *obj;
-
-    DEBUGMSGTL(("deliverByNotify", "Calculating scheduling needed\n"));
-
-    if (alarm_reg) {
-        snmp_alarm_unregister(alarm_reg);
-        alarm_reg = 0;
-    }
-
-    iterator = CONTAINER_ITERATOR(deliver_container);
-    if (NULL == iterator)
-        return;
-
-    for(obj = ITERATOR_FIRST(iterator); obj;
-        obj = ITERATOR_NEXT(iterator)) {
-        next_time = calculate_time_until_next_run(obj, &local_now);
-        DEBUGMSGTL(("deliverByNotify", "  obj: %d (last=%d, next_run=%d)\n", next_time, obj->last_run, obj->next_run));
-        if (next_time < sleep_for)
-            sleep_for = next_time;
-    }
-
-    if (sleep_for != INT_MAX) {
-        if (sleep_for < 1)
-            sleep_for = 1; /* give at least a small pause */
-        DEBUGMSGTL(("deliverByNotify", "Next execution in %d (max = %d) seconds\n",
-                    sleep_for, INT_MAX));
-        alarm_reg = snmp_alarm_register(sleep_for, 0, &deliver_execute, NULL);
-    }
-
-    ITERATOR_RELEASE(iterator);
-}
-
diff --git a/agent/mibgroup/deliver/deliverByNotify.h b/agent/mibgroup/deliver/deliverByNotify.h
deleted file mode 100644
index 292c366..0000000
--- a/agent/mibgroup/deliver/deliverByNotify.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef DELIVERBYNOTIFY_H
-#define DELIVERBYNOTIFY_H 1
-
-#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
-
-config_add_mib(NET-SNMP-PERIODIC-NOTIFY-MIB)
-
-void init_deliverByNotify(void);
-
-void parse_deliver_config(const char *, char *);
-void free_deliver_config(void);
-
-SNMPAlarmCallback deliver_execute;
-
-#define NETSNMP_DELIVER_NO_PERIOD_OID   0x01
-#define NETSNMP_DELIVER_NO_MSG_COUNTS   0x02
-
-/* implementation details */
-typedef struct deliver_by_notify_s {
-   int     frequency;
-   int     last_run;
-   int     next_run;
-   oid    *target;
-   size_t  target_len;
-   int     max_packet_size;
-   int     flags;
-} deliver_by_notify;
-
-int calculate_time_until_next_run(deliver_by_notify *it, time_t *now);
-
-#endif /* deliverByNotify_h */
diff --git a/agent/mibgroup/disman.h b/agent/mibgroup/disman.h
index 6b7cdd5..80f3e1f 100644
--- a/agent/mibgroup/disman.h
+++ b/agent/mibgroup/disman.h
@@ -3,10 +3,7 @@
  */
 config_require(disman/event-mib)
 config_require(disman/expression-mib)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-/* the schedule mib is all about writing (SETs) */ 
 config_require(disman/schedule)
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 /* config_require(disman/nslookup-mib)   */
 /* config_require(disman/ping-mib)       */
 /* config_require(disman/traceroute-mib) */
diff --git a/agent/mibgroup/disman/event/mteEvent.c b/agent/mibgroup/disman/event/mteEvent.c
index bc4ff0b..327f8ba 100644
--- a/agent/mibgroup/disman/event/mteEvent.c
+++ b/agent/mibgroup/disman/event/mteEvent.c
@@ -4,17 +4,12 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "disman/event/mteEvent.h"
 #include "disman/event/mteTrigger.h"
 #include "disman/event/mteObjects.h"
 
-netsnmp_feature_child_of(disman_debugging, libnetsnmpmibs)
-netsnmp_feature_child_of(mteevent, libnetsnmpmibs)
-netsnmp_feature_child_of(mteevent_removeentry, mteevent)
-
 netsnmp_tdata *event_table_data;
 
     /*
@@ -28,7 +23,7 @@ init_event_table_data(void)
     DEBUGMSGTL(("disman:event:init", "init event container\n"));
     if (!event_table_data) {
         event_table_data = netsnmp_tdata_create_table("mteEventTable", 0);
-        DEBUGMSGTL(("disman:event:init", "create event container (%p)\n",
+        DEBUGMSGTL(("disman:event:init", "create event container (%x)\n",
                                       event_table_data));
     }
 }
@@ -48,12 +43,12 @@ init_mteEvent(void)
 
     /*
      * Insert fixed events for the default trigger notifications
-     * 
+     *
      * NB: internal events (with an owner of "_snmpd") will not in
      * fact refer to the mteObjectsTable for the payload varbinds.
-     * The routine mteObjects_internal_vblist() hardcodes the 
+     * The routine mteObjects_internal_vblist() hardcodes the
      * appropriate varbinds for these internal events.
-     *   This routine will need to be updated whenever a new 
+     *   This routine will need to be updated whenever a new
      * internal event is added.
      */
     if ( _defaults_init)
@@ -124,7 +119,6 @@ _init_link_mteEvent( const char *event, const char *oname, int specific )
      *
      * =================================================== */
 
-#ifndef NETSNMP_FEATURE_REMOVE_DISMAN_DEBUGGING
 void
 _mteEvent_dump(void)
 {
@@ -141,12 +135,12 @@ _mteEvent_dump(void)
         DEBUGMSG(("disman:event:dump", "(%s, %s)",
                                          row->indexes->val.string,
                                          row->indexes->next_variable->val.string));
-        DEBUGMSG(("disman:event:dump", ": %p, %p\n", row, entry));
+        DEBUGMSG(("disman:event:dump", ": %x, %x\n", row, entry));
         i++;
     }
     DEBUGMSGTL(("disman:event:dump", "EventTable %d entries\n", i));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_DISMAN_DEBUGGING */
+
 
 /*
  * Create a new row in the event table 
@@ -202,7 +196,6 @@ mteEvent_createEntry(const char *mteOwner, const char *mteEName, int fixed)
 }
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_MTEEVENT_REMOVEENTRY
 /*
  * Remove a row from the event table 
  */
@@ -215,9 +208,9 @@ mteEvent_removeEntry(netsnmp_tdata_row *row)
         return;                 /* Nothing to remove */
     entry = (struct mteEvent *)
         netsnmp_tdata_remove_and_delete_row(event_table_data, row);
-    SNMP_FREE(entry);
+    if (entry)
+        SNMP_FREE(entry);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_MTEEVENT_REMOVEENTRY */
 
     /* ===================================================
      *
@@ -229,12 +222,10 @@ int
 _mteEvent_fire_notify( struct mteEvent    *event,
                        struct mteTrigger  *trigger,
                        oid *suffix, size_t sfx_len );
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 int
 _mteEvent_fire_set(    struct mteEvent    *event,
                        struct mteTrigger  *trigger,
                        oid *suffix, size_t sfx_len );
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 int
 mteEvent_fire( char *owner, char *event,      /* Event to invoke    */
@@ -270,13 +261,11 @@ mteEvent_fire( char *owner, char *event,      /* Event to invoke    */
         _mteEvent_fire_notify( entry, trigger, suffix, s_len );
         fired = 1;
     }
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     if (entry->mteEventActions & MTE_EVENT_SET) {
         DEBUGMSGTL(("disman:event:fire", "Firing set event\n"));
         _mteEvent_fire_set( entry, trigger, suffix, s_len );
         fired = 1;
     }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
     if (!fired)
         DEBUGMSGTL(("disman:event:fire", "Matched event is empty\n"));
@@ -341,7 +330,7 @@ _insert_internal_objects( netsnmp_variable_list *vblist, char *oname,
     vp->next_variable     = vblist->next_variable;
     vblist->next_variable = var;
 }
-#endif /* __NOT_NEEDED */
+#endif
 
 int
 _mteEvent_fire_notify( struct mteEvent   *entry,     /* The event to fire  */
@@ -349,9 +338,9 @@ _mteEvent_fire_notify( struct mteEvent   *entry,     /* The event to fire  */
                        oid *suffix, size_t sfx_len ) /* Matching instance  */
 {
     netsnmp_variable_list *var, *v2;
-    extern const oid       snmptrap_oid[];
-    extern const size_t    snmptrap_oid_len;
-    netsnmp_session       *s;
+    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;
 
          /*
           * The Event-MIB specification says that objects from the
@@ -432,7 +421,7 @@ _mteEvent_fire_notify( struct mteEvent   *entry,     /* The event to fire  */
         } else {
             for (v2 = var; v2 && v2->next_variable; v2=v2->next_variable)
                 ;
-            mteObjects_internal_vblist(v2, entry->mteNotifyObjects, trigger, s);
+            mteObjects_internal_vblist(v2,  entry->mteNotifyObjects, trigger, s);
         }
     }
 
@@ -445,7 +434,6 @@ _mteEvent_fire_notify( struct mteEvent   *entry,     /* The event to fire  */
 }
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 int
 _mteEvent_fire_set( struct mteEvent   *entry,      /* The event to fire */
                     struct mteTrigger *trigger,    /* Trigger that fired */
@@ -489,4 +477,4 @@ _mteEvent_fire_set( struct mteEvent   *entry,      /* The event to fire */
 
     /* XXX - Need to check result */
 }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
+
diff --git a/agent/mibgroup/disman/event/mteEvent.h b/agent/mibgroup/disman/event/mteEvent.h
index 3be5c6e..b358519 100644
--- a/agent/mibgroup/disman/event/mteEvent.h
+++ b/agent/mibgroup/disman/event/mteEvent.h
@@ -46,7 +46,7 @@ struct mteEvent {
      * Column values for the main mteEventTable
      */
     char            mteEventComment[MTE_STR2_LEN+1];
-    u_char          mteEventActions;
+    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 24192a6..2561385 100644
--- a/agent/mibgroup/disman/event/mteEventConf.c
+++ b/agent/mibgroup/disman/event/mteEventConf.c
@@ -4,7 +4,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/agent_callbacks.h>
@@ -12,7 +11,6 @@
 #include "disman/event/mteEvent.h"
 #include "disman/event/mteEventConf.h"
 
-netsnmp_feature_require(iquery)
 
 /** Initializes the mteEventsConf module */
 void
@@ -296,11 +294,6 @@ parse_setEvent( const char *token, char *line )
     if (cp && *cp == '=') {
         cp = skip_token( cp );   /* skip the '=' assignment character */
     }
-    if (!cp) {
-        config_perror("syntax error: missing set value");
-        return;
-    }
-
     value = strtol( cp, NULL, 0);
 
     /*
@@ -471,7 +464,7 @@ int
 store_mteETable(int majorID, int minorID, void *serverarg, void *clientarg)
 {
     char            line[SNMP_MAXBUF];
-    char           *cptr, *cp;
+    char           *cptr;
     void           *vp;
     size_t          tint;
     netsnmp_tdata_row *row;
@@ -501,12 +494,12 @@ store_mteETable(int majorID, int minorID, void *serverarg, void *clientarg)
         strcat(line, "_mteETable ");
         cptr = line + strlen(line);
 
-        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 );
+        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 );
         /* ... (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 );
@@ -522,17 +515,17 @@ store_mteETable(int majorID, int minorID, void *serverarg, void *clientarg)
             strcat(line, "_mteENotTable ");
             cptr = line + strlen(line);
     
-            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->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->mteNotification;
             cptr = read_config_store_data(ASN_OBJECT_ID, cptr, &vp,
                                           &entry->mteNotification_len);
-            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 );
+            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 );
             snmpd_store_config(line);
         }
 
@@ -541,19 +534,19 @@ store_mteETable(int majorID, int minorID, void *serverarg, void *clientarg)
             strcat(line, "_mteESetTable ");
             cptr = line + strlen(line);
     
-            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->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->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);
-            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 );
+            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 );
             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/mteEventNotificationTable.c b/agent/mibgroup/disman/event/mteEventNotificationTable.c
index 7d2c94a..c9b3770 100644
--- a/agent/mibgroup/disman/event/mteEventNotificationTable.c
+++ b/agent/mibgroup/disman/event/mteEventNotificationTable.c
@@ -7,19 +7,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "disman/event/mteEvent.h"
 #include "disman/event/mteEventNotificationTable.h"
 
-netsnmp_feature_require(table_tdata)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_type_and_max_size)
-netsnmp_feature_require(check_vb_oid)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-static netsnmp_table_registration_info *table_info;
 
 /* Initializes the mteEventNotificationTable module */
 void
@@ -28,6 +20,7 @@ init_mteEventNotificationTable(void)
     static oid  mteEventNotificationTable_oid[]   = { 1, 3, 6, 1, 2, 1, 88, 1, 4, 3 };
     size_t      mteEventNotificationTable_oid_len = OID_LENGTH(mteEventNotificationTable_oid);
     netsnmp_handler_registration    *reg;
+    netsnmp_table_registration_info *table_info;
 
     /*
      * Ensure the (combined) table container is available...
@@ -37,19 +30,11 @@ init_mteEventNotificationTable(void)
     /*
      * ... then set up the MIB interface to the mteEventNotificationTable slice
      */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     reg = netsnmp_create_handler_registration("mteEventNotificationTable",
                                             mteEventNotificationTable_handler,
                                             mteEventNotificationTable_oid,
                                             mteEventNotificationTable_oid_len,
                                             HANDLER_CAN_RWRITE);
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-    reg = netsnmp_create_handler_registration("mteEventNotificationTable",
-                                            mteEventNotificationTable_handler,
-                                            mteEventNotificationTable_oid,
-                                            mteEventNotificationTable_oid_len,
-                                            HANDLER_CAN_RONLY);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
     netsnmp_table_helper_add_indexes(table_info,
@@ -63,18 +48,10 @@ init_mteEventNotificationTable(void)
 
     /* Register this using the (common) event_table_data container */
     netsnmp_tdata_register(reg, event_table_data, table_info);
-    DEBUGMSGTL(("disman:event:init", "Event Notify Table container (%p)\n",
+    DEBUGMSGTL(("disman:event:init", "Event Notify Table container (%x)\n",
                                       event_table_data));
 }
 
-void
-shutdown_mteEventNotificationTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-}
 
 
 /** handles requests for the mteEventNotificationTable table */
@@ -98,9 +75,6 @@ mteEventNotificationTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_GET:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteEvent *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -132,16 +106,11 @@ mteEventNotificationTable_handler(netsnmp_mib_handler *handler,
         }
         break;
 
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         /*
          * Write-support
          */
     case MODE_SET_RESERVE1:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
 
             /*
@@ -210,9 +179,6 @@ mteEventNotificationTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_ACTION:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteEvent *) netsnmp_tdata_extract_entry(request);
             if (!entry) {
                 /*
@@ -234,9 +200,6 @@ mteEventNotificationTable_handler(netsnmp_mib_handler *handler,
          *  (reasonably) safe to apply them in the Commit phase
          */
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteEvent *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -260,7 +223,6 @@ mteEventNotificationTable_handler(netsnmp_mib_handler *handler,
             }
         }
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
     return SNMP_ERR_NOERROR;
 }
diff --git a/agent/mibgroup/disman/event/mteEventNotificationTable.h b/agent/mibgroup/disman/event/mteEventNotificationTable.h
index abd6110..be2bcc6 100644
--- a/agent/mibgroup/disman/event/mteEventNotificationTable.h
+++ b/agent/mibgroup/disman/event/mteEventNotificationTable.h
@@ -9,7 +9,6 @@
  * function declarations 
  */
 void            init_mteEventNotificationTable(void);
-void            shutdown_mteEventNotificationTable(void);
 Netsnmp_Node_Handler mteEventNotificationTable_handler;
 
 /*
diff --git a/agent/mibgroup/disman/event/mteEventSetTable.c b/agent/mibgroup/disman/event/mteEventSetTable.c
index ee696f1..4d0b6ee 100644
--- a/agent/mibgroup/disman/event/mteEventSetTable.c
+++ b/agent/mibgroup/disman/event/mteEventSetTable.c
@@ -7,20 +7,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "disman/event/mteEvent.h"
 #include "disman/event/mteEventSetTable.h"
 
-netsnmp_feature_require(table_tdata)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_type_and_max_size)
-netsnmp_feature_require(check_vb_oid)
-netsnmp_feature_require(check_vb_truthvalue)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-static netsnmp_table_registration_info *table_info;
 
 /* Initializes the mteEventSetTable module */
 void
@@ -29,6 +20,7 @@ init_mteEventSetTable(void)
     static oid  mteEventSetTable_oid[]   = { 1, 3, 6, 1, 2, 1, 88, 1, 4, 4 };
     size_t      mteEventSetTable_oid_len = OID_LENGTH(mteEventSetTable_oid);
     netsnmp_handler_registration    *reg;
+    netsnmp_table_registration_info *table_info;
 
     /*
      * Ensure the (combined) table container is available...
@@ -38,19 +30,11 @@ init_mteEventSetTable(void)
     /*
      * ... then set up the MIB interface to the mteEventSetTable slice
      */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     reg = netsnmp_create_handler_registration("mteEventSetTable",
                                             mteEventSetTable_handler,
                                             mteEventSetTable_oid,
                                             mteEventSetTable_oid_len,
                                             HANDLER_CAN_RWRITE);
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-    reg = netsnmp_create_handler_registration("mteEventSetTable",
-                                            mteEventSetTable_handler,
-                                            mteEventSetTable_oid,
-                                            mteEventSetTable_oid_len,
-                                            HANDLER_CAN_RONLY);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
     netsnmp_table_helper_add_indexes(table_info,
@@ -64,19 +48,10 @@ init_mteEventSetTable(void)
 
     /* Register this using the (common) event_table_data container */
     netsnmp_tdata_register(reg, event_table_data, table_info);
-    DEBUGMSGTL(("disman:event:init", "Event Set Table container (%p)\n",
+    DEBUGMSGTL(("disman:event:init", "Event Set Table container (%x)\n",
                                       event_table_data));
 }
 
-void
-shutdown_mteEventSetTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-}
-
 
 /** handles requests for the mteEventSetTable table */
 int
@@ -100,9 +75,6 @@ mteEventSetTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_GET:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteEvent *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -148,15 +120,11 @@ mteEventSetTable_handler(netsnmp_mib_handler *handler,
         }
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         /*
          * Write-support
          */
     case MODE_SET_RESERVE1:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
 
             /*
@@ -239,9 +207,6 @@ mteEventSetTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_ACTION:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteEvent *) netsnmp_tdata_extract_entry(request);
             if (!entry) {
                 /*
@@ -263,9 +228,6 @@ mteEventSetTable_handler(netsnmp_mib_handler *handler,
          *  (reasonably) safe to apply them in the Commit phase
          */
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteEvent *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -304,7 +266,6 @@ mteEventSetTable_handler(netsnmp_mib_handler *handler,
             }
         }
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
     return SNMP_ERR_NOERROR;
 }
diff --git a/agent/mibgroup/disman/event/mteEventSetTable.h b/agent/mibgroup/disman/event/mteEventSetTable.h
index 71ec09a..b8cb124 100644
--- a/agent/mibgroup/disman/event/mteEventSetTable.h
+++ b/agent/mibgroup/disman/event/mteEventSetTable.h
@@ -9,7 +9,6 @@
  * function declarations 
  */
 void            init_mteEventSetTable(void);
-void            shutdown_mteEventSetTable(void);
 Netsnmp_Node_Handler mteEventSetTable_handler;
 
 /*
diff --git a/agent/mibgroup/disman/event/mteEventTable.c b/agent/mibgroup/disman/event/mteEventTable.c
index c5b534e..93c902e 100644
--- a/agent/mibgroup/disman/event/mteEventTable.c
+++ b/agent/mibgroup/disman/event/mteEventTable.c
@@ -7,24 +7,12 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "utilities/iquery.h"
 #include "disman/event/mteEvent.h"
 #include "disman/event/mteEventTable.h"
 
-netsnmp_feature_require(iquery)
-netsnmp_feature_require(table_tdata)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(iquery_pdu_session)
-netsnmp_feature_require(check_vb_type_and_max_size)
-netsnmp_feature_require(mteevent_removeentry)
-netsnmp_feature_require(check_vb_truthvalue)
-netsnmp_feature_require(table_tdata_insert_row)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-static netsnmp_table_registration_info *table_info;
 
 /* Initializes the mteEventTable module */
 void
@@ -33,6 +21,7 @@ init_mteEventTable(void)
     static oid  mteEventTable_oid[]   = { 1, 3, 6, 1, 2, 1, 88, 1, 4, 2 };
     size_t      mteEventTable_oid_len = OID_LENGTH(mteEventTable_oid);
     netsnmp_handler_registration    *reg;
+    netsnmp_table_registration_info *table_info;
 
     /*
      * Ensure the (combined) table container is available...
@@ -42,19 +31,11 @@ init_mteEventTable(void)
     /*
      * ... then set up the MIB interface to the mteEventTable slice
      */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     reg = netsnmp_create_handler_registration("mteEventTable",
                                             mteEventTable_handler,
                                             mteEventTable_oid,
                                             mteEventTable_oid_len,
                                             HANDLER_CAN_RWRITE);
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-    reg = netsnmp_create_handler_registration("mteEventTable",
-                                            mteEventTable_handler,
-                                            mteEventTable_oid,
-                                            mteEventTable_oid_len,
-                                            HANDLER_CAN_RONLY);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
     netsnmp_table_helper_add_indexes(table_info,
@@ -68,18 +49,10 @@ init_mteEventTable(void)
 
     /* Register this using the (common) event_table_data container */
     netsnmp_tdata_register(reg, event_table_data, table_info);
-    DEBUGMSGTL(("disman:event:init", "Event Table container (%p)\n",
+    DEBUGMSGTL(("disman:event:init", "Event Table container (%x)\n",
                                       event_table_data));
 }
 
-void
-shutdown_mteEventTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-}
 
 /** handles requests for the mteEventTable table */
 int
@@ -106,9 +79,6 @@ mteEventTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_GET:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteEvent *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
             if (!entry || !(entry->flags & MTE_EVENT_FLAG_VALID))
@@ -138,16 +108,11 @@ mteEventTable_handler(netsnmp_mib_handler *handler,
         }
         break;
 
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         /*
          * Write-support
          */
     case MODE_SET_RESERVE1:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteEvent *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -229,9 +194,6 @@ mteEventTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_RESERVE2:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
 
             switch (tinfo->colnum) {
@@ -264,9 +226,6 @@ mteEventTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_FREE:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
 
             switch (tinfo->colnum) {
@@ -292,9 +251,6 @@ mteEventTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_ACTION:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
             entry = (struct mteEvent *) netsnmp_tdata_extract_entry(request);
             if (!entry) {
@@ -319,9 +275,6 @@ mteEventTable_handler(netsnmp_mib_handler *handler,
          *  (reasonably) safe to apply them in the Commit phase
          */
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteEvent *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -367,8 +320,6 @@ mteEventTable_handler(netsnmp_mib_handler *handler,
             }
         }
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
     }
     DEBUGMSGTL(("disman:event:mib", "Table handler, done\n"));
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/disman/event/mteEventTable.h b/agent/mibgroup/disman/event/mteEventTable.h
index adc1c30..a7d7560 100644
--- a/agent/mibgroup/disman/event/mteEventTable.h
+++ b/agent/mibgroup/disman/event/mteEventTable.h
@@ -9,7 +9,6 @@
  * function declarations 
  */
 void            init_mteEventTable(void);
-void            shutdown_mteEventTable(void);
 Netsnmp_Node_Handler mteEventTable_handler;
 
 /*
diff --git a/agent/mibgroup/disman/event/mteObjects.c b/agent/mibgroup/disman/event/mteObjects.c
index cf950c1..710f8ab 100644
--- a/agent/mibgroup/disman/event/mteObjects.c
+++ b/agent/mibgroup/disman/event/mteObjects.c
@@ -109,7 +109,7 @@ _init_default_mteObject_lists( int majorID, int minorID,
  * Create a new row in the object table 
  */
 netsnmp_tdata_row      *
-mteObjects_createEntry(const char *owner, const char *oname, int index, int flags)
+mteObjects_createEntry(char *owner, char *oname, int index, int flags)
 {
     struct mteObject   *entry;
     netsnmp_tdata_row  *row, *row2;
@@ -194,8 +194,8 @@ mteObjects_createEntry(const char *owner, const char *oname, int index, int flag
  * Add a row to the object table 
  */
 struct mteObject *
-mteObjects_addOID(const char *owner, const char *oname, int index,
-                  const char *oid_name_buf, int wild )
+mteObjects_addOID(char *owner, char *oname, int index,
+                  char *oid_name_buf,       int wild )
 {
     netsnmp_tdata_row *row;
     struct mteObject  *entry;
@@ -236,7 +236,8 @@ mteObjects_removeEntry(netsnmp_tdata_row *row)
         return;                 /* Nothing to remove */
     entry = (struct mteObject *)
         netsnmp_tdata_remove_and_delete_row(objects_table_data, row);
-    SNMP_FREE(entry);
+    if (entry)
+        SNMP_FREE(entry);
 }
 
 
@@ -244,7 +245,7 @@ mteObjects_removeEntry(netsnmp_tdata_row *row)
  * Remove all matching rows from the event table 
  */
 void
-mteObjects_removeEntries( const char *owner, char *oname )
+mteObjects_removeEntries( char *owner, char *oname )
 {
     netsnmp_tdata_row     *row;
     netsnmp_variable_list  owner_var, oname_var;
diff --git a/agent/mibgroup/disman/event/mteObjects.h b/agent/mibgroup/disman/event/mteObjects.h
index cdbf626..e0c6ff6 100644
--- a/agent/mibgroup/disman/event/mteObjects.h
+++ b/agent/mibgroup/disman/event/mteObjects.h
@@ -43,12 +43,11 @@ extern void      init_objects_table_data(void);
 
 void          init_mteObjects(void);
 void               mteObjects_removeEntry(netsnmp_tdata_row *row);
-void               mteObjects_removeEntries(const char *owner,  char *oname);
-netsnmp_tdata_row *mteObjects_createEntry(  const char *owner,
-					    const char *oname,
+void               mteObjects_removeEntries(char *owner,  char *oname);
+netsnmp_tdata_row *mteObjects_createEntry(  char *owner,  char *oname,
                                             int   oindex,  int  flags);
-struct mteObject * mteObjects_addOID(const char *owner, const char *oname, int index,
-                                     const char *oid_name_buf, int wild );
+struct mteObject * mteObjects_addOID(char *owner, char *oname, int index,
+                                     char *oid_name_buf,       int wild );
 
 int  mteObjects_vblist(          netsnmp_variable_list *vblist,
                                  char *owner,   char   *oname,
diff --git a/agent/mibgroup/disman/event/mteObjectsConf.c b/agent/mibgroup/disman/event/mteObjectsConf.c
index 7679865..3f9293c 100644
--- a/agent/mibgroup/disman/event/mteObjectsConf.c
+++ b/agent/mibgroup/disman/event/mteObjectsConf.c
@@ -62,7 +62,7 @@ parse_mteOTable(const char *token, char *line)
     line  = read_config_read_data(ASN_OCTET_STR, line, &vp,    &len);
     line  = read_config_read_data(ASN_UNSIGNED,  line, &index, &len);
 
-    DEBUGMSG(("disman:event:conf", "(%s, %s, %lu) ", owner, oname, index));
+    DEBUGMSG(("disman:event:conf", "(%s, %s, %d) ", owner, oname, index));
 
     row   = mteObjects_createEntry( owner, oname, index, 0 );
     /* entry = (struct mteObject *)netsnmp_tdata_row_entry( row ); */
@@ -111,7 +111,7 @@ int
 store_mteOTable(int majorID, int minorID, void *serverarg, void *clientarg)
 {
     char            line[SNMP_MAXBUF];
-    char           *cptr, *cp;
+    char           *cptr;
     void           *vp;
     size_t          tint;
     netsnmp_tdata_row *row;
@@ -131,16 +131,16 @@ store_mteOTable(int majorID, int minorID, void *serverarg, void *clientarg)
         if ( entry->flags & MTE_OBJECT_FLAG_FIXED )
             continue;
 
-        DEBUGMSGTL(("disman:event:conf", "  Storing (%s %s %ld)\n",
+        DEBUGMSGTL(("disman:event:conf", "  Storing (%s %s %d)\n",
                          entry->mteOwner, entry->mteOName, entry->mteOIndex));
         memset(line, 0, sizeof(line));
         strcat(line, "_mteOTable ");
         cptr = line + strlen(line);
 
-        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 );
+        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 );
         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 f7f6e02..4c879b2 100644
--- a/agent/mibgroup/disman/event/mteObjectsTable.c
+++ b/agent/mibgroup/disman/event/mteObjectsTable.c
@@ -7,21 +7,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "disman/event/mteObjects.h"
 #include "disman/event/mteObjectsTable.h"
 
-netsnmp_feature_require(table_tdata)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_oid)
-netsnmp_feature_require(check_vb_truthvalue)
-netsnmp_feature_require(table_tdata_insert_row)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-static netsnmp_table_registration_info *table_info;
-
 /** Initializes the mteObjectsTable module */
 void
 init_mteObjectsTable(void)
@@ -30,6 +20,7 @@ init_mteObjectsTable(void)
     static oid mteObjectsTable_oid[] = { 1, 3, 6, 1, 2, 1, 88, 1, 3, 1 };
     size_t     mteObjectsTable_oid_len = OID_LENGTH(mteObjectsTable_oid);
     netsnmp_handler_registration    *reg;
+    netsnmp_table_registration_info *table_info;
 
     /*
      * Ensure the object table container is available...
@@ -39,19 +30,11 @@ init_mteObjectsTable(void)
     /*
      * ... then set up the MIB interface to this table
      */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     reg = netsnmp_create_handler_registration("mteObjectsTable",
                                             mteObjectsTable_handler,
                                             mteObjectsTable_oid,
                                             mteObjectsTable_oid_len,
                                             HANDLER_CAN_RWRITE);
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-    reg = netsnmp_create_handler_registration("mteObjectsTable",
-                                            mteObjectsTable_handler,
-                                            mteObjectsTable_oid,
-                                            mteObjectsTable_oid_len,
-                                            HANDLER_CAN_RONLY);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
     netsnmp_table_helper_add_indexes(table_info,
@@ -67,15 +50,6 @@ init_mteObjectsTable(void)
     netsnmp_tdata_register(reg, objects_table_data, table_info);
 }
 
-void
-shutdown_mteObjectsTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-}
-
 
 /** handles requests for the mteObjectsTable table */
 int
@@ -101,9 +75,6 @@ mteObjectsTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_GET:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteObject *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -131,16 +102,12 @@ mteObjectsTable_handler(netsnmp_mib_handler *handler,
         }
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         /*
          * Write-support
          */
     case MODE_SET_RESERVE1:
 
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteObject *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -204,10 +171,8 @@ mteObjectsTable_handler(netsnmp_mib_handler *handler,
         break;
 
     case MODE_SET_RESERVE2:
-        for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
 
+        for (request = requests; request; request = request->next) {
             tinfo = netsnmp_extract_table_info(request);
 
             switch (tinfo->colnum) {
@@ -240,10 +205,8 @@ mteObjectsTable_handler(netsnmp_mib_handler *handler,
         break;
 
     case MODE_SET_FREE:
-        for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
 
+        for (request = requests; request; request = request->next) {
             tinfo = netsnmp_extract_table_info(request);
 
             switch (tinfo->colnum) {
@@ -269,9 +232,6 @@ mteObjectsTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_ACTION:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteObject *) netsnmp_tdata_extract_entry(request);
             if (!entry) {
                 /*
@@ -295,9 +255,6 @@ mteObjectsTable_handler(netsnmp_mib_handler *handler,
          *  (reasonably) safe to apply them in the Commit phase
          */
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteObject *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -336,12 +293,7 @@ mteObjectsTable_handler(netsnmp_mib_handler *handler,
                 }
             }
         }
-
-        /** set up to save persistent store */
-        snmp_store_needed(NULL);
-
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
     }
     return SNMP_ERR_NOERROR;
 }
diff --git a/agent/mibgroup/disman/event/mteObjectsTable.h b/agent/mibgroup/disman/event/mteObjectsTable.h
index f5cd7bc..14bfb26 100644
--- a/agent/mibgroup/disman/event/mteObjectsTable.h
+++ b/agent/mibgroup/disman/event/mteObjectsTable.h
@@ -9,7 +9,6 @@
  * function declarations 
  */
 void            init_mteObjectsTable(void);
-void            shutdown_mteObjectsTable(void);
 Netsnmp_Node_Handler mteObjectsTable_handler;
 
 /*
diff --git a/agent/mibgroup/disman/event/mteTrigger.c b/agent/mibgroup/disman/event/mteTrigger.c
index 7fca1b0..074c261 100644
--- a/agent/mibgroup/disman/event/mteTrigger.c
+++ b/agent/mibgroup/disman/event/mteTrigger.c
@@ -4,16 +4,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "disman/event/mteTrigger.h"
 #include "disman/event/mteEvent.h"
 
-netsnmp_feature_child_of(disman_debugging, libnetsnmpmibs)
-netsnmp_feature_child_of(mtetrigger, libnetsnmpmibs)
-netsnmp_feature_child_of(mtetrigger_removeentry, mtetrigger)
-
 netsnmp_tdata *trigger_table_data;
 
 oid    _sysUpTime_instance[] = { 1, 3, 6, 1, 2, 1, 1, 3, 0 };
@@ -36,7 +31,7 @@ init_trigger_table_data(void)
             snmp_log(LOG_ERR, "failed to create mteTriggerTable");
             return;
         }
-        DEBUGMSGTL(("disman:event:init", "create trigger container (%p)\n",
+        DEBUGMSGTL(("disman:event:init", "create trigger container (%x)\n",
                                           trigger_table_data));
     }
     mteTriggerFailures = 0;
@@ -58,7 +53,6 @@ init_mteTrigger(void)
      *
      * =================================================== */
 
-#ifndef NETSNMP_FEATURE_REMOVE_DISMAN_DEBUGGING
 void
 _mteTrigger_dump(void)
 {
@@ -75,18 +69,18 @@ _mteTrigger_dump(void)
         DEBUGMSG(("disman:event:dump", "(%s, %s)",
                                          row->indexes->val.string,
                                          row->indexes->next_variable->val.string));
-        DEBUGMSG(("disman:event:dump", ": %p, %p\n", row, entry));
+        DEBUGMSG(("disman:event:dump", ": %x, %x\n", row, entry));
         i++;
     }
     DEBUGMSGTL(("disman:event:dump", "TriggerTable %d entries\n", i));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_DISMAN_DEBUGGING */
+
 
 /*
  * Create a new row in the trigger table 
  */
 netsnmp_tdata_row *
-mteTrigger_createEntry(const char *mteOwner, char *mteTName, int fixed)
+mteTrigger_createEntry(char *mteOwner, char *mteTName, int fixed)
 {
     struct mteTrigger *entry;
     netsnmp_tdata_row *row;
@@ -148,7 +142,6 @@ mteTrigger_createEntry(const char *mteOwner, char *mteTName, int fixed)
     return row;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_MTETRIGGER_REMOVEENTRY
 /*
  * Remove a row from the trigger table 
  */
@@ -166,7 +159,6 @@ mteTrigger_removeEntry(netsnmp_tdata_row *row)
         SNMP_FREE(entry);
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_MTETRIGGER_REMOVEENTRY */
 
     /* ===================================================
      *
@@ -255,7 +247,6 @@ mteTrigger_run( unsigned int reg, void *clientarg)
         DEBUGMSGTL(( "disman:event:trigger:monitor", "Trigger query (%s) failed: %d\n",
                            (( entry->flags & MTE_TRIGGER_FLAG_VWILD ) ? "walk" : "get"), n));
         _mteTrigger_failure( "failed to run mteTrigger query" );
-        snmp_free_varbind(var);
         return;
     }
 
@@ -300,7 +291,6 @@ mteTrigger_run( unsigned int reg, void *clientarg)
                 if (!vtmp) {
                     _mteTrigger_failure(
                           "failed to create mteTrigger temp varbind");
-                    snmp_free_varbind(var);
                     return;
                 }
                 vtmp->type = ASN_NULL;
@@ -338,7 +328,6 @@ mteTrigger_run( unsigned int reg, void *clientarg)
                     if (!vtmp) {
                         _mteTrigger_failure(
                                  "failed to create mteTrigger temp varbind");
-                        snmp_free_varbind(var);
                         return;
                     }
                     vtmp->type = ASN_NULL;
@@ -380,7 +369,6 @@ mteTrigger_run( unsigned int reg, void *clientarg)
                 if (!vtmp) {
                     _mteTrigger_failure(
                              "failed to create mteTrigger temp varbind");
-                    snmp_free_varbind(var);
                     return;
                 }
                 vtmp->type = ASN_NULL;
@@ -716,7 +704,6 @@ mteTrigger_run( unsigned int reg, void *clientarg)
                         if (!vtmp) {
                             _mteTrigger_failure(
                                   "failed to create mteTrigger discontinuity varbind");
-                            snmp_free_varbind(dvar);
                             return;
                         }
                         snmp_set_var_objid(vtmp, entry->mteDeltaDiscontID,
@@ -816,7 +803,7 @@ mteTrigger_run( unsigned int reg, void *clientarg)
     DEBUGMSGTL(( "disman:event:delta", "delta sample: "));
     DEBUGMSGOID(("disman:event:delta", vp1->name,
                                        vp1->name_length ));
-    DEBUGMSG((   "disman:event:delta", " (%ld - %ld) = %ld\n",
+    DEBUGMSG((   "disman:event:delta", " (%d - %d) = %d\n",
                 *vp1->val.integer,  *vp2->val.integer, value));
                 vp2 = vp2->next_variable;
             } else {
@@ -846,7 +833,7 @@ mteTrigger_run( unsigned int reg, void *clientarg)
                 cmp = ( value >= entry->mteTBoolValue );
                 break;
             }
-    DEBUGMSGTL(( "disman:event:delta", "Bool comparison: (%ld %s %ld) %d\n",
+    DEBUGMSGTL(( "disman:event:delta", "Bool comparison: (%d %s %d) %d\n",
                           value, _ops[entry->mteTBoolComparison],
                           entry->mteTBoolValue, cmp));
 
diff --git a/agent/mibgroup/disman/event/mteTrigger.h b/agent/mibgroup/disman/event/mteTrigger.h
index 19626b1..aaf949a 100644
--- a/agent/mibgroup/disman/event/mteTrigger.h
+++ b/agent/mibgroup/disman/event/mteTrigger.h
@@ -122,8 +122,8 @@ struct mteTrigger {
     /*
      * Column values for Existence tests (mteTriggerExistenceTable)
      */
-    u_char          mteTExTest;
-    u_char          mteTExStartup;
+    char            mteTExTest;
+    char            mteTExStartup;
     char            mteTExObjOwner[MTE_STR1_LEN+1];
     char            mteTExObjects[ MTE_STR1_LEN+1];
     char            mteTExEvOwner[ MTE_STR1_LEN+1];
@@ -189,7 +189,7 @@ extern void      init_trigger_table_data(void);
 
 void          init_mteTrigger(void);
 void               mteTrigger_removeEntry(netsnmp_tdata_row *row);
-netsnmp_tdata_row *mteTrigger_createEntry(const char *mteOwner,
+netsnmp_tdata_row *mteTrigger_createEntry(char *mteOwner,
                                           char *mteTriggerName, int fixed);
 void               mteTrigger_enable(    struct mteTrigger *entry );
 void               mteTrigger_disable(   struct mteTrigger *entry );
diff --git a/agent/mibgroup/disman/event/mteTriggerBooleanTable.c b/agent/mibgroup/disman/event/mteTriggerBooleanTable.c
index ed1ec30..52efcac 100644
--- a/agent/mibgroup/disman/event/mteTriggerBooleanTable.c
+++ b/agent/mibgroup/disman/event/mteTriggerBooleanTable.c
@@ -7,19 +7,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "disman/event/mteTrigger.h"
 #include "disman/event/mteTriggerBooleanTable.h"
 
-netsnmp_feature_require(table_tdata)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_type_and_max_size)
-netsnmp_feature_require(check_vb_truthvalue)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-static netsnmp_table_registration_info *table_info;
 
 /** Initializes the mteTriggerBooleanTable module */
 void
@@ -28,6 +20,7 @@ init_mteTriggerBooleanTable(void)
     static oid mteTBoolTable_oid[]    = { 1, 3, 6, 1, 2, 1, 88, 1, 2, 5 };
     size_t     mteTBoolTable_oid_len  = OID_LENGTH(mteTBoolTable_oid);
     netsnmp_handler_registration    *reg;
+    netsnmp_table_registration_info *table_info;
 
     /*
      * Ensure the (combined) table container is available...
@@ -37,19 +30,11 @@ init_mteTriggerBooleanTable(void)
     /*
      * ... then set up the MIB interface to the mteTriggerBooleanTable slice
      */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-    reg = netsnmp_create_handler_registration("mteTriggerBooleanTable",
-                                            mteTriggerBooleanTable_handler,
-                                            mteTBoolTable_oid,
-                                            mteTBoolTable_oid_len,
-                                            HANDLER_CAN_RWRITE);
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
     reg = netsnmp_create_handler_registration("mteTriggerBooleanTable",
                                             mteTriggerBooleanTable_handler,
                                             mteTBoolTable_oid,
                                             mteTBoolTable_oid_len,
                                             HANDLER_CAN_RWRITE);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
     netsnmp_table_helper_add_indexes(table_info,
@@ -66,14 +51,6 @@ init_mteTriggerBooleanTable(void)
     DEBUGMSGTL(("disman:event:init", "Trigger Bool Table\n"));
 }
 
-void
-shutdown_mteTriggerBooleanTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-}
 
 /** handles requests for the mteTriggerBooleanTable table */
 int
@@ -97,9 +74,6 @@ mteTriggerBooleanTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_GET:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -108,10 +82,8 @@ mteTriggerBooleanTable_handler(netsnmp_mib_handler *handler,
              *   rows where the mteTriggerTest 'boolean(1)' bit is set.
              * So skip entries where this isn't the case.
              */
-            if (!entry || !(entry->mteTriggerTest & MTE_TRIGGER_BOOLEAN )) {
-                netsnmp_request_set_error(request, SNMP_NOSUCHINSTANCE);
+            if (!entry || !(entry->mteTriggerTest & MTE_TRIGGER_BOOLEAN ))
                 continue;
-            }
 
             switch (tinfo->colnum) {
             case COLUMN_MTETRIGGERBOOLEANCOMPARISON:
@@ -151,15 +123,11 @@ mteTriggerBooleanTable_handler(netsnmp_mib_handler *handler,
         }
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         /*
          * Write-support
          */
     case MODE_SET_RESERVE1:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -244,9 +212,6 @@ mteTriggerBooleanTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_ACTION:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             if (!entry) {
                 /*
@@ -267,9 +232,6 @@ mteTriggerBooleanTable_handler(netsnmp_mib_handler *handler,
          *  (reasonably) safe to apply them in the Commit phase
          */
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -309,7 +271,6 @@ mteTriggerBooleanTable_handler(netsnmp_mib_handler *handler,
             }
         }
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
     return SNMP_ERR_NOERROR;
 }
diff --git a/agent/mibgroup/disman/event/mteTriggerBooleanTable.h b/agent/mibgroup/disman/event/mteTriggerBooleanTable.h
index f2ddd77..d2d2dcb 100644
--- a/agent/mibgroup/disman/event/mteTriggerBooleanTable.h
+++ b/agent/mibgroup/disman/event/mteTriggerBooleanTable.h
@@ -9,7 +9,6 @@
  * function declarations 
  */
 void            init_mteTriggerBooleanTable(void);
-void            shutdown_mteTriggerBooleanTable(void);
 Netsnmp_Node_Handler mteTriggerBooleanTable_handler;
 
 /*
diff --git a/agent/mibgroup/disman/event/mteTriggerConf.c b/agent/mibgroup/disman/event/mteTriggerConf.c
index e7bb69b..767e85c 100644
--- a/agent/mibgroup/disman/event/mteTriggerConf.c
+++ b/agent/mibgroup/disman/event/mteTriggerConf.c
@@ -4,7 +4,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/agent_callbacks.h>
@@ -15,7 +14,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_require(iquery)
 
 /** Initializes the mteTriggerConf module */
 void
@@ -26,16 +24,13 @@ init_mteTriggerConf(void)
     /*
      * Register config handler for user-level (fixed) triggers ...
      */
-    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");
+    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");
 
     /*
      * ... for persistent storage of various event table entries ...
@@ -77,7 +72,7 @@ init_mteTriggerConf(void)
      * Find or create the specified trigger entry
      */
 struct mteTrigger *
-_find_mteTrigger_entry( const char *owner, char *tname )
+_find_mteTrigger_entry( char *owner, char *tname )
 {
     netsnmp_variable_list owner_var, tname_var;
     netsnmp_tdata_row *row;
@@ -106,7 +101,7 @@ _find_mteTrigger_entry( const char *owner, char *tname )
 }
 
 struct mteTrigger *
-_find_typed_mteTrigger_entry( const char *owner, char *tname, int type )
+_find_typed_mteTrigger_entry( char *owner, char *tname, int type )
 {
     struct mteTrigger *entry = _find_mteTrigger_entry( owner, tname );
     if (!entry)
@@ -145,11 +140,11 @@ _mteTrigger_callback_enable( int   majorID,    int   minorID,
 
 
 void
-parse_mteMonitor(const char *token, const char *line)
+parse_mteMonitor(const char *token, char *line)
 {
     char   buf[  SPRINT_MAX_LEN];
     char   tname[MTE_STR1_LEN+1];
-    const char  *cp;
+    char  *cp;
     long   test = 0;
 
     char   ename[MTE_STR1_LEN+1];
@@ -168,7 +163,7 @@ parse_mteMonitor(const char *token, const char *line)
     char   oid_name_buf[SPRINT_MAX_LEN];
     oid    name_buf[MAX_OID_LEN];
     size_t name_buf_len;
-    u_char op    = 0;
+    long   op    = 0;
     long   value = 0;
 
     struct mteObject  *object;
@@ -188,9 +183,9 @@ parse_mteMonitor(const char *token, const char *line)
     memset( buf,   0, sizeof(buf));
     memset( tname, 0, sizeof(tname));
     memset( ename, 0, sizeof(ename));
-    for (cp = copy_nword_const(line, buf, SPRINT_MAX_LEN);
+    for (cp = copy_nword(line, buf, SPRINT_MAX_LEN);
          ;
-         cp = copy_nword_const(cp,   buf, SPRINT_MAX_LEN)) {
+         cp = copy_nword(cp,   buf, SPRINT_MAX_LEN)) {
 
         if ( buf[0] == '-' ) {
             switch (buf[1]) {
@@ -203,7 +198,7 @@ parse_mteMonitor(const char *token, const char *line)
             case 'r':
             case 'u':
                 /* skip option parameter */
-                cp = skip_token_const( cp );
+                cp = skip_token( cp );
                 break;
             case 'D':
             case 'I':
@@ -217,7 +212,7 @@ parse_mteMonitor(const char *token, const char *line)
                  *      Handle either case.
                  */
                 if (cp && *cp != '-')
-                    cp = skip_token_const( cp );
+                    cp = skip_token( cp );
                 break;
             case '0':
             case '1':
@@ -281,7 +276,7 @@ parse_mteMonitor(const char *token, const char *line)
         * Otherwise the first token is the OID to be monitored.
         *   Skip it and look at the next token (if any).
         */
-        cp = copy_nword_const(cp,   buf, SPRINT_MAX_LEN);
+        cp = copy_nword(cp,   buf, SPRINT_MAX_LEN);
         if (cp) {
             /*
              * If this is a numeric value, then it'll be the MIN
@@ -289,7 +284,7 @@ parse_mteMonitor(const char *token, const char *line)
              * Otherwise it'll be the operation field of a
              *   boolean test (the third form)
              */
-            if ( isdigit((unsigned char)(buf[0])) || buf[0] == '-' )
+            if ( isdigit(buf[0]) || buf[0] == '-' )
                 test = MTE_TRIGGER_THRESHOLD;
             else
                 test = MTE_TRIGGER_BOOLEAN;
@@ -320,9 +315,9 @@ parse_mteMonitor(const char *token, const char *line)
      * Now start parsing again at the beginning of the directive,
      *   extracting the various options...
      */
-    for (cp = copy_nword_const(line, buf, SPRINT_MAX_LEN);
+    for (cp = copy_nword(line, buf, SPRINT_MAX_LEN);
          ;
-         cp = copy_nword_const(cp,   buf, SPRINT_MAX_LEN)) {
+         cp = copy_nword(cp,   buf, SPRINT_MAX_LEN)) {
 
         if (buf[0] == '-' ) {
             switch (buf[1]) {
@@ -337,7 +332,7 @@ parse_mteMonitor(const char *token, const char *line)
                 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_const(cp, oid_name_buf, MTE_STR1_LEN);
+                cp = copy_nword(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");
@@ -351,7 +346,7 @@ parse_mteMonitor(const char *token, const char *line)
                 break;
     
             case 'e':   /*  event */
-                cp     = copy_nword_const(cp, ename, MTE_STR1_LEN);
+                cp     = copy_nword(cp, ename, MTE_STR1_LEN);
                 break;
     
             case 'I':   /* value instance */
@@ -372,7 +367,7 @@ parse_mteMonitor(const char *token, const char *line)
                     continue;
                 }
                 idx++;
-                cp     = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
+                cp     = copy_nword(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);
@@ -384,7 +379,7 @@ parse_mteMonitor(const char *token, const char *line)
     
             case 'o':   /*  object  */
                 idx++;
-                cp     = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
+                cp     = copy_nword(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);
@@ -395,7 +390,7 @@ parse_mteMonitor(const char *token, const char *line)
                 break;
     
             case 'r':   /*  repeat frequency */
-                cp     = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
+                cp     = copy_nword(cp, buf, SPRINT_MAX_LEN);
                 repeat = strtoul(buf, NULL, 0);
                 break;
     
@@ -411,7 +406,7 @@ parse_mteMonitor(const char *token, const char *line)
                 break;
     
             case 'u':   /*  user */
-                cp     = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
+                cp     = copy_nword(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);
@@ -452,7 +447,7 @@ parse_mteMonitor(const char *token, const char *line)
                        } else {
                            op = MTE_EXIST_ABSENT;
                        }
-                       cp = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
+                       cp = copy_nword(cp, buf, SPRINT_MAX_LEN);
                     }
                     /*
                      * ... then extract the monitored OID.
@@ -470,7 +465,7 @@ parse_mteMonitor(const char *token, const char *line)
                      *   identify the boolean operator ...
                      */
                     memcpy(oid_name_buf, buf, SPRINT_MAX_LEN);
-                    cp = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
+                    cp = copy_nword(cp, buf, SPRINT_MAX_LEN);
                     if (buf[0] == '!') {
                        op = MTE_BOOL_UNEQUAL;
                     } else if (buf[0] == '=') {
@@ -492,10 +487,10 @@ parse_mteMonitor(const char *token, const char *line)
                      * ... then extract the comparison value.
                      *     (ignoring anything that remains)
                      */
-                    cp    = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
+                    cp    = copy_nword(cp, buf, SPRINT_MAX_LEN);
                     value = strtol(buf, NULL, 0);
                     cp = NULL;  /* To terminate the processing loop */
-                    DEBUGMSGTL(("disman:event:conf", "%s: Bool (%s, %d, %ld)\n",
+                    DEBUGMSGTL(("disman:event:conf", "%s: Bool (%s, %d, %d)\n",
                                               tname, oid_name_buf, op, value));
                     break;
     
@@ -506,7 +501,7 @@ parse_mteMonitor(const char *token, const char *line)
                      */
                     memcpy(oid_name_buf, buf, SPRINT_MAX_LEN);
                     memset(         buf,   0, SPRINT_MAX_LEN);
-                    cp  = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
+                    cp  = copy_nword(cp, buf, SPRINT_MAX_LEN);
                         value = strtol(buf, NULL, 0);
     
                     /*
@@ -515,7 +510,7 @@ parse_mteMonitor(const char *token, const char *line)
                     memset( buf, 0,  strlen(buf));
                     memcpy( buf, cp, strlen(cp));
                     cp = NULL;  /* To terminate the processing loop */
-                    DEBUGMSGTL(("disman:event:conf", "%s: Thresh (%s, %ld, %s)\n",
+                    DEBUGMSGTL(("disman:event:conf", "%s: Thresh (%s, %d, %s)\n",
                                               tname, oid_name_buf, value, buf));
                     break;
                 }
@@ -694,7 +689,7 @@ parse_mteMonitor(const char *token, const char *line)
             }
             value = strtol(cp, NULL, 0);
             entry->mteTThDFallValue  = value;
-            cp = skip_token_const(cp);
+            cp = skip_token(cp);
             value = strtol(cp, NULL, 0);
             entry->mteTThDRiseValue  = value;
             /*
@@ -734,7 +729,7 @@ parse_mteMonitor(const char *token, const char *line)
 }
 
 void
-parse_linkUpDown_traps(const char *token, const char *line)
+parse_linkUpDown_traps(const char *token, char *line)
 {
     /*
      * XXX - This isn't strictly correct according to the
@@ -753,7 +748,7 @@ parse_linkUpDown_traps(const char *token, const char *line)
 
 
 void
-parse_default_mteMonitors(const char *token, const char *line)
+parse_default_mteMonitors(const char *token, char *line)
 {
     if (strncmp( line, "yes", 3) == 0) {
         DEBUGMSGTL(("disman:event:conf", "Registering default monitors\n"));
@@ -1273,7 +1268,7 @@ int
 store_mteTTable(int majorID, int minorID, void *serverarg, void *clientarg)
 {
     char            line[SNMP_MAXBUF];
-    char           *cptr, *cp;
+    char           *cptr;
     void           *vp;
     size_t          tint;
     netsnmp_tdata_row *row;
@@ -1303,12 +1298,12 @@ store_mteTTable(int majorID, int minorID, void *serverarg, void *clientarg)
         strcat(line, "_mteTTable ");
         cptr = line + strlen(line);
 
-        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 );
+        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 );
         /*
          * ... (but skip the mteTriggerTest and
          *      assorted boolean flag fields)...
@@ -1316,16 +1311,16 @@ store_mteTTable(int majorID, int minorID, void *serverarg, void *clientarg)
         vp   = entry->mteTriggerValueID;
         tint = entry->mteTriggerValueID_len;
         cptr = read_config_store_data(   ASN_OBJECT_ID, 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 );
+        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 );
         tint = entry->mteTriggerFrequency;
         cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );
-        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 );
+        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 );
         tint = entry->flags &
                   (MTE_TRIGGER_FLAG_VWILD  |MTE_TRIGGER_FLAG_CWILD|
                    MTE_TRIGGER_FLAG_ENABLED|MTE_TRIGGER_FLAG_ACTIVE);
@@ -1342,10 +1337,10 @@ store_mteTTable(int majorID, int minorID, void *serverarg, void *clientarg)
             strcat(line, "_mteTDTable ");
             cptr = line + strlen(line);
 
-            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->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->mteDeltaDiscontID;
             tint = entry->mteDeltaDiscontID_len;
@@ -1367,24 +1362,24 @@ store_mteTTable(int majorID, int minorID, void *serverarg, void *clientarg)
             strcat(line, "_mteTExTable ");
             cptr = line + strlen(line);
 
-            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->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 );
 
             tint = (entry->mteTExTest    & 0xff) << 8;
             tint|= (entry->mteTExStartup & 0xff);
             cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );
 
-            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->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->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 );
+            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 );
 
             snmpd_store_config(line);
         }
@@ -1393,10 +1388,10 @@ store_mteTTable(int majorID, int minorID, void *serverarg, void *clientarg)
             strcat(line, "_mteTBlTable ");
             cptr = line + strlen(line);
 
-            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->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 );
 
             tint =  entry->mteTBoolComparison;
             tint |= (entry->flags & MTE_TRIGGER_FLAG_BSTART);
@@ -1404,15 +1399,15 @@ store_mteTTable(int majorID, int minorID, void *serverarg, void *clientarg)
             tint =  entry->mteTBoolValue;
             cptr = read_config_store_data(   ASN_INTEGER,   cptr, &tint, NULL );
 
-            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->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->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 );
+            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 );
 
             snmpd_store_config(line);
         }
@@ -1421,10 +1416,10 @@ store_mteTTable(int majorID, int minorID, void *serverarg, void *clientarg)
             strcat(line, "_mteTThTable ");
             cptr = line + strlen(line);
 
-            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->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 );
 
             cptr = read_config_store_data(ASN_UNSIGNED, cptr,
                                          &entry->mteTThStartup,    NULL );
@@ -1437,28 +1432,28 @@ store_mteTTable(int majorID, int minorID, void *serverarg, void *clientarg)
             cptr = read_config_store_data(ASN_INTEGER,  cptr,
                                          &entry->mteTThDFallValue, NULL );
 
-            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 );
-
-            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 );
-
-            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 );
+            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 );
+
+            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 );
+
+            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 );
 
             snmpd_store_config(line);
         }
diff --git a/agent/mibgroup/disman/event/mteTriggerConf.h b/agent/mibgroup/disman/event/mteTriggerConf.h
index bfbcfcb..560c3ea 100644
--- a/agent/mibgroup/disman/event/mteTriggerConf.h
+++ b/agent/mibgroup/disman/event/mteTriggerConf.h
@@ -7,9 +7,9 @@ config_require(utilities/iquery)
  * function declarations 
  */
 void            init_mteTriggerConf(void);
-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_mteMonitor( const char *, char *);
+void            parse_default_mteMonitors( const char *, char *);
+void            parse_linkUpDown_traps(const char *, char *);
 
 void            parse_mteTTable(  const char *, char *);
 void            parse_mteTDTable( const char *, char *);
diff --git a/agent/mibgroup/disman/event/mteTriggerDeltaTable.c b/agent/mibgroup/disman/event/mteTriggerDeltaTable.c
index c2c2e8e..cd21f6d 100644
--- a/agent/mibgroup/disman/event/mteTriggerDeltaTable.c
+++ b/agent/mibgroup/disman/event/mteTriggerDeltaTable.c
@@ -7,17 +7,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "disman/event/mteTrigger.h"
 #include "disman/event/mteTriggerDeltaTable.h"
 
-netsnmp_feature_require(table_tdata)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_oid)
-netsnmp_feature_require(check_vb_truthvalue)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 /** Initializes the mteTriggerDeltaTable module */
 void
@@ -27,7 +21,6 @@ init_mteTriggerDeltaTable(void)
     size_t      mteTDeltaTable_oid_len = OID_LENGTH(mteTDeltaTable_oid);
     netsnmp_handler_registration    *reg;
     netsnmp_table_registration_info *table_info;
-    int         rc;
 
     /*
      * Ensure the (combined) table container is available...
@@ -37,19 +30,11 @@ init_mteTriggerDeltaTable(void)
     /*
      * ... then set up the MIB interface to the mteTriggerDeltaTable slice
      */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     reg = netsnmp_create_handler_registration("mteTriggerDeltaTable",
                                             mteTriggerDeltaTable_handler,
                                             mteTDeltaTable_oid,
                                             mteTDeltaTable_oid_len,
                                             HANDLER_CAN_RWRITE);
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-    reg = netsnmp_create_handler_registration("mteTriggerDeltaTable",
-                                            mteTriggerDeltaTable_handler,
-                                            mteTDeltaTable_oid,
-                                            mteTDeltaTable_oid_len,
-                                            HANDLER_CAN_RONLY);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
     netsnmp_table_helper_add_indexes(table_info,
@@ -62,10 +47,7 @@ init_mteTriggerDeltaTable(void)
     table_info->max_column = COLUMN_MTETRIGGERDELTADISCONTINUITYIDTYPE;
 
     /* Register this using the (common) trigger_table_data container */
-    rc = netsnmp_tdata_register(reg, trigger_table_data, table_info);
-    if (rc != SNMPERR_SUCCESS)
-        return;
-    netsnmp_handler_owns_table_info(reg->handler->next);
+    netsnmp_tdata_register(reg, trigger_table_data, table_info);
     DEBUGMSGTL(("disman:event:init", "Trigger Delta Table\n"));
 }
 
@@ -92,9 +74,6 @@ mteTriggerDeltaTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_GET:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -103,10 +82,8 @@ mteTriggerDeltaTable_handler(netsnmp_mib_handler *handler,
              *   rows where the mteTriggerSampleType is 'deltaValue(2)'
              * So skip entries where this isn't the case.
              */
-            if (!entry || !(entry->flags & MTE_TRIGGER_FLAG_DELTA )) {
-                netsnmp_request_set_error(request, SNMP_NOSUCHINSTANCE);
+            if (!entry || !(entry->flags & MTE_TRIGGER_FLAG_DELTA ))
                 continue;
-            }
 
             switch (tinfo->colnum) {
             case COLUMN_MTETRIGGERDELTADISCONTINUITYID:
@@ -127,15 +104,11 @@ mteTriggerDeltaTable_handler(netsnmp_mib_handler *handler,
         }
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         /*
          * Write-support
          */
     case MODE_SET_RESERVE1:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -210,9 +183,6 @@ mteTriggerDeltaTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_ACTION:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             if (!entry) {
                 /*
@@ -233,9 +203,6 @@ mteTriggerDeltaTable_handler(netsnmp_mib_handler *handler,
          *  (reasonably) safe to apply them in the Commit phase
          */
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -267,7 +234,6 @@ mteTriggerDeltaTable_handler(netsnmp_mib_handler *handler,
             }
         }
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
     return SNMP_ERR_NOERROR;
 }
diff --git a/agent/mibgroup/disman/event/mteTriggerExistenceTable.c b/agent/mibgroup/disman/event/mteTriggerExistenceTable.c
index 22b683e..6974f41 100644
--- a/agent/mibgroup/disman/event/mteTriggerExistenceTable.c
+++ b/agent/mibgroup/disman/event/mteTriggerExistenceTable.c
@@ -7,18 +7,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "disman/event/mteTrigger.h"
 #include "disman/event/mteTriggerExistenceTable.h"
 
-netsnmp_feature_require(table_tdata)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_type_and_max_size)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-static netsnmp_table_registration_info *table_info;
 
 /* Initializes the mteTriggerExistenceTable module */
 void
@@ -27,7 +20,7 @@ init_mteTriggerExistenceTable(void)
     static oid mteTExistTable_oid[]   = { 1, 3, 6, 1, 2, 1, 88, 1, 2, 4 };
     size_t     mteTExistTable_oid_len = OID_LENGTH(mteTExistTable_oid);
     netsnmp_handler_registration    *reg;
-    int        rc;
+    netsnmp_table_registration_info *table_info;
 
     /*
      * Ensure the (combined) table container is available...
@@ -37,19 +30,11 @@ init_mteTriggerExistenceTable(void)
     /*
      * ... then set up the MIB interface to the mteTriggerExistenceTable slice
      */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     reg = netsnmp_create_handler_registration("mteTriggerExistenceTable",
                                             mteTriggerExistenceTable_handler,
                                             mteTExistTable_oid,
                                             mteTExistTable_oid_len,
                                             HANDLER_CAN_RWRITE);
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-    reg = netsnmp_create_handler_registration("mteTriggerExistenceTable",
-                                            mteTriggerExistenceTable_handler,
-                                            mteTExistTable_oid,
-                                            mteTExistTable_oid_len,
-                                            HANDLER_CAN_RONLY);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
     netsnmp_table_helper_add_indexes(table_info,
@@ -62,11 +47,7 @@ init_mteTriggerExistenceTable(void)
     table_info->max_column = COLUMN_MTETRIGGEREXISTENCEEVENT;
 
     /* Register this using the (common) trigger_table_data container */
-    rc = netsnmp_tdata_register(reg, trigger_table_data, table_info);
-    if (rc != SNMPERR_SUCCESS)
-        return;
-
-    netsnmp_handler_owns_table_info(reg->handler->next);
+    netsnmp_tdata_register(reg, trigger_table_data, table_info);
     DEBUGMSGTL(("disman:event:init", "Trigger Exist Table\n"));
 }
 
@@ -93,9 +74,6 @@ mteTriggerExistenceTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_GET:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -104,10 +82,8 @@ mteTriggerExistenceTable_handler(netsnmp_mib_handler *handler,
              *   rows where the mteTriggerTest 'existence(0)' bit is set.
              * So skip entries where this isn't the case.
              */
-            if (!entry || !(entry->mteTriggerTest & MTE_TRIGGER_EXISTENCE )) {
-                netsnmp_request_set_error(request, SNMP_NOSUCHINSTANCE);
+            if (!entry || !(entry->mteTriggerTest & MTE_TRIGGER_EXISTENCE ))
                 continue;
-            }
 
             switch (tinfo->colnum) {
             case COLUMN_MTETRIGGEREXISTENCETEST:
@@ -142,15 +118,11 @@ mteTriggerExistenceTable_handler(netsnmp_mib_handler *handler,
         }
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         /*
          * Write-support
          */
     case MODE_SET_RESERVE1:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -224,9 +196,6 @@ mteTriggerExistenceTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_ACTION:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             if (!entry) {
                 /*
@@ -248,9 +217,6 @@ mteTriggerExistenceTable_handler(netsnmp_mib_handler *handler,
          *  (reasonably) safe to apply them in the Commit phase
          */
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -284,7 +250,6 @@ mteTriggerExistenceTable_handler(netsnmp_mib_handler *handler,
             }
         }
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     }
     return SNMP_ERR_NOERROR;
 }
diff --git a/agent/mibgroup/disman/event/mteTriggerTable.c b/agent/mibgroup/disman/event/mteTriggerTable.c
index 88c2f8b..6d43d27 100644
--- a/agent/mibgroup/disman/event/mteTriggerTable.c
+++ b/agent/mibgroup/disman/event/mteTriggerTable.c
@@ -7,27 +7,12 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "utilities/iquery.h"
 #include "disman/event/mteTrigger.h"
 #include "disman/event/mteTriggerTable.h"
 
-netsnmp_feature_require(iquery)
-netsnmp_feature_require(table_tdata)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(iquery_pdu_session)
-netsnmp_feature_require(check_vb_type_and_max_size)
-netsnmp_feature_require(check_vb_oid)
-netsnmp_feature_require(check_vb_uint)
-netsnmp_feature_require(mtetrigger_removeentry)
-netsnmp_feature_require(check_vb_truthvalue)
-netsnmp_feature_require(table_tdata_insert_row)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-static netsnmp_table_registration_info *table_info;
 
 /** Initializes the mteTriggerTable module */
 void
@@ -36,6 +21,7 @@ init_mteTriggerTable(void)
     static oid  mteTriggerTable_oid[]   = { 1, 3, 6, 1, 2, 1, 88, 1, 2, 2 };
     size_t      mteTriggerTable_oid_len = OID_LENGTH(mteTriggerTable_oid);
     netsnmp_handler_registration    *reg;
+    netsnmp_table_registration_info *table_info;
 
     /*
      * Ensure the (combined) table container is available...
@@ -45,19 +31,11 @@ init_mteTriggerTable(void)
     /*
      * ... then set up the MIB interface to the mteTriggerTable slice
      */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     reg = netsnmp_create_handler_registration("mteTriggerTable",
                                             mteTriggerTable_handler,
                                             mteTriggerTable_oid,
                                             mteTriggerTable_oid_len,
                                             HANDLER_CAN_RWRITE);
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-    reg = netsnmp_create_handler_registration("mteTriggerTable",
-                                            mteTriggerTable_handler,
-                                            mteTriggerTable_oid,
-                                            mteTriggerTable_oid_len,
-                                            HANDLER_CAN_RONLY);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
     netsnmp_table_helper_add_indexes(table_info,
@@ -74,15 +52,6 @@ init_mteTriggerTable(void)
     DEBUGMSGTL(("disman:event:init", "Trigger Table\n"));
 }
 
-void
-shutdown_mteTriggerTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-}
-
 
 /** handles requests for the mteTriggerTable table */
 int
@@ -109,9 +78,6 @@ mteTriggerTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_GET:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -183,15 +149,11 @@ mteTriggerTable_handler(netsnmp_mib_handler *handler,
         }
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         /*
          * Write-support
          */
     case MODE_SET_RESERVE1:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -298,9 +260,6 @@ mteTriggerTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_RESERVE2:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
 
             switch (tinfo->colnum) {
@@ -333,9 +292,6 @@ mteTriggerTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_FREE:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
 
             switch (tinfo->colnum) {
@@ -361,9 +317,6 @@ mteTriggerTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_ACTION:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             if (!entry) {
@@ -388,9 +341,6 @@ mteTriggerTable_handler(netsnmp_mib_handler *handler,
          *  (reasonably) safe to apply them in the Commit phase
          */
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -495,14 +445,7 @@ mteTriggerTable_handler(netsnmp_mib_handler *handler,
                 break;
             }
         }
-
-        /** set up to save persistent store */
-        snmp_store_needed(NULL);
-
         break;
-
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
     }
     return SNMP_ERR_NOERROR;
 }
diff --git a/agent/mibgroup/disman/event/mteTriggerTable.h b/agent/mibgroup/disman/event/mteTriggerTable.h
index c5c393a..e382612 100644
--- a/agent/mibgroup/disman/event/mteTriggerTable.h
+++ b/agent/mibgroup/disman/event/mteTriggerTable.h
@@ -11,7 +11,6 @@ config_require(utilities/iquery)
  * function declarations 
  */
 void            init_mteTriggerTable(void);
-void            shutdown_mteTriggerTable(void);
 Netsnmp_Node_Handler mteTriggerTable_handler;
 
 /*
diff --git a/agent/mibgroup/disman/event/mteTriggerThresholdTable.c b/agent/mibgroup/disman/event/mteTriggerThresholdTable.c
index 5aed0c8..16b37e5 100644
--- a/agent/mibgroup/disman/event/mteTriggerThresholdTable.c
+++ b/agent/mibgroup/disman/event/mteTriggerThresholdTable.c
@@ -7,18 +7,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "disman/event/mteTrigger.h"
 #include "disman/event/mteTriggerThresholdTable.h"
 
-netsnmp_feature_require(table_tdata)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_type_and_max_size)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-static netsnmp_table_registration_info *table_info;
 
 /** Initializes the mteTriggerThresholdTable module */
 void
@@ -27,6 +20,7 @@ init_mteTriggerThresholdTable(void)
     static oid mteTThreshTable_oid[]   = { 1, 3, 6, 1, 2, 1, 88, 1, 2, 6 };
     size_t     mteTThreshTable_oid_len = OID_LENGTH(mteTThreshTable_oid);
     netsnmp_handler_registration    *reg;
+    netsnmp_table_registration_info *table_info;
 
     /*
      * Ensure the (combined) table container is available...
@@ -36,19 +30,11 @@ init_mteTriggerThresholdTable(void)
     /*
      * ... then set up the MIB interface to the mteTriggerThresholdTable slice
      */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     reg = netsnmp_create_handler_registration("mteTriggerThresholdTable",
                                             mteTriggerThresholdTable_handler,
                                             mteTThreshTable_oid,
                                             mteTThreshTable_oid_len,
                                             HANDLER_CAN_RWRITE);
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-    reg = netsnmp_create_handler_registration("mteTriggerThresholdTable",
-                                            mteTriggerThresholdTable_handler,
-                                            mteTThreshTable_oid,
-                                            mteTThreshTable_oid_len,
-                                            HANDLER_CAN_RONLY);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
     netsnmp_table_helper_add_indexes(table_info,
@@ -65,15 +51,6 @@ init_mteTriggerThresholdTable(void)
     DEBUGMSGTL(("disman:event:init", "Trigger Threshold Table\n"));
 }
 
-void
-shutdown_mteTriggerThresholdTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-}
-
 
 /** handles requests for the mteTriggerThresholdTable table */
 int
@@ -97,9 +74,6 @@ mteTriggerThresholdTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_GET:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -108,10 +82,8 @@ mteTriggerThresholdTable_handler(netsnmp_mib_handler *handler,
              *   rows where the mteTriggerTest 'threshold(2)' bit is set.
              * So skip entries where this isn't the case.
              */
-            if (!entry || !(entry->mteTriggerTest & MTE_TRIGGER_THRESHOLD )) {
-                netsnmp_request_set_error(request, SNMP_NOSUCHINSTANCE);
+            if (!entry || !(entry->mteTriggerTest & MTE_TRIGGER_THRESHOLD ))
                 continue;
-            }
 
             switch (tinfo->colnum) {
             case COLUMN_MTETRIGGERTHRESHOLDSTARTUP:
@@ -188,15 +160,11 @@ mteTriggerThresholdTable_handler(netsnmp_mib_handler *handler,
         }
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         /*
          * Write-support
          */
     case MODE_SET_RESERVE1:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -284,9 +252,6 @@ mteTriggerThresholdTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_ACTION:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             if (!entry) {
                 /*
@@ -307,9 +272,6 @@ mteTriggerThresholdTable_handler(netsnmp_mib_handler *handler,
          *  (reasonably) safe to apply them in the Commit phase
          */
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct mteTrigger *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
@@ -382,8 +344,6 @@ mteTriggerThresholdTable_handler(netsnmp_mib_handler *handler,
             }
         }
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
     }
     return SNMP_ERR_NOERROR;
 }
diff --git a/agent/mibgroup/disman/event/mteTriggerThresholdTable.h b/agent/mibgroup/disman/event/mteTriggerThresholdTable.h
index 80f5f2a..282cc67 100644
--- a/agent/mibgroup/disman/event/mteTriggerThresholdTable.h
+++ b/agent/mibgroup/disman/event/mteTriggerThresholdTable.h
@@ -9,7 +9,6 @@
  * function declarations 
  */
 void            init_mteTriggerThresholdTable(void);
-void            shutdown_mteTriggerThresholdTable(void);
 Netsnmp_Node_Handler mteTriggerThresholdTable_handler;
 
 /*
diff --git a/agent/mibgroup/disman/expr/expErrorTable.c b/agent/mibgroup/disman/expr/expErrorTable.c
index a759e2d..2604bc3 100644
--- a/agent/mibgroup/disman/expr/expErrorTable.c
+++ b/agent/mibgroup/disman/expr/expErrorTable.c
@@ -7,14 +7,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "disman/expr/expExpression.h"
 #include "disman/expr/expErrorTable.h"
 
-netsnmp_feature_require(table_tdata)
-
 /* Initializes the expExpressionErrorTable module */
 void
 init_expErrorTable(void)
@@ -51,7 +48,7 @@ init_expErrorTable(void)
 
     /* Register this using the (common) expr_table_data container */
     netsnmp_tdata_register(reg, expr_table_data, table_info);
-    DEBUGMSGTL(("disman:expr:init", "Expression Error Table container (%p)\n",
+    DEBUGMSGTL(("disman:expr:init", "Expression Error Table container (%x)\n",
                                      expr_table_data));
 }
 
@@ -77,9 +74,6 @@ expErrorTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_GET:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct expExpression *)
                     netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
diff --git a/agent/mibgroup/disman/expr/expExpression.c b/agent/mibgroup/disman/expr/expExpression.c
index c924141..aa618b7 100644
--- a/agent/mibgroup/disman/expr/expExpression.c
+++ b/agent/mibgroup/disman/expr/expExpression.c
@@ -21,7 +21,7 @@ init_expr_table_data(void)
     DEBUGMSGTL(("disman:expr:init", "init expression container\n"));
     if (!expr_table_data) {
          expr_table_data = netsnmp_tdata_create_table("expExpressionTable", 0);
-         DEBUGMSGTL(("disman:expr:init", "create expression container (%p)\n",
+         DEBUGMSGTL(("disman:expr:init", "create expression container (%x)\n",
                                           expr_table_data));
     }
 }
@@ -57,7 +57,7 @@ _mteExpr_dump(void)
         DEBUGMSG(("disman:expr:dump", "(%s, %s)",
                                          row->indexes->val.string,
                                          row->indexes->next_variable->val.string));
-        DEBUGMSG(("disman:expr:dump", ": %p, %p\n", row, entry));
+        DEBUGMSG(("disman:expr:dump", ": %x, %x\n", row, entry));
         i++;
     }
     DEBUGMSGTL(("disman:expr:dump", "ExpressionTable %d entries\n", i));
@@ -69,7 +69,7 @@ _mteExpr_dump(void)
  * Create a new row in the expression table 
  */
 struct expExpression *
-expExpression_createEntry(const char *expOwner, const char *expName, int fixed)
+expExpression_createEntry(char *expOwner, char *expName, int fixed)
 {
     netsnmp_tdata_row    *row;
 
@@ -79,7 +79,7 @@ expExpression_createEntry(const char *expOwner, const char *expName, int fixed)
  
 
 netsnmp_tdata_row *
-expExpression_createRow(const char *expOwner, const char *expName, int fixed)
+expExpression_createRow(char *expOwner, char *expName, int fixed)
 {
     struct expExpression *entry;
     netsnmp_tdata_row    *row;
@@ -155,16 +155,16 @@ expExpression_getFirstEntry( void )
 }
 
 struct expExpression *
-expExpression_getNextEntry(const  char *owner, const char *name )
+expExpression_getNextEntry( char *owner, char *name )
 {
     netsnmp_variable_list owner_var, name_var;
 
     memset(&owner_var, 0, sizeof(netsnmp_variable_list));
     memset(&name_var,  0, sizeof(netsnmp_variable_list));
     snmp_set_var_typed_value( &owner_var, ASN_OCTET_STR,
-                          (const u_char*)owner, strlen(owner));
+                          (u_char*)owner, strlen(owner));
     snmp_set_var_typed_value( &name_var,  ASN_OCTET_STR,
-                          (const u_char*)name,  strlen(name));
+                          (u_char*)name,  strlen(name));
     owner_var.next_variable = &name_var;
 
     return (struct expExpression *)
@@ -173,16 +173,16 @@ expExpression_getNextEntry(const  char *owner, const char *name )
 }
 
 struct expExpression *
-expExpression_getEntry(const char *owner, const char *name )
+expExpression_getEntry( char *owner, char *name )
 {
     netsnmp_variable_list owner_var, name_var;
 
     memset(&owner_var, 0, sizeof(netsnmp_variable_list));
     memset(&name_var,  0, sizeof(netsnmp_variable_list));
     snmp_set_var_typed_value( &owner_var, ASN_OCTET_STR,
-                          (const u_char*)owner, strlen(owner));
+                          (u_char*)owner, strlen(owner));
     snmp_set_var_typed_value( &name_var,  ASN_OCTET_STR,
-                          (const u_char*)name,  strlen(name));
+                          (u_char*)name,  strlen(name));
     owner_var.next_variable = &name_var;
 
     return (struct expExpression *)
diff --git a/agent/mibgroup/disman/expr/expExpression.h b/agent/mibgroup/disman/expr/expExpression.h
index 282e2bf..16ee80b 100644
--- a/agent/mibgroup/disman/expr/expExpression.h
+++ b/agent/mibgroup/disman/expr/expExpression.h
@@ -73,13 +73,13 @@ extern void      init_expr_table_data(void);
  */
 void             init_expExpression(void);
 
-struct expExpression *expExpression_createEntry(const char *, const char *, int);
-netsnmp_tdata_row    *expExpression_createRow(const char *, const char *, int);
+struct expExpression *expExpression_createEntry(   char *, char *, int);
+netsnmp_tdata_row    *expExpression_createRow(     char *, char *, int);
 void                  expExpression_removeEntry(   netsnmp_tdata_row *);
 
-struct expExpression *expExpression_getEntry(const char *, const char *);
+struct expExpression *expExpression_getEntry(      char *, char *);
 struct expExpression *expExpression_getFirstEntry( void );
-struct expExpression *expExpression_getNextEntry(const char *, const char *);
+struct expExpression *expExpression_getNextEntry(  char *, char *);
 
 void                  expExpression_enable(  struct expExpression *);
 void                  expExpression_disable( struct expExpression *);
diff --git a/agent/mibgroup/disman/expr/expExpressionConf.c b/agent/mibgroup/disman/expr/expExpressionConf.c
index 5c08c72..743ef9d 100644
--- a/agent/mibgroup/disman/expr/expExpressionConf.c
+++ b/agent/mibgroup/disman/expr/expExpressionConf.c
@@ -4,19 +4,13 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include <ctype.h>
-
 #include "utilities/iquery.h"
 #include "disman/expr/expExpression.h"
 #include "disman/expr/expObject.h"
 #include "disman/expr/expExpressionConf.h"
 
-netsnmp_feature_require(iquery)
-
 /* Initializes the expExpressionConf module */
 void
 init_expExpressionConf(void)
@@ -232,7 +226,7 @@ int
 store_expETable(int majorID, int minorID, void *serverarg, void *clientarg)
 {
     char                  line[SNMP_MAXBUF];
-    char                 *cptr, *cp;
+    char                 *cptr;
     void                 *vp;
     size_t                tint;
     netsnmp_tdata_row    *row;
@@ -262,17 +256,17 @@ store_expETable(int majorID, int minorID, void *serverarg, void *clientarg)
         strcat(line, "_expETable ");
         cptr = line + strlen(line);
 
-        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->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->expExpression;     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 );
         tint = entry->expValueType;
         cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );
-        cp   = entry->expComment;        tint = strlen( cp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
+        vp   = entry->expComment;        tint = strlen( vp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
         tint = entry->expDeltaInterval;
         cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );
 
diff --git a/agent/mibgroup/disman/expr/expExpressionTable.c b/agent/mibgroup/disman/expr/expExpressionTable.c
index 79aa715..c00ed49 100644
--- a/agent/mibgroup/disman/expr/expExpressionTable.c
+++ b/agent/mibgroup/disman/expr/expExpressionTable.c
@@ -7,21 +7,12 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "utilities/iquery.h"
 #include "disman/expr/expExpression.h"
 #include "disman/expr/expExpressionTable.h"
 
-netsnmp_feature_require(iquery)
-netsnmp_feature_require(table_tdata)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_type_and_max_size)
-netsnmp_feature_require(table_tdata_insert_row)
-netsnmp_feature_require(iquery_pdu_session)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
 /* Initializes the expExpressionTable module */
 void
 init_expExpressionTable(void)
@@ -58,7 +49,7 @@ init_expExpressionTable(void)
 
     /* Register this using the (common) expr_table_data container */
     netsnmp_tdata_register(reg, expr_table_data, table_info);
-    DEBUGMSGTL(("disman:expr:init", "Expression Table container (%p)\n",
+    DEBUGMSGTL(("disman:expr:init", "Expression Table container (%x)\n",
                                      expr_table_data));
 }
 
@@ -88,9 +79,6 @@ expExpressionTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_GET:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct expExpression *)
                     netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
@@ -153,9 +141,6 @@ expExpressionTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_SET_RESERVE1:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct expExpression *)
                 netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
@@ -210,9 +195,6 @@ expExpressionTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_RESERVE2:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
 
             switch (tinfo->colnum) {
@@ -245,9 +227,6 @@ expExpressionTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_FREE:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
 
             switch (tinfo->colnum) {
@@ -273,9 +252,6 @@ expExpressionTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_ACTION:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
             entry = (struct expExpression *)
                     netsnmp_tdata_extract_entry(request);
@@ -301,9 +277,6 @@ expExpressionTable_handler(netsnmp_mib_handler *handler,
          *  (reasonably) safe to apply them in the Commit phase
          */
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct expExpression *)
                 netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
diff --git a/agent/mibgroup/disman/expr/expObject.c b/agent/mibgroup/disman/expr/expObject.c
index c27437b..ddb071b 100644
--- a/agent/mibgroup/disman/expr/expObject.c
+++ b/agent/mibgroup/disman/expr/expObject.c
@@ -21,7 +21,7 @@ init_expObject_table_data(void)
     DEBUGMSGTL(("disman:expr:init", "init expObject container\n"));
     if (!expObject_table_data) {
          expObject_table_data = netsnmp_tdata_create_table("expObjectTable", 0);
-         DEBUGMSGTL(("disman:expr:init", "create expObject container (%p)\n",
+         DEBUGMSGTL(("disman:expr:init", "create expObject container (%x)\n",
                                           expObject_table_data));
     }
 }
@@ -38,7 +38,7 @@ init_expObject(void)
  * Create a new row in the object table 
  */
 struct expObject *
-expObject_createEntry(const char *expOwner, const char *expName, long expIndex, int fixed)
+expObject_createEntry(char *expOwner, char *expName, long expIndex, int fixed)
 {
     netsnmp_tdata_row *row;
 
@@ -47,7 +47,7 @@ expObject_createEntry(const char *expOwner, const char *expName, long expIndex,
 }
 
 netsnmp_tdata_row *
-expObject_createRow( const char *expOwner, const char *expName, long expIndex, int fixed)
+expObject_createRow( char *expOwner, char *expName, long expIndex, int fixed)
 {
     struct expObject  *entry;
     netsnmp_tdata_row *row;
@@ -121,7 +121,7 @@ expObject_removeEntry(netsnmp_tdata_row * row)
 
 
 netsnmp_tdata_row *
-expObject_getFirst( const char *expOwner, const char *expName )
+expObject_getFirst( char *expOwner, char *expName )
 {
     netsnmp_tdata_row *row;
     struct expObject  *entry;
@@ -138,9 +138,9 @@ expObject_getFirst( const char *expOwner, const char *expName )
     memset(&owner_var, 0, sizeof(netsnmp_variable_list));
     memset(&name_var,  0, sizeof(netsnmp_variable_list));
     snmp_set_var_typed_value( &owner_var, ASN_OCTET_STR,
-                       (const u_char*)expOwner, strlen(expOwner));
+                       (u_char*)expOwner, strlen(expOwner));
     snmp_set_var_typed_value( &name_var,  ASN_OCTET_STR,
-                       (const u_char*)expName,  strlen(expName));
+                       (u_char*)expName,  strlen(expName));
     owner_var.next_variable = &name_var;
     row = netsnmp_tdata_row_next_byidx( expObject_table_data, &owner_var );
 
@@ -240,6 +240,7 @@ void
 expObject_getData( struct expExpression  *expr, struct expObject  *obj )
 {
     netsnmp_variable_list *var;
+    int res;
 
     /*
      * Retrieve and store the basic object value(s)
@@ -278,7 +279,7 @@ expObject_getData( struct expExpression  *expr, struct expObject  *obj )
                                        expr->expPrefix_len,
                                        expr->pvars );
         }
-        netsnmp_query_get( var, expr->session );
+        res = netsnmp_query_get( var, expr->session );
     }
     
     if ( obj->expObjectSampleType != EXPSAMPLETYPE_ABSOLUTE ) {
@@ -311,7 +312,7 @@ expObject_getData( struct expExpression  *expr, struct expObject  *obj )
         else
             var = _expObject_buildList( obj->expObjDeltaD,
                                         obj->expObjDeltaD_len, 0, NULL );
-        netsnmp_query_get( var, expr->session );
+        res = netsnmp_query_get( var, expr->session );
         if ( obj->old_dvars )
             snmp_free_varbind( obj->old_dvars );
         obj->old_dvars = obj->dvars;
@@ -337,7 +338,7 @@ expObject_getData( struct expExpression  *expr, struct expObject  *obj )
          *
          *    (The MIB description seems bogus?)
          */
-        netsnmp_query_get( var, expr->session );
+        res = netsnmp_query_get( var, expr->session );
         if ( obj->cvars )
             snmp_free_varbind( obj->cvars );
         obj->cvars = var;
diff --git a/agent/mibgroup/disman/expr/expObject.h b/agent/mibgroup/disman/expr/expObject.h
index c62158a..5b386c2 100644
--- a/agent/mibgroup/disman/expr/expObject.h
+++ b/agent/mibgroup/disman/expr/expObject.h
@@ -66,11 +66,11 @@ void             init_expObject_table_data(void);
  * function declarations 
  */
 void             init_expObject(void);
-struct expObject  * expObject_createEntry( const char *, const char *, long, int );
-netsnmp_tdata_row * expObject_createRow(   const char *, const char *, long, int );
+struct expObject  * expObject_createEntry( char *, char *, long, int );
+netsnmp_tdata_row * expObject_createRow(   char *, char *, long, int );
 void                expObject_removeEntry( netsnmp_tdata_row * );
 
-netsnmp_tdata_row * expObject_getFirst( const char *, const char * );
+netsnmp_tdata_row * expObject_getFirst( char *, char * );
 netsnmp_tdata_row * expObject_getNext(  netsnmp_tdata_row * );
 void                expObject_getData( struct expExpression *,
                                        struct expObject * );
diff --git a/agent/mibgroup/disman/expr/expObjectConf.c b/agent/mibgroup/disman/expr/expObjectConf.c
index 64069d9..bac3782 100644
--- a/agent/mibgroup/disman/expr/expObjectConf.c
+++ b/agent/mibgroup/disman/expr/expObjectConf.c
@@ -4,15 +4,12 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "utilities/iquery.h"
 #include "disman/expr/expObject.h"
 #include "disman/expr/expObjectConf.h"
 
-netsnmp_feature_require(iquery)
-
 /* Initializes the expObjectConf module */
 void
 init_expObjectConf(void)
@@ -99,7 +96,7 @@ parse_expOTable(const char *token, char *line)
     line  = read_config_read_data(ASN_UNSIGNED,  line, &idx, NULL);
     entry = expObject_createEntry( owner, oname, idx, 0 );
 
-    DEBUGMSG(("disman:expr:conf", "(%s, %s, %ld) ", owner, oname, idx));
+    DEBUGMSG(("disman:expr:conf", "(%s, %s, %d) ", owner, oname, idx));
     
     /*
      * Read in the accessible column values.
@@ -118,7 +115,7 @@ int
 store_expOTable(int majorID, int minorID, void *serverarg, void *clientarg)
 {
     char                  line[SNMP_MAXBUF];
-    char                 *cptr, *cp;
+    char                 *cptr;
     void                 *vp;
     size_t                tint;
     netsnmp_tdata_row    *row;
@@ -138,7 +135,7 @@ store_expOTable(int majorID, int minorID, void *serverarg, void *clientarg)
         if ( entry->flags & EXP_OBJ_FLAG_FIXED )
             continue;
 
-        DEBUGMSGTL(("disman:expr:conf", "  Storing (%s %s %lu)\n",
+        DEBUGMSGTL(("disman:expr:conf", "  Storing (%s %s %d)\n",
                     entry->expOwner, entry->expName, entry->expObjectIndex));
 
         /*
@@ -148,10 +145,10 @@ store_expOTable(int majorID, int minorID, void *serverarg, void *clientarg)
         strcat(line, "_expOTable ");
         cptr = line + strlen(line);
 
-        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->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 );
         tint = entry->expObjectIndex;
         cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );
 
diff --git a/agent/mibgroup/disman/expr/expObjectTable.c b/agent/mibgroup/disman/expr/expObjectTable.c
index adda438..e5c189f 100644
--- a/agent/mibgroup/disman/expr/expObjectTable.c
+++ b/agent/mibgroup/disman/expr/expObjectTable.c
@@ -7,18 +7,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "disman/expr/expObject.h"
 #include "disman/expr/expObjectTable.h"
 
-netsnmp_feature_require(table_tdata)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_oid)
-netsnmp_feature_require(check_vb_truthvalue)
-netsnmp_feature_require(table_tdata_insert_row)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 /* Initializes the expObjectTable module */
 void
@@ -58,7 +51,7 @@ init_expObjectTable(void)
 
     /* Register this using the common expObject_table_data container */
     netsnmp_tdata_register(reg, expObject_table_data, table_info);
-    DEBUGMSGTL(("disman:expr:init", "Expression Object Table container (%p)\n",
+    DEBUGMSGTL(("disman:expr:init", "Expression Object Table container (%x)\n",
                                      expObject_table_data));
 }
 
@@ -90,9 +83,6 @@ expObjectTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_GET:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct expObject *)netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
             if (!entry || !(entry->flags & EXP_OBJ_FLAG_VALID))
@@ -162,9 +152,6 @@ expObjectTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_SET_RESERVE1:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct expObject *)
                 netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
@@ -217,9 +204,6 @@ expObjectTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_RESERVE2:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
 
             switch (tinfo->colnum) {
@@ -254,9 +238,6 @@ expObjectTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_FREE:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
 
             switch (tinfo->colnum) {
@@ -282,9 +263,6 @@ expObjectTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_ACTION:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
             entry = (struct expObject *)
                     netsnmp_tdata_extract_entry(request);
@@ -311,9 +289,6 @@ expObjectTable_handler(netsnmp_mib_handler *handler,
          */
         ret = 0;  /* Flag to re-check expExpressionPrefix settings */
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct expObject *) netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info(request);
 
diff --git a/agent/mibgroup/disman/expr/expValue.c b/agent/mibgroup/disman/expr/expValue.c
index 46638f2..98f1c50 100644
--- a/agent/mibgroup/disman/expr/expValue.c
+++ b/agent/mibgroup/disman/expr/expValue.c
@@ -503,7 +503,7 @@ DIGIT:
                 var->data = (void *)(cp1 - exprRaw);
                 return var;
             }
-            n = ops[ *cp1 & 0xFF ];
+            n = ops[ *cp1 ];
             DEBUGMSGTL(("disman:expr:eval", "Binary operator %c (%d)\n", *cp1, n));
             var = snmp_varlist_add_variable( &exprAlDente, NULL, 0,
                                              ASN_INTEGER,
@@ -538,7 +538,7 @@ DIGIT:
             else if ( *(cp1+1) == *cp1 )
                 n = ops[ *cp1++ - 30];
             else
-                n = ops[ *cp1 & 0xFF ];
+                n = ops[ *cp1 ];
             var = snmp_varlist_add_variable( &exprAlDente, NULL, 0,
                                              ASN_INTEGER,
                                              (u_char*)&n, sizeof(n));
@@ -615,7 +615,7 @@ _expValue_evalExpr2( netsnmp_variable_list *exprAlD )
     DEBUGIF(( "disman:expr:eval2")) {
         for (vp = exprAlD; vp; vp=vp->next_variable) {
             if ( vp->type == ASN_PRIV_OPERATOR )
-                DEBUGMSGTL(( "disman:expr:eval2", "Operator %ld\n",
+                DEBUGMSGTL(( "disman:expr:eval2", "Operator %d\n",
                                                   *vp->val.integer));
             else if ( vp->type == ASN_PRIV_FUNCTION )
                 DEBUGMSGTL(( "disman:expr:eval2", "Function %s\n",
diff --git a/agent/mibgroup/disman/expr/expValueTable.c b/agent/mibgroup/disman/expr/expValueTable.c
index d74dbd1..3c36f38 100644
--- a/agent/mibgroup/disman/expr/expValueTable.c
+++ b/agent/mibgroup/disman/expr/expValueTable.c
@@ -59,7 +59,7 @@ expValueTable_getEntry(netsnmp_variable_list * indexes,
     if (!indexes || !indexes->next_variable ||
         !indexes->next_variable->next_variable ) {
         /* XXX - Shouldn't happen! */
-        return NULL;
+        return 0;
     }
 
     DEBUGMSGTL(( "disman:expr:val", "get (%d) entry (%s, %s, ", mode,
@@ -78,7 +78,7 @@ expValueTable_getEntry(netsnmp_variable_list * indexes,
          */
         if (mode == MODE_GETNEXT || mode == MODE_GETBULK) {
             exp = expExpression_getFirstEntry();
-            DEBUGMSGTL(( "disman:expr:val", "first entry (%p)\n", exp ));
+            DEBUGMSGTL(( "disman:expr:val", "first entry (%x)\n", exp ));
         } else {
             DEBUGMSGTL(( "disman:expr:val", "incomplete request\n" ));
             return NULL;        /* No match */
@@ -86,7 +86,7 @@ expValueTable_getEntry(netsnmp_variable_list * indexes,
     } else {
         exp = expExpression_getEntry( (char*)indexes->val.string,
                                       (char*)indexes->next_variable->val.string);
-        DEBUGMSGTL(( "disman:expr:val", "using entry (%p)\n", exp ));
+        DEBUGMSGTL(( "disman:expr:val", "using entry (%x)\n", exp ));
     }
 
     /*
@@ -95,13 +95,13 @@ expValueTable_getEntry(netsnmp_variable_list * indexes,
      */
     while (exp && exp->expValueType != type) {
         if (mode != MODE_GETNEXT && mode != MODE_GETBULK) {
-            DEBUGMSGTL(( "disman:expr:val", "wrong type (%d != %ld)\n",
+            DEBUGMSGTL(( "disman:expr:val", "wrong type (%d != %d)\n",
                           type, (exp ? exp->expValueType : 0 )));
             return NULL;        /* Wrong type */
         }
 NEXT_EXP:
         exp = expExpression_getNextEntry( exp->expOwner, exp->expName );
-        DEBUGMSGTL(( "disman:expr:val", "using next entry (%p)\n", exp ));
+        DEBUGMSGTL(( "disman:expr:val", "using next entry (%x)\n", exp ));
     }
     if (!exp) {
         DEBUGMSGTL(( "disman:expr:val", "no more entries\n"));
@@ -124,7 +124,7 @@ NEXT_EXP:
         }
         if ( vp->val.objid[0] != 0 ) {
             DEBUGMSGTL(( "disman:expr:val",
-                         "non-zero instance (%" NETSNMP_PRIo "d)\n", vp->val.objid[0]));
+                         "non-zero instance (%d)\n", vp->val.objid[0]));
             return NULL;  /* Invalid instance */
         }
 
@@ -140,7 +140,7 @@ NEXT_EXP:
                 return NULL;
             }
             res = expValue_evaluateExpression( exp, NULL, 0 );
-            DEBUGMSGTL(( "disman:expr:val", "scalar get returned (%p)\n", res));
+            DEBUGMSGTL(( "disman:expr:val", "scalar get returned (%x)\n", res));
         } else {
             /*
              * Otherwise, skip the leading '.0' and use
@@ -148,7 +148,7 @@ NEXT_EXP:
              */
             res = expValue_evaluateExpression( exp, vp->val.objid+1,
                                            vp->val_len/sizeof(oid)-1);
-            DEBUGMSGTL(( "disman:expr:val", "w/card get returned (%p)\n", res));
+            DEBUGMSGTL(( "disman:expr:val", "w/card get returned (%x)\n", res));
         }
     } else {
         /*
@@ -158,7 +158,7 @@ NEXT_EXP:
          */
         if ( vp->val_len > 0 && vp->val.objid[0] != 0 ) {
             DEBUGMSGTL(( "disman:expr:val",
-                         "non-zero next instance (%" NETSNMP_PRIo "d)\n", vp->val.objid[0]));
+                         "non-zero next instance (%d)\n", vp->val.objid[0]));
             return NULL;        /* All valid instances start with .0 */
         }
         plen = exp->expPrefix_len;
@@ -187,7 +187,7 @@ NEXT_EXP:
             snmp_set_var_typed_value( vp, ASN_PRIV_IMPLIED_OBJECT_ID,
                        (u_char*)nullInstance, 3*sizeof(oid));
             res = expValue_evaluateExpression( exp, NULL, 0 );
-            DEBUGMSGTL(( "disman:expr:val", "scalar next returned (%p)\n", res));
+            DEBUGMSGTL(( "disman:expr:val", "scalar next returned (%x)\n", res));
         } else {
             /*
              * Now comes the interesting case - finding the
@@ -231,11 +231,9 @@ NEXT_EXP:
                 len = vp2->name_length - exp->expPrefix_len;
                 snmp_set_var_typed_value( vp, ASN_PRIV_IMPLIED_OBJECT_ID,
                       (u_char*)(vp2->name+exp->expPrefix_len), len);
-            } else {
-                len = 1;
             }
             res = expValue_evaluateExpression( exp, vp->val.objid+1, len-1);
-            DEBUGMSGTL(( "disman:expr:val", "w/card next returned (%p)\n", res));
+            DEBUGMSGTL(( "disman:expr:val", "w/card next returned (%x)\n", res));
         }
     }
     return res;
diff --git a/agent/mibgroup/disman/expr/exp_enum.h b/agent/mibgroup/disman/expr/exp_enum.h
old mode 100644
new mode 100755
diff --git a/agent/mibgroup/disman/expression/expErrorTable.c b/agent/mibgroup/disman/expression/expErrorTable.c
index 1feb3ee..b7b257e 100644
--- a/agent/mibgroup/disman/expression/expErrorTable.c
+++ b/agent/mibgroup/disman/expression/expErrorTable.c
@@ -66,17 +66,13 @@ struct variable2 expErrorTable_variables[] = {
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define	EXPERRORTIME  1
-    {EXPERRORTIME,  ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_expErrorTable, 2, {1, 1}},
+    {EXPERRORTIME,  ASN_UNSIGNED, RONLY, var_expErrorTable, 2, {1, 1}},
 #define	EXPERRORINDEX 2
-    {EXPERRORINDEX, ASN_INTEGER,  NETSNMP_OLDAPI_RONLY,
-     var_expErrorTable, 2, {1, 2}},
+    {EXPERRORINDEX, ASN_INTEGER,  RONLY, var_expErrorTable, 2, {1, 2}},
 #define	EXPERRORCODE 3
-    {EXPERRORCODE,  ASN_INTEGER,  NETSNMP_OLDAPI_RONLY,
-     var_expErrorTable, 2, {1, 3}},
+    {EXPERRORCODE,  ASN_INTEGER,  RONLY, var_expErrorTable, 2, {1, 3}},
 #define	EXPERRORINSTANCE 4
-    {EXPERRORINSTANCE, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_expErrorTable, 2, {1, 4}}
+    {EXPERRORINSTANCE, ASN_OBJECT_ID, RONLY, var_expErrorTable, 2, {1, 4}}
 };
 
 extern struct header_complex_index *expExpressionTableStorage;
@@ -139,6 +135,4 @@ var_expErrorTable(struct variable *vp,
         *var_len = StorageTmp->expErrorInstanceLen * sizeof(oid);
         return (u_char *) StorageTmp->expErrorInstance;
     }
-
-    return NULL;
 }
diff --git a/agent/mibgroup/disman/expression/expExpressionTable.c b/agent/mibgroup/disman/expression/expExpressionTable.c
index ce3b0db..f6f7d8d 100644
--- a/agent/mibgroup/disman/expression/expExpressionTable.c
+++ b/agent/mibgroup/disman/expression/expExpressionTable.c
@@ -21,7 +21,6 @@
  * This should always be included first before anything else 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -46,10 +45,6 @@
 #include "expObjectTable.h"
 #include "expValueTable.h"
 
-netsnmp_feature_require(tdomain_support)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(header_complex_find_entry)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 /*
  * expExpressionTable_variables_oid:
@@ -70,26 +65,19 @@ struct variable2 expExpressionTable_variables[] = {
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define	EXPEXPRESSION  3
-    {EXPEXPRESSION,          ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_expExpressionTable, 2, {1, 3}},
+    {EXPEXPRESSION,          ASN_OCTET_STR, RWRITE, var_expExpressionTable, 2, {1, 3}},
 #define	EXPEXPRESSIONVALUETYPE 4
-    {EXPEXPRESSIONVALUETYPE, ASN_INTEGER,   NETSNMP_OLDAPI_RWRITE,
-     var_expExpressionTable, 2, {1, 4}},
+    {EXPEXPRESSIONVALUETYPE, ASN_INTEGER,   RWRITE, var_expExpressionTable, 2, {1, 4}},
 #define	EXPEXPRESSIONCOMMENT 5
-    {EXPEXPRESSIONCOMMENT,   ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_expExpressionTable, 2, {1, 5}},
+    {EXPEXPRESSIONCOMMENT,   ASN_OCTET_STR, RWRITE, var_expExpressionTable, 2, {1, 5}},
 #define	EXPEXPRESSIONDELTALNTERVAL 6
-    {EXPEXPRESSIONDELTALNTERVAL, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_expExpressionTable, 2, {1, 6}},
+    {EXPEXPRESSIONDELTALNTERVAL, ASN_INTEGER, RWRITE, var_expExpressionTable, 2, {1, 6}},
 #define	EXPEXPRESSIONPREFIX 7
-    {EXPEXPRESSIONPREFIX,    ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_expExpressionTable, 2, {1, 7}},
+    {EXPEXPRESSIONPREFIX,    ASN_OBJECT_ID, RONLY,  var_expExpressionTable, 2, {1, 7}},
 #define	EXPEXPRESSIONERRORS 8
-    {EXPEXPRESSIONERRORS,    ASN_UNSIGNED,  NETSNMP_OLDAPI_RONLY,
-     var_expExpressionTable, 2, {1, 8}},
+    {EXPEXPRESSIONERRORS,    ASN_UNSIGNED,  RONLY,  var_expExpressionTable, 2, {1, 8}},
 #define	EXPEXPRESSIONENTRYSTATUS  9
-    {EXPEXPRESSIONENTRYSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_expExpressionTable, 2, {1, 9}}
+    {EXPEXPRESSIONENTRYSTATUS, ASN_INTEGER, RWRITE, var_expExpressionTable, 2, {1, 9}}
 };
 
 /*
@@ -323,7 +311,9 @@ store_expExpressionTable(int majorID, int minorID, void *serverarg,
     char           *cptr;
     size_t          tmpint;
     struct expExpressionTable_data *StorageTmp;
-    struct header_complex_index *hcindex;
+    struct expObjectTable_data *ObjectStorageTmp;
+    struct expValueTable_data *ValueStorageTmp;
+    struct header_complex_index *hcindex, *hc_object, *hc_value;
 
     DEBUGMSGTL(("expExpressionTable", "storing data...  "));
 
@@ -585,7 +575,6 @@ write_expExpression(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -670,7 +659,6 @@ write_expExpressionValueType(int action,
          * 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;
@@ -760,7 +748,6 @@ write_expExpressionComment(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -845,7 +832,6 @@ write_expExpressionDeltaInterval(int action,
          * 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;
@@ -1170,7 +1156,6 @@ write_expExpressionEntryStatus(int action,
                 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 e56f25a..6de4bf5 100644
--- a/agent/mibgroup/disman/expression/expObjectTable.c
+++ b/agent/mibgroup/disman/expression/expObjectTable.c
@@ -22,7 +22,6 @@
  * This should always be included first before anything else 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -35,9 +34,6 @@
 #include <limits.h>
 #endif
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(header_complex_find_entry)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 /*
  * minimal include directives 
@@ -70,32 +66,23 @@ struct variable2 expObjectTable_variables[] = {
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define	EXPOBJECTID  2
-    {EXPOBJECTID,         ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
-     var_expObjectTable, 2, {1, 2}},
+    {EXPOBJECTID,         ASN_OBJECT_ID, RWRITE, var_expObjectTable, 2, {1, 2}},
 #define	EXPOBJECTIDWILDCARD 3
-    {EXPOBJECTIDWILDCARD, ASN_INTEGER,   NETSNMP_OLDAPI_RWRITE,
-     var_expObjectTable, 2, {1, 3}},
+    {EXPOBJECTIDWILDCARD, ASN_INTEGER,   RWRITE, var_expObjectTable, 2, {1, 3}},
 #define	EXPOBJECTSAMPLETYPE 4
-    {EXPOBJECTSAMPLETYPE, ASN_INTEGER,   NETSNMP_OLDAPI_RWRITE,
-     var_expObjectTable, 2, {1, 4}},
+    {EXPOBJECTSAMPLETYPE, ASN_INTEGER,   RWRITE, var_expObjectTable, 2, {1, 4}},
 #define	EXPOBJECTDELTADISCONTINUITYID 5
-    {EXPOBJECTDELTADISCONTINUITYID,  ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
-     var_expObjectTable, 2, {1, 5}},
+    {EXPOBJECTDELTADISCONTINUITYID,  ASN_OBJECT_ID, RWRITE, var_expObjectTable, 2, {1, 5}},
 #define	EXPOBJECTDISCONTINUITYIDWILDCARD 6
-    {EXPOBJECTDISCONTINUITYIDWILDCARD, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_expObjectTable, 2, {1, 6}},
+    {EXPOBJECTDISCONTINUITYIDWILDCARD, ASN_INTEGER, RWRITE, var_expObjectTable, 2, {1, 6}},
 #define	EXPOBJECTDISCONTINUITYIDTYPE 7
-    {EXPOBJECTDISCONTINUITYIDTYPE,     ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_expObjectTable, 2, {1, 7}},
+    {EXPOBJECTDISCONTINUITYIDTYPE,     ASN_INTEGER, RWRITE, var_expObjectTable, 2, {1, 7}},
 #define	EXPOBJECTCONDITIONAL  8
-    {EXPOBJECTCONDITIONAL, ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
-     var_expObjectTable, 2, {1, 8}},
+    {EXPOBJECTCONDITIONAL, ASN_OBJECT_ID, RWRITE, var_expObjectTable, 2, {1, 8}},
 #define	EXPOBJECTCONDITIONALWILDCARD  9
-    {EXPOBJECTCONDITIONALWILDCARD,     ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_expObjectTable, 2, {1, 9}},
+    {EXPOBJECTCONDITIONALWILDCARD,     ASN_INTEGER, RWRITE, var_expObjectTable, 2, {1, 9}},
 #define	EXPOBJECTENTRYSTATUS  10
-    {EXPOBJECTENTRYSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_expObjectTable, 2, {1, 10}}
+    {EXPOBJECTENTRYSTATUS, ASN_INTEGER, RWRITE, var_expObjectTable, 2, {1, 10}}
 };
 
 
@@ -221,6 +208,7 @@ void
 parse_expObjectTable(const char *token, char *line)
 {
     size_t          tmpint;
+    oid            *tmpoid = NULL;
     struct expObjectTable_data *StorageTmp =
         SNMP_MALLOC_STRUCT(expObjectTable_data);
 
@@ -407,7 +395,6 @@ store_expObjectTable(int majorID, int minorID, void *serverarg,
         }
     }
     DEBUGMSGTL(("expObjectTable", "storage done\n"));
-    return 0;
 }
 
 
@@ -579,7 +566,6 @@ write_expObjectID(int action,
          * previous values, as these are from a different object?  
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -660,7 +646,6 @@ write_expObjectIDWildcard(int action,
          * 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;
@@ -742,7 +727,7 @@ write_expObjectSampleType(int action,
          * 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;
@@ -839,7 +824,6 @@ write_expObjectDeltaDiscontinuityID(int action,
          * previous values, as these are from a different object?  
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -923,7 +907,7 @@ write_expObjectDiscontinuityIDWildcard(int action,
          * 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;
@@ -1007,7 +991,7 @@ write_expObjectDiscontinuityIDType(int action,
          * 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;
@@ -1102,7 +1086,6 @@ write_expObjectConditional(int action,
          * previous values, as these are from a different object?  
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1187,7 +1170,7 @@ write_expObjectConditionalWildcard(int action,
          * 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;
@@ -1458,7 +1441,6 @@ write_expObjectEntryStatus(int action,
                 StorageTmp->expObjectEntryStatus = RS_NOTINSERVICE;
             }
         }
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/disman/expression/expValueTable.c b/agent/mibgroup/disman/expression/expValueTable.c
index 6b315c6..7cc3eb3 100644
--- a/agent/mibgroup/disman/expression/expValueTable.c
+++ b/agent/mibgroup/disman/expression/expValueTable.c
@@ -76,29 +76,21 @@ struct variable2 expValueTable_variables[] = {
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define	EXPVALUECOUNTER32VAL 2
-    {EXPVALUECOUNTER32VAL,  ASN_COUNTER,  NETSNMP_OLDAPI_RONLY,
-     var_expValueTable, 2, {1, 2}},
+    {EXPVALUECOUNTER32VAL,  ASN_COUNTER,  RONLY, var_expValueTable, 2, {1, 2}},
 #define	EXPVALUEUNSIGNED32VAL 3
-    {EXPVALUEUNSIGNED32VAL, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_expValueTable, 2, {1, 3}},
+    {EXPVALUEUNSIGNED32VAL, ASN_UNSIGNED, RONLY, var_expValueTable, 2, {1, 3}},
 #define	EXPVALUETIMETICKSVAL 4
-    {EXPVALUETIMETICKSVAL,  ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_expValueTable, 2, {1, 4}},
+    {EXPVALUETIMETICKSVAL,  ASN_UNSIGNED, RONLY, var_expValueTable, 2, {1, 4}},
 #define	EXPVALUEINTEGER32VAL 5
-    {EXPVALUEINTEGER32VAL,  ASN_INTEGER,  NETSNMP_OLDAPI_RONLY,
-     var_expValueTable, 2, {1, 5}},
+    {EXPVALUEINTEGER32VAL,  ASN_INTEGER,  RONLY, var_expValueTable, 2, {1, 5}},
 #define	EXPVALUEIPADDRESSVAL 6
-    {EXPVALUEIPADDRESSVAL, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_expValueTable, 2, {1, 6}},
+    {EXPVALUEIPADDRESSVAL, ASN_IPADDRESS, RONLY, var_expValueTable, 2, {1, 6}},
 #define	EXPVALUEOCTETSTRINGVAL 7
-    {EXPVALUEOCTETSTRINGVAL, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_expValueTable, 2, {1, 7}},
+    {EXPVALUEOCTETSTRINGVAL, ASN_OCTET_STR, RONLY, var_expValueTable, 2, {1, 7}},
 #define	EXPVALUEOIDVAL  8
-    {EXPVALUEOIDVAL,       ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_expValueTable, 2, {1, 8}},
+    {EXPVALUEOIDVAL,       ASN_OBJECT_ID, RONLY, var_expValueTable, 2, {1, 8}},
 #define	EXPVALUECOUNTER64VAL  9
-    {EXPVALUECOUNTER64VAL, ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_expValueTable, 2, {1, 9}}
+    {EXPVALUECOUNTER64VAL, ASN_INTEGER,   RONLY, var_expValueTable, 2, {1, 9}}
 };
 
 
@@ -133,7 +125,7 @@ init_expValueTable(void)
      * Initialize a "session" that defines who we're going to talk to
      */
     snmp_sess_init(&session);   /* set up defaults */
-    session.peername = strdup("localhost");
+    session.peername = "localhost";
 
     DEBUGMSGTL(("expValueTable", "done.\n"));
 }
@@ -245,6 +237,7 @@ Evaluate_Expression(struct expValueTable_data *vtable_data)
     char           *result, *resultbak;
     char           *temp, *tempbak;
     char            intchar[10];
+    int             dollar1, dollar2;
     int             i = 0, j, k, l;
     long            value;
     unsigned long   result_u_long;
@@ -272,7 +265,8 @@ Evaluate_Expression(struct expValueTable_data *vtable_data)
                     break;
                 }
             }
-            sprintf(temp, "%.*s", j - 1, expression + 1);
+            strncpy(temp, expression + 1, j - 1);
+            *(temp + j - 1) = '\0';
             l = atoi(temp);
             expression = expression + j;
             /*
@@ -321,6 +315,7 @@ Evaluate_Expression(struct expValueTable_data *vtable_data)
             }
             struct variable_list *vars;
             int             status;
+            int             count = 1;
 
             /*
              * Initialize the SNMP library
@@ -367,7 +362,7 @@ Evaluate_Expression(struct expValueTable_data *vtable_data)
 
                 vars = response->variables;
                 value = *(vars->val.integer);
-                sprintf(intchar, "%lu", value);
+                sprintf(intchar, "%u", value);
                 for (k = 1; k <= strlen(intchar); k++) {
                     *result = intchar[k - 1];
                     result++;
@@ -431,14 +426,30 @@ expValueTable_clean(void *data)
 
 
 void
-build_valuetable(void)
+build_valuetable()
 {
-    struct expExpressionTable_data *expstorage;
+    struct expExpressionTable_data *expstorage, *expfound;
     struct expObjectTable_data *objstorage, *objfound = NULL;
     struct header_complex_index *hcindex, *object_hcindex;
+    char           *owner;
+    size_t          owner_len;
+    char           *name;
+    size_t          name_len;
     char           *expression;
+    size_t          expression_len;
     oid            *index;
-    int             i = 0, j, l;
+
+
+    char           *result, *resultbak;
+    char           *temp, *tempbak;
+    int             i = 0, j, k, l;
+    temp = malloc(100);
+    result = malloc(100);
+    tempbak = temp;
+    memset(result, 0, 100);
+    *result = '\0';
+    resultbak = result;
+
 
     DEBUGMSGTL(("expValueTable", "building valuetable...  \n"));
 
@@ -447,6 +458,7 @@ build_valuetable(void)
         expstorage = (struct expExpressionTable_data *) hcindex->data;
         if (expstorage->expExpressionEntryStatus == RS_ACTIVE) {
             expression = expstorage->expExpression;
+            expression_len = expstorage->expExpressionLen;
             while (*expression != '\0') {
                 if (*expression == '$') {
                     i++;
@@ -461,12 +473,9 @@ build_valuetable(void)
                             break;
                         }
                     }
-                    {
-                        char temp[100];
-
-                        sprintf(temp, "%.*s", j - 1, expression + 1);
-                        l = atoi(temp);
-                    }
+                    strncpy(temp, expression + 1, j - 1);
+                    *(temp + j - 1) = '\0';
+                    l = atoi(temp);
                     for (object_hcindex = expObjectTableStorage;
                          object_hcindex != NULL;
                          object_hcindex = object_hcindex->next) {
@@ -484,6 +493,7 @@ build_valuetable(void)
                                 expstorage->expExpressionNameLen)
                             && (l == objstorage->expObjectIndex)) {
                             if (objfound == NULL) {
+                                expfound = expstorage;
                                 objfound = objstorage;
                             }
                             if (objstorage->expObjectIDWildcard ==
@@ -519,7 +529,9 @@ build_valuetable(void)
             oid            *next_OID;
             size_t          next_OID_len;
             taggetOID_len = objfound->expObjectIDLen;
+            struct variable_list *vars;
             int             status;
+            int             count = 1;
             struct snmp_session *ss;
             /*
              * Initialize the SNMP library
@@ -631,7 +643,12 @@ var_expValueTable(struct variable *vp,
                   int exact, size_t *var_len, WriteMethod ** write_method)
 {
 
+    static netsnmp_variable_list *vars;
+    size_t          newlen =
+        *length - (sizeof(expValueTable_variables_oid) / sizeof(oid) +
+                   3 - 1);
     struct expValueTable_data *StorageTmp = NULL;
+    unsigned int    counter32;
 
 
 
@@ -706,7 +723,6 @@ var_expValueTable(struct variable *vp,
         return NULL;
     default:
         ERROR_MSG("");
-	return NULL;
     }
 }
 
@@ -776,7 +792,6 @@ calculate(int operater, unsigned long a, unsigned long b)
         } else
             return (a / b);
     }
-    return 0;
 }
 
 unsigned long
diff --git a/agent/mibgroup/disman/mteEventNotificationTable.c b/agent/mibgroup/disman/mteEventNotificationTable.c
index 48add68..3e0786f 100644
--- a/agent/mibgroup/disman/mteEventNotificationTable.c
+++ b/agent/mibgroup/disman/mteEventNotificationTable.c
@@ -4,14 +4,10 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "mteEventNotificationTable.h"
 
-netsnmp_feature_require(table_dataset)
-netsnmp_feature_require(table_set_multi_add_default_row)
-
 netsnmp_table_data_set *mteEventNotif_table_set;
 
 
@@ -65,21 +61,12 @@ initialize_table_mteEventNotificationTable(void)
      * note: if you don't need a subhandler to deal with any aspects
      * of the request, change mteEventNotificationTable_handler to "NULL" 
      */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     netsnmp_register_table_data_set(netsnmp_create_handler_registration
                                     ("mteEventNotificationTable",
                                      mteEventNotificationTable_handler,
                                      mteEventNotificationTable_oid,
                                      mteEventNotificationTable_oid_len,
                                      HANDLER_CAN_RWRITE), mteEventNotif_table_set, NULL);
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-    netsnmp_register_table_data_set(netsnmp_create_handler_registration
-                                    ("mteEventNotificationTable",
-                                     mteEventNotificationTable_handler,
-                                     mteEventNotificationTable_oid,
-                                     mteEventNotificationTable_oid_len,
-                                     HANDLER_CAN_RONLY), mteEventNotif_table_set, NULL);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 }
 
 /** Initializes the mteEventNotificationTable module */
diff --git a/agent/mibgroup/disman/mteEventTable.c b/agent/mibgroup/disman/mteEventTable.c
index 22bad73..a168fb0 100644
--- a/agent/mibgroup/disman/mteEventTable.c
+++ b/agent/mibgroup/disman/mteEventTable.c
@@ -4,7 +4,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "mteTriggerTable.h"
@@ -12,9 +11,6 @@
 #include "mteEventNotificationTable.h"
 #include "mteObjectsTable.h"
 
-netsnmp_feature_require(table_dataset)
-netsnmp_feature_require(table_set_multi_add_default_row)
-
 static netsnmp_table_data_set *table_set = NULL;
 
 /** Initialize the mteEventTable table by defining its contents and how it's structured */
@@ -133,7 +129,7 @@ parse_notificationEvent(const char *token, char *line) {
     char            name_buf[64];
     char            oid_name_buf[SPRINT_MAX_LEN];
     oid             oid_buf[MAX_OID_LEN];
-    size_t          oid_buf_len = MAX_OID_LEN;
+    size_t          oid_buf_len = sizeof(oid_buf);
     int             wild = 1;
     netsnmp_table_row *row;
     long tlong;
@@ -228,7 +224,6 @@ parse_notificationEvent(const char *token, char *line) {
             wild = 0;
             continue;
         }
-        oid_buf_len = MAX_OID_LEN;
         if (!snmp_parse_oid(oid_name_buf, oid_buf, &oid_buf_len)) {
             config_perror("unable to parse an object oid");
             return;
diff --git a/agent/mibgroup/disman/mteObjectsTable.c b/agent/mibgroup/disman/mteObjectsTable.c
index c3f331d..1c36df7 100644
--- a/agent/mibgroup/disman/mteObjectsTable.c
+++ b/agent/mibgroup/disman/mteObjectsTable.c
@@ -8,7 +8,6 @@
  * This should always be included first before anything else 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -18,9 +17,6 @@
 #include <strings.h>
 #endif
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(header_complex_find_entry)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 /*
  * minimal include directives 
@@ -52,40 +48,20 @@ oid             mteObjectsTable_variables_oid[] =
  */
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 struct variable2 mteObjectsTable_variables[] = {
     /*
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define   MTEOBJECTSID          5
-    {MTEOBJECTSID, ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
-     var_mteObjectsTable, 2, {1, 3}},
+    {MTEOBJECTSID, ASN_OBJECT_ID, RWRITE, var_mteObjectsTable, 2, {1, 3}},
 #define   MTEOBJECTSIDWILDCARD  6
-    {MTEOBJECTSIDWILDCARD, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_mteObjectsTable, 2, {1, 4}},
+    {MTEOBJECTSIDWILDCARD, ASN_INTEGER, RWRITE, var_mteObjectsTable, 2,
+     {1, 4}},
 #define   MTEOBJECTSENTRYSTATUS  7
-    {MTEOBJECTSENTRYSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_mteObjectsTable, 2, {1, 5}},
+    {MTEOBJECTSENTRYSTATUS, ASN_INTEGER, RWRITE, var_mteObjectsTable, 2,
+     {1, 5}},
 
 };
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-struct variable2 mteObjectsTable_variables[] = {
-    /*
-     * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
-     */
-#define   MTEOBJECTSID          5
-    {MTEOBJECTSID, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_mteObjectsTable, 2, {1, 3}},
-#define   MTEOBJECTSIDWILDCARD  6
-    {MTEOBJECTSIDWILDCARD, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteObjectsTable, 2, {1, 4}},
-#define   MTEOBJECTSENTRYSTATUS  7
-    {MTEOBJECTSENTRYSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteObjectsTable, 2, {1, 5}},
-
-};
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
 /*
  * (L = length of the oidsuffix) 
  */
@@ -325,10 +301,6 @@ var_mteObjectsTable(struct variable *vp,
 
     DEBUGMSGTL(("mteObjectsTable",
                 "var_mteObjectsTable: Entering...  \n"));
-
-	/* set default value */
-	*write_method = NULL;
-
     /*
      * this assumes you have registered all your data properly
      */
@@ -347,23 +319,17 @@ var_mteObjectsTable(struct variable *vp,
 
 
     case MTEOBJECTSID:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteObjectsID;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = (StorageTmp->mteObjectsIDLen) * sizeof(oid);
         return (u_char *) StorageTmp->mteObjectsID;
 
     case MTEOBJECTSIDWILDCARD:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteObjectsIDWildcard;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteObjectsIDWildcard);
         return (u_char *) & StorageTmp->mteObjectsIDWildcard;
 
     case MTEOBJECTSENTRYSTATUS:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteObjectsEntryStatus;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteObjectsEntryStatus);
         return (u_char *) & StorageTmp->mteObjectsEntryStatus;
 
@@ -376,7 +342,6 @@ var_mteObjectsTable(struct variable *vp,
 
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 
 int
 write_mteObjectsID(int action,
@@ -459,9 +424,6 @@ write_mteObjectsID(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-
-        snmp_store_needed(NULL);
-
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -546,8 +508,6 @@ write_mteObjectsIDWildcard(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
 
-        snmp_store_needed(NULL);
-
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -682,8 +642,6 @@ write_mteObjectsEntryStatus(int action,
 
 
             StorageNew = SNMP_MALLOC_STRUCT(mteObjectsTable_data);
-            if (StorageNew == NULL)
-                return SNMP_ERR_GENERR;
             StorageNew->mteOwner = netsnmp_strdup_and_null(vp->val.string,
                                                            vp->val_len);
             StorageNew->mteOwnerLen = vp->val_len;
@@ -816,16 +774,11 @@ write_mteObjectsEntryStatus(int action,
                 StorageTmp->mteObjectsEntryStatus = RS_NOTINSERVICE;
             }
         }
-        snmp_store_needed(NULL);
-
         break;
     }
     return SNMP_ERR_NOERROR;
 }
 
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
-
 void
 mte_add_objects(netsnmp_variable_list * vars,
                 struct mteTriggerTable_data *item, const char *owner,
@@ -936,8 +889,6 @@ mte_add_object_to_table(const char *owner, const char *objname,
      * malloc initial struct 
      */
     StorageNew = SNMP_MALLOC_STRUCT(mteObjectsTable_data);
-    if (StorageNew == NULL)
-        return SNMP_ERR_GENERR;
     StorageNew->mteOwner = netsnmp_strdup_and_null(owner, strlen(owner));
     StorageNew->mteOwnerLen = strlen(owner);
     StorageNew->mteObjectsName = netsnmp_strdup_and_null(objname,
diff --git a/agent/mibgroup/disman/mteObjectsTable.h b/agent/mibgroup/disman/mteObjectsTable.h
index 4d44c87..d3c3c50 100644
--- a/agent/mibgroup/disman/mteObjectsTable.h
+++ b/agent/mibgroup/disman/mteObjectsTable.h
@@ -59,12 +59,11 @@ config_require(header_complex)
                                              oid * oidname,
                                              size_t oidname_len,
                                              int iswild);
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
      WriteMethod     write_mteObjectsID;
      WriteMethod     write_mteObjectsIDWildcard;
      WriteMethod     write_mteObjectsEntryStatus;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+
+     WriteMethod     write_mteObjectsEntryStatus;
 
 
 
diff --git a/agent/mibgroup/disman/mteTriggerBooleanTable.c b/agent/mibgroup/disman/mteTriggerBooleanTable.c
index 5b17927..49ceb5f 100644
--- a/agent/mibgroup/disman/mteTriggerBooleanTable.c
+++ b/agent/mibgroup/disman/mteTriggerBooleanTable.c
@@ -48,62 +48,33 @@ oid             mteTriggerBooleanTable_variables_oid[] =
  */
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 struct variable2 mteTriggerBooleanTable_variables[] = {
     /*
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define   MTETRIGGERBOOLEANCOMPARISON  3
-    {MTETRIGGERBOOLEANCOMPARISON, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERBOOLEANCOMPARISON, ASN_INTEGER, RWRITE,
      var_mteTriggerBooleanTable, 2, {1, 1}},
 #define   MTETRIGGERBOOLEANVALUE  4
-    {MTETRIGGERBOOLEANVALUE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERBOOLEANVALUE, ASN_INTEGER, RWRITE,
      var_mteTriggerBooleanTable, 2, {1, 2}},
 #define   MTETRIGGERBOOLEANSTARTUP  5
-    {MTETRIGGERBOOLEANSTARTUP, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERBOOLEANSTARTUP, ASN_INTEGER, RWRITE,
      var_mteTriggerBooleanTable, 2, {1, 3}},
 #define   MTETRIGGERBOOLEANOBJECTSOWNER  6
-    {MTETRIGGERBOOLEANOBJECTSOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERBOOLEANOBJECTSOWNER, ASN_OCTET_STR, RWRITE,
      var_mteTriggerBooleanTable, 2, {1, 4}},
 #define   MTETRIGGERBOOLEANOBJECTS  7
-    {MTETRIGGERBOOLEANOBJECTS, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERBOOLEANOBJECTS, ASN_OCTET_STR, RWRITE,
      var_mteTriggerBooleanTable, 2, {1, 5}},
 #define   MTETRIGGERBOOLEANEVENTOWNER  8
-    {MTETRIGGERBOOLEANEVENTOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERBOOLEANEVENTOWNER, ASN_OCTET_STR, RWRITE,
      var_mteTriggerBooleanTable, 2, {1, 6}},
 #define   MTETRIGGERBOOLEANEVENT  9
-    {MTETRIGGERBOOLEANEVENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERBOOLEANEVENT, ASN_OCTET_STR, RWRITE,
      var_mteTriggerBooleanTable, 2, {1, 7}},
-};
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-struct variable2 mteTriggerBooleanTable_variables[] = {
-    /*
-     * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
-     */
-#define   MTETRIGGERBOOLEANCOMPARISON  3
-    {MTETRIGGERBOOLEANCOMPARISON, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerBooleanTable, 2, {1, 1}},
-#define   MTETRIGGERBOOLEANVALUE  4
-    {MTETRIGGERBOOLEANVALUE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerBooleanTable, 2, {1, 2}},
-#define   MTETRIGGERBOOLEANSTARTUP  5
-    {MTETRIGGERBOOLEANSTARTUP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerBooleanTable, 2, {1, 3}},
-#define   MTETRIGGERBOOLEANOBJECTSOWNER  6
-    {MTETRIGGERBOOLEANOBJECTSOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerBooleanTable, 2, {1, 4}},
-#define   MTETRIGGERBOOLEANOBJECTS  7
-    {MTETRIGGERBOOLEANOBJECTS, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerBooleanTable, 2, {1, 5}},
-#define   MTETRIGGERBOOLEANEVENTOWNER  8
-    {MTETRIGGERBOOLEANEVENTOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerBooleanTable, 2, {1, 6}},
-#define   MTETRIGGERBOOLEANEVENT  9
-    {MTETRIGGERBOOLEANEVENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerBooleanTable, 2, {1, 7}},
-};
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
+};
 /*
  * (L = length of the oidsuffix) 
  */
@@ -155,10 +126,6 @@ var_mteTriggerBooleanTable(struct variable *vp,
 
     DEBUGMSGTL(("mteTriggerBooleanTable",
                 "var_mteTriggerBooleanTable: Entering...  \n"));
-
-	/* set default value */
-	*write_method = NULL;
-
     /*
      * this assumes you have registered all your data properly
      */
@@ -177,51 +144,37 @@ var_mteTriggerBooleanTable(struct variable *vp,
 
 
     case MTETRIGGERBOOLEANCOMPARISON:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerBooleanComparison;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerBooleanComparison);
         return (u_char *) & StorageTmp->mteTriggerBooleanComparison;
 
     case MTETRIGGERBOOLEANVALUE:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerBooleanValue;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerBooleanValue);
         return (u_char *) & StorageTmp->mteTriggerBooleanValue;
 
     case MTETRIGGERBOOLEANSTARTUP:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerBooleanStartup;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerBooleanStartup);
         return (u_char *) & StorageTmp->mteTriggerBooleanStartup;
 
     case MTETRIGGERBOOLEANOBJECTSOWNER:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerBooleanObjectsOwner;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerBooleanObjectsOwnerLen;
         return (u_char *) StorageTmp->mteTriggerBooleanObjectsOwner;
 
     case MTETRIGGERBOOLEANOBJECTS:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerBooleanObjects;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerBooleanObjectsLen;
         return (u_char *) StorageTmp->mteTriggerBooleanObjects;
 
     case MTETRIGGERBOOLEANEVENTOWNER:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerBooleanEventOwner;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerBooleanEventOwnerLen;
         return (u_char *) StorageTmp->mteTriggerBooleanEventOwner;
 
     case MTETRIGGERBOOLEANEVENT:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerBooleanEvent;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerBooleanEventLen;
         return (u_char *) StorageTmp->mteTriggerBooleanEvent;
 
@@ -234,7 +187,6 @@ var_mteTriggerBooleanTable(struct variable *vp,
 
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 
 int
 write_mteTriggerBooleanComparison(int action,
@@ -848,5 +800,3 @@ write_mteTriggerBooleanEvent(int action,
     }
     return SNMP_ERR_NOERROR;
 }
-
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
diff --git a/agent/mibgroup/disman/mteTriggerBooleanTable.h b/agent/mibgroup/disman/mteTriggerBooleanTable.h
index 6413da5..f685586 100644
--- a/agent/mibgroup/disman/mteTriggerBooleanTable.h
+++ b/agent/mibgroup/disman/mteTriggerBooleanTable.h
@@ -31,7 +31,6 @@ config_require(header_complex)
      void            init_mteTriggerBooleanTable(void);
      FindVarMethod   var_mteTriggerBooleanTable;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
      WriteMethod     write_mteTriggerBooleanComparison;
      WriteMethod     write_mteTriggerBooleanValue;
      WriteMethod     write_mteTriggerBooleanStartup;
@@ -39,7 +38,6 @@ config_require(header_complex)
      WriteMethod     write_mteTriggerBooleanObjects;
      WriteMethod     write_mteTriggerBooleanEventOwner;
      WriteMethod     write_mteTriggerBooleanEvent;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
 
 
diff --git a/agent/mibgroup/disman/mteTriggerDeltaTable.c b/agent/mibgroup/disman/mteTriggerDeltaTable.c
index b5d2244..457f831 100644
--- a/agent/mibgroup/disman/mteTriggerDeltaTable.c
+++ b/agent/mibgroup/disman/mteTriggerDeltaTable.c
@@ -48,38 +48,21 @@ oid             mteTriggerDeltaTable_variables_oid[] =
  */
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 struct variable2 mteTriggerDeltaTable_variables[] = {
     /*
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define   MTETRIGGERDELTADISCONTINUITYID  3
-    {MTETRIGGERDELTADISCONTINUITYID, ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERDELTADISCONTINUITYID, ASN_OBJECT_ID, RWRITE,
      var_mteTriggerDeltaTable, 2, {1, 1}},
 #define   MTETRIGGERDELTADISCONTINUITYIDWILDCARD  4
-    {MTETRIGGERDELTADISCONTINUITYIDWILDCARD, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERDELTADISCONTINUITYIDWILDCARD, ASN_INTEGER, RWRITE,
      var_mteTriggerDeltaTable, 2, {1, 2}},
 #define   MTETRIGGERDELTADISCONTINUITYIDTYPE  5
-    {MTETRIGGERDELTADISCONTINUITYIDTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERDELTADISCONTINUITYIDTYPE, ASN_INTEGER, RWRITE,
      var_mteTriggerDeltaTable, 2, {1, 3}},
-};
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-struct variable2 mteTriggerDeltaTable_variables[] = {
-    /*
-     * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
-     */
-#define   MTETRIGGERDELTADISCONTINUITYID  3
-    {MTETRIGGERDELTADISCONTINUITYID, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerDeltaTable, 2, {1, 1}},
-#define   MTETRIGGERDELTADISCONTINUITYIDWILDCARD  4
-    {MTETRIGGERDELTADISCONTINUITYIDWILDCARD, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerDeltaTable, 2, {1, 2}},
-#define   MTETRIGGERDELTADISCONTINUITYIDTYPE  5
-    {MTETRIGGERDELTADISCONTINUITYIDTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerDeltaTable, 2, {1, 3}},
-};
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
+};
 /*
  * (L = length of the oidsuffix) 
  */
@@ -131,10 +114,6 @@ var_mteTriggerDeltaTable(struct variable *vp,
 
     DEBUGMSGTL(("mteTriggerDeltaTable",
                 "var_mteTriggerDeltaTable: Entering...  \n"));
-
-    /* set default value */
-	*write_method = NULL;
-
     /*
      * this assumes you have registered all your data properly
      */
@@ -150,29 +129,24 @@ var_mteTriggerDeltaTable(struct variable *vp,
 
 
     case MTETRIGGERDELTADISCONTINUITYID:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerDeltaDiscontinuityID;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len =
             StorageTmp->mteTriggerDeltaDiscontinuityIDLen * sizeof(oid);
         return (u_char *) StorageTmp->mteTriggerDeltaDiscontinuityID;
 
     case MTETRIGGERDELTADISCONTINUITYIDWILDCARD:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerDeltaDiscontinuityIDWildcard;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len =
             sizeof(StorageTmp->mteTriggerDeltaDiscontinuityIDWildcard);
         return (u_char *) & StorageTmp->
             mteTriggerDeltaDiscontinuityIDWildcard;
 
     case MTETRIGGERDELTADISCONTINUITYIDTYPE:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerDeltaDiscontinuityIDType;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerDeltaDiscontinuityIDType);
         return (u_char *) & StorageTmp->mteTriggerDeltaDiscontinuityIDType;
 
+
     default:
         ERROR_MSG("");
     }
@@ -181,7 +155,7 @@ var_mteTriggerDeltaTable(struct variable *vp,
 
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
+
 int
 write_mteTriggerDeltaDiscontinuityID(int action,
                                      u_char * var_val,
@@ -440,4 +414,3 @@ write_mteTriggerDeltaDiscontinuityIDType(int action,
     }
     return SNMP_ERR_NOERROR;
 }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
diff --git a/agent/mibgroup/disman/mteTriggerDeltaTable.h b/agent/mibgroup/disman/mteTriggerDeltaTable.h
index fa4872a..0e8a17e 100644
--- a/agent/mibgroup/disman/mteTriggerDeltaTable.h
+++ b/agent/mibgroup/disman/mteTriggerDeltaTable.h
@@ -30,10 +30,8 @@ config_require(header_complex)
      void            init_mteTriggerDeltaTable(void);
      FindVarMethod   var_mteTriggerDeltaTable;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
      WriteMethod     write_mteTriggerDeltaDiscontinuityID;
      WriteMethod     write_mteTriggerDeltaDiscontinuityIDWildcard;
      WriteMethod     write_mteTriggerDeltaDiscontinuityIDType;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
 #endif                          /* _MIBGROUP_MTETRIGGERDELTATABLE_H */
diff --git a/agent/mibgroup/disman/mteTriggerExistenceTable.c b/agent/mibgroup/disman/mteTriggerExistenceTable.c
index fdfdaf2..1aec2cd 100644
--- a/agent/mibgroup/disman/mteTriggerExistenceTable.c
+++ b/agent/mibgroup/disman/mteTriggerExistenceTable.c
@@ -48,56 +48,30 @@ oid             mteTriggerExistenceTable_variables_oid[] =
  */
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 struct variable2 mteTriggerExistenceTable_variables[] = {
     /*
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define   MTETRIGGEREXISTENCETEST  3
-    {MTETRIGGEREXISTENCETEST, ASN_BIT_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGEREXISTENCETEST, ASN_BIT_STR, RWRITE,
      var_mteTriggerExistenceTable, 2, {1, 1}},
 #define   MTETRIGGEREXISTENCESTARTUP  4
-    {MTETRIGGEREXISTENCESTARTUP, ASN_BIT_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGEREXISTENCESTARTUP, ASN_BIT_STR, RWRITE,
      var_mteTriggerExistenceTable, 2, {1, 2}},
 #define   MTETRIGGEREXISTENCEOBJECTSOWNER  5
-    {MTETRIGGEREXISTENCEOBJECTSOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGEREXISTENCEOBJECTSOWNER, ASN_OCTET_STR, RWRITE,
      var_mteTriggerExistenceTable, 2, {1, 3}},
 #define   MTETRIGGEREXISTENCEOBJECTS  6
-    {MTETRIGGEREXISTENCEOBJECTS, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGEREXISTENCEOBJECTS, ASN_OCTET_STR, RWRITE,
      var_mteTriggerExistenceTable, 2, {1, 4}},
 #define   MTETRIGGEREXISTENCEEVENTOWNER  7
-    {MTETRIGGEREXISTENCEEVENTOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGEREXISTENCEEVENTOWNER, ASN_OCTET_STR, RWRITE,
      var_mteTriggerExistenceTable, 2, {1, 5}},
 #define   MTETRIGGEREXISTENCEEVENT  8
-    {MTETRIGGEREXISTENCEEVENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGEREXISTENCEEVENT, ASN_OCTET_STR, RWRITE,
      var_mteTriggerExistenceTable, 2, {1, 6}},
-};
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-struct variable2 mteTriggerExistenceTable_variables[] = {
-    /*
-     * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
-     */
-#define   MTETRIGGEREXISTENCETEST  3
-    {MTETRIGGEREXISTENCETEST, ASN_BIT_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerExistenceTable, 2, {1, 1}},
-#define   MTETRIGGEREXISTENCESTARTUP  4
-    {MTETRIGGEREXISTENCESTARTUP, ASN_BIT_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerExistenceTable, 2, {1, 2}},
-#define   MTETRIGGEREXISTENCEOBJECTSOWNER  5
-    {MTETRIGGEREXISTENCEOBJECTSOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerExistenceTable, 2, {1, 3}},
-#define   MTETRIGGEREXISTENCEOBJECTS  6
-    {MTETRIGGEREXISTENCEOBJECTS, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerExistenceTable, 2, {1, 4}},
-#define   MTETRIGGEREXISTENCEEVENTOWNER  7
-    {MTETRIGGEREXISTENCEEVENTOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerExistenceTable, 2, {1, 5}},
-#define   MTETRIGGEREXISTENCEEVENT  8
-    {MTETRIGGEREXISTENCEEVENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerExistenceTable, 2, {1, 6}},
-};
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
+};
 /*
  * (L = length of the oidsuffix) 
  */
@@ -157,10 +131,6 @@ var_mteTriggerExistenceTable(struct variable *vp,
 
     DEBUGMSGTL(("mteTriggerExistenceTable",
                 "var_mteTriggerExistenceTable: Entering...  \n"));
-
-	/* set default value */
-	*write_method = NULL;
-
     /*
      * this assumes you have registered all your data properly
      */
@@ -179,44 +149,32 @@ var_mteTriggerExistenceTable(struct variable *vp,
 
 
     case MTETRIGGEREXISTENCETEST:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerExistenceTest;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerExistenceTestLen;
         return (u_char *) StorageTmp->mteTriggerExistenceTest;
 
     case MTETRIGGEREXISTENCESTARTUP:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerExistenceStartup;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerExistenceStartupLen;
         return (u_char *) StorageTmp->mteTriggerExistenceStartup;
 
     case MTETRIGGEREXISTENCEOBJECTSOWNER:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerExistenceObjectsOwner;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerExistenceObjectsOwnerLen;
         return (u_char *) StorageTmp->mteTriggerExistenceObjectsOwner;
 
     case MTETRIGGEREXISTENCEOBJECTS:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerExistenceObjects;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerExistenceObjectsLen;
         return (u_char *) StorageTmp->mteTriggerExistenceObjects;
 
     case MTETRIGGEREXISTENCEEVENTOWNER:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerExistenceEventOwner;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerExistenceEventOwnerLen;
         return (u_char *) StorageTmp->mteTriggerExistenceEventOwner;
 
     case MTETRIGGEREXISTENCEEVENT:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerExistenceEvent;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerExistenceEventLen;
         return (u_char *) StorageTmp->mteTriggerExistenceEvent;
 
@@ -229,7 +187,6 @@ var_mteTriggerExistenceTable(struct variable *vp,
 
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 
 int
 write_mteTriggerExistenceTest(int action,
@@ -778,5 +735,3 @@ write_mteTriggerExistenceEvent(int action,
     }
     return SNMP_ERR_NOERROR;
 }
-
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
diff --git a/agent/mibgroup/disman/mteTriggerExistenceTable.h b/agent/mibgroup/disman/mteTriggerExistenceTable.h
index 75c6427..40dbd4e 100644
--- a/agent/mibgroup/disman/mteTriggerExistenceTable.h
+++ b/agent/mibgroup/disman/mteTriggerExistenceTable.h
@@ -29,13 +29,11 @@ config_require(header_complex)
      void            init_mteTriggerExistenceTable(void);
      FindVarMethod   var_mteTriggerExistenceTable;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
      WriteMethod     write_mteTriggerExistenceTest;
      WriteMethod     write_mteTriggerExistenceStartup;
      WriteMethod     write_mteTriggerExistenceObjectsOwner;
      WriteMethod     write_mteTriggerExistenceObjects;
      WriteMethod     write_mteTriggerExistenceEventOwner;
      WriteMethod     write_mteTriggerExistenceEvent;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
 #endif                          /* _MIBGROUP_MTETRIGGEREXISTENCETABLE_H */
diff --git a/agent/mibgroup/disman/mteTriggerTable.c b/agent/mibgroup/disman/mteTriggerTable.c
index a2306f7..f546d38 100644
--- a/agent/mibgroup/disman/mteTriggerTable.c
+++ b/agent/mibgroup/disman/mteTriggerTable.c
@@ -8,7 +8,6 @@
  * This should always be included first before anything else 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -21,13 +20,6 @@
 #include <limits.h>
 #endif
 
-netsnmp_feature_require(mib_snprint_variable)
-netsnmp_feature_require(tdomain_support)
-netsnmp_feature_require(check_vb_uint)
-netsnmp_feature_require(string_time_to_secs)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(header_complex_find_entry)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 /*
  * minimal include directives 
@@ -86,98 +78,50 @@ oid             mteTriggerTable_variables_oid[] =
  */
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 struct variable2 mteTriggerTable_variables[] = {
     /*
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define   MTETRIGGERCOMMENT     5
-    {MTETRIGGERCOMMENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_mteTriggerTable, 2, {1, 3}},
+    {MTETRIGGERCOMMENT, ASN_OCTET_STR, RWRITE, var_mteTriggerTable, 2,
+     {1, 3}},
 #define   MTETRIGGERTEST        6
-    {MTETRIGGERTEST, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_mteTriggerTable, 2, {1, 4}},
+    {MTETRIGGERTEST, ASN_OCTET_STR, RWRITE, var_mteTriggerTable, 2, {1, 4}},
 #define   MTETRIGGERSAMPLETYPE  7
-    {MTETRIGGERSAMPLETYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_mteTriggerTable, 2, {1, 5}},
+    {MTETRIGGERSAMPLETYPE, ASN_INTEGER, RWRITE, var_mteTriggerTable, 2,
+     {1, 5}},
 #define   MTETRIGGERVALUEID     8
-    {MTETRIGGERVALUEID, ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
-     var_mteTriggerTable, 2, {1, 6}},
+    {MTETRIGGERVALUEID, ASN_OBJECT_ID, RWRITE, var_mteTriggerTable, 2,
+     {1, 6}},
 #define   MTETRIGGERVALUEIDWILDCARD  9
-    {MTETRIGGERVALUEIDWILDCARD, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_mteTriggerTable, 2, {1, 7}},
+    {MTETRIGGERVALUEIDWILDCARD, ASN_INTEGER, RWRITE, var_mteTriggerTable,
+     2, {1, 7}},
 #define   MTETRIGGERTARGETTAG   10
-    {MTETRIGGERTARGETTAG, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_mteTriggerTable, 2, {1, 8}},
+    {MTETRIGGERTARGETTAG, ASN_OCTET_STR, RWRITE, var_mteTriggerTable, 2,
+     {1, 8}},
 #define   MTETRIGGERCONTEXTNAME  11
-    {MTETRIGGERCONTEXTNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_mteTriggerTable, 2, {1, 9}},
+    {MTETRIGGERCONTEXTNAME, ASN_OCTET_STR, RWRITE, var_mteTriggerTable, 2,
+     {1, 9}},
 #define   MTETRIGGERCONTEXTNAMEWILDCARD  12
-    {MTETRIGGERCONTEXTNAMEWILDCARD, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERCONTEXTNAMEWILDCARD, ASN_INTEGER, RWRITE,
      var_mteTriggerTable, 2, {1, 10}},
 #define   MTETRIGGERFREQUENCY   13
-    {MTETRIGGERFREQUENCY, ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_mteTriggerTable, 2, {1, 11}},
+    {MTETRIGGERFREQUENCY, ASN_UNSIGNED, RWRITE, var_mteTriggerTable, 2,
+     {1, 11}},
 #define   MTETRIGGEROBJECTSOWNER  14
-    {MTETRIGGEROBJECTSOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_mteTriggerTable, 2, {1, 12}},
+    {MTETRIGGEROBJECTSOWNER, ASN_OCTET_STR, RWRITE, var_mteTriggerTable, 2,
+     {1, 12}},
 #define   MTETRIGGEROBJECTS     15
-    {MTETRIGGEROBJECTS, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_mteTriggerTable, 2, {1, 13}},
+    {MTETRIGGEROBJECTS, ASN_OCTET_STR, RWRITE, var_mteTriggerTable, 2,
+     {1, 13}},
 #define   MTETRIGGERENABLED     16
-    {MTETRIGGERENABLED, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_mteTriggerTable, 2, {1, 14}},
+    {MTETRIGGERENABLED, ASN_INTEGER, RWRITE, var_mteTriggerTable, 2,
+     {1, 14}},
 #define   MTETRIGGERENTRYSTATUS  17
-    {MTETRIGGERENTRYSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_mteTriggerTable, 2, {1, 15}},
-};
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-struct variable2 mteTriggerTable_variables[] = {
-    /*
-     * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
-     */
-#define   MTETRIGGERCOMMENT     5
-    {MTETRIGGERCOMMENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerTable, 2, {1, 3}},
-#define   MTETRIGGERTEST        6
-    {MTETRIGGERTEST, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerTable, 2, {1, 4}},
-#define   MTETRIGGERSAMPLETYPE  7
-    {MTETRIGGERSAMPLETYPE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerTable, 2, {1, 5}},
-#define   MTETRIGGERVALUEID     8
-    {MTETRIGGERVALUEID, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerTable, 2, {1, 6}},
-#define   MTETRIGGERVALUEIDWILDCARD  9
-    {MTETRIGGERVALUEIDWILDCARD, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerTable, 2, {1, 7}},
-#define   MTETRIGGERTARGETTAG   10
-    {MTETRIGGERTARGETTAG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerTable, 2, {1, 8}},
-#define   MTETRIGGERCONTEXTNAME  11
-    {MTETRIGGERCONTEXTNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerTable, 2, {1, 9}},
-#define   MTETRIGGERCONTEXTNAMEWILDCARD  12
-    {MTETRIGGERCONTEXTNAMEWILDCARD, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerTable, 2, {1, 10}},
-#define   MTETRIGGERFREQUENCY   13
-    {MTETRIGGERFREQUENCY, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerTable, 2, {1, 11}},
-#define   MTETRIGGEROBJECTSOWNER  14
-    {MTETRIGGEROBJECTSOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerTable, 2, {1, 12}},
-#define   MTETRIGGEROBJECTS     15
-    {MTETRIGGEROBJECTS, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerTable, 2, {1, 13}},
-#define   MTETRIGGERENABLED     16
-    {MTETRIGGERENABLED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerTable, 2, {1, 14}},
-#define   MTETRIGGERENTRYSTATUS  17
-    {MTETRIGGERENTRYSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerTable, 2, {1, 15}},
-};
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+    {MTETRIGGERENTRYSTATUS, ASN_INTEGER, RWRITE, var_mteTriggerTable, 2,
+     {1, 15}},
 
+};
 /*
  * (L = length of the oidsuffix) 
  */
@@ -413,7 +357,8 @@ static int      monitor_call_count = 0;
 void
 parse_simple_monitor(const char *token, char *line)
 {
-    char            buf[SPRINT_MAX_LEN], *cp, eventname[64];
+    char            buf[SPRINT_MAX_LEN], *cp, ebuf[SPRINT_MAX_LEN],
+                    eventname[64];
     oid             obuf[MAX_OID_LEN];
     size_t          obufLen;
     struct mteTriggerTable_data *StorageNew;
@@ -459,17 +404,8 @@ parse_simple_monitor(const char *token, char *line)
            break;
         case 'r':
             if (cp) {
-                int freq;
                 cp = copy_nword(cp, buf, sizeof(buf));
-                freq = netsnmp_string_time_to_secs(buf);
-                if (freq == -1) {
-                    config_perror("Invalid -r value\n");
-                    /*
-                     * XXX: free StorageNew 
-                     */
-                    return;
-                }
-                StorageNew->mteTriggerFrequency = (unsigend long) freq;
+                StorageNew->mteTriggerFrequency = strtoul(buf, NULL, 0);
             } else {
                 config_perror("No parameter after -r given\n");
                 /*
@@ -509,7 +445,8 @@ parse_simple_monitor(const char *token, char *line)
             cp = copy_nword(cp, buf, sizeof(buf));
             obufLen = MAX_OID_LEN;
             if (!snmp_parse_oid(buf, obuf, &obufLen)) {
-		netsnmp_config_error("unable to parse oid: %s", buf);
+                sprintf(ebuf, "unable to parse oid: %s", buf);
+                config_perror(ebuf);
                 /*
                  * XXX: free StorageNew 
                  */
@@ -570,7 +507,8 @@ parse_simple_monitor(const char *token, char *line)
     cp = copy_nword(cp, buf, sizeof(buf));
     obufLen = MAX_OID_LEN;
     if (!snmp_parse_oid(buf, obuf, &obufLen)) {
-	netsnmp_config_error("unable to parse oid: %s", buf);
+        sprintf(ebuf, "unable to parse oid: %s", buf);
+        config_perror(ebuf);
         /*
          * XXX: free StorageNew 
          */
@@ -658,7 +596,7 @@ parse_simple_monitor(const char *token, char *line)
 
     DEBUGMSGTL(("mteTriggerTable", "added simple monitor: %s\n",
                 StorageNew->mteTriggerName));
-} /* parse_simple_monitor */
+}
 
 
 /*
@@ -1141,7 +1079,9 @@ parse_mteTriggerTable(const char *token, char *line)
         mte_enable_trigger(StorageTmp);
 
     DEBUGMSGTL(("mteTriggerTable", "done.\n"));
-} /* parse_mteTriggerTable */
+}
+
+
 
 
 /*
@@ -1492,20 +1432,14 @@ var_mteTriggerTable(struct variable *vp,
 
     DEBUGMSGTL(("mteTriggerTable",
                 "var_mteTriggerTable: Entering...  \n"));
-
-	/* set default value */
-	*write_method = NULL;
-
     /*
      * this assumes you have registered all your data properly
      */
     if ((StorageTmp =
          header_complex(mteTriggerTableStorage, vp, name, length, exact,
                         var_len, write_method)) == NULL) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         if (vp->magic == MTETRIGGERENTRYSTATUS)
             *write_method = write_mteTriggerEntryStatus;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         return NULL;
     }
 
@@ -1517,93 +1451,67 @@ var_mteTriggerTable(struct variable *vp,
 
 
     case MTETRIGGERCOMMENT:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerComment;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerCommentLen;
         return (u_char *) StorageTmp->mteTriggerComment;
 
     case MTETRIGGERTEST:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerTest;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerTestLen;
         return (u_char *) StorageTmp->mteTriggerTest;
 
     case MTETRIGGERSAMPLETYPE:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerSampleType;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerSampleType);
         return (u_char *) & StorageTmp->mteTriggerSampleType;
 
     case MTETRIGGERVALUEID:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerValueID;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerValueIDLen * sizeof(oid);
         return (u_char *) StorageTmp->mteTriggerValueID;
 
     case MTETRIGGERVALUEIDWILDCARD:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerValueIDWildcard;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerValueIDWildcard);
         return (u_char *) & StorageTmp->mteTriggerValueIDWildcard;
 
     case MTETRIGGERTARGETTAG:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerTargetTag;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerTargetTagLen;
         return (u_char *) StorageTmp->mteTriggerTargetTag;
 
     case MTETRIGGERCONTEXTNAME:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerContextName;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerContextNameLen;
         return (u_char *) StorageTmp->mteTriggerContextName;
 
     case MTETRIGGERCONTEXTNAMEWILDCARD:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerContextNameWildcard;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerContextNameWildcard);
         return (u_char *) & StorageTmp->mteTriggerContextNameWildcard;
 
     case MTETRIGGERFREQUENCY:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerFrequency;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerFrequency);
         return (u_char *) & StorageTmp->mteTriggerFrequency;
 
     case MTETRIGGEROBJECTSOWNER:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerObjectsOwner;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerObjectsOwnerLen;
         return (u_char *) StorageTmp->mteTriggerObjectsOwner;
 
     case MTETRIGGEROBJECTS:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerObjects;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerObjectsLen;
         return (u_char *) StorageTmp->mteTriggerObjects;
 
     case MTETRIGGERENABLED:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerEnabled;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerEnabled);
         return (u_char *) & StorageTmp->mteTriggerEnabled;
 
     case MTETRIGGERENTRYSTATUS:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerEntryStatus;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerEntryStatus);
         return (u_char *) & StorageTmp->mteTriggerEntryStatus;
 
@@ -1616,7 +1524,7 @@ var_mteTriggerTable(struct variable *vp,
 
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
+
 int
 write_mteTriggerComment(int action,
                         u_char * var_val,
@@ -1700,11 +1608,10 @@ write_mteTriggerComment(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
-} /* write_mteTriggerComment */
+}
 
 
 
@@ -1788,11 +1695,10 @@ write_mteTriggerTest(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
-} /* write_mteTriggerTest */
+}
 
 
 
@@ -1871,11 +1777,11 @@ write_mteTriggerSampleType(int action,
          * 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;
-} /* write_mteTriggerSampleType */
+}
 
 
 
@@ -1966,11 +1872,10 @@ write_mteTriggerValueID(int action,
          * previous values, as these are from a different object?  
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
-} /* write_mteTriggerValueID */
+}
 
 
 
@@ -2050,11 +1955,11 @@ write_mteTriggerValueIDWildcard(int action,
          * 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;
-} /* write_mteTriggerValueIDWildcard */
+}
 
 
 
@@ -2140,11 +2045,10 @@ write_mteTriggerTargetTag(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
-} /* write_mteTriggerTargetTag */
+}
 
 
 
@@ -2230,11 +2134,10 @@ write_mteTriggerContextName(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
-} /* write_mteTriggerContextName */
+}
 
 
 
@@ -2314,11 +2217,11 @@ write_mteTriggerContextNameWildcard(int action,
          * 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;
-} /* write_mteTriggerContextNameWildcard */
+}
 
 
 
@@ -2401,11 +2304,10 @@ write_mteTriggerFrequency(int action,
             StorageTmp->mteTriggerEntryStatus == RS_ACTIVE)
             mte_enable_trigger(StorageTmp);
 
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
-} /* write_mteTriggerFrequency */
+}
 
 
 
@@ -2491,11 +2393,10 @@ write_mteTriggerObjectsOwner(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
-} /* write_mteTriggerObjectsOwner */
+}
 
 
 
@@ -2581,11 +2482,10 @@ write_mteTriggerObjects(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
-} /* write_mteTriggerObjects */
+}
 
 
 
@@ -2670,11 +2570,14 @@ write_mteTriggerEnabled(int action,
         else if (StorageTmp->mteTriggerEnabled == MTETRIGGERENABLED_FALSE)
             mte_disable_trigger(StorageTmp);
 
-        snmp_store_needed(NULL);
+
         break;
     }
     return SNMP_ERR_NOERROR;
-} /* write_mteTriggerEnabled */
+}
+
+
+
 
 
 
@@ -2998,15 +2901,10 @@ write_mteTriggerEntryStatus(int action,
             StorageTmp->mteTriggerEnabled == MTETRIGGERENABLED_TRUE &&
             StorageTmp->mteTriggerEntryStatus == RS_ACTIVE)
             mte_enable_trigger(StorageTmp);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
-} /* write_mteTriggerEntryStatus */
-
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
-
+}
 
 /*
  * send trap 
@@ -3101,8 +2999,7 @@ send_mte_trap(struct mteTriggerTable_data *item,
 
     send_v2trap(var_list);
     snmp_free_varbind(var_list);
-} /* send_mte_trap */
-
+}
 
 void
 last_state_clean(void *data)
@@ -3112,7 +3009,6 @@ last_state_clean(void *data)
     SNMP_FREE(cleanme);
 }
 
-
 /*
  * retrieves requested info in pdu from the current target 
  */
@@ -3203,7 +3099,7 @@ mte_get_response(struct mteTriggerTable_data *item, netsnmp_pdu *pdu)
     buf[sizeof(buf) - 1] = '\0';
     DEBUGMSGTL(("mteTriggerTable", "got a variables: %s\n", buf));
     return response;
-} /* mte_get_response */
+}
 
 
 /*
@@ -3234,6 +3130,7 @@ mte_is_integer_type(unsigned char type)
 }
 
 
+
 /*
  * Return 0 if the discontinuity object was checked and no discontinuity has
  * occurred, 1 if the discontinuity object was checked and a discontinuity
@@ -3364,7 +3261,7 @@ mte_discontinuity_occurred(struct mteTriggerTable_data *item)
      */
     DEBUGMSGTL(("mte_disco", "no discontinuity\n"));
     return 0;
-} /* mte_discontinuity_occurred */
+}
 
 
 void
@@ -3772,8 +3669,7 @@ mte_run_trigger(unsigned int clientreg, void *clientarg)
     }
 
     item->started = MTE_STARTED;
-} /* mte_run_trigger */
-
+}
 
 
 /*
diff --git a/agent/mibgroup/disman/mteTriggerTable.h b/agent/mibgroup/disman/mteTriggerTable.h
index c427602..18914dd 100644
--- a/agent/mibgroup/disman/mteTriggerTable.h
+++ b/agent/mibgroup/disman/mteTriggerTable.h
@@ -229,7 +229,7 @@ config_error(disman/mteTriggerTable depends on the Callback transport)
      netsnmp_pdu    *mte_get_response(struct mteTriggerTable_data *,
                                       netsnmp_pdu *);
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
+
      WriteMethod     write_mteTriggerComment;
      WriteMethod     write_mteTriggerTest;
      WriteMethod     write_mteTriggerSampleType;
@@ -243,7 +243,8 @@ config_error(disman/mteTriggerTable depends on the Callback transport)
      WriteMethod     write_mteTriggerObjects;
      WriteMethod     write_mteTriggerEnabled;
      WriteMethod     write_mteTriggerEntryStatus;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+
+     WriteMethod     write_mteTriggerEntryStatus;
 
      void            mte_enable_trigger(struct mteTriggerTable_data *item);
      void            mte_disable_trigger(struct mteTriggerTable_data
diff --git a/agent/mibgroup/disman/mteTriggerThresholdTable.c b/agent/mibgroup/disman/mteTriggerThresholdTable.c
index 93c02b2..11fa068 100644
--- a/agent/mibgroup/disman/mteTriggerThresholdTable.c
+++ b/agent/mibgroup/disman/mteTriggerThresholdTable.c
@@ -48,115 +48,62 @@ oid             mteTriggerThresholdTable_variables_oid[] =
  */
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 struct variable2 mteTriggerThresholdTable_variables[] = {
     /*
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define   MTETRIGGERTHRESHOLDSTARTUP  3
-    {MTETRIGGERTHRESHOLDSTARTUP, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDSTARTUP, ASN_INTEGER, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 1}},
 #define   MTETRIGGERTHRESHOLDRISING  4
-    {MTETRIGGERTHRESHOLDRISING, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDRISING, ASN_INTEGER, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 2}},
 #define   MTETRIGGERTHRESHOLDFALLING  5
-    {MTETRIGGERTHRESHOLDFALLING, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDFALLING, ASN_INTEGER, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 3}},
 #define   MTETRIGGERTHRESHOLDDELTARISING  6
-    {MTETRIGGERTHRESHOLDDELTARISING, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDDELTARISING, ASN_INTEGER, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 4}},
 #define   MTETRIGGERTHRESHOLDDELTAFALLING  7
-    {MTETRIGGERTHRESHOLDDELTAFALLING, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDDELTAFALLING, ASN_INTEGER, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 5}},
 #define   MTETRIGGERTHRESHOLDOBJECTSOWNER  8
-    {MTETRIGGERTHRESHOLDOBJECTSOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDOBJECTSOWNER, ASN_OCTET_STR, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 6}},
 #define   MTETRIGGERTHRESHOLDOBJECTS  9
-    {MTETRIGGERTHRESHOLDOBJECTS, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDOBJECTS, ASN_OCTET_STR, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 7}},
 #define   MTETRIGGERTHRESHOLDRISINGEVENTOWNER  10
-    {MTETRIGGERTHRESHOLDRISINGEVENTOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDRISINGEVENTOWNER, ASN_OCTET_STR, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 8}},
 #define   MTETRIGGERTHRESHOLDRISINGEVENT  11
-    {MTETRIGGERTHRESHOLDRISINGEVENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDRISINGEVENT, ASN_OCTET_STR, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 9}},
 #define   MTETRIGGERTHRESHOLDFALLINGEVENTOWNER  12
-    {MTETRIGGERTHRESHOLDFALLINGEVENTOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDFALLINGEVENTOWNER, ASN_OCTET_STR, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 10}},
 #define   MTETRIGGERTHRESHOLDFALLINGEVENT  13
-    {MTETRIGGERTHRESHOLDFALLINGEVENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDFALLINGEVENT, ASN_OCTET_STR, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 11}},
 #define   MTETRIGGERTHRESHOLDDELTARISINGEVENTOWNER  14
-    {MTETRIGGERTHRESHOLDDELTARISINGEVENTOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDDELTARISINGEVENTOWNER, ASN_OCTET_STR, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 12}},
 #define   MTETRIGGERTHRESHOLDDELTARISINGEVENT  15
-    {MTETRIGGERTHRESHOLDDELTARISINGEVENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDDELTARISINGEVENT, ASN_OCTET_STR, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 13}},
 #define   MTETRIGGERTHRESHOLDDELTAFALLINGEVENTOWNER  16
-    {MTETRIGGERTHRESHOLDDELTAFALLINGEVENTOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDDELTAFALLINGEVENTOWNER, ASN_OCTET_STR, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 14}},
 #define   MTETRIGGERTHRESHOLDDELTAFALLINGEVENT  17
-    {MTETRIGGERTHRESHOLDDELTAFALLINGEVENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {MTETRIGGERTHRESHOLDDELTAFALLINGEVENT, ASN_OCTET_STR, RWRITE,
      var_mteTriggerThresholdTable, 2, {1, 15}},
-};
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-struct variable2 mteTriggerThresholdTable_variables[] = {
-    /*
-     * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
-     */
-#define   MTETRIGGERTHRESHOLDSTARTUP  3
-    {MTETRIGGERTHRESHOLDSTARTUP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 1}},
-#define   MTETRIGGERTHRESHOLDRISING  4
-    {MTETRIGGERTHRESHOLDRISING, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 2}},
-#define   MTETRIGGERTHRESHOLDFALLING  5
-    {MTETRIGGERTHRESHOLDFALLING, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 3}},
-#define   MTETRIGGERTHRESHOLDDELTARISING  6
-    {MTETRIGGERTHRESHOLDDELTARISING, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 4}},
-#define   MTETRIGGERTHRESHOLDDELTAFALLING  7
-    {MTETRIGGERTHRESHOLDDELTAFALLING, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 5}},
-#define   MTETRIGGERTHRESHOLDOBJECTSOWNER  8
-    {MTETRIGGERTHRESHOLDOBJECTSOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 6}},
-#define   MTETRIGGERTHRESHOLDOBJECTS  9
-    {MTETRIGGERTHRESHOLDOBJECTS, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 7}},
-#define   MTETRIGGERTHRESHOLDRISINGEVENTOWNER  10
-    {MTETRIGGERTHRESHOLDRISINGEVENTOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 8}},
-#define   MTETRIGGERTHRESHOLDRISINGEVENT  11
-    {MTETRIGGERTHRESHOLDRISINGEVENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 9}},
-#define   MTETRIGGERTHRESHOLDFALLINGEVENTOWNER  12
-    {MTETRIGGERTHRESHOLDFALLINGEVENTOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 10}},
-#define   MTETRIGGERTHRESHOLDFALLINGEVENT  13
-    {MTETRIGGERTHRESHOLDFALLINGEVENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 11}},
-#define   MTETRIGGERTHRESHOLDDELTARISINGEVENTOWNER  14
-    {MTETRIGGERTHRESHOLDDELTARISINGEVENTOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 12}},
-#define   MTETRIGGERTHRESHOLDDELTARISINGEVENT  15
-    {MTETRIGGERTHRESHOLDDELTARISINGEVENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 13}},
-#define   MTETRIGGERTHRESHOLDDELTAFALLINGEVENTOWNER  16
-    {MTETRIGGERTHRESHOLDDELTAFALLINGEVENTOWNER, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 14}},
-#define   MTETRIGGERTHRESHOLDDELTAFALLINGEVENT  17
-    {MTETRIGGERTHRESHOLDDELTAFALLINGEVENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mteTriggerThresholdTable, 2, {1, 15}},
-};
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
 
+};
 /*
  * (L = length of the oidsuffix) 
  */
 
+
 /*
  * global storage of our data, saved in and configured by header_complex() 
  */
@@ -204,10 +151,6 @@ var_mteTriggerThresholdTable(struct variable *vp,
 
     DEBUGMSGTL(("mteTriggerThresholdTable",
                 "var_mteTriggerThresholdTable: Entering...  \n"));
-
-	/* set default value */
-	*write_method = NULL;
-
     /*
      * this assumes you have registered all your data properly
      */
@@ -227,110 +170,80 @@ var_mteTriggerThresholdTable(struct variable *vp,
 
 
     case MTETRIGGERTHRESHOLDSTARTUP:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdStartup;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerThresholdStartup);
         return (u_char *) & StorageTmp->mteTriggerThresholdStartup;
 
     case MTETRIGGERTHRESHOLDRISING:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdRising;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerThresholdRising);
         return (u_char *) & StorageTmp->mteTriggerThresholdRising;
 
     case MTETRIGGERTHRESHOLDFALLING:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdFalling;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerThresholdFalling);
         return (u_char *) & StorageTmp->mteTriggerThresholdFalling;
 
     case MTETRIGGERTHRESHOLDDELTARISING:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdDeltaRising;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerThresholdDeltaRising);
         return (u_char *) & StorageTmp->mteTriggerThresholdDeltaRising;
 
     case MTETRIGGERTHRESHOLDDELTAFALLING:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdDeltaFalling;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->mteTriggerThresholdDeltaFalling);
         return (u_char *) & StorageTmp->mteTriggerThresholdDeltaFalling;
 
     case MTETRIGGERTHRESHOLDOBJECTSOWNER:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdObjectsOwner;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerThresholdObjectsOwnerLen;
         return (u_char *) StorageTmp->mteTriggerThresholdObjectsOwner;
 
     case MTETRIGGERTHRESHOLDOBJECTS:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdObjects;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerThresholdObjectsLen;
         return (u_char *) StorageTmp->mteTriggerThresholdObjects;
 
     case MTETRIGGERTHRESHOLDRISINGEVENTOWNER:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdRisingEventOwner;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerThresholdRisingEventOwnerLen;
         return (u_char *) StorageTmp->mteTriggerThresholdRisingEventOwner;
 
     case MTETRIGGERTHRESHOLDRISINGEVENT:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdRisingEvent;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerThresholdRisingEventLen;
         return (u_char *) StorageTmp->mteTriggerThresholdRisingEvent;
 
     case MTETRIGGERTHRESHOLDFALLINGEVENTOWNER:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdFallingEventOwner;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerThresholdFallingEventOwnerLen;
         return (u_char *) StorageTmp->mteTriggerThresholdFallingEventOwner;
 
     case MTETRIGGERTHRESHOLDFALLINGEVENT:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdFallingEvent;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerThresholdFallingEventLen;
         return (u_char *) StorageTmp->mteTriggerThresholdFallingEvent;
 
     case MTETRIGGERTHRESHOLDDELTARISINGEVENTOWNER:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdDeltaRisingEventOwner;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerThresholdDeltaRisingEventOwnerLen;
         return (u_char *) StorageTmp->
             mteTriggerThresholdDeltaRisingEventOwner;
 
     case MTETRIGGERTHRESHOLDDELTARISINGEVENT:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdDeltaRisingEvent;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerThresholdDeltaRisingEventLen;
         return (u_char *) StorageTmp->mteTriggerThresholdDeltaRisingEvent;
 
     case MTETRIGGERTHRESHOLDDELTAFALLINGEVENTOWNER:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdDeltaFallingEventOwner;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len =
             StorageTmp->mteTriggerThresholdDeltaFallingEventOwnerLen;
         return (u_char *) StorageTmp->
             mteTriggerThresholdDeltaFallingEventOwner;
 
     case MTETRIGGERTHRESHOLDDELTAFALLINGEVENT:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_mteTriggerThresholdDeltaFallingEvent;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = StorageTmp->mteTriggerThresholdDeltaFallingEventLen;
         return (u_char *) StorageTmp->mteTriggerThresholdDeltaFallingEvent;
 
@@ -343,7 +256,7 @@ var_mteTriggerThresholdTable(struct variable *vp,
 
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
+
 int
 write_mteTriggerThresholdStartup(int action,
                                  u_char * var_val,
@@ -1696,5 +1609,3 @@ write_mteTriggerThresholdDeltaFallingEvent(int action,
     }
     return SNMP_ERR_NOERROR;
 }
-
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
diff --git a/agent/mibgroup/disman/mteTriggerThresholdTable.h b/agent/mibgroup/disman/mteTriggerThresholdTable.h
index 8f33011..7aa6cec 100644
--- a/agent/mibgroup/disman/mteTriggerThresholdTable.h
+++ b/agent/mibgroup/disman/mteTriggerThresholdTable.h
@@ -27,7 +27,6 @@ config_require(header_complex)
      void            init_mteTriggerThresholdTable(void);
      FindVarMethod   var_mteTriggerThresholdTable;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
      WriteMethod     write_mteTriggerThresholdStartup;
      WriteMethod     write_mteTriggerThresholdRising;
      WriteMethod     write_mteTriggerThresholdFalling;
@@ -43,6 +42,5 @@ config_require(header_complex)
      WriteMethod     write_mteTriggerThresholdDeltaRisingEvent;
      WriteMethod     write_mteTriggerThresholdDeltaFallingEventOwner;
      WriteMethod     write_mteTriggerThresholdDeltaFallingEvent;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
 #endif                          /* _MIBGROUP_MTETRIGGERTHRESHOLDTABLE_H */
diff --git a/agent/mibgroup/disman/nslookup/lookupCtlTable.c b/agent/mibgroup/disman/nslookup/lookupCtlTable.c
index 3048999..7d21b04 100644
--- a/agent/mibgroup/disman/nslookup/lookupCtlTable.c
+++ b/agent/mibgroup/disman/nslookup/lookupCtlTable.c
@@ -6,6 +6,7 @@
  *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
@@ -15,34 +16,33 @@
 /*
  * This should always be included first before anything else 
  */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
+#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
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(header_complex_find_entry)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
+#include <netdb.h>
+#include <netinet/in.h>
 
+#include <sys/types.h>
+#include <sys/socket.h>
 #include <arpa/inet.h>
-#include <netdb.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 "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.
  */
@@ -51,56 +51,27 @@ oid             lookupCtlTable_variables_oid[] =
     { 1, 3, 6, 1, 2, 1, 82, 1, 3 };
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-struct variable2 lookupCtlTable_variables[] = {
-    /*
-     * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix
-     */
-    {COLUMN_LOOKUPCTLTARGETADDRESSTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_lookupCtlTable, 2, {1, 3}},
-    {COLUMN_LOOKUPCTLTARGETADDRESS,   ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_lookupCtlTable, 2, {1, 4}},
-    {COLUMN_LOOKUPCTLOPERSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_lookupCtlTable, 2, {1, 5}},
-    {COLUMN_LOOKUPCTLTIME,      ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_lookupCtlTable, 2, {1, 6}},
-    {COLUMN_LOOKUPCTLRC,         ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_lookupCtlTable, 2, {1, 7}},
-    {COLUMN_LOOKUPCTLROWSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_lookupCtlTable, 2, {1, 8}}
-};
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
 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_RONLY,
-     var_lookupCtlTable, 2, {1, 3}},
-    {COLUMN_LOOKUPCTLTARGETADDRESS,   ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_lookupCtlTable, 2, {1, 4}},
-    {COLUMN_LOOKUPCTLOPERSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_lookupCtlTable, 2, {1, 5}},
-    {COLUMN_LOOKUPCTLTIME,      ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_lookupCtlTable, 2, {1, 6}},
-    {COLUMN_LOOKUPCTLRC,         ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_lookupCtlTable, 2, {1, 7}},
-    {COLUMN_LOOKUPCTLROWSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_lookupCtlTable, 2, {1, 8}}
+    {COLUMN_LOOKUPCTLTARGETADDRESSTYPE, ASN_INTEGER, RWRITE, var_lookupCtlTable, 2, {1, 3}},
+    {COLUMN_LOOKUPCTLTARGETADDRESS,   ASN_OCTET_STR, RWRITE, var_lookupCtlTable, 2, {1, 4}},
+    {COLUMN_LOOKUPCTLOPERSTATUS, ASN_INTEGER, RONLY, var_lookupCtlTable, 2, {1, 5}},
+    {COLUMN_LOOKUPCTLTIME,      ASN_UNSIGNED, RONLY, var_lookupCtlTable, 2, {1, 6}},
+    {COLUMN_LOOKUPCTLRC,         ASN_INTEGER, RONLY, var_lookupCtlTable, 2, {1, 7}},
+    {COLUMN_LOOKUPCTLROWSTATUS, ASN_INTEGER, RWRITE, var_lookupCtlTable, 2, {1, 8}}
 };
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
 
 /*
  * global storage of our data, saved in and configured by header_complex() 
  */
 
+
 struct header_complex_index *lookupCtlTableStorage = NULL;
 struct header_complex_index *lookupResultsTableStorage = NULL;
 
-int modify_lookupCtlTime(struct lookupTable_data *thedata, unsigned long val);
-int modify_lookupCtlOperStatus(struct lookupTable_data *thedata, long val);
-int modify_lookupCtlRc(struct lookupTable_data *thedata, long val);
-
 void
 init_lookupCtlTable(void)
 {
@@ -133,12 +104,11 @@ create_lookupTable_data(void)
     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;
@@ -152,17 +122,16 @@ lookupCtlTable_add(struct lookupTable_data *thedata)
 {
     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);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-        (char *) thedata->lookupCtlOperationName,
-        thedata->lookupCtlOperationNameLen);
+
+
+    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 */
 
 
     if (header_complex_add_data(&lookupCtlTableStorage, vars, thedata) ==
@@ -184,15 +153,10 @@ lookupResultsTable_add(struct lookupTable_data *thedata)
     p = thedata->ResultsTable;
     if (thedata->ResultsTable != NULL)
         do {
-            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));
+            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 */
+
 
             DEBUGMSGTL(("lookupResultsTable", "adding data...  "));
             /*
@@ -210,8 +174,8 @@ lookupResultsTable_add(struct lookupTable_data *thedata)
             p = p->next;
         } while (p != NULL);
 
+
     DEBUGMSGTL(("lookupResultsTable", "done.\n"));
-    return SNMPERR_SUCCESS;
 }
 
 void
@@ -246,7 +210,8 @@ void
 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...  "));
 
@@ -329,8 +294,10 @@ store_lookupCtlTable(int majorID, int minorID, void *serverarg,
     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;
@@ -340,6 +307,7 @@ store_lookupCtlTable(int majorID, int minorID, void *serverarg,
             strcat(line, "lookupCtlTable ");
             cptr = line + strlen(line);
 
+
             cptr =
                 read_config_store_data(ASN_OCTET_STR, cptr,
                                        &StorageTmp->lookupCtlOwnerIndex,
@@ -376,6 +344,9 @@ store_lookupCtlTable(int majorID, int minorID, void *serverarg,
                 read_config_store_data(ASN_INTEGER, cptr,
                                        &StorageTmp->lookupCtlRowStatus,
                                        &tmpint);
+
+
+
             snmpd_store_config(line);
         }
     }
@@ -397,8 +368,9 @@ var_lookupCtlTable(struct variable *vp,
                    size_t *length,
                    int exact, size_t *var_len, WriteMethod ** write_method)
 {
+
+
     struct lookupTable_data *StorageTmp = NULL;
-        *write_method = NULL;
 
     /*
      * this assumes you have registered all your data properly
@@ -415,37 +387,38 @@ var_lookupCtlTable(struct variable *vp,
      * this is where we do the value assignments for the mib results.
      */
     switch (vp->magic) {
+
+
     case COLUMN_LOOKUPCTLTARGETADDRESSTYPE:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_lookupCtlTargetAddressType;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->lookupCtlTargetAddressType);
         return (u_char *) & StorageTmp->lookupCtlTargetAddressType;
 
     case COLUMN_LOOKUPCTLTARGETADDRESS:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_lookupCtlTargetAddress;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *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:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_lookupCtlRowStatus;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         *var_len = sizeof(StorageTmp->lookupCtlRowStatus);
+
         return (u_char *) & StorageTmp->lookupCtlRowStatus;
 
     default:
@@ -455,67 +428,35 @@ var_lookupCtlTable(struct variable *vp,
 }
 
 
-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 *head = NULL;
     struct lookupResultsTable_data *current = NULL;
     struct lookupResultsTable_data *temp = NULL;
-    int             i = 0, n = 1;
+    int             i = 0, n = 1, t = 0;
+
+    /* for ipv4,ipv6 */
+    unsigned int    addr_in, addr_in6;
+    struct hostent *lookup = NULL;
+    struct sockaddr_in *addr = NULL;
 
     struct timeval  tpstart, tpend;
-    unsigned long   timeuse, timeuse4 = 0, timeuse6 = 0;
+    unsigned long   timeuse, timeuse4, timeuse6;
+
+    /* for dns */
+
+    struct in_addr  a;
+    struct in6_addr a6;
+    char           *strptr = NULL;
+    struct addrinfo hints, *res = NULL, *tempinfo = NULL;
+    struct sockaddr_in6 myaddress6;
+    char            buf[BUFSIZ];
+
 
     if (item == NULL)
         return;
@@ -526,275 +467,454 @@ run_lookup(struct lookupTable_data *item)
     memcpy(address, item->lookupCtlTargetAddress, addresslen + 1);
     address[addresslen] = '\0';
 
-    if (addressType == INETADDRESSTYPE_IPV4) {
-        struct in_addr addr_in;
-        struct hostent *lookup;
-
-        if (!inet_aton(address, &addr_in)) {
+    if (addressType == 1) {
+        addr_in = inet_addr(address);
+        if (addr_in == 0xffffffff
+            && strcmp(address, "255.255.255.255") != 0) {
             DEBUGMSGTL(("lookupResultsTable", "Invalid argument: %s\n",
                         address));
-            modify_lookupCtlRc(item, 99);
             return;
         }
 
-        netsnmp_get_monotonic_clock(&tpstart);
-        lookup = netsnmp_gethostbyaddr(&addr_in, sizeof(addr_in), AF_INET);
-        netsnmp_get_monotonic_clock(&tpend);
+        gettimeofday(&tpstart, NULL);
+        lookup = gethostbyaddr((char *) &addr_in, 4, 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, h_errno);
+            modify_lookupCtlRc(item, 1l);
             return;
         } else {
-            modify_lookupCtlRc(item, 0L);
+            modify_lookupCtlRc(item, 0l);
             if (lookup->h_name != NULL) {
-                current = temp = add_result(item, n, INETADDRESSTYPE_DNS,
-                            lookup->h_name, strlen(lookup->h_name));
+                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;
                 n = n + 1;
+
             }
 
             i = 0;
             while (lookup->h_aliases[i]) {
-                temp = add_result(item, n, INETADDRESSTYPE_DNS,
-                            lookup->h_aliases[i], strlen(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]);
                 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 == INETADDRESSTYPE_DNS) {
-        struct hostent *lookup;
-#if HAVE_GETADDRINFO
-        int             res;
-        struct addrinfo *ais;
-        struct addrinfo hints = { 0, AF_INET6, SOCK_DGRAM };
-#endif
+    else if (addressType == 16) {
 
-        netsnmp_get_monotonic_clock(&tpstart);
-        lookup = netsnmp_gethostbyname(address);
-        netsnmp_get_monotonic_clock(&tpend);
+        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[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;
-            }
-        }
+            while (*lookup->h_addr_list) {
+                bcopy(*lookup->h_addr_list++, (char *) &a, sizeof(a));
 
-#if HAVE_GETADDRINFO
-        netsnmp_get_monotonic_clock(&tpstart);
-        res = netsnmp_getaddrinfo(address, NULL, &hints, &ais);
-        netsnmp_get_monotonic_clock(&tpend);
-        timeuse6 = 1000000 * (tpend.tv_sec - tpstart.tv_sec) +
-            tpend.tv_usec - tpstart.tv_usec;
+                temp = SNMP_MALLOC_STRUCT(lookupResultsTable_data);
+                if (temp == NULL) {
+                    exit(1);
+                }
+                temp->lookupResultsIndex = n;
 
-        if (res != 0) {
-            DEBUGMSGTL(("lookupCtlTable",
-                        "Can't get a ipv6 network host entry for %s\n",
-                        address));
-            modify_lookupCtlRc(item, res);
-        } else {
-            struct addrinfo *aip = ais;
-            while (aip) {
-                char buf[64];
-                int buflen;
-
-                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->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);
                 }
-                DEBUGMSGTL(("lookupCtlTable", "Adding %d %s\n", n, buf));
 
+                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;
-                aip = aip->ai_next;
+
             }
-            freeaddrinfo(ais);
+            current->next = NULL;
+            t = n;
+
         }
-#elif HAVE_GETHOSTBYNAME2
-        netsnmp_get_monotonic_clock(&tpstart);
-        lookup = gethostbyname2(address, AF_INET6);
-        netsnmp_get_monotonic_clock(&tpend);
+
+        struct hostent *hp;
+        char            pa[64];
+        char           *hostname = NULL;
+
+        gettimeofday(&tpstart, NULL);
+        hp = gethostbyname2(address, AF_INET6);
+        gettimeofday(&tpend, NULL);
         timeuse6 = 1000000 * (tpend.tv_sec - tpstart.tv_sec) +
             tpend.tv_usec - tpstart.tv_usec;
+        timeuse6 /= 1000;
 
-        if (lookup == NULL) {
+        if (hp == 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;
+            while (*hp->h_addr_list) {
+                memmove((caddr_t) & a6, *hp->h_addr_list++, 16);
+                hostname = (char *) hp->h_name;
+
+                temp = SNMP_MALLOC_STRUCT(lookupResultsTable_data);
+                if (temp == NULL) {
+                    exit(1);
                 }
-                DEBUGMSGTL(("lookupCtlTable", "Adding %d %s\n", n, buf));
+                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 = 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;
-                i = i + 1;
+
             }
+            current->next = NULL;
         }
-#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"));
 
-        netsnmp_get_monotonic_clock(&tpstart);
-        lookup = netsnmp_gethostbyaddr(&addr_in6, sizeof(addr_in6), AF_INET6);
-        netsnmp_get_monotonic_clock(&tpend);
+
+        gettimeofday(&tpstart, NULL);
+        lookup = gethostbyaddr((char *) &addr_in6, 16, 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, h_errno);
+            modify_lookupCtlRc(item, 1l);
             return;
         } else {
-            modify_lookupCtlRc(item, 0L);
+            modify_lookupCtlRc(item, 0l);
             if (lookup->h_name != NULL) {
-                current = temp = add_result(item, n, INETADDRESSTYPE_DNS,
-                            lookup->h_name, strlen(lookup->h_name));
+                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;
                 n = n + 1;
+
             }
 
             i = 0;
             while (lookup->h_aliases[i]) {
-                current = temp = add_result(item, n, INETADDRESSTYPE_DNS,
-                            lookup->h_aliases[i], strlen(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->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;
     }
 }
@@ -806,11 +926,8 @@ modify_lookupCtlOperStatus(struct lookupTable_data *thedata, long val)
     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);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-        (char *) thedata->lookupCtlOperationName,
-        thedata->lookupCtlOperationNameLen);
+    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 */
 
 
     if ((StorageTmp =
@@ -834,11 +951,8 @@ modify_lookupCtlTime(struct lookupTable_data *thedata, unsigned long val)
     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);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-        (char *) thedata->lookupCtlOperationName,
-        thedata->lookupCtlOperationNameLen);
+    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 */
 
 
     if ((StorageTmp =
@@ -862,11 +976,8 @@ modify_lookupCtlRc(struct lookupTable_data *thedata, long val)
     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);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-        (char *) thedata->lookupCtlOperationName,
-        thedata->lookupCtlOperationNameLen);
+    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 */
 
 
     if ((StorageTmp =
@@ -893,12 +1004,9 @@ lookupResultsTable_del(struct lookupTable_data *thedata)
     oid             newoid[MAX_OID_LEN];
     size_t          newoid_len;
 
-    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));
+    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 */
+    bzero(newoid, MAX_OID_LEN * sizeof(oid));
     header_complex_generate_oid(newoid, &newoid_len, NULL, 0, vars);
 
 
@@ -925,7 +1033,6 @@ lookupResultsTable_del(struct lookupTable_data *thedata)
 }
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 int
 write_lookupCtlTargetAddressType(int action,
                                  u_char * var_val,
@@ -936,6 +1043,7 @@ write_lookupCtlTargetAddressType(int action,
 {
     static size_t   tmpvar;
     struct lookupTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(lookupCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -963,28 +1071,32 @@ write_lookupCtlTargetAddressType(int action,
         }
         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 
@@ -992,15 +1104,12 @@ write_lookupCtlTargetAddressType(int action,
         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;
@@ -1043,32 +1152,37 @@ write_lookupCtlTargetAddress(int action,
                      "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);
@@ -1077,6 +1191,7 @@ write_lookupCtlTargetAddress(int action,
 
         break;
 
+
     case UNDO:
         /*
          * Back out any changes made in the ACTION case 
@@ -1088,6 +1203,7 @@ write_lookupCtlTargetAddress(int action,
 
         break;
 
+
     case COMMIT:
         /*
          * Things are working well, so it's now safe to make the change
@@ -1097,9 +1213,6 @@ write_lookupCtlTargetAddress(int action,
         free(tmpvar);
         tmpvar = NULL;
 
-        /** set up to save persistent store */
-        snmp_store_needed(NULL);
-
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1107,6 +1220,9 @@ write_lookupCtlTargetAddress(int action,
 
 
 
+
+
+
 int
 write_lookupCtlRowStatus(int action,
                          u_char * var_val,
@@ -1115,7 +1231,7 @@ write_lookupCtlRowStatus(int action,
                          u_char * statP, oid * name, size_t name_len)
 {
     struct lookupTable_data *StorageTmp = NULL;
-    static struct lookupTable_data *StorageNew = NULL, *StorageDel = NULL;
+    static struct lookupTable_data *StorageNew, *StorageDel = NULL;
     size_t          newlen =
         name_len - (sizeof(lookupCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -1162,6 +1278,7 @@ write_lookupCtlRowStatus(int action,
              * ditch illegal values now 
              */
             if (set_value == RS_ACTIVE || set_value == RS_NOTINSERVICE) {
+
                 return SNMP_ERR_INCONSISTENTVALUE;
             }
 
@@ -1263,7 +1380,7 @@ write_lookupCtlRowStatus(int action,
              * XXX: fill in default row values here into StorageNew 
              */
 
-            StorageNew->lookupCtlTargetAddressType = INETADDRESSTYPE_IPV4;
+            StorageNew->lookupCtlTargetAddressType = 1; /* ipv4 */
 
             StorageNew->lookupCtlRowStatus = set_value;
 
@@ -1274,8 +1391,13 @@ write_lookupCtlRowStatus(int action,
              * XXX: free, zero vars, no longer needed? 
              */
         }
+
+
         break;
 
+
+
+
     case FREE:
         /*
          * XXX: free, zero vars 
@@ -1285,6 +1407,9 @@ write_lookupCtlRowStatus(int action,
          */
         break;
 
+
+
+
     case ACTION:
         /*
          * The variable has been stored in set_value for you to
@@ -1292,6 +1417,8 @@ write_lookupCtlRowStatus(int action,
          * it.  Note that anything done here must be reversable in
          * the UNDO case 
          */
+
+
         if (StorageTmp == NULL) {
             /*
              * row creation, so add it 
@@ -1300,9 +1427,11 @@ write_lookupCtlRowStatus(int action,
                 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? 
@@ -1334,6 +1463,9 @@ write_lookupCtlRowStatus(int action,
         }
         break;
 
+
+
+
     case UNDO:
         /*
          * Back out any changes made in the ACTION case 
@@ -1365,6 +1497,9 @@ write_lookupCtlRowStatus(int action,
         }
         break;
 
+
+
+
     case COMMIT:
         /*
          * Things are working well, so it's now safe to make the change
@@ -1378,9 +1513,15 @@ write_lookupCtlRowStatus(int action,
 
         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 
              */
@@ -1396,20 +1537,18 @@ write_lookupCtlRowStatus(int action,
             }
         }
         if (StorageTmp && StorageTmp->lookupCtlRowStatus == RS_ACTIVE) {
+#if 1
             DEBUGMSGTL(("lookupCtlTable",
                         "write_lookupCtlRowStatus entering runbefore=%ld...  \n",
                         StorageTmp->lookupCtlTargetAddressType));
 
-            modify_lookupCtlOperStatus(StorageTmp, 2L);
+#endif
+            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;
 }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
diff --git a/agent/mibgroup/disman/nslookup/lookupCtlTable.h b/agent/mibgroup/disman/nslookup/lookupCtlTable.h
index 085b25b..f73b062 100644
--- a/agent/mibgroup/disman/nslookup/lookupCtlTable.h
+++ b/agent/mibgroup/disman/nslookup/lookupCtlTable.h
@@ -24,8 +24,9 @@ config_require(header_complex);
     /*
      * our storage structure(s) 
      */
-
 struct lookupTable_data {
+
+
     char           *lookupCtlOwnerIndex;        /* string */
     size_t          lookupCtlOwnerIndexLen;
     char           *lookupCtlOperationName;     /* string */
@@ -40,10 +41,10 @@ struct lookupTable_data {
     int             storagetype;
 
     struct lookupResultsTable_data *ResultsTable;
-};
 
 
-struct lookupResultsTable_data {
+};
+typedef struct lookupResultsTable_data {
     struct lookupResultsTable_data *next;
     char           *lookupCtlOwnerIndex;        /* string */
     size_t          lookupCtlOwnerIndexLen;
@@ -54,7 +55,7 @@ struct lookupResultsTable_data {
     char           *lookupResultsAddress;
     size_t          lookupResultsAddressLen;
     int             storagetype;
-};
+} resultsIns;
 
 /*
  * function declarations 
@@ -64,24 +65,23 @@ FindVarMethod   var_lookupCtlTable;
 void            parse_lookupCtlTable(const char *, char *);
 SNMPCallback    store_lookupCtlTable;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
+
 WriteMethod     write_lookupCtlTargetAddressType;
 WriteMethod     write_lookupCtlTargetAddress;
 WriteMethod     write_lookupCtlRowStatus;
 
 WriteMethod     write_lookupCtlRowStatus;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
 /*
  * column number definitions for table lookupCtlTable 
  */
 #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 d6a937c..b011140 100644
--- a/agent/mibgroup/disman/nslookup/lookupResultsTable.c
+++ b/agent/mibgroup/disman/nslookup/lookupResultsTable.c
@@ -14,6 +14,20 @@
 /*
  * 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>
@@ -28,10 +42,8 @@ oid             lookupResultsTable_variables_oid[] =
     { 1, 3, 6, 1, 2, 1, 82, 1, 4 };
 
 struct variable2 lookupResultsTable_variables[] = {
-    {COLUMN_LOOKUPRESULTSADDRESSTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_lookupResultsTable, 2, {1, 2}},
-    {COLUMN_LOOKUPRESULTSADDRESS,   ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_lookupResultsTable, 2, {1, 3}}
+    {COLUMN_LOOKUPRESULTSADDRESSTYPE, ASN_INTEGER, RONLY, var_lookupResultsTable, 2, {1, 2}},
+    {COLUMN_LOOKUPRESULTSADDRESS,   ASN_OCTET_STR, RONLY, var_lookupResultsTable, 2, {1, 3}}
 };
 
 /*
@@ -41,9 +53,6 @@ struct variable2 lookupResultsTable_variables[] = {
 extern struct header_complex_index *lookupCtlTableStorage;
 extern struct header_complex_index *lookupResultsTableStorage;
 
-int
-lookupResultsTable_inadd(struct lookupResultsTable_data *thedata);
-
 void
 lookupResultsTable_cleaner(struct header_complex_index *thestuff)
 {
@@ -225,15 +234,9 @@ lookupResultsTable_inadd(struct lookupResultsTable_data *thedata)
 {
     netsnmp_variable_list *vars_list = NULL;
 
-    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));
+    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 */
 
     /*
      * 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 b9add8f..b16f03d 100644
--- a/agent/mibgroup/disman/ping/pingCtlTable.c
+++ b/agent/mibgroup/disman/ping/pingCtlTable.c
@@ -17,10 +17,6 @@
  * This should always be included first before anything else 
  */
 
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -40,22 +36,16 @@
 #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 "pingCtlTable.h"
 #include "pingResultsTable.h"
 #include "pingProbeHistoryTable.h"
 #include "header_complex.h"
 
-static inline void tvsub(struct timeval *, struct timeval *);
-static inline int schedule_exit(int, int *, long *, long *, long *, long *);
-static inline int in_flight(__u16 *, long *, long *, long *);
-static inline void acknowledge(__u16, __u16 *, long *, int *);
-static inline void advance_ntransmitted(__u16 *, long *);
-static inline void update_interval(int, int, int *, int *);
-static long     llsqrt(long long);
-static __inline__ int ipv6_addr_any(struct in6_addr *);
-static char    *pr_addr(struct in6_addr *, int);
-static char    *pr_addr_n(struct in6_addr *);
-void pingCtlTable_cleaner(struct header_complex_index *thestuff);
 
 /*
  *pingCtlTable_variables_oid:
@@ -65,7 +55,6 @@ void pingCtlTable_cleaner(struct header_complex_index *thestuff);
 
 oid             pingCtlTable_variables_oid[] =
     { 1, 3, 6, 1, 2, 1, 80, 1, 2 };
-static const int pingCtlTable_variables_oid_len = sizeof(pingCtlTable_variables_oid)/sizeof(pingCtlTable_variables_oid[0]);
 
 /* trap */
 oid             pingProbeFailed[] = { 1, 3, 6, 1, 2, 1, 80, 0, 1 };
@@ -77,48 +66,27 @@ struct variable2 pingCtlTable_variables[] = {
     /*
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
-    {COLUMN_PINGCTLTARGETADDRESSTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 3}},
-    {COLUMN_PINGCTLTARGETADDRESS,   ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 4}},
-    {COLUMN_PINGCTLDATASIZE,         ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_pingCtlTable, 2, {1, 5}},
-    {COLUMN_PINGCTLTIMEOUT,          ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_pingCtlTable, 2, {1, 6}},
-    {COLUMN_PINGCTLPROBECOUNT,       ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_pingCtlTable, 2, {1, 7}},
-    {COLUMN_PINGCTLADMINSTATUS,       ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 8}},
-    {COLUMN_PINGCTLDATAFILL,        ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 9}},
-    {COLUMN_PINGCTLFREQUENCY,        ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 10}},
-    {COLUMN_PINGCTLMAXROWS,          ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 11}},
-    {COLUMN_PINGCTLSTORAGETYPE,       ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 12}},
-    {COLUMN_PINGCTLTRAPGENERATION,  ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 13}},
-    {COLUMN_PINGCTLTRAPPROBEFAILUREFILTER, ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 14}},
-    {COLUMN_PINGCTLTRAPTESTFAILUREFILTER,  ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 15}},
-    {COLUMN_PINGCTLTYPE,            ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 16}},
-    {COLUMN_PINGCTLDESCR,           ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 17}},
-    {COLUMN_PINGCTLSOURCEADDRESSTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 18}},
-    {COLUMN_PINGCTLSOURCEADDRESS,   ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 19}},
-    {COLUMN_PINGCTLIFINDEX,           ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 20}},
-    {COLUMN_PINGCTLBYPASSROUTETABLE,  ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 21}},
-    {COLUMN_PINGCTLDSFIELD,          ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 22}},
-    {COLUMN_PINGCTLROWSTATUS,         ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_pingCtlTable, 2, {1, 23}}
+    {COLUMN_PINGCTLTARGETADDRESSTYPE, ASN_INTEGER, RWRITE, var_pingCtlTable, 2, {1, 3}},
+    {COLUMN_PINGCTLTARGETADDRESS,   ASN_OCTET_STR, RWRITE, var_pingCtlTable, 2, {1, 4}},
+    {COLUMN_PINGCTLDATASIZE,         ASN_UNSIGNED, RONLY, var_pingCtlTable, 2, {1, 5}},
+    {COLUMN_PINGCTLTIMEOUT,          ASN_UNSIGNED, RONLY, var_pingCtlTable, 2, {1, 6}},
+    {COLUMN_PINGCTLPROBECOUNT,       ASN_UNSIGNED, RONLY, var_pingCtlTable, 2, {1, 7}},
+    {COLUMN_PINGCTLADMINSTATUS,       ASN_INTEGER, RWRITE, var_pingCtlTable, 2, {1, 8}},
+    {COLUMN_PINGCTLDATAFILL,        ASN_OCTET_STR, RWRITE, var_pingCtlTable, 2, {1, 9}},
+    {COLUMN_PINGCTLFREQUENCY,        ASN_UNSIGNED, RWRITE, var_pingCtlTable, 2, {1, 10}},
+    {COLUMN_PINGCTLMAXROWS,          ASN_UNSIGNED, RWRITE, var_pingCtlTable, 2, {1, 11}},
+    {COLUMN_PINGCTLSTORAGETYPE,       ASN_INTEGER, RWRITE, var_pingCtlTable, 2, {1, 12}},
+    {COLUMN_PINGCTLTRAPGENERATION,  ASN_OCTET_STR, RWRITE, var_pingCtlTable, 2, {1, 13}},
+    {COLUMN_PINGCTLTRAPPROBEFAILUREFILTER, ASN_UNSIGNED, RWRITE, var_pingCtlTable, 2, {1, 14}},
+    {COLUMN_PINGCTLTRAPTESTFAILUREFILTER,  ASN_UNSIGNED, RWRITE, var_pingCtlTable, 2, {1, 15}},
+    {COLUMN_PINGCTLTYPE,            ASN_OBJECT_ID, RWRITE, var_pingCtlTable, 2, {1, 16}},
+    {COLUMN_PINGCTLDESCR,           ASN_OCTET_STR, RWRITE, var_pingCtlTable, 2, {1, 17}},
+    {COLUMN_PINGCTLSOURCEADDRESSTYPE, ASN_INTEGER, RWRITE, var_pingCtlTable, 2, {1, 18}},
+    {COLUMN_PINGCTLSOURCEADDRESS,   ASN_OCTET_STR, RWRITE, var_pingCtlTable, 2, {1, 19}},
+    {COLUMN_PINGCTLIFINDEX,           ASN_INTEGER, RWRITE, var_pingCtlTable, 2, {1, 20}},
+    {COLUMN_PINGCTLBYPASSROUTETABLE,  ASN_INTEGER, RWRITE, var_pingCtlTable, 2, {1, 21}},
+    {COLUMN_PINGCTLDSFIELD,          ASN_UNSIGNED, RWRITE, var_pingCtlTable, 2, {1, 22}},
+    {COLUMN_PINGCTLROWSTATUS,         ASN_INTEGER, RWRITE, var_pingCtlTable, 2, {1, 23}}
 };
 
 
@@ -159,24 +127,14 @@ init_pingCtlTable(void)
     DEBUGMSGTL(("pingCtlTable", "done.\n"));
 }
 
-void shutdown_pingCtlTable(void)
-{
-    snmp_unregister_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_STORE_DATA,
-                             store_pingCtlTable, NULL, 1);
-    snmpd_unregister_config_handler("pingCtlTable");
-    unregister_mib(pingCtlTable_variables_oid, pingCtlTable_variables_oid_len);
-    pingCtlTable_cleaner(pingCtlTableStorage);
-    pingCtlTableStorage = NULL;
-}
-
 struct pingCtlTable_data *
 create_pingCtlTable_data(void)
 {
     struct pingCtlTable_data *StorageNew = NULL;
-
     StorageNew = SNMP_MALLOC_STRUCT(pingCtlTable_data);
-    if (StorageNew == NULL)
-        return NULL;
+    if (StorageNew == NULL) {
+        exit(1);
+    }
     StorageNew->pingCtlTargetAddressType = 1;
     StorageNew->pingCtlTargetAddress = strdup("");
     StorageNew->pingCtlTargetAddressLen = 0;
@@ -184,17 +142,19 @@ create_pingCtlTable_data(void)
     StorageNew->pingCtlTimeOut = 3;
     StorageNew->pingCtlProbeCount = 1;
     StorageNew->pingCtlAdminStatus = 2;
-    StorageNew->pingCtlDataFill = strdup("00");
+    StorageNew->pingCtlDataFill = (char *) malloc(strlen("00") + 1);
     if (StorageNew->pingCtlDataFill == NULL) {
-        free(StorageNew);
-        return NULL;
+        exit(1);
     }
+    memcpy(StorageNew->pingCtlDataFill, "00", strlen("00") + 1);
+    StorageNew->pingCtlDataFill[strlen("00")] = '\0';
     StorageNew->pingCtlDataFillLen = strlen(StorageNew->pingCtlDataFill);
     StorageNew->pingCtlFrequency = 0;
     StorageNew->pingCtlMaxRows = 50;
     StorageNew->pingCtlStorageType = 1;
     StorageNew->pingCtlTrapGeneration = strdup("");
     StorageNew->pingCtlTrapGenerationLen = 0;
+    StorageNew->pingCtlTrapGenerationLen = 0;
     StorageNew->pingCtlTrapProbeFailureFilter = 1;
     StorageNew->pingCtlTrapTestFailureFilter = 1;
     StorageNew->pingCtlType = calloc(1, sizeof(oid) * sizeof(2));       /* 0.0 */
@@ -215,20 +175,6 @@ create_pingCtlTable_data(void)
     return StorageNew;
 }
 
-static void free_pingCtlTable_data(struct pingCtlTable_data *StorageDel)
-{
-    netsnmp_assert(StorageDel);
-    free(StorageDel->pingCtlOwnerIndex);
-    free(StorageDel->pingCtlTestName);
-    free(StorageDel->pingCtlTargetAddress);
-    free(StorageDel->pingCtlDataFill);
-    free(StorageDel->pingCtlTrapGeneration);
-    free(StorageDel->pingCtlType);
-    free(StorageDel->pingCtlDescr);
-    free(StorageDel->pingCtlSourceAddress);
-    free(StorageDel);
-}
-
 /*
  * pingCtlTable_add(): adds a structure node to our data set 
  */
@@ -245,16 +191,15 @@ pingCtlTable_add(struct pingCtlTable_data *thedata)
      */
 
 
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              thedata->pingCtlOwnerIndex,
-                              thedata->pingCtlOwnerIndexLen);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              thedata->pingCtlTestName,
-                              thedata->pingCtlTestNameLen);
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlOwnerIndex, thedata->pingCtlOwnerIndexLen);       /* pingCtlOwnerIndex */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlTestName, thedata->pingCtlTestNameLen);   /* pingCtlOperationName */
+
+
     header_complex_add_data(&pingCtlTableStorage, vars, thedata);
 
     DEBUGMSGTL(("pingCtlTable", "registered an entry\n"));
-
+    vars = NULL;
+    DEBUGMSGTL(("pingCtlTable", "done.\n"));
     return SNMPERR_SUCCESS;
 }
 
@@ -262,16 +207,12 @@ int
 pingResultsTable_add(struct pingCtlTable_data *thedata)
 {
     netsnmp_variable_list *vars_list = NULL;
-    struct pingResultsTable_data *p;
-
+    struct pingResultsTable_data *p = NULL;
     p = thedata->pingResults;
     if (thedata->pingResults != NULL) {
 
-        snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR,
-                                  p->pingCtlOwnerIndex,
-                                  p->pingCtlOwnerIndexLen);
-        snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR,
-                                  p->pingCtlTestName, p->pingCtlTestNameLen);
+        snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR, (char *) p->pingCtlOwnerIndex, p->pingCtlOwnerIndexLen);  /* pingCtlOwnerIndex */
+        snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR, (char *) p->pingCtlTestName, p->pingCtlTestNameLen);      /* pingCtlOperationName */
 
         /*
          * XXX: fill in default row values here into StorageNew 
@@ -291,6 +232,8 @@ pingResultsTable_add(struct pingCtlTable_data *thedata)
 
     }
 
+    DEBUGMSGTL(("pingResultsTable", "done.\n"));
+    vars_list = NULL;
     return SNMPERR_SUCCESS;
 }
 
@@ -299,18 +242,11 @@ int
 pingProbeHistoryTable_add(struct pingProbeHistoryTable_data *thedata)
 {
     netsnmp_variable_list *vars_list;
-
     vars_list = NULL;
     if (thedata != NULL) {
-        snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR,
-                                  thedata->pingCtlOwnerIndex,
-                                  thedata->pingCtlOwnerIndexLen);
-        snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR,
-                                  thedata->pingCtlTestName,
-                                  thedata->pingCtlTestNameLen);
-        snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_UNSIGNED,
-                                  &thedata->pingProbeHistoryIndex,
-                                  sizeof(thedata->pingProbeHistoryIndex));
+        snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlOwnerIndex, thedata->pingCtlOwnerIndexLen);      /* pingCtlOwnerIndex */
+        snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlTestName, thedata->pingCtlTestNameLen);  /* pingCtlTestName */
+        snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_UNSIGNED, (char *) &thedata->pingProbeHistoryIndex, sizeof(thedata->pingProbeHistoryIndex)); /* pingProbeHistoryIndex */
 
         /*
          * XXX: fill in default row values here into StorageNew 
@@ -329,43 +265,57 @@ pingProbeHistoryTable_add(struct pingProbeHistoryTable_data *thedata)
         DEBUGMSGTL(("pingProbeHistoryTable", "out finished\n"));
     }
     
+    vars_list = NULL;
+    DEBUGMSGTL(("pingProbeHistoryTable", "done.\n"));
     return SNMPERR_SUCCESS;
 }
 
 int
 pingProbeHistoryTable_addall(struct pingCtlTable_data *thedata)
 {
-    netsnmp_variable_list *vars_list;
-    struct pingProbeHistoryTable_data *p;
-
-    for (p = thedata->pingProbeHis; p; p = p->next) {
-        vars_list = NULL;
-        snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR,
-                                  p->pingCtlOwnerIndex,
-                                  p->pingCtlOwnerIndexLen);
-        snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR,
-                                  p->pingCtlTestName,
-                                  p->pingCtlTestNameLen);
-        snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_UNSIGNED,
-                                  &p->pingProbeHistoryIndex,
-                                  sizeof(p->pingProbeHistoryIndex));
-        header_complex_add_data(&pingProbeHistoryTableStorage, vars_list, p);
-    }
+    netsnmp_variable_list *vars_list = NULL;
+    struct pingProbeHistoryTable_data *p = NULL;
+    p = thedata->pingProbeHis;
+    if (thedata->pingProbeHis != NULL)
+        do {
+            snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR, (char *) p->pingCtlOwnerIndex, p->pingCtlOwnerIndexLen);      /* pingCtlOwnerIndex */
+            snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR, (char *) p->pingCtlTestName, p->pingCtlTestNameLen);  /* pingCtlTestName */
+            snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_UNSIGNED, (char *) &p->pingProbeHistoryIndex, sizeof(p->pingProbeHistoryIndex)); /* pingProbeHistoryIndex */
 
+            /*
+             * XXX: fill in default row values here into StorageNew 
+             * 
+             */
+
+
+            DEBUGMSGTL(("pingProbeHistoryTable", "adding data...  "));
+            /*
+             * add the index variables to the varbind list, which is 
+             * used by header_complex to index the data 
+             */
+
+            header_complex_add_data(&pingProbeHistoryTableStorage,
+                                    vars_list, p);
+
+
+            DEBUGMSGTL(("pingProbeHistoryTable", "out finished\n"));
+            vars_list = NULL;
+            p = p->next;
+        } while (p != NULL);
+
+    DEBUGMSGTL(("pingProbeHistoryTable", "done.\n"));
     return SNMPERR_SUCCESS;
 }
 
 void
 pingCtlTable_cleaner(struct header_complex_index *thestuff)
 {
-    struct header_complex_index *hciptr, *next;
-    struct pingCtlTable_data *StorageDel;
-
+    struct header_complex_index *hciptr = NULL;
+    struct pingCtlTable_data *StorageDel = NULL;
     DEBUGMSGTL(("pingProbeHistoryTable", "cleanerout  "));
-    for (hciptr = thestuff; hciptr; hciptr = next) {
-        next = hciptr->next;
-        StorageDel = header_complex_extract_entry(&pingCtlTableStorage, hciptr);
-        free_pingCtlTable_data(StorageDel);
+    for (hciptr = thestuff; hciptr != NULL; hciptr = hciptr->next) {
+        StorageDel =
+            header_complex_extract_entry(&pingCtlTableStorage, hciptr);
         DEBUGMSGTL(("pingProbeHistoryTable", "cleaner  "));
     }
 }
@@ -688,6 +638,8 @@ store_pingCtlTable(int majorID, int minorID, void *serverarg,
 }
 
 
+
+
 /*
  * var_pingCtlTable():
  *   Handle this table separately from the scalar value case.
@@ -863,15 +815,10 @@ pingProbeHistoryTable_count(struct pingCtlTable_data *thedata)
     size_t          newoid_len;
     unsigned long   count = 0;
 
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              thedata->pingCtlOwnerIndex,
-                              thedata->pingCtlOwnerIndexLen);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              thedata->pingCtlTestName,
-                              thedata->pingCtlTestNameLen);
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlOwnerIndex, thedata->pingCtlOwnerIndexLen);       /* pingCtlOwnerIndex */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlTestName, thedata->pingCtlTestNameLen);   /* pingCtlOperationName */
 
     header_complex_generate_oid(newoid, &newoid_len, NULL, 0, vars);
-    snmp_free_varbind(vars);
 
     for (hciptr2 = pingProbeHistoryTableStorage; hciptr2 != NULL;
          hciptr2 = hciptr2->next) {
@@ -884,26 +831,26 @@ pingProbeHistoryTable_count(struct pingCtlTable_data *thedata)
 }
 
 
-void
+
+
+int
 pingProbeHistoryTable_delLast(struct pingCtlTable_data *thedata)
 {
     struct header_complex_index *hciptr2 = NULL;
     struct header_complex_index *hcilast = NULL;
-    struct pingProbeHistoryTable_data *StorageTmp, *StorageDel;
+    struct pingProbeHistoryTable_data *StorageDel = NULL;
+    struct pingProbeHistoryTable_data *StorageTmp = NULL;
     netsnmp_variable_list *vars = NULL;
     oid             newoid[MAX_OID_LEN];
     size_t          newoid_len;
     time_t          last_time = 2147483647;
-    time_t          tp;
-
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              thedata->pingCtlOwnerIndex,
-                              thedata->pingCtlOwnerIndexLen);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              thedata->pingCtlTestName,
-                              thedata->pingCtlTestNameLen);
+    struct tm      *tp;
+
+    tp = (struct tm *) malloc(sizeof(struct tm));
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlOwnerIndex, thedata->pingCtlOwnerIndexLen);       /* pingCtlOwnerIndex */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlTestName, thedata->pingCtlTestNameLen);   /* pingCtlOperationName */
+
     header_complex_generate_oid(newoid, &newoid_len, NULL, 0, vars);
-    snmp_free_varbind(vars);
 
     for (hcilast = hciptr2 = pingProbeHistoryTableStorage; hciptr2 != NULL;
          hciptr2 = hciptr2->next) {
@@ -914,36 +861,21 @@ pingProbeHistoryTable_delLast(struct pingCtlTable_data *thedata)
                 header_complex_get_from_oid(pingProbeHistoryTableStorage,
                                             hciptr2->name,
                                             hciptr2->namelen);
-            tp = StorageTmp->pingProbeHistoryTime_time;
+            strptime(StorageTmp->pingProbeHistoryTime, "%c", tp);
 
-            if (last_time > tp) {
-                last_time = tp;
+            if (last_time > timegm(tp)) {
+                last_time = timegm(tp);
                 hcilast = hciptr2;
             }
 
         }
     }
     StorageDel =
-        header_complex_extract_entry(&pingProbeHistoryTableStorage, hcilast);
-    for (hciptr2 = pingCtlTableStorage; hciptr2; hciptr2 = hciptr2->next) {
-        struct pingCtlTable_data *tmp;
-
-        tmp = hciptr2->data;
-        if (tmp->pingProbeHis == StorageDel) {
-            tmp->pingProbeHis = tmp->pingProbeHis->next;
-            DEBUGMSGTL(("pingProbeHistoryTable",
-                        "deleting the last one succeeded!\n"));
-            break;
-    	}
-    }
-    if (StorageDel) {
-        free(StorageDel->pingProbeHistoryTime);
-        free(StorageDel->pingCtlTestName);
-        free(StorageDel->pingCtlOwnerIndex);
-        free(StorageDel);
-    }
+        header_complex_extract_entry(&pingProbeHistoryTableStorage,
+                                     hcilast);
     DEBUGMSGTL(("pingProbeHistoryTable",
                 "delete the last one success!\n"));
+    SNMP_FREE(tp);
 }
 
 
@@ -954,7 +886,7 @@ sock_ntop_host(const struct sockaddr *sa, socklen_t salen)
 
     switch (sa->sa_family) {
     case AF_INET:{
-            const struct sockaddr_in *sin = (const struct sockaddr_in *) sa;
+            struct sockaddr_in *sin = (struct sockaddr_in *) sa;
 
             if (inet_ntop(AF_INET, &sin->sin_addr, str, sizeof(str)) ==
                 NULL)
@@ -964,7 +896,7 @@ sock_ntop_host(const struct sockaddr *sa, socklen_t salen)
 
 #ifdef	IPV6
     case AF_INET6:{
-            const struct sockaddr_in6 *sin6 = (const struct sockaddr_in6 *) sa;
+            struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) sa;
 
             if (inet_ntop(AF_INET6, &sin6->sin6_addr, str, sizeof(str)) ==
                 NULL)
@@ -975,7 +907,7 @@ sock_ntop_host(const struct sockaddr *sa, socklen_t salen)
 
 #ifdef	AF_UNIX
     case AF_UNIX:{
-            const struct sockaddr_un *unp = (const struct sockaddr_un *) sa;
+            struct sockaddr_un *unp = (struct sockaddr_un *) sa;
 
             /*
              * OK to have no pathname bound to the socket: happens on
@@ -1017,10 +949,8 @@ Sock_ntop_host(const struct sockaddr *sa, socklen_t salen)
 {
     char           *ptr;
 
-    if ((ptr = sock_ntop_host(sa, salen)) == NULL) {
-        /* inet_ntop() sets errno */
-        snmp_log_perror("pingCtlTable: sock_ntop_host()");
-    }
+    if ((ptr = sock_ntop_host(sa, salen)) == NULL)
+        printf("sock_ntop_host error"); /* inet_ntop() sets errno */
     return (ptr);
 }
 
@@ -1062,18 +992,19 @@ in_cksum(unsigned short *addr, int len)
 }
 
 
+
 struct addrinfo *
 host_serv(const char *host, const char *serv, int family, int socktype)
 {
     int             n;
     struct addrinfo hints, *res;
 
-    memset(&hints, '\0', sizeof(struct addrinfo));
+    bzero(&hints, sizeof(struct addrinfo));
     hints.ai_flags = AI_CANONNAME;      /* always return canonical name */
     hints.ai_family = family;   /* AF_UNSPEC, AF_INET, AF_INET6, etc. */
     hints.ai_socktype = socktype;       /* 0, SOCK_STREAM, SOCK_DGRAM, etc. */
 
-    if ((n = netsnmp_getaddrinfo(host, serv, &hints, &res)) != 0)
+    if ((n = getaddrinfo(host, serv, &hints, &res)) != 0)
         return (NULL);
 
     return (res);               /* return pointer to first on linked list */
@@ -1096,23 +1027,22 @@ Host_serv(const char *host, const char *serv, int family, int socktype)
     int             n;
     struct addrinfo hints, *res;
 
-    memset(&hints, '\0', sizeof(struct addrinfo));
+    bzero(&hints, sizeof(struct addrinfo));
     hints.ai_flags = AI_CANONNAME;      /* always return canonical name */
     hints.ai_family = family;   /* 0, AF_INET, AF_INET6, etc. */
     hints.ai_socktype = socktype;       /* 0, SOCK_STREAM, SOCK_DGRAM, etc. */
 
-    if ((n = netsnmp_getaddrinfo(host, serv, &hints, &res)) != 0) {
+    if ((n = getaddrinfo(host, serv, &hints, &res)) != 0)
 #if HAVE_GAI_STRERROR
-        snmp_log(LOG_ERR, "host_serv error for %s, %s: %s",
-                 (host == NULL) ? "(no hostname)" : host,
-                 (serv == NULL) ? "(no service name)" : serv,
-                 gai_strerror(n));
+        printf("host_serv error for %s, %s: %s",
+               (host == NULL) ? "(no hostname)" : host,
+               (serv == NULL) ? "(no service name)" : serv,
+               gai_strerror(n));
 #else
-        snmp_log(LOG_ERR, "host_serv error for %s, %s",
-                 (host == NULL) ? "(no hostname)" : host,
-                 (serv == NULL) ? "(no service name)" : serv);
+        printf("host_serv error for %s, %s",
+               (host == NULL) ? "(no hostname)" : host,
+               (serv == NULL) ? "(no service name)" : serv);
 #endif
-    }
 
     return (res);               /* return pointer to first on linked list */
 }
@@ -1133,7 +1063,7 @@ readable_timeo(int fd, int sec)
 /*
  * send trap 
  */
-void
+int
 send_ping_trap(struct pingCtlTable_data *item,
                oid * trap_oid, size_t trap_oid_len)
 {
@@ -1156,16 +1086,13 @@ send_ping_trap(struct pingCtlTable_data *item,
     oid             pingResultsSendProbes[] =
         { 1, 3, 6, 1, 2, 1, 80, 1, 3, 1, 8 };
 
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              item->pingCtlOwnerIndex,
-                              item->pingCtlOwnerIndexLen);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              item->pingCtlTestName,
-                              item->pingCtlTestNameLen);
-    StorageTmp = header_complex_get(pingResultsTableStorage, vars);
-    snmp_free_varbind(vars);
-    if (!StorageTmp)
-        return;
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlOwnerIndex, item->pingCtlOwnerIndexLen);     /* pingCtlOwnerIndex */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlTestName, item->pingCtlTestNameLen); /* pingCtlOperationName */
+    StorageTmp = SNMP_MALLOC_STRUCT(pingResultsTable_data);
+    if ((StorageTmp =
+         (struct pingResultsTable_data *)
+         header_complex_get(pingResultsTableStorage, vars)) == NULL)
+        return SNMP_ERR_NOSUCHNAME;
 
     /*
      * snmpTrap oid 
@@ -1177,7 +1104,7 @@ send_ping_trap(struct pingCtlTable_data *item,
     /*
      * pingCtlTargetAddress 
      */
-    memset(newoid, '\0', MAX_OID_LEN * sizeof(oid));
+    bzero(newoid, MAX_OID_LEN * sizeof(oid));
     header_complex_generate_oid(newoid, &newoid_len, pingCtlTargetAddress,
                                 sizeof(pingCtlTargetAddress) / sizeof(oid),
                                 vars);
@@ -1191,7 +1118,7 @@ send_ping_trap(struct pingCtlTable_data *item,
     /*
      * pingResultsMinRtt
      */
-    memset(newoid, '\0', newoid_len);
+    bzero(newoid, newoid_len);
     header_complex_generate_oid(newoid, &newoid_len, pingResultsMinRtt,
                                 sizeof(pingResultsMinRtt) / sizeof(oid),
                                 vars);
@@ -1204,7 +1131,7 @@ send_ping_trap(struct pingCtlTable_data *item,
     /*
      * pingResultsMaxRtt 
      */
-    memset(newoid, '\0', newoid_len);
+    bzero(newoid, newoid_len);
     header_complex_generate_oid(newoid, &newoid_len, pingResultsMaxRtt,
                                 sizeof(pingResultsMaxRtt) / sizeof(oid),
                                 vars);
@@ -1218,7 +1145,7 @@ send_ping_trap(struct pingCtlTable_data *item,
     /*
      * pingResultsAverageRtt 
      */
-    memset(newoid, '\0', newoid_len);
+    bzero(newoid, newoid_len);
     header_complex_generate_oid(newoid, &newoid_len, pingResultsAverageRtt,
                                 sizeof(pingResultsAverageRtt) /
                                 sizeof(oid), vars);
@@ -1233,7 +1160,7 @@ send_ping_trap(struct pingCtlTable_data *item,
     /*
      * pingResultsProbeResponses 
      */
-    memset(newoid, '\0', newoid_len);
+    bzero(newoid, newoid_len);
     header_complex_generate_oid(newoid, &newoid_len,
                                 pingResultsProbeResponses,
                                 sizeof(pingResultsProbeResponses) /
@@ -1249,7 +1176,7 @@ send_ping_trap(struct pingCtlTable_data *item,
     /*
      * pingResultsSendProbes 
      */
-    memset(newoid, '\0', newoid_len);
+    bzero(newoid, newoid_len);
     header_complex_generate_oid(newoid, &newoid_len, pingResultsSendProbes,
                                 sizeof(pingResultsSendProbes) /
                                 sizeof(oid), vars);
@@ -1281,6 +1208,7 @@ readloop(struct pingCtlTable_data *item, struct addrinfo *ai, int datalen,
          unsigned long *minrtt, unsigned long *maxrtt,
          unsigned long *averagertt, pid_t pid)
 {
+    int             size;
     char            recvbuf[BUFSIZE];
     char            sendbuf[BUFSIZE];
     int             nsent = 1;
@@ -1291,23 +1219,19 @@ readloop(struct pingCtlTable_data *item, struct addrinfo *ai, int datalen,
     /* struct pingProbeHistoryTable_data * current=NULL; */
     struct pingProbeHistoryTable_data current_var;
     int             sockfd;
-    int             select_result;
     int             current_probe_temp;
     int             success_probe = 0;
     int             fail_probe = 0;
     int             flag;
-    unsigned long   sumrtt;
+    unsigned long  *sumrtt;
     struct timeval  tv;
 
-    memset(sendbuf, 0, sizeof(sendbuf));
-
+    sumrtt = (unsigned long *) malloc(sizeof(unsigned long));
     sockfd = socket(pr->sasend->sa_family, SOCK_RAW, pr->icmpproto);
-    if (sockfd < 0) {
-	snmp_log_perror("pingCtlTable: failed to create socket");
-	return;
-    }
     setuid(getuid());           /* don't need special permissions any more */
 
+    size = 60 * 1024;           /* OK if setsockopt fails */
+
     tv.tv_sec = 5;
     tv.tv_usec = 0;
     setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
@@ -1315,35 +1239,35 @@ readloop(struct pingCtlTable_data *item, struct addrinfo *ai, int datalen,
     for (current_probe_temp = 1;
          current_probe_temp <= item->pingCtlProbeCount;
          current_probe_temp++) {
-        time_t          timep;
         (*pr->fsend) (datalen, pid, nsent, sockfd, sendbuf);
         nsent++;
         len = pr->salen;
-        select_result = readable_timeo(sockfd, item->pingCtlTimeOut);
-        do {
-            if (select_result == 0) {
-                DEBUGMSGTL(("pingCtlTable", "socket timeout\n"));
-                n = -1;
-                fail_probe = fail_probe + 1;
-                flag = 1;
-            } else {
-                n = recvfrom(sockfd, recvbuf, sizeof(recvbuf), 0, pr->sarecv,
-                             &len);
-                success_probe = success_probe + 1;
-                flag = 0;
-            }
+        if (readable_timeo(sockfd, item->pingCtlTimeOut) == 0) {
+            /* printf("socket timeout!\n"); */
+            fail_probe = fail_probe + 1;
+            flag = 1;
+        } else {
+            n = recvfrom(sockfd, recvbuf, sizeof(recvbuf), 0, pr->sarecv,
+                         &len);
+            success_probe = success_probe + 1;
+            flag = 0;
+        }
 
-            netsnmp_get_monotonic_clock(&tval);
+        gettimeofday(&tval, NULL);
 
-            time(&timep);
-
-            (*pr->fproc) (recvbuf, n, &tval, timep, item, ai, datalen, minrtt,
-                          maxrtt, &sumrtt, averagertt, current_probe_temp,
-                          success_probe, fail_probe, flag, &current_var, pid);
-            select_result = readable_timeo(sockfd, 0);
-        } while (select_result > 0);
+        time_t          timep;
+        time(&timep);
+
+        (*pr->fproc) (recvbuf, n, &tval, timep, item, ai, datalen, minrtt,
+                      maxrtt, sumrtt, averagertt, current_probe_temp,
+                      success_probe, fail_probe, flag, &current_var, pid);
+        printf("receiver success!\n");
+        if (current_probe_temp >= item->pingCtlProbeCount) {
+            SNMP_FREE(sumrtt);
+            sumrtt = NULL;
+            return;
+        }
     }
-    close(sockfd);
 }
 
 unsigned long
@@ -1376,11 +1300,9 @@ proc_v4(char *ptr, ssize_t len, struct timeval *tvrecv, time_t timep,
     static int      probeFailed = 0;
     static int      testFailed = 0;
     static int      series = 0;
+
     netsnmp_variable_list *vars = NULL;
     struct pingResultsTable_data *StorageNew = NULL;
-
-    DEBUGMSGTL(("pingCtlTable", "proc_v4(flag = %d)\n", flag));
-
     if (flag == 0) {
         series = 0;
         ip = (struct ip *) ptr; /* start of IP header */
@@ -1388,20 +1310,14 @@ proc_v4(char *ptr, ssize_t len, struct timeval *tvrecv, time_t timep,
 
         icmp = (struct icmp *) (ptr + hlen1);   /* start of ICMP header */
         if ((icmplen = len - hlen1) < 8)
-            DEBUGMSGTL(("pingCtlTable", "icmplen (%d) < 8", icmplen));
-
-        DEBUGMSGTL(("pingCtlTable", "ICMP type = %d (%sa reply)\n",
-                    icmp->icmp_type,
-                    icmp->icmp_type == ICMP_ECHOREPLY ? "" : "not a "));
+            printf("icmplen (%d) < 8", icmplen);
 
         if (icmp->icmp_type == ICMP_ECHOREPLY) {
-            if (icmp->icmp_id != pid) {
-                DEBUGMSGTL(("pingCtlTable", "not a response to our ECHO_REQUEST\n"));
-                return SNMP_ERR_NOERROR;
-            }
-
+            if (icmp->icmp_id != pid)
+                return;         /* not a response to our ECHO_REQUEST */
             if (icmplen < 16)
-                DEBUGMSGTL(("pingCtlTable", "icmplen (%d) < 16", icmplen));
+                printf("icmplen (%d) < 16", icmplen);
+
 
             tvsend = (struct timeval *) icmp->icmp_data;
 
@@ -1409,19 +1325,14 @@ proc_v4(char *ptr, ssize_t len, struct timeval *tvrecv, time_t timep,
                 round_double((1000000 * (tvrecv->tv_sec - tvsend->tv_sec) +
                               tvrecv->tv_usec - tvsend->tv_usec) / 1000);
 
-            snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                                      item->pingCtlOwnerIndex,
-                                      item->pingCtlOwnerIndexLen);
-            snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                                      item->pingCtlTestName,
-                                      item->pingCtlTestNameLen);
-
-            StorageNew = header_complex_get(pingResultsTableStorage, vars);
-            snmp_free_varbind(vars);
-            if (!StorageNew) {
-                DEBUGMSGTL(("pingCtlTable", "StorageNew == NULL\n"));
+            snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlOwnerIndex, item->pingCtlOwnerIndexLen);     /* pingCtlOwnerIndex */
+            snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlTestName, item->pingCtlTestNameLen); /* pingCtlTestName */
+
+
+            if ((StorageNew =
+                 header_complex_get(pingResultsTableStorage,
+                                    vars)) == NULL)
                 return SNMP_ERR_NOSUCHNAME;
-            }
 
             if (current_probe == 1) {
                 *averagertt = rtt;
@@ -1429,6 +1340,7 @@ proc_v4(char *ptr, ssize_t len, struct timeval *tvrecv, time_t timep,
                 *maxrtt = rtt;
                 *sumrtt = rtt;
             } else {
+                printf("else\n");
                 if (rtt < *minrtt)
                     *minrtt = rtt;
                 if (rtt > *maxrtt)
@@ -1451,11 +1363,17 @@ proc_v4(char *ptr, ssize_t len, struct timeval *tvrecv, time_t timep,
             StorageNew->pingResultsRttSumOfSquares =
                 StorageNew->pingResultsRttSumOfSquares + rtt * rtt;
 
-	    StorageNew->pingResultsLastGoodProbe_time = timep;
-            free(StorageNew->pingResultsLastGoodProbe);
-            memdup(&StorageNew->pingResultsLastGoodProbe,
-		date_n_time(&timep,
-		    &StorageNew->pingResultsLastGoodProbeLen), 11);
+            StorageNew->pingResultsLastGoodProbe =
+                (char *) malloc(strlen(asctime(gmtime(&timep))));
+            StorageNew->pingResultsLastGoodProbe =
+                strdup(asctime(gmtime(&timep)));
+            StorageNew->
+                pingResultsLastGoodProbe[strlen(asctime(gmtime(&timep))) -
+                                         1] = '\0';
+            StorageNew->pingResultsLastGoodProbeLen =
+                strlen(asctime(gmtime(&timep))) - 1;
+
+
 
             temp = SNMP_MALLOC_STRUCT(pingProbeHistoryTable_data);
 
@@ -1488,45 +1406,62 @@ proc_v4(char *ptr, ssize_t len, struct timeval *tvrecv, time_t timep,
             temp->pingProbeHistoryStatus = 1;
             temp->pingProbeHistoryLastRC = 0;
 
-	    temp->pingProbeHistoryTime_time = timep;
-	    memdup(&temp->pingProbeHistoryTime,
-		date_n_time(&timep, &temp->pingProbeHistoryTimeLen), 11);
+            temp->pingProbeHistoryTime =
+                (char *) malloc(strlen(asctime(gmtime(&timep))));
+            temp->pingProbeHistoryTime = strdup(asctime(gmtime(&timep)));
+            temp->pingProbeHistoryTime[strlen(asctime(gmtime(&timep))) -
+                                       1] = '\0';
+            temp->pingProbeHistoryTimeLen =
+                strlen(asctime(gmtime(&timep))) - 1;
 
             if (StorageNew->pingResultsSendProbes == 1)
                 item->pingProbeHis = temp;
-            else
+            else {
                 (current_temp)->next = temp;
+            }
 
             current_temp = temp;
 
-            if (StorageNew->pingResultsSendProbes >= item->pingCtlProbeCount)
+            if (StorageNew->pingResultsSendProbes >=
+                item->pingCtlProbeCount) {
                 current_temp->next = NULL;
+            }
 
-            if (item->pingProbeHis != NULL) {
-                if (pingProbeHistoryTable_count(item) >= item->pingCtlMaxRows)
+            if (item->pingProbeHis != NULL)
+                if (pingProbeHistoryTable_count(item) <
+                    item->pingCtlMaxRows) {
+                    if (pingProbeHistoryTable_add(current_temp) !=
+                        SNMPERR_SUCCESS)
+                        DEBUGMSGTL(("pingProbeHistoryTable",
+                                    "registered an entry error\n"));
+                } else {
                     pingProbeHistoryTable_delLast(item);
-                if (pingProbeHistoryTable_add(current_temp) != SNMPERR_SUCCESS)
-                    DEBUGMSGTL(("pingProbeHistoryTable",
-                                "failed to add a row\n"));
-	    }
+                    if (pingProbeHistoryTable_add(current_temp) !=
+                        SNMPERR_SUCCESS)
+                        DEBUGMSGTL(("pingProbeHistoryTable",
+                                    "registered an entry error\n"));
+
+                }
+
         }
-    } else if (flag == 1) {
+    }
+
+    else if (flag == 1)
+    {
+
+
         if (series == 0)
             probeFailed = 1;
         else
             probeFailed = probeFailed + 1;
         series = 1;
         testFailed = testFailed + 1;
-        snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                                  item->pingCtlOwnerIndex,
-                                  item->pingCtlOwnerIndexLen);
-        snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                                  item->pingCtlTestName,
-                                  item->pingCtlTestNameLen);
-
-        StorageNew = header_complex_get(pingResultsTableStorage, vars);
-        snmp_free_varbind(vars);
-        if (!StorageNew)
+        snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlOwnerIndex, item->pingCtlOwnerIndexLen); /*  pingCtlOwnerIndex */
+        snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlTestName, item->pingCtlTestNameLen);     /* pingCtlTestName */
+
+
+        if ((StorageNew =
+             header_complex_get(pingResultsTableStorage, vars)) == NULL)
             return SNMP_ERR_NOSUCHNAME;
 
         if (current_probe == 1) {
@@ -1567,9 +1502,13 @@ proc_v4(char *ptr, ssize_t len, struct timeval *tvrecv, time_t timep,
         temp->pingProbeHistoryStatus = 4;
         temp->pingProbeHistoryLastRC = 1;
 
-	temp->pingProbeHistoryTime_time = timep;
-	memdup(&temp->pingProbeHistoryTime,
-	    date_n_time(&timep, &temp->pingProbeHistoryTimeLen), 11);
+        temp->pingProbeHistoryTime =
+            (char *) malloc(strlen(asctime(gmtime(&timep))));
+        temp->pingProbeHistoryTime = strdup(asctime(gmtime(&timep)));
+        temp->pingProbeHistoryTime[strlen(asctime(gmtime(&timep))) - 1] =
+            '\0';
+        temp->pingProbeHistoryTimeLen =
+            strlen(asctime(gmtime(&timep))) - 1;
 
         if (StorageNew->pingResultsSendProbes == 1)
             item->pingProbeHis = temp;
@@ -1583,7 +1522,7 @@ proc_v4(char *ptr, ssize_t len, struct timeval *tvrecv, time_t timep,
             current_temp->next = NULL;
         }
 
-        if (item->pingProbeHis != NULL) {
+        if (item->pingProbeHis != NULL)
             if (pingProbeHistoryTable_count(item) < item->pingCtlMaxRows) {
                 if (pingProbeHistoryTable_add(current_temp) !=
                     SNMPERR_SUCCESS)
@@ -1598,7 +1537,6 @@ proc_v4(char *ptr, ssize_t len, struct timeval *tvrecv, time_t timep,
                                 "registered an entry error\n"));
 
             }
-	}
 
         if ((item->
              pingCtlTrapGeneration[0] & PINGTRAPGENERATION_PROBEFAILED) !=
@@ -1639,7 +1577,7 @@ proc_v4(char *ptr, ssize_t len, struct timeval *tvrecv, time_t timep,
         testFailed = 0;
 
     }
-    return SNMP_ERR_NOERROR;
+    return;
 }
 
 
@@ -1649,13 +1587,15 @@ send_v4(int datalen, pid_t pid, int nsent, int sockfd, char *sendbuf)
 {
     int             len;
     struct icmp    *icmp = NULL;
+    struct timeval *temp = NULL;
 
     icmp = (struct icmp *) sendbuf;
     icmp->icmp_type = ICMP_ECHO;
     icmp->icmp_code = 0;
     icmp->icmp_id = pid;
     icmp->icmp_seq = nsent;
-    netsnmp_get_monotonic_clock((struct timeval *) icmp->icmp_data);
+    gettimeofday((struct timeval *) icmp->icmp_data, NULL);
+    temp = (struct timeval *) icmp->icmp_data;
 
     len = 8 + datalen;          /* checksum ICMP header and data */
     icmp->icmp_cksum = 0;
@@ -1673,15 +1613,12 @@ run_ping(unsigned int clientreg, void *clientarg)
     netsnmp_variable_list *vars = NULL;
     struct pingResultsTable_data *StorageNew = NULL;
 
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              item->pingCtlOwnerIndex,
-                              item->pingCtlOwnerIndexLen);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              item->pingCtlTestName, item->pingCtlTestNameLen);
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlOwnerIndex, item->pingCtlOwnerIndexLen);     /* pingCtlOwnerIndex  */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlTestName, item->pingCtlTestNameLen); /* pingCtlTestName  */
 
-    StorageNew = header_complex_get(pingResultsTableStorage, vars);
-    snmp_free_varbind(vars);
-    if (!StorageNew)
+
+    if ((StorageNew =
+         header_complex_get(pingResultsTableStorage, vars)) == NULL)
         return;
 
     StorageNew->pingResultsSendProbes = 0;
@@ -1700,6 +1637,8 @@ run_ping(unsigned int clientreg, void *clientarg)
         unsigned long  *averagertt = NULL;
 
         datalen = 56;           /* data that goes with ICMP echo request */
+        unsigned int    n = 1;
+        int             c;
         struct addrinfo *ai = NULL;
         minrtt = malloc(sizeof(unsigned long));
         maxrtt = malloc(sizeof(unsigned long));
@@ -1709,46 +1648,43 @@ run_ping(unsigned int clientreg, void *clientarg)
 
         ai = host_serv(host, NULL, 0, 0);
 
-        if (ai) {
-            DEBUGMSGTL(("pingCtlTable", "PING %s (%s): %d data bytes\n",
-                        ai->ai_canonname,
-                        sock_ntop_host(ai->ai_addr, ai->ai_addrlen), datalen));
+        printf("PING %s (%s): %d data bytes\n", ai->ai_canonname,
+               sock_ntop_host(ai->ai_addr, ai->ai_addrlen), datalen);
 
-            /*
-             * 4initialize according to protocol 
-             */
-            if (ai->ai_family == AF_INET) {
-                pr = &proto_v4;
+        /*
+         * 4initialize according to protocol 
+         */
+        if (ai->ai_family == AF_INET) {
+            pr = &proto_v4;
 #ifdef	IPV6
-            } else if (ai->ai_family == AF_INET6) {
-                pr = &proto_v6;
+        } else if (ai->ai_family == AF_INET6) {
+            pr = &proto_v6;
 
-                if (IN6_IS_ADDR_V4MAPPED(&(((struct sockaddr_in6 *)
-                                            ai->ai_addr)->sin6_addr)))
-                    snmp_log(LOG_ERR, "cannot ping IPv4-mapped IPv6 address");
+            if (IN6_IS_ADDR_V4MAPPED(&(((struct sockaddr_in6 *)
+                                        ai->ai_addr)->sin6_addr)))
+                printf("cannot ping IPv4-mapped IPv6 address");
 #endif
-            } else {
-                snmp_log(LOG_ERR, "unknown address family %d", ai->ai_family);
-            }
+        } else
+            printf("unknown address family %d", ai->ai_family);
 
-            pr->sasend = ai->ai_addr;
-            pr->sarecv = calloc(1, ai->ai_addrlen);
-            pr->salen = ai->ai_addrlen;
-            readloop(item, ai, datalen, minrtt, maxrtt, averagertt, pid);
-            free(pr->sarecv);
-        } else {
-            snmp_log(LOG_ERR, "PING: name resolution for %s failed.\n", host);
-        }
+        pr->sasend = ai->ai_addr;
+        pr->sarecv = calloc(1, ai->ai_addrlen);
+        pr->salen = ai->ai_addrlen;
+        readloop(item, ai, datalen, minrtt, maxrtt, averagertt, pid);
 
         SNMP_FREE(minrtt);
+        minrtt = NULL;
         SNMP_FREE(maxrtt);
+        maxrtt = NULL;
         SNMP_FREE(averagertt);
-        freeaddrinfo(ai);
+        averagertt = NULL;
+        free(ai);
+        ai = NULL;
     }
 
     else if (item->pingCtlTargetAddressType == 2) {
 
-        int             hold = 0, packlen = 0;
+        int             ch = 0, hold = 0, packlen = 0;
         u_char         *packet = NULL;
         char           *target = NULL;
         struct sockaddr_in6 firsthop;
@@ -1760,6 +1696,7 @@ run_ping(unsigned int clientreg, void *clientarg)
         int             uid = 0;
         struct sockaddr_in6 source;
         int             preload = 0;
+        struct cmsghdr *srcrt = NULL;
         static unsigned char cmsgbuf[4096];
         static int      cmsglen = 0;
         struct sockaddr_in6 whereto;    /* who to ping */
@@ -1772,6 +1709,7 @@ run_ping(unsigned int clientreg, void *clientarg)
         int             timing = 0;     /* flag to do timing */
         int             working_recverr = 0;
         __u32           flowlabel = 0;
+        __u32           tclass = 0;
 
         int             ident = 0;      /* process id to identify our packets */
         u_char          outpack[MAX_PACKET];
@@ -1819,17 +1757,19 @@ run_ping(unsigned int clientreg, void *clientarg)
         hostname = target;
 
         if (ipv6_addr_any(&source.sin6_addr)) {
-            socklen_t       alen;
+
+            int             alen;
             int             probe_fd = socket(AF_INET6, SOCK_DGRAM, 0);
 
             if (probe_fd < 0) {
-                snmp_log_perror("pingCtlTable: IPv6 datagram socket creation");
+                printf("error!\n");
+                perror("socket");
                 return;
             }
             if (device) {
                 struct ifreq    ifr;
                 memset(&ifr, 0, sizeof(ifr));
-                strlcpy(ifr.ifr_name, device, IFNAMSIZ);
+                strncpy(ifr.ifr_name, device, IFNAMSIZ - 1);
                 if (setsockopt
                     (probe_fd, SOL_SOCKET, SO_BINDTODEVICE, device,
                      strlen(device) + 1) == -1) {
@@ -1842,7 +1782,6 @@ run_ping(unsigned int clientreg, void *clientarg)
                         if (ioctl(probe_fd, SIOCGIFINDEX, &ifr) < 0) {
                             fprintf(stderr, "ping: unknown iface %s\n",
                                     device);
-                            close(probe_fd);
                             return;
                         }
                         firsthop.sin6_scope_id = ifr.ifr_ifindex;
@@ -1855,14 +1794,12 @@ run_ping(unsigned int clientreg, void *clientarg)
                 (probe_fd, (struct sockaddr *) &firsthop,
                  sizeof(firsthop)) == -1) {
                 perror("connect");
-                close(probe_fd);
                 return;
             }
             alen = sizeof(source);
             if (getsockname(probe_fd, (struct sockaddr *) &source, &alen)
                 == -1) {
                 perror("getsockname");
-                close(probe_fd);
                 return;
             }
             source.sin6_port = 0;
@@ -1950,19 +1887,19 @@ run_ping(unsigned int clientreg, void *clientarg)
         ICMPV6_FILTER_SETBLOCKALL(&filter);
 
         if (!working_recverr) {
-            ICMPV6_FILTER_SETPASS(ICMP6_DST_UNREACH, &filter);
-            ICMPV6_FILTER_SETPASS(ICMP6_PACKET_TOO_BIG, &filter);
-            ICMPV6_FILTER_SETPASS(ICMP6_TIME_EXCEEDED, &filter);
-            ICMPV6_FILTER_SETPASS(ICMP6_PARAM_PROB, &filter);
+            ICMPV6_FILTER_SETPASS(ICMPV6_DEST_UNREACH, &filter);
+            ICMPV6_FILTER_SETPASS(ICMPV6_PKT_TOOBIG, &filter);
+            ICMPV6_FILTER_SETPASS(ICMPV6_TIME_EXCEED, &filter);
+            ICMPV6_FILTER_SETPASS(ICMPV6_PARAMPROB, &filter);
         }
 
-        ICMPV6_FILTER_SETPASS(ICMP6_ECHO_REPLY, &filter);
+        ICMPV6_FILTER_SETPASS(ICMPV6_ECHO_REPLY, &filter);
 
-        err = setsockopt(icmp_sock, SOL_ICMPV6, ICMP6_FILTER, &filter,
+        err = setsockopt(icmp_sock, SOL_ICMPV6, ICMPV6_FILTER, &filter,
                          sizeof(struct icmp6_filter));
 
         if (err < 0) {
-            perror("setsockopt(ICMP6_FILTER)");
+            perror("setsockopt(ICMPV6_FILTER)");
             return;
         }
 
@@ -1975,16 +1912,15 @@ run_ping(unsigned int clientreg, void *clientarg)
             }
         }
 
-        DEBUGMSGTL(("pingCtlTable", "PING %s(%s) ", hostname,
-                    pr_addr(&whereto.sin6_addr, options)));
+        printf("PING %s(%s) ", hostname,
+               pr_addr(&whereto.sin6_addr, options));
         if (flowlabel)
-            DEBUGMSGTL(("pingCtlTable", ", flow 0x%05x, ",
-                        (unsigned) ntohl(flowlabel)));
+            printf(", flow 0x%05x, ", (unsigned) ntohl(flowlabel));
         if (device || (options & F_NUMERIC)) {
-            DEBUGMSGTL(("pingCtlTable", "from %s %s: ",
-                        pr_addr_n(&source.sin6_addr), device ? : ""));
+            printf("from %s %s: ",
+                   pr_addr_n(&source.sin6_addr), device ? : "");
         }
-        DEBUGMSGTL(("pingCtlTable", "%d data bytes\n", datalen));
+        printf("%d data bytes\n", datalen);
 
         setup(icmp_sock, options, uid, timeout, preload, interval, datalen,
               (char *) outpack, &ident, &start_time, &screen_width,
@@ -1996,7 +1932,6 @@ run_ping(unsigned int clientreg, void *clientarg)
                   (char *) outpack, &ident, &start_time, &screen_width,
                   &deadline);
 
-        close(icmp_sock);
     }
     return;
 }
@@ -2010,20 +1945,18 @@ init_resultsTable(struct pingCtlTable_data *item)
     char           *host = NULL;
     netsnmp_variable_list *vars = NULL;
 
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              item->pingCtlOwnerIndex,
-                              item->pingCtlOwnerIndexLen);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              item->pingCtlTestName, item->pingCtlTestNameLen);
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlOwnerIndex, item->pingCtlOwnerIndexLen);     /* pingCtlOwnerIndex  */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlTestName, item->pingCtlTestNameLen); /* pingCtlTestName  */
 
-    StorageNew = header_complex_get(pingResultsTableStorage, vars);
-    snmp_free_varbind(vars);
-    if (StorageNew) {
+
+    if ((StorageNew =
+         header_complex_get(pingResultsTableStorage, vars)) != NULL) {
         StorageNew->pingResultsSendProbes = 0;
         StorageNew->pingResultsProbeResponses = 0;
         return;
-    }
 
+    }
+    ai = malloc(sizeof(struct addrinfo));
     host = item->pingCtlTargetAddress;
     ai = host_serv(host, NULL, 0, 0);
     StorageTmp = SNMP_MALLOC_STRUCT(pingResultsTable_data);
@@ -2046,14 +1979,26 @@ init_resultsTable(struct pingCtlTable_data *item)
 
     if (item->pingCtlTargetAddressType == 1
         || item->pingCtlTargetAddressType == 16) {
-        const char* str;
-
-        StorageTmp->pingResultsIpTargetAddressType = ai ? 1 : 0;
-        str = ai ? sock_ntop_host(ai->ai_addr, ai->ai_addrlen) : NULL;
-        if (!str)
-            str = "";
-        StorageTmp->pingResultsIpTargetAddress = strdup(str);
-        StorageTmp->pingResultsIpTargetAddressLen = strlen(str);
+        if (ai == NULL) {
+            StorageTmp->pingResultsIpTargetAddressType = 0;
+            StorageTmp->pingResultsIpTargetAddress = strdup("");
+            StorageTmp->pingResultsIpTargetAddressLen = 0;
+        } else {
+            StorageTmp->pingResultsIpTargetAddressType = 1;
+            StorageTmp->pingResultsIpTargetAddress =
+                (char *)
+                malloc(strlen(sock_ntop_host(ai->ai_addr, ai->ai_addrlen))
+                       + 1);
+            StorageTmp->pingResultsIpTargetAddress =
+                strdup(sock_ntop_host(ai->ai_addr, ai->ai_addrlen));
+            StorageTmp->
+                pingResultsIpTargetAddress[strlen
+                                           (sock_ntop_host
+                                            (ai->ai_addr,
+                                             ai->ai_addrlen))] = '\0';
+            StorageTmp->pingResultsIpTargetAddressLen =
+                strlen(sock_ntop_host(ai->ai_addr, ai->ai_addrlen));
+        }
     }
     if (item->pingCtlTargetAddressType == 2) {
 
@@ -2068,7 +2013,10 @@ init_resultsTable(struct pingCtlTable_data *item)
 
         if (inet_pton(AF_INET6, host, &to->sin6_addr) > 0) {
             StorageTmp->pingResultsIpTargetAddressType = 2;
+            StorageTmp->pingResultsIpTargetAddress =
+                (char *) malloc(strlen(host) + 1);
             StorageTmp->pingResultsIpTargetAddress = strdup(host);
+            StorageTmp->pingResultsIpTargetAddress[strlen(host)] = '\0';
             StorageTmp->pingResultsIpTargetAddressLen = strlen(host);
         } else {
             hp = gethostbyname2(host, AF_INET6);
@@ -2077,8 +2025,13 @@ init_resultsTable(struct pingCtlTable_data *item)
                 memmove((caddr_t) & to->sin6_addr, hp->h_addr, 16);
                 hostname = inet_ntop(AF_INET6, &to->sin6_addr, pa, 64);
                 StorageTmp->pingResultsIpTargetAddressType = 2;
+                StorageTmp->pingResultsIpTargetAddress =
+                    (char *) malloc(strlen(hostname) + 1);
                 StorageTmp->pingResultsIpTargetAddress = strdup(hostname);
-                StorageTmp->pingResultsIpTargetAddressLen = strlen(hostname);
+                StorageTmp->pingResultsIpTargetAddress[strlen(hostname)] =
+                    '\0';
+                StorageTmp->pingResultsIpTargetAddressLen =
+                    strlen(hostname);
             } else {
                 (void) fprintf(stderr,
                                "traceroute: unknown host %s\n", host);
@@ -2097,6 +2050,7 @@ init_resultsTable(struct pingCtlTable_data *item)
     StorageTmp->pingResultsSendProbes = 0;
     StorageTmp->pingResultsRttSumOfSquares = 0;
 
+    StorageTmp->pingResultsLastGoodProbe = strdup("");
     StorageTmp->pingResultsLastGoodProbeLen = 0;
 
     item->pingResults = StorageTmp;
@@ -2107,7 +2061,9 @@ init_resultsTable(struct pingCtlTable_data *item)
             }
         }
     }
-    freeaddrinfo(ai);
+    SNMP_FREE(ai);
+    ai = NULL;
+
 }
 
 
@@ -2117,16 +2073,12 @@ modify_ResultsOper(struct pingCtlTable_data *thedata, long val)
     netsnmp_variable_list *vars = NULL;
     struct pingResultsTable_data *StorageTmp = NULL;
 
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              thedata->pingCtlOwnerIndex,
-                              thedata->pingCtlOwnerIndexLen);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              thedata->pingCtlTestName,
-                              thedata->pingCtlTestNameLen);
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlOwnerIndex, thedata->pingCtlOwnerIndexLen);       /* pingCtlOwnerIndex */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlTestName, thedata->pingCtlTestNameLen);   /* pingCtlTestName */
 
-    StorageTmp = header_complex_get(pingResultsTableStorage, vars);
-    snmp_free_varbind(vars);
-    if (!StorageTmp)
+
+    if ((StorageTmp =
+         header_complex_get(pingResultsTableStorage, vars)) == NULL)
         return SNMP_ERR_NOSUCHNAME;
     StorageTmp->pingResultsOperStatus = val;
 
@@ -2138,23 +2090,19 @@ modify_ResultsOper(struct pingCtlTable_data *thedata, long val)
 int
 pingResultsTable_del(struct pingCtlTable_data *thedata)
 {
-    struct header_complex_index *hciptr2, *next;
+    struct header_complex_index *hciptr2 = NULL;
     struct pingResultsTable_data *StorageDel = NULL;
     netsnmp_variable_list *vars = NULL;
     oid             newoid[MAX_OID_LEN];
     size_t          newoid_len;
 
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              thedata->pingCtlOwnerIndex,
-                              thedata->pingCtlOwnerIndexLen);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              thedata->pingCtlTestName,
-                              thedata->pingCtlTestNameLen);
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlOwnerIndex, thedata->pingCtlOwnerIndexLen);       /* pingCtlOwnerIndex */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlTestName, thedata->pingCtlTestNameLen);   /* pingCtlOperationName */
+
     header_complex_generate_oid(newoid, &newoid_len, NULL, 0, vars);
-    snmp_free_varbind(vars);
 
-    for (hciptr2 = pingResultsTableStorage; hciptr2; hciptr2 = next) {
-        next = hciptr2->next;
+    for (hciptr2 = pingResultsTableStorage; hciptr2 != NULL;
+         hciptr2 = hciptr2->next) {
         if (snmp_oid_compare(newoid, newoid_len, hciptr2->name, newoid_len)
             == 0) {
             StorageDel =
@@ -2178,23 +2126,19 @@ pingResultsTable_del(struct pingCtlTable_data *thedata)
 int
 pingProbeHistoryTable_del(struct pingCtlTable_data *thedata)
 {
-    struct header_complex_index *hciptr2, *next;
+    struct header_complex_index *hciptr2 = NULL;
     struct pingProbeHistoryTable_data *StorageDel = NULL;
     netsnmp_variable_list *vars = NULL;
     oid             newoid[MAX_OID_LEN];
     size_t          newoid_len;
 
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              thedata->pingCtlOwnerIndex,
-                              thedata->pingCtlOwnerIndexLen);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              thedata->pingCtlTestName,
-                              thedata->pingCtlTestNameLen);
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlOwnerIndex, thedata->pingCtlOwnerIndexLen);       /* pingCtlOwnerIndex */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->pingCtlTestName, thedata->pingCtlTestNameLen);   /* pingCtlOperationName */
+
     header_complex_generate_oid(newoid, &newoid_len, NULL, 0, vars);
-    snmp_free_varbind(vars);
 
-    for (hciptr2 = pingProbeHistoryTableStorage; hciptr2; hciptr2 = next) {
-        next = hciptr2->next;
+    for (hciptr2 = pingProbeHistoryTableStorage; hciptr2 != NULL;
+         hciptr2 = hciptr2->next) {
         if (snmp_oid_compare(newoid, newoid_len, hciptr2->name, newoid_len)
             == 0) {
             StorageDel =
@@ -2223,6 +2167,7 @@ write_pingCtlTargetAddressType(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -2294,7 +2239,6 @@ write_pingCtlTargetAddressType(int action,
          * 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;
@@ -2381,6 +2325,7 @@ write_pingCtlTargetAddress(int action,
          * Back out any changes made in the ACTION case 
          */
         SNMP_FREE(StorageTmp->pingCtlTargetAddress);
+        StorageTmp->pingCtlTargetAddress = NULL;
         StorageTmp->pingCtlTargetAddress = tmpvar;
         StorageTmp->pingCtlTargetAddressLen = tmplen;
         break;
@@ -2392,7 +2337,6 @@ write_pingCtlTargetAddress(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2409,6 +2353,7 @@ write_pingCtlDataSize(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -2482,7 +2427,6 @@ write_pingCtlDataSize(int action,
          * 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;
@@ -2500,6 +2444,7 @@ write_pingCtlTimeOut(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -2573,7 +2518,6 @@ write_pingCtlTimeOut(int action,
          * 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;
@@ -2592,6 +2536,7 @@ write_pingCtlProbeCount(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -2666,7 +2611,6 @@ write_pingCtlProbeCount(int action,
          * 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;
@@ -2683,6 +2627,7 @@ write_pingCtlAdminStatus(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -2759,7 +2704,8 @@ write_pingCtlAdminStatus(int action,
                     snmp_alarm_register(StorageTmp->pingCtlFrequency,
                                         SA_REPEAT, run_ping, StorageTmp);
             else
-                StorageTmp->timer_id = snmp_alarm_register(1, 0, run_ping,
+                StorageTmp->timer_id = snmp_alarm_register(1, (int) NULL,
+                                                           run_ping,
                                                            StorageTmp);
 
         } else if (StorageTmp->pingCtlAdminStatus == 2
@@ -2769,7 +2715,7 @@ write_pingCtlAdminStatus(int action,
             modify_ResultsOper(StorageTmp, 2);
         }
 
-        snmp_store_needed(NULL);
+
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2855,6 +2801,7 @@ write_pingCtlDataFill(int action,
          * Back out any changes made in the ACTION case 
          */
         SNMP_FREE(StorageTmp->pingCtlDataFill);
+        StorageTmp->pingCtlDataFill = NULL;
         StorageTmp->pingCtlDataFill = tmpvar;
         StorageTmp->pingCtlDataFillLen = tmplen;
         break;
@@ -2866,7 +2813,6 @@ write_pingCtlDataFill(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2882,6 +2828,7 @@ write_pingCtlFrequency(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -2952,7 +2899,6 @@ write_pingCtlFrequency(int action,
          * 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;
@@ -2968,6 +2914,7 @@ write_pingCtlMaxRows(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -3038,7 +2985,6 @@ write_pingCtlMaxRows(int action,
          * 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 +3002,7 @@ write_pingCtlStorageType(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -3126,7 +3073,6 @@ write_pingCtlStorageType(int action,
          * 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;
@@ -3214,6 +3160,7 @@ write_pingCtlTrapGeneration(int action,
          * Back out any changes made in the ACTION case 
          */
         SNMP_FREE(StorageTmp->pingCtlTrapGeneration);
+        StorageTmp->pingCtlTrapGeneration = NULL;
         StorageTmp->pingCtlTrapGeneration = tmpvar;
         StorageTmp->pingCtlTrapGenerationLen = tmplen;
         break;
@@ -3225,7 +3172,6 @@ write_pingCtlTrapGeneration(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3241,6 +3187,7 @@ write_pingCtlTrapProbeFailureFilter(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -3317,7 +3264,6 @@ write_pingCtlTrapProbeFailureFilter(int action,
          * 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;
@@ -3334,6 +3280,7 @@ write_pingCtlTrapTestFailureFilter(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -3409,7 +3356,6 @@ write_pingCtlTrapTestFailureFilter(int action,
          * 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;
@@ -3496,6 +3442,7 @@ write_pingCtlType(int action,
          * Back out any changes made in the ACTION case 
          */
         SNMP_FREE(StorageTmp->pingCtlType);
+        StorageTmp->pingCtlType = NULL;
         StorageTmp->pingCtlType = tmpvar;
         StorageTmp->pingCtlTypeLen = tmplen;
         break;
@@ -3507,7 +3454,6 @@ write_pingCtlType(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3593,6 +3539,7 @@ write_pingCtlDescr(int action,
          * Back out any changes made in the ACTION case 
          */
         SNMP_FREE(StorageTmp->pingCtlDescr);
+        StorageTmp->pingCtlDescr = NULL;
         StorageTmp->pingCtlDescr = tmpvar;
         StorageTmp->pingCtlDescrLen = tmplen;
         break;
@@ -3604,7 +3551,6 @@ write_pingCtlDescr(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3620,6 +3566,7 @@ write_pingCtlSourceAddressType(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -3691,7 +3638,6 @@ write_pingCtlSourceAddressType(int action,
          * 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;
@@ -3779,6 +3725,7 @@ write_pingCtlSourceAddress(int action,
          * Back out any changes made in the ACTION case 
          */
         SNMP_FREE(StorageTmp->pingCtlSourceAddress);
+        StorageTmp->pingCtlSourceAddress = NULL;
         StorageTmp->pingCtlSourceAddress = tmpvar;
         StorageTmp->pingCtlSourceAddressLen = tmplen;
         break;
@@ -3790,7 +3737,6 @@ write_pingCtlSourceAddress(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3807,6 +3753,7 @@ write_pingCtlIfIndex(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -3876,7 +3823,6 @@ write_pingCtlIfIndex(int action,
          * 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;
@@ -3894,6 +3840,7 @@ write_pingCtlByPassRouteTable(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -3965,7 +3912,6 @@ write_pingCtlByPassRouteTable(int action,
          * 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;
@@ -3984,6 +3930,7 @@ write_pingCtlDSField(int action,
 {
     static size_t   tmpvar;
     struct pingCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -4054,7 +4001,6 @@ write_pingCtlDSField(int action,
          * 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;
@@ -4068,13 +4014,14 @@ write_pingCtlRowStatus(int action,
                        size_t var_val_len,
                        u_char * statP, oid * name, size_t name_len)
 {
-    struct pingCtlTable_data *StorageTmp;
+    struct pingCtlTable_data *StorageTmp = NULL;
     static struct pingCtlTable_data *StorageNew, *StorageDel;
     size_t          newlen =
         name_len - (sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
     static int      old_value;
     int             set_value;
+    static netsnmp_variable_list *vars, *vp;
     struct header_complex_index *hciptr = NULL;
 
     DEBUGMSGTL(("pingCtlTable",
@@ -4173,8 +4120,6 @@ write_pingCtlRowStatus(int action,
          * memory reseveration, final preparation... 
          */
         if (StorageTmp == NULL) {
-            netsnmp_variable_list *vars, *vp;
-
             if (set_value == RS_DESTROY) {
                 return SNMP_ERR_NOERROR;
             }
@@ -4194,14 +4139,15 @@ write_pingCtlRowStatus(int action,
                  (name
                   [sizeof(pingCtlTable_variables_oid) / sizeof(oid) +
                    2]), newlen, vars) != SNMPERR_SUCCESS) {
-                snmp_free_varbind(vars);
+                /*
+                 * XXX: free, zero vars 
+                 */
+                /* snmp_free_varbind(vars); */
                 return SNMP_ERR_INCONSISTENTNAME;
             }
             vp = vars;
 
             StorageNew = create_pingCtlTable_data();
-            if (!StorageNew)
-                return SNMP_ERR_GENERR;
             if (vp->val_len <= 32) {
                 StorageNew->pingCtlOwnerIndex = malloc(vp->val_len + 1);
                 memcpy(StorageNew->pingCtlOwnerIndex, vp->val.string,
@@ -4238,7 +4184,10 @@ write_pingCtlRowStatus(int action,
             StorageNew->pingCtlRowStatus = set_value;
 
 
-            snmp_free_varbind(vars);
+            /*
+             * XXX: free, zero vars, no longer needed? 
+             */
+            /* snmp_free_varbind(vars); */
         }
 
 
@@ -4249,17 +4198,12 @@ write_pingCtlRowStatus(int action,
 
     case FREE:
         /*
-         * Release any resources that have been allocated 
+         * XXX: free, zero vars 
          */
 
-        if (set_value == RS_DESTROY && StorageNew)
-            free_pingCtlTable_data(StorageNew);
-        StorageNew = NULL;
-
-        if (StorageDel) {
-            free_pingCtlTable_data(StorageDel);
-            StorageDel = NULL;
-        }
+        /*
+         * Release any resources that have been allocated 
+         */
         break;
 
 
@@ -4330,8 +4274,10 @@ write_pingCtlRowStatus(int action,
                 header_complex_find_entry(pingCtlTableStorage, StorageNew);
             StorageDel =
                 header_complex_extract_entry(&pingCtlTableStorage, hciptr);
-            free_pingCtlTable_data(StorageDel);
-            StorageDel = NULL;
+
+            /*
+             * XXX: free it 
+             */
         } else if (StorageDel != NULL) {
             /*
              * row deletion, so add it again 
@@ -4339,7 +4285,6 @@ write_pingCtlRowStatus(int action,
             pingCtlTable_add(StorageDel);
             pingResultsTable_add(StorageDel);
             pingProbeHistoryTable_addall(StorageDel);
-            StorageDel = NULL;
         } else {
             StorageTmp->pingCtlRowStatus = old_value;
         }
@@ -4361,8 +4306,37 @@ write_pingCtlRowStatus(int action,
         }
 
         if (StorageDel != NULL) {
-            free_pingCtlTable_data(StorageDel);
+            /*
+             * if(strlen(StorageDel->pingCtlOwnerIndex)!=0)
+             * SNMP_FREE(StorageDel->pingCtlOwnerIndex);
+             * printf("COMMIT1 \n");
+             * if(strlen(StorageDel->pingCtlTestName)!=0)
+             * SNMP_FREE(StorageDel->pingCtlTestName);
+             * printf("COMMIT2 \n");
+             * if(strlen(StorageDel->pingCtlTargetAddress)!=0)
+             * SNMP_FREE(StorageDel->pingCtlTargetAddress);
+             * printf("COMMIT3 \n");
+             * if(strlen(StorageDel->pingCtlDataFill)!=0)
+             * SNMP_FREE(StorageDel->pingCtlDataFill);
+             * printf("COMMIT4 \n");
+             * if(strlen(StorageDel->pingCtlTrapGeneration)!=0)
+             * SNMP_FREE(StorageDel->pingCtlTrapGeneration);
+             * printf("COMMIT5 \n");
+             * if(StorageDel->pingCtlTypeLen!=0)
+             * SNMP_FREE(StorageDel->pingCtlType);
+             * printf("COMMIT6 \n");
+             * if(strlen(StorageDel->pingCtlDescr)!=0)
+             * SNMP_FREE(StorageDel->pingCtlDescr);
+             * printf("COMMIT7 \n");
+             * if(strlen(StorageDel->pingCtlSourceAddress)!=0)
+             * SNMP_FREE(StorageDel->pingCtlSourceAddress);
+             * printf("COMMIT8 \n");
+             */
             StorageDel = NULL;
+            /* StorageDel = 0; */
+            /*
+             * XXX: free it, its dead 
+             */
         } else {
             if (StorageTmp
                 && StorageTmp->pingCtlRowStatus == RS_CREATEANDGO) {
@@ -4392,12 +4366,12 @@ write_pingCtlRowStatus(int action,
                                             StorageTmp);
                 else
                     StorageTmp->timer_id =
-                        snmp_alarm_register(1, 0, run_ping, StorageTmp);
+                        snmp_alarm_register(1, (int) NULL, run_ping,
+                                            StorageTmp);
 
             }
 
         }
-        snmp_store_needed(NULL);
 
         break;
     }
@@ -4475,9 +4449,7 @@ int
 __schedule_exit(int next, long *nreceived, long *tmax)
 {
     unsigned long   waittime;
-#if 0
     struct itimerval it;
-#endif
 
     if (*nreceived) {
         waittime = 2 * (*tmax);
@@ -4489,13 +4461,11 @@ __schedule_exit(int next, long *nreceived, long *tmax)
     if (next < 0 || next < waittime / 1000)
         next = waittime / 1000;
 
-#if 0
     it.it_interval.tv_sec = 0;
     it.it_interval.tv_usec = 0;
     it.it_value.tv_sec = waittime / 1000000;
     it.it_value.tv_usec = waittime % 1000000;
-    setitimer(ITIMER_REAL, &it, NULL);
-#endif
+    /* setitimer(ITIMER_REAL, &it, NULL); */
     return next;
 }
 
@@ -4535,13 +4505,14 @@ pinger(int icmp_sock, int preload, int cmsglen, char *cmsgbuf,
      * Check that packets < rate*time + preload 
      */
     if ((*cur_time).tv_sec == 0) {
-        netsnmp_get_monotonic_clock(cur_time);
+
+        gettimeofday(cur_time, NULL);
         tokens = interval * (preload - 1);
     } else {
         long            ntokens;
         struct timeval  tv;
 
-        netsnmp_get_monotonic_clock(&tv);
+        gettimeofday(&tv, NULL);
         ntokens = (tv.tv_sec - (*cur_time).tv_sec) * 1000 +
             (tv.tv_usec - (*cur_time).tv_usec) / 1000;
         if (!interval) {
@@ -4661,7 +4632,7 @@ void
 sock_setbufs(int icmp_sock, int alloc, int preload)
 {
     int             rcvbuf, hold;
-    socklen_t       tmplen = sizeof(hold);
+    int             tmplen = sizeof(hold);
     int             sndbuf;
 
     if (!sndbuf)
@@ -4766,9 +4737,8 @@ setup(int icmp_sock, int options, int uid, int timeout, int preload,
 
     *ident = getpid() & 0xFFFF;
 
-    netsnmp_get_monotonic_clock(start_time);
+    gettimeofday(start_time, NULL);
 
-#if 0
     if (*deadline) {
         struct itimerval it;
 
@@ -4777,7 +4747,6 @@ setup(int icmp_sock, int options, int uid, int timeout, int preload,
         it.it_value.tv_sec = (*deadline);
         it.it_value.tv_usec = 0;
     }
-#endif
 
     if (isatty(STDOUT_FILENO)) {
         struct winsize  w;
@@ -4850,11 +4819,11 @@ main_loop(struct pingCtlTable_data *item, int icmp_sock, int preload,
             break;
         }
         if (npackets && nreceived >= npackets) {
-            DEBUGMSGTL(("pingCtlTable", "npackets,nreceived=%ld\n", nreceived));
+            printf("npackets,nreceived=%d\n", nreceived);
             break;
         }
         if (deadline && nerrors) {
-            DEBUGMSGTL(("pingCtlTable", "deadline\n"));
+            printf("deadline\n");
             break;
         }
 
@@ -4869,7 +4838,7 @@ main_loop(struct pingCtlTable_data *item, int icmp_sock, int preload,
          * Send probes scheduled to this time. 
          */
         do {
-            DEBUGMSGTL(("pingCtlTable", "pinger\n"));
+            printf("pinger\n");
             next =
                 pinger(icmp_sock, preload, cmsglen, cmsgbuf, whereto,
                        &rtt_addend, uid, options, interval, datalen,
@@ -4877,11 +4846,11 @@ main_loop(struct pingCtlTable_data *item, int icmp_sock, int preload,
                        deadline, &acked, &npackets, &nreceived,
                        &ntransmitted, &nerrors, &confirm_flag, &confirm,
                        &pipesize, &cur_time);
-            DEBUGMSGTL(("pingCtlTable", "1:next=%d\n", next));
+            printf("1:next=%d\n", next);
             next =
                 schedule_exit(next, deadline, &npackets, &nreceived,
                               &ntransmitted, &tmax);
-            DEBUGMSGTL(("pingCtlTable", "2:next=%d\n", next));
+            printf("2:next=%d\n", next);
         } while (next <= 0);
 
         /*
@@ -4970,6 +4939,8 @@ main_loop(struct pingCtlTable_data *item, int icmp_sock, int preload,
                     struct pingProbeHistoryTable_data *temp = NULL;
                     netsnmp_variable_list *vars = NULL;
 
+
+
                     if (series == 0)
                         probeFailed = 1;
                     else
@@ -4977,17 +4948,13 @@ main_loop(struct pingCtlTable_data *item, int icmp_sock, int preload,
                     series = 1;
                     testFailed = testFailed + 1;
 
-                    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                                              item->pingCtlOwnerIndex,
-                                              item->pingCtlOwnerIndexLen);
-                    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                                              item->pingCtlTestName,
-                                              item->pingCtlTestNameLen);
-
-                    StorageNew = header_complex_get(pingResultsTableStorage,
-                                                    vars);
-                    snmp_free_varbind(vars);
-                    if (!StorageNew)
+                    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlOwnerIndex, item->pingCtlOwnerIndexLen);     /*  pingCtlOwnerIndex  */
+                    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlTestName, item->pingCtlTestNameLen); /*  pingCtlTestName  */
+
+
+                    if ((StorageNew =
+                         header_complex_get(pingResultsTableStorage,
+                                            vars)) == NULL)
                         return;
 
                     StorageNew->pingResultsSendProbes =
@@ -5026,9 +4993,16 @@ main_loop(struct pingCtlTable_data *item, int icmp_sock, int preload,
                     temp->pingProbeHistoryStatus = 4;
                     temp->pingProbeHistoryLastRC = 1;
 
-		    temp->pingProbeHistoryTime_time = timep;
-		    memdup(&temp->pingProbeHistoryTime,
-			date_n_time(&timep, &temp->pingProbeHistoryTimeLen), 11);
+                    temp->pingProbeHistoryTime =
+                        (char *) malloc(strlen(asctime(gmtime(&timep))));
+                    temp->pingProbeHistoryTime =
+                        strdup(asctime(gmtime(&timep)));
+                    temp->
+                        pingProbeHistoryTime[strlen
+                                             (asctime(gmtime(&timep))) -
+                                             1] = '\0';
+                    temp->pingProbeHistoryTimeLen =
+                        strlen(asctime(gmtime(&timep))) - 1;
 
                     if (StorageNew->pingResultsSendProbes == 1)
                         item->pingProbeHis = temp;
@@ -5043,7 +5017,7 @@ main_loop(struct pingCtlTable_data *item, int icmp_sock, int preload,
                         current_temp.next = NULL;
                     }
 
-                    if (item->pingProbeHis != NULL) {
+                    if (item->pingProbeHis != NULL)
                         if (pingProbeHistoryTable_count(item) <
                             item->pingCtlMaxRows) {
                             if (pingProbeHistoryTable_add(&current_temp) !=
@@ -5058,7 +5032,6 @@ main_loop(struct pingCtlTable_data *item, int icmp_sock, int preload,
                                             "registered an entry error\n"));
 
                         }
-		    }
                     if ((item->
                          pingCtlTrapGeneration[0] &
                          PINGTRAPGENERATION_PROBEFAILED) != 0) {
@@ -5080,7 +5053,7 @@ main_loop(struct pingCtlTable_data *item, int icmp_sock, int preload,
                     not_ours = 1;
                 }
             } else {
-                DEBUGMSGTL(("pingCtlTable", "cc>=0,else\n"));
+                printf("cc>=0,else\n");
 #ifdef SO_TIMESTAMP
                 for (c = CMSG_FIRSTHDR(&msg); c; c = CMSG_NXTHDR(&msg, c)) {
                     if (c->cmsg_level != SOL_SOCKET ||
@@ -5095,7 +5068,7 @@ main_loop(struct pingCtlTable_data *item, int icmp_sock, int preload,
                 if ((options & F_LATENCY) || recv_timep == NULL) {
                     if ((options & F_LATENCY) ||
                         ioctl(icmp_sock, SIOCGSTAMP, &recv_time))
-                        netsnmp_get_monotonic_clock(&recv_time);
+                        gettimeofday(&recv_time, NULL);
                     recv_timep = &recv_time;
                 }
 
@@ -5195,14 +5168,19 @@ gather_statistics(int *series, struct pingCtlTable_data *item, __u8 * ptr,
         struct timeval  tmp_tv;
         memcpy(&tmp_tv, ptr, sizeof(tmp_tv));
 
+      restamp:
         tvsub(tv, &tmp_tv);
         triptime = tv->tv_sec * 1000000 + tv->tv_usec;
         if (triptime < 0) {
-            snmp_log(LOG_INFO,
-                     "Warning: invalid timestamp in ICMP response.\n");
+            fprintf(stderr,
+                    "Warning: time of day goes back (%ldus), taking countermeasures.\n",
+                    triptime);
             triptime = 0;
-            if (!(options & F_LATENCY))
+            if (!(options & F_LATENCY)) {
+                gettimeofday(tv, NULL);
                 options |= F_LATENCY;
+                goto restamp;
+            }
         }
         if (!csfailed) {
             (*tsum) += triptime;
@@ -5244,50 +5222,47 @@ gather_statistics(int *series, struct pingCtlTable_data *item, __u8 * ptr,
     } else {
         int             i;
         __u8           *cp, *dp;
-
-        DEBUGMSGTL(("pingCtlTable", "%d bytes from %s: icmp_seq=%u", cc, from,
-                    seq));
+        printf("%d bytes from %s: icmp_seq=%u", cc, from, seq);
 
         if (hops >= 0)
-            DEBUGMSGTL(("pingCtlTable", " ttl=%d", hops));
+            printf(" ttl=%d", hops);
 
         if (cc < datalen + 8) {
-            DEBUGMSGTL(("pingCtlTable", " (truncated)\n"));
+            printf(" (truncated)\n");
             return 1;
         }
         if (timing) {
             if (triptime >= 100000)
-                DEBUGMSGTL(("pingCtlTable", " time=%ld ms", triptime / 1000));
+                printf(" time=%ld ms", triptime / 1000);
             else if (triptime >= 10000)
-                DEBUGMSGTL(("pingCtlTable", " time=%ld.%01ld ms",
-                            triptime / 1000, (triptime % 1000) / 100));
+                printf(" time=%ld.%01ld ms", triptime / 1000,
+                       (triptime % 1000) / 100);
             else if (triptime >= 1000)
-                DEBUGMSGTL(("pingCtlTable", " time=%ld.%02ld ms",
-                            triptime / 1000, (triptime % 1000) / 10));
+                printf(" time=%ld.%02ld ms", triptime / 1000,
+                       (triptime % 1000) / 10);
             else
-                DEBUGMSGTL(("pingCtlTable", " time=%ld.%03ld ms",
-                            triptime / 1000, triptime % 1000));
+                printf(" time=%ld.%03ld ms", triptime / 1000,
+                       triptime % 1000);
         }
         if (dupflag)
-            DEBUGMSGTL(("pingCtlTable", " (DUP!)"));
+            printf(" (DUP!)");
         if (csfailed)
-            DEBUGMSGTL(("pingCtlTable", " (BAD CHECKSUM!)"));
+            printf(" (BAD CHECKSUM!)");
 
         /*
          * check the data 
          */
         cp = ((u_char *) ptr) + sizeof(struct timeval);
-        dp = (u_char *)&outpack[8 + sizeof(struct timeval)];
+        dp = &outpack[8 + sizeof(struct timeval)];
         for (i = sizeof(struct timeval); i < datalen; ++i, ++cp, ++dp) {
             if (*cp != *dp) {
-                DEBUGMSGTL(("pingCtlTable",
-                            "\nwrong data byte #%d should be 0x%x but was 0x%x",
-                            i, *dp, *cp));
+                printf("\nwrong data byte #%d should be 0x%x but was 0x%x",
+                       i, *dp, *cp);
                 cp = (u_char *) ptr + sizeof(struct timeval);
                 for (i = sizeof(struct timeval); i < datalen; ++i, ++cp) {
                     if ((i % 32) == sizeof(struct timeval))
-                        DEBUGMSGTL(("pingCtlTable", "\n#%d\t", i));
-                    DEBUGMSGTL(("pingCtlTable", "%x ", *cp));
+                        printf("\n#%d\t", i);
+                    printf("%x ", *cp);
                 }
                 break;
             }
@@ -5295,16 +5270,12 @@ gather_statistics(int *series, struct pingCtlTable_data *item, __u8 * ptr,
     }
 
 
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              item->pingCtlOwnerIndex,
-                              item->pingCtlOwnerIndexLen);
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
-                              item->pingCtlTestName,
-                              item->pingCtlTestNameLen);
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlOwnerIndex, item->pingCtlOwnerIndexLen);     /*  pingCtlOwnerIndex  */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) item->pingCtlTestName, item->pingCtlTestNameLen); /*  pingCtlTestName  */
 
-    StorageNew = header_complex_get(pingResultsTableStorage, vars);
-    snmp_free_varbind(vars);
-    if (!StorageNew)
+
+    if ((StorageNew =
+         header_complex_get(pingResultsTableStorage, vars)) == NULL)
         return SNMP_ERR_NOSUCHNAME;
 
 
@@ -5318,10 +5289,13 @@ gather_statistics(int *series, struct pingCtlTable_data *item, __u8 * ptr,
         StorageNew->pingResultsSendProbes + 1;
     StorageNew->pingResultsRttSumOfSquares = *tsum2;
 
-    StorageNew->pingResultsLastGoodProbe_time = timep;
-    free(StorageNew->pingResultsLastGoodProbe);
-    memdup(&StorageNew->pingResultsLastGoodProbe,
-	date_n_time(&timep, &StorageNew->pingResultsLastGoodProbeLen), 11);
+    StorageNew->pingResultsLastGoodProbe =
+        (char *) malloc(strlen(asctime(gmtime(&timep))));
+    StorageNew->pingResultsLastGoodProbe = strdup(asctime(gmtime(&timep)));
+    StorageNew->pingResultsLastGoodProbe[strlen(asctime(gmtime(&timep))) -
+                                         1] = '\0';
+    StorageNew->pingResultsLastGoodProbeLen =
+        strlen(asctime(gmtime(&timep))) - 1;
 
     /* ProbeHistory               */
     if (item->pingCtlMaxRows != 0) {
@@ -5355,9 +5329,12 @@ gather_statistics(int *series, struct pingCtlTable_data *item, __u8 * ptr,
         temp->pingProbeHistoryStatus = 1;
         temp->pingProbeHistoryLastRC = 0;
 
-	temp->pingProbeHistoryTime_time = timep;
-	memdup(&temp->pingProbeHistoryTime,
-	    date_n_time(&timep, &temp->pingProbeHistoryTimeLen), 11);
+        temp->pingProbeHistoryTime =
+            (char *) malloc(strlen(asctime(gmtime(&timep))));
+        temp->pingProbeHistoryTime = strdup(asctime(gmtime(&timep)));
+        temp->pingProbeHistoryTime[strlen(asctime(gmtime(&timep))) - 1] = '\0';
+        temp->pingProbeHistoryTimeLen =
+            strlen(asctime(gmtime(&timep))) - 1;
 
         if (StorageNew->pingResultsSendProbes == 1)
             item->pingProbeHis = temp;
@@ -5427,21 +5404,20 @@ finish(int options, char *hostname, int interval, int timing, int *rtt,
 
     putchar('\n');
     fflush(stdout);
-    DEBUGMSGTL(("pingCtlTable", "--- %s ping statistics ---\n", hostname));
+    printf("--- %s ping statistics ---\n", hostname);
 
     if (*nrepeats)
-        DEBUGMSGTL(("pingCtlTable", ", +%ld duplicates", *nrepeats));
+        printf(", +%ld duplicates", *nrepeats);
     if (*nchecksum)
-        DEBUGMSGTL(("pingCtlTable", ", +%ld corrupted", *nchecksum));
+        printf(", +%ld corrupted", *nchecksum);
     if (*nerrors)
-        DEBUGMSGTL(("pingCtlTable", ", +%ld errors", *nerrors));
+        printf(", +%ld errors", *nerrors);
     if (*ntransmitted) {
-        DEBUGMSGTL(("pingCtlTable", ", %d%% loss",
-                    (int) ((((long long) ((*ntransmitted) -
-                                          (*nreceived))) * 100) /
-                           (*ntransmitted))));
-        DEBUGMSGTL(("pingCtlTable", ", time %ldms",
-                    1000 * tv.tv_sec + tv.tv_usec / 1000));
+        printf(", %d%% loss",
+               (int) ((((long long) ((*ntransmitted) -
+                                     (*nreceived))) * 100) /
+                      (*ntransmitted)));
+        printf(", time %ldms", 1000 * tv.tv_sec + tv.tv_usec / 1000);
     }
     putchar('\n');
 
@@ -5452,23 +5428,21 @@ finish(int options, char *hostname, int interval, int timing, int *rtt,
         (*tsum2) /= (*nreceived) + (*nrepeats);
         tmdev = llsqrt((*tsum2) - (*tsum) * (*tsum));
 
-        DEBUGMSGTL(("pingCtlTable", "rtt min/avg/max/mdev = %ld.%03ld/%lu.%03ld"
-                    "/%ld.%03ld/%ld.%03ld ms",
-                    (*tmin) / 1000, (*tmin) % 1000,
-                    (unsigned long) ((*tsum) / 1000), (long) ((*tsum) % 1000),
-                    (*tmax) / 1000, (*tmax) % 1000, tmdev / 1000,
-                    tmdev % 1000));
+        printf
+            ("rtt min/avg/max/mdev = %ld.%03ld/%lu.%03ld/%ld.%03ld/%ld.%03ld ms",
+             (*tmin) / 1000, (*tmin) % 1000,
+             (unsigned long) ((*tsum) / 1000), (long) ((*tsum) % 1000),
+             (*tmax) / 1000, (*tmax) % 1000, tmdev / 1000, tmdev % 1000);
     }
     if ((*pipesize) > 1)
-        DEBUGMSGTL(("pingCtlTable", ", pipe %d", *pipesize));
+        printf(", pipe %d", *pipesize);
     if ((*ntransmitted) > 1
         && (!interval || (options & (F_FLOOD | F_ADAPTIVE)))) {
         int             ipg =
             (1000000 * (long long) tv.tv_sec +
              tv.tv_usec) / ((*ntransmitted) - 1);
-        DEBUGMSGTL(("pingCtlTable", ", ipg/ewma %d.%03d/%d.%03d ms",
-                    ipg / 1000, ipg % 1000,
-                    (*rtt) / 8000, ((*rtt) / 8) % 1000));
+        printf(", ipg/ewma %d.%03d/%d.%03d ms", ipg / 1000, ipg % 1000,
+               (*rtt) / 8000, ((*rtt) / 8) % 1000);
     }
     putchar('\n');
     return;
@@ -5491,19 +5465,19 @@ status(int timing, int *rtt, long *nreceived, long *nrepeats,
             (((long long) ((*ntransmitted) -
                            (*nreceived))) * 100) / (*ntransmitted);
 
-    DEBUGMSGTL(("pingCtlTable", "\n%ld/%ld packets, %d%% loss", *ntransmitted,
-                *nreceived, loss));
+    fprintf(stderr, "\r%ld/%ld packets, %d%% loss", *ntransmitted,
+            *nreceived, loss);
 
     if ((*nreceived) && timing) {
         tavg = (*tsum) / ((*nreceived) + (*nrepeats));
 
-        DEBUGMSGTL(("pingCtlTable", ", min/avg/ewma/max = %ld.%03ld/%lu.%03ld"
-                    "/%d.%03d/%ld.%03ld ms",
-                    (*tmin) / 1000, (*tmin) % 1000, tavg / 1000, tavg % 1000,
-                    (*rtt) / 8000, ((*rtt) / 8) % 1000, (*tmax) / 1000,
-                    (*tmax) % 1000));
+        fprintf(stderr,
+                ", min/avg/ewma/max = %ld.%03ld/%lu.%03ld/%d.%03d/%ld.%03ld ms",
+                (*tmin) / 1000, (*tmin) % 1000, tavg / 1000, tavg % 1000,
+                (*rtt) / 8000, ((*rtt) / 8) % 1000, (*tmax) / 1000,
+                (*tmax) % 1000);
     }
-    DEBUGMSGTL(("pingCtlTable", "\n"));
+    fprintf(stderr, "\n");
 }
 
 
@@ -5524,7 +5498,7 @@ receive_error_msg(int icmp_sock, struct sockaddr_in6 *whereto, int options,
     struct msghdr   msg;
     struct cmsghdr *cmsg;
     struct sock_extended_err *e;
-    struct icmp6_hdr icmph;
+    struct icmp6hdr icmph;
     struct sockaddr_in6 target;
     int             net_errors = 0;
     int             local_errors = 0;
@@ -5561,16 +5535,20 @@ receive_error_msg(int icmp_sock, struct sockaddr_in6 *whereto, int options,
         if (options & F_FLOOD)
             write(STDOUT_FILENO, "E", 1);
         else if (e->ee_errno != EMSGSIZE)
-            snmp_log(LOG_ERR, "ping: local error: %s\n", strerror(e->ee_errno));
+            fprintf(stderr, "ping: local error: %s\n",
+                    strerror(e->ee_errno));
         else
-            snmp_log(LOG_ERR, "ping: local error: Message too long, mtu=%u\n",
-                     e->ee_info);
+            fprintf(stderr,
+                    "ping: local error: Message too long, mtu=%u\n",
+                    e->ee_info);
         (*nerrors)++;
     } else if (e->ee_origin == SO_EE_ORIGIN_ICMP6) {
+        struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) (e + 1);
+
         if (res < sizeof(icmph) ||
             memcmp(&target.sin6_addr, &(whereto->sin6_addr), 16) ||
-            icmph.icmp6_type != ICMP6_ECHO_REQUEST ||
-            icmph.icmp6_id != *ident) {
+            icmph.icmp6_type != ICMPV6_ECHO_REQUEST ||
+            icmph.icmp6_identifier != *ident) {
             /*
              * Not our error, not an error at all. Clear. 
              */
@@ -5599,19 +5577,19 @@ send_v6(int icmp_sock, int cmsglen, char *cmsgbuf,
         struct sockaddr_in6 *whereto, int datalen, int timing,
         char *outpack, int *ident, long *ntransmitted, int *confirm)
 {
-    struct icmp6_hdr *icmph;
+    struct icmp6hdr *icmph;
     int             cc;
     int             i;
     int             mx_dup_ck = MAX_DUP_CHK;
 
-    icmph = (struct icmp6_hdr *) outpack;
-    icmph->icmp6_type = ICMP6_ECHO_REQUEST;
+    icmph = (struct icmp6hdr *) outpack;
+    icmph->icmp6_type = ICMPV6_ECHO_REQUEST;
     icmph->icmp6_code = 0;
     icmph->icmp6_cksum = 0;
-    icmph->icmp6_seq = (*ntransmitted) + 1;
-    icmph->icmp6_id = *ident;
+    icmph->icmp6_sequence = (*ntransmitted) + 1;
+    icmph->icmp6_identifier = *ident;
 
-    CLR(icmph->icmp6_seq % mx_dup_ck);
+    CLR(icmph->icmp6_sequence % mx_dup_ck);
 
     if (timing)
         gettimeofday((struct timeval *) &outpack[8],
@@ -5666,7 +5644,7 @@ parse_reply(int *series, struct pingCtlTable_data *item,
     struct sockaddr_in6 *from = addr;
     __u8           *buf = msg->msg_iov->iov_base;
     struct cmsghdr *c;
-    struct icmp6_hdr *icmph;
+    struct icmp6hdr *icmph;
     int             hops = -1;
 
 
@@ -5683,17 +5661,17 @@ parse_reply(int *series, struct pingCtlTable_data *item,
      * Now the ICMP part 
      */
 
-    icmph = (struct icmp6_hdr *) buf;
+    icmph = (struct icmp6hdr *) buf;
     if (cc < 8) {
         if (options & F_VERBOSE)
-            snmp_log(LOG_ERR, "ping: packet too short (%d bytes)\n", cc);
+            fprintf(stderr, "ping: packet too short (%d bytes)\n", cc);
         return 1;
     }
-    if (icmph->icmp6_type == ICMP6_ECHO_REPLY) {
-        if (icmph->icmp6_id != *ident)
+    if (icmph->icmp6_type == ICMPV6_ECHO_REPLY) {
+        if (icmph->icmp6_identifier != *ident)
             return 1;
         if (gather_statistics(series, item, (__u8 *) (icmph + 1), cc,
-                              icmph->icmp6_seq,
+                              icmph->icmp6_sequence,
                               hops, 0, tv, timep, rtt_addend, uid, options,
                               pr_addr(&from->sin6_addr, options), interval,
                               datalen, timing, outpack, rtt, acked,
@@ -5703,8 +5681,8 @@ parse_reply(int *series, struct pingCtlTable_data *item,
             return 0;
     } else {
         int             nexthdr;
-        struct ip6_hdr *iph1 = (struct ip6_hdr *) (icmph + 1);
-        struct icmp6_hdr *icmph1 = (struct icmp6_hdr *) (iph1 + 1);
+        struct ipv6hdr *iph1 = (struct ipv6hdr *) (icmph + 1);
+        struct icmp6hdr *icmph1 = (struct icmp6hdr *) (iph1 + 1);
 
         /*
          * We must not ever fall here. All the messages but
@@ -5714,23 +5692,23 @@ parse_reply(int *series, struct pingCtlTable_data *item,
          * * using RECVRERR. :-)
          */
 
-        if (cc < 8 + sizeof(struct ip6_hdr) + 8)
+        if (cc < 8 + sizeof(struct ipv6hdr) + 8)
             return 1;
 
-        if (memcmp(&iph1->ip6_dst, &(whereto->sin6_addr), 16))
+        if (memcmp(&iph1->daddr, &(whereto->sin6_addr), 16))
             return 1;
 
-        nexthdr = iph1->ip6_nxt;
+        nexthdr = iph1->nexthdr;
 
         if (nexthdr == 44) {
             nexthdr = *(__u8 *) icmph1;
             icmph1++;
         }
         if (nexthdr == IPPROTO_ICMPV6) {
-            if (icmph1->icmp6_type != ICMP6_ECHO_REQUEST ||
-                icmph1->icmp6_id != *ident)
+            if (icmph1->icmp6_type != ICMPV6_ECHO_REQUEST ||
+                icmph1->icmp6_identifier != *ident)
                 return 1;
-            acknowledge(icmph1->icmp6_seq, acked, ntransmitted,
+            acknowledge(icmph1->icmp6_sequence, acked, ntransmitted,
                         pipesize);
             if (working_recverr)
                 return 0;
@@ -5739,17 +5717,16 @@ parse_reply(int *series, struct pingCtlTable_data *item,
                 write(STDOUT_FILENO, "\bE", 2);
                 return 0;
             }
-            DEBUGMSGTL(("pingCtlTable", "From %s: icmp_seq=%u ",
-                        pr_addr(&from->sin6_addr, options),
-                        icmph1->icmp6_seq));
+            printf("From %s: icmp_seq=%u ",
+                   pr_addr(&from->sin6_addr, options),
+                   icmph1->icmp6_sequence);
         } else {
             /*
              * We've got something other than an ECHOREPLY 
              */
             if (!(options & F_VERBOSE) || uid)
                 return 1;
-            DEBUGMSGTL(("pingCtlTable", "From %s: ",
-                        pr_addr(&from->sin6_addr, options)));
+            printf("From %s: ", pr_addr(&from->sin6_addr, options));
         }
         /* pr_icmph(icmph->icmp6_type, icmph->icmp6_code, ntohl(icmph->icmp6_mtu)); */
     }
@@ -5775,7 +5752,7 @@ install_filter(int icmp_sock, int *ident)
         BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, 0xAAAA, 0, 1),      /* Ours? */
         BPF_STMT(BPF_RET | BPF_K, ~0U), /* Yes, it passes. */
         BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 0),  /* Load icmp type */
-        BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, ICMP6_ECHO_REPLY, 1, 0),   /* Echo? */
+        BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, ICMPV6_ECHO_REPLY, 1, 0),   /* Echo? */
         BPF_STMT(BPF_RET | BPF_K, ~0U), /* No. It passes. This must not happen. */
         BPF_STMT(BPF_RET | BPF_K, 0),   /* Echo with wrong ident. Reject. */
     };
@@ -5783,7 +5760,6 @@ install_filter(int icmp_sock, int *ident)
         sizeof insns / sizeof(insns[0]),
         insns
     };
-    int id;
 
     if (once)
         return;
@@ -5792,10 +5768,9 @@ install_filter(int icmp_sock, int *ident)
     /*
      * Patch bpflet for current identifier. 
      */
-    id = htons( *ident );
     insns[1] =
         (struct sock_filter) BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K,
-                                      id, 0, 1);
+                                      __constant_htons(*ident), 0, 1);
 
     if (setsockopt
         (icmp_sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter)))
@@ -5814,8 +5789,8 @@ pr_addr(struct in6_addr *addr, int options)
     struct hostent *hp = NULL;
 
     if (!(options & F_NUMERIC))
-        hp = netsnmp_gethostbyaddr((__u8 *) addr, sizeof(struct in6_addr),
-                                   AF_INET6);
+        hp = gethostbyaddr((__u8 *) addr, sizeof(struct in6_addr),
+                           AF_INET6);
 
     return hp ? hp->h_name : pr_addr_n(addr);
 }
diff --git a/agent/mibgroup/disman/ping/pingCtlTable.h b/agent/mibgroup/disman/ping/pingCtlTable.h
index ca69d13..2234ec9 100644
--- a/agent/mibgroup/disman/ping/pingCtlTable.h
+++ b/agent/mibgroup/disman/ping/pingCtlTable.h
@@ -15,6 +15,8 @@
 #ifndef PINGCTLTABLE_H
 #define PINGCTLTABLE_H
 
+
+
 #include	<sys/types.h>   /* basic system data types */
 #include	<sys/socket.h>  /* basic socket definitions */
 #include	<sys/time.h>    /* timeval{} for select() */
@@ -90,10 +92,21 @@
 #include <ctype.h>
 #include <linux/errqueue.h>
 
+/* #include <linux/in6.h>  */
+/* #include <linux/ipv6.h> */
+
+#include "in6.h"
+#include "ipv6.h"
+
+
+#include <linux/icmpv6.h>
 #include <sched.h>
 
-#include <netinet/ip6.h>
-#include <netinet/icmp6.h>
+
+
+
+#define	BUFSIZE		1500
+
 
 
 /*
@@ -174,9 +187,8 @@ struct pingResultsTable_data {
     unsigned long   pingResultsProbeResponses;
     unsigned long   pingResultsSendProbes;
     unsigned long   pingResultsRttSumOfSquares;
-    u_char         *pingResultsLastGoodProbe;
+    char           *pingResultsLastGoodProbe;
     size_t          pingResultsLastGoodProbeLen;
-    time_t          pingResultsLastGoodProbe_time;
 
     int             storageType;
 
@@ -193,9 +205,8 @@ struct pingProbeHistoryTable_data {
     unsigned long   pingProbeHistoryResponse;
     long            pingProbeHistoryStatus;
     long            pingProbeHistoryLastRC;
-    u_char         *pingProbeHistoryTime;
+    char           *pingProbeHistoryTime;
     size_t          pingProbeHistoryTimeLen;
-    time_t          pingProbeHistoryTime_time;
 
     int             storageType;
 
@@ -206,7 +217,6 @@ struct pingProbeHistoryTable_data {
  * function declarations 
  */
 void            init_pingCtlTable(void);
-void            shutdown_pingCtlTable(void);
 FindVarMethod   var_pingCtlTable;
 void            parse_pingCtlTable(const char *, char *);
 SNMPCallback    store_pingCtlTable;
@@ -335,6 +345,9 @@ struct proto {
 #endif
 
 
+static char    *pr_addr(struct in6_addr *addr, int options);
+static char    *pr_addr_n(struct in6_addr *addr);
+static int      pr_icmph(__u8 type, __u8 code, __u32 info);
 
 #define	MAX_DUP_CHK	0x10000
 char            rcvd_tbl[MAX_DUP_CHK / 8];
@@ -388,6 +401,16 @@ volatile int    status_snapshot;
 #define MULTICAST_TTL		0x002
 #define MULTICAST_IF		0x004
 
+static inline void tvsub(struct timeval *, struct timeval *);
+static inline void set_signal(int, void (*)(int));
+static inline int schedule_exit(int, int *, long *, long *, long *,
+                                long *);
+static inline int in_flight(__u16 *, long *, long *, long *);
+static inline void acknowledge(__u16, __u16 *, long *, int *);
+static inline void advance_ntransmitted(__u16 *, long *);
+static void     sigexit(int);
+static void     sigexit(int);
+static inline void update_interval(int, int, int *, int *);
 int             __schedule_exit(int, long *, long *);
 int             pinger(int, int, int, char *, struct sockaddr_in6 *, int *,
                        int, int, int, int, int, char *, int *, int *,
@@ -408,12 +431,14 @@ int             gather_statistics(int *, struct pingCtlTable_data *,
                                   long *, long *, long *, long long *,
                                   long long *, int *, int *, int *,
                                   struct pingProbeHistoryTable_data *);
+static long     llsqrt(long long);
 void            finish(int, char *, int, int, int *, struct timeval *,
                        int *, long *, long *, long *, long *, long *,
                        long *, long *, long *, long long *, long long *,
                        int *, struct timeval *);
 void            status(int, int *, long *, long *, long *, long *, long *,
                        long long *, long long *);
+static __inline__ int ipv6_addr_any(struct in6_addr *);
 size_t          inet6_srcrt_space(int, int);
 struct cmsghdr *inet6_srcrt_init(void *, int);
 int             inet6_srcrt_add(struct cmsghdr *, const struct in6_addr *);
@@ -429,7 +454,10 @@ int             parse_reply(int *, struct pingCtlTable_data *,
                             long *, long *, long *, long long *,
                             long long *, int *, int *, int *,
                             struct pingProbeHistoryTable_data *);
+static int      pr_icmph(__u8, __u8, __u32);
 void            install_filter(int, int *);
+static char    *pr_addr(struct in6_addr *, int);
+static char    *pr_addr_n(struct in6_addr *);
 
 #endif
 /*
diff --git a/agent/mibgroup/disman/ping/pingProbeHistoryTable.c b/agent/mibgroup/disman/ping/pingProbeHistoryTable.c
index 78c75be..29599c5 100644
--- a/agent/mibgroup/disman/ping/pingProbeHistoryTable.c
+++ b/agent/mibgroup/disman/ping/pingProbeHistoryTable.c
@@ -50,14 +50,10 @@ oid             pingProbeHistoryTable_variables_oid[] =
     { 1, 3, 6, 1, 2, 1, 80, 1, 4 };
 
 struct variable2 pingProbeHistoryTable_variables[] = {
-    {COLUMN_PINGPROBEHISTORYRESPONSE, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_pingProbeHistoryTable, 2, {1, 2}},
-    {COLUMN_PINGPROBEHISTORYSTATUS,    ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_pingProbeHistoryTable, 2, {1, 3}},
-    {COLUMN_PINGPROBEHISTORYLASTRC,    ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_pingProbeHistoryTable, 2, {1, 4}},
-    {COLUMN_PINGPROBEHISTORYTIME,    ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_pingProbeHistoryTable, 2, {1, 5}}
+    {COLUMN_PINGPROBEHISTORYRESPONSE, ASN_UNSIGNED, RONLY, var_pingProbeHistoryTable, 2, {1, 2}},
+    {COLUMN_PINGPROBEHISTORYSTATUS,    ASN_INTEGER, RONLY, var_pingProbeHistoryTable, 2, {1, 3}},
+    {COLUMN_PINGPROBEHISTORYLASTRC,    ASN_INTEGER, RONLY, var_pingProbeHistoryTable, 2, {1, 4}},
+    {COLUMN_PINGPROBEHISTORYTIME,    ASN_OCTET_STR, RONLY, var_pingProbeHistoryTable, 2, {1, 5}}
 };
 
 
@@ -67,17 +63,17 @@ struct variable2 pingProbeHistoryTable_variables[] = {
 
 extern struct header_complex_index *pingCtlTableStorage;
 extern struct header_complex_index *pingProbeHistoryTableStorage;
-int
-pingProbeHistoryTable_inadd(struct pingProbeHistoryTable_data *thedata);
 
 void
 pingProbeHistoryTable_cleaner(struct header_complex_index *thestuff)
 {
     struct header_complex_index *hciptr = NULL;
-
+    struct pingProbeHistoryTable_data *StorageDel = NULL;
     DEBUGMSGTL(("pingProbeHistoryTable", "cleanerout  "));
     for (hciptr = thestuff; hciptr != NULL; hciptr = hciptr->next) {
-        header_complex_extract_entry(&pingProbeHistoryTableStorage, hciptr);
+        StorageDel =
+            header_complex_extract_entry(&pingProbeHistoryTableStorage,
+                                         hciptr);
         DEBUGMSGTL(("pingProbeHistoryTable", "cleaner  "));
     }
 
diff --git a/agent/mibgroup/disman/ping/pingResultsTable.c b/agent/mibgroup/disman/ping/pingResultsTable.c
index 1445d86..440edb4 100644
--- a/agent/mibgroup/disman/ping/pingResultsTable.c
+++ b/agent/mibgroup/disman/ping/pingResultsTable.c
@@ -49,26 +49,16 @@ oid             pingResultsTable_variables_oid[] =
     { 1, 3, 6, 1, 2, 1, 80, 1, 3 };
 
 struct variable2 pingResultsTable_variables[] = {
-    {COLUMN_PINGRESULTSOPERSTATUS,       ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_pingResultsTable, 2, {1, 1}},
-    {COLUMN_PINGRESULTSIPTARGETADDRESSTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_pingResultsTable, 2, {1, 2}},
-    {COLUMN_PINGRESULTSIPTARGETADDRESS, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_pingResultsTable, 2, {1, 3}},
-    {COLUMN_PINGRESULTSMINRTT,          ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_pingResultsTable, 2, {1, 4}},
-    {COLUMN_PINGRESULTSMAXRTT,          ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_pingResultsTable, 2, {1, 5}},
-    {COLUMN_PINGRESULTSAVERAGERTT,      ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_pingResultsTable, 2, {1, 6}},
-    {COLUMN_PINGRESULTSPROBERESPONSES,  ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_pingResultsTable, 2, {1, 7}},
-    {COLUMN_PINGRESULTSSENTPROBES,      ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_pingResultsTable, 2, {1, 8}},
-    {COLUMN_PINGRESULTSRTTSUMOFSQUARES, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_pingResultsTable, 2, {1, 9}},
-    {COLUMN_PINGRESULTSLASTGOODPROBE,  ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_pingResultsTable, 2, {1, 10}}
+    {COLUMN_PINGRESULTSOPERSTATUS,       ASN_INTEGER, RONLY, var_pingResultsTable, 2, {1, 1}},
+    {COLUMN_PINGRESULTSIPTARGETADDRESSTYPE, ASN_INTEGER, RONLY, var_pingResultsTable, 2, {1, 2}},
+    {COLUMN_PINGRESULTSIPTARGETADDRESS, ASN_OCTET_STR, RONLY, var_pingResultsTable, 2, {1, 3}},
+    {COLUMN_PINGRESULTSMINRTT,          ASN_UNSIGNED, RONLY, var_pingResultsTable, 2, {1, 4}},
+    {COLUMN_PINGRESULTSMAXRTT,          ASN_UNSIGNED, RONLY, var_pingResultsTable, 2, {1, 5}},
+    {COLUMN_PINGRESULTSAVERAGERTT,      ASN_UNSIGNED, RONLY, var_pingResultsTable, 2, {1, 6}},
+    {COLUMN_PINGRESULTSPROBERESPONSES,  ASN_UNSIGNED, RONLY, var_pingResultsTable, 2, {1, 7}},
+    {COLUMN_PINGRESULTSSENTPROBES,      ASN_UNSIGNED, RONLY, var_pingResultsTable, 2, {1, 8}},
+    {COLUMN_PINGRESULTSRTTSUMOFSQUARES, ASN_UNSIGNED, RONLY, var_pingResultsTable, 2, {1, 9}},
+    {COLUMN_PINGRESULTSLASTGOODPROBE,  ASN_OCTET_STR, RONLY, var_pingResultsTable, 2, {1, 10}}
 };
 
 
@@ -80,17 +70,16 @@ struct variable2 pingResultsTable_variables[] = {
 
 extern struct header_complex_index *pingCtlTableStorage;
 extern struct header_complex_index *pingResultsTableStorage;
-int
-pingResultsTable_inadd(struct pingResultsTable_data *thedata);
 
 void
 pingResultsTable_cleaner(struct header_complex_index *thestuff)
 {
-    struct header_complex_index *hciptr;
-
+    struct header_complex_index *hciptr = NULL;
+    struct pingResultsTable_data *StorageDel = NULL;
     DEBUGMSGTL(("pingResultsTable", "cleanerout  "));
     for (hciptr = thestuff; hciptr != NULL; hciptr = hciptr->next) {
-        header_complex_extract_entry(&pingResultsTableStorage, hciptr);
+        StorageDel =
+            header_complex_extract_entry(&pingResultsTableStorage, hciptr);
         DEBUGMSGTL(("pingResultsTable", "cleaner  "));
     }
 
diff --git a/agent/mibgroup/disman/schedule/schedConf.c b/agent/mibgroup/disman/schedule/schedConf.c
index 0cbdbc6..2e67b73 100644
--- a/agent/mibgroup/disman/schedule/schedConf.c
+++ b/agent/mibgroup/disman/schedule/schedConf.c
@@ -4,16 +4,12 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <ctype.h>
 #include "disman/schedule/schedCore.h"
 #include "disman/schedule/schedConf.h"
 
-netsnmp_feature_require(iquery)
-netsnmp_feature_require(string_time_to_secs)
-
 static int schedEntries;
 
 /** Initializes the schedConf module */
@@ -55,7 +51,7 @@ parse_sched_periodic( const char *token, char *line )
 {
     netsnmp_tdata_row       *row;
     struct schedTable_entry *entry;
-    char   buf[24], tmpbuf[SPRINT_MAX_LEN];
+    char   buf[24];
     long   frequency;
     long   value;
     size_t tmpint;
@@ -69,13 +65,7 @@ parse_sched_periodic( const char *token, char *line )
     /*
      *  Parse the configure directive line
      */
-    line = copy_nword(line, tmpbuf, sizeof(tmpbuf));
-    frequency = netsnmp_string_time_to_secs(tmpbuf);
-    if (frequency == -1) {
-        config_perror("Illegal frequency specified");
-        return;
-    }
-
+    line = read_config_read_data(ASN_INTEGER,   line, &frequency, &tmpint);
     line = read_config_read_data(ASN_OBJECT_ID, line, &var_ptr,   &var_len);
     if (var_len == 0) {
         config_perror("invalid specification for schedVariable");
@@ -84,11 +74,11 @@ parse_sched_periodic( const char *token, char *line )
     /*
      * Skip over optional assignment in "var = value"
      */
-    while (line && isspace((unsigned char)(*line)))
+    while (line && isspace(*line))
         line++;
     if (line && *line == '=' ) {
         line++;
-        while (line && isspace((unsigned char)(*line))) {
+        while (line && isspace(*line)) {
             line++;
         }
     }
@@ -129,7 +119,7 @@ void
 _sched_convert_bits( char *cron_spec, char *bit_buf,
                      int  bit_buf_len, int max_val, int startAt1 ) {
     char *cp = cron_spec;
-    u_char b[] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
+    char b[] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
     int val, major, minor;
     int overshoot;
 
@@ -229,11 +219,11 @@ parse_sched_timed( const char *token, char *line )
     /*
      * Skip over optional assignment in "var = value"
      */
-    while (line && isspace((unsigned char)(*line)))
+    while (line && isspace(*line))
         line++;
     if ( *line == '=' ) {
         line++;
-        while (line && isspace((unsigned char)(*line))) {
+        while (line && isspace(*line)) {
             line++;
         }
     }
@@ -367,7 +357,7 @@ store_schedTable(int majorID, int minorID, void *serverarg, void *clientarg)
 {
     char              line[SNMP_MAXBUF];
     char              time_bits[22];  /* schedWeekDay..schedMinute */
-    char             *cptr, *cp;
+    char             *cptr;
     void             *vp;
     size_t            tint;
     netsnmp_tdata_row *row;
@@ -397,12 +387,12 @@ store_schedTable(int majorID, int minorID, void *serverarg, void *clientarg)
         strcpy(line, "_schedTable ");
         cptr = line + strlen(line);
 
-        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 );
+        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 );
         tint = entry->schedInterval;
         cptr = read_config_store_data(ASN_UNSIGNED,  cptr, &tint, NULL );
 
@@ -418,8 +408,8 @@ store_schedTable(int majorID, int minorID, void *serverarg, void *clientarg)
         vp   = time_bits;    tint = 22;
         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->schedContextName; tint = strlen( vp );
+        cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp,  &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 c3db34f..4055d46 100644
--- a/agent/mibgroup/disman/schedule/schedCore.c
+++ b/agent/mibgroup/disman/schedule/schedCore.c
@@ -4,37 +4,13 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "disman/schedule/schedCore.h"
 #include "utilities/iquery.h"
 
-netsnmp_feature_require(iquery)
-
-netsnmp_feature_child_of(sched_nextrowtime, netsnmp_unused)
-
 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.
@@ -46,7 +22,7 @@ init_schedule_container(void)
     if (!schedule_table) {
         schedule_table = netsnmp_tdata_create_table("schedTable", 0);
         DEBUGMSGTL(("disman:schedule:init",
-                        "create schedule container(%p)\n", schedule_table));
+                        "create schedule container(%x)\n", schedule_table));
     }
 }
 
@@ -77,13 +53,13 @@ _sched_callback( unsigned int reg, void *magic )
         DEBUGMSGTL(("disman:schedule:callback", "missing entry\n"));
         return;
     }
-    entry->schedLastRun = time(NULL);
+    entry->schedLastRun = time(0);
     entry->schedTriggers++;
 
     DEBUGMSGTL(( "disman:schedule:callback", "assignment "));
     DEBUGMSGOID(("disman:schedule:callback", entry->schedVariable,
                                              entry->schedVariable_len));
-    DEBUGMSG((   "disman:schedule:callback", " = %ld\n", entry->schedValue));
+    DEBUGMSG((   "disman:schedule:callback", " = %d\n", entry->schedValue));
 
     memset(&assign, 0, sizeof(netsnmp_variable_list));
     snmp_set_var_objid(&assign, entry->schedVariable, entry->schedVariable_len);
@@ -108,10 +84,10 @@ _sched_callback( unsigned int reg, void *magic )
      * Internal utility routines to help interpret
      *  calendar-based schedule bit strings
      */
-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 };
+static char _masks[] = { /* 0xff, */ 0x7f, 0x3f, 0x1f,
+                         0x0f, 0x07, 0x03, 0x01, 0x00 };
+static char _bits[]  = { 0x80, 0x40, 0x20, 0x10,
+                         0x08, 0x04, 0x02, 0x01 };
 
 /*
  * Are any of the bits set?
@@ -170,7 +146,7 @@ _bit_next( char *pattern, int current, size_t len ) {
         /*
          * Look for the first bit that's set
          */
-    for ( i=0; i<(int)len; i++ ) {
+    for ( i=0; i<len; i++ ) {
         if ( buf[i] != 0 ) {
             major = i*8;
             for ( j=0; j<8; j++ ) {
@@ -188,9 +164,9 @@ static int _daysPerMonth[] = { 31, 28, 31, 30,
                                31, 30, 31, 31,
                                30, 31, 30, 31, 29 };
 
-static u_char _truncate[] = { 0xfe, 0xf0, 0xfe, 0xfc,
-                              0xfe, 0xfc, 0xfe, 0xfe,
-                              0xfc, 0xfe, 0xfc, 0xfe, 0xf8 };
+static 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?
@@ -263,6 +239,20 @@ _bit_next_day( char *day_pattern, char weekday_pattern,
 }
 
 
+#ifndef HAVE_LOCALTIME_R
+struct tm *
+localtime_r(const time_t *timep, struct tm *result) {
+    struct tm *tmp;
+
+    tmp = localtime( timep );
+    if ( tmp && result ) {
+        memcpy( result, tmp, sizeof(struct tm));
+    }
+
+    return (tmp ? result : NULL );
+}
+#endif
+
 /*
  * determine the time for the next scheduled action of a given entry
  */
@@ -301,15 +291,16 @@ sched_nextTime( struct schedTable_entry *entry )
         } else {
              entry->schedNextRun = now + entry->schedInterval;
         }
-        DEBUGMSGTL(("disman:schedule:time", "periodic: (%ld) %s",
-                    (long) entry->schedNextRun, ctime(&entry->schedNextRun)));
+        DEBUGMSGTL(("disman:schedule:time", "periodic: (%d) %s",
+                                  entry->schedNextRun,
+                           ctime(&entry->schedNextRun)));
         break;
 
     case SCHED_TYPE_ONESHOT:
         if ( entry->schedLastRun ) {
-            DEBUGMSGTL(("disman:schedule:time", "one-shot: expired (%ld) %s",
-                        (long) entry->schedNextRun,
-                        ctime(&entry->schedNextRun)));
+            DEBUGMSGTL(("disman:schedule:time", "one-shot: expired (%d) %s",
+                                  entry->schedNextRun,
+                           ctime(&entry->schedNextRun)));
             return;
         }
         /* Fallthrough */
@@ -346,8 +337,8 @@ sched_nextTime( struct schedTable_entry *entry )
          *    the first specified day (in that month)
          */
 
-        (void) localtime_r( &now, &now_tm );
-        (void) localtime_r( &now, &next_tm );
+        localtime_r( &now, &now_tm );
+        localtime_r( &now, &next_tm );
 
         next_tm.tm_mon=-1;
         next_tm.tm_mday=-1;
@@ -423,12 +414,13 @@ sched_nextTime( struct schedTable_entry *entry )
          * 'next_tm' now contains the time for the next scheduled run
          */
         entry->schedNextRun = mktime( &next_tm );
-        DEBUGMSGTL(("disman:schedule:time", "calendar: (%ld) %s",
-                    (long) entry->schedNextRun, ctime(&entry->schedNextRun)));
+        DEBUGMSGTL(("disman:schedule:time", "calendar: (%d) %s",
+                                  entry->schedNextRun,
+                           ctime(&entry->schedNextRun)));
         return;
 
     default:
-        DEBUGMSGTL(("disman:schedule:time", "unknown type (%ld)\n",
+        DEBUGMSGTL(("disman:schedule:time", "unknown type (%d)\n",
                                              entry->schedType));
         return;
     }
@@ -438,13 +430,11 @@ sched_nextTime( struct schedTable_entry *entry )
     return;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_SCHED_NEXTROWTIME
 void
 sched_nextRowTime( netsnmp_tdata_row *row )
 {
     sched_nextTime((struct schedTable_entry *) row->data );
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SCHED_NEXTROWTIME */
 
 /*
  * create a new row in the table 
diff --git a/agent/mibgroup/disman/schedule/schedCore.h b/agent/mibgroup/disman/schedule/schedCore.h
index 35866d7..4436711 100644
--- a/agent/mibgroup/disman/schedule/schedCore.h
+++ b/agent/mibgroup/disman/schedule/schedCore.h
@@ -44,7 +44,7 @@ struct schedTable_entry {
     char            schedDay[4+4];
     char            schedHour[3];
     char            schedMinute[8];
-    char            schedContextName[SCHED_STR1_LEN+1];
+    char            schedContextName[SCHED_STR1_LEN];
     oid             schedVariable[   MAX_OID_LEN   ];
     size_t          schedVariable_len;
     long            schedValue;
diff --git a/agent/mibgroup/disman/schedule/schedTable.c b/agent/mibgroup/disman/schedule/schedTable.c
index bba48fd..ddb1be3 100644
--- a/agent/mibgroup/disman/schedule/schedTable.c
+++ b/agent/mibgroup/disman/schedule/schedTable.c
@@ -7,27 +7,12 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "utilities/iquery.h"
 #include "disman/schedule/schedCore.h"
 #include "disman/schedule/schedTable.h"
 
-netsnmp_feature_require(iquery)
-netsnmp_feature_require(iquery_pdu_session)
-netsnmp_feature_require(table_tdata)
-netsnmp_feature_require(date_n_time)
-netsnmp_feature_require(check_vb_uint)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_type_and_max_size)
-netsnmp_feature_require(check_vb_oid)
-netsnmp_feature_require(check_vb_truthvalue)
-netsnmp_feature_require(table_tdata_insert_row)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-static netsnmp_table_registration_info *table_info;
-
 /** Initializes the schedTable module */
 void
 init_schedTable(void)
@@ -35,6 +20,7 @@ init_schedTable(void)
     static oid      schedTable_oid[] = { 1, 3, 6, 1, 2, 1, 63, 1, 2 };
     size_t          schedTable_oid_len = OID_LENGTH(schedTable_oid);
     netsnmp_handler_registration    *reg;
+    netsnmp_table_registration_info *table_info;
 
     DEBUGMSGTL(("disman:schedule:init", "Initializing table\n"));
     /*
@@ -62,14 +48,6 @@ init_schedTable(void)
     netsnmp_tdata_register(reg, schedule_table, table_info);
 }
 
-void
-shutdown_schedTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-}
 
 /** handles requests for the schedTable table */
 int
@@ -98,9 +76,6 @@ schedTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_GET:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct schedTable_entry *)
                     netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info( request);
@@ -187,7 +162,7 @@ schedTable_handler(netsnmp_mib_handler *handler,
                  * Convert 'schedLastFailed' timestamp
                  *   into DateAndTime string
                  */
-                cp = (char *) date_n_time( &entry->schedLastFailed, &len );
+                cp = date_n_time( &entry->schedLastFailed, &len );
                 snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,
                                          cp, len);
                 break;
@@ -213,9 +188,6 @@ schedTable_handler(netsnmp_mib_handler *handler,
          */
     case MODE_SET_RESERVE1:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct schedTable_entry *)
                     netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info( request);
@@ -346,9 +318,6 @@ schedTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_RESERVE2:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
 
             switch (tinfo->colnum) {
@@ -379,9 +348,6 @@ schedTable_handler(netsnmp_mib_handler *handler,
 
     case MODE_SET_FREE:
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             tinfo = netsnmp_extract_table_info(request);
 
             switch (tinfo->colnum) {
@@ -429,11 +395,7 @@ schedTable_handler(netsnmp_mib_handler *handler,
          * All these assignments are "unfailable", so it's
          *  (reasonably) safe to apply them in the Commit phase
          */
-        entry = NULL;
         for (request = requests; request; request = request->next) {
-            if (request->processed)
-                continue;
-
             entry = (struct schedTable_entry *)
                     netsnmp_tdata_extract_entry(request);
             tinfo = netsnmp_extract_table_info( request);
@@ -476,7 +438,7 @@ schedTable_handler(netsnmp_mib_handler *handler,
                 recalculate = 1;
                 break;
             case COLUMN_SCHEDCONTEXTNAME:
-                memset(entry->schedContextName, 0, sizeof(entry->schedContextName));
+                memset(entry->schedContextName, 0, SCHED_STR1_LEN+1);
                 memcpy(entry->schedContextName,
                                            request->requestvb->val.string,
                                            request->requestvb->val_len);
@@ -530,10 +492,8 @@ schedTable_handler(netsnmp_mib_handler *handler,
                 break;
             }
         }
-        if (recalculate) {
-            netsnmp_assert(entry);
+        if (recalculate)
             sched_nextTime(entry);
-        }
         break;
     }
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/disman/schedule/schedTable.h b/agent/mibgroup/disman/schedule/schedTable.h
index 52033ba..efd1f2e 100644
--- a/agent/mibgroup/disman/schedule/schedTable.h
+++ b/agent/mibgroup/disman/schedule/schedTable.h
@@ -8,7 +8,6 @@ config_add_mib(DISMAN-SCHEDULE-MIB)
  * function declarations 
  */
 void            init_schedTable(void);
-void            shutdown_schedTable(void);
 Netsnmp_Node_Handler schedTable_handler;
 
 /*
diff --git a/agent/mibgroup/disman/traceroute/traceRouteCtlTable.c b/agent/mibgroup/disman/traceroute/traceRouteCtlTable.c
index 04143eb..17493d3 100644
--- a/agent/mibgroup/disman/traceroute/traceRouteCtlTable.c
+++ b/agent/mibgroup/disman/traceroute/traceRouteCtlTable.c
@@ -18,14 +18,8 @@
 
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <pthread.h>
-#include <math.h>
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(header_complex_find_entry)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 #include "traceRouteCtlTable.h"
 #include "traceRouteResultsTable.h"
@@ -46,56 +40,31 @@ struct variable2 traceRouteCtlTable_variables[] = {
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 
-    {COLUMN_TRACEROUTECTLTARGETADDRESSTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 3}},
-    {COLUMN_TRACEROUTECTLTARGETADDRESS,   ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 4}},
-    {COLUMN_TRACEROUTECTLBYPASSROUTETABLE,  ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 5}},
-    {COLUMN_TRACEROUTECTLDATASIZE,     ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 6}},
-    {COLUMN_TRACEROUTECTLTIMEOUT,      ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 7}},
-    {COLUMN_TRACEROUTECTLPROBESPERHOP, ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 8}},
-    {COLUMN_TRACEROUTECTLPORT,         ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 9}},
-    {COLUMN_TRACEROUTECTLMAXTTL,       ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 10}},
-    {COLUMN_TRACEROUTECTLDSFIELD,      ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 11}},
-    {COLUMN_TRACEROUTECTLSOURCEADDRESSTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 12}},
-    {COLUMN_TRACEROUTECTLSOURCEADDRESS,   ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 13}},
-    {COLUMN_TRACEROUTECTLIFINDEX,       ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 14}},
-    {COLUMN_TRACEROUTECTLMISCOPTIONS, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 15}},
-    {COLUMN_TRACEROUTECTLMAXFAILURES,  ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 16}},
-    {COLUMN_TRACEROUTECTLDONTFRAGMENT,  ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 17}},
-    {COLUMN_TRACEROUTECTLINITIALTTL,   ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 18}},
-    {COLUMN_TRACEROUTECTLFREQUENCY,    ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 19}},
-    {COLUMN_TRACEROUTECTLSTORAGETYPE,   ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 20}},
-    {COLUMN_TRACEROUTECTLADMINSTATUS,   ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 21}},
-    {COLUMN_TRACEROUTECTLDESCR,       ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 22}},
-    {COLUMN_TRACEROUTECTLMAXROWS,      ASN_UNSIGNED, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 23}},
-    {COLUMN_TRACEROUTECTLTRAPGENERATION,  ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 24}},
-    {COLUMN_TRACEROUTECTLCREATEHOPSENTRIES, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 25}},
-    {COLUMN_TRACEROUTECTLTYPE,        ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 26}},
-    {COLUMN_TRACEROUTECTLROWSTATUS,     ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_traceRouteCtlTable, 2, {1, 27}}
+    {COLUMN_TRACEROUTECTLTARGETADDRESSTYPE, ASN_INTEGER, RWRITE, var_traceRouteCtlTable, 2, {1, 3}},
+    {COLUMN_TRACEROUTECTLTARGETADDRESS,   ASN_OCTET_STR, RWRITE, var_traceRouteCtlTable, 2, {1, 4}},
+    {COLUMN_TRACEROUTECTLBYPASSROUTETABLE,  ASN_INTEGER, RWRITE, var_traceRouteCtlTable, 2, {1, 5}},
+    {COLUMN_TRACEROUTECTLDATASIZE,     ASN_UNSIGNED, RWRITE, var_traceRouteCtlTable, 2, {1, 6}},
+    {COLUMN_TRACEROUTECTLTIMEOUT,      ASN_UNSIGNED, RWRITE, var_traceRouteCtlTable, 2, {1, 7}},
+    {COLUMN_TRACEROUTECTLPROBESPERHOP, ASN_UNSIGNED, RWRITE, var_traceRouteCtlTable, 2, {1, 8}},
+    {COLUMN_TRACEROUTECTLPORT,         ASN_UNSIGNED, RWRITE, var_traceRouteCtlTable, 2, {1, 9}},
+    {COLUMN_TRACEROUTECTLMAXTTL,       ASN_UNSIGNED, RWRITE, var_traceRouteCtlTable, 2, {1, 10}},
+    {COLUMN_TRACEROUTECTLDSFIELD,      ASN_UNSIGNED, RWRITE, var_traceRouteCtlTable, 2, {1, 11}},
+    {COLUMN_TRACEROUTECTLSOURCEADDRESSTYPE, ASN_INTEGER, RWRITE, var_traceRouteCtlTable, 2, {1, 12}},
+    {COLUMN_TRACEROUTECTLSOURCEADDRESS,   ASN_OCTET_STR, RWRITE, var_traceRouteCtlTable, 2, {1, 13}},
+    {COLUMN_TRACEROUTECTLIFINDEX,       ASN_INTEGER, RWRITE, var_traceRouteCtlTable, 2, {1, 14}},
+    {COLUMN_TRACEROUTECTLMISCOPTIONS, ASN_OCTET_STR, RWRITE, var_traceRouteCtlTable, 2, {1, 15}},
+    {COLUMN_TRACEROUTECTLMAXFAILURES,  ASN_UNSIGNED, RWRITE, var_traceRouteCtlTable, 2, {1, 16}},
+    {COLUMN_TRACEROUTECTLDONTFRAGMENT,  ASN_INTEGER, RWRITE, var_traceRouteCtlTable, 2, {1, 17}},
+    {COLUMN_TRACEROUTECTLINITIALTTL,   ASN_UNSIGNED, RWRITE, var_traceRouteCtlTable, 2, {1, 18}},
+    {COLUMN_TRACEROUTECTLFREQUENCY,    ASN_UNSIGNED, RWRITE, var_traceRouteCtlTable, 2, {1, 19}},
+    {COLUMN_TRACEROUTECTLSTORAGETYPE,   ASN_INTEGER, RWRITE, var_traceRouteCtlTable, 2, {1, 20}},
+    {COLUMN_TRACEROUTECTLADMINSTATUS,   ASN_INTEGER, RWRITE, var_traceRouteCtlTable, 2, {1, 21}},
+    {COLUMN_TRACEROUTECTLDESCR,       ASN_OCTET_STR, RWRITE, var_traceRouteCtlTable, 2, {1, 22}},
+    {COLUMN_TRACEROUTECTLMAXROWS,      ASN_UNSIGNED, RWRITE, var_traceRouteCtlTable, 2, {1, 23}},
+    {COLUMN_TRACEROUTECTLTRAPGENERATION,  ASN_OCTET_STR, RWRITE, var_traceRouteCtlTable, 2, {1, 24}},
+    {COLUMN_TRACEROUTECTLCREATEHOPSENTRIES, ASN_INTEGER, RWRITE, var_traceRouteCtlTable, 2, {1, 25}},
+    {COLUMN_TRACEROUTECTLTYPE,        ASN_OBJECT_ID, RWRITE, var_traceRouteCtlTable, 2, {1, 26}},
+    {COLUMN_TRACEROUTECTLROWSTATUS,     ASN_INTEGER, RWRITE, var_traceRouteCtlTable, 2, {1, 27}}
 
 };
 
@@ -108,11 +77,6 @@ struct header_complex_index *traceRouteResultsTableStorage = NULL;
 struct header_complex_index *traceRouteProbeHistoryTableStorage = NULL;
 struct header_complex_index *traceRouteHopsTableStorage = NULL;
 
-int
-traceRouteResultsTable_add(struct traceRouteCtlTable_data *thedata);
-int
-traceRouteResultsTable_del(struct traceRouteCtlTable_data *thedata);
-
 void
 init_traceRouteCtlTable(void)
 {
@@ -156,8 +120,7 @@ init_trResultsTable(struct traceRouteCtlTable_data *item)
         exit(1);
     }
 
-    memset(host, '\0',
-	   sizeof(char) * (item->traceRouteCtlTargetAddressLen + 1));
+    bzero(host, sizeof(char) * (item->traceRouteCtlTargetAddressLen + 1));
     strcpy(host, item->traceRouteCtlTargetAddress);
     host[item->traceRouteCtlTargetAddressLen] = '\0';
 
@@ -250,7 +213,7 @@ init_trResultsTable(struct traceRouteCtlTable_data *item)
         struct hostent *hp = NULL;
         /* struct hostenv hp; */
         char            pa[64];
-        memset(pa, '\0', 64);
+        bzero(pa, 64);
 
         to->sin6_family = AF_INET6;
         to->sin6_port = htons(33434);
@@ -265,7 +228,7 @@ init_trResultsTable(struct traceRouteCtlTable_data *item)
                             strerror(errno)));
                 exit(1);
             }
-            memset(StorageTmp->traceRouteResultsIpTgtAddr, '\0',
+            bzero(StorageTmp->traceRouteResultsIpTgtAddr,
                   sizeof(char) * (strlen(host) + 1));
             memcpy(StorageTmp->traceRouteResultsIpTgtAddr, host,
                    strlen(host) + 1);
@@ -286,7 +249,7 @@ init_trResultsTable(struct traceRouteCtlTable_data *item)
                                 strerror(errno)));
                     exit(1);
                 }
-                memset(StorageTmp->traceRouteResultsIpTgtAddr, '\0',
+                bzero(StorageTmp->traceRouteResultsIpTgtAddr,
                       sizeof(char) * (strlen(host) + 1));
                 memcpy(StorageTmp->traceRouteResultsIpTgtAddr, hostname,
                        strlen(hostname) + 1);
@@ -310,6 +273,7 @@ init_trResultsTable(struct traceRouteCtlTable_data *item)
     StorageTmp->traceRouteResultsTestAttempts = 0;
     StorageTmp->traceRouteResultsTestSuccesses = 0;
 
+    StorageTmp->traceRouteResultsLastGoodPath = strdup("");
     StorageTmp->traceRouteResultsLastGoodPathLen = 0;
 
     item->traceRouteResults = StorageTmp;
@@ -451,6 +415,7 @@ traceRouteCtlTable_add(struct traceRouteCtlTable_data *thedata)
 int
 traceRouteResultsTable_add(struct traceRouteCtlTable_data *thedata)
 {
+    netsnmp_variable_list *vp = NULL;
     netsnmp_variable_list *vars_list = NULL;
     struct traceRouteResultsTable_data *p = NULL;
     p = thedata->traceRouteResults;
@@ -546,11 +511,11 @@ traceRouteProbeHistoryTable_addall(struct traceRouteCtlTable_data *thedata)
                 if (traceRouteProbeHistoryTableStorage != NULL)
                     do {
                         DEBUGMSGTL(("traceRouteProbeHistoryTable",
-                                    "adding data,vars_oid="));
-                        DEBUGMSGOID(("traceRouteProbeHistoryTable",
-                                    temp->name, temp->namelen));
+                                    "adding data,vars_oid=%u\n ",
+                                    temp->name));
                         DEBUGMSGTL(("traceRouteProbeHistoryTable",
-                                    "\n "));
+                                    "adding data,vars_oid=%d\n ",
+                                    temp->namelen));
                         temp = temp->next;
                     } while (temp != NULL);
 
@@ -598,7 +563,6 @@ traceRouteHopsTable_add(struct traceRouteHopsTable_data *thedata)
             return SNMPERR_SUCCESS;
         }
     }
-    return SNMPERR_GENERR;
 }
 
 int
@@ -631,11 +595,11 @@ traceRouteHopsTable_addall(struct traceRouteCtlTable_data *thedata)
                 if (traceRouteHopsTableStorage != NULL)
                     do {
                         DEBUGMSGTL(("traceRouteProbeHistoryTable",
-                                    "adding data,vars_oid="));
-                        DEBUGMSGOID(("traceRouteProbeHistoryTable",
-                                    temp->name, temp->namelen));
+                                    "adding data,vars_oid=%u\n ",
+                                    temp->name));
                         DEBUGMSGTL(("traceRouteProbeHistoryTable",
-                                    "\n "));
+                                    "adding data,vars_oid=%d\n ",
+                                    temp->namelen));
                         temp = temp->next;
                     } while (temp != NULL);
                 DEBUGMSGTL(("traceRouteHopsTable", "out finished\n"));
@@ -707,23 +671,31 @@ traceRouteHopsTable_count(struct traceRouteCtlTable_data *thedata)
 
 
 
-void
+int
 traceRouteProbeHistoryTable_delLast(struct traceRouteCtlTable_data
                                     *thedata)
 {
+    struct traceRouteProbeHistoryTable_data *p = NULL;
+    struct header_complex_index *hciptr1 = NULL;
     struct header_complex_index *hciptr2 = NULL;
     struct header_complex_index *hcilast = NULL;
+    struct traceRouteProbeHistoryTable_data *StorageDel = NULL;
     struct traceRouteProbeHistoryTable_data *StorageTmp = NULL;
     netsnmp_variable_list *vars = NULL;
+    netsnmp_variable_list *vars_temp = NULL;
     oid             newoid[MAX_OID_LEN];
     size_t          newoid_len = 0;
     time_t          last_time = 2147483647;
-    time_t          tp;
+    struct tm      *tp = NULL;
 
+    tp = (struct tm *) malloc(sizeof(struct tm));
+    if (tp == NULL) {
+        exit(1);
+    }
     snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->traceRouteCtlOwnerIndex, thedata->traceRouteCtlOwnerIndexLen);   /* traceRouteCtlOwnerIndex */
     snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->traceRouteCtlTestName, thedata->traceRouteCtlTestNameLen);       /* traceRouteCtlOperationName */
 
-    memset(newoid, '\0', sizeof(oid) * MAX_OID_LEN);
+    bzero(newoid, sizeof(oid) * MAX_OID_LEN);
     header_complex_generate_oid(newoid, &newoid_len, NULL, 0, vars);
 
     for (hcilast = hciptr2 = traceRouteProbeHistoryTableStorage;
@@ -735,19 +707,23 @@ traceRouteProbeHistoryTable_delLast(struct traceRouteCtlTable_data
                 header_complex_get_from_oid
                 (traceRouteProbeHistoryTableStorage, hciptr2->name,
                  hciptr2->namelen);
-            tp = StorageTmp->traceRouteProbeHistoryTime_time;
+            strptime(StorageTmp->traceRouteProbeHistoryTime, "%c", tp);
 
-            if (last_time > tp) {
-                last_time = tp;
+            if (last_time > timegm(tp)) {
+                last_time = timegm(tp);
                 hcilast = hciptr2;
             }
 
         }
     }
-    header_complex_extract_entry(&traceRouteProbeHistoryTableStorage, hcilast);
+    StorageDel =
+        header_complex_extract_entry(&traceRouteProbeHistoryTableStorage,
+                                     hcilast);
     DEBUGMSGTL(("traceRouteProbeHistoryTable",
                 "delete the last one success!\n"));
     vars = NULL;
+    free(tp);
+    tp = NULL;
 }
 
 
@@ -1350,6 +1326,7 @@ int
 traceRouteResultsTable_del(struct traceRouteCtlTable_data *thedata)
 {
     struct header_complex_index *hciptr2 = NULL;
+    struct traceRouteResultsTable_data *StorageDel = NULL;
     netsnmp_variable_list *vars = NULL;
     oid             newoid[MAX_OID_LEN];
     size_t          newoid_len = 0;
@@ -1357,15 +1334,16 @@ traceRouteResultsTable_del(struct traceRouteCtlTable_data *thedata)
     snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->traceRouteCtlOwnerIndex, thedata->traceRouteCtlOwnerIndexLen);   /* traceRouteCtlOwnerIndex */
     snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->traceRouteCtlTestName, thedata->traceRouteCtlTestNameLen);       /* traceRouteCtlTestName */
 
-    memset(newoid, '\0', sizeof(oid) * MAX_OID_LEN);
+    bzero(newoid, sizeof(oid) * MAX_OID_LEN);
     header_complex_generate_oid(newoid, &newoid_len, NULL, 0, vars);
 
     for (hciptr2 = traceRouteResultsTableStorage; hciptr2 != NULL;
          hciptr2 = hciptr2->next) {
         if (snmp_oid_compare(newoid, newoid_len, hciptr2->name, newoid_len)
             == 0) {
-            header_complex_extract_entry(&traceRouteResultsTableStorage,
-                                         hciptr2);
+            StorageDel =
+                header_complex_extract_entry
+                (&traceRouteResultsTableStorage, hciptr2);
             DEBUGMSGTL(("traceRouteResultsTable", "delete  success!\n"));
 
         }
@@ -1381,14 +1359,16 @@ int
 traceRouteProbeHistoryTable_del(struct traceRouteCtlTable_data *thedata)
 {
     struct header_complex_index *hciptr2 = NULL;
+    struct traceRouteProbeHistoryTable_data *StorageDel = NULL;
     netsnmp_variable_list *vars = NULL;
+    netsnmp_variable_list *vars_temp = NULL;
     oid             newoid[MAX_OID_LEN];
     size_t          newoid_len = 0;
 
     snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->traceRouteCtlOwnerIndex, thedata->traceRouteCtlOwnerIndexLen);   /* traceRouteCtlOwnerIndex */
     snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->traceRouteCtlTestName, thedata->traceRouteCtlTestNameLen);       /* traceRouteCtlOperationName */
 
-    memset(newoid, '\0', sizeof(oid) * MAX_OID_LEN);
+    bzero(newoid, sizeof(oid) * MAX_OID_LEN);
 
     header_complex_generate_oid(newoid, &newoid_len, NULL, 0, vars);
 
@@ -1396,8 +1376,9 @@ traceRouteProbeHistoryTable_del(struct traceRouteCtlTable_data *thedata)
          hciptr2 = hciptr2->next) {
         if (snmp_oid_compare(newoid, newoid_len, hciptr2->name, newoid_len)
             == 0) {
-            header_complex_extract_entry(&traceRouteProbeHistoryTableStorage,
-                                         hciptr2);
+            StorageDel =
+                header_complex_extract_entry
+                (&traceRouteProbeHistoryTableStorage, hciptr2);
             DEBUGMSGTL(("traceRouteProbeHistoryTable",
                         "delete  success!\n"));
 
@@ -1408,18 +1389,23 @@ traceRouteProbeHistoryTable_del(struct traceRouteCtlTable_data *thedata)
 }
 
 
+
+
+
 int
 traceRouteHopsTable_del(struct traceRouteCtlTable_data *thedata)
 {
     struct header_complex_index *hciptr2 = NULL;
+    struct traceRouteHopsTable_data *StorageDel = NULL;
     netsnmp_variable_list *vars = NULL;
+    netsnmp_variable_list *vars_temp = NULL;
     oid             newoid[MAX_OID_LEN];
     size_t          newoid_len = 0;
 
     snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->traceRouteCtlOwnerIndex, thedata->traceRouteCtlOwnerIndexLen);   /* traceRouteCtlOwnerIndex */
     snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->traceRouteCtlTestName, thedata->traceRouteCtlTestNameLen);       /* traceRouteCtlTestName */
 
-    memset(newoid, '\0', sizeof(oid) * MAX_OID_LEN);
+    bzero(newoid, sizeof(oid) * MAX_OID_LEN);
 
     header_complex_generate_oid(newoid, &newoid_len, NULL, 0, vars);
 
@@ -1427,7 +1413,9 @@ traceRouteHopsTable_del(struct traceRouteCtlTable_data *thedata)
          hciptr2 = hciptr2->next) {
         if (snmp_oid_compare(newoid, newoid_len, hciptr2->name, newoid_len)
             == 0) {
-            header_complex_extract_entry(&traceRouteHopsTableStorage, hciptr2);
+            StorageDel =
+                header_complex_extract_entry(&traceRouteHopsTableStorage,
+                                             hciptr2);
             DEBUGMSGTL(("traceRouteHopsTable", "delete  success!\n"));
 
         }
@@ -1440,11 +1428,12 @@ traceRouteHopsTable_del(struct traceRouteCtlTable_data *thedata)
  * send trap 
  */
 
-void
+int
 send_traceRoute_trap(struct traceRouteCtlTable_data *item,
                      oid * trap_oid, size_t trap_oid_len)
 {
     static oid      objid_snmptrap[] = { 1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0 };     /* snmpTrapIOD.0 */
+    struct traceRouteResultsTable_data *StorageTmp = NULL;
     struct traceRouteHopsTable_data *StorageHops = NULL;
     netsnmp_variable_list *var_list = NULL;
     netsnmp_variable_list *vars = NULL;
@@ -1478,7 +1467,7 @@ send_traceRoute_trap(struct traceRouteCtlTable_data *item,
     /*
      * traceRouteCtlTargetAddress 
      */
-    memset(newoid, '\0', MAX_OID_LEN * sizeof(oid));
+    bzero(newoid, MAX_OID_LEN * sizeof(oid));
     header_complex_generate_oid(newoid, &newoid_len,
                                 traceRouteCtlTargetAddress,
                                 sizeof(traceRouteCtlTargetAddress) /
@@ -1492,7 +1481,7 @@ send_traceRoute_trap(struct traceRouteCtlTable_data *item,
 
     for (hciptr = traceRouteHopsTableStorage; hciptr != NULL;
          hciptr = hciptr->next) {
-	memset(indexoid, '\0', MAX_OID_LEN * sizeof(oid));
+        bzero(indexoid, MAX_OID_LEN * sizeof(oid));
         header_complex_generate_oid(indexoid, &indexoid_len, NULL, 0,
                                     vars);
         if (snmp_oid_compare
@@ -1501,13 +1490,13 @@ send_traceRoute_trap(struct traceRouteCtlTable_data *item,
                 (struct traceRouteHopsTable_data *)
                 header_complex_get_from_oid(traceRouteHopsTableStorage,
                                             hciptr->name, hciptr->namelen);
-            memset(tempoid, '\0', MAX_OID_LEN * sizeof(oid));
+            bzero(tempoid, MAX_OID_LEN * sizeof(oid));
             header_complex_generate_oid(tempoid, &tempoid_len,
                                         traceRouteHopsIpTgAddress,
                                         sizeof(traceRouteHopsIpTgAddress) /
                                         sizeof(oid), vars);
             snmp_varlist_add_variable(&var_hops, NULL, 0, ASN_UNSIGNED, (char *) &StorageHops->traceRouteHopsHopIndex, sizeof(StorageHops->traceRouteHopsHopIndex));    /* traceRouteCtlTestName */
-            memset(newoid, '\0', MAX_OID_LEN * sizeof(oid));
+            bzero(newoid, MAX_OID_LEN * sizeof(oid));
             header_complex_generate_oid(newoid, &newoid_len, tempoid,
                                         tempoid_len, var_hops);
             snmp_varlist_add_variable(&var_list, newoid, newoid_len,
@@ -1525,7 +1514,7 @@ send_traceRoute_trap(struct traceRouteCtlTable_data *item,
      * XXX: stuff based on event table 
      */
 
-    DEBUGMSG(("pingTest:send_traceRoute_trap", "success!\n"));
+    DEBUGMSG(("pingTest:send_ping_trap", "success!\n"));
 
     send_v2trap(var_list);
     snmp_free_varbind(vars);
@@ -1545,6 +1534,7 @@ write_traceRouteCtlTargetAddressType(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -1611,7 +1601,6 @@ write_traceRouteCtlTargetAddressType(int action,
          * 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;
@@ -1700,6 +1689,8 @@ write_traceRouteCtlTargetAddress(int action,
          * Back out any changes made in the ACTION case 
          */
         SNMP_FREE(StorageTmp->traceRouteCtlTargetAddress);
+        StorageTmp->traceRouteCtlTargetAddress = NULL;
+
         StorageTmp->traceRouteCtlTargetAddress = tmpvar;
         StorageTmp->traceRouteCtlTargetAddressLen = tmplen;
         break;
@@ -1711,7 +1702,7 @@ write_traceRouteCtlTargetAddress(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
+        tmpvar = NULL;
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1727,6 +1718,7 @@ write_traceRouteCtlByPassRouteTable(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -1793,7 +1785,6 @@ write_traceRouteCtlByPassRouteTable(int action,
          * 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;
@@ -1809,6 +1800,7 @@ write_traceRouteCtlDataSize(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -1878,7 +1870,6 @@ write_traceRouteCtlDataSize(int action,
          * 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;
@@ -1896,6 +1887,7 @@ write_traceRouteCtlTimeOut(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -1966,7 +1958,6 @@ write_traceRouteCtlTimeOut(int action,
          * 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;
@@ -1986,6 +1977,7 @@ write_traceRouteCtlProbesPerHop(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -2056,7 +2048,6 @@ write_traceRouteCtlProbesPerHop(int action,
          * 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;
@@ -2073,6 +2064,7 @@ write_traceRouteCtlPort(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -2136,7 +2128,7 @@ write_traceRouteCtlPort(int action,
          * 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;
@@ -2154,6 +2146,7 @@ write_traceRouteCtlMaxTtl(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -2223,7 +2216,6 @@ write_traceRouteCtlMaxTtl(int action,
          * 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;
@@ -2239,6 +2231,7 @@ write_traceRouteCtlDSField(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -2305,7 +2298,6 @@ write_traceRouteCtlDSField(int action,
          * 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;
@@ -2321,6 +2313,7 @@ write_traceRouteCtlSourceAddressType(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -2387,7 +2380,6 @@ write_traceRouteCtlSourceAddressType(int action,
          * 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;
@@ -2472,6 +2464,7 @@ write_traceRouteCtlSourceAddress(int action,
          * Back out any changes made in the ACTION case 
          */
         SNMP_FREE(StorageTmp->traceRouteCtlSourceAddress);
+        StorageTmp->traceRouteCtlSourceAddress = NULL;
         StorageTmp->traceRouteCtlSourceAddress = tmpvar;
         StorageTmp->traceRouteCtlSourceAddressLen = tmplen;
         break;
@@ -2483,7 +2476,7 @@ write_traceRouteCtlSourceAddress(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
+        tmpvar = NULL;
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2501,6 +2494,7 @@ write_traceRouteCtlIfIndex(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -2567,7 +2561,6 @@ write_traceRouteCtlIfIndex(int action,
          * 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;
@@ -2653,6 +2646,7 @@ write_traceRouteCtlMiscOptions(int action,
          * Back out any changes made in the ACTION case 
          */
         SNMP_FREE(StorageTmp->traceRouteCtlMiscOptions);
+        StorageTmp->traceRouteCtlMiscOptions = NULL;
         StorageTmp->traceRouteCtlMiscOptions = tmpvar;
         StorageTmp->traceRouteCtlMiscOptionsLen = tmplen;
         break;
@@ -2664,7 +2658,7 @@ write_traceRouteCtlMiscOptions(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
+        tmpvar = NULL;
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2679,6 +2673,7 @@ write_traceRouteCtlMaxFailures(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -2748,7 +2743,6 @@ write_traceRouteCtlMaxFailures(int action,
          * 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;
@@ -2768,6 +2762,7 @@ write_traceRouteCtlDontFragment(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -2834,7 +2829,6 @@ write_traceRouteCtlDontFragment(int action,
          * 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;
@@ -2852,6 +2846,7 @@ write_traceRouteCtlInitialTtl(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -2921,7 +2916,6 @@ write_traceRouteCtlInitialTtl(int action,
          * 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;
@@ -2937,6 +2931,7 @@ write_traceRouteCtlFrequency(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -3003,7 +2998,6 @@ write_traceRouteCtlFrequency(int action,
          * 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;
@@ -3022,6 +3016,7 @@ write_traceRouteCtlStorageType(int action,
     static size_t   tmpvar;
     int             set_value;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -3097,7 +3092,6 @@ write_traceRouteCtlStorageType(int action,
          * 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;
@@ -3116,6 +3110,7 @@ write_traceRouteCtlAdminStatus(int action,
     struct traceRouteCtlTable_data *StorageTmp = NULL;
     netsnmp_variable_list *vars = NULL;
     struct traceRouteResultsTable_data *StorageNew = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -3200,7 +3195,8 @@ write_traceRouteCtlAdminStatus(int action,
                                         SA_REPEAT, run_traceRoute,
                                         StorageTmp);
             else
-                StorageTmp->timer_id = snmp_alarm_register(1, 0, run_traceRoute,
+                StorageTmp->timer_id = snmp_alarm_register(1, (int) NULL,
+                                                           run_traceRoute,
                                                            StorageTmp);
 
         } else if (StorageTmp->traceRouteCtlAdminStatus == 2
@@ -3214,7 +3210,6 @@ write_traceRouteCtlAdminStatus(int action,
                 modify_trResultsOper(StorageTmp, 2);
             }
         }
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3302,6 +3297,7 @@ write_traceRouteCtlDescr(int action,
          * Back out any changes made in the ACTION case 
          */
         SNMP_FREE(StorageTmp->traceRouteCtlDescr);
+        StorageTmp->traceRouteCtlDescr = NULL;
         StorageTmp->traceRouteCtlDescr = tmpvar;
         StorageTmp->traceRouteCtlDescrLen = tmplen;
         break;
@@ -3313,7 +3309,7 @@ write_traceRouteCtlDescr(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
+        tmpvar = NULL;
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3332,6 +3328,7 @@ write_traceRouteCtlMaxRows(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -3398,7 +3395,6 @@ write_traceRouteCtlMaxRows(int action,
          * 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;
@@ -3484,6 +3480,7 @@ write_traceRouteCtlTrapGeneration(int action,
          * Back out any changes made in the ACTION case 
          */
         SNMP_FREE(StorageTmp->traceRouteCtlTrapGeneration);
+        StorageTmp->traceRouteCtlTrapGeneration = NULL;
         StorageTmp->traceRouteCtlTrapGeneration = tmpvar;
         StorageTmp->traceRouteCtlTrapGenerationLen = tmplen;
         break;
@@ -3495,7 +3492,7 @@ write_traceRouteCtlTrapGeneration(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
+        tmpvar = NULL;
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3511,6 +3508,7 @@ write_traceRouteCtlCreateHopsEntries(int action,
 {
     static size_t   tmpvar;
     struct traceRouteCtlTable_data *StorageTmp = NULL;
+    static size_t   tmplen;
     size_t          newlen =
         name_len -
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
@@ -3577,7 +3575,6 @@ write_traceRouteCtlCreateHopsEntries(int action,
          * 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;
@@ -3659,6 +3656,7 @@ write_traceRouteCtlType(int action,
          * Back out any changes made in the ACTION case 
          */
         SNMP_FREE(StorageTmp->traceRouteCtlType);
+        StorageTmp->traceRouteCtlType = NULL;
         StorageTmp->traceRouteCtlType = tmpvar;
         StorageTmp->traceRouteCtlTypeLen = tmplen;
         break;
@@ -3670,7 +3668,7 @@ write_traceRouteCtlType(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
+        tmpvar = NULL;
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3691,7 +3689,7 @@ write_traceRouteCtlRowStatus(int action,
         (sizeof(traceRouteCtlTable_variables_oid) / sizeof(oid) + 3 - 1);
     static int      old_value;
     int             set_value;
-    static netsnmp_variable_list *vars = NULL;
+    static netsnmp_variable_list *vars = NULL, *vp = NULL;
     struct header_complex_index *hciptr = NULL;
 
     StorageTmp =
@@ -4030,29 +4028,41 @@ write_traceRouteCtlRowStatus(int action,
                                             StorageTmp);
                 else
                     StorageTmp->timer_id =
-                        snmp_alarm_register(1, 0, run_traceRoute, StorageTmp);
+                        snmp_alarm_register(1, (int) NULL, run_traceRoute,
+                                            StorageTmp);
 
             }
 
         }
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
 }
 
 
+unsigned long
+round(double number)
+{
+    unsigned long   ret_num = 0;
+    if (number - (unsigned long) number < 0.5)
+        ret_num = (unsigned long) number;
+    else
+        ret_num = (unsigned long) number + 1;
+    return ret_num;
+}
+
 void
 run_traceRoute(unsigned int clientreg, void *clientarg)
 {
     struct traceRouteCtlTable_data *item = clientarg;
     u_short         port = item->traceRouteCtlPort;     /* start udp dest port # for probe packets �൱��ctlport */
     int             waittime = item->traceRouteCtlTimeOut;      /* time to wait for response (in seconds) �����ctltimeout */
+    prog = "traceroute";
     int             nprobes = item->traceRouteCtlProbesPerHop;
 
     if (item->traceRouteCtlInitialTtl > item->traceRouteCtlMaxTtl) {
         DEBUGMSGTL(("traceRouteCtlTable",
-                    "first ttl (%lu) may not be greater than max ttl (%lu)\n",
+                    "first ttl (%d) may not be greater than max ttl (%d)\n",
                     item->traceRouteCtlInitialTtl,
                     item->traceRouteCtlMaxTtl));
         return;
@@ -4064,8 +4074,8 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
 
     if (item->traceRouteCtlTargetAddressType == 1
         || item->traceRouteCtlTargetAddressType == 16) {
-        register int    code, n;
-        const    char  *cp;
+        register int    op, code, n;
+        register char  *cp;
         register const char *err;
         register u_char *outp;
         register u_int32_t *ap;
@@ -4135,7 +4145,11 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
         freehostinfo(hi);
 
 
-        netsnmp_set_line_buffering(stdout);
+#ifdef HAVE_SETLINEBUF
+        setlinebuf(stdout);
+#else
+        setvbuf(stdout, NULL, _IOLBF, 0);
+#endif
 
         outip = (struct ip *) malloc(packlen);
         if (outip == NULL) {
@@ -4409,21 +4423,24 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
             DEBUGMSGTL(("traceRouteCtlTable", " from %s", source));
 
         DEBUGMSGTL(("traceRouteCtlTable",
-                    ", %lu hops max, %d byte packets\n",
+                    ", %d hops max, %d byte packets\n",
                     item->traceRouteCtlMaxTtl, packlen));
         (void) fflush(stderr);
 
         struct traceRouteResultsTable_data *StorageResults = NULL;
         netsnmp_variable_list *vars_results = NULL;
 
+        struct traceRouteHopsTable_data *StorageHops = NULL;
         struct traceRouteHopsTable_data *temp = NULL;
         struct traceRouteHopsTable_data *current_temp = NULL;
         struct traceRouteHopsTable_data *current = NULL;
 
         unsigned long   index = 0;
 
+        struct traceRouteProbeHistoryTable_data *StorageProbe = NULL;
         struct traceRouteProbeHistoryTable_data *temp_his = NULL;
         struct traceRouteProbeHistoryTable_data *current_temp_his = NULL;
+        netsnmp_variable_list *vars_probe = NULL;
 
         snmp_varlist_add_variable(&vars_results, NULL, 0, ASN_OCTET_STR, (char *) item->traceRouteCtlOwnerIndex, item->traceRouteCtlOwnerIndexLen);     /*  traceRouteCtlOwnerIndex  */
         snmp_varlist_add_variable(&vars_results, NULL, 0, ASN_OCTET_STR, (char *) item->traceRouteCtlTestName, item->traceRouteCtlTestNameLen); /*  traceRouteCtlTestName  */
@@ -4537,6 +4554,7 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                 temp->traceRouteHopsSentProbes = 0;
                 temp->traceRouteHopsProbeResponses = 0;
 
+                temp->traceRouteHopsLastGoodProbe = strdup("");
                 temp->traceRouteHopsLastGoodProbeLen = 0;
                 if (index == 1)
                     item->traceRouteHops = temp;
@@ -4766,10 +4784,17 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                     temp_his->traceRouteProbeHistoryStatus = 1;
                     temp_his->traceRouteProbeHistoryLastRC = 0;
 
-		    temp_his->traceRouteProbeHistoryTime_time = timep;
-                    memdup(&temp_his->traceRouteProbeHistoryTime,
-                        date_n_time(&timep,
-			    &temp_his->traceRouteProbeHistoryTimeLen), 11);
+                    temp_his->traceRouteProbeHistoryTime =
+                        (char *) malloc(strlen(asctime(gmtime(&timep))));
+                    temp_his->traceRouteProbeHistoryTime =
+                        strdup(asctime(gmtime(&timep)));
+                    temp_his->
+                        traceRouteProbeHistoryTime[strlen
+                                                   (asctime
+                                                    (gmtime(&timep))) -
+                                                   1] = '\0';
+                    temp_his->traceRouteProbeHistoryTimeLen =
+                        strlen(asctime(gmtime(&timep))) - 1;
                     if (probe == 0)
                         item->traceRouteProbeHis = temp_his;
                     else {
@@ -4783,7 +4808,7 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
 
                     }
 
-                    if (item->traceRouteProbeHis != NULL) {
+                    if (item->traceRouteProbeHis != NULL)
                         if (traceRouteProbeHistoryTable_count(item) <
                             item->traceRouteCtlMaxRows) {
                             if (traceRouteProbeHistoryTable_add
@@ -4798,7 +4823,7 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                                             "registered an entry error\n"));
 
                         }
-		    }
+
 
                 }
 
@@ -4842,10 +4867,18 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                     current->traceRouteHopsRttSumOfSquares = sumOfSquare;
                     current->traceRouteHopsSentProbes = probe + 1;
                     current->traceRouteHopsProbeResponses = responseProbe;
-		    current->traceRouteHopsLastGoodProbe_time = timep;
-                    memdup(&current->traceRouteHopsLastGoodProbe,
-                        date_n_time(&timep,
-			    &current->traceRouteHopsLastGoodProbeLen), 11);
+                    current->traceRouteHopsLastGoodProbe =
+                        (char *) malloc(strlen(asctime(gmtime(&timep))));
+                    current->traceRouteHopsLastGoodProbe =
+                        strdup(asctime(gmtime(&timep)));
+                    current->
+                        traceRouteHopsLastGoodProbe[strlen
+                                                    (asctime
+                                                     (gmtime(&timep))) -
+                                                    1] = '\0';
+                    current->traceRouteHopsLastGoodProbeLen =
+                        strlen(asctime(gmtime(&timep))) - 1;
+
                 }
 
                 (void) fflush(stdout);
@@ -4863,10 +4896,18 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                     StorageResults->traceRouteResultsTestSuccesses =
                         StorageResults->traceRouteResultsTestSuccesses + 1;
 
-		    StorageResults->traceRouteResultsLastGoodPath_time = timep;
-                    memdup(&StorageResults->traceRouteResultsLastGoodPath,
-                        date_n_time(&timep,
-			    &StorageResults->traceRouteResultsLastGoodPathLen), 11);
+                    StorageResults->traceRouteResultsLastGoodPath =
+                        (char *) malloc(strlen(asctime(gmtime(&timep))) -
+                                        1);
+                    StorageResults->traceRouteResultsLastGoodPath =
+                        strdup(asctime(gmtime(&timep)));
+                    StorageResults->
+                        traceRouteResultsLastGoodPath[strlen
+                                                      (asctime
+                                                       (gmtime(&timep))) -
+                                                      1] = '\0';
+                    StorageResults->traceRouteResultsLastGoodPathLen =
+                        strlen(asctime(gmtime(&timep))) - 1;
                     if ((item->
                          traceRouteCtlTrapGeneration[0] &
                          TRACEROUTETRAPGENERATION_TESTCOMPLETED) != 0) {
@@ -4887,7 +4928,7 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                          TRACEROUTETRAPGENERATION_TESTFAILED) != 0) {
                         DEBUGMSGTL(("traceRouteProbeHistoryTable",
                                     "test Failed!\n"));
-                        send_traceRoute_trap(item, traceRouteTestFailed,
+                        send_ping_trap(item, traceRouteTestFailed,
                                        sizeof(traceRouteTestFailed) /
                                        sizeof(oid));
                     }
@@ -4904,7 +4945,7 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                      TRACEROUTETRAPGENERATION_TESTFAILED) != 0) {
                     DEBUGMSGTL(("traceRouteProbeHistoryTable",
                                 "test Failed!\n"));
-                    send_traceRoute_trap(item, traceRouteTestFailed,
+                    send_ping_trap(item, traceRouteTestFailed,
                                    sizeof(traceRouteTestFailed) /
                                    sizeof(oid));
                 }
@@ -4912,8 +4953,6 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
 
         }
 
-        close(sndsock);
-
         if (flag == 1) {
             DEBUGMSGTL(("traceRouteProbeHistoryTable", "path changed!\n"));
             send_traceRoute_trap(item, traceRoutePathChange,
@@ -4928,8 +4967,10 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
         }
     }
     if (item->traceRouteCtlTargetAddressType == 2) {
+        static char     SNAPSHOT[] = "020124";
         int             icmp_sock = 0;  /* receive (icmp) socket file descriptor */
         int             sndsock = 0;    /* send (udp) socket file descriptor */
+        struct timezone tz;     /* leftover */
 
         struct sockaddr_in6 whereto;    /* Who to try to reach */
 
@@ -4942,7 +4983,9 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
         pid_t           ident = 0;
         u_short         port = 32768 + 666;     /* start udp dest port # for probe packets */
         int             options = 0;    /* socket options */
+        int             verbose = 0;
         int             waittime = 5;   /* time to wait for response (in seconds) */
+        int             nflag = 0;      /* print addresses numerically */
 
         char           *sendbuff = NULL;
         int             datalen = sizeof(struct pkt_format);
@@ -4952,7 +4995,7 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
         char            pa[64];
         struct hostent *hp = NULL;
         struct sockaddr_in6 from, *to = NULL;
-        int             i = 0, on = 0, probe = 0, seq = 0, tos =
+        int             ch = 0, i = 0, on = 0, probe = 0, seq = 0, tos =
             0, ttl = 0;
         int             socket_errno = 0;
 
@@ -4973,12 +5016,14 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
 
         setlinebuf(stdout);
 
-        memset(&whereto, '\0', sizeof(struct sockaddr_in6));
+        (void) bzero((char *) &whereto, sizeof(struct sockaddr_in6));
 
         to->sin6_family = AF_INET6;
         to->sin6_port = htons(port);
 
-        if (inet_pton(AF_INET6, hostname, &to->sin6_addr) <= 0) {
+        if (inet_pton(AF_INET6, hostname, &to->sin6_addr) > 0) {
+            NULL;
+        } else {
             hp = gethostbyname2(hostname, AF_INET6);
             if (hp != NULL) {
                 memmove((caddr_t) & to->sin6_addr, hp->h_addr, 16);
@@ -5041,7 +5086,7 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                               (char *) &on, sizeof(on));
 
         if (source == NULL) {
-            socklen_t       alen;
+            int             alen;
             int             probe_fd = socket(AF_INET6, SOCK_DGRAM, 0);
 
             if (probe_fd < 0) {
@@ -5070,7 +5115,7 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
             saddr.sin6_port = 0;
             close(probe_fd);
         } else {
-            memset(&saddr, '\0', sizeof(struct sockaddr_in6));
+            (void) bzero((char *) &saddr, sizeof(struct sockaddr_in6));
             saddr.sin6_family = AF_INET6;
             if (inet_pton(AF_INET6, source, &saddr.sin6_addr) < 0) {
                 Printf("traceroute: unknown addr %s\n", source);
@@ -5092,7 +5137,7 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
 
         Fprintf(stderr, " from %s",
                 inet_ntop(AF_INET6, &saddr.sin6_addr, pa, 64));
-        Fprintf(stderr, ", %lu hops max, %d byte packets\n",
+        Fprintf(stderr, ", %d hops max, %d byte packets\n",
                 item->traceRouteCtlMaxTtl, datalen);
         (void) fflush(stderr);
 
@@ -5100,14 +5145,17 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
         struct traceRouteResultsTable_data *StorageResults = NULL;
         netsnmp_variable_list *vars_results = NULL;
 
+        struct traceRouteHopsTable_data *StorageHops = NULL;
         struct traceRouteHopsTable_data *temp = NULL;
         struct traceRouteHopsTable_data *current_temp = NULL;
         struct traceRouteHopsTable_data *current = NULL;
 
         unsigned long   index = 0;
 
+        struct traceRouteProbeHistoryTable_data *StorageProbe = NULL;
         struct traceRouteProbeHistoryTable_data *temp_his = NULL;
         struct traceRouteProbeHistoryTable_data *current_temp_his = NULL;
+        netsnmp_variable_list *vars_probe = NULL;
 
         snmp_varlist_add_variable(&vars_results, NULL, 0, ASN_OCTET_STR, (char *) item->traceRouteCtlOwnerIndex, item->traceRouteCtlOwnerIndexLen);     /*  traceRouteCtlOwnerIndex  */
         snmp_varlist_add_variable(&vars_results, NULL, 0, ASN_OCTET_STR, (char *) item->traceRouteCtlTestName, item->traceRouteCtlTestNameLen); /*  traceRouteCtlTestName  */
@@ -5220,6 +5268,7 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                 temp->traceRouteHopsSentProbes = 0;
                 temp->traceRouteHopsProbeResponses = 0;
 
+                temp->traceRouteHopsLastGoodProbe = strdup("");
                 temp->traceRouteHopsLastGoodProbeLen = 0;
                 if (index == 1)
                     item->traceRouteHops = temp;
@@ -5305,20 +5354,20 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
 
 
                         switch (i - 1) {
-                        case ICMP6_DST_UNREACH_NOPORT:
+                        case ICMPV6_PORT_UNREACH:
                             ++got_there;
                             break;
 
-                        case ICMP6_DST_UNREACH_NOROUTE:
+                        case ICMPV6_NOROUTE:
                             ++unreachable;
                             Printf(" !N");
                             break;
-                        case ICMP6_DST_UNREACH_ADDR:
+                        case ICMPV6_ADDR_UNREACH:
                             ++unreachable;
                             Printf(" !H");
                             break;
 
-                        case ICMP6_DST_UNREACH_ADMIN:
+                        case ICMPV6_ADM_PROHIBITED:
                             ++unreachable;
                             Printf(" !S");
                             break;
@@ -5400,10 +5449,17 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                     temp_his->traceRouteProbeHistoryStatus = 1;
                     temp_his->traceRouteProbeHistoryLastRC = 0;
 
-		    temp_his->traceRouteProbeHistoryTime_time = timep;
-                    memdup(&temp_his->traceRouteProbeHistoryTime,
-                        date_n_time(&timep,
-			    &temp_his->traceRouteProbeHistoryTimeLen), 11);
+                    temp_his->traceRouteProbeHistoryTime =
+                        (char *) malloc(strlen(asctime(gmtime(&timep))));
+                    temp_his->traceRouteProbeHistoryTime =
+                        strdup(asctime(gmtime(&timep)));
+                    temp_his->
+                        traceRouteProbeHistoryTime[strlen
+                                                   (asctime
+                                                    (gmtime(&timep))) -
+                                                   1] = '\0';
+                    temp_his->traceRouteProbeHistoryTimeLen =
+                        strlen(asctime(gmtime(&timep))) - 1;
 
                     if (probe == 0)
                         item->traceRouteProbeHis = temp_his;
@@ -5417,7 +5473,7 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                         current_temp_his->next = NULL;
                     }
 
-                    if (item->traceRouteProbeHis != NULL) {
+                    if (item->traceRouteProbeHis != NULL)
                         if (traceRouteProbeHistoryTable_count(item) <
                             item->traceRouteCtlMaxRows) {
                             if (traceRouteProbeHistoryTable_add
@@ -5432,7 +5488,7 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                                             "registered an entry error\n"));
 
                         }
-		    }
+
 
                 }
                 if (item->traceRouteCtlCreateHopsEntries == 1) {
@@ -5476,10 +5532,17 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                     current->traceRouteHopsRttSumOfSquares = sumOfSquare;
                     current->traceRouteHopsSentProbes = probe + 1;
                     current->traceRouteHopsProbeResponses = responseProbe;
-		    current->traceRouteHopsLastGoodProbe_time = timep;
-                    memdup(&current->traceRouteHopsLastGoodProbe,
-                        date_n_time(&timep,
-			    &current->traceRouteHopsLastGoodProbeLen), 11);
+                    current->traceRouteHopsLastGoodProbe =
+                        (char *) malloc(strlen(asctime(gmtime(&timep))));
+                    current->traceRouteHopsLastGoodProbe =
+                        strdup(asctime(gmtime(&timep)));
+                    current->
+                        traceRouteHopsLastGoodProbe[strlen
+                                                    (asctime
+                                                     (gmtime(&timep))) -
+                                                    1] = '\0';
+                    current->traceRouteHopsLastGoodProbeLen =
+                        strlen(asctime(gmtime(&timep))) - 1;
 
                     snmp_free_varbind(vars_hops);
                     vars_hops = NULL;
@@ -5500,10 +5563,18 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
 
                     StorageResults->traceRouteResultsTestSuccesses =
                         StorageResults->traceRouteResultsTestSuccesses + 1;
-		    StorageResults->traceRouteResultsLastGoodPath_time = timep;
-                    memdup(&StorageResults->traceRouteResultsLastGoodPath,
-                        date_n_time(&timep,
-			    &StorageResults->traceRouteResultsLastGoodPathLen), 11);
+                    StorageResults->traceRouteResultsLastGoodPath =
+                        (char *) malloc(strlen(asctime(gmtime(&timep))) -
+                                        1);
+                    StorageResults->traceRouteResultsLastGoodPath =
+                        strdup(asctime(gmtime(&timep)));
+                    StorageResults->
+                        traceRouteResultsLastGoodPath[strlen
+                                                      (asctime
+                                                       (gmtime(&timep))) -
+                                                      1] = '\0';
+                    StorageResults->traceRouteResultsLastGoodPathLen =
+                        strlen(asctime(gmtime(&timep))) - 1;
                     if ((item->
                          traceRouteCtlTrapGeneration[0] &
                          TRACEROUTETRAPGENERATION_TESTCOMPLETED) != 0) {
@@ -5538,7 +5609,7 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
                      traceRouteCtlTrapGeneration[0] &
                      TRACEROUTETRAPGENERATION_TESTFAILED) != 0) {
                     printf("test Failed!\n");
-                    send_traceRoute_trap(item, traceRouteTestFailed,
+                    send_ping_trap(item, traceRouteTestFailed,
                                    sizeof(traceRouteTestFailed) /
                                    sizeof(oid));
                 }
@@ -5546,8 +5617,6 @@ run_traceRoute(unsigned int clientreg, void *clientarg)
 
         }
 
-        close(sndsock);
-
         if (flag == 1) {
             printf("path changed!\n");
             send_traceRoute_trap(item, traceRoutePathChange,
@@ -5575,7 +5644,7 @@ wait_for_reply(register int sock, register struct sockaddr_in *fromp,
     struct timeval  now, wait;
     struct timezone tz;
     register int    cc = 0;
-    socklen_t       fromlen = sizeof(*fromp);
+    int             fromlen = sizeof(*fromp);
 
     FD_ZERO(&fds);
     FD_SET(sock, &fds);
@@ -5597,7 +5666,7 @@ wait_for_reply_v6(int sock, struct sockaddr_in6 *from, int reset_timer,
     fd_set          fds;
     static struct timeval wait;
     int             cc = 0;
-    socklen_t       fromlen = sizeof(*from);
+    int             fromlen = sizeof(*from);
 
     FD_ZERO(&fds);
     FD_SET(sock, &fds);
@@ -5626,19 +5695,6 @@ wait_for_reply_v6(int sock, struct sockaddr_in6 *from, int reset_timer,
     return (cc);
 }
 
-/*
- * send_probe() uses the BSD-ish udpiphdr.
- * Define something that looks enough like it to work.
- */
-struct udpiphdr {
-   struct iphdr ui_i;
-   struct udphdr ui_u;
-};
-#define ui_src ui_i.saddr
-#define ui_dst ui_i.daddr
-#define ui_pr ui_i.protocol
-#define ui_len ui_i.tot_len
-
 void
 send_probe(struct sockaddr_in *whereto, register int seq, int ttl,
            register struct timeval *tp, register struct ip *outip,
@@ -5709,7 +5765,7 @@ send_probe(struct sockaddr_in *whereto, register int seq, int ttl,
     if (setsockopt(sndsock, IPPROTO_IP, IP_TTL,
                    (char *) &ttl, sizeof(ttl)) < 0) {
         Fprintf(stderr, "%s: setsockopt ttl %d: %s\n",
-                "traceroute", ttl, strerror(errno));
+                prog, ttl, strerror(errno));
         exit(1);
     }
 #endif
@@ -5730,9 +5786,9 @@ send_probe(struct sockaddr_in *whereto, register int seq, int ttl,
 #endif
     if (cc < 0 || cc != packlen) {
         if (cc < 0)
-            Fprintf(stderr, "%s: sendto: %s\n", "traceroute", strerror(errno));
+            Fprintf(stderr, "%s: sendto: %s\n", prog, strerror(errno));
         Printf("%s: wrote %s %d chars, ret=%d\n",
-               "traceroute", hostname, packlen, cc);
+               prog, hostname, packlen, cc);
         (void) fflush(stdout);
     }
 }
@@ -5824,6 +5880,7 @@ packet_ok(register u_char * buf, int cc, register struct sockaddr_in *from,
         type == ICMP_UNREACH || type == ICMP_ECHOREPLY) {
         register struct ip *hip;
         register struct udphdr *up;
+        register struct icmp *hicmp;
 
         hip = &icp->icmp_ip;
         hlen = hip->ip_hl << 2;
@@ -5848,23 +5905,23 @@ int
 packet_ok_v6(u_char * buf, int cc, struct sockaddr_in6 *from, int seq,
              struct timeval *tv, pid_t ident)
 {
-    struct icmp6_hdr *icp = NULL;
+    struct icmp6hdr *icp = NULL;
     u_char          type, code;
 
-    icp = (struct icmp6_hdr *) buf;
+    icp = (struct icmp6hdr *) buf;
 
     type = icp->icmp6_type;
     code = icp->icmp6_code;
 
-    if ((type == ICMP6_TIME_EXCEEDED && code == ICMP6_TIME_EXCEED_TRANSIT) ||
-        type == ICMP6_DST_UNREACH) {
-        struct ip6_hdr  *hip = NULL;
+    if ((type == ICMPV6_TIME_EXCEED && code == ICMPV6_EXC_HOPLIMIT) ||
+        type == ICMPV6_DEST_UNREACH) {
+        struct ipv6hdr *hip = NULL;
         struct udphdr  *up = NULL;
         int             nexthdr = 0;
 
-        hip = (struct ip6_hdr *) (icp + 1);
+        hip = (struct ipv6hdr *) (icp + 1);
         up = (struct udphdr *) (hip + 1);
-        nexthdr = hip->ip6_nxt;
+        nexthdr = hip->nexthdr;
 
         if (nexthdr == 44) {
             nexthdr = *(unsigned char *) up;
@@ -5877,7 +5934,7 @@ packet_ok_v6(u_char * buf, int cc, struct sockaddr_in6 *from, int seq,
 
             if (ntohl(pkt->ident) == ident && ntohl(pkt->seq) == seq) {
                 *tv = pkt->tv;
-                return (type == ICMP6_TIME_EXCEEDED ? -1 : code + 1);
+                return (type == ICMPV6_TIME_EXCEED ? -1 : code + 1);
             }
         }
 
@@ -5952,12 +6009,12 @@ gethostinfo(register char *hostname)
 
     if (strlen(hostname) > 64) {
         Fprintf(stderr, "%s: hostname \"%.32s...\" is too long\n",
-                "traceroute", hostname);
+                prog, hostname);
         exit(1);
     }
     hi = calloc(1, sizeof(*hi));
     if (hi == NULL) {
-        Fprintf(stderr, "%s: calloc %s\n", "traceroute", strerror(errno));
+        Fprintf(stderr, "%s: calloc %s\n", prog, strerror(errno));
         exit(1);
     }
     addr = inet_addr(hostname);
@@ -5966,21 +6023,21 @@ gethostinfo(register char *hostname)
         hi->n = 1;
         hi->addrs = calloc(1, sizeof(hi->addrs[0]));
         if (hi->addrs == NULL) {
-            Fprintf(stderr, "%s: calloc %s\n", "traceroute", strerror(errno));
+            Fprintf(stderr, "%s: calloc %s\n", prog, strerror(errno));
             exit(1);
         }
         hi->addrs[0] = addr;
         return (hi);
     }
 
-    hp = netsnmp_gethostbyname(hostname);
+    hp = gethostbyname(hostname);
     if (hp == NULL) {
-        Fprintf(stderr, "%s: unknown host %s\n", "traceroute", hostname);
+        Fprintf(stderr, "%s: unknown host %s\n", prog, hostname);
         printf("hp=NULL\n");
         exit(1);
     }
     if (hp->h_addrtype != AF_INET || hp->h_length != 4) {
-        Fprintf(stderr, "%s: bad host %s\n", "traceroute", hostname);
+        Fprintf(stderr, "%s: bad host %s\n", prog, hostname);
         exit(1);
     }
     hi->name = strdup(hp->h_name);
@@ -5989,7 +6046,7 @@ gethostinfo(register char *hostname)
     hi->n = n;
     hi->addrs = calloc(n, sizeof(hi->addrs[0]));
     if (hi->addrs == NULL) {
-        Fprintf(stderr, "%s: calloc %s\n", "traceroute", strerror(errno));
+        Fprintf(stderr, "%s: calloc %s\n", prog, strerror(errno));
         exit(1);
     }
     for (ap = hi->addrs, p = hp->h_addr_list; *p != NULL; ++ap, ++p)
@@ -6097,7 +6154,7 @@ ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf)
 #ifdef HAVE_SOCKADDR_SA_LEN
     register int    n;
 #endif
-    register struct ifreq *ifrp, *ifend, *ifnext;
+    register struct ifreq *ifrp, *ifend, *ifnext, *mp;
     register struct sockaddr_in *sin;
     register struct ifaddrlist *al;
     struct ifconf   ifc;
@@ -6119,7 +6176,7 @@ ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf)
         if (errno == EINVAL)
             (void) sprintf(errbuf,
                            "SIOCGIFCONF: ifreq struct too small (%d bytes)",
-                           (int)sizeof(ibuf));
+                           sizeof(ibuf));
         else
             (void) sprintf(errbuf, "SIOCGIFCONF: %s", strerror(errno));
         (void) close(fd);
@@ -6129,6 +6186,7 @@ ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf)
     ifend = (struct ifreq *) ((char *) ibuf + ifc.ifc_len);
 
     al = ifaddrlist;
+    mp = NULL;
     nipaddr = 0;
     for (; ifrp < ifend; ifrp = ifnext) {
 #ifdef HAVE_SOCKADDR_SA_LEN
@@ -6148,7 +6206,7 @@ ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf)
          * SIOCGIFFLAGS stomps over it because the requests
          * are returned in a union.)
          */
-        strlcpy(ifr.ifr_name, ifrp->ifr_name, sizeof(ifr.ifr_name));
+        strncpy(ifr.ifr_name, ifrp->ifr_name, sizeof(ifr.ifr_name));
         if (ioctl(fd, SIOCGIFFLAGS, (char *) &ifr) < 0) {
             if (errno == ENXIO)
                 continue;
@@ -6165,7 +6223,9 @@ ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf)
         if ((ifr.ifr_flags & IFF_UP) == 0)
             continue;
 
-        sprintf(device, "%.*s", (int) sizeof(ifr.ifr_name), ifr.ifr_name);
+
+        (void) strncpy(device, ifr.ifr_name, sizeof(ifr.ifr_name));
+        device[sizeof(device) - 1] = '\0';
 #ifdef sun
         /*
          * Ignore sun virtual interfaces 
@@ -6181,7 +6241,7 @@ ifaddrlist(register struct ifaddrlist **ipaddrp, register char *errbuf)
         }
 
         if (nipaddr >= MAX_IPADDR) {
-            (void) sprintf(errbuf, "Too many interfaces (%d)", nipaddr);
+            (void) sprintf(errbuf, "Too many interfaces (%d)", MAX_IPADDR);
             (void) close(fd);
             return (-1);
         }
diff --git a/agent/mibgroup/disman/traceroute/traceRouteCtlTable.h b/agent/mibgroup/disman/traceroute/traceRouteCtlTable.h
index 0711978..da34f46 100644
--- a/agent/mibgroup/disman/traceroute/traceRouteCtlTable.h
+++ b/agent/mibgroup/disman/traceroute/traceRouteCtlTable.h
@@ -113,9 +113,8 @@ struct traceRouteResultsTable_data {
     size_t          traceRouteResultsIpTgtAddrLen;
     unsigned long   traceRouteResultsTestAttempts;
     unsigned long   traceRouteResultsTestSuccesses;
-    u_char         *traceRouteResultsLastGoodPath;
+    char           *traceRouteResultsLastGoodPath;
     size_t          traceRouteResultsLastGoodPathLen;
-    time_t          traceRouteResultsLastGoodPath_time;
 
     int             storageType;
 
@@ -139,9 +138,8 @@ struct traceRouteProbeHistoryTable_data {
     unsigned long   traceRouteProbeHistoryResponse;
     long            traceRouteProbeHistoryStatus;
     long            traceRouteProbeHistoryLastRC;
-    u_char         *traceRouteProbeHistoryTime;
+    char           *traceRouteProbeHistoryTime;
     size_t          traceRouteProbeHistoryTimeLen;
-    time_t          traceRouteProbeHistoryTime_time;
 
     int             storageType;
 
@@ -167,9 +165,8 @@ struct traceRouteHopsTable_data {
     unsigned long   traceRouteHopsRttSumOfSquares;
     unsigned long   traceRouteHopsSentProbes;
     unsigned long   traceRouteHopsProbeResponses;
-    u_char         *traceRouteHopsLastGoodProbe;
+    char           *traceRouteHopsLastGoodProbe;
     size_t          traceRouteHopsLastGoodProbeLen;
-    time_t          traceRouteHopsLastGoodProbe_time;
 
     int             storageType;
 };
@@ -275,7 +272,7 @@ static const char copyright[] =
     "@(#) Copyright (c) 1988, 1989, 1991, 1994, 1995, 1996, 1997, 1998, 1999, 2000\n\
 The Regents of the University of California.  All rights reserved.\n";
 static const char rcsid[] =
-    "@(#)$Id$ (LBL)";
+    "@(#)$Id: traceRouteCtlTable.h 10899 2004-08-24 15:15:03Z dts12 $ (LBL)";
 #endif
 
 /*
@@ -458,16 +455,23 @@ static const char rcsid[] =
 #include <sys/socket.h>
 #include <sys/time.h>
 
+/* include <linux/ipv6.h> */
+/* include <linux/in6.h> */
+
+#include "in6.h"
+#include "ipv6.h"
+
+#include <linux/icmpv6.h>
 
 #include <netinet/in_systm.h>
 #include <netinet/in.h>
 #include <netinet/ip.h>
+#include "ip_var.h"
 #include <netinet/ip_icmp.h>
 #include <netinet/udp.h>
+#include "udp_var.h"
 
-#include <netinet/ip6.h>
-#include <netinet/icmp6.h>
-
+/* include <linux/if.h> */
 #include <arpa/inet.h>
 
 #include <ctype.h>
@@ -483,6 +487,7 @@ static const char rcsid[] =
 #include <string.h>
 #include <unistd.h>
 
+#include "gnuc.h"
 #ifdef HAVE_OS_PROTO_H
 #include "os-proto.h"
 #endif
@@ -525,7 +530,7 @@ static const char rcsid[] =
 #define FD_SET(n, p)    ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
 #define FD_CLR(n, p)    ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
 #define FD_ISSET(n, p)  ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
-#define FD_ZERO(p)      memset((p), '\0', sizeof(*(p)))
+#define FD_ZERO(p)      bzero((char *)(p), sizeof(*(p)))
 #endif
 
 #define Fprintf (void)fprintf
@@ -565,17 +570,26 @@ struct ifaddrlist {
 };
 
 
+
+
+char           *prog;
+
 struct pkt_format {
-    u_int32_t       ident;
-    u_int32_t       seq;
+    __u32           ident;
+    __u32           seq;
     struct timeval  tv;
 };
 
 
+extern int      optind;
+extern int      opterr;
+extern char    *optarg;
+
 /*
  * Forwards 
  */
 unsigned long   deltaT(struct timeval *, struct timeval *);
+unsigned long   round(double);
 void            freehostinfo(struct hostinfo *);
 void            getaddr(u_int32_t *, char *);
 struct hostinfo *gethostinfo(char *);
diff --git a/agent/mibgroup/disman/traceroute/traceRouteHopsTable.c b/agent/mibgroup/disman/traceroute/traceRouteHopsTable.c
index 763757d..7149129 100644
--- a/agent/mibgroup/disman/traceroute/traceRouteHopsTable.c
+++ b/agent/mibgroup/disman/traceroute/traceRouteHopsTable.c
@@ -40,24 +40,15 @@ oid             traceRouteHopsTable_variables_oid[] =
     { 1, 3, 6, 1, 2, 1, 81, 1, 5 };
 
 struct variable2 traceRouteHopsTable_variables[] = {
-    {COLUMN_TRACEROUTEHOPSIPTGTADDRESSTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteHopsTable, 2, {1, 2}},
-    {COLUMN_TRACEROUTEHOPSIPTGTADDRESS,   ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteHopsTable, 2, {1, 3}},
-    {COLUMN_TRACEROUTEHOPSMINRTT,          ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteHopsTable, 2, {1, 4}},
-    {COLUMN_TRACEROUTEHOPSMAXRTT,          ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteHopsTable, 2, {1, 5}},
-    {COLUMN_TRACEROUTEHOPSAVERAGERTT,      ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteHopsTable, 2, {1, 6}},
-    {COLUMN_TRACEROUTEHOPSRTTSUMOFSQUARES, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteHopsTable, 2, {1, 7}},
-    {COLUMN_TRACEROUTEHOPSSENTPROBES,      ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteHopsTable, 2, {1, 8}},
-    {COLUMN_TRACEROUTEHOPSPROBERESPONSES,  ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteHopsTable, 2, {1, 9}},
-    {COLUMN_TRACEROUTEHOPSLASTGOODPROBE,  ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteHopsTable, 2, {1, 10}}
+    {COLUMN_TRACEROUTEHOPSIPTGTADDRESSTYPE, ASN_INTEGER, RONLY, var_traceRouteHopsTable, 2, {1, 2}},
+    {COLUMN_TRACEROUTEHOPSIPTGTADDRESS,   ASN_OCTET_STR, RONLY, var_traceRouteHopsTable, 2, {1, 3}},
+    {COLUMN_TRACEROUTEHOPSMINRTT,          ASN_UNSIGNED, RONLY, var_traceRouteHopsTable, 2, {1, 4}},
+    {COLUMN_TRACEROUTEHOPSMAXRTT,          ASN_UNSIGNED, RONLY, var_traceRouteHopsTable, 2, {1, 5}},
+    {COLUMN_TRACEROUTEHOPSAVERAGERTT,      ASN_UNSIGNED, RONLY, var_traceRouteHopsTable, 2, {1, 6}},
+    {COLUMN_TRACEROUTEHOPSRTTSUMOFSQUARES, ASN_UNSIGNED, RONLY, var_traceRouteHopsTable, 2, {1, 7}},
+    {COLUMN_TRACEROUTEHOPSSENTPROBES,      ASN_UNSIGNED, RONLY, var_traceRouteHopsTable, 2, {1, 8}},
+    {COLUMN_TRACEROUTEHOPSPROBERESPONSES,  ASN_UNSIGNED, RONLY, var_traceRouteHopsTable, 2, {1, 9}},
+    {COLUMN_TRACEROUTEHOPSLASTGOODPROBE,  ASN_OCTET_STR, RONLY, var_traceRouteHopsTable, 2, {1, 10}}
 };
 
 
@@ -69,8 +60,6 @@ struct variable2 traceRouteHopsTable_variables[] = {
 
 extern struct header_complex_index *traceRouteCtlTableStorage;
 extern struct header_complex_index *traceRouteHopsTableStorage;
-void
-traceRouteHopsTable_inadd(struct traceRouteHopsTable_data *thedata);
 
 void
 traceRouteHopsTable_cleaner(struct header_complex_index *thestuff)
@@ -320,7 +309,7 @@ store_traceRouteHopsTable(int majorID, int minorID, void *serverarg,
 }
 
 
-void
+int
 traceRouteHopsTable_inadd(struct traceRouteHopsTable_data *thedata)
 {
     netsnmp_variable_list *vars_list = NULL;
diff --git a/agent/mibgroup/disman/traceroute/traceRouteProbeHistoryTable.c b/agent/mibgroup/disman/traceroute/traceRouteProbeHistoryTable.c
index 0b410c5..456efb9 100644
--- a/agent/mibgroup/disman/traceroute/traceRouteProbeHistoryTable.c
+++ b/agent/mibgroup/disman/traceroute/traceRouteProbeHistoryTable.c
@@ -39,18 +39,12 @@ oid             traceRouteProbeHistoryTable_variables_oid[] =
     { 1, 3, 6, 1, 2, 1, 81, 1, 4 };
 
 struct variable2 traceRouteProbeHistoryTable_variables[] = {
-    {COLUMN_TRACEROUTEPROBEHISTORYHADDRTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteProbeHistoryTable, 2, {1, 4}},
-    {COLUMN_TRACEROUTEPROBEHISTORYHADDR,   ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteProbeHistoryTable, 2, {1, 5}},
-    {COLUMN_TRACEROUTEPROBEHISTORYRESPONSE, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteProbeHistoryTable, 2, {1, 6}},
-    {COLUMN_TRACEROUTEPROBEHISTORYSTATUS,    ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteProbeHistoryTable, 2, {1, 7}},
-    {COLUMN_TRACEROUTEPROBEHISTORYLASTRC,    ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteProbeHistoryTable, 2, {1, 8}},
-    {COLUMN_TRACEROUTEPROBEHISTORYTIME,    ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteProbeHistoryTable, 2, {1, 9}}
+    {COLUMN_TRACEROUTEPROBEHISTORYHADDRTYPE, ASN_INTEGER, RONLY, var_traceRouteProbeHistoryTable, 2, {1, 4}},
+    {COLUMN_TRACEROUTEPROBEHISTORYHADDR,   ASN_OCTET_STR, RONLY, var_traceRouteProbeHistoryTable, 2, {1, 5}},
+    {COLUMN_TRACEROUTEPROBEHISTORYRESPONSE, ASN_UNSIGNED, RONLY, var_traceRouteProbeHistoryTable, 2, {1, 6}},
+    {COLUMN_TRACEROUTEPROBEHISTORYSTATUS,    ASN_INTEGER, RONLY, var_traceRouteProbeHistoryTable, 2, {1, 7}},
+    {COLUMN_TRACEROUTEPROBEHISTORYLASTRC,    ASN_INTEGER, RONLY, var_traceRouteProbeHistoryTable, 2, {1, 8}},
+    {COLUMN_TRACEROUTEPROBEHISTORYTIME,    ASN_OCTET_STR, RONLY, var_traceRouteProbeHistoryTable, 2, {1, 9}}
 };
 
 
@@ -60,9 +54,6 @@ struct variable2 traceRouteProbeHistoryTable_variables[] = {
 
 extern struct header_complex_index *traceRouteCtlTableStorage;
 extern struct header_complex_index *traceRouteProbeHistoryTableStorage;
-void
-traceRouteProbeHistoryTable_inadd(struct traceRouteProbeHistoryTable_data
-                                  *thedata);
 
 void
 traceRouteProbeHistoryTable_cleaner(struct header_complex_index *thestuff)
@@ -316,7 +307,7 @@ store_traceRouteProbeHistoryTable(int majorID, int minorID,
 }
 
 
-void
+int
 traceRouteProbeHistoryTable_inadd(struct traceRouteProbeHistoryTable_data
                                   *thedata)
 {
diff --git a/agent/mibgroup/disman/traceroute/traceRouteResultsTable.c b/agent/mibgroup/disman/traceroute/traceRouteResultsTable.c
index aba6cf1..cc421e3 100644
--- a/agent/mibgroup/disman/traceroute/traceRouteResultsTable.c
+++ b/agent/mibgroup/disman/traceroute/traceRouteResultsTable.c
@@ -18,8 +18,6 @@
 
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -42,8 +40,6 @@
 #include "traceRouteHopsTable.h"
 #include "header_complex.h"
 
-netsnmp_feature_require(table_dataset)
-
 /*
  *traceRouteResultsTable_variables_oid:
  *
@@ -52,22 +48,14 @@ oid             traceRouteResultsTable_variables_oid[] =
     { 1, 3, 6, 1, 2, 1, 81, 1, 3 };
 
 struct variable2 traceRouteResultsTable_variables[] = {
-    {COLUMN_TRACEROUTERESULTSOPERSTATUS,     ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteResultsTable, 2, {1, 1}},
-    {COLUMN_TRACEROUTERESULTSCURHOPCOUNT,      ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteResultsTable, 2, {1, 2}},
-    {COLUMN_TRACEROUTERESULTSCURPROBECOUNT,    ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteResultsTable, 2, {1, 3}},
-    {COLUMN_TRACEROUTERESULTSIPTGTADDRTYPE,  ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteResultsTable, 2, {1, 4}},
-    {COLUMN_TRACEROUTERESULTSIPTGTADDR,    ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteResultsTable, 2, {1, 5}},
-    {COLUMN_TRACEROUTERESULTSTESTATTEMPTS,  ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteResultsTable, 2, {1, 6}},
-    {COLUMN_TRACEROUTERESULTSTESTSUCCESSES, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteResultsTable, 2, {1, 7}},
-    {COLUMN_TRACEROUTERESULTSLASTGOODPATH, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_traceRouteResultsTable, 2, {1, 8}}
+    {COLUMN_TRACEROUTERESULTSOPERSTATUS,     ASN_INTEGER, RONLY, var_traceRouteResultsTable, 2, {1, 1}},
+    {COLUMN_TRACEROUTERESULTSCURHOPCOUNT,      ASN_GAUGE, RONLY, var_traceRouteResultsTable, 2, {1, 2}},
+    {COLUMN_TRACEROUTERESULTSCURPROBECOUNT,    ASN_GAUGE, RONLY, var_traceRouteResultsTable, 2, {1, 3}},
+    {COLUMN_TRACEROUTERESULTSIPTGTADDRTYPE,  ASN_INTEGER, RONLY, var_traceRouteResultsTable, 2, {1, 4}},
+    {COLUMN_TRACEROUTERESULTSIPTGTADDR,    ASN_OCTET_STR, RONLY, var_traceRouteResultsTable, 2, {1, 5}},
+    {COLUMN_TRACEROUTERESULTSTESTATTEMPTS,  ASN_UNSIGNED, RONLY, var_traceRouteResultsTable, 2, {1, 6}},
+    {COLUMN_TRACEROUTERESULTSTESTSUCCESSES, ASN_UNSIGNED, RONLY, var_traceRouteResultsTable, 2, {1, 7}},
+    {COLUMN_TRACEROUTERESULTSLASTGOODPATH, ASN_OCTET_STR, RONLY, var_traceRouteResultsTable, 2, {1, 8}}
 };
 
 
@@ -78,8 +66,6 @@ struct variable2 traceRouteResultsTable_variables[] = {
 
 extern struct header_complex_index *traceRouteCtlTableStorage;
 extern struct header_complex_index *traceRouteResultsTableStorage;
-void
-traceRouteResultsTable_inadd(struct traceRouteResultsTable_data *thedata);
 
 void
 traceRouteResultsTable_cleaner(struct header_complex_index *thestuff)
@@ -325,7 +311,7 @@ store_traceRouteResultsTable(int majorID, int minorID, void *serverarg,
     return SNMPERR_SUCCESS;
 }
 
-void
+int
 traceRouteResultsTable_inadd(struct traceRouteResultsTable_data *thedata)
 {
     netsnmp_variable_list *vars_list = NULL;
diff --git a/agent/mibgroup/etherlike-mib.h b/agent/mibgroup/etherlike-mib.h
deleted file mode 100644
index 224e254..0000000
--- a/agent/mibgroup/etherlike-mib.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
- * module to include the modules
- */
-
-config_require(etherlike-mib/dot3StatsTable)
-config_add_mib(EtherLike-MIB)
-
diff --git a/agent/mibgroup/etherlike-mib/data_access/dot3stats.h b/agent/mibgroup/etherlike-mib/data_access/dot3stats.h
deleted file mode 100644
index 7d2b44f..0000000
--- a/agent/mibgroup/etherlike-mib/data_access/dot3stats.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
- * module to include the modules
- */
-
-#if defined(linux)
-config_require(etherlike-mib/data_access/dot3stats_linux)
-#endif
diff --git a/agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c b/agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c
deleted file mode 100644
index 00f4bc3..0000000
--- a/agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c
+++ /dev/null
@@ -1,928 +0,0 @@
-/*
- * standard Net-SNMP includes 
- */
-
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "etherlike-mib/dot3StatsTable/dot3StatsTable.h"
-#include "etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.h"
-#include "etherlike-mib/dot3StatsTable/ioctl_imp_common.h"
-
-/*
- * @retval  0 success
- * @retval -1 getifaddrs failed 
- * @retval -2 memory allocation failed
- */
-
-struct ifname *
-dot3stats_interface_name_list_get (struct ifname *list_head, int *retval)
-{
-    struct ifaddrs *addrs = NULL, *p = NULL;
-    struct ifname *nameptr1=NULL, *nameptr2 = NULL;
-
-    DEBUGMSGTL(("access:dot3StatsTable:interface_name_list_get",
-                "called\n"));
-
-    if ((getifaddrs(&addrs)) < 0) {
-        DEBUGMSGTL(("access:dot3StatsTable:interface_name_list_get",
-                    "getifaddrs failed\n"));
-        snmp_log (LOG_ERR, "access:dot3StatsTable,interface_name_list_get, getifaddrs failed\n");
-        *retval = -1;
-        return NULL;
-    }
-
-    for (p = addrs; p; p = p->ifa_next) {
-
-        if (!list_head) {
-            if ( (list_head = (struct ifname *) malloc (sizeof(struct ifname))) < 0) {
-                DEBUGMSGTL(("access:dot3StatsTable:interface_name_list_get",
-                            "memory allocation failed\n"));
-                snmp_log (LOG_ERR, "access:dot3StatsTable,interface_name_list_get, memory allocation failed\n");
-                freeifaddrs(addrs);
-                *retval = -2;
-                return NULL;
-            }
-            memset(list_head, 0, sizeof (struct ifname));
-            strlcpy(list_head->name, p->ifa_name, IF_NAMESIZE);
-            continue;
-        }
-
-         for (nameptr1 = list_head; nameptr1; nameptr2 = nameptr1, nameptr1 = nameptr1->ifn_next)
-            if (!strncmp(p->ifa_name, nameptr1->name, IF_NAMESIZE))
-                break;
-
-        if (nameptr1)
-            continue;
-
-        if ( (nameptr2->ifn_next = (struct ifname *) malloc (sizeof(struct ifname))) < 0) {
-            DEBUGMSGTL(("access:dot3StatsTable:interface_name_list_get",
-                        "memory allocation failed\n"));
-            snmp_log (LOG_ERR, "access:dot3StatsTable,interface_name_list_get, memory allocation failed\n");
-            dot3stats_interface_name_list_free (list_head);
-            freeifaddrs(addrs);
-            *retval = -2;
-            return NULL;
-        }
-        nameptr2 = nameptr2->ifn_next;
-        memset(nameptr2, 0, sizeof (struct ifname));
-        strlcpy(nameptr2->name, p->ifa_name, IF_NAMESIZE);
-        continue;
-
-    }
-
-    freeifaddrs(addrs);
-    return list_head;
-}
-
-/*
- * @retval 0 success
- * @retval -1 invalid pointer
- */
-
-int
-dot3stats_interface_name_list_free (struct ifname *list_head)
-{
-    struct ifname *nameptr1 = NULL, *nameptr2 = NULL;
-
-    DEBUGMSGTL(("access:dot3StatsTable:interface_name_list_free",
-                "called\n"));
-
-    if (!list_head) {
-        snmp_log (LOG_ERR, "access:dot3StatsTable:interface_name_list_free: invalid pointer list_head");
-        DEBUGMSGTL(("access:dot3StatsTable:interface_name_list_free",
-                    "invalid pointer list_head\n"));
-        return -1;
-    }
-
-    for (nameptr1 = list_head; nameptr1; nameptr1 = nameptr2) {
-            nameptr2 = nameptr1->ifn_next;
-            free (nameptr1);
-    }
-
-    return 0;
-}
-
-/*
- * @retval  0 : not found
- * @retval !0 : ifIndex
- */
-
-int 
-dot3stats_interface_ioctl_ifindex_get (int fd, const char *name) {
-#ifndef SIOCGIFINDEX
-    return 0;
-#else
-    struct ifreq    ifrq;
-    int rc = 0;
-
-    DEBUGMSGTL(("access:dot3StatsTable:interface_ioctl_ifindex_get", "called\n"));
-                 
-    rc = _dot3Stats_ioctl_get(fd, SIOCGIFINDEX, &ifrq, name);
-    if (rc < 0) {
-        DEBUGMSGTL(("access:dot3StatsTable:interface_ioctl_ifindex_get",
-                    "error on interface '%s'\n", name));
-        snmp_log (LOG_ERR, "access:dot3StatsTable:interface_ioctl_ifindex_get, error on interface '%s'\n", name);
-        return 0;
-
-    }
-
-    return ifrq.ifr_ifindex;
-#endif /* SIOCGIFINDEX */
-}
-
-# if HAVE_LINUX_RTNETLINK_H /* { NETLINK */
-/*
- * The following code is based upon code I got from Stephen Hemminger
- */
-#include <linux/rtnetlink.h>
-#include <errno.h>
-
-struct rtnl_handle {
-    int                     fd;
-    struct sockaddr_nl      local;
-    struct sockaddr_nl      peer;
-    __u32                   seq;
-    __u32                   dump;
-};
-
-struct ifstat_ent {
-    struct ifstat_ent *next;
-    const char *name;
-    int ifindex;
-    struct rtnl_link_stats stats;
-};
-
-typedef int (*rtnl_filter_t)(const struct sockaddr_nl *, struct nlmsghdr *n, void *);
-
-struct rtnl_dump_filter_arg
-{
-    rtnl_filter_t filter;
-    void *arg1;
-    rtnl_filter_t junk;
-    void *arg2;
-};
-
-static struct ifstat_ent *kern_db;
-static const int rcvbuf_size = 1024 * 1024;
-
-static int
-rtnl_open_byproto(struct rtnl_handle *rth, unsigned subscriptions, int protocol)
-{
-    socklen_t addr_len;
-    int sndbuf = 32768;
-
-    memset(rth, 0, sizeof(*rth));
-
-    rth->fd = socket(AF_NETLINK, SOCK_RAW, protocol);
-    if (rth->fd < 0) {
-        snmp_log(LOG_ERR, "Cannot open netlink socket");
-        return -1;
-    }
-
-    if (setsockopt(rth->fd,SOL_SOCKET,SO_SNDBUF,&sndbuf,sizeof(sndbuf)) < 0) {
-        snmp_log(LOG_ERR, "SO_SNDBUF");
-        return -1;
-    }
-
-    if (setsockopt(rth->fd,SOL_SOCKET,SO_RCVBUF,&rcvbuf_size,sizeof(rcvbuf_size)) < 0) {
-        snmp_log(LOG_ERR, "SO_RCVBUF");
-        return -1;
-    }
-
-    memset(&rth->local, 0, sizeof(rth->local));
-    rth->local.nl_family = AF_NETLINK;
-    rth->local.nl_groups = subscriptions;
-
-    if (bind(rth->fd, (struct sockaddr*)&rth->local, sizeof(rth->local)) < 0) {
-        snmp_log(LOG_ERR, "Cannot bind netlink socket");
-        return -1;
-    }
-    addr_len = sizeof(rth->local);
-    if (getsockname(rth->fd, (struct sockaddr*)&rth->local, &addr_len) < 0) {
-        snmp_log(LOG_ERR, "Cannot getsockname");
-        return -1;
-    }
-    if (addr_len != sizeof(rth->local)) {
-        snmp_log(LOG_ERR, "Wrong address length %d\n", addr_len);
-        return -1;
-    }
-    if (rth->local.nl_family != AF_NETLINK) {
-        snmp_log(LOG_ERR, "Wrong address family %d\n", rth->local.nl_family);
-        return -1;
-    }
-    rth->seq = time(NULL);
-    return 0;
-}
-
-static int
-rtnl_open(struct rtnl_handle *rth, unsigned subscriptions)
-{
-    return rtnl_open_byproto(rth, subscriptions, NETLINK_ROUTE);
-}
-
-static void
-rtnl_close(struct rtnl_handle *rth)
-{
-    if (rth->fd != -1)
-        close(rth->fd);
-    rth->fd = -1;
-
-    return;
-}
-
-static int
-rtnl_wilddump_request(struct rtnl_handle *rth, int family, int type)
-{
-    struct {
-        struct nlmsghdr nlh;
-        struct rtgenmsg g;
-    } req;
-
-    memset(&req, 0, sizeof(req));
-    req.nlh.nlmsg_len = sizeof(req);
-    req.nlh.nlmsg_type = type;
-    req.nlh.nlmsg_flags = NLM_F_ROOT|NLM_F_MATCH|NLM_F_REQUEST;
-    req.nlh.nlmsg_pid = 0;
-    req.nlh.nlmsg_seq = rth->dump = ++rth->seq;
-    req.g.rtgen_family = family;
-
-    return send(rth->fd, (void*)&req, sizeof(req), 0);
-}
-
-static int
-parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len)
-{
-    memset(tb, 0, sizeof(struct rtattr *) * (max + 1));
-    while (RTA_OK(rta, len))
-    {
-        if (rta->rta_type <= max)
-            tb[rta->rta_type] = rta;
-        rta = RTA_NEXT(rta,len);
-    }
-
-    if (len)
-        snmp_log(LOG_ERR, "parse_rtattr: !!!Deficit %d, rta_len=%d\n", len, rta->rta_len);
-
-    return 0;
-}
-
-static int
-get_nlmsg(const struct sockaddr_nl *who, struct nlmsghdr *m, void *arg)
-{
-    struct ifinfomsg *ifi = NLMSG_DATA(m);
-    struct rtattr * tb[IFLA_MAX+1];
-    int len = m->nlmsg_len;
-    struct ifstat_ent *n;
-
-    if (m->nlmsg_type != RTM_NEWLINK)
-        return 0;
-
-    len -= NLMSG_LENGTH(sizeof(*ifi));
-    if (len < 0)
-        return -1;
-
-    parse_rtattr(tb, IFLA_MAX, IFLA_RTA(ifi), len);
-    if (tb[IFLA_IFNAME] == NULL || tb[IFLA_STATS] == NULL)
-        return 0;
-
-    n = malloc(sizeof(*n));
-    memset(n, 0, sizeof(*n));
-
-    n->ifindex = ifi->ifi_index;
-    n->name = strdup(RTA_DATA(tb[IFLA_IFNAME]));
-    memcpy(&n->stats, RTA_DATA(tb[IFLA_STATS]), sizeof(n->stats));
-    n->next = kern_db;
-    kern_db = n;
-    return 0;
-}
-
-static int
-rtnl_dump_filter_l(struct rtnl_handle *rth,
-                   const struct rtnl_dump_filter_arg *arg)
-{
-    struct sockaddr_nl nladdr;
-    struct iovec iov;
-    struct msghdr msg = {
-        .msg_name = &nladdr,
-        .msg_namelen = sizeof(nladdr),
-        .msg_iov = &iov,
-        .msg_iovlen = 1,
-    };
-    char buf[16384];
-
-    iov.iov_base = buf;
-    while (1) {
-        int status;
-        const struct rtnl_dump_filter_arg *a;
-
-        iov.iov_len = sizeof(buf);
-        status = recvmsg(rth->fd, &msg, 0);
-
-        if (status < 0) {
-            if (errno == EINTR || errno == EAGAIN)
-                continue;
-            fprintf(stderr, "netlink receive error %s (%d)\n",
-                            strerror(errno), errno);
-            return -1;
-        }
-
-        if (status == 0) {
-            fprintf(stderr, "EOF on netlink\n");
-            return -1;
-        }
-
-        for (a = arg; a->filter; a++) {
-            struct nlmsghdr *h = (struct nlmsghdr*)buf;
-
-            while (NLMSG_OK(h, status)) {
-                int err;
-
-                if (nladdr.nl_pid != 0 ||
-                     h->nlmsg_pid != rth->local.nl_pid ||
-                     h->nlmsg_seq != rth->dump) {
-                    if (a->junk) {
-                        err = a->junk(&nladdr, h, a->arg2);
-                        if (err < 0)
-                            return err;
-                    }
-                    goto skip_it;
-                }
-
-                if (h->nlmsg_type == NLMSG_DONE)
-                    return 0;
-                if (h->nlmsg_type == NLMSG_ERROR) {
-                    struct nlmsgerr *err = (struct nlmsgerr*)NLMSG_DATA(h);
-                    if (h->nlmsg_len < NLMSG_LENGTH(sizeof(struct nlmsgerr))) {
-                        fprintf(stderr, "ERROR truncated\n");
-                    } else {
-                        errno = -err->error;
-                        perror("RTNETLINK answers");
-                    }
-                    return -1;
-                }
-                err = a->filter(&nladdr, h, a->arg1);
-                if (err < 0)
-                    return err;
-
-skip_it:
-                h = NLMSG_NEXT(h, status);
-            }
-        } while (0);
-        if (msg.msg_flags & MSG_TRUNC) {
-            fprintf(stderr, "Message truncated\n");
-            continue;
-        }
-        if (status) {
-            fprintf(stderr, "!!!Remnant of size %d\n", status);
-            exit(1);
-        }
-    }
-}
-
-static int
-rtnl_dump_filter(struct rtnl_handle *rth,
-                 rtnl_filter_t filter,
-                 void *arg1,
-                 rtnl_filter_t junk,
-                 void *arg2)
-{
-    const struct rtnl_dump_filter_arg a[2] = {
-        { .filter = filter, .arg1 = arg1, .junk = junk, .arg2 = arg2 },
-        { .filter = NULL,   .arg1 = NULL, .junk = NULL, .arg2 = NULL }
-    };
-
-    return rtnl_dump_filter_l(rth, a);
-}
-
-int
-_dot3Stats_netlink_get_errorcntrs(dot3StatsTable_rowreq_ctx *rowreq_ctx, const char *name)
-{
-    struct rtnl_handle rth;
-    struct ifstat_ent *ke;
-    int done;
-
-    if (rtnl_open(&rth, 0) < 0)
-    {
-        snmp_log(LOG_ERR, "_dot3Stats_netlink_get_errorcntrs: rtnl_open() failed\n");
-        return 1;
-    }
-
-    if (rtnl_wilddump_request(&rth, AF_INET, RTM_GETLINK) < 0)
-    {
-        snmp_log(LOG_ERR, "_dot3Stats_netlink_get_errorcntrs: Cannot send dump request");
-        rtnl_close(&rth);
-        return 1;
-    }
-
-    if (rtnl_dump_filter(&rth, get_nlmsg, NULL, NULL, NULL) < 0)
-    {
-        snmp_log(LOG_ERR, "_dot3Stats_netlink_get_errorcntrs: Dump terminated\n");
-        rtnl_close(&rth);
-        return 1;
-    }
-
-    rtnl_close(&rth);
-
-    /*
-     * Now scan kern_db for this if's data
-     * While doing so, we'll throw away the kern db.
-     */
-    done = 0;
-
-    while ((ke = kern_db) != NULL)
-    {
-        if (strcmp(ke->name, name) == 0)
-        {
-            dot3StatsTable_data *data = &rowreq_ctx->data;
-
-            snmp_log(LOG_ERR, "IFLA_STATS for %s\n", name);
-
-            data->dot3StatsFCSErrors = ke->stats.rx_crc_errors;
-            rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSFCSERRORS_FLAG;
-
-            data->dot3StatsDeferredTransmissions = ke->stats.tx_dropped;
-            rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSDEFERREDTRANSMISSIONS_FLAG;
-
-            data->dot3StatsInternalMacTransmitErrors = ke->stats.tx_fifo_errors;
-            rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSINTERNALMACTRANSMITERRORS_FLAG;
-
-            data->dot3StatsCarrierSenseErrors = ke->stats.tx_carrier_errors;
-            rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSCARRIERSENSEERRORS_FLAG;
-
-            data->dot3StatsFrameTooLongs = ke->stats.rx_frame_errors;
-            rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSFRAMETOOLONGS_FLAG;
-
-            data->dot3StatsInternalMacReceiveErrors = ke->stats.rx_fifo_errors;
-            rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSINTERNALMACRECEIVEERRORS_FLAG;
-
-            done = 1;
-        }
-        kern_db = ke->next;
-        free(ke);
-    }
-
-    return !done;
-}
-# else /* }{ */
-int
-_dot3Stats_netlink_get_errorcntrs(dot3StatsTable_rowreq_ctx *rowreq_ctx, const char *name)
-{
-    return 1;
-}
-# endif /* } */
-
-
-/*
- * NAME: getulongfromsysclassnetstatistics
- * PURPOSE: To get a single statistics value from /sys/class/net/<ifname>/statistics/<ctrname>
- * ARGUMENTS: ifname: interface name
- *      ctrname: counter name
- *      valuep: where to store value
- * RETURNS: 0 if value not available
- *      non-0 if value available
- */
-static int
-getulongfromsysclassnetstatistics(const char *ifname, const char *ctrname, u_long *valuep)
-{
-    char path[256];
-    FILE *fp;
-    int rv;
-
-    if (ifname == NULL || ctrname == NULL || valuep == NULL)
-        return 0;
-
-    snprintf(path, sizeof(path), "/sys/class/net/%s/statistics/%s", ifname, ctrname);
-    fp = fopen(path, "rt");
-    if (fp == NULL)
-        return 0;
-
-    rv = 1;
-    if (fscanf(fp, "%lu", valuep) != 1)
-        rv = 0;
-
-    fclose(fp);
-
-    return rv;
-}
-
-/*
- * NAME: interface_dot3stats_get_errorcounters
- * PURPOSE: To get ethernet error statistics
- * ARGUMENTS: rowreq_ctx: where to store the value(s)
- *      name: interface name
- * RETURNS: nothing. fields not set if data not available
- */
-void
-interface_dot3stats_get_errorcounters (dot3StatsTable_rowreq_ctx *rowreq_ctx, const char *name)
-{
-    u_long value;
-    dot3StatsTable_data *data = &rowreq_ctx->data;
-    FILE *dev;
-    const char NETDEV_FILE[] = "/proc/net/dev";
-
-    if (_dot3Stats_netlink_get_errorcntrs(rowreq_ctx, name) == 0)
-    {
-        snmp_log(LOG_NOTICE, "interface_dot3stats_get_errorcounters: got data from IFLA_STATS\n");
-        return;
-    }
-
-    if ((dev = fopen(NETDEV_FILE, "r")) != NULL)
-    {
-        char line[256], *lp, *next;
-        size_t namelen = strlen(name);
-        unsigned int value;
-        unsigned int column;
-
-        while (fgets(line, sizeof(line), dev) != NULL)
-        {
-            /*    br0:68395635 1038214    0    0    0     0          0    939411 25626606   90708    0    0    0     0       0          0 */
-            lp = line;
-            while (*lp == ' ' || *lp == '\t')
-                lp++;
-            if (strncmp(lp, name, namelen) != 0 || lp[namelen] != ':')
-                continue;
-            lp += namelen + 1;         /* Skip name and colon */
-
-            column = 1;
-            while (1)
-            {
-                value = strtoul(lp, &next, 10);
-                if (next == lp)
-                    break;             /* no more data */
-                switch (column)
-                {
-                case 3: 
-                    data->dot3StatsFCSErrors = value;
-                    rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSFCSERRORS_FLAG;
-                    break;
-                case 12:
-                    data->dot3StatsDeferredTransmissions = value;
-                    rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSDEFERREDTRANSMISSIONS_FLAG;
-                    break;
-                case 13:
-                    data->dot3StatsInternalMacTransmitErrors = value;
-                    rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSINTERNALMACTRANSMITERRORS_FLAG;
-                    break;
-                case 15:
-                    data->dot3StatsCarrierSenseErrors = value;
-                    rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSCARRIERSENSEERRORS_FLAG;
-                    break;
-                case 6:
-                    data->dot3StatsFrameTooLongs = value;
-                    rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSFRAMETOOLONGS_FLAG;
-                    break;
-                case 5:
-                    data->dot3StatsInternalMacReceiveErrors = value;
-                    rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSINTERNALMACRECEIVEERRORS_FLAG;
-                    break;
-                case 14:
-                    data->dot3StatsSingleCollisionFrames = value;
-                    rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSSINGLECOLLISIONFRAMES_FLAG;
-                    break;
-                }
-                column++;
-                lp = next;
-            }
-            break;
-        }
-
-        fclose(dev);
-    }
-
-    if (!(rowreq_ctx->column_exists_flags & COLUMN_DOT3STATSFCSERRORS_FLAG) &&
-          getulongfromsysclassnetstatistics(name, "rx_errors", &value)) {
-        data->dot3StatsFCSErrors = value;
-        rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSFCSERRORS_FLAG;
-    }
-    if (!(rowreq_ctx->column_exists_flags & COLUMN_DOT3STATSDEFERREDTRANSMISSIONS_FLAG) &&
-          getulongfromsysclassnetstatistics(name, "tx_dropped", &value)) {
-        data->dot3StatsDeferredTransmissions = value;
-        rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSDEFERREDTRANSMISSIONS_FLAG;
-    }
-    if (!(rowreq_ctx->column_exists_flags & COLUMN_DOT3STATSINTERNALMACTRANSMITERRORS_FLAG) &&
-          getulongfromsysclassnetstatistics(name, "tx_fifo_errors", &value)) {
-        data->dot3StatsInternalMacTransmitErrors = value;
-        rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSINTERNALMACTRANSMITERRORS_FLAG;
-    }
-    if (!(rowreq_ctx->column_exists_flags & COLUMN_DOT3STATSCARRIERSENSEERRORS_FLAG) &&
-          getulongfromsysclassnetstatistics(name, "tx_carrier_errors", &value)) {
-        data->dot3StatsCarrierSenseErrors = value;
-        rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSCARRIERSENSEERRORS_FLAG;
-    }
-    if (!(rowreq_ctx->column_exists_flags & COLUMN_DOT3STATSFRAMETOOLONGS_FLAG) &&
-          getulongfromsysclassnetstatistics(name, "rx_frame_errors", &value)) {
-        data->dot3StatsFrameTooLongs = value;
-        rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSFRAMETOOLONGS_FLAG;
-    }
-    if (!(rowreq_ctx->column_exists_flags & COLUMN_DOT3STATSINTERNALMACRECEIVEERRORS_FLAG) &&
-          getulongfromsysclassnetstatistics(name, "rx_fifo_errors", &value)) {
-        data->dot3StatsInternalMacReceiveErrors = value;
-        rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSINTERNALMACRECEIVEERRORS_FLAG;
-    }
-
-    return;
-}
-
-/*
- * @retval  0 success
- * @retval -1 cannot get ETHTOOL_DRVINFO failed 
- * @retval -2 nstats zero - no statistcs available
- * @retval -3 memory allocation for holding the statistics failed
- * @retval -4 cannot get ETHTOOL_GSTRINGS information
- * @retval -5 cannot get ETHTOOL_GSTATS information
- * @retval -6 function not supported if HAVE_LINUX_ETHTOOL_H not defined
- */
-
-
-int 
-interface_ioctl_dot3stats_get (dot3StatsTable_rowreq_ctx *rowreq_ctx, int fd, const char *name) {
-
-#ifdef HAVE_LINUX_ETHTOOL_H
-    dot3StatsTable_data *data = &rowreq_ctx->data;
-    struct ethtool_drvinfo driver_info;
-    struct ethtool_gstrings *eth_strings;
-    struct ethtool_stats *eth_stats;
-    struct ifreq ifr; 
-    unsigned int nstats, size_str, i;
-    int err;
-
-    DEBUGMSGTL(("access:dot3StatsTable:interface_ioctl_dot3Stats_get",
-                "called\n"));
-
-    memset(&ifr, 0, sizeof(ifr));
-    strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
-
-    memset(&driver_info, 0, sizeof (driver_info));
-    driver_info.cmd = ETHTOOL_GDRVINFO;
-    ifr.ifr_data = (char *)&driver_info;
-
-    err = _dot3Stats_ioctl_get(fd, SIOCETHTOOL, &ifr, name);
-    if (err < 0) {
-        DEBUGMSGTL(("access:dot3StatsTable:interface_ioctl_dot3Stats_get",
-                    "ETHTOOL_GETDRVINFO failed for interface |%s| \n", name));
-        return -1;
-    }
-
-    nstats = driver_info.n_stats;
-    if (nstats < 1) {
-        DEBUGMSGTL(("access:dot3StatsTable:interface_ioctl_dot3Stats_get",
-                    "no stats available for interface |%s| \n", name));
-        return -2;
-    }
-
-    size_str = nstats * ETH_GSTRING_LEN;
-
-    eth_strings = malloc(size_str + sizeof (struct ethtool_gstrings));
-    if (!eth_strings) {
-        DEBUGMSGTL(("access:dot3StatsTable:interface_ioctl_dot3Stats_get",
-                    "no memory available\n"));
-        snmp_log (LOG_ERR, "access:dot3StatsTable,interface_ioctl_dot3Stats_get, no memory available\n");
-
-        return -3;
-    }
-    memset (eth_strings, 0, (size_str + sizeof (struct ethtool_gstrings)));
-
-    eth_stats = malloc (size_str + sizeof (struct ethtool_stats));
-    if (!eth_stats) {
-        free (eth_strings);
-        DEBUGMSGTL(("access:dot3StatsTable:interface_ioctl_dot3Stats_get",
-                    "no memory available\n"));
-        snmp_log (LOG_ERR, "access:dot3StatsTable,interface_ioctl_dot3Stats_get, no memory available\n");
-
-        return -3;
-    }
-     memset (eth_stats, 0, (size_str + sizeof (struct ethtool_stats)));
-
-    eth_strings->cmd = ETHTOOL_GSTRINGS;
-    eth_strings->string_set = ETH_SS_STATS;
-    eth_strings->len = nstats;
-    ifr.ifr_data = (char *) eth_strings;
-    err = _dot3Stats_ioctl_get(fd, SIOCETHTOOL, &ifr, name);
-    if (err < 0) {
-        DEBUGMSGTL(("access:dot3StatsTable:interface_ioctl_dot3Stats_get",
-                    "cannot get stats strings information for interface |%s| \n", name));
-        snmp_log (LOG_ERR, "access:dot3StatsTable,interface_ioctl_dot3Stats_get, cannot get stats strings information for interface |%s| \n", name);
-
-        free(eth_strings);
-        free(eth_stats);
-        return -4;
-    }
-
-    eth_stats->cmd = ETHTOOL_GSTATS;
-    eth_stats->n_stats = nstats;
-    ifr.ifr_data = (char *) eth_stats;
-    err = _dot3Stats_ioctl_get(fd, SIOCETHTOOL, &ifr, name);
-    if (err < 0) {
-        DEBUGMSGTL(("access:dot3StatsTable:interface_ioctl_dot3Stats_get",
-                    "cannot get stats strings information for interface |%s| \n", name));
-        snmp_log (LOG_ERR, "access:dot3StatsTable,interface_ioctl_dot3Stats_get, cannot get stats information for interface |%s| \n", name);
-
-        free(eth_strings);
-        free(eth_stats);
-        return -5;
-    }
-
-    for (i = 0; i < nstats; i++) {
-        char s[ETH_GSTRING_LEN];
-
-        strlcpy(s, (const char *) &eth_strings->data[i * ETH_GSTRING_LEN],
-                sizeof(s));
-    
-        if (DOT3STATSALIGNMENTERRORS(s)) {
-            data->dot3StatsAlignmentErrors = (u_long)eth_stats->data[i];
-            rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSALIGNMENTERRORS_FLAG;
-        }
-
-        if (DOT3STATSMULTIPLECOLLISIONFRAMES(s)) {
-            data->dot3StatsMultipleCollisionFrames = (u_long)eth_stats->data[i];
-            rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSMULTIPLECOLLISIONFRAMES_FLAG;
-        }
-            
-        if (DOT3STATSLATECOLLISIONS(s)) {
-            data->dot3StatsLateCollisions = (u_long)eth_stats->data[i];
-            rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSLATECOLLISIONS_FLAG;
-        }
-
-        if (DOT3STATSSINGLECOLLISIONFRAMES(s)) {
-            data->dot3StatsSingleCollisionFrames = (u_long)eth_stats->data[i];
-            rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSSINGLECOLLISIONFRAMES_FLAG;
-        }
-
-        if (DOT3STATSEXCESSIVECOLLISIONS(s)) {
-            data->dot3StatsExcessiveCollisions = (u_long)eth_stats->data[i];
-            rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSEXCESSIVECOLLISIONS_FLAG;
-        }
-    }
-
-    free(eth_strings);
-    free(eth_stats);
-
-    return 0;
-#else
-    return -6;
-#endif
-}
-
-
-/*
- * @retval  0 success
- * @retval -1 ETHTOOL_GSET failed
- * @retval -2 function not supported if HAVE_LINUX_ETHTOOL_H not defined
- */
-
-int
-interface_ioctl_dot3stats_duplex_get(dot3StatsTable_rowreq_ctx *rowreq_ctx, int fd, const char* name) {
-
-#ifdef HAVE_LINUX_ETHTOOL_H
-    dot3StatsTable_data *data = &rowreq_ctx->data;
-    struct ethtool_cmd edata;
-    struct ifreq ifr;
-    int err;
-
-    DEBUGMSGTL(("access:dot3StatsTable:interface_ioctl_dot3Stats_duplex_get",
-                "called\n"));
-
-    memset(&edata, 0, sizeof (edata));
-    memset(&ifr, 0, sizeof (ifr));
-    edata.cmd = ETHTOOL_GSET;
-    ifr.ifr_data = (char *)&edata;
-
-    err = _dot3Stats_ioctl_get (fd, SIOCETHTOOL, &ifr, name);
-    if (err < 0) {
-        DEBUGMSGTL(("access:dot3StatsTable:interface_ioctl_dot3Stats_duplex_get",
-                    "ETHTOOL_GSET failed\n"));
-
-        return -1;
-    }
-    
-    if (err == 0) {
-        rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSDUPLEXSTATUS_FLAG;
-        switch (edata.duplex) {
-        case DUPLEX_HALF:
-            data->dot3StatsDuplexStatus = (u_long) DOT3STATSDUPLEXSTATUS_HALFDUPLEX;
-            break;
-        case DUPLEX_FULL:
-            data->dot3StatsDuplexStatus = (u_long) DOT3STATSDUPLEXSTATUS_FULLDUPLEX;
-            break;
-        default:
-            data->dot3StatsDuplexStatus = (u_long) DOT3STATSDUPLEXSTATUS_UNKNOWN;
-            break;
-        };
-    }
-
-    DEBUGMSGTL(("access:dot3StatsTable:interface_ioctl_dot3Stats_duplex_get",
-                "ETHTOOL_GSET processed\n"));
-    return err;
-#else
-    return -2;
-#endif
-}
-
-
-/*
- * NAME: interface_sysclassnet_dot3stats_get
- * PURPOSE: To get ethernet statistics from /sys/class/net/...
- * ARGUMENTS: rowreq_ctx: where to store the value(s)
- *	name: interface name
- * RETURNS: nothing. fields not set if data not available
- */
-void
-interface_sysclassnet_dot3stats_get (dot3StatsTable_rowreq_ctx *rowreq_ctx, const char *name)
-{
-    u_long value;
-    dot3StatsTable_data *data = &rowreq_ctx->data;
-
-    if (getulongfromsysclassnetstatistics(name, "rx_errors", &value)) {
-	data->dot3StatsFCSErrors = value;
-	rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSFCSERRORS_FLAG;
-    }
-    if (getulongfromsysclassnetstatistics(name, "tx_dropped", &value)) {
-	data->dot3StatsDeferredTransmissions = value;
-	rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSDEFERREDTRANSMISSIONS_FLAG;
-    }
-    if (getulongfromsysclassnetstatistics(name, "tx_fifo_errors", &value)) {
-	data->dot3StatsInternalMacTransmitErrors = value;
-	rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSINTERNALMACTRANSMITERRORS_FLAG;
-    }
-    if (getulongfromsysclassnetstatistics(name, "tx_carrier_errors", &value)) {
-	data->dot3StatsCarrierSenseErrors = value;
-	rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSCARRIERSENSEERRORS_FLAG;
-    }
-    if (getulongfromsysclassnetstatistics(name, "rx_frame_errors", &value)) {
-	data->dot3StatsFrameTooLongs = value;
-	rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSFRAMETOOLONGS_FLAG;
-    }
-    if (getulongfromsysclassnetstatistics(name, "rx_fifo_errors", &value)) {
-	data->dot3StatsInternalMacReceiveErrors = value;
-	rowreq_ctx->column_exists_flags |= COLUMN_DOT3STATSINTERNALMACRECEIVEERRORS_FLAG;
-    }
-
-    return;
-}
-
-
-
-/* ioctl wrapper
- *
- * @param      fd : socket fd to use w/ioctl, or -1 to open/close one
- * @param  which
- * @param ifrq
- * param ifentry : ifentry to update
- * @param name
- *
- * @retval  0 : success
- * @retval -1 : invalid parameters
- * @retval -2 : couldn't create socket
- * @retval -3 : ioctl call failed
- */
-int
-_dot3Stats_ioctl_get(int fd, int which, struct ifreq *ifrq, const char* name)
-{
-    int ourfd = -1, rc = 0;
-
-    DEBUGMSGTL(("access:dot3StatsTable:ioctl", "_dot3Stats_ioctl_get\n"));
-
-    /*
-     * sanity checks
-     */
-    if(NULL == name) {
-        DEBUGMSGTL(("access:dot3StatsTable:ioctl",
-                    "_dot3Stats_ioctl_get invalid ifname '%s'\n", name));
-        snmp_log (LOG_ERR, "access:dot3StatsTable:ioctl, _dot3Stats_ioctl_get error on interface '%s'\n", name);
-        return -1;
-    }
-
-    /*
-     * create socket for ioctls
-     */
-    if(fd < 0) {
-        fd = ourfd = socket(AF_INET, SOCK_DGRAM, 0);
-        if(ourfd < 0) {
-            DEBUGMSGTL(("access:dot3StatsTable:ioctl",
-                        "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;
-        }
-    }
-
-    strlcpy(ifrq->ifr_name, name, sizeof(ifrq->ifr_name));
-    rc = ioctl(fd, which, ifrq);
-    if (rc < 0) {
-        DEBUGMSGTL(("access:dot3StatsTable:ioctl",
-                    "dot3Stats_ioctl_get ioctl %d returned %d\n", which, rc));
-        rc = -3;
-    }
-
-    if(ourfd >= 0)
-        close(ourfd);
-
-    return rc;
-}
-
-
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable.h b/agent/mibgroup/etherlike-mib/dot3StatsTable.h
deleted file mode 100644
index b04f7bf..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * module to include the modules
- */
-
-config_require(etherlike-mib/data_access/dot3stats)
-config_require(etherlike-mib/dot3StatsTable/dot3StatsTable)
-config_require(etherlike-mib/dot3StatsTable/dot3StatsTable_data_get)
-config_require(etherlike-mib/dot3StatsTable/dot3StatsTable_data_set)
-config_require(etherlike-mib/dot3StatsTable/dot3StatsTable_data_access)
-config_require(etherlike-mib/dot3StatsTable/dot3StatsTable_interface)
-
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable.c b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable.c
deleted file mode 100644
index b86380a..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $ 
- *
- * $Id:$
- */
-/** \page MFD helper for dot3StatsTable
- *
- * \section intro Introduction
- * Introductory text.
- *
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "dot3StatsTable.h"
-
-#include <net-snmp/agent/mib_modules.h>
-
-#include "dot3StatsTable_interface.h"
-
-oid             dot3StatsTable_oid[] = { DOT3STATSTABLE_OID };
-int             dot3StatsTable_oid_size = OID_LENGTH(dot3StatsTable_oid);
-
-dot3StatsTable_registration dot3StatsTable_user_context;
-static dot3StatsTable_registration *dot3StatsTable_user_context_p;
-
-void            initialize_table_dot3StatsTable(void);
-void            shutdown_table_dot3StatsTable(void);
-
-
-/**
- * Initializes the dot3StatsTable module
- */
-void
-init_dot3StatsTable(void)
-{
-    DEBUGMSGTL(("verbose:dot3StatsTable:init_dot3StatsTable", "called\n"));
-
-    /*
-     * TODO:300:o: Perform dot3StatsTable one-time module initialization.
-     */
-
-    /*
-     * here we initialize all the tables we're planning on supporting
-     */
-    if (should_init("dot3StatsTable"))
-        initialize_table_dot3StatsTable();
-
-}                               /* init_dot3StatsTable */
-
-/**
- * Shut-down the dot3StatsTable module (agent is exiting)
- */
-void
-shutdown_dot3StatsTable(void)
-{
-    if (should_init("dot3StatsTable"))
-        shutdown_table_dot3StatsTable();
-
-}
-
-/**
- * Initialize the table dot3StatsTable 
- *    (Define its contents and how it's structured)
- */
-void
-initialize_table_dot3StatsTable(void)
-{
-    u_long          flags;
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:initialize_table_dot3StatsTable",
-                "called\n"));
-
-    /*
-     * TODO:301:o: Perform dot3StatsTable one-time table initialization.
-     */
-
-    /*
-     * TODO:302:o: |->Initialize dot3StatsTable user context
-     * if you'd like to pass in a pointer to some data for this
-     * table, allocate or set it up here.
-     */
-    /*
-     * a netsnmp_data_list is a simple way to store void pointers. A simple
-     * string token is used to add, find or remove pointers.
-     */
-    dot3StatsTable_user_context_p
-	= netsnmp_create_data_list("dot3StatsTable", NULL, NULL);
-
-    /*
-     * No support for any flags yet, but in the future you would
-     * set any flags here.
-     */
-    flags = 0;
-
-    /*
-     * call interface initialization code
-     */
-    _dot3StatsTable_initialize_interface(dot3StatsTable_user_context_p, flags);
-}                               /* initialize_table_dot3StatsTable */
-
-/**
- * Shutdown the table dot3StatsTable 
- */
-void
-shutdown_table_dot3StatsTable(void)
-{
-    /*
-     * call interface shutdown code
-     */
-    _dot3StatsTable_shutdown_interface(dot3StatsTable_user_context_p);
-    netsnmp_free_all_list_data(dot3StatsTable_user_context_p);
-    dot3StatsTable_user_context_p = NULL;
-}
-
-/**
- * extra context initialization (eg default values)
- *
- * @param rowreq_ctx    : row request context
- * @param user_init_ctx : void pointer for user (parameter to rowreq_ctx_allocate)
- *
- * @retval MFD_SUCCESS  : no errors
- * @retval MFD_ERROR    : error (context allocate will fail)
- */
-int
-dot3StatsTable_rowreq_ctx_init(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                               void *user_init_ctx)
-{
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_rowreq_ctx_init",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:210:o: |-> Perform extra dot3StatsTable rowreq initialization. (eg DEFVALS)
-     */
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsTable_rowreq_ctx_init */
-
-/**
- * extra context cleanup
- *
- */
-void
-dot3StatsTable_rowreq_ctx_cleanup(dot3StatsTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_rowreq_ctx_cleanup",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:211:o: |-> Perform extra dot3StatsTable rowreq cleanup.
-     */
-}                               /* dot3StatsTable_rowreq_ctx_cleanup */
-
-/**
- * pre-request callback
- *
- *
- * @retval MFD_SUCCESS              : success.
- * @retval MFD_ERROR                : other error
- */
-int
-dot3StatsTable_pre_request(dot3StatsTable_registration * user_context)
-{
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_pre_request",
-                "called\n"));
-
-    /*
-     * TODO:510:o: Perform dot3StatsTable pre-request actions.
-     */
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsTable_pre_request */
-
-/**
- * post-request callback
- *
- * Note:
- *   New rows have been inserted into the container, and
- *   deleted rows have been removed from the container and
- *   released.
- *
- * @param user_context
- * @param rc : MFD_SUCCESS if all requests succeeded
- *
- * @retval MFD_SUCCESS : success.
- * @retval MFD_ERROR   : other error (ignored)
- */
-int
-dot3StatsTable_post_request(dot3StatsTable_registration * user_context,
-                            int rc)
-{
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_post_request",
-                "called\n"));
-
-    /*
-     * TODO:511:o: Perform dot3StatsTable post-request actions.
-     */
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsTable_post_request */
-
-
-/** @{ */
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable.h b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable.h
deleted file mode 100644
index c4713fc..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $
- *
- * $Id:$
- */
-#ifndef DOT3STATSTABLE_H
-#define DOT3STATSTABLE_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-/** @addtogroup misc misc: Miscellaneous routines
- *
- * @{
- */
-#include <net-snmp/library/asn1.h>
-
-    /*
-     * OID and column number definitions for dot3StatsTable 
-     */
-#include "dot3StatsTable_oids.h"
-
-    /*
-     * enum definions 
-     */
-#include "dot3StatsTable_enums.h"
-
-    /*
-     *********************************************************************
-     * function declarations
-     */
-    void            init_dot3StatsTable(void);
-    void            shutdown_dot3StatsTable(void);
-
-    /*
-     *********************************************************************
-     * Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table dot3StatsTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * EtherLike-MIB::dot3StatsTable is subid 2 of dot3.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.10.7.2, length: 9
-     */
-    /*
-     *********************************************************************
-     * When you register your mib, you get to provide a generic
-     * pointer that will be passed back to you for most of the
-     * functions calls.
-     *
-     * TODO:100:r: Review all context structures
-     */
-    /*
-     * TODO:101:o: |-> Review dot3StatsTable registration context.
-     */
-    typedef netsnmp_data_list dot3StatsTable_registration;
-
-/**********************************************************************/
-    /*
-     * TODO:110:r: |-> Review dot3StatsTable data context structure.
-     * This structure is used to represent the data for dot3StatsTable.
-     */
-    /*
-     * This structure contains storage for all the columns defined in the
-     * dot3StatsTable.
-     */
-    typedef struct dot3StatsTable_data_s {
-
-        /*
-         * dot3StatsAlignmentErrors(2)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          dot3StatsAlignmentErrors;
-
-        /*
-         * dot3StatsFCSErrors(3)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          dot3StatsFCSErrors;
-
-        /*
-         * dot3StatsSingleCollisionFrames(4)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          dot3StatsSingleCollisionFrames;
-
-        /*
-         * dot3StatsMultipleCollisionFrames(5)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          dot3StatsMultipleCollisionFrames;
-
-        /*
-         * dot3StatsSQETestErrors(6)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          dot3StatsSQETestErrors;
-
-        /*
-         * dot3StatsDeferredTransmissions(7)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          dot3StatsDeferredTransmissions;
-
-        /*
-         * dot3StatsLateCollisions(8)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          dot3StatsLateCollisions;
-
-        /*
-         * dot3StatsExcessiveCollisions(9)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          dot3StatsExcessiveCollisions;
-
-        /*
-         * dot3StatsInternalMacTransmitErrors(10)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          dot3StatsInternalMacTransmitErrors;
-
-        /*
-         * dot3StatsCarrierSenseErrors(11)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          dot3StatsCarrierSenseErrors;
-
-        /*
-         * dot3StatsFrameTooLongs(13)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          dot3StatsFrameTooLongs;
-
-        /*
-         * dot3StatsInternalMacReceiveErrors(16)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          dot3StatsInternalMacReceiveErrors;
-
-        /*
-         * dot3StatsEtherChipSet(17)/OBJECTID/ASN_OBJECT_ID/oid(oid)//L/A/w/e/r/d/h
-         */
-        oid             dot3StatsEtherChipSet[128];
-        size_t          dot3StatsEtherChipSet_len;      /* # of oid elements, not bytes */
-
-        /*
-         * dot3StatsSymbolErrors(18)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          dot3StatsSymbolErrors;
-
-        /*
-         * dot3StatsDuplexStatus(19)/INTEGER/ASN_INTEGER/long(u_long)//l/A/w/E/r/d/h
-         */
-        u_long          dot3StatsDuplexStatus;
-
-        /*
-         * dot3StatsRateControlAbility(20)/TruthValue/ASN_INTEGER/long(u_long)//l/A/w/E/r/d/h
-         */
-        u_long          dot3StatsRateControlAbility;
-
-        /*
-         * dot3StatsRateControlStatus(21)/INTEGER/ASN_INTEGER/long(u_long)//l/A/w/E/r/d/h
-         */
-        u_long          dot3StatsRateControlStatus;
-
-    } dot3StatsTable_data;
-
-
-    /*
-     * TODO:120:r: |-> Review dot3StatsTable mib index.
-     * This structure is used to represent the index for dot3StatsTable.
-     */
-    typedef struct dot3StatsTable_mib_index_s {
-
-        /*
-         * dot3StatsIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/A/w/e/R/d/H
-         */
-        long            dot3StatsIndex;
-
-
-    } dot3StatsTable_mib_index;
-
-    /*
-     * TODO:121:r: |   |-> Review dot3StatsTable max index length.
-     * If you KNOW that your indexes will never exceed a certain
-     * length, update this macro to that length.
-     */
-#define MAX_dot3StatsTable_IDX_LEN     255
-
-
-    /*
-     *********************************************************************
-     * TODO:130:o: |-> Review dot3StatsTable Row request (rowreq) context.
-     * When your functions are called, you will be passed a
-     * dot3StatsTable_rowreq_ctx pointer.
-     */
-    typedef struct dot3StatsTable_rowreq_ctx_s {
-
-    /** this must be first for container compare to work */
-        netsnmp_index   oid_idx;
-        oid             oid_tmp[MAX_dot3StatsTable_IDX_LEN];
-
-        dot3StatsTable_mib_index tbl_idx;
-
-        dot3StatsTable_data data;
-        unsigned int    column_exists_flags;    /* flags for existence */
-
-        /*
-         * flags per row. Currently, the first (lower) 8 bits are reserved
-         * for the user. See mfd.h for other flags.
-         */
-        u_int           rowreq_flags;
-
-        /*
-         * TODO:131:o: |   |-> Add useful data to dot3StatsTable rowreq context.
-         */
-
-        /*
-         * storage for future expansion
-         */
-        netsnmp_data_list *dot3StatsTable_data_list;
-
-    } dot3StatsTable_rowreq_ctx;
-
-    typedef struct dot3StatsTable_ref_rowreq_ctx_s {
-        dot3StatsTable_rowreq_ctx *rowreq_ctx;
-    } dot3StatsTable_ref_rowreq_ctx;
-
-    /*
-     *********************************************************************
-     * function prototypes
-     */
-    int             dot3StatsTable_pre_request(dot3StatsTable_registration
-                                               * user_context);
-    int             dot3StatsTable_post_request(dot3StatsTable_registration
-                                                * user_context, int rc);
-
-    int            
-        dot3StatsTable_rowreq_ctx_init(dot3StatsTable_rowreq_ctx *
-                                       rowreq_ctx, void *user_init_ctx);
-    void           
-        dot3StatsTable_rowreq_ctx_cleanup(dot3StatsTable_rowreq_ctx *
-                                          rowreq_ctx);
-
-
-    dot3StatsTable_rowreq_ctx
-        *dot3StatsTable_row_find_by_mib_index(dot3StatsTable_mib_index *
-                                              mib_idx);
-
-    extern oid      dot3StatsTable_oid[];
-    extern int      dot3StatsTable_oid_size;
-
-
-#include "dot3StatsTable_interface.h"
-#include "dot3StatsTable_data_access.h"
-#include "dot3StatsTable_data_get.h"
-#include "dot3StatsTable_data_set.h"
-
-    /*
-     * DUMMY markers, ignore
-     *
-     * TODO:099:x: *************************************************************
-     * TODO:199:x: *************************************************************
-     * TODO:299:x: *************************************************************
-     * TODO:399:x: *************************************************************
-     * TODO:499:x: *************************************************************
-     */
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* DOT3STATSTABLE_H */
-/** @} */
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c
deleted file mode 100644
index 5414001..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c
+++ /dev/null
@@ -1,417 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $ 
- *
- * $Id:$
- */
-/*
- * standard Net-SNMP includes 
- */
-
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "dot3StatsTable.h"
-#include "dot3StatsTable_data_access.h"
-
-#if defined(linux)
-#include "ioctl_imp_common.h"
-#endif
-
-/** @ingroup interface
- * @addtogroup data_access data_access: Routines to access data
- *
- * These routines are used to locate the data used to satisfy
- * requests.
- * 
- * @{
- */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table dot3StatsTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * EtherLike-MIB::dot3StatsTable is subid 2 of dot3.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.10.7.2, length: 9
- */
-
-/**
- * initialization for dot3StatsTable data access
- *
- * This function is called during startup to allow you to
- * allocate any resources you need for the data table.
- *
- * @param dot3StatsTable_reg
- *        Pointer to dot3StatsTable_registration
- *
- * @retval MFD_SUCCESS : success.
- * @retval MFD_ERROR   : unrecoverable error.
- */
-int
-dot3StatsTable_init_data(dot3StatsTable_registration * dot3StatsTable_reg)
-{
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_init_data",
-                "called\n"));
-
-    /*
-     * TODO:303:o: Initialize dot3StatsTable data.
-     */
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsTable_init_data */
-
-/**
- * container overview
- *
- */
-
-/**
- * container initialization
- *
- * @param container_ptr_ptr A pointer to a container pointer. If you
- *        create a custom container, use this parameter to return it
- *        to the MFD helper. If set to NULL, the MFD helper will
- *        allocate a container for you.
- * @param  cache A pointer to a cache structure. You can set the timeout
- *         and other cache flags using this pointer.
- *
- *  This function is called at startup to allow you to customize certain
- *  aspects of the access method. For the most part, it is for advanced
- *  users. The default code should suffice for most cases. If no custom
- *  container is allocated, the MFD code will create one for your.
- *
- *  This is also the place to set up cache behavior. The default, to
- *  simply set the cache timeout, will work well with the default
- *  container. If you are using a custom container, you may want to
- *  look at the cache helper documentation to see if there are any
- *  flags you want to set.
- *
- * @remark
- *  This would also be a good place to do any initialization needed
- *  for you data source. For example, opening a connection to another
- *  process that will supply the data, opening a database, etc.
- */
-void
-dot3StatsTable_container_init(netsnmp_container ** container_ptr_ptr,
-                              netsnmp_cache * cache)
-{
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_container_init",
-                "called\n"));
-
-    if (NULL == container_ptr_ptr) {
-        snmp_log(LOG_ERR,
-                 "bad container param to dot3StatsTable_container_init\n");
-        return;
-    }
-
-    /*
-     * For advanced users, you can use a custom container. If you
-     * do not create one, one will be created for you.
-     */
-    *container_ptr_ptr = NULL;
-
-    if (NULL == cache) {
-        snmp_log(LOG_ERR,
-                 "bad cache param to dot3StatsTable_container_init\n");
-        return;
-    }
-
-    /*
-     * TODO:345:A: Set up dot3StatsTable cache properties.
-     *
-     * Also for advanced users, you can set parameters for the
-     * cache. Do not change the magic pointer, as it is used
-     * by the MFD helper. To completely disable caching, set
-     * cache->enabled to 0.
-     */
-    cache->timeout = DOT3STATSTABLE_CACHE_TIMEOUT;      /* seconds */
-}                               /* dot3StatsTable_container_init */
-
-/**
- * container shutdown
- *
- * @param container_ptr A pointer to the container.
- *
- *  This function is called at shutdown to allow you to customize certain
- *  aspects of the access method. For the most part, it is for advanced
- *  users. The default code should suffice for most cases.
- *
- *  This function is called before dot3StatsTable_container_free().
- *
- * @remark
- *  This would also be a good place to do any cleanup needed
- *  for you data source. For example, closing a connection to another
- *  process that supplied the data, closing a database, etc.
- */
-void
-dot3StatsTable_container_shutdown(netsnmp_container * container_ptr)
-{
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_container_shutdown",
-                "called\n"));
-
-    if (NULL == container_ptr) {
-        snmp_log(LOG_ERR,
-                 "bad params to dot3StatsTable_container_shutdown\n");
-        return;
-    }
-
-}                               /* dot3StatsTable_container_shutdown */
-
-/**
- * load initial data
- *
- * TODO:350:M: Implement dot3StatsTable data load
- * This function will also be called by the cache helper to load
- * the container again (after the container free function has been
- * called to free the previous contents).
- *
- * @param container container to which items should be inserted
- *
- * @retval MFD_SUCCESS              : success.
- * @retval MFD_RESOURCE_UNAVAILABLE : Can't access data source
- * @retval MFD_ERROR                : other error.
- *
- *  This function is called to load the index(es) (and data, optionally)
- *  for the every row in the data set.
- *
- * @remark
- *  While loading the data, the only important thing is the indexes.
- *  If access to your data is cheap/fast (e.g. you have a pointer to a
- *  structure in memory), it would make sense to update the data here.
- *  If, however, the accessing the data invovles more work (e.g. parsing
- *  some other existing data, or peforming calculations to derive the data),
- *  then you can limit yourself to setting the indexes and saving any
- *  information you will need later. Then use the saved information in
- *  dot3StatsTable_row_prep() for populating data.
- *
- * @note
- *  If you need consistency between rows (like you want statistics
- *  for each row to be from the same time frame), you should set all
- *  data here.
- *
- */
-
-/*
- *
- * @retval  MFD_SUCCESS success
- * @retval  MFD_ERROR could not get the interface names 
- * @retval  MFD_RESOURCE_UNAVAILABLE failed to allocate memory
- * @retval  -2 could not open a socket
- */
-
-
-int
-dot3StatsTable_container_load(netsnmp_container * container)
-{
-    dot3StatsTable_rowreq_ctx *rowreq_ctx;
-    size_t          count = 0;
-    int             fd;
-#if defined(linux)
-    long            dot3StatsIndex;
-    int             rc = 0, retval = 0;
-    struct ifname *list_head = NULL, *p = NULL;
-#endif
-    
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_container_load",
-                "called\n"));
-      
-    /*
-     * TODO:352:M: |   |-> set indexes in new dot3StatsTable rowreq context.
-     * data context will be set from the param (unless NULL,
-     * in which case a new data context will be allocated)
-     */
-    
-    /*
-     * temporary storage for index values
-     */
-
-    /*
-     * dot3StatsIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/A/w/e/R/d/H
-     */
-
-
-
-    /*
-     * create socket for ioctls
-     */
-    
-    fd = socket(AF_INET, SOCK_DGRAM, 0);
-    if(fd < 0) {
-        snmp_log(LOG_ERR, "could not create socket\n");
-        return -2;
-    }
-
-    /*
-     * get the interface names of the devices present in the system, in case of failure retval suggests the reson for failure
-     * and list_head contains null
-     */
-
-#if defined(linux)
-    list_head = dot3stats_interface_name_list_get (list_head, &retval);
-
-    if (!list_head) {
-        snmp_log (LOG_ERR, "access:dot3StatsTable, error getting the interface names present in the system\n");
-        DEBUGMSGTL(("access:dot3StatsTable", "error getting the interface names present in the system"));
-        close(fd);
-        return MFD_ERROR;
-    }
-    
-    /*
-     * Walk over the list of interface names present in the system and retreive the statistics 
-     */
-
-    for (p = list_head; p; p = p->ifn_next) {
-        DEBUGMSGTL(("access:dot3StatsTable", "processing '%s'\n", p->name));
-
-        /*
-         * get index via ioctl.
-         */
-
-        dot3StatsIndex = (long) dot3stats_interface_ioctl_ifindex_get(-1, p->name);
-
-        /* 
-         *    get the dot3stats contents populated, if the device is not an ethernet device
-         *    the operation will not be supported and an error message will be logged
-         */
-        
-        rowreq_ctx = dot3StatsTable_allocate_rowreq_ctx(NULL);
-        if (NULL == rowreq_ctx) {
-            snmp_log(LOG_ERR, "memory allocation for dot3StatsTable failed\n");
-            close(fd);
-            return MFD_RESOURCE_UNAVAILABLE;
-        }
-        
-        if (MFD_SUCCESS !=
-            dot3StatsTable_indexes_set(rowreq_ctx, dot3StatsIndex)) {
-            snmp_log(LOG_ERR,
-                     "error setting index while loading "
-                     "dot3StatsTable data.\n");
-            dot3StatsTable_release_rowreq_ctx(rowreq_ctx);
-            continue;
-        }
-
-        /*
-         * TODO:352:r: |   |-> populate dot3StatsTable data context.
-         * Populate data context here. (optionally, delay until row prep)
-         */
-        /*
-         * non-TRANSIENT data: no need to copy. set pointer to data 
-         */
-
-        memset (&rowreq_ctx->data, 0, sizeof (rowreq_ctx->data));
-        rc = interface_ioctl_dot3stats_get (rowreq_ctx, fd, p->name);
-
-        if (rc < 0) {
-            DEBUGMSGTL(("access:dot3StatsTable", "error getting the statistics for interface |%s| "
-                        "dot3StatsTable data, operation might not be supported\n", p->name));
-            dot3StatsTable_release_rowreq_ctx(rowreq_ctx);
-            continue;
-        }
-
-        rc = interface_ioctl_dot3stats_duplex_get(rowreq_ctx, fd, p->name);
-        if (rc < 0) {
-            DEBUGMSGTL(("access:dot3StatsTable", "error getting the duplex status for |%s| "
-                        "dot3StatsTable data, operation might not be supported\n", p->name));
-            dot3StatsTable_release_rowreq_ctx(rowreq_ctx);
-            continue;
-        }
-
-	interface_sysclassnet_dot3stats_get(rowreq_ctx, p->name);
-
-	interface_dot3stats_get_errorcounters(rowreq_ctx, p->name);
-
-        /*
-         * insert into table container
-         */
-        rc = CONTAINER_INSERT(container, rowreq_ctx);
-        if (rc < 0) {
-            DEBUGMSGTL(("access:dot3StatsTable", "error inserting |%s|", p->name));
-            dot3StatsTable_release_rowreq_ctx(rowreq_ctx);
-            continue;
-        }
-
-        ++count;
-    }
-
-    close(fd);
-
-    /*
-     * free the interface names list 
-     */
-
-    if ( (dot3stats_interface_name_list_free(list_head)) < 0) {
-        snmp_log(LOG_ERR, "access:dot3StatsTable, error freeing the interface name list \n");
-        DEBUGMSGTL(("access:dot3StatsTable", "error freeing the interface name list\n"));
-        return MFD_ERROR;
-    }
-#endif
-
-    DEBUGMSGT(("verbose:dot3StatsTable:dot3StatsTable_container_load",
-               "inserted %" NETSNMP_PRIz "d records\n", count));
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsTable_container_load */
-
-/**
- * container clean up
- *
- * @param container container with all current items
- *
- *  This optional callback is called prior to all
- *  item's being removed from the container. If you
- *  need to do any processing before that, do it here.
- *
- * @note
- *  The MFD helper will take care of releasing all the row contexts.
- *
- */
-void
-dot3StatsTable_container_free(netsnmp_container * container)
-{
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_container_free",
-                "called\n"));
-
-    /*
-     * TODO:380:M: Free dot3StatsTable container data.
-     */
-}                               /* dot3StatsTable_container_free */
-
-/**
- * prepare row for processing.
- *
- *  When the agent has located the row for a request, this function is
- *  called to prepare the row for processing. If you fully populated
- *  the data context during the index setup phase, you may not need to
- *  do anything.
- *
- * @param rowreq_ctx pointer to a context.
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- */
-int
-dot3StatsTable_row_prep(dot3StatsTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_row_prep",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:390:o: Prepare row for request.
-     * If populating row data was delayed, this is the place to
-     * fill in the row for this request.
-     */
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsTable_row_prep */
-
-/** @} */
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.h b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.h
deleted file mode 100644
index f4b39a9..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $
- *
- * $Id:$
- */
-#ifndef DOT3STATSTABLE_DATA_ACCESS_H
-#define DOT3STATSTABLE_DATA_ACCESS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-    /*
-     *********************************************************************
-     * function declarations
-     */
-
-    /*
-     *********************************************************************
-     * Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table dot3StatsTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * EtherLike-MIB::dot3StatsTable is subid 2 of dot3.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.10.7.2, length: 9
-     */
-
-
-    int             dot3StatsTable_init_data(dot3StatsTable_registration *
-                                             dot3StatsTable_reg);
-
-
-    /*
-     * TODO:180:o: Review dot3StatsTable cache timeout.
-     * The number of seconds before the cache times out
-     */
-#define DOT3STATSTABLE_CACHE_TIMEOUT   60
-
-    void            dot3StatsTable_container_init(netsnmp_container **
-                                                  container_ptr_ptr,
-                                                  netsnmp_cache * cache);
-    void            dot3StatsTable_container_shutdown(netsnmp_container *
-                                                      container_ptr);
-
-    int             dot3StatsTable_container_load(netsnmp_container *
-                                                  container);
-    void            dot3StatsTable_container_free(netsnmp_container *
-                                                  container);
-
-    int             dot3StatsTable_cache_load(netsnmp_container *
-                                              container);
-    void            dot3StatsTable_cache_free(netsnmp_container *
-                                              container);
-
-#define MAX_LINE_SIZE 256
-
-    int             dot3StatsTable_row_prep(dot3StatsTable_rowreq_ctx *
-                                            rowreq_ctx);
-
-    void            interface_sysclassnet_dot3stats_get
-        (dot3StatsTable_rowreq_ctx * rowreq_ctx, const char *name);
-    void            interface_dot3stats_get_errorcounters
-        (dot3StatsTable_rowreq_ctx * rowreq_ctx, const char *name);
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* DOT3STATSTABLE_DATA_ACCESS_H */
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_get.c b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_get.c
deleted file mode 100644
index 42646e0..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_get.c
+++ /dev/null
@@ -1,1450 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 12088 $ of $ 
- *
- * $Id:$
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "dot3StatsTable.h"
-
-
-/** @defgroup data_get data_get: Routines to get data
- *
- * TODO:230:M: Implement dot3StatsTable get routines.
- * TODO:240:M: Implement dot3StatsTable mapping routines (if any).
- *
- * These routine are used to get the value for individual objects. The
- * row context is passed, along with a pointer to the memory where the
- * value should be copied.
- *
- * @{
- */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table dot3StatsTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * EtherLike-MIB::dot3StatsTable is subid 2 of dot3.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.10.7.2, length: 9
- */
-
-/*
- * ---------------------------------------------------------------------
- * * TODO:200:r: Implement dot3StatsTable data context functions.
- */
-
-
-/**
- * set mib index(es)
- *
- * @param tbl_idx mib index structure
- * @param dot3StatsIndex_val
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- *
- * @remark
- *  This convenience function is useful for setting all the MIB index
- *  components with a single function call. It is assume that the C values
- *  have already been mapped from their native/rawformat to the MIB format.
- */
-int
-dot3StatsTable_indexes_set_tbl_idx(dot3StatsTable_mib_index * tbl_idx,
-                                   long dot3StatsIndex_val)
-{
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_indexes_set_tbl_idx", "called\n"));
-
-    /*
-     * dot3StatsIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/A/w/e/R/d/H 
-     */
-    tbl_idx->dot3StatsIndex = dot3StatsIndex_val;
-
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsTable_indexes_set_tbl_idx */
-
-/**
- * @internal
- * set row context indexes
- *
- * @param reqreq_ctx the row context that needs updated indexes
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- *
- * @remark
- *  This function sets the mib indexs, then updates the oid indexs
- *  from the mib index.
- */
-int
-dot3StatsTable_indexes_set(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                           long dot3StatsIndex_val)
-{
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_indexes_set",
-                "called\n"));
-
-    if (MFD_SUCCESS !=
-        dot3StatsTable_indexes_set_tbl_idx(&rowreq_ctx->tbl_idx,
-                                           dot3StatsIndex_val))
-        return MFD_ERROR;
-
-    /*
-     * convert mib index to oid index
-     */
-    rowreq_ctx->oid_idx.len = sizeof(rowreq_ctx->oid_tmp) / sizeof(oid);
-    if (0 != dot3StatsTable_index_to_oid(&rowreq_ctx->oid_idx,
-                                         &rowreq_ctx->tbl_idx)) {
-        return MFD_ERROR;
-    }
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsTable_indexes_set */
-
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsAlignmentErrors
- * dot3StatsAlignmentErrors is subid 2 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.2
- * Description:
-A count of frames received on a particular
-                    interface that are not an integral number of
-                    octets in length and do not pass the FCS check.
-
-                    The count represented by an instance of this
-                    object is incremented when the alignmentError
-                    status is returned by the MAC service to the
-                    LLC (or other MAC user). Received frames for
-                    which multiple error conditions pertain are,
-                    according to the conventions of IEEE 802.3
-                    Layer Management, counted exclusively according
-
-                    to the error status presented to the LLC.
-
-                    This counter does not increment for group
-                    encoding schemes greater than 4 bits per group.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 5 minutes if
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCStatsAlignmentErrors object for 10 Gb/s
-                    or faster interfaces.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsAlignmentErrors data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsAlignmentErrors_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsAlignmentErrors_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                             u_long * dot3StatsAlignmentErrors_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsAlignmentErrors_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsAlignmentErrors_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsAlignmentErrors data.
-     * copy (* dot3StatsAlignmentErrors_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsAlignmentErrors_val_ptr) =
-        rowreq_ctx->data.dot3StatsAlignmentErrors;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsAlignmentErrors_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsFCSErrors
- * dot3StatsFCSErrors is subid 3 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.3
- * Description:
-A count of frames received on a particular
-                    interface that are an integral number of octets
-                    in length but do not pass the FCS check.  This
-                    count does not include frames received with
-                    frame-too-long or frame-too-short error.
-
-                    The count represented by an instance of this
-                    object is incremented when the frameCheckError
-                    status is returned by the MAC service to the
-                    LLC (or other MAC user). Received frames for
-                    which multiple error conditions pertain are,
-                    according to the conventions of IEEE 802.3
-                    Layer Management, counted exclusively according
-                    to the error status presented to the LLC.
-
-                    Note:  Coding errors detected by the physical
-                    layer for speeds above 10 Mb/s will cause the
-                    frame to fail the FCS check.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 5 minutes if
-
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCStatsFCSErrors object for 10 Gb/s or
-                    faster interfaces.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsFCSErrors data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsFCSErrors_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsFCSErrors_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                       u_long * dot3StatsFCSErrors_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsFCSErrors_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsFCSErrors_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsFCSErrors data.
-     * copy (* dot3StatsFCSErrors_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsFCSErrors_val_ptr) = rowreq_ctx->data.dot3StatsFCSErrors;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsFCSErrors_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsSingleCollisionFrames
- * dot3StatsSingleCollisionFrames is subid 4 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.4
- * Description:
-A count of frames that are involved in a single
-                    collision, and are subsequently transmitted
-                    successfully.
-
-                    A frame that is counted by an instance of this
-                    object is also counted by the corresponding
-                    instance of either the ifOutUcastPkts,
-                    ifOutMulticastPkts, or ifOutBroadcastPkts,
-                    and is not counted by the corresponding
-                    instance of the dot3StatsMultipleCollisionFrames
-                    object.
-
-                    This counter does not increment when the
-                    interface is operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsSingleCollisionFrames data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsSingleCollisionFrames_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsSingleCollisionFrames_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                                   u_long *
-                                   dot3StatsSingleCollisionFrames_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsSingleCollisionFrames_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsSingleCollisionFrames_get", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsSingleCollisionFrames data.
-     * copy (* dot3StatsSingleCollisionFrames_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsSingleCollisionFrames_val_ptr) =
-        rowreq_ctx->data.dot3StatsSingleCollisionFrames;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsSingleCollisionFrames_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsMultipleCollisionFrames
- * dot3StatsMultipleCollisionFrames is subid 5 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.5
- * Description:
-A count of frames that are involved in more
-
-                    than one collision and are subsequently
-                    transmitted successfully.
-
-                    A frame that is counted by an instance of this
-                    object is also counted by the corresponding
-                    instance of either the ifOutUcastPkts,
-                    ifOutMulticastPkts, or ifOutBroadcastPkts,
-                    and is not counted by the corresponding
-                    instance of the dot3StatsSingleCollisionFrames
-                    object.
-
-                    This counter does not increment when the
-                    interface is operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsMultipleCollisionFrames data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsMultipleCollisionFrames_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsMultipleCollisionFrames_get(dot3StatsTable_rowreq_ctx *
-                                     rowreq_ctx,
-                                     u_long *
-                                     dot3StatsMultipleCollisionFrames_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsMultipleCollisionFrames_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsMultipleCollisionFrames_get", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsMultipleCollisionFrames data.
-     * copy (* dot3StatsMultipleCollisionFrames_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsMultipleCollisionFrames_val_ptr) =
-        rowreq_ctx->data.dot3StatsMultipleCollisionFrames;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsMultipleCollisionFrames_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsSQETestErrors
- * dot3StatsSQETestErrors is subid 6 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.6
- * Description:
-A count of times that the SQE TEST ERROR
-                    is received on a particular interface. The
-                    SQE TEST ERROR is set in accordance with the
-                    rules for verification of the SQE detection
-                    mechanism in the PLS Carrier Sense Function as
-                    described in IEEE Std. 802.3, 2000 Edition,
-                    section 7.2.4.6.
-
-                    This counter does not increment on interfaces
-                    operating at speeds greater than 10 Mb/s, or on
-                    interfaces operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsSQETestErrors data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsSQETestErrors_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsSQETestErrors_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                           u_long * dot3StatsSQETestErrors_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsSQETestErrors_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsSQETestErrors_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsSQETestErrors data.
-     * copy (* dot3StatsSQETestErrors_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsSQETestErrors_val_ptr) =
-        rowreq_ctx->data.dot3StatsSQETestErrors;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsSQETestErrors_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsDeferredTransmissions
- * dot3StatsDeferredTransmissions is subid 7 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.7
- * Description:
-A count of frames for which the first
-                    transmission attempt on a particular interface
-                    is delayed because the medium is busy.
-
-                    The count represented by an instance of this
-                    object does not include frames involved in
-                    collisions.
-
-                    This counter does not increment when the
-                    interface is operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsDeferredTransmissions data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsDeferredTransmissions_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsDeferredTransmissions_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                                   u_long *
-                                   dot3StatsDeferredTransmissions_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsDeferredTransmissions_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsDeferredTransmissions_get", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsDeferredTransmissions data.
-     * copy (* dot3StatsDeferredTransmissions_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsDeferredTransmissions_val_ptr) =
-        rowreq_ctx->data.dot3StatsDeferredTransmissions;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsDeferredTransmissions_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsLateCollisions
- * dot3StatsLateCollisions is subid 8 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.8
- * Description:
-The number of times that a collision is
-                    detected on a particular interface later than
-                    one slotTime into the transmission of a packet.
-
-                    A (late) collision included in a count
-                    represented by an instance of this object is
-                    also considered as a (generic) collision for
-                    purposes of other collision-related
-                    statistics.
-
-                    This counter does not increment when the
-                    interface is operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsLateCollisions data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsLateCollisions_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsLateCollisions_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                            u_long * dot3StatsLateCollisions_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsLateCollisions_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsLateCollisions_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsLateCollisions data.
-     * copy (* dot3StatsLateCollisions_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsLateCollisions_val_ptr) =
-        rowreq_ctx->data.dot3StatsLateCollisions;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsLateCollisions_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsExcessiveCollisions
- * dot3StatsExcessiveCollisions is subid 9 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.9
- * Description:
-A count of frames for which transmission on a
-                    particular interface fails due to excessive
-                    collisions.
-
-                    This counter does not increment when the
-                    interface is operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsExcessiveCollisions data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsExcessiveCollisions_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsExcessiveCollisions_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                                 u_long *
-                                 dot3StatsExcessiveCollisions_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsExcessiveCollisions_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsExcessiveCollisions_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsExcessiveCollisions data.
-     * copy (* dot3StatsExcessiveCollisions_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsExcessiveCollisions_val_ptr) =
-        rowreq_ctx->data.dot3StatsExcessiveCollisions;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsExcessiveCollisions_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsInternalMacTransmitErrors
- * dot3StatsInternalMacTransmitErrors is subid 10 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.10
- * Description:
-A count of frames for which transmission on a
-                    particular interface fails due to an internal
-                    MAC sublayer transmit error. A frame is only
-                    counted by an instance of this object if it is
-                    not counted by the corresponding instance of
-                    either the dot3StatsLateCollisions object, the
-                    dot3StatsExcessiveCollisions object, or the
-                    dot3StatsCarrierSenseErrors object.
-
-                    The precise meaning of the count represented by
-                    an instance of this object is implementation-
-                    specific.  In particular, an instance of this
-                    object may represent a count of transmission
-                    errors on a particular interface that are not
-                    otherwise counted.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 5 minutes if
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCStatsInternalMacTransmitErrors object for
-                    10 Gb/s or faster interfaces.
-
-                    Discontinuities in the value of this counter can
-
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsInternalMacTransmitErrors data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsInternalMacTransmitErrors_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsInternalMacTransmitErrors_get(dot3StatsTable_rowreq_ctx *
-                                       rowreq_ctx,
-                                       u_long *
-                                       dot3StatsInternalMacTransmitErrors_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsInternalMacTransmitErrors_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsInternalMacTransmitErrors_get", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsInternalMacTransmitErrors data.
-     * copy (* dot3StatsInternalMacTransmitErrors_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsInternalMacTransmitErrors_val_ptr) =
-        rowreq_ctx->data.dot3StatsInternalMacTransmitErrors;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsInternalMacTransmitErrors_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsCarrierSenseErrors
- * dot3StatsCarrierSenseErrors is subid 11 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.11
- * Description:
-The number of times that the carrier sense
-                    condition was lost or never asserted when
-                    attempting to transmit a frame on a particular
-                    interface.
-
-                    The count represented by an instance of this
-                    object is incremented at most once per
-                    transmission attempt, even if the carrier sense
-                    condition fluctuates during a transmission
-                    attempt.
-
-                    This counter does not increment when the
-                    interface is operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsCarrierSenseErrors data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsCarrierSenseErrors_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsCarrierSenseErrors_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                                u_long *
-                                dot3StatsCarrierSenseErrors_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsCarrierSenseErrors_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsCarrierSenseErrors_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsCarrierSenseErrors data.
-     * copy (* dot3StatsCarrierSenseErrors_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsCarrierSenseErrors_val_ptr) =
-        rowreq_ctx->data.dot3StatsCarrierSenseErrors;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsCarrierSenseErrors_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsFrameTooLongs
- * dot3StatsFrameTooLongs is subid 13 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.13
- * Description:
-A count of frames received on a particular
-                    interface that exceed the maximum permitted
-                    frame size.
-
-                    The count represented by an instance of this
-                    object is incremented when the frameTooLong
-                    status is returned by the MAC service to the
-                    LLC (or other MAC user). Received frames for
-                    which multiple error conditions pertain are,
-                    according to the conventions of IEEE 802.3
-                    Layer Management, counted exclusively according
-                    to the error status presented to the LLC.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 80 minutes if
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCStatsFrameTooLongs object for 10 Gb/s
-                    or faster interfaces.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsFrameTooLongs data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsFrameTooLongs_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsFrameTooLongs_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                           u_long * dot3StatsFrameTooLongs_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsFrameTooLongs_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsFrameTooLongs_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsFrameTooLongs data.
-     * copy (* dot3StatsFrameTooLongs_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsFrameTooLongs_val_ptr) =
-        rowreq_ctx->data.dot3StatsFrameTooLongs;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsFrameTooLongs_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsInternalMacReceiveErrors
- * dot3StatsInternalMacReceiveErrors is subid 16 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.16
- * Description:
-A count of frames for which reception on a
-                    particular interface fails due to an internal
-                    MAC sublayer receive error. A frame is only
-                    counted by an instance of this object if it is
-                    not counted by the corresponding instance of
-                    either the dot3StatsFrameTooLongs object, the
-                    dot3StatsAlignmentErrors object, or the
-                    dot3StatsFCSErrors object.
-
-                    The precise meaning of the count represented by
-                    an instance of this object is implementation-
-                    specific.  In particular, an instance of this
-                    object may represent a count of receive errors
-                    on a particular interface that are not
-                    otherwise counted.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 5 minutes if
-
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCStatsInternalMacReceiveErrors object for
-                    10 Gb/s or faster interfaces.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsInternalMacReceiveErrors data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsInternalMacReceiveErrors_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsInternalMacReceiveErrors_get(dot3StatsTable_rowreq_ctx *
-                                      rowreq_ctx,
-                                      u_long *
-                                      dot3StatsInternalMacReceiveErrors_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsInternalMacReceiveErrors_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsInternalMacReceiveErrors_get", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsInternalMacReceiveErrors data.
-     * copy (* dot3StatsInternalMacReceiveErrors_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsInternalMacReceiveErrors_val_ptr) =
-        rowreq_ctx->data.dot3StatsInternalMacReceiveErrors;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsInternalMacReceiveErrors_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsEtherChipSet
- * dot3StatsEtherChipSet is subid 17 of dot3StatsEntry.
- * Its status is Deprecated, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.17
- * Description:
-******** THIS OBJECT IS DEPRECATED ********
-
-                    This object contains an OBJECT IDENTIFIER
-                    which identifies the chipset used to
-                    realize the interface. Ethernet-like
-                    interfaces are typically built out of
-                    several different chips. The MIB implementor
-                    is presented with a decision of which chip
-                    to identify via this object. The implementor
-                    should identify the chip which is usually
-                    called the Medium Access Control chip.
-                    If no such chip is easily identifiable,
-                    the implementor should identify the chip
-                    which actually gathers the transmit
-                    and receive statistics and error
-                    indications. This would allow a
-                    manager station to correlate the
-                    statistics and the chip generating
-                    them, giving it the ability to take
-                    into account any known anomalies
-                    in the chip.
-
-                    This object has been deprecated.  Implementation
-                    feedback indicates that it is of limited use for
-                    debugging network problems in the field, and
-                    the administrative overhead involved in
-                    maintaining a registry of chipset OIDs is not
-                    justified.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is OBJECTID (based on perltype OBJECTID)
- * The net-snmp type is ASN_OBJECT_ID. The C type decl is oid (oid)
- * This data type requires a length.
- */
-/**
- * Extract the current value of the dot3StatsEtherChipSet data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsEtherChipSet_val_ptr_ptr
- *        Pointer to storage for a oid variable
- * @param dot3StatsEtherChipSet_val_ptr_len_ptr
- *        Pointer to a size_t. On entry, it will contain the size (in bytes)
- *        pointed to by dot3StatsEtherChipSet.
- *        On exit, this value should contain the data size (in bytes).
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
-*
- * @note If you need more than (*dot3StatsEtherChipSet_val_ptr_len_ptr) bytes of memory,
- *       allocate it using malloc() and update dot3StatsEtherChipSet_val_ptr_ptr.
- *       <b>DO NOT</b> free the previous pointer.
- *       The MFD helper will release the memory you allocate.
- *
- * @remark If you call this function yourself, you are responsible
- *         for checking if the pointer changed, and freeing any
- *         previously allocated memory. (Not necessary if you pass
- *         in a pointer to static memory, obviously.)
- */
-int
-dot3StatsEtherChipSet_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                          oid ** dot3StatsEtherChipSet_val_ptr_ptr,
-                          size_t *dot3StatsEtherChipSet_val_ptr_len_ptr)
-{
-   /** we should have a non-NULL pointer and enough storage */
-    netsnmp_assert((NULL != dot3StatsEtherChipSet_val_ptr_ptr)
-                   && (NULL != *dot3StatsEtherChipSet_val_ptr_ptr));
-    netsnmp_assert(NULL != dot3StatsEtherChipSet_val_ptr_len_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsEtherChipSet_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsEtherChipSet data.
-     * copy (* dot3StatsEtherChipSet_val_ptr_ptr ) data and (* dot3StatsEtherChipSet_val_ptr_len_ptr ) from rowreq_ctx->data
-     */
-    /*
-     * make sure there is enough space for dot3StatsEtherChipSet data
-     */
-    if ((NULL == (*dot3StatsEtherChipSet_val_ptr_ptr)) ||
-        ((*dot3StatsEtherChipSet_val_ptr_len_ptr) <
-         (rowreq_ctx->data.dot3StatsEtherChipSet_len *
-          sizeof(rowreq_ctx->data.dot3StatsEtherChipSet[0])))) {
-        /*
-         * allocate space for dot3StatsEtherChipSet data
-         */
-        (*dot3StatsEtherChipSet_val_ptr_ptr) =
-            malloc(rowreq_ctx->data.dot3StatsEtherChipSet_len *
-                   sizeof(rowreq_ctx->data.dot3StatsEtherChipSet[0]));
-        if (NULL == (*dot3StatsEtherChipSet_val_ptr_ptr)) {
-            snmp_log(LOG_ERR, "could not allocate memory\n");
-            return MFD_ERROR;
-        }
-    }
-    (*dot3StatsEtherChipSet_val_ptr_len_ptr) =
-        rowreq_ctx->data.dot3StatsEtherChipSet_len *
-        sizeof(rowreq_ctx->data.dot3StatsEtherChipSet[0]);
-    memcpy((*dot3StatsEtherChipSet_val_ptr_ptr),
-           rowreq_ctx->data.dot3StatsEtherChipSet,
-           rowreq_ctx->data.dot3StatsEtherChipSet_len *
-           sizeof(rowreq_ctx->data.dot3StatsEtherChipSet[0]));
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsEtherChipSet_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsSymbolErrors
- * dot3StatsSymbolErrors is subid 18 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.18
- * Description:
-For an interface operating at 100 Mb/s, the
-                    number of times there was an invalid data symbol
-                    when a valid carrier was present.
-
-                    For an interface operating in half-duplex mode
-                    at 1000 Mb/s, the number of times the receiving
-                    media is non-idle (a carrier event) for a period
-                    of time equal to or greater than slotTime, and
-                    during which there was at least one occurrence
-                    of an event that causes the PHY to indicate
-                    'Data reception error' or 'carrier extend error'
-                    on the GMII.
-
-                    For an interface operating in full-duplex mode
-                    at 1000 Mb/s, the number of times the receiving
-                    media is non-idle (a carrier event) for a period
-                    of time equal to or greater than minFrameSize,
-                    and during which there was at least one
-                    occurrence of an event that causes the PHY to
-                    indicate 'Data reception error' on the GMII.
-
-                    For an interface operating at 10 Gb/s, the
-                    number of times the receiving media is non-idle
-                    (a carrier event) for a period of time equal to
-                    or greater than minFrameSize, and during which
-                    there was at least one occurrence of an event
-                    that causes the PHY to indicate 'Receive Error'
-                    on the XGMII.
-
-                    The count represented by an instance of this
-                    object is incremented at most once per carrier
-                    event, even if multiple symbol errors occur
-                    during the carrier event.  This count does
-                    not increment if a collision is present.
-
-                    This counter does not increment when the
-                    interface is operating at 10 Mb/s.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 5 minutes if
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCStatsSymbolErrors object for 10 Gb/s
-                    or faster interfaces.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsSymbolErrors data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsSymbolErrors_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsSymbolErrors_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                          u_long * dot3StatsSymbolErrors_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsSymbolErrors_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsSymbolErrors_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsSymbolErrors data.
-     * copy (* dot3StatsSymbolErrors_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsSymbolErrors_val_ptr) =
-        rowreq_ctx->data.dot3StatsSymbolErrors;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsSymbolErrors_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsDuplexStatus
- * dot3StatsDuplexStatus is subid 19 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.19
- * Description:
-The current mode of operation of the MAC
-                    entity.  'unknown' indicates that the current
-                    duplex mode could not be determined.
-
-                    Management control of the duplex mode is
-                    accomplished through the MAU MIB.  When
-                    an interface does not support autonegotiation,
-                    or when autonegotiation is not enabled, the
-                    duplex mode is controlled using
-                    ifMauDefaultType.  When autonegotiation is
-                    supported and enabled, duplex mode is controlled
-                    using ifMauAutoNegAdvertisedBits.  In either
-                    case, the currently operating duplex mode is
-                    reflected both in this object and in ifMauType.
-
-                    Note that this object provides redundant
-                    information with ifMauType.  Normally, redundant
-                    objects are discouraged.  However, in this
-                    instance, it allows a management application to
-                    determine the duplex status of an interface
-                    without having to know every possible value of
-                    ifMauType.  This was felt to be sufficiently
-                    valuable to justify the redundancy.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  1      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- * Enum range: 3/8. Values:  unknown(1), halfDuplex(2), fullDuplex(3)
- *
- * Its syntax is INTEGER (based on perltype INTEGER)
- * The net-snmp type is ASN_INTEGER. The C type decl is long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsDuplexStatus data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsDuplexStatus_val_ptr
- *        Pointer to storage for a long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsDuplexStatus_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                          u_long * dot3StatsDuplexStatus_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsDuplexStatus_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsDuplexStatus_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsDuplexStatus data.
-     * copy (* dot3StatsDuplexStatus_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsDuplexStatus_val_ptr) =
-        rowreq_ctx->data.dot3StatsDuplexStatus;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsDuplexStatus_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsRateControlAbility
- * dot3StatsRateControlAbility is subid 20 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.20
- * Description:
-'true' for interfaces operating at speeds above
-                    1000 Mb/s that support Rate Control through
-                    lowering the average data rate of the MAC
-                    sublayer, with frame granularity, and 'false'
-                    otherwise.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  1      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- * Enum range: 2/8. Values:  true(1), false(2)
- *
- * Its syntax is TruthValue (based on perltype INTEGER)
- * The net-snmp type is ASN_INTEGER. The C type decl is long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsRateControlAbility data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsRateControlAbility_val_ptr
- *        Pointer to storage for a long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsRateControlAbility_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                                u_long *
-                                dot3StatsRateControlAbility_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsRateControlAbility_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsRateControlAbility_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsRateControlAbility data.
-     * copy (* dot3StatsRateControlAbility_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsRateControlAbility_val_ptr) =
-        rowreq_ctx->data.dot3StatsRateControlAbility;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsRateControlAbility_get */
-
-/*---------------------------------------------------------------------
- * EtherLike-MIB::dot3StatsEntry.dot3StatsRateControlStatus
- * dot3StatsRateControlStatus is subid 21 of dot3StatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.10.7.2.1.21
- * Description:
-The current Rate Control mode of operation of
-                    the MAC sublayer of this interface.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  1      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- * Enum range: 3/8. Values:  rateControlOff(1), rateControlOn(2), unknown(3)
- *
- * Its syntax is INTEGER (based on perltype INTEGER)
- * The net-snmp type is ASN_INTEGER. The C type decl is long (u_long)
- */
-/**
- * Extract the current value of the dot3StatsRateControlStatus data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param dot3StatsRateControlStatus_val_ptr
- *        Pointer to storage for a long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-dot3StatsRateControlStatus_get(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                               u_long * dot3StatsRateControlStatus_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != dot3StatsRateControlStatus_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsRateControlStatus_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the dot3StatsRateControlStatus data.
-     * copy (* dot3StatsRateControlStatus_val_ptr ) from rowreq_ctx->data
-     */
-    (*dot3StatsRateControlStatus_val_ptr) =
-        rowreq_ctx->data.dot3StatsRateControlStatus;
-
-    return MFD_SUCCESS;
-}                               /* dot3StatsRateControlStatus_get */
-
-
-
-/** @} */
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_get.h b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_get.h
deleted file mode 100644
index e543cd3..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_get.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 12088 $ of $
- *
- * $Id:$
- *
- * @file dot3StatsTable_data_get.h
- *
- * @addtogroup get
- *
- * Prototypes for get functions
- *
- * @{
- */
-#ifndef DOT3STATSTABLE_DATA_GET_H
-#define DOT3STATSTABLE_DATA_GET_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    /*
-     *********************************************************************
-     * GET function declarations
-     */
-
-    /*
-     *********************************************************************
-     * GET Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table dot3StatsTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * EtherLike-MIB::dot3StatsTable is subid 2 of dot3.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.10.7.2, length: 9
-     */
-    /*
-     * indexes
-     */
-
-    int             dot3StatsAlignmentErrors_get(dot3StatsTable_rowreq_ctx
-                                                 * rowreq_ctx,
-                                                 u_long *
-                                                 dot3StatsAlignmentErrors_val_ptr);
-    int             dot3StatsFCSErrors_get(dot3StatsTable_rowreq_ctx *
-                                           rowreq_ctx,
-                                           u_long *
-                                           dot3StatsFCSErrors_val_ptr);
-    int            
-        dot3StatsSingleCollisionFrames_get(dot3StatsTable_rowreq_ctx *
-                                           rowreq_ctx,
-                                           u_long *
-                                           dot3StatsSingleCollisionFrames_val_ptr);
-    int            
-        dot3StatsMultipleCollisionFrames_get(dot3StatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             u_long *
-                                             dot3StatsMultipleCollisionFrames_val_ptr);
-    int             dot3StatsSQETestErrors_get(dot3StatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               u_long *
-                                               dot3StatsSQETestErrors_val_ptr);
-    int            
-        dot3StatsDeferredTransmissions_get(dot3StatsTable_rowreq_ctx *
-                                           rowreq_ctx,
-                                           u_long *
-                                           dot3StatsDeferredTransmissions_val_ptr);
-    int             dot3StatsLateCollisions_get(dot3StatsTable_rowreq_ctx *
-                                                rowreq_ctx,
-                                                u_long *
-                                                dot3StatsLateCollisions_val_ptr);
-    int            
-        dot3StatsExcessiveCollisions_get(dot3StatsTable_rowreq_ctx *
-                                         rowreq_ctx,
-                                         u_long *
-                                         dot3StatsExcessiveCollisions_val_ptr);
-    int            
-        dot3StatsInternalMacTransmitErrors_get(dot3StatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               u_long *
-                                               dot3StatsInternalMacTransmitErrors_val_ptr);
-    int            
-        dot3StatsCarrierSenseErrors_get(dot3StatsTable_rowreq_ctx *
-                                        rowreq_ctx,
-                                        u_long *
-                                        dot3StatsCarrierSenseErrors_val_ptr);
-    int             dot3StatsFrameTooLongs_get(dot3StatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               u_long *
-                                               dot3StatsFrameTooLongs_val_ptr);
-    int            
-        dot3StatsInternalMacReceiveErrors_get(dot3StatsTable_rowreq_ctx *
-                                              rowreq_ctx,
-                                              u_long *
-                                              dot3StatsInternalMacReceiveErrors_val_ptr);
-    int             dot3StatsEtherChipSet_get(dot3StatsTable_rowreq_ctx *
-                                              rowreq_ctx,
-                                              oid **
-                                              dot3StatsEtherChipSet_val_ptr_ptr,
-                                              size_t
-                                              *dot3StatsEtherChipSet_val_ptr_len_ptr);
-    int             dot3StatsSymbolErrors_get(dot3StatsTable_rowreq_ctx *
-                                              rowreq_ctx,
-                                              u_long *
-                                              dot3StatsSymbolErrors_val_ptr);
-    int             dot3StatsDuplexStatus_get(dot3StatsTable_rowreq_ctx *
-                                              rowreq_ctx,
-                                              u_long *
-                                              dot3StatsDuplexStatus_val_ptr);
-    int            
-        dot3StatsRateControlAbility_get(dot3StatsTable_rowreq_ctx *
-                                        rowreq_ctx,
-                                        u_long *
-                                        dot3StatsRateControlAbility_val_ptr);
-    int            
-        dot3StatsRateControlStatus_get(dot3StatsTable_rowreq_ctx *
-                                       rowreq_ctx,
-                                       u_long *
-                                       dot3StatsRateControlStatus_val_ptr);
-
-
-    int            
-        dot3StatsTable_indexes_set_tbl_idx(dot3StatsTable_mib_index *
-                                           tbl_idx,
-                                           long dot3StatsIndex_val);
-    int             dot3StatsTable_indexes_set(dot3StatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               long dot3StatsIndex_val);
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* DOT3STATSTABLE_DATA_GET_H */
-/** @} */
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_set.c b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_set.c
deleted file mode 100644
index 44c2da2..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_set.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 12077 $ of $
- *
- * $Id:$
- *
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "dot3StatsTable.h"
-
-
-/** @defgroup data_set data_set: Routines to set data
- *
- * These routines are used to set the value for individual objects. The
- * row context is passed, along with the new value.
- * 
- * @{
- */
-/** @} */
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_set.h b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_set.h
deleted file mode 100644
index 6a03356..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_set.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 12077 $ of $ 
- *
- * $Id:$
- */
-#ifndef DOT3STATSTABLE_DATA_SET_H
-#define DOT3STATSTABLE_DATA_SET_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    /*
-     *********************************************************************
-     * SET function declarations
-     */
-
-    /*
-     *********************************************************************
-     * SET Table declarations
-     */
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* DOT3STATSTABLE_DATA_SET_H */
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_enums.h b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_enums.h
deleted file mode 100644
index 88a72e4..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_enums.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : generic-table-enums.m2c 12526 2005-07-15 22:41:16Z rstory $
- *
- * $Id:$
- */
-#ifndef DOT3STATSTABLE_ENUMS_H
-#define DOT3STATSTABLE_ENUMS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    /*
-     * NOTES on enums
-     * ==============
-     *
-     * Value Mapping
-     * -------------
-     * If the values for your data type don't exactly match the
-     * possible values defined by the mib, you should map them
-     * below. For example, a boolean flag (1/0) is usually represented
-     * as a TruthValue in a MIB, which maps to the values (1/2).
-     *
-     */
-/*************************************************************************
- *************************************************************************
- *
- * enum definitions for table dot3StatsTable
- *
- *************************************************************************
- *************************************************************************/
-
-/*************************************************************
- * constants for enums for the MIB node
- * dot3StatsDuplexStatus (INTEGER / ASN_INTEGER)
- *
- * since a Textual Convention may be referenced more than once in a
- * MIB, protect againt redefinitions of the enum values.
- */
-#ifndef DOT3STATSDUPLEXSTATUS_ENUMS
-#define DOT3STATSDUPLEXSTATUS_ENUMS
-
-#define DOT3STATSDUPLEXSTATUS_UNKNOWN  1
-#define DOT3STATSDUPLEXSTATUS_HALFDUPLEX  2
-#define DOT3STATSDUPLEXSTATUS_FULLDUPLEX  3
-
-#endif                          /* DOT3STATSDUPLEXSTATUS_ENUMS */
-
-
-/*************************************************************
- * constants for enums for the MIB node
- * dot3StatsRateControlAbility (TruthValue / ASN_INTEGER)
- *
- * since a Textual Convention may be referenced more than once in a
- * MIB, protect againt redefinitions of the enum values.
- */
-#ifndef TRUTHVALUE_ENUMS
-#define TRUTHVALUE_ENUMS
-
-#define TRUTHVALUE_TRUE  1
-#define TRUTHVALUE_FALSE  2
-
-#endif                          /* TRUTHVALUE_ENUMS */
-
-
-/*************************************************************
- * constants for enums for the MIB node
- * dot3StatsRateControlStatus (INTEGER / ASN_INTEGER)
- *
- * since a Textual Convention may be referenced more than once in a
- * MIB, protect againt redefinitions of the enum values.
- */
-#ifndef DOT3STATSRATECONTROLSTATUS_ENUMS
-#define DOT3STATSRATECONTROLSTATUS_ENUMS
-
-#define DOT3STATSRATECONTROLSTATUS_RATECONTROLOFF  1
-#define DOT3STATSRATECONTROLSTATUS_RATECONTROLON  2
-#define DOT3STATSRATECONTROLSTATUS_UNKNOWN  3
-
-#endif                          /* DOT3STATSRATECONTROLSTATUS_ENUMS */
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* DOT3STATSTABLE_ENUMS_H */
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.c b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.c
deleted file mode 100644
index e0741f3..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.c
+++ /dev/null
@@ -1,1187 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 15899 $ of $ 
- *
- * $Id:$
- */
-/*
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- * ***                                                               ***
- * ***  NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE  ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THIS FILE DOES NOT CONTAIN ANY USER EDITABLE CODE.      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THE GENERATED CODE IS INTERNAL IMPLEMENTATION, AND      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***    IS SUBJECT TO CHANGE WITHOUT WARNING IN FUTURE RELEASES.   ***
- * ***                                                               ***
- * ***                                                               ***
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- */
-
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "dot3StatsTable.h"
-
-
-#include <net-snmp/agent/table_container.h>
-#include <net-snmp/library/container.h>
-
-#include "dot3StatsTable_interface.h"
-
-#include <ctype.h>
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(check_all_requests_error)
-
-/**********************************************************************
- **********************************************************************
- ***
- *** Table dot3StatsTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * EtherLike-MIB::dot3StatsTable is subid 2 of dot3.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.10.7.2, length: 9
- */
-typedef struct dot3StatsTable_interface_ctx_s {
-
-    netsnmp_container *container;
-    netsnmp_cache  *cache;
-
-    dot3StatsTable_registration *user_ctx;
-
-    netsnmp_table_registration_info tbl_info;
-
-    netsnmp_baby_steps_access_methods access_multiplexer;
-
-} dot3StatsTable_interface_ctx;
-
-static dot3StatsTable_interface_ctx dot3StatsTable_if_ctx;
-
-static void     _dot3StatsTable_container_init(dot3StatsTable_interface_ctx
-                                               * if_ctx);
-static void    
-_dot3StatsTable_container_shutdown(dot3StatsTable_interface_ctx * if_ctx);
-
-
-netsnmp_container *
-dot3StatsTable_container_get(void)
-{
-    return dot3StatsTable_if_ctx.container;
-}
-
-dot3StatsTable_registration *
-dot3StatsTable_registration_get(void)
-{
-    return dot3StatsTable_if_ctx.user_ctx;
-}
-
-dot3StatsTable_registration *
-dot3StatsTable_registration_set(dot3StatsTable_registration * newreg)
-{
-    dot3StatsTable_registration *old = dot3StatsTable_if_ctx.user_ctx;
-    dot3StatsTable_if_ctx.user_ctx = newreg;
-    return old;
-}
-
-int
-dot3StatsTable_container_size(void)
-{
-    return CONTAINER_SIZE(dot3StatsTable_if_ctx.container);
-}
-
-/*
- * mfd multiplexer modes
- */
-static Netsnmp_Node_Handler _mfd_dot3StatsTable_pre_request;
-static Netsnmp_Node_Handler _mfd_dot3StatsTable_post_request;
-static Netsnmp_Node_Handler _mfd_dot3StatsTable_object_lookup;
-static Netsnmp_Node_Handler _mfd_dot3StatsTable_get_values;
-/**
- * @internal
- * Initialize the table dot3StatsTable 
- *    (Define its contents and how it's structured)
- */
-void
-_dot3StatsTable_initialize_interface(dot3StatsTable_registration * reg_ptr,
-                                     u_long flags)
-{
-    netsnmp_baby_steps_access_methods *access_multiplexer =
-        &dot3StatsTable_if_ctx.access_multiplexer;
-    netsnmp_table_registration_info *tbl_info =
-        &dot3StatsTable_if_ctx.tbl_info;
-    netsnmp_handler_registration *reginfo;
-    netsnmp_mib_handler *handler;
-    int             mfd_modes = 0;
-
-    DEBUGMSGTL(("internal:dot3StatsTable:_dot3StatsTable_initialize_interface", "called\n"));
-
-
-    /*************************************************
-     *
-     * save interface context for dot3StatsTable
-     */
-    /*
-     * Setting up the table's definition
-     */
-    netsnmp_table_helper_add_indexes(tbl_info, ASN_INTEGER,
-                                               /** index: dot3StatsIndex */
-                                     0);
-
-    /*
-     * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
-     */
-    tbl_info->min_column = DOT3STATSTABLE_MIN_COL;
-    tbl_info->max_column = DOT3STATSTABLE_MAX_COL;
-
-    /*
-     * save users context
-     */
-    dot3StatsTable_if_ctx.user_ctx = reg_ptr;
-
-    /*
-     * call data access initialization code
-     */
-    dot3StatsTable_init_data(reg_ptr);
-
-    /*
-     * set up the container
-     */
-    _dot3StatsTable_container_init(&dot3StatsTable_if_ctx);
-    if (NULL == dot3StatsTable_if_ctx.container) {
-        snmp_log(LOG_ERR,
-                 "could not initialize container for dot3StatsTable\n");
-        return;
-    }
-
-    /*
-     * access_multiplexer: REQUIRED wrapper for get request handling
-     */
-    access_multiplexer->object_lookup = _mfd_dot3StatsTable_object_lookup;
-    access_multiplexer->get_values = _mfd_dot3StatsTable_get_values;
-
-    /*
-     * no wrappers yet
-     */
-    access_multiplexer->pre_request = _mfd_dot3StatsTable_pre_request;
-    access_multiplexer->post_request = _mfd_dot3StatsTable_post_request;
-
-
-    /*************************************************
-     *
-     * Create a registration, save our reg data, register table.
-     */
-    DEBUGMSGTL(("dot3StatsTable:init_dot3StatsTable",
-                "Registering dot3StatsTable as a mibs-for-dummies table.\n"));
-    handler =
-        netsnmp_baby_steps_access_multiplexer_get(access_multiplexer);
-    reginfo =
-        netsnmp_handler_registration_create("dot3StatsTable", handler,
-                                            dot3StatsTable_oid,
-                                            dot3StatsTable_oid_size,
-                                            HANDLER_CAN_BABY_STEP |
-                                            HANDLER_CAN_RONLY);
-    if (NULL == reginfo) {
-        snmp_log(LOG_ERR, "error registering table dot3StatsTable\n");
-        return;
-    }
-    reginfo->my_reg_void = &dot3StatsTable_if_ctx;
-
-    /*************************************************
-     *
-     * set up baby steps handler, create it and inject it
-     */
-    if (access_multiplexer->object_lookup)
-        mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->set_values)
-        mfd_modes |= BABY_STEP_SET_VALUES;
-    if (access_multiplexer->irreversible_commit)
-        mfd_modes |= BABY_STEP_IRREVERSIBLE_COMMIT;
-    if (access_multiplexer->object_syntax_checks)
-        mfd_modes |= BABY_STEP_CHECK_OBJECT;
-
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-    if (access_multiplexer->undo_setup)
-        mfd_modes |= BABY_STEP_UNDO_SETUP;
-    if (access_multiplexer->undo_cleanup)
-        mfd_modes |= BABY_STEP_UNDO_CLEANUP;
-    if (access_multiplexer->undo_sets)
-        mfd_modes |= BABY_STEP_UNDO_SETS;
-
-    if (access_multiplexer->row_creation)
-        mfd_modes |= BABY_STEP_ROW_CREATE;
-    if (access_multiplexer->consistency_checks)
-        mfd_modes |= BABY_STEP_CHECK_CONSISTENCY;
-    if (access_multiplexer->commit)
-        mfd_modes |= BABY_STEP_COMMIT;
-    if (access_multiplexer->undo_commit)
-        mfd_modes |= BABY_STEP_UNDO_COMMIT;
-
-    handler = netsnmp_baby_steps_handler_get(mfd_modes);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject row_merge helper with prefix rootoid_len + 2 (entry.col)
-     */
-    handler = netsnmp_get_row_merge_handler(reginfo->rootoid_len + 2);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject container_table helper
-     */
-    handler =
-        netsnmp_container_table_handler_get(tbl_info,
-                                            dot3StatsTable_if_ctx.
-                                            container,
-                                            TABLE_CONTAINER_KEY_NETSNMP_INDEX);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject cache helper
-     */
-    if (NULL != dot3StatsTable_if_ctx.cache) {
-        handler = netsnmp_cache_handler_get(dot3StatsTable_if_ctx.cache);
-        netsnmp_inject_handler(reginfo, handler);
-    }
-
-    /*
-     * register table
-     */
-    netsnmp_register_table(reginfo, tbl_info);
-
-}                               /* _dot3StatsTable_initialize_interface */
-
-/**
- * @internal
- * Shutdown the table dot3StatsTable
- */
-void
-_dot3StatsTable_shutdown_interface(dot3StatsTable_registration * reg_ptr)
-{
-    /*
-     * shutdown the container
-     */
-    _dot3StatsTable_container_shutdown(&dot3StatsTable_if_ctx);
-}
-
-void
-dot3StatsTable_valid_columns_set(netsnmp_column_info *vc)
-{
-    dot3StatsTable_if_ctx.tbl_info.valid_columns = vc;
-}                               /* dot3StatsTable_valid_columns_set */
-
-/**
- * @internal
- * convert the index component stored in the context to an oid
- */
-int
-dot3StatsTable_index_to_oid(netsnmp_index * oid_idx,
-                            dot3StatsTable_mib_index * mib_idx)
-{
-    int             err = SNMP_ERR_NOERROR;
-
-    /*
-     * temp storage for parsing indexes
-     */
-    /*
-     * dot3StatsIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/A/w/e/R/d/H
-     */
-    netsnmp_variable_list var_dot3StatsIndex;
-
-    /*
-     * set up varbinds
-     */
-    memset(&var_dot3StatsIndex, 0x00, sizeof(var_dot3StatsIndex));
-    var_dot3StatsIndex.type = ASN_INTEGER;
-
-    /*
-     * chain temp index varbinds together
-     */
-    var_dot3StatsIndex.next_variable = NULL;
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_index_to_oid",
-                "called\n"));
-
-    /*
-     * dot3StatsIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/A/w/e/R/d/H 
-     */
-    snmp_set_var_value(&var_dot3StatsIndex,
-                       (u_char *) & mib_idx->dot3StatsIndex,
-                       sizeof(mib_idx->dot3StatsIndex));
-
-
-    err = build_oid_noalloc(oid_idx->oids, oid_idx->len, &oid_idx->len,
-                            NULL, 0, &var_dot3StatsIndex);
-    if (err)
-        snmp_log(LOG_ERR, "error %d converting index to oid\n", err);
-
-    /*
-     * parsing may have allocated memory. free it.
-     */
-    snmp_reset_var_buffers(&var_dot3StatsIndex);
-
-    return err;
-}                               /* dot3StatsTable_index_to_oid */
-
-/**
- * extract dot3StatsTable indexes from a netsnmp_index
- *
- * @retval SNMP_ERR_NOERROR  : no error
- * @retval SNMP_ERR_GENERR   : error
- */
-int
-dot3StatsTable_index_from_oid(netsnmp_index * oid_idx,
-                              dot3StatsTable_mib_index * mib_idx)
-{
-    int             err = SNMP_ERR_NOERROR;
-
-    /*
-     * temp storage for parsing indexes
-     */
-    /*
-     * dot3StatsIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/A/w/e/R/d/H
-     */
-    netsnmp_variable_list var_dot3StatsIndex;
-
-    /*
-     * set up varbinds
-     */
-    memset(&var_dot3StatsIndex, 0x00, sizeof(var_dot3StatsIndex));
-    var_dot3StatsIndex.type = ASN_INTEGER;
-
-    /*
-     * chain temp index varbinds together
-     */
-    var_dot3StatsIndex.next_variable = NULL;
-
-
-    DEBUGMSGTL(("verbose:dot3StatsTable:dot3StatsTable_index_from_oid",
-                "called\n"));
-
-    /*
-     * parse the oid into the individual index components
-     */
-    err = parse_oid_indexes(oid_idx->oids, oid_idx->len,
-                            &var_dot3StatsIndex);
-    if (err == SNMP_ERR_NOERROR) {
-        /*
-         * copy out values
-         */
-        mib_idx->dot3StatsIndex =
-            *((long *) var_dot3StatsIndex.val.string);
-
-
-    }
-
-    /*
-     * parsing may have allocated memory. free it.
-     */
-    snmp_reset_var_buffers(&var_dot3StatsIndex);
-
-    return err;
-}                               /* dot3StatsTable_index_from_oid */
-
-
-/*
- *********************************************************************
- * @internal
- * allocate resources for a dot3StatsTable_rowreq_ctx
- */
-dot3StatsTable_rowreq_ctx *
-dot3StatsTable_allocate_rowreq_ctx(void *user_init_ctx)
-{
-    dot3StatsTable_rowreq_ctx *rowreq_ctx =
-        SNMP_MALLOC_TYPEDEF(dot3StatsTable_rowreq_ctx);
-
-    DEBUGMSGTL(("internal:dot3StatsTable:dot3StatsTable_allocate_rowreq_ctx", "called\n"));
-
-    if (NULL == rowreq_ctx) {
-        snmp_log(LOG_ERR, "Couldn't allocate memory for a "
-                 "dot3StatsTable_rowreq_ctx.\n");
-        return NULL;
-    }
-
-    rowreq_ctx->oid_idx.oids = rowreq_ctx->oid_tmp;
-
-    rowreq_ctx->dot3StatsTable_data_list = NULL;
-
-    /*
-     * if we allocated data, call init routine
-     */
-    if (!(rowreq_ctx->rowreq_flags & MFD_ROW_DATA_FROM_USER)) {
-        if (SNMPERR_SUCCESS !=
-            dot3StatsTable_rowreq_ctx_init(rowreq_ctx, user_init_ctx)) {
-            dot3StatsTable_release_rowreq_ctx(rowreq_ctx);
-            rowreq_ctx = NULL;
-        }
-    }
-
-    return rowreq_ctx;
-}                               /* dot3StatsTable_allocate_rowreq_ctx */
-
-/*
- * @internal
- * release resources for a dot3StatsTable_rowreq_ctx
- */
-void
-dot3StatsTable_release_rowreq_ctx(dot3StatsTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("internal:dot3StatsTable:dot3StatsTable_release_rowreq_ctx", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    dot3StatsTable_rowreq_ctx_cleanup(rowreq_ctx);
-
-    /*
-     * free index oid pointer
-     */
-    if (rowreq_ctx->oid_idx.oids != rowreq_ctx->oid_tmp)
-        free(rowreq_ctx->oid_idx.oids);
-
-    SNMP_FREE(rowreq_ctx);
-}                               /* dot3StatsTable_release_rowreq_ctx */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_dot3StatsTable_pre_request(netsnmp_mib_handler *handler,
-                                netsnmp_handler_registration *reginfo,
-                                netsnmp_agent_request_info *agtreq_info,
-                                netsnmp_request_info *requests)
-{
-    int             rc;
-
-    DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_pre_request",
-                "called\n"));
-
-    if (1 != netsnmp_row_merge_status_first(reginfo, agtreq_info)) {
-        DEBUGMSGTL(("internal:dot3StatsTable",
-                    "skipping additional pre_request\n"));
-        return SNMP_ERR_NOERROR;
-    }
-
-    rc = dot3StatsTable_pre_request(dot3StatsTable_if_ctx.user_ctx);
-    if (MFD_SUCCESS != rc) {
-        /*
-         * nothing we can do about it but log it
-         */
-        DEBUGMSGTL(("dot3StatsTable", "error %d from "
-                    "dot3StatsTable_pre_request\n", rc));
-        netsnmp_request_set_error_all(requests, SNMP_VALIDATE_ERR(rc));
-    }
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_dot3StatsTable_pre_request */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_dot3StatsTable_post_request(netsnmp_mib_handler *handler,
-                                 netsnmp_handler_registration *reginfo,
-                                 netsnmp_agent_request_info *agtreq_info,
-                                 netsnmp_request_info *requests)
-{
-    dot3StatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-    int             rc, packet_rc;
-
-    DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_post_request",
-                "called\n"));
-
-    /*
-     * release row context, if deleted
-     */
-    if (rowreq_ctx && (rowreq_ctx->rowreq_flags & MFD_ROW_DELETED))
-        dot3StatsTable_release_rowreq_ctx(rowreq_ctx);
-
-    /*
-     * wait for last call before calling user
-     */
-    if (1 != netsnmp_row_merge_status_last(reginfo, agtreq_info)) {
-        DEBUGMSGTL(("internal:dot3StatsTable",
-                    "waiting for last post_request\n"));
-        return SNMP_ERR_NOERROR;
-    }
-
-    packet_rc = netsnmp_check_all_requests_error(agtreq_info->asp, 0);
-    rc = dot3StatsTable_post_request(dot3StatsTable_if_ctx.user_ctx,
-                                     packet_rc);
-    if (MFD_SUCCESS != rc) {
-        /*
-         * nothing we can do about it but log it
-         */
-        DEBUGMSGTL(("dot3StatsTable", "error %d from "
-                    "dot3StatsTable_post_request\n", rc));
-    }
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_dot3StatsTable_post_request */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_dot3StatsTable_object_lookup(netsnmp_mib_handler *handler,
-                                  netsnmp_handler_registration *reginfo,
-                                  netsnmp_agent_request_info *agtreq_info,
-                                  netsnmp_request_info *requests)
-{
-    int             rc = SNMP_ERR_NOERROR;
-    dot3StatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-
-    DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_object_lookup", "called\n"));
-
-    /*
-     * get our context from mfd
-     * dot3StatsTable_interface_ctx *if_ctx =
-     *             (dot3StatsTable_interface_ctx *)reginfo->my_reg_void;
-     */
-
-    if (NULL == rowreq_ctx) {
-        rc = SNMP_ERR_NOCREATION;
-    }
-
-    if (MFD_SUCCESS != rc)
-        netsnmp_request_set_error_all(requests, rc);
-    else
-        dot3StatsTable_row_prep(rowreq_ctx);
-
-    return SNMP_VALIDATE_ERR(rc);
-}                               /* _mfd_dot3StatsTable_object_lookup */
-
-/***********************************************************************
- *
- * GET processing
- *
- ***********************************************************************/
-/*
- * @internal
- * Retrieve the value for a particular column
- */
-NETSNMP_STATIC_INLINE int
-_dot3StatsTable_get_column(dot3StatsTable_rowreq_ctx * rowreq_ctx,
-                           netsnmp_variable_list * var, int column)
-{
-    int             rc = SNMPERR_SUCCESS;
-
-    DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column",
-                "called for %d\n", column));
-
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    switch (column) {
-
-        /*
-         * (INDEX) dot3StatsIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/A/w/e/R/d/H 
-         */
-    case COLUMN_DOT3STATSINDEX:
-        var->type = ASN_INTEGER;
-        var->val_len = sizeof(long);
-        (*var->val.integer) = rowreq_ctx->tbl_idx.dot3StatsIndex;
-        break;
-
-        /*
-         * dot3StatsAlignmentErrors(2)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSALIGNMENTERRORS:
-        if (!
-            (COLUMN_DOT3STATSALIGNMENTERRORS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsAlignmentErrors) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = dot3StatsAlignmentErrors_get(rowreq_ctx,
-                                          (u_long *) var->val.string);
-        break;
-
-        /*
-         * dot3StatsFCSErrors(3)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSFCSERRORS:
-        if (!
-            (COLUMN_DOT3STATSFCSERRORS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsFCSErrors) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = dot3StatsFCSErrors_get(rowreq_ctx,
-                                    (u_long *) var->val.string);
-        break;
-
-        /*
-         * dot3StatsSingleCollisionFrames(4)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSSINGLECOLLISIONFRAMES:
-        if (!
-            (COLUMN_DOT3STATSSINGLECOLLISIONFRAMES_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsSingleCollisionFrames) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = dot3StatsSingleCollisionFrames_get(rowreq_ctx,
-                                                (u_long *) var->val.
-                                                string);
-        break;
-
-        /*
-         * dot3StatsMultipleCollisionFrames(5)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSMULTIPLECOLLISIONFRAMES:
-        if (!
-            (COLUMN_DOT3STATSMULTIPLECOLLISIONFRAMES_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsMultipleCollisionFrames) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = dot3StatsMultipleCollisionFrames_get(rowreq_ctx,
-                                                  (u_long *) var->val.
-                                                  string);
-        break;
-
-        /*
-         * dot3StatsSQETestErrors(6)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSSQETESTERRORS:
-        if (!
-            (COLUMN_DOT3STATSSQETESTERRORS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsSQETestErrors) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = dot3StatsSQETestErrors_get(rowreq_ctx,
-                                        (u_long *) var->val.string);
-        break;
-
-        /*
-         * dot3StatsDeferredTransmissions(7)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSDEFERREDTRANSMISSIONS:
-        if (!
-            (COLUMN_DOT3STATSDEFERREDTRANSMISSIONS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsDeferredTransmissions) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = dot3StatsDeferredTransmissions_get(rowreq_ctx,
-                                                (u_long *) var->val.
-                                                string);
-        break;
-
-        /*
-         * dot3StatsLateCollisions(8)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSLATECOLLISIONS:
-        if (!
-            (COLUMN_DOT3STATSLATECOLLISIONS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsLateCollisions) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = dot3StatsLateCollisions_get(rowreq_ctx,
-                                         (u_long *) var->val.string);
-        break;
-
-        /*
-         * dot3StatsExcessiveCollisions(9)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSEXCESSIVECOLLISIONS:
-        if (!
-            (COLUMN_DOT3STATSEXCESSIVECOLLISIONS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsExcessiveCollisions) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = dot3StatsExcessiveCollisions_get(rowreq_ctx,
-                                              (u_long *) var->val.string);
-        break;
-
-        /*
-         * dot3StatsInternalMacTransmitErrors(10)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSINTERNALMACTRANSMITERRORS:
-        if (!
-            (COLUMN_DOT3STATSINTERNALMACTRANSMITERRORS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsInternalMacTransmitErrors) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = dot3StatsInternalMacTransmitErrors_get(rowreq_ctx,
-                                                    (u_long *) var->val.
-                                                    string);
-        break;
-
-        /*
-         * dot3StatsCarrierSenseErrors(11)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSCARRIERSENSEERRORS:
-        if (!
-            (COLUMN_DOT3STATSCARRIERSENSEERRORS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsCarrierSenseErrors) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = dot3StatsCarrierSenseErrors_get(rowreq_ctx,
-                                             (u_long *) var->val.string);
-        break;
-
-        /*
-         * dot3StatsFrameTooLongs(13)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSFRAMETOOLONGS:
-        if (!
-            (COLUMN_DOT3STATSFRAMETOOLONGS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsFrameTooLongs) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = dot3StatsFrameTooLongs_get(rowreq_ctx,
-                                        (u_long *) var->val.string);
-        break;
-
-        /*
-         * dot3StatsInternalMacReceiveErrors(16)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSINTERNALMACRECEIVEERRORS:
-        if (!
-            (COLUMN_DOT3STATSINTERNALMACRECEIVEERRORS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsInternalMacReceiveErrors) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = dot3StatsInternalMacReceiveErrors_get(rowreq_ctx,
-                                                   (u_long *) var->val.
-                                                   string);
-        break;
-
-        /*
-         * dot3StatsEtherChipSet(17)/OBJECTID/ASN_OBJECT_ID/oid(oid)//L/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSETHERCHIPSET:
-        if (!
-            (COLUMN_DOT3STATSETHERCHIPSET_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsEtherChipSet) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->type = ASN_OBJECT_ID;
-        rc = dot3StatsEtherChipSet_get(rowreq_ctx,
-                                       (oid **) & var->val.string,
-                                       &var->val_len);
-        break;
-
-        /*
-         * dot3StatsSymbolErrors(18)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_DOT3STATSSYMBOLERRORS:
-        if (!
-            (COLUMN_DOT3STATSSYMBOLERRORS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsSymbolErrors) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = dot3StatsSymbolErrors_get(rowreq_ctx,
-                                       (u_long *) var->val.string);
-        break;
-
-        /*
-         * dot3StatsDuplexStatus(19)/INTEGER/ASN_INTEGER/long(u_long)//l/A/w/E/r/d/h 
-         */
-    case COLUMN_DOT3STATSDUPLEXSTATUS:
-        if (!
-            (COLUMN_DOT3STATSDUPLEXSTATUS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsDuplexStatus) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_INTEGER;
-        rc = dot3StatsDuplexStatus_get(rowreq_ctx,
-                                       (u_long *) var->val.string);
-        break;
-
-        /*
-         * dot3StatsRateControlAbility(20)/TruthValue/ASN_INTEGER/long(u_long)//l/A/w/E/r/d/h 
-         */
-    case COLUMN_DOT3STATSRATECONTROLABILITY:
-        if (!
-            (COLUMN_DOT3STATSRATECONTROLABILITY_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsRateControlAbility) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_INTEGER;
-        rc = dot3StatsRateControlAbility_get(rowreq_ctx,
-                                             (u_long *) var->val.string);
-        break;
-
-        /*
-         * dot3StatsRateControlStatus(21)/INTEGER/ASN_INTEGER/long(u_long)//l/A/w/E/r/d/h 
-         */
-    case COLUMN_DOT3STATSRATECONTROLSTATUS:
-        if (!
-            (COLUMN_DOT3STATSRATECONTROLSTATUS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "column %d (dot3StatsRateControlStatus) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_INTEGER;
-        rc = dot3StatsRateControlStatus_get(rowreq_ctx,
-                                            (u_long *) var->val.string);
-        break;
-
-    default:
-        if (DOT3STATSTABLE_MIN_COL <= column
-            && column <= DOT3STATSTABLE_MAX_COL) {
-            DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_column", "assume column %d is reserved\n", column));
-            rc = MFD_SKIP;
-        } else {
-            snmp_log(LOG_ERR,
-                     "unknown column %d in _dot3StatsTable_get_column\n",
-                     column);
-        }
-        break;
-    }
-
-    return rc;
-}                               /* _dot3StatsTable_get_column */
-
-int
-_mfd_dot3StatsTable_get_values(netsnmp_mib_handler *handler,
-                               netsnmp_handler_registration *reginfo,
-                               netsnmp_agent_request_info *agtreq_info,
-                               netsnmp_request_info *requests)
-{
-    dot3StatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-    netsnmp_table_request_info *tri;
-    u_char         *old_string;
-    void            (*dataFreeHook) (void *);
-    int             rc;
-
-    DEBUGMSGTL(("internal:dot3StatsTable:_mfd_dot3StatsTable_get_values",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    DEBUGMSGTL(("9:dot3StatsTable:_mfd_dot3StatsTable_get_values",
-                "exists %u\n", rowreq_ctx->column_exists_flags));
-
-    for (; requests; requests = requests->next) {
-        /*
-         * save old pointer, so we can free it if replaced
-         */
-        old_string = requests->requestvb->val.string;
-        dataFreeHook = requests->requestvb->dataFreeHook;
-        if (NULL == requests->requestvb->val.string) {
-            requests->requestvb->val.string = requests->requestvb->buf;
-            requests->requestvb->val_len =
-                sizeof(requests->requestvb->buf);
-        } else if (requests->requestvb->buf ==
-                   requests->requestvb->val.string) {
-            if (requests->requestvb->val_len !=
-                sizeof(requests->requestvb->buf))
-                requests->requestvb->val_len =
-                    sizeof(requests->requestvb->buf);
-        }
-
-        /*
-         * get column data
-         */
-        tri = netsnmp_extract_table_info(requests);
-        if (NULL == tri)
-            continue;
-
-        rc = _dot3StatsTable_get_column(rowreq_ctx, requests->requestvb,
-                                        tri->colnum);
-        if (rc) {
-            if (MFD_SKIP == rc) {
-                requests->requestvb->type = SNMP_NOSUCHINSTANCE;
-                rc = SNMP_ERR_NOERROR;
-            }
-        } else if (NULL == requests->requestvb->val.string) {
-            snmp_log(LOG_ERR, "NULL varbind data pointer!\n");
-            rc = SNMP_ERR_GENERR;
-        }
-        if (rc)
-            netsnmp_request_set_error(requests, SNMP_VALIDATE_ERR(rc));
-
-        /*
-         * if the buffer wasn't used previously for the old data (i.e. it
-         * was allcoated memory)  and the get routine replaced the pointer,
-         * we need to free the previous pointer.
-         */
-        if (old_string && (old_string != requests->requestvb->buf) &&
-            (requests->requestvb->val.string != old_string)) {
-            if (dataFreeHook)
-                (*dataFreeHook) (old_string);
-            else
-                free(old_string);
-        }
-    }                           /* for results */
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_dot3StatsTable_get_values */
-
-
-/***********************************************************************
- *
- * SET processing
- *
- ***********************************************************************/
-
-/*
- * SET PROCESSING NOT APPLICABLE (per MIB or user setting)
- */
-/***********************************************************************
- *
- * DATA ACCESS
- *
- ***********************************************************************/
-static void     _container_free(netsnmp_container * container);
-
-/**
- * @internal
- */
-static int
-_cache_load(netsnmp_cache * cache, void *vmagic)
-{
-    DEBUGMSGTL(("internal:dot3StatsTable:_cache_load", "called\n"));
-
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR, "invalid cache for dot3StatsTable_cache_load\n");
-        return -1;
-    }
-
-    /** should only be called for an invalid or expired cache */
-    netsnmp_assert((0 == cache->valid) || (1 == cache->expired));
-
-    /*
-     * call user code
-     */
-    return dot3StatsTable_container_load((netsnmp_container *) cache->
-                                         magic);
-}                               /* _cache_load */
-
-/**
- * @internal
- */
-static void
-_cache_free(netsnmp_cache * cache, void *magic)
-{
-    netsnmp_container *container;
-
-    DEBUGMSGTL(("internal:dot3StatsTable:_cache_free", "called\n"));
-
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR, "invalid cache in dot3StatsTable_cache_free\n");
-        return;
-    }
-
-    container = (netsnmp_container *) cache->magic;
-
-    _container_free(container);
-}                               /* _cache_free */
-
-/**
- * @internal
- */
-static void
-_container_item_free(dot3StatsTable_rowreq_ctx * rowreq_ctx, void *context)
-{
-    DEBUGMSGTL(("internal:dot3StatsTable:_container_item_free",
-                "called\n"));
-
-    if (NULL == rowreq_ctx)
-        return;
-
-    dot3StatsTable_release_rowreq_ctx(rowreq_ctx);
-}                               /* _container_item_free */
-
-/**
- * @internal
- */
-static void
-_container_free(netsnmp_container * container)
-{
-    DEBUGMSGTL(("internal:dot3StatsTable:_container_free", "called\n"));
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR,
-                 "invalid container in dot3StatsTable_container_free\n");
-        return;
-    }
-
-    /*
-     * call user code
-     */
-    dot3StatsTable_container_free(container);
-
-    /*
-     * free all items. inefficient, but easy.
-     */
-    CONTAINER_CLEAR(container,
-                    (netsnmp_container_obj_func *) _container_item_free,
-                    NULL);
-}                               /* _container_free */
-
-/**
- * @internal
- * initialize the container with functions or wrappers
- */
-void
-_dot3StatsTable_container_init(dot3StatsTable_interface_ctx * if_ctx)
-{
-    DEBUGMSGTL(("internal:dot3StatsTable:_dot3StatsTable_container_init",
-                "called\n"));
-
-    /*
-     * cache init
-     */
-    if_ctx->cache = netsnmp_cache_create(30,    /* timeout in seconds */
-                                         _cache_load, _cache_free,
-                                         dot3StatsTable_oid,
-                                         dot3StatsTable_oid_size);
-
-    if (NULL == if_ctx->cache) {
-        snmp_log(LOG_ERR, "error creating cache for dot3StatsTable\n");
-        return;
-    }
-
-    if_ctx->cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
-
-    dot3StatsTable_container_init(&if_ctx->container, if_ctx->cache);
-    if (NULL == if_ctx->container)
-        if_ctx->container =
-            netsnmp_container_find("dot3StatsTable:table_container");
-    if (NULL == if_ctx->container) {
-        snmp_log(LOG_ERR, "error creating container in "
-                 "dot3StatsTable_container_init\n");
-        return;
-    }
-
-    if (NULL != if_ctx->cache)
-        if_ctx->cache->magic = (void *) if_ctx->container;
-}                               /* _dot3StatsTable_container_init */
-
-/**
- * @internal
- * shutdown the container with functions or wrappers
- */
-void
-_dot3StatsTable_container_shutdown(dot3StatsTable_interface_ctx * if_ctx)
-{
-    DEBUGMSGTL(("internal:dot3StatsTable:_dot3StatsTable_container_shutdown", "called\n"));
-
-    dot3StatsTable_container_shutdown(if_ctx->container);
-
-    _container_free(if_ctx->container);
-
-}                               /* _dot3StatsTable_container_shutdown */
-
-
-dot3StatsTable_rowreq_ctx *
-dot3StatsTable_row_find_by_mib_index(dot3StatsTable_mib_index * mib_idx)
-{
-    dot3StatsTable_rowreq_ctx *rowreq_ctx;
-    oid             oid_tmp[MAX_OID_LEN];
-    netsnmp_index   oid_idx;
-    int             rc;
-
-    /*
-     * set up storage for OID
-     */
-    oid_idx.oids = oid_tmp;
-    oid_idx.len = sizeof(oid_tmp) / sizeof(oid);
-
-    /*
-     * convert
-     */
-    rc = dot3StatsTable_index_to_oid(&oid_idx, mib_idx);
-    if (MFD_SUCCESS != rc)
-        return NULL;
-
-    rowreq_ctx = CONTAINER_FIND(dot3StatsTable_if_ctx.container, &oid_idx);
-
-    return rowreq_ctx;
-}
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.h b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.h
deleted file mode 100644
index ac2b5a6..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 15899 $ of $
- *
- * $Id:$
- */
-/** @ingroup interface: Routines to interface to Net-SNMP
- *
- * \warning This code should not be modified, called directly,
- *          or used to interpret functionality. It is subject to
- *          change at any time.
- * 
- * @{
- */
-/*
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- * ***                                                               ***
- * ***  NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE  ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THIS FILE DOES NOT CONTAIN ANY USER EDITABLE CODE.      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THE GENERATED CODE IS INTERNAL IMPLEMENTATION, AND      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***    IS SUBJECT TO CHANGE WITHOUT WARNING IN FUTURE RELEASES.   ***
- * ***                                                               ***
- * ***                                                               ***
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- */
-#ifndef DOT3STATSTABLE_INTERFACE_H
-#define DOT3STATSTABLE_INTERFACE_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-#include "dot3StatsTable.h"
-
-
-    /*
-     ********************************************************************
-     * Table declarations
-     */
-
-    /*
-     * PUBLIC interface initialization routine 
-     */
-    void           
-        _dot3StatsTable_initialize_interface(dot3StatsTable_registration *
-                                             user_ctx, u_long flags);
-    void           
-        _dot3StatsTable_shutdown_interface(dot3StatsTable_registration *
-                                           user_ctx);
-
-    dot3StatsTable_registration *dot3StatsTable_registration_get(void);
-
-    dot3StatsTable_registration
-        *dot3StatsTable_registration_set(dot3StatsTable_registration *
-                                         newreg);
-
-    netsnmp_container *dot3StatsTable_container_get(void);
-    int             dot3StatsTable_container_size(void);
-
-    dot3StatsTable_rowreq_ctx *dot3StatsTable_allocate_rowreq_ctx(void *);
-    void           
-        dot3StatsTable_release_rowreq_ctx(dot3StatsTable_rowreq_ctx *
-                                          rowreq_ctx);
-
-    int             dot3StatsTable_index_to_oid(netsnmp_index * oid_idx,
-                                                dot3StatsTable_mib_index *
-                                                mib_idx);
-    int             dot3StatsTable_index_from_oid(netsnmp_index * oid_idx,
-                                                  dot3StatsTable_mib_index
-                                                  * mib_idx);
-
-    /*
-     * access to certain internals. use with caution!
-     */
-    void            dot3StatsTable_valid_columns_set(netsnmp_column_info
-                                                     *vc);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* DOT3STATSTABLE_INTERFACE_H */
-/** @} */
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_oids.h b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_oids.h
deleted file mode 100644
index 79b16ce..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_oids.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : generic-table-oids.m2c 12855 2005-09-27 15:56:08Z rstory $
- *
- * $Id:$
- */
-#ifndef DOT3STATSTABLE_OIDS_H
-#define DOT3STATSTABLE_OIDS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-    /*
-     * column number definitions for table dot3StatsTable 
-     */
-#define DOT3STATSTABLE_OID              1,3,6,1,2,1,10,7,2
-
-#define COLUMN_DOT3STATSINDEX         1
-#define COLUMN_DOT3STATSINDEX_FLAG    (0x1 << 0)
-
-#define COLUMN_DOT3STATSALIGNMENTERRORS         2
-#define COLUMN_DOT3STATSALIGNMENTERRORS_FLAG    (0x1 << 1)
-
-#define COLUMN_DOT3STATSFCSERRORS         3
-#define COLUMN_DOT3STATSFCSERRORS_FLAG    (0x1 << 2)
-
-#define COLUMN_DOT3STATSSINGLECOLLISIONFRAMES         4
-#define COLUMN_DOT3STATSSINGLECOLLISIONFRAMES_FLAG    (0x1 << 3)
-
-#define COLUMN_DOT3STATSMULTIPLECOLLISIONFRAMES         5
-#define COLUMN_DOT3STATSMULTIPLECOLLISIONFRAMES_FLAG    (0x1 << 4)
-
-#define COLUMN_DOT3STATSSQETESTERRORS         6
-#define COLUMN_DOT3STATSSQETESTERRORS_FLAG    (0x1 << 5)
-
-#define COLUMN_DOT3STATSDEFERREDTRANSMISSIONS         7
-#define COLUMN_DOT3STATSDEFERREDTRANSMISSIONS_FLAG    (0x1 << 6)
-
-#define COLUMN_DOT3STATSLATECOLLISIONS         8
-#define COLUMN_DOT3STATSLATECOLLISIONS_FLAG    (0x1 << 7)
-
-#define COLUMN_DOT3STATSEXCESSIVECOLLISIONS         9
-#define COLUMN_DOT3STATSEXCESSIVECOLLISIONS_FLAG    (0x1 << 8)
-
-#define COLUMN_DOT3STATSINTERNALMACTRANSMITERRORS         10
-#define COLUMN_DOT3STATSINTERNALMACTRANSMITERRORS_FLAG    (0x1 << 9)
-
-#define COLUMN_DOT3STATSCARRIERSENSEERRORS         11
-#define COLUMN_DOT3STATSCARRIERSENSEERRORS_FLAG    (0x1 << 10)
-
-#define COLUMN_DOT3STATSFRAMETOOLONGS         13
-#define COLUMN_DOT3STATSFRAMETOOLONGS_FLAG    (0x1 << 12)
-
-#define COLUMN_DOT3STATSINTERNALMACRECEIVEERRORS         16
-#define COLUMN_DOT3STATSINTERNALMACRECEIVEERRORS_FLAG    (0x1 << 15)
-
-#define COLUMN_DOT3STATSETHERCHIPSET         17
-#define COLUMN_DOT3STATSETHERCHIPSET_FLAG    (0x1 << 16)
-
-#define COLUMN_DOT3STATSSYMBOLERRORS         18
-#define COLUMN_DOT3STATSSYMBOLERRORS_FLAG    (0x1 << 17)
-
-#define COLUMN_DOT3STATSDUPLEXSTATUS         19
-#define COLUMN_DOT3STATSDUPLEXSTATUS_FLAG    (0x1 << 18)
-
-#define COLUMN_DOT3STATSRATECONTROLABILITY         20
-#define COLUMN_DOT3STATSRATECONTROLABILITY_FLAG    (0x1 << 19)
-
-#define COLUMN_DOT3STATSRATECONTROLSTATUS         21
-#define COLUMN_DOT3STATSRATECONTROLSTATUS_FLAG    (0x1 << 20)
-
-
-#define DOT3STATSTABLE_MIN_COL   COLUMN_DOT3STATSINDEX
-#define DOT3STATSTABLE_MAX_COL   COLUMN_DOT3STATSRATECONTROLSTATUS
-
-	
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* DOT3STATSTABLE_OIDS_H */
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/ioctl_imp_common.h b/agent/mibgroup/etherlike-mib/dot3StatsTable/ioctl_imp_common.h
deleted file mode 100644
index ef9232a..0000000
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/ioctl_imp_common.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <net/if.h>
-#include <linux/sockios.h>
-#include <ifaddrs.h>
-
-/* use kernel's ethtool.h  */
-
-#include <linux/types.h>
-typedef __u64 u64;
-typedef __u32 u32;
-typedef __u16 u16;
-typedef __u8 u8;
-#include <linux/ethtool.h>
-
-/* structure for storing the interface names in the system */
-
-struct ifname {
-    struct ifname *ifn_next;
-    char name [IF_NAMESIZE];
-};
-
-struct ifname *dot3stats_interface_name_list_get (struct ifname *, int *);
-int dot3stats_interface_name_list_free (struct ifname *list_head);
-int dot3stats_interface_ioctl_ifindex_get (int fd, const char *name);
-int _dot3Stats_ioctl_get(int fd, int which, struct ifreq *ifrq, const char* name);
-int interface_ioctl_dot3stats_get(dot3StatsTable_rowreq_ctx *rowreq_ctx, int fd, const char* name);
-int interface_ioctl_dot3stats_duplex_get(dot3StatsTable_rowreq_ctx *rowreq_ctx, int fd, const char* name);
-
-
-/* for maintainability */
-
-#define INTEL_RECEIVE_ALIGN_ERRORS                      "rx_align_errors"
-#define BROADCOM_RECEIVE_ALIGN_ERRORS                   INTEL_RECEIVE_ALIGN_ERRORS
-
-#define INTEL_TRANSMIT_MULTIPLE_COLLISIONS              "tx_multi_coll_ok"
-#define BROADCOM_TRANSMIT_MULTIPLE_COLLISIONS_BNX2      "tx_multi_collisions"
-#define BROADCOM_TRANSMIT_MULTIPLE_COLLISIONS_TG3       "tx_mult_collisions"
-
-#define INTEL_TRANSMIT_LATE_COLLISIONS                  "tx_abort_late_coll"
-#define BROADCOM_TRANSMIT_LATE_COLLISIONS               "tx_late_collisions"
-
-#define INTEL_TRANSMIT_SINGLE_COLLISIONS                "tx_single_coll_ok"
-#define BROADCOM_TRANSMIT_SINGLE_COLLISIONS             "tx_single_collisions"
-
-#define BROADCOM_TRANSMIT_EXCESS_COLLISIONS_BNX2        "tx_excess_collisions"
-#define BROADCOM_TRANSMIT_EXCESS_COLLISIONS_TG3         "tx_excessive_collisions"
-
-
-#define DOT3STATSALIGNMENTERRORS(x)            strstr(x, INTEL_RECEIVE_ALIGN_ERRORS)
-
-#define DOT3STATSMULTIPLECOLLISIONFRAMES(x)    (strstr(x, INTEL_TRANSMIT_MULTIPLE_COLLISIONS)) || \
-                                               (strstr(x, BROADCOM_TRANSMIT_MULTIPLE_COLLISIONS_BNX2)) || \
-                                               (strstr(x, BROADCOM_TRANSMIT_MULTIPLE_COLLISIONS_TG3))
-
-#define DOT3STATSLATECOLLISIONS(x)             (strstr(x, INTEL_TRANSMIT_LATE_COLLISIONS)) || \
-                                               (strstr(x, BROADCOM_TRANSMIT_LATE_COLLISIONS))
-
-#define DOT3STATSSINGLECOLLISIONFRAMES(x)      (strstr(x, INTEL_TRANSMIT_SINGLE_COLLISIONS)) || \
-                                               (strstr(x, BROADCOM_TRANSMIT_SINGLE_COLLISIONS))
-
-#define DOT3STATSEXCESSIVECOLLISIONS(x)        (strstr(x, BROADCOM_TRANSMIT_EXCESS_COLLISIONS_BNX2)) || \
-                                               (strstr(x, BROADCOM_TRANSMIT_EXCESS_COLLISIONS_TG3))
-
diff --git a/agent/mibgroup/examples/data_set.c b/agent/mibgroup/examples/data_set.c
index cc6a04a..daed8f3 100644
--- a/agent/mibgroup/examples/data_set.c
+++ b/agent/mibgroup/examples/data_set.c
@@ -65,18 +65,8 @@
  */
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
-netsnmp_feature_require(table_set_multi_add_default_row)
-netsnmp_feature_require(unregister_auto_data_table)
-netsnmp_feature_require(delete_table_data_set)
-netsnmp_feature_require(table_dataset)
-netsnmp_feature_require(table_set_multi_add_default_row)
-netsnmp_feature_require(table_dataset_unregister_auto_data_table)
-
-static netsnmp_table_data_set *table_set;
-
 /*
  * our initialization routine, automatically called by the agent 
  */
@@ -86,6 +76,7 @@ static netsnmp_table_data_set *table_set;
 void
 init_data_set(void)
 {
+    netsnmp_table_data_set *table_set;
     netsnmp_table_row *row;
 
     /*
@@ -213,11 +204,3 @@ init_data_set(void)
 
     DEBUGMSGTL(("example_data_set", "Done initializing.\n"));
 }
-
-void
-shutdown_data_set(void)
-{
-    netsnmp_unregister_auto_data_table(table_set, NULL);
-    netsnmp_delete_table_data_set(table_set);
-    table_set = NULL;
-}
diff --git a/agent/mibgroup/examples/data_set.h b/agent/mibgroup/examples/data_set.h
index c9cf8b2..e56f600 100644
--- a/agent/mibgroup/examples/data_set.h
+++ b/agent/mibgroup/examples/data_set.h
@@ -6,7 +6,6 @@ extern "C" {
 #endif
 
 void            init_data_set(void);
-void            shutdown_data_set(void);
 
 
 #ifdef __cplusplus
diff --git a/agent/mibgroup/examples/delayed_instance.c b/agent/mibgroup/examples/delayed_instance.c
index ea59502..850db8c 100644
--- a/agent/mibgroup/examples/delayed_instance.c
+++ b/agent/mibgroup/examples/delayed_instance.c
@@ -172,7 +172,6 @@ return_delayed_response(unsigned int clientreg, void *clientarg)
                                  sizeof(delay_time));
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
         /*
          * check type 
@@ -225,7 +224,7 @@ return_delayed_response(unsigned int clientreg, void *clientarg)
          * update current value 
          */
         delay_time = *(requests->requestvb->val.integer);
-        DEBUGMSGTL(("testhandler", "updated delay_time -> %ld\n",
+        DEBUGMSGTL(("testhandler", "updated delay_time -> %d\n",
                     delay_time));
         break;
 
@@ -248,7 +247,6 @@ return_delayed_response(unsigned int clientreg, void *clientarg)
          * we don't have anything to actually do here 
          */
         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
     }
 
     /*
diff --git a/agent/mibgroup/examples/example.c b/agent/mibgroup/examples/example.c
index 50b7e7d..7af8663 100644
--- a/agent/mibgroup/examples/example.c
+++ b/agent/mibgroup/examples/example.c
@@ -16,13 +16,38 @@
 #include <strings.h>
 #endif
 
+/*
+ * needed by util_funcs.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
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
 /*
  * header_generic() comes from here 
  */
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 
 /*
  * include our .h file 
@@ -81,7 +106,7 @@ void            example_free_config_examplestr(void);
      *      2: ASN_OCTET_STR:
      *          The type of the object.
      *          Valid types are listed in <snmp_impl.h>
-     *      3: NETSNMP_OLDAPI_RONLY (or NETSNMP_OLDAPI_RWRITE):
+     *      3: RONLY (or RWRITE):
      *          Whether this object can be SET or not.
      *      4: var_example:
      *          The callback routine, used when the object is queried.
@@ -97,24 +122,15 @@ void            example_free_config_examplestr(void);
      *            to obtain the full OID of each entry.
      */
 struct variable2 example_variables[] = {
-    {EXAMPLESTRING, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_example, 1, {1}},
-    {EXAMPLEINTEGER, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_example, 2, {2, 1}},
-    {EXAMPLEOBJECTID, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_example, 2, {2, 2}},
-    {EXAMPLETIMETICKS, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_example, 1, {3}},
-    {EXAMPLEIPADDRESS, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_example, 1, {4}},
-    {EXAMPLECOUNTER, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_example, 1, {5}},
-    {EXAMPLEGAUGE, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_example, 1, {6}},
-    {EXAMPLETRIGGERTRAP, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_example, 1, {7}},
-    {EXAMPLETRIGGERTRAP2, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_example, 1, {8}}
+    {EXAMPLESTRING, ASN_OCTET_STR, RONLY, var_example, 1, {1}},
+    {EXAMPLEINTEGER, ASN_INTEGER, RWRITE, var_example, 2, {2, 1}},
+    {EXAMPLEOBJECTID, ASN_OBJECT_ID, RONLY, var_example, 2, {2, 2}},
+    {EXAMPLETIMETICKS, ASN_TIMETICKS, RONLY, var_example, 1, {3}},
+    {EXAMPLEIPADDRESS, ASN_IPADDRESS, RONLY, var_example, 1, {4}},
+    {EXAMPLECOUNTER, ASN_COUNTER, RONLY, var_example, 1, {5}},
+    {EXAMPLEGAUGE, ASN_GAUGE, RONLY, var_example, 1, {6}},
+    {EXAMPLETRIGGERTRAP, ASN_INTEGER, RWRITE, var_example, 1, {7}},
+    {EXAMPLETRIGGERTRAP2, ASN_INTEGER, RWRITE, var_example, 1, {8}}
 };
 
     /*
@@ -163,7 +179,7 @@ init_example(void)
      *  Also set a default value for the string object.  Note that the
      *   example integer variable was initialised above.
      */
-    strlcpy(example_str, EXAMPLE_STR_DEFAULT, sizeof(example_str));
+    strncpy(example_str, EXAMPLE_STR_DEFAULT, EXAMPLE_STR_LEN);
 
     snmpd_register_config_handler("exampleint",
                                   example_parse_config_exampleint,
@@ -209,7 +225,7 @@ example_parse_config_examplestr(const char *token, char *cptr)
     /*
      * Make sure the string fits in the space allocated for it.
      */
-    if (strlen(cptr) < sizeof(example_str))
+    if (strlen(cptr) < EXAMPLE_STR_LEN)
         strcpy(example_str, cptr);
     else {
         /*
@@ -217,8 +233,10 @@ example_parse_config_examplestr(const char *token, char *cptr)
          * An alternative approach would be to log an error,
          *  and discard this value altogether.
          */
-        sprintf(example_str, "%.*s...", (int) (sizeof(example_str) - 4), cptr);
-        netsnmp_assert(strlen(example_str) < sizeof(example_str));
+        strncpy(example_str, cptr, EXAMPLE_STR_LEN - 4);
+        example_str[EXAMPLE_STR_LEN - 4] = 0;
+        strcat(example_str, "...");
+        example_str[EXAMPLE_STR_LEN - 1] = 0;
     }
 }
 
@@ -323,7 +341,7 @@ var_example(struct variable *vp,
      */
     switch (vp->magic) {
     case EXAMPLESTRING:
-        strcpy(string, example_str);
+        sprintf(string, example_str);
         /*
          * Note that the assumption that the answer will be an
          *  integer does not hold true in this case, so the length
@@ -448,14 +466,13 @@ write_exampleint(int action,
             return SNMP_ERR_WRONGTYPE;
         }
         if (var_val_len > sizeof(long)) {
-            DEBUGMSGTL(("example", "wrong length %" NETSNMP_PRIz "u",
-                        var_val_len));
+            DEBUGMSGTL(("example", "wrong length %x", var_val_len));
             return SNMP_ERR_WRONGLENGTH;
         }
 
         intval = *((long *) var_val);
         if (intval > MAX_EXAMPLE_INT) {
-            DEBUGMSGTL(("example", "wrong value %lx", intval));
+            DEBUGMSGTL(("example", "wrong value %x", intval));
             return SNMP_ERR_WRONGVALUE;
         }
         break;
@@ -534,14 +551,13 @@ write_exampletrap(int action,
             return SNMP_ERR_WRONGTYPE;
         }
         if (var_val_len > sizeof(long)) {
-            DEBUGMSGTL(("example", "wrong length %" NETSNMP_PRIz "u",
-                        var_val_len));
+            DEBUGMSGTL(("example", "wrong length %x", var_val_len));
             return SNMP_ERR_WRONGLENGTH;
         }
 
         intval = *((long *) var_val);
         if (intval != 1) {
-            DEBUGMSGTL(("example", "wrong value %lx", intval));
+            DEBUGMSGTL(("example", "wrong value %x", intval));
             return SNMP_ERR_WRONGVALUE;
         }
         break;
@@ -645,14 +661,13 @@ write_exampletrap2(int action,
             return SNMP_ERR_WRONGTYPE;
         }
         if (var_val_len > sizeof(long)) {
-            DEBUGMSGTL(("example", "wrong length %" NETSNMP_PRIz "u",
-                        var_val_len));
+            DEBUGMSGTL(("example", "wrong length %x", var_val_len));
             return SNMP_ERR_WRONGLENGTH;
         }
 
         intval = *((long *) var_val);
         if (intval != 1) {
-            DEBUGMSGTL(("example", "wrong value %lx", intval));
+            DEBUGMSGTL(("example", "wrong value %x", intval));
             return SNMP_ERR_WRONGVALUE;
         }
         break;
@@ -715,7 +730,7 @@ write_exampletrap2(int action,
         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 = (unsigned char *) example_str;       /* value */
+        var_obj.val.string = 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/example.h b/agent/mibgroup/examples/example.h
index 04b73e0..9de5748 100644
--- a/agent/mibgroup/examples/example.h
+++ b/agent/mibgroup/examples/example.h
@@ -14,10 +14,10 @@ extern "C" {
 #endif
 
     /*
-     * We use 'header_generic' from the util_funcs/header_generic module,
+     * We use 'header_generic' from the util_funcs module,
      *  so make sure this module is included in the agent.
      */
-config_require(util_funcs/header_generic)
+config_require(util_funcs)
 
 
     /*
diff --git a/agent/mibgroup/examples/netSnmpHostsTable.c b/agent/mibgroup/examples/netSnmpHostsTable.c
index f2aa0c7..714eca8 100644
--- a/agent/mibgroup/examples/netSnmpHostsTable.c
+++ b/agent/mibgroup/examples/netSnmpHostsTable.c
@@ -4,17 +4,12 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "netSnmpHostsTable.h"
 #include "netSnmpHostsTable_checkfns.h"
 #include "netSnmpHostsTable_access.h"
 
-netsnmp_feature_require(oid_stash)
-netsnmp_feature_require(oid_stash_get_data)
-netsnmp_feature_require(oid_stash_add_data)
-
 static netsnmp_oid_stash_node *undoStorage = NULL;
 static netsnmp_oid_stash_node *commitStorage = NULL;
 
@@ -76,7 +71,7 @@ initialize_table_netSnmpHostsTable(void)
                                      0);
 
     /** Define the minimum and maximum accessible columns.  This
-        optimizes retrieval. */
+        optimizes retrival. */
     table_info->min_column = 2;
     table_info->max_column = 5;
 
@@ -97,7 +92,7 @@ initialize_table_netSnmpHostsTable(void)
      */
     DEBUGMSGTL(("initialize_table_netSnmpHostsTable",
                 "Registering table netSnmpHostsTable as a table iterator\n"));
-    netsnmp_register_table_iterator2(my_handler, iinfo);
+    netsnmp_register_table_iterator(my_handler, iinfo);
 }
 
 /** Initializes the netSnmpHostsTable module */
@@ -119,15 +114,19 @@ netSnmpHostsTable_handler(netsnmp_mib_handler *handler,
 
     netsnmp_request_info *request;
     netsnmp_table_request_info *table_info;
+    netsnmp_variable_list *var;
     struct commitInfo *ci = NULL;
 
     void           *data_context = NULL;
 
+    oid            *suffix;
+    size_t          suffix_len;
+
     for (request = requests; request; request = request->next) {
         /* column and row index encoded portion */
-        netsnmp_variable_list *var = request->requestvb;
-        const oid * const suffix = var->name + reginfo->rootoid_len + 1;
-        const size_t suffix_len = var->name_length - (reginfo->rootoid_len + 1);
+        var = request->requestvb;
+        suffix     = var->name + reginfo->rootoid_len + 1;
+        suffix_len = var->name_length - (reginfo->rootoid_len + 1);
 
         if (request->processed != 0)
             continue;
diff --git a/agent/mibgroup/examples/netSnmpHostsTable_access.c b/agent/mibgroup/examples/netSnmpHostsTable_access.c
index 3d2e5fb..04f6bbd 100644
--- a/agent/mibgroup/examples/netSnmpHostsTable_access.c
+++ b/agent/mibgroup/examples/netSnmpHostsTable_access.c
@@ -167,7 +167,7 @@ netSnmpHostsTable_context_convert_function(void *loop_context,
 
 /** 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 retrieval and modification during
+ *  and set_XXX functions for data retrival and modification during
  *  this SET request.
  *
  *  The indexs are encoded (in order) into the index_data pointer if it
@@ -177,11 +177,10 @@ void           *
 netSnmpHostsTable_create_data_context(netsnmp_variable_list * index_data)
 {
     my_data_info *datactx = SNMP_MALLOC_TYPEDEF(my_data_info);
-
     if (!datactx)
         return NULL;
-    strlcpy(datactx->hostname, (const char *) index_data->val.string,
-            sizeof(datactx->hostname));
+    strncpy(datactx->hostname, index_data->val.string,
+            strlen(index_data->val.string));
     return datactx;
 }
 
diff --git a/agent/mibgroup/examples/netSnmpHostsTable_checkfns.c b/agent/mibgroup/examples/netSnmpHostsTable_checkfns.c
index 25a7330..f29ba98 100644
--- a/agent/mibgroup/examples/netSnmpHostsTable_checkfns.c
+++ b/agent/mibgroup/examples/netSnmpHostsTable_checkfns.c
@@ -14,14 +14,11 @@
  * standard headers 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include "netSnmpHostsTable_checkfns.h"
 #include "netSnmpHostsTable_checkfns_local.h"
 #include "netSnmpHostsTable_enums.h"
 
-netsnmp_feature_require(check_storage_transition)
-
 /** Decides if an incoming value for the netSnmpHostAddressType mib node is legal.
  *  @param type    The incoming data type.
  *  @param val     The value to be checked.
@@ -34,6 +31,9 @@ int
 check_netSnmpHostAddressType(int type, long *val, size_t val_len,
                              long *old_val, size_t old_val_len)
 {
+
+    int             ret;
+
     /** Check to see that we were called legally */
     if (!val)
         return SNMP_ERR_GENERR;
@@ -56,6 +56,8 @@ check_netSnmpHostAddressType(int type, long *val, size_t val_len,
     default:
         return SNMP_ERR_INCONSISTENTVALUE;
     }
+    ret = SNMP_ERR_NOERROR;
+
 
     /** looks ok, call the local version of the same function. */
     return check_netSnmpHostAddressType_local(type, val, val_len, old_val,
@@ -74,6 +76,9 @@ int
 check_netSnmpHostAddress(int type, char *val, size_t val_len,
                          char *old_val, size_t old_val_len)
 {
+
+    int             ret;
+
     /** Check to see that we were called legally */
     if (!val)
         return SNMP_ERR_GENERR;
@@ -83,8 +88,11 @@ check_netSnmpHostAddress(int type, char *val, size_t val_len,
         return SNMP_ERR_WRONGTYPE;
 
     /** Check the ranges of the passed value for legality */
-    if (!(val_len >= 0 && val_len <= 255))
+    if (!(val_len >= 0 && val_len <= 255)
+        ) {
         return SNMP_ERR_WRONGVALUE;
+    }
+
 
     /** looks ok, call the local version of the same function. */
     return check_netSnmpHostAddress_local(type, val, val_len, old_val,
@@ -127,10 +135,11 @@ check_netSnmpHostStorage(int type, long *val, size_t val_len,
     default:
         return SNMP_ERR_INCONSISTENTVALUE;
     }
+    ret = SNMP_ERR_NOERROR;
 
-    ret = check_storage_transition((old_val) ? *old_val : SNMP_STORAGE_NONE,
-                                   *val);
-    if (ret)
+    if (ret =
+        check_storage_transition((old_val) ? *old_val : SNMP_STORAGE_NONE,
+                                 *val))
         return ret;
 
     /** looks ok, call the local version of the same function. */
@@ -175,10 +184,11 @@ check_netSnmpHostRowStatus(int type, long *val, size_t val_len,
     default:
         return SNMP_ERR_INCONSISTENTVALUE;
     }
+    ret = SNMP_ERR_NOERROR;
 
-    ret = check_rowstatus_transition((old_val) ? *old_val : RS_NONEXISTENT,
-                                     *val);
-    if (ret)
+    if (ret =
+        check_rowstatus_transition((old_val) ? *old_val : RS_NONEXISTENT,
+                                   *val))
         return ret;
 
     /** looks ok, call the local version of the same function. */
diff --git a/agent/mibgroup/examples/netSnmpHostsTable_checkfns_local.h b/agent/mibgroup/examples/netSnmpHostsTable_checkfns_local.h
index 6cd44c9..335a0ae 100644
--- a/agent/mibgroup/examples/netSnmpHostsTable_checkfns_local.h
+++ b/agent/mibgroup/examples/netSnmpHostsTable_checkfns_local.h
@@ -3,8 +3,8 @@
  *        : : mib2c.check_values_local.conf,v 5.1 2003/05/30 23:53:15 hardaker Exp $
  * 
  */
-#ifndef NETSNMPHOSTSTABLE_CHECKFNS_LOCAL_H
-#define NETSNMPHOSTSTABLE_CHECKFNS_LOCAL_H
+#ifndef NETSNMPHOSTSTABLE_CHECKFNS_H
+#define NETSNMPHOSTSTABLE_CHECKFNS_H
 
 /*
  * these functions are designed to check incoming values for 
@@ -18,32 +18,19 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-#if 0
-}
-#endif
 
-int             check_netSnmpHostAddressType_local(int type, long *val,
-                                                   size_t val_len,
-                                                   long *old_val,
-                                                   size_t old_val_len);
-int             check_netSnmpHostAddress_local(int type, char *val,
-                                               size_t val_len,
-                                               char *old_val,
-                                               size_t old_val_len);
-int             check_netSnmpHostStorage_local(int type, long *val,
-                                               size_t val_len,
-                                               long *old_val,
-                                               size_t old_val_len);
-int             check_netSnmpHostRowStatus_local(int type, long *val,
-                                                 size_t val_len,
-                                                 long *old_val,
-                                                 size_t old_val_len);
+int             check_(int type, long *val, size_t val_len, long *old_val,
+                       size_t old_val_len);
+int             check_(int type, char *val, size_t val_len, char *old_val,
+                       size_t old_val_len);
+int             check_(int type, long *val, size_t val_len, long *old_val,
+                       size_t old_val_len);
+int             check_(int type, long *val, size_t val_len, long *old_val,
+                       size_t old_val_len);
+
 
-#if 0
-{
-#endif
 #ifdef __cplusplus
 }
 #endif
 
-#endif                          /* NETSNMPHOSTSTABLE_CHECKFNS_LOCAL_H */
+#endif                          /* NETSNMPHOSTSTABLE_CHECKFNS_H */
diff --git a/agent/mibgroup/examples/scalar_int.c b/agent/mibgroup/examples/scalar_int.c
index db4d295..20afabd 100644
--- a/agent/mibgroup/examples/scalar_int.c
+++ b/agent/mibgroup/examples/scalar_int.c
@@ -23,20 +23,13 @@
  * start be including the appropriate header files 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
 /*
- * if --enable-minimalist has been turned on, we need to register
- * the support we need so the needed functions aren't removed at compile time
- */
-netsnmp_feature_require(long_instance)
-
-/*
  * Then, we declare the variables we want to be accessed 
  */
-static long     example1 = 42;  /* default value */
+static int      example1 = 42;  /* default value */
 
 /*
  * our initialization routine, automatically called by the agent 
@@ -60,21 +53,21 @@ init_scalar_int(void)
      * the output of this debugging statement. 
      */
     DEBUGMSGTL(("example_scalar_int",
-                "Initalizing example scalar int.  Default value = %ld\n",
+                "Initalizing example scalar int.  Default value = %d\n",
                 example1));
 
     /*
      * the line below registers our "example1" variable above as
      * accessible and makes it writable.  A read only version of the
      * same registration would merely call
-     * register_read_only_long_instance() instead.
+     * register_read_only_int_instance() instead.
      * 
      * If we wanted a callback when the value was retrieved or set
      * (even though the details of doing this are handled for you),
      * you could change the NULL pointer below to a valid handler
      * function. 
      */
-    netsnmp_register_long_instance("my example int variable",
+    netsnmp_register_int_instance("my example int variable",
                                   my_registration_oid,
                                   OID_LENGTH(my_registration_oid),
                                   &example1, NULL);
diff --git a/agent/mibgroup/examples/ucdDemoPublic.c b/agent/mibgroup/examples/ucdDemoPublic.c
index 8e9e66a..05feb37 100644
--- a/agent/mibgroup/examples/ucdDemoPublic.c
+++ b/agent/mibgroup/examples/ucdDemoPublic.c
@@ -13,7 +13,11 @@
 #endif
 
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -23,11 +27,14 @@
 # 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>
 
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 #include "ucdDemoPublic.h"
 
 #define MYMAX 1024
@@ -65,14 +72,11 @@ ucdDemo_parse_userpass(const char *word, char *line)
  */
 
 struct variable2 ucdDemoPublic_variables[] = {
-    {UCDDEMORESETKEYS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ucdDemoPublic, 1, {1}},
-    {UCDDEMOPUBLICSTRING, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_ucdDemoPublic, 1, {2}},
-    {UCDDEMOUSERLIST, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_ucdDemoPublic, 1, {3}},
-    {UCDDEMOPASSPHRASE, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_ucdDemoPublic, 1, {4}},
+    {UCDDEMORESETKEYS, ASN_INTEGER, RWRITE, var_ucdDemoPublic, 1, {1}},
+    {UCDDEMOPUBLICSTRING, ASN_OCTET_STR, RWRITE, var_ucdDemoPublic, 1,
+     {2}},
+    {UCDDEMOUSERLIST, ASN_OCTET_STR, RWRITE, var_ucdDemoPublic, 1, {3}},
+    {UCDDEMOPASSPHRASE, ASN_OCTET_STR, RWRITE, var_ucdDemoPublic, 1, {4}},
 
 };
 
@@ -125,7 +129,7 @@ var_ucdDemoPublic(struct variable *vp,
 
     case UCDDEMOPUBLICSTRING:
         *write_method = write_ucdDemoPublicString;
-        *var_len = strlen((const char*)publicString);
+        *var_len = strlen(publicString);
         return (unsigned char *) publicString;
 
     case UCDDEMOUSERLIST:
@@ -214,9 +218,16 @@ write_ucdDemoPublicString(int action,
         return SNMP_ERR_WRONGLENGTH;
     }
     if (action == COMMIT) {
-        sprintf((char*) publicString, "%.*s",
-                (int) SNMP_MIN(sizeof(publicString) - 1, var_val_len),
-                (const char*) var_val);
+        if (var_val_len != 0) {
+            strncpy(publicString, var_val, sizeof(publicString)-1);
+            /* some sanity checks */
+            if (strlen(var_val) > sizeof(publicString)-1 ||
+                    strlen(var_val) != var_val_len)
+                publicString[sizeof(publicString)-1] = '\0';
+            else
+                publicString[var_val_len] = '\0';
+        } else
+            publicString[0] = '\0';
     }
     return SNMP_ERR_NOERROR;
 }
diff --git a/agent/mibgroup/examples/ucdDemoPublic.h b/agent/mibgroup/examples/ucdDemoPublic.h
index 253f4ff..fd9f12f 100644
--- a/agent/mibgroup/examples/ucdDemoPublic.h
+++ b/agent/mibgroup/examples/ucdDemoPublic.h
@@ -6,10 +6,10 @@
 #define _MIBGROUP_UCDDEMOPUBLIC_H
 
 /*
- * we use header_generic from the util_funcs module
+ * we use header_generic and checkmib from the util_funcs module 
  */
 
-config_require(util_funcs/header_generic)
+config_require(util_funcs)
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/agent/mibgroup/examples/watched.c b/agent/mibgroup/examples/watched.c
index b486bac..a1b58b6 100644
--- a/agent/mibgroup/examples/watched.c
+++ b/agent/mibgroup/examples/watched.c
@@ -1,6 +1,6 @@
 /*
  * watched.c
- * $Id$
+ * $Id: watched.c 12097 2005-04-20 18:03:47Z rstory $
  *
  */
 /**  @example watched.c
@@ -45,7 +45,7 @@ void init_watched_string(void)
      * variables needed for registration
      */
     netsnmp_handler_registration *reginfo;
-    static netsnmp_watcher_info watcher_info;
+    netsnmp_watcher_info *watcher_info;
     int watcher_flags;
 
     /*
@@ -57,6 +57,8 @@ void init_watched_string(void)
                 my_string));
 
     /*
+     * create the registration info for our string. If you want to
+     *
      * If we wanted a callback when the value was retrieved or set
      * (even though the details of doing this are handled for you),
      * you could change the NULL pointer below to a valid handler
@@ -70,28 +72,32 @@ void init_watched_string(void)
                                                   HANDLER_CAN_RWRITE);
                                                   
     /*
-     * the three options for a string watcher are:
+     * the two options for a string watcher are:
      *   fixed size string (length never changes)
      *   variable size (length can be 0 - MAX, for some MAX)
-     *   c string (length can be 0 - MAX-1 for some max, \0 is not a valid
-     *     character in the string, the length is provided by strlen)
      *
      * we'll use a variable length string.
      */
     watcher_flags = WATCHER_MAX_SIZE;
 
     /*
-     * create the watcher info for our string.
+     * create the watcher info for our string, and set the max size.
      */
-    netsnmp_init_watcher_info6(&watcher_info, my_string, strlen(my_string),
-			       ASN_OCTET_STR, watcher_flags,
-			       sizeof(my_string), NULL);
+    watcher_info =
+        netsnmp_create_watcher_info(my_string, strlen(my_string),
+                                    ASN_OCTET_STR, watcher_flags);
+    watcher_info->max_size = sizeof(my_string);
 
     /*
      * the line below registers our "my_string" variable above as
      * accessible and makes it writable. 
+     * 
+     * If we wanted a callback when the value was retrieved or set
+     * (even though the details of doing this are handled for you),
+     * you could change the NULL pointer below to a valid handler
+     * function. 
      */
-    netsnmp_register_watched_instance(reginfo, &watcher_info);
+    netsnmp_register_watched_instance(reginfo, watcher_info);
 
     DEBUGMSGTL(("example_string_instance",
                 "Done initalizing example string instance\n"));
diff --git a/agent/mibgroup/hardware/cpu.h b/agent/mibgroup/hardware/cpu.h
index 3956679..3ee7162 100644
--- a/agent/mibgroup/hardware/cpu.h
+++ b/agent/mibgroup/hardware/cpu.h
@@ -12,16 +12,13 @@ config_require(hardware/cpu/cpu_pcp)
 #elif defined(irix6)
 config_require(hardware/cpu/cpu_sysinfo)
 
-#elif defined(dragonfly)
-config_require(hardware/cpu/cpu_kinfo)
-
-#elif (defined(netbsd) || defined(netbsd1) || defined(netbsdelf) || defined(netbsdelf2)|| defined(netbsdelf3) || defined(openbsd) || defined(freebsd4) || defined(freebsd5) || defined(freebsd6))
+#elif (defined(netbsd) || defined(netbsd1) || defined(netbsdelf) || defined(netbsdelf2)|| defined(netbsdelf3) || defined(openbsd2) || defined(openbsd3) || defined(openbsd4) || defined(freebsd4)  || defined(freebsd5) || defined(freebsd6))
 config_require(hardware/cpu/cpu_sysctl)
 
 #elif (defined(freebsd2) || defined(freebsd3))
 config_require(hardware/cpu/cpu_nlist)
 
-#elif (defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7))
+#elif (defined(aix4) || defined(aix5) || defined(aix6))
 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 2772001..0f66f47 100644
--- a/agent/mibgroup/hardware/cpu/cpu.c
+++ b/agent/mibgroup/hardware/cpu/cpu.c
@@ -1,16 +1,8 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/hardware/cpu.h>
 
-netsnmp_feature_child_of(hardware_cpu, libnetsnmpmibs)
-
-netsnmp_feature_child_of(hardware_cpu_copy_stats, hardware_cpu)
-netsnmp_feature_child_of(hardware_cpu_load, hardware_cpu)
-netsnmp_feature_child_of(hardware_cpu_get_cache, hardware_cpu)
-netsnmp_feature_child_of(hardware_cpu_get_byName, hardware_cpu)
-
 extern NetsnmpCacheLoad netsnmp_cpu_arch_load;
 static void _cpu_update_stats( unsigned int, void* );
 
@@ -92,8 +84,8 @@ netsnmp_cpu_info *netsnmp_cpu_get_byIdx(  int idx, int create ) {
          */
     cpu = SNMP_MALLOC_TYPEDEF( netsnmp_cpu_info );
     if (!cpu) {
-        DEBUGMSG(("cpu", "(failed)\n"));
         return NULL;
+        DEBUGMSG(("cpu", "(failed)\n"));
     }
     DEBUGMSG(("cpu", "(created)\n"));
     cpu->idx = idx;
@@ -115,14 +107,14 @@ netsnmp_cpu_info *netsnmp_cpu_get_byIdx(  int idx, int create ) {
             return cpu;
         }
     }
-    SNMP_FREE(cpu); /* just in case */
+    if (cpu)
+        SNMP_FREE(cpu); /* just in case */
     return NULL;  /* Shouldn't happen! */
 }
 
     /*
      * Work with a list of CPU entries, indexed by name
      */
-#ifndef NETSNMP_FEATURE_REMOVE_HARDWARE_CPU_GET_BYNAME
 netsnmp_cpu_info *netsnmp_cpu_get_byName( char *name, int create ) {
     netsnmp_cpu_info *cpu;
 
@@ -142,12 +134,6 @@ netsnmp_cpu_info *netsnmp_cpu_get_byName( char *name, int create ) {
     cpu = SNMP_MALLOC_TYPEDEF( netsnmp_cpu_info );
     if (!cpu)
         return NULL;
-    if (strlen(name) >= sizeof(cpu->name)) {
-        free(cpu);
-        snmp_log(LOG_ERR, "Name of CPU is too large: %s\n", name);
-        return NULL;
-    }
-
     strcpy(cpu->name, name);
     if ( _cpu_tail ) {
         cpu->idx = _cpu_tail->idx+1;
@@ -160,15 +146,11 @@ netsnmp_cpu_info *netsnmp_cpu_get_byName( char *name, int create ) {
     }
     return cpu;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_HARDWARE_CPU_GET_BYNAME */
 
-#ifndef NETSNMP_FEATURE_REMOVE_HARDWARE_CPU_GET_CACHE
 netsnmp_cache *netsnmp_cpu_get_cache( void ) {
     return _cpu_cache;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_HARDWARE_CPU_GET_CACHE */
 
-#ifndef NETSNMP_FEATURE_REMOVE_HARDWARE_CPU_LOAD
 int netsnmp_cpu_load( void ) {
         /*
          * If we're automatically updating the stats regularly,
@@ -177,7 +159,6 @@ int netsnmp_cpu_load( void ) {
     return ( _cpuAutoUpdate ? 1
                             : netsnmp_cache_check_and_reload( _cpu_cache ));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_HARDWARE_CPU_LOAD */
 
     /*
      * Call the system-specific load routine regularly,
@@ -194,7 +175,7 @@ _cpu_update_stats( unsigned int reg, void* magic ) {
              * First time through, we need to create buffers
              * for the historical stats
              */
-            cpu->history  = (struct netsnmp_cpu_history *)calloc( _cpuHistoryLen, sizeof(struct netsnmp_cpu_history));
+            cpu->history  = calloc( _cpuHistoryLen, sizeof(struct netsnmp_cpu_history));
         } else {
             /*
              * Otherwise, rotate these values - in descending order
@@ -233,14 +214,10 @@ _cpu_update_stats( unsigned int reg, void* magic ) {
                            cpu->wait_ticks +
                            cpu->kern_ticks +
                            cpu->intrpt_ticks +
-                           cpu->sirq_ticks +
-                           cpu->steal_ticks +
-                           cpu->guest_ticks +
-                           cpu->guestnice_ticks;
+                           cpu->sirq_ticks;
     }
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_HARDWARE_CPU_COPY_STATS
 void _cpu_copy_stats( netsnmp_cpu_info *cpu )
 {
     netsnmp_cpu_info *cpu2;
@@ -260,9 +237,6 @@ void _cpu_copy_stats( netsnmp_cpu_info *cpu )
     cpu2->kern_ticks = cpu->kern_ticks;
     cpu2->intrpt_ticks = cpu->intrpt_ticks;
     cpu2->sirq_ticks = cpu->sirq_ticks;
-    cpu2->steal_ticks = cpu->steal_ticks;
-    cpu2->guest_ticks = cpu->guest_ticks;
-    cpu2->guestnice_ticks = cpu->guestnice_ticks;
 
     cpu2->nInterrupts  = cpu->nInterrupts;
     cpu2->nCtxSwitches = cpu->nCtxSwitches;
@@ -271,4 +245,3 @@ void _cpu_copy_stats( netsnmp_cpu_info *cpu )
     cpu2->pageIn     = cpu->pageIn;
     cpu2->pageOut    = cpu->pageOut;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_HARDWARE_CPU_COPY_STATS */
diff --git a/agent/mibgroup/hardware/cpu/cpu_kerndata.c b/agent/mibgroup/hardware/cpu/cpu_kerndata.c
index 8a7f2b2..9a9c4a4 100644
--- a/agent/mibgroup/hardware/cpu/cpu_kerndata.c
+++ b/agent/mibgroup/hardware/cpu/cpu_kerndata.c
@@ -64,32 +64,32 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
     for ( i=0; i < cpu_num; i++ ) {
         cpu2 = netsnmp_cpu_get_byIdx( i, 0 );
 
-        cpu2->user_ticks = (unsigned long long)vminfo[i].v_time[V_CPU_USER];
-        cpu2->idle_ticks = (unsigned long long)vminfo[i].v_time[V_CPU_IDLE];
-        cpu2->kern_ticks = (unsigned long long)vminfo[i].v_time[V_CPU_KERNEL];
-        cpu2->wait_ticks = (unsigned long long)vminfo[i].v_time[V_CPU_STREAM];
-        cpu2->sys2_ticks = (unsigned long long)vminfo[i].v_time[V_CPU_KERNEL]+
+        cpu2->user_ticks = (unsigned long)vminfo[i].v_time[V_CPU_USER];
+        cpu2->idle_ticks = (unsigned long)vminfo[i].v_time[V_CPU_IDLE];
+        cpu2->kern_ticks = (unsigned long)vminfo[i].v_time[V_CPU_KERNEL];
+        cpu2->wait_ticks = (unsigned long)vminfo[i].v_time[V_CPU_STREAM];
+        cpu2->sys2_ticks = (unsigned long)vminfo[i].v_time[V_CPU_KERNEL]+
                                           vminfo[i].v_time[V_CPU_STREAM];
             /* nice_ticks, intrpt_ticks, sirq_ticks unused */
 
             /* sum these for the overall stats */
-        cpu->user_ticks += (unsigned long long)vminfo[i].v_time[V_CPU_USER];
-        cpu->idle_ticks += (unsigned long long)vminfo[i].v_time[V_CPU_IDLE];
-        cpu->kern_ticks += (unsigned long long)vminfo[i].v_time[V_CPU_KERNEL];
-        cpu->wait_ticks += (unsigned long long)vminfo[i].v_time[V_CPU_STREAM];
-        cpu->sys2_ticks += (unsigned long long)vminfo[i].v_time[V_CPU_KERNEL]+
+        cpu->user_ticks += (unsigned long)vminfo[i].v_time[V_CPU_USER];
+        cpu->idle_ticks += (unsigned long)vminfo[i].v_time[V_CPU_IDLE];
+        cpu->kern_ticks += (unsigned long)vminfo[i].v_time[V_CPU_KERNEL];
+        cpu->wait_ticks += (unsigned long)vminfo[i].v_time[V_CPU_STREAM];
+        cpu->sys2_ticks += (unsigned long)vminfo[i].v_time[V_CPU_KERNEL]+
                                           vminfo[i].v_time[V_CPU_STREAM];
 
             /*
              * Interrupt/Context Switch statistics
              *   XXX - Do these really belong here ?
              */
-        cpu->swapIn       += (unsigned long long)vminfo[i].v_swpin;
-        cpu->swapOut      += (unsigned long long)vminfo[i].v_swpout;
-        cpu->pageIn       += (unsigned long long)vminfo[i].v_phread;
-        cpu->pageOut      += (unsigned long long)vminfo[i].v_phwrite;
-        cpu->nInterrupts  += (unsigned long long)vminfo[i].v_intr;
-        cpu->nCtxSwitches += (unsigned long long)vminfo[i].v_swtch;
+        cpu->swapIn       += (unsigned long)vminfo[i].v_swpin;
+        cpu->swapOut      += (unsigned long)vminfo[i].v_swpout;
+        cpu->pageIn       += (unsigned long)vminfo[i].v_phread;
+        cpu->pageOut      += (unsigned long)vminfo[i].v_phwrite;
+        cpu->nInterrupts  += (unsigned long)vminfo[i].v_intr;
+        cpu->nCtxSwitches += (unsigned long)vminfo[i].v_swtch;
     }
     return 0;
 }
diff --git a/agent/mibgroup/hardware/cpu/cpu_kerndata.h b/agent/mibgroup/hardware/cpu/cpu_kerndata.h
old mode 100644
new mode 100755
diff --git a/agent/mibgroup/hardware/cpu/cpu_kinfo.c b/agent/mibgroup/hardware/cpu/cpu_kinfo.c
deleted file mode 100644
index 37cf847..0000000
--- a/agent/mibgroup/hardware/cpu/cpu_kinfo.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- *  DragonFly kinfo interface
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include <net-snmp/agent/hardware/cpu.h>
-
-#include <sys/param.h>
-#include <sys/vmmeter.h>
-#include <kinfo.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/sysctl.h>
-
-netsnmp_feature_require(hardware_cpu_copy_stats)
-void _cpu_copy_stats( netsnmp_cpu_info *cpu );
-
-    /*
-     * Initialise the list of CPUs on the system
-     *   (including descriptions)
-     */
-void init_cpu_kinfo( void ) {
-    netsnmp_cpu_info *cpu;
-    int i;
-    size_t len;
-    char           descr[ SNMP_MAXBUF ];
-
-    cpu = netsnmp_cpu_get_byIdx( -1, 1 );
-    strcpy(cpu->name, "Overall CPU statistics");
-
-    kinfo_get_cpus(&cpu_num);
-    len = sizeof(descr);
-    sysctlbyname("hw.model", descr, &len, NULL, 0);
-    for ( i = 0; i < cpu_num; i++ ) {
-        cpu = netsnmp_cpu_get_byIdx( i, 1 );
-        cpu->status = 2;  /* running */
-        sprintf(cpu->name, "cpu%d", i);
-        sprintf(cpu->descr, "%s", descr);
-    }
-}
-
-
-    /*
-     * Load the latest CPU usage statistics
-     */
-int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
-    struct vmmeter vmm;
-    size_t len;
-    struct kinfo_cputime cp_time;
-    netsnmp_cpu_info *cpu = netsnmp_cpu_get_byIdx( -1, 0 );
-    
-    kinfo_get_sched_cputime(&cp_time);
-    len = sizeof(vmm);
-    sysctlbyname("vm.vmmeter", &vmm, &len, NULL, 0);
-
-    cpu->user_ticks = cp_time.cp_user;
-    cpu->nice_ticks = cp_time.cp_nice;
-    cpu->sys2_ticks = cp_time.cp_sys + cp_time.cp_intr;
-    cpu->idle_ticks = cp_time.cp_idle;
-    cpu->kern_ticks = cp_time.cp_sys;
-    cpu->intrpt_ticks = cp_time.cp_intr;
-
-    cpu->swapIn = vmm.v_swappgsin + vmm.v_vnodepgsin;
-    cpu->swapOut =  vmm.v_swappgsout + vmm.v_vnodepgsout;
-    cpu->nInterrupts  = vmm.v_intr;
-    cpu->nCtxSwitches = vmm.v_swtch;
-
-    /* Copy "overall" figures to cpu0 entry */
-    _cpu_copy_stats( cpu );
-
-    return 0;
-}
-
diff --git a/agent/mibgroup/hardware/cpu/cpu_kinfo.h b/agent/mibgroup/hardware/cpu/cpu_kinfo.h
deleted file mode 100644
index 774f5f2..0000000
--- a/agent/mibgroup/hardware/cpu/cpu_kinfo.h
+++ /dev/null
@@ -1,2 +0,0 @@
-config_require(hardware/cpu/cpu)
-void init_cpu_kinfo( void );
diff --git a/agent/mibgroup/hardware/cpu/cpu_kstat.c b/agent/mibgroup/hardware/cpu/cpu_kstat.c
index 049864c..0b1efde 100644
--- a/agent/mibgroup/hardware/cpu/cpu_kstat.c
+++ b/agent/mibgroup/hardware/cpu/cpu_kstat.c
@@ -23,7 +23,7 @@ int _cpu_status(char *state);
      *   (including descriptions)
      */
 void init_cpu_kstat( void ) {
-    int               i = 0, n = 0, clock, state_begin;
+    int               i, n=0, clock, state_begin;
     char              ctype[15], ftype[15], state[10];
     kstat_t          *ksp;
     kstat_named_t    *ks_data;
@@ -48,13 +48,16 @@ void init_cpu_kstat( void ) {
             memset(state, 0, sizeof(state));
             for (i=0, ks_data = ksp->ks_data; i < ksp->ks_ndata; i++, ks_data++) {
                 if ( strcmp( ks_data->name, "state" ) == 0 ) {
-                    strlcpy(state, ks_data->value.c, sizeof(state));
+                    strncpy( state, ks_data->value.c, sizeof(state));
+                    state[sizeof(state)-1] = '\0';
                 } else if ( strcmp( ks_data->name, "state_begin" ) == 0 ) {
                     state_begin = ks_data->value.i32;
                 } else if ( strcmp( ks_data->name, "cpu_type" ) == 0 ) {
-                    strlcpy(ctype, ks_data->value.c, sizeof(ctype));
+                    strncpy( ctype, ks_data->value.c, sizeof(ctype));
+                    ctype[sizeof(ctype)-1] = '\0';
                 } else if ( strcmp( ks_data->name, "fpu_type" ) == 0 ) {
-                    strlcpy(ftype, ks_data->value.c, sizeof(ftype));
+                    strncpy( ftype, ks_data->value.c, sizeof(ftype));
+                    ftype[sizeof(ftype)-1] = '\0';
                 } else if ( strcmp( ks_data->name, "clock_MHz" ) == 0 ) {
                     clock = ks_data->value.i32;
                 }
@@ -101,7 +104,7 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
             i    = ksp->ks_instance;
             cpu2 = netsnmp_cpu_get_byIdx( i, 0 );
             if ( !cpu2 )  
-                break;   /* or continue ? */  /* Skip new CPUs */
+                break;   /* or continue ? */    /* Skip new CPUs */
             if ((ksp->ks_type != KSTAT_TYPE_RAW) ||
                 (ksp->ks_data_size != sizeof(cs))||
                 (kstat_read(kstat_fd, ksp, &cs) == -1)) {
@@ -109,30 +112,30 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
                 break;   /* or continue ? */
             }
 
-            cpu2->user_ticks = (unsigned long long)cs.cpu_sysinfo.cpu[CPU_USER];
-            cpu2->idle_ticks = (unsigned long long)cs.cpu_sysinfo.cpu[CPU_IDLE];
-            cpu2->kern_ticks = (unsigned long long)cs.cpu_sysinfo.cpu[CPU_KERNEL];
-            cpu2->wait_ticks = (unsigned long long)cs.cpu_sysinfo.cpu[CPU_WAIT];
+            cpu2->user_ticks = (unsigned long)cs.cpu_sysinfo.cpu[CPU_USER];
+            cpu2->idle_ticks = (unsigned long)cs.cpu_sysinfo.cpu[CPU_IDLE];
+            cpu2->kern_ticks = (unsigned long)cs.cpu_sysinfo.cpu[CPU_KERNEL];
+            cpu2->wait_ticks = (unsigned long)cs.cpu_sysinfo.cpu[CPU_WAIT];
               /* or cs.cpu_sysinfo.wait[W_IO]+cs.cpu_sysinfo.wait[W_PIO] */
-            cpu2->sys2_ticks = (unsigned long long)cpu2->kern_ticks+cpu2->wait_ticks;
+            cpu2->sys2_ticks = (unsigned long)cpu2->kern_ticks+cpu2->wait_ticks;
                 /* nice_ticks, intrpt_ticks, sirq_ticks unused */
 
                 /* sum these for the overall stats */
-            cpu->user_ticks += (unsigned long long)cs.cpu_sysinfo.cpu[CPU_USER];
-            cpu->idle_ticks += (unsigned long long)cs.cpu_sysinfo.cpu[CPU_IDLE];
-            cpu->kern_ticks += (unsigned long long)cs.cpu_sysinfo.cpu[CPU_KERNEL];
-            cpu->wait_ticks += (unsigned long long)cs.cpu_sysinfo.cpu[CPU_WAIT];
+            cpu->user_ticks += (unsigned long)cs.cpu_sysinfo.cpu[CPU_USER];
+            cpu->idle_ticks += (unsigned long)cs.cpu_sysinfo.cpu[CPU_IDLE];
+            cpu->kern_ticks += (unsigned long)cs.cpu_sysinfo.cpu[CPU_KERNEL];
+            cpu->wait_ticks += (unsigned long)cs.cpu_sysinfo.cpu[CPU_WAIT];
               /* or cs.cpu_sysinfo.wait[W_IO]+cs.cpu_sysinfo.wait[W_PIO] */
-            cpu->sys2_ticks += (unsigned long long)cpu2->kern_ticks+cpu2->wait_ticks;
+            cpu->sys2_ticks += (unsigned long)cpu2->kern_ticks+cpu2->wait_ticks;
 
                 /*
                  * Interrupt/Context Switch statistics
                  *   XXX - Do these really belong here ?
                  */
-            cpu->swapIn       += (unsigned long long)cs.cpu_vminfo.swapin;
-            cpu->swapOut      += (unsigned long long)cs.cpu_vminfo.swapout;
-            cpu->nInterrupts  += (unsigned long long)cs.cpu_sysinfo.intr;
-            cpu->nCtxSwitches += (unsigned long long)cs.cpu_sysinfo.pswitch;
+            cpu->swapIn       += (unsigned long)cs.cpu_vminfo.swapin;
+            cpu->swapOut      += (unsigned long)cs.cpu_vminfo.swapout;
+            cpu->nInterrupts  += (unsigned long)cs.cpu_sysinfo.intr;
+            cpu->nCtxSwitches += (unsigned long)cs.cpu_sysinfo.pswitch;
         }
     }
     return 0;
diff --git a/agent/mibgroup/hardware/cpu/cpu_kstat.h b/agent/mibgroup/hardware/cpu/cpu_kstat.h
old mode 100644
new mode 100755
diff --git a/agent/mibgroup/hardware/cpu/cpu_linux.c b/agent/mibgroup/hardware/cpu/cpu_linux.c
index 8a081cd..a415d96 100644
--- a/agent/mibgroup/hardware/cpu/cpu_linux.c
+++ b/agent/mibgroup/hardware/cpu/cpu_linux.c
@@ -57,7 +57,7 @@ void init_cpu_linux( void ) {
 #endif
         }
 #if defined(__s390__) || defined(__s390x__)
-	/* s390 may have different format of CPU_FILE */
+	/* s390 may different format of CPU_FILE */
         else {
             if (sscanf( buf, "processor %d:", &i ) == 1)  {
                 n++;
@@ -99,12 +99,11 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
     static char *buff  = NULL;
     static int   bsize = 0;
     static int   first = 1;
-    static int   num_cpuline_elem = 0;
+    static int   has_cpu_26 = 1;
     int          bytes_read, statfd, i;
     char        *b1, *b2;
     unsigned long long cusell = 0, cicell = 0, csysll = 0, cidell = 0,
-                       ciowll = 0, cirqll = 0, csoftll = 0, cstealll = 0,
-                       cguestll = 0, cguest_nicell = 0;
+                       ciowll = 0, cirqll = 0, csoftll = 0;
     netsnmp_cpu_info* cpu;
 
     if ((statfd = open(STAT_FILE, O_RDONLY, 0)) == -1) {
@@ -113,18 +112,14 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
     }
     if (bsize == 0) {
         bsize = getpagesize()-1;
-        buff = (char*)malloc(bsize+1);
+        buff = malloc(bsize+1);
     }
     while ((bytes_read = read(statfd, buff, bsize)) == bsize) {
         bsize += BUFSIZ;
-        buff = (char*)realloc(buff, bsize+1);
+        buff = realloc(buff, bsize+1);
         DEBUGMSGTL(("cpu", "/proc/stat buffer increased to %d\n", bsize));
         close(statfd);
         statfd = open(STAT_FILE, O_RDONLY, 0);
-        if (statfd == -1) {
-            snmp_log_perror(STAT_FILE);
-            return -1;
-	}
     }
     close(statfd);
 
@@ -157,33 +152,22 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
             b1 = b2+5; /* Skip "cpuN " */
         }
 
-        num_cpuline_elem = sscanf(b1, "%llu %llu %llu %llu %llu %llu %llu %llu %llu %llu",
-         &cusell, &cicell, &csysll, &cidell, &ciowll, &cirqll, &csoftll, &cstealll, &cguestll, &cguest_nicell);
-        DEBUGMSGTL(("cpu", "/proc/stat cpu line number of elements: %i\n", num_cpuline_elem));
+	if (!has_cpu_26 ||
+            sscanf(b1, "%llu %llu %llu %llu %llu %llu %llu", &cusell,
+                   &cicell, &csysll, &cidell, &ciowll, &cirqll, &csoftll) != 7) {
+	    has_cpu_26 = 0;
+	    sscanf(b1, "%llu %llu %llu %llu", &cusell, &cicell, &csysll,
+                   &cidell);
 
-        /* kernel 2.6.33 and above */
-        if (num_cpuline_elem == 10) {
-            cpu->guestnice_ticks = (unsigned long long)cguest_nicell;
-        }
-        /* kernel 2.6.24 and above */
-        if (num_cpuline_elem >= 9) {
-            cpu->guest_ticks = (unsigned long long)cguestll;
-        }
-        /* kernel 2.6.11 and above */
-        if (num_cpuline_elem >= 8) {
-            cpu->steal_ticks = (unsigned long long)cstealll;
-        }
-        /* kernel 2.6 */
-        if (num_cpuline_elem >= 5) {
-            cpu->wait_ticks   = (unsigned long long)ciowll;
-            cpu->intrpt_ticks = (unsigned long long)cirqll;
-            cpu->sirq_ticks   = (unsigned long long)csoftll;
-        }
-        /* rest */
-        cpu->user_ticks = (unsigned long long)cusell;
-        cpu->nice_ticks = (unsigned long long)cicell;
-        cpu->sys_ticks  = (unsigned long long)csysll;
-        cpu->idle_ticks = (unsigned long long)cidell;
+	} else {
+            cpu->wait_ticks   = (unsigned long)ciowll;
+            cpu->intrpt_ticks = (unsigned long)cirqll;
+            cpu->sirq_ticks   = (unsigned long)csoftll;
+ 	}
+        cpu->user_ticks = (unsigned long)cusell;
+        cpu->nice_ticks = (unsigned long)cicell;
+        cpu->sys_ticks  = (unsigned long)csysll;
+        cpu->idle_ticks = (unsigned long)cidell;
     }
     if ( b1 == buff ) {
 	if (first)
@@ -221,40 +205,33 @@ void _cpu_load_swap_etc( char *buff, netsnmp_cpu_info *cpu ) {
     unsigned long long pin, pout, swpin, swpout;
     unsigned long long itot, iticks, ctx;
 
-    if (has_vmstat) {
-      vmstatfd = open(VMSTAT_FILE, O_RDONLY, 0);
-      if (vmstatfd == -1 ) {
-            snmp_log(LOG_ERR, "cannot open %s\n", VMSTAT_FILE);
-            has_vmstat = 0;
-      } else {
+    if (has_vmstat && (vmstatfd = open(VMSTAT_FILE, O_RDONLY, 0)) != -1) {
         if (vmbsize == 0) {
 	    vmbsize = getpagesize()-1;
-	    vmbuff = (char*)malloc(vmbsize+1);
+	    vmbuff = malloc(vmbsize+1);
         }
         while ((bytes_read = read(vmstatfd, vmbuff, vmbsize)) == vmbsize) {
 	    vmbsize += BUFSIZ;
-	    vmbuff = (char*)realloc(vmbuff, vmbsize+1);
+	    vmbuff = realloc(vmbuff, vmbsize+1);
 	    close(vmstatfd);
 	    vmstatfd = open(VMSTAT_FILE, O_RDONLY, 0);
-	    if (vmstatfd == -1) {
-                snmp_log_perror("cannot open " VMSTAT_FILE);
-                return;
-	    }
         }
         close(vmstatfd);
+
         if ( bytes_read < 0 ) {
-            snmp_log_perror(VMSTAT_FILE "read error");
-            return;
+            snmp_log_perror(STAT_FILE "read error");
+            return -1;
         }
         vmbuff[bytes_read] = '\0';
-      }
     }
+    else
+        has_vmstat = 0;
 
     if (has_vmstat) {
 	b = strstr(vmbuff, "pgpgin ");
 	if (b) {
 	    sscanf(b, "pgpgin %llu", &pin);
-            cpu->pageIn  = (unsigned long long)pin*2;  /* ??? */
+            cpu->pageIn  = (unsigned long)pin*2;  /* ??? */
 	} else {
 	    if (first)
 		snmp_log(LOG_ERR, "No pgpgin line in %s\n", VMSTAT_FILE);
@@ -263,7 +240,7 @@ void _cpu_load_swap_etc( char *buff, netsnmp_cpu_info *cpu ) {
 	b = strstr(vmbuff, "pgpgout ");
 	if (b) {
 	    sscanf(b, "pgpgout %llu", &pout);
-            cpu->pageOut = (unsigned long long)pout*2;  /* ??? */
+            cpu->pageOut = (unsigned long)pout*2;  /* ??? */
 	} else {
 	    if (first)
 		snmp_log(LOG_ERR, "No pgpgout line in %s\n", VMSTAT_FILE);
@@ -272,7 +249,7 @@ void _cpu_load_swap_etc( char *buff, netsnmp_cpu_info *cpu ) {
 	b = strstr(vmbuff, "pswpin ");
 	if (b) {
 	    sscanf(b, "pswpin %llu", &swpin);
-            cpu->swapIn  = (unsigned long long)swpin;
+            cpu->swapIn  = (unsigned long)swpin;
 	} else {
 	    if (first)
 		snmp_log(LOG_ERR, "No pswpin line in %s\n", VMSTAT_FILE);
@@ -281,7 +258,7 @@ void _cpu_load_swap_etc( char *buff, netsnmp_cpu_info *cpu ) {
 	b = strstr(vmbuff, "pswpout ");
 	if (b) {
 	    sscanf(b, "pswpout %llu", &swpout);
-            cpu->swapOut = (unsigned long long)swpout;
+            cpu->swapOut = (unsigned long)swpout;
 	} else {
 	    if (first)
 		snmp_log(LOG_ERR, "No pswpout line in %s\n", VMSTAT_FILE);
@@ -292,8 +269,8 @@ void _cpu_load_swap_etc( char *buff, netsnmp_cpu_info *cpu ) {
 	b = strstr(buff, "page ");
 	if (b) {
 	    sscanf(b, "page %llu %llu", &pin, &pout);
-            cpu->pageIn  = (unsigned long long)pin;
-            cpu->pageOut = (unsigned long long)pout;
+            cpu->pageIn  = (unsigned long)pin;
+            cpu->pageOut = (unsigned long)pout;
 	} else {
 	    if (first)
 		snmp_log(LOG_ERR, "No page line in %s\n", STAT_FILE);
@@ -302,8 +279,8 @@ void _cpu_load_swap_etc( char *buff, netsnmp_cpu_info *cpu ) {
 	b = strstr(buff, "swap ");
 	if (b) {
 	    sscanf(b, "swap %llu %llu", &swpin, &swpout);
-            cpu->swapIn  = (unsigned long long)swpin;
-            cpu->swapOut = (unsigned long long)swpout;
+            cpu->swapIn  = (unsigned long)swpin;
+            cpu->swapOut = (unsigned long)swpout;
 	} else {
 	    if (first)
 		snmp_log(LOG_ERR, "No swap line in %s\n", STAT_FILE);
@@ -311,10 +288,12 @@ void _cpu_load_swap_etc( char *buff, netsnmp_cpu_info *cpu ) {
 	}
     }
 
+
+
     b = strstr(buff, "intr ");
     if (b) {
 	sscanf(b, "intr %llu %llu", &itot, &iticks);
-        cpu->nInterrupts = (unsigned long long)itot;
+        cpu->nInterrupts = (unsigned long)itot;
         /* iticks not used? */
     } else {
 	if (first)
@@ -323,11 +302,12 @@ void _cpu_load_swap_etc( char *buff, netsnmp_cpu_info *cpu ) {
     b = strstr(buff, "ctxt ");
     if (b) {
 	sscanf(b, "ctxt %llu", &ctx);
-        cpu->nCtxSwitches = (unsigned long long)ctx;
+        cpu->nCtxSwitches = (unsigned long)ctx;
     } else {
 	if (first)
 	    snmp_log(LOG_ERR, "No ctxt line in %s\n", STAT_FILE);
     }
-    first = 0;
+
+
 }
 
diff --git a/agent/mibgroup/hardware/cpu/cpu_nlist.c b/agent/mibgroup/hardware/cpu/cpu_nlist.c
index 974028a..61ba756 100644
--- a/agent/mibgroup/hardware/cpu/cpu_nlist.c
+++ b/agent/mibgroup/hardware/cpu/cpu_nlist.c
@@ -3,7 +3,6 @@
  *     e.g. FreeBSD
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/hardware/cpu.h>
@@ -32,7 +31,6 @@
 #define CPU_SYMBOL  "cp_time"
 #define MEM_SYMBOL  "cnt"
 
-netsnmp_feature_require(hardware_cpu_copy_stats)
 void _cpu_copy_stats( netsnmp_cpu_info *cpu );
 
     /*
@@ -40,8 +38,7 @@ void _cpu_copy_stats( netsnmp_cpu_info *cpu );
      *   (including descriptions)
      */
 void init_cpu_nlist( void ) {
-    int            n;
-    size_t         i;
+    int            i, n;
     int            ncpu_mib[] = { CTL_HW, HW_NCPU  };
     int           model_mib[] = { CTL_HW, HW_MODEL };
     char           descr[ SNMP_MAXBUF ];
@@ -76,12 +73,12 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
     auto_nlist( CPU_SYMBOL, (char *) cpu_stats, sizeof(cpu_stats));
     auto_nlist( MEM_SYMBOL, (char *)&mem_stats, sizeof(mem_stats));
 
-    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->idle_ticks = (unsigned long long)cpu_stats[CP_IDLE];
-    cpu->kern_ticks = (unsigned long long)cpu_stats[CP_SYS];
-    cpu->intrpt_ticks = (unsigned long long)cpu_stats[CP_INTR];
+    cpu->user_ticks = (unsigned long)cpu_stats[CP_USER];
+    cpu->nice_ticks = (unsigned long)cpu_stats[CP_NICE];
+    cpu->sys2_ticks = (unsigned long)cpu_stats[CP_SYS]+cpu_stats[CP_INTR];
+    cpu->idle_ticks = (unsigned long)cpu_stats[CP_IDLE];
+    cpu->kern_ticks = (unsigned long)cpu_stats[CP_SYS];
+    cpu->intrpt_ticks = (unsigned long)cpu_stats[CP_INTR];
         /* wait_ticks, sirq_ticks unused */
 
         /*
@@ -89,14 +86,14 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
          *   XXX - Do these really belong here ?
          */
 #if defined(openbsd2) || defined(darwin)
-    cpu->swapIn  = (unsigned long long)mem_stats.v_swpin;
-    cpu->swapOut = (unsigned long long)mem_stats.v_swpout;
+    cpu->swapIn  = (unsigned long)mem_stats.v_swpin;
+    cpu->swapOut = (unsigned long)mem_stats.v_swpout;
 #else
-    cpu->swapIn  = (unsigned long long)mem_stats.v_swappgsin+mem_stats.v_vnodepgsin;
-    cpu->swapOut = (unsigned long long)mem_stats.v_swappgsout+mem_stats.v_vnodepgsout;
+    cpu->swapIn  = (unsigned long)mem_stats.v_swappgsin+mem_stats.v_vnodepgsin;
+    cpu->swapOut = (unsigned long)mem_stats.v_swappgsout+mem_stats.v_vnodepgsout;
 #endif
-    cpu->nInterrupts  = (unsigned long long)mem_stats.v_intr;
-    cpu->nCtxSwitches = (unsigned long long)mem_stats.v_swtch;
+    cpu->nInterrupts  = (unsigned long)mem_stats.v_intr;
+    cpu->nCtxSwitches = (unsigned long)mem_stats.v_swtch;
 
 #ifdef PER_CPU_INFO
     for ( i = 0; i < n; i++ ) {
diff --git a/agent/mibgroup/hardware/cpu/cpu_nlist.h b/agent/mibgroup/hardware/cpu/cpu_nlist.h
old mode 100644
new mode 100755
diff --git a/agent/mibgroup/hardware/cpu/cpu_pcp.c b/agent/mibgroup/hardware/cpu/cpu_pcp.c
index 94c7b5c..dcc2724 100644
--- a/agent/mibgroup/hardware/cpu/cpu_pcp.c
+++ b/agent/mibgroup/hardware/cpu/cpu_pcp.c
@@ -153,13 +153,13 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
        exit(1);
     }
 
-    cpu->wait_ticks   = (unsigned long long)resp->vset[CPUWAIT]->vlist[0].value.lval / 10;
-    cpu->intrpt_ticks = (unsigned long long)resp->vset[CPUINTR]->vlist[0].value.lval / 10;
+    cpu->wait_ticks   = (unsigned long)resp->vset[CPUWAIT]->vlist[0].value.lval / 10;
+    cpu->intrpt_ticks = (unsigned long)resp->vset[CPUINTR]->vlist[0].value.lval / 10;
     /*cpu->sirq_ticks   = (unsigned long)csoftll / 10;*/
-    cpu->user_ticks = (unsigned long long)resp->vset[CPUUSER]->vlist[0].value.lval / 10;
+    cpu->user_ticks = (unsigned long)resp->vset[CPUUSER]->vlist[0].value.lval / 10;
     /*cpu->nice_ticks = (unsigned long)cicell / 10;*/
-    cpu->sys_ticks  = (unsigned long long)resp->vset[CPUSYS]->vlist[0].value.lval / 10;
-    cpu->idle_ticks = (unsigned long long)resp->vset[CPUIDLE]->vlist[0].value.lval / 10;
+    cpu->sys_ticks  = (unsigned long)resp->vset[CPUSYS]->vlist[0].value.lval / 10;
+    cpu->idle_ticks = (unsigned long)resp->vset[CPUIDLE]->vlist[0].value.lval / 10;
 
 
         /*
@@ -168,12 +168,12 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
          */
     /*cpu = netsnmp_cpu_get_byIdx( -1, 0 );*/
     /*_cpu_load_swap_etc( buff, cpu );*/
-    cpu->pageIn  = (unsigned long long)resp->vset[PAGESIN]->vlist[0].value.lval;
-    cpu->pageOut = (unsigned long long)resp->vset[PAGESOUT]->vlist[0].value.lval;
-    cpu->swapIn  = (unsigned long long)resp->vset[SWAPIN]->vlist[0].value.lval;
-    cpu->swapOut = (unsigned long long)resp->vset[SWAPOUT]->vlist[0].value.lval;
-    cpu->nInterrupts = (unsigned long long)resp->vset[INTR]->vlist[0].value.lval;
-    cpu->nCtxSwitches = (unsigned long long)resp->vset[CTXT]->vlist[0].value.lval;
+    cpu->pageIn  = (unsigned long)resp->vset[PAGESIN]->vlist[0].value.lval;
+    cpu->pageOut = (unsigned long)resp->vset[PAGESOUT]->vlist[0].value.lval;
+    cpu->swapIn  = (unsigned long)resp->vset[SWAPIN]->vlist[0].value.lval;
+    cpu->swapOut = (unsigned long)resp->vset[SWAPOUT]->vlist[0].value.lval;
+    cpu->nInterrupts = (unsigned long)resp->vset[INTR]->vlist[0].value.lval;
+    cpu->nCtxSwitches = (unsigned long)resp->vset[CTXT]->vlist[0].value.lval;
 
     /*
      * XXX - TODO: extract per-CPU statistics
diff --git a/agent/mibgroup/hardware/cpu/cpu_perfstat.c b/agent/mibgroup/hardware/cpu/cpu_perfstat.c
index 5f58190..c15fa2f 100644
--- a/agent/mibgroup/hardware/cpu/cpu_perfstat.c
+++ b/agent/mibgroup/hardware/cpu/cpu_perfstat.c
@@ -3,7 +3,6 @@
  *     e.g. AIX
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/hardware/cpu.h>
@@ -12,10 +11,8 @@
 #include <unistd.h>
 #include <sys/types.h>
 
-#include <sys/protosw.h>
 #include <libperfstat.h>
 
-netsnmp_feature_require(hardware_cpu_copy_stats)
 void _cpu_copy_stats( netsnmp_cpu_info *cpu );
 
     /*
@@ -30,7 +27,7 @@ void init_cpu_perfstat( void ) {
     strcpy(cpu->name, "Overall CPU statistics");
 
     cpu_num = perfstat_cpu( NULL, NULL, sizeof(perfstat_cpu_t), 0 );
-    cs2 = (perfstat_cpu_t*)malloc( cpu_num*sizeof(perfstat_cpu_t));
+    cs2 = malloc( cpu_num*sizeof(perfstat_cpu_t));
  
     strcpy( name.name, "");
     if (perfstat_cpu(&name, cs2, sizeof(perfstat_cpu_t), cpu_num) > 0) {
@@ -58,27 +55,27 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
                      sizeof(perfstat_cpu_total_t), 1) > 0) {
 
         /* Returns 'u_longlong_t' statistics */
-        cpu->user_ticks = (unsigned long long)cs.user / cs.ncpus;
-        cpu->sys_ticks  = ((unsigned long long)cs.sys + (unsigned long long)cs.wait) / cs.ncpus;
-        cpu->kern_ticks = (unsigned long long)cs.sys / cs.ncpus;
-        cpu->wait_ticks = (unsigned long long)cs.wait / cs.ncpus;
-        cpu->idle_ticks = (unsigned long long)cs.idle / cs.ncpus;
+        cpu->user_ticks = (unsigned long)cs.user / cs.ncpus;
+        cpu->sys_ticks  = ((unsigned long)cs.sys + (unsigned long)cs.wait) / cs.ncpus;
+        cpu->kern_ticks = (unsigned long)cs.sys / cs.ncpus;
+        cpu->wait_ticks = (unsigned long)cs.wait / cs.ncpus;
+        cpu->idle_ticks = (unsigned long)cs.idle / cs.ncpus;
         /* intrpt_ticks, sirq_ticks, nice_ticks unused */
     
         /*
          * Interrupt/Context Switch statistics
          *   XXX - Do these really belong here ?
          */
-        cpu->pageIn       = (unsigned long long)cs.sysread;
-        cpu->pageOut      = (unsigned long long)cs.syswrite;
-        cpu->nInterrupts  = (unsigned long long)cs.devintrs + cs.softintrs;
-        cpu->nCtxSwitches = (unsigned long long)cs.pswitch;
+        cpu->pageIn       = (unsigned long)cs.sysread;
+        cpu->pageOut      = (unsigned long)cs.syswrite;
+        cpu->nInterrupts  = (unsigned long)cs.devintrs + cs.softintrs;
+        cpu->nCtxSwitches = (unsigned long)cs.pswitch;
     }
 
     if (perfstat_memory_total((perfstat_id_t *)NULL, &ms,
                      sizeof(perfstat_memory_total_t), 1) > 0) {
-        cpu->swapIn  = (unsigned long long)ms.pgspins;
-        cpu->swapOut = (unsigned long long)ms.pgspouts;
+        cpu->swapIn  = (unsigned long)ms.pgspins;
+        cpu->swapOut = (unsigned long)ms.pgspouts;
     }
 
 
@@ -86,19 +83,19 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
      * Per-CPU statistics
      */
     n   = cs.ncpus;   /* XXX - Compare against cpu_num */
-    cs2 = (perfstat_cpu_t*)malloc( n*sizeof(perfstat_cpu_t));
+    cs2 = 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++ ) {
             cpu = netsnmp_cpu_get_byIdx( i, 0 );
-            cpu->user_ticks = (unsigned long long)cs2[i].user;
-            cpu->sys_ticks  = (unsigned long long)cs2[i].sys + (unsigned long long)cs2[i].wait;
-            cpu->kern_ticks = (unsigned long long)cs2[i].sys;
-            cpu->wait_ticks = (unsigned long long)cs2[i].wait;
-            cpu->idle_ticks = (unsigned long long)cs2[i].idle;
-            cpu->pageIn     = (unsigned long long)cs2[i].sysread;
-            cpu->pageOut    = (unsigned long long)cs2[i].syswrite;
-            cpu->nCtxSwitches = (unsigned long long)cs2[i].pswitch;
+            cpu->user_ticks = (unsigned long)cs2[i].user;
+            cpu->sys_ticks  = (unsigned long)cs2[i].sys + (unsigned long)cs2[i].wait;
+            cpu->kern_ticks = (unsigned long)cs2[i].sys;
+            cpu->wait_ticks = (unsigned long)cs2[i].wait;
+            cpu->idle_ticks = (unsigned long)cs2[i].idle;
+            cpu->pageIn     = (unsigned long)cs2[i].sysread;
+            cpu->pageOut    = (unsigned long)cs2[i].syswrite;
+            cpu->nCtxSwitches = (unsigned long)cs2[i].pswitch;
             /* Interrupt stats only apply overall, not per-CPU */
         }
     } else {
diff --git a/agent/mibgroup/hardware/cpu/cpu_perfstat.h b/agent/mibgroup/hardware/cpu/cpu_perfstat.h
old mode 100644
new mode 100755
diff --git a/agent/mibgroup/hardware/cpu/cpu_pstat.c b/agent/mibgroup/hardware/cpu/cpu_pstat.c
index 35c1d63..c68739b 100644
--- a/agent/mibgroup/hardware/cpu/cpu_pstat.c
+++ b/agent/mibgroup/hardware/cpu/cpu_pstat.c
@@ -72,13 +72,13 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
 
     pstat_getdynamic(&psd, sizeof(psd), 1, 0);
     /* XXX - Compare cpu_num against psd.psd_proc_cnt */
-    cpu->user_ticks = (unsigned long long)psd.psd_cpu_time[CP_USER];
-    cpu->nice_ticks = (unsigned long long)psd.psd_cpu_time[CP_NICE];
-    cpu->sys2_ticks = (unsigned long long)psd.psd_cpu_time[CP_SYS]+
+    cpu->user_ticks = (unsigned long)psd.psd_cpu_time[CP_USER];
+    cpu->nice_ticks = (unsigned long)psd.psd_cpu_time[CP_NICE];
+    cpu->sys2_ticks = (unsigned long)psd.psd_cpu_time[CP_SYS]+
                                      psd.psd_cpu_time[CP_WAIT];
-    cpu->idle_ticks = (unsigned long long)psd.psd_cpu_time[CP_IDLE];
-    cpu->wait_ticks = (unsigned long long)psd.psd_cpu_time[CP_WAIT];
-    cpu->kern_ticks = (unsigned long long)psd.psd_cpu_time[CP_SYS];
+    cpu->idle_ticks = (unsigned long)psd.psd_cpu_time[CP_IDLE];
+    cpu->wait_ticks = (unsigned long)psd.psd_cpu_time[CP_WAIT];
+    cpu->kern_ticks = (unsigned long)psd.psd_cpu_time[CP_SYS];
         /* XXX - record (sum of) "all other ticks" */
         /* intrpt_ticks, sirq_ticks unused */
 
@@ -87,21 +87,21 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
          *   XXX - Do these really belong here ?
          */
     pstat_getvminfo(&psv, sizeof(psv), 1, 0);
-    cpu->swapIn  = (unsigned long long)psv.psv_sswpin;
-    cpu->swapOut = (unsigned long long)psv.psv_sswpout;
-    cpu->nInterrupts  = (unsigned long long)psv.psv_sintr;
-    cpu->nCtxSwitches = (unsigned long long)psv.psv_sswtch;
+    cpu->swapIn  = (unsigned long)psv.psv_sswpin;
+    cpu->swapOut = (unsigned long)psv.psv_sswpout;
+    cpu->nInterrupts  = (unsigned long)psv.psv_sintr;
+    cpu->nCtxSwitches = (unsigned long)psv.psv_sswtch;
 
 
     for ( i = 0; i < psd.psd_proc_cnt; i++ ) {
         cpu = netsnmp_cpu_get_byIdx( i, 0 );
-        cpu->user_ticks = (unsigned long long)psd.psd_mp_cpu_time[i][CP_USER];
-        cpu->nice_ticks = (unsigned long long)psd.psd_mp_cpu_time[i][CP_NICE];
-        cpu->sys2_ticks = (unsigned long long)psd.psd_mp_cpu_time[i][CP_SYS]+
+        cpu->user_ticks = (unsigned long)psd.psd_mp_cpu_time[i][CP_USER];
+        cpu->nice_ticks = (unsigned long)psd.psd_mp_cpu_time[i][CP_NICE];
+        cpu->sys2_ticks = (unsigned long)psd.psd_mp_cpu_time[i][CP_SYS]+
                                          psd.psd_mp_cpu_time[i][CP_WAIT];
-        cpu->idle_ticks = (unsigned long long)psd.psd_mp_cpu_time[i][CP_IDLE];
-        cpu->wait_ticks = (unsigned long long)psd.psd_mp_cpu_time[i][CP_WAIT];
-        cpu->kern_ticks = (unsigned long long)psd.psd_mp_cpu_time[i][CP_SYS];
+        cpu->idle_ticks = (unsigned long)psd.psd_mp_cpu_time[i][CP_IDLE];
+        cpu->wait_ticks = (unsigned long)psd.psd_mp_cpu_time[i][CP_WAIT];
+        cpu->kern_ticks = (unsigned long)psd.psd_mp_cpu_time[i][CP_SYS];
         /* XXX - record (sum of) "all other ticks" */
     }
 
diff --git a/agent/mibgroup/hardware/cpu/cpu_pstat.h b/agent/mibgroup/hardware/cpu/cpu_pstat.h
old mode 100644
new mode 100755
diff --git a/agent/mibgroup/hardware/cpu/cpu_sysctl.c b/agent/mibgroup/hardware/cpu/cpu_sysctl.c
index 5599a58..466af93 100644
--- a/agent/mibgroup/hardware/cpu/cpu_sysctl.c
+++ b/agent/mibgroup/hardware/cpu/cpu_sysctl.c
@@ -3,7 +3,6 @@
  *     e.g. BSD/OS, NetBSD, OpenBSD, later Darwin releases
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/hardware/cpu.h>
@@ -31,8 +30,6 @@
 #include <vm/vm_extern.h>
 #endif
 
-netsnmp_feature_require(hardware_cpu_copy_stats)
-
 void _cpu_copy_stats( netsnmp_cpu_info *cpu );
 
     /*
@@ -41,25 +38,18 @@ void _cpu_copy_stats( netsnmp_cpu_info *cpu );
      */
 void init_cpu_sysctl( void ) {
     int               i, n;
-    size_t            siz;
     int               ncpu_mib[]  = { CTL_HW, HW_NCPU };
-#if !(defined(__NetBSD__) && ( defined(__i386__) || defined(__x86_64__) ) )
     int               model_mib[] = { CTL_HW, HW_MODEL };
-#endif
     char              descr[ SNMP_MAXBUF ];
     netsnmp_cpu_info  *cpu = netsnmp_cpu_get_byIdx( -1, 1 );
     strcpy(cpu->name, "Overall CPU statistics");
 
-    siz = sizeof(n);
-    sysctl(ncpu_mib, 2, &n, &siz, NULL, 0);
+    i = sizeof(n);
+    sysctl(ncpu_mib, 2, &n, (void *)&i, NULL, 0);
     if ( n <= 0 )
         n = 1;   /* Single CPU system */
-    siz = sizeof(descr);
-#if defined(__NetBSD__) && ( defined(__i386__) || defined(__x86_64__) )
-    sysctlbyname("machdep.cpu_brand", descr, &siz, NULL, 0);
-#else
-    sysctl(model_mib, 2, descr, &siz, NULL, 0);
-#endif
+    i = sizeof(descr);
+    sysctl(model_mib, 2, descr, (void *)&i, NULL, 0);
     for ( i = 0; i < n; i++ ) {
         cpu = netsnmp_cpu_get_byIdx( i, 1 );
         cpu->status = 2;  /* running */
@@ -70,18 +60,18 @@ void init_cpu_sysctl( void ) {
 }
 
 
-#if defined(__NetBSD__)
-#define NETSNMP_CPU_STATS uint64_t
-#else
 #define NETSNMP_CPU_STATS long
-#endif
-
-#if defined(__NetBSD__)
-#define NETSNMP_KERN_CPU  KERN_CP_TIME
-#elif defined(KERN_CPUSTATS)              /* BSDi */
+#if defined(KERN_CPUSTATS)                /* BSDi */
 #define NETSNMP_KERN_CPU  KERN_CPUSTATS
 #elif defined(KERN_CPTIME)                /* OpenBSD */
 #define NETSNMP_KERN_CPU  KERN_CPTIME
+#elif defined(KERN_CP_TIME)               /* NetBSD */
+#define NETSNMP_KERN_CPU  KERN_CP_TIME
+
+#if defined(netbsdelf3)
+#undef  NETSNMP_CPU_STATS 
+#define NETSNMP_CPU_STATS uint64_t
+#endif
 
 #elif defined(__FreeBSD__)
 #define NETSNMP_KERN_CPU  0    /* dummy value - sysctlnametomib(2) should be used */
@@ -147,9 +137,7 @@ void init_cpu_sysctl( void ) {
      * 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
@@ -159,31 +147,29 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
      * 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
     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;
+    size_t         mcpu_size  = sizeof(NETSNMP_KERN_MCPU_TYPE);
 #endif
     NETSNMP_VM_STATS_TYPE mem_stats;
     int            mem_mib[] = { CTL_VM, NETSNMP_VM_STATS };
     size_t         mem_size  = sizeof(NETSNMP_VM_STATS_TYPE);
     netsnmp_cpu_info *cpu = netsnmp_cpu_get_byIdx( -1, 0 );
 
-#if (defined(__FreeBSD__) || defined(__NetBSD__))
+#if defined(__FreeBSD__)
     sysctlbyname("kern.cp_time", cpu_stats, &cpu_size, NULL, 0);
 #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 = (unsigned long)cpu_stats[CP_USER];
+    cpu->nice_ticks = (unsigned long)cpu_stats[CP_NICE];
+    cpu->sys2_ticks = (unsigned long)cpu_stats[CP_SYS]+cpu_stats[CP_INTR];
+    cpu->kern_ticks = (unsigned long)cpu_stats[CP_SYS];
+    cpu->idle_ticks = (unsigned long)cpu_stats[CP_IDLE];
+    cpu->intrpt_ticks = (unsigned long)cpu_stats[CP_INTR];
         /* wait_ticks, sirq_ticks unused */
     
         /*
@@ -191,21 +177,21 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
          *   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  = (unsigned long)mem_stats.NS_VM_INTR;
+    cpu->nCtxSwitches = (unsigned long)mem_stats.NS_VM_SWTCH;
+    cpu->swapIn       = (unsigned long)mem_stats.NS_VM_SWAPIN;
+    cpu->swapOut      = (unsigned long)mem_stats.NS_VM_SWAPOUT;
 #ifdef NS_VM_PAGEIN
-    cpu->pageIn       = (unsigned long long)mem_stats.NS_VM_PAGEIN;
+    cpu->pageIn       = (unsigned long)mem_stats.NS_VM_PAGEIN;
 #endif
 #ifdef NS_VM_PAGEOUT
-    cpu->pageOut      = (unsigned long long)mem_stats.NS_VM_PAGEOUT;
+    cpu->pageOut      = (unsigned long)mem_stats.NS_VM_PAGEOUT;
 #endif
 
 #ifdef NETSNMP_KERN_MCPU
-    mcpu_size  = cpu_num*sizeof(NETSNMP_KERN_MCPU_TYPE);
-    mcpu_stats = malloc(mcpu_size);
-    sysctl(mcpu_mib, 2, mcpu_stats, &mcpu_size, NULL, 0);
+    mcpu_stats = malloc(cpu_num*sizeof(NETSNMP_KERN_MCPU_TYPE));
+    sysctl(mcpu_mib, 2, mcpu_stats,
+           cpu_num*sizeof(NETSNMP_KERN_MCPU_TYPE), NULL, 0);
     for ( i = 0; i < cpu_num; i++ ) {
         cpu = netsnmp_cpu_get_byIdx( i, 0 );
         /* XXX - per-CPU statistics - mcpu_mib[i].??? */
diff --git a/agent/mibgroup/hardware/cpu/cpu_sysctl.h b/agent/mibgroup/hardware/cpu/cpu_sysctl.h
old mode 100644
new mode 100755
diff --git a/agent/mibgroup/hardware/cpu/cpu_sysinfo.c b/agent/mibgroup/hardware/cpu/cpu_sysinfo.c
index ed1f357..d510308 100644
--- a/agent/mibgroup/hardware/cpu/cpu_sysinfo.c
+++ b/agent/mibgroup/hardware/cpu/cpu_sysinfo.c
@@ -91,20 +91,20 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic )
     }
 
     DEBUGMSGTL(("cpu_sysinfo", "total cpu kernel: %lu\n", sinfo_gen->cpu[CPU_KERNEL]));
-    cpu->sys2_ticks  = (unsigned long long) sinfo_gen->cpu[CPU_KERNEL] + (unsigned long long) sinfo_gen->cpu[CPU_SXBRK] + (unsigned long long) sinfo_gen->cpu[CPU_INTR];
-    cpu->kern_ticks  = (unsigned long long) sinfo_gen->cpu[CPU_KERNEL];
-    cpu->intrpt_ticks = (unsigned long long) sinfo_gen->cpu[CPU_INTR];
-    cpu->user_ticks = (unsigned long long) sinfo_gen->cpu[CPU_USER];
-    cpu->wait_ticks   = (unsigned long long) sinfo_gen->cpu[CPU_WAIT];
-    cpu->idle_ticks = (unsigned long long) sinfo_gen->cpu[CPU_IDLE];
+    cpu->sys2_ticks  = (unsigned long) sinfo_gen->cpu[CPU_KERNEL] + (unsigned long) sinfo_gen->cpu[CPU_SXBRK] + (unsigned long) sinfo_gen->cpu[CPU_INTR];
+    cpu->kern_ticks  = (unsigned long) sinfo_gen->cpu[CPU_KERNEL];
+    cpu->intrpt_ticks = (unsigned long) sinfo_gen->cpu[CPU_INTR];
+    cpu->user_ticks = (unsigned long) sinfo_gen->cpu[CPU_USER];
+    cpu->wait_ticks   = (unsigned long) sinfo_gen->cpu[CPU_WAIT];
+    cpu->idle_ticks = (unsigned long) sinfo_gen->cpu[CPU_IDLE];
 
     /* XXX - Do these really belong here ? */
-    cpu->pageIn  = (unsigned long long)0;
-    cpu->pageOut = (unsigned long long)0;
-    cpu->swapIn  = (unsigned long long)sinfo_gen->swapin;
-    cpu->swapOut = (unsigned long long)sinfo_gen->swapout;
-    cpu->nInterrupts = (unsigned long long)sinfo_gen->intr_svcd;
-    cpu->nCtxSwitches = (unsigned long long)sinfo_gen->pswitch;
+    cpu->pageIn  = (unsigned long)0;
+    cpu->pageOut = (unsigned long)0;
+    cpu->swapIn  = (unsigned long)sinfo_gen->swapin;
+    cpu->swapOut = (unsigned long)sinfo_gen->swapout;
+    cpu->nInterrupts = (unsigned long)sinfo_gen->intr_svcd;
+    cpu->nCtxSwitches = (unsigned long)sinfo_gen->pswitch;
 
     /* fetch individual cpu stats */
 
@@ -120,11 +120,11 @@ int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic )
         cpu = netsnmp_cpu_get_byIdx(i, 0);
 
         DEBUGMSGTL(("cpu_sysinfo", "cpu %u kernel: %lu\n", i, sinfo_cpus[i].cpu[CPU_KERNEL]));
-        cpu->sys2_ticks  = (unsigned long long)sinfo_cpus[i].cpu[CPU_KERNEL] + (unsigned long long) sinfo_cpus[i].cpu[CPU_SXBRK] + (unsigned long long)sinfo_cpus[i].cpu[CPU_INTR];
-        cpu->intrpt_ticks = (unsigned long long)sinfo_cpus[i].cpu[CPU_INTR];
-        cpu->user_ticks = (unsigned long long)sinfo_cpus[i].cpu[CPU_USER];
-        cpu->wait_ticks   = (unsigned long long)sinfo_cpus[i].cpu[CPU_WAIT];
-        cpu->idle_ticks = (unsigned long long)sinfo_cpus[i].cpu[CPU_IDLE];
+        cpu->sys2_ticks  = (unsigned long)sinfo_cpus[i].cpu[CPU_KERNEL] + (unsigned long) sinfo_cpus[i].cpu[CPU_SXBRK] + (unsigned long)sinfo_cpus[i].cpu[CPU_INTR];
+        cpu->intrpt_ticks = (unsigned long)sinfo_cpus[i].cpu[CPU_INTR];
+        cpu->user_ticks = (unsigned long)sinfo_cpus[i].cpu[CPU_USER];
+        cpu->wait_ticks   = (unsigned long)sinfo_cpus[i].cpu[CPU_WAIT];
+        cpu->idle_ticks = (unsigned long)sinfo_cpus[i].cpu[CPU_IDLE];
     }
 
     return 0;
diff --git a/agent/mibgroup/hardware/fsys.h b/agent/mibgroup/hardware/fsys.h
deleted file mode 100644
index 8cbf439..0000000
--- a/agent/mibgroup/hardware/fsys.h
+++ /dev/null
@@ -1,10 +0,0 @@
-config_require(hardware/fsys/hw_fsys)
-#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)
-#elif defined(HAVE_GETMNTENT) && !defined(irix6)
-config_require(hardware/fsys/fsys_mntent)
-#else
-config_require(hardware/fsys/fsys_void)
-#endif
diff --git a/agent/mibgroup/hardware/fsys/fsys_getfsstats.c b/agent/mibgroup/hardware/fsys/fsys_getfsstats.c
deleted file mode 100644
index 8e9468b..0000000
--- a/agent/mibgroup/hardware/fsys/fsys_getfsstats.c
+++ /dev/null
@@ -1,187 +0,0 @@
-#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/hardware/fsys.h>
-#include "hardware/fsys/hw_fsys.h"
-
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_MOUNT_H
-#include <sys/mount.h>
-#endif
-#if HAVE_SYS_STATVFS_H
-#include <sys/statvfs.h>
-#endif
-
-
-    /*
-     * Handle minor naming differences between statfs/statvfs
-     */
-#if defined(_VFS_NAMELEN)
-#define NSFS_NAMELEN  _VFS_NAMELEN
-#else
-#define NSFS_NAMELEN  MNAMELEN
-#endif
-
-#if defined(HAVE_GETVFSSTAT) && defined(__NetBSD__)
-#define NSFS_GETFSSTAT  getvfsstat
-#define NSFS_STATFS     statvfs
-#define NSFS_FLAGS      f_flag
-#else
-#define NSFS_GETFSSTAT  getfsstat
-#define NSFS_STATFS     statfs
-#define NSFS_FLAGS      f_flags
-#endif
-
-/*
-#if defined(HAVE_STATVFS)
-#define NSFS_STATFS     statvfs
-#define NSFS_FLAGS      f_flag
-#else
-#define NSFS_STATFS     statfs
-#define NSFS_FLAGS      f_flags
-#endif
-*/
-
-/*
-#if defined(HAVE_STATVFS) && defined(__NetBSD__)
-#define NSFS_NAMELEN    _VFS_NAMELEN
-#define NSFS_GETFSSTAT  getvfsstat
-#define NSFS_STATFS     statvfs
-#else
-#define NSFS_FLAGS      f_flags
-#define NSFS_NAMELEN    _VFS_NAMELEN
-#define NSFS_GETFSSTAT  getvfsstat
-#define NSFS_STATFS     statvfs
-#endif
-*/
-
-int
-_fs_type( char *typename )
-{
-    DEBUGMSGTL(("fsys:type", "Classifying %s\n", typename));
-
-    if ( !typename || *typename=='\0' )
-       return NETSNMP_FS_TYPE_UNKNOWN;
-
-#include "mounts.h"
-
-       /*
-        * List of mount types from <sys/mount.h>
-        */
-    else if ( !strcmp(typename, MOUNT_FFS) ||
-              !strcmp(typename, MOUNT_UFS) )
-       return NETSNMP_FS_TYPE_BERKELEY;
-    else if ( !strcmp(typename, MOUNT_NFS) )
-       return NETSNMP_FS_TYPE_NFS;
-    else if ( !strcmp(typename, MOUNT_MFS) )
-       return NETSNMP_FS_TYPE_MFS;
-    else if ( !strcmp(typename, MOUNT_MSDOS) ||
-              !strcmp(typename, MOUNT_MSDOSFS) )
-       return NETSNMP_FS_TYPE_FAT;
-    else if ( !strcmp(typename, MOUNT_AFS) )
-       return NETSNMP_FS_TYPE_AFS;
-    else if ( !strcmp(typename, MOUNT_CD9660) )
-       return NETSNMP_FS_TYPE_ISO9660;
-    else if ( !strcmp(typename, MOUNT_EXT2FS) )
-       return NETSNMP_FS_TYPE_EXT2;
-    else if ( !strcmp(typename, MOUNT_NTFS) )
-       return NETSNMP_FS_TYPE_NTFS;
-
-       /*
-        * NetBSD also recognises the following filesystem types:
-        *     MOUNT_NULL
-        *     MOUNT_OVERLAY
-        *     MOUNT_UMAP
-        *     MOUNT_UNION
-        *     MOUNT_CFS/CODA
-        *     MOUNT_FILECORE
-        *     MOUNT_SMBFS
-        *     MOUNT_PTYFS
-        * OpenBSD also recognises the following filesystem types:
-        *     MOUNT_LOFS
-        *     MOUNT_NCPFS
-        *     MOUNT_XFS
-        *     MOUNT_UDF
-        * Both of them recognise the following filesystem types:
-        *     MOUNT_LFS
-        *     MOUNT_FDESC
-        *     MOUNT_PORTAL
-        *     MOUNT_KERNFS
-        *     MOUNT_PROCFS
-        *     MOUNT_ADOSFS
-        *
-        * All of these filesystems are mapped to NETSNMP_FS_TYPE_OTHER
-        *   so will be picked up by the following default branch.
-        */
-    else
-       return NETSNMP_FS_TYPE_OTHER;
-}
-
-void
-netsnmp_fsys_arch_init( void )
-{
-    return;
-}
-
-void
-netsnmp_fsys_arch_load( void )
-{
-    int n, i;
-    struct NSFS_STATFS *stats;
-    netsnmp_fsys_info *entry;
-
-    /*
-     * Retrieve information about the currently mounted filesystems...
-     */
-    n = NSFS_GETFSSTAT( NULL, 0, 0 );
-    if ( n==0 )
-        return;
-    stats = (struct NSFS_STATFS *)malloc( n * sizeof( struct NSFS_STATFS ));
-    n = NSFS_GETFSSTAT( stats, n * sizeof( struct NSFS_STATFS ), MNT_NOWAIT );
-
-    /*
-     * ... and insert this into the filesystem container.
-     */
-    for ( i=0; i<n; i++ ) {
-        entry = netsnmp_fsys_by_path( stats[i].f_mntonname,
-                                      NETSNMP_FS_FIND_CREATE );
-        if (!entry)
-            continue;
-
-        strlcpy( entry->path,   stats[i].f_mntonname,   sizeof(entry->path));
-        entry->path[sizeof(entry->path)-1] = '\0';
-        strlcpy( entry->device, stats[i].f_mntfromname, sizeof(entry->device));
-        entry->device[sizeof(entry->device)-1] = '\0';
-        entry->units = stats[i].f_bsize;    /* or f_frsize */
-        entry->size  = stats[i].f_blocks;
-        entry->used  = (stats[i].f_blocks - stats[i].f_bfree);
-        /* entry->avail is currently unsigned, so protect against negative
-         * values!
-         * This should be changed to a signed field.
-         */
-        if (stats[i].f_bavail < 0)
-            entry->avail = 0;
-        else
-            entry->avail = stats[i].f_bavail;
-        entry->inums_total = stats[i].f_files;
-        entry->inums_avail = stats[i].f_ffree;
-
-        entry->type = _fs_type( stats[i].f_fstypename );
-        entry->flags |= NETSNMP_FS_FLAG_ACTIVE;
-
-        if (! (stats[i].NSFS_FLAGS & MNT_LOCAL )) {
-            entry->flags |= NETSNMP_FS_FLAG_REMOTE;
-        }
-        if (  stats[i].NSFS_FLAGS & MNT_RDONLY ) {
-            entry->flags |= NETSNMP_FS_FLAG_RONLY;
-        }
-        if (  stats[i].NSFS_FLAGS & MNT_ROOTFS ) {
-            entry->flags |= NETSNMP_FS_FLAG_BOOTABLE;
-        }
-        netsnmp_fsys_calculate32(entry);
-    }
-
-    free(stats);
-}
diff --git a/agent/mibgroup/hardware/fsys/fsys_mntctl.c b/agent/mibgroup/hardware/fsys/fsys_mntctl.c
deleted file mode 100644
index a03019a..0000000
--- a/agent/mibgroup/hardware/fsys/fsys_mntctl.c
+++ /dev/null
@@ -1,179 +0,0 @@
-#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/hardware/fsys.h>
-
-#include <stdio.h>
-#if HAVE_SYS_MNTCTL_H
-#include <sys/mntctl.h>
-#endif
-#if HAVE_SYS_VMOUNT_H
-#include <sys/vmount.h>
-#endif
-#if HAVE_SYS_STATFS_H
-#include <sys/statfs.h>
-#endif
-#if HAVE_SYS_STATVFS_H
-#include <sys/statvfs.h>
-#endif
-
-
-int
-_fsys_remote( char *device, int type, char *host )
-{
-    if (( type == NETSNMP_FS_TYPE_NFS) ||
-        ( type == NETSNMP_FS_TYPE_AFS))
-        return 1;
-    else
-        return 0;
-}
-
-int
-_fsys_type( int type)
-{
-    DEBUGMSGTL(("fsys:type", "Classifying %d\n", type));
-
-    switch ( type ) {
-        case  MNT_AIX:
-        case  MNT_JFS:
-            return NETSNMP_FS_TYPE_BERKELEY;
-
-        case  MNT_CDROM:
-            return NETSNMP_FS_TYPE_ISO9660;
-
-        case  MNT_NFS:
-        case  MNT_NFS3:
-        case  MNT_AUTOFS:
-            return NETSNMP_FS_TYPE_NFS;
-
-    /*
-     *  The following code covers selected filesystems
-     *    which are not covered by the HR-TYPES enumerations,
-     *    but should still be monitored.
-     *  These are all mapped into type "other"
-     *
-     */    
-#ifdef MNT_NAMEFS
-        case MNT_NAMEFS:
-#endif
-#ifdef MNT_PROCFS
-        case MNT_PROCFS:
-#endif
-        case MNT_SFS:
-        case MNT_CACHEFS:
-            return NETSNMP_FS_TYPE_OTHER;
-
-    /*    
-     *  All other types are silently skipped
-     */
-        default:
-            return NETSNMP_FS_TYPE_IGNORE;
-    }
-    return NETSNMP_FS_TYPE_IGNORE;  /* Not reached */
-}
-
-void
-netsnmp_fsys_arch_init( void )
-{
-    return;
-}
-
-void
-netsnmp_fsys_arch_load( void )
-{
-    int  ret  = 0, i = 0;
-    uint size = 0;
-
-    struct vmount *aixmnt, *aixcurr;
-    char          *path;
-    struct statfs  stat_buf;
-    netsnmp_fsys_info *entry;
-    char               tmpbuf[1024];
-
-    /*
-     * Retrieve information about the currently mounted filesystems...
-     */
-    ret = mntctl(MCTL_QUERY, sizeof(uint), &size);
-    if ( ret != 0 || size<=0 ) {
-        snmp_log_perror( "initial mntctl failed" );
-        return;
-    }
-
-    aixmnt = (struct vmount *)malloc( size );
-    if ( aixmnt == NULL ) {
-        snmp_log_perror( "cannot allocate memory for mntctl data" );
-        return;
-    }
-
-    ret = mntctl(MCTL_QUERY, size, aixmnt );
-    if ( ret <= 0 ) {
-        free(aixmnt);
-        snmp_log_perror( "main mntctl failed" );
-        return;
-    }
-    aixcurr = aixmnt;
-
-
-    /*
-     * ... and insert this into the filesystem container.
-     */
-
-    for (i = 0;
-         i < ret;
-         i++, aixcurr = (struct vmount *) ((char*)aixcurr + aixcurr->vmt_length) ) {
-
-        path = vmt2dataptr( aixcurr, VMT_STUB );
-        entry = netsnmp_fsys_by_path( path, NETSNMP_FS_FIND_CREATE );
-        if (!entry) {
-            continue;
-        }
-
-        strlcpy(entry->path, path, sizeof(entry->path));
-        strlcpy(entry->device, vmt2dataptr(aixcurr, VMT_OBJECT),
-                sizeof(entry->device));
-        entry->type   = _fsys_type( aixcurr->vmt_gfstype );
-
-        if (!(entry->type & _NETSNMP_FS_TYPE_SKIP_BIT))
-            entry->flags |= NETSNMP_FS_FLAG_ACTIVE;
-
-        if ( _fsys_remote( entry->device, entry->type, vmt2dataptr( aixcurr, VMT_HOST) ))
-            entry->flags |= NETSNMP_FS_FLAG_REMOTE;
-        if ( aixcurr->vmt_flags & MNT_READONLY )
-            entry->flags |= NETSNMP_FS_FLAG_RONLY;
-        /*
-         *  The root device is presumably bootable.
-         *  Other partitions probably aren't!
-         */
-        if ((entry->path[0] == '/') && (entry->path[1] == '\0'))
-            entry->flags |= NETSNMP_FS_FLAG_BOOTABLE;
-
-        /*
-         *  XXX - identify removeable disks
-         */
-
-        /*
-         *  Optionally skip retrieving statistics for remote mounts
-         */
-        if ( (entry->flags & NETSNMP_FS_FLAG_REMOTE) &&
-            netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
-                                   NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES))
-            continue;
-
-        if ( statfs( entry->path, &stat_buf ) < 0 ) {
-            snprintf( tmpbuf, sizeof(tmpbuf), "Cannot statfs %s\n", entry->path );
-            snmp_log_perror( tmpbuf );
-            continue;
-        }
-        entry->units =  stat_buf.f_bsize;
-        entry->size  =  stat_buf.f_blocks;
-        entry->used  = (stat_buf.f_blocks - stat_buf.f_bfree);
-        entry->avail =  stat_buf.f_bavail;
-        entry->inums_total = stat_buf.f_files;
-        entry->inums_avail = stat_buf.f_ffree;
-        netsnmp_fsys_calculate32(entry);
-    }
-    free(aixmnt);
-    aixmnt  = NULL;
-    aixcurr = NULL;
-}
-
diff --git a/agent/mibgroup/hardware/fsys/fsys_mntent.c b/agent/mibgroup/hardware/fsys/fsys_mntent.c
deleted file mode 100644
index c5e711c..0000000
--- a/agent/mibgroup/hardware/fsys/fsys_mntent.c
+++ /dev/null
@@ -1,258 +0,0 @@
-#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/hardware/fsys.h>
-
-#include <stdio.h>
-#if HAVE_MNTENT_H
-#include <mntent.h>
-#endif
-#if HAVE_SYS_MNTTAB_H
-#include <sys/mnttab.h>
-#endif
-#if HAVE_SYS_VFS_H
-#include <sys/vfs.h>
-#endif
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_MOUNT_H
-#include <sys/mount.h>
-#endif
-#if HAVE_SYS_STATFS_H
-#include <sys/statfs.h>
-#endif
-#if HAVE_SYS_STATVFS_H
-#include <sys/statvfs.h>
-#endif
-
-#ifdef solaris2
-#define _NETSNMP_GETMNTENT_TWO_ARGS 1
-#else
-#undef  _NETSNMP_GETMNTENT_TWO_ARGS 
-#endif
-
-    /*
-     * Handle naming differences between getmntent() APIs
-     */
-#ifdef _NETSNMP_GETMNTENT_TWO_ARGS
-    /* Two-argument form (Solaris) */
-#define NSFS_MNTENT   struct mnttab
-#define NSFS_PATH     mnt_mountp
-#define NSFS_DEV      mnt_special
-#define NSFS_TYPE     mnt_fstype
-
-#define NSFS_STATFS   statvfs
-#define NSFS_SIZE     f_frsize
-
-#else
-    /* One-argument form (everything else?) */
-#define NSFS_MNTENT   struct mntent
-#define NSFS_PATH     mnt_dir
-#define NSFS_DEV      mnt_fsname
-#define NSFS_TYPE     mnt_type
-
-#define NSFS_STATFS   statfs
-#define NSFS_SIZE     f_bsize
-
-#endif
-
-int
-_fsys_remote( char *device, int type )
-{
-    if (( type == NETSNMP_FS_TYPE_NFS) ||
-        ( type == NETSNMP_FS_TYPE_AFS))
-        return 1;
-    else
-        return 0;
-}
-
-int
-_fsys_type( char *typename )
-{
-    DEBUGMSGTL(("fsys:type", "Classifying %s\n", typename));
-
-    if ( !typename || *typename=='\0' )
-       return NETSNMP_FS_TYPE_UNKNOWN;
-
-#include "mnttypes.h"
-
-    else if ( !strcmp(typename, MNTTYPE_FFS) )
-       return NETSNMP_FS_TYPE_BERKELEY;
-    else if ( !strcmp(typename, MNTTYPE_UFS) )
-       return _NETSNMP_FS_TYPE_UFS;   /* either N_FS_TYPE_BERKELEY or N_FS_TYPE_SYSV */
-    else if ( !strcmp(typename, MNTTYPE_SYSV) )
-       return NETSNMP_FS_TYPE_SYSV;
-    else if ( !strcmp(typename, MNTTYPE_PC) ||
-              !strcmp(typename, MNTTYPE_MSDOS) )
-       return NETSNMP_FS_TYPE_FAT;
-    else if ( !strcmp(typename, MNTTYPE_HFS) )
-       return NETSNMP_FS_TYPE_HFS;
-    else if ( !strcmp(typename, MNTTYPE_MFS) )
-       return NETSNMP_FS_TYPE_MFS;
-    else if ( !strcmp(typename, MNTTYPE_NTFS) )
-       return NETSNMP_FS_TYPE_NTFS;
-    else if ( !strcmp(typename, MNTTYPE_ISO9660) ||
-              !strcmp(typename, MNTTYPE_CD9660) )
-       return NETSNMP_FS_TYPE_ISO9660;
-    else if ( !strcmp(typename, MNTTYPE_CDFS) )
-       return _NETSNMP_FS_TYPE_CDFS;   /* either N_FS_TYPE_ISO9660 or N_FS_TYPE_ROCKRIDGE */
-    else if ( !strcmp(typename, MNTTYPE_HSFS) )
-       return NETSNMP_FS_TYPE_ROCKRIDGE;
-    else if ( !strcmp(typename, MNTTYPE_NFS)  ||
-              !strcmp(typename, MNTTYPE_NFS3) ||
-              !strcmp(typename, MNTTYPE_NFS4) ||
-              !strcmp(typename, MNTTYPE_CIFS) ||  /* i.e. SMB - ?? */
-              !strcmp(typename, MNTTYPE_SMBFS)    /* ?? */ )
-       return NETSNMP_FS_TYPE_NFS;
-    else if ( !strcmp(typename, MNTTYPE_NCPFS) )
-       return NETSNMP_FS_TYPE_NETWARE;
-    else if ( !strcmp(typename, MNTTYPE_AFS) )
-       return NETSNMP_FS_TYPE_AFS;
-    else if ( !strcmp(typename, MNTTYPE_EXT2) ||
-              !strcmp(typename, MNTTYPE_EXT3) ||
-              !strcmp(typename, MNTTYPE_EXT4) ||
-              !strcmp(typename, MNTTYPE_EXT2FS) ||
-              !strcmp(typename, MNTTYPE_EXT3FS) ||
-              !strcmp(typename, MNTTYPE_EXT4FS) )
-       return NETSNMP_FS_TYPE_EXT2;
-    else if ( !strcmp(typename, MNTTYPE_FAT32) ||
-              !strcmp(typename, MNTTYPE_VFAT) )
-       return NETSNMP_FS_TYPE_FAT32;
-
-    /*
-     *  The following code covers selected filesystems
-     *    which are not covered by the HR-TYPES enumerations,
-     *    but should still be monitored.
-     *  These are all mapped into type "other"
-     *
-     *    (The systems listed are not fixed in stone,
-     *     but are simply here to illustrate the principle!)
-     */    
-    else if ( !strcmp(typename, MNTTYPE_MVFS) ||
-              !strcmp(typename, MNTTYPE_TMPFS) ||
-              !strcmp(typename, MNTTYPE_GFS) ||
-              !strcmp(typename, MNTTYPE_GFS2) ||
-              !strcmp(typename, MNTTYPE_XFS) ||
-              !strcmp(typename, MNTTYPE_JFS) ||
-              !strcmp(typename, MNTTYPE_VXFS) ||
-              !strcmp(typename, MNTTYPE_REISERFS) ||
-              !strcmp(typename, MNTTYPE_OCFS2) ||
-              !strcmp(typename, MNTTYPE_CVFS) ||
-              !strcmp(typename, MNTTYPE_LOFS))
-       return NETSNMP_FS_TYPE_OTHER;
-
-    /*    
-     *  All other types are silently skipped
-     */
-    else
-       return NETSNMP_FS_TYPE_IGNORE;
-}
-
-void
-netsnmp_fsys_arch_init( void )
-{
-    return;
-}
-
-void
-netsnmp_fsys_arch_load( void )
-{
-    FILE              *fp=NULL;
-#ifdef _NETSNMP_GETMNTENT_TWO_ARGS
-    struct mnttab      mtmp;
-    struct mnttab     *m = &mtmp;
-#else
-    struct mntent     *m;
-#endif
-    struct NSFS_STATFS stat_buf;
-    netsnmp_fsys_info *entry;
-    char               tmpbuf[1024];
-
-    /*
-     * Retrieve information about the currently mounted filesystems...
-     */
-    fp = fopen( ETC_MNTTAB, "r" );   /* OR setmntent()?? */
-    if ( !fp ) {
-        snprintf( tmpbuf, sizeof(tmpbuf), "Cannot open %s\n", ETC_MNTTAB );
-        snmp_log_perror( tmpbuf );
-        return;
-    }
-
-    /*
-     * ... and insert this into the filesystem container.
-     */
-    while 
-#ifdef _NETSNMP_GETMNTENT_TWO_ARGS
-          ((getmntent(fp, m)) == 0 )
-#else
-          ((m = getmntent(fp)) != NULL )
-#endif
-    {
-        entry = netsnmp_fsys_by_path( m->NSFS_PATH, NETSNMP_FS_FIND_CREATE );
-        if (!entry) {
-            continue;
-        }
-
-        strlcpy(entry->path, m->NSFS_PATH, sizeof(entry->path));
-        strlcpy(entry->device, m->NSFS_DEV, sizeof(entry->device));
-        entry->type = _fsys_type(m->NSFS_TYPE);
-        if (!(entry->type & _NETSNMP_FS_TYPE_SKIP_BIT))
-            entry->flags |= NETSNMP_FS_FLAG_ACTIVE;
-
-        if ( _fsys_remote( entry->device, entry->type ))
-            entry->flags |= NETSNMP_FS_FLAG_REMOTE;
-#if HAVE_HASMNTOPT
-        if (hasmntopt( m, "ro" ))
-            entry->flags |= NETSNMP_FS_FLAG_RONLY;
-#endif
-        /*
-         *  The root device is presumably bootable.
-         *  Other partitions probably aren't!
-         *
-         *  XXX - what about /boot ??
-         */
-        if ((entry->path[0] == '/') &&
-            (entry->path[1] == '\0'))
-            entry->flags |= NETSNMP_FS_FLAG_BOOTABLE;
-
-        /*
-         *  XXX - identify removeable disks
-         */
-
-        /*
-         *  Optionally skip retrieving statistics for remote mounts
-         */
-        if ( (entry->flags & NETSNMP_FS_FLAG_REMOTE) &&
-            netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
-                                   NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES))
-            continue;
-
-#ifdef irix6
-        if ( NSFS_STATFS( entry->path, &stat_buf, sizeof(struct statfs), 0) < 0 )
-#else
-        if ( NSFS_STATFS( entry->path, &stat_buf ) < 0 )
-#endif
-        {
-            snprintf( tmpbuf, sizeof(tmpbuf), "Cannot statfs %s\n", entry->path );
-            snmp_log_perror( tmpbuf );
-            continue;
-        }
-        entry->units =  stat_buf.NSFS_SIZE;
-        entry->size  =  stat_buf.f_blocks;
-        entry->used  = (stat_buf.f_blocks - stat_buf.f_bfree);
-        /* entry->avail is currently unsigned, so protect against negative
-         * values!
-         * This should be changed to a signed field.
-         */
-        if (stat_buf.f_bavail < 0)
-            entry->avail = 0;
-        else
-            entry->avail =  stat_buf.f_bavail;
-        entry->inums_total = stat_buf.f_files;
-        entry->inums_avail = stat_buf.f_ffree;
-        netsnmp_fsys_calculate32(entry);
-    }
-    fclose( fp );
-}
-
diff --git a/agent/mibgroup/hardware/fsys/fsys_void.c b/agent/mibgroup/hardware/fsys/fsys_void.c
deleted file mode 100644
index 7edc344..0000000
--- a/agent/mibgroup/hardware/fsys/fsys_void.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#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/hardware/fsys.h>
-
-int
-_fsys_remote( char *device, int type )
-{
-    return 0;
-}
-
-int
-_fsys_type( char *typename )
-{
-    return NETSNMP_FS_TYPE_UNKNOWN;
-}
-
-void
-netsnmp_fsys_arch_init( void )
-{ }
-
-void
-netsnmp_fsys_arch_load( void )
-{ }
diff --git a/agent/mibgroup/hardware/fsys/hw_fsys.c b/agent/mibgroup/hardware/fsys/hw_fsys.c
deleted file mode 100644
index a6cd94d..0000000
--- a/agent/mibgroup/hardware/fsys/hw_fsys.c
+++ /dev/null
@@ -1,349 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include <net-snmp/agent/hardware/fsys.h>
-#ifdef HAVE_INTTYPES_H
-#include <inttypes.h>
-#endif
-
-netsnmp_feature_child_of(hw_fsys_get_container, netsnmp_unused)
-
-extern void             netsnmp_fsys_arch_load( void );
-extern void             netsnmp_fsys_arch_init( void );
-static int  _fsys_load( void );
-static void _fsys_free( void );
-
-static int _fsysAutoUpdate = 0;   /* 0 means on-demand caching */
-static void _fsys_update_stats( unsigned int, void* );
-
-netsnmp_cache     *_fsys_cache     = NULL;
-netsnmp_container *_fsys_container = NULL;
-static int         _fsys_idx       = 0;
-static netsnmp_fsys_info * _fsys_create_entry( void );
-
-void init_hw_fsys( void ) {
-
-    if ( _fsys_container )
-        return;   /* Already initialised */
-
-    DEBUGMSGTL(("fsys", "Initialise Hardware FileSystem module\n"));
-
-    /*
-     * Define a container to hold the list of filesystems
-     */
-    _fsys_container = netsnmp_container_find("fsysTable:table_container");
-    if ( NULL == _fsys_container ) {
-        snmp_log( LOG_ERR, "failed to create container for fsysTable");
-        return;
-    }
-    netsnmp_fsys_arch_init( );
-
-    /*
-     * If we're sampling the file system information automatically,
-     *   then arrange for this to be triggered regularly.
-     *
-     * If we're not sampling these values regularly,
-     *   create a suitable cache handler instead.
-     */
-    if ( _fsysAutoUpdate ) {
-        DEBUGMSGTL(("fsys", "Reloading Hardware FileSystems automatically (%d)\n",
-                               _fsysAutoUpdate));
-        snmp_alarm_register( _fsysAutoUpdate, SA_REPEAT,
-                             _fsys_update_stats, NULL );
-    }
-    else {
-        _fsys_cache = netsnmp_cache_create( 5, netsnmp_fsys_load,
-                                               netsnmp_fsys_free, NULL, 0 );
-        DEBUGMSGTL(("fsys", "Reloading Hardware FileSystems on-demand (%p)\n",
-                               _fsys_cache));
-    }
-}
-
-void shutdown_hw_fsys( void ) {
-    _fsys_free();
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_HW_FSYS_GET_CONTAINER
-/*
- *  Return the main fsys container
- */
-netsnmp_container *netsnmp_fsys_get_container( void ) { return _fsys_container; }
-#endif /* NETSNMP_FEATURE_REMOVE_HW_FSYS_GET_CONTAINER */
-
-/*
- *  Return the main fsys cache control structure (if defined)
- */
-netsnmp_cache *netsnmp_fsys_get_cache( void ) { return _fsys_cache; }
-
-
-/*
- * Wrapper routine for automatically updating fsys information
- */
-void
-_fsys_update_stats( unsigned int clientreg, void *data )
-{
-    _fsys_free();
-    _fsys_load();
-}
-
-/*
- * Wrapper routine for re-loading filesystem statistics on demand
- */
-int
-netsnmp_fsys_load( netsnmp_cache *cache, void *data )
-{
-    /* XXX - check cache timeliness */
-    return _fsys_load();
-}
-
-/*
- * Wrapper routine for releasing expired filesystem statistics
- */
-void
-netsnmp_fsys_free( netsnmp_cache *cache, void *data )
-{
-    _fsys_free();
-}
-
-
-/*
- * Architecture-independent processing of loading filesystem statistics
- */
-static int
-_fsys_load( void )
-{
-    netsnmp_fsys_arch_load();
-    /* XXX - update cache timestamp */
-    return 0;
-}
-
-/*
- * Architecture-independent release of filesystem statistics
- */
-static void
-_fsys_free( void )
-{
-    netsnmp_fsys_info *sp;
-
-    for (sp = CONTAINER_FIRST( _fsys_container );
-         sp;
-         sp = CONTAINER_NEXT(  _fsys_container, sp )) {
-
-         sp->flags &= ~NETSNMP_FS_FLAG_ACTIVE;
-    }
-}
-
-
-netsnmp_fsys_info *netsnmp_fsys_get_first( void ) {
-    return CONTAINER_FIRST( _fsys_container );
-}
-netsnmp_fsys_info *netsnmp_fsys_get_next( netsnmp_fsys_info *this_ptr ) {
-    return CONTAINER_NEXT( _fsys_container, this_ptr );
-}
-
-/*
- * Retrieve a filesystem entry based on the path where it is mounted,
- *  or (optionally) insert a new one into the container
- */
-netsnmp_fsys_info *
-netsnmp_fsys_by_path( char *path, int create_type )
-{
-    netsnmp_fsys_info *sp;
-
-    DEBUGMSGTL(("fsys:path", "Get filesystem entry (%s)\n", path));
-
-    /*
-     *  Look through the list for a matching entry
-     */
-        /* .. or use a secondary index container ?? */
-    for (sp = CONTAINER_FIRST( _fsys_container );
-         sp;
-         sp = CONTAINER_NEXT(  _fsys_container, sp )) {
-
-        if ( !strcmp( path, sp->path ))
-            return sp;
-    }
-
-    /*
-     * Not found...
-     */
-    if ( create_type == NETSNMP_FS_FIND_EXIST ) {
-        DEBUGMSGTL(("fsys:path", "No such filesystem entry\n"));
-        return NULL;
-    }
-
-    /*
-     * ... so let's create a new one
-     */
-    sp = _fsys_create_entry();
-    if (sp)
-        strlcpy(sp->path, path, sizeof(sp->path));
-    return sp;
-}
-
-
-/*
- * Retrieve a filesystem entry based on the hardware device,
- *   (or exported path for remote mounts).
- * (Optionally) insert a new one into the container.
- */
-netsnmp_fsys_info *
-netsnmp_fsys_by_device( char *device, int create_type )
-{
-    netsnmp_fsys_info *sp;
-
-    DEBUGMSGTL(("fsys:device", "Get filesystem entry (%s)\n", device));
-
-    /*
-     *  Look through the list for a matching entry
-     */
-        /* .. or use a secondary index container ?? */
-    for (sp = CONTAINER_FIRST( _fsys_container );
-         sp;
-         sp = CONTAINER_NEXT(  _fsys_container, sp )) {
-
-        if ( !strcmp( device, sp->device ))
-            return sp;
-    }
-
-    /*
-     * Not found...
-     */
-    if ( create_type == NETSNMP_FS_FIND_EXIST ) {
-        DEBUGMSGTL(("fsys:device", "No such filesystem entry\n"));
-        return NULL;
-    }
-
-    /*
-     * ... so let's create a new one
-     */
-    sp = _fsys_create_entry();
-    if (sp)
-        strlcpy(sp->device, device, sizeof(sp->device));
-    return sp;
-}
-
-
-netsnmp_fsys_info *
-_fsys_create_entry( void )
-{
-    netsnmp_fsys_info *sp;
-
-    sp = SNMP_MALLOC_TYPEDEF( netsnmp_fsys_info );
-    if ( sp ) {
-        /*
-         * Set up the index value.
-         *  
-         * All this trouble, just for a simple integer.
-         * Surely there must be a better way?
-         */
-        sp->idx.len  = 1;
-        sp->idx.oids = SNMP_MALLOC_TYPEDEF( oid );
-        sp->idx.oids[0] = ++_fsys_idx;
-    }
-
-    DEBUGMSGTL(("fsys:new", "Create filesystem entry (index = %d)\n", _fsys_idx));
-    CONTAINER_INSERT( _fsys_container, sp );
-    return sp;
-}
-
-
-/*
- *  Convert fsys size information to 1K units
- *    (attempting to avoid 32-bit overflow!)
- */
-unsigned long long
-_fsys_to_K( unsigned long long size, unsigned long long units )
-{
-    int factor = 1;
-
-    if ( units == 0 ) {
-        return 0;    /* XXX */
-    } else if ( units == 1024 ) {
-        return size;
-    } else if ( units == 512 ) {      /* To avoid unnecessary division */
-        return size/2;
-    } else if ( units < 1024 ) {
-        factor = 1024 / units;   /* Assuming power of two */
-        return (size / factor);
-    } else {
-        factor = units / 1024;   /* Assuming multiple of 1K */
-        return (size * factor);
-    }
-}
-
-unsigned long long
-netsnmp_fsys_size_ull( netsnmp_fsys_info *f) {
-    if ( !f ) {
-        return 0;
-    }
-    return _fsys_to_K( f->size, f->units );
-}
-
-unsigned long long
-netsnmp_fsys_used_ull( netsnmp_fsys_info *f) {
-    if ( !f ) {
-        return 0;
-    }
-    return _fsys_to_K( f->used, f->units );
-}
-
-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;
-}
-
-#ifndef INT32_MAX
-#define INT32_MAX 0x7fffffff
-#endif
-
-#ifndef PRIu64
-#define PRIu64 "llu"
-#endif
-
-/* recalculate f->size_32, used_32, avail_32 and units_32 from f->size & comp.*/
-void
-netsnmp_fsys_calculate32(netsnmp_fsys_info *f)
-{
-    unsigned long long s = f->size;
-    unsigned shift = 0;
-
-    while (s > INT32_MAX) {
-        s = s >> 1;
-        shift++;
-    }
-
-    f->size_32 = s;
-    f->units_32 = f->units << shift;
-    f->avail_32 = f->avail >> shift;
-    f->used_32 = f->used >> shift;
-
-    DEBUGMSGTL(("fsys", "Results of 32-bit conversion: size %" PRIu64 " -> %lu;"
-		" units %" PRIu64 " -> %lu; avail %" PRIu64 " -> %lu;"
-                " used %" PRIu64 " -> %lu\n",
-		(uint64_t)f->size, f->size_32, (uint64_t)f->units, f->units_32,
-		(uint64_t)f->avail, f->avail_32, (uint64_t)f->used, f->used_32));
-}
diff --git a/agent/mibgroup/hardware/fsys/hw_fsys.h b/agent/mibgroup/hardware/fsys/hw_fsys.h
deleted file mode 100644
index 31f90ef..0000000
--- a/agent/mibgroup/hardware/fsys/hw_fsys.h
+++ /dev/null
@@ -1,2 +0,0 @@
-void init_hw_fsys(void);
-void shutdown_hw_fsys( void );
diff --git a/agent/mibgroup/hardware/fsys/mnttypes.h b/agent/mibgroup/hardware/fsys/mnttypes.h
deleted file mode 100644
index ed4f590..0000000
--- a/agent/mibgroup/hardware/fsys/mnttypes.h
+++ /dev/null
@@ -1,175 +0,0 @@
-#ifndef _NETSNMP_FSYS_MNTTYPES_H
-#define _NETSNMP_FSYS_MNTTYPES_H
-/*
- *  Some mounts can map to one of two hrFS types
- *    (depending on other characteristics of the system)
- *  Note which should be used *before* defining any
- *    type tokens which may be missing.
- */
-
-#if (defined(BerkelyFS) && !defined(MNTTYPE_HFS)) || defined(solaris2)
-#define  _NETSNMP_FS_TYPE_UFS  NETSNMP_FS_TYPE_BERKELEY
-#else
-#define  _NETSNMP_FS_TYPE_UFS  NETSNMP_FS_TYPE_SYSV
-#endif
-
-#ifdef RockRidge
-#define  _NETSNMP_FS_TYPE_CDFS  NETSNMP_FS_TYPE_ROCKRIDGE
-#else
-#define  _NETSNMP_FS_TYPE_CDFS  NETSNMP_FS_TYPE_ISO9660
-#endif
-
-
-/*
- *  Ensure all recognised filesystem mount type tokens are
- *    available (even on systems where they're not used)
- */
-#ifndef MNTTYPE_AFS
-#define MNTTYPE_AFS      "afs"
-#endif
-#ifndef MNTTYPE_CDFS
-#define MNTTYPE_CDFS     "cdfs"
-#endif
-#ifndef MNTTYPE_CD9660
-#define MNTTYPE_CD9660   "cd9660"
-#endif
-#ifndef MNTTYPE_EXT2
-#define MNTTYPE_EXT2     "ext2"
-#endif
-#ifndef MNTTYPE_EXT3
-#define MNTTYPE_EXT3     "ext3"
-#endif
-#ifndef MNTTYPE_EXT4
-#define MNTTYPE_EXT4     "ext4"
-#endif
-#ifndef MNTTYPE_EXT2FS
-#define MNTTYPE_EXT2FS   "ext2fs"
-#endif
-#ifndef MNTTYPE_EXT3FS
-#define MNTTYPE_EXT3FS   "ext3fs"
-#endif
-#ifndef MNTTYPE_EXT4FS
-#define MNTTYPE_EXT4FS   "ext4fs"
-#endif
-#ifndef MNTTYPE_FAT32
-#define MNTTYPE_FAT32    "fat32"
-#endif
-#ifndef MNTTYPE_FFS
-#define MNTTYPE_FFS      "ffs"
-#endif
-#ifndef MNTTYPE_HFS
-#define MNTTYPE_HFS      "hfs"
-#endif
-#ifndef MNTTYPE_HSFS
-#define MNTTYPE_HSFS     "hsfs"
-#endif
-#ifndef MNTTYPE_ISO9660
-#define MNTTYPE_ISO9660  "iso9660"
-#endif
-#ifndef MNTTYPE_MFS
-#define MNTTYPE_MFS      "mfs"
-#endif
-#ifndef MNTTYPE_MSDOS
-#define MNTTYPE_MSDOS    "msdos"
-#endif
-#ifndef MNTTYPE_NCPFS
-#define MNTTYPE_NCPFS    "ncpfs"
-#endif
-#ifndef MNTTYPE_NFS
-#define MNTTYPE_NFS      "nfs"
-#endif
-#ifndef MNTTYPE_NFS3
-#define MNTTYPE_NFS3     "nfs3"
-#endif
-#ifndef MNTTYPE_NFS4
-#define MNTTYPE_NFS4     "nfs4"
-#endif
-#ifndef MNTTYPE_NTFS
-#define MNTTYPE_NTFS     "ntfs"
-#endif
-#ifndef MNTTYPE_PC
-#define MNTTYPE_PC       "pc"
-#endif
-#ifndef MNTTYPE_SMBFS
-#define MNTTYPE_SMBFS    "smbfs"
-#endif
-#ifndef MNTTYPE_CIFS
-#define MNTTYPE_CIFS     "cifs"
-#endif
-#ifndef MNTTYPE_SYSV
-#define MNTTYPE_SYSV     "sysv"
-#endif
-#ifndef MNTTYPE_UFS
-#define MNTTYPE_UFS      "ufs"
-#endif
-#ifndef MNTTYPE_VFAT
-#define MNTTYPE_VFAT     "vfat"
-#endif
-
-/*
- *  File systems to monitor, but not covered by HR-TYPES enumerations
- */
-#ifndef MNTTYPE_MVFS
-#define MNTTYPE_MVFS     "mvfs"
-#endif
-#ifndef MNTTYPE_TMPFS
-#define MNTTYPE_TMPFS    "tmpfs"
-#endif
-#ifndef MNTTYPE_GFS
-#define MNTTYPE_GFS      "gfs"
-#endif
-#ifndef MNTTYPE_GFS2
-#define MNTTYPE_GFS2     "gfs2"
-#endif
-#ifndef MNTTYPE_XFS
-#define MNTTYPE_XFS      "xfs"
-#endif
-#ifndef MNTTYPE_JFS
-#define MNTTYPE_JFS      "jfs"
-#endif
-#ifndef MNTTYPE_VXFS
-#define MNTTYPE_VXFS      "vxfs"
-#endif
-#ifndef MNTTYPE_REISERFS
-#define MNTTYPE_REISERFS "reiserfs"
-#endif
-#ifndef MNTTYPE_LOFS
-#define MNTTYPE_LOFS     "lofs"
-#endif
-#ifndef MNTTYPE_OCFS2
-#define MNTTYPE_OCFS2    "ocfs2"
-#endif
-#ifndef MNTTYPE_CVFS
-#define MNTTYPE_CVFS     "cvfs"
-#endif
-
-/*
- *  File systems to skip
- *    (Probably not strictly needed)
- */
-#ifndef MNTTYPE_APP
-#define MNTTYPE_APP      "app"
-#endif
-#ifndef MNTTYPE_DEVPTS
-#define MNTTYPE_DEVPTS   "devpts"
-#endif
-#ifndef MNTTYPE_IGNORE
-#define MNTTYPE_IGNORE   "ignore"
-#endif
-#ifndef MNTTYPE_PROC
-#define MNTTYPE_PROC     "proc"
-#endif
-#ifndef MNTTYPE_SYSFS
-#define MNTTYPE_SYSFS    "sysfs"
-#endif
-#ifndef MNTTYPE_USBFS
-#define MNTTYPE_USBFS    "usbfs"
-#endif
-#ifndef MNTTYPE_BINFMT
-#define MNTTYPE_BINFMT   "binfmt_misc"
-#endif
-#ifndef MNTTYPE_RPCPIPE
-#define MNTTYPE_RPCPIPE  "rpc_pipefs"
-#endif
-
-#endif /* _NETSNMP_FSYS_MNTTYPES_H */
diff --git a/agent/mibgroup/hardware/fsys/mounts.h b/agent/mibgroup/hardware/fsys/mounts.h
deleted file mode 100644
index 2148888..0000000
--- a/agent/mibgroup/hardware/fsys/mounts.h
+++ /dev/null
@@ -1,159 +0,0 @@
-#ifndef _NETSNMP_FSYS_MOUNTS_H
-#define _NETSNMP_FSYS_MOUNTS_H
-/*
- *  Some mounts can map to one of two hrFS types
- *    (depending on other characteristics of the system)
- *  Note which should be used *before* defining any
- *    type tokens which may be missing.
- */
-
-/*
-#if (defined(BerkelyFS) && !defined(MNTTYPE_HFS)) || defined(solaris2)
-#define  _NETSNMP_FS_TYPE_UFS  NETSNMP_FS_TYPE_BERKELEY
-#else
-#define  _NETSNMP_FS_TYPE_UFS  NETSNMP_FS_TYPE_SYSV
-#endif
-
-#ifdef RockRidge
-#define  _NETSNMP_FS_TYPE_CDFS  NETSNMP_FS_TYPE_ROCKRIDGE
-#else
-#define  _NETSNMP_FS_TYPE_CDFS  NETSNMP_FS_TYPE_ISO9660
-#endif
- */
-
-
-/*
- *  Ensure all recognised filesystem mount type tokens are
- *    available (even on systems where they're not used)
- */
-#ifndef MOUNT_FFS
-#define MOUNT_FFS    "ffs"
-#endif
-#ifndef MOUNT_NFS
-#define MOUNT_NFS    "nfs"
-#endif
-#ifndef MOUNT_MFS
-#define MOUNT_MFS    "mfs"
-#endif
-#ifndef MOUNT_MSDOS
-#define MOUNT_MSDOS  "msdos"
-#endif
-#ifndef MOUNT_MSDOSFS
-#define MOUNT_MSDOSFS "msdosfs"
-#endif
-#ifndef MOUNT_AFS
-#define MOUNT_AFS    "afs"
-#endif
-#ifndef MOUNT_CD9660
-#define MOUNT_CD9660 "cd9660"
-#endif
-#ifndef MOUNT_EXT2FS
-#define MOUNT_EXT2FS "ext2fs"
-#endif
-#ifndef MOUNT_NTFS
-#define MOUNT_NTFS   "ntfs"
-#endif
-#ifndef MOUNT_UFS
-#define MOUNT_UFS    "ufs"
-#endif
-
-/*
-#ifndef MNTTYPE_AFS
-#define MNTTYPE_AFS      "afs"
-#endif
-#ifndef MNTTYPE_CDFS
-#define MNTTYPE_CDFS     "cdfs"
-#endif
-#ifndef MNTTYPE_CD9660
-#define MNTTYPE_CD9660   "cd9660"
-#endif
-#ifndef MNTTYPE_EXT2
-#define MNTTYPE_EXT2     "ext2"
-#endif
-#ifndef MNTTYPE_EXT3
-#define MNTTYPE_EXT3     "ext3"
-#endif
-#ifndef MNTTYPE_EXT2FS
-#define MNTTYPE_EXT2FS   "ext2fs"
-#endif
-#ifndef MNTTYPE_EXT3FS
-#define MNTTYPE_EXT3FS   "ext3fs"
-#endif
-#ifndef MNTTYPE_FAT32
-#define MNTTYPE_FAT32    "fat32"
-#endif
-#ifndef MNTTYPE_FFS
-#define MNTTYPE_FFS      "ffs"
-#endif
-#ifndef MNTTYPE_HFS
-#define MNTTYPE_HFS      "hfs"
-#endif
-#ifndef MNTTYPE_HSFS
-#define MNTTYPE_HSFS     "hsfs"
-#endif
-#ifndef MNTTYPE_ISO9660
-#define MNTTYPE_ISO9660  "iso9660"
-#endif
-#ifndef MNTTYPE_MFS
-#define MNTTYPE_MFS      "mfs"
-#endif
-#ifndef MNTTYPE_MSDOS
-#define MNTTYPE_MSDOS    "msdos"
-#endif
-#ifndef MNTTYPE_NCPFS
-#define MNTTYPE_NCPFS    "ncpfs"
-#endif
-#ifndef MNTTYPE_NFS
-#define MNTTYPE_NFS      "nfs"
-#endif
-#ifndef MNTTYPE_NFS3
-#define MNTTYPE_NFS3     "nfs3"
-#endif
-#ifndef MNTTYPE_NTFS
-#define MNTTYPE_NTFS     "ntfs"
-#endif
-#ifndef MNTTYPE_PC
-#define MNTTYPE_PC       "pc"
-#endif
-#ifndef MNTTYPE_REISERFS
-#define MNTTYPE_REISERFS "reiserfs"
-#endif
-#ifndef MNTTYPE_SMBFS
-#define MNTTYPE_SMBFS    "smbfs"
-#endif
-#ifndef MNTTYPE_SYSV
-#define MNTTYPE_SYSV     "sysv"
-#endif
-#ifndef MNTTYPE_UFS
-#define MNTTYPE_UFS      "ufs"
-#endif
-#ifndef MNTTYPE_VFAT
-#define MNTTYPE_VFAT     "vfat"
-#endif
-*/
-
-/*
- *  File systems to skip
- */
-/*
-#ifndef MNTTYPE_DEVPTS
-#define MNTTYPE_DEVPTS   "devpts"
-#endif
-#ifndef MNTTYPE_IGNORE
-#define MNTTYPE_IGNORE   "ignore"
-#endif
-#ifndef MNTTYPE_PROC
-#define MNTTYPE_PROC     "proc"
-#endif
-#ifndef MNTTYPE_SYSFS
-#define MNTTYPE_SYSFS    "sysfs"
-#endif
-#ifndef MNTTYPE_TMPFS
-#define MNTTYPE_TMPFS    "tmpfs"
-#endif
-#ifndef MNTTYPE_USBFS
-#define MNTTYPE_USBFS    "usbfs"
-#endif
-*/
-
-#endif /* _NETSNMP_FSYS_MOUNTS_H */
diff --git a/agent/mibgroup/hardware/memory.h b/agent/mibgroup/hardware/memory.h
index c33450a..fd1e36a 100644
--- a/agent/mibgroup/hardware/memory.h
+++ b/agent/mibgroup/hardware/memory.h
@@ -9,10 +9,10 @@ config_require(hardware/memory/memory_darwin)
 #elif (defined(freebsd2) || defined(freebsd3) || defined(freebsd4)  || defined(freebsd5)|| defined(freebsd6))
 config_require(hardware/memory/memory_freebsd)
 
-#elif (defined(netbsd) || defined(netbsd1) || defined(netbsdelf) || defined(netbsdelf2)|| defined(netbsdelf3) || defined(openbsd))
+#elif (defined(netbsd) || defined(netbsd1) || defined(netbsdelf) || defined(netbsdelf2)|| defined(netbsdelf3) || defined(openbsd2) || defined(openbsd3) || defined(openbsd4))
 config_require(hardware/memory/memory_netbsd)
 
-#elif (defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7))
+#elif (defined(aix4) || defined(aix5) || defined(aix6))
 config_require(hardware/memory/memory_aix)
 
 #elif (defined(solaris2))
diff --git a/agent/mibgroup/hardware/memory/hw_mem.c b/agent/mibgroup/hardware/memory/hw_mem.c
index badc775..b18a9b8 100644
--- a/agent/mibgroup/hardware/memory/hw_mem.c
+++ b/agent/mibgroup/hardware/memory/hw_mem.c
@@ -3,12 +3,6 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/hardware/memory.h>
 
-#include <net-snmp/net-snmp-features.h>
-
-netsnmp_feature_child_of(hardware_memory, netsnmp_unused)
-
-netsnmp_feature_child_of(memory_get_cache, hardware_memory)
-
 extern NetsnmpCacheLoad netsnmp_mem_arch_load;
 
 netsnmp_memory_info *_mem_head  = NULL;
@@ -93,11 +87,9 @@ netsnmp_memory_info *netsnmp_memory_get_next_byIdx( int idx, int type ) {
 
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_MEMORY_GET_CACHE
 netsnmp_cache *netsnmp_memory_get_cache( void ) {
     return _mem_cache;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_MEMORY_GET_CACHE */
 
 int netsnmp_memory_load( void ) {
      return netsnmp_cache_check_and_reload( _mem_cache );
diff --git a/agent/mibgroup/hardware/memory/memory_aix.c b/agent/mibgroup/hardware/memory/memory_aix.c
index ad24526..2519dd9 100644
--- a/agent/mibgroup/hardware/memory/memory_aix.c
+++ b/agent/mibgroup/hardware/memory/memory_aix.c
@@ -4,7 +4,6 @@
 #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 c5007d5..6df244b 100644
--- a/agent/mibgroup/hardware/memory/memory_freebsd.c
+++ b/agent/mibgroup/hardware/memory/memory_freebsd.c
@@ -36,21 +36,17 @@ int netsnmp_mem_arch_load( netsnmp_cache *cache, void *magic ) {
     long           pagesize;
     int            nswap;
 
+    struct vmmeter vmem;
     struct vmtotal total;
     size_t         total_size  = sizeof(total);
     int            total_mib[] = { CTL_VM, VM_METER };
 
     u_long         phys_mem;
     u_long         user_mem;
-    unsigned int   cache_count;
-    unsigned int   cache_max;
     unsigned int   bufspace;
     unsigned int   maxbufspace;
-    unsigned int   inact_count;
-    size_t         mem_size   = sizeof(phys_mem);
-    size_t         cache_size = sizeof(cache_count);
-    size_t         buf_size   = sizeof(bufspace);
-    size_t         inact_size = sizeof(inact_count);
+    size_t         mem_size  = sizeof(phys_mem);
+    size_t         buf_size  = sizeof(bufspace);
     int            phys_mem_mib[] = { CTL_HW, HW_PHYSMEM };
     int            user_mem_mib[] = { CTL_HW, HW_USERMEM };
 
@@ -60,11 +56,9 @@ int netsnmp_mem_arch_load( netsnmp_cache *cache, void *magic ) {
     sysctl(total_mib,    2, &total,    &total_size,    NULL, 0);
     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);
-    sysctlbyname("vm.stats.vm.v_cache_max",      &cache_max,   &cache_size, NULL, 0);
-    sysctlbyname("vm.stats.vm.v_inactive_count", &inact_count, &inact_size, NULL, 0);
     sysctlbyname("vfs.bufspace",    &bufspace,    &buf_size, NULL, 0);
     sysctlbyname("vfs.maxbufspace", &maxbufspace, &buf_size, NULL, 0);
+    auto_nlist(SUM_SYMBOL,      (char *) &vmem,     sizeof(vmem));
 #ifndef freebsd4
     pagesize = 1024;
 #else
@@ -81,7 +75,7 @@ int netsnmp_mem_arch_load( netsnmp_cache *cache, void *magic ) {
         if (!mem->descr)
              mem->descr = strdup("Physical memory");
         mem->units = pagesize;
-        mem->size  = phys_mem/pagesize;
+        mem->size  = user_mem/pagesize;
         mem->free  = total.t_free;
     }
 
@@ -135,9 +129,9 @@ int netsnmp_mem_arch_load( netsnmp_cache *cache, void *magic ) {
     } else {
         if (!mem->descr)
              mem->descr = strdup("Cached memory");
-        mem->units = pagesize;
-        mem->size  = cache_max + inact_count;
-        mem->free  = cache_max - cache_count;
+        mem->units = vmem.v_page_size;
+        mem->size  = vmem.v_cache_max;
+        mem->free  = vmem.v_cache_max - vmem.v_cache_count;
     }
 
     nswap = swapmode(pagesize);
diff --git a/agent/mibgroup/hardware/memory/memory_linux.c b/agent/mibgroup/hardware/memory/memory_linux.c
index 8c189c5..f3f29f8 100644
--- a/agent/mibgroup/hardware/memory/memory_linux.c
+++ b/agent/mibgroup/hardware/memory/memory_linux.c
@@ -43,18 +43,16 @@ int netsnmp_mem_arch_load( netsnmp_cache *cache, void *magic ) {
     }
     if (bsize == 0) {
         bsize = MEMINFO_INIT_SIZE;
-        buff = (char*)malloc(bsize+1);
+        buff = malloc(bsize+1);
         if (NULL == buff) {
             snmp_log(LOG_ERR, "malloc failed\n");
-            close(statfd);
             return -1;
         }
     }
     while ((bytes_read = read(statfd, buff, bsize)) == bsize) {
-        b = (char*)realloc(buff, bsize + MEMINFO_STEP_SIZE + 1);
+        b = realloc(buff, bsize + MEMINFO_STEP_SIZE + 1);
         if (NULL == b) {
             snmp_log(LOG_ERR, "malloc failed\n");
-            close(statfd);
             return -1;
         }
         buff = b;
@@ -91,19 +89,13 @@ int netsnmp_mem_arch_load( netsnmp_cache *cache, void *magic ) {
         if (first)
             snmp_log(LOG_ERR, "No MemFree line in /proc/meminfo\n");
     }
-    if (0 == netsnmp_os_prematch("Linux","2.4")) {
-        b = strstr(buff, "MemShared: ");
-        if (b)
-            sscanf(b, "MemShared: %lu", &memshared);
-        else if (first)
-            snmp_log(LOG_ERR, "No MemShared line in /proc/meminfo\n");
-    }
+    b = strstr(buff, "MemShared: ");
+    if (b)
+        sscanf(b, "MemShared: %lu", &memshared);
     else {
-        b = strstr(buff, "Shmem: ");
-        if (b)
-            sscanf(b, "Shmem: %lu", &memshared);
-        else if (first)
-            snmp_log(LOG_ERR, "No Shmem line in /proc/meminfo\n");
+        if (first)
+            if (0 == netsnmp_os_prematch("Linux","2.4"))
+                snmp_log(LOG_ERR, "No MemShared line in /proc/meminfo\n");
     }
     b = strstr(buff, "Buffers: ");
     if (b)
@@ -163,6 +155,8 @@ int netsnmp_mem_arch_load( netsnmp_cache *cache, void *magic ) {
         mem->other = -1;
     }
 
+   /* Shared memory is not reported by Linux 2.6 kernel */
+   if (0 != netsnmp_os_prematch("Linux","2.6")) {
     mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_SHARED, 1 );
     if (!mem) {
         snmp_log_perror("No Shared Memory info entry");
@@ -171,9 +165,10 @@ int netsnmp_mem_arch_load( netsnmp_cache *cache, void *magic ) {
              mem->descr = strdup("Shared memory");
         mem->units = 1024;
         mem->size  = memshared;
-        mem->free  = 0;    /* All in use */
+        mem->free  = -1;
         mem->other = -1;
     }
+   }
 
     mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_CACHED, 1 );
     if (!mem) {
diff --git a/agent/mibgroup/hardware/memory/memory_netbsd.c b/agent/mibgroup/hardware/memory/memory_netbsd.c
index 5749ae2..746fea0 100644
--- a/agent/mibgroup/hardware/memory/memory_netbsd.c
+++ b/agent/mibgroup/hardware/memory/memory_netbsd.c
@@ -4,11 +4,7 @@
 #include <net-snmp/agent/hardware/memory.h>
 
 #include <unistd.h>
-#include <errno.h>
 #include <sys/sysctl.h>
-#if HAVE_SYS_VMMETER_H
-#include <sys/vmmeter.h>
-#endif
 #include <sys/swap.h>
 
 #if defined(HAVE_UVM_UVM_PARAM_H) && defined(HAVE_UVM_UVM_EXTERN_H)
@@ -34,61 +30,27 @@ int netsnmp_mem_arch_load( netsnmp_cache *cache, void *magic ) {
     long           pagesize;
 
     struct uvmexp  uvmexp;
-    size_t         uvmexp_size  = sizeof(uvmexp);
+    int            uvmexp_size  = sizeof(uvmexp);
+    int            uvmexp_mib[] = { CTL_VM, VM_UVMEXP };
 
     struct vmtotal total;
     size_t         total_size  = sizeof(total);
+    int            total_mib[] = { CTL_VM, VM_METER };
 
-    quad_t          phys_mem;
-    quad_t          user_mem;
+    long            phys_mem;
+    long            user_mem;
     size_t          mem_size  = sizeof(phys_mem);
-#if defined(openbsd)
-    int             phys_mem_mib[] = { CTL_HW, HW_PHYSMEM64 };
-    int             user_mem_mib[] = { CTL_HW, HW_USERMEM64 };
-    int             uvmexp_mib[] = { CTL_VM, VM_UVMEXP };
-    int             total_mib[] = { CTL_VM, VM_METER };
-#else
-    unsigned int    bufspace;
-    unsigned int    maxbufspace;
-    size_t          buf_size  = sizeof(bufspace);
-#endif
+    int             phys_mem_mib[] = { CTL_HW, HW_PHYSMEM };
+    int             user_mem_mib[] = { CTL_HW, HW_USERMEM };
 
     /*
      * Retrieve the memory information from the underlying O/S...
      */
-#if defined(openbsd)
     sysctl(uvmexp_mib,   2, &uvmexp,   &uvmexp_size,   NULL, 0);
     sysctl(total_mib,    2, &total,    &total_size,    NULL, 0);
     sysctl(phys_mem_mib, 2, &phys_mem, &mem_size,      NULL, 0);
     sysctl(user_mem_mib, 2, &user_mem, &mem_size,      NULL, 0);
-#else
-    if (sysctlbyname("vm.uvmexp", &uvmexp, &uvmexp_size, NULL, 0) == -1) {
-        snmp_log(LOG_ERR, "sysctl vm.uvmexp failed (errno %d)\n", errno);
-        return -1;
-    }
-    if (sysctlbyname("vm.vmmeter", &total,  &total_size, NULL, 0) == -1) {
-        snmp_log(LOG_ERR, "sysctl vm.vmmeter failed (errno %d)\n", errno);
-        return -1;
-    }
-    if (sysctlbyname("hw.physmem64", &phys_mem, &mem_size, NULL, 0) == -1) {
-        snmp_log(LOG_ERR, "sysctl hw.physmem64 failed (errno %d)\n", errno);
-        return -1;
-    }
-    if (sysctlbyname("hw.usermem64", &user_mem, &mem_size, NULL, 0) == -1) {
-        snmp_log(LOG_ERR, "sysctl hw.usermem64 failed (errno %d)\n", errno);
-        return -1;
-    }
-    if (sysctlbyname("vm.bufmem", &bufspace, &buf_size, NULL, 0) == -1) {
-        snmp_log(LOG_ERR, "sysctl vm.bufmem failed (errno %d)\n", errno);
-        return -1;
-    }
-    if (sysctlbyname("vm.bufmem_hiwater", &maxbufspace, &buf_size, NULL, 0) == -1) {
-        snmp_log(LOG_ERR, "sysctl vm.bufmem_hiwater failed (errno %d)\n", errno);
-        return -1;
-    }
-
-#endif
-    pagesize = sysconf(_SC_PAGESIZE);
+    pagesize = uvmexp.pagesize;
 
     /*
      * ... and save this in a standard form.
@@ -102,6 +64,7 @@ int netsnmp_mem_arch_load( netsnmp_cache *cache, void *magic ) {
         mem->units = pagesize;
         mem->size  = phys_mem/pagesize;
         mem->free  = total.t_free;
+        mem->other = -1;
     }
 
     mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_USERMEM, 1 );
@@ -113,43 +76,9 @@ int netsnmp_mem_arch_load( netsnmp_cache *cache, void *magic ) {
         mem->units = pagesize;
         mem->size  = user_mem/pagesize;
         mem->free  = uvmexp.free;
+        mem->other = -1;
     }
 
-#if 1
-    mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_VIRTMEM, 1 );
-    if (!mem) {
-        snmp_log_perror("No Virtual Memory info entry");
-    } else {
-        if (!mem->descr)
-             mem->descr = strdup("Virtual memory");
-        mem->units = pagesize;
-        mem->size  = total.t_vm;
-        mem->free  = total.t_avm;
-    }
-
-    mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_SHARED, 1 );
-    if (!mem) {
-        snmp_log_perror("No Shared Memory info entry");
-    } else {
-        if (!mem->descr)
-             mem->descr = strdup("Shared virtual memory");
-        mem->units = pagesize;
-        mem->size  = total.t_vmshr;
-        mem->free  = total.t_avmshr;
-    }
-
-    mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_SHARED2, 1 );
-    if (!mem) {
-        snmp_log_perror("No Shared2 Memory info entry");
-    } else {
-        if (!mem->descr)
-             mem->descr = strdup("Shared real memory");
-        mem->units = pagesize;
-        mem->size  = total.t_rmshr;
-        mem->free  = total.t_armshr;
-    }
-#endif
-
 #ifdef SWAP_NSWAP
     swapinfo(pagesize);
 #endif
@@ -165,19 +94,6 @@ int netsnmp_mem_arch_load( netsnmp_cache *cache, void *magic ) {
         mem->other = -1;
     }
 
-#if defined(__NetBSD__)
-    mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_MBUF, 1 );
-    if (!mem) {
-        snmp_log_perror("No Buffer, etc info entry");
-    } else {
-        if (!mem->descr)
-             mem->descr = strdup("Memory buffers");
-        mem->units = 1024;
-        mem->size  =  maxbufspace            /1024;
-        mem->size  = (maxbufspace - bufspace)/1024;
-    }
-#endif
-
     return 0;
 }
 
diff --git a/agent/mibgroup/hardware/memory/memory_solaris.c b/agent/mibgroup/hardware/memory/memory_solaris.c
index 42f203e..3dfff8b 100644
--- a/agent/mibgroup/hardware/memory/memory_solaris.c
+++ b/agent/mibgroup/hardware/memory/memory_solaris.c
@@ -129,7 +129,7 @@ getSwapInfo(long *total_mem, long *total_free)
     char buf[1024];
 
     num = swapctl(SC_GETNSWP, 0);
-    s = (swaptbl_t*)malloc(num * sizeof(swapent_t) + sizeof(struct swaptable));
+    s = 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
deleted file mode 100644
index b88d915..0000000
--- a/agent/mibgroup/hardware/sensors.h
+++ /dev/null
@@ -1,17 +0,0 @@
-config_require(hardware/sensors/hw_sensors)
-
-#if defined(solaris2)
-# if defined(HAVE_PICL_H)
-config_require(hardware/sensors/picld_sensors)
-# else
-config_require(hardware/sensors/kstat_sensors)
-# endif
-#else
-#  if defined(NETSNMP_USE_SENSORS_V3)
-config_require(hardware/sensors/lmsensors_v3)
-#  else
-config_require(hardware/sensors/lmsensors_v2)
-#  endif
-#endif
-
-/* config_require(hardware/sensors/dummy_sensors) */
diff --git a/agent/mibgroup/hardware/sensors/dummy_sensors.c b/agent/mibgroup/hardware/sensors/dummy_sensors.c
deleted file mode 100644
index 8d2555d..0000000
--- a/agent/mibgroup/hardware/sensors/dummy_sensors.c
+++ /dev/null
@@ -1,60 +0,0 @@
-#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/hardware/sensors.h>
-
-
-void netsnmp_sensor_arch_init( void ) {
-    /* Nothing to do */
-    DEBUGMSGTL(("sensors:arch", "Initialise Dummy Sensors module\n"));
-}
-
-int
-netsnmp_sensor_arch_load(netsnmp_cache *cache, void *vp) {
-    time_t now;
-    struct tm                  *tm;
-    netsnmp_sensor_info        *sp;
-
-    time(&now);
-    tm = localtime(&now);
-
-    DEBUGMSGTL(("sensors:arch", "Reload Dummy Sensors module\n"));
-
-    /* First pseudo-sensor - slowly-rising temperature */
-    sp = sensor_by_name( "minute", NETSNMP_SENSOR_TYPE_TEMPERATURE );
-    sp->value = tm->tm_min;
-    snprintf( sp->descr, 256, "Minute-based pseudo-sensor - slowly-rising temperature" );
-    sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-
-    /* Second pseudo-sensor - quickly-rising temperature */
-    sp = sensor_by_name( "second", NETSNMP_SENSOR_TYPE_TEMPERATURE );
-    sp->value = tm->tm_sec;
-    snprintf( sp->descr, 256, "Second-based pseudo-sensor - quickly-rising temperature" );
-    sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-
-    /* Third pseudo-sensor - annual fan speed */
-    sp = sensor_by_name( "year", NETSNMP_SENSOR_TYPE_RPM );
-    sp->value = tm->tm_year + 1900;
-    snprintf( sp->descr, 256, "RPM pseudo-sensor - annual fan speed" );
-    sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-
-    /* Fourth pseudo-sensor - daily voltage */
-    sp = sensor_by_name( "day", NETSNMP_SENSOR_TYPE_VOLTAGE_DC );
-    sp->value = tm->tm_mday-20;
-    snprintf( sp->descr, 256, "Day-based pseudo-sensor - positive or negative voltage" );
-    sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-
-    /* Fifth pseudo-sensor - monthly voltage */
-    sp = sensor_by_name( "month", NETSNMP_SENSOR_TYPE_VOLTAGE_DC );
-    sp->value = tm->tm_mon;
-    snprintf( sp->descr, 256, "Month-based pseudo-sensor - positive voltage" );
-    sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-
-    /* Sixth pseudo-sensor - annual daily something */
-    sp = sensor_by_name( "yday", NETSNMP_SENSOR_TYPE_OTHER );
-    sp->value = tm->tm_yday;
-    snprintf( sp->descr, 256, "Day-based pseudo-sensor - annual something" );
-    sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-
-    return 0;
-}
diff --git a/agent/mibgroup/hardware/sensors/dummy_sensors.h b/agent/mibgroup/hardware/sensors/dummy_sensors.h
deleted file mode 100644
index b5ffb4d..0000000
--- a/agent/mibgroup/hardware/sensors/dummy_sensors.h
+++ /dev/null
@@ -1 +0,0 @@
-config_require(hardware/sensors/hw_sensors)
diff --git a/agent/mibgroup/hardware/sensors/hw_sensors.c b/agent/mibgroup/hardware/sensors/hw_sensors.c
deleted file mode 100644
index 1a01645..0000000
--- a/agent/mibgroup/hardware/sensors/hw_sensors.c
+++ /dev/null
@@ -1,189 +0,0 @@
-#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/hardware/sensors.h>
-
-
-extern NetsnmpCacheLoad netsnmp_sensor_arch_load;
-extern void             netsnmp_sensor_arch_init( void );
-static int  _sensor_load( void );
-static void _sensor_free( void );
-
-static int _sensorAutoUpdate = 0;   /* 0 means on-demand caching */
-static void _sensor_update_stats( unsigned int, void* );
-
-netsnmp_cache     *_sensor_cache     = NULL;
-netsnmp_container *_sensor_container = NULL;
-static int         _sensor_idx       = 0;
-
-void init_hw_sensors( void ) {
-
-    if ( _sensor_container )
-        return;   /* Already initialised */
-
-    DEBUGMSGTL(("sensors", "Initialise Hardware Sensors module\n"));
-
-    /*
-     * Define a container to hold the basic list of sensors
-     * The four LM-SENSOR-MIB containers will be created in
-     *  the relevant initialisation routine(s)
-     */
-    _sensor_container = netsnmp_container_find("sensorTable:table_container");
-    if ( NULL == _sensor_container ) {
-        snmp_log( LOG_ERR, "failed to create container for sensorTable");
-        return;
-    }
-    netsnmp_sensor_arch_init( );
-
-    /*
-     * If we're sampling the sensor information automatically,
-     *   then arrange for this to be triggered regularly.
-     *
-     * If we're not sampling these values regularly,
-     *   create a suitable cache handler instead.
-     */
-    if ( _sensorAutoUpdate ) {
-        DEBUGMSGTL(("sensors", "Reloading Hardware Sensors automatically (%d)\n",
-                               _sensorAutoUpdate));
-        snmp_alarm_register( _sensorAutoUpdate, SA_REPEAT,
-                             _sensor_update_stats, NULL );
-    }
-    else {
-        _sensor_cache = netsnmp_cache_create( 5, netsnmp_sensor_load,
-                                                 netsnmp_sensor_free, NULL, 0 );
-        DEBUGMSGTL(("sensors", "Reloading Hardware Sensors on-demand (%p)\n",
-                               _sensor_cache));
-    }
-}
-
-void shutdown_hw_sensors( void ) {
-    _sensor_free();
-}
-
-/*
- *  Return the main sensor container
- */
-netsnmp_container *get_sensor_container( void ) { return _sensor_container; }
-
-/*
- *  Return the main sensor cache control structure (if defined)
- */
-netsnmp_cache *get_sensor_cache( void ) { return _sensor_cache; }
-
-
-/*
- * Wrapper routine for automatically updating sensor statistics
- */
-void
-_sensor_update_stats( unsigned int clientreg, void *data )
-{
-    _sensor_free();
-    _sensor_load();
-}
-
-/*
- * Wrapper routine for re-loading sensor statistics on demand
- */
-int
-netsnmp_sensor_load( netsnmp_cache *cache, void *data )
-{
-    return _sensor_load();
-}
-
-/*
- * Wrapper routine for releasing expired sensor statistics
- */
-void
-netsnmp_sensor_free( netsnmp_cache *cache, void *data )
-{
-    _sensor_free();
-}
-
-
-/*
- * Architecture-independent processing of loading sensor statistics
- */
-static int
-_sensor_load( void )
-{
-    netsnmp_sensor_arch_load( NULL, NULL );
-    return 0;
-}
-
-/*
- * Architecture-independent release of sensor statistics
- */
-static void
-_sensor_free( void )
-{
-    netsnmp_sensor_info *sp;
-
-    for (sp = CONTAINER_FIRST( _sensor_container );
-         sp;
-         sp = CONTAINER_NEXT(  _sensor_container, sp )) {
-
-         sp->flags &= ~ NETSNMP_SENSOR_FLAG_ACTIVE;
-    }
-}
-
-
-/*
- * Retrieve a sensor entry by name,
- *  or (optionally) insert a new one into the container
- */
-netsnmp_sensor_info *
-sensor_by_name( const char *name, int create_type )
-{
-    netsnmp_sensor_info *sp;
-
-    DEBUGMSGTL(("sensors:name", "Get sensor entry (%s)\n", name));
-
-    /*
-     *  Look through the list for a matching entry
-     */
-        /* .. or use a secondary index container ?? */
-    for (sp = CONTAINER_FIRST( _sensor_container );
-         sp;
-         sp = CONTAINER_NEXT(  _sensor_container, sp )) {
-
-        if ( !strcmp( name, sp->name ))
-            return sp;
-    }
-
-    /*
-     * Not found...
-     */
-    if ( create_type == NETSNMP_SENSOR_FIND_EXIST ) {
-        DEBUGMSGTL(("sensors:name", "No such sensor entry\n"));
-        return NULL;
-    }
-
-    /*
-     * ... so let's create a new one, using the type supplied
-     */
-    sp = SNMP_MALLOC_TYPEDEF( netsnmp_sensor_info );
-    if ( sp ) {
-        if (strlen(name) >= sizeof(sp->name)) {
-            snmp_log(LOG_ERR, "Sensor name is too large: %s\n", name);
-            free(sp);
-            return NULL;
-        }
-        strcpy( sp->name, name );
-        sp->type = create_type;
-        /*
-         * Set up the index value.
-         *  
-         * All this trouble, just for a simple integer.
-         * Surely there must be a better way?
-         */
-        sp->idx.len  = 1;
-        sp->idx.oids = SNMP_MALLOC_TYPEDEF( oid );
-        sp->idx.oids[0] = ++_sensor_idx;
-    }
-
-    DEBUGMSGTL(("sensors:name", "Create sensor entry (type = %d, index = %d\n",
-                                 create_type, _sensor_idx));
-    CONTAINER_INSERT( _sensor_container, sp );
-    return sp;
-}
-
diff --git a/agent/mibgroup/hardware/sensors/hw_sensors.h b/agent/mibgroup/hardware/sensors/hw_sensors.h
deleted file mode 100644
index 17eccf5..0000000
--- a/agent/mibgroup/hardware/sensors/hw_sensors.h
+++ /dev/null
@@ -1,2 +0,0 @@
-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
deleted file mode 100644
index 62bbb10..0000000
--- a/agent/mibgroup/hardware/sensors/kstat_sensors.c
+++ /dev/null
@@ -1,161 +0,0 @@
-#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/hardware/sensors.h>
-
-#include <time.h>
-
-#include <kstat.h>
-#include </usr/platform/sun4u/include/sys/envctrl.h>
-
-void netsnmp_sensor_arch_init( void ) {
-    DEBUGMSGTL(("sensors:arch", "Initialise KStat Sensors module\n"));
-}
-
-
-int
-netsnmp_sensor_arch_load(netsnmp_cache *cache, void *vp) {
-    netsnmp_sensor_info        *sp;
-
-    int         i;
-    const char *fantypes[]={"CPU","PWR","AFB"};
-    char        name[ 256 ];
-
-    kstat_ctl_t    *kc;
-    kstat_t        *kp;
-    envctrl_fan_t  *fan_info;
-    envctrl_ps_t   *power_info;
-    envctrl_encl_t *enc_info;
-
-
-    DEBUGMSGTL(("sensors:arch", "Reload KStat Sensors module\n"));
-
-    kc = kstat_open();
-    if ( kc == 0) {
-        DEBUGMSGTL(("sensors:arch", "Couldn't open kstat\n"));
-        return 1;
-    }
-    
-
-    /*
-     * Retrieve fan information
-     */
-    kp = kstat_lookup( kc, ENVCTRL_MODULE_NAME, 0, ENVCTRL_KSTAT_FANSTAT);
-    if (( kp == 0 ) || (kstat_read( kc, kp, 0 ) == -1 )) {
-        DEBUGMSGTL(("sensors:arch", "No fan information\n"));
-    } else {
-        fan_info = (envctrl_fan_t *)kp->ks_data;        
-        for (i=0; i<kp->ks_ndata; i++) {
-            memset( name, 0, 256 );
-            snprintf( name, 255, "%s%d", fantypes[fan_info->type], fan_info->instance );
-
-            sp = sensor_by_name( name, NETSNMP_SENSOR_TYPE_RPM );
-            if ( sp ) {
-                sp->value = fan_info->fanspeed;
-                sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-                snprintf( sp->descr, 255, "fan type %s number %d",
-                          fantypes[fan_info->type], fan_info->instance );
-            }
-    
-            fan_info++;
-        }
-    }
-
-
-    /*
-     * Retrieve Power Supply information
-     */
-    kp = kstat_lookup( kc, ENVCTRL_MODULE_NAME, 0, ENVCTRL_KSTAT_PSNAME);
-    if (( kp == 0 ) || (kstat_read( kc, kp, 0 ) == -1 )) {
-        DEBUGMSGTL(("sensors:arch", "No PSU information\n"));
-    } else {
-        power_info = (envctrl_ps_t *)kp->ks_data;        
-        for (i=0; i<kp->ks_ndata; i++) {
-            memset( name, 0, 256 );
-            snprintf( name, 255, "PSU%d", power_info->instance );
-
-            sp = sensor_by_name( name, NETSNMP_SENSOR_TYPE_TEMPERATURE);
-            if ( sp ) {
-                sp->value = power_info->ps_tempr;
-                sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-                snprintf( sp->descr, 255, "power supply %d", power_info->instance );
-            }
-    
-            power_info++;
-        }
-    }
-
-
-    /*
-     * Retrieve Enclosure information
-     */
-    kp = kstat_lookup( kc, ENVCTRL_MODULE_NAME, 0, ENVCTRL_KSTAT_ENCL);
-    if (( kp == 0 ) || (kstat_read( kc, kp, 0 ) == -1 )) {
-        DEBUGMSGTL(("sensors:arch", "No enclosure information\n"));
-    } else {
-        enc_info = (envctrl_encl_t *)kp->ks_data;        
-        for (i=0; i<kp->ks_ndata; i++) {
-            /*
-             * The enclosure information covers several different types of sensor
-             */
-            switch ( enc_info->type ) {
-            case ENVCTRL_ENCL_FSP:
-                DEBUGMSGTL(("sensors:arch:detail", "Enclosure Front Panel\n"));
-                sp = sensor_by_name( "FSP", NETSNMP_SENSOR_TYPE_OTHER);
-                if ( sp ) {
-                    sp->value = enc_info->value;
-                    sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-                }
-                break;
-                
-            case ENVCTRL_ENCL_AMBTEMPR:
-                DEBUGMSGTL(("sensors:arch:detail", "Enclosure Ambient Temperature\n"));
-                sp = sensor_by_name( "Ambient", NETSNMP_SENSOR_TYPE_TEMPERATURE);
-                if ( sp ) {
-                    sp->value = enc_info->value;
-                    sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-                }
-                break;
-
-            case ENVCTRL_ENCL_CPUTEMPR:
-                DEBUGMSGTL(("sensors:arch:detail", "Enclosure CPU Temperature\n"));
-                memset( name, 0, 256 );
-                snprintf( name, 255, "CPU%d", enc_info->instance );
-                sp = sensor_by_name( name, NETSNMP_SENSOR_TYPE_TEMPERATURE);
-                if ( sp ) {
-                    sp->value = enc_info->value;
-                    sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-                    snprintf( sp->descr, 255, "CPU%d temperature", enc_info->instance );
-                }
-                break;
-
-            case ENVCTRL_ENCL_BACKPLANE4:
-                DEBUGMSGTL(("sensors:arch:detail", "Enclosure Backplane4\n"));
-                sp = sensor_by_name( "Backplane4", NETSNMP_SENSOR_TYPE_OTHER);
-                if ( sp ) {
-                    sp->value = enc_info->value;
-                    sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-                }
-                break;
-                
-            case ENVCTRL_ENCL_BACKPLANE8:
-                DEBUGMSGTL(("sensors:arch:detail", "Enclosure Backplane4\n"));
-                sp = sensor_by_name( "Backplane4", NETSNMP_SENSOR_TYPE_OTHER);
-                if ( sp ) {
-                    sp->value = enc_info->value;
-                    sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-                }
-                break;
-
-            default:    
-                DEBUGMSGTL(("sensors:arch:detail", "Unrecognised Enclosure entry (%d)n",
-                                                    enc_info->type));
-            }
-
-            enc_info++;
-        }
-    }
-
-    kstat_close(kc);
-    return 0;
-}
diff --git a/agent/mibgroup/hardware/sensors/kstat_sensors.h b/agent/mibgroup/hardware/sensors/kstat_sensors.h
deleted file mode 100644
index b5ffb4d..0000000
--- a/agent/mibgroup/hardware/sensors/kstat_sensors.h
+++ /dev/null
@@ -1 +0,0 @@
-config_require(hardware/sensors/hw_sensors)
diff --git a/agent/mibgroup/hardware/sensors/lmsensors_v2.c b/agent/mibgroup/hardware/sensors/lmsensors_v2.c
deleted file mode 100644
index a63f140..0000000
--- a/agent/mibgroup/hardware/sensors/lmsensors_v2.c
+++ /dev/null
@@ -1,74 +0,0 @@
-#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/hardware/sensors.h>
-
-#include <time.h>
-#include <sensors/sensors.h>
-
-void netsnmp_sensor_arch_init( void ) {
-    FILE *fp = fopen("/etc/sensors.conf", "r");
-    DEBUGMSGTL(("sensors:arch", "Initialise LM Sensors module\n"));
-    sensors_init( fp );
-}
-
-int
-netsnmp_sensor_arch_load(netsnmp_cache *cache, void *vp) {
-    netsnmp_sensor_info        *sp;
-    const sensors_chip_name    *chip;
-    const sensors_feature_data *data;
-    int             chip_nr = 0;
-
-    DEBUGMSGTL(("sensors:arch", "Reload LM Sensors module\n"));
-    while ((chip = sensors_get_detected_chips(&chip_nr))) {
-	int             a = 0;
-	int             b = 0;
-
-        while ((data = sensors_get_all_features(*chip, &a, &b))) {
-            DEBUGMSGTL(("sensors:arch:detail", "get_all_features (%d, %d)\n", a, b));
-            char           *label = NULL;
-            double          val;
-            int             type = NETSNMP_SENSOR_TYPE_OTHER;
-
-            if ((data->mode & SENSORS_MODE_R) &&
-                (data->mapping == SENSORS_NO_MAPPING) &&
-                !sensors_get_label(*chip, data->number, &label) &&
-                !sensors_get_feature(*chip, data->number, &val)) {
-
-                DEBUGMSGTL(("sensors:arch:detail", "%s = %f\n", label, val));
-                /*
-                 * Determine the type of sensor from the description.
-                 *
-                 * If the text being looked for below is not in the label of a
-                 * given sensor (e.g., the temp1 sensor has been labeled 'CPU'
-                 * rather than 'CPU temp') it will be categorised as OTHER.
-                 */
-                if (strstr(label, "V")) {
-                    type = NETSNMP_SENSOR_TYPE_VOLTAGE_DC;
-                }
-                if (strstr(label, "fan") || strstr(label, "Fan")) {
-                    type = NETSNMP_SENSOR_TYPE_RPM;
-                }
-                if (strstr(label, "temp") || strstr(label, "Temp")) {
-                    type = NETSNMP_SENSOR_TYPE_TEMPERATURE;
-                }
-
-                /*
-                 * Use this type to create a new sensor entry
-                 *  (inserting it in the appropriate sub-containers)
-                 */
-                sp = sensor_by_name( label, type );
-                if ( sp ) {
-                    sp->value = val;
-                    sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-                }
-            }
-	    if (label) {
-		free(label);
-		label = NULL;
-	    }
-        } /* end while data */
-    } /* end while chip */
-
-    return 0;
-}
diff --git a/agent/mibgroup/hardware/sensors/lmsensors_v2.h b/agent/mibgroup/hardware/sensors/lmsensors_v2.h
deleted file mode 100644
index b5ffb4d..0000000
--- a/agent/mibgroup/hardware/sensors/lmsensors_v2.h
+++ /dev/null
@@ -1 +0,0 @@
-config_require(hardware/sensors/hw_sensors)
diff --git a/agent/mibgroup/hardware/sensors/lmsensors_v3.c b/agent/mibgroup/hardware/sensors/lmsensors_v3.c
deleted file mode 100644
index e34da19..0000000
--- a/agent/mibgroup/hardware/sensors/lmsensors_v3.c
+++ /dev/null
@@ -1,102 +0,0 @@
-#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/hardware/sensors.h>
-
-#include <time.h>
-#include <sensors/sensors.h>
-
-
-void netsnmp_sensor_arch_init( void ) {
-    FILE *fp = fopen("/etc/sensors.conf", "r");
-    DEBUGMSGTL(("sensors:arch", "Initialise v3 LM Sensors module\n"));
-    sensors_init( fp );
-}
-
-int
-netsnmp_sensor_arch_load(netsnmp_cache *cache, void *vp) {
-    netsnmp_sensor_info        *sp;
-    const sensors_chip_name    *chip;
-    const sensors_feature      *data;
-    const sensors_subfeature   *data2;
-    int             chip_nr = 0;
-
-    DEBUGMSGTL(("sensors:arch", "Reload v3 LM Sensors module\n"));
-    while ((chip = sensors_get_detected_chips( NULL, &chip_nr))) {
-	int             a = 0;
-
-        while ((data = sensors_get_features( chip, &a))) {
-	    int             b = 0;
-
-            DEBUGMSGTL(("sensors:arch:detail", "get_features (%s, %d)\n", data->name, data->number));
-
-            while ((data2 = sensors_get_all_subfeatures( chip, data, &b))) {
-                char           *label = NULL;
-                double          val = 0;
-                int             type = NETSNMP_SENSOR_TYPE_OTHER;
-
-                DEBUGMSGTL(("sensors:arch:detail", "  get_subfeatures (%s, %d)\n", data2->name, data2->number));
-                /*
-                 * Check the type of this subfeature,
-                 *   concentrating on the main "input" measurements.
-                 */
-                switch ( data2->type ) {
-                case SENSORS_SUBFEATURE_IN_INPUT:
-                    type = NETSNMP_SENSOR_TYPE_VOLTAGE_DC;
-                    break;
-                case SENSORS_SUBFEATURE_FAN_INPUT:
-                    type = NETSNMP_SENSOR_TYPE_RPM;
-                    break;
-                case SENSORS_SUBFEATURE_TEMP_INPUT:
-                    type = NETSNMP_SENSOR_TYPE_TEMPERATURE;
-                    break;
-                case SENSORS_SUBFEATURE_VID:
-                    type = NETSNMP_SENSOR_TYPE_VOLTAGE_DC;
-                    break;
-                default:
-                    /* Skip everything other than these basic sensor features - ??? */
-                    DEBUGMSGTL(("sensors:arch:detail", "  Skip type %x\n", data2->type));
-                    continue;
-                }
-            
-                /*
-                 * Get the name and value of this subfeature
-                 */
-/*
-                if (!(label = sensors_get_label(chip, data))) {
-                    DEBUGMSGTL(("sensors:arch:detail", "  Can't get name (%s)\n", label));
-                    continue;
-                }
-                if (sensors_get_value(chip, data2->number, &val) < 0) {
-                    DEBUGMSGTL(("sensors:arch:detail", "  Can't get value (%f)\n", val));
-                    continue;
-                }
-*/
-                if (!(label = sensors_get_label(chip, data)) ||
-                     (sensors_get_value(chip, data2->number, &val) < 0)) {
-                    DEBUGMSGTL(("sensors:arch:detail", "  Can't get name/value (%s, %f)\n", label, val));
-                    free(label);
-                    label = NULL;
-                    continue;
-                }
-                DEBUGMSGTL(("sensors:arch:detail", "%s = %f\n", label, val));
-
-                /*
-                 * Use this type to create a new sensor entry
-                 *  (inserting it in the appropriate sub-containers)
-                 */
-                sp = sensor_by_name( label, type );
-                if ( sp ) {
-                    sp->value = val;
-                    sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-                }
-	        if (label) {
-		    free(label);
-		    label = NULL;
-	        }
-            } /* end while data2 */
-        } /* end while data */
-    } /* end while chip */
-
-    return 0;
-}
diff --git a/agent/mibgroup/hardware/sensors/lmsensors_v3.h b/agent/mibgroup/hardware/sensors/lmsensors_v3.h
deleted file mode 100644
index b5ffb4d..0000000
--- a/agent/mibgroup/hardware/sensors/lmsensors_v3.h
+++ /dev/null
@@ -1 +0,0 @@
-config_require(hardware/sensors/hw_sensors)
diff --git a/agent/mibgroup/hardware/sensors/picld_sensors.c b/agent/mibgroup/hardware/sensors/picld_sensors.c
deleted file mode 100644
index a4617b2..0000000
--- a/agent/mibgroup/hardware/sensors/picld_sensors.c
+++ /dev/null
@@ -1,334 +0,0 @@
-#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/hardware/sensors.h>
-
-#include <time.h>
-
-#include <picl.h>
-
-void netsnmp_sensor_arch_init( void ) {
-    DEBUGMSGTL(("sensors:arch", "Initialise PICLd Sensors module\n"));
-    picl_initialize();
-}
-
-
-/*
- * Handle a numeric-valued sensor
- */
-static int
-read_num_sensor( picl_nodehdl_t childh, const char *propval, float *value )
-{
-    picl_nodehdl_t  sensorh;
-    picl_propinfo_t sensor_info;
-    picl_errno_t    error_code;
-
-    union valu {
-        char buf[PICL_PROPSIZE_MAX];
-        uint32_t us4;
-        uint16_t us2;
-        int32_t is4;
-        int16_t is2;
-        float f;
-    } val;
-
-    /*
-     *  Retrieve the specified sensor information and value
-     */
-    error_code = picl_get_propinfo_by_name(childh, propval, &sensor_info, &sensorh);
-    if ( error_code != PICL_SUCCESS ) {
-        DEBUGMSGTL(("sensors:arch:detail", "sensor info lookup failed (%d)\n",
-                                            error_code));
-        return( error_code );
-    }
-
-    error_code = picl_get_propval(sensorh, &val.buf, sensor_info.size);
-    if ( error_code != PICL_SUCCESS ) {
-        DEBUGMSGTL(("sensors:arch:detail", "sensor value lookup failed (%d)\n",
-                                            error_code));
-        return( error_code );
-    }
-
-    /*
-     *  Check the validity (type and size) of this value
-     */
-    if ( sensor_info.type == PICL_PTYPE_FLOAT ) {
-        *value = val.f;
-    } else if ( sensor_info.type == PICL_PTYPE_UNSIGNED_INT ) {
-        /* 16-bit or 32-bit unsigned integers */
-        if ( sensor_info.size == 2 ) {
-            *value = val.us2;
-        } else if ( sensor_info.size == 4 ) { 
-            *value = val.us4;
-        } else {
-            DEBUGMSGTL(("sensors:arch:detail", "unsigned integer (%d bit)\n",
-                                                sensor_info.size * 8));
-            return PICL_FAILURE;
-        }
-    } else if ( sensor_info.type == PICL_PTYPE_INT ) {
-        /* 16-bit or 32-bit signed integers */
-        if ( sensor_info.size == 2 ) {
-            *value = val.is2;
-        } else if ( sensor_info.size == 4 ) { 
-            *value = val.is4;
-        } else {
-            DEBUGMSGTL(("sensors:arch:detail", "signed integer (%d bit)\n",
-                                                sensor_info.size * 8));
-            return PICL_FAILURE;
-        }
-    } else {
-        DEBUGMSGTL(("sensors:arch:detail", "unrecognised type (%d)\n",
-                                            sensor_info.type));
-        return PICL_FAILURE;
-    }
-
-    return error_code;
-}
-
-static int
-process_num_sensor( picl_nodehdl_t childh, const char *propname, const char *propval, int typ )
-{
-    netsnmp_sensor_info        *sp;
-    float                       value;
-    picl_errno_t    error_code;
-
-    sp = sensor_by_name( propname, typ );
-    if ( !sp ) {
-         return -1;
-    }
-
-    error_code = read_num_sensor( childh, propval, &value );
-    if ( error_code == PICL_SUCCESS ) {
-        sp->value = value;
-        sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-    } else {
-        DEBUGMSGTL(("sensors:arch:detail", "Failed to read %s sensor value (%d)\n",
-                                            propname, error_code));
-        return -1;
-    }
-    return 0;
-}
-
-
-
-/*
- *    Handle an enumeration-valued sensor
- */
-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, const char **options )
-{
-    picl_nodehdl_t  sensorh;
-    picl_propinfo_t sensor_info;
-    picl_errno_t    error_code;
-    char            state[PICL_PROPSIZE_MAX];
-    int             i;
-
-    /*
-     *  Retrieve the specified sensor information and value
-     */
-    error_code = picl_get_propinfo_by_name(childh, "State", &sensor_info, &sensorh);
-    if ( error_code != PICL_SUCCESS ) {
-        DEBUGMSGTL(("sensors:arch:detail", "sensor info lookup failed (%d)\n",
-                                            error_code));
-        return( error_code );
-    }
-
-    error_code = picl_get_propval(sensorh, state, sensor_info.size);
-    if ( error_code != PICL_SUCCESS ) {
-        DEBUGMSGTL(("sensors:arch:detail", "sensor value lookup failed (%d)\n",
-                                            error_code));
-        return( error_code );
-    }
-
-    /*
-     * Try to find a matching entry in the list of options.
-     * Note that some platforms may use upper or lower case
-     *   versions of these enumeration values
-     *  (so the checks are case insensitive)
-     */
-    *value = 99;    /* Dummy value */
-    for ( i=0;  options[i] != NULL; i++ ) {
-        if (strncasecmp(state, options[i], strlen(options[i])) == 0) {
-            *value = i;
-            return 0;
-        }
-    }
-    
-    DEBUGMSGTL(("sensors:arch:detail", "Enumeration state %s not matched\n",
-                                        state));
-    return 0;  /* Or an error ? */
-}
-
-static int
-process_enum_sensor( picl_nodehdl_t childh, const char *propname, int typ, const char **options )
-{
-    netsnmp_sensor_info        *sp;
-    float                       value;
-    picl_errno_t    error_code;
-
-    sp = sensor_by_name( propname, typ );
-    if ( !sp ) {
-         return -1;
-    }
-
-    error_code = read_enum_sensor( childh, &value, options );
-    if ( error_code == PICL_SUCCESS ) {
-        sp->value = value;
-        sp->flags|= NETSNMP_SENSOR_FLAG_ACTIVE;
-    } else {
-        DEBUGMSGTL(("sensors:arch:detail", "Failed to read %s sensor value (%d)\n",
-                                            propname, error_code));
-        return -1;
-    }
-    return 0;
-}
-
-
-
-/*
- *  Recursively walk through the tree of sensors
- */
-static int
-process_sensors( int level, picl_nodehdl_t nodeh ) {
-    picl_nodehdl_t childh, nexth;
-    char           propname[  PICL_PROPNAMELEN_MAX  ];
-    char           propclass[ PICL_CLASSNAMELEN_MAX ];
-    picl_errno_t   error_code;
-
-    level++;
-    DEBUGMSGTL(("sensors:arch:detail", "process_sensors - level %d\n", level));
-
-    /* Look up the first child node at this level */
-    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",
-                                            error_code));
-        return( error_code );
-    }
-
-    /* Step through the child nodes, retrieving the name and class of each one */
-    while ( error_code == PICL_SUCCESS ) {
-        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 */
-            DEBUGMSGTL(("sensors:arch:detail", "get property name failed (%d)\n",
-                                                error_code));
-            return( error_code );
-        }
-
-        error_code = picl_get_propval_by_name( childh, PICL_PROP_CLASSNAME,
-                                               propclass, sizeof(propclass)-1);
-        if ( error_code != PICL_SUCCESS ) {
-            /* The Classless Society */
-            DEBUGMSGTL(("sensors:arch:detail", "get property class failed (%d)\n",
-                                                error_code));
-            return( error_code );
-        }
-
-        DEBUGMSGTL(("sensors:arch:detail", "Name: %s, Class %s\n",
-                                            propname, propclass ));
-
-
-        /*
-         *  Three classes represent further groups of sensors, etc.
-         *  Call 'process_sensors' recursively to handle this next level
-         */
-        if (( strstr( propclass, "picl"    )) ||
-            ( strstr( propclass, "frutree" )) ||
-            ( strstr( propclass, "obp"     ))) {
-            process_sensors( level, childh );
-        }
-        /*
-         *  Otherwise retrieve the value appropriately based on the
-         *     class of the sensor.
-         *
-         *  We need to specify the name of the PICL property to retrieve
-         *     for this class of sensor, and the Net-SNMP sensor type.
-         */
-        else if ( strstr( propclass, "fan-tachometer" )) {
-            process_num_sensor( childh, propname, "AtoDSensorValue",
-                                                   NETSNMP_SENSOR_TYPE_RPM );
-        } else if ( strstr( propclass, "fan" )) {
-            process_num_sensor( childh, propname, "Speed",
-                                                   NETSNMP_SENSOR_TYPE_RPM );
-        } else if ( strstr( propclass, "temperature-sensor" )) {
-            process_num_sensor( childh, propname, "Temperature",
-                                                   NETSNMP_SENSOR_TYPE_TEMPERATURE );
-        } else if ( strstr( propclass, "voltage-sensor" )) {
-            process_num_sensor( childh, propname, "Voltage",
-                                          /* ?? */ NETSNMP_SENSOR_TYPE_VOLTAGE_DC );
-        } else if ( strstr( propclass, "digital-sensor" )) {
-            process_num_sensor( childh, propname, "AtoDSensorValue",
-                                          /* ?? */ NETSNMP_SENSOR_TYPE_VOLTAGE_DC );
-            /*
-             * Enumeration-valued sensors use a fixed PICL property ("State"),
-             *   but take a list of the values appropriate for that sensor,
-             *   as well as the Net-SNMP sensor type.
-             */
-        } else if ( strstr( propclass, "switch" )) {
-            process_enum_sensor( childh, propname, NETSNMP_SENSOR_TYPE_OTHER,
-                                                   switch_settings );
-        } else if ( strstr( propclass, "led" )) {
-            process_enum_sensor( childh, propname, NETSNMP_SENSOR_TYPE_OTHER,
-                                                   led_settings );
-        } else if ( strstr( propclass, "i2c" )) {
-            process_enum_sensor( childh, propname, NETSNMP_SENSOR_TYPE_BOOLEAN, /* ?? */
-                                                   i2c_settings );
-        } else {
-            /* Skip other classes of sensor */
-            DEBUGMSGTL(("sensors:arch:detail", "Skipping class %s\n", propclass ));
-        }
-
-        /*
-         *  Move on to the next child node at the current level (if any)
-         */
-        error_code = picl_get_propval_by_name( childh, PICL_PROP_PEER,
-                                               &nexth, sizeof(nexth));
-        if ( error_code != PICL_SUCCESS ) {
-            /* That's All Folks! */
-            return (( error_code == PICL_PROPNOTFOUND )
-                          ? PICL_SUCCESS : error_code );
-        }
-        childh = nexth;
-    }
-    
-    return error_code;
-}
-
-
-int
-netsnmp_sensor_arch_load(netsnmp_cache *cache, void *vp) {
-    int               error_code;
-    picl_nodehdl_t    rooth;
-
-    DEBUGMSGTL(("sensors:arch", "Reload PICLd Sensors module\n"));
-
-    error_code = picl_get_root(&rooth);
-    if ( error_code != PICL_SUCCESS) {
-        DEBUGMSGTL(("sensors:arch", "Couldn't get root node (error %d)\n", error_code));
-        return 1;
-    }
-
-    error_code = process_sensors(0, rooth);
-    if ( error_code != 255 )
-        if ( error_code != 7 )  /* ignore PICL_PROPNOTFOUND error */
-            DEBUGMSGTL(("sensors:arch", "Internal PICLd problem (error %d)\n", error_code));
-
-    return 0;
-}
-
-void netsnmp_sensor_arch_shutdown( void ) {
-    DEBUGMSGTL(("sensors:arch", "Shutdown PicLD Sensors module\n"));
-    picl_shutdown();
-}
-
diff --git a/agent/mibgroup/hardware/sensors/picld_sensors.h b/agent/mibgroup/hardware/sensors/picld_sensors.h
deleted file mode 100644
index b5ffb4d..0000000
--- a/agent/mibgroup/hardware/sensors/picld_sensors.h
+++ /dev/null
@@ -1 +0,0 @@
-config_require(hardware/sensors/hw_sensors)
diff --git a/agent/mibgroup/header_complex.c b/agent/mibgroup/header_complex.c
index d34d906..c385ede 100644
--- a/agent/mibgroup/header_complex.c
+++ b/agent/mibgroup/header_complex.c
@@ -5,6 +5,9 @@
 #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
@@ -18,13 +21,6 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "header_complex.h"
 
-#include <net-snmp/net-snmp-features.h>
-
-netsnmp_feature_child_of(header_complex_all, libnetsnmpmibs)
-
-netsnmp_feature_child_of(header_complex_free_all, header_complex_all)
-netsnmp_feature_child_of(header_complex_find_entry, header_complex_all)
-
 int
 header_complex_generate_varoid(netsnmp_variable_list * var)
 {
@@ -98,7 +94,7 @@ header_complex_generate_varoid(netsnmp_variable_list * var)
     if (var->name_length > MAX_OID_LEN) {
         DEBUGMSGTL(("header_complex_generate_varoid",
                     "Something terribly wrong, namelen = %d\n",
-                    (int)var->name_length));
+                    var->name_length));
         return SNMPERR_GENERR;
     }
 
@@ -134,7 +130,7 @@ header_complex_parse_oid(oid * oidIndex, size_t oidLen,
             var->val_len = sizeof(long);
             oidLen--;
             DEBUGMSGTL(("header_complex_parse_oid",
-                        "Parsed int(%d): %ld\n", var->type,
+                        "Parsed int(%d): %d\n", var->type,
                         *var->val.integer));
             break;
 
@@ -344,9 +340,8 @@ header_complex(struct header_complex_index *datalist,
 }
 
 struct header_complex_index *
-header_complex_maybe_add_data(struct header_complex_index **thedata,
-                              netsnmp_variable_list * var, void *data,
-                              int dont_allow_duplicates)
+header_complex_add_data(struct header_complex_index **thedata,
+                        netsnmp_variable_list * var, void *data)
 {
     oid             newoid[MAX_OID_LEN];
     size_t          newoid_len;
@@ -357,8 +352,7 @@ header_complex_maybe_add_data(struct header_complex_index **thedata,
 
     header_complex_generate_oid(newoid, &newoid_len, NULL, 0, var);
     ret =
-        header_complex_maybe_add_data_by_oid(thedata, newoid, newoid_len, data,
-                                             dont_allow_duplicates);
+        header_complex_add_data_by_oid(thedata, newoid, newoid_len, data);
     /*
      * free the variable list, but not the enclosed data!  it's not ours! 
      */
@@ -367,21 +361,34 @@ header_complex_maybe_add_data(struct header_complex_index **thedata,
 }
 
 struct header_complex_index *
-header_complex_add_data(struct header_complex_index **thedata,
-                        netsnmp_variable_list * var, void *data)
+header_complex_add_data_by_oid(struct header_complex_index **thedata,
+                               oid * newoid, size_t newoid_len, void *data)
 {
-    return
-        header_complex_maybe_add_data(thedata, var, data, 0);
-}
+    struct header_complex_index *hciptrn, *hciptrp, *ourself;
+    int rc;
 
+    if (thedata == NULL || newoid == NULL || data == NULL)
+        return NULL;
 
-struct header_complex_index *
-_header_complex_add_between(struct header_complex_index **thedata,
-                            struct header_complex_index *hciptrp,
-                            struct header_complex_index *hciptrn,
-                            oid * newoid, size_t newoid_len, void *data)
-{
-    struct header_complex_index *ourself;
+    for (hciptrn = *thedata, hciptrp = NULL;
+         hciptrn != NULL; hciptrp = hciptrn, hciptrn = hciptrn->next) {
+        /*
+         * XXX: check for == and error (overlapping table entries) 
+         * 8/2005 rks Ok, I added duplicate entry check, but only log
+         *            warning and continue, because it seems that nobody
+         *            that calls this fucntion does error checking!.
+         */
+        rc = snmp_oid_compare(hciptrn->name, hciptrn->namelen,
+                              newoid, newoid_len);
+        if (rc > 0)
+            break;
+        else if (0 == rc) {
+            snmp_log(LOG_WARNING, "header_complex_add_data_by_oid with "
+                     "duplicate index.\n");
+            /** uncomment null return when callers do error checking */
+            /** return NULL; */
+        }
+    }
 
     /*
      * nptr should now point to the spot that we need to add ourselves
@@ -393,8 +400,6 @@ _header_complex_add_between(struct header_complex_index **thedata,
      */
     ourself = (struct header_complex_index *)
         SNMP_MALLOC_STRUCT(header_complex_index);
-    if (ourself == NULL)
-        return NULL;
 
     /*
      * change our pointers 
@@ -425,50 +430,6 @@ _header_complex_add_between(struct header_complex_index **thedata,
     return hciptrp;
 }
 
-
-struct header_complex_index *
-header_complex_maybe_add_data_by_oid(struct header_complex_index **thedata,
-                                     oid * newoid, size_t newoid_len, void *data,
-                                     int dont_allow_duplicates)
-{
-    struct header_complex_index *hciptrn, *hciptrp;
-    int rc;
-
-    if (thedata == NULL || newoid == NULL || data == NULL)
-        return NULL;
-
-    for (hciptrn = *thedata, hciptrp = NULL;
-         hciptrn != NULL; hciptrp = hciptrn, hciptrn = hciptrn->next) {
-        /*
-         * XXX: check for == and error (overlapping table entries) 
-         * 8/2005 rks Ok, I added duplicate entry check, but only log
-         *            warning and continue, because it seems that nobody
-         *            that calls this fucntion does error checking!.
-         */
-        rc = snmp_oid_compare(hciptrn->name, hciptrn->namelen,
-                              newoid, newoid_len);
-        if (rc > 0)
-            break;
-        else if (0 == rc) {
-            snmp_log(LOG_WARNING, "header_complex_add_data_by_oid with "
-                     "duplicate index.\n");
-            if (dont_allow_duplicates)
-                return NULL;
-        }
-    }
-
-    return _header_complex_add_between(thedata, hciptrp, hciptrn,
-                                       newoid, newoid_len, data);
-}
-
-struct header_complex_index *
-header_complex_add_data_by_oid(struct header_complex_index **thedata,
-                               oid * newoid, size_t newoid_len, void *data)
-{
-    return header_complex_maybe_add_data_by_oid(thedata, newoid, newoid_len,
-                                                data, 0);
-}
-
 /*
  * extracts an entry from the storage space (removing it from future
  * accesses) and returns the data stored there
@@ -525,7 +486,6 @@ header_complex_free_entry(struct header_complex_index *theentry,
 /*
  * completely wipe out all entries in our data store 
  */
-#ifndef NETSNMP_FEATURE_REMOVE_HEADER_COMPLEX_FREE_ALL
 void
 header_complex_free_all(struct header_complex_index *thestuff,
                         HeaderComplexCleaner * cleaner)
@@ -537,9 +497,7 @@ header_complex_free_all(struct header_complex_index *thestuff,
         header_complex_free_entry(hciptr, cleaner);
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_HEADER_COMPLEX_FREE_ALL */
 
-#ifndef NETSNMP_FEATURE_REMOVE_HEADER_COMPLEX_FIND_ENTRY
 struct header_complex_index *
 header_complex_find_entry(struct header_complex_index *thestuff,
                           void *theentry)
@@ -550,7 +508,6 @@ header_complex_find_entry(struct header_complex_index *thestuff,
          hciptr = hciptr->next);
     return hciptr;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_HEADER_COMPLEX_FIND_ENTRY */
 
 #ifdef TESTING
 
diff --git a/agent/mibgroup/header_complex.h b/agent/mibgroup/header_complex.h
index 2a1728a..2028cee 100644
--- a/agent/mibgroup/header_complex.h
+++ b/agent/mibgroup/header_complex.h
@@ -57,10 +57,6 @@ struct header_complex_index *header_complex_add_data(struct
                                                      **thedata,
                                                      netsnmp_variable_list
                                                      * var, void *data);
-struct header_complex_index *header_complex_maybe_add_data(struct header_complex_index **thedata,
-                                                           netsnmp_variable_list * var,
-                                                           void *data,
-                                                           int dont_allow_duplicates);
 
 /*
  * Note: newoid is copied/cloned for you 
@@ -72,10 +68,5 @@ struct header_complex_index *header_complex_add_data_by_oid(struct
                                                             size_t
                                                             newoid_len,
                                                             void *data);
-struct header_complex_index *header_complex_maybe_add_data_by_oid(struct header_complex_index **thedata,
-                                                                  oid * newoid,
-                                                                  size_t newoid_len,
-                                                                  void *data,
-                                                                  int dont_allow_duplicates);
 
 #endif                          /* _MIBGROUP_HEADER_COMPLEX_H */
diff --git a/agent/mibgroup/host.h b/agent/mibgroup/host.h
index e8e6558..4b78706 100644
--- a/agent/mibgroup/host.h
+++ b/agent/mibgroup/host.h
@@ -2,18 +2,9 @@
  *  Host Resources 'wrapper' interface
  *	calls the per-group interfaces from 'hr_*.h'
  */
-/* 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.
- */
 
 	config_require(host/hr_system)
+	config_require(host/hr_storage)
 	config_require(host/hr_device)
 	config_require(host/hr_other)
 	config_require(host/hr_proc)
@@ -21,12 +12,9 @@
 	config_require(host/hr_print)
 	config_require(host/hr_disk)
 	config_require(host/hr_partition)
-
-	config_version_require((host/hr_storage, 5.7, host/hrh_storage))
-	config_version_require((host/hr_filesys, 5.7, host/hrh_filesys))
-
-	config_version_require((host/hr_swinst,  5.6, host/hrSWInstalledTable))
-	config_version_require((host/hr_swrun,   5.6, host/hrSWRunTable))
+	config_require(host/hr_filesys)
+	config_require(host/hr_swrun)
+	config_require(host/hr_swinst)
 
 /* add the host resources mib to the default mibs to load */
 config_add_mib(HOST-RESOURCES-MIB)
diff --git a/agent/mibgroup/host/data_access/swinst.c b/agent/mibgroup/host/data_access/swinst.c
deleted file mode 100644
index 3ef05e9..0000000
--- a/agent/mibgroup/host/data_access/swinst.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * swinst.c : hrSWInstalledTable data access
- */
-/*
- * 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.
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include <net-snmp/data_access/swinst.h>
-
-#include <stdlib.h>
-#include <unistd.h>
-
-netsnmp_feature_child_of(software_installed, libnetsnmpmibs)
-
-netsnmp_feature_child_of(swinst_entry_remove, netsnmp_unused)
-
-/* ---------------------------------------------------------------------
- */
-
-static void netsnmp_swinst_entry_free_cb(netsnmp_swinst_entry *, void *);
-
-extern void netsnmp_swinst_arch_init(void);
-extern void netsnmp_swinst_arch_shutdown(void);
-extern int netsnmp_swinst_arch_load(netsnmp_container *, u_int);
-
-void init_swinst( void )
-{
-    static int initialized = 0;
-
-    DEBUGMSGTL(("swinst", "init called\n"));
-
-    if (initialized)
-        return; /* already initialized */
-
-
-    /*
-     * call arch init code
-     */
-    netsnmp_swinst_arch_init();
-}
-
-void shutdown_swinst( void )
-{
-    DEBUGMSGTL(("swinst", "shutdown called\n"));
-
-    netsnmp_swinst_arch_shutdown();
-}
-
-/* ---------------------------------------------------------------------
- */
-
-/*
- * load a container with installed software. If user_container is NULL,
- * a new container will be allocated and returned, and the caller
- * is responsible for releasing the allocated memory when done.
- *
- * if flags contains NETSNMP_SWINST_ALL_OR_NONE and any error occurs,
- * the container will be completely cleared.
- */
-netsnmp_container *
-netsnmp_swinst_container_load( netsnmp_container *user_container, int flags )
-{
-    netsnmp_container *container = user_container;
-    int arch_rc;
-
-    DEBUGMSGTL(("swinst:container", "load\n"));
-
-    /*
-     * create the container, if needed
-     */
-    if (NULL == container) {
-        container = netsnmp_container_find("swinst:table_container");
-        if (NULL == container)
-            return NULL;
-    }
-    if (NULL == container->container_name)
-        container->container_name = strdup("swinst container");
-
-    /*
-     * call the arch specific code to load the container
-     */
-    arch_rc = netsnmp_swinst_arch_load( container, flags );
-    if (arch_rc && (flags & NETSNMP_SWINST_ALL_OR_NONE)) {
-        /*
-         * caller does not want a partial load, so empty the container.
-         * if we created the container, destroy it.
-         */
-        netsnmp_swinst_container_free_items(container);
-        if (container != user_container) {
-            netsnmp_swinst_container_free(container, flags);
-        }
-    }
-    
-    return container;
-}
-
-void
-netsnmp_swinst_container_free(netsnmp_container *container, u_int free_flags)
-{
-    DEBUGMSGTL(("swinst:container", "free\n"));
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR,
-                 "invalid container for netsnmp_swinst_container_free\n");
-        return;
-    }
-
-    if(! (free_flags & NETSNMP_SWINST_DONT_FREE_ITEMS))
-        netsnmp_swinst_container_free_items(container);
-
-    CONTAINER_FREE(container);
-}
-
-/*
- * free a swinst container
- */
-void netsnmp_swinst_container_free_items(netsnmp_container *container)
-{
-    DEBUGMSGTL(("swinst:container", "free_items\n"));
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR,
-                 "invalid container for netsnmp_swinst_container_free_items\n");
-        return;
-    }
-
-    /*
-     * free all items.
-     */
-    CONTAINER_CLEAR(container,
-                    (netsnmp_container_obj_func*)netsnmp_swinst_entry_free_cb,
-                    NULL);
-}
-
-
-/* ---------------------------------------------------------------------
- */
-
-/*
- * create a new row in the table 
- */
-netsnmp_swinst_entry *
-netsnmp_swinst_entry_create(int32_t swIndex)
-{
-    netsnmp_swinst_entry *entry;
-
-    entry = SNMP_MALLOC_TYPEDEF(netsnmp_swinst_entry);
-    if (!entry)
-        return NULL;
-
-    entry->swIndex = swIndex;
-    entry->oid_index.len = 1;
-    entry->oid_index.oids = &entry->swIndex;
-
-    entry->swType = HRSWINSTALLEDTYPE_APPLICATION;
-
-    return entry;
-}
-
-/*
- * free a row
- */
-void
-netsnmp_swinst_entry_free(netsnmp_swinst_entry *entry)
-{
-    DEBUGMSGTL(("swinst:entry:free", "index %" NETSNMP_PRIo "u\n",
-                entry->swIndex));
-
-    free(entry);
-}
-
-/*
- * free a row
- */
-static void
-netsnmp_swinst_entry_free_cb(netsnmp_swinst_entry *entry, void *context)
-{
-    free(entry);
-}
-
-/*
- * remove a row from the table 
- */
-#ifndef NETSNMP_FEATURE_REMOVE_SWINST_ENTRY_REMOVE
-void
-netsnmp_swinst_entry_remove(netsnmp_container * container,
-                            netsnmp_swinst_entry *entry)
-{
-    DEBUGMSGTL(("swinst:container", "remove\n"));
-    if (!entry)
-        return;                 /* Nothing to remove */
-    CONTAINER_REMOVE(container, entry);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_SWINST_ENTRY_REMOVE */
-
-/* ---------------------------------------------------------------------
- */
-
-#ifdef TEST
-int main(int argc, char *argv[])
-{
-    const char *tokens = getenv("SNMP_DEBUG");
-
-    netsnmp_container_init_list();
-
-    /** swinst,verbose:swinst */
-    if (tokens)
-        debug_register_tokens(tokens);
-    else
-        debug_register_tokens("swinst");
-    snmp_set_do_debugging(1);
-
-    init_swinst();
-    netsnmp_swinst_container_load(NULL, 0);
-    shutdown_swinst();
-
-    return 0;
-}
-#endif
diff --git a/agent/mibgroup/host/data_access/swinst.h b/agent/mibgroup/host/data_access/swinst.h
deleted file mode 100644
index bda3e47..0000000
--- a/agent/mibgroup/host/data_access/swinst.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * swinst data access header
- *
- * $Id: swinst.h 15346 2006-09-26 23:34:50Z rstory $
- */
-/*
- * 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.
- */
-#ifndef NETSNMP_ACCESS_SWINST_CONFIG_H
-#define NETSNMP_ACCESS_SWINST_CONFIG_H
-
-/*
- * all platforms use this generic code
- */
-config_exclude(host/hr_swinst)
-
-/*
- * select the appropriate architecture-specific interface code
- */
-#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 )
-    config_require(host/data_access/swinst_pkginfo)
-#else
-    config_warning(This platform does not yet support hrSWInstalledTable rewrites)
-    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
deleted file mode 100644
index 26cdba5..0000000
--- a/agent/mibgroup/host/data_access/swinst_apt.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * 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;
-    int rc;
-
-    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 */
-        rc = 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 %d 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
deleted file mode 100644
index e7a0294..0000000
--- a/agent/mibgroup/host/data_access/swinst_darwin.c
+++ /dev/null
@@ -1,396 +0,0 @@
-/*
- * swinst.c : hrSWInstalledTable data access
- */
-/*
- * 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.
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#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/dir_utils.h>
-#include <net-snmp/library/snmp_debug.h>
-#include <net-snmp/data_access/swinst.h>
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <dirent.h>
-#include <sys/stat.h>
-
-#define __APPLE_API_EVOLVING 1
-#include <sys/acl.h> /* or else CoreFoundation.h barfs */
-#undef __APPLE_API_EVOLVING 
-
-#include <CoreFoundation/CoreFoundation.h>
-#include <ApplicationServices/ApplicationServices.h>
-
-netsnmp_feature_require(container_directory)
-netsnmp_feature_require(date_n_time)
-
-/* ---------------------------------------------------------------------
- */
-static int _add_applications_in_dir(netsnmp_container *, const char* path);
-static int32_t _index;
-static int _check_bundled_app(CFURLRef currentURL, CFStringRef *name,
-                              CFStringRef *info, const char* path);
-static int _check_classic_app(CFURLRef currentURL, CFStringRef *name,
-                              CFStringRef *info, const char* path);
-static netsnmp_container *dirs = NULL;
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_swinst_arch_init( void )
-{
-    struct stat stat_buf;
-    const char *default_dirs[] = {
-        "/Applications",
-        "/Applications (Mac OS 9)",
-        "/System/Library/CoreServices",
-        "/System/Library/Extensions",
-        "/System/Library/Services"
-#ifdef TEST
-        , "/Developer/Applications"
-        , "/Volumes/audX/Applications (Mac OS 9)"
-#endif
-    };
-    int i, count = sizeof(default_dirs)/sizeof(default_dirs[0]);
-
-    /*
-     * create the container, if needed
-     */
-    if (NULL == dirs) {
-        dirs = netsnmp_container_find("directory_container:cstring");
-        if (NULL == dirs) {
-            snmp_log(LOG_ERR, "couldn't allocate container for dir list\n");
-            return;
-        }
-        dirs->container_name = strdup("directory search list");
-        netsnmp_binary_array_options_set(dirs, 1, CONTAINER_KEY_UNSORTED);
-    }
-
-    /*
-     * add dirs
-     */
-    for(i = 0; i < count; ++i) {
-        char *      tmp;
-        /** xxx: get/save the last mod date? */
-        if(-1 == stat(default_dirs[i], &stat_buf)) {
-            DEBUGMSGTL(("swinst:arch:darwin", "skipping dir %s\n",
-                        default_dirs[i]));
-            continue;
-        }
-        DEBUGMSGTL(("swinst:arch:darwin", "adding dir %s\n",
-                        default_dirs[i]));
-        tmp = strdup(default_dirs[i]);
-        if (NULL == tmp) {
-            snmp_log(LOG_ERR,"strdup failed\n");
-            break;
-        }
-        CONTAINER_INSERT(dirs, tmp);
-    }
-}
-
-void
-netsnmp_swinst_arch_shutdown( void )
-{
-    netsnmp_directory_container_free(dirs);
-}
-
-/* ---------------------------------------------------------------------
- */
-
-int
-netsnmp_swinst_arch_load( netsnmp_container *container, u_int flags )
-{
-    netsnmp_iterator   *it;
-    const char         *dir;
-    int                 rc;
-
-    DEBUGMSGTL(("swinst:arch:darwin", "load\n"));
-
-    if (NULL == dirs) {
-        DEBUGMSGTL(("swinst:arch:darwin", "no dirs to scan!\n"));
-        return -1;
-    }
-
-    _index = 0;
-    
-    it = CONTAINER_ITERATOR(dirs);
-    for (dir = ITERATOR_FIRST(it); dir; dir = ITERATOR_NEXT(it)) {
-        rc = _add_applications_in_dir(container, dir);
-    }
-    ITERATOR_RELEASE(it);
-    DEBUGMSGTL(("swinst:arch:darwin", "loaded %d apps\n",_index));
-
-    return 0;
-}
-
-void  _dump_flags(u_long flags)
-{
-    static struct {
-        const char*name;
-        u_long bits;
-    } names[] = {
-        { "kLSItemInfoIsPlainFile", 0x00000001 },
-        { "kLSItemInfoIsPackage", 0x00000002 },
-        { "kLSItemInfoIsApplication", 0x00000004 },
-        { "kLSItemInfoIsContainer", 0x00000008 },
-        { "kLSItemInfoIsAliasFile", 0x00000010 },
-        { "kLSItemInfoIsSymlink", 0x00000020 },
-        { "kLSItemInfoIsInvisible", 0x00000040 },
-        { "kLSItemInfoIsNativeApp", 0x00000080 },
-        { "kLSItemInfoIsClassicApp", 0x00000100 },
-        { "kLSItemInfoAppPrefersNative", 0x00000200 },
-        { "kLSItemInfoAppPrefersClassic", 0x00000400 },
-        { "kLSItemInfoAppIsScriptable", 0x00000800 },
-        { "kLSItemInfoIsVolume", 0x00001000 },
-        { "kLSItemInfoExtensionIsHidden", 0x00100000 }
-    };
-    int i, count = sizeof(names)/sizeof(names[0]);
-
-    for(i = 0; i < count; ++i) {
-        if (flags & names[i].bits) {
-            DEBUGMSGTL(("swinst:arch:darwin:flags", "\t%s\n",
-                       names[i].name));
-        }
-    }
-}
-
-static int
-_add_applications_in_dir(netsnmp_container *container, const char* path)
-{
-    netsnmp_container  *files;
-    netsnmp_iterator   *it;
-    const char         *file;
-    netsnmp_swinst_entry *entry = NULL;
-    struct stat	        stat_buf;
-    size_t              date_len;
-    u_char             *date_buf;
-    int                 rc = 0;
-
-    CFStringRef         currentPath = NULL;
-    CFURLRef            currentURL = NULL;
-    LSItemInfoRecord    itemInfoRecord;
-    CFStringRef         prodName = NULL;
-    CFStringRef         version = NULL;
-    
-    DEBUGMSGTL(("swinst:arch:darwin", " adding files from %s\n", path));
-    files = netsnmp_directory_container_read(NULL, path, 0);
-    if (NULL == files) {
-        snmp_log(LOG_ERR, "swinst: could not read directory %s\n", path);
-        return -1;
-    }
-
-    it = CONTAINER_ITERATOR(files);
-    if (NULL == it) {
-        snmp_log(LOG_ERR, "could not get iterator\n");
-        netsnmp_directory_container_free(files);
-        return -1;
-    }
-    for (file = ITERATOR_FIRST(it);
-         file;
-         file = ITERATOR_NEXT(it),
-             CFRelease(currentPath),
-             CFRelease(currentURL)) {
-
-        int                 rc2 = 0;
-        
-        currentPath =
-            CFStringCreateWithCStringNoCopy(kCFAllocatorDefault, file,
-                                            kCFStringEncodingUTF8,
-                                            kCFAllocatorNull);
-        currentURL =
-            CFURLCreateWithFileSystemPath(kCFAllocatorDefault, currentPath,
-                                          kCFURLPOSIXPathStyle, true); 
-        LSCopyItemInfoForURL(currentURL,
-                             kLSRequestBasicFlagsOnly|kLSRequestAppTypeFlags,
-                             &itemInfoRecord); 
-        if((0 == itemInfoRecord.flags) ||
-           (kLSItemInfoIsPlainFile == itemInfoRecord.flags) ||
-           (itemInfoRecord.flags & kLSItemInfoIsInvisible) ||
-           (itemInfoRecord.flags & kLSItemInfoIsAliasFile)) {
-            continue;
-        }
-        /** recurse on non-application containers (i.e. directory) */
-        if ((itemInfoRecord.flags & kLSItemInfoIsContainer) &&
-            (!(itemInfoRecord.flags & kLSItemInfoIsApplication))) {
-            netsnmp_directory_container_read(files, file, 0);
-            continue;
-       }
-
-        /** skip any other non-application files */
-        if (!(itemInfoRecord.flags & kLSItemInfoIsApplication)) {
-            continue;
-       }
-
-        if ((itemInfoRecord.flags & kLSItemInfoIsPackage) ||           
-            (itemInfoRecord.flags & kLSItemInfoIsContainer)) {
-            rc2 = _check_bundled_app(currentURL, &prodName, &version, file);
-        } 
-        else if ((itemInfoRecord.flags & kLSItemInfoIsClassicApp) ||
-                 (itemInfoRecord.flags & kLSItemInfoIsPlainFile)) {
-            rc2 = _check_classic_app(currentURL, &prodName, &version, file);
-        } else {
-            snmp_log(LOG_ERR,"swinst shouldn't get here: %s\n", file);
-            _dump_flags(itemInfoRecord.flags);
-            continue;
-        }
-        if (rc2) { /* not an app. if directory, recurse; else continue */
-            _dump_flags(itemInfoRecord.flags);
-            if (1 == rc2)
-                netsnmp_directory_container_read(files, file, 0);
-            continue;
-        }
-        
-        /*
-         * allocate entry
-         */
-        entry = netsnmp_swinst_entry_create(++_index);
-        if (NULL == entry) {
-            snmp_log(LOG_ERR, "error creating swinst entry\n");
-            rc = -1;
-            SNMP_CFRelease(prodName);
-            SNMP_CFRelease(version);
-            break;
-        }
-
-        entry->swName_len =
-            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));
-
-        /** get the last mod date */
-        if(stat(file, &stat_buf) != -1) {
-            date_buf = date_n_time(&stat_buf.st_mtime, &date_len);
-            entry->swDate_len = date_len;
-            memcpy(entry->swDate, date_buf, entry->swDate_len);
-        }
-        
-        CONTAINER_INSERT(container, entry);
-        entry = NULL;
-        SNMP_CFRelease(prodName);
-        SNMP_CFRelease(version);
-    }
-    ITERATOR_RELEASE(it);
-    netsnmp_directory_container_free(files);
-
-    return rc;
-}
-
-int
-_check_bundled_app(CFURLRef currentURL, CFStringRef *prodName,
-                   CFStringRef *version, const char* file)
-{
-    CFBundleRef         theBundle = NULL;
-    CFDictionaryRef     infoDict = NULL;
-            
-    if ((NULL == prodName) || (NULL == version))
-       return -1;
-
-    theBundle = CFBundleCreate (kCFAllocatorDefault, currentURL);
-    if(theBundle == NULL)
-        return -1; /* not a bundle */
-
-    infoDict = CFBundleGetInfoDictionary(theBundle);
-    if(0 == CFDictionaryGetCount(infoDict)) {
-        SNMP_CFRelease(theBundle);
-        return 1; /* directory */
-    }
-
-    *prodName = (CFStringRef)
-        CFDictionaryGetValue (infoDict, CFSTR("CFBundleName"));
-    if (NULL == *prodName) {
-        *prodName = (CFStringRef)
-            CFDictionaryGetValue (infoDict, CFSTR("CFBundleDisplayName"));
-        if (NULL == *prodName) {
-            *prodName = (CFStringRef) CFDictionaryGetValue (infoDict,
-                                      CFSTR("CFBundleExecutable"));
-        }
-    }
-    if(NULL == *prodName) {
-        DEBUGMSGTL(("swinst:arch:darwin", "\tmissing name: %s\n",file));
-        /*CFShow(infoDict);*/
-        SNMP_CFRelease(theBundle);
-        return -1;
-    }
-
-    *version = (CFStringRef)
-        CFDictionaryGetValue (infoDict, CFSTR("CFBundleShortVersionString"));
-    if(NULL == *version) {
-        *version = (CFStringRef)
-            CFDictionaryGetValue (infoDict, CFSTR("CFBundleVersion"));
-        if (*version == NULL) 
-            *version = (CFStringRef) CFDictionaryGetValue (infoDict,
-                                      CFSTR("CFBundleGetInfoString"));
-    }
-    if(NULL == *version) {
-        DEBUGMSGTL(("swinst:arch:darwin", "\tmissing version: %s\n",file));
-        /*CFShow(infoDict);*/
-        SNMP_CFRelease(theBundle);
-        return -1;
-    }
-    
-    if(theBundle != NULL) {
-        CFRetain(*prodName);
-        CFRetain(*version);
-        SNMP_CFRelease(theBundle);
-    }
-    return 0;
-}
-
-static int
-_check_classic_app(CFURLRef currentURL, CFStringRef *prodName,
-                   CFStringRef *version, const char* file)
-{
-    /*
-     * get info for classic or single-file apps
-     */
-    FSRef theFSRef;
-    int theResFile;
-
-    if ((NULL == prodName) || (NULL == version))
-       return -1;
-
-    *prodName = CFURLCopyLastPathComponent(currentURL);
-    if (! CFURLGetFSRef(currentURL, &theFSRef)) {
-        DEBUGMSGTL(("swinst:arch:darwin", "GetFSRef failed: %s\n", file));
-        SNMP_CFRelease(*prodName);
-        return -1;
-    }
-    theResFile = FSOpenResFile(&theFSRef, fsRdPerm);
-    if (ResError() != noErr) {
-        DEBUGMSGTL(("swinst:arch:darwin", "FSOpenResFile failed: %s\n", file));
-        SNMP_CFRelease(*prodName);
-        return -1;
-    }
-    VersRecHndl versHandle = (VersRecHndl)Get1IndResource('vers', 1);
-    if (versHandle != NULL) {
-        *version = CFStringCreateWithPascalString(kCFAllocatorDefault,
-                       (**versHandle).shortVersion, kCFStringEncodingMacRoman);
-        if (*version == NULL) {
-            StringPtr longVersionPtr = (**versHandle).shortVersion;
-            longVersionPtr = (StringPtr)(((Ptr) longVersionPtr) +
-                              1 + ((unsigned char) *longVersionPtr));
-            *version = CFStringCreateWithPascalString(kCFAllocatorDefault,
-                          longVersionPtr,  kCFStringEncodingMacRoman);
-        }
-        ReleaseResource((Handle)versHandle);
-    }
-    CloseResFile(theResFile);
-    if(*version == NULL) {
-        DEBUGMSGTL(("swinst:arch:darwin",
-                    "\tmissing classic/file version: %s\n", file));
-        SNMP_CFRelease(*prodName);
-        return -1;
-    }
-
-    return 0;
-}
diff --git a/agent/mibgroup/host/data_access/swinst_null.c b/agent/mibgroup/host/data_access/swinst_null.c
deleted file mode 100644
index e4f9158..0000000
--- a/agent/mibgroup/host/data_access/swinst_null.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * swinst_null.c:
- *     hrSWInstalledTable data access:
- *     dummy interface for non-supported systems
- */
-#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
-
-#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>
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_swinst_arch_init(void)
-{
-    /* Nothing to do */
-    return;
-}
-
-void
-netsnmp_swinst_arch_shutdown(void)
-{
-    /* Nothing to do */
-    return;
-}
-
-/* ---------------------------------------------------------------------
- */
-int
-netsnmp_swinst_arch_load( netsnmp_container *container, u_int flags)
-{
-    /* Nothing to do */
-    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
deleted file mode 100644
index 965a7ef..0000000
--- a/agent/mibgroup/host/data_access/swinst_pkginfo.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * swinst_pkginfo.c:
- *     hrSWInstalledTable data access:
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-#include <stdio.h>
-#include <sys/stat.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_DIRENT_H
-#include <dirent.h>
-#endif
-
-#ifdef HAVE_PKGLOCS_H
-#include <pkglocs.h>
-#endif
-#ifdef HAVE_PKGINFO_H
-#include <pkginfo.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>
-
-netsnmp_feature_require(date_n_time)
-
-   /*
-    * Location of package directory.
-    * Used for:
-    *    - reporting hrSWInstalledLast* objects
-    *    - detecting when the cached contents are out of date.
-    */
-char pkg_directory[SNMP_MAXPATH];
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_swinst_arch_init(void)
-{
-#if defined(PKGLOC)
-    snprintf( pkg_directory, SNMP_MAXPATH, "%s", PKGLOC );
-#elif defined(hpux9)
-    snprintf( pkg_directory, SNMP_MAXPATH, "/system" );
-#elif defined(hpux10) ||  defined(hpux11) 
-    snprintf( pkg_directory, SNMP_MAXPATH, "/var/adm/sw/products" );
-#elif defined(freebsd2) || defined(openbsd)
-    snprintf( pkg_directory, SNMP_MAXPATH, "/var/db/pkg" );
-#elif defined(linux)
-    snprintf( pkg_directory, SNMP_MAXPATH, "/var/cache/hrmib" );
-#else
-    pkg_directory[0] = '\0';
-    snmp_log( LOG_ERR, "SWInst: No package directory\n" );
-#endif
-
-    DEBUGMSGTL(("swinst:init:arch"," package directory = %s\n",
-                                         pkg_directory));
-    return;
-}
-
-void
-netsnmp_swinst_arch_shutdown(void)
-{
-    pkg_directory[0] = '\0';
-    return;
-}
-
-/* ---------------------------------------------------------------------
- */
-int
-netsnmp_swinst_arch_load( netsnmp_container *container, u_int flags)
-{
-    DIR                  *d;
-    struct dirent        *dp;
-    struct stat           stat_buf;
-#ifdef HAVE_PKGINFO
-    char                 *v, *c;
-#endif
-    char                  buf[ BUFSIZ ];
-    unsigned char        *cp;
-    time_t                install_time;
-    size_t                date_len;
-    int                   i = 1;
-    netsnmp_swinst_entry *entry;
-
-    if ( !pkg_directory[0] ) {
-        return 1;    /* Can't report installed packages
-                         if there isn't a list of them! */
-    }
-    d = opendir( pkg_directory );
-    if (!d)
-	return 1;
-    while ((dp = readdir(d)) != NULL) {
-        if ( '.' == dp->d_name[0] )
-            continue;
-        entry = netsnmp_swinst_entry_create( i++ );
-        if (NULL == entry)
-            continue;   /* error already logged by function */
-        CONTAINER_INSERT(container, entry);
-
-#ifdef HAVE_PKGINFO
-        v = pkgparam( dp->d_name, "VERSION" );
-        c = pkgparam( dp->d_name, "CATEGORY" );
-
-        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    */
-
-        /* Do we need to free 'v' & 'c' ??? */
-#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
-
-        snprintf( buf, BUFSIZ, "%s/%s", pkg_directory, dp->d_name );
-        stat( buf, &stat_buf );
-        install_time = stat_buf.st_mtime;
-        cp = date_n_time( &install_time, &date_len );
-        memcpy( entry->swDate, cp, date_len );
-        entry->swDate_len = date_len;
-    }
-    closedir( d );
-
-    DEBUGMSGTL(("swinst:load:arch"," loaded %d entries\n",
-                (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
deleted file mode 100644
index 71595be..0000000
--- a/agent/mibgroup/host/data_access/swinst_rpm.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * swinst_rpm.c:
- *     hrSWInstalledTable data access:
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.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
-
-#ifdef HAVE_RPM_RPMLIB_H
-#include <rpm/rpmlib.h>
-#endif
-#ifdef HAVE_RPM_RPMLIB_H
-#include <rpm/header.h>
-#endif
-#ifdef HAVE_RPMGETPATH		/* HAVE_RPM_RPMMACRO_H */
-#include <rpm/rpmmacro.h>
-#endif
-#ifdef HAVE_RPM_RPMTS_H
-#include <rpm/rpmts.h>
-#include <rpm/rpmdb.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>
-
-netsnmp_feature_require(date_n_time)
-
-   /*
-    * Location of RPM package directory.
-    * Used for:
-    *    - reporting hrSWInstalledLast* objects
-    *    - detecting when the cached contents are out of date.
-    */
-char pkg_directory[SNMP_MAXPATH];
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_swinst_arch_init(void)
-{
-    char        *rpmdbpath = NULL;
-    const char  *dbpath;
-    struct stat  stat_buf;
-
-#ifdef HAVE_RPMGETPATH
-    rpmReadConfigFiles( NULL, NULL );
-    rpmdbpath = rpmGetPath( "%{_dbpath}", NULL );
-    dbpath = rpmdbpath;
-#else
-    dbpath = "/var/lib/rpm";   /* Most likely */
-#endif
-
-    snprintf( pkg_directory, SNMP_MAXPATH, "%s/Packages", dbpath );
-    SNMP_FREE(rpmdbpath);
-    dbpath = NULL;
-    if (-1 == stat( pkg_directory, &stat_buf )) {
-        snmp_log(LOG_ERR, "Can't find directory of RPM packages");
-        pkg_directory[0] = '\0';
-    }
-}
-
-void
-netsnmp_swinst_arch_shutdown(void)
-{
-     /* Nothing to do */
-     return;
-}
-
-/* ---------------------------------------------------------------------
- */
-int
-netsnmp_swinst_arch_load( netsnmp_container *container, u_int flags)
-{
-    rpmts                 ts;
-
-    rpmdbMatchIterator    mi;
-    Header                h;
-    char                 *n, *v, *r, *g;
-    int32_t              *t;
-    time_t                install_time;
-    size_t                date_len;
-    int                   i = 1;
-    netsnmp_swinst_entry *entry;
-
-    ts = rpmtsCreate();
-    rpmtsSetVSFlags( ts, (_RPMVSF_NOSIGNATURES|_RPMVSF_NODIGESTS));
-
-    mi = rpmtsInitIterator( ts, RPMDBI_PACKAGES, NULL, 0);
-    if (mi == NULL)
-	NETSNMP_LOGONCE((LOG_ERR, "rpmdbOpen() failed\n"));
-
-    while (NULL != (h = rpmdbNextIterator( mi )))
-    {
-        const u_char *dt;
-        entry = netsnmp_swinst_entry_create( i++ );
-        if (NULL == entry)
-            continue;   /* error already logged by function */
-        CONTAINER_INSERT(container, entry);
-
-        h = headerLink( h );
-        headerGetEntry( h, RPMTAG_NAME,        NULL, (void**)&n, NULL);
-        headerGetEntry( h, RPMTAG_VERSION,     NULL, (void**)&v, NULL);
-        headerGetEntry( h, RPMTAG_RELEASE,     NULL, (void**)&r, NULL);
-        headerGetEntry( h, RPMTAG_GROUP,       NULL, (void**)&g, NULL);
-        headerGetEntry( h, RPMTAG_INSTALLTIME, NULL, (void**)&t, NULL);
-
-        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    */
-
-        install_time = *t;
-        dt = date_n_time( &install_time, &date_len );
-        if (date_len != 8 && date_len != 11) {
-            snmp_log(LOG_ERR, "Bogus length from date_n_time for %s", entry->swName);
-            entry->swDate_len = 0;
-        }
-        else {
-            entry->swDate_len = date_len;
-            memcpy(entry->swDate, dt, entry->swDate_len);
-        }
-
-        headerFree( h );
-    }
-    rpmdbFreeIterator( mi );
-    rpmtsFree( ts );
-
-    DEBUGMSGTL(("swinst:load:arch", "loaded %d entries\n",
-                (int)CONTAINER_SIZE(container)));
-
-    return 0;
-}
diff --git a/agent/mibgroup/host/data_access/swrun.c b/agent/mibgroup/host/data_access/swrun.c
deleted file mode 100644
index d18ea5f..0000000
--- a/agent/mibgroup/host/data_access/swrun.c
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- *  Swrun MIB architecture support
- *
- * $Id: swrun.c 15768 2007-01-22 16:18:29Z rstory $
- */
-/*
- * 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.
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include <net-snmp/data_access/swrun.h>
-
-netsnmp_feature_child_of(software_running, libnetsnmpmibs)
-
-netsnmp_feature_child_of(swrun_max_processes, software_running)
-netsnmp_feature_child_of(swrun_count_processes_by_name, software_running)
-
-/**---------------------------------------------------------------------*/
-/*
- * local static vars
- */
-static int _swrun_init = 0;
-       int _swrun_max  = 0;
-static netsnmp_cache     *swrun_cache     = NULL;
-static netsnmp_container *swrun_container = NULL;
-
-netsnmp_container * netsnmp_swrun_container(void);
-netsnmp_cache     * netsnmp_swrun_cache    (void);
-
-/*
- * local static prototypes
- */
-static void _swrun_entry_release(netsnmp_swrun_entry * entry,
-                                            void *unused);
-
-/**---------------------------------------------------------------------*/
-/*
- * external per-architecture functions prototypes
- *
- * These shouldn't be called by the general public, so they aren't in
- * the header file.
- */
-extern void netsnmp_arch_swrun_init(void);
-extern int netsnmp_arch_swrun_container_load(netsnmp_container* container,
-                                             u_int load_flags);
-
-/**
- * initialization
- */
-void
-init_swrun(void)
-{
-    DEBUGMSGTL(("swrun:access", "init\n"));
-
-    if (1 == _swrun_init)
-        return;
-
-    _swrun_init = 1;
-
-    (void)netsnmp_swrun_container();
-    netsnmp_arch_swrun_init();
-    (void) netsnmp_swrun_cache();
-}
-
-void
-shutdown_swrun(void)
-{
-    DEBUGMSGTL(("swrun:access", "shutdown\n"));
-
-}
-
-int
-swrun_count_processes( void )
-{
-    netsnmp_cache_check_and_reload(swrun_cache);
-    return ( swrun_container ? CONTAINER_SIZE(swrun_container) : 0 );
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_SWRUN_MAX_PROCESSES
-int
-swrun_max_processes( void )
-{
-    return _swrun_max;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_SWRUN_MAX_PROCESSES */
-
-#ifndef NETSNMP_FEATURE_REMOVE_SWRUN_COUNT_PROCESSES_BY_NAME
-int
-swrun_count_processes_by_name( char *name )
-{
-    netsnmp_swrun_entry *entry;
-    netsnmp_iterator  *it;
-    int i = 0;
-
-    netsnmp_cache_check_and_reload(swrun_cache);
-    if ( !swrun_container || !name )
-        return 0;    /* or -1 */
-
-    it = CONTAINER_ITERATOR( swrun_container );
-    while ((entry = (netsnmp_swrun_entry*)ITERATOR_NEXT( it )) != NULL) {
-        if (0 == strcmp( entry->hrSWRunName, name ))
-            i++;
-    }
-    ITERATOR_RELEASE( it );
-
-    return i;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_SWRUN_COUNT_PROCESSES_BY_NAME */
-
-/**---------------------------------------------------------------------*/
-/*
- * cache functions
- */
-
-static int
-_cache_load( netsnmp_cache *cache,  void *magic )
-{
-    netsnmp_swrun_container_load( swrun_container, 0 );
-    return 0;
-}
-
-static void
-_cache_free( netsnmp_cache *cache,  void *magic )
-{
-    netsnmp_swrun_container_free_items( swrun_container );
-    return;
-}
-
-/**
- * create swrun cache
- */
-netsnmp_cache *
-netsnmp_swrun_cache(void)
-{
-    oid    hrSWRunTable_oid[]   = { 1, 3, 6, 1, 2, 1, 25, 4, 2 };
-    size_t hrSWRunTable_oid_len = OID_LENGTH(hrSWRunTable_oid);
-
-    if ( !swrun_cache ) {
-        swrun_cache = netsnmp_cache_create(30,   /* timeout in seconds */
-                           _cache_load,  _cache_free,
-                           hrSWRunTable_oid, hrSWRunTable_oid_len);
-        if (swrun_cache)
-            swrun_cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
-    }
-    return swrun_cache;
-}
-
-
-/**---------------------------------------------------------------------*/
-/*
- * container functions
- */
-/**
- * create swrun container
- */
-netsnmp_container *
-netsnmp_swrun_container(void)
-{
-    DEBUGMSGTL(("swrun:container", "init\n"));
-
-    /*
-     * create the container.
-     */
-  if (!swrun_container) {
-    swrun_container = netsnmp_container_find("swrun:table_container");
-    if (NULL == swrun_container)
-        return NULL;
-
-    swrun_container->container_name = strdup("swrun container");
-  }
-
-    return swrun_container;
-}
-
-/**
- * load swrun information in specified container
- *
- * @param container empty container to be filled.
- *                  pass NULL to have the function create one.
- * @param load_flags flags to modify behaviour. Examples:
- *                   NETSNMP_SWRUN_ALL_OR_NONE
- *
- * @retval NULL  error
- * @retval !NULL pointer to container
- */
-netsnmp_container*
-netsnmp_swrun_container_load(netsnmp_container* user_container, u_int load_flags)
-{
-    netsnmp_container* container = user_container;
-    int rc;
-
-    DEBUGMSGTL(("swrun:container:load", "load\n"));
-    netsnmp_assert(1 == _swrun_init);
-
-    if (NULL == container)
-        container = netsnmp_swrun_container();
-    if (NULL == container) {
-        snmp_log(LOG_ERR, "no container specified/found for swrun\n");
-        return NULL;
-    }
-
-    rc =  netsnmp_arch_swrun_container_load(container, load_flags);
-    if (0 != rc) {
-        if (NULL == user_container) {
-            netsnmp_swrun_container_free(container, NETSNMP_SWRUN_NOFLAGS);
-            container = NULL;
-        }
-        else if (load_flags & NETSNMP_SWRUN_ALL_OR_NONE) {
-            DEBUGMSGTL(("swrun:container:load",
-                        " discarding partial results\n"));
-            netsnmp_swrun_container_free_items(container);
-        }
-    }
-
-    return container;
-}
-
-void
-netsnmp_swrun_container_free(netsnmp_container *container, u_int free_flags)
-{
-    DEBUGMSGTL(("swrun:container", "free\n"));
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR, "invalid container for netsnmp_swrun_container_free\n");
-        return;
-    }
-
-    if(! (free_flags & NETSNMP_SWRUN_DONT_FREE_ITEMS))
-        netsnmp_swrun_container_free_items(container);
-
-    CONTAINER_FREE(container);
-}
-
-void
-netsnmp_swrun_container_free_items(netsnmp_container *container)
-{
-    DEBUGMSGTL(("swrun:container", "free_items\n"));
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR, "invalid container for netsnmp_swrun_container_free_items\n");
-        return;
-    }
-
-    /*
-     * free all items.
-     */
-    CONTAINER_CLEAR(container,
-                    (netsnmp_container_obj_func*)_swrun_entry_release,
-                    NULL);
-}
-
-/**---------------------------------------------------------------------*/
-/*
- * swrun_entry functions
- */
-/**
- */
-netsnmp_swrun_entry *
-netsnmp_swrun_entry_get_by_index(netsnmp_container *container, oid index)
-{
-    netsnmp_index   tmp;
-
-    DEBUGMSGTL(("swrun:entry", "by_index\n"));
-    netsnmp_assert(1 == _swrun_init);
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR,
-                 "invalid container for netsnmp_swrun_entry_get_by_index\n");
-        return NULL;
-    }
-
-    tmp.len = 1;
-    tmp.oids = &index;
-
-    return (netsnmp_swrun_entry *) CONTAINER_FIND(container, &tmp);
-}
-
-/**
- */
-netsnmp_swrun_entry *
-netsnmp_swrun_entry_create(int32_t index)
-{
-    netsnmp_swrun_entry *entry =
-        SNMP_MALLOC_TYPEDEF(netsnmp_swrun_entry);
-
-    if(NULL == entry)
-        return NULL;
-
-    entry->hrSWRunIndex = index;
-    entry->hrSWRunType = 1; /* unknown */
-    entry->hrSWRunStatus = 2; /* runnable */
-
-    entry->oid_index.len = 1;
-    entry->oid_index.oids = (oid *) & entry->hrSWRunIndex;
-
-    return entry;
-}
-
-/**
- */
-NETSNMP_INLINE void
-netsnmp_swrun_entry_free(netsnmp_swrun_entry * entry)
-{
-    if (NULL == entry)
-        return;
-
-    /*
-     * SNMP_FREE not needed, for any of these, 
-     * since the whole entry is about to be freed
-     */
-    free(entry);
-}
-
-/**---------------------------------------------------------------------*/
-/*
- * Utility routines
- */
-
-/**
- */
-static void
-_swrun_entry_release(netsnmp_swrun_entry * entry, void *context)
-{
-    netsnmp_swrun_entry_free(entry);
-}
-
-
-#ifdef TEST
-int main(int argc, char *argv[])
-{
-    const char *tokens = getenv("SNMP_DEBUG");
-
-    netsnmp_container_init_list();
-
-    /** swrun,verbose:swrun,9:swrun,8:swrun,5:swrun */
-    if (tokens)
-        debug_register_tokens(tokens);
-    else
-        debug_register_tokens("swrun");
-    snmp_set_do_debugging(1);
-
-    init_swrun();
-    netsnmp_swrun_container_load(NULL, 0);
-    shutdown_swrun();
-
-    return 0;
-}
-#endif
diff --git a/agent/mibgroup/host/data_access/swrun.h b/agent/mibgroup/host/data_access/swrun.h
deleted file mode 100644
index 2ae53f5..0000000
--- a/agent/mibgroup/host/data_access/swrun.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * swrun data access header
- *
- * $Id: swrun.h 15346 2006-09-26 23:34:50Z rstory $
- */
-/*
- * 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.
- */
-#ifndef NETSNMP_ACCESS_SWRUN_CONFIG_H
-#define NETSNMP_ACCESS_SWRUN_CONFIG_H
-
-/*
- * all platforms use this generic code
- */
-config_require(host/data_access/swrun)
-config_exclude(host/hr_swrun)
-
-/*
- * select the appropriate architecture-specific interface code
- */
-#if   defined( darwin )
-    config_require(host/data_access/swrun_darwin)
-#elif defined( HAVE_SYS_PSTAT_H )
-    config_require(host/data_access/swrun_pstat)
-#elif defined( dynix )
-    config_require(host/data_access/swrun_prpsinfo)
-#elif defined( solaris2 )
-# if _SLASH_PROC_METHOD_
-    config_require(host/data_access/swrun_procfs_psinfo)
-# else
-    config_require(host/data_access/swrun_kvm_proc)
-# endif
-#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)
-#elif defined( linux )
-    config_require(host/data_access/swrun_procfs_status)
-#elif defined( cygwin )
-    config_require(host/data_access/swrun_cygwin)
-#else
-    config_warning(This platform does not yet support hrSWRunTable rewrites)
-    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);
-
-#endif /* NETSNMP_ACCESS_SWRUN_CONFIG_H */
diff --git a/agent/mibgroup/host/data_access/swrun_cygwin.c b/agent/mibgroup/host/data_access/swrun_cygwin.c
deleted file mode 100644
index ca5194d..0000000
--- a/agent/mibgroup/host/data_access/swrun_cygwin.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * swrun_cygwin.c:
- *     hrSWRunTable data access:
- *     Cygwin interface 
- */
-#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
-
-#include <windows.h>
-#include <sys/cygwin.h>
-#include <tlhelp32.h>
-#include <psapi.h>
-
-#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/swrun.h>
-#include <net-snmp/data_access/swrun.h>
-
-/*
- * a lot of this is "stolen" from cygwin ps.cc
- */
-
-typedef         BOOL(WINAPI * ENUMPROCESSMODULES) (HANDLE hProcess,
-                                                   HMODULE * lphModule,
-                                                   DWORD cb,
-                                                   LPDWORD lpcbNeeded);
-
-typedef         DWORD(WINAPI * GETMODULEFILENAME) (HANDLE hProcess,
-                                                   HMODULE hModule,
-                                                   LPTSTR lpstrFIleName,
-                                                   DWORD nSize);
-
-typedef         DWORD(WINAPI * GETPROCESSMEMORYINFO) (HANDLE hProcess,
-                                                      PPROCESS_MEMORY_COUNTERS
-                                                      pmc, DWORD nSize);
-
-typedef         HANDLE(WINAPI * CREATESNAPSHOT) (DWORD dwFlags,
-                                                 DWORD th32ProcessID);
-
-typedef         BOOL(WINAPI * PROCESSWALK) (HANDLE hSnapshot,
-                                            LPPROCESSENTRY32 lppe);
-
-ENUMPROCESSMODULES myEnumProcessModules;
-GETMODULEFILENAME myGetModuleFileNameEx;
-CREATESNAPSHOT  myCreateToolhelp32Snapshot;
-PROCESSWALK     myProcess32First;
-PROCESSWALK     myProcess32Next;
-GETPROCESSMEMORYINFO myGetProcessMemoryInfo = NULL;
-cygwin_getinfo_types query = CW_GETPINFO;
-
-static BOOL WINAPI
-dummyprocessmodules(HANDLE hProcess,
-                    HMODULE * lphModule, DWORD cb, LPDWORD lpcbNeeded)
-{
-    lphModule[0] = (HMODULE) * lpcbNeeded;
-    *lpcbNeeded = 1;
-    return 1;
-}
-
-static DWORD WINAPI
-GetModuleFileNameEx95(HANDLE hProcess,
-                      HMODULE hModule, LPTSTR lpstrFileName, DWORD n)
-{
-    HANDLE          h;
-    DWORD           pid = (DWORD) hModule;
-    PROCESSENTRY32  proc;
-
-    h = myCreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
-    if (!h)
-        return 0;
-    proc.dwSize = sizeof(proc);
-    if (myProcess32First(h, &proc))
-        do
-            if (proc.th32ProcessID == pid) {
-                CloseHandle(h);
-                strcpy(lpstrFileName, proc.szExeFile);
-                return 1;
-            }
-        while (myProcess32Next(h, &proc));
-    CloseHandle(h);
-    return 0;
-}
-
-#define FACTOR (0x19db1ded53ea710LL)
-#define NSPERSEC 10000000LL
-#define NSPERMSEC 10000LL
-
-static time_t   __stdcall
-to_time_t(PFILETIME ptr)
-{
-    long            rem;
-    long long       x =
-        ((long long) ptr->dwHighDateTime << 32) +
-        ((unsigned) ptr->dwLowDateTime);
-    x -= FACTOR;
-    rem = x % NSPERSEC;
-    rem += NSPERSEC / 2;
-    x /= NSPERSEC;
-    x += rem / NSPERSEC;
-    return x;
-}
-
-static long
-to_msec(PFILETIME ptr)
-{
-    long long       x =
-        ((long long) ptr->dwHighDateTime << 32) +
-        (unsigned) ptr->dwLowDateTime;
-    x /= NSPERMSEC;
-    return x;
-}
-
-OSVERSIONINFO   ver;
-HMODULE         h;
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_arch_swrun_init(void)
-{
-    memset(&ver, 0, sizeof ver);
-    ver.dwOSVersionInfoSize = sizeof ver;
-    GetVersionEx(&ver);
-
-    if (ver.dwPlatformId == VER_PLATFORM_WIN32_NT) {
-        h = LoadLibrary("psapi.dll");
-        if (h) {
-            myEnumProcessModules   = (ENUMPROCESSMODULES)
-                       GetProcAddress(h, "EnumProcessModules");
-            myGetModuleFileNameEx  = (GETMODULEFILENAME)
-                       GetProcAddress(h, "GetModuleFileNameExA");
-            myGetProcessMemoryInfo = (GETPROCESSMEMORYINFO)
-                       GetProcAddress(h, "GetProcessMemoryInfo");
-            if (myEnumProcessModules && myGetModuleFileNameEx)
-                query = CW_GETPINFO_FULL;
-            else
-                snmp_log(LOG_ERR, "hr_swrun failed NT init\n");
-        } else
-            snmp_log(LOG_ERR, "hr_swrun failed to load psapi.dll\n");
-    } else {
-        h = GetModuleHandle("KERNEL32.DLL");
-        myCreateToolhelp32Snapshot = (CREATESNAPSHOT)
-                       GetProcAddress(h, "CreateToolhelp32Snapshot");
-        myProcess32First = (PROCESSWALK) GetProcAddress(h, "Process32First");
-        myProcess32Next  = (PROCESSWALK) GetProcAddress(h, "Process32Next");
-        myEnumProcessModules  = dummyprocessmodules;
-        myGetModuleFileNameEx = GetModuleFileNameEx95;
-        if (myCreateToolhelp32Snapshot && myProcess32First
-            && myProcess32Next)
-#if 0
-            /*
-             * This doesn't work after all on Win98 SE 
-             */
-            query = CW_GETPINFO_FULL;
-#else
-            query = CW_GETPINFO;
-#endif
-        else
-            snmp_log(LOG_ERR, "hr_swrun failed non-NT init\n");
-    }
-    return;
-}
-
-/* ---------------------------------------------------------------------
- */
-int
-netsnmp_arch_swrun_container_load( netsnmp_container *container, u_int flags)
-{
-    struct external_pinfo  *curproc;
-    pid_t                   curpid = 0;
-    DWORD                   n;
-    HANDLE                  h;
-    FILETIME                ct, et, kt, ut;
-    PROCESS_MEMORY_COUNTERS pmc;
-    char                   *cp1, *cp2;
-    netsnmp_swrun_entry    *entry;
-
-    cygwin_internal(CW_LOCK_PINFO, 1000);
-    while (curproc = (struct external_pinfo *)
-               cygwin_internal(query, curpid | CW_NEXTPID)) {
-
-        curpid = curproc->pid;
-        if (( PID_EXITED & curproc.process_state ) ||
-               ( ~0xffff & curproc.exitcode ))
-            continue;
-        entry = netsnmp_swrun_entry_create(curpid);
-        if (NULL == entry)
-            continue;   /* error already logged by function */
-        rc = CONTAINER_INSERT(container, entry);
-
-
-        n = lowproc.dwProcessId & 0xffff;
-        h = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, n);
-
-        if (curproc.ppid) {
-            entry->hrSWRunPath_len = snprintf(entry->hrSWRunPath,
-                                       sizeof(entry->hrSWRunPath)-1, "%s",
-                    cygwin_conv_to_posix_path(curproc.progname));
-        } else if (query == CW_GETPINFO_FULL) {
-
-            if (h) {
-                HMODULE         hm[1000];
-                if (!myEnumProcessModules(h, hm, sizeof hm, &n))
-                    n = 0;
-                if (n && myGetModuleFileNameEx(h, hm[0], string,
-                                                  sizeof string)) {
-                   entry->hrSWRunPath_len = snprintf(entry->hrSWRunPath,
-                                              sizeof(entry->hrSWRunPath)-1,
-                                                    "%s", string );
-                }
-            }
-        }
-        /*
-         * Set hrSWRunName to be the last component of hrSWRunPath,
-         *    but without any file extension
-         */
-        if ( entry->hrSWRunPath_len ) {
-            cp1 = strrchr( entry->hrSWRunPath, '.' );
-            if ( cp1 )
-                *cp1 = '\0';    /* Mask the file extension */
-
-            cp2  = strrchr( entry->hrSWRunPath, '/' );
-            if (cp2) 
-                cp2++;           /* Find the final component ... */
-            else
-                cp2 = entry->hrSWRunPath;          /* ... if any */
-            entry->hrSWRunName_len = snprintf(entry->hrSWRunName,
-                                       sizeof(entry->hrSWRunName)-1, "%s", cp2);
-
-            if ( cp1 )
-                *cp1 = '.';     /* Restore the file extension */
-        }
-
-        /*
-         * XXX - No information regarding process arguments
-         * XXX - No information regarding system processes vs applications
-         */
-
-        if (PID_STOPPED & curproc.process_state ) {
-            entry->hrSWRunStatus = HRSWRUNSTATUS_NOTRUNNABLE;
-        }
-      /*  else if (PID_ZOMBIE & curproc.process_state )  */
-          else if (   ~0xffff & curproc.exitcode )
-        {
-            entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;
-        } else {
-        /*  entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNABLE;  ?? */
-            entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNING;
-        }
-
-        if (h) {
-            if (GetProcessTimes(h, &ct, &et, &kt, &ut))
-                entry->hrSWRunPerfCPU = (to_msec(&kt) + to_msec(&ut)) / 10;
-            if (myGetProcessMemoryInfo
-                && myGetProcessMemoryInfo(h, &pmc, sizeof pmc))
-                entry->hrSWRunPerfMem = pmc.WorkingSetSize / 1024;
-
-            CloseHandle(h);
-        }
-    }
-    cygwin_internal(CW_UNLOCK_PINFO);
-
-    DEBUGMSGTL(("swrun:load:arch"," loaded %d entries\n",
-                CONTAINER_SIZE(container)));
-
-    return 0;
-}
diff --git a/agent/mibgroup/host/data_access/swrun_darwin.c b/agent/mibgroup/host/data_access/swrun_darwin.c
deleted file mode 100644
index 6c6b82a..0000000
--- a/agent/mibgroup/host/data_access/swrun_darwin.c
+++ /dev/null
@@ -1,494 +0,0 @@
-/*
- * swrun_darwin.c:
- *     hrSWRunTable data access:
- *     Darwin
- */
-/*
- * 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.
- */
-#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/container.h>
-#include <net-snmp/library/snmp_debug.h>
-#include <net-snmp/data_access/swrun.h>
-
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <libproc.h>
-#include <sys/proc_info.h>
-#include <sys/sysctl.h>	/* for sysctl() and struct kinfo_proc */
-
-#define __APPLE_API_EVOLVING 1
-#include <sys/acl.h> /* or else CoreFoundation.h barfs */
-#undef __APPLE_API_EVOLVING 
-
-#include <CoreFoundation/CFBase.h>
-#include <CoreFoundation/CFNumber.h>
-#include <CoreFoundation/CFBundle.h>
-#include <CoreServices/CoreServices.h>
-#include <IOKit/IOCFBundle.h>
-#include <mach/mach.h>
-#include <mach/mach_time.h>
-
-/** sigh... can't find Processes.h */
-#ifndef kProcessDictionaryIncludeAllInformationMask 
-#define kProcessDictionaryIncludeAllInformationMask (long)0xFFFFFFFF
-#endif
-#ifndef procNotFound
-#define procNotFound -600
-#endif
-
-/* ---------------------------------------------------------------------
- */
-static int _kern_argmax;
-static int _set_command_name(netsnmp_swrun_entry *entry);
-
-/** avoid kernel bug in 10.2. 8192 oughta be enough anyways, right? */
-#define MAX_KERN_ARGMAX 8192
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_arch_swrun_init(void)
-{
-    int    mib[2] = { CTL_KERN, KERN_ARGMAX };
-    size_t size, mib_size = sizeof(mib)/sizeof(mib[0]);
-    
-    DEBUGMSGTL(("swrun:load:arch","init\n"));
-
-    size = sizeof(_kern_argmax);
-    if (sysctl(mib, mib_size, &_kern_argmax, &size, NULL, 0) == -1) {
-        snmp_log(LOG_ERR, "Error in ARGMAX sysctl(): %s", strerror(errno));
-        _kern_argmax = MAX_KERN_ARGMAX;
-    }
-    else if (_kern_argmax > MAX_KERN_ARGMAX) {
-        DEBUGMSGTL(("swrun:load:arch",
-                    "artificially limiting ARGMAX to %d (from %d)\n",
-                    MAX_KERN_ARGMAX, _kern_argmax));
-        _kern_argmax = MAX_KERN_ARGMAX;
-    }
-
-
-}
-
-/* ---------------------------------------------------------------------
- */
-#define SWRUNINDENT "           "
-int
-netsnmp_arch_swrun_container_load( netsnmp_container *container, u_int flags)
-{
-    int	                 mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_ALL};
-    size_t               buf_size, mib_size = sizeof(mib)/sizeof(mib[0]);
-    struct kinfo_proc   *processes = NULL;
-    struct proc_taskallinfo taskinfo;
-    netsnmp_swrun_entry *entry;
-    int                  rc, num_entries, i;
-
-    DEBUGMSGTL(("swrun:load:arch"," load\n"));
-
-    /*
-     * get size to allocate. This introduces a bit of a race condition,
-     * as the size could change between this call and the next...
-     */
-    rc = sysctl(mib, mib_size, NULL, &buf_size, NULL, 0);
-    if (rc < 0) {
-        snmp_log(LOG_ERR, "KERN_PROC_ALL size sysctl failed: %d\n", rc);
-        return -1;
-    }
-
-    processes = (struct kinfo_proc*) malloc(buf_size);
-    if (NULL == processes) {
-        snmp_log(LOG_ERR, "malloc failed\n");
-        return -1;
-    }
-
-    rc = sysctl(mib, mib_size, processes, &buf_size, NULL, 0);
-    if (rc < 0) {
-        snmp_log(LOG_ERR, "KERN_PROC_ALL sysctl failed: %d\n", rc);
-        free(processes);
-        return -1;
-    }
-    
-    num_entries = buf_size / sizeof(struct kinfo_proc);
-    
-    for (i = 0; i < num_entries; i++) {
-        /*
-         * skip empty names.
-         * p_stat = (SIDL|SRUN|SSLEEP|SSTOP|SZOMB)
-         */
-        if ((NULL == processes[i].kp_proc.p_comm) ||
-            (0 == processes[i].kp_proc.p_pid)) {
-            DEBUGMSGTL(("swrun:load:arch",
-                        " skipping p_comm '%s', pid %5d, p_pstat %d\n",
-                        processes[i].kp_proc.p_comm ? 
-                        processes[i].kp_proc.p_comm : "NULL",
-                        processes[i].kp_proc.p_pid,
-                        processes[i].kp_proc.p_stat));
-            continue;
-        }
-
-        DEBUGMSGTL(("swrun:load:arch"," %s pid %5d\n",
-                    processes[i].kp_proc.p_comm,
-                    processes[i].kp_proc.p_pid));
-
-        entry = netsnmp_swrun_entry_create(processes[i].kp_proc.p_pid);
-        if (NULL == entry)
-            continue; /* error already logged by function */
-        rc = CONTAINER_INSERT(container, entry);
-
-        /*
-         * p_comm is a partial name, but it is all we have at this point.
-         */
-        entry->hrSWRunName_len = snprintf(entry->hrSWRunName,
-                                          sizeof(entry->hrSWRunName)-1,
-                                          "%s", processes[i].kp_proc.p_comm);
-
-        /** sysctl for name, path, params */
-        rc = _set_command_name(entry);
-
-        /*
-         * map p_stat to RunStatus. Odd that there is no 'running' status.
-         */
-        switch(processes[i].kp_proc.p_stat) {
-            case SRUN:
-                entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNABLE;
-                break;
-            case SSLEEP:
-            case SSTOP:
-                entry->hrSWRunStatus = HRSWRUNSTATUS_NOTRUNNABLE;
-                break;
-            case SIDL:
-            case SZOMB:
-            default:
-                entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;
-                break;
-        } 
-
-        /*
-         * check for system processes
-         */
-        if (P_SYSTEM & processes[i].kp_proc.p_flag) {
-            entry->hrSWRunType = 2; /* operatingSystem */
-            DEBUGMSGTL(("swrun:load:arch", SWRUNINDENT "SYSTEM\n"));
-        }
-
-        /*
-         * get mem size, run time
-         */
-        rc = proc_pidinfo( processes[i].kp_proc.p_pid, PROC_PIDTASKALLINFO, 0,
-                           &taskinfo, sizeof(taskinfo));
-        if (sizeof(taskinfo) != rc) {
-            DEBUGMSGTL(("swrun:load:arch", " proc_pidinfo returned %d\n", rc));
-        }
-        else {
-            uint64_t task_mem = taskinfo.ptinfo.pti_resident_size / 1024;
-            union {
-                u_quad_t     uq; /* u_int64_t */
-                UnsignedWide uw; /* struct u_int32_t hi/lo */
-            } at, ns;
-            at.uq = taskinfo.ptinfo.pti_total_user +
-                    taskinfo.ptinfo.pti_total_system;
-            ns.uw = AbsoluteToNanoseconds( at.uw );
-            ns.uq = ns.uq / 10000000LL; /* nano to deci */
-            if (task_mem > INT32_MAX) {
-                DEBUGMSGTL(("swrun:load:arch", SWRUNINDENT "mem overflow\n"));
-                task_mem = INT32_MAX;
-            }
-            if (ns.uq > INT32_MAX) {
-                DEBUGMSGTL(("swrun:load:arch", SWRUNINDENT "time overflow\n"));
-                ns.uq = INT32_MAX;
-            }
-            entry->hrSWRunPerfMem = task_mem;
-            entry->hrSWRunPerfCPU = ns.uq;
-        }
-    }
-    free(processes);
-
-    DEBUGMSGTL(("swrun:load:arch"," loaded %d entries\n",
-                CONTAINER_SIZE(container)));
-
-    return 0;
-}
-
-/* ---------------------------------------------------------------------
- * The following code was snagged from Darwin code, and the original
- * file had the following licences:
- */
-
-/*
- * Copyright (c) 2002-2004 Apple Computer, Inc.  All rights reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- * 
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License").  You may not use this file except in compliance with the
- * License.  Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
- * 
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
- * License for the specific language governing rights and limitations
- * under the License.
- * 
- * @APPLE_LICENSE_HEADER_END@
- */
-#ifdef JAGUAR /* xxx configure test? */
-static int
-_set_command_name_jaguar(netsnmp_swrun_entry *entry)
-{
-    int	        mib[3] = {CTL_KERN, KERN_PROCARGS, 0};
-    size_t      procargssize, mib_size = sizeof(mib)/sizeof(mib[0]);
-    char       *arg_end, *exec_path;
-    int        *ip;
-    int         len;
-    char       *command_beg, *command, *command_end;
-    char        arg_buf[MAX_KERN_ARGMAX]; /* max to avoid kernel bug */
-
-    DEBUGMSGTL(("swrun:load:arch:_cn"," pid %d\n", entry->hrSWRunIndex));
-
-    mib[2] = entry->hrSWRunIndex;
-
-    memset(arg_buf, 0x0, sizeof(arg_buf));
-    procargssize = _kern_argmax;
-    if (sysctl(mib, mib_size, arg_buf, &procargssize, NULL, 0) == -1) {
-        snmp_log(LOG_ERR, "Error in PROCARGS sysctl() for %s: %s\n",
-                 entry->hrSWRunName, strerror(errno));
-        entry->hrSWRunPath_len = 0;
-        return -1;
-    }
-
-    /* Set ip just above the end of arg_buf. */
-    arg_end = &arg_buf[procargssize];
-    ip = (int *)arg_end;
-    
-    /*
-     * Skip the last 2 words, since the last is a 0 word, and
-     * the second to last may be as well, if there are no
-     * arguments.
-     */
-    ip -= 3;
-    
-    /* Iterate down the arguments until a 0 word is found. */
-    for (; *ip != 0; ip--) {
-        if (ip == (int *)arg_buf) {
-            DEBUGMSGTL(("swrun:load:arch:_cn"," unexpected toparg\n"));
-            return -1;
-        }
-    }
-    
-    /* The saved exec_path is just above the 0 word. */
-    ip++;
-    exec_path = (char *)ip;
-    DEBUGMSGTL(("swrun:load:arch:_cn"," exec_path %s\n", exec_path));
-    len = strlen(exec_path);
-    strlcpy(entry->hrSWRunPath, exec_path, sizeof(entry->hrSWRunPath));
-    if (len > sizeof(entry->hrSWRunPath)-1) {
-        DEBUGMSGTL(("swrun:load:arch:_cn"," truncating long run path\n"));
-        entry->hrSWRunPath[sizeof(entry->hrSWRunPath)-2] = '$';
-        entry->hrSWRunPath_len = sizeof(entry->hrSWRunPath)-1;
-        DEBUGMSGTL(("swrun:load:arch:_cn"," exec_path %s\n",
-                    entry->hrSWRunPath));
-    }
-    else
-        entry->hrSWRunPath_len = len;
-    
-    /*
-     * Get the beginning of the first argument.  It is word-aligned,
-     * so skip padding '\0' bytes.
-     */
-    command_beg = exec_path + strlen(exec_path);
-    DEBUGMSGTL(("swrun:load:arch:_cn"," command_beg '%s'\n", command_beg));
-    for (; *command_beg == '\0'; command_beg++) {
-        if (command_beg >= arg_end)
-            return -1;
-    }
-    DEBUGMSGTL(("swrun:load:arch:_cn"," command_beg '%s'\n", command_beg));
-    
-    /* Get the basename of command. */
-    command = command_end = command_beg + strlen(command_beg) + 1;
-    for (command--; command >= command_beg; command--) {
-        if (*command == '/')
-            break;
-    }
-    command++;
-    DEBUGMSGTL(("swrun:load:arch:_cn"," command '%s'\n", command));
-    
-    /* Allocate space for the command and copy. */
-    DEBUGMSGTL(("swrun:load:arch:_cn",
-                SWRUNINDENT "kernel name %s\n", command));
-    if (strncmp(command, entry->hrSWRunName, sizeof(entry->hrSWRunName)-1)) {
-        strlcpy(entry->hrSWRunName, command, sizeof(entry->hrSWRunName));
-        entry->hrSWRunName_len = strlen(entry->hrSWRunName);
-        DEBUGMSGTL(("swrun:load:arch:_cn", "**"
-                    SWRUNINDENT "updated name to %s\n", entry->hrSWRunName));
-        return 0;
-    }
-
-    /** no error, no change */
-    return 1;
-}
-#else
-static int
-_set_command_name(netsnmp_swrun_entry *entry)
-{
-    int	        mib[3] = {CTL_KERN, 0, 0};
-    size_t      procargssize, mib_size = sizeof(mib)/sizeof(mib[0]);
-    char       *cp;
-    int         len, nargs;
-    char       *command_beg, *command, *command_end, *exec_path, *argN;
-    char        arg_buf[MAX_KERN_ARGMAX]; /* max to avoid kernel bug */
-
-    /*
-     * arguments
-     */
-    mib[1] = KERN_PROCARGS2;
-    mib[2] = entry->hrSWRunIndex;
-
-    memset(arg_buf, 0x0, sizeof(arg_buf));
-    procargssize = _kern_argmax;
-    if (sysctl(mib, mib_size, arg_buf, &procargssize, NULL, 0) == -1) {
-        snmp_log(LOG_ERR, "Error in PROCARGS2 sysctl() for %s: %s\n",
-                 entry->hrSWRunName, strerror(errno));
-        entry->hrSWRunPath_len = 0;
-        entry->hrSWRunParameters_len = 0;
-        return -1;
-    }
-    else {
-        memcpy(&nargs,arg_buf, sizeof(nargs));
-    }
-
-    exec_path = arg_buf + sizeof(nargs);
-    len = strlen(exec_path);
-    strlcpy(entry->hrSWRunPath, exec_path, sizeof(entry->hrSWRunPath));
-    if (len > sizeof(entry->hrSWRunPath)-1) {
-        DEBUGMSGTL(("swrun:load:arch:_cn"," truncating long run path\n"));
-        entry->hrSWRunPath[sizeof(entry->hrSWRunPath)-2] = '$';
-        entry->hrSWRunPath_len = sizeof(entry->hrSWRunPath)-1;
-    }
-    else
-        entry->hrSWRunPath_len = len;
-
-    /** Skip the saved exec_path. */
-#if 0
-    cp = exec_path + len;
-#else
-    for (cp = exec_path; cp < &arg_buf[procargssize]; cp++) {
-        if (*cp == '\0') 
-            break; /* End of exec_path reached. */
-    }
-    if (cp != exec_path + len) {
-        DEBUGMSGTL(("swrun:load:arch:_cn"," OFF BY %d\n",
-                    (exec_path + len) - cp));
-        netsnmp_assert( cp == exec_path + len );
-    }
-#endif
-    if (cp == &arg_buf[procargssize]) {
-        DEBUGMSGTL(("swrun:load:arch:_cn"," unexpected end of buffer\n"));
-        return -1;
-    }
-
-    /** Skip trailing '\0' characters. */
-    for (; cp < &arg_buf[procargssize]; cp++) {
-        if (*cp != '\0')
-            break; /* Beginning of first argument reached. */
-    }
-    if (cp == &arg_buf[procargssize]) {
-        DEBUGMSGTL(("swrun:load:arch:_cn"," unexpected end of buffer\n"));
-        return -1;
-    }
-    command_beg = cp;
-
-    /*
-     * Make sure that the command is '\0'-terminated.  This protects
-     * against malicious programs; under normal operation this never
-     * ends up being a problem..
-     */
-    for (; cp < &arg_buf[procargssize]; cp++) {
-        if (*cp == '\0')
-            break; /* End of first argument reached. */
-    }
-    if (cp == &arg_buf[procargssize]) {
-        DEBUGMSGTL(("swrun:load:arch:_cn"," unexpected end of buffer\n"));
-        return -1;
-    }
-    command_end = command = cp;
-    --nargs;
-
-    /*
-     * save arguments
-     */
-    while( nargs && cp < &arg_buf[procargssize] ) {
-        /** Skip trailing '\0' characters from prev arg. */
-        for (; (cp < &arg_buf[procargssize]) && (*cp == 0); cp++) 
-            ; /* noop */
-        if (cp == &arg_buf[procargssize])
-            continue; /* effectively a break */
-    
-        /** save argN start */
-        argN = cp;
-        --nargs;
-        if (0 == nargs)
-            continue; /* effectively a break */
-
-        /** Skip to end of arg */
-        for (; (cp < &arg_buf[procargssize]) && (*cp != 0); cp++) 
-            ;  /* noop */
-        if (cp == &arg_buf[procargssize])
-            continue; /* effectively a break */
-
-        /*
-         * check for overrun into env
-         */
-        if ((*argN != '-') && strchr(argN,'='))  {
-            DEBUGMSGTL(("swrun:load:arch:_cn", " *** OVERRUN INTO ENV %d\n",nargs));
-            continue;
-        }
-
-        /*
-         * save arg
-         */
-        if(entry->hrSWRunParameters_len < sizeof(entry->hrSWRunParameters)-1) {
-            strlcat(&entry->hrSWRunParameters[entry->hrSWRunParameters_len],
-                    argN, sizeof(entry->hrSWRunParameters));
-            entry->hrSWRunParameters_len = strlen(entry->hrSWRunParameters);
-            if ((entry->hrSWRunParameters_len+2 < sizeof(entry->hrSWRunParameters)-1) && (0 != nargs)) {
-                /* add space between params */
-                entry->hrSWRunParameters[entry->hrSWRunParameters_len++] = ' ';
-                entry->hrSWRunParameters[entry->hrSWRunParameters_len] = 0;
-            } else {
-                DEBUGMSGTL(("swrun:load:arch:_cn"," truncating long arg list\n"));
-                entry->hrSWRunParameters[entry->hrSWRunParameters_len++] = '$';
-                entry->hrSWRunParameters[entry->hrSWRunParameters_len] = '0';
-            }
-        }
-    }
-    if (' ' == entry->hrSWRunParameters[entry->hrSWRunParameters_len])
-        entry->hrSWRunParameters[entry->hrSWRunParameters_len--] = 0;
-
-    
-    /* Get the basename of command. */
-    for (command--; command >= command_beg; command--) {
-        if (*command == '/')
-            break;
-    }
-    command++;
-    
-    /* Allocate space for the command and copy. */
-    if (strncmp(command, entry->hrSWRunName, sizeof(entry->hrSWRunName)-1)) {
-        strlcpy(entry->hrSWRunName, command, sizeof(entry->hrSWRunName));
-        entry->hrSWRunName_len = strlen(entry->hrSWRunName);
-        DEBUGMSGTL(("swrun:load:arch:_cn",
-                    " **updated name to %s\n", entry->hrSWRunName));
-    }
-
-    return 0;
-}
-#endif
diff --git a/agent/mibgroup/host/data_access/swrun_kinfo.c b/agent/mibgroup/host/data_access/swrun_kinfo.c
deleted file mode 100644
index b13ea3a..0000000
--- a/agent/mibgroup/host/data_access/swrun_kinfo.c
+++ /dev/null
@@ -1,331 +0,0 @@
-/*
- * swrun_kinfo.c:
- *     hrSWRunTable data access:
- *     kvm_getprocs() interface - FreeBSD, NetBSD, OpenBSD
- *
- * NB: later FreeBSD uses a different kinfo_proc structure
- */
-#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_KVM_H
-#include <kvm.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SYSCTL_H
-#include <sys/sysctl.h>
-#endif
-#ifdef HAVE_SYS_USER_H
-#include <sys/user.h>
-#endif
-#ifdef HAVE_UVM_UVM_EXTERNAL_H
-#include <uvm/uvm_external.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/swrun.h>
-
-extern kvm_t *kd;
-
-
-#if defined(freebsd5) && __FreeBSD_version >= 500014
-    /*
-     * later FreeBSD kinfo_proc field names
-     */
-#define SWRUN_TABLE	kinfo_proc
-#define SWRUN_K_STAT	ki_stat
-#define SWRUN_K_PID	ki_pid
-#define SWRUN_K_COMM	ki_comm
-#define SWRUN_K_FLAG	ki_flag
-#define SWRUN_K_CLASS	ki_pri.pri_class
-
-#elif HAVE_KVM_GETPROC2
-    /*
-     * newer NetBSD, OpenBSD kinfo_proc2 field names
-     */
-#define SWRUN_TABLE	kinfo_proc2
-#define SWRUN_K_STAT	p_stat
-#define SWRUN_K_PID	p_pid
-#define SWRUN_K_COMM	p_comm
-#define SWRUN_K_FLAG	p_flag
-/*      SWRUN_K_CLASS	not defined     */
-
-#elif defined(dragonfly)
-    /*
-     * DragonFly is different ...
-     */
-#define SWRUN_TABLE	kinfo_proc
-#define SWRUN_K_STAT	kp_stat
-#define SWRUN_K_PID 	kp_pid
-#define SWRUN_K_COMM	kp_comm
-#define SWRUN_K_FLAG	kp_flags
-/*      SWRUN_K_CLASS	not defined     */
-
-#else
-    /*
-     * early FreeBSD, NetBSD, OpenBSD kinfo_proc field names
-     */
-#define SWRUN_TABLE	kinfo_proc
-#define SWRUN_K_STAT	kp_proc.p_stat
-#define SWRUN_K_PID	kp_proc.p_pid
-#define SWRUN_K_COMM	kp_proc.p_comm
-#define SWRUN_K_FLAG	kp_proc.p_flag
-/*      SWRUN_K_CLASS	not defined     */
-#endif
-
-/*
- *  Define dummy values if not already provided by the system
- */
-
-#ifndef SRUN
-#define SRUN	200	/* Defined by FreeBSD/OpenBSD, missing in  NetBSD */
-#endif
-#ifndef SACTIVE
-#define SACTIVE	201	/* Defined by  NetBSD, missing in FreeBSD/OpenBSD */
-#endif
-#ifndef SSLEEP
-#define SSLEEP	202	/* Defined by FreeBSD/OpenBSD, missing in  NetBSD */
-#endif
-#ifndef SWAIT
-#define SWAIT	203	/* Defined by FreeBSD, missing in  NetBSD/OpenBSD */
-#endif
-#ifndef SSTOP
-#define SSTOP	204	/* Defined by FreeBSD/NetBSD/OpenBSD */
-#endif
-#ifndef SLOCK
-#define SLOCK	205	/* Defined by FreeBSD, missing in NetBSD/OpenBSD */
-#endif
-#ifndef SIDL
-#define SIDL	206	/* Defined by FreeBSD/NetBSD/OpenBSD */
-#endif
-#ifndef SZOMB
-#define SZOMB	207	/* Defined by FreeBSD/NetBSD/OpenBSD */
-#endif
-#ifndef SDEAD
-#define SDEAD	208	/* Defined by OpenBSD, missing in FreeBSD/NetBSD */
-#endif
-#ifndef SONPROC
-#define SONPROC	209	/* Defined by OpenBSD, missing in FreeBSD/NetBSD */
-#endif
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_arch_swrun_init(void)
-{
-#if NETSNMP_CAN_USE_SYSCTL && defined(CTL_KERN) && defined(KERN_MAXPROC)
-    extern int _swrun_max;
-    size_t max_size = sizeof(_swrun_max);
-    int maxproc_mib[] = { CTL_KERN, KERN_MAXPROC };
-    sysctl(maxproc_mib, 2, &_swrun_max, &max_size, NULL, 0);
-#endif
-    
-    return;
-}
-
-/* ---------------------------------------------------------------------
- */
-int
-netsnmp_arch_swrun_container_load( netsnmp_container *container, u_int flags)
-{
-    struct SWRUN_TABLE  *proc_table;
-    int                  nprocs, i, rc;
-    char                 buf[BUFSIZ], **argv;
-    netsnmp_swrun_entry *entry;
-
-    if ( 0 == kd ) {
-        DEBUGMSGTL(("swrun:load:arch"," Can't query kvm info\n"));
-        return 1;     /* No handle for retrieving process table */
-    }
-#if HAVE_KVM_GETPROC2
-    proc_table = kvm_getproc2(kd, KERN_PROC_ALL, 0, sizeof(struct kinfo_proc2), &nprocs );
-#elif defined(KERN_PROC_PROC)
-    proc_table = kvm_getprocs(kd, KERN_PROC_PROC, 0, &nprocs );
-#else
-    proc_table = kvm_getprocs(kd, KERN_PROC_ALL, 0, &nprocs );
-#endif
-    for ( i=0 ; i<nprocs; i++ ) {
-        if ( 0 == proc_table[i].SWRUN_K_STAT )
-            continue;
-        entry = netsnmp_swrun_entry_create(proc_table[i].SWRUN_K_PID);
-        if (NULL == entry)
-            continue;   /* error already logged by function */
-        rc = CONTAINER_INSERT(container, entry);
-
-        /*
-         * There are two possible sources for the command being run:
-         *   - SWRUN_K_COMM  (from the proc_table entry directly)
-         *   - running kvm_getargv on the process entry.
-         *
-         * We'll use argv[0] (if set) for hrSWRunPath,
-         *   since that might potentially contain the
-         *   absolute path to the running binary.
-         * We'll use SWRUN_K_COMM for hrSWRunName,
-         *   and as an alternative for hrSWRunPath
-         */
-#if HAVE_KVM_GETPROC2
-        argv = kvm_getargv2( kd, &(proc_table[i]), 0);
-#else
-        argv = kvm_getargv(  kd, &(proc_table[i]), 0);
-#endif
-
-        entry->hrSWRunName_len = snprintf(entry->hrSWRunName,
-                                   sizeof(entry->hrSWRunName)-1,
-                                          "%s", proc_table[i].SWRUN_K_COMM);
-
-        if ( argv && *argv)
-            entry->hrSWRunPath_len = snprintf(entry->hrSWRunPath,
-                                       sizeof(entry->hrSWRunPath)-1,
-                                              "%s", argv[0]);
-        else {
-            memcpy( entry->hrSWRunPath, entry->hrSWRunName,
-                                        entry->hrSWRunName_len );
-            entry->hrSWRunPath_len = entry->hrSWRunName_len;
-        }
-
-        /*
-         * Stitch together the rest of argv[] to build hrSWRunParameters
-         *
-         * Note:
-         *   We add a separating space before each argv[] parameter,
-         *   *including* the first one.  So we need to skip this
-         *   leading space (buf[0]) when setting hrSWRunParameters.
-         * This is also why we cleared the first *two* characters
-         *   in the buffer initially. If there were no command-line
-         *   arguments, then buf[1] would still be a null string.
-         */
-        buf[0] = '\0';
-        buf[1] = '\0';
-        if (argv)
-            argv++;    /* Skip argv[0] */
-        while ( argv && *argv ) {
-            strcat(buf, " ");
-            strcat(buf, *argv);
-            argv++;
-        }
-        entry->hrSWRunParameters_len = snprintf(entry->hrSWRunParameters,
-                                         sizeof(entry->hrSWRunParameters)-1,
-                                          "%s", buf+1);
-
-        entry->hrSWRunType = (P_SYSTEM & proc_table[i].SWRUN_K_FLAG) 
-#ifdef SWRUN_K_CLASS
-                             ? ((PRI_ITHD == proc_table[i].SWRUN_K_CLASS)
-                                ? 3  /* device driver    */
-                                : 2  /* operating system */
-                               )
-                             : 4  /*  application     */
-#else
-                             ? 2  /* operating system */
-                             : 4  /*  application     */
-#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:
-        case SWAIT:   entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNABLE;
-                      break;
-        case SIDL:
-        case SSTOP:
-        case SLOCK:   entry->hrSWRunStatus = HRSWRUNSTATUS_NOTRUNNABLE;
-                      break;
-
-        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;
-	 entry->hrSWRunPerfCPU += (proc_table[i].ki_rusage.ru_stime.tv_sec*1000000 + proc_table[i].ki_rusage.ru_stime.tv_usec) / 10000;
-	 entry->hrSWRunPerfCPU += (proc_table[i].ki_rusage_ch.ru_utime.tv_sec*1000000 + proc_table[i].ki_rusage_ch.ru_utime.tv_usec) / 10000;
-	 entry->hrSWRunPerfCPU += (proc_table[i].ki_rusage_ch.ru_stime.tv_sec*1000000 + proc_table[i].ki_rusage_ch.ru_stime.tv_usec) / 10000;
-	 entry->hrSWRunPerfMem  = proc_table[i].ki_rssize * (getpagesize()/1024);  /* in kB */
-#elif defined(HAVE_KVM_GETPROC2)
-        /*
-         * newer NetBSD, OpenBSD
-         */
-        entry->hrSWRunPerfCPU  = proc_table[i].p_uticks;
-        entry->hrSWRunPerfCPU += proc_table[i].p_sticks;
-        entry->hrSWRunPerfCPU += proc_table[i].p_iticks;
-        entry->hrSWRunPerfMem  = proc_table[i].p_vm_rssize;
-        entry->hrSWRunPerfMem *= (getpagesize() / 1024);
-#elif defined(dragonfly) && __DragonFly_version >= 190000
-	entry->hrSWRunPerfCPU  = proc_table[i].kp_lwp.kl_uticks;
-	entry->hrSWRunPerfCPU += proc_table[i].kp_lwp.kl_sticks;
-	entry->hrSWRunPerfCPU += proc_table[i].kp_lwp.kl_iticks;
-	entry->hrSWRunPerfMem  = proc_table[i].kp_vm_map_size / 1024;
-#elif defined(dragonfly)
-	entry->hrSWRunPerfCPU  = proc_table[i].kp_eproc.e_uticks;
-	entry->hrSWRunPerfCPU += proc_table[i].kp_eproc.e_sticks;
-	entry->hrSWRunPerfCPU += proc_table[i].kp_eproc.e_iticks;
-	entry->hrSWRunPerfMem  = proc_table[i].kp_vm_map_size / 1024;
-
-#else
-        /*
-         * early FreeBSD, NetBSD, OpenBSD
-         */
-        entry->hrSWRunPerfCPU  = proc_table[i].kp_proc.p_uticks;
-        entry->hrSWRunPerfCPU += proc_table[i].kp_proc.p_sticks;
-        entry->hrSWRunPerfCPU += proc_table[i].kp_proc.p_iticks;
-        entry->hrSWRunPerfMem  = proc_table[i].kp_eproc.e_vm.vm_rssize;
-        entry->hrSWRunPerfMem *= (getpagesize() / 1024);
-#endif
-    }
-    /*
-     * 'proc_table' is owned by the kvm library,
-     *   so shouldn't be freed here.
-     */
-
-    DEBUGMSGTL(("swrun:load:arch","loaded %d entries\n",
-                (int)CONTAINER_SIZE(container)));
-
-    return 0;
-}
diff --git a/agent/mibgroup/host/data_access/swrun_kvm_proc.c b/agent/mibgroup/host/data_access/swrun_kvm_proc.c
deleted file mode 100644
index ae6876e..0000000
--- a/agent/mibgroup/host/data_access/swrun_kvm_proc.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * swrun_kvm_proc.c:
- *     hrSWRunTable data access:
- *     kvm_getproc() interface - Solaris
- */
-#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_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_USER_H
-#define _KMEMUSER
-#include <sys/user.h>
-#endif
-#ifdef HAVE_SYS_PROC_H
-#include <sys/proc.h>
-#endif
-    /* XXX - should really be protected */
-#include <sys/var.h>
-
-#ifdef HAVE_DIRENT_H
-#include <dirent.h>
-#endif
-#ifdef HAVE_KVM_H
-#include <kvm.h>
-#endif
-#ifdef HAVE_KSTAT_H
-#include <kstat.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/swrun.h>
-#include "kernel.h"
-#include "kernel_sunos5.h"
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_arch_swrun_init(void)
-{
-    extern int _swrun_max;
-    kstat_ctl_t *ksc;
-    kstat_t     *ks;
-    struct var   v;
-
-    if (NULL != (ksc = kstat_open())) {
-        if ((NULL != (ks  = kstat_lookup(ksc, "unix", 0, "var"))) &&
-            ( -1  != kstat_read(ksc, ks, &v ))) {
-            _swrun_max = v.v_proc;
-        }
-        kstat_close(ksc);
-    }
-    return;
-}
-
-/* ---------------------------------------------------------------------
- */
-int
-netsnmp_arch_swrun_container_load( netsnmp_container *container, u_int flags)
-{
-    DIR                 *procdir = NULL;
-    struct dirent       *procentry_p;
-    struct proc         *proc_buf;
-    int                  pid, rc, i;
-    char                *cp;
-    netsnmp_swrun_entry *entry;
-    
-    /*
-     * Even if we're using kvm_proc() to retrieve information
-     *   about a particular process, we seem to use /proc to get
-     *   the initial list of processes to report on.
-     */
-    procdir = opendir("/proc");
-    if ( NULL == procdir ) {
-        snmp_log( LOG_ERR, "Failed to open /proc" );
-        return -1;
-    }
-
-    /*
-     * Walk through the list of processes in the /proc tree
-     */
-    while ( NULL != (procentry_p = readdir( procdir ))) {
-        pid = atoi( procentry_p->d_name );
-        if ( 0 == pid )
-            continue;   /* Presumably '.' or '..' */
-
-        entry = netsnmp_swrun_entry_create(pid);
-        if (NULL == entry)
-            continue;   /* error already logged by function */
-        if (NULL == (proc_buf = kvm_getproc( kd, pid))) {
-            /* release entry */
-            continue;
-        }
-        rc = CONTAINER_INSERT(container, entry);
-
-        entry->hrSWRunName_len = snprintf(entry->hrSWRunName,
-                                   sizeof(entry->hrSWRunName)-1,
-                                          "%s", proc_buf->p_user.u_comm);
-        /*
-         *  Split u_psargs into two:
-         *     argv[0]   is hrSWRunPath
-         *     argv[1..] is hrSWRunParameters
-         */
-        for ( cp = proc_buf->p_user.u_psargs; ' ' == *cp; cp++ )
-            ;
-        *cp = '\0';    /* End of argv[0] */
-        entry->hrSWRunPath_len = snprintf(entry->hrSWRunPath,
-                                   sizeof(entry->hrSWRunPath)-1,
-                                          "%s", proc_buf->p_user.u_psargs);
-        entry->hrSWRunParameters_len = snprintf(entry->hrSWRunParameters,
-                                         sizeof(entry->hrSWRunParameters)-1,
-                                          "%s", cp+1);
-        *cp = ' ';     /* Restore u_psargs value */
-
-        /*
-         * check for system processes
-         */
-        entry->hrSWRunType = (SSYS & proc_buf->p_flag)
-                              ? 2   /* kernel process */
-                              : 4   /*  application   */
-                              ;
-
-        switch (proc_buf->p_stat) {
-        case SRUN:
-        case SONPROC: entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNING;
-                      break;
-        case SSLEEP:  entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNABLE;
-                      break;
-        case SSTOP:   entry->hrSWRunStatus = HRSWRUNSTATUS_NOTRUNNABLE;
-                      break;
-        case SIDL:
-        case SZOMB:
-        default:      entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;
-                      break;
-        }
-        
-        entry->hrSWRunPerfCPU  = (proc_buf->p_utime * 100);
-        entry->hrSWRunPerfCPU += (proc_buf->p_stime * 100);
-        entry->hrSWRunPerfMem  =  proc_buf->p_swrss;
-		/* XXX - is this reported in kB? */
-    }
-    closedir( procdir );
-
-    DEBUGMSGTL(("swrun:load:arch"," loaded %d entries\n",
-                CONTAINER_SIZE(container)));
-
-    return 0;
-}
diff --git a/agent/mibgroup/host/data_access/swrun_nlist.c b/agent/mibgroup/host/data_access/swrun_nlist.c
deleted file mode 100644
index 5db6c9c..0000000
--- a/agent/mibgroup/host/data_access/swrun_nlist.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * swrun_nlist.c:
- *     hrSWRunTable data access:
- *     nlist() interface
- */
-#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
-
-#include <net-snmp/agent/auto_nlist.h>
-
-#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/swrun.h>
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_arch_swrun_init(void)
-{
-    extern int _swrun_max;
-
-    auto_nlist(  PROC_SYMBOL, 0, 0);
-    auto_nlist( NPROC_SYMBOL, (char *)&_swrun_max, sizeof(int));
-    return;
-}
-
-/* ---------------------------------------------------------------------
- */
-int
-netsnmp_arch_swrun_container_load( netsnmp_container *container, u_int flags)
-{
-    struct proc         *proc_table;
-    int                  proc_type_base;
-    int                  nproc, i, rc;
-    netsnmp_swrun_entry *entry;
-
-    auto_nlist( NPROC_SYMBOL, (char *)&nproc, sizeof(int));
-    proc_table = (struct proc *) malloc(nproc*(sizeof(struct proc)));
-
-    auto_nlist(  PROC_SYMBOL, (char *)&proc_table_base, sizeof(int));
-    NETSNMP_KLOOKUP(proc_table_base, (char *)proc_table, 
-                                        nproc*(sizeof(struct proc)));
-
-    for ( i=0 ; i<nproc; i++ ) {
-        if (0 == proc_table[i].p_stat)
-            continue;	/* Skip unused entries */
-        entry = netsnmp_swrun_entry_create(proc_table[i].p_pid);
-        if (NULL == entry)
-            continue;   /* error already logged by function */
-        rc = CONTAINER_INSERT(container, entry);
-
-        /*
-         * XXX - What information does 'struct proc' contain?
-         */
-        
-/*
- Apparently no process name/argument information
-        entry->hrSWRunName_len = snprintf(entry->hrSWRunName,
-                                   sizeof(entry->hrSWRunName)-1,
-                                          "%s", proc_table[i].???);
-        entry->hrSWRunPath_len = snprintf(entry->hrSWRunPath,
-                                   sizeof(entry->hrSWRunPath)-1,
-                                          "%s", proc_table[i].???);
-        entry->hrSWRunParameters_len = snprintf(entry->hrSWRunParameters,
-                                         sizeof(entry->hrSWRunParameters)-1,
-                                          "%s", ???);
- */
-
-        switch (proc_table[i].p_stat) {
-/* XXX - which names to use ?? */
-        case SACTIVE:
-        case SRUN:
-        case SONPROC: entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNING;
-                      break;
-        case SSWAP:
-        case SSLEEP:
-        case SWAIT:   entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNABLE;
-                      break;
-        case SSTOP:   entry->hrSWRunStatus = HRSWRUNSTATUS_NOTRUNNABLE;
-                      break;
-        case SIDL:
-        case SZOMB:
-        default:      entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;
-                      break;
-        }
-
-
-        entry->hrSWRunPerfCPU  = (proc_table[i].p_utime.tv_sec  * 100);
-        entry->hrSWRunPerfCPU += (proc_table[i].p_utime.tv_usec / 10000);
-        entry->hrSWRunPerfCPU += (proc_table[i].p_stime.tv_sec  * 100);
-        entry->hrSWRunPerfCPU += (proc_table[i].p_stime.tv_usec / 10000);
-    /*
-     or entry->hrSWRunPerfCPU  = proc_table[i].p_time;
-     */
-    }
-    free(proc_table);
-
-    DEBUGMSGTL(("swrun:load:arch"," loaded %d entries\n",
-                CONTAINER_SIZE(container)));
-
-    return 0;
-}
diff --git a/agent/mibgroup/host/data_access/swrun_null.c b/agent/mibgroup/host/data_access/swrun_null.c
deleted file mode 100644
index 343d40e..0000000
--- a/agent/mibgroup/host/data_access/swrun_null.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * swrun_null.c:
- *     hrSWRunTable data access:
- *     dummy interface for non-supported systems
- */
-#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
-
-#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/swrun.h>
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_arch_swrun_init(void)
-{
-    /* Nothing to do */
-    return;
-}
-
-/* ---------------------------------------------------------------------
- */
-int
-netsnmp_arch_swrun_container_load( netsnmp_container *container, u_int flags)
-{
-    /* Nothing to do */
-    DEBUGMSGTL(("swrun:load:arch"," loaded %d entries\n",
-                CONTAINER_SIZE(container)));
-
-    return 0;
-}
diff --git a/agent/mibgroup/host/data_access/swrun_procfs_psinfo.c b/agent/mibgroup/host/data_access/swrun_procfs_psinfo.c
deleted file mode 100644
index ed961ee..0000000
--- a/agent/mibgroup/host/data_access/swrun_procfs_psinfo.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * swrun_procfs_psinfo.c:
- *     hrSWRunTable data access:
- *     /proc/{pid}/psinfo interface - Solaris
- */
-#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_DIRENT_H
-#include <dirent.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-#define HAVE_SYS_PROCFS_H    /* XXX - Needs a configure check! */
-#ifdef HAVE_SYS_PROCFS_H
-#define _KERNEL              /* For psinfo_t */
-#include <sys/procfs.h>
-#undef _KERNEL
-#endif
-#ifdef HAVE_SYS_PROC_H
-#include <sys/proc.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/swrun.h>
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_arch_swrun_init(void)
-{
-    /* Nothing to do */
-    return;
-}
-
-/* ---------------------------------------------------------------------
- */
-int
-netsnmp_arch_swrun_container_load( netsnmp_container *container, u_int flags)
-{
-    DIR                 *procdir = NULL;
-    struct dirent       *procentry_p;
-    psinfo_t             psinfo;
-    int                  pid, rc, fd;
-    char                *cp, buf[512];
-    netsnmp_swrun_entry *entry;
-
-    procdir = opendir("/proc");
-    if ( NULL == procdir ) {
-        snmp_log( LOG_ERR, "Failed to open /proc" );
-        return -1;
-    }
-
-    /*
-     * Walk through the list of processes in the /proc tree
-     */
-    while ( NULL != (procentry_p = readdir( procdir ))) {
-        pid = atoi( procentry_p->d_name );
-        if ( 0 == pid )
-            continue;   /* Presumably '.' or '..' */
-
-        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
-         *   from the various /proc{PID}/ interface files
-         */
-
-        snprintf( buf, sizeof(buf), "/proc/%d/psinfo", pid );
-        fd = open( buf, O_RDONLY );
-        read( fd, &psinfo, sizeof(psinfo));
-        close(fd);
-
-        entry->hrSWRunName_len
-            = sprintf(entry->hrSWRunName, "%.*s",
-                      (int)sizeof(entry->hrSWRunName) - 1,
-                      psinfo.pr_fname);
-        /*
-         *  Split pr_psargs into two:
-         *     argv[0]   is hrSWRunPath
-         *     argv[1..] is hrSWRunParameters
-         */
-        for ( cp = psinfo.pr_psargs; ' ' == *cp; cp++ )
-            ;
-        *cp = '\0';    /* End of argv[0] */
-        entry->hrSWRunPath_len
-            = sprintf(entry->hrSWRunPath, "%.*s",
-                      (int)sizeof(entry->hrSWRunPath) - 1,
-                      psinfo.pr_psargs);
-
-        entry->hrSWRunParameters_len
-            = sprintf(entry->hrSWRunParameters, "%.*s",
-                      (int)sizeof(entry->hrSWRunParameters) - 1, cp+1);
-        *cp = ' ';     /* Restore pr_psargs value */
-
-        /*
-         * check for system processes
-         */
-        entry->hrSWRunType = (PR_ISSYS & psinfo.pr_flag)
-                              ? 2   /* kernel process */
-                              : 4   /*  application   */
-                              ;
-
-        switch (psinfo.pr_lwp.pr_state) {
-        case SRUN:
-        case SONPROC: entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNING;
-                      break;
-        case SSLEEP:  entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNABLE;
-                      break;
-        case SSTOP:   entry->hrSWRunStatus = HRSWRUNSTATUS_NOTRUNNABLE;
-                      break;
-        case SIDL:
-        case SZOMB:
-        default:      entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;
-                      break;
-        }
-        
-        entry->hrSWRunPerfCPU  = (psinfo.pr_time.tv_sec * 100);
-        entry->hrSWRunPerfCPU += (psinfo.pr_time.tv_nsec / 10000000);
-        entry->hrSWRunPerfMem  =  psinfo.pr_rssize;
-		/* XXX - is this reported in kB? */
-    }
-    closedir( procdir );
-
-    DEBUGMSGTL(("swrun:load:arch"," loaded %d entries\n",
-                (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
deleted file mode 100644
index 80182d0..0000000
--- a/agent/mibgroup/host/data_access/swrun_procfs_status.c
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * swrun_procfs_linux.c:
- *     hrSWRunTable data access:
- *     /proc/{pid}/status interface - Linux
- */
-#include <net-snmp/net-snmp-config.h>
-
-#include <stdio.h>
-#include <ctype.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_DIRENT_H
-#include <dirent.h>
-#endif
-#ifdef HAVE_LINUX_TASKS_H
-#include <linux/tasks.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/swrun.h>
-
-static long pagesize;
-static long sc_clk_tck;
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_arch_swrun_init(void)
-{
-#ifdef HAVE_LINUX_TASKS_H
-    extern int _swrun_max = NR_TASKS;   /* from <linux/tasks.h> */
-#endif
-    
-    pagesize = getpagesize();
-    sc_clk_tck = sysconf(_SC_CLK_TCK);
-    return;
-}
-
-/* ---------------------------------------------------------------------
- */
-int
-netsnmp_arch_swrun_container_load( netsnmp_container *container, u_int flags)
-{
-    DIR                 *procdir = NULL;
-    struct dirent       *procentry_p;
-    FILE                *fp;
-    int                  pid, i;
-    unsigned long long   cpu;
-    char                 buf[BUFSIZ], buf2[BUFSIZ], *cp;
-    netsnmp_swrun_entry *entry;
-    
-    procdir = opendir("/proc");
-    if ( NULL == procdir ) {
-        snmp_log( LOG_ERR, "Failed to open /proc" );
-        return -1;
-    }
-
-    /*
-     * Walk through the list of processes in the /proc tree
-     */
-    while ( NULL != (procentry_p = readdir( procdir ))) {
-        pid = atoi( procentry_p->d_name );
-        if ( 0 == pid )
-            continue;   /* Presumably '.' or '..' */
-
-        entry = netsnmp_swrun_entry_create(pid);
-        if (NULL == entry)
-            continue;   /* error already logged by function */
-
-        /*
-         * Now extract the interesting information
-         *   from the various /proc{PID}/ interface files
-         */
-
-        /*
-         *   Name:  process name
-         */
-        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));
-        if (fgets( buf, BUFSIZ-1, fp ) == NULL) {
-            fclose(fp);
-            netsnmp_swrun_entry_free(entry);
-            continue;
-        }
-        fclose(fp);
-
-        for ( cp = buf; *cp != ':'; cp++ )
-            ;
-        while (isspace(*(++cp)))	/* Skip ':' and following spaces */
-            ;
-        entry->hrSWRunName_len = snprintf(entry->hrSWRunName,
-                                   sizeof(entry->hrSWRunName)-1, "%s", cp);
-        if ( '\n' == entry->hrSWRunName[ entry->hrSWRunName_len-1 ]) {
-            entry->hrSWRunName[ entry->hrSWRunName_len-1 ] = '\0';
-            entry->hrSWRunName_len--;           /* Stamp on trailing newline */
-        }
-
-        /*
-         *  Command Line:
-         *     argv[0] '\0' argv[1] '\0' ....
-         */
-        snprintf( buf2, BUFSIZ, "/proc/%d/cmdline", pid );
-        fp = fopen( buf2, "r" );
-        if (!fp) {
-            netsnmp_swrun_entry_free(entry);
-            continue; /* file (process) probably went away */
-	}
-        memset(buf, 0, sizeof(buf));
-        if ((cp = fgets( buf, BUFSIZ-1, fp )) == NULL) {
-            fclose(fp);
-            netsnmp_swrun_entry_free(entry);
-            continue;
-        }
-        fclose(fp);
-
-        /*
-         *     argv[0]   is hrSWRunPath
-         */ 
-        entry->hrSWRunPath_len = snprintf(entry->hrSWRunPath,
-                                   sizeof(entry->hrSWRunPath)-1, "%s", buf);
-        /*
-         * Stitch together argv[1..] to construct hrSWRunParameters
-         */
-        cp = buf + entry->hrSWRunPath_len+1;
-        while ( 1 ) {
-            while (*cp)
-                cp++;
-            if ( '\0' == *(cp+1))
-                break;      /* '\0''\0' => End of command line */
-            *cp = ' ';
-        }
-        entry->hrSWRunParameters_len
-            = sprintf(entry->hrSWRunParameters, "%.*s",
-                      (int)sizeof(entry->hrSWRunParameters) - 1,
-                      buf + entry->hrSWRunPath_len + 1);
- 
-        /*
-         * 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" );
-        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;
-        while ( ' ' != *(cp++))    /* Skip first field */
-            ;
-        while ( ' ' != *(cp++))    /* Skip second field */
-            ;
-        
-        switch (*cp) {
-        case 'R':  entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNING;
-                   break;
-        case 'S':  entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNABLE;
-                   break;
-        case 'D':
-        case 'T':  entry->hrSWRunStatus = HRSWRUNSTATUS_NOTRUNNABLE;
-                   break;
-        case 'Z':
-        default:   entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;
-                   break;
-        }
-        for (i=11; i; i--) {   /* Skip STATUS + 10 fields */
-            while (' ' != *(++cp))
-                ;
-            cp++;
-        }
-        cpu  = atol( cp );                     /*  utime */
-        while ( ' ' != *(++cp))
-            ;
-        cpu += atol( cp );                     /* +stime */
-        entry->hrSWRunPerfCPU  = cpu * 100 / sc_clk_tck;
-
-        for (i=9; i; i--) {   /* Skip stime + 8 fields */
-            while (' ' != *(++cp))
-                ;
-            cp++;
-        }
-        entry->hrSWRunPerfMem  = atol( cp );       /* rss   */
-        entry->hrSWRunPerfMem *= (pagesize/1024);  /* in kB */
-        CONTAINER_INSERT(container, entry);
-    }
-    closedir( procdir );
-
-    DEBUGMSGTL(("swrun:load:arch"," loaded %" NETSNMP_PRIz "d entries\n",
-                CONTAINER_SIZE(container)));
-
-    return 0;
-}
diff --git a/agent/mibgroup/host/data_access/swrun_procinfo.c b/agent/mibgroup/host/data_access/swrun_procinfo.c
deleted file mode 100644
index 20caee6..0000000
--- a/agent/mibgroup/host/data_access/swrun_procinfo.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * swrun_procinfo.c:
- *     hrSWRunTable data access:
- *     getprocs() interface - AIX
- */
-#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
-
-#include <procinfo.h>
-
-#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/swrun.h>
-
-int avail = 1024;    /* Size of table to allocate */
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_arch_swrun_init(void)
-{
-    /* Nothing to do */
-    return;
-}
-
-/* ---------------------------------------------------------------------
- */
-int
-netsnmp_arch_swrun_container_load( netsnmp_container *container, u_int flags)
-{
-    struct procsinfo    *proc_table;
-    pid_t                proc_index = 0;
-    int                  nprocs, rc, i;
-    char                 pentry[128], *ppentry, fullpath[128];
-    netsnmp_swrun_entry *entry;
-
-    /*
-     * Create a buffer for the process table, based on the size of
-     *   the table the last time we loaded this information.
-     * If this isn't big enough, keep increasing the size of the
-     *   table until we can retrieve the whole thing.
-     */
-    proc_table = (struct procsinfo *) malloc(avail*(sizeof(struct procsinfo)));
-    while ( avail == (nprocs = getprocs(proc_table, sizeof(struct procsinfo),
-                                                 0, sizeof(struct fdsinfo),
-                                                 &proc_index, avail))) {
-        avail += 1024;
-        free( proc_table );
-        proc_table = (struct procsinfo *) malloc(avail*(sizeof(struct procsinfo)));
-    }
-
-    for ( i=0 ; i<nprocs; i++ ) {
-        if (0 == proc_table[i].pi_state)
-            continue;	/* Skip unused entries */
-        entry = netsnmp_swrun_entry_create(proc_table[i].pi_pid);
-        if (NULL == entry)
-            continue;   /* error already logged by function */
-        rc = CONTAINER_INSERT(container, entry);
-
-	memset(pentry, 0, sizeof(pentry));								/* Empty each time */
-	if(!(SKPROC & proc_table[i].pi_flags)) {							/* Remove kernel processes */
-		getargs(&proc_table[i], sizeof(struct procsinfo), pentry, sizeof(pentry));              /* Call getargs() */
-		for(ppentry = pentry; !((*ppentry == '\0') && (*(ppentry+1) == '\0')); ppentry++) {     /* Process until 0x00 0x00 */
-			if((*ppentry == '\0') && (!(*(ppentry+1) == '\0')))                             /* if 0x00 !0x00 */
-				*ppentry = ' ';                                                         /* change to 0x20 !0x00 */
-		}
-		snprintf(fullpath, sizeof(fullpath)-1, "%.*s", (int)(strchr(pentry, ' ')-pentry), pentry);
-
-		entry->hrSWRunPath_len = snprintf(entry->hrSWRunPath,
-			sizeof(entry->hrSWRunPath), "%s", fullpath);
-		ppentry = strrchr(fullpath, '/');
-		if(ppentry == NULL) {
-			entry->hrSWRunName_len = snprintf(entry->hrSWRunName,
-				sizeof(entry->hrSWRunName), "%s", fullpath);
-		}
-		else {
-			entry->hrSWRunName_len = snprintf(entry->hrSWRunName,
-				sizeof(entry->hrSWRunName), "%s", ppentry + 1);
-		}
-
-		ppentry = strchr(pentry, ' ');
-		entry->hrSWRunParameters_len = snprintf(entry->hrSWRunParameters,
-			sizeof(entry->hrSWRunParameters), "%.*s", (int)(pentry - ppentry), ppentry + 1);
-	}
-
-        entry->hrSWRunType = (SKPROC & proc_table[i].pi_flags)
-                              ? 2   /* kernel process */
-                              : 4   /*  application   */
-                              ;
-
-        switch (proc_table[i].pi_state) {
-        case SACTIVE:
-        case SRUN:    entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNING;
-                      break;
-        case SSLEEP:  entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNABLE;
-                      break;
-        case SSTOP:   entry->hrSWRunStatus = HRSWRUNSTATUS_NOTRUNNABLE;
-                      break;
-        case SIDL:
-        case SZOMB:
-        default:      entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;
-                      break;
-        }
-
-        entry->hrSWRunPerfCPU  = (proc_table[i].pi_ru.ru_utime.tv_sec * 100);
-        entry->hrSWRunPerfCPU += (proc_table[i].pi_ru.ru_utime.tv_usec / 10000000);
-        entry->hrSWRunPerfCPU += (proc_table[i].pi_ru.ru_stime.tv_sec * 100);
-        entry->hrSWRunPerfCPU += (proc_table[i].pi_ru.ru_stime.tv_usec / 10000000);
-        entry->hrSWRunPerfMem  =  proc_table[i].pi_size;
-        entry->hrSWRunPerfMem *= (getpagesize()/1024);  /* in kB */
-    }
-    free(proc_table);
-
-    DEBUGMSGTL(("swrun:load:arch"," loaded %d entries\n",
-                CONTAINER_SIZE(container)));
-
-    return 0;
-}
diff --git a/agent/mibgroup/host/data_access/swrun_prpsinfo.c b/agent/mibgroup/host/data_access/swrun_prpsinfo.c
deleted file mode 100644
index 6cbbb23..0000000
--- a/agent/mibgroup/host/data_access/swrun_prpsinfo.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * swrun_prpsinfo.c:
- *     hrSWRunTable data access:
- *     getprpsinfo() interface - Dynix
- */
-#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_?????_H
-#include <?????.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/swrun.h>
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_arch_swrun_init(void)
-{
-    /* Nothing to do */
-    return;
-}
-
-/* ---------------------------------------------------------------------
- */
-int
-netsnmp_arch_swrun_container_load( netsnmp_container *container, u_int flags)
-{
-    pid_t                nextproc = 0;
-    getprpsinfo_t       *select   = 0;
-    prpsinfo_t           mypsinfo;
-    int                  rc;
-    char                *cp;
-    netsnmp_swrun_entry *entry;
-
-    while ( 0 <= ( nextproc = getprpsinfo( nextproc, select, &mypsinfo ))) {
-        entry = netsnmp_swrun_entry_create(mypsinfo.pr_pid);
-        if (NULL == entry)
-            continue;   /* error already logged by function */
-        rc = CONTAINER_INSERT(container, entry);
-
-        entry->hrSWRunName_len = snprintf(entry->hrSWRunName,
-                                   sizeof(entry->hrSWRunName)-1,
-                                          "%s", mypsinfo.pr_fname);
-        /*
-         *  Split pr_psargs into two:
-         *     argv[0]   is hrSWRunPath
-         *     argv[1..] is hrSWRunParameters
-         */
-        for ( cp = mypsinfo.pr_psargs; ' ' == *cp; cp++ )
-            ;
-        *cp = '\0';    /* End of argv[0] */
-        entry->hrSWRunPath_len = snprintf(entry->hrSWRunPath,
-                                   sizeof(entry->hrSWRunPath)-1,
-                                          "%s", mypsinfo.pr_psargs);
-        entry->hrSWRunParameters_len = snprintf(entry->hrSWRunParameters,
-                                         sizeof(entry->hrSWRunParameters)-1,
-                                          "%s", cp+1);
-        *cp = ' ';     /* Restore pr_psargs value */
-
-        /*
-         * XXX - No information regarding system processes vs applications
-         */
-
-        switch (mypsinfo.pr_state) {
-/* XXX - which names to use ?? */
-        case SACTIVE:
-        case SRUN:
-        case SONPROC: entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNING;
-                      break;
-        case SSWAP:
-        case SSLEEP:
-        case SWAIT:   entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNABLE;
-                      break;
-        case SSTOP:   entry->hrSWRunStatus = HRSWRUNSTATUS_NOTRUNNABLE;
-                      break;
-        case SIDL:
-        case SZOMB:
-        default:      entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;
-                      break;
-        }
-
-        entry->hrSWRunPerfCPU  = (mypsinfo.pr_time.tv_sec  * 100);
-        entry->hrSWRunPerfCPU += (mypsinfo.pr_time.tv_nsec / 10000000);
-        entry->hrSWRunPerfMem  = (mypsinfo.pr_rssize);
-        entry->hrSWRunPerfMem *= (MU_PAGESIZE/1024);  /* in kB */
-    }
-
-    DEBUGMSGTL(("swrun:load:arch"," loaded %d entries\n",
-                CONTAINER_SIZE(container)));
-
-    return 0;
-}
diff --git a/agent/mibgroup/host/data_access/swrun_pstat.c b/agent/mibgroup/host/data_access/swrun_pstat.c
deleted file mode 100644
index b85ce77..0000000
--- a/agent/mibgroup/host/data_access/swrun_pstat.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * swrun_pstat.c:
- *     hrSWRunTable data access:
- *     pstat_getdynamic() interface - HPUX
- */
-#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_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_PSTAT_H
-#define _PSTAT64
-#include <sys/pstat.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/swrun.h>
-
-/* ---------------------------------------------------------------------
- */
-void
-netsnmp_arch_swrun_init(void)
-{
-    extern int _swrun_max;
-    struct pst_static pst_buf;
-
-    pstat_getstatic( &pst_buf, sizeof(struct pst_static), 1, 0);
-    _swrun_max = pst_buf.max_proc;
-    return;
-}
-
-/* ---------------------------------------------------------------------
- */
-int
-netsnmp_arch_swrun_container_load( netsnmp_container *container, u_int flags)
-{
-    struct pst_status   *proc_table;
-    struct pst_dynamic   pst_dyn;
-    int                  nproc, i, rc;
-    char                *cp1, *cp2;
-    netsnmp_swrun_entry *entry;
-
-    pstat_getdynamic( &pst_dyn, sizeof(struct pst_dynamic), 1, 0);
-    nproc = pst_dyn.psd_activeprocs;
-    proc_table = (struct pst_status *) malloc(nproc*(sizeof(struct pst_status)));
-    pstat_getproc(proc_table, sizeof(struct pst_status), nproc, 0);
-
-    for ( i=0 ; i<nproc; i++ ) {
-        entry = netsnmp_swrun_entry_create(proc_table[i].pst_pid);
-        if (NULL == entry)
-            continue;   /* error already logged by function */
-        rc = CONTAINER_INSERT(container, entry);
-
-        entry->hrSWRunName_len = snprintf(entry->hrSWRunName,
-                                   sizeof(entry->hrSWRunName)-1,
-                                          "%s", proc_table[i].pst_ucomm);
-        /*
-         *  Split pst_cmd into two:
-         *     argv[0]   is hrSWRunPath
-         *     argv[1..] is hrSWRunParameters
-         */
-        for ( cp1 = proc_table[i].pst_cmd; ' ' == *cp1; cp1++ )
-            ;
-        *cp1 = '\0';    /* End of argv[0] */
-        entry->hrSWRunPath_len = snprintf(entry->hrSWRunPath,
-                                   sizeof(entry->hrSWRunPath)-1,
-                                          "%s", proc_table[i].pst_cmd);
-        entry->hrSWRunParameters_len = snprintf(entry->hrSWRunParameters,
-                                         sizeof(entry->hrSWRunParameters)-1,
-                                          "%s", cp1+1);
-        *cp1 = ' ';     /* Restore pst_cmd value */
-
-        entry->hrSWRunType = (PS_SYS & proc_table[i].pst_flag)
-                              ? 2   /* kernel process */
-                              : 4   /*  application   */
-                              ;
-
-        switch (proc_table[i].pst_stat) {
-        case PS_RUN:   entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNING;
-                       break;
-        case PS_SLEEP: entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNABLE;
-                       break;
-        case PS_STOP:  entry->hrSWRunStatus = HRSWRUNSTATUS_NOTRUNNABLE;
-                       break;
-        case PS_IDLE:
-        case PS_ZOMBIE:
-        case PS_OTHER:
-        default:       entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;
-                       break;
-        }
-
-        entry->hrSWRunPerfCPU  = proc_table[i].pst_cptickstotal;
-        entry->hrSWRunPerfMem  = proc_table[i].pst_rssize;
-        entry->hrSWRunPerfMem *= getpagesize() / 1024;  /* in kB */
-		/* XXX - Check this last calculation */
-    }
-    free(proc_table);
-
-    DEBUGMSGTL(("swrun:load:arch"," loaded %d entries\n",
-                CONTAINER_SIZE(container)));
-
-    return 0;
-}
diff --git a/agent/mibgroup/host/hrSWInstalledTable.c b/agent/mibgroup/host/hrSWInstalledTable.c
deleted file mode 100644
index ad8aee3..0000000
--- a/agent/mibgroup/host/hrSWInstalledTable.c
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : mib2c.container.conf,v 1.8 2006/07/26 15:58:26 dts12 Exp $
- */
-/* 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.
- */
-
-#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/table_container.h>
-#include <net-snmp/data_access/swinst.h>
-#include <net-snmp/agent/cache_handler.h>
-#include "hrSWInstalledTable.h"
-
-#define MYTABLE "hrSWInstalledTable"
-
-static netsnmp_table_registration_info *table_info;
-
-static void _cache_free(netsnmp_cache * cache, void *magic);
-static int _cache_load(netsnmp_cache * cache, void *magic);
-
-/** Initializes the hrSWInstalledTable module */
-void
-init_hrSWInstalledTable(void)
-{
-    /*
-     * here we initialize all the tables we're planning on supporting 
-     */
-    initialize_table_hrSWInstalledTable();
-}
-
-void
-shutdown_hrSWInstalledTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-}
-
-/** Initialize the hrSWInstalledTable table by defining its contents and how it's structured */
-void
-initialize_table_hrSWInstalledTable(void)
-{
-    static oid      hrSWInstalledTable_oid[] =
-        { 1, 3, 6, 1, 2, 1, 25, 6, 3 };
-    size_t          hrSWInstalledTable_oid_len =
-        OID_LENGTH(hrSWInstalledTable_oid);
-    netsnmp_handler_registration *reg;
-    netsnmp_mib_handler *handler = NULL;
-    netsnmp_container *container = NULL;
-    netsnmp_cache *cache = NULL;
-
-    DEBUGMSGTL(("hrSWInstalled", "initialize\n"));
-
-    reg =
-        netsnmp_create_handler_registration("hrSWInstalledTable",
-                                            hrSWInstalledTable_handler,
-                                            hrSWInstalledTable_oid,
-                                            hrSWInstalledTable_oid_len,
-                                            HANDLER_CAN_RONLY);
-    if (NULL == reg) {
-        snmp_log(LOG_ERR,"error creating handler registration for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-
-    container = netsnmp_container_find("hrSWInstalledTable:table_container");
-    if (NULL == container) {
-        snmp_log(LOG_ERR,"error creating container for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-
-    table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
-    if (NULL == table_info) {
-        snmp_log(LOG_ERR,"error allocating table registration for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-
-    netsnmp_table_helper_add_indexes(table_info, ASN_INTEGER,   /* index: hrSWInstalledIndex */
-                                     0);
-    table_info->min_column = COLUMN_HRSWINSTALLEDINDEX;
-    table_info->max_column = COLUMN_HRSWINSTALLEDDATE;
-
-    /*************************************************
-     *
-     * inject container_table helper
-     */
-    handler = netsnmp_container_table_handler_get(table_info, container,
-                                                  TABLE_CONTAINER_KEY_NETSNMP_INDEX);
-    if (NULL == handler) {
-        snmp_log(LOG_ERR,"error allocating table registration for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-    if (SNMPERR_SUCCESS != netsnmp_inject_handler(reg, handler)) {
-        snmp_log(LOG_ERR,"error injecting container_table handler for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-    handler = NULL; /* reg has it, will reuse below */
-
-    /*************************************************
-     *
-     * inject cache helper
-     */
-    cache = netsnmp_cache_create(30,    /* timeout in seconds */
-                                 _cache_load, _cache_free,
-                                 hrSWInstalledTable_oid,
-                                 hrSWInstalledTable_oid_len);
-
-    if (NULL == cache) {
-        snmp_log(LOG_ERR, "error creating cache for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-    cache->magic = container;
-
-    handler = netsnmp_cache_handler_get(cache);
-    if (NULL == handler) {
-        snmp_log(LOG_ERR, "error creating cache handler for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-    if (SNMPERR_SUCCESS != netsnmp_inject_handler(reg, handler)) {
-        snmp_log(LOG_ERR,"error injecting cache handler for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-    handler = NULL; /* reg has it*/
-
-    if (SNMPERR_SUCCESS != netsnmp_register_table(reg, table_info)) {
-        snmp_log(LOG_ERR,"error registering table handler for "
-                 MYTABLE "\n");
-        reg = NULL; /* it was freed inside netsnmp_register_table */
-        goto bail;
-    }
-
-    return; /* ok */
-
-
-  bail: /* not ok */
-    
-    if (handler)
-        netsnmp_handler_free(handler);
-
-    if (cache)
-        netsnmp_cache_free(cache);
-
-    if (table_info)
-        netsnmp_table_registration_info_free(table_info);
-
-    if (container)
-        CONTAINER_FREE(container);
-
-    if (reg) 
-        netsnmp_handler_registration_free(reg);
-
-}
-
-/** handles requests for the hrSWInstalledTable table */
-int
-hrSWInstalledTable_handler(netsnmp_mib_handler *handler,
-                           netsnmp_handler_registration *reginfo,
-                           netsnmp_agent_request_info *reqinfo,
-                           netsnmp_request_info *requests)
-{
-
-    netsnmp_request_info *request;
-    netsnmp_table_request_info *table_info;
-    netsnmp_swinst_entry *table_entry;
-
-    switch (reqinfo->mode) {
-        /*
-         * Read-support (also covers GetNext requests)
-         */
-    case MODE_GET:
-        for (request = requests; request; request = request->next) {
-            if (request->processed)
-               continue;
-            table_entry = (netsnmp_swinst_entry *)
-                netsnmp_container_table_extract_context(request);
-            table_info = netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR, "could not extract table entry or info for "
-                 MYTABLE "\n");
-                snmp_set_var_typed_value(request->requestvb,
-                                         SNMP_ERR_GENERR, NULL, 0);
-                continue;
-            }
-
-            switch (table_info->colnum) {
-            case COLUMN_HRSWINSTALLEDINDEX:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->swIndex);
-                break;
-            case COLUMN_HRSWINSTALLEDNAME: {
-                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,
-                                         (u_char *) table_entry->swName,
-                                         table_entry->swName_len);
-                } break;
-            case COLUMN_HRSWINSTALLEDID:
-                snmp_set_var_typed_value(request->requestvb, ASN_OBJECT_ID,
-                                         (u_char *) &nullOid, nullOidLen);
-                break;
-            case COLUMN_HRSWINSTALLEDTYPE:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->swType);
-                break;
-            case COLUMN_HRSWINSTALLEDDATE:
-                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,
-                                         (u_char *) table_entry->swDate, 
-                                         table_entry->swDate_len);
-                break;
-            default:
-                /*
-                 * An unsupported/unreadable column (if applicable) 
-                 */
-                snmp_set_var_typed_value(request->requestvb,
-                                         SNMP_NOSUCHOBJECT, NULL, 0);
-            }
-        }
-        break;
-
-    }
-    return SNMP_ERR_NOERROR;
-}
-
-/***********************************************************************
- *
- * DATA ACCESS
- *
- * The data access mechanism here is rather simple: let newsnmp_swinst_*
- * take care of it.
- ***********************************************************************/
-/**
- * @internal
- */
-static int
-_cache_load(netsnmp_cache * cache, void *vmagic)
-{
-    DEBUGMSGTL(("hrSWInstalledTable:cache", "load\n"));
-
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR, "invalid cache for hrSWInstalledTable_cache_load\n");
-        return -1;
-    }
-
-    /** should only be called for an invalid or expired cache */
-    netsnmp_assert((0 == cache->valid) || (1 == cache->expired));
-
-    cache->magic =
-        netsnmp_swinst_container_load((netsnmp_container *) cache->magic, 0);
-
-    return 0;
-}                               /* _cache_load */
-
-/**
- * @internal
- */
-static void
-_cache_free(netsnmp_cache * cache, void *magic)
-{
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR, "invalid cache in hrSWInstalledTable_cache_free\n");
-        return;
-    }
-    DEBUGMSGTL(("hrSWInstalledTable:cache", "free\n"));
-
-    netsnmp_swinst_container_free_items((netsnmp_container *) cache->magic);
-}                               /* _cache_free */
diff --git a/agent/mibgroup/host/hrSWInstalledTable.h b/agent/mibgroup/host/hrSWInstalledTable.h
deleted file mode 100644
index 48f17e8..0000000
--- a/agent/mibgroup/host/hrSWInstalledTable.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : mib2c.container.conf,v 1.8 2006/07/26 15:58:26 dts12 Exp $
- */
-#ifndef HRSWINSTALLEDTABLE_H
-#define HRSWINSTALLEDTABLE_H
-
-config_require(host/data_access/swinst)
-
-/*
- * function declarations 
- */
-void            init_hrSWInstalledTable(void);
-void            shutdown_hrSWInstalledTable(void);
-void            initialize_table_hrSWInstalledTable(void);
-Netsnmp_Node_Handler hrSWInstalledTable_handler;
-
-/*
- * column number definitions for table hrSWInstalledTable 
- */
-#define COLUMN_HRSWINSTALLEDINDEX		1
-#define COLUMN_HRSWINSTALLEDNAME		2
-#define COLUMN_HRSWINSTALLEDID		3
-#define COLUMN_HRSWINSTALLEDTYPE		4
-#define COLUMN_HRSWINSTALLEDDATE		5
-#endif                          /* HRSWINSTALLEDTABLE_H */
diff --git a/agent/mibgroup/host/hrSWRunPerfTable.c b/agent/mibgroup/host/hrSWRunPerfTable.c
deleted file mode 100644
index 43b44d1..0000000
--- a/agent/mibgroup/host/hrSWRunPerfTable.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : mib2c.container.conf,v 1.8 2006/07/26 15:58:26 dts12 Exp $
- */
-/* 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.
- */
-
-#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/swrun.h>
-#include "hrSWRunPerfTable.h"
-#include "data_access/swrun.h"
-
-#define MYTABLE "hrSWRunPerfTable"
-
-/** Initializes the hrSWRunPerfTable module */
-void
-init_hrSWRunPerfTable(void)
-{
-    /*
-     * here we initialize all the tables we're planning on supporting 
-     */
-    initialize_table_hrSWRunPerfTable();
-}
-
-void
-shutdown_hrSWRunPerfTable(void)
-{
-    shutdown_table_hrSWRunPerfTable();
-}
-
-extern oid      hrSWRunTable_oid[];
-extern size_t   hrSWRunTable_oid_len;
-static netsnmp_table_registration_info *table_info;
-
-/** Initialize the hrSWRunPerfTable table by defining its contents and how it's structured */
-void
-initialize_table_hrSWRunPerfTable(void)
-{
-    static oid      hrSWRunPerfTable_oid[] =
-        { 1, 3, 6, 1, 2, 1, 25, 5, 1 };
-    size_t          hrSWRunPerfTable_oid_len =
-        OID_LENGTH(hrSWRunPerfTable_oid);
-    netsnmp_handler_registration *reg;
-    netsnmp_mib_handler *handler = NULL;
-
-    reg =
-        netsnmp_create_handler_registration("hrSWRunPerfTable",
-                                            hrSWRunPerfTable_handler,
-                                            hrSWRunPerfTable_oid,
-                                            hrSWRunPerfTable_oid_len,
-                                            HANDLER_CAN_RONLY);
-    if (NULL == reg) {
-        snmp_log(LOG_ERR,"error creating handler registration for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-
-    table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
-    if (NULL == table_info) {
-        snmp_log(LOG_ERR,"error allocating table registration for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-    netsnmp_table_helper_add_indexes(table_info, ASN_INTEGER,   /* index: hrSWRunIndex */
-                                     0);
-    table_info->min_column = COLUMN_HRSWRUNPERFCPU;
-    table_info->max_column = COLUMN_HRSWRUNPERFMEM;
-
-    /*************************************************
-     *
-     * inject container_table helper
-     */
-    handler = netsnmp_container_table_handler_get(table_info, netsnmp_swrun_container(),
-                                                  TABLE_CONTAINER_KEY_NETSNMP_INDEX);
-    if (NULL == handler) {
-        snmp_log(LOG_ERR,"error allocating table registration for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-    if (SNMPERR_SUCCESS != netsnmp_inject_handler(reg, handler)) {
-        snmp_log(LOG_ERR,"error injecting container_table handler for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-    handler = NULL; /* reg has it, will reuse below */
-
-    /*************************************************
-     *
-     * inject cache helper
-     */
-
-    handler = netsnmp_cache_handler_get(netsnmp_swrun_cache());
-    if (NULL == handler) {
-        snmp_log(LOG_ERR, "error creating cache handler for " MYTABLE "\n");
-        goto bail;
-    }
-
-    if (SNMPERR_SUCCESS != netsnmp_inject_handler(reg, handler)) {
-        snmp_log(LOG_ERR,"error injecting cache handler for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-    handler = NULL; /* reg has it*/
-
-    if (SNMPERR_SUCCESS != netsnmp_register_table(reg, table_info)) {
-        snmp_log(LOG_ERR,"error registering table handler for "
-                 MYTABLE "\n");
-        reg = NULL; /* it was freed inside netsnmp_register_table */
-        goto bail;
-    }
-
-    return; /* ok */
-
-
-  bail: /* not ok */
-    
-    if (handler)
-        netsnmp_handler_free(handler);
-
-    if (table_info)
-        netsnmp_table_registration_info_free(table_info);
-
-    if (reg) 
-        netsnmp_handler_registration_free(reg);
-}
-
-void
-shutdown_table_hrSWRunPerfTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-}
-
-/** handles requests for the hrSWRunPerfTable table */
-int
-hrSWRunPerfTable_handler(netsnmp_mib_handler *handler,
-                         netsnmp_handler_registration *reginfo,
-                         netsnmp_agent_request_info *reqinfo,
-                         netsnmp_request_info *requests)
-{
-
-    netsnmp_request_info *request;
-    netsnmp_table_request_info *table_info;
-    netsnmp_swrun_entry *table_entry;
-
-    switch (reqinfo->mode) {
-        /*
-         * Read-support (also covers GetNext requests)
-         */
-    case MODE_GET:
-        for (request = requests; request; request = request->next) {
-            if (request->processed)
-               continue;
-            table_entry = (netsnmp_swrun_entry *)
-                netsnmp_container_table_extract_context(request);
-            table_info = netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR, "could not extract table entry or info for "
-                 MYTABLE "\n");
-                snmp_set_var_typed_value(request->requestvb,
-                                         SNMP_ERR_GENERR, NULL, 0);
-                continue;
-            }
-
-            switch (table_info->colnum) {
-            case COLUMN_HRSWRUNPERFCPU:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->hrSWRunPerfCPU);
-                break;
-            case COLUMN_HRSWRUNPERFMEM:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->hrSWRunPerfMem);
-                break;
-            default:
-                /*
-                 * An unsupported/unreadable column (if applicable) 
-                 */
-                snmp_set_var_typed_value(request->requestvb,
-                                         SNMP_NOSUCHOBJECT, NULL, 0);
-            }
-        }
-        break;
-
-    }
-    return SNMP_ERR_NOERROR;
-}
diff --git a/agent/mibgroup/host/hrSWRunPerfTable.h b/agent/mibgroup/host/hrSWRunPerfTable.h
deleted file mode 100644
index 453fda3..0000000
--- a/agent/mibgroup/host/hrSWRunPerfTable.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : mib2c.container.conf,v 1.8 2006/07/26 15:58:26 dts12 Exp $
- */
-/* 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.
- */
-#ifndef HRSWRUNPERFTABLE_H
-#define HRSWRUNPERFTABLE_H
-
-config_require(host/hrSWRunTable)
-
-/*
- * function declarations 
- */
-void            init_hrSWRunPerfTable(void);
-void            shutdown_hrSWRunPerfTable(void);
-void            initialize_table_hrSWRunPerfTable(void);
-void            shutdown_table_hrSWRunPerfTable(void);
-Netsnmp_Node_Handler hrSWRunPerfTable_handler;
-
-/*
- * column number definitions for table hrSWRunPerfTable 
- */
-#define COLUMN_HRSWRUNPERFCPU		1
-#define COLUMN_HRSWRUNPERFMEM		2
-#endif                          /* HRSWRUNPERFTABLE_H */
diff --git a/agent/mibgroup/host/hrSWRunTable.c b/agent/mibgroup/host/hrSWRunTable.c
deleted file mode 100644
index 03ad256..0000000
--- a/agent/mibgroup/host/hrSWRunTable.c
+++ /dev/null
@@ -1,350 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : mib2c.container.conf,v 1.8 2006/07/26 15:58:26 dts12 Exp $
- */
-/* 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.
- */
-
-#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/table_container.h>
-#include <net-snmp/data_access/swrun.h>
-#include <net-snmp/agent/cache_handler.h>
-#include "data_access/swrun.h"
-#include "hrSWRunTable.h"
-
-#include <signal.h>
-
-#define MYTABLE "hrSWRunTable"
-
-static netsnmp_table_registration_info *table_info;
-
-/** Initializes the hrSWRunTable module */
-void
-init_hrSWRunTable(void)
-{
-    /*
-     * here we initialize all the tables we're planning on supporting 
-     */
-    initialize_table_hrSWRunTable();
-}
-
-void
-shutdown_hrSWRunTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-}
-
-oid      hrSWRunTable_oid[] = { 1, 3, 6, 1, 2, 1, 25, 4, 2 };
-size_t   hrSWRunTable_oid_len = OID_LENGTH(hrSWRunTable_oid);
-
-/** Initialize the hrSWRunTable table by defining its contents and how it's structured */
-void
-initialize_table_hrSWRunTable(void)
-{
-    netsnmp_handler_registration *reg;
-    netsnmp_mib_handler *handler = NULL;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-#ifdef NETSNMP_INCLUDE_HRSWRUN_WRITE_SUPPORT
-#  define SWRUN_ACCESS_LEVEL HANDLER_CAN_RWRITE
-#else
-#  define SWRUN_ACCESS_LEVEL HANDLER_CAN_RONLY
-#endif
-#else /* !NETSNMP_NO_WRITE_SUPPORT */ 
-#  define SWRUN_ACCESS_LEVEL HANDLER_CAN_RONLY
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-    reg =
-        netsnmp_create_handler_registration(MYTABLE,
-                                            hrSWRunTable_handler,
-                                            hrSWRunTable_oid,
-                                            hrSWRunTable_oid_len,
-                                            SWRUN_ACCESS_LEVEL);
-    if (NULL == reg) {
-        snmp_log(LOG_ERR,"error creating handler registration for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-    reg->modes |= HANDLER_CAN_NOT_CREATE;
-
-    table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
-    if (NULL == table_info) {
-        snmp_log(LOG_ERR,"error allocating table registration for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-
-    netsnmp_table_helper_add_indexes(table_info, ASN_INTEGER,   /* index: hrSWRunIndex */
-                                     0);
-    table_info->min_column = COLUMN_HRSWRUNINDEX;
-    table_info->max_column = COLUMN_HRSWRUNSTATUS;
-
-    /*************************************************
-     *
-     * inject container_table helper
-     */
-    handler = netsnmp_container_table_handler_get(table_info, netsnmp_swrun_container(),
-                                                  TABLE_CONTAINER_KEY_NETSNMP_INDEX);
-    if (NULL == handler) {
-        snmp_log(LOG_ERR,"error allocating table registration for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-    if (SNMPERR_SUCCESS != netsnmp_inject_handler(reg, handler)) {
-        snmp_log(LOG_ERR,"error injecting container_table handler for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-    handler = NULL; /* reg has it, will reuse below */
-
-    /*************************************************
-     *
-     * inject cache helper
-     */
-    handler = netsnmp_cache_handler_get(netsnmp_swrun_cache());
-    if (NULL == handler) {
-        snmp_log(LOG_ERR, "error creating cache handler for " MYTABLE "\n");
-        goto bail;
-    }
-
-    if (SNMPERR_SUCCESS != netsnmp_inject_handler(reg, handler)) {
-        snmp_log(LOG_ERR,"error injecting cache handler for "
-                 MYTABLE "\n");
-        goto bail;
-    }
-    handler = NULL; /* reg has it*/
-
-    if (SNMPERR_SUCCESS != netsnmp_register_table(reg, table_info)) {
-        snmp_log(LOG_ERR,"error registering table handler for "
-                 MYTABLE "\n");
-        reg = NULL; /* it was freed inside netsnmp_register_table */
-        goto bail;
-    }
-
-    return; /* ok */
-
-
-  bail: /* not ok */
-    
-    if (handler)
-        netsnmp_handler_free(handler);
-
-    if (table_info)
-        netsnmp_table_registration_info_free(table_info);
-
-    if (reg) 
-        netsnmp_handler_registration_free(reg);
-
-}
-
-/** handles requests for the hrSWRunTable table */
-int
-hrSWRunTable_handler(netsnmp_mib_handler *handler,
-                     netsnmp_handler_registration *reginfo,
-                     netsnmp_agent_request_info *reqinfo,
-                     netsnmp_request_info *requests)
-{
-    netsnmp_request_info *request;
-    netsnmp_table_request_info *table_info;
-    netsnmp_swrun_entry *table_entry;
-
-    switch (reqinfo->mode) {
-        /*
-         * Read-support (also covers GetNext requests)
-         */
-    case MODE_GET:
-        for (request = requests; request; request = request->next) {
-            if (request->processed)
-               continue;
-            table_entry = (netsnmp_swrun_entry *)
-                netsnmp_container_table_extract_context(request);
-            table_info = netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR, "could not extract table entry or info for "
-                 MYTABLE "\n");
-                snmp_set_var_typed_value(request->requestvb,
-                                         SNMP_ERR_GENERR, NULL, 0);
-                continue;
-            }
-
-            switch (table_info->colnum) {
-            case COLUMN_HRSWRUNINDEX:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->hrSWRunIndex);
-                break;
-            case COLUMN_HRSWRUNNAME:
-                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,
-                                         (u_char *) table_entry->
-                                         hrSWRunName,
-                                         table_entry->hrSWRunName_len);
-                break;
-            case COLUMN_HRSWRUNID:
-                snmp_set_var_typed_value(request->requestvb, ASN_OBJECT_ID,
-#ifdef NETSNMP_SWRUN_HAVE_ID
-                                         (u_char *) table_entry->hrSWRunID,
-                                         table_entry->hrSWRunID_len
-#else
-                                         (u_char *) &nullOid, nullOidLen
-#endif
-                    );
-                break;
-            case COLUMN_HRSWRUNPATH:
-                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,
-                                         (u_char *) table_entry->
-                                         hrSWRunPath,
-                                         table_entry->hrSWRunPath_len);
-                break;
-            case COLUMN_HRSWRUNPARAMETERS:
-                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,
-                                         (u_char *) table_entry->
-                                         hrSWRunParameters,
-                                         table_entry->
-                                         hrSWRunParameters_len);
-                break;
-            case COLUMN_HRSWRUNTYPE:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->hrSWRunType);
-                break;
-            case COLUMN_HRSWRUNSTATUS:
-                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
-                                           table_entry->hrSWRunStatus);
-                break;
-            default:
-                /*
-                 * An unsupported/unreadable column (if applicable) 
-                 */
-                snmp_set_var_typed_value(request->requestvb,
-                                         SNMP_NOSUCHOBJECT, NULL, 0);
-            }
-        }
-        break;
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-#ifdef NETSNMP_INCLUDE_HRSWRUN_WRITE_SUPPORT
-        /*
-         * Write-support
-         */
-    case MODE_SET_RESERVE1:
-        for (request = requests; request; request = request->next) {
-            int pid;
-            if (request->processed)
-               continue;
-            table_entry = (netsnmp_swrun_entry *)
-                netsnmp_container_table_extract_context(request);
-            table_info = netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR, "could not extract table entry or info for "
-                 MYTABLE "\n");
-                snmp_set_var_typed_value(request->requestvb,
-                                         SNMP_ERR_GENERR, NULL, 0);
-                continue;
-            }
-
-            switch (table_info->colnum) {
-            case COLUMN_HRSWRUNSTATUS:
-                if (*request->requestvb->val.integer != HRSWRUNSTATUS_INVALID) {
-                    netsnmp_set_request_error(reqinfo, request,
-                                              SNMP_ERR_WRONGVALUE);
-                    return SNMP_ERR_NOERROR;
-                }
-                pid = request->requestvb->name[request->requestvb->name_length-1];
-                if (1 == pid) {
-                    snmp_log(LOG_WARNING,"refusing to kill pid 1\n");
-                    netsnmp_set_request_error(reqinfo, request,
-                                              SNMP_ERR_NOACCESS);
-                    return SNMP_ERR_NOERROR;
-                }
-                break;
-            default:
-                netsnmp_set_request_error(reqinfo, request,
-                                          SNMP_ERR_NOTWRITABLE);
-                return SNMP_ERR_NOERROR;
-            }
-        }
-        break;
-
-    case MODE_SET_RESERVE2:
-        break;
-
-    case MODE_SET_FREE:
-        break;
-
-    case MODE_SET_ACTION:
-        for (request = requests; request; request = request->next) {
-            if (request->processed)
-               continue;
-            table_entry = (netsnmp_swrun_entry *)
-                netsnmp_container_table_extract_context(request);
-            table_info = netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR, "could not extract table entry or info for "
-                 MYTABLE "\n");
-                snmp_set_var_typed_value(request->requestvb,
-                                         SNMP_ERR_GENERR, NULL, 0);
-                continue;
-            }
-
-            switch (table_info->colnum) {
-            case COLUMN_HRSWRUNSTATUS:
-                table_entry->old_hrSWRunStatus =
-                    table_entry->hrSWRunStatus;
-                table_entry->hrSWRunStatus =
-                    *request->requestvb->val.integer;
-                break;
-            }
-        }
-        break;
-
-    case MODE_SET_UNDO:
-        for (request = requests; request; request = request->next) {
-            if (request->processed)
-               continue;
-            container = netsnmp_container_table_extract_context(request);
-            table_entry = (netsnmp_swrun_entry *)
-                netsnmp_container_table_extract_context(request);
-            table_info = netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR, "could not extract table entry or info for "
-                 MYTABLE "\n");
-                snmp_set_var_typed_value(request->requestvb,
-                                         SNMP_ERR_GENERR, NULL, 0);
-                continue;
-            }
-
-            switch (table_info->colnum) {
-            case COLUMN_HRSWRUNSTATUS:
-                table_entry->hrSWRunStatus =
-                    table_entry->old_hrSWRunStatus;
-                table_entry->old_hrSWRunStatus = 0;
-                break;
-            }
-        }
-        break;
-
-    case MODE_SET_COMMIT:
-        for (request = requests; request; request = request->next) {
-            int pid;
-            if (request->processed)
-               continue;
-            pid = request->requestvb->name[request->requestvb->name_length-1];
-            DEBUGMSGTL(("hrSWRunTable:commit", "kill(%d,TERM)\n", pid));
-            kill(pid, SIGTERM);
-        }
-        break;
-#endif /* NETSNMP_INCLUDE_HRSWRUN_WRITE_SUPPORT */
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-    }
-    return SNMP_ERR_NOERROR;
-}
-
diff --git a/agent/mibgroup/host/hrSWRunTable.h b/agent/mibgroup/host/hrSWRunTable.h
deleted file mode 100644
index de80fc0..0000000
--- a/agent/mibgroup/host/hrSWRunTable.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : mib2c.container.conf,v 1.8 2006/07/26 15:58:26 dts12 Exp $
- */
-/* 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.
- */
-#ifndef HRSWRUNTABLE_H
-#define HRSWRUNTABLE_H
-
-config_require(host/data_access/swrun)
-config_require(host/hrSWRunPerfTable)
-
-/*
- * function declarations 
- */
-void            init_hrSWRunTable(void);
-void            shutdown_hrSWRunTable(void);
-void            initialize_table_hrSWRunTable(void);
-Netsnmp_Node_Handler hrSWRunTable_handler;
-
-/*
- * column number definitions for table hrSWRunTable 
- */
-#define COLUMN_HRSWRUNINDEX		1
-#define COLUMN_HRSWRUNNAME		2
-#define COLUMN_HRSWRUNID		3
-#define COLUMN_HRSWRUNPATH		4
-#define COLUMN_HRSWRUNPARAMETERS		5
-#define COLUMN_HRSWRUNTYPE		6
-#define COLUMN_HRSWRUNSTATUS		7
-#endif                          /* HRSWRUNTABLE_H */
diff --git a/agent/mibgroup/host/hr_device.c b/agent/mibgroup/host/hr_device.c
index 24031bf..86db54a 100644
--- a/agent/mibgroup/host/hr_device.c
+++ b/agent/mibgroup/host/hr_device.c
@@ -63,18 +63,12 @@ int             header_hrdevice(struct variable *, oid *, size_t *, int,
 #define	HRDEV_ERRORS		6
 
 struct variable4 hrdevice_variables[] = {
-    {HRDEV_INDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrdevice, 2, {1, 1}},
-    {HRDEV_TYPE, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_hrdevice, 2, {1, 2}},
-    {HRDEV_DESCR, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrdevice, 2, {1, 3}},
-    {HRDEV_ID, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_hrdevice, 2, {1, 4}},
-    {HRDEV_STATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrdevice, 2, {1, 5}},
-    {HRDEV_ERRORS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_hrdevice, 2, {1, 6}}
+    {HRDEV_INDEX, ASN_INTEGER, RONLY, var_hrdevice, 2, {1, 1}},
+    {HRDEV_TYPE, ASN_OBJECT_ID, RONLY, var_hrdevice, 2, {1, 2}},
+    {HRDEV_DESCR, ASN_OCTET_STR, RONLY, var_hrdevice, 2, {1, 3}},
+    {HRDEV_ID, ASN_OBJECT_ID, RONLY, var_hrdevice, 2, {1, 4}},
+    {HRDEV_STATUS, ASN_INTEGER, RONLY, var_hrdevice, 2, {1, 5}},
+    {HRDEV_ERRORS, ASN_COUNTER, RONLY, var_hrdevice, 2, {1, 6}}
 };
 oid             hrdevice_variables_oid[] = { 1, 3, 6, 1, 2, 1, 25, 3, 2 };
 
@@ -197,7 +191,7 @@ header_hrdevice(struct variable *vp,
     memcpy((char *) name, (char *) newname,
            ((int) vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
 
     DEBUGMSGTL(("host/hr_device", "... get device stats "));
@@ -250,7 +244,8 @@ really_try_next:
     case HRDEV_DESCR:
         if ((device_descr[type] != NULL) &&
             (NULL!=(tmp_str=((*device_descr[type])(dev_idx))))) {
-            strlcpy(string, tmp_str, sizeof(string));
+            strncpy(string, tmp_str, sizeof(string)-1);
+            string[ sizeof(string)-1] = 0;
         } else
 #if NETSNMP_NO_DUMMY_VALUES
             goto try_next;
diff --git a/agent/mibgroup/host/hr_disk.c b/agent/mibgroup/host/hr_disk.c
index 679264b..e4c5b95 100644
--- a/agent/mibgroup/host/hr_disk.c
+++ b/agent/mibgroup/host/hr_disk.c
@@ -2,16 +2,6 @@
  *  Host Resources MIB - disk device group implementation - hr_disk.c
  *
  */
-/* 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.
- */
 
 #include <net-snmp/net-snmp-config.h>
 #include "host_res.h"
@@ -71,23 +61,10 @@
 # endif
 #endif
 
-#if defined(HAVE_REGEX_H) && defined(HAVE_REGCOMP)
-#include <regex.h>
-#endif
-
 #if HAVE_LIMITS_H
 #include <limits.h>
 #endif
 
-#ifdef darwin
-#include <CoreFoundation/CoreFoundation.h>
-#include <IOKit/IOKitLib.h>
-#include <IOKit/storage/IOBlockStorageDriver.h>
-#include <IOKit/storage/IOMedia.h>
-#include <IOKit/IOBSD.h>
-#include <DiskArbitration/DADisk.h>
-#endif
-
 #ifdef linux
 /*
  * define BLKGETSIZE from <linux/fs.h>:
@@ -102,27 +79,6 @@
 
 #define HRD_MONOTONICALLY_INCREASING
 
-/*************************************************************
- * constants for enums for the MIB node
- * hrDiskStorageAccess (INTEGER / ASN_INTEGER)
- */
-#define HRDISKSTORAGEACCESS_READWRITE  1
-#define HRDISKSTORAGEACCESS_READONLY  2
-
-
-/*************************************************************
- * constants for enums for the MIB node
- * hrDiskStorageMedia (INTEGER / ASN_INTEGER)
- */
-#define HRDISKSTORAGEMEDIA_OTHER  1
-#define HRDISKSTORAGEMEDIA_UNKNOWN  2
-#define HRDISKSTORAGEMEDIA_HARDDISK  3
-#define HRDISKSTORAGEMEDIA_FLOPPYDISK  4
-#define HRDISKSTORAGEMEDIA_OPTICALDISKROM  5
-#define HRDISKSTORAGEMEDIA_OPTICALDISKWORM  6
-#define HRDISKSTORAGEMEDIA_OPTICALDISKRW  7
-#define HRDISKSTORAGEMEDIA_RAMDISK  8
-
         /*********************
 	 *
 	 *  Kernel & interface information,
@@ -176,27 +132,9 @@ static struct hd_driveid HRD_info;
 static struct disklabel HRD_info;
 #endif
 
-#ifdef darwin
-static int64_t  HRD_cap;
-static int      HRD_access;
-static int      HRD_type;
-static int      HRD_removeble;
-static char     HRD_model[40];
-static int      HRD_saved_access;
-static int      HRD_saved_type;
-static int      HRD_saved_removeble;
-static int _get_type_from_protocol( const char *prot );
-static int _get_type_value( const char *str_type );
-#endif
-
 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
-
         /*********************
 	 *
 	 *  Initialisation & common implementation functions
@@ -209,14 +147,10 @@ static void     Remove_LVM_Disks(void);
 #define	HRDISK_CAPACITY		4
 
 struct variable4 hrdisk_variables[] = {
-    {HRDISK_ACCESS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrdisk, 2, {1, 1}},
-    {HRDISK_MEDIA, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrdisk, 2, {1, 2}},
-    {HRDISK_REMOVEABLE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrdisk, 2, {1, 3}},
-    {HRDISK_CAPACITY, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrdisk, 2, {1, 4}}
+    {HRDISK_ACCESS, ASN_INTEGER, RONLY, var_hrdisk, 2, {1, 1}},
+    {HRDISK_MEDIA, ASN_INTEGER, RONLY, var_hrdisk, 2, {1, 2}},
+    {HRDISK_REMOVEABLE, ASN_INTEGER, RONLY, var_hrdisk, 2, {1, 3}},
+    {HRDISK_CAPACITY, ASN_INTEGER, RONLY, var_hrdisk, 2, {1, 4}}
 };
 oid             hrdisk_variables_oid[] = { 1, 3, 6, 1, 2, 1, 25, 3, 6 };
 
@@ -238,9 +172,6 @@ init_hr_disk(void)
     Add_HR_Disk_entry("/dev/sd%c%d", -1, -1, 'a', 'p', "/dev/sd%c", 1, 15);
     Add_HR_Disk_entry("/dev/md%d", -1, -1, 0, 3, "/dev/md%d", 0, 0);
     Add_HR_Disk_entry("/dev/fd%d", -1, -1, 0, 1, "/dev/fd%d", 0, 0);
-
-    Add_LVM_Disks();
-
 #elif defined(hpux)
 #if defined(hpux10) || defined(hpux11)
     Add_HR_Disk_entry("/dev/rdsk/c%dt%xd%d", 0, 1, 0, 15,
@@ -254,8 +185,6 @@ init_hr_disk(void)
                       "/dev/rdsk/c%dt%dd0s0", 0, 7);
     Add_HR_Disk_entry("/dev/rdsk/c%dd%ds%d", 0, 7, 0, 15,
                       "/dev/rdsk/c%dd%ds0", 0, 7);
-#elif defined(darwin)
-    Add_HR_Disk_entry("/dev/disk%ds%d", -1, -1, 0, 32, "/dev/disk%d", 1, 32);
 #elif defined(freebsd4) || defined(freebsd5)
     Add_HR_Disk_entry("/dev/ad%ds%d%c", 0, 1, 1, 4, "/dev/ad%ds%d", 'a', 'h');
     Add_HR_Disk_entry("/dev/da%ds%d%c", 0, 1, 1, 4, "/dev/da%ds%d", 'a', 'h');
@@ -286,14 +215,6 @@ init_hr_disk(void)
                                   free_disk_config, "name");
 }
 
-void
-shutdown_hr_disk(void)
-{
-#ifdef linux
-    Remove_LVM_Disks();
-#endif
-}
-
 #define ITEM_STRING	1
 #define ITEM_SET	2
 #define ITEM_STAR	3
@@ -319,12 +240,12 @@ static int      match_disk_config_item(const char *, conf_disk_item *);
 static void
 parse_disk_config(const char *token, char *cptr)
 {
-    conf_disk_list *d_new = NULL;
-    conf_disk_item *di_curr = NULL;
-    details_set    *d_set = NULL;
-    char           *name = NULL, *p = NULL, *d_str = NULL, c;
+    conf_disk_list *d_new = 0;
+    conf_disk_item *di_curr = 0;
+    details_set    *d_set = 0;
+    char           *name = 0, *p = 0, *d_str = 0, c;
     unsigned int    i, neg, c1, c2;
-    char           *st = NULL;
+    char           *st = 0;
 
     name = strtok_r(cptr, " \t", &st);
     if (!name) {
@@ -355,7 +276,7 @@ parse_disk_config(const char *token, char *cptr)
             di_curr->item_details = (void *) 0;
             name++;
         } else if (*name == '[') {
-            d_set = (details_set *) calloc(sizeof(details_set), 1);
+            d_set = (details_set *) malloc(sizeof(details_set));
             if (!d_set) {
                 config_perror("Out of memory");
                 SNMP_FREE(d_new);
@@ -364,6 +285,8 @@ parse_disk_config(const char *token, char *cptr)
                 SNMP_FREE(d_str);
                 return;
             }
+            for (i = 0; i < sizeof(details_set); i++)
+                (*d_set)[i] = (unsigned char) 0;
             name++;
             if (*name == '^' || *name == '!') {
                 neg = 1;
@@ -561,7 +484,6 @@ header_hrdisk(struct variable *vp,
     Init_HR_Disk();
     for (;;) {
         disk_idx = Get_Next_HR_Disk();
-        DEBUGMSGTL(("host/hr_disk", "... index %d\n", disk_idx));
         if (disk_idx == -1)
             break;
         newname[HRDISK_ENTRY_NAME_LENGTH] = disk_idx;
@@ -592,7 +514,7 @@ header_hrdisk(struct variable *vp,
     memcpy((char *) name, (char *) newname,
            ((int) vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
 
     DEBUGMSGTL(("host/hr_disk", "... get disk stats "));
@@ -681,7 +603,7 @@ Add_HR_Disk_entry(const char *devpart_string,
 
     while (first_ctl <= last_ctl) {
       for (lodev = first_dev;
-           lodev <= last_dev && MAX_NUMBER_DISK_TYPES > HR_number_disk_types;
+           lodev < last_dev && MAX_NUMBER_DISK_TYPES > HR_number_disk_types;
            lodev += (1+MAX_DISKS_PER_TYPE), HR_number_disk_types++)
       {
         nbr_created++;
@@ -736,14 +658,14 @@ Init_HR_Disk(void)
 int
 Get_Next_HR_Disk(void)
 {
-    char            string[PATH_MAX+1];
+    char            string[1024];
     int             fd, result;
     int             iindex;
     int             max_disks;
     time_t          now;
 
     HRD_index++;
-    time(&now);
+    (void *) time(&now);
     DEBUGMSGTL(("host/hr_disk", "Next_Disk type %d of %d\n",
                 HRD_type_index, HR_number_disk_types));
     while (HRD_type_index < HR_number_disk_types) {
@@ -777,9 +699,6 @@ Get_Next_HR_Disk(void)
                         disk_devices[HRD_type_index].disk_controller,
                         disk_devices[HRD_type_index].disk_device_first +
                         HRD_index);
-	    } else if (disk_devices[HRD_type_index].disk_device_first == disk_devices[HRD_type_index].disk_device_last) {
-		/* exact device name */
-		snprintf(string, sizeof(string)-1, "%s", disk_devices[HRD_type_index].disk_devfull_string);
             } else {
                 snprintf(string, sizeof(string)-1,
                         disk_devices[HRD_type_index].disk_devfull_string,
@@ -830,12 +749,6 @@ Get_Next_HR_Disk(void)
                     HRD_history[iindex] = 0;
                     return ((HRDEV_DISK << HRDEV_TYPE_SHIFT) + iindex);
                 }
-                DEBUGMSGTL(("host/hr_disk",
-                            "Get_Next_HR_Disk: can't query %s\n", string));
-            }
-            else {
-                DEBUGMSGTL(("host/hr_disk",
-                            "Get_Next_HR_Disk: can't open %s\n", string));
             }
             HRD_history[iindex] = now;
             HRD_index++;
@@ -888,62 +801,6 @@ Get_Next_HR_Disk_Partition(char *string, size_t str_len, int HRP_index)
     return 0;
 }
 
-#ifdef darwin
-int
-Get_HR_Disk_Label(char *string, size_t str_len, const char *devfull)
-{
-    DASessionRef        sess_ref;
-    DADiskRef           disk;
-    CFDictionaryRef     desc;
-    CFStringRef         str_ref;
-    CFStringEncoding    sys_encoding = CFStringGetSystemEncoding();
-
-    DEBUGMSGTL(("host/hr_disk", "Disk Label type %s\n", devfull));
-
-    sess_ref = DASessionCreate( NULL );
-    if (NULL == sess_ref) {
-        strlcpy(string, devfull, str_len);
-        return -1;
-    }
-
-    disk = DADiskCreateFromBSDName( NULL, sess_ref, devfull );
-    if (NULL == disk) {
-        CFRelease(sess_ref);
-        strlcpy(string, devfull, str_len);
-        return -1;
-    }
-
-    desc = DADiskCopyDescription( disk );
-    if (NULL == desc) {
-        snmp_log(LOG_ERR,
-                 "diskmgr: couldn't get disk description for %s, skipping\n",
-                 devfull);
-        CFRelease(disk);
-        CFRelease(sess_ref);
-        strlcpy(string, devfull, str_len);
-        return -1;
-    }
-
-    /** model */
-    str_ref = (CFStringRef)
-        CFDictionaryGetValue(desc, kDADiskDescriptionMediaNameKey);
-    if (str_ref) {
-        strlcpy(string, CFStringGetCStringPtr(str_ref, sys_encoding),
-                str_len);
-        DEBUGMSGTL(("verbose:diskmgr:darwin", " name %s\n", string));
-    }
-    else {
-        strlcpy(string, devfull, str_len);
-    }
-    
-    CFRelease(disk);
-    CFRelease(desc);
-    CFRelease(sess_ref);
-    
-    return 0;
-}
-#endif
-
 static void
 Save_HR_Disk_Specific(void)
 {
@@ -965,34 +822,28 @@ Save_HR_Disk_Specific(void)
 #ifdef DIOCGDINFO
     HRD_savedCapacity = HRD_info.d_secperunit / 2;
 #endif
-#ifdef darwin
-    HRD_savedCapacity = HRD_cap / 1024;
-    HRD_saved_access = HRD_access;
-    HRD_saved_type = HRD_type;
-    HRD_saved_removeble = HRD_removeble;
-#endif
-
 }
 
 static void
 Save_HR_Disk_General(void)
 {
 #ifdef DIOC_DESCRIBE
-    strlcpy(HRD_savedModel, HRD_info.model_num, sizeof(HRD_savedModel));
+    strncpy(HRD_savedModel, HRD_info.model_num, sizeof(HRD_savedModel)-1);
+    HRD_savedModel[ sizeof(HRD_savedModel)-1 ] = 0;
 #endif
 #ifdef DKIOCINFO
-    strlcpy(HRD_savedModel, HRD_info.dki_dname, sizeof(HRD_savedModel));
+    strncpy(HRD_savedModel, HRD_info.dki_dname, sizeof(HRD_savedModel)-1);
+    HRD_savedModel[ sizeof(HRD_savedModel)-1 ] = 0;
 #endif
 #ifdef HAVE_LINUX_HDREG_H
-    strlcpy(HRD_savedModel, (const char *) HRD_info.model,
-            sizeof(HRD_savedModel));
+    strncpy(HRD_savedModel, (const char *) HRD_info.model,
+                    sizeof(HRD_savedModel)-1);
+    HRD_savedModel[ sizeof(HRD_savedModel)-1 ] = 0;
 #endif
 #ifdef DIOCGDINFO
-    strlcpy(HRD_savedModel, dktypenames[HRD_info.d_type],
-            sizeof(HRD_savedModel));
-#endif
-#ifdef darwin
-    strlcpy(HRD_savedModel, HRD_model, sizeof(HRD_savedModel));
+    strncpy(HRD_savedModel, dktypenames[HRD_info.d_type],
+                    sizeof(HRD_savedModel)-1);
+    HRD_savedModel[ sizeof(HRD_savedModel)-1 ] = 0;
 #endif
 }
 
@@ -1026,7 +877,7 @@ Query_Disk(int fd, const char *devfull)
 #ifdef HAVE_LINUX_HDREG_H
     if (HRD_type_index == 0)    /* IDE hard disk */
         result = ioctl(fd, HDIO_GET_IDENTITY, &HRD_info);
-    else if (HRD_type_index != 3) {     /* SCSI hard disk, md and LVM devices */
+    else if (HRD_type_index <= 2) {     /* SCSI hard disk and md devices */
         long            h;
         result = ioctl(fd, BLKGETSIZE, &h);
         if (result != -1 && HRD_type_index == 2 && h == 0L)
@@ -1034,13 +885,10 @@ Query_Disk(int fd, const char *devfull)
         if (result != -1) {
             HRD_info.lba_capacity = h;
             if (HRD_type_index == 1)
-                snprintf( (char *) HRD_info.model, sizeof(HRD_info.model)-1,
+                snprintf( HRD_info.model, sizeof(HRD_info.model)-1,
                          "SCSI disk (%s)", devfull);
-	    else if (HRD_type_index >= 4)
-		snprintf( (char *) HRD_info.model, sizeof(HRD_info.model)-1,
-			 "LVM volume (%s)", devfull + strlen("/dev/mapper/"));
             else
-                snprintf( (char *) HRD_info.model, sizeof(HRD_info.model)-1,
+                snprintf( HRD_info.model, sizeof(HRD_info.model)-1,
                         "RAID disk (%s)", devfull);
             HRD_info.model[ sizeof(HRD_info.model)-1 ] = 0;
             HRD_info.config = 0;
@@ -1052,103 +900,6 @@ Query_Disk(int fd, const char *devfull)
     result = ioctl(fd, DIOCGDINFO, &HRD_info);
 #endif
 
-#ifdef darwin
-    DASessionRef        sess_ref;
-    DADiskRef           disk;
-    CFDictionaryRef     desc;
-    CFStringRef         str_ref;
-    CFNumberRef         number_ref;
-    CFBooleanRef        bool_ref;
-    CFStringEncoding    sys_encoding = CFStringGetSystemEncoding();
-
-    sess_ref = DASessionCreate( NULL );
-    if (NULL == sess_ref)
-        return -1;
-
-    disk = DADiskCreateFromBSDName( NULL, sess_ref, devfull );
-    if (NULL == disk) {
-        CFRelease(sess_ref);
-        return -1;
-    }
-
-    desc = DADiskCopyDescription( disk );
-    if (NULL == desc) {
-        CFRelease(disk);
-        CFRelease(sess_ref);
-        return -1;
-    }
-
-    number_ref = (CFNumberRef)
-        CFDictionaryGetValue(desc, kDADiskDescriptionMediaSizeKey);
-    if (number_ref)
-        CFNumberGetValue(number_ref, kCFNumberSInt64Type, &HRD_cap);
-    else
-        HRD_cap = 0;
-    DEBUGMSGTL(("verbose:diskmgr:darwin", " size %lld\n", HRD_cap));
-
-    /** writable?  */
-    bool_ref = (CFBooleanRef)
-        CFDictionaryGetValue(desc, kDADiskDescriptionMediaWritableKey);
-    if (bool_ref) {
-        HRD_access = CFBooleanGetValue(bool_ref);
-    }
-    else
-        HRD_access = 0;
-    DEBUGMSGTL(("verbose:diskmgr:darwin", " writable %d\n",
-                HRD_access));
-
-    /** removable?  */
-    bool_ref = (CFBooleanRef)
-        CFDictionaryGetValue(desc, kDADiskDescriptionMediaRemovableKey);
-    if (bool_ref) {
-        HRD_removeble = CFBooleanGetValue(bool_ref);
-    }
-    else
-        HRD_removeble = 0;
-    DEBUGMSGTL(("verbose:diskmgr:darwin", " removable %d\n",
-                HRD_removeble));
-
-    /** get type */
-    str_ref = (CFStringRef)
-        CFDictionaryGetValue(desc, kDADiskDescriptionMediaTypeKey);
-    if (str_ref) {
-        HRD_type = _get_type_value(CFStringGetCStringPtr(str_ref,
-                                                         sys_encoding));
-        DEBUGMSGTL(("verbose:diskmgr:darwin", " type %s / %d\n",
-                    CFStringGetCStringPtr(str_ref, sys_encoding),
-                    HRD_type));
-    }
-    else {
-        str_ref = (CFStringRef)
-            CFDictionaryGetValue(desc, kDADiskDescriptionDeviceProtocolKey);
-        if (str_ref) {
-            HRD_type = 
-                _get_type_from_protocol(CFStringGetCStringPtr(str_ref,
-                                                              sys_encoding));
-            DEBUGMSGTL(("verbose:diskmgr:darwin", " type %s / %d\n",
-                        CFStringGetCStringPtr(str_ref, sys_encoding),
-                        HRD_type));
-        }
-        else
-            HRD_type = HRDISKSTORAGEMEDIA_UNKNOWN;
-    }
-
-    /** model */
-    str_ref = (CFStringRef)
-        CFDictionaryGetValue(desc, kDADiskDescriptionDeviceModelKey);
-    if (str_ref) {
-        strlcpy(HRD_model, CFStringGetCStringPtr(str_ref, sys_encoding),
-                sizeof(HRD_model));
-        DEBUGMSGTL(("verbose:diskmgr:darwin", " model %s\n", HRD_model));
-    }
-    else
-        HRD_model[0] = 0;
-    CFRelease(disk);
-    CFRelease(desc);
-    CFRelease(sess_ref);
-    result = 0;
-#endif
-
     return (result);
 }
 
@@ -1167,11 +918,6 @@ Is_It_Writeable(void)
         return (2);             /* read only */
 #endif
 
-#ifdef darwin
-    if (!HRD_access)
-        return (2);
-#endif
-
     return (1);                 /* read-write */
 }
 
@@ -1244,9 +990,6 @@ What_Type_Disk(void)
     }
 #endif
 
-#ifdef darwin
-    return HRD_type;
-#endif
 
     return (2);                 /* Unknown */
 }
@@ -1277,150 +1020,5 @@ Is_It_Removeable(void)
         return (1);             /* true */
 #endif
 
-#ifdef darwin
-    if (HRD_removeble)
-        return (1);
-#endif
-
     return (2);                 /* false */
 }
-
-#ifdef darwin
-typedef struct type_value_map_s {
-     const char *type;
-     uint32_t    value;
-} type_value_map;
-
-static type_value_map media_type_map[] = {
-    { "CD-ROM", HRDISKSTORAGEMEDIA_OPTICALDISKROM},
-    { "DVD-R", HRDISKSTORAGEMEDIA_OPTICALDISKWORM},
-    { "DVD+R", HRDISKSTORAGEMEDIA_OPTICALDISKWORM},
-};  
-static int media_types = sizeof(media_type_map)/sizeof(media_type_map[0]);
-
-static int
-_get_type_value( const char *str_type )
-{
-    int           i, len;
-    
-    if (NULL == str_type)
-        return HRDISKSTORAGEMEDIA_UNKNOWN;
-
-    len = strlen(str_type);
-    for(i=0; i < media_types; ++i) {
-        if (0 == strcmp(media_type_map[i].type, str_type))
-            return media_type_map[i].value;
-    }
-
-    return HRDISKSTORAGEMEDIA_UNKNOWN;
-}
-
-static type_value_map proto_map[] = {
-    { "ATA", HRDISKSTORAGEMEDIA_HARDDISK},
-    { "ATAPI", HRDISKSTORAGEMEDIA_OPTICALDISKROM}
-};
-static int proto_maps = sizeof(proto_map)/sizeof(proto_map[0]);
-
-static int _get_type_from_protocol( const char *prot )
-{   
-    int           i, len;
-
-    if (NULL == prot)
-        return TV_FALSE;
-
-    len = strlen(prot);
-    for(i=0; i < proto_maps; ++i) {
-        if (0 == strcmp(proto_map[i].type, prot))
-            return proto_map[i].value;
-    }
-
-    return HRDISKSTORAGEMEDIA_UNKNOWN;
-}
-#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;
-#endif
-
-static void
-Add_LVM_Disks(void)
-{
-#if defined(HAVE_REGEX_H) && defined(HAVE_REGCOMP)
-    /*
-     * LVM devices are harder because their name can be almost anything (see 
-     * regexp below). Each logical volume is interpreted as its own device with
-     * one partition, even if two logical volumes share common volume group. 
-     */
-    regex_t         lvol;
-    int             res;
-    DIR            *dir;
-    struct dirent  *d;
-
-    res =
-        regcomp(&lvol, "[0-9a-zA-Z+_\\.-]+-[0-9a-zA-Z+_\\.-]+",
-                REG_EXTENDED | REG_NOSUB);
-    if (res != 0) {
-        char            error[200];
-        regerror(res, &lvol, error, sizeof(error)-1);
-        DEBUGMSGTL(("host/hr_disk",
-                    "Add_LVM_Disks: cannot compile regexp: %s", error));
-        return;
-    }
-
-    dir = opendir("/dev/mapper/");
-    if (dir == NULL) {
-        DEBUGMSGTL(("host/hr_disk",
-                    "Add_LVM_Disks: cannot open /dev/mapper"));
-        regfree(&lvol);
-        return;
-    }
-
-    while ((d = readdir(dir)) != NULL) {
-        res = regexec(&lvol, d->d_name, 0, NULL, 0);
-        if (res == 0) {
-            char *path = (char*)malloc(PATH_MAX + 1);
-            if (path == NULL) {
-                DEBUGMSGTL(("host/hr_disk",
-                            "Add_LVM_Disks: cannot allocate memory for device %s",
-                            d->d_name));
-                break;
-            }
-            snprintf(path, PATH_MAX-1, "/dev/mapper/%s", d->d_name);
-            Add_HR_Disk_entry(path, -1, -1, 0, 0, path, 0, 0);
-
-            /*
-             * store the device name so we can free it in Remove_LVM_Disks 
-             */
-            lvm_device_names[lvm_device_count] = path;
-            ++lvm_device_count;
-            if (lvm_device_count >= MAX_NUMBER_DISK_TYPES) {
-                DEBUGMSGTL(("host/hr_disk",
-                            "Add_LVM_Disks: maximum count of LVM devices reached"));
-                break;
-            }
-        }
-    }
-    closedir(dir);
-    regfree(&lvol);
-#endif
-}
-
-static void
-Remove_LVM_Disks(void)
-{
-#if defined(HAVE_REGEX_H) && defined(HAVE_REGCOMP)
-    /*
-     * just free the device names allocated in add_lvm_disks 
-     */
-    int             i;
-    for (i = 0; i < lvm_device_count; i++) {
-        free(lvm_device_names[i]);
-        lvm_device_names[i] = NULL;
-    }
-    lvm_device_count = 0;
-#endif
-}
-#endif
diff --git a/agent/mibgroup/host/hr_disk.h b/agent/mibgroup/host/hr_disk.h
index b3c439c..eff2a67 100644
--- a/agent/mibgroup/host/hr_disk.h
+++ b/agent/mibgroup/host/hr_disk.h
@@ -8,8 +8,6 @@
 config_require(host/hr_device)
 
 extern void     init_hr_disk(void);
-extern void     shutdown_hr_disk(void);
-
 extern void     Init_HR_Disk(void);
 extern int      Get_Next_HR_Disk(void);
 extern int      Get_Next_HR_Disk_Partition(char *, size_t, int);
diff --git a/agent/mibgroup/host/hr_filesys.c b/agent/mibgroup/host/hr_filesys.c
index b23d322..404a53a 100644
--- a/agent/mibgroup/host/hr_filesys.c
+++ b/agent/mibgroup/host/hr_filesys.c
@@ -2,26 +2,14 @@
  *  Host Resources MIB - File System device group implementation - hr_filesys.c
  *
  */
-/* 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.
- */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/hardware/memory.h>
 #include "host_res.h"
 #include "hr_filesys.h"
 #include "hr_storage.h"
-#include "hr_disk.h"
 #include <net-snmp/utilities.h>
 
 #if HAVE_MNTENT_H
@@ -54,20 +42,12 @@
 #include <stdlib.h>
 #endif
 
-#if HAVE_NBUTIL_H
-#include <nbutil.h>
-#endif
-
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#if defined(aix4) || defined(aix5) || defined(aix6)
 #include <sys/mntctl.h>
 #include <sys/vmount.h>
 #include <sys/statfs.h>
 #endif
 
-netsnmp_feature_require(se_find_free_value_in_slist)
-netsnmp_feature_require(date_n_time)
-netsnmp_feature_require(ctime_to_timet)
-
 #if defined(bsdi4) || defined(freebsd3) || defined(freebsd4) || defined(freebsd5) || defined(darwin)
 #if HAVE_GETFSSTAT && defined(MFSNAMELEN)
 #define MOUNT_NFS	"nfs"
@@ -116,12 +96,6 @@ struct mnttab  *HRFS_entry = &HRFS_entry_struct;
 
 #elif defined(HAVE_STATVFS) && defined(__NetBSD__)
 
-#if !defined(MFSNAMELEN) && defined(_VFS_NAMELEN)
-#define MFSNAMELEN _VFS_NAMELEN
-#endif
-
-#define getfsstat getvfsstat
-
 static struct statvfs	*fsstats = NULL;
 struct statvfs		*HRFS_entry;
 static int		fscount;
@@ -129,16 +103,6 @@ static int		fscount;
 #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;
@@ -167,7 +131,7 @@ static int		fscount;
 #define HRFS_statfs	win_statfs
 #define	HRFS_type	f_type
 
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
 
 struct vmount *aixmnt, *aixcurr;
 struct HRFS_entry {
@@ -225,24 +189,15 @@ int             header_hrfilesys(struct variable *, oid *, size_t *, int,
 #define HRFSYS_PARTDUMP		9
 
 struct variable4 hrfsys_variables[] = {
-    {HRFSYS_INDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrfilesys, 2, {1, 1}},
-    {HRFSYS_MOUNT, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrfilesys, 2, {1, 2}},
-    {HRFSYS_RMOUNT, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrfilesys, 2, {1, 3}},
-    {HRFSYS_TYPE, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_hrfilesys, 2, {1, 4}},
-    {HRFSYS_ACCESS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrfilesys, 2, {1, 5}},
-    {HRFSYS_BOOT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrfilesys, 2, {1, 6}},
-    {HRFSYS_STOREIDX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrfilesys, 2, {1, 7}},
-    {HRFSYS_FULLDUMP, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrfilesys, 2, {1, 8}},
-    {HRFSYS_PARTDUMP, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrfilesys, 2, {1, 9}},
+    {HRFSYS_INDEX, ASN_INTEGER, RONLY, var_hrfilesys, 2, {1, 1}},
+    {HRFSYS_MOUNT, ASN_OCTET_STR, RONLY, var_hrfilesys, 2, {1, 2}},
+    {HRFSYS_RMOUNT, ASN_OCTET_STR, RONLY, var_hrfilesys, 2, {1, 3}},
+    {HRFSYS_TYPE, ASN_OBJECT_ID, RONLY, var_hrfilesys, 2, {1, 4}},
+    {HRFSYS_ACCESS, ASN_INTEGER, RONLY, var_hrfilesys, 2, {1, 5}},
+    {HRFSYS_BOOT, ASN_INTEGER, RONLY, var_hrfilesys, 2, {1, 6}},
+    {HRFSYS_STOREIDX, ASN_INTEGER, RONLY, var_hrfilesys, 2, {1, 7}},
+    {HRFSYS_FULLDUMP, ASN_OCTET_STR, RONLY, var_hrfilesys, 2, {1, 8}},
+    {HRFSYS_PARTDUMP, ASN_OCTET_STR, RONLY, var_hrfilesys, 2, {1, 9}},
 };
 oid             hrfsys_variables_oid[] = { 1, 3, 6, 1, 2, 1, 25, 3, 8 };
 
@@ -251,7 +206,7 @@ init_hr_filesys(void)
 {
     REGISTER_MIB("host/hr_filesys", hrfsys_variables, variable4,
                  hrfsys_variables_oid);
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#if defined(aix4) || defined(aix5) || defined(aix6) 
     /* something leaks, make it idiot-safe */
     aixmnt = NULL;
     aixcurr = NULL;
@@ -318,7 +273,7 @@ header_hrfilesys(struct variable *vp,
     memcpy((char *) name, (char *) newname,
            (vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
 
     DEBUGMSGTL(("host/hr_filesys", "... get filesys stats "));
@@ -361,13 +316,15 @@ var_hrfilesys(struct variable *vp,
         long_return = fsys_idx;
         return (u_char *) & long_return;
     case HRFSYS_MOUNT:
-        strlcpy(string, HRFS_entry->HRFS_mount, sizeof(string));
+        snprintf(string, sizeof(string), HRFS_entry->HRFS_mount);
+        string[ sizeof(string)-1 ] = 0;
         *var_len = strlen(string);
         return (u_char *) string;
     case HRFSYS_RMOUNT:
-        if (Check_HR_FileSys_NFS())
-            strlcpy(string, HRFS_entry->HRFS_name, sizeof(string));
-        else
+        if (Check_HR_FileSys_NFS()) {
+            snprintf(string, sizeof(string), HRFS_entry->HRFS_name);
+            string[ sizeof(string)-1 ] = 0;
+        } else
             string[0] = '\0';
         *var_len = strlen(string);
         return (u_char *) string;
@@ -444,7 +401,7 @@ var_hrfilesys(struct variable *vp,
             break;
 #endif
         }
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
         switch (HRFS_entry->HRFS_type) {
         case MNT_AIX:
         case MNT_JFS:
@@ -565,14 +522,10 @@ var_hrfilesys(struct variable *vp,
 #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) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
         long_return = (HRFS_entry->HRFS_flags & MNT_READONLY) == 0 ? 1 : 2;
 #else
 #if HAVE_HASMNTOPT
@@ -635,7 +588,7 @@ Init_HR_FileSys(void)
     getfsstat(fsstats, fscount * sizeof(*fsstats), MNT_NOWAIT);
 #endif
     HRFS_index = 0;
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
     int ret;
     uint size;
     ret = 0;
@@ -664,7 +617,9 @@ Init_HR_FileSys(void)
         fclose(fp);
     fp = fopen(ETC_MNTTAB, "r");
     if (!fp) {
-      netsnmp_config_error("Can't open mnttab %s\n", ETC_MNTTAB);
+      char tmpbuf[STRINGMAX];
+      snprintf( tmpbuf, sizeof(tmpbuf), "Can't open mnttab %s\n", ETC_MNTTAB );
+      config_perror(tmpbuf);
     }
 #endif
 }
@@ -719,7 +674,7 @@ const char     *HRFS_ignores[] = {
     "proc",
     "fd",
 #endif
-    NULL
+    0
 };
 
 int
@@ -730,7 +685,7 @@ Get_Next_HR_FileSys(void)
         return -1;
     HRFS_entry = fsstats + HRFS_index;
     return ++HRFS_index;
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
     if(aixcurr == NULL) {
         if(aixmnt != NULL) free(aixmnt);
         aixmnt = NULL;
@@ -770,9 +725,13 @@ Get_Next_HR_FileSys(void)
         return -1;
 #endif                          /* solaris2 */
 
+    DEBUGMSGTL(("host/hr_filesys", "Get_Next_HRFS %s\n", HRFS_entry->HRFS_name));
+
     for (cpp = HRFS_ignores; *cpp != NULL; ++cpp)
-        if (!strcmp(HRFS_entry->HRFS_type, *cpp))
+        if (!strcmp(HRFS_entry->HRFS_type, *cpp)) {
+            DEBUGMSGTL(("host/hr_filesys", "Get_Next_HRFS: skipping %s (%s)\n", HRFS_entry->HRFS_type, cpp));
             return Get_Next_HR_FileSys();
+        }
 
     /*
      * Try and ensure that index values are persistent
@@ -802,7 +761,7 @@ Check_HR_FileSys_NFS (void)
 #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) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
     if(HRFS_entry->HRFS_type == MNT_NFS || HRFS_entry->HRFS_type == MNT_NFS3)
 #else /* HAVE_GETFSSTAT */
     if ( HRFS_entry->HRFS_type != NULL && (
@@ -846,7 +805,7 @@ End_HR_FileSys(void)
     if (fsstats)
         free((char *) fsstats);
     fsstats = NULL;
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
     if(aixmnt != NULL) {
         free(aixmnt);
         aixmnt = NULL;
@@ -903,13 +862,13 @@ when_dumped(char *filesys, int level, size_t * length)
                 continue;
 
             ++cp2;
-            while (isspace(*cp2 & 0xFF))
+            while (isspace(*cp2))
                 ++cp2;          /* Now find the dump level */
 
             if (level == FULL_DUMP) {
                 if (*(cp2++) != '0')
                     continue;   /* Not interested in partial dumps */
-                while (isspace(*cp2 & 0xFF))
+                while (isspace(*cp2))
                     ++cp2;
 
                 dumpdate = ctime_to_timet(cp2);
@@ -918,7 +877,7 @@ when_dumped(char *filesys, int level, size_t * length)
             } else {            /* Partial Dump */
                 if (*(cp2++) == '0')
                     continue;   /* Not interested in full dumps */
-                while (isspace(*cp2 & 0xFF))
+                while (isspace(*cp2))
                     ++cp2;
 
                 tmp = ctime_to_timet(cp2);
@@ -943,14 +902,17 @@ cook_device(char *dev)
     static char     cooked_dev[SNMP_MAXPATH+1];
 
     if (!strncmp(dev, RAW_DEVICE_PREFIX, strlen(RAW_DEVICE_PREFIX))) {
-        strlcpy(cooked_dev, COOKED_DEVICE_PREFIX, sizeof(cooked_dev));
-        strlcat(cooked_dev, dev + strlen(RAW_DEVICE_PREFIX),
-                sizeof(cooked_dev));
+        strncpy(cooked_dev, COOKED_DEVICE_PREFIX, sizeof(cooked_dev)-1);
+        cooked_dev[ sizeof(cooked_dev)-1 ] = 0;
+        strncat(cooked_dev, dev + strlen(RAW_DEVICE_PREFIX),
+                sizeof(cooked_dev)-strlen(cooked_dev)-1);
+        cooked_dev[ sizeof(cooked_dev)-1 ] = 0;
     } else {
-        strlcpy(cooked_dev, dev, sizeof(cooked_dev));
+        strncpy(cooked_dev, dev, sizeof(cooked_dev)-1);
+        cooked_dev[ sizeof(cooked_dev)-1 ] = 0;
     }
 
-    return cooked_dev;
+    return (cooked_dev);
 }
 
 
@@ -992,7 +954,7 @@ Get_FSSize(char *dev)
   		 * in case of 512 (f_blocks/2) is returned
   		 * otherwise (f_blocks*(f_bsize/1024)) is returned
   		 */
-#if defined(solaris2) && defined(HAVE_STRUCT_STATVFS_F_FRSIZE)
+#if defined(solaris2) && defined(STRUCT_STATVFS_HAS_F_FRSIZE)
                 return (statfs_buf.f_blocks*(statfs_buf.f_frsize/1024));
 #else
   		if (statfs_buf.f_bsize == 512)
diff --git a/agent/mibgroup/host/hr_network.c b/agent/mibgroup/host/hr_network.c
index 6cce58c..6d267e6 100644
--- a/agent/mibgroup/host/hr_network.c
+++ b/agent/mibgroup/host/hr_network.c
@@ -4,7 +4,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/data_access/interface.h>
@@ -23,9 +22,6 @@
 #include "mibII/interfaces.h"
 #include "hr_network.h"
 
-#if !defined( solaris2 )
-netsnmp_feature_require(interface_legacy)
-#endif /* !solaris2 */
 
         /*********************
 	 *
@@ -55,8 +51,7 @@ int             header_hrnet(struct variable *, oid *, size_t *, int,
 #define	HRNET_IFINDEX		1
 
 struct variable4 hrnet_variables[] = {
-    {HRNET_IFINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrnet, 2, {1, 1}}
+    {HRNET_IFINDEX, ASN_INTEGER, RONLY, var_hrnet, 2, {1, 1}}
 };
 oid             hrnet_variables_oid[] = { 1, 3, 6, 1, 2, 1, 25, 3, 4 };
 
@@ -141,7 +136,7 @@ header_hrnet(struct variable *vp,
     memcpy((char *) name, (char *) newname,
            (vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
 
     DEBUGMSGTL(("host/hr_network", "... get net stats "));
@@ -193,21 +188,17 @@ var_hrnet(struct variable * vp,
 #if defined( USING_IF_MIB_IFTABLE_IFTABLE_DATA_ACCESS_MODULE )
 static char     HRN_name[16];
 static netsnmp_interface_entry *HRN_ifnet;
-#define M_Interface_Scan_Next(a, b, c, d)	Interface_Scan_NextInt(a, b, c, d)
+#define M_Interface_Scan_Next(a, b, c, d)	Interface_Scan_Next(a, b, c, d)
 #elif defined(hpux11)
 static char     HRN_name[MAX_PHYSADDR_LEN];
 static nmapi_phystat HRN_ifnet;
-#define M_Interface_Scan_Next(a, b, c, d)	Interface_Scan_NextInt(a, b, c)
-#elif defined darwin
-static char     HRN_name[IFNAMSIZ];
-static struct if_msghdr HRN_ifnet;
-#define M_Interface_Scan_Next(a, b, c, d)	Interface_Scan_NextInt(a, b, c, d)
+#define M_Interface_Scan_Next(a, b, c, d)	Interface_Scan_Next(a, b, c)
 #else                           /* hpux11 */
 static char     HRN_name[16];
 #ifndef WIN32
 static struct ifnet HRN_ifnet;
 #endif /* WIN32 */
-#define M_Interface_Scan_Next(a, b, c, d)	Interface_Scan_NextInt(a, b, c, d)
+#define M_Interface_Scan_Next(a, b, c, d)	Interface_Scan_Next(a, b, c, d)
 #endif
 
 #ifdef hpux11
@@ -230,8 +221,8 @@ Init_HR_Network(void)
 int
 Get_Next_HR_Network(void)
 {
-int      HRN_index;
-#if !(defined(solaris2) || defined(darwin) || defined(WIN32))
+short    HRN_index;
+#if !defined( solaris2) && ! defined( WIN32 )
     if (M_Interface_Scan_Next(&HRN_index, HRN_name, &HRN_ifnet, NULL) == 0)
         HRN_index = -1;
 #else
@@ -240,17 +231,6 @@ int      HRN_index;
     if (-1 == HRN_index)
         return HRN_index;
 
-    /*
-     * If the index is greater than the shift registry space,
-     * this will overrun into the next device type block,
-     * potentially resulting in duplicate index values
-     * which may cause the agent to crash.
-     *   To avoid this, we silently drop interfaces greater
-     * than the shift registry size can handle.
-     */
-    if (HRN_index > (1 << HRDEV_TYPE_SHIFT ))
-        return -1;
-
     return (HRDEV_NETWORK << HRDEV_TYPE_SHIFT) + HRN_index;
 }
 
@@ -259,20 +239,18 @@ Save_HR_Network_Info(void)
 {
     strcpy(HRN_savedName, HRN_name);
 #if defined( USING_IF_MIB_IFTABLE_IFTABLE_DATA_ACCESS_MODULE )
-    HRN_savedFlags  = HRN_ifnet->os_flags;
+    HRN_savedFlags = HRN_ifnet->os_flags;
     HRN_savedErrors = HRN_ifnet->stats.ierrors + HRN_ifnet->stats.oerrors;
 #elif defined( hpux11 )
-    HRN_savedFlags  = HRN_ifnet.if_entry.ifOper;
+    HRN_savedFlags = HRN_ifnet.if_entry.ifOper;
     HRN_savedErrors = HRN_ifnet.if_entry.ifInErrors +
-                      HRN_ifnet.if_entry.ifOutErrors;
-#elif defined(__APPLE__)       /* or darwin? */
-    HRN_savedFlags  = HRN_ifnet.ifm_flags;
-    HRN_savedErrors = HRN_ifnet.ifm_data.ifi_ierrors +
-                      HRN_ifnet.ifm_data.ifi_oerrors;
-#elif !defined(WIN32)
+        HRN_ifnet.if_entry.ifOutErrors;
+#else                           /* hpux11 */
+#ifndef WIN32
     HRN_savedFlags = HRN_ifnet.if_flags;
     HRN_savedErrors = HRN_ifnet.if_ierrors + HRN_ifnet.if_oerrors;
-#endif
+#endif /* WIN32 */
+#endif                          /* hpux11 */
 }
 
 
diff --git a/agent/mibgroup/host/hr_partition.c b/agent/mibgroup/host/hr_partition.c
index abe7692..ae0bd8e 100644
--- a/agent/mibgroup/host/hr_partition.c
+++ b/agent/mibgroup/host/hr_partition.c
@@ -1,17 +1,8 @@
+
 /*
  *  Host Resources MIB - partition device group implementation - hr_partition.c
  *
  */
-/* 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.
- */
 
 #include <net-snmp/net-snmp-config.h>
 #include <fcntl.h>
@@ -44,9 +35,6 @@
 static int      HRP_savedDiskIndex;
 static int      HRP_savedPartIndex;
 static char     HRP_savedName[1024];
-#ifdef NETSNMP_CAN_GET_DISK_LABEL
-static char     HRP_savedLabel[1024];
-#endif
 
 static int      HRP_DiskIndex;
 
@@ -72,16 +60,11 @@ int             header_hrpartition(struct variable *, oid *, size_t *, int,
 #define	HRPART_FSIDX		5
 
 struct variable4 hrpartition_variables[] = {
-    {HRPART_INDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrpartition, 2, {1, 1}},
-    {HRPART_LABEL, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrpartition, 2, {1, 2}},
-    {HRPART_ID, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrpartition, 2, {1, 3}},
-    {HRPART_SIZE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrpartition, 2, {1, 4}},
-    {HRPART_FSIDX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrpartition, 2, {1, 5}}
+    {HRPART_INDEX, ASN_INTEGER, RONLY, var_hrpartition, 2, {1, 1}},
+    {HRPART_LABEL, ASN_OCTET_STR, RONLY, var_hrpartition, 2, {1, 2}},
+    {HRPART_ID, ASN_OCTET_STR, RONLY, var_hrpartition, 2, {1, 3}},
+    {HRPART_SIZE, ASN_INTEGER, RONLY, var_hrpartition, 2, {1, 4}},
+    {HRPART_FSIDX, ASN_INTEGER, RONLY, var_hrpartition, 2, {1, 5}}
 };
 oid             hrpartition_variables_oid[] =
     { 1, 3, 6, 1, 2, 1, 25, 3, 7 };
@@ -152,7 +135,6 @@ header_hrpartition(struct variable *vp,
             (name[HRPART_DISK_NAME_LENGTH] &
              ((1 << HRDEV_TYPE_SHIFT) - 1));
 
-        DEBUGMSGTL(("host/hr_partition", "... low index %d\n", LowDiskIndex));
         while (HRP_DiskIndex < LowDiskIndex) {
             Init_HR_Partition();        /* moves to next disk */
             if (HRP_DiskIndex == -1)
@@ -162,7 +144,6 @@ header_hrpartition(struct variable *vp,
 
     for (;;) {
         part_idx = Get_Next_HR_Partition();
-        DEBUGMSGTL(("host/hr_partition", "... part index %d\n", part_idx));
         if (part_idx == 0)
             break;
         newname[HRPART_DISK_NAME_LENGTH] =
@@ -204,7 +185,7 @@ header_hrpartition(struct variable *vp,
     memcpy((char *) name, (char *) newname,
            ((int) vp->namelen + 2) * sizeof(oid));
     *length = vp->namelen + 2;
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
 
     DEBUGMSGTL(("host/hr_partition", "... get partition stats "));
@@ -244,13 +225,8 @@ var_hrpartition(struct variable * vp,
         long_return = part_idx;
         return (u_char *) & long_return;
     case HRPART_LABEL:
-#ifdef NETSNMP_CAN_GET_DISK_LABEL
-        *var_len = strlen(HRP_savedLabel);
-        return (u_char *) HRP_savedLabel;
-#else
         *var_len = strlen(HRP_savedName);
         return (u_char *) HRP_savedName;
-#endif
     case HRPART_ID:            /* Use the device number */
         sprintf(string, "0x%x", (int) stat_buf.st_rdev);
         *var_len = strlen(string);
@@ -283,11 +259,9 @@ static int      HRP_index;
 static void
 Init_HR_Partition(void)
 {
-    DEBUGMSGTL(("host/hr_partition", "Init_HR_Partition\n"));
     HRP_DiskIndex = Get_Next_HR_Disk();
     if (HRP_DiskIndex != -1)
         HRP_DiskIndex &= ((1 << HRDEV_TYPE_SHIFT) - 1);
-    DEBUGMSGTL(("host/hr_partition", "...  %d\n",HRP_DiskIndex));
 
     HRP_index = -1;
 }
@@ -298,7 +272,6 @@ Get_Next_HR_Partition(void)
     char            string[1024];
     int             fd;
 
-    DEBUGMSGTL(("host/hr_partition", "Get_Next_HR_Partition %d\n",HRP_DiskIndex));
     if (HRP_DiskIndex == -1) {
         return 0;
     }
@@ -336,7 +309,4 @@ Save_HR_Partition(int disk_idx, int part_idx)
     HRP_savedDiskIndex = disk_idx;
     HRP_savedPartIndex = part_idx;
     (void) Get_Next_HR_Disk_Partition(HRP_savedName, sizeof(HRP_savedName), HRP_index);
-#ifdef NETSNMP_CAN_GET_DISK_LABEL
-    (void) Get_HR_Disk_Label(HRP_savedLabel, sizeof(HRP_savedLabel), HRP_savedName);
-#endif
 }
diff --git a/agent/mibgroup/host/hr_print.c b/agent/mibgroup/host/hr_print.c
index e7660ff..488b55a 100644
--- a/agent/mibgroup/host/hr_print.c
+++ b/agent/mibgroup/host/hr_print.c
@@ -48,10 +48,8 @@ FILE           *run_lpstat(int *);
 #define	HRPRINT_ERROR		2
 
 struct variable4 hrprint_variables[] = {
-    {HRPRINT_STATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrprint, 2, {1, 1}},
-    {HRPRINT_ERROR, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrprint, 2, {1, 2}}
+    {HRPRINT_STATUS, ASN_INTEGER, RONLY, var_hrprint, 2, {1, 1}},
+    {HRPRINT_ERROR, ASN_OCTET_STR, RONLY, var_hrprint, 2, {1, 2}}
 };
 oid             hrprint_variables_oid[] = { 1, 3, 6, 1, 2, 1, 25, 3, 5 };
 
@@ -141,7 +139,7 @@ header_hrprint(struct variable *vp,
     memcpy((char *) name, (char *) newname,
            (vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
 
     DEBUGMSGTL(("host/hr_print", "... get print stats "));
@@ -179,10 +177,9 @@ var_hrprint(struct variable * vp,
     case HRPRINT_ERROR:
 #if NETSNMP_NO_DUMMY_VALUES
         return NULL;
-#else
+#endif
         long_return = 0;        /* Null string */
         return (u_char *) & long_return;
-#endif
     default:
         DEBUGMSGTL(("host/hr_print", "unknown sub-id %d in var_hrprint\n",
                     vp->magic));
diff --git a/agent/mibgroup/host/hr_print.h b/agent/mibgroup/host/hr_print.h
index 7acee8d..23ca143 100644
--- a/agent/mibgroup/host/hr_print.h
+++ b/agent/mibgroup/host/hr_print.h
@@ -6,7 +6,6 @@
 #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_proc.c b/agent/mibgroup/host/hr_proc.c
index 6f93079..ad4e546 100644
--- a/agent/mibgroup/host/hr_proc.c
+++ b/agent/mibgroup/host/hr_proc.c
@@ -51,10 +51,8 @@ netsnmp_cpu_info *HRP_cpu;
 #define	HRPROC_LOAD		2
 
 struct variable4 hrproc_variables[] = {
-    {HRPROC_ID, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_hrproc, 2, {1, 1}},
-    {HRPROC_LOAD, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrproc, 2, {1, 2}}
+    {HRPROC_ID, ASN_OBJECT_ID, RONLY, var_hrproc, 2, {1, 1}},
+    {HRPROC_LOAD, ASN_INTEGER, RONLY, var_hrproc, 2, {1, 2}}
 };
 oid             hrproc_variables_oid[] = { 1, 3, 6, 1, 2, 1, 25, 3, 3 };
 
@@ -140,7 +138,7 @@ header_hrproc(struct variable *vp,
     memcpy((char *) name, (char *) newname,
            (vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
 
     DEBUGMSGTL(("host/hr_proc", "... get proc stats "));
@@ -164,7 +162,6 @@ var_hrproc(struct variable * vp,
            int exact, size_t * var_len, WriteMethod ** write_method)
 {
     int             proc_idx;
-    unsigned long long value;
     netsnmp_cpu_info *cpu;
 
     proc_idx =
@@ -182,9 +179,12 @@ var_hrproc(struct variable * vp,
            ( cpu->history[0].total_hist == cpu->total_ticks ))
             return NULL;
 
-        value = (cpu->idle_ticks  - cpu->history[0].idle_hist)*100;
-        value /= (cpu->total_ticks - cpu->history[0].total_hist);
-        long_return = 100 - value;
+        long_return  = (cpu->idle_ticks  - cpu->history[0].idle_hist)*100;
+        if (cpu->total_ticks > cpu->history[0].total_hist) /* avoid div. by 0 */
+            long_return /= (cpu->total_ticks - cpu->history[0].total_hist);
+        else
+            long_return = 0; 
+        long_return  = 100 - long_return;
         if (long_return < 0)
             long_return = 0;
         return (u_char *) & long_return;
diff --git a/agent/mibgroup/host/hr_storage.c b/agent/mibgroup/host/hr_storage.c
index 264fecc..d4716a7 100644
--- a/agent/mibgroup/host/hr_storage.c
+++ b/agent/mibgroup/host/hr_storage.c
@@ -8,7 +8,7 @@
 #if defined(freebsd5)
 /* undefine these in order to use getfsstat */
 #undef HAVE_STATVFS
-#undef HAVE_STRUCT_STATVFS_F_FRSIZE
+#undef STRUCT_STATVFS_HAS_F_FRSIZE
 #endif
 
 #include <sys/types.h>
@@ -19,7 +19,13 @@
 #include <unistd.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <windows.h>
+#  include <errno.h>
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -106,10 +112,7 @@
 #endif                          /* if HAVE_SYS_SYSCTL_H */
 #endif                          /* ifndef dynix */
 
-#if (defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)) && HAVE_LIBPERFSTAT_H
-#ifdef HAVE_SYS_PROTOSW_H
-#include <sys/protosw.h>
-#endif
+#if (defined(aix4) || defined(aix5) || defined(aix6)) && HAVE_LIBPERFSTAT_H
 #include <libperfstat.h>
 #endif
 
@@ -157,9 +160,6 @@
 #else
 #include <strings.h>
 #endif
-#if HAVE_NBUTIL_H
-#include <nbutil.h>
-#endif
 
 #include <net-snmp/utilities.h>
 #include <net-snmp/output_api.h>
@@ -189,7 +189,7 @@
 extern struct mnttab *HRFS_entry;
 #define HRFS_mount	mnt_mountp
 #define HRFS_statfs	statvfs
-#define HRFS_HAS_FRSIZE HAVE_STRUCT_STATVFS_F_FRSIZE
+#define HRFS_HAS_FRSIZE STRUCT_STATVFS_HAS_F_FRSIZE
 
 #elif defined(WIN32)
 /* fake block size */
@@ -205,22 +205,14 @@ extern struct statvfs *HRFS_entry;
 extern int      fscount;
 #define HRFS_statfs	statvfs
 #define HRFS_mount	f_mntonname
-#define HRFS_HAS_FRSIZE HAVE_STRUCT_STATVFS_F_FRSIZE
+#define HRFS_HAS_FRSIZE STRUCT_STATVFS_HAS_F_FRSIZE
 
-#elif defined(HAVE_STATVFS)  && defined(HAVE_STRUCT_STATVFS_MNT_DIR)
+#elif defined(HAVE_STATVFS)  && defined(STRUCT_STATVFS_HAS_MNT_DIR)
 
 extern struct mntent *HRFS_entry;
 extern int      fscount;
 #define HRFS_statfs	statvfs
 #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)
@@ -229,14 +221,14 @@ extern struct statfs *HRFS_entry;
 extern int      fscount;
 #define HRFS_statfs	statfs
 #define HRFS_mount	f_mntonname
-#define HRFS_HAS_FRSIZE HAVE_STRUCT_STATFS_F_FRSIZE
+#define HRFS_HAS_FRSIZE STRUCT_STATFS_HAS_F_FRSIZE
 
 #else
 
 extern struct mntent *HRFS_entry;
 #define HRFS_mount	mnt_dir
 #define HRFS_statfs	statfs
-#define HRFS_HAS_FRSIZE HAVE_STRUCT_STATFS_F_FRSIZE
+#define HRFS_HAS_FRSIZE STRUCT_STATFS_HAS_F_FRSIZE
 
 #endif
 	
@@ -257,7 +249,6 @@ int             header_hrstore(struct variable *, oid *, size_t *, int,
                                size_t *, WriteMethod **);
 void*           header_hrstoreEntry(struct variable *, oid *, size_t *,
                                     int, size_t *, WriteMethod **);
-Netsnmp_Node_Handler handle_memsize;
 
 #ifdef solaris2
 void            sol_get_swapinfo(int *, int *);
@@ -272,25 +263,17 @@ void            sol_get_swapinfo(int *, int *);
 #define	HRSTORE_USED		7
 #define	HRSTORE_FAILS		8
 
-struct variable2 hrstore_variables[] = {
-    {HRSTORE_INDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {1}},
-    {HRSTORE_TYPE, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {2}},
-    {HRSTORE_DESCR, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {3}},
-    {HRSTORE_UNITS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {4}},
-    {HRSTORE_SIZE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {5}},
-    {HRSTORE_USED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {6}},
-    {HRSTORE_FAILS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {7}}
+struct variable4 hrstore_variables[] = {
+    {HRSTORE_MEMSIZE, ASN_INTEGER, RONLY, var_hrstore, 1, {2}},
+    {HRSTORE_INDEX, ASN_INTEGER, RONLY, var_hrstore, 3, {3, 1, 1}},
+    {HRSTORE_TYPE, ASN_OBJECT_ID, RONLY, var_hrstore, 3, {3, 1, 2}},
+    {HRSTORE_DESCR, ASN_OCTET_STR, RONLY, var_hrstore, 3, {3, 1, 3}},
+    {HRSTORE_UNITS, ASN_INTEGER, RONLY, var_hrstore, 3, {3, 1, 4}},
+    {HRSTORE_SIZE, ASN_INTEGER, RONLY, var_hrstore, 3, {3, 1, 5}},
+    {HRSTORE_USED, ASN_INTEGER, RONLY, var_hrstore, 3, {3, 1, 6}},
+    {HRSTORE_FAILS, ASN_COUNTER, RONLY, var_hrstore, 3, {3, 1, 7}}
 };
 oid             hrstore_variables_oid[] = { 1, 3, 6, 1, 2, 1, 25, 2 };
-oid             hrMemorySize_oid[]   = { 1, 3, 6, 1, 2, 1, 25, 2, 2 };
-oid             hrStorageTable_oid[] = { 1, 3, 6, 1, 2, 1, 25, 2, 3, 1 };
 
 
 void
@@ -298,12 +281,8 @@ init_hr_storage(void)
 {
     char *appname;
 
-    netsnmp_register_scalar(
-        netsnmp_create_handler_registration("host/hrMemorySize", handle_memsize,
-                           hrMemorySize_oid, OID_LENGTH(hrMemorySize_oid),
-                                             HANDLER_CAN_RONLY));
-    REGISTER_MIB("host/hr_storage", hrstore_variables, variable2,
-                 hrStorageTable_oid);
+    REGISTER_MIB("host/hr_storage", hrstore_variables, variable4,
+                 hrstore_variables_oid);
 
     appname = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
                                     NETSNMP_DS_LIB_APPTYPE);
@@ -338,7 +317,7 @@ parse_storage_config(const char *token, char *cptr)
 }
 
 /*
- * header_hrstoreEntry(...
+ * header_hrstore(...
  * Arguments:
  * vp     IN      - pointer to variable entry that points here
  * name    IN/OUT  - IN/name requested, OUT/name found
@@ -349,6 +328,34 @@ parse_storage_config(const char *token, char *cptr)
  * 
  */
 
+int
+header_hrstore(struct variable *vp,
+               oid * name,
+               size_t * length,
+               int exact, size_t * var_len, WriteMethod ** write_method)
+{
+#define HRSTORE_NAME_LENGTH	9
+    oid             newname[MAX_OID_LEN];
+    int             result;
+
+    DEBUGMSGTL(("host/hr_storage", "var_hrstore: "));
+    DEBUGMSGOID(("host/hr_storage", name, *length));
+    DEBUGMSG(("host/hr_storage", " %d\n", exact));
+
+    memcpy((char *) newname, (char *) vp->name, vp->namelen * sizeof(oid));
+    newname[HRSTORE_NAME_LENGTH] = 0;
+    result = snmp_oid_compare(name, *length, newname, vp->namelen + 1);
+    if ((exact && (result != 0)) || (!exact && (result >= 0)))
+        return (MATCH_FAILED);
+    memcpy((char *) name, (char *) newname,
+           (vp->namelen + 1) * sizeof(oid));
+    *length = vp->namelen + 1;
+
+    *write_method = 0;
+    *var_len = sizeof(long);    /* default to 'long' results */
+    return (MATCH_SUCCEEDED);
+}
+
 void *
 header_hrstoreEntry(struct variable *vp,
                     oid * name,
@@ -460,7 +467,7 @@ header_hrstoreEntry(struct variable *vp,
         }
     }
 
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
 
     /*
@@ -468,7 +475,7 @@ header_hrstoreEntry(struct variable *vp,
      */
     DEBUGMSGTL(("host/hr_storage", "var_hrstoreEntry: process "));
     DEBUGMSGOID(("host/hr_storage", name, *length));
-    DEBUGMSG(("host/hr_storage", " (%p)\n", mem));
+    DEBUGMSG(("host/hr_storage", " (%x)\n", mem));
     return (void*)mem;
 }
 
@@ -482,47 +489,13 @@ int             storage_type_len =
 	 *
 	 *********************/
 
-int
-handle_memsize(netsnmp_mib_handler *handler,
-                netsnmp_handler_registration *reginfo,
-                netsnmp_agent_request_info *reqinfo,
-                netsnmp_request_info *requests)
-{
-    netsnmp_memory_info *mem_info;
-    int val;
-
-    /*
-     * We just need to handle valid GET requests, as invalid instances
-     *   are rejected automatically, and (valid) GETNEXT requests are
-     *   converted into the appropriate GET request.
-     *
-     * We also only ever receive one request at a time.
-     */
-    switch (reqinfo->mode) {
-    case MODE_GET:
-        netsnmp_memory_load();
-        mem_info = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_PHYSMEM, 0 );
-        if ( !mem_info || mem_info->size == -1 || mem_info->units == -1 )
-            netsnmp_set_request_error( reqinfo, requests, SNMP_NOSUCHOBJECT );
-	else {
-            val  =  mem_info->size;     /* memtotal */
-            val *= (mem_info->units/1024);
-            snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER,
-                                     (u_char *)&val, sizeof(val));
-        }
-        return SNMP_ERR_NOERROR;
-
-    default:
-        /*
-         * we should never get here, so this is a really bad error 
-         */
-        snmp_log(LOG_ERR, "unknown mode (%d) in handle_memsize\n",
-                 reqinfo->mode);
-        return SNMP_ERR_GENERR;
-    }
+static const char *hrs_descr[] = {
+    NULL,
+    "Memory Buffers",           /* HRS_TYPE_MBUF */
+    "Real Memory",              /* HRS_TYPE_MEM */
+    "Swap Space"                /* HRS_TYPE_SWAP */
+};
 
-    return SNMP_ERR_NOERROR;
-}
 
 
 u_char         *
@@ -537,6 +510,12 @@ var_hrstore(struct variable *vp,
     void                *ptr;
     netsnmp_memory_info *mem = NULL;
 
+    if (vp->magic == HRSTORE_MEMSIZE) {
+        if (header_hrstore(vp, name, length, exact, var_len, write_method)
+            == MATCH_FAILED)
+            return NULL;
+    } else {
+
 really_try_next:
 	ptr = header_hrstoreEntry(vp, name, length, exact, var_len,
 					write_method);
@@ -544,11 +523,13 @@ really_try_next:
 	    return NULL;
 
         store_idx = name[ HRSTORE_ENTRY_NAME_LENGTH ];
+        if (HRFS_entry &&
+	    store_idx > NETSNMP_MEM_TYPE_MAX &&
+            netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
+                                   NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES) &&
+            Check_HR_FileSys_NFS())
+            return NULL;
         if (store_idx > NETSNMP_MEM_TYPE_MAX ) {
-            if ( netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
-                                        NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES) &&
-                 Check_HR_FileSys_NFS())
-                return NULL;  /* or goto try_next; */
 	    if (HRFS_statfs(HRFS_entry->HRFS_mount, &stat_buf) < 0) {
 		snmp_log_perror(HRFS_entry->HRFS_mount);
 		goto try_next;
@@ -556,10 +537,19 @@ really_try_next:
 	} else {
 	    mem = (netsnmp_memory_info*)ptr;
         }
+    }
 
 
 
     switch (vp->magic) {
+    case HRSTORE_MEMSIZE:
+        netsnmp_memory_load();
+        mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_PHYSMEM, 0 );
+        if ( !mem || mem->size == -1 || mem->units == -1 )
+	    return NULL;
+	long_return = mem->size * (mem->units / 1024);
+        return (u_char *) & long_return;
+
     case HRSTORE_INDEX:
         long_return = store_idx;
         return (u_char *) & long_return;
@@ -567,7 +557,7 @@ really_try_next:
         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) || defined(aix7))
+#if HAVE_HASMNTOPT && !(defined(aix4) || defined(aix5) || defined(aix6))
             /* 
              * hasmntopt takes "const struct mntent*", but HRFS_entry has been
              * defined differently for AIX, so skip this for AIX
@@ -595,7 +585,8 @@ really_try_next:
         return (u_char *) storage_type_id;
     case HRSTORE_DESCR:
         if (store_idx > NETSNMP_MEM_TYPE_MAX) {
-            strlcpy(string, HRFS_entry->HRFS_mount, sizeof(string));
+            strncpy(string, HRFS_entry->HRFS_mount, sizeof(string)-1);
+            string[ sizeof(string)-1 ] = 0;
             *var_len = strlen(string);
             return (u_char *) string;
         } else {
@@ -668,6 +659,7 @@ really_try_next:
 	 *
 	 *********************/
 
+static int      FS_storage;
 static int      HRS_index;
 
 void
diff --git a/agent/mibgroup/host/hr_storage.h b/agent/mibgroup/host/hr_storage.h
index 2007c32..ffa1f52 100644
--- a/agent/mibgroup/host/hr_storage.h
+++ b/agent/mibgroup/host/hr_storage.h
@@ -1,12 +1,12 @@
 /*
- *  Host Resources MIB - storage group interface - hr_storage.h
+ *  Host Resources MIB - storage group interface - hr_system.h
  *
  */
 #ifndef _MIBGROUP_HRSTORAGE_H
 #define _MIBGROUP_HRSTORAGE_H
 
 config_require(hardware/memory)
-/* config_require(host/hr_filesys) */
+config_require(host/hr_filesys)
 
 extern void     init_hr_storage(void);
 extern FindVarMethod var_hrstore;
diff --git a/agent/mibgroup/host/hr_swinst.c b/agent/mibgroup/host/hr_swinst.c
index 4aa4593..876b0d8 100644
--- a/agent/mibgroup/host/hr_swinst.c
+++ b/agent/mibgroup/host/hr_swinst.c
@@ -4,7 +4,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #if HAVE_SYS_PARAM_H
 #include <sys/param.h>
@@ -46,16 +45,11 @@
 #include <rpm/header.h>
 #include <fcntl.h>
 
-#ifdef HAVE_RPM_RPMFILEUTIL_H
-#include <rpm/rpmfileutil.h>
-#endif
-
 #ifdef HAVE_RPMGETPATH
 #include <rpm/rpmmacro.h>
 #endif
 
-#ifdef HAVE_RPM_RPMTS_H
-#include <rpm/rpmts.h>
+#ifdef HAVE_RPM_RPMDB_H
 #include <rpm/rpmdb.h>
 #endif
 #endif
@@ -72,8 +66,6 @@
 
 #define HRSWINST_MONOTONICALLY_INCREASING
 
-netsnmp_feature_require(date_n_time)
-
         /*********************
 	 *
 	 *  Kernel & interface information,
@@ -117,7 +109,7 @@ typedef struct {
     int             swi_maxrec; /* no. of allocations */
     int             swi_nrec;   /* no. of valid offsets */
     int            *swi_recs;   /* db record offsets */
-    rpmts           swi_rpmts;
+    rpmdb           swi_rpmdb;
     Header          swi_h;
     int             swi_prevx;
 #else
@@ -134,7 +126,7 @@ int             header_hrswinst(struct variable *, oid *, size_t *, int,
 int             header_hrswInstEntry(struct variable *, oid *, size_t *,
                                      int, size_t *, WriteMethod **);
 
-#define starttime (*(const struct timeval*)netsnmp_get_agent_starttime())
+extern struct timeval starttime;
 
         /*********************
 	 *
@@ -164,20 +156,13 @@ static void     Release_HRSW_token(void);
 #define	HRSWINST_DATE		7
 
 struct variable4 hrswinst_variables[] = {
-    {HRSWINST_CHANGE, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_hrswinst, 1, {1}},
-    {HRSWINST_UPDATE, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_hrswinst, 1, {2}},
-    {HRSWINST_INDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrswinst, 3, {3, 1, 1}},
-    {HRSWINST_NAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrswinst, 3, {3, 1, 2}},
-    {HRSWINST_ID, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_hrswinst, 3, {3, 1, 3}},
-    {HRSWINST_TYPE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrswinst, 3, {3, 1, 4}},
-    {HRSWINST_DATE, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrswinst, 3, {3, 1, 5}}
+    {HRSWINST_CHANGE, ASN_TIMETICKS, RONLY, var_hrswinst, 1, {1}},
+    {HRSWINST_UPDATE, ASN_TIMETICKS, RONLY, var_hrswinst, 1, {2}},
+    {HRSWINST_INDEX, ASN_INTEGER, RONLY, var_hrswinst, 3, {3, 1, 1}},
+    {HRSWINST_NAME, ASN_OCTET_STR, RONLY, var_hrswinst, 3, {3, 1, 2}},
+    {HRSWINST_ID, ASN_OBJECT_ID, RONLY, var_hrswinst, 3, {3, 1, 3}},
+    {HRSWINST_TYPE, ASN_INTEGER, RONLY, var_hrswinst, 3, {3, 1, 4}},
+    {HRSWINST_DATE, ASN_OCTET_STR, RONLY, var_hrswinst, 3, {3, 1, 5}}
 };
 oid             hrswinst_variables_oid[] = { 1, 3, 6, 1, 2, 1, 25, 6 };
 
@@ -197,9 +182,6 @@ oid             hrswinst_variables_oid[] = { 1, 3, 6, 1, 2, 1, 25, 6 };
 #ifdef freebsd2
 #define	_PATH_HRSW_directory	"/var/db/pkg"
 #endif
-#if defined(linux) && !defined(HAVE_LIBRPM)
-#define	_PATH_HRSW_directory	"/var/cache/hrmib"
-#endif
 
 void
 init_hr_swinst(void)
@@ -227,7 +209,8 @@ init_hr_swinst(void)
         rpmReadConfigFiles(NULL, NULL);
         swi->swi_dbpath = rpmGetPath("%{_dbpath}", NULL);
 #else
-        swi->swi_dbpath = "/var/lib/rpm";  /* Most likely */
+        rpmReadConfigFiles(NULL, NULL, NULL, 0);
+        swi->swi_dbpath = rpmGetVar(RPMVAR_DBPATH);
 #endif
         if (swi->swi_directory != NULL)
             free(swi->swi_directory);
@@ -289,7 +272,7 @@ header_hrswinst(struct variable *vp,
            (vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
 
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
     return (MATCH_SUCCEEDED);
 }
@@ -359,7 +342,7 @@ header_hrswInstEntry(struct variable *vp,
     memcpy((char *) name, (char *) newname,
            (vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
 
     DEBUGMSGTL(("host/hr_inst", "... get installed S/W stats "));
@@ -405,8 +388,10 @@ var_hrswinst(struct variable * vp,
     case HRSWINST_UPDATE:
         string[0] = '\0';
 
-        if (swi->swi_directory != NULL)
-            strlcpy(string, swi->swi_directory, sizeof(string));
+        if (swi->swi_directory != NULL) {
+            strncpy(string, swi->swi_directory, sizeof(string));
+            string[ sizeof(string)-1 ] = 0;
+        }
 
         if (*string && (stat(string, &stat_buf) != -1)) {
             if (stat_buf.st_mtime > starttime.tv_sec)
@@ -434,7 +419,7 @@ var_hrswinst(struct variable * vp,
 #ifdef HAVE_PKGINFO
             char *pver;
 # endif
-            strlcpy(string, swi->swi_name, sizeof(string));
+            strncpy(string, swi->swi_name, sizeof(string) - 1);
 
 /* If we are on a solaris machine, the package names do not include versioning info,
  * so we must add it manually
@@ -442,7 +427,7 @@ var_hrswinst(struct variable * vp,
 #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);
@@ -503,12 +488,12 @@ var_hrswinst(struct variable * vp,
     case HRSWINST_DATE:
         {
 #ifdef HAVE_LIBRPM
-            int32_t         *rpm_data;
+            int         *rpm_data;
             if ( headerGetEntry(swi->swi_h, RPMTAG_INSTALLTIME, NULL, (void **) &rpm_data, NULL) ) {
                 time_t          installTime = *rpm_data;
                 ret = date_n_time(&installTime, var_len);
             } else {
-                ret = date_n_time(NULL, var_len);
+                ret = date_n_time(0, var_len);
             }
 #else
             if (swi->swi_directory != NULL) {
@@ -519,12 +504,11 @@ var_hrswinst(struct variable * vp,
                 ret = date_n_time(&stat_buf.st_mtime, var_len);
             } else {
 #if NETSNMP_NO_DUMMY_VALUES
-                ret = NULL;
-#else
+                return NULL;
+#endif
                 sprintf(string, "back in the mists of time");
                 *var_len = strlen(string);
                 ret = (u_char *) string;
-#endif
             }
 #endif
         }
@@ -571,11 +555,17 @@ Check_HRSW_cache(void *xxx)
         int             ix = 0;
         int             offset;
 
+#if defined(RPMDBI_PACKAGES)
         rpmdbMatchIterator mi = NULL;
         Header          h;
-        mi = rpmtsInitIterator(swi->swi_rpmts, RPMDBI_PACKAGES, NULL, 0);
+        mi = rpmdbInitIterator(swi->swi_rpmdb, RPMDBI_PACKAGES, NULL, 0);
         while ((h = rpmdbNextIterator(mi)) != NULL) {
             offset = rpmdbGetIteratorOffset(mi);
+#else
+        for (offset = rpmdbFirstRecNum(swi->swi_rpmdb);
+             offset != 0;
+             offset = rpmdbNextRecNum(swi->swi_rpmdb, offset)) {
+#endif
 
             if (ix >= swi->swi_maxrec) {
                 swi->swi_maxrec += 256;
@@ -585,8 +575,13 @@ Check_HRSW_cache(void *xxx)
                                       swi->swi_maxrec * sizeof(int));
             }
             swi->swi_recs[ix++] = offset;
+
+#if !defined(RPMDBI_PACKAGES)
+        }
+#else
         }
         rpmdbFreeIterator(mi);
+#endif
 
         swi->swi_nrec = ix;
     }
@@ -600,10 +595,10 @@ Init_HR_SWInst(void)
     swi->swi_index = 0;
 
 #ifdef HAVE_LIBRPM
-    if (swi->swi_rpmts != NULL)
+    if (swi->swi_rpmdb != NULL)
         return;
-    swi->swi_rpmts = rpmtsCreate();
-    rpmtsSetVSFlags( swi->swi_rpmts, (_RPMVSF_NOSIGNATURES|_RPMVSF_NODIGESTS));
+    if (rpmdbOpen("", &swi->swi_rpmdb, O_RDONLY, 0644) != 0)
+        swi->swi_index = -1;
     Check_HRSW_cache(swi);
 #else
     if (swi->swi_directory != NULL) {
@@ -666,14 +661,18 @@ Save_HR_SW_info(int ix)
 
         offset = swi->swi_recs[ix - 1];
 
+#if defined(RPMDBI_PACKAGES)
         {
             rpmdbMatchIterator mi;
-            mi = rpmtsInitIterator(swi->swi_rpmts, RPMDBI_PACKAGES,
+            mi = rpmdbInitIterator(swi->swi_rpmdb, RPMDBI_PACKAGES,
                                    &offset, sizeof(offset));
             if ((h = rpmdbNextIterator(mi)) != NULL)
                 h = headerLink(h);
             rpmdbFreeIterator(mi);
         }
+#else
+        h = rpmdbGetRecord(swi->swi_rpmdb, offset);
+#endif
 
         if (h == NULL) {
             DEBUGMSGTL(("host/hr_swinst",
@@ -696,7 +695,7 @@ Save_HR_SW_info(int ix)
         swi->swi_name[ sizeof(swi->swi_name)-1 ] = 0;
     }
 #else
-    snprintf(swi->swi_name, sizeof(swi->swi_name), "%s", swi->swi_dep->d_name);
+    snprintf(swi->swi_name, sizeof(swi->swi_name), swi->swi_dep->d_name);
     swi->swi_name[ sizeof(swi->swi_name)-1 ] = 0;
 #endif
     return 0;
@@ -726,8 +725,8 @@ End_HR_SWInst(void)
     SWI_t          *swi = &_myswi;      /* XXX static for now */
 
 #ifdef HAVE_LIBRPM
-    rpmtsFree(swi->swi_rpmts); /* or only on finishing ? */
-    swi->swi_rpmts = NULL;
+    rpmdbClose(swi->swi_rpmdb); /* or only on finishing ? */
+    swi->swi_rpmdb = NULL;
 #else
     if (swi->swi_dp != NULL)
         closedir(swi->swi_dp);
diff --git a/agent/mibgroup/host/hr_swrun.c b/agent/mibgroup/host/hr_swrun.c
index 644e7bd..854883e 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) || defined(aix7)
+#if defined(aix4) || defined(aix5) || defined(aix6)
 #include <procinfo.h>
 #include <sys/types.h>
 #endif
@@ -122,13 +122,11 @@ static int      LowProcIndex;
 #if defined(hpux10) || defined(hpux11)
 struct pst_status *proc_table;
 struct pst_dynamic pst_dyn;
-#elif HAVE_KVM_GETPROC2
-struct kinfo_proc2 *proc_table;
 #elif HAVE_KVM_GETPROCS
 struct kinfo_proc *proc_table;
 #elif defined(solaris2)
 int            *proc_table;
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
 struct procsinfo *proc_table;
 #else
 struct proc    *proc_table;
@@ -152,29 +150,19 @@ int             current_proc_entry;
 #define	HRSWRUNPERF_MEM		10
 
 struct variable4 hrswrun_variables[] = {
-    {HRSWRUN_OSINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrswrun, 1, {1}},
-    {HRSWRUN_INDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrswrun, 3, {2, 1, 1}},
-    {HRSWRUN_NAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrswrun, 3, {2, 1, 2}},
-    {HRSWRUN_ID, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_hrswrun, 3, {2, 1, 3}},
-    {HRSWRUN_PATH, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrswrun, 3, {2, 1, 4}},
-    {HRSWRUN_PARAMS, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrswrun, 3, {2, 1, 5}},
-    {HRSWRUN_TYPE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrswrun, 3, {2, 1, 6}},
-    {HRSWRUN_STATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrswrun, 3, {2, 1, 7}}
+    {HRSWRUN_OSINDEX, ASN_INTEGER, RONLY, var_hrswrun, 1, {1}},
+    {HRSWRUN_INDEX, ASN_INTEGER, RONLY, var_hrswrun, 3, {2, 1, 1}},
+    {HRSWRUN_NAME, ASN_OCTET_STR, RONLY, var_hrswrun, 3, {2, 1, 2}},
+    {HRSWRUN_ID, ASN_OBJECT_ID, RONLY, var_hrswrun, 3, {2, 1, 3}},
+    {HRSWRUN_PATH, ASN_OCTET_STR, RONLY, var_hrswrun, 3, {2, 1, 4}},
+    {HRSWRUN_PARAMS, ASN_OCTET_STR, RONLY, var_hrswrun, 3, {2, 1, 5}},
+    {HRSWRUN_TYPE, ASN_INTEGER, RONLY, var_hrswrun, 3, {2, 1, 6}},
+    {HRSWRUN_STATUS, ASN_INTEGER, RONLY, var_hrswrun, 3, {2, 1, 7}}
 };
 
 struct variable4 hrswrunperf_variables[] = {
-    {HRSWRUNPERF_CPU, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrswrun, 3, {1, 1, 1}},
-    {HRSWRUNPERF_MEM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrswrun, 3, {1, 1, 2}}
+    {HRSWRUNPERF_CPU, ASN_INTEGER, RONLY, var_hrswrun, 3, {1, 1, 1}},
+    {HRSWRUNPERF_MEM, ASN_INTEGER, RONLY, var_hrswrun, 3, {1, 1, 2}}
 };
 
 oid             hrswrun_variables_oid[] = { 1, 3, 6, 1, 2, 1, 25, 4 };
@@ -338,7 +326,7 @@ init_hr_swrun(void)
     auto_nlist(NPROC_SYMBOL, 0, 0);
 #endif
 
-    proc_table = NULL;
+    proc_table = 0;
 
     REGISTER_MIB("host/hr_swrun", hrswrun_variables, variable4,
                  hrswrun_variables_oid);
@@ -381,7 +369,7 @@ header_hrswrun(struct variable *vp,
            (vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
 
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
     return (MATCH_SUCCEEDED);
 }
@@ -465,7 +453,7 @@ header_hrswrunEntry(struct variable *vp,
     memcpy((char *) name, (char *) newname,
            (vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
 
     DEBUGMSGTL(("host/hr_swrun", "... get process stats "));
@@ -480,82 +468,6 @@ header_hrswrunEntry(struct variable *vp,
 	 *
 	 *********************/
 
-#if defined(linux)
-static char     *
-skip_to_next_field(char *cp)
-{
-    while (*cp && ! isspace(*cp)) /* skip past non-space */
-	++cp;
-    while (*cp && isspace(*cp)) /* skip past space */
-	++cp;
-    return cp;
-
-}
-
-static char     *
-get_proc_file_line(char *fmt,
-		    int pid,
-		    char *buf,
-		    int buflen )
-{
-    static char     string[1024];
-    FILE *fp;
-    *buf = '\0';
-    sprintf(string,fmt,pid);
-    if (   ((fp = fopen(string, "r")) == NULL)
-	|| (fgets(buf, buflen, fp) == NULL) ) {
-	if (fp)
-	    fclose(fp);
-	return NULL;
-    }
-    fclose(fp);
-    return buf;
-}
-
-static char     *
-get_proc_stat_field(int pid,
-		    char *buf,
-		    int buflen,
-		    int skip )
-{
-    int i;
-    char *cp;
-
-    if ((cp = get_proc_file_line("/proc/%d/stat", pid, buf, buflen)) == NULL )
-	return NULL;
-    for (i = 0; *cp && i < skip; ++i) {
-	cp = skip_to_next_field(cp);
-    }
-    return cp;
-}
-
-static char *
-get_proc_name_from_cmdline(int pid,
-			    char *buf,
-			    int buflen )
-{
-    return get_proc_file_line("/proc/%d/cmdline", pid, buf, buflen);
-}
-
-static char *
-get_proc_name_from_status(int pid,
-	    char *buf,
-	    int buflen )
-{
-    char *cp,*cp2;
-    if ((cp = get_proc_file_line("/proc/%d/status", pid, buf, buflen)) == NULL )
-	return NULL;
-    cp = strchr(cp, ':');
-    if ( cp == NULL ) {
-	return NULL;    /* the process file is malformed */
-    }
-    cp = skip_to_next_field(cp);
-    cp2 = strchr(cp, '\n');
-    if (cp2)
-	*cp2 = 0;
-    return cp;
-}
-#endif
 
 u_char         *
 var_hrswrun(struct variable * vp,
@@ -582,7 +494,7 @@ var_hrswrun(struct variable * vp,
     time_t          now;
     static int      oldpid = -1;
 #endif
-#if (defined(HAVE_KVM_GETPROCS) || defined(HAVE_KVM_GETPROC2))
+#if HAVE_KVM_GETPROCS
     char          **argv;
 #endif
 #ifdef linux
@@ -657,12 +569,14 @@ var_hrswrun(struct variable * vp,
         return (u_char *) & long_return;
     case HRSWRUN_NAME:
 #ifdef HAVE_SYS_PSTAT_H
-        strlcpy(string, proc_buf.pst_cmd, sizeof(string));
+        snprintf(string, sizeof(string), "%s", proc_buf.pst_cmd);
+        string[ sizeof(string)-1 ] = 0;
         cp = strchr(string, ' ');
         if (cp != NULL)
             *cp = '\0';
 #elif defined(dynix)
-        strlcpy(string, lowpsinfo.pr_fname, sizeof(string));
+        snprintf(string, sizeof(string), "%s", lowpsinfo.pr_fname);
+        string[ sizeof(string)-1 ] = 0;
         cp = strchr(string, ' ');
         if (cp != NULL)
             *cp = '\0';
@@ -671,40 +585,44 @@ var_hrswrun(struct variable * vp,
         if (proc_buf) { 
             char *pos=strchr(proc_buf->pr_psargs,' ');
             if (pos != NULL) *pos = '\0';
-            strlcpy(string, basename(proc_buf->pr_psargs), sizeof(string));
+            strlcpy(string, basename(proc_buf->pr_psargs),sizeof(string));
             if (pos != NULL) *pos=' ';
         } else {
-            strlcpy(string, "<exited>", sizeof(string));
+            strcpy(string, "<exited>");
         }
+        string[ sizeof(string)-1 ] = 0;
 #else
-        strlcpy(string, proc_buf->p_user.u_comm, sizeof(string));
+        strncpy(string, proc_buf->p_user.u_comm, sizeof(string));
+        string[ sizeof(string)-1 ] = 0;
 #endif
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
-        strlcpy(string, proc_table[LowProcIndex].pi_comm, sizeof(string));
-        cp = strchr(string, ' ');
-        if (cp != NULL)
-            *cp = '\0';
-#elif HAVE_KVM_GETPROC2
-        strlcpy(string, proc_table[LowProcIndex].p_comm, sizeof(string));
-        /* process name: truncate the string at the first space */
+#elif defined(aix4) || defined(aix5) || defined(aix6)
+        strncpy(string, proc_table[LowProcIndex].pi_comm, sizeof(string));
+        string[ sizeof(string)-1 ] = 0;
         cp = strchr(string, ' ');
         if (cp != NULL)
             *cp = '\0';
 #elif HAVE_KVM_GETPROCS
     #if defined(freebsd5) && __FreeBSD_version >= 500014
         strcpy(string, proc_table[LowProcIndex].ki_comm);
-    #elif defined(dragonfly) && __DragonFly_version >= 190000
-        strcpy(string, proc_table[LowProcIndex].kp_comm);
     #else
         strcpy(string, proc_table[LowProcIndex].kp_proc.p_comm);
     #endif
 #elif defined(linux)
-	if( (cp=get_proc_name_from_status(pid,buf,sizeof(buf))) == NULL ) {
+        sprintf(string, "/proc/%d/status", pid);
+        if ((fp = fopen(string, "r")) == NULL) {
             strcpy(string, "<exited>");
             *var_len = strlen(string);
             return (u_char *) string;
         }
+        fgets(buf, sizeof(buf), fp);    /* Name: process name */
+        cp = buf;
+        while (*cp != ':')
+            ++cp;
+        ++cp;
+        while (isspace(*cp))
+            ++cp;
         strcpy(string, cp);
+        fclose(fp);
 #elif defined(cygwin)
         /* if (lowproc.process_state & (PID_ZOMBIE | PID_EXITED)) */
         if (lowproc.process_state & PID_EXITED || (lowproc.exitcode & ~0xffff))
@@ -800,40 +718,53 @@ var_hrswrun(struct variable * vp,
             *cp1++ = *cp++;
         *cp1 = 0;
 #endif
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
-        strlcpy(string, proc_table[LowProcIndex].pi_comm, sizeof(string));
-        cp = strchr(string, ' ');
-        if (cp != NULL)
-            *cp = '\0';
-#elif HAVE_KVM_GETPROC2
-        /* Should be path, but this is not available, just use argv[0] again */
-        strlcpy(string, proc_table[LowProcIndex].p_comm, sizeof(string));
+#elif defined(aix4) || defined(aix5) || defined(aix6)
+        strncpy(string, proc_table[LowProcIndex].pi_comm, sizeof(string));
+        string[ sizeof(string)-1 ] = 0;
         cp = strchr(string, ' ');
         if (cp != NULL)
             *cp = '\0';
 #elif HAVE_KVM_GETPROCS
     #if defined(freebsd5) && __FreeBSD_version >= 500014
         strcpy(string, proc_table[LowProcIndex].ki_comm);
-    #elif defined(dragonfly) && __DragonFly_version >= 190000
-        strcpy(string, proc_table[LowProcIndex].kp_comm);
     #else
         strcpy(string, proc_table[LowProcIndex].kp_proc.p_comm);
     #endif
 #elif defined(linux)
-        cp = get_proc_name_from_cmdline(pid,buf,sizeof(buf)-1);
-        if (cp != NULL && *cp)    /* argv[0] '\0' argv[1] '\0' .... */
-            strcpy(string, cp);
+        sprintf(string, "/proc/%d/cmdline", pid);
+        if ((fp = fopen(string, "r")) == NULL) {
+            strcpy(string, "<exited>");
+            *var_len = strlen(string);
+            return (u_char *) string;
+        }
+        if (fgets(buf, sizeof(buf) - 1, fp))    /* argv[0] '\0' argv[1] '\0' .... */
+            strcpy(string, buf);
         else {
             /*
              * swapped out - no cmdline 
              */
-	    if( (cp=get_proc_name_from_status(pid,buf,sizeof(buf)-1)) == NULL ) {
-		strcpy(string, "<exited>");
-		*var_len = strlen(string);
-		return (u_char *) string;
-	    }
+            fclose(fp);
+            sprintf(string, "/proc/%d/status", pid);
+            if ((fp = fopen(string, "r")) == NULL)
+                return NULL;
+            if (!fgets(buf, sizeof(buf), fp)) {
+                fclose(fp);
+                return NULL;    /* the process probably died */
+            }
+            cp = strchr(buf, ':');
+            if ( cp == NULL ) {
+                fclose(fp);
+                return NULL;    /* the process file is malformed */
+            }
+            ++cp;
+            while (isspace(*cp))
+                ++cp;
             strcpy(string, cp);
+            cp = strchr(string, '\n');
+            if (cp)
+                *cp = 0;
         }
+        fclose(fp);
 #elif defined(cygwin)
         /* if (lowproc.process_state & (PID_ZOMBIE | PID_EXITED)) */
         if (lowproc.process_state & PID_EXITED || (lowproc.exitcode & ~0xffff))
@@ -903,24 +834,13 @@ var_hrswrun(struct variable * vp,
             cp++;
         strcpy(string, cp);
 #endif
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
         cp = strchr(proc_table[LowProcIndex].pi_comm, ' ');
         if (cp != NULL) {
             cp++;
             sprintf(string, "%s", cp);
         } else
             string[0] = '\0';
-#elif HAVE_KVM_GETPROC2
-        string[0] = 0;
-        argv = kvm_getargv2(kd, proc_table + LowProcIndex, sizeof(string));
-        if (argv)
-            argv++;
-        while (argv && *argv) {
-            if (string[0] != 0)
-                strcat(string, " ");
-            strcat(string, *argv);
-            argv++;
-        }
 #elif HAVE_KVM_GETPROCS
         string[0] = 0;
         argv = kvm_getargv(kd, proc_table + LowProcIndex, sizeof(string));
@@ -933,12 +853,26 @@ var_hrswrun(struct variable * vp,
             argv++;
         }
 #elif defined(linux)
-        memset(buf, 0, sizeof(buf));
-	if( (cp=get_proc_name_from_cmdline(pid,buf,sizeof(buf)-2)) == NULL ) {
+        sprintf(string, "/proc/%d/cmdline", pid);
+        if ((fp = fopen(string, "r")) == NULL) {
             strcpy(string, "");
             *var_len = 0;
             return (u_char *) string;
         }
+        memset(buf, 0, sizeof(buf));
+
+        /*
+         * argv[0] '\0' argv[1] '\0' .... 
+         */
+        if (!fgets(buf, sizeof(buf) - 2, fp)) {
+            /*
+             * maybe be empty (even argv[0] is missing) 
+             */
+            string[0] = '\0';
+            *var_len = 0;
+            fclose(fp);
+            return string;
+        }
 
         /*
          * Skip over argv[0] 
@@ -963,6 +897,7 @@ var_hrswrun(struct variable * vp,
             ++cp;
         ++cp;
         strcpy(string, cp);
+        fclose(fp);
 #elif defined(cygwin)
         string[0] = 0;
 #else
@@ -983,16 +918,11 @@ var_hrswrun(struct variable * vp,
             long_return = 2;    /* operatingSystem */
         else
             long_return = 4;    /* application */
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
 		if (proc_table[LowProcIndex].pi_flags & SKPROC) {
 			long_return = 2;	/* kernel process */
 		} else
 			long_return = 4;	/* application */
-#elif HAVE_KVM_GETPROC2
-        if (proc_table[LowProcIndex].p_flag & P_SYSTEM)
-	    long_return = 2;	/* operatingSystem */
-	else
-	    long_return = 4;	/* application */
 #elif HAVE_KVM_GETPROCS
     #if defined(freebsd5) && __FreeBSD_version >= 500014
 	if (proc_table[LowProcIndex].ki_flag & P_SYSTEM) {
@@ -1003,11 +933,7 @@ var_hrswrun(struct variable * vp,
 	} else
 	    long_return = 4;	/* application */
     #else
-      #if defined(dragonfly) && __DragonFly_version >= 190000
-        if (proc_table[LowProcIndex].kp_flags & P_SYSTEM)
-      #else
         if (proc_table[LowProcIndex].kp_proc.p_flag & P_SYSTEM)
-      #endif
 	    long_return = 2;	/* operatingSystem */
 	else
 	    long_return = 4;	/* application */
@@ -1045,13 +971,9 @@ var_hrswrun(struct variable * vp,
             break;
         }
 #else
-#if HAVE_KVM_GETPROC2
-        switch (proc_table[LowProcIndex].p_stat) {
-#elif HAVE_KVM_GETPROCS
+#if HAVE_KVM_GETPROCS
     #if defined(freebsd5) && __FreeBSD_version >= 500014
         switch (proc_table[LowProcIndex].ki_stat) {
-    #elif defined(dragonfly) && __DragonFly_version >= 190000
-        switch (proc_table[LowProcIndex].kp_stat) {
     #else
         switch (proc_table[LowProcIndex].kp_proc.p_stat) {
     #endif
@@ -1063,7 +985,7 @@ var_hrswrun(struct variable * vp,
 #else
         switch (proc_buf->p_stat) {
 #endif
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
         switch (proc_table[LowProcIndex].pi_state) {
 #else
         switch (proc_table[LowProcIndex].p_stat) {
@@ -1102,7 +1024,16 @@ var_hrswrun(struct variable * vp,
         }
 #endif
 #else
-	if ((cp = get_proc_stat_field(pid,buf,sizeof(buf),2)) != NULL ) {
+        sprintf(string, "/proc/%d/stat", pid);
+        if ((fp = fopen(string, "r")) != NULL) {
+            fgets(buf, sizeof(buf), fp);
+            cp = buf;
+            for (i = 0; i < 2; ++i) {   /* skip two fields */
+                while (*cp != ' ')
+                    ++cp;
+                ++cp;
+            }
+
             switch (*cp) {
             case 'R':
                 long_return = 1;        /* running */
@@ -1119,6 +1050,7 @@ var_hrswrun(struct variable * vp,
                 long_return = 4;        /* invalid */
                 break;
             }
+            fclose(fp);
         } else
             long_return = 4;    /* invalid */
 #endif
@@ -1140,10 +1072,6 @@ var_hrswrun(struct variable * vp,
 #else
         long_return = proc_buf->p_utime * 100 + proc_buf->p_stime * 100;
 #endif
-#elif HAVE_KVM_GETPROC2
-        long_return = proc_table[LowProcIndex].p_uticks +
-            proc_table[LowProcIndex].p_sticks +
-            proc_table[LowProcIndex].p_iticks;
 #elif HAVE_KVM_GETPROCS
     #if defined(NOT_DEFINED) && defined(freebsd5) && __FreeBSD_version >= 500014
         /* XXX: Accessing ki_paddr causes sig10 ...
@@ -1153,30 +1081,32 @@ var_hrswrun(struct variable * vp,
         long_return = 0;
     #elif defined(freebsd5)
         long_return = proc_table[LowProcIndex].ki_runtime / 100000;
-    #elif defined(dragonfly) && __DragonFly_version >= 190000
-        long_return = proc_table[LowProcIndex].kp_lwp.kl_uticks +
-            proc_table[LowProcIndex].kp_lwp.kl_sticks +
-            proc_table[LowProcIndex].kp_lwp.kl_iticks;
-    #elif defined(dragonfly)
-        long_return = proc_table[LowProcIndex].kp_eproc.e_uticks +
-            proc_table[LowProcIndex].kp_eproc.e_sticks +
-            proc_table[LowProcIndex].kp_eproc.e_iticks;
     #else
         long_return = proc_table[LowProcIndex].kp_proc.p_uticks +
             proc_table[LowProcIndex].kp_proc.p_sticks +
             proc_table[LowProcIndex].kp_proc.p_iticks;
     #endif
 #elif defined(linux)
-	if ((cp = get_proc_stat_field(pid,buf,sizeof(buf),13)) == NULL ) {
+        sprintf(string, "/proc/%d/stat", pid);
+        if ((fp = fopen(string, "r")) == NULL) {
             long_return = 0;
             return (u_char *) & long_return;
         }
+        fgets(buf, sizeof(buf), fp);
+        cp = buf;
+        for (i = 0; i < 13; ++i) {      /* skip 13 fields */
+            while (*cp != ' ')
+                ++cp;
+            ++cp;
+        }
 
         long_return = atoi(cp); /* utime */
 
-        cp = skip_to_next_field(cp);
-
+        while (*cp != ' ')
+            ++cp;
+        ++cp;
         long_return += atoi(cp);        /* + stime */
+        fclose(fp);
 #elif defined(sunos4)
         long_return = proc_table[LowProcIndex].p_time;
 #elif defined(cygwin)
@@ -1202,7 +1132,7 @@ var_hrswrun(struct variable * vp,
                 long_return = 0;
             }
         }
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
         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 +
@@ -1254,13 +1184,8 @@ var_hrswrun(struct variable * vp,
 #else
         long_return = proc_buf->p_swrss;
 #endif
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
         long_return = proc_table[LowProcIndex].pi_size * getpagesize() / 1024;
-#elif HAVE_KVM_GETPROC2
-        long_return = proc_table[LowProcIndex].p_vm_tsize +
-            proc_table[LowProcIndex].p_vm_ssize +
-            proc_table[LowProcIndex].p_vm_dsize;
-        long_return = long_return * (getpagesize() / 1024);
 #elif HAVE_KVM_GETPROCS && !defined(darwin8)
   #if defined(NOT_DEFINED) && defined(freebsd5) && __FreeBSD_version >= 500014
 	    /* XXX
@@ -1273,8 +1198,6 @@ var_hrswrun(struct variable * vp,
         long_return =
     #if defined(freebsd5)
             proc_table[LowProcIndex].ki_size / 1024;
-    #elif defined(dragonfly) && __DragonFly_version >= 190000
-            proc_table[LowProcIndex].kp_vm_map_size / 1024;
     #else
             proc_table[LowProcIndex].kp_eproc.e_vm.vm_map.size / 1024;
     #endif
@@ -1285,11 +1208,20 @@ var_hrswrun(struct variable * vp,
         long_return = long_return * (getpagesize() / 1024);
   #endif
 #elif defined(linux)
-	if ((cp = get_proc_stat_field(pid,buf,sizeof(buf),23)) == NULL ) {
+        sprintf(string, "/proc/%d/stat", pid);
+        if ((fp = fopen(string, "r")) == NULL) {
             long_return = 0;
             return (u_char *) & long_return;
         }
+        fgets(buf, sizeof(buf), fp);
+        cp = buf;
+        for (i = 0; i < 23; ++i) {      /* skip 23 fields */
+            while (*cp != ' ')
+                ++cp;
+            ++cp;
+        }
         long_return = atoi(cp) * (getpagesize() / 1024);        /* rss */
+        fclose(fp);
 #elif defined(cygwin)
         {
             DWORD           n = lowproc.dwProcessId;
@@ -1499,7 +1431,7 @@ Init_HR_SWRun(void)
             nproc = current_proc_entry;
         closedir(f);
     }
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
     {
 		pid_t proc_index = 0;
 		int avail = 1024;
@@ -1526,14 +1458,6 @@ Init_HR_SWRun(void)
 			proc_table = realloc(proc_table, avail * sizeof(proc_table[0]));
 		}
     }
-#elif HAVE_KVM_GETPROC2
-    {
-        if (kd == NULL) {
-            nproc = 0;
-            return;
-        }
-        proc_table = kvm_getproc2(kd, KERN_PROC_ALL, 0, sizeof (struct kinfo_proc2), &nproc);
-    }
 #elif HAVE_KVM_GETPROCS
     {
         if (kd == NULL) {
@@ -1590,21 +1514,15 @@ Get_Next_HR_SWRun(void)
         return proc_table[current_proc_entry++].pst_pid;
 #elif defined(solaris2)
         return proc_table[current_proc_entry++];
-#elif HAVE_KVM_GETPROC2
-        if (proc_table[current_proc_entry].p_stat != 0)
-            return proc_table[current_proc_entry++].p_pid;
 #elif HAVE_KVM_GETPROCS
     #if defined(freebsd5) && __FreeBSD_version >= 500014
         if (proc_table[current_proc_entry].ki_stat != 0)
             return proc_table[current_proc_entry++].ki_pid;
-    #elif defined(dragonfly) && __DragonFly_version >= 190000
-        if (proc_table[current_proc_entry].kp_stat != 0)
-            return proc_table[current_proc_entry++].kp_pid;
     #else
         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) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
         if (proc_table[current_proc_entry].pi_state != 0)
             return proc_table[current_proc_entry++].pi_pid;
         else
@@ -1630,16 +1548,16 @@ End_HR_SWRun(void)
 int
 count_processes(void)
 {
-#if !(defined(linux) || defined(cygwin) || defined(hpux10) || defined(hpux11) || defined(solaris2) || HAVE_KVM_GETPROCS || HAVE_KVM_GETPROC2 || defined(dynix))
+#if !(defined(linux) || defined(cygwin) || defined(hpux10) || defined(hpux11) || defined(solaris2) || HAVE_KVM_GETPROCS || defined(dynix))
     int             i;
 #endif
     int             total = 0;
 
     Init_HR_SWRun();
-#if defined(hpux10) || defined(hpux11) || HAVE_KVM_GETPROCS || HAVE_KVM_GETPROC2 || defined(solaris2)
+#if defined(hpux10) || defined(hpux11) || HAVE_KVM_GETPROCS || defined(solaris2)
     total = nproc;
 #else
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#if defined(aix4) || defined(aix5) || defined(aix6)
     for (i = 0; i < nproc; ++i) {
         if (proc_table[i].pi_state != 0)
 #elif !defined(linux) && !defined(cygwin) && !defined(dynix)
@@ -1650,7 +1568,7 @@ count_processes(void)
 #endif
         ++total;
     }
-#endif                          /* !hpux10 && !hpux11 && !HAVE_KVM_GETPROCS && !HAVE_KVM_GETPROC2 && !solaris2 */
+#endif                          /* !hpux10 && !hpux11 && !HAVE_KVM_GETPROCS && !solaris2 */
     End_HR_SWRun();
     return total;
 }
diff --git a/agent/mibgroup/host/hr_system.c b/agent/mibgroup/host/hr_system.c
index 9fea4f4..6d6afb5 100644
--- a/agent/mibgroup/host/hr_system.c
+++ b/agent/mibgroup/host/hr_system.c
@@ -15,7 +15,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #if HAVE_STRING_H
 #include <string.h>
 #else
@@ -78,8 +77,6 @@
 #include <sys/sysctl.h>
 #endif
 
-netsnmp_feature_require(date_n_time)
-
 #if !defined(UTMP_FILE) && defined(_PATH_UTMP)
 #define UTMP_FILE _PATH_UTMP
 #endif
@@ -101,20 +98,15 @@ struct utmp    *getutent(void);
 #if defined(solaris2)
 static struct openpromio * op_malloc(size_t size);
 static void op_free(struct openpromio *op);
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 static int set_solaris_bootcommand_parameter(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);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
 static int set_solaris_eeprom_parameter(const char *key, const char *value, size_t value_len);
 static int get_solaris_eeprom_parameter(const char *parameter, char *output);
 static long     get_max_solaris_processes(void);
 #endif
-
 static int      get_load_dev(void);
 static int      count_users(void);
 extern int      count_processes(void);
-extern int      swrun_count_processes(void);
+
 
         /*********************
 	 *
@@ -131,60 +123,26 @@ extern int      swrun_count_processes(void);
 #define	HRSYS_MAXPROCS		7
 
 #if defined(solaris2)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-struct variable2 hrsystem_variables[] = {
-    {HRSYS_UPTIME, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {1}},
-    {HRSYS_DATE, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_hrsys, 1, {2}},
-    {HRSYS_LOAD_DEV, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {3}},
-    {HRSYS_LOAD_PARAM, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_hrsys, 1, {4}},
-    {HRSYS_USERS, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {5}},
-    {HRSYS_PROCS, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {6}},
-    {HRSYS_MAXPROCS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {7}}
-};
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
 struct variable2 hrsystem_variables[] = {
-    {HRSYS_UPTIME, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {1}},
-    {HRSYS_DATE, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {2}},
-    {HRSYS_LOAD_DEV, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {3}},
-    {HRSYS_LOAD_PARAM, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {4}},
-    {HRSYS_USERS, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {5}},
-    {HRSYS_PROCS, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {6}},
-    {HRSYS_MAXPROCS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {7}}
+    {HRSYS_UPTIME, ASN_TIMETICKS, RONLY, var_hrsys, 1, {1}},
+    {HRSYS_DATE, ASN_OCTET_STR, RWRITE, var_hrsys, 1, {2}},
+    {HRSYS_LOAD_DEV, ASN_INTEGER, RONLY, var_hrsys, 1, {3}},
+    {HRSYS_LOAD_PARAM, ASN_OCTET_STR, RWRITE, var_hrsys, 1, {4}},
+    {HRSYS_USERS, ASN_GAUGE, RONLY, var_hrsys, 1, {5}},
+    {HRSYS_PROCS, ASN_GAUGE, RONLY, var_hrsys, 1, {6}},
+    {HRSYS_MAXPROCS, ASN_INTEGER, RONLY, var_hrsys, 1, {7}}
 };
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 #else
 struct variable2 hrsystem_variables[] = {
-    {HRSYS_UPTIME, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {1}},
-    {HRSYS_DATE, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {2}},
-    {HRSYS_LOAD_DEV, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {3}},
-    {HRSYS_LOAD_PARAM, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {4}},
-    {HRSYS_USERS, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {5}},
-    {HRSYS_PROCS, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {6}},
-    {HRSYS_MAXPROCS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrsys, 1, {7}}
+    {HRSYS_UPTIME, ASN_TIMETICKS, RONLY, var_hrsys, 1, {1}},
+    {HRSYS_DATE, ASN_OCTET_STR, RONLY, var_hrsys, 1, {2}},
+    {HRSYS_LOAD_DEV, ASN_INTEGER, RONLY, var_hrsys, 1, {3}},
+    {HRSYS_LOAD_PARAM, ASN_OCTET_STR, RONLY, var_hrsys, 1, {4}},
+    {HRSYS_USERS, ASN_GAUGE, RONLY, var_hrsys, 1, {5}},
+    {HRSYS_PROCS, ASN_GAUGE, RONLY, var_hrsys, 1, {6}},
+    {HRSYS_MAXPROCS, ASN_INTEGER, RONLY, var_hrsys, 1, {7}}
 };
 #endif
-
 oid             hrsystem_variables_oid[] = { 1, 3, 6, 1, 2, 1, 25, 1 };
 
 
@@ -233,7 +191,7 @@ header_hrsys(struct variable *vp,
            (vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
 
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
     return (MATCH_SUCCEEDED);
 } /* end header_hrsys */
@@ -265,7 +223,7 @@ var_hrsys(struct variable * vp,
 #endif
 #if NETSNMP_CAN_USE_SYSCTL && defined(CTL_KERN) && defined(KERN_MAXPROC)
     static int      maxproc_mib[] = { CTL_KERN, KERN_MAXPROC };
-    size_t          buf_size;
+    int             buf_size;
 #endif
 #if defined(hpux10) || defined(hpux11)
     struct pst_static pst_buf;
@@ -281,11 +239,9 @@ var_hrsys(struct variable * vp,
         return (u_char *) & long_return;
     case HRSYS_DATE:
 #if defined(HAVE_MKTIME) && defined(HAVE_STIME)
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
         *write_method=ns_set_time;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 #endif
-        time(&now);
+        (void *) time(&now);
         return (u_char *) date_n_time(&now, var_len);
     case HRSYS_LOAD_DEV:
         long_return = get_load_dev();
@@ -299,9 +255,7 @@ var_hrsys(struct variable * vp,
             return NULL;
         }
 #elif defined(solaris2)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method=set_solaris_bootcommand_parameter;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         if ( get_solaris_eeprom_parameter("boot-command",bootparam) ) {
             snmp_log(LOG_ERR,"unable to lookup boot-command from eeprom\n");
             return NULL;
@@ -319,9 +273,7 @@ var_hrsys(struct variable * vp,
         long_return = count_users();
         return (u_char *) & long_return;
     case HRSYS_PROCS:
-#if USING_HOST_DATA_ACCESS_SWRUN_MODULE
-        long_return = swrun_count_processes();
-#elif USING_HOST_HR_SWRUN_MODULE
+#if USING_HOST_HR_SWRUN_MODULE
         long_return = count_processes();
 #else
 #if NETSNMP_NO_DUMMY_VALUES
@@ -391,7 +343,6 @@ static void op_free(struct openpromio *op) {
     free(op);
 }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 static int
 set_solaris_bootcommand_parameter(int action,
             u_char * var_val,
@@ -456,7 +407,6 @@ set_solaris_bootcommand_parameter(int action,
     }
     return SNMP_ERR_NOERROR;
 }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
 static int set_solaris_eeprom_parameter(const char *key, const char *value,
                                         size_t var_val_len) {
@@ -469,7 +419,9 @@ static int set_solaris_eeprom_parameter(const char *key, const char *value,
     } 
 
     
-    sprintf(pbuffer, "eeprom %s=\"%.*s\"\n", key, var_val_len, value);
+    sprintf(pbuffer,"eeprom %s=\"",key);
+    strncat(pbuffer,value,var_val_len);
+    strcat(pbuffer,"\"\n");
 
     status=system(pbuffer);
 
@@ -536,7 +488,6 @@ static long get_max_solaris_processes(void) {
 #endif
 
 #if defined(HAVE_MKTIME) && defined(HAVE_STIME)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 int
 ns_set_time(int action,
             u_char * var_val,
@@ -630,7 +581,6 @@ ns_set_time(int action,
     }
     return SNMP_ERR_NOERROR;
 }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 #endif
 
                 /*
diff --git a/agent/mibgroup/host/hr_system.h b/agent/mibgroup/host/hr_system.h
index feffa60..5e12c0d 100644
--- a/agent/mibgroup/host/hr_system.h
+++ b/agent/mibgroup/host/hr_system.h
@@ -9,9 +9,7 @@ extern void     init_hr_system(void);
 extern FindVarMethod var_hrsys;
 
 #if defined(HAVE_MKTIME) && defined(HAVE_STIME)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 int ns_set_time(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);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 #endif
 
 #endif                          /* _MIBGROUP_HRSYSTEM_H */
diff --git a/agent/mibgroup/host/hrh_filesys.c b/agent/mibgroup/host/hrh_filesys.c
deleted file mode 100644
index 4aab6a0..0000000
--- a/agent/mibgroup/host/hrh_filesys.c
+++ /dev/null
@@ -1,429 +0,0 @@
-/*
- *  Host Resources MIB - File System device group implementation (HAL rewrite) - hrh_filesys.c
- *
- */
-/* 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.
- */
-
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include <net-snmp/agent/hardware/memory.h>
-#include <net-snmp/agent/hardware/fsys.h>
-#include "host_res.h"
-#include "hrh_filesys.h"
-#include "hrh_storage.h"
-#include "hr_disk.h"
-#include <net-snmp/utilities.h>
-
-#if HAVE_MNTENT_H
-#include <mntent.h>
-#endif
-#if HAVE_SYS_MNTENT_H
-#include <sys/mntent.h>
-#endif
-#if HAVE_SYS_MNTTAB_H
-#include <sys/mnttab.h>
-#endif
-#if HAVE_SYS_STATVFS_H
-#include <sys/statvfs.h>
-#endif
-#if HAVE_SYS_VFS_H
-#include <sys/vfs.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_MOUNT_H
-#include <sys/mount.h>
-#endif
-
-#include <ctype.h>
-#if HAVE_STRING_H
-#include <string.h>
-#endif
-#if HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
-#include <sys/mntctl.h>
-#include <sys/vmount.h>
-#include <sys/statfs.h>
-#endif
-
-netsnmp_feature_require(date_n_time)
-netsnmp_feature_require(ctime_to_timet)
-
-#define HRFS_MONOTONICALLY_INCREASING
-
-        /*********************
-	 *
-	 *  Kernel & interface information,
-	 *   and internal forward declarations
-	 *
-	 *********************/
-netsnmp_fsys_info *HRFS_entry;
-
-#define	FULL_DUMP	0
-#define	PART_DUMP	1
-
-extern void     Init_HR_FileSys(void);
-extern int      Get_Next_HR_FileSys(void);
-char           *cook_device(char *);
-static u_char  *when_dumped(char *filesys, int level, size_t * length);
-int             header_hrhfilesys(struct variable *, oid *, size_t *, int,
-                                 size_t *, WriteMethod **);
-
-        /*********************
-	 *
-	 *  Initialisation & common implementation functions
-	 *
-	 *********************/
-
-#define HRFSYS_INDEX		1
-#define HRFSYS_MOUNT		2
-#define HRFSYS_RMOUNT		3
-#define HRFSYS_TYPE		4
-#define HRFSYS_ACCESS		5
-#define HRFSYS_BOOT		6
-#define HRFSYS_STOREIDX		7
-#define HRFSYS_FULLDUMP		8
-#define HRFSYS_PARTDUMP		9
-
-struct variable4 hrfsys_variables[] = {
-    {HRFSYS_INDEX,    ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_hrhfilesys, 2, {1, 1}},
-    {HRFSYS_MOUNT,    ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrhfilesys, 2, {1, 2}},
-    {HRFSYS_RMOUNT,   ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrhfilesys, 2, {1, 3}},
-    {HRFSYS_TYPE,     ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_hrhfilesys, 2, {1, 4}},
-    {HRFSYS_ACCESS,   ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_hrhfilesys, 2, {1, 5}},
-    {HRFSYS_BOOT,     ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_hrhfilesys, 2, {1, 6}},
-    {HRFSYS_STOREIDX, ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_hrhfilesys, 2, {1, 7}},
-    {HRFSYS_FULLDUMP, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrhfilesys, 2, {1, 8}},
-    {HRFSYS_PARTDUMP, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrhfilesys, 2, {1, 9}},
-};
-oid             hrfsys_variables_oid[] = { 1, 3, 6, 1, 2, 1, 25, 3, 8 };
-
-void
-init_hrh_filesys(void)
-{
-    REGISTER_MIB("host/hr_filesys", hrfsys_variables, variable4,
-                 hrfsys_variables_oid);
-}
-
-/*
- * header_hrhfilesys(...
- * 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
- * 
- */
-
-int
-header_hrhfilesys(struct variable *vp,
-                 oid * name,
-                 size_t * length,
-                 int exact, size_t * var_len, WriteMethod ** write_method)
-{
-#define HRFSYS_ENTRY_NAME_LENGTH	11
-    oid             newname[MAX_OID_LEN];
-    int             fsys_idx, LowIndex = -1;
-    int             result;
-
-    DEBUGMSGTL(("host/hr_filesys", "var_hrhfilesys: "));
-    DEBUGMSGOID(("host/hr_filesys", name, *length));
-    DEBUGMSG(("host/hr_filesys", " %d\n", exact));
-
-    memcpy((char *) newname, (char *) vp->name, vp->namelen * sizeof(oid));
-    /*
-     * Find "next" file system entry 
-     */
-
-    Init_HR_FileSys();
-    for (;;) {
-        fsys_idx = Get_Next_HR_FileSys();
-        if (fsys_idx == -1)
-            break;
-        newname[HRFSYS_ENTRY_NAME_LENGTH] = fsys_idx;
-        result = snmp_oid_compare(name, *length, newname, vp->namelen + 1);
-        if (exact && (result == 0)) {
-            LowIndex = fsys_idx;
-            break;
-        }
-        if ((!exact && (result < 0)) &&
-            (LowIndex == -1 || fsys_idx < LowIndex)) {
-            LowIndex = fsys_idx;
-#ifdef HRFS_MONOTONICALLY_INCREASING
-            break;
-#endif
-        }
-    }
-
-    if (LowIndex == -1) {
-        DEBUGMSGTL(("host/hr_filesys", "... index out of range\n"));
-        return (MATCH_FAILED);
-    }
-
-    memcpy((char *) name, (char *) newname,
-           (vp->namelen + 1) * sizeof(oid));
-    *length = vp->namelen + 1;
-    *write_method = 0;
-    *var_len = sizeof(long);    /* default to 'long' results */
-
-    DEBUGMSGTL(("host/hr_filesys", "... get filesys stats "));
-    DEBUGMSGOID(("host/hr_filesys", name, *length));
-    DEBUGMSG(("host/hr_filesys", "\n"));
-
-    return LowIndex;
-}
-
-
-oid             fsys_type_id[] = { 1, 3, 6, 1, 2, 1, 25, 3, 9, 1 };     /* hrFSOther */
-int             fsys_type_len =
-    sizeof(fsys_type_id) / sizeof(fsys_type_id[0]);
-
-
-
-        /*********************
-	 *
-	 *  System specific implementation functions
-	 *
-	 *********************/
-
-
-u_char         *
-var_hrhfilesys(struct variable *vp,
-              oid * name,
-              size_t * length,
-              int exact, size_t * var_len, WriteMethod ** write_method)
-{
-    int             fsys_idx;
-    static char     string[1024];
-
-    fsys_idx =
-        header_hrhfilesys(vp, name, length, exact, var_len, write_method);
-    if (fsys_idx == MATCH_FAILED)
-        return NULL;
-
-    switch (vp->magic) {
-    case HRFSYS_INDEX:
-        long_return = fsys_idx;
-        return (u_char *) & long_return;
-    case HRFSYS_MOUNT:
-        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), "%s", HRFS_entry->device);
-            string[ sizeof(string)-1 ] = 0;
-        } else
-            string[0] = '\0';
-        *var_len = strlen(string);
-        return (u_char *) string;
-
-    case HRFSYS_TYPE:
-        fsys_type_id[fsys_type_len - 1] = 
-            (HRFS_entry->type > _NETSNMP_FS_TYPE_LOCAL ?
-                                 NETSNMP_FS_TYPE_OTHER : HRFS_entry->type);
-        *var_len = sizeof(fsys_type_id);
-        return (u_char *) fsys_type_id;
-
-    case HRFSYS_ACCESS:
-	long_return = HRFS_entry->flags & NETSNMP_FS_FLAG_RONLY ? 2 : 1;
-        return (u_char *) & long_return;
-    case HRFSYS_BOOT:
-	long_return = HRFS_entry->flags & NETSNMP_FS_FLAG_BOOTABLE ? 1 : 2;
-        return (u_char *) & long_return;
-    case HRFSYS_STOREIDX:
-        long_return = fsys_idx + NETSNMP_MEM_TYPE_MAX;
-        return (u_char *) & long_return;
-    case HRFSYS_FULLDUMP:
-        return when_dumped(HRFS_entry->path, FULL_DUMP, var_len);
-    case HRFSYS_PARTDUMP:
-        return when_dumped(HRFS_entry->path, PART_DUMP, var_len);
-    default:
-        DEBUGMSGTL(("snmpd", "unknown sub-id %d in var_hrhfilesys\n",
-                    vp->magic));
-    }
-    return NULL;
-}
-
-
-        /*********************
-	 *
-	 *  Internal implementation functions
-	 *
-	 *********************/
-static int      HRFS_index;
-
-void
-Init_HR_FileSys(void)
-{
-    netsnmp_cache *c = netsnmp_fsys_get_cache();
-    netsnmp_cache_check_and_reload( c );
-
-    HRFS_entry = NULL;
-    HRFS_index = 0;
-}
-
-int
-Get_Next_HR_FileSys(void)
-{
-    if ( HRFS_entry ) {
-        HRFS_entry = netsnmp_fsys_get_next( HRFS_entry );
-    } else {     
-        HRFS_entry = netsnmp_fsys_get_first();
-    }
-    /* Skip "inactive" entries */
-    while ( HRFS_entry && !(HRFS_entry->flags & NETSNMP_FS_FLAG_ACTIVE))
-        HRFS_entry = netsnmp_fsys_get_next( HRFS_entry );
-
-    HRFS_index = (HRFS_entry ? HRFS_entry->idx.oids[0] : -1 );
-    return HRFS_index;
-}
-
-
-
-static u_char  *
-when_dumped(char *filesys, int level, size_t * length)
-{
-    time_t          dumpdate = 0, tmp;
-    FILE           *dump_fp;
-    char            line[1024];
-    char           *cp1, *cp2, *cp3;
-
-    /*
-     * Look for the relevent entries in /etc/dumpdates
-     *
-     * This is complicated by the fact that disks are
-     *   mounted using block devices, but dumps are
-     *   done via the raw character devices.
-     * Thus the device names in /etc/dumpdates and
-     *   /etc/mnttab don't match.
-     *   These comparisons are therefore made using the
-     *   final portion of the device name only.
-     */
-
-    if (*filesys == '\0')       /* No filesystem name? */
-        return date_n_time(NULL, length);
-    cp1 = strrchr(filesys, '/');        /* Find the last element of the current FS */
-
-    if (cp1 == NULL)
-        cp1 = filesys;
-
-    if ((dump_fp = fopen("/etc/dumpdates", "r")) == NULL)
-        return date_n_time(NULL, length);
-
-    while (fgets(line, sizeof(line), dump_fp) != NULL) {
-        cp2 = strchr(line, ' ');        /* Start by looking at the device name only */
-        if (cp2 != NULL) {
-            *cp2 = '\0';
-            cp3 = strrchr(line, '/');   /* and find the last element */
-            if (cp3 == NULL)
-                cp3 = line;
-
-            if (strcmp(cp1, cp3) != 0)  /* Wrong FS */
-                continue;
-
-            ++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(0xFF & *cp2))
-                    ++cp2;
-
-                dumpdate = ctime_to_timet(cp2);
-                fclose(dump_fp);
-                return date_n_time(&dumpdate, length);
-            } else {            /* Partial Dump */
-                if (*(cp2++) == '0')
-                    continue;   /* Not interested in full dumps */
-                while (isspace(0xFF & *cp2))
-                    ++cp2;
-
-                tmp = ctime_to_timet(cp2);
-                if (tmp > dumpdate)
-                    dumpdate = tmp;     /* Remember the 'latest' partial dump */
-            }
-        }
-    }
-
-    fclose(dump_fp);
-
-    return date_n_time(&dumpdate, length);
-}
-
-
-#define RAW_DEVICE_PREFIX	"/dev/rdsk"
-#define COOKED_DEVICE_PREFIX	"/dev/dsk"
-
-char           *
-cook_device(char *dev)
-{
-    static char     cooked_dev[SNMP_MAXPATH+1];
-
-    if (!strncmp(dev, RAW_DEVICE_PREFIX, strlen(RAW_DEVICE_PREFIX))) {
-        strlcpy(cooked_dev, COOKED_DEVICE_PREFIX, sizeof(cooked_dev));
-        strlcat(cooked_dev, dev + strlen(RAW_DEVICE_PREFIX),
-                sizeof(cooked_dev));
-    } else {
-        strlcpy(cooked_dev, dev, sizeof(cooked_dev));
-    }
-
-    return cooked_dev;
-}
-
-
-int
-Get_FSIndex(char *dev)
-{
-    netsnmp_fsys_info *fsys;
-
-    fsys = netsnmp_fsys_by_device( dev, NETSNMP_FS_FIND_EXIST );
-    return (fsys ? fsys->idx.oids[0] : -1 );
-}
-
-long
-Get_FSSize(char *dev)
-{
-    netsnmp_fsys_info *fsys;
-
-    fsys = netsnmp_fsys_by_device( dev, NETSNMP_FS_FIND_EXIST );
-    if ( fsys )       
-        return netsnmp_fsys_size( fsys );
-    else
-        return -1;
-}
-
-int
-Check_HR_FileSys_NFS (void)
-{
-    return (HRFS_entry->flags & NETSNMP_FS_FLAG_REMOTE) ? 1 : 0;
-}
diff --git a/agent/mibgroup/host/hrh_filesys.h b/agent/mibgroup/host/hrh_filesys.h
deleted file mode 100644
index 568917e..0000000
--- a/agent/mibgroup/host/hrh_filesys.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- *  Host Resources MIB - file system device group interface (HAL rewrite) - hrh_filesys.h
- *
- */
-#ifndef _MIBGROUP_HRFSYS_H
-#define _MIBGROUP_HRFSYS_H
-
-extern void     init_hrh_filesys(void);
-extern void     Init_HR_FileSys(void);
-extern FindVarMethod var_hrhfilesys;
-extern int      Get_Next_HR_FileSys(void);
-extern int      Check_HR_FileSys_NFS(void);
-
-extern int      Get_FSIndex(char *);
-extern long     Get_FSSize(char *);     /* Temporary */
-
-config_exclude( host/hr_filesys )
-
-#endif                          /* _MIBGROUP_HRFSYS_H */
diff --git a/agent/mibgroup/host/hrh_storage.c b/agent/mibgroup/host/hrh_storage.c
deleted file mode 100644
index ca2f854..0000000
--- a/agent/mibgroup/host/hrh_storage.c
+++ /dev/null
@@ -1,520 +0,0 @@
-/*
- *  Host Resources MIB - storage group implementation - hrh_storage.c
- *
- */
-
-#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/hardware/memory.h>
-#include <net-snmp/agent/hardware/fsys.h>
-#include "host_res.h"
-#include "hrh_filesys.h"
-#include "hrh_storage.h"
-#include "hr_disk.h"
-#include <net-snmp/utilities.h>
-
-
-#include <sys/types.h>
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_UNISTD_H
-#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 <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
-#if HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-#if HAVE_STRING_H
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-
-#include <net-snmp/output_api.h>
-
-#include <net-snmp/agent/agent_read_config.h>
-#include <net-snmp/library/read_config.h>
-
-#define HRSTORE_MONOTONICALLY_INCREASING
-
-        /*********************
-	 *
-	 *  Kernel & interface information,
-	 *   and internal forward declarations
-	 *
-	 *********************/
-
-
-extern netsnmp_fsys_info *HRFS_entry;
-
-static void parse_storage_config(const char *, char *);
-
-        /*********************
-	 *
-	 *  Initialisation & common implementation functions
-	 *
-	 *********************/
-int             Get_Next_HR_Store(void);
-void            Init_HR_Store(void);
-int             header_hrstore(struct variable *, oid *, size_t *, int,
-                               size_t *, WriteMethod **);
-void*           header_hrstoreEntry(struct variable *, oid *, size_t *,
-                                    int, size_t *, WriteMethod **);
-Netsnmp_Node_Handler handle_memsize;
-
-
-#define	HRSTORE_MEMSIZE		1
-#define	HRSTORE_INDEX		2
-#define	HRSTORE_TYPE		3
-#define	HRSTORE_DESCR		4
-#define	HRSTORE_UNITS		5
-#define	HRSTORE_SIZE		6
-#define	HRSTORE_USED		7
-#define	HRSTORE_FAILS		8
-
-struct variable2 hrstore_variables[] = {
-    {HRSTORE_INDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {1}},
-    {HRSTORE_TYPE, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {2}},
-    {HRSTORE_DESCR, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {3}},
-    {HRSTORE_UNITS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {4}},
-    {HRSTORE_SIZE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {5}},
-    {HRSTORE_USED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {6}},
-    {HRSTORE_FAILS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_hrstore, 1, {7}}
-};
-oid             hrstore_variables_oid[] = { 1, 3, 6, 1, 2, 1, 25, 2 };
-oid             hrMemorySize_oid[]   = { 1, 3, 6, 1, 2, 1, 25, 2, 2 };
-oid             hrStorageTable_oid[] = { 1, 3, 6, 1, 2, 1, 25, 2, 3, 1 };
-
-
-void
-init_hrh_storage(void)
-{
-    char *appname;
-
-    netsnmp_register_scalar(
-        netsnmp_create_handler_registration("host/hrMemorySize", handle_memsize,
-                           hrMemorySize_oid, OID_LENGTH(hrMemorySize_oid),
-                                             HANDLER_CAN_RONLY));
-    REGISTER_MIB("host/hr_storage", hrstore_variables, variable2,
-                 hrStorageTable_oid);
-
-    appname = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                    NETSNMP_DS_LIB_APPTYPE);
-    netsnmp_ds_register_config(ASN_BOOLEAN, appname, "skipNFSInHostResources", 
-			       NETSNMP_DS_APPLICATION_ID,
-			       NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES);
-
-    netsnmp_ds_register_config(ASN_BOOLEAN, appname, "realStorageUnits",
-                   NETSNMP_DS_APPLICATION_ID,
-                   NETSNMP_DS_AGENT_REALSTORAGEUNITS);
-
-    snmpd_register_config_handler("storageUseNFS", parse_storage_config, NULL,
-	"1 | 2\t\t(1 = enable, 2 = disable)");
-}
-
-static int storageUseNFS = 1;	/* Default to reporting NFS mounts as NetworkDisk */
-
-static void
-parse_storage_config(const char *token, char *cptr)
-{
-    char *val;
-    int ival;
-    char *st;
-
-    val = strtok_r(cptr, " \t", &st);
-    if (!val) {
-        config_perror("Missing FLAG parameter in storageUseNFS");
-        return;
-    }
-    ival = atoi(val);
-    if (ival < 1 || ival > 2) {
-        config_perror("storageUseNFS must be 1 or 2");
-        return;
-    }
-    storageUseNFS = (ival == 1) ? 1 : 0;
-}
-
-/*
- * header_hrstoreEntry(...
- * 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
- * 
- */
-
-void *
-header_hrstoreEntry(struct variable *vp,
-                    oid * name,
-                    size_t * length,
-                    int exact,
-                    size_t * var_len, WriteMethod ** write_method)
-{
-#define HRSTORE_ENTRY_NAME_LENGTH	11
-    oid             newname[MAX_OID_LEN];
-    int             storage_idx, LowIndex = -1;
-    int             result;
-    int                  idx = -1;
-    netsnmp_memory_info *mem  = NULL;
-
-    DEBUGMSGTL(("host/hr_storage", "var_hrstoreEntry: request "));
-    DEBUGMSGOID(("host/hr_storage", name, *length));
-    DEBUGMSG(("host/hr_storage", " exact=%d\n", exact));
-
-    memcpy((char *) newname, (char *) vp->name,
-           (int) vp->namelen * sizeof(oid));
-    result = snmp_oid_compare(name, *length, vp->name, vp->namelen);
-
-    DEBUGMSGTL(("host/hr_storage", "var_hrstoreEntry: compare "));
-    DEBUGMSGOID(("host/hr_storage", vp->name, vp->namelen));
-    DEBUGMSG(("host/hr_storage", " => %d\n", result));
-
-
-    if (result < 0 ||
-        *length <= HRSTORE_ENTRY_NAME_LENGTH ) {
-       /*
-        * Requested OID too early or too short to refer
-        *   to a valid row (for the current column object).
-        * GET requests should fail, GETNEXT requests
-        *   should use the first row.
-        */
-        if ( exact )
-            return NULL;
-        netsnmp_memory_load();
-        mem = netsnmp_memory_get_first( 0 );
-    }
-    else {
-        /*
-         * Otherwise, retrieve the requested
-         *  (or following) row as appropriate.
-         */
-        if ( exact && *length > HRSTORE_ENTRY_NAME_LENGTH+1 )
-            return NULL;   /* Too long for a valid instance */
-        idx = name[ HRSTORE_ENTRY_NAME_LENGTH ];
-        if ( idx < NETSNMP_MEM_TYPE_MAX ) {
-            netsnmp_memory_load();
-            mem = ( exact ? netsnmp_memory_get_byIdx( idx, 0 ) :
-                       netsnmp_memory_get_next_byIdx( idx, 0 ));
-        }
-    }
-
-    /*
-     * If this matched a memory-based entry, then
-     *    update the OID parameter(s) for GETNEXT requests.
-     */
-    if ( mem ) {
-        if ( !exact ) {
-            newname[ HRSTORE_ENTRY_NAME_LENGTH ] = mem->idx;
-            memcpy((char *) name, (char *) newname,
-                   ((int) vp->namelen + 1) * sizeof(oid));
-            *length = vp->namelen + 1;
-        }
-    }
-    /*
-     * If this didn't match a memory-based entry,
-     *   then consider the disk-based storage.
-     */
-    else {
-        Init_HR_Store();
-        for (;;) {
-            storage_idx = Get_Next_HR_Store();
-            DEBUGMSG(("host/hr_storage", "(index %d ....", storage_idx));
-            if (storage_idx == -1)
-                break;
-            newname[HRSTORE_ENTRY_NAME_LENGTH] = storage_idx;
-            DEBUGMSGOID(("host/hr_storage", newname, *length));
-            DEBUGMSG(("host/hr_storage", "\n"));
-            result = snmp_oid_compare(name, *length, newname, vp->namelen + 1);
-            if (exact && (result == 0)) {
-                LowIndex = storage_idx;
-                /*
-                 * Save storage status information 
-                 */
-                break;
-            }
-            if ((!exact && (result < 0)) &&
-                (LowIndex == -1 || storage_idx < LowIndex)) {
-                LowIndex = storage_idx;
-                /*
-                 * Save storage status information 
-                 */
-#ifdef HRSTORE_MONOTONICALLY_INCREASING
-                break;
-#endif
-            }
-        }
-        if ( LowIndex != -1 ) {
-            if ( !exact ) {
-                newname[ HRSTORE_ENTRY_NAME_LENGTH ] = LowIndex;
-                memcpy((char *) name, (char *) newname,
-                       ((int) vp->namelen + 1) * sizeof(oid));
-                *length = vp->namelen + 1;
-            }
-            mem = (netsnmp_memory_info*)0xffffffff;   /* To indicate 'success' */
-        }
-    }
-
-    *write_method = (WriteMethod*)0;
-    *var_len = sizeof(long);    /* default to 'long' results */
-
-    /*
-     *  ... and return the appropriate row
-     */
-    DEBUGMSGTL(("host/hr_storage", "var_hrstoreEntry: process "));
-    DEBUGMSGOID(("host/hr_storage", name, *length));
-    DEBUGMSG(("host/hr_storage", " (%p)\n", mem));
-    return (void*)mem;
-}
-
-oid             storage_type_id[] = { 1, 3, 6, 1, 2, 1, 25, 2, 1, 1 };  /* hrStorageOther */
-int             storage_type_len =
-    sizeof(storage_type_id) / sizeof(storage_type_id[0]);
-
-        /*********************
-	 *
-	 *  System specific implementation functions
-	 *
-	 *********************/
-
-int
-handle_memsize(netsnmp_mib_handler *handler,
-                netsnmp_handler_registration *reginfo,
-                netsnmp_agent_request_info *reqinfo,
-                netsnmp_request_info *requests)
-{
-    netsnmp_memory_info *mem_info;
-    int val;
-
-    /*
-     * We just need to handle valid GET requests, as invalid instances
-     *   are rejected automatically, and (valid) GETNEXT requests are
-     *   converted into the appropriate GET request.
-     *
-     * We also only ever receive one request at a time.
-     */
-    switch (reqinfo->mode) {
-    case MODE_GET:
-        netsnmp_memory_load();
-        mem_info = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_PHYSMEM, 0 );
-        if ( !mem_info || mem_info->size == -1 || mem_info->units == -1 )
-            netsnmp_set_request_error( reqinfo, requests, SNMP_NOSUCHOBJECT );
-	else {
-            val  =  mem_info->size;     /* memtotal */
-            val *= (mem_info->units/1024);
-            snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER,
-                                     (u_char *)&val, sizeof(val));
-        }
-        return SNMP_ERR_NOERROR;
-
-    default:
-        /*
-         * we should never get here, so this is a really bad error 
-         */
-        snmp_log(LOG_ERR, "unknown mode (%d) in handle_memsize\n",
-                 reqinfo->mode);
-        return SNMP_ERR_GENERR;
-    }
-
-    return SNMP_ERR_NOERROR;
-}
-
-
-u_char         *
-var_hrstore(struct variable *vp,
-            oid * name,
-            size_t * length,
-            int exact, size_t * var_len, WriteMethod ** write_method)
-{
-    int             store_idx = 0;
-    static char     string[1024];
-    void                *ptr;
-    netsnmp_memory_info *mem = NULL;
-
-really_try_next:
-	ptr = header_hrstoreEntry(vp, name, length, exact, var_len,
-					write_method);
-	if (ptr == NULL)
-	    return NULL;
-
-        store_idx = name[ HRSTORE_ENTRY_NAME_LENGTH ];
-        if (HRFS_entry &&
-	    store_idx > NETSNMP_MEM_TYPE_MAX &&
-            netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
-                                   NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES) &&
-            Check_HR_FileSys_NFS())
-            return NULL;
-        if (store_idx <= NETSNMP_MEM_TYPE_MAX ) {
-	    mem = (netsnmp_memory_info*)ptr;
-        }
-
-
-
-    switch (vp->magic) {
-    case HRSTORE_INDEX:
-        long_return = store_idx;
-        return (u_char *) & long_return;
-    case HRSTORE_TYPE:
-        if (store_idx > NETSNMP_MEM_TYPE_MAX)
-            if (HRFS_entry->flags & NETSNMP_FS_FLAG_REMOTE )
-                storage_type_id[storage_type_len - 1] = 10;     /* Network Disk */
-            else if (HRFS_entry->flags & NETSNMP_FS_FLAG_REMOVE )
-                storage_type_id[storage_type_len - 1] = 5;      /* Removable Disk */
-            else
-                storage_type_id[storage_type_len - 1] = 4;      /* Assume fixed */
-        else
-            switch (store_idx) {
-            case NETSNMP_MEM_TYPE_PHYSMEM:
-            case NETSNMP_MEM_TYPE_USERMEM:
-                storage_type_id[storage_type_len - 1] = 2;      /* RAM */
-                break;
-            case NETSNMP_MEM_TYPE_VIRTMEM:
-            case NETSNMP_MEM_TYPE_SWAP:
-                storage_type_id[storage_type_len - 1] = 3;      /* Virtual Mem */
-                break;
-            default:
-                storage_type_id[storage_type_len - 1] = 1;      /* Other */
-                break;
-            }
-        *var_len = sizeof(storage_type_id);
-        return (u_char *) storage_type_id;
-    case HRSTORE_DESCR:
-        if (store_idx > NETSNMP_MEM_TYPE_MAX) {
-            strlcpy(string, HRFS_entry->path, sizeof(string));
-            *var_len = strlen(string);
-            return (u_char *) string;
-        } else {
-            if ( !mem || !mem->descr )
-                goto try_next;
-            *var_len = strlen(mem->descr);
-            return (u_char *) mem->descr;
-        }
-    case HRSTORE_UNITS:
-        if (store_idx > NETSNMP_MEM_TYPE_MAX) {
-            if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
-                    NETSNMP_DS_AGENT_REALSTORAGEUNITS))
-                long_return = HRFS_entry->units & 0xffffffff;
-            else
-                long_return = HRFS_entry->units_32;
-        } else {
-            if ( !mem || mem->units == -1 )
-                goto try_next;
-            long_return = mem->units;
-        }
-        return (u_char *) & long_return;
-    case HRSTORE_SIZE:
-        if (store_idx > NETSNMP_MEM_TYPE_MAX) {
-            if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
-                    NETSNMP_DS_AGENT_REALSTORAGEUNITS))
-                long_return = HRFS_entry->size & 0xffffffff;
-            else
-                long_return = HRFS_entry->size_32;
-        } else {
-            if ( !mem || mem->size == -1 )
-                goto try_next;
-            long_return = mem->size;
-        }
-        return (u_char *) & long_return;
-    case HRSTORE_USED:
-        if (store_idx > NETSNMP_MEM_TYPE_MAX) {
-            if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
-                    NETSNMP_DS_AGENT_REALSTORAGEUNITS))
-                long_return = HRFS_entry->used & 0xffffffff;
-            else
-                long_return = HRFS_entry->used_32;
-        } else {
-            if ( !mem || mem->size == -1 || mem->free == -1 )
-                goto try_next;
-            long_return = mem->size - mem->free;
-        }
-        return (u_char *) & long_return;
-    case HRSTORE_FAILS:
-        if (store_idx > NETSNMP_MEM_TYPE_MAX)
-#if NETSNMP_NO_DUMMY_VALUES
-	    goto try_next;
-#else
-            long_return = 0;
-#endif
-        else {
-            if ( !mem || mem->other == -1 )
-                goto try_next;
-            long_return = mem->other;
-        }
-        return (u_char *) & long_return;
-    default:
-        DEBUGMSGTL(("snmpd", "unknown sub-id %d in var_hrstore\n",
-                    vp->magic));
-    }
-    return NULL;
-
-  try_next:
-    if (!exact)
-        goto really_try_next;
-
-    return NULL;
-}
-
-
-        /*********************
-	 *
-	 *  Internal implementation functions
-	 *
-	 *********************/
-
-static int      HRS_index;
-
-void
-Init_HR_Store(void)
-{
-    HRS_index = 0;
-    Init_HR_FileSys();
-}
-
-int
-Get_Next_HR_Store(void)
-{
-    /*
-     * File-based storage 
-     */
-	for (;;) {
-    	HRS_index = Get_Next_HR_FileSys();
-		if (HRS_index >= 0) {
-			if (!(netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
-							NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES) && 
-						Check_HR_FileSys_NFS())) {
-				return HRS_index + NETSNMP_MEM_TYPE_MAX;	
-			}
-		} else {
-			return -1;
-		}	
-	}
-}
-
diff --git a/agent/mibgroup/host/hrh_storage.h b/agent/mibgroup/host/hrh_storage.h
deleted file mode 100644
index e872345..0000000
--- a/agent/mibgroup/host/hrh_storage.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- *  Host Resources MIB - storage group interface (HAL rewrite) - hrh_storage.h
- *
- */
-#ifndef _MIBGROUP_HRSTORAGE_H
-#define _MIBGROUP_HRSTORAGE_H
-
-config_require(hardware/memory)
-config_require(hardware/fsys)
-config_require(host/hrh_filesys)
-
-config_exclude( host/hr_storage )
-
-extern void     init_hrh_storage(void);
-extern FindVarMethod var_hrstore;
-
-
-#define	HRS_TYPE_MBUF		1
-#define	HRS_TYPE_MEM		2
-#define	HRS_TYPE_SWAP		3
-#define	HRS_TYPE_FIXED_MAX	3     /* the largest fixed type */
-
-#endif                          /* _MIBGROUP_HRSTORAGE_H */
diff --git a/agent/mibgroup/host_res.h b/agent/mibgroup/host_res.h
index 1dba388..fcb4db9 100644
--- a/agent/mibgroup/host_res.h
+++ b/agent/mibgroup/host_res.h
@@ -17,16 +17,16 @@
 #include <net-snmp/agent/snmp_vars.h>
 #include <net-snmp/agent/var_struct.h>
 
-#if defined(NETSNMP_IFNET_NEEDS_KERNEL) && !defined(_KERNEL)
+#if defined(IFNET_NEEDS_KERNEL) && !defined(_KERNEL)
 #define _KERNEL 1
 #define _I_DEFINED_KERNEL
 #endif
-#if HAVE_SYS_SOCKET_H
+#if defined (WIN32) && !defined (cygwin)
+#include <winsock.h>
+#else /* WIN32 */
 #include <sys/socket.h>
-#endif
-#if HAVE_NET_IF_H
 #include <net/if.h>
-#endif
+#endif /* WIN32 */
 #ifdef _I_DEFINED_KERNEL
 #undef _KERNEL
 #endif
@@ -67,8 +67,8 @@
 #define	HRDEV_NVMEM	21
 
 #define	HRDEV_TYPE_MAX	22      /* one greater than largest device type */
-#define	HRDEV_TYPE_SHIFT  16
-#define	HRDEV_TYPE_MASK 0xffff
+#define	HRDEV_TYPE_SHIFT  8
+#define	HRDEV_TYPE_MASK 0xff
 
 typedef void    (*PFV) (void);
 typedef int     (*PFI) (int);
diff --git a/agent/mibgroup/if-mib/data_access/interface.c b/agent/mibgroup/if-mib/data_access/interface.c
index 8cb73e8..a7a5140 100644
--- a/agent/mibgroup/if-mib/data_access/interface.c
+++ b/agent/mibgroup/if-mib/data_access/interface.c
@@ -1,28 +1,18 @@
 /*
  *  Interface MIB architecture support
  *
- * $Id$
+ * $Id: interface.c 17263 2008-10-16 09:56:01Z jsafranek $
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
+#include "mibII/mibII_common.h"
+#include "if-mib/ifTable/ifTable_constants.h"
+#include "if-mib/data_access/interface.h"
 
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/library/snmp_enum.h>
 #include <net-snmp/data_access/interface.h>
 
-#include "mibII/mibII_common.h"
-#include "if-mib/ifTable/ifTable.h"
-#include "if-mib/data_access/interface.h"
-
-netsnmp_feature_child_of(interface_all, libnetsnmpmibs)
-netsnmp_feature_child_of(interface, interface_all)
-netsnmp_feature_child_of(interface_access_entry_set_admin_status, interface_all)
-netsnmp_feature_child_of(interface_legacy, interface_all)
-
-#ifdef NETSNMP_FEATURE_REQUIRE_INTERFACE_ACCESS_ENTRY_SET_ADMIN_STATUS
-netsnmp_feature_require(interface_arch_set_admin_status)
-#endif /* NETSNMP_FEATURE_REQUIRE_INTERFACE_ACCESS_ENTRY_SET_ADMIN_STATUS */
 
 /**---------------------------------------------------------------------*/
 /*
@@ -260,8 +250,8 @@ netsnmp_access_interface_entry_get_by_name(netsnmp_container *container,
         return NULL;
     }
 
-    tmp.name = NETSNMP_REMOVE_CONST(char *, name);
-    return (netsnmp_interface_entry*)CONTAINER_FIND(container->next, &tmp);
+    tmp.name = (char *)name;
+    return CONTAINER_FIND(container->next, &tmp);
 }
 
 /**
@@ -347,7 +337,6 @@ netsnmp_access_interface_entry_free(netsnmp_interface_entry * entry)
     free(entry);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_INTERFACE_LEGACY
 /*
  * Blech - backwards compatible mibII/interfaces style interface
  * functions, so we don't have to update older modules to use
@@ -357,60 +346,42 @@ netsnmp_access_interface_entry_free(netsnmp_interface_entry * entry)
     ! defined( NETSNMP_NO_BACKWARDS_COMPATABILITY )
 
 static netsnmp_iterator *it = NULL;
-static ifTable_rowreq_ctx *row = NULL;
+static netsnmp_container *c = NULL;
+static netsnmp_interface_entry *e = NULL;
 
 /**
- * Setup an iterator for scanning the interfaces using the cached entry
- * from if-mib/ifTable.
+ * 
  */
 void
 Interface_Scan_Init(void)
 {
-    netsnmp_container *cont = NULL;
-    netsnmp_cache *cache    = NULL; 
-    
-    cache = netsnmp_cache_find_by_oid(ifTable_oid, ifTable_oid_size);
-    if (NULL != cache) {
-        netsnmp_cache_check_and_reload(cache);
-        cont = (netsnmp_container*) cache->magic;
-    }
+    /*
+     * ifTable container shouldn't change, so we shouldn' have to
+     * re-fetch it every time.
+     */
+    if (NULL != c)
+        netsnmp_access_interface_container_free(c, 0);
+
+    c = netsnmp_access_interface_container_load(NULL, 0);
     
-    if (NULL != cont) {
+    if (NULL != c) {
         if (NULL != it)
             ITERATOR_RELEASE(it);
     
-        it = CONTAINER_ITERATOR(cont);
+        it = CONTAINER_ITERATOR(c);
     }
    
     if (NULL != it)
-        row = (ifTable_rowreq_ctx*)ITERATOR_FIRST(it);
+        e = ITERATOR_FIRST(it);
 }
 
 int
 Interface_Scan_Next(short *index, char *name, netsnmp_interface_entry **entry,
                     void *dc)
 {
-    int returnIndex = 0;
-    int ret;
-    if (index)
-        returnIndex = *index;
-
-    ret = Interface_Scan_NextInt( &returnIndex, name, entry, dc );
-    if (index)
-        *index = (returnIndex & 0x8fff);
-    return ret;
-}
-
-int
-Interface_Scan_NextInt(int *index, char *name, netsnmp_interface_entry **entry,
-                    void *dc)
-{
-    netsnmp_interface_entry* e = NULL;
-
-    if (NULL == row)
+    if (NULL == e)
         return 0;
-    
-    e = row->data.ifentry;
+
     if(index)
         *index = e->index;
 
@@ -420,14 +391,13 @@ Interface_Scan_NextInt(int *index, char *name, netsnmp_interface_entry **entry,
     if (entry)
         *entry = e;
 
-    row = (ifTable_rowreq_ctx*) ITERATOR_NEXT(it);
+    e = ITERATOR_NEXT(it);
 
     return 1;
 }
 #endif /* NETSNMP_NO_BACKWARDS_COMPATABILITY */
-#endif /* NETSNMP_FEATURE_REMOVE_INTERFACE_LEGACY */
 
-#ifndef NETSNMP_FEATURE_REMOVE_INTERFACE_ACCESS_ENTRY_SET_ADMIN_STATUS
+
 /**
  *
  * @retval 0   : success
@@ -456,7 +426,6 @@ netsnmp_access_interface_entry_set_admin_status(netsnmp_interface_entry * entry,
     return rc;
 }
 #endif
-#endif /* NETSNMP_FEATURE_REMOVE_INTERFACE_ACCESS_ENTRY_SET_ADMIN_STATUS */
 
 /**---------------------------------------------------------------------*/
 /*
@@ -485,7 +454,7 @@ _access_interface_entry_release(netsnmp_interface_entry * entry, void *context)
 static void
 _access_interface_entry_save_name(const char *name, oid index)
 {
-    int tmp;
+    oid tmp;
 
     if(NULL == name)
         return;
@@ -493,17 +462,19 @@ _access_interface_entry_save_name(const char *name, oid index)
     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 %" NETSNMP_PRIo "u for %s\n",
+        DEBUGMSGTL(("access:interface:ifIndex", "saved ifIndex %d for %s\n",
                     index, name));
     }
     else
-        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));
+        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 %d != tmp for %s\n",
+                         index, name));
         }
 }
 
@@ -543,81 +514,42 @@ netsnmp_access_interface_entry_update_stats(netsnmp_interface_entry * prev_vals,
         if (NULL == prev_vals->old_stats) {
             return -2;
         }
-        memcpy(prev_vals->old_stats, &prev_vals->stats, sizeof(prev_vals->stats));
+        memcpy(prev_vals->old_stats, &prev_vals->stats, sizeof(new_vals->stats));
     }
 
-        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.ibytes,
+        netsnmp_c64_check32_and_update(&prev_vals->stats.ibytes,
                                        &new_vals->stats.ibytes,
                                        &prev_vals->old_stats->ibytes,
-                                       &need_wrap_check))
-            DEBUGMSGTL(("access:interface",
-                    "Error expanding ifHCInOctets to 64bits\n"));
-
-        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))
-                DEBUGMSGTL(("access:interface",
-                        "Error expanding packet count to 64bits\n"));
-        } else {
-            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.iucast,
+                                       &need_wrap_check);
+        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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.imcast,
                                        &new_vals->stats.imcast,
                                        &prev_vals->old_stats->imcast,
-                                       &need_wrap_check))
-            DEBUGMSGTL(("access:interface",
-                    "Error expanding ifHCInMulticastPkts to 64bits\n"));
-
-        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.ibcast,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.ibcast,
                                        &new_vals->stats.ibcast,
                                        &prev_vals->old_stats->ibcast,
-                                       &need_wrap_check))
-            DEBUGMSGTL(("access:interface",
-                    "Error expanding ifHCInBroadcastPkts to 64bits\n"));
-
-        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.obytes,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.obytes,
                                        &new_vals->stats.obytes,
                                        &prev_vals->old_stats->obytes,
-                                       &need_wrap_check))
-            DEBUGMSGTL(("access:interface",
-                    "Error expanding ifHCOutOctets to 64bits\n"));
-
-        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.oucast,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.oucast,
                                        &new_vals->stats.oucast,
                                        &prev_vals->old_stats->oucast,
-                                       &need_wrap_check))
-            DEBUGMSGTL(("access:interface",
-                    "Error expanding ifHCOutUcastPkts to 64bits\n"));
-
-        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.omcast,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.omcast,
                                        &new_vals->stats.omcast,
                                        &prev_vals->old_stats->omcast,
-                                       &need_wrap_check))
-            DEBUGMSGTL(("access:interface",
-                    "Error expanding ifHCOutMulticastPkts to 64bits\n"));
-
-        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.obcast,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.obcast,
                                        &new_vals->stats.obcast,
                                        &prev_vals->old_stats->obcast,
-                                       &need_wrap_check))
-            DEBUGMSGTL(("access:interface",
-                    "Error expanding ifHCOutBroadcastPkts to 64bits\n"));
-
+                                       &need_wrap_check);
+    
     /*
      * Copy 32 bit counters
      */
@@ -649,23 +581,6 @@ netsnmp_access_interface_entry_update_stats(netsnmp_interface_entry * prev_vals,
 }
 
 /**
- * Calculate stats
- *
- * @retval  0 : success
- * @retval -1 : error
- */
-int
-netsnmp_access_interface_entry_calculate_stats(netsnmp_interface_entry *entry)
-{
-    DEBUGMSGTL(("access:interface", "calculate_stats\n"));
-    if (entry->ns_flags & NETSNMP_INTERFACE_FLAGS_CALCULATE_UCAST) {
-        u64Subtract(&entry->stats.iall, &entry->stats.imcast,
-                &entry->stats.iucast);
-    }
-    return 0;
-}
-
-/**
  * copy interface entry data (after checking for counter wraps)
  *
  * @retval -2 : malloc failed
@@ -687,7 +602,6 @@ netsnmp_access_interface_entry_copy(netsnmp_interface_entry * lhs,
      * update stats
      */
     netsnmp_access_interface_entry_update_stats(lhs, rhs);
-    netsnmp_access_interface_entry_calculate_stats(lhs);
 
     /*
      * update data
@@ -697,7 +611,8 @@ netsnmp_access_interface_entry_copy(netsnmp_interface_entry * lhs,
        (0 == strcmp(lhs->descr, rhs->descr)))
         ;
     else {
-        SNMP_FREE(lhs->descr);
+        if (NULL != lhs->descr)
+            SNMP_FREE(lhs->descr);
         if (rhs->descr) {
             lhs->descr = strdup(rhs->descr);
             if(NULL == lhs->descr)
@@ -725,9 +640,10 @@ netsnmp_access_interface_entry_copy(netsnmp_interface_entry * lhs,
         if(rhs->paddr_len)
             memcpy(lhs->paddr,rhs->paddr,rhs->paddr_len);
     } else {
-        SNMP_FREE(lhs->paddr);
+        if (NULL != lhs->paddr)
+            SNMP_FREE(lhs->paddr);
         if (rhs->paddr) {
-            lhs->paddr = (char*)malloc(rhs->paddr_len);
+            lhs->paddr = malloc(rhs->paddr_len);
             if(NULL == lhs->paddr)
                 return -2;
             memcpy(lhs->paddr,rhs->paddr,rhs->paddr_len);
@@ -865,7 +781,7 @@ _free_interface_config(void)
     netsnmp_conf_if_list   *if_ptr = conf_list, *if_next;
     while (if_ptr) {
         if_next = if_ptr->next;
-        free(NETSNMP_REMOVE_CONST(char *, if_ptr->name));
+        free(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 353b254..74ea4ba 100644
--- a/agent/mibgroup/if-mib/data_access/interface.h
+++ b/agent/mibgroup/if-mib/data_access/interface.h
@@ -1,7 +1,7 @@
 /*
  * interface data access header
  *
- * $Id$
+ * $Id: interface.h 16536 2007-06-18 21:13:46Z hardaker $
  */
 #ifndef NETSNMP_ACCESS_INTERFACE_CONFIG_H
 #define NETSNMP_ACCESS_INTERFACE_CONFIG_H
@@ -32,13 +32,11 @@ config_exclude(mibII/interfaces)
 
 #   if defined( linux )
 
-    config_require(util_funcs)
     config_require(if-mib/data_access/interface_linux)
     config_require(if-mib/data_access/interface_ioctl)
 
-#   elif defined( openbsd3 ) || \
-         defined( freebsd4 ) || defined( freebsd5 ) || defined( freebsd6 ) || \
-         defined( darwin )   || defined( dragonfly ) || defined( netbsd1 )
+#   elif defined( openbsd3 ) || defined( openbsd4 ) || \
+    defined( freebsd4 ) || defined( freebsd5 ) || defined( freebsd6 ) || defined (darwin)
 
     config_require(if-mib/data_access/interface_sysctl)
 
diff --git a/agent/mibgroup/if-mib/data_access/interface_ioctl.c b/agent/mibgroup/if-mib/data_access/interface_ioctl.c
index db2c245..ecc8222 100644
--- a/agent/mibgroup/if-mib/data_access/interface_ioctl.c
+++ b/agent/mibgroup/if-mib/data_access/interface_ioctl.c
@@ -1,10 +1,9 @@
 /*
  *  Interface MIB architecture support
  *
- * $Id$
+ * $Id: interface_ioctl.c 15638 2006-12-06 14:34:11Z rstory $
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include "mibII/mibII_common.h"
 #include "if-mib/ifTable/ifTable_constants.h"
@@ -14,8 +13,6 @@
 #include <net-snmp/data_access/ipaddress.h>
 #include "if-mib/data_access/interface.h"
 
-netsnmp_feature_child_of(interface_ioctl_flags_set, interface_all)
-
 #ifdef HAVE_NET_IF_H
 #include <net/if.h>
 #endif
@@ -70,7 +67,8 @@ _ioctl_get(int fd, int which, struct ifreq *ifrq, const char* name)
         }
     }
 
-    strlcpy(ifrq->ifr_name, name, sizeof(ifrq->ifr_name));
+    strncpy(ifrq->ifr_name, name, sizeof(ifrq->ifr_name));
+    ifrq->ifr_name[ sizeof(ifrq->ifr_name)-1 ] = 0;
     rc = ioctl(fd, which, ifrq);
     if (rc < 0) {
         snmp_log(LOG_ERR,"ioctl %d returned %d\n", which, rc);
@@ -110,7 +108,7 @@ netsnmp_access_interface_ioctl_physaddr_get(int fd,
         SNMP_FREE(ifentry->paddr);
     }
     if(NULL == ifentry->paddr) 
-        ifentry->paddr = (char*)malloc(IFHWADDRLEN);
+        ifentry->paddr = malloc(IFHWADDRLEN);
 
     if(NULL == ifentry->paddr) {
             rc = -4;
@@ -140,7 +138,7 @@ netsnmp_access_interface_ioctl_physaddr_get(int fd,
 #ifdef ARPHRD_ETHER
             switch (ifrq.ifr_hwaddr.sa_family) {
             case ARPHRD_ETHER:
-                ifentry->type = IANAIFTYPE_ETHERNETCSMACD;
+                ifentry->type = 6;
                 break;
 #if defined(ARPHRD_TUNNEL) || defined(ARPHRD_IPGRE) || defined(ARPHRD_SIT)
 #ifdef ARPHRD_TUNNEL
@@ -153,55 +151,50 @@ netsnmp_access_interface_ioctl_physaddr_get(int fd,
 #ifdef ARPHRD_SIT
             case ARPHRD_SIT:
 #endif
-                ifentry->type = IANAIFTYPE_TUNNEL;
+                ifentry->type = 131;
                 break;          /* tunnel */
 #endif
-#ifdef ARPHRD_INFINIBAND
-            case ARPHRD_INFINIBAND:
-                ifentry->type = IANAIFTYPE_INFINIBAND;
-                break;
-#endif
 #ifdef ARPHRD_SLIP
             case ARPHRD_SLIP:
             case ARPHRD_CSLIP:
             case ARPHRD_SLIP6:
             case ARPHRD_CSLIP6:
-                ifentry->type = IANAIFTYPE_SLIP;
+                ifentry->type = 28;
                 break;          /* slip */
 #endif
 #ifdef ARPHRD_PPP
             case ARPHRD_PPP:
-                ifentry->type = IANAIFTYPE_PPP;
+                ifentry->type = 23;
                 break;          /* ppp */
 #endif
 #ifdef ARPHRD_LOOPBACK
             case ARPHRD_LOOPBACK:
-                ifentry->type = IANAIFTYPE_SOFTWARELOOPBACK;
+                ifentry->type = 24;
                 break;          /* softwareLoopback */
 #endif
 #ifdef ARPHRD_FDDI
             case ARPHRD_FDDI:
-                ifentry->type = IANAIFTYPE_FDDI;
+                ifentry->type = 15;
                 break;
 #endif
 #ifdef ARPHRD_ARCNET
             case ARPHRD_ARCNET:
-                ifentry->type = IANAIFTYPE_ARCNET;
+                ifentry->type = 35;
                 break;
 #endif
 #ifdef ARPHRD_LOCALTLK
             case ARPHRD_LOCALTLK:
-                ifentry->type = IANAIFTYPE_LOCALTALK;
+                ifentry->type = 42;
                 break;
 #endif
 #ifdef ARPHRD_HIPPI
             case ARPHRD_HIPPI:
-                ifentry->type = IANAIFTYPE_HIPPI;
+                ifentry->type = 47;
                 break;
 #endif
 #ifdef ARPHRD_ATM
             case ARPHRD_ATM:
-                ifentry->type = IANAIFTYPE_ATM;
+                ifentry->type = 37;
                 break;
 #endif
                 /*
@@ -210,7 +203,6 @@ netsnmp_access_interface_ioctl_physaddr_get(int fd,
             default:
                 DEBUGMSGTL(("access:interface:ioctl", "unknown entry type %d\n",
                             ifrq.ifr_hwaddr.sa_family));
-		ifentry->type = IANAIFTYPE_OTHER;
             } /* switch */
 #endif /* ARPHRD_LOOPBACK */
 
@@ -285,7 +277,6 @@ netsnmp_access_interface_ioctl_flags_get(int fd,
     return rc;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_INTERFACE_IOCTL_FLAGS_SET
 /**
  * interface entry flags ioctl wrapper
  *
@@ -327,7 +318,8 @@ netsnmp_access_interface_ioctl_flags_set(int fd,
         }
     }
 
-    strlcpy(ifrq.ifr_name, ifentry->name, sizeof(ifrq.ifr_name));
+    strncpy(ifrq.ifr_name, ifentry->name, sizeof(ifrq.ifr_name));
+    ifrq.ifr_name[ sizeof(ifrq.ifr_name)-1 ] = 0;
     rc = ioctl(fd, SIOCGIFFLAGS, &ifrq);
     if(rc < 0) {
         snmp_log(LOG_ERR,"error getting flags\n");
@@ -353,7 +345,6 @@ netsnmp_access_interface_ioctl_flags_set(int fd,
 
     return 0;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INTERFACE_IOCTL_FLAGS_SET */
 #endif /* SIOCGIFFLAGS */
 
 #ifdef SIOCGIFMTU
@@ -417,11 +408,7 @@ netsnmp_access_interface_ioctl_ifindex_get(int fd, const char *name)
         return 0;
     }
 
-#if defined(__FreeBSD__)    /* ? Should use HAVE_STRUCT_IFREQ_IFR_INDEX */
-    return ifrq.ifr_index;
-#else
     return ifrq.ifr_ifindex;
-#endif
 #endif /* SIOCGIFINDEX */
 }
 
@@ -484,7 +471,8 @@ netsnmp_access_interface_ioctl_has_ipv4(int sd, const char *if_name,
             if (NULL != ptr)
                 *ptr = 0;
             
-            if (if_index != (int)netsnmp_access_interface_ioctl_ifindex_get(sd, ifrp->ifr_name))
+            if (if_index !=
+                netsnmp_access_interface_ioctl_ifindex_get(sd, ifrp->ifr_name))
                 continue;
         }
 
diff --git a/agent/mibgroup/if-mib/data_access/interface_ioctl.h b/agent/mibgroup/if-mib/data_access/interface_ioctl.h
index d765876..611880b 100644
--- a/agent/mibgroup/if-mib/data_access/interface_ioctl.h
+++ b/agent/mibgroup/if-mib/data_access/interface_ioctl.h
@@ -1,7 +1,7 @@
 /*
  * ioctl interface data access header
  *
- * $Id$
+ * $Id: interface_ioctl.h 13309 2005-10-29 03:30:43Z rstory $
  */
 #ifndef NETSNMP_ACCESS_INTERFACE_IOCTL_H
 #define NETSNMP_ACCESS_INTERFACE_IOCTL_H
diff --git a/agent/mibgroup/if-mib/data_access/interface_linux.c b/agent/mibgroup/if-mib/data_access/interface_linux.c
index 3419811..e698771 100644
--- a/agent/mibgroup/if-mib/data_access/interface_linux.c
+++ b/agent/mibgroup/if-mib/data_access/interface_linux.c
@@ -1,35 +1,17 @@
 /*
  *  Interface MIB architecture support
  *
- * $Id$
+ * $Id: interface_linux.c 18100 2010-02-05 09:48:46Z jsafranek $
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 
-netsnmp_feature_require(fd_event_manager)
-netsnmp_feature_require(delete_prefix_info)
-netsnmp_feature_require(create_prefix_info)
-netsnmp_feature_child_of(interface_arch_set_admin_status, interface_all)
-
-#ifdef NETSNMP_FEATURE_REQUIRE_INTERFACE_ARCH_SET_ADMIN_STATUS
-netsnmp_feature_require(interface_ioctl_flags_set)
-#endif /* NETSNMP_FEATURE_REQUIRE_INTERFACE_ARCH_SET_ADMIN_STATUS */
-
-#ifdef HAVE_PCI_LOOKUP_NAME
-#include <pci/pci.h>
-static struct pci_access *pci_access;
-#endif
-
 #ifdef HAVE_LINUX_ETHTOOL_H
 #include <linux/types.h>
-#ifndef HAVE_PCI_LOOKUP_NAME
 typedef __u64 u64;         /* hack, so we may include kernel's ethtool.h */
 typedef __u32 u32;         /* ditto */
 typedef __u16 u16;         /* ditto */
 typedef __u8 u8;           /* ditto */
-#endif
-
 #include <linux/ethtool.h>
 #endif /* HAVE_LINUX_ETHTOOL_H */
 
@@ -47,37 +29,18 @@ typedef __u8 u8;           /* ditto */
 #include <net-snmp/data_access/interface.h>
 #include <net-snmp/data_access/ipaddress.h>
 #include "if-mib/data_access/interface.h"
-#include "mibgroup/util_funcs.h"
 #include "interface_ioctl.h"
 
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
-#include <errno.h>
 
 #include <linux/sockios.h>
-#include <linux/if_ether.h>
 
 #ifndef IF_NAMESIZE
 #define IF_NAMESIZE 16
 #endif
 
-#ifndef SIOCGMIIPHY
-#define SIOCGMIIPHY 0x8947
-#endif
-
-#ifndef SIOCGMIIREG
-#define SIOCGMIIREG 0x8948
-#endif
-
-#ifdef NETSNMP_ENABLE_IPV6
-#if defined(HAVE_LINUX_RTNETLINK_H)
-#include <linux/rtnetlink.h>
-#ifdef RTMGRP_IPV6_PREFIX
-#define SUPPORT_PREFIX_FLAGS 1
-#endif  /* RTMGRP_IPV6_PREFIX */
-#endif  /* HAVE_LINUX_RTNETLINK_H */
-#endif  /* NETSNMP_ENABLE_IPV6 */
 unsigned long long
 netsnmp_linux_interface_get_if_speed(int fd, const char *name,
         unsigned long long defaultspeed);
@@ -97,16 +60,6 @@ static unsigned short retrans_time_factor = 1;
 #define PROC_SYS_NET_IPVx_BASE_REACHABLE_TIME "/proc/sys/net/ipv%d/neigh/%s/base_reachable_time"
 static const char *proc_sys_basereachable_time;
 static unsigned short basereachable_time_ms = 0;
-#ifdef SUPPORT_PREFIX_FLAGS
-prefix_cbx *prefix_head_list = NULL;
-netsnmp_prefix_listen_info list_info;
-#define IF_PREFIX_ONLINK        0x01
-#define IF_PREFIX_AUTOCONF      0x02
- 
-int netsnmp_prefix_listen(void);
-#endif
-
-
 void
 netsnmp_arch_interface_init(void)
 {
@@ -139,19 +92,6 @@ netsnmp_arch_interface_init(void)
     else {
         proc_sys_basereachable_time = PROC_SYS_NET_IPVx_BASE_REACHABLE_TIME;
     }
-
-#ifdef SUPPORT_PREFIX_FLAGS
-    list_info.list_head = &prefix_head_list;
-    netsnmp_prefix_listen();
-#endif
-
-#ifdef HAVE_PCI_LOOKUP_NAME
-    pci_access = pci_alloc();
-    if (pci_access)
-	pci_init(pci_access);
-    else
-	snmp_log(LOG_ERR, "Unable to create pci access method\n");
-#endif
 }
 
 /*
@@ -188,6 +128,14 @@ _arch_interface_has_ipv6(oid if_index, u_int *flags,
 
     *flags &= ~NETSNMP_INTERFACE_FLAGS_HAS_IPV6;
 
+#ifndef SIOCGMIIPHY
+#define SIOCGMIIPHY 0x8947
+#endif
+
+#ifndef SIOCGMIIREG
+#define SIOCGMIIREG 0x8948
+#endif
+
 #ifdef NETSNMP_ENABLE_IPV6
     /*
      * get ipv6 addresses
@@ -281,69 +229,6 @@ _arch_interface_flags_v4_get(netsnmp_interface_entry *entry)
     }
 }
 
-#ifdef HAVE_PCI_LOOKUP_NAME
-
-/* Get value from sysfs file */
-static int sysfs_get_id(const char *path, unsigned short *id)
-{
-    FILE *fin;
-    int n;
-
-    if (!(fin = fopen(path, "r"))) {
-        DEBUGMSGTL(("access:interface",
-                    "Failed to open %s\n", path));
-	return 0;
-    }
-
-    n = fscanf(fin, "%hx", id);
-    fclose(fin);
-
-    return n == 1;
-}
-
-/* Get interface description for PCI device
- * by using sysfs to find vendor and device
- * then lookup name (-lpci)
- *
- * For software interfaces there is no PCI information
- * so description will not be set.
- */
-static void
-_arch_interface_description_get(netsnmp_interface_entry *entry)
-{
-    const char *descr;
-    char buf[256];
-    unsigned short vendor_id, device_id;
-
-    if (!pci_access)
-	return;
-
-    snprintf(buf, sizeof(buf),
-	     "/sys/class/net/%s/device/vendor", entry->name);
-
-    if (!sysfs_get_id(buf, &vendor_id))
-	return;
-
-    snprintf(buf, sizeof(buf),
-	     "/sys/class/net/%s/device/device", entry->name);
-
-    if (!sysfs_get_id(buf, &device_id))
-	return;
-
-    descr = pci_lookup_name(pci_access, buf, sizeof(buf),
-			    PCI_LOOKUP_VENDOR | PCI_LOOKUP_DEVICE,
-			    vendor_id, device_id, 0, 0);
-    if (descr) {
-	free(entry->descr);
-	entry->descr = strdup(descr);
-    } else {
-        DEBUGMSGTL(("access:interface",
-                    "Failed pci_lookup_name vendor=%#hx device=%#hx\n",
-		    vendor_id, device_id));
-    }
-}
-#endif
-
 
 #ifdef NETSNMP_ENABLE_IPV6
 /**
@@ -460,7 +345,7 @@ _parse_stats(netsnmp_interface_entry *entry, char *stats, int expected)
 
     if ((*stats == 'N') &&
         (0 == strncmp(stats, "No statistics available",
-                      strlen("No statistics available"))))
+                      sizeof("No statistics available"))))
         return -1;
 
     /*
@@ -517,15 +402,16 @@ _parse_stats(netsnmp_interface_entry *entry, char *stats, int expected)
      * subtract out multicast packets from rec_pkt before
      * we store it as unicast counter.
      */
-    entry->ns_flags |= NETSNMP_INTERFACE_FLAGS_CALCULATE_UCAST;
+    rec_pkt -= rec_mcast;
+
     entry->stats.ibytes.low = rec_oct & 0xffffffff;
-    entry->stats.iall.low = rec_pkt & 0xffffffff;
+    entry->stats.iucast.low = rec_pkt & 0xffffffff;
     entry->stats.imcast.low = rec_mcast & 0xffffffff;
     entry->stats.obytes.low = snd_oct & 0xffffffff;
     entry->stats.oucast.low = snd_pkt & 0xffffffff;
 #ifdef SCNuMAX   /* XXX - should be flag for 64-bit variables */
     entry->stats.ibytes.high = rec_oct >> 32;
-    entry->stats.iall.high = rec_pkt >> 32;
+    entry->stats.iucast.high = rec_pkt >> 32;
     entry->stats.imcast.high = rec_mcast >> 32;
     entry->stats.obytes.high = snd_oct >> 32;
     entry->stats.oucast.high = snd_pkt >> 32;
@@ -569,7 +455,7 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
     netsnmp_container *addr_container;
 #endif
 
-    DEBUGMSGTL(("access:interface:container:arch", "load (flags %x)\n",
+    DEBUGMSGTL(("access:interface:container:arch", "load (flags %p)\n",
                 load_flags));
 
     if (NULL == container) {
@@ -580,7 +466,7 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
     if (!(devin = fopen("/proc/net/dev", "r"))) {
         DEBUGMSGTL(("access:interface",
                     "Failed to load Interface Table (linux1)\n"));
-        NETSNMP_LOGONCE((LOG_ERR, "cannot open /proc/net/dev ...\n"));
+        snmp_log(LOG_ERR, "cannot open /proc/net/dev ...\n");
         return -2;
     }
 
@@ -590,7 +476,6 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
     fd = socket(AF_INET, SOCK_DGRAM, 0);
     if(fd < 0) {
         snmp_log(LOG_ERR, "could not create socket\n");
-        fclose(devin);
         return -2;
     }
 
@@ -650,7 +535,7 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
         if ((scan_expected == 10) && ((stats - line) < 6)) {
             snmp_log(LOG_ERR,
                      "interface data format error 2 (%d < 6), line ==|%s|\n",
-                     (int)(stats - line), line);
+                     stats - line, line);
         }
 
         DEBUGMSGTL(("9:access:ifcontainer", "processing '%s'\n", ifstart));
@@ -701,9 +586,9 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
         }
         entry->ns_flags = flags; /* initial flags; we'll set more later */
 
-#ifdef HAVE_PCI_LOOKUP_NAME
-	_arch_interface_description_get(entry);
-#endif
+        /*
+         * xxx-rks: get descr by linking mem from /proc/pci and /proc/iomem
+         */
 
 
         /*
@@ -729,20 +614,19 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
                 {IANAIFTYPE_ISO88025TOKENRING, "tr"},
                 {IANAIFTYPE_FASTETHER, "feth"},
                 {IANAIFTYPE_GIGABITETHERNET,"gig"},
-                {IANAIFTYPE_INFINIBAND,"ib"},
                 {IANAIFTYPE_PPP, "ppp"},
                 {IANAIFTYPE_SLIP, "sl"},
                 {IANAIFTYPE_TUNNEL, "sit"},
                 {IANAIFTYPE_BASICISDN, "ippp"},
                 {IANAIFTYPE_PROPVIRTUAL, "bond"}, /* Bonding driver find fastest slave */
                 {IANAIFTYPE_PROPVIRTUAL, "vad"},  /* ANS driver - ?speed? */
-                {0, NULL}                  /* end of list */
+                {0, 0}                  /* end of list */
             };
 
-            int             len;
+            int             ii, len;
             register pmatch_if pm;
             
-            for (pm = lmatch_if; pm->mi_name; pm++) {
+            for (ii = 0, pm = lmatch_if; pm->mi_name; pm++) {
                 len = strlen(pm->mi_name);
                 if (0 == strncmp(entry->name, pm->mi_name, len)) {
                     entry->type = pm->mi_type;
@@ -753,36 +637,6 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
                 entry->type = IANAIFTYPE_OTHER;
         }
 
-        /*
-         * interface identifier is specified based on physaddr and type
-         */
-        switch (entry->type) {
-        case IANAIFTYPE_ETHERNETCSMACD:
-        case IANAIFTYPE_ETHERNET3MBIT:
-        case IANAIFTYPE_FASTETHER:
-        case IANAIFTYPE_FASTETHERFX:
-        case IANAIFTYPE_GIGABITETHERNET:
-        case IANAIFTYPE_FDDI:
-        case IANAIFTYPE_ISO88025TOKENRING:
-            if (NULL != entry->paddr && ETH_ALEN != entry->paddr_len)
-                break;
-
-            entry->v6_if_id_len = entry->paddr_len + 2;
-            memcpy(entry->v6_if_id, entry->paddr, 3);
-            memcpy(entry->v6_if_id + 5, entry->paddr + 3, 3);
-            entry->v6_if_id[0] ^= 2;
-            entry->v6_if_id[3] = 0xFF;
-            entry->v6_if_id[4] = 0xFE;
-
-            entry->ns_flags |= NETSNMP_INTERFACE_FLAGS_HAS_V6_IFID;
-            break;
-
-        case IANAIFTYPE_SOFTWARELOOPBACK:
-            entry->v6_if_id_len = 0;
-            entry->ns_flags |= NETSNMP_INTERFACE_FLAGS_HAS_V6_IFID;
-            break;
-        }
-
         if (IANAIFTYPE_ETHERNETCSMACD == entry->type) {
             unsigned long long speed;
             unsigned long long defaultspeed = NOMINAL_LINK_SPEED;
@@ -867,7 +721,6 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
     return 0;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_INTERFACE_ARCH_SET_ADMIN_STATUS
 int
 netsnmp_arch_set_admin_status(netsnmp_interface_entry * entry,
                               int ifAdminStatus_val)
@@ -884,7 +737,6 @@ netsnmp_arch_set_admin_status(netsnmp_interface_entry * entry,
     return netsnmp_access_interface_ioctl_flags_set(-1, entry,
                                                     IFF_UP, and_complement);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INTERFACE_ARCH_SET_ADMIN_STATUS */
 
 #ifdef HAVE_LINUX_ETHTOOL_H
 /**
@@ -894,38 +746,40 @@ unsigned long long
 netsnmp_linux_interface_get_if_speed(int fd, const char *name,
             unsigned long long defaultspeed)
 {
-    int ret;
     struct ifreq ifr;
     struct ethtool_cmd edata;
-    uint16_t speed_hi;
-    uint32_t speed;
 
     memset(&ifr, 0, sizeof(ifr));
-    memset(&edata, 0, sizeof(edata));
     edata.cmd = ETHTOOL_GSET;
+    edata.speed = 0;
     
-    strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
+    strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)-1);
     ifr.ifr_data = (char *) &edata;
     
-    ret = ioctl(fd, SIOCETHTOOL, &ifr);
-    if (ret == -1 || edata.speed == 0) {
-        DEBUGMSGTL(("mibII/interfaces", "ETHTOOL_GSET on %s failed (%d / %d)\n",
-                    ifr.ifr_name, ret, edata.speed));
+    if (ioctl(fd, SIOCETHTOOL, &ifr) == -1) {
+        DEBUGMSGTL(("mibII/interfaces", "ETHTOOL_GSET on %s failed\n",
+                    ifr.ifr_name));
         return netsnmp_linux_interface_get_if_speed_mii(fd,name,defaultspeed);
     }
-
-#ifdef HAVE_STRUCT_ETHTOOL_CMD_SPEED_HI
-    speed_hi = edata.speed_hi;
-#else
-    speed_hi = 0;
+    
+    if (edata.speed != SPEED_10 && edata.speed != SPEED_100
+#ifdef SPEED_10000
+        && edata.speed != SPEED_10000
+#endif
+#ifdef SPEED_2500
+        && edata.speed != SPEED_2500
 #endif
-    speed = speed_hi << 16 | edata.speed;
-    if (speed == 0xffff || speed == 0xffffffffUL /*SPEED_UNKNOWN*/)
-        speed = defaultspeed;
+        && edata.speed != SPEED_1000 ) {
+        DEBUGMSGTL(("mibII/interfaces", "fallback to mii for %s\n",
+                    ifr.ifr_name));
+        /* try MII */
+        return netsnmp_linux_interface_get_if_speed_mii(fd,name,defaultspeed);
+    }
+
     /* return in bps */
-    DEBUGMSGTL(("mibII/interfaces", "ETHTOOL_GSET on %s speed = %#x -> %d\n",
-                ifr.ifr_name, speed_hi << 16 | edata.speed, speed));
-    return speed * 1000LL * 1000LL;
+    DEBUGMSGTL(("mibII/interfaces", "ETHTOOL_GSET on %s speed = %d\n",
+                ifr.ifr_name, edata.speed));
+    return edata.speed*1000LL*1000LL;
 }
 #endif
  
@@ -955,7 +809,8 @@ netsnmp_linux_interface_get_if_speed(int fd, const char *name,
     const unsigned long long media_speeds[] = {10000000, 10000000, 100000000, 100000000, 10000000, 0};
     /* It corresponds to "10baseT", "10baseT-FD", "100baseTx", "100baseTx-FD", "100baseT4", "Flow-control", 0, */
 
-    strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
+    strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
+    ifr.ifr_name[ sizeof(ifr.ifr_name)-1 ] = 0;
     data[0] = 0;
     
     /*
@@ -1024,190 +879,3 @@ netsnmp_linux_interface_get_if_speed(int fd, const char *name,
     }
     return retspeed;
 }
-#ifdef SUPPORT_PREFIX_FLAGS
-void netsnmp_prefix_process(int fd, void *data);
-
-/* Open netlink socket to watch new ipv6 addresses and prefixes. */
-int netsnmp_prefix_listen()
-{
-    struct {
-                struct nlmsghdr n;
-                struct ifinfomsg r;
-                char   buf[1024];
-    } req;
-
-    struct rtattr      *rta;
-    int                status;
-    struct sockaddr_nl localaddrinfo;
-    unsigned           groups = 0;
-
-    int fd = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE);
-    if (fd < 0) {
-        snmp_log(LOG_ERR, "netsnmp_prefix_listen: Cannot create socket.\n");
-        return -1;
-    }
-
-    memset(&localaddrinfo, 0, sizeof(struct sockaddr_nl));
-
-    groups |= RTMGRP_IPV6_IFADDR;
-    groups |= RTMGRP_IPV6_PREFIX;
-    localaddrinfo.nl_family = AF_NETLINK;
-    localaddrinfo.nl_groups = groups;
-
-    if (bind(fd, (struct sockaddr*)&localaddrinfo, sizeof(localaddrinfo)) < 0) {
-        snmp_log(LOG_ERR,"netsnmp_prefix_listen: Bind failed.\n");
-        close(fd);
-        return -1;
-    }
-
-    memset(&req, 0, sizeof(req));
-    req.n.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg));
-    req.n.nlmsg_flags = NLM_F_REQUEST | NLM_F_ROOT;
-    req.n.nlmsg_type = RTM_GETLINK;
-    req.r.ifi_family = AF_INET6;
-    rta = (struct rtattr *)(((char *)&req) + NLMSG_ALIGN(req.n.nlmsg_len));
-    rta->rta_len = RTA_LENGTH(16);
-
-    status = send(fd, &req, req.n.nlmsg_len, 0);
-    if (status < 0) {
-        snmp_log(LOG_ERR,"netsnmp_prefix_listen: send failed\n");
-        close(fd);
-        return -1;
-    }
-
-    if (register_readfd(fd, netsnmp_prefix_process, NULL) != 0) {
-        snmp_log(LOG_ERR,"netsnmp_prefix_listen: error registering netlink socket\n");
-        close(fd);
-        return -1;
-    }
-    return 0;
-}
-
-/* Process one incoming netlink packets.
- * RTM_NEWADDR and RTM_NEWPREFIX usually arrive in separate packets
- * -> information from these packets must be stored locally and
- * new prefix is added when information from both packets is complete.
- */
-void netsnmp_prefix_process(int fd, void *data)
-{
-    int                status;
-    char               buf[16384];
-    struct nlmsghdr    *nlmp;
-    struct rtattr      *rtatp;
-    struct ifaddrmsg   *ifa;
-    struct prefixmsg   *prefix;
-    struct in6_addr    *in6p;
-
-    /* these values must persist between calls */
-    static char               in6pAddr[40];
-    static int                have_addr = 0,have_prefix = 0;
-    static int                onlink = 2,autonomous = 2; /*Assume as false*/
-
-    int                iret;
-    prefix_cbx         *new;
-    int                len, req_len, length; 
-
-    status = recv(fd, buf, sizeof(buf), 0);
-    if (status < 0) {
-        if (errno == EINTR)
-            return;
-        snmp_log(LOG_ERR,"netsnmp_prefix_listen: Receive failed.\n");
-        return;
-    }
-
-    if(status == 0){
-        DEBUGMSGTL(("access:interface:prefix", "End of File\n"));
-        return;
-    }
-
-    for(nlmp = (struct nlmsghdr *)buf; status > sizeof(*nlmp);){
-        len = nlmp->nlmsg_len;
-        req_len = len - sizeof(*nlmp);
-
-        if (req_len < 0 || len > status) {
-            snmp_log(LOG_ERR,"netsnmp_prefix_listen: Error in length.\n");
-            return;
-        }
-
-        if (!NLMSG_OK(nlmp, status)) {
-            DEBUGMSGTL(("access:interface:prefix", "NLMSG not OK\n"));
-            continue;
-        }
-
-        if (nlmp->nlmsg_type == RTM_NEWADDR || nlmp->nlmsg_type == RTM_DELADDR) {
-            ifa = NLMSG_DATA(nlmp);
-            length = nlmp->nlmsg_len;
-            length -= NLMSG_LENGTH(sizeof(*ifa));
-
-            if (length < 0) {
-                DEBUGMSGTL(("access:interface:prefix", "wrong nlmsg length %d\n", length));
-                continue;
-            }
-
-            if(!ifa->ifa_flags) {
-                rtatp = IFA_RTA(ifa);
-                while (RTA_OK(rtatp, length)) {
-                    if (rtatp->rta_type == IFA_ADDRESS){
-                        in6p = (struct in6_addr *) RTA_DATA(rtatp);
-                        if(nlmp->nlmsg_type == RTM_DELADDR) {
-                            snprintf(in6pAddr, sizeof(in6pAddr), "%04x%04x%04x%04x%04x%04x%04x%04x", NIP6(*in6p));
-                            have_addr = -1;
-                            break;
-                        } else {
-                            snprintf(in6pAddr, sizeof(in6pAddr), "%04x%04x%04x%04x%04x%04x%04x%04x", NIP6(*in6p));
-                            have_addr = 1;
-                            break;
-                        }
-                    }
-                    rtatp = RTA_NEXT(rtatp,length);
-                }
-            }
-        }
-
-        if(nlmp->nlmsg_type == RTM_NEWPREFIX) {
-            prefix = NLMSG_DATA(nlmp);
-            length = nlmp->nlmsg_len;
-            length -= NLMSG_LENGTH(sizeof(*prefix));
-
-            if (length < 0) {
-                DEBUGMSGTL(("access:interface:prefix", "wrong nlmsg length %d\n", length));
-                continue;
-            }
-            have_prefix = 1;
-            if (prefix->prefix_flags & IF_PREFIX_ONLINK) {
-                onlink = 1; 
-            }
-            if (prefix->prefix_flags & IF_PREFIX_AUTOCONF) {
-                autonomous = 1;
-            }
-        }
-        status -= NLMSG_ALIGN(len);
-        nlmp = (struct nlmsghdr*)((char*)nlmp + NLMSG_ALIGN(len));
-    }
-
-    if((have_addr == 1) && (have_prefix == 1)){
-        if(!(new = net_snmp_create_prefix_info (onlink, autonomous, in6pAddr)))
-            DEBUGMSGTL(("access:interface:prefix", "Unable to create prefix info\n"));
-        else {
-
-            iret = net_snmp_search_update_prefix_info (list_info.list_head, new, 0);
-            if(iret < 0) {
-                DEBUGMSGTL(("access:interface:prefix", "Unable to add/update prefix info\n"));
-                free(new);
-            }
-            if(iret == 2) /*Only when enrty already exists and we are only updating*/
-                free(new);
-        }
-        have_addr = have_prefix = 0;
-        onlink = autonomous = 2; /*Set to defaults again*/
-    } else if (have_addr == -1) {
-        iret = net_snmp_delete_prefix_info (list_info.list_head, in6pAddr);
-        if(iret < 0)
-            DEBUGMSGTL(("access:interface:prefix", "Unable to delete the prefix info\n"));
-            if(!iret)
-                DEBUGMSGTL(("access:interface:prefix", "Unable to find the node to delete\n"));
-            have_addr = 0;
-    }
-}
-#endif
-
diff --git a/agent/mibgroup/if-mib/data_access/interface_openbsd.c b/agent/mibgroup/if-mib/data_access/interface_openbsd.c
deleted file mode 100644
index 8340dc6..0000000
--- a/agent/mibgroup/if-mib/data_access/interface_openbsd.c
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- *  Interface MIB architecture support
- *
- * $Id$
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include "mibII/mibII_common.h"
-#include "if-mib/ifTable/ifTable_constants.h"
-
-netsnmp_feature_child_of(interface_arch_set_admin_status, interface_all)
-
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#if HAVE_SYS_IOCTL_H
-#include <sys/ioctl.h>
-#else
-#error "linux should have sys/ioctl header"
-#endif
-
-#include <net-snmp/data_access/interface.h>
-#include <net-snmp/data_access/ipaddress.h>
-#include "if-mib/data_access/interface.h"
-
-#include <sys/types.h>
-#include <sys/time.h>
-#include <net/if.h>
-#include <net/if_dl.h>
-#include <net/if_types.h>
-#include <net/if_media.h>
-
-#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);
-
-void
-netsnmp_arch_interface_init(void)
-{
-    /*
-     * nothing to do
-     */
-}
-
-/*
- * find the ifIndex for an interface name
- *
- * @retval 0 : no index found
- * @retval >0: ifIndex for interface
- */
-oid
-netsnmp_arch_interface_index_find(const char *name)
-{
-    return if_nametoindex(name);
-}
-
-/* sa_len roundup macro. */
-#define ROUNDUP(a) \
-  ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long))
-
-/*
- *
- * @retval  0 success
- * @retval -1 no container specified
- * @retval -2 could not get interface info
- * @retval -3 could not create entry (probably malloc)
- */
-int
-netsnmp_arch_interface_container_load(netsnmp_container* container,
-                                      u_int load_flags)
-{
-    netsnmp_interface_entry *entry = NULL;
-    u_char *if_list = NULL, *cp;
-    size_t if_list_size = 0;
-    struct if_msghdr *ifp;
-    int sysctl_oid[] = { CTL_NET, PF_ROUTE, 0, 0, NET_RT_IFLIST, 0 };
-    struct ifa_msghdr *ifa;
-    struct sockaddr *a;
-    struct sockaddr_dl *adl;
-    int amask;
-    char *if_name;
-    int flags;
-
-    DEBUGMSGTL(("access:interface:container:arch",
-                "load (flags %p)\n", load_flags));
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR, "no container specified/found for interface\n");
-        return -1;
-    }
-
-    if (sysctl(sysctl_oid, sizeof(sysctl_oid) / sizeof(int), 0, &if_list_size, 0, 0) == -1) {
-        snmp_log(LOG_ERR, "could not get interface info (size)\n");
-        return -2;
-    }
-
-    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;
-    } else {
-        DEBUGMSGTL(("access:interface:container:arch",
-                    "allocated %u bytes for if_list\n", if_list_size));
-    }
-
-    if (sysctl(sysctl_oid, sizeof(sysctl_oid) / sizeof(int), if_list, &if_list_size, 0, 0) == -1) {
-        snmp_log(LOG_ERR, "could not get interface info\n");
-        free(if_list);
-        return -2;
-    }
-
-    /* 1st pass: create interface entries */
-    for (cp = if_list; cp < if_list + if_list_size; cp += ifp->ifm_msglen) {
-
-        ifp = (struct if_msghdr *) cp;
-        if_name = NULL;
-        flags = 0;
-        adl = NULL;
-
-        if (ifp->ifm_type != RTM_IFINFO)
-            continue;
-
-        if (ifp->ifm_addrs & RTA_IFP) {
-            a = (struct sockaddr *) (ifp + 1);
-            /* if_msghdr is followed by one or more sockaddrs, of which we need only RTA_IFP */
-            /* most of the time RTA_IFP is the first address we get, hence the shortcut */
-            if ((ifp->ifm_addrs & (~RTA_IFP - 1)) != 0) {
-                /* skip all addresses up to RTA_IFP. */
-                for (amask = (RTA_IFP >> 1); amask != 0; amask >>= 1) {
-                    if (ifp->ifm_addrs & amask) { a = (struct sockaddr *) ( ((char *) a) + ROUNDUP(a->sa_len) ); }
-                }
-            }
-            adl = (struct sockaddr_dl *) a;
-            if_name = (char *) adl->sdl_data;
-            if_name[adl->sdl_nlen] = '\0';
-        }
-        if (!(ifp->ifm_addrs & RTA_IFP) || if_name == NULL) {
-            snmp_log(LOG_ERR, "ifm_index %u: no interface name in message, skipping\n", ifp->ifm_index);
-            continue;
-        }
-
-        entry = netsnmp_access_interface_entry_create(if_name, ifp->ifm_index);
-        if(NULL == entry) {
-            netsnmp_access_interface_container_free(container,
-                                                    NETSNMP_ACCESS_INTERFACE_FREE_NOFLAGS);
-            free(if_list);
-            return -3;
-        }
-
-        /* get physical address */
-        if (adl != NULL && adl->sdl_alen > 0) {
-            entry->paddr_len = adl->sdl_alen;
-            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",
-                        if_name, entry->paddr_len,
-                        entry->paddr[0], entry->paddr[1], entry->paddr[2],
-                        entry->paddr[3], entry->paddr[4], entry->paddr[5]));
-        } else {
-            entry->paddr = (char*)malloc(6);
-            entry->paddr_len = 6;
-            memset(entry->paddr, 0, 6);
-        }
-
-        entry->mtu = ifp->ifm_data.ifi_mtu;
-        entry->type = ifp->ifm_data.ifi_type;
-
-
-        entry->ns_flags |= NETSNMP_INTERFACE_FLAGS_HAS_IF_FLAGS;
-        entry->os_flags = ifp->ifm_flags;
-                
-        if (ifp->ifm_flags & IFF_UP) {
-            entry->admin_status = IFADMINSTATUS_UP;
-#if defined( LINK_STATE_UP ) && defined( LINK_STATE_DOWN )
-            if (ifp->ifm_data.ifi_link_state == LINK_STATE_UP) {
-                entry->oper_status = IFOPERSTATUS_UP;
-            } else if (ifp->ifm_data.ifi_link_state == LINK_STATE_DOWN) {
-                entry->oper_status = IFOPERSTATUS_DOWN;
-            } else {
-                entry->oper_status = IFOPERSTATUS_UNKNOWN;
-            }
-#else
-            entry->oper_status = IFOPERSTATUS_UP;
-#endif
-        } else {
-            entry->admin_status = IFADMINSTATUS_DOWN;
-            /* IF-MIB specifically says that ifOperStatus should be down in this case */ 
-            entry->oper_status = IFOPERSTATUS_DOWN;
-        }
-
-        entry->ns_flags |= NETSNMP_INTERFACE_FLAGS_HAS_V4_REASMMAX;
-        entry->reasm_max = IP_MAXPACKET;
-
-        /* get counters */
-        entry->stats.ibytes.low = ifp->ifm_data.ifi_ibytes; entry->stats.ibytes.high = 0;
-        entry->stats.iucast.low = ifp->ifm_data.ifi_ipackets; entry->stats.iucast.high = 0;
-        entry->stats.imcast.low = ifp->ifm_data.ifi_imcasts; entry->stats.imcast.high = 0;
-        entry->stats.ierrors = ifp->ifm_data.ifi_ierrors;
-        entry->stats.idiscards = ifp->ifm_data.ifi_iqdrops;
-        entry->stats.iunknown_protos = ifp->ifm_data.ifi_noproto;
-
-        entry->stats.obytes.low = ifp->ifm_data.ifi_obytes; entry->stats.obytes.high = 0;
-        entry->stats.oucast.low = ifp->ifm_data.ifi_opackets; entry->stats.oucast.high = 0;
-        entry->stats.omcast.low = ifp->ifm_data.ifi_omcasts; entry->stats.omcast.high = 0;
-        entry->stats.oerrors = ifp->ifm_data.ifi_oerrors;
-        entry->ns_flags |=  NETSNMP_INTERFACE_FLAGS_HAS_BYTES |
-                            NETSNMP_INTERFACE_FLAGS_HAS_DROPS |
-                            NETSNMP_INTERFACE_FLAGS_HAS_MCAST_PKTS;
-
-        if (timercmp(&ifp->ifm_data.ifi_lastchange, &starttime, >)) {
-            entry->lastchange = (ifp->ifm_data.ifi_lastchange.tv_sec - starttime.tv_sec) * 100;
-            entry->ns_flags |= NETSNMP_INTERFACE_FLAGS_HAS_LASTCHANGE;
-        } else {
-            entry->lastchange = 0;
-        }
-
-        if (ifp->ifm_flags & IFF_PROMISC) entry->promiscuous = 1;
-
-        /* try to guess the speed from media type */
-        netsnmp_openbsd_interface_get_if_speed(entry->name, &entry->speed, &entry->speed_high);
-        if (entry->speed_high != 0) {
-            entry->ns_flags |= NETSNMP_INTERFACE_FLAGS_HAS_HIGH_SPEED;
-        } else {
-            /* or resort to ifi_baudrate */
-            entry->speed = ifp->ifm_data.ifi_baudrate;
-        }
-        
-        netsnmp_access_interface_entry_overrides(entry);
-
-        CONTAINER_INSERT(container, entry);
-        DEBUGMSGTL(("access:interface:container:arch",
-                    "created entry %u for %s\n", entry->index, entry->name));
-    } /* for (each interface entry) */
-
-    /* pass 2: walk addresses */
-    for (cp = if_list; cp < if_list + if_list_size; cp += ifa->ifam_msglen) {
-
-        ifa = (struct ifa_msghdr *) cp;
-
-        if (ifa->ifam_type != RTM_NEWADDR)
-            continue;
-
-        DEBUGMSGTL(("access:interface:container:arch",
-                    "received 0x%x in RTM_NEWADDR for ifindex %u\n",
-                    ifa->ifam_addrs, ifa->ifam_index));
-
-        entry = netsnmp_access_interface_entry_get_by_index(container, ifa->ifam_index);
-        if (entry == NULL) {
-            snmp_log(LOG_ERR, "address for a nonexistent interface? index=%d", ifa->ifam_index);
-            continue;
-        }
-
-        /* walk the list of addresses received.
-           we do not use actual addresses, the sole purpose of this is to set flags */
-        a = (struct sockaddr *) (ifa + 1);
-        for (amask = ifa->ifam_addrs; amask != 0; amask >>= 1) {
-            if ((amask & 1) != 0) {
-                DEBUGMSGTL(("access:interface:container:arch",
-                            "%s: a=%p, sa_len=%d, sa_family=0x%x\n",
-                            entry->name, a, a->sa_len, a->sa_family));
-
-                if (a->sa_family == AF_INET)
-                    entry->ns_flags |= NETSNMP_INTERFACE_FLAGS_HAS_IPV4;
-                else if (a->sa_family == AF_INET6)
-                    entry->ns_flags |= NETSNMP_INTERFACE_FLAGS_HAS_IPV6;
-
-                a = (struct sockaddr *) ( ((char *) a) + ROUNDUP(a->sa_len) );
-            }
-        }
-        DEBUGMSGTL(("access:interface:container:arch",
-                    "%s: flags=0x%x\n", entry->name, entry->ns_flags));
-    }
-
-    if (if_list != NULL)
-        free(if_list);
-
-    return 0;
-}
-
-/*
- * subroutine to translate known media typed to speed.
- * see /usr/include/net/if_media.h for definitions
- */
-
-void
-_openbsd_interface_ifmedia_to_speed(int media, u_int *speed, u_int *speed_high)
-{
-    *speed = 0; *speed_high = 0;
-
-    switch (IFM_TYPE(media)) {
-        case IFM_ETHER:
-            switch (IFM_SUBTYPE(media)) {
-                case IFM_10_T:
-                case IFM_10_2:
-                case IFM_10_5:
-                case IFM_10_STP:
-                case IFM_10_FL:
-                    *speed = 10000000; *speed_high = 10; break;
-                case IFM_100_TX:
-                case IFM_100_FX:
-                case IFM_100_T4:
-                case IFM_100_VG:
-                case IFM_100_T2:
-                    *speed = 100000000; *speed_high = 100; break;
-                case IFM_1000_LX:
-		case IFM_1000_SX:
-                case IFM_1000_CX:
-#ifdef IFM_1000_T
-                case IFM_1000_T:
-#endif
-                    *speed = 1000000000; *speed_high = 1000; break;
-#ifdef IFM_10GBASE_SR
-                case IFM_10GBASE_SR:
-                case IFM_10GBASE_LR:
-                    *speed = (u_int) -1; /* 4294967295; */ *speed_high = 10000; break;
-#endif
-            }
-            break;
-    }
-    return;
-}
-
-/*
- * @retval  0 speed could not be determined (error, unknown media)
- * @retval >0 speed, equal to *speed.
- *            sets *speed=2^31 and returns *speed_high=speed/10^6 as required by ifSpeed/ifHighSpeed.
- */
-
-int
-netsnmp_openbsd_interface_get_if_speed(char *name, u_int *speed, u_int *speed_high)
-{
-    int s;
-    struct ifmediareq ifmr;
-    int *media_list, i;
-    u_int t_speed, t_speed_high; 
-    u_int m_speed, m_speed_high;
-
-    *speed = 0; *speed_high = 0;
-
-    if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
-        return 0;
-    }
-
-    memset(&ifmr, 0, sizeof(ifmr));
-    strlcpy(ifmr.ifm_name, name, sizeof(ifmr.ifm_name));
-
-    if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0 || ifmr.ifm_count == 0) {
-        close(s);
-        return 0;
-    }
-
-    /*
-     * try to get speed from current media.
-     * if unsuccessful (e.g., interface is down), get a list of capabilities,
-     * try each and return maximum speed the interface is capable of.
-     */
-
-    _openbsd_interface_ifmedia_to_speed(ifmr.ifm_current, speed, speed_high);
-
-    if (*speed == 0 &&
-        (media_list = (int *) malloc(ifmr.ifm_count * sizeof(int))) != NULL ) {
-
-        ifmr.ifm_ulist = media_list;
-
-        if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) == 0) {
-            m_speed = 0; m_speed_high = 0;
-            for (i = 0; i < ifmr.ifm_count; i++) {
-
-                _openbsd_interface_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)) {
-                    m_speed_high = t_speed_high; m_speed = t_speed;
-                }
-            }
-            *speed = m_speed; *speed_high = m_speed_high;
-        }
-        free(media_list);
-    }
-
-    close(s);
-
-    DEBUGMSGTL(("access:interface:container:arch",
-                "%s: speed: %u, speed_high: %u\n",
-                name, *speed, *speed_high));
-
-    return *speed;
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_INTERFACE_ARCH_SET_ADMIN_STATUS
-int
-netsnmp_arch_set_admin_status(netsnmp_interface_entry * entry,
-                              int ifAdminStatus_val)
-{
-    DEBUGMSGTL(("access:interface:arch", "set_admin_status\n"));
-
-    /* TODO: implement this call */
-
-    /* not implemented */
-    snmp_log(LOG_ERR, "netsnmp_arch_set_admin_status is not (yet) implemented for FreeBSD.\n");
-
-    return -4;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_INTERFACE_ARCH_SET_ADMIN_STATUS */
-
diff --git a/agent/mibgroup/if-mib/data_access/interface_solaris2.c b/agent/mibgroup/if-mib/data_access/interface_solaris2.c
index 8aa47f8..66fb22f 100644
--- a/agent/mibgroup/if-mib/data_access/interface_solaris2.c
+++ b/agent/mibgroup/if-mib/data_access/interface_solaris2.c
@@ -2,11 +2,10 @@
  *  Interface MIB architecture support for Solaris
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
+#include "mibII/mibII_common.h"
 #include "if-mib/ifTable/ifTable_constants.h"
 #include "kernel_sunos5.h"
-#include "mibII/mibII_common.h"
 
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -17,8 +16,6 @@
 #include <strings.h>
 #include <string.h>
 
-netsnmp_feature_child_of(interface_arch_set_admin_status, interface_all)
-
 static int _set_ip_flags_v4(netsnmp_interface_entry *, mib2_ifEntry_t *);
 static int _match_ifname_v4addr(void *ifname, void *ipaddr);
 static int _get_v4addr(mib2_ifEntry_t *ife, mib2_ipAddrEntry_t *e);
@@ -66,7 +63,7 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
     req_e                   req = GET_FIRST;
     int                     error = 0;
 
-    DEBUGMSGTL(("access:interface:container:arch", "load (flags %u)\n",
+    DEBUGMSGTL(("access:interface:container:arch", "load (flags %p)\n",
                 l_flags));
 
     if (container == NULL) {
@@ -107,7 +104,7 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
         /*
          * collect the information needed by IF-MIB
          */
-        entry->paddr = (char*)malloc(ife.ifPhysAddress.o_length);
+        entry->paddr = malloc(ife.ifPhysAddress.o_length);
         if (entry->paddr == NULL) {
             netsnmp_access_interface_entry_free(entry);
             error = 1;
@@ -309,7 +306,7 @@ _get_v4addr(mib2_ifEntry_t *ife, mib2_ipAddrEntry_t *ipv4e)
     if ((rc = getMibstat(MIB_IP_ADDR, ipv4e, sizeof(*ipv4e), GET_EXACT, 
         &_match_ifname_v4addr, &ife->ifDescr.o_bytes)) == 0)
         return (1);
-    memset(ipv4e, '\0', sizeof(*ipv4e));
+    bzero((void *)ipv4e, sizeof(*ipv4e));
     return (0);
 }
 
@@ -343,12 +340,11 @@ _get_v6addr(mib2_ifEntry_t *ife, mib2_ipv6AddrEntry_t *ipv6e)
         &_match_ifname_v6addr, &ife->ifDescr.o_bytes)) == 0) {
         return (1);
     } 
-    memset(ipv6e, '\0', sizeof(*ipv6e));
+    bzero((void *)ipv6e, sizeof(*ipv6e));
     return (0);
 }
 #endif /* SOLARIS_HAVE_IPV6_MIB_SUPPORT */
 
-#ifndef NETSNMP_FEATURE_REMOVE_INTERFACE_ARCH_SET_ADMIN_STATUS
 int
 netsnmp_arch_set_admin_status(netsnmp_interface_entry * entry,
                               int ifAdminStatus_val)
@@ -360,4 +356,3 @@ netsnmp_arch_set_admin_status(netsnmp_interface_entry * entry,
      */
     return (-1);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INTERFACE_ARCH_SET_ADMIN_STATUS */
diff --git a/agent/mibgroup/if-mib/data_access/interface_sysctl.c b/agent/mibgroup/if-mib/data_access/interface_sysctl.c
index 1deff82..c00b58b 100644
--- a/agent/mibgroup/if-mib/data_access/interface_sysctl.c
+++ b/agent/mibgroup/if-mib/data_access/interface_sysctl.c
@@ -3,10 +3,9 @@
  *
  *  Based on patch 1362403, submited by Rojer
  *
- * $Id$
+ * $Id: interface_sysctl.c 17481 2009-04-09 08:44:41Z dts12 $
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include "mibII/mibII_common.h"
 #include "if-mib/ifTable/ifTable_constants.h"
@@ -30,8 +29,6 @@
 #include <net/if_types.h>
 #include <net/if_media.h>
 
-netsnmp_feature_child_of(interface_arch_set_admin_status, interface_all)
-
 /*
  * account for minor differences between FreeBSD and OpenBSD.
  * If this gets unruly, split stuff out into the respective
@@ -52,7 +49,7 @@ netsnmp_feature_child_of(interface_arch_set_admin_status, interface_all)
 #   define ARCH_PROMISC_FLAG IFF_PROMISC
 #endif
 
-#define starttime (*(const struct timeval*)netsnmp_get_agent_starttime())
+extern struct timeval starttime;
 
 /* sa_len roundup macro. */
 #define ROUNDUP(a) \
@@ -186,7 +183,6 @@ netsnmp_sysctl_ifmedia_to_speed(int media, u_int *speed,
 #endif
             }
             break;
-#if defined(IFM_TOKEN)
         case IFM_TOKEN:
             switch (IFM_SUBTYPE(media)) {
                 case IFM_TOK_STP4:
@@ -205,10 +201,9 @@ netsnmp_sysctl_ifmedia_to_speed(int media, u_int *speed,
                     *speed = 100000000;
                     *speed_high = 100;
                     break;
-#endif /* IFM_TOK_STP100 */
+#endif
             }
             break;
-#endif /* IFM_TOKEN */
 #ifdef IFM_ATM
         case IFM_ATM:
             switch (IFM_SUBTYPE(media)) {
@@ -252,8 +247,8 @@ netsnmp_sysctl_get_if_speed(char *name, u_int *speed,
         return 0;
     }
 
-    memset(&ifmr, 0, sizeof(ifmr));
-    strlcpy(ifmr.ifm_name, name, sizeof(ifmr.ifm_name));
+    (void) memset(&ifmr, 0, sizeof(ifmr));
+    (void) strncpy(ifmr.ifm_name, name, sizeof(ifmr.ifm_name));
 
     DEBUGMSGTL(("access:interface:container:sysctl"," speed in\n"));
     if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0 ||
@@ -284,7 +279,7 @@ netsnmp_sysctl_get_if_speed(char *name, u_int *speed,
                 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 > m_speed)) {
+                    (t_speed_high == m_speed_high && t_speed > t_speed)) {
                     m_speed_high = t_speed_high;
                     m_speed = t_speed;
                 }
@@ -304,12 +299,6 @@ netsnmp_sysctl_get_if_speed(char *name, u_int *speed,
     return *speed;
 }
 
-static void set_counter(struct counter64 *c, uint64_t v)
-{
-    c->low = (uint32_t)(v);
-    c->high = (v) >> 32;
-}
-
 /*
  *
  * @retval  0 success
@@ -332,14 +321,9 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
     int amask;
     char *if_name;
     int flags;
-#ifdef HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_NSEC
-    struct timespec startspec;
-
-    TIMEVAL_TO_TIMESPEC(&starttime, &startspec);
-#endif
 
     DEBUGMSGTL(("access:interface:container:sysctl",
-                "load (flags %u)\n", load_flags));
+                "load (flags %p)\n", load_flags));
 
     if (NULL == container) {
         snmp_log(LOG_ERR, "no container specified/found for interface\n");
@@ -352,14 +336,14 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
         return -2;
     }
 
-    if_list = (u_char*)malloc(if_list_size);
+    if_list = 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);
+                 "(%lu bytes)\n", if_list_size);
         return -3;
     } else {
         DEBUGMSGTL(("access:interface:container:sysctl",
-                    "allocated %zu bytes for if_list\n", if_list_size));
+                    "allocated %lu bytes for if_list\n", if_list_size));
     }
 
     if (sysctl(sysctl_oid, sizeof(sysctl_oid)/sizeof(int), if_list,
@@ -416,7 +400,7 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
         /* get physical address */
         if (adl != NULL && adl->sdl_alen > 0) {
             entry->paddr_len = adl->sdl_alen;
-            entry->paddr = (char*)malloc(entry->paddr_len);
+            entry->paddr = 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",
@@ -424,7 +408,7 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
                         entry->paddr[0], entry->paddr[1], entry->paddr[2],
                         entry->paddr[3], entry->paddr[4], entry->paddr[5]));
         } else {
-            entry->paddr = (char*)malloc(6);
+            entry->paddr = malloc(6);
             entry->paddr_len = 6;
             memset(entry->paddr, 0, 6);
         }
@@ -467,26 +451,28 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
             NETSNMP_INTERFACE_FLAGS_HAS_V6_REASMMAX;
 
         /* get counters */
-        set_counter(&entry->stats.ibytes, ifp->ifm_data.ifi_ibytes);
-        set_counter(&entry->stats.iucast, ifp->ifm_data.ifi_ipackets);
-        set_counter(&entry->stats.imcast, ifp->ifm_data.ifi_imcasts);
+        entry->stats.ibytes.low  = ifp->ifm_data.ifi_ibytes   & 0xffffffff;
+        entry->stats.ibytes.high = ifp->ifm_data.ifi_ibytes   >> 32;
+        entry->stats.iucast.low  = ifp->ifm_data.ifi_ipackets & 0xffffffff;
+        entry->stats.iucast.high = ifp->ifm_data.ifi_ipackets >> 32;
+        entry->stats.imcast.low  = ifp->ifm_data.ifi_imcasts  & 0xffffffff;
+        entry->stats.imcast.high = ifp->ifm_data.ifi_imcasts  >> 32;
         entry->stats.ierrors = ifp->ifm_data.ifi_ierrors;
         entry->stats.idiscards = ifp->ifm_data.ifi_iqdrops;
         entry->stats.iunknown_protos = ifp->ifm_data.ifi_noproto;
 
-        set_counter(&entry->stats.obytes, ifp->ifm_data.ifi_obytes);
-        set_counter(&entry->stats.oucast, ifp->ifm_data.ifi_opackets);
-        set_counter(&entry->stats.omcast, ifp->ifm_data.ifi_omcasts);
+        entry->stats.obytes.low  = ifp->ifm_data.ifi_obytes   & 0xffffffff;
+        entry->stats.obytes.high = ifp->ifm_data.ifi_obytes   >> 32;
+        entry->stats.oucast.low  = ifp->ifm_data.ifi_opackets & 0xffffffff;
+        entry->stats.oucast.high = ifp->ifm_data.ifi_opackets >> 32;
+        entry->stats.omcast.low  = ifp->ifm_data.ifi_omcasts  & 0xffffffff;
+        entry->stats.omcast.high = ifp->ifm_data.ifi_omcasts  >> 32;
         entry->stats.oerrors = ifp->ifm_data.ifi_oerrors;
         entry->ns_flags |=  NETSNMP_INTERFACE_FLAGS_HAS_BYTES |
                             NETSNMP_INTERFACE_FLAGS_HAS_DROPS |
                             NETSNMP_INTERFACE_FLAGS_HAS_MCAST_PKTS;
 
-#ifdef HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_NSEC
-        if (timespeccmp(&ifp->ifm_data.ifi_lastchange, &startspec, >)) {
-#else
         if (timercmp(&ifp->ifm_data.ifi_lastchange, &starttime, >)) {
-#endif
             entry->lastchange = (ifp->ifm_data.ifi_lastchange.tv_sec -
                                  starttime.tv_sec) * 100;
             entry->ns_flags |= NETSNMP_INTERFACE_FLAGS_HAS_LASTCHANGE;
@@ -511,7 +497,7 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
 
         CONTAINER_INSERT(container, entry);
         DEBUGMSGTL(("access:interface:container:sysctl",
-                    "created entry %d for %s\n", (int)entry->index, entry->name));
+                    "created entry %u for %s\n", entry->index, entry->name));
     } /* for (each interface entry) */
 
     /* pass 2: walk addresses */
@@ -563,7 +549,6 @@ netsnmp_arch_interface_container_load(netsnmp_container* container,
     return 0;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_INTERFACE_ARCH_SET_ADMIN_STATUS
 int
 netsnmp_arch_set_admin_status(netsnmp_interface_entry * entry,
                               int ifAdminStatus_val)
@@ -578,4 +563,3 @@ netsnmp_arch_set_admin_status(netsnmp_interface_entry * entry,
 
     return -4;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INTERFACE_ARCH_SET_ADMIN_STATUS */
diff --git a/agent/mibgroup/if-mib/data_access/interface_sysctl.h b/agent/mibgroup/if-mib/data_access/interface_sysctl.h
index 2a267d4..ea5c05c 100644
--- a/agent/mibgroup/if-mib/data_access/interface_sysctl.h
+++ b/agent/mibgroup/if-mib/data_access/interface_sysctl.h
@@ -3,7 +3,7 @@
  *
  *  Based on patch 1362403, submited by Rojer
  *
- * $Id$
+ * $Id: interface_sysctl.h 15068 2006-08-24 14:30:04Z rstory $
  */
 #ifndef INTERFACE_SYSCTL_H
 #define INTERFACE_SYSCTL_H 
diff --git a/agent/mibgroup/if-mib/ifTable/ifTable.c b/agent/mibgroup/if-mib/ifTable/ifTable.c
index d9b7252..1710b51 100644
--- a/agent/mibgroup/if-mib/ifTable/ifTable.c
+++ b/agent/mibgroup/if-mib/ifTable/ifTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: ifTable.c 15461 2006-10-19 20:38:00Z hardaker $
  */
 /** \page MFD helper for ifTable
  *
@@ -14,14 +14,9 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(interface_access_entry_set_admin_status)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
 /*
  * include our parent header 
  */
@@ -36,17 +31,16 @@ netsnmp_feature_require(interface_access_entry_set_admin_status)
 #   include "ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h"
 #endif
 #ifdef USING_IP_MIB_IPV6INTERFACETABLE_IPV6INTERFACETABLE_MODULE
-#   include "ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h"
+#   include "ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h"
 #endif
 #ifdef USING_IF_MIB_IFXTABLE_IFXTABLE_MODULE
 #   include "if-mib/ifXTable/ifXTable.h"
 #endif
 
-const oid       ifTable_oid[] = { IFTABLE_OID };
-const int       ifTable_oid_size = OID_LENGTH(ifTable_oid);
+oid             ifTable_oid[] = { IFTABLE_OID };
+int             ifTable_oid_size = OID_LENGTH(ifTable_oid);
 
 ifTable_registration ifTable_user_context;
-static ifTable_registration *ifTable_user_context_p;
 
 void            initialize_table_ifTable(void);
 void            shutdown_table_ifTable(void);
@@ -118,6 +112,7 @@ shutdown_ifTable(void)
 void
 initialize_table_ifTable(void)
 {
+    ifTable_registration *user_context;
     u_long          flags;
 
     DEBUGMSGTL(("verbose:ifTable:initialize_table_ifTable", "called\n"));
@@ -135,7 +130,7 @@ initialize_table_ifTable(void)
      * a netsnmp_data_list is a simple way to store void pointers. A simple
      * string token is used to add, find or remove pointers.
      */
-    ifTable_user_context_p = netsnmp_create_data_list("ifTable", NULL, NULL);
+    user_context = netsnmp_create_data_list("ifTable", NULL, NULL);
 
     /*
      * No support for any flags yet, but in the future you would
@@ -146,13 +141,14 @@ initialize_table_ifTable(void)
     /*
      * call interface initialization code
      */
-    _ifTable_initialize_interface(ifTable_user_context_p, flags);
+    _ifTable_initialize_interface(user_context, flags);
 
     /*
      * register scalar for ifNumber
      */
     {
-        const oid       reg_oid[] = { IFTABLE_NUMBER };
+        oid             reg_oid[] =
+            { IFTABLE_NUMBER };
         netsnmp_handler_registration *myreg;
 
         myreg =
@@ -175,9 +171,7 @@ shutdown_table_ifTable(void)
     /*
      * call interface shutdown code
      */
-    _ifTable_shutdown_interface(ifTable_user_context_p);
-    netsnmp_free_all_list_data(ifTable_user_context_p);
-    ifTable_user_context_p = NULL;
+    _ifTable_shutdown_interface(&ifTable_user_context);
 }
 
 /**
@@ -283,9 +277,9 @@ ifTable_post_request(ifTable_registration * user_context, int rc)
          */
         if (MFD_SUCCESS == rc) {
             /*
-             * notify library to save changed rows
+             * save changed rows, if you haven't already
              */
-            snmp_store_needed(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+            snmp_store(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
                                              NETSNMP_DS_LIB_APPTYPE));
         }
 
@@ -478,7 +472,7 @@ ifDescr_get(ifTable_rowreq_ctx * rowreq_ctx, char **ifDescr_val_ptr_ptr,
          * allocate space for ifDescr data
          */
         (*ifDescr_val_ptr_ptr) =
-            (char*)malloc(tmp_len * sizeof(rowreq_ctx->data.ifDescr[0]));
+            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;
@@ -756,7 +750,7 @@ ifPhysAddress_get(ifTable_rowreq_ctx * rowreq_ctx,
          * allocate space for ifPhysAddress data
          */
         (*ifPhysAddress_val_ptr_ptr) =
-            (char*)malloc(rowreq_ctx->data.ifPhysAddress_len *
+            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");
@@ -1777,9 +1771,9 @@ ifSpecific_get(ifTable_rowreq_ctx * rowreq_ctx,
     /*
      * hard coded
      */
-    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);
+    netsnmp_assert((*ifSpecific_val_ptr_len_ptr) > nullOidLen);
+    (*ifSpecific_val_ptr_len_ptr) = nullOidLen;
+    memcpy(*ifSpecific_val_ptr_ptr, &nullOid, nullOidLen);
 #endif
 
     return MFD_SUCCESS;
@@ -1788,9 +1782,6 @@ ifSpecific_get(ifTable_rowreq_ctx * rowreq_ctx,
 
 
 /** @} */
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -2337,8 +2328,6 @@ ifTable_check_dependencies(ifTable_rowreq_ctx * rowreq_ctx)
 }                               /* ifTable_check_dependencies */
 
 
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
 static int
 _if_number_handler(netsnmp_mib_handler *handler,
                       netsnmp_handler_registration *reginfo,
diff --git a/agent/mibgroup/if-mib/ifTable/ifTable.h b/agent/mibgroup/if-mib/ifTable/ifTable.h
index e90634f..6b73c40 100644
--- a/agent/mibgroup/if-mib/ifTable/ifTable.h
+++ b/agent/mibgroup/if-mib/ifTable/ifTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: ifTable.h 15461 2006-10-19 20:38:00Z hardaker $
  */
 #ifndef IFTABLE_H
 #define IFTABLE_H
@@ -343,9 +343,6 @@ config_exclude(mibII/interfaces)
      *********************************************************************
      * 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 *
@@ -364,8 +361,8 @@ config_exclude(mibII/interfaces)
     ifTable_rowreq_ctx *ifTable_row_find_by_mib_index(ifTable_mib_index *
                                                       mib_idx);
 
-    extern const oid ifTable_oid[];
-    extern const int ifTable_oid_size;
+    extern oid      ifTable_oid[];
+    extern int      ifTable_oid_size;
 
 
 #include "ifTable_interface.h"
@@ -451,7 +448,6 @@ config_exclude(mibII/interfaces)
 
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     /*
      *********************************************************************
      * SET function declarations
@@ -667,7 +663,7 @@ config_exclude(mibII/interfaces)
 
 
     int             ifTable_check_dependencies(ifTable_rowreq_ctx * ctx);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+
 
     /*
      * DUMMY markers, ignore
diff --git a/agent/mibgroup/if-mib/ifTable/ifTable_constants.h b/agent/mibgroup/if-mib/ifTable/ifTable_constants.h
index 1f5d87a..17a87c7 100644
--- a/agent/mibgroup/if-mib/ifTable/ifTable_constants.h
+++ b/agent/mibgroup/if-mib/ifTable/ifTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: ifTable_constants.h 14253 2006-02-14 14:40:55Z dts12 $
  */
 #ifndef IFTABLE_CONSTANTS_H
 #define IFTABLE_CONSTANTS_H
diff --git a/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c b/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c
index b8a09b5..327c3dc 100644
--- a/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c
+++ b/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c
@@ -2,18 +2,15 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: ifTable_data_access.c 16790 2008-02-12 19:05:24Z hardaker $
  */
 /*
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
-netsnmp_feature_require(container_linked_list)
-
 /*
  * include our parent header 
  */
@@ -26,34 +23,12 @@ netsnmp_feature_require(container_linked_list)
 #   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;
-} cd_container;
-
 /*
  * flag so we know not to set row/table last change times
  * during startup.
  */
 static int      _first_load = 1;
 
-/*
- * Value of interface_fadeout config option
- */
-static int fadeout = IFTABLE_REMOVE_MISSING_AFTER;
-/*
- * Value of interface_replace_old config option
- */
-static int replace_old = 0;
-
-static void
-_delete_missing_interface(ifTable_rowreq_ctx *rowreq_ctx,
-                          netsnmp_container *container);
-
 /** @ingroup interface 
  * @defgroup data_access data_access: Routines to access data
  *
@@ -75,32 +50,6 @@ _delete_missing_interface(ifTable_rowreq_ctx *rowreq_ctx,
  * OID: .1.3.6.1.2.1.2.2, length: 8
  */
 
-static void
-parse_interface_fadeout(const char *token, char *line)
-{
-    fadeout = atoi(line);
-}
-static void
-parse_interface_replace_old(const char *token, char *line)
-{
-    if (strcmp(line, "yes") == 0
-            || strcmp(line, "y") == 0
-            || strcmp(line, "true") == 0
-            || strcmp(line, "1") == 0) {
-        replace_old = 1;
-        return;
-    }
-    if (strcmp(line, "no") == 0
-            || strcmp(line, "n") == 0
-            || strcmp(line, "false") == 0
-            || strcmp(line, "0") == 0) {
-        replace_old = 0;
-        return;
-    }
-    snmp_log(LOG_ERR, "Invalid value of interface_replace_old parameter: '%s'\n",
-            line);
-}
-
 /**
  * initialization for ifTable data access
  *
@@ -121,10 +70,6 @@ ifTable_init_data(ifTable_registration * ifTable_reg)
     /*
      * TODO:303:o: Initialize ifTable data.
      */
-    snmpd_register_config_handler("interface_fadeout", parse_interface_fadeout, NULL,
-            "interface_fadeout seconds");
-    snmpd_register_config_handler("interface_replace_old",
-            parse_interface_replace_old, NULL, "interface_replace_old yes|no");
 
     return MFD_SUCCESS;
 }                               /* ifTable_init_data */
@@ -207,122 +152,23 @@ ifTable_container_init(netsnmp_container **container_ptr_ptr,
          NETSNMP_CACHE_AUTO_RELOAD | NETSNMP_CACHE_DONT_INVALIDATE_ON_SET);
 }                               /* ifTable_container_init */
 
-void
-send_linkUpDownNotifications(oid *notification_oid, size_t notification_oid_len, int if_index, int if_admin_status, int if_oper_status)
-{
-    /*
-     * In the notification, we have to assign our notification OID to
-     * the snmpTrapOID.0 object. Here is it's definition. 
-     */
-    oid             objid_snmptrap[] = { 1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0 };
-    size_t          objid_snmptrap_len = OID_LENGTH(objid_snmptrap);
-
-    /*
-     * define the OIDs for the varbinds we're going to include
-     *  with the notification -
-     * IF-MIB::ifIndex,
-     * IF-MIB::ifAdminStatus, and
-     * IF-MIB::ifOperStatus
-     */
-    oid      if_index_oid[]   = { 1, 3, 6, 1, 2, 1, 2, 2, 1, 1, 0 };
-    size_t   if_index_oid_len = OID_LENGTH(if_index_oid);
-    oid      if_admin_status_oid[]   = { 1, 3, 6, 1, 2, 1, 2, 2, 1, 7, 0 };
-    size_t   if_admin_status_oid_len = OID_LENGTH(if_admin_status_oid);
-    oid      if_oper_status_oid[]   = { 1, 3, 6, 1, 2, 1, 2, 2, 1, 8, 0 };
-    size_t   if_oper_status_oid_len = OID_LENGTH(if_oper_status_oid);
-
-    /*
-     * here is where we store the variables to be sent in the trap 
-     */
-    netsnmp_variable_list *notification_vars = NULL;
-
-    DEBUGMSGTL(("rsys:linkUpDownNotifications", "defining the trap\n"));
-
-    /*
-     * update the instance for each variable to be sent in the trap
-     */
-    if_index_oid[10] = if_index;
-    if_admin_status_oid[10] = if_index;
-    if_oper_status_oid[10] = if_index;
-
-    /*
-     * add in the trap definition object 
-     */
-    snmp_varlist_add_variable(&notification_vars,
-                              /*
-                               * the snmpTrapOID.0 variable 
-                               */
-                              objid_snmptrap, objid_snmptrap_len,
-                              /*
-                               * value type is an OID 
-                               */
-                              ASN_OBJECT_ID,
-                              /*
-                               * value contents is our notification OID 
-                               */
-                              (u_char *) notification_oid,
-                              /*
-                               * size in bytes = oid length * sizeof(oid) 
-                               */
-                              notification_oid_len * sizeof(oid));
-
-    /*
-     * add in the additional objects defined as part of the trap
-     */
-    snmp_varlist_add_variable(&notification_vars,
-                               if_index_oid, if_index_oid_len,
-                               ASN_INTEGER,
-                              (u_char *)&if_index,
-                                  sizeof(if_index));
-
-    /*
-     * if we want to insert additional objects, we do it here 
-     */
-    snmp_varlist_add_variable(&notification_vars,
-                               if_admin_status_oid, if_admin_status_oid_len,
-                               ASN_INTEGER,
-                              (u_char *)&if_admin_status,
-                                  sizeof(if_admin_status));
-
-    snmp_varlist_add_variable(&notification_vars,
-                               if_oper_status_oid, if_oper_status_oid_len,
-                               ASN_INTEGER,
-                              (u_char *)&if_oper_status,
-                                  sizeof(if_oper_status));
-
-    /*
-     * send the trap out.  This will send it to all registered
-     * receivers (see the "SETTING UP TRAP AND/OR INFORM DESTINATIONS"
-     * section of the snmpd.conf manual page. 
-     */
-    DEBUGMSGTL(("rsys:linkUpDownNotifications", "sending the trap\n"));
-    send_v2trap(notification_vars);
-
-    /*
-     * free the created notification variable list 
-     */
-    DEBUGMSGTL(("rsys:linkUpDownNotifications", "cleaning up\n"));
-    snmp_free_varbind(notification_vars);
-}
-
 /**
  * check entry for update
  *
  */
 static void
 _check_interface_entry_for_updates(ifTable_rowreq_ctx * rowreq_ctx,
-                                   cd_container *cdc)
+                                   netsnmp_container *ifcontainer)
 {
     char            oper_changed = 0;
-    int lastchanged = rowreq_ctx->data.ifLastChange;
-    netsnmp_container *ifcontainer = cdc->current;
+    u_long lastchange = rowreq_ctx->data.ifLastChange;
 
     /*
      * check for matching entry. We can do this directly, since
      * both containers use the same index.
      */
     netsnmp_interface_entry *ifentry =
-        (netsnmp_interface_entry*)CONTAINER_FIND(ifcontainer, rowreq_ctx);
+        CONTAINER_FIND(ifcontainer, rowreq_ctx);
 
 #ifdef USING_IP_MIB_IPV4INTERFACETABLE_IPV4INTERFACETABLE_MODULE
     /*
@@ -347,40 +193,28 @@ _check_interface_entry_for_updates(ifTable_rowreq_ctx * rowreq_ctx,
          * deleted (and thus need to update ifTableLastChanged)?
          */
         if (!rowreq_ctx->known_missing) {
+            DEBUGMSGTL(("ifTable:access", "updating missing entry\n"));
             rowreq_ctx->known_missing = 1;
-            DEBUGMSGTL(("ifTable:access", "updating missing entry %s\n",rowreq_ctx->data.ifName));
             rowreq_ctx->data.ifAdminStatus = IFADMINSTATUS_DOWN;
+            if ((!(rowreq_ctx->data.ifentry->ns_flags & NETSNMP_INTERFACE_FLAGS_HAS_LASTCHANGE))
+                && (rowreq_ctx->data.ifOperStatus != IFOPERSTATUS_DOWN))
+                oper_changed = 1;
             rowreq_ctx->data.ifOperStatus = IFOPERSTATUS_DOWN;
-            oper_changed = 1;
-        }
-        if (rowreq_ctx->known_missing) {
-            time_t now = netsnmp_get_agent_uptime();
-            u_long diff = (now - rowreq_ctx->data.ifLastChange) / 100;
-            DEBUGMSGTL(("verbose:ifTable:access", "missing entry for %ld seconds\n", diff));
-            if (diff >= fadeout) {
-                DEBUGMSGTL(("ifTable:access", "marking missing entry %s for "
-                            "removal after %d seconds\n", rowreq_ctx->data.ifName,
-                            fadeout));
-                if (NULL == cdc->deleted)
-                   cdc->deleted = netsnmp_container_find("ifTable_deleted:linked_list");
-                if (NULL == cdc->deleted)
-                   snmp_log(LOG_ERR, "couldn't create container for deleted interface\n");
-                else {
-                   CONTAINER_INSERT(cdc->deleted, rowreq_ctx);
-                }
-            }
         }
     } else {
-        DEBUGMSGTL(("ifTable:access", "updating existing entry %s\n",
-                    rowreq_ctx->data.ifName));
+        DEBUGMSGTL(("ifTable:access", "updating existing entry\n"));
 
 #ifdef USING_IF_MIB_IFXTABLE_IFXTABLE_MODULE
         {
             int rc = strcmp(rowreq_ctx->data.ifName,
                             ifentry->name);
             if (rc != 0) {
-                NETSNMP_LOGONCE((LOG_ERR, "Name of an interface changed. Such " \
-                        "interfaces will keep its old name in IF-MIB.\n"));
+                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;
+                }
                 DEBUGMSGTL(("ifTable:access", "interface %s changed name to %s, ignoring\n",
                     rowreq_ctx->data.ifName, ifentry->name));
             }
@@ -419,63 +253,10 @@ _check_interface_entry_for_updates(ifTable_rowreq_ctx * rowreq_ctx,
     /*
      * if ifOperStatus changed, update ifLastChange
      */
-    if (oper_changed) {
+    if (oper_changed)
         rowreq_ctx->data.ifLastChange = netsnmp_get_agent_uptime();
-#ifdef USING_IF_MIB_IFXTABLE_IFXTABLE_MODULE
-        if (rowreq_ctx->data.ifLinkUpDownTrapEnable == 1) {
-            if (rowreq_ctx->data.ifOperStatus == IFOPERSTATUS_UP) {
-                oid notification_oid[] = { 1, 3, 6, 1, 6, 3, 1, 1, 5, 4 };
-                send_linkUpDownNotifications(notification_oid, OID_LENGTH(notification_oid),
-                                             rowreq_ctx->tbl_idx.ifIndex,
-                                             rowreq_ctx->data.ifAdminStatus,
-                                             rowreq_ctx->data.ifOperStatus);
-            } else if (rowreq_ctx->data.ifOperStatus == IFOPERSTATUS_DOWN) {
-                oid notification_oid[] = { 1, 3, 6, 1, 6, 3, 1, 1, 5, 3 };
-                send_linkUpDownNotifications(notification_oid, OID_LENGTH(notification_oid),
-                                             rowreq_ctx->tbl_idx.ifIndex,
-                                             rowreq_ctx->data.ifAdminStatus,
-                                             rowreq_ctx->data.ifOperStatus);
-            }
-        }
-#endif
-    }
-
     else
-        rowreq_ctx->data.ifLastChange = lastchanged;
-}
-
-/**
- * Remove all old interfaces with the same name as the newly added one.
- */
-static void
-_check_and_replace_old(netsnmp_interface_entry *ifentry,
-                   netsnmp_container *container)
-{
-    netsnmp_iterator *it;
-    ifTable_rowreq_ctx * rowreq_ctx;
-    netsnmp_container *to_delete;
-
-    to_delete = netsnmp_container_find("ifTable_deleted:linked_list");
-    if (NULL == to_delete) {
-       snmp_log(LOG_ERR, "couldn't create container for deleted interface\n");
-       return;
-    }
-
-    it = CONTAINER_ITERATOR(container);
-    for (rowreq_ctx = ITERATOR_FIRST(it); rowreq_ctx; rowreq_ctx = ITERATOR_NEXT(it)) {
-        if (strcmp(ifentry->name, rowreq_ctx->data.ifentry->name) == 0) {
-            DEBUGMSGTL(("ifTable:access",
-                    "removing interface %ld due to new %s\n",
-                    (long) rowreq_ctx->data.ifentry->index, ifentry->name));
-            CONTAINER_INSERT(to_delete, rowreq_ctx);
-        }
-    }
-    ITERATOR_RELEASE(it);
-
-    CONTAINER_FOR_EACH(to_delete,
-                       (netsnmp_container_obj_func *) _delete_missing_interface,
-                       container);
-    CONTAINER_FREE(to_delete);
+        rowreq_ctx->data.ifLastChange = lastchange;
 }
 
 /**
@@ -496,9 +277,6 @@ _add_new_interface(netsnmp_interface_entry *ifentry,
     rowreq_ctx = ifTable_allocate_rowreq_ctx(ifentry);
     if ((NULL != rowreq_ctx) &&
         (MFD_SUCCESS == ifTable_indexes_set(rowreq_ctx, ifentry->index))) {
-        if (replace_old)
-                _check_and_replace_old(ifentry, container);
-
         CONTAINER_INSERT(container, rowreq_ctx);
         /*
          * fix this when we hit an arch that reports its own last change
@@ -535,21 +313,6 @@ _add_new_interface(netsnmp_interface_entry *ifentry,
 }
 
 /**
- * add new entry
- */
-static void
-_delete_missing_interface(ifTable_rowreq_ctx *rowreq_ctx,
-                          netsnmp_container *container)
-{
-    DEBUGMSGTL(("ifTable:access", "removing missing entry %s\n",
-                rowreq_ctx->data.ifName));
-
-    CONTAINER_REMOVE(container, rowreq_ctx);
-
-    ifTable_release_rowreq_ctx(rowreq_ctx);
-}
-
-/**
  * container shutdown
  *
  * @param container_ptr A pointer to the container.
@@ -613,7 +376,7 @@ ifTable_container_shutdown(netsnmp_container *container_ptr)
 int
 ifTable_container_load(netsnmp_container *container)
 {
-    cd_container cdc;
+    netsnmp_container *ifcontainer;
 
     DEBUGMSGTL(("verbose:ifTable:ifTable_container_load", "called\n"));
 
@@ -626,35 +389,23 @@ ifTable_container_load(netsnmp_container *container)
     /*
      * ifTable gets its data from the netsnmp_interface API.
      */
-    cdc.current =
+    ifcontainer =
         netsnmp_access_interface_container_load(NULL,
                                                 NETSNMP_ACCESS_INTERFACE_INIT_NOFLAGS);
-    if (NULL == cdc.current)
+    if (NULL == ifcontainer)
         return MFD_RESOURCE_UNAVAILABLE;        /* msg already logged */
 
-    cdc.deleted = NULL; /* created as needed */
-
     /*
      * we just got a fresh copy of interface data. compare it to
      * what we've already got, and make any adjustements...
      */
     CONTAINER_FOR_EACH(container, (netsnmp_container_obj_func *)
-                       _check_interface_entry_for_updates, &cdc);
-
-    /*
-     * now remove any missing interfaces
-     */
-    if (NULL != cdc.deleted) {
-       CONTAINER_FOR_EACH(cdc.deleted,
-                          (netsnmp_container_obj_func *) _delete_missing_interface,
-                          container);
-       CONTAINER_FREE(cdc.deleted);
-    }
+                       _check_interface_entry_for_updates, ifcontainer);
 
     /*
      * now add any new interfaces
      */
-    CONTAINER_FOR_EACH(cdc.current,
+    CONTAINER_FOR_EACH(ifcontainer,
                        (netsnmp_container_obj_func *) _add_new_interface,
                        container);
 
@@ -662,11 +413,11 @@ ifTable_container_load(netsnmp_container *container)
      * free the container. we've either claimed each ifentry, or released it,
      * so the dal function doesn't need to clear the container.
      */
-    netsnmp_access_interface_container_free(cdc.current,
+    netsnmp_access_interface_container_free(ifcontainer,
                                             NETSNMP_ACCESS_INTERFACE_FREE_DONT_CLEAR);
 
     DEBUGMSGT(("verbose:ifTable:ifTable_cache_load",
-               "%lu records\n", (unsigned long)CONTAINER_SIZE(container)));
+               "%d records\n", CONTAINER_SIZE(container)));
 
     if (_first_load)
         _first_load = 0;
diff --git a/agent/mibgroup/if-mib/ifTable/ifTable_data_access.h b/agent/mibgroup/if-mib/ifTable/ifTable_data_access.h
index 445929b..8a2875d 100644
--- a/agent/mibgroup/if-mib/ifTable/ifTable_data_access.h
+++ b/agent/mibgroup/if-mib/ifTable/ifTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: ifTable_data_access.h 14459 2006-04-10 04:59:10Z hardaker $
  */
 #ifndef IFTABLE_DATA_ACCESS_H
 #define IFTABLE_DATA_ACCESS_H
@@ -46,9 +46,7 @@ extern          "C" {
      * 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   3
-
-#define IFTABLE_REMOVE_MISSING_AFTER     (5 * 60) /* seconds */
+#define IFTABLE_CACHE_TIMEOUT   15
 
     void            ifTable_container_init(netsnmp_container
                                            **container_ptr_ptr,
diff --git a/agent/mibgroup/if-mib/ifTable/ifTable_interface.c b/agent/mibgroup/if-mib/ifTable/ifTable_interface.c
index 41d38ee..1c8b795 100644
--- a/agent/mibgroup/if-mib/ifTable/ifTable_interface.c
+++ b/agent/mibgroup/if-mib/ifTable/ifTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: ifTable_interface.c 15461 2006-10-19 20:38:00Z hardaker $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -48,21 +47,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_child_of(ifTable_external_access, libnetsnmpmibs)
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(check_all_requests_error)
-netsnmp_feature_child_of(iftable_container_get, ifTable_external_access)
-netsnmp_feature_child_of(ifxtable_shutdown_interface, netsnmp_unused)
-netsnmp_feature_child_of(ifXTable_container_size, ifXTable_external_access)
-netsnmp_feature_child_of(ifXTable_registration_set, ifXTable_external_access)
-netsnmp_feature_child_of(ifXTable_registration_get, ifXTable_external_access)
-netsnmp_feature_child_of(ifXTable_container_get, ifXTable_external_access)
-netsnmp_feature_child_of(iftable_container_size, ifTable_external_access)
-netsnmp_feature_child_of(iftable_registration_set, ifTable_external_access)
-netsnmp_feature_child_of(iftable_registration_get, ifTable_external_access)
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -98,23 +82,19 @@ static void     _ifTable_container_init(ifTable_interface_ctx * if_ctx);
 static void     _ifTable_container_shutdown(ifTable_interface_ctx *
                                             if_ctx);
 
-#ifndef NETSNMP_FEATURE_REMOVE_IFTABLE_CONTAINER_GET
+
 netsnmp_container *
 ifTable_container_get(void)
 {
     return ifTable_if_ctx.container;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IFTABLE_CONTAINER_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IFTABLE_REGISTRATION_GET
 ifTable_registration *
 ifTable_registration_get(void)
 {
     return ifTable_if_ctx.user_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IFTABLE_REGISTRATION_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IFTABLE_REGISTRATION_SET
 ifTable_registration *
 ifTable_registration_set(ifTable_registration * newreg)
 {
@@ -122,15 +102,12 @@ ifTable_registration_set(ifTable_registration * newreg)
     ifTable_if_ctx.user_ctx = newreg;
     return old;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IFTABLE_REGISTRATION_SET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IFTABLE_CONTAINER_SIZE
 int
 ifTable_container_size(void)
 {
     return CONTAINER_SIZE(ifTable_if_ctx.container);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IFTABLE_CONTAINER_SIZE */
 
 u_int
 ifTable_dirty_get(void)
@@ -168,7 +145,6 @@ static Netsnmp_Node_Handler _mfd_ifTable_pre_request;
 static Netsnmp_Node_Handler _mfd_ifTable_post_request;
 static Netsnmp_Node_Handler _mfd_ifTable_object_lookup;
 static Netsnmp_Node_Handler _mfd_ifTable_get_values;
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 static Netsnmp_Node_Handler _mfd_ifTable_check_objects;
 static Netsnmp_Node_Handler _mfd_ifTable_undo_setup;
 static Netsnmp_Node_Handler _mfd_ifTable_set_values;
@@ -183,7 +159,6 @@ NETSNMP_STATIC_INLINE int _ifTable_undo_column(ifTable_rowreq_ctx *
                                                rowreq_ctx,
                                                netsnmp_variable_list * var,
                                                int column);
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 ifTable_data   *ifTable_allocate_data(void);
 
@@ -245,7 +220,7 @@ _ifTable_initialize_interface(ifTable_registration * reg_ptr, u_long flags)
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = IFTABLE_MIN_COL;
     tbl_info->max_column = IFTABLE_MAX_COL;
@@ -273,7 +248,6 @@ _ifTable_initialize_interface(ifTable_registration * reg_ptr, u_long flags)
     access_multiplexer->post_request = _mfd_ifTable_post_request;
 
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     /*
      * REQUIRED wrappers for set request handling
      */
@@ -296,7 +270,6 @@ _ifTable_initialize_interface(ifTable_registration * reg_ptr, u_long flags)
      */
     access_multiplexer->consistency_checks =
         _mfd_ifTable_check_dependencies;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     /*************************************************
      *
@@ -310,13 +283,7 @@ _ifTable_initialize_interface(ifTable_registration * reg_ptr, u_long flags)
         netsnmp_handler_registration_create("ifTable", handler,
                                             ifTable_oid, ifTable_oid_size,
                                             HANDLER_CAN_BABY_STEP |
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
-                                            HANDLER_CAN_RWRITE
-#else
-                                            HANDLER_CAN_RONLY
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
-            );
-
+                                            HANDLER_CAN_RWRITE);
     if (NULL == reginfo) {
         snmp_log(LOG_ERR, "error registering table ifTable\n");
         return;
@@ -329,12 +296,6 @@ _ifTable_initialize_interface(ifTable_registration * reg_ptr, u_long flags)
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -342,6 +303,11 @@ _ifTable_initialize_interface(ifTable_registration * reg_ptr, u_long flags)
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -357,7 +323,6 @@ _ifTable_initialize_interface(ifTable_registration * reg_ptr, u_long flags)
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -398,8 +363,8 @@ _ifTable_initialize_interface(ifTable_registration * reg_ptr, u_long flags)
      * register ifTableLastChanged
      */
     {
-        const oid       iftlc_oid[] = { IFTABLE_LAST_CHANGE };
-        netsnmp_register_watched_scalar2(netsnmp_create_handler_registration
+        oid             iftlc_oid[] = { IFTABLE_LAST_CHANGE };
+        netsnmp_register_watched_scalar(netsnmp_create_handler_registration
                                         ("ifTableLastChanged", NULL,
                                          iftlc_oid, OID_LENGTH(iftlc_oid),
                                          HANDLER_CAN_RONLY),
@@ -682,7 +647,7 @@ _mfd_ifTable_post_request(netsnmp_mib_handler *handler,
                           netsnmp_agent_request_info *agtreq_info,
                           netsnmp_request_info *requests)
 {
-    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
+    ifTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -736,7 +701,7 @@ _mfd_ifTable_object_lookup(netsnmp_mib_handler *handler,
                            netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
+    ifTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifTable:_mfd_ifTable_object_lookup",
@@ -996,7 +961,7 @@ _mfd_ifTable_get_values(netsnmp_mib_handler *handler,
                         netsnmp_agent_request_info *agtreq_info,
                         netsnmp_request_info *requests)
 {
-    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
+    ifTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1065,7 +1030,6 @@ _mfd_ifTable_get_values(netsnmp_mib_handler *handler,
 
 
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 
 /***********************************************************************
  *
@@ -1291,7 +1255,7 @@ _mfd_ifTable_check_objects(netsnmp_mib_handler *handler,
                            netsnmp_agent_request_info *agtreq_info,
                            netsnmp_request_info *requests)
 {
-    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
+    ifTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1338,7 +1302,7 @@ _mfd_ifTable_check_dependencies(netsnmp_mib_handler *handler,
                                 netsnmp_request_info *requests)
 {
     int             rc;
-    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
+    ifTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:ifTable:_mfd_ifTable_check_dependencies",
                 "called\n"));
@@ -1449,7 +1413,7 @@ _mfd_ifTable_undo_setup(netsnmp_mib_handler *handler,
                         netsnmp_request_info *requests)
 {
     int             rc;
-    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
+    ifTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifTable:_mfd_ifTable_undo_setup", "called\n"));
@@ -1523,7 +1487,7 @@ _mfd_ifTable_undo_cleanup(netsnmp_mib_handler *handler,
                           netsnmp_agent_request_info *agtreq_info,
                           netsnmp_request_info *requests)
 {
-    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
+    ifTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1602,7 +1566,7 @@ _mfd_ifTable_set_values(netsnmp_mib_handler *handler,
                         netsnmp_agent_request_info *agtreq_info,
                         netsnmp_request_info *requests)
 {
-    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
+    ifTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1649,7 +1613,7 @@ _mfd_ifTable_commit(netsnmp_mib_handler *handler,
                     netsnmp_request_info *requests)
 {
     int             rc;
-    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
+    ifTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifTable:_mfd_ifTable_commit", "called\n"));
@@ -1691,7 +1655,7 @@ _mfd_ifTable_undo_commit(netsnmp_mib_handler *handler,
                          netsnmp_request_info *requests)
 {
     int             rc;
-    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
+    ifTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifTable:_mfd_ifTable_undo_commit", "called\n"));
@@ -1769,7 +1733,7 @@ _mfd_ifTable_undo_values(netsnmp_mib_handler *handler,
                          netsnmp_request_info *requests)
 {
     int             rc;
-    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
+    ifTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -1822,7 +1786,7 @@ _mfd_ifTable_irreversible_commit(netsnmp_mib_handler *handler,
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
+    ifTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifTable:_mfd_ifTable_irreversible:commit",
@@ -1844,7 +1808,6 @@ _mfd_ifTable_irreversible_commit(netsnmp_mib_handler *handler,
 
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_ifTable_irreversible_commit */
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 /***********************************************************************
  *
@@ -1990,7 +1953,6 @@ _ifTable_container_shutdown(ifTable_interface_ctx * if_ctx)
 }                               /* _ifTable_container_shutdown */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_IFTABLE_EXTERNAL_ACCESS
 ifTable_rowreq_ctx *
 ifTable_row_find_by_mib_index(ifTable_mib_index * mib_idx)
 {
@@ -2012,8 +1974,7 @@ ifTable_row_find_by_mib_index(ifTable_mib_index * mib_idx)
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = (ifTable_rowreq_ctx*)CONTAINER_FIND(ifTable_if_ctx.container, &oid_idx);
+    rowreq_ctx = CONTAINER_FIND(ifTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IFTABLE_EXTERNAL_ACCESS */
diff --git a/agent/mibgroup/if-mib/ifTable/ifTable_interface.h b/agent/mibgroup/if-mib/ifTable/ifTable_interface.h
index be2028a..f28de78 100644
--- a/agent/mibgroup/if-mib/ifTable/ifTable_interface.h
+++ b/agent/mibgroup/if-mib/ifTable/ifTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: ifTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup misc  
  * @defgroup interface Routines to interface to Net-SNMP
diff --git a/agent/mibgroup/if-mib/ifXTable/ifXTable.c b/agent/mibgroup/if-mib/ifXTable/ifXTable.c
index bb3e736..4d52d15 100644
--- a/agent/mibgroup/if-mib/ifXTable/ifXTable.c
+++ b/agent/mibgroup/if-mib/ifXTable/ifXTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: ifXTable.c 18249 2010-03-11 11:26:48Z dts12 $
  */
 /** \page MFD helper for ifXTable
  *
@@ -14,7 +14,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -30,9 +29,6 @@
 
 #include "ifXTable_interface.h"
 
-netsnmp_feature_require(ifTable_container_get)
-netsnmp_feature_require(ifTable_container_size)
-
 /*
  * not sure if we want to support set for promiscuous mode, because
  * 1) careful thought should go into any settable object that performs
@@ -42,11 +38,11 @@ netsnmp_feature_require(ifTable_container_size)
  */
 #undef NETSNMP_ENABLE_PROMISCUOUSMODE_SET
 
-const oid       ifXTable_oid[] = { IFXTABLE_OID };
-const int       ifXTable_oid_size = OID_LENGTH(ifXTable_oid);
+oid             ifXTable_oid[] = { IFXTABLE_OID };
+int             ifXTable_oid_size = OID_LENGTH(ifXTable_oid);
+const char     *row_token = "ifXTable";
 
 ifXTable_registration ifXTable_user_context;
-static ifXTable_registration *ifXTable_user_context_p;
 
 /**
  * Initializes the ifXTable module
@@ -74,6 +70,7 @@ init_ifXTable(void)
 void
 initialize_table_ifXTable(void)
 {
+    ifXTable_registration *user_context;
     u_long          flags;
 
     DEBUGMSGTL(("verbose:ifXTable:initialize_table_ifXTable", "called\n"));
@@ -91,7 +88,7 @@ initialize_table_ifXTable(void)
      * a netsnmp_data_list is a simple way to store void pointers. A simple
      * string token is used to add, find or remove pointers.
      */
-    ifXTable_user_context_p = netsnmp_create_data_list("ifXTable", NULL, NULL);
+    user_context = netsnmp_create_data_list("ifXTable", NULL, NULL);
 
     /*
      * No support for any flags yet, but in the future you would
@@ -102,7 +99,7 @@ initialize_table_ifXTable(void)
     /*
      * call interface initialization code
      */
-    _ifXTable_initialize_interface(ifXTable_user_context_p, flags);
+    _ifXTable_initialize_interface(user_context, flags);
 
     /*
      * if there is no container, bail. otherwise, register the callbacks
@@ -113,13 +110,6 @@ initialize_table_ifXTable(void)
 
 }                               /* initialize_table_ifXTable */
 
-void
-shutdown_ifXTable(void)
-{
-    netsnmp_free_all_list_data(ifXTable_user_context_p);
-    ifXTable_user_context_p = NULL;
-}
-
 /**
  * extra context initialization (eg default values)
  *
@@ -239,9 +229,9 @@ ifXTable_post_request(ifXTable_registration * user_context, int rc)
          */
         if (MFD_SUCCESS == rc) {
             /*
-             * notify library to save changed rows
+             * save changed rows, if you haven't already
              */
-            snmp_store_needed(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+            snmp_store(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
                                              NETSNMP_DS_LIB_APPTYPE));
         }
 
@@ -403,7 +393,7 @@ int
 ifName_get(ifXTable_rowreq_ctx * rowreq_ctx, char **ifName_val_ptr_ptr,
            size_t * ifName_val_ptr_len_ptr)
 {
-    size_t tmp_len;
+    int             tmp_len;
 
    /** we should have a non-NULL pointer and enough storage */
     netsnmp_assert((NULL != ifName_val_ptr_ptr)
@@ -428,7 +418,7 @@ ifName_get(ifXTable_rowreq_ctx * rowreq_ctx, char **ifName_val_ptr_ptr,
         /*
          * allocate space for ifName data
          */
-        (*ifName_val_ptr_ptr) = (char*)malloc(tmp_len);
+        (*ifName_val_ptr_ptr) = malloc(tmp_len);
         if (NULL == (*ifName_val_ptr_ptr)) {
             snmp_log(LOG_ERR, "could not allocate memory\n");
             return MFD_ERROR;
@@ -1390,6 +1380,13 @@ ifConnectorPresent_get(ifXTable_rowreq_ctx * rowreq_ctx,
 
     netsnmp_assert(NULL != rowreq_ctx);
 
+    if (0 == rowreq_ctx->data.ifConnectorPresent)
+        return MFD_SKIP;
+
+    /*
+     * TODO:231:o: |-> Extract the current value of the ifConnectorPresent data.
+     * copy (* ifConnectorPresent_val_ptr ) from rowreq_ctx->data
+     */
     (*ifConnectorPresent_val_ptr) = rowreq_ctx->data.ifConnectorPresent ?
         TV_TRUE : TV_FALSE;
 
@@ -1496,7 +1493,7 @@ ifAlias_get(ifXTable_rowreq_ctx * rowreq_ctx, char **ifAlias_val_ptr_ptr,
         /*
          * allocate space for ifAlias data
          */
-        (*ifAlias_val_ptr_ptr) = (char*)
+        (*ifAlias_val_ptr_ptr) =
             malloc(rowreq_ctx->data.ifAlias_len *
                    sizeof(rowreq_ctx->data.ifAlias[0]));
         if (NULL == (*ifAlias_val_ptr_ptr)) {
@@ -1576,7 +1573,6 @@ ifCounterDiscontinuityTime_get(ifXTable_rowreq_ctx * rowreq_ctx,
 }                               /* ifCounterDiscontinuityTime_get */
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 
 /** @} */
 /**********************************************************************
@@ -2535,7 +2531,5 @@ ifXTable_check_dependencies(ifXTable_rowreq_ctx * rowreq_ctx)
     return rc;
 }                               /* ifXTable_check_dependencies */
 
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
 /** @} */
 /** @{ */
diff --git a/agent/mibgroup/if-mib/ifXTable/ifXTable.h b/agent/mibgroup/if-mib/ifXTable/ifXTable.h
index ba22f97..72c0c84 100644
--- a/agent/mibgroup/if-mib/ifXTable/ifXTable.h
+++ b/agent/mibgroup/if-mib/ifXTable/ifXTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: ifXTable.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 #ifndef IFXTABLE_H
 #define IFXTABLE_H
@@ -94,8 +94,8 @@ config_require(if-mib/ifXTable/ifXTable_data_access)
     ifXTable_rowreq_ctx *ifXTable_row_find_by_mib_index(ifXTable_mib_index
                                                         * mib_idx);
 
-    extern const oid      ifXTable_oid[];
-    extern const int      ifXTable_oid_size;
+    extern oid      ifXTable_oid[];
+    extern int      ifXTable_oid_size;
 
 
 #include "ifXTable_interface.h"
@@ -218,7 +218,7 @@ config_require(if-mib/ifXTable/ifXTable_data_access)
      * OID: .1.3.6.1.2.1.31.1.1, length: 9
      */
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
+
     int             ifXTable_undo_setup(ifXTable_rowreq_ctx * rowreq_ctx);
     int             ifXTable_undo_cleanup(ifXTable_rowreq_ctx *
                                           rowreq_ctx);
@@ -438,7 +438,7 @@ config_require(if-mib/ifXTable/ifXTable_data_access)
 
 
     int             ifXTable_check_dependencies(ifXTable_rowreq_ctx * ctx);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+
 
     /*
      * DUMMY markers, ignore
diff --git a/agent/mibgroup/if-mib/ifXTable/ifXTable_constants.h b/agent/mibgroup/if-mib/ifXTable/ifXTable_constants.h
index 67e1996..51770ec 100644
--- a/agent/mibgroup/if-mib/ifXTable/ifXTable_constants.h
+++ b/agent/mibgroup/if-mib/ifXTable/ifXTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: ifXTable_constants.h 14043 2006-01-05 23:48:58Z rstory $
  */
 #ifndef IFXTABLE_CONSTANTS_H
 #define IFXTABLE_CONSTANTS_H
@@ -67,11 +67,7 @@ extern          "C" {
      * TODO:405:r: Review IFXTABLE_SETTABLE_COLS macro.
      * OR together all the writable cols.
      */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 #define IFXTABLE_SETTABLE_COLS (COLUMN_IFLINKUPDOWNTRAPENABLE_FLAG | COLUMN_IFALIAS_FLAG)
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
-#define IFXTABLE_SETTABLE_COLS 0
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
     /*
      * NOTES on enums
      * ==============
diff --git a/agent/mibgroup/if-mib/ifXTable/ifXTable_data_access.c b/agent/mibgroup/if-mib/ifXTable/ifXTable_data_access.c
index 188c6db..d87369b 100644
--- a/agent/mibgroup/if-mib/ifXTable/ifXTable_data_access.c
+++ b/agent/mibgroup/if-mib/ifXTable/ifXTable_data_access.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: ifXTable_data_access.c 15462 2006-10-19 21:42:46Z hardaker $
  */
 /*
  * standard Net-SNMP includes 
diff --git a/agent/mibgroup/if-mib/ifXTable/ifXTable_data_access.h b/agent/mibgroup/if-mib/ifXTable/ifXTable_data_access.h
index 4bc9c30..82646fb 100644
--- a/agent/mibgroup/if-mib/ifXTable/ifXTable_data_access.h
+++ b/agent/mibgroup/if-mib/ifXTable/ifXTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: ifXTable_data_access.h 13748 2005-11-30 20:16:18Z rstory $
  */
 #ifndef IFXTABLE_DATA_ACCESS_H
 #define IFXTABLE_DATA_ACCESS_H
diff --git a/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c b/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
index 6828ab2..8c329bc 100644
--- a/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
+++ b/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: ifXTable_interface.c 15462 2006-10-19 21:42:46Z hardaker $
  */
 /*
  * *********************************************************************
@@ -30,8 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -50,16 +48,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_child_of(ifXTable_external_access, libnetsnmpmibs)
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(cache_find_by_oid)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(check_all_requests_error)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_type_and_max_size)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -93,23 +81,19 @@ static void     _ifXTable_container_init(ifXTable_interface_ctx * if_ctx);
 static void     _ifXTable_container_shutdown(ifXTable_interface_ctx *
                                              if_ctx);
 
-#ifndef NETSNMP_FEATURE_REMOVE_IFXTABLE_CONTAINER_GET
+
 netsnmp_container *
 ifXTable_container_get(void)
 {
     return ifXTable_if_ctx.container;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IFXTABLE_CONTAINER_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IFXTABLE_REGISTRATION_GET
 ifXTable_registration *
 ifXTable_registration_get(void)
 {
     return ifXTable_if_ctx.user_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IFXTABLE_REGISTRATION_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IFXTABLE_REGISTRATION_SET
 ifXTable_registration *
 ifXTable_registration_set(ifXTable_registration * newreg)
 {
@@ -117,15 +101,12 @@ ifXTable_registration_set(ifXTable_registration * newreg)
     ifXTable_if_ctx.user_ctx = newreg;
     return old;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IFXTABLE_REGISTRATION_SET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IFXTABLE_CONTAINER_SIZE
 int
 ifXTable_container_size(void)
 {
     return CONTAINER_SIZE(ifXTable_if_ctx.container);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IFXTABLE_CONTAINER_SIZE */
 
 u_int
 ifXTable_dirty_get(void)
@@ -149,7 +130,6 @@ static Netsnmp_Node_Handler _mfd_ifXTable_pre_request;
 static Netsnmp_Node_Handler _mfd_ifXTable_post_request;
 static Netsnmp_Node_Handler _mfd_ifXTable_object_lookup;
 static Netsnmp_Node_Handler _mfd_ifXTable_get_values;
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 static Netsnmp_Node_Handler _mfd_ifXTable_check_objects;
 static Netsnmp_Node_Handler _mfd_ifXTable_undo_setup;
 static Netsnmp_Node_Handler _mfd_ifXTable_set_values;
@@ -164,7 +144,6 @@ NETSNMP_STATIC_INLINE int _ifXTable_undo_column(ifXTable_rowreq_ctx *
                                                 rowreq_ctx,
                                                 netsnmp_variable_list *
                                                 var, int column);
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 ifXTable_data  *ifXTable_allocate_data(void);
 
@@ -207,7 +186,7 @@ _ifXTable_initialize_interface(ifXTable_registration * reg_ptr,
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = IFXTABLE_MIN_COL;
     tbl_info->max_column = IFXTABLE_MAX_COL;
@@ -242,7 +221,6 @@ _ifXTable_initialize_interface(ifXTable_registration * reg_ptr,
     access_multiplexer->post_request = _mfd_ifXTable_post_request;
 
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     /*
      * REQUIRED wrappers for set request handling
      */
@@ -265,7 +243,6 @@ _ifXTable_initialize_interface(ifXTable_registration * reg_ptr,
      */
     access_multiplexer->consistency_checks =
         _mfd_ifXTable_check_dependencies;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     /*************************************************
      *
@@ -280,13 +257,7 @@ _ifXTable_initialize_interface(ifXTable_registration * reg_ptr,
                                             ifXTable_oid,
                                             ifXTable_oid_size,
                                             HANDLER_CAN_BABY_STEP |
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
-                                            HANDLER_CAN_RWRITE
-#else
-                                            HANDLER_CAN_RONLY
-#endif     /* NETSNMP_NO_WRITE_SUPPORT  || NETSNMP_DISABLE_SET_SUPPORT */
-            );
-
+                                            HANDLER_CAN_RWRITE);
     if (NULL == reginfo) {
         snmp_log(LOG_ERR, "error registering table ifXTable\n");
         return;
@@ -299,12 +270,6 @@ _ifXTable_initialize_interface(ifXTable_registration * reg_ptr,
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -312,6 +277,11 @@ _ifXTable_initialize_interface(ifXTable_registration * reg_ptr,
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -327,7 +297,6 @@ _ifXTable_initialize_interface(ifXTable_registration * reg_ptr,
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -374,7 +343,6 @@ _ifXTable_initialize_interface(ifXTable_registration * reg_ptr,
  * @internal
  * Shutdown the table ifXTable
  */
-#ifndef NETSNMP_FEATURE_REMOVE_IFXTABLE_SHUTDOWN_INTERFACE
 void
 _ifXTable_shutdown_interface(ifXTable_registration * reg_ptr)
 {
@@ -383,7 +351,6 @@ _ifXTable_shutdown_interface(ifXTable_registration * reg_ptr)
      */
     _ifXTable_container_shutdown(&ifXTable_if_ctx);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IFXTABLE_SHUTDOWN_INTERFACE */
 
 void
 ifXTable_valid_columns_set(netsnmp_column_info *vc)
@@ -576,7 +543,7 @@ _mfd_ifXTable_post_request(netsnmp_mib_handler *handler,
                            netsnmp_agent_request_info *agtreq_info,
                            netsnmp_request_info *requests)
 {
-    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
+    ifXTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -631,7 +598,7 @@ _mfd_ifXTable_object_lookup(netsnmp_mib_handler *handler,
                             netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
+    ifXTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifXTable:_mfd_ifXTable_object_lookup",
@@ -869,7 +836,7 @@ _mfd_ifXTable_get_values(netsnmp_mib_handler *handler,
                          netsnmp_agent_request_info *agtreq_info,
                          netsnmp_request_info *requests)
 {
-    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
+    ifXTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -936,7 +903,6 @@ _mfd_ifXTable_get_values(netsnmp_mib_handler *handler,
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_ifXTable_get_values */
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 /***********************************************************************
  *
  * SET processing
@@ -1186,7 +1152,7 @@ _mfd_ifXTable_check_objects(netsnmp_mib_handler *handler,
                             netsnmp_agent_request_info *agtreq_info,
                             netsnmp_request_info *requests)
 {
-    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
+    ifXTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1217,6 +1183,7 @@ _mfd_ifXTable_check_objects(netsnmp_mib_handler *handler,
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_ifXTable_check_objects */
 
+
 /*----------------------------------------------------------------------
  *
  * SET: check dependencies
@@ -1233,7 +1200,7 @@ _mfd_ifXTable_check_dependencies(netsnmp_mib_handler *handler,
                                  netsnmp_request_info *requests)
 {
     int             rc;
-    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
+    ifXTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:ifXTable:_mfd_ifXTable_check_dependencies",
                 "called\n"));
@@ -1317,7 +1284,7 @@ _mfd_ifXTable_undo_setup(netsnmp_mib_handler *handler,
                          netsnmp_request_info *requests)
 {
     int             rc;
-    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
+    ifXTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifXTable:_mfd_ifXTable_undo_setup", "called\n"));
@@ -1380,7 +1347,7 @@ _mfd_ifXTable_undo_cleanup(netsnmp_mib_handler *handler,
                            netsnmp_agent_request_info *agtreq_info,
                            netsnmp_request_info *requests)
 {
-    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
+    ifXTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1482,7 +1449,7 @@ _mfd_ifXTable_set_values(netsnmp_mib_handler *handler,
                          netsnmp_agent_request_info *agtreq_info,
                          netsnmp_request_info *requests)
 {
-    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
+    ifXTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1529,7 +1496,7 @@ _mfd_ifXTable_commit(netsnmp_mib_handler *handler,
                      netsnmp_request_info *requests)
 {
     int             rc;
-    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
+    ifXTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifXTable:_mfd_ifXTable_commit", "called\n"));
@@ -1562,7 +1529,7 @@ _mfd_ifXTable_undo_commit(netsnmp_mib_handler *handler,
                           netsnmp_request_info *requests)
 {
     int             rc;
-    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
+    ifXTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifXTable:_mfd_ifXTable_undo_commit",
@@ -1655,7 +1622,7 @@ _mfd_ifXTable_undo_values(netsnmp_mib_handler *handler,
                           netsnmp_request_info *requests)
 {
     int             rc;
-    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
+    ifXTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -1710,7 +1677,7 @@ _mfd_ifXTable_irreversible_commit(netsnmp_mib_handler *handler,
                                   netsnmp_agent_request_info *agtreq_info,
                                   netsnmp_request_info *requests)
 {
-    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
+    ifXTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifXTable:_mfd_ifXTable_irreversible:commit",
@@ -1733,8 +1700,6 @@ _mfd_ifXTable_irreversible_commit(netsnmp_mib_handler *handler,
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_ifXTable_irreversible_commit */
 
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
-
 /***********************************************************************
  *
  * DATA ACCESS
@@ -1808,7 +1773,7 @@ static char    *_ifXTable_container_col_save(ifXTable_rowreq_ctx *
                                              rowreq_ctx, u_int col,
                                              char *buf);
 
-static const char row_token[] = "ifXTable";
+static char     row_token[] = "ifXTable";
 
 /************************************************************
  * *_init_persistence should be called from the main table
@@ -1822,17 +1787,13 @@ static const char row_token[] = "ifXTable";
 void
 ifXTable_container_init_persistence(netsnmp_container *container)
 {
-    netsnmp_container **container_p;
     int             rc;
 
     register_config_handler(NULL, row_token,
                             _ifXTable_container_row_restore, NULL, NULL);
-    netsnmp_assert(container);
-    memdup((u_char **)&container_p, &container, sizeof(container));
-    netsnmp_assert(container_p);
     rc = snmp_register_callback(SNMP_CALLBACK_LIBRARY,
                                 SNMP_CALLBACK_STORE_DATA,
-                                _ifXTable_container_save_rows, container_p);
+                                _ifXTable_container_save_rows, container);
 
     if (rc != SNMP_ERR_NOERROR)
         snmp_log(LOG_ERR, "error registering for STORE_DATA callback "
@@ -1855,7 +1816,7 @@ _ifXTable_container_save_rows(int majorID, int minorID, void *serverarg,
     /*
      * save all rows
      */
-    CONTAINER_FOR_EACH(*(netsnmp_container **)clientarg,
+    CONTAINER_FOR_EACH((netsnmp_container *) clientarg,
                        (netsnmp_container_obj_func *)
                        _ifXTable_container_row_save, type);
 
@@ -1898,7 +1859,7 @@ _ifXTable_container_row_save(ifXTable_rowreq_ctx * rowreq_ctx, void *type)
      * be treated a little differently. Specifically, you will need
      * (4 * len) + 4 [3 ASCII chars per byte + 1 for ., + 4 for len].
      *
-     * 3) Also, remember to add space for the identifier and separator
+     * 3) Also, remeber to add space for the identifier and seperator
      * 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
@@ -2019,9 +1980,9 @@ _ifXTable_container_row_restore(const char *token, char *buf)
                  "_ifXTable_container_row_restore\n");
         return;
     }
-    rowreq_ctx = (ifXTable_rowreq_ctx*)CONTAINER_FIND(container, &index);
+    rowreq_ctx = CONTAINER_FIND(container, &index);
     if (NULL == rowreq_ctx) {
-        snmp_log(LOG_DEBUG, "error finding row index in "
+        snmp_log(LOG_ERR, "error finding row index in "
                  "_ifXTable_container_row_restore\n");
         return;
     }
@@ -2030,7 +1991,7 @@ _ifXTable_container_row_restore(const char *token, char *buf)
      * loop through and get each column
      */
     buf = skip_white(buf);
-    while ((NULL != buf) && isdigit(*buf & 0xFF)) {
+    while ((NULL != buf) && isdigit(*buf)) {
         /*
          * extract column, skip ':'
          */
@@ -2053,6 +2014,7 @@ _ifXTable_container_row_restore(const char *token, char *buf)
     }
     if (0 == found) {
         snmp_log(LOG_ERR, "error parsing ifXTable row; no columns found\n");
+        ifTable_release_rowreq_ctx(rowreq_ctx);
         return;
     }
 
@@ -2109,8 +2071,7 @@ _ifXTable_container_col_save(ifXTable_rowreq_ctx * rowreq_ctx,
         break;
 
     case COLUMN_IFALIAS:   /** DisplayString = ASN_OCTET_STR */
-        buf = read_config_save_octet_string(buf,
-                                            (u_char *) rowreq_ctx->data.ifAlias,
+        buf = read_config_save_octet_string(buf, rowreq_ctx->data.ifAlias,
                                             rowreq_ctx->data.ifAlias_len);
         break;
 
@@ -2172,7 +2133,6 @@ _ifXTable_container_col_restore(ifXTable_rowreq_ctx * rowreq_ctx,
 }
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_IFXTABLE_EXTERNAL_ACCESS
 ifXTable_rowreq_ctx *
 ifXTable_row_find_by_mib_index(ifXTable_mib_index * mib_idx)
 {
@@ -2194,8 +2154,7 @@ ifXTable_row_find_by_mib_index(ifXTable_mib_index * mib_idx)
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = (ifXTable_rowreq_ctx*)CONTAINER_FIND(ifXTable_if_ctx.container, &oid_idx);
+    rowreq_ctx = CONTAINER_FIND(ifXTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IFXTABLE_EXTERNAL_ACCESS */
diff --git a/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.h b/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.h
index c7fbb77..f94fb57 100644
--- a/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.h
+++ b/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: ifXTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/ip-forward-mib/data_access/route.h b/agent/mibgroup/ip-forward-mib/data_access/route.h
index a2b4ee4..83eb651 100644
--- a/agent/mibgroup/ip-forward-mib/data_access/route.h
+++ b/agent/mibgroup/ip-forward-mib/data_access/route.h
@@ -1,7 +1,7 @@
 /*
  * route data access header
  *
- * $Id$
+ * $Id: route.h 13271 2005-10-28 15:29:23Z rstory $
  */
 /**---------------------------------------------------------------------*/
 /*
@@ -23,7 +23,7 @@ config_require(ip-forward-mib/data_access/route_common)
 config_require(ip-forward-mib/data_access/route_linux)
 config_require(ip-forward-mib/data_access/route_ioctl)
 #else
-config_error(the route data access library is not available in this environment.)
+#error "the route data access library is not available for this platform."
 #endif
 
 /** need interface for ifIndex */
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 84c1810..4882615 100644
--- a/agent/mibgroup/ip-forward-mib/data_access/route_common.c
+++ b/agent/mibgroup/ip-forward-mib/data_access/route_common.c
@@ -1,7 +1,7 @@
 /*
  *  Interface MIB architecture support
  *
- * $Id$
+ * $Id: route_common.c 16612 2007-07-16 23:59:44Z hardaker $
  */
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
@@ -47,16 +47,13 @@ netsnmp_access_route_container_load(netsnmp_container* container, u_int load_fla
 
     DEBUGMSGTL(("access:route:container", "load\n"));
 
+    if (NULL == container)
+        container = netsnmp_container_find("access:_route:table_container");
     if (NULL == container) {
-        container = netsnmp_container_find("access:_route:fifo");
-        if (NULL == container) {
-            snmp_log(LOG_ERR, "no container specified/found for access_route\n");
-            return NULL;
-        }
+        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);
@@ -242,7 +239,8 @@ netsnmp_access_route_entry_copy(netsnmp_route_entry *lhs,
     lhs->rt_proto = rhs->rt_proto;
 
 #ifdef USING_IP_FORWARD_MIB_IPCIDRROUTETABLE_IPCIDRROUTETABLE_MODULE
-    SNMP_FREE(lhs->rt_info);
+    if (NULL != lhs->rt_info)
+        SNMP_FREE(lhs->rt_info);
     if (NULL != rhs->rt_info)
         snmp_clone_mem((void **) &lhs->rt_info, rhs->rt_info,
                        rhs->rt_info_len * sizeof(oid));
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 815c415..de42920 100644
--- a/agent/mibgroup/ip-forward-mib/data_access/route_ioctl.c
+++ b/agent/mibgroup/ip-forward-mib/data_access/route_ioctl.c
@@ -54,6 +54,10 @@
 #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>
@@ -65,10 +69,10 @@
 #include <windows.h>
 #endif
 
-#ifndef HAVE_STRUCT_RTENTRY_RT_DST
+#ifndef STRUCT_RTENTRY_HAS_RT_DST
 #   define rt_dst rt_nodes->rn_key
 #endif
-#ifndef HAVE_STRUCT_RTENTRY_RT_HASH
+#ifndef STRUCT_RTENTRY_HAS_RT_HASH
 #   define rt_hash rt_pad1
 #endif
 
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 7228e38..0bbabb9 100644
--- a/agent/mibgroup/ip-forward-mib/data_access/route_linux.c
+++ b/agent/mibgroup/ip-forward-mib/data_access/route_linux.c
@@ -1,7 +1,7 @@
 /*
  *  Interface MIB architecture support
  *
- * $Id$
+ * $Id: route_linux.c 17099 2008-07-02 12:39:23Z jsafranek $
  */
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
@@ -53,7 +53,7 @@ _load_ipv4(netsnmp_container* container, u_long *index )
      * fetch routes from the proc file-system:
      */
     if (!(in = fopen("/proc/net/route", "r"))) {
-        NETSNMP_LOGONCE((LOG_ERR, "cannot open /proc/net/route\n"));
+        snmp_log(LOG_ERR, "cannot open /proc/net/route\n");
         return -2;
     }
 
@@ -71,9 +71,9 @@ _load_ipv4(netsnmp_container* container, u_long *index )
 
     while (fgets(line, sizeof(line), in)) {
         char            rtent_name[32];
-        int             refcnt, rc;
-        uint32_t        dest, nexthop, mask;
-        unsigned        flags, use;
+        int             refcnt, flags, rc;
+        uint32_t        dest, nexthop, mask, tmp_mask;
+        unsigned        use;
 
         entry = netsnmp_access_route_entry_create();
 
@@ -83,13 +83,13 @@ _load_ipv4(netsnmp_container* container, u_long *index )
          * 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 %d %u %d %x %*d %*d %*d\n",
+        rc = sscanf(line, "%s %x %x %x %u %d %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,
@@ -103,7 +103,8 @@ _load_ipv4(netsnmp_container* container, u_long *index )
         /*
          * temporary null terminated name
          */
-        strlcpy(name, rtent_name, sizeof(name));
+        strncpy(name, rtent_name, sizeof(name));
+        name[ sizeof(name)-1 ] = 0;
 
         /*
          * don't bother to try and get the ifindex for routes with
@@ -121,8 +122,10 @@ _load_ipv4(netsnmp_container* container, u_long *index )
          */
         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
@@ -140,7 +143,6 @@ _load_ipv4(netsnmp_container* container, u_long *index )
         /*
          * count bits in mask
          */
-        mask = htonl(mask);
         entry->rt_pfx_len = netsnmp_ipaddress_ipv4_prefix_len(mask);
 
 #ifdef USING_IP_FORWARD_MIB_INETCIDRROUTETABLE_INETCIDRROUTETABLE_MODULE
@@ -162,12 +164,12 @@ _load_ipv4(netsnmp_container* container, u_long *index )
          * 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 than I want to get into now. Fix later.
+         *     would be more complicated thanI want to get into now. Fix later.
          */
         if (0 == nexthop) {
-            entry->rt_policy = calloc(3, sizeof(oid));
-            entry->rt_policy[2] = entry->if_index;
-            entry->rt_policy_len = sizeof(oid)*3;
+            entry->rt_policy = &entry->if_index;
+            entry->rt_policy_len = 1;
+            entry->flags |= NETSNMP_ACCESS_ROUTE_POLICY_STATIC;
         }
 #endif
 
@@ -202,6 +204,8 @@ _load_ipv6(netsnmp_container* container, u_long *index )
     FILE           *in;
     char            line[256];
     netsnmp_route_entry *entry = NULL;
+    char            name[16];
+    static int      log_open_err = 1;
 
     DEBUGMSGTL(("access:route:container",
                 "route_container_arch_load ipv6\n"));
@@ -212,10 +216,18 @@ _load_ipv6(netsnmp_container* container, u_long *index )
      * fetch routes from the proc file-system:
      */
     if (!(in = fopen("/proc/net/ipv6_route", "r"))) {
-        DEBUGMSGTL(("9:access:route:container", "cannot open /proc/net/ipv6_route\n"));
+        if (1 == log_open_err) {
+            snmp_log(LOG_ERR, "cannot open /proc/net/ipv6_route\n");
+            log_open_err = 0;
+        }
         return -2;
     }
-    
+    /*
+     * if we turned off logging of open errors, turn it back on now that
+     * we have been able to open the file.
+     */
+    if (0 == log_open_err)
+        log_open_err = 1;
     fgets(line,sizeof(line),in); /* skip header */
     while (fgets(line, sizeof(line), in)) {
         char            c_name[IFNAMSIZ+1];
@@ -261,7 +273,7 @@ _load_ipv6(netsnmp_container* container, u_long *index )
         entry->if_index = se_find_value_in_slist("interfaces", c_name);
         if(SE_DNE == entry->if_index) {
             snmp_log(LOG_ERR,"unknown interface in /proc/net/ipv6_route "
-                     "('%s')\n", c_name);
+                     "('%s')\n", name);
             netsnmp_access_route_entry_free(entry);
             continue;
         }
@@ -312,11 +324,11 @@ _load_ipv6(netsnmp_container* container, u_long *index )
         /*
          * 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 distinguish between them.
+         * as the policy, to distinguise between them.
          */
-        entry->rt_policy = calloc(3, sizeof(oid));
-        entry->rt_policy[2] = entry->ns_rt_index;
-        entry->rt_policy_len = sizeof(oid)*3;
+        entry->rt_policy = &entry->ns_rt_index;
+        entry->rt_policy_len = 1;
+        entry->flags |= NETSNMP_ACCESS_ROUTE_POLICY_STATIC;
 #endif
 
         /*
diff --git a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c
index 0f013ea..408fb90 100644
--- a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c
+++ b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: inetCidrRouteTable.c 15639 2006-12-06 15:01:27Z rstory $
  */
 /** \page MFD helper for inetCidrRouteTable
  *
@@ -14,7 +14,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -27,15 +26,11 @@
 
 #include "inetCidrRouteTable_interface.h"
 
-netsnmp_feature_require(inetCidrRouteTable_container_get)
-netsnmp_feature_require(inetCidrRouteTable_container_size)
-
-const oid       inetCidrRouteTable_oid[] = { INETCIDRROUTETABLE_OID };
-const int       inetCidrRouteTable_oid_size =
+oid             inetCidrRouteTable_oid[] = { INETCIDRROUTETABLE_OID };
+int             inetCidrRouteTable_oid_size =
 OID_LENGTH(inetCidrRouteTable_oid);
 
 inetCidrRouteTable_registration inetCidrRouteTable_user_context;
-static inetCidrRouteTable_registration *inetCidrRouteTable_user_context_p;
 
 void            initialize_table_inetCidrRouteTable(void);
 void            shutdown_table_inetCidrRouteTable(void);
@@ -86,6 +81,7 @@ shutdown_inetCidrRouteTable(void)
 void
 initialize_table_inetCidrRouteTable(void)
 {
+    inetCidrRouteTable_registration *user_context;
     u_long          flags;
 
     DEBUGMSGTL(("verbose:inetCidrRouteTable:initialize_table_inetCidrRouteTable", "called\n"));
@@ -103,8 +99,8 @@ initialize_table_inetCidrRouteTable(void)
      * a netsnmp_data_list is a simple way to store void pointers. A simple
      * string token is used to add, find or remove pointers.
      */
-    inetCidrRouteTable_user_context_p = 
-	netsnmp_create_data_list("inetCidrRouteTable", NULL, NULL);
+    user_context =
+        netsnmp_create_data_list("inetCidrRouteTable", NULL, NULL);
 
     /*
      * No support for any flags yet, but in the future you would
@@ -115,8 +111,7 @@ initialize_table_inetCidrRouteTable(void)
     /*
      * call interface initialization code
      */
-    _inetCidrRouteTable_initialize_interface
-	(inetCidrRouteTable_user_context_p, flags);
+    _inetCidrRouteTable_initialize_interface(user_context, flags);
 
     /*
      * regester scalar for route number
@@ -156,9 +151,7 @@ shutdown_table_inetCidrRouteTable(void)
      * call interface shutdown code
      */
     _inetCidrRouteTable_shutdown_interface
-        (inetCidrRouteTable_user_context_p);
-    netsnmp_free_all_list_data(inetCidrRouteTable_user_context_p);
-    inetCidrRouteTable_user_context_p = NULL;
+        (&inetCidrRouteTable_user_context);
 }
 
 /**
@@ -414,27 +407,25 @@ inetCidrRouteTable_indexes_set_tbl_idx(inetCidrRouteTable_mib_index *
     /*
      * 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]);
+    tbl_idx->inetCidrRoutePolicy_len = sizeof(tbl_idx->inetCidrRoutePolicy) / sizeof(tbl_idx->inetCidrRoutePolicy[0]);  /* max length */
     /** 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 / 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])));
+         (inetCidrRoutePolicy_val_ptr_len))) {
+        snmp_log(LOG_ERR, "not enough space for value\n");
         return MFD_ERROR;
     }
     if (0 == inetCidrRoutePolicy_val_ptr_len) {
-        inetCidrRoutePolicy_val_ptr_len = nullOidLen;
+        inetCidrRoutePolicy_val_ptr_len = nullOidLen / sizeof(oid);
         inetCidrRoutePolicy_val_ptr = nullOid;
     }
-    tbl_idx->inetCidrRoutePolicy_len = inetCidrRoutePolicy_val_ptr_len / sizeof(oid);
+    tbl_idx->inetCidrRoutePolicy_len = inetCidrRoutePolicy_val_ptr_len;
     memcpy(tbl_idx->inetCidrRoutePolicy, inetCidrRoutePolicy_val_ptr,
-           inetCidrRoutePolicy_val_ptr_len);
+           inetCidrRoutePolicy_val_ptr_len *
+           sizeof(inetCidrRoutePolicy_val_ptr[0]));
 
     /*
      * inetCidrRouteNextHopType(5)/InetAddressType/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h 
@@ -452,14 +443,11 @@ inetCidrRouteTable_indexes_set_tbl_idx(inetCidrRouteTable_mib_index *
      */
     if ((NULL == tbl_idx->inetCidrRouteNextHop) ||
         (tbl_idx->inetCidrRouteNextHop_len <
-         (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])));
+         (inetCidrRouteNextHop_val_ptr_len))) {
+        snmp_log(LOG_ERR, "not enough space for value\n");
         return MFD_ERROR;
     }
-    tbl_idx->inetCidrRouteNextHop_len = inetCidrRouteNextHop_val_ptr_len / sizeof(inetCidrRouteNextHop_val_ptr[0]);
+    tbl_idx->inetCidrRouteNextHop_len = inetCidrRouteNextHop_val_ptr_len;
     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.h b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.h
index b8132e1..d663c2d 100644
--- a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.h
+++ b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: inetCidrRouteTable.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 #ifndef INETCIDRROUTETABLE_H
 #define INETCIDRROUTETABLE_H
@@ -217,8 +217,8 @@ config_require(ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access)
         * inetCidrRouteTable_row_find_by_mib_index
         (inetCidrRouteTable_mib_index * mib_idx);
 
-    extern const oid      inetCidrRouteTable_oid[];
-    extern const int      inetCidrRouteTable_oid_size;
+    extern oid      inetCidrRouteTable_oid[];
+    extern int      inetCidrRouteTable_oid_size;
 
 
 #include "inetCidrRouteTable_interface.h"
diff --git a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_constants.h b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_constants.h
index 0fe26b8..84e9fe6 100644
--- a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_constants.h
+++ b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: inetCidrRouteTable_constants.h 14049 2006-01-06 21:26:49Z rstory $
  */
 #ifndef INETCIDRROUTETABLE_CONSTANTS_H
 #define INETCIDRROUTETABLE_CONSTANTS_H
diff --git a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.c b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.c
index beebb2c..03c3f08 100644
--- a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.c
+++ b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: inetCidrRouteTable_data_access.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /*
  * standard Net-SNMP includes 
@@ -165,11 +165,11 @@ _snarf_route_entry(netsnmp_route_entry *route_entry,
     if ((NULL != rowreq_ctx) &&
         (MFD_SUCCESS == inetCidrRouteTable_indexes_set
          (rowreq_ctx, route_entry->rt_dest_type,
-          (char *) route_entry->rt_dest, route_entry->rt_dest_len,
+          route_entry->rt_dest, route_entry->rt_dest_len,
           route_entry->rt_pfx_len,
           route_entry->rt_policy, route_entry->rt_policy_len,
           route_entry->rt_nexthop_type,
-          (char *) route_entry->rt_nexthop, route_entry->rt_nexthop_len))) {
+          route_entry->rt_nexthop, route_entry->rt_nexthop_len))) {
         CONTAINER_INSERT(container, rowreq_ctx);
         rowreq_ctx->row_status = ROWSTATUS_ACTIVE;
     } else {
@@ -263,7 +263,7 @@ inetCidrRouteTable_container_load(netsnmp_container *container)
         netsnmp_access_route_container_load(NULL,
                                             NETSNMP_ACCESS_ROUTE_LOAD_NOFLAGS);
     DEBUGMSGT(("verbose:inetCidrRouteTable:inetCidrRouteTable_cache_load",
-               "%d records\n", (int)CONTAINER_SIZE(route_container)));
+               "%d records\n", CONTAINER_SIZE(route_container)));
 
     if (NULL == route_container)
         return MFD_RESOURCE_UNAVAILABLE;        /* msg already logged */
@@ -283,7 +283,7 @@ inetCidrRouteTable_container_load(netsnmp_container *container)
                                         NETSNMP_ACCESS_ROUTE_FREE_DONT_CLEAR);
 
     DEBUGMSGT(("verbose:inetCidrRouteTable:inetCidrRouteTable_cache_load",
-               "%d records\n", (int)CONTAINER_SIZE(container)));
+               "%d records\n", CONTAINER_SIZE(container)));
 
     return MFD_SUCCESS;
 }                               /* inetCidrRouteTable_container_load */
diff --git a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.h b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.h
index 9ad9067..89048e8 100644
--- a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.h
+++ b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: inetCidrRouteTable_data_access.h 13750 2005-11-30 21:07:05Z rstory $
  */
 #ifndef INETCIDRROUTETABLE_DATA_ACCESS_H
 #define INETCIDRROUTETABLE_DATA_ACCESS_H
diff --git a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c
index 0dba9d2..8b6e1d9 100644
--- a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c
+++ b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: inetCidrRouteTable_interface.c 15781 2007-01-23 22:55:06Z rstory $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -47,16 +46,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_child_of(inetCidrRouteTable_external_access, libnetsnmpmibs)
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(table_container_row_insert)
-netsnmp_feature_require(check_all_requests_error)
-
-netsnmp_feature_child_of(inetCidrRouteTable_container_size, inetCidrRouteTable_external_access)
-netsnmp_feature_child_of(inetCidrRouteTable_registration_set, inetCidrRouteTable_external_access)
-netsnmp_feature_child_of(inetCidrRouteTable_registration_get, inetCidrRouteTable_external_access)
-netsnmp_feature_child_of(inetCidrRouteTable_container_get, inetCidrRouteTable_external_access)
 /**********************************************************************
  **********************************************************************
  ***
@@ -93,23 +82,19 @@ static void
                 _inetCidrRouteTable_container_shutdown(inetCidrRouteTable_interface_ctx *
                                                        if_ctx);
 
-#ifndef NETSNMP_FEATURE_REMOVE_INETCIDRROUTETABLE_CONTAINER_GET
+
 netsnmp_container *
 inetCidrRouteTable_container_get(void)
 {
     return inetCidrRouteTable_if_ctx.container;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INETCIDRROUTETABLE_CONTAINER_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_INETCIDRROUTETABLE_REGISTRATION_GET
 inetCidrRouteTable_registration *
 inetCidrRouteTable_registration_get(void)
 {
     return inetCidrRouteTable_if_ctx.user_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INETCIDRROUTETABLE_REGISTRATION_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_INETCIDRROUTETABLE_REGISTRATION_SET
 inetCidrRouteTable_registration *
 inetCidrRouteTable_registration_set(inetCidrRouteTable_registration *
                                     newreg)
@@ -119,15 +104,12 @@ inetCidrRouteTable_registration_set(inetCidrRouteTable_registration *
     inetCidrRouteTable_if_ctx.user_ctx = newreg;
     return old;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INETCIDRROUTETABLE_REGISTRATION_SET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_INETCIDRROUTETABLE_CONTAINER_SIZE
 int
 inetCidrRouteTable_container_size(void)
 {
     return CONTAINER_SIZE(inetCidrRouteTable_if_ctx.container);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INETCIDRROUTETABLE_CONTAINER_SIZE */
 
 u_int
 inetCidrRouteTable_dirty_get(void)
@@ -158,7 +140,6 @@ static Netsnmp_Node_Handler _mfd_inetCidrRouteTable_pre_request;
 static Netsnmp_Node_Handler _mfd_inetCidrRouteTable_post_request;
 static Netsnmp_Node_Handler _mfd_inetCidrRouteTable_object_lookup;
 static Netsnmp_Node_Handler _mfd_inetCidrRouteTable_get_values;
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 static Netsnmp_Node_Handler _mfd_inetCidrRouteTable_check_objects;
 static Netsnmp_Node_Handler _mfd_inetCidrRouteTable_undo_setup;
 static Netsnmp_Node_Handler _mfd_inetCidrRouteTable_set_values;
@@ -168,10 +149,11 @@ static Netsnmp_Node_Handler _mfd_inetCidrRouteTable_commit;
 static Netsnmp_Node_Handler _mfd_inetCidrRouteTable_undo_commit;
 static Netsnmp_Node_Handler _mfd_inetCidrRouteTable_irreversible_commit;
 static Netsnmp_Node_Handler _mfd_inetCidrRouteTable_check_dependencies;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 NETSNMP_STATIC_INLINE int
-                _inetCidrRouteTable_check_indexes(inetCidrRouteTable_rowreq_ctx * rowreq_ctx);
+                _inetCidrRouteTable_check_indexes(inetCidrRouteTable_rowreq_ctx *
+                                                  rowreq_ctx);
+
 /**
  * @internal
  * Initialize the table inetCidrRouteTable 
@@ -215,7 +197,7 @@ _inetCidrRouteTable_initialize_interface(inetCidrRouteTable_registration *
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = INETCIDRROUTETABLE_MIN_COL;
     tbl_info->max_column = INETCIDRROUTETABLE_MAX_COL;
@@ -255,7 +237,6 @@ _inetCidrRouteTable_initialize_interface(inetCidrRouteTable_registration *
         _mfd_inetCidrRouteTable_post_request;
 
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     /*
      * REQUIRED wrappers for set request handling
      */
@@ -280,7 +261,6 @@ _inetCidrRouteTable_initialize_interface(inetCidrRouteTable_registration *
      */
     access_multiplexer->consistency_checks =
         _mfd_inetCidrRouteTable_check_dependencies;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     /*************************************************
      *
@@ -294,11 +274,8 @@ _inetCidrRouteTable_initialize_interface(inetCidrRouteTable_registration *
         netsnmp_handler_registration_create("inetCidrRouteTable", handler,
                                             inetCidrRouteTable_oid,
                                             inetCidrRouteTable_oid_size,
-                                            HANDLER_CAN_BABY_STEP
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
-                                          | HANDLER_CAN_RWRITE
-#endif
-                                          );
+                                            HANDLER_CAN_BABY_STEP |
+                                            HANDLER_CAN_RWRITE);
     if (NULL == reginfo) {
         snmp_log(LOG_ERR, "error registering table inetCidrRouteTable\n");
         return;
@@ -311,12 +288,6 @@ _inetCidrRouteTable_initialize_interface(inetCidrRouteTable_registration *
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -324,6 +295,11 @@ _inetCidrRouteTable_initialize_interface(inetCidrRouteTable_registration *
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -339,7 +315,6 @@ _inetCidrRouteTable_initialize_interface(inetCidrRouteTable_registration *
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -809,7 +784,7 @@ _mfd_inetCidrRouteTable_post_request(netsnmp_mib_handler *handler,
                                      *agtreq_info,
                                      netsnmp_request_info *requests)
 {
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -927,7 +902,7 @@ _mfd_inetCidrRouteTable_object_lookup(netsnmp_mib_handler *handler, netsnmp_hand
                                       netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_object_lookup", "called\n"));
@@ -1121,7 +1096,7 @@ _mfd_inetCidrRouteTable_get_values(netsnmp_mib_handler *handler,
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1326,7 +1301,6 @@ _inetCidrRouteTable_check_indexes(inetCidrRouteTable_rowreq_ctx *
                                              user_ctx, rowreq_ctx);
 }                               /* _inetCidrRouteTable_check_indexes */
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 /***********************************************************************
  *
  * SET processing
@@ -1631,7 +1605,7 @@ _mfd_inetCidrRouteTable_check_objects(netsnmp_mib_handler *handler, netsnmp_hand
                                       *agtreq_info,
                                       netsnmp_request_info *requests)
 {
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1679,7 +1653,7 @@ _mfd_inetCidrRouteTable_check_dependencies(netsnmp_mib_handler *handler, netsnmp
                                            netsnmp_request_info *requests)
 {
     int             rc;
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_check_dependencies", "called\n"));
 
@@ -1801,7 +1775,7 @@ _mfd_inetCidrRouteTable_undo_setup(netsnmp_mib_handler *handler,
                                    netsnmp_request_info *requests)
 {
     int             rc;
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_undo_setup", "called\n"));
@@ -1866,7 +1840,7 @@ _mfd_inetCidrRouteTable_undo_cleanup(netsnmp_mib_handler *handler,
                                      *agtreq_info,
                                      netsnmp_request_info *requests)
 {
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -2021,7 +1995,7 @@ _mfd_inetCidrRouteTable_set_values(netsnmp_mib_handler *handler,
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -2069,7 +2043,7 @@ _mfd_inetCidrRouteTable_commit(netsnmp_mib_handler *handler,
                                netsnmp_request_info *requests)
 {
     int             rc;
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_commit", "called\n"));
@@ -2103,7 +2077,7 @@ _mfd_inetCidrRouteTable_undo_commit(netsnmp_mib_handler *handler,
                                     netsnmp_request_info *requests)
 {
     int             rc;
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_undo_commit", "called\n"));
@@ -2149,7 +2123,7 @@ _mfd_inetCidrRouteTable_undo_values(netsnmp_mib_handler *handler,
                                     netsnmp_request_info *requests)
 {
     int             rc;
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_undo_values", "called\n"));
@@ -2183,7 +2157,7 @@ _mfd_inetCidrRouteTable_irreversible_commit(netsnmp_mib_handler *handler, netsnm
                                             *agtreq_info,
                                             netsnmp_request_info *requests)
 {
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_irreversible:commit", "called\n"));
@@ -2210,7 +2184,6 @@ _mfd_inetCidrRouteTable_irreversible_commit(netsnmp_mib_handler *handler, netsnm
 
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_inetCidrRouteTable_irreversible_commit */
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 /***********************************************************************
  *
@@ -2321,7 +2294,7 @@ _inetCidrRouteTable_container_init(inetCidrRouteTable_interface_ctx *
     /*
      * cache init
      */
-    if_ctx->cache = netsnmp_cache_create(INETCIDRROUTETABLE_CACHE_TIMEOUT,
+    if_ctx->cache = netsnmp_cache_create(30,    /* timeout in seconds */
                                          _cache_load, _cache_free,
                                          inetCidrRouteTable_oid,
                                          inetCidrRouteTable_oid_size);
@@ -2334,22 +2307,15 @@ _inetCidrRouteTable_container_init(inetCidrRouteTable_interface_ctx *
     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 */
@@ -2371,7 +2337,6 @@ _inetCidrRouteTable_container_shutdown(inetCidrRouteTable_interface_ctx *
 }                               /* _inetCidrRouteTable_container_shutdown */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_INETCIDRROUTETABLE_EXTERNAL_ACCESS
 inetCidrRouteTable_rowreq_ctx *
 inetCidrRouteTable_row_find_by_mib_index(inetCidrRouteTable_mib_index *
                                          mib_idx)
@@ -2394,9 +2359,8 @@ inetCidrRouteTable_row_find_by_mib_index(inetCidrRouteTable_mib_index *
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
+    rowreq_ctx =
         CONTAINER_FIND(inetCidrRouteTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INETCIDRROUTETABLE_EXTERNAL_ACCESS */
diff --git a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.h b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.h
index bda0757..339756b 100644
--- a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.h
+++ b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: inetCidrRouteTable_interface.h 14708 2006-06-12 20:03:59Z rstory $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c
index 323c1bc..fceb1a1 100644
--- a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c
+++ b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: ipCidrRouteTable.c 15639 2006-12-06 15:01:27Z rstory $
  */
 /** \page MFD helper for ipCidrRouteTable
  *
@@ -26,12 +26,11 @@
 
 #include "ipCidrRouteTable_interface.h"
 
-const oid       ipCidrRouteTable_oid[] = { IPCIDRROUTETABLE_OID };
-const int       ipCidrRouteTable_oid_size =
+oid             ipCidrRouteTable_oid[] = { IPCIDRROUTETABLE_OID };
+int             ipCidrRouteTable_oid_size =
 OID_LENGTH(ipCidrRouteTable_oid);
 
 ipCidrRouteTable_registration ipCidrRouteTable_user_context;
-static ipCidrRouteTable_registration *ipCidrRouteTable_user_context_p;
 
 void            initialize_table_ipCidrRouteTable(void);
 void            shutdown_table_ipCidrRouteTable(void);
@@ -76,6 +75,7 @@ shutdown_ipCidrRouteTable(void)
 void
 initialize_table_ipCidrRouteTable(void)
 {
+    ipCidrRouteTable_registration *user_context;
     u_long          flags;
 
     DEBUGMSGTL(("verbose:ipCidrRouteTable:initialize_table_ipCidrRouteTable", "called\n"));
@@ -93,8 +93,8 @@ initialize_table_ipCidrRouteTable(void)
      * a netsnmp_data_list is a simple way to store void pointers. A simple
      * string token is used to add, find or remove pointers.
      */
-    ipCidrRouteTable_user_context_p
-	= netsnmp_create_data_list("ipCidrRouteTable", NULL, NULL);
+    user_context =
+        netsnmp_create_data_list("ipCidrRouteTable", NULL, NULL);
 
     /*
      * No support for any flags yet, but in the future you would
@@ -105,8 +105,7 @@ initialize_table_ipCidrRouteTable(void)
     /*
      * call interface initialization code
      */
-    _ipCidrRouteTable_initialize_interface
-	(ipCidrRouteTable_user_context_p, flags);
+    _ipCidrRouteTable_initialize_interface(user_context, flags);
 }                               /* initialize_table_ipCidrRouteTable */
 
 /**
@@ -118,9 +117,7 @@ shutdown_table_ipCidrRouteTable(void)
     /*
      * call interface shutdown code
      */
-    _ipCidrRouteTable_shutdown_interface(ipCidrRouteTable_user_context_p);
-    netsnmp_free_all_list_data(ipCidrRouteTable_user_context_p);
-    ipCidrRouteTable_user_context_p = NULL;
+    _ipCidrRouteTable_shutdown_interface(&ipCidrRouteTable_user_context);
 }
 
 /**
@@ -706,13 +703,13 @@ ipCidrRouteInfo_get(ipCidrRouteTable_rowreq_ctx * rowreq_ctx,
      * 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) < (size_t)nullOidLen) {
-        (*ipCidrRouteInfo_val_ptr_ptr) = (oid*)malloc(nullOidLen);
+    if ((*ipCidrRouteInfo_val_ptr_len_ptr) < nullOidLen) {
+        (*ipCidrRouteInfo_val_ptr_ptr) = malloc(nullOidLen);
         if (NULL == (*ipCidrRouteInfo_val_ptr_ptr))
             return MFD_ERROR;
     }
-    (*ipCidrRouteInfo_val_ptr_len_ptr) = (size_t)nullOidLen;
-    memcpy((*ipCidrRouteInfo_val_ptr_ptr), nullOid, (size_t)nullOidLen);
+    (*ipCidrRouteInfo_val_ptr_len_ptr) = nullOidLen;
+    memcpy((*ipCidrRouteInfo_val_ptr_ptr), nullOid, nullOidLen);
 
     return MFD_SUCCESS;
 }                               /* ipCidrRouteInfo_get */
diff --git a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.h b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.h
index 95767e0..18c82f3 100644
--- a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.h
+++ b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: ipCidrRouteTable.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 #ifndef IPCIDRROUTETABLE_H
 #define IPCIDRROUTETABLE_H
@@ -194,8 +194,8 @@ config_require(ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_data_access)
         * ipCidrRouteTable_row_find_by_mib_index(ipCidrRouteTable_mib_index
                                                  * mib_idx);
 
-    extern const oid      ipCidrRouteTable_oid[];
-    extern const int      ipCidrRouteTable_oid_size;
+    extern oid      ipCidrRouteTable_oid[];
+    extern int      ipCidrRouteTable_oid_size;
 
 
 #include "ipCidrRouteTable_interface.h"
diff --git a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_constants.h b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_constants.h
index ae7a3d3..7d99e00 100644
--- a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_constants.h
+++ b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: ipCidrRouteTable_constants.h 13754 2005-11-30 22:32:31Z rstory $
  */
 #ifndef IPCIDRROUTETABLE_CONSTANTS_H
 #define IPCIDRROUTETABLE_CONSTANTS_H
diff --git a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_data_access.c b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_data_access.c
index 3955519..b82ed63 100644
--- a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_data_access.c
+++ b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_data_access.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: ipCidrRouteTable_data_access.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /*
  * standard Net-SNMP includes 
@@ -269,7 +269,7 @@ ipCidrRouteTable_container_load(netsnmp_container *container)
                                         NETSNMP_ACCESS_ROUTE_FREE_DONT_CLEAR);
 
     DEBUGMSGT(("verbose:ipCidrRouteTable:ipCidrRouteTable_cache_load",
-               "%d records\n", (int)CONTAINER_SIZE(container)));
+               "%d records\n", CONTAINER_SIZE(container)));
 
     return MFD_SUCCESS;
 }                               /* ipCidrRouteTable_container_load */
diff --git a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_data_access.h b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_data_access.h
index c62cf39..331939f 100644
--- a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_data_access.h
+++ b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: ipCidrRouteTable_data_access.h 13754 2005-11-30 22:32:31Z rstory $
  */
 #ifndef IPCIDRROUTETABLE_DATA_ACCESS_H
 #define IPCIDRROUTETABLE_DATA_ACCESS_H
diff --git a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c
index 5e855d4..b212845 100644
--- a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c
+++ b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: ipCidrRouteTable_interface.c 17684 2009-07-10 07:46:43Z jsafranek $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -47,17 +46,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_child_of(ipCidrRouteTable_external_access, libnetsnmpmibs)
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(table_container_row_insert)
-netsnmp_feature_require(check_all_requests_error)
-
-
-netsnmp_feature_child_of(ipCidrRouteTable_container_size, ipCidrRouteTable_external_access)
-netsnmp_feature_child_of(ipCidrRouteTable_registration_set, ipCidrRouteTable_external_access)
-netsnmp_feature_child_of(ipCidrRouteTable_registration_get, ipCidrRouteTable_external_access)
-netsnmp_feature_child_of(ipCidrRouteTable_container_get, ipCidrRouteTable_external_access)
 /**********************************************************************
  **********************************************************************
  ***
@@ -93,23 +81,19 @@ static void
                 _ipCidrRouteTable_container_shutdown(ipCidrRouteTable_interface_ctx *
                                                      if_ctx);
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPCIDRROUTETABLE_CONTAINER_GET
+
 netsnmp_container *
 ipCidrRouteTable_container_get(void)
 {
     return ipCidrRouteTable_if_ctx.container;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPCIDRROUTETABLE_CONTAINER_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPCIDRROUTETABLE_REGISTRATION_GET
 ipCidrRouteTable_registration *
 ipCidrRouteTable_registration_get(void)
 {
     return ipCidrRouteTable_if_ctx.user_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPCIDRROUTETABLE_REGISTRATION_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPCIDRROUTETABLE_REGISTRATION_SET
 ipCidrRouteTable_registration *
 ipCidrRouteTable_registration_set(ipCidrRouteTable_registration * newreg)
 {
@@ -117,15 +101,12 @@ ipCidrRouteTable_registration_set(ipCidrRouteTable_registration * newreg)
     ipCidrRouteTable_if_ctx.user_ctx = newreg;
     return old;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPCIDRROUTETABLE_REGISTRATION_SET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPCIDRROUTETABLE_CONTAINER_SIZE
 int
 ipCidrRouteTable_container_size(void)
 {
     return CONTAINER_SIZE(ipCidrRouteTable_if_ctx.container);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPCIDRROUTETABLE_CONTAINER_SIZE */
 
 u_int
 ipCidrRouteTable_dirty_get(void)
@@ -149,7 +130,6 @@ static Netsnmp_Node_Handler _mfd_ipCidrRouteTable_pre_request;
 static Netsnmp_Node_Handler _mfd_ipCidrRouteTable_post_request;
 static Netsnmp_Node_Handler _mfd_ipCidrRouteTable_object_lookup;
 static Netsnmp_Node_Handler _mfd_ipCidrRouteTable_get_values;
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 static Netsnmp_Node_Handler _mfd_ipCidrRouteTable_check_objects;
 static Netsnmp_Node_Handler _mfd_ipCidrRouteTable_undo_setup;
 static Netsnmp_Node_Handler _mfd_ipCidrRouteTable_set_values;
@@ -163,7 +143,6 @@ NETSNMP_STATIC_INLINE int
                 _ipCidrRouteTable_undo_column(ipCidrRouteTable_rowreq_ctx * rowreq_ctx,
                                               netsnmp_variable_list * var,
                                               int column);
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 NETSNMP_STATIC_INLINE int
                 _ipCidrRouteTable_check_indexes(ipCidrRouteTable_rowreq_ctx * rowreq_ctx);
@@ -207,7 +186,7 @@ _ipCidrRouteTable_initialize_interface(ipCidrRouteTable_registration *
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = IPCIDRROUTETABLE_MIN_COL;
     tbl_info->max_column = IPCIDRROUTETABLE_MAX_COL;
@@ -246,7 +225,6 @@ _ipCidrRouteTable_initialize_interface(ipCidrRouteTable_registration *
     access_multiplexer->post_request = _mfd_ipCidrRouteTable_post_request;
 
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     /*
      * REQUIRED wrappers for set request handling
      */
@@ -264,7 +242,6 @@ _ipCidrRouteTable_initialize_interface(ipCidrRouteTable_registration *
     access_multiplexer->undo_commit = _mfd_ipCidrRouteTable_undo_commit;
     access_multiplexer->irreversible_commit =
         _mfd_ipCidrRouteTable_irreversible_commit;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     /*************************************************
      *
@@ -292,12 +269,6 @@ _ipCidrRouteTable_initialize_interface(ipCidrRouteTable_registration *
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -305,6 +276,11 @@ _ipCidrRouteTable_initialize_interface(ipCidrRouteTable_registration *
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -320,7 +296,6 @@ _ipCidrRouteTable_initialize_interface(ipCidrRouteTable_registration *
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -691,7 +666,7 @@ _mfd_ipCidrRouteTable_post_request(netsnmp_mib_handler *handler,
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -810,7 +785,7 @@ _mfd_ipCidrRouteTable_object_lookup(netsnmp_mib_handler *handler,
                                     netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipCidrRouteTable:_mfd_ipCidrRouteTable_object_lookup", "called\n"));
@@ -1041,7 +1016,7 @@ _mfd_ipCidrRouteTable_get_values(netsnmp_mib_handler *handler,
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1170,7 +1145,6 @@ _ipCidrRouteTable_check_indexes(ipCidrRouteTable_rowreq_ctx * rowreq_ctx)
                                            user_ctx, rowreq_ctx);
 }                               /* _ipCidrRouteTable_check_indexes */
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 /***********************************************************************
  *
  * SET processing
@@ -1475,7 +1449,7 @@ _mfd_ipCidrRouteTable_check_objects(netsnmp_mib_handler *handler,
                                     *agtreq_info,
                                     netsnmp_request_info *requests)
 {
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1630,7 +1604,7 @@ _mfd_ipCidrRouteTable_undo_setup(netsnmp_mib_handler *handler,
                                  netsnmp_request_info *requests)
 {
     int             rc;
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipCidrRouteTable:_mfd_ipCidrRouteTable_undo_setup", "called\n"));
@@ -1694,7 +1668,7 @@ _mfd_ipCidrRouteTable_undo_cleanup(netsnmp_mib_handler *handler,
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1859,7 +1833,7 @@ _mfd_ipCidrRouteTable_set_values(netsnmp_mib_handler *handler,
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1907,7 +1881,7 @@ _mfd_ipCidrRouteTable_commit(netsnmp_mib_handler *handler,
                              netsnmp_request_info *requests)
 {
     int             rc;
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipCidrRouteTable:_mfd_ipCidrRouteTable_commit",
@@ -1941,7 +1915,7 @@ _mfd_ipCidrRouteTable_undo_commit(netsnmp_mib_handler *handler,
                                   netsnmp_request_info *requests)
 {
     int             rc;
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipCidrRouteTable:_mfd_ipCidrRouteTable_undo_commit", "called\n"));
@@ -2083,7 +2057,7 @@ _mfd_ipCidrRouteTable_undo_values(netsnmp_mib_handler *handler,
                                   netsnmp_request_info *requests)
 {
     int             rc;
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -2137,7 +2111,7 @@ _mfd_ipCidrRouteTable_irreversible_commit(netsnmp_mib_handler *handler, netsnmp_
                                           *agtreq_info,
                                           netsnmp_request_info *requests)
 {
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipCidrRouteTable:_mfd_ipCidrRouteTable_irreversible:commit", "called\n"));
@@ -2164,7 +2138,6 @@ _mfd_ipCidrRouteTable_irreversible_commit(netsnmp_mib_handler *handler, netsnmp_
 
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_ipCidrRouteTable_irreversible_commit */
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 /***********************************************************************
  *
@@ -2273,7 +2246,7 @@ _ipCidrRouteTable_container_init(ipCidrRouteTable_interface_ctx * if_ctx)
     /*
      * cache init
      */
-    if_ctx->cache = netsnmp_cache_create(IPCIDRROUTETABLE_CACHE_TIMEOUT,
+    if_ctx->cache = netsnmp_cache_create(30,    /* timeout in seconds */
                                          _cache_load, _cache_free,
                                          ipCidrRouteTable_oid,
                                          ipCidrRouteTable_oid_size);
@@ -2286,22 +2259,15 @@ _ipCidrRouteTable_container_init(ipCidrRouteTable_interface_ctx * if_ctx)
     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 */
@@ -2323,7 +2289,6 @@ _ipCidrRouteTable_container_shutdown(ipCidrRouteTable_interface_ctx *
 }                               /* _ipCidrRouteTable_container_shutdown */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPCIDRROUTETABLE_EXTERNAL_ACCESS
 ipCidrRouteTable_rowreq_ctx *
 ipCidrRouteTable_row_find_by_mib_index(ipCidrRouteTable_mib_index *
                                        mib_idx)
@@ -2346,9 +2311,8 @@ ipCidrRouteTable_row_find_by_mib_index(ipCidrRouteTable_mib_index *
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
+    rowreq_ctx =
         CONTAINER_FIND(ipCidrRouteTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPCIDRROUTETABLE_EXTERNAL_ACCESS */
diff --git a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.h b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.h
index 596a46e..11afdac 100644
--- a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.h
+++ b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: ipCidrRouteTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/ip-mib.h b/agent/mibgroup/ip-mib.h
index 4e8317f..b45cbb4 100644
--- a/agent/mibgroup/ip-mib.h
+++ b/agent/mibgroup/ip-mib.h
@@ -3,13 +3,7 @@
  */
 
 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);
-#ifdef linux
-config_require(ip-mib/ipv6ScopeZoneIndexTable);
-config_require(ip-mib/ipIfStatsTable);
-#endif
 config_add_mib(IP-MIB)
diff --git a/agent/mibgroup/ip-mib/data_access/arp.h b/agent/mibgroup/ip-mib/data_access/arp.h
index 0f536c3..1fcc67f 100644
--- a/agent/mibgroup/ip-mib/data_access/arp.h
+++ b/agent/mibgroup/ip-mib/data_access/arp.h
@@ -1,7 +1,7 @@
 /*
  * arp data access header
  *
- * $Id$
+ * $Id: arp.h 13310 2005-10-29 03:31:29Z rstory $
  */
 /**---------------------------------------------------------------------*/
 /*
@@ -18,14 +18,13 @@
  *    be handled in the *_hpux.h header file.
  */
 config_require(ip-mib/data_access/arp_common)
-#if defined( HAVE_LINUX_RTNETLINK_H )
-config_require(ip-mib/data_access/arp_netlink)
-#elif defined( linux )
+#if defined( linux )
 config_require(ip-mib/data_access/arp_linux)
 #else
 /*
  * couldn't determine the correct file!
+ * require a bogus file to generate an error.
  */
-config_error(the arp data access library is not available in this environment.)
+config_require(ip-mib/data_access/arp-unknown-arch)
 #endif
 
diff --git a/agent/mibgroup/ip-mib/data_access/arp_common.c b/agent/mibgroup/ip-mib/data_access/arp_common.c
index 2958719..e8795f9 100644
--- a/agent/mibgroup/ip-mib/data_access/arp_common.c
+++ b/agent/mibgroup/ip-mib/data_access/arp_common.c
@@ -1,7 +1,7 @@
 /*
  *  Arp MIB architecture support
  *
- * $Id$
+ * $Id: arp_common.c 13920 2005-12-11 17:55:01Z rstory $
  */
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
@@ -11,6 +11,99 @@
 
 /**---------------------------------------------------------------------*/
 /*
+ * local static prototypes
+ */
+static void _access_arp_entry_release(netsnmp_arp_entry * entry,
+                                      void *unused);
+
+/**---------------------------------------------------------------------*/
+/*
+ * external per-architecture functions prototypes
+ *
+ * These shouldn't be called by the general public, so they aren't in
+ * the header file.
+ */
+extern int
+netsnmp_access_arp_container_arch_load(netsnmp_container* container,
+                                       u_int load_flags);
+
+
+/**---------------------------------------------------------------------*/
+/*
+ * container functions
+ */
+/**
+ */
+netsnmp_container *
+netsnmp_access_arp_container_init(u_int flags)
+{
+    netsnmp_container *container1;
+
+    DEBUGMSGTL(("access:arp:container", "init\n"));
+
+    /*
+     * create the containers. one indexed by ifIndex, the other
+     * indexed by ifName.
+     */
+    container1 = netsnmp_container_find("access_arp:table_container");
+    if (NULL == container1)
+        return NULL;
+    return container1;
+}
+
+/**
+ * @retval NULL  error
+ * @retval !NULL pointer to container
+ */
+netsnmp_container*
+netsnmp_access_arp_container_load(netsnmp_container* container, u_int load_flags)
+{
+    int rc;
+
+    DEBUGMSGTL(("access:arp:container", "load\n"));
+
+    if (NULL == container)
+        container = netsnmp_container_find("access:arp:table_container");
+    if (NULL == container) {
+        snmp_log(LOG_ERR, "no container specified/found for access_arp\n");
+        return NULL;
+    }
+
+    rc =  netsnmp_access_arp_container_arch_load(container, load_flags);
+    if (0 != rc) {
+        netsnmp_access_arp_container_free(container,
+                                          NETSNMP_ACCESS_ARP_FREE_NOFLAGS);
+        container = NULL;
+    }
+
+    return container;
+}
+
+void
+netsnmp_access_arp_container_free(netsnmp_container *container, u_int free_flags)
+{
+    DEBUGMSGTL(("access:arp:container", "free\n"));
+
+    if (NULL == container) {
+        snmp_log(LOG_ERR, "invalid container for netsnmp_access_arp_free\n");
+        return;
+    }
+
+    if(! (free_flags & NETSNMP_ACCESS_ARP_FREE_DONT_CLEAR)) {
+        /*
+         * free all items.
+         */
+        CONTAINER_CLEAR(container,
+                        (netsnmp_container_obj_func*)_access_arp_entry_release,
+                        NULL);
+    }
+
+    if(! (free_flags & NETSNMP_ACCESS_ARP_FREE_KEEP_CONTAINER))
+        CONTAINER_FREE(container);
+}
+
+/**---------------------------------------------------------------------*/
+/*
  * arp_entry functions
  */
 /**
@@ -21,9 +114,6 @@ netsnmp_access_arp_entry_create(void)
     netsnmp_arp_entry *entry =
         SNMP_MALLOC_TYPEDEF(netsnmp_arp_entry);
 
-    if (NULL == entry)
-        return NULL;
-
     entry->oid_index.len = 1;
     entry->oid_index.oids = &entry->ns_arp_index;
 
@@ -44,40 +134,9 @@ netsnmp_access_arp_entry_free(netsnmp_arp_entry * entry)
  */
 
 /**
- * Update given entry with new data. Calculate new arp_last_updated, if any
- * field is changed.
  */
-void netsnmp_access_arp_entry_update(netsnmp_arp_entry *entry,
-        netsnmp_arp_entry *new_data)
+void
+_access_arp_entry_release(netsnmp_arp_entry * entry, void *context)
 {
-    int modified = 0;
-
-    entry->generation = new_data->generation;
-    if (entry->arp_ipaddress_len != new_data->arp_ipaddress_len
-            || memcmp(entry->arp_ipaddress, new_data->arp_ipaddress, entry->arp_ipaddress_len) != 0 ) {
-        modified = 1;
-        entry->arp_ipaddress_len = new_data->arp_ipaddress_len;
-        memcpy(entry->arp_ipaddress, new_data->arp_ipaddress, sizeof(entry->arp_ipaddress));
-    }
-    if (entry->arp_physaddress_len != new_data->arp_physaddress_len ||
-            memcmp(entry->arp_physaddress, new_data->arp_physaddress, entry->arp_physaddress_len) != 0) {
-         modified = 1;
-         entry->arp_physaddress_len = new_data->arp_physaddress_len;
-         memcpy(entry->arp_physaddress, new_data->arp_physaddress, sizeof(entry->arp_physaddress_len));
-     }
-    if (entry->arp_state != new_data->arp_state) {
-         modified = 1;
-         entry->arp_state = new_data->arp_state;
-     }
-    if (entry->arp_type != new_data->arp_type) {
-         modified = 1;
-         entry->arp_type = new_data->arp_type;
-     }
-    if (entry->flags != new_data->flags) {
-         modified = 1;
-         entry->flags = new_data->flags;
-     }
-
-    if (modified)
-        entry->arp_last_updated = netsnmp_get_agent_uptime();
+    netsnmp_access_arp_entry_free(entry);
 }
diff --git a/agent/mibgroup/ip-mib/data_access/arp_linux.c b/agent/mibgroup/ip-mib/data_access/arp_linux.c
index a2fa49a..b1a3b8c 100644
--- a/agent/mibgroup/ip-mib/data_access/arp_linux.c
+++ b/agent/mibgroup/ip-mib/data_access/arp_linux.c
@@ -1,5 +1,7 @@
 /*
  *  Interface MIB architecture support
+ *
+ * $Id: arp_linux.c 17892 2009-12-09 14:37:16Z jsafranek $
  */
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
@@ -12,76 +14,46 @@
 #include <netinet/in.h>
 #include <net/if_arp.h>
 #include <arpa/inet.h>
-#include <linux/types.h>
-#include <asm/types.h>
 
-static int _load_v4(netsnmp_arp_access *access);
+int _load_v4(netsnmp_container *container, int idx_offset);
 
-netsnmp_arp_access *
-netsnmp_access_arp_create(u_int init_flags,
-                          NetsnmpAccessArpUpdate *update_hook,
-                          NetsnmpAccessArpGC *gc_hook,
-                          int *cache_timeout, int *cache_flags,
-                          char *cache_expired)
+/**
+ */
+int
+netsnmp_access_arp_container_arch_load(netsnmp_container *container)
 {
-    netsnmp_arp_access *access;
+    int rc = 0, idx_offset = 0;
 
-    access = SNMP_MALLOC_TYPEDEF(netsnmp_arp_access);
-    if (NULL == access) {
-        snmp_log(LOG_ERR,"malloc error in netsnmp_access_arp_create\n");
-        return NULL;
+    rc = _load_v4(container, idx_offset);
+    if(rc < 0) {
+        u_int flags = NETSNMP_ACCESS_ARP_FREE_KEEP_CONTAINER;
+        netsnmp_access_arp_container_free(container, flags);
+        return rc;
     }
 
-    access->arch_magic = NULL;
-    access->magic = NULL;
-    access->update_hook = update_hook;
-    access->gc_hook = gc_hook;
-    access->synchronized = 0;
-
-    if (cache_timeout != NULL)
-        *cache_timeout = 5;
-    if (cache_flags != NULL)
-        *cache_flags |= NETSNMP_CACHE_DONT_FREE_BEFORE_LOAD
-                        | NETSNMP_CACHE_AUTO_RELOAD;
-    access->cache_expired = cache_expired;
+#if defined (NETSNMP_ENABLE_IPV6) && 0 /* xx-rks: arp for v6? */
+    idx_offset = rc;
 
-    return access;
-}
-
-int netsnmp_access_arp_delete(netsnmp_arp_access *access)
-{
-    if (NULL == access)
-        return 0;
-
-    netsnmp_access_arp_unload(access);
-    free(access);
-
-    return 0;
-}
-
-int netsnmp_access_arp_load(netsnmp_arp_access *access)
-{
-    int rc = 0;
+    rc = _load_v6(container, idx_offset);
+    if(rc < 0) {
+        u_int flags = NETSNMP_ACCESS_ARP_FREE_KEEP_CONTAINER;
+        netsnmp_access_arp_container_free(container, flags);
+    }
+#endif
 
-    access->generation++;
-    rc =_load_v4(access);
-    access->gc_hook(access);
-    access->synchronized = (rc == 0);
+    /*
+     * return no errors (0) if we found any interfaces
+     */
+    if(rc > 0)
+        rc = 0;
 
     return rc;
 }
 
-int netsnmp_access_arp_unload(netsnmp_arp_access *access)
-{
-    access->synchronized = 0;
-
-    return 0;
-}
-
 /**
  */
-static int
-_load_v4(netsnmp_arp_access *access)
+int
+_load_v4(netsnmp_container *container, int idx_offset)
 {
     FILE           *in;
     char            line[128];
@@ -91,11 +63,11 @@ _load_v4(netsnmp_arp_access *access)
     char           *arp_token;
     int             i;
 
-    netsnmp_assert(NULL != access);
+    netsnmp_assert(NULL != container);
 
 #define PROCFILE "/proc/net/arp"
     if (!(in = fopen(PROCFILE, "r"))) {
-        snmp_log(LOG_DEBUG,"could not open " PROCFILE "\n");
+        snmp_log(LOG_ERR,"could not open " PROCFILE "\n");
         return -2;
     }
 
@@ -111,7 +83,7 @@ _load_v4(netsnmp_arp_access *access)
     while (fgets(line, sizeof(line), in)) {
         
         int             za, zb, zc, zd;
-        unsigned int    tmp_flags;
+        int             tmp_flags;
         char            ifname[21];
 
         rc = sscanf(line,
@@ -138,7 +110,6 @@ _load_v4(netsnmp_arp_access *access)
         /*
          * look up ifIndex
          */
-        entry->generation = access->generation;
         entry->if_index = netsnmp_access_interface_index_find(ifname);
         if(0 == entry->if_index) {
             snmp_log(LOG_ERR,"couldn't find ifIndex for '%s', skipping\n",
@@ -151,7 +122,7 @@ _load_v4(netsnmp_arp_access *access)
          * now that we've passed all the possible 'continue', assign
          * index offset.
          */
-        /* entry->ns_arp_index = ++idx_offset; */
+        entry->ns_arp_index = ++idx_offset;
 
         /*
          * parse ip addr
@@ -206,9 +177,17 @@ _load_v4(netsnmp_arp_access *access)
         /*
          * add entry to container
          */
-        access->update_hook(access, entry);
+        if (CONTAINER_INSERT(container, entry) < 0)
+        {
+            DEBUGMSGTL(("access:arp:container","error with arp_entry: insert into container failed.\n"));
+            netsnmp_access_arp_entry_free(entry);
+            continue;
+        }
     }
 
     fclose(in);
-    return 0;
+    if( rc < 0 )
+        return rc;
+
+    return idx_offset;
 }
diff --git a/agent/mibgroup/ip-mib/data_access/arp_netlink.c b/agent/mibgroup/ip-mib/data_access/arp_netlink.c
deleted file mode 100644
index 2059c23..0000000
--- a/agent/mibgroup/ip-mib/data_access/arp_netlink.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- *  Interface MIB architecture support
- */
-#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/arp.h>
-#include <net-snmp/data_access/interface.h>
-
-#include <errno.h>
-#include <sys/types.h>
-#include <linux/types.h>
-#include <linux/rtnetlink.h>
-
-
-static int fillup_entry_info(netsnmp_arp_entry *entry, struct nlmsghdr *h);
-static void netsnmp_access_arp_read_netlink(int fd, void *data);
-
-/**
- */
-netsnmp_arp_access *
-netsnmp_access_arp_create(u_int init_flags,
-                          NetsnmpAccessArpUpdate *update_hook,
-                          NetsnmpAccessArpGC *gc_hook,
-                          int *cache_timeout, int *cache_flags,
-                          char *cache_expired)
-{
-    netsnmp_arp_access *access;
-
-    access = SNMP_MALLOC_TYPEDEF(netsnmp_arp_access);
-    if (NULL == access) {
-        snmp_log(LOG_ERR,"malloc error in netsnmp_access_arp_create\n");
-        return NULL;
-    }
-
-    access->arch_magic = NULL;
-    access->magic = NULL;
-    access->update_hook = update_hook;
-    access->gc_hook = gc_hook;
-    access->synchronized = 0;
-
-    if (cache_timeout != NULL)
-        *cache_timeout = 5;
-    if (cache_flags != NULL)
-        *cache_flags |= NETSNMP_CACHE_RESET_TIMER_ON_USE | NETSNMP_CACHE_DONT_FREE_BEFORE_LOAD;
-    access->cache_expired = cache_expired;
-
-    DEBUGMSGTL(("access:netlink:arp", "create arp cache\n"));
-
-    return access;
-}
-
-int netsnmp_access_arp_delete(netsnmp_arp_access *access)
-{
-    if (NULL == access)
-        return 0;
-
-    netsnmp_access_arp_unload(access);
-    free(access);
-
-    return 0;
-}
-
-int netsnmp_access_arp_load(netsnmp_arp_access *access)
-{
-    int r, fd = (uintptr_t) access->arch_magic;
-    struct {
-        struct nlmsghdr n;
-        struct ndmsg r;
-    } req;
-
-    if (access->synchronized)
-        return 0;
-
-    if (fd == 0) {
-        struct sockaddr_nl sa;
-
-        fd = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE);
-        if (fd < 0) {
-            snmp_log(LOG_ERR,"netsnmp_access_arp_load: netlink socket create error\n");
-            return -1;
-        }
-        access->arch_magic = (void *)(uintptr_t)fd;
-
-        memset(&sa, 0, sizeof(sa));
-        sa.nl_family = AF_NETLINK;
-        sa.nl_groups = RTMGRP_NEIGH;
-        if (bind(fd, (struct sockaddr*) &sa, sizeof(sa)) < 0) {
-            snmp_log(LOG_ERR,"netsnmp_access_arp_load: netlink bind failed\n");
-            return -1;
-        }
-
-        if (register_readfd(fd, netsnmp_access_arp_read_netlink, access) != 0) {
-            snmp_log(LOG_ERR,"netsnmp_access_arp_load: error registering netlink socket\n");
-            return -1;
-        }
-    }
-
-    DEBUGMSGTL(("access:netlink:arp", "synchronizing arp table\n"));
-
-    access->generation++;
-
-    memset(&req, 0, sizeof(req));
-    req.n.nlmsg_len = sizeof(req);
-    req.n.nlmsg_flags = NLM_F_REQUEST | NLM_F_ROOT;
-    req.n.nlmsg_type = RTM_GETNEIGH;
-    req.r.ndm_family = AF_UNSPEC;
-
-    r = send(fd, &req, req.n.nlmsg_len, 0);
-    if (r < 0) {
-        snmp_log(LOG_ERR,"netsnmp_access_arp_refresh: send failed\n");
-        return -1;
-    }
-
-    while (!access->synchronized)
-        netsnmp_access_arp_read_netlink(fd, access);
-    access->gc_hook(access);
-
-    return 0;
-}
-
-int netsnmp_access_arp_unload(netsnmp_arp_access *access)
-{
-    int fd;
-
-    DEBUGMSGTL(("access:netlink:arp", "unload arp cache\n"));
-
-    fd = (uintptr_t) access->arch_magic;
-    if (fd > 0) {
-         unregister_readfd(fd);
-         close(fd);
-         access->arch_magic = NULL;
-	 access->synchronized = 0;
-    }
-    return 0;
-}
-
-static void netsnmp_access_arp_read_netlink(int fd, void *data)
-{
-    netsnmp_arp_access *access = (netsnmp_arp_access *) data;
-    netsnmp_arp_entry *entry;
-    char buf[16384];
-    struct nlmsghdr *h;
-    int r, len;
-
-    do {
-        r = recv(fd, buf, sizeof(buf), MSG_DONTWAIT);
-        if (r < 0) {
-            if (errno == EINTR)
-                continue;
-            if (errno == EAGAIN)
-                return;
-            snmp_log(LOG_WARNING, "netlink buffer overrun\n");
-            access->synchronized = 0;
-            if (access->cache_expired != NULL)
-		*access->cache_expired = 1;
-            return;
-        }
-    } while (0);
-    len = r;
-
-    for (h = (struct nlmsghdr *) buf; NLMSG_OK(h, len); h = NLMSG_NEXT(h, len)) {
-         if (h->nlmsg_type == NLMSG_DONE) {
-             access->synchronized = 1;
-             continue;
-         }
-
-         entry = netsnmp_access_arp_entry_create();
-         if (NULL == entry)
-             break;
-
-         DEBUGMSGTL(("access:netlink:arp", "arp netlink notification\n"));
-    
-         entry->generation = access->generation;
-         r = fillup_entry_info (entry, h);
-         if (r > 0) {
-             access->update_hook(access, entry);
-         } else {
-             if (r < 0) {
-                 NETSNMP_LOGONCE((LOG_ERR, "filling entry info failed\n"));
-                 DEBUGMSGTL(("access:netlink:arp", "filling entry info failed\n"));
-             }
-             netsnmp_access_arp_entry_free(entry);
-         }
-    }
-}
-
-static int
-fillup_entry_info(netsnmp_arp_entry *entry, struct nlmsghdr *nlmp)
-{
-    struct ndmsg   *rtmp;
-    struct rtattr  *tb[NDA_MAX + 1], *rta;
-    int             length;
-
-    rtmp = (struct ndmsg *) NLMSG_DATA(nlmp);
-    switch (nlmp->nlmsg_type) {
-    case RTM_NEWNEIGH:
-        if (rtmp->ndm_state == NUD_FAILED)
-            entry->flags = NETSNMP_ACCESS_ARP_ENTRY_FLAG_DELETE;
-        else
-            entry->flags = 0;
-        break;
-    case RTM_DELNEIGH:
-        entry->flags = NETSNMP_ACCESS_ARP_ENTRY_FLAG_DELETE;
-        break;
-    case RTM_GETNEIGH:
-        return 0;
-    default:
-        DEBUGMSGTL(("access:netlink:arp",
-                    "Wrong Netlink message type %d\n", nlmp->nlmsg_type));
-        return -1;
-    }
-
-    if (rtmp->ndm_state == NUD_NOARP) {
-        /* NUD_NOARP is for broadcast addresses and similar,
-         * drop them silently */
-        return 0;
-    }
-
-    memset(tb, 0, sizeof(struct rtattr *) * (NDA_MAX + 1));
-    length = nlmp->nlmsg_len - NLMSG_LENGTH(sizeof(*rtmp));
-    rta = ((struct rtattr *) (((char *) (rtmp)) + NLMSG_ALIGN(sizeof(struct ndmsg))));
-    while (RTA_OK(rta, length)) {
-        if (rta->rta_type <= NDA_MAX)
-            tb[rta->rta_type] = rta;
-        rta = RTA_NEXT(rta, length);
-    }
-
-    /*
-     * Fill up the index and addresses
-     */
-    entry->if_index = rtmp->ndm_ifindex;
-    if (tb[NDA_DST]) {
-        entry->arp_ipaddress_len = RTA_PAYLOAD(tb[NDA_DST]);
-        if (entry->arp_ipaddress_len > sizeof(entry->arp_ipaddress)) {
-            snmp_log(LOG_ERR, "netlink ip address length %d is too long\n",
-                     entry->arp_ipaddress_len);
-            return -1;
-        }
-        memcpy(entry->arp_ipaddress, RTA_DATA(tb[NDA_DST]),
-       entry->arp_ipaddress_len);
-    }
-    if (tb[NDA_LLADDR]) {
-        entry->arp_physaddress_len = RTA_PAYLOAD(tb[NDA_LLADDR]);
-        if (entry->arp_physaddress_len > sizeof(entry->arp_physaddress)) {
-            snmp_log(LOG_ERR, "netlink hw address length %d is too long\n",
-                     entry->arp_physaddress_len);
-            return -1;
-        }
-        memcpy(entry->arp_physaddress, RTA_DATA(tb[NDA_LLADDR]),
-               entry->arp_physaddress_len);
-    }
-
-    switch (rtmp->ndm_state) {
-    case NUD_INCOMPLETE:
-        entry->arp_state = INETNETTOMEDIASTATE_INCOMPLETE;
-        break;
-    case NUD_REACHABLE:
-    case NUD_PERMANENT:
-        entry->arp_state = INETNETTOMEDIASTATE_REACHABLE;
-        break;
-    case NUD_STALE:
-        entry->arp_state = INETNETTOMEDIASTATE_STALE;
-        break;
-    case NUD_DELAY:
-        entry->arp_state = INETNETTOMEDIASTATE_DELAY;
-        break;
-    case NUD_PROBE:
-        entry->arp_state = INETNETTOMEDIASTATE_PROBE;
-        break;
-    case NUD_FAILED:
-        entry->arp_state = INETNETTOMEDIASTATE_INVALID;
-        break;
-    case NUD_NONE:
-        entry->arp_state = INETNETTOMEDIASTATE_UNKNOWN;
-        break;
-    default:
-        snmp_log(LOG_ERR, "Unrecognized ARP entry state %d", rtmp->ndm_state);
-        break;
-    }
-
-    switch (rtmp->ndm_state) {
-    case NUD_INCOMPLETE:
-    case NUD_FAILED:
-    case NUD_NONE:
-        entry->arp_type = INETNETTOMEDIATYPE_INVALID;
-        break;
-    case NUD_REACHABLE:
-    case NUD_STALE:
-    case NUD_DELAY:
-    case NUD_PROBE:
-        entry->arp_type = INETNETTOMEDIATYPE_DYNAMIC;
-        break;
-    case NUD_PERMANENT:
-        entry->arp_type = INETNETTOMEDIATYPE_STATIC;
-        break;
-    default:
-        entry->arp_type = INETNETTOMEDIATYPE_LOCAL;
-        break;
-    }
-
-    return 1;
-}
diff --git a/agent/mibgroup/ip-mib/data_access/defaultrouter.h b/agent/mibgroup/ip-mib/data_access/defaultrouter.h
deleted file mode 100644
index a4dfbb1..0000000
--- a/agent/mibgroup/ip-mib/data_access/defaultrouter.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * defaultrouter data access header
- *
- * $Id: $
- */
-/**---------------------------------------------------------------------*/
-/*
- * configure required files
- *
- * Notes:
- *
- * 1) prefer functionality over platform, where possible. If a method
- *    is available for multiple platforms, test that first. That way
- *    when a new platform is ported, it won't need a new test here.
- *
- * 2) don't do detail requirements here. If, for example,
- *    HPUX11 had different reuirements than other HPUX, that should
- *    be handled in the *_hpux.h header file.
- */
-config_require(ip-mib/data_access/defaultrouter_common)
-#if defined( linux )
-config_require(ip-mib/data_access/defaultrouter_linux)
-#else
-/*
- * couldn't determine the correct file!
- */
-config_error(the defaultrouter data access library is not available in this environment.)
-#endif
diff --git a/agent/mibgroup/ip-mib/data_access/defaultrouter_common.c b/agent/mibgroup/ip-mib/data_access/defaultrouter_common.c
deleted file mode 100644
index ae85bfa..0000000
--- a/agent/mibgroup/ip-mib/data_access/defaultrouter_common.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- *  defaultrouter MIB architecture support
- *
- * $Id:$
- */
-#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/defaultrouter.h>
-
-#include "ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h"
-
-/**---------------------------------------------------------------------*/
-/*
- * local static prototypes
- */
-static int _access_defaultrouter_entry_compare_addr(const void *lhs,
-                                                    const void *rhs);
-static void _access_defaultrouter_entry_release(netsnmp_defaultrouter_entry * entry,
-                                                void *unused);
-
-/**---------------------------------------------------------------------*/
-/*
- * external per-architecture functions prototypes
- *
- * These shouldn't be called by the general public, so they aren't in
- * the header file.
- */
-extern int
-netsnmp_arch_defaultrouter_entry_init(netsnmp_defaultrouter_entry *entry);
-
-extern int
-netsnmp_arch_defaultrouter_container_load(netsnmp_container* container,
-                                          u_int load_flags);
-
-/**---------------------------------------------------------------------*/
-/*
- * container functions
- */
-/**
- */
-netsnmp_container *
-netsnmp_access_defaultrouter_container_init(u_int flags)
-{
-    netsnmp_container *container1;
-
-    DEBUGMSGTL(("access:defaultrouter:container", "init\n"));
-
-    /*
-     * create the containers. one indexed by ifIndex, the other
-     * indexed by ifName.
-     */
-    container1 = netsnmp_container_find("access_defaultrouter:table_container");
-    if (NULL == container1) {
-        snmp_log(LOG_ERR, "defaultrouter primary container is not found\n");
-        return NULL;
-    }
-    container1->container_name = strdup("dr_index");
-
-    if (flags & NETSNMP_ACCESS_DEFAULTROUTER_INIT_ADDL_IDX_BY_ADDR) {
-        netsnmp_container *container2 =
-            netsnmp_container_find("defaultrouter_addr:access_defaultrouter:table_container");
-        if (NULL == container2) {
-            snmp_log(LOG_ERR, "defaultrouter secondary container not found\n");
-            CONTAINER_FREE(container1);
-            return NULL;
-        }
-
-        container2->compare = _access_defaultrouter_entry_compare_addr;
-        container2->container_name = strdup("dr_addr");
-
-        netsnmp_container_add_index(container1, container2);
-    }
-
-    return container1;
-}
-
-/**
- * @retval NULL  error
- * @retval !NULL pointer to container
- */
-netsnmp_container*
-netsnmp_access_defaultrouter_container_load(netsnmp_container* container,
-                                            u_int load_flags)
-{
-    int rc;
-     u_int container_flags = 0;
-
-    DEBUGMSGTL(("access:defaultrouter:container", "load\n"));
-
-    if (NULL == container) {
-        if (load_flags & NETSNMP_ACCESS_DEFAULTROUTER_LOAD_ADDL_IDX_BY_ADDR) {
-            container_flags |=
-                NETSNMP_ACCESS_DEFAULTROUTER_INIT_ADDL_IDX_BY_ADDR;
-        }
-        container =
-            netsnmp_access_defaultrouter_container_init(container_flags);
-    }
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR, "no container specified/found for access_defaultrouter\n");
-        return NULL;
-    }
-
-    rc =  netsnmp_arch_defaultrouter_container_load(container, load_flags);
-    if (0 != rc) {
-        netsnmp_access_defaultrouter_container_free(container,
-                                    NETSNMP_ACCESS_DEFAULTROUTER_FREE_NOFLAGS);
-        container = NULL;
-    }
-
-    return container;
-}
-
-void
-netsnmp_access_defaultrouter_container_free(netsnmp_container *container,
-                                            u_int free_flags)
-{
-    DEBUGMSGTL(("access:defaultrouter:container", "free\n"));
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR,
-                 "invalid container for netsnmp_access_defaultrouter_free\n");
-        return;
-    }
-
-    if(! (free_flags & NETSNMP_ACCESS_DEFAULTROUTER_FREE_DONT_CLEAR)) {
-        /*
-         * free all items.
-         */
-        CONTAINER_CLEAR(container,
-                        (netsnmp_container_obj_func*)_access_defaultrouter_entry_release,
-                        NULL);
-    }
-
-    if(! (free_flags & NETSNMP_ACCESS_DEFAULTROUTER_FREE_KEEP_CONTAINER))
-        CONTAINER_FREE(container);
-}
-
-/**---------------------------------------------------------------------*/
-/*
- * defaultrouter_entry functions
- */
-/**
- */
-/**
- */
-netsnmp_defaultrouter_entry *
-netsnmp_access_defaultrouter_entry_create(void)
-{
-    int rc = 0;
-    netsnmp_defaultrouter_entry *entry =
-        SNMP_MALLOC_TYPEDEF(netsnmp_defaultrouter_entry);
-
-    DEBUGMSGTL(("access:defaultrouter:entry", "create\n"));
-
-    if(NULL == entry)
-        return NULL;
-
-    entry->oid_index.len = 1;
-    entry->oid_index.oids = &entry->ns_dr_index;
-
-    /*
-     * set up defaults
-     */
-    entry->dr_lifetime   = IPDEFAULTROUTERLIFETIME_MAX;
-    entry->dr_preference = IPDEFAULTROUTERPREFERENCE_MEDIUM;
-
-    rc = netsnmp_arch_defaultrouter_entry_init(entry);
-    if (SNMP_ERR_NOERROR != rc) {
-        DEBUGMSGT(("access:defaultrouter:create","error %d in arch init\n", rc));
-        netsnmp_access_defaultrouter_entry_free(entry);
-        entry = NULL;
-    }
-
-    return entry;
-}
-
-void
-netsnmp_access_defaultrouter_entry_free(netsnmp_defaultrouter_entry * entry)
-{
-    if (NULL == entry)
-        return;
-
-    free(entry);
-}
-
-/**
- * update an old defaultrouter_entry from a new one
- *
- * @note: only mib related items are compared. Internal objects
- * such as oid_index, ns_dr_index and flags are not compared.
- *
- * @retval -1  : error
- * @retval >=0 : number of fields updated
- */
-int
-netsnmp_access_defaultrouter_entry_update(netsnmp_defaultrouter_entry *lhs,
-                                      netsnmp_defaultrouter_entry *rhs)
-{
-    int changed = 0;
-
-    if (lhs->dr_addresstype != rhs->dr_addresstype) {
-        ++changed;
-        lhs->dr_addresstype = rhs->dr_addresstype;
-    }
-
-    if (lhs->dr_address_len != rhs->dr_address_len) {
-        changed += 2;
-        lhs->dr_address_len = rhs->dr_address_len;
-        memcpy(lhs->dr_address, rhs->dr_address, rhs->dr_address_len);
-    }
-    else if (memcmp(lhs->dr_address, rhs->dr_address, rhs->dr_address_len) != 0) {
-        ++changed;
-        memcpy(lhs->dr_address, rhs->dr_address, rhs->dr_address_len);
-    }
-
-    if (lhs->dr_if_index != rhs->dr_if_index) {
-        ++changed;
-        lhs->dr_if_index = rhs->dr_if_index;
-    }
-
-    if (lhs->dr_lifetime != rhs->dr_lifetime) {
-        ++changed;
-        lhs->dr_lifetime = rhs->dr_lifetime;
-    }
-
-    if (lhs->dr_preference != rhs->dr_preference) {
-        ++changed;
-        lhs->dr_preference = rhs->dr_preference;
-    }
-
-    return changed;
-}
-
-/**
- * copy an  defaultrouter_entry
- *
- * @retval -1  : error
- * @retval 0   : no error
- */
-int
-netsnmp_access_defaultrouter_entry_copy(netsnmp_defaultrouter_entry *lhs,
-                                    netsnmp_defaultrouter_entry *rhs)
-{
-    lhs->dr_addresstype = rhs->dr_addresstype;
-    lhs->dr_address_len = rhs->dr_address_len;
-    memcpy(lhs->dr_address, rhs->dr_address, rhs->dr_address_len);
-    lhs->dr_if_index    = rhs->dr_if_index;
-    lhs->dr_lifetime    = rhs->dr_lifetime;
-    lhs->dr_preference  = rhs->dr_preference;
-
-    return 0;
-}
-
-/**---------------------------------------------------------------------*/
-/*
- * Utility routines
- */
-
-/**
- */
-void
-_access_defaultrouter_entry_release(netsnmp_defaultrouter_entry * entry, void *context)
-{
-    netsnmp_access_defaultrouter_entry_free(entry);
-}
-
-static int _access_defaultrouter_entry_compare_addr(const void *lhs,
-                                                const void *rhs)
-{
-    const netsnmp_defaultrouter_entry *lh = (const netsnmp_defaultrouter_entry *)lhs;
-    const netsnmp_defaultrouter_entry *rh = (const netsnmp_defaultrouter_entry *)rhs;
-
-    netsnmp_assert(NULL != lhs);
-    netsnmp_assert(NULL != rhs);
-
-    /*
-     * compare address length
-     */
-    if (lh->dr_address_len < rh->dr_address_len)
-        return -1;
-    else if (lh->dr_address_len > rh->dr_address_len)
-        return 1;
-
-    /*
-     * length equal, compare address
-     */
-    return memcmp(lh->dr_address, rh->dr_address, lh->dr_address_len);
-}
diff --git a/agent/mibgroup/ip-mib/data_access/defaultrouter_linux.c b/agent/mibgroup/ip-mib/data_access/defaultrouter_linux.c
deleted file mode 100644
index 5a1fa46..0000000
--- a/agent/mibgroup/ip-mib/data_access/defaultrouter_linux.c
+++ /dev/null
@@ -1,328 +0,0 @@
-/*
- *  Interface MIB architecture support
- *
- * $Id:$
- */
-#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/defaultrouter.h>
-
-#include "ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h"
-
-#include <asm/types.h>
-#ifdef HAVE_LINUX_RTNETLINK_H
-#include <linux/netlink.h>
-#include <linux/rtnetlink.h>
-#endif
-#include <sys/socket.h>
-#include <arpa/inet.h>
-#include <errno.h>
-#include <unistd.h>
-
-#define RCVBUF_SIZE 32768
-#define SNDBUF_SIZE 512
-
-#ifdef NETSNMP_ENABLE_IPV6
-#define DR_ADDRSTRLEN  INET6_ADDRSTRLEN
-#else
-#define DR_ADDRSTRLEN  INET_ADDRSTRLEN
-#endif
-
-/**---------------------------------------------------------------------*/
-/*
- * local static prototypes
- */
-static int _load(netsnmp_container *container);
-
-
-/*
- * initialize arch specific storage
- *
- * @retval  0: success
- * @retval <0: error
- */
-int
-netsnmp_arch_defaultrouter_entry_init(netsnmp_defaultrouter_entry *entry)
-{
-    /*
-     * init
-     */
-    return 0;
-}
-
-/**
- *
- * @retval  0 no errors
- * @retval !0 errors
- */
-int
-netsnmp_arch_defaultrouter_container_load(netsnmp_container *container,
-                                          u_int load_flags)
-{
-    int rc = 0;
-
-    DEBUGMSGTL(("access:defaultrouter:entry:arch", "load (linux)\n"));
-
-    rc = _load(container);
-    if (rc < 0) {
-        u_int flags = NETSNMP_ACCESS_DEFAULTROUTER_FREE_KEEP_CONTAINER;
-        netsnmp_access_defaultrouter_container_free(container, flags);
-    }
-
-    return rc;
-}
-
-/**
- *
- * @retval  0 no errors
- * @retval !0 errors
- */
-static int
-_load(netsnmp_container *container)
-{
-#ifndef HAVE_LINUX_RTNETLINK_H
-    DEBUGMSGTL(("access:defaultrouter",
-                "cannot get default router information"
-                "as netlink socket is not available\n"));
-    return -1;
-#else
-    int rc = 0;
-    int idx_offset = 0;
-    netsnmp_defaultrouter_entry *entry;
-    int nlsk;
-    struct sockaddr_nl addr;
-    int rcvbuf_size = RCVBUF_SIZE;
-    unsigned char rcvbufmem[RCVBUF_SIZE + sizeof(intmax_t)];
-    unsigned char sndbufmem[SNDBUF_SIZE + sizeof(intmax_t)];
-    /*
-     * Buffers must be memory aligned.
-     * Message structure internal alignment is maintained by the netlink API.
-     */
-    unsigned char *rcvbuf = rcvbufmem +
-          sizeof(intmax_t) - (((intptr_t)rcvbufmem) % sizeof(intmax_t));
-    unsigned char *sndbuf = sndbufmem +
-          sizeof(intmax_t) - (((intptr_t)sndbufmem) % sizeof(intmax_t));
-    struct nlmsghdr *hdr;
-    struct rtmsg *rthdr;
-    int count;
-    int end_of_message = 0;
-    long hz = sysconf(_SC_CLK_TCK);
-
-    netsnmp_assert(NULL != container);
-
-    /*
-     * Open a netlink socket
-     */
-    nlsk = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE);
-    if (nlsk < 0) {
-        snmp_log(LOG_ERR, "Could not open netlink socket : %s\n",
-                 strerror(errno));
-        return -1;
-    }
-
-    if (setsockopt(nlsk, SOL_SOCKET, SO_RCVBUF,
-                   &rcvbuf_size, sizeof(rcvbuf_size)) < 0) {
-        snmp_log(LOG_ERR, "Could not open netlink socket : %s\n",
-                 strerror(errno));
-        close(nlsk);
-        return -1;
-    }
-    
-    memset(&addr, '\0', sizeof(struct sockaddr_nl));
-    addr.nl_family = AF_NETLINK;
-
-    memset(sndbuf, '\0', SNDBUF_SIZE);
-    hdr = (struct nlmsghdr *)sndbuf;
-    hdr->nlmsg_type = RTM_GETROUTE;
-    hdr->nlmsg_pid = getpid();
-    hdr->nlmsg_seq = 0;
-    hdr->nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
-    hdr->nlmsg_len = NLMSG_LENGTH(sizeof(struct rtmsg));
-    rthdr = (struct rtmsg *)NLMSG_DATA(hdr);
-    rthdr->rtm_table = RT_TABLE_MAIN;
-
-    /*
-     * Send a request to the kernel to dump the routing table to us
-     */
-    count = sendto(nlsk, sndbuf, hdr->nlmsg_len, 0,
-                   (struct sockaddr *)&addr, sizeof(struct sockaddr_nl));
-    if (count < 0) {
-        snmp_log(LOG_ERR, "unable to send netlink message to kernel : %s\n",
-                 strerror(errno));
-        close(nlsk);
-        return -2;
-    }
-
-    /*
-     * Now listen for response
-     */
-    do {
-        struct nlmsghdr *nlmhp;
-        struct rtmsg *rtmp;
-        struct rtattr *rtap;
-        struct rta_cacheinfo *rtci;
-        socklen_t sock_len;
-        int rtcount;
-
-        memset(rcvbuf, '\0', RCVBUF_SIZE);
-        sock_len = sizeof(struct sockaddr_nl);
-
-        /*
-         * Get the message
-         */
-        count = recvfrom(nlsk, rcvbuf, RCVBUF_SIZE, 0,
-                         (struct sockaddr *)&addr, &sock_len);
-        if (count < 0) {
-            snmp_log(LOG_ERR, "unable to receive netlink messages: %s\n",
-                     strerror(errno));
-            rc = -1;
-            break;
-        }
-
-        /*
-         * Walk all of the returned messages
-         */
-        nlmhp = (struct nlmsghdr *)rcvbuf;
-        while (NLMSG_OK(nlmhp, count)) {
-            u_char addresstype;
-            char   address[NETSNMP_ACCESS_DEFAULTROUTER_BUF_SIZE + 1];
-            size_t address_len =  0;
-            int    if_index    = -1;
-            u_long lifetime    =  0;
-            int    preference  = -3;
-
-            /*
-             * Make sure the message is ok
-             */
-            if (nlmhp->nlmsg_type == NLMSG_ERROR) {
-                snmp_log(LOG_ERR, "kernel produced nlmsg err\n");
-                rc = -1;
-                break;
-            }
-
-            /*
-             * End of message, we're done
-             */
-            if (nlmhp->nlmsg_type & NLMSG_DONE) {
-                end_of_message = 1;
-                break;
-            }
-
-            /*
-             * Get the pointer to the rtmsg struct
-             */
-            rtmp = NLMSG_DATA(nlmhp);
-
-            /*
-             * zero length destination is a default route
-             */
-            if (rtmp->rtm_dst_len != 0)
-                goto next_nlmsghdr;
-
-            /*
-             * Start scanning the attributes for needed info
-             */
-            if (rtmp->rtm_family == AF_INET) {
-                addresstype = INETADDRESSTYPE_IPV4;
-                lifetime = IPDEFAULTROUTERLIFETIME_MAX;     /* infinity */
-            }
-#ifdef NETSNMP_ENABLE_IPV6
-            else if (rtmp->rtm_family == AF_INET6) {
-                addresstype = INETADDRESSTYPE_IPV6;
-                /* router lifetime for IPv6 is retrieved by RTA_CACHEINFO */
-                lifetime = 0;
-            }
-#endif
-            else
-                goto next_nlmsghdr; /* skip, we don't care about this route */
-
-            preference = 0;     /* preference is medium(0) for now */
-
-            rtap = RTM_RTA(rtmp);
-            rtcount = RTM_PAYLOAD(nlmhp);
-            while (RTA_OK(rtap, rtcount)) {
-                switch (rtap->rta_type) {
-                    case RTA_OIF:
-                        if_index = *(int *)(RTA_DATA(rtap));
-                        break;
-
-                    case RTA_GATEWAY:
-                        address_len = RTA_PAYLOAD(rtap);
-                        memset(address, '\0', sizeof(address));
-                        memcpy(address, RTA_DATA(rtap), address_len);
-                        break;
-
-#ifdef NETSNMP_ENABLE_IPV6
-                    case RTA_CACHEINFO:
-                        rtci = RTA_DATA(rtap);
-                        if ((rtmp->rtm_flags & RTM_F_CLONED) ||
-                            (rtci && rtci->rta_expires)) {
-                            lifetime = rtci->rta_expires / hz;
-                        }
-                        break;
-#endif
-
-                    default:
-                        break;
-                }   /* switch */
-
-                rtap = RTA_NEXT(rtap, rtcount);
-            } /* while RTA_OK(rtap) */
-
-            if (address_len != 0 && if_index != -1 &&
-                lifetime != 0 && preference != -3 ) {
-                DEBUGIF("access:defaultrouter") {
-                    char addr_str[DR_ADDRSTRLEN];
-                    memset(addr_str, '\0', DR_ADDRSTRLEN);
-
-                    if (rtmp->rtm_family == AF_INET)
-                        inet_ntop(AF_INET, address, addr_str, DR_ADDRSTRLEN);
-#ifdef NETSNMP_ENABLE_IPV6
-                    else
-                        inet_ntop(AF_INET6, address, addr_str, DR_ADDRSTRLEN);
-#endif
-                    DEBUGMSGTL(("access:defaultrouter",
-                                "found default route: %s if_index %d "
-                                "lifetime %lu preference %d\n",
-                                addr_str, if_index, lifetime, preference));
-                }
-
-                entry = netsnmp_access_defaultrouter_entry_create();
-                if (NULL == entry) {
-                    rc = -3;
-                    break;
-                }
-
-                entry->ns_dr_index    = ++idx_offset;
-                entry->dr_addresstype = addresstype;
-                entry->dr_address_len = address_len;
-                memcpy(entry->dr_address, address,
-                       NETSNMP_ACCESS_DEFAULTROUTER_BUF_SIZE);
-                entry->dr_if_index    = if_index;
-                entry->dr_lifetime    = lifetime;
-                entry->dr_preference  = preference;
-
-                if (CONTAINER_INSERT(container, entry) < 0)
-                {
-                    DEBUGMSGTL(("access:arp:container",
-                                "error with defaultrouter_entry: "
-                                "insert into container failed.\n"));
-                    netsnmp_access_defaultrouter_entry_free(entry);
-                }
-            }
-
-next_nlmsghdr:
-            nlmhp = NLMSG_NEXT(nlmhp, count);
-        } /* while NLMSG_OK(nlmhp) */
-
-        if (rc < 0)
-            break;
-
-    } while (!end_of_message);
-
-    close(nlsk);
-    return rc;
-#endif  /* HAVE_LINUX_RTNETLINK_H */
-}
diff --git a/agent/mibgroup/ip-mib/data_access/ipaddress.h b/agent/mibgroup/ip-mib/data_access/ipaddress.h
index 9cf8181..f1d471a 100644
--- a/agent/mibgroup/ip-mib/data_access/ipaddress.h
+++ b/agent/mibgroup/ip-mib/data_access/ipaddress.h
@@ -1,7 +1,7 @@
 /*
  * ipaddress data access header
  *
- * $Id$
+ * $Id: ipaddress.h 13271 2005-10-28 15:29:23Z rstory $
  */
 /**---------------------------------------------------------------------*/
 /*
@@ -20,9 +20,11 @@
 config_require(ip-mib/data_access/ipaddress_common)
 #if defined( linux )
 config_require(ip-mib/data_access/ipaddress_linux)
-#elif defined( solaris2 )
-config_require(ip-mib/data_access/ipaddress_solaris2)
 #else
-config_error(the ipaddress data access library is not available in this environment.)
+/*
+ * couldn't determine the correct file!
+ * require a bogus file to generate an error.
+ */
+config_require(ip-mib/data_access/ipaddress-unknown-arch)
 #endif
 
diff --git a/agent/mibgroup/ip-mib/data_access/ipaddress_common.c b/agent/mibgroup/ip-mib/data_access/ipaddress_common.c
index e305c9f..396fc96 100644
--- a/agent/mibgroup/ip-mib/data_access/ipaddress_common.c
+++ b/agent/mibgroup/ip-mib/data_access/ipaddress_common.c
@@ -1,7 +1,7 @@
 /*
  *  Ipaddress MIB architecture support
  *
- * $Id$
+ * $Id: ipaddress_common.c 16724 2007-10-14 22:10:09Z magfr $
  */
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
@@ -12,19 +12,6 @@
 
 #include "ip-mib/ipAddressTable/ipAddressTable_constants.h"
 
-#include <net-snmp/net-snmp-features.h>
-
-netsnmp_feature_child_of(ipaddress_common, libnetsnmpmibs)
-
-netsnmp_feature_child_of(ipaddress_common_copy_utilities, ipaddress_common)
-netsnmp_feature_child_of(ipaddress_entry_copy, ipaddress_common)
-netsnmp_feature_child_of(ipaddress_entry_update, ipaddress_common)
-netsnmp_feature_child_of(ipaddress_prefix_copy, ipaddress_common_copy_utilities)
-
-#ifdef NETSNMP_FEATURE_REQUIRE_IPADDRESS_ENTRY_COPY
-netsnmp_feature_require(ipaddress_arch_entry_copy)
-#endif /* NETSNMP_FEATURE_REQUIRE_IPADDRESS_ENTRY_COPY */
-
 /**---------------------------------------------------------------------*/
 /*
  * local static prototypes
@@ -224,8 +211,7 @@ netsnmp_access_ipaddress_entry_set(netsnmp_ipaddress_entry * entry)
      * 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 %" NETSNMP_PRIo "d\n",
+        DEBUGMSGT(("access:ipaddress:set", "cant find name for index %d\n",
                   entry->if_index));
         return -1;
     }
@@ -260,7 +246,6 @@ netsnmp_access_ipaddress_entry_set(netsnmp_ipaddress_entry * entry)
     return rc;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESS_ENTRY_UPDATE
 /**
  * update an old ipaddress_entry from a new one
  *
@@ -319,33 +304,10 @@ netsnmp_access_ipaddress_entry_update(netsnmp_ipaddress_entry *lhs,
         ++changed;
         lhs->ia_origin = rhs->ia_origin;
     }
-   
-    if (lhs->ia_onlink_flag != rhs->ia_onlink_flag) {
-        ++changed;
-        lhs->ia_onlink_flag = rhs->ia_onlink_flag;
-    }
-
-    if (lhs->ia_autonomous_flag != rhs->ia_autonomous_flag) {
-        ++changed;
-        lhs->ia_autonomous_flag = rhs->ia_autonomous_flag;
-    }
-
-    if (lhs->ia_prefered_lifetime != rhs->ia_prefered_lifetime) {
-        ++changed;
-        lhs->ia_prefered_lifetime = rhs->ia_prefered_lifetime;
-    }
-
-    if (lhs->ia_valid_lifetime != rhs->ia_valid_lifetime) {
-        ++changed;
-        lhs->ia_valid_lifetime = rhs->ia_valid_lifetime;
-    }
-
 
     return changed;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESS_ENTRY_UPDATE */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESS_ENTRY_COPY
 /**
  * copy an  ipaddress_entry
  *
@@ -377,14 +339,12 @@ netsnmp_access_ipaddress_entry_copy(netsnmp_ipaddress_entry *lhs,
     
     return 0;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESS_ENTRY_COPY */
 
 /**---------------------------------------------------------------------*/
 /*
  * Utility routines
  */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESS_PREFIX_COPY
 /**
  * copy the prefix portion of an ip address
  */
@@ -410,7 +370,6 @@ netsnmp_ipaddress_prefix_copy(u_char *dst, u_char *src, int addr_len, int pfx_le
 
     return pfx_len;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESS_PREFIX_COPY */
 
 
 /**
@@ -469,51 +428,3 @@ static int _access_ipaddress_entry_compare_addr(const void *lhs,
      */
     return memcmp(lh->ia_address, rh->ia_address, lh->ia_address_len);
 }
-
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESS_COMMON_COPY_UTILITIES
-int
-netsnmp_ipaddress_flags_copy(u_long *ipAddressPrefixAdvPreferredLifetime,
-                             u_long *ipAddressPrefixAdvValidLifetime,
-                             u_long *ipAddressPrefixOnLinkFlag,
-                             u_long *ipAddressPrefixAutonomousFlag, 
-                             u_long *ia_prefered_lifetime,
-                             u_long *ia_valid_lifetime,
-                             u_char *ia_onlink_flag,
-                             u_char *ia_autonomous_flag)
-{
-
-    /*Copy all the flags*/
-    *ipAddressPrefixAdvPreferredLifetime = *ia_prefered_lifetime;
-    *ipAddressPrefixAdvValidLifetime = *ia_valid_lifetime;
-    *ipAddressPrefixOnLinkFlag = *ia_onlink_flag;
-    *ipAddressPrefixAutonomousFlag = *ia_autonomous_flag;
-    return 0;
-}
-
-int
-netsnmp_ipaddress_prefix_origin_copy(u_long *ipAddressPrefixOrigin,
-                                     u_char ia_origin,
-                                     int flags,
-                                     u_long ipAddressAddrType)
-{
-    if(ipAddressAddrType == INETADDRESSTYPE_IPV4){
-       if(ia_origin == 6) /*Random*/
-          (*ipAddressPrefixOrigin) = 3 /*IPADDRESSPREFIXORIGINTC_WELLKNOWN*/;
-       else
-          (*ipAddressPrefixOrigin) = ia_origin;
-    } else {
-       if(ia_origin == 5) { /*Link Layer*/
-          if(!flags) /*Global address assigned by router adv*/
-             (*ipAddressPrefixOrigin) = 5 /*IPADDRESSPREFIXORIGINTC_ROUTERADV*/;
-          else
-             (*ipAddressPrefixOrigin) = 3 /*IPADDRESSPREFIXORIGINTC_WELLKNOWN*/;
-       }
-       else if(ia_origin == 6) /*Random*/
-          (*ipAddressPrefixOrigin) = 5 /*IPADDRESSPREFIXORIGINTC_ROUTERADV*/;
-       else
-          (*ipAddressPrefixOrigin) = ia_origin;
-    }
-    return 0;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESS_COMMON_COPY_UTILITIES */
-
diff --git a/agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c b/agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c
index cf65013..2c689df 100644
--- a/agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c
+++ b/agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c
@@ -1,10 +1,9 @@
 /*
  *  Interface MIB architecture support
  *
- * $Id$
+ * $Id: ipaddress_ioctl.c 17850 2009-11-30 16:30:12Z dts12 $
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include "mibII/mibII_common.h"
 
@@ -21,8 +20,6 @@
 
 #include "ipaddress_ioctl.h"
 
-netsnmp_feature_child_of(ipadress_ioctl_entry_copy, ipaddress_common)
-
 static void _print_flags(short flags);
 
 #define LIST_TOKEN "ioctl_extras"
@@ -38,7 +35,7 @@ netsnmp_ioctl_ipaddress_extras_get(netsnmp_ipaddress_entry *entry)
     if ((NULL == entry) || (NULL == entry->arch_data))
         return NULL;
 
-    return (_ioctl_extras*)netsnmp_get_list_data(entry->arch_data, LIST_TOKEN);
+    return netsnmp_get_list_data(entry->arch_data, LIST_TOKEN);
 }
 
 /**
@@ -89,7 +86,6 @@ netsnmp_ioctl_ipaddress_entry_cleanup(netsnmp_ipaddress_entry *entry)
     netsnmp_remove_list_node(&entry->arch_data, LIST_TOKEN);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESS_IOCTL_ENTRY_COPY
 /**
  * copy ioctl extras
  *
@@ -126,7 +122,6 @@ netsnmp_ioctl_ipaddress_entry_copy(netsnmp_ipaddress_entry *lhs,
 
     return rc;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESS_IOCTL_ENTRY_COPY */
 
 /**
  * load ipv4 address via ioctl
@@ -140,8 +135,7 @@ _netsnmp_ioctl_ipaddress_container_load_v4(netsnmp_container *container,
     struct ifreq   *ifrp;
     struct sockaddr save_addr;
     struct sockaddr_in * si;
-    struct address_flag_info addr_info;
-    in_addr_t       ipval;
+    netsnmp_ipaddress_entry *entry;
     _ioctl_extras           *extras;
 
     if ((sd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
@@ -160,18 +154,9 @@ _netsnmp_ioctl_ipaddress_container_load_v4(netsnmp_container *container,
 
     ifrp = ifc.ifc_req;
     for(i=0; i < interfaces; ++i, ++ifrp) {
-        netsnmp_ipaddress_entry *entry, *bcastentry = NULL;
 
         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();
@@ -196,9 +181,9 @@ _netsnmp_ioctl_ipaddress_container_load_v4(netsnmp_container *container,
         /*
          * 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;
         memcpy(entry->ia_address, &si->sin_addr.s_addr,
                entry->ia_address_len);
 
@@ -230,31 +215,11 @@ _netsnmp_ioctl_ipaddress_container_load_v4(netsnmp_container *container,
         /* restore the interface name if we modifed it due to unaliasing
          * above
          */
-        if (entry->flags & NETSNMP_ACCESS_IPADDRESS_ISALIAS) {
+        if (entry->flags | NETSNMP_ACCESS_IPADDRESS_ISALIAS) {
             memcpy(ifrp->ifr_name, extras->name, sizeof(extras->name));
         }
 
         /*
-         * get broadcast
-         */
-        memset(&addr_info, 0, sizeof(struct address_flag_info));
-#if defined (NETSNMP_ENABLE_IPV6)
-        addr_info = netsnmp_access_other_info_get(entry->if_index, AF_INET);
-        if(addr_info.bcastflg) {
-           bcastentry = netsnmp_access_ipaddress_entry_create();
-           if(NULL == bcastentry) {
-              rc = -3;
-              break;
-           }
-           bcastentry->if_index = entry->if_index;
-           bcastentry->ns_ia_index = ++idx_offset;
-           bcastentry->ia_address_len = sizeof(addr_info.addr);
-           memcpy(bcastentry->ia_address, &addr_info.addr,
-                  bcastentry->ia_address_len);
-        }
-#endif
-
-        /*
          * get netmask
          */
         ifrp->ifr_addr = save_addr;
@@ -267,10 +232,7 @@ _netsnmp_ioctl_ipaddress_container_load_v4(netsnmp_container *container,
         netsnmp_assert(AF_INET == ifrp->ifr_addr.sa_family);
         si = (struct sockaddr_in *) &ifrp->ifr_addr;
         entry->ia_prefix_len =
-            netsnmp_ipaddress_ipv4_prefix_len(ntohl(si->sin_addr.s_addr));
-        if(bcastentry)
-           bcastentry->ia_prefix_len = entry->ia_prefix_len;
-
+            netsnmp_ipaddress_ipv4_prefix_len(si->sin_addr.s_addr);
 
         /*
          * get flags
@@ -284,12 +246,7 @@ _netsnmp_ioctl_ipaddress_container_load_v4(netsnmp_container *container,
         }
         extras->flags = ifrp->ifr_flags;
 
-        if(bcastentry)
-           bcastentry->ia_type = IPADDRESSTYPE_BROADCAST;
-        if(addr_info.anycastflg)
-           entry->ia_type = IPADDRESSTYPE_ANYCAST;
-        else
-           entry->ia_type = IPADDRESSTYPE_UNICAST;
+        entry->ia_type = IPADDRESSTYPE_UNICAST; /* assume unicast? */
 
         /** entry->ia_prefix_oid ? */
 
@@ -299,27 +256,16 @@ _netsnmp_ioctl_ipaddress_container_load_v4(netsnmp_container *container,
          *   always preferred(1).
          */
         entry->ia_status = IPADDRESSSTATUSTC_PREFERRED;
-        if(bcastentry)
-           bcastentry->ia_status = IPADDRESSSTATUSTC_PREFERRED;
 
         /*
          * can we figure out if an address is from DHCP?
          * use manual until then...
          */
-        if(IS_APIPA(ipval)) {
-           entry->ia_origin = IPADDRESSORIGINTC_RANDOM;
-           if(bcastentry)
-              bcastentry->ia_origin = IPADDRESSORIGINTC_RANDOM;
-        }
-        else {
-           entry->ia_origin = IPADDRESSORIGINTC_MANUAL;
-           if(bcastentry)
-              bcastentry->ia_origin = IPADDRESSORIGINTC_MANUAL;
-        }
+        entry->ia_origin = IPADDRESSORIGINTC_MANUAL;
 
         DEBUGIF("access:ipaddress:container") {
             DEBUGMSGT_NC(("access:ipaddress:container",
-                          " if %d: addr len %d, index 0x%" NETSNMP_PRIo "x\n",
+                          " if %d: addr len %d, index 0x%x\n",
                           i, entry->ia_address_len, entry->if_index));
             if (4 == entry->ia_address_len)
                 DEBUGMSGT_NC(("access:ipaddress:container", " address %p\n",
@@ -333,19 +279,9 @@ _netsnmp_ioctl_ipaddress_container_load_v4(netsnmp_container *container,
         /*
          * add entry to container
          */
-        if(bcastentry){
-            if (CONTAINER_INSERT(container, bcastentry) < 0) {
-                DEBUGMSGTL(("access:ipaddress:container","error with ipaddress_entry: insert broadcast entry into container failed.\n"));
-                netsnmp_access_ipaddress_entry_free(bcastentry);
-                netsnmp_access_ipaddress_entry_free(entry);
-                continue;
-            }
-            bcastentry = NULL;
-        }
-
-        if (CONTAINER_INSERT(container, entry) < 0) {
+        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;
         }
@@ -396,7 +332,7 @@ _next_alias(const char *if_name)
     netsnmp_assert(NULL != ifc.ifc_buf);
     DEBUGMSGTL(("access:ipaddress:container", "processing %d interfaces\n", interfaces));
 
-    alias_list = (int*)malloc(interfaces * sizeof(int));
+    alias_list = malloc(interfaces * sizeof(int));
     if (NULL == alias_list) {
         close(sd);
         return -2;
@@ -432,13 +368,10 @@ _next_alias(const char *if_name)
         for(k=0;k<j;++k)
             if (alias_list[k] == i)
                 break;
-        if (k == j) {
-            free(alias_list);
+        if (k == j)
             return i;
-        }
     }
 
-    free(alias_list);
     return interfaces + 1;
 }
 
@@ -479,8 +412,7 @@ _netsnmp_ioctl_ipaddress_set_v4(netsnmp_ipaddress_entry * entry)
         int   alias_idx;
 
         if (NULL == name) {
-            DEBUGMSGT(("access:ipaddress:set",
-                       "cant find name for index %" NETSNMP_PRIo "d\n",
+            DEBUGMSGT(("access:ipaddress:set", "cant find name for index %d\n",
                        entry->if_index));
             close(fd);
             return -1;
@@ -492,10 +424,11 @@ _netsnmp_ioctl_ipaddress_set_v4(netsnmp_ipaddress_entry * entry)
         alias_idx = _next_alias(name);
         snprintf(ifrq.ifr_name,sizeof(ifrq.ifr_name), "%s:%d",
                  name, alias_idx);
-        ifrq.ifr_name[sizeof(ifrq.ifr_name) - 1] = 0;
     }
     else
-        strlcpy(ifrq.ifr_name, (char *) extras->name, sizeof(ifrq.ifr_name));
+        strncpy(ifrq.ifr_name, extras->name, sizeof(ifrq.ifr_name));
+
+    ifrq.ifr_name[ sizeof(ifrq.ifr_name)-1 ] = 0;
 
     sin = (struct sockaddr_in*)&ifrq.ifr_addr;
     sin->sin_family = AF_INET;
@@ -543,7 +476,8 @@ _netsnmp_ioctl_ipaddress_delete_v4(netsnmp_ipaddress_entry * entry)
 
     memset(&ifrq, 0, sizeof(ifrq));
 
-    strlcpy(ifrq.ifr_name, (char *) extras->name, sizeof(ifrq.ifr_name));
+    strncpy(ifrq.ifr_name, extras->name, sizeof(ifrq.ifr_name));
+    ifrq.ifr_name[ sizeof(ifrq.ifr_name)-1 ] = 0;
 
     ifrq.ifr_flags = 0;
 
@@ -557,91 +491,6 @@ _netsnmp_ioctl_ipaddress_delete_v4(netsnmp_ipaddress_entry * entry)
     return 0;
 }
 
-
-/**
- * Add/remove IPv6 address using ioctl.
- * @retval  0 : no error
- * @retval -1 : bad parameter
- * @retval -2 : couldn't create socket
- * @retval -3 : ioctl failed
- */
-int
-_netsnmp_ioctl_ipaddress_v6(netsnmp_ipaddress_entry * entry, int operation)
-{
-#ifdef linux
-    /*
-     * From linux/ipv6.h. It cannot be included because it collides
-     * with netinet/in.h
-     */
-    struct in6_ifreq {
-            struct in6_addr ifr6_addr;
-            uint32_t        ifr6_prefixlen;
-            int             ifr6_ifindex;
-    };
-
-    struct in6_ifreq               ifrq;
-    int                            rc, fd = -1;
-
-    DEBUGMSGT(("access:ipaddress:set", "_netsnmp_ioctl_ipaddress_set_v6 started\n"));
-
-    if (NULL == entry)
-        return -1;
-
-    netsnmp_assert(16 == entry->ia_address_len);
-
-    fd = socket(AF_INET6, SOCK_DGRAM, 0);
-    if(fd < 0) {
-        snmp_log(LOG_ERR,"couldn't create socket\n");
-        return -2;
-    }
-    memset(&ifrq, 0, sizeof(ifrq));
-    ifrq.ifr6_ifindex = entry->if_index;
-    ifrq.ifr6_prefixlen = 64;
-
-    memcpy(&ifrq.ifr6_addr, entry->ia_address,
-           entry->ia_address_len);
-
-    rc = ioctl(fd, operation, &ifrq);
-    close(fd);
-    if(rc < 0) {
-        snmp_log(LOG_ERR,"error setting address: %s(%d)\n", strerror(errno), errno);
-        return -3;
-    }
-    DEBUGMSGT(("access:ipaddress:set", "_netsnmp_ioctl_ipaddress_set_v6 finished\n"));
-    return 0;
-#else
-    /* we don't support ipv6 on this platform (yet) */
-    return -3;
-#endif
-
-}
-
-/**
- *
- * @retval  0 : no error
- * @retval -1 : bad parameter
- * @retval -2 : couldn't create socket
- * @retval -3 : ioctl failed
- */
-int
-_netsnmp_ioctl_ipaddress_set_v6(netsnmp_ipaddress_entry * entry)
-{
-    return _netsnmp_ioctl_ipaddress_v6(entry, SIOCSIFADDR);
-}
-
-/**
- *
- * @retval  0 : no error
- * @retval -1 : bad parameter
- * @retval -2 : couldn't create socket
- * @retval -3 : ioctl failed
- */
-int
-_netsnmp_ioctl_ipaddress_delete_v6(netsnmp_ipaddress_entry * entry)
-{
-    return _netsnmp_ioctl_ipaddress_v6(entry, SIOCDIFADDR);
-}
-
 /**
  * get the interface count and populate the ifc_buf
  *
@@ -668,7 +517,7 @@ netsnmp_access_ipaddress_ioctl_get_interface_count(int sd, struct ifconf * ifc)
      */
 
     for (i = 8;; i *= 2) {
-        ifc->ifc_buf = (caddr_t)calloc(i, sizeof(struct ifreq));
+        ifc->ifc_buf = calloc(i, sizeof(struct ifreq));
         if (NULL == ifc->ifc_buf) {
             snmp_log(LOG_ERR, "could not allocate memory for %d interfaces\n",
                      i);
@@ -733,7 +582,7 @@ _print_flags(short flags)
         { IFF_AUTOMEDIA,   "auto media select active"},
     };
     short unknown = flags;
-    size_t i;
+    int i;
 
     for(i = 0; i < sizeof(map)/sizeof(map[0]); ++i)
         if(flags & map[i].flag) {
@@ -744,3 +593,4 @@ _print_flags(short flags)
     if(unknown)
         DEBUGMSGT_NC(("access:ipaddress:container","  unknown 0x%x\n", unknown));
 }
+
diff --git a/agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.h b/agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.h
index f2b7847..a7a0ea2 100644
--- a/agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.h
+++ b/agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.h
@@ -2,17 +2,6 @@
 extern          "C" {
 #endif
 
-/*
- * struct for netlink extras
- */
-struct address_flag_info {
-    int bcastflg;
-    int anycastflg;
-    in_addr_t addr;
-};
- 
-#define IS_APIPA(a)  (((in_addr_t)(a << 16)) == 0xFEA90000)
-
 int
 _netsnmp_ioctl_ipaddress_container_load_v4(netsnmp_container *container,
                                                   int idx_offset);
@@ -22,15 +11,8 @@ int
 _netsnmp_ioctl_ipaddress_remove_v4(netsnmp_ipaddress_entry * entry);
 
 int
-_netsnmp_ioctl_ipaddress_set_v6(netsnmp_ipaddress_entry * entry);
-int
-_netsnmp_ioctl_ipaddress_remove_v6(netsnmp_ipaddress_entry * entry);
-
-int
 netsnmp_access_ipaddress_ioctl_get_interface_count(int sd, struct ifconf * ifc);
 
-struct address_flag_info
-netsnmp_access_other_info_get(int index, int family);
 
 /*
  * struct ioctl for arch_data
@@ -55,8 +37,6 @@ netsnmp_ioctl_ipaddress_extras_get(netsnmp_ipaddress_entry *entry);
 
 int
 _netsnmp_ioctl_ipaddress_delete_v4(netsnmp_ipaddress_entry * entry);
-int
-_netsnmp_ioctl_ipaddress_delete_v6(netsnmp_ipaddress_entry * entry);
 
 #ifdef __cplusplus
 }
diff --git a/agent/mibgroup/ip-mib/data_access/ipaddress_linux.c b/agent/mibgroup/ip-mib/data_access/ipaddress_linux.c
index f1cef0a..dea1a52 100644
--- a/agent/mibgroup/ip-mib/data_access/ipaddress_linux.c
+++ b/agent/mibgroup/ip-mib/data_access/ipaddress_linux.c
@@ -1,10 +1,9 @@
 /*
  *  Interface MIB architecture support
  *
- * $Id$
+ * $Id: ipaddress_linux.c 18009 2010-01-21 14:55:34Z jsafranek $
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include "mibII/mibII_common.h"
 
@@ -13,45 +12,19 @@
 #include <net-snmp/data_access/interface.h>
 
 #include "ip-mib/ipAddressTable/ipAddressTable_constants.h"
-#include "ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_constants.h"
-#include "mibgroup/util_funcs.h"
 
 #include <errno.h>
 #include <sys/ioctl.h>
 
-netsnmp_feature_require(prefix_info)
-netsnmp_feature_require(find_prefix_info)
-
-netsnmp_feature_child_of(ipaddress_arch_entry_copy, ipaddress_common)
-
-#ifdef NETSNMP_FEATURE_REQUIRE_IPADDRESS_ARCH_ENTRY_COPY
-netsnmp_feature_require(ipaddress_ioctl_entry_copy)
-#endif /* NETSNMP_FEATURE_REQUIRE_IPADDRESS_ARCH_ENTRY_COPY */
-
 #if defined (NETSNMP_ENABLE_IPV6)
 #include <linux/types.h>
 #include <asm/types.h>
-#if defined(HAVE_LINUX_RTNETLINK_H)
-#include <linux/netlink.h>
 #include <linux/rtnetlink.h>
-#ifdef RTMGRP_IPV6_PREFIX
-#define SUPPORT_PREFIX_FLAGS 1
-#endif /* RTMGRP_IPV6_PREFIX */
-#endif /* HAVE_LINUX_RTNETLINK_H */
 #endif
 
 #include "ipaddress_ioctl.h"
-#ifdef SUPPORT_PREFIX_FLAGS
-extern prefix_cbx *prefix_head_list;
-#endif
+
 int _load_v6(netsnmp_container *container, int idx_offset);
-#ifdef HAVE_LINUX_RTNETLINK_H
-int
-netsnmp_access_ipaddress_extra_prefix_info(int index,
-                                           u_long *preferedlt,
-                                           ulong *validlt,
-                                           char *addr);
-#endif
 
 /*
  * initialize arch specific storage
@@ -93,7 +66,6 @@ netsnmp_arch_ipaddress_entry_cleanup(netsnmp_ipaddress_entry *entry)
      */
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESS_ARCH_ENTRY_COPY
 /*
  * copy arch specific storage
  */
@@ -117,7 +89,6 @@ netsnmp_arch_ipaddress_entry_copy(netsnmp_ipaddress_entry *lhs,
 
     return rc;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESS_ARCH_ENTRY_COPY */
 
 /*
  * create a new entry
@@ -128,14 +99,12 @@ netsnmp_arch_ipaddress_create(netsnmp_ipaddress_entry *entry)
     if (NULL == entry)
         return -1;
 
-    if (4 == entry->ia_address_len) {
-        return _netsnmp_ioctl_ipaddress_set_v4(entry);
-    } else if (16 == entry->ia_address_len) {
-        return _netsnmp_ioctl_ipaddress_set_v6(entry);
-    } else {
-        DEBUGMSGT(("access:ipaddress:create", "wrong length of IP address\n"));
+    if (4 != entry->ia_address_len) {
+        DEBUGMSGT(("access:ipaddress:create", "only ipv4 supported\n"));
         return -2;
     }
+
+    return _netsnmp_ioctl_ipaddress_set_v4(entry);
 }
 
 /*
@@ -147,14 +116,12 @@ netsnmp_arch_ipaddress_delete(netsnmp_ipaddress_entry *entry)
     if (NULL == entry)
         return -1;
 
-    if (4 == entry->ia_address_len) {
-        return _netsnmp_ioctl_ipaddress_delete_v4(entry);
-    } else if (16 == entry->ia_address_len) {
-        return _netsnmp_ioctl_ipaddress_delete_v6(entry);
-    } else {
+    if (4 != entry->ia_address_len) {
         DEBUGMSGT(("access:ipaddress:create", "only ipv4 supported\n"));
         return -2;
     }
+
+    return _netsnmp_ioctl_ipaddress_delete_v4(entry);
 }
 
 /**
@@ -212,12 +179,6 @@ netsnmp_arch_ipaddress_container_load(netsnmp_container *container,
 int
 _load_v6(netsnmp_container *container, int idx_offset)
 {
-#ifndef HAVE_LINUX_RTNETLINK_H
-    DEBUGMSGTL(("access:ipaddress:container",
-                "cannot get ip address information"
-                "as netlink socket is not available\n"));
-    return -1;
-#else
     FILE           *in;
     char            line[80], addr[40];
     char            if_name[IFNAMSIZ+1];/* +1 for '\0' because of the ugly sscanf below */ 
@@ -226,15 +187,24 @@ _load_v6(netsnmp_container *container, int idx_offset)
     size_t          in_len, out_len;
     netsnmp_ipaddress_entry *entry;
     _ioctl_extras           *extras;
-    struct address_flag_info addr_info;
+    static int      log_open_err = 1;
     
     netsnmp_assert(NULL != container);
 
 #define PROCFILE "/proc/net/if_inet6"
     if (!(in = fopen(PROCFILE, "r"))) {
-        DEBUGMSGTL(("access:ipaddress:container","could not open " PROCFILE "\n"));
+        if (1 == log_open_err) {
+            snmp_log(LOG_ERR,"could not open " PROCFILE "\n");
+            log_open_err = 0;
+        }
         return -2;
     }
+    /*
+     * if we hadn't been able to open file and turned of err logging,
+     * turn it back on now that we opened the file.
+     */
+    if (0 == log_open_err)
+        log_open_err = 1;
 
     /*
      * address index prefix_len scope status if_name
@@ -271,7 +241,6 @@ _load_v6(netsnmp_container *container, int idx_offset)
         in_len = entry->ia_address_len = sizeof(entry->ia_address);
         netsnmp_assert(16 == in_len);
         out_len = 0;
-        entry->flags = flags;
         buf = entry->ia_address;
         if(1 != netsnmp_hex_to_binary(&buf, &in_len,
                                       &out_len, 0, addr, ":")) {
@@ -299,8 +268,6 @@ _load_v6(netsnmp_container *container, int idx_offset)
          * every time it is called.
          */
         entry->if_index = netsnmp_access_interface_index_find(if_name);
-        memset(&addr_info, 0, sizeof(struct address_flag_info));
-        addr_info = netsnmp_access_other_info_get(entry->if_index, AF_INET6);
 
         /*
           #define IPADDRESSSTATUSTC_PREFERRED  1
@@ -311,12 +278,8 @@ _load_v6(netsnmp_container *container, int idx_offset)
           #define IPADDRESSSTATUSTC_TENTATIVE  6
           #define IPADDRESSSTATUSTC_DUPLICATE  7
         */
-        if((flags & IFA_F_PERMANENT) || (!flags))
-            entry->ia_status = IPADDRESSSTATUSTC_PREFERRED; /* ?? */
-#ifdef IFA_F_TEMPORARY
-        else if(flags & IFA_F_TEMPORARY)
+        if(flags & IFA_F_PERMANENT)
             entry->ia_status = IPADDRESSSTATUSTC_PREFERRED; /* ?? */
-#endif
         else if(flags & IFA_F_DEPRECATED)
             entry->ia_status = IPADDRESSSTATUSTC_DEPRECATED;
         else if(flags & IFA_F_TENTATIVE)
@@ -331,7 +294,7 @@ _load_v6(netsnmp_container *container, int idx_offset)
          * if it's not multi, it must be uni.
          *  (an ipv6 address is never broadcast)
          */
-        if(addr_info.anycastflg)
+        if (IN6_IS_ADDR_MULTICAST(entry->ia_address))
             entry->ia_type = IPADDRESSTYPE_ANYCAST;
         else
             entry->ia_type = IPADDRESSTYPE_UNICAST;
@@ -351,48 +314,13 @@ _load_v6(netsnmp_container *container, int idx_offset)
          *
          * are 'local' address assigned by link layer??
          */
-         if (!flags)
-             entry->ia_origin = IPADDRESSORIGINTC_LINKLAYER;
-#ifdef IFA_F_TEMPORARY
-         else if (flags & IFA_F_TEMPORARY)
-             entry->ia_origin = IPADDRESSORIGINTC_RANDOM;
-#endif
-         else if (IN6_IS_ADDR_LINKLOCAL(entry->ia_address))
-             entry->ia_origin = IPADDRESSORIGINTC_LINKLAYER;
-         else
-             entry->ia_origin = IPADDRESSORIGINTC_MANUAL;
-
-         if(entry->ia_origin == IPADDRESSORIGINTC_LINKLAYER)
-            entry->ia_storagetype = STORAGETYPE_PERMANENT;
+        if (IN6_IS_ADDR_LINKLOCAL(entry->ia_address) ||
+            IN6_IS_ADDR_SITELOCAL(entry->ia_address))
+            entry->ia_origin = IPADDRESSORIGINTC_LINKLAYER;
+        else
+            entry->ia_origin = IPADDRESSORIGINTC_MANUAL;
 
         /* xxx-rks: what can we do with scope? */
-#ifdef HAVE_LINUX_RTNETLINK_H
-        if(netsnmp_access_ipaddress_extra_prefix_info(entry->if_index, &entry->ia_prefered_lifetime
-                                                      ,&entry->ia_valid_lifetime, addr) < 0){
-           DEBUGMSGTL(("access:ipaddress:container", "unable to fetch extra prefix info\n"));
-        }
-#else
-        entry->ia_prefered_lifetime = 0;
-        entry->ia_valid_lifetime = 0;
-#endif
-#ifdef SUPPORT_PREFIX_FLAGS
-        {
-        prefix_cbx      prefix_val;
-        memset(&prefix_val, 0, sizeof(prefix_cbx));
-        if(net_snmp_find_prefix_info(&prefix_head_list, addr, &prefix_val) < 0) {
-           DEBUGMSGTL(("access:ipaddress:container", "unable to find info\n"));
-           entry->ia_onlink_flag = 1;  /*Set by default as true*/
-           entry->ia_autonomous_flag = 2; /*Set by default as false*/
-
-        } else {
-           entry->ia_onlink_flag = prefix_val.ipAddressPrefixOnLinkFlag; 
-           entry->ia_autonomous_flag = prefix_val.ipAddressPrefixAutonomousFlag;
-        }
-        }
-#else
-        entry->ia_onlink_flag = 1;  /*Set by default as true*/
-        entry->ia_autonomous_flag = 2; /*Set by default as false*/
-#endif
 
         /*
          * add entry to container
@@ -411,190 +339,4 @@ _load_v6(netsnmp_container *container, int idx_offset)
 
     return idx_offset;
 }
-
-struct address_flag_info
-netsnmp_access_other_info_get(int index, int family)
-{
-   struct {
-           struct nlmsghdr n;
-           struct ifaddrmsg r;
-           char   buf[1024];
-   } req;
-   struct address_flag_info addr;
-   struct rtattr    *rta;
-   int    status;
-   char   buf[16384];
-   struct nlmsghdr  *nlmp;
-   struct ifaddrmsg *rtmp;
-   struct rtattr    *rtatp;
-   int    rtattrlen;
-   int    sd;
-
-   memset(&addr, 0, sizeof(struct address_flag_info));
-   sd = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE);
-   if(sd < 0) {
-      snmp_log(LOG_ERR, "could not open netlink socket\n");
-      return addr;
-   }
-
-   memset(&req, 0, sizeof(req));
-   req.n.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifaddrmsg));
-   req.n.nlmsg_flags = NLM_F_REQUEST | NLM_F_ROOT;
-   req.n.nlmsg_type = RTM_GETADDR;
-   req.r.ifa_family = family;
-   rta = (struct rtattr *)(((char *)&req) + NLMSG_ALIGN(req.n.nlmsg_len));
-   if(family == AF_INET)
-      rta->rta_len = RTA_LENGTH(4);
-   else
-      rta->rta_len = RTA_LENGTH(16);
-
-    status = send(sd, &req, req.n.nlmsg_len, 0);
-    if (status < 0) {
-        snmp_log(LOG_ERR, "could not send netlink request\n");
-        return addr;
-    }
-
-    status = recv(sd, buf, sizeof(buf), 0);
-    if (status < 0) {
-        snmp_log (LOG_ERR, "could not recieve netlink request\n");
-        return addr;
-    }
-
-    if(status == 0) {
-       snmp_log (LOG_ERR, "nothing to read\n");
-       return addr;
-    }
-
-    for(nlmp = (struct nlmsghdr *)buf; status > sizeof(*nlmp);) {
-        int len = nlmp->nlmsg_len;
-        int req_len = len - sizeof(*nlmp);
-
-        if (req_len < 0 || len > status) {
-            snmp_log (LOG_ERR, "invalid netlink message\n");
-            return addr;
-        }
-
-        if (!NLMSG_OK(nlmp, status)) {
-            snmp_log (LOG_ERR, "invalid NLMSG message\n");
-            return addr;
-        }
-        rtmp = (struct ifaddrmsg *)NLMSG_DATA(nlmp);
-        rtatp = (struct rtattr *)IFA_RTA(rtmp);
-        rtattrlen = IFA_PAYLOAD(nlmp);
-        if(index == rtmp->ifa_index){
-           for (; RTA_OK(rtatp, rtattrlen); rtatp = RTA_NEXT(rtatp, rtattrlen)) {
-                if(rtatp->rta_type == IFA_BROADCAST){
-                   addr.addr = ((struct in_addr *)RTA_DATA(rtatp))->s_addr;
-                   addr.bcastflg = 1;
-                }
-                if(rtatp->rta_type == IFA_ANYCAST){
-                   addr.addr = ((struct in_addr *)RTA_DATA(rtatp))->s_addr;
-                   addr.anycastflg = 1;
-                }
-           }
-        }
-        status -= NLMSG_ALIGN(len);
-        nlmp = (struct nlmsghdr*)((char*)nlmp + NLMSG_ALIGN(len));
-    }
-    close(sd);
-    return addr;
-#endif
-}
-
-#ifdef HAVE_LINUX_RTNETLINK_H
-int
-netsnmp_access_ipaddress_extra_prefix_info(int index, u_long *preferedlt,
-                                           ulong *validlt, char *addr)
-{
-
-    struct {
-            struct nlmsghdr nlhdr;
-            struct ifaddrmsg ifaceinfo;
-            char   buf[1024];
-    } req;
-
-    struct rtattr        *rta;
-    int                  status;
-    char                 buf[16384];
-    char                 tmpaddr[40];
-    struct nlmsghdr      *nlmp;
-    struct ifaddrmsg     *rtmp;
-    struct rtattr        *rtatp;
-    struct ifa_cacheinfo *cache_info;
-    struct in6_addr      *in6p;
-    int                  rtattrlen;
-    int                  sd;
-    int                  reqaddr = 0;
-    sd = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE);
-    if(sd < 0) {
-       snmp_log(LOG_ERR, "could not open netlink socket\n");
-       return -1;
-    }
-    memset(&req, 0, sizeof(req));
-    req.nlhdr.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifaddrmsg));
-    req.nlhdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_ROOT;
-    req.nlhdr.nlmsg_type = RTM_GETADDR;
-    req.ifaceinfo.ifa_family = AF_INET6;
-    rta = (struct rtattr *)(((char *)&req) + NLMSG_ALIGN(req.nlhdr.nlmsg_len));
-    rta->rta_len = RTA_LENGTH(16); /*For ipv6*/
-
-    status = send (sd, &req, req.nlhdr.nlmsg_len, 0);
-    if (status < 0) {
-        snmp_log(LOG_ERR, "could not send netlink request\n");
-        return -1;
-    }
-    status = recv (sd, buf, sizeof(buf), 0);
-    if (status < 0) {
-        snmp_log (LOG_ERR, "could not recieve netlink request\n");
-        return -1;
-    }
-    if (status == 0) {
-       snmp_log (LOG_ERR, "nothing to read\n");
-       return -1;
-    }
-    for (nlmp = (struct nlmsghdr *)buf; status > sizeof(*nlmp); ){
-
-        int len = nlmp->nlmsg_len;
-        int req_len = len - sizeof(*nlmp);
-
-        if (req_len < 0 || len > status) {
-            snmp_log (LOG_ERR, "invalid netlink message\n");
-            return -1;
-        }
-
-        if (!NLMSG_OK (nlmp, status)) {
-            snmp_log (LOG_ERR, "invalid NLMSG message\n");
-            return -1;
-        }
-        rtmp = (struct ifaddrmsg *)NLMSG_DATA(nlmp);
-        rtatp = (struct rtattr *)IFA_RTA(rtmp);
-        rtattrlen = IFA_PAYLOAD(nlmp);
-        if(index == rtmp->ifa_index) {
-           for (; RTA_OK(rtatp, rtattrlen); rtatp = RTA_NEXT(rtatp, rtattrlen)) {
-                if(rtatp->rta_type == IFA_ADDRESS) {
-                   in6p = (struct in6_addr *)RTA_DATA(rtatp);
-                   sprintf(tmpaddr, "%04x%04x%04x%04x%04x%04x%04x%04x", NIP6(*in6p));
-                   if(!strcmp(tmpaddr ,addr))
-                       reqaddr = 1;
-                }
-                if(rtatp->rta_type == IFA_CACHEINFO) {
-                   cache_info = (struct ifa_cacheinfo *)RTA_DATA(rtatp);
-                   if(reqaddr) {
-                      reqaddr = 0;
-                      *validlt = cache_info->ifa_valid;
-                      *preferedlt = cache_info->ifa_prefered;
-                   }
-
-                }
-
-           }
-        }
-        status -= NLMSG_ALIGN(len);
-        nlmp = (struct nlmsghdr*)((char*)nlmp + NLMSG_ALIGN(len));
-    }
-    close(sd);
-    return 0;
-}
-#endif
 #endif
-
diff --git a/agent/mibgroup/ip-mib/data_access/ipaddress_linux.h b/agent/mibgroup/ip-mib/data_access/ipaddress_linux.h
index 600ceaf..ab46955 100644
--- a/agent/mibgroup/ip-mib/data_access/ipaddress_linux.h
+++ b/agent/mibgroup/ip-mib/data_access/ipaddress_linux.h
@@ -1,7 +1,7 @@
 /*
  * ipaddress data access header
  *
- * $Id$
+ * $Id: ipaddress_linux.h 13371 2005-11-02 17:07:28Z rstory $
  */
 /**---------------------------------------------------------------------*/
 /*
@@ -17,5 +17,6 @@
  *    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
deleted file mode 100644
index e2485e3..0000000
--- a/agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- *  IP-MIB architecture support
- *
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.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/interface.h>
-
-#include "ip-mib/ipAddressTable/ipAddressTable_constants.h"
-
-#include "kernel_sunos5.h"
-#include "mibII/mibII_common.h"
-
-netsnmp_feature_child_of(ipaddress_arch_entry_copy, ipaddress_common)
-
-static int _load_v4(netsnmp_container *container, int idx_offset);
-#if defined( NETSNMP_ENABLE_IPV6 )
-static int _load_v6(netsnmp_container *container, int idx_offset);
-#endif
-
-/*
- * initialize arch specific storage
- *
- * @retval  0: success
- * @retval <0: error
- */
-int
-netsnmp_arch_ipaddress_entry_init(netsnmp_ipaddress_entry *entry)
-{
-    init_kernel_sunos5();
-    return 0;
-}
-
-/*
- * cleanup arch specific storage
- */
-void
-netsnmp_arch_ipaddress_entry_cleanup(netsnmp_ipaddress_entry *entry)
-{
-    /*
-     * Nothing to do.
-     */
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESS_ARCH_ENTRY_COPY
-/*
- * copy arch specific storage
- */
-int
-netsnmp_arch_ipaddress_entry_copy(netsnmp_ipaddress_entry *lhs,
-                                  netsnmp_ipaddress_entry *rhs)
-{
-    /*
-     * Nothing to do. 
-     */
-    return 0;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESS_ARCH_ENTRY_COPY */
-
-/*
- * create a new entry
- */
-int
-netsnmp_arch_ipaddress_create(netsnmp_ipaddress_entry *entry)
-{
-    if (NULL == entry)
-        return -1;
-
-    DEBUGMSGT(("access:ipaddress:create", "not applicable\n"));
-        return 0;
-}
-
-/*
- * delete an entry
- */
-int
-netsnmp_arch_ipaddress_delete(netsnmp_ipaddress_entry *entry)
-{
-    if (NULL == entry)
-        return -1;
-
-    DEBUGMSGT(("access:ipaddress:create", "not applicable\n"));
-    return 0;
-}
-
-/**
- *
- * @retval  0 no errors
- * @retval !0 errors
- */
-int
-netsnmp_arch_ipaddress_container_load(netsnmp_container *container,
-                                      u_int load_flags)
-{
-    int rc = 0, idx_offset = 0;
-
-    if (!(load_flags & NETSNMP_ACCESS_IPADDRESS_LOAD_IPV6_ONLY)) {
-        rc = _load_v4(container, idx_offset);
-        if(rc < 0) {
-            u_int flags = NETSNMP_ACCESS_IPADDRESS_FREE_KEEP_CONTAINER;
-            netsnmp_access_ipaddress_container_free(container, flags);
-        }
-    }
-
-#if defined( NETSNMP_ENABLE_IPV6 )
-
-    if (!(load_flags & NETSNMP_ACCESS_IPADDRESS_LOAD_IPV4_ONLY)) {
-        if (rc < 0)
-            rc = 0;
-
-        idx_offset = rc;
-
-        rc = _load_v6(container, idx_offset);
-        if(rc < 0) {
-            u_int flags = NETSNMP_ACCESS_IPADDRESS_FREE_KEEP_CONTAINER;
-            netsnmp_access_ipaddress_container_free(container, flags);
-        }
-    }
-#endif
-
-    /*
-     * return no errors (0) if we found any interfaces
-     */
-    if(rc > 0)
-        rc = 0;
-    return rc;
-}
-
-/*
- * @retval >=idx_offset ok
- * @retval -1 memory allocation error
- * @retval -2 interface lookup error
- * @retval -3 container error
- */
-static int
-_load_v4(netsnmp_container *container, int idx_offset)
-{
-    mib2_ipAddrEntry_t      ipae;
-    netsnmp_ipaddress_entry *entry;
-    req_e                   req = GET_FIRST;
-    int                     rc = 0;
-
-    DEBUGMSGTL(("access:ipaddress:container", "loading v4\n"));
-    while ((rc = getMibstat(MIB_IP_ADDR, &ipae, sizeof(ipae), req,
-                            &Get_everything, NULL)) == 0) {
-        req = GET_NEXT;
-        entry = netsnmp_access_ipaddress_entry_create();
-        if (entry == NULL)
-            return (-1);    
-        if (ipae.ipAdEntAddr == INADDR_ANY)
-            continue;
-
-        ipae.ipAdEntIfIndex.o_bytes[ipae.ipAdEntIfIndex.o_length] = '\0';
-        DEBUGMSGTL(("access:ipaddress:container", "found if %s\n",
-                    ipae.ipAdEntIfIndex.o_bytes));
-        /* Obtain interface index */
-        entry->if_index = 
-            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.o_bytes));
-            netsnmp_access_ipaddress_entry_free(entry);
-            return (-2);    
-        }
-
-        if (strchr((const char *)&ipae.ipAdEntIfIndex.o_bytes, ':') != 0)
-            entry->flags |= NETSNMP_ACCESS_IPADDRESS_ISALIAS;
-
-        /* Get the address */
-        entry->ia_address_len = sizeof(ipae.ipAdEntAddr);
-        netsnmp_assert(entry->ia_address_len == 4 &&
-            entry->ia_address_len <= sizeof(entry->ia_address));
-        memcpy(&entry->ia_address, &ipae.ipAdEntAddr, entry->ia_address_len);
-
-        /* prefix */
-        entry->ia_prefix_len = ipae.ipAdEntInfo.ae_subnet_len;
-
-        /* set the Origin */
-        if (ipae.ipAdEntInfo.ae_flags & IFF_DHCPRUNNING)
-            entry->ia_origin = IPADDRESSORIGINTC_DHCP;
-        else
-            entry->ia_origin = IPADDRESSORIGINTC_MANUAL;
-
-        /* set ipv4 constants */
-        entry->ia_type = IPADDRESSTYPE_UNICAST;
-        entry->ia_status = IPADDRESSSTATUSTC_PREFERRED;
-
-        entry->ns_ia_index = ++idx_offset;
-
-        DEBUGMSGTL(("access:ipaddress:container", "insert if %" NETSNMP_PRIo "u, addrlen %d\n", 
-                    entry->if_index, entry->ia_address_len));
-
-        if (CONTAINER_INSERT(container, entry) < 0) {
-            DEBUGMSGTL(("access:ipaddress:container", "unable to insert %s\n", 
-                        ipae.ipAdEntIfIndex.o_bytes));
-            netsnmp_access_ipaddress_entry_free(entry);
-            return (-3);
-        }
-    }
-    return (idx_offset);
-}
-
-/*
- * @retval >=idx_offset ok
- * @retval -1 memory allocation error
- * @retval -2 interface lookup error
- * @retval -3 container error
- */
-#if defined( NETSNMP_ENABLE_IPV6 )
-static int
-_load_v6(netsnmp_container *container, int idx_offset)
-{
-    mib2_ipv6AddrEntry_t    ip6ae;
-    netsnmp_ipaddress_entry *entry;
-    req_e                   req = GET_FIRST;
-    int                     rc = 0;
-
-    DEBUGMSGTL(("access:ipaddress:container", "loading v6... cache %d\n",
-                MIB_IP6_ADDR));
-    while ((rc = getMibstat(MIB_IP6_ADDR, &ip6ae, sizeof(ip6ae), req,
-                            &Get_everything, NULL)) == 0) {
-        req = GET_NEXT;
-        entry = netsnmp_access_ipaddress_entry_create();
-        if (entry == NULL)
-            return (-1);    
-        if (memcmp((const void *)&ip6ae.ipv6AddrAddress,
-                   (const void *)&in6addr_any,
-                   sizeof (ip6ae.ipv6AddrAddress)) == 0)
-            continue;
-
-        ip6ae.ipv6AddrIfIndex.o_bytes[ip6ae.ipv6AddrIfIndex.o_length] = '\0';
-        DEBUGMSGTL(("access:ipaddress:container", "found if %s\n",
-                    ip6ae.ipv6AddrIfIndex.o_bytes));
-
-        /* Obtain interface index */
-        entry->if_index = 
-            netsnmp_access_interface_index_find(
-            ip6ae.ipv6AddrIfIndex.o_bytes);
-        if (entry->if_index == 0) {
-            DEBUGMSGTL(("access:ipaddress:container", "cannot find if %s\n", 
-                        ip6ae.ipv6AddrIfIndex.o_bytes));
-            netsnmp_access_ipaddress_entry_free(entry);
-            return (-2);    
-        }
-
-        /* Get the address */
-        entry->ia_address_len = sizeof(ip6ae.ipv6AddrAddress);
-        netsnmp_assert(entry->ia_address_len == 16 &&
-                       entry->ia_address_len <= sizeof(entry->ia_address));
-        memcpy(&entry->ia_address, &ip6ae.ipv6AddrAddress, 
-               entry->ia_address_len);
-               
-        /* prefix */
-        entry->ia_prefix_len = ip6ae.ipv6AddrPfxLength;
-
-        /* type is anycast? (mib2.h: 1 = yes, 2 = no) */
-        entry->ia_type = (ip6ae.ipv6AddrAnycastFlag == 1) ? 
-            IPADDRESSTYPE_ANYCAST : IPADDRESSTYPE_UNICAST;
-
-        /* origin (mib2.h: 1 = stateless, 2 = stateful, 3 = unknown) */
-        DEBUGMSGTL(("access:ipaddress:container", "origin %d\n", 
-                        ip6ae.ipv6AddrType));
-        if (ip6ae.ipv6AddrType == 1)
-            entry->ia_origin = IPADDRESSORIGINTC_LINKLAYER;
-        else if (ip6ae.ipv6AddrInfo.ae_flags & IFF_DHCPRUNNING)
-            entry->ia_origin = IPADDRESSORIGINTC_DHCP;
-        else
-            entry->ia_origin = IPADDRESSORIGINTC_MANUAL;
-        
-        /* status */
-        entry->ia_status = ip6ae.ipv6AddrStatus;
-
-        entry->ns_ia_index = ++idx_offset;
-        
-        DEBUGMSGTL(("access:ipaddress:container", "insert if %" NETSNMP_PRIo "u, addrlen %d\n", 
-                    entry->if_index, entry->ia_address_len));
-
-        if (CONTAINER_INSERT(container, entry) < 0) {
-            DEBUGMSGTL(("access:ipaddress:container", "unable to insert %s\n", 
-                        ip6ae.ipv6AddrIfIndex.o_bytes));
-            netsnmp_access_ipaddress_entry_free(entry);
-            return (-3);
-        }
-    }    
-    return (idx_offset);
-}
-#endif /* defined( NETSNMP_ENABLE_IPV6 ) */
diff --git a/agent/mibgroup/ip-mib/data_access/ipv6scopezone.h b/agent/mibgroup/ip-mib/data_access/ipv6scopezone.h
deleted file mode 100644
index 8d81b3f..0000000
--- a/agent/mibgroup/ip-mib/data_access/ipv6scopezone.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * scopezone data access header
- *
- * $Id: ipv6scopezone.h 14170 2007-04-29 02:22:12Z varun_c $
- */
-/**---------------------------------------------------------------------*/
-/*
- * configure required files
- *
- * Notes:
- *
- * 1) prefer functionality over platform, where possible. If a method
- *    is available for multiple platforms, test that first. That way
- *    when a new platform is ported, it won't need a new test here.
- *
- * 2) don't do detail requirements here. If, for example,
- *    HPUX11 had different reuirements than other HPUX, that should
- *    be handled in the *_hpux.h header file.
- */
-config_require(ip-mib/data_access/ipv6scopezone_common)
-#if defined( linux )
-config_require(ip-mib/data_access/ipv6scopezone_linux)
-#else
-/*
- * couldn't determine the correct file!
- * require a bogus file to generate an error.
- */
-config_require(ip-mib/data_access/ipv6scopezone-unknown-arch);
-#endif
-
diff --git a/agent/mibgroup/ip-mib/data_access/ipv6scopezone_common.c b/agent/mibgroup/ip-mib/data_access/ipv6scopezone_common.c
deleted file mode 100644
index 7462ebe..0000000
--- a/agent/mibgroup/ip-mib/data_access/ipv6scopezone_common.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- *  ipv6ScopeIndexTable MIB architecture support
- *
- * $Id: ipv6scopezone_common.c 14170 2007-04-29 02:22:12Z varun_c $
- */
-#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/scopezone.h>
-/*
- * local static prototypes
- */
-static void _entry_release(netsnmp_v6scopezone_entry * entry, void *unused);
-
-
-/**---------------------------------------------------------------------*/
-/*
- * external per-architecture functions prototypes
- *
- * These shouldn't be called by the general public, so they aren't in
- * the header file.
- */
-extern int
-netsnmp_access_scopezone_container_arch_load(netsnmp_container* container,
-                                             u_int load_flags);
-extern void
-netsnmp_access_scopezone_arch_init(void);
-
-/**
- * initialize systemstats container
- */
-netsnmp_container *
-netsnmp_access_scopezone_container_init(u_int flags)
-{
-    netsnmp_container *container;
-
-    DEBUGMSGTL(("access:scopezone:container", "init\n"));
-    /*
-     * create the containers. one indexed by ifIndex, the other
-     * indexed by ifName.
-     */
-    container = netsnmp_container_find("access_scopezone:table_container");
-    if (NULL == container)
-        return NULL;
-
-    return container;
-}
-
-/**
- * load scopezone information in specified container
- *
- * @param container empty container, or NULL to have one created for you
- * @param load_flags flags to modify behaviour.
- *
- * @retval NULL  error
- * @retval !NULL pointer to container
- */
-netsnmp_container*
-netsnmp_access_scopezone_container_load(netsnmp_container* container, u_int load_flags)
-{
-    int rc;
-
-    DEBUGMSGTL(("access:scopezone:container", "load\n"));
-
-    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;
-    }
-
-    rc =  netsnmp_access_scopezone_container_arch_load(container, load_flags);
-    if (0 != rc) {
-        netsnmp_access_scopezone_container_free(container,
-                                                NETSNMP_ACCESS_SCOPEZONE_FREE_NOFLAGS);
-        container = NULL;
-    }
-
-    return container;
-}
-
-void
-netsnmp_access_scopezone_container_free(netsnmp_container *container, u_int free_flags)
-{
-    DEBUGMSGTL(("access:scopezone:container", "free\n"));
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR, "invalid container for netsnmp_access_scopezone_free\n");
-        return;
-    }
-
-    if(! (free_flags & NETSNMP_ACCESS_SCOPEZONE_FREE_DONT_CLEAR)) {
-        /*
-         * free all items.
-         */
-        CONTAINER_CLEAR(container,
-                        (netsnmp_container_obj_func*)_entry_release,
-                        NULL);
-    }
-
-    CONTAINER_FREE(container);
-}
-
-/**
- */
-netsnmp_v6scopezone_entry *
-netsnmp_access_scopezone_entry_create(void)
-{
-    netsnmp_v6scopezone_entry *entry =
-        SNMP_MALLOC_TYPEDEF(netsnmp_v6scopezone_entry);
-
-    DEBUGMSGTL(("access:scopezone:entry", "create\n"));
-
-    if(NULL == entry)
-        return NULL;
-
-
-    entry->oid_index.len = 1;
-    entry->oid_index.oids =  &entry->ns_scopezone_index;
-
-    return entry;
-}
-
-/**
- */
-void
-netsnmp_access_scopezone_entry_free(netsnmp_v6scopezone_entry * entry)
-{
-    DEBUGMSGTL(("access:scopezone:entry", "free\n"));
-
-    if (NULL == entry)
-        return;
-
-
-    free(entry);
-}
-
-/**---------------------------------------------------------------------*/
-/*
- * Utility routines
- */
-
-/**
- * \internal
- */
-static void
-_entry_release(netsnmp_v6scopezone_entry * entry, void *context)
-{
-    netsnmp_access_scopezone_entry_free(entry);
-}
-
diff --git a/agent/mibgroup/ip-mib/data_access/ipv6scopezone_linux.c b/agent/mibgroup/ip-mib/data_access/ipv6scopezone_linux.c
deleted file mode 100644
index 7d60641..0000000
--- a/agent/mibgroup/ip-mib/data_access/ipv6scopezone_linux.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- *  Interface MIB architecture support
- *
- * $Id: ipv6scopezone_linux.c 14170 2007-04-29 02:22:12Z varun_c $
- */
-#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/scopezone.h>
-
-#if defined (NETSNMP_ENABLE_IPV6)
-static int _scopezone_v6(netsnmp_container* container, int idx_offset);
-#endif
-
-/*
- *
- * @retval  0 success
- * @retval -1 no container specified
- * @retval -2 could not open file
- * @retval -3 could not create entry (probably malloc)
- * @retval -4 file format error
- */
-int
-netsnmp_access_scopezone_container_arch_load(netsnmp_container* container,
-                                             u_int load_flags)
-{
-    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");
-        return -1;
-    }
-
-    rc1 = _scopezone_v6(container, idx_offset);
-#endif
-    if(rc1 > 0)
-        rc1 = 0;
-    return rc1;
-}
-
-#if defined (NETSNMP_ENABLE_IPV6)
-
-/* scope identifiers, from kernel - include/net/ipv6.h */
-#define IPV6_ADDR_LOOPBACK      0x0010U
-#define IPV6_ADDR_LINKLOCAL     0x0020U
-#define IPV6_ADDR_SITELOCAL     0x0040U
-
-static int
-_scopezone_v6(netsnmp_container* container, int idx_offset)
-{
-
-    /*
-     * On Linux, we support only link-local scope zones.
-     * Each interface, which has link-local address, gets unique scope
-     * zone index.
-     */
-    FILE           *in;
-    char            line[80], addr[40];
-    int             if_index, pfx_len, scope, flags, rc = 0;
-    int             last_if_index = -1;
-    netsnmp_v6scopezone_entry *entry;
-    
-    netsnmp_assert(NULL != container);
-
-#define PROCFILE "/proc/net/if_inet6"
-    if (!(in = fopen(PROCFILE, "r"))) {
-        DEBUGMSGTL(("access:scopezone:container","could not open " PROCFILE "\n"));
-        return -2;
-    }
-    
-    /*
-     * address index prefix_len scope status if_name
-     */
-    while (fgets(line, sizeof(line), in)) {
-        /*
-         * fe800000000000000200e8fffe5b5c93 05 40 20 80 eth0
-         *             A                    D  P  S  F  I
-         * A: address
-         * D: device number
-         * P: prefix len
-         * S: scope (see include/net/ipv6.h, net/ipv6/addrconf.c)
-         * F: flags (see include/linux/rtnetlink.h, net/ipv6/addrconf.c)
-         * I: interface
-         */
-        rc = sscanf(line, "%39s %04x %02x %02x %02x\n",
-                    addr, &if_index, &pfx_len, &scope, &flags);
-        if( 5 != rc ) {
-            snmp_log(LOG_ERR, PROCFILE " data format error (%d!=5), line ==|%s|\n",
-                     rc, line);
-            continue;
-        }
-        DEBUGMSGTL(("access:scopezone:container",
-                    "addr %s, index %d, pfx %d, scope %d, flags 0x%X\n",
-                    addr, if_index, pfx_len, scope, flags));
-
-        if (! (scope & IPV6_ADDR_LINKLOCAL)) {
-            DEBUGMSGTL(("access:scopezone:container", 
-                        "The address is not link-local, skipping\n"));
-            continue;
-        }
-        /* 
-         * Check that the interface was not inserted before, just in case
-         * one interface has two or more link-local addresses.
-         */
-        if (last_if_index == if_index) {
-            DEBUGMSGTL(("access:scopezone:container", 
-                        "The interface was already inserted, skipping\n"));
-            continue;
-        }
-
-        last_if_index = if_index; 
-        entry = netsnmp_access_scopezone_entry_create();
-        if(NULL == entry) {
-            rc = -3;
-            break;
-        }
-        entry->ns_scopezone_index = ++idx_offset;
-        entry->index = if_index;
-        entry->scopezone_linklocal = if_index;
- 
-        CONTAINER_INSERT(container, entry);
-    }
-    fclose(in);
-    if(rc<0)
-        return rc;
-
-    return idx_offset;
-}
-#endif 
diff --git a/agent/mibgroup/ip-mib/data_access/scalars_common.h b/agent/mibgroup/ip-mib/data_access/scalars_common.h
index 2f0a63a..0404bd5 100644
--- a/agent/mibgroup/ip-mib/data_access/scalars_common.h
+++ b/agent/mibgroup/ip-mib/data_access/scalars_common.h
@@ -1,7 +1,7 @@
 /*
  * ip scalar data access header
  *
- * $Id$
+ * $Id: scalars_common.h 13271 2005-10-28 15:29:23Z rstory $
  */
 /**---------------------------------------------------------------------*/
 /*
diff --git a/agent/mibgroup/ip-mib/data_access/scalars_linux.c b/agent/mibgroup/ip-mib/data_access/scalars_linux.c
index 6ba356b..aedcd8b 100644
--- a/agent/mibgroup/ip-mib/data_access/scalars_linux.c
+++ b/agent/mibgroup/ip-mib/data_access/scalars_linux.c
@@ -1,83 +1,14 @@
 /*
  *  Arp MIB architecture support
  *
- * $Id$
+ * $Id: scalars_linux.c 16965 2008-05-25 07:14:16Z magfr $
  */
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
 
 #include <net-snmp/data_access/ip_scalars.h>
 
-static const char ipfw_name[] = "/proc/sys/net/ipv4/conf/all/forwarding";
-static const char ipfw6_name[] = "/proc/sys/net/ipv6/conf/all/forwarding";
-
-int
-netsnmp_arch_ip_scalars_ipForwarding_get(u_long *value)
-{
-    FILE *filep;
-    int rc;
-
-    if (NULL == value)
-        return -1;
-
-
-    filep = fopen(ipfw_name, "r");
-    if (NULL == filep) {
-        DEBUGMSGTL(("access:ipForwarding", "could not open %s\n",
-                    ipfw_name));
-        return -2;
-    }
-
-    rc = fscanf(filep, "%lu", value);
-    fclose(filep);
-    if (1 != rc) {
-        DEBUGMSGTL(("access:ipForwarding", "could not read %s\n",
-                    ipfw_name));
-        return -3;
-    }
-
-    if ((0 != *value) && (1 != *value)) {
-        DEBUGMSGTL(("access:ipForwarding", "unexpected value %ld in %s\n",
-                    *value, ipfw_name));
-        return -4;
-    }
-
-    return 0;
-}
-
-int
-netsnmp_arch_ip_scalars_ipForwarding_set(u_long value)
-{
-    FILE *filep;
-    int rc;
-
-    if (1 == value)
-        ;
-    else if (2 == value)
-        value = 0;
-    else {
-        DEBUGMSGTL(("access:ipForwarding", "bad value %ld for %s\n",
-                    value, ipfw_name));
-        return SNMP_ERR_WRONGVALUE;
-    }
-
-    filep = fopen(ipfw_name, "w");
-    if (NULL == filep) {
-        DEBUGMSGTL(("access:ipForwarding", "could not open %s\n",
-                    ipfw_name));
-        return SNMP_ERR_RESOURCEUNAVAILABLE;
-    }
-
-    rc = fprintf(filep, "%ld", value);
-    fclose(filep);
-    if (1 != rc) {
-        DEBUGMSGTL(("access:ipForwarding", "could not write %s\n",
-                    ipfw_name));
-        return SNMP_ERR_GENERR;
-    }
-
-    return 0;
-}
+static const char ipfw_name[] = "/proc/sys/net/ipv6/conf/all/forwarding";
 
 int
 netsnmp_arch_ip_scalars_ipv6IpForwarding_get(u_long *value)
@@ -89,24 +20,24 @@ netsnmp_arch_ip_scalars_ipv6IpForwarding_get(u_long *value)
         return -1;
 
 
-    filep = fopen(ipfw6_name, "r");
+    filep = fopen(ipfw_name, "r");
     if (NULL == filep) {
         DEBUGMSGTL(("access:ipv6IpForwarding", "could not open %s\n",
-                    ipfw6_name));
+                    ipfw_name));
         return -2;
     }
 
-    rc = fscanf(filep, "%lu", value);
+    rc = fscanf(filep, "%ld", value);
     fclose(filep);
     if (1 != rc) {
         DEBUGMSGTL(("access:ipv6IpForwarding", "could not read %s\n",
-                    ipfw6_name));
+                    ipfw_name));
         return -3;
     }
 
     if ((0 != *value) && (1 != *value)) {
         DEBUGMSGTL(("access:ipv6IpForwarding", "unexpected value %ld in %s\n",
-                    *value, ipfw6_name));
+                    *value, ipfw_name));
         return -4;
     }
 
@@ -129,10 +60,10 @@ netsnmp_arch_ip_scalars_ipv6IpForwarding_set(u_long value)
         return SNMP_ERR_WRONGVALUE;
     }
 
-    filep = fopen(ipfw6_name, "w");
+    filep = fopen(ipfw_name, "w");
     if (NULL == filep) {
         DEBUGMSGTL(("access:ipv6IpForwarding", "could not open %s\n",
-                    ipfw6_name));
+                    ipfw_name));
         return SNMP_ERR_RESOURCEUNAVAILABLE;
     }
 
@@ -140,7 +71,7 @@ netsnmp_arch_ip_scalars_ipv6IpForwarding_set(u_long value)
     fclose(filep);
     if (1 != rc) {
         DEBUGMSGTL(("access:ipv6IpForwarding", "could not write %s\n",
-                    ipfw6_name));
+                    ipfw_name));
         return SNMP_ERR_GENERR;
     }
 
diff --git a/agent/mibgroup/ip-mib/data_access/systemstats.h b/agent/mibgroup/ip-mib/data_access/systemstats.h
index 28810e3..84ca0c8 100644
--- a/agent/mibgroup/ip-mib/data_access/systemstats.h
+++ b/agent/mibgroup/ip-mib/data_access/systemstats.h
@@ -1,7 +1,7 @@
 /*
  * systemstats data access header
  *
- * $Id$
+ * $Id: systemstats.h 13271 2005-10-28 15:29:23Z rstory $
  */
 /**---------------------------------------------------------------------*/
 /*
@@ -20,8 +20,11 @@
 config_require(ip-mib/data_access/systemstats_common)
 #if defined( linux )
 config_require(ip-mib/data_access/systemstats_linux)
-#elif defined( solaris2 )
-config_require(ip-mib/data_access/systemstats_solaris2)
 #else
-config_error(the systemstats data access library is not available in this environment.)
+/*
+ * couldn't determine the correct file!
+ * require a bogus file to generate an error.
+ */
+config_require(ip-mib/data_access/systemstats-unknown-arch);
 #endif
+
diff --git a/agent/mibgroup/ip-mib/data_access/systemstats_common.c b/agent/mibgroup/ip-mib/data_access/systemstats_common.c
index f60caab..786bedc 100644
--- a/agent/mibgroup/ip-mib/data_access/systemstats_common.c
+++ b/agent/mibgroup/ip-mib/data_access/systemstats_common.c
@@ -1,7 +1,7 @@
 /*
- *  ipSystemStatsTable and ipIfStatsTable MIB architecture support
+ *  Systemstats MIB architecture support
  *
- * $Id$
+ * $Id: systemstats_common.c 17714 2009-08-04 10:57:52Z jsafranek $
  */
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
@@ -96,11 +96,8 @@ netsnmp_access_systemstats_container_load(netsnmp_container* container, u_int lo
 
     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;
@@ -166,8 +163,7 @@ netsnmp_access_systemstats_entry_get_by_index(netsnmp_container *container, oid
 /**
  */
 netsnmp_systemstats_entry *
-netsnmp_access_systemstats_entry_create(int version, int if_index,
-        const char *tableName)
+netsnmp_access_systemstats_entry_create(int version)
 {
     netsnmp_systemstats_entry *entry =
         SNMP_MALLOC_TYPEDEF(netsnmp_systemstats_entry);
@@ -177,11 +173,11 @@ netsnmp_access_systemstats_entry_create(int version, int if_index,
     if(NULL == entry)
         return NULL;
 
-    entry->oid_index.len = 2;
-    entry->oid_index.oids = entry->index;
-    entry->index[0] = version;
-    entry->index[1] = if_index;
-    entry->tableName = tableName;
+    entry->ns_ip_version = version;
+
+    entry->oid_index.len = 1;
+    entry->oid_index.oids = (oid *) & entry->ns_ip_version;
+
     return entry;
 }
 
@@ -221,62 +217,6 @@ _entry_release(netsnmp_systemstats_entry * entry, void *context)
     netsnmp_access_systemstats_entry_free(entry);
 }
 
-/*
- * Calculates the entries, which are not provided by OS, but can be 
- * computed from the others.
- */
-static void
-_calculate_entries(netsnmp_systemstats_entry * entry)
-{
-    /*
-     * HCInForwDatagrams = HCInNoRoutes + HCOutForwDatagrams
-     */
-    if (!entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINFORWDATAGRAMS]
-        && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFORWDATAGRAMS]
-        && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINNOROUTES]) {
-        
-        entry->stats.HCInForwDatagrams = entry->stats.HCInNoRoutes;
-        u64Incr(&entry->stats.HCInForwDatagrams, &entry->stats.HCOutForwDatagrams);
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINFORWDATAGRAMS] = 1;
-    }
-
-    /*
-     * HCOutFragReqds = HCOutFragOKs + HCOutFragFails
-     */
-    if (!entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGREQDS]
-        && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGOKS]
-           && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGFAILS]) {
-        
-        entry->stats.HCOutFragReqds = entry->stats.HCOutFragOKs;
-        u64Incr(&entry->stats.HCOutFragReqds, &entry->stats.HCOutFragFails);
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGREQDS] = 1;
-    }
-    
-    /*
-     * HCOutTransmits = HCOutRequests  + HCOutForwDatagrams + HCOutFragCreates  
-     *                  - HCOutFragReqds - HCOutNoRoutes  - HCOutDiscards
-     */
-    if (!entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTTRANSMITS]
-        && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTREQUESTS]
-        && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFORWDATAGRAMS]
-           && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGREQDS]
-           && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTNOROUTES]
-           && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGCREATES]
-        && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTDISCARDS]) {
-
-        U64 tmp, tmp2, tmp3;
-        tmp = entry->stats.HCOutRequests;
-        u64Incr(&tmp, &entry->stats.HCOutForwDatagrams);
-        u64Incr(&tmp, &entry->stats.HCOutFragCreates);
-        
-        u64Subtract(&tmp, &entry->stats.HCOutFragReqds, &tmp2);
-        u64Subtract(&tmp2, &entry->stats.HCOutNoRoutes, &tmp3);
-        u64Subtract(&tmp3, &entry->stats.HCOutDiscards, &entry->stats.HCOutTransmits);
-                
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTTRANSMITS] = 1;
-    }
-}
-
 /**
  * update entry stats (checking for counter wrap)
  *
@@ -293,8 +233,7 @@ netsnmp_access_systemstats_entry_update_stats(netsnmp_systemstats_entry * prev_v
      * sanity checks
      */
     if ((NULL == prev_vals) || (NULL == new_vals) ||
-        (prev_vals->index[0] != new_vals->index[0])
-        || (prev_vals->index[1] != new_vals->index[1]))
+        (prev_vals->ns_ip_version != new_vals->ns_ip_version))
         return -1;
 
     /*
@@ -302,7 +241,6 @@ netsnmp_access_systemstats_entry_update_stats(netsnmp_systemstats_entry * prev_v
      */
     if (0 == need_wrap_check) {
         memcpy(&prev_vals->stats, &new_vals->stats, sizeof(new_vals->stats));
-        _calculate_entries(prev_vals);
         return 0;
     }
 
@@ -314,251 +252,101 @@ netsnmp_access_systemstats_entry_update_stats(netsnmp_systemstats_entry * prev_v
         if (NULL == prev_vals->old_stats) {
             return -2;
         }
-        memcpy(&prev_vals->stats, &new_vals->stats, sizeof(new_vals->stats));
     }
     else {
         /*
          * update straight 32 bit counters
          */
-        memcpy(&prev_vals->stats.columnAvail[0], &new_vals->stats.columnAvail[0], sizeof(new_vals->stats.columnAvail));
         prev_vals->stats.InHdrErrors = new_vals->stats.InHdrErrors;
+        prev_vals->stats.InNoRoutes = new_vals->stats.InNoRoutes;
         prev_vals->stats.InAddrErrors = new_vals->stats.InAddrErrors;
         prev_vals->stats.InUnknownProtos = new_vals->stats.InUnknownProtos;
         prev_vals->stats.InTruncatedPkts = new_vals->stats.InTruncatedPkts;
-        prev_vals->stats.ReasmReqds = new_vals->stats.ReasmReqds;
+        prev_vals->stats.ReasmReqds = new_vals->stats.InTruncatedPkts;
         prev_vals->stats.ReasmOKs = new_vals->stats.ReasmOKs;
         prev_vals->stats.ReasmFails = new_vals->stats.ReasmFails;
         prev_vals->stats.InDiscards = new_vals->stats.InDiscards;
+        prev_vals->stats.OutNoRoutes = new_vals->stats.OutNoRoutes;
+        prev_vals->stats.OutDiscards = new_vals->stats.OutDiscards;
+        prev_vals->stats.OutFragReqds = new_vals->stats.OutFragReqds;
+        prev_vals->stats.OutFragOKs = new_vals->stats.OutFragOKs;
+        prev_vals->stats.OutFragFails = new_vals->stats.OutFragFails;
+        prev_vals->stats.OutFragCreates = new_vals->stats.OutFragCreates;
 
         /*
          * update 64bit counters
          */
-        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))
-                DEBUGMSGTL(("access:systemstats",
-                        "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))
-                DEBUGMSGTL(("access:systemstats",
-                        "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))
-                DEBUGMSGTL(("access:systemstats",
-                        "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))
-                DEBUGMSGTL(("access:systemstats",
-                        "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))
-                DEBUGMSGTL(("access:systemstats",
-                        "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))
-                DEBUGMSGTL(("access:systemstats",
-                        "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))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInReceives,
                                        &new_vals->stats.HCInReceives,
                                        &prev_vals->old_stats->HCInReceives,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInOctets,
                                        &new_vals->stats.HCInOctets,
                                        &prev_vals->old_stats->HCInOctets,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInForwDatagrams,
                                        &new_vals->stats.HCInForwDatagrams,
                                        &prev_vals->old_stats->HCInForwDatagrams,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInDelivers,
                                        &new_vals->stats.HCInDelivers,
                                        &prev_vals->old_stats->HCInDelivers,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutRequests,
                                        &new_vals->stats.HCOutRequests,
                                        &prev_vals->old_stats->HCOutRequests,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutForwDatagrams,
                                        &new_vals->stats.HCOutForwDatagrams,
                                        &prev_vals->old_stats->HCOutForwDatagrams,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutTransmits,
                                        &new_vals->stats.HCOutTransmits,
                                        &prev_vals->old_stats->HCOutTransmits,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutOctets,
                                        &new_vals->stats.HCOutOctets,
                                        &prev_vals->old_stats->HCOutOctets,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInMcastPkts,
                                        &new_vals->stats.HCInMcastPkts,
                                        &prev_vals->old_stats->HCInMcastPkts,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInMcastOctets,
                                        &new_vals->stats.HCInMcastOctets,
                                        &prev_vals->old_stats->HCInMcastOctets,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutMcastPkts,
                                        &new_vals->stats.HCOutMcastPkts,
                                        &prev_vals->old_stats->HCOutMcastPkts,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutMcastOctets,
                                        &new_vals->stats.HCOutMcastOctets,
                                        &prev_vals->old_stats->HCOutMcastOctets,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInBcastPkts,
                                        &new_vals->stats.HCInBcastPkts,
                                        &prev_vals->old_stats->HCInBcastPkts,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "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,
+                                       &need_wrap_check);
+        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutBcastPkts,
                                        &new_vals->stats.HCOutBcastPkts,
                                        &prev_vals->old_stats->HCOutBcastPkts,
-                                       &need_wrap_check))
-                DEBUGMSGTL(("access:systemstats",
-                        "Error expanding HCOutBcastPkts to 64bits in %s\n",
-                        prev_vals->tableName));
+                                       &need_wrap_check);
     }
-
+    
     /*
      * if we've decided we no longer need to check wraps, free old stats
      */
     if (0 == need_wrap_check) {
         SNMP_FREE(prev_vals->old_stats);
-    } else {
+    }
+    else {
         /*
          * update old stats from new stats.
          * careful - old_stats is a pointer to stats...
          */
         memcpy(prev_vals->old_stats, &new_vals->stats, sizeof(new_vals->stats));
     }
-
-    _calculate_entries(prev_vals);
-
     return 0;
 }
 
@@ -579,8 +367,7 @@ netsnmp_access_systemstats_entry_update(netsnmp_systemstats_entry * lhs,
     DEBUGMSGTL(("access:systemstats", "copy\n"));
     
     if ((NULL == lhs) || (NULL == rhs) ||
-        (lhs->index[0] != rhs->index[0])
-        || (lhs->index[1] != rhs->index[1]))
+        (lhs->ns_ip_version != rhs->ns_ip_version))
         return -1;
 
     /*
diff --git a/agent/mibgroup/ip-mib/data_access/systemstats_linux.c b/agent/mibgroup/ip-mib/data_access/systemstats_linux.c
index 275b0bd..947afe8 100644
--- a/agent/mibgroup/ip-mib/data_access/systemstats_linux.c
+++ b/agent/mibgroup/ip-mib/data_access/systemstats_linux.c
@@ -1,7 +1,7 @@
 /*
- *  ipSystemStatsTable and ipIfStatsTable interface MIB architecture support
+ *  Interface MIB architecture support
  *
- * $Id$
+ * $Id: systemstats_linux.c 15220 2006-09-15 00:48:50Z tanders $
  */
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
@@ -10,20 +10,12 @@
 #include <net-snmp/data_access/ipstats.h>
 #include <net-snmp/data_access/systemstats.h>
 
-#include "../ipSystemStatsTable/ipSystemStatsTable.h"
-
-#include <sys/types.h>
-#include <dirent.h>
-#include <ctype.h>
-
 static int _systemstats_v4(netsnmp_container* container, u_int load_flags);
-static int _additional_systemstats_v4(netsnmp_systemstats_entry* entry,
-                                      u_int load_flags);
-
 #if defined (NETSNMP_ENABLE_IPV6)
 static int _systemstats_v6(netsnmp_container* container, u_int load_flags);
 #endif
 
+
 void
 netsnmp_access_systemstats_arch_init(void)
 {
@@ -70,7 +62,7 @@ netsnmp_access_systemstats_container_arch_load(netsnmp_container* container,
         snmp_log(LOG_ERR, "no container specified/found for access_systemstats_\n");
         return -1;
     }
-    
+
     /*
      * load v4 and v6 stats. Even if one fails, try the other.
      * If they have the same rc, return it. if the differ, return
@@ -89,9 +81,6 @@ netsnmp_access_systemstats_container_arch_load(netsnmp_container* container,
 #endif
 }
 
-/*
- * Based on load_flags, load ipSystemStatsTable or ipIfStatsTable for ipv4 entries. 
- */
 static int
 _systemstats_v4(netsnmp_container* container, u_int load_flags)
 {
@@ -101,22 +90,17 @@ _systemstats_v4(netsnmp_container* container, u_int load_flags)
     int             scan_count;
     char           *stats, *start = line;
     int             len;
-    unsigned long long scan_vals[19];
+    uintmax_t       scan_vals[19];
 
-    DEBUGMSGTL(("access:systemstats:container:arch", "load v4 (flags %x)\n",
+    DEBUGMSGTL(("access:systemstats:container:arch", "load v4 (flags %p)\n",
                 load_flags));
 
     netsnmp_assert(container != NULL); /* load function shoulda checked this */
 
-    if (load_flags & NETSNMP_ACCESS_SYSTEMSTATS_LOAD_IFTABLE) {
-        /* we do not support ipIfStatsTable for ipv4 */
-        return 0;
-    }
-
     if (!(devin = fopen("/proc/net/snmp", "r"))) {
         DEBUGMSGTL(("access:systemstats",
                     "Failed to load Systemstats Table (linux1)\n"));
-        NETSNMP_LOGONCE((LOG_ERR, "cannot open /proc/net/snmp ...\n"));
+        snmp_log(LOG_ERR, "cannot open /proc/net/snmp ...\n");
         return -2;
     }
 
@@ -160,8 +144,7 @@ _systemstats_v4(netsnmp_container* container, u_int load_flags)
         while (*stats == ' ') /* skip spaces before stats */
             stats++;
 
-        entry = netsnmp_access_systemstats_entry_create(1, 0,
-                    "ipSystemStatsTable.ipv4");
+        entry = netsnmp_access_systemstats_entry_create(1);
         if(NULL == entry) {
             netsnmp_access_systemstats_container_free(container,
                                                       NETSNMP_ACCESS_SYSTEMSTATS_FREE_NOFLAGS);
@@ -202,167 +185,75 @@ _systemstats_v4(netsnmp_container* container, u_int load_flags)
         entry->stats.HCInReceives.high = scan_vals[2] >> 32;
         entry->stats.InHdrErrors = scan_vals[3];
         entry->stats.InAddrErrors = scan_vals[4];
-        entry->stats.HCOutForwDatagrams.low = scan_vals[5] & 0xffffffff;
-        entry->stats.HCOutForwDatagrams.high = scan_vals[5] >> 32;
+        entry->stats.HCInForwDatagrams.low = scan_vals[5] & 0xffffffff;
+        entry->stats.HCInForwDatagrams.high = scan_vals[5] >> 32;
         entry->stats.InUnknownProtos = scan_vals[6];
         entry->stats.InDiscards = scan_vals[7];
         entry->stats.HCInDelivers.low = scan_vals[8] & 0xffffffff;
         entry->stats.HCInDelivers.high = scan_vals[8] >> 32;
         entry->stats.HCOutRequests.low = scan_vals[9] & 0xffffffff;
         entry->stats.HCOutRequests.high = scan_vals[9] >> 32;
-        entry->stats.HCOutDiscards.low = scan_vals[10] & 0xffffffff;;
-        entry->stats.HCOutDiscards.high = scan_vals[10] >> 32;
-        entry->stats.HCOutNoRoutes.low = scan_vals[11] & 0xffffffff;;
-        entry->stats.HCOutNoRoutes.high = scan_vals[11] >> 32;
+        entry->stats.OutDiscards = scan_vals[10];
+        entry->stats.OutNoRoutes = scan_vals[11];
         /* entry->stats. = scan_vals[12]; / * ReasmTimeout */
         entry->stats.ReasmReqds = scan_vals[13];
         entry->stats.ReasmOKs = scan_vals[14];
         entry->stats.ReasmFails = scan_vals[15];
-        entry->stats.HCOutFragOKs.low = scan_vals[16] & 0xffffffff;;
-        entry->stats.HCOutFragOKs.high = scan_vals[16] >> 32;
-        entry->stats.HCOutFragFails.low = scan_vals[17] & 0xffffffff;;
-        entry->stats.HCOutFragFails.high = scan_vals[17] >> 32;
-        entry->stats.HCOutFragCreates.low = scan_vals[18] & 0xffffffff;;
-        entry->stats.HCOutFragCreates.high = scan_vals[18] >> 32;
-
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINRECEIVES] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_INHDRERRORS] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_INADDRERRORS] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFORWDATAGRAMS] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_INUNKNOWNPROTOS] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_INDISCARDS] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINDELIVERS] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTREQUESTS] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTDISCARDS] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTNOROUTES] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_REASMREQDS] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_REASMOKS] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_REASMFAILS] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGOKS] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGFAILS] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGCREATES] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_DISCONTINUITYTIME] = 1;
-        entry->stats.columnAvail[IPSYSTEMSTATSTABLE_REFRESHRATE] = 1;
-
-        /*
-         * load addtional statistics defined by RFC 4293
-         * As these are supported linux 2.6.22 or later, it is no problem
-         * if loading them are failed.
-         */
-        _additional_systemstats_v4(entry, load_flags);
+        entry->stats.OutFragOKs = scan_vals[16];
+        entry->stats.OutFragFails = scan_vals[17];
+        entry->stats.OutFragCreates = scan_vals[18];
 
         /*
          * add to container
          */
-        if (CONTAINER_INSERT(container, entry) < 0)
-        {
-            DEBUGMSGTL(("access:systemstats:container","error with systemstats_entry: insert into container failed.\n"));
-            netsnmp_access_systemstats_entry_free(entry);
-        }
+        CONTAINER_INSERT(container, entry);
     }
-
     return 0;
 }
     
-#define IP_EXT_HEAD "IpExt:"
+#if defined (NETSNMP_ENABLE_IPV6)
 static int
-_additional_systemstats_v4(netsnmp_systemstats_entry* entry,
-                           u_int load_flags)
+_systemstats_v6(netsnmp_container* container, u_int load_flags)
 {
     FILE           *devin;
     char            line[1024];
-    int             scan_count;
-    unsigned long long scan_vals[6];
-    int             retval = 0;
+    netsnmp_systemstats_entry *entry = NULL;
+    int             scan_count = 0;
+    char           *stats, *start = line;
+    int             len, rc;
+    uintmax_t       scan_val;
+    const char     *filename = "/proc/net/snmp6";
+    static int      warned_open = 0;
 
-    DEBUGMSGTL(("access:systemstats:container:arch",
-                "load addtional v4 (flags %u)\n", load_flags));
+    DEBUGMSGTL(("access:systemstats:container:arch", "load v6 (flags %p)\n",
+                load_flags));
 
-    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;
-    }
+    netsnmp_assert(container != NULL); /* load function shoulda checked this */
 
+    entry = netsnmp_access_systemstats_entry_create(2);
+    if(NULL == entry)
+        return -3;
+    
     /*
-     * Get header and stat lines
+     * try to open file. If we can't, that's ok - maybe the module hasn't
+     * been loaded yet.
      */
-    while (fgets(line, sizeof(line), devin)) {
-        if (strncmp(IP_EXT_HEAD, line, sizeof(IP_EXT_HEAD) - 1) == 0) {
-            /* next line should includes IPv4 addtional statistics */
-            if ((fgets(line, sizeof(line), devin)) == NULL) {
-                retval = -4;
-                break;
-            }
-            if (strncmp(IP_EXT_HEAD, line, sizeof(IP_EXT_HEAD) - 1) != 0) {
-                retval = -4;
-                break;
-            }
-
-            memset(scan_vals, 0x0, sizeof(scan_vals));
-            scan_count = sscanf(line,
-                                "%*s"   /* ignore `IpExt:' */
-                                "%llu %llu %llu %llu %llu %llu",
-                                &scan_vals[0], &scan_vals[1], &scan_vals[2],
-                                &scan_vals[3], &scan_vals[4], &scan_vals[5]);
-            if (scan_count < 6) {
-                snmp_log(LOG_ERR,
-                        "error scanning addtional systemstats data"
-                        "(minimum expected %d, got %d)\n",
-                        6, scan_count);
-                retval = -4;
-                break;
-            }
-
-            entry->stats.HCInNoRoutes.low    = scan_vals[0] & 0xffffffff;
-            entry->stats.HCInNoRoutes.high   = scan_vals[0] >> 32;
-            entry->stats.InTruncatedPkts     = scan_vals[1];
-            entry->stats.HCInMcastPkts.low   = scan_vals[2] & 0xffffffff;
-            entry->stats.HCInMcastPkts.high  = scan_vals[2] >> 32;
-            entry->stats.HCOutMcastPkts.low  = scan_vals[3] & 0xffffffff;
-            entry->stats.HCOutMcastPkts.high = scan_vals[3] >> 32;
-            entry->stats.HCInBcastPkts.low   = scan_vals[4] & 0xffffffff;
-            entry->stats.HCInBcastPkts.high  = scan_vals[4] >> 32;
-            entry->stats.HCOutBcastPkts.low  = scan_vals[5] & 0xffffffff;
-            entry->stats.HCOutBcastPkts.high = scan_vals[5] >> 32;
-
-            entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINNOROUTES] = 1;
-            entry->stats.columnAvail[IPSYSTEMSTATSTABLE_INTRUNCATEDPKTS] = 1;
-            entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINMCASTPKTS] = 1;
-            entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTMCASTPKTS] = 1;
-            entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINBCASTPKTS] = 1;
-            entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTBCASTPKTS] = 1;
+    if (!(devin = fopen(filename, "r"))) {
+        DEBUGMSGTL(("access:systemstats",
+                    "Failed to load Systemstats Table (linux1)\n"));
+        if(!warned_open) {
+            ++warned_open;
+            snmp_log(LOG_ERR, "cannot open %s ...\n", filename);
         }
+        free(entry);
+        return 0;
     }
 
-    fclose(devin);
-
-    if (retval < 0)
-        DEBUGMSGTL(("access:systemstats",
-                    "/proc/net/netstat does not include addtional stats\n"));
-
-    return retval;
-}
-   
-#if defined (NETSNMP_ENABLE_IPV6)
-
-/*
- * Load one /proc/net/snmp6 - like file (e.g. /proc/net/dev_snmp6)
- */ 
-static int 
-_systemstats_v6_load_file(netsnmp_systemstats_entry *entry, FILE *devin)
-{
-    char            line[1024];
-    char           *stats, *start = line;
-    int             len, rc;
-    uintmax_t       scan_val;
-
     /*
+     * This file provides the statistics for each systemstats.
      * Read in each line in turn, isolate the systemstats name
      *   and retrieve (or create) the corresponding data structure.
      */
-    rc = 0;
     while (1) {
         start = fgets(line, sizeof(line), devin);
         if (NULL == start)
@@ -392,294 +283,94 @@ _systemstats_v6_load_file(netsnmp_systemstats_entry *entry, FILE *devin)
          *      data structure accordingly.
          */
         scan_val = atoll(stats);
+        if (0 == scan_val)
+            continue;
 
         rc = 0;
         if ('I' == line[3]) { /* In */
             if ('A' == line[5]) {
                 entry->stats.InAddrErrors = scan_val;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_INADDRERRORS] = 1;
             } else if ('D' == line[5]) {
                 if ('e' == line[6]) {
                     entry->stats.HCInDelivers.low = scan_val  & 0xffffffff;
                     entry->stats.HCInDelivers.high = scan_val >> 32;
-                    entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINDELIVERS] = 1;
-                } else if ('i' == line[6]) {
+                } else if ('i' == line[6])
                     entry->stats.InDiscards = scan_val;
-                    entry->stats.columnAvail[IPSYSTEMSTATSTABLE_INDISCARDS] = 1;
-                } else
+                else
                     rc = 1;
             } else if ('H' == line[5]) {
                 entry->stats.InHdrErrors = scan_val;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_INHDRERRORS] = 1;
             } else if ('M' == line[5]) {
-                if ('P' == line[10]) {
-                    entry->stats.HCInMcastPkts.low = scan_val  & 0xffffffff;
-                    entry->stats.HCInMcastPkts.high = scan_val >> 32;
-                    entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINMCASTPKTS] = 1;
-                } else if ('O' == line[10]) {
-                    entry->stats.HCInMcastOctets.low = scan_val  & 0xffffffff;
-                    entry->stats.HCInMcastOctets.high = scan_val >> 32;
-                    entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINMCASTOCTETS] = 1;
-                } else
-                    rc = 1;
+                entry->stats.HCInMcastPkts.low = scan_val  & 0xffffffff;
+                entry->stats.HCInMcastPkts.high = scan_val >> 32;
             } else if ('N' == line[5]) {
-                entry->stats.HCInNoRoutes.low = scan_val & 0xffffffff;
-                entry->stats.HCInNoRoutes.high = scan_val >> 32;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINNOROUTES] = 1;
+                entry->stats.InNoRoutes = scan_val;
             } else if ('R' == line[5]) {
                 entry->stats.HCInReceives.low = scan_val & 0xffffffff;
                 entry->stats.HCInReceives.high = scan_val >> 32;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINRECEIVES] = 1;
             } else if ('T' == line[5]) {
                 if ('r' == line[6]) {
                     entry->stats.InTruncatedPkts = scan_val  & 0xffffffff;
-                    entry->stats.columnAvail[IPSYSTEMSTATSTABLE_INTRUNCATEDPKTS] = 1;
                 } else if ('o' == line[6])
                     ; /* TooBig isn't in the MIB, so ignore it */
                 else
                     rc = 1;
             } else if ('U' == line[5]) {
                 entry->stats.InUnknownProtos = scan_val;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_INUNKNOWNPROTOS] = 1;
-            } else if ('O' == line[5]) {
-                entry->stats.HCInOctets.low = scan_val & 0xffffffff;
-                entry->stats.HCInOctets.high = scan_val  >> 32;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINOCTETS] = 1;
             } else
                 rc = 1;
         } else if ('O' == line[3]) { /* Out */
             if ('D' == line[6]) {
-                entry->stats.HCOutDiscards.low = scan_val & 0xffffffff;
-                entry->stats.HCOutDiscards.high = scan_val >> 32;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTDISCARDS] = 1;
+                entry->stats.OutDiscards = scan_val;
             } else if ('F' == line[6]) {
                 entry->stats.HCOutForwDatagrams.low = scan_val & 0xffffffff;
                 entry->stats.HCOutForwDatagrams.high = scan_val >> 32;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFORWDATAGRAMS] = 1;
             } else if ('M' == line[6]) {
-                if ('P' == line[11]) {
-                    entry->stats.HCOutMcastPkts.low = scan_val & 0xffffffff;
-                    entry->stats.HCOutMcastPkts.high = scan_val >> 32;
-                    entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTMCASTPKTS] = 1;
-                } else if ('O' == line[11]) {
-                    entry->stats.HCOutMcastOctets.low = scan_val & 0xffffffff;
-                    entry->stats.HCOutMcastOctets.high = scan_val >> 32;
-                    entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTMCASTOCTETS] = 1;
-                } else
-                    rc = -1;
+                entry->stats.HCOutMcastPkts.low = scan_val & 0xffffffff;
+                entry->stats.HCOutMcastPkts.high = scan_val >> 32;
             } else if ('N' == line[6]) {
-                entry->stats.HCOutNoRoutes.low = scan_val & 0xffffffff;
-                entry->stats.HCOutNoRoutes.high = scan_val >> 32;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTNOROUTES] = 1;
+                entry->stats.OutNoRoutes = scan_val;
             } else if ('R' == line[6]) {
                 entry->stats.HCOutRequests.low = scan_val & 0xffffffff;
                 entry->stats.HCOutRequests.high = scan_val >> 32;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTREQUESTS] = 1;
-            } else if ('O' == line[6]) {
-                entry->stats.HCOutOctets.low = scan_val & 0xffffffff;
-                entry->stats.HCOutOctets.high = scan_val >> 32;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTOCTETS] = 1;
             } else
                 rc = 1;
         } else if ('R' == line[3]) { /* Reasm */
             if ('F' == line[8]) {
                 entry->stats.ReasmFails = scan_val;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_REASMFAILS] = 1;
             } else if ('O' == line[8]) {
                 entry->stats.ReasmOKs = scan_val;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_REASMOKS] = 1;
             } else if ('R' == line[8]) {
                 entry->stats.ReasmReqds = scan_val;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_REASMREQDS] = 1;
             } else if ('T' == line[8]) {
                 ; /* no mib entry for reasm timeout */
             } else
                 rc = 1;
         } else if ('F' == line[3]) { /* Frag */
-            if ('C' == line[7]) {
-                entry->stats.HCOutFragCreates.low = scan_val & 0xffffffff;
-                entry->stats.HCOutFragCreates.high = scan_val >> 32;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGCREATES] = 1;
-            } else if ('O' == line[7]) {
-                entry->stats.HCOutFragOKs.low = scan_val & 0xffffffff;
-                entry->stats.HCOutFragOKs.high = scan_val >> 32;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGOKS] = 1;
-            } else if ('F' == line[7]) {
-                entry->stats.HCOutFragFails.low = scan_val & 0xffffffff;
-                entry->stats.HCOutFragFails.high = scan_val >> 32;
-                entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGFAILS] = 1;
-            } else
+            if ('C' == line[7])
+                entry->stats.OutFragCreates = scan_val;
+            else if ('O' == line[7])
+                entry->stats.OutFragOKs = scan_val;
+            else if ('F' == line[7])
+                entry->stats.OutFragFails = scan_val;
+            else
                 rc = 1;
         } else
             rc = 1;
         
         if (rc)
             DEBUGMSGTL(("access:systemstats", "unknown stat %s\n", line));
+        else
+            ++scan_count;
     }
-    /*
-     * Let DiscontinuityTime and RefreshRate active
-     */
-    entry->stats.columnAvail[IPSYSTEMSTATSTABLE_DISCONTINUITYTIME] = 1;
-    entry->stats.columnAvail[IPSYSTEMSTATSTABLE_REFRESHRATE] = 1;
-
-    return rc;
-}
-
-/*
- * load ipSystemStatsTable for ipv6 entries
- */
-static int 
-_systemstats_v6_load_systemstats(netsnmp_container* container, u_int load_flags)
-{
-    FILE *devin;
-    netsnmp_systemstats_entry *entry = NULL;
-    const char     *filename = "/proc/net/snmp6";
-    int rc = 0;
-    
-    entry = netsnmp_access_systemstats_entry_create(2, 0,
-            "ipSystemStatsTable.ipv6");
-    if(NULL == entry)
-        return -3;
-    
-    /*
-     * try to open file. If we can't, that's ok - maybe the module hasn't
-     * been loaded yet.
-     */
-    if (!(devin = fopen(filename, "r"))) {
-        DEBUGMSGTL(("access:systemstats",
-                "Failed to load Systemstats Table (linux1), cannot open %s\n",
-                filename));
-        return 0;
-    }
-    
-    rc = _systemstats_v6_load_file(entry, devin);
 
     fclose(devin);
 
     /*
      * add to container
      */
-        if (CONTAINER_INSERT(container, entry) < 0)
-        {
-            DEBUGMSGTL(("access:systemstats:container","error with systemstats_entry: insert into container failed.\n"));
-            netsnmp_access_systemstats_entry_free(entry);
-        }
-
+    CONTAINER_INSERT(container, entry);
 
     return rc;
 }
-
-#define DEV_SNMP6_DIRNAME   "/proc/net/dev_snmp6"
-#define IFINDEX_LINE        "ifIndex"
-#define DEV_FILENAME_LEN    64
-
-/*
- * load ipIfStatsTable for ipv6 entries
- */
-static int 
-_systemstats_v6_load_ifstats(netsnmp_container* container, u_int load_flags)
-{
-    DIR            *dev_snmp6_dir;
-    struct dirent  *dev_snmp6_entry;
-    char           dev_filename[DEV_FILENAME_LEN];
-    FILE           *devin;
-    char           line[1024];
-    char           *start = line;
-    char           *scan_str;
-    uintmax_t       scan_val;
-    netsnmp_systemstats_entry *entry = NULL;
-            
-    /*
-     * try to open /proc/net/dev_snmp6 directory. If we can't, that' ok -
-     * maybe it is not supported by the current running kernel.
-     */
-    if ((dev_snmp6_dir = opendir(DEV_SNMP6_DIRNAME)) == NULL) {
-        DEBUGMSGTL(("access:ifstats",
-        "Failed to load IPv6 IfStats Table (linux)\n"));
-        return 0;
-    }
-    
-    /*
-     * Read each per interface statistics proc file
-     */
-    while ((dev_snmp6_entry = readdir(dev_snmp6_dir)) != NULL) {
-        if (dev_snmp6_entry->d_name[0] == '.')
-            continue;
-    
-        if (snprintf(dev_filename, DEV_FILENAME_LEN, "%s/%s", DEV_SNMP6_DIRNAME,
-                dev_snmp6_entry->d_name) > DEV_FILENAME_LEN) {
-            snmp_log(LOG_ERR, "Interface name %s is too long\n",
-                    dev_snmp6_entry->d_name);
-            continue;
-        }
-        if (NULL == (devin = fopen(dev_filename, "r"))) {
-            snmp_log(LOG_ERR, "Failed to open %s\n", dev_filename);
-            continue;
-        }
-    
-        /*
-         * If a stat file name is made of digits, the name is interface index.
-         * If it is an interface name, the file includes a line labeled ifIndex.
-         */
-        if (isdigit(dev_snmp6_entry->d_name[0])) {
-            scan_val = strtoull(dev_snmp6_entry->d_name, NULL, 0);
-        } else {
-            if (NULL == (start = fgets(line, sizeof(line), devin))) {
-                snmp_log(LOG_ERR, "%s doesn't include any lines\n",
-                        dev_filename);
-                fclose(devin);
-                continue;
-            }
-    
-            if (0 != strncmp(start, IFINDEX_LINE, 7)) {
-                snmp_log(LOG_ERR, "%s doesn't include ifIndex line",
-                        dev_filename);
-                fclose(devin);
-                continue;
-            }
-
-            scan_str = strrchr(line, ' ');
-            if (NULL == scan_str) {
-                snmp_log(LOG_ERR, "%s is wrong format", dev_filename);
-                fclose(devin);
-                continue;
-            }
-            scan_val = strtoull(scan_str, NULL, 0);
-        }
-        
-        entry = netsnmp_access_systemstats_entry_create(2, scan_val,
-                "ipIfStatsTable.ipv6");
-        if(NULL == entry) {
-            fclose(devin);
-            closedir(dev_snmp6_dir);
-            return -3;
-        }
-        
-        _systemstats_v6_load_file(entry, devin);
-        CONTAINER_INSERT(container, entry);
-        fclose(devin);
-    }
-    closedir(dev_snmp6_dir);
-    return 0;
-}
-
-/*
- * Based on load_flags, load ipSystemStatsTable or ipIfStatsTable for ipv6 entries. 
- */
-static int
-_systemstats_v6(netsnmp_container* container, u_int load_flags)
-{
-    DEBUGMSGTL(("access:systemstats:container:arch", "load v6 (flags %u)\n",
-                load_flags));
-
-    netsnmp_assert(container != NULL); /* load function shoulda checked this */
-
-    if (load_flags & NETSNMP_ACCESS_SYSTEMSTATS_LOAD_IFTABLE) {
-        /* load ipIfStatsTable */
-        return _systemstats_v6_load_ifstats(container, load_flags);
-    } else {
-        /* load ipSystemStatsTable */
-        return _systemstats_v6_load_systemstats(container, load_flags);
-    }
-}
 #endif /* NETSNMP_ENABLE_IPV6 */
diff --git a/agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c b/agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c
deleted file mode 100644
index f2ec497..0000000
--- a/agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c
+++ /dev/null
@@ -1,213 +0,0 @@
-#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/ipstats.h>
-#include <net-snmp/data_access/systemstats.h>
-
-#include "kernel_sunos5.h"
-
-static int _systemstats(mibgroup_e, netsnmp_container *, u_int);
-static void _add_ipstats(mib2_ipIfStatsEntry_t *, mib2_ipIfStatsEntry_t *);
-static int _insert_entry(netsnmp_container *, mib2_ipIfStatsEntry_t *);
-
-void
-netsnmp_access_systemstats_arch_init(void)
-{
-    init_kernel_sunos5();
-}
-
-/*
- * @retval  0 success
- * @retval -1 container error
- * @retval -2 could not create entry (probably malloc)
- */
-int
-netsnmp_access_systemstats_container_arch_load(netsnmp_container* container,
-                                             u_int load_flags)
-{
-    int rc; 
-    
-    if (container == NULL)
-        return (-1);
-
-    if (load_flags & NETSNMP_ACCESS_SYSTEMSTATS_LOAD_IFTABLE)
-	return 0; /* we do not support ipIfStatsTable yet */
-
-    if ((rc = _systemstats(MIB_IP_TRAFFIC_STATS, container, load_flags)) < 0)
-        return (rc);
-#if defined(NETSNMP_ENABLE_IPV6)
-    if ((rc = _systemstats(MIB_IP6, container, load_flags)) < 0) {
-            netsnmp_access_systemstats_container_free(container,
-                NETSNMP_ACCESS_SYSTEMSTATS_FREE_NOFLAGS);
-        return (rc);
-    }
-#endif
-    return (0);
-}
-
-/*
- * @retval 0 success 
- * @retval <0 error
- */
-static int
-_systemstats(mibgroup_e mib, netsnmp_container *container, u_int load_flags)
-{
-    mib2_ipIfStatsEntry_t ipe, iptot;
-    req_e req = GET_FIRST;
-    int ipversion = (mib == MIB_IP6) ? MIB2_INETADDRESSTYPE_ipv6 :
-                                       MIB2_INETADDRESSTYPE_ipv4;
-    memset(&iptot, '\0', sizeof(iptot));
-
-    while (getMibstat(mib, &ipe, sizeof(ipe), req, 
-                      &Get_everything, NULL) == 0) { 
-        req = GET_NEXT;
-        netsnmp_assert(ipe.ipIfStatsIPVersion == ipversion);
-        _add_ipstats(&iptot, &ipe);
-    }
-    iptot.ipIfStatsIPVersion = ipversion;
-    return _insert_entry(container, &iptot);
-}
-
-static void
-_add_ipstats(mib2_ipIfStatsEntry_t *o1, mib2_ipIfStatsEntry_t *o2)
-{
-    o1->ipIfStatsInHdrErrors += o2->ipIfStatsInHdrErrors;
-    o1->ipIfStatsInTooBigErrors += o2->ipIfStatsInTooBigErrors;
-    o1->ipIfStatsInNoRoutes += o2->ipIfStatsInNoRoutes;
-    o1->ipIfStatsInAddrErrors += o2->ipIfStatsInAddrErrors;
-    o1->ipIfStatsInUnknownProtos += o2->ipIfStatsInUnknownProtos;
-    o1->ipIfStatsInTruncatedPkts += o2->ipIfStatsInTruncatedPkts;
-    o1->ipIfStatsInDiscards += o2->ipIfStatsInDiscards;
-    o1->ipIfStatsOutDiscards += o2->ipIfStatsOutDiscards;
-    o1->ipIfStatsOutFragOKs += o2->ipIfStatsOutFragOKs;
-    o1->ipIfStatsOutFragFails += o2->ipIfStatsOutFragFails;
-    o1->ipIfStatsOutFragCreates += o2->ipIfStatsOutFragCreates;
-    o1->ipIfStatsReasmReqds += o2->ipIfStatsReasmReqds;
-    o1->ipIfStatsReasmOKs += o2->ipIfStatsReasmOKs;
-    o1->ipIfStatsReasmFails += o2->ipIfStatsReasmFails;
-    o1->ipIfStatsOutNoRoutes += o2->ipIfStatsOutNoRoutes;
-    o1->ipIfStatsReasmDuplicates += o2->ipIfStatsReasmDuplicates;
-    o1->ipIfStatsReasmPartDups += o2->ipIfStatsReasmPartDups;
-    o1->ipIfStatsForwProhibits += o2->ipIfStatsForwProhibits;
-    o1->udpInCksumErrs += o2->udpInCksumErrs;
-    o1->udpInOverflows += o2->udpInOverflows;
-    o1->rawipInOverflows += o2->rawipInOverflows;
-    o1->ipIfStatsInWrongIPVersion += o2->ipIfStatsInWrongIPVersion;
-    o1->ipIfStatsOutWrongIPVersion += o2->ipIfStatsOutWrongIPVersion;
-    o1->ipIfStatsOutSwitchIPVersion += o2->ipIfStatsOutSwitchIPVersion;
-    o1->ipIfStatsHCInReceives += o2->ipIfStatsHCInReceives;
-    o1->ipIfStatsHCInOctets += o2->ipIfStatsHCInOctets;
-    o1->ipIfStatsHCInForwDatagrams += o2->ipIfStatsHCInForwDatagrams;
-    o1->ipIfStatsHCInDelivers += o2->ipIfStatsHCInDelivers;
-    o1->ipIfStatsHCOutRequests += o2->ipIfStatsHCOutRequests;
-    o1->ipIfStatsHCOutForwDatagrams += o2->ipIfStatsHCOutForwDatagrams;
-    o1->ipIfStatsOutFragReqds += o2->ipIfStatsOutFragReqds;
-    o1->ipIfStatsHCOutTransmits += o2->ipIfStatsHCOutTransmits;
-    o1->ipIfStatsHCOutOctets += o2->ipIfStatsHCOutOctets;
-    o1->ipIfStatsHCInMcastPkts += o2->ipIfStatsHCInMcastPkts;
-    o1->ipIfStatsHCInMcastOctets += o2->ipIfStatsHCInMcastOctets;
-    o1->ipIfStatsHCOutMcastPkts += o2->ipIfStatsHCOutMcastPkts;
-    o1->ipIfStatsHCOutMcastOctets += o2->ipIfStatsHCOutMcastOctets;
-    o1->ipIfStatsHCInBcastPkts += o2->ipIfStatsHCInBcastPkts;
-    o1->ipIfStatsHCOutBcastPkts += o2->ipIfStatsHCOutBcastPkts;
-    o1->ipsecInSucceeded += o2->ipsecInSucceeded;
-    o1->ipsecInFailed += o2->ipsecInFailed;
-    o1->ipInCksumErrs += o2->ipInCksumErrs;
-    o1->tcpInErrs += o2->tcpInErrs;
-    o1->udpNoPorts += o2->udpNoPorts;
-}
-
-/*
- * @retval 0 entry was successfully inserted in the container 
- * @retval -1 container error
- * @retval -2 memory allocation error
- */
-static int 
-_insert_entry(netsnmp_container *container, mib2_ipIfStatsEntry_t *ipe)
-{
-    int i;
-    
-    netsnmp_systemstats_entry *ep =
-        netsnmp_access_systemstats_entry_create(ipe->ipIfStatsIPVersion, 0,
-                "ipSystemStatsTable"); 
-
-    DEBUGMSGTL(("access:systemstats:arch", "insert entry for v%d\n",
-                ipe->ipIfStatsIPVersion)); 
-    if (ep == NULL) {
-        DEBUGMSGT(("access:systemstats:arch", "insert failed (alloc)"));
-        return (-2);
-    }
-
-    ep->stats.HCInReceives.low = 
-        ipe->ipIfStatsHCInReceives & 0xffffffff;
-    ep->stats.HCInReceives.high = ipe->ipIfStatsHCInReceives >> 32;
-    ep->stats.HCInOctets.low = 
-        ipe->ipIfStatsHCInOctets & 0xffffffff;
-    ep->stats.HCInOctets.high = ipe->ipIfStatsHCInOctets >> 32;
-    ep->stats.InHdrErrors = ipe->ipIfStatsInHdrErrors;
-    ep->stats.InAddrErrors = ipe->ipIfStatsInAddrErrors;
-    ep->stats.InUnknownProtos = ipe->ipIfStatsInUnknownProtos;
-    ep->stats.InTruncatedPkts = ipe->ipIfStatsInTruncatedPkts;
-    ep->stats.HCInForwDatagrams.low = 
-        ipe->ipIfStatsHCInForwDatagrams & 0xffffffff;
-    ep->stats.HCInForwDatagrams.high = 
-        ipe->ipIfStatsHCInForwDatagrams >> 32;
-    ep->stats.ReasmReqds = ipe->ipIfStatsReasmReqds; 
-    ep->stats.ReasmOKs = ipe->ipIfStatsReasmOKs; 
-    ep->stats.ReasmFails = ipe->ipIfStatsReasmFails; 
-    ep->stats.InDiscards = ipe->ipIfStatsInDiscards;
-    ep->stats.HCInDelivers.low = 
-        ipe->ipIfStatsHCInDelivers & 0xffffffff; 
-    ep->stats.HCInDelivers.high = 
-        ipe->ipIfStatsHCInDelivers >> 32; 
-    ep->stats.HCOutRequests.low = 
-        ipe->ipIfStatsHCOutRequests & 0xffffffff;
-    ep->stats.HCOutRequests.high = 
-        ipe->ipIfStatsHCOutRequests >> 32; 
-    ep->stats.HCOutNoRoutes.low = ipe->ipIfStatsOutNoRoutes & 0xffffffff; 
-    ep->stats.HCOutNoRoutes.high = 0;
-    ep->stats.HCOutForwDatagrams.low = 
-        ipe->ipIfStatsHCOutForwDatagrams & 0xffffffff;
-    ep->stats.HCOutForwDatagrams.high = 
-        ipe->ipIfStatsHCOutForwDatagrams >> 32;
-    ep->stats.HCOutDiscards.low = ipe->ipIfStatsOutDiscards & 0xffffffff;
-    ep->stats.HCOutDiscards.high = 0; 
-    ep->stats.HCOutFragOKs.low = ipe->ipIfStatsOutFragOKs & 0xffffffff;
-    ep->stats.HCOutFragOKs.high = 0;
-    ep->stats.HCOutFragFails.low = ipe->ipIfStatsOutFragFails & 0xffffffff; 
-    ep->stats.HCOutFragFails.high = 0;
-    ep->stats.HCOutFragCreates.low = ipe->ipIfStatsOutFragCreates & 0xffffffff;
-    ep->stats.HCOutFragCreates.high = 0;
-    ep->stats.HCOutTransmits.low = 
-        ipe->ipIfStatsHCOutTransmits & 0xffffffff;
-    ep->stats.HCOutTransmits.high = ipe->ipIfStatsHCOutTransmits >> 32;
-    ep->stats.HCOutOctets.low = ipe->ipIfStatsHCOutOctets & 0xffffffff;
-    ep->stats.HCOutOctets.high = ipe->ipIfStatsHCOutOctets >> 32;
-    ep->stats.HCInMcastPkts.low = ipe->ipIfStatsHCInMcastPkts & 0xffffffff;
-    ep->stats.HCInMcastPkts.high = ipe->ipIfStatsHCInMcastPkts >> 32;
-    ep->stats.HCInMcastOctets.low = 
-        ipe->ipIfStatsHCInMcastOctets & 0xffffffff;
-    ep->stats.HCInMcastOctets.high = ipe->ipIfStatsHCInMcastOctets >> 32;
-    ep->stats.HCOutMcastPkts.low = 
-        ipe->ipIfStatsHCOutMcastPkts & 0xffffffff;
-    ep->stats.HCOutMcastPkts.high = ipe->ipIfStatsHCOutMcastPkts >> 32;
-    ep->stats.HCOutMcastOctets.low = 
-        ipe->ipIfStatsHCOutMcastOctets & 0xffffffff;
-    ep->stats.HCOutMcastOctets.high = ipe->ipIfStatsHCOutMcastOctets >> 32;
-    ep->stats.HCInBcastPkts.low = ipe->ipIfStatsHCInBcastPkts & 0xffffffff;
-    ep->stats.HCInBcastPkts.high = ipe->ipIfStatsHCInBcastPkts >> 32;
-    ep->stats.HCOutBcastPkts.low = 
-        ipe->ipIfStatsHCOutBcastPkts & 0xffffffff;
-    ep->stats.HCOutBcastPkts.high = ipe->ipIfStatsHCOutBcastPkts >> 32;
-
-    for (i=0; i<=IPSYSTEMSTATSTABLE_LAST; i++)
-        ep->stats.columnAvail[i] = 1;
-    
-    if (CONTAINER_INSERT(container, ep) < 0) {
-        DEBUGMSGT(("access:systemstats:arch", "unable to insert entry")); 
-        netsnmp_access_systemstats_entry_free(ep); 
-        return (-1);
-    }
-    return (0);
-}
diff --git a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.c b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.c
index aaae2e3..640c2e2 100644
--- a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.c
+++ b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: inetNetToMediaTable.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** \page MFD helper for inetNetToMediaTable
  *
@@ -26,12 +26,11 @@
 
 #include "inetNetToMediaTable_interface.h"
 
-const oid       inetNetToMediaTable_oid[] = { INETNETTOMEDIATABLE_OID };
-const int       inetNetToMediaTable_oid_size =
+oid             inetNetToMediaTable_oid[] = { INETNETTOMEDIATABLE_OID };
+int             inetNetToMediaTable_oid_size =
 OID_LENGTH(inetNetToMediaTable_oid);
 
 inetNetToMediaTable_registration inetNetToMediaTable_user_context;
-static inetNetToMediaTable_registration *inetNetToMediaTable_user_context_p;
 
 void            initialize_table_inetNetToMediaTable(void);
 void            shutdown_table_inetNetToMediaTable(void);
@@ -76,6 +75,7 @@ shutdown_inetNetToMediaTable(void)
 void
 initialize_table_inetNetToMediaTable(void)
 {
+    inetNetToMediaTable_registration *user_context;
     u_long          flags;
 
     DEBUGMSGTL(("verbose:inetNetToMediaTable:initialize_table_inetNetToMediaTable", "called\n"));
@@ -93,7 +93,7 @@ initialize_table_inetNetToMediaTable(void)
      * a netsnmp_data_list is a simple way to store void pointers. A simple
      * string token is used to add, find or remove pointers.
      */
-    inetNetToMediaTable_user_context_p =
+    user_context =
         netsnmp_create_data_list("inetNetToMediaTable", NULL, NULL);
 
     /*
@@ -105,8 +105,7 @@ initialize_table_inetNetToMediaTable(void)
     /*
      * call interface initialization code
      */
-    _inetNetToMediaTable_initialize_interface
-	(inetNetToMediaTable_user_context_p, flags);
+    _inetNetToMediaTable_initialize_interface(user_context, flags);
 }                               /* initialize_table_inetNetToMediaTable */
 
 /**
@@ -119,9 +118,7 @@ shutdown_table_inetNetToMediaTable(void)
      * call interface shutdown code
      */
     _inetNetToMediaTable_shutdown_interface
-        (inetNetToMediaTable_user_context_p);
-    netsnmp_free_all_list_data(inetNetToMediaTable_user_context_p);
-    inetNetToMediaTable_user_context_p = NULL;
+        (&inetNetToMediaTable_user_context);
 }
 
 /**
@@ -159,10 +156,10 @@ inetNetToMediaTable_rowreq_ctx_cleanup(inetNetToMediaTable_rowreq_ctx *
     DEBUGMSGTL(("verbose:inetNetToMediaTable:inetNetToMediaTable_rowreq_ctx_cleanup", "called\n"));
 
     netsnmp_assert(NULL != rowreq_ctx);
+
     /*
      * TODO:211:o: |-> Perform extra inetNetToMediaTable rowreq cleanup.
      */
-    SNMP_FREE(rowreq_ctx->data);
 }                               /* inetNetToMediaTable_rowreq_ctx_cleanup */
 
 /**
@@ -536,7 +533,11 @@ inetNetToMediaLastUpdated_get(inetNetToMediaTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the inetNetToMediaLastUpdated data.
      * copy (* inetNetToMediaLastUpdated_val_ptr ) from rowreq_ctx->data
      */
-    *inetNetToMediaLastUpdated_val_ptr = rowreq_ctx->data->arp_last_updated;
+    /*
+     * xxx-rks: get this value?
+     */
+    return MFD_SKIP;
+
     return MFD_SUCCESS;
 }                               /* inetNetToMediaLastUpdated_get */
 
diff --git a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h
index 73afae6..aad8ad9 100644
--- a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h
+++ b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: inetNetToMediaTable.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 #ifndef INETNETTOMEDIATABLE_H
 #define INETNETTOMEDIATABLE_H
@@ -200,8 +200,8 @@ config_require(ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access)
         * inetNetToMediaTable_row_find_by_mib_index
         (inetNetToMediaTable_mib_index * mib_idx);
 
-    extern const oid      inetNetToMediaTable_oid[];
-    extern const int      inetNetToMediaTable_oid_size;
+    extern oid      inetNetToMediaTable_oid[];
+    extern int      inetNetToMediaTable_oid_size;
 
 
 #include "inetNetToMediaTable_interface.h"
@@ -250,19 +250,12 @@ config_require(ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access)
                                             * 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_constants.h b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_constants.h
index 0b23b9f..8197395 100644
--- a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_constants.h
+++ b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: inetNetToMediaTable_constants.h 13759 2005-12-01 00:45:50Z rstory $
  */
 #ifndef INETNETTOMEDIATABLE_CONSTANTS_H
 #define INETNETTOMEDIATABLE_CONSTANTS_H
diff --git a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c
index d877f8b..cad942c 100644
--- a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c
+++ b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c
@@ -2,13 +2,12 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: inetNetToMediaTable_data_access.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /*
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -20,9 +19,6 @@
 
 #include "inetNetToMediaTable_data_access.h"
 
-netsnmp_feature_require(container_lifo)
-static netsnmp_arp_access * arp_access = NULL;
-
 /** @ingroup interface 
  * @addtogroup data_access data_access: Routines to access data
  *
@@ -75,123 +71,6 @@ inetNetToMediaTable_init_data(inetNetToMediaTable_registration *
  */
 
 /**
- * check entry for update
- */
-static void
-_add_or_update_arp_entry(netsnmp_arp_entry *arp_entry,
-                 netsnmp_container *container)
-{
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx, *old;
-    int             inetAddressType;
-
-    DEBUGTRACE;
-
-    netsnmp_assert(NULL != arp_entry);
-    netsnmp_assert(NULL != container);
-
-    /*
-     * convert the addr len to an inetAddressType
-     */
-    switch (arp_entry->arp_ipaddress_len) {
-    case 4:
-        inetAddressType = INETADDRESSTYPE_IPV4;
-        break;
-
-    case 16:
-        inetAddressType = INETADDRESSTYPE_IPV6;
-        break;
-
-    default:
-        netsnmp_access_arp_entry_free(arp_entry);
-        snmp_log(LOG_ERR, "unsupported address type\n");
-        return;
-    }
-
-    /*
-     * allocate an row context and set the index(es), then try to find it in
-     * the cache.
-     */
-    rowreq_ctx = inetNetToMediaTable_allocate_rowreq_ctx(arp_entry, NULL);
-    if ((NULL != rowreq_ctx) &&
-        (MFD_SUCCESS == inetNetToMediaTable_indexes_set
-         (rowreq_ctx, rowreq_ctx->data->if_index, inetAddressType,
-          (char *) rowreq_ctx->data->arp_ipaddress,
-          rowreq_ctx->data->arp_ipaddress_len))) {
-
-        /* try to find old entry */
-        old = (inetNetToMediaTable_rowreq_ctx*)CONTAINER_FIND(container, rowreq_ctx);
-        if (arp_entry->flags & NETSNMP_ACCESS_ARP_ENTRY_FLAG_DELETE) {
-            /* delete existing entry */
-            if (old != NULL) {
-                CONTAINER_REMOVE(container, old);
-                inetNetToMediaTable_release_rowreq_ctx(old);
-            }
-            inetNetToMediaTable_release_rowreq_ctx(rowreq_ctx);
-        } else if (old != NULL) {
-            /* the entry is already there, update it */
-            netsnmp_access_arp_entry_update(old->data, arp_entry);
-            /* delete the auxiliary context we used to find the entry
-             * (this deletes also arp_entry) */
-            inetNetToMediaTable_release_rowreq_ctx(rowreq_ctx);
-        } else {
-            /* create new entry and add it to the cache*/
-            rowreq_ctx->inetNetToMediaRowStatus = ROWSTATUS_ACTIVE;
-            rowreq_ctx->data->arp_last_updated = netsnmp_get_agent_uptime();
-            CONTAINER_INSERT(container, rowreq_ctx);
-        }
-    } else {
-        if (rowreq_ctx) {
-            snmp_log(LOG_ERR, "error setting index while loading "
-                     "inetNetToMediaTable cache.\n");
-            inetNetToMediaTable_release_rowreq_ctx(rowreq_ctx);
-        } else
-            netsnmp_access_arp_entry_free(arp_entry);
-    }
-}
-
-static void  _arp_hook_update(netsnmp_arp_access *access, netsnmp_arp_entry *entry)
-{
-    _add_or_update_arp_entry(entry, access->magic);
-}
-
-typedef struct {
-    unsigned generation;
-    netsnmp_container *to_delete;
-} _collect_ctx;
-
-/**
- * Put all entries with outdated generation to deletion list.
- */
-static void
-_collect_invalid_arp_ctx(inetNetToMediaTable_rowreq_ctx *ctx,
-                         _collect_ctx *cctx)
-{
-    if (ctx->data->generation != cctx->generation)
-        CONTAINER_INSERT(cctx->to_delete, ctx);
-}
-
-static void _arp_hook_gc(netsnmp_arp_access *access)
-{
-    netsnmp_container *container = access->magic;
-    _collect_ctx cctx;
-
-    cctx.to_delete = netsnmp_container_find("lifo");
-    cctx.generation = access->generation;
-
-    CONTAINER_FOR_EACH(container,
-                       (netsnmp_container_obj_func *) _collect_invalid_arp_ctx,
-                       &cctx);
-
-    while (CONTAINER_SIZE(cctx.to_delete)) {
-        inetNetToMediaTable_rowreq_ctx *ctx = (inetNetToMediaTable_rowreq_ctx*)CONTAINER_FIRST(cctx.to_delete);
-        CONTAINER_REMOVE(container, ctx);
-        inetNetToMediaTable_release_rowreq_ctx(ctx);
-        CONTAINER_REMOVE(cctx.to_delete, NULL);
-    }
-    CONTAINER_FREE(cctx.to_delete);
-}
-
-/**
  * container initialization
  *
  * @param container_ptr_ptr A pointer to a container pointer. If you
@@ -241,19 +120,72 @@ inetNetToMediaTable_container_init(netsnmp_container **container_ptr_ptr,
         return;
     }
 
-    arp_access = netsnmp_access_arp_create(
-                           NETSNMP_ACCESS_ARP_CREATE_NOFLAGS,
-                           _arp_hook_update,
-                           _arp_hook_gc,
-                           &cache->timeout,
-                           &cache->flags,
-                           &cache->expired);
-    if (arp_access == NULL) {
-        snmp_log(LOG_ERR,
-                 "unable to create arp access in inetNetToMediaTable_container_init\n");
+    /*
+     * TODO:345:A: Set up inetNetToMediaTable cache properties.
+     *
+     * Also for advanced users, you can set parameters for the
+     * cache. Do not change the magic pointer, as it is used
+     * by the MFD helper. To completely disable caching, set
+     * cache->enabled to 0.
+     */
+    cache->timeout = INETNETTOMEDIATABLE_CACHE_TIMEOUT; /* seconds */
+}                               /* inetNetToMediaTable_container_init */
+
+/**
+ * check entry for update
+ *
+ */
+static void
+_snarf_arp_entry(netsnmp_arp_entry *arp_entry,
+                 netsnmp_container *container)
+{
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx;
+    int             inetAddressType;
+
+    DEBUGTRACE;
+
+    netsnmp_assert(NULL != arp_entry);
+    netsnmp_assert(NULL != container);
+
+    /*
+     * convert the addr len to an inetAddressType
+     */
+    switch (arp_entry->arp_ipaddress_len) {
+    case 4:
+        inetAddressType = INETADDRESSTYPE_IPV4;
+        break;
+
+    case 6:
+        inetAddressType = INETADDRESSTYPE_IPV6;
+        break;
+
+    default:
+        netsnmp_access_arp_entry_free(arp_entry);
+        snmp_log(LOG_ERR, "unsupported address type\n");
         return;
     }
-}                               /* inetNetToMediaTable_container_init */
+
+    /*
+     * allocate an row context and set the index(es), then add it to
+     * the container
+     */
+    rowreq_ctx = inetNetToMediaTable_allocate_rowreq_ctx(arp_entry, NULL);
+    if ((NULL != rowreq_ctx) &&
+        (MFD_SUCCESS == inetNetToMediaTable_indexes_set
+         (rowreq_ctx, rowreq_ctx->data->if_index, inetAddressType,
+          rowreq_ctx->data->arp_ipaddress,
+          rowreq_ctx->data->arp_ipaddress_len))) {
+        rowreq_ctx->inetNetToMediaRowStatus = ROWSTATUS_ACTIVE;
+        CONTAINER_INSERT(container, rowreq_ctx);
+    } else {
+        if (rowreq_ctx) {
+            snmp_log(LOG_ERR, "error setting index while loading "
+                     "inetNetToMediaTable cache.\n");
+            inetNetToMediaTable_release_rowreq_ctx(rowreq_ctx);
+        } else
+            netsnmp_access_arp_entry_free(arp_entry);
+    }
+}
 
 /**
  * container shutdown
@@ -276,16 +208,12 @@ inetNetToMediaTable_container_shutdown(netsnmp_container *container_ptr)
 {
     DEBUGMSGTL(("verbose:inetNetToMediaTable:inetNetToMediaTable_container_shutdown", "called\n"));
 
-    if (NULL != arp_access) {
-        netsnmp_access_arp_delete(arp_access);
-        arp_access = NULL;
-    }
-
     if (NULL == container_ptr) {
         snmp_log(LOG_ERR,
                  "bad params to inetNetToMediaTable_container_shutdown\n");
         return;
     }
+
 }                               /* inetNetToMediaTable_container_shutdown */
 
 /**
@@ -324,11 +252,37 @@ inetNetToMediaTable_container_shutdown(netsnmp_container *container_ptr)
 int
 inetNetToMediaTable_container_load(netsnmp_container *container)
 {
+    netsnmp_container *arp_container;
+
     DEBUGMSGTL(("verbose:inetNetToMediaTable:inetNetToMediaTable_cache_load", "called\n"));
 
-    arp_access->magic = container;
-    if (netsnmp_access_arp_load(arp_access) < 0)
-        return MFD_ERROR;
+    /*
+     * TODO:351:M: |-> Load/update data in the inetNetToMediaTable container.
+     * loop over your inetNetToMediaTable data, allocate a rowreq context,
+     * set the index(es) [and data, optionally] and insert into
+     * the container.
+     */
+    arp_container =
+        netsnmp_access_arp_container_load(NULL,
+                                          NETSNMP_ACCESS_ARP_LOAD_NOFLAGS);
+    if (NULL == arp_container)
+        return MFD_RESOURCE_UNAVAILABLE;        /* msg already logged */
+
+    /*
+     * we just got a fresh copy of data. snarf data
+     */
+    CONTAINER_FOR_EACH(arp_container,
+                       (netsnmp_container_obj_func *) _snarf_arp_entry,
+                       container);
+
+    /*
+     * free the container. we've either claimed each entry, or released it,
+     * so the access function doesn't need to clear the container.
+     */
+    netsnmp_access_arp_container_free(arp_container,
+                                      NETSNMP_ACCESS_ARP_FREE_DONT_CLEAR);
+
+    DEBUGMSGT(("verbose:inetNetToMediaTable:inetNetToMediaTable_cache_load", "%d records\n", CONTAINER_SIZE(container)));
 
     return MFD_SUCCESS;
 }                               /* inetNetToMediaTable_container_load */
@@ -351,11 +305,6 @@ inetNetToMediaTable_container_free(netsnmp_container *container)
 {
     DEBUGMSGTL(("verbose:inetNetToMediaTable:inetNetToMediaTable_container_free", "called\n"));
 
-    if (NULL != arp_access) {
-        netsnmp_access_arp_unload(arp_access);
-        arp_access->magic = NULL;
-    }
-
     /*
      * TODO:380:M: Free inetNetToMediaTable container data.
      */
diff --git a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.h b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.h
index cc0434b..d1638cf 100644
--- a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.h
+++ b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: inetNetToMediaTable_data_access.h 13759 2005-12-01 00:45:50Z rstory $
  */
 #ifndef INETNETTOMEDIATABLE_DATA_ACCESS_H
 #define INETNETTOMEDIATABLE_DATA_ACCESS_H
diff --git a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c
index c18689a..3339309 100644
--- a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c
+++ b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: inetNetToMediaTable_interface.c 15781 2007-01-23 22:55:06Z rstory $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -47,19 +46,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_child_of(inetNetToMediaTable_external_access, libnetsnmpmibs)
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(table_container_row_insert)
-netsnmp_feature_require(check_all_requests_error)
-
-
-netsnmp_feature_child_of(inetNetToMediaTable_container_size, inetNetToMediaTable_external_access)
-netsnmp_feature_child_of(inetNetToMediaTable_registration_set, inetNetToMediaTable_external_access)
-netsnmp_feature_child_of(inetNetToMediaTable_registration_get, inetNetToMediaTable_external_access)
-netsnmp_feature_child_of(inetNetToMediaTable_container_get, inetNetToMediaTable_external_access)
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -96,23 +82,19 @@ static void
                 _inetNetToMediaTable_container_shutdown(inetNetToMediaTable_interface_ctx *
                                                         if_ctx);
 
-#ifndef NETSNMP_FEATURE_REMOVE_INETNETTOMEDIATABLE_CONTAINER_GET
+
 netsnmp_container *
 inetNetToMediaTable_container_get(void)
 {
     return inetNetToMediaTable_if_ctx.container;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INETNETTOMEDIATABLE_CONTAINER_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_INETNETTOMEDIATABLE_REGISTRATION_GET
 inetNetToMediaTable_registration *
 inetNetToMediaTable_registration_get(void)
 {
     return inetNetToMediaTable_if_ctx.user_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INETNETTOMEDIATABLE_REGISTRATION_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_INETNETTOMEDIATABLE_REGISTRATION_SET
 inetNetToMediaTable_registration *
 inetNetToMediaTable_registration_set(inetNetToMediaTable_registration *
                                      newreg)
@@ -122,15 +104,12 @@ inetNetToMediaTable_registration_set(inetNetToMediaTable_registration *
     inetNetToMediaTable_if_ctx.user_ctx = newreg;
     return old;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INETNETTOMEDIATABLE_REGISTRATION_SET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_INETNETTOMEDIATABLE_CONTAINER_SIZE
 int
 inetNetToMediaTable_container_size(void)
 {
     return CONTAINER_SIZE(inetNetToMediaTable_if_ctx.container);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INETNETTOMEDIATABLE_CONTAINER_SIZE */
 
 u_int
 inetNetToMediaTable_dirty_get(void)
@@ -154,7 +133,6 @@ static Netsnmp_Node_Handler _mfd_inetNetToMediaTable_pre_request;
 static Netsnmp_Node_Handler _mfd_inetNetToMediaTable_post_request;
 static Netsnmp_Node_Handler _mfd_inetNetToMediaTable_object_lookup;
 static Netsnmp_Node_Handler _mfd_inetNetToMediaTable_get_values;
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 static Netsnmp_Node_Handler _mfd_inetNetToMediaTable_check_objects;
 static Netsnmp_Node_Handler _mfd_inetNetToMediaTable_undo_setup;
 static Netsnmp_Node_Handler _mfd_inetNetToMediaTable_set_values;
@@ -170,7 +148,6 @@ NETSNMP_STATIC_INLINE int
                                                  rowreq_ctx,
                                                  netsnmp_variable_list *
                                                  var, int column);
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 NETSNMP_STATIC_INLINE int
                 _inetNetToMediaTable_check_indexes(inetNetToMediaTable_rowreq_ctx *
@@ -213,7 +190,7 @@ _inetNetToMediaTable_initialize_interface(inetNetToMediaTable_registration
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = INETNETTOMEDIATABLE_MIN_COL;
     tbl_info->max_column = INETNETTOMEDIATABLE_MAX_COL;
@@ -253,7 +230,6 @@ _inetNetToMediaTable_initialize_interface(inetNetToMediaTable_registration
         _mfd_inetNetToMediaTable_post_request;
 
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     /*
      * REQUIRED wrappers for set request handling
      */
@@ -278,7 +254,6 @@ _inetNetToMediaTable_initialize_interface(inetNetToMediaTable_registration
      */
     access_multiplexer->consistency_checks =
         _mfd_inetNetToMediaTable_check_dependencies;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     /*************************************************
      *
@@ -292,11 +267,8 @@ _inetNetToMediaTable_initialize_interface(inetNetToMediaTable_registration
         netsnmp_handler_registration_create("inetNetToMediaTable", handler,
                                             inetNetToMediaTable_oid,
                                             inetNetToMediaTable_oid_size,
-                                            HANDLER_CAN_BABY_STEP
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
-                                          | HANDLER_CAN_RWRITE
-#endif
-                                          );
+                                            HANDLER_CAN_BABY_STEP |
+                                            HANDLER_CAN_RWRITE);
     if (NULL == reginfo) {
         snmp_log(LOG_ERR, "error registering table inetNetToMediaTable\n");
         return;
@@ -309,12 +281,6 @@ _inetNetToMediaTable_initialize_interface(inetNetToMediaTable_registration
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -322,6 +288,11 @@ _inetNetToMediaTable_initialize_interface(inetNetToMediaTable_registration
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -337,7 +308,6 @@ _inetNetToMediaTable_initialize_interface(inetNetToMediaTable_registration
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -711,7 +681,7 @@ _mfd_inetNetToMediaTable_post_request(netsnmp_mib_handler *handler, netsnmp_hand
                                       *agtreq_info,
                                       netsnmp_request_info *requests)
 {
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -756,7 +726,6 @@ _mfd_inetNetToMediaTable_post_request(netsnmp_mib_handler *handler, netsnmp_hand
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_inetNetToMediaTable_post_request */
 
-
 /**
  * @internal
  * wrapper
@@ -830,7 +799,7 @@ _mfd_inetNetToMediaTable_object_lookup(netsnmp_mib_handler *handler, netsnmp_han
                                        netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetNetToMediaTable:_mfd_inetNetToMediaTable_object_lookup", "called\n"));
@@ -968,7 +937,7 @@ _mfd_inetNetToMediaTable_get_values(netsnmp_mib_handler *handler,
                                     *agtreq_info,
                                     netsnmp_request_info *requests)
 {
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1118,7 +1087,6 @@ _inetNetToMediaTable_check_indexes(inetNetToMediaTable_rowreq_ctx *
                                               user_ctx, rowreq_ctx);
 }                               /* _inetNetToMediaTable_check_indexes */
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 /***********************************************************************
  *
  * SET processing
@@ -1279,7 +1247,7 @@ _mfd_inetNetToMediaTable_check_objects(netsnmp_mib_handler *handler, netsnmp_han
                                        *agtreq_info,
                                        netsnmp_request_info *requests)
 {
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1327,7 +1295,7 @@ _mfd_inetNetToMediaTable_check_dependencies(netsnmp_mib_handler *handler, netsnm
                                             netsnmp_request_info *requests)
 {
     int             rc;
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:inetNetToMediaTable:_mfd_inetNetToMediaTable_check_dependencies", "called\n"));
 
@@ -1413,7 +1381,7 @@ _mfd_inetNetToMediaTable_undo_setup(netsnmp_mib_handler *handler,
                                     netsnmp_request_info *requests)
 {
     int             rc;
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetNetToMediaTable:_mfd_inetNetToMediaTable_undo_setup", "called\n"));
@@ -1478,7 +1446,7 @@ _mfd_inetNetToMediaTable_undo_cleanup(netsnmp_mib_handler *handler, netsnmp_hand
                                       *agtreq_info,
                                       netsnmp_request_info *requests)
 {
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1584,7 +1552,7 @@ _mfd_inetNetToMediaTable_set_values(netsnmp_mib_handler *handler,
                                     *agtreq_info,
                                     netsnmp_request_info *requests)
 {
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1632,7 +1600,7 @@ _mfd_inetNetToMediaTable_commit(netsnmp_mib_handler *handler,
                                 netsnmp_request_info *requests)
 {
     int             rc;
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetNetToMediaTable:_mfd_inetNetToMediaTable_commit", "called\n"));
@@ -1666,7 +1634,7 @@ _mfd_inetNetToMediaTable_undo_commit(netsnmp_mib_handler *handler,
                                      netsnmp_request_info *requests)
 {
     int             rc;
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetNetToMediaTable:_mfd_inetNetToMediaTable_undo_commit", "called\n"));
@@ -1760,7 +1728,7 @@ _mfd_inetNetToMediaTable_undo_values(netsnmp_mib_handler *handler,
                                      netsnmp_request_info *requests)
 {
     int             rc;
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -1815,7 +1783,7 @@ _mfd_inetNetToMediaTable_irreversible_commit(netsnmp_mib_handler *handler, netsn
                                              *agtreq_info, netsnmp_request_info
                                              *requests)
 {
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetNetToMediaTable:_mfd_inetNetToMediaTable_irreversible:commit", "called\n"));
@@ -1842,7 +1810,6 @@ _mfd_inetNetToMediaTable_irreversible_commit(netsnmp_mib_handler *handler, netsn
 
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_inetNetToMediaTable_irreversible_commit */
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 /***********************************************************************
  *
@@ -1968,12 +1935,9 @@ _inetNetToMediaTable_container_init(inetNetToMediaTable_interface_ctx *
     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");
@@ -2001,7 +1965,6 @@ _inetNetToMediaTable_container_shutdown(inetNetToMediaTable_interface_ctx *
 }                               /* _inetNetToMediaTable_container_shutdown */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_INETNETTOMEDIATABLE_EXTERNAL_ACCESS
 inetNetToMediaTable_rowreq_ctx *
 inetNetToMediaTable_row_find_by_mib_index(inetNetToMediaTable_mib_index *
                                           mib_idx)
@@ -2024,9 +1987,8 @@ inetNetToMediaTable_row_find_by_mib_index(inetNetToMediaTable_mib_index *
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
+    rowreq_ctx =
         CONTAINER_FIND(inetNetToMediaTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INETNETTOMEDIATABLE_EXTERNAL_ACCESS */
diff --git a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.h b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.h
index 8cbb36f..a111a23 100644
--- a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.h
+++ b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: inetNetToMediaTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c
index f4bb085..ecd26a0 100644
--- a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c
+++ b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: ipAddressPrefixTable.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** \page MFD helper for ipAddressPrefixTable
  *
@@ -26,12 +26,11 @@
 
 #include "ipAddressPrefixTable_interface.h"
 
-const oid       ipAddressPrefixTable_oid[] = { IPADDRESSPREFIXTABLE_OID };
-const int       ipAddressPrefixTable_oid_size =
+oid             ipAddressPrefixTable_oid[] = { IPADDRESSPREFIXTABLE_OID };
+int             ipAddressPrefixTable_oid_size =
 OID_LENGTH(ipAddressPrefixTable_oid);
 
 ipAddressPrefixTable_registration ipAddressPrefixTable_user_context;
-static ipAddressPrefixTable_registration *ipAddressPrefixTable_user_context_p;
 
 void            initialize_table_ipAddressPrefixTable(void);
 void            shutdown_table_ipAddressPrefixTable(void);
@@ -76,6 +75,7 @@ shutdown_ipAddressPrefixTable(void)
 void
 initialize_table_ipAddressPrefixTable(void)
 {
+    ipAddressPrefixTable_registration *user_context;
     u_long          flags;
 
     DEBUGMSGTL(("verbose:ipAddressPrefixTable:initialize_table_ipAddressPrefixTable", "called\n"));
@@ -93,8 +93,8 @@ initialize_table_ipAddressPrefixTable(void)
      * a netsnmp_data_list is a simple way to store void pointers. A simple
      * string token is used to add, find or remove pointers.
      */
-    ipAddressPrefixTable_user_context_p
-	= netsnmp_create_data_list("ipAddressPrefixTable", NULL, NULL);
+    user_context =
+        netsnmp_create_data_list("ipAddressPrefixTable", NULL, NULL);
 
     /*
      * No support for any flags yet, but in the future you would
@@ -105,8 +105,7 @@ initialize_table_ipAddressPrefixTable(void)
     /*
      * call interface initialization code
      */
-    _ipAddressPrefixTable_initialize_interface
-	(ipAddressPrefixTable_user_context_p, flags);
+    _ipAddressPrefixTable_initialize_interface(user_context, flags);
 }                               /* initialize_table_ipAddressPrefixTable */
 
 /**
@@ -119,9 +118,7 @@ shutdown_table_ipAddressPrefixTable(void)
      * call interface shutdown code
      */
     _ipAddressPrefixTable_shutdown_interface
-        (ipAddressPrefixTable_user_context_p);
-    netsnmp_free_all_list_data(ipAddressPrefixTable_user_context_p);
-    ipAddressPrefixTable_user_context_p = NULL;
+        (&ipAddressPrefixTable_user_context);
 }
 
 /**
@@ -255,7 +252,7 @@ ipAddressPrefixTable_indexes_set_tbl_idx(ipAddressPrefixTable_mib_index *
                                          tbl_idx,
                                          long ipAddressPrefixIfIndex_val,
                                          u_long ipAddressPrefixType_val,
-                                         u_char
+                                         char
                                          *ipAddressPrefixPrefix_val_ptr,
                                          size_t
                                          ipAddressPrefixPrefix_val_ptr_len,
@@ -318,7 +315,7 @@ ipAddressPrefixTable_indexes_set(ipAddressPrefixTable_rowreq_ctx *
                                  rowreq_ctx,
                                  long ipAddressPrefixIfIndex_val,
                                  u_long ipAddressPrefixType_val,
-                                 u_char *ipAddressPrefixPrefix_val_ptr,
+                                 char *ipAddressPrefixPrefix_val_ptr,
                                  size_t ipAddressPrefixPrefix_val_ptr_len,
                                  u_long ipAddressPrefixLength_val)
 {
@@ -395,9 +392,10 @@ ipAddressPrefixOrigin_get(ipAddressPrefixTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipAddressPrefixOrigin data.
      * copy (* ipAddressPrefixOrigin_val_ptr ) from rowreq_ctx->data
      */
-          (*ipAddressPrefixOrigin_val_ptr) = rowreq_ctx->data.ipAddressPrefixOrigin;
-    
-           return MFD_SUCCESS;
+    (*ipAddressPrefixOrigin_val_ptr) =
+        rowreq_ctx->data.ipAddressPrefixOrigin;
+
+    return MFD_SUCCESS;
 }                               /* ipAddressPrefixOrigin_get */
 
 /*---------------------------------------------------------------------
@@ -593,7 +591,7 @@ ipAddressPrefixAdvPreferredLifetime_get(ipAddressPrefixTable_rowreq_ctx *
      * copy (* ipAddressPrefixAdvPreferredLifetime_val_ptr ) from rowreq_ctx->data
      */
     if (INETADDRESSTYPE_IPV4 == rowreq_ctx->tbl_idx.ipAddressPrefixType)
-        (*ipAddressPrefixAdvPreferredLifetime_val_ptr) = 4294967295U;    /* per MIB */
+        (*ipAddressPrefixAdvPreferredLifetime_val_ptr) = 4294967295;    /* per MIB */
     else
         (*ipAddressPrefixAdvPreferredLifetime_val_ptr) =
             rowreq_ctx->data.ipAddressPrefixAdvPreferredLifetime;
@@ -660,7 +658,7 @@ ipAddressPrefixAdvValidLifetime_get(ipAddressPrefixTable_rowreq_ctx *
      * copy (* ipAddressPrefixAdvValidLifetime_val_ptr ) from rowreq_ctx->data
      */
     if (INETADDRESSTYPE_IPV4 == rowreq_ctx->tbl_idx.ipAddressPrefixType)
-        (*ipAddressPrefixAdvValidLifetime_val_ptr) = 4294967295U;        /* per MIB */
+        (*ipAddressPrefixAdvValidLifetime_val_ptr) = 4294967295;        /* 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 24b22a2..5030f98 100644
--- a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+++ b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: ipAddressPrefixTable.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 #ifndef IPADDRESSPREFIXTABLE_H
 #define IPADDRESSPREFIXTABLE_H
@@ -211,8 +211,8 @@ config_require(ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access)
         * ipAddressPrefixTable_row_find_by_mib_index
         (ipAddressPrefixTable_mib_index * mib_idx);
 
-    extern const oid      ipAddressPrefixTable_oid[];
-    extern const int      ipAddressPrefixTable_oid_size;
+    extern oid      ipAddressPrefixTable_oid[];
+    extern int      ipAddressPrefixTable_oid_size;
 
 
 #include "ipAddressPrefixTable_interface.h"
@@ -271,7 +271,7 @@ config_require(ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access)
         ipAddressPrefixTable_indexes_set_tbl_idx
         (ipAddressPrefixTable_mib_index * tbl_idx,
          long ipAddressPrefixIfIndex_val, u_long ipAddressPrefixType_val,
-         u_char *ipAddressPrefixPrefix_val_ptr,
+         char *ipAddressPrefixPrefix_val_ptr,
          size_t ipAddressPrefixPrefix_val_ptr_len,
          u_long ipAddressPrefixLength_val);
     int
@@ -279,7 +279,7 @@ config_require(ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access)
                                          rowreq_ctx,
                                          long ipAddressPrefixIfIndex_val,
                                          u_long ipAddressPrefixType_val,
-                                         u_char
+                                         char
                                          *ipAddressPrefixPrefix_val_ptr,
                                          size_t
                                          ipAddressPrefixPrefix_val_ptr_len,
diff --git a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_constants.h b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_constants.h
index 5ecade4..d9c0cb0 100644
--- a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_constants.h
+++ b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: ipAddressPrefixTable_constants.h 13763 2005-12-01 15:49:39Z rstory $
  */
 #ifndef IPADDRESSPREFIXTABLE_CONSTANTS_H
 #define IPADDRESSPREFIXTABLE_CONSTANTS_H
@@ -137,17 +137,3 @@ extern          "C" {
 }
 #endif
 #endif                          /* IPADDRESSPREFIXTABLE_OIDS_H */
-/****************************************************************
-* Additional constants and definitions for common implementation
-*/
-#define INFINITY_LIFE_TIME      0xFFFFFFFFU
-#define NIP6(addr) \
-        ntohs((addr).s6_addr16[0]), \
-        ntohs((addr).s6_addr16[1]), \
-        ntohs((addr).s6_addr16[2]), \
-        ntohs((addr).s6_addr16[3]), \
-        ntohs((addr).s6_addr16[4]), \
-        ntohs((addr).s6_addr16[5]), \
-        ntohs((addr).s6_addr16[6]), \
-        ntohs((addr).s6_addr16[7])
-
diff --git a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c
index 4437829..f853e67 100644
--- a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c
+++ b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c
@@ -2,13 +2,12 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: ipAddressPrefixTable_data_access.c 17722 2009-08-05 19:05:47Z dts12 $
  */
 /*
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -22,10 +21,6 @@
 
 #include "ip-mib/ipAddressTable/ipAddressTable.h"
 
-netsnmp_feature_require(ipAddressTable_container_get)
-netsnmp_feature_require(ipaddress_common_copy_utilities)
-netsnmp_feature_require(ipaddress_prefix_copy)
-
 /** @ingroup interface 
  * @addtogroup data_access data_access: Routines to access data
  *
@@ -207,7 +202,7 @@ ipAddressPrefixTable_container_load(netsnmp_container *container)
     ipAddressTable_rowreq_ctx *addr_rowreq_ctx;
     netsnmp_container *addr_container;
     netsnmp_iterator *addr_it;
-    int             count = 0;
+    size_t          count = 0;
     u_char          tmp_pfx[NETSNMP_ACCESS_IPADDRESS_BUF_SIZE];
 
     DEBUGMSGTL(("verbose:ipAddressPrefixTable:ipAddressPrefixTable_container_load", "called\n"));
@@ -256,23 +251,6 @@ ipAddressPrefixTable_container_load(netsnmp_container *container)
                                       ia_address_len,
                                       addr_rowreq_ctx->data->
                                       ia_prefix_len);
-        netsnmp_ipaddress_flags_copy(&rowreq_ctx->data.
-                                     ipAddressPrefixAdvPreferredLifetime,
-                                     &rowreq_ctx->data.
-                                     ipAddressPrefixAdvValidLifetime,
-                                     &rowreq_ctx->data.
-                                     ipAddressPrefixOnLinkFlag,
-                                     &rowreq_ctx->data.
-                                     ipAddressPrefixAutonomousFlag,  
-                                     &addr_rowreq_ctx->data->
-                                     ia_prefered_lifetime,
-                                     &addr_rowreq_ctx->data->
-                                     ia_valid_lifetime,
-                                     &addr_rowreq_ctx->data->
-                                     ia_onlink_flag,
-                                     &addr_rowreq_ctx->data->
-                                     ia_autonomous_flag);
-
         if (MFD_SUCCESS !=
             ipAddressPrefixTable_indexes_set(rowreq_ctx,
                                              addr_rowreq_ctx->data->
@@ -287,7 +265,6 @@ ipAddressPrefixTable_container_load(netsnmp_container *container)
                      "error setting index while loading "
                      "ipAddressPrefixTable data.\n");
             ipAddressPrefixTable_release_rowreq_ctx(rowreq_ctx);
-            rowreq_ctx = NULL;
             continue;
         }
 
@@ -300,14 +277,8 @@ ipAddressPrefixTable_container_load(netsnmp_container *container)
          * TODO:352:r: |   |-> populate ipAddressPrefixTable data context.
          * Populate data context here. (optionally, delay until row prep)
          */
-           netsnmp_ipaddress_prefix_origin_copy(&rowreq_ctx->data.
-                                             ipAddressPrefixOrigin,
-                                             addr_rowreq_ctx->data->
-                                             ia_origin,
-                                             addr_rowreq_ctx->data->
-                                             flags,
-                                             addr_rowreq_ctx->tbl_idx.
-                                             ipAddressAddrType);
+        rowreq_ctx->data.ipAddressPrefixOrigin =
+            addr_rowreq_ctx->data->ia_origin;
 
         /** defer the rest til row prep */
 
diff --git a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.h b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.h
index e50d7d0..4f20577 100644
--- a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.h
+++ b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: ipAddressPrefixTable_data_access.h 13763 2005-12-01 15:49:39Z rstory $
  */
 #ifndef IPADDRESSPREFIXTABLE_DATA_ACCESS_H
 #define IPADDRESSPREFIXTABLE_DATA_ACCESS_H
diff --git a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.c b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.c
index e14a337..7159836 100644
--- a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.c
+++ b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: ipAddressPrefixTable_interface.c 15015 2006-08-17 15:06:43Z rstory $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -47,16 +46,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(check_all_requests_error)
-
-netsnmp_feature_child_of(ipaddressprefixtable_row_find_by_mib_index, ipaddressprefixtable_all)
-netsnmp_feature_child_of(ipaddressprefixtable_container_get, ipaddressprefixtable_all)
-netsnmp_feature_child_of(ipAddressPrefixTable_registration_get, ipaddressprefixtable_all)
-netsnmp_feature_child_of(ipAddressPrefixTable_registration_set, ipaddressprefixtable_all)
-netsnmp_feature_child_of(ipAddressPrefixTable_container_size, ipaddressprefixtable_all)
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -92,23 +81,18 @@ static void
                                                          * if_ctx);
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESSPREFIXTABLE_CONTAINER_GET
 netsnmp_container *
 ipAddressPrefixTable_container_get(void)
 {
     return ipAddressPrefixTable_if_ctx.container;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESSPREFIXTABLE_CONTAINER_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESSPREFIXTABLE_REGISTRATION_GET
 ipAddressPrefixTable_registration *
 ipAddressPrefixTable_registration_get(void)
 {
     return ipAddressPrefixTable_if_ctx.user_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESSPREFIXTABLE_REGISTRATION_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESSPREFIXTABLE_REGISTRATION_SET
 ipAddressPrefixTable_registration *
 ipAddressPrefixTable_registration_set(ipAddressPrefixTable_registration *
                                       newreg)
@@ -118,15 +102,12 @@ ipAddressPrefixTable_registration_set(ipAddressPrefixTable_registration *
     ipAddressPrefixTable_if_ctx.user_ctx = newreg;
     return old;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESSPREFIXTABLE_REGISTRATION_SET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESSPREFIXTABLE_CONTAINER_SIZE
 int
 ipAddressPrefixTable_container_size(void)
 {
     return CONTAINER_SIZE(ipAddressPrefixTable_if_ctx.container);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESSPREFIXTABLE_CONTAINER_SIZE */
 
 /*
  * mfd multiplexer modes
@@ -174,7 +155,7 @@ void
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = IPADDRESSPREFIXTABLE_MIN_COL;
     tbl_info->max_column = IPADDRESSPREFIXTABLE_MAX_COL;
@@ -243,13 +224,6 @@ void
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
-    /* XXX - are these actually necessary? */
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -257,6 +231,11 @@ void
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -272,7 +251,6 @@ void
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -869,7 +847,6 @@ _mfd_ipAddressPrefixTable_get_values(netsnmp_mib_handler *handler,
 }                               /* _mfd_ipAddressPrefixTable_get_values */
 
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 /***********************************************************************
  *
  * SET processing
@@ -879,8 +856,6 @@ _mfd_ipAddressPrefixTable_get_values(netsnmp_mib_handler *handler,
 /*
  * SET PROCESSING NOT APPLICABLE (per MIB or user setting)
  */
-#endif
-
 /***********************************************************************
  *
  * DATA ACCESS
@@ -1034,7 +1009,6 @@ _ipAddressPrefixTable_container_shutdown(ipAddressPrefixTable_interface_ctx
 }                               /* _ipAddressPrefixTable_container_shutdown */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESSPREFIXTABLE_ROW_FIND_BY_MIB_INDEX
 ipAddressPrefixTable_rowreq_ctx *
 ipAddressPrefixTable_row_find_by_mib_index(ipAddressPrefixTable_mib_index *
                                            mib_idx)
@@ -1062,4 +1036,3 @@ ipAddressPrefixTable_row_find_by_mib_index(ipAddressPrefixTable_mib_index *
 
     return rowreq_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESSPREFIXTABLE_ROW_FIND_BY_MIB_INDEX */
diff --git a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.h b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.h
index 28308b5..ca829ac 100644
--- a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.h
+++ b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: ipAddressPrefixTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c
index deff4e9..e695ab3 100644
--- a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c
+++ b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: ipAddressTable.c 15640 2006-12-06 15:10:40Z rstory $
  */
 /** \page MFD helper for ipAddressTable
  *
@@ -14,7 +14,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -29,15 +28,10 @@
 
 #include "ipAddressTable_interface.h"
 
-netsnmp_feature_require(check_storage_transition)
-netsnmp_feature_require(ipaddress_entry_copy)
-netsnmp_feature_require(ipaddress_prefix_copy)
-
-const oid       ipAddressTable_oid[] = { IPADDRESSTABLE_OID };
-const int       ipAddressTable_oid_size = OID_LENGTH(ipAddressTable_oid);
+oid             ipAddressTable_oid[] = { IPADDRESSTABLE_OID };
+int             ipAddressTable_oid_size = OID_LENGTH(ipAddressTable_oid);
 
 ipAddressTable_registration ipAddressTable_user_context;
-static ipAddressTable_registration *ipAddressTable_user_context_p;
 
 void            initialize_table_ipAddressTable(void);
 void            shutdown_table_ipAddressTable(void);
@@ -81,6 +75,7 @@ shutdown_ipAddressTable(void)
 void
 initialize_table_ipAddressTable(void)
 {
+    ipAddressTable_registration *user_context;
     u_long          flags;
 
     DEBUGMSGTL(("verbose:ipAddressTable:initialize_table_ipAddressTable",
@@ -95,7 +90,7 @@ initialize_table_ipAddressTable(void)
      * if you'd like to pass in a pointer to some data for this
      * table, allocate or set it up here.
      */
-    ipAddressTable_user_context_p = NULL;
+    user_context = NULL;
 
     /*
      * No support for any flags yet, but in the future you would
@@ -106,7 +101,7 @@ initialize_table_ipAddressTable(void)
     /*
      * call interface initialization code
      */
-    _ipAddressTable_initialize_interface(ipAddressTable_user_context_p, flags);
+    _ipAddressTable_initialize_interface(user_context, flags);
 }                               /* initialize_table_ipAddressTable */
 
 /**
@@ -118,9 +113,7 @@ shutdown_table_ipAddressTable(void)
     /*
      * call interface shutdown code
      */
-    _ipAddressTable_shutdown_interface(ipAddressTable_user_context_p);
-    netsnmp_free_all_list_data(ipAddressTable_user_context_p);
-    ipAddressTable_user_context_p = NULL;
+    _ipAddressTable_shutdown_interface(&ipAddressTable_user_context);
 }
 
 /**
@@ -338,8 +331,8 @@ The address type of ipAddressAddr.
  *  Otherwise, just do a direct copy.
  */
 int
-ipAddressAddrType_map(long * mib_ipAddressAddrType_val_ptr,
-                      long raw_ipAddressAddrType_val)
+ipAddressAddrType_map(u_long * mib_ipAddressAddrType_val_ptr,
+                      u_long raw_ipAddressAddrType_val)
 {
     netsnmp_assert(NULL != mib_ipAddressAddrType_val_ptr);
 
@@ -387,8 +380,8 @@ ipAddressAddrType_map(long * mib_ipAddressAddrType_val_ptr,
  */
 int
 ipAddressTable_indexes_set_tbl_idx(ipAddressTable_mib_index * tbl_idx,
-                                   long ipAddressAddrType_val,
-                                   u_char *ipAddressAddr_val_ptr,
+                                   u_long ipAddressAddrType_val,
+                                   char *ipAddressAddr_val_ptr,
                                    size_t ipAddressAddr_val_ptr_len)
 {
     DEBUGMSGTL(("verbose:ipAddressTable:ipAddressTable_indexes_set_tbl_idx", "called\n"));
@@ -436,7 +429,7 @@ ipAddressTable_indexes_set_tbl_idx(ipAddressTable_mib_index * tbl_idx,
 int
 ipAddressTable_indexes_set(ipAddressTable_rowreq_ctx * rowreq_ctx,
                            u_long ipAddressAddrType_val,
-                           u_char *ipAddressAddr_val_ptr,
+                           char *ipAddressAddr_val_ptr,
                            size_t ipAddressAddr_val_ptr_len)
 {
     DEBUGMSGTL(("verbose:ipAddressTable:ipAddressTable_indexes_set",
@@ -631,7 +624,7 @@ ipAddressPrefix_get(ipAddressTable_rowreq_ctx * rowreq_ctx,
     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];
-    size_t          len;
+    int             len;
 
    /** we should have a non-NULL pointer and enough storage */
     netsnmp_assert((NULL != ipAddressPrefix_val_ptr_ptr)
@@ -652,7 +645,7 @@ ipAddressPrefix_get(ipAddressTable_rowreq_ctx * rowreq_ctx,
     *(dst++) = rowreq_ctx->tbl_idx.ipAddressAddrType;
     *(dst++) = rowreq_ctx->data->ia_address_len;
     netsnmp_ipaddress_prefix_copy(tmp_buf,
-                                  (u_char *) rowreq_ctx->tbl_idx.ipAddressAddr,
+                                  rowreq_ctx->tbl_idx.ipAddressAddr,
                                   rowreq_ctx->data->ia_address_len,
                                   rowreq_ctx->data->ia_prefix_len);
     for (len = 0; len < rowreq_ctx->data->ia_address_len; ++len)
@@ -662,7 +655,7 @@ ipAddressPrefix_get(ipAddressTable_rowreq_ctx * rowreq_ctx,
 
     len *= sizeof((*ipAddressPrefix_val_ptr_ptr)[0]);
     if ((*ipAddressPrefix_val_ptr_len_ptr) < len) {
-        (*ipAddressPrefix_val_ptr_ptr) = (oid*)malloc(len);
+        (*ipAddressPrefix_val_ptr_ptr) = malloc(len);
         if (NULL == (*ipAddressPrefix_val_ptr_ptr)) {
             snmp_log(LOG_ERR, "could not allocate memory\n");
             return MFD_ERROR;
@@ -949,10 +942,7 @@ ipAddressRowStatus_get(ipAddressTable_rowreq_ctx * rowreq_ctx,
     netsnmp_assert(NULL != ipAddressRowStatus_val_ptr);
 
     /** WARNING: this code might not work for netsnmp_ipaddress_entry */
-    if(rowreq_ctx->data->if_index)
-       (*ipAddressRowStatus_val_ptr) = rowreq_ctx->ipAddressRowStatus;
-    else
-       (*ipAddressRowStatus_val_ptr) = ROWSTATUS_NOTREADY;
+    (*ipAddressRowStatus_val_ptr) = rowreq_ctx->ipAddressRowStatus;
 
     return MFD_SUCCESS;
 }                               /* ipAddressRowStatus_get */
@@ -1266,6 +1256,7 @@ int
 ipAddressTable_commit(ipAddressTable_rowreq_ctx * rowreq_ctx)
 {
     int             rc = MFD_SUCCESS;
+    int             save_flags;
 
     DEBUGMSGTL(("verbose:ipAddressTable:ipAddressTable_commit",
                 "called\n"));
@@ -1274,8 +1265,14 @@ ipAddressTable_commit(ipAddressTable_rowreq_ctx * rowreq_ctx)
     netsnmp_assert(NULL != rowreq_ctx);
 
     /*
+     * save flags, then clear until we actually do something
+     */
+    save_flags = rowreq_ctx->column_set_flags;
+    rowreq_ctx->column_set_flags = 0;
+
+    /*
      * commit ipAddressTable data
-     * 1) check the column's flag to see if it was set.
+     * 1) check the column's flag in save_flags to see if it was set.
      * 2) clear the flag when you handle that column
      * 3) set the column's flag in column_set_flags if it needs undo
      *    processing in case of a failure.
@@ -1283,7 +1280,7 @@ ipAddressTable_commit(ipAddressTable_rowreq_ctx * rowreq_ctx)
     /*
      * did anything change?
      */
-    if (0 == rowreq_ctx->column_set_flags) {
+    if (0 == save_flags) {
         DEBUGMSGTL(("ipAddressTable:ipAddressTable_commit",
                     "no change\n"));
         return MFD_SUCCESS;
@@ -1293,10 +1290,12 @@ ipAddressTable_commit(ipAddressTable_rowreq_ctx * rowreq_ctx)
      * pass everything to data access
      * let data access know what columns are set
      */
-    rowreq_ctx->data->flags = rowreq_ctx->column_set_flags;
+    rowreq_ctx->data->flags = save_flags;
 
-    if (rowreq_ctx->column_set_flags & COLUMN_IPADDRESSROWSTATUS_FLAG) {
+    if (save_flags & COLUMN_IPADDRESSROWSTATUS_FLAG) {
         if (rowreq_ctx->rowreq_flags & MFD_ROW_CREATED) {
+            netsnmp_assert(ROWSTATUS_CREATEANDGO ==
+                           rowreq_ctx->ipAddressRowStatus);
             rowreq_ctx->data->flags |= NETSNMP_ACCESS_IPADDRESS_CREATE;
             rowreq_ctx->ipAddressCreated = netsnmp_get_agent_uptime();
         } else if (ROWSTATUS_DESTROY == rowreq_ctx->ipAddressRowStatus) {
@@ -1316,6 +1315,10 @@ ipAddressTable_commit(ipAddressTable_rowreq_ctx * rowreq_ctx)
         rc = MFD_ERROR;
     } else {
         rowreq_ctx->ipAddressLastChanged = netsnmp_get_agent_uptime();
+        /*
+         * set flag, in case we need to undo
+         */
+        rowreq_ctx->column_set_flags |= save_flags;
     }
 
     /*
@@ -1325,6 +1328,12 @@ ipAddressTable_commit(ipAddressTable_rowreq_ctx * rowreq_ctx)
         rowreq_ctx->rowreq_flags |= MFD_ROW_DIRTY;
     }
 
+    if (save_flags) {
+        snmp_log(LOG_ERR, "unhandled columns (0x%x) in commit\n",
+                 save_flags);
+        return MFD_ERROR;
+    }
+
     return rc;
 }                               /* ipAddressTable_commit */
 
@@ -1477,7 +1486,7 @@ ipAddressIfIndex_check_value(ipAddressTable_rowreq_ctx * rowreq_ctx,
     /*
      * if the new value is the same as the old, accept it.
      */
-    if (ipAddressIfIndex_val == (long)rowreq_ctx->data->if_index)
+    if (ipAddressIfIndex_val == rowreq_ctx->data->if_index)
         return MFD_SUCCESS;
 
     /*
@@ -1494,7 +1503,7 @@ ipAddressIfIndex_check_value(ipAddressTable_rowreq_ctx * rowreq_ctx,
      * find name for ifIndex
      */
     if (NULL == netsnmp_access_interface_name_find(ipAddressIfIndex_val)) {
-        DEBUGMSGT(("ipAddressTable", "cant find name for index %ld\n",
+        DEBUGMSGT(("ipAddressTable", "cant find name for index %d\n",
                    ipAddressIfIndex_val));
         return MFD_NOT_VALID_NOW;
     }
@@ -1564,8 +1573,8 @@ ipAddressIfIndex_set(ipAddressTable_rowreq_ctx * rowreq_ctx,
      * TODO:461:M: |-> Set ipAddressIfIndex value.
      * set ipAddressIfIndex value in rowreq_ctx->data
      */
-    if (rowreq_ctx->data->if_index != (oid)ipAddressIfIndex_val)
-        rowreq_ctx->data->if_index  = (oid)ipAddressIfIndex_val;
+    if (rowreq_ctx->data->if_index != ipAddressIfIndex_val)
+        rowreq_ctx->data->if_index = ipAddressIfIndex_val;
     else
         rowreq_ctx->column_set_flags &= ~COLUMN_IPADDRESSIFINDEX_FLAG;
 
@@ -2040,7 +2049,7 @@ ipAddressRowStatus_check_value(ipAddressTable_rowreq_ctx * rowreq_ctx,
                                     ipAddressRowStatus_val);
     if (MFD_SUCCESS != rc) {
         DEBUGMSGTL(("ipAddressTable",
-                    "row status transition from %d to %lu\n",
+                    "row status transition from %d to %d\n",
                     rowreq_ctx->ipAddressRowStatus,
                     ipAddressRowStatus_val));
         return rc;
diff --git a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
index fe8f04a..6f4cafe 100644
--- a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
+++ b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: ipAddressTable.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 #ifndef IPADDRESSTABLE_H
 #define IPADDRESSTABLE_H
@@ -96,13 +96,13 @@ config_require(ip-mib/ipAddressTable/ipAddressTable_data_access)
         /*
          * ipAddressAddrType(1)/InetAddressType/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h
          */
-        long            ipAddressAddrType;
+        u_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 */
-        u_char          ipAddressAddr[116];
+        char            ipAddressAddr[116];
         size_t          ipAddressAddr_len;
 
 
@@ -197,8 +197,8 @@ config_require(ip-mib/ipAddressTable/ipAddressTable_data_access)
         * ipAddressTable_row_find_by_mib_index(ipAddressTable_mib_index *
                                                mib_idx);
 
-    extern const oid      ipAddressTable_oid[];
-    extern const int      ipAddressTable_oid_size;
+    extern oid      ipAddressTable_oid[];
+    extern int      ipAddressTable_oid_size;
 
 
 #include "ipAddressTable_interface.h"
@@ -227,9 +227,9 @@ config_require(ip-mib/ipAddressTable/ipAddressTable_data_access)
     /*
      * indexes
      */
-    int             ipAddressAddrType_map(long *
+    int             ipAddressAddrType_map(u_long *
                                           mib_ipAddressAddrType_val_ptr,
-                                          long
+                                          u_long
                                           raw_ipAddressAddrType_val);
 
     int             ipAddressIfIndex_get(ipAddressTable_rowreq_ctx *
@@ -270,15 +270,15 @@ config_require(ip-mib/ipAddressTable/ipAddressTable_data_access)
     int
         ipAddressTable_indexes_set_tbl_idx(ipAddressTable_mib_index *
                                            tbl_idx,
-                                           long ipAddressAddrType_val,
-                                           u_char *ipAddressAddr_val_ptr,
+                                           u_long ipAddressAddrType_val,
+                                           char *ipAddressAddr_val_ptr,
                                            size_t
                                            ipAddressAddr_val_ptr_len);
     int             ipAddressTable_indexes_set(ipAddressTable_rowreq_ctx *
                                                rowreq_ctx,
                                                u_long
                                                ipAddressAddrType_val,
-                                               u_char *ipAddressAddr_val_ptr,
+                                               char *ipAddressAddr_val_ptr,
                                                size_t
                                                ipAddressAddr_val_ptr_len);
 
diff --git a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_constants.h b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_constants.h
index 7e88550..e7a7ae5 100644
--- a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_constants.h
+++ b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: ipAddressTable_constants.h 13767 2005-12-01 17:00:57Z rstory $
  */
 #ifndef IPADDRESSTABLE_CONSTANTS_H
 #define IPADDRESSTABLE_CONSTANTS_H
diff --git a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c
index d80b3e7..f7b0fa4 100644
--- a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c
+++ b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c
@@ -2,13 +2,12 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: ipAddressTable_data_access.c 16381 2007-05-17 21:53:28Z hardaker $
  */
 /*
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -23,8 +22,6 @@
 #include <sys/ioctl.h>
 #include <errno.h>
 
-netsnmp_feature_require(container_lifo)
-netsnmp_feature_require(ipaddress_entry_update)
 
 /** @ingroup interface 
  * @addtogroup data_access data_access: Routines to access data
@@ -137,7 +134,6 @@ ipAddressTable_container_init(netsnmp_container **container_ptr_ptr,
     *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,
@@ -205,13 +201,13 @@ static void
 _check_entry_for_updates(ipAddressTable_rowreq_ctx * rowreq_ctx,
                          void **magic)
 {
-    netsnmp_container *ipaddress_container = (netsnmp_container*)magic[0];
-    netsnmp_container *to_delete           = (netsnmp_container*)magic[1];
+    netsnmp_container *ipaddress_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*)
+    netsnmp_ipaddress_entry *ipaddress_entry =
         CONTAINER_FIND(ipaddress_container, rowreq_ctx->data);
     if (NULL == ipaddress_entry) {
         DEBUGMSGTL(("ipAddressTable:access", "removing missing entry\n"));
@@ -383,7 +379,7 @@ ipAddressTable_container_load(netsnmp_container *container)
             /*
              * get from delete list
              */
-            tmp_ctx = (ipAddressTable_rowreq_ctx*)CONTAINER_FIRST(tmp_container);
+            tmp_ctx = CONTAINER_FIRST(tmp_container);
 
             /*
              * release context, delete from table container
@@ -399,7 +395,7 @@ ipAddressTable_container_load(netsnmp_container *container)
     }
 
     DEBUGMSGT(("verbose:ipAddressTable:ipAddressTable_cache_load",
-               "%lu records\n", (unsigned long)CONTAINER_SIZE(container)));
+               "%d records\n", CONTAINER_SIZE(container)));
 
     return MFD_SUCCESS;
 }
@@ -676,9 +672,9 @@ ipAddressTable_validate_index(ipAddressTable_registration *
      * TODO:430:M: |-> Validate potential ipAddressTable index.
      *
      *
+     * xxx-rks: we only plan ipv4 support initially
      */
-    if ((4 != rowreq_ctx->tbl_idx.ipAddressAddr_len)
-            && (16 != rowreq_ctx->tbl_idx.ipAddressAddr_len)) {
+    if ((4 != rowreq_ctx->tbl_idx.ipAddressAddr_len)) {
         snmp_log(LOG_WARNING, "invalid index for a new row in the "
                  "ipAddressTable table.\n");
         /*
@@ -695,9 +691,15 @@ ipAddressTable_validate_index(ipAddressTable_registration *
             return MFD_CANNOT_CREATE_NOW;
         }
     } else {
-        memcpy(rowreq_ctx->data->ia_address, rowreq_ctx->tbl_idx.ipAddressAddr,
-                rowreq_ctx->tbl_idx.ipAddressAddr_len);
-        rowreq_ctx->data->ia_address_len = rowreq_ctx->tbl_idx.ipAddressAddr_len;
+        rowreq_ctx->data->ia_address[0] =
+            rowreq_ctx->tbl_idx.ipAddressAddr[0];
+        rowreq_ctx->data->ia_address[1] =
+            rowreq_ctx->tbl_idx.ipAddressAddr[1];
+        rowreq_ctx->data->ia_address[2] =
+            rowreq_ctx->tbl_idx.ipAddressAddr[2];
+        rowreq_ctx->data->ia_address[3] =
+            rowreq_ctx->tbl_idx.ipAddressAddr[3];
+        rowreq_ctx->data->ia_address_len = 4;
     }
 
     return rc;
diff --git a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.h b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.h
index 7bcd435..8e8a985 100644
--- a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.h
+++ b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: ipAddressTable_data_access.h 13767 2005-12-01 17:00:57Z rstory $
  */
 #ifndef IPADDRESSTABLE_DATA_ACCESS_H
 #define IPADDRESSTABLE_DATA_ACCESS_H
diff --git a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c
index 48770b0..6019f60 100644
--- a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c
+++ b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: ipAddressTable_interface.c 15781 2007-01-23 22:55:06Z rstory $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -47,19 +46,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_child_of(ipAddressTable_external_access, libnetsnmpmibs)
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(table_container_row_insert)
-netsnmp_feature_require(check_all_requests_error)
-
-
-netsnmp_feature_child_of(ipAddressTable_container_size, ipAddressTable_external_access)
-netsnmp_feature_child_of(ipAddressTable_registration_set, ipAddressTable_external_access)
-netsnmp_feature_child_of(ipAddressTable_registration_get, ipAddressTable_external_access)
-netsnmp_feature_child_of(ipAddressTable_container_get, ipAddressTable_external_access)
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -94,23 +80,19 @@ static void     _ipAddressTable_container_init(ipAddressTable_interface_ctx
 static void
                 _ipAddressTable_container_shutdown(ipAddressTable_interface_ctx * if_ctx);
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESSTABLE_CONTAINER_GET
+
 netsnmp_container *
 ipAddressTable_container_get(void)
 {
     return ipAddressTable_if_ctx.container;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESSTABLE_CONTAINER_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESSTABLE_REGISTRATION_GET
 ipAddressTable_registration *
 ipAddressTable_registration_get(void)
 {
     return ipAddressTable_if_ctx.user_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESSTABLE_REGISTRATION_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESSTABLE_REGISTRATION_SET
 ipAddressTable_registration *
 ipAddressTable_registration_set(ipAddressTable_registration * newreg)
 {
@@ -118,15 +100,12 @@ ipAddressTable_registration_set(ipAddressTable_registration * newreg)
     ipAddressTable_if_ctx.user_ctx = newreg;
     return old;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESSTABLE_REGISTRATION_SET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESSTABLE_CONTAINER_SIZE
 int
 ipAddressTable_container_size(void)
 {
     return CONTAINER_SIZE(ipAddressTable_if_ctx.container);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESSTABLE_CONTAINER_SIZE */
 
 u_int
 ipAddressTable_dirty_get(void)
@@ -150,7 +129,6 @@ static Netsnmp_Node_Handler _mfd_ipAddressTable_pre_request;
 static Netsnmp_Node_Handler _mfd_ipAddressTable_post_request;
 static Netsnmp_Node_Handler _mfd_ipAddressTable_object_lookup;
 static Netsnmp_Node_Handler _mfd_ipAddressTable_get_values;
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 static Netsnmp_Node_Handler _mfd_ipAddressTable_check_objects;
 static Netsnmp_Node_Handler _mfd_ipAddressTable_undo_setup;
 static Netsnmp_Node_Handler _mfd_ipAddressTable_set_values;
@@ -165,7 +143,6 @@ NETSNMP_STATIC_INLINE int
                 _ipAddressTable_undo_column(ipAddressTable_rowreq_ctx * rowreq_ctx,
                                             netsnmp_variable_list * var,
                                             int column);
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 NETSNMP_STATIC_INLINE int
                 _ipAddressTable_check_indexes(ipAddressTable_rowreq_ctx * rowreq_ctx);
@@ -205,7 +182,7 @@ _ipAddressTable_initialize_interface(ipAddressTable_registration * reg_ptr,
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = IPADDRESSTABLE_MIN_COL;
     tbl_info->max_column = IPADDRESSTABLE_MAX_COL;
@@ -243,7 +220,6 @@ _ipAddressTable_initialize_interface(ipAddressTable_registration * reg_ptr,
     access_multiplexer->post_request = _mfd_ipAddressTable_post_request;
 
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     /*
      * REQUIRED wrappers for set request handling
      */
@@ -267,7 +243,6 @@ _ipAddressTable_initialize_interface(ipAddressTable_registration * reg_ptr,
      */
     access_multiplexer->consistency_checks =
         _mfd_ipAddressTable_check_dependencies;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     /*************************************************
      *
@@ -281,11 +256,8 @@ _ipAddressTable_initialize_interface(ipAddressTable_registration * reg_ptr,
         netsnmp_handler_registration_create("ipAddressTable", handler,
                                             ipAddressTable_oid,
                                             ipAddressTable_oid_size,
-                                            HANDLER_CAN_BABY_STEP
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
-                                          | HANDLER_CAN_RWRITE
-#endif
-                                          );
+                                            HANDLER_CAN_BABY_STEP |
+                                            HANDLER_CAN_RWRITE);
     if (NULL == reginfo) {
         snmp_log(LOG_ERR, "error registering table ipAddressTable\n");
         return;
@@ -298,12 +270,6 @@ _ipAddressTable_initialize_interface(ipAddressTable_registration * reg_ptr,
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -311,6 +277,11 @@ _ipAddressTable_initialize_interface(ipAddressTable_registration * reg_ptr,
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -326,7 +297,6 @@ _ipAddressTable_initialize_interface(ipAddressTable_registration * reg_ptr,
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -661,7 +631,7 @@ _mfd_ipAddressTable_post_request(netsnmp_mib_handler *handler,
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
+    ipAddressTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -707,7 +677,6 @@ _mfd_ipAddressTable_post_request(netsnmp_mib_handler *handler,
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_ipAddressTable_post_request */
 
-
 /**
  * @internal
  * wrapper
@@ -780,7 +749,7 @@ _mfd_ipAddressTable_object_lookup(netsnmp_mib_handler *handler,
                                   netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
+    ipAddressTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipAddressTable:_mfd_ipAddressTable_object_lookup", "called\n"));
@@ -955,7 +924,7 @@ _mfd_ipAddressTable_get_values(netsnmp_mib_handler *handler,
                                netsnmp_agent_request_info *agtreq_info,
                                netsnmp_request_info *requests)
 {
-    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
+    ipAddressTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1082,7 +1051,6 @@ _ipAddressTable_check_indexes(ipAddressTable_rowreq_ctx * rowreq_ctx)
                                          rowreq_ctx);
 }                               /* _ipAddressTable_check_indexes */
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 /***********************************************************************
  *
  * SET processing
@@ -1313,7 +1281,7 @@ _mfd_ipAddressTable_check_objects(netsnmp_mib_handler *handler,
                                   netsnmp_agent_request_info *agtreq_info,
                                   netsnmp_request_info *requests)
 {
-    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
+    ipAddressTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1360,7 +1328,7 @@ _mfd_ipAddressTable_check_dependencies(netsnmp_mib_handler *handler, netsnmp_han
                                        netsnmp_request_info *requests)
 {
     int             rc;
-    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
+    ipAddressTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:ipAddressTable:_mfd_ipAddressTable_check_dependencies", "called\n"));
 
@@ -1459,7 +1427,7 @@ _mfd_ipAddressTable_undo_setup(netsnmp_mib_handler *handler,
                                netsnmp_request_info *requests)
 {
     int             rc;
-    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
+    ipAddressTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipAddressTable:_mfd_ipAddressTable_undo_setup",
@@ -1524,7 +1492,7 @@ _mfd_ipAddressTable_undo_cleanup(netsnmp_mib_handler *handler,
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
+    ipAddressTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1643,7 +1611,7 @@ _mfd_ipAddressTable_set_values(netsnmp_mib_handler *handler,
                                netsnmp_agent_request_info *agtreq_info,
                                netsnmp_request_info *requests)
 {
-    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
+    ipAddressTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1691,7 +1659,7 @@ _mfd_ipAddressTable_commit(netsnmp_mib_handler *handler,
                            netsnmp_request_info *requests)
 {
     int             rc;
-    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
+    ipAddressTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipAddressTable:_mfd_ipAddressTable_commit",
@@ -1725,7 +1693,7 @@ _mfd_ipAddressTable_undo_commit(netsnmp_mib_handler *handler,
                                 netsnmp_request_info *requests)
 {
     int             rc;
-    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
+    ipAddressTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipAddressTable:_mfd_ipAddressTable_undo_commit",
@@ -1833,7 +1801,7 @@ _mfd_ipAddressTable_undo_values(netsnmp_mib_handler *handler,
                                 netsnmp_request_info *requests)
 {
     int             rc;
-    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
+    ipAddressTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -1888,7 +1856,7 @@ _mfd_ipAddressTable_irreversible_commit(netsnmp_mib_handler *handler, netsnmp_ha
                                         *agtreq_info,
                                         netsnmp_request_info *requests)
 {
-    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
+    ipAddressTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipAddressTable:_mfd_ipAddressTable_irreversible:commit", "called\n"));
@@ -1914,7 +1882,6 @@ _mfd_ipAddressTable_irreversible_commit(netsnmp_mib_handler *handler, netsnmp_ha
 
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_ipAddressTable_irreversible_commit */
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 /***********************************************************************
  *
@@ -2063,7 +2030,6 @@ _ipAddressTable_container_shutdown(ipAddressTable_interface_ctx * if_ctx)
 }                               /* _ipAddressTable_container_shutdown */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPADDRESSTABLE_EXTERNAL_ACCESS
 ipAddressTable_rowreq_ctx *
 ipAddressTable_row_find_by_mib_index(ipAddressTable_mib_index * mib_idx)
 {
@@ -2085,8 +2051,7 @@ ipAddressTable_row_find_by_mib_index(ipAddressTable_mib_index * mib_idx)
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = (ipAddressTable_rowreq_ctx*)CONTAINER_FIND(ipAddressTable_if_ctx.container, &oid_idx);
+    rowreq_ctx = CONTAINER_FIND(ipAddressTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPADDRESSTABLE_EXTERNAL_ACCESS */
diff --git a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.h b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.h
index ac54477..74adfe0 100644
--- a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.h
+++ b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: ipAddressTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/ip-mib/ipDefaultRouterTable.h b/agent/mibgroup/ip-mib/ipDefaultRouterTable.h
deleted file mode 100644
index 28ed84b..0000000
--- a/agent/mibgroup/ip-mib/ipDefaultRouterTable.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
- * module to include the modules
- */
-
-config_require(ip-mib/ipDefaultRouterTable/ipDefaultRouterTable)
diff --git a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.c b/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.c
deleted file mode 100644
index 180e317..0000000
--- a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.c
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $ 
- *
- * $Id:$
- */
-/** \page MFD helper for ipDefaultRouterTable
- *
- * \section intro Introduction
- * Introductory text.
- *
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "ipDefaultRouterTable.h"
-
-#include <net-snmp/agent/mib_modules.h>
-
-#include "ipDefaultRouterTable_interface.h"
-
-const oid       ipDefaultRouterTable_oid[] = { IPDEFAULTROUTERTABLE_OID };
-const int       ipDefaultRouterTable_oid_size =
-OID_LENGTH(ipDefaultRouterTable_oid);
-
-ipDefaultRouterTable_registration ipDefaultRouterTable_user_context;
-static ipDefaultRouterTable_registration *ipDefaultRouterTable_user_context_p;
-
-void            initialize_table_ipDefaultRouterTable(void);
-void            shutdown_table_ipDefaultRouterTable(void);
-
-
-/**
- * Initializes the ipDefaultRouterTable module
- */
-void
-init_ipDefaultRouterTable(void)
-{
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:init_ipDefaultRouterTable",
-                "called\n"));
-
-    /*
-     * TODO:300:o: Perform ipDefaultRouterTable one-time module initialization.
-     */
-
-    /*
-     * here we initialize all the tables we're planning on supporting
-     */
-    if (should_init("ipDefaultRouterTable"))
-        initialize_table_ipDefaultRouterTable();
-
-}                               /* init_ipDefaultRouterTable */
-
-/**
- * Shut-down the ipDefaultRouterTable module (agent is exiting)
- */
-void
-shutdown_ipDefaultRouterTable(void)
-{
-    if (should_init("ipDefaultRouterTable"))
-        shutdown_table_ipDefaultRouterTable();
-
-}
-
-/**
- * Initialize the table ipDefaultRouterTable 
- *    (Define its contents and how it's structured)
- */
-void
-initialize_table_ipDefaultRouterTable(void)
-{
-    u_long          flags;
-
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:initialize_table_ipDefaultRouterTable", "called\n"));
-
-    /*
-     * TODO:301:o: Perform ipDefaultRouterTable one-time table initialization.
-     */
-
-    /*
-     * TODO:302:o: |->Initialize ipDefaultRouterTable user context
-     * if you'd like to pass in a pointer to some data for this
-     * table, allocate or set it up here.
-     */
-    /*
-     * a netsnmp_data_list is a simple way to store void pointers. A simple
-     * string token is used to add, find or remove pointers.
-     */
-    ipDefaultRouterTable_user_context_p =
-        netsnmp_create_data_list("ipDefaultRouterTable", NULL, NULL);
-
-    /*
-     * No support for any flags yet, but in the future you would
-     * set any flags here.
-     */
-    flags = 0;
-
-    /*
-     * call interface initialization code
-     */
-    _ipDefaultRouterTable_initialize_interface
-	(ipDefaultRouterTable_user_context_p, flags);
-}                               /* initialize_table_ipDefaultRouterTable */
-
-/**
- * Shutdown the table ipDefaultRouterTable 
- */
-void
-shutdown_table_ipDefaultRouterTable(void)
-{
-    /*
-     * call interface shutdown code
-     */
-    _ipDefaultRouterTable_shutdown_interface
-        (ipDefaultRouterTable_user_context_p);
-    netsnmp_free_all_list_data(ipDefaultRouterTable_user_context_p);
-    ipDefaultRouterTable_user_context_p = NULL;
-}
-
-/**
- * extra context initialization (eg default values)
- *
- * @param rowreq_ctx    : row request context
- * @param user_init_ctx : void pointer for user (parameter to rowreq_ctx_allocate)
- *
- * @retval MFD_SUCCESS  : no errors
- * @retval MFD_ERROR    : error (context allocate will fail)
- */
-int
-ipDefaultRouterTable_rowreq_ctx_init(ipDefaultRouterTable_rowreq_ctx *
-                                     rowreq_ctx, void *user_init_ctx)
-{
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_rowreq_ctx_init", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:210:o: |-> Perform extra ipDefaultRouterTable rowreq initialization. (eg DEFVALS)
-     */
-
-    return MFD_SUCCESS;
-}                               /* ipDefaultRouterTable_rowreq_ctx_init */
-
-/**
- * extra context cleanup
- *
- */
-void
-ipDefaultRouterTable_rowreq_ctx_cleanup(ipDefaultRouterTable_rowreq_ctx *
-                                        rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_rowreq_ctx_cleanup", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:211:o: |-> Perform extra ipDefaultRouterTable rowreq cleanup.
-     */
-    netsnmp_access_defaultrouter_entry_free(rowreq_ctx->data);
-    rowreq_ctx->data = NULL;
-}                               /* ipDefaultRouterTable_rowreq_ctx_cleanup */
-
-/**
- * pre-request callback
- *
- *
- * @retval MFD_SUCCESS              : success.
- * @retval MFD_ERROR                : other error
- */
-int
-ipDefaultRouterTable_pre_request(ipDefaultRouterTable_registration *
-                                 user_context)
-{
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_pre_request", "called\n"));
-
-    /*
-     * TODO:510:o: Perform ipDefaultRouterTable pre-request actions.
-     */
-
-    return MFD_SUCCESS;
-}                               /* ipDefaultRouterTable_pre_request */
-
-/**
- * post-request callback
- *
- * Note:
- *   New rows have been inserted into the container, and
- *   deleted rows have been removed from the container and
- *   released.
- *
- * @param user_context
- * @param rc : MFD_SUCCESS if all requests succeeded
- *
- * @retval MFD_SUCCESS : success.
- * @retval MFD_ERROR   : other error (ignored)
- */
-int
-ipDefaultRouterTable_post_request(ipDefaultRouterTable_registration *
-                                  user_context, int rc)
-{
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_post_request", "called\n"));
-
-    /*
-     * TODO:511:o: Perform ipDefaultRouterTable post-request actions.
-     */
-
-    return MFD_SUCCESS;
-}                               /* ipDefaultRouterTable_post_request */
-
-
-/** @{ */
diff --git a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h b/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
deleted file mode 100644
index f2ef29a..0000000
--- a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $
- *
- * $Id:$
- */
-#ifndef IPDEFAULTROUTERTABLE_H
-#define IPDEFAULTROUTERTABLE_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-/** @addtogroup misc misc: Miscellaneous routines
- *
- * @{
- */
-#include <net-snmp/library/asn1.h>
-#include <net-snmp/data_access/defaultrouter.h>
-
-    /*
-     * other required module components 
-     */
-    /* *INDENT-OFF*  */
-config_require(ip-mib/data_access/defaultrouter)
-config_require(ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface)
-config_require(ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access)
-config_require(ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get)
-    /* *INDENT-ON*  */
-
-    /*
-     * OID and column number definitions for ipDefaultRouterTable 
-     */
-#include "ipDefaultRouterTable_oids.h"
-
-    /*
-     * enum definions 
-     */
-#include "ipDefaultRouterTable_enums.h"
-
-    /*
-     *********************************************************************
-     * function declarations
-     */
-    void            init_ipDefaultRouterTable(void);
-    void            shutdown_ipDefaultRouterTable(void);
-
-    /*
-     *********************************************************************
-     * Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipDefaultRouterTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * IP-MIB::ipDefaultRouterTable is subid 37 of ip.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.4.37, length: 8
-     */
-    /*
-     *********************************************************************
-     * When you register your mib, you get to provide a generic
-     * pointer that will be passed back to you for most of the
-     * functions calls.
-     *
-     * TODO:100:r: Review all context structures
-     */
-    /*
-     * TODO:101:o: |-> Review ipDefaultRouterTable registration context.
-     */
-    typedef netsnmp_data_list ipDefaultRouterTable_registration;
-
-/**********************************************************************/
-    /*
-     * TODO:110:r: |-> Review ipDefaultRouterTable data context structure.
-     * This structure is used to represent the data for ipDefaultRouterTable.
-     */
-    typedef netsnmp_defaultrouter_entry ipDefaultRouterTable_data;
-
-
-    /*
-     * TODO:120:r: |-> Review ipDefaultRouterTable mib index.
-     * This structure is used to represent the index for ipDefaultRouterTable.
-     */
-    typedef struct ipDefaultRouterTable_mib_index_s {
-
-        /*
-         * ipDefaultRouterAddressType(1)/InetAddressType/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h
-         */
-        u_long          ipDefaultRouterAddressType;
-
-        /*
-         * ipDefaultRouterAddress(2)/InetAddress/ASN_OCTET_STR/char(char)//L/a/w/e/R/d/h
-         */
-        /** 128 - 2(other indexes) - oid length(10) = 115 */
-        char            ipDefaultRouterAddress[115];
-        size_t          ipDefaultRouterAddress_len;
-
-        /*
-         * ipDefaultRouterIfIndex(3)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H
-         */
-        long            ipDefaultRouterIfIndex;
-
-
-    } ipDefaultRouterTable_mib_index;
-
-    /*
-     * TODO:121:r: |   |-> Review ipDefaultRouterTable max index length.
-     * If you KNOW that your indexes will never exceed a certain
-     * length, update this macro to that length.
-     *
-     * BE VERY CAREFUL TO TAKE INTO ACCOUNT THE MAXIMUM
-     * POSSIBLE LENGHT FOR EVERY VARIABLE LENGTH INDEX!
-     * Guessing 128 - col/entry(2)  - oid len(8)
-     */
-#define MAX_ipDefaultRouterTable_IDX_LEN     118
-
-
-    /*
-     *********************************************************************
-     * TODO:130:o: |-> Review ipDefaultRouterTable Row request (rowreq) context.
-     * When your functions are called, you will be passed a
-     * ipDefaultRouterTable_rowreq_ctx pointer.
-     */
-    typedef struct ipDefaultRouterTable_rowreq_ctx_s {
-
-    /** this must be first for container compare to work */
-        netsnmp_index   oid_idx;
-        oid             oid_tmp[MAX_ipDefaultRouterTable_IDX_LEN];
-
-        ipDefaultRouterTable_mib_index tbl_idx;
-
-        ipDefaultRouterTable_data *data;
-
-        /*
-         * flags per row. Currently, the first (lower) 8 bits are reserved
-         * for the user. See mfd.h for other flags.
-         */
-        u_int           rowreq_flags;
-
-        /*
-         * TODO:131:o: |   |-> Add useful data to ipDefaultRouterTable rowreq context.
-         */
-
-        /*
-         * storage for future expansion
-         */
-        netsnmp_data_list *ipDefaultRouterTable_data_list;
-
-    } ipDefaultRouterTable_rowreq_ctx;
-
-    typedef struct ipDefaultRouterTable_ref_rowreq_ctx_s {
-        ipDefaultRouterTable_rowreq_ctx *rowreq_ctx;
-    } ipDefaultRouterTable_ref_rowreq_ctx;
-
-    /*
-     *********************************************************************
-     * function prototypes
-     */
-    int            
-        ipDefaultRouterTable_pre_request(ipDefaultRouterTable_registration
-                                         * user_context);
-    int            
-        ipDefaultRouterTable_post_request(ipDefaultRouterTable_registration
-                                          * user_context, int rc);
-
-    int            
-        ipDefaultRouterTable_rowreq_ctx_init
-        (ipDefaultRouterTable_rowreq_ctx * rowreq_ctx,
-         void *user_init_ctx);
-    void           
-        ipDefaultRouterTable_rowreq_ctx_cleanup
-        (ipDefaultRouterTable_rowreq_ctx * rowreq_ctx);
-
-    ipDefaultRouterTable_data *ipDefaultRouterTable_allocate_data(void);
-    void           
-        ipDefaultRouterTable_release_data(ipDefaultRouterTable_data *
-                                          data);
-
-
-    ipDefaultRouterTable_rowreq_ctx
-        *ipDefaultRouterTable_row_find_by_mib_index
-        (ipDefaultRouterTable_mib_index * mib_idx);
-
-    extern const oid      ipDefaultRouterTable_oid[];
-    extern const int      ipDefaultRouterTable_oid_size;
-
-
-#include "ipDefaultRouterTable_interface.h"
-#include "ipDefaultRouterTable_data_access.h"
-#include "ipDefaultRouterTable_data_get.h"
-
-    /*
-     * DUMMY markers, ignore
-     *
-     * TODO:099:x: *************************************************************
-     * TODO:199:x: *************************************************************
-     * TODO:299:x: *************************************************************
-     * TODO:399:x: *************************************************************
-     * TODO:499:x: *************************************************************
-     */
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPDEFAULTROUTERTABLE_H */
-/** @} */
diff --git a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.c b/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.c
deleted file mode 100644
index 7d7dcfe..0000000
--- a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.c
+++ /dev/null
@@ -1,423 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $ 
- *
- * $Id:$
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "ipDefaultRouterTable.h"
-
-
-#include "ipDefaultRouterTable_data_access.h"
-
-netsnmp_feature_require(container_lifo)
-
-/** @ingroup interface
- * @addtogroup data_access data_access: Routines to access data
- *
- * These routines are used to locate the data used to satisfy
- * requests.
- * 
- * @{
- */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipDefaultRouterTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * IP-MIB::ipDefaultRouterTable is subid 37 of ip.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.4.37, length: 8
- */
-
-/**
- * initialization for ipDefaultRouterTable data access
- *
- * This function is called during startup to allow you to
- * allocate any resources you need for the data table.
- *
- * @param ipDefaultRouterTable_reg
- *        Pointer to ipDefaultRouterTable_registration
- *
- * @retval MFD_SUCCESS : success.
- * @retval MFD_ERROR   : unrecoverable error.
- */
-int
-ipDefaultRouterTable_init_data(ipDefaultRouterTable_registration *
-                               ipDefaultRouterTable_reg)
-{
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_init_data", "called\n"));
-
-    /*
-     * TODO:303:o: Initialize ipDefaultRouterTable data.
-     */
-
-    return MFD_SUCCESS;
-}                               /* ipDefaultRouterTable_init_data */
-
-/**
- * container overview
- *
- */
-
-/**
- * container initialization
- *
- * @param container_ptr_ptr A pointer to a container pointer. If you
- *        create a custom container, use this parameter to return it
- *        to the MFD helper. If set to NULL, the MFD helper will
- *        allocate a container for you.
- * @param  cache A pointer to a cache structure. You can set the timeout
- *         and other cache flags using this pointer.
- *
- *  This function is called at startup to allow you to customize certain
- *  aspects of the access method. For the most part, it is for advanced
- *  users. The default code should suffice for most cases. If no custom
- *  container is allocated, the MFD code will create one for your.
- *
- *  This is also the place to set up cache behavior. The default, to
- *  simply set the cache timeout, will work well with the default
- *  container. If you are using a custom container, you may want to
- *  look at the cache helper documentation to see if there are any
- *  flags you want to set.
- *
- * @remark
- *  This would also be a good place to do any initialization needed
- *  for you data source. For example, opening a connection to another
- *  process that will supply the data, opening a database, etc.
- */
-void
-ipDefaultRouterTable_container_init(netsnmp_container ** container_ptr_ptr,
-                                    netsnmp_cache * cache)
-{
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_container_init", "called\n"));
-
-    if (NULL == container_ptr_ptr) {
-        snmp_log(LOG_ERR,
-                 "bad container param to ipDefaultRouterTable_container_init\n");
-        return;
-    }
-
-    /*
-     * For advanced users, you can use a custom container. If you
-     * do not create one, one will be created for you.
-     */
-    *container_ptr_ptr = NULL;
-
-    if (NULL == cache) {
-        snmp_log(LOG_ERR,
-                 "bad cache param to ipDefaultRouterTable_container_init\n");
-        return;
-    }
-
-    /*
-     * TODO:345:A: Set up ipDefaultRouterTable cache properties.
-     *
-     * Also for advanced users, you can set parameters for the
-     * cache. Do not change the magic pointer, as it is used
-     * by the MFD helper. To completely disable caching, set
-     * cache->enabled to 0.
-     */
-    cache->timeout = IPDEFAULTROUTERTABLE_CACHE_TIMEOUT;        /* seconds */
-}                               /* ipDefaultRouterTable_container_init */
-
-/**
- * container shutdown
- *
- * @param container_ptr A pointer to the container.
- *
- *  This function is called at shutdown to allow you to customize certain
- *  aspects of the access method. For the most part, it is for advanced
- *  users. The default code should suffice for most cases.
- *
- *  This function is called before ipDefaultRouterTable_container_free().
- *
- * @remark
- *  This would also be a good place to do any cleanup needed
- *  for you data source. For example, closing a connection to another
- *  process that supplied the data, closing a database, etc.
- */
-void
-ipDefaultRouterTable_container_shutdown(netsnmp_container * container_ptr)
-{
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_container_shutdown", "called\n"));
-
-    if (NULL == container_ptr) {
-        snmp_log(LOG_ERR,
-                 "bad params to ipDefaultRouterTable_container_shutdown\n");
-        return;
-    }
-
-}                               /* ipDefaultRouterTable_container_shutdown */
-
-/**
- * check entry for update
- */
-static void
-_check_entry_for_updates(ipDefaultRouterTable_rowreq_ctx * rowreq_ctx,
-                         void **magic)
-{
-    netsnmp_container *defaultrouter_container = magic[0];
-    netsnmp_container *to_delete = (netsnmp_container *) magic[1];
-
-    /*
-     * check for matching entry using secondary index.
-     */
-    netsnmp_defaultrouter_entry *defaultrouter_entry =
-        CONTAINER_FIND(defaultrouter_container, rowreq_ctx->data);
-    if (NULL == defaultrouter_entry) {
-        DEBUGMSGTL(("ipDefaultRouterTable:access", "removing missing entry\n"));
-
-        if (NULL == to_delete) {
-            magic[1] = to_delete = netsnmp_container_find("lifo");
-            if (NULL == to_delete)
-                snmp_log(LOG_ERR, "couldn't create delete container\n");
-        }
-        if (NULL != to_delete)
-            CONTAINER_INSERT(to_delete, rowreq_ctx);
-    } else {
-        DEBUGMSGTL(("ipDefaultRouterTable:access", "updating existing entry\n"));
-
-        /*
-         * Check for changes & update
-         */
-        netsnmp_access_defaultrouter_entry_update(rowreq_ctx->data,
-                                                  defaultrouter_entry);
-
-        /*
-         * remove entry from ifcontainer
-         */
-        CONTAINER_REMOVE(defaultrouter_container, defaultrouter_entry);
-        netsnmp_access_defaultrouter_entry_free(defaultrouter_entry);
-    }
-}
-
-/**
- * add new entry
- */
-static void
-_add_new_entry(netsnmp_defaultrouter_entry *defaultrouter_entry,
-               netsnmp_container *container)
-{
-    ipDefaultRouterTable_rowreq_ctx *rowreq_ctx;
-
-    DEBUGMSGTL(("ipDefaultRouterTable:access", "creating new entry\n"));
-
-    netsnmp_assert(NULL != defaultrouter_entry);
-    netsnmp_assert(NULL != container);
-
-    /*
-     * allocate an row context and set the index(es)
-     */
-    rowreq_ctx = ipDefaultRouterTable_allocate_rowreq_ctx(defaultrouter_entry,
-                                                          NULL);
-    if ((NULL != rowreq_ctx) &&
-            (MFD_SUCCESS ==
-             ipDefaultRouterTable_indexes_set(rowreq_ctx,
-                 defaultrouter_entry->dr_addresstype,
-                 defaultrouter_entry->dr_address,
-                 defaultrouter_entry->dr_address_len,
-                 defaultrouter_entry->dr_if_index))) {
-        if (CONTAINER_INSERT(container, rowreq_ctx) < 0) {
-            DEBUGMSGTL(("ipAddressTable:access",
-                         "container insert failed for new entry\n"));
-            ipDefaultRouterTable_release_rowreq_ctx(rowreq_ctx);
-            return;
-        }
-    } else {
-        if (NULL != rowreq_ctx) {
-            snmp_log(LOG_ERR, "error setting index while loading "
-                    "ipDefaultRouterTable cache.\n");
-            ipDefaultRouterTable_release_rowreq_ctx(rowreq_ctx);
-        } else {
-            snmp_log(LOG_ERR, "memory allocation failed while loading "
-                     "ipDefaultRouterTable cache.\n");
-            netsnmp_access_defaultrouter_entry_free(defaultrouter_entry);
-        }
-
-        return;
-    }
-}
-
-/**
- * load initial data
- *
- * TODO:350:M: Implement ipDefaultRouterTable data load
- * This function will also be called by the cache helper to load
- * the container again (after the container free function has been
- * called to free the previous contents).
- *
- * @param container container to which items should be inserted
- *
- * @retval MFD_SUCCESS              : success.
- * @retval MFD_RESOURCE_UNAVAILABLE : Can't access data source
- * @retval MFD_ERROR                : other error.
- *
- *  This function is called to load the index(es) (and data, optionally)
- *  for the every row in the data set.
- *
- * @remark
- *  While loading the data, the only important thing is the indexes.
- *  If access to your data is cheap/fast (e.g. you have a pointer to a
- *  structure in memory), it would make sense to update the data here.
- *  If, however, the accessing the data invovles more work (e.g. parsing
- *  some other existing data, or peforming calculations to derive the data),
- *  then you can limit yourself to setting the indexes and saving any
- *  information you will need later. Then use the saved information in
- *  ipDefaultRouterTable_row_prep() for populating data.
- *
- * @note
- *  If you need consistency between rows (like you want statistics
- *  for each row to be from the same time frame), you should set all
- *  data here.
- *
- */
-int
-ipDefaultRouterTable_container_load(netsnmp_container * container)
-{
-    netsnmp_container *defaultrouter_container;
-    void              *tmp_ptr[2];
-
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_container_load", "called\n"));
-
-    /*
-     * TODO:351:M: |-> Load/update data in the ipDefaultRouterTable container.
-     * loop over your ipDefaultRouterTable data, allocate a rowreq context,
-     * set the index(es) [and data, optionally] and insert into
-     * the container.
-     */
-    defaultrouter_container =
-        netsnmp_access_defaultrouter_container_load(NULL,
-                        NETSNMP_ACCESS_DEFAULTROUTER_LOAD_ADDL_IDX_BY_ADDR);
-
-    if (NULL == defaultrouter_container)
-        return MFD_RESOURCE_UNAVAILABLE;        /* msg already logged */
-
-    /*
-     * we just got a fresh copy of interface data. compare it to
-     * what we've already got, and make any adjustments, saving
-     * missing addresses to be deleted.
-     */
-    tmp_ptr[0] = defaultrouter_container->next;
-    tmp_ptr[1] = NULL;
-    CONTAINER_FOR_EACH(container,
-                       (netsnmp_container_obj_func *) _check_entry_for_updates,
-                       tmp_ptr);
-
-    /*
-     * now add any new interfaces
-     */
-    CONTAINER_FOR_EACH(defaultrouter_container,
-                       (netsnmp_container_obj_func *) _add_new_entry,
-                       container);
-
-    /*
-     * free the container. we've either claimed each entry, or released it,
-     * so the access function doesn't need to clear the container.
-     */
-    netsnmp_access_defaultrouter_container_free(defaultrouter_container,
-                NETSNMP_ACCESS_DEFAULTROUTER_FREE_DONT_CLEAR);
-
-    /*
-     * remove deleted addresses from table container
-     */
-    if (NULL != tmp_ptr[1]) {
-        netsnmp_container *tmp_container =
-            (netsnmp_container *) tmp_ptr[1];
-        ipDefaultRouterTable_rowreq_ctx *tmp_ctx;
-
-        /*
-         * this works because the tmp_container is a linked list,
-         * which can be used like a stack...
-         */
-        while (CONTAINER_SIZE(tmp_container)) {
-            /*
-             * get from delete list
-             */
-            tmp_ctx = CONTAINER_FIRST(tmp_container);
-
-            /*
-             * release context, delete from table container
-             */
-            CONTAINER_REMOVE(container, tmp_ctx);
-            ipDefaultRouterTable_release_rowreq_ctx(tmp_ctx);
-
-            /*
-             * pop off delete list
-             */
-            CONTAINER_REMOVE(tmp_container, NULL);
-        }
-    }
-
-    DEBUGMSGT(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_container_load",
-               "%" NETSNMP_PRIz "d records\n", CONTAINER_SIZE(container)));
-
-    return MFD_SUCCESS;
-}
-
-/**
- * container clean up
- *
- * @param container container with all current items
- *
- *  This optional callback is called prior to all
- *  item's being removed from the container. If you
- *  need to do any processing before that, do it here.
- *
- * @note
- *  The MFD helper will take care of releasing all the row contexts.
- *
- */
-void
-ipDefaultRouterTable_container_free(netsnmp_container * container)
-{
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_container_free", "called\n"));
-
-    /*
-     * TODO:380:M: Free ipDefaultRouterTable container data.
-     */
-}                               /* ipDefaultRouterTable_container_free */
-
-/**
- * prepare row for processing.
- *
- *  When the agent has located the row for a request, this function is
- *  called to prepare the row for processing. If you fully populated
- *  the data context during the index setup phase, you may not need to
- *  do anything.
- *
- * @param rowreq_ctx pointer to a context.
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- */
-int
-ipDefaultRouterTable_row_prep(ipDefaultRouterTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_row_prep", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:390:o: Prepare row for request.
-     * If populating row data was delayed, this is the place to
-     * fill in the row for this request.
-     */
-
-    return MFD_SUCCESS;
-}                               /* ipDefaultRouterTable_row_prep */
-
-/** @} */
diff --git a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.h b/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.h
deleted file mode 100644
index ed033f0..0000000
--- a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $
- *
- * $Id:$
- */
-#ifndef IPDEFAULTROUTERTABLE_DATA_ACCESS_H
-#define IPDEFAULTROUTERTABLE_DATA_ACCESS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-    /*
-     *********************************************************************
-     * function declarations
-     */
-
-    /*
-     *********************************************************************
-     * Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipDefaultRouterTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * IP-MIB::ipDefaultRouterTable is subid 37 of ip.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.4.37, length: 8
-     */
-
-
-    int            
-        ipDefaultRouterTable_init_data(ipDefaultRouterTable_registration *
-                                       ipDefaultRouterTable_reg);
-
-
-    /*
-     * TODO:180:o: Review ipDefaultRouterTable cache timeout.
-     * The number of seconds before the cache times out
-     */
-#define IPDEFAULTROUTERTABLE_CACHE_TIMEOUT   60
-
-    void            ipDefaultRouterTable_container_init(netsnmp_container
-                                                        **
-                                                        container_ptr_ptr,
-                                                        netsnmp_cache *
-                                                        cache);
-    void           
-        ipDefaultRouterTable_container_shutdown(netsnmp_container *
-                                                container_ptr);
-
-    int             ipDefaultRouterTable_container_load(netsnmp_container *
-                                                        container);
-    void            ipDefaultRouterTable_container_free(netsnmp_container *
-                                                        container);
-
-    int             ipDefaultRouterTable_cache_load(netsnmp_container *
-                                                    container);
-    void            ipDefaultRouterTable_cache_free(netsnmp_container *
-                                                    container);
-    int            
-        ipDefaultRouterTable_row_prep(ipDefaultRouterTable_rowreq_ctx *
-                                      rowreq_ctx);
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPDEFAULTROUTERTABLE_DATA_ACCESS_H */
diff --git a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.c b/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.c
deleted file mode 100644
index 1177897..0000000
--- a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.c
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 12088 $ of $ 
- *
- * $Id:$
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "ipDefaultRouterTable.h"
-
-
-/** @defgroup data_get data_get: Routines to get data
- *
- * TODO:230:M: Implement ipDefaultRouterTable get routines.
- * TODO:240:M: Implement ipDefaultRouterTable mapping routines (if any).
- *
- * These routine are used to get the value for individual objects. The
- * row context is passed, along with a pointer to the memory where the
- * value should be copied.
- *
- * @{
- */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipDefaultRouterTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * IP-MIB::ipDefaultRouterTable is subid 37 of ip.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.4.37, length: 8
- */
-
-/*
- * ---------------------------------------------------------------------
- * * TODO:200:r: Implement ipDefaultRouterTable data context functions.
- */
-/*
- * ipDefaultRouterTable_allocate_data
- *
- * Purpose: create new ipDefaultRouterTable_data.
- */
-ipDefaultRouterTable_data *
-ipDefaultRouterTable_allocate_data(void)
-{
-    /*
-     * TODO:201:r: |-> allocate memory for the ipDefaultRouterTable data context.
-     */
-    ipDefaultRouterTable_data *rtn =
-        netsnmp_access_defaultrouter_entry_create();
-
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_allocate_data", "called\n"));
-
-    if (NULL == rtn) {
-        snmp_log(LOG_ERR, "unable to malloc memory for new "
-                 "ipDefaultRouterTable_data.\n");
-    }
-
-    return rtn;
-}                               /* ipDefaultRouterTable_allocate_data */
-
-/*
- * ipDefaultRouterTable_release_data
- *
- * Purpose: release ipDefaultRouterTable data.
- */
-void
-ipDefaultRouterTable_release_data(ipDefaultRouterTable_data * data)
-{
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_release_data", "called\n"));
-
-    /*
-     * TODO:202:r: |-> release memory for the ipDefaultRouterTable data context.
-     */
-    netsnmp_access_defaultrouter_entry_free(data);
-}                               /* ipDefaultRouterTable_release_data */
-
-
-
-/**
- * set mib index(es)
- *
- * @param tbl_idx mib index structure
- * @param ipDefaultRouterAddressType_val
- * @param ipDefaultRouterAddress_ptr
- * @param ipDefaultRouterAddress_ptr_len
- * @param ipDefaultRouterIfIndex_val
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- *
- * @remark
- *  This convenience function is useful for setting all the MIB index
- *  components with a single function call. It is assume that the C values
- *  have already been mapped from their native/rawformat to the MIB format.
- */
-int
-ipDefaultRouterTable_indexes_set_tbl_idx(ipDefaultRouterTable_mib_index *
-                                         tbl_idx,
-                                         u_long
-                                         ipDefaultRouterAddressType_val,
-                                         char
-                                         *ipDefaultRouterAddress_val_ptr,
-                                         size_t
-                                         ipDefaultRouterAddress_val_ptr_len,
-                                         long ipDefaultRouterIfIndex_val)
-{
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_indexes_set_tbl_idx", "called\n"));
-
-    /*
-     * ipDefaultRouterAddressType(1)/InetAddressType/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h 
-     */
-    /** WARNING: this code might not work for netsnmp_defaultrouter_entry */
-    tbl_idx->ipDefaultRouterAddressType = ipDefaultRouterAddressType_val;
-
-    /*
-     * ipDefaultRouterAddress(2)/InetAddress/ASN_OCTET_STR/char(char)//L/a/w/e/R/d/h 
-     */
-    tbl_idx->ipDefaultRouterAddress_len = sizeof(tbl_idx->ipDefaultRouterAddress) / sizeof(tbl_idx->ipDefaultRouterAddress[0]); /* max length */
-    /** WARNING: this code might not work for netsnmp_defaultrouter_entry */
-    /*
-     * make sure there is enough space for ipDefaultRouterAddress data
-     */
-    if ((NULL == tbl_idx->ipDefaultRouterAddress) ||
-        (tbl_idx->ipDefaultRouterAddress_len <
-         (ipDefaultRouterAddress_val_ptr_len))) {
-        snmp_log(LOG_ERR, "not enough space for value\n");
-        return MFD_ERROR;
-    }
-    tbl_idx->ipDefaultRouterAddress_len =
-        ipDefaultRouterAddress_val_ptr_len;
-    memcpy(tbl_idx->ipDefaultRouterAddress, ipDefaultRouterAddress_val_ptr,
-           ipDefaultRouterAddress_val_ptr_len *
-           sizeof(ipDefaultRouterAddress_val_ptr[0]));
-
-    /*
-     * ipDefaultRouterIfIndex(3)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H 
-     */
-    /** WARNING: this code might not work for netsnmp_defaultrouter_entry */
-    tbl_idx->ipDefaultRouterIfIndex = ipDefaultRouterIfIndex_val;
-
-
-    return MFD_SUCCESS;
-}                               /* ipDefaultRouterTable_indexes_set_tbl_idx */
-
-/**
- * @internal
- * set row context indexes
- *
- * @param reqreq_ctx the row context that needs updated indexes
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- *
- * @remark
- *  This function sets the mib indexs, then updates the oid indexs
- *  from the mib index.
- */
-int
-ipDefaultRouterTable_indexes_set(ipDefaultRouterTable_rowreq_ctx *
-                                 rowreq_ctx,
-                                 u_long ipDefaultRouterAddressType_val,
-                                 char *ipDefaultRouterAddress_val_ptr,
-                                 size_t ipDefaultRouterAddress_val_ptr_len,
-                                 long ipDefaultRouterIfIndex_val)
-{
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_indexes_set", "called\n"));
-
-    if (MFD_SUCCESS !=
-        ipDefaultRouterTable_indexes_set_tbl_idx(&rowreq_ctx->tbl_idx,
-                                                 ipDefaultRouterAddressType_val,
-                                                 ipDefaultRouterAddress_val_ptr,
-                                                 ipDefaultRouterAddress_val_ptr_len,
-                                                 ipDefaultRouterIfIndex_val))
-        return MFD_ERROR;
-
-    /*
-     * convert mib index to oid index
-     */
-    rowreq_ctx->oid_idx.len = sizeof(rowreq_ctx->oid_tmp) / sizeof(oid);
-    if (0 != ipDefaultRouterTable_index_to_oid(&rowreq_ctx->oid_idx,
-                                               &rowreq_ctx->tbl_idx)) {
-        return MFD_ERROR;
-    }
-
-    return MFD_SUCCESS;
-}                               /* ipDefaultRouterTable_indexes_set */
-
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipDefaultRouterEntry.ipDefaultRouterLifetime
- * ipDefaultRouterLifetime is subid 4 of ipDefaultRouterEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.37.1.4
- * Description:
-The remaining length of time, in seconds, that this router
-            will continue to be useful as a default router.  A value of
-            zero indicates that it is no longer useful as a default
-            router.  It is left to the implementer of the MIB as to
-            whether a router with a lifetime of zero is removed from the
-            list.
-
-            For IPv6, this value should be extracted from the router
-            advertisement messages.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 1      hashint   0
- *   settable   0
- *
- * Ranges:  0 - 65535;
- *
- * Its syntax is UNSIGNED32 (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipDefaultRouterLifetime data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipDefaultRouterLifetime_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipDefaultRouterLifetime_get(ipDefaultRouterTable_rowreq_ctx * rowreq_ctx,
-                            u_long * ipDefaultRouterLifetime_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipDefaultRouterLifetime_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterLifetime_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipDefaultRouterLifetime data.
-     * copy (* ipDefaultRouterLifetime_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipDefaultRouterLifetime_val_ptr) = rowreq_ctx->data->dr_lifetime;
-
-    return MFD_SUCCESS;
-}                               /* ipDefaultRouterLifetime_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipDefaultRouterEntry.ipDefaultRouterPreference
- * ipDefaultRouterPreference is subid 5 of ipDefaultRouterEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.37.1.5
- * Description:
-An indication of preference given to this router as a
-            default router as described in he Default Router
-            Preferences document.  Treating the value as a
-            2 bit signed integer allows for simple arithmetic
-            comparisons.
-
-            For IPv4 routers or IPv6 routers that are not using the
-            updated router advertisement format, this object is set to
-            medium (0).
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  1      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- * Enum range: 3/8. Values:  reserved(-2), low(-1), medium(0), high(1)
- *
- * Its syntax is INTEGER (based on perltype INTEGER)
- * The net-snmp type is ASN_INTEGER. The C type decl is long (u_long)
- */
-/**
- * Extract the current value of the ipDefaultRouterPreference data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipDefaultRouterPreference_val_ptr
- *        Pointer to storage for a long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipDefaultRouterPreference_get(ipDefaultRouterTable_rowreq_ctx * rowreq_ctx,
-                              u_long * ipDefaultRouterPreference_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipDefaultRouterPreference_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterPreference_get", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipDefaultRouterPreference data.
-     * copy (* ipDefaultRouterPreference_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipDefaultRouterPreference_val_ptr) = rowreq_ctx->data->dr_preference;
-
-    return MFD_SUCCESS;
-}                               /* ipDefaultRouterPreference_get */
-
-
-
-/** @} */
diff --git a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.h b/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.h
deleted file mode 100644
index 8698675..0000000
--- a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 12088 $ of $
- *
- * $Id:$
- *
- * @file ipDefaultRouterTable_data_get.h
- *
- * @addtogroup get
- *
- * Prototypes for get functions
- *
- * @{
- */
-#ifndef IPDEFAULTROUTERTABLE_DATA_GET_H
-#define IPDEFAULTROUTERTABLE_DATA_GET_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    /*
-     *********************************************************************
-     * GET function declarations
-     */
-
-    /*
-     *********************************************************************
-     * GET Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipDefaultRouterTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * IP-MIB::ipDefaultRouterTable is subid 37 of ip.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.4.37, length: 8
-     */
-    /*
-     * indexes
-     */
-
-    int            
-        ipDefaultRouterLifetime_get(ipDefaultRouterTable_rowreq_ctx *
-                                    rowreq_ctx,
-                                    u_long *
-                                    ipDefaultRouterLifetime_val_ptr);
-    int            
-        ipDefaultRouterPreference_get(ipDefaultRouterTable_rowreq_ctx *
-                                      rowreq_ctx,
-                                      u_long *
-                                      ipDefaultRouterPreference_val_ptr);
-
-
-    int            
-        ipDefaultRouterTable_indexes_set_tbl_idx
-        (ipDefaultRouterTable_mib_index * tbl_idx,
-         u_long ipDefaultRouterAddressType_val,
-         char *ipDefaultRouterAddress_val_ptr,
-         size_t ipDefaultRouterAddress_val_ptr_len,
-         long ipDefaultRouterIfIndex_val);
-    int            
-        ipDefaultRouterTable_indexes_set(ipDefaultRouterTable_rowreq_ctx *
-                                         rowreq_ctx,
-                                         u_long
-                                         ipDefaultRouterAddressType_val,
-                                         char
-                                         *ipDefaultRouterAddress_val_ptr,
-                                         size_t
-                                         ipDefaultRouterAddress_val_ptr_len,
-                                         long ipDefaultRouterIfIndex_val);
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPDEFAULTROUTERTABLE_DATA_GET_H */
-/** @} */
diff --git a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_enums.h b/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_enums.h
deleted file mode 100644
index bb46d10..0000000
--- a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_enums.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : generic-table-enums.m2c 12526 2005-07-15 22:41:16Z rstory $
- *
- * $Id:$
- */
-#ifndef IPDEFAULTROUTERTABLE_ENUMS_H
-#define IPDEFAULTROUTERTABLE_ENUMS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    /*
-     * NOTES on enums
-     * ==============
-     *
-     * Value Mapping
-     * -------------
-     * If the values for your data type don't exactly match the
-     * possible values defined by the mib, you should map them
-     * below. For example, a boolean flag (1/0) is usually represented
-     * as a TruthValue in a MIB, which maps to the values (1/2).
-     *
-     */
-/*************************************************************************
- *************************************************************************
- *
- * enum definitions for table ipDefaultRouterTable
- *
- *************************************************************************
- *************************************************************************/
-
-/*************************************************************
- * constants for enums for the MIB node
- * ipDefaultRouterLifetime (UNSIGNED32 / ASN_UNSIGNED)
- *
- * since a Textual Convention may be referenced more than once in a
- * MIB, protect againt redefinitions of the enum values.
- */
-#ifndef IPDEFAULTROUTERLIFETIME_ENUMS
-#define IPDEFAULTROUTERLIFETIME_ENUMS
-
-#define IPDEFAULTROUTERLIFETIME_MIN  0
-#define IPDEFAULTROUTERLIFETIME_MAX  0xFFFFFFFFUL
-
-#endif                          /* IPDEFAULTROUTERLIFETIME_ENUMS */
-
-
-/*************************************************************
- * constants for enums for the MIB node
- * ipDefaultRouterAddressType (InetAddressType / ASN_INTEGER)
- *
- * since a Textual Convention may be referenced more than once in a
- * MIB, protect againt redefinitions of the enum values.
- */
-#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 */
-
-
-/*************************************************************
- * constants for enums for the MIB node
- * ipDefaultRouterPreference (INTEGER / ASN_INTEGER)
- *
- * since a Textual Convention may be referenced more than once in a
- * MIB, protect againt redefinitions of the enum values.
- */
-#ifndef IPDEFAULTROUTERPREFERENCE_ENUMS
-#define IPDEFAULTROUTERPREFERENCE_ENUMS
-
-#define IPDEFAULTROUTERPREFERENCE_RESERVED  -2
-#define IPDEFAULTROUTERPREFERENCE_LOW  -1
-#define IPDEFAULTROUTERPREFERENCE_MEDIUM  0
-#define IPDEFAULTROUTERPREFERENCE_HIGH  1
-
-#endif                          /* IPDEFAULTROUTERPREFERENCE_ENUMS */
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPDEFAULTROUTERTABLE_ENUMS_H */
diff --git a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.c b/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.c
deleted file mode 100644
index 40ad72b..0000000
--- a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.c
+++ /dev/null
@@ -1,1026 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 15899 $ of $ 
- *
- * $Id:$
- */
-/*
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- * ***                                                               ***
- * ***  NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE  ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THIS FILE DOES NOT CONTAIN ANY USER EDITABLE CODE.      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THE GENERATED CODE IS INTERNAL IMPLEMENTATION, AND      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***    IS SUBJECT TO CHANGE WITHOUT WARNING IN FUTURE RELEASES.   ***
- * ***                                                               ***
- * ***                                                               ***
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- */
-
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "ipDefaultRouterTable.h"
-
-
-#include <net-snmp/agent/table_container.h>
-#include <net-snmp/library/container.h>
-
-#include "ipDefaultRouterTable_interface.h"
-
-#include <ctype.h>
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(check_all_requests_error)
-
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipDefaultRouterTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * IP-MIB::ipDefaultRouterTable is subid 37 of ip.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.4.37, length: 8
- */
-typedef struct ipDefaultRouterTable_interface_ctx_s {
-
-    netsnmp_container *container;
-    netsnmp_cache  *cache;
-
-    ipDefaultRouterTable_registration *user_ctx;
-
-    netsnmp_table_registration_info tbl_info;
-
-    netsnmp_baby_steps_access_methods access_multiplexer;
-
-} ipDefaultRouterTable_interface_ctx;
-
-static ipDefaultRouterTable_interface_ctx ipDefaultRouterTable_if_ctx;
-
-static void    
-_ipDefaultRouterTable_container_init(ipDefaultRouterTable_interface_ctx *
-                                     if_ctx);
-static void    
-_ipDefaultRouterTable_container_shutdown(ipDefaultRouterTable_interface_ctx
-                                         * if_ctx);
-
-
-netsnmp_container *
-ipDefaultRouterTable_container_get(void)
-{
-    return ipDefaultRouterTable_if_ctx.container;
-}
-
-ipDefaultRouterTable_registration *
-ipDefaultRouterTable_registration_get(void)
-{
-    return ipDefaultRouterTable_if_ctx.user_ctx;
-}
-
-ipDefaultRouterTable_registration *
-ipDefaultRouterTable_registration_set(ipDefaultRouterTable_registration *
-                                      newreg)
-{
-    ipDefaultRouterTable_registration *old =
-        ipDefaultRouterTable_if_ctx.user_ctx;
-    ipDefaultRouterTable_if_ctx.user_ctx = newreg;
-    return old;
-}
-
-int
-ipDefaultRouterTable_container_size(void)
-{
-    return CONTAINER_SIZE(ipDefaultRouterTable_if_ctx.container);
-}
-
-/*
- * mfd multiplexer modes
- */
-static Netsnmp_Node_Handler _mfd_ipDefaultRouterTable_pre_request;
-static Netsnmp_Node_Handler _mfd_ipDefaultRouterTable_post_request;
-static Netsnmp_Node_Handler _mfd_ipDefaultRouterTable_object_lookup;
-static Netsnmp_Node_Handler _mfd_ipDefaultRouterTable_get_values;
-/**
- * @internal
- * Initialize the table ipDefaultRouterTable 
- *    (Define its contents and how it's structured)
- */
-void
-_ipDefaultRouterTable_initialize_interface
-    (ipDefaultRouterTable_registration * reg_ptr, u_long flags)
-{
-    netsnmp_baby_steps_access_methods *access_multiplexer =
-        &ipDefaultRouterTable_if_ctx.access_multiplexer;
-    netsnmp_table_registration_info *tbl_info =
-        &ipDefaultRouterTable_if_ctx.tbl_info;
-    netsnmp_handler_registration *reginfo;
-    netsnmp_mib_handler *handler;
-    int             mfd_modes = 0;
-
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:_ipDefaultRouterTable_initialize_interface", "called\n"));
-
-
-    /*************************************************
-     *
-     * save interface context for ipDefaultRouterTable
-     */
-    /*
-     * Setting up the table's definition
-     */
-    netsnmp_table_helper_add_indexes(tbl_info, ASN_INTEGER,
-                                               /** index: ipDefaultRouterAddressType */
-                                     ASN_OCTET_STR,
-                                                 /** index: ipDefaultRouterAddress */
-                                     ASN_INTEGER,
-                                               /** index: ipDefaultRouterIfIndex */
-                                     0);
-
-    /*
-     * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
-     */
-    tbl_info->min_column = IPDEFAULTROUTERTABLE_MIN_COL;
-    tbl_info->max_column = IPDEFAULTROUTERTABLE_MAX_COL;
-
-    /*
-     * save users context
-     */
-    ipDefaultRouterTable_if_ctx.user_ctx = reg_ptr;
-
-    /*
-     * call data access initialization code
-     */
-    ipDefaultRouterTable_init_data(reg_ptr);
-
-    /*
-     * set up the container
-     */
-    _ipDefaultRouterTable_container_init(&ipDefaultRouterTable_if_ctx);
-    if (NULL == ipDefaultRouterTable_if_ctx.container) {
-        snmp_log(LOG_ERR,
-                 "could not initialize container for ipDefaultRouterTable\n");
-        return;
-    }
-
-    /*
-     * access_multiplexer: REQUIRED wrapper for get request handling
-     */
-    access_multiplexer->object_lookup =
-        _mfd_ipDefaultRouterTable_object_lookup;
-    access_multiplexer->get_values = _mfd_ipDefaultRouterTable_get_values;
-
-    /*
-     * no wrappers yet
-     */
-    access_multiplexer->pre_request =
-        _mfd_ipDefaultRouterTable_pre_request;
-    access_multiplexer->post_request =
-        _mfd_ipDefaultRouterTable_post_request;
-
-
-    /*************************************************
-     *
-     * Create a registration, save our reg data, register table.
-     */
-    DEBUGMSGTL(("ipDefaultRouterTable:init_ipDefaultRouterTable",
-                "Registering ipDefaultRouterTable as a mibs-for-dummies table.\n"));
-    handler =
-        netsnmp_baby_steps_access_multiplexer_get(access_multiplexer);
-    reginfo =
-        netsnmp_handler_registration_create("ipDefaultRouterTable",
-                                            handler,
-                                            ipDefaultRouterTable_oid,
-                                            ipDefaultRouterTable_oid_size,
-                                            HANDLER_CAN_BABY_STEP |
-                                            HANDLER_CAN_RONLY);
-    if (NULL == reginfo) {
-        snmp_log(LOG_ERR,
-                 "error registering table ipDefaultRouterTable\n");
-        return;
-    }
-    reginfo->my_reg_void = &ipDefaultRouterTable_if_ctx;
-
-    /*************************************************
-     *
-     * set up baby steps handler, create it and inject it
-     */
-    if (access_multiplexer->object_lookup)
-        mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
-    /* XXX - are these actually necessary? */
-    if (access_multiplexer->set_values)
-        mfd_modes |= BABY_STEP_SET_VALUES;
-    if (access_multiplexer->irreversible_commit)
-        mfd_modes |= BABY_STEP_IRREVERSIBLE_COMMIT;
-    if (access_multiplexer->object_syntax_checks)
-        mfd_modes |= BABY_STEP_CHECK_OBJECT;
-
-    if (access_multiplexer->undo_setup)
-        mfd_modes |= BABY_STEP_UNDO_SETUP;
-    if (access_multiplexer->undo_cleanup)
-        mfd_modes |= BABY_STEP_UNDO_CLEANUP;
-    if (access_multiplexer->undo_sets)
-        mfd_modes |= BABY_STEP_UNDO_SETS;
-
-    if (access_multiplexer->row_creation)
-        mfd_modes |= BABY_STEP_ROW_CREATE;
-    if (access_multiplexer->consistency_checks)
-        mfd_modes |= BABY_STEP_CHECK_CONSISTENCY;
-    if (access_multiplexer->commit)
-        mfd_modes |= BABY_STEP_COMMIT;
-    if (access_multiplexer->undo_commit)
-        mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
-
-    handler = netsnmp_baby_steps_handler_get(mfd_modes);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject row_merge helper with prefix rootoid_len + 2 (entry.col)
-     */
-    handler = netsnmp_get_row_merge_handler(reginfo->rootoid_len + 2);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject container_table helper
-     */
-    handler =
-        netsnmp_container_table_handler_get(tbl_info,
-                                            ipDefaultRouterTable_if_ctx.
-                                            container,
-                                            TABLE_CONTAINER_KEY_NETSNMP_INDEX);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject cache helper
-     */
-    if (NULL != ipDefaultRouterTable_if_ctx.cache) {
-        handler =
-            netsnmp_cache_handler_get(ipDefaultRouterTable_if_ctx.cache);
-        netsnmp_inject_handler(reginfo, handler);
-    }
-
-    /*
-     * register table
-     */
-    netsnmp_register_table(reginfo, tbl_info);
-
-}                               /* _ipDefaultRouterTable_initialize_interface */
-
-/**
- * @internal
- * Shutdown the table ipDefaultRouterTable
- */
-void
-_ipDefaultRouterTable_shutdown_interface(ipDefaultRouterTable_registration
-                                         * reg_ptr)
-{
-    /*
-     * shutdown the container
-     */
-    _ipDefaultRouterTable_container_shutdown(&ipDefaultRouterTable_if_ctx);
-}
-
-void
-ipDefaultRouterTable_valid_columns_set(netsnmp_column_info *vc)
-{
-    ipDefaultRouterTable_if_ctx.tbl_info.valid_columns = vc;
-}                               /* ipDefaultRouterTable_valid_columns_set */
-
-/**
- * @internal
- * convert the index component stored in the context to an oid
- */
-int
-ipDefaultRouterTable_index_to_oid(netsnmp_index * oid_idx,
-                                  ipDefaultRouterTable_mib_index * mib_idx)
-{
-    int             err = SNMP_ERR_NOERROR;
-
-    /*
-     * temp storage for parsing indexes
-     */
-    /*
-     * ipDefaultRouterAddressType(1)/InetAddressType/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h
-     */
-    netsnmp_variable_list var_ipDefaultRouterAddressType;
-    /*
-     * ipDefaultRouterAddress(2)/InetAddress/ASN_OCTET_STR/char(char)//L/a/w/e/R/d/h
-     */
-    netsnmp_variable_list var_ipDefaultRouterAddress;
-    /*
-     * ipDefaultRouterIfIndex(3)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H
-     */
-    netsnmp_variable_list var_ipDefaultRouterIfIndex;
-
-    /*
-     * set up varbinds
-     */
-    memset(&var_ipDefaultRouterAddressType, 0x00,
-           sizeof(var_ipDefaultRouterAddressType));
-    var_ipDefaultRouterAddressType.type = ASN_INTEGER;
-    memset(&var_ipDefaultRouterAddress, 0x00,
-           sizeof(var_ipDefaultRouterAddress));
-    var_ipDefaultRouterAddress.type = ASN_OCTET_STR;
-    memset(&var_ipDefaultRouterIfIndex, 0x00,
-           sizeof(var_ipDefaultRouterIfIndex));
-    var_ipDefaultRouterIfIndex.type = ASN_INTEGER;
-
-    /*
-     * chain temp index varbinds together
-     */
-    var_ipDefaultRouterAddressType.next_variable =
-        &var_ipDefaultRouterAddress;
-    var_ipDefaultRouterAddress.next_variable = &var_ipDefaultRouterIfIndex;
-    var_ipDefaultRouterIfIndex.next_variable = NULL;
-
-
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_index_to_oid", "called\n"));
-
-    /*
-     * ipDefaultRouterAddressType(1)/InetAddressType/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h 
-     */
-    snmp_set_var_value(&var_ipDefaultRouterAddressType,
-                       (u_char *) & mib_idx->ipDefaultRouterAddressType,
-                       sizeof(mib_idx->ipDefaultRouterAddressType));
-
-    /*
-     * ipDefaultRouterAddress(2)/InetAddress/ASN_OCTET_STR/char(char)//L/a/w/e/R/d/h 
-     */
-    snmp_set_var_value(&var_ipDefaultRouterAddress,
-                       (u_char *) & mib_idx->ipDefaultRouterAddress,
-                       mib_idx->ipDefaultRouterAddress_len *
-                       sizeof(mib_idx->ipDefaultRouterAddress[0]));
-
-    /*
-     * ipDefaultRouterIfIndex(3)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H 
-     */
-    snmp_set_var_value(&var_ipDefaultRouterIfIndex,
-                       (u_char *) & mib_idx->ipDefaultRouterIfIndex,
-                       sizeof(mib_idx->ipDefaultRouterIfIndex));
-
-
-    err = build_oid_noalloc(oid_idx->oids, oid_idx->len, &oid_idx->len,
-                            NULL, 0, &var_ipDefaultRouterAddressType);
-    if (err)
-        snmp_log(LOG_ERR, "error %d converting index to oid\n", err);
-
-    /*
-     * parsing may have allocated memory. free it.
-     */
-    snmp_reset_var_buffers(&var_ipDefaultRouterAddressType);
-
-    return err;
-}                               /* ipDefaultRouterTable_index_to_oid */
-
-/**
- * extract ipDefaultRouterTable indexes from a netsnmp_index
- *
- * @retval SNMP_ERR_NOERROR  : no error
- * @retval SNMP_ERR_GENERR   : error
- */
-int
-ipDefaultRouterTable_index_from_oid(netsnmp_index * oid_idx,
-                                    ipDefaultRouterTable_mib_index *
-                                    mib_idx)
-{
-    int             err = SNMP_ERR_NOERROR;
-
-    /*
-     * temp storage for parsing indexes
-     */
-    /*
-     * ipDefaultRouterAddressType(1)/InetAddressType/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h
-     */
-    netsnmp_variable_list var_ipDefaultRouterAddressType;
-    /*
-     * ipDefaultRouterAddress(2)/InetAddress/ASN_OCTET_STR/char(char)//L/a/w/e/R/d/h
-     */
-    netsnmp_variable_list var_ipDefaultRouterAddress;
-    /*
-     * ipDefaultRouterIfIndex(3)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H
-     */
-    netsnmp_variable_list var_ipDefaultRouterIfIndex;
-
-    /*
-     * set up varbinds
-     */
-    memset(&var_ipDefaultRouterAddressType, 0x00,
-           sizeof(var_ipDefaultRouterAddressType));
-    var_ipDefaultRouterAddressType.type = ASN_INTEGER;
-    memset(&var_ipDefaultRouterAddress, 0x00,
-           sizeof(var_ipDefaultRouterAddress));
-    var_ipDefaultRouterAddress.type = ASN_OCTET_STR;
-    memset(&var_ipDefaultRouterIfIndex, 0x00,
-           sizeof(var_ipDefaultRouterIfIndex));
-    var_ipDefaultRouterIfIndex.type = ASN_INTEGER;
-
-    /*
-     * chain temp index varbinds together
-     */
-    var_ipDefaultRouterAddressType.next_variable =
-        &var_ipDefaultRouterAddress;
-    var_ipDefaultRouterAddress.next_variable = &var_ipDefaultRouterIfIndex;
-    var_ipDefaultRouterIfIndex.next_variable = NULL;
-
-
-    DEBUGMSGTL(("verbose:ipDefaultRouterTable:ipDefaultRouterTable_index_from_oid", "called\n"));
-
-    /*
-     * parse the oid into the individual index components
-     */
-    err = parse_oid_indexes(oid_idx->oids, oid_idx->len,
-                            &var_ipDefaultRouterAddressType);
-    if (err == SNMP_ERR_NOERROR) {
-        /*
-         * copy out values
-         */
-        mib_idx->ipDefaultRouterAddressType =
-            *((u_long *) var_ipDefaultRouterAddressType.val.string);
-        /*
-         * NOTE: val_len is in bytes, ipDefaultRouterAddress_len might not be
-         */
-        if (var_ipDefaultRouterAddress.val_len >
-            sizeof(mib_idx->ipDefaultRouterAddress))
-            err = SNMP_ERR_GENERR;
-        else {
-            memcpy(mib_idx->ipDefaultRouterAddress,
-                   var_ipDefaultRouterAddress.val.string,
-                   var_ipDefaultRouterAddress.val_len);
-            mib_idx->ipDefaultRouterAddress_len =
-                var_ipDefaultRouterAddress.val_len /
-                sizeof(mib_idx->ipDefaultRouterAddress[0]);
-        }
-        mib_idx->ipDefaultRouterIfIndex =
-            *((long *) var_ipDefaultRouterIfIndex.val.string);
-
-
-    }
-
-    /*
-     * parsing may have allocated memory. free it.
-     */
-    snmp_reset_var_buffers(&var_ipDefaultRouterAddressType);
-
-    return err;
-}                               /* ipDefaultRouterTable_index_from_oid */
-
-
-/*
- *********************************************************************
- * @internal
- * allocate resources for a ipDefaultRouterTable_rowreq_ctx
- */
-ipDefaultRouterTable_rowreq_ctx *
-ipDefaultRouterTable_allocate_rowreq_ctx(ipDefaultRouterTable_data * data,
-                                         void *user_init_ctx)
-{
-    ipDefaultRouterTable_rowreq_ctx *rowreq_ctx =
-        SNMP_MALLOC_TYPEDEF(ipDefaultRouterTable_rowreq_ctx);
-
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:ipDefaultRouterTable_allocate_rowreq_ctx", "called\n"));
-
-    if (NULL == rowreq_ctx) {
-        snmp_log(LOG_ERR, "Couldn't allocate memory for a "
-                 "ipDefaultRouterTable_rowreq_ctx.\n");
-        return NULL;
-    } else {
-        if (NULL != data) {
-            /*
-             * track if we got data from user
-             */
-            rowreq_ctx->rowreq_flags |= MFD_ROW_DATA_FROM_USER;
-            rowreq_ctx->data = data;
-        } else if (NULL ==
-                   (rowreq_ctx->data =
-                    ipDefaultRouterTable_allocate_data())) {
-            SNMP_FREE(rowreq_ctx);
-            return NULL;
-        }
-    }
-
-    /*
-     * undo context will be allocated when needed (in *_undo_setup)
-     */
-
-    rowreq_ctx->oid_idx.oids = rowreq_ctx->oid_tmp;
-
-    rowreq_ctx->ipDefaultRouterTable_data_list = NULL;
-
-    /*
-     * if we allocated data, call init routine
-     */
-    if (!(rowreq_ctx->rowreq_flags & MFD_ROW_DATA_FROM_USER)) {
-        if (SNMPERR_SUCCESS !=
-            ipDefaultRouterTable_rowreq_ctx_init(rowreq_ctx,
-                                                 user_init_ctx)) {
-            ipDefaultRouterTable_release_rowreq_ctx(rowreq_ctx);
-            rowreq_ctx = NULL;
-        }
-    }
-
-    return rowreq_ctx;
-}                               /* ipDefaultRouterTable_allocate_rowreq_ctx */
-
-/*
- * @internal
- * release resources for a ipDefaultRouterTable_rowreq_ctx
- */
-void
-ipDefaultRouterTable_release_rowreq_ctx(ipDefaultRouterTable_rowreq_ctx *
-                                        rowreq_ctx)
-{
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:ipDefaultRouterTable_release_rowreq_ctx", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    ipDefaultRouterTable_rowreq_ctx_cleanup(rowreq_ctx);
-
-    /*
-     * for non-transient data, don't free data we got from the user
-     */
-    if ((rowreq_ctx->data) &&
-        !(rowreq_ctx->rowreq_flags & MFD_ROW_DATA_FROM_USER))
-        ipDefaultRouterTable_release_data(rowreq_ctx->data);
-
-    /*
-     * free index oid pointer
-     */
-    if (rowreq_ctx->oid_idx.oids != rowreq_ctx->oid_tmp)
-        free(rowreq_ctx->oid_idx.oids);
-
-    SNMP_FREE(rowreq_ctx);
-}                               /* ipDefaultRouterTable_release_rowreq_ctx */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_ipDefaultRouterTable_pre_request(netsnmp_mib_handler *handler,
-                                      netsnmp_handler_registration
-                                      *reginfo,
-                                      netsnmp_agent_request_info
-                                      *agtreq_info,
-                                      netsnmp_request_info *requests)
-{
-    int             rc;
-
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:_mfd_ipDefaultRouterTable_pre_request", "called\n"));
-
-    if (1 != netsnmp_row_merge_status_first(reginfo, agtreq_info)) {
-        DEBUGMSGTL(("internal:ipDefaultRouterTable",
-                    "skipping additional pre_request\n"));
-        return SNMP_ERR_NOERROR;
-    }
-
-    rc = ipDefaultRouterTable_pre_request(ipDefaultRouterTable_if_ctx.
-                                          user_ctx);
-    if (MFD_SUCCESS != rc) {
-        /*
-         * nothing we can do about it but log it
-         */
-        DEBUGMSGTL(("ipDefaultRouterTable", "error %d from "
-                    "ipDefaultRouterTable_pre_request\n", rc));
-        netsnmp_request_set_error_all(requests, SNMP_VALIDATE_ERR(rc));
-    }
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_ipDefaultRouterTable_pre_request */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_ipDefaultRouterTable_post_request(netsnmp_mib_handler *handler,
-                                       netsnmp_handler_registration
-                                       *reginfo,
-                                       netsnmp_agent_request_info
-                                       *agtreq_info,
-                                       netsnmp_request_info *requests)
-{
-    ipDefaultRouterTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-    int             rc, packet_rc;
-
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:_mfd_ipDefaultRouterTable_post_request", "called\n"));
-
-    /*
-     * release row context, if deleted
-     */
-    if (rowreq_ctx && (rowreq_ctx->rowreq_flags & MFD_ROW_DELETED))
-        ipDefaultRouterTable_release_rowreq_ctx(rowreq_ctx);
-
-    /*
-     * wait for last call before calling user
-     */
-    if (1 != netsnmp_row_merge_status_last(reginfo, agtreq_info)) {
-        DEBUGMSGTL(("internal:ipDefaultRouterTable",
-                    "waiting for last post_request\n"));
-        return SNMP_ERR_NOERROR;
-    }
-
-    packet_rc = netsnmp_check_all_requests_error(agtreq_info->asp, 0);
-    rc = ipDefaultRouterTable_post_request(ipDefaultRouterTable_if_ctx.
-                                           user_ctx, packet_rc);
-    if (MFD_SUCCESS != rc) {
-        /*
-         * nothing we can do about it but log it
-         */
-        DEBUGMSGTL(("ipDefaultRouterTable", "error %d from "
-                    "ipDefaultRouterTable_post_request\n", rc));
-    }
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_ipDefaultRouterTable_post_request */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_ipDefaultRouterTable_object_lookup(netsnmp_mib_handler *handler,
-                                        netsnmp_handler_registration
-                                        *reginfo,
-                                        netsnmp_agent_request_info
-                                        *agtreq_info,
-                                        netsnmp_request_info *requests)
-{
-    int             rc = SNMP_ERR_NOERROR;
-    ipDefaultRouterTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:_mfd_ipDefaultRouterTable_object_lookup", "called\n"));
-
-    /*
-     * get our context from mfd
-     * ipDefaultRouterTable_interface_ctx *if_ctx =
-     *             (ipDefaultRouterTable_interface_ctx *)reginfo->my_reg_void;
-     */
-
-    if (NULL == rowreq_ctx) {
-        rc = SNMP_ERR_NOCREATION;
-    }
-
-    if (MFD_SUCCESS != rc)
-        netsnmp_request_set_error_all(requests, rc);
-    else
-        ipDefaultRouterTable_row_prep(rowreq_ctx);
-
-    return SNMP_VALIDATE_ERR(rc);
-}                               /* _mfd_ipDefaultRouterTable_object_lookup */
-
-/***********************************************************************
- *
- * GET processing
- *
- ***********************************************************************/
-/*
- * @internal
- * Retrieve the value for a particular column
- */
-NETSNMP_STATIC_INLINE int
-_ipDefaultRouterTable_get_column(ipDefaultRouterTable_rowreq_ctx *
-                                 rowreq_ctx, netsnmp_variable_list * var,
-                                 int column)
-{
-    int             rc = SNMPERR_SUCCESS;
-
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:_mfd_ipDefaultRouterTable_get_column", "called for %d\n", column));
-
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    switch (column) {
-
-        /*
-         * ipDefaultRouterLifetime(4)/UNSIGNED32/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/R/d/h 
-         */
-    case COLUMN_IPDEFAULTROUTERLIFETIME:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipDefaultRouterLifetime_get(rowreq_ctx,
-                                         (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipDefaultRouterPreference(5)/INTEGER/ASN_INTEGER/long(u_long)//l/A/w/E/r/d/h 
-         */
-    case COLUMN_IPDEFAULTROUTERPREFERENCE:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_INTEGER;
-        rc = ipDefaultRouterPreference_get(rowreq_ctx,
-                                           (u_long *) var->val.string);
-        break;
-
-    default:
-        if (IPDEFAULTROUTERTABLE_MIN_COL <= column
-            && column <= IPDEFAULTROUTERTABLE_MAX_COL) {
-            DEBUGMSGTL(("internal:ipDefaultRouterTable:_mfd_ipDefaultRouterTable_get_column", "assume column %d is reserved\n", column));
-            rc = MFD_SKIP;
-        } else {
-            snmp_log(LOG_ERR,
-                     "unknown column %d in _ipDefaultRouterTable_get_column\n",
-                     column);
-        }
-        break;
-    }
-
-    return rc;
-}                               /* _ipDefaultRouterTable_get_column */
-
-int
-_mfd_ipDefaultRouterTable_get_values(netsnmp_mib_handler *handler,
-                                     netsnmp_handler_registration *reginfo,
-                                     netsnmp_agent_request_info
-                                     *agtreq_info,
-                                     netsnmp_request_info *requests)
-{
-    ipDefaultRouterTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-    netsnmp_table_request_info *tri;
-    u_char         *old_string;
-    void            (*dataFreeHook) (void *);
-    int             rc;
-
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:_mfd_ipDefaultRouterTable_get_values", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    for (; requests; requests = requests->next) {
-        /*
-         * save old pointer, so we can free it if replaced
-         */
-        old_string = requests->requestvb->val.string;
-        dataFreeHook = requests->requestvb->dataFreeHook;
-        if (NULL == requests->requestvb->val.string) {
-            requests->requestvb->val.string = requests->requestvb->buf;
-            requests->requestvb->val_len =
-                sizeof(requests->requestvb->buf);
-        } else if (requests->requestvb->buf ==
-                   requests->requestvb->val.string) {
-            if (requests->requestvb->val_len !=
-                sizeof(requests->requestvb->buf))
-                requests->requestvb->val_len =
-                    sizeof(requests->requestvb->buf);
-        }
-
-        /*
-         * get column data
-         */
-        tri = netsnmp_extract_table_info(requests);
-        if (NULL == tri)
-            continue;
-
-        rc = _ipDefaultRouterTable_get_column(rowreq_ctx,
-                                              requests->requestvb,
-                                              tri->colnum);
-        if (rc) {
-            if (MFD_SKIP == rc) {
-                requests->requestvb->type = SNMP_NOSUCHINSTANCE;
-                rc = SNMP_ERR_NOERROR;
-            }
-        } else if (NULL == requests->requestvb->val.string) {
-            snmp_log(LOG_ERR, "NULL varbind data pointer!\n");
-            rc = SNMP_ERR_GENERR;
-        }
-        if (rc)
-            netsnmp_request_set_error(requests, SNMP_VALIDATE_ERR(rc));
-
-        /*
-         * if the buffer wasn't used previously for the old data (i.e. it
-         * was allcoated memory)  and the get routine replaced the pointer,
-         * we need to free the previous pointer.
-         */
-        if (old_string && (old_string != requests->requestvb->buf) &&
-            (requests->requestvb->val.string != old_string)) {
-            if (dataFreeHook)
-                (*dataFreeHook) (old_string);
-            else
-                free(old_string);
-        }
-    }                           /* for results */
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_ipDefaultRouterTable_get_values */
-
-
-/***********************************************************************
- *
- * SET processing
- *
- ***********************************************************************/
-
-/*
- * SET PROCESSING NOT APPLICABLE (per MIB or user setting)
- */
-/***********************************************************************
- *
- * DATA ACCESS
- *
- ***********************************************************************/
-static void     _container_free(netsnmp_container * container);
-
-/**
- * @internal
- */
-static int
-_cache_load(netsnmp_cache * cache, void *vmagic)
-{
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:_cache_load", "called\n"));
-
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR,
-                 "invalid cache for ipDefaultRouterTable_cache_load\n");
-        return -1;
-    }
-
-    /** should only be called for an invalid or expired cache */
-    netsnmp_assert((0 == cache->valid) || (1 == cache->expired));
-
-    /*
-     * call user code
-     */
-    return ipDefaultRouterTable_container_load((netsnmp_container *)
-                                               cache->magic);
-}                               /* _cache_load */
-
-/**
- * @internal
- */
-static void
-_cache_free(netsnmp_cache * cache, void *magic)
-{
-    netsnmp_container *container;
-
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:_cache_free", "called\n"));
-
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR,
-                 "invalid cache in ipDefaultRouterTable_cache_free\n");
-        return;
-    }
-
-    container = (netsnmp_container *) cache->magic;
-
-    _container_free(container);
-}                               /* _cache_free */
-
-/**
- * @internal
- */
-static void
-_container_item_free(ipDefaultRouterTable_rowreq_ctx * rowreq_ctx,
-                     void *context)
-{
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:_container_item_free",
-                "called\n"));
-
-    if (NULL == rowreq_ctx)
-        return;
-
-    ipDefaultRouterTable_release_rowreq_ctx(rowreq_ctx);
-}                               /* _container_item_free */
-
-/**
- * @internal
- */
-static void
-_container_free(netsnmp_container * container)
-{
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:_container_free",
-                "called\n"));
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR,
-                 "invalid container in ipDefaultRouterTable_container_free\n");
-        return;
-    }
-
-    /*
-     * call user code
-     */
-    ipDefaultRouterTable_container_free(container);
-
-    /*
-     * free all items. inefficient, but easy.
-     */
-    CONTAINER_CLEAR(container,
-                    (netsnmp_container_obj_func *) _container_item_free,
-                    NULL);
-}                               /* _container_free */
-
-/**
- * @internal
- * initialize the container with functions or wrappers
- */
-void
-_ipDefaultRouterTable_container_init(ipDefaultRouterTable_interface_ctx *
-                                     if_ctx)
-{
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:_ipDefaultRouterTable_container_init", "called\n"));
-
-    /*
-     * cache init
-     */
-    if_ctx->cache = netsnmp_cache_create(30,    /* timeout in seconds */
-                                         _cache_load, _cache_free,
-                                         ipDefaultRouterTable_oid,
-                                         ipDefaultRouterTable_oid_size);
-
-    if (NULL == if_ctx->cache) {
-        snmp_log(LOG_ERR,
-                 "error creating cache for ipDefaultRouterTable\n");
-        return;
-    }
-
-    if_ctx->cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
-
-    ipDefaultRouterTable_container_init(&if_ctx->container, if_ctx->cache);
-    if (NULL == if_ctx->container)
-        if_ctx->container =
-            netsnmp_container_find("ipDefaultRouterTable:table_container");
-    if (NULL == if_ctx->container) {
-        snmp_log(LOG_ERR, "error creating container in "
-                 "ipDefaultRouterTable_container_init\n");
-        return;
-    }
-
-    if (NULL != if_ctx->cache)
-        if_ctx->cache->magic = (void *) if_ctx->container;
-}                               /* _ipDefaultRouterTable_container_init */
-
-/**
- * @internal
- * shutdown the container with functions or wrappers
- */
-void
-_ipDefaultRouterTable_container_shutdown(ipDefaultRouterTable_interface_ctx
-                                         * if_ctx)
-{
-    DEBUGMSGTL(("internal:ipDefaultRouterTable:_ipDefaultRouterTable_container_shutdown", "called\n"));
-
-    ipDefaultRouterTable_container_shutdown(if_ctx->container);
-
-    _container_free(if_ctx->container);
-
-}                               /* _ipDefaultRouterTable_container_shutdown */
-
-
-ipDefaultRouterTable_rowreq_ctx *
-ipDefaultRouterTable_row_find_by_mib_index(ipDefaultRouterTable_mib_index *
-                                           mib_idx)
-{
-    ipDefaultRouterTable_rowreq_ctx *rowreq_ctx;
-    oid             oid_tmp[MAX_OID_LEN];
-    netsnmp_index   oid_idx;
-    int             rc;
-
-    /*
-     * set up storage for OID
-     */
-    oid_idx.oids = oid_tmp;
-    oid_idx.len = sizeof(oid_tmp) / sizeof(oid);
-
-    /*
-     * convert
-     */
-    rc = ipDefaultRouterTable_index_to_oid(&oid_idx, mib_idx);
-    if (MFD_SUCCESS != rc)
-        return NULL;
-
-    rowreq_ctx =
-        CONTAINER_FIND(ipDefaultRouterTable_if_ctx.container, &oid_idx);
-
-    return rowreq_ctx;
-}
diff --git a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.h b/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.h
deleted file mode 100644
index a780491..0000000
--- a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 15899 $ of $
- *
- * $Id:$
- */
-/** @ingroup interface: Routines to interface to Net-SNMP
- *
- * \warning This code should not be modified, called directly,
- *          or used to interpret functionality. It is subject to
- *          change at any time.
- * 
- * @{
- */
-/*
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- * ***                                                               ***
- * ***  NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE  ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THIS FILE DOES NOT CONTAIN ANY USER EDITABLE CODE.      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THE GENERATED CODE IS INTERNAL IMPLEMENTATION, AND      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***    IS SUBJECT TO CHANGE WITHOUT WARNING IN FUTURE RELEASES.   ***
- * ***                                                               ***
- * ***                                                               ***
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- */
-#ifndef IPDEFAULTROUTERTABLE_INTERFACE_H
-#define IPDEFAULTROUTERTABLE_INTERFACE_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-#include "ipDefaultRouterTable.h"
-
-
-    /*
-     ********************************************************************
-     * Table declarations
-     */
-
-    /*
-     * PUBLIC interface initialization routine 
-     */
-    void           
-        _ipDefaultRouterTable_initialize_interface
-        (ipDefaultRouterTable_registration * user_ctx, u_long flags);
-    void           
-        _ipDefaultRouterTable_shutdown_interface
-        (ipDefaultRouterTable_registration * user_ctx);
-
-    ipDefaultRouterTable_registration
-        *ipDefaultRouterTable_registration_get(void);
-
-    ipDefaultRouterTable_registration
-        *ipDefaultRouterTable_registration_set
-        (ipDefaultRouterTable_registration * newreg);
-
-    netsnmp_container *ipDefaultRouterTable_container_get(void);
-    int             ipDefaultRouterTable_container_size(void);
-
-    ipDefaultRouterTable_rowreq_ctx
-        *ipDefaultRouterTable_allocate_rowreq_ctx(ipDefaultRouterTable_data
-                                                  *, void *);
-    void           
-        ipDefaultRouterTable_release_rowreq_ctx
-        (ipDefaultRouterTable_rowreq_ctx * rowreq_ctx);
-
-    int             ipDefaultRouterTable_index_to_oid(netsnmp_index *
-                                                      oid_idx,
-                                                      ipDefaultRouterTable_mib_index
-                                                      * mib_idx);
-    int             ipDefaultRouterTable_index_from_oid(netsnmp_index *
-                                                        oid_idx,
-                                                        ipDefaultRouterTable_mib_index
-                                                        * mib_idx);
-
-    /*
-     * access to certain internals. use with caution!
-     */
-    void           
-        ipDefaultRouterTable_valid_columns_set(netsnmp_column_info *vc);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPDEFAULTROUTERTABLE_INTERFACE_H */
-/** @} */
diff --git a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_oids.h b/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_oids.h
deleted file mode 100644
index 6914e71..0000000
--- a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_oids.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : generic-table-oids.m2c 12855 2005-09-27 15:56:08Z rstory $
- *
- * $Id:$
- */
-#ifndef IPDEFAULTROUTERTABLE_OIDS_H
-#define IPDEFAULTROUTERTABLE_OIDS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-    /*
-     * column number definitions for table ipDefaultRouterTable 
-     */
-#define IPDEFAULTROUTERTABLE_OID              1,3,6,1,2,1,4,37
-
-#define COLUMN_IPDEFAULTROUTERADDRESSTYPE         1
-
-#define COLUMN_IPDEFAULTROUTERADDRESS         2
-
-#define COLUMN_IPDEFAULTROUTERIFINDEX         3
-
-#define COLUMN_IPDEFAULTROUTERLIFETIME         4
-
-#define COLUMN_IPDEFAULTROUTERPREFERENCE         5
-
-
-#define IPDEFAULTROUTERTABLE_MIN_COL   COLUMN_IPDEFAULTROUTERLIFETIME
-#define IPDEFAULTROUTERTABLE_MAX_COL   COLUMN_IPDEFAULTROUTERPREFERENCE
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPDEFAULTROUTERTABLE_OIDS_H */
diff --git a/agent/mibgroup/ip-mib/ipIfStatsTable.h b/agent/mibgroup/ip-mib/ipIfStatsTable.h
deleted file mode 100644
index da1d85c..0000000
--- a/agent/mibgroup/ip-mib/ipIfStatsTable.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * module to include the modules
- */
-
-config_require(ip-mib/data_access/systemstats)
-config_require(ip-mib/ipIfStatsTable/ipIfStatsTable)
-config_require(ip-mib/ipIfStatsTable/ipIfStatsTable_interface)
-config_require(ip-mib/ipIfStatsTable/ipIfStatsTable_data_access)
diff --git a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.c b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.c
deleted file mode 100644
index 43d807e..0000000
--- a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $ 
- *
- * $Id:$
- */
-/** \page MFD helper for ipIfStatsTable
- *
- * \section intro Introduction
- * Introductory text.
- *
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "ipIfStatsTable.h"
-
-#include <net-snmp/agent/mib_modules.h>
-
-#include "ipIfStatsTable_interface.h"
-
-const oid       ipIfStatsTable_oid[] = { IPIFSTATSTABLE_OID };
-const int       ipIfStatsTable_oid_size = OID_LENGTH(ipIfStatsTable_oid);
-
-ipIfStatsTable_registration ipIfStatsTable_user_context;
-static ipIfStatsTable_registration *ipIfStatsTable_user_context_p;
-
-void            initialize_table_ipIfStatsTable(void);
-void            shutdown_table_ipIfStatsTable(void);
-
-
-/**
- * Initializes the ipIfStatsTable module
- */
-void
-init_ipIfStatsTable(void)
-{
-    DEBUGMSGTL(("verbose:ipIfStatsTable:init_ipIfStatsTable", "called\n"));
-
-    /*
-     * TODO:300:o: Perform ipIfStatsTable one-time module initialization.
-     */
-
-    /*
-     * here we initialize all the tables we're planning on supporting
-     */
-    if (should_init("ipIfStatsTable"))
-        initialize_table_ipIfStatsTable();
-
-    /*
-     * last changed should be 0 at startup
-     */
-    ipIfStatsTable_lastChange_set(0);
-}                               /* init_ipIfStatsTable */
-
-/**
- * Shut-down the ipIfStatsTable module (agent is exiting)
- */
-void
-shutdown_ipIfStatsTable(void)
-{
-    if (should_init("ipIfStatsTable"))
-        shutdown_table_ipIfStatsTable();
-
-}
-
-/**
- * Initialize the table ipIfStatsTable 
- *    (Define its contents and how it's structured)
- */
-void
-initialize_table_ipIfStatsTable(void)
-{
-    u_long          flags;
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:initialize_table_ipIfStatsTable",
-                "called\n"));
-
-    /*
-     * TODO:301:o: Perform ipIfStatsTable one-time table initialization.
-     */
-
-    /*
-     * TODO:302:o: |->Initialize ipIfStatsTable user context
-     * if you'd like to pass in a pointer to some data for this
-     * table, allocate or set it up here.
-     */
-    /*
-     * a netsnmp_data_list is a simple way to store void pointers. A simple
-     * string token is used to add, find or remove pointers.
-     */
-    ipIfStatsTable_user_context_p
-	= netsnmp_create_data_list("ipIfStatsTable", NULL, NULL);
-
-    /*
-     * No support for any flags yet, but in the future you would
-     * set any flags here.
-     */
-    flags = 0;
-
-    /*
-     * call interface initialization code
-     */
-    _ipIfStatsTable_initialize_interface
-	(ipIfStatsTable_user_context_p, flags);
-}                               /* initialize_table_ipIfStatsTable */
-
-/**
- * Shutdown the table ipIfStatsTable 
- */
-void
-shutdown_table_ipIfStatsTable(void)
-{
-    /*
-     * call interface shutdown code
-     */
-    _ipIfStatsTable_shutdown_interface(ipIfStatsTable_user_context_p);
-    netsnmp_free_all_list_data(ipIfStatsTable_user_context_p);
-    ipIfStatsTable_user_context_p = NULL;
-}
-
-/**
- * extra context initialization (eg default values)
- *
- * @param rowreq_ctx    : row request context
- * @param user_init_ctx : void pointer for user (parameter to rowreq_ctx_allocate)
- *
- * @retval MFD_SUCCESS  : no errors
- * @retval MFD_ERROR    : error (context allocate will fail)
- */
-int
-ipIfStatsTable_rowreq_ctx_init(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                               void *user_init_ctx)
-{
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_rowreq_ctx_init",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:210:o: |-> Perform extra ipIfStatsTable rowreq initialization. (eg DEFVALS)
-     */
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsTable_rowreq_ctx_init */
-
-/**
- * extra context cleanup
- *
- */
-void
-ipIfStatsTable_rowreq_ctx_cleanup(ipIfStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_rowreq_ctx_cleanup",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:211:o: |-> Perform extra ipIfStatsTable rowreq cleanup.
-     */
-    netsnmp_access_systemstats_entry_free(rowreq_ctx->data);
-    rowreq_ctx->data = NULL;
-}                               /* ipIfStatsTable_rowreq_ctx_cleanup */
-
-/**
- * pre-request callback
- *
- *
- * @retval MFD_SUCCESS              : success.
- * @retval MFD_ERROR                : other error
- */
-int
-ipIfStatsTable_pre_request(ipIfStatsTable_registration * user_context)
-{
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_pre_request",
-                "called\n"));
-
-    /*
-     * TODO:510:o: Perform ipIfStatsTable pre-request actions.
-     */
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsTable_pre_request */
-
-/**
- * post-request callback
- *
- * Note:
- *   New rows have been inserted into the container, and
- *   deleted rows have been removed from the container and
- *   released.
- *
- * @param user_context
- * @param rc : MFD_SUCCESS if all requests succeeded
- *
- * @retval MFD_SUCCESS : success.
- * @retval MFD_ERROR   : other error (ignored)
- */
-int
-ipIfStatsTable_post_request(ipIfStatsTable_registration * user_context,
-                            int rc)
-{
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_post_request",
-                "called\n"));
-
-    /*
-     * TODO:511:o: Perform ipIfStatsTable post-request actions.
-     */
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsTable_post_request */
-
-
-/** @{ */
diff --git a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h
deleted file mode 100644
index bda956f..0000000
--- a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $
- *
- * $Id:$
- */
-#ifndef IPIFSTATSTABLE_H
-#define IPIFSTATSTABLE_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-/** @addtogroup misc misc: Miscellaneous routines
- *
- * @{
- */
-#include <net-snmp/library/asn1.h>
-#include <net-snmp/data_access/ipstats.h>
-#include <net-snmp/data_access/systemstats.h>
-
-    /*
-     * other required module components 
-     */
-    /* *INDENT-OFF*  */
-config_require(ip-mib/ipIfStatsTable/ipIfStatsTable_interface)
-config_require(ip-mib/ipIfStatsTable/ipIfStatsTable_data_access)
-config_require(ip-mib/ipIfStatsTable/ipIfStatsTable_data_get)
-    /* *INDENT-ON*  */
-
-    /*
-     * OID and column number definitions for ipIfStatsTable 
-     */
-#include "ipIfStatsTable_oids.h"
-
-    /*
-     * enum definions 
-     */
-#include "ipIfStatsTable_enums.h"
-
-    /*
-     *********************************************************************
-     * function declarations
-     */
-    void            init_ipIfStatsTable(void);
-    void            shutdown_ipIfStatsTable(void);
-
-    /*
-     *********************************************************************
-     * Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipIfStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * IP-MIB::ipIfStatsTable is subid 3 of ipTrafficStats.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.4.31.3, length: 9
-     */
-    /*
-     *********************************************************************
-     * When you register your mib, you get to provide a generic
-     * pointer that will be passed back to you for most of the
-     * functions calls.
-     *
-     * TODO:100:r: Review all context structures
-     */
-    /*
-     * TODO:101:o: |-> Review ipIfStatsTable registration context.
-     */
-    typedef netsnmp_data_list ipIfStatsTable_registration;
-
-/**********************************************************************/
-    /*
-     * TODO:110:r: |-> Review ipIfStatsTable data context structure.
-     * This structure is used to represent the data for ipIfStatsTable.
-     */
-    typedef netsnmp_systemstats_entry ipIfStatsTable_data;
-
-
-    /*
-     * TODO:120:r: |-> Review ipIfStatsTable mib index.
-     * This structure is used to represent the index for ipIfStatsTable.
-     */
-    typedef struct ipIfStatsTable_mib_index_s {
-
-        /*
-         * ipIfStatsIPVersion(1)/InetVersion/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h
-         */
-        u_long          ipIfStatsIPVersion;
-
-        /*
-         * ipIfStatsIfIndex(2)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H
-         */
-        long            ipIfStatsIfIndex;
-
-
-    } ipIfStatsTable_mib_index;
-
-    /*
-     * TODO:121:r: |   |-> Review ipIfStatsTable max index length.
-     * If you KNOW that your indexes will never exceed a certain
-     * length, update this macro to that length.
-     */
-#define MAX_ipIfStatsTable_IDX_LEN     2
-
-
-    /*
-     *********************************************************************
-     * TODO:130:o: |-> Review ipIfStatsTable Row request (rowreq) context.
-     * When your functions are called, you will be passed a
-     * ipIfStatsTable_rowreq_ctx pointer.
-     */
-    typedef struct ipIfStatsTable_rowreq_ctx_s {
-
-    /** this must be first for container compare to work */
-        netsnmp_index   oid_idx;
-        oid             oid_tmp[MAX_ipIfStatsTable_IDX_LEN];
-
-        ipIfStatsTable_mib_index tbl_idx;
-
-        ipIfStatsTable_data *data;
-
-        /*
-         * flags per row. Currently, the first (lower) 8 bits are reserved
-         * for the user. See mfd.h for other flags.
-         */
-        u_int           rowreq_flags;
-
-        /*
-         * TODO:131:o: |   |-> Add useful data to ipIfStatsTable rowreq context.
-         */
-        char            known_missing;
-        uint32_t        ipIfStatsDiscontinuityTime;
-        uint32_t        ipIfStatsRefreshRate;
-
-        /*
-         * storage for future expansion
-         */
-        netsnmp_data_list *ipIfStatsTable_data_list;
-
-    } ipIfStatsTable_rowreq_ctx;
-
-    typedef struct ipIfStatsTable_ref_rowreq_ctx_s {
-        ipIfStatsTable_rowreq_ctx *rowreq_ctx;
-    } ipIfStatsTable_ref_rowreq_ctx;
-
-    /*
-     *********************************************************************
-     * function prototypes
-     */
-    int             ipIfStatsTable_pre_request(ipIfStatsTable_registration
-                                               * user_context);
-    int             ipIfStatsTable_post_request(ipIfStatsTable_registration
-                                                * user_context, int rc);
-
-    int            
-        ipIfStatsTable_rowreq_ctx_init(ipIfStatsTable_rowreq_ctx *
-                                       rowreq_ctx, void *user_init_ctx);
-    void           
-        ipIfStatsTable_rowreq_ctx_cleanup(ipIfStatsTable_rowreq_ctx *
-                                          rowreq_ctx);
-
-    ipIfStatsTable_data *ipIfStatsTable_allocate_data(void);
-    void            ipIfStatsTable_release_data(ipIfStatsTable_data *
-                                                data);
-
-
-    ipIfStatsTable_rowreq_ctx
-        *ipIfStatsTable_row_find_by_mib_index(ipIfStatsTable_mib_index *
-                                              mib_idx);
-
-    extern const oid      ipIfStatsTable_oid[];
-    extern const int      ipIfStatsTable_oid_size;
-
-
-#include "ipIfStatsTable_interface.h"
-#include "ipIfStatsTable_data_access.h"
-#include "ipIfStatsTable_data_get.h"
-
-    /*
-     * DUMMY markers, ignore
-     *
-     * TODO:099:x: *************************************************************
-     * TODO:199:x: *************************************************************
-     * TODO:299:x: *************************************************************
-     * TODO:399:x: *************************************************************
-     * TODO:499:x: *************************************************************
-     */
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPIFSTATSTABLE_H */
-/** @} */
diff --git a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c
deleted file mode 100644
index 7919dea..0000000
--- a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c
+++ /dev/null
@@ -1,410 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $ 
- *
- * $Id:$
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "ipIfStatsTable.h"
-
-
-#include "ipIfStatsTable_data_access.h"
-
-static int      ipis_cache_refresh = IPIFSTATSTABLE_CACHE_TIMEOUT;
-
-/** @ingroup interface
- * @addtogroup data_access data_access: Routines to access data
- *
- * These routines are used to locate the data used to satisfy
- * requests.
- * 
- * @{
- */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipIfStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * IP-MIB::ipIfStatsTable is subid 3 of ipTrafficStats.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.4.31.3, length: 9
- */
-
-/**
- * initialization for ipIfStatsTable data access
- *
- * This function is called during startup to allow you to
- * allocate any resources you need for the data table.
- *
- * @param ipIfStatsTable_reg
- *        Pointer to ipIfStatsTable_registration
- *
- * @retval MFD_SUCCESS : success.
- * @retval MFD_ERROR   : unrecoverable error.
- */
-int
-ipIfStatsTable_init_data(ipIfStatsTable_registration * ipIfStatsTable_reg)
-{
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_init_data",
-                "called\n"));
-
-    /*
-     * TODO:303:o: Initialize ipIfStatsTable data.
-     */
-    netsnmp_access_systemstats_init();
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsTable_init_data */
-
-/**
- * container overview
- *
- */
-
-/**
- * container initialization
- *
- * @param container_ptr_ptr A pointer to a container pointer. If you
- *        create a custom container, use this parameter to return it
- *        to the MFD helper. If set to NULL, the MFD helper will
- *        allocate a container for you.
- * @param  cache A pointer to a cache structure. You can set the timeout
- *         and other cache flags using this pointer.
- *
- *  This function is called at startup to allow you to customize certain
- *  aspects of the access method. For the most part, it is for advanced
- *  users. The default code should suffice for most cases. If no custom
- *  container is allocated, the MFD code will create one for your.
- *
- *  This is also the place to set up cache behavior. The default, to
- *  simply set the cache timeout, will work well with the default
- *  container. If you are using a custom container, you may want to
- *  look at the cache helper documentation to see if there are any
- *  flags you want to set.
- *
- * @remark
- *  This would also be a good place to do any initialization needed
- *  for you data source. For example, opening a connection to another
- *  process that will supply the data, opening a database, etc.
- */
-void
-ipIfStatsTable_container_init(netsnmp_container ** container_ptr_ptr,
-                              netsnmp_cache * cache)
-{
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_container_init",
-                "called\n"));
-
-    if (NULL == container_ptr_ptr) {
-        snmp_log(LOG_ERR,
-                 "bad container param to ipIfStatsTable_container_init\n");
-        return;
-    }
-
-    /*
-     * For advanced users, you can use a custom container. If you
-     * do not create one, one will be created for you.
-     */
-    /*
-     * We create a custom container here so we can pre-load it, which
-     * will result in all new entries with last changed values. we need
-     * to clear those...  We also need to make sure ifIndexes have been
-     * assigned...
-     */
-    *container_ptr_ptr =
-        netsnmp_container_find("ipIfStatsTable:table_container");
-    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");
-        return;
-    }
-
-    /*
-     * TODO:345:A: Set up ipIfStatsTable cache properties.
-     *
-     * Also for advanced users, you can set parameters for the
-     * cache. Do not change the magic pointer, as it is used
-     * by the MFD helper. To completely disable caching, set
-     * cache->enabled to 0.
-     */
-    cache->timeout = IPIFSTATSTABLE_CACHE_TIMEOUT;      /* seconds */
-
-    cache->flags |=
-        (NETSNMP_CACHE_DONT_AUTO_RELEASE | NETSNMP_CACHE_DONT_FREE_EXPIRED
-         | NETSNMP_CACHE_DONT_FREE_BEFORE_LOAD |
-         NETSNMP_CACHE_AUTO_RELOAD);
-}                               /* ipIfStatsTable_container_init */
-
-/**
- * check entry for update
- */
-static void
-_check_for_updates(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                   netsnmp_container *stats)
-{
-    netsnmp_systemstats_entry *ifstats_entry;
-
-    /*
-     * check for matching entry. works because indexes are the same.
-     */
-    ifstats_entry = (netsnmp_systemstats_entry*)CONTAINER_FIND(stats, rowreq_ctx->data);
-    if (NULL == ifstats_entry) {
-        DEBUGMSGTL(("ipIfStatsTable:access",
-                    "updating missing entry\n"));
-
-        /*
-         * mark row as missing, so we can set discontinuity
-         * when it comes back.
-         *
-         * what else should we do? set refresh to 0? that's not quite right...
-         */
-        rowreq_ctx->known_missing = 1;
-    } else {
-        DEBUGMSGTL(("ipIfStatsTable:access",
-                    "updating existing entry\n"));
-
-        /*
-         * Check for changes & update
-         */
-        netsnmp_access_systemstats_entry_update(rowreq_ctx->data,
-                                            ifstats_entry);
-
-        /*
-         * set discontinuity if previously missing.
-         */
-        if (1 == rowreq_ctx->known_missing) {
-            rowreq_ctx->known_missing = 0;
-            rowreq_ctx->ipIfStatsDiscontinuityTime =
-                netsnmp_get_agent_uptime();
-            ipIfStatsTable_lastChange_set(netsnmp_get_agent_uptime());
-        }
-
-        /*
-         * remove entry from container
-         */
-        CONTAINER_REMOVE(stats, ifstats_entry);
-        netsnmp_access_systemstats_entry_free(ifstats_entry);
-    }
-}
-
-/**
- * add new entry
- */
-static void
-_add_new(netsnmp_systemstats_entry *ifstats_entry,
-         netsnmp_container *container)
-{
-    ipIfStatsTable_rowreq_ctx *rowreq_ctx;
-
-    DEBUGMSGTL(("ipIfStatsTable:access", "creating new entry\n"));
-
-    netsnmp_assert(NULL != ifstats_entry);
-    netsnmp_assert(NULL != container);
-
-    /*
-     * allocate an row context and set the index(es)
-     */
-    rowreq_ctx =
-        ipIfStatsTable_allocate_rowreq_ctx(ifstats_entry, NULL);
-    if ((NULL != rowreq_ctx)
-        && (MFD_SUCCESS ==
-            ipIfStatsTable_indexes_set(rowreq_ctx,
-                                       ifstats_entry->index[0],
-                                       ifstats_entry->index[1]))) {
-        rowreq_ctx->ipIfStatsRefreshRate = ipis_cache_refresh * 1000;   /* milli-seconds */
-        CONTAINER_INSERT(container, rowreq_ctx);
-        ipIfStatsTable_lastChange_set(netsnmp_get_agent_uptime());
-    } else {
-        if (NULL != rowreq_ctx) {
-            snmp_log(LOG_ERR, "error setting index while loading "
-                     "ipIfStatsTable cache.\n");
-            ipIfStatsTable_release_rowreq_ctx(rowreq_ctx);
-        } else {
-            snmp_log(LOG_ERR, "memory allocation failed while loading "
-                     "ipIfStatsTable cache.\n");
-            netsnmp_access_systemstats_entry_free(ifstats_entry);
-        }
-    }
-}
-
-/**
- * container shutdown
- *
- * @param container_ptr A pointer to the container.
- *
- *  This function is called at shutdown to allow you to customize certain
- *  aspects of the access method. For the most part, it is for advanced
- *  users. The default code should suffice for most cases.
- *
- *  This function is called before ipIfStatsTable_container_free().
- *
- * @remark
- *  This would also be a good place to do any cleanup needed
- *  for you data source. For example, closing a connection to another
- *  process that supplied the data, closing a database, etc.
- */
-void
-ipIfStatsTable_container_shutdown(netsnmp_container * container_ptr)
-{
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_container_shutdown",
-                "called\n"));
-
-    if (NULL == container_ptr) {
-        snmp_log(LOG_ERR,
-                 "bad params to ipIfStatsTable_container_shutdown\n");
-        return;
-    }
-
-}                               /* ipIfStatsTable_container_shutdown */
-
-/**
- * load initial data
- *
- * TODO:350:M: Implement ipIfStatsTable data load
- * This function will also be called by the cache helper to load
- * the container again (after the container free function has been
- * called to free the previous contents).
- *
- * @param container container to which items should be inserted
- *
- * @retval MFD_SUCCESS              : success.
- * @retval MFD_RESOURCE_UNAVAILABLE : Can't access data source
- * @retval MFD_ERROR                : other error.
- *
- *  This function is called to load the index(es) (and data, optionally)
- *  for the every row in the data set.
- *
- * @remark
- *  While loading the data, the only important thing is the indexes.
- *  If access to your data is cheap/fast (e.g. you have a pointer to a
- *  structure in memory), it would make sense to update the data here.
- *  If, however, the accessing the data invovles more work (e.g. parsing
- *  some other existing data, or peforming calculations to derive the data),
- *  then you can limit yourself to setting the indexes and saving any
- *  information you will need later. Then use the saved information in
- *  ipIfStatsTable_row_prep() for populating data.
- *
- * @note
- *  If you need consistency between rows (like you want statistics
- *  for each row to be from the same time frame), you should set all
- *  data here.
- *
- */
-int
-ipIfStatsTable_container_load(netsnmp_container * container)
-{
-    netsnmp_container *stats;
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_container_load",
-                "called\n"));
-
-    netsnmp_assert(NULL != container);
-
-    stats = netsnmp_access_systemstats_container_load(NULL, NETSNMP_ACCESS_SYSTEMSTATS_LOAD_IFTABLE);
-    if (NULL == stats)
-        return MFD_RESOURCE_UNAVAILABLE;        /* msg already logged */
-
-    /*
-     * TODO:351:M: |-> Load/update data in the ipIfStatsTable container.
-     * loop over your ipIfStatsTable data, allocate a rowreq context,
-     * set the index(es) [and data, optionally] and insert into
-     * the container.
-     */
-
-    /*
-     * we just got a fresh copy of data. compare it to
-     * what we've already got, and make any adjustements...
-     */
-    CONTAINER_FOR_EACH(container, (netsnmp_container_obj_func *)
-                       _check_for_updates, stats);
-
-    /*
-     * now add any new entries
-     */
-    CONTAINER_FOR_EACH(stats, (netsnmp_container_obj_func *)
-                       _add_new, container);
-
-
-    /*
-      * free the container. we've either claimed each ifentry, or released it,
-     * so the dal function doesn't need to clear the container.
-     */
-    netsnmp_access_systemstats_container_free(stats,
-                                          NETSNMP_ACCESS_SYSTEMSTATS_FREE_DONT_CLEAR);
-
-    DEBUGMSGT(("verbose:ipIfStatsTable:ipIfStatsTable_container_load",
-               "%lu records\n", (unsigned long)CONTAINER_SIZE(container)));
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsTable_container_load */
-
-/**
- * container clean up
- *
- * @param container container with all current items
- *
- *  This optional callback is called prior to all
- *  item's being removed from the container. If you
- *  need to do any processing before that, do it here.
- *
- * @note
- *  The MFD helper will take care of releasing all the row contexts.
- *
- */
-void
-ipIfStatsTable_container_free(netsnmp_container * container)
-{
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_container_free",
-                "called\n"));
-
-    /*
-     * TODO:380:M: Free ipIfStatsTable container data.
-     */
-}                               /* ipIfStatsTable_container_free */
-
-/**
- * prepare row for processing.
- *
- *  When the agent has located the row for a request, this function is
- *  called to prepare the row for processing. If you fully populated
- *  the data context during the index setup phase, you may not need to
- *  do anything.
- *
- * @param rowreq_ctx pointer to a context.
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- */
-int
-ipIfStatsTable_row_prep(ipIfStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_row_prep",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:390:o: Prepare row for request.
-     * If populating row data was delayed, this is the place to
-     * fill in the row for this request.
-     */
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsTable_row_prep */
-
-/** @} */
diff --git a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.h b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.h
deleted file mode 100644
index 5ef7682..0000000
--- a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $
- *
- * $Id:$
- */
-#ifndef IPIFSTATSTABLE_DATA_ACCESS_H
-#define IPIFSTATSTABLE_DATA_ACCESS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-    /*
-     *********************************************************************
-     * function declarations
-     */
-
-    /*
-     *********************************************************************
-     * Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipIfStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * IP-MIB::ipIfStatsTable is subid 3 of ipTrafficStats.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.4.31.3, length: 9
-     */
-
-
-    int             ipIfStatsTable_init_data(ipIfStatsTable_registration *
-                                             ipIfStatsTable_reg);
-
-
-    /*
-     * TODO:180:o: Review ipIfStatsTable cache timeout.
-     * The number of seconds before the cache times out
-     */
-#define IPIFSTATSTABLE_CACHE_TIMEOUT   60
-
-    void            ipIfStatsTable_container_init(netsnmp_container **
-                                                  container_ptr_ptr,
-                                                  netsnmp_cache * cache);
-    void            ipIfStatsTable_container_shutdown(netsnmp_container *
-                                                      container_ptr);
-
-    int             ipIfStatsTable_container_load(netsnmp_container *
-                                                  container);
-    void            ipIfStatsTable_container_free(netsnmp_container *
-                                                  container);
-
-    int             ipIfStatsTable_cache_load(netsnmp_container *
-                                              container);
-    void            ipIfStatsTable_cache_free(netsnmp_container *
-                                              container);
-
-    int             ipIfStatsTable_row_prep(ipIfStatsTable_rowreq_ctx *
-                                            rowreq_ctx);
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPIFSTATSTABLE_DATA_ACCESS_H */
diff --git a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c
deleted file mode 100644
index db673dc..0000000
--- a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c
+++ /dev/null
@@ -1,3015 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 12088 $ of $ 
- *
- * $Id:$
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "ipIfStatsTable.h"
-
-
-/** @defgroup data_get data_get: Routines to get data
- *
- * TODO:230:M: Implement ipIfStatsTable get routines.
- * TODO:240:M: Implement ipIfStatsTable mapping routines (if any).
- *
- * These routine are used to get the value for individual objects. The
- * row context is passed, along with a pointer to the memory where the
- * value should be copied.
- *
- * @{
- */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipIfStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * IP-MIB::ipIfStatsTable is subid 3 of ipTrafficStats.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.4.31.3, length: 9
- */
-
-/*
- * ---------------------------------------------------------------------
- * * TODO:200:r: Implement ipIfStatsTable data context functions.
- */
-/*
- * ipIfStatsTable_allocate_data
- *
- * Purpose: create new ipIfStatsTable_data.
- */
-ipIfStatsTable_data *
-ipIfStatsTable_allocate_data(void)
-{
-    /*
-     * TODO:201:r: |-> allocate memory for the ipIfStatsTable data context.
-     */
-    ipIfStatsTable_data *rtn = SNMP_MALLOC_TYPEDEF(ipIfStatsTable_data);
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_allocate_data",
-                "called\n"));
-
-    if (NULL == rtn) {
-        snmp_log(LOG_ERR, "unable to malloc memory for new "
-                 "ipIfStatsTable_data.\n");
-    }
-
-    return rtn;
-}                               /* ipIfStatsTable_allocate_data */
-
-/*
- * ipIfStatsTable_release_data
- *
- * Purpose: release ipIfStatsTable data.
- */
-void
-ipIfStatsTable_release_data(ipIfStatsTable_data * data)
-{
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_release_data",
-                "called\n"));
-
-    /*
-     * TODO:202:r: |-> release memory for the ipIfStatsTable data context.
-     */
-    free(data);
-}                               /* ipIfStatsTable_release_data */
-
-
-
-/**
- * set mib index(es)
- *
- * @param tbl_idx mib index structure
- * @param ipIfStatsIPVersion_val
- * @param ipIfStatsIfIndex_val
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- *
- * @remark
- *  This convenience function is useful for setting all the MIB index
- *  components with a single function call. It is assume that the C values
- *  have already been mapped from their native/rawformat to the MIB format.
- */
-int
-ipIfStatsTable_indexes_set_tbl_idx(ipIfStatsTable_mib_index * tbl_idx,
-                                   u_long ipIfStatsIPVersion_val,
-                                   long ipIfStatsIfIndex_val)
-{
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_indexes_set_tbl_idx", "called\n"));
-
-    /*
-     * ipIfStatsIPVersion(1)/InetVersion/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h 
-     */
-    /** WARNING: this code might not work for netsnmp_ifstats_entry */
-    tbl_idx->ipIfStatsIPVersion = ipIfStatsIPVersion_val;
-
-    /*
-     * ipIfStatsIfIndex(2)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H 
-     */
-    /** WARNING: this code might not work for netsnmp_ifstats_entry */
-    tbl_idx->ipIfStatsIfIndex = ipIfStatsIfIndex_val;
-
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsTable_indexes_set_tbl_idx */
-
-/**
- * @internal
- * set row context indexes
- *
- * @param reqreq_ctx the row context that needs updated indexes
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- *
- * @remark
- *  This function sets the mib indexs, then updates the oid indexs
- *  from the mib index.
- */
-int
-ipIfStatsTable_indexes_set(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                           u_long ipIfStatsIPVersion_val,
-                           long ipIfStatsIfIndex_val)
-{
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_indexes_set",
-                "called\n"));
-
-    if (MFD_SUCCESS !=
-        ipIfStatsTable_indexes_set_tbl_idx(&rowreq_ctx->tbl_idx,
-                                           ipIfStatsIPVersion_val,
-                                           ipIfStatsIfIndex_val))
-        return MFD_ERROR;
-
-    /*
-     * convert mib index to oid index
-     */
-    rowreq_ctx->oid_idx.len = sizeof(rowreq_ctx->oid_tmp) / sizeof(oid);
-    if (0 != ipIfStatsTable_index_to_oid(&rowreq_ctx->oid_idx,
-                                         &rowreq_ctx->tbl_idx)) {
-        return MFD_ERROR;
-    }
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsTable_indexes_set */
-
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsInReceives
- * ipIfStatsInReceives is subid 3 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.3
- * Description:
-The total number of input IP datagrams received, including
-            those received in error.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsInReceives data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsInReceives_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsInReceives_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipIfStatsInReceives_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsInReceives_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsInReceives_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsInReceives data.
-     * copy (* ipIfStatsInReceives_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINRECEIVES])
-        return MFD_SKIP;
-
-    (*ipIfStatsInReceives_val_ptr) =
-        rowreq_ctx->data->stats.HCInReceives.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsInReceives_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCInReceives
- * ipIfStatsHCInReceives is subid 4 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.4
- * Description:
-The total number of input IP datagrams received, including
-            those received in error.  This object counts the same
-            datagrams as ipIfStatsInReceives, but allows for larger
-            values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCInReceives data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCInReceives_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCInReceives_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                          U64 * ipIfStatsHCInReceives_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCInReceives_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCInReceives data.
-     * get (* ipIfStatsHCInReceives_val_ptr ).low and (* ipIfStatsHCInReceives_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINRECEIVES])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCInReceives_val_ptr).low =
-        rowreq_ctx->data->stats.HCInReceives.low;
-    (*ipIfStatsHCInReceives_val_ptr).high =
-        rowreq_ctx->data->stats.HCInReceives.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCInReceives_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsInOctets
- * ipIfStatsInOctets is subid 5 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.5
- * Description:
-The total number of octets received in input IP datagrams,
-            including those received in error.  Octets from datagrams
-            counted in ipIfStatsInReceives MUST be counted here.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsInOctets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsInOctets_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsInOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                      u_long * ipIfStatsInOctets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsInOctets_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsInOctets_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsInOctets data.
-     * copy (* ipIfStatsInOctets_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINOCTETS])
-        return MFD_SKIP;
-
-    (*ipIfStatsInOctets_val_ptr) =
-        rowreq_ctx->data->stats.HCInOctets.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsInOctets_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCInOctets
- * ipIfStatsHCInOctets is subid 6 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.6
- * Description:
-The total number of octets received in input IP datagrams,
-            including those received in error.  This object counts the
-            same octets as ipIfStatsInOctets, but allows for larger
-            values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCInOctets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCInOctets_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCInOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                        U64 * ipIfStatsHCInOctets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCInOctets_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCInOctets data.
-     * get (* ipIfStatsHCInOctets_val_ptr ).low and (* ipIfStatsHCInOctets_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINOCTETS])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCInOctets_val_ptr).low =
-        rowreq_ctx->data->stats.HCInOctets.low;
-    (*ipIfStatsHCInOctets_val_ptr).high =
-        rowreq_ctx->data->stats.HCInOctets.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCInOctets_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsInHdrErrors
- * ipIfStatsInHdrErrors is subid 7 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.7
- * Description:
-The number of input IP datagrams discarded due to errors in
-            their IP headers, including version number mismatch, other
-            format errors, hop count exceeded, errors discovered in
-            processing their IP options, etc.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsInHdrErrors data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsInHdrErrors_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsInHdrErrors_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                         u_long * ipIfStatsInHdrErrors_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsInHdrErrors_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsInHdrErrors_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsInHdrErrors data.
-     * copy (* ipIfStatsInHdrErrors_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_INHDRERRORS])
-        return MFD_SKIP;
-
-    (*ipIfStatsInHdrErrors_val_ptr) =
-        rowreq_ctx->data->stats.InHdrErrors;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsInHdrErrors_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsInNoRoutes
- * ipIfStatsInNoRoutes is subid 8 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.8
- * Description:
-The number of input IP datagrams discarded because no route
-            could be found to transmit them to their destination.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsInNoRoutes data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsInNoRoutes_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsInNoRoutes_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipIfStatsInNoRoutes_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsInNoRoutes_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsInNoRoutes_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsInNoRoutes data.
-     * copy (* ipIfStatsInNoRoutes_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINNOROUTES])
-        return MFD_SKIP;
-
-    (*ipIfStatsInNoRoutes_val_ptr) =
-        rowreq_ctx->data->stats.HCInNoRoutes.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsInNoRoutes_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsInAddrErrors
- * ipIfStatsInAddrErrors is subid 9 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.9
- * Description:
-The number of input IP datagrams discarded because the IP
-            address in their IP header's destination field was not a
-            valid address to be received at this entity.  This count
-            includes invalid addresses (e.g., ::0).  For entities that
-            are not IP routers and therefore do not forward datagrams,
-            this counter includes datagrams discarded because the
-            destination address was not a local address.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsInAddrErrors data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsInAddrErrors_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsInAddrErrors_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                          u_long * ipIfStatsInAddrErrors_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsInAddrErrors_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsInAddrErrors_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsInAddrErrors data.
-     * copy (* ipIfStatsInAddrErrors_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_INADDRERRORS])
-        return MFD_SKIP;
-
-    (*ipIfStatsInAddrErrors_val_ptr) =
-        rowreq_ctx->data->stats.InAddrErrors;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsInAddrErrors_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsInUnknownProtos
- * ipIfStatsInUnknownProtos is subid 10 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.10
- * Description:
-The number of locally-addressed IP datagrams received
-            successfully but discarded because of an unknown or
-            unsupported protocol.
-
-            When tracking interface statistics, the counter of the
-            interface to which these datagrams were addressed is
-            incremented.  This interface might not be the same as the
-            input interface for some of the datagrams.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-
-
-
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsInUnknownProtos data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsInUnknownProtos_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsInUnknownProtos_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                             u_long * ipIfStatsInUnknownProtos_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsInUnknownProtos_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsInUnknownProtos_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsInUnknownProtos data.
-     * copy (* ipIfStatsInUnknownProtos_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_INUNKNOWNPROTOS])
-        return MFD_SKIP;
-
-    (*ipIfStatsInUnknownProtos_val_ptr) =
-        rowreq_ctx->data->stats.InUnknownProtos;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsInUnknownProtos_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsInTruncatedPkts
- * ipIfStatsInTruncatedPkts is subid 11 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.11
- * Description:
-The number of input IP datagrams discarded because the
-            datagram frame didn't carry enough data.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsInTruncatedPkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsInTruncatedPkts_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsInTruncatedPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                             u_long * ipIfStatsInTruncatedPkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsInTruncatedPkts_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsInTruncatedPkts_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsInTruncatedPkts data.
-     * copy (* ipIfStatsInTruncatedPkts_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_INTRUNCATEDPKTS])
-        return MFD_SKIP;
-
-    (*ipIfStatsInTruncatedPkts_val_ptr) =
-        rowreq_ctx->data->stats.InTruncatedPkts;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsInTruncatedPkts_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsInForwDatagrams
- * ipIfStatsInForwDatagrams is subid 12 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.12
- * Description:
-The number of input datagrams for which this entity was not
-            their final IP destination and for which this entity
-            attempted to find a route to forward them to that final
-            destination.  In entities that do not act as IP routers,
-            this counter will include only those datagrams that were
-            Source-Routed via this entity, and the Source-Route
-            processing was successful.
-
-            When tracking interface statistics, the counter of the
-            incoming interface is incremented for each datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsInForwDatagrams data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsInForwDatagrams_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsInForwDatagrams_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                             u_long * ipIfStatsInForwDatagrams_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsInForwDatagrams_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsInForwDatagrams_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsInForwDatagrams data.
-     * copy (* ipIfStatsInForwDatagrams_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINFORWDATAGRAMS])
-        return MFD_SKIP;
-
-    (*ipIfStatsInForwDatagrams_val_ptr) =
-        rowreq_ctx->data->stats.HCInForwDatagrams.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsInForwDatagrams_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCInForwDatagrams
- * ipIfStatsHCInForwDatagrams is subid 13 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.13
- * Description:
-The number of input datagrams for which this entity was not
-            their final IP destination and for which this entity
-            attempted to find a route to forward them to that final
-            destination.  This object counts the same packets as
-
-
-
-            ipIfStatsInForwDatagrams, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCInForwDatagrams data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCInForwDatagrams_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCInForwDatagrams_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                               U64 * ipIfStatsHCInForwDatagrams_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCInForwDatagrams_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCInForwDatagrams data.
-     * get (* ipIfStatsHCInForwDatagrams_val_ptr ).low and (* ipIfStatsHCInForwDatagrams_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINFORWDATAGRAMS])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCInForwDatagrams_val_ptr).low =
-        rowreq_ctx->data->stats.HCInForwDatagrams.low;
-    (*ipIfStatsHCInForwDatagrams_val_ptr).high =
-        rowreq_ctx->data->stats.HCInForwDatagrams.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCInForwDatagrams_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsReasmReqds
- * ipIfStatsReasmReqds is subid 14 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.14
- * Description:
-The number of IP fragments received that needed to be
-            reassembled at this interface.
-
-            When tracking interface statistics, the counter of the
-            interface to which these fragments were addressed is
-            incremented.  This interface might not be the same as the
-            input interface for some of the fragments.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsReasmReqds data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsReasmReqds_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsReasmReqds_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipIfStatsReasmReqds_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsReasmReqds_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsReasmReqds_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsReasmReqds data.
-     * copy (* ipIfStatsReasmReqds_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_REASMREQDS])
-        return MFD_SKIP;
-
-    (*ipIfStatsReasmReqds_val_ptr) =
-        rowreq_ctx->data->stats.ReasmReqds;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsReasmReqds_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsReasmOKs
- * ipIfStatsReasmOKs is subid 15 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.15
- * Description:
-The number of IP datagrams successfully reassembled.
-
-            When tracking interface statistics, the counter of the
-            interface to which these datagrams were addressed is
-            incremented.  This interface might not be the same as the
-            input interface for some of the datagrams.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsReasmOKs data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsReasmOKs_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsReasmOKs_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                      u_long * ipIfStatsReasmOKs_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsReasmOKs_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsReasmOKs_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsReasmOKs data.
-     * copy (* ipIfStatsReasmOKs_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_REASMOKS])
-        return MFD_SKIP;
-
-    (*ipIfStatsReasmOKs_val_ptr) =
-        rowreq_ctx->data->stats.ReasmOKs;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsReasmOKs_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsReasmFails
- * ipIfStatsReasmFails is subid 16 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.16
- * Description:
-The number of failures detected by the IP re-assembly
-            algorithm (for whatever reason: timed out, errors, etc.).
-            Note that this is not necessarily a count of discarded IP
-            fragments since some algorithms (notably the algorithm in
-            RFC 815) can lose track of the number of fragments by
-            combining them as they are received.
-
-            When tracking interface statistics, the counter of the
-            interface to which these fragments were addressed is
-            incremented.  This interface might not be the same as the
-            input interface for some of the fragments.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsReasmFails data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsReasmFails_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsReasmFails_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipIfStatsReasmFails_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsReasmFails_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsReasmFails_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsReasmFails data.
-     * copy (* ipIfStatsReasmFails_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_REASMFAILS])
-        return MFD_SKIP;
-
-    (*ipIfStatsReasmFails_val_ptr) =
-        rowreq_ctx->data->stats.ReasmFails;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsReasmFails_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsInDiscards
- * ipIfStatsInDiscards is subid 17 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.17
- * Description:
-The number of input IP datagrams for which no problems were
-            encountered to prevent their continued processing, but
-            were discarded (e.g., for lack of buffer space).  Note that
-            this counter does not include any datagrams discarded while
-            awaiting re-assembly.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsInDiscards data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsInDiscards_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsInDiscards_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipIfStatsInDiscards_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsInDiscards_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsInDiscards_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsInDiscards data.
-     * copy (* ipIfStatsInDiscards_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_INDISCARDS])
-        return MFD_SKIP;
-
-    (*ipIfStatsInDiscards_val_ptr) =
-        rowreq_ctx->data->stats.InDiscards;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsInDiscards_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsInDelivers
- * ipIfStatsInDelivers is subid 18 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.18
- * Description:
-The total number of datagrams successfully delivered to IP
-            user-protocols (including ICMP).
-
-            When tracking interface statistics, the counter of the
-            interface to which these datagrams were addressed is
-            incremented.  This interface might not be the same as the
-
-
-
-            input interface for some of the datagrams.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsInDelivers data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsInDelivers_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsInDelivers_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipIfStatsInDelivers_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsInDelivers_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsInDelivers_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsInDelivers data.
-     * copy (* ipIfStatsInDelivers_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINDELIVERS])
-        return MFD_SKIP;
-
-    (*ipIfStatsInDelivers_val_ptr) =
-        rowreq_ctx->data->stats.HCInDelivers.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsInDelivers_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCInDelivers
- * ipIfStatsHCInDelivers is subid 19 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.19
- * Description:
-The total number of datagrams successfully delivered to IP
-            user-protocols (including ICMP).  This object counts the
-            same packets as ipIfStatsInDelivers, but allows for larger
-            values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCInDelivers data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCInDelivers_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCInDelivers_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                          U64 * ipIfStatsHCInDelivers_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCInDelivers_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCInDelivers data.
-     * get (* ipIfStatsHCInDelivers_val_ptr ).low and (* ipIfStatsHCInDelivers_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINDELIVERS])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCInDelivers_val_ptr).low =
-        rowreq_ctx->data->stats.HCInDelivers.low;
-    (*ipIfStatsHCInDelivers_val_ptr).high =
-        rowreq_ctx->data->stats.HCInDelivers.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCInDelivers_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsOutRequests
- * ipIfStatsOutRequests is subid 20 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.20
- * Description:
-The total number of IP datagrams that local IP user-
-            protocols (including ICMP) supplied to IP in requests for
-            transmission.  Note that this counter does not include any
-            datagrams counted in ipIfStatsOutForwDatagrams.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsOutRequests data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsOutRequests_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsOutRequests_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                         u_long * ipIfStatsOutRequests_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsOutRequests_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsOutRequests_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsOutRequests data.
-     * copy (* ipIfStatsOutRequests_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTREQUESTS])
-        return MFD_SKIP;
-
-    (*ipIfStatsOutRequests_val_ptr) =
-        rowreq_ctx->data->stats.HCOutRequests.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsOutRequests_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCOutRequests
- * ipIfStatsHCOutRequests is subid 21 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.21
- * Description:
-The total number of IP datagrams that local IP user-
-            protocols (including ICMP) supplied to IP in requests for
-            transmission.  This object counts the same packets as
-
-
-
-            ipIfStatsOutRequests, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCOutRequests data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCOutRequests_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCOutRequests_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                           U64 * ipIfStatsHCOutRequests_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCOutRequests_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCOutRequests data.
-     * get (* ipIfStatsHCOutRequests_val_ptr ).low and (* ipIfStatsHCOutRequests_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTREQUESTS])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCOutRequests_val_ptr).low =
-        rowreq_ctx->data->stats.HCOutRequests.low;
-    (*ipIfStatsHCOutRequests_val_ptr).high =
-        rowreq_ctx->data->stats.HCOutRequests.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCOutRequests_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsOutForwDatagrams
- * ipIfStatsOutForwDatagrams is subid 23 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.23
- * Description:
-The number of datagrams for which this entity was not their
-            final IP destination and for which it was successful in
-            finding a path to their final destination.  In entities
-            that do not act as IP routers, this counter will include
-            only those datagrams that were Source-Routed via this
-            entity, and the Source-Route processing was successful.
-
-            When tracking interface statistics, the counter of the
-            outgoing interface is incremented for a successfully
-            forwarded datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsOutForwDatagrams data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsOutForwDatagrams_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsOutForwDatagrams_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                              u_long * ipIfStatsOutForwDatagrams_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsOutForwDatagrams_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsOutForwDatagrams_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsOutForwDatagrams data.
-     * copy (* ipIfStatsOutForwDatagrams_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFORWDATAGRAMS])
-        return MFD_SKIP;
-
-    (*ipIfStatsOutForwDatagrams_val_ptr) =
-        rowreq_ctx->data->stats.HCOutForwDatagrams.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsOutForwDatagrams_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCOutForwDatagrams
- * ipIfStatsHCOutForwDatagrams is subid 24 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.24
- * Description:
-The number of datagrams for which this entity was not their
-            final IP destination and for which it was successful in
-            finding a path to their final destination.  This object
-            counts the same packets as ipIfStatsOutForwDatagrams, but
-            allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-
-
-
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCOutForwDatagrams data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCOutForwDatagrams_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCOutForwDatagrams_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                                U64 * ipIfStatsHCOutForwDatagrams_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCOutForwDatagrams_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCOutForwDatagrams data.
-     * get (* ipIfStatsHCOutForwDatagrams_val_ptr ).low and (* ipIfStatsHCOutForwDatagrams_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFORWDATAGRAMS])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCOutForwDatagrams_val_ptr).low =
-        rowreq_ctx->data->stats.HCOutForwDatagrams.low;
-    (*ipIfStatsHCOutForwDatagrams_val_ptr).high =
-        rowreq_ctx->data->stats.HCOutForwDatagrams.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCOutForwDatagrams_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsOutDiscards
- * ipIfStatsOutDiscards is subid 25 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.25
- * Description:
-The number of output IP datagrams for which no problem was
-            encountered to prevent their transmission to their
-            destination, but were discarded (e.g., for lack of
-            buffer space).  Note that this counter would include
-            datagrams counted in ipIfStatsOutForwDatagrams if any such
-            datagrams met this (discretionary) discard criterion.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsOutDiscards data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsOutDiscards_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsOutDiscards_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                         u_long * ipIfStatsOutDiscards_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsOutDiscards_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsOutDiscards_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsOutDiscards data.
-     * copy (* ipIfStatsOutDiscards_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTDISCARDS])
-        return MFD_SKIP;
-
-    (*ipIfStatsOutDiscards_val_ptr) =
-        rowreq_ctx->data->stats.HCOutDiscards.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsOutDiscards_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsOutFragReqds
- * ipIfStatsOutFragReqds is subid 26 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.26
- * Description:
-The number of IP datagrams that would require fragmentation
-            in order to be transmitted.
-
-            When tracking interface statistics, the counter of the
-            outgoing interface is incremented for a successfully
-            fragmented datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsOutFragReqds data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsOutFragReqds_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsOutFragReqds_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                          u_long * ipIfStatsOutFragReqds_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsOutFragReqds_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsOutFragReqds_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsOutFragReqds data.
-     * copy (* ipIfStatsOutFragReqds_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGREQDS])
-        return MFD_SKIP;
-
-    (*ipIfStatsOutFragReqds_val_ptr) =
-        rowreq_ctx->data->stats.HCOutFragReqds.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsOutFragReqds_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsOutFragOKs
- * ipIfStatsOutFragOKs is subid 27 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.27
- * Description:
-The number of IP datagrams that have been successfully
-            fragmented.
-
-            When tracking interface statistics, the counter of the
-
-
-
-            outgoing interface is incremented for a successfully
-            fragmented datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsOutFragOKs data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsOutFragOKs_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsOutFragOKs_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipIfStatsOutFragOKs_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsOutFragOKs_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsOutFragOKs_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsOutFragOKs data.
-     * copy (* ipIfStatsOutFragOKs_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGOKS])
-        return MFD_SKIP;
-
-    (*ipIfStatsOutFragOKs_val_ptr) =
-        rowreq_ctx->data->stats.HCOutFragOKs.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsOutFragOKs_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsOutFragFails
- * ipIfStatsOutFragFails is subid 28 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.28
- * Description:
-The number of IP datagrams that have been discarded because
-            they needed to be fragmented but could not be.  This
-            includes IPv4 packets that have the DF bit set and IPv6
-            packets that are being forwarded and exceed the outgoing
-            link MTU.
-
-            When tracking interface statistics, the counter of the
-            outgoing interface is incremented for an unsuccessfully
-            fragmented datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsOutFragFails data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsOutFragFails_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsOutFragFails_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                          u_long * ipIfStatsOutFragFails_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsOutFragFails_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsOutFragFails_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsOutFragFails data.
-     * copy (* ipIfStatsOutFragFails_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGFAILS])
-        return MFD_SKIP;
-
-    (*ipIfStatsOutFragFails_val_ptr) =
-        rowreq_ctx->data->stats.HCOutFragFails.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsOutFragFails_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsOutFragCreates
- * ipIfStatsOutFragCreates is subid 29 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.29
- * Description:
-The number of output datagram fragments that have been
-            generated as a result of IP fragmentation.
-
-            When tracking interface statistics, the counter of the
-            outgoing interface is incremented for a successfully
-            fragmented datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsOutFragCreates data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsOutFragCreates_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsOutFragCreates_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                            u_long * ipIfStatsOutFragCreates_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsOutFragCreates_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsOutFragCreates_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsOutFragCreates data.
-     * copy (* ipIfStatsOutFragCreates_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGCREATES])
-        return MFD_SKIP;
-
-    (*ipIfStatsOutFragCreates_val_ptr) =
-        rowreq_ctx->data->stats.HCOutFragCreates.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsOutFragCreates_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsOutTransmits
- * ipIfStatsOutTransmits is subid 30 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.30
- * Description:
-The total number of IP datagrams that this entity supplied
-            to the lower layers for transmission.  This includes
-            datagrams generated locally and those forwarded by this
-            entity.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsOutTransmits data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsOutTransmits_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsOutTransmits_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                          u_long * ipIfStatsOutTransmits_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsOutTransmits_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsOutTransmits_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsOutTransmits data.
-     * copy (* ipIfStatsOutTransmits_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTTRANSMITS])
-        return MFD_SKIP;
-
-    (*ipIfStatsOutTransmits_val_ptr) =
-        rowreq_ctx->data->stats.HCOutTransmits.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsOutTransmits_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCOutTransmits
- * ipIfStatsHCOutTransmits is subid 31 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.31
- * Description:
-The total number of IP datagrams that this entity supplied
-            to the lower layers for transmission.  This object counts
-            the same datagrams as ipIfStatsOutTransmits, but allows for
-            larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCOutTransmits data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCOutTransmits_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCOutTransmits_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                            U64 * ipIfStatsHCOutTransmits_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCOutTransmits_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCOutTransmits data.
-     * get (* ipIfStatsHCOutTransmits_val_ptr ).low and (* ipIfStatsHCOutTransmits_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTTRANSMITS])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCOutTransmits_val_ptr).low =
-        rowreq_ctx->data->stats.HCOutTransmits.low;
-    (*ipIfStatsHCOutTransmits_val_ptr).high =
-        rowreq_ctx->data->stats.HCOutTransmits.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCOutTransmits_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsOutOctets
- * ipIfStatsOutOctets is subid 32 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.32
- * Description:
-The total number of octets in IP datagrams delivered to the
-            lower layers for transmission.  Octets from datagrams
-            counted in ipIfStatsOutTransmits MUST be counted here.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsOutOctets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsOutOctets_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsOutOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                       u_long * ipIfStatsOutOctets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsOutOctets_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsOutOctets_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsOutOctets data.
-     * copy (* ipIfStatsOutOctets_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTOCTETS])
-        return MFD_SKIP;
-
-    (*ipIfStatsOutOctets_val_ptr) =
-        rowreq_ctx->data->stats.HCOutOctets.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsOutOctets_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCOutOctets
- * ipIfStatsHCOutOctets is subid 33 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.33
- * Description:
-The total number of octets in IP datagrams delivered to the
-            lower layers for transmission.  This objects counts the same
-            octets as ipIfStatsOutOctets, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCOutOctets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCOutOctets_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCOutOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                         U64 * ipIfStatsHCOutOctets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCOutOctets_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCOutOctets data.
-     * get (* ipIfStatsHCOutOctets_val_ptr ).low and (* ipIfStatsHCOutOctets_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTOCTETS])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCOutOctets_val_ptr).low =
-        rowreq_ctx->data->stats.HCOutOctets.low;
-    (*ipIfStatsHCOutOctets_val_ptr).high =
-        rowreq_ctx->data->stats.HCOutOctets.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCOutOctets_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsInMcastPkts
- * ipIfStatsInMcastPkts is subid 34 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.34
- * Description:
-The number of IP multicast datagrams received.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsInMcastPkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsInMcastPkts_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsInMcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                         u_long * ipIfStatsInMcastPkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsInMcastPkts_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsInMcastPkts_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsInMcastPkts data.
-     * copy (* ipIfStatsInMcastPkts_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINMCASTPKTS])
-        return MFD_SKIP;
-
-    (*ipIfStatsInMcastPkts_val_ptr) =
-        rowreq_ctx->data->stats.HCInMcastPkts.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsInMcastPkts_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCInMcastPkts
- * ipIfStatsHCInMcastPkts is subid 35 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.35
- * Description:
-The number of IP multicast datagrams received.  This object
-            counts the same datagrams as ipIfStatsInMcastPkts, but
-            allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCInMcastPkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCInMcastPkts_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCInMcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                           U64 * ipIfStatsHCInMcastPkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCInMcastPkts_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCInMcastPkts data.
-     * get (* ipIfStatsHCInMcastPkts_val_ptr ).low and (* ipIfStatsHCInMcastPkts_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINMCASTPKTS])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCInMcastPkts_val_ptr).low =
-        rowreq_ctx->data->stats.HCInMcastPkts.low;
-    (*ipIfStatsHCInMcastPkts_val_ptr).high =
-        rowreq_ctx->data->stats.HCInMcastPkts.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCInMcastPkts_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsInMcastOctets
- * ipIfStatsInMcastOctets is subid 36 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.36
- * Description:
-The total number of octets received in IP multicast
-
-
-
-            datagrams.  Octets from datagrams counted in
-            ipIfStatsInMcastPkts MUST be counted here.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsInMcastOctets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsInMcastOctets_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsInMcastOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                           u_long * ipIfStatsInMcastOctets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsInMcastOctets_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsInMcastOctets_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsInMcastOctets data.
-     * copy (* ipIfStatsInMcastOctets_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINMCASTOCTETS])
-        return MFD_SKIP;
-
-    (*ipIfStatsInMcastOctets_val_ptr) =
-                rowreq_ctx->data->stats.HCInMcastOctets.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsInMcastOctets_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCInMcastOctets
- * ipIfStatsHCInMcastOctets is subid 37 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.37
- * Description:
-The total number of octets received in IP multicast
-            datagrams.  This object counts the same octets as
-            ipIfStatsInMcastOctets, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCInMcastOctets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCInMcastOctets_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCInMcastOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                             U64 * ipIfStatsHCInMcastOctets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCInMcastOctets_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCInMcastOctets data.
-     * get (* ipIfStatsHCInMcastOctets_val_ptr ).low and (* ipIfStatsHCInMcastOctets_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINMCASTOCTETS])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCInMcastOctets_val_ptr).low =
-        rowreq_ctx->data->stats.HCInMcastOctets.low;
-    (*ipIfStatsHCInMcastOctets_val_ptr).high =
-        rowreq_ctx->data->stats.HCInMcastOctets.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCInMcastOctets_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsOutMcastPkts
- * ipIfStatsOutMcastPkts is subid 38 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.38
- * Description:
-The number of IP multicast datagrams transmitted.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsOutMcastPkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsOutMcastPkts_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsOutMcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                          u_long * ipIfStatsOutMcastPkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsOutMcastPkts_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsOutMcastPkts_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsOutMcastPkts data.
-     * copy (* ipIfStatsOutMcastPkts_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTMCASTPKTS])
-        return MFD_SKIP;
-
-    (*ipIfStatsOutMcastPkts_val_ptr) =
-        rowreq_ctx->data->stats.HCOutMcastPkts.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsOutMcastPkts_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCOutMcastPkts
- * ipIfStatsHCOutMcastPkts is subid 39 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.39
- * Description:
-The number of IP multicast datagrams transmitted.  This
-            object counts the same datagrams as ipIfStatsOutMcastPkts,
-            but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-
-
-
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCOutMcastPkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCOutMcastPkts_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCOutMcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                            U64 * ipIfStatsHCOutMcastPkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCOutMcastPkts_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCOutMcastPkts data.
-     * get (* ipIfStatsHCOutMcastPkts_val_ptr ).low and (* ipIfStatsHCOutMcastPkts_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTMCASTPKTS])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCOutMcastPkts_val_ptr).low =
-        rowreq_ctx->data->stats.HCOutMcastPkts.low;
-    (*ipIfStatsHCOutMcastPkts_val_ptr).high =
-        rowreq_ctx->data->stats.HCOutMcastPkts.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCOutMcastPkts_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsOutMcastOctets
- * ipIfStatsOutMcastOctets is subid 40 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.40
- * Description:
-The total number of octets transmitted in IP multicast
-            datagrams.  Octets from datagrams counted in
-            ipIfStatsOutMcastPkts MUST be counted here.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsOutMcastOctets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsOutMcastOctets_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsOutMcastOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                            u_long * ipIfStatsOutMcastOctets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsOutMcastOctets_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsOutMcastOctets_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsOutMcastOctets data.
-     * copy (* ipIfStatsOutMcastOctets_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTMCASTOCTETS])
-        return MFD_SKIP;
-
-    (*ipIfStatsOutMcastOctets_val_ptr) =
-        rowreq_ctx->data->stats.HCOutMcastOctets.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsOutMcastOctets_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCOutMcastOctets
- * ipIfStatsHCOutMcastOctets is subid 41 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.41
- * Description:
-The total number of octets transmitted in IP multicast
-            datagrams.  This object counts the same octets as
-            ipIfStatsOutMcastOctets, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCOutMcastOctets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCOutMcastOctets_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCOutMcastOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                              U64 * ipIfStatsHCOutMcastOctets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCOutMcastOctets_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCOutMcastOctets data.
-     * get (* ipIfStatsHCOutMcastOctets_val_ptr ).low and (* ipIfStatsHCOutMcastOctets_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTMCASTOCTETS])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCOutMcastOctets_val_ptr).low =
-        rowreq_ctx->data->stats.HCOutMcastOctets.low;
-    (*ipIfStatsHCOutMcastOctets_val_ptr).high =
-        rowreq_ctx->data->stats.HCOutMcastOctets.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCOutMcastOctets_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsInBcastPkts
- * ipIfStatsInBcastPkts is subid 42 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.42
- * Description:
-The number of IP broadcast datagrams received.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsInBcastPkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsInBcastPkts_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsInBcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                         u_long * ipIfStatsInBcastPkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsInBcastPkts_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsInBcastPkts_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsInBcastPkts data.
-     * copy (* ipIfStatsInBcastPkts_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINBCASTPKTS])
-        return MFD_SKIP;
-
-    (*ipIfStatsInBcastPkts_val_ptr) =
-        rowreq_ctx->data->stats.HCInBcastPkts.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsInBcastPkts_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCInBcastPkts
- * ipIfStatsHCInBcastPkts is subid 43 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.43
- * Description:
-The number of IP broadcast datagrams received.  This object
-            counts the same datagrams as ipIfStatsInBcastPkts, but
-            allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCInBcastPkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCInBcastPkts_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCInBcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                           U64 * ipIfStatsHCInBcastPkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCInBcastPkts_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCInBcastPkts data.
-     * get (* ipIfStatsHCInBcastPkts_val_ptr ).low and (* ipIfStatsHCInBcastPkts_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINBCASTPKTS])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCInBcastPkts_val_ptr).low =
-        rowreq_ctx->data->stats.HCInBcastPkts.low;
-    (*ipIfStatsHCInBcastPkts_val_ptr).high =
-        rowreq_ctx->data->stats.HCInBcastPkts.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCInBcastPkts_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsOutBcastPkts
- * ipIfStatsOutBcastPkts is subid 44 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.44
- * Description:
-The number of IP broadcast datagrams transmitted.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsOutBcastPkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsOutBcastPkts_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsOutBcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                          u_long * ipIfStatsOutBcastPkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsOutBcastPkts_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsOutBcastPkts_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsOutBcastPkts data.
-     * copy (* ipIfStatsOutBcastPkts_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTBCASTPKTS])
-        return MFD_SKIP;
-
-    (*ipIfStatsOutBcastPkts_val_ptr) =
-        rowreq_ctx->data->stats.HCOutBcastPkts.low;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsOutBcastPkts_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsHCOutBcastPkts
- * ipIfStatsHCOutBcastPkts is subid 45 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.45
- * Description:
-The number of IP broadcast datagrams transmitted.  This
-            object counts the same datagrams as ipIfStatsOutBcastPkts,
-            but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER64 (based on perltype COUNTER64)
- * The net-snmp type is ASN_COUNTER64. The C type decl is U64 (U64)
- */
-/**
- * Extract the current value of the ipIfStatsHCOutBcastPkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsHCOutBcastPkts_val_ptr
- *        Pointer to storage for a U64 variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsHCOutBcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                            U64 * ipIfStatsHCOutBcastPkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsHCOutBcastPkts_val_ptr);
-
-    /*
-     * TODO:231:o: |-> copy ipIfStatsHCOutBcastPkts data.
-     * get (* ipIfStatsHCOutBcastPkts_val_ptr ).low and (* ipIfStatsHCOutBcastPkts_val_ptr ).high from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTBCASTPKTS])
-        return MFD_SKIP;
-
-    (*ipIfStatsHCOutBcastPkts_val_ptr).low =
-        rowreq_ctx->data->stats.HCOutBcastPkts.low;
-    (*ipIfStatsHCOutBcastPkts_val_ptr).high =
-        rowreq_ctx->data->stats.HCOutBcastPkts.high;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsHCOutBcastPkts_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsDiscontinuityTime
- * ipIfStatsDiscontinuityTime is subid 46 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.46
- * Description:
-The value of sysUpTime on the most recent occasion at which
-
-
-
-            any one or more of this entry's counters suffered a
-            discontinuity.
-
-            If no such discontinuities have occurred since the last re-
-            initialization of the local management subsystem, then this
-            object contains a zero value.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is TimeStamp (based on perltype TICKS)
- * The net-snmp type is ASN_TIMETICKS. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsDiscontinuityTime data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsDiscontinuityTime_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsDiscontinuityTime_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                               u_long * ipIfStatsDiscontinuityTime_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsDiscontinuityTime_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsDiscontinuityTime_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsDiscontinuityTime data.
-     * copy (* ipIfStatsDiscontinuityTime_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_DISCONTINUITYTIME])
-        return MFD_SKIP;
-
-    (*ipIfStatsDiscontinuityTime_val_ptr) =
-        rowreq_ctx->ipIfStatsDiscontinuityTime;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsDiscontinuityTime_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipIfStatsEntry.ipIfStatsRefreshRate
- * ipIfStatsRefreshRate is subid 47 of ipIfStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.31.3.1.47
- * Description:
-The minimum reasonable polling interval for this entry.
-            This object provides an indication of the minimum amount of
-            time required to update the counters in this entry.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is UNSIGNED32 (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipIfStatsRefreshRate data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipIfStatsRefreshRate_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipIfStatsRefreshRate_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                         u_long * ipIfStatsRefreshRate_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipIfStatsRefreshRate_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsRefreshRate_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipIfStatsRefreshRate data.
-     * copy (* ipIfStatsRefreshRate_val_ptr ) from rowreq_ctx->data
-     */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_REFRESHRATE])
-        return MFD_SKIP;
-
-    (*ipIfStatsRefreshRate_val_ptr) =
-        rowreq_ctx->ipIfStatsRefreshRate;
-
-    return MFD_SUCCESS;
-}                               /* ipIfStatsRefreshRate_get */
-
-
-
-/** @} */
diff --git a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
deleted file mode 100644
index 0cc7e47..0000000
--- a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 12088 $ of $
- *
- * $Id:$
- *
- * @file ipIfStatsTable_data_get.h
- *
- * @addtogroup get
- *
- * Prototypes for get functions
- *
- * @{
- */
-#ifndef IPIFSTATSTABLE_DATA_GET_H
-#define IPIFSTATSTABLE_DATA_GET_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    /*
-     *********************************************************************
-     * GET function declarations
-     */
-
-    /*
-     *********************************************************************
-     * GET Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipIfStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * IP-MIB::ipIfStatsTable is subid 3 of ipTrafficStats.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.4.31.3, length: 9
-     */
-    /*
-     * indexes
-     */
-
-    int             ipIfStatsInReceives_get(ipIfStatsTable_rowreq_ctx *
-                                            rowreq_ctx,
-                                            u_long *
-                                            ipIfStatsInReceives_val_ptr);
-    int             ipIfStatsHCInReceives_get(ipIfStatsTable_rowreq_ctx *
-                                              rowreq_ctx,
-                                              U64 *
-                                              ipIfStatsHCInReceives_val_ptr);
-    int             ipIfStatsInOctets_get(ipIfStatsTable_rowreq_ctx *
-                                          rowreq_ctx,
-                                          u_long *
-                                          ipIfStatsInOctets_val_ptr);
-    int             ipIfStatsHCInOctets_get(ipIfStatsTable_rowreq_ctx *
-                                            rowreq_ctx,
-                                            U64 *
-                                            ipIfStatsHCInOctets_val_ptr);
-    int             ipIfStatsInHdrErrors_get(ipIfStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             u_long *
-                                             ipIfStatsInHdrErrors_val_ptr);
-    int             ipIfStatsInNoRoutes_get(ipIfStatsTable_rowreq_ctx *
-                                            rowreq_ctx,
-                                            u_long *
-                                            ipIfStatsInNoRoutes_val_ptr);
-    int             ipIfStatsInAddrErrors_get(ipIfStatsTable_rowreq_ctx *
-                                              rowreq_ctx,
-                                              u_long *
-                                              ipIfStatsInAddrErrors_val_ptr);
-    int             ipIfStatsInUnknownProtos_get(ipIfStatsTable_rowreq_ctx
-                                                 * rowreq_ctx,
-                                                 u_long *
-                                                 ipIfStatsInUnknownProtos_val_ptr);
-    int             ipIfStatsInTruncatedPkts_get(ipIfStatsTable_rowreq_ctx
-                                                 * rowreq_ctx,
-                                                 u_long *
-                                                 ipIfStatsInTruncatedPkts_val_ptr);
-    int             ipIfStatsInForwDatagrams_get(ipIfStatsTable_rowreq_ctx
-                                                 * rowreq_ctx,
-                                                 u_long *
-                                                 ipIfStatsInForwDatagrams_val_ptr);
-    int            
-        ipIfStatsHCInForwDatagrams_get(ipIfStatsTable_rowreq_ctx *
-                                       rowreq_ctx,
-                                       U64 *
-                                       ipIfStatsHCInForwDatagrams_val_ptr);
-    int             ipIfStatsReasmReqds_get(ipIfStatsTable_rowreq_ctx *
-                                            rowreq_ctx,
-                                            u_long *
-                                            ipIfStatsReasmReqds_val_ptr);
-    int             ipIfStatsReasmOKs_get(ipIfStatsTable_rowreq_ctx *
-                                          rowreq_ctx,
-                                          u_long *
-                                          ipIfStatsReasmOKs_val_ptr);
-    int             ipIfStatsReasmFails_get(ipIfStatsTable_rowreq_ctx *
-                                            rowreq_ctx,
-                                            u_long *
-                                            ipIfStatsReasmFails_val_ptr);
-    int             ipIfStatsInDiscards_get(ipIfStatsTable_rowreq_ctx *
-                                            rowreq_ctx,
-                                            u_long *
-                                            ipIfStatsInDiscards_val_ptr);
-    int             ipIfStatsInDelivers_get(ipIfStatsTable_rowreq_ctx *
-                                            rowreq_ctx,
-                                            u_long *
-                                            ipIfStatsInDelivers_val_ptr);
-    int             ipIfStatsHCInDelivers_get(ipIfStatsTable_rowreq_ctx *
-                                              rowreq_ctx,
-                                              U64 *
-                                              ipIfStatsHCInDelivers_val_ptr);
-    int             ipIfStatsOutRequests_get(ipIfStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             u_long *
-                                             ipIfStatsOutRequests_val_ptr);
-    int             ipIfStatsHCOutRequests_get(ipIfStatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               U64 *
-                                               ipIfStatsHCOutRequests_val_ptr);
-    int             ipIfStatsOutForwDatagrams_get(ipIfStatsTable_rowreq_ctx
-                                                  * rowreq_ctx,
-                                                  u_long *
-                                                  ipIfStatsOutForwDatagrams_val_ptr);
-    int            
-        ipIfStatsHCOutForwDatagrams_get(ipIfStatsTable_rowreq_ctx *
-                                        rowreq_ctx,
-                                        U64 *
-                                        ipIfStatsHCOutForwDatagrams_val_ptr);
-    int             ipIfStatsOutDiscards_get(ipIfStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             u_long *
-                                             ipIfStatsOutDiscards_val_ptr);
-    int             ipIfStatsOutFragReqds_get(ipIfStatsTable_rowreq_ctx *
-                                              rowreq_ctx,
-                                              u_long *
-                                              ipIfStatsOutFragReqds_val_ptr);
-    int             ipIfStatsOutFragOKs_get(ipIfStatsTable_rowreq_ctx *
-                                            rowreq_ctx,
-                                            u_long *
-                                            ipIfStatsOutFragOKs_val_ptr);
-    int             ipIfStatsOutFragFails_get(ipIfStatsTable_rowreq_ctx *
-                                              rowreq_ctx,
-                                              u_long *
-                                              ipIfStatsOutFragFails_val_ptr);
-    int             ipIfStatsOutFragCreates_get(ipIfStatsTable_rowreq_ctx *
-                                                rowreq_ctx,
-                                                u_long *
-                                                ipIfStatsOutFragCreates_val_ptr);
-    int             ipIfStatsOutTransmits_get(ipIfStatsTable_rowreq_ctx *
-                                              rowreq_ctx,
-                                              u_long *
-                                              ipIfStatsOutTransmits_val_ptr);
-    int             ipIfStatsHCOutTransmits_get(ipIfStatsTable_rowreq_ctx *
-                                                rowreq_ctx,
-                                                U64 *
-                                                ipIfStatsHCOutTransmits_val_ptr);
-    int             ipIfStatsOutOctets_get(ipIfStatsTable_rowreq_ctx *
-                                           rowreq_ctx,
-                                           u_long *
-                                           ipIfStatsOutOctets_val_ptr);
-    int             ipIfStatsHCOutOctets_get(ipIfStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             U64 *
-                                             ipIfStatsHCOutOctets_val_ptr);
-    int             ipIfStatsInMcastPkts_get(ipIfStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             u_long *
-                                             ipIfStatsInMcastPkts_val_ptr);
-    int             ipIfStatsHCInMcastPkts_get(ipIfStatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               U64 *
-                                               ipIfStatsHCInMcastPkts_val_ptr);
-    int             ipIfStatsInMcastOctets_get(ipIfStatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               u_long *
-                                               ipIfStatsInMcastOctets_val_ptr);
-    int             ipIfStatsHCInMcastOctets_get(ipIfStatsTable_rowreq_ctx
-                                                 * rowreq_ctx,
-                                                 U64 *
-                                                 ipIfStatsHCInMcastOctets_val_ptr);
-    int             ipIfStatsOutMcastPkts_get(ipIfStatsTable_rowreq_ctx *
-                                              rowreq_ctx,
-                                              u_long *
-                                              ipIfStatsOutMcastPkts_val_ptr);
-    int             ipIfStatsHCOutMcastPkts_get(ipIfStatsTable_rowreq_ctx *
-                                                rowreq_ctx,
-                                                U64 *
-                                                ipIfStatsHCOutMcastPkts_val_ptr);
-    int             ipIfStatsOutMcastOctets_get(ipIfStatsTable_rowreq_ctx *
-                                                rowreq_ctx,
-                                                u_long *
-                                                ipIfStatsOutMcastOctets_val_ptr);
-    int             ipIfStatsHCOutMcastOctets_get(ipIfStatsTable_rowreq_ctx
-                                                  * rowreq_ctx,
-                                                  U64 *
-                                                  ipIfStatsHCOutMcastOctets_val_ptr);
-    int             ipIfStatsInBcastPkts_get(ipIfStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             u_long *
-                                             ipIfStatsInBcastPkts_val_ptr);
-    int             ipIfStatsHCInBcastPkts_get(ipIfStatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               U64 *
-                                               ipIfStatsHCInBcastPkts_val_ptr);
-    int             ipIfStatsOutBcastPkts_get(ipIfStatsTable_rowreq_ctx *
-                                              rowreq_ctx,
-                                              u_long *
-                                              ipIfStatsOutBcastPkts_val_ptr);
-    int             ipIfStatsHCOutBcastPkts_get(ipIfStatsTable_rowreq_ctx *
-                                                rowreq_ctx,
-                                                U64 *
-                                                ipIfStatsHCOutBcastPkts_val_ptr);
-    int            
-        ipIfStatsDiscontinuityTime_get(ipIfStatsTable_rowreq_ctx *
-                                       rowreq_ctx,
-                                       u_long *
-                                       ipIfStatsDiscontinuityTime_val_ptr);
-    int             ipIfStatsRefreshRate_get(ipIfStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             u_long *
-                                             ipIfStatsRefreshRate_val_ptr);
-
-
-    int            
-        ipIfStatsTable_indexes_set_tbl_idx(ipIfStatsTable_mib_index *
-                                           tbl_idx,
-                                           u_long ipIfStatsIPVersion_val,
-                                           long ipIfStatsIfIndex_val);
-    int             ipIfStatsTable_indexes_set(ipIfStatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               u_long
-                                               ipIfStatsIPVersion_val,
-                                               long ipIfStatsIfIndex_val);
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPIFSTATSTABLE_DATA_GET_H */
-/** @} */
diff --git a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_enums.h b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_enums.h
deleted file mode 100644
index c3657d5..0000000
--- a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_enums.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : generic-table-enums.m2c 12526 2005-07-15 22:41:16Z rstory $
- *
- * $Id:$
- */
-#ifndef IPIFSTATSTABLE_ENUMS_H
-#define IPIFSTATSTABLE_ENUMS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    /*
-     * NOTES on enums
-     * ==============
-     *
-     * Value Mapping
-     * -------------
-     * If the values for your data type don't exactly match the
-     * possible values defined by the mib, you should map them
-     * below. For example, a boolean flag (1/0) is usually represented
-     * as a TruthValue in a MIB, which maps to the values (1/2).
-     *
-     */
-/*************************************************************************
- *************************************************************************
- *
- * enum definitions for table ipIfStatsTable
- *
- *************************************************************************
- *************************************************************************/
-
-/*************************************************************
- * constants for enums for the MIB node
- * ipIfStatsIPVersion (InetVersion / ASN_INTEGER)
- *
- * since a Textual Convention may be referenced more than once in a
- * MIB, protect againt redefinitions of the enum values.
- */
-#ifndef INETVERSION_ENUMS
-#define INETVERSION_ENUMS
-
-#define INETVERSION_UNKNOWN  0
-#define INETVERSION_IPV4  1
-#define INETVERSION_IPV6  2
-
-#endif                          /* INETVERSION_ENUMS */
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPIFSTATSTABLE_ENUMS_H */
diff --git a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c
deleted file mode 100644
index 559d1c1..0000000
--- a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c
+++ /dev/null
@@ -1,1420 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 15899 $ of $ 
- *
- * $Id:$
- */
-/*
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- * ***                                                               ***
- * ***  NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE  ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THIS FILE DOES NOT CONTAIN ANY USER EDITABLE CODE.      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THE GENERATED CODE IS INTERNAL IMPLEMENTATION, AND      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***    IS SUBJECT TO CHANGE WITHOUT WARNING IN FUTURE RELEASES.   ***
- * ***                                                               ***
- * ***                                                               ***
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- */
-
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "ipIfStatsTable.h"
-
-
-#include <net-snmp/agent/table_container.h>
-#include <net-snmp/library/container.h>
-
-#include "ipIfStatsTable_interface.h"
-
-#include <ctype.h>
-
-netsnmp_feature_child_of(ipIfStatsTable_external_access, libnetsnmpmibs)
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(check_all_requests_error)
-
-
-netsnmp_feature_child_of(ipIfStatsTable_container_size, ipIfStatsTable_external_access)
-netsnmp_feature_child_of(ipIfStatsTable_registration_set, ipIfStatsTable_external_access)
-netsnmp_feature_child_of(ipIfStatsTable_registration_get, ipIfStatsTable_external_access)
-netsnmp_feature_child_of(ipIfStatsTable_container_get, ipIfStatsTable_external_access)
-
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipIfStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * IP-MIB::ipIfStatsTable is subid 3 of ipTrafficStats.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.4.31.3, length: 9
- */
-typedef struct ipIfStatsTable_interface_ctx_s {
-
-    netsnmp_container *container;
-    netsnmp_cache  *cache;
-
-    ipIfStatsTable_registration *user_ctx;
-
-    netsnmp_table_registration_info tbl_info;
-
-    netsnmp_baby_steps_access_methods access_multiplexer;
-
-    u_long last_changed;
-
-} ipIfStatsTable_interface_ctx;
-
-static ipIfStatsTable_interface_ctx ipIfStatsTable_if_ctx;
-
-static void     _ipIfStatsTable_container_init(ipIfStatsTable_interface_ctx
-                                               * if_ctx);
-static void    
-_ipIfStatsTable_container_shutdown(ipIfStatsTable_interface_ctx * if_ctx);
-
-#ifndef NETSNMP_FEATURE_REMOVE_IPIFSTATSTABLE_CONTAINER_GET
-netsnmp_container *
-ipIfStatsTable_container_get(void)
-{
-    return ipIfStatsTable_if_ctx.container;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_IPIFSTATSTABLE_CONTAINER_GET */
-
-#ifndef NETSNMP_FEATURE_REMOVE_IPIFSTATSTABLE_REGISTRATION_GET
-ipIfStatsTable_registration *
-ipIfStatsTable_registration_get(void)
-{
-    return ipIfStatsTable_if_ctx.user_ctx;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_IPIFSTATSTABLE_REGISTRATION_GET */
-
-#ifndef NETSNMP_FEATURE_REMOVE_IPIFSTATSTABLE_REGISTRATION_SET
-ipIfStatsTable_registration *
-ipIfStatsTable_registration_set(ipIfStatsTable_registration * newreg)
-{
-    ipIfStatsTable_registration *old = ipIfStatsTable_if_ctx.user_ctx;
-    ipIfStatsTable_if_ctx.user_ctx = newreg;
-    return old;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_IPIFSTATSTABLE_REGISTRATION_SET */
-
-#ifndef NETSNMP_FEATURE_REMOVE_IPIFSTATSTABLE_CONTAINER_SIZE
-int
-ipIfStatsTable_container_size(void)
-{
-    return CONTAINER_SIZE(ipIfStatsTable_if_ctx.container);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_IPIFSTATSTABLE_CONTAINER_SIZE */
-
-/*
- * ipIfStatsTableLastChanged, which is the last time that a row in
- * the table was changed or the last time a row was added/deleted from the
- * table.
- */
-void
-ipIfStatsTable_lastChange_set(u_long table_changed)
-{
-    DEBUGMSGTL(("ipIfStatsTable:lastChanged_set",
-                "called. was %ld, now %ld\n",
-                ipIfStatsTable_if_ctx.last_changed, table_changed));
-    ipIfStatsTable_if_ctx.last_changed = table_changed;
-}
-
-/*
- * mfd multiplexer modes
- */
-static Netsnmp_Node_Handler _mfd_ipIfStatsTable_pre_request;
-static Netsnmp_Node_Handler _mfd_ipIfStatsTable_post_request;
-static Netsnmp_Node_Handler _mfd_ipIfStatsTable_object_lookup;
-static Netsnmp_Node_Handler _mfd_ipIfStatsTable_get_values;
-/**
- * @internal
- * Initialize the table ipIfStatsTable 
- *    (Define its contents and how it's structured)
- */
-void
-_ipIfStatsTable_initialize_interface(ipIfStatsTable_registration * reg_ptr,
-                                     u_long flags)
-{
-    netsnmp_baby_steps_access_methods *access_multiplexer =
-        &ipIfStatsTable_if_ctx.access_multiplexer;
-    netsnmp_table_registration_info *tbl_info =
-        &ipIfStatsTable_if_ctx.tbl_info;
-    netsnmp_handler_registration *reginfo;
-    netsnmp_mib_handler *handler;
-    int             mfd_modes = 0;
-
-    DEBUGMSGTL(("internal:ipIfStatsTable:_ipIfStatsTable_initialize_interface", "called\n"));
-
-
-    /*************************************************
-     *
-     * save interface context for ipIfStatsTable
-     */
-    /*
-     * Setting up the table's definition
-     */
-    netsnmp_table_helper_add_indexes(tbl_info, ASN_INTEGER,
-                                               /** index: ipIfStatsIPVersion */
-                                     ASN_INTEGER,
-                                               /** index: ipIfStatsIfIndex */
-                                     0);
-
-    /*
-     * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
-     */
-    tbl_info->min_column = IPIFSTATSTABLE_MIN_COL;
-    tbl_info->max_column = IPIFSTATSTABLE_MAX_COL;
-
-    /*
-     * save users context
-     */
-    ipIfStatsTable_if_ctx.user_ctx = reg_ptr;
-
-    /*
-     * call data access initialization code
-     */
-    ipIfStatsTable_init_data(reg_ptr);
-
-    /*
-     * set up the container
-     */
-    _ipIfStatsTable_container_init(&ipIfStatsTable_if_ctx);
-    if (NULL == ipIfStatsTable_if_ctx.container) {
-        snmp_log(LOG_ERR,
-                 "could not initialize container for ipIfStatsTable\n");
-        return;
-    }
-
-    /*
-     * access_multiplexer: REQUIRED wrapper for get request handling
-     */
-    access_multiplexer->object_lookup = _mfd_ipIfStatsTable_object_lookup;
-    access_multiplexer->get_values = _mfd_ipIfStatsTable_get_values;
-
-    /*
-     * no wrappers yet
-     */
-    access_multiplexer->pre_request = _mfd_ipIfStatsTable_pre_request;
-    access_multiplexer->post_request = _mfd_ipIfStatsTable_post_request;
-
-
-    /*************************************************
-     *
-     * Create a registration, save our reg data, register table.
-     */
-    DEBUGMSGTL(("ipIfStatsTable:init_ipIfStatsTable",
-                "Registering ipIfStatsTable as a mibs-for-dummies table.\n"));
-    handler =
-        netsnmp_baby_steps_access_multiplexer_get(access_multiplexer);
-    reginfo =
-        netsnmp_handler_registration_create("ipIfStatsTable", handler,
-                                            ipIfStatsTable_oid,
-                                            ipIfStatsTable_oid_size,
-                                            HANDLER_CAN_BABY_STEP |
-                                            HANDLER_CAN_RONLY);
-    if (NULL == reginfo) {
-        snmp_log(LOG_ERR, "error registering table ipIfStatsTable\n");
-        return;
-    }
-    reginfo->my_reg_void = &ipIfStatsTable_if_ctx;
-
-    /*************************************************
-     *
-     * set up baby steps handler, create it and inject it
-     */
-    if (access_multiplexer->object_lookup)
-        mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-    if (access_multiplexer->set_values)
-        mfd_modes |= BABY_STEP_SET_VALUES;
-    if (access_multiplexer->irreversible_commit)
-        mfd_modes |= BABY_STEP_IRREVERSIBLE_COMMIT;
-    if (access_multiplexer->object_syntax_checks)
-        mfd_modes |= BABY_STEP_CHECK_OBJECT;
-
-    if (access_multiplexer->undo_setup)
-        mfd_modes |= BABY_STEP_UNDO_SETUP;
-    if (access_multiplexer->undo_cleanup)
-        mfd_modes |= BABY_STEP_UNDO_CLEANUP;
-    if (access_multiplexer->undo_sets)
-        mfd_modes |= BABY_STEP_UNDO_SETS;
-
-    if (access_multiplexer->row_creation)
-        mfd_modes |= BABY_STEP_ROW_CREATE;
-    if (access_multiplexer->consistency_checks)
-        mfd_modes |= BABY_STEP_CHECK_CONSISTENCY;
-    if (access_multiplexer->commit)
-        mfd_modes |= BABY_STEP_COMMIT;
-    if (access_multiplexer->undo_commit)
-        mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
-    handler = netsnmp_baby_steps_handler_get(mfd_modes);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject row_merge helper with prefix rootoid_len + 2 (entry.col)
-     */
-    handler = netsnmp_get_row_merge_handler(reginfo->rootoid_len + 2);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject container_table helper
-     */
-    handler =
-        netsnmp_container_table_handler_get(tbl_info,
-                                            ipIfStatsTable_if_ctx.
-                                            container,
-                                            TABLE_CONTAINER_KEY_NETSNMP_INDEX);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject cache helper
-     */
-    if (NULL != ipIfStatsTable_if_ctx.cache) {
-        handler = netsnmp_cache_handler_get(ipIfStatsTable_if_ctx.cache);
-        netsnmp_inject_handler(reginfo, handler);
-    }
-
-    /*
-     * register table
-     */
-    netsnmp_register_table(reginfo, tbl_info);
-    
-    /*
-     * register LastChanged
-     */
-    {
-        oid     lc_oid[] = { IPIFSTATSTABLELASTCHANGE_OID };
-        netsnmp_register_watched_scalar2(netsnmp_create_handler_registration
-                ("ipIfStatsTableLastChanged", NULL,
-                 lc_oid, OID_LENGTH(lc_oid),
-                 HANDLER_CAN_RONLY),
-                netsnmp_create_watcher_info((void
-                        *)
-                    &ipIfStatsTable_if_ctx.
-                    last_changed,
-                    sizeof
-                    (u_long),
-                    ASN_TIMETICKS,
-                    WATCHER_FIXED_SIZE));
-    }
-}                               /* _ipIfStatsTable_initialize_interface */
-
-/**
- * @internal
- * Shutdown the table ipIfStatsTable
- */
-void
-_ipIfStatsTable_shutdown_interface(ipIfStatsTable_registration * reg_ptr)
-{
-    /*
-     * shutdown the container
-     */
-    _ipIfStatsTable_container_shutdown(&ipIfStatsTable_if_ctx);
-}
-
-void
-ipIfStatsTable_valid_columns_set(netsnmp_column_info *vc)
-{
-    ipIfStatsTable_if_ctx.tbl_info.valid_columns = vc;
-}                               /* ipIfStatsTable_valid_columns_set */
-
-/**
- * @internal
- * convert the index component stored in the context to an oid
- */
-int
-ipIfStatsTable_index_to_oid(netsnmp_index * oid_idx,
-                            ipIfStatsTable_mib_index * mib_idx)
-{
-    int             err = SNMP_ERR_NOERROR;
-
-    /*
-     * temp storage for parsing indexes
-     */
-    /*
-     * ipIfStatsIPVersion(1)/InetVersion/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h
-     */
-    netsnmp_variable_list var_ipIfStatsIPVersion;
-    /*
-     * ipIfStatsIfIndex(2)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H
-     */
-    netsnmp_variable_list var_ipIfStatsIfIndex;
-
-    /*
-     * set up varbinds
-     */
-    memset(&var_ipIfStatsIPVersion, 0x00, sizeof(var_ipIfStatsIPVersion));
-    var_ipIfStatsIPVersion.type = ASN_INTEGER;
-    memset(&var_ipIfStatsIfIndex, 0x00, sizeof(var_ipIfStatsIfIndex));
-    var_ipIfStatsIfIndex.type = ASN_INTEGER;
-
-    /*
-     * chain temp index varbinds together
-     */
-    var_ipIfStatsIPVersion.next_variable = &var_ipIfStatsIfIndex;
-    var_ipIfStatsIfIndex.next_variable = NULL;
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_index_to_oid",
-                "called\n"));
-
-    /*
-     * ipIfStatsIPVersion(1)/InetVersion/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h 
-     */
-    snmp_set_var_value(&var_ipIfStatsIPVersion,
-                       (u_char *) & mib_idx->ipIfStatsIPVersion,
-                       sizeof(mib_idx->ipIfStatsIPVersion));
-
-    /*
-     * ipIfStatsIfIndex(2)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H 
-     */
-    snmp_set_var_value(&var_ipIfStatsIfIndex,
-                       (u_char *) & mib_idx->ipIfStatsIfIndex,
-                       sizeof(mib_idx->ipIfStatsIfIndex));
-
-
-    err = build_oid_noalloc(oid_idx->oids, oid_idx->len, &oid_idx->len,
-                            NULL, 0, &var_ipIfStatsIPVersion);
-    if (err)
-        snmp_log(LOG_ERR, "error %d converting index to oid\n", err);
-
-    /*
-     * parsing may have allocated memory. free it.
-     */
-    snmp_reset_var_buffers(&var_ipIfStatsIPVersion);
-
-    return err;
-}                               /* ipIfStatsTable_index_to_oid */
-
-/**
- * extract ipIfStatsTable indexes from a netsnmp_index
- *
- * @retval SNMP_ERR_NOERROR  : no error
- * @retval SNMP_ERR_GENERR   : error
- */
-int
-ipIfStatsTable_index_from_oid(netsnmp_index * oid_idx,
-                              ipIfStatsTable_mib_index * mib_idx)
-{
-    int             err = SNMP_ERR_NOERROR;
-
-    /*
-     * temp storage for parsing indexes
-     */
-    /*
-     * ipIfStatsIPVersion(1)/InetVersion/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h
-     */
-    netsnmp_variable_list var_ipIfStatsIPVersion;
-    /*
-     * ipIfStatsIfIndex(2)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H
-     */
-    netsnmp_variable_list var_ipIfStatsIfIndex;
-
-    /*
-     * set up varbinds
-     */
-    memset(&var_ipIfStatsIPVersion, 0x00, sizeof(var_ipIfStatsIPVersion));
-    var_ipIfStatsIPVersion.type = ASN_INTEGER;
-    memset(&var_ipIfStatsIfIndex, 0x00, sizeof(var_ipIfStatsIfIndex));
-    var_ipIfStatsIfIndex.type = ASN_INTEGER;
-
-    /*
-     * chain temp index varbinds together
-     */
-    var_ipIfStatsIPVersion.next_variable = &var_ipIfStatsIfIndex;
-    var_ipIfStatsIfIndex.next_variable = NULL;
-
-
-    DEBUGMSGTL(("verbose:ipIfStatsTable:ipIfStatsTable_index_from_oid",
-                "called\n"));
-
-    /*
-     * parse the oid into the individual index components
-     */
-    err = parse_oid_indexes(oid_idx->oids, oid_idx->len,
-                            &var_ipIfStatsIPVersion);
-    if (err == SNMP_ERR_NOERROR) {
-        /*
-         * copy out values
-         */
-        mib_idx->ipIfStatsIPVersion =
-            *((u_long *) var_ipIfStatsIPVersion.val.string);
-        mib_idx->ipIfStatsIfIndex =
-            *((long *) var_ipIfStatsIfIndex.val.string);
-
-
-    }
-
-    /*
-     * parsing may have allocated memory. free it.
-     */
-    snmp_reset_var_buffers(&var_ipIfStatsIPVersion);
-
-    return err;
-}                               /* ipIfStatsTable_index_from_oid */
-
-
-/*
- *********************************************************************
- * @internal
- * allocate resources for a ipIfStatsTable_rowreq_ctx
- */
-ipIfStatsTable_rowreq_ctx *
-ipIfStatsTable_allocate_rowreq_ctx(ipIfStatsTable_data * data,
-                                   void *user_init_ctx)
-{
-    ipIfStatsTable_rowreq_ctx *rowreq_ctx =
-        SNMP_MALLOC_TYPEDEF(ipIfStatsTable_rowreq_ctx);
-
-    DEBUGMSGTL(("internal:ipIfStatsTable:ipIfStatsTable_allocate_rowreq_ctx", "called\n"));
-
-    if (NULL == rowreq_ctx) {
-        snmp_log(LOG_ERR, "Couldn't allocate memory for a "
-                 "ipIfStatsTable_rowreq_ctx.\n");
-        return NULL;
-    } else {
-        if (NULL != data) {
-            /*
-             * track if we got data from user
-             */
-            rowreq_ctx->rowreq_flags |= MFD_ROW_DATA_FROM_USER;
-            rowreq_ctx->data = data;
-        } else if (NULL ==
-                   (rowreq_ctx->data = ipIfStatsTable_allocate_data())) {
-            SNMP_FREE(rowreq_ctx);
-            return NULL;
-        }
-    }
-
-    /*
-     * undo context will be allocated when needed (in *_undo_setup)
-     */
-
-    rowreq_ctx->oid_idx.oids = rowreq_ctx->oid_tmp;
-
-    rowreq_ctx->ipIfStatsTable_data_list = NULL;
-
-    /*
-     * if we allocated data, call init routine
-     */
-    if (!(rowreq_ctx->rowreq_flags & MFD_ROW_DATA_FROM_USER)) {
-        if (SNMPERR_SUCCESS !=
-            ipIfStatsTable_rowreq_ctx_init(rowreq_ctx, user_init_ctx)) {
-            ipIfStatsTable_release_rowreq_ctx(rowreq_ctx);
-            rowreq_ctx = NULL;
-        }
-    }
-
-    return rowreq_ctx;
-}                               /* ipIfStatsTable_allocate_rowreq_ctx */
-
-/*
- * @internal
- * release resources for a ipIfStatsTable_rowreq_ctx
- */
-void
-ipIfStatsTable_release_rowreq_ctx(ipIfStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("internal:ipIfStatsTable:ipIfStatsTable_release_rowreq_ctx", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    ipIfStatsTable_rowreq_ctx_cleanup(rowreq_ctx);
-
-    /*
-     * for non-transient data, don't free data we got from the user
-     */
-    if ((rowreq_ctx->data) &&
-        !(rowreq_ctx->rowreq_flags & MFD_ROW_DATA_FROM_USER))
-        ipIfStatsTable_release_data(rowreq_ctx->data);
-
-    /*
-     * free index oid pointer
-     */
-    if (rowreq_ctx->oid_idx.oids != rowreq_ctx->oid_tmp)
-        free(rowreq_ctx->oid_idx.oids);
-
-    SNMP_FREE(rowreq_ctx);
-}                               /* ipIfStatsTable_release_rowreq_ctx */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_ipIfStatsTable_pre_request(netsnmp_mib_handler *handler,
-                                netsnmp_handler_registration *reginfo,
-                                netsnmp_agent_request_info *agtreq_info,
-                                netsnmp_request_info *requests)
-{
-    int             rc;
-
-    DEBUGMSGTL(("internal:ipIfStatsTable:_mfd_ipIfStatsTable_pre_request",
-                "called\n"));
-
-    if (1 != netsnmp_row_merge_status_first(reginfo, agtreq_info)) {
-        DEBUGMSGTL(("internal:ipIfStatsTable",
-                    "skipping additional pre_request\n"));
-        return SNMP_ERR_NOERROR;
-    }
-
-    rc = ipIfStatsTable_pre_request(ipIfStatsTable_if_ctx.user_ctx);
-    if (MFD_SUCCESS != rc) {
-        /*
-         * nothing we can do about it but log it
-         */
-        DEBUGMSGTL(("ipIfStatsTable", "error %d from "
-                    "ipIfStatsTable_pre_request\n", rc));
-        netsnmp_request_set_error_all(requests, SNMP_VALIDATE_ERR(rc));
-    }
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_ipIfStatsTable_pre_request */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_ipIfStatsTable_post_request(netsnmp_mib_handler *handler,
-                                 netsnmp_handler_registration *reginfo,
-                                 netsnmp_agent_request_info *agtreq_info,
-                                 netsnmp_request_info *requests)
-{
-    ipIfStatsTable_rowreq_ctx *rowreq_ctx = (ipIfStatsTable_rowreq_ctx*)
-        netsnmp_container_table_row_extract(requests);
-    int             rc, packet_rc;
-
-    DEBUGMSGTL(("internal:ipIfStatsTable:_mfd_ipIfStatsTable_post_request",
-                "called\n"));
-
-    /*
-     * release row context, if deleted
-     */
-    if (rowreq_ctx && (rowreq_ctx->rowreq_flags & MFD_ROW_DELETED))
-        ipIfStatsTable_release_rowreq_ctx(rowreq_ctx);
-
-    /*
-     * wait for last call before calling user
-     */
-    if (1 != netsnmp_row_merge_status_last(reginfo, agtreq_info)) {
-        DEBUGMSGTL(("internal:ipIfStatsTable",
-                    "waiting for last post_request\n"));
-        return SNMP_ERR_NOERROR;
-    }
-
-    packet_rc = netsnmp_check_all_requests_error(agtreq_info->asp, 0);
-    rc = ipIfStatsTable_post_request(ipIfStatsTable_if_ctx.user_ctx,
-                                     packet_rc);
-    if (MFD_SUCCESS != rc) {
-        /*
-         * nothing we can do about it but log it
-         */
-        DEBUGMSGTL(("ipIfStatsTable", "error %d from "
-                    "ipIfStatsTable_post_request\n", rc));
-    }
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_ipIfStatsTable_post_request */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_ipIfStatsTable_object_lookup(netsnmp_mib_handler *handler,
-                                  netsnmp_handler_registration *reginfo,
-                                  netsnmp_agent_request_info *agtreq_info,
-                                  netsnmp_request_info *requests)
-{
-    int             rc = SNMP_ERR_NOERROR;
-    ipIfStatsTable_rowreq_ctx *rowreq_ctx = (ipIfStatsTable_rowreq_ctx*)
-        netsnmp_container_table_row_extract(requests);
-
-    DEBUGMSGTL(("internal:ipIfStatsTable:_mfd_ipIfStatsTable_object_lookup", "called\n"));
-
-    /*
-     * get our context from mfd
-     * ipIfStatsTable_interface_ctx *if_ctx =
-     *             (ipIfStatsTable_interface_ctx *)reginfo->my_reg_void;
-     */
-
-    if (NULL == rowreq_ctx) {
-        rc = SNMP_ERR_NOCREATION;
-    }
-
-    if (MFD_SUCCESS != rc)
-        netsnmp_request_set_error_all(requests, rc);
-    else
-        ipIfStatsTable_row_prep(rowreq_ctx);
-
-    return SNMP_VALIDATE_ERR(rc);
-}                               /* _mfd_ipIfStatsTable_object_lookup */
-
-/***********************************************************************
- *
- * GET processing
- *
- ***********************************************************************/
-/*
- * @internal
- * Retrieve the value for a particular column
- */
-NETSNMP_STATIC_INLINE int
-_ipIfStatsTable_get_column(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-                           netsnmp_variable_list * var, int column)
-{
-    int             rc = SNMPERR_SUCCESS;
-
-    DEBUGMSGTL(("internal:ipIfStatsTable:_mfd_ipIfStatsTable_get_column",
-                "called for %d\n", column));
-
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    switch (column) {
-
-        /*
-         * ipIfStatsInReceives(3)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSINRECEIVES:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsInReceives_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCInReceives(4)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCINRECEIVES:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCInReceives_get(rowreq_ctx,
-                                       (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsInOctets(5)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSINOCTETS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsInOctets_get(rowreq_ctx, (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCInOctets(6)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCINOCTETS:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCInOctets_get(rowreq_ctx, (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsInHdrErrors(7)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSINHDRERRORS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsInHdrErrors_get(rowreq_ctx,
-                                      (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsInNoRoutes(8)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSINNOROUTES:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsInNoRoutes_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsInAddrErrors(9)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSINADDRERRORS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsInAddrErrors_get(rowreq_ctx,
-                                       (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsInUnknownProtos(10)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSINUNKNOWNPROTOS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsInUnknownProtos_get(rowreq_ctx,
-                                          (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsInTruncatedPkts(11)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSINTRUNCATEDPKTS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsInTruncatedPkts_get(rowreq_ctx,
-                                          (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsInForwDatagrams(12)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSINFORWDATAGRAMS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsInForwDatagrams_get(rowreq_ctx,
-                                          (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCInForwDatagrams(13)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCINFORWDATAGRAMS:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCInForwDatagrams_get(rowreq_ctx,
-                                            (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsReasmReqds(14)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSREASMREQDS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsReasmReqds_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsReasmOKs(15)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSREASMOKS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsReasmOKs_get(rowreq_ctx, (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsReasmFails(16)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSREASMFAILS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsReasmFails_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsInDiscards(17)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSINDISCARDS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsInDiscards_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsInDelivers(18)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSINDELIVERS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsInDelivers_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCInDelivers(19)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCINDELIVERS:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCInDelivers_get(rowreq_ctx,
-                                       (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsOutRequests(20)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSOUTREQUESTS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsOutRequests_get(rowreq_ctx,
-                                      (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCOutRequests(21)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCOUTREQUESTS:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCOutRequests_get(rowreq_ctx,
-                                        (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsOutForwDatagrams(23)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSOUTFORWDATAGRAMS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsOutForwDatagrams_get(rowreq_ctx,
-                                           (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCOutForwDatagrams(24)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCOUTFORWDATAGRAMS:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCOutForwDatagrams_get(rowreq_ctx,
-                                             (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsOutDiscards(25)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSOUTDISCARDS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsOutDiscards_get(rowreq_ctx,
-                                      (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsOutFragReqds(26)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSOUTFRAGREQDS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsOutFragReqds_get(rowreq_ctx,
-                                       (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsOutFragOKs(27)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSOUTFRAGOKS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsOutFragOKs_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsOutFragFails(28)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSOUTFRAGFAILS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsOutFragFails_get(rowreq_ctx,
-                                       (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsOutFragCreates(29)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSOUTFRAGCREATES:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsOutFragCreates_get(rowreq_ctx,
-                                         (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsOutTransmits(30)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSOUTTRANSMITS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsOutTransmits_get(rowreq_ctx,
-                                       (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCOutTransmits(31)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCOUTTRANSMITS:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCOutTransmits_get(rowreq_ctx,
-                                         (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsOutOctets(32)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSOUTOCTETS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsOutOctets_get(rowreq_ctx,
-                                    (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCOutOctets(33)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCOUTOCTETS:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCOutOctets_get(rowreq_ctx, (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsInMcastPkts(34)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSINMCASTPKTS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsInMcastPkts_get(rowreq_ctx,
-                                      (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCInMcastPkts(35)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCINMCASTPKTS:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCInMcastPkts_get(rowreq_ctx,
-                                        (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsInMcastOctets(36)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSINMCASTOCTETS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsInMcastOctets_get(rowreq_ctx,
-                                        (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCInMcastOctets(37)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCINMCASTOCTETS:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCInMcastOctets_get(rowreq_ctx,
-                                          (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsOutMcastPkts(38)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSOUTMCASTPKTS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsOutMcastPkts_get(rowreq_ctx,
-                                       (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCOutMcastPkts(39)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCOUTMCASTPKTS:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCOutMcastPkts_get(rowreq_ctx,
-                                         (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsOutMcastOctets(40)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSOUTMCASTOCTETS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsOutMcastOctets_get(rowreq_ctx,
-                                         (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCOutMcastOctets(41)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCOUTMCASTOCTETS:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCOutMcastOctets_get(rowreq_ctx,
-                                           (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsInBcastPkts(42)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSINBCASTPKTS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsInBcastPkts_get(rowreq_ctx,
-                                      (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCInBcastPkts(43)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCINBCASTPKTS:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCInBcastPkts_get(rowreq_ctx,
-                                        (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsOutBcastPkts(44)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSOUTBCASTPKTS:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = ipIfStatsOutBcastPkts_get(rowreq_ctx,
-                                       (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsHCOutBcastPkts(45)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSHCOUTBCASTPKTS:
-        var->val_len = sizeof(U64);
-        var->type = ASN_COUNTER64;
-        rc = ipIfStatsHCOutBcastPkts_get(rowreq_ctx,
-                                         (U64 *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsDiscontinuityTime(46)/TimeStamp/ASN_TIMETICKS/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSDISCONTINUITYTIME:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_TIMETICKS;
-        rc = ipIfStatsDiscontinuityTime_get(rowreq_ctx,
-                                            (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipIfStatsRefreshRate(47)/UNSIGNED32/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_IPIFSTATSREFRESHRATE:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipIfStatsRefreshRate_get(rowreq_ctx,
-                                      (u_long *) var->val.string);
-        break;
-
-    default:
-        if (IPIFSTATSTABLE_MIN_COL <= column
-            && column <= IPIFSTATSTABLE_MAX_COL) {
-            DEBUGMSGTL(("internal:ipIfStatsTable:_mfd_ipIfStatsTable_get_column", "assume column %d is reserved\n", column));
-            rc = MFD_SKIP;
-        } else {
-            snmp_log(LOG_ERR,
-                     "unknown column %d in _ipIfStatsTable_get_column\n",
-                     column);
-        }
-        break;
-    }
-
-    return rc;
-}                               /* _ipIfStatsTable_get_column */
-
-int
-_mfd_ipIfStatsTable_get_values(netsnmp_mib_handler *handler,
-                               netsnmp_handler_registration *reginfo,
-                               netsnmp_agent_request_info *agtreq_info,
-                               netsnmp_request_info *requests)
-{
-    ipIfStatsTable_rowreq_ctx *rowreq_ctx = (ipIfStatsTable_rowreq_ctx*)
-        netsnmp_container_table_row_extract(requests);
-    netsnmp_table_request_info *tri;
-    u_char         *old_string;
-    void            (*dataFreeHook) (void *);
-    int             rc;
-
-    DEBUGMSGTL(("internal:ipIfStatsTable:_mfd_ipIfStatsTable_get_values",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    for (; requests; requests = requests->next) {
-        /*
-         * save old pointer, so we can free it if replaced
-         */
-        old_string = requests->requestvb->val.string;
-        dataFreeHook = requests->requestvb->dataFreeHook;
-        if (NULL == requests->requestvb->val.string) {
-            requests->requestvb->val.string = requests->requestvb->buf;
-            requests->requestvb->val_len =
-                sizeof(requests->requestvb->buf);
-        } else if (requests->requestvb->buf ==
-                   requests->requestvb->val.string) {
-            if (requests->requestvb->val_len !=
-                sizeof(requests->requestvb->buf))
-                requests->requestvb->val_len =
-                    sizeof(requests->requestvb->buf);
-        }
-
-        /*
-         * get column data
-         */
-        tri = netsnmp_extract_table_info(requests);
-        if (NULL == tri)
-            continue;
-
-        rc = _ipIfStatsTable_get_column(rowreq_ctx, requests->requestvb,
-                                        tri->colnum);
-        if (rc) {
-            if (MFD_SKIP == rc) {
-                requests->requestvb->type = SNMP_NOSUCHINSTANCE;
-                rc = SNMP_ERR_NOERROR;
-            }
-        } else if (NULL == requests->requestvb->val.string) {
-            snmp_log(LOG_ERR, "NULL varbind data pointer!\n");
-            rc = SNMP_ERR_GENERR;
-        }
-        if (rc)
-            netsnmp_request_set_error(requests, SNMP_VALIDATE_ERR(rc));
-
-        /*
-         * if the buffer wasn't used previously for the old data (i.e. it
-         * was allcoated memory)  and the get routine replaced the pointer,
-         * we need to free the previous pointer.
-         */
-        if (old_string && (old_string != requests->requestvb->buf) &&
-            (requests->requestvb->val.string != old_string)) {
-            if (dataFreeHook)
-                (*dataFreeHook) (old_string);
-            else
-                free(old_string);
-        }
-    }                           /* for results */
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_ipIfStatsTable_get_values */
-
-
-/***********************************************************************
- *
- * SET processing
- *
- ***********************************************************************/
-
-/*
- * SET PROCESSING NOT APPLICABLE (per MIB or user setting)
- */
-/***********************************************************************
- *
- * DATA ACCESS
- *
- ***********************************************************************/
-static void     _container_free(netsnmp_container * container);
-
-/**
- * @internal
- */
-static int
-_cache_load(netsnmp_cache * cache, void *vmagic)
-{
-    DEBUGMSGTL(("internal:ipIfStatsTable:_cache_load", "called\n"));
-
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR, "invalid cache for ipIfStatsTable_cache_load\n");
-        return -1;
-    }
-
-    /** should only be called for an invalid or expired cache */
-    netsnmp_assert((0 == cache->valid) || (1 == cache->expired));
-
-    /*
-     * call user code
-     */
-    return ipIfStatsTable_container_load((netsnmp_container *) cache->
-                                         magic);
-}                               /* _cache_load */
-
-/**
- * @internal
- */
-static void
-_cache_free(netsnmp_cache * cache, void *magic)
-{
-    netsnmp_container *container;
-
-    DEBUGMSGTL(("internal:ipIfStatsTable:_cache_free", "called\n"));
-
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR, "invalid cache in ipIfStatsTable_cache_free\n");
-        return;
-    }
-
-    container = (netsnmp_container *) cache->magic;
-
-    _container_free(container);
-}                               /* _cache_free */
-
-/**
- * @internal
- */
-static void
-_container_item_free(ipIfStatsTable_rowreq_ctx * rowreq_ctx, void *context)
-{
-    DEBUGMSGTL(("internal:ipIfStatsTable:_container_item_free",
-                "called\n"));
-
-    if (NULL == rowreq_ctx)
-        return;
-
-    ipIfStatsTable_release_rowreq_ctx(rowreq_ctx);
-}                               /* _container_item_free */
-
-/**
- * @internal
- */
-static void
-_container_free(netsnmp_container * container)
-{
-    DEBUGMSGTL(("internal:ipIfStatsTable:_container_free", "called\n"));
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR,
-                 "invalid container in ipIfStatsTable_container_free\n");
-        return;
-    }
-
-    /*
-     * call user code
-     */
-    ipIfStatsTable_container_free(container);
-
-    /*
-     * free all items. inefficient, but easy.
-     */
-    CONTAINER_CLEAR(container,
-                    (netsnmp_container_obj_func *) _container_item_free,
-                    NULL);
-}                               /* _container_free */
-
-/**
- * @internal
- * initialize the container with functions or wrappers
- */
-void
-_ipIfStatsTable_container_init(ipIfStatsTable_interface_ctx * if_ctx)
-{
-    DEBUGMSGTL(("internal:ipIfStatsTable:_ipIfStatsTable_container_init",
-                "called\n"));
-
-    /*
-     * cache init
-     */
-    if_ctx->cache = netsnmp_cache_create(30,    /* timeout in seconds */
-                                         _cache_load, _cache_free,
-                                         ipIfStatsTable_oid,
-                                         ipIfStatsTable_oid_size);
-
-    if (NULL == if_ctx->cache) {
-        snmp_log(LOG_ERR, "error creating cache for ipIfStatsTable\n");
-        return;
-    }
-
-    if_ctx->cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
-
-    ipIfStatsTable_container_init(&if_ctx->container, if_ctx->cache);
-    if (NULL == if_ctx->container)
-        if_ctx->container =
-            netsnmp_container_find("ipIfStatsTable:table_container");
-    if (NULL == if_ctx->container) {
-        snmp_log(LOG_ERR, "error creating container in "
-                 "ipIfStatsTable_container_init\n");
-        return;
-    }
-
-    if (NULL != if_ctx->cache)
-        if_ctx->cache->magic = (void *) if_ctx->container;
-}                               /* _ipIfStatsTable_container_init */
-
-/**
- * @internal
- * shutdown the container with functions or wrappers
- */
-void
-_ipIfStatsTable_container_shutdown(ipIfStatsTable_interface_ctx * if_ctx)
-{
-    DEBUGMSGTL(("internal:ipIfStatsTable:_ipIfStatsTable_container_shutdown", "called\n"));
-
-    ipIfStatsTable_container_shutdown(if_ctx->container);
-
-    _container_free(if_ctx->container);
-
-}                               /* _ipIfStatsTable_container_shutdown */
-
-
-#ifndef NETSNMP_FEATURE_REMOVE_IPIFSTATSTABLE_EXTERNAL_ACCESS
-ipIfStatsTable_rowreq_ctx *
-ipIfStatsTable_row_find_by_mib_index(ipIfStatsTable_mib_index * mib_idx)
-{
-    ipIfStatsTable_rowreq_ctx *rowreq_ctx;
-    oid             oid_tmp[MAX_OID_LEN];
-    netsnmp_index   oid_idx;
-    int             rc;
-
-    /*
-     * set up storage for OID
-     */
-    oid_idx.oids = oid_tmp;
-    oid_idx.len = sizeof(oid_tmp) / sizeof(oid);
-
-    /*
-     * convert
-     */
-    rc = ipIfStatsTable_index_to_oid(&oid_idx, mib_idx);
-    if (MFD_SUCCESS != rc)
-        return NULL;
-
-    rowreq_ctx = (ipIfStatsTable_rowreq_ctx*)CONTAINER_FIND(ipIfStatsTable_if_ctx.container, &oid_idx);
-
-    return rowreq_ctx;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_IPIFSTATSTABLE_EXTERNAL_ACCESS */
diff --git a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.h b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.h
deleted file mode 100644
index c43de84..0000000
--- a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 15899 $ of $
- *
- * $Id:$
- */
-/** @ingroup interface: Routines to interface to Net-SNMP
- *
- * \warning This code should not be modified, called directly,
- *          or used to interpret functionality. It is subject to
- *          change at any time.
- * 
- * @{
- */
-/*
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- * ***                                                               ***
- * ***  NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE  ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THIS FILE DOES NOT CONTAIN ANY USER EDITABLE CODE.      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THE GENERATED CODE IS INTERNAL IMPLEMENTATION, AND      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***    IS SUBJECT TO CHANGE WITHOUT WARNING IN FUTURE RELEASES.   ***
- * ***                                                               ***
- * ***                                                               ***
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- */
-#ifndef IPIFSTATSTABLE_INTERFACE_H
-#define IPIFSTATSTABLE_INTERFACE_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-#include "ipIfStatsTable.h"
-
-
-    /*
-     ********************************************************************
-     * Table declarations
-     */
-
-    /*
-     * PUBLIC interface initialization routine 
-     */
-    void           
-        _ipIfStatsTable_initialize_interface(ipIfStatsTable_registration *
-                                             user_ctx, u_long flags);
-    void           
-        _ipIfStatsTable_shutdown_interface(ipIfStatsTable_registration *
-                                           user_ctx);
-
-    ipIfStatsTable_registration *ipIfStatsTable_registration_get(void);
-
-    ipIfStatsTable_registration
-        *ipIfStatsTable_registration_set(ipIfStatsTable_registration *
-                                         newreg);
-
-    netsnmp_container *ipIfStatsTable_container_get(void);
-    int             ipIfStatsTable_container_size(void);
-
-    ipIfStatsTable_rowreq_ctx
-        *ipIfStatsTable_allocate_rowreq_ctx(ipIfStatsTable_data *, void *);
-    void           
-        ipIfStatsTable_release_rowreq_ctx(ipIfStatsTable_rowreq_ctx *
-                                          rowreq_ctx);
-
-    int             ipIfStatsTable_index_to_oid(netsnmp_index * oid_idx,
-                                                ipIfStatsTable_mib_index *
-                                                mib_idx);
-    int             ipIfStatsTable_index_from_oid(netsnmp_index * oid_idx,
-                                                  ipIfStatsTable_mib_index
-                                                  * mib_idx);
-
-    /*
-     * access to certain internals. use with caution!
-     */
-    void            ipIfStatsTable_valid_columns_set(netsnmp_column_info
-                                                     *vc);
-
-    /*
-     */
-    void            ipIfStatsTable_lastChange_set(u_long uptime);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPIFSTATSTABLE_INTERFACE_H */
-/** @} */
diff --git a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_oids.h b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_oids.h
deleted file mode 100644
index 76607a9..0000000
--- a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_oids.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : generic-table-oids.m2c 12855 2005-09-27 15:56:08Z rstory $
- *
- * $Id:$
- */
-#ifndef IPIFSTATSTABLE_OIDS_H
-#define IPIFSTATSTABLE_OIDS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-    /*
-     * column number definitions for table ipIfStatsTable 
-     */
-#define IPIFSTATSTABLE_OID              1,3,6,1,2,1,4,31,3
-#define IPIFSTATSTABLELASTCHANGE_OID    1,3,6,1,2,1,4,31,2
-
-#define COLUMN_IPIFSTATSIPVERSION         1
-
-#define COLUMN_IPIFSTATSIFINDEX         2
-
-#define COLUMN_IPIFSTATSINRECEIVES         3
-
-#define COLUMN_IPIFSTATSHCINRECEIVES         4
-
-#define COLUMN_IPIFSTATSINOCTETS         5
-
-#define COLUMN_IPIFSTATSHCINOCTETS         6
-
-#define COLUMN_IPIFSTATSINHDRERRORS         7
-
-#define COLUMN_IPIFSTATSINNOROUTES         8
-
-#define COLUMN_IPIFSTATSINADDRERRORS         9
-
-#define COLUMN_IPIFSTATSINUNKNOWNPROTOS         10
-
-#define COLUMN_IPIFSTATSINTRUNCATEDPKTS         11
-
-#define COLUMN_IPIFSTATSINFORWDATAGRAMS         12
-
-#define COLUMN_IPIFSTATSHCINFORWDATAGRAMS         13
-
-#define COLUMN_IPIFSTATSREASMREQDS         14
-
-#define COLUMN_IPIFSTATSREASMOKS         15
-
-#define COLUMN_IPIFSTATSREASMFAILS         16
-
-#define COLUMN_IPIFSTATSINDISCARDS         17
-
-#define COLUMN_IPIFSTATSINDELIVERS         18
-
-#define COLUMN_IPIFSTATSHCINDELIVERS         19
-
-#define COLUMN_IPIFSTATSOUTREQUESTS         20
-
-#define COLUMN_IPIFSTATSHCOUTREQUESTS         21
-
-#define COLUMN_IPIFSTATSOUTFORWDATAGRAMS         23
-
-#define COLUMN_IPIFSTATSHCOUTFORWDATAGRAMS         24
-
-#define COLUMN_IPIFSTATSOUTDISCARDS         25
-
-#define COLUMN_IPIFSTATSOUTFRAGREQDS         26
-
-#define COLUMN_IPIFSTATSOUTFRAGOKS         27
-
-#define COLUMN_IPIFSTATSOUTFRAGFAILS         28
-
-#define COLUMN_IPIFSTATSOUTFRAGCREATES         29
-
-#define COLUMN_IPIFSTATSOUTTRANSMITS         30
-
-#define COLUMN_IPIFSTATSHCOUTTRANSMITS         31
-
-#define COLUMN_IPIFSTATSOUTOCTETS         32
-
-#define COLUMN_IPIFSTATSHCOUTOCTETS         33
-
-#define COLUMN_IPIFSTATSINMCASTPKTS         34
-
-#define COLUMN_IPIFSTATSHCINMCASTPKTS         35
-
-#define COLUMN_IPIFSTATSINMCASTOCTETS         36
-
-#define COLUMN_IPIFSTATSHCINMCASTOCTETS         37
-
-#define COLUMN_IPIFSTATSOUTMCASTPKTS         38
-
-#define COLUMN_IPIFSTATSHCOUTMCASTPKTS         39
-
-#define COLUMN_IPIFSTATSOUTMCASTOCTETS         40
-
-#define COLUMN_IPIFSTATSHCOUTMCASTOCTETS         41
-
-#define COLUMN_IPIFSTATSINBCASTPKTS         42
-
-#define COLUMN_IPIFSTATSHCINBCASTPKTS         43
-
-#define COLUMN_IPIFSTATSOUTBCASTPKTS         44
-
-#define COLUMN_IPIFSTATSHCOUTBCASTPKTS         45
-
-#define COLUMN_IPIFSTATSDISCONTINUITYTIME         46
-
-#define COLUMN_IPIFSTATSREFRESHRATE         47
-
-
-#define IPIFSTATSTABLE_MIN_COL   COLUMN_IPIFSTATSINRECEIVES
-#define IPIFSTATSTABLE_MAX_COL   COLUMN_IPIFSTATSREFRESHRATE
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPIFSTATSTABLE_OIDS_H */
diff --git a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c
index 10587e2..4b1acb1 100644
--- a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c
+++ b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: ipSystemStatsTable.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** \page MFD helper for ipSystemStatsTable
  *
@@ -26,12 +26,11 @@
 
 #include "ipSystemStatsTable_interface.h"
 
-const oid       ipSystemStatsTable_oid[] = { IPSYSTEMSTATSTABLE_OID };
-const int       ipSystemStatsTable_oid_size =
+oid             ipSystemStatsTable_oid[] = { IPSYSTEMSTATSTABLE_OID };
+int             ipSystemStatsTable_oid_size =
 OID_LENGTH(ipSystemStatsTable_oid);
 
 ipSystemStatsTable_registration ipSystemStatsTable_user_context;
-static ipSystemStatsTable_registration *ipSystemStatsTable_user_context_p;
 
 void            initialize_table_ipSystemStatsTable(void);
 void            shutdown_table_ipSystemStatsTable(void);
@@ -76,6 +75,7 @@ shutdown_ipSystemStatsTable(void)
 void
 initialize_table_ipSystemStatsTable(void)
 {
+    ipSystemStatsTable_registration *user_context;
     u_long          flags;
 
     DEBUGMSGTL(("verbose:ipSystemStatsTable:initialize_table_ipSystemStatsTable", "called\n"));
@@ -93,7 +93,7 @@ initialize_table_ipSystemStatsTable(void)
      * a netsnmp_data_list is a simple way to store void pointers. A simple
      * string token is used to add, find or remove pointers.
      */
-    ipSystemStatsTable_user_context_p =
+    user_context =
         netsnmp_create_data_list("ipSystemStatsTable", NULL, NULL);
 
     /*
@@ -105,8 +105,7 @@ initialize_table_ipSystemStatsTable(void)
     /*
      * call interface initialization code
      */
-    _ipSystemStatsTable_initialize_interface
-	(ipSystemStatsTable_user_context_p, flags);
+    _ipSystemStatsTable_initialize_interface(user_context, flags);
 }                               /* initialize_table_ipSystemStatsTable */
 
 /**
@@ -119,9 +118,7 @@ shutdown_table_ipSystemStatsTable(void)
      * call interface shutdown code
      */
     _ipSystemStatsTable_shutdown_interface
-        (ipSystemStatsTable_user_context_p);
-    netsnmp_free_all_list_data(ipSystemStatsTable_user_context_p);
-    ipSystemStatsTable_user_context_p = NULL;
+        (&ipSystemStatsTable_user_context);
 }
 
 /**
@@ -163,8 +160,6 @@ ipSystemStatsTable_rowreq_ctx_cleanup(ipSystemStatsTable_rowreq_ctx *
     /*
      * TODO:211:o: |-> Perform extra ipSystemStatsTable rowreq cleanup.
      */
-    netsnmp_access_systemstats_entry_free(rowreq_ctx->data);
-    rowreq_ctx->data = NULL;
 }                               /* ipSystemStatsTable_rowreq_ctx_cleanup */
 
 /**
@@ -392,14 +387,11 @@ ipSystemStatsInReceives_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
                 "called\n"));
 
     netsnmp_assert(NULL != rowreq_ctx);
-    
+
     /*
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsInReceives data.
      * copy (* ipSystemStatsInReceives_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINRECEIVES])
-        return MFD_SKIP;
-
     (*ipSystemStatsInReceives_val_ptr) =
         rowreq_ctx->data->stats.HCInReceives.low;
 
@@ -461,9 +453,6 @@ ipSystemStatsHCInReceives_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> copy ipSystemStatsHCInReceives data.
      * get (* ipSystemStatsHCInReceives_val_ptr ).low and (* ipSystemStatsHCInReceives_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINRECEIVES])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCInReceives_val_ptr).low =
         rowreq_ctx->data->stats.HCInReceives.low;
     (*ipSystemStatsHCInReceives_val_ptr).high =
@@ -528,9 +517,6 @@ ipSystemStatsInOctets_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsInOctets data.
      * copy (* ipSystemStatsInOctets_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINOCTETS])
-        return MFD_SKIP;
-
     (*ipSystemStatsInOctets_val_ptr) =
         rowreq_ctx->data->stats.HCInOctets.low;
 
@@ -588,9 +574,6 @@ ipSystemStatsHCInOctets_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> copy ipSystemStatsHCInOctets data.
      * get (* ipSystemStatsHCInOctets_val_ptr ).low and (* ipSystemStatsHCInOctets_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINOCTETS])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCInOctets_val_ptr).low =
         rowreq_ctx->data->stats.HCInOctets.low;
     (*ipSystemStatsHCInOctets_val_ptr).high =
@@ -658,9 +641,6 @@ ipSystemStatsInHdrErrors_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsInHdrErrors data.
      * copy (* ipSystemStatsInHdrErrors_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_INHDRERRORS])
-        return MFD_SKIP;
-
     (*ipSystemStatsInHdrErrors_val_ptr) =
         rowreq_ctx->data->stats.InHdrErrors;
 
@@ -722,11 +702,8 @@ ipSystemStatsInNoRoutes_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsInNoRoutes data.
      * copy (* ipSystemStatsInNoRoutes_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINNOROUTES])
-        return MFD_SKIP;
-
     (*ipSystemStatsInNoRoutes_val_ptr) =
-        rowreq_ctx->data->stats.HCInNoRoutes.low;
+        rowreq_ctx->data->stats.InNoRoutes;
 
     return MFD_SUCCESS;
 }                               /* ipSystemStatsInNoRoutes_get */
@@ -792,9 +769,6 @@ ipSystemStatsInAddrErrors_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsInAddrErrors data.
      * copy (* ipSystemStatsInAddrErrors_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_INADDRERRORS])
-        return MFD_SKIP;
-
     (*ipSystemStatsInAddrErrors_val_ptr) =
         rowreq_ctx->data->stats.InAddrErrors;
 
@@ -866,9 +840,6 @@ ipSystemStatsInUnknownProtos_get(ipSystemStatsTable_rowreq_ctx *
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsInUnknownProtos data.
      * copy (* ipSystemStatsInUnknownProtos_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_INUNKNOWNPROTOS])
-        return MFD_SKIP;
-
     (*ipSystemStatsInUnknownProtos_val_ptr) =
         rowreq_ctx->data->stats.InUnknownProtos;
 
@@ -931,9 +902,6 @@ ipSystemStatsInTruncatedPkts_get(ipSystemStatsTable_rowreq_ctx *
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsInTruncatedPkts data.
      * copy (* ipSystemStatsInTruncatedPkts_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_INTRUNCATEDPKTS])
-        return MFD_SKIP;
-
     (*ipSystemStatsInTruncatedPkts_val_ptr) =
         rowreq_ctx->data->stats.InTruncatedPkts;
 
@@ -1005,9 +973,6 @@ ipSystemStatsInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsInForwDatagrams data.
      * copy (* ipSystemStatsInForwDatagrams_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINFORWDATAGRAMS])
-        return MFD_SKIP;
-
     (*ipSystemStatsInForwDatagrams_val_ptr) =
         rowreq_ctx->data->stats.HCInForwDatagrams.low;
 
@@ -1068,9 +1033,6 @@ ipSystemStatsHCInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
      * TODO:231:o: |-> copy ipSystemStatsHCInForwDatagrams data.
      * get (* ipSystemStatsHCInForwDatagrams_val_ptr ).low and (* ipSystemStatsHCInForwDatagrams_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINFORWDATAGRAMS])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCInForwDatagrams_val_ptr).low =
         rowreq_ctx->data->stats.HCInForwDatagrams.low;
     (*ipSystemStatsHCInForwDatagrams_val_ptr).high =
@@ -1140,9 +1102,6 @@ ipSystemStatsReasmReqds_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsReasmReqds data.
      * copy (* ipSystemStatsReasmReqds_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_REASMREQDS])
-        return MFD_SKIP;
-
     (*ipSystemStatsReasmReqds_val_ptr) =
         rowreq_ctx->data->stats.ReasmReqds;
 
@@ -1213,9 +1172,6 @@ ipSystemStatsReasmOKs_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsReasmOKs data.
      * copy (* ipSystemStatsReasmOKs_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_REASMOKS])
-        return MFD_SKIP;
-
     (*ipSystemStatsReasmOKs_val_ptr) = rowreq_ctx->data->stats.ReasmOKs;
 
     return MFD_SUCCESS;
@@ -1286,9 +1242,6 @@ ipSystemStatsReasmFails_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsReasmFails data.
      * copy (* ipSystemStatsReasmFails_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_REASMFAILS])
-        return MFD_SKIP;
-
     (*ipSystemStatsReasmFails_val_ptr) =
         rowreq_ctx->data->stats.ReasmFails;
 
@@ -1353,9 +1306,6 @@ ipSystemStatsInDiscards_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsInDiscards data.
      * copy (* ipSystemStatsInDiscards_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_INDISCARDS])
-        return MFD_SKIP;
-
     (*ipSystemStatsInDiscards_val_ptr) =
         rowreq_ctx->data->stats.InDiscards;
 
@@ -1423,9 +1373,6 @@ ipSystemStatsInDelivers_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsInDelivers data.
      * copy (* ipSystemStatsInDelivers_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINDELIVERS])
-        return MFD_SKIP;
-
     (*ipSystemStatsInDelivers_val_ptr) =
         rowreq_ctx->data->stats.HCInDelivers.low;
 
@@ -1483,9 +1430,6 @@ ipSystemStatsHCInDelivers_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> copy ipSystemStatsHCInDelivers data.
      * get (* ipSystemStatsHCInDelivers_val_ptr ).low and (* ipSystemStatsHCInDelivers_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINDELIVERS])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCInDelivers_val_ptr).low =
         rowreq_ctx->data->stats.HCInDelivers.low;
     (*ipSystemStatsHCInDelivers_val_ptr).high =
@@ -1551,9 +1495,6 @@ ipSystemStatsOutRequests_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsOutRequests data.
      * copy (* ipSystemStatsOutRequests_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTREQUESTS])
-        return MFD_SKIP;
-
     (*ipSystemStatsOutRequests_val_ptr) =
         rowreq_ctx->data->stats.HCOutRequests.low;
 
@@ -1611,9 +1552,6 @@ ipSystemStatsHCOutRequests_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> copy ipSystemStatsHCOutRequests data.
      * get (* ipSystemStatsHCOutRequests_val_ptr ).low and (* ipSystemStatsHCOutRequests_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTREQUESTS])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCOutRequests_val_ptr).low =
         rowreq_ctx->data->stats.HCOutRequests.low;
     (*ipSystemStatsHCOutRequests_val_ptr).high =
@@ -1678,11 +1616,8 @@ ipSystemStatsOutNoRoutes_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsOutNoRoutes data.
      * copy (* ipSystemStatsOutNoRoutes_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTNOROUTES])
-        return MFD_SKIP;
-
     (*ipSystemStatsOutNoRoutes_val_ptr) =
-        rowreq_ctx->data->stats.HCOutNoRoutes.low;
+        rowreq_ctx->data->stats.OutNoRoutes;
 
     return MFD_SUCCESS;
 }                               /* ipSystemStatsOutNoRoutes_get */
@@ -1756,9 +1691,6 @@ ipSystemStatsOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsOutForwDatagrams data.
      * copy (* ipSystemStatsOutForwDatagrams_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFORWDATAGRAMS])
-        return MFD_SKIP;
-
     (*ipSystemStatsOutForwDatagrams_val_ptr) =
         rowreq_ctx->data->stats.HCOutForwDatagrams.low;
 
@@ -1819,9 +1751,6 @@ ipSystemStatsHCOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
      * TODO:231:o: |-> copy ipSystemStatsHCOutForwDatagrams data.
      * get (* ipSystemStatsHCOutForwDatagrams_val_ptr ).low and (* ipSystemStatsHCOutForwDatagrams_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFORWDATAGRAMS])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCOutForwDatagrams_val_ptr).low =
         rowreq_ctx->data->stats.HCOutForwDatagrams.low;
     (*ipSystemStatsHCOutForwDatagrams_val_ptr).high =
@@ -1889,11 +1818,8 @@ ipSystemStatsOutDiscards_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsOutDiscards data.
      * copy (* ipSystemStatsOutDiscards_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTDISCARDS])
-        return MFD_SKIP;
-
     (*ipSystemStatsOutDiscards_val_ptr) =
-        rowreq_ctx->data->stats.HCOutDiscards.low;
+        rowreq_ctx->data->stats.OutDiscards;
 
     return MFD_SUCCESS;
 }                               /* ipSystemStatsOutDiscards_get */
@@ -1961,11 +1887,8 @@ ipSystemStatsOutFragReqds_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsOutFragReqds data.
      * copy (* ipSystemStatsOutFragReqds_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGREQDS])
-        return MFD_SKIP;
-
     (*ipSystemStatsOutFragReqds_val_ptr) =
-        rowreq_ctx->data->stats.HCOutFragReqds.low;
+        rowreq_ctx->data->stats.OutFragReqds;
 
     return MFD_SUCCESS;
 }                               /* ipSystemStatsOutFragReqds_get */
@@ -2030,11 +1953,9 @@ ipSystemStatsOutFragOKs_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsOutFragOKs data.
      * copy (* ipSystemStatsOutFragOKs_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGOKS])
-        return MFD_SKIP;
-
-    (*ipSystemStatsOutFragOKs_val_ptr) =
-        rowreq_ctx->data->stats.HCOutFragOKs.low;
+    snmp_log(LOG_ERR,
+             "ipSystemStatsTable node ipSystemStatsOutFragOKs not implemented: skipping\n");
+    return MFD_SKIP;
 
     return MFD_SUCCESS;
 }                               /* ipSystemStatsOutFragOKs_get */
@@ -2102,11 +2023,8 @@ ipSystemStatsOutFragFails_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsOutFragFails data.
      * copy (* ipSystemStatsOutFragFails_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGFAILS])
-        return MFD_SKIP;
-
     (*ipSystemStatsOutFragFails_val_ptr) =
-        rowreq_ctx->data->stats.HCOutFragFails.low;
+        rowreq_ctx->data->stats.OutFragFails;
 
     return MFD_SUCCESS;
 }                               /* ipSystemStatsOutFragFails_get */
@@ -2171,11 +2089,8 @@ ipSystemStatsOutFragCreates_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsOutFragCreates data.
      * copy (* ipSystemStatsOutFragCreates_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGCREATES])
-        return MFD_SKIP;
-
     (*ipSystemStatsOutFragCreates_val_ptr) =
-        rowreq_ctx->data->stats.HCOutFragCreates.low;
+        rowreq_ctx->data->stats.OutFragCreates;
 
     return MFD_SUCCESS;
 }                               /* ipSystemStatsOutFragCreates_get */
@@ -2237,9 +2152,6 @@ ipSystemStatsOutTransmits_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsOutTransmits data.
      * copy (* ipSystemStatsOutTransmits_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTTRANSMITS])
-        return MFD_SKIP;
-
     (*ipSystemStatsOutTransmits_val_ptr) =
         rowreq_ctx->data->stats.HCOutTransmits.low;
 
@@ -2297,9 +2209,6 @@ ipSystemStatsHCOutTransmits_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> copy ipSystemStatsHCOutTransmits data.
      * get (* ipSystemStatsHCOutTransmits_val_ptr ).low and (* ipSystemStatsHCOutTransmits_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTTRANSMITS])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCOutTransmits_val_ptr).low =
         rowreq_ctx->data->stats.HCOutTransmits.low;
     (*ipSystemStatsHCOutTransmits_val_ptr).high =
@@ -2364,9 +2273,6 @@ ipSystemStatsOutOctets_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsOutOctets data.
      * copy (* ipSystemStatsOutOctets_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTOCTETS])
-        return MFD_SKIP;
-
     (*ipSystemStatsOutOctets_val_ptr) =
         rowreq_ctx->data->stats.HCOutOctets.low;
 
@@ -2424,9 +2330,6 @@ ipSystemStatsHCOutOctets_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> copy ipSystemStatsHCOutOctets data.
      * get (* ipSystemStatsHCOutOctets_val_ptr ).low and (* ipSystemStatsHCOutOctets_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTOCTETS])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCOutOctets_val_ptr).low =
         rowreq_ctx->data->stats.HCOutOctets.low;
     (*ipSystemStatsHCOutOctets_val_ptr).high =
@@ -2489,9 +2392,6 @@ ipSystemStatsInMcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsInMcastPkts data.
      * copy (* ipSystemStatsInMcastPkts_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINMCASTPKTS])
-        return MFD_SKIP;
-
     (*ipSystemStatsInMcastPkts_val_ptr) =
         rowreq_ctx->data->stats.HCInMcastPkts.low;
 
@@ -2548,9 +2448,6 @@ ipSystemStatsHCInMcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> copy ipSystemStatsHCInMcastPkts data.
      * get (* ipSystemStatsHCInMcastPkts_val_ptr ).low and (* ipSystemStatsHCInMcastPkts_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINMCASTPKTS])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCInMcastPkts_val_ptr).low =
         rowreq_ctx->data->stats.HCInMcastPkts.low;
     (*ipSystemStatsHCInMcastPkts_val_ptr).high =
@@ -2614,9 +2511,6 @@ ipSystemStatsInMcastOctets_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsInMcastOctets data.
      * copy (* ipSystemStatsInMcastOctets_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINMCASTOCTETS])
-        return MFD_SKIP;
-
     (*ipSystemStatsInMcastOctets_val_ptr) =
         rowreq_ctx->data->stats.HCInMcastOctets.low;
 
@@ -2675,9 +2569,6 @@ ipSystemStatsHCInMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
      * TODO:231:o: |-> copy ipSystemStatsHCInMcastOctets data.
      * get (* ipSystemStatsHCInMcastOctets_val_ptr ).low and (* ipSystemStatsHCInMcastOctets_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINMCASTOCTETS])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCInMcastOctets_val_ptr).low =
         rowreq_ctx->data->stats.HCInMcastOctets.low;
     (*ipSystemStatsHCInMcastOctets_val_ptr).high =
@@ -2740,9 +2631,6 @@ ipSystemStatsOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsOutMcastPkts data.
      * copy (* ipSystemStatsOutMcastPkts_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTMCASTPKTS])
-        return MFD_SKIP;
-
     (*ipSystemStatsOutMcastPkts_val_ptr) =
         rowreq_ctx->data->stats.HCOutMcastPkts.low;
 
@@ -2799,9 +2687,6 @@ ipSystemStatsHCOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> copy ipSystemStatsHCOutMcastPkts data.
      * get (* ipSystemStatsHCOutMcastPkts_val_ptr ).low and (* ipSystemStatsHCOutMcastPkts_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTMCASTPKTS])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCOutMcastPkts_val_ptr).low =
         rowreq_ctx->data->stats.HCOutMcastPkts.low;
     (*ipSystemStatsHCOutMcastPkts_val_ptr).high =
@@ -2866,9 +2751,6 @@ ipSystemStatsOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsOutMcastOctets data.
      * copy (* ipSystemStatsOutMcastOctets_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTMCASTOCTETS])
-        return MFD_SKIP;
-
     (*ipSystemStatsOutMcastOctets_val_ptr) =
         rowreq_ctx->data->stats.HCOutMcastOctets.low;
 
@@ -2931,9 +2813,6 @@ ipSystemStatsHCOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
      * TODO:231:o: |-> copy ipSystemStatsHCOutMcastOctets data.
      * get (* ipSystemStatsHCOutMcastOctets_val_ptr ).low and (* ipSystemStatsHCOutMcastOctets_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTMCASTOCTETS])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCOutMcastOctets_val_ptr).low =
         rowreq_ctx->data->stats.HCOutMcastOctets.low;
     (*ipSystemStatsHCOutMcastOctets_val_ptr).high =
@@ -2996,9 +2875,6 @@ ipSystemStatsInBcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsInBcastPkts data.
      * copy (* ipSystemStatsInBcastPkts_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINBCASTPKTS])
-        return MFD_SKIP;
-
     (*ipSystemStatsInBcastPkts_val_ptr) =
         rowreq_ctx->data->stats.HCInBcastPkts.low;
 
@@ -3055,9 +2931,6 @@ ipSystemStatsHCInBcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> copy ipSystemStatsHCInBcastPkts data.
      * get (* ipSystemStatsHCInBcastPkts_val_ptr ).low and (* ipSystemStatsHCInBcastPkts_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINBCASTPKTS])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCInBcastPkts_val_ptr).low =
         rowreq_ctx->data->stats.HCInBcastPkts.low;
     (*ipSystemStatsHCInBcastPkts_val_ptr).high =
@@ -3120,9 +2993,6 @@ ipSystemStatsOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsOutBcastPkts data.
      * copy (* ipSystemStatsOutBcastPkts_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTBCASTPKTS])
-        return MFD_SKIP;
-
     (*ipSystemStatsOutBcastPkts_val_ptr) =
         rowreq_ctx->data->stats.HCOutBcastPkts.low;
 
@@ -3179,9 +3049,6 @@ ipSystemStatsHCOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> copy ipSystemStatsHCOutBcastPkts data.
      * get (* ipSystemStatsHCOutBcastPkts_val_ptr ).low and (* ipSystemStatsHCOutBcastPkts_val_ptr ).high from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTBCASTPKTS])
-        return MFD_SKIP;
-
     (*ipSystemStatsHCOutBcastPkts_val_ptr).low =
         rowreq_ctx->data->stats.HCOutBcastPkts.low;
     (*ipSystemStatsHCOutBcastPkts_val_ptr).high =
@@ -3246,9 +3113,6 @@ ipSystemStatsDiscontinuityTime_get(ipSystemStatsTable_rowreq_ctx *
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsDiscontinuityTime data.
      * copy (* ipSystemStatsDiscontinuityTime_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_DISCONTINUITYTIME])
-        return MFD_SKIP;
-
     (*ipSystemStatsDiscontinuityTime_val_ptr) =
         rowreq_ctx->ipSystemStatsDiscontinuityTime;
 
@@ -3305,9 +3169,6 @@ ipSystemStatsRefreshRate_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
      * TODO:231:o: |-> Extract the current value of the ipSystemStatsRefreshRate data.
      * copy (* ipSystemStatsRefreshRate_val_ptr ) from rowreq_ctx->data
      */
-    if (!rowreq_ctx->data->stats.columnAvail[IPSYSTEMSTATSTABLE_REFRESHRATE])
-        return MFD_SKIP;
-
     (*ipSystemStatsRefreshRate_val_ptr) =
         rowreq_ctx->ipSystemStatsRefreshRate;
 
diff --git a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
index ca1e1f3..51590d2 100644
--- a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
+++ b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: ipSystemStatsTable.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 #ifndef IPSYSTEMSTATSTABLE_H
 #define IPSYSTEMSTATSTABLE_H
@@ -234,8 +234,8 @@ config_require(ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access)
         * ipSystemStatsTable_row_find_by_mib_index
         (ipSystemStatsTable_mib_index * mib_idx);
 
-    extern const oid      ipSystemStatsTable_oid[];
-    extern const int      ipSystemStatsTable_oid_size;
+    extern oid      ipSystemStatsTable_oid[];
+    extern int      ipSystemStatsTable_oid_size;
 
 
 #include "ipSystemStatsTable_interface.h"
diff --git a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_constants.h b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_constants.h
index e9294c4..0fa6104 100644
--- a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_constants.h
+++ b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: ipSystemStatsTable_constants.h 13768 2005-12-01 20:12:20Z rstory $
  */
 #ifndef IPSYSTEMSTATSTABLE_CONSTANTS_H
 #define IPSYSTEMSTATSTABLE_CONSTANTS_H
diff --git a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c
index d41bb25..c1d257d 100644
--- a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c
+++ b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: ipSystemStatsTable_data_access.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /*
  * standard Net-SNMP includes 
@@ -19,7 +19,7 @@
 
 #include "ipSystemStatsTable_data_access.h"
 
-static int      ipss_cache_refresh = IPSYSTEMSTATSTABLE_CACHE_TIMEOUT;
+static int      ipss_cache_refresh = 30;
 
 /** @ingroup interface 
  * @addtogroup data_access data_access: Routines to access data
@@ -58,10 +58,61 @@ int
 ipSystemStatsTable_init_data(ipSystemStatsTable_registration *
                              ipSystemStatsTable_reg)
 {
-   DEBUGMSGTL(("verbose:ipSystemStatsTable:ipSystemStatsTable_init_data",
+    static unsigned int my_columns[] = {
+        COLUMN_IPSYSTEMSTATSINRECEIVES, COLUMN_IPSYSTEMSTATSHCINRECEIVES,
+        /** COLUMN_IPSYSTEMSTATSINOCTETS, */
+        COLUMN_IPSYSTEMSTATSHCINOCTETS,
+        COLUMN_IPSYSTEMSTATSINHDRERRORS,
+        /** COLUMN_IPSYSTEMSTATSINNOROUTES, */
+        COLUMN_IPSYSTEMSTATSINADDRERRORS,
+        COLUMN_IPSYSTEMSTATSINUNKNOWNPROTOS,
+        /** COLUMN_IPSYSTEMSTATSINTRUNCATEDPKTS, */
+        COLUMN_IPSYSTEMSTATSINFORWDATAGRAMS,
+        COLUMN_IPSYSTEMSTATSHCINFORWDATAGRAMS,
+        COLUMN_IPSYSTEMSTATSREASMREQDS,
+        COLUMN_IPSYSTEMSTATSREASMOKS, COLUMN_IPSYSTEMSTATSREASMFAILS,
+        COLUMN_IPSYSTEMSTATSINDISCARDS, COLUMN_IPSYSTEMSTATSINDELIVERS,
+        COLUMN_IPSYSTEMSTATSHCINDELIVERS, COLUMN_IPSYSTEMSTATSOUTREQUESTS,
+        COLUMN_IPSYSTEMSTATSHCOUTREQUESTS, COLUMN_IPSYSTEMSTATSOUTNOROUTES,
+        /** COLUMN_IPSYSTEMSTATSOUTFORWDATAGRAMS, */
+        COLUMN_IPSYSTEMSTATSHCOUTFORWDATAGRAMS,
+        COLUMN_IPSYSTEMSTATSOUTDISCARDS,
+        /** COLUMN_IPSYSTEMSTATSOUTFRAGREQDS, */
+        COLUMN_IPSYSTEMSTATSOUTFRAGOKS, COLUMN_IPSYSTEMSTATSOUTFRAGFAILS,
+        COLUMN_IPSYSTEMSTATSOUTFRAGCREATES,
+        /** COLUMN_IPSYSTEMSTATSOUTTRANSMITS, */
+        /** COLUMN_IPSYSTEMSTATSHCOUTTRANSMITS, */
+        /** COLUMN_IPSYSTEMSTATSOUTOCTETS, */
+        /** COLUMN_IPSYSTEMSTATSHCOUTOCTETS, */
+        /** COLUMN_IPSYSTEMSTATSINMCASTPKTS, */
+        /** COLUMN_IPSYSTEMSTATSHCINMCASTPKTS, */
+        /** COLUMN_IPSYSTEMSTATSINMCASTOCTETS, */
+        /** COLUMN_IPSYSTEMSTATSHCINMCASTOCTETS, */
+        /** COLUMN_IPSYSTEMSTATSOUTMCASTPKTS, */
+        /** COLUMN_IPSYSTEMSTATSHCOUTMCASTPKTS, */
+        /** COLUMN_IPSYSTEMSTATSOUTMCASTOCTETS, */
+        /** COLUMN_IPSYSTEMSTATSHCOUTMCASTOCTETS, */
+        /** COLUMN_IPSYSTEMSTATSINBCASTPKTS, */
+        /** COLUMN_IPSYSTEMSTATSHCINBCASTPKTS, */
+        /** COLUMN_IPSYSTEMSTATSOUTBCASTPKTS, */
+        /** COLUMN_IPSYSTEMSTATSHCOUTBCASTPKTS, */
+        COLUMN_IPSYSTEMSTATSDISCONTINUITYTIME,
+        COLUMN_IPSYSTEMSTATSREFRESHRATE
+    };
+    static netsnmp_column_info valid_columns;
+
+    DEBUGMSGTL(("verbose:ipSystemStatsTable:ipSystemStatsTable_init_data",
                 "called\n"));
 
     /*
+     * we only want to process certain columns, and ignore
+     * anything else.
+     */
+    valid_columns.isRange = 0;
+    valid_columns.details.list = my_columns;
+    valid_columns.list_count = sizeof(my_columns) / sizeof(unsigned int);
+    ipSystemStatsTable_valid_columns_set(&valid_columns);
+    /*
      * TODO:303:o: Initialize ipSystemStatsTable data.
      */
 
@@ -115,11 +166,7 @@ ipSystemStatsTable_container_init(netsnmp_container **container_ptr_ptr,
      * For advanced users, you can use a custom container. If you
      * do not create one, one will be created for you.
      */
-
-
-    *container_ptr_ptr = netsnmp_container_find("ipSystemStatsTable:table_container");
-    if (NULL != *container_ptr_ptr)
-        (*container_ptr_ptr)->container_name = strdup("ipSystemStatsTable");
+    *container_ptr_ptr = NULL;
 
     if (NULL == cache) {
         snmp_log(LOG_ERR,
@@ -144,7 +191,6 @@ ipSystemStatsTable_container_init(netsnmp_container **container_ptr_ptr,
         (NETSNMP_CACHE_DONT_AUTO_RELEASE | NETSNMP_CACHE_DONT_FREE_EXPIRED
          | NETSNMP_CACHE_DONT_FREE_BEFORE_LOAD |
          NETSNMP_CACHE_AUTO_RELOAD);
-    ipSystemStatsTable_container_load(*container_ptr_ptr);
 }                               /* ipSystemStatsTable_container_init */
 
 /**
@@ -157,7 +203,7 @@ _check_for_updates(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
     /*
      * check for matching entry. works because indexes are the same.
      */
-    netsnmp_systemstats_entry *systemstats_entry = (netsnmp_systemstats_entry*)
+    netsnmp_systemstats_entry *systemstats_entry =
         CONTAINER_FIND(stats, rowreq_ctx->data);
     if (NULL == systemstats_entry) {
         DEBUGMSGTL(("ipSystemStatsTable:access",
@@ -220,7 +266,7 @@ _add_new(netsnmp_systemstats_entry *systemstats_entry,
         && (MFD_SUCCESS ==
             ipSystemStatsTable_indexes_set(rowreq_ctx,
                                            systemstats_entry->
-                                           index[0]))) {
+                                           ns_ip_version))) {
         rowreq_ctx->ipSystemStatsRefreshRate = ipss_cache_refresh * 1000;       /* milli-seconds */
         CONTAINER_INSERT(container, rowreq_ctx);
     } else {
@@ -339,7 +385,7 @@ ipSystemStatsTable_container_load(netsnmp_container *container)
                                               NETSNMP_ACCESS_SYSTEMSTATS_FREE_DONT_CLEAR);
 
     DEBUGMSGT(("verbose:ipSystemStatsTable:ipSystemStatsTable_cache_load",
-               "%" NETSNMP_PRIz "u records\n", CONTAINER_SIZE(container)));
+               "%d records\n", CONTAINER_SIZE(container)));
 
     return MFD_SUCCESS;
 }                               /* ipSystemStatsTable_container_load */
diff --git a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.h b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.h
index 56cdb72..fadd3bc 100644
--- a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.h
+++ b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: ipSystemStatsTable_data_access.h 13768 2005-12-01 20:12:20Z rstory $
  */
 #ifndef IPSYSTEMSTATSTABLE_DATA_ACCESS_H
 #define IPSYSTEMSTATSTABLE_DATA_ACCESS_H
diff --git a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c
index e1ca2cb..614afa0 100644
--- a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c
+++ b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: ipSystemStatsTable_interface.c 15015 2006-08-17 15:06:43Z rstory $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -47,18 +46,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_child_of(ipSystemStatsTable_external_access, libnetsnmpmibs)
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(check_all_requests_error)
-
-
-netsnmp_feature_child_of(ipSystemStatsTable_container_size, ipSystemStatsTable_external_access)
-netsnmp_feature_child_of(ipSystemStatsTable_registration_set, ipSystemStatsTable_external_access)
-netsnmp_feature_child_of(ipSystemStatsTable_registration_get, ipSystemStatsTable_external_access)
-netsnmp_feature_child_of(ipSystemStatsTable_container_get, ipSystemStatsTable_external_access)
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -93,23 +80,19 @@ static void
                 _ipSystemStatsTable_container_shutdown(ipSystemStatsTable_interface_ctx *
                                                        if_ctx);
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPSYSTEMSTATSTABLE_CONTAINER_GET
+
 netsnmp_container *
 ipSystemStatsTable_container_get(void)
 {
     return ipSystemStatsTable_if_ctx.container;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPSYSTEMSTATSTABLE_CONTAINER_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPSYSTEMSTATSTABLE_REGISTRATION_GET
 ipSystemStatsTable_registration *
 ipSystemStatsTable_registration_get(void)
 {
     return ipSystemStatsTable_if_ctx.user_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPSYSTEMSTATSTABLE_REGISTRATION_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPSYSTEMSTATSTABLE_REGISTRATION_SET
 ipSystemStatsTable_registration *
 ipSystemStatsTable_registration_set(ipSystemStatsTable_registration *
                                     newreg)
@@ -119,15 +102,12 @@ ipSystemStatsTable_registration_set(ipSystemStatsTable_registration *
     ipSystemStatsTable_if_ctx.user_ctx = newreg;
     return old;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPSYSTEMSTATSTABLE_REGISTRATION_SET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPSYSTEMSTATSTABLE_CONTAINER_SIZE
 int
 ipSystemStatsTable_container_size(void)
 {
     return CONTAINER_SIZE(ipSystemStatsTable_if_ctx.container);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPSYSTEMSTATSTABLE_CONTAINER_SIZE */
 
 /*
  * mfd multiplexer modes
@@ -169,7 +149,7 @@ _ipSystemStatsTable_initialize_interface(ipSystemStatsTable_registration *
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = IPSYSTEMSTATSTABLE_MIN_COL;
     tbl_info->max_column = IPSYSTEMSTATSTABLE_MAX_COL;
@@ -235,13 +215,6 @@ _ipSystemStatsTable_initialize_interface(ipSystemStatsTable_registration *
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
-    /* XXX - are these actually necessary? */
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -249,6 +222,11 @@ _ipSystemStatsTable_initialize_interface(ipSystemStatsTable_registration *
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -264,7 +242,6 @@ _ipSystemStatsTable_initialize_interface(ipSystemStatsTable_registration *
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -569,7 +546,7 @@ _mfd_ipSystemStatsTable_post_request(netsnmp_mib_handler *handler,
                                      *agtreq_info,
                                      netsnmp_request_info *requests)
 {
-    ipSystemStatsTable_rowreq_ctx *rowreq_ctx = (ipSystemStatsTable_rowreq_ctx*)
+    ipSystemStatsTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -615,7 +592,7 @@ _mfd_ipSystemStatsTable_object_lookup(netsnmp_mib_handler *handler, netsnmp_hand
                                       netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    ipSystemStatsTable_rowreq_ctx *rowreq_ctx = (ipSystemStatsTable_rowreq_ctx*)
+    ipSystemStatsTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipSystemStatsTable:_mfd_ipSystemStatsTable_object_lookup", "called\n"));
@@ -1127,7 +1104,7 @@ _mfd_ipSystemStatsTable_get_values(netsnmp_mib_handler *handler,
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    ipSystemStatsTable_rowreq_ctx *rowreq_ctx = (ipSystemStatsTable_rowreq_ctx*)
+    ipSystemStatsTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1196,7 +1173,6 @@ _mfd_ipSystemStatsTable_get_values(netsnmp_mib_handler *handler,
 }                               /* _mfd_ipSystemStatsTable_get_values */
 
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 /***********************************************************************
  *
  * SET processing
@@ -1206,8 +1182,6 @@ _mfd_ipSystemStatsTable_get_values(netsnmp_mib_handler *handler,
 /*
  * SET PROCESSING NOT APPLICABLE (per MIB or user setting)
  */
-#endif
-
 /***********************************************************************
  *
  * DATA ACCESS
@@ -1360,7 +1334,6 @@ _ipSystemStatsTable_container_shutdown(ipSystemStatsTable_interface_ctx *
 }                               /* _ipSystemStatsTable_container_shutdown */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_IPSYSTEMSTATSTABLE_EXTERNAL_ACCESS
 ipSystemStatsTable_rowreq_ctx *
 ipSystemStatsTable_row_find_by_mib_index(ipSystemStatsTable_mib_index *
                                          mib_idx)
@@ -1383,9 +1356,8 @@ ipSystemStatsTable_row_find_by_mib_index(ipSystemStatsTable_mib_index *
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = (ipSystemStatsTable_rowreq_ctx*)
+    rowreq_ctx =
         CONTAINER_FIND(ipSystemStatsTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IPSYSTEMSTATSTABLE_EXTERNAL_ACCESS */
diff --git a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.h b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.h
index 89f6ae0..37cf765 100644
--- a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.h
+++ b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: ipSystemStatsTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/ip-mib/ip_scalars.c b/agent/mibgroup/ip-mib/ip_scalars.c
index b697a75..2543491 100644
--- a/agent/mibgroup/ip-mib/ip_scalars.c
+++ b/agent/mibgroup/ip-mib/ip_scalars.c
@@ -4,53 +4,27 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
 #include <net-snmp/data_access/ip_scalars.h>
 
-netsnmp_feature_require(register_num_file_instance)
-
 #include "ip_scalars.h"
 
 int
-handle_ipForwarding(netsnmp_mib_handler *handler,
-                    netsnmp_handler_registration *reginfo,
-                    netsnmp_agent_request_info *reqinfo,
-                    netsnmp_request_info *requests);
-
-int
-handle_ipDefaultTTL(netsnmp_mib_handler *handler,
-                          netsnmp_handler_registration *reginfo,
-                          netsnmp_agent_request_info *reqinfo,
-                          netsnmp_request_info *requests);
-
-int
 handle_ipv6IpForwarding(netsnmp_mib_handler *handler,
                         netsnmp_handler_registration *reginfo,
                         netsnmp_agent_request_info *reqinfo,
                         netsnmp_request_info *requests);
 
-int ipAddressSpinLockValue;
-
-int
-handle_ipAddressSpinLock(netsnmp_mib_handler *handler,
-                         netsnmp_handler_registration *reginfo,
-                         netsnmp_agent_request_info *reqinfo,
-                         netsnmp_request_info *requests);
-
 /** Initializes the ip module */
 void
 init_ip_scalars(void)
 {
-    static oid 	    ipForwarding_oid[] = { 1, 3, 6, 1, 2, 1, 4, 1 };
-    static oid 	    ipDefaultTTL_oid[] = { 1, 3, 6, 1, 2, 1, 4, 2, 0 };
     static oid      ipReasmTimeout_oid[] = { 1, 3, 6, 1, 2, 1, 4, 13, 0 };
     static oid      ipv6IpForwarding_oid[] = { 1, 3, 6, 1, 2, 1, 4, 25 };
     static oid      ipv6IpDefaultHopLimit_oid[] =
         { 1, 3, 6, 1, 2, 1, 4, 26, 0 };
-    static oid      ipAddressSpinLock_oid[] = { 1, 3, 6, 1, 2, 1, 4, 33 };
 
     DEBUGMSGTL(("ip_scalar", "Initializing\n"));
 
@@ -61,142 +35,20 @@ init_ip_scalars(void)
          HANDLER_CAN_RONLY, NULL, NULL);
                                        
     netsnmp_register_scalar(netsnmp_create_handler_registration
-                             ("ipForwarding", handle_ipForwarding,
-                              ipForwarding_oid,
-                              OID_LENGTH(ipForwarding_oid),
-                              HANDLER_CAN_RWRITE));
-
-    netsnmp_register_scalar(netsnmp_create_handler_registration
                             ("ipv6IpForwarding", handle_ipv6IpForwarding,
                              ipv6IpForwarding_oid,
                              OID_LENGTH(ipv6IpForwarding_oid),
                              HANDLER_CAN_RWRITE));
 
-    netsnmp_register_scalar(netsnmp_create_handler_registration
-                            ("ipAddressSpinLock", handle_ipAddressSpinLock,
-                             ipAddressSpinLock_oid,
-                             OID_LENGTH(ipAddressSpinLock_oid),
-                             HANDLER_CAN_RWRITE));
-
-    /* Initialize spin lock with random value */
-    ipAddressSpinLockValue = (int) random();
-
     netsnmp_register_num_file_instance
         ("ipv6IpDefaultHopLimit",
          ipv6IpDefaultHopLimit_oid, OID_LENGTH(ipv6IpDefaultHopLimit_oid),
          "/proc/sys/net/ipv6/conf/default/hop_limit", ASN_INTEGER,
          HANDLER_CAN_RWRITE, NULL, NULL);
-
-     netsnmp_register_num_file_instance
-        ("ipDefaultTTL",
-         ipDefaultTTL_oid, OID_LENGTH(ipDefaultTTL_oid),
-         "/proc/sys/net/ipv4/ip_default_ttl", ASN_INTEGER,
-         HANDLER_CAN_RWRITE, NULL, NULL);
                                        
 }
 
 int
-handle_ipForwarding(netsnmp_mib_handler *handler,
-                          netsnmp_handler_registration *reginfo,
-                          netsnmp_agent_request_info   *reqinfo,
-                          netsnmp_request_info         *requests)
-{
-    int      rc;
-    u_long   value;
-
-    /* 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. */
-
-    switch(reqinfo->mode) {
-
-        case MODE_GET:
-            rc = netsnmp_arch_ip_scalars_ipForwarding_get(&value);
-            if (rc != 0) {
-                netsnmp_set_request_error(reqinfo, requests,
-                                      SNMP_NOSUCHINSTANCE);
-            }
-            else {
-                value = value ? 1 : 2;
-                snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER,
-                                     (u_char *)&value, sizeof(value));
-            }
-            break;
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-        /*
-         * 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:
-            break;
-
-        case MODE_SET_RESERVE2:
-            /*
-             * store old info for undo later
-             */
-            rc = netsnmp_arch_ip_scalars_ipForwarding_get(&value);
-            if (rc < 0) {
-                netsnmp_set_request_error(reqinfo, requests,
-                                          SNMP_ERR_NOCREATION);
-            } else {
-                u_long *value_save;
-                memdup((u_char **) & value_save, (u_char *) &value,
-                       sizeof(value));
-                if ( NULL == value_save )
-                    netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_RESOURCEUNAVAILABLE);
-                else
-                    netsnmp_request_add_list_data(requests,
-                                                  netsnmp_create_data_list
-                                                  ("ipfw", value_save,
-                                                  free));
-	    }
-            break;
-
-        case MODE_SET_FREE:
-            /* XXX: free resources allocated in RESERVE1 and/or
-               RESERVE2.  Something failed somewhere, and the states
-               below won't be called. */
-            break;
-
-        case MODE_SET_ACTION:
-            /* XXX: perform the value change here */
-            value =  *(requests->requestvb->val.integer);
-            rc = netsnmp_arch_ip_scalars_ipForwarding_set(value);
-            if ( 0 != rc ) {
-                netsnmp_set_request_error(reqinfo, requests, rc);
-            }
-            break;
-
-        case MODE_SET_COMMIT:
-            break;
-
-        case MODE_SET_UNDO:
-             value =
-                 *((u_long *) netsnmp_request_get_list_data(requests,
-                                                            "ipfw"));
-             rc = netsnmp_arch_ip_scalars_ipForwarding_set(value);
-             if ( 0 != rc ) {
-                 netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_UNDOFAILED);
-             }
-             break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
-        default:
-            /* we should never get here, so this is a really bad error */
-            snmp_log(LOG_ERR, "unknown mode (%d) in handle_ipForwarding\n", reqinfo->mode );
-            return SNMP_ERR_GENERR;
-    }
-
-    return SNMP_ERR_NOERROR;
-}
-
-
-int
 handle_ipv6IpForwarding(netsnmp_mib_handler *handler,
                         netsnmp_handler_registration *reginfo,
                         netsnmp_agent_request_info *reqinfo,
@@ -229,7 +81,6 @@ handle_ipv6IpForwarding(netsnmp_mib_handler *handler,
         }
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         /*
          * SET REQUEST
          *
@@ -288,7 +139,6 @@ handle_ipv6IpForwarding(netsnmp_mib_handler *handler,
             netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_UNDOFAILED);
         }
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     default:
         /*
@@ -301,72 +151,3 @@ handle_ipv6IpForwarding(netsnmp_mib_handler *handler,
 
     return SNMP_ERR_NOERROR;
 }
-
-int
-handle_ipAddressSpinLock(netsnmp_mib_handler *handler,
-                          netsnmp_handler_registration *reginfo,
-                          netsnmp_agent_request_info   *reqinfo,
-                          netsnmp_request_info         *requests)
-{
-    long   value;
-
-    /* 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. */
-
-    switch(reqinfo->mode) {
-
-        case MODE_GET:
-            snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER,
-                                     (u_char *)&ipAddressSpinLockValue, 
-                                     sizeof(ipAddressSpinLockValue));
-            break;
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-        /*
-         * 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:
-        case MODE_SET_RESERVE2:
-            /* just check the value */
-            value =  *(requests->requestvb->val.integer);
-            if (value != ipAddressSpinLockValue)
-                netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_INCONSISTENTVALUE);
-            break;
-
-        case MODE_SET_FREE:
-            break;
-
-        case MODE_SET_ACTION:
-            /* perform the final spinlock check and increase its value */
-            value =  *(requests->requestvb->val.integer);
-            if (value != ipAddressSpinLockValue) {
-                netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_INCONSISTENTVALUE);
-            } else {
-                ipAddressSpinLockValue++;
-                /* and check it for overflow */
-                if (ipAddressSpinLockValue > 2147483647 || ipAddressSpinLockValue < 0)
-                    ipAddressSpinLockValue = 0;
-            }
-            break;
-
-        case MODE_SET_COMMIT:
-            break;
-
-        case MODE_SET_UNDO:
-             break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
-        default:
-            /* we should never get here, so this is a really bad error */
-            snmp_log(LOG_ERR, "unknown mode (%d) in handle_ipAddressSpinLock\n", reqinfo->mode );
-            return SNMP_ERR_GENERR;
-    }
-
-    return SNMP_ERR_NOERROR;
-}
diff --git a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.c b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.c
index 351ddd1..b79811c 100644
--- a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.c
+++ b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: ipv4InterfaceTable.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** \page MFD helper for ipv4InterfaceTable
  *
@@ -26,12 +26,11 @@
 
 #include "ipv4InterfaceTable_interface.h"
 
-const oid       ipv4InterfaceTable_oid[] = { IPV4INTERFACETABLE_OID };
-const int       ipv4InterfaceTable_oid_size =
+oid             ipv4InterfaceTable_oid[] = { IPV4INTERFACETABLE_OID };
+int             ipv4InterfaceTable_oid_size =
 OID_LENGTH(ipv4InterfaceTable_oid);
 
 ipv4InterfaceTable_registration ipv4InterfaceTable_user_context;
-static ipv4InterfaceTable_registration *ipv4InterfaceTable_user_context_p;
 
 void            initialize_table_ipv4InterfaceTable(void);
 void            shutdown_table_ipv4InterfaceTable(void);
@@ -81,6 +80,7 @@ shutdown_ipv4InterfaceTable(void)
 void
 initialize_table_ipv4InterfaceTable(void)
 {
+    ipv4InterfaceTable_registration *user_context;
     u_long          flags;
 
     DEBUGMSGTL(("verbose:ipv4InterfaceTable:initialize_table_ipv4InterfaceTable", "called\n"));
@@ -98,7 +98,7 @@ initialize_table_ipv4InterfaceTable(void)
      * a netsnmp_data_list is a simple way to store void pointers. A simple
      * string token is used to add, find or remove pointers.
      */
-    ipv4InterfaceTable_user_context_p =
+    user_context =
         netsnmp_create_data_list("ipv4InterfaceTable", NULL, NULL);
 
     /*
@@ -110,8 +110,7 @@ initialize_table_ipv4InterfaceTable(void)
     /*
      * call interface initialization code
      */
-    _ipv4InterfaceTable_initialize_interface
-	(ipv4InterfaceTable_user_context_p, flags);
+    _ipv4InterfaceTable_initialize_interface(user_context, flags);
 }                               /* initialize_table_ipv4InterfaceTable */
 
 /**
@@ -124,9 +123,7 @@ shutdown_table_ipv4InterfaceTable(void)
      * call interface shutdown code
      */
     _ipv4InterfaceTable_shutdown_interface
-        (ipv4InterfaceTable_user_context_p);
-    netsnmp_free_all_list_data(ipv4InterfaceTable_user_context_p);
-    ipv4InterfaceTable_user_context_p = NULL;
+        (&ipv4InterfaceTable_user_context);
 }
 
 /**
diff --git a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h
index 8123908..84dfced 100644
--- a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h
+++ b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: ipv4InterfaceTable.h 15205 2006-09-14 17:15:32Z rstory $
  */
 #ifndef IPV4INTERFACETABLE_H
 #define IPV4INTERFACETABLE_H
@@ -39,7 +39,6 @@ config_require(ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access)
      *********************************************************************
      * function declarations
      */
-    void            initialize_table_ipv4InterfaceTable(void);
     void            init_ipv4InterfaceTable(void);
     void            shutdown_ipv4InterfaceTable(void);
 
@@ -108,8 +107,8 @@ config_require(ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access)
         * ipv4InterfaceTable_row_find_by_mib_index
         (ipv4InterfaceTable_mib_index * mib_idx);
 
-    extern const oid      ipv4InterfaceTable_oid[];
-    extern const int      ipv4InterfaceTable_oid_size;
+    extern oid      ipv4InterfaceTable_oid[];
+    extern int      ipv4InterfaceTable_oid_size;
 
 
 #include "ipv4InterfaceTable_interface.h"
diff --git a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_constants.h b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_constants.h
index eb391ae..29095cd 100644
--- a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_constants.h
+++ b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: ipv4InterfaceTable_constants.h 13897 2005-12-10 01:56:01Z rstory $
  */
 #ifndef IPV4INTERFACETABLE_CONSTANTS_H
 #define IPV4INTERFACETABLE_CONSTANTS_H
diff --git a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access.c b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access.c
index c9e14ff..72bb5ba 100644
--- a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access.c
+++ b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: ipv4InterfaceTable_data_access.c 15205 2006-09-14 17:15:32Z rstory $
  */
 /*
  * standard Net-SNMP includes 
@@ -138,7 +138,7 @@ ipv4InterfaceTable_check_entry_for_updates(const ifTable_rowreq_ctx *
              * yes.
              */
             DEBUGMSGTL(("ipv4InterfaceTable:check_entry_for_updates",
-                        "inserted row for %" NETSNMP_PRIo "d\n", entry->index));
+                        "inserted row for %d\n", entry->index));
             CONTAINER_INSERT(c, ift_rrc);
             changed = 1;
         }
@@ -152,7 +152,7 @@ ipv4InterfaceTable_check_entry_for_updates(const ifTable_rowreq_ctx *
              * no
              */
             DEBUGMSGTL(("ipv4InterfaceTable:check_entry_for_updates",
-                        "removed  row for %" NETSNMP_PRIo "d\n",
+                        "removed  row for %d\n",
                         ift_rrc->data.ifentry->index));
             CONTAINER_REMOVE(c, ift_rrc);
             changed = 1;
@@ -164,7 +164,7 @@ ipv4InterfaceTable_check_entry_for_updates(const ifTable_rowreq_ctx *
                  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 %" NETSNMP_PRIo "d\n",
+                            "row changed for %d\n",
                             ift_rrc->data.ifentry->index));
                 changed = 1;
             }
diff --git a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access.h b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access.h
index 4fb5db3..821e37e 100644
--- a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access.h
+++ b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: ipv4InterfaceTable_data_access.h 13899 2005-12-10 01:58:09Z rstory $
  */
 #ifndef IPV4INTERFACETABLE_DATA_ACCESS_H
 #define IPV4INTERFACETABLE_DATA_ACCESS_H
diff --git a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c
index a851a30..d8b8dc4 100644
--- a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c
+++ b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: ipv4InterfaceTable_interface.c 14142 2006-01-15 19:55:17Z rstory $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -45,14 +44,8 @@
 
 #include "ipv4InterfaceTable_interface.h"
 
-#include "if-mib/ifTable/ifTable.h"
-
 #include <ctype.h>
 
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(check_all_requests_error)
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -150,7 +143,6 @@ static Netsnmp_Node_Handler _mfd_ipv4InterfaceTable_pre_request;
 static Netsnmp_Node_Handler _mfd_ipv4InterfaceTable_post_request;
 static Netsnmp_Node_Handler _mfd_ipv4InterfaceTable_object_lookup;
 static Netsnmp_Node_Handler _mfd_ipv4InterfaceTable_get_values;
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
 static Netsnmp_Node_Handler _mfd_ipv4InterfaceTable_check_objects;
 static Netsnmp_Node_Handler _mfd_ipv4InterfaceTable_undo_setup;
 static Netsnmp_Node_Handler _mfd_ipv4InterfaceTable_set_values;
@@ -164,7 +156,6 @@ NETSNMP_STATIC_INLINE int
                 _ipv4InterfaceTable_undo_column(ipv4InterfaceTable_rowreq_ctx * rowreq_ctx,
                                                 netsnmp_variable_list *
                                                 var, int column);
-#endif
 
 ipv4InterfaceTable_data *ipv4InterfaceTable_allocate_data(void);
 
@@ -201,7 +192,7 @@ _ipv4InterfaceTable_initialize_interface(ipv4InterfaceTable_registration *
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = IPV4INTERFACETABLE_MIN_COL;
     tbl_info->max_column = IPV4INTERFACETABLE_MAX_COL;
@@ -241,7 +232,6 @@ _ipv4InterfaceTable_initialize_interface(ipv4InterfaceTable_registration *
         _mfd_ipv4InterfaceTable_post_request;
 
 
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
     /*
      * REQUIRED wrappers for set request handling
      */
@@ -260,7 +250,6 @@ _ipv4InterfaceTable_initialize_interface(ipv4InterfaceTable_registration *
     access_multiplexer->undo_commit = _mfd_ipv4InterfaceTable_undo_commit;
     access_multiplexer->irreversible_commit =
         _mfd_ipv4InterfaceTable_irreversible_commit;
-#endif
 
     /*************************************************
      *
@@ -274,11 +263,8 @@ _ipv4InterfaceTable_initialize_interface(ipv4InterfaceTable_registration *
         netsnmp_handler_registration_create("ipv4InterfaceTable", handler,
                                             ipv4InterfaceTable_oid,
                                             ipv4InterfaceTable_oid_size,
-                                            HANDLER_CAN_BABY_STEP
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
-                                          | HANDLER_CAN_RWRITE
-#endif
-                                          );
+                                            HANDLER_CAN_BABY_STEP |
+                                            HANDLER_CAN_RWRITE);
     if (NULL == reginfo) {
         snmp_log(LOG_ERR, "error registering table ipv4InterfaceTable\n");
         return;
@@ -291,12 +277,6 @@ _ipv4InterfaceTable_initialize_interface(ipv4InterfaceTable_registration *
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -304,6 +284,11 @@ _ipv4InterfaceTable_initialize_interface(ipv4InterfaceTable_registration *
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -319,7 +304,6 @@ _ipv4InterfaceTable_initialize_interface(ipv4InterfaceTable_registration *
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -352,7 +336,7 @@ _ipv4InterfaceTable_initialize_interface(ipv4InterfaceTable_registration *
      */
     {
         oid             lc_oid[] = { IPV4INTERFACETABLELASTCHANGE_OID };
-        netsnmp_register_watched_scalar2(netsnmp_create_handler_registration
+        netsnmp_register_watched_scalar(netsnmp_create_handler_registration
                                         ("ipv4TableLastChanged", NULL,
                                          lc_oid, OID_LENGTH(lc_oid),
                                          HANDLER_CAN_RONLY),
@@ -454,6 +438,8 @@ _mfd_ipv4InterfaceTable_post_request(netsnmp_mib_handler *handler,
                                      *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"));
@@ -662,7 +648,6 @@ _mfd_ipv4InterfaceTable_get_values(netsnmp_mib_handler *handler,
 }                               /* _mfd_ipv4InterfaceTable_get_values */
 
 
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
 /***********************************************************************
  *
  * SET processing
@@ -1222,7 +1207,6 @@ _mfd_ipv4InterfaceTable_irreversible_commit(netsnmp_mib_handler *handler, netsnm
 
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_ipv4InterfaceTable_irreversible_commit */
-#endif
 
 /***********************************************************************
  *
@@ -1275,7 +1259,6 @@ _ipv4InterfaceTable_container_init(ipv4InterfaceTable_interface_ctx *
                  "ipv4InterfaceTable_container_init\n");
         return;
     }
-    if_ctx->container->container_name = strdup("ipv4InterfaceTable");
 
 }                               /* _ipv4InterfaceTable_container_init */
 
diff --git a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.h b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.h
index 46b3049..cdded1a 100644
--- a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.h
+++ b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: ipv4InterfaceTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_subagent.c b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_subagent.c
index 35b2e96..3c85a54 100644
--- a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_subagent.c
+++ b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_subagent.c
@@ -6,14 +6,9 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
-netsnmp_feature_require(agentx_enable_subagent)
-netsnmp_feature_require(agent_check_and_process)
-netsnmp_feature_require(enable_stderrlog)
-
 /*
  * include our parent header 
  */
diff --git a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.c b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.c
index 92f0a5b..abc08ad 100644
--- a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.c
+++ b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: ipv6InterfaceTable.c 15946 2007-03-12 21:28:23Z dts12 $
  */
 /** \page MFD helper for ipv6InterfaceTable
  *
@@ -26,12 +26,11 @@
 
 #include "ipv6InterfaceTable_interface.h"
 
-const oid       ipv6InterfaceTable_oid[] = { IPV6INTERFACETABLE_OID };
-const int       ipv6InterfaceTable_oid_size =
+oid             ipv6InterfaceTable_oid[] = { IPV6INTERFACETABLE_OID };
+int             ipv6InterfaceTable_oid_size =
 OID_LENGTH(ipv6InterfaceTable_oid);
 
 ipv6InterfaceTable_registration ipv6InterfaceTable_user_context;
-static ipv6InterfaceTable_registration *ipv6InterfaceTable_user_context_p;
 
 void            initialize_table_ipv6InterfaceTable(void);
 void            shutdown_table_ipv6InterfaceTable(void);
@@ -81,6 +80,7 @@ shutdown_ipv6InterfaceTable(void)
 void
 initialize_table_ipv6InterfaceTable(void)
 {
+    ipv6InterfaceTable_registration *user_context;
     u_long          flags;
 
     DEBUGMSGTL(("verbose:ipv6InterfaceTable:initialize_table_ipv6InterfaceTable", "called\n"));
@@ -98,7 +98,7 @@ initialize_table_ipv6InterfaceTable(void)
      * a netsnmp_data_list is a simple way to store void pointers. A simple
      * string token is used to add, find or remove pointers.
      */
-    ipv6InterfaceTable_user_context_p =
+    user_context =
         netsnmp_create_data_list("ipv6InterfaceTable", NULL, NULL);
 
     /*
@@ -110,8 +110,7 @@ initialize_table_ipv6InterfaceTable(void)
     /*
      * call interface initialization code
      */
-    _ipv6InterfaceTable_initialize_interface
-	(ipv6InterfaceTable_user_context_p, flags);
+    _ipv6InterfaceTable_initialize_interface(user_context, flags);
 }                               /* initialize_table_ipv6InterfaceTable */
 
 /**
@@ -124,9 +123,7 @@ shutdown_table_ipv6InterfaceTable(void)
      * call interface shutdown code
      */
     _ipv6InterfaceTable_shutdown_interface
-        (ipv6InterfaceTable_user_context_p);
-    netsnmp_free_all_list_data(ipv6InterfaceTable_user_context_p);
-    ipv6InterfaceTable_user_context_p = NULL;
+        (&ipv6InterfaceTable_user_context);
 }
 
 /**
@@ -690,7 +687,7 @@ ipv6InterfaceForwarding_get(ipv6InterfaceTable_rowreq_ctx * rowreq_ctx,
      * copy (* ipv6InterfaceForwarding_val_ptr ) from rowreq_ctx->data
      */
     (*ipv6InterfaceForwarding_val_ptr) =
-        (rowreq_ctx->data.ipv6InterfaceForwarding) ? 1 : 2;
+        rowreq_ctx->data.ipv6InterfaceForwarding;
 
     return MFD_SUCCESS;
 }                               /* ipv6InterfaceForwarding_get */
diff --git a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h
index e2a87a1..3b2ef5c 100644
--- a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h
+++ b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: ipv6InterfaceTable.h 15205 2006-09-14 17:15:32Z rstory $
  */
 #ifndef IPV6INTERFACETABLE_H
 #define IPV6INTERFACETABLE_H
@@ -39,7 +39,6 @@ config_require(ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access)
      *********************************************************************
      * function declarations
      */
-    void            initialize_table_ipv6InterfaceTable(void);
     void            init_ipv6InterfaceTable(void);
     void            shutdown_ipv6InterfaceTable(void);
 
@@ -192,8 +191,8 @@ config_require(ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access)
         * ipv6InterfaceTable_row_find_by_mib_index
         (ipv6InterfaceTable_mib_index * mib_idx);
 
-    extern const oid      ipv6InterfaceTable_oid[];
-    extern const int      ipv6InterfaceTable_oid_size;
+    extern oid      ipv6InterfaceTable_oid[];
+    extern int      ipv6InterfaceTable_oid_size;
 
 
 #include "ipv6InterfaceTable_interface.h"
diff --git a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_constants.h b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_constants.h
index a8f371b..bee70bd 100644
--- a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_constants.h
+++ b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: ipv6InterfaceTable_constants.h 13897 2005-12-10 01:56:01Z rstory $
  */
 #ifndef IPV6INTERFACETABLE_CONSTANTS_H
 #define IPV6INTERFACETABLE_CONSTANTS_H
diff --git a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.c b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.c
index 33c65a9..cf4568e 100644
--- a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.c
+++ b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: ipv6InterfaceTable_data_access.c 15205 2006-09-14 17:15:32Z rstory $
  */
 /*
  * standard Net-SNMP includes 
@@ -138,7 +138,7 @@ ipv6InterfaceTable_check_entry_for_updates(const ifTable_rowreq_ctx *
              * yes.
              */
             DEBUGMSGTL(("ipv6InterfaceTable:check_entry_for_updates",
-                        "inserted row for index %" NETSNMP_PRIo "d\n", entry->index));
+                        "inserted row for index %d\n", entry->index));
             CONTAINER_INSERT(c, ift_rrc);
             changed = 1;
         }
@@ -152,7 +152,7 @@ ipv6InterfaceTable_check_entry_for_updates(const ifTable_rowreq_ctx *
              * no
              */
             DEBUGMSGTL(("ipv6InterfaceTable:check_entry_for_updates",
-                        "removed  row for index %" NETSNMP_PRIo "d\n",
+                        "removed  row for index %d\n",
                         ift_rrc->data.ifentry->index));
             CONTAINER_REMOVE(c, ift_rrc);
             changed = 1;
@@ -190,7 +190,7 @@ ipv6InterfaceTable_check_entry_for_updates(const ifTable_rowreq_ctx *
                     && (entry->forwarding_v6 !=
                         ift_rrc->data.ifentry->forwarding_v6))) {
                 DEBUGMSGTL(("ipv6InterfaceTable:check_entry_for_updates",
-                            "row changed for index %" NETSNMP_PRIo "d\n",
+                            "row changed for index %d\n",
                             ift_rrc->data.ifentry->index));
                 changed = 1;
             }
@@ -329,7 +329,7 @@ ipv6InterfaceTable_container_load(netsnmp_container *container)
         ++count;
     }
 
-    DEBUGMSGT(("verbose:ipv6InterfaceTable:ipv6InterfaceTable_container_load", "inserted %d records\n", (int)count));
+    DEBUGMSGT(("verbose:ipv6InterfaceTable:ipv6InterfaceTable_container_load", "inserted %d records\n", 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 664c3d7..4ff94dc 100644
--- a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.h
+++ b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: ipv6InterfaceTable_data_access.h 13770 2005-12-01 20:54:19Z rstory $
  */
 #ifndef IPV6INTERFACETABLE_DATA_ACCESS_H
 #define IPV6INTERFACETABLE_DATA_ACCESS_H
@@ -35,14 +35,26 @@ extern          "C" {
      */
 
 
-    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
@@ -53,8 +65,24 @@ extern          "C" {
     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 cbd533c..41a95f8 100644
--- a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c
+++ b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: ipv6InterfaceTable_interface.c 15902 2007-02-27 13:36:15Z rstory $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -49,10 +48,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(check_all_requests_error)
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -150,7 +145,6 @@ static Netsnmp_Node_Handler _mfd_ipv6InterfaceTable_pre_request;
 static Netsnmp_Node_Handler _mfd_ipv6InterfaceTable_post_request;
 static Netsnmp_Node_Handler _mfd_ipv6InterfaceTable_object_lookup;
 static Netsnmp_Node_Handler _mfd_ipv6InterfaceTable_get_values;
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
 static Netsnmp_Node_Handler _mfd_ipv6InterfaceTable_check_objects;
 static Netsnmp_Node_Handler _mfd_ipv6InterfaceTable_undo_setup;
 static Netsnmp_Node_Handler _mfd_ipv6InterfaceTable_set_values;
@@ -164,7 +158,6 @@ NETSNMP_STATIC_INLINE int
                 _ipv6InterfaceTable_undo_column(ipv6InterfaceTable_rowreq_ctx * rowreq_ctx,
                                                 netsnmp_variable_list *
                                                 var, int column);
-#endif
 
 /**
  * @internal
@@ -199,7 +192,7 @@ _ipv6InterfaceTable_initialize_interface(ipv6InterfaceTable_registration *
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = IPV6INTERFACETABLE_MIN_COL;
     tbl_info->max_column = IPV6INTERFACETABLE_MAX_COL;
@@ -239,7 +232,6 @@ _ipv6InterfaceTable_initialize_interface(ipv6InterfaceTable_registration *
         _mfd_ipv6InterfaceTable_post_request;
 
 
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
     /*
      * REQUIRED wrappers for set request handling
      */
@@ -258,7 +250,6 @@ _ipv6InterfaceTable_initialize_interface(ipv6InterfaceTable_registration *
     access_multiplexer->undo_commit = _mfd_ipv6InterfaceTable_undo_commit;
     access_multiplexer->irreversible_commit =
         _mfd_ipv6InterfaceTable_irreversible_commit;
-#endif
 
     /*************************************************
      *
@@ -272,11 +263,8 @@ _ipv6InterfaceTable_initialize_interface(ipv6InterfaceTable_registration *
         netsnmp_handler_registration_create("ipv6InterfaceTable", handler,
                                             ipv6InterfaceTable_oid,
                                             ipv6InterfaceTable_oid_size,
-                                            HANDLER_CAN_BABY_STEP
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
-                                          | HANDLER_CAN_RWRITE
-#endif
-                                          );
+                                            HANDLER_CAN_BABY_STEP |
+                                            HANDLER_CAN_RWRITE);
     if (NULL == reginfo) {
         snmp_log(LOG_ERR, "error registering table ipv6InterfaceTable\n");
         return;
@@ -289,12 +277,6 @@ _ipv6InterfaceTable_initialize_interface(ipv6InterfaceTable_registration *
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -302,6 +284,11 @@ _ipv6InterfaceTable_initialize_interface(ipv6InterfaceTable_registration *
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -317,7 +304,6 @@ _ipv6InterfaceTable_initialize_interface(ipv6InterfaceTable_registration *
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -350,7 +336,7 @@ _ipv6InterfaceTable_initialize_interface(ipv6InterfaceTable_registration *
      */
     {
         oid             lc_oid[] = { IPV6INTERFACETABLELASTCHANGE_OID };
-        netsnmp_register_watched_scalar2(netsnmp_create_handler_registration
+        netsnmp_register_watched_scalar(netsnmp_create_handler_registration
                                         ("ipv6TableLastChanged", NULL,
                                          lc_oid, OID_LENGTH(lc_oid),
                                          HANDLER_CAN_RONLY),
@@ -675,7 +661,6 @@ _mfd_ipv6InterfaceTable_get_values(netsnmp_mib_handler *handler,
 }                               /* _mfd_ipv6InterfaceTable_get_values */
 
 
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
 /***********************************************************************
  *
  * SET processing
@@ -1307,7 +1292,6 @@ _mfd_ipv6InterfaceTable_irreversible_commit(netsnmp_mib_handler *handler, netsnm
 
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_ipv6InterfaceTable_irreversible_commit */
-#endif
 
 /***********************************************************************
  *
@@ -1357,7 +1341,7 @@ _ipv6InterfaceTable_container_init(ipv6InterfaceTable_interface_ctx *
                  "ipv6InterfaceTable_container_init\n");
         return;
     }
-    if_ctx->container->container_name = strdup("ipv6InterfaceTable");
+
 }                               /* _ipv6InterfaceTable_container_init */
 
 /**
diff --git a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.h b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.h
index 4cb8ff5..1e91466 100644
--- a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.h
+++ b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: ipv6InterfaceTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable.h b/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable.h
deleted file mode 100644
index 779bd75..0000000
--- a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
- * module to include the modules
- */
-
-config_require(ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable)
diff --git a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.c b/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.c
deleted file mode 100644
index f794093..0000000
--- a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.c
+++ /dev/null
@@ -1,1009 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $ 
- *
- * $Id:ipv6ScopeZoneIndexTable.c 14170 2007-04-29 00:12:32Z varun_c$
- */
-/** \page MFD helper for ipv6ScopeZoneIndexTable
- *
- * \section intro Introduction
- * Introductory text.
- *
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "ipv6ScopeZoneIndexTable.h"
-
-#include <net-snmp/agent/mib_modules.h>
-
-#include "ipv6ScopeZoneIndexTable_interface.h"
-
-const oid       ipv6ScopeZoneIndexTable_oid[] =
-    { IPV6SCOPEZONEINDEXTABLE_OID };
-const int       ipv6ScopeZoneIndexTable_oid_size =
-OID_LENGTH(ipv6ScopeZoneIndexTable_oid);
-
-ipv6ScopeZoneIndexTable_registration ipv6ScopeZoneIndexTable_user_context;
-static ipv6ScopeZoneIndexTable_registration *ipv6ScopeZoneIndexTable_user_context_p;
-
-void            initialize_table_ipv6ScopeZoneIndexTable(void);
-void            shutdown_table_ipv6ScopeZoneIndexTable(void);
-
-
-/**
- * Initializes the ipv6ScopeZoneIndexTable module
- */
-void
-init_ipv6ScopeZoneIndexTable(void)
-{
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:init_ipv6ScopeZoneIndexTable", "called\n"));
-
-    /*
-     * TODO:300:o: Perform ipv6ScopeZoneIndexTable one-time module initialization.
-     */
-
-    /*
-     * here we initialize all the tables we're planning on supporting
-     */
-    if (should_init("ipv6ScopeZoneIndexTable"))
-        initialize_table_ipv6ScopeZoneIndexTable();
-
-}                               /* init_ipv6ScopeZoneIndexTable */
-
-/**
- * Shut-down the ipv6ScopeZoneIndexTable module (agent is exiting)
- */
-void
-shutdown_ipv6ScopeZoneIndexTable(void)
-{
-    if (should_init("ipv6ScopeZoneIndexTable"))
-        shutdown_table_ipv6ScopeZoneIndexTable();
-
-}
-
-/**
- * Initialize the table ipv6ScopeZoneIndexTable 
- *    (Define its contents and how it's structured)
- */
-void
-initialize_table_ipv6ScopeZoneIndexTable(void)
-{
-    u_long          flags;
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:initialize_table_ipv6ScopeZoneIndexTable", "called\n"));
-
-    /*
-     * TODO:301:o: Perform ipv6ScopeZoneIndexTable one-time table initialization.
-     */
-
-    /*
-     * TODO:302:o: |->Initialize ipv6ScopeZoneIndexTable user context
-     * if you'd like to pass in a pointer to some data for this
-     * table, allocate or set it up here.
-     */
-    /*
-     * a netsnmp_data_list is a simple way to store void pointers. A simple
-     * string token is used to add, find or remove pointers.
-     */
-    ipv6ScopeZoneIndexTable_user_context_p =
-        netsnmp_create_data_list("ipv6ScopeZoneIndexTable", NULL, NULL);
-
-    /*
-     * No support for any flags yet, but in the future you would
-     * set any flags here.
-     */
-    flags = 0;
-
-    /*
-     * call interface initialization code
-     */
-    _ipv6ScopeZoneIndexTable_initialize_interface
-	(ipv6ScopeZoneIndexTable_user_context_p, flags);
-}                               /* initialize_table_ipv6ScopeZoneIndexTable */
-
-/**
- * Shutdown the table ipv6ScopeZoneIndexTable 
- */
-void
-shutdown_table_ipv6ScopeZoneIndexTable(void)
-{
-    /*
-     * call interface shutdown code
-     */
-    _ipv6ScopeZoneIndexTable_shutdown_interface
-        (ipv6ScopeZoneIndexTable_user_context_p);
-    netsnmp_free_all_list_data(ipv6ScopeZoneIndexTable_user_context_p);
-    ipv6ScopeZoneIndexTable_user_context_p = NULL;
-}
-
-/**
- * extra context initialization (eg default values)
- *
- * @param rowreq_ctx    : row request context
- * @param user_init_ctx : void pointer for user (parameter to rowreq_ctx_allocate)
- *
- * @retval MFD_SUCCESS  : no errors
- * @retval MFD_ERROR    : error (context allocate will fail)
- */
-int
-ipv6ScopeZoneIndexTable_rowreq_ctx_init(ipv6ScopeZoneIndexTable_rowreq_ctx
-                                        * rowreq_ctx, void *user_init_ctx)
-{
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_rowreq_ctx_init", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:210:o: |-> Perform extra ipv6ScopeZoneIndexTable rowreq initialization. (eg DEFVALS)
-     */
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexTable_rowreq_ctx_init */
-
-/**
- * extra context cleanup
- *
- */
-void
-ipv6ScopeZoneIndexTable_rowreq_ctx_cleanup
-    (ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_rowreq_ctx_cleanup", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:211:o: |-> Perform extra ipv6ScopeZoneIndexTable rowreq cleanup.
-     */
-    netsnmp_access_scopezone_entry_free(rowreq_ctx->data);
-    rowreq_ctx->data = NULL;
-}                               /* ipv6ScopeZoneIndexTable_rowreq_ctx_cleanup */
-
-/**
- * pre-request callback
- *
- *
- * @retval MFD_SUCCESS              : success.
- * @retval MFD_ERROR                : other error
- */
-int
-ipv6ScopeZoneIndexTable_pre_request(ipv6ScopeZoneIndexTable_registration *
-                                    user_context)
-{
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_pre_request", "called\n"));
-
-    /*
-     * TODO:510:o: Perform ipv6ScopeZoneIndexTable pre-request actions.
-     */
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexTable_pre_request */
-
-/**
- * post-request callback
- *
- * Note:
- *   New rows have been inserted into the container, and
- *   deleted rows have been removed from the container and
- *   released.
- *
- * @param user_context
- * @param rc : MFD_SUCCESS if all requests succeeded
- *
- * @retval MFD_SUCCESS : success.
- * @retval MFD_ERROR   : other error (ignored)
- */
-int
-ipv6ScopeZoneIndexTable_post_request(ipv6ScopeZoneIndexTable_registration *
-                                     user_context, int rc)
-{
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_post_request", "called\n"));
-
-    /*
-     * TODO:511:o: Perform ipv6ScopeZoneIndexTable post-request actions.
-     */
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexTable_post_request */
-
-/*
- * ipv6ScopeZoneIndexTable_allocate_data
- *
- * Purpose: create new ipv6ScopeZoneIndexTable_data.
- */
-ipv6ScopeZoneIndexTable_data *
-ipv6ScopeZoneIndexTable_allocate_data(void)
-{
-    /*
-     * TODO:201:r: |-> allocate memory for the ipv6ScopeZoneIndexTable data context.
-     */
-    ipv6ScopeZoneIndexTable_data *rtn = netsnmp_access_scopezone_entry_create();
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_allocate_data", "called\n"));
-
-    if (NULL == rtn) {
-        snmp_log(LOG_ERR, "unable to malloc memory for new "
-                 "ipv6ScopeZoneIndexTable_data.\n");
-    }
-
-    return rtn;
-}                               /* ipv6ScopeZoneIndexTable_allocate_data */
-
-/*
- * ipv6ScopeZoneIndexTable_release_data
- *
- * Purpose: release ipv6ScopeZoneIndexTable data.
- */
-void
-ipv6ScopeZoneIndexTable_release_data(ipv6ScopeZoneIndexTable_data * data)
-{
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_release_data", "called\n"));
-
-    /*
-     * TODO:202:r: |-> release memory for the ipv6ScopeZoneIndexTable data context.
-     */
-    netsnmp_access_scopezone_entry_free(data);
-}                               /* ipv6ScopeZoneIndexTable_release_data */
-
-/** @defgroup data_get data_get: Routines to get data
- *
- * TODO:230:M: Implement ipv6ScopeZoneIndexTable get routines.
- * TODO:240:M: Implement ipv6ScopeZoneIndexTable mapping routines (if any).
- *
- * These routine are used to get the value for individual objects. The
- * row context is passed, along with a pointer to the memory where the
- * value should be copied.
- *
- * @{
- */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipv6ScopeZoneIndexTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * IP-MIB::ipv6ScopeZoneIndexTable is subid 36 of ip.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.4.36, length: 8
- */
-
-/*
- * ---------------------------------------------------------------------
- * * TODO:200:r: Implement ipv6ScopeZoneIndexTable data context functions.
- */
-
-
-/**
- * set mib index(es)
- *
- * @param tbl_idx mib index structure
- * @param ipv6ScopeZoneIndexIfIndex_val
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- *
- * @remark
- *  This convenience function is useful for setting all the MIB index
- *  components with a single function call. It is assume that the C values
- *  have already been mapped from their native/rawformat to the MIB format.
- */
-int
-ipv6ScopeZoneIndexTable_indexes_set_tbl_idx
-    (ipv6ScopeZoneIndexTable_mib_index * tbl_idx,
-     long ipv6ScopeZoneIndexIfIndex_val)
-{
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_indexes_set_tbl_idx", "called\n"));
-
-    /*
-     * ipv6ScopeZoneIndexIfIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H
-     */
-    tbl_idx->ipv6ScopeZoneIndexIfIndex = ipv6ScopeZoneIndexIfIndex_val;
-
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexTable_indexes_set_tbl_idx */
-
-/**
- * @internal
- * set row context indexes
- *
- * @param reqreq_ctx the row context that needs updated indexes
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- *
- * @remark
- *  This function sets the mib indexs, then updates the oid indexs
- *  from the mib index.
- */
-int
-ipv6ScopeZoneIndexTable_indexes_set(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                    rowreq_ctx,
-                                    long ipv6ScopeZoneIndexIfIndex_val)
-{
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_indexes_set", "called\n"));
-
-    if (MFD_SUCCESS !=
-        ipv6ScopeZoneIndexTable_indexes_set_tbl_idx(&rowreq_ctx->tbl_idx,
-                                                    ipv6ScopeZoneIndexIfIndex_val))
-        return MFD_ERROR;
-
-    /*
-     * convert mib index to oid index
-     */
-    rowreq_ctx->oid_idx.len = sizeof(rowreq_ctx->oid_tmp) / sizeof(oid);
-    if (0 != ipv6ScopeZoneIndexTable_index_to_oid(&rowreq_ctx->oid_idx,
-                                                  &rowreq_ctx->tbl_idx)) {
-        return MFD_ERROR;
-    }
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexTable_indexes_set */
-
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipv6ScopeZoneIndexEntry.ipv6ScopeZoneIndexLinkLocal
- * ipv6ScopeZoneIndexLinkLocal is subid 2 of ipv6ScopeZoneIndexEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.36.1.2
- * Description:
-The zone index for the link-local scope on this interface.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   1
- *   settable   0
- *   hint: d
- *
- *
- * Its syntax is InetZoneIndex (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipv6ScopeZoneIndexLinkLocal data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipv6ScopeZoneIndexLinkLocal_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipv6ScopeZoneIndexLinkLocal_get(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                rowreq_ctx,
-                                u_long *
-                                ipv6ScopeZoneIndexLinkLocal_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipv6ScopeZoneIndexLinkLocal_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexLinkLocal_get", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipv6ScopeZoneIndexLinkLocal data.
-     * copy (* ipv6ScopeZoneIndexLinkLocal_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipv6ScopeZoneIndexLinkLocal_val_ptr) =
-        rowreq_ctx->data->scopezone_linklocal;
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexLinkLocal_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipv6ScopeZoneIndexEntry.ipv6ScopeZoneIndex3
- * ipv6ScopeZoneIndex3 is subid 3 of ipv6ScopeZoneIndexEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.36.1.3
- * Description:
-The zone index for scope 3 on this interface.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   1
- *   settable   0
- *   hint: d
- *
- *
- * Its syntax is InetZoneIndex (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipv6ScopeZoneIndex3 data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipv6ScopeZoneIndex3_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipv6ScopeZoneIndex3_get(ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipv6ScopeZoneIndex3_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipv6ScopeZoneIndex3_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndex3_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipv6ScopeZoneIndex3 data.
-     * copy (* ipv6ScopeZoneIndex3_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipv6ScopeZoneIndex3_val_ptr) = 0;
-
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndex3_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipv6ScopeZoneIndexEntry.ipv6ScopeZoneIndexAdminLocal
- * ipv6ScopeZoneIndexAdminLocal is subid 4 of ipv6ScopeZoneIndexEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.36.1.4
- * Description:
-The zone index for the admin-local scope on this interface.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   1
- *   settable   0
- *   hint: d
- *
- *
- * Its syntax is InetZoneIndex (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipv6ScopeZoneIndexAdminLocal data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipv6ScopeZoneIndexAdminLocal_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipv6ScopeZoneIndexAdminLocal_get(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                 rowreq_ctx,
-                                 u_long *
-                                 ipv6ScopeZoneIndexAdminLocal_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipv6ScopeZoneIndexAdminLocal_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexAdminLocal_get", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipv6ScopeZoneIndexAdminLocal data.
-     * copy (* ipv6ScopeZoneIndexAdminLocal_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipv6ScopeZoneIndexAdminLocal_val_ptr) = 0;
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexAdminLocal_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipv6ScopeZoneIndexEntry.ipv6ScopeZoneIndexSiteLocal
- * ipv6ScopeZoneIndexSiteLocal is subid 5 of ipv6ScopeZoneIndexEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.36.1.5
- * Description:
-The zone index for the site-local scope on this interface.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   1
- *   settable   0
- *   hint: d
- *
- *
- * Its syntax is InetZoneIndex (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipv6ScopeZoneIndexSiteLocal data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipv6ScopeZoneIndexSiteLocal_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipv6ScopeZoneIndexSiteLocal_get(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                rowreq_ctx,
-                                u_long *
-                                ipv6ScopeZoneIndexSiteLocal_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipv6ScopeZoneIndexSiteLocal_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexSiteLocal_get", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipv6ScopeZoneIndexSiteLocal data.
-     * copy (* ipv6ScopeZoneIndexSiteLocal_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipv6ScopeZoneIndexSiteLocal_val_ptr) = 0;
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexSiteLocal_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipv6ScopeZoneIndexEntry.ipv6ScopeZoneIndex6
- * ipv6ScopeZoneIndex6 is subid 6 of ipv6ScopeZoneIndexEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.36.1.6
- * Description:
-The zone index for scope 6 on this interface.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   1
- *   settable   0
- *   hint: d
- *
- *
- * Its syntax is InetZoneIndex (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipv6ScopeZoneIndex6 data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipv6ScopeZoneIndex6_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipv6ScopeZoneIndex6_get(ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipv6ScopeZoneIndex6_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipv6ScopeZoneIndex6_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndex6_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipv6ScopeZoneIndex6 data.
-     * copy (* ipv6ScopeZoneIndex6_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipv6ScopeZoneIndex6_val_ptr) = 0;
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndex6_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipv6ScopeZoneIndexEntry.ipv6ScopeZoneIndex7
- * ipv6ScopeZoneIndex7 is subid 7 of ipv6ScopeZoneIndexEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.36.1.7
- * Description:
-The zone index for scope 7 on this interface.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   1
- *   settable   0
- *   hint: d
- *
- *
- * Its syntax is InetZoneIndex (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipv6ScopeZoneIndex7 data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipv6ScopeZoneIndex7_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipv6ScopeZoneIndex7_get(ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipv6ScopeZoneIndex7_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipv6ScopeZoneIndex7_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndex7_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipv6ScopeZoneIndex7 data.
-     * copy (* ipv6ScopeZoneIndex7_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipv6ScopeZoneIndex7_val_ptr) = 0;
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndex7_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipv6ScopeZoneIndexEntry.ipv6ScopeZoneIndexOrganizationLocal
- * ipv6ScopeZoneIndexOrganizationLocal is subid 8 of ipv6ScopeZoneIndexEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.36.1.8
- * Description:
-The zone index for the organization-local scope on this
-            interface.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   1
- *   settable   0
- *   hint: d
- *
- *
- * Its syntax is InetZoneIndex (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipv6ScopeZoneIndexOrganizationLocal data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipv6ScopeZoneIndexOrganizationLocal_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipv6ScopeZoneIndexOrganizationLocal_get(ipv6ScopeZoneIndexTable_rowreq_ctx
-                                        * rowreq_ctx,
-                                        u_long *
-                                        ipv6ScopeZoneIndexOrganizationLocal_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipv6ScopeZoneIndexOrganizationLocal_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexOrganizationLocal_get", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipv6ScopeZoneIndexOrganizationLocal data.
-     * copy (* ipv6ScopeZoneIndexOrganizationLocal_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipv6ScopeZoneIndexOrganizationLocal_val_ptr) = 0;
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexOrganizationLocal_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipv6ScopeZoneIndexEntry.ipv6ScopeZoneIndex9
- * ipv6ScopeZoneIndex9 is subid 9 of ipv6ScopeZoneIndexEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.36.1.9
- * Description:
-The zone index for scope 9 on this interface.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   1
- *   settable   0
- *   hint: d
- *
- *
- * Its syntax is InetZoneIndex (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipv6ScopeZoneIndex9 data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipv6ScopeZoneIndex9_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipv6ScopeZoneIndex9_get(ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipv6ScopeZoneIndex9_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipv6ScopeZoneIndex9_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndex9_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipv6ScopeZoneIndex9 data.
-     * copy (* ipv6ScopeZoneIndex9_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipv6ScopeZoneIndex9_val_ptr) = 0;
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndex9_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipv6ScopeZoneIndexEntry.ipv6ScopeZoneIndexA
- * ipv6ScopeZoneIndexA is subid 10 of ipv6ScopeZoneIndexEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.36.1.10
- * Description:
-The zone index for scope A on this interface.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   1
- *   settable   0
- *   hint: d
- *
- *
- * Its syntax is InetZoneIndex (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipv6ScopeZoneIndexA data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipv6ScopeZoneIndexA_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipv6ScopeZoneIndexA_get(ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipv6ScopeZoneIndexA_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipv6ScopeZoneIndexA_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexA_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipv6ScopeZoneIndexA data.
-     * copy (* ipv6ScopeZoneIndexA_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipv6ScopeZoneIndexA_val_ptr) = 0;
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexA_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipv6ScopeZoneIndexEntry.ipv6ScopeZoneIndexB
- * ipv6ScopeZoneIndexB is subid 11 of ipv6ScopeZoneIndexEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.36.1.11
- * Description:
-The zone index for scope B on this interface.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   1
- *   settable   0
- *   hint: d
- *
- *
- * Its syntax is InetZoneIndex (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipv6ScopeZoneIndexB data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipv6ScopeZoneIndexB_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipv6ScopeZoneIndexB_get(ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipv6ScopeZoneIndexB_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipv6ScopeZoneIndexB_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexB_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipv6ScopeZoneIndexB data.
-     * copy (* ipv6ScopeZoneIndexB_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipv6ScopeZoneIndexB_val_ptr) = 0;
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexB_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipv6ScopeZoneIndexEntry.ipv6ScopeZoneIndexC
- * ipv6ScopeZoneIndexC is subid 12 of ipv6ScopeZoneIndexEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.36.1.12
- * Description:
-The zone index for scope C on this interface.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   1
- *   settable   0
- *   hint: d
- *
- *
- * Its syntax is InetZoneIndex (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipv6ScopeZoneIndexC data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipv6ScopeZoneIndexC_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipv6ScopeZoneIndexC_get(ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipv6ScopeZoneIndexC_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipv6ScopeZoneIndexC_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexC_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipv6ScopeZoneIndexC data.
-     * copy (* ipv6ScopeZoneIndexC_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipv6ScopeZoneIndexC_val_ptr) = 0;
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexC_get */
-
-/*---------------------------------------------------------------------
- * IP-MIB::ipv6ScopeZoneIndexEntry.ipv6ScopeZoneIndexD
- * ipv6ScopeZoneIndexD is subid 13 of ipv6ScopeZoneIndexEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.4.36.1.13
- * Description:
-The zone index for scope D on this interface.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   1
- *   settable   0
- *   hint: d
- *
- *
- * Its syntax is InetZoneIndex (based on perltype UNSIGNED32)
- * The net-snmp type is ASN_UNSIGNED. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the ipv6ScopeZoneIndexD data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param ipv6ScopeZoneIndexD_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-ipv6ScopeZoneIndexD_get(ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx,
-                        u_long * ipv6ScopeZoneIndexD_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != ipv6ScopeZoneIndexD_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexD_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the ipv6ScopeZoneIndexD data.
-     * copy (* ipv6ScopeZoneIndexD_val_ptr ) from rowreq_ctx->data
-     */
-    (*ipv6ScopeZoneIndexD_val_ptr) = 0;
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexD_get */
-
-
-/** @{ */
diff --git a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h b/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h
deleted file mode 100644
index 2974fee..0000000
--- a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.h
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $
- *
- * $Id:ipv6ScopeZoneIndexTable.h 14170 2007-04-29 00:12:32Z varun_c$
- */
-#ifndef IPV6SCOPEZONEINDEXTABLE_H
-#define IPV6SCOPEZONEINDEXTABLE_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-/** @addtogroup misc misc: Miscellaneous routines
- *
- * @{
- */
-#include <net-snmp/library/asn1.h>
-#include <net-snmp/data_access/scopezone.h>
-    /*
-     * other required module components 
-     */
-    /* *INDENT-OFF*  */
-config_require(ip-mib/data_access/ipv6scopezone)
-config_require(ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface)
-config_require(ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access)
-    /* *INDENT-ON*  */
-
-    /*
-     * OID and column number definitions for ipv6ScopeZoneIndexTable 
-     */
-#include "ipv6ScopeZoneIndexTable_oids.h"
-
-    /*
-     * enum definions 
-     */
-#include "ipv6ScopeZoneIndexTable_enums.h"
-
-    /*
-     *********************************************************************
-     * function declarations
-     */
-    void            init_ipv6ScopeZoneIndexTable(void);
-    void            shutdown_ipv6ScopeZoneIndexTable(void);
-
-    /*
-     *********************************************************************
-     * Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipv6ScopeZoneIndexTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * IP-MIB::ipv6ScopeZoneIndexTable is subid 36 of ip.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.4.36, length: 8
-     */
-    /*
-     *********************************************************************
-     * When you register your mib, you get to provide a generic
-     * pointer that will be passed back to you for most of the
-     * functions calls.
-     *
-     * TODO:100:r: Review all context structures
-     */
-    /*
-     * TODO:101:o: |-> Review ipv6ScopeZoneIndexTable registration context.
-     */
-    typedef netsnmp_data_list ipv6ScopeZoneIndexTable_registration;
-/**********************************************************************/
-    /*
-     * TODO:110:r: |-> Review ipv6ScopeZoneTable data context structure.
-     * This structure is used to represent the data for ipv6ScopeZoneTable.
-     */
-    typedef netsnmp_v6scopezone_entry ipv6ScopeZoneIndexTable_data;
-
-
-    /*
-     * TODO:120:r: |-> Review ipv6ScopeZoneIndexTable mib index.
-     * This structure is used to represent the index for ipv6ScopeZoneIndexTable.
-     */
-    typedef struct ipv6ScopeZoneIndexTable_mib_index_s {
-
-        /*
-         * ipv6ScopeZoneIndexIfIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H
-         */
-        long            ipv6ScopeZoneIndexIfIndex;
-
-
-    } ipv6ScopeZoneIndexTable_mib_index;
-
-    /*
-     * TODO:121:r: |   |-> Review ipv6ScopeZoneIndexTable max index length.
-     * If you KNOW that your indexes will never exceed a certain
-     * length, update this macro to that length.
-     */
-#define MAX_ipv6ScopeZoneIndexTable_IDX_LEN     1
-
-    /*
-     *********************************************************************
-     * TODO:130:o: |-> Review ipv6ScopeZoneIndexTable Row request (rowreq) context.
-     * When your functions are called, you will be passed a
-     * ipv6ScopeZoneIndexTable_rowreq_ctx pointer.
-     */
-    typedef struct ipv6ScopeZoneIndexTable_rowreq_ctx_s {
-
-    /** this must be first for container compare to work */
-        netsnmp_index   oid_idx;
-        oid             oid_tmp[MAX_ipv6ScopeZoneIndexTable_IDX_LEN];
-
-        ipv6ScopeZoneIndexTable_mib_index tbl_idx;
-
-        ipv6ScopeZoneIndexTable_data *data;
-
-        /*
-         * flags per row. Currently, the first (lower) 8 bits are reserved
-         * for the user. See mfd.h for other flags.
-         */
-        u_int           rowreq_flags;
-
-        /*
-         * TODO:131:o: |   |-> Add useful data to ipv6ScopeZoneIndexTable rowreq context.
-         */
-
-        /*
-         * storage for future expansion
-         */
-        netsnmp_data_list *ipv6ScopeZoneIndexTable_data_list;
-
-    } ipv6ScopeZoneIndexTable_rowreq_ctx;
-
-    typedef struct ipv6ScopeZoneIndexTable_ref_rowreq_ctx_s {
-        ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx;
-    } ipv6ScopeZoneIndexTable_ref_rowreq_ctx;
-
-    /*
-     *********************************************************************
-     * function prototypes
-     */
-    int            
-        ipv6ScopeZoneIndexTable_pre_request
-        (ipv6ScopeZoneIndexTable_registration * user_context);
-    int            
-        ipv6ScopeZoneIndexTable_post_request
-        (ipv6ScopeZoneIndexTable_registration * user_context, int rc);
-
-    int            
-        ipv6ScopeZoneIndexTable_rowreq_ctx_init
-        (ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx,
-         void *user_init_ctx);
-    void           
-        ipv6ScopeZoneIndexTable_rowreq_ctx_cleanup
-        (ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx);
-
-
-    ipv6ScopeZoneIndexTable_rowreq_ctx
-        *ipv6ScopeZoneIndexTable_row_find_by_mib_index
-        (ipv6ScopeZoneIndexTable_mib_index * mib_idx);
-
-    ipv6ScopeZoneIndexTable_data *
-       ipv6ScopeZoneIndexTable_allocate_data(void);
-
-    void
-       ipv6ScopeZoneIndexTable_release_data(ipv6ScopeZoneIndexTable_data * data);
-
-    extern const oid      ipv6ScopeZoneIndexTable_oid[];
-    extern const int      ipv6ScopeZoneIndexTable_oid_size;
-
-
-#include "ipv6ScopeZoneIndexTable_interface.h"
-#include "ipv6ScopeZoneIndexTable_data_access.h"
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipv6ScopeZoneIndexTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * IP-MIB::ipv6ScopeZoneIndexTable is subid 36 of ip.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.4.36, length: 8
-     */
-    /*
-     * indexes
-     */
-
-    int
-        ipv6ScopeZoneIndexLinkLocal_get(ipv6ScopeZoneIndexTable_rowreq_ctx
-                                        * rowreq_ctx,
-                                        u_long *
-                                        ipv6ScopeZoneIndexLinkLocal_val_ptr);
-    int
-        ipv6ScopeZoneIndex3_get(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                rowreq_ctx,
-                                u_long * ipv6ScopeZoneIndex3_val_ptr);
-    int
-        ipv6ScopeZoneIndexAdminLocal_get(ipv6ScopeZoneIndexTable_rowreq_ctx
-                                         * rowreq_ctx,
-                                         u_long *
-                                         ipv6ScopeZoneIndexAdminLocal_val_ptr);
-    int
-        ipv6ScopeZoneIndexSiteLocal_get(ipv6ScopeZoneIndexTable_rowreq_ctx
-                                        * rowreq_ctx,
-                                        u_long *
-                                        ipv6ScopeZoneIndexSiteLocal_val_ptr);
-    int
-        ipv6ScopeZoneIndex6_get(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                rowreq_ctx,
-                                u_long * ipv6ScopeZoneIndex6_val_ptr);
-    int
-        ipv6ScopeZoneIndex7_get(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                rowreq_ctx,
-                                u_long * ipv6ScopeZoneIndex7_val_ptr);
-    int
-        ipv6ScopeZoneIndexOrganizationLocal_get
-        (ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx,
-         u_long * ipv6ScopeZoneIndexOrganizationLocal_val_ptr);
-    int
-        ipv6ScopeZoneIndex9_get(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                rowreq_ctx,
-                                u_long * ipv6ScopeZoneIndex9_val_ptr);
-    int
-        ipv6ScopeZoneIndexA_get(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                rowreq_ctx,
-                                u_long * ipv6ScopeZoneIndexA_val_ptr);
-    int
-        ipv6ScopeZoneIndexB_get(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                rowreq_ctx,
-                                u_long * ipv6ScopeZoneIndexB_val_ptr);
-    int
-        ipv6ScopeZoneIndexC_get(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                rowreq_ctx,
-                                u_long * ipv6ScopeZoneIndexC_val_ptr);
-    int
-        ipv6ScopeZoneIndexD_get(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                rowreq_ctx,
-                                u_long * ipv6ScopeZoneIndexD_val_ptr);
-
-
-    int
-        ipv6ScopeZoneIndexTable_indexes_set_tbl_idx
-        (ipv6ScopeZoneIndexTable_mib_index * tbl_idx,
-         long ipv6ScopeZoneIndexIfIndex_val);
-    int
-        ipv6ScopeZoneIndexTable_indexes_set
-        (ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx,
-         long ipv6ScopeZoneIndexIfIndex_val);
-
-    /*
-     * DUMMY markers, ignore
-     *
-     * TODO:099:x: *************************************************************
-     * TODO:199:x: *************************************************************
-     * TODO:299:x: *************************************************************
-     * TODO:399:x: *************************************************************
-     * TODO:499:x: *************************************************************
-     */
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPV6SCOPEZONEINDEXTABLE_H */
-/** @} */
diff --git a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.c b/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.c
deleted file mode 100644
index 0025dd3..0000000
--- a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $ 
- *
- * $Id:ipv6ScopeZoneIndexTable_data_access.c 14170 2007-04-29 00:12:32Z varun_c$
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "ipv6ScopeZoneIndexTable.h"
-
-
-#include "ipv6ScopeZoneIndexTable_data_access.h"
-
-/** @ingroup interface
- * @addtogroup data_access data_access: Routines to access data
- *
- * These routines are used to locate the data used to satisfy
- * requests.
- * 
- * @{
- */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipv6ScopeZoneIndexTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * IP-MIB::ipv6ScopeZoneIndexTable is subid 36 of ip.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.4.36, length: 8
- */
-
-/**
- * initialization for ipv6ScopeZoneIndexTable data access
- *
- * This function is called during startup to allow you to
- * allocate any resources you need for the data table.
- *
- * @param ipv6ScopeZoneIndexTable_reg
- *        Pointer to ipv6ScopeZoneIndexTable_registration
- *
- * @retval MFD_SUCCESS : success.
- * @retval MFD_ERROR   : unrecoverable error.
- */
-int
-ipv6ScopeZoneIndexTable_init_data(ipv6ScopeZoneIndexTable_registration *
-                                  ipv6ScopeZoneIndexTable_reg)
-{
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_init_data", "called\n"));
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexTable_init_data */
-
-/**
- * container overview
- *
- */
-
-/**
- * container initialization
- *
- * @param container_ptr_ptr A pointer to a container pointer. If you
- *        create a custom container, use this parameter to return it
- *        to the MFD helper. If set to NULL, the MFD helper will
- *        allocate a container for you.
- *
- *  This function is called at startup to allow you to customize certain
- *  aspects of the access method. For the most part, it is for advanced
- *  users. The default code should suffice for most cases. If no custom
- *  container is allocated, the MFD code will create one for your.
- *
- * @remark
- *  This would also be a good place to do any initialization needed
- *  for you data source. For example, opening a connection to another
- *  process that will supply the data, opening a database, etc.
- */
-void
-ipv6ScopeZoneIndexTable_container_init(netsnmp_container **
-                                       container_ptr_ptr,
-                                       netsnmp_cache * cache)
-{
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_container_init", "called\n"));
-
-    if (NULL == container_ptr_ptr) {
-        snmp_log(LOG_ERR,
-                 "bad container param to ipv6ScopeZoneIndexTable_container_init\n");
-        return;
-    }
-
-    /*
-     * For advanced users, you can use a custom container. If you
-     * do not create one, one will be created for you.
-     */
-    *container_ptr_ptr = NULL;
-    if (NULL == cache) {
-        snmp_log(LOG_ERR,
-                 "bad cache param to ipv6ScopeZoneIndexTable_container_init\n");
-        return;
-    }
-
-    /*
-     * TODO:345:A: Set up ipv6ScopeZoneIndexTable cache properties.
-     *
-     * Also for advanced users, you can set parameters for the
-     * cache. Do not change the magic pointer, as it is used
-     * by the MFD helper. To completely disable caching, set
-     * cache->enabled to 0.
-     */
-    cache->timeout = 60; /* seconds */
-
-
-}                               /* ipv6ScopeZoneIndexTable_container_init */
-
-/**
- * container shutdown
- *
- * @param container_ptr A pointer to the container.
- *
- *  This function is called at shutdown to allow you to customize certain
- *  aspects of the access method. For the most part, it is for advanced
- *  users. The default code should suffice for most cases.
- *
- *  This function is called before ipv6ScopeZoneIndexTable_container_free().
- *
- * @remark
- *  This would also be a good place to do any cleanup needed
- *  for you data source. For example, closing a connection to another
- *  process that supplied the data, closing a database, etc.
- */
-void
-ipv6ScopeZoneIndexTable_container_shutdown(netsnmp_container *container_ptr)
-{
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_container_shutdown", "called\n"));
-
-    if (NULL == container_ptr) {
-        snmp_log(LOG_ERR,
-                 "bad params to ipv6ScopeZoneIndexTable_container_shutdown\n");
-        return;
-    }
-
-}                               /* ipv6ScopeZoneIndexTable_container_shutdown */
-
-/**
- * check entry for update
- *
- */
-static void
-_snarf_zoneindex_entry(netsnmp_v6scopezone_entry *scopezone_entry,
-                       netsnmp_container *container)
-{
-    ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx;
-
-    DEBUGTRACE;
-    netsnmp_assert(NULL != scopezone_entry);
-    netsnmp_assert(NULL != container);
-    rowreq_ctx = ipv6ScopeZoneIndexTable_allocate_rowreq_ctx(scopezone_entry,NULL);
-    if ((NULL != rowreq_ctx) &&
-         (MFD_SUCCESS == ipv6ScopeZoneIndexTable_indexes_set
-         (rowreq_ctx, rowreq_ctx->data->index))) {
-        CONTAINER_INSERT(container, rowreq_ctx);
-    } else {
-       if (rowreq_ctx) {
-            snmp_log(LOG_ERR, "error setting index while loading "
-                     "ipv6ScopeZoneIndexTable cache.\n");
-            ipv6ScopeZoneIndexTable_release_rowreq_ctx(rowreq_ctx);
-        } else
-            netsnmp_access_scopezone_entry_free(scopezone_entry);
-    }
-      
-}
-
-/**
- * load initial data
- *
- * TODO:350:M: Implement ipv6ScopeZoneIndexTable data load
- *
- * @param container container to which items should be inserted
- *
- * @retval MFD_SUCCESS              : success.
- * @retval MFD_RESOURCE_UNAVAILABLE : Can't access data source
- * @retval MFD_ERROR                : other error.
- *
- *  This function is called to load the index(es) (and data, optionally)
- *  for the every row in the data set.
- *
- * @remark
- *  While loading the data, the only important thing is the indexes.
- *  If access to your data is cheap/fast (e.g. you have a pointer to a
- *  structure in memory), it would make sense to update the data here.
- *  If, however, the accessing the data invovles more work (e.g. parsing
- *  some other existing data, or peforming calculations to derive the data),
- *  then you can limit yourself to setting the indexes and saving any
- *  information you will need later. Then use the saved information in
- *  ipv6ScopeZoneIndexTable_row_prep() for populating data.
- *
- * @note
- *  If you need consistency between rows (like you want statistics
- *  for each row to be from the same time frame), you should set all
- *  data here.
- *
- */
-int
-ipv6ScopeZoneIndexTable_container_load(netsnmp_container * container)
-{
-
-    /*
-     * temporary storage for index values
-     */
-    /*
-     * ipv6ScopeZoneIndexIfIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H
-     */
-    netsnmp_container *zoneindex = netsnmp_access_scopezone_container_load(NULL, 0);
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_container_load", "called\n"));
-
-    if (NULL == zoneindex) {
-        DEBUGMSGTL(("ipv6ScopeZoneIndexTable:container_load",
-                    "couldn't get scopezone iterator\n"));
-        return MFD_RESOURCE_UNAVAILABLE;
-    }
-    /*
-     * TODO:351:M: |-> Load/update data in the ipv6ScopeZoneIndexTable container.
-     * loop over your ipv6ScopeZoneIndexTable data, allocate a rowreq context,
-     * set the index(es) [and data, optionally] and insert into
-     * the container.
-     */
-
-     CONTAINER_FOR_EACH(zoneindex,
-                       (netsnmp_container_obj_func *) _snarf_zoneindex_entry,
-                        container);
-    /*
-     * free the container. we've either claimed each entry, or released it,
-     * so the access function doesn't need to clear the container.
-     */
-    netsnmp_access_scopezone_container_free(zoneindex,
-                                            0x0001);
-
-    DEBUGMSGT(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_container_load", "inserted %lu records\n", (unsigned long)CONTAINER_SIZE(container)));
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexTable_container_load */
-
-/**
- * container clean up
- *
- * @param container container with all current items
- *
- *  This optional callback is called prior to all
- *  item's being removed from the container. If you
- *  need to do any processing before that, do it here.
- *
- * @note
- *  The MFD helper will take care of releasing all the row contexts.
- *
- */
-void
-ipv6ScopeZoneIndexTable_container_free(netsnmp_container * container)
-{
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_container_free", "called\n"));
-
-    /*
-     * TODO:380:M: Free ipv6ScopeZoneIndexTable container data.
-     */
-}                               /* ipv6ScopeZoneIndexTable_container_free */
-
-/**
- * prepare row for processing.
- *
- *  When the agent has located the row for a request, this function is
- *  called to prepare the row for processing. If you fully populated
- *  the data context during the index setup phase, you may not need to
- *  do anything.
- *
- * @param rowreq_ctx pointer to a context.
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- */
-int
-ipv6ScopeZoneIndexTable_row_prep(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                 rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_row_prep", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:390:o: Prepare row for request.
-     * If populating row data was delayed, this is the place to
-     * fill in the row for this request.
-     */
-
-    return MFD_SUCCESS;
-}                               /* ipv6ScopeZoneIndexTable_row_prep */
-/** @} */
diff --git a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.h b/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.h
deleted file mode 100644
index 8f98e91..0000000
--- a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $
- *
- * $Id:ipv6ScopeZoneIndexTable_data_access.h 14170 2007-04-29 00:12:32Z varun_c$
- */
-#ifndef IPV6SCOPEZONEINDEXTABLE_DATA_ACCESS_H
-#define IPV6SCOPEZONEINDEXTABLE_DATA_ACCESS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-    /*
-     *********************************************************************
-     * function declarations
-     */
-
-    /*
-     *********************************************************************
-     * Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipv6ScopeZoneIndexTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * IP-MIB::ipv6ScopeZoneIndexTable is subid 36 of ip.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.4.36, length: 8
-     */
-
-
-    int            
-        ipv6ScopeZoneIndexTable_init_data
-        (ipv6ScopeZoneIndexTable_registration *
-         ipv6ScopeZoneIndexTable_reg);
-
-
-    void           
-        ipv6ScopeZoneIndexTable_container_init(netsnmp_container **
-                                               container_ptr_ptr,
-                                               netsnmp_cache *
-                                               cache);
-    void           
-        ipv6ScopeZoneIndexTable_container_shutdown(netsnmp_container *
-                                                   container_ptr);
-
-    int            
-        ipv6ScopeZoneIndexTable_container_load(netsnmp_container *
-                                               container);
-    void           
-        ipv6ScopeZoneIndexTable_container_free(netsnmp_container *
-                                               container);
-
-#define MAX_LINE_SIZE 256
-    int            
-        ipv6ScopeZoneIndexTable_row_prep(ipv6ScopeZoneIndexTable_rowreq_ctx
-                                         * rowreq_ctx);
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPV6SCOPEZONEINDEXTABLE_DATA_ACCESS_H */
diff --git a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_enums.h b/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_enums.h
deleted file mode 100644
index a79ec88..0000000
--- a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_enums.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : generic-table-enums.m2c 12526 2005-07-15 22:41:16Z rstory $
- *
- * $Id:ipv6ScopeZoneIndexTable_enums.h 14170 2007-04-29 00:12:32Z varun_c$
- */
-#ifndef IPV6SCOPEZONEINDEXTABLE_ENUMS_H
-#define IPV6SCOPEZONEINDEXTABLE_ENUMS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    /*
-     * NOTES on enums
-     * ==============
-     *
-     * Value Mapping
-     * -------------
-     * If the values for your data type don't exactly match the
-     * possible values defined by the mib, you should map them
-     * below. For example, a boolean flag (1/0) is usually represented
-     * as a TruthValue in a MIB, which maps to the values (1/2).
-     *
-     */
-/*************************************************************************
- *************************************************************************
- *
- * enum definitions for table ipv6ScopeZoneIndexTable
- *
- *************************************************************************
- *************************************************************************/
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPV6SCOPEZONEINDEXTABLE_ENUMS_H */
diff --git a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c b/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c
deleted file mode 100644
index ef2088b..0000000
--- a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c
+++ /dev/null
@@ -1,1154 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 15899 $ of $ 
- *
- * $Id:ipv6ScopeZoneIndexTable_interface.c 14170 2007-04-29 00:12:32Z varun_c$
- */
-/*
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- * ***                                                               ***
- * ***  NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE  ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THIS FILE DOES NOT CONTAIN ANY USER EDITABLE CODE.      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THE GENERATED CODE IS INTERNAL IMPLEMENTATION, AND      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***    IS SUBJECT TO CHANGE WITHOUT WARNING IN FUTURE RELEASES.   ***
- * ***                                                               ***
- * ***                                                               ***
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- */
-
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "ipv6ScopeZoneIndexTable.h"
-
-
-#include <net-snmp/agent/table_container.h>
-#include <net-snmp/library/container.h>
-
-#include "ipv6ScopeZoneIndexTable_interface.h"
-
-#include <ctype.h>
-
-netsnmp_feature_child_of(ipv6ScopeZoneIndexTable_external_access, libnetsnmpmibs)
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(table_container_row_insert)
-netsnmp_feature_require(check_all_requests_error)
-
-
-netsnmp_feature_child_of(ipv6ScopeZoneIndexTable_container_size, ipv6ScopeZoneIndexTable_external_access)
-netsnmp_feature_child_of(ipv6ScopeZoneIndexTable_registration_set, ipv6ScopeZoneIndexTable_external_access)
-netsnmp_feature_child_of(ipv6ScopeZoneIndexTable_registration_get, ipv6ScopeZoneIndexTable_external_access)
-netsnmp_feature_child_of(ipv6ScopeZoneIndexTable_container_get, ipv6ScopeZoneIndexTable_external_access)
-
-/**********************************************************************
- **********************************************************************
- ***
- *** Table ipv6ScopeZoneIndexTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * IP-MIB::ipv6ScopeZoneIndexTable is subid 36 of ip.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.4.36, length: 8
- */
-typedef struct ipv6ScopeZoneIndexTable_interface_ctx_s {
-
-    netsnmp_container *container;
-    netsnmp_cache  *cache;
-    ipv6ScopeZoneIndexTable_registration *user_ctx;
-
-    netsnmp_table_registration_info tbl_info;
-
-    netsnmp_baby_steps_access_methods access_multiplexer;
-
-} ipv6ScopeZoneIndexTable_interface_ctx;
-
-static ipv6ScopeZoneIndexTable_interface_ctx
-    ipv6ScopeZoneIndexTable_if_ctx;
-
-static void    
-_ipv6ScopeZoneIndexTable_container_init
-(ipv6ScopeZoneIndexTable_interface_ctx * if_ctx);
-static void    
-_ipv6ScopeZoneIndexTable_container_shutdown
-(ipv6ScopeZoneIndexTable_interface_ctx * if_ctx);
-static int
-_cache_load(netsnmp_cache * cache, void *vmagic);
-static void
-_cache_free(netsnmp_cache * cache, void *magic);
-
-#ifndef NETSNMP_FEATURE_REMOVE_IPV6SCOPEZONEINDEXTABLE_CONTAINER_GET
-netsnmp_container *
-ipv6ScopeZoneIndexTable_container_get(void)
-{
-    return ipv6ScopeZoneIndexTable_if_ctx.container;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_IPV6SCOPEZONEINDEXTABLE_CONTAINER_GET */
-
-#ifndef NETSNMP_FEATURE_REMOVE_IPV6SCOPEZONEINDEXTABLE_REGISTRATION_GET
-ipv6ScopeZoneIndexTable_registration *
-ipv6ScopeZoneIndexTable_registration_get(void)
-{
-    return ipv6ScopeZoneIndexTable_if_ctx.user_ctx;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_IPV6SCOPEZONEINDEXTABLE_REGISTRATION_GET */
-
-#ifndef NETSNMP_FEATURE_REMOVE_IPV6SCOPEZONEINDEXTABLE_REGISTRATION_SET
-ipv6ScopeZoneIndexTable_registration *
-ipv6ScopeZoneIndexTable_registration_set
-    (ipv6ScopeZoneIndexTable_registration * newreg)
-{
-    ipv6ScopeZoneIndexTable_registration *old =
-        ipv6ScopeZoneIndexTable_if_ctx.user_ctx;
-    ipv6ScopeZoneIndexTable_if_ctx.user_ctx = newreg;
-    return old;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_IPV6SCOPEZONEINDEXTABLE_REGISTRATION_SET */
-
-#ifndef NETSNMP_FEATURE_REMOVE_IPV6SCOPEZONEINDEXTABLE_CONTAINER_SIZE
-int
-ipv6ScopeZoneIndexTable_container_size(void)
-{
-    return CONTAINER_SIZE(ipv6ScopeZoneIndexTable_if_ctx.container);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_IPV6SCOPEZONEINDEXTABLE_CONTAINER_SIZE */
-
-/*
- * mfd multiplexer modes
- */
-static Netsnmp_Node_Handler _mfd_ipv6ScopeZoneIndexTable_pre_request;
-static Netsnmp_Node_Handler _mfd_ipv6ScopeZoneIndexTable_post_request;
-static Netsnmp_Node_Handler _mfd_ipv6ScopeZoneIndexTable_object_lookup;
-static Netsnmp_Node_Handler _mfd_ipv6ScopeZoneIndexTable_get_values;
-/**
- * @internal
- * Initialize the table ipv6ScopeZoneIndexTable 
- *    (Define its contents and how it's structured)
- */
-void
-_ipv6ScopeZoneIndexTable_initialize_interface
-    (ipv6ScopeZoneIndexTable_registration * reg_ptr, u_long flags)
-{
-    netsnmp_baby_steps_access_methods *access_multiplexer =
-        &ipv6ScopeZoneIndexTable_if_ctx.access_multiplexer;
-    netsnmp_table_registration_info *tbl_info =
-        &ipv6ScopeZoneIndexTable_if_ctx.tbl_info;
-    netsnmp_handler_registration *reginfo;
-    netsnmp_mib_handler *handler;
-    int             mfd_modes = 0;
-
-    DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:_ipv6ScopeZoneIndexTable_initialize_interface", "called\n"));
-
-
-    /*************************************************
-     *
-     * save interface context for ipv6ScopeZoneIndexTable
-     */
-    /*
-     * Setting up the table's definition
-     */
-    netsnmp_table_helper_add_indexes(tbl_info, ASN_INTEGER,
-                                               /** index: ipv6ScopeZoneIndexIfIndex */
-                                     0);
-
-    /*
-     * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
-     */
-    tbl_info->min_column = IPV6SCOPEZONEINDEXTABLE_MIN_COL;
-    tbl_info->max_column = IPV6SCOPEZONEINDEXTABLE_MAX_COL;
-
-    /*
-     * save users context
-     */
-    ipv6ScopeZoneIndexTable_if_ctx.user_ctx = reg_ptr;
-
-    /*
-     * call data access initialization code
-     */
-    ipv6ScopeZoneIndexTable_init_data(reg_ptr);
-
-    /*
-     * set up the container
-     */
-    _ipv6ScopeZoneIndexTable_container_init
-        (&ipv6ScopeZoneIndexTable_if_ctx);
-    if (NULL == ipv6ScopeZoneIndexTable_if_ctx.container) {
-        snmp_log(LOG_ERR,
-                 "could not initialize container for ipv6ScopeZoneIndexTable\n");
-        return;
-    }
-
-    /*
-     * access_multiplexer: REQUIRED wrapper for get request handling
-     */
-    access_multiplexer->object_lookup =
-        _mfd_ipv6ScopeZoneIndexTable_object_lookup;
-    access_multiplexer->get_values =
-        _mfd_ipv6ScopeZoneIndexTable_get_values;
-
-    /*
-     * no wrappers yet
-     */
-    access_multiplexer->pre_request =
-        _mfd_ipv6ScopeZoneIndexTable_pre_request;
-    access_multiplexer->post_request =
-        _mfd_ipv6ScopeZoneIndexTable_post_request;
-
-
-    /*************************************************
-     *
-     * Create a registration, save our reg data, register table.
-     */
-    DEBUGMSGTL(("ipv6ScopeZoneIndexTable:init_ipv6ScopeZoneIndexTable",
-                "Registering ipv6ScopeZoneIndexTable as a mibs-for-dummies table.\n"));
-    handler =
-        netsnmp_baby_steps_access_multiplexer_get(access_multiplexer);
-    reginfo =
-        netsnmp_handler_registration_create("ipv6ScopeZoneIndexTable",
-                                            handler,
-                                            ipv6ScopeZoneIndexTable_oid,
-                                            ipv6ScopeZoneIndexTable_oid_size,
-                                            HANDLER_CAN_BABY_STEP |
-                                            HANDLER_CAN_RONLY);
-    if (NULL == reginfo) {
-        snmp_log(LOG_ERR,
-                 "error registering table ipv6ScopeZoneIndexTable\n");
-        return;
-    }
-    reginfo->my_reg_void = &ipv6ScopeZoneIndexTable_if_ctx;
-
-    /*************************************************
-     *
-     * set up baby steps handler, create it and inject it
-     */
-    if (access_multiplexer->object_lookup)
-        mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-    if (access_multiplexer->set_values)
-        mfd_modes |= BABY_STEP_SET_VALUES;
-    if (access_multiplexer->irreversible_commit)
-        mfd_modes |= BABY_STEP_IRREVERSIBLE_COMMIT;
-    if (access_multiplexer->object_syntax_checks)
-        mfd_modes |= BABY_STEP_CHECK_OBJECT;
-
-    if (access_multiplexer->undo_setup)
-        mfd_modes |= BABY_STEP_UNDO_SETUP;
-    if (access_multiplexer->undo_cleanup)
-        mfd_modes |= BABY_STEP_UNDO_CLEANUP;
-    if (access_multiplexer->undo_sets)
-        mfd_modes |= BABY_STEP_UNDO_SETS;
-
-    if (access_multiplexer->row_creation)
-        mfd_modes |= BABY_STEP_ROW_CREATE;
-    if (access_multiplexer->consistency_checks)
-        mfd_modes |= BABY_STEP_CHECK_CONSISTENCY;
-    if (access_multiplexer->commit)
-        mfd_modes |= BABY_STEP_COMMIT;
-    if (access_multiplexer->undo_commit)
-        mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
-    handler = netsnmp_baby_steps_handler_get(mfd_modes);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject row_merge helper with prefix rootoid_len + 2 (entry.col)
-     */
-    handler = netsnmp_get_row_merge_handler(reginfo->rootoid_len + 2);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject container_table helper
-     */
-    handler =
-        netsnmp_container_table_handler_get(tbl_info,
-                                            ipv6ScopeZoneIndexTable_if_ctx.
-                                            container,
-                                            TABLE_CONTAINER_KEY_NETSNMP_INDEX);
-    netsnmp_inject_handler(reginfo, handler);
-   
-    if (NULL != ipv6ScopeZoneIndexTable_if_ctx.cache) {
-        handler =
-            netsnmp_cache_handler_get(ipv6ScopeZoneIndexTable_if_ctx.cache);
-        netsnmp_inject_handler(reginfo, handler);
-    }
-
-    /*
-     * register table
-     */
-    netsnmp_register_table(reginfo, tbl_info);
-
-}                               /* _ipv6ScopeZoneIndexTable_initialize_interface */
-
-/**
- * @internal
- * Shutdown the table ipv6ScopeZoneIndexTable
- */
-void
-_ipv6ScopeZoneIndexTable_shutdown_interface
-    (ipv6ScopeZoneIndexTable_registration * reg_ptr)
-{
-    /*
-     * shutdown the container
-     */
-    _ipv6ScopeZoneIndexTable_container_shutdown
-        (&ipv6ScopeZoneIndexTable_if_ctx);
-}
-
-void
-ipv6ScopeZoneIndexTable_valid_columns_set(netsnmp_column_info *vc)
-{
-    ipv6ScopeZoneIndexTable_if_ctx.tbl_info.valid_columns = vc;
-}                               /* ipv6ScopeZoneIndexTable_valid_columns_set */
-
-/**
- * @internal
- * convert the index component stored in the context to an oid
- */
-int
-ipv6ScopeZoneIndexTable_index_to_oid(netsnmp_index * oid_idx,
-                                     ipv6ScopeZoneIndexTable_mib_index *
-                                     mib_idx)
-{
-    int             err = SNMP_ERR_NOERROR;
-
-    /*
-     * temp storage for parsing indexes
-     */
-    /*
-     * ipv6ScopeZoneIndexIfIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H
-     */
-    netsnmp_variable_list var_ipv6ScopeZoneIndexIfIndex;
-
-    /*
-     * set up varbinds
-     */
-    memset(&var_ipv6ScopeZoneIndexIfIndex, 0x00,
-           sizeof(var_ipv6ScopeZoneIndexIfIndex));
-    var_ipv6ScopeZoneIndexIfIndex.type = ASN_INTEGER;
-
-    /*
-     * chain temp index varbinds together
-     */
-    var_ipv6ScopeZoneIndexIfIndex.next_variable = NULL;
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_index_to_oid", "called\n"));
-
-    /*
-     * ipv6ScopeZoneIndexIfIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H 
-     */
-    snmp_set_var_value(&var_ipv6ScopeZoneIndexIfIndex,
-                       (u_char *) & mib_idx->ipv6ScopeZoneIndexIfIndex,
-                       sizeof(mib_idx->ipv6ScopeZoneIndexIfIndex));
-
-
-    err = build_oid_noalloc(oid_idx->oids, oid_idx->len, &oid_idx->len,
-                            NULL, 0, &var_ipv6ScopeZoneIndexIfIndex);
-    if (err)
-        snmp_log(LOG_ERR, "error %d converting index to oid\n", err);
-
-    /*
-     * parsing may have allocated memory. free it.
-     */
-    snmp_reset_var_buffers(&var_ipv6ScopeZoneIndexIfIndex);
-
-    return err;
-}                               /* ipv6ScopeZoneIndexTable_index_to_oid */
-
-/**
- * extract ipv6ScopeZoneIndexTable indexes from a netsnmp_index
- *
- * @retval SNMP_ERR_NOERROR  : no error
- * @retval SNMP_ERR_GENERR   : error
- */
-int
-ipv6ScopeZoneIndexTable_index_from_oid(netsnmp_index * oid_idx,
-                                       ipv6ScopeZoneIndexTable_mib_index *
-                                       mib_idx)
-{
-    int             err = SNMP_ERR_NOERROR;
-
-    /*
-     * temp storage for parsing indexes
-     */
-    /*
-     * ipv6ScopeZoneIndexIfIndex(1)/InterfaceIndex/ASN_INTEGER/long(long)//l/a/w/e/R/d/H
-     */
-    netsnmp_variable_list var_ipv6ScopeZoneIndexIfIndex;
-
-    /*
-     * set up varbinds
-     */
-    memset(&var_ipv6ScopeZoneIndexIfIndex, 0x00,
-           sizeof(var_ipv6ScopeZoneIndexIfIndex));
-    var_ipv6ScopeZoneIndexIfIndex.type = ASN_INTEGER;
-
-    /*
-     * chain temp index varbinds together
-     */
-    var_ipv6ScopeZoneIndexIfIndex.next_variable = NULL;
-
-
-    DEBUGMSGTL(("verbose:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_index_from_oid", "called\n"));
-
-    /*
-     * parse the oid into the individual index components
-     */
-    err = parse_oid_indexes(oid_idx->oids, oid_idx->len,
-                            &var_ipv6ScopeZoneIndexIfIndex);
-    if (err == SNMP_ERR_NOERROR) {
-        /*
-         * copy out values
-         */
-        mib_idx->ipv6ScopeZoneIndexIfIndex =
-            *((long *) var_ipv6ScopeZoneIndexIfIndex.val.string);
-
-
-    }
-
-    /*
-     * parsing may have allocated memory. free it.
-     */
-    snmp_reset_var_buffers(&var_ipv6ScopeZoneIndexIfIndex);
-
-    return err;
-}                               /* ipv6ScopeZoneIndexTable_index_from_oid */
-
-
-/*
- *********************************************************************
- * @internal
- * allocate resources for a ipv6ScopeZoneIndexTable_rowreq_ctx
- */
-ipv6ScopeZoneIndexTable_rowreq_ctx *
-ipv6ScopeZoneIndexTable_allocate_rowreq_ctx(ipv6ScopeZoneIndexTable_data *data,
-                                             void *user_init_ctx)
-{
-    ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx =
-        SNMP_MALLOC_TYPEDEF(ipv6ScopeZoneIndexTable_rowreq_ctx);
-    DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_allocate_rowreq_ctx", "called\n"));
-
-    if (NULL == rowreq_ctx) {
-        snmp_log(LOG_ERR, "Couldn't allocate memory for a "
-                 "ipv6ScopeZoneIndexTable_rowreq_ctx.\n");
-        return NULL;
-    } else {
-        if (NULL != data) {
-            /*
-             * track if we got data from user
-             */
-            rowreq_ctx->rowreq_flags |= MFD_ROW_DATA_FROM_USER;
-            rowreq_ctx->data = data;
-        } else if (NULL ==
-                   (rowreq_ctx->data =
-                    ipv6ScopeZoneIndexTable_allocate_data())) {
-            SNMP_FREE(rowreq_ctx);
-            return NULL;
-        }
-    }
-
-
-    rowreq_ctx->oid_idx.oids = rowreq_ctx->oid_tmp;
-
-    rowreq_ctx->ipv6ScopeZoneIndexTable_data_list = NULL;
-
-    /*
-     * if we allocated data, call init routine
-     */
-    if (!(rowreq_ctx->rowreq_flags & MFD_ROW_DATA_FROM_USER)) {
-        if (SNMPERR_SUCCESS !=
-            ipv6ScopeZoneIndexTable_rowreq_ctx_init(rowreq_ctx,
-                                                    user_init_ctx)) {
-            ipv6ScopeZoneIndexTable_release_rowreq_ctx(rowreq_ctx);
-            rowreq_ctx = NULL;
-        }
-    }
-
-    return rowreq_ctx;
-}                               /* ipv6ScopeZoneIndexTable_allocate_rowreq_ctx */
-
-/*
- * @internal
- * release resources for a ipv6ScopeZoneIndexTable_rowreq_ctx
- */
-void
-ipv6ScopeZoneIndexTable_release_rowreq_ctx
-    (ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:ipv6ScopeZoneIndexTable_release_rowreq_ctx", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    ipv6ScopeZoneIndexTable_rowreq_ctx_cleanup(rowreq_ctx);
-    /*
-     * for non-transient data, don't free data we got from the user
-     */
-    if ((rowreq_ctx->data) &&
-        !(rowreq_ctx->rowreq_flags & MFD_ROW_DATA_FROM_USER))
-        ipv6ScopeZoneIndexTable_release_data(rowreq_ctx->data);
-
-
-    /*
-     * free index oid pointer
-     */
-    if (rowreq_ctx->oid_idx.oids != rowreq_ctx->oid_tmp)
-        free(rowreq_ctx->oid_idx.oids);
-
-    SNMP_FREE(rowreq_ctx);
-}                               /* ipv6ScopeZoneIndexTable_release_rowreq_ctx */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_ipv6ScopeZoneIndexTable_pre_request(netsnmp_mib_handler *handler,
-                                         netsnmp_handler_registration
-                                         *reginfo,
-                                         netsnmp_agent_request_info
-                                         *agtreq_info,
-                                         netsnmp_request_info *requests)
-{
-    int             rc;
-
-    DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:_mfd_ipv6ScopeZoneIndexTable_pre_request", "called\n"));
-
-    if (1 != netsnmp_row_merge_status_first(reginfo, agtreq_info)) {
-        DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable",
-                    "skipping additional pre_request\n"));
-        return SNMP_ERR_NOERROR;
-    }
-
-    rc = ipv6ScopeZoneIndexTable_pre_request
-        (ipv6ScopeZoneIndexTable_if_ctx.user_ctx);
-    if (MFD_SUCCESS != rc) {
-        /*
-         * nothing we can do about it but log it
-         */
-        DEBUGMSGTL(("ipv6ScopeZoneIndexTable", "error %d from "
-                    "ipv6ScopeZoneIndexTable_pre_request\n", rc));
-        netsnmp_request_set_error_all(requests, SNMP_VALIDATE_ERR(rc));
-    }
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_ipv6ScopeZoneIndexTable_pre_request */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_ipv6ScopeZoneIndexTable_post_request(netsnmp_mib_handler *handler,
-                                          netsnmp_handler_registration
-                                          *reginfo,
-                                          netsnmp_agent_request_info
-                                          *agtreq_info,
-                                          netsnmp_request_info *requests)
-{
-    ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx = (ipv6ScopeZoneIndexTable_rowreq_ctx*)
-        netsnmp_container_table_row_extract(requests);
-    int             rc, packet_rc;
-
-    DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:_mfd_ipv6ScopeZoneIndexTable_post_request", "called\n"));
-
-    /*
-     * release row context, if deleted
-     */
-    if (rowreq_ctx && (rowreq_ctx->rowreq_flags & MFD_ROW_DELETED))
-        ipv6ScopeZoneIndexTable_release_rowreq_ctx(rowreq_ctx);
-
-    /*
-     * wait for last call before calling user
-     */
-    if (1 != netsnmp_row_merge_status_last(reginfo, agtreq_info)) {
-        DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable",
-                    "waiting for last post_request\n"));
-        return SNMP_ERR_NOERROR;
-    }
-
-    packet_rc = netsnmp_check_all_requests_error(agtreq_info->asp, 0);
-    rc = ipv6ScopeZoneIndexTable_post_request
-        (ipv6ScopeZoneIndexTable_if_ctx.user_ctx, packet_rc);
-    if (MFD_SUCCESS != rc) {
-        /*
-         * nothing we can do about it but log it
-         */
-        DEBUGMSGTL(("ipv6ScopeZoneIndexTable", "error %d from "
-                    "ipv6ScopeZoneIndexTable_post_request\n", rc));
-    }
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_ipv6ScopeZoneIndexTable_post_request */
-
-/**
- * @internal
- * wrapper
- */
-static ipv6ScopeZoneIndexTable_rowreq_ctx *
-_mfd_ipv6ScopeZoneIndexTable_rowreq_from_index(netsnmp_index * oid_idx,
-                                           int *rc_ptr)
-{
-    ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx;
-    ipv6ScopeZoneIndexTable_mib_index mib_idx;
-    int             rc;
-
-    DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:_mfd_ipv6ScopeZoneIndexTable_rowreq_from_index", "called\n"));
-
-    if (NULL == rc_ptr)
-        rc_ptr = &rc;
-    *rc_ptr = MFD_SUCCESS;
-
-    memset(&mib_idx, 0x0, sizeof(mib_idx));
-
-    /*
-     * try to parse oid
-     */
-    *rc_ptr = ipv6ScopeZoneIndexTable_index_from_oid(oid_idx, &mib_idx);
-    if (MFD_SUCCESS != *rc_ptr) {
-        DEBUGMSGT(("ipv6ScopeZoneIndexTable", "error parsing index\n"));
-        return NULL;
-    }
-
-    /*
-     * allocate new context
-     */
-    rowreq_ctx = ipv6ScopeZoneIndexTable_allocate_rowreq_ctx(NULL, NULL);
-    if (NULL == rowreq_ctx) {
-        *rc_ptr = MFD_ERROR;
-        return NULL;            /* msg already logged */
-    }
-
-    memcpy(&rowreq_ctx->tbl_idx, &mib_idx, sizeof(mib_idx));
-
-
-    /*
-     * copy indexes
-     */
-    rowreq_ctx->oid_idx.len = oid_idx->len;
-    memcpy(rowreq_ctx->oid_idx.oids, oid_idx->oids,
-           oid_idx->len * sizeof(oid));
-
-    return rowreq_ctx;
-}                               /* _mfd_ipv6ScopeZoneIndexTable_rowreq_from_index */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_ipv6ScopeZoneIndexTable_object_lookup(netsnmp_mib_handler *handler,
-                                           netsnmp_handler_registration
-                                           *reginfo,
-                                           netsnmp_agent_request_info
-                                           *agtreq_info,
-                                           netsnmp_request_info *requests)
-{
-    int             rc = SNMP_ERR_NOERROR;
-    ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx = (ipv6ScopeZoneIndexTable_rowreq_ctx*)
-        netsnmp_container_table_row_extract(requests);
-
-    DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:_mfd_ipv6ScopeZoneIndexTable_object_lookup", "called\n"));
-
-    /*
-     * get our context from mfd
-     * ipv6ScopeZoneIndexTable_interface_ctx *if_ctx =
-     *             (ipv6ScopeZoneIndexTable_interface_ctx *)reginfo->my_reg_void;
-     */
-
-    if (NULL == rowreq_ctx) {
-        netsnmp_table_request_info *tblreq_info;
-        netsnmp_index   oid_idx;
-
-        tblreq_info = netsnmp_extract_table_info(requests);
-        if (NULL == tblreq_info) {
-            snmp_log(LOG_ERR, "request had no table info\n");
-            return MFD_ERROR;
-        }
-
-        /*
-         * try create rowreq
-         */
-        oid_idx.oids = tblreq_info->index_oid;
-        oid_idx.len = tblreq_info->index_oid_len;
-
-        rowreq_ctx =
-            _mfd_ipv6ScopeZoneIndexTable_rowreq_from_index(&oid_idx, &rc);
-        if (MFD_SUCCESS == rc) {
-            netsnmp_assert(NULL != rowreq_ctx);
-            rowreq_ctx->rowreq_flags |= MFD_ROW_CREATED;
-            /*
-             * add rowreq_ctx to request data lists
-             */
-            netsnmp_container_table_row_insert(requests, (netsnmp_index *)
-                                               rowreq_ctx);
-        }
-
-    }
-
-    if (MFD_SUCCESS != rc)
-        netsnmp_request_set_error_all(requests, rc);
-    else
-        ipv6ScopeZoneIndexTable_row_prep(rowreq_ctx);
-
-    return SNMP_VALIDATE_ERR(rc);
-}                               /* _mfd_ipv6ScopeZoneIndexTable_object_lookup */
-
-/***********************************************************************
- *
- * GET processing
- *
- ***********************************************************************/
-/*
- * @internal
- * Retrieve the value for a particular column
- */
-NETSNMP_STATIC_INLINE int
-_ipv6ScopeZoneIndexTable_get_column(ipv6ScopeZoneIndexTable_rowreq_ctx *
-                                    rowreq_ctx,
-                                    netsnmp_variable_list * var,
-                                    int column)
-{
-    int             rc = SNMPERR_SUCCESS;
-
-    DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:_mfd_ipv6ScopeZoneIndexTable_get_column", "called for %d\n", column));
-
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    switch (column) {
-
-        /*
-         * ipv6ScopeZoneIndexLinkLocal(2)/InetZoneIndex/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/r/d/H 
-         */
-    case COLUMN_IPV6SCOPEZONEINDEXLINKLOCAL:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipv6ScopeZoneIndexLinkLocal_get(rowreq_ctx,
-                                             (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipv6ScopeZoneIndex3(3)/InetZoneIndex/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/r/d/H 
-         */
-    case COLUMN_IPV6SCOPEZONEINDEX3:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipv6ScopeZoneIndex3_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipv6ScopeZoneIndexAdminLocal(4)/InetZoneIndex/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/r/d/H 
-         */
-    case COLUMN_IPV6SCOPEZONEINDEXADMINLOCAL:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipv6ScopeZoneIndexAdminLocal_get(rowreq_ctx,
-                                              (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipv6ScopeZoneIndexSiteLocal(5)/InetZoneIndex/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/r/d/H 
-         */
-    case COLUMN_IPV6SCOPEZONEINDEXSITELOCAL:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipv6ScopeZoneIndexSiteLocal_get(rowreq_ctx,
-                                             (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipv6ScopeZoneIndex6(6)/InetZoneIndex/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/r/d/H 
-         */
-    case COLUMN_IPV6SCOPEZONEINDEX6:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipv6ScopeZoneIndex6_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipv6ScopeZoneIndex7(7)/InetZoneIndex/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/r/d/H 
-         */
-    case COLUMN_IPV6SCOPEZONEINDEX7:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipv6ScopeZoneIndex7_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipv6ScopeZoneIndexOrganizationLocal(8)/InetZoneIndex/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/r/d/H 
-         */
-    case COLUMN_IPV6SCOPEZONEINDEXORGANIZATIONLOCAL:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipv6ScopeZoneIndexOrganizationLocal_get(rowreq_ctx,
-                                                     (u_long *) var->val.
-                                                     string);
-        break;
-
-        /*
-         * ipv6ScopeZoneIndex9(9)/InetZoneIndex/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/r/d/H 
-         */
-    case COLUMN_IPV6SCOPEZONEINDEX9:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipv6ScopeZoneIndex9_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipv6ScopeZoneIndexA(10)/InetZoneIndex/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/r/d/H 
-         */
-    case COLUMN_IPV6SCOPEZONEINDEXA:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipv6ScopeZoneIndexA_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipv6ScopeZoneIndexB(11)/InetZoneIndex/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/r/d/H 
-         */
-    case COLUMN_IPV6SCOPEZONEINDEXB:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipv6ScopeZoneIndexB_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipv6ScopeZoneIndexC(12)/InetZoneIndex/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/r/d/H 
-         */
-    case COLUMN_IPV6SCOPEZONEINDEXC:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipv6ScopeZoneIndexC_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * ipv6ScopeZoneIndexD(13)/InetZoneIndex/ASN_UNSIGNED/u_long(u_long)//l/A/w/e/r/d/H 
-         */
-    case COLUMN_IPV6SCOPEZONEINDEXD:
-        var->val_len = sizeof(u_long);
-        var->type = ASN_UNSIGNED;
-        rc = ipv6ScopeZoneIndexD_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-    default:
-        if (IPV6SCOPEZONEINDEXTABLE_MIN_COL <= column
-            && column <= IPV6SCOPEZONEINDEXTABLE_MAX_COL) {
-            DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:_mfd_ipv6ScopeZoneIndexTable_get_column", "assume column %d is reserved\n", column));
-            rc = MFD_SKIP;
-        } else {
-            snmp_log(LOG_ERR,
-                     "unknown column %d in _ipv6ScopeZoneIndexTable_get_column\n",
-                     column);
-        }
-        break;
-    }
-
-    return rc;
-}                               /* _ipv6ScopeZoneIndexTable_get_column */
-
-int
-_mfd_ipv6ScopeZoneIndexTable_get_values(netsnmp_mib_handler *handler,
-                                        netsnmp_handler_registration
-                                        *reginfo,
-                                        netsnmp_agent_request_info
-                                        *agtreq_info,
-                                        netsnmp_request_info *requests)
-{
-    ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx = (ipv6ScopeZoneIndexTable_rowreq_ctx*)
-        netsnmp_container_table_row_extract(requests);
-    netsnmp_table_request_info *tri;
-    u_char         *old_string;
-    void            (*dataFreeHook) (void *);
-    int             rc;
-
-    DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:_mfd_ipv6ScopeZoneIndexTable_get_values", "called\n"));
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    for (; requests; requests = requests->next) {
-        /*
-         * save old pointer, so we can free it if replaced
-         */
-        old_string = requests->requestvb->val.string;
-        dataFreeHook = requests->requestvb->dataFreeHook;
-        if (NULL == requests->requestvb->val.string) {
-            requests->requestvb->val.string = requests->requestvb->buf;
-            requests->requestvb->val_len =
-                sizeof(requests->requestvb->buf);
-        } else if (requests->requestvb->buf ==
-                   requests->requestvb->val.string) {
-            if (requests->requestvb->val_len !=
-                sizeof(requests->requestvb->buf))
-                requests->requestvb->val_len =
-                    sizeof(requests->requestvb->buf);
-        }
-
-        /*
-         * get column data
-         */
-        tri = netsnmp_extract_table_info(requests);
-        if (NULL == tri)
-            continue;
-
-        rc = _ipv6ScopeZoneIndexTable_get_column(rowreq_ctx,
-                                                 requests->requestvb,
-                                                 tri->colnum);
-        if (rc) {
-            if (MFD_SKIP == rc) {
-                requests->requestvb->type = SNMP_NOSUCHINSTANCE;
-                rc = SNMP_ERR_NOERROR;
-            }
-        } else if (NULL == requests->requestvb->val.string) {
-            snmp_log(LOG_ERR, "NULL varbind data pointer!\n");
-            rc = SNMP_ERR_GENERR;
-        }
-        if (rc)
-            netsnmp_request_set_error(requests, SNMP_VALIDATE_ERR(rc));
-
-        /*
-         * if the buffer wasn't used previously for the old data (i.e. it
-         * was allcoated memory)  and the get routine replaced the pointer,
-         * we need to free the previous pointer.
-         */
-        if (old_string && (old_string != requests->requestvb->buf) &&
-            (requests->requestvb->val.string != old_string)) {
-            if (dataFreeHook)
-                (*dataFreeHook) (old_string);
-            else
-                free(old_string);
-        }
-    }                           /* for results */
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_ipv6ScopeZoneIndexTable_get_values */
-
-
-/***********************************************************************
- *
- * SET processing
- *
- ***********************************************************************/
-
-/*
- * SET PROCESSING NOT APPLICABLE (per MIB or user setting)
- */
-/***********************************************************************
- *
- * DATA ACCESS
- *
- ***********************************************************************/
-/**
- * @internal
- */
-static void
-_container_item_free(ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx,
-                     void *context)
-{
-    DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:_container_item_free",
-                "called\n"));
-
-    if (NULL == rowreq_ctx)
-        return;
-
-    ipv6ScopeZoneIndexTable_release_rowreq_ctx(rowreq_ctx);
-}                               /* _container_item_free */
-
-/**
- * @internal
- */
-static void
-_container_free(netsnmp_container * container)
-{
-    DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:_container_free",
-                "called\n"));
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR,
-                 "invalid container in ipv6ScopeZoneIndexTable_container_free\n");
-        return;
-    }
-
-    /*
-     * call user code
-     */
-    ipv6ScopeZoneIndexTable_container_free(container);
-
-    /*
-     * free all items. inefficient, but easy.
-     */
-    CONTAINER_CLEAR(container,
-                    (netsnmp_container_obj_func *) _container_item_free,
-                    NULL);
-}                               /* _container_free */
-
-/**
- * @internal
- * initialize the container with functions or wrappers
- */
-void
-_ipv6ScopeZoneIndexTable_container_init
-    (ipv6ScopeZoneIndexTable_interface_ctx * if_ctx)
-{
-    DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:_ipv6ScopeZoneIndexTable_container_init", "called\n"));
-
-    /*
-     * container init
-     */
-    if_ctx->cache = netsnmp_cache_create(30,    /* timeout in seconds */
-                                         _cache_load, _cache_free,
-                                         ipv6ScopeZoneIndexTable_oid,
-                                         ipv6ScopeZoneIndexTable_oid_size);
-
-    if (NULL == if_ctx->cache) {
-        snmp_log(LOG_ERR, "error creating cache for ipScopeZoneIndexTable\n");
-        return;
-    }
-
-    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_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");
-        return;
-    }
-    if (NULL != if_ctx->cache)
-        if_ctx->cache->magic = (void *) if_ctx->container;
-
-
-}                               /* _ipv6ScopeZoneIndexTable_container_init */
-
-/**
- * @internal
- * shutdown the container with functions or wrappers
- */
-void
-_ipv6ScopeZoneIndexTable_container_shutdown
-    (ipv6ScopeZoneIndexTable_interface_ctx * if_ctx)
-{
-    DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:_ipv6ScopeZoneIndexTable_container_shutdown", "called\n"));
-
-    ipv6ScopeZoneIndexTable_container_shutdown(if_ctx->container);
-
-    _container_free(if_ctx->container);
-
-}                               /* _ipv6ScopeZoneIndexTable_container_shutdown */
-
-
-#ifndef NETSNMP_FEATURE_REMOVE_IPV6SCOPEZONEINDEXTABLE_EXTERNAL_ACCESS
-ipv6ScopeZoneIndexTable_rowreq_ctx *
-ipv6ScopeZoneIndexTable_row_find_by_mib_index
-    (ipv6ScopeZoneIndexTable_mib_index * mib_idx)
-{
-    ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx;
-    oid             oid_tmp[MAX_OID_LEN];
-    netsnmp_index   oid_idx;
-    int             rc;
-
-    /*
-     * set up storage for OID
-     */
-    oid_idx.oids = oid_tmp;
-    oid_idx.len = sizeof(oid_tmp) / sizeof(oid);
-
-    /*
-     * convert
-     */
-    rc = ipv6ScopeZoneIndexTable_index_to_oid(&oid_idx, mib_idx);
-    if (MFD_SUCCESS != rc)
-        return NULL;
-
-    rowreq_ctx = (ipv6ScopeZoneIndexTable_rowreq_ctx*)
-        CONTAINER_FIND(ipv6ScopeZoneIndexTable_if_ctx.container, &oid_idx);
-
-    return rowreq_ctx;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_IPV6SCOPEZONEINDEXTABLE_EXTERNAL_ACCESS */
-
-static int
-_cache_load(netsnmp_cache * cache, void *vmagic)
-{
-    DEBUGMSGTL(("internal:ipScopeZoneIndexTable:_cache_load", "called\n"));
-
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR,
-                 "invalid cache for ipScopeZoneIndexTable_cache_load\n");
-        return -1;
-    }
-    /** should only be called for an invalid or expired cache */
-    netsnmp_assert((0 == cache->valid) || (1 == cache->expired));
-
-    /*
-     * call user code
-     */
-    return ipv6ScopeZoneIndexTable_container_load((netsnmp_container *) cache->
-                                             magic);
-}                               /* _cache_load */
-
-/**
- * @internal
- */
-static void
-_cache_free(netsnmp_cache * cache, void *magic)
-{
-    netsnmp_container *container;
-
-    DEBUGMSGTL(("internal:ipScopeZoneIndexTable:_cache_free", "called\n"));
-
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR,
-                 "invalid cache in ipScopeZoneIndexTable_cache_free\n");
-        return;
-    }
-
-    container = (netsnmp_container *) cache->magic;
-
-    _container_free(container);
-}                               /* _cache_free */
-
diff --git a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.h b/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.h
deleted file mode 100644
index 7fc3109..0000000
--- a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 15899 $ of $
- *
- * $Id:ipv6ScopeZoneIndexTable_interface.h 14170 2007-04-29 00:12:32Z varun_c$
- */
-/** @ingroup interface: Routines to interface to Net-SNMP
- *
- * \warning This code should not be modified, called directly,
- *          or used to interpret functionality. It is subject to
- *          change at any time.
- * 
- * @{
- */
-/*
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- * ***                                                               ***
- * ***  NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE  ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THIS FILE DOES NOT CONTAIN ANY USER EDITABLE CODE.      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THE GENERATED CODE IS INTERNAL IMPLEMENTATION, AND      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***    IS SUBJECT TO CHANGE WITHOUT WARNING IN FUTURE RELEASES.   ***
- * ***                                                               ***
- * ***                                                               ***
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- */
-#ifndef IPV6SCOPEZONEINDEXTABLE_INTERFACE_H
-#define IPV6SCOPEZONEINDEXTABLE_INTERFACE_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-#include "ipv6ScopeZoneIndexTable.h"
-
-
-    /*
-     ********************************************************************
-     * Table declarations
-     */
-
-    /*
-     * PUBLIC interface initialization routine 
-     */
-    void           
-        _ipv6ScopeZoneIndexTable_initialize_interface
-        (ipv6ScopeZoneIndexTable_registration * user_ctx, u_long flags);
-    void           
-        _ipv6ScopeZoneIndexTable_shutdown_interface
-        (ipv6ScopeZoneIndexTable_registration * user_ctx);
-
-    ipv6ScopeZoneIndexTable_registration
-        *ipv6ScopeZoneIndexTable_registration_get(void);
-
-    ipv6ScopeZoneIndexTable_registration
-        *ipv6ScopeZoneIndexTable_registration_set
-        (ipv6ScopeZoneIndexTable_registration * newreg);
-
-    netsnmp_container *ipv6ScopeZoneIndexTable_container_get(void);
-    int             ipv6ScopeZoneIndexTable_container_size(void);
-
-    ipv6ScopeZoneIndexTable_rowreq_ctx
-        *ipv6ScopeZoneIndexTable_allocate_rowreq_ctx(ipv6ScopeZoneIndexTable_data *, void *);
-    void           
-        ipv6ScopeZoneIndexTable_release_rowreq_ctx
-        (ipv6ScopeZoneIndexTable_rowreq_ctx * rowreq_ctx);
-
-    int             ipv6ScopeZoneIndexTable_index_to_oid(netsnmp_index *
-                                                         oid_idx,
-                                                         ipv6ScopeZoneIndexTable_mib_index
-                                                         * mib_idx);
-    int             ipv6ScopeZoneIndexTable_index_from_oid(netsnmp_index *
-                                                           oid_idx,
-                                                           ipv6ScopeZoneIndexTable_mib_index
-                                                           * mib_idx);
-
-    /*
-     * access to certain internals. use with caution!
-     */
-    void           
-        ipv6ScopeZoneIndexTable_valid_columns_set(netsnmp_column_info *vc);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPV6SCOPEZONEINDEXTABLE_INTERFACE_H */
-/** @} */
diff --git a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_oids.h b/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_oids.h
deleted file mode 100644
index 134daa2..0000000
--- a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_oids.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : generic-table-oids.m2c 12855 2005-09-27 15:56:08Z rstory $
- *
- * $Id:ipv6ScopeZoneIndexTable_oids.h 14170 2007-04-29 00:12:32Z varun_c$
- */
-#ifndef IPV6SCOPEZONEINDEXTABLE_OIDS_H
-#define IPV6SCOPEZONEINDEXTABLE_OIDS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-    /*
-     * column number definitions for table ipv6ScopeZoneIndexTable 
-     */
-#define IPV6SCOPEZONEINDEXTABLE_OID              1,3,6,1,2,1,4,36
-
-#define COLUMN_IPV6SCOPEZONEINDEXIFINDEX         1
-
-#define COLUMN_IPV6SCOPEZONEINDEXLINKLOCAL         2
-
-#define COLUMN_IPV6SCOPEZONEINDEX3         3
-
-#define COLUMN_IPV6SCOPEZONEINDEXADMINLOCAL         4
-
-#define COLUMN_IPV6SCOPEZONEINDEXSITELOCAL         5
-
-#define COLUMN_IPV6SCOPEZONEINDEX6         6
-
-#define COLUMN_IPV6SCOPEZONEINDEX7         7
-
-#define COLUMN_IPV6SCOPEZONEINDEXORGANIZATIONLOCAL         8
-
-#define COLUMN_IPV6SCOPEZONEINDEX9         9
-
-#define COLUMN_IPV6SCOPEZONEINDEXA         10
-
-#define COLUMN_IPV6SCOPEZONEINDEXB         11
-
-#define COLUMN_IPV6SCOPEZONEINDEXC         12
-
-#define COLUMN_IPV6SCOPEZONEINDEXD         13
-
-
-#define IPV6SCOPEZONEINDEXTABLE_MIN_COL   COLUMN_IPV6SCOPEZONEINDEXLINKLOCAL
-#define IPV6SCOPEZONEINDEXTABLE_MAX_COL   COLUMN_IPV6SCOPEZONEINDEXD
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* IPV6SCOPEZONEINDEXTABLE_OIDS_H */
diff --git a/agent/mibgroup/kernel_sunos5.c b/agent/mibgroup/kernel_sunos5.c
index 9ee0284..28f3326 100644
--- a/agent/mibgroup/kernel_sunos5.c
+++ b/agent/mibgroup/kernel_sunos5.c
@@ -45,7 +45,6 @@
 #include <kstat.h>
 #include <errno.h>
 #include <time.h>
-#include <ctype.h>
 
 #include <sys/sockio.h>
 #include <sys/socket.h>
@@ -104,27 +103,12 @@ mibcache        Mibcache[MIBCACHE_SIZE+1] = {
     {MIB_TRANSMISSION, 0, (void *) -1, 0, 0, 0, 0},
     {MIB_SNMP, 0, (void *) -1, 0, 0, 0, 0},
 #ifdef SOLARIS_HAVE_IPV6_MIB_SUPPORT
-#ifdef SOLARIS_HAVE_RFC4293_SUPPORT
-    {MIB_IP_TRAFFIC_STATS, 20 * sizeof(mib2_ipIfStatsEntry_t), (void *)-1, 0,
-     30, 0, 0},
-    {MIB_IP6, 20 * sizeof(mib2_ipIfStatsEntry_t), (void *)-1, 0, 30, 0, 0},
-#else
-    {MIB_IP6, 20 * sizeof(mib2_ipv6IfStatsEntry_t), (void *)-1, 0, 30, 0, 0},
-#endif
     {MIB_IP6_ADDR, 20 * sizeof(mib2_ipv6AddrEntry_t), (void *)-1, 0, 30, 0, 0},
     {MIB_TCP6_CONN, 1000 * sizeof(mib2_tcp6ConnEntry_t), (void *) -1, 0, 30,
      0, 0},
     {MIB_UDP6_ENDPOINT, 1000 * sizeof(mib2_udp6Entry_t), (void *) -1, 0, 30,
      0, 0},
 #endif
-#ifdef MIB2_SCTP
-    {MIB_SCTP, sizeof(mib2_sctp_t), (void *)-1, 0, 60, 0, 0},
-    {MIB_SCTP_CONN, sizeof(mib2_sctpConnEntry_t), (void *)-1, 0, 60, 0, 0},
-    {MIB_SCTP_CONN_LOCAL, sizeof(mib2_sctpConnLocalEntry_t), (void *)-1, 0,
-     60, 0, 0},
-    {MIB_SCTP_CONN_REMOTE, sizeof(mib2_sctpConnRemoteEntry_t), (void *)-1, 0,
-     60, 0, 0},
-#endif
     {0},
 };
 
@@ -147,20 +131,10 @@ mibmap          Mibmap[MIBCACHE_SIZE+1] = {
     {MIB2_TRANSMISSION, 0,},
     {MIB2_SNMP, 0,},
 #ifdef SOLARIS_HAVE_IPV6_MIB_SUPPORT
-#ifdef SOLARIS_HAVE_RFC4293_SUPPORT
-    {MIB2_IP, MIB2_IP_TRAFFIC_STATS},
-#endif
-    {MIB2_IP6, 0},
     {MIB2_IP6, MIB2_IP6_ADDR},
     {MIB2_TCP6, MIB2_TCP6_CONN},
     {MIB2_UDP6, MIB2_UDP6_ENTRY},
 #endif
-#ifdef MIB2_SCTP
-    {MIB2_SCTP, 0},
-    {MIB2_SCTP, MIB2_SCTP_CONN},
-    {MIB2_SCTP, MIB2_SCTP_CONN_LOCAL},
-    {MIB2_SCTP, MIB2_SCTP_CONN_REMOTE},
-#endif
     {0},
 };
 
@@ -175,7 +149,7 @@ getentry(req_e req_type, void *bufaddr, size_t len, size_t entrysize,
          void *resp, int (*comp)(void *, void *), void *arg);
 
 static int
-getmib(int groupname, int subgroupname, void **statbuf, size_t *size,
+getmib(int groupname, int subgroupname, void *statbuf, size_t size,
        size_t entrysize, req_e req_type, void *resp, size_t *length,
        int (*comp)(void *, void *), void *arg);
 
@@ -240,7 +214,7 @@ kernel_sunos5_cache_age(unsigned int regnumber, void *data)
 
     for (i = 0; i < MIBCACHE_SIZE; i++) {
 	DEBUGMSGTL(("kernel_sunos5", "cache[%d] time %ld ttl %d\n", i,
-		    Mibcache[i].cache_time, (int)Mibcache[i].cache_ttl));
+		    Mibcache[i].cache_time, Mibcache[i].cache_ttl));
 	if (Mibcache[i].cache_time < period) {
 	    Mibcache[i].cache_time = 0;
 	} else {
@@ -374,8 +348,7 @@ getKstat(const char *statname, const char *varname, void *value)
     kstat_ctl_t    *ksc;
     kstat_t        *ks, *kstat_data;
     kstat_named_t  *d;
-    uint_t          i;
-    int             instance = 0;
+    size_t          i, instance;
     char            module_name[64];
     int             ret;
     u_longlong_t    val;    /* The largest value */
@@ -469,7 +442,8 @@ getKstat(const char *statname, const char *varname, void *value)
 	    case KSTAT_DATA_CHAR:
 		DEBUGMSGTL(("kernel_sunos5", "value: %s\n", d->value.c));
 		*(char **)v = buf;
-		strlcpy(buf, d->value.c, sizeof(buf));
+		buf[sizeof(buf)-1] = 0;
+		strncpy(buf, d->value.c, sizeof(buf)-1);
 		break;
 #ifdef KSTAT_DATA_INT32         /* Solaris 2.6 and up */
 	    case KSTAT_DATA_INT32:
@@ -482,11 +456,11 @@ getKstat(const char *statname, const char *varname, void *value)
 		break;
 	    case KSTAT_DATA_INT64:
 		*(int64_t *)v = d->value.i64;
-		DEBUGMSGTL(("kernel_sunos5", "value: %ld\n", (long)d->value.i64));
+		DEBUGMSGTL(("kernel_sunos5", "value: %ld\n", d->value.i64));
 		break;
 	    case KSTAT_DATA_UINT64:
 		*(uint64_t *)v = d->value.ui64;
-		DEBUGMSGTL(("kernel_sunos5", "value: %lu\n", (unsigned long)d->value.ui64));
+		DEBUGMSGTL(("kernel_sunos5", "value: %lu\n", d->value.ui64));
 		break;
 #else
 	    case KSTAT_DATA_LONG:
@@ -539,7 +513,7 @@ getKstatString(const char *statname, const char *varname,
     kstat_ctl_t    *ksc;
     kstat_t        *ks, *kstat_data;
     kstat_named_t  *d;
-    size_t          i, instance = 0;
+    size_t          i, instance;
     char            module_name[64];
     int             ret;
 
@@ -622,7 +596,8 @@ getKstatString(const char *statname, const char *varname,
         if (strcmp(d->name, varname) == 0) {
             switch (d->data_type) {
             case KSTAT_DATA_CHAR:
-                strlcpy(value, d->value.c, value_len);
+                value[value_len-1] = '\0';
+                strncpy(value, d->value.c, value_len-1); 
                 DEBUGMSGTL(("kernel_sunos5", "value: %s\n", d->value.c));
                 break;
             default:
@@ -664,7 +639,7 @@ getMibstat(mibgroup_e grid, void *resp, size_t entrysize,
      */
 
     DEBUGMSGTL(("kernel_sunos5", "getMibstat (%d, *, %d, %d, *, *)\n",
-		grid, (int)entrysize, req_type));
+		grid, entrysize, req_type));
     cachep = &Mibcache[grid];
     mibgr = Mibmap[grid].group;
     mibtb = Mibmap[grid].table;
@@ -682,7 +657,7 @@ getMibstat(mibgroup_e grid, void *resp, size_t entrysize,
     cache_valid = (cachep->cache_time > 0);
 
     DEBUGMSGTL(("kernel_sunos5","... cache_valid %d time %ld ttl %d now %ld\n",
-		cache_valid, cachep->cache_time, (int)cachep->cache_ttl,
+		cache_valid, cachep->cache_time, cachep->cache_ttl,
 		time(NULL)));
     if (cache_valid) {
 	/*
@@ -725,8 +700,8 @@ getMibstat(mibgroup_e grid, void *resp, size_t entrysize,
 		       cachep->cache_size, req_type,
 		       (mib2_ifEntry_t *) & ep, &length, comp, arg);
 	} else {
-	    rc = getmib(mibgr, mibtb, &(cachep->cache_addr),
-			&(cachep->cache_size), entrysize, req_type, &ep,
+	    rc = getmib(mibgr, mibtb, cachep->cache_addr,
+			cachep->cache_size, entrysize, req_type, &ep,
 			&length, comp, arg);
 	}
 
@@ -789,7 +764,7 @@ getentry(req_e req_type, void *bufaddr, size_t len,
          */
         DEBUGMSGTL(("kernel_sunos5", 
             "bad cache length %d - not multiple of entry size %d\n", 
-            (int)len, (int)entrysize));
+            len, entrysize));
         return NOT_FOUND;
     }
 
@@ -868,7 +843,7 @@ init_mibcache_element(mibcache * cp)
  */
 
 static int
-getmib(int groupname, int subgroupname, void **statbuf, size_t *size,
+getmib(int groupname, int subgroupname, void *statbuf, size_t size,
        size_t entrysize, req_e req_type, void *resp,
        size_t *length, int (*comp)(void *, void *), void *arg)
 {
@@ -880,7 +855,6 @@ getmib(int groupname, int subgroupname, void **statbuf, size_t *size,
     struct T_error_ack *tea = (struct T_error_ack *) buf;
     struct opthdr  *req;
     found_e         result = FOUND;
-    size_t oldsize;
 
     DEBUGMSGTL(("kernel_sunos5", "...... getmib (%d, %d, ...)\n",
 		groupname, subgroupname));
@@ -994,8 +968,8 @@ getmib(int groupname, int subgroupname, void **statbuf, size_t *size,
 	 * reducing the number of getmsg calls
 	 */
 
-	strbuf.buf = *statbuf;
-	strbuf.maxlen = *size;
+	strbuf.buf = statbuf;
+	strbuf.maxlen = size;
 	strbuf.len = 0;
 	flags = 0;
 	do {
@@ -1010,22 +984,7 @@ getmib(int groupname, int subgroupname, void **statbuf, size_t *size,
 		goto Return;
 
 	    case MOREDATA:
-		oldsize = ( ((void *)strbuf.buf) - *statbuf) + strbuf.len;
-		strbuf.buf = (void *)realloc(*statbuf,oldsize+4096);
-		if(strbuf.buf != NULL) {
-		    *statbuf = strbuf.buf;
-		    *size = oldsize + 4096;
-		    strbuf.buf = *statbuf + oldsize;
-		    strbuf.maxlen = 4096;
-		    break;
-		}
-		strbuf.buf = *statbuf + (oldsize - strbuf.len);
 	    case 0:
-		/* fix buffer to real size & position */
-		strbuf.len += ((void *)strbuf.buf) - *statbuf;
-		strbuf.buf = *statbuf;
-		strbuf.maxlen = *size;
-
 		if (req_type == GET_NEXT && result == NEED_NEXT)
 		    /*
 		     * End of buffer, so "next" is the first item in the next
@@ -1039,8 +998,6 @@ getmib(int groupname, int subgroupname, void **statbuf, size_t *size,
 	    }
 	} while (rc == MOREDATA && result != FOUND);
 
-	DEBUGMSGTL(("kernel_sunos5", "...... getmib buffer size is %d\n", (int)*size));
-
 	if (result == FOUND) {      /* Search is successful */
 	    if (rc != MOREDATA) {
 		ret = 0;    /* Found and no more data */
@@ -1180,7 +1137,7 @@ _dlpi_get_phys_address(int fd, char *addr, int maxlen, int *addrlen)
         return (errp->dl_errno);
     }
     default:
-        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type: %x\n", (unsigned)dlp->dl_primitive));
+        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type: %x\n", dlp->dl_primitive));
         return (-1);
     }
 }
@@ -1226,7 +1183,7 @@ _dlpi_get_iftype(int fd, unsigned int *iftype)
             return (-1); 
 
         DEBUGMSGTL(("kernel_sunos5:dlpi", "dl_mac_type: %x\n",
-	           (unsigned)info->dl_mac_type));
+	           info->dl_mac_type));
 	switch (info->dl_mac_type) {
 	case DL_CSMACD:
 	case DL_ETHER:
@@ -1291,15 +1248,15 @@ _dlpi_get_iftype(int fd, unsigned int *iftype)
         dl_error_ack_t *errp = (dl_error_ack_t *)buf;
 
         DEBUGMSGTL(("kernel_sunos5:dlpi",
-                    "got DL_ERROR_ACK: dlpi %ld, error %ld\n",
-		    (long)errp->dl_errno, (long)errp->dl_unix_errno));
+                    "got DL_ERROR_ACK: dlpi %d, error %d\n", errp->dl_errno,
+                    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", (unsigned)dlp->dl_primitive));
+        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type %x\n", dlp->dl_primitive));
         return (-1);
     }
 }
@@ -1342,7 +1299,7 @@ _dlpi_parse_devname(char *devname, int *ppap)
     int m = 1;
     int i = strlen(devname) - 1;
 
-    while (i >= 0 && isdigit(devname[i] & 0xFF)) {
+    while (i >= 0 && isdigit(devname[i])) {
         ppa += m * (devname[i] - '0'); 
         m *= 10;
         i--;
diff --git a/agent/mibgroup/kernel_sunos5.h b/agent/mibgroup/kernel_sunos5.h
index 0bffcb9..cdd2375 100644
--- a/agent/mibgroup/kernel_sunos5.h
+++ b/agent/mibgroup/kernel_sunos5.h
@@ -71,20 +71,10 @@ typedef enum {
     MIB_TRANSMISSION = 14,
     MIB_SNMP = 15,
 #ifdef SOLARIS_HAVE_IPV6_MIB_SUPPORT
-#ifdef SOLARIS_HAVE_RFC4293_SUPPORT
-    MIB_IP_TRAFFIC_STATS,
-#endif
-    MIB_IP6,
-    MIB_IP6_ADDR,
+    MIB_IP6_ADDR = 16,
     MIB_TCP6_CONN,
     MIB_UDP6_ENDPOINT,
 #endif
-#ifdef MIB2_SCTP
-    MIB_SCTP,
-    MIB_SCTP_CONN,
-    MIB_SCTP_CONN_LOCAL,
-    MIB_SCTP_CONN_REMOTE,
-#endif
     MIBCACHE_SIZE	
 } mibgroup_e;
 
diff --git a/agent/mibgroup/mibII.h b/agent/mibgroup/mibII.h
index 1b94a59..9b60d36 100644
--- a/agent/mibgroup/mibII.h
+++ b/agent/mibgroup/mibII.h
@@ -7,7 +7,7 @@ config_require(mibII/sysORTable)
 config_require(mibII/at)
 config_require(mibII/ifTable)
 config_require(mibII/ip)
-config_version_require((mibII/snmp_mib, 5.5, mibII/snmp_mib_5_5))
+config_require(mibII/snmp_mib)
 config_require(mibII/tcp)
 config_require(mibII/icmp)
 config_require(mibII/udp)
@@ -15,7 +15,7 @@ config_require(mibII/vacm_vars)
 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(openbsd4)) 
+#if defined(NETSNMP_ENABLE_IPV6) && (defined(linux) || defined(freebsd3) || defined(netbsd) || defined(openbsd))
 config_require(mibII/ipv6)
 #endif
 
@@ -29,19 +29,4 @@ config_require(if-mib)
  */
 #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
-
-/*
- * For Solaris, enable additional tables when it has extended MIB support.
- */
-#if defined( solaris2 ) && defined( HAVE_MIB2_IPIFSTATSENTRY_T )
-config_require(ip-mib/ipSystemStatsTable ip-mib/ipAddressTable)
 #endif
diff --git a/agent/mibgroup/mibII/at.c b/agent/mibgroup/mibII/at.c
index e968074..71c36c1 100644
--- a/agent/mibgroup/mibII/at.c
+++ b/agent/mibgroup/mibII/at.c
@@ -25,13 +25,17 @@
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
-#if defined(NETSNMP_IFNET_NEEDS_KERNEL) && !defined(_KERNEL)
+#if defined(IFNET_NEEDS_KERNEL) && !defined(_KERNEL)
 #define _KERNEL 1
 #define _I_DEFINED_KERNEL
 #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
@@ -85,6 +89,9 @@
 #ifdef solaris2
 #include "kernel_sunos5.h"
 #endif
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 
 #ifdef hpux11
 #include <sys/mib.h>
@@ -139,12 +146,9 @@ static int      ARP_Scan_Next(in_addr_t *, char *, int *, u_long *);
  * information at 
  */
 struct variable1 at_variables[] = {
-    {ATIFINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_atEntry, 1, {1}},
-    {ATPHYSADDRESS, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_atEntry, 1, {2}},
-    {ATNETADDRESS, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_atEntry, 1, {3}}
+    {ATIFINDEX, ASN_INTEGER, RONLY, var_atEntry, 1, {1}},
+    {ATPHYSADDRESS, ASN_OCTET_STR, RONLY, var_atEntry, 1, {2}},
+    {ATNETADDRESS, ASN_IPADDRESS, RONLY, var_atEntry, 1, {3}}
 };
 
 /*
@@ -300,7 +304,7 @@ var_atEntry(struct variable *vp,
 
     memcpy((char *) name, (char *) lowest, oid_length * sizeof(oid));
     *length = oid_length;
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     switch (vp->magic) {
     case IPMEDIAIFINDEX:       /* also ATIFINDEX */
         *var_len = sizeof long_return;
@@ -353,8 +357,7 @@ AT_Cmp(void *addr, void *ep)
                                     mp->ipNetToMediaIfIndex.o_length);
 #endif
     DEBUGMSGTL(("mibII/at", "......... AT_Cmp %lx<>%lx %d<>%d (%.5s)\n",
-                (unsigned long)mp->ipNetToMediaNetAddress,
-                (unsigned long)((if_ip_t *) addr)->ipAddr,
+                mp->ipNetToMediaNetAddress, ((if_ip_t *) addr)->ipAddr,
                 ((if_ip_t *) addr)->ifIdx, index,
                 mp->ipNetToMediaIfIndex.o_bytes));
     if (mp->ipNetToMediaNetAddress != ((if_ip_t *) addr)->ipAddr)
@@ -390,7 +393,7 @@ var_atEntry(struct variable * vp,
     static mib2_ipNetToMediaEntry_t Lowentry;
     int             Found = 0;
     req_e           req_type;
-    int             offset, olength = 0;
+    int             offset, olength;
     static in_addr_t      addr_ret;
 
     /*
@@ -507,7 +510,7 @@ static int      arptab_size, arptab_current;
 static char    *lim, *rtnext;
 static char    *at = 0;
 #else
-#ifdef HAVE_STRUCT_ARPHD_AT_NEXT
+#ifdef STRUCT_ARPHD_HAS_AT_NEXT
 static struct arphd *at = 0;
 static struct arptab *at_ptr, at_entry;
 static struct arpcom at_com;
@@ -559,14 +562,11 @@ ARP_Scan_Init(void)
         if (arptab_size > 0) {
             ulen = (unsigned) arptab_size *sizeof(mib_ipNetToMediaEnt);
             at = (mib_ipNetToMediaEnt *) malloc(ulen);
-            memset(at, 0, ulen);
             p.objid = ID_ipNetToMediaTable;
             p.buffer = (void *) at;
             p.len = &ulen;
             if ((ret = get_mib_info(fd, &p)) < 0)
                 arptab_size = 0;
-            else
-                arptab_size = *p.len / sizeof(mib_ipNetToMediaEnt);
         }
 
         close_mib(fd);
@@ -580,7 +580,7 @@ ARP_Scan_Init(void)
 #ifdef ARPTAB_SIZE_SYMBOL
         auto_nlist(ARPTAB_SIZE_SYMBOL, (char *) &arptab_size,
                    sizeof arptab_size);
-#ifdef HAVE_STRUCT_ARPHD_AT_NEXT
+#ifdef STRUCT_ARPHD_HAS_AT_NEXT
         at = (struct arphd *) malloc(arptab_size * sizeof(struct arphd));
 #else
         at = (struct arptab *) malloc(arptab_size * sizeof(struct arptab));
@@ -589,7 +589,7 @@ ARP_Scan_Init(void)
         return;
 #endif
     }
-#ifdef HAVE_STRUCT_ARPHD_AT_NEXT
+#ifdef STRUCT_ARPHD_HAS_AT_NEXT
     auto_nlist(ARPTAB_SYMBOL, (char *) at,
                arptab_size * sizeof(struct arphd));
     at_ptr = at[0].at_next;
@@ -632,7 +632,7 @@ ARP_Scan_Init(void)
     i = 0;
     while (fgets(line, sizeof(line), in)) {
         u_long          tmp_a;
-        unsigned int    tmp_flags;
+        int             tmp_flags;
         if (i >= arptab_curr_max_size) {
             struct arptab  *newtab = (struct arptab *)
                 realloc(at, (sizeof(struct arptab) *
@@ -690,11 +690,7 @@ ARP_Scan_Init(void)
     mib[2] = 0;
     mib[3] = AF_INET;
     mib[4] = NET_RT_FLAGS;
-#if defined RTF_LLINFO
     mib[5] = RTF_LLINFO;
-#else
-    mib[5] = 0;
-#endif
 
     if (at)
         free(at);
@@ -776,7 +772,7 @@ ARP_Scan_Next(in_addr_t * IPAddr, char *PhysAddr, int *PhysAddrLen,
     register struct arptab *atab;
 
     while (arptab_current < arptab_size) {
-#ifdef HAVE_STRUCT_ARPHD_AT_NEXT
+#ifdef STRUCT_ARPHD_HAS_AT_NEXT
         /*
          * The arp table is an array of linked lists of arptab entries.
          * Unused slots have pointers back to the array entry itself 
@@ -805,9 +801,9 @@ ARP_Scan_Next(in_addr_t * IPAddr, char *PhysAddr, int *PhysAddrLen,
         at_ptr = at_entry.at_next;
         atab = &at_entry;
         *ifIndex = at_com.ac_if.if_index;       /* not strictly ARPHD */
-#else                           /* HAVE_STRUCT_ARPHD_AT_NEXT */
+#else                           /* STRUCT_ARPHD_HAS_AT_NEXT */
         atab = &at[arptab_current++];
-#endif                          /* HAVE_STRUCT_ARPHD_AT_NEXT */
+#endif                          /* STRUCT_ARPHD_HAS_AT_NEXT */
         if (!(atab->at_flags & ATF_COM))
             continue;
         *ifType = (atab->at_flags & ATF_PERM) ? 4 : 3;
@@ -856,7 +852,7 @@ ARP_Scan_Next(in_addr_t * IPAddr, char *PhysAddr, int *PhysAddrLen,
 }
 #endif                          /* solaris2 */
 
-#elif defined(HAVE_IPHLPAPI_H)  /* WIN32 cygwin */
+#else                           /* WIN32 cygwin */
 #include <iphlpapi.h>
 
 extern WriteMethod write_arp;
@@ -890,9 +886,7 @@ var_atEntry(struct variable *vp,
     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;
     
     /*
@@ -909,12 +903,15 @@ var_atEntry(struct variable *vp,
 
     status = GetIpNetTable(pIpNetTable, &dwActualSize, TRUE);
     if (status == ERROR_INSUFFICIENT_BUFFER) {
-        pIpNetTable = malloc(dwActualSize);
-        if (pIpNetTable)
+        pIpNetTable = (PMIB_IPNETTABLE) malloc(dwActualSize);
+        if (pIpNetTable != NULL) {
+            /*
+             * Get the sorted IpNet Table 
+             */
             status = GetIpNetTable(pIpNetTable, &dwActualSize, TRUE);
+        }
     }
 
-    i = -1;
 
     if (status == NO_ERROR) {
         for (i = 0; i < pIpNetTable->dwNumEntries; ++i) {
@@ -969,60 +966,57 @@ var_atEntry(struct variable *vp,
             arp_row->dwIndex = name[10];
 
             if (*length == 15) {        /* ipNetToMediaTable */
-                j = 11;
+                i = 11;
             } else {            /* at Table */
 
-                j = 12;
+                i = 12;
             }
 
-            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];
+            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];
             arp_row->dwAddr = *((DWORD *) dest_addr);
 
             arp_row->dwType = 4;        /* Static */
             arp_row->dwPhysAddrLen = 0;
         }
-        goto out;
+        free(pIpNetTable);
+        return (NULL);
     }
 
     create_flag = 0;
     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) {
     case IPMEDIAIFINDEX:       /* also ATIFINDEX */
         *var_len = sizeof long_return;
         long_return = pIpNetTable->table[i].dwIndex;
-        result = &long_return;
-        break;
+        free(pIpNetTable);
+        return (u_char *) & long_return;
     case IPMEDIAPHYSADDRESS:   /* also ATPHYSADDRESS */
         *var_len = pIpNetTable->table[i].dwPhysAddrLen;
         memcpy(return_buf, pIpNetTable->table[i].bPhysAddr, *var_len);
-        result = return_buf;
-        break;
+        free(pIpNetTable);
+        return (u_char *) return_buf;
     case IPMEDIANETADDRESS:    /* also ATNETADDRESS */
         *var_len = sizeof(addr_ret);
         addr_ret = pIpNetTable->table[i].dwAddr;
-        result = &addr_ret;
-        break;
+        free(pIpNetTable);
+        return (u_char *) & addr_ret;
     case IPMEDIATYPE:
         *var_len = sizeof long_return;
         long_return = pIpNetTable->table[i].dwType;
-        result = &long_return;
-        break;
+        free(pIpNetTable);
+        return (u_char *) & long_return;
     default:
         DEBUGMSGTL(("snmpd", "unknown sub-id %d in var_atEntry\n",
                     vp->magic));
-        break;
     }
-out:
-    free(pIpNetTable);
-    return result;
+    return NULL;
 }
 
 int
@@ -1215,7 +1209,7 @@ write_arp(int action,
              */
             if (!create_flag) {
                 if ((status = SetIpNetEntry(oldarp_row)) != NO_ERROR) {
-                    snmp_log(LOG_ERR, "Error in case UNDO, status : %lu\n",
+                    snmp_log(LOG_ERR, "Error in case UNDO, status : %d\n",
                              status);
                     retval = SNMP_ERR_UNDOFAILED;
                 }
@@ -1226,7 +1220,7 @@ write_arp(int action,
 
                 if ((status = SetIpNetEntry(arp_row)) != NO_ERROR) {
                     snmp_log(LOG_ERR,
-                             "Error while deleting added row, status : %lu\n",
+                             "Error while deleting added row, status : %d\n",
                              status);
                     retval = SNMP_ERR_UNDOFAILED;
                 }
@@ -1246,7 +1240,7 @@ write_arp(int action,
             if (arp_row->dwPhysAddrLen != 0) {
                 if ((status = CreateIpNetEntry(arp_row)) != NO_ERROR) {
                     snmp_log(LOG_ERR,
-                             "Inside COMMIT: CreateIpNetEntry failed, status %lu\n",
+                             "Inside COMMIT: CreateIpNetEntry failed, status %d\n",
                              status);
                     retval = SNMP_ERR_COMMITFAILED;
                 }
diff --git a/agent/mibgroup/mibII/icmp.c b/agent/mibgroup/mibII/icmp.c
index 6d10426..f3fbb82 100644
--- a/agent/mibgroup/mibII/icmp.c
+++ b/agent/mibgroup/mibII/icmp.c
@@ -1,5 +1,6 @@
 /*
  *  ICMP MIB group implementation - icmp.c
+ *
  */
 
 #include <net-snmp/net-snmp-config.h>
@@ -8,13 +9,6 @@
 #if HAVE_NETINET_IP_ICMP_H
 #include <netinet/ip_icmp.h>
 #endif
-
-#ifdef NETSNMP_ENABLE_IPV6
-#if HAVE_NETINET_ICMP6_H
-#include <netinet/icmp6.h>
-#endif
-#endif /* NETSNMP_ENABLE_IPV6 */
-
 #if HAVE_NETINET_ICMP_VAR_H
 #include <netinet/icmp_var.h>
 #endif
@@ -25,10 +19,10 @@
 
 #include <net-snmp/agent/cache_handler.h>
 #include <net-snmp/agent/scalar_group.h>
-#include <net-snmp/agent/sysORTable.h>
 
-#include "util_funcs/MIB_STATS_CACHE_TIMEOUT.h"
+#include "util_funcs.h"
 #include "icmp.h"
+#include "sysORTable.h"
 
 #ifndef MIB_STATS_CACHE_TIMEOUT
 #define MIB_STATS_CACHE_TIMEOUT	5
@@ -37,18 +31,7 @@
 #define ICMP_STATS_CACHE_TIMEOUT	MIB_STATS_CACHE_TIMEOUT
 #endif
 
-/* redefine ICMP6 message types from glibc < 2.4 to newer names */
-#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(aix7)) && !defined(FIRST_PROTOCOL)
-#ifdef HAVE_SYS_PROTOSW_H
-#include <sys/protosw.h>
-#endif
+#if defined(HAVE_LIBPERFSTAT_H) && (defined(aix4) || defined(aix5) || defined(aix6)) && !defined(FIRST_PROTOCOL)
 #include <libperfstat.h>
 #ifdef FIRST_PROTOCOL
 perfstat_protocol_t ps_proto;
@@ -71,495 +54,40 @@ perfstat_id_t ps_name;
 	 *********************/
 
 
+
 /*
  * Define the OID pointer to the top of the mib tree that we're
  * registering underneath 
  */
-static const oid icmp_oid[] = { SNMP_OID_MIB2, 5 };
-static const oid icmp_stats_tbl_oid[] = { SNMP_OID_MIB2, 5, 29 };
-static const oid icmp_msg_stats_tbl_oid[] = { SNMP_OID_MIB2, 5, 30 };
+oid             icmp_oid[] = { SNMP_OID_MIB2, 5 };
 #ifdef USING_MIBII_IP_MODULE
 extern oid      ip_module_oid[];
 extern int      ip_module_oid_len;
 extern int      ip_module_count;
 #endif
 
-#ifdef linux
-struct icmp_stats_table_entry {
-	uint32_t ipVer;
-        uint32_t icmpStatsInMsgs;
-        uint32_t icmpStatsInErrors;
-        uint32_t icmpStatsOutMsgs;
-        uint32_t icmpStatsOutErrors;
-};
-
-struct icmp_stats_table_entry icmp_stats_table[2];
- 
-#define ICMP_MSG_STATS_HAS_IN 1
-#define ICMP_MSG_STATS_HAS_OUT 2
-
-struct icmp_msg_stats_table_entry {
-        uint32_t ipVer;
-        uint32_t icmpMsgStatsType;
-        uint32_t icmpMsgStatsInPkts;
-        uint32_t icmpMsgStatsOutPkts;
-        int flags;
-};
-
-#ifdef linux
-/* Linux keeps track of all possible message types */
-#define ICMP_MSG_STATS_IPV4_COUNT 256
-#else
-#define ICMP_MSG_STATS_IPV4_COUNT 11
-#endif
-
-#ifdef NETSNMP_ENABLE_IPV6
-#ifdef linux
-/* Linux keeps track of all possible message types */
-#define ICMP_MSG_STATS_IPV6_COUNT 256
-#else
-#define ICMP_MSG_STATS_IPV6_COUNT 14
-#endif
-#else
-#define ICMP_MSG_STATS_IPV6_COUNT 0
-#endif /* NETSNMP_ENABLE_IPV6 */
-
-struct icmp_msg_stats_table_entry icmp_msg_stats_table[ICMP_MSG_STATS_IPV4_COUNT + ICMP_MSG_STATS_IPV6_COUNT];
-
-int
-icmp_stats_load(netsnmp_cache *cache, void *vmagic)
-{
-
-	/*
-         * note don't bother using the passed in cache
-	 * and vmagic pointers.  They are useless as they 
-	 * currently point to the icmp system stats cache	
-	 * since I see little point in registering another
-	 * cache for this table.  Its not really needed
-	 */
-
-	int i;
-	struct icmp_mib v4icmp;
-	struct icmp6_mib v6icmp;
-	for(i=0;i<2;i++) {
-		switch(i) {
-			case 0:
-				linux_read_icmp_stat(&v4icmp);
-				icmp_stats_table[i].icmpStatsInMsgs = v4icmp.icmpInMsgs;
-				icmp_stats_table[i].icmpStatsInErrors = v4icmp.icmpInErrors;
-				icmp_stats_table[i].icmpStatsOutMsgs = v4icmp.icmpOutMsgs;
-				icmp_stats_table[i].icmpStatsOutErrors = v4icmp.icmpOutErrors;
-				break;
-			default:
-				memset(&icmp_stats_table[i],0,
-					sizeof(struct icmp_stats_table_entry));
-				linux_read_icmp6_stat(&v6icmp);
-				icmp_stats_table[i].icmpStatsInMsgs = v6icmp.icmp6InMsgs;
-				icmp_stats_table[i].icmpStatsInErrors = v6icmp.icmp6InErrors;
-				icmp_stats_table[i].icmpStatsOutMsgs = v6icmp.icmp6OutMsgs;
-				icmp_stats_table[i].icmpStatsOutErrors = v6icmp.icmp6OutDestUnreachs +
-					v6icmp.icmp6OutPktTooBigs +  v6icmp.icmp6OutTimeExcds +
-					v6icmp.icmp6OutParmProblems;
-				break;
-		}
-		icmp_stats_table[i].ipVer=i+1;
-	}
-
-	return 0;
-}
-
-int
-icmp_msg_stats_load(netsnmp_cache *cache, void *vmagic)
-{
-    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));
-
-    i = 0;
-    flag = 0;
-    k = 0;
-    inc = 0;
-    linux_read_icmp_msg_stat(&v4icmp, &v4icmpmsg, &flag);
-    if (flag) {
-        while (255 >= k) {
-            if (v4icmpmsg.vals[k].InType) {
-                icmp_msg_stats_table[i].ipVer = 1;
-                icmp_msg_stats_table[i].icmpMsgStatsType = k;
-                icmp_msg_stats_table[i].icmpMsgStatsInPkts = v4icmpmsg.vals[k].InType;
-                icmp_msg_stats_table[i].flags = icmp_msg_stats_table[i].flags | ICMP_MSG_STATS_HAS_IN;
-                inc = 1; /* Set this if we found a valid entry */
-            }
-            if (v4icmpmsg.vals[k].OutType) {
-                icmp_msg_stats_table[i].ipVer = 1;
-                icmp_msg_stats_table[i].icmpMsgStatsType = k;
-                icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v4icmpmsg.vals[k].OutType;
-                icmp_msg_stats_table[i].flags = icmp_msg_stats_table[i].flags | ICMP_MSG_STATS_HAS_OUT;
-                inc = 1; /* Set this if we found a valid entry */
-            }
-            if (inc) {
-                i++;
-                inc = 0;
-            }
-            k++;
-        }
-    } else {
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP_ECHOREPLY;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v4icmp.icmpInEchoReps;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v4icmp.icmpOutEchoReps;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP_DEST_UNREACH;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v4icmp.icmpInDestUnreachs;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v4icmp.icmpOutDestUnreachs;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP_SOURCE_QUENCH;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v4icmp.icmpInSrcQuenchs;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v4icmp.icmpOutSrcQuenchs;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP_REDIRECT;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v4icmp.icmpInRedirects;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v4icmp.icmpOutRedirects;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP_ECHO;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v4icmp.icmpInEchos;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v4icmp.icmpOutEchos;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP_TIME_EXCEEDED;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v4icmp.icmpInTimeExcds;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v4icmp.icmpOutTimeExcds;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP_PARAMETERPROB;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v4icmp.icmpInParmProbs;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v4icmp.icmpOutParmProbs;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP_TIMESTAMP;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v4icmp.icmpInTimestamps;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v4icmp.icmpOutTimestamps;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP_TIMESTAMPREPLY;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v4icmp.icmpInTimestampReps;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v4icmp.icmpOutTimestampReps;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP_ADDRESS;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v4icmp.icmpInAddrMasks;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v4icmp.icmpOutAddrMasks;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP_ADDRESSREPLY;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v4icmp.icmpInAddrMaskReps;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v4icmp.icmpOutAddrMaskReps;
-        i++;
-
-        /* set the IP version and default flags */
-        for (j = 0; j < ICMP_MSG_STATS_IPV4_COUNT; j++) {
-            icmp_msg_stats_table[j].ipVer = 1;
-            icmp_msg_stats_table[j].flags = ICMP_MSG_STATS_HAS_IN | ICMP_MSG_STATS_HAS_OUT;
-        }
-    }
-
-#ifdef NETSNMP_ENABLE_IPV6
-    flag = 0;
-    k = 0;
-    inc = 0;
-    linux_read_icmp6_msg_stat(&v6icmp, &v6icmpmsg, &flag);
-    if (flag) {
-        while (255 >= k) {
-            if (v6icmpmsg.vals[k].InType) {
-                icmp_msg_stats_table[i].ipVer = 2;
-                icmp_msg_stats_table[i].icmpMsgStatsType = k;
-                icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmpmsg.vals[k].InType;
-                icmp_msg_stats_table[i].flags = icmp_msg_stats_table[i].flags | ICMP_MSG_STATS_HAS_IN;
-                inc = 1; /* Set this if we found a valid entry */
-            }
-            if (v6icmpmsg.vals[k].OutType) {
-                icmp_msg_stats_table[i].ipVer = 2;
-                icmp_msg_stats_table[i].icmpMsgStatsType = k;
-                icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v6icmpmsg.vals[k].OutType;
-                icmp_msg_stats_table[i].flags = icmp_msg_stats_table[i].flags | ICMP_MSG_STATS_HAS_OUT;
-                inc = 1; /* Set this if we found a valid entry */
-            }
-            if (inc) {
-                i++;
-                inc = 0;
-            }
-            k++;
-        }
-    } else {
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP6_DST_UNREACH;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InDestUnreachs;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v6icmp.icmp6OutDestUnreachs;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP6_PACKET_TOO_BIG;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InPktTooBigs;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v6icmp.icmp6OutPktTooBigs;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP6_TIME_EXCEEDED;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InTimeExcds;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v6icmp.icmp6OutTimeExcds;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP6_PARAM_PROB;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InParmProblems;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v6icmp.icmp6OutParmProblems;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP6_ECHO_REQUEST;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InEchos;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = 0;
-        icmp_msg_stats_table[i].flags = ICMP_MSG_STATS_HAS_IN;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ICMP6_ECHO_REPLY;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InEchoReplies;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v6icmp.icmp6OutEchoReplies;
-        i++;
-
-#ifdef MLD_LISTENER_QUERY
-        icmp_msg_stats_table[i].icmpMsgStatsType = MLD_LISTENER_QUERY;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InGroupMembQueries;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = 0;
-        icmp_msg_stats_table[i].flags = ICMP_MSG_STATS_HAS_IN;
-        i++;
-        icmp_msg_stats_table[i].icmpMsgStatsType = MLD_LISTENER_REPORT;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InGroupMembResponses;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v6icmp.icmp6OutGroupMembResponses;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = MLD_LISTENER_REDUCTION;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InGroupMembReductions;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v6icmp.icmp6OutGroupMembReductions;
-        i++;
-#endif
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ND_ROUTER_SOLICIT;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InRouterSolicits;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v6icmp.icmp6OutRouterSolicits;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ND_ROUTER_ADVERT;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InRouterAdvertisements;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = 0;
-        icmp_msg_stats_table[i].flags = ICMP_MSG_STATS_HAS_IN;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ND_NEIGHBOR_SOLICIT;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InNeighborSolicits;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v6icmp.icmp6OutNeighborSolicits;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ND_NEIGHBOR_ADVERT;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InNeighborAdvertisements;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v6icmp.icmp6OutNeighborAdvertisements;
-        i++;
-
-        icmp_msg_stats_table[i].icmpMsgStatsType = ND_REDIRECT;
-        icmp_msg_stats_table[i].icmpMsgStatsInPkts = v6icmp.icmp6InRedirects;
-        icmp_msg_stats_table[i].icmpMsgStatsOutPkts = v6icmp.icmp6OutRedirects;
-
-        for (j = 0; j < ICMP_MSG_STATS_IPV6_COUNT; j++) {
-            icmp_msg_stats_table[ICMP_MSG_STATS_IPV4_COUNT + j].ipVer = 2;
-            icmp_msg_stats_table[ICMP_MSG_STATS_IPV4_COUNT + j].flags = ICMP_MSG_STATS_HAS_IN | ICMP_MSG_STATS_HAS_OUT;
-        }
-    }
-#endif /* NETSNMP_ENABLE_IPV6 */
-    return 0;
-}
-
-netsnmp_variable_list *
-icmp_stats_next_entry( void **loop_context,
-                     void **data_context,
-                     netsnmp_variable_list *index,
-                     netsnmp_iterator_info *data)
-{
-	int i = (int)(intptr_t)(*loop_context);
-	netsnmp_variable_list *idx = index;
-
-	if(i > 1)
-		return NULL;
-
-
-	/*
-	 *set IP version
-	 */
-	snmp_set_var_typed_value(idx, ASN_INTEGER, (u_char *)&icmp_stats_table[i].ipVer,
-                                sizeof(uint32_t));
-	idx = idx->next_variable;
-
-	*data_context = &icmp_stats_table[i];
-
-	*loop_context = (void *)(intptr_t)(++i);
-	
-	return index;
-}
-
-
-netsnmp_variable_list *
-icmp_stats_first_entry( void **loop_context,
-                     void **data_context,
-                     netsnmp_variable_list *index,
-                     netsnmp_iterator_info *data)
-{
-
-        *loop_context = NULL;
-        *data_context = NULL;
-        return icmp_stats_next_entry(loop_context, data_context, index, data);
-}
-
-netsnmp_variable_list *
-icmp_msg_stats_next_entry(void **loop_context,
-                          void **data_context,
-                          netsnmp_variable_list *index,
-                          netsnmp_iterator_info *data)
-{
-    int i = (int)(intptr_t)(*loop_context);
-    netsnmp_variable_list *idx = index;
-
-    if(i >= ICMP_MSG_STATS_IPV4_COUNT + ICMP_MSG_STATS_IPV6_COUNT)
-        return NULL;
-
-    /* set IP version */
-    snmp_set_var_typed_value(idx, ASN_INTEGER,
-            (u_char *)&icmp_msg_stats_table[i].ipVer,
-            sizeof(uint32_t));
-
-    /* set packet type */
-    idx = idx->next_variable;
-    snmp_set_var_typed_value(idx, ASN_INTEGER,
-            (u_char *)&icmp_msg_stats_table[i].icmpMsgStatsType,
-            sizeof(uint32_t));
-
-    *data_context = &icmp_msg_stats_table[i];
-    *loop_context = (void *)(intptr_t)(++i);
-
-    return index;
-}
-
-
-netsnmp_variable_list *
-icmp_msg_stats_first_entry(void **loop_context,
-                           void **data_context,
-                           netsnmp_variable_list *index,
-                           netsnmp_iterator_info *data)
-{
-    *loop_context = NULL;
-    *data_context = NULL;
-    return icmp_msg_stats_next_entry(loop_context, data_context, index, data);
-}
-#endif
-
 void
 init_icmp(void)
 {
-#ifdef linux
-    netsnmp_handler_registration *msg_stats_reginfo = NULL;
-    netsnmp_handler_registration *table_reginfo = NULL;
-    netsnmp_iterator_info *iinfo;
-    netsnmp_iterator_info *msg_stats_iinfo;
-    netsnmp_table_registration_info *table_info;
-    netsnmp_table_registration_info *msg_stats_table_info;
-#endif
-    netsnmp_handler_registration *scalar_reginfo = NULL;
-    int                    rc;
+    netsnmp_handler_registration *reginfo;
 
     /*
      * register ourselves with the agent as a group of scalars...
      */
     DEBUGMSGTL(("mibII/icmp", "Initialising ICMP group\n"));
-    scalar_reginfo = netsnmp_create_handler_registration("icmp", icmp_handler,
+    reginfo = netsnmp_create_handler_registration("icmp", icmp_handler,
 		    icmp_oid, OID_LENGTH(icmp_oid), HANDLER_CAN_RONLY);
-    rc = netsnmp_register_scalar_group(scalar_reginfo, ICMPINMSGS, ICMPOUTADDRMASKREPS);
-    if (rc != SNMPERR_SUCCESS)
-        return;
+    netsnmp_register_scalar_group(reginfo, ICMPINMSGS, ICMPOUTADDRMASKREPS);
     /*
      * .... with a local cache
      *    (except for HP-UX 11, which extracts objects individually)
      */
 #ifndef hpux11
-    rc = netsnmp_inject_handler( scalar_reginfo,
+    netsnmp_inject_handler( reginfo,
 		    netsnmp_get_cache_handler(ICMP_STATS_CACHE_TIMEOUT,
 			   		icmp_load, icmp_free,
 					icmp_oid, OID_LENGTH(icmp_oid)));
-    if (rc != SNMPERR_SUCCESS)
-	goto bail;
 #endif
-#ifdef linux
-
-    /* register icmpStatsTable */
-    table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
-    if (!table_info)
-        goto bail;
-    netsnmp_table_helper_add_indexes(table_info, ASN_INTEGER, 0);
-    table_info->min_column = ICMP_STAT_INMSG;
-    table_info->max_column = ICMP_STAT_OUTERR;
-
-
-    iinfo      = SNMP_MALLOC_TYPEDEF(netsnmp_iterator_info);
-    if (!iinfo)
-        goto bail;
-    iinfo->get_first_data_point = icmp_stats_first_entry;
-    iinfo->get_next_data_point  = icmp_stats_next_entry;
-    iinfo->table_reginfo        = table_info;
-
-    table_reginfo = netsnmp_create_handler_registration("icmpStatsTable",
-		icmp_stats_table_handler, icmp_stats_tbl_oid,
-		OID_LENGTH(icmp_stats_tbl_oid), HANDLER_CAN_RONLY);
-
-    rc = netsnmp_register_table_iterator2(table_reginfo, iinfo);
-    if (rc != SNMPERR_SUCCESS) {
-        table_reginfo = NULL;
-        goto bail;
-    }
-    netsnmp_inject_handler( table_reginfo,
-		    netsnmp_get_cache_handler(ICMP_STATS_CACHE_TIMEOUT,
-			   		icmp_load, icmp_free,
-					icmp_stats_tbl_oid, OID_LENGTH(icmp_stats_tbl_oid)));
-
-    /* register icmpMsgStatsTable */
-    msg_stats_table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
-    if (!msg_stats_table_info)
-        goto bail;
-    netsnmp_table_helper_add_indexes(msg_stats_table_info, ASN_INTEGER, ASN_INTEGER, 0);
-    msg_stats_table_info->min_column = ICMP_MSG_STAT_IN_PKTS;
-    msg_stats_table_info->max_column = ICMP_MSG_STAT_OUT_PKTS;
-
-    msg_stats_iinfo = SNMP_MALLOC_TYPEDEF(netsnmp_iterator_info);
-    if (!msg_stats_iinfo)
-        goto bail;
-    msg_stats_iinfo->get_first_data_point = icmp_msg_stats_first_entry;
-    msg_stats_iinfo->get_next_data_point  = icmp_msg_stats_next_entry;
-    msg_stats_iinfo->table_reginfo        = msg_stats_table_info;
-
-    msg_stats_reginfo = netsnmp_create_handler_registration("icmpMsgStatsTable",
-            icmp_msg_stats_table_handler, icmp_msg_stats_tbl_oid,
-            OID_LENGTH(icmp_msg_stats_tbl_oid), HANDLER_CAN_RONLY);
-
-    rc = netsnmp_register_table_iterator2(msg_stats_reginfo, msg_stats_iinfo);
-    if (rc != SNMPERR_SUCCESS) {
-        msg_stats_reginfo = NULL;
-        goto bail;
-    }
-
-    netsnmp_inject_handler( msg_stats_reginfo,
-            netsnmp_get_cache_handler(ICMP_STATS_CACHE_TIMEOUT,
-                icmp_load, icmp_free,
-                icmp_msg_stats_tbl_oid, OID_LENGTH(icmp_msg_stats_tbl_oid)));
-#endif /* linux */
 
 #ifdef USING_MIBII_IP_MODULE
     if (++ip_module_count == 2)
@@ -575,19 +103,6 @@ init_icmp(void)
     init_kernel_sunos5();
 #endif
 #endif
-    return;
-
-#ifndef hpux11
-bail:
-#endif
-#ifdef linux
-    if (msg_stats_reginfo)
-        netsnmp_handler_registration_free(msg_stats_reginfo);
-    if (table_reginfo)
-        netsnmp_handler_registration_free(table_reginfo);
-#endif
-    if (scalar_reginfo)
-        netsnmp_handler_registration_free(scalar_reginfo);
 }
 
 
@@ -612,13 +127,7 @@ bail:
 #define USES_SNMP_DESIGNED_ICMPSTAT
 #endif
 
-#ifdef NETBSD_STATS_VIA_SYSCTL
-#define ICMP_STAT_STRUCTURE     struct icmp_mib
-#define USES_SNMP_DESIGNED_ICMPSTAT
-#undef ICMP_NSTATS
-#endif
-
-#ifdef HAVE_IPHLPAPI_H
+#if defined (WIN32) || defined (cygwin)
 #include <iphlpapi.h>
 #define ICMP_STAT_STRUCTURE MIB_ICMP
 #endif
@@ -663,9 +172,15 @@ icmp_handler(netsnmp_mib_handler          *handler,
     /*
      * The cached data should already have been loaded by the
      *    cache handler, higher up the handler chain.
+     * But just to be safe, check this and load it manually if necessary
      */
 #if defined(_USE_PERFSTAT_PROTOCOL)
     icmp_load(NULL, NULL);
+#elif !defined(hpux11)
+    if (!netsnmp_cache_is_valid(reqinfo, reginfo->handlerName)) {
+        netsnmp_assert(!"cache == valid"); /* always false */
+        icmp_load( NULL, NULL );	/* XXX - check for failure */
+    }
 #endif
 
 
@@ -1017,7 +532,6 @@ icmp_handler(netsnmp_mib_handler          *handler,
 
     case MODE_GETNEXT:
     case MODE_GETBULK:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
     case MODE_SET_RESERVE2:
     case MODE_SET_ACTION:
@@ -1027,7 +541,6 @@ icmp_handler(netsnmp_mib_handler          *handler,
         snmp_log(LOG_WARNING, "mibII/icmp: Unsupported mode (%d)\n",
                                reqinfo->mode);
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     default:
         snmp_log(LOG_WARNING, "mibII/icmp: Unrecognised mode (%d)\n",
                                reqinfo->mode);
@@ -1038,153 +551,6 @@ icmp_handler(netsnmp_mib_handler          *handler,
 }
 
 
-#ifdef linux
-int
-icmp_stats_table_handler(netsnmp_mib_handler  *handler,
-                 netsnmp_handler_registration *reginfo,
-                 netsnmp_agent_request_info   *reqinfo,
-                 netsnmp_request_info         *requests)
-{
-	netsnmp_request_info  *request;
-	netsnmp_variable_list *requestvb;
-	netsnmp_table_request_info *table_info;
-	struct icmp_stats_table_entry   *entry;
-	oid      subid;
-
-	switch (reqinfo->mode) {
-		case MODE_GET:
-			for (request=requests; request; request=request->next) {
-				requestvb = request->requestvb;
-				entry = (struct icmp_stats_table_entry *)netsnmp_extract_iterator_context(request);
-				if (!entry)
-					continue;
-				table_info = netsnmp_extract_table_info(request);
-				subid      = table_info->colnum;
-				DEBUGMSGTL(( "mibII/icmpStatsTable", "oid: " ));
-				DEBUGMSGOID(( "mibII/icmpStatsTable", request->requestvb->name,
-						 request->requestvb->name_length ));
-				DEBUGMSG(( "mibII/icmpStatsTable", " In %d InErr %d Out %d OutErr %d\n",
-					      entry->icmpStatsInMsgs, entry->icmpStatsInErrors,
-					      entry->icmpStatsOutMsgs, entry->icmpStatsOutErrors ));
-
-				switch (subid) {
-					case ICMP_STAT_INMSG:
-						snmp_set_var_typed_value(requestvb, ASN_COUNTER,
-							(u_char *)&entry->icmpStatsInMsgs, sizeof(uint32_t));
-						break;	
-					case ICMP_STAT_INERR:
-						snmp_set_var_typed_value(requestvb, ASN_COUNTER,
-							(u_char *)&entry->icmpStatsInErrors, sizeof(uint32_t));
-						break;
-					case ICMP_STAT_OUTMSG:
-						snmp_set_var_typed_value(requestvb, ASN_COUNTER,
-							(u_char *)&entry->icmpStatsOutMsgs, sizeof(uint32_t));
-						break;
-					case ICMP_STAT_OUTERR:
-						snmp_set_var_typed_value(requestvb, ASN_COUNTER,
-							(u_char *)&entry->icmpStatsOutErrors, sizeof(uint32_t));
-						break;
-					default:
-						snmp_log(LOG_WARNING, "mibII/icmpStatsTable: Unrecognised column (%d)\n",(int)subid);
-				}
-			}
-			break;
-		case MODE_GETNEXT:
-		case MODE_GETBULK:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-		case MODE_SET_RESERVE1:
-		case MODE_SET_RESERVE2:
-		case MODE_SET_ACTION:
-		case MODE_SET_COMMIT:
-		case MODE_SET_FREE:
-		case MODE_SET_UNDO:
-			snmp_log(LOG_WARNING, "mibII/icmpStatsTable: Unsupported mode (%d)\n",
-				reqinfo->mode);
-			break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-		default:
-			snmp_log(LOG_WARNING, "mibII/icmpStatsTable: Unrecognised mode (%d)\n",
-				reqinfo->mode);
-			break;
-
-	}
-
-	return SNMP_ERR_NOERROR;
-}
-
-int
-icmp_msg_stats_table_handler(netsnmp_mib_handler          *handler,
-                             netsnmp_handler_registration *reginfo,
-                             netsnmp_agent_request_info   *reqinfo,
-                             netsnmp_request_info         *requests)
-{
-    netsnmp_request_info *request;
-    netsnmp_variable_list *requestvb;
-    netsnmp_table_request_info *table_info;
-    struct icmp_msg_stats_table_entry *entry;
-    oid subid;
-
-    switch (reqinfo->mode) {
-        case MODE_GET:
-            for (request = requests; request; request = request->next) {
-                requestvb = request->requestvb;
-                entry = (struct icmp_msg_stats_table_entry *)netsnmp_extract_iterator_context(request);
-                if (!entry)
-                    continue;
-                table_info = netsnmp_extract_table_info(request);
-                subid = table_info->colnum;
-                DEBUGMSGTL(( "mibII/icmpMsgStatsTable", "oid: " ));
-                DEBUGMSGOID(( "mibII/icmpMsgStatsTable", request->requestvb->name,
-                                 request->requestvb->name_length ));
-                DEBUGMSG(( "mibII/icmpMsgStatsTable", " In %d Out %d Flags 0x%x\n",
-                                 entry->icmpMsgStatsInPkts, entry->icmpMsgStatsOutPkts, entry->flags ));
-
-                switch (subid) {
-                    case ICMP_MSG_STAT_IN_PKTS:
-                        if (entry->flags & ICMP_MSG_STATS_HAS_IN) {
-                            snmp_set_var_typed_value(requestvb, ASN_COUNTER,
-                                    (u_char *)&entry->icmpMsgStatsInPkts, sizeof(uint32_t));
-                        } else {
-                            requestvb->type = SNMP_NOSUCHINSTANCE;
-                        }
-                        break;
-                    case ICMP_MSG_STAT_OUT_PKTS:
-                        if (entry->flags & ICMP_MSG_STATS_HAS_OUT) {
-                            snmp_set_var_typed_value(requestvb, ASN_COUNTER,
-                                    (u_char *)&entry->icmpMsgStatsOutPkts, sizeof(uint32_t));
-                        } else {
-                            requestvb->type = SNMP_NOSUCHINSTANCE;
-                        }
-                        break;
-                    default:
-                        snmp_log(LOG_WARNING, "mibII/icmpMsgStatsTable: Unrecognised column (%d)\n",(int)subid);
-                }
-            }
-            break;
-        case MODE_GETNEXT:
-        case MODE_GETBULK:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-        case MODE_SET_RESERVE1:
-        case MODE_SET_RESERVE2:
-        case MODE_SET_ACTION:
-        case MODE_SET_COMMIT:
-        case MODE_SET_FREE:
-        case MODE_SET_UNDO:
-            snmp_log(LOG_WARNING, "mibII/icmpStatsTable: Unsupported mode (%d)\n",
-                    reqinfo->mode);
-            break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-        default:
-            snmp_log(LOG_WARNING, "mibII/icmpStatsTable: Unrecognised mode (%d)\n",
-                    reqinfo->mode);
-            break;
-
-    }
-
-    return SNMP_ERR_NOERROR;
-}
-#endif		/* linux */
-
         /*********************
 	 *
 	 *  Internal implementation functions
@@ -1314,8 +680,6 @@ icmp_load(netsnmp_cache *cache, void *vmagic)
     } else {
         DEBUGMSGTL(("mibII/icmp", "Loaded ICMP Group (linux)\n"));
     }
-    icmp_stats_load(cache, vmagic);
-    icmp_msg_stats_load(cache, vmagic);
     return ret_value;
 }
 #elif defined(solaris2)
@@ -1335,21 +699,6 @@ icmp_load(netsnmp_cache *cache, void *vmagic)
     }
     return ret_value;
 }
-#elif defined(NETBSD_STATS_VIA_SYSCTL)
-int
-icmp_load(netsnmp_cache *cache, void *vmagic)
-{
-    long            ret_value =- -1;
-
-    ret_value = netbsd_read_icmp_stat(&icmpstat);
-
-    if ( ret_value < 0 ) {
-	DEBUGMSGTL(("mibII/icmp", "Failed to load ICMP Group (netbsd)\n"));
-    } else {
-	DEBUGMSGTL(("mibII/icmp", "Loaded ICMP Group (netbsd)\n"));
-    }
-    return ret_value;
-}
 #elif defined (WIN32) || defined (cygwin)
 int
 icmp_load(netsnmp_cache *cache, void *vmagic)
diff --git a/agent/mibgroup/mibII/icmp.h b/agent/mibgroup/mibII/icmp.h
index 9307654..7417639 100644
--- a/agent/mibgroup/mibII/icmp.h
+++ b/agent/mibgroup/mibII/icmp.h
@@ -5,17 +5,13 @@
 #ifndef _MIBGROUP_ICMP_H
 #define _MIBGROUP_ICMP_H
 
-config_arch_require(solaris2,        kernel_sunos5)
-config_arch_require(linux,     mibII/kernel_linux)
-config_arch_require(netbsd,    mibII/kernel_netbsd)
-config_arch_require(netbsdelf, mibII/kernel_netbsd)
+config_arch_require(solaris2, kernel_sunos5)
+config_arch_require(linux, mibII/kernel_linux)
 
 #include <net-snmp/agent/cache_handler.h>
 
 extern void     init_icmp(void);
 extern Netsnmp_Node_Handler icmp_handler;
-extern Netsnmp_Node_Handler icmp_stats_table_handler;
-extern Netsnmp_Node_Handler icmp_msg_stats_table_handler;
 extern NetsnmpCacheLoad icmp_load;
 extern NetsnmpCacheFree icmp_free;
 
@@ -46,17 +42,4 @@ extern NetsnmpCacheFree icmp_free;
 #define ICMPOUTADDRMASKS     25
 #define ICMPOUTADDRMASKREPS  26
 
-#define ICMPSTATSTABLE       29
-#define ICMP_STAT_IPVER       1
-#define ICMP_STAT_INMSG       2 
-#define ICMP_STAT_INERR       3 
-#define ICMP_STAT_OUTMSG      4 
-#define ICMP_STAT_OUTERR      5 
-
-#define ICMPMSGSTATSTABLE     30
-#define ICMP_MSG_STAT_IPVER    1
-#define ICMP_MSG_STAT_TYPE     2
-#define ICMP_MSG_STAT_IN_PKTS  3
-#define ICMP_MSG_STAT_OUT_PKTS 4
-
 #endif                          /* _MIBGROUP_ICMP_H */
diff --git a/agent/mibgroup/mibII/interfaces.c b/agent/mibgroup/mibII/interfaces.c
index 9dff4aa..a723108 100644
--- a/agent/mibgroup/mibII/interfaces.c
+++ b/agent/mibgroup/mibII/interfaces.c
@@ -15,11 +15,8 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
-netsnmp_feature_provide(interface_legacy)
-
-#if defined(NETSNMP_IFNET_NEEDS_KERNEL) && !defined(_KERNEL) && !defined(NETSNMP_IFNET_NEEDS_KERNEL_LATE)
+#if defined(IFNET_NEEDS_KERNEL) && !defined(_KERNEL) && !defined(IFNET_NEEDS_KERNEL_LATE)
 #define _KERNEL 1
 #define _I_DEFINED_KERNEL
 #endif
@@ -40,7 +37,10 @@ netsnmp_feature_provide(interface_legacy)
 #include <sys/param.h>
 #endif
 #include <sys/types.h>
-#if defined(NETSNMP_IFNET_NEEDS_KERNEL) && !defined(_KERNEL) && defined(NETSNMP_IFNET_NEEDS_KERNEL_LATE)
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+#if defined(IFNET_NEEDS_KERNEL) && !defined(_KERNEL) && defined(IFNET_NEEDS_KERNEL_LATE)
 #define _KERNEL 1
 #define _I_DEFINED_KERNEL
 #endif
@@ -57,7 +57,11 @@ netsnmp_feature_provide(interface_legacy)
 #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
@@ -193,78 +197,49 @@ netsnmp_feature_provide(interface_legacy)
 #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/sysORTable.h>
 #include <net-snmp/data_access/interface.h>
 
 #include "interfaces.h"
 #include "struct.h"
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
+#include "sysORTable.h"
 
-/* if you want caching enabled for speed retrieval purposes, set this to 5?*/
+/* if you want caching enabled for speed retrival 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
 
-#define starttime (*(const struct timeval*)netsnmp_get_agent_starttime())
+extern struct timeval starttime;
 
 struct variable3 interfaces_variables[] = {
-    {NETSNMP_IFNUMBER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_interfaces, 1, {1}},
-    {NETSNMP_IFINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 1}},
-    {NETSNMP_IFDESCR, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 2}},
-    {NETSNMP_IFTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 3}},
-    {NETSNMP_IFMTU, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 4}},
-    {NETSNMP_IFSPEED, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 5}},
-    {NETSNMP_IFPHYSADDRESS, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 6}},
-#ifndef NETSNMP_NO_WRITE_SUPPORT
+    {IFNUMBER, ASN_INTEGER, RONLY, var_interfaces, 1, {1}},
+    {IFINDEX, ASN_INTEGER, RONLY, var_ifEntry, 3, {2, 1, 1}},
+    {IFDESCR, ASN_OCTET_STR, RONLY, var_ifEntry, 3, {2, 1, 2}},
+    {NETSNMP_IFTYPE, ASN_INTEGER, RONLY, var_ifEntry, 3, {2, 1, 3}},
+    {IFMTU, ASN_INTEGER, RONLY, var_ifEntry, 3, {2, 1, 4}},
+    {IFSPEED, ASN_GAUGE, RONLY, var_ifEntry, 3, {2, 1, 5}},
+    {IFPHYSADDRESS, ASN_OCTET_STR, RONLY, var_ifEntry, 3, {2, 1, 6}},
 #if defined (WIN32) || defined (cygwin)
-    {NETSNMP_IFADMINSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ifEntry, 3, {2, 1, 7}},
-#else
-    {NETSNMP_IFADMINSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 7}},
-#endif
-#else  /* !NETSNMP_NO_WRITE_SUPPORT */
-    {NETSNMP_IFADMINSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 7}},
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-    {NETSNMP_IFOPERSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 8}},
-    {NETSNMP_IFLASTCHANGE, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 9}},
-    {NETSNMP_IFINOCTETS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 10}},
-    {NETSNMP_IFINUCASTPKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 11}},
-    {NETSNMP_IFINNUCASTPKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 12}},
-    {NETSNMP_IFINDISCARDS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 13}},
-    {NETSNMP_IFINERRORS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 14}},
-    {NETSNMP_IFINUNKNOWNPROTOS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 15}},
-    {NETSNMP_IFOUTOCTETS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 16}},
-    {NETSNMP_IFOUTUCASTPKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 17}},
-    {NETSNMP_IFOUTNUCASTPKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 18}},
-    {NETSNMP_IFOUTDISCARDS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 19}},
-    {NETSNMP_IFOUTERRORS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 20}},
-    {NETSNMP_IFOUTQLEN, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 21}},
-    {NETSNMP_IFSPECIFIC, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_ifEntry, 3, {2, 1, 22}}
+    {IFADMINSTATUS, ASN_INTEGER, RWRITE, var_ifEntry, 3, {2, 1, 7}},
+#else
+    {IFADMINSTATUS, ASN_INTEGER, RONLY, var_ifEntry, 3, {2, 1, 7}},
+#endif
+    {IFOPERSTATUS, ASN_INTEGER, RONLY, var_ifEntry, 3, {2, 1, 8}},
+    {IFLASTCHANGE, ASN_TIMETICKS, RONLY, var_ifEntry, 3, {2, 1, 9}},
+    {IFINOCTETS, ASN_COUNTER, RONLY, var_ifEntry, 3, {2, 1, 10}},
+    {IFINUCASTPKTS, ASN_COUNTER, RONLY, var_ifEntry, 3, {2, 1, 11}},
+    {IFINNUCASTPKTS, ASN_COUNTER, RONLY, var_ifEntry, 3, {2, 1, 12}},
+    {IFINDISCARDS, ASN_COUNTER, RONLY, var_ifEntry, 3, {2, 1, 13}},
+    {IFINERRORS, ASN_COUNTER, RONLY, var_ifEntry, 3, {2, 1, 14}},
+    {IFINUNKNOWNPROTOS, ASN_COUNTER, RONLY, var_ifEntry, 3, {2, 1, 15}},
+    {IFOUTOCTETS, ASN_COUNTER, RONLY, var_ifEntry, 3, {2, 1, 16}},
+    {IFOUTUCASTPKTS, ASN_COUNTER, RONLY, var_ifEntry, 3, {2, 1, 17}},
+    {IFOUTNUCASTPKTS, ASN_COUNTER, RONLY, var_ifEntry, 3, {2, 1, 18}},
+    {IFOUTDISCARDS, ASN_COUNTER, RONLY, var_ifEntry, 3, {2, 1, 19}},
+    {IFOUTERRORS, ASN_COUNTER, RONLY, var_ifEntry, 3, {2, 1, 20}},
+    {IFOUTQLEN, ASN_GAUGE, RONLY, var_ifEntry, 3, {2, 1, 21}},
+    {IFSPECIFIC, ASN_OBJECT_ID, RONLY, var_ifEntry, 3, {2, 1, 22}}
 };
 
 /*
@@ -410,7 +385,7 @@ var_interfaces(struct variable * vp,
         return NULL;
 
     switch (vp->magic) {
-    case NETSNMP_IFNUMBER:
+    case IFNUMBER:
         long_return = Interface_Scan_Get_Count();
         return (u_char *) & long_return;
     default:
@@ -463,8 +438,10 @@ Interface_Scan_By_Index(int iindex,
                     a = get_address(ifp + 1, ifp->ifm_addrs, RTA_IFP);
                     if (a == NULL)
                         return 0;
-                    sprintf(if_name, "%.*s", ((const u_char *) a)[5],
-                            ((const struct sockaddr_in *) a)->sin_zero);
+                    strncpy(if_name,
+                            ((const struct sockaddr_in *) a)->sin_zero,
+                            ((const u_char *) a)[5]);
+                    if_name[((const u_char *) a)[5]] = 0;
                     *if_msg = *ifp;
                     ++have_ifinfo;
                 }
@@ -597,10 +574,10 @@ var_ifEntry(struct variable *vp,
     if_ptr = netsnmp_access_interface_entry_overrides_get(if_name);
 
     switch (vp->magic) {
-    case NETSNMP_IFINDEX:
+    case IFINDEX:
         long_return = interface;
         return (u_char *) & long_return;
-    case NETSNMP_IFDESCR:
+    case IFDESCR:
         cp = if_name;
         *var_len = strlen(if_name);
         return (u_char *) cp;
@@ -610,14 +587,14 @@ var_ifEntry(struct variable *vp,
         else
         long_return = (long) if_msg.ifm_data.ifi_type;
         return (u_char *) & long_return;
-    case NETSNMP_IFMTU:
+    case IFMTU:
         long_return = (long) if_msg.ifm_data.ifi_mtu;
         return (u_char *) & long_return;
-    case NETSNMP_IFSPEED:
+    case IFSPEED:
         if (if_ptr)
             long_return = if_ptr->speed;
         else {
-#if HAVE_STRUCT_IFNET_IF_BAUDRATE_IFS_VALUE
+#if STRUCT_IFNET_HAS_IF_BAUDRATE_IFS_VALUE
         long_return = (u_long) if_msg.ifm_data.ifi_baudrate.ifs_value <<
             if_msg.ifm_data.ifi_baudrate.ifs_log2;
 #else
@@ -625,52 +602,52 @@ var_ifEntry(struct variable *vp,
 #endif
         }
         return (u_char *) & long_return;
-    case NETSNMP_IFPHYSADDRESS:
+    case IFPHYSADDRESS:
         /*
          * XXX 
          */
         return NULL;
-    case NETSNMP_IFADMINSTATUS:
+    case IFADMINSTATUS:
         long_return = if_msg.ifm_flags & IFF_UP ? 1 : 2;
         return (u_char *) & long_return;
-    case NETSNMP_IFOPERSTATUS:
+    case IFOPERSTATUS:
         long_return = if_msg.ifm_flags & IFF_RUNNING ? 1 : 2;
         return (u_char *) & long_return;
         /*
          * ifLastChange 
          */
-    case NETSNMP_IFINOCTETS:
+    case IFINOCTETS:
         long_return = (u_long) if_msg.ifm_data.ifi_ibytes;
         return (u_char *) & long_return;
-    case NETSNMP_IFINUCASTPKTS:
+    case IFINUCASTPKTS:
         long_return =
             (u_long) if_msg.ifm_data.ifi_ipackets -
             if_msg.ifm_data.ifi_imcasts;
         return (u_char *) & long_return;
-    case NETSNMP_IFINNUCASTPKTS:
+    case IFINNUCASTPKTS:
         long_return = (u_long) if_msg.ifm_data.ifi_imcasts;
         return (u_char *) & long_return;
-    case NETSNMP_IFINDISCARDS:
+    case IFINDISCARDS:
         long_return = (u_long) if_msg.ifm_data.ifi_iqdrops;
         return (u_char *) & long_return;
-    case NETSNMP_IFINERRORS:
+    case IFINERRORS:
         long_return = (u_long) if_msg.ifm_data.ifi_ierrors;
         return (u_char *) & long_return;
-    case NETSNMP_IFINUNKNOWNPROTOS:
+    case IFINUNKNOWNPROTOS:
         long_return = (u_long) if_msg.ifm_data.ifi_noproto;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTOCTETS:
+    case IFOUTOCTETS:
         long_return = (u_long) if_msg.ifm_data.ifi_obytes;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTUCASTPKTS:
+    case IFOUTUCASTPKTS:
         long_return =
             (u_long) if_msg.ifm_data.ifi_opackets -
             if_msg.ifm_data.ifi_omcasts;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTNUCASTPKTS:
+    case IFOUTNUCASTPKTS:
         long_return = (u_long) if_msg.ifm_data.ifi_omcasts;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTDISCARDS:
+    case IFOUTDISCARDS:
 #ifdef if_odrops
         long_return = (u_long) if_msg.ifm_data.ifi_odrops;
 #else
@@ -680,20 +657,15 @@ var_ifEntry(struct variable *vp,
         long_return = 0;
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTERRORS:
+    case IFOUTERRORS:
         long_return = (u_long) if_msg.ifm_data.ifi_oerrors;
         return (u_char *) & long_return;
-    case NETSNMP_IFLASTCHANGE:
+    case IFLASTCHANGE:
 #ifdef irix6
         long_return = 0;
 #else
         if (if_msg.ifm_data.ifi_lastchange.tv_sec == 0 &&
-#if STRUCT_IFNET_HAS_IF_LASTCHANGE_TV_NSEC
-            if_msg.ifm_data.ifi_lastchange.tv_nsec == 0
-#else
-            if_msg.ifm_data.ifi_lastchange.tv_usec == 0
-#endif
-           )
+            if_msg.ifm_data.ifi_lastchange.tv_usec == 0)
             long_return = 0;
         else if (if_msg.ifm_data.ifi_lastchange.tv_sec < starttime.tv_sec)
             long_return = 0;
@@ -701,13 +673,8 @@ var_ifEntry(struct variable *vp,
             long_return = (u_long)
                 ((if_msg.ifm_data.ifi_lastchange.tv_sec -
                   starttime.tv_sec) * 100 +
-                 (
-#if STRUCT_IFNET_HAS_IF_LASTCHANGE_TV_NSEC
-                  if_msg.ifm_data.ifi_lastchange.tv_nsec / 1000
-#else
-                  if_msg.ifm_data.ifi_lastchange.tv_usec
-#endif
-                  - starttime.tv_usec) / 10000);
+                 (if_msg.ifm_data.ifi_lastchange.tv_usec -
+                  starttime.tv_usec) / 10000);
         }
 #endif
         return (u_char *) & long_return;
@@ -724,14 +691,6 @@ Interface_Scan_Next(short *Index,
     return 0;
 }
 
-int
-Interface_Scan_NextInt(int *Index,
-                    char *Name,
-                    struct ifnet *Retifnet, struct in_ifaddr *Retin_ifaddr)
-{
-    return 0;
-}
-
 #else                           /* not USE_SYSCTL_IFLIST */
 
         /*********************
@@ -777,7 +736,7 @@ var_ifEntry(struct variable *vp,
     static char     Name[16];
     char           *cp;
     conf_if_list   *if_ptr;
-#if HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_SEC
+#if STRUCT_IFNET_HAS_IF_LASTCHANGE_TV_SEC
     struct timeval  now;
 #endif
 
@@ -790,10 +749,10 @@ var_ifEntry(struct variable *vp,
     if_ptr = netsnmp_access_interface_entry_overrides_get(Name);
 
     switch (vp->magic) {
-    case NETSNMP_IFINDEX:
+    case IFINDEX:
         long_return = interface;
         return (u_char *) & long_return;
-    case NETSNMP_IFDESCR:
+    case IFDESCR:
         cp = Name;
         *var_len = strlen(cp);
         return (u_char *) cp;
@@ -801,26 +760,26 @@ var_ifEntry(struct variable *vp,
         if (if_ptr)
             long_return = if_ptr->type;
         else {
-#if HAVE_STRUCT_IFNET_IF_TYPE
+#if STRUCT_IFNET_HAS_IF_TYPE
             long_return = ifnet.if_type;
 #else
             long_return = 1;    /* OTHER */
 #endif
         }
         return (u_char *) & long_return;
-    case NETSNMP_IFMTU:{
+    case IFMTU:{
             long_return = (long) ifnet.if_mtu;
             return (u_char *) & long_return;
         }
-    case NETSNMP_IFSPEED:
+    case IFSPEED:
         if (if_ptr)
             long_return = if_ptr->speed;
         else {
-#if HAVE_STRUCT_IFNET_IF_BAUDRATE
+#if STRUCT_IFNET_HAS_IF_BAUDRATE
             long_return = ifnet.if_baudrate;
-#elif HAVE_STRUCT_IFNET_IF_SPEED
+#elif STRUCT_IFNET_HAS_IF_SPEED
             long_return = ifnet.if_speed;
-#elif HAVE_STRUCT_IFNET_IF_TYPE && defined(IFT_ETHER)
+#elif STRUCT_IFNET_HAS_IF_TYPE && defined(IFT_ETHER)
             if (ifnet.if_type == IFT_ETHER)
                 long_return = 10000000;
             if (ifnet.if_type == IFT_P10)
@@ -839,9 +798,9 @@ var_ifEntry(struct variable *vp,
 #endif
         }
         return (u_char *) & long_return;
-    case NETSNMP_IFPHYSADDRESS:
+    case IFPHYSADDRESS:
         Interface_Get_Ether_By_Index(interface, return_buf);
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#if defined(aix4) || defined(aix5) || defined(aix6)
 	*var_len = 0;
 #else
         if ((return_buf[0] == 0) && (return_buf[1] == 0) &&
@@ -852,14 +811,14 @@ var_ifEntry(struct variable *vp,
             *var_len = 6;
 #endif
         return (u_char *) return_buf;
-    case NETSNMP_IFADMINSTATUS:
+    case IFADMINSTATUS:
         long_return = ifnet.if_flags & IFF_UP ? 1 : 2;
         return (u_char *) & long_return;
-    case NETSNMP_IFOPERSTATUS:
+    case IFOPERSTATUS:
         long_return = ifnet.if_flags & IFF_RUNNING ? 1 : 2;
         return (u_char *) & long_return;
-    case NETSNMP_IFLASTCHANGE:
-#if defined(HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_SEC) && !(defined(freebsd2) && __FreeBSD_version < 199607)
+    case IFLASTCHANGE:
+#if defined(STRUCT_IFNET_HAS_IF_LASTCHANGE_TV_SEC) && !(defined(freebsd2) && __FreeBSD_version < 199607)
         /*
          * XXX - SNMP's ifLastchange is time when op. status changed
          * * FreeBSD's if_lastchange is time when packet was input or output
@@ -888,9 +847,9 @@ var_ifEntry(struct variable *vp,
         long_return = 0;        /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFINOCTETS:
-#ifdef HAVE_STRUCT_IFNET_IF_IBYTES
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+    case IFINOCTETS:
+#ifdef STRUCT_IFNET_HAS_IF_IBYTES
+#if defined(aix4) || defined(aix5) || defined(aix6)
         long_return = (u_long) ifnet.if_ibytes & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_ibytes;
@@ -902,15 +861,15 @@ var_ifEntry(struct variable *vp,
         long_return = (u_long) ifnet.if_ipackets * 308; /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFINUCASTPKTS:
+    case IFINUCASTPKTS:
         {
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#if defined(aix4) || defined(aix5) || defined(aix6)
             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) || defined(aix7)
+#if STRUCT_IFNET_HAS_IF_IMCASTS
+#if defined(aix4) || defined(aix5) || defined(aix6)
             long_return -= (u_long) ifnet.if_imcasts & 0xffffffff;
 #else
             long_return -= (u_long) ifnet.if_imcasts;
@@ -918,9 +877,9 @@ var_ifEntry(struct variable *vp,
 #endif
         }
         return (u_char *) & long_return;
-    case NETSNMP_IFINNUCASTPKTS:
-#if HAVE_STRUCT_IFNET_IF_IMCASTS
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+    case IFINNUCASTPKTS:
+#if STRUCT_IFNET_HAS_IF_IMCASTS
+#if defined(aix4) || defined(aix5) || defined(aix6)
         long_return = (u_long) ifnet.if_imcasts & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_imcasts;
@@ -932,9 +891,9 @@ var_ifEntry(struct variable *vp,
         long_return = (u_long) 0;       /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFINDISCARDS:
-#if HAVE_STRUCT_IFNET_IF_IQDROPS
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+    case IFINDISCARDS:
+#if STRUCT_IFNET_HAS_IF_IQDROPS
+#if defined(aix4) || defined(aix5) || defined(aix6)
         long_return = (u_long) ifnet.if_iqdrops & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_iqdrops;
@@ -946,16 +905,16 @@ var_ifEntry(struct variable *vp,
         long_return = (u_long) 0;       /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFINERRORS:
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+    case IFINERRORS:
+#if defined(aix4) || defined(aix5) || defined(aix6)
         long_return = (u_long) ifnet.if_ierrors & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_ierrors;
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFINUNKNOWNPROTOS:
-#if HAVE_STRUCT_IFNET_IF_NOPROTO
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+    case IFINUNKNOWNPROTOS:
+#if STRUCT_IFNET_HAS_IF_NOPROTO
+#if defined(aix4) || defined(aix5) || defined(aix6)
         long_return = (u_long) ifnet.if_noproto & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_noproto;
@@ -967,9 +926,9 @@ var_ifEntry(struct variable *vp,
         long_return = (u_long) 0;       /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTOCTETS:
-#ifdef HAVE_STRUCT_IFNET_IF_OBYTES
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+    case IFOUTOCTETS:
+#ifdef STRUCT_IFNET_HAS_IF_OBYTES
+#if defined(aix4) || defined(aix5) || defined(aix6)
         long_return = (u_long) ifnet.if_obytes & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_obytes;
@@ -981,15 +940,15 @@ var_ifEntry(struct variable *vp,
         long_return = (u_long) ifnet.if_opackets * 308; /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTUCASTPKTS:
+    case IFOUTUCASTPKTS:
         {
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#if defined(aix4) || defined(aix5) || defined(aix6)
             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) || defined(aix7)
+#if STRUCT_IFNET_HAS_IF_OMCASTS
+#if defined(aix4) || defined(aix5) || defined(aix6)
             long_return -= (u_long) ifnet.if_omcasts & 0xffffffff;
 #else
             long_return -= (u_long) ifnet.if_omcasts;
@@ -997,9 +956,9 @@ var_ifEntry(struct variable *vp,
 #endif
         }
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTNUCASTPKTS:
-#if HAVE_STRUCT_IFNET_IF_OMCASTS
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+    case IFOUTNUCASTPKTS:
+#if STRUCT_IFNET_HAS_IF_OMCASTS
+#if defined(aix4) || defined(aix5) || defined(aix6)
         long_return = (u_long) ifnet.if_omcasts & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_omcasts;
@@ -1011,28 +970,28 @@ var_ifEntry(struct variable *vp,
         long_return = (u_long) 0;       /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTDISCARDS:
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+    case IFOUTDISCARDS:
+#if defined(aix4) || defined(aix5) || defined(aix6)
         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) || defined(aix7)
+    case IFOUTERRORS:
+#if defined(aix4) || defined(aix5) || defined(aix6)
         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) || defined(aix7)
+    case IFOUTQLEN:
+#if defined(aix4) || defined(aix5) || defined(aix6)
         long_return = ifnet.if_snd.ifq_len & 0xffffffff;
 #else
         long_return = ifnet.if_snd.ifq_len;
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFSPECIFIC:
+    case IFSPECIFIC:
         *var_len = nullOidLen;
         return (u_char *) nullOid;
     default:
@@ -1065,7 +1024,7 @@ var_ifEntry(struct variable *vp,
     static char     Name[16];
 #endif
     register char  *cp;
-#if HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_SEC
+#if STRUCT_IFNET_HAS_IF_LASTCHANGE_TV_SEC
     struct timeval  now;
 #endif
 #if !defined(hpux11)
@@ -1108,10 +1067,10 @@ var_ifEntry(struct variable *vp,
     if_ptr = netsnmp_access_interface_entry_overrides_get(Name);
 
     switch (vp->magic) {
-    case NETSNMP_IFINDEX:
+    case IFINDEX:
         long_return = interface;
         return (u_char *) & long_return;
-    case NETSNMP_IFDESCR:
+    case IFDESCR:
 #if defined(hpux11)
         cp = ifnet.if_entry.ifDescr;
 #else
@@ -1136,7 +1095,7 @@ var_ifEntry(struct variable *vp,
 #endif
         }
         return (u_char *) & long_return;
-    case NETSNMP_IFMTU:{
+    case IFMTU:{
 #if defined(hpux11)
             long_return = (long) ifnet.if_entry.ifMtu;
 #else
@@ -1144,7 +1103,7 @@ var_ifEntry(struct variable *vp,
 #endif
             return (u_char *) & long_return;
         }
-    case NETSNMP_IFSPEED:
+    case IFSPEED:
         if (if_ptr)
             long_return = if_ptr->speed;
         else {
@@ -1158,7 +1117,7 @@ var_ifEntry(struct variable *vp,
 #endif
         }
         return (u_char *) & long_return;
-    case NETSNMP_IFPHYSADDRESS:
+    case IFPHYSADDRESS:
 #if defined(hpux11)
         *var_len = ifnet.if_entry.ifPhysAddress.o_length;
         return (u_char *) ifnet.if_entry.ifPhysAddress.o_bytes;
@@ -1172,21 +1131,21 @@ var_ifEntry(struct variable *vp,
             *var_len = 6;
         return (u_char *) return_buf;
 #endif
-    case NETSNMP_IFADMINSTATUS:
+    case IFADMINSTATUS:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifAdmin;
 #else
         long_return = ifnet.if_flags & IFF_UP ? 1 : 2;
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFOPERSTATUS:
+    case IFOPERSTATUS:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifOper;
 #else
         long_return = ifnet.if_flags & IFF_RUNNING ? 1 : 2;
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFLASTCHANGE:
+    case IFLASTCHANGE:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifLastChange;
 #else
@@ -1196,7 +1155,7 @@ var_ifEntry(struct variable *vp,
             long_return = 0;    /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFINOCTETS:
+    case IFINOCTETS:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifInOctets;
 #else
@@ -1206,7 +1165,7 @@ var_ifEntry(struct variable *vp,
             long_return = (u_long) ifnet.if_ipackets * 308;     /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFINUCASTPKTS:
+    case IFINUCASTPKTS:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifInUcastPkts;
 #else
@@ -1216,7 +1175,7 @@ var_ifEntry(struct variable *vp,
             long_return = (u_long) ifnet.if_ipackets;
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFINNUCASTPKTS:
+    case IFINNUCASTPKTS:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifInNUcastPkts;
 #else
@@ -1226,7 +1185,7 @@ var_ifEntry(struct variable *vp,
             long_return = (u_long) 0;   /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFINDISCARDS:
+    case IFINDISCARDS:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifInDiscards;
 #else
@@ -1236,14 +1195,14 @@ var_ifEntry(struct variable *vp,
             long_return = (u_long) 0;   /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFINERRORS:
+    case IFINERRORS:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifInErrors;
 #else
         long_return = ifnet.if_ierrors;
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFINUNKNOWNPROTOS:
+    case IFINUNKNOWNPROTOS:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifInUnknownProtos;
 #else
@@ -1253,7 +1212,7 @@ var_ifEntry(struct variable *vp,
             long_return = (u_long) 0;   /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTOCTETS:
+    case IFOUTOCTETS:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifOutOctets;
 #else
@@ -1263,7 +1222,7 @@ var_ifEntry(struct variable *vp,
             long_return = (u_long) ifnet.if_opackets * 308;     /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTUCASTPKTS:
+    case IFOUTUCASTPKTS:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifOutUcastPkts;
 #else
@@ -1273,7 +1232,7 @@ var_ifEntry(struct variable *vp,
             long_return = (u_long) ifnet.if_opackets;
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTNUCASTPKTS:
+    case IFOUTNUCASTPKTS:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifOutNUcastPkts;
 #else
@@ -1283,28 +1242,28 @@ var_ifEntry(struct variable *vp,
             long_return = (u_long) 0;   /* XXX */
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTDISCARDS:
+    case IFOUTDISCARDS:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifOutDiscards;
 #else
         long_return = ifnet.if_snd.ifq_drops;
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTERRORS:
+    case IFOUTERRORS:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifOutErrors;
 #else
         long_return = ifnet.if_oerrors;
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTQLEN:
+    case IFOUTQLEN:
 #if defined(hpux11)
         long_return = ifnet.if_entry.ifOutQlen;
 #else
         long_return = ifnet.if_snd.ifq_len;
 #endif
         return (u_char *) & long_return;
-    case NETSNMP_IFSPECIFIC:
+    case IFSPECIFIC:
         *var_len = nullOidLen;
         return (u_char *) nullOid;
     default:
@@ -1356,10 +1315,10 @@ var_ifEntry(struct variable * vp,
      * if_ptr = netsnmp_access_interface_entry_overrides_get(Name);
      */
     switch (vp->magic) {
-    case NETSNMP_IFINDEX:
+    case IFINDEX:
         long_return = ifstat.ifIndex;
         return (u_char *) & long_return;
-    case NETSNMP_IFDESCR:
+    case IFDESCR:
         *var_len = ifstat.ifDescr.o_length;
         (void) memcpy(return_buf, ifstat.ifDescr.o_bytes, *var_len);
         return (u_char *) return_buf;
@@ -1369,65 +1328,65 @@ var_ifEntry(struct variable * vp,
         else
         long_return = (u_long) ifstat.ifType;
         return (u_char *) & long_return;
-    case NETSNMP_IFMTU:
+    case IFMTU:
         long_return = (u_long) ifstat.ifMtu;
         return (u_char *) & long_return;
-    case NETSNMP_IFSPEED:
+    case IFSPEED:
         if (if_ptr)
             long_return = if_ptr->speed;
         else
         long_return = (u_long) ifstat.ifSpeed;
         return (u_char *) & long_return;
-    case NETSNMP_IFPHYSADDRESS:
+    case IFPHYSADDRESS:
         *var_len = ifstat.ifPhysAddress.o_length;
         (void) memcpy(return_buf, ifstat.ifPhysAddress.o_bytes, *var_len);
         return (u_char *) return_buf;
-    case NETSNMP_IFADMINSTATUS:
+    case IFADMINSTATUS:
         long_return = (u_long) ifstat.ifAdminStatus;
         return (u_char *) & long_return;
-    case NETSNMP_IFOPERSTATUS:
+    case IFOPERSTATUS:
         long_return = (u_long) ifstat.ifOperStatus;
         return (u_char *) & long_return;
-    case NETSNMP_IFLASTCHANGE:
+    case IFLASTCHANGE:
         long_return = (u_long) ifstat.ifLastChange;
         return (u_char *) & long_return;
-    case NETSNMP_IFINOCTETS:
+    case IFINOCTETS:
         long_return = (u_long) ifstat.ifInOctets;
         return (u_char *) & long_return;
-    case NETSNMP_IFINUCASTPKTS:
+    case IFINUCASTPKTS:
         long_return = (u_long) ifstat.ifInUcastPkts;
         return (u_char *) & long_return;
-    case NETSNMP_IFINNUCASTPKTS:
+    case IFINNUCASTPKTS:
         long_return = (u_long) ifstat.ifInNUcastPkts;
         return (u_char *) & long_return;
-    case NETSNMP_IFINDISCARDS:
+    case IFINDISCARDS:
         long_return = (u_long) ifstat.ifInDiscards;
         return (u_char *) & long_return;
-    case NETSNMP_IFINERRORS:
+    case IFINERRORS:
         long_return = (u_long) ifstat.ifInErrors;
         return (u_char *) & long_return;
-    case NETSNMP_IFINUNKNOWNPROTOS:
+    case IFINUNKNOWNPROTOS:
         long_return = (u_long) ifstat.ifInUnknownProtos;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTOCTETS:
+    case IFOUTOCTETS:
         long_return = (u_long) ifstat.ifOutOctets;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTUCASTPKTS:
+    case IFOUTUCASTPKTS:
         long_return = (u_long) ifstat.ifOutUcastPkts;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTNUCASTPKTS:
+    case IFOUTNUCASTPKTS:
         long_return = (u_long) ifstat.ifOutNUcastPkts;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTDISCARDS:
+    case IFOUTDISCARDS:
         long_return = (u_long) ifstat.ifOutDiscards;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTERRORS:
+    case IFOUTERRORS:
         long_return = (u_long) ifstat.ifOutErrors;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTQLEN:
+    case IFOUTQLEN:
         long_return = (u_long) ifstat.ifOutQLen;
         return (u_char *) & long_return;
-    case NETSNMP_IFSPECIFIC:
+    case IFSPECIFIC:
 	long_return = (u_long) ifstat.ifSpecific;
 	return (u_char *) & long_return;
     default:
@@ -1527,7 +1486,7 @@ Interface_Scan_Init(void)
 
 #ifdef linux
     /*  disallow reloading of structures too often */
-    netsnmp_get_monotonic_clock(&et);
+    gettimeofday ( &et, ( struct timezone * ) 0 );  /*  get time-of-day */
     if ( et.tv_sec < LastLoad + MINLOADFREQ ) {     /*  only reload so often */
       ifnetaddr = ifnetaddr_list;                   /*  initialize pointer */
       return;
@@ -1563,7 +1522,7 @@ Interface_Scan_Init(void)
      */
     if (!(devin = fopen("/proc/net/dev", "r"))) {
         close(fd);
-        NETSNMP_LOGONCE((LOG_ERR, "cannot open /proc/net/dev.\n"));
+        snmp_log(LOG_ERR, "cannot open /proc/net/dev - continuing...\n");
         return; /** exit (1); **/
     }
 
@@ -1609,7 +1568,8 @@ Interface_Scan_Init(void)
         }
 
         *stats   = 0;
-        strlcpy(ifname_buf, ifstart, sizeof(ifname_buf));
+        strncpy(ifname_buf, ifstart, sizeof(ifname_buf));
+        ifname_buf[ sizeof(ifname_buf)-1 ] = 0;
         *stats++ = ':';
         while (*stats == ' ')
             stats++;
@@ -1676,27 +1636,31 @@ Interface_Scan_Init(void)
         nnew->if_unit = strdup(*ptr ? ptr : "");
         *ptr = 0;
 
-        strlcpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        strncpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        ifrq.ifr_name[ sizeof(ifrq.ifr_name)-1 ] = 0;
         if (ioctl(fd, SIOCGIFADDR, &ifrq) < 0)
             memset((char *) &nnew->if_addr, 0, sizeof(nnew->if_addr));
         else
             nnew->if_addr = ifrq.ifr_addr;
 
-        strlcpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        strncpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        ifrq.ifr_name[ sizeof(ifrq.ifr_name)-1 ] = 0;
         if (ioctl(fd, SIOCGIFBRDADDR, &ifrq) < 0)
             memset((char *) &nnew->ifu_broadaddr, 0,
                    sizeof(nnew->ifu_broadaddr));
         else
             nnew->ifu_broadaddr = ifrq.ifr_broadaddr;
 
-        strlcpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        strncpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        ifrq.ifr_name[ sizeof(ifrq.ifr_name)-1 ] = 0;
         if (ioctl(fd, SIOCGIFNETMASK, &ifrq) < 0)
             memset((char *) &nnew->ia_subnetmask, 0,
                    sizeof(nnew->ia_subnetmask));
         else
             nnew->ia_subnetmask = ifrq.ifr_netmask;
 
-        strlcpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        strncpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        ifrq.ifr_name[ sizeof(ifrq.ifr_name)-1 ] = 0;
         nnew->if_flags = ioctl(fd, SIOCGIFFLAGS, &ifrq) < 0
             ? 0 : ifrq.ifr_flags;
 
@@ -1708,7 +1672,8 @@ Interface_Scan_Init(void)
          * 4 bytes of sa_data.
          */
         memset(ifrq.ifr_hwaddr.sa_data, (0), IFHWADDRLEN);
-        strlcpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        strncpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        ifrq.ifr_name[ sizeof(ifrq.ifr_name)-1 ] = 0;
         if (ioctl(fd, SIOCGIFHWADDR, &ifrq) < 0)
             memset(nnew->if_hwaddr, (0), IFHWADDRLEN);
         else {
@@ -1765,12 +1730,14 @@ Interface_Scan_Init(void)
 #endif
         }
 
-        strlcpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        strncpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        ifrq.ifr_name[ sizeof(ifrq.ifr_name)-1 ] = 0;
         nnew->if_metric = ioctl(fd, SIOCGIFMETRIC, &ifrq) < 0
             ? 0 : ifrq.ifr_metric;
 
 #ifdef SIOCGIFMTU
-        strlcpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        strncpy(ifrq.ifr_name, ifname, sizeof(ifrq.ifr_name));
+        ifrq.ifr_name[ sizeof(ifrq.ifr_name)-1 ] = 0;
         nnew->if_mtu = (ioctl(fd, SIOCGIFMTU, &ifrq) < 0)
             ? 0 : ifrq.ifr_mtu;
 #else
@@ -1849,22 +1816,6 @@ Interface_Scan_Next(short *Index,
                     char *Name,
                     struct ifnet *Retifnet, struct in_ifaddr *dummy)
 {
-    int returnIndex = 0;
-    int ret;
-    if (Index)
-        returnIndex = *Index;
-
-    ret = Interface_Scan_NextInt( &returnIndex, Name, Retifnet, dummy );
-    if (Index)
-        *Index = (returnIndex & 0x8fff);
-    return ret;
-}
-
-int
-Interface_Scan_NextInt(int *Index,
-                    char *Name,
-                    struct ifnet *Retifnet, struct in_ifaddr *dummy)
-{
     struct ifnet    ifnet;
     register char  *cp;
 
@@ -1896,18 +1847,15 @@ Interface_Scan_NextInt(int *Index,
         }
 #else
         ifnet = *ifnetaddr;
-        strlcpy(saveName, ifnet.if_name, sizeof(saveName));
+        strncpy(saveName, ifnet.if_name, sizeof(saveName));
 #endif
 
         saveName[sizeof(saveName) - 1] = '\0';
         cp = (char *) strchr(saveName, '\0');
 #ifdef linux
-        strlcat(saveName, ifnet.if_unit, sizeof(saveName));
+        strncat(cp, ifnet.if_unit, sizeof(saveName)-strlen(saveName)-1);
+        saveName[sizeof(saveName) - 1] = '\0';
 #else
-#ifdef NETSNMP_FEATURE_CHECKIN
-        /* this exists here just so we don't copy ifdef logic elsewhere */
-        netsnmp_feature_require(string_append_int);
-#endif
         string_append_int(cp, ifnet.if_unit);
 #endif
         if (1 || strcmp(saveName, "lo0") != 0) {        /* XXX */
@@ -1933,11 +1881,11 @@ Interface_Scan_NextInt(int *Index,
 int
 Interface_Index_By_Name(char *Name, int Len)
 {
-    int             ifIndex = 0;
+    short           ifIndex = 0;
     char            ifName[20];
 
     Interface_Scan_Init();
-    while (Interface_Scan_NextInt(&ifIndex, ifName, NULL, NULL)
+    while (Interface_Scan_Next(&ifIndex, ifName, NULL, NULL)
            && strcmp(Name, ifName));
     return ifIndex;
 }
@@ -1952,23 +1900,9 @@ Interface_Index_By_Name(char *Name, int Len)
 #endif
 
 #if defined(hpux11)
-int
-Interface_Scan_Next(short *Index, char *Name, nmapi_phystat * Retifnet)
-{
-    int returnIndex = 0;
-    int ret;
-    if (Index)
-        returnIndex = *Index;
-
-    ret = Interface_Scan_NextInt( &returnIndex, Name, Retifnet );
-    if (Index)
-        *Index = (returnIndex & 0x8fff);
-    return ret;
-}
-
 
 int
-Interface_Scan_NextInt(int *Index, char *Name, nmapi_phystat * Retifnet)
+Interface_Scan_Next(short *Index, char *Name, nmapi_phystat * Retifnet)
 {
     static nmapi_phystat *if_ptr = (nmapi_phystat *) 0;
     int             count = Interface_Scan_Get_Count();
@@ -1976,13 +1910,10 @@ Interface_Scan_NextInt(int *Index, char *Name, nmapi_phystat * Retifnet)
     int             ret;
 
     if (!if_ptr) {
-        if (count) {
+        if (count)
             if_ptr =
                 (nmapi_phystat *) malloc(sizeof(nmapi_phystat) * count);
-            if (if_ptr == NULL)
-                return (0);
-
-        } else
+        else
             return (0);         /* EOF */
     }
 
@@ -2004,32 +1935,16 @@ Interface_Scan_NextInt(int *Index, char *Name, nmapi_phystat * Retifnet)
 }
 
 #else                           /* hpux11 */
-int
-Interface_Scan_Next(short *Index,
-                    char *Name,
-                    struct ifnet *Retifnet, struct in_ifaddr *Retin_ifaddr)
-{
-    int returnIndex = 0;
-    int ret;
-    if (Index)
-        returnIndex = *Index;
-
-    ret = Interface_Scan_NextInt( &returnIndex, Name, Retifnet, Retin_ifaddr );
-    if (Index)
-        *Index = (returnIndex & 0x8fff);
-    return ret;
-}
-
 
 int
-Interface_Scan_NextInt(int *Index,
+Interface_Scan_Next(short *Index,
                     char *Name,
                     struct ifnet *Retifnet, struct in_ifaddr *Retin_ifaddr)
 {
     struct ifnet    ifnet;
     struct in_ifaddr *ia, in_ifaddr;
     short           has_ipaddr = 0;
-#if !HAVE_STRUCT_IFNET_IF_XNAME
+#if !STRUCT_IFNET_HAS_IF_XNAME
     register char  *cp;
 #endif
 
@@ -2041,9 +1956,9 @@ Interface_Scan_NextInt(int *Index,
             DEBUGMSGTL(("mibII/interfaces:Interface_Scan_Next", "klookup failed\n"));
             break;
         }
-#if HAVE_STRUCT_IFNET_IF_XNAME
+#if STRUCT_IFNET_HAS_IF_XNAME
 #if defined(netbsd1) || defined(openbsd2)
-        strlcpy(saveName, ifnet.if_xname, sizeof(saveName));
+        strncpy(saveName, ifnet.if_xname, sizeof saveName);
 #else
         if (!NETSNMP_KLOOKUP(ifnet.if_xname, (char *) saveName, sizeof saveName)) {
             DEBUGMSGTL(("mibII/interfaces:Interface_Scan_Next", "klookup failed\n"));
@@ -2059,10 +1974,6 @@ Interface_Scan_NextInt(int *Index,
 
         saveName[sizeof(saveName) - 1] = '\0';
         cp = strchr(saveName, '\0');
-#ifdef NETSNMP_FEATURE_CHECKIN
-        /* this exists here just so we don't copy ifdef logic elsewhere */
-        netsnmp_feature_require(string_append_int);
-#endif
         string_append_int(cp, ifnet.if_unit);
 #endif
         if (1 || strcmp(saveName, "lo0") != 0) {        /* XXX */
@@ -2104,7 +2015,7 @@ Interface_Scan_NextInt(int *Index,
 #endif
             }
 
-#if !defined(netbsd1) && !defined(freebsd2) && !defined(openbsd2) && !defined(HAVE_STRUCT_IFNET_IF_ADDRLIST)
+#if !defined(netbsd1) && !defined(freebsd2) && !defined(openbsd2) && !defined(STRUCT_IFNET_HAS_IF_ADDRLIST)
             ifnet.if_addrlist = (struct ifaddr *) ia;   /* WRONG DATA TYPE; ONLY A FLAG */
 #endif
             /*
@@ -2143,10 +2054,10 @@ Interface_Scan_NextInt(int *Index,
 static int
 Interface_Scan_By_Index(int Index, char *Name, nmapi_phystat * Retifnet)
 {
-    int           i;
+    short           i;
 
     Interface_Scan_Init();
-    while (Interface_Scan_NextInt(&i, Name, Retifnet)) {
+    while (Interface_Scan_Next(&i, Name, Retifnet)) {
         if (i == Index)
             break;
     }
@@ -2163,10 +2074,10 @@ Interface_Scan_By_Index(int Index,
                         struct ifnet *Retifnet,
                         struct in_ifaddr *Retin_ifaddr)
 {
-    int           i;
+    short           i;
 
     Interface_Scan_Init();
-    while (Interface_Scan_NextInt(&i, Name, Retifnet, Retin_ifaddr)) {
+    while (Interface_Scan_Next(&i, Name, Retifnet, Retin_ifaddr)) {
         if (i == Index)
             break;
     }
@@ -2206,17 +2117,18 @@ Interface_Scan_Get_Count(void)
 
 #else                           /* hpux11 */
 
+static time_t   scan_time = 0;
+
 int
 Interface_Scan_Get_Count(void)
 {
-    static time_t   scan_time = 0;
     time_t          time_now = time(NULL);
 
     if (!Interface_Count || (time_now > scan_time + 60)) {
         scan_time = time_now;
         Interface_Scan_Init();
         Interface_Count = 0;
-        while (Interface_Scan_NextInt(NULL, NULL, NULL, NULL) != 0) {
+        while (Interface_Scan_Next(NULL, NULL, NULL, NULL) != 0) {
             Interface_Count++;
         }
     }
@@ -2227,7 +2139,7 @@ Interface_Scan_Get_Count(void)
 static int
 Interface_Get_Ether_By_Index(int Index, u_char * EtherAddr)
 {
-    int             i;
+    short           i;
 #if !(defined(linux) || defined(netbsd1) || defined(bsdi2) || defined(openbsd2))
     struct arpcom   arpcom;
 #else                           /* is linux or netbsd1 */
@@ -2252,7 +2164,7 @@ Interface_Get_Ether_By_Index(int Index, u_char * EtherAddr)
 
         Interface_Scan_Init();
 
-        while (Interface_Scan_NextInt(&i, NULL, NULL, NULL) != 0) {
+        while (Interface_Scan_Next((short *) &i, NULL, NULL, NULL) != 0) {
             if (i == Index)
                 break;
         }
@@ -2565,10 +2477,10 @@ var_ifEntry(struct variable * vp,
      */
 
     switch (vp->magic) {
-    case NETSNMP_IFINDEX:
+    case IFINDEX:
         long_return = interface;
         return (u_char *) & long_return;
-    case NETSNMP_IFDESCR:
+    case IFDESCR:
         cp = ifmd.ifmd_name;
         *var_len = strlen(cp);
         return (u_char *) cp;
@@ -2578,16 +2490,16 @@ var_ifEntry(struct variable * vp,
         else
         long_return = ifmd.ifmd_data.ifi_type;
         return (u_char *) & long_return;
-    case NETSNMP_IFMTU:
+    case IFMTU:
         long_return = (long) ifmd.ifmd_data.ifi_mtu;
         return (u_char *) & long_return;
-    case NETSNMP_IFSPEED:
+    case IFSPEED:
         if (if_ptr)
             long_return = if_ptr->speed;
         else
         long_return = ifmd.ifmd_data.ifi_baudrate;
         return (u_char *) & long_return;
-    case NETSNMP_IFPHYSADDRESS:
+    case IFPHYSADDRESS:
         {
             char           *cp;
             if (get_phys_address(interface, &cp, var_len))
@@ -2595,13 +2507,13 @@ var_ifEntry(struct variable * vp,
             else
                 return cp;
         }
-    case NETSNMP_IFADMINSTATUS:
+    case IFADMINSTATUS:
         long_return = ifmd.ifmd_flags & IFF_UP ? 1 : 2;
         return (u_char *) & long_return;
-    case NETSNMP_IFOPERSTATUS:
+    case IFOPERSTATUS:
         long_return = ifmd.ifmd_flags & IFF_RUNNING ? 1 : 2;
         return (u_char *) & long_return;
-    case NETSNMP_IFLASTCHANGE:
+    case IFLASTCHANGE:
         if (ifmd.ifmd_data.ifi_lastchange.tv_sec == 0 &&
             ifmd.ifmd_data.ifi_lastchange.tv_usec == 0) {
             long_return = 0;
@@ -2615,45 +2527,45 @@ var_ifEntry(struct variable * vp,
                    starttime.tv_usec) / 10000));
         }
         return (u_char *) & long_return;
-    case NETSNMP_IFINOCTETS:
+    case IFINOCTETS:
         long_return = (u_long) ifmd.ifmd_data.ifi_ibytes;
         return (u_char *) & long_return;
-    case NETSNMP_IFINUCASTPKTS:
+    case IFINUCASTPKTS:
         long_return = (u_long) ifmd.ifmd_data.ifi_ipackets;
         long_return -= (u_long) ifmd.ifmd_data.ifi_imcasts;
         return (u_char *) & long_return;
-    case NETSNMP_IFINNUCASTPKTS:
+    case IFINNUCASTPKTS:
         long_return = (u_long) ifmd.ifmd_data.ifi_imcasts;
         return (u_char *) & long_return;
-    case NETSNMP_IFINDISCARDS:
+    case IFINDISCARDS:
         long_return = (u_long) ifmd.ifmd_data.ifi_iqdrops;
         return (u_char *) & long_return;
-    case NETSNMP_IFINERRORS:
+    case IFINERRORS:
         long_return = ifmd.ifmd_data.ifi_ierrors;
         return (u_char *) & long_return;
-    case NETSNMP_IFINUNKNOWNPROTOS:
+    case IFINUNKNOWNPROTOS:
         long_return = (u_long) ifmd.ifmd_data.ifi_noproto;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTOCTETS:
+    case IFOUTOCTETS:
         long_return = (u_long) ifmd.ifmd_data.ifi_obytes;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTUCASTPKTS:
+    case IFOUTUCASTPKTS:
         long_return = (u_long) ifmd.ifmd_data.ifi_opackets;
         long_return -= (u_long) ifmd.ifmd_data.ifi_omcasts;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTNUCASTPKTS:
+    case IFOUTNUCASTPKTS:
         long_return = (u_long) ifmd.ifmd_data.ifi_omcasts;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTDISCARDS:
+    case IFOUTDISCARDS:
         long_return = ifmd.ifmd_snd_drops;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTERRORS:
+    case IFOUTERRORS:
         long_return = ifmd.ifmd_data.ifi_oerrors;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTQLEN:
+    case IFOUTQLEN:
         long_return = ifmd.ifmd_snd_len;
         return (u_char *) & long_return;
-    case NETSNMP_IFSPECIFIC:
+    case IFSPECIFIC:
         *var_len = nullOidLen;
         return (u_char *) nullOid;
     default:
@@ -2666,12 +2578,10 @@ var_ifEntry(struct variable * vp,
 #endif                          /* HAVE_NET_IF_MIB_H */
 #endif                          /* !USE_SYSCTL_IFLIST */
 
-#elif defined(HAVE_IPHLPAPI_H)  /* WIN32 cygwin */
+#else                           /* WIN32 cygwin */
 #include <iphlpapi.h>
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 WriteMethod     writeIfEntry;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 long            admin_status = 0;
 long            oldadmin_status = 0;
 
@@ -2686,6 +2596,7 @@ header_ifEntry(struct variable *vp,
     register int    ifIndex;
     int             result, count;
     DWORD           status = NO_ERROR;
+    DWORD           statusRetry = NO_ERROR;
     DWORD           dwActualSize = 0;
     PMIB_IFTABLE    pIfTable = NULL;
 
@@ -2699,11 +2610,23 @@ header_ifEntry(struct variable *vp,
      * find "next" ifIndex 
      */
 
+
+    /*
+     * query for buffer size needed 
+     */
     status = GetIfTable(pIfTable, &dwActualSize, TRUE);
+
     if (status == ERROR_INSUFFICIENT_BUFFER) {
-        pIfTable = malloc(dwActualSize);
-        if (pIfTable)
+        /*
+         * need more space 
+         */
+        pIfTable = (PMIB_IFTABLE) malloc(dwActualSize);
+        if (pIfTable != NULL) {
+            /*
+             * Get the sorted IF table 
+             */
             GetIfTable(pIfTable, &dwActualSize, TRUE);
+        }
     }
     count = pIfTable->dwNumEntries;
     for (ifIndex = 0; ifIndex < count; ifIndex++) {
@@ -2715,12 +2638,12 @@ header_ifEntry(struct variable *vp,
         if ((exact && (result == 0)) || (!exact && (result < 0)))
             break;
     }
-    if (ifIndex >= count) {
+    if (ifIndex > count) {
         DEBUGMSGTL(("mibII/interfaces", "... index out of range\n"));
-        count = MATCH_FAILED;
-        goto out;
+        return MATCH_FAILED;
     }
 
+
     memcpy((char *) name, (char *) newname,
            ((int) vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
@@ -2732,7 +2655,6 @@ header_ifEntry(struct variable *vp,
     DEBUGMSG(("mibII/interfaces", "\n"));
 
     count = pIfTable->table[ifIndex].dwIndex;
-out:
     free(pIfTable);
     return count;
 }
@@ -2750,9 +2672,8 @@ var_interfaces(struct variable * vp,
         return NULL;
 
     switch (vp->magic) {
-    case NETSNMP_IFNUMBER:
-        netsnmp_assert(sizeof(DWORD) == sizeof(long_return));
-        GetNumberOfInterfaces((DWORD *) &long_return);
+    case IFNUMBER:
+        GetNumberOfInterfaces(&long_return);
         return (u_char *) & long_return;
     default:
         DEBUGMSGTL(("snmpd", "unknown sub-id %d in var_interfaces\n",
@@ -2788,10 +2709,10 @@ var_ifEntry(struct variable * vp,
     if (GetIfEntry(&ifRow) != NO_ERROR)
         return NULL;
     switch (vp->magic) {
-    case NETSNMP_IFINDEX:
+    case IFINDEX:
         long_return = ifIndex;
         return (u_char *) & long_return;
-    case NETSNMP_IFDESCR:
+    case IFDESCR:
         *var_len = ifRow.dwDescrLen;
         return (u_char *) ifRow.bDescr;
     case NETSNMP_IFTYPE:
@@ -2800,70 +2721,68 @@ var_ifEntry(struct variable * vp,
         else
         long_return = ifRow.dwType;
         return (u_char *) & long_return;
-    case NETSNMP_IFMTU:
+    case IFMTU:
         long_return = (long) ifRow.dwMtu;
         return (u_char *) & long_return;
-    case NETSNMP_IFSPEED:
+    case IFSPEED:
         if (if_ptr)
-            long_return = (long) if_ptr->speed;
+            long_return = if_ptr->speed;
         else
         long_return = (long) ifRow.dwSpeed;
         return (u_char *) & long_return;
-    case NETSNMP_IFPHYSADDRESS:
+    case IFPHYSADDRESS:
         *var_len = ifRow.dwPhysAddrLen;
         memcpy(return_buf, ifRow.bPhysAddr, *var_len);
         return (u_char *) return_buf;
-    case NETSNMP_IFADMINSTATUS:
+    case IFADMINSTATUS:
         long_return = ifRow.dwAdminStatus;
         admin_status = long_return;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = writeIfEntry;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         return (u_char *) & long_return;
-    case NETSNMP_IFOPERSTATUS:
+    case IFOPERSTATUS:
         long_return =
            (MIB_IF_OPER_STATUS_OPERATIONAL == ifRow.dwOperStatus) ? 1 : 2;
         return (u_char *) & long_return;
-    case NETSNMP_IFLASTCHANGE:
+    case IFLASTCHANGE:
         long_return = 0 /* XXX not a UNIX epochal time ifRow.dwLastChange */ ;
         return (u_char *) & long_return;
-    case NETSNMP_IFINOCTETS:
+    case IFINOCTETS:
         long_return = ifRow.dwInOctets;
         return (u_char *) & long_return;
-    case NETSNMP_IFINUCASTPKTS:
+    case IFINUCASTPKTS:
         long_return = ifRow.dwInUcastPkts;
         return (u_char *) & long_return;
-    case NETSNMP_IFINNUCASTPKTS:
+    case IFINNUCASTPKTS:
         long_return = ifRow.dwInNUcastPkts;
         return (u_char *) & long_return;
-    case NETSNMP_IFINDISCARDS:
+    case IFINDISCARDS:
         long_return = ifRow.dwInDiscards;
         return (u_char *) & long_return;
-    case NETSNMP_IFINERRORS:
+    case IFINERRORS:
         long_return = ifRow.dwInErrors;
         return (u_char *) & long_return;
-    case NETSNMP_IFINUNKNOWNPROTOS:
+    case IFINUNKNOWNPROTOS:
         long_return = ifRow.dwInUnknownProtos;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTOCTETS:
+    case IFOUTOCTETS:
         long_return = ifRow.dwOutOctets;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTUCASTPKTS:
+    case IFOUTUCASTPKTS:
         long_return = ifRow.dwOutUcastPkts;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTNUCASTPKTS:
+    case IFOUTNUCASTPKTS:
         long_return = ifRow.dwOutNUcastPkts;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTDISCARDS:
+    case IFOUTDISCARDS:
         long_return = ifRow.dwOutDiscards;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTERRORS:
+    case IFOUTERRORS:
         long_return = ifRow.dwOutErrors;
         return (u_char *) & long_return;
-    case NETSNMP_IFOUTQLEN:
+    case IFOUTQLEN:
         long_return = ifRow.dwOutQLen;
         return (u_char *) & long_return;
-    case NETSNMP_IFSPECIFIC:
+    case IFSPECIFIC:
         *var_len = nullOidLen;
         return (u_char *) nullOid;
     default:
@@ -2874,7 +2793,6 @@ var_ifEntry(struct variable * vp,
 }
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 int
 writeIfEntry(int action,
              u_char * var_val,
@@ -2883,7 +2801,7 @@ writeIfEntry(int action,
              u_char * statP, oid * name, size_t name_len)
 {
     MIB_IFROW       ifEntryRow;
-    if ((char) name[9] != NETSNMP_IFADMINSTATUS) {
+    if ((char) name[9] != IFADMINSTATUS) {
         return SNMP_ERR_NOTWRITABLE;
     }
 
@@ -2933,7 +2851,7 @@ writeIfEntry(int action,
          */
         if (SetIfEntry(&ifEntryRow) != NO_ERROR) {
             snmp_log(LOG_ERR,
-                     "Error in writeIfEntry case COMMIT with index: %lu & adminStatus %lu\n",
+                     "Error in writeIfEntry case COMMIT with index: %d & adminStatus %d\n",
                      ifEntryRow.dwIndex, ifEntryRow.dwAdminStatus);
             return SNMP_ERR_COMMITFAILED;
         }
@@ -2946,5 +2864,4 @@ writeIfEntry(int action,
     }
     return SNMP_ERR_NOERROR;
 }                               /* end of writeIfEntry */
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
 #endif                          /* WIN32 cygwin */
diff --git a/agent/mibgroup/mibII/interfaces.h b/agent/mibgroup/mibII/interfaces.h
index c19b7a6..b409ce5 100644
--- a/agent/mibgroup/mibII/interfaces.h
+++ b/agent/mibgroup/mibII/interfaces.h
@@ -8,7 +8,7 @@
 /***********************************************************************
  * configure macros
  */
-config_require(util_funcs/header_generic)
+config_require(util_funcs)
 
 /*
  * conflicts with the new MFD rewrite
@@ -47,12 +47,9 @@ config_require(mibII/var_route)
 #endif
 #if defined(hpux11)
      int             Interface_Scan_Next(short *, char *, nmapi_phystat *);
-     int             Interface_Scan_NextInt(int *, char *, nmapi_phystat *);
 #else
      int             Interface_Scan_Next(short *, char *, struct ifnet *,
                                          struct in_ifaddr *);
-     int             Interface_Scan_NextInt(int *, char *, struct ifnet *,
-                                         struct in_ifaddr *);
 #endif
 
      void            init_interfaces(void);
@@ -61,29 +58,29 @@ config_require(mibII/var_route)
 
 #endif /* USING_IF_MIB_IFTABLE_MODULE */
 
-#define NETSNMP_IFNUMBER        0
-#define NETSNMP_IFINDEX         1
-#define NETSNMP_IFDESCR         2
+#define IFNUMBER        0
+#define IFINDEX         1
+#define IFDESCR         2
 #define NETSNMP_IFTYPE          3
-#define NETSNMP_IFMTU           4
-#define NETSNMP_IFSPEED         5
-#define NETSNMP_IFPHYSADDRESS   6
-#define NETSNMP_IFADMINSTATUS   7
-#define NETSNMP_IFOPERSTATUS    8
-#define NETSNMP_IFLASTCHANGE    9
-#define NETSNMP_IFINOCTETS      10
-#define NETSNMP_IFINUCASTPKTS   11
-#define NETSNMP_IFINNUCASTPKTS  12
-#define NETSNMP_IFINDISCARDS    13
-#define NETSNMP_IFINERRORS      14
-#define NETSNMP_IFINUNKNOWNPROTOS 15
-#define NETSNMP_IFOUTOCTETS     16
-#define NETSNMP_IFOUTUCASTPKTS  17
-#define NETSNMP_IFOUTNUCASTPKTS 18
-#define NETSNMP_IFOUTDISCARDS   19
-#define NETSNMP_IFOUTERRORS     20
-#define NETSNMP_IFOUTQLEN       21
-#define NETSNMP_IFSPECIFIC      22
+#define IFMTU           4
+#define IFSPEED         5
+#define IFPHYSADDRESS   6
+#define IFADMINSTATUS   7
+#define IFOPERSTATUS    8
+#define IFLASTCHANGE    9
+#define IFINOCTETS      10
+#define IFINUCASTPKTS   11
+#define IFINNUCASTPKTS  12
+#define IFINDISCARDS    13
+#define IFINERRORS      14
+#define IFINUNKNOWNPROTOS 15
+#define IFOUTOCTETS     16
+#define IFOUTUCASTPKTS  17
+#define IFOUTNUCASTPKTS 18
+#define IFOUTDISCARDS   19
+#define IFOUTERRORS     20
+#define IFOUTQLEN       21
+#define IFSPECIFIC      22
 
 #ifdef linux
 /*
diff --git a/agent/mibgroup/mibII/ip.c b/agent/mibgroup/mibII/ip.c
index 40b5d2f..7a85c5f 100644
--- a/agent/mibgroup/mibII/ip.c
+++ b/agent/mibgroup/mibII/ip.c
@@ -19,12 +19,12 @@
 #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/sysORTable.h>
 
-#include "util_funcs/MIB_STATS_CACHE_TIMEOUT.h"
+#include "util_funcs.h"
 #include "ip.h"
 #include "ipAddr.h"
 #include "interfaces.h"
+#include "sysORTable.h"
 
 #ifndef MIB_STATS_CACHE_TIMEOUT
 #define MIB_STATS_CACHE_TIMEOUT	5
@@ -33,10 +33,7 @@
 #define IP_STATS_CACHE_TIMEOUT	MIB_STATS_CACHE_TIMEOUT
 #endif
 
-#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
+#if defined(HAVE_LIBPERFSTAT_H) && (defined(aix4) || defined(aix5) || defined(aix6)) && !defined(FIRST_PROTOCOL)
 #include <libperfstat.h>
 #ifdef FIRST_PROTOCOL
 perfstat_protocol_t ps_proto;
@@ -67,69 +64,43 @@ extern void     init_routes(void);
  * information at 
  */
 struct variable1 ipaddr_variables[] = {
-    {IPADADDR,      ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ipAddrEntry, 1, {1}},
-    {IPADIFINDEX,   ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_ipAddrEntry, 1, {2}},
+    {IPADADDR,      ASN_IPADDRESS, RONLY, var_ipAddrEntry, 1, {1}},
+    {IPADIFINDEX,   ASN_INTEGER,   RONLY, var_ipAddrEntry, 1, {2}},
 #ifndef sunV3
-    {IPADNETMASK,   ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ipAddrEntry, 1, {3}},
+    {IPADNETMASK,   ASN_IPADDRESS, RONLY, var_ipAddrEntry, 1, {3}},
 #endif
-    {IPADBCASTADDR, ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_ipAddrEntry, 1, {4}},
-    {IPADREASMMAX,  ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_ipAddrEntry, 1, {5}}
+    {IPADBCASTADDR, ASN_INTEGER,   RONLY, var_ipAddrEntry, 1, {4}},
+    {IPADREASMMAX,  ASN_INTEGER,   RONLY, var_ipAddrEntry, 1, {5}}
 };
 
 struct variable1 iproute_variables[] = {
-    {IPROUTEDEST,    ASN_IPADDRESS, NETSNMP_OLDAPI_RWRITE,
-     var_ipRouteEntry, 1, {1}},
-    {IPROUTEIFINDEX, ASN_INTEGER,   NETSNMP_OLDAPI_RWRITE,
-     var_ipRouteEntry, 1, {2}},
-    {IPROUTEMETRIC1, ASN_INTEGER,   NETSNMP_OLDAPI_RWRITE,
-     var_ipRouteEntry, 1, {3}},
-    {IPROUTEMETRIC2, ASN_INTEGER,   NETSNMP_OLDAPI_RWRITE,
-     var_ipRouteEntry, 1, {4}},
-    {IPROUTEMETRIC3, ASN_INTEGER,   NETSNMP_OLDAPI_RWRITE,
-     var_ipRouteEntry, 1, {5}},
-    {IPROUTEMETRIC4, ASN_INTEGER,   NETSNMP_OLDAPI_RWRITE,
-     var_ipRouteEntry, 1, {6}},
-    {IPROUTENEXTHOP, ASN_IPADDRESS, NETSNMP_OLDAPI_RWRITE,
-     var_ipRouteEntry, 1, {7}},
-    {IPROUTETYPE,    ASN_INTEGER,   NETSNMP_OLDAPI_RWRITE,
-     var_ipRouteEntry, 1, {8}},
-    {IPROUTEPROTO,   ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_ipRouteEntry, 1, {9}},
-    {IPROUTEAGE,     ASN_INTEGER,   NETSNMP_OLDAPI_RWRITE,
-     var_ipRouteEntry, 1, {10}},
-    {IPROUTEMASK,    ASN_IPADDRESS, NETSNMP_OLDAPI_RWRITE,
-     var_ipRouteEntry, 1, {11}},
-    {IPROUTEMETRIC5, ASN_INTEGER,   NETSNMP_OLDAPI_RWRITE,
-     var_ipRouteEntry, 1, {12}},
-    {IPROUTEINFO,    ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_ipRouteEntry, 1, {13}}
+    {IPROUTEDEST,    ASN_IPADDRESS, RWRITE, var_ipRouteEntry, 1, {1}},
+    {IPROUTEIFINDEX, ASN_INTEGER,   RWRITE, var_ipRouteEntry, 1, {2}},
+    {IPROUTEMETRIC1, ASN_INTEGER,   RWRITE, var_ipRouteEntry, 1, {3}},
+    {IPROUTEMETRIC2, ASN_INTEGER,   RWRITE, var_ipRouteEntry, 1, {4}},
+    {IPROUTEMETRIC3, ASN_INTEGER,   RWRITE, var_ipRouteEntry, 1, {5}},
+    {IPROUTEMETRIC4, ASN_INTEGER,   RWRITE, var_ipRouteEntry, 1, {6}},
+    {IPROUTENEXTHOP, ASN_IPADDRESS, RWRITE, var_ipRouteEntry, 1, {7}},
+    {IPROUTETYPE,    ASN_INTEGER,   RWRITE, var_ipRouteEntry, 1, {8}},
+    {IPROUTEPROTO,   ASN_INTEGER,   RONLY,  var_ipRouteEntry, 1, {9}},
+    {IPROUTEAGE,     ASN_INTEGER,   RWRITE, var_ipRouteEntry, 1, {10}},
+    {IPROUTEMASK,    ASN_IPADDRESS, RWRITE, var_ipRouteEntry, 1, {11}},
+    {IPROUTEMETRIC5, ASN_INTEGER,   RWRITE, var_ipRouteEntry, 1, {12}},
+    {IPROUTEINFO,    ASN_OBJECT_ID, RONLY,  var_ipRouteEntry, 1, {13}}
 };
 
 struct variable1 ipmedia_variables[] = {
 #ifdef USING_MIBII_AT_MODULE
 #if defined (WIN32) || defined (cygwin)
-    {IPMEDIAIFINDEX,     ASN_INTEGER,   NETSNMP_OLDAPI_RWRITE,
-     var_atEntry, 1, {1}},
-    {IPMEDIAPHYSADDRESS, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_atEntry, 1, {2}},
-    {IPMEDIANETADDRESS,  ASN_IPADDRESS, NETSNMP_OLDAPI_RWRITE,
-     var_atEntry, 1, {3}},
-    {IPMEDIATYPE,        ASN_INTEGER,   NETSNMP_OLDAPI_RWRITE,
-     var_atEntry, 1, {4}}
+    {IPMEDIAIFINDEX,     ASN_INTEGER,   RWRITE, var_atEntry, 1, {1}},
+    {IPMEDIAPHYSADDRESS, ASN_OCTET_STR, RWRITE, var_atEntry, 1, {2}},
+    {IPMEDIANETADDRESS,  ASN_IPADDRESS, RWRITE, var_atEntry, 1, {3}},
+    {IPMEDIATYPE,        ASN_INTEGER,   RWRITE, var_atEntry, 1, {4}}
 #else
-    {IPMEDIAIFINDEX,     ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_atEntry, 1, {1}},
-    {IPMEDIAPHYSADDRESS, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_atEntry, 1, {2}},
-    {IPMEDIANETADDRESS,  ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_atEntry, 1, {3}},
-    {IPMEDIATYPE,        ASN_INTEGER,   NETSNMP_OLDAPI_RONLY,
-     var_atEntry, 1, {4}}
+    {IPMEDIAIFINDEX,     ASN_INTEGER,   RONLY, var_atEntry, 1, {1}},
+    {IPMEDIAPHYSADDRESS, ASN_OCTET_STR, RONLY, var_atEntry, 1, {2}},
+    {IPMEDIANETADDRESS,  ASN_IPADDRESS, RONLY, var_atEntry, 1, {3}},
+    {IPMEDIATYPE,        ASN_INTEGER,   RONLY, var_atEntry, 1, {4}}
 #endif
 #endif
 };
@@ -151,7 +122,6 @@ void
 init_ip(void)
 {
     netsnmp_handler_registration *reginfo;
-    int rc;
 
     /*
      * register ourselves with the agent as a group of scalars...
@@ -159,9 +129,7 @@ init_ip(void)
     DEBUGMSGTL(("mibII/ip", "Initialising IP group\n"));
     reginfo = netsnmp_create_handler_registration("ip", ip_handler,
                             ip_oid, OID_LENGTH(ip_oid), HANDLER_CAN_RONLY);
-    rc = netsnmp_register_scalar_group(reginfo, IPFORWARDING, IPROUTEDISCARDS);
-    if (rc != SNMPERR_SUCCESS)
-        return;
+    netsnmp_register_scalar_group(reginfo, IPFORWARDING, IPROUTEDISCARDS);
 
     /*
      * .... with a local cache
@@ -231,13 +199,7 @@ init_ip(void)
 #define	USES_SNMP_DESIGNED_IPSTAT
 #endif
 
-#ifdef NETBSD_STATS_VIA_SYSCTL
-#define IP_STAT_STRUCTURE	struct ip_mib
-#define USES_SNMP_DESIGNED_IPSTAT
-#undef IP_NSTATS
-#endif
-
-#ifdef HAVE_IPHLPAPI_H
+#if defined (WIN32) || defined (cygwin)
 #include <iphlpapi.h>
 #define IP_STAT_STRUCTURE MIB_IPSTATS
 long            ipForwarding;
@@ -250,11 +212,6 @@ long            ipTTL, oldipTTL;
 #define	USES_TRADITIONAL_IPSTAT
 #endif
 
-#ifdef dragonfly
-#define IP_STAT_STRUCTURE	struct ip_stats
-#define	USES_TRADITIONAL_IPSTAT
-#endif
-
 #if !defined(IP_STAT_STRUCTURE)
 #define IP_STAT_STRUCTURE	struct ipstat
 #define	USES_TRADITIONAL_IPSTAT
@@ -287,9 +244,15 @@ ip_handler(netsnmp_mib_handler          *handler,
     /*
      * The cached data should already have been loaded by the
      *    cache handler, higher up the handler chain.
+     * But just to be safe, check this and load it manually if necessary
      */
 #ifdef _USE_PERFSTAT_PROTOCOL
     ip_load(NULL, NULL);
+#elif !defined(hpux11)
+    if (!netsnmp_cache_is_valid(reqinfo, reginfo->handlerName)) {
+        netsnmp_assert(!"cache == valid"); /* always false */
+        ip_load( NULL, NULL );	/* XXX - check for failure */
+    }
 #endif
 
 
@@ -410,7 +373,7 @@ ip_handler(netsnmp_mib_handler          *handler,
         ret_value = ipstat.ips_forward;
         break;
     case IPINUNKNOWNPROTOS:
-#if HAVE_STRUCT_IPSTAT_IPS_NOPROTO
+#if STRUCT_IPSTAT_HAS_IPS_NOPROTO
         ret_value = ipstat.ips_noproto;
         break;
 #else
@@ -418,7 +381,7 @@ ip_handler(netsnmp_mib_handler          *handler,
         continue;
 #endif
     case IPINDISCARDS:
-#if HAVE_STRUCT_IPSTAT_IPS_FRAGDROPPED
+#if STRUCT_IPSTAT_HAS_IPS_FRAGDROPPED
         ret_value = ipstat.ips_fragdropped;   /* ?? */
         break;
 #else
@@ -426,7 +389,7 @@ ip_handler(netsnmp_mib_handler          *handler,
         continue;
 #endif
     case IPINDELIVERS:
-#if HAVE_STRUCT_IPSTAT_IPS_DELIVERED
+#if STRUCT_IPSTAT_HAS_IPS_DELIVERED
         ret_value = ipstat.ips_delivered & 0xffffffff;
         break;
 #else
@@ -434,7 +397,7 @@ ip_handler(netsnmp_mib_handler          *handler,
         continue;
 #endif
     case IPOUTREQUESTS:
-#if HAVE_STRUCT_IPSTAT_IPS_LOCALOUT
+#if STRUCT_IPSTAT_HAS_IPS_LOCALOUT
         ret_value = ipstat.ips_localout & 0xffffffff;
         break;
 #else
@@ -442,7 +405,7 @@ ip_handler(netsnmp_mib_handler          *handler,
         continue;
 #endif
     case IPOUTDISCARDS:
-#if HAVE_STRUCT_IPSTAT_IPS_ODROPPED
+#if STRUCT_IPSTAT_HAS_IPS_ODROPPED
         ret_value = ipstat.ips_odropped;
         break;
 #else
@@ -465,7 +428,7 @@ ip_handler(netsnmp_mib_handler          *handler,
         ret_value = ipstat.ips_fragments;
         break;
     case IPREASMOKS:
-#if HAVE_STRUCT_IPSTAT_IPS_REASSEMBLED
+#if STRUCT_IPSTAT_HAS_IPS_REASSEMBLED
         ret_value = ipstat.ips_reassembled;
         break;
 #else
@@ -476,7 +439,7 @@ ip_handler(netsnmp_mib_handler          *handler,
         ret_value = ipstat.ips_fragdropped + ipstat.ips_fragtimeout;
         break;
     case IPFRAGOKS:
-#if HAVE_STRUCT_IPSTAT_IPS_FRAGMENTED
+#if STRUCT_IPSTAT_HAS_IPS_FRAGMENTED
         ret_value = ipstat.ips_fragments;
         break;
 #else            /* XXX */
@@ -485,7 +448,7 @@ ip_handler(netsnmp_mib_handler          *handler,
         break;
 #endif
     case IPFRAGFAILS:
-#if HAVE_STRUCT_IPSTAT_IPS_CANTFRAG
+#if STRUCT_IPSTAT_HAS_IPS_CANTFRAG
         ret_value = ipstat.ips_cantfrag;
         break;
 #else
@@ -493,7 +456,7 @@ ip_handler(netsnmp_mib_handler          *handler,
         continue;
 #endif
     case IPFRAGCREATES:
-#if HAVE_STRUCT_IPSTAT_IPS_OFRAGMENTS
+#if STRUCT_IPSTAT_HAS_IPS_OFRAGMENTS
         ret_value = ipstat.ips_ofragments;
         break;
 #else
@@ -501,7 +464,7 @@ ip_handler(netsnmp_mib_handler          *handler,
         continue;
 #endif
     case IPROUTEDISCARDS:
-#if HAVE_STRUCT_IPSTAT_IPS_NOROUTE
+#if STRUCT_IPSTAT_HAS_IPS_NOROUTE
         ret_value = ipstat.ips_noroute;
         break;
 #else
@@ -677,7 +640,6 @@ ip_handler(netsnmp_mib_handler          *handler,
 
     case MODE_GETNEXT:
     case MODE_GETBULK:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
 		/* XXX - Windows currently supports setting this */
     case MODE_SET_RESERVE2:
@@ -688,7 +650,6 @@ ip_handler(netsnmp_mib_handler          *handler,
         snmp_log(LOG_WARNING, "mibII/ip: Unsupported mode (%d)\n",
                                reqinfo->mode);
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     default:
         snmp_log(LOG_WARNING, "mibII/ip: Unrecognised mode (%d)\n",
                                reqinfo->mode);
@@ -831,21 +792,6 @@ ip_load(netsnmp_cache *cache, void *vmagic)
     }
     return ret_value;
 }
-#elif defined (NETBSD_STATS_VIA_SYSCTL)
-int
-ip_load(netsnmp_cache *cache, void *vmagic)
-{
-    long ret_value = -1;
-
-    ret_value = netbsd_read_ip_stat(&ipstat);
-
-    if ( ret_value < 0) {
-	DEBUGMSGTL(("mibII/ip", "Failed to load IP Group (netbsd)\n"));
-    } else {
-	DEBUGMSGTL(("mibII/ip", "Loaded IP Group (netbsd)\n"));
-    }
-    return ret_value;
-}
 #elif defined (WIN32) || defined (cygwin)
 int
 ip_load(netsnmp_cache *cache, void *vmagic)
diff --git a/agent/mibgroup/mibII/ip.h b/agent/mibgroup/mibII/ip.h
index 04c5651..57967ab 100644
--- a/agent/mibgroup/mibII/ip.h
+++ b/agent/mibgroup/mibII/ip.h
@@ -12,13 +12,8 @@ config_require(mibII/ipAddr)
 config_require(mibII/at)
 config_require(mibII/var_route mibII/route_write)
 
-config_arch_require(solaris2,        kernel_sunos5)
-config_arch_require(linux,     mibII/kernel_linux)
-config_arch_require(netbsd,    mibII/kernel_netbsd)
-config_arch_require(netbsd5,   mibII/kernel_netbsd)
-config_arch_require(netbsd6,   mibII/kernel_netbsd)
-config_arch_require(netbsdelf, mibII/kernel_netbsd)
-config_arch_require(netbsdelf5, mibII/kernel_netbsd)
+config_arch_require(solaris2, kernel_sunos5)
+config_arch_require(linux, mibII/kernel_linux)
 
 #include "var_route.h"
 #include "route_write.h"
diff --git a/agent/mibgroup/mibII/ipAddr.c b/agent/mibgroup/mibII/ipAddr.c
index a4d577e..bd2cf09 100644
--- a/agent/mibgroup/mibII/ipAddr.c
+++ b/agent/mibgroup/mibII/ipAddr.c
@@ -15,9 +15,8 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
-#if defined(NETSNMP_IFNET_NEEDS_KERNEL) && !defined(_KERNEL)
+#if defined(IFNET_NEEDS_KERNEL) && !defined(_KERNEL)
 #define _KERNEL 1
 #define _I_DEFINED_KERNEL
 #endif
@@ -40,6 +39,9 @@
 #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
@@ -116,13 +118,12 @@
 
 #include "ip.h"
 #include "interfaces.h"
+#include "sysORTable.h"
 
 #ifdef cygwin
 #include <windows.h>
 #endif
 
-netsnmp_feature_require(interface_legacy)
-
         /*********************
 	 *
 	 *  Kernel & interface information,
@@ -220,7 +221,7 @@ var_ipAddrEntry(struct variable *vp,
 #if !defined(freebsd2) && !defined(hpux11) && !defined(linux)
         if (Interface_Scan_Next(&interface, NULL, &ifnet, &in_ifaddr) == 0)
             break;
-#ifdef HAVE_STRUCT_IFNET_IF_ADDRLIST
+#ifdef STRUCT_IFNET_HAS_IF_ADDRLIST
         if (ifnet.if_addrlist == 0)
             continue;           /* No address found for interface */
 #endif
@@ -289,7 +290,7 @@ var_ipAddrEntry(struct variable *vp,
         return (NULL);
     memcpy((char *) name, (char *) lowest, 14 * sizeof(oid));
     *length = 14;
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long_return);
     switch (vp->magic) {
     case IPADADDR:
@@ -874,7 +875,7 @@ var_ipAddrEntry(struct variable *vp,
     oid             current[14], *op;
     u_char         *cp;
     int             lowinterface = -1;
-    int             i;
+    int             i, interface;
     static in_addr_t	addr_ret;
     
     /*
@@ -959,7 +960,7 @@ var_ipAddrEntry(struct variable *vp,
 
 #endif                          /* NETSNMP_CAN_USE_SYSCTL && IPCTL_STATS */
 
-#elif defined(HAVE_IPHLPAPI_H)  /* WIN32 cygwin */
+#else                           /* WIN32 cygwin */
 #include <iphlpapi.h>
 u_char         *
 var_ipAddrEntry(struct variable *vp,
@@ -981,7 +982,6 @@ var_ipAddrEntry(struct variable *vp,
     DWORD           status = NO_ERROR;
     DWORD           statusRetry = NO_ERROR;
     DWORD           dwActualSize = 0;
-    void           *result = NULL;
     static in_addr_t 	addr_ret;
     
     /*
@@ -1018,6 +1018,7 @@ var_ipAddrEntry(struct variable *vp,
                 }
             } else {
                 if (snmp_oid_compare(current, 14, name, *length) > 0) {
+
                     lowinterface = i;
                     memcpy(lowest, current, 14 * sizeof(oid));
                     break;      /* Since the table is sorted, no need to search further  */
@@ -1026,52 +1027,46 @@ var_ipAddrEntry(struct variable *vp,
         }
     }
 
-    if (lowinterface < 0)
-        goto out;
-
+    if (lowinterface < 0) {
+        free(pIpAddrTable);
+        return NULL;
+    }
     i = lowinterface;
     memcpy(name, lowest, 14 * sizeof(oid));
     *length = 14;
     *write_method = 0;
+    *var_len = sizeof(long_return);
     switch (vp->magic) {
     case IPADADDR:
-        *var_len = sizeof(addr_ret);
-        addr_ret = pIpAddrTable->table[i].dwAddr;
-        result = &addr_ret;
-        break;
+    	 *var_len = sizeof(addr_ret);
+    	 addr_ret = pIpAddrTable->table[i].dwAddr;
+        return (u_char *) & addr_ret;
 
     case IPADIFINDEX:
-        *var_len = sizeof(long_return);
         long_return = pIpAddrTable->table[i].dwIndex;
-        result = &long_return;
-        break;
+        free(pIpAddrTable);
+        return (u_char *) & long_return;
 
     case IPADNETMASK:
-        *var_len = sizeof(addr_ret);
+    	 *var_len = sizeof(addr_ret);
         addr_ret = pIpAddrTable->table[i].dwMask;
-        result = &addr_ret;
-        break;
+        free(pIpAddrTable);
+        return (u_char *) & addr_ret;
 
     case IPADBCASTADDR:
-        *var_len = sizeof(long_return);
         long_return = pIpAddrTable->table[i].dwBCastAddr;
-        result = &long_return;
-        break;
+        free(pIpAddrTable);
+        return (u_char *) & long_return;
 
     case IPADREASMMAX:
-        *var_len = sizeof(long_return);
         long_return = pIpAddrTable->table[i].dwReasmSize;
-        result = &long_return;
-        break;
+        free(pIpAddrTable);
+        return (u_char *) & long_return;
 
     default:
         DEBUGMSGTL(("snmpd", "unknown sub-id %d in var_ipAddrEntry\n",
                     vp->magic));
-        break;
     }
-
-out:
-    free(pIpAddrTable);
-    return result;
+    return NULL;
 }
 #endif                          /* WIN32 cygwin */
diff --git a/agent/mibgroup/mibII/ipAddr.h b/agent/mibgroup/mibII/ipAddr.h
index ec69cf3..526a060 100644
--- a/agent/mibgroup/mibII/ipAddr.h
+++ b/agent/mibgroup/mibII/ipAddr.h
@@ -5,6 +5,7 @@
 #ifndef _MIBGROUP_IPADDR_H
 #define _MIBGROUP_IPADDR_H
 
+config_require(util_funcs)
 #if !defined(NETSNMP_ENABLE_MFD_REWRITES)
 config_require(mibII/ip)
 #endif
diff --git a/agent/mibgroup/mibII/ipCidrRouteTable.c b/agent/mibgroup/mibII/ipCidrRouteTable.c
index c9ad6e7..1bb3db9 100644
--- a/agent/mibgroup/mibII/ipCidrRouteTable.c
+++ b/agent/mibgroup/mibII/ipCidrRouteTable.c
@@ -4,7 +4,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include "route_headers.h"
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
@@ -14,11 +13,6 @@
 
 #include "var_route.h"
 
-netsnmp_feature_require(oid_stash)
-netsnmp_feature_require(get_routes)
-netsnmp_feature_require(oid_stash_get_data)
-netsnmp_feature_require(oid_stash_add_data)
-
 static netsnmp_oid_stash_node *undoStorage;
 
 struct undoInfo {
@@ -79,7 +73,7 @@ initialize_table_ipCidrRouteTable(void)
                                      0);
 
     /** Define the minimum and maximum accessible columns.  This
-        optimizes retrieval. */
+        optimizes retrival. */
     table_info->min_column = 1;
     table_info->max_column = 16;
 
@@ -105,7 +99,7 @@ initialize_table_ipCidrRouteTable(void)
      */
     DEBUGMSGTL(("initialize_table_ipCidrRouteTable",
                 "Registering table ipCidrRouteTable as a table iterator\n"));
-    netsnmp_register_table_iterator2(my_handler, iinfo);
+    netsnmp_register_table_iterator(my_handler, iinfo);
 }
 
 /** Initializes the ipCidrRouteTable module */
@@ -266,10 +260,12 @@ ipCidrRouteTable_handler(netsnmp_mib_handler *handler,
 
     void           *data_context;
 
+    oid            *suffix;
+    size_t          suffix_len;
+
     /** column and row index encoded portion */
-    const oid * const suffix =
-        requests->requestvb->name + reginfo->rootoid_len + 1;
-    const size_t suffix_len = requests->requestvb->name_length -
+    suffix = requests->requestvb->name + reginfo->rootoid_len + 1;
+    suffix_len = requests->requestvb->name_length -
         (reginfo->rootoid_len + 1);
 
     for (request = requests; request; request = request->next) {
diff --git a/agent/mibgroup/mibII/ipv6.c b/agent/mibgroup/mibII/ipv6.c
index 99d50e8..896b810 100644
--- a/agent/mibgroup/mibII/ipv6.c
+++ b/agent/mibgroup/mibII/ipv6.c
@@ -4,18 +4,14 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#if defined(NETSNMP_IFNET_NEEDS_KERNEL) && !defined(_KERNEL)
+#if defined(IFNET_NEEDS_KERNEL) && !defined(_KERNEL)
 #define _KERNEL 1
 #define _I_DEFINED_KERNEL
 #endif
-#if NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES
-#endif
 #include <sys/types.h>
 #include <sys/param.h>
 #include <sys/socket.h>
-#if defined(freebsd3) || defined(darwin)
+#if (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
 # if HAVE_SYS_SOCKETVAR_H
 #  include <sys/socketvar.h>
 # endif
@@ -84,10 +80,7 @@
 # include <netinet6/ip6_var.h>
 #endif
 #include <net/route.h>
-#if defined(freebsd3) || defined(darwin) || defined(openbsd4)
-# if HAVE_NETINET_IP_H
-#  include <netinet/ip.h>
-# endif
+#if (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
 # if HAVE_NETINET_IN_PCB_H
 #  include <netinet/in_pcb.h>
 # endif
@@ -141,17 +134,10 @@
 #include <net-snmp/agent/auto_nlist.h>
 
 #include "kernel.h"
+#include "util_funcs.h"
 #include "ipv6.h"
 #include "interfaces.h"
 
-netsnmp_feature_require(linux_read_ip6_stat)
-
-#if defined(netbsd1) && !defined(openbsd4)
-#define inp_lport in6p_lport
-#define inp_fport in6p_fport
-#define inp_ppcb in6p_ppcb
-#endif
-
 static int header_ipv6
 (register struct variable *, oid *, size_t *, int, size_t *,
      WriteMethod **);
@@ -166,130 +152,101 @@ static int if_getindex (const char *);
 #endif
 
 struct variable3 ipv6_variables[] = {
-    {IPV6FORWARDING, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipv6, 1, {1}},
-    {IPV6DEFAULTHOPLIMIT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipv6, 1, {2}},
-    {IPV6INTERFACES, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_ipv6, 1, {3}},
-    {IPV6IFTBLLASTCHG, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_ipv6, 1, {4}},
-
-    {IPV6IFDESCR, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {5, 1, 2}},
-    {IPV6IFLOWLAYER, ASN_OBJECT_ID, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {5, 1, 3}},
-    {IPV6IFEFFECTMTU, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {5, 1, 4}},
-    {IPV6IFREASMMAXSIZE, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {5, 1, 5}},
-
-    {IPV6IFTOKEN, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {5, 1, 6}},
-    {IPV6IFTOKENLEN, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {5, 1, 7}},
-    {IPV6IFPHYSADDRESS, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {5, 1, 8}},
-    {IPV6IFADMSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {5, 1, 9}},
-    {IPV6IFOPERSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {5, 1, 10}},
-    {IPV6IFLASTCHANGE, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {5, 1, 11}},
-
-    {IPV6IFSTATSINRCVS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 1}},
-    {IPV6IFSTATSINHDRERRS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 2}},
-    {IPV6IFSTATSTOOBIGERRS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 3}},
-    {IPV6IFSTATSINNOROUTES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 4}},
-    {IPV6IFSTATSINADDRERRS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 5}},
-    {IPV6IFSTATSINUNKNOWPROTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 6}},
-    {IPV6IFSTATSINTRUNCATPKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 7}},
-    {IPV6IFSTATSINDISCARDS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 8}},
-    {IPV6IFSTATSINDELIVERS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 9}},
-    {IPV6IFSTATSOUTFORWDATAS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 10}},
-    {IPV6IFSTATSOUTREQS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 11}},
-    {IPV6IFSTATSOUTDISCARDS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 12}},
-    {IPV6IFSTATSOUTFRAGOKS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 13}},
-    {IPV6IFSTATSOUTFRAGFAILS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 14}},
-    {IPV6IFSTATSOUTFRAGCREATS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 15}},
-    {IPV6IFSTATSOUTREASMREQS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 16}},
-    {IPV6IFSTATSOUTREASMOKS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 17}},
-    {IPV6IFSTATSOUTREASMFAILS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 18}},
-    {IPV6IFSTATSINMCASTPKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 19}},
-    {IPV6IFSTATSOUTMCASTPKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ifv6Entry, 3, {6, 1, 20}},
+    {IPV6FORWARDING, ASN_INTEGER, RONLY, var_ipv6, 1, {1}},
+    {IPV6DEFAULTHOPLIMIT, ASN_INTEGER, RONLY, var_ipv6, 1, {2}},
+    {IPV6INTERFACES, ASN_GAUGE, RONLY, var_ipv6, 1, {3}},
+    {IPV6IFTBLLASTCHG, ASN_TIMETICKS, RONLY, var_ipv6, 1, {4}},
+
+    {IPV6IFDESCR, ASN_OCTET_STR, RONLY, var_ifv6Entry, 3, {5, 1, 2}},
+    {IPV6IFLOWLAYER, ASN_OBJECT_ID, RONLY, var_ifv6Entry, 3, {5, 1, 3}},
+    {IPV6IFEFFECTMTU, ASN_UNSIGNED, RONLY, var_ifv6Entry, 3, {5, 1, 4}},
+    {IPV6IFREASMMAXSIZE, ASN_UNSIGNED, RONLY, var_ifv6Entry, 3, {5, 1, 5}},
+
+    {IPV6IFTOKEN, ASN_OCTET_STR, RONLY, var_ifv6Entry, 3, {5, 1, 6}},
+    {IPV6IFTOKENLEN, ASN_INTEGER, RONLY, var_ifv6Entry, 3, {5, 1, 7}},
+    {IPV6IFPHYSADDRESS, ASN_OCTET_STR, RONLY, var_ifv6Entry, 3, {5, 1, 8}},
+    {IPV6IFADMSTATUS, ASN_INTEGER, RONLY, var_ifv6Entry, 3, {5, 1, 9}},
+    {IPV6IFOPERSTATUS, ASN_INTEGER, RONLY, var_ifv6Entry, 3, {5, 1, 10}},
+    {IPV6IFLASTCHANGE, ASN_TIMETICKS, RONLY, var_ifv6Entry, 3, {5, 1, 11}},
+
+    {IPV6IFSTATSINRCVS, ASN_COUNTER, RONLY, var_ifv6Entry, 3, {6, 1, 1}},
+    {IPV6IFSTATSINHDRERRS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 2}},
+    {IPV6IFSTATSTOOBIGERRS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 3}},
+    {IPV6IFSTATSINNOROUTES, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 4}},
+    {IPV6IFSTATSINADDRERRS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 5}},
+    {IPV6IFSTATSINUNKNOWPROTS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 6}},
+    {IPV6IFSTATSINTRUNCATPKTS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 7}},
+    {IPV6IFSTATSINDISCARDS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 8}},
+    {IPV6IFSTATSINDELIVERS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 9}},
+    {IPV6IFSTATSOUTFORWDATAS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 10}},
+    {IPV6IFSTATSOUTREQS, ASN_COUNTER, RONLY, var_ifv6Entry, 3, {6, 1, 11}},
+    {IPV6IFSTATSOUTDISCARDS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 12}},
+    {IPV6IFSTATSOUTFRAGOKS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 13}},
+    {IPV6IFSTATSOUTFRAGFAILS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 14}},
+    {IPV6IFSTATSOUTFRAGCREATS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 15}},
+    {IPV6IFSTATSOUTREASMREQS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 16}},
+    {IPV6IFSTATSOUTREASMOKS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 17}},
+    {IPV6IFSTATSOUTREASMFAILS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 18}},
+    {IPV6IFSTATSINMCASTPKTS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 19}},
+    {IPV6IFSTATSOUTMCASTPKTS, ASN_COUNTER, RONLY, var_ifv6Entry, 3,
+     {6, 1, 20}},
 
 #if 0
-    {IPV6ADDRPREFIXONLINKFLG, INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipv6AddrEntry, 3, {7, 1, 3}},
-    {IPV6ADDRPREFIXAUTONOMOUSFLAG, INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipv6AddrEntry, 3, {7, 1, 4}},
-    {IPV6ADDRPREFIXADVPREFERLIFE, UNSIGNED32, NETSNMP_OLDAPI_RONLY,
-     var_ipv6AddrEntry, 3, {7, 1, 5}},
-    {IPV6ADDRPREFIXVALIDLIFE, UNSIGNED32, NETSNMP_OLDAPI_RONLY,
-     var_ipv6AddrEntry, 3, {7, 1, 6}},
-
-    {IPV6ADDRPFXLEN, INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipv6AddrEntry, 3, {8, 1, 2}},
-    {IPV6ADDRTYPE, INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipv6AddrEntry, 3, {8, 1, 3}},
-    {IPV6ADDRANYCASTFLAG, INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipv6AddrEntry, 3, {8, 1, 4}},
-    {IPV6ADDRSTATUS, INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipv6AddrEntry, 3, {8, 1, 5}},
-
-    {IPV6ROUTEIFINDEX, IpV6IFINDEX, NETSNMP_OLDAPI_RONLY,
-     var_ipv6RouteEntry, 3, {11, 1, 4}},
-    {IPV6ROUTENEXTHOP, IpV6ADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ipv6RouteEntry, 3, {11, 1, 5}},
-    {IPV6ROUTETYPE, INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipv6RouteEntry, 3, {11, 1, 6}},
-    {IPV6ROUTEPROTOCOL, INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipv6RouteEntry, 3, {11, 1, 7}},
-    {IPV6ROUTEPOLICY, UNSIGNED32, NETSNMP_OLDAPI_RONLY,
-     var_ipv6RouteEntry, 3, {11, 1, 8}},
-    {IPV6ROUTEAGE, UNSIGNED32, NETSNMP_OLDAPI_RONLY,
-     var_ipv6RouteEntry, 3, {11, 1, 9}},
-    {IPV6ROUTENEXTHOPRDI, UNSIGNED32, NETSNMP_OLDAPI_RONLY,
-     var_ipv6RouteEntry, 3, {11, 1, 10}},
-    {IPV6ROUTEMETRIC, UNSIGNED32, NETSNMP_OLDAPI_RONLY,
-     var_ipv6RouteEntry, 3, {11, 1, 11}},
-    {IPV6ROUTEWEIGHT, UNSIGNED32, NETSNMP_OLDAPI_RONLY,
-     var_ipv6RouteEntry, 3, {11, 1, 12}},
-    {IPV6ROUTEINFO, OBJID, NETSNMP_OLDAPI_RONLY,
-     var_ipv6RouteEntry, 3, {11, 1, 13}},
-    {IPV6ROUTEVALID, INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipv6RouteEntry, 3, {11, 1, 14}},
-
-    {IPV6NETTOMEDIAPHYADDR, STRING, NETSNMP_OLDAPI_RONLY,
-     var_ndpEntry, 3, {12, 1, 2}},
-    {IPV6NETTOMEDIATYPE, INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ndpEntry, 3, {12, 1, 3}},
-    {IPV6NETTOMEDIASTATE, INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ndpEntry, 3, {12, 1, 4}},
-    {IPV6NETTOMEDIALASTUPDATE, TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_ndpEntry, 3, {12, 1, 5}},
-    {IPV6NETTOMEDIAVALID, INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ndpEntry, 3, {12, 1, 6}},
+    {IPV6ADDRPREFIXONLINKFLG, INTEGER, RONLY, var_ipv6AddrEntry, 3,
+     {7, 1, 3}},
+    {IPV6ADDRPREFIXAUTONOMOUSFLAG, INTEGER, RONLY, var_ipv6AddrEntry, 3,
+     {7, 1, 4}},
+    {IPV6ADDRPREFIXADVPREFERLIFE, UNSIGNED32, RONLY, var_ipv6AddrEntry, 3,
+     {7, 1, 5}},
+    {IPV6ADDRPREFIXVALIDLIFE, UNSIGNED32, RONLY, var_ipv6AddrEntry, 3,
+     {7, 1, 6}},
+
+    {IPV6ADDRPFXLEN, INTEGER, RONLY, var_ipv6AddrEntry, 3, {8, 1, 2}},
+    {IPV6ADDRTYPE, INTEGER, RONLY, var_ipv6AddrEntry, 3, {8, 1, 3}},
+    {IPV6ADDRANYCASTFLAG, INTEGER, RONLY, var_ipv6AddrEntry, 3, {8, 1, 4}},
+    {IPV6ADDRSTATUS, INTEGER, RONLY, var_ipv6AddrEntry, 3, {8, 1, 5}},
+
+    {IPV6ROUTEIFINDEX, IpV6IFINDEX, RONLY, var_ipv6RouteEntry, 3,
+     {11, 1, 4}},
+    {IPV6ROUTENEXTHOP, IpV6ADDRESS, RONLY, var_ipv6RouteEntry, 3,
+     {11, 1, 5}},
+    {IPV6ROUTETYPE, INTEGER, RONLY, var_ipv6RouteEntry, 3, {11, 1, 6}},
+    {IPV6ROUTEPROTOCOL, INTEGER, RONLY, var_ipv6RouteEntry, 3, {11, 1, 7}},
+    {IPV6ROUTEPOLICY, UNSIGNED32, RONLY, var_ipv6RouteEntry, 3,
+     {11, 1, 8}},
+    {IPV6ROUTEAGE, UNSIGNED32, RONLY, var_ipv6RouteEntry, 3, {11, 1, 9}},
+    {IPV6ROUTENEXTHOPRDI, UNSIGNED32, RONLY, var_ipv6RouteEntry, 3,
+     {11, 1, 10}},
+    {IPV6ROUTEMETRIC, UNSIGNED32, RONLY, var_ipv6RouteEntry, 3,
+     {11, 1, 11}},
+    {IPV6ROUTEWEIGHT, UNSIGNED32, RONLY, var_ipv6RouteEntry, 3,
+     {11, 1, 12}},
+    {IPV6ROUTEINFO, OBJID, RONLY, var_ipv6RouteEntry, 3, {11, 1, 13}},
+    {IPV6ROUTEVALID, INTEGER, RONLY, var_ipv6RouteEntry, 3, {11, 1, 14}},
+
+    {IPV6NETTOMEDIAPHYADDR, STRING, RONLY, var_ndpEntry, 3, {12, 1, 2}},
+    {IPV6NETTOMEDIATYPE, INTEGER, RONLY, var_ndpEntry, 3, {12, 1, 3}},
+    {IPV6NETTOMEDIASTATE, INTEGER, RONLY, var_ndpEntry, 3, {12, 1, 4}},
+    {IPV6NETTOMEDIALASTUPDATE, TIMETICKS, RONLY, var_ndpEntry, 3,
+     {12, 1, 5}},
+    {IPV6NETTOMEDIAVALID, INTEGER, RONLY, var_ndpEntry, 3, {12, 1, 6}},
 #endif
 };
 oid             ipv6_variables_oid[] = { SNMP_OID_MIB2, 55, 1 };
@@ -299,74 +256,74 @@ config_load_mib(MIB .55 .1, 8, ipv6_variables)
     config_add_mib(IPV6 - MIB)
 #endif
      struct variable3 ipv6icmp_variables[] = {
-         {IPV6IFICMPINMSG, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 1}},
-         {IPV6IFICMPINERRORS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 2}},
-         {IPV6IFICMPINDSTUNRCHS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 3}},
-         {IPV6IFICMPINADMPROHS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 4}},
-         {IPV6IFICMPINTIMEXCDS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 5}},
-         {IPV6IFICMPINPARMPROBS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 6}},
-         {IPV6IFICMPINPKTTOOBIGS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 7}},
-         {IPV6IFICMPINECHOS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 8}},
-         {IPV6IFICMPINECHOREPS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 9}},
-         {IPV6IFICMPINRTRSLICITS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 10}},
-         {IPV6IFICMPINRTRADVS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 11}},
-         {IPV6IFICMPINNBRSLICITS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 12}},
-         {IPV6IFICMPINNBRADVS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 13}},
-         {IPV6IFICMPINREDIRECTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 14}},
-         {IPV6IFICMPINGRPMEQERYS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 15}},
-         {IPV6IFICMPINGRPMERSPS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 16}},
-         {IPV6IFICMPINGRPMEREDCS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 17}},
-         {IPV6IFICMPOUTMSG, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 18}},
-         {IPV6IFICMPOUTERRORS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 19}},
-         {IPV6IFICMPOUTDSTUNRCHS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 20}},
-         {IPV6IFICMPOUTADMPROHS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 21}},
-         {IPV6IFICMPOUTTIMEXCDS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 22}},
-         {IPV6IFICMPOUTPARMPROBS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 23}},
-         {IPV6IFICMPOUTPKTTOOBIGS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 24}},
-         {IPV6IFICMPOUTECHOS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 25}},
-         {IPV6IFICMPOUTECHOREPS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 26}},
-         {IPV6IFICMPOUTRTRSLICITS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 27}},
-         {IPV6IFICMPOUTRTRADVS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 28}},
-         {IPV6IFICMPOUTNBRSLICITS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 29}},
-         {IPV6IFICMPOUTNBRADVS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 30}},
-         {IPV6IFICMPOUTREDIRECTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 31}},
-         {IPV6IFICMPOUTGRPMEQERYS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 32}},
-         {IPV6IFICMPOUTGRPMERSPS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 33}},
-         {IPV6IFICMPOUTGRPMEREDCS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-          var_icmpv6Entry, 3, {1, 1, 34}}
+         {IPV6IFICMPINMSG, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 1}},
+         {IPV6IFICMPINERRORS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 2}},
+         {IPV6IFICMPINDSTUNRCHS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 3}},
+         {IPV6IFICMPINADMPROHS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 4}},
+         {IPV6IFICMPINTIMEXCDS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 5}},
+         {IPV6IFICMPINPARMPROBS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 6}},
+         {IPV6IFICMPINPKTTOOBIGS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 7}},
+         {IPV6IFICMPINECHOS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 8}},
+         {IPV6IFICMPINECHOREPS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 9}},
+         {IPV6IFICMPINRTRSLICITS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 10}},
+         {IPV6IFICMPINRTRADVS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 11}},
+         {IPV6IFICMPINNBRSLICITS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 12}},
+         {IPV6IFICMPINNBRADVS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 13}},
+         {IPV6IFICMPINREDIRECTS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 14}},
+         {IPV6IFICMPINGRPMEQERYS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 15}},
+         {IPV6IFICMPINGRPMERSPS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 16}},
+         {IPV6IFICMPINGRPMEREDCS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 17}},
+         {IPV6IFICMPOUTMSG, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 18}},
+         {IPV6IFICMPOUTERRORS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 19}},
+         {IPV6IFICMPOUTDSTUNRCHS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 20}},
+         {IPV6IFICMPOUTADMPROHS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 21}},
+         {IPV6IFICMPOUTTIMEXCDS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 22}},
+         {IPV6IFICMPOUTPARMPROBS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 23}},
+         {IPV6IFICMPOUTPKTTOOBIGS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 24}},
+         {IPV6IFICMPOUTECHOS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 25}},
+         {IPV6IFICMPOUTECHOREPS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 26}},
+         {IPV6IFICMPOUTRTRSLICITS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 27}},
+         {IPV6IFICMPOUTRTRADVS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 28}},
+         {IPV6IFICMPOUTNBRSLICITS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 29}},
+         {IPV6IFICMPOUTNBRADVS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 30}},
+         {IPV6IFICMPOUTREDIRECTS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 31}},
+         {IPV6IFICMPOUTGRPMEQERYS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 32}},
+         {IPV6IFICMPOUTGRPMERSPS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 33}},
+         {IPV6IFICMPOUTGRPMEREDCS, ASN_COUNTER, RONLY, var_icmpv6Entry, 3,
+          {1, 1, 34}}
      };
 oid             ipv6icmp_variables_oid[] = { 1, 3, 6, 1, 2, 1, 56, 1 };
 #if 0
@@ -374,8 +331,9 @@ config_load_mib(MIB .56 .1, 8, ipv6icmp_variables)
     config_add_mib(IPV6 - ICMP - MIB)
 #endif
      struct variable2 ipv6udp_variables[] = {
-         {IPV6UDPIFINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-          var_udp6, 2, {1, 3}}
+         {IPV6UDPLOCALADDRESS, ASN_OCTET_STR, RONLY, var_udp6, 2, {1, 1}},
+         {IPV6UDPLOCALPORT, ASN_INTEGER, RONLY, var_udp6, 2, {1, 2}},
+         {IPV6UDPIFINDEX, ASN_INTEGER, RONLY, var_udp6, 2, {1, 3}}
      };
 oid             ipv6udp_variables_oid[] = { 1, 3, 6, 1, 2, 1, 7, 6 };
 #if 0
@@ -383,17 +341,20 @@ config_load_mib(1.3 .6 .1 .3 .87 .1, 7, ipv6udp_variables)
     config_add_mib(IPV6 - UDP - MIB)
 #endif
      struct variable2 ipv6tcp_variables[] = {
-         {IPV6TCPCONNSTATE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-          var_tcp6, 2, {1, 6}},
+         {IPV6TCPLOCALADDR, ASN_OCTET_STR, RONLY, var_tcp6, 2, {1, 1}},
+         {IPV6TCPLOCALPORT, ASN_INTEGER, RONLY, var_tcp6, 2, {1, 2}},
+         {IPV6TCPREMOTEADDR, ASN_OCTET_STR, RONLY, var_tcp6, 2, {1, 3}},
+         {IPV6TCPREMOTEPORT, ASN_INTEGER, RONLY, var_tcp6, 2, {1, 4}},
+         {IPV6TCPIFINDEX, ASN_INTEGER, RONLY, var_tcp6, 2, {1, 5}},
+         {IPV6TCPCONNSTATE, ASN_INTEGER, RONLY, var_tcp6, 2, {1, 6}},
      };
 oid             ipv6tcp_variables_oid[] = { 1, 3, 6, 1, 2, 1, 6, 16 };
 #if 0
 config_load_mib(1.3 .6 .1 .3 .86 .1, 7, ipv6tcp_variables)
     config_add_mib(IPV6 - TCP - MIB)
 #endif
-
-void
-init_ipv6(void)
+     void
+                     init_ipv6()
 {
     /*
      * register ourselves with the agent to handle our mib tree 
@@ -437,7 +398,7 @@ header_ipv6(register struct variable *vp,
            ((int) vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
 
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
     return (MATCH_SUCCEEDED);
 }
@@ -477,7 +438,7 @@ header_ipv6_scan(register struct variable *vp,
     memcpy((char *) name, (char *) newname,
            ((int) vp->namelen + 1) * sizeof(oid));
     *length = vp->namelen + 1;
-    *write_method = (WriteMethod*)0;
+    *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
     return (MATCH_SUCCEEDED);
 }
@@ -617,7 +578,7 @@ if_getifnet(int idx, struct ifnet *result)
             memcpy(result, &tmp, sizeof(tmp));
             return 0;
         }
-#if defined(freebsd3) || defined(darwin)
+#if (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
         q = (caddr_t) TAILQ_NEXT(&tmp, if_link);
 #else
 # if defined(__NetBSD__) || defined(__OpenBSD__)
@@ -779,10 +740,6 @@ var_ifv6Entry(register struct variable * vp,
     int             max;
     char           *p;
 
-    /* Reload list of interfaces */
-    if (if_initialize() < 0)
-        return NULL;
-
     max = if_maxifindex();
     if (max < 0)
         return NULL;
@@ -820,7 +777,8 @@ var_ifv6Entry(register struct variable * vp,
 
             memset(&ifr, 0, sizeof(ifr));
             ifr.ifr_addr.sa_family = AF_INET6;
-            strlcpy(ifr.ifr_name, if_getname(interface), sizeof(ifr.ifr_name));
+            strncpy(ifr.ifr_name, if_getname(interface),
+                    sizeof(ifr.ifr_name) - 1);
             if ((s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0)) < 0)
                 break;
             if (ioctl(s, SIOCGIFMTU, (caddr_t) & ifr) < 0) {
@@ -846,36 +804,13 @@ var_ifv6Entry(register struct variable * vp,
         {
             struct ifnet    ifnet;
             struct ifaddr   ifaddr;
-#if defined(__DragonFly__) && __DragonFly_version >= 197700
-            struct ifaddr_container ifac;
-            struct ifaddrhead head;
-#endif
             static struct sockaddr_dl sdl;
             caddr_t         ifa;
 
             if (if_getifnet(interface, &ifnet) < 0)
                 break;
-#if defined(freebsd3) || defined(darwin)
-# if defined(__DragonFly__) && __DragonFly_version >= 197700
-            /*
-             * Locate ifaddr head on CPU0
-             */
-            if (!NETSNMP_KLOOKUP(ifnet.if_addrheads, (char *)&head, sizeof(head))) {
-                DEBUGMSGTL(("mibII/ipv6:var_ipv6", "klookup head failed\n"));
-                break;
-            }
-            if (TAILQ_FIRST(&head) != NULL) {
-                 if (!NETSNMP_KLOOKUP(TAILQ_FIRST(&head), (char *) &ifac, sizeof(ifac))) {
-                    DEBUGMSGTL(("mibII/ipv6:var_ipv6", "klookup ifac failed\n"));
-                    break;
-                }
-                ifa = (caddr_t)ifac.ifa;
-            } else {
-                ifa = NULL;
-            }
-# else
+#if (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
             ifa = (caddr_t) TAILQ_FIRST(&ifnet.if_addrhead);
-# endif
 #else
 # if defined(__NetBSD__) || defined(__OpenBSD__)
             ifa = (caddr_t) TAILQ_FIRST(&ifnet.if_addrlist);
@@ -901,20 +836,8 @@ var_ifv6Entry(register struct variable * vp,
                     *var_len = sdl.sdl_alen;
                     return (u_char *) (sdl.sdl_data + sdl.sdl_nlen);
                 }
-#if defined(freebsd3) || defined(darwin)
-# if defined(__DragonFly__) && __DragonFly_version >= 197700
-                if (TAILQ_NEXT(&ifac, ifa_link) == NULL) {
-                    ifa = NULL;
-                } else {
-                    if (!NETSNMP_KLOOKUP(TAILQ_NEXT(&ifac, ifa_link), (char *)&ifac, sizeof(ifac))) {
-                        DEBUGMSGTL(("mibII/ipv6:var_ipv6", "klookup ifac next failed\n"));
-                        break;
-                    }
-                    ifa = (caddr_t)ifac.ifa;
-                }
-# else
+#if (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
                 ifa = (caddr_t) TAILQ_NEXT(&ifaddr, ifa_link);
-# endif
 #else
 # if defined(__NetBSD__) || defined(__OpenBSD__)
                 ifa = (caddr_t) TAILQ_NEXT(&ifaddr, ifa_list);
@@ -968,7 +891,7 @@ var_ifv6Entry(register struct variable * vp,
                 }
             }
 #endif
-#ifdef HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_SEC
+#ifdef STRUCT_IFNET_HAS_IF_LASTCHANGE_TV_SEC
             if (!gotanswer) {
                 struct ifnet    ifnet;
 
@@ -1021,7 +944,8 @@ var_ifv6Entry(register struct variable * vp,
             int             s;
 
             memset(&ifr, 0, sizeof(ifr));
-            strlcpy(ifr.ifr_name, if_getname(interface), sizeof(ifr.ifr_name));
+            strncpy(ifr.ifr_name, if_getname(interface),
+                    sizeof(ifr.ifr_name) - 1);
             if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0)
                 break;
             if (ioctl(s, SIOCGIFSTAT_IN6, (caddr_t) & ifr) < 0) {
@@ -1116,10 +1040,6 @@ var_icmpv6Entry(register struct variable * vp,
     int             interface;
     int             max;
 
-    /* Reload list of interfaces */
-    if (if_initialize() < 0)
-        return NULL;
-
     max = if_maxifindex();
     if (max < 0)
         return NULL;
@@ -1177,7 +1097,8 @@ var_icmpv6Entry(register struct variable * vp,
             int             s;
 
             memset(&ifr, 0, sizeof(ifr));
-            strlcpy(ifr.ifr_name, if_getname(interface), sizeof(ifr.ifr_name));
+            strncpy(ifr.ifr_name, if_getname(interface),
+                    sizeof(ifr.ifr_name) - 1);
             if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0)
                 break;
             if (ioctl(s, SIOCGIFSTAT_ICMP6, (caddr_t) & ifr) < 0) {
@@ -1313,22 +1234,15 @@ var_udp6(register struct variable * vp,
     int             result;
     int             i, j;
     caddr_t         p;
-#if defined(openbsd4)
-    static struct inpcb in6pcb, savpcb;
-#else
     static struct in6pcb in6pcb, savpcb;
-#endif
     int             found, savnameLen;
-#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 || defined(openbsd4) 	/*1.6Y*/
+#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
     struct inpcbtable udbtable;
     caddr_t	    first;
-#elif defined(dragonfly)
-    char           *sysctl_buf;
-    struct xinpcb  *xig;
-    size_t          sysctl_len;
-#elif defined(freebsd3) || defined(darwin)
+#elif (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
     char           *sysctl_buf;
     struct xinpgen *xig, *oxig;
+#else
     static struct in6pcb udb6;
 #endif
 
@@ -1336,35 +1250,14 @@ var_udp6(register struct variable * vp,
     DEBUGMSGOID(("mibII/ipv6", name, *length));
     DEBUGMSG(("mibII/ipv6", " %d\n", exact));
 
-#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 || defined(openbsd4)	/*1.6Y*/
+#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
     if (!auto_nlist("udbtable", (char *) &udbtable, sizeof(udbtable)))
         return NULL;
     first = p = (caddr_t)udbtable.inpt_queue.cqh_first;
-#elif !defined(freebsd3) && !defined(darwin)
+#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3) && !defined(darwin)
     if (!auto_nlist("udb6", (char *) &udb6, sizeof(udb6)))
         return NULL;
     p = (caddr_t) udb6.in6p_next;
-#elif defined(dragonfly)
-    {
-        const char     *udblist = "net.inet.udp.pcblist";
-        const char     *pp = udblist;
-
-        if (sysctlbyname(udblist, 0, &sysctl_len, 0, 0) < 0)
-            return NULL;
-        if ((sysctl_buf = malloc(sysctl_len)) == NULL)
-            return NULL;
-        udblist = pp;
-        if (sysctlbyname(udblist, sysctl_buf, &sysctl_len, 0, 0) < 0) {
-            free(sysctl_buf);
-            return NULL;
-        }
-        xig = (struct xinpcb *) sysctl_buf;
-	if (xig->xi_len != sizeof(*xig)) {
-	    free(sysctl_buf);
-	    return NULL;
-	}
-        p = (caddr_t) ((char *) xig); /* silence compiler warning */
-    }
 #else
     {
         const char     *udblist = "net.inet.udp.pcblist";
@@ -1388,23 +1281,21 @@ var_udp6(register struct variable * vp,
     found = savnameLen = 0;
     memcpy((char *) newname, (char *) vp->name,
            (int) vp->namelen * sizeof(oid));
-    DEBUGMSGTL(("mibII/ipv6", "start: p=%p\n", p));
+    DEBUGMSGTL(("mibII/ipv6", "start: p=%x\n", p));
     while (
-#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 || defined(openbsd4)	/*1.6Y*/
-              p
-#elif !defined(freebsd3) && !defined(darwin)
+#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
+              p &&  p != first
+#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3) && !defined(darwin)
               p && (u_long) p != auto_nlist_value("udb6")
-#elif defined(dragonfly)
-	      (char *)xig + xig->xi_len <= sysctl_buf + sysctl_len && xig->xi_len != 0
 #else
               xig->xig_len > sizeof(struct xinpgen)
 #endif
         ) {
-        DEBUGMSGTL(("mibII/ipv6", "looping: p=%p\n", p));
+        DEBUGMSGTL(("mibII/ipv6", "looping: p=%x\n", p));
 
-#if !defined(freebsd3) && !defined(darwin)
+#if !(defined(__FreeBSD__) && __FreeBSD__ >= 3) && !defined(darwin)
         if (!NETSNMP_KLOOKUP(p, (char *) &in6pcb, sizeof(in6pcb))) {
-            DEBUGMSGTL(("mibII/ipv6", "klookup fail for udb6 at %p\n",
+            DEBUGMSGTL(("mibII/ipv6", "klookup fail for udb6 at %x\n",
                         p));
             found = 0;
             break;
@@ -1415,37 +1306,23 @@ var_udp6(register struct variable * vp,
 #if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
         if (in6pcb.in6p_af != AF_INET6)
             goto skip;
-#elif defined(freebsd3) || defined(darwin)
+#elif (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
         if (0 == (in6pcb.inp_vflag & INP_IPV6))
             goto skip;
-#elif defined(openbsd4)
-	if (!(in6pcb.inp_flags & INP_IPV6))
-	    goto skip;
 #endif
 
         j = (int) vp->namelen;
-#if defined(openbsd4)
-        for (i = 0; i < sizeof(struct in6_addr); i++)
-            newname[j++] = in6pcb.inp_laddr6.s6_addr[i];
-        newname[j++] = ntohs(in6pcb.inp_lport);
-        if (IN6_IS_ADDR_LINKLOCAL(&in6pcb.inp_laddr6))
-            newname[j++] =
-                ntohs(*(uint16_t *) &in6pcb.inp_laddr6.s6_addr[2]);
-        else
-            newname[j++] = 0;
-#else
         for (i = 0; i < sizeof(struct in6_addr); i++)
             newname[j++] = in6pcb.in6p_laddr.s6_addr[i];
-        newname[j++] = ntohs(in6pcb.inp_lport);
+        newname[j++] = ntohs(in6pcb.in6p_lport);
         if (IN6_IS_ADDR_LINKLOCAL(&in6pcb.in6p_laddr))
             newname[j++] =
-                ntohs(*(uint16_t *) &in6pcb.in6p_laddr.s6_addr[2]);
+                ntohs(*(uint16_t *) & in6pcb.in6p_laddr.s6_addr[2]);
         else
             newname[j++] = 0;
-#endif
         /*XXX*/
-	DEBUGMSGTL(("mibII/ipv6", "var_udp6 new: %d %d ",
-		    (int) vp->namelen, j));
+            DEBUGMSGTL(("mibII/ipv6", "var_udp6 new: %d %d ",
+                        (int) vp->namelen, j));
         DEBUGMSGOID(("mibII/ipv6", newname, j));
         DEBUGMSG(("mibII/ipv6", " %d\n", exact));
 
@@ -1470,21 +1347,15 @@ var_udp6(register struct variable * vp,
         }
 
       skip:
-#if defined(openbsd4)
-        p = (caddr_t)in6pcb.inp_queue.cqe_next;
-	if (p == first) break;
-#elif defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
+#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
         p = (caddr_t)in6pcb.in6p_queue.cqe_next;
-	if (p == first) break;
-#elif !defined(freebsd3) && !defined(darwin)
-        p = (caddr_t)in6pcb.in6p_next;
-#elif defined(__DragonFly__)
-        xig = (struct xinpcb *) ((char *) xig + xig->xi_len);
+#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3) && !defined(darwin)
+        p = (caddr_t) in6pcb.in6p_next;
 #else
         xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
 #endif
     }
-#if defined(freebsd3) || defined(darwin)
+#if (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
     free(sysctl_buf);
 #endif
     DEBUGMSGTL(("mibII/ipv6", "found=%d\n", found));
@@ -1503,21 +1374,19 @@ var_udp6(register struct variable * vp,
 */
     DEBUGMSGTL(("mibII/ipv6", "magic=%d\n", vp->magic));
     switch (vp->magic) {
+    case IPV6UDPLOCALADDRESS:
+        *var_len = sizeof(struct in6_addr);
+        return in6pcb.in6p_laddr.s6_addr;
+    case IPV6UDPLOCALPORT:
+        long_return = ntohs(in6pcb.in6p_lport);
+        return (u_char *) & long_return;
     case IPV6UDPIFINDEX:
-#if defined(openbsd4)
-        if (IN6_IS_ADDR_LINKLOCAL(&in6pcb.inp_laddr6))
-            long_return =
-                ntohs(*(uint16_t *) & in6pcb.inp_laddr6.s6_addr[2]);
-        else
-            long_return = 0;
-#else
         if (IN6_IS_ADDR_LINKLOCAL(&in6pcb.in6p_laddr))
             long_return =
                 ntohs(*(uint16_t *) & in6pcb.in6p_laddr.s6_addr[2]);
         else
             long_return = 0;
-#endif
-        return (u_char *) & long_return;
+        /*XXX*/ return (u_char *) & long_return;
     default:
         break;
     }
@@ -1545,7 +1414,7 @@ var_tcp6(register struct variable * vp,
 #if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
     struct inpcbtable tcbtable;
     caddr_t	    first;
-#elif defined(freebsd3) || defined(darwin)
+#elif (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
     char           *sysctl_buf;
     struct xinpgen *xig, *oxig;
 #else
@@ -1575,7 +1444,7 @@ var_tcp6(register struct variable * vp,
     if (!auto_nlist("tcbtable", (char *) &tcbtable, sizeof(tcbtable)))
         return NULL;
     first = p = (caddr_t)tcbtable.inpt_queue.cqh_first;
-#elif !defined(freebsd3) && !defined(darwin)
+#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3) && !defined(darwin)
     if (!auto_nlist("tcb6", (char *) &tcb6, sizeof(tcb6)))
         return NULL;
     p = (caddr_t) tcb6.in6p_next;
@@ -1606,7 +1475,7 @@ var_tcp6(register struct variable * vp,
     while (
 #if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
               p &&  p != first
-#elif !defined(freebsd3) && !defined(darwin)
+#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3) && !defined(darwin)
               p && (u_long) p != auto_nlist_value("tcb6")
 #else
               xig->xig_len > sizeof(struct xinpgen)
@@ -1614,7 +1483,7 @@ var_tcp6(register struct variable * vp,
         ) {
         DEBUGMSGTL(("mibII/ipv6", "looping: p=%x\n", p));
 
-#if !defined(freebsd3) && !defined(darwin)
+#if !(defined(__FreeBSD__) && __FreeBSD__ >= 3) && !defined(darwin)
         if (!NETSNMP_KLOOKUP(p, (char *) &in6pcb, sizeof(in6pcb))) {
             DEBUGMSGTL(("mibII/ipv6", "klookup fail for tcb6 at %x\n",
                         p));
@@ -1627,7 +1496,7 @@ var_tcp6(register struct variable * vp,
 #if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
         if (in6pcb.in6p_af != AF_INET6)
             goto skip;
-#elif defined(freebsd3) || defined(darwin)
+#elif (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
         if (0 == (in6pcb.inp_vflag & INP_IPV6))
             goto skip;
 #endif
@@ -1640,15 +1509,16 @@ var_tcp6(register struct variable * vp,
         j = (int) vp->namelen;
         for (i = 0; i < sizeof(struct in6_addr); i++)
             newname[j++] = in6pcb.in6p_laddr.s6_addr[i];
-        newname[j++] = ntohs(in6pcb.inp_lport);
+        newname[j++] = ntohs(in6pcb.in6p_lport);
         for (i = 0; i < sizeof(struct in6_addr); i++)
             newname[j++] = in6pcb.in6p_faddr.s6_addr[i];
-        newname[j++] = ntohs(in6pcb.inp_fport);
+        newname[j++] = ntohs(in6pcb.in6p_fport);
         if (IN6_IS_ADDR_LINKLOCAL(&in6pcb.in6p_laddr))
             newname[j++] =
                 ntohs(*(uint16_t *) & in6pcb.in6p_laddr.s6_addr[2]);
         else
             newname[j++] = 0;
+        /*XXX*/ newname[j++] = tcp6statemap[tcp6cb.t_state];
 
         DEBUGMSGTL(("mibII/ipv6", "var_tcp6 new: %d %d ",
                         (int) vp->namelen, j));
@@ -1656,7 +1526,7 @@ var_tcp6(register struct variable * vp,
         DEBUGMSG(("mibII/ipv6", " %d\n", exact));
 
 #if 1                           /* this is very odd but sometimes happen, and cause infinite loop */
-        if (ntohs(in6pcb.inp_lport) == 0)
+        if (ntohs(in6pcb.in6p_lport) == 0)
             goto skip;
 #endif
 
@@ -1676,20 +1546,20 @@ var_tcp6(register struct variable * vp,
                 memcpy(&savpcb, &in6pcb, sizeof(savpcb));
                 savnameLen = j;
                 memcpy(savname, newname, j * sizeof(oid));
-                found++;
+                    found++;
             }
         }
 
       skip:
 #if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
         p = (caddr_t)in6pcb.in6p_queue.cqe_next;
-#elif !defined(freebsd3) && !defined(darwin)
-        p = (caddr_t)in6pcb.in6p_next;
+#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3) && !defined(darwin)
+        p = (caddr_t) in6pcb.in6p_next;
 #else
         xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
 #endif
     }
-#if defined(freebsd3) || defined(darwin)
+#if (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
     free(sysctl_buf);
 #endif
     DEBUGMSGTL(("mibII/ipv6", "found=%d\n", found));
@@ -1708,8 +1578,27 @@ var_tcp6(register struct variable * vp,
 */
     DEBUGMSGTL(("mibII/ipv6", "magic=%d\n", vp->magic));
     switch (vp->magic) {
+    case IPV6TCPLOCALADDR:
+        *var_len = sizeof(struct in6_addr);
+        return (u_char *) & in6pcb.in6p_laddr.s6_addr[0];
+    case IPV6TCPLOCALPORT:
+        long_return = ntohs(in6pcb.in6p_lport);
+        return (u_char *) & long_return;
+    case IPV6TCPREMOTEADDR:
+        *var_len = sizeof(struct in6_addr);
+        return (u_char *) & in6pcb.in6p_faddr.s6_addr[0];
+    case IPV6TCPREMOTEPORT:
+        long_return = ntohs(in6pcb.in6p_fport);
+        return (u_char *) & long_return;
+    case IPV6TCPIFINDEX:
+        if (IN6_IS_ADDR_LINKLOCAL(&in6pcb.in6p_laddr))
+            long_return =
+                ntohs(*(uint16_t *) & in6pcb.in6p_laddr.s6_addr[2]);
+        else
+            long_return = 0;
+        /*XXX*/ return (u_char *) & long_return;
     case IPV6TCPCONNSTATE:
-        long_return = tcp6statemap[in6pcb.t_state];
+        long_return = tcp6statemap[tcp6cb.t_state];
         return (u_char *) & long_return;
     default:
         break;
@@ -1756,23 +1645,16 @@ var_tcp6(register struct variable * vp,
     int             result;
     int             i, j;
     caddr_t         p;
-#if defined(openbsd4)
-    static struct inpcb in6pcb, savpcb;
-#else
     static struct in6pcb in6pcb, savpcb;
-#endif
     struct tcpcb    tcpcb;
     int             found, savnameLen;
-#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 || defined(openbsd4)	/*1.6Y*/
+#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
     struct inpcbtable tcbtable;
     caddr_t	    first;
-#elif defined(dragonfly)
-    char           *sysctl_buf;
-    size_t          sysctl_len;
-    struct xtcpcb  *xtp;
-#elif defined(freebsd3) || defined(darwin)
+#elif (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
     char           *sysctl_buf;
     struct xinpgen *xig, *oxig;
+#else
     static struct in6pcb tcb6;
 #endif
 
@@ -1780,35 +1662,14 @@ var_tcp6(register struct variable * vp,
     DEBUGMSGOID(("mibII/ipv6", name, *length));
     DEBUGMSG(("mibII/ipv6", " %d\n", exact));
 
-#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 || defined(openbsd4)	/*1.6Y*/
+#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
     if (!auto_nlist("tcbtable", (char *) &tcbtable, sizeof(tcbtable)))
         return NULL;
     first = p = (caddr_t)tcbtable.inpt_queue.cqh_first;
-#elif !defined(freebsd3) && !defined(darwin)
+#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3) && !defined(darwin)
     if (!auto_nlist("tcb6", (char *) &tcb6, sizeof(tcb6)))
         return NULL;
     p = (caddr_t) tcb6.in6p_next;
-#elif defined(dragonfly)
-    {
-        const char     *tcblist = "net.inet.tcp.pcblist";
-        const char     *pp = tcblist;
-
-        if (sysctlbyname(tcblist, 0, &sysctl_len, 0, 0) < 0)
-            return NULL;
-        if ((sysctl_buf = malloc(sysctl_len)) == NULL)
-            return NULL;
-        tcblist = pp;
-        if (sysctlbyname(tcblist, sysctl_buf, &sysctl_len, 0, 0) < 0) {
-            free(sysctl_buf);
-            return NULL;
-        }
-        xtp = (struct xtcpcb *) sysctl_buf;
-	if (xtp->xt_len != sizeof(*xtp)) {
-	    free(sysctl_buf);
-	    return NULL;
-	}
-        p = (caddr_t) ((char *) xtp); /* silence compiler warning */
-    }
 #else
     {
         const char     *tcblist = "net.inet.tcp.pcblist";
@@ -1832,68 +1693,54 @@ var_tcp6(register struct variable * vp,
     found = savnameLen = 0;
     memcpy((char *) newname, (char *) vp->name,
            (int) vp->namelen * sizeof(oid));
-    DEBUGMSGTL(("mibII/ipv6", "start: p=%p\n", p));
+    DEBUGMSGTL(("mibII/ipv6", "start: p=%x\n", p));
     while (
-#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 || defined(openbsd4)	/*1.6Y*/
-              p
-#elif !defined(freebsd3) && !defined(darwin)
+#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
+              p && p != first
+#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3) && !defined(darwin)
               p && (u_long) p != auto_nlist_value("tcb6")
-#elif defined(dragonfly)
-	      (char *)xtp + xtp->xt_len < sysctl_buf + sysctl_len
 #else
               xig->xig_len > sizeof(struct xinpgen)
 #endif
         ) {
-        DEBUGMSGTL(("mibII/ipv6", "looping: p=%p\n", p));
+        DEBUGMSGTL(("mibII/ipv6", "looping: p=%x\n", p));
 
-#if !defined(freebsd3) && !defined(darwin)
+#if !(defined(__FreeBSD__) && __FreeBSD__ >= 3) && !defined(darwin)
         if (!NETSNMP_KLOOKUP(p, (char *) &in6pcb, sizeof(in6pcb))) {
-            DEBUGMSGTL(("mibII/ipv6", "klookup fail for tcb6 at %p\n",
+            DEBUGMSGTL(("mibII/ipv6", "klookup fail for tcb6 at %x\n",
                         p));
             found = 0;
             break;
         }
-#elif defined(dragonfly)
-	in6pcb = xtp->xt_inp;
 #else
         in6pcb = ((struct xinpcb *) xig)->xi_inp;
 #endif
 #if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
         if (in6pcb.in6p_af != AF_INET6)
             goto skip;
-#elif defined(freebsd3) || defined(darwin)
+#elif (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
         if (0 == (in6pcb.inp_vflag & INP_IPV6))
             goto skip;
-#elif defined(openbsd4)
-        if (0 == (in6pcb.inp_flags & INP_IPV6))
-            goto skip;
 #endif
+        if (!NETSNMP_KLOOKUP(in6pcb.in6p_ppcb, (char *) &tcpcb, sizeof(tcpcb))) {
+            DEBUGMSGTL(("mibII/ipv6", "klookup fail for tcb6.tcpcb at %x\n",
+                        in6pcb.in6p_ppcb));
+            found = 0;
+            break;
+        }
         j = (int) vp->namelen;
-#if defined(openbsd4)
-        for (i = 0; i < sizeof(struct in6_addr); i++)
-            newname[j++] = in6pcb.inp_laddr6.s6_addr[i];
-        newname[j++] = ntohs(in6pcb.inp_lport);
-        for (i = 0; i < sizeof(struct in6_addr); i++)
-            newname[j++] = in6pcb.inp_faddr6.s6_addr[i];
-        newname[j++] = ntohs(in6pcb.inp_fport);
-        if (IN6_IS_ADDR_LINKLOCAL(&in6pcb.inp_laddr6))
-            newname[j++] =
-                ntohs(*(uint16_t *) &in6pcb.inp_laddr6.s6_addr[2]);
-        else
-            newname[j++] = 0;
-#else
         for (i = 0; i < sizeof(struct in6_addr); i++)
             newname[j++] = in6pcb.in6p_laddr.s6_addr[i];
-        newname[j++] = ntohs(in6pcb.inp_lport);
+        newname[j++] = ntohs(in6pcb.in6p_lport);
         for (i = 0; i < sizeof(struct in6_addr); i++)
             newname[j++] = in6pcb.in6p_faddr.s6_addr[i];
-        newname[j++] = ntohs(in6pcb.inp_fport);
+        newname[j++] = ntohs(in6pcb.in6p_fport);
         if (IN6_IS_ADDR_LINKLOCAL(&in6pcb.in6p_laddr))
             newname[j++] =
-                ntohs(*(uint16_t *) &in6pcb.in6p_laddr.s6_addr[2]);
+                ntohs(*(uint16_t *) & in6pcb.in6p_laddr.s6_addr[2]);
         else
             newname[j++] = 0;
-#endif
+        /*XXX*/ newname[j++] = mapTcpState((int)tcpcb.t_state);
 
         DEBUGMSGTL(("mibII/ipv6", "var_tcp6 new: %d %d ",
                         (int) vp->namelen, j));
@@ -1901,7 +1748,7 @@ var_tcp6(register struct variable * vp,
         DEBUGMSG(("mibII/ipv6", " %d\n", exact));
 
 #if 1                           /* this is very odd but sometimes happen, and cause infinite loop */
-        if (ntohs(in6pcb.inp_lport) == 0)
+        if (ntohs(in6pcb.in6p_lport) == 0)
             goto skip;
 #endif
         result = snmp_oid_compare(name, *length, newname, j);
@@ -1920,26 +1767,20 @@ var_tcp6(register struct variable * vp,
                 memcpy(&savpcb, &in6pcb, sizeof(savpcb));
                 savnameLen = j;
                 memcpy(savname, newname, j * sizeof(oid));
-                found++;
+                    found++;
             }
         }
 
       skip:
-#if defined(openbsd4)
-        p = (caddr_t)in6pcb.inp_queue.cqe_next;
-	if (p == first) break;
-#elif defined(__NetBSD__) && __NetBSD_Version__ >= 106250000 || defined(openbsd4)	/*1.6Y*/
+#if defined(__NetBSD__) && __NetBSD_Version__ >= 106250000	/*1.6Y*/
         p = (caddr_t)in6pcb.in6p_queue.cqe_next;
-	if (p == first) break;
-#elif !defined(freebsd3) && !defined(darwin)
+#elif !(defined(__FreeBSD__) && __FreeBSD__ >= 3) && !defined(darwin)
         p = (caddr_t) in6pcb.in6p_next;
-#elif defined(dragonfly)
-	xtp = (struct xtcpcb *) ((char *)xtp + xtp->xt_len);
 #else
         xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
 #endif
     }
-#if defined(freebsd3) || defined(darwin)
+#if (defined(__FreeBSD__) && __FreeBSD__ >= 3) || defined(darwin)
     free(sysctl_buf);
 #endif
     DEBUGMSGTL(("mibII/ipv6", "found=%d\n", found));
@@ -1948,12 +1789,6 @@ var_tcp6(register struct variable * vp,
     *length = savnameLen;
     memcpy((char *) name, (char *) savname, *length * sizeof(oid));
     memcpy(&in6pcb, &savpcb, sizeof(savpcb));
-    if (!NETSNMP_KLOOKUP(in6pcb.inp_ppcb, (char *) &tcpcb, sizeof(tcpcb))) {
-	DEBUGMSGTL(("mibII/ipv6", "klookup fail for tcb6.tcpcb at %p\n",
-		    in6pcb.inp_ppcb));
-	found = 0;
-	return NULL;
-    }
     *write_method = 0;
     *var_len = sizeof(long);    /* default to 'long' results */
 
@@ -1964,6 +1799,25 @@ var_tcp6(register struct variable * vp,
 */
     DEBUGMSGTL(("mibII/ipv6", "magic=%d\n", vp->magic));
     switch (vp->magic) {
+    case IPV6TCPLOCALADDR:
+        *var_len = sizeof(struct in6_addr);
+        return (u_char *) & in6pcb.in6p_laddr.s6_addr[0];
+    case IPV6TCPLOCALPORT:
+        long_return = ntohs(in6pcb.in6p_lport);
+        return (u_char *) & long_return;
+    case IPV6TCPREMOTEADDR:
+        *var_len = sizeof(struct in6_addr);
+        return (u_char *) & in6pcb.in6p_faddr.s6_addr[0];
+    case IPV6TCPREMOTEPORT:
+        long_return = ntohs(in6pcb.in6p_fport);
+        return (u_char *) & long_return;
+    case IPV6TCPIFINDEX:
+        if (IN6_IS_ADDR_LINKLOCAL(&in6pcb.in6p_laddr))
+            long_return =
+                ntohs(*(uint16_t *) & in6pcb.in6p_laddr.s6_addr[2]);
+        else
+            long_return = 0;
+        /*XXX*/ return (u_char *) & long_return;
     case IPV6TCPCONNSTATE:
         long_return = mapTcpState((int)tcpcb.t_state);
         return (u_char *) & long_return;
@@ -1997,7 +1851,7 @@ linux_read_ip6_stat_ulong(const char *file)
     return value;
 }
 
-static void
+void
 linux_read_ip6_stat(struct ip6_mib *ip6stat)
 {
     if (!ip6stat)
@@ -2061,10 +1915,6 @@ var_ifv6Entry(register struct variable * vp,
     struct ifreq    ifr;
     int             s;
 
-    /* Reload list of interfaces */
-    if (if_initialize() < 0)
-        return NULL;
-
     max = if_maxifindex();
     if (max < 0)
         return NULL;
@@ -2085,7 +1935,7 @@ var_ifv6Entry(register struct variable * vp,
         p = if_getname(interface);
         if (p) {
             *var_len = strlen(p);
-            return (u_char *) p;
+            return p;
         }
         break;
     case IPV6IFLOWLAYER:
@@ -2101,7 +1951,7 @@ var_ifv6Entry(register struct variable * vp,
                 break;
             memset(&ifr, 0, sizeof(ifr));
             ifr.ifr_addr.sa_family = AF_INET6;
-            strlcpy(ifr.ifr_name, p, sizeof(ifr.ifr_name));
+            strncpy(ifr.ifr_name, p, sizeof(ifr.ifr_name) - 1);
             if ((s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0)) < 0)
                 break;
             if (ioctl(s, SIOCGIFMTU, (caddr_t) & ifr) < 0) {
@@ -2121,7 +1971,7 @@ var_ifv6Entry(register struct variable * vp,
                 break;
             memset(&ifr, 0, sizeof(ifr));
             ifr.ifr_addr.sa_family = AF_INET6;
-            strlcpy(ifr.ifr_name, p, sizeof(ifr.ifr_name));
+            strncpy(ifr.ifr_name, p, sizeof(ifr.ifr_name) - 1);
             if ((s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0)) < 0)
                 break;
             if (ioctl(s, SIOCGIFHWADDR, &ifr) < 0) {
@@ -2150,7 +2000,7 @@ var_ifv6Entry(register struct variable * vp,
                 break;
             memset(&ifr, 0, sizeof(ifr));
             ifr.ifr_addr.sa_family = AF_INET6;
-            strlcpy(ifr.ifr_name, p, sizeof(ifr.ifr_name));
+            strncpy(ifr.ifr_name, p, sizeof(ifr.ifr_name) - 1);
             if ((s = socket(ifr.ifr_addr.sa_family, SOCK_DGRAM, 0)) < 0)
                 break;
             if (ioctl(s, SIOCGIFFLAGS, &ifr) < 0) {
@@ -2210,11 +2060,10 @@ linux_if_freenameindex(struct if_nameindex *ifndx)
     int             i;
     if (!ifndx)
         return;
-    for (i = 0; ifndx[i].if_index; i++) {
+    for (i = 1; ifndx[i].if_index; i++) {
         free(ifndx[i].if_name);
     }
     free(ifndx);
-    ifndx = NULL;
 }
 
 #define linux_freeinternalnameindex(ifni, max)  { \
@@ -2235,7 +2084,6 @@ linux_if_nameindex(void)
     struct if_nameindex *ifndx = NULL, *iflist = NULL, *tmp;
     int             i, j;
     int             maxidx, if_count = 0;
-    static int      last_if_count;
 
     f = fopen(LINUX_PROC_NET_IFINET6, "r");
     if (f) {
@@ -2249,11 +2097,10 @@ linux_if_nameindex(void)
                 continue;
             if_name[sizeof(if_name) - 1] = '\0';
             if (maxidx < 0 || maxidx < if_index) {
-                if (last_if_count < if_index)
-                    last_if_count = if_index;
+
                 tmp =
                     realloc(iflist,
-                            (sizeof(struct if_nameindex)) * (last_if_count +
+                            (sizeof(struct if_nameindex)) * (if_index +
                                                              2));
                 if (!tmp) {
                     linux_freeinternalnameindex(iflist, if_index);
diff --git a/agent/mibgroup/mibII/ipv6.h b/agent/mibgroup/mibII/ipv6.h
index a377153..a029baf 100644
--- a/agent/mibgroup/mibII/ipv6.h
+++ b/agent/mibgroup/mibII/ipv6.h
@@ -130,8 +130,15 @@ extern FindVarMethod var_tcp6;
 #define IPV6IFICMPOUTGRPMERSPS	33
 #define IPV6IFICMPOUTGRPMEREDCS	34
 
+#define IPV6UDPLOCALADDRESS	1
+#define IPV6UDPLOCALPORT	2
 #define IPV6UDPIFINDEX		3
 
+#define IPV6TCPLOCALADDR	1
+#define IPV6TCPLOCALPORT	2
+#define IPV6TCPREMOTEADDR	3
+#define IPV6TCPREMOTEPORT	4
+#define IPV6TCPIFINDEX		5
 #define IPV6TCPCONNSTATE	6
 
 #endif                          /* _MIBGROUP_IPV6_H */
diff --git a/agent/mibgroup/mibII/kernel_linux.c b/agent/mibgroup/mibII/kernel_linux.c
index ba320c7..bb6f867 100644
--- a/agent/mibgroup/mibII/kernel_linux.c
+++ b/agent/mibgroup/mibII/kernel_linux.c
@@ -4,10 +4,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
+#include "util_funcs.h"
+
 #if HAVE_STRING_H
 #include <string.h>
 #endif
@@ -15,113 +16,43 @@
 #if HAVE_SYS_PARAM_H
 #include <sys/param.h>
 #endif
-#include <errno.h>
 
 #include "kernel_linux.h"
 
 struct ip_mib   cached_ip_mib;
-struct ip6_mib   cached_ip6_mib;
 struct icmp_mib cached_icmp_mib;
-struct icmp6_mib cached_icmp6_mib;
-struct icmp4_msg_mib cached_icmp4_msg_mib;
 struct tcp_mib  cached_tcp_mib;
 struct udp_mib  cached_udp_mib;
-struct udp6_mib  cached_udp6_mib;
 
 #define IP_STATS_LINE	"Ip: %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu"
 #define ICMP_STATS_LINE	"Icmp: %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu"
-#define ICMP_MSG_STATS_LINE "IcmpMsg: "
 #define TCP_STATS_LINE	"Tcp: %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu"
 #define UDP_STATS_LINE	"Udp: %lu %lu %lu %lu"
-#define IP6_STATS_LINE   "Ip6"
-#define ICMP6_STATS_LINE "Icmp6"
 #define UDP6_STATS_LINE "Udp6"
 
 #define IP_STATS_PREFIX_LEN	4
 #define ICMP_STATS_PREFIX_LEN	6
-#define ICMP_MSG_STATS_PREFIX_LEN 9
 #define TCP_STATS_PREFIX_LEN	5
 #define UDP_STATS_PREFIX_LEN	5
-#define IP6_STATS_PREFIX_LEN	3
-#define ICMP6_STATS_PREFIX_LEN	5
 #define UDP6_STATS_PREFIX_LEN   4
 
-netsnmp_feature_child_of(linux_ip6_stat_all, libnetsnmpmibs)
-
-netsnmp_feature_child_of(linux_read_ip6_stat, linux_ip6_stat_all)
-
-int
-decode_icmp_msg(char *line, char *data, struct icmp4_msg_mib *msg)
-{
-    char *token, *saveptr, *lineptr, *saveptr1, *dataptr, *delim = NULL;
-    char line_cpy[1024];
-    char data_cpy[1024];
-    long index;
-
-    if(data == NULL)
-        return -1;
-
-    /*
-     * Since we are using strtok, there is a possiblity of the orginal data
-     * getting modified. So we take a local copy for this purpose even though
-     * its expensive.
-     */
-    strlcpy(line_cpy, line, sizeof(line_cpy));
-    strlcpy(data_cpy, data, sizeof(data_cpy));
-
-    lineptr = line_cpy;
-    dataptr = data_cpy;
-    saveptr1 = NULL;
-    while (1) {
-        if(NULL == (token = strtok_r(lineptr, " ", &saveptr)))
-            break;
-        lineptr = NULL;
-        errno = 0;
-        if (0 == strncmp(strsep(&token, "e"), "OutTyp", 6)) {
-            index = strtol(token, &delim, 0);
-            if (ERANGE == errno) {
-                continue;
-            } else if (index > 255) {
-                continue;
-            } else if (index < 0) {
-                continue;
-            }
-            if (NULL == (token = strtok_r(dataptr, " ", &saveptr1)))
-                break;
-            dataptr = NULL;
-            msg->vals[index].OutType = atoi(token);
-        } else {
-            index = strtol(token, &delim, 0);
-            if (ERANGE == errno) {
-                continue;
-            } else if (index > 255) {
-                continue;
-            } else if (index < 0) {
-                continue;
-            }
-            if(NULL == (token = strtok_r(dataptr, " ", &saveptr1)))
-                break;
-            dataptr = NULL;
-            msg->vals[index].InType = atoi(token);
-        }
-    }
-    return 0;
-}
 
 int
 linux_read_mibII_stats(void)
 {
     FILE           *in = fopen("/proc/net/snmp", "r");
-    char            line[1024], data[1024];
-    int ret = 0;
+#ifdef NETSNMP_ENABLE_IPV6
+    FILE           *in6;
+    unsigned long   value;
+#endif
+    char            line[1024];
+
     if (!in) {
         DEBUGMSGTL(("mibII/kernel_linux","Unable to open /proc/net/snmp"));
         return -1;
     }
 
 
-    memset(line, '\0', sizeof(line));
-    memset(data, '\0', sizeof(data));
     while (line == fgets(line, sizeof(line), in)) {
         if (!strncmp(line, IP_STATS_LINE, IP_STATS_PREFIX_LEN)) {
             sscanf(line, IP_STATS_LINE,
@@ -173,19 +104,6 @@ linux_read_mibII_stats(void)
                    &cached_icmp_mib.icmpOutTimestampReps,
                    &cached_icmp_mib.icmpOutAddrMasks,
                    &cached_icmp_mib.icmpOutAddrMaskReps);
-        } else if (!strncmp(line, ICMP_MSG_STATS_LINE, ICMP_MSG_STATS_PREFIX_LEN)) {
-            /*
-             * Note: We have to do this differently from other stats as the
-             * counters to this stats are dynamic. So we will not know the
-             * number of counters at a given time.
-             */
-            fgets(data, sizeof(data), in);
-            if(decode_icmp_msg(line + ICMP_MSG_STATS_PREFIX_LEN,
-                        data + ICMP_MSG_STATS_PREFIX_LEN,
-                        &cached_icmp4_msg_mib) < 0) {
-                continue;
-            }
-            ret = 1;
         } else if (!strncmp(line, TCP_STATS_LINE, TCP_STATS_PREFIX_LEN)) {
             int             ret = sscanf(line, TCP_STATS_LINE,
                                          &cached_tcp_mib.tcpRtoAlgorithm,
@@ -214,6 +132,35 @@ linux_read_mibII_stats(void)
     }
     fclose(in);
 
+#ifdef NETSNMP_ENABLE_IPV6
+    in6 = fopen("/proc/net/snmp6", "r");
+    if (in6) {
+      
+        while (line == fgets(line, sizeof(line), in6)) {
+
+            if (('U' != line[0]) ||
+                (0 != strncmp(line, UDP6_STATS_LINE, UDP6_STATS_PREFIX_LEN)))
+                continue;
+
+            sscanf(line, "%*s %lu" , &value);
+                 
+            if ('O' == line[4]) /* Udp6OutDatagrams */
+                cached_udp_mib.udpOutDatagrams += value;
+            else if ('N' == line[4]) /* Udp6NoPorts */
+                cached_udp_mib.udpNoPorts += value;
+            else if ('D' == line[6]) /* Udp6InDatagrams */
+                cached_udp_mib.udpInDatagrams += value;
+            else if ('E' == line[6]) /* Udp6InErrors */
+                cached_udp_mib.udpInErrors += value;
+
+        }
+        fclose(in6);
+    } else {
+        DEBUGMSGTL(("mibII/kernel_linux","Unable to open /proc/net/snmp6"));
+    }
+
+#endif
+
     /*
      * Tweak illegal values:
      *
@@ -229,8 +176,7 @@ linux_read_mibII_stats(void)
      */
     if (!cached_tcp_mib.tcpRtoAlgorithm)
         cached_tcp_mib.tcpRtoAlgorithm = 1;
-
-    return ret;
+    return 0;
 }
 
 int
@@ -243,138 +189,6 @@ linux_read_ip_stat(struct ip_mib *ipstat)
     return 0;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_LINUX_READ_IP6_STAT
-int linux_read_ip6_stat( struct ip6_mib *ip6stat)
-{
-#ifdef NETSNMP_ENABLE_IPV6
-    FILE           *in;
-    char            line[1024];
-    unsigned long   stats;
-    char           *endp;
-    int             match;
-#endif
-
-    memset((char *) ip6stat, (0), sizeof(*ip6stat));
-
-#ifdef NETSNMP_ENABLE_IPV6
-    DEBUGMSGTL(("mibII/kernel_linux/ip6stats",
-                "Reading /proc/net/snmp6 stats\n"));
-    if (NULL == (in = fopen("/proc/net/snmp6", "r"))) {
-        DEBUGMSGTL(("mibII/kernel_linux/ip6stats",
-                    "Failed to open /proc/net/snmp6\n"));
-        return -1;
-    }
-
-    while (NULL != fgets(line, sizeof(line), in)) {
-        if (0 != strncmp(line, IP6_STATS_LINE, IP6_STATS_PREFIX_LEN))
-            continue;
-
-        if (1 != sscanf(line, "%*s %lu", &stats))
-            continue;
-
-        endp = strchr(line, ' ');
-        *endp = '\0';
-        DEBUGMSGTL(("mibII/kernel_linux/ip6stats", "Find tag: %s\n", line));
-
-        match = 1;
-        if (0 == strncmp(line + 3, "In", 2)) {  /* In */
-            if (0 == strcmp(line + 5, "AddrErrors")) {
-                cached_ip6_mib.ip6InAddrErrors = stats;
-            } else if (0 == strcmp(line + 5, "Delivers")) {
-                cached_ip6_mib.ip6InDelivers = stats;
-            } else if (0 == strcmp(line + 5, "Discards")) {
-                cached_ip6_mib.ip6InDiscards = stats;
-            } else if (0 == strcmp(line + 5, "HdrErrors")) {
-                cached_ip6_mib.ip6InHdrErrors = stats;
-            } else if (0 == strcmp(line + 5, "McastPkts")) {
-                cached_ip6_mib.ip6InMcastPkts = stats;
-            } else if (0 == strcmp(line + 5, "NoRoutes")) {
-                cached_ip6_mib.ip6InNoRoutes = stats;
-            } else if (0 == strcmp(line + 5, "Receives")) {
-                cached_ip6_mib.ip6InReceives = stats;
-            } else if (0 == strcmp(line + 5, "TruncatedPkts")) {
-                cached_ip6_mib.ip6InTruncatedPkts = stats;
-            } else if (0 == strcmp(line + 5, "TooBigErrors")) {
-                cached_ip6_mib.ip6InTooBigErrors = stats;
-            } else if (0 == strcmp(line + 5, "UnknownProtos")) {
-                cached_ip6_mib.ip6InUnknownProtos = stats;
-            } else {
-                match = 0;
-            }
-        } else if (0 == strncmp(line + 3, "Out", 3)) {  /* Out */
-            if (0 == strcmp(line + 6, "Discards")) {
-                cached_ip6_mib.ip6OutDiscards = stats;
-            } else if (0 == strcmp(line + 6, "ForwDatagrams")) {
-                cached_ip6_mib.ip6OutForwDatagrams = stats;
-            } else if (0 == strcmp(line + 6, "McastPkts")) {
-                cached_ip6_mib.ip6OutMcastPkts = stats;
-            } else if (0 == strcmp(line + 6, "NoRoutes")) {
-                cached_ip6_mib.ip6OutNoRoutes = stats;
-            } else if (0 == strcmp(line + 6, "Requests")) {
-                cached_ip6_mib.ip6OutRequests = stats;
-            } else {
-                match = 0;
-            }
-        } else if (0 == strncmp(line + 3, "Reasm", 5)) {  /* Reasm */
-            if (0 == strcmp(line + 8, "Fails")) {
-                cached_ip6_mib.ip6ReasmFails = stats;
-            } else if (0 == strcmp(line + 8, "OKs")) {
-                cached_ip6_mib.ip6ReasmOKs = stats;
-            } else if (0 == strcmp(line + 8, "Reqds")) {
-                cached_ip6_mib.ip6ReasmReqds = stats;
-            } else if (0 == strcmp(line + 8, "Timeout")) {
-                cached_ip6_mib.ip6ReasmTimeout = stats;
-            } else {
-                match = 0;
-            }
-        } else if (0 == strncmp(line + 3, "Frag", 4)) {  /* Frag */
-            if (0 == strcmp(line + 7, "Creates")) {
-                cached_ip6_mib.ip6FragCreates = stats;
-            } else if (0 == strcmp(line + 7, "Fails")) {
-                cached_ip6_mib.ip6FragFails = stats;
-            } else if (0 == strcmp(line + 7, "OKs")) {
-                cached_ip6_mib.ip6FragOKs = stats;
-            } else {
-                match = 0;
-            }
-        } else {
-            match = 0;
-        }
-
-        if(!match)
-            DEBUGMSGTL(("mibII/kernel_linux/ip6stats",
-                        "%s is an unknown tag\n", line));
-    }
-
-    fclose(in);
-#endif
-
-    memcpy((char *) ip6stat, (char *) &cached_ip6_mib, sizeof(*ip6stat));
-    return 0;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_LINUX_READ_IP6_STAT */
-
-int
-linux_read_icmp_msg_stat(struct icmp_mib *icmpstat,
-                         struct icmp4_msg_mib *icmpmsgstat,
-                         int *flag)
-{
-    int ret;
-
-    memset(icmpstat, 0, sizeof(*icmpstat));
-    memset(icmpmsgstat, 0, sizeof(*icmpmsgstat));
-
-    if ((ret = linux_read_mibII_stats()) == -1) {
-        return -1;
-    } else if (ret) {
-       memcpy(icmpmsgstat, &cached_icmp4_msg_mib, sizeof(*icmpmsgstat));
-       *flag = 1; /* We have a valid icmpmsg */
-    }
-
-    memcpy(icmpstat, &cached_icmp_mib, sizeof(*icmpstat));
-    return 0;
-}
-
 int
 linux_read_icmp_stat(struct icmp_mib *icmpstat)
 {
@@ -387,167 +201,6 @@ linux_read_icmp_stat(struct icmp_mib *icmpstat)
 }
 
 int
-linux_read_icmp6_parse(struct icmp6_mib *icmp6stat,
-                       struct icmp6_msg_mib *icmp6msgstat,
-                       int *support)
-{
-#ifdef NETSNMP_ENABLE_IPV6
-    FILE           *in;
-    char            line[1024];
-    char            name[255];
-    unsigned long   stats;
-    char           *endp, *vals;
-    int             match;
-#endif
-
-    memset(icmp6stat, 0, sizeof(*icmp6stat));
-    if (NULL != icmp6msgstat)
-        memset(icmp6msgstat, 0, sizeof(*icmp6msgstat));
-
-#ifdef NETSNMP_ENABLE_IPV6
-    DEBUGMSGTL(("mibII/kernel_linux/icmp6stats",
-                "Reading /proc/net/snmp6 stats\n"));
-    if (NULL == (in = fopen("/proc/net/snmp6", "r"))) {
-        DEBUGMSGTL(("mibII/kernel_linux/icmp6stats",
-                    "Failed to open /proc/net/snmp6\n"));
-        return -1;
-    }
-
-    while (NULL != fgets(line, sizeof(line), in)) {
-        if (0 != strncmp(line, ICMP6_STATS_LINE, ICMP6_STATS_PREFIX_LEN))
-            continue;
-
-        if (2 != sscanf(line, "%s %lu", name, &stats))
-            continue;
-
-        endp = strchr(line, ' ');
-        *endp = '\0';
-        DEBUGMSGTL(("mibII/kernel_linux/icmp6stats", "Find tag: %s\n", line));
-
-        vals = name;
-        if (NULL != icmp6msgstat) {
-            int type;
-            if (0 == strncmp(name, "Icmp6OutType", 12)) {
-                strsep(&vals, "e");
-                type = atoi(vals);
-                if ( type < 0 || type > 255 )
-                    continue;
-                icmp6msgstat->vals[type].OutType = stats;
-                *support = 1;
-                continue;
-            } else if (0 == strncmp(name, "Icmp6InType", 11)) {
-                strsep(&vals, "e");
-                type = atoi(vals);
-                if ( type < 0 || type > 255 )
-                    continue;
-                icmp6msgstat->vals[type].InType = stats;
-                *support = 1;
-                continue;
-            }
-        }
-
-        match = 1;
-        if (0 == strncmp(line + 5, "In", 2)) {  /* In */
-            if (0 == strcmp(line + 7, "DestUnreachs")) {
-                cached_icmp6_mib.icmp6InDestUnreachs = stats;
-            } else if (0 == strcmp(line + 7, "Echos")) {
-                cached_icmp6_mib.icmp6InEchos = stats;
-            } else if (0 == strcmp(line + 7, "EchoReplies")) {
-                cached_icmp6_mib.icmp6InEchoReplies = stats;
-            } else if (0 == strcmp(line + 7, "Errors")) {
-                cached_icmp6_mib.icmp6InErrors = stats;
-            } else if (0 == strcmp(line + 7, "GroupMembQueries")) {
-                cached_icmp6_mib.icmp6InGroupMembQueries = stats;
-            } else if (0 == strcmp(line + 7, "GroupMembReductions")) {
-                cached_icmp6_mib.icmp6InGroupMembReductions = stats;
-            } else if (0 == strcmp(line + 7, "GroupMembResponses")) {
-                cached_icmp6_mib.icmp6InGroupMembResponses = stats;
-            } else if (0 == strcmp(line + 7, "Msgs")) {
-                cached_icmp6_mib.icmp6InMsgs = stats;
-            } else if (0 == strcmp(line + 7, "NeighborAdvertisements")) {
-                cached_icmp6_mib.icmp6InNeighborAdvertisements = stats;
-            } else if (0 == strcmp(line + 7, "NeighborSolicits")) {
-                cached_icmp6_mib.icmp6InNeighborSolicits = stats;
-            } else if (0 == strcmp(line + 7, "PktTooBigs")) {
-                cached_icmp6_mib.icmp6InPktTooBigs = stats;
-            } else if (0 == strcmp(line + 7, "ParmProblems")) {
-                cached_icmp6_mib.icmp6InParmProblems = stats;
-            } else if (0 == strcmp(line + 7, "Redirects")) {
-                cached_icmp6_mib.icmp6InRedirects = stats;
-            } else if (0 == strcmp(line + 7, "RouterAdvertisements")) {
-                cached_icmp6_mib.icmp6InRouterAdvertisements = stats;
-            } else if (0 == strcmp(line + 7, "RouterSolicits")) {
-                cached_icmp6_mib.icmp6InRouterSolicits = stats;
-            } else if (0 == strcmp(line + 7, "TimeExcds")) {
-                cached_icmp6_mib.icmp6InTimeExcds = stats;
-            } else {
-                match = 0;
-            }
-        } else if (0 == strncmp(line + 5, "Out", 3)) {  /* Out */
-            if (0 == strcmp(line + 8, "DestUnreachs")) {
-                cached_icmp6_mib.icmp6OutDestUnreachs = stats;
-            } else if (0 == strcmp(line + 8, "EchoReplies")) {
-                cached_icmp6_mib.icmp6OutEchoReplies = stats;
-            } else if (0 == strcmp(line + 8, "GroupMembReductions")) {
-                cached_icmp6_mib.icmp6OutGroupMembReductions = stats;
-            } else if (0 == strcmp(line + 8, "GroupMembResponses")) {
-                cached_icmp6_mib.icmp6OutGroupMembResponses = stats;
-            } else if (0 == strcmp(line + 8, "Msgs")) {
-                cached_icmp6_mib.icmp6OutMsgs = stats;
-            } else if (0 == strcmp(line + 8, "NeighborAdvertisements")) {
-                cached_icmp6_mib.icmp6OutNeighborAdvertisements = stats;
-            } else if (0 == strcmp(line + 8, "NeighborSolicits")) {
-                cached_icmp6_mib.icmp6OutNeighborSolicits = stats;
-            } else if (0 == strcmp(line + 8, "PktTooBigs")) {
-                cached_icmp6_mib.icmp6OutPktTooBigs = stats;
-            } else if (0 == strcmp(line + 8, "ParmProblems")) {
-                cached_icmp6_mib.icmp6OutParmProblems = stats;
-            } else if (0 == strcmp(line + 8, "Redirects")) {
-                cached_icmp6_mib.icmp6OutRedirects = stats;
-            } else if (0 == strcmp(line + 8, "RouterSolicits")) {
-                cached_icmp6_mib.icmp6OutRouterSolicits = stats;
-            } else if (0 == strcmp(line + 8, "TimeExcds")) {
-                cached_icmp6_mib.icmp6OutTimeExcds = stats;
-            } else {
-                match = 0;
-            }
-        } else {
-            match = 0;
-        }
-        if(!match)
-            DEBUGMSGTL(("mibII/kernel_linux/icmp6stats",
-                        "%s is an unknown tag\n", line));
-    }
-
-    fclose(in);
-#endif
-
-    memcpy((char *) icmp6stat, (char *) &cached_icmp6_mib,
-           sizeof(*icmp6stat));
-    return 0;
-}
-
-int
-linux_read_icmp6_msg_stat(struct icmp6_mib *icmp6stat,
-                          struct icmp6_msg_mib *icmp6msgstat,
-                          int *support)
-{
-     if (linux_read_icmp6_parse(icmp6stat, icmp6msgstat, support) < 0)
-         return -1;
-     else
-         return 0;
-}
-
-int
-linux_read_icmp6_stat(struct icmp6_mib *icmp6stat)
-{
-   if (linux_read_icmp6_parse(icmp6stat, NULL, NULL) < 0)
-       return -1;
-   else
-       return 0;
-}
-
-int
 linux_read_tcp_stat(struct tcp_mib *tcpstat)
 {
     memset((char *) tcpstat, (0), sizeof(*tcpstat));
@@ -563,73 +216,6 @@ linux_read_udp_stat(struct udp_mib *udpstat)
     memset((char *) udpstat, (0), sizeof(*udpstat));
     if (linux_read_mibII_stats() == -1)
         return -1;
-
-#ifdef NETSNMP_ENABLE_IPV6
-    {
-        struct udp6_mib udp6stat;
-        memset(&udp6stat, 0, sizeof(udp6stat));
-
-        if (linux_read_udp6_stat(&udp6stat) == 0) {
-            cached_udp_mib.udpOutDatagrams += udp6stat.udp6OutDatagrams;
-            cached_udp_mib.udpNoPorts      += udp6stat.udp6NoPorts;
-            cached_udp_mib.udpInDatagrams  += udp6stat.udp6InDatagrams;
-            cached_udp_mib.udpInErrors     += udp6stat.udp6InErrors;
-        }
-    }
-#endif
     memcpy((char *) udpstat, (char *) &cached_udp_mib, sizeof(*udpstat));
     return 0;
 }
-
-int
-linux_read_udp6_stat(struct udp6_mib *udp6stat)
-{
-#ifdef NETSNMP_ENABLE_IPV6
-    FILE           *in;
-    char            line[1024];
-    unsigned long   stats;
-    char           *endp;
-#endif
-
-    memset(udp6stat, 0, sizeof(*udp6stat));
-
-#ifdef NETSNMP_ENABLE_IPV6
-    DEBUGMSGTL(("mibII/kernel_linux/udp6stats",
-                "Reading /proc/net/snmp6 stats\n"));
-    if (NULL == (in = fopen("/proc/net/snmp6", "r"))) {
-        DEBUGMSGTL(("mibII/kernel_linux/udp6stats",
-                    "Failed to open /proc/net/snmp6\n"));
-       return -1;
-    }
-
-    while (NULL != fgets(line, sizeof(line), in)) {
-        if (0 != strncmp(line, UDP6_STATS_LINE, UDP6_STATS_PREFIX_LEN))
-            continue;
-
-        if (1 != sscanf(line, "%*s %lu", &stats))
-            continue;
-
-        endp = strchr(line, ' ');
-        *endp = '\0';
-        DEBUGMSGTL(("mibII/kernel_linux/udp6stats", "Find tag: %s\n", line));
-
-        if (0 == strcmp(line + 4, "OutDatagrams")) {
-            cached_udp6_mib.udp6OutDatagrams = stats;
-        } else if (0 == strcmp(line + 4, "NoPorts")) {
-            cached_udp6_mib.udp6NoPorts = stats;
-        } else if (0 == strcmp(line + 4, "InDatagrams")) {
-            cached_udp6_mib.udp6InDatagrams = stats;
-        } else if (0 == strcmp(line + 4, "InErrors")) {
-            cached_udp6_mib.udp6InErrors = stats;
-        } else {
-            DEBUGMSGTL(("mibII/kernel_linux/udp6stats",
-                        "%s is an unknown tag\n", line));
-        }
-    }
-
-    fclose(in);
-#endif
-
-    memcpy((char *) udp6stat, (char *) &cached_udp6_mib, sizeof(*udp6stat));
-    return 0;
-}
diff --git a/agent/mibgroup/mibII/kernel_linux.h b/agent/mibgroup/mibII/kernel_linux.h
index c6dfca9..fb7db96 100644
--- a/agent/mibgroup/mibII/kernel_linux.h
+++ b/agent/mibgroup/mibII/kernel_linux.h
@@ -29,31 +29,6 @@ struct ip_mib {
     unsigned long   ipRoutingDiscards;
 };
 
-struct ip6_mib {
-    unsigned long ip6InReceives;
-    unsigned long ip6InHdrErrors;
-    unsigned long ip6InTooBigErrors;
-    unsigned long ip6InNoRoutes;
-    unsigned long ip6InAddrErrors;
-    unsigned long ip6InUnknownProtos;
-    unsigned long ip6InTruncatedPkts;
-    unsigned long ip6InDiscards;
-    unsigned long ip6InDelivers;
-    unsigned long ip6OutForwDatagrams;
-    unsigned long ip6OutRequests;
-    unsigned long ip6OutDiscards;
-    unsigned long ip6OutNoRoutes;
-    unsigned long ip6ReasmTimeout;
-    unsigned long ip6ReasmReqds;
-    unsigned long ip6ReasmOKs;
-    unsigned long ip6ReasmFails;
-    unsigned long ip6FragOKs;
-    unsigned long ip6FragFails;
-    unsigned long ip6FragCreates;
-    unsigned long ip6InMcastPkts;
-    unsigned long ip6OutMcastPkts;
-};
-
 struct icmp_mib {
     unsigned long   icmpInMsgs;
     unsigned long   icmpInErrors;
@@ -83,51 +58,6 @@ struct icmp_mib {
     unsigned long   icmpOutAddrMaskReps;
 };
 
-struct icmp6_mib {
-    unsigned long icmp6InMsgs;
-    unsigned long icmp6InErrors;
-    unsigned long icmp6InDestUnreachs;
-    unsigned long icmp6InPktTooBigs;
-    unsigned long icmp6InTimeExcds;
-    unsigned long icmp6InParmProblems;
-    unsigned long icmp6InEchos;
-    unsigned long icmp6InEchoReplies;
-    unsigned long icmp6InGroupMembQueries;
-    unsigned long icmp6InGroupMembResponses;
-    unsigned long icmp6InGroupMembReductions;
-    unsigned long icmp6InRouterSolicits;
-    unsigned long icmp6InRouterAdvertisements;
-    unsigned long icmp6InNeighborSolicits;
-    unsigned long icmp6InNeighborAdvertisements;
-    unsigned long icmp6InRedirects;
-    unsigned long icmp6OutMsgs;
-    unsigned long icmp6OutDestUnreachs;
-    unsigned long icmp6OutPktTooBigs;
-    unsigned long icmp6OutTimeExcds;
-    unsigned long icmp6OutParmProblems;
-    unsigned long icmp6OutEchoReplies;
-    unsigned long icmp6OutRouterSolicits;
-    unsigned long icmp6OutNeighborSolicits;
-    unsigned long icmp6OutNeighborAdvertisements;
-    unsigned long icmp6OutRedirects;
-    unsigned long icmp6OutGroupMembResponses;
-    unsigned long icmp6OutGroupMembReductions;
-};
-
-struct icmp_msg_mib {
-    unsigned long InType;
-    unsigned long OutType;
-};
-
-/* Lets use wrapper structures for future expansion */
-struct icmp4_msg_mib {
-    struct icmp_msg_mib vals[256];
-};
-
-struct icmp6_msg_mib {
-    struct icmp_msg_mib vals[256];
-};
-
 struct udp_mib {
     unsigned long   udpInDatagrams;
     unsigned long   udpNoPorts;
@@ -135,13 +65,6 @@ struct udp_mib {
     unsigned long   udpOutDatagrams;
 };
 
-struct udp6_mib {
-    unsigned long udp6InDatagrams;
-    unsigned long udp6NoPorts;
-    unsigned long udp6InErrors;
-    unsigned long udp6OutDatagrams;
-};
-
 struct tcp_mib {
     unsigned long   tcpRtoAlgorithm;
     unsigned long   tcpRtoMin;
@@ -163,17 +86,8 @@ struct tcp_mib {
 
 
 int             linux_read_ip_stat(struct ip_mib *);
-int             linux_read_ip6_stat(struct ip6_mib *);
 int             linux_read_icmp_stat(struct icmp_mib *);
-int             linux_read_icmp6_stat(struct icmp6_mib *);
 int             linux_read_udp_stat(struct udp_mib *);
-int             linux_read_udp6_stat(struct udp6_mib *);
 int             linux_read_tcp_stat(struct tcp_mib *);
-int             linux_read_icmp_msg_stat(struct icmp_mib *,
-                                         struct icmp4_msg_mib *,
-                                         int *flag);
-int             linux_read_icmp6_msg_stat(struct icmp6_mib *,
-                                          struct icmp6_msg_mib *,
-                                          int *support);
 
 #endif                          /* _MIBGROUP_KERNEL_LINUX_H */
diff --git a/agent/mibgroup/mibII/kernel_netbsd.c b/agent/mibgroup/mibII/kernel_netbsd.c
deleted file mode 100644
index 93f38b7..0000000
--- a/agent/mibgroup/mibII/kernel_netbsd.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * NetBSD implementation for mapping the IP stat arrays into struct's
- * Required for NetBSD versions produced after April 7th 2008 (4+)
- *
- * Based on: http://mail-index.netbsd.org/pkgsrc-users/2008/04/27/msg007095.html
- */
-
-#include <sys/param.h>
-#include <sys/sysctl.h>
-#include <sys/protosw.h>
-
-#include <netinet/in.h>
-#include <netinet/in_systm.h>
-#include <netinet/ip.h>
-#include <netinet/ip_icmp.h>
-#include <netinet/ip_var.h>
-#include <netinet/icmp_var.h>
-#include <netinet/tcp.h>
-#include <netinet/tcp_timer.h>
-#include <netinet/tcp_var.h>
-#include <netinet/udp.h>
-#include <netinet/udp_var.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 "kernel_netbsd.h"
-
-#if defined(NETBSD_STATS_VIA_SYSCTL)
-
-int
-netbsd_read_icmp_stat(struct icmp_mib *mib)
-{
-    uint64_t icmpstat[ICMP_NSTATS];
-    size_t   size = sizeof(icmpstat);
-    int      i;
-
-    (void)memset(mib, 0, sizeof(*mib));
-
-    if (-1 == sysctlbyname("net.inet.icmp.stats", icmpstat, &size, NULL, 0))
-        return -1;
-
-    mib->icmpInMsgs = icmpstat[ICMP_STAT_BADCODE]
-        + icmpstat[ICMP_STAT_TOOSHORT]
-        + icmpstat[ICMP_STAT_CHECKSUM]
-        + icmpstat[ICMP_STAT_BADLEN];
-    for (i = 0; i <= ICMP_MAXTYPE; i++)
-        mib->icmpInMsgs  += icmpstat[ICMP_STAT_INHIST + i];
-    mib->icmpInErrors = icmpstat[ICMP_STAT_BADCODE]
-        + icmpstat[ICMP_STAT_TOOSHORT]
-        + icmpstat[ICMP_STAT_CHECKSUM]
-        + icmpstat[ICMP_STAT_BADLEN];
-    mib->icmpInDestUnreachs = icmpstat[ICMP_STAT_INHIST + ICMP_UNREACH];
-    mib->icmpInTimeExcds = icmpstat[ICMP_STAT_INHIST + ICMP_TIMXCEED];
-    mib->icmpInParmProbs = icmpstat[ICMP_STAT_INHIST + ICMP_PARAMPROB];
-    mib->icmpInSrcQuenchs = icmpstat[ICMP_STAT_INHIST + ICMP_SOURCEQUENCH];
-    mib->icmpInRedirects = icmpstat[ICMP_STAT_INHIST + ICMP_REDIRECT];
-    mib->icmpInEchos = icmpstat[ICMP_STAT_INHIST + ICMP_ECHO];
-    mib->icmpInEchoReps = icmpstat[ICMP_STAT_INHIST + ICMP_ECHOREPLY];
-    mib->icmpInTimestamps = icmpstat[ICMP_STAT_INHIST + ICMP_TSTAMP];
-    mib->icmpInTimestampReps
-        = icmpstat[ICMP_STAT_INHIST + ICMP_TSTAMPREPLY];
-    mib->icmpInAddrMasks = icmpstat[ICMP_STAT_INHIST + ICMP_MASKREQ];
-    mib->icmpInAddrMaskReps = icmpstat[ICMP_STAT_INHIST + ICMP_MASKREPLY];
-    mib->icmpOutMsgs = icmpstat[ICMP_STAT_OLDSHORT]
-        + icmpstat[ICMP_STAT_OLDICMP];
-    for (i = 0; i <= ICMP_MAXTYPE; i++)
-        mib->icmpOutMsgs += icmpstat[ICMP_STAT_OUTHIST + i];
-    mib->icmpOutErrors = icmpstat[ICMP_STAT_OLDSHORT]
-        + icmpstat[ICMP_STAT_OLDICMP];
-    mib->icmpOutDestUnreachs = icmpstat[ICMP_STAT_OUTHIST + ICMP_UNREACH];
-    mib->icmpOutTimeExcds = icmpstat[ICMP_STAT_OUTHIST + ICMP_TIMXCEED];
-    mib->icmpOutParmProbs = icmpstat[ICMP_STAT_OUTHIST + ICMP_PARAMPROB];
-    mib->icmpOutSrcQuenchs
-        = icmpstat[ICMP_STAT_OUTHIST + ICMP_SOURCEQUENCH];
-    mib->icmpOutRedirects = icmpstat[ICMP_STAT_OUTHIST + ICMP_REDIRECT];
-    mib->icmpOutEchos = icmpstat[ICMP_STAT_OUTHIST + ICMP_ECHO];
-    mib->icmpOutEchoReps = icmpstat[ICMP_STAT_OUTHIST + ICMP_ECHOREPLY];
-    mib->icmpOutTimestamps = icmpstat[ICMP_STAT_OUTHIST + ICMP_TSTAMP];
-    mib->icmpOutTimestampReps
-        = icmpstat[ICMP_STAT_OUTHIST + ICMP_TSTAMPREPLY];
-    mib->icmpOutAddrMasks = icmpstat[ICMP_STAT_OUTHIST + ICMP_MASKREQ];
-    mib->icmpOutAddrMaskReps = icmpstat[ICMP_STAT_OUTHIST + ICMP_MASKREPLY];
-
-    return 0;
-}
-
-int
-netbsd_read_ip_stat(struct ip_mib *mib)
-{
-    uint64_t ipstat[IP_NSTATS];
-    size_t   size = sizeof(ipstat);
-    int      i;
-    static   int sname[4] = { 4, 2, 0, 0 }; /* CTL_NET, PF_INET, IPPROTO_IP, 0 */
-    size_t   len;
-
-    (void)memset(mib, 0, sizeof(*mib));
-
-    if (-1 == sysctlbyname("net.inet.ip.stats", ipstat, &size, NULL, 0))
-        return -1;
-
-    mib->ipForwarding = 0;
-    len = sizeof i;
-    sname[3] = IPCTL_FORWARDING;
-    if (0 == sysctl(sname, 4, &i, &len, 0, 0)) {
-        mib->ipForwarding = (long)i;
-    }
-
-    mib->ipDefaultTTL = 0;
-    sname[3] = IPCTL_DEFTTL;     
-    if (0 == sysctl(sname, 4, &i, &len, 0, 0)) {
-        mib->ipDefaultTTL = (long)i;
-    }
-
-    mib->ipInReceives = ipstat[IP_STAT_TOTAL];
-    mib->ipInHdrErrors = ipstat[IP_STAT_BADSUM]
-        + ipstat[IP_STAT_TOOSHORT] + ipstat[IP_STAT_TOOSMALL]
-        + ipstat[IP_STAT_BADHLEN] + ipstat[IP_STAT_BADLEN];
-    mib->ipInAddrErrors = ipstat[IP_STAT_CANTFORWARD];
-    mib->ipForwDatagrams = ipstat[IP_STAT_FORWARD];
-    mib->ipInUnknownProtos = ipstat[IP_STAT_NOPROTO];
-    mib->ipInDiscards = ipstat[IP_STAT_FRAGDROPPED]; /* FIXME */
-    mib->ipInDelivers = ipstat[IP_STAT_DELIVERED];
-    mib->ipOutRequests = ipstat[IP_STAT_LOCALOUT];
-    mib->ipOutDiscards = ipstat[IP_STAT_ODROPPED];
-    mib->ipOutNoRoutes = 0; /* FIXME */
-    mib->ipReasmTimeout = 0; /* IPFRAGTTL; */
-    mib->ipReasmReqds = ipstat[IP_STAT_FRAGMENTS];
-    mib->ipReasmOKs = ipstat[IP_STAT_REASSEMBLED];
-    mib->ipReasmFails = ipstat[IP_STAT_FRAGDROPPED]
-        + ipstat[IP_STAT_FRAGTIMEOUT];
-    mib->ipFragOKs = ipstat[IP_STAT_FRAGMENTS];
-    mib->ipFragFails = ipstat[IP_STAT_CANTFRAG];
-    mib->ipFragCreates = ipstat[IP_STAT_OFRAGMENTS];
-    mib->ipRoutingDiscards = ipstat[IP_STAT_NOROUTE];
-    
-    return 0;
-}
-
-int
-netbsd_read_tcp_stat(struct tcp_mib *mib)
-{
-    uint64_t tcpstat[TCP_NSTATS];
-    size_t   size = sizeof(tcpstat);
-
-    (void)memset(mib, 0, sizeof(*mib));
-
-    if (-1 == sysctlbyname("net.inet.tcp.stats", tcpstat, &size, NULL, 0))
-        return -1;
-
-    mib->tcpRtoAlgorithm = 4; /* Assume Van Jacobsen's algorithm */
-    mib->tcpRtoMin = TCPTV_MIN;
-    mib->tcpRtoMax = TCPTV_REXMTMAX;
-    mib->tcpMaxConn = -1; /* Dynamic Maximum */
-    mib->tcpActiveOpens = tcpstat[TCP_STAT_CONNATTEMPT];
-    mib->tcpPassiveOpens = tcpstat[TCP_STAT_ACCEPTS];
-    mib->tcpAttemptFails = tcpstat[TCP_STAT_CONNDROPS];
-    mib->tcpEstabResets = tcpstat[TCP_STAT_DROPS];
-    mib->tcpCurrEstab = 0; /* FIXME */
-    mib->tcpInSegs = tcpstat[TCP_STAT_RCVTOTAL];
-    mib->tcpOutSegs = tcpstat[TCP_STAT_SNDTOTAL]
-        - tcpstat[TCP_STAT_SNDREXMITPACK];
-    mib->tcpRetransSegs = tcpstat[TCP_STAT_SNDREXMITPACK];
-    mib->tcpInErrs = tcpstat[TCP_STAT_RCVBADSUM]
-        + tcpstat[TCP_STAT_RCVBADOFF]
-        + tcpstat[TCP_STAT_RCVMEMDROP]
-        + tcpstat[TCP_STAT_RCVSHORT];
-    mib->tcpOutRsts = tcpstat[TCP_STAT_SNDCTRL]
-        - tcpstat[TCP_STAT_CLOSED];
-    mib->tcpInErrsValid = mib->tcpInErrs; /* FIXME */
-    mib->tcpOutRstsValid = mib->tcpOutRsts; /* FIXME */
-
-    return 0;
-}
-
-int
-netbsd_read_udp_stat(struct udp_mib *mib)
-{
-    uint64_t udpstat[UDP_NSTATS];
-    size_t   size = sizeof(udpstat);
-
-    (void)memset(mib, 0, sizeof(*mib));
-
-    if (-1 == sysctlbyname("net.inet.udp.stats", udpstat, &size, NULL, 0))
-        return -1;
-
-    mib->udpInDatagrams = udpstat[UDP_STAT_IPACKETS];
-    mib->udpNoPorts = udpstat[UDP_STAT_NOPORT];
-    mib->udpOutDatagrams = udpstat[UDP_STAT_OPACKETS];
-    mib->udpInErrors = udpstat[UDP_STAT_HDROPS]
-        + udpstat[UDP_STAT_BADSUM] /* + udpstat[UDP_STAT_DISCARD] /* FIXME */
-        + udpstat[UDP_STAT_FULLSOCK] + udpstat[UDP_STAT_BADLEN];
-
-    return 0;
-}
-
-#endif
diff --git a/agent/mibgroup/mibII/kernel_netbsd.h b/agent/mibgroup/mibII/kernel_netbsd.h
deleted file mode 100644
index 9000682..0000000
--- a/agent/mibgroup/mibII/kernel_netbsd.h
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef _MIBGROUP_KERNEL_NETBSD_H
-#define _MIBGROUP_KERNEL_NETBSD_H
-
-#if defined(NETBSD_STATS_VIA_SYSCTL)
-
-struct icmp_mib {
-    unsigned long   icmpInMsgs;
-    unsigned long   icmpInErrors;
-    unsigned long   icmpInDestUnreachs;
-    unsigned long   icmpInTimeExcds;
-    unsigned long   icmpInParmProbs;
-    unsigned long   icmpInSrcQuenchs;
-    unsigned long   icmpInRedirects;
-    unsigned long   icmpInEchos;
-    unsigned long   icmpInEchoReps;
-    unsigned long   icmpInTimestamps;
-    unsigned long   icmpInTimestampReps;
-    unsigned long   icmpInAddrMasks;
-    unsigned long   icmpInAddrMaskReps;
-    unsigned long   icmpOutMsgs;
-    unsigned long   icmpOutErrors;
-    unsigned long   icmpOutDestUnreachs;
-    unsigned long   icmpOutTimeExcds;
-    unsigned long   icmpOutParmProbs;
-    unsigned long   icmpOutSrcQuenchs;
-    unsigned long   icmpOutRedirects;
-    unsigned long   icmpOutEchos;
-    unsigned long   icmpOutEchoReps;
-    unsigned long   icmpOutTimestamps;
-    unsigned long   icmpOutTimestampReps;
-    unsigned long   icmpOutAddrMasks;
-    unsigned long   icmpOutAddrMaskReps;
-};
-
-struct ip_mib {
-    unsigned long   ipForwarding;
-    unsigned long   ipDefaultTTL;
-    unsigned long   ipInReceives;
-    unsigned long   ipInHdrErrors;
-    unsigned long   ipInAddrErrors;
-    unsigned long   ipForwDatagrams;
-    unsigned long   ipInUnknownProtos;
-    unsigned long   ipInDiscards;
-    unsigned long   ipInDelivers;
-    unsigned long   ipOutRequests;
-    unsigned long   ipOutDiscards;
-    unsigned long   ipOutNoRoutes;
-    unsigned long   ipReasmTimeout;
-    unsigned long   ipReasmReqds;
-    unsigned long   ipReasmOKs;
-    unsigned long   ipReasmFails;
-    unsigned long   ipFragOKs;
-    unsigned long   ipFragFails;
-    unsigned long   ipFragCreates;
-    unsigned long   ipRoutingDiscards;
-};
-
-struct tcp_mib {
-    unsigned long   tcpRtoAlgorithm;
-    unsigned long   tcpRtoMin;
-    unsigned long   tcpRtoMax;
-    unsigned long   tcpMaxConn;
-    unsigned long   tcpActiveOpens;
-    unsigned long   tcpPassiveOpens;
-    unsigned long   tcpAttemptFails;
-    unsigned long   tcpEstabResets;
-    unsigned long   tcpCurrEstab;
-    unsigned long   tcpInSegs;
-    unsigned long   tcpOutSegs;
-    unsigned long   tcpRetransSegs;
-    unsigned long   tcpInErrs;
-    unsigned long   tcpOutRsts;
-    short           tcpInErrsValid;
-    short           tcpOutRstsValid;
-};
-
-struct udp_mib {
-    unsigned long   udpInDatagrams;
-    unsigned long   udpNoPorts;
-    unsigned long   udpInErrors;
-    unsigned long   udpOutDatagrams;
-};
-
-int      netbsd_read_icmp_stat(struct icmp_mib *);
-int      netbsd_read_ip_stat(struct ip_mib *);
-int      netbsd_read_tcp_stat(struct tcp_mib *);
-int      netbsd_read_udp_stat(struct udp_mib *);
-
-#endif /* NETBSD_STATS_VIA_SYSCTL */
-
-#endif /* _MIBGROUP_KERNEL_NETBSD_H */
diff --git a/agent/mibgroup/mibII/mibII_common.h b/agent/mibgroup/mibII/mibII_common.h
index 160ab82..5200c3a 100644
--- a/agent/mibgroup/mibII/mibII_common.h
+++ b/agent/mibgroup/mibII/mibII_common.h
@@ -11,6 +11,9 @@
 #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>
@@ -25,7 +28,7 @@
 #if HAVE_SYS_TCPIPSTATS_H
 #include <sys/tcpipstats.h>
 #endif
-#if defined(NETSNMP_IFNET_NEEDS_KERNEL) && !defined(_KERNEL)
+#if defined(IFNET_NEEDS_KERNEL) && !defined(_KERNEL)
 #define _KERNEL 1
 #define _I_DEFINED_KERNEL
 #endif
@@ -97,9 +100,6 @@
 #ifdef linux
 #include "kernel_linux.h"
 #endif
-#ifdef NETBSD_STATS_VIA_SYSCTL
-#include "kernel_netbsd.h"
-#endif
 	/* or MIB_xxxCOUNTER_SYMBOL || hpux11 */
 #ifdef hpux
 #include <sys/mib.h>
diff --git a/agent/mibgroup/mibII/mta_sendmail.c b/agent/mibgroup/mibII/mta_sendmail.c
index 00397d3..ea838e5 100644
--- a/agent/mibgroup/mibII/mta_sendmail.c
+++ b/agent/mibgroup/mibII/mta_sendmail.c
@@ -101,8 +101,13 @@
 # endif
 #endif
 
-#include <errno.h>
+#if HAVE_STDARG_H
 #include <stdarg.h>
+#else
+#include <varargs.h>
+#endif
+
+#include <errno.h>
 
  /**/
 /** "macros and variables for registering the OID tree" */
@@ -147,37 +152,31 @@ enum {
  * structure that tells the agent, which function returns what values 
  */
 static struct variable3 mta_variables[] = {
-    {MTARECEIVEDMESSAGES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_mtaEntry, 3, {1, 1, 1}},
-    {MTASTOREDMESSAGES, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_mtaEntry, 3, {1, 1, 2}},
-    {MTATRANSMITTEDMESSAGES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_mtaEntry, 3, {1, 1, 3}},
-    {MTARECEIVEDVOLUME, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_mtaEntry, 3, {1, 1, 4}},
-    {MTASTOREDVOLUME, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_mtaEntry, 3, {1, 1, 5}},
-    {MTATRANSMITTEDVOLUME, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_mtaEntry, 3, {1, 1, 6}},
-
-    {MTAGROUPRECEIVEDMESSAGES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_mtaGroupEntry, 3, {2, 1, 2}},
-    {MTAGROUPREJECTEDMESSAGES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_mtaGroupEntry, 3, {2, 1, 3}},
-    {MTAGROUPSTOREDMESSAGES, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_mtaGroupEntry, 3, {2, 1, 4}},
-    {MTAGROUPTRANSMITTEDMESSAGES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_mtaGroupEntry, 3, {2, 1, 5}},
-    {MTAGROUPRECEIVEDVOLUME, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_mtaGroupEntry, 3, {2, 1, 6}},
-    {MTAGROUPSTOREDVOLUME, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_mtaGroupEntry, 3, {2, 1, 7}},
-    {MTAGROUPTRANSMITTEDVOLUME, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_mtaGroupEntry, 3, {2, 1, 8}},
-    {MTAGROUPNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_mtaGroupEntry, 3, {2, 1, 25}},
-    {MTAGROUPHIERARCHY, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_mtaGroupEntry, 3, {2, 1, 31}}
+    {MTARECEIVEDMESSAGES, ASN_COUNTER, RONLY, var_mtaEntry, 3, {1, 1, 1}},
+    {MTASTOREDMESSAGES, ASN_GAUGE, RONLY, var_mtaEntry, 3, {1, 1, 2}},
+    {MTATRANSMITTEDMESSAGES, ASN_COUNTER, RONLY, var_mtaEntry, 3,
+     {1, 1, 3}},
+    {MTARECEIVEDVOLUME, ASN_COUNTER, RONLY, var_mtaEntry, 3, {1, 1, 4}},
+    {MTASTOREDVOLUME, ASN_GAUGE, RONLY, var_mtaEntry, 3, {1, 1, 5}},
+    {MTATRANSMITTEDVOLUME, ASN_COUNTER, RONLY, var_mtaEntry, 3, {1, 1, 6}},
+
+    {MTAGROUPRECEIVEDMESSAGES, ASN_COUNTER, RONLY, var_mtaGroupEntry, 3,
+     {2, 1, 2}},
+    {MTAGROUPREJECTEDMESSAGES, ASN_COUNTER, RONLY, var_mtaGroupEntry, 3,
+     {2, 1, 3}},
+    {MTAGROUPSTOREDMESSAGES, ASN_GAUGE, RONLY, var_mtaGroupEntry, 3,
+     {2, 1, 4}},
+    {MTAGROUPTRANSMITTEDMESSAGES, ASN_COUNTER, RONLY, var_mtaGroupEntry, 3,
+     {2, 1, 5}},
+    {MTAGROUPRECEIVEDVOLUME, ASN_COUNTER, RONLY, var_mtaGroupEntry, 3,
+     {2, 1, 6}},
+    {MTAGROUPSTOREDVOLUME, ASN_GAUGE, RONLY, var_mtaGroupEntry, 3,
+     {2, 1, 7}},
+    {MTAGROUPTRANSMITTEDVOLUME, ASN_COUNTER, RONLY, var_mtaGroupEntry, 3,
+     {2, 1, 8}},
+    {MTAGROUPNAME, ASN_OCTET_STR, RONLY, var_mtaGroupEntry, 3, {2, 1, 25}},
+    {MTAGROUPHIERARCHY, ASN_INTEGER, RONLY, var_mtaGroupEntry, 3,
+     {2, 1, 31}}
 };
  /**/
 /** "other macros and structures" */
@@ -343,15 +342,37 @@ static long     dir_cache_time = 10;    /* time (in seconds) to wait before scan
  *    ...:         additional parameters to insert into the error message string
  *
  */
-static void
+#if HAVE_STDARG_H
+    static void
 print_error(int priority, BOOL config, BOOL config_only,
             const char *function, const char *format, ...)
+#else
+    static void
+print_error(va_alist)
+     va_dcl
+#endif
 {
     va_list         ap;
     char            buffer[2 * FILENAMELEN + 200];      /* I know, that's not perfectly safe, but since I don't use more
                                                          * than two filenames in one error message, that should be enough */
 
+#if HAVE_STDARG_H
     va_start(ap, format);
+#else
+    int             priority;
+    BOOL            config;
+    BOOL            config_only;
+    const char     *function;
+    const char     *format;
+
+    va_start(ap);
+    priority = va_arg(ap, int);
+    config = va_arg(ap, BOOL);
+    config_only = va_arg(ap, BOOL);
+    function = va_arg(ap, char *);
+    format = va_arg(ap, char *);
+#endif
+
     vsnprintf(buffer, sizeof(buffer), format, ap);
 
     if (config) {
@@ -499,7 +520,7 @@ open_sendmailst(BOOL config)
 count_queuegroup(struct QGrp *qg)
 {
     struct QDir    *d;
-    char            cwd[SNMP_MAXPATH];
+    char            cwd[200];
     time_t          current_time = time(NULL);
 
     if (current_time <= (qg->last + dir_cache_time)) {
@@ -853,7 +874,8 @@ read_sendmailcf(BOOL config)
                 }
 
                 if (strncasecmp(line + 2, "StatusFile", 10) == 0) {
-                    strlcpy(sendmailst_fn, filename, sizeof(sendmailst_fn));
+                    strncpy(sendmailst_fn, filename, sizeof(sendmailst_fn));
+                    sendmailst_fn[ sizeof(sendmailst_fn)-1 ] = 0;
                     found_sendmailst = TRUE;
                     DEBUGMSGTL(("mibII/mta_sendmail.c:read_sendmailcf",
                                 "found statatistics file \"%s\"\n",
@@ -947,13 +969,11 @@ read_sendmailcf(BOOL config)
                 }
 
                 /*
-                 * skip to one past the next , 
+                 * skip to next , 
                  */
                 while (*p && *p != ',') {
                     p++;
                 }
-		if (*p)
-		    p++;
             }
 
             /*
@@ -974,7 +994,11 @@ read_sendmailcf(BOOL config)
         linenr++;
     }
 
-    fclose(sendmailcf_fp);
+    for (i = 0; i < 10 && fclose(sendmailcf_fp) != 0; i++) {
+        /*
+         * nothing to do 
+         */
+    }
 
     for (i = mailers; i < MAXMAILERS; i++) {
         mailernames[i][0] = '\0';
@@ -1033,7 +1057,9 @@ mta_sendmail_parse_config(const char *token, char *line)
         open_sendmailst(TRUE);
 
         if (sendmailst_fh == -1) {
-	    netsnmp_config_error("couldn't open file \"%s\"", sendmailst_fn);
+            char            str[FILENAMELEN + 50];
+            sprintf(str, "couldn't open file \"%s\"", sendmailst_fn);
+            config_perror(str);
             return;
         }
 
diff --git a/agent/mibgroup/mibII/route_headers.h b/agent/mibgroup/mibII/route_headers.h
index eace2e2..34830f2 100644
--- a/agent/mibgroup/mibII/route_headers.h
+++ b/agent/mibgroup/mibII/route_headers.h
@@ -27,6 +27,8 @@
 #include "ip.h"
 #include "kernel.h"
 #include "interfaces.h"
+#include "struct.h"
+#include "util_funcs.h"
 
 #else /* !NETSNMP_CAN_USE_SYSCTL */
 
@@ -40,7 +42,11 @@
 #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
@@ -88,28 +94,28 @@
 #endif
 #undef	KERNEL
 #ifdef RTENTRY_4_4
-#ifndef HAVE_STRUCT_RTENTRY_RT_UNIT
+#ifndef STRUCT_RTENTRY_HAS_RT_UNIT
 #define rt_unit rt_refcnt       /* Reuse this field for device # */
 #endif
-#ifndef HAVE_STRUCT_RTENTRY_RT_DST
+#ifndef STRUCT_RTENTRY_HAS_RT_DST
 #define rt_dst rt_nodes->rn_key
 #endif
 #else                           /* RTENTRY_4_3 */
-#ifndef HAVE_STRUCT_RTENTRY_RT_DST
+#ifndef STRUCT_RTENTRY_HAS_RT_DST
 #define rt_dst rt_nodes->rn_key
 #endif
-#ifndef HAVE_STRUCT_RTENTRY_RT_HASH
+#ifndef STRUCT_RTENTRY_HAS_RT_HASH
 #define rt_hash rt_pad1
 #endif
-#ifndef HAVE_STRUCT_RTENTRY_RT_REFCNT
+#ifndef STRUCT_RTENTRY_HAS_RT_REFCNT
 #ifndef hpux10
 #define rt_refcnt rt_pad2
 #endif
 #endif
-#ifndef HAVE_STRUCT_RTENTRY_RT_USE
+#ifndef STRUCT_RTENTRY_HAS_RT_USE
 #define rt_use rt_pad3
 #endif
-#ifndef HAVE_STRUCT_RTENTRY_RT_UNIT
+#ifndef STRUCT_RTENTRY_HAS_RT_UNIT
 #define rt_unit rt_refcnt       /* Reuse this field for device # */
 #endif
 #endif
@@ -145,23 +151,16 @@
 #endif
 #endif
 
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+
 #if HAVE_NLIST_H
 #include <nlist.h>
 #endif
 
 #ifdef solaris2
 #include "kernel_sunos5.h"
-/* Solaris 2.6/7 need sys/stream.h (mblk_t) to include inet/ip.h */
-#ifdef HAVE_SYS_STREAM_H
-#include <sys/stream.h>
-#endif
-/* Solaris 2.6 needs inet/common.h (u16) to include inet/ip.h */
-#ifdef HAVE_INET_COMMON_H
-#include <inet/common.h>
-#endif
-#ifdef HAVE_INET_IP_H
-#include <inet/ip.h>
-#endif /* HAVE_INET_IP_H */
 #endif
 
 #ifdef HAVE_SYS_SYSCTL_H
diff --git a/agent/mibgroup/mibII/route_write.c b/agent/mibgroup/mibII/route_write.c
index 5820ee1..6f4d8ca 100644
--- a/agent/mibgroup/mibII/route_write.c
+++ b/agent/mibgroup/mibII/route_write.c
@@ -60,6 +60,10 @@
 #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>
 
@@ -72,10 +76,10 @@
 
 #if !defined (WIN32) && !defined (cygwin)
 
-#ifndef HAVE_STRUCT_RTENTRY_RT_DST
+#ifndef STRUCT_RTENTRY_HAS_RT_DST
 #define rt_dst rt_nodes->rn_key
 #endif
-#ifndef HAVE_STRUCT_RTENTRY_RT_HASH
+#ifndef STRUCT_RTENTRY_HAS_RT_HASH
 #define rt_hash rt_pad1
 #endif
 
@@ -93,7 +97,7 @@
 int
 addRoute(u_long dstip, u_long gwip, u_long iff, u_short flags)
 {
-#if defined SIOCADDRT && !(defined(irix6) || defined(__OpenBSD__) || defined(darwin))
+#if defined SIOCADDRT && !defined(irix6)
     struct sockaddr_in dst;
     struct sockaddr_in gateway;
     int             s, rc;
@@ -129,49 +133,6 @@ addRoute(u_long dstip, u_long gwip, u_long iff, u_short flags)
         snmp_log_perror("ioctl");
     return rc;
 
-#elif (defined __OpenBSD__ || defined(darwin))
-
-       int     s, rc;
-       struct {
-               struct  rt_msghdr hdr;
-               struct  sockaddr_in dst;
-               struct  sockaddr_in gateway;
-       } rtmsg;
-
-       s = socket(PF_ROUTE, SOCK_RAW, 0);
-       if (s < 0) {
-            snmp_log_perror("socket");
-            return -1;
-       }
-
-       shutdown(s, SHUT_RD);
-
-       /* possible panic otherwise */
-       flags |= (RTF_UP | RTF_GATEWAY);
-
-       bzero(&rtmsg, sizeof(rtmsg));
-
-       rtmsg.hdr.rtm_type = RTM_ADD;
-       rtmsg.hdr.rtm_version = RTM_VERSION;
-       rtmsg.hdr.rtm_addrs = RTA_DST | RTA_GATEWAY;
-       rtmsg.hdr.rtm_flags = RTF_GATEWAY;
-
-       rtmsg.dst.sin_len = sizeof(rtmsg.dst);
-       rtmsg.dst.sin_family = AF_INET;
-       rtmsg.dst.sin_addr.s_addr = htonl(dstip);
-
-       rtmsg.gateway.sin_len = sizeof(rtmsg.gateway);
-       rtmsg.gateway.sin_family = AF_INET;
-       rtmsg.gateway.sin_addr.s_addr = htonl(gwip);
-
-       rc = sizeof(rtmsg);
-       rtmsg.hdr.rtm_msglen = rc;
-
-       if ((rc = write(s, &rtmsg, rc)) < 0) {
-               snmp_log_perror("writing to routing socket");
-               return -1;
-       }
-       return (rc);
 #else                           /* SIOCADDRT */
     return -1;
 #endif
@@ -182,7 +143,7 @@ addRoute(u_long dstip, u_long gwip, u_long iff, u_short flags)
 int
 delRoute(u_long dstip, u_long gwip, u_long iff, u_short flags)
 {
-#if defined SIOCADDRT && !(defined(irix6) || defined(__OpenBSD__) || defined(darwin))
+#if defined SIOCDELRT && !defined(irix6)
 
     struct sockaddr_in dst;
     struct sockaddr_in gateway;
@@ -216,56 +177,14 @@ delRoute(u_long dstip, u_long gwip, u_long iff, u_short flags)
     rc = ioctl(s, SIOCDELRT, (caddr_t) & route);
     close(s);
     return rc;
-#elif (defined __OpenBSD__ || defined(darwin))
- 
-       int     s, rc;
-       struct {
-               struct  rt_msghdr hdr;
-               struct  sockaddr_in dst;
-               struct  sockaddr_in gateway;
-       } rtmsg;
-
-       s = socket(PF_ROUTE, SOCK_RAW, 0);
-       if (s < 0) {
-            snmp_log_perror("socket");
-            return -1;
-       }
-
-       shutdown(s, SHUT_RD);
-
-       /* possible panic otherwise */
-       flags |= (RTF_UP | RTF_GATEWAY);
-
-       bzero(&rtmsg, sizeof(rtmsg));
-
-       rtmsg.hdr.rtm_type = RTM_DELETE;
-       rtmsg.hdr.rtm_version = RTM_VERSION;
-       rtmsg.hdr.rtm_addrs = RTA_DST | RTA_GATEWAY;
-       rtmsg.hdr.rtm_flags = RTF_GATEWAY;
-
-       rtmsg.dst.sin_len = sizeof(rtmsg.dst);
-       rtmsg.dst.sin_family = AF_INET;
-       rtmsg.dst.sin_addr.s_addr = htonl(dstip);
-
-       rtmsg.gateway.sin_len = sizeof(rtmsg.gateway);
-       rtmsg.gateway.sin_family = AF_INET;
-       rtmsg.gateway.sin_addr.s_addr = htonl(gwip);
-
-       rc = sizeof(rtmsg);
-       rtmsg.hdr.rtm_msglen = rc;
-
-       if ((rc = write(s, &rtmsg, rc)) < 0) {
-               snmp_log_perror("writing to routing socket");
-               return -1;
-       }
-       return (rc);
+
 #else                           /* SIOCDELRT */
     return 0;
 #endif
 }
 
 
-#ifndef HAVE_STRUCT_RTENTRY_RT_DST
+#ifndef STRUCT_RTENTRY_HAS_RT_DST
 #undef rt_dst
 #endif
 
@@ -309,7 +228,7 @@ findCacheRTE(u_long dst)
             return (&rtcache[i]);
         }
     }
-    return NULL;
+    return 0;
 }
 
 struct rtent   *
@@ -325,7 +244,7 @@ newCacheRTE(void)
             return (&rtcache[i]);
         }
     }
-    return NULL;
+    return 0;
 
 }
 
@@ -347,7 +266,7 @@ delCacheRTE(u_long dst)
 struct rtent   *
 cacheKernelRTE(u_long dst)
 {
-    return NULL;                /* for now */
+    return 0;                   /* for now */
     /*
      * ...... 
      */
@@ -434,6 +353,11 @@ write_rte(int action,
 
             memcpy(buf, var_val, (var_val_len > 8) ? 8 : var_val_len);
 
+            if (var_val_type != ASN_IPADDRESS) {
+                snmp_log(LOG_ERR, "not IP address 2");
+                return SNMP_ERR_WRONGTYPE;
+            }
+
             rp->xx_dst = *((u_long *) buf);
 
 
@@ -504,12 +428,16 @@ write_rte(int action,
 
             memcpy(buf, var_val, (var_val_len > 8) ? 8 : var_val_len);
 
+            if (var_val_type != ASN_IPADDRESS) {
+                snmp_log(LOG_ERR, "not right5");
+                return SNMP_ERR_WRONGTYPE;
+            }
+
             rp->xx_nextIR = *((u_long *) buf);
 
         } else if (action == COMMIT) {
             rp->rt_nextIR = rp->xx_nextIR;
         }
-	break;
 
 
     case IPROUTETYPE:
@@ -593,7 +521,7 @@ write_rte(int action,
     return SNMP_ERR_NOERROR;
 }
 
-#elif defined(HAVE_IPHLPAPI_H)  /* WIN32 cygwin */
+#else                           /* WIN32 cygwin */
 #include <iphlpapi.h>
 
 extern PMIB_IPFORWARDROW route_row;
@@ -798,7 +726,7 @@ write_rte(int action,
                     if ((status =
                          CreateIpForwardEntry(route_row)) != NO_ERROR) {
                         snmp_log(LOG_ERR,
-                                 "Inside COMMIT: CreateIpNetEntry failed, status %lu\n",
+                                 "Inside COMMIT: CreateIpNetEntry failed, status %d\n",
                                  status);
                         retval = SNMP_ERR_COMMITFAILED;
                     }
diff --git a/agent/mibgroup/mibII/setSerialNo.c b/agent/mibgroup/mibII/setSerialNo.c
index 85a4098..90a0aba 100644
--- a/agent/mibgroup/mibII/setSerialNo.c
+++ b/agent/mibgroup/mibII/setSerialNo.c
@@ -2,13 +2,9 @@
  *  This file implements the snmpSetSerialNo TestAndIncr counter
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
-netsnmp_feature_require(watcher_spinlock)
-
-
 #include "setSerialNo.h"
 
 /*
@@ -64,21 +60,13 @@ init_setSerialNo(void)
     /*
      * Register 'setserialno' as a watched spinlock object
      */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     netsnmp_register_watched_spinlock(
         netsnmp_create_handler_registration("snmpSetSerialNo", NULL,
                                    set_serial_oid,
                                    OID_LENGTH(set_serial_oid),
                                    HANDLER_CAN_RWRITE),
                                        &setserialno );
-#else  /* !NETSNMP_NO_WRITE_SUPPORT */
-    netsnmp_register_watched_spinlock(
-        netsnmp_create_handler_registration("snmpSetSerialNo", NULL,
-                                   set_serial_oid,
-                                   OID_LENGTH(set_serial_oid),
-                                   HANDLER_CAN_RONLY),
-                                       &setserialno );
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+
     DEBUGMSGTL(("scalar_int", "Done initalizing example scalar int\n"));
 }
 
diff --git a/agent/mibgroup/mibII/snmp_mib.c b/agent/mibgroup/mibII/snmp_mib.c
index a056d99..0b30196 100644
--- a/agent/mibgroup/mibII/snmp_mib.c
+++ b/agent/mibgroup/mibII/snmp_mib.c
@@ -1,20 +1,97 @@
+/*
+ *  SNMPv1 MIB group implementation - snmp.c
+ *
+ */
+
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
+#include <sys/types.h>
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#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>
-#include <net-snmp/agent/sysORTable.h>
 
+#include "util_funcs.h"
 #include "snmp_mib.h"
-#include "updates.h"
+#include "sysORTable.h"
+
+
+        /*********************
+	 *
+	 *  Kernel & interface information,
+	 *   and internal forward declarations
+	 *
+	 *********************/
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_truthvalue)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
+extern int      snmp_enableauthentraps;
+extern int      snmp_enableauthentrapsset;
+int             old_snmp_enableauthentraps;
 
-static const oid snmp_oid[] = { 1, 3, 6, 1, 2, 1, 11 };
+/*********************
+ *
+ *  Initialisation & common implementation functions
+ *
+ *********************/
 
-extern long snmp_enableauthentraps;
-extern int snmp_enableauthentrapsset;
+/*
+ * define the structure we're going to ask the agent to register our
+ * information at 
+ */
+struct variable1 snmp_variables[] = {
+    {SNMPINPKTS, ASN_COUNTER, RONLY, var_snmp, 1, {1}},
+    {SNMPOUTPKTS, ASN_COUNTER, RONLY, var_snmp, 1, {2}},
+    {SNMPINBADVERSIONS, ASN_COUNTER, RONLY, var_snmp, 1, {3}},
+#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
+    {SNMPINBADCOMMUNITYNAMES, ASN_COUNTER, RONLY, var_snmp, 1, {4}},
+    {SNMPINBADCOMMUNITYUSES, ASN_COUNTER, RONLY, var_snmp, 1, {5}},
+#endif /* support for community based SNMP */
+    {SNMPINASNPARSEERRORS, ASN_COUNTER, RONLY, var_snmp, 1, {6}},
+    {SNMPINTOOBIGS, ASN_COUNTER, RONLY, var_snmp, 1, {8}},
+    {SNMPINNOSUCHNAMES, ASN_COUNTER, RONLY, var_snmp, 1, {9}},
+    {SNMPINBADVALUES, ASN_COUNTER, RONLY, var_snmp, 1, {10}},
+    {SNMPINREADONLYS, ASN_COUNTER, RONLY, var_snmp, 1, {11}},
+    {SNMPINGENERRS, ASN_COUNTER, RONLY, var_snmp, 1, {12}},
+    {SNMPINTOTALREQVARS, ASN_COUNTER, RONLY, var_snmp, 1, {13}},
+    {SNMPINTOTALSETVARS, ASN_COUNTER, RONLY, var_snmp, 1, {14}},
+    {SNMPINGETREQUESTS, ASN_COUNTER, RONLY, var_snmp, 1, {15}},
+    {SNMPINGETNEXTS, ASN_COUNTER, RONLY, var_snmp, 1, {16}},
+    {SNMPINSETREQUESTS, ASN_COUNTER, RONLY, var_snmp, 1, {17}},
+    {SNMPINGETRESPONSES, ASN_COUNTER, RONLY, var_snmp, 1, {18}},
+    {SNMPINTRAPS, ASN_COUNTER, RONLY, var_snmp, 1, {19}},
+    {SNMPOUTTOOBIGS, ASN_COUNTER, RONLY, var_snmp, 1, {20}},
+    {SNMPOUTNOSUCHNAMES, ASN_COUNTER, RONLY, var_snmp, 1, {21}},
+    {SNMPOUTBADVALUES, ASN_COUNTER, RONLY, var_snmp, 1, {22}},
+    {SNMPOUTGENERRS, ASN_COUNTER, RONLY, var_snmp, 1, {24}},
+    {SNMPOUTGETREQUESTS, ASN_COUNTER, RONLY, var_snmp, 1, {25}},
+    {SNMPOUTGETNEXTS, ASN_COUNTER, RONLY, var_snmp, 1, {26}},
+    {SNMPOUTSETREQUESTS, ASN_COUNTER, RONLY, var_snmp, 1, {27}},
+    {SNMPOUTGETRESPONSES, ASN_COUNTER, RONLY, var_snmp, 1, {28}},
+    {SNMPOUTTRAPS, ASN_COUNTER, RONLY, var_snmp, 1, {29}},
+    {SNMPENABLEAUTHENTRAPS, ASN_INTEGER, RWRITE, var_snmp, 1, {30}},
+    {SNMPSILENTDROPS, ASN_COUNTER, RONLY, var_snmp, 1, {31}},
+    {SNMPPROXYDROPS, ASN_COUNTER, RONLY, var_snmp, 1, {32}}
+};
+
+/*
+ * Define the OID pointer to the top of the mib tree that we're
+ * registering underneath 
+ */
+oid             snmp_variables_oid[] = { SNMP_OID_MIB2, 11 };
+#ifdef USING_MIBII_SYSTEM_MIB_MODULE
+extern oid      system_module_oid[];
+extern int      system_module_oid_len;
+extern int      system_module_count;
+#endif
 
 static int
 snmp_enableauthentraps_store(int a, int b, void *c, void *d)
@@ -22,106 +99,21 @@ snmp_enableauthentraps_store(int a, int b, void *c, void *d)
     char            line[SNMP_MAXBUF_SMALL];
 
     if (snmp_enableauthentrapsset > 0) {
-        snprintf(line, SNMP_MAXBUF_SMALL, "pauthtrapenable %ld",
+        snprintf(line, SNMP_MAXBUF_SMALL, "pauthtrapenable %d",
                  snmp_enableauthentraps);
         snmpd_store_config(line);
     }
     return 0;
 }
 
-static int
-handle_truthvalue(netsnmp_mib_handler *handler,
-                  netsnmp_handler_registration *reginfo,
-                  netsnmp_agent_request_info *reqinfo,
-                  netsnmp_request_info *requests)
-{
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-    if (reqinfo->mode == MODE_SET_RESERVE1) {
-        int res = netsnmp_check_vb_truthvalue(requests->requestvb);
-        if (res != SNMP_ERR_NOERROR)
-            netsnmp_request_set_error(requests, res);
-    }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-    return SNMP_ERR_NOERROR;
-}
-
-static netsnmp_mib_handler*
-netsnmp_get_truthvalue(void)
-{
-    return netsnmp_create_handler("truthvalue", handle_truthvalue);
-}
-
-static int
-handle_snmp(netsnmp_mib_handler *handler,
-	    netsnmp_handler_registration *reginfo,
-	    netsnmp_agent_request_info *reqinfo,
-	    netsnmp_request_info *requests)
-{
-    switch (reqinfo->mode) {
-    case MODE_GET:
-	{
-	    oid idx = requests->requestvb->name[OID_LENGTH(snmp_oid)];
-	    switch(idx) {
-	    case 7:
-	    case 23:
-            case 30:
-		netsnmp_set_request_error(reqinfo, requests,
-					  SNMP_NOSUCHOBJECT);
-		break;
-	    default:
-		{
-		    u_int value =
-			snmp_get_statistic(idx - 1 + STAT_SNMPINPKTS);
-		    snmp_set_var_typed_value(requests->requestvb, ASN_COUNTER,
-					     (u_char *)&value, sizeof(value));
-		}
-		break;
-	    }
-	}
-	break;
-
-    default:
-        snmp_log(LOG_ERR,
-                 "unknown mode (%d) in handle_snmp\n", reqinfo->mode);
-        return SNMP_ERR_GENERR;
-    }
-
-    return SNMP_ERR_NOERROR;
-}
-
-#ifdef USING_MIBII_SYSTEM_MIB_MODULE
-extern oid      system_module_oid[];
-extern int      system_module_oid_len;
-extern int      system_module_count;
-#endif
-
-/** Initializes the snmp module */
 void
 init_snmp_mib(void)
 {
-    DEBUGMSGTL(("snmp", "Initializing\n"));
-
-    netsnmp_register_scalar_group(
-      netsnmp_create_handler_registration(
-	"mibII/snmp", handle_snmp, snmp_oid, OID_LENGTH(snmp_oid),
-	HANDLER_CAN_RONLY), 1, 32);
-    {
-        const oid snmpEnableAuthenTraps_oid[] = { 1, 3, 6, 1, 2, 1, 11, 30, 0 };
-	static netsnmp_watcher_info enableauthen_info;
-        netsnmp_handler_registration *reg =
-            netsnmp_create_update_handler_registration(
-                "mibII/snmpEnableAuthenTraps",
-                snmpEnableAuthenTraps_oid,
-                OID_LENGTH(snmpEnableAuthenTraps_oid),
-                HANDLER_CAN_RWRITE, &snmp_enableauthentrapsset);
-        netsnmp_inject_handler(reg, netsnmp_get_truthvalue());
-        netsnmp_register_watched_instance(
-            reg,
-            netsnmp_init_watcher_info(
-		&enableauthen_info,
-                &snmp_enableauthentraps, sizeof(snmp_enableauthentraps),
-                ASN_INTEGER, WATCHER_FIXED_SIZE));
-    }
+    /*
+     * register ourselves with the agent to handle our mib tree 
+     */
+    REGISTER_MIB("mibII/snmp", snmp_variables, variable1,
+                 snmp_variables_oid);
 
 #ifdef USING_MIBII_SYSTEM_MIB_MODULE
     if (++system_module_count == 3)
@@ -131,3 +123,131 @@ init_snmp_mib(void)
     snmp_register_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_STORE_DATA,
                            snmp_enableauthentraps_store, NULL);
 }
+
+/*
+ * header_snmp(...
+ * 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
+ * 
+ */
+
+        /*********************
+	 *
+	 *  System specific implementation functions
+	 *	(actually common!)
+	 *
+	 *********************/
+
+
+u_char         *
+var_snmp(struct variable *vp,
+         oid * name,
+         size_t * length,
+         int exact, size_t * var_len, WriteMethod ** write_method)
+{
+    static long     long_ret;
+
+    *write_method = 0;          /* assume it isnt writable for the time being */
+    *var_len = sizeof(long_ret);        /* assume an integer and change later if not */
+
+    if (header_generic(vp, name, length, exact, var_len, write_method)
+        == MATCH_FAILED)
+        return NULL;
+
+    /*
+     * this is where we do the value assignments for the mib results. 
+     */
+    if (vp->magic == SNMPENABLEAUTHENTRAPS) {
+        *write_method = write_snmp;
+        long_return = snmp_enableauthentraps;
+        return (u_char *) & long_return;
+    } else if ((vp->magic >= 1)
+               && (vp->magic <=
+                   (STAT_SNMP_STATS_END - STAT_SNMP_STATS_START + 1))) {
+        long_ret =
+            snmp_get_statistic(vp->magic + STAT_SNMP_STATS_START - 1);
+        return (unsigned char *) &long_ret;
+    }
+    return NULL;
+}
+
+/*
+ * only for snmpEnableAuthenTraps:
+ */
+
+int
+write_snmp(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            intval = 0;
+
+    switch (action) {
+    case RESERVE1:             /* Check values for acceptability */
+        if (var_val_type != ASN_INTEGER) {
+            DEBUGMSGTL(("mibII/snmp_mib", "%x not integer type",
+                        var_val_type));
+            return SNMP_ERR_WRONGTYPE;
+        }
+
+        intval = *((long *) var_val);
+        if (intval != 1 && intval != 2) {
+            DEBUGMSGTL(("mibII/snmp_mib", "not valid %x\n", intval));
+            return SNMP_ERR_WRONGVALUE;
+        }
+        if (snmp_enableauthentrapsset < 0) {
+            /*
+             * The object is set in a read-only configuration file.  
+             */
+            return SNMP_ERR_NOTWRITABLE;
+        }
+        break;
+
+    case RESERVE2:             /* Allocate memory and similar resources */
+
+        /*
+         * Using static variables, so nothing needs to be done 
+         */
+        break;
+
+    case ACTION:               /* Perform the SET action (if reversible) */
+
+        /*
+         * Save the old value, in case of UNDO 
+         */
+        intval = *((long *) var_val);
+        old_snmp_enableauthentraps = snmp_enableauthentraps;
+        snmp_enableauthentraps = intval;
+        break;
+
+    case UNDO:                 /* Reverse the SET action and free resources */
+
+        snmp_enableauthentraps = old_snmp_enableauthentraps;
+        break;
+
+    case COMMIT:
+        snmp_enableauthentrapsset = 1;
+        snmp_save_persistent(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_APPTYPE));
+        (void) snmp_call_callbacks(SNMP_CALLBACK_LIBRARY,
+                                   SNMP_CALLBACK_STORE_DATA, NULL);
+        snmp_clean_persistent(netsnmp_ds_get_string
+                              (NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_APPTYPE));
+        break;
+
+    case FREE:                 /* Free any resources allocated */
+        break;
+    }
+    return SNMP_ERR_NOERROR;
+}
+
+/*********************
+ *
+ *  Internal implementation functions
+ *
+ *********************/
diff --git a/agent/mibgroup/mibII/snmp_mib.h b/agent/mibgroup/mibII/snmp_mib.h
index 39e0a3c..31ce442 100644
--- a/agent/mibgroup/mibII/snmp_mib.h
+++ b/agent/mibgroup/mibII/snmp_mib.h
@@ -1,9 +1,83 @@
+/*
+ *  SNMP MIB group interface - snmp.h
+ *
+ */
 #ifndef _MIBGROUP_SNMP_H
 #define _MIBGROUP_SNMP_H
 
-config_require(mibII/updates)
-config_exclude(mibII/snmp_mib_5_5)
+struct variable;
+
+extern FindVarMethod var_snmp;
+extern WriteMethod write_snmp;
 
 void            init_snmp_mib(void);
 
+extern int      snmp_inpkts;    /*  1 - current */
+extern int      snmp_outpkts;   /*  2 - obsolete */
+extern int      snmp_inbadversions;     /*  3 - current */
+extern int      snmp_inbadcommunitynames;       /*  4 - current */
+extern int      snmp_inbadcommunityuses;        /*  5 - current */
+extern int      snmp_inasnparseerrors;  /*  6 - current */
+extern int      snmp_intoobigs; /*  8 - obsolete */
+extern int      snmp_innosuchnames;     /*  9 - obsolete */
+extern int      snmp_inbadvalues;       /* 10 - obsolete */
+extern int      snmp_inreadonlys;       /* 11 - obsolete */
+extern int      snmp_ingenerrs; /* 12 - obsolete */
+extern int      snmp_intotalreqvars;    /* 13 - obsolete */
+extern int      snmp_intotalsetvars;    /* 14 - obsolete */
+extern int      snmp_ingetrequests;     /* 15 - obsolete */
+extern int      snmp_ingetnexts;        /* 16 - obsolete */
+extern int      snmp_insetrequests;     /* 17 - obsolete */
+extern int      snmp_ingetresponses;    /* 18 - obsolete */
+extern int      snmp_intraps;   /* 19 - obsolete */
+extern int      snmp_outtoobigs;        /* 20 - obsolete */
+extern int      snmp_outnosuchnames;    /* 21 - obsolete */
+extern int      snmp_outbadvalues;      /* 22 - obsolete */
+extern int      snmp_outgenerrs;        /* 24 - obsolete */
+extern int      snmp_outgetrequests;    /* 25 - obsolete */
+extern int      snmp_outgetnexts;       /* 26 - obsolete */
+extern int      snmp_outsetrequests;    /* 27 - obsolete */
+extern int      snmp_outgetresponses;   /* 28 - obsolete */
+extern int      snmp_outtraps;  /* 29 - obsolete */
+extern int      snmp_enableauthentraps; /* 30 - current */
+extern int      snmp_silentdrops;       /* 31 - current */
+extern int      snmp_proxydrops;        /* 32 - current */
+
+extern char    *snmp_trapsink;
+extern char    *snmp_trapcommunity;
+
+
+#define SNMPINPKTS		1
+#define SNMPOUTPKTS		2
+#define SNMPINBADVERSIONS	3
+#define SNMPINBADCOMMUNITYNAMES	4
+#define SNMPINBADCOMMUNITYUSES	5
+#define SNMPINASNPARSEERRORS	6
+#define SNMPINBADTYPES		7
+#define SNMPINTOOBIGS		8
+#define SNMPINNOSUCHNAMES	9
+#define SNMPINBADVALUES		10
+#define SNMPINREADONLYS		11
+#define SNMPINGENERRS		12
+#define SNMPINTOTALREQVARS	13
+#define SNMPINTOTALSETVARS	14
+#define SNMPINGETREQUESTS	15
+#define SNMPINGETNEXTS		16
+#define SNMPINSETREQUESTS	17
+#define SNMPINGETRESPONSES	18
+#define SNMPINTRAPS		19
+#define SNMPOUTTOOBIGS		20
+#define SNMPOUTNOSUCHNAMES	21
+#define SNMPOUTBADVALUES	22
+#define SNMPOUTREADONLYS	23
+#define SNMPOUTGENERRS		24
+#define SNMPOUTGETREQUESTS	25
+#define SNMPOUTGETNEXTS		26
+#define SNMPOUTSETREQUESTS	27
+#define SNMPOUTGETRESPONSES	28
+#define SNMPOUTTRAPS		29
+#define SNMPENABLEAUTHENTRAPS	30
+#define SNMPSILENTDROPS		31
+#define SNMPPROXYDROPS		32
+
 #endif                          /* _MIBGROUP_SNMP_H */
diff --git a/agent/mibgroup/mibII/snmp_mib_5_5.c b/agent/mibgroup/mibII/snmp_mib_5_5.c
deleted file mode 100644
index 6484e3c..0000000
--- a/agent/mibgroup/mibII/snmp_mib_5_5.c
+++ /dev/null
@@ -1,128 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include <net-snmp/agent/sysORTable.h>
-
-#include <net-snmp/agent/snmp_get_statistic.h>
-
-#include "snmp_mib_5_5.h"
-#include "updates.h"
-
-netsnmp_feature_require(helper_statistics)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_truthvalue)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-#define SNMP_OID 1, 3, 6, 1, 2, 1, 11
-
-static oid snmp_oid[] = { SNMP_OID };
-
-extern long snmp_enableauthentraps;
-extern int snmp_enableauthentrapsset;
-
-static int
-snmp_enableauthentraps_store(int a, int b, void *c, void *d)
-{
-    char            line[SNMP_MAXBUF_SMALL];
-
-    if (snmp_enableauthentrapsset > 0) {
-        snprintf(line, SNMP_MAXBUF_SMALL, "pauthtrapenable %ld",
-                 snmp_enableauthentraps);
-        snmpd_store_config(line);
-    }
-    return 0;
-}
-
-static int
-handle_truthvalue(netsnmp_mib_handler *handler,
-                  netsnmp_handler_registration *reginfo,
-                  netsnmp_agent_request_info *reqinfo,
-                  netsnmp_request_info *requests)
-{
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-    if (reqinfo->mode == MODE_SET_RESERVE1) {
-        int res = netsnmp_check_vb_truthvalue(requests->requestvb);
-        if (res != SNMP_ERR_NOERROR)
-            netsnmp_request_set_error(requests, res);
-    }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-    return SNMP_ERR_NOERROR;
-}
-
-static netsnmp_mib_handler*
-netsnmp_get_truthvalue(void)
-{
-    return netsnmp_create_handler("truthvalue", handle_truthvalue);
-}
-
-static int
-handle_snmp(netsnmp_mib_handler *handler,
-	    netsnmp_handler_registration *reginfo,
-	    netsnmp_agent_request_info *reqinfo,
-	    netsnmp_request_info *requests)
-{
-    switch(requests->requestvb->name[OID_LENGTH(snmp_oid)]) {
-    case 7:
-    case 23:
-    case 30:
-        netsnmp_set_request_error(reqinfo, requests, SNMP_NOSUCHOBJECT);
-        break;
-    default:
-	break;
-    }
-    return SNMP_ERR_NOERROR;
-}
-
-#ifdef USING_MIBII_SYSTEM_MIB_MODULE
-extern oid      system_module_oid[];
-extern int      system_module_oid_len;
-extern int      system_module_count;
-#endif
-
-/** Initializes the snmp module */
-void
-init_snmp_mib_5_5(void)
-{
-    DEBUGMSGTL(("snmp", "Initializing\n"));
-
-    NETSNMP_REGISTER_STATISTIC_HANDLER(
-        netsnmp_create_handler_registration(
-            "mibII/snmp", handle_snmp, snmp_oid, OID_LENGTH(snmp_oid),
-            HANDLER_CAN_RONLY),
-        1, SNMP);
-    {
-        oid snmpEnableAuthenTraps_oid[] = { SNMP_OID, 30, 0 };
-	static netsnmp_watcher_info enableauthen_info;
-        netsnmp_handler_registration *reg =
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-            netsnmp_create_update_handler_registration(
-                "mibII/snmpEnableAuthenTraps",
-                snmpEnableAuthenTraps_oid,
-                OID_LENGTH(snmpEnableAuthenTraps_oid),
-                HANDLER_CAN_RWRITE, &snmp_enableauthentrapsset);
-#else  /* !NETSNMP_NO_WRITE_SUPPORT */
-            netsnmp_create_update_handler_registration(
-                "mibII/snmpEnableAuthenTraps",
-                snmpEnableAuthenTraps_oid,
-                OID_LENGTH(snmpEnableAuthenTraps_oid),
-                HANDLER_CAN_RONLY, &snmp_enableauthentrapsset);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
-        netsnmp_inject_handler(reg, netsnmp_get_truthvalue());
-        netsnmp_register_watched_instance(
-            reg,
-            netsnmp_init_watcher_info(
-		&enableauthen_info,
-                &snmp_enableauthentraps, sizeof(snmp_enableauthentraps),
-                ASN_INTEGER, WATCHER_FIXED_SIZE));
-    }
-
-#ifdef USING_MIBII_SYSTEM_MIB_MODULE
-    if (++system_module_count == 3)
-        REGISTER_SYSOR_TABLE(system_module_oid, system_module_oid_len,
-                             "The MIB module for SNMPv2 entities");
-#endif
-    snmp_register_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_STORE_DATA,
-                           snmp_enableauthentraps_store, NULL);
-}
diff --git a/agent/mibgroup/mibII/snmp_mib_5_5.h b/agent/mibgroup/mibII/snmp_mib_5_5.h
deleted file mode 100644
index 2e56103..0000000
--- a/agent/mibgroup/mibII/snmp_mib_5_5.h
+++ /dev/null
@@ -1,4 +0,0 @@
-config_require(mibII/updates)
-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 ed26919..f8ffa50 100644
--- a/agent/mibgroup/mibII/sysORTable.c
+++ b/agent/mibgroup/mibII/sysORTable.c
@@ -1,295 +1,344 @@
+/*
+ *  Template MIB group implementation - sysORTable.c
+ *
+ */
 #include <net-snmp/net-snmp-config.h>
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#include <sys/types.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_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include <net-snmp/agent/table_container.h>
-#include <net-snmp/agent/agent_sysORTable.h>
-#include <net-snmp/agent/sysORTable.h>
+#include <net-snmp/agent/agent_callbacks.h>
 
+#include "struct.h"
+#include "util_funcs.h"
 #include "sysORTable.h"
+#include "snmpd.h"
 
-#include <net-snmp/net-snmp-features.h>
+#ifdef USING_AGENTX_SUBAGENT_MODULE
+#include "agentx/subagent.h"
+#include "agentx/client.h"
+#endif
 
-netsnmp_feature_require(table_container)
 
+static int
+_register_sysOR_callback(int majorID, int minorID,
+                         void *serverarg, void *clientarg);
+static int
+_unregister_sysOR_callback(int majorID, int minorID,
+                            void *serverarg, void *clientarg);
+static int
+_unregister_sysOR_by_session_callback(int majorID, int minorID,
+                                      void *serverarg, void *clientarg);
+
+struct timeval  sysOR_lastchange;
+static struct sysORTable *table = NULL;
+static int      numEntries = 0;
 
-/** Typical data structure for a row entry */
-typedef struct sysORTable_entry_s {
-    netsnmp_index            oid_index;
-    oid                      sysORIndex;
-    const struct sysORTable* data;
-} sysORTable_entry;
+/*
+ * define the structure we're going to ask the agent to register our
+ * information at 
+ */
+struct variable1 sysORTable_variables[] = {
+    {SYSORTABLEID, ASN_OBJECT_ID, RONLY, var_sysORTable, 1, {2}},
+    {SYSORTABLEDESCR, ASN_OCTET_STR, RONLY, var_sysORTable, 1, {3}},
+    {SYSORTABLEUPTIME, ASN_TIMETICKS, RONLY, var_sysORTable, 1, {4}}
+};
 
 /*
- * column number definitions for table sysORTable
+ * Define the OID pointer to the top of the mib tree that we're
+ * registering underneath 
  */
-#define COLUMN_SYSORINDEX	1
-#define COLUMN_SYSORID		2
-#define COLUMN_SYSORDESCR	3
-#define COLUMN_SYSORUPTIME	4
-
-static netsnmp_container *table = NULL;
-static u_long             sysORLastChange;
-static oid                sysORNextIndex = 1;
-
-/** create a new row in the table */
-static void
-register_foreach(const struct sysORTable* data, void* dummy)
+oid             sysORTable_variables_oid[] = { SNMP_OID_MIB2, 1, 9, 1 };
+#ifdef USING_MIBII_SYSTEM_MIB_MODULE
+extern oid      system_module_oid[];
+extern int      system_module_oid_len;
+extern int      system_module_count;
+#endif
+
+void
+init_sysORTable(void)
 {
-    sysORTable_entry *entry;
-
-    sysORLastChange = data->OR_uptime;
-
-    entry = SNMP_MALLOC_TYPEDEF(sysORTable_entry);
-    if (!entry) {
-	snmp_log(LOG_ERR,
-		 "could not allocate storage, sysORTable is inconsistent\n");
-    } else {
-	const oid firstNext = sysORNextIndex;
-	netsnmp_iterator* it = CONTAINER_ITERATOR(table);
-
-	do {
-	    const sysORTable_entry* value;
-	    const oid cur = sysORNextIndex;
-
-	    if (sysORNextIndex == SNMP_MIN(MAX_SUBID, 2147483647UL))
-		sysORNextIndex = 1;
-	    else
-		++sysORNextIndex;
-
-	    for (value = (sysORTable_entry*)it->curr(it);
-		 value && value->sysORIndex < cur;
-		 value = (sysORTable_entry*)ITERATOR_NEXT(it)) {
-	    }
-
-	    if (value && value->sysORIndex == cur) {
-		if (sysORNextIndex < cur)
-		    it->reset(it);
-	    } else {
-		entry->sysORIndex = cur;
-		break;
-	    }
-	} while (firstNext != sysORNextIndex);
-
-	ITERATOR_RELEASE(it);
-
-	if(firstNext == sysORNextIndex) {
-            snmp_log(LOG_ERR, "Failed to locate a free index in sysORTable\n");
-            free(entry);
-	} else {
-	    entry->data = data;
-	    entry->oid_index.len = 1;
-	    entry->oid_index.oids = &entry->sysORIndex;
-
-	    CONTAINER_INSERT(table, entry);
-	}
-    }
+    /*
+     * register ourselves with the agent to handle our mib tree 
+     */
+
+#ifdef USING_AGENTX_SUBAGENT_MODULE
+    if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE) == MASTER_AGENT)
+        (void) register_mib_priority("mibII/sysORTable",
+                                     (struct variable *)
+                                     sysORTable_variables,
+                                     sizeof(struct variable1),
+                                     sizeof(sysORTable_variables) /
+                                     sizeof(struct variable1),
+                                     sysORTable_variables_oid,
+                                     sizeof(sysORTable_variables_oid) /
+                                     sizeof(oid), 1);
+    else
+#endif
+        REGISTER_MIB("mibII/sysORTable", sysORTable_variables, variable1,
+                     sysORTable_variables_oid);
+
+    snmp_register_callback(SNMP_CALLBACK_APPLICATION,
+                           SNMPD_CALLBACK_REQ_REG_SYSOR,
+                           _register_sysOR_callback, NULL);
+    snmp_register_callback(SNMP_CALLBACK_APPLICATION,
+                           SNMPD_CALLBACK_REQ_UNREG_SYSOR,
+                           _unregister_sysOR_callback, NULL);
+    snmp_register_callback(SNMP_CALLBACK_APPLICATION,
+                           SNMPD_CALLBACK_REQ_UNREG_SYSOR_SESS,
+                           _unregister_sysOR_by_session_callback, NULL);
+
+#ifdef USING_MIBII_SYSTEM_MIB_MODULE
+    if (++system_module_count == 3)
+        REGISTER_SYSOR_TABLE(system_module_oid, system_module_oid_len,
+                             "The MIB module for SNMPv2 entities");
+#endif
+
+    gettimeofday(&sysOR_lastchange, NULL);
 }
 
-static int
-register_cb(int major, int minor, void* serv, void* client)
+        /*********************
+	 *
+	 *  System specific implementation functions
+	 *
+	 *********************/
+
+u_char         *
+var_sysORTable(struct variable *vp,
+               oid * name,
+               size_t * length,
+               int exact, size_t * var_len, WriteMethod ** write_method)
 {
-    DEBUGMSGTL(("mibII/sysORTable/register_cb",
-                "register_cb(%d, %d, %p, %p)\n", major, minor, serv, client));
-    register_foreach((struct sysORTable*)serv, NULL);
-    return SNMP_ERR_NOERROR;
+    unsigned long   i = 0;
+    static unsigned long ret;
+    struct sysORTable *ptr = table;
+
+    if (header_simple_table
+        (vp, name, length, exact, var_len, write_method, numEntries))
+        return NULL;
+
+    for (i = 1; ptr != NULL && i < name[*length - 1]; ptr = ptr->next, i++) {
+        DEBUGMSGTL(("mibII/sysORTable", "sysORTable -- %lu != %lu\n",
+                    i, name[*length - 1]));
+    }
+    if (ptr == NULL) {
+        DEBUGMSGTL(("mibII/sysORTable", "sysORTable -- no match: %lu\n",
+                    i));
+        return NULL;
+    }
+    DEBUGMSGTL(("mibII/sysORTable", "sysORTable -- match: %lu\n", i));
+
+    switch (vp->magic) {
+    case SYSORTABLEID:
+        *var_len = ptr->OR_oidlen * sizeof(ptr->OR_oid[0]);
+        return (u_char *) ptr->OR_oid;
+
+    case SYSORTABLEDESCR:
+        *var_len = strlen(ptr->OR_descr);
+        return (u_char *) ptr->OR_descr;
+
+    case SYSORTABLEUPTIME:
+        ret = netsnmp_timeval_uptime(&ptr->OR_uptime);
+        return (u_char *) & ret;
+
+    default:
+        DEBUGMSGTL(("snmpd", "unknown sub-id %d in var_sysORTable\n",
+                    vp->magic));
+    }
+    return NULL;
 }
 
-/** remove a row from the table */
-static int
-unregister_cb(int major, int minor, void* serv, void* client)
+
+int
+register_sysORTable_sess(oid * oidin,
+                         size_t oidlen,
+                         const char *descr, netsnmp_session * ss)
 {
-    sysORTable_entry *value;
-    netsnmp_iterator* it = CONTAINER_ITERATOR(table);
-
-    DEBUGMSGTL(("mibII/sysORTable/unregister_cb",
-                "unregister_cb(%d, %d, %p, %p)\n", major, minor, serv, client));
-    sysORLastChange = ((struct sysORTable*)(serv))->OR_uptime;
-
-    while ((value = (sysORTable_entry*)ITERATOR_NEXT(it)) && value->data != serv);
-    ITERATOR_RELEASE(it);
-    if(value) {
-	CONTAINER_REMOVE(table, value);
-	free(value);
+    struct sysORTable *ptr, **nptr;
+    struct register_sysOR_parameters reg_sysOR_parms;
+
+    DEBUGMSGTL(("mibII/sysORTable", "sysORTable registering: "));
+    DEBUGMSGOID(("mibII/sysORTable", oidin, oidlen));
+    DEBUGMSG(("mibII/sysORTable", "\n"));
+
+    ptr = (struct sysORTable *) malloc(sizeof(struct sysORTable));
+    if (ptr == NULL) {
+        return SYS_ORTABLE_REGISTRATION_FAILED;
+    }
+    ptr->OR_descr = (char *) strdup(descr);
+    if (ptr->OR_descr == NULL) {
+        free(ptr);
+        return SYS_ORTABLE_REGISTRATION_FAILED;
     }
-    return SNMP_ERR_NOERROR;
+    ptr->OR_oidlen = oidlen;
+    ptr->OR_oid = (oid *) malloc(sizeof(oid) * oidlen);
+    if (ptr->OR_oid == NULL) {
+        free(ptr->OR_descr);
+        free(ptr);
+        return SYS_ORTABLE_REGISTRATION_FAILED;
+    }
+    memcpy(ptr->OR_oid, oidin, sizeof(oid) * oidlen);
+    gettimeofday(&(ptr->OR_uptime), NULL);
+    gettimeofday(&(sysOR_lastchange), NULL);
+    ptr->OR_sess = ss;
+    ptr->next = NULL;
+    numEntries++;
+
+    /* add this entry to the end of the chained list */
+    nptr = &table;
+    while (*nptr != NULL)
+        nptr = &((*nptr)->next);
+    *nptr = ptr;
+
+    reg_sysOR_parms.name = oidin;
+    reg_sysOR_parms.namelen = oidlen;
+    reg_sysOR_parms.descr = descr;
+    snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
+                        SNMPD_CALLBACK_REG_SYSOR, &reg_sysOR_parms);
+
+    return SYS_ORTABLE_REGISTERED_OK;
 }
 
-/** handles requests for the sysORTable table */
-static int
-sysORTable_handler(netsnmp_mib_handler *handler,
-                   netsnmp_handler_registration *reginfo,
-                   netsnmp_agent_request_info *reqinfo,
-                   netsnmp_request_info *requests)
+int
+register_sysORTable(oid * oidin, size_t oidlen, const char *descr)
 {
-    netsnmp_request_info *request;
+    return register_sysORTable_sess(oidin, oidlen, descr, NULL);
+}
 
-    DEBUGMSGTL(("mibII/sysORTable/sysORTable_handler",
-                "sysORTable_handler called\n"));
 
-    if (reqinfo->mode != MODE_GET) {
-	snmp_log(LOG_ERR,
-		 "Got unexpected operation for sysORTable\n");
-	return SNMP_ERR_GENERR;
-    }
 
-    /*
-     * Read-support (also covers GetNext requests)
-     */
-    request = requests;
-    while(request && request->processed)
-	request = request->next;
-    while(request) {
-	sysORTable_entry *table_entry;
-	netsnmp_table_request_info *table_info;
-
-	if (NULL == (table_info = netsnmp_extract_table_info(request))) {
-	    snmp_log(LOG_ERR,
-		     "could not extract table info for sysORTable\n");
-	    snmp_set_var_typed_value(
-		    request->requestvb, SNMP_ERR_GENERR, NULL, 0);
-	} else if(NULL == (table_entry = (sysORTable_entry *)
-			   netsnmp_container_table_extract_context(request))) {
-	    switch (table_info->colnum) {
-	    case COLUMN_SYSORID:
-	    case COLUMN_SYSORDESCR:
-	    case COLUMN_SYSORUPTIME:
-		netsnmp_set_request_error(reqinfo, request,
-					  SNMP_NOSUCHINSTANCE);
-		break;
-	    default:
-		netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT);
-		break;
-	    }
-	} else {
-	    switch (table_info->colnum) {
-	    case COLUMN_SYSORID:
-		snmp_set_var_typed_value(
-			request->requestvb, ASN_OBJECT_ID,
-			(const u_char*)table_entry->data->OR_oid,
-                        table_entry->data->OR_oidlen * sizeof(oid));
-		break;
-	    case COLUMN_SYSORDESCR:
-		snmp_set_var_typed_value(
-			request->requestvb, ASN_OCTET_STR,
-			(const u_char*)table_entry->data->OR_descr,
-			strlen(table_entry->data->OR_descr));
-		break;
-	    case COLUMN_SYSORUPTIME:
-		snmp_set_var_typed_integer(
-			request->requestvb, ASN_TIMETICKS,
-                        table_entry->data->OR_uptime);
-		break;
-	    default:
-		netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT);
-		break;
-	    }
-	}
-	do {
-	    request = request->next;
-	} while(request && request->processed);
+int
+unregister_sysORTable_sess(oid * oidin,
+                           size_t oidlen, netsnmp_session * ss)
+{
+    struct sysORTable *ptr, *prev = NULL, *next;
+    int             found = SYS_ORTABLE_NO_SUCH_REGISTRATION;
+    struct register_sysOR_parameters reg_sysOR_parms;
+
+    DEBUGMSGTL(("mibII/sysORTable", "sysORTable unregistering: "));
+    DEBUGMSGOID(("mibII/sysORTable", oidin, oidlen));
+    DEBUGMSG(("mibII/sysORTable", "\n"));
+
+    for (ptr = table; ptr; ptr = next)
+    {
+        next = ptr->next;
+        if (ptr->OR_sess == ss &&
+          (snmp_oid_compare(oidin, oidlen, ptr->OR_oid, ptr->OR_oidlen) == 0))
+        {
+            if (prev == NULL)
+                table = ptr->next;
+            else
+                prev->next = ptr->next;
+
+            free(ptr->OR_oid);
+            free(ptr->OR_descr);
+            free(ptr);
+            numEntries--;
+            gettimeofday(&(sysOR_lastchange), NULL);
+            found = SYS_ORTABLE_UNREGISTERED_OK;
+            break;
+        } else
+            prev = ptr;
     }
-    return SNMP_ERR_NOERROR;
+
+    reg_sysOR_parms.name = oidin;
+    reg_sysOR_parms.namelen = oidlen;
+    snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
+                        SNMPD_CALLBACK_UNREG_SYSOR, &reg_sysOR_parms);
+
+    return found;
 }
 
-#ifdef USING_MIBII_SYSTEM_MIB_MODULE
-extern oid      system_module_oid[];
-extern int      system_module_oid_len;
-extern int      system_module_count;
-#endif
 
-static netsnmp_handler_registration *sysORLastChange_reg;
-static netsnmp_watcher_info sysORLastChange_winfo;
-static netsnmp_handler_registration *sysORTable_reg;
-static netsnmp_table_registration_info *sysORTable_table_info;
+int
+unregister_sysORTable(oid * oidin, size_t oidlen)
+{
+    return unregister_sysORTable_sess(oidin, oidlen, NULL);
+}
 
-/** Initializes the sysORTable module */
 void
-init_sysORTable(void)
+unregister_sysORTable_by_session(netsnmp_session * ss)
 {
-    const oid sysORLastChange_oid[] = { 1, 3, 6, 1, 2, 1, 1, 8 };
-    const oid sysORTable_oid[] = { 1, 3, 6, 1, 2, 1, 1, 9 };
-
-    sysORTable_table_info =
-        SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
+    struct sysORTable *ptr, *prev = NULL, *next;
+
+    for (ptr = table; ptr; ptr = next)
+    {
+        next = ptr->next;
+        if (((ss->flags & SNMP_FLAGS_SUBSESSION) && ptr->OR_sess == ss) ||
+            (!(ss->flags & SNMP_FLAGS_SUBSESSION) && ptr->OR_sess &&
+             ptr->OR_sess->subsession == ss)) {
+            if (prev == NULL)
+                table = next;
+            else
+                prev->next = next;
+            free(ptr->OR_oid);
+            free(ptr->OR_descr);
+            free(ptr);
+            numEntries--;
+            gettimeofday(&(sysOR_lastchange), NULL);
+        } else
+            prev = ptr;
+    }
+}
 
-    table = netsnmp_container_find("sysORTable:table_container");
+static int
+_register_sysOR_callback(int majorID, int minorID, void *serverarg,
+                         void *clientarg)
+{
+    struct sysORTable *parms = (struct sysORTable *) serverarg;
 
-    if (sysORTable_table_info == NULL || table == NULL) {
-        SNMP_FREE(sysORTable_table_info);
-        CONTAINER_FREE(table);
-        return;
-    }
-    table->container_name = strdup("sysORTable");
-
-    netsnmp_table_helper_add_indexes(sysORTable_table_info,
-                                     ASN_INTEGER, /** index: sysORIndex */
-                                     0);
-    sysORTable_table_info->min_column = COLUMN_SYSORID;
-    sysORTable_table_info->max_column = COLUMN_SYSORUPTIME;
-
-    sysORLastChange_reg =
-        netsnmp_create_handler_registration(
-            "mibII/sysORLastChange", NULL,
-            sysORLastChange_oid, OID_LENGTH(sysORLastChange_oid),
-            HANDLER_CAN_RONLY);
-    netsnmp_init_watcher_info(
-	    &sysORLastChange_winfo,
-            &sysORLastChange, sizeof(u_long),
-            ASN_TIMETICKS, WATCHER_FIXED_SIZE);
-    netsnmp_register_watched_scalar(sysORLastChange_reg,
-				    &sysORLastChange_winfo);
-
-    sysORTable_reg =
-        netsnmp_create_handler_registration(
-            "mibII/sysORTable", sysORTable_handler,
-            sysORTable_oid, OID_LENGTH(sysORTable_oid), HANDLER_CAN_RONLY);
-    netsnmp_container_table_register(sysORTable_reg, sysORTable_table_info,
-                                     table, TABLE_CONTAINER_KEY_NETSNMP_INDEX);
-
-    sysORLastChange = netsnmp_get_agent_uptime();
+    return register_sysORTable_sess(parms->OR_oid, parms->OR_oidlen,
+                                    parms->OR_descr, parms->OR_sess);
+}
 
-    /*
-     * Initialise the contents of the table here
-     */
-    netsnmp_sysORTable_foreach(&register_foreach, NULL);
+static int
+_unregister_sysOR_by_session_callback(int majorID, int minorID,
+                                      void *serverarg, void *clientarg)
+{
+    netsnmp_session *session = (netsnmp_session *) serverarg;
 
-    /*
-     * Register callbacks
-     */
-    snmp_register_callback(SNMP_CALLBACK_APPLICATION,
-                           SNMPD_CALLBACK_REG_SYSOR, register_cb, NULL);
-    snmp_register_callback(SNMP_CALLBACK_APPLICATION,
-                           SNMPD_CALLBACK_UNREG_SYSOR, unregister_cb, NULL);
+    unregister_sysORTable_by_session(session);
 
-#ifdef USING_MIBII_SYSTEM_MIB_MODULE
-    if (++system_module_count == 3)
-        REGISTER_SYSOR_TABLE(system_module_oid, system_module_oid_len,
-                             "The MIB module for SNMPv2 entities");
-#endif
+    return 0;
 }
 
-void
-shutdown_sysORTable(void)
+static int
+_unregister_sysOR_callback(int majorID, int minorID, void *serverarg,
+                       void *clientarg)
 {
-#ifdef USING_MIBII_SYSTEM_MIB_MODULE
-    if (system_module_count-- == 3)
-        UNREGISTER_SYSOR_TABLE(system_module_oid, system_module_oid_len);
-#endif
+    struct sysORTable *parms = (struct sysORTable *) serverarg;
 
-    snmp_unregister_callback(SNMP_CALLBACK_APPLICATION,
-                             SNMPD_CALLBACK_UNREG_SYSOR, unregister_cb, NULL,
-                             1);
-    snmp_unregister_callback(SNMP_CALLBACK_APPLICATION,
-                             SNMPD_CALLBACK_REG_SYSOR, register_cb, NULL, 1);
-
-    if (table)
-        CONTAINER_CLEAR(table, netsnmp_container_simple_free, NULL);
-    netsnmp_container_table_unregister(sysORTable_reg);
-    sysORTable_reg = NULL;
-    table = NULL;
-    netsnmp_table_registration_info_free(sysORTable_table_info);
-    sysORTable_table_info = NULL;
-    netsnmp_unregister_handler(sysORLastChange_reg);
-    sysORLastChange_reg = NULL;
+    return unregister_sysORTable_sess(parms->OR_oid,
+                                      parms->OR_oidlen,
+                                      parms->OR_sess);
 }
+
diff --git a/agent/mibgroup/mibII/sysORTable.h b/agent/mibgroup/mibII/sysORTable.h
index e988fda..59fb7e0 100644
--- a/agent/mibgroup/mibII/sysORTable.h
+++ b/agent/mibgroup/mibII/sysORTable.h
@@ -1,15 +1,57 @@
-#ifndef MIBGROUP_SYSORTABLE_H
-#define MIBGROUP_SYSORTABLE_H
+/*
+ *  Template MIB group interface - sysORTable.h
+ *
+ */
+#ifndef _MIBGROUP_SYSORTABLE_H
+#define _MIBGROUP_SYSORTABLE_H
 
-#ifdef __cplusplus
-extern "C" {
-#endif
+config_require(util_funcs)
+config_require(mibII/system_mib)
 
-extern void     init_sysORTable(void);
-extern void     shutdown_sysORTable(void);
+     struct sysORTable {
+         char           *OR_descr;
+         oid            *OR_oid;
+         size_t          OR_oidlen;
+         struct timeval  OR_uptime;
+         netsnmp_session *OR_sess;
+         struct sysORTable *next;
+     };
 
-#ifdef __cplusplus
-}
-#endif
+     struct register_sysOR_parameters {
+         oid            *name;
+         int             namelen;
+         const char     *descr;
+     };
 
-#endif /* MIBGROUP_SYSORTABLE_H */
+     extern void     init_sysORTable(void);
+     extern FindVarMethod var_sysORTable;
+     extern FindVarMethod var_sysORLastChange;
+     extern int      register_sysORTable(oid *, size_t, const char *);
+     extern int      unregister_sysORTable(oid *, size_t);
+     extern int      register_sysORTable_sess(oid *, size_t, const char *,
+                                              netsnmp_session *);
+     extern int      unregister_sysORTable_sess(oid *, size_t,
+                                                netsnmp_session *);
+     extern void     unregister_sysORTable_by_session(netsnmp_session *);
+
+#define	SYSORTABLEINDEX		        1
+#define	SYSORTABLEID		        2
+#define	SYSORTABLEDESCR		        3
+#define	SYSORTABLEUPTIME	        4
+
+#define SYS_ORTABLE_REGISTERED_OK              0
+#define SYS_ORTABLE_REGISTRATION_FAILED       -1
+#define SYS_ORTABLE_UNREGISTERED_OK            0
+#define SYS_ORTABLE_NO_SUCH_REGISTRATION      -1
+
+#ifdef  USING_MIBII_SYSORTABLE_MODULE
+#define REGISTER_SYSOR_ENTRY(theoid, descr)                      \
+  (void)register_sysORTable(theoid, sizeof(theoid)/sizeof(oid), descr);
+#define REGISTER_SYSOR_TABLE(theoid, len, descr)                      \
+  (void)register_sysORTable(theoid, len, descr);
+
+#else
+#define REGISTER_SYSOR_ENTRY(x,y)
+#define REGISTER_SYSOR_TABLE(x,y,z)
+#endif                          /* USING_MIBII_SYSORTABLE_MODULE */
+#endif                          /* _MIBGROUP_SYSORTABLE_H */
diff --git a/agent/mibgroup/mibII/system_mib.c b/agent/mibgroup/mibII/system_mib.c
index 65b0b7c..f902cb8 100644
--- a/agent/mibgroup/mibII/system_mib.c
+++ b/agent/mibgroup/mibII/system_mib.c
@@ -14,7 +14,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #if HAVE_STDLIB_H
 #include <stdlib.h>
@@ -28,7 +27,15 @@
 #include <strings.h>
 #endif
 #include <sys/types.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+
+#if !defined(mingw32) && defined(HAVE_SYS_TIME_H)
+#include <sys/time.h>
+#endif
 
+#include <ctype.h>
 #if HAVE_UTSNAME_H
 #include <utsname.h>
 #else
@@ -36,16 +43,18 @@
 #include <sys/utsname.h>
 #endif
 #endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
-#include <net-snmp/agent/sysORTable.h>
 
 #include "util_funcs.h"
 #include "system_mib.h"
-#include "updates.h"
+#include "struct.h"
+#include "sysORTable.h"
 
-netsnmp_feature_require(watcher_read_only_int_scalar)
 
         /*********************
 	 *
@@ -55,24 +64,33 @@ netsnmp_feature_require(watcher_read_only_int_scalar)
 	 *********************/
 
 #define SYS_STRING_LEN	256
-static char     version_descr[SYS_STRING_LEN] = NETSNMP_VERS_DESC;
-static char     sysContact[SYS_STRING_LEN] = NETSNMP_SYS_CONTACT;
-static char     sysName[SYS_STRING_LEN] = NETSNMP_SYS_NAME;
-static char     sysLocation[SYS_STRING_LEN] = NETSNMP_SYS_LOC;
-static oid      sysObjectID[MAX_OID_LEN];
-static size_t sysObjectIDByteLength;
+char            version_descr[SYS_STRING_LEN] = NETSNMP_VERS_DESC;
+char            sysContact[SYS_STRING_LEN] = NETSNMP_SYS_CONTACT;
+char            sysName[SYS_STRING_LEN] = NETSNMP_SYS_NAME;
+char            sysLocation[SYS_STRING_LEN] = NETSNMP_SYS_LOC;
+oid             sysObjectID[MAX_OID_LEN];
+size_t          sysObjectIDLength;
 
 extern oid      version_sysoid[];
 extern int      version_sysoid_len;
 
-static int      sysServices = 72;
-static int      sysServicesConfiged = 0;
+char            oldversion_descr[SYS_STRING_LEN];
+char            oldsysContact[SYS_STRING_LEN];
+char            oldsysName[SYS_STRING_LEN];
+char            oldsysLocation[SYS_STRING_LEN];
+
+int             sysServices = 72;
+int             sysServicesConfiged = 0;
 
 extern oid      version_id[];
 extern int      version_id_len;
 
 static int      sysContactSet = 0, sysLocationSet = 0, sysNameSet = 0;
 
+WriteMethod     writeSystem;
+int             header_system(struct variable *, oid *, size_t *, int,
+                              size_t *, WriteMethod **);
+
 #if (defined (WIN32) && defined (HAVE_WIN32_PLATFORM_SDK)) || defined (mingw32)
 static void     windowsOSVersionString(char [], size_t);
 #endif
@@ -83,100 +101,187 @@ static void     windowsOSVersionString(char [], size_t);
 	 *
 	 *********************/
 
-static void
-system_parse_config_string2(const char *token, char *cptr,
-                            char* value, size_t size)
+void
+system_parse_config_sysdescr(const char *token, char *cptr)
 {
-    if (strlen(cptr) < size) {
-        strcpy(value, cptr);
+    char            tmpbuf[1024];
+
+    if (strlen(cptr) >= sizeof(version_descr)) {
+        snprintf(tmpbuf,
+                 sizeof(tmpbuf),
+                 "sysdescr token too long (must be < %lu):\n\t%s",
+                 (unsigned long)sizeof(version_descr),
+                 cptr);
+        config_perror(tmpbuf);
+    } else if (strcmp(cptr, "\"\"") == 0) {
+        version_descr[0] = '\0';
     } else {
-        netsnmp_config_error("%s token too long (must be < %lu):\n\t%s",
-                             token, (unsigned long)size, cptr);
+        strcpy(version_descr, cptr);
     }
 }
 
-static void
-system_parse_config_string(const char *token, char *cptr,
-                           const char *name, char* value, size_t size,
-                           int* guard)
+void
+system_parse_config_sysloc(const char *token, char *cptr)
 {
-    if (*token == 'p') {
-        if (*guard < 0) {
+    char            tmpbuf[1024];
+
+    if (strlen(cptr) >= sizeof(sysLocation)) {
+        snprintf(tmpbuf, 1024,
+                 "syslocation token too long (must be < %lu):\n\t%s",
+                 (unsigned long)sizeof(sysLocation), cptr);
+        config_perror(tmpbuf);
+    }
+
+    if (strcmp(token, "psyslocation") == 0) {
+        if (sysLocationSet < 0) {
             /*
-             * This is bogus (and shouldn't happen anyway) -- the value is
-             * already configured read-only.
+             * This is bogus (and shouldn't happen anyway) -- the sysLocation
+             * is already configured read-only.  
              */
             snmp_log(LOG_WARNING,
-                     "ignoring attempted override of read-only %s.0\n", name);
+                     "ignoring attempted override of read-only sysLocation.0\n");
             return;
         } else {
-            *guard = 1;
+            sysLocationSet++;
         }
     } else {
-        if (*guard > 0) {
+        if (sysLocationSet > 0) {
             /*
              * This is bogus (and shouldn't happen anyway) -- we already read a
-             * persistent value which we should ignore in favour of this one.
+             * persistent value of sysLocation, which we should ignore in
+             * favour of this one.  
              */
             snmp_log(LOG_WARNING,
-                     "ignoring attempted override of read-only %s.0\n", name);
+                     "ignoring attempted override of read-only sysLocation.0\n");
             /*
-             * Fall through and copy in this value.
+             * Fall through and copy in this value.  
              */
         }
-        *guard = -1;
+        sysLocationSet = -1;
     }
 
-    system_parse_config_string2(token, cptr, value, size);
+    if (strcmp(cptr, "\"\"") == 0) {
+        sysLocation[0] = '\0';
+    } else if (strlen(cptr) < sizeof(sysLocation)) {
+        strcpy(sysLocation, cptr);
+    }
 }
 
-static void
-system_parse_config_sysdescr(const char *token, char *cptr)
+void
+system_parse_config_syscon(const char *token, char *cptr)
 {
-    system_parse_config_string2(token, cptr, version_descr,
-                                sizeof(version_descr));
-}
+    char            tmpbuf[1024];
 
-static void
-system_parse_config_sysloc(const char *token, char *cptr)
-{
-    system_parse_config_string(token, cptr, "sysLocation", sysLocation,
-                               sizeof(sysLocation), &sysLocationSet);
-}
+    if (strlen(cptr) >= sizeof(sysContact)) {
+        snprintf(tmpbuf, 1024,
+                 "syscontact token too long (must be < %lu):\n\t%s",
+                 (unsigned long)sizeof(sysContact), cptr);
+        config_perror(tmpbuf);
+    }
 
-static void
-system_parse_config_syscon(const char *token, char *cptr)
-{
-    system_parse_config_string(token, cptr, "sysContact", sysContact,
-                               sizeof(sysContact), &sysContactSet);
+    if (strcmp(token, "psyscontact") == 0) {
+        if (sysContactSet < 0) {
+            /*
+             * This is bogus (and shouldn't happen anyway) -- the sysContact
+             * is already configured read-only.  
+             */
+            snmp_log(LOG_WARNING,
+                     "ignoring attempted override of read-only sysContact.0\n");
+            return;
+        } else {
+            sysContactSet++;
+        }
+    } else {
+        if (sysContactSet > 0) {
+            /*
+             * This is bogus (and shouldn't happen anyway) -- we already read a
+             * persistent value of sysContact, which we should ignore in favour
+             * of this one.  
+             */
+            snmp_log(LOG_WARNING,
+                     "ignoring attempted override of read-only sysContact.0\n");
+            /*
+             * Fall through and copy in this value.  
+             */
+        }
+        sysContactSet = -1;
+    }
+
+    if (strcmp(cptr, "\"\"") == 0) {
+        sysContact[0] = '\0';
+    } else if (strlen(cptr) < sizeof(sysContact)) {
+        strcpy(sysContact, cptr);
+    }
 }
 
-static void
+void
 system_parse_config_sysname(const char *token, char *cptr)
 {
-    system_parse_config_string(token, cptr, "sysName", sysName,
-                               sizeof(sysName), &sysNameSet);
+    char            tmpbuf[1024];
+
+    if (strlen(cptr) >= sizeof(sysName)) {
+        snprintf(tmpbuf, 1024,
+                 "sysname token too long (must be < %lu):\n\t%s",
+                 (unsigned long)sizeof(sysName), cptr);
+        config_perror(tmpbuf);
+    }
+
+    if (strcmp(token, "psysname") == 0) {
+        if (sysNameSet < 0) {
+            /*
+             * This is bogus (and shouldn't happen anyway) -- the sysName
+             * is already configured read-only.  
+             */
+            snmp_log(LOG_WARNING,
+                     "ignoring attempted override of read-only sysName.0\n");
+            return;
+        } else {
+            sysNameSet++;
+        }
+    } else {
+        if (sysNameSet > 0) {
+            /*
+             * This is bogus (and shouldn't happen anyway) -- we already read a
+             * persistent value of sysName, which we should ignore in favour
+             * of this one.  
+             */
+            snmp_log(LOG_WARNING,
+                     "ignoring attempted override of read-only sysName.0\n");
+            /*
+             * Fall through and copy in this value.  
+             */
+        }
+        sysNameSet = -1;
+    }
+
+    if (strcmp(cptr, "\"\"") == 0) {
+        sysName[0] = '\0';
+    } else if (strlen(cptr) < sizeof(sysName)) {
+        strcpy(sysName, cptr);
+    }
 }
 
-static void
+void
 system_parse_config_sysServices(const char *token, char *cptr)
 {
     sysServices = atoi(cptr);
     sysServicesConfiged = 1;
 }
 
-static void
-system_parse_config_sysObjectID(const char *token, char *cptr)
+void system_parse_config_sysObjectID(const char *token, char *cptr)
 {
-    size_t sysObjectIDLength = MAX_OID_LEN;
-    if (!read_objid(cptr, sysObjectID, &sysObjectIDLength)) {
-	netsnmp_config_error("sysobjectid token not a parsable OID:\n\t%s",
-			     cptr);
-        sysObjectIDByteLength = version_sysoid_len  * sizeof(oid);
-        memcpy(sysObjectID, version_sysoid, sysObjectIDByteLength);
-    } else
+    char tmpbuf[1024];
 
-		sysObjectIDByteLength = sysObjectIDLength * sizeof(oid);
+    sysObjectIDLength = MAX_OID_LEN;
+    if (!read_objid(cptr, sysObjectID, &sysObjectIDLength)) {
+        snprintf(tmpbuf,
+                 sizeof(tmpbuf),
+                 "sysobjectid token not a parsable OID:\n\t%s",
+                 cptr);
+        config_perror(tmpbuf);
+        memcpy(sysObjectID, version_sysoid, version_sysoid_len * sizeof(oid));
+        sysObjectIDLength = version_sysoid_len;
+    }
 }
 
 
@@ -186,8 +291,28 @@ system_parse_config_sysObjectID(const char *token, char *cptr)
 	 *
 	 *********************/
 
+/*
+ * define the structure we're going to ask the agent to register our
+ * information at 
+ */
+struct variable1 system_variables[] = {
+    {VERSION_DESCR, ASN_OCTET_STR, RONLY, var_system, 1, {1}},
+    {VERSIONID, ASN_OBJECT_ID, RONLY, var_system, 1, {2}},
+    {UPTIME, ASN_TIMETICKS, RONLY, var_system, 1, {3}},
+    {SYSCONTACT, ASN_OCTET_STR, RWRITE, var_system, 1, {4}},
+    {SYSTEMNAME, ASN_OCTET_STR, RWRITE, var_system, 1, {5}},
+    {SYSLOCATION, ASN_OCTET_STR, RWRITE, var_system, 1, {6}},
+    {SYSSERVICES, ASN_INTEGER, RONLY, var_system, 1, {7}},
+    {SYSORLASTCHANGE, ASN_TIMETICKS, RONLY, var_system, 1, {8}}
+};
+/*
+ * Define the OID pointer to the top of the mib tree that we're
+ * registering underneath 
+ */
+oid             system_variables_oid[] = { SNMP_OID_MIB2, 1 };
 oid             system_module_oid[] = { SNMP_OID_SNMPMODULES, 1 };
-int             system_module_oid_len = OID_LENGTH(system_module_oid);
+int             system_module_oid_len =
+    sizeof(system_module_oid) / sizeof(oid);
 int             system_module_count = 0;
 
 static int
@@ -211,30 +336,6 @@ system_store(int a, int b, void *c, void *d)
     return 0;
 }
 
-static int
-handle_sysServices(netsnmp_mib_handler *handler,
-                   netsnmp_handler_registration *reginfo,
-                   netsnmp_agent_request_info *reqinfo,
-                   netsnmp_request_info *requests)
-{
-#if NETSNMP_NO_DUMMY_VALUES
-    if (reqinfo->mode == MODE_GET && !sysServicesConfiged)
-        netsnmp_request_set_error(requests, SNMP_NOSUCHINSTANCE);
-#endif
-    return SNMP_ERR_NOERROR;
-}
-
-static int
-handle_sysUpTime(netsnmp_mib_handler *handler,
-                   netsnmp_handler_registration *reginfo,
-                   netsnmp_agent_request_info *reqinfo,
-                   netsnmp_request_info *requests)
-{
-    snmp_set_var_typed_integer(requests->requestvb, ASN_TIMETICKS,
-                               netsnmp_get_agent_uptime());
-    return SNMP_ERR_NOERROR;
-}
-
 void
 init_system_mib(void)
 {
@@ -262,9 +363,9 @@ init_system_mib(void)
     extmp.type = EXECPROC;
     extmp.next = NULL;
     exec_command(&extmp);
-    strlcpy(version_descr, extmp.output, sizeof(version_descr));
-    if (strlen(version_descr) >= 1)
-        version_descr[strlen(version_descr) - 1] = 0; /* chomp new line */
+    strncpy(version_descr, extmp.output, sizeof(version_descr));
+    version_descr[sizeof(version_descr) - 1] = 0;
+    version_descr[strlen(version_descr) - 1] = 0;       /* chomp new line */
 #else
 #if (defined (WIN32) && defined (HAVE_WIN32_PLATFORM_SDK)) || defined (mingw32)
     windowsOSVersionString(version_descr, sizeof(version_descr));
@@ -278,7 +379,7 @@ init_system_mib(void)
     gethostname(sysName, sizeof(sysName));
 #else
 #ifdef HAVE_UNAME
-    strlcpy(sysName, utsName.nodename, sizeof(sysName));
+    strncpy(sysName, utsName.nodename, sizeof(sysName));
 #else
 #if defined (HAVE_EXECV) && !defined (mingw32)
     sprintf(extmp.command, "%s -n", UNAMEPROG);
@@ -288,9 +389,8 @@ init_system_mib(void)
     extmp.type = EXECPROC;
     extmp.next = NULL;
     exec_command(&extmp);
-    strlcpy(sysName, extmp.output, sizeof(sysName));
-    if (strlen(sysName) >= 1)
-        sysName[strlen(sysName) - 1] = 0; /* chomp new line */
+    strncpy(sysName, extmp.output, sizeof(sysName));
+    sysName[strlen(sysName) - 1] = 0;   /* chomp new line */
 #else
     strcpy(sysName, "unknown");
 #endif                          /* HAVE_EXECV */
@@ -298,130 +398,30 @@ init_system_mib(void)
 #endif                          /* HAVE_GETHOSTNAME */
 
 #if (defined (WIN32) && defined (HAVE_WIN32_PLATFORM_SDK)) || defined (mingw32)
-    {
-      HKEY hKey;
-      /* Default sysContact is the registered windows user */
-      if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                       "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 0,
-                       KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) {
-          char registeredOwner[256] = "";
-          DWORD registeredOwnerSz = 256;
-          if (RegQueryValueEx(hKey, "RegisteredOwner", NULL, NULL,
-                              (LPBYTE)registeredOwner,
-                              &registeredOwnerSz) == ERROR_SUCCESS) {
-              strcpy(sysContact, registeredOwner);
-          }
-          RegCloseKey(hKey);
-      }
+  {
+    HKEY hKey;
+    /* Default sysContact is the registered windows user */
+    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) {
+       char registeredOwner[256] = "";
+       DWORD registeredOwnerSz = 256;
+       if (RegQueryValueEx(hKey, "RegisteredOwner", NULL, NULL, (LPBYTE)registeredOwner, &registeredOwnerSz) == ERROR_SUCCESS) {
+          strcpy(sysContact, registeredOwner);
+       }
+       RegCloseKey(hKey);
     }
+  }
 #endif
 
     /* default sysObjectID */
     memcpy(sysObjectID, version_sysoid, version_sysoid_len * sizeof(oid));
-    sysObjectIDByteLength = version_sysoid_len * sizeof(oid);
-
-    {
-        const oid sysDescr_oid[] = { 1, 3, 6, 1, 2, 1, 1, 1 };
-        static netsnmp_watcher_info sysDescr_winfo;
-        netsnmp_register_watched_scalar(
-            netsnmp_create_handler_registration(
-                "mibII/sysDescr", NULL, sysDescr_oid, OID_LENGTH(sysDescr_oid),
-                HANDLER_CAN_RONLY),
-            netsnmp_init_watcher_info(&sysDescr_winfo, version_descr, 0,
-				      ASN_OCTET_STR, WATCHER_SIZE_STRLEN));
-    }
-    {
-        const oid sysObjectID_oid[] = { 1, 3, 6, 1, 2, 1, 1, 2 };
-        static netsnmp_watcher_info sysObjectID_winfo;
-        netsnmp_register_watched_scalar(
-            netsnmp_create_handler_registration(
-                "mibII/sysObjectID", NULL,
-                sysObjectID_oid, OID_LENGTH(sysObjectID_oid),
-                HANDLER_CAN_RONLY),
-            netsnmp_init_watcher_info6(
-		&sysObjectID_winfo, sysObjectID, 0, ASN_OBJECT_ID,
-                WATCHER_MAX_SIZE | WATCHER_SIZE_IS_PTR,
-                MAX_OID_LEN, &sysObjectIDByteLength));
-    }
-    {
-        const oid sysUpTime_oid[] = { 1, 3, 6, 1, 2, 1, 1, 3 };
-        netsnmp_register_scalar(
-            netsnmp_create_handler_registration(
-                "mibII/sysUpTime", handle_sysUpTime,
-                sysUpTime_oid, OID_LENGTH(sysUpTime_oid),
-                HANDLER_CAN_RONLY));
-    }
-    {
-        const oid sysContact_oid[] = { 1, 3, 6, 1, 2, 1, 1, 4 };
-        static netsnmp_watcher_info sysContact_winfo;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-        netsnmp_register_watched_scalar(
-            netsnmp_create_update_handler_registration(
-                "mibII/sysContact", sysContact_oid, OID_LENGTH(sysContact_oid), 
-                HANDLER_CAN_RWRITE, &sysContactSet),
-            netsnmp_init_watcher_info(
-                &sysContact_winfo, sysContact, SYS_STRING_LEN - 1,
-                ASN_OCTET_STR, WATCHER_MAX_SIZE | WATCHER_SIZE_STRLEN));
-#else  /* !NETSNMP_NO_WRITE_SUPPORT */
-        netsnmp_register_watched_scalar(
-            netsnmp_create_update_handler_registration(
-                "mibII/sysContact", sysContact_oid, OID_LENGTH(sysContact_oid),
-                HANDLER_CAN_RONLY, &sysContactSet),
-            netsnmp_init_watcher_info(
-                &sysContact_winfo, sysContact, SYS_STRING_LEN - 1,
-                ASN_OCTET_STR, WATCHER_MAX_SIZE | WATCHER_SIZE_STRLEN));
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-    }
-    {
-        const oid sysName_oid[] = { 1, 3, 6, 1, 2, 1, 1, 5 };
-        static netsnmp_watcher_info sysName_winfo;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-        netsnmp_register_watched_scalar(
-            netsnmp_create_update_handler_registration(
-                "mibII/sysName", sysName_oid, OID_LENGTH(sysName_oid),
-                HANDLER_CAN_RWRITE, &sysNameSet),
-            netsnmp_init_watcher_info(
-                &sysName_winfo, sysName, SYS_STRING_LEN - 1, ASN_OCTET_STR,
-                WATCHER_MAX_SIZE | WATCHER_SIZE_STRLEN));
-#else  /* !NETSNMP_NO_WRITE_SUPPORT */
-        netsnmp_register_watched_scalar(
-            netsnmp_create_update_handler_registration(
-                "mibII/sysName", sysName_oid, OID_LENGTH(sysName_oid),
-                HANDLER_CAN_RONLY, &sysNameSet),
-            netsnmp_init_watcher_info(
-                &sysName_winfo, sysName, SYS_STRING_LEN - 1, ASN_OCTET_STR,
-                WATCHER_MAX_SIZE | WATCHER_SIZE_STRLEN));
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-    }
-    {
-        const oid sysLocation_oid[] = { 1, 3, 6, 1, 2, 1, 1, 6 };
-        static netsnmp_watcher_info sysLocation_winfo;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-        netsnmp_register_watched_scalar(
-            netsnmp_create_update_handler_registration(
-                "mibII/sysLocation", sysLocation_oid,
-                OID_LENGTH(sysLocation_oid),
-                HANDLER_CAN_RWRITE, &sysLocationSet),
-            netsnmp_init_watcher_info(
-		&sysLocation_winfo, sysLocation, SYS_STRING_LEN - 1,
-		ASN_OCTET_STR, WATCHER_MAX_SIZE | WATCHER_SIZE_STRLEN));
-#else  /* !NETSNMP_NO_WRITE_SUPPORT */
-        netsnmp_register_watched_scalar(
-            netsnmp_create_update_handler_registration(
-                "mibII/sysLocation", sysLocation_oid,
-                OID_LENGTH(sysLocation_oid),
-                HANDLER_CAN_RONLY, &sysLocationSet),
-            netsnmp_init_watcher_info(
-		&sysLocation_winfo, sysLocation, SYS_STRING_LEN - 1,
-		ASN_OCTET_STR, WATCHER_MAX_SIZE | WATCHER_SIZE_STRLEN));
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-    }
-    {
-        const oid sysServices_oid[] = { 1, 3, 6, 1, 2, 1, 1, 7 };
-        netsnmp_register_read_only_int_scalar(
-            "mibII/sysServices", sysServices_oid, OID_LENGTH(sysServices_oid),
-            &sysServices, handle_sysServices);
-    }
+    sysObjectIDLength = version_sysoid_len;
+
+    /*
+     * register ourselves with the agent to handle our mib tree 
+     */
+    REGISTER_MIB("mibII/system", system_variables, variable1,
+                 system_variables_oid);
+
     if (++system_module_count == 3)
         REGISTER_SYSOR_ENTRY(system_module_oid,
                              "The MIB module for SNMPv2 entities");
@@ -455,8 +455,187 @@ init_system_mib(void)
                                   "OID");
     snmp_register_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_STORE_DATA,
                            system_store, NULL);
+
+}
+
+
+        /*********************
+	 *
+	 *  System specific implementation functions
+	 *
+	 *********************/
+
+#ifdef USING_MIBII_SYSORTABLE_MODULE
+extern struct timeval sysOR_lastchange;
+#endif
+
+u_char         *
+var_system(struct variable *vp,
+           oid * name,
+           size_t * length,
+           int exact, size_t * var_len, WriteMethod ** write_method)
+{
+    static u_long   ulret;
+
+    if (header_generic(vp, name, length, exact, var_len, write_method) ==
+        MATCH_FAILED)
+        return NULL;
+
+    switch (vp->magic) {
+    case VERSION_DESCR:
+        *var_len = strlen(version_descr);
+        return (u_char *) version_descr;
+    case VERSIONID:
+        *var_len = sysObjectIDLength * sizeof(sysObjectID[0]);
+        return (u_char *)sysObjectID;
+    case UPTIME:
+        ulret = netsnmp_get_agent_uptime();
+        return ((u_char *) & ulret);
+    case SYSCONTACT:
+        *var_len = strlen(sysContact);
+        *write_method = writeSystem;
+        return (u_char *) sysContact;
+    case SYSTEMNAME:
+        *var_len = strlen(sysName);
+        *write_method = writeSystem;
+        return (u_char *) sysName;
+    case SYSLOCATION:
+        *var_len = strlen(sysLocation);
+        *write_method = writeSystem;
+        return (u_char *) sysLocation;
+    case SYSSERVICES:
+#if NETSNMP_NO_DUMMY_VALUES
+        if (!sysServicesConfiged)
+            return NULL;
+#endif
+        long_return = sysServices;
+        return (u_char *) & long_return;
+
+#ifdef USING_MIBII_SYSORTABLE_MODULE
+    case SYSORLASTCHANGE:
+        ulret = netsnmp_timeval_uptime(&sysOR_lastchange);
+        return ((u_char *) & ulret);
+#endif
+
+    default:
+        DEBUGMSGTL(("snmpd", "unknown sub-id %d in var_system\n",
+                    vp->magic));
+    }
+    return NULL;
 }
 
+
+
+int
+writeSystem(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)
+{
+    u_char         *cp;
+    char           *buf = NULL, *oldbuf = NULL;
+    int             count, *setvar = NULL;
+
+    switch ((char) name[7]) {
+    case VERSION_DESCR:
+    case VERSIONID:
+    case UPTIME:
+        snmp_log(LOG_ERR, "Attempt to write to R/O OID\n");
+        return SNMP_ERR_NOTWRITABLE;
+    case SYSCONTACT:
+        buf = sysContact;
+        oldbuf = oldsysContact;
+        setvar = &sysContactSet;
+        break;
+    case SYSTEMNAME:
+        buf = sysName;
+        oldbuf = oldsysName;
+        setvar = &sysNameSet;
+        break;
+    case SYSLOCATION:
+        buf = sysLocation;
+        oldbuf = oldsysLocation;
+        setvar = &sysLocationSet;
+        break;
+    case SYSSERVICES:
+    case SYSORLASTCHANGE:
+        snmp_log(LOG_ERR, "Attempt to write to R/O OID\n");
+        return SNMP_ERR_NOTWRITABLE;
+    default:
+        return SNMP_ERR_GENERR; /* ??? */
+    }
+
+    switch (action) {
+    case RESERVE1:             /* Check values for acceptability */
+        if (var_val_type != ASN_OCTET_STR) {
+            snmp_log(LOG_ERR, "not string\n");
+            return SNMP_ERR_WRONGTYPE;
+        }
+        if (var_val_len > sizeof(sysLocation) - 1) {
+            snmp_log(LOG_ERR, "bad length\n");
+            return SNMP_ERR_WRONGLENGTH;
+        }
+
+        for (cp = var_val, count = 0; count < (int) var_val_len;
+             count++, cp++) {
+            if (!isprint(*cp)) {
+                snmp_log(LOG_ERR, "not print %x\n", *cp);
+                return SNMP_ERR_WRONGVALUE;
+            }
+        }
+        if (setvar != NULL && *setvar < 0) {
+            /*
+             * The object is set in a read-only configuration file.  
+             */
+            return SNMP_ERR_NOTWRITABLE;
+        }
+        break;
+
+    case RESERVE2:             /* Allocate memory and similar resources */
+
+        /*
+         * Using static strings, so nothing needs to be done 
+         */
+        break;
+
+    case ACTION:               /* Perform the SET action (if reversible) */
+
+        /*
+         * Save the old value, in case of UNDO 
+         */
+        strcpy(oldbuf, buf);
+        memcpy(buf, var_val, var_val_len);
+        buf[var_val_len] = 0;
+        break;
+
+    case UNDO:                 /* Reverse the SET action and free resources */
+
+        strcpy(buf, oldbuf);
+        oldbuf[0] = 0;
+        break;
+
+    case COMMIT:
+        if (setvar != NULL) {
+            *setvar = 1;
+        }
+        snmp_save_persistent(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_APPTYPE));
+        (void) snmp_call_callbacks(SNMP_CALLBACK_LIBRARY,
+                                   SNMP_CALLBACK_STORE_DATA, NULL);
+        snmp_clean_persistent(netsnmp_ds_get_string
+                              (NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_APPTYPE));
+
+    case FREE:                 /* Free any resources allocated */
+
+        /*
+         * No resources have been allocated, but "empty" the 'oldbuf' 
+         */
+        oldbuf[0] = 0;
+        break;
+    }
+    return SNMP_ERR_NOERROR;
+}                               /* end of writeSystem */
+
         /*********************
 	 *
 	 *  Internal implementation functions - None
diff --git a/agent/mibgroup/mibII/system_mib.h b/agent/mibgroup/mibII/system_mib.h
index dd16f08..ec3312d 100644
--- a/agent/mibgroup/mibII/system_mib.h
+++ b/agent/mibgroup/mibII/system_mib.h
@@ -1,16 +1,31 @@
+/*
+ *  System MIB group interface - system.h
+ *
+ */
 #ifndef _MIBGROUP_SYSTEM_MIB_H
 #define _MIBGROUP_SYSTEM_MIB_H
 
-#ifdef __cplusplus
-extern "C" {
-#endif
+config_require(util_funcs)
 
-config_require(util_funcs mibII/updates)
+     extern char     version_descr[];
 
-void init_system_mib(void);
+     void            init_system_mib(void);
+     extern FindVarMethod var_system;
 
-#ifdef __cplusplus
-}
-#endif
+/*
+ * config file parsing routines 
+ */
+     void            system_parse_config_sysloc(const char *, char *);
+     void            system_parse_config_syscon(const char *, char *);
+     void            system_parse_config_sysname(const char *, char *);
+
+#define	VERSION_DESCR		1
+#define	VERSIONID		2
+#define	UPTIME			3
+#define SYSCONTACT		4
+#define SYSTEMNAME		5
+#define SYSLOCATION		6
+#define SYSSERVICES		7
+#define SYSORLASTCHANGE		8
 
 #endif                          /* _MIBGROUP_SYSTEM_MIB_H */
diff --git a/agent/mibgroup/mibII/tcp.c b/agent/mibgroup/mibII/tcp.c
index 3c79fad..b264141 100644
--- a/agent/mibgroup/mibII/tcp.c
+++ b/agent/mibgroup/mibII/tcp.c
@@ -5,7 +5,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include "mibII_common.h"
 
 #if HAVE_STDLIB_H
@@ -50,11 +49,11 @@
 #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/sysORTable.h>
 
-#include "util_funcs/MIB_STATS_CACHE_TIMEOUT.h"
+#include "util_funcs.h"
 #include "tcp.h"
 #include "tcpTable.h"
+#include "sysORTable.h"
 
 #ifndef MIB_STATS_CACHE_TIMEOUT
 #define MIB_STATS_CACHE_TIMEOUT	5
@@ -63,10 +62,7 @@
 #define TCP_STATS_CACHE_TIMEOUT	MIB_STATS_CACHE_TIMEOUT
 #endif
 
-#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
+#if defined(HAVE_LIBPERFSTAT_H) && (defined(aix4) || defined(aix5) || defined(aix6)) && !defined(FIRST_PROTOCOL)
 #include <libperfstat.h>
 #ifdef FIRST_PROTOCOL
 perfstat_protocol_t ps_proto;
@@ -92,9 +88,7 @@ perfstat_id_t ps_name;
 int  hz = 1000;
 #endif
 
-#ifndef NETSNMP_FEATURE_REMOVE_TCP_COUNT_CONNECTIONS
 extern int TCP_Count_Connections( void );
-#endif /* NETSNMP_FEATURE_REMOVE_TCP_COUNT_CONNECTIONS */
         /*********************
 	 *
 	 *  Initialisation & common implementation functions
@@ -113,7 +107,6 @@ void
 init_tcp(void)
 {
     netsnmp_handler_registration *reginfo;
-    int rc;
 
     /*
      * register ourselves with the agent as a group of scalars...
@@ -121,9 +114,7 @@ init_tcp(void)
     DEBUGMSGTL(("mibII/tcpScalar", "Initialising TCP scalar group\n"));
     reginfo = netsnmp_create_handler_registration("tcp", tcp_handler,
 		    tcp_oid, OID_LENGTH(tcp_oid), HANDLER_CAN_RONLY);
-    rc = netsnmp_register_scalar_group(reginfo, TCPRTOALGORITHM, TCPOUTRSTS);
-    if (rc != SNMPERR_SUCCESS)
-        return;
+    netsnmp_register_scalar_group(reginfo, TCPRTOALGORITHM, TCPOUTRSTS);
 
     /*
      * .... with a local cache
@@ -176,13 +167,7 @@ init_tcp(void)
 #define USES_SNMP_DESIGNED_TCPSTAT
 #endif
 
-#ifdef NETBSD_STATS_VIA_SYSCTL
-#define TCP_STAT_STRUCTURE      struct tcp_mib
-#define USES_SNMP_DESIGNED_TCPSTAT
-#undef TCP_NSTATS
-#endif
-
-#ifdef HAVE_IPHLPAPI_H
+#if defined (WIN32) || defined (cygwin)
 #include <iphlpapi.h>
 #define TCP_STAT_STRUCTURE     MIB_TCPSTATS
 #endif
@@ -192,11 +177,6 @@ init_tcp(void)
 #define USES_TRADITIONAL_TCPSTAT
 #endif
 
-#ifdef dragonfly
-#define TCP_STAT_STRUCTURE	struct tcp_stats
-#define USES_TRADITIONAL_TCPSTAT
-#endif
-
 #if !defined(TCP_STAT_STRUCTURE)
 #define TCP_STAT_STRUCTURE	struct tcpstat
 #define USES_TRADITIONAL_TCPSTAT
@@ -233,6 +213,11 @@ tcp_handler(netsnmp_mib_handler          *handler,
      */
 #if defined(_USE_FIRST_PROTOCOL)
     tcp_load(NULL, NULL);
+#elif !defined(hpux11)
+    if (!netsnmp_cache_is_valid(reqinfo, reginfo->handlerName)) {
+        netsnmp_assert(!"cache == valid"); /* always false */
+        tcp_load( NULL, NULL );	/* XXX - check for failure */
+    }
 #endif
 
 
@@ -373,14 +358,11 @@ tcp_handler(netsnmp_mib_handler          *handler,
         ret_value = tcpstat.tcps_drops;
         break;
     case TCPCURRESTAB:
-#ifdef NETSNMP_FEATURE_CHECKING
-        netsnmp_feature_want(tcp_count_connections)
-#endif
-#ifndef NETSNMP_FEATURE_REMOVE_TCP_COUNT_CONNECTIONS
+#ifdef USING_MIBII_TCPTABLE_MODULE
         ret_value = TCP_Count_Connections();
 #else
         ret_value = 0;
-#endif /* NETSNMP_FEATURE_REMOVE_TCP_COUNT_CONNECTIONS */
+#endif
         type = ASN_GAUGE;
         break;
     case TCPINSEGS:
@@ -398,7 +380,7 @@ tcp_handler(netsnmp_mib_handler          *handler,
         break;
     case TCPINERRS:
         ret_value = tcpstat.tcps_rcvbadsum + tcpstat.tcps_rcvbadoff
-#ifdef HAVE_STRUCT_TCPSTAT_TCPS_RCVMEMDROP
+#ifdef STRUCT_TCPSTAT_HAS_TCPS_RCVMEMDROP
             + tcpstat.tcps_rcvmemdrop
 #endif
             + tcpstat.tcps_rcvshort;
@@ -555,7 +537,6 @@ tcp_handler(netsnmp_mib_handler          *handler,
 
     case MODE_GETNEXT:
     case MODE_GETBULK:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
     case MODE_SET_RESERVE2:
     case MODE_SET_ACTION:
@@ -565,7 +546,6 @@ tcp_handler(netsnmp_mib_handler          *handler,
         snmp_log(LOG_WARNING, "mibII/tcp: Unsupported mode (%d)\n",
                                reqinfo->mode);
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     default:
         snmp_log(LOG_WARNING, "mibII/tcp: Unrecognised mode (%d)\n",
                                reqinfo->mode);
@@ -709,21 +689,6 @@ tcp_load(netsnmp_cache *cache, void *vmagic)
     }
     return ret_value;
 }
-#elif defined(NETBSD_STATS_VIA_SYSCTL)
-int
-tcp_load(netsnmp_cache *cache, void *vmagic)
-{
-    long ret_value = -1;
-
-    ret_value = netbsd_read_tcp_stat(&tcpstat);
-
-    if ( ret_value < 0 ) {
-       DEBUGMSGTL(("mibII/tcpScalar", "Failed to load TCP scalar Group (netbsd)\n"));
-    } else {
-        DEBUGMSGTL(("mibII/tcpScalar", "Loaded TCP scalar Group (netbsd)\n"));
-    }
-    return ret_value;
-}
 #elif defined (WIN32) || defined (cygwin)
 int
 tcp_load(netsnmp_cache *cache, void *vmagic)
diff --git a/agent/mibgroup/mibII/tcp.h b/agent/mibgroup/mibII/tcp.h
index 049ddd1..479661d 100644
--- a/agent/mibgroup/mibII/tcp.h
+++ b/agent/mibgroup/mibII/tcp.h
@@ -6,12 +6,9 @@
 #define _MIBGROUP_TCP_H
 
 
-config_require(mibII/tcpTable)
-
-config_arch_require(solaris2,        kernel_sunos5)
-config_arch_require(linux,     mibII/kernel_linux)
-config_arch_require(netbsd,    mibII/kernel_netbsd)
-config_arch_require(netbsdelf, mibII/kernel_netbsd)
+config_require(mibII/tcpTable util_funcs)
+config_arch_require(solaris2, kernel_sunos5)
+config_arch_require(linux, mibII/kernel_linux)
 
 extern void     init_tcp(void);
 extern Netsnmp_Node_Handler tcp_handler;
diff --git a/agent/mibgroup/mibII/tcpTable.c b/agent/mibgroup/mibII/tcpTable.c
index 088dd06..4e51287 100644
--- a/agent/mibgroup/mibII/tcpTable.c
+++ b/agent/mibgroup/mibII/tcpTable.c
@@ -15,7 +15,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include "mibII_common.h"
 
 #if HAVE_NETINET_TCP_H
@@ -30,11 +29,6 @@
 #if HAVE_NETINET_TCP_VAR_H
 #include <netinet/tcp_var.h>
 #endif
-#if HAVE_NETLINK_NETLINK_H
-#include <netlink/netlink.h>
-#include <netlink/msg.h>
-#include <linux/inet_diag.h>
-#endif
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
@@ -42,10 +36,7 @@
 
 #include "tcp.h"
 #include "tcpTable.h"
-
-netsnmp_feature_child_of(tcptable_all, libnetsnmpmibs)
-
-netsnmp_feature_child_of(tcp_count_connections, tcptable_all)
+#include "sysORTable.h"
 
 #ifdef hpux11
 #define	TCPTABLE_ENTRY_TYPE	mib_tcpConnEnt 
@@ -72,7 +63,7 @@ struct netsnmp_tcpConnEntry_s {
 #define	TCPTABLE_IS_LINKED_LIST
 #else
 
-#ifdef HAVE_IPHLPAPI_H
+#if defined (WIN32) || defined (cygwin)
 #include <iphlpapi.h>
 #define	TCPTABLE_ENTRY_TYPE	MIB_TCPROW
 #define	TCPTABLE_STATE		dwState 
@@ -100,7 +91,6 @@ struct netsnmp_inpcb_s {
     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 
@@ -139,15 +129,14 @@ int                      tcp_estab = 0;
 #define TCP_PORT_TO_HOST_ORDER(x) ntohs(x)
 #endif
 
+oid             tcpTable_oid[] = { SNMP_OID_MIB2, 6, 13 };
+
 void
 init_tcpTable(void)
 {
-    const oid tcpTable_oid[] = { SNMP_OID_MIB2, 6, 13 };
-
     netsnmp_table_registration_info *table_info;
     netsnmp_iterator_info           *iinfo;
     netsnmp_handler_registration    *reginfo;
-    int                              rc;
 
     DEBUGMSGTL(("mibII/tcpTable", "Initialising TCP Table\n"));
     /*
@@ -187,9 +176,7 @@ init_tcpTable(void)
             tcpTable_handler,
             tcpTable_oid, OID_LENGTH(tcpTable_oid),
             HANDLER_CAN_RONLY),
-    rc = netsnmp_register_table_iterator2(reginfo, iinfo);
-    if (rc != SNMPERR_SUCCESS)
-        return;
+    netsnmp_register_table_iterator(reginfo, iinfo);
 
     /*
      * .... with a local cache
@@ -278,14 +265,12 @@ tcpTable_handler(netsnmp_mib_handler          *handler,
 
     case MODE_GETNEXT:
     case MODE_GETBULK:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
     case MODE_SET_RESERVE2:
     case MODE_SET_ACTION:
     case MODE_SET_COMMIT:
     case MODE_SET_FREE:
     case MODE_SET_UNDO:
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         snmp_log(LOG_WARNING, "mibII/tcpTable: Unsupported mode (%d)\n",
                                reqinfo->mode);
         break;
@@ -298,13 +283,10 @@ tcpTable_handler(netsnmp_mib_handler          *handler,
     return SNMP_ERR_NOERROR;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_TCP_COUNT_CONNECTIONS
 int
 TCP_Count_Connections( void ) {
-    tcpTable_load(NULL, NULL);
     return tcp_estab;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TCP_COUNT_CONNECTIONS */
 
 	/*
 	 * Two forms of iteration hook routines:
@@ -418,7 +400,7 @@ tcpTable_first_entry(void **loop_context,
      * XXX - How can we tell if the cache is valid?
      *       No access to 'reqinfo'
      */
-    if (tcp_head == NULL)
+    if (tcp_head == 0)
         return NULL;
 
     /*
@@ -552,7 +534,7 @@ tcpTable_load(netsnmp_cache *cache, void *vmagic)
     }
 
     if (tcp_size > 0) {
-        DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table (hpux11)\n"));
+        DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table\n"));
         return 0;
     }
     DEBUGMSGTL(("mibII/tcpTable", "Failed to load TCP Table (hpux11)\n"));
@@ -561,114 +543,6 @@ tcpTable_load(netsnmp_cache *cache, void *vmagic)
 #else                           /* hpux11 */
 
 #ifdef linux
-
-/*  see <netinet/tcp.h> */
-#define TCP_ALL ((1 << (TCP_CLOSING + 1)) - 1)
-
-#if HAVE_NETLINK_NETLINK_H
-static int
-tcpTable_load_netlink(void)
-{
-	/*  TODO: perhaps use permanent nl handle? */
-	struct nl_handle *nl = nl_handle_alloc();
-
-	if (nl == NULL) {
-		DEBUGMSGTL(("mibII/tcpTable", "Failed to allocate netlink handle\n"));
-		snmp_log(LOG_ERR, "snmpd: Failed to allocate netlink handle\n");
-		return -1;
-	}
-
-	if (nl_connect(nl, NETLINK_INET_DIAG) < 0) {
-		DEBUGMSGTL(("mibII/tcpTable", "Failed to connect to netlink: %s\n", nl_geterror()));
-		snmp_log(LOG_ERR, "snmpd: Couldn't connect to netlink: %s\n", nl_geterror());
-		nl_handle_destroy(nl);
-		return -1;
-	}
-
-	struct inet_diag_req req = {
-		.idiag_family = AF_INET,
-		.idiag_states = TCP_ALL,
-	};
-
-	struct nl_msg *nm = nlmsg_alloc_simple(TCPDIAG_GETSOCK, NLM_F_ROOT|NLM_F_MATCH|NLM_F_REQUEST);
-	nlmsg_append(nm, &req, sizeof(struct inet_diag_req), 0);
-
-	if (nl_send_auto_complete(nl, nm) < 0) {
-		DEBUGMSGTL(("mibII/tcpTable", "nl_send_autocomplete(): %s\n", nl_geterror()));
-		snmp_log(LOG_ERR, "snmpd: nl_send_autocomplete(): %s\n", nl_geterror());
-		nl_handle_destroy(nl);
-		return -1;
-	}
-	nlmsg_free(nm);
-
-	struct sockaddr_nl peer;
-	unsigned char *buf = NULL;
-	int running = 1, len;
-
-	while (running) {
-		if ((len = nl_recv(nl, &peer, &buf, NULL)) <= 0) {
-			DEBUGMSGTL(("mibII/tcpTable", "nl_recv(): %s\n", nl_geterror()));
-			snmp_log(LOG_ERR, "snmpd: nl_recv(): %s\n", nl_geterror());
-			nl_handle_destroy(nl);
-			return -1;
-		}
-
-		struct nlmsghdr *h = (struct nlmsghdr*)buf;
-		while (nlmsg_ok(h, len)) {
-			if (h->nlmsg_type == NLMSG_DONE) {
-				running = 0;
-				break;
-			}
-
-			struct inet_diag_msg *r = nlmsg_data(h);
-
-			if (r->idiag_family != AF_INET) {
-				h = nlmsg_next(h, &len);
-				continue;
-			}
-
-			struct inpcb    pcb, *nnew;
-			static int      linux_states[12] =
-				{ 1, 5, 3, 4, 6, 7, 11, 1, 8, 9, 2, 10 };
-
-			memcpy(&pcb.inp_laddr.s_addr, r->id.idiag_src, r->idiag_family == AF_INET ? 4 : 6);
-			memcpy(&pcb.inp_faddr.s_addr, r->id.idiag_dst, r->idiag_family == AF_INET ? 4 : 6);
-
-			pcb.inp_lport = r->id.idiag_sport;
-			pcb.inp_fport = r->id.idiag_dport;
-
-			pcb.inp_state = (r->idiag_state & 0xf) < 12 ? linux_states[r->idiag_state & 0xf] : 2;
-			if (pcb.inp_state == 5 /* established */ ||
-				pcb.inp_state == 8 /*  closeWait  */ )
-				tcp_estab++;
-			pcb.uid = r->idiag_uid;
-
-			nnew = SNMP_MALLOC_TYPEDEF(struct inpcb);
-			if (nnew == NULL) {
-				running = 0;
-				/*  XXX report malloc error and return -1? */
-				break;
-			}
-			memcpy(nnew, &pcb, sizeof(struct inpcb));
-			nnew->inp_next = tcp_head;
-			tcp_head       = nnew;
-
-			h = nlmsg_next(h, &len);
-		}
-		free(buf);
-	}
-
-	nl_handle_destroy(nl);
-
-	if (tcp_head) {
-		DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table using netlink\n"));
-		return 0;
-	}
-	DEBUGMSGTL(("mibII/tcpTable", "Failed to load TCP Table (netlink)\n"));
-	return -1;
-}
-#endif
-
 int
 tcpTable_load(netsnmp_cache *cache, void *vmagic)
 {
@@ -677,15 +551,9 @@ tcpTable_load(netsnmp_cache *cache, void *vmagic)
 
     tcpTable_free(cache, NULL);
 
-#if HAVE_NETLINK_NETLINK_H
-	if (tcpTable_load_netlink() == 0) {
-		return 0;
-	}
-#endif
-
     if (!(in = fopen("/proc/net/tcp", "r"))) {
         DEBUGMSGTL(("mibII/tcpTable", "Failed to load TCP Table (linux1)\n"));
-        NETSNMP_LOGONCE((LOG_ERR, "snmpd: cannot open /proc/net/tcp ...\n"));
+        snmp_log(LOG_ERR, "snmpd: cannot open /proc/net/tcp ...\n");
         return -1;
     }
 
@@ -698,8 +566,7 @@ tcpTable_load(netsnmp_cache *cache, void *vmagic)
         struct inpcb    pcb, *nnew;
         static int      linux_states[12] =
             { 1, 5, 3, 4, 6, 7, 11, 1, 8, 9, 2, 10 };
-        unsigned int    lp, fp;
-        int             state, uid;
+        int             state, lp, fp, uid;
 
         if (6 != sscanf(line,
                         "%*d: %x:%x %x:%x %x %*X:%*X %*X:%*X %*X %d",
@@ -726,7 +593,7 @@ tcpTable_load(netsnmp_cache *cache, void *vmagic)
 
     fclose(in);
 
-    DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table (linux)\n"));
+    DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table\n"));
     return 0;
 }
 #else                           /* linux */
@@ -782,7 +649,7 @@ tcpTable_load(netsnmp_cache *cache, void *vmagic)
     }
 
     if (tcp_head) {
-        DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table (solaris)\n"));
+        DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table\n"));
         return 0;
     }
     DEBUGMSGTL(("mibII/tcpTable", "Failed to load TCP Table (solaris)\n"));
@@ -815,7 +682,7 @@ tcpTable_load(netsnmp_cache *cache, void *vmagic)
     if (status == NO_ERROR) {
         int           i;
 
-        DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table (WIN32)\n"));
+        DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table\n"));
         tcp_size = pTcpTable->dwNumEntries -1;  /* entries are counted starting with 0 */
         tcp_head = pTcpTable->table;
 
@@ -852,14 +719,9 @@ tcpTable_load(netsnmp_cache *cache, void *vmagic)
     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_inpcb  *nnew;
+    int      StateMap[] = { 1, 2, 3, 4, 5, 8, 6, 10, 9, 7, 11 };
 
     tcpTable_free(NULL, NULL);
 
@@ -879,19 +741,10 @@ tcpTable_load(netsnmp_cache *cache, void *vmagic)
      *  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 && ((char *)xig + xig->xi_len < tcpcb_buf + len))
-#else
-    while (xig && (xig->xig_len > sizeof(struct xinpgen)))
-#endif
-    {
+    while (xig && (xig->xig_len > sizeof(struct xinpgen))) {
         nnew = SNMP_MALLOC_TYPEDEF(netsnmp_inpcb);
         if (!nnew)
             break;
@@ -902,22 +755,14 @@ tcpTable_load(netsnmp_cache *cache, void *vmagic)
         memcpy(&(nnew->pcb), &(((NS_ELEM *) xig)->xt_inp),
                            sizeof(struct inpcb));
 
-	if (nnew->pcb.inp_vflag & INP_IPV6)
-	    free(nnew);
-	else {
-	    nnew->inp_next = tcp_head;
-	    tcp_head   = nnew;
-	}
-#if defined(dragonfly)
-        xig = (struct xinpcb  *) ((char *) xig + xig->xi_len);
-#else
+	nnew->inp_next = tcp_head;
+	tcp_head   = nnew;
         xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
-#endif
     }
 
     free(tcpcb_buf);
     if (tcp_head) {
-        DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table (sysctl)\n"));
+        DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table\n"));
         return 0;
     }
     DEBUGMSGTL(("mibII/tcpTable", "Failed to load TCP Table (sysctl)\n"));
@@ -975,7 +820,7 @@ tcpTable_load(netsnmp_cache *cache, void *vmagic)
     }
 
     if (tcp_head) {
-        DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table (pcb_table)\n"));
+        DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table\n"));
         return 0;
     }
     DEBUGMSGTL(("mibII/tcpTable", "Failed to load TCP Table (pcb_table)\n"));
@@ -1035,7 +880,7 @@ tcpTable_load(netsnmp_cache *cache, void *vmagic)
     }
 
     if (tcp_head) {
-        DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table (tcp_symbol)\n"));
+        DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table\n"));
         return 0;
     }
     DEBUGMSGTL(("mibII/tcpTable", "Failed to load TCP Table (tcp_symbol)\n"));
diff --git a/agent/mibgroup/mibII/tcpTable.h b/agent/mibgroup/mibII/tcpTable.h
index 55fe97b..a5a6f76 100644
--- a/agent/mibgroup/mibII/tcpTable.h
+++ b/agent/mibgroup/mibII/tcpTable.h
@@ -6,6 +6,7 @@
 #define _MIBGROUP_TCPTABLE_H
 
 config_arch_require(solaris2, kernel_sunos5)
+config_require(util_funcs)
 #if !defined(NETSNMP_ENABLE_MFD_REWRITES)
 config_require(mibII/ip)
 #endif
diff --git a/agent/mibgroup/mibII/udp.c b/agent/mibgroup/mibII/udp.c
index 1ddcbc5..7ca0d80 100644
--- a/agent/mibgroup/mibII/udp.c
+++ b/agent/mibgroup/mibII/udp.c
@@ -16,15 +16,35 @@
 #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/sysORTable.h>
 
-#include "util_funcs/MIB_STATS_CACHE_TIMEOUT.h"
+#include "util_funcs.h"
+
+#ifdef solaris2
+#include "kernel_sunos5.h"
+#else
+#include "kernel.h"
+#endif
+
+#ifdef linux
+#include "kernel_linux.h"
+#endif
+
+#ifdef cygwin
+#define WIN32
+#include <windows.h>
+#endif
+
+#ifdef hpux
+#include <sys/mib.h>
+#include <netinet/mib_kern.h>
+#endif                          /* hpux */
 
 #ifdef linux
 #include "tcp.h"
 #endif
 #include "udp.h"
 #include "udpTable.h"
+#include "sysORTable.h"
 
 #ifdef NETSNMP_CAN_USE_SYSCTL
 #include <sys/sysctl.h>
@@ -37,10 +57,7 @@
 #define UDP_STATS_CACHE_TIMEOUT	MIB_STATS_CACHE_TIMEOUT
 #endif
 
-#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
+#if defined(HAVE_LIBPERFSTAT_H) && (defined(aix4) || defined(aix5) || defined(aix6)) && !defined(FIRST_PROTOCOL)
 #include <libperfstat.h>
 #ifdef FIRST_PROTOCOL
 perfstat_protocol_t ps_proto;
@@ -74,7 +91,6 @@ void
 init_udp(void)
 {
     netsnmp_handler_registration *reginfo;
-    int rc;
 
     /*
      * register ourselves with the agent as a group of scalars...
@@ -82,9 +98,7 @@ init_udp(void)
     DEBUGMSGTL(("mibII/udpScalar", "Initialising UDP scalar group\n"));
     reginfo = netsnmp_create_handler_registration("udp", udp_handler,
 		    udp_oid, OID_LENGTH(udp_oid), HANDLER_CAN_RONLY);
-    rc = netsnmp_register_scalar_group(reginfo, UDPINDATAGRAMS, UDPOUTDATAGRAMS);
-    if (rc != SNMPERR_SUCCESS)
-        return;
+    netsnmp_register_scalar_group(reginfo, UDPINDATAGRAMS, UDPOUTDATAGRAMS);
 
     /*
      * .... with a local cache
@@ -135,13 +149,7 @@ init_udp(void)
 #define USES_SNMP_DESIGNED_UDPSTAT
 #endif
 
-#ifdef NETBSD_STATS_VIA_SYSCTL
-#define UDP_STAT_STRUCTURE      struct udp_mib
-#define USES_SNMP_DESIGNED_UDPSTAT
-#undef UDP_NSTATS
-#endif
-
-#ifdef HAVE_IPHLPAPI_H
+#ifdef WIN32
 #include <iphlpapi.h>
 #define UDP_STAT_STRUCTURE MIB_UDPSTATS
 #endif
@@ -187,6 +195,11 @@ udp_handler(netsnmp_mib_handler          *handler,
      */
 #if defined(_USE_PERFSTAT_PROTOCOL)
     udp_load(NULL, NULL);
+#elif !defined(hpux11)
+    if (!netsnmp_cache_is_valid(reqinfo, reginfo->handlerName)) {
+        netsnmp_assert(!"cache == valid"); /* always false */
+        udp_load( NULL, NULL );	/* XXX - check for failure */
+    }
 #endif
 
 
@@ -238,7 +251,7 @@ udp_handler(netsnmp_mib_handler          *handler,
 #define udpstat          udpstat.udpstat
 #endif
     case UDPINDATAGRAMS:
-#if HAVE_STRUCT_UDPSTAT_UDPS_IPACKETS
+#if STRUCT_UDPSTAT_HAS_UDPS_IPACKETS
         ret_value = udpstat.udps_ipackets;
         break;
 #else
@@ -247,7 +260,7 @@ udp_handler(netsnmp_mib_handler          *handler,
 #endif
 
     case UDPNOPORTS:
-#if HAVE_STRUCT_UDPSTAT_UDPS_NOPORT
+#if STRUCT_UDPSTAT_HAS_UDPS_NOPORT
         ret_value = udpstat.udps_noport;
         break;
 #else
@@ -256,7 +269,7 @@ udp_handler(netsnmp_mib_handler          *handler,
 #endif
 
     case UDPOUTDATAGRAMS:
-#if HAVE_STRUCT_UDPSTAT_UDPS_OPACKETS
+#if STRUCT_UDPSTAT_HAS_UDPS_OPACKETS
         ret_value = udpstat.udps_opackets;
         break;
 #else
@@ -266,10 +279,10 @@ udp_handler(netsnmp_mib_handler          *handler,
 
     case UDPINERRORS:
         ret_value = udpstat.udps_hdrops + udpstat.udps_badsum +
-#ifdef HAVE_STRUCT_UDPSTAT_UDPS_DISCARD
+#ifdef STRUCT_UDPSTAT_HAS_UDPS_DISCARD
             udpstat.udps_discard +
 #endif
-#ifdef HAVE_STRUCT_UDPSTAT_UDPS_FULLSOCK
+#ifdef STRUCT_UDPSTAT_HAS_UDPS_FULLSOCK
             udpstat.udps_fullsock +
 #endif
             udpstat.udps_badlen;
@@ -329,7 +342,6 @@ udp_handler(netsnmp_mib_handler          *handler,
 
     case MODE_GETNEXT:
     case MODE_GETBULK:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
     case MODE_SET_RESERVE2:
     case MODE_SET_ACTION:
@@ -339,7 +351,6 @@ udp_handler(netsnmp_mib_handler          *handler,
         snmp_log(LOG_WARNING, "mibII/udp: Unsupported mode (%d)\n",
                                reqinfo->mode);
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     default:
         snmp_log(LOG_WARNING, "mibII/udp: Unrecognised mode (%d)\n",
                                reqinfo->mode);
@@ -452,21 +463,6 @@ udp_load(netsnmp_cache *cache, void *vmagic)
     }
     return ret_value;
 }
-#elif defined(NETBSD_STATS_VIA_SYSCTL)
-int
-udp_load(netsnmp_cache *cache, void *vmagic)
-{
-    long ret_value = -1;
-
-    ret_value = netbsd_read_udp_stat(&udpstat);
-
-    if ( ret_value < 0 ) {
-        DEBUGMSGTL(("mibII/udpScalar", "Failed to load UDP scalar Group (netbsd)\n"));
-    } else {
-        DEBUGMSGTL(("mibII/udpScalar", "Loaded UDP scalar Group (netbsd)\n"));
-    }
-    return ret_value;
-}
 #elif defined(WIN32)
 int
 udp_load(netsnmp_cache *cache, void *vmagic)
diff --git a/agent/mibgroup/mibII/udp.h b/agent/mibgroup/mibII/udp.h
index 9d4671b..809d891 100644
--- a/agent/mibgroup/mibII/udp.h
+++ b/agent/mibgroup/mibII/udp.h
@@ -6,12 +6,9 @@
 #define _MIBGROUP_UDP_H
 
 
-config_require(mibII/udpTable)
-
-config_arch_require(solaris2,        kernel_sunos5)
-config_arch_require(linux,     mibII/kernel_linux)
-config_arch_require(netbsd,    mibII/kernel_netbsd)
-config_arch_require(netbsdelf, mibII/kernel_netbsd)
+config_require(mibII/udpTable util_funcs)
+config_arch_require(solaris2, kernel_sunos5)
+config_arch_require(linux, mibII/kernel_linux)
 
 extern void     init_udp(void);
 extern Netsnmp_Node_Handler udp_handler;
diff --git a/agent/mibgroup/mibII/udpTable.c b/agent/mibgroup/mibII/udpTable.c
index 6228710..cc1e780 100644
--- a/agent/mibgroup/mibII/udpTable.c
+++ b/agent/mibgroup/mibII/udpTable.c
@@ -33,6 +33,7 @@
 #endif
 #include "udp.h"
 #include "udpTable.h"
+#include "sysORTable.h"
 
 #ifdef hpux11
 #define	UDPTABLE_ENTRY_TYPE	mib_udpLsnEnt 
@@ -53,7 +54,7 @@ struct netsnmp_udpEntry_s {
 #define	UDPTABLE_IS_LINKED_LIST
 #else
 
-#ifdef HAVE_IPHLPAPI_H
+#if defined (WIN32) || defined (cygwin)
 #include <iphlpapi.h>
 #define	UDPTABLE_ENTRY_TYPE	MIB_UDPROW		/* ??? */
 #define	UDPTABLE_LOCALADDRESS	dwLocalAddr
@@ -64,9 +65,6 @@ struct netsnmp_udpEntry_s {
 #ifdef linux
 #define INP_NEXT_SYMBOL		inp_next
 #endif
-#ifdef openbsd4
-#define INP_NEXT_SYMBOL		inp_queue.cqe_next	/* or set via <net-snmp/system/openbsd.h> */
-#endif
 
 #if defined(freebsd4) || defined(darwin) || defined(osf5)
 typedef struct netsnmp_inpcb_s netsnmp_inpcb;
@@ -129,7 +127,6 @@ init_udpTable(void)
     netsnmp_table_registration_info *table_info;
     netsnmp_iterator_info           *iinfo;
     netsnmp_handler_registration    *reginfo;
-    int                              rc;
 
     DEBUGMSGTL(("mibII/udpTable", "Initialising UDP Table\n"));
     /*
@@ -167,9 +164,7 @@ init_udpTable(void)
             udpTable_handler,
             udpTable_oid, OID_LENGTH(udpTable_oid),
             HANDLER_CAN_RONLY),
-    rc = netsnmp_register_table_iterator2(reginfo, iinfo);
-    if (rc != SNMPERR_SUCCESS)
-        return;
+    netsnmp_register_table_iterator(reginfo, iinfo);
 
     /*
      * .... with a local cache
@@ -238,14 +233,12 @@ udpTable_handler(netsnmp_mib_handler          *handler,
 
     case MODE_GETNEXT:
     case MODE_GETBULK:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
     case MODE_SET_RESERVE2:
     case MODE_SET_ACTION:
     case MODE_SET_COMMIT:
     case MODE_SET_FREE:
     case MODE_SET_UNDO:
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         snmp_log(LOG_WARNING, "mibII/udpTable: Unsupported mode (%d)\n",
                                reqinfo->mode);
         break;
@@ -350,7 +343,7 @@ udpTable_first_entry(void **loop_context,
      * XXX - How can we tell if the cache is valid?
      *       No access to 'reqinfo'
      */
-    if (udp_head == NULL)
+    if (udp_head == 0)
         return NULL;
 
     /*
@@ -460,7 +453,7 @@ udpTable_load(netsnmp_cache *cache, void *vmagic)
     }
 
     if (udp_size > 0) {
-        DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table (hpux11)\n"));
+        DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table\n"));
         return 0;
     }
     DEBUGMSGTL(("mibII/udpTable", "Failed to load UDP Table (hpux11)\n"));
@@ -479,7 +472,7 @@ udpTable_load(netsnmp_cache *cache, void *vmagic)
 
     if (!(in = fopen("/proc/net/udp", "r"))) {
         DEBUGMSGTL(("mibII/udpTable", "Failed to load UDP Table (linux)\n"));
-        NETSNMP_LOGONCE((LOG_ERR, "snmpd: cannot open /proc/net/udp ...\n"));
+        snmp_log(LOG_ERR, "snmpd: cannot open /proc/net/udp ...\n");
         return -1;
     }
 
@@ -492,8 +485,6 @@ udpTable_load(netsnmp_cache *cache, void *vmagic)
         struct inpcb    pcb, *nnew;
         unsigned int    state, lport;
 
-        memset(&pcb, 0, sizeof(pcb));
-
         if (3 != sscanf(line, "%*d: %x:%x %*x:%*x %x",
                         &pcb.inp_laddr.s_addr, &lport, &state))
             continue;
@@ -515,7 +506,7 @@ udpTable_load(netsnmp_cache *cache, void *vmagic)
 
     fclose(in);
 
-    DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table (linux)\n"));
+    DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table\n"));
     return 0;
 }
 #else                           /* linux */
@@ -579,7 +570,7 @@ udpTable_load(netsnmp_cache *cache, void *vmagic)
     }
 
     if (udp_head) {
-        DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table (solaris)\n"));
+        DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table\n"));
         return 0;
     }
     DEBUGMSGTL(("mibII/udpTable", "Failed to load UDP Table (solaris)\n"));
@@ -609,7 +600,7 @@ udpTable_load(netsnmp_cache *cache, void *vmagic)
         }
     }
     if (status == NO_ERROR) {
-        DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table (win32)\n"));
+        DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table\n"));
         udp_size = pUdpTable->dwNumEntries -1;  /* entries are counted starting with 0 */
         udp_head = pUdpTable->table;
         return 0;
@@ -628,11 +619,7 @@ udpTable_load(netsnmp_cache *cache, void *vmagic)
     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
     UDPTABLE_ENTRY_TYPE  *nnew;
 
     udpTable_free(NULL, NULL);
@@ -653,35 +640,28 @@ udpTable_load(netsnmp_cache *cache, void *vmagic)
      *  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 && ((char *)xig + xig->xi_len < udpcb_buf + len))
-#else
-    while (xig && (xig->xig_len > sizeof(struct xinpgen)))
-#endif
-    {
+    while (xig && (xig->xig_len > sizeof(struct xinpgen))) {
         nnew = SNMP_MALLOC_TYPEDEF(UDPTABLE_ENTRY_TYPE);
         if (!nnew)
             break;
-        memcpy(&nnew->pcb, &((struct xinpcb *) xig)->xi_inp, sizeof(struct inpcb));
+#if defined(freebsd4) || defined(darwin)
+        memcpy(nnew, &((struct xinpcb *) xig)->xi_inp, sizeof(struct inpcb));
 	nnew->inp_next = udp_head;
-	udp_head   = nnew;
-#if defined(dragonfly)
-        xig = (struct xinpcb  *) ((char *) xig + xig->xi_len);
 #else
-        xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
+        memcpy(nnew, ((struct xinpcb *) xig)->xi_inp, sizeof(struct inpcb));
+	nnew->next = udp_head;		/* XXX - ?? Check 'next' pointer */
 #endif
+
+	udp_head   = nnew;
+        xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
     }
 
     free(udpcb_buf);
     if (udp_head) {
-        DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table (sysctl)\n"));
+        DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table\n"));
         return 0;
     }
     DEBUGMSGTL(("mibII/udpTable", "Failed to load UDP Table (sysctl)\n"));
@@ -726,7 +706,7 @@ udpTable_load(netsnmp_cache *cache, void *vmagic)
     }
 
     if (udp_head) {
-        DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table (pcb_table)\n"));
+        DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table\n"));
         return 0;
     }
     DEBUGMSGTL(("mibII/udpTable", "Failed to load UDP Table (pcb_table)\n"));
@@ -772,7 +752,7 @@ udpTable_load(netsnmp_cache *cache, void *vmagic)
     }
 
     if (udp_head) {
-        DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table (udb_symbol)\n"));
+        DEBUGMSGTL(("mibII/udpTable", "Loaded UDP Table\n"));
         return 0;
     }
     DEBUGMSGTL(("mibII/udpTable", "Failed to load UDP Table (udb_symbol)\n"));
diff --git a/agent/mibgroup/mibII/udpTable.h b/agent/mibgroup/mibII/udpTable.h
index f9afd5a..2c61cda 100644
--- a/agent/mibgroup/mibII/udpTable.h
+++ b/agent/mibgroup/mibII/udpTable.h
@@ -6,7 +6,7 @@
 #define _MIBGROUP_UDPTABLE_H
 
 config_arch_require(solaris2, kernel_sunos5)
-config_require(mibII/ip)
+config_require(util_funcs mibII/ip)
 
 extern void     init_udpTable(void);
 extern Netsnmp_Node_Handler udpTable_handler;
diff --git a/agent/mibgroup/mibII/updates.c b/agent/mibgroup/mibII/updates.c
deleted file mode 100644
index 9d681cc..0000000
--- a/agent/mibgroup/mibII/updates.c
+++ /dev/null
@@ -1,33 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-static int
-handle_updates(netsnmp_mib_handler *handler,
-               netsnmp_handler_registration *reginfo,
-               netsnmp_agent_request_info *reqinfo,
-               netsnmp_request_info *requests)
-{
-    int *set = (int*)handler->myvoid;
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-    if (reqinfo->mode == MODE_SET_RESERVE1 && *set < 0)
-        netsnmp_request_set_error(requests, SNMP_ERR_NOTWRITABLE);
-    else if (reqinfo->mode == MODE_SET_COMMIT)
-        *set = 1;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-    return SNMP_ERR_NOERROR;
-}
-
-netsnmp_handler_registration*
-netsnmp_create_update_handler_registration(
-    const char* name, const oid* id, size_t idlen, int mode, int* set)
-{
-    netsnmp_handler_registration *res = NULL;
-    netsnmp_mib_handler *hnd = netsnmp_create_handler("update", handle_updates);
-    if (hnd) {
-        hnd->myvoid = set;
-        res = netsnmp_handler_registration_create(name, hnd, id, idlen, mode);
-    }
-    return res;
-}
diff --git a/agent/mibgroup/mibII/updates.h b/agent/mibgroup/mibII/updates.h
deleted file mode 100644
index b414e33..0000000
--- a/agent/mibgroup/mibII/updates.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef UPDATES_H
-#define UPDATES_H
-
-/**
- * Create a handler_registration that checks *set to determine how to proceede,
- * if *set is less than 0 then the object is nonwriteable, otherwise, *set is
- * set to 1 in the commit phase. All other parameters are as in
- * netsnmp_create_handler_registration.
- */
-
-extern netsnmp_handler_registration*
-netsnmp_create_update_handler_registration(const char* name,
-                                           const oid* id, size_t idlen,
-                                           int mode, int* set);
-
-#endif
diff --git a/agent/mibgroup/mibII/vacm_conf.c b/agent/mibgroup/mibII/vacm_conf.c
index f2faf86..7e19314 100644
--- a/agent/mibgroup/mibII/vacm_conf.c
+++ b/agent/mibgroup/mibII/vacm_conf.c
@@ -40,12 +40,34 @@
 #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>
 
 #include <net-snmp/agent/agent_callbacks.h>
 #include "vacm_conf.h"
+#include "util_funcs.h"
+
+#ifdef USING_MIBII_SYSORTABLE_MODULE
+#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
+#include "sysORTable.h"
+#endif
 
 #include "snmpd.h"
 
@@ -66,31 +88,28 @@ init_vacm_config_tokens(void) {
                                   "name context model level prefix viewname viewval");
     snmpd_register_config_handler("view", vacm_parse_view, vacm_free_view,
                                   "name type subtree [mask]");
-    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);
+    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);
 
     /* easy community auth handler */
     snmpd_register_config_handler("authcommunity",
                                   vacm_parse_authcommunity,
-                                  NULL, "authtype1,authtype2 community [default|hostname|network/bits [oid|-V view [context]]]");
+                                  NULL, "authtype1,authtype2 community [default|hostname|network/bits [oid|-V view]]");
 
     /* easy user auth handler */
     snmpd_register_config_handler("authuser",
                                   vacm_parse_authuser,
-                                  NULL, "authtype1,authtype2 [-s secmodel] user [noauth|auth|priv [oid|-V view [context]]]");
+                                  NULL, "authtype1,authtype2 [-s secmodel] user [noauth|auth|priv [oid|-V view]]");
     /* easy group auth handler */
     snmpd_register_config_handler("authgroup",
                                   vacm_parse_authuser,
-                                  NULL, "authtype1,authtype2 [-s secmodel] group [noauth|auth|priv [oid|-V view [context]]]");
+                                  NULL, "authtype1,authtype2 [-s secmodel] group [noauth|auth|priv [oid|-V view]]");
 
     snmpd_register_config_handler("authaccess", vacm_parse_authaccess,
                                   vacm_free_access,
@@ -100,7 +119,7 @@ init_vacm_config_tokens(void) {
      * Define standard views "_all_" and "_none_"
      */
     snmp_register_callback(SNMP_CALLBACK_LIBRARY,
-                           SNMP_CALLBACK_PRE_READ_CONFIG,
+                           SNMP_CALLBACK_POST_PREMIB_READ_CONFIG,
                            vacm_standard_views, NULL);
     snmp_register_callback(SNMP_CALLBACK_LIBRARY,
                            SNMP_CALLBACK_POST_READ_CONFIG,
@@ -115,20 +134,20 @@ void
 init_vacm_snmpd_easy_tokens(void) {
 #if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
     snmpd_register_config_handler("rwcommunity", vacm_parse_rwcommunity, NULL,
-                                  "community [default|hostname|network/bits [oid|-V view [context]]]");
+                                  "community [default|hostname|network/bits [oid]]");
     snmpd_register_config_handler("rocommunity", vacm_parse_rocommunity, NULL,
-                                  "community [default|hostname|network/bits [oid|-V view [context]]]");
+                                  "community [default|hostname|network/bits [oid]]");
 #ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
     snmpd_register_config_handler("rwcommunity6", vacm_parse_rwcommunity6, NULL,
-                                  "community [default|hostname|network/bits [oid|-V view [context]]]");
+                                  "community [default|hostname|network/bits [oid]]");
     snmpd_register_config_handler("rocommunity6", vacm_parse_rocommunity6, NULL,
-                                  "community [default|hostname|network/bits [oid|-V view [context]]]");
+                                  "community [default|hostname|network/bits [oid]]");
 #endif
 #endif /* support for community based SNMP */
     snmpd_register_config_handler("rwuser", vacm_parse_rwuser, NULL,
-                                  "user [noauth|auth|priv [oid|-V view [context]]]");
+                                  "user [noauth|auth|priv [oid]]");
     snmpd_register_config_handler("rouser", vacm_parse_rouser, NULL,
-                                  "user [noauth|auth|priv [oid|-V view [context]]]");
+                                  "user [noauth|auth|priv [oid]]");
 }
 
 void
@@ -155,24 +174,24 @@ init_vacm_conf(void)
 void
 vacm_parse_group(const char *token, char *param)
 {
-    char            group[VACMSTRINGLEN], model[VACMSTRINGLEN], security[VACMSTRINGLEN];
+    char           *group, *model, *security;
     int             imodel;
     struct vacm_groupEntry *gp = NULL;
     char           *st;
 
-    st = copy_nword(param, group, sizeof(group)-1);
-    st = copy_nword(st, model, sizeof(model)-1);
-    st = copy_nword(st, security, sizeof(security)-1);
+    group = strtok_r(param, " \t\n", &st);
+    model = strtok_r(NULL, " \t\n", &st);
+    security = strtok_r(NULL, " \t\n", &st);
 
-    if (group[0] == 0) {
+    if (group == NULL || *group == 0) {
         config_perror("missing GROUP parameter");
         return;
     }
-    if (model[0] == 0) {
+    if (model == NULL || *model == 0) {
         config_perror("missing MODEL parameter");
         return;
     }
-    if (security[0] == 0) {
+    if (security == NULL || *security == 0) {
         config_perror("missing SECURITY parameter");
         return;
     }
@@ -201,7 +220,8 @@ vacm_parse_group(const char *token, char *param)
         config_perror("failed to create group entry");
         return;
     }
-    strlcpy(gp->groupName, group, sizeof(gp->groupName));
+    strncpy(gp->groupName, group, sizeof(gp->groupName));
+    gp->groupName[ sizeof(gp->groupName)-1 ] = 0;
     gp->storageType = SNMP_STORAGE_PERMANENT;
     gp->status = SNMP_ROW_ACTIVE;
     free(gp->reserved);
@@ -251,7 +271,7 @@ _vacm_parse_access_common(const char *token, char *param, char **st,
         return PARSE_FAIL;
     }
 
-    if (strcmp(*context, "\"\"") == 0 || strcmp(*context, "\'\'") == 0)
+    if (strcmp(*context, "\"\"") == 0)
         **context = 0;
     if (strcasecmp(model, "any") == 0)
         *imodel = SNMP_SEC_MODEL_ANY;
@@ -356,8 +376,7 @@ vacm_parse_authcommunity(const char *token, char *confline)
 void
 vacm_parse_authaccess(const char *token, char *confline)
 {
-    char *group, *view, *tmp;
-    const char *context;
+    char *group, *view, *context, *tmp;
     int  model = SNMP_SEC_MODEL_ANY;
     int  level, prefix;
     int  i;
@@ -447,9 +466,9 @@ vacm_parse_authaccess(const char *token, char *confline)
     }
     
 
-    context = tmp = strtok_r(NULL, " \t\n", &st);
-    if (tmp) {
-        tmp = (tmp + strlen(tmp)-1);
+    context = strtok_r(NULL, " \t\n", &st);
+    if (context) {
+        tmp = (context + strlen(context)-1);
         if (tmp && *tmp == '*') {
             *tmp = '\0';
             prefix = 2;
@@ -541,6 +560,10 @@ vacm_parse_setaccess(const char *token, char *param)
         config_perror("failed to create access entry");
         return;
     }
+    if (!ap) {
+        config_perror("failed to create access entry");
+        return;
+    }
 
     strcpy(ap->views[viewnum], viewval);
     ap->contextMatch = iprefix;
@@ -624,7 +647,7 @@ vacm_parse_view(const char *token, char *param)
     size_t          suboid_len = 0;
     size_t          mask_len = 0;
     u_char          viewMask[VACMSTRINGLEN];
-    size_t          i;
+    int             i;
     char            *st;
 
     name = strtok_r(param, " \t\n", &st);
@@ -661,7 +684,7 @@ vacm_parse_view(const char *token, char *param)
         return;
     }
     if (mask) {
-        unsigned int val;
+        int             val;
         i = 0;
         for (mask = strtok_r(mask, " .:", &st); mask; mask = strtok_r(NULL, " .:", &st)) {
             if (i >= sizeof(viewMask)) {
@@ -701,17 +724,16 @@ vacm_free_view(void)
 }
 
 void
-vacm_gen_com2sec(int commcount, const char *community, const char *addressname,
-                 const char *publishtoken,
+vacm_gen_com2sec(int commcount, char *community, char *addressname,
+                 char *publishtoken,
                  void (*parser)(const char *, char *),
                  char *secname, size_t secname_len,
-                 char *viewname, size_t viewname_len, int version,
-                 const char *context)
+                 char *viewname, size_t viewname_len, int version)
 {
     char            line[SPRINT_MAX_LEN];
 
     /*
-     * com2sec6|comsec [-Cn CONTEXT] anonymousSecNameNUM    ADDRESS  COMMUNITY 
+     * com2sec6|comsec anonymousSecNameNUM    ADDRESS  COMMUNITY 
      */
     snprintf(secname, secname_len-1, "comm%d", commcount);
     secname[secname_len-1] = '\0';
@@ -719,11 +741,7 @@ vacm_gen_com2sec(int commcount, const char *community, const char *addressname,
         snprintf(viewname, viewname_len-1, "viewComm%d", commcount);
         viewname[viewname_len-1] = '\0';
     }
-    if ( context && *context )
-       snprintf(line, sizeof(line), "-Cn %s %s %s '%s'",
-             context, secname, addressname, community);
-    else
-       snprintf(line, sizeof(line), "%s %s '%s'",
+    snprintf(line, sizeof(line), "%s %s '%s'",
              secname, addressname, community);
     line[ sizeof(line)-1 ] = 0;
     DEBUGMSGTL((publishtoken, "passing: %s %s\n", publishtoken, line));
@@ -943,24 +961,18 @@ vacm_create_simple(const char *token, char *confline,
     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,
                          "com2sec", &netsnmp_udp_parse_security,
                          secname, sizeof(secname),
-                         view_ptr, sizeof(viewname), commversion, context);
+                         view_ptr, sizeof(viewname), commversion);
     }
-#endif
-
+    
 #ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
     if (parsetype == VACM_CREATE_SIMPLE_COMUNIX ||
         parsetype == VACM_CREATE_SIMPLE_COM) {
-        if ( *context )
-           snprintf(line, sizeof(line), "-Cn %s %s %s '%s'",
-             context, secname, addressname, community);
-        else
-            snprintf(line, sizeof(line), "%s %s '%s'",
+        snprintf(line, sizeof(line), "%s %s '%s'",
                  secname, addressname, community);
         line[ sizeof(line)-1 ] = 0;
         DEBUGMSGTL((token, "passing: %s %s\n", "com2secunix", line));
@@ -974,7 +986,7 @@ vacm_create_simple(const char *token, char *confline,
         vacm_gen_com2sec(commcount, community, addressname,
                          "com2sec6", &netsnmp_udp6_parse_security,
                          secname, sizeof(secname),
-                         view_ptr, sizeof(viewname), commversion, context);
+                         view_ptr, sizeof(viewname), commversion);
     }
 #endif
 #endif /* support for community based SNMP */
@@ -985,9 +997,11 @@ vacm_create_simple(const char *token, char *confline,
             sprintf(viewname,"viewUSM%d",commcount);
         }
         if ( strcmp( token, "authgroup" ) == 0 ) {
-            strlcpy(grpname, community, sizeof(grpname));
+            strncpy(grpname, community, sizeof(grpname));
+            grpname[ sizeof(grpname)-1 ] = 0;
         } else {
-            strlcpy(secname, community, sizeof(secname));
+            strncpy(secname, community, sizeof(secname));
+            secname[ sizeof(secname)-1 ] = 0;
 
             /*
              * sec->group mapping 
@@ -997,10 +1011,10 @@ vacm_create_simple(const char *token, char *confline,
              */
             snprintf(grpname, sizeof(grpname), "grp%.28s", secname);
             for (tmp=grpname; *tmp; tmp++)
-                if (!isalnum((unsigned char)(*tmp)))
+                if (!isalnum(*tmp))
                     *tmp = '_';
             snprintf(line, sizeof(line),
-                     "%s %s \"%s\"", grpname, model, secname);
+                     "%s %s %s", grpname, model, secname);
             line[ sizeof(line)-1 ] = 0;
             DEBUGMSGTL((token, "passing: %s %s\n", "group", line));
             vacm_parse_group("group", line);
@@ -1008,7 +1022,7 @@ vacm_create_simple(const char *token, char *confline,
     } else {
         snprintf(grpname, sizeof(grpname), "grp%.28s", secname);
         for (tmp=grpname; *tmp; tmp++)
-            if (!isalnum((unsigned char)(*tmp)))
+            if (!isalnum(*tmp))
                 *tmp = '_';
     }
 
@@ -1201,11 +1215,9 @@ vacm_in_view(netsnmp_pdu *pdu, oid * name, size_t namelen,
     case SNMP_MSG_GETBULK:
         viewtype = VACM_VIEW_READ;
         break;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case SNMP_MSG_SET:
         viewtype = VACM_VIEW_WRITE;
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     case SNMP_MSG_TRAP:
     case SNMP_MSG_TRAP2:
     case SNMP_MSG_INFORM:
@@ -1247,22 +1259,14 @@ int
 vacm_check_view(netsnmp_pdu *pdu, oid * name, size_t namelen,
                 int check_subtree, int viewtype)
 {
-    return vacm_check_view_contents(pdu, name, namelen, check_subtree, viewtype,
-                                    VACM_CHECK_VIEW_CONTENTS_NO_FLAGS);
-}
-
-int
-vacm_check_view_contents(netsnmp_pdu *pdu, oid * name, size_t namelen,
-                         int check_subtree, int viewtype, int flags)
-{
     struct vacm_accessEntry *ap;
     struct vacm_groupEntry *gp;
     struct vacm_viewEntry *vp;
     char            vacm_default_context[1] = "";
-    const char     *contextName = vacm_default_context;
-    const char     *sn = NULL;
+    char           *contextName = vacm_default_context;
+    char           *sn = NULL;
     char           *vn;
-    const char     *pdu_community;
+    char           *pdu_community;
 
     /*
      * len defined by the vacmContextName object 
@@ -1281,7 +1285,7 @@ vacm_check_view_contents(netsnmp_pdu *pdu, oid * name, size_t namelen,
 #endif
 #endif
     {
-        pdu_community = (const char *) pdu->community;
+        pdu_community = pdu->community;
         if (!pdu_community)
             pdu_community = "";
         if (snmp_get_do_debugging()) {
@@ -1296,7 +1300,7 @@ vacm_check_view_contents(netsnmp_pdu *pdu, oid * name, size_t namelen,
             }
 
             DEBUGMSGTL(("mibII/vacm_vars",
-                        "vacm_in_view: ver=%ld, community=%s\n",
+                        "vacm_in_view: ver=%d, community=%s\n",
                         pdu->version, buf));
             free(buf);
         }
@@ -1307,16 +1311,14 @@ vacm_check_view_contents(netsnmp_pdu *pdu, oid * name, size_t namelen,
          * community string to a security name for us.  
          */
 
-        if (0) {
-#ifdef NETSNMP_TRANSPORT_UDP_DOMAIN
-        } else if (pdu->tDomain == netsnmpUDPDomain
+        if (pdu->tDomain == netsnmpUDPDomain
 #ifdef NETSNMP_TRANSPORT_TCP_DOMAIN
             || pdu->tDomain == netsnmp_snmpTCPDomain
 #endif
             ) {
             if (!netsnmp_udp_getSecName(pdu->transport_data,
                                         pdu->transport_data_length,
-                                        pdu_community,
+                                        (char *) pdu_community,
                                         pdu->community_len, &sn,
                                         &contextName)) {
                 /*
@@ -1328,7 +1330,6 @@ vacm_check_view_contents(netsnmp_pdu *pdu, oid * name, size_t namelen,
             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
@@ -1337,7 +1338,7 @@ vacm_check_view_contents(netsnmp_pdu *pdu, oid * name, size_t namelen,
             ) {
             if (!netsnmp_udp6_getSecName(pdu->transport_data,
                                          pdu->transport_data_length,
-                                         pdu_community,
+                                         (char *) pdu_community,
                                          pdu->community_len, &sn,
                                          &contextName)) {
                 /*
@@ -1354,7 +1355,7 @@ vacm_check_view_contents(netsnmp_pdu *pdu, oid * name, size_t namelen,
         } else if (pdu->tDomain == netsnmp_UnixDomain){
             if (!netsnmp_unix_getSecName(pdu->transport_data,
                                          pdu->transport_data_length,
-                                         pdu_community,
+                                         (char *) pdu_community,
                                          pdu->community_len, &sn,
                                          &contextName)) {
 					sn = NULL;
@@ -1385,7 +1386,7 @@ vacm_check_view_contents(netsnmp_pdu *pdu, oid * name, size_t namelen,
          * any legal defined v3 security model 
          */
         DEBUGMSG(("mibII/vacm_vars",
-                  "vacm_in_view: ver=%ld, model=%d, secName=%s\n",
+                  "vacm_in_view: ver=%d, model=%d, secName=%s\n",
                   pdu->version, pdu->securityModel, pdu->securityName));
         sn = pdu->securityName;
         contextName = pdu->contextName;
@@ -1405,20 +1406,19 @@ vacm_check_view_contents(netsnmp_pdu *pdu, oid * name, size_t namelen,
     if (pdu->contextNameLen > CONTEXTNAMEINDEXLEN) {
         DEBUGMSGTL(("mibII/vacm_vars",
                     "vacm_in_view: bad ctxt length %d\n",
-                    (int)pdu->contextNameLen));
+                    pdu->contextNameLen));
         return VACM_NOSUCHCONTEXT;
     }
     /*
      * NULL termination of the pdu field is ugly here.  Do in PDU parsing? 
      */
     if (pdu->contextName)
-        memcpy(contextNameIndex, pdu->contextName, pdu->contextNameLen);
+        strncpy(contextNameIndex, pdu->contextName, pdu->contextNameLen);
     else
         contextNameIndex[0] = '\0';
 
     contextNameIndex[pdu->contextNameLen] = '\0';
-    if (!(flags & VACM_CHECK_VIEW_CONTENTS_DNE_CONTEXT_OK) &&
-        !netsnmp_subtree_find_first(contextNameIndex)) {
+    if (!netsnmp_subtree_find_first(contextNameIndex)) {
         /*
          * rfc 3415 section 3.2, step 1
          * no such context here; return no such context error 
@@ -1444,7 +1444,7 @@ vacm_check_view_contents(netsnmp_pdu *pdu, oid * name, size_t namelen,
         return VACM_NOACCESS;
     }
 
-    if (name == NULL) { /* only check the setup of the vacm for the request */
+    if (name == 0) {            /* only check the setup of the vacm for the request */
         DEBUGMSG(("mibII/vacm_vars", ", Done checking setup\n"));
         return VACM_SUCCESS;
     }
diff --git a/agent/mibgroup/mibII/vacm_conf.h b/agent/mibgroup/mibII/vacm_conf.h
index 7864ce1..8e15978 100644
--- a/agent/mibgroup/mibII/vacm_conf.h
+++ b/agent/mibgroup/mibII/vacm_conf.h
@@ -7,6 +7,7 @@
 
 #include <net-snmp/library/vacm.h>
 
+config_require(util_funcs)
 config_belongs_in(agent_module)
 
 #define VACM_CREATE_SIMPLE_V3       1
@@ -42,10 +43,5 @@ config_belongs_in(agent_module)
 
      int             vacm_in_view(netsnmp_pdu *, oid *, size_t, int);
      int             vacm_check_view(netsnmp_pdu *, oid *, size_t, int, int);
-     int             vacm_check_view_contents(netsnmp_pdu *, oid *, size_t,
-                                              int, int, int);
-
-#define VACM_CHECK_VIEW_CONTENTS_NO_FLAGS        0
-#define VACM_CHECK_VIEW_CONTENTS_DNE_CONTEXT_OK  1
 
 #endif                          /* _MIBGROUP_VACM_CONF_H */
diff --git a/agent/mibgroup/mibII/vacm_context.c b/agent/mibgroup/mibII/vacm_context.c
index 8f43cd3..c474180 100644
--- a/agent/mibgroup/mibII/vacm_context.c
+++ b/agent/mibgroup/mibII/vacm_context.c
@@ -105,7 +105,7 @@ init_vacm_context(void)
     iinfo->get_first_data_point = get_first_context;
     iinfo->get_next_data_point = get_next_context;
     iinfo->table_reginfo = table_info;
-    netsnmp_register_table_iterator2(my_handler, iinfo);
+    netsnmp_register_table_iterator(my_handler, iinfo);
 }
 
 /*
@@ -149,6 +149,7 @@ vacm_context_handler(netsnmp_mib_handler *handler,
                                      strlen(context_ptr->context_name));
 
             break;
+
         default:
             /*
              * We should never get here, getnext already have been
@@ -158,6 +159,8 @@ vacm_context_handler(netsnmp_mib_handler *handler,
                      "vacm_context table accessed as mode=%d.  We're improperly registered!",
                      reqinfo->mode);
             break;
+
+
         }
     }
 
diff --git a/agent/mibgroup/mibII/vacm_vars.c b/agent/mibgroup/mibII/vacm_vars.c
index 85cef94..225aa0a 100644
--- a/agent/mibgroup/mibII/vacm_vars.c
+++ b/agent/mibgroup/mibII/vacm_vars.c
@@ -40,17 +40,24 @@
 #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>
 
 #include <net-snmp/agent/agent_callbacks.h>
-#include <net-snmp/agent/sysORTable.h>
 #include "vacm_vars.h"
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 
+#ifdef USING_MIBII_SYSORTABLE_MODULE
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -59,52 +66,41 @@
 #  include <time.h>
 # endif
 #endif
-
+#include "sysORTable.h"
+#endif
 static unsigned int vacmViewSpinLock = 0;
 
 void
 init_vacm_vars(void)
 {
 
-    oid      reg[] = { SNMP_OID_SNMPMODULES, 16, 2, 2, 1 };
+#ifdef USING_MIBII_SYSORTABLE_MODULE
+    static oid      reg[] = { SNMP_OID_SNMPMODULES, 16, 2, 2, 1 };
+#endif
 
 #define PRIVRW	(NETSNMP_SNMPV2ANY | 0x5000)
 
     struct variable1 vacm_sec2group[] = {
-        {SECURITYGROUP, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_sec2group, 1, {3}},
-        {SECURITYSTORAGE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_sec2group, 1, {4}},
-        {SECURITYSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_sec2group, 1, {5}},
+        {SECURITYGROUP, ASN_OCTET_STR, RWRITE, var_vacm_sec2group, 1, {3}},
+        {SECURITYSTORAGE, ASN_INTEGER, RWRITE, var_vacm_sec2group, 1, {4}},
+        {SECURITYSTATUS, ASN_INTEGER, RWRITE, var_vacm_sec2group, 1, {5}},
     };
 
     struct variable1 vacm_access[] = {
-        {ACCESSMATCH, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_access, 1, {4}},
-        {ACCESSREAD, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_access, 1, {5}},
-        {ACCESSWRITE, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_access, 1, {6}},
-        {ACCESSNOTIFY, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_access, 1, {7}},
-        {ACCESSSTORAGE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_access, 1, {8}},
-        {ACCESSSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_access, 1, {9}},
+        {ACCESSMATCH, ASN_INTEGER, RWRITE, var_vacm_access, 1, {4}},
+        {ACCESSREAD, ASN_OCTET_STR, RWRITE, var_vacm_access, 1, {5}},
+        {ACCESSWRITE, ASN_OCTET_STR, RWRITE, var_vacm_access, 1, {6}},
+        {ACCESSNOTIFY, ASN_OCTET_STR, RWRITE, var_vacm_access, 1, {7}},
+        {ACCESSSTORAGE, ASN_INTEGER, RWRITE, var_vacm_access, 1, {8}},
+        {ACCESSSTATUS, ASN_INTEGER, RWRITE, var_vacm_access, 1, {9}},
     };
 
     struct variable3 vacm_view[] = {
-        {VACMVIEWSPINLOCK, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_view, 1, {1}},
-        {VIEWMASK, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_view, 3, {2, 1, 3}},
-        {VIEWTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_view, 3, {2, 1, 4}},
-        {VIEWSTORAGE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_view, 3, {2, 1, 5}},
-        {VIEWSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_vacm_view, 3, {2, 1, 6}},
+        {VACMVIEWSPINLOCK, ASN_INTEGER, RWRITE, var_vacm_view, 1, {1}},
+        {VIEWMASK, ASN_OCTET_STR, RWRITE, var_vacm_view, 3, {2, 1, 3}},
+        {VIEWTYPE, ASN_INTEGER, RWRITE, var_vacm_view, 3, {2, 1, 4}},
+        {VIEWSTORAGE, ASN_INTEGER, RWRITE, var_vacm_view, 3, {2, 1, 5}},
+        {VIEWSTATUS, ASN_INTEGER, RWRITE, var_vacm_view, 3, {2, 1, 6}},
     };
 
     /*
@@ -130,7 +126,11 @@ init_vacm_vars(void)
                  vacm_access_oid);
     REGISTER_MIB("mibII/vacm:view", vacm_view, variable3, vacm_view_oid);
 
-    REGISTER_SYSOR_ENTRY(reg, "View-based Access Control Model for SNMP.");
+#ifdef USING_MIBII_SYSORTABLE_MODULE
+    register_sysORTable(reg, 10,
+                        "View-based Access Control Model for SNMP.");
+#endif
+
 }
 
 
@@ -144,7 +144,7 @@ var_vacm_sec2group(struct variable * vp,
 {
     struct vacm_groupEntry *gp;
     oid            *groupSubtree;
-    ssize_t         groupSubtreeLen;
+    int             groupSubtreeLen;
     int             secmodel;
     char            secname[VACMSTRINGLEN], *cp;
 
@@ -156,7 +156,6 @@ var_vacm_sec2group(struct variable * vp,
      */
 
     switch (vp->magic) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
     case SECURITYGROUP:
         *write_method = write_vacmGroupName;
         break;
@@ -166,13 +165,10 @@ var_vacm_sec2group(struct variable * vp,
     case SECURITYSTATUS:
         *write_method = write_vacmSecurityToGroupStatus;
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
     default:
         *write_method = NULL;
     }
 
-	*var_len = 0; /* assume 0 length until found */
-
     if (memcmp(name, vp->name, sizeof(oid) * vp->namelen) != 0) {
         memcpy(name, vp->name, sizeof(oid) * vp->namelen);
         *length = vp->namelen;
@@ -185,13 +181,13 @@ var_vacm_sec2group(struct variable * vp,
         groupSubtree = name + 13;
         groupSubtreeLen = *length - 13;
         if ( name[12] != groupSubtreeLen )
-            return NULL;	/* Either extra subids, or an incomplete string */
+            return 0;		/* Either extra subids, or an incomplete string */
         cp = secname;
         while (groupSubtreeLen-- > 0) {
             if (*groupSubtree > 255)
-                return NULL;    /* illegal value */
+                return 0;       /* illegal value */
             if (cp - secname > VACM_MAX_STRING)
-                return NULL;
+                return 0;
             *cp++ = (char) *groupSubtree++;
         }
         *cp = 0;
@@ -204,9 +200,9 @@ var_vacm_sec2group(struct variable * vp,
         cp = secname;
         while (groupSubtreeLen-- > 0) {
             if (*groupSubtree > 255)
-                return NULL;    /* illegal value */
+                return 0;       /* illegal value */
             if (cp - secname > VACM_MAX_STRING)
-                return NULL;
+                return 0;
             *cp++ = (char) *groupSubtree++;
         }
         *cp = 0;
@@ -256,7 +252,6 @@ var_vacm_sec2group(struct variable * vp,
     default:
         break;
     }
-
     return NULL;
 }
 
@@ -283,7 +278,6 @@ var_vacm_access(struct variable * vp,
      */
 
     switch (vp->magic) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
     case ACCESSMATCH:
         *write_method = write_vacmAccessContextMatch;
         break;
@@ -302,13 +296,10 @@ var_vacm_access(struct variable * vp,
     case ACCESSSTATUS:
         *write_method = write_vacmAccessStatus;
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
     default:
         *write_method = NULL;
     }
 
-	*var_len = 0; /* assume 0 length until found */
-
     if (memcmp(name, vp->name, sizeof(oid) * vp->namelen) != 0) {
         memcpy(name, vp->name, sizeof(oid) * vp->namelen);
         *length = vp->namelen;
@@ -324,11 +315,11 @@ var_vacm_access(struct variable * vp,
         op = name + 11;
         len = *op++;
         if (len > VACM_MAX_STRING)
-            return NULL;
+            return 0;
         cp = groupName;
         while (len-- > 0) {
             if (*op > 255)
-                return NULL;    /* illegal value */
+                return 0;       /* illegal value */
             *cp++ = (char) *op++;
         }
         *cp = 0;
@@ -338,11 +329,11 @@ var_vacm_access(struct variable * vp,
          */
         len = *op++;
         if (len > VACM_MAX_STRING)
-            return NULL;
+            return 0;
         cp = contextPrefix;
         while (len-- > 0) {
             if (*op > 255)
-                return NULL;    /* illegal value */
+                return 0;       /* illegal value */
             *cp++ = (char) *op++;
         }
         *cp = 0;
@@ -370,11 +361,11 @@ var_vacm_access(struct variable * vp,
         } else {
             len = *op;
             if (len > VACM_MAX_STRING)
-                return NULL;
+                return 0;
             cp = groupName;
             for (i = 0; i <= len; i++) {
                 if (*op > 255) {
-                    return NULL;   /* illegal value */
+                    return 0;   /* illegal value */
                 }
                 *cp++ = (char) *op++;
             }
@@ -384,11 +375,11 @@ var_vacm_access(struct variable * vp,
         } else {
             len = *op;
             if (len > VACM_MAX_STRING)
-                return NULL;
+                return 0;
             cp = contextPrefix;
             for (i = 0; i <= len; i++) {
                 if (*op > 255) {
-                    return NULL;   /* illegal value */
+                    return 0;   /* illegal value */
                 }
                 *cp++ = (char) *op++;
             }
@@ -478,7 +469,6 @@ var_vacm_access(struct variable * vp,
         long_return = gp->status;
         return (u_char *) & long_return;
     }
-
     return NULL;
 }
 
@@ -505,7 +495,6 @@ var_vacm_view(struct variable * vp,
      */
 
     switch (vp->magic) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
     case VIEWMASK:
         *write_method = write_vacmViewMask;
         break;
@@ -518,13 +507,11 @@ var_vacm_view(struct variable * vp,
     case VIEWSTATUS:
         *write_method = write_vacmViewStatus;
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
     default:
         *write_method = NULL;
     }
 
     *var_len = sizeof(long_return);
-
     if (vp->magic != VACMVIEWSPINLOCK) {
         if (memcmp(name, vp->name, sizeof(oid) * vp->namelen) != 0) {
             memcpy(name, vp->name, sizeof(oid) * vp->namelen);
@@ -541,11 +528,11 @@ var_vacm_view(struct variable * vp,
             op = name + 12;
             len = *op++;
             if (len > VACM_MAX_STRING)
-                return NULL;
+                return 0;
             cp = viewName;
             while (len-- > 0) {
                 if (*op > 255)
-                    return NULL;
+                    return 0;
                 *cp++ = (char) *op++;
             }
             *cp = 0;
@@ -556,7 +543,7 @@ var_vacm_view(struct variable * vp,
             subtree[0] = len = *op++;
             subtreeLen = 1;
             if (len > MAX_OID_LEN)
-                return NULL;
+                return 0;
             if ( (op+len) != (name + *length) )
                 return NULL;     /* Declared length doesn't match what we actually got */
             op1 = &(subtree[1]);
@@ -579,11 +566,11 @@ var_vacm_view(struct variable * vp,
             } else {
                 len = *op;
                 if (len > VACM_MAX_STRING)
-                    return NULL;
+                    return 0;
                 cp = viewName;
                 for (i = 0; i <= len && op < name + *length; i++) {
                     if (*op > 255) {
-                        return NULL;
+                        return 0;
                     }
                     *cp++ = (char) *op++;
                 }
@@ -636,9 +623,7 @@ var_vacm_view(struct variable * vp,
 
     switch (vp->magic) {
     case VACMVIEWSPINLOCK:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_vacmViewSpinLock;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         long_return = vacmViewSpinLock;
         return (u_char *) & long_return;
 
@@ -666,11 +651,34 @@ var_vacm_view(struct variable * vp,
         long_return = gp->viewStatus;
         return (u_char *) & long_return;
     }
-
     return NULL;
 }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
+oid            *
+sec2group_generate_OID(oid * prefix, size_t prefixLen,
+                       struct vacm_groupEntry * geptr, size_t * length)
+{
+    oid            *indexOid;
+    int             i, securityNameLen;
+
+    securityNameLen = strlen(geptr->securityName);
+
+    *length = 2 + securityNameLen + prefixLen;
+    indexOid = (oid *) malloc(*length * sizeof(oid));
+    if (indexOid) {
+        memmove(indexOid, prefix, prefixLen * sizeof(oid));
+
+        indexOid[prefixLen] = geptr->securityModel;
+
+        indexOid[prefixLen + 1] = securityNameLen;
+        for (i = 0; i < securityNameLen; i++)
+            indexOid[prefixLen + 2 + i] = (oid) geptr->securityName[i];
+
+    }
+    return indexOid;
+
+}
+
 int
 sec2group_parse_oid(oid * oidIndex, size_t oidLen,
                     int *model, unsigned char **name, size_t * nameLen)
@@ -973,6 +981,40 @@ write_vacmSecurityToGroupStatus(int action,
     return SNMP_ERR_NOERROR;
 }
 
+oid            *
+access_generate_OID(oid * prefix, size_t prefixLen,
+                    struct vacm_accessEntry * aptr, size_t * length)
+{
+    oid            *indexOid;
+    int             i, groupNameLen, contextPrefixLen;
+
+    groupNameLen = strlen(aptr->groupName);
+    contextPrefixLen = strlen(aptr->contextPrefix);
+
+    *length = 4 + groupNameLen + contextPrefixLen + prefixLen;
+    indexOid = (oid *) malloc(*length * sizeof(oid));
+    if (indexOid) {
+        memmove(indexOid, prefix, prefixLen * sizeof(oid));
+
+        indexOid[prefixLen] = groupNameLen;
+        for (i = 0; i < groupNameLen; i++)
+            indexOid[groupNameLen + 1 + i] = (oid) aptr->groupName[i];
+
+        indexOid[prefixLen + groupNameLen + 1] = contextPrefixLen;
+        for (i = 0; i < contextPrefixLen; i++)
+            indexOid[prefixLen + groupNameLen + 2 + i] =
+                (oid) aptr->contextPrefix[i];
+
+        indexOid[prefixLen + groupNameLen + contextPrefixLen + 3] =
+            aptr->securityModel;
+        indexOid[prefixLen + groupNameLen + contextPrefixLen + 4] =
+            aptr->securityLevel;
+
+    }
+    return indexOid;
+
+}
+
 int
 access_parse_oid(oid * oidIndex, size_t oidLen,
                  unsigned char **groupName, size_t * groupNameLen,
@@ -1084,7 +1126,7 @@ write_vacmAccessStatus(int action,
 {
     static long     long_ret;
     int             model, level;
-    char           *newGroupName = NULL, *newContextPrefix = NULL;
+    char           *newGroupName, *newContextPrefix;
     size_t          groupNameLen, contextPrefixLen;
     struct vacm_accessEntry *aptr = NULL;
 
@@ -1508,6 +1550,35 @@ view_parse_oid(oid * oidIndex, size_t oidLen,
     return 0;
 }
 
+oid            *
+view_generate_OID(oid * prefix, size_t prefixLen,
+                  struct vacm_viewEntry * vptr, size_t * length)
+{
+    oid            *indexOid;
+    int             i, viewNameLen, viewSubtreeLen;
+
+    viewNameLen = strlen(vptr->viewName);
+    viewSubtreeLen = vptr->viewSubtreeLen;
+
+    *length = 2 + viewNameLen + viewSubtreeLen + prefixLen;
+    indexOid = (oid *) malloc(*length * sizeof(oid));
+    if (indexOid) {
+        memmove(indexOid, prefix, prefixLen * sizeof(oid));
+
+        indexOid[prefixLen] = viewNameLen;
+        for (i = 0; i < viewNameLen; i++)
+            indexOid[viewNameLen + 1 + i] = (oid) vptr->viewName[i];
+
+        indexOid[prefixLen + viewNameLen + 1] = viewSubtreeLen;
+        for (i = 0; i < viewSubtreeLen; i++)
+            indexOid[prefixLen + viewNameLen + 2 + i] =
+                (oid) vptr->viewSubtree[i];
+
+    }
+    return indexOid;
+
+}
+
 struct vacm_viewEntry *
 view_parse_viewEntry(oid * name, size_t name_len)
 {
@@ -1840,4 +1911,3 @@ write_vacmViewSpinLock(int action,
     }
     return SNMP_ERR_NOERROR;
 }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
diff --git a/agent/mibgroup/mibII/vacm_vars.h b/agent/mibgroup/mibII/vacm_vars.h
index 471f759..8093157 100644
--- a/agent/mibgroup/mibII/vacm_vars.h
+++ b/agent/mibgroup/mibII/vacm_vars.h
@@ -7,7 +7,7 @@
 
 #include <net-snmp/library/vacm.h>
 
-config_require(util_funcs/header_generic)
+config_require(util_funcs)
 config_require(mibII/vacm_context)
 config_require(mibII/vacm_conf)
 config_add_mib(SNMP-VIEW-BASED-ACM-MIB)
@@ -19,7 +19,6 @@ config_add_mib(SNMP-COMMUNITY-MIB)
      extern FindVarMethod var_vacm_access;
      extern FindVarMethod var_vacm_view;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
      WriteMethod     write_vacmGroupName;
      WriteMethod     write_vacmSecurityToGroupStatus;
      WriteMethod     write_vacmSecurityToGroupStorageType;
@@ -37,6 +36,7 @@ config_add_mib(SNMP-COMMUNITY-MIB)
      WriteMethod     write_vacmViewStorageType;
      WriteMethod     write_vacmViewType;
 
+
      oid            *access_generate_OID(oid * prefix, size_t prefixLen,
                                          struct vacm_accessEntry *aptr,
                                          size_t * length);
@@ -67,7 +67,7 @@ config_add_mib(SNMP-COMMUNITY-MIB)
                                     size_t * subtreeLen);
      struct vacm_viewEntry *view_parse_viewEntry(oid * name,
                                                  size_t name_len);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
+
 
 
 #define OID_SNMPVACMMIB		SNMP_OID_SNMPMODULES, 16
diff --git a/agent/mibgroup/mibII/var_route.c b/agent/mibgroup/mibII/var_route.c
index 52fcd86..eac70ac 100644
--- a/agent/mibgroup/mibII/var_route.c
+++ b/agent/mibgroup/mibII/var_route.c
@@ -41,12 +41,11 @@ PERFORMANCE OF THIS SOFTWARE.
  * (schoenfr at ibr.cs.tu-bs.de) 1994/1995.
  * Linux additions taken from CMU to UCD stack by Jennifer Bray of Origin
  * (jbray at origin-at.co.uk) 1997
- * Support for sysctl({CTL_NET,PF_ROUTE,...) by Simon Leinen
+ * Support for system({CTL_NET,PF_ROUTE,...) by Simon Leinen
  * (simon at switch.ch) 1997
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include "route_headers.h"
 #define CACHE_TIME (120)        /* Seconds */
@@ -62,8 +61,7 @@ PERFORMANCE OF THIS SOFTWARE.
 #include "kernel.h"
 #include "interfaces.h"
 #include "struct.h"
-
-netsnmp_feature_child_of(get_routes, libnetsnmpmibs)
+#include "util_funcs.h"
 
 #ifndef  MIN
 #define  MIN(a,b)                     (((a) < (b)) ? (a) : (b))
@@ -315,19 +313,17 @@ static int      rtsize = 0;
 static mib_ipRouteEnt *rt = (mib_ipRouteEnt *) 0;
 static void     Route_Scan_Reload(void);
 #elif !defined(solaris2)
-static RTENTRY **rthead = NULL;
+static RTENTRY **rthead = 0;
 static int      rtsize = 0, rtallocate = 0;
 
 static void     Route_Scan_Reload(void);
 
-#ifndef NETSNMP_FEATURE_REMOVE_GET_ROUTES
 RTENTRY **netsnmp_get_routes(size_t *size) {
     Route_Scan_Reload();
     if (size)
         *size = rtsize;
     return rthead;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_GET_ROUTES */
 #endif                          /* hpux11 */
 
 #if !(defined(linux) || defined(solaris2) || defined(hpux11)) && defined(RTHOST_SYMBOL) && defined(RTNET_SYMBOL)
@@ -436,8 +432,7 @@ var_ipRouteEntry(struct variable * vp,
      * IPADDR starts at offset 10.
      */
     register int    Save_Valid, result, RtIndex;
-    static size_t   saveNameLen = 0;
-    static int      saveExact = 0, saveRtIndex = 0;
+    static int      saveNameLen = 0, saveExact = 0, saveRtIndex = 0;
     static oid      saveName[MAX_OID_LEN], Current[MAX_OID_LEN];
     u_char         *cp;
     oid            *op;
@@ -767,10 +762,6 @@ var_ipRouteEntry(struct variable * vp,
         if (getMibstat(MIB_IP_ROUTE, &entry, sizeof(mib2_ipRouteEntry_t),
                        req_type, &IP_Cmp_Route, &Nextentry) != 0)
             break;
-#ifdef HAVE_DEFINED_IRE_CACHE
-        if(entry.ipRouteInfo.re_ire_type&IRE_CACHE)
-            continue;
-#endif /* HAVE_DEFINED_IRE_CACHE */
         COPY_IPADDR(cp, (u_char *) & entry.ipRouteDest, op,
                     current + IP_ROUTEADDR_OFF);
         if (exact) {
@@ -874,7 +865,7 @@ var_ipRouteEntry(struct variable * vp,
 static int      qsort_compare(const void *, const void *);
 #endif
 
-#if defined(RTENTRY_4_4) || defined(RTENTRY_RT_NEXT) || defined (hpux11)
+#if defined(RTENTRY_4_4) || defined(RTENTRY_RT_NEXT) || defined(hpux11)
 
 #if defined(RTENTRY_4_4) && !defined(hpux11)
 void
@@ -884,7 +875,7 @@ load_rtentries(struct radix_node *pt)
     RTENTRY         rt;
     struct ifnet    ifnet;
     char            name[16], temp[16];
-#if !HAVE_STRUCT_IFNET_IF_XNAME
+#if !STRUCT_IFNET_HAS_IF_XNAME
     register char  *cp;
 #endif
 
@@ -917,9 +908,9 @@ load_rtentries(struct radix_node *pt)
                 DEBUGMSGTL(("mibII/var_route", "klookup failed\n"));
                 return;
             }
-#if HAVE_STRUCT_IFNET_IF_XNAME
+#if STRUCT_IFNET_HAS_IF_XNAME
 #if defined(netbsd1) || defined(openbsd2)
-            strlcpy(name, ifnet.if_xname, sizeof(name));
+            strncpy(name, ifnet.if_xname, sizeof name);
 #else
             if (!NETSNMP_KLOOKUP(ifnet.if_xname, name, sizeof name)) {
                 DEBUGMSGTL(("mibII/var_route", "klookup failed\n"));
@@ -928,10 +919,6 @@ load_rtentries(struct radix_node *pt)
 #endif
             name[sizeof(name) - 1] = '\0';
 #else
-#ifdef NETSNMP_FEATURE_CHECKIN
-            /* this exists here just so we don't copy ifdef logic elsewhere */
-            netsnmp_feature_require(string_append_int);
-#endif
             if (!NETSNMP_KLOOKUP(ifnet.if_name, name, sizeof name)) {
                 DEBUGMSGTL(("mibII/var_route", "klookup failed\n"));
                 return;
@@ -940,9 +927,6 @@ load_rtentries(struct radix_node *pt)
             cp = (char *) strchr(name, '\0');
             string_append_int(cp, ifnet.if_unit);
 #endif
-#ifdef NETSNMP_FEATURE_CHECKIN
-            netsnmp_feature_require(interface_legacy)
-#endif /* NETSNMP_FEATURE_CHECKIN */
             Interface_Scan_Init();
             rt.rt_unit = 0;
             while (Interface_Scan_Next
@@ -1047,10 +1031,10 @@ Route_Scan_Reload(void)
     char            name[16], temp[16];
     int             hashsize;
 #endif
-    static time_t   Time_Of_Last_Reload;
+    static int      Time_Of_Last_Reload = 0;
     struct timeval  now;
 
-    netsnmp_get_monotonic_clock(&now);
+    gettimeofday(&now, (struct timezone *) 0);
     if (Time_Of_Last_Reload + CACHE_TIME > now.tv_sec)
         return;
     Time_Of_Last_Reload = now.tv_sec;
@@ -1092,11 +1076,6 @@ Route_Scan_Reload(void)
     }
 
 #else                           /* rtentry is a BSD 4.3 compat */
-#ifdef NETSNMP_FEATURE_CHECKIN
-    /* this exists here just so we don't copy ifdef logic elsewhere */
-    netsnmp_feature_require(string_append_int);
-    netsnmp_feature_require(interface_legacy)
-#endif
     for (table = 0; table < NUM_ROUTE_SYMBOLS; table++) {
         auto_nlist(RTHASHSIZE_SYMBOL, (char *) &hashsize,
                    sizeof(hashsize));
@@ -1181,8 +1160,6 @@ Route_Scan_Reload(void)
 #else
 
 #if HAVE_SYS_MBUF_H
-netsnmp_feature_require(string_append_int)
-netsnmp_feature_require(interface_legacy)
 static void
 Route_Scan_Reload(void)
 {
@@ -1193,11 +1170,11 @@ Route_Scan_Reload(void)
     int             i, table;
     register char  *cp;
     char            name[16], temp[16];
-    static time_t   Time_Of_Last_Reload;
+    static int      Time_Of_Last_Reload = 0;
     struct timeval  now;
     int             hashsize;
 
-    netsnmp_get_monotonic_clock(&now);
+    gettimeofday(&now, (struct timezone *) 0);
     if (Time_Of_Last_Reload + CACHE_TIME > now.tv_sec)
         return;
     Time_Of_Last_Reload = now.tv_sec;
@@ -1309,10 +1286,10 @@ Route_Scan_Reload(void)
     char            line[256];
     struct rtentry *rt;
     char            name[16];
-    static time_t   Time_Of_Last_Reload;
+    static int      Time_Of_Last_Reload = 0;
     struct timeval  now;
 
-    netsnmp_get_monotonic_clock(&now);
+    gettimeofday(&now, (struct timezone *) 0);
     if (Time_Of_Last_Reload + CACHE_TIME > now.tv_sec)
         return;
     Time_Of_Last_Reload = now.tv_sec;
@@ -1336,15 +1313,15 @@ Route_Scan_Reload(void)
     rtsize = 0;
 
     if (!(in = fopen("/proc/net/route", "r"))) {
-        NETSNMP_LOGONCE((LOG_ERR, "cannot open /proc/net/route - burps\n"));
+        snmp_log(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, metric;
-        unsigned        flags, use;
+        int             refcnt, flags, metric;
+        unsigned        use;
 
         rt = &rtent;
         memset((char *) rt, (0), sizeof(*rt));
@@ -1355,18 +1332,22 @@ Route_Scan_Reload(void)
          * 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 %d %u %d %x %*d %*d %*d\n",
+        if (8 != sscanf(line, "%s %x %x %x %u %d %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));
+        strncpy(name, rt->rt_dev, sizeof(name));
+        name[ sizeof(name)-1 ] = 0;
 
         rt->rt_flags = flags, rt->rt_refcnt = refcnt;
         rt->rt_use = use, rt->rt_metric = metric;
@@ -1462,7 +1443,7 @@ qsort_compare(const void *v1, const void *v2)
 
 #endif                          /* solaris2 */
 
-#elif defined(HAVE_IPHLPAPI_H)  /* WIN32 cygwin */
+#else                           /* WIN32 cygwin */
 #include <iphlpapi.h>
 #ifndef MIB_IPPROTO_NETMGMT
 #define MIB_IPPROTO_NETMGMT 3
@@ -1486,7 +1467,7 @@ var_ipRouteEntry(struct variable *vp,
      * 1.3.6.1.2.1.4.21.1.?.A.B.C.D,  where A.B.C.D is IP address.
      * IPADDR starts at offset 10.
      */
-    register int    Save_Valid, result, RtIndex = 0;
+    register int    Save_Valid, result, RtIndex;
     static int      saveNameLen = 0, saveExact = 0, saveRtIndex =
         0, rtsize = 0;
     static oid      saveName[MAX_OID_LEN], Current[MAX_OID_LEN];
@@ -1496,7 +1477,9 @@ var_ipRouteEntry(struct variable *vp,
     DWORD           dwActualSize = 0;
     static PMIB_IPFORWARDTABLE pIpRtrTable = NULL;
     struct timeval  now;
-    static time_t    Time_Of_Last_Reload;
+    static long     Time_Of_Last_Reload = 0;
+    u_char          dest_addr[4];
+    MIB_IPFORWARDROW temp_row;
     static in_addr_t addr_ret;
 
 
@@ -1513,7 +1496,7 @@ var_ipRouteEntry(struct variable *vp,
          */
         route_row = (PMIB_IPFORWARDROW) malloc(sizeof(MIB_IPFORWARDROW));
     }
-    netsnmp_get_monotonic_clock(&now);
+    gettimeofday(&now, (struct timezone *) 0);
     if ((rtsize <= 1) || (Time_Of_Last_Reload + 5 <= now.tv_sec))
         Save_Valid = 0;
     else
@@ -1591,16 +1574,12 @@ var_ipRouteEntry(struct variable *vp,
              * for creation of new row, only ipNetToMediaTable case is considered 
              */
             if (*length == 14) {
-                u_char           dest_addr[4];
-                MIB_IPFORWARDROW temp_row;
-
                 create_flag = 1;
                 *write_method = write_rte;
                 dest_addr[0] = (u_char) name[10];
                 dest_addr[1] = (u_char) name[11];
                 dest_addr[2] = (u_char) name[12];
                 dest_addr[3] = (u_char) name[13];
-                memset(&temp_row, 0, sizeof(temp_row));
                 temp_row.dwForwardDest = *((DWORD *) dest_addr);
                 temp_row.dwForwardPolicy = 0;
                 temp_row.dwForwardProto = MIB_IPPROTO_NETMGMT;
diff --git a/agent/mibgroup/mibII/var_route.h b/agent/mibgroup/mibII/var_route.h
index 7862c43..91ecee8 100644
--- a/agent/mibgroup/mibII/var_route.h
+++ b/agent/mibgroup/mibII/var_route.h
@@ -5,7 +5,7 @@
 #ifndef _MIBGROUP_VAR_ROUTE_H
 #define _MIBGROUP_VAR_ROUTE_H
 
-config_require(mibII/ip)
+config_require(mibII/ip util_funcs)
 config_arch_require(solaris2, kernel_sunos5)
 
      void            init_var_route(void);
diff --git a/agent/mibgroup/mibincl.h b/agent/mibgroup/mibincl.h
index 3d48768..28ed599 100644
--- a/agent/mibgroup/mibincl.h
+++ b/agent/mibgroup/mibincl.h
@@ -12,7 +12,11 @@
 #include <malloc.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
diff --git a/agent/mibgroup/misc/ipfwacc.c b/agent/mibgroup/misc/ipfwacc.c
index cca9871..d4fe67d 100644
--- a/agent/mibgroup/misc/ipfwacc.c
+++ b/agent/mibgroup/misc/ipfwacc.c
@@ -22,7 +22,7 @@
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
-#include "util_funcs/header_simple_table.h"
+#include "util_funcs.h"
 #include "ipfwacc.h"
 
 /*
@@ -74,16 +74,16 @@ readrule(unsigned int number)
     /*
      * get rid of "IP accounting rules" line
      */
-    if (!fgets((char *) rule, sizeof(rule), f)) {
+    if (!fgets(rule, sizeof(rule), f)) {
         fclose(f);
         return 0;
     }
     for (i = 1; i != number; i++)
-        if (!fgets((char *) rule, sizeof(rule), f)) {
+        if (!fgets(rule, sizeof(rule), f)) {
             fclose(f);
             return (number ? 0 : (i - 1));
         }
-    if (!fgets((char *) rule, sizeof(rule), f)) {
+    if (!fgets(rule, sizeof(rule), f)) {
         fclose(f);
         return 0;
     }
@@ -185,58 +185,40 @@ getnumeric(int skip)
  */
 
 struct variable2 ipfwacc_variables[] = {
-    {IPFWACCINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCINDEX}},
-    {IPFWACCSRCADDR, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCSRCADDR}},
-    {IPFWACCSRCNM, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCSRCNM}},
-    {IPFWACCDSTADDR, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCDSTADDR}},
-    {IPFWACCDSTNM, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCDSTNM}},
-    {IPFWACCVIANAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCVIANAME}},
-    {IPFWACCVIAADDR, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCVIAADDR}},
-    {IPFWACCPROTO, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCPROTO}},
-    {IPFWACCBIDIR, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCBIDIR}},
-    {IPFWACCDIR, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCDIR}},
-    {IPFWACCBYTES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCBYTES}},
-    {IPFWACCPACKETS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCPACKETS}},
-    {IPFWACCNSRCPRTS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCNSRCPRTS}},
-    {IPFWACCNDSTPRTS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCNDSTPRTS}},
-    {IPFWACCSRCISRNG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCSRCISRNG}},
-    {IPFWACCDSTISRNG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCDSTISRNG}},
-    {IPFWACCPORT1, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCPORT1}},
-    {IPFWACCPORT2, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCPORT2}},
-    {IPFWACCPORT3, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCPORT3}},
-    {IPFWACCPORT4, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCPORT4}},
-    {IPFWACCPORT5, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCPORT5}},
-    {IPFWACCPORT6, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCPORT6}},
-    {IPFWACCPORT7, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCPORT7}},
-    {IPFWACCPORT8, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCPORT8}},
-    {IPFWACCPORT9, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCPORT9}},
-    {IPFWACCPORT10, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ipfwacc, 1, {IPFWACCPORT10}}
+    {IPFWACCINDEX, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCINDEX}},
+    {IPFWACCSRCADDR, ASN_IPADDRESS, RONLY, var_ipfwacc, 1,
+     {IPFWACCSRCADDR}},
+    {IPFWACCSRCNM, ASN_IPADDRESS, RONLY, var_ipfwacc, 1, {IPFWACCSRCNM}},
+    {IPFWACCDSTADDR, ASN_IPADDRESS, RONLY, var_ipfwacc, 1,
+     {IPFWACCDSTADDR}},
+    {IPFWACCDSTNM, ASN_IPADDRESS, RONLY, var_ipfwacc, 1, {IPFWACCDSTNM}},
+    {IPFWACCVIANAME, ASN_OCTET_STR, RONLY, var_ipfwacc, 1,
+     {IPFWACCVIANAME}},
+    {IPFWACCVIAADDR, ASN_IPADDRESS, RONLY, var_ipfwacc, 1,
+     {IPFWACCVIAADDR}},
+    {IPFWACCPROTO, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCPROTO}},
+    {IPFWACCBIDIR, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCBIDIR}},
+    {IPFWACCDIR, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCDIR}},
+    {IPFWACCBYTES, ASN_COUNTER, RONLY, var_ipfwacc, 1, {IPFWACCBYTES}},
+    {IPFWACCPACKETS, ASN_COUNTER, RONLY, var_ipfwacc, 1, {IPFWACCPACKETS}},
+    {IPFWACCNSRCPRTS, ASN_INTEGER, RONLY, var_ipfwacc, 1,
+     {IPFWACCNSRCPRTS}},
+    {IPFWACCNDSTPRTS, ASN_INTEGER, RONLY, var_ipfwacc, 1,
+     {IPFWACCNDSTPRTS}},
+    {IPFWACCSRCISRNG, ASN_INTEGER, RONLY, var_ipfwacc, 1,
+     {IPFWACCSRCISRNG}},
+    {IPFWACCDSTISRNG, ASN_INTEGER, RONLY, var_ipfwacc, 1,
+     {IPFWACCDSTISRNG}},
+    {IPFWACCPORT1, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCPORT1}},
+    {IPFWACCPORT2, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCPORT2}},
+    {IPFWACCPORT3, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCPORT3}},
+    {IPFWACCPORT4, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCPORT4}},
+    {IPFWACCPORT5, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCPORT5}},
+    {IPFWACCPORT6, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCPORT6}},
+    {IPFWACCPORT7, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCPORT7}},
+    {IPFWACCPORT8, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCPORT8}},
+    {IPFWACCPORT9, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCPORT9}},
+    {IPFWACCPORT10, ASN_INTEGER, RONLY, var_ipfwacc, 1, {IPFWACCPORT10}}
 };
 
 oid             ipfwacc_variables_oid[] =
diff --git a/agent/mibgroup/misc/ipfwacc.h b/agent/mibgroup/misc/ipfwacc.h
index 639c739..d9b6e61 100644
--- a/agent/mibgroup/misc/ipfwacc.h
+++ b/agent/mibgroup/misc/ipfwacc.h
@@ -6,10 +6,10 @@
 #define _MIBGROUP_IPFWACC_H
 
 /*
- * we use header_simple_table from the util_funcs module
+ * we use checkmib from the util_funcs module 
  */
 
-config_require(util_funcs/header_simple_table)
+config_require(util_funcs)
 
     /*
      * add the mib we implement to the list of default mibs to load 
diff --git a/agent/mibgroup/notification-log-mib/notification_log.c b/agent/mibgroup/notification-log-mib/notification_log.c
index a12a338..bf822f0 100644
--- a/agent/mibgroup/notification-log-mib/notification_log.c
+++ b/agent/mibgroup/notification-log-mib/notification_log.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <sys/types.h>
 #if HAVE_NETINET_IN_H
@@ -17,15 +16,8 @@
 #include <net-snmp/agent/table.h>
 #include <net-snmp/agent/table_data.h>
 #include <net-snmp/agent/table_dataset.h>
-#include "net-snmp/agent/sysORTable.h"
 #include "notification_log.h"
 
-netsnmp_feature_require(register_ulong_instance_context)
-netsnmp_feature_require(register_read_only_counter32_instance_context)
-netsnmp_feature_require(delete_table_data_set)
-netsnmp_feature_require(table_dataset)
-netsnmp_feature_require(date_n_time)
-
 /*
  * column number definitions for table nlmLogTable
  */
@@ -65,8 +57,6 @@ static u_long   max_age = 1440; /* 1440 = 24 hours, which is the mib default */
 static netsnmp_table_data_set *nlmLogTable;
 static netsnmp_table_data_set *nlmLogVarTable;
 
-static oid nlm_module_oid[] = { SNMP_OID_MIB2, 92 }; /* NOTIFICATION-LOG-MIB::notificationLogMIB */
-
 static void
 netsnmp_notif_log_remove_oldest(int count)
 {
@@ -136,9 +126,11 @@ check_log_size(unsigned int clientreg, void *clientarg)
     netsnmp_table_row *row;
     netsnmp_table_data_set_storage *data;
     u_long          count = 0;
+    struct timeval  now;
     u_long          uptime;
 
-    uptime = netsnmp_get_agent_uptime();
+    gettimeofday(&now, NULL);
+    uptime = netsnmp_timeval_uptime(&now);
 
     if (!nlmLogTable || !nlmLogTable->table )  {
         DEBUGMSGTL(("notification_log", "missing log table\n"));
@@ -150,11 +142,11 @@ check_log_size(unsigned int clientreg, void *clientarg)
      */
     count = netsnmp_table_set_num_rows(nlmLogTable);
     DEBUGMSGTL(("notification_log",
-                "logged notifications %lu; max %lu\n",
+                "logged notifications %d; max %d\n",
                     count, max_logged));
     if (count > max_logged) {
         count = count - max_logged;
-        DEBUGMSGTL(("notification_log", "removing %lu extra notifications\n",
+        DEBUGMSGTL(("notification_log", "removing %d extra notifications\n",
                     count));
         netsnmp_notif_log_remove_oldest(count);
     }
@@ -172,13 +164,13 @@ check_log_size(unsigned int clientreg, void *clientarg)
         data = (netsnmp_table_data_set_storage *) row->data;
         data = netsnmp_table_data_set_find_column(data, COLUMN_NLMLOGTIME);
 
-        if (uptime < ((u_long)(*(data->data.integer) + max_age * 100 * 60)))
+        if (uptime < ((long)(*(data->data.integer) + max_age * 100 * 60)))
             break;
         ++count;
     }
 
     if (count) {
-        DEBUGMSGTL(("notification_log", "removing %lu expired notifications\n",
+        DEBUGMSGTL(("notification_log", "removing %d expired notifications\n",
                     count));
         netsnmp_notif_log_remove_oldest(count);
     }
@@ -226,6 +218,15 @@ initialize_table_nlmLogVariableTable(const char * context)
     netsnmp_table_dataset_add_index(table_set, ASN_UNSIGNED);
 
     /*
+     * adding column nlmLogVariableIndex of type ASN_UNSIGNED and access
+     * of NoAccess 
+     */
+    DEBUGMSGTL(("initialize_table_nlmLogVariableTable",
+                "adding column nlmLogVariableIndex (#1) of type ASN_UNSIGNED to table nlmLogVariableTable\n"));
+    netsnmp_table_set_add_default_row(table_set,
+                                      COLUMN_NLMLOGVARIABLEINDEX,
+                                      ASN_UNSIGNED, 0, NULL, 0);
+    /*
      * adding column nlmLogVariableID of type ASN_OBJECT_ID and access of
      * ReadOnly 
      */
@@ -474,10 +475,8 @@ notification_log_config_handler(netsnmp_mib_handler *handler,
      * configuration variables get set to a value and thus
      * notifications must be possibly deleted from our archives.
      */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     if (reqinfo->mode == MODE_SET_COMMIT)
         check_log_size(0, NULL);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     return SNMP_ERR_NOERROR;
 }
 
@@ -558,9 +557,6 @@ init_notification_log(void)
                                NETSNMP_DS_APPLICATION_ID,
                                NETSNMP_DS_AGENT_NOTIF_LOG_MAX);
 #endif
-
-    REGISTER_SYSOR_ENTRY(nlm_module_oid, 
-        "The MIB module for logging SNMP Notifications.");
 }
 
 void
@@ -568,16 +564,13 @@ shutdown_notification_log(void)
 {
     max_logged = 0;
     check_log_size(0, NULL);
-    netsnmp_delete_table_data_set(nlmLogTable);
-    nlmLogTable = NULL;
-
-    UNREGISTER_SYSOR_ENTRY(nlm_module_oid);
 }
 
 void
 log_notification(netsnmp_pdu *pdu, netsnmp_transport *transport)
 {
     long            tmpl;
+    struct timeval  now;
     netsnmp_table_row *row;
 
     static u_long   default_num = 0;
@@ -592,7 +585,6 @@ log_notification(netsnmp_pdu *pdu, netsnmp_transport *transport)
     u_long          vbcount = 0;
     u_long          tmpul;
     int             col;
-    netsnmp_pdu    *orig_pdu = pdu;
 
     if (!nlmLogVarTable
         || netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
@@ -617,9 +609,10 @@ log_notification(netsnmp_pdu *pdu, netsnmp_transport *transport)
     /*
      * add the data 
      */
-    tmpl = netsnmp_get_agent_uptime();
+    gettimeofday(&now, NULL);
+    tmpl = netsnmp_timeval_uptime(&now);
     netsnmp_set_row_column(row, COLUMN_NLMLOGTIME, ASN_TIMETICKS,
-                           &tmpl, sizeof(tmpl));
+                           (u_char *) & tmpl, sizeof(tmpl));
     time(&timetnow);
     logdate = date_n_time(&timetnow, &logdate_size);
     netsnmp_set_row_column(row, COLUMN_NLMLOGDATEANDTIME, ASN_OCTET_STR,
@@ -649,23 +642,22 @@ log_notification(netsnmp_pdu *pdu, netsnmp_transport *transport)
     }
     if (transport)
         netsnmp_set_row_column(row, COLUMN_NLMLOGENGINETDOMAIN,
-                               ASN_OBJECT_ID,
-                               transport->domain,
-                               sizeof(oid) * transport->domain_length);
+                                     ASN_OBJECT_ID,
+                                     (const u_char *) transport->domain,
+                                     sizeof(oid) * transport->domain_length);
     netsnmp_set_row_column(row, COLUMN_NLMLOGCONTEXTENGINEID,
                            ASN_OCTET_STR, pdu->contextEngineID,
                            pdu->contextEngineIDLen);
     netsnmp_set_row_column(row, COLUMN_NLMLOGCONTEXTNAME, ASN_OCTET_STR,
                            pdu->contextName, pdu->contextNameLen);
 
-    if (pdu->command == SNMP_MSG_TRAP)
-	pdu = convert_v1pdu_to_v2(orig_pdu);
     for (vptr = pdu->variables; vptr; vptr = vptr->next_variable) {
         if (snmp_oid_compare(snmptrapoid, snmptrapoid_len,
                              vptr->name, vptr->name_length) == 0) {
             netsnmp_set_row_column(row, COLUMN_NLMLOGNOTIFICATIONID,
                                    ASN_OBJECT_ID, vptr->val.string,
                                    vptr->val_len);
+
         } else {
             netsnmp_table_row *myrow;
             myrow = netsnmp_create_table_data_row();
@@ -685,7 +677,7 @@ log_notification(netsnmp_pdu *pdu, netsnmp_transport *transport)
              * OID 
              */
             netsnmp_set_row_column(myrow, COLUMN_NLMLOGVARIABLEID,
-                                   ASN_OBJECT_ID, vptr->name,
+                                   ASN_OBJECT_ID, (u_char *) vptr->name,
                                    vptr->name_length * sizeof(oid));
 
             /*
@@ -747,7 +739,7 @@ log_notification(netsnmp_pdu *pdu, netsnmp_transport *transport)
                 continue;
             }
             netsnmp_set_row_column(myrow, COLUMN_NLMLOGVARIABLEVALUETYPE,
-                                   ASN_INTEGER, & tmpul,
+                                   ASN_INTEGER, (u_char *) & tmpul,
                                    sizeof(tmpul));
             netsnmp_set_row_column(myrow, col, vptr->type,
                                    vptr->val.string, vptr->val_len);
@@ -757,9 +749,6 @@ log_notification(netsnmp_pdu *pdu, netsnmp_transport *transport)
         }
     }
 
-    if (pdu != orig_pdu)
-        snmp_free_pdu( pdu );
-
     /*
      * store the row 
      */
diff --git a/agent/mibgroup/notification/snmpNotifyFilterProfileTable.c b/agent/mibgroup/notification/snmpNotifyFilterProfileTable.c
index b12cdc8..461526c 100644
--- a/agent/mibgroup/notification/snmpNotifyFilterProfileTable.c
+++ b/agent/mibgroup/notification/snmpNotifyFilterProfileTable.c
@@ -10,6 +10,9 @@
 #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
@@ -23,16 +26,12 @@
 /*
  * minimal include directives 
  */
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
 #include "header_complex.h"
 #include "snmpNotifyFilterProfileTable.h"
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(header_complex_find_entry)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 /*
  * snmpNotifyFilterProfileTable_variables_oid:
@@ -58,13 +57,13 @@ struct variable2 snmpNotifyFilterProfileTable_variables[] = {
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define   SNMPNOTIFYFILTERPROFILENAME  3
-    {SNMPNOTIFYFILTERPROFILENAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {SNMPNOTIFYFILTERPROFILENAME, ASN_OCTET_STR, RWRITE,
      var_snmpNotifyFilterProfileTable, 2, {1, 1}},
 #define   SNMPNOTIFYFILTERPROFILESTORTYPE  4
-    {SNMPNOTIFYFILTERPROFILESTORTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {SNMPNOTIFYFILTERPROFILESTORTYPE, ASN_INTEGER, RWRITE,
      var_snmpNotifyFilterProfileTable, 2, {1, 2}},
 #define   SNMPNOTIFYFILTERPROFILEROWSTATUS  5
-    {SNMPNOTIFYFILTERPROFILEROWSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {SNMPNOTIFYFILTERPROFILEROWSTATUS, ASN_INTEGER, RWRITE,
      var_snmpNotifyFilterProfileTable, 2, {1, 3}},
 
 };
@@ -135,7 +134,7 @@ snmpNotifyFilterProfileTable_add(struct snmpNotifyFilterProfileTable_data
                                  *thedata)
 {
     netsnmp_variable_list *vars = NULL;
-    int retVal;
+
 
     DEBUGMSGTL(("snmpNotifyFilterProfileTable", "adding data...  "));
     /*
@@ -147,17 +146,13 @@ snmpNotifyFilterProfileTable_add(struct snmpNotifyFilterProfileTable_data
                               (u_char *) thedata->snmpTargetParamsName,
                               thedata->snmpTargetParamsNameLen);
 
-    if (header_complex_maybe_add_data(&snmpNotifyFilterProfileTableStorage, vars,
-                                      thedata, 1) != NULL){
-       DEBUGMSGTL(("snmpNotifyFilterProfileTable", "registered an entry\n"));
-       retVal = SNMPERR_SUCCESS;
-    }else{
-       retVal = SNMPERR_GENERR;  	
-    }
+    header_complex_add_data(&snmpNotifyFilterProfileTableStorage, vars,
+                            thedata);
+    DEBUGMSGTL(("snmpNotifyFilterProfileTable", "registered an entry\n"));
 
 
     DEBUGMSGTL(("snmpNotifyFilterProfileTable", "done.\n"));
-    return retVal;
+    return SNMPERR_SUCCESS;
 }
 
 
@@ -194,7 +189,6 @@ parse_snmpNotifyFilterProfileTable(const char *token, char *line)
                               &StorageTmp->snmpNotifyFilterProfileNameLen);
     if (StorageTmp->snmpNotifyFilterProfileName == NULL) {
         config_perror("invalid specification for snmpNotifyFilterProfileName");
-        SNMP_FREE(StorageTmp);
         return;
     }
 
@@ -208,11 +202,7 @@ parse_snmpNotifyFilterProfileTable(const char *token, char *line)
                               &StorageTmp->
                               snmpNotifyFilterProfileRowStatus, &tmpint);
 
-    if (snmpNotifyFilterProfileTable_add(StorageTmp) != SNMPERR_SUCCESS){
-        SNMP_FREE(StorageTmp->snmpTargetParamsName);
-        SNMP_FREE(StorageTmp->snmpNotifyFilterProfileName);
-        SNMP_FREE(StorageTmp);
-    }
+    snmpNotifyFilterProfileTable_add(StorageTmp);
 
     DEBUGMSGTL(("snmpNotifyFilterProfileTable", "done.\n"));
 }
@@ -230,6 +220,7 @@ store_snmpNotifyFilterProfileTable(int majorID, int minorID,
 {
     char            line[SNMP_MAXBUF];
     char           *cptr;
+    size_t          tmpint;
     struct snmpNotifyFilterProfileTable_data *StorageTmp;
     struct header_complex_index *hcindex;
 
@@ -263,12 +254,12 @@ store_snmpNotifyFilterProfileTable(int majorID, int minorID,
                 read_config_store_data(ASN_INTEGER, cptr,
                                        &StorageTmp->
                                        snmpNotifyFilterProfileStorType,
-                                       NULL);
+                                       &tmpint);
             cptr =
                 read_config_store_data(ASN_INTEGER, cptr,
                                        &StorageTmp->
                                        snmpNotifyFilterProfileRowStatus,
-                                       NULL);
+                                       &tmpint);
 
             snmpd_store_config(line);
         }
@@ -312,7 +303,6 @@ var_snmpNotifyFilterProfileTable(struct variable *vp,
     }
 
     switch (vp->magic) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case SNMPNOTIFYFILTERPROFILENAME:
         *write_method = write_snmpNotifyFilterProfileName;
         break;
@@ -324,7 +314,7 @@ var_snmpNotifyFilterProfileTable(struct variable *vp,
     case SNMPNOTIFYFILTERPROFILEROWSTATUS:
         *write_method = write_snmpNotifyFilterProfileRowStatus;
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+
     default:
         *write_method = NULL;
     }
@@ -354,7 +344,6 @@ var_snmpNotifyFilterProfileTable(struct variable *vp,
     default:
         ERROR_MSG("");
     }
-
     return NULL;
 }
 
@@ -362,8 +351,6 @@ var_snmpNotifyFilterProfileTable(struct variable *vp,
 
 static struct snmpNotifyFilterProfileTable_data *StorageNew;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
-
 int
 write_snmpNotifyFilterProfileName(int action,
                                   u_char * var_val,
@@ -414,7 +401,7 @@ write_snmpNotifyFilterProfileName(int action,
          */
         tmpvar = StorageTmp->snmpNotifyFilterProfileName;
         tmplen = StorageTmp->snmpNotifyFilterProfileNameLen;
-        StorageTmp->snmpNotifyFilterProfileName = (char*)calloc(1, var_val_len + 1);
+        StorageTmp->snmpNotifyFilterProfileName = calloc(1, var_val_len + 1);
         if (NULL == StorageTmp->snmpNotifyFilterProfileName)
             return SNMP_ERR_RESOURCEUNAVAILABLE;
         break;
@@ -454,7 +441,6 @@ write_snmpNotifyFilterProfileName(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -547,7 +533,7 @@ write_snmpNotifyFilterProfileStorType(int action,
          * 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;
@@ -662,8 +648,6 @@ write_snmpNotifyFilterProfileRowStatus(int action,
 
             StorageNew =
                 SNMP_MALLOC_STRUCT(snmpNotifyFilterProfileTable_data);
-            if (StorageNew == NULL)
-                return SNMP_ERR_GENERR;
             memdup((u_char **) & (StorageNew->snmpTargetParamsName),
                    vars->val.string, vars->val_len);
             StorageNew->snmpTargetParamsNameLen = vars->val_len;
@@ -800,15 +784,12 @@ write_snmpNotifyFilterProfileRowStatus(int action,
                 StorageTmp->snmpNotifyFilterProfileRowStatus = RS_NOTINSERVICE;
             StorageNew = NULL;
         }
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
 }
 
 
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
-
 
 char           *
 get_FilterProfileName(const char *paramName, size_t paramName_len,
@@ -821,7 +802,7 @@ get_FilterProfileName(const char *paramName, size_t paramName_len,
      * put requested info into var structure 
      */
     snmp_varlist_add_variable(&vars, NULL, 0, ASN_PRIV_IMPLIED_OCTET_STR,
-                              (const u_char *) paramName, paramName_len);
+                              (u_char *) paramName, paramName_len);
 
     /*
      * get the data from the header_complex storage 
diff --git a/agent/mibgroup/notification/snmpNotifyFilterProfileTable.h b/agent/mibgroup/notification/snmpNotifyFilterProfileTable.h
index 616bcdc..9734cbe 100644
--- a/agent/mibgroup/notification/snmpNotifyFilterProfileTable.h
+++ b/agent/mibgroup/notification/snmpNotifyFilterProfileTable.h
@@ -55,11 +55,9 @@ config_require(header_complex)
                                                         char *);
      SNMPCallback    store_snmpNotifyFilterProfileTable;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
      WriteMethod     write_snmpNotifyFilterProfileName;
      WriteMethod     write_snmpNotifyFilterProfileStorType;
      WriteMethod     write_snmpNotifyFilterProfileRowStatus;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
      char           *get_FilterProfileName(const char *paramName,
                                            size_t paramName_len,
diff --git a/agent/mibgroup/notification/snmpNotifyTable.c b/agent/mibgroup/notification/snmpNotifyTable.c
index 8d09c59..66845ba 100644
--- a/agent/mibgroup/notification/snmpNotifyTable.c
+++ b/agent/mibgroup/notification/snmpNotifyTable.c
@@ -8,9 +8,11 @@
  * This should always be included first before anything else 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <sys/types.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -36,16 +38,11 @@
 #include <net-snmp/agent/agent_callbacks.h>
 #include <net-snmp/agent/agent_trap.h>
 #include <net-snmp/agent/mib_module_config.h>
-#include "net-snmp/agent/sysORTable.h"
 
 #ifdef USING_NOTIFICATION_LOG_MIB_NOTIFICATION_LOG_MODULE
 #   include "notification-log-mib/notification_log.h"
 #endif
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(header_complex_find_entry)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
 SNMPCallback    store_snmpNotifyTable;
 
 /*
@@ -59,9 +56,6 @@ SNMPCallback    store_snmpNotifyTable;
 oid             snmpNotifyTable_variables_oid[] =
     { 1, 3, 6, 1, 6, 3, 13, 1, 1 };
 
-static oid snmpNotifyFullCompliance[] =
-    { SNMP_OID_SNMPMODULES, 13, 3, 1, 3 }; /* SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance */
-
 
 /*
  * variable2 snmpNotifyTable_variables:
@@ -75,17 +69,15 @@ struct variable2 snmpNotifyTable_variables[] = {
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define   SNMPNOTIFYTAG         4
-    {SNMPNOTIFYTAG, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_snmpNotifyTable, 2, {1, 2}},
+    {SNMPNOTIFYTAG, ASN_OCTET_STR, RWRITE, var_snmpNotifyTable, 2, {1, 2}},
 #define   SNMPNOTIFYTYPE        5
-    {SNMPNOTIFYTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_snmpNotifyTable, 2, {1, 3}},
+    {SNMPNOTIFYTYPE, ASN_INTEGER, RWRITE, var_snmpNotifyTable, 2, {1, 3}},
 #define   SNMPNOTIFYSTORAGETYPE  6
-    {SNMPNOTIFYSTORAGETYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_snmpNotifyTable, 2, {1, 4}},
+    {SNMPNOTIFYSTORAGETYPE, ASN_INTEGER, RWRITE, var_snmpNotifyTable, 2,
+     {1, 4}},
 #define   SNMPNOTIFYROWSTATUS   7
-    {SNMPNOTIFYROWSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_snmpNotifyTable, 2, {1, 5}},
+    {SNMPNOTIFYROWSTATUS, ASN_INTEGER, RWRITE, var_snmpNotifyTable, 2,
+     {1, 5}},
 
 };
 /*
@@ -109,8 +101,8 @@ _checkFilter(const char* paramName, netsnmp_pdu *pdu)
     size_t                 profileNameLen;
     struct vacm_viewEntry *vp, *head;
     int                    vb_oid_excluded = 0;
-    extern const oid       snmptrap_oid[];
-    extern const size_t    snmptrap_oid_len;
+    extern oid             snmptrap_oid[];
+    extern size_t          snmptrap_oid_len;
 
     netsnmp_assert(NULL != paramName);
     netsnmp_assert(NULL != pdu);
@@ -218,7 +210,7 @@ send_notifications(int major, int minor, void *serverarg, void *clientarg)
     netsnmp_pdu    *template_pdu = (netsnmp_pdu *) serverarg;
     int             count = 0, send = 0;
 
-    DEBUGMSGTL(("send_notifications", "starting: pdu=%p, vars=%p\n",
+    DEBUGMSGTL(("send_notifications", "starting: pdu=%x, vars=%x\n",
                 template_pdu, template_pdu->variables));
 
     for (hptr = snmpNotifyTableStorage; hptr; hptr = hptr->next) {
@@ -317,15 +309,9 @@ notifyTable_register_notifications(int major, int minor,
     /*
      * address 
      */
-    t = snmp_sess_transport(snmp_sess_pointer(ss));
-    if (!t) {
-        snmp_log(LOG_ERR,
-                "Cannot add new trap destination, transport is closed.");
-        snmp_sess_close(ss);
-        return 0;
-    }
     ptr = snmpTargetAddrTable_create();
     ptr->name = strdup(buf);
+    t = snmp_sess_transport(snmp_sess_pointer(ss));
     memcpy(ptr->tDomain, t->domain, t->domain_length * sizeof(oid));
     ptr->tDomainLen = t->domain_length;
     ptr->tAddressLen = t->remote_length;
@@ -352,10 +338,6 @@ notifyTable_register_notifications(int major, int minor,
         pptr->secModel = ss->securityModel;
         pptr->secLevel = ss->securityLevel;
         pptr->secName = (char *) malloc(ss->securityNameLen + 1);
-        if (pptr->secName == NULL) {
-            snmpTargetParamTable_dispose(pptr);
-            return 0;
-        }
         memcpy((void *) pptr->secName, (void *) ss->securityName,
                ss->securityNameLen);
         pptr->secName[ss->securityNameLen] = 0;
@@ -371,10 +353,6 @@ notifyTable_register_notifications(int major, int minor,
         pptr->secName = NULL;
         if (ss->community && (ss->community_len > 0)) {
             pptr->secName = (char *) malloc(ss->community_len + 1);
-            if (pptr->secName == NULL) {
-                snmpTargetParamTable_dispose(pptr);
-                return 0;
-            }
             memcpy((void *) pptr->secName, (void *) ss->community,
                    ss->community_len);
             pptr->secName[ss->community_len] = 0;
@@ -392,8 +370,6 @@ notifyTable_register_notifications(int major, int minor,
      * notify table 
      */
     nptr = SNMP_MALLOC_STRUCT(snmpNotifyTable_data);
-    if (nptr == NULL)
-        return 0;
     nptr->snmpNotifyName = strdup(buf);
     nptr->snmpNotifyNameLen = strlen(buf);
     nptr->snmpNotifyTag = strdup(buf);
@@ -420,18 +396,18 @@ notifyTable_unregister_notifications(int major, int minor,
                                      void *serverarg, void *clientarg)
 {
     struct header_complex_index *hptr, *nhptr;
+    struct snmpNotifyTable_data *nptr;
 
     for (hptr = snmpNotifyTableStorage; hptr; hptr = nhptr) {
-        struct snmpNotifyTable_data *nptr = hptr->data;
+        nptr = (struct snmpNotifyTable_data *) hptr->data;
         nhptr = hptr->next;
         if (nptr->snmpNotifyStorageType == ST_READONLY) {
             header_complex_extract_entry(&snmpNotifyTableStorage, hptr);
-            free(nptr->snmpNotifyName);
-            free(nptr->snmpNotifyTag);
-            free(nptr);
+            SNMP_FREE(nptr->snmpNotifyName);
+            SNMP_FREE(nptr->snmpNotifyTag);
+            SNMP_FREE(nptr);
         }
     }
-    snmpNotifyTableStorage = NULL;
     return (0);
 }
 
@@ -466,11 +442,9 @@ init_snmpNotifyTable(void)
     snmp_register_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_STORE_DATA,
                            store_snmpNotifyTable, NULL);
 
-#ifndef DISABLE_SNMPV1
     snmp_register_callback(SNMP_CALLBACK_APPLICATION,
                            SNMPD_CALLBACK_SEND_TRAP1, send_notifications,
                            NULL);
-#endif
     snmp_register_callback(SNMP_CALLBACK_APPLICATION,
                            SNMPD_CALLBACK_SEND_TRAP2, send_notifications,
                            NULL);
@@ -485,43 +459,10 @@ init_snmpNotifyTable(void)
      * place any other initialization junk you need here 
      */
 
-    REGISTER_SYSOR_ENTRY(snmpNotifyFullCompliance,
-        "The MIB modules for managing SNMP Notification, plus filtering.");
 
     DEBUGMSGTL(("snmpNotifyTable", "done.\n"));
 }
 
-void
-shutdown_snmpNotifyTable(void)
-{
-    DEBUGMSGTL(("snmpNotifyTable", "shutting down ... "));
-
-    notifyTable_unregister_notifications(SNMP_CALLBACK_APPLICATION,
-                                         SNMPD_CALLBACK_PRE_UPDATE_CONFIG,
-                                         NULL,
-                                         NULL);
-
-    snmp_unregister_callback(SNMP_CALLBACK_APPLICATION,
-                             SNMPD_CALLBACK_PRE_UPDATE_CONFIG,
-                             notifyTable_unregister_notifications, NULL, FALSE);
-    snmp_unregister_callback(SNMP_CALLBACK_APPLICATION,
-                             SNMPD_CALLBACK_REGISTER_NOTIFICATIONS,
-                             notifyTable_register_notifications, NULL, FALSE);
-    snmp_unregister_callback(SNMP_CALLBACK_APPLICATION,
-                             SNMPD_CALLBACK_SEND_TRAP2, send_notifications,
-                             NULL, FALSE);
-#ifndef DISABLE_SNMPV1
-    snmp_unregister_callback(SNMP_CALLBACK_APPLICATION,
-                             SNMPD_CALLBACK_SEND_TRAP1, send_notifications,
-                             NULL, FALSE);
-#endif
-    snmp_unregister_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_STORE_DATA,
-                             store_snmpNotifyTable, NULL, FALSE);
-
-    UNREGISTER_SYSOR_ENTRY(snmpNotifyFullCompliance);
-
-    DEBUGMSGTL(("snmpNotifyTable", "done.\n"));
-}
 
 /*
  * snmpNotifyTable_add(): adds a structure node to our data set 
@@ -530,7 +471,7 @@ int
 snmpNotifyTable_add(struct snmpNotifyTable_data *thedata)
 {
     netsnmp_variable_list *vars = NULL;
-    int retVal;	
+
 
     DEBUGMSGTL(("snmpNotifyTable", "adding data...  "));
     /*
@@ -543,17 +484,12 @@ snmpNotifyTable_add(struct snmpNotifyTable_data *thedata)
 
 
 
-    if (header_complex_maybe_add_data(&snmpNotifyTableStorage, vars, thedata, 1)
-        != NULL){
-    	DEBUGMSGTL(("snmpNotifyTable", "registered an entry\n"));
-	retVal = SNMPERR_SUCCESS;
-    }else{
-        retVal = SNMPERR_GENERR; 
-    }	
+    header_complex_add_data(&snmpNotifyTableStorage, vars, thedata);
+    DEBUGMSGTL(("snmpNotifyTable", "registered an entry\n"));
 
 
     DEBUGMSGTL(("snmpNotifyTable", "done.\n"));
-    return retVal;
+    return SNMPERR_SUCCESS;
 }
 
 
@@ -583,7 +519,6 @@ parse_snmpNotifyTable(const char *token, char *line)
                               &StorageTmp->snmpNotifyNameLen);
     if (StorageTmp->snmpNotifyName == NULL) {
         config_perror("invalid specification for snmpNotifyName");
-        SNMP_FREE(StorageTmp);
         return;
     }
 
@@ -593,7 +528,6 @@ parse_snmpNotifyTable(const char *token, char *line)
                               &StorageTmp->snmpNotifyTagLen);
     if (StorageTmp->snmpNotifyTag == NULL) {
         config_perror("invalid specification for snmpNotifyTag");
-        SNMP_FREE(StorageTmp);
         return;
     }
 
@@ -604,21 +538,15 @@ parse_snmpNotifyTable(const char *token, char *line)
     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;
 
 
-    if (snmpNotifyTable_add(StorageTmp) != SNMPERR_SUCCESS){
-        SNMP_FREE(StorageTmp->snmpNotifyName);
-        SNMP_FREE(StorageTmp->snmpNotifyTag);
-        SNMP_FREE(StorageTmp);
-    }
+
+
+    snmpNotifyTable_add(StorageTmp);
 
 
     DEBUGMSGTL(("snmpNotifyTable", "done.\n"));
@@ -719,7 +647,6 @@ var_snmpNotifyTable(struct variable *vp,
     }
 
     switch (vp->magic) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case SNMPNOTIFYTAG:
         *write_method = write_snmpNotifyTag;
         break;
@@ -732,7 +659,6 @@ var_snmpNotifyTable(struct variable *vp,
     case SNMPNOTIFYROWSTATUS:
         *write_method = write_snmpNotifyRowStatus;
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     default:
         *write_method = NULL;
     }
@@ -741,7 +667,6 @@ var_snmpNotifyTable(struct variable *vp,
         return NULL;
     }
 
-#ifndef NETSNMP_NO_READ_SUPPORT
     switch (vp->magic) {
     case SNMPNOTIFYTAG:
         *var_len = StorageTmp->snmpNotifyTagLen;
@@ -762,7 +687,6 @@ var_snmpNotifyTable(struct variable *vp,
     default:
         ERROR_MSG("");
     }
-#endif /* !NETSNMP_NO_READ_SUPPORT */ 
     return NULL;
 }
 
@@ -791,8 +715,6 @@ snmpTagValid(const char *tag, const size_t tagLen)
 
 static struct snmpNotifyTable_data *StorageNew;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
-
 int
 write_snmpNotifyTag(int action,
                     u_char * var_val,
@@ -827,10 +749,10 @@ write_snmpNotifyTag(int action,
         if (var_val_type != ASN_OCTET_STR) {
             return SNMP_ERR_WRONGTYPE;
         }
-        if (var_val_len > 255) {
+        if (var_val_len < 0 || var_val_len > 255) {
             return SNMP_ERR_WRONGLENGTH;
         }
-        if (!snmpTagValid((char *) var_val, var_val_len)) {
+        if (!snmpTagValid(var_val, var_val_len)) {
             return SNMP_ERR_WRONGVALUE;
         }
         break;
@@ -842,7 +764,7 @@ write_snmpNotifyTag(int action,
          */
         tmpvar = StorageTmp->snmpNotifyTag;
         tmplen = StorageTmp->snmpNotifyTagLen;
-        StorageTmp->snmpNotifyTag = (char*)calloc(1, var_val_len + 1);
+        StorageTmp->snmpNotifyTag = calloc(1, var_val_len + 1);
         if (NULL == StorageTmp->snmpNotifyTag)
             return SNMP_ERR_RESOURCEUNAVAILABLE;
         break;
@@ -878,7 +800,6 @@ write_snmpNotifyTag(int action,
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        snmp_store_needed(NULL);
         break;
     }
 
@@ -1099,7 +1020,7 @@ write_snmpNotifyRowStatus(int action,
             if (StorageNew == NULL) {
                 return SNMP_ERR_RESOURCEUNAVAILABLE;
             }
-            StorageNew->snmpNotifyName = (char*)calloc( 1, vp->val_len + 1 );
+            StorageNew->snmpNotifyName = calloc( 1, vp->val_len + 1 );
             if (StorageNew->snmpNotifyName == NULL) {
                 return SNMP_ERR_RESOURCEUNAVAILABLE;
             }
@@ -1214,9 +1135,7 @@ write_snmpNotifyRowStatus(int action,
             StorageTmp->snmpNotifyRowStatus = RS_NOTINSERVICE;
             StorageNew = NULL;
         }
-        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
 }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
diff --git a/agent/mibgroup/notification/snmpNotifyTable.h b/agent/mibgroup/notification/snmpNotifyTable.h
index 18bf1bd..241c7ce 100644
--- a/agent/mibgroup/notification/snmpNotifyTable.h
+++ b/agent/mibgroup/notification/snmpNotifyTable.h
@@ -57,19 +57,16 @@ config_add_mib(SNMP-NOTIFICATION-MIB)
 
 
      void            init_snmpNotifyTable(void);
-     void            shutdown_snmpNotifyTable(void);
      FindVarMethod   var_snmpNotifyTable;
      void            parse_snmpNotifyTable(const char *, char *);
 
      int             snmpNotifyTable_add(struct snmpNotifyTable_data
                                          *thedata);
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
      WriteMethod     write_snmpNotifyTag;
      WriteMethod     write_snmpNotifyType;
      WriteMethod     write_snmpNotifyStorageType;
      WriteMethod     write_snmpNotifyRowStatus;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
 
 
diff --git a/agent/mibgroup/rmon-mib.h b/agent/mibgroup/rmon-mib.h
deleted file mode 100644
index 6f09df7..0000000
--- a/agent/mibgroup/rmon-mib.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * module to include the modules
- */
-
-config_require(rmon-mib/etherStatsTable)
-config_add_mib(RMON-MIB)
-
-
diff --git a/agent/mibgroup/rmon-mib/data_access/etherstats.h b/agent/mibgroup/rmon-mib/data_access/etherstats.h
deleted file mode 100644
index e35dd61..0000000
--- a/agent/mibgroup/rmon-mib/data_access/etherstats.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
- * module to include the modules
- */
-
-#if defined(linux)
-config_require(rmon-mib/data_access/etherstats_linux)
-#endif
diff --git a/agent/mibgroup/rmon-mib/data_access/etherstats_linux.c b/agent/mibgroup/rmon-mib/data_access/etherstats_linux.c
deleted file mode 100644
index d4b6e69..0000000
--- a/agent/mibgroup/rmon-mib/data_access/etherstats_linux.c
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "rmon-mib/etherStatsTable/etherStatsTable.h"
-#include "rmon-mib/etherStatsTable/etherStatsTable_data_access.h"
-#include "rmon-mib/etherStatsTable/ioctl_imp_common.h"
-
-/*
- * @retval  0 success
- * @retval -1 getifaddrs failed 
- * @retval -2 memory allocation failed
- */
-
-struct ifname *
-etherstats_interface_name_list_get (struct ifname *list_head, int *retval)
-{
-    struct ifaddrs *addrs = NULL, *p = NULL;
-    struct ifname *nameptr1=NULL, *nameptr2 = NULL;
-
-    DEBUGMSGTL(("access:etherStatsTable:interface_name_list_get",
-                "called\n"));
-
-    if ((getifaddrs(&addrs)) < 0) {
-        DEBUGMSGTL(("access:etherStatsTable:interface_name_list_get",
-                    "getifaddrs failed\n"));
-        snmp_log (LOG_ERR, "access:etherStatsTable,interface_name_list_get, getifaddrs failed\n");
-        *retval = -1;
-        return NULL;
-    }
-
-    for (p = addrs; p; p = p->ifa_next) {
-
-        if (!list_head) {
-            if ( (list_head = (struct ifname *) malloc (sizeof(struct ifname))) < 0) {
-                DEBUGMSGTL(("access:etherStatsTable:interface_name_list_get",
-                            "memory allocation failed\n"));
-                snmp_log (LOG_ERR, "access:etherStatsTable,interface_name_list_get, memory allocation failed\n");
-                freeifaddrs(addrs);
-                *retval = -2;
-                return NULL;
-            }
-            memset(list_head, 0, sizeof(struct ifname));
-            strlcpy(list_head->name, p->ifa_name, IF_NAMESIZE);
-            continue;
-        }
-         for (nameptr1 = list_head; nameptr1; nameptr2 = nameptr1, nameptr1 = nameptr1->ifn_next)
-            if (!strncmp(p->ifa_name, nameptr1->name, IF_NAMESIZE))
-                break;
-
-        if (nameptr1)
-            continue;
-
-        if ( (nameptr2->ifn_next = (struct ifname *) malloc (sizeof(struct ifname))) < 0) {
-            DEBUGMSGTL(("access:etherStatsTable:interface_name_list_get",
-                        "memory allocation failed\n"));
-            snmp_log (LOG_ERR, "access:etherStatsTable,interface_name_list_get, memory allocation failed\n");
-            etherstats_interface_name_list_free (list_head);
-            freeifaddrs(addrs);
-            *retval = -2;
-            return NULL;
-        }
-        nameptr2 = nameptr2->ifn_next;
-        memset(nameptr2, 0, sizeof(struct ifname));
-        strlcpy(nameptr2->name, p->ifa_name, IF_NAMESIZE);
-        continue;
-    }
-
-    freeifaddrs(addrs);
-    *retval = 0;
-    return list_head;
-}
-
-
-/*
- * @retval 0 success
- * @retval -1 invalid pointer
- */
-
-int
-etherstats_interface_name_list_free (struct ifname *list_head)
-{
-    struct ifname *nameptr1 = NULL, *nameptr2 = NULL;
-
-    DEBUGMSGTL(("access:etherStatsTable:interface_name_list_free",
-                "called\n"));
-
-    if (!list_head) {
-        snmp_log (LOG_ERR, "access:etherStatsTable:interface_name_list_free: invalid pointer list_head");
-        DEBUGMSGTL(("access:etherStatsTable:interface_name_list_free",
-                    "invalid pointer list_head\n"));
-        return -1;
-    }
-
-    for (nameptr1 = list_head; nameptr1; nameptr1 = nameptr2) {
-            nameptr2 = nameptr1->ifn_next;
-            free (nameptr1);
-    }
-
-    return 0;
-}
-
-/*
- * @retval  0 : not found
- * @retval !0 : ifIndex
- */
-
-int
-etherstats_interface_ioctl_ifindex_get (int fd, const char *name) {
-#ifndef SIOCGIFINDEX
-    return 0;
-#else
-    struct ifreq    ifrq;
-    int rc = 0;
-
-    DEBUGMSGTL(("access:etherStatsTable:ioctl", "ifindex_get\n"));
-
-    rc = _etherStats_ioctl_get(fd, SIOCGIFINDEX, &ifrq, name);
-    if (rc < 0) {
-        DEBUGMSGTL(("access:etherStats:ioctl",
-                    "ifindex_get error on inerface '%s'\n", name));
-        snmp_log (LOG_ERR, "access:etherStatsTable:ioctl, ifindex_get error on inerface '%s'\n", name);
-        return 0;
-
-    }
-
-    return ifrq.ifr_ifindex;
-#endif /* SIOCGIFINDEX */
-}
-
-/*
- * @retval  0 success
- * @retval -1 cannot get ETHTOOL_DRVINFO failed 
- * @retval -2 n_stats zero - no statistcs available
- * @retval -3 memory allocation for holding the statistics failed
- * @retval -4 cannot get ETHTOOL_GSTRINGS information
- * @retval -5 cannot get ETHTOOL_GSTATS information
- * @retval -6 function not supported if HAVE_LINUX_ETHTOOL_H not defined
- */
-
-int
-interface_ioctl_etherstats_get (etherStatsTable_rowreq_ctx *rowreq_ctx , int fd, const char *name) {
-
-#ifdef HAVE_LINUX_ETHTOOL_H
-
-    etherStatsTable_data *data = &rowreq_ctx->data;
-    struct ethtool_drvinfo driver_info;
-    struct ethtool_gstrings *eth_strings;
-    struct ethtool_stats *eth_stats;
-    struct ifreq ifr;
-    unsigned int nstats, size_str, i;
-    int err;
-
-    DEBUGMSGTL(("access:etherStatsTable:interface_ioctl_etherstats_get",
-                "called\n"));
-
-    memset(&ifr, 0, sizeof(ifr));
-    strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
-
-    memset(&driver_info, 0, sizeof(driver_info));
-    driver_info.cmd = ETHTOOL_GDRVINFO;
-    ifr.ifr_data = (char *)&driver_info;
-
-    err = _etherStats_ioctl_get(fd, SIOCETHTOOL, &ifr, name);
-    if (err < 0) {
-        DEBUGMSGTL(("access:etherStatsTable:interface_ioctl_etherstats_get",
-                    "ETHTOOL_GETDRVINFO failed on interface |%s| \n", name));
-        return -1;
-    }
-
-    nstats = driver_info.n_stats;
-    if (nstats < 1) {
-        DEBUGMSGTL(("access:etherStatsTable:interface_ioctl_etherstats_get",
-                    "no stats available for interface |%s| \n", name));
-        return -2;
-    }
-
-    size_str = nstats * ETH_GSTRING_LEN;
-
-    eth_strings = malloc(size_str + sizeof (struct ethtool_gstrings));
-    if (!eth_strings) {
-        DEBUGMSGTL(("access:etherStatsTable:interface_ioctl_etherstats_get",
-                    "no memory available\n"));
-        snmp_log (LOG_ERR, "access:etherStatsTable,interface_ioctl_etherstats_get, no memory available\n");
-
-        return -3;
-    }
-    memset (eth_strings, 0, (size_str + sizeof (struct ethtool_gstrings)));
-
-    eth_stats = malloc (size_str + sizeof (struct ethtool_stats));
-    if (!eth_stats) {
-        free (eth_strings);
-        DEBUGMSGTL(("access:etherStatsTable:interface_ioctl_etherstats_get",
-                    "no memory available\n"));
-        snmp_log (LOG_ERR, "access:etherStatsTable,interface_ioctl_etherstats_get, no memory available\n");
-
-        return -3;
-    }
-    memset (eth_stats, 0, (size_str + sizeof (struct ethtool_stats)));
-
-    eth_strings->cmd = ETHTOOL_GSTRINGS;
-    eth_strings->string_set = ETH_SS_STATS;
-    eth_strings->len = nstats;
-    ifr.ifr_data = (char *) eth_strings;
-
-    err = _etherStats_ioctl_get(fd, SIOCETHTOOL, &ifr, name);
-    if (err < 0) {
-        DEBUGMSGTL(("access:etherStatsTable:interface_ioctl_etherstats_get",
-                    "cannot get stats strings information for interface |%s| \n", name));
-        snmp_log (LOG_ERR, "access:etherStatsTable,interface_ioctl_etherstats_get, cannot get stats strings information for interface |%s| \n", name);
-
-        free(eth_strings);
-        free(eth_stats);
-        return -4;
-    }
-
-    eth_stats->cmd = ETHTOOL_GSTATS;
-    eth_stats->n_stats = nstats;
-    ifr.ifr_data = (char *) eth_stats;
-    err = _etherStats_ioctl_get(fd, SIOCETHTOOL, &ifr, name);
-    if (err < 0) {
-        DEBUGMSGTL(("access:etherStatsTable:interface_ioctl_etherstats_get",
-                    "cannot get stats strings information for interface |%s| \n", name));
-        snmp_log (LOG_ERR, "access:etherStatsTable,interface_ioctl_etherstats_get, cannot get stats information for interface |%s| \n", name);
-
-        free(eth_strings);
-        free(eth_stats);
-        return -5;
-    }
-
-    for (i = 0; i < nstats; i++) {
-        char s[ETH_GSTRING_LEN];
-
-        strlcpy(s, (const char *) &eth_strings->data[i * ETH_GSTRING_LEN],
-                sizeof(s));
-        
-        if (ETHERSTATSJABBERS(s)) {
-            data->etherStatsJabbers = (u_long)eth_stats->data[i];
-            rowreq_ctx->column_exists_flags |= COLUMN_ETHERSTATSJABBERS_FLAG;
-        }
-    }
-    free(eth_strings);
-    free(eth_stats);
-
-    return 0;
-#else
-    return -6;
-#endif
-
-}
-
-
-/* ioctl wrapper
- *
- * @param fd : socket fd to use w/ioctl, or -1 to open/close one
- * @param which
- * @param ifrq
- * param ifentry : ifentry to update
- * @param name
- *
- * @retval  0 : success
- * @retval -1 : invalid parameters
- * @retval -2 : couldn't create socket
- * @retval -3 : ioctl call failed
- */
-int
-_etherStats_ioctl_get(int fd, int which, struct ifreq *ifrq, const char* name)
-{
-    int ourfd = -1, rc = 0;
-
-    DEBUGMSGTL(("access:etherStatsTable:ioctl", "_etherStats_ioctl_get\n"));
-    /*
-     * sanity checks
-     */
-    if(NULL == name) {
-        DEBUGMSGTL(("access:etherStatsTable:ioctl",
-                    "_etherStats_ioctl_get invalid ifname '%s'\n", name));
-        snmp_log (LOG_ERR, "access:etherStatsTable:ioctl, _etherStats_ioctl_get error on inerface '%s'\n", name);
-        return -1;
-    }
-
-    /*
-     * create socket for ioctls
-     */
-    if(fd < 0) {
-        fd = ourfd = socket(AF_INET, SOCK_DGRAM, 0);
-        if(ourfd < 0) {
-            DEBUGMSGTL(("access:etherStatsTable:ioctl",
-                        "_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;
-        }
-    }
-
-    strlcpy(ifrq->ifr_name, name, sizeof(ifrq->ifr_name));
-    rc = ioctl(fd, which, ifrq);
-    if (rc < 0) {
-        DEBUGMSGTL(("access:etherStatsTable:ioctl",
-                    "_etherStats_ioctl_get ioctl %d returned %d\n", which, rc));
-        rc = -3;
-    }
-
-    if(ourfd >= 0)
-        close(ourfd);
-
-    return rc;
-}
-
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable.h b/agent/mibgroup/rmon-mib/etherStatsTable.h
deleted file mode 100644
index 772845e..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * module to include the modules
- */
-
-config_require(rmon-mib/data_access/etherstats)
-config_require(rmon-mib/etherStatsTable/etherStatsTable)
-config_require(rmon-mib/etherStatsTable/etherStatsTable_data_get)
-config_require(rmon-mib/etherStatsTable/etherStatsTable_data_set)
-config_require(rmon-mib/etherStatsTable/etherStatsTable_data_access) 
-config_require(rmon-mib/etherStatsTable/etherStatsTable_interface)
-
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable.c b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable.c
deleted file mode 100644
index 05a6e22..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $ 
- *
- * $Id:$
- */
-/** \page MFD helper for etherStatsTable
- *
- * \section intro Introduction
- * Introductory text.
- *
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "etherStatsTable.h"
-
-#include <net-snmp/agent/mib_modules.h>
-
-#include "etherStatsTable_interface.h"
-
-oid             etherStatsTable_oid[] = { ETHERSTATSTABLE_OID };
-int             etherStatsTable_oid_size = OID_LENGTH(etherStatsTable_oid);
-
-etherStatsTable_registration etherStatsTable_user_context;
-static etherStatsTable_registration *etherStatsTable_user_context_p;
-
-void            initialize_table_etherStatsTable(void);
-void            shutdown_table_etherStatsTable(void);
-
-
-/**
- * Initializes the etherStatsTable module
- */
-void
-init_etherStatsTable(void)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:init_etherStatsTable",
-                "called\n"));
-
-    /*
-     * TODO:300:o: Perform etherStatsTable one-time module initialization.
-     */
-
-    /*
-     * here we initialize all the tables we're planning on supporting
-     */
-    if (should_init("etherStatsTable"))
-        initialize_table_etherStatsTable();
-
-}                               /* init_etherStatsTable */
-
-/**
- * Shut-down the etherStatsTable module (agent is exiting)
- */
-void
-shutdown_etherStatsTable(void)
-{
-    if (should_init("etherStatsTable"))
-        shutdown_table_etherStatsTable();
-
-}
-
-/**
- * Initialize the table etherStatsTable 
- *    (Define its contents and how it's structured)
- */
-void
-initialize_table_etherStatsTable(void)
-{
-    u_long          flags;
-
-    DEBUGMSGTL(("verbose:etherStatsTable:initialize_table_etherStatsTable",
-                "called\n"));
-
-    /*
-     * TODO:301:o: Perform etherStatsTable one-time table initialization.
-     */
-
-    /*
-     * TODO:302:o: |->Initialize etherStatsTable user context
-     * if you'd like to pass in a pointer to some data for this
-     * table, allocate or set it up here.
-     */
-    /*
-     * a netsnmp_data_list is a simple way to store void pointers. A simple
-     * string token is used to add, find or remove pointers.
-     */
-    etherStatsTable_user_context_p
-	= netsnmp_create_data_list("etherStatsTable", NULL, NULL);
-
-    /*
-     * No support for any flags yet, but in the future you would
-     * set any flags here.
-     */
-    flags = 0;
-
-    /*
-     * call interface initialization code
-     */
-    _etherStatsTable_initialize_interface
-	(etherStatsTable_user_context_p, flags);
-}                               /* initialize_table_etherStatsTable */
-
-/**
- * Shutdown the table etherStatsTable 
- */
-void
-shutdown_table_etherStatsTable(void)
-{
-    /*
-     * call interface shutdown code
-     */
-    _etherStatsTable_shutdown_interface(etherStatsTable_user_context_p);
-    netsnmp_free_all_list_data(etherStatsTable_user_context_p);
-    etherStatsTable_user_context_p = NULL;
-}
-
-/**
- * extra context initialization (eg default values)
- *
- * @param rowreq_ctx    : row request context
- * @param user_init_ctx : void pointer for user (parameter to rowreq_ctx_allocate)
- *
- * @retval MFD_SUCCESS  : no errors
- * @retval MFD_ERROR    : error (context allocate will fail)
- */
-int
-etherStatsTable_rowreq_ctx_init(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                                void *user_init_ctx)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_rowreq_ctx_init",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:210:o: |-> Perform extra etherStatsTable rowreq initialization. (eg DEFVALS)
-     */
-
-    return MFD_SUCCESS;
-}                               /* etherStatsTable_rowreq_ctx_init */
-
-/**
- * extra context cleanup
- *
- */
-void
-etherStatsTable_rowreq_ctx_cleanup(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_rowreq_ctx_cleanup", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:211:o: |-> Perform extra etherStatsTable rowreq cleanup.
-     */
-}                               /* etherStatsTable_rowreq_ctx_cleanup */
-
-/**
- * pre-request callback
- *
- *
- * @retval MFD_SUCCESS              : success.
- * @retval MFD_ERROR                : other error
- */
-int
-etherStatsTable_pre_request(etherStatsTable_registration * user_context)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_pre_request",
-                "called\n"));
-
-    /*
-     * TODO:510:o: Perform etherStatsTable pre-request actions.
-     */
-
-    return MFD_SUCCESS;
-}                               /* etherStatsTable_pre_request */
-
-/**
- * post-request callback
- *
- * Note:
- *   New rows have been inserted into the container, and
- *   deleted rows have been removed from the container and
- *   released.
- *
- * @param user_context
- * @param rc : MFD_SUCCESS if all requests succeeded
- *
- * @retval MFD_SUCCESS : success.
- * @retval MFD_ERROR   : other error (ignored)
- */
-int
-etherStatsTable_post_request(etherStatsTable_registration * user_context,
-                             int rc)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_post_request",
-                "called\n"));
-
-    /*
-     * TODO:511:o: Perform etherStatsTable post-request actions.
-     */
-
-    /*
-     * check to set if any rows were changed.
-     */
-    if (etherStatsTable_dirty_get()) {
-        /*
-         * check if request was successful. If so, this would be
-         * a good place to save data to its persistent store.
-         */
-        if (MFD_SUCCESS == rc) {
-            /*
-             * save changed rows, if you haven't already
-             */
-        }
-
-        etherStatsTable_dirty_set(0);   /* clear table dirty flag */
-    }
-
-    return MFD_SUCCESS;
-}                               /* etherStatsTable_post_request */
-
-
-/** @{ */
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable.h b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable.h
deleted file mode 100644
index 9f7f03c..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable.h
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $
- *
- * $Id:$
- */
-#ifndef ETHERSTATSTABLE_H
-#define ETHERSTATSTABLE_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-/** @addtogroup misc misc: Miscellaneous routines
- *
- * @{
- */
-#include <net-snmp/library/asn1.h>
-
-    /*
-     * OID and column number definitions for etherStatsTable 
-     */
-#include "etherStatsTable_oids.h"
-
-    /*
-     * enum definions 
-     */
-#include "etherStatsTable_enums.h"
-
-    /*
-     *********************************************************************
-     * function declarations
-     */
-    void            init_etherStatsTable(void);
-    void            shutdown_etherStatsTable(void);
-
-    /*
-     *********************************************************************
-     * Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table etherStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * RMON-MIB::etherStatsTable is subid 1 of statistics.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.16.1.1, length: 9
-     */
-    /*
-     *********************************************************************
-     * When you register your mib, you get to provide a generic
-     * pointer that will be passed back to you for most of the
-     * functions calls.
-     *
-     * TODO:100:r: Review all context structures
-     */
-    /*
-     * TODO:101:o: |-> Review etherStatsTable registration context.
-     */
-    typedef netsnmp_data_list etherStatsTable_registration;
-
-/**********************************************************************/
-    /*
-     * TODO:110:r: |-> Review etherStatsTable data context structure.
-     * This structure is used to represent the data for etherStatsTable.
-     */
-    /*
-     * This structure contains storage for all the columns defined in the
-     * etherStatsTable.
-     */
-    typedef struct etherStatsTable_data_s {
-
-        /*
-         * etherStatsDataSource(2)/OBJECTID/ASN_OBJECT_ID/oid(oid)//L/A/W/e/r/d/h
-         */
-        oid             etherStatsDataSource[128];
-        size_t          etherStatsDataSource_len;       /* # of oid elements, not bytes */
-
-        /*
-         * etherStatsDropEvents(3)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsDropEvents;
-
-        /*
-         * etherStatsOctets(4)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsOctets;
-
-        /*
-         * etherStatsPkts(5)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsPkts;
-
-        /*
-         * etherStatsBroadcastPkts(6)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsBroadcastPkts;
-
-        /*
-         * etherStatsMulticastPkts(7)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsMulticastPkts;
-
-        /*
-         * etherStatsCRCAlignErrors(8)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsCRCAlignErrors;
-
-        /*
-         * etherStatsUndersizePkts(9)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsUndersizePkts;
-
-        /*
-         * etherStatsOversizePkts(10)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsOversizePkts;
-
-        /*
-         * etherStatsFragments(11)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsFragments;
-
-        /*
-         * etherStatsJabbers(12)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsJabbers;
-
-        /*
-         * etherStatsCollisions(13)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsCollisions;
-
-        /*
-         * etherStatsPkts64Octets(14)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsPkts64Octets;
-
-        /*
-         * etherStatsPkts65to127Octets(15)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsPkts65to127Octets;
-
-        /*
-         * etherStatsPkts128to255Octets(16)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsPkts128to255Octets;
-
-        /*
-         * etherStatsPkts256to511Octets(17)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsPkts256to511Octets;
-
-        /*
-         * etherStatsPkts512to1023Octets(18)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsPkts512to1023Octets;
-
-        /*
-         * etherStatsPkts1024to1518Octets(19)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h
-         */
-        u_long          etherStatsPkts1024to1518Octets;
-
-        /*
-         * etherStatsOwner(20)/OwnerString/ASN_OCTET_STR/char(char)//L/A/W/e/R/d/h
-         */
-        char            etherStatsOwner[127];
-        size_t          etherStatsOwner_len;    /* # of char elements, not bytes */
-
-        /*
-         * etherStatsStatus(21)/EntryStatus/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h
-         */
-        u_long          etherStatsStatus;
-
-    } etherStatsTable_data;
-
-
-    /*
-     *********************************************************************
-     * TODO:115:o: |-> Review etherStatsTable undo context.
-     * We're just going to use the same data structure for our
-     * undo_context. If you want to do something more efficent,
-     * define your typedef here.
-     */
-    typedef etherStatsTable_data etherStatsTable_undo_data;
-
-    /*
-     * TODO:120:r: |-> Review etherStatsTable mib index.
-     * This structure is used to represent the index for etherStatsTable.
-     */
-    typedef struct etherStatsTable_mib_index_s {
-
-        /*
-         * etherStatsIndex(1)/INTEGER32/ASN_INTEGER/long(long)//l/A/w/e/R/d/h
-         */
-        long            etherStatsIndex;
-
-
-    } etherStatsTable_mib_index;
-
-    /*
-     * TODO:121:r: |   |-> Review etherStatsTable max index length.
-     * If you KNOW that your indexes will never exceed a certain
-     * length, update this macro to that length.
-     */
-#define MAX_etherStatsTable_IDX_LEN     1
-
-
-    /*
-     *********************************************************************
-     * TODO:130:o: |-> Review etherStatsTable Row request (rowreq) context.
-     * When your functions are called, you will be passed a
-     * etherStatsTable_rowreq_ctx pointer.
-     */
-    typedef struct etherStatsTable_rowreq_ctx_s {
-
-    /** this must be first for container compare to work */
-        netsnmp_index   oid_idx;
-        oid             oid_tmp[MAX_etherStatsTable_IDX_LEN];
-
-        etherStatsTable_mib_index tbl_idx;
-
-        etherStatsTable_data data;
-        unsigned int    column_exists_flags;    /* flags for existence */
-        etherStatsTable_undo_data *undo;
-        unsigned int    column_set_flags;       /* flags for set columns */
-
-
-        /*
-         * flags per row. Currently, the first (lower) 8 bits are reserved
-         * for the user. See mfd.h for other flags.
-         */
-        u_int           rowreq_flags;
-
-        /*
-         * TODO:131:o: |   |-> Add useful data to etherStatsTable rowreq context.
-         */
-
-        /*
-         * storage for future expansion
-         */
-        netsnmp_data_list *etherStatsTable_data_list;
-
-    } etherStatsTable_rowreq_ctx;
-
-    typedef struct etherStatsTable_ref_rowreq_ctx_s {
-        etherStatsTable_rowreq_ctx *rowreq_ctx;
-    } etherStatsTable_ref_rowreq_ctx;
-
-    /*
-     *********************************************************************
-     * function prototypes
-     */
-    int            
-        etherStatsTable_pre_request(etherStatsTable_registration *
-                                    user_context);
-    int            
-        etherStatsTable_post_request(etherStatsTable_registration *
-                                     user_context, int rc);
-
-    int            
-        etherStatsTable_rowreq_ctx_init(etherStatsTable_rowreq_ctx *
-                                        rowreq_ctx, void *user_init_ctx);
-    void           
-        etherStatsTable_rowreq_ctx_cleanup(etherStatsTable_rowreq_ctx *
-                                           rowreq_ctx);
-
-    int             etherStatsTable_commit(etherStatsTable_rowreq_ctx *
-                                           rowreq_ctx);
-
-    etherStatsTable_rowreq_ctx
-        *etherStatsTable_row_find_by_mib_index(etherStatsTable_mib_index *
-                                               mib_idx);
-
-    extern oid      etherStatsTable_oid[];
-    extern int      etherStatsTable_oid_size;
-
-
-#include "etherStatsTable_interface.h"
-#include "etherStatsTable_data_access.h"
-#include "etherStatsTable_data_get.h"
-#include "etherStatsTable_data_set.h"
-
-    /*
-     * DUMMY markers, ignore
-     *
-     * TODO:099:x: *************************************************************
-     * TODO:199:x: *************************************************************
-     * TODO:299:x: *************************************************************
-     * TODO:399:x: *************************************************************
-     * TODO:499:x: *************************************************************
-     */
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* ETHERSTATSTABLE_H */
-/** @} */
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c
deleted file mode 100644
index 974636a..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c
+++ /dev/null
@@ -1,525 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $ 
- *
- * $Id:$
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "etherStatsTable.h"
-#include "etherStatsTable_data_access.h"
-
-#if defined(linux)
-#include "ioctl_imp_common.h"
-#endif
-
-/** @ingroup interface
- * @addtogroup data_access data_access: Routines to access data
- *
- * These routines are used to locate the data used to satisfy
- * requests.
- * 
- * @{
- */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table etherStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * RMON-MIB::etherStatsTable is subid 1 of statistics.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.16.1.1, length: 9
- */
-
-/**
- * initialization for etherStatsTable data access
- *
- * This function is called during startup to allow you to
- * allocate any resources you need for the data table.
- *
- * @param etherStatsTable_reg
- *        Pointer to etherStatsTable_registration
- *
- * @retval MFD_SUCCESS : success.
- * @retval MFD_ERROR   : unrecoverable error.
- */
-int
-etherStatsTable_init_data(etherStatsTable_registration *
-                          etherStatsTable_reg)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_init_data",
-                "called\n"));
-
-    /*
-     * TODO:303:o: Initialize etherStatsTable data.
-     */
-
-    return MFD_SUCCESS;
-}                               /* etherStatsTable_init_data */
-
-/**
- * container overview
- *
- */
-
-/**
- * container initialization
- *
- * @param container_ptr_ptr A pointer to a container pointer. If you
- *        create a custom container, use this parameter to return it
- *        to the MFD helper. If set to NULL, the MFD helper will
- *        allocate a container for you.
- * @param  cache A pointer to a cache structure. You can set the timeout
- *         and other cache flags using this pointer.
- *
- *  This function is called at startup to allow you to customize certain
- *  aspects of the access method. For the most part, it is for advanced
- *  users. The default code should suffice for most cases. If no custom
- *  container is allocated, the MFD code will create one for your.
- *
- *  This is also the place to set up cache behavior. The default, to
- *  simply set the cache timeout, will work well with the default
- *  container. If you are using a custom container, you may want to
- *  look at the cache helper documentation to see if there are any
- *  flags you want to set.
- *
- * @remark
- *  This would also be a good place to do any initialization needed
- *  for you data source. For example, opening a connection to another
- *  process that will supply the data, opening a database, etc.
- */
-void
-etherStatsTable_container_init(netsnmp_container ** container_ptr_ptr,
-                               netsnmp_cache * cache)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_container_init",
-                "called\n"));
-
-    if (NULL == container_ptr_ptr) {
-        snmp_log(LOG_ERR,
-                 "bad container param to etherStatsTable_container_init\n");
-        return;
-    }
-
-    /*
-     * For advanced users, you can use a custom container. If you
-     * do not create one, one will be created for you.
-     */
-    *container_ptr_ptr = NULL;
-
-    if (NULL == cache) {
-        snmp_log(LOG_ERR,
-                 "bad cache param to etherStatsTable_container_init\n");
-        return;
-    }
-
-    /*
-     * TODO:345:A: Set up etherStatsTable cache properties.
-     *
-     * Also for advanced users, you can set parameters for the
-     * cache. Do not change the magic pointer, as it is used
-     * by the MFD helper. To completely disable caching, set
-     * cache->enabled to 0.
-     */
-    cache->timeout = ETHERSTATSTABLE_CACHE_TIMEOUT;     /* seconds */
-}                               /* etherStatsTable_container_init */
-
-/**
- * container shutdown
- *
- * @param container_ptr A pointer to the container.
- *
- *  This function is called at shutdown to allow you to customize certain
- *  aspects of the access method. For the most part, it is for advanced
- *  users. The default code should suffice for most cases.
- *
- *  This function is called before etherStatsTable_container_free().
- *
- * @remark
- *  This would also be a good place to do any cleanup needed
- *  for you data source. For example, closing a connection to another
- *  process that supplied the data, closing a database, etc.
- */
-void
-etherStatsTable_container_shutdown(netsnmp_container * container_ptr)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_container_shutdown", "called\n"));
-
-    if (NULL == container_ptr) {
-        snmp_log(LOG_ERR,
-                 "bad params to etherStatsTable_container_shutdown\n");
-        return;
-    }
-
-}                               /* etherStatsTable_container_shutdown */
-
-/**
- * load initial data
- *
- * TODO:350:M: Implement etherStatsTable data load
- * This function will also be called by the cache helper to load
- * the container again (after the container free function has been
- * called to free the previous contents).
- *
- * @param container container to which items should be inserted
- *
- * @retval MFD_SUCCESS              : success.
- * @retval MFD_RESOURCE_UNAVAILABLE : Can't access data source
- * @retval MFD_ERROR                : other error.
- *
- *  This function is called to load the index(es) (and data, optionally)
- *  for the every row in the data set.
- *
- * @remark
- *  While loading the data, the only important thing is the indexes.
- *  If access to your data is cheap/fast (e.g. you have a pointer to a
- *  structure in memory), it would make sense to update the data here.
- *  If, however, the accessing the data invovles more work (e.g. parsing
- *  some other existing data, or peforming calculations to derive the data),
- *  then you can limit yourself to setting the indexes and saving any
- *  information you will need later. Then use the saved information in
- *  etherStatsTable_row_prep() for populating data.
- *
- * @note
- *  If you need consistency between rows (like you want statistics
- *  for each row to be from the same time frame), you should set all
- *  data here.
- *
- */
-int
-etherStatsTable_container_load(netsnmp_container * container)
-{
-    etherStatsTable_rowreq_ctx *rowreq_ctx;
-    size_t          count = 0;
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_container_load",
-                "called\n"));
-
-    /*
-     * TODO:352:M: |   |-> set indexes in new etherStatsTable rowreq context.
-     * data context will be set from the param (unless NULL,
-     *      in which case a new data context will be allocated)
-     */
-
-    /*
-     * temporary storage for index values
-     */
-    
-    /*
-     * etherStatsIndex(1)/INTEGER32/ASN_INTEGER/long(long)//l/A/w/e/R/d/h
-     */
-
-    long            etherStatsIndex;
-    int             fd;
-    int             rc = 0, retval = 0;
-
-#if defined(linux)
-    struct ifname *list_head = NULL, *p = NULL;
-#endif
-    
-    /*
-     * create socket for ioctls
-     */
-
-    fd = socket(AF_INET, SOCK_DGRAM, 0);
-    if(fd < 0) {
-        snmp_log(LOG_ERR, "could not create socket\n");
-        return -2;
-    }
-
-    /*
-     * get the interface names of the devices present in the system, in case of failure retval suggests the reson for failure
-     * and list_head contains null
-     */
-
-#if defined(linux)
-    list_head = etherstats_interface_name_list_get (list_head, &retval);
-
-    if (!list_head) {
-        snmp_log (LOG_ERR, "access:etherStatsTable, error getting the interface names present in the system\n");
-        DEBUGMSGTL(("access:etherStatsTable", "error getting the interface names present in the system"));
-        close(fd);
-        return MFD_ERROR;
-    }
-
-    /*
-     * Walk over the list of interface names present in the system and retreive the statistics 
-     */
-
-    for (p = list_head; p; p = p->ifn_next) {
-        DEBUGMSGTL(("access:etherStatsTable", "processing '%s'\n", p->name));
-
-        /*
-         * get index via ioctl.
-         */
-
-        etherStatsIndex = (long) etherstats_interface_ioctl_ifindex_get(-1, p->name);
-
-        /* 
-         *  get the etherstats contents populated, if the device is not an ethernet device
-         *  the operation will not be supported and an error message will be logged
-         */
-        
-        rowreq_ctx = etherStatsTable_allocate_rowreq_ctx(NULL);
-        if (NULL == rowreq_ctx) {
-            snmp_log(LOG_ERR, "memory allocation failed\n");
-            close(fd);
-            return MFD_RESOURCE_UNAVAILABLE;
-        }
-
-        if (MFD_SUCCESS !=
-            etherStatsTable_indexes_set(rowreq_ctx, etherStatsIndex)) {
-            snmp_log(LOG_ERR,
-                     "error setting index while loading "
-                     "etherStatsTable data.\n");
-            etherStatsTable_release_rowreq_ctx(rowreq_ctx);
-            continue;
-        }
-
-        /*
-         * TODO:352:r: |   |-> populate etherStatsTable data context.
-         * Populate data context here. (optionally, delay until row prep)
-         */
-        /*
-         * non-TRANSIENT data: no need to copy. set pointer to data 
-         */
-
-        memset (&rowreq_ctx->data, 0, sizeof (rowreq_ctx->data));
-        rc = interface_ioctl_etherstats_get (rowreq_ctx, fd, p->name);
-
-        if (rc < 0) {
-            DEBUGMSGTL(("access:etherStatsTable", "error getting the statistics for interface |%s| "
-                        "etherStatsTable data, operation might not be supported\n", p->name));
-            etherStatsTable_release_rowreq_ctx(rowreq_ctx);
-            continue;
-        }
-
-        /*
-         * insert into table container
-         */
-        rc = CONTAINER_INSERT(container, rowreq_ctx);
-        if (rc < 0) {
-            DEBUGMSGTL(("access:etherStatsTable", "error inserting |%s| ", p->name));
-            etherStatsTable_release_rowreq_ctx(rowreq_ctx);
-            continue;
-        }
-
-        ++count;
-    }
-
-    close(fd);
-
-    /*
-     * free the interface names list 
-     */
-
-    if ( (etherstats_interface_name_list_free(list_head)) < 0) {
-        snmp_log(LOG_ERR, "access:etherStatsTable, error freeing the interface name list \n");
-        DEBUGMSGTL(("access:etherStatsTable", "error freeing the interface name list\n"));
-        return MFD_ERROR;
-    }
-#endif
-    
-    DEBUGMSGT(("verbose:etherStatsTable:etherStatsTable_container_load",
-               "inserted %" NETSNMP_PRIz "d records\n", count));
-
-    return MFD_SUCCESS;
-}
-                               /* etherStatsTable_container_load */
-
-
-/**
- * container clean up
- *
- * @param container container with all current items
- *
- *  This optional callback is called prior to all
- *  item's being removed from the container. If you
- *  need to do any processing before that, do it here.
- *
- * @note
- *  The MFD helper will take care of releasing all the row contexts.
- *
- */
-void
-etherStatsTable_container_free(netsnmp_container * container)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_container_free",
-                "called\n"));
-
-    /*
-     * TODO:380:M: Free etherStatsTable container data.
-     */
-}                               /* etherStatsTable_container_free */
-
-/**
- * prepare row for processing.
- *
- *  When the agent has located the row for a request, this function is
- *  called to prepare the row for processing. If you fully populated
- *  the data context during the index setup phase, you may not need to
- *  do anything.
- *
- * @param rowreq_ctx pointer to a context.
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- */
-int
-etherStatsTable_row_prep(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_row_prep",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:390:o: Prepare row for request.
-     * If populating row data was delayed, this is the place to
-     * fill in the row for this request.
-     */
-
-    return MFD_SUCCESS;
-}                               /* etherStatsTable_row_prep */
-
-/*
- * TODO:420:r: Implement etherStatsTable index validation.
- */
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsIndex
- * etherStatsIndex is subid 1 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.1
- * Description:
-The value of this object uniquely identifies this
-        etherStats entry.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 1      hashint   0
- *   settable   0
- *
- * Ranges:  1 - 65535;
- *
- * Its syntax is INTEGER32 (based on perltype INTEGER32)
- * The net-snmp type is ASN_INTEGER. The C type decl is long (long)
- */
-/**
- * check validity of etherStatsIndex index portion
- *
- * @retval MFD_SUCCESS   : the incoming value is legal
- * @retval MFD_ERROR     : the incoming value is NOT legal
- *
- * @note this is not the place to do any checks for the sanity
- *       of multiple indexes. Those types of checks should be done in the
- *       etherStatsTable_validate_index() function.
- *
- * @note Also keep in mind that if the index refers to a row in this or
- *       some other table, you can't check for that row here to make
- *       decisions, since that row might not be created yet, but may
- *       be created during the processing this request. If you have
- *       such checks, they should be done in the check_dependencies
- *       function, because any new/deleted/changed rows should be
- *       available then.
- *
- * The following checks have already been done for you:
- *    The value is in (one of) the range set(s):  1 - 65535
- *
- * If there a no other checks you need to do, simply return MFD_SUCCESS.
- */
-int
-etherStatsIndex_check_index(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsIndex_check_index",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:426:M: |-> Check etherStatsTable index etherStatsIndex.
-     * check that index value in the table context is legal.
-     * (rowreq_ctx->tbl_index.etherStatsIndex)
-     */
-
-    return MFD_SUCCESS;         /* etherStatsIndex index ok */
-}                               /* etherStatsIndex_check_index */
-
-/**
- * verify specified index is valid.
- *
- * This check is independent of whether or not the values specified for
- * the columns of the new row are valid. Column values and row consistency
- * will be checked later. At this point, only the index values should be
- * checked.
- *
- * All of the individual index validation functions have been called, so this
- * is the place to make sure they are valid as a whole when combined. If
- * you only have one index, then you probably don't need to do anything else
- * here.
- * 
- * @note Keep in mind that if the indexes refer to a row in this or
- *       some other table, you can't check for that row here to make
- *       decisions, since that row might not be created yet, but may
- *       be created during the processing this request. If you have
- *       such checks, they should be done in the check_dependencies
- *       function, because any new/deleted/changed rows should be
- *       available then.
- *
- *
- * @param etherStatsTable_reg
- *        Pointer to the user registration data
- * @param etherStatsTable_rowreq_ctx
- *        Pointer to the users context.
- * @retval MFD_SUCCESS            : success
- * @retval MFD_CANNOT_CREATE_NOW  : index not valid right now
- * @retval MFD_CANNOT_CREATE_EVER : index never valid
- */
-int
-etherStatsTable_validate_index(etherStatsTable_registration *
-                               etherStatsTable_reg,
-                               etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    int             rc = MFD_SUCCESS;
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_validate_index",
-                "called\n"));
-
-    /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:430:M: |-> Validate potential etherStatsTable index.
-     */
-    if (1) {
-        snmp_log(LOG_WARNING, "invalid index for a new row in the "
-                 "etherStatsTable table.\n");
-        /*
-         * determine failure type.
-         *
-         * If the index could not ever be created, return MFD_NOT_EVER
-         * If the index can not be created under the present circumstances
-         * (even though it could be created under other circumstances),
-         * return MFD_NOT_NOW.
-         */
-        if (0) {
-            return MFD_CANNOT_CREATE_EVER;
-        } else {
-            return MFD_CANNOT_CREATE_NOW;
-        }
-    }
-
-    return rc;
-}                               /* etherStatsTable_validate_index */
-
-/** @} */
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.h b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.h
deleted file mode 100644
index 00700f4..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 14170 $ of $
- *
- * $Id:$
- */
-#ifndef ETHERSTATSTABLE_DATA_ACCESS_H
-#define ETHERSTATSTABLE_DATA_ACCESS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-    /*
-     *********************************************************************
-     * function declarations
-     */
-
-    /*
-     *********************************************************************
-     * Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table etherStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * RMON-MIB::etherStatsTable is subid 1 of statistics.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.16.1.1, length: 9
-     */
-
-
-    int             etherStatsTable_init_data(etherStatsTable_registration
-                                              * etherStatsTable_reg);
-
-
-    /*
-     * TODO:180:o: Review etherStatsTable cache timeout.
-     * The number of seconds before the cache times out
-     */
-#define ETHERSTATSTABLE_CACHE_TIMEOUT   60
-
-    void            etherStatsTable_container_init(netsnmp_container **
-                                                   container_ptr_ptr,
-                                                   netsnmp_cache * cache);
-    void            etherStatsTable_container_shutdown(netsnmp_container *
-                                                       container_ptr);
-
-    int             etherStatsTable_container_load(netsnmp_container *
-                                                   container);
-    void            etherStatsTable_container_free(netsnmp_container *
-                                                   container);
-
-    int             etherStatsTable_cache_load(netsnmp_container *
-                                               container);
-    void            etherStatsTable_cache_free(netsnmp_container *
-                                               container);
-
-#define MAX_LINE_SIZE 256
-
-    int             etherStatsTable_row_prep(etherStatsTable_rowreq_ctx *
-                                             rowreq_ctx);
-
-    int            
-        etherStatsTable_validate_index(etherStatsTable_registration *
-                                       etherStatsTable_reg,
-                                       etherStatsTable_rowreq_ctx *
-                                       rowreq_ctx);
-    int             etherStatsIndex_check_index(etherStatsTable_rowreq_ctx * rowreq_ctx);       /* internal */
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* ETHERSTATSTABLE_DATA_ACCESS_H */
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.c b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.c
deleted file mode 100644
index 3ba51d7..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.c
+++ /dev/null
@@ -1,1411 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 12088 $ of $ 
- *
- * $Id:$
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "etherStatsTable.h"
-
-
-/** @defgroup data_get data_get: Routines to get data
- *
- * TODO:230:M: Implement etherStatsTable get routines.
- * TODO:240:M: Implement etherStatsTable mapping routines (if any).
- *
- * These routine are used to get the value for individual objects. The
- * row context is passed, along with a pointer to the memory where the
- * value should be copied.
- *
- * @{
- */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table etherStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * RMON-MIB::etherStatsTable is subid 1 of statistics.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.16.1.1, length: 9
- */
-
-/*
- * ---------------------------------------------------------------------
- * * TODO:200:r: Implement etherStatsTable data context functions.
- */
-
-
-/**
- * set mib index(es)
- *
- * @param tbl_idx mib index structure
- * @param etherStatsIndex_val
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- *
- * @remark
- *  This convenience function is useful for setting all the MIB index
- *  components with a single function call. It is assume that the C values
- *  have already been mapped from their native/rawformat to the MIB format.
- */
-int
-etherStatsTable_indexes_set_tbl_idx(etherStatsTable_mib_index * tbl_idx,
-                                    long etherStatsIndex_val)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_indexes_set_tbl_idx", "called\n"));
-
-    /*
-     * etherStatsIndex(1)/INTEGER32/ASN_INTEGER/long(long)//l/A/w/e/R/d/h 
-     */
-    tbl_idx->etherStatsIndex = etherStatsIndex_val;
-
-
-    return MFD_SUCCESS;
-}                               /* etherStatsTable_indexes_set_tbl_idx */
-
-/**
- * @internal
- * set row context indexes
- *
- * @param reqreq_ctx the row context that needs updated indexes
- *
- * @retval MFD_SUCCESS     : success.
- * @retval MFD_ERROR       : other error.
- *
- * @remark
- *  This function sets the mib indexs, then updates the oid indexs
- *  from the mib index.
- */
-int
-etherStatsTable_indexes_set(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                            long etherStatsIndex_val)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_indexes_set",
-                "called\n"));
-
-    if (MFD_SUCCESS !=
-        etherStatsTable_indexes_set_tbl_idx(&rowreq_ctx->tbl_idx,
-                                            etherStatsIndex_val))
-        return MFD_ERROR;
-
-    /*
-     * convert mib index to oid index
-     */
-    rowreq_ctx->oid_idx.len = sizeof(rowreq_ctx->oid_tmp) / sizeof(oid);
-    if (0 != etherStatsTable_index_to_oid(&rowreq_ctx->oid_idx,
-                                          &rowreq_ctx->tbl_idx)) {
-        return MFD_ERROR;
-    }
-
-    return MFD_SUCCESS;
-}                               /* etherStatsTable_indexes_set */
-
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsDataSource
- * etherStatsDataSource is subid 2 of etherStatsEntry.
- * Its status is Current, and its access level is Create.
- * OID: .1.3.6.1.2.1.16.1.1.1.2
- * Description:
-This object identifies the source of the data that
-        this etherStats entry is configured to analyze.  This
-        source can be any ethernet interface on this device.
-        In order to identify a particular interface, this object
-        shall identify the instance of the ifIndex object,
-        defined in RFC 2233 [17], for the desired interface.
-        For example, if an entry were to receive data from
-        interface #1, this object would be set to ifIndex.1.
-
-        The statistics in this group reflect all packets
-        on the local network segment attached to the identified
-        interface.
-
-        An agent may or may not be able to tell if fundamental
-        changes to the media of the interface have occurred and
-        necessitate an invalidation of this entry.  For example, a
-        hot-pluggable ethernet card could be pulled out and replaced
-        by a token-ring card.  In such a case, if the agent has such
-        knowledge of the change, it is recommended that it
-        invalidate this entry.
-
-        This object may not be modified if the associated
-        etherStatsStatus object is equal to valid(1).
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   1
- *
- *
- * Its syntax is OBJECTID (based on perltype OBJECTID)
- * The net-snmp type is ASN_OBJECT_ID. The C type decl is oid (oid)
- * This data type requires a length.
- */
-/**
- * Extract the current value of the etherStatsDataSource data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsDataSource_val_ptr_ptr
- *        Pointer to storage for a oid variable
- * @param etherStatsDataSource_val_ptr_len_ptr
- *        Pointer to a size_t. On entry, it will contain the size (in bytes)
- *        pointed to by etherStatsDataSource.
- *        On exit, this value should contain the data size (in bytes).
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
-*
- * @note If you need more than (*etherStatsDataSource_val_ptr_len_ptr) bytes of memory,
- *       allocate it using malloc() and update etherStatsDataSource_val_ptr_ptr.
- *       <b>DO NOT</b> free the previous pointer.
- *       The MFD helper will release the memory you allocate.
- *
- * @remark If you call this function yourself, you are responsible
- *         for checking if the pointer changed, and freeing any
- *         previously allocated memory. (Not necessary if you pass
- *         in a pointer to static memory, obviously.)
- */
-int
-etherStatsDataSource_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                         oid ** etherStatsDataSource_val_ptr_ptr,
-                         size_t *etherStatsDataSource_val_ptr_len_ptr)
-{
-   /** we should have a non-NULL pointer and enough storage */
-    netsnmp_assert((NULL != etherStatsDataSource_val_ptr_ptr)
-                   && (NULL != *etherStatsDataSource_val_ptr_ptr));
-    netsnmp_assert(NULL != etherStatsDataSource_val_ptr_len_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsDataSource_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsDataSource data.
-     * copy (* etherStatsDataSource_val_ptr_ptr ) data and (* etherStatsDataSource_val_ptr_len_ptr ) from rowreq_ctx->data
-     */
-    /*
-     * make sure there is enough space for etherStatsDataSource data
-     */
-    if ((NULL == (*etherStatsDataSource_val_ptr_ptr)) ||
-        ((*etherStatsDataSource_val_ptr_len_ptr) <
-         (rowreq_ctx->data.etherStatsDataSource_len *
-          sizeof(rowreq_ctx->data.etherStatsDataSource[0])))) {
-        /*
-         * allocate space for etherStatsDataSource data
-         */
-        (*etherStatsDataSource_val_ptr_ptr) =
-            malloc(rowreq_ctx->data.etherStatsDataSource_len *
-                   sizeof(rowreq_ctx->data.etherStatsDataSource[0]));
-        if (NULL == (*etherStatsDataSource_val_ptr_ptr)) {
-            snmp_log(LOG_ERR, "could not allocate memory\n");
-            return MFD_ERROR;
-        }
-    }
-    (*etherStatsDataSource_val_ptr_len_ptr) =
-        rowreq_ctx->data.etherStatsDataSource_len *
-        sizeof(rowreq_ctx->data.etherStatsDataSource[0]);
-    memcpy((*etherStatsDataSource_val_ptr_ptr),
-           rowreq_ctx->data.etherStatsDataSource,
-           rowreq_ctx->data.etherStatsDataSource_len *
-           sizeof(rowreq_ctx->data.etherStatsDataSource[0]));
-
-    return MFD_SUCCESS;
-}                               /* etherStatsDataSource_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsDropEvents
- * etherStatsDropEvents is subid 3 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.3
- * Description:
-The total number of events in which packets
-        were dropped by the probe due to lack of resources.
-        Note that this number is not necessarily the number of
-        packets dropped; it is just the number of times this
-        condition has been detected.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsDropEvents data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsDropEvents_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsDropEvents_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                         u_long * etherStatsDropEvents_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsDropEvents_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsDropEvents_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsDropEvents data.
-     * copy (* etherStatsDropEvents_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsDropEvents_val_ptr) =
-        rowreq_ctx->data.etherStatsDropEvents;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsDropEvents_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsOctets
- * etherStatsOctets is subid 4 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.4
- * Description:
-The total number of octets of data (including
-        those in bad packets) received on the
-        network (excluding framing bits but including
-        FCS octets).
-
-        This object can be used as a reasonable estimate of
-        10-Megabit ethernet utilization.  If greater precision is
-        desired, the etherStatsPkts and etherStatsOctets objects
-        should be sampled before and after a common interval.  The
-        differences in the sampled values are Pkts and Octets,
-        respectively, and the number of seconds in the interval is
-        Interval.  These values are used to calculate the Utilization
-        as follows:
-
-                         Pkts * (9.6 + 6.4) + (Octets * .8)
-         Utilization = -------------------------------------
-                                 Interval * 10,000
-
-        The result of this equation is the value Utilization which
-        is the percent utilization of the ethernet segment on a
-        scale of 0 to 100 percent.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsOctets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsOctets_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsOctets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                     u_long * etherStatsOctets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsOctets_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsOctets_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsOctets data.
-     * copy (* etherStatsOctets_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsOctets_val_ptr) = rowreq_ctx->data.etherStatsOctets;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsOctets_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsPkts
- * etherStatsPkts is subid 5 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.5
- * Description:
-The total number of packets (including bad packets,
-        broadcast packets, and multicast packets) received.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsPkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsPkts_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsPkts_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                   u_long * etherStatsPkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsPkts_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts_get", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsPkts data.
-     * copy (* etherStatsPkts_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsPkts_val_ptr) = rowreq_ctx->data.etherStatsPkts;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsPkts_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsBroadcastPkts
- * etherStatsBroadcastPkts is subid 6 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.6
- * Description:
-The total number of good packets received that were
-        directed to the broadcast address.  Note that this
-        does not include multicast packets.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsBroadcastPkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsBroadcastPkts_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsBroadcastPkts_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                            u_long * etherStatsBroadcastPkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsBroadcastPkts_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsBroadcastPkts_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsBroadcastPkts data.
-     * copy (* etherStatsBroadcastPkts_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsBroadcastPkts_val_ptr) =
-        rowreq_ctx->data.etherStatsBroadcastPkts;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsBroadcastPkts_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsMulticastPkts
- * etherStatsMulticastPkts is subid 7 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.7
- * Description:
-The total number of good packets received that were
-        directed to a multicast address.  Note that this number
-        does not include packets directed to the broadcast
-
-        address.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsMulticastPkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsMulticastPkts_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsMulticastPkts_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                            u_long * etherStatsMulticastPkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsMulticastPkts_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsMulticastPkts_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsMulticastPkts data.
-     * copy (* etherStatsMulticastPkts_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsMulticastPkts_val_ptr) =
-        rowreq_ctx->data.etherStatsMulticastPkts;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsMulticastPkts_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsCRCAlignErrors
- * etherStatsCRCAlignErrors is subid 8 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.8
- * Description:
-The total number of packets received that
-        had a length (excluding framing bits, but
-        including FCS octets) of between 64 and 1518
-        octets, inclusive, but had either a bad
-        Frame Check Sequence (FCS) with an integral
-        number of octets (FCS Error) or a bad FCS with
-        a non-integral number of octets (Alignment Error).
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsCRCAlignErrors data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsCRCAlignErrors_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsCRCAlignErrors_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                             u_long * etherStatsCRCAlignErrors_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsCRCAlignErrors_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsCRCAlignErrors_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsCRCAlignErrors data.
-     * copy (* etherStatsCRCAlignErrors_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsCRCAlignErrors_val_ptr) =
-        rowreq_ctx->data.etherStatsCRCAlignErrors;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsCRCAlignErrors_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsUndersizePkts
- * etherStatsUndersizePkts is subid 9 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.9
- * Description:
-The total number of packets received that were
-        less than 64 octets long (excluding framing bits,
-        but including FCS octets) and were otherwise well
-        formed.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsUndersizePkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsUndersizePkts_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsUndersizePkts_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                            u_long * etherStatsUndersizePkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsUndersizePkts_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsUndersizePkts_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsUndersizePkts data.
-     * copy (* etherStatsUndersizePkts_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsUndersizePkts_val_ptr) =
-        rowreq_ctx->data.etherStatsUndersizePkts;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsUndersizePkts_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsOversizePkts
- * etherStatsOversizePkts is subid 10 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.10
- * Description:
-The total number of packets received that were
-        longer than 1518 octets (excluding framing bits,
-        but including FCS octets) and were otherwise
-        well formed.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsOversizePkts data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsOversizePkts_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsOversizePkts_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                           u_long * etherStatsOversizePkts_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsOversizePkts_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsOversizePkts_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsOversizePkts data.
-     * copy (* etherStatsOversizePkts_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsOversizePkts_val_ptr) =
-        rowreq_ctx->data.etherStatsOversizePkts;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsOversizePkts_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsFragments
- * etherStatsFragments is subid 11 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.11
- * Description:
-The total number of packets received that were less than
-        64 octets in length (excluding framing bits but including
-        FCS octets) and had either a bad Frame Check Sequence
-        (FCS) with an integral number of octets (FCS Error) or a
-        bad FCS with a non-integral number of octets (Alignment
-        Error).
-
-        Note that it is entirely normal for etherStatsFragments to
-        increment.  This is because it counts both runts (which are
-        normal occurrences due to collisions) and noise hits.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsFragments data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsFragments_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsFragments_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                        u_long * etherStatsFragments_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsFragments_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsFragments_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsFragments data.
-     * copy (* etherStatsFragments_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsFragments_val_ptr) = rowreq_ctx->data.etherStatsFragments;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsFragments_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsJabbers
- * etherStatsJabbers is subid 12 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.12
- * Description:
-The total number of packets received that were
-        longer than 1518 octets (excluding framing bits,
-        but including FCS octets), and had either a bad
-        Frame Check Sequence (FCS) with an integral number
-        of octets (FCS Error) or a bad FCS with a non-integral
-        number of octets (Alignment Error).
-
-        Note that this definition of jabber is different
-        than the definition in IEEE-802.3 section 8.2.1.5
-        (10BASE5) and section 10.3.1.4 (10BASE2).  These
-        documents define jabber as the condition where any
-        packet exceeds 20 ms.  The allowed range to detect
-        jabber is between 20 ms and 150 ms.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsJabbers data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsJabbers_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsJabbers_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                      u_long * etherStatsJabbers_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsJabbers_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsJabbers_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsJabbers data.
-     * copy (* etherStatsJabbers_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsJabbers_val_ptr) = rowreq_ctx->data.etherStatsJabbers;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsJabbers_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsCollisions
- * etherStatsCollisions is subid 13 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.13
- * Description:
-The best estimate of the total number of collisions
-        on this Ethernet segment.
-
-        The value returned will depend on the location of the
-        RMON probe. Section 8.2.1.3 (10BASE-5) and section
-        10.3.1.3 (10BASE-2) of IEEE standard 802.3 states that a
-        station must detect a collision, in the receive mode, if
-        three or more stations are transmitting simultaneously.  A
-        repeater port must detect a collision when two or more
-
-        stations are transmitting simultaneously.  Thus a probe
-        placed on a repeater port could record more collisions
-        than a probe connected to a station on the same segment
-        would.
-
-        Probe location plays a much smaller role when considering
-        10BASE-T.  14.2.1.4 (10BASE-T) of IEEE standard 802.3
-        defines a collision as the simultaneous presence of signals
-        on the DO and RD circuits (transmitting and receiving
-        at the same time).  A 10BASE-T station can only detect
-        collisions when it is transmitting.  Thus probes placed on
-        a station and a repeater, should report the same number of
-        collisions.
-
-        Note also that an RMON probe inside a repeater should
-        ideally report collisions between the repeater and one or
-        more other hosts (transmit collisions as defined by IEEE
-        802.3k) plus receiver collisions observed on any coax
-        segments to which the repeater is connected.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsCollisions data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsCollisions_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsCollisions_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                         u_long * etherStatsCollisions_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsCollisions_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsCollisions_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsCollisions data.
-     * copy (* etherStatsCollisions_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsCollisions_val_ptr) =
-        rowreq_ctx->data.etherStatsCollisions;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsCollisions_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsPkts64Octets
- * etherStatsPkts64Octets is subid 14 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.14
- * Description:
-The total number of packets (including bad
-        packets) received that were 64 octets in length
-        (excluding framing bits but including FCS octets).
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsPkts64Octets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsPkts64Octets_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsPkts64Octets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                           u_long * etherStatsPkts64Octets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsPkts64Octets_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts64Octets_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsPkts64Octets data.
-     * copy (* etherStatsPkts64Octets_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsPkts64Octets_val_ptr) =
-        rowreq_ctx->data.etherStatsPkts64Octets;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsPkts64Octets_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsPkts65to127Octets
- * etherStatsPkts65to127Octets is subid 15 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.15
- * Description:
-The total number of packets (including bad
-        packets) received that were between
-        65 and 127 octets in length inclusive
-        (excluding framing bits but including FCS octets).
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsPkts65to127Octets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsPkts65to127Octets_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsPkts65to127Octets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                                u_long *
-                                etherStatsPkts65to127Octets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsPkts65to127Octets_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts65to127Octets_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsPkts65to127Octets data.
-     * copy (* etherStatsPkts65to127Octets_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsPkts65to127Octets_val_ptr) =
-        rowreq_ctx->data.etherStatsPkts65to127Octets;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsPkts65to127Octets_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsPkts128to255Octets
- * etherStatsPkts128to255Octets is subid 16 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.16
- * Description:
-The total number of packets (including bad
-        packets) received that were between
-        128 and 255 octets in length inclusive
-        (excluding framing bits but including FCS octets).
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsPkts128to255Octets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsPkts128to255Octets_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsPkts128to255Octets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                                 u_long *
-                                 etherStatsPkts128to255Octets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsPkts128to255Octets_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts128to255Octets_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsPkts128to255Octets data.
-     * copy (* etherStatsPkts128to255Octets_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsPkts128to255Octets_val_ptr) =
-        rowreq_ctx->data.etherStatsPkts128to255Octets;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsPkts128to255Octets_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsPkts256to511Octets
- * etherStatsPkts256to511Octets is subid 17 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.17
- * Description:
-The total number of packets (including bad
-        packets) received that were between
-        256 and 511 octets in length inclusive
-        (excluding framing bits but including FCS octets).
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsPkts256to511Octets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsPkts256to511Octets_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsPkts256to511Octets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                                 u_long *
-                                 etherStatsPkts256to511Octets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsPkts256to511Octets_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts256to511Octets_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsPkts256to511Octets data.
-     * copy (* etherStatsPkts256to511Octets_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsPkts256to511Octets_val_ptr) =
-        rowreq_ctx->data.etherStatsPkts256to511Octets;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsPkts256to511Octets_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsPkts512to1023Octets
- * etherStatsPkts512to1023Octets is subid 18 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.18
- * Description:
-The total number of packets (including bad
-        packets) received that were between
-        512 and 1023 octets in length inclusive
-        (excluding framing bits but including FCS octets).
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsPkts512to1023Octets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsPkts512to1023Octets_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsPkts512to1023Octets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                                  u_long *
-                                  etherStatsPkts512to1023Octets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsPkts512to1023Octets_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts512to1023Octets_get", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsPkts512to1023Octets data.
-     * copy (* etherStatsPkts512to1023Octets_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsPkts512to1023Octets_val_ptr) =
-        rowreq_ctx->data.etherStatsPkts512to1023Octets;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsPkts512to1023Octets_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsPkts1024to1518Octets
- * etherStatsPkts1024to1518Octets is subid 19 of etherStatsEntry.
- * Its status is Current, and its access level is ReadOnly.
- * OID: .1.3.6.1.2.1.16.1.1.1.19
- * Description:
-The total number of packets (including bad
-        packets) received that were between
-        1024 and 1518 octets in length inclusive
-        (excluding framing bits but including FCS octets).
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   0
- *
- *
- * Its syntax is COUNTER (based on perltype COUNTER)
- * The net-snmp type is ASN_COUNTER. The C type decl is u_long (u_long)
- */
-/**
- * Extract the current value of the etherStatsPkts1024to1518Octets data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsPkts1024to1518Octets_val_ptr
- *        Pointer to storage for a u_long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsPkts1024to1518Octets_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                                   u_long *
-                                   etherStatsPkts1024to1518Octets_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsPkts1024to1518Octets_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsPkts1024to1518Octets_get", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsPkts1024to1518Octets data.
-     * copy (* etherStatsPkts1024to1518Octets_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsPkts1024to1518Octets_val_ptr) =
-        rowreq_ctx->data.etherStatsPkts1024to1518Octets;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsPkts1024to1518Octets_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsOwner
- * etherStatsOwner is subid 20 of etherStatsEntry.
- * Its status is Current, and its access level is Create.
- * OID: .1.3.6.1.2.1.16.1.1.1.20
- * Description:
-The entity that configured this entry and is therefore
-        using the resources assigned to it.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 1      hashint   0
- *   settable   1
- *
- * Ranges:  0 - 127;
- *
- * Its syntax is OwnerString (based on perltype OCTETSTR)
- * The net-snmp type is ASN_OCTET_STR. The C type decl is char (char)
- * This data type requires a length.  (Max 127)
- */
-/**
- * Extract the current value of the etherStatsOwner data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsOwner_val_ptr_ptr
- *        Pointer to storage for a char variable
- * @param etherStatsOwner_val_ptr_len_ptr
- *        Pointer to a size_t. On entry, it will contain the size (in bytes)
- *        pointed to by etherStatsOwner.
- *        On exit, this value should contain the data size (in bytes).
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
-*
- * @note If you need more than (*etherStatsOwner_val_ptr_len_ptr) bytes of memory,
- *       allocate it using malloc() and update etherStatsOwner_val_ptr_ptr.
- *       <b>DO NOT</b> free the previous pointer.
- *       The MFD helper will release the memory you allocate.
- *
- * @remark If you call this function yourself, you are responsible
- *         for checking if the pointer changed, and freeing any
- *         previously allocated memory. (Not necessary if you pass
- *         in a pointer to static memory, obviously.)
- */
-int
-etherStatsOwner_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                    char **etherStatsOwner_val_ptr_ptr,
-                    size_t *etherStatsOwner_val_ptr_len_ptr)
-{
-   /** we should have a non-NULL pointer and enough storage */
-    netsnmp_assert((NULL != etherStatsOwner_val_ptr_ptr)
-                   && (NULL != *etherStatsOwner_val_ptr_ptr));
-    netsnmp_assert(NULL != etherStatsOwner_val_ptr_len_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsOwner_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsOwner data.
-     * copy (* etherStatsOwner_val_ptr_ptr ) data and (* etherStatsOwner_val_ptr_len_ptr ) from rowreq_ctx->data
-     */
-    /*
-     * make sure there is enough space for etherStatsOwner data
-     */
-    if ((NULL == (*etherStatsOwner_val_ptr_ptr)) ||
-        ((*etherStatsOwner_val_ptr_len_ptr) <
-         (rowreq_ctx->data.etherStatsOwner_len *
-          sizeof(rowreq_ctx->data.etherStatsOwner[0])))) {
-        /*
-         * allocate space for etherStatsOwner data
-         */
-        (*etherStatsOwner_val_ptr_ptr) =
-            malloc(rowreq_ctx->data.etherStatsOwner_len *
-                   sizeof(rowreq_ctx->data.etherStatsOwner[0]));
-        if (NULL == (*etherStatsOwner_val_ptr_ptr)) {
-            snmp_log(LOG_ERR, "could not allocate memory\n");
-            return MFD_ERROR;
-        }
-    }
-    (*etherStatsOwner_val_ptr_len_ptr) =
-        rowreq_ctx->data.etherStatsOwner_len *
-        sizeof(rowreq_ctx->data.etherStatsOwner[0]);
-    memcpy((*etherStatsOwner_val_ptr_ptr),
-           rowreq_ctx->data.etherStatsOwner,
-           rowreq_ctx->data.etherStatsOwner_len *
-           sizeof(rowreq_ctx->data.etherStatsOwner[0]));
-
-    return MFD_SUCCESS;
-}                               /* etherStatsOwner_get */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsStatus
- * etherStatsStatus is subid 21 of etherStatsEntry.
- * Its status is Current, and its access level is Create.
- * OID: .1.3.6.1.2.1.16.1.1.1.21
- * Description:
-The status of this etherStats entry.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  1      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   1
- *
- * Enum range: 2/8. Values:  valid(1), createRequest(2), underCreation(3), invalid(4)
- *
- * Its syntax is EntryStatus (based on perltype INTEGER)
- * The net-snmp type is ASN_INTEGER. The C type decl is long (u_long)
- */
-/**
- * Extract the current value of the etherStatsStatus data.
- *
- * Set a value using the data context for the row.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsStatus_val_ptr
- *        Pointer to storage for a long variable
- *
- * @retval MFD_SUCCESS         : success
- * @retval MFD_SKIP            : skip this node (no value for now)
- * @retval MFD_ERROR           : Any other error
- */
-int
-etherStatsStatus_get(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                     u_long * etherStatsStatus_val_ptr)
-{
-   /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != etherStatsStatus_val_ptr);
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsStatus_get",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:231:o: |-> Extract the current value of the etherStatsStatus data.
-     * copy (* etherStatsStatus_val_ptr ) from rowreq_ctx->data
-     */
-    (*etherStatsStatus_val_ptr) = rowreq_ctx->data.etherStatsStatus;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsStatus_get */
-
-
-
-/** @} */
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.h b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.h
deleted file mode 100644
index 5775212..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_get.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 12088 $ of $
- *
- * $Id:$
- *
- * @file etherStatsTable_data_get.h
- *
- * @addtogroup get
- *
- * Prototypes for get functions
- *
- * @{
- */
-#ifndef ETHERSTATSTABLE_DATA_GET_H
-#define ETHERSTATSTABLE_DATA_GET_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    /*
-     *********************************************************************
-     * GET function declarations
-     */
-
-    /*
-     *********************************************************************
-     * GET Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table etherStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * RMON-MIB::etherStatsTable is subid 1 of statistics.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.16.1.1, length: 9
-     */
-    /*
-     * indexes
-     */
-
-    int             etherStatsDataSource_get(etherStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             oid **
-                                             etherStatsDataSource_val_ptr_ptr,
-                                             size_t
-                                             *etherStatsDataSource_val_ptr_len_ptr);
-    int             etherStatsDropEvents_get(etherStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             u_long *
-                                             etherStatsDropEvents_val_ptr);
-    int             etherStatsOctets_get(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx,
-                                         u_long *
-                                         etherStatsOctets_val_ptr);
-    int             etherStatsPkts_get(etherStatsTable_rowreq_ctx *
-                                       rowreq_ctx,
-                                       u_long * etherStatsPkts_val_ptr);
-    int             etherStatsBroadcastPkts_get(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx,
-                                                u_long *
-                                                etherStatsBroadcastPkts_val_ptr);
-    int             etherStatsMulticastPkts_get(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx,
-                                                u_long *
-                                                etherStatsMulticastPkts_val_ptr);
-    int             etherStatsCRCAlignErrors_get(etherStatsTable_rowreq_ctx
-                                                 * rowreq_ctx,
-                                                 u_long *
-                                                 etherStatsCRCAlignErrors_val_ptr);
-    int             etherStatsUndersizePkts_get(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx,
-                                                u_long *
-                                                etherStatsUndersizePkts_val_ptr);
-    int             etherStatsOversizePkts_get(etherStatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               u_long *
-                                               etherStatsOversizePkts_val_ptr);
-    int             etherStatsFragments_get(etherStatsTable_rowreq_ctx *
-                                            rowreq_ctx,
-                                            u_long *
-                                            etherStatsFragments_val_ptr);
-    int             etherStatsJabbers_get(etherStatsTable_rowreq_ctx *
-                                          rowreq_ctx,
-                                          u_long *
-                                          etherStatsJabbers_val_ptr);
-    int             etherStatsCollisions_get(etherStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             u_long *
-                                             etherStatsCollisions_val_ptr);
-    int             etherStatsPkts64Octets_get(etherStatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               u_long *
-                                               etherStatsPkts64Octets_val_ptr);
-    int            
-        etherStatsPkts65to127Octets_get(etherStatsTable_rowreq_ctx *
-                                        rowreq_ctx,
-                                        u_long *
-                                        etherStatsPkts65to127Octets_val_ptr);
-    int            
-        etherStatsPkts128to255Octets_get(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx,
-                                         u_long *
-                                         etherStatsPkts128to255Octets_val_ptr);
-    int            
-        etherStatsPkts256to511Octets_get(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx,
-                                         u_long *
-                                         etherStatsPkts256to511Octets_val_ptr);
-    int            
-        etherStatsPkts512to1023Octets_get(etherStatsTable_rowreq_ctx *
-                                          rowreq_ctx,
-                                          u_long *
-                                          etherStatsPkts512to1023Octets_val_ptr);
-    int            
-        etherStatsPkts1024to1518Octets_get(etherStatsTable_rowreq_ctx *
-                                           rowreq_ctx,
-                                           u_long *
-                                           etherStatsPkts1024to1518Octets_val_ptr);
-    int             etherStatsOwner_get(etherStatsTable_rowreq_ctx *
-                                        rowreq_ctx,
-                                        char **etherStatsOwner_val_ptr_ptr,
-                                        size_t
-                                        *etherStatsOwner_val_ptr_len_ptr);
-    int             etherStatsStatus_get(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx,
-                                         u_long *
-                                         etherStatsStatus_val_ptr);
-
-
-    int            
-        etherStatsTable_indexes_set_tbl_idx(etherStatsTable_mib_index *
-                                            tbl_idx,
-                                            long etherStatsIndex_val);
-    int             etherStatsTable_indexes_set(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx,
-                                                long etherStatsIndex_val);
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* ETHERSTATSTABLE_DATA_GET_H */
-/** @} */
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_set.c b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_set.c
deleted file mode 100644
index 27f3a26..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_set.c
+++ /dev/null
@@ -1,977 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 12077 $ of $
- *
- * $Id:$
- *
- */
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "etherStatsTable.h"
-
-
-/** @defgroup data_set data_set: Routines to set data
- *
- * These routines are used to set the value for individual objects. The
- * row context is passed, along with the new value.
- * 
- * @{
- */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table etherStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * RMON-MIB::etherStatsTable is subid 1 of statistics.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.16.1.1, length: 9
- */
-    /*
-     * NOTE: if you update this chart, please update the versions in
-     *       local/mib2c-conf.d/parent-set.m2i
-     *       agent/mibgroup/helpers/baby_steps.c
-     * while you're at it.
-     */
-    /*
-     ***********************************************************************
-     * Baby Steps Flow Chart (2004.06.05)                                  *
-     *                                                                     *
-     * +--------------+    +================+    U = unconditional path    *
-     * |optional state|    ||required state||    S = path for success      *
-     * +--------------+    +================+    E = path for error        *
-     ***********************************************************************
-     *
-     *                        +--------------+
-     *                        |     pre      |
-     *                        |   request    |
-     *                        +--------------+
-     *                               | U
-     * +-------------+        +==============+
-     * |    row    |f|<-------||  object    ||
-     * |  create   |1|      E ||  lookup    ||
-     * +-------------+        +==============+
-     *     E |   | S                 | S
-     *       |   +------------------>|
-     *       |                +==============+
-     *       |              E ||   check    ||
-     *       |<---------------||   values   ||
-     *       |                +==============+
-     *       |                       | S
-     *       |                +==============+
-     *       |       +<-------||   undo     ||
-     *       |       |      E ||   setup    ||
-     *       |       |        +==============+
-     *       |       |               | S
-     *       |       |        +==============+
-     *       |       |        ||    set     ||-------------------------->+
-     *       |       |        ||   value    || E                         |
-     *       |       |        +==============+                           |
-     *       |       |               | S                                 |
-     *       |       |        +--------------+                           |
-     *       |       |        |    check     |-------------------------->|
-     *       |       |        |  consistency | E                         |
-     *       |       |        +--------------+                           |
-     *       |       |               | S                                 |
-     *       |       |        +==============+         +==============+  |
-     *       |       |        ||   commit   ||-------->||     undo   ||  |
-     *       |       |        ||            || E       ||    commit  ||  |
-     *       |       |        +==============+         +==============+  |
-     *       |       |               | S                     U |<--------+
-     *       |       |        +--------------+         +==============+
-     *       |       |        | irreversible |         ||    undo    ||
-     *       |       |        |    commit    |         ||     set    ||
-     *       |       |        +--------------+         +==============+
-     *       |       |               | U                     U |
-     *       |       +-------------->|<------------------------+
-     *       |                +==============+
-     *       |                ||   undo     ||
-     *       |                ||  cleanup   ||
-     *       |                +==============+
-     *       +---------------------->| U
-     *                               |
-     *                          (err && f1)------------------->+
-     *                               |                         |
-     *                        +--------------+         +--------------+
-     *                        |    post      |<--------|      row     |
-     *                        |   request    |       U |    release   |
-     *                        +--------------+         +--------------+
-     *
-     */
-
-/**
- * Setup up context with information needed to undo a set request.
- *
- * This function will be called before the individual node undo setup
- * functions are called. If you need to do any undo setup that is not
- * related to a specific column, you can do it here.
- *
- * Note that the undo context has been allocated with
- * etherStatsTable_allocate_data(), but may need extra
- * initialization similar to what you may have done in
- * etherStatsTable_rowreq_ctx_init().
- * Note that an individual node's undo_setup function will only be called
- * if that node is being set to a new value.
- *
- * If there is any setup specific to a particular column (e.g. allocating
- * memory for a string), you should do that setup in the node's undo_setup
- * function, so it won't be done unless it is necessary.
- *
- * @param rowreq_ctx
- *        Pointer to the table context (etherStatsTable_rowreq_ctx)
- *
- * @retval MFD_SUCCESS : success
- * @retval MFD_ERROR   : error. set will fail.
- */
-int
-etherStatsTable_undo_setup(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    int             rc = MFD_SUCCESS;
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_undo_setup",
-                "called\n"));
-
-    /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:451:M: |-> Setup etherStatsTable undo.
-     * set up etherStatsTable undo information, in preparation for a set.
-     * Undo storage is in (* etherStatsStatus_val_ptr )*
-     */
-
-    return rc;
-}                               /* etherStatsTable_undo_setup */
-
-/**
- * Undo a set request.
- *
- * This function will be called before the individual node undo
- * functions are called. If you need to do any undo that is not
- * related to a specific column, you can do it here.
- *
- * Note that an individual node's undo function will only be called
- * if that node is being set to a new value.
- *
- * If there is anything  specific to a particular column (e.g. releasing
- * memory for a string), you should do that setup in the node's undo
- * function, so it won't be done unless it is necessary.
- *
- * @param rowreq_ctx
- *        Pointer to the table context (etherStatsTable_rowreq_ctx)
- *
- * @retval MFD_SUCCESS : success
- * @retval MFD_ERROR   : error. set will fail.
- */
-int
-etherStatsTable_undo(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    int             rc = MFD_SUCCESS;
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_undo",
-                "called\n"));
-
-    /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:451:M: |-> etherStatsTable undo.
-     * etherStatsTable undo information, in response to a failed set.
-     * Undo storage is in (* etherStatsStatus_val_ptr )*
-     */
-
-    return rc;
-}                               /* etherStatsTable_undo_setup */
-
-/**
- * Cleanup up context undo information.
- *
- * This function will be called after set/commit processing. If you
- * allocated any resources in undo_setup, this is the place to release
- * those resources.
- *
- * This function is called regardless of the success or failure of the set
- * request. If you need to perform different steps for cleanup depending
- * on success or failure, you can add a flag to the rowreq_ctx.
- *
- * @param rowreq_ctx
- *        Pointer to the table context (etherStatsTable_rowreq_ctx)
- *
- * @retval MFD_SUCCESS : success
- * @retval MFD_ERROR   : error
- */
-int
-etherStatsTable_undo_cleanup(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    int             rc = MFD_SUCCESS;
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_undo_cleanup",
-                "called\n"));
-
-    /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:452:M: |-> Cleanup etherStatsTable undo.
-     * Undo storage is in (* etherStatsStatus_val_ptr )*
-     */
-
-    return rc;
-}                               /* etherStatsTable_undo_cleanup */
-
-/**
- * commit new values.
- *
- * At this point, you should have done everything you can to ensure that
- * this commit will not fail.
- *
- * Should you need different behavior depending on which columns were
- * set, rowreq_ctx->column_set_flags will indicate which writeable columns were
- * set. The definitions for the COLUMN_*_FLAG bits can be found in
- * etherStatsTable_oids.h.
- * A new row will have the MFD_ROW_CREATED bit set in rowreq_flags.
- *
- * @param etherStatsTable_rowreq_ctx
- *        Pointer to the users context.
- *
- * @retval MFD_SUCCESS : success
- * @retval MFD_ERROR   : error
- */
-int
-etherStatsTable_commit(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    int             rc = MFD_SUCCESS;
-    int             save_flags;
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_commit",
-                "called\n"));
-
-    /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * save flags, then clear until we actually do something
-     */
-    save_flags = rowreq_ctx->column_set_flags;
-    rowreq_ctx->column_set_flags = 0;
-
-    /*
-     * commit etherStatsTable data
-     * 1) check the column's flag in save_flags to see if it was set.
-     * 2) clear the flag when you handle that column
-     * 3) set the column's flag in column_set_flags if it needs undo
-     *    processing in case of a failure.
-     */
-    if (save_flags & COLUMN_ETHERSTATSDATASOURCE_FLAG) {
-        save_flags &= ~COLUMN_ETHERSTATSDATASOURCE_FLAG;        /* clear etherStatsDataSource */
-        /*
-         * TODO:482:o: |-> commit column etherStatsDataSource.
-         */
-        rc = -1;
-        if (-1 == rc) {
-            snmp_log(LOG_ERR,
-                     "etherStatsTable column etherStatsDataSource commit failed\n");
-        } else {
-            /*
-             * set flag, in case we need to undo etherStatsDataSource
-             */
-            rowreq_ctx->column_set_flags |=
-                COLUMN_ETHERSTATSDATASOURCE_FLAG;
-        }
-    }
-
-    if (save_flags & COLUMN_ETHERSTATSOWNER_FLAG) {
-        save_flags &= ~COLUMN_ETHERSTATSOWNER_FLAG;     /* clear etherStatsOwner */
-        /*
-         * TODO:482:o: |-> commit column etherStatsOwner.
-         */
-        rc = -1;
-        if (-1 == rc) {
-            snmp_log(LOG_ERR,
-                     "etherStatsTable column etherStatsOwner commit failed\n");
-        } else {
-            /*
-             * set flag, in case we need to undo etherStatsOwner
-             */
-            rowreq_ctx->column_set_flags |= COLUMN_ETHERSTATSOWNER_FLAG;
-        }
-    }
-
-    if (save_flags & COLUMN_ETHERSTATSSTATUS_FLAG) {
-        save_flags &= ~COLUMN_ETHERSTATSSTATUS_FLAG;    /* clear etherStatsStatus */
-        /*
-         * TODO:482:o: |-> commit column etherStatsStatus.
-         */
-        rc = -1;
-        if (-1 == rc) {
-            snmp_log(LOG_ERR,
-                     "etherStatsTable column etherStatsStatus commit failed\n");
-        } else {
-            /*
-             * set flag, in case we need to undo etherStatsStatus
-             */
-            rowreq_ctx->column_set_flags |= COLUMN_ETHERSTATSSTATUS_FLAG;
-        }
-    }
-
-    /*
-     * if we successfully commited this row, set the dirty flag.
-     */
-    if (MFD_SUCCESS == rc) {
-        rowreq_ctx->rowreq_flags |= MFD_ROW_DIRTY;
-    }
-
-    if (save_flags) {
-        snmp_log(LOG_ERR, "unhandled columns (0x%x) in commit\n",
-                 save_flags);
-        return MFD_ERROR;
-    }
-
-    return rc;
-}                               /* etherStatsTable_commit */
-
-/**
- * undo commit new values.
- *
- * Should you need different behavior depending on which columns were
- * set, rowreq_ctx->column_set_flags will indicate which writeable columns were
- * set. The definitions for the COLUMN_*_FLAG bits can be found in
- * etherStatsTable_oids.h.
- * A new row will have the MFD_ROW_CREATED bit set in rowreq_flags.
- *
- * @param etherStatsTable_rowreq_ctx
- *        Pointer to the users context.
- *
- * @retval MFD_SUCCESS : success
- * @retval MFD_ERROR   : error
- */
-int
-etherStatsTable_undo_commit(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    int             rc = MFD_SUCCESS;
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_undo_commit",
-                "called\n"));
-
-    /** we should have a non-NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:485:M: |-> Undo etherStatsTable commit.
-     * check the column's flag in rowreq_ctx->column_set_flags to see
-     * if it was set during commit, then undo it.
-     *
-     * eg: if (rowreq_ctx->column_set_flags & COLUMN__FLAG) {}
-     */
-
-
-    /*
-     * if we successfully un-commited this row, clear the dirty flag.
-     */
-    if (MFD_SUCCESS == rc) {
-        rowreq_ctx->rowreq_flags &= ~MFD_ROW_DIRTY;
-    }
-
-    return rc;
-}                               /* etherStatsTable_undo_commit */
-
-/*
- * TODO:440:M: Implement etherStatsTable node value checks.
- * TODO:450:M: Implement etherStatsTable undo functions.
- * TODO:460:M: Implement etherStatsTable set functions.
- * TODO:480:M: Implement etherStatsTable commit functions.
- */
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsDataSource
- * etherStatsDataSource is subid 2 of etherStatsEntry.
- * Its status is Current, and its access level is Create.
- * OID: .1.3.6.1.2.1.16.1.1.1.2
- * Description:
-This object identifies the source of the data that
-        this etherStats entry is configured to analyze.  This
-        source can be any ethernet interface on this device.
-        In order to identify a particular interface, this object
-        shall identify the instance of the ifIndex object,
-        defined in RFC 2233 [17], for the desired interface.
-        For example, if an entry were to receive data from
-        interface #1, this object would be set to ifIndex.1.
-
-        The statistics in this group reflect all packets
-        on the local network segment attached to the identified
-        interface.
-
-        An agent may or may not be able to tell if fundamental
-        changes to the media of the interface have occurred and
-        necessitate an invalidation of this entry.  For example, a
-        hot-pluggable ethernet card could be pulled out and replaced
-        by a token-ring card.  In such a case, if the agent has such
-        knowledge of the change, it is recommended that it
-        invalidate this entry.
-
-        This object may not be modified if the associated
-        etherStatsStatus object is equal to valid(1).
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   1
- *
- *
- * Its syntax is OBJECTID (based on perltype OBJECTID)
- * The net-snmp type is ASN_OBJECT_ID. The C type decl is oid (oid)
- * This data type requires a length.
- */
-/**
- * Check that the proposed new value is potentially valid.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsDataSource_val_ptr
- *        A oid containing the new value.
- * @param etherStatsDataSource_val_ptr_len
- *        The size (in bytes) of the data pointed to by etherStatsDataSource_val_ptr
- *
- * @retval MFD_SUCCESS        : incoming value is legal
- * @retval MFD_NOT_VALID_NOW  : incoming value is not valid now
- * @retval MFD_NOT_VALID_EVER : incoming value is never valid
- *
- * This is the place to check for requirements that are not
- * expressed in the mib syntax (for example, a requirement that
- * is detailed in the description for an object).
- *
- * You should check that the requested change between the undo value and the
- * new value is legal (ie, the transistion from one value to another
- * is legal).
- *      
- *@note
- * This check is only to determine if the new value
- * is \b potentially valid. This is the first check of many, and
- * is one of the simplest ones.
- * 
- *@note
- * this is not the place to do any checks for values
- * which depend on some other value in the mib. Those
- * types of checks should be done in the
- * etherStatsTable_check_dependencies() function.
- *
- * The following checks have already been done for you:
- *    The syntax is ASN_OBJECT_ID
- *    The length is < sizeof(rowreq_ctx->data.etherStatsDataSource).
- *
- * If there a no other checks you need to do, simply return MFD_SUCCESS.
- *
- */
-int
-etherStatsDataSource_check_value(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                                 oid * etherStatsDataSource_val_ptr,
-                                 size_t etherStatsDataSource_val_ptr_len)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsDataSource_check_value",
-                "called\n"));
-
-    /** should never get a NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-    netsnmp_assert(NULL != etherStatsDataSource_val_ptr);
-
-    /*
-     * TODO:441:o: |-> Check for valid etherStatsDataSource value.
-     */
-
-    return MFD_SUCCESS;         /* etherStatsDataSource value not illegal */
-}                               /* etherStatsDataSource_check_value */
-
-/**
- * Save old value information
- *
- * @param rowreq_ctx
- *        Pointer to the table context (etherStatsTable_rowreq_ctx)
- *
- * @retval MFD_SUCCESS : success
- * @retval MFD_ERROR   : error. set will fail.
- *
- * This function will be called after the table level undo setup function
- * etherStatsTable_undo_setup has been called.
- *
- *@note
- * this function will only be called if a new value is set for this column.
- *
- * If there is any setup specific to a particular column (e.g. allocating
- * memory for a string), you should do that setup in this function, so it
- * won't be done unless it is necessary.
- */
-int
-etherStatsDataSource_undo_setup(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsDataSource_undo_setup",
-                "called\n"));
-
-    /** should never get a NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:455:o: |-> Setup etherStatsDataSource undo.
-     */
-    /*
-     * copy etherStatsDataSource and etherStatsDataSource_len data
-     * set rowreq_ctx->undo->etherStatsDataSource from rowreq_ctx->data.etherStatsDataSource
-     */
-    memcpy(rowreq_ctx->undo->etherStatsDataSource,
-           rowreq_ctx->data.etherStatsDataSource,
-           (rowreq_ctx->data.etherStatsDataSource_len *
-            sizeof(rowreq_ctx->undo->etherStatsDataSource[0])));
-    rowreq_ctx->undo->etherStatsDataSource_len =
-        rowreq_ctx->data.etherStatsDataSource_len;
-
-
-    return MFD_SUCCESS;
-}                               /* etherStatsDataSource_undo_setup */
-
-/**
- * Set the new value.
- *
- * @param rowreq_ctx
- *        Pointer to the users context. You should know how to
- *        manipulate the value from this object.
- * @param etherStatsDataSource_val_ptr
- *        A oid containing the new value.
- * @param etherStatsDataSource_val_ptr_len
- *        The size (in bytes) of the data pointed to by etherStatsDataSource_val_ptr
- */
-int
-etherStatsDataSource_set(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                         oid * etherStatsDataSource_val_ptr,
-                         size_t etherStatsDataSource_val_ptr_len)
-{
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsDataSource_set",
-                "called\n"));
-
-    /** should never get a NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-    netsnmp_assert(NULL != etherStatsDataSource_val_ptr);
-
-    /*
-     * TODO:461:M: |-> Set etherStatsDataSource value.
-     * set etherStatsDataSource value in rowreq_ctx->data
-     */
-    memcpy(rowreq_ctx->data.etherStatsDataSource,
-           etherStatsDataSource_val_ptr, etherStatsDataSource_val_ptr_len);
-    /** convert bytes to number of oid */
-    rowreq_ctx->data.etherStatsDataSource_len =
-        etherStatsDataSource_val_ptr_len /
-        sizeof(etherStatsDataSource_val_ptr[0]);
-
-    return MFD_SUCCESS;
-}                               /* etherStatsDataSource_set */
-
-/**
- * undo the previous set.
- *
- * @param rowreq_ctx
- *        Pointer to the users context.
- */
-int
-etherStatsDataSource_undo(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsDataSource_undo",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:456:o: |-> Clean up etherStatsDataSource undo.
-     */
-    /*
-     * copy etherStatsDataSource and etherStatsDataSource_len data
-     * set rowreq_ctx->data.etherStatsDataSource from rowreq_ctx->undo->etherStatsDataSource
-     */
-    memcpy(rowreq_ctx->data.etherStatsDataSource,
-           rowreq_ctx->undo->etherStatsDataSource,
-           (rowreq_ctx->undo->etherStatsDataSource_len *
-            sizeof(rowreq_ctx->data.etherStatsDataSource[0])));
-    rowreq_ctx->data.etherStatsDataSource_len =
-        rowreq_ctx->undo->etherStatsDataSource_len;
-
-
-    return MFD_SUCCESS;
-}                               /* etherStatsDataSource_undo */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsOwner
- * etherStatsOwner is subid 20 of etherStatsEntry.
- * Its status is Current, and its access level is Create.
- * OID: .1.3.6.1.2.1.16.1.1.1.20
- * Description:
-The entity that configured this entry and is therefore
-        using the resources assigned to it.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  0      hasdefval 0
- *   readable   1     iscolumn 1     ranges 1      hashint   0
- *   settable   1
- *
- * Ranges:  0 - 127;
- *
- * Its syntax is OwnerString (based on perltype OCTETSTR)
- * The net-snmp type is ASN_OCTET_STR. The C type decl is char (char)
- * This data type requires a length.  (Max 127)
- */
-/**
- * Check that the proposed new value is potentially valid.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsOwner_val_ptr
- *        A char containing the new value.
- * @param etherStatsOwner_val_ptr_len
- *        The size (in bytes) of the data pointed to by etherStatsOwner_val_ptr
- *
- * @retval MFD_SUCCESS        : incoming value is legal
- * @retval MFD_NOT_VALID_NOW  : incoming value is not valid now
- * @retval MFD_NOT_VALID_EVER : incoming value is never valid
- *
- * This is the place to check for requirements that are not
- * expressed in the mib syntax (for example, a requirement that
- * is detailed in the description for an object).
- *
- * You should check that the requested change between the undo value and the
- * new value is legal (ie, the transistion from one value to another
- * is legal).
- *      
- *@note
- * This check is only to determine if the new value
- * is \b potentially valid. This is the first check of many, and
- * is one of the simplest ones.
- * 
- *@note
- * this is not the place to do any checks for values
- * which depend on some other value in the mib. Those
- * types of checks should be done in the
- * etherStatsTable_check_dependencies() function.
- *
- * The following checks have already been done for you:
- *    The syntax is ASN_OCTET_STR
- *    The length is < sizeof(rowreq_ctx->data.etherStatsOwner).
- *    The length is in (one of) the range set(s):  0 - 127
- *
- * If there a no other checks you need to do, simply return MFD_SUCCESS.
- *
- */
-int
-etherStatsOwner_check_value(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                            char *etherStatsOwner_val_ptr,
-                            size_t etherStatsOwner_val_ptr_len)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsOwner_check_value",
-                "called\n"));
-
-    /** should never get a NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-    netsnmp_assert(NULL != etherStatsOwner_val_ptr);
-
-    /*
-     * TODO:441:o: |-> Check for valid etherStatsOwner value.
-     */
-
-    return MFD_SUCCESS;         /* etherStatsOwner value not illegal */
-}                               /* etherStatsOwner_check_value */
-
-/**
- * Save old value information
- *
- * @param rowreq_ctx
- *        Pointer to the table context (etherStatsTable_rowreq_ctx)
- *
- * @retval MFD_SUCCESS : success
- * @retval MFD_ERROR   : error. set will fail.
- *
- * This function will be called after the table level undo setup function
- * etherStatsTable_undo_setup has been called.
- *
- *@note
- * this function will only be called if a new value is set for this column.
- *
- * If there is any setup specific to a particular column (e.g. allocating
- * memory for a string), you should do that setup in this function, so it
- * won't be done unless it is necessary.
- */
-int
-etherStatsOwner_undo_setup(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsOwner_undo_setup",
-                "called\n"));
-
-    /** should never get a NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:455:o: |-> Setup etherStatsOwner undo.
-     */
-    /*
-     * copy etherStatsOwner and etherStatsOwner_len data
-     * set rowreq_ctx->undo->etherStatsOwner from rowreq_ctx->data.etherStatsOwner
-     */
-    memcpy(rowreq_ctx->undo->etherStatsOwner,
-           rowreq_ctx->data.etherStatsOwner,
-           (rowreq_ctx->data.etherStatsOwner_len *
-            sizeof(rowreq_ctx->undo->etherStatsOwner[0])));
-    rowreq_ctx->undo->etherStatsOwner_len =
-        rowreq_ctx->data.etherStatsOwner_len;
-
-
-    return MFD_SUCCESS;
-}                               /* etherStatsOwner_undo_setup */
-
-/**
- * Set the new value.
- *
- * @param rowreq_ctx
- *        Pointer to the users context. You should know how to
- *        manipulate the value from this object.
- * @param etherStatsOwner_val_ptr
- *        A char containing the new value.
- * @param etherStatsOwner_val_ptr_len
- *        The size (in bytes) of the data pointed to by etherStatsOwner_val_ptr
- */
-int
-etherStatsOwner_set(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                    char *etherStatsOwner_val_ptr,
-                    size_t etherStatsOwner_val_ptr_len)
-{
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsOwner_set",
-                "called\n"));
-
-    /** should never get a NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-    netsnmp_assert(NULL != etherStatsOwner_val_ptr);
-
-    /*
-     * TODO:461:M: |-> Set etherStatsOwner value.
-     * set etherStatsOwner value in rowreq_ctx->data
-     */
-    memcpy(rowreq_ctx->data.etherStatsOwner, etherStatsOwner_val_ptr,
-           etherStatsOwner_val_ptr_len);
-    /** convert bytes to number of char */
-    rowreq_ctx->data.etherStatsOwner_len =
-        etherStatsOwner_val_ptr_len / sizeof(etherStatsOwner_val_ptr[0]);
-
-    return MFD_SUCCESS;
-}                               /* etherStatsOwner_set */
-
-/**
- * undo the previous set.
- *
- * @param rowreq_ctx
- *        Pointer to the users context.
- */
-int
-etherStatsOwner_undo(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsOwner_undo",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:456:o: |-> Clean up etherStatsOwner undo.
-     */
-    /*
-     * copy etherStatsOwner and etherStatsOwner_len data
-     * set rowreq_ctx->data.etherStatsOwner from rowreq_ctx->undo->etherStatsOwner
-     */
-    memcpy(rowreq_ctx->data.etherStatsOwner,
-           rowreq_ctx->undo->etherStatsOwner,
-           (rowreq_ctx->undo->etherStatsOwner_len *
-            sizeof(rowreq_ctx->data.etherStatsOwner[0])));
-    rowreq_ctx->data.etherStatsOwner_len =
-        rowreq_ctx->undo->etherStatsOwner_len;
-
-
-    return MFD_SUCCESS;
-}                               /* etherStatsOwner_undo */
-
-/*---------------------------------------------------------------------
- * RMON-MIB::etherStatsEntry.etherStatsStatus
- * etherStatsStatus is subid 21 of etherStatsEntry.
- * Its status is Current, and its access level is Create.
- * OID: .1.3.6.1.2.1.16.1.1.1.21
- * Description:
-The status of this etherStats entry.
- *
- * Attributes:
- *   accessible 1     isscalar 0     enums  1      hasdefval 0
- *   readable   1     iscolumn 1     ranges 0      hashint   0
- *   settable   1
- *
- * Enum range: 2/8. Values:  valid(1), createRequest(2), underCreation(3), invalid(4)
- *
- * Its syntax is EntryStatus (based on perltype INTEGER)
- * The net-snmp type is ASN_INTEGER. The C type decl is long (u_long)
- */
-/**
- * Check that the proposed new value is potentially valid.
- *
- * @param rowreq_ctx
- *        Pointer to the row request context.
- * @param etherStatsStatus_val
- *        A long containing the new value.
- *
- * @retval MFD_SUCCESS        : incoming value is legal
- * @retval MFD_NOT_VALID_NOW  : incoming value is not valid now
- * @retval MFD_NOT_VALID_EVER : incoming value is never valid
- *
- * This is the place to check for requirements that are not
- * expressed in the mib syntax (for example, a requirement that
- * is detailed in the description for an object).
- *
- * You should check that the requested change between the undo value and the
- * new value is legal (ie, the transistion from one value to another
- * is legal).
- *      
- *@note
- * This check is only to determine if the new value
- * is \b potentially valid. This is the first check of many, and
- * is one of the simplest ones.
- * 
- *@note
- * this is not the place to do any checks for values
- * which depend on some other value in the mib. Those
- * types of checks should be done in the
- * etherStatsTable_check_dependencies() function.
- *
- * The following checks have already been done for you:
- *    The syntax is ASN_INTEGER
- *    The value is one of  valid(1), createRequest(2), underCreation(3), invalid(4)
- *
- * If there a no other checks you need to do, simply return MFD_SUCCESS.
- *
- */
-int
-etherStatsStatus_check_value(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                             u_long etherStatsStatus_val)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsStatus_check_value",
-                "called\n"));
-
-    /** should never get a NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:441:o: |-> Check for valid etherStatsStatus value.
-     */
-
-    return MFD_SUCCESS;         /* etherStatsStatus value not illegal */
-}                               /* etherStatsStatus_check_value */
-
-/**
- * Save old value information
- *
- * @param rowreq_ctx
- *        Pointer to the table context (etherStatsTable_rowreq_ctx)
- *
- * @retval MFD_SUCCESS : success
- * @retval MFD_ERROR   : error. set will fail.
- *
- * This function will be called after the table level undo setup function
- * etherStatsTable_undo_setup has been called.
- *
- *@note
- * this function will only be called if a new value is set for this column.
- *
- * If there is any setup specific to a particular column (e.g. allocating
- * memory for a string), you should do that setup in this function, so it
- * won't be done unless it is necessary.
- */
-int
-etherStatsStatus_undo_setup(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsStatus_undo_setup",
-                "called\n"));
-
-    /** should never get a NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:455:o: |-> Setup etherStatsStatus undo.
-     */
-    /*
-     * copy etherStatsStatus data
-     * set rowreq_ctx->undo->etherStatsStatus from rowreq_ctx->data.etherStatsStatus
-     */
-    rowreq_ctx->undo->etherStatsStatus = rowreq_ctx->data.etherStatsStatus;
-
-
-    return MFD_SUCCESS;
-}                               /* etherStatsStatus_undo_setup */
-
-/**
- * Set the new value.
- *
- * @param rowreq_ctx
- *        Pointer to the users context. You should know how to
- *        manipulate the value from this object.
- * @param etherStatsStatus_val
- *        A long containing the new value.
- */
-int
-etherStatsStatus_set(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                     u_long etherStatsStatus_val)
-{
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsStatus_set",
-                "called\n"));
-
-    /** should never get a NULL pointer */
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:461:M: |-> Set etherStatsStatus value.
-     * set etherStatsStatus value in rowreq_ctx->data
-     */
-    rowreq_ctx->data.etherStatsStatus = etherStatsStatus_val;
-
-    return MFD_SUCCESS;
-}                               /* etherStatsStatus_set */
-
-/**
- * undo the previous set.
- *
- * @param rowreq_ctx
- *        Pointer to the users context.
- */
-int
-etherStatsStatus_undo(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsStatus_undo",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * TODO:456:o: |-> Clean up etherStatsStatus undo.
-     */
-    /*
-     * copy etherStatsStatus data
-     * set rowreq_ctx->data.etherStatsStatus from rowreq_ctx->undo->etherStatsStatus
-     */
-    rowreq_ctx->data.etherStatsStatus = rowreq_ctx->undo->etherStatsStatus;
-
-
-    return MFD_SUCCESS;
-}                               /* etherStatsStatus_undo */
-
-/** @} */
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_set.h b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_set.h
deleted file mode 100644
index 258e087..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_set.h
+++ /dev/null
@@ -1,356 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 12077 $ of $ 
- *
- * $Id:$
- */
-#ifndef ETHERSTATSTABLE_DATA_SET_H
-#define ETHERSTATSTABLE_DATA_SET_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    /*
-     *********************************************************************
-     * SET function declarations
-     */
-
-    /*
-     *********************************************************************
-     * SET Table declarations
-     */
-/**********************************************************************
- **********************************************************************
- ***
- *** Table etherStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-    /*
-     * RMON-MIB::etherStatsTable is subid 1 of statistics.
-     * Its status is Current.
-     * OID: .1.3.6.1.2.1.16.1.1, length: 9
-     */
-
-
-    int             etherStatsTable_undo_setup(etherStatsTable_rowreq_ctx *
-                                               rowreq_ctx);
-    int             etherStatsTable_undo_cleanup(etherStatsTable_rowreq_ctx
-                                                 * rowreq_ctx);
-    int             etherStatsTable_undo(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx);
-    int             etherStatsTable_commit(etherStatsTable_rowreq_ctx *
-                                           rowreq_ctx);
-    int             etherStatsTable_undo_commit(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx);
-
-
-    int            
-        etherStatsDataSource_check_value(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx,
-                                         oid *
-                                         etherStatsDataSource_val_ptr,
-                                         size_t
-                                         etherStatsDataSource_val_ptr_len);
-    int            
-        etherStatsDataSource_undo_setup(etherStatsTable_rowreq_ctx *
-                                        rowreq_ctx);
-    int             etherStatsDataSource_set(etherStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             oid *
-                                             etherStatsDataSource_val_ptr,
-                                             size_t
-                                             etherStatsDataSource_val_ptr_len);
-    int             etherStatsDataSource_undo(etherStatsTable_rowreq_ctx *
-                                              rowreq_ctx);
-
-    int            
-        etherStatsDropEvents_check_value(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx,
-                                         u_long etherStatsDropEvents_val);
-    int            
-        etherStatsDropEvents_undo_setup(etherStatsTable_rowreq_ctx *
-                                        rowreq_ctx);
-    int             etherStatsDropEvents_set(etherStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             u_long
-                                             etherStatsDropEvents_val);
-    int             etherStatsDropEvents_undo(etherStatsTable_rowreq_ctx *
-                                              rowreq_ctx);
-
-    int             etherStatsOctets_check_value(etherStatsTable_rowreq_ctx
-                                                 * rowreq_ctx,
-                                                 u_long
-                                                 etherStatsOctets_val);
-    int             etherStatsOctets_undo_setup(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx);
-    int             etherStatsOctets_set(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx,
-                                         u_long etherStatsOctets_val);
-    int             etherStatsOctets_undo(etherStatsTable_rowreq_ctx *
-                                          rowreq_ctx);
-
-    int             etherStatsPkts_check_value(etherStatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               u_long etherStatsPkts_val);
-    int             etherStatsPkts_undo_setup(etherStatsTable_rowreq_ctx *
-                                              rowreq_ctx);
-    int             etherStatsPkts_set(etherStatsTable_rowreq_ctx *
-                                       rowreq_ctx,
-                                       u_long etherStatsPkts_val);
-    int             etherStatsPkts_undo(etherStatsTable_rowreq_ctx *
-                                        rowreq_ctx);
-
-    int            
-        etherStatsBroadcastPkts_check_value(etherStatsTable_rowreq_ctx *
-                                            rowreq_ctx,
-                                            u_long
-                                            etherStatsBroadcastPkts_val);
-    int            
-        etherStatsBroadcastPkts_undo_setup(etherStatsTable_rowreq_ctx *
-                                           rowreq_ctx);
-    int             etherStatsBroadcastPkts_set(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx,
-                                                u_long
-                                                etherStatsBroadcastPkts_val);
-    int             etherStatsBroadcastPkts_undo(etherStatsTable_rowreq_ctx
-                                                 * rowreq_ctx);
-
-    int            
-        etherStatsMulticastPkts_check_value(etherStatsTable_rowreq_ctx *
-                                            rowreq_ctx,
-                                            u_long
-                                            etherStatsMulticastPkts_val);
-    int            
-        etherStatsMulticastPkts_undo_setup(etherStatsTable_rowreq_ctx *
-                                           rowreq_ctx);
-    int             etherStatsMulticastPkts_set(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx,
-                                                u_long
-                                                etherStatsMulticastPkts_val);
-    int             etherStatsMulticastPkts_undo(etherStatsTable_rowreq_ctx
-                                                 * rowreq_ctx);
-
-    int            
-        etherStatsCRCAlignErrors_check_value(etherStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             u_long
-                                             etherStatsCRCAlignErrors_val);
-    int            
-        etherStatsCRCAlignErrors_undo_setup(etherStatsTable_rowreq_ctx *
-                                            rowreq_ctx);
-    int             etherStatsCRCAlignErrors_set(etherStatsTable_rowreq_ctx
-                                                 * rowreq_ctx,
-                                                 u_long
-                                                 etherStatsCRCAlignErrors_val);
-    int            
-        etherStatsCRCAlignErrors_undo(etherStatsTable_rowreq_ctx *
-                                      rowreq_ctx);
-
-    int            
-        etherStatsUndersizePkts_check_value(etherStatsTable_rowreq_ctx *
-                                            rowreq_ctx,
-                                            u_long
-                                            etherStatsUndersizePkts_val);
-    int            
-        etherStatsUndersizePkts_undo_setup(etherStatsTable_rowreq_ctx *
-                                           rowreq_ctx);
-    int             etherStatsUndersizePkts_set(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx,
-                                                u_long
-                                                etherStatsUndersizePkts_val);
-    int             etherStatsUndersizePkts_undo(etherStatsTable_rowreq_ctx
-                                                 * rowreq_ctx);
-
-    int            
-        etherStatsOversizePkts_check_value(etherStatsTable_rowreq_ctx *
-                                           rowreq_ctx,
-                                           u_long
-                                           etherStatsOversizePkts_val);
-    int            
-        etherStatsOversizePkts_undo_setup(etherStatsTable_rowreq_ctx *
-                                          rowreq_ctx);
-    int             etherStatsOversizePkts_set(etherStatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               u_long
-                                               etherStatsOversizePkts_val);
-    int             etherStatsOversizePkts_undo(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx);
-
-    int            
-        etherStatsFragments_check_value(etherStatsTable_rowreq_ctx *
-                                        rowreq_ctx,
-                                        u_long etherStatsFragments_val);
-    int            
-        etherStatsFragments_undo_setup(etherStatsTable_rowreq_ctx *
-                                       rowreq_ctx);
-    int             etherStatsFragments_set(etherStatsTable_rowreq_ctx *
-                                            rowreq_ctx,
-                                            u_long
-                                            etherStatsFragments_val);
-    int             etherStatsFragments_undo(etherStatsTable_rowreq_ctx *
-                                             rowreq_ctx);
-
-    int            
-        etherStatsJabbers_check_value(etherStatsTable_rowreq_ctx *
-                                      rowreq_ctx,
-                                      u_long etherStatsJabbers_val);
-    int             etherStatsJabbers_undo_setup(etherStatsTable_rowreq_ctx
-                                                 * rowreq_ctx);
-    int             etherStatsJabbers_set(etherStatsTable_rowreq_ctx *
-                                          rowreq_ctx,
-                                          u_long etherStatsJabbers_val);
-    int             etherStatsJabbers_undo(etherStatsTable_rowreq_ctx *
-                                           rowreq_ctx);
-
-    int            
-        etherStatsCollisions_check_value(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx,
-                                         u_long etherStatsCollisions_val);
-    int            
-        etherStatsCollisions_undo_setup(etherStatsTable_rowreq_ctx *
-                                        rowreq_ctx);
-    int             etherStatsCollisions_set(etherStatsTable_rowreq_ctx *
-                                             rowreq_ctx,
-                                             u_long
-                                             etherStatsCollisions_val);
-    int             etherStatsCollisions_undo(etherStatsTable_rowreq_ctx *
-                                              rowreq_ctx);
-
-    int            
-        etherStatsPkts64Octets_check_value(etherStatsTable_rowreq_ctx *
-                                           rowreq_ctx,
-                                           u_long
-                                           etherStatsPkts64Octets_val);
-    int            
-        etherStatsPkts64Octets_undo_setup(etherStatsTable_rowreq_ctx *
-                                          rowreq_ctx);
-    int             etherStatsPkts64Octets_set(etherStatsTable_rowreq_ctx *
-                                               rowreq_ctx,
-                                               u_long
-                                               etherStatsPkts64Octets_val);
-    int             etherStatsPkts64Octets_undo(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx);
-
-    int            
-        etherStatsPkts65to127Octets_check_value(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx,
-                                                u_long
-                                                etherStatsPkts65to127Octets_val);
-    int            
-        etherStatsPkts65to127Octets_undo_setup(etherStatsTable_rowreq_ctx *
-                                               rowreq_ctx);
-    int            
-        etherStatsPkts65to127Octets_set(etherStatsTable_rowreq_ctx *
-                                        rowreq_ctx,
-                                        u_long
-                                        etherStatsPkts65to127Octets_val);
-    int            
-        etherStatsPkts65to127Octets_undo(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx);
-
-    int            
-        etherStatsPkts128to255Octets_check_value(etherStatsTable_rowreq_ctx
-                                                 * rowreq_ctx,
-                                                 u_long
-                                                 etherStatsPkts128to255Octets_val);
-    int            
-        etherStatsPkts128to255Octets_undo_setup(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx);
-    int            
-        etherStatsPkts128to255Octets_set(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx,
-                                         u_long
-                                         etherStatsPkts128to255Octets_val);
-    int            
-        etherStatsPkts128to255Octets_undo(etherStatsTable_rowreq_ctx *
-                                          rowreq_ctx);
-
-    int            
-        etherStatsPkts256to511Octets_check_value(etherStatsTable_rowreq_ctx
-                                                 * rowreq_ctx,
-                                                 u_long
-                                                 etherStatsPkts256to511Octets_val);
-    int            
-        etherStatsPkts256to511Octets_undo_setup(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx);
-    int            
-        etherStatsPkts256to511Octets_set(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx,
-                                         u_long
-                                         etherStatsPkts256to511Octets_val);
-    int            
-        etherStatsPkts256to511Octets_undo(etherStatsTable_rowreq_ctx *
-                                          rowreq_ctx);
-
-    int            
-        etherStatsPkts512to1023Octets_check_value
-        (etherStatsTable_rowreq_ctx * rowreq_ctx,
-         u_long etherStatsPkts512to1023Octets_val);
-    int            
-        etherStatsPkts512to1023Octets_undo_setup(etherStatsTable_rowreq_ctx
-                                                 * rowreq_ctx);
-    int            
-        etherStatsPkts512to1023Octets_set(etherStatsTable_rowreq_ctx *
-                                          rowreq_ctx,
-                                          u_long
-                                          etherStatsPkts512to1023Octets_val);
-    int            
-        etherStatsPkts512to1023Octets_undo(etherStatsTable_rowreq_ctx *
-                                           rowreq_ctx);
-
-    int            
-        etherStatsPkts1024to1518Octets_check_value
-        (etherStatsTable_rowreq_ctx * rowreq_ctx,
-         u_long etherStatsPkts1024to1518Octets_val);
-    int            
-        etherStatsPkts1024to1518Octets_undo_setup
-        (etherStatsTable_rowreq_ctx * rowreq_ctx);
-    int            
-        etherStatsPkts1024to1518Octets_set(etherStatsTable_rowreq_ctx *
-                                           rowreq_ctx,
-                                           u_long
-                                           etherStatsPkts1024to1518Octets_val);
-    int            
-        etherStatsPkts1024to1518Octets_undo(etherStatsTable_rowreq_ctx *
-                                            rowreq_ctx);
-
-    int             etherStatsOwner_check_value(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx,
-                                                char
-                                                *etherStatsOwner_val_ptr,
-                                                size_t
-                                                etherStatsOwner_val_ptr_len);
-    int             etherStatsOwner_undo_setup(etherStatsTable_rowreq_ctx *
-                                               rowreq_ctx);
-    int             etherStatsOwner_set(etherStatsTable_rowreq_ctx *
-                                        rowreq_ctx,
-                                        char *etherStatsOwner_val_ptr,
-                                        size_t
-                                        etherStatsOwner_val_ptr_len);
-    int             etherStatsOwner_undo(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx);
-
-    int             etherStatsStatus_check_value(etherStatsTable_rowreq_ctx
-                                                 * rowreq_ctx,
-                                                 u_long
-                                                 etherStatsStatus_val);
-    int             etherStatsStatus_undo_setup(etherStatsTable_rowreq_ctx
-                                                * rowreq_ctx);
-    int             etherStatsStatus_set(etherStatsTable_rowreq_ctx *
-                                         rowreq_ctx,
-                                         u_long etherStatsStatus_val);
-    int             etherStatsStatus_undo(etherStatsTable_rowreq_ctx *
-                                          rowreq_ctx);
-
-
-    int            
-        etherStatsTable_check_dependencies(etherStatsTable_rowreq_ctx *
-                                           ctx);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* ETHERSTATSTABLE_DATA_SET_H */
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_enums.h b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_enums.h
deleted file mode 100644
index a13c0b7..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_enums.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : generic-table-enums.m2c 12526 2005-07-15 22:41:16Z rstory $
- *
- * $Id:$
- */
-#ifndef ETHERSTATSTABLE_ENUMS_H
-#define ETHERSTATSTABLE_ENUMS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    /*
-     * NOTES on enums
-     * ==============
-     *
-     * Value Mapping
-     * -------------
-     * If the values for your data type don't exactly match the
-     * possible values defined by the mib, you should map them
-     * below. For example, a boolean flag (1/0) is usually represented
-     * as a TruthValue in a MIB, which maps to the values (1/2).
-     *
-     */
-/*************************************************************************
- *************************************************************************
- *
- * enum definitions for table etherStatsTable
- *
- *************************************************************************
- *************************************************************************/
-
-/*************************************************************
- * constants for enums for the MIB node
- * etherStatsStatus (EntryStatus / ASN_INTEGER)
- *
- * since a Textual Convention may be referenced more than once in a
- * MIB, protect againt redefinitions of the enum values.
- */
-#ifndef ENTRYSTATUS_ENUMS
-#define ENTRYSTATUS_ENUMS
-
-#define ENTRYSTATUS_VALID  1
-#define ENTRYSTATUS_CREATEREQUEST  2
-#define ENTRYSTATUS_UNDERCREATION  3
-#define ENTRYSTATUS_INVALID  4
-
-#endif                          /* ENTRYSTATUS_ENUMS */
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* ETHERSTATSTABLE_ENUMS_H */
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c
deleted file mode 100644
index 221c608..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c
+++ /dev/null
@@ -1,2232 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 15899 $ of $ 
- *
- * $Id:$
- */
-/*
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- * ***                                                               ***
- * ***  NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE  ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THIS FILE DOES NOT CONTAIN ANY USER EDITABLE CODE.      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THE GENERATED CODE IS INTERNAL IMPLEMENTATION, AND      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***    IS SUBJECT TO CHANGE WITHOUT WARNING IN FUTURE RELEASES.   ***
- * ***                                                               ***
- * ***                                                               ***
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- */
-
-/*
- * standard Net-SNMP includes 
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-/*
- * include our parent header 
- */
-#include "etherStatsTable.h"
-
-
-#include <net-snmp/agent/table_container.h>
-#include <net-snmp/library/container.h>
-
-#include "etherStatsTable_interface.h"
-
-#include <ctype.h>
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(table_container_row_insert)
-netsnmp_feature_require(check_all_requests_error)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_type_and_max_size)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-/**********************************************************************
- **********************************************************************
- ***
- *** Table etherStatsTable
- ***
- **********************************************************************
- **********************************************************************/
-/*
- * RMON-MIB::etherStatsTable is subid 1 of statistics.
- * Its status is Current.
- * OID: .1.3.6.1.2.1.16.1.1, length: 9
- */
-typedef struct etherStatsTable_interface_ctx_s {
-
-    netsnmp_container *container;
-    netsnmp_cache  *cache;
-
-    etherStatsTable_registration *user_ctx;
-
-    netsnmp_table_registration_info tbl_info;
-
-    netsnmp_baby_steps_access_methods access_multiplexer;
-
-    u_int           table_dirty;
-
-} etherStatsTable_interface_ctx;
-
-static etherStatsTable_interface_ctx etherStatsTable_if_ctx;
-
-static void    
-_etherStatsTable_container_init(etherStatsTable_interface_ctx * if_ctx);
-static void    
-_etherStatsTable_container_shutdown(etherStatsTable_interface_ctx *
-                                    if_ctx);
-
-
-netsnmp_container *
-etherStatsTable_container_get(void)
-{
-    return etherStatsTable_if_ctx.container;
-}
-
-etherStatsTable_registration *
-etherStatsTable_registration_get(void)
-{
-    return etherStatsTable_if_ctx.user_ctx;
-}
-
-etherStatsTable_registration *
-etherStatsTable_registration_set(etherStatsTable_registration * newreg)
-{
-    etherStatsTable_registration *old = etherStatsTable_if_ctx.user_ctx;
-    etherStatsTable_if_ctx.user_ctx = newreg;
-    return old;
-}
-
-int
-etherStatsTable_container_size(void)
-{
-    return CONTAINER_SIZE(etherStatsTable_if_ctx.container);
-}
-
-u_int
-etherStatsTable_dirty_get(void)
-{
-    return etherStatsTable_if_ctx.table_dirty;
-}
-
-void
-etherStatsTable_dirty_set(u_int status)
-{
-    DEBUGMSGTL(("etherStatsTable:etherStatsTable_dirty_set",
-                "called. was %d, now %d\n",
-                etherStatsTable_if_ctx.table_dirty, status));
-    etherStatsTable_if_ctx.table_dirty = status;
-}
-
-/*
- * mfd multiplexer modes
- */
-static Netsnmp_Node_Handler _mfd_etherStatsTable_pre_request;
-static Netsnmp_Node_Handler _mfd_etherStatsTable_post_request;
-static Netsnmp_Node_Handler _mfd_etherStatsTable_object_lookup;
-static Netsnmp_Node_Handler _mfd_etherStatsTable_get_values;
-static Netsnmp_Node_Handler _mfd_etherStatsTable_check_objects;
-static Netsnmp_Node_Handler _mfd_etherStatsTable_undo_setup;
-static Netsnmp_Node_Handler _mfd_etherStatsTable_set_values;
-static Netsnmp_Node_Handler _mfd_etherStatsTable_undo_cleanup;
-static Netsnmp_Node_Handler _mfd_etherStatsTable_undo_values;
-static Netsnmp_Node_Handler _mfd_etherStatsTable_commit;
-static Netsnmp_Node_Handler _mfd_etherStatsTable_undo_commit;
-static Netsnmp_Node_Handler _mfd_etherStatsTable_irreversible_commit;
-
-NETSNMP_STATIC_INLINE int
-_etherStatsTable_undo_column(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                             netsnmp_variable_list * var, int column);
-
-NETSNMP_STATIC_INLINE int
-_etherStatsTable_check_indexes(etherStatsTable_rowreq_ctx * rowreq_ctx);
-
-etherStatsTable_data *etherStatsTable_allocate_data(void);
-
-/**
- * @internal
- * Initialize the table etherStatsTable 
- *    (Define its contents and how it's structured)
- */
-void
-_etherStatsTable_initialize_interface(etherStatsTable_registration *
-                                      reg_ptr, u_long flags)
-{
-    netsnmp_baby_steps_access_methods *access_multiplexer =
-        &etherStatsTable_if_ctx.access_multiplexer;
-    netsnmp_table_registration_info *tbl_info =
-        &etherStatsTable_if_ctx.tbl_info;
-    netsnmp_handler_registration *reginfo;
-    netsnmp_mib_handler *handler;
-    int             mfd_modes = 0;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_etherStatsTable_initialize_interface", "called\n"));
-
-
-    /*************************************************
-     *
-     * save interface context for etherStatsTable
-     */
-    /*
-     * Setting up the table's definition
-     */
-    netsnmp_table_helper_add_indexes(tbl_info, ASN_INTEGER,
-                                               /** index: etherStatsIndex */
-                                     0);
-
-    /*
-     * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
-     */
-    tbl_info->min_column = ETHERSTATSTABLE_MIN_COL;
-    tbl_info->max_column = ETHERSTATSTABLE_MAX_COL;
-
-    /*
-     * save users context
-     */
-    etherStatsTable_if_ctx.user_ctx = reg_ptr;
-
-    /*
-     * call data access initialization code
-     */
-    etherStatsTable_init_data(reg_ptr);
-
-    /*
-     * set up the container
-     */
-    _etherStatsTable_container_init(&etherStatsTable_if_ctx);
-    if (NULL == etherStatsTable_if_ctx.container) {
-        snmp_log(LOG_ERR,
-                 "could not initialize container for etherStatsTable\n");
-        return;
-    }
-
-    /*
-     * access_multiplexer: REQUIRED wrapper for get request handling
-     */
-    access_multiplexer->object_lookup = _mfd_etherStatsTable_object_lookup;
-    access_multiplexer->get_values = _mfd_etherStatsTable_get_values;
-
-    /*
-     * no wrappers yet
-     */
-    access_multiplexer->pre_request = _mfd_etherStatsTable_pre_request;
-    access_multiplexer->post_request = _mfd_etherStatsTable_post_request;
-
-
-    /*
-     * REQUIRED wrappers for set request handling
-     */
-    access_multiplexer->object_syntax_checks =
-        _mfd_etherStatsTable_check_objects;
-    access_multiplexer->undo_setup = _mfd_etherStatsTable_undo_setup;
-    access_multiplexer->undo_cleanup = _mfd_etherStatsTable_undo_cleanup;
-    access_multiplexer->set_values = _mfd_etherStatsTable_set_values;
-    access_multiplexer->undo_sets = _mfd_etherStatsTable_undo_values;
-
-    /*
-     * no wrappers yet
-     */
-    access_multiplexer->commit = _mfd_etherStatsTable_commit;
-    access_multiplexer->undo_commit = _mfd_etherStatsTable_undo_commit;
-    access_multiplexer->irreversible_commit =
-        _mfd_etherStatsTable_irreversible_commit;
-
-    /*************************************************
-     *
-     * Create a registration, save our reg data, register table.
-     */
-    DEBUGMSGTL(("etherStatsTable:init_etherStatsTable",
-                "Registering etherStatsTable as a mibs-for-dummies table.\n"));
-    handler =
-        netsnmp_baby_steps_access_multiplexer_get(access_multiplexer);
-    reginfo =
-        netsnmp_handler_registration_create("etherStatsTable", handler,
-                                            etherStatsTable_oid,
-                                            etherStatsTable_oid_size,
-                                            HANDLER_CAN_BABY_STEP |
-                                            HANDLER_CAN_RWRITE);
-    if (NULL == reginfo) {
-        snmp_log(LOG_ERR, "error registering table etherStatsTable\n");
-        return;
-    }
-    reginfo->my_reg_void = &etherStatsTable_if_ctx;
-
-    /*************************************************
-     *
-     * set up baby steps handler, create it and inject it
-     */
-    if (access_multiplexer->object_lookup)
-        mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->set_values)
-        mfd_modes |= BABY_STEP_SET_VALUES;
-    if (access_multiplexer->irreversible_commit)
-        mfd_modes |= BABY_STEP_IRREVERSIBLE_COMMIT;
-    if (access_multiplexer->object_syntax_checks)
-        mfd_modes |= BABY_STEP_CHECK_OBJECT;
-
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-    if (access_multiplexer->undo_setup)
-        mfd_modes |= BABY_STEP_UNDO_SETUP;
-    if (access_multiplexer->undo_cleanup)
-        mfd_modes |= BABY_STEP_UNDO_CLEANUP;
-    if (access_multiplexer->undo_sets)
-        mfd_modes |= BABY_STEP_UNDO_SETS;
-
-    if (access_multiplexer->row_creation)
-        mfd_modes |= BABY_STEP_ROW_CREATE;
-    if (access_multiplexer->consistency_checks)
-        mfd_modes |= BABY_STEP_CHECK_CONSISTENCY;
-    if (access_multiplexer->commit)
-        mfd_modes |= BABY_STEP_COMMIT;
-    if (access_multiplexer->undo_commit)
-        mfd_modes |= BABY_STEP_UNDO_COMMIT;
-
-    handler = netsnmp_baby_steps_handler_get(mfd_modes);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject row_merge helper with prefix rootoid_len + 2 (entry.col)
-     */
-    handler = netsnmp_get_row_merge_handler(reginfo->rootoid_len + 2);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject container_table helper
-     */
-    handler =
-        netsnmp_container_table_handler_get(tbl_info,
-                                            etherStatsTable_if_ctx.
-                                            container,
-                                            TABLE_CONTAINER_KEY_NETSNMP_INDEX);
-    netsnmp_inject_handler(reginfo, handler);
-
-    /*************************************************
-     *
-     * inject cache helper
-     */
-    if (NULL != etherStatsTable_if_ctx.cache) {
-        handler = netsnmp_cache_handler_get(etherStatsTable_if_ctx.cache);
-        netsnmp_inject_handler(reginfo, handler);
-    }
-
-    /*
-     * register table
-     */
-    netsnmp_register_table(reginfo, tbl_info);
-
-}                               /* _etherStatsTable_initialize_interface */
-
-/**
- * @internal
- * Shutdown the table etherStatsTable
- */
-void
-_etherStatsTable_shutdown_interface(etherStatsTable_registration * reg_ptr)
-{
-    /*
-     * shutdown the container
-     */
-    _etherStatsTable_container_shutdown(&etherStatsTable_if_ctx);
-}
-
-void
-etherStatsTable_valid_columns_set(netsnmp_column_info *vc)
-{
-    etherStatsTable_if_ctx.tbl_info.valid_columns = vc;
-}                               /* etherStatsTable_valid_columns_set */
-
-/**
- * @internal
- * convert the index component stored in the context to an oid
- */
-int
-etherStatsTable_index_to_oid(netsnmp_index * oid_idx,
-                             etherStatsTable_mib_index * mib_idx)
-{
-    int             err = SNMP_ERR_NOERROR;
-
-    /*
-     * temp storage for parsing indexes
-     */
-    /*
-     * etherStatsIndex(1)/INTEGER32/ASN_INTEGER/long(long)//l/A/w/e/R/d/h
-     */
-    netsnmp_variable_list var_etherStatsIndex;
-
-    /*
-     * set up varbinds
-     */
-    memset(&var_etherStatsIndex, 0x00, sizeof(var_etherStatsIndex));
-    var_etherStatsIndex.type = ASN_INTEGER;
-
-    /*
-     * chain temp index varbinds together
-     */
-    var_etherStatsIndex.next_variable = NULL;
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_index_to_oid",
-                "called\n"));
-
-    /*
-     * etherStatsIndex(1)/INTEGER32/ASN_INTEGER/long(long)//l/A/w/e/R/d/h 
-     */
-    snmp_set_var_value(&var_etherStatsIndex,
-                       (u_char *) & mib_idx->etherStatsIndex,
-                       sizeof(mib_idx->etherStatsIndex));
-
-
-    err = build_oid_noalloc(oid_idx->oids, oid_idx->len, &oid_idx->len,
-                            NULL, 0, &var_etherStatsIndex);
-    if (err)
-        snmp_log(LOG_ERR, "error %d converting index to oid\n", err);
-
-    /*
-     * parsing may have allocated memory. free it.
-     */
-    snmp_reset_var_buffers(&var_etherStatsIndex);
-
-    return err;
-}                               /* etherStatsTable_index_to_oid */
-
-/**
- * extract etherStatsTable indexes from a netsnmp_index
- *
- * @retval SNMP_ERR_NOERROR  : no error
- * @retval SNMP_ERR_GENERR   : error
- */
-int
-etherStatsTable_index_from_oid(netsnmp_index * oid_idx,
-                               etherStatsTable_mib_index * mib_idx)
-{
-    int             err = SNMP_ERR_NOERROR;
-
-    /*
-     * temp storage for parsing indexes
-     */
-    /*
-     * etherStatsIndex(1)/INTEGER32/ASN_INTEGER/long(long)//l/A/w/e/R/d/h
-     */
-    netsnmp_variable_list var_etherStatsIndex;
-
-    /*
-     * set up varbinds
-     */
-    memset(&var_etherStatsIndex, 0x00, sizeof(var_etherStatsIndex));
-    var_etherStatsIndex.type = ASN_INTEGER;
-
-    /*
-     * chain temp index varbinds together
-     */
-    var_etherStatsIndex.next_variable = NULL;
-
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_index_from_oid",
-                "called\n"));
-
-    /*
-     * parse the oid into the individual index components
-     */
-    err = parse_oid_indexes(oid_idx->oids, oid_idx->len,
-                            &var_etherStatsIndex);
-    if (err == SNMP_ERR_NOERROR) {
-        /*
-         * copy out values
-         */
-        mib_idx->etherStatsIndex =
-            *((long *) var_etherStatsIndex.val.string);
-
-
-    }
-
-    /*
-     * parsing may have allocated memory. free it.
-     */
-    snmp_reset_var_buffers(&var_etherStatsIndex);
-
-    return err;
-}                               /* etherStatsTable_index_from_oid */
-
-
-/*
- * etherStatsTable_allocate_data
- *
- * Purpose: create new etherStatsTable_data.
- */
-etherStatsTable_data *
-etherStatsTable_allocate_data(void)
-{
-    etherStatsTable_data *rtn = SNMP_MALLOC_TYPEDEF(etherStatsTable_data);
-
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_allocate_data",
-                "called\n"));
-
-    if (NULL == rtn) {
-        snmp_log(LOG_ERR, "unable to malloc memory for new "
-                 "etherStatsTable_data.\n");
-    }
-
-    return rtn;
-}                               /* etherStatsTable_allocate_data */
-
-/*
- * etherStatsTable_release_data
- *
- * Purpose: release etherStatsTable data.
- */
-void
-etherStatsTable_release_data(etherStatsTable_data * data)
-{
-    DEBUGMSGTL(("verbose:etherStatsTable:etherStatsTable_release_data",
-                "called\n"));
-
-    free(data);
-}                               /* etherStatsTable_release_data */
-
-/*
- *********************************************************************
- * @internal
- * allocate resources for a etherStatsTable_rowreq_ctx
- */
-etherStatsTable_rowreq_ctx *
-etherStatsTable_allocate_rowreq_ctx(void *user_init_ctx)
-{
-    etherStatsTable_rowreq_ctx *rowreq_ctx =
-        SNMP_MALLOC_TYPEDEF(etherStatsTable_rowreq_ctx);
-
-    DEBUGMSGTL(("internal:etherStatsTable:etherStatsTable_allocate_rowreq_ctx", "called\n"));
-
-    if (NULL == rowreq_ctx) {
-        snmp_log(LOG_ERR, "Couldn't allocate memory for a "
-                 "etherStatsTable_rowreq_ctx.\n");
-        return NULL;
-    }
-
-    rowreq_ctx->oid_idx.oids = rowreq_ctx->oid_tmp;
-
-    rowreq_ctx->etherStatsTable_data_list = NULL;
-
-    /*
-     * if we allocated data, call init routine
-     */
-    if (!(rowreq_ctx->rowreq_flags & MFD_ROW_DATA_FROM_USER)) {
-        if (SNMPERR_SUCCESS !=
-            etherStatsTable_rowreq_ctx_init(rowreq_ctx, user_init_ctx)) {
-            etherStatsTable_release_rowreq_ctx(rowreq_ctx);
-            rowreq_ctx = NULL;
-        }
-    }
-
-    return rowreq_ctx;
-}                               /* etherStatsTable_allocate_rowreq_ctx */
-
-/*
- * @internal
- * release resources for a etherStatsTable_rowreq_ctx
- */
-void
-etherStatsTable_release_rowreq_ctx(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    DEBUGMSGTL(("internal:etherStatsTable:etherStatsTable_release_rowreq_ctx", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    etherStatsTable_rowreq_ctx_cleanup(rowreq_ctx);
-
-    if (rowreq_ctx->undo)
-        etherStatsTable_release_data(rowreq_ctx->undo);
-
-    /*
-     * free index oid pointer
-     */
-    if (rowreq_ctx->oid_idx.oids != rowreq_ctx->oid_tmp)
-        free(rowreq_ctx->oid_idx.oids);
-
-    SNMP_FREE(rowreq_ctx);
-}                               /* etherStatsTable_release_rowreq_ctx */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_etherStatsTable_pre_request(netsnmp_mib_handler *handler,
-                                 netsnmp_handler_registration *reginfo,
-                                 netsnmp_agent_request_info *agtreq_info,
-                                 netsnmp_request_info *requests)
-{
-    int             rc;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_pre_request", "called\n"));
-
-    if (1 != netsnmp_row_merge_status_first(reginfo, agtreq_info)) {
-        DEBUGMSGTL(("internal:etherStatsTable",
-                    "skipping additional pre_request\n"));
-        return SNMP_ERR_NOERROR;
-    }
-
-    rc = etherStatsTable_pre_request(etherStatsTable_if_ctx.user_ctx);
-    if (MFD_SUCCESS != rc) {
-        /*
-         * nothing we can do about it but log it
-         */
-        DEBUGMSGTL(("etherStatsTable", "error %d from "
-                    "etherStatsTable_pre_request\n", rc));
-        netsnmp_request_set_error_all(requests, SNMP_VALIDATE_ERR(rc));
-    }
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_etherStatsTable_pre_request */
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_etherStatsTable_post_request(netsnmp_mib_handler *handler,
-                                  netsnmp_handler_registration *reginfo,
-                                  netsnmp_agent_request_info *agtreq_info,
-                                  netsnmp_request_info *requests)
-{
-    etherStatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-    int             rc, packet_rc;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_post_request", "called\n"));
-
-    /*
-     * release row context, if deleted
-     */
-    if (rowreq_ctx && (rowreq_ctx->rowreq_flags & MFD_ROW_DELETED))
-        etherStatsTable_release_rowreq_ctx(rowreq_ctx);
-
-    /*
-     * wait for last call before calling user
-     */
-    if (1 != netsnmp_row_merge_status_last(reginfo, agtreq_info)) {
-        DEBUGMSGTL(("internal:etherStatsTable",
-                    "waiting for last post_request\n"));
-        return SNMP_ERR_NOERROR;
-    }
-
-    packet_rc = netsnmp_check_all_requests_error(agtreq_info->asp, 0);
-    if ((MFD_SUCCESS != packet_rc) && etherStatsTable_dirty_get()) {
-        /*
-         * we shouldn't get here. the undo steps should also clear
-         * the dirty flags.
-         */
-        snmp_log(LOG_WARNING,
-                 "etherStatsTable dirty flag set in post_request "
-                 "but status != SUCCESS.\n");
-    }
-
-    rc = etherStatsTable_post_request(etherStatsTable_if_ctx.user_ctx,
-                                      packet_rc);
-    if (MFD_SUCCESS != rc) {
-        /*
-         * nothing we can do about it but log it
-         */
-        DEBUGMSGTL(("etherStatsTable", "error %d from "
-                    "etherStatsTable_post_request\n", rc));
-    }
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_etherStatsTable_post_request */
-
-/**
- * @internal
- * wrapper
- */
-static etherStatsTable_rowreq_ctx *
-_mfd_etherStatsTable_rowreq_from_index(netsnmp_index * oid_idx,
-                                       int *rc_ptr)
-{
-    etherStatsTable_rowreq_ctx *rowreq_ctx;
-    etherStatsTable_mib_index mib_idx;
-    int             rc;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_rowreq_from_index", "called\n"));
-
-    if (NULL == rc_ptr)
-        rc_ptr = &rc;
-    *rc_ptr = MFD_SUCCESS;
-
-    memset(&mib_idx, 0x0, sizeof(mib_idx));
-
-    /*
-     * try to parse oid
-     */
-    *rc_ptr = etherStatsTable_index_from_oid(oid_idx, &mib_idx);
-    if (MFD_SUCCESS != *rc_ptr) {
-        DEBUGMSGT(("etherStatsTable", "error parsing index\n"));
-        return NULL;
-    }
-
-    /*
-     * allocate new context
-     */
-    rowreq_ctx = etherStatsTable_allocate_rowreq_ctx(NULL);
-    if (NULL == rowreq_ctx) {
-        *rc_ptr = MFD_ERROR;
-        return NULL;            /* msg already logged */
-    }
-
-    memcpy(&rowreq_ctx->tbl_idx, &mib_idx, sizeof(mib_idx));
-
-    /*
-     * check indexes
-     */
-    *rc_ptr = _etherStatsTable_check_indexes(rowreq_ctx);
-    if (MFD_SUCCESS != *rc_ptr) {
-        netsnmp_assert((*rc_ptr == SNMP_ERR_NOCREATION) ||
-                       (*rc_ptr == SNMP_ERR_INCONSISTENTNAME));
-        etherStatsTable_release_rowreq_ctx(rowreq_ctx);
-        return NULL;
-    }
-
-    /*
-     * copy indexes
-     */
-    rowreq_ctx->oid_idx.len = oid_idx->len;
-    memcpy(rowreq_ctx->oid_idx.oids, oid_idx->oids,
-           oid_idx->len * sizeof(oid));
-
-    return rowreq_ctx;
-}                               /* _mfd_etherStatsTable_rowreq_from_index */
-
-
-/**
- * @internal
- * wrapper
- */
-static int
-_mfd_etherStatsTable_object_lookup(netsnmp_mib_handler *handler,
-                                   netsnmp_handler_registration *reginfo,
-                                   netsnmp_agent_request_info *agtreq_info,
-                                   netsnmp_request_info *requests)
-{
-    int             rc = SNMP_ERR_NOERROR;
-    etherStatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_object_lookup", "called\n"));
-
-    /*
-     * get our context from mfd
-     * etherStatsTable_interface_ctx *if_ctx =
-     *             (etherStatsTable_interface_ctx *)reginfo->my_reg_void;
-     */
-
-    if (NULL == rowreq_ctx) {
-        netsnmp_table_request_info *tblreq_info;
-        netsnmp_index   oid_idx;
-
-        tblreq_info = netsnmp_extract_table_info(requests);
-        if (NULL == tblreq_info) {
-            snmp_log(LOG_ERR, "request had no table info\n");
-            return MFD_ERROR;
-        }
-
-        /*
-         * try create rowreq
-         */
-        oid_idx.oids = tblreq_info->index_oid;
-        oid_idx.len = tblreq_info->index_oid_len;
-
-        rowreq_ctx = _mfd_etherStatsTable_rowreq_from_index(&oid_idx, &rc);
-        if (MFD_SUCCESS == rc) {
-            netsnmp_assert(NULL != rowreq_ctx);
-            rowreq_ctx->rowreq_flags |= MFD_ROW_CREATED;
-            /*
-             * add rowreq_ctx to request data lists
-             */
-            netsnmp_container_table_row_insert(requests,
-                                               (netsnmp_index *)
-                                               rowreq_ctx);
-        }
-    }
-
-    if (MFD_SUCCESS != rc)
-        netsnmp_request_set_error_all(requests, rc);
-    else
-        etherStatsTable_row_prep(rowreq_ctx);
-
-    return SNMP_VALIDATE_ERR(rc);
-}                               /* _mfd_etherStatsTable_object_lookup */
-
-/***********************************************************************
- *
- * GET processing
- *
- ***********************************************************************/
-/*
- * @internal
- * Retrieve the value for a particular column
- */
-NETSNMP_STATIC_INLINE int
-_etherStatsTable_get_column(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                            netsnmp_variable_list * var, int column)
-{
-    int             rc = SNMPERR_SUCCESS;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column",
-                "called for %d\n", column));
-
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    switch (column) {
-
-        /*
-         * (INDEX) etherStatsIndex(1)/INTEGER32/ASN_INTEGER/long(long)//l/A/w/e/R/d/h 
-         */
-    case COLUMN_ETHERSTATSINDEX:
-        var->type = ASN_INTEGER;
-        var->val_len = sizeof(long);
-        (*var->val.integer) = rowreq_ctx->tbl_idx.etherStatsIndex;
-        break;
-
-        /*
-         * etherStatsDataSource(2)/OBJECTID/ASN_OBJECT_ID/oid(oid)//L/A/W/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSDATASOURCE:
-        if (!
-            (COLUMN_ETHERSTATSDATASOURCE_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsDataSource) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->type = ASN_OBJECT_ID;
-        rc = etherStatsDataSource_get(rowreq_ctx,
-                                      (oid **) & var->val.string,
-                                      &var->val_len);
-        break;
-
-        /*
-         * etherStatsDropEvents(3)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSDROPEVENTS:
-        if (!
-            (COLUMN_ETHERSTATSDROPEVENTS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsDropEvents) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsDropEvents_get(rowreq_ctx,
-                                      (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsOctets(4)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSOCTETS:
-        if (!
-            (COLUMN_ETHERSTATSOCTETS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsOctets) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsOctets_get(rowreq_ctx, (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsPkts(5)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS:
-        if (!
-            (COLUMN_ETHERSTATSPKTS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsPkts) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsPkts_get(rowreq_ctx, (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsBroadcastPkts(6)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSBROADCASTPKTS:
-        if (!
-            (COLUMN_ETHERSTATSBROADCASTPKTS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsBroadcastPkts) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsBroadcastPkts_get(rowreq_ctx,
-                                         (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsMulticastPkts(7)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSMULTICASTPKTS:
-        if (!
-            (COLUMN_ETHERSTATSMULTICASTPKTS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsMulticastPkts) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsMulticastPkts_get(rowreq_ctx,
-                                         (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsCRCAlignErrors(8)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSCRCALIGNERRORS:
-        if (!
-            (COLUMN_ETHERSTATSCRCALIGNERRORS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsCRCAlignErrors) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsCRCAlignErrors_get(rowreq_ctx,
-                                          (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsUndersizePkts(9)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSUNDERSIZEPKTS:
-        if (!
-            (COLUMN_ETHERSTATSUNDERSIZEPKTS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsUndersizePkts) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsUndersizePkts_get(rowreq_ctx,
-                                         (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsOversizePkts(10)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSOVERSIZEPKTS:
-        if (!
-            (COLUMN_ETHERSTATSOVERSIZEPKTS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsOversizePkts) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsOversizePkts_get(rowreq_ctx,
-                                        (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsFragments(11)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSFRAGMENTS:
-        if (!
-            (COLUMN_ETHERSTATSFRAGMENTS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsFragments) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsFragments_get(rowreq_ctx,
-                                     (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsJabbers(12)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSJABBERS:
-        if (!
-            (COLUMN_ETHERSTATSJABBERS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsJabbers) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsJabbers_get(rowreq_ctx, (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsCollisions(13)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSCOLLISIONS:
-        if (!
-            (COLUMN_ETHERSTATSCOLLISIONS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsCollisions) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsCollisions_get(rowreq_ctx,
-                                      (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsPkts64Octets(14)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS64OCTETS:
-        if (!
-            (COLUMN_ETHERSTATSPKTS64OCTETS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsPkts64Octets) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsPkts64Octets_get(rowreq_ctx,
-                                        (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsPkts65to127Octets(15)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS65TO127OCTETS:
-        if (!
-            (COLUMN_ETHERSTATSPKTS65TO127OCTETS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsPkts65to127Octets) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsPkts65to127Octets_get(rowreq_ctx,
-                                             (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsPkts128to255Octets(16)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS128TO255OCTETS:
-        if (!
-            (COLUMN_ETHERSTATSPKTS128TO255OCTETS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsPkts128to255Octets) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsPkts128to255Octets_get(rowreq_ctx,
-                                              (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsPkts256to511Octets(17)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS256TO511OCTETS:
-        if (!
-            (COLUMN_ETHERSTATSPKTS256TO511OCTETS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsPkts256to511Octets) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsPkts256to511Octets_get(rowreq_ctx,
-                                              (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsPkts512to1023Octets(18)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS512TO1023OCTETS:
-        if (!
-            (COLUMN_ETHERSTATSPKTS512TO1023OCTETS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsPkts512to1023Octets) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsPkts512to1023Octets_get(rowreq_ctx,
-                                               (u_long *) var->val.string);
-        break;
-
-        /*
-         * etherStatsPkts1024to1518Octets(19)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS1024TO1518OCTETS:
-        if (!
-            (COLUMN_ETHERSTATSPKTS1024TO1518OCTETS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsPkts1024to1518Octets) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_COUNTER;
-        rc = etherStatsPkts1024to1518Octets_get(rowreq_ctx,
-                                                (u_long *) var->val.
-                                                string);
-        break;
-
-        /*
-         * etherStatsOwner(20)/OwnerString/ASN_OCTET_STR/char(char)//L/A/W/e/R/d/h 
-         */
-    case COLUMN_ETHERSTATSOWNER:
-        if (!
-            (COLUMN_ETHERSTATSOWNER_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsOwner) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->type = ASN_OCTET_STR;
-        rc = etherStatsOwner_get(rowreq_ctx, (char **) &var->val.string,
-                                 &var->val_len);
-        break;
-
-        /*
-         * etherStatsStatus(21)/EntryStatus/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h 
-         */
-    case COLUMN_ETHERSTATSSTATUS:
-        if (!
-            (COLUMN_ETHERSTATSSTATUS_FLAG & rowreq_ctx->
-             column_exists_flags)) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "column %d (etherStatsStatus) doesn't exist\n", column));
-            return MFD_SKIP;
-        }
-
-        var->val_len = sizeof(u_long);
-        var->type = ASN_INTEGER;
-        rc = etherStatsStatus_get(rowreq_ctx, (u_long *) var->val.string);
-        break;
-
-    default:
-        if (ETHERSTATSTABLE_MIN_COL <= column
-            && column <= ETHERSTATSTABLE_MAX_COL) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_column", "assume column %d is reserved\n", column));
-            rc = MFD_SKIP;
-        } else {
-            snmp_log(LOG_ERR,
-                     "unknown column %d in _etherStatsTable_get_column.\n",
-                     column);
-        }
-        break;
-    }
-
-    return rc;
-}                               /* _etherStatsTable_get_column */
-
-int
-_mfd_etherStatsTable_get_values(netsnmp_mib_handler *handler,
-                                netsnmp_handler_registration *reginfo,
-                                netsnmp_agent_request_info *agtreq_info,
-                                netsnmp_request_info *requests)
-{
-    etherStatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-    netsnmp_table_request_info *tri;
-    u_char         *old_string;
-    void            (*dataFreeHook) (void *);
-    int             rc;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_get_values",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    DEBUGMSGTL(("9:etherStatsTable:_mfd_etherStatsTable_get_values",
-                "exists %u\n", rowreq_ctx->column_exists_flags));
-
-    for (; requests; requests = requests->next) {
-        /*
-         * save old pointer, so we can free it if replaced
-         */
-        old_string = requests->requestvb->val.string;
-        dataFreeHook = requests->requestvb->dataFreeHook;
-        if (NULL == requests->requestvb->val.string) {
-            requests->requestvb->val.string = requests->requestvb->buf;
-            requests->requestvb->val_len =
-                sizeof(requests->requestvb->buf);
-        } else if (requests->requestvb->buf ==
-                   requests->requestvb->val.string) {
-            if (requests->requestvb->val_len !=
-                sizeof(requests->requestvb->buf))
-                requests->requestvb->val_len =
-                    sizeof(requests->requestvb->buf);
-        }
-
-        /*
-         * get column data
-         */
-        tri = netsnmp_extract_table_info(requests);
-        if (NULL == tri)
-            continue;
-
-        rc = _etherStatsTable_get_column(rowreq_ctx, requests->requestvb,
-                                         tri->colnum);
-        if (rc) {
-            if (MFD_SKIP == rc) {
-                requests->requestvb->type = SNMP_NOSUCHINSTANCE;
-                rc = SNMP_ERR_NOERROR;
-            }
-        } else if (NULL == requests->requestvb->val.string) {
-            snmp_log(LOG_ERR, "NULL varbind data pointer!\n");
-            rc = SNMP_ERR_GENERR;
-        }
-        if (rc)
-            netsnmp_request_set_error(requests, SNMP_VALIDATE_ERR(rc));
-
-        /*
-         * if the buffer wasn't used previously for the old data (i.e. it
-         * was allcoated memory)  and the get routine replaced the pointer,
-         * we need to free the previous pointer.
-         */
-        if (old_string && (old_string != requests->requestvb->buf) &&
-            (requests->requestvb->val.string != old_string)) {
-            if (dataFreeHook)
-                (*dataFreeHook) (old_string);
-            else
-                free(old_string);
-        }
-    }                           /* for results */
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_etherStatsTable_get_values */
-
-NETSNMP_STATIC_INLINE int
-_etherStatsTable_check_indexes(etherStatsTable_rowreq_ctx * rowreq_ctx)
-{
-    int             rc = SNMPERR_SUCCESS;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_etherStatsTable_check_indexes",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-
-    /*
-     * (INDEX) etherStatsIndex(1)/INTEGER32/ASN_INTEGER/long(long)//l/A/w/e/R/d/h 
-     */
-    /*
-     * check defined range(s). 
-     */
-    if ((SNMPERR_SUCCESS == rc)
-        && ((rowreq_ctx->tbl_idx.etherStatsIndex < 1)
-            || (rowreq_ctx->tbl_idx.etherStatsIndex > 65535))
-        ) {
-        rc = SNMP_ERR_WRONGVALUE;
-    }
-    if (MFD_SUCCESS != rc)
-        return rc;
-    rc = etherStatsIndex_check_index(rowreq_ctx);
-    if (MFD_SUCCESS != rc)
-        return SNMP_ERR_NOCREATION;
-
-    /*
-     * if individual parts look ok, check them as a whole
-     */
-    return etherStatsTable_validate_index(etherStatsTable_if_ctx.user_ctx,
-                                          rowreq_ctx);
-}                               /* _etherStatsTable_check_indexes */
-
-/***********************************************************************
- *
- * SET processing
- *
- ***********************************************************************/
-
-/*----------------------------------------------------------------------
- *
- * SET: Syntax checks
- *
- *---------------------------------------------------------------------*/
-/*
- * @internal
- * Check the syntax for a particular column
- */
-NETSNMP_STATIC_INLINE int
-_etherStatsTable_check_column(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                              netsnmp_variable_list * var, int column)
-{
-    int             rc = SNMPERR_SUCCESS;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_etherStatsTable_check_column",
-                "called for %d\n", column));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    switch (column) {
-        /*
-         * (INDEX) etherStatsIndex(1)/INTEGER32/ASN_INTEGER/long(long)//l/A/w/e/R/d/h 
-         */
-    case COLUMN_ETHERSTATSINDEX:
-        rc = SNMP_ERR_NOTWRITABLE;      /* can not change index of active row */
-        break;
-
-        /*
-         * etherStatsDataSource(2)/OBJECTID/ASN_OBJECT_ID/oid(oid)//L/A/W/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSDATASOURCE:
-        rc = netsnmp_check_vb_type_and_max_size(var, ASN_OBJECT_ID,
-                                                sizeof(rowreq_ctx->data.
-                                                       etherStatsDataSource));
-        if (SNMPERR_SUCCESS != rc) {
-            DEBUGMSGTL(("etherStatsTable:_etherStatsTable_check_column:etherStatsDataSource", "varbind validation failed (eg bad type or size)\n"));
-        } else {
-            rc = etherStatsDataSource_check_value(rowreq_ctx,
-                                                  (oid *) var->val.string,
-                                                  var->val_len);
-            if ((MFD_SUCCESS != rc) && (MFD_NOT_VALID_EVER != rc)
-                && (MFD_NOT_VALID_NOW != rc)) {
-                snmp_log(LOG_ERR,
-                         "bad rc %d from etherStatsDataSource_check_value\n",
-                         rc);
-                rc = SNMP_ERR_GENERR;
-            }
-        }
-        break;
-
-        /*
-         * etherStatsDropEvents(3)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSDROPEVENTS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsOctets(4)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSOCTETS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsPkts(5)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsBroadcastPkts(6)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSBROADCASTPKTS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsMulticastPkts(7)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSMULTICASTPKTS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsCRCAlignErrors(8)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSCRCALIGNERRORS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsUndersizePkts(9)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSUNDERSIZEPKTS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsOversizePkts(10)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSOVERSIZEPKTS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsFragments(11)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSFRAGMENTS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsJabbers(12)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSJABBERS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsCollisions(13)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSCOLLISIONS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsPkts64Octets(14)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS64OCTETS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsPkts65to127Octets(15)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS65TO127OCTETS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsPkts128to255Octets(16)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS128TO255OCTETS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsPkts256to511Octets(17)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS256TO511OCTETS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsPkts512to1023Octets(18)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS512TO1023OCTETS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsPkts1024to1518Octets(19)/COUNTER/ASN_COUNTER/u_long(u_long)//l/A/w/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSPKTS1024TO1518OCTETS:
-        rc = SNMP_ERR_NOTWRITABLE;
-        break;
-
-        /*
-         * etherStatsOwner(20)/OwnerString/ASN_OCTET_STR/char(char)//L/A/W/e/R/d/h 
-         */
-    case COLUMN_ETHERSTATSOWNER:
-        rc = netsnmp_check_vb_type_and_max_size(var, ASN_OCTET_STR,
-                                                sizeof(rowreq_ctx->data.
-                                                       etherStatsOwner));
-        /*
-         * check defined range(s). 
-         */
-        if ((SNMPERR_SUCCESS == rc)
-            && ((var->val_len < 0) || (var->val_len > 127))
-            ) {
-            rc = SNMP_ERR_WRONGLENGTH;
-        }
-        if (SNMPERR_SUCCESS != rc) {
-            DEBUGMSGTL(("etherStatsTable:_etherStatsTable_check_column:etherStatsOwner", "varbind validation failed (eg bad type or size)\n"));
-        } else {
-            rc = etherStatsOwner_check_value(rowreq_ctx,
-                                             (char *) var->val.string,
-                                             var->val_len);
-            if ((MFD_SUCCESS != rc) && (MFD_NOT_VALID_EVER != rc)
-                && (MFD_NOT_VALID_NOW != rc)) {
-                snmp_log(LOG_ERR,
-                         "bad rc %d from etherStatsOwner_check_value\n",
-                         rc);
-                rc = SNMP_ERR_GENERR;
-            }
-        }
-        break;
-
-        /*
-         * etherStatsStatus(21)/EntryStatus/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h 
-         */
-    case COLUMN_ETHERSTATSSTATUS:
-        rc = netsnmp_check_vb_type_and_size(var, ASN_INTEGER,
-                                            sizeof(rowreq_ctx->data.
-                                                   etherStatsStatus));
-        /*
-         * check that the value is one of defined enums 
-         */
-        if ((SNMPERR_SUCCESS == rc)
-            && (*var->val.integer != ENTRYSTATUS_VALID)
-            && (*var->val.integer != ENTRYSTATUS_CREATEREQUEST)
-            && (*var->val.integer != ENTRYSTATUS_UNDERCREATION)
-            && (*var->val.integer != ENTRYSTATUS_INVALID)
-            ) {
-            rc = SNMP_ERR_WRONGVALUE;
-        }
-        if (SNMPERR_SUCCESS != rc) {
-            DEBUGMSGTL(("etherStatsTable:_etherStatsTable_check_column:etherStatsStatus", "varbind validation failed (eg bad type or size)\n"));
-        } else {
-            rc = etherStatsStatus_check_value(rowreq_ctx,
-                                              *((u_long *) var->val.
-                                                string));
-            if ((MFD_SUCCESS != rc) && (MFD_NOT_VALID_EVER != rc)
-                && (MFD_NOT_VALID_NOW != rc)) {
-                snmp_log(LOG_ERR,
-                         "bad rc %d from etherStatsStatus_check_value\n",
-                         rc);
-                rc = SNMP_ERR_GENERR;
-            }
-        }
-        break;
-
-    default:    /** We shouldn't get here */
-        rc = SNMP_ERR_GENERR;
-        snmp_log(LOG_ERR,
-                 "unknown column %d in _etherStatsTable_check_column\n",
-                 column);
-    }
-
-    return rc;
-}                               /* _etherStatsTable_check_column */
-
-int
-_mfd_etherStatsTable_check_objects(netsnmp_mib_handler *handler,
-                                   netsnmp_handler_registration *reginfo,
-                                   netsnmp_agent_request_info *agtreq_info,
-                                   netsnmp_request_info *requests)
-{
-    etherStatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-    netsnmp_table_request_info *tri;
-    int             rc;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_check_objects", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    for (; requests; requests = requests->next) {
-
-        /*
-         * get column number from table request info, and check that column
-         */
-        tri = netsnmp_extract_table_info(requests);
-        if (NULL == tri)
-            continue;
-
-        rc = _etherStatsTable_check_column(rowreq_ctx, requests->requestvb,
-                                           tri->colnum);
-        if (rc) {
-            netsnmp_request_set_error(requests, SNMP_VALIDATE_ERR(rc));
-            break;
-        }
-
-    }                           /* for results */
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_etherStatsTable_check_objects */
-
-
-/*----------------------------------------------------------------------
- *
- * SET: Undo setup
- *
- *---------------------------------------------------------------------*/
-/*
- * @internal
- * Set the value for a particular column
- */
-NETSNMP_STATIC_INLINE int
-_etherStatsTable_undo_setup_column(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                                   int column)
-{
-    int             rc = SNMPERR_SUCCESS;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_etherStatsTable_undo_setup_column", "called for %d\n", column));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    switch (column) {
-
-        /*
-         * etherStatsDataSource(2)/OBJECTID/ASN_OBJECT_ID/oid(oid)//L/A/W/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSDATASOURCE:
-        rowreq_ctx->column_set_flags |= COLUMN_ETHERSTATSDATASOURCE_FLAG;
-        rc = etherStatsDataSource_undo_setup(rowreq_ctx);
-        break;
-
-        /*
-         * etherStatsOwner(20)/OwnerString/ASN_OCTET_STR/char(char)//L/A/W/e/R/d/h 
-         */
-    case COLUMN_ETHERSTATSOWNER:
-        rowreq_ctx->column_set_flags |= COLUMN_ETHERSTATSOWNER_FLAG;
-        rc = etherStatsOwner_undo_setup(rowreq_ctx);
-        break;
-
-        /*
-         * etherStatsStatus(21)/EntryStatus/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h 
-         */
-    case COLUMN_ETHERSTATSSTATUS:
-        rowreq_ctx->column_set_flags |= COLUMN_ETHERSTATSSTATUS_FLAG;
-        rc = etherStatsStatus_undo_setup(rowreq_ctx);
-        break;
-
-    default:
-        snmp_log(LOG_ERR,
-                 "unknown column %d in _etherStatsTable_undo_setup_column\n",
-                 column);
-        break;
-    }
-
-    return rc;
-}                               /* _etherStatsTable_undo_setup_column */
-
-
-/**
- * @internal
- * undo setup
- */
-int
-_mfd_etherStatsTable_undo_setup(netsnmp_mib_handler *handler,
-                                netsnmp_handler_registration *reginfo,
-                                netsnmp_agent_request_info *agtreq_info,
-                                netsnmp_request_info *requests)
-{
-    int             rc;
-    etherStatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_undo_setup",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * allocate undo context
-     */
-    rowreq_ctx->undo = etherStatsTable_allocate_data();
-    if (NULL == rowreq_ctx->undo) {
-        /** msg already logged */
-        netsnmp_request_set_error_all(requests,
-                                      SNMP_ERR_RESOURCEUNAVAILABLE);
-        return SNMP_ERR_NOERROR;
-    }
-
-    /*
-     * row undo setup
-     */
-    rowreq_ctx->column_set_flags = 0;
-    rc = etherStatsTable_undo_setup(rowreq_ctx);
-    if (MFD_SUCCESS != rc) {
-        DEBUGMSGTL(("etherStatsTable:mfd", "error %d from "
-                    "etherStatsTable_undo_setup\n", rc));
-        netsnmp_request_set_error_all(requests, SNMP_VALIDATE_ERR(rc));
-    } else {
-        /*
-         * column undo setup
-         */
-        netsnmp_table_request_info *tri;
-        for (; requests; requests = requests->next) {
-            /*
-             * set column data
-             */
-            tri = netsnmp_extract_table_info(requests);
-            if (NULL == tri)
-                continue;
-
-            rc = _etherStatsTable_undo_setup_column(rowreq_ctx,
-                                                    tri->colnum);
-            if (MFD_SUCCESS != rc) {
-                DEBUGMSGTL(("etherStatsTable:mfd", "error %d from "
-                            "etherStatsTable_undo_setup_column\n", rc));
-                netsnmp_set_request_error(agtreq_info, requests,
-                                          SNMP_VALIDATE_ERR(rc));
-            }
-        }                       /* for results */
-    }
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_etherStatsTable_undo_setup */
-
-/**
- * @internal
- * undo setup
- */
-int
-_mfd_etherStatsTable_undo_cleanup(netsnmp_mib_handler *handler,
-                                  netsnmp_handler_registration *reginfo,
-                                  netsnmp_agent_request_info *agtreq_info,
-                                  netsnmp_request_info *requests)
-{
-    etherStatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-    int             rc;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_undo_cleanup", "called\n"));
-
-    /*
-     * failed row create in early stages has no rowreq_ctx
-     */
-    if (NULL == rowreq_ctx)
-        return MFD_SUCCESS;
-
-    /*
-     * call user cleanup
-     */
-    rc = etherStatsTable_undo_cleanup(rowreq_ctx);
-    if (MFD_SUCCESS != rc) {
-        /*
-         * nothing we can do about it but log it
-         */
-        DEBUGMSGTL(("etherStatsTable:mfd", "error %d from "
-                    "etherStatsTable_undo_cleanup\n", rc));
-    }
-
-    /*
-     * release undo context, if needed
-     */
-    if (rowreq_ctx->undo) {
-        etherStatsTable_release_data(rowreq_ctx->undo);
-        rowreq_ctx->undo = NULL;
-    }
-
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_etherStatsTable_undo_cleanup */
-
-/*----------------------------------------------------------------------
- *
- * SET: Set values
- *
- *---------------------------------------------------------------------*/
-/*
- * @internal
- * Set the value for a particular column
- */
-NETSNMP_STATIC_INLINE int
-_etherStatsTable_set_column(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                            netsnmp_variable_list * var, int column)
-{
-    int             rc = SNMPERR_SUCCESS;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_etherStatsTable_set_column",
-                "called for %d\n", column));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    switch (column) {
-
-        /*
-         * etherStatsDataSource(2)/OBJECTID/ASN_OBJECT_ID/oid(oid)//L/A/W/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSDATASOURCE:
-        rowreq_ctx->column_set_flags |= COLUMN_ETHERSTATSDATASOURCE_FLAG;
-        rc = etherStatsDataSource_set(rowreq_ctx, (oid *) var->val.string,
-                                      var->val_len);
-        break;
-
-        /*
-         * etherStatsOwner(20)/OwnerString/ASN_OCTET_STR/char(char)//L/A/W/e/R/d/h 
-         */
-    case COLUMN_ETHERSTATSOWNER:
-        rowreq_ctx->column_set_flags |= COLUMN_ETHERSTATSOWNER_FLAG;
-        rc = etherStatsOwner_set(rowreq_ctx, (char *) var->val.string,
-                                 var->val_len);
-        break;
-
-        /*
-         * etherStatsStatus(21)/EntryStatus/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h 
-         */
-    case COLUMN_ETHERSTATSSTATUS:
-        rowreq_ctx->column_set_flags |= COLUMN_ETHERSTATSSTATUS_FLAG;
-        rc = etherStatsStatus_set(rowreq_ctx,
-                                  *((u_long *) var->val.string));
-        break;
-
-    default:
-        snmp_log(LOG_ERR,
-                 "unknown column %d in _etherStatsTable_set_column\n",
-                 column);
-        rc = SNMP_ERR_GENERR;
-        break;
-    }
-
-    return rc;
-}                               /* _etherStatsTable_set_column */
-
-int
-_mfd_etherStatsTable_set_values(netsnmp_mib_handler *handler,
-                                netsnmp_handler_registration *reginfo,
-                                netsnmp_agent_request_info *agtreq_info,
-                                netsnmp_request_info *requests)
-{
-    etherStatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-    netsnmp_table_request_info *tri;
-    int             rc = SNMP_ERR_NOERROR;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_set_values",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    rowreq_ctx->column_set_flags = 0;
-    for (; requests; requests = requests->next) {
-        /*
-         * set column data
-         */
-        tri = netsnmp_extract_table_info(requests);
-        if (NULL == tri)
-            continue;
-
-        rc = _etherStatsTable_set_column(rowreq_ctx,
-                                         requests->requestvb, tri->colnum);
-        if (MFD_SUCCESS != rc) {
-            DEBUGMSGTL(("etherStatsTable:mfd", "error %d from "
-                        "etherStatsTable_set_column\n", rc));
-            netsnmp_set_request_error(agtreq_info, requests,
-                                      SNMP_VALIDATE_ERR(rc));
-        }
-    }                           /* for results */
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_etherStatsTable_set_values */
-
-/*----------------------------------------------------------------------
- *
- * SET: commit
- *
- *---------------------------------------------------------------------*/
-/**
- * @internal
- * commit the values
- */
-int
-_mfd_etherStatsTable_commit(netsnmp_mib_handler *handler,
-                            netsnmp_handler_registration *reginfo,
-                            netsnmp_agent_request_info *agtreq_info,
-                            netsnmp_request_info *requests)
-{
-    int             rc;
-    etherStatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_commit",
-                "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    rc = etherStatsTable_commit(rowreq_ctx);
-    if (MFD_SUCCESS != rc) {
-        DEBUGMSGTL(("etherStatsTable:mfd", "error %d from "
-                    "etherStatsTable_commit\n", rc));
-        netsnmp_request_set_error_all(requests, SNMP_VALIDATE_ERR(rc));
-    }
-
-    if (rowreq_ctx->rowreq_flags & MFD_ROW_DIRTY) {
-        /*
-         * if we successfully commited this row, set the dirty flag. Use the
-         * current value + 1 (i.e. dirty = # rows changed).
-         * this is checked in post_request...
-         */
-        etherStatsTable_dirty_set(etherStatsTable_dirty_get() + 1);     /* set table dirty flag */
-    }
-
-    return SNMP_ERR_NOERROR;
-}
-
-int
-_mfd_etherStatsTable_undo_commit(netsnmp_mib_handler *handler,
-                                 netsnmp_handler_registration *reginfo,
-                                 netsnmp_agent_request_info *agtreq_info,
-                                 netsnmp_request_info *requests)
-{
-    int             rc;
-    etherStatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_undo_commit", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    if (rowreq_ctx->rowreq_flags & MFD_ROW_DIRTY) {
-        u_int           d = etherStatsTable_dirty_get();
-
-        netsnmp_assert(d != 0);
-        if (d)
-            etherStatsTable_dirty_set(d - 1);
-    }
-
-    rc = etherStatsTable_undo_commit(rowreq_ctx);
-    if (MFD_SUCCESS != rc) {
-        /*
-         * nothing we can do about it but log it
-         */
-        DEBUGMSGTL(("etherStatsTable:mfd", "error %d from "
-                    "etherStatsTable_undo_commit\n", rc));
-    }
-
-    if (rowreq_ctx->rowreq_flags & MFD_ROW_DIRTY) {
-        snmp_log(LOG_WARNING,
-                 "etherStatsTable row dirty flag still set after undo_commit\n");
-        rowreq_ctx->rowreq_flags &= ~MFD_ROW_DIRTY;
-    }
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_etherStatsTable_commit */
-
-/*----------------------------------------------------------------------
- *
- * SET: Undo
- *
- *---------------------------------------------------------------------*/
-/**
- * @internal
- * undo the value for a particular column
- */
-NETSNMP_STATIC_INLINE int
-_etherStatsTable_undo_column(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                             netsnmp_variable_list * var, int column)
-{
-    int             rc = SNMPERR_SUCCESS;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_etherStatsTable_undo_column",
-                "called for %d\n", column));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    switch (column) {
-
-        /*
-         * etherStatsDataSource(2)/OBJECTID/ASN_OBJECT_ID/oid(oid)//L/A/W/e/r/d/h 
-         */
-    case COLUMN_ETHERSTATSDATASOURCE:
-        rc = etherStatsDataSource_undo(rowreq_ctx);
-        break;
-
-        /*
-         * etherStatsOwner(20)/OwnerString/ASN_OCTET_STR/char(char)//L/A/W/e/R/d/h 
-         */
-    case COLUMN_ETHERSTATSOWNER:
-        rc = etherStatsOwner_undo(rowreq_ctx);
-        break;
-
-        /*
-         * etherStatsStatus(21)/EntryStatus/ASN_INTEGER/long(u_long)//l/A/W/E/r/d/h 
-         */
-    case COLUMN_ETHERSTATSSTATUS:
-        rc = etherStatsStatus_undo(rowreq_ctx);
-        break;
-
-    default:
-        snmp_log(LOG_ERR,
-                 "unknown column %d in _etherStatsTable_undo_column\n",
-                 column);
-        break;
-    }
-
-    return rc;
-}                               /* _etherStatsTable_undo_column */
-
-int
-_mfd_etherStatsTable_undo_values(netsnmp_mib_handler *handler,
-                                 netsnmp_handler_registration *reginfo,
-                                 netsnmp_agent_request_info *agtreq_info,
-                                 netsnmp_request_info *requests)
-{
-    int             rc;
-    etherStatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-    netsnmp_table_request_info *tri;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_undo_values", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    rc = etherStatsTable_undo(rowreq_ctx);
-    if (MFD_SUCCESS != rc) {
-        /*
-         * nothing we can do about it but log it
-         */
-        DEBUGMSGTL(("etherStatsTable:mfd", "error %d from "
-                    "etherStatsTable_undo\n", rc));
-    }
-
-    for (; requests; requests = requests->next) {
-        /*
-         * set column data
-         */
-        tri = netsnmp_extract_table_info(requests);
-        if (NULL == tri)
-            continue;
-
-        rc = _etherStatsTable_undo_column(rowreq_ctx, requests->requestvb,
-                                          tri->colnum);
-        if (MFD_SUCCESS != rc) {
-            /*
-             * nothing we can do about it but log it
-             */
-            DEBUGMSGTL(("etherStatsTable:mfd", "error %d from "
-                        "etherStatsTable_undo_column\n", rc));
-        }
-    }                           /* for results */
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_etherStatsTable_undo_values */
-
-/*----------------------------------------------------------------------
- *
- * SET: irreversible commit
- *
- *---------------------------------------------------------------------*/
-/**
- * @internal
- * commit irreversible actions
- */
-int
-_mfd_etherStatsTable_irreversible_commit(netsnmp_mib_handler *handler,
-                                         netsnmp_handler_registration
-                                         *reginfo,
-                                         netsnmp_agent_request_info
-                                         *agtreq_info,
-                                         netsnmp_request_info *requests)
-{
-    etherStatsTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
-
-    DEBUGMSGTL(("internal:etherStatsTable:_mfd_etherStatsTable_irreversible:commit", "called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-    /*
-     * check for and handle row creation/deletion
-     * and update column exist flags...
-     */
-    if (rowreq_ctx->rowreq_flags & MFD_ROW_DELETED) {
-        if (!(rowreq_ctx->rowreq_flags & MFD_ROW_CREATED))
-            CONTAINER_REMOVE(etherStatsTable_if_ctx.container, rowreq_ctx);
-    } else {
-        if (rowreq_ctx->column_set_flags) {
-            DEBUGMSGTL(("internal:etherStatsTable:_mfd_irreversible_commit", "updating exists (%#x) w/set (%#x) = %#x\n", rowreq_ctx->column_exists_flags, rowreq_ctx->column_set_flags, (rowreq_ctx->column_exists_flags | rowreq_ctx->column_set_flags)));
-            rowreq_ctx->column_exists_flags |=
-                rowreq_ctx->column_set_flags;
-            rowreq_ctx->column_set_flags = 0;
-        }
-        if (rowreq_ctx->rowreq_flags & MFD_ROW_CREATED) {
-            rowreq_ctx->rowreq_flags &= ~MFD_ROW_CREATED;
-            CONTAINER_INSERT(etherStatsTable_if_ctx.container, rowreq_ctx);
-        }
-    }
-
-    return SNMP_ERR_NOERROR;
-}                               /* _mfd_etherStatsTable_irreversible_commit */
-
-/***********************************************************************
- *
- * DATA ACCESS
- *
- ***********************************************************************/
-static void     _container_free(netsnmp_container * container);
-
-/**
- * @internal
- */
-static int
-_cache_load(netsnmp_cache * cache, void *vmagic)
-{
-    DEBUGMSGTL(("internal:etherStatsTable:_cache_load", "called\n"));
-
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR,
-                 "invalid cache for etherStatsTable_cache_load\n");
-        return -1;
-    }
-
-    /** should only be called for an invalid or expired cache */
-    netsnmp_assert((0 == cache->valid) || (1 == cache->expired));
-
-    /*
-     * call user code
-     */
-    return etherStatsTable_container_load((netsnmp_container *) cache->
-                                          magic);
-}                               /* _cache_load */
-
-/**
- * @internal
- */
-static void
-_cache_free(netsnmp_cache * cache, void *magic)
-{
-    netsnmp_container *container;
-
-    DEBUGMSGTL(("internal:etherStatsTable:_cache_free", "called\n"));
-
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR, "invalid cache in etherStatsTable_cache_free\n");
-        return;
-    }
-
-    container = (netsnmp_container *) cache->magic;
-
-    _container_free(container);
-}                               /* _cache_free */
-
-/**
- * @internal
- */
-static void
-_container_item_free(etherStatsTable_rowreq_ctx * rowreq_ctx,
-                     void *context)
-{
-    DEBUGMSGTL(("internal:etherStatsTable:_container_item_free",
-                "called\n"));
-
-    if (NULL == rowreq_ctx)
-        return;
-
-    etherStatsTable_release_rowreq_ctx(rowreq_ctx);
-}                               /* _container_item_free */
-
-/**
- * @internal
- */
-static void
-_container_free(netsnmp_container * container)
-{
-    DEBUGMSGTL(("internal:etherStatsTable:_container_free", "called\n"));
-
-    if (NULL == container) {
-        snmp_log(LOG_ERR,
-                 "invalid container in etherStatsTable_container_free\n");
-        return;
-    }
-
-    /*
-     * call user code
-     */
-    etherStatsTable_container_free(container);
-
-    /*
-     * free all items. inefficient, but easy.
-     */
-    CONTAINER_CLEAR(container,
-                    (netsnmp_container_obj_func *) _container_item_free,
-                    NULL);
-}                               /* _container_free */
-
-/**
- * @internal
- * initialize the container with functions or wrappers
- */
-void
-_etherStatsTable_container_init(etherStatsTable_interface_ctx * if_ctx)
-{
-    DEBUGMSGTL(("internal:etherStatsTable:_etherStatsTable_container_init",
-                "called\n"));
-
-    /*
-     * cache init
-     */
-    if_ctx->cache = netsnmp_cache_create(30,    /* timeout in seconds */
-                                         _cache_load, _cache_free,
-                                         etherStatsTable_oid,
-                                         etherStatsTable_oid_size);
-
-    if (NULL == if_ctx->cache) {
-        snmp_log(LOG_ERR, "error creating cache for etherStatsTable\n");
-        return;
-    }
-
-    if_ctx->cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
-
-    etherStatsTable_container_init(&if_ctx->container, if_ctx->cache);
-    if (NULL == if_ctx->container)
-        if_ctx->container =
-            netsnmp_container_find("etherStatsTable:table_container");
-    if (NULL == if_ctx->container) {
-        snmp_log(LOG_ERR, "error creating container in "
-                 "etherStatsTable_container_init\n");
-        return;
-    }
-
-    if (NULL != if_ctx->cache)
-        if_ctx->cache->magic = (void *) if_ctx->container;
-}                               /* _etherStatsTable_container_init */
-
-/**
- * @internal
- * shutdown the container with functions or wrappers
- */
-void
-_etherStatsTable_container_shutdown(etherStatsTable_interface_ctx * if_ctx)
-{
-    DEBUGMSGTL(("internal:etherStatsTable:_etherStatsTable_container_shutdown", "called\n"));
-
-    etherStatsTable_container_shutdown(if_ctx->container);
-
-    _container_free(if_ctx->container);
-
-}                               /* _etherStatsTable_container_shutdown */
-
-
-etherStatsTable_rowreq_ctx *
-etherStatsTable_row_find_by_mib_index(etherStatsTable_mib_index * mib_idx)
-{
-    etherStatsTable_rowreq_ctx *rowreq_ctx;
-    oid             oid_tmp[MAX_OID_LEN];
-    netsnmp_index   oid_idx;
-    int             rc;
-
-    /*
-     * set up storage for OID
-     */
-    oid_idx.oids = oid_tmp;
-    oid_idx.len = sizeof(oid_tmp) / sizeof(oid);
-
-    /*
-     * convert
-     */
-    rc = etherStatsTable_index_to_oid(&oid_idx, mib_idx);
-    if (MFD_SUCCESS != rc)
-        return NULL;
-
-    rowreq_ctx =
-        CONTAINER_FIND(etherStatsTable_if_ctx.container, &oid_idx);
-
-    return rowreq_ctx;
-}
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.h b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.h
deleted file mode 100644
index 4e1457b..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *       version : 15899 $ of $
- *
- * $Id:$
- */
-/** @ingroup interface: Routines to interface to Net-SNMP
- *
- * \warning This code should not be modified, called directly,
- *          or used to interpret functionality. It is subject to
- *          change at any time.
- * 
- * @{
- */
-/*
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- * ***                                                               ***
- * ***  NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE  ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THIS FILE DOES NOT CONTAIN ANY USER EDITABLE CODE.      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***       THE GENERATED CODE IS INTERNAL IMPLEMENTATION, AND      ***
- * ***                                                               ***
- * ***                                                               ***
- * ***    IS SUBJECT TO CHANGE WITHOUT WARNING IN FUTURE RELEASES.   ***
- * ***                                                               ***
- * ***                                                               ***
- * *********************************************************************
- * *********************************************************************
- * *********************************************************************
- */
-#ifndef ETHERSTATSTABLE_INTERFACE_H
-#define ETHERSTATSTABLE_INTERFACE_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-#include "etherStatsTable.h"
-
-
-    /*
-     ********************************************************************
-     * Table declarations
-     */
-
-    /*
-     * PUBLIC interface initialization routine 
-     */
-    void           
-        _etherStatsTable_initialize_interface(etherStatsTable_registration
-                                              * user_ctx, u_long flags);
-    void           
-        _etherStatsTable_shutdown_interface(etherStatsTable_registration *
-                                            user_ctx);
-
-    etherStatsTable_registration *etherStatsTable_registration_get(void);
-
-    etherStatsTable_registration
-        *etherStatsTable_registration_set(etherStatsTable_registration *
-                                          newreg);
-
-    netsnmp_container *etherStatsTable_container_get(void);
-    int             etherStatsTable_container_size(void);
-
-    u_int           etherStatsTable_dirty_get(void);
-    void            etherStatsTable_dirty_set(u_int status);
-
-    etherStatsTable_rowreq_ctx *etherStatsTable_allocate_rowreq_ctx(void
-                                                                    *);
-    void           
-        etherStatsTable_release_rowreq_ctx(etherStatsTable_rowreq_ctx *
-                                           rowreq_ctx);
-
-    int             etherStatsTable_index_to_oid(netsnmp_index * oid_idx,
-                                                 etherStatsTable_mib_index
-                                                 * mib_idx);
-    int             etherStatsTable_index_from_oid(netsnmp_index * oid_idx,
-                                                   etherStatsTable_mib_index
-                                                   * mib_idx);
-
-    /*
-     * access to certain internals. use with caution!
-     */
-    void            etherStatsTable_valid_columns_set(netsnmp_column_info
-                                                      *vc);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* ETHERSTATSTABLE_INTERFACE_H */
-/** @} */
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_oids.h b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_oids.h
deleted file mode 100644
index 60f1da3..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_oids.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  : generic-table-oids.m2c 12855 2005-09-27 15:56:08Z rstory $
- *
- * $Id:$
- */
-#ifndef ETHERSTATSTABLE_OIDS_H
-#define ETHERSTATSTABLE_OIDS_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-    /*
-     * column number definitions for table etherStatsTable 
-     */
-#define ETHERSTATSTABLE_OID              1,3,6,1,2,1,16,1,1
-
-#define COLUMN_ETHERSTATSINDEX         1
-#define COLUMN_ETHERSTATSINDEX_FLAG    (0x1 << 0)
-
-#define COLUMN_ETHERSTATSDATASOURCE         2
-#define COLUMN_ETHERSTATSDATASOURCE_FLAG    (0x1 << 1)
-
-#define COLUMN_ETHERSTATSDROPEVENTS         3
-#define COLUMN_ETHERSTATSDROPEVENTS_FLAG    (0x1 << 2)
-
-#define COLUMN_ETHERSTATSOCTETS         4
-#define COLUMN_ETHERSTATSOCTETS_FLAG    (0x1 << 3)
-
-#define COLUMN_ETHERSTATSPKTS         5
-#define COLUMN_ETHERSTATSPKTS_FLAG    (0x1 << 4)
-
-#define COLUMN_ETHERSTATSBROADCASTPKTS         6
-#define COLUMN_ETHERSTATSBROADCASTPKTS_FLAG    (0x1 << 5)
-
-#define COLUMN_ETHERSTATSMULTICASTPKTS         7
-#define COLUMN_ETHERSTATSMULTICASTPKTS_FLAG    (0x1 << 6)
-
-#define COLUMN_ETHERSTATSCRCALIGNERRORS         8
-#define COLUMN_ETHERSTATSCRCALIGNERRORS_FLAG    (0x1 << 7)
-
-#define COLUMN_ETHERSTATSUNDERSIZEPKTS         9
-#define COLUMN_ETHERSTATSUNDERSIZEPKTS_FLAG    (0x1 << 8)
-
-#define COLUMN_ETHERSTATSOVERSIZEPKTS         10
-#define COLUMN_ETHERSTATSOVERSIZEPKTS_FLAG    (0x1 << 9)
-
-#define COLUMN_ETHERSTATSFRAGMENTS         11
-#define COLUMN_ETHERSTATSFRAGMENTS_FLAG    (0x1 << 10)
-
-#define COLUMN_ETHERSTATSJABBERS         12
-#define COLUMN_ETHERSTATSJABBERS_FLAG    (0x1 << 11)
-
-#define COLUMN_ETHERSTATSCOLLISIONS         13
-#define COLUMN_ETHERSTATSCOLLISIONS_FLAG    (0x1 << 12)
-
-#define COLUMN_ETHERSTATSPKTS64OCTETS         14
-#define COLUMN_ETHERSTATSPKTS64OCTETS_FLAG    (0x1 << 13)
-
-#define COLUMN_ETHERSTATSPKTS65TO127OCTETS         15
-#define COLUMN_ETHERSTATSPKTS65TO127OCTETS_FLAG    (0x1 << 14)
-
-#define COLUMN_ETHERSTATSPKTS128TO255OCTETS         16
-#define COLUMN_ETHERSTATSPKTS128TO255OCTETS_FLAG    (0x1 << 15)
-
-#define COLUMN_ETHERSTATSPKTS256TO511OCTETS         17
-#define COLUMN_ETHERSTATSPKTS256TO511OCTETS_FLAG    (0x1 << 16)
-
-#define COLUMN_ETHERSTATSPKTS512TO1023OCTETS         18
-#define COLUMN_ETHERSTATSPKTS512TO1023OCTETS_FLAG    (0x1 << 17)
-
-#define COLUMN_ETHERSTATSPKTS1024TO1518OCTETS         19
-#define COLUMN_ETHERSTATSPKTS1024TO1518OCTETS_FLAG    (0x1 << 18)
-
-#define COLUMN_ETHERSTATSOWNER         20
-#define COLUMN_ETHERSTATSOWNER_FLAG    (0x1 << 19)
-
-#define COLUMN_ETHERSTATSSTATUS         21
-#define COLUMN_ETHERSTATSSTATUS_FLAG    (0x1 << 20)
-
-
-#define ETHERSTATSTABLE_MIN_COL   COLUMN_ETHERSTATSINDEX
-#define ETHERSTATSTABLE_MAX_COL   COLUMN_ETHERSTATSSTATUS
-
-
-    /*
-     * TODO:405:r: Review ETHERSTATSTABLE_SETTABLE_COLS macro.
-     * OR together all the writable cols.
-     */
-#define ETHERSTATSTABLE_SETTABLE_COLS (COLUMN_ETHERSTATSINDEX_FLAG | COLUMN_ETHERSTATSDATASOURCE_FLAG | COLUMN_ETHERSTATSDROPEVENTS_FLAG | COLUMN_ETHERSTATSOCTETS_FLAG | COLUMN_ETHERSTATSPKTS_FLAG | COLUMN_ETHERSTATSBROADCASTPKTS_FLAG | COLUMN_ETHERSTATSMULTICASTPKTS_FLAG | COLUMN_ETHERSTATSCRCALIGNERRORS_FLAG | COLUMN_ETHERSTATSUNDERSIZEPKTS_FLAG | COLUMN_ETHERSTATSOVERSIZEPKTS_FLAG | COLUMN_ETHERSTATSFRAGMENTS_FLAG | COLUMN_ETHERSTATSJABBERS_FLAG | COLUMN_ETHERSTATSCOLLISIONS_FLAG | CO [...]
-    /*
-     * TODO:405:r: Review ETHERSTATSTABLE_REQUIRED_COLS macro.
-     * OR together all the required rows for row creation.
-     * default is writable cols w/out defaults.
-     */
-#define ETHERSTATSTABLE_REQUIRED_COLS (COLUMN_ETHERSTATSDATASOURCE_FLAG | COLUMN_ETHERSTATSOWNER_FLAG | COLUMN_ETHERSTATSSTATUS_FLAG)
-
-#define ETHERSTATSTABLE_VALID_COL    COLUMN_ETHERSTATSJABBERS_FLAG 
-
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* ETHERSTATSTABLE_OIDS_H */
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/ioctl_imp_common.h b/agent/mibgroup/rmon-mib/etherStatsTable/ioctl_imp_common.h
deleted file mode 100644
index 9819895..0000000
--- a/agent/mibgroup/rmon-mib/etherStatsTable/ioctl_imp_common.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <net/if.h>
-#include <linux/sockios.h>
-#include <ifaddrs.h>
-
-/* use kernel's ethtool.h  */
-
-#include <linux/types.h>
-typedef __u64 u64;
-typedef __u32 u32;
-typedef __u16 u16;
-typedef __u8 u8;
-#include <linux/ethtool.h>
-
-/* structure for storing the interface names in the system */
-
-struct ifname {
-    struct ifname *ifn_next;
-    char name [IF_NAMESIZE];
-};
-
-struct ifname *etherstats_interface_name_list_get (struct ifname *, int *);
-int etherstats_interface_name_list_free (struct ifname *list_head);
-int etherstats_interface_ioctl_ifindex_get (int fd, const char *name);
-int _etherStats_ioctl_get(int fd, int which, struct ifreq *ifrq, const char* name);
-int interface_ioctl_etherstats_get(etherStatsTable_rowreq_ctx *rowreq_ctx, int fd, const char* name);
-
-/* for maintainability */
-
-#define BROADCOM_RECEIVE_JABBERS                "rx_jabbers"
-
-#define ETHERSTATSJABBERS(x)                    strstr(x, BROADCOM_RECEIVE_JABBERS)
-
diff --git a/agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.c b/agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.c
index d6023e5..435f560 100644
--- a/agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.c
+++ b/agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.c
@@ -13,7 +13,6 @@
  * content of the sctpAssocLocalAddrTable 
  */
 static netsnmp_container *sctpAssocLocalAddrTable_container;
-static netsnmp_table_registration_info *table_info;
 
 /** Initializes the sctpAssocLocalAddrTable module */
 void
@@ -28,7 +27,8 @@ init_sctpAssocLocalAddrTable(void)
 void
 shutdown_sctpAssocLocalAddrTable(void)
 {
-    shutdown_table_sctpAssocLocalAddrTable();
+    sctpAssocLocalAddrTable_container_clear
+        (sctpAssocLocalAddrTable_container);
 }
 
 /** Initialize the sctpAssocLocalAddrTable table by defining its contents and how it's structured */
@@ -42,6 +42,7 @@ initialize_table_sctpAssocLocalAddrTable(void)
     netsnmp_handler_registration *reg = NULL;
     netsnmp_mib_handler *handler = NULL;
     netsnmp_container *container = NULL;
+    netsnmp_table_registration_info *table_info = NULL;
 
     reg =
         netsnmp_create_handler_registration("sctpAssocLocalAddrTable",
@@ -102,7 +103,6 @@ initialize_table_sctpAssocLocalAddrTable(void)
     if (SNMPERR_SUCCESS != netsnmp_register_table(reg, table_info)) {
         snmp_log(LOG_ERR,
                  "error registering table handler for sctpAssocLocalAddrTable\n");
-        reg = NULL; /* it was freed inside netsnmp_register_table */
         goto bail;
     }
 
@@ -121,9 +121,6 @@ initialize_table_sctpAssocLocalAddrTable(void)
     if (handler)
         netsnmp_handler_free(handler);
 
-    if (table_info)
-        netsnmp_table_registration_info_free(table_info);
-
     if (container)
         CONTAINER_FREE(container);
 
@@ -131,17 +128,6 @@ initialize_table_sctpAssocLocalAddrTable(void)
         netsnmp_handler_registration_free(reg);
 }
 
-void
-shutdown_table_sctpAssocLocalAddrTable(void)
-{
-    if (table_info) {
-        netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-    sctpAssocLocalAddrTable_container_clear
-        (sctpAssocLocalAddrTable_container);
-}
-
 /** handles requests for the sctpAssocLocalAddrTable table */
 int
 sctpAssocLocalAddrTable_handler(netsnmp_mib_handler *handler,
@@ -274,7 +260,8 @@ sctpAssocLocalAddrTable_entry_copy(sctpAssocLocalAddrTable_entry * from,
 void
 sctpAssocLocalAddrTable_entry_free(sctpAssocLocalAddrTable_entry * entry)
 {
-    SNMP_FREE(entry);
+    if (entry != NULL)
+        SNMP_FREE(entry);
 }
 
 netsnmp_container *
diff --git a/agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.h b/agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.h
index eff080f..c2cc055 100644
--- a/agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.h
+++ b/agent/mibgroup/sctp-mib/sctpAssocLocalAddrTable.h
@@ -13,7 +13,6 @@
 void            init_sctpAssocLocalAddrTable(void);
 void            shutdown_sctpAssocLocalAddrTable(void);
 void            initialize_table_sctpAssocLocalAddrTable(void);
-void            shutdown_table_sctpAssocLocalAddrTable(void);
 Netsnmp_Node_Handler sctpAssocLocalAddrTable_handler;
 
 /*
diff --git a/agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.c b/agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.c
index 38ca8a3..f3b0fde 100644
--- a/agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.c
+++ b/agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.c
@@ -6,6 +6,7 @@
 #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/net-snmp-agent-includes.h>
 #include <net-snmp/agent/table_container.h>
 #include "sctpAssocRemAddrTable.h"
 
@@ -13,7 +14,6 @@
  * content of the sctpAssocRemAddrTable 
  */
 static netsnmp_container *sctpAssocRemAddrTable_container;
-static netsnmp_table_registration_info *table_info;
 
 /** Initializes the sctpAssocRemAddrTable module */
 void
@@ -28,7 +28,7 @@ init_sctpAssocRemAddrTable(void)
 void
 shutdown_sctpAssocRemAddrTable(void)
 {
-    shutdown_table_sctpAssocRemAddrTable();
+    sctpAssocRemAddrTable_container_clear(sctpAssocRemAddrTable_container);
 }
 
 /** Initialize the sctpAssocRemAddrTable table by defining its contents and how it's structured */
@@ -42,6 +42,7 @@ initialize_table_sctpAssocRemAddrTable(void)
     netsnmp_handler_registration *reg = NULL;
     netsnmp_mib_handler *handler = NULL;
     netsnmp_container *container = NULL;
+    netsnmp_table_registration_info *table_info = NULL;
 
     reg =
         netsnmp_create_handler_registration("sctpAssocRemAddrTable",
@@ -101,7 +102,6 @@ initialize_table_sctpAssocRemAddrTable(void)
     if (SNMPERR_SUCCESS != netsnmp_register_table(reg, table_info)) {
         snmp_log(LOG_ERR,
                  "error registering table handler for sctpAssocRemAddrTable\n");
-        reg = NULL; /* it was freed inside netsnmp_register_table */
         goto bail;
     }
 
@@ -120,8 +120,6 @@ initialize_table_sctpAssocRemAddrTable(void)
     if (handler)
         netsnmp_handler_free(handler);
 
-    if (table_info)
-        netsnmp_table_registration_info_free(table_info);
 
     if (container)
         CONTAINER_FREE(container);
@@ -130,16 +128,6 @@ initialize_table_sctpAssocRemAddrTable(void)
         netsnmp_handler_registration_free(reg);
 }
 
-void
-shutdown_table_sctpAssocRemAddrTable(void)
-{
-    if (table_info) {
-        netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-    sctpAssocRemAddrTable_container_clear(sctpAssocRemAddrTable_container);
-}
-
 
 /** handles requests for the sctpAssocRemAddrTable table */
 int
@@ -319,7 +307,8 @@ sctpAssocRemAddrTable_entry_copy(sctpAssocRemAddrTable_entry * from,
 void
 sctpAssocRemAddrTable_entry_free(sctpAssocRemAddrTable_entry * entry)
 {
-    SNMP_FREE(entry);
+    if (entry != NULL)
+        SNMP_FREE(entry);
 }
 
 netsnmp_container *
diff --git a/agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.h b/agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.h
index 5068561..cc65c7e 100644
--- a/agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.h
+++ b/agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.h
@@ -13,7 +13,6 @@
 void            init_sctpAssocRemAddrTable(void);
 void            shutdown_sctpAssocRemAddrTable(void);
 void            initialize_table_sctpAssocRemAddrTable(void);
-void            shutdown_table_sctpAssocRemAddrTable(void);
 Netsnmp_Node_Handler sctpAssocRemAddrTable_handler;
 
 /*
diff --git a/agent/mibgroup/sctp-mib/sctpAssocTable.c b/agent/mibgroup/sctp-mib/sctpAssocTable.c
index 9919075..8b824d1 100644
--- a/agent/mibgroup/sctp-mib/sctpAssocTable.c
+++ b/agent/mibgroup/sctp-mib/sctpAssocTable.c
@@ -6,6 +6,7 @@
 #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/net-snmp-agent-includes.h>
 #include <net-snmp/agent/table_container.h>
 #include "sctpAssocTable.h"
 
@@ -16,7 +17,6 @@ static int      _cache_load(netsnmp_cache * cache, void *vmagic);
  * content of the sctpAssocTable 
  */
 static netsnmp_container *sctpAssocTable_container;
-static netsnmp_table_registration_info *table_info;
 
 /** Initializes the sctpAssocTable module */
 void
@@ -31,7 +31,7 @@ init_sctpAssocTable(void)
 void
 shutdown_sctpAssocTable(void)
 {
-    shutdown_table_sctpAssocTable();
+    sctpAssocTable_container_clear(sctpAssocTable_container);
 }
 
 /** Initialize the sctpAssocTable table by defining its contents and how it's structured */
@@ -44,6 +44,7 @@ initialize_table_sctpAssocTable(void)
     netsnmp_handler_registration *reg = NULL;
     netsnmp_mib_handler *handler = NULL;
     netsnmp_container *container = NULL;
+    netsnmp_table_registration_info *table_info = NULL;
     netsnmp_cache  *cache = NULL;
 
     reg =
@@ -120,8 +121,6 @@ initialize_table_sctpAssocTable(void)
         goto bail;
     }
 
-    netsnmp_cache_handler_owns_cache(handler);
-
     if (SNMPERR_SUCCESS != netsnmp_inject_handler(reg, handler)) {
         snmp_log(LOG_ERR,
                  "error injecting cache handler for sctpAssocTable\n");
@@ -135,7 +134,6 @@ initialize_table_sctpAssocTable(void)
     if (SNMPERR_SUCCESS != netsnmp_register_table(reg, table_info)) {
         snmp_log(LOG_ERR,
                  "error registering table handler for sctpAssocTable\n");
-        reg = NULL; /* it was freed inside netsnmp_register_table */
         goto bail;
     }
 
@@ -154,12 +152,6 @@ initialize_table_sctpAssocTable(void)
     if (handler)
         netsnmp_handler_free(handler);
 
-    if (cache)
-        netsnmp_cache_free(cache);
-
-    if (table_info)
-        netsnmp_table_registration_info_free(table_info);
-
     if (container)
         CONTAINER_FREE(container);
 
@@ -167,17 +159,6 @@ initialize_table_sctpAssocTable(void)
         netsnmp_handler_registration_free(reg);
 }
 
-void
-shutdown_table_sctpAssocTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-    if (sctpAssocTable_container)
-	sctpAssocTable_container_clear(sctpAssocTable_container);
-}
-
 
 /** handles requests for the sctpAssocTable table */
 int
@@ -507,7 +488,8 @@ sctpAssocTable_entry_copy(sctpAssocTable_entry * from,
 void
 sctpAssocTable_entry_free(sctpAssocTable_entry * entry)
 {
-    SNMP_FREE(entry);
+    if (entry != NULL)
+        SNMP_FREE(entry);
 }
 
 netsnmp_container *
diff --git a/agent/mibgroup/sctp-mib/sctpAssocTable.h b/agent/mibgroup/sctp-mib/sctpAssocTable.h
index c6257b0..a6a9f3c 100644
--- a/agent/mibgroup/sctp-mib/sctpAssocTable.h
+++ b/agent/mibgroup/sctp-mib/sctpAssocTable.h
@@ -13,7 +13,6 @@
 void            init_sctpAssocTable(void);
 void            shutdown_sctpAssocTable(void);
 void            initialize_table_sctpAssocTable(void);
-void            shutdown_table_sctpAssocTable(void);
 Netsnmp_Node_Handler sctpAssocTable_handler;
 
 /*
diff --git a/agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.c b/agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.c
index 1a6fd35..33a5548 100644
--- a/agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.c
+++ b/agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.c
@@ -6,11 +6,11 @@
 #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/net-snmp-agent-includes.h>
 #include <net-snmp/agent/table_container.h>
 #include "sctpLookupLocalPortTable.h"
 
 static netsnmp_container *sctpLookupLocalPortTable_container;
-static netsnmp_table_registration_info *table_info;
 
 /** Initializes the sctpLookupLocalPortTable module */
 void
@@ -25,7 +25,8 @@ init_sctpLookupLocalPortTable(void)
 void
 shutdown_sctpLookupLocalPortTable(void)
 {
-    shutdown_table_sctpLookupLocalPortTable();
+    sctpLookupLocalPortTable_container_clear
+        (sctpLookupLocalPortTable_container);
 }
 
 /** Initialize the sctpLookupLocalPortTable table by defining its contents and how it's structured */
@@ -39,6 +40,7 @@ initialize_table_sctpLookupLocalPortTable(void)
     netsnmp_handler_registration *reg = NULL;
     netsnmp_mib_handler *handler = NULL;
     netsnmp_container *container = NULL;
+    netsnmp_table_registration_info *table_info = NULL;
 
     reg =
         netsnmp_create_handler_registration("sctpLookupLocalPortTable",
@@ -97,7 +99,6 @@ initialize_table_sctpLookupLocalPortTable(void)
     if (SNMPERR_SUCCESS != netsnmp_register_table(reg, table_info)) {
         snmp_log(LOG_ERR,
                  "error registering table handler for sctpLookupLocalPortTable\n");
-        reg = NULL; /* it was freed inside netsnmp_register_table */
         goto bail;
     }
 
@@ -116,8 +117,6 @@ initialize_table_sctpLookupLocalPortTable(void)
     if (handler)
         netsnmp_handler_free(handler);
 
-    if (table_info)
-        netsnmp_table_registration_info_free(table_info);
 
     if (container)
         CONTAINER_FREE(container);
@@ -126,16 +125,6 @@ initialize_table_sctpLookupLocalPortTable(void)
         netsnmp_handler_registration_free(reg);
 }
 
-void
-shutdown_table_sctpLookupLocalPortTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-    sctpLookupLocalPortTable_container_clear
-        (sctpLookupLocalPortTable_container);
-}
 
 /** handles requests for the sctpLookupLocalPortTable table */
 int
@@ -258,7 +247,8 @@ sctpLookupLocalPortTable_entry_copy(sctpLookupLocalPortTable_entry * from,
 void
 sctpLookupLocalPortTable_entry_free(sctpLookupLocalPortTable_entry * entry)
 {
-    SNMP_FREE(entry);
+    if (entry != NULL)
+        SNMP_FREE(entry);
 }
 
 netsnmp_container *
diff --git a/agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.h b/agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.h
index 226c168..9da6cd9 100644
--- a/agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.h
+++ b/agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.h
@@ -13,7 +13,6 @@
 void            init_sctpLookupLocalPortTable(void);
 void            shutdown_sctpLookupLocalPortTable(void);
 void            initialize_table_sctpLookupLocalPortTable(void);
-void            shutdown_table_sctpLookupLocalPortTable(void);
 Netsnmp_Node_Handler sctpLookupLocalPortTable_handler;
 
 /*
diff --git a/agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.c b/agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.c
index ae2ec91..8ab4b98 100644
--- a/agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.c
+++ b/agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.c
@@ -6,11 +6,11 @@
 #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/net-snmp-agent-includes.h>
 #include <net-snmp/agent/table_container.h>
 #include "sctpLookupRemHostNameTable.h"
 
 static netsnmp_container *sctpLookupRemHostNameTable_container;
-static netsnmp_table_registration_info *table_info;
 
 /** Initializes the sctpLookupRemHostNameTable module */
 void
@@ -25,7 +25,8 @@ init_sctpLookupRemHostNameTable(void)
 void
 shutdown_sctpLookupRemHostNameTable(void)
 {
-    shutdown_table_sctpLookupRemHostNameTable();
+    sctpLookupRemHostNameTable_container_clear
+        (sctpLookupRemHostNameTable_container);
 }
 
 /** Initialize the sctpLookupRemHostNameTable table by defining its contents and how it's structured */
@@ -39,6 +40,7 @@ initialize_table_sctpLookupRemHostNameTable(void)
     netsnmp_handler_registration *reg = NULL;
     netsnmp_mib_handler *handler = NULL;
     netsnmp_container *container = NULL;
+    netsnmp_table_registration_info *table_info = NULL;
 
     reg =
         netsnmp_create_handler_registration("sctpLookupRemHostNameTable",
@@ -99,7 +101,6 @@ initialize_table_sctpLookupRemHostNameTable(void)
     if (SNMPERR_SUCCESS != netsnmp_register_table(reg, table_info)) {
         snmp_log(LOG_ERR,
                  "error registering table handler for sctpLookupRemHostNameTable\n");
-        reg = NULL; /* it was freed inside netsnmp_register_table */
         goto bail;
     }
 
@@ -118,9 +119,6 @@ initialize_table_sctpLookupRemHostNameTable(void)
     if (handler)
         netsnmp_handler_free(handler);
 
-    if (table_info)
-        netsnmp_table_registration_info_free(table_info);
-
     if (container)
         CONTAINER_FREE(container);
 
@@ -128,17 +126,6 @@ initialize_table_sctpLookupRemHostNameTable(void)
         netsnmp_handler_registration_free(reg);
 }
 
-void
-shutdown_table_sctpLookupRemHostNameTable(void)
-{
-    if (table_info) {
-        netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-    sctpLookupRemHostNameTable_container_clear
-        (sctpLookupRemHostNameTable_container);
-}
-
 /** handles requests for the sctpLookupRemHostNameTable table */
 int
 sctpLookupRemHostNameTable_handler(netsnmp_mib_handler *handler,
@@ -263,7 +250,8 @@ void
 sctpLookupRemHostNameTable_entry_free(sctpLookupRemHostNameTable_entry *
                                       entry)
 {
-    SNMP_FREE(entry);
+    if (entry != NULL)
+        SNMP_FREE(entry);
 }
 
 netsnmp_container *
diff --git a/agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.h b/agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.h
index 5bd3c48..484cb58 100644
--- a/agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.h
+++ b/agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.h
@@ -13,7 +13,6 @@
 void            init_sctpLookupRemHostNameTable(void);
 void            shutdown_sctpLookupRemHostNameTable(void);
 void            initialize_table_sctpLookupRemHostNameTable(void);
-void            shutdown_table_sctpLookupRemHostNameTable(void);
 Netsnmp_Node_Handler sctpLookupRemHostNameTable_handler;
 
 /*
diff --git a/agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.c b/agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.c
index 368dd51..7d15941 100644
--- a/agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.c
+++ b/agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.c
@@ -6,11 +6,11 @@
 #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/net-snmp-agent-includes.h>
 #include <net-snmp/agent/table_container.h>
 #include "sctpLookupRemIPAddrTable.h"
 
 static netsnmp_container *sctpLookupRemIPAddrTable_container;
-static netsnmp_table_registration_info *table_info;
 
 /** Initializes the sctpLookupRemIPAddrTable module */
 void
@@ -25,7 +25,8 @@ init_sctpLookupRemIPAddrTable(void)
 void
 shutdown_sctpLookupRemIPAddrTable(void)
 {
-    shutdown_table_sctpLookupRemIPAddrTable();
+    sctpLookupRemIPAddrTable_container_clear
+        (sctpLookupRemIPAddrTable_container);
 }
 
 /** Initialize the sctpLookupRemIPAddrTable table by defining its contents and how it's structured */
@@ -39,6 +40,7 @@ initialize_table_sctpLookupRemIPAddrTable(void)
     netsnmp_handler_registration *reg = NULL;
     netsnmp_mib_handler *handler = NULL;
     netsnmp_container *container = NULL;
+    netsnmp_table_registration_info *table_info = NULL;
 
     reg =
         netsnmp_create_handler_registration("sctpLookupRemIPAddrTable",
@@ -98,7 +100,6 @@ initialize_table_sctpLookupRemIPAddrTable(void)
     if (SNMPERR_SUCCESS != netsnmp_register_table(reg, table_info)) {
         snmp_log(LOG_ERR,
                  "error registering table handler for sctpLookupRemIPAddrTable\n");
-        reg = NULL; /* it was freed inside netsnmp_register_table */
         goto bail;
     }
 
@@ -112,8 +113,6 @@ initialize_table_sctpLookupRemIPAddrTable(void)
     if (handler)
         netsnmp_handler_free(handler);
 
-    if (table_info)
-        netsnmp_table_registration_info_free(table_info);
 
     if (container)
         CONTAINER_FREE(container);
@@ -122,17 +121,6 @@ initialize_table_sctpLookupRemIPAddrTable(void)
         netsnmp_handler_registration_free(reg);
 }
 
-void
-shutdown_table_sctpLookupRemIPAddrTable(void)
-{
-    if (table_info) {
-        netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-    sctpLookupRemIPAddrTable_container_clear
-        (sctpLookupRemIPAddrTable_container);
-}
-
 /** handles requests for the sctpLookupRemIPAddrTable table */
 int
 sctpLookupRemIPAddrTable_handler(netsnmp_mib_handler *handler,
@@ -263,7 +251,8 @@ sctpLookupRemIPAddrTable_entry_copy(sctpLookupRemIPAddrTable_entry * from,
 void
 sctpLookupRemIPAddrTable_entry_free(sctpLookupRemIPAddrTable_entry * entry)
 {
-    SNMP_FREE(entry);
+    if (entry != NULL)
+        SNMP_FREE(entry);
 }
 
 netsnmp_container *
diff --git a/agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.h b/agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.h
index b74514c..e315d6d 100644
--- a/agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.h
+++ b/agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.h
@@ -13,7 +13,6 @@
 void            init_sctpLookupRemIPAddrTable(void);
 void            shutdown_sctpLookupRemIPAddrTable(void);
 void            initialize_table_sctpLookupRemIPAddrTable(void);
-void            shutdown_table_sctpLookupRemIPAddrTable(void);
 Netsnmp_Node_Handler sctpLookupRemIPAddrTable_handler;
 
 /*
diff --git a/agent/mibgroup/sctp-mib/sctpLookupRemPortTable.c b/agent/mibgroup/sctp-mib/sctpLookupRemPortTable.c
index c8a8874..c6ee4e6 100644
--- a/agent/mibgroup/sctp-mib/sctpLookupRemPortTable.c
+++ b/agent/mibgroup/sctp-mib/sctpLookupRemPortTable.c
@@ -6,11 +6,11 @@
 #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/net-snmp-agent-includes.h>
 #include <net-snmp/agent/table_container.h>
 #include "sctpLookupRemPortTable.h"
 
 static netsnmp_container *sctpLookupRemPortTable_container;
-static netsnmp_table_registration_info *table_info;
 
 /** Initializes the sctpLookupRemPortTable module */
 void
@@ -25,7 +25,8 @@ init_sctpLookupRemPortTable(void)
 void
 shutdown_sctpLookupRemPortTable(void)
 {
-    shutdown_table_sctpLookupRemPortTable();
+    sctpLookupRemPortTable_container_clear
+        (sctpLookupRemPortTable_container);
 }
 
 /** Initialize the sctpLookupRemPortTable table by defining its contents and how it's structured */
@@ -39,6 +40,7 @@ initialize_table_sctpLookupRemPortTable(void)
     netsnmp_handler_registration *reg = NULL;
     netsnmp_mib_handler *handler = NULL;
     netsnmp_container *container = NULL;
+    netsnmp_table_registration_info *table_info = NULL;
 
     reg =
         netsnmp_create_handler_registration("sctpLookupRemPortTable",
@@ -97,7 +99,6 @@ initialize_table_sctpLookupRemPortTable(void)
     if (SNMPERR_SUCCESS != netsnmp_register_table(reg, table_info)) {
         snmp_log(LOG_ERR,
                  "error registering table handler for sctpLookupRemPortTable\n");
-        reg = NULL; /* it was freed inside netsnmp_register_table */
         goto bail;
     }
 
@@ -111,8 +112,6 @@ initialize_table_sctpLookupRemPortTable(void)
     if (handler)
         netsnmp_handler_free(handler);
 
-    if (table_info)
-        netsnmp_table_registration_info_free(table_info);
 
     if (container)
         CONTAINER_FREE(container);
@@ -121,17 +120,6 @@ initialize_table_sctpLookupRemPortTable(void)
         netsnmp_handler_registration_free(reg);
 }
 
-void
-shutdown_table_sctpLookupRemPortTable(void)
-{
-    if (table_info) {
-	netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-    sctpLookupRemPortTable_container_clear
-        (sctpLookupRemPortTable_container);
-}
-
 /** handles requests for the sctpLookupRemPortTable table */
 int
 sctpLookupRemPortTable_handler(netsnmp_mib_handler *handler,
@@ -253,7 +241,8 @@ sctpLookupRemPortTable_entry_copy(sctpLookupRemPortTable_entry * from,
 void
 sctpLookupRemPortTable_entry_free(sctpLookupRemPortTable_entry * entry)
 {
-    SNMP_FREE(entry);
+    if (entry != NULL)
+        SNMP_FREE(entry);
 }
 
 netsnmp_container *
diff --git a/agent/mibgroup/sctp-mib/sctpLookupRemPortTable.h b/agent/mibgroup/sctp-mib/sctpLookupRemPortTable.h
index b2ac811..96d49ce 100644
--- a/agent/mibgroup/sctp-mib/sctpLookupRemPortTable.h
+++ b/agent/mibgroup/sctp-mib/sctpLookupRemPortTable.h
@@ -13,7 +13,6 @@
 void            init_sctpLookupRemPortTable(void);
 void            shutdown_sctpLookupRemPortTable(void);
 void            initialize_table_sctpLookupRemPortTable(void);
-void            shutdown_table_sctpLookupRemPortTable(void);
 Netsnmp_Node_Handler sctpLookupRemPortTable_handler;
 
 /*
diff --git a/agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.c b/agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.c
index d9966fc..d9adf17 100644
--- a/agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.c
+++ b/agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.c
@@ -6,11 +6,11 @@
 #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/net-snmp-agent-includes.h>
 #include <net-snmp/agent/table_container.h>
 #include "sctpLookupRemPrimIPAddrTable.h"
 
 static netsnmp_container *sctpLookupRemPrimIPAddrTable_container;
-static netsnmp_table_registration_info *table_info;
 
 /** Initializes the sctpLookupRemPrimIPAddrTable module */
 void
@@ -25,7 +25,8 @@ init_sctpLookupRemPrimIPAddrTable(void)
 void
 shutdown_sctpLookupRemPrimIPAddrTable(void)
 {
-    shutdown_table_sctpLookupRemPrimIPAddrTable();
+    sctpLookupRemPrimIPAddrTable_container_clear
+        (sctpLookupRemPrimIPAddrTable_container);
 }
 
 /** Initialize the sctpLookupRemPrimIPAddrTable table by defining its contents and how it's structured */
@@ -39,6 +40,7 @@ initialize_table_sctpLookupRemPrimIPAddrTable(void)
     netsnmp_handler_registration *reg = NULL;
     netsnmp_mib_handler *handler = NULL;
     netsnmp_container *container = NULL;
+    netsnmp_table_registration_info *table_info = NULL;
 
     reg =
         netsnmp_create_handler_registration("sctpLookupRemPrimIPAddrTable",
@@ -99,7 +101,6 @@ initialize_table_sctpLookupRemPrimIPAddrTable(void)
     if (SNMPERR_SUCCESS != netsnmp_register_table(reg, table_info)) {
         snmp_log(LOG_ERR,
                  "error registering table handler for sctpLookupRemPrimIPAddrTable\n");
-        reg = NULL; /* it was freed inside netsnmp_register_table */
         goto bail;
     }
 
@@ -113,8 +114,6 @@ initialize_table_sctpLookupRemPrimIPAddrTable(void)
     if (handler)
         netsnmp_handler_free(handler);
 
-    if (table_info)
-        netsnmp_table_registration_info_free(table_info);
 
     if (container)
         CONTAINER_FREE(container);
@@ -123,17 +122,6 @@ initialize_table_sctpLookupRemPrimIPAddrTable(void)
         netsnmp_handler_registration_free(reg);
 }
 
-void
-shutdown_table_sctpLookupRemPrimIPAddrTable(void)
-{
-    if (table_info) {
-        netsnmp_table_registration_info_free(table_info);
-	table_info = NULL;
-    }
-    sctpLookupRemPrimIPAddrTable_container_clear
-        (sctpLookupRemPrimIPAddrTable_container);
-}
-
 /** handles requests for the sctpLookupRemPrimIPAddrTable table */
 int
 sctpLookupRemPrimIPAddrTable_handler(netsnmp_mib_handler *handler,
@@ -268,7 +256,8 @@ void
 sctpLookupRemPrimIPAddrTable_entry_free(sctpLookupRemPrimIPAddrTable_entry
                                         * entry)
 {
-    SNMP_FREE(entry);
+    if (entry != NULL)
+        SNMP_FREE(entry);
 }
 
 netsnmp_container *
diff --git a/agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.h b/agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.h
index f3becdc..aaa5a0b 100644
--- a/agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.h
+++ b/agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.h
@@ -13,7 +13,6 @@
 void            init_sctpLookupRemPrimIPAddrTable(void);
 void            shutdown_sctpLookupRemPrimIPAddrTable(void);
 void            initialize_table_sctpLookupRemPrimIPAddrTable(void);
-void            shutdown_table_sctpLookupRemPrimIPAddrTable(void);
 Netsnmp_Node_Handler sctpLookupRemPrimIPAddrTable_handler;
 
 /*
diff --git a/agent/mibgroup/sctp-mib/sctpScalars.c b/agent/mibgroup/sctp-mib/sctpScalars.c
index 821079a..1e26d11 100644
--- a/agent/mibgroup/sctp-mib/sctpScalars.c
+++ b/agent/mibgroup/sctp-mib/sctpScalars.c
@@ -18,7 +18,6 @@ init_sctpScalars(void)
 {
     netsnmp_handler_registration *reginfo_stats;
     netsnmp_handler_registration *reginfo_params;
-    int rc;
 
     DEBUGMSGTL(("sctp:scalars:init", "Initializing\n"));
 
@@ -28,14 +27,8 @@ init_sctpScalars(void)
                                             sctp_stats_oid,
                                             OID_LENGTH(sctp_stats_oid),
                                             HANDLER_CAN_RONLY);
-    if (!reginfo_stats)
-        return;
-
-    rc = netsnmp_register_scalar_group(reginfo_stats, SCTP_CURRESTAB,
+    netsnmp_register_scalar_group(reginfo_stats, SCTP_CURRESTAB,
                                   SCTP_DISCONTINUITYTIME);
-    if (rc != SNMPERR_SUCCESS)
-        return;
-
     netsnmp_inject_handler(reginfo_stats,
                            netsnmp_get_cache_handler
                            (SCTP_STATS_CACHE_TIMEOUT,
@@ -50,13 +43,8 @@ init_sctpScalars(void)
                                             sctp_params_oid,
                                             OID_LENGTH(sctp_params_oid),
                                             HANDLER_CAN_RONLY);
-    if (!reginfo_params)
-        return;
-
-    rc = netsnmp_register_scalar_group(reginfo_params, SCTP_RTOALGORITHM,
+    netsnmp_register_scalar_group(reginfo_params, SCTP_RTOALGORITHM,
                                   SCTP_MAXINITRETR);
-    if (!rc)
-        return;
     netsnmp_inject_handler(reginfo_params,
                            netsnmp_get_cache_handler
                            (SCTP_PARAMS_CACHE_TIMEOUT,
@@ -77,6 +65,7 @@ sctp_stats_handler(netsnmp_mib_handler *handler,
 {
     netsnmp_variable_list *requestvb;
     int             subid;
+    int             ret;
 
     DEBUGMSGTL(("sctp:scalars:stats", "Handler - mode %s\n",
                 se_find_label_in_slist("agent_mode", reqinfo->mode)));
@@ -93,6 +82,21 @@ sctp_stats_handler(netsnmp_mib_handler *handler,
                  requestvb->name_length));
     DEBUGMSG(("sctp:scalars:stats", "\n"));
 
+
+    /*
+     * Load the cache if it was not loaded before 
+     */
+    if (!netsnmp_cache_is_valid(reqinfo, reginfo->handlerName)) {
+        DEBUGMSGTL(("sctp:scalars:stats", "cache is not valid!\n"));
+        ret = netsnmp_access_sctp_stats_load(NULL, NULL);
+        if (ret < 0) {
+            DEBUGMSGTL(("sctp:scalars:stats",
+                        "could not load sctp stats!\n"));
+            netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT);
+            return SNMP_ERR_NOERROR;
+        }
+    }
+
     switch (subid) {
 
     case SCTP_CURRESTAB:
@@ -226,6 +230,7 @@ sctp_params_handler(netsnmp_mib_handler *handler,
 {
     netsnmp_variable_list *requestvb;
     int             subid;
+    int             ret;
 
     DEBUGMSGTL(("sctp:scalars:params", "Handler - mode %s\n",
                 se_find_label_in_slist("agent_mode", reqinfo->mode)));
@@ -242,6 +247,20 @@ sctp_params_handler(netsnmp_mib_handler *handler,
                  requestvb->name_length));
     DEBUGMSG(("sctp:scalars:params", "\n"));
 
+    /*
+     * Load the cache if it was not loaded before 
+     */
+    if (!netsnmp_cache_is_valid(reqinfo, reginfo->handlerName)) {
+        DEBUGMSGTL(("sctp:scalars:params", "cache is not valid!\n"));
+        ret = netsnmp_access_sctp_params_load(NULL, NULL);
+        if (ret < 0) {
+            DEBUGMSGTL(("sctp:scalars:params",
+                        "could not load sctp stats!\n"));
+            netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT);
+            return SNMP_ERR_NOERROR;
+        }
+    }
+
     switch (subid) {
 
     case SCTP_RTOALGORITHM:
diff --git a/agent/mibgroup/sctp-mib/sctpScalars.h b/agent/mibgroup/sctp-mib/sctpScalars.h
index 8dbb8b5..25b187a 100644
--- a/agent/mibgroup/sctp-mib/sctpScalars.h
+++ b/agent/mibgroup/sctp-mib/sctpScalars.h
@@ -7,10 +7,6 @@
 config_require(sctp-mib/sctpScalars_common)
 #if defined( linux )
 config_require(sctp-mib/sctpScalars_linux)
-#elif defined( freebsd8 ) || defined ( freebsd7 )
-config_require(sctp-mib/sctpScalars_freebsd)	 
-#elif defined( solaris2 )
-config_require(sctp-mib/sctpScalars_solaris2)	 
 #else
 /*
  * couldn't determine the correct file!
diff --git a/agent/mibgroup/sctp-mib/sctpScalars_common.c b/agent/mibgroup/sctp-mib/sctpScalars_common.c
index 2a895a8..5a9ee34 100644
--- a/agent/mibgroup/sctp-mib/sctpScalars_common.c
+++ b/agent/mibgroup/sctp-mib/sctpScalars_common.c
@@ -8,6 +8,7 @@ netsnmp_sctp_stats sctp_stats;
 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;
 
@@ -54,75 +55,46 @@ netsnmp_access_sctp_stats_load(netsnmp_cache * cache, void *magic)
     /*
      * Update 64 bit counters
      */
-    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.out_ctrl_chunks,
+    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_LOGONCE((LOG_ERR,
-                "SCTP: Error expanding sctpOutCtrlChunks to 64bits\n"));
-
-    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.out_order_chunks,
+                                   &need_wrap_check);
+    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_LOGONCE((LOG_ERR,
-                "SCTP: Error expanding sctpOutOrderChunks to 64bits\n"));
-
-    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.out_unorder_chunks,
+                                   &need_wrap_check);
+    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_LOGONCE((LOG_ERR,
-                "SCTP: Error expanding sctpOutUnorderChunks to 64bits\n"));
-
-    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.in_ctrl_chunks,
+                                   &need_wrap_check);
+    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_LOGONCE((LOG_ERR,
-                "SCTP: Error expanding sctpInCtrlChunks to 64bits\n"));
-
-    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.in_order_chunks,
+                                   &need_wrap_check);
+    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_LOGONCE((LOG_ERR,
-                "SCTP: Error expanding sctpInOrderChunks to 64bits\n"));
-
-    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.in_unorder_chunks,
+                                   &need_wrap_check);
+    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_LOGONCE((LOG_ERR,
-                "SCTP: Error expanding sctpInUnorderChunks to 64bits\n"));
-
-    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.frag_usr_msgs,
+                                   &need_wrap_check);
+    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_LOGONCE((LOG_ERR,
-                "SCTP: Error expanding sctpFragUsrMsgs to 64bits\n"));
-
-    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.reasm_usr_msgs,
+                                   &need_wrap_check);
+    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_LOGONCE((LOG_ERR,
-                "SCTP: Error expanding sctpReasmUsrMsgs to 64bits\n"));
-
-    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.out_sctp_packs,
+                                   &need_wrap_check);
+    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_LOGONCE((LOG_ERR,
-                "SCTP: Error expanding sctpOutSCTPPacks to 64bits\n"));
-
-    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.in_sctp_packs,
+                                   &need_wrap_check);
+    netsnmp_c64_check32_and_update(&sctp_stats.in_sctp_packs,
                                    &new_stats.in_sctp_packs,
                                    &prev_sctp_stats.in_sctp_packs,
-                                   &need_wrap_check))
-        NETSNMP_LOGONCE((LOG_ERR,
-                "SCTP: Error expanding sctpInSCTPPacks to 64bits\n"));
+                                   &need_wrap_check);
 
     /*
      * Update prev_stats for next computation.
diff --git a/agent/mibgroup/sctp-mib/sctpScalars_freebsd.c b/agent/mibgroup/sctp-mib/sctpScalars_freebsd.c
deleted file mode 100644
index b8c723f..0000000
--- a/agent/mibgroup/sctp-mib/sctpScalars_freebsd.c
+++ /dev/null
@@ -1,93 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include "sctpScalars_common.h"
-
-#include <stdio.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/sysctl.h>
-#include <stdint.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netinet/sctp.h>
-#include <netinet/sctp_constants.h>
-
-void
-netsnmp_access_sctp_stats_arch_init()
-{
-}
-
-int
-netsnmp_access_sctp_stats_arch_load(netsnmp_sctp_stats * sctp_stats)
-{
-  struct sctpstat stat;
-  size_t len = sizeof(struct sctpstat);
-
-  if (sysctlbyname("net.inet.sctp.stats", &stat, &len, NULL, 0) < 0) {
-	return(-1);
-  }
-  memset(sctp_stats, 0, sizeof(netsnmp_sctp_stats));
-  sctp_stats->curr_estab = stat.sctps_currestab;
-  sctp_stats->active_estabs = stat.sctps_activeestab;
-  sctp_stats->passive_estabs = stat.sctps_passiveestab;
-  sctp_stats->aborteds = stat.sctps_aborted;
-  sctp_stats->shutdowns = stat.sctps_shutdown;
-  sctp_stats->out_of_blues = stat.sctps_outoftheblue;
-  sctp_stats->checksum_errors = stat.sctps_checksumerrors;
-  sctp_stats->out_ctrl_chunks.low = stat.sctps_outcontrolchunks;
-  sctp_stats->out_order_chunks.low = stat.sctps_outorderchunks;
-  sctp_stats->out_unorder_chunks.low = stat.sctps_outunorderchunks;
-  sctp_stats->in_ctrl_chunks.low = stat.sctps_incontrolchunks;
-  sctp_stats->in_order_chunks.low = stat.sctps_inorderchunks;
-  sctp_stats->in_unorder_chunks.low = stat.sctps_inunorderchunks;
-  sctp_stats->frag_usr_msgs.low = stat.sctps_fragusrmsgs;
-  sctp_stats->reasm_usr_msgs.low = stat.sctps_reasmusrmsgs;
-  sctp_stats->out_sctp_packs.low = stat.sctps_outpackets;
-  sctp_stats->in_sctp_packs.low = stat.sctps_inpackets;
-  sctp_stats->discontinuity_time = 0;
-  return 0;
-}
-
-void
-netsnmp_access_sctp_params_arch_init()
-{
-}
-
-int
-netsnmp_access_sctp_params_arch_load(netsnmp_sctp_params * sctp_params)
-{
-	size_t len = sizeof(uint32_t);
-
-    sctp_params->rto_algorithm = NETSNMP_SCTP_ALGORITHM_VANJ;
-    sctp_params->max_assocs =  SCTP_MAX_NUM_OF_ASOC; 
-	if (sysctlbyname("net.inet.sctp.rto_max",
-					 &sctp_params->rto_max,
-					 &len, NULL, 0) < 0) {
-	  return(-1);
-	}
-	if (sysctlbyname("net.inet.sctp.rto_min",
-					 &sctp_params->rto_min,
-					 &len, NULL, 0) < 0) {
-	  return(-1);
-	}
-	if (sysctlbyname("net.inet.sctp.rto_initial",
-					 &sctp_params->rto_initial,
-					 &len, NULL, 0) < 0) {
-	  return(-1);
-	}
-	if (sysctlbyname("net.inet.sctp.valid_cookie_life",
-					 &sctp_params->val_cookie_life,
-					 &len, NULL, 0) < 0) {
-	  return(-1);
-	}
-	if (sysctlbyname("net.inet.sctp.init_rtx_max",
-					 &sctp_params->max_init_retr,
-					 &len, NULL, 0) < 0) {
-	  return(-1);
-	}
-    return 0;
-}
diff --git a/agent/mibgroup/sctp-mib/sctpScalars_linux.c b/agent/mibgroup/sctp-mib/sctpScalars_linux.c
index 2e5b5af..8cbe90f 100644
--- a/agent/mibgroup/sctp-mib/sctpScalars_linux.c
+++ b/agent/mibgroup/sctp-mib/sctpScalars_linux.c
@@ -35,7 +35,6 @@ load_uint_file(const char *filename, u_int * value)
     if (ret != 1) {
         DEBUGMSGTL(("sctp:scalars:arch:load", "Malformed file %s\n",
                     filename));
-        fclose(f);
         return -2;
     }
 
@@ -72,7 +71,6 @@ netsnmp_access_sctp_stats_arch_load(netsnmp_sctp_stats * sctp_stats)
         if (delimiter == NULL) {
             DEBUGMSGTL(("sctp:scalars:stats:arch_load",
                         "Malformed line, cannot find '\\t'!\n"));
-            fclose(f);
             return -1;
         }
         errno = 0;
@@ -80,7 +78,6 @@ netsnmp_access_sctp_stats_arch_load(netsnmp_sctp_stats * sctp_stats)
         if (errno != 0) {
             DEBUGMSGTL(("sctp:scalars:stats:arch_load",
                         "Malformed value!'\n"));
-            fclose(f);
             return -1;
         }
 
@@ -139,13 +136,11 @@ netsnmp_access_sctp_stats_arch_load(netsnmp_sctp_stats * sctp_stats)
         if (ret < 0) {
             DEBUGMSGTL(("sctp:scalars:stats:arch_load",
                         "Unknown entry!'\n"));
-            fclose(f);
             return ret;
         }
     }
 
     sctp_stats->discontinuity_time = 0;
-    fclose(f);
     return 0;
 }
 
diff --git a/agent/mibgroup/sctp-mib/sctpScalars_solaris2.c b/agent/mibgroup/sctp-mib/sctpScalars_solaris2.c
deleted file mode 100644
index c7ab546..0000000
--- a/agent/mibgroup/sctp-mib/sctpScalars_solaris2.c
+++ /dev/null
@@ -1,95 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include "sctpScalars_common.h"
-
-#include <stdio.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <stdint.h>
-#include <sys/socket.h>
-#include <inet/mib2.h>
-
-#include "kernel_sunos5.h"
-
-void
-netsnmp_access_sctp_stats_arch_init()
-{
-}
-
-int
-netsnmp_access_sctp_stats_arch_load(netsnmp_sctp_stats * sctp_stats)
-{
-    mib2_sctp_t sctpstat;
-    size_t len = sizeof(sctpstat);
-    int ret;
-
-    ret = getMibstat(MIB_SCTP, &sctpstat, len, GET_FIRST, &Get_everything, NULL);
-    if (ret) {
-        snmp_log_perror("getMibstat MIB_SCTP");
-	return -1;
-    }
-    memset(sctp_stats, 0, sizeof(netsnmp_sctp_stats));
-    sctp_stats->curr_estab = sctpstat.sctpCurrEstab;
-    sctp_stats->active_estabs = sctpstat.sctpActiveEstab;
-    sctp_stats->passive_estabs = sctpstat.sctpPassiveEstab;
-    sctp_stats->aborteds = sctpstat.sctpAborted;
-    sctp_stats->shutdowns = sctpstat.sctpShutdowns;
-    sctp_stats->out_of_blues = sctpstat.sctpOutOfBlue;
-    sctp_stats->checksum_errors = sctpstat.sctpChecksumError;
-    sctp_stats->out_ctrl_chunks.low = sctpstat.sctpOutCtrlChunks & 0xFFFFFFFF;
-    sctp_stats->out_ctrl_chunks.high = sctpstat.sctpOutCtrlChunks >> 32;
-    sctp_stats->out_order_chunks.low = sctpstat.sctpOutOrderChunks & 0xFFFFFFFF;
-    sctp_stats->out_order_chunks.high = sctpstat.sctpOutOrderChunks >> 32;
-    sctp_stats->out_unorder_chunks.low = sctpstat.sctpOutUnorderChunks & 0xFFFFFFFF;
-    sctp_stats->out_unorder_chunks.high = sctpstat.sctpOutUnorderChunks >> 32;
-    sctp_stats->in_ctrl_chunks.low = sctpstat.sctpInCtrlChunks & 0xFFFFFFFF;
-    sctp_stats->in_ctrl_chunks.high = sctpstat.sctpInCtrlChunks >> 32;
-    sctp_stats->in_order_chunks.low = sctpstat.sctpInOrderChunks & 0xFFFFFFFF;
-    sctp_stats->in_order_chunks.high = sctpstat.sctpInOrderChunks >> 32;
-    sctp_stats->in_unorder_chunks.low = sctpstat.sctpInUnorderChunks & 0xFFFFFFFF;
-    sctp_stats->in_unorder_chunks.high = sctpstat.sctpInUnorderChunks >> 32;
-    sctp_stats->in_order_chunks.low = sctpstat.sctpInOrderChunks & 0xFFFFFFFF;
-    sctp_stats->in_order_chunks.high = sctpstat.sctpInOrderChunks >> 32;
-    sctp_stats->frag_usr_msgs.low = sctpstat.sctpFragUsrMsgs & 0xFFFFFFFF;
-    sctp_stats->frag_usr_msgs.high = sctpstat.sctpFragUsrMsgs >> 32;
-    sctp_stats->reasm_usr_msgs.low = sctpstat.sctpReasmUsrMsgs & 0xFFFFFFFF;
-    sctp_stats->reasm_usr_msgs.high = sctpstat.sctpReasmUsrMsgs >> 32;
-    sctp_stats->out_sctp_packs.low = sctpstat.sctpOutSCTPPkts & 0xFFFFFFFF;
-    sctp_stats->out_sctp_packs.high = sctpstat.sctpOutSCTPPkts >> 32;
-    sctp_stats->in_sctp_packs.low = sctpstat.sctpInSCTPPkts & 0xFFFFFFFF;
-    sctp_stats->in_sctp_packs.high = sctpstat.sctpInSCTPPkts >> 32;
-    sctp_stats->discontinuity_time = 0;
-    return 0;
-}
-
-void
-netsnmp_access_sctp_params_arch_init()
-{
-}
-
-int
-netsnmp_access_sctp_params_arch_load(netsnmp_sctp_params * sctp_params)
-{
-    mib2_sctp_t sctpstat;
-    size_t len = sizeof(sctpstat);
-    int ret;
-
-    ret = getMibstat(MIB_SCTP, &sctpstat, len, GET_FIRST, &Get_everything, NULL);
-    if (ret) {
-        snmp_log_perror("getMibstat MIB_SCTP");
-	return -1;
-    }
-
-    sctp_params->rto_algorithm = sctpstat.sctpRtoAlgorithm;
-    sctp_params->max_assocs =  sctpstat.sctpMaxAssocs; 
-    sctp_params->rto_max = sctpstat.sctpRtoMax;
-    sctp_params->rto_min = sctpstat.sctpRtoMin;
-    sctp_params->rto_initial = sctpstat.sctpRtoInitial;
-    sctp_params->val_cookie_life = sctpstat.sctpValCookieLife;
-    sctp_params->max_init_retr = sctpstat.sctpMaxInitRetr;
-    return 0;
-}
diff --git a/agent/mibgroup/sctp-mib/sctpTables.h b/agent/mibgroup/sctp-mib/sctpTables.h
index d22aea0..544144a 100644
--- a/agent/mibgroup/sctp-mib/sctpTables.h
+++ b/agent/mibgroup/sctp-mib/sctpTables.h
@@ -14,12 +14,11 @@ config_require(sctp-mib/sctpLookupRemIPAddrTable)
 config_require(sctp-mib/sctpAssocTable)
 #if defined( linux )
 config_require(sctp-mib/sctpTables_linux)
-config_require(util_funcs/get_pid_from_inode)
-#elif defined( freebsd7 ) || defined( freebsd8 )
-config_require(sctp-mib/sctpTables_freebsd)
-#elif defined( solaris2 )
-config_require(sctp-mib/sctpTables_solaris2)
 #else
-config_error(SCTP-MIB is not available in tihs environment)
+/*
+* couldn't determine the correct file!
+* require a bogus file to generate an error.
+*/
+config_require(sctp-mib/tables-unknown-arch)
 #endif
 #endif                          /* SCTP_TABLES_H */
diff --git a/agent/mibgroup/sctp-mib/sctpTables_common.c b/agent/mibgroup/sctp-mib/sctpTables_common.c
index b28ea03..21ced90 100644
--- a/agent/mibgroup/sctp-mib/sctpTables_common.c
+++ b/agent/mibgroup/sctp-mib/sctpTables_common.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -13,8 +12,6 @@
 #include "sctpLookupRemPrimIPAddrTable.h"
 #include "sctpLookupRemIPAddrTable.h"
 
-netsnmp_feature_require(container_lifo)
-
 static void
 sctpAssocTable_collect_invalid(void *what, void *magic)
 {
@@ -435,7 +432,7 @@ sctpTables_load(void)
 
     ret = sctpTables_arch_load(&containers, &flags);
 
-    if (flags & SCTP_TABLES_LOAD_FLAG_DELETE_INVALID) {
+    if (flags | SCTP_TABLES_LOAD_FLAG_DELETE_INVALID) {
         sctpAssocTable_delete_invalid(containers.sctpAssocTable);
         sctpAssocRemAddrTable_delete_invalid(containers.
                                              sctpAssocRemAddrTable);
@@ -443,7 +440,7 @@ sctpTables_load(void)
                                                sctpAssocLocalAddrTable);
     }
 
-    if (flags & SCTP_TABLES_LOAD_FLAG_AUTO_LOOKUP) {
+    if (flags | SCTP_TABLES_LOAD_FLAG_AUTO_LOOKUP) {
         ret = sctpTables_fill_lookup(&containers);
     }
 
diff --git a/agent/mibgroup/sctp-mib/sctpTables_common.h b/agent/mibgroup/sctp-mib/sctpTables_common.h
index f457605..eb7f990 100644
--- a/agent/mibgroup/sctp-mib/sctpTables_common.h
+++ b/agent/mibgroup/sctp-mib/sctpTables_common.h
@@ -1,10 +1,6 @@
 #ifndef SCTP_TABLES_COMMON_H
 #define SCTP_TABLES_COMMON_H
 
-#if defined(freebsd8) || defined(freebsd7)
-#define netsnmp_table_registration_info_free SNMP_FREE
-#endif
-
 #define SCTP_IPADDRESS_SIZE 16
 #define SCTP_HOSTNAME_SIZE 255
 
diff --git a/agent/mibgroup/sctp-mib/sctpTables_freebsd.c b/agent/mibgroup/sctp-mib/sctpTables_freebsd.c
deleted file mode 100644
index 516e9f5..0000000
--- a/agent/mibgroup/sctp-mib/sctpTables_freebsd.c
+++ /dev/null
@@ -1,244 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include "sctpAssocTable.h"
-#include "sctpAssocLocalAddrTable.h"
-#include "sctpAssocRemAddrTable.h"
-#include "sctpTables_common.h"
-
-#include <util_funcs.h>
-
-#include <stdio.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/sysctl.h>
-#include <stdint.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netinet/sctp.h>
-#include <netinet/sctp_constants.h>
-
-
-static int
-parse_assoc_local_addresses(sctpTables_containers * containers,
-							struct xsctp_laddr *xladdr)
-{
-  int ret;
-  sctpAssocLocalAddrTable_entry *entry;
-  entry = sctpAssocLocalAddrTable_entry_create();
-  if (entry == NULL)
-	return SNMP_ERR_GENERR;
-
-  entry->sctpAssocId = 0;
-  if (xladdr->address.sa.sa_family == AF_INET) {
-	entry->sctpAssocLocalAddrType = INETADDRESSTYPE_IPV4;
-	entry->sctpAssocLocalAddr_len = 4;
-	memcpy(entry->sctpAssocLocalAddr,
-		   &xladdr->address.sin.sin_addr,
-		   entry->sctpAssocLocalAddr_len);
-  } else if (xladdr->address.sa.sa_family == AF_INET6) {
-	entry->sctpAssocLocalAddrType = INETADDRESSTYPE_IPV6;
-	entry->sctpAssocLocalAddr_len = 16;
-	memcpy(entry->sctpAssocLocalAddr,
-		   &xladdr->address.sin6.sin6_addr,
-		   entry->sctpAssocLocalAddr_len);
-  }
-  entry->sctpAssocLocalAddrStartTime = xladdr->start_time.tv_sec;
-  ret = sctpAssocLocalAddrTable_add_or_update(containers->sctpAssocLocalAddrTable,
-											  entry);
-  if (ret != SNMP_ERR_NOERROR)
-	return SNMP_ERR_GENERR;
-
-  return SNMP_ERR_NOERROR;
-}
-
-static int
-parse_assoc_xstcb(sctpTables_containers * containers, struct xsctp_tcb *xstcb)
-{
-  int             ret;
-  sctpAssocTable_entry *entry;
-
-  entry = sctpAssocTable_entry_create();
-  if (entry == NULL)
-	return SNMP_ERR_GENERR;
-
-  switch (xstcb->state) {
-  case SCTP_STATE_INUSE:
-	entry->sctpAssocState = SCTPASSOCSTATE_DELETETCB;
-	break;
-  case SCTP_STATE_COOKIE_WAIT:
-	entry->sctpAssocState = SCTPASSOCSTATE_COOKIEWAIT;
-	break;
-  case SCTP_STATE_COOKIE_ECHOED:
-	entry->sctpAssocState = SCTPASSOCSTATE_COOKIEECHOED;
-	break;
-  case SCTP_STATE_OPEN:
-	entry->sctpAssocState = SCTPASSOCSTATE_ESTABLISHED;
-	break;
-  case SCTP_STATE_SHUTDOWN_SENT:
-	entry->sctpAssocState = SCTPASSOCSTATE_SHUTDOWNSENT;
-	break;
-  case SCTP_STATE_SHUTDOWN_RECEIVED:
-	entry->sctpAssocState = SCTPASSOCSTATE_SHUTDOWNRECEIVED;
-	break;
-  case SCTP_STATE_SHUTDOWN_ACK_SENT:
-	entry->sctpAssocState = SCTPASSOCSTATE_SHUTDOWNACKSENT;
-	break;
-  default:
-  case SCTP_STATE_EMPTY:
-	entry->sctpAssocState = SCTPASSOCSTATE_CLOSED;
-	break;
-  };
-  entry->sctpAssocHeartBeatInterval = xstcb->heartbeat_interval;
-  entry->sctpAssocId = 0;
-  entry->sctpAssocPrimProcess = xstcb->primary_process;
-  entry->sctpAssocLocalPort = xstcb->local_port;
-  entry->sctpAssocRemPort = xstcb->remote_port;
-  entry->sctpAssocHeartBeatInterval = xstcb->heartbeat_interval;
-  entry->sctpAssocInStreams = xstcb->in_streams;
-  entry->sctpAssocOutStreams = xstcb->out_streams;
-  entry->sctpAssocMaxRetr = xstcb->max_nr_retrans;
-  entry->sctpAssocT1expireds = xstcb->T1_expireries;
-  entry->sctpAssocRtxChunks = xstcb->retransmitted_tsns;
-  entry->sctpAssocT2expireds = xstcb->T2_expireries; 
-  entry->sctpAssocRemHostName[0] = 0;
-  entry->sctpAssocRemHostName_len = 0;
-  entry->sctpAssocDiscontinuityTime = xstcb->discontinuity_time.tv_sec;
-  entry->sctpAssocStartTime = xstcb->start_time.tv_sec;	
-
-  ret = sctpAssocTable_add_or_update(containers->sctpAssocTable, entry);
-  if (ret != SNMP_ERR_NOERROR) {
-	return ret;
-  }
-
-  return SNMP_ERR_NOERROR;
-}
-
-
-static int
-parse_remaddr_xraddr(sctpTables_containers * containers,
-					 struct xsctp_raddr *xraddr)
-{
-  int             ret;
-  sctpAssocRemAddrTable_entry *entry;
-
-  entry = sctpAssocRemAddrTable_entry_create();
-  if (entry == NULL)
-	return SNMP_ERR_GENERR;
-
-	
-  entry->sctpAssocId = 0;
-
-  if(xraddr->active) 
-    entry->sctpAssocRemAddrActive = TRUTHVALUE_TRUE;
-  else
-	entry->sctpAssocRemAddrActive = TRUTHVALUE_FALSE;
-  
-  if (xraddr->heartbeat_enabled) 
-	entry->sctpAssocRemAddrHBActive = TRUTHVALUE_TRUE;
-  else
-	entry->sctpAssocRemAddrHBActive = TRUTHVALUE_FALSE;
-
-  entry->sctpAssocRemAddrRTO = xraddr->rto;
-  entry->sctpAssocRemAddrMaxPathRtx = xraddr->max_path_rtx;
-  entry->sctpAssocRemAddrRtx = xraddr->rtx;
-  entry->sctpAssocRemAddrStartTime = xraddr->start_time.tv_sec;
-
-  if (xraddr->address.sa.sa_family == AF_INET) {
-	entry->sctpAssocRemAddrType = INETADDRESSTYPE_IPV4;
-	entry->sctpAssocRemAddr_len = 4;
-	memcpy(entry->sctpAssocRemAddr,
-		   &xraddr->address.sin.sin_addr,
-		   entry->sctpAssocRemAddr_len);
-  } else if (xraddr->address.sa.sa_family == AF_INET6) {
-	entry->sctpAssocRemAddrType = INETADDRESSTYPE_IPV6;
-	entry->sctpAssocRemAddr_len = 16;
-	memcpy(entry->sctpAssocRemAddr,
-		   &xraddr->address.sin6.sin6_addr,
-		   entry->sctpAssocRemAddr_len);
-  }
-  ret =
-	sctpAssocRemAddrTable_add_or_update(containers->
-										sctpAssocRemAddrTable, entry);
-  if (ret != SNMP_ERR_NOERROR) {
-	return ret;
-  }
-  return SNMP_ERR_NOERROR;
-}
-
-
-int
-sctpTables_arch_load(sctpTables_containers * containers, u_long * flags)
-{
-  int             ret = SNMP_ERR_NOERROR;
-  size_t len;
-  caddr_t buf;
-  unsigned int offset;
-  struct xsctp_inpcb *xinp;
-  struct xsctp_tcb *xstcb;
-  struct xsctp_laddr *xladdr;
-  struct xsctp_raddr *xraddr;
-
-
-  *flags |= SCTP_TABLES_LOAD_FLAG_DELETE_INVALID;
-  *flags |= SCTP_TABLES_LOAD_FLAG_AUTO_LOOKUP;
-  len = 0;
-  if (sysctlbyname("net.inet.sctp.assoclist", 0, &len, 0, 0) < 0) {
-	printf("Error %d (%s) could not get the assoclist\n", errno, strerror(errno));
-	return(-1);
-  }
-  if ((buf = (caddr_t)malloc(len)) == 0) {
-	printf("malloc %lu bytes failed.\n", (long unsigned)len);
-	return(-1);
-  }
-  if (sysctlbyname("net.inet.sctp.assoclist", buf, &len, 0, 0) < 0) {
-	printf("Error %d (%s) could not get the assoclist\n", errno, strerror(errno));
-	free(buf);
-	return(-1);
-  }
-  offset = 0;
-  xinp = (struct xsctp_inpcb *)(buf + offset);
-  while (xinp->last == 0) {
-	/* for each INP */
-	offset += sizeof(struct xsctp_inpcb);
-	/* Local addresses */
-	xladdr = (struct xsctp_laddr *)(buf + offset);
-	while (xladdr->last == 0) {
-	  offset += sizeof(struct xsctp_laddr);
-	  xladdr = (struct xsctp_laddr *)(buf + offset);
-	}
-	offset += sizeof(struct xsctp_laddr);
-	/* Associations */
-	xstcb = (struct xsctp_tcb *)(buf + offset);
-	while (xstcb->last == 0) {
-	  xstcb = (struct xsctp_tcb *)(buf + offset);
-	  offset += sizeof(struct xsctp_tcb);
-	  parse_assoc_xstcb(containers, xstcb);
-	  /* Local addresses */
-	  xladdr = (struct xsctp_laddr *)(buf + offset);
-	  while (xladdr->last == 0) {
-		parse_assoc_local_addresses(containers, xladdr);
-		offset += sizeof(struct xsctp_laddr);
-		xladdr = (struct xsctp_laddr *)(buf + offset);
-	  }
-	  offset += sizeof(struct xsctp_laddr);
-
-	  /* Remote addresses */
-	  xraddr = (struct xsctp_raddr *)(buf + offset);
-	  while (xraddr->last == 0) {
-		parse_remaddr_xraddr(containers, xraddr);
-		offset += sizeof(struct xsctp_raddr);
-		xraddr = (struct xsctp_raddr *)(buf + offset);
-	  }
-	  offset += sizeof(struct xsctp_raddr);
-	  xstcb = (struct xsctp_tcb *)(buf + offset);
-	}
-	offset += sizeof(struct xsctp_tcb);
-	xinp = (struct xsctp_inpcb *)(buf + offset);
-  }
-  free((void *)buf);
-  return ret;
-}
diff --git a/agent/mibgroup/sctp-mib/sctpTables_linux.c b/agent/mibgroup/sctp-mib/sctpTables_linux.c
index 6c4d81b..d6fd810 100644
--- a/agent/mibgroup/sctp-mib/sctpTables_linux.c
+++ b/agent/mibgroup/sctp-mib/sctpTables_linux.c
@@ -7,7 +7,7 @@
 #include "sctpAssocRemAddrTable.h"
 #include "sctpTables_common.h"
 
-#include "mibgroup/util_funcs/get_pid_from_inode.h"
+#include <util_funcs.h>
 
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -174,7 +174,7 @@ parse_assoc_line(char *line, sctpTables_containers * containers)
         goto error;
     }
     inode = strtoull(token, NULL, 10);
-    entry->sctpAssocPrimProcess = netsnmp_get_pid_from_inode(inode);
+    entry->sctpAssocPrimProcess = get_pid_from_inode(inode);
 
     token = strtok(NULL, " ");  /* LPORT */
     if (token == NULL) {
@@ -287,8 +287,6 @@ load_assoc(sctpTables_containers * containers)
         return SNMP_ERR_GENERR;
     }
 
-    netsnmp_get_pid_from_inode_init();
-
     /*
      * ignore the header. 
      */
diff --git a/agent/mibgroup/sctp-mib/sctpTables_solaris2.c b/agent/mibgroup/sctp-mib/sctpTables_solaris2.c
deleted file mode 100644
index 0993ab3..0000000
--- a/agent/mibgroup/sctp-mib/sctpTables_solaris2.c
+++ /dev/null
@@ -1,182 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include "sctpAssocTable.h"
-#include "sctpAssocLocalAddrTable.h"
-#include "sctpAssocRemAddrTable.h"
-#include "sctpTables_common.h"
-
-#include <util_funcs.h>
-
-#include <stdio.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <stdint.h>
-#include <sys/socket.h>
-#include <inet/mib2.h>
-
-#include "kernel_sunos5.h"
-
-static int
-parse_assoc_local_address(sctpTables_containers * containers,
-			    mib2_sctpConnLocalEntry_t *lce)
-{
-    int ret;
-    sctpAssocLocalAddrTable_entry *entry;
-    entry = sctpAssocLocalAddrTable_entry_create();
-    if (entry == NULL)
-	return SNMP_ERR_GENERR;
-
-    entry->sctpAssocId = 0;
-    entry->sctpAssocLocalAddrType = lce->sctpAssocLocalAddrType;
-    if (lce->sctpAssocLocalAddrType == INETADDRESSTYPE_IPV4) {
-	entry->sctpAssocLocalAddr_len = 4;
-	memcpy(entry->sctpAssocLocalAddr,
-		   lce->sctpAssocLocalAddr.s6_addr+12,
-		   entry->sctpAssocLocalAddr_len);
-    } else if (lce->sctpAssocLocalAddrType == INETADDRESSTYPE_IPV6) {
-	entry->sctpAssocLocalAddr_len = 16;
-	memcpy(entry->sctpAssocLocalAddr,
-		   &lce->sctpAssocLocalAddr,
-		   entry->sctpAssocLocalAddr_len);
-    }
-    entry->sctpAssocLocalAddrStartTime = 0;
-    ret = sctpAssocLocalAddrTable_add_or_update(containers->sctpAssocLocalAddrTable,
-					      entry);
-    return ret;
-}
-
-static int
-parse_assoc(sctpTables_containers * containers, mib2_sctpConnEntry_t *sce)
-{
-    int             ret;
-    sctpAssocTable_entry *entry;
-
-    entry = sctpAssocTable_entry_create();
-    if (entry == NULL)
-	return SNMP_ERR_GENERR;
-
-    switch (sce->sctpAssocState) {
-    case MIB2_SCTP_closed:
-	entry->sctpAssocState = SCTPASSOCSTATE_CLOSED;
-	break;
-    case MIB2_SCTP_cookieWait:
-	entry->sctpAssocState = SCTPASSOCSTATE_COOKIEWAIT;
-	break;
-    case MIB2_SCTP_cookieEchoed:
-	entry->sctpAssocState = SCTPASSOCSTATE_COOKIEECHOED;
-	break;
-    case MIB2_SCTP_established:
-	entry->sctpAssocState = SCTPASSOCSTATE_ESTABLISHED;
-	break;
-    case MIB2_SCTP_shutdownPending:
-	entry->sctpAssocState = SCTPASSOCSTATE_SHUTDOWNPENDING;
-	break;
-    case MIB2_SCTP_shutdownSent:
-	entry->sctpAssocState = SCTPASSOCSTATE_SHUTDOWNSENT;
-	break;
-    case MIB2_SCTP_shutdownReceived:
-	entry->sctpAssocState = SCTPASSOCSTATE_SHUTDOWNRECEIVED;
-	break;
-    case MIB2_SCTP_shutdownAckSent:
-	entry->sctpAssocState = SCTPASSOCSTATE_SHUTDOWNACKSENT;
-	break;
-    }
-    entry->sctpAssocHeartBeatInterval = sce->sctpAssocHeartBeatInterval;
-    entry->sctpAssocId = sce->sctpAssocId;
-    entry->sctpAssocPrimProcess = sce->sctpAssocPrimProcess;
-    entry->sctpAssocLocalPort = sce->sctpAssocLocalPort;
-    entry->sctpAssocRemPrimAddrType = sce->sctpAssocRemPrimAddrType;
-    if (entry->sctpAssocRemPrimAddrType == INETADDRESSTYPE_IPV4) {
-	entry->sctpAssocRemPrimAddr_len = 4;
-	memcpy(entry->sctpAssocRemPrimAddr, sce->sctpAssocRemPrimAddr.s6_addr+12,
-	    entry->sctpAssocRemPrimAddr_len);
-    }
-    else {
-	entry->sctpAssocRemPrimAddr_len = 16;
-	memcpy(entry->sctpAssocRemPrimAddr, sce->sctpAssocRemPrimAddr.s6_addr,
-	    entry->sctpAssocRemPrimAddr_len);
-    }
-    entry->sctpAssocRemPort = sce->sctpAssocRemPort;
-    entry->sctpAssocInStreams = sce->sctpAssocInStreams;
-    entry->sctpAssocOutStreams = sce->sctpAssocOutStreams;
-    entry->sctpAssocMaxRetr = sce->sctpAssocMaxRetr;
-    entry->sctpAssocT1expireds = sce->sctpAssocT1expired;
-    entry->sctpAssocRtxChunks = sce->sctpAssocRtxChunks;
-    entry->sctpAssocT2expireds = sce->sctpAssocT2expired; 
-    entry->sctpAssocRemHostName[0] = 0;
-    entry->sctpAssocRemHostName_len = 0;
-    entry->sctpAssocDiscontinuityTime = 0;
-    entry->sctpAssocStartTime = sce->sctpAssocStartTime;	
-
-    ret = sctpAssocTable_add_or_update(containers->sctpAssocTable, entry);
-    return ret;
-}
-
-
-static int
-parse_assoc_remote_address(sctpTables_containers * containers,
-		    mib2_sctpConnRemoteEntry_t *rce)
-{
-    int             ret;
-    sctpAssocRemAddrTable_entry *entry;
-
-    entry = sctpAssocRemAddrTable_entry_create();
-    if (entry == NULL)
-	return SNMP_ERR_GENERR;
-
-    entry->sctpAssocId = rce->sctpAssocId;
-    entry->sctpAssocRemAddrActive = rce->sctpAssocRemAddrActive;
-    entry->sctpAssocRemAddrHBActive = rce->sctpAssocRemAddrHBActive;
-    entry->sctpAssocRemAddrRTO = rce->sctpAssocRemAddrRTO;
-    entry->sctpAssocRemAddrMaxPathRtx = rce->sctpAssocRemAddrMaxPathRtx;
-    entry->sctpAssocRemAddrRtx = rce->sctpAssocRemAddrRtx;
-    entry->sctpAssocRemAddrStartTime = 0;
-
-    entry->sctpAssocRemAddrType = rce->sctpAssocRemAddrType;
-    if (rce->sctpAssocRemAddrType == INETADDRESSTYPE_IPV4) {
-	entry->sctpAssocRemAddr_len = 4;
-	memcpy(entry->sctpAssocRemAddr,
-		   rce->sctpAssocRemAddr.s6_addr+12,
-		   entry->sctpAssocRemAddr_len);
-    } else if (rce->sctpAssocRemAddrType == INETADDRESSTYPE_IPV6) {
-	entry->sctpAssocRemAddr_len = 16;
-	memcpy(entry->sctpAssocRemAddr,
-		   &rce->sctpAssocRemAddr,
-		   entry->sctpAssocRemAddr_len);
-    }
-    ret =
-	sctpAssocRemAddrTable_add_or_update(containers->sctpAssocRemAddrTable,
-					    entry);
-    return ret;
-}
-
-
-int
-sctpTables_arch_load(sctpTables_containers * containers, u_long * flags)
-{
-    int                ret = SNMP_ERR_NOERROR;
-    mib2_sctpConnEntry_t sce;
-    mib2_sctpConnLocalEntry_t lce;
-    mib2_sctpConnRemoteEntry_t rce;
-    req_e              req = GET_FIRST;
-
-    while (getMibstat(MIB_SCTP_CONN, &sce, sizeof(sce), req, &Get_everything, 0) == 0) {
-	req = GET_NEXT;
-	parse_assoc(containers, &sce);
-    }
-    req = GET_FIRST;
-    while (getMibstat(MIB_SCTP_CONN_LOCAL, &lce, sizeof(lce), req, &Get_everything, 0) == 0) {
-	req = GET_NEXT;
-	parse_assoc_local_address(containers, &lce);
-    }
-    req = GET_FIRST;
-    while (getMibstat(MIB_SCTP_CONN_REMOTE, &rce, sizeof(rce), req, &Get_everything, 0) == 0) {
-	req = GET_NEXT;
-	parse_assoc_remote_address(containers, &rce);
-    }
-    return ret;
-}
diff --git a/agent/mibgroup/smux/smux.c b/agent/mibgroup/smux/smux.c
index 4598c2b..dab74b4 100644
--- a/agent/mibgroup/smux/smux.c
+++ b/agent/mibgroup/smux/smux.c
@@ -4,7 +4,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <sys/types.h>
 #include <ctype.h>
 
@@ -27,7 +26,11 @@
 #include <err.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -44,6 +47,8 @@
 #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>
@@ -66,11 +71,10 @@
 #include <net-snmp/library/tools.h>
 
 #include "smux.h"
+#include "util_funcs.h"
 #include "mibdefs.h"
 #include "snmpd.h"
 
-netsnmp_feature_require(snprint_objid)
-
 long            smux_long;
 u_long          smux_ulong;
 struct sockaddr_in smux_sa;
@@ -91,7 +95,7 @@ static u_char  *smux_parse(u_char *, oid *, size_t *, size_t *, u_char *);
 static u_char  *smux_parse_var(u_char *, size_t *, oid *, size_t *,
                                size_t *, u_char *);
 static void     smux_send_close(int, int);
-static void     smux_list_detach(smux_reg **, smux_reg *);
+static void     smux_list_detach(smux_reg **, smux_reg **);
 static void     smux_replace_active(smux_reg *, smux_reg *);
 static void     smux_peer_cleanup(int);
 static int      smux_auth_peer(oid *, size_t, char *, int);
@@ -118,8 +122,7 @@ struct variable2 smux_variables[] = {
     /*
      * bogus entry, as in pass.c 
      */
-    {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_smux, 0, {MIBINDEX}},
+    {MIBINDEX, ASN_INTEGER, RWRITE, var_smux, 0, {MIBINDEX}},
 };
 
 
@@ -145,7 +148,6 @@ smux_parse_peer_auth(const char *token, char *cptr)
     }
     if (nauths == SMUX_MAX_PEERS) {
 	config_perror("Too many smuxpeers");
-	free(aptr);
 	return;
     }
 
@@ -170,8 +172,10 @@ smux_parse_peer_auth(const char *token, char *cptr)
         /*
          * password 
          */
-        if (*password_cptr)
-            strlcpy(aptr->sa_passwd, password_cptr, sizeof(aptr->sa_passwd));
+        if (*password_cptr) {
+            strncpy(aptr->sa_passwd, password_cptr, SMUXMAXSTRLEN-1);
+            aptr->sa_passwd[SMUXMAXSTRLEN-1] = '\0';
+        }
     } else {
         /*
          * null passwords OK 
@@ -347,16 +351,16 @@ var_smux_write(int action,
     u_char          buf[SMUXMAXPKTSIZE], *ptr, sout[3], type;
     int             reterr;
     size_t          var_len, datalen, name_length, packet_len;
-    size_t          len;
-    ssize_t         tmp_len;
+    ssize_t         len, tmp_len;
     long            reqid, errsts, erridx;
-    u_char          *dataptr;
+    u_char          var_type, *dataptr;
 
     DEBUGMSGTL(("smux", "[var_smux_write] entering var_smux_write\n"));
 
     len = SMUXMAXPKTSIZE;
     reterr = SNMP_ERR_NOERROR;
     var_len = var_val_len;
+    var_type = var_val_type;
     name_length = name_len;
 
     /*
@@ -368,11 +372,6 @@ var_smux_write(int action,
             break;
     }
 
-    if (!rptr) {
-        DEBUGMSGTL(("smux", "[var_smux_write] unknown registration\n"));
-        return SNMP_ERR_GENERR;
-    }
-
     switch (action) {
     case RESERVE1:
         DEBUGMSGTL(("smux", "[var_smux_write] entering RESERVE1\n"));
@@ -417,7 +416,7 @@ var_smux_write(int action,
             return SNMP_ERR_GENERR;
         }
 
-        if (sendto(rptr->sr_fd, (void *) buf, len, 0, NULL, 0) < 0) {
+        if (sendto(rptr->sr_fd, buf, len, 0, NULL, 0) < 0) {
             DEBUGMSGTL(("smux", "[var_smux_write] send failed\n"));
             return SNMP_ERR_GENERR;
         }
@@ -426,8 +425,8 @@ var_smux_write(int action,
             /*
              * peek at what's received 
              */
-            if ((len = recvfrom(rptr->sr_fd, (void *) buf,
-                            SMUXMAXPKTSIZE, MSG_PEEK, NULL, NULL)) <= 0) {
+            if ((len = recvfrom(rptr->sr_fd, buf,
+                            SMUXMAXPKTSIZE, MSG_PEEK, NULL, 0)) <= 0) {
                 if ((len == -1) && ((errno == EINTR) || (errno == EAGAIN)))
                 {
                    continue;
@@ -442,8 +441,8 @@ var_smux_write(int action,
                 return SNMP_ERR_GENERR;
             }
 
-            DEBUGMSGTL(("smux", "[var_smux_write] Peeked at %" NETSNMP_PRIz
-                        "d bytes\n", len));
+            DEBUGMSGTL(("smux", "[var_smux_write] Peeked at %d bytes\n",
+                        len));
             DEBUGDUMPSETUP("var_smux_write", buf, len);
 
             /*
@@ -466,7 +465,7 @@ var_smux_write(int action,
             do
             {
                len = tmp_len;
-               len = recvfrom(rptr->sr_fd, (void *) buf, len, 0, NULL, NULL);
+               len = recvfrom(rptr->sr_fd, buf, len, 0, NULL, 0);
             }
             while((len == -1) && ((errno == EINTR) || (errno == EAGAIN)));
 
@@ -478,8 +477,8 @@ var_smux_write(int action,
                 return SNMP_ERR_GENERR;
             }
 
-            DEBUGMSGTL(("smux", "[var_smux_write] Received %" NETSNMP_PRIz
-                        "d bytes\n", len));
+            DEBUGMSGTL(("smux", "[var_smux_write] Received %d bytes\n",
+                        len));
 
             if (buf[0] == SMUX_TRAP) {
                 DEBUGMSGTL(("smux", "[var_smux_write] Received trap\n"));
@@ -550,7 +549,7 @@ var_smux_write(int action,
                         "[var_smux_write] entering FREE - sending Commit \n"));
         }
 
-        if ((sendto(rptr->sr_fd, (void *) sout, 3, 0, NULL, 0)) < 0) {
+        if ((sendto(rptr->sr_fd, sout, 3, 0, NULL, 0)) < 0) {
             DEBUGMSGTL(("smux",
                         "[var_smux_write] send rollback/commit failed\n"));
             return SNMP_ERR_GENERR;
@@ -572,10 +571,9 @@ smux_accept(int sd)
     u_char          data[SMUXMAXPKTSIZE], *ptr, type;
     struct sockaddr_in in_socket;
     struct timeval  tv;
-    int             fail, fd;
-    socklen_t       alen;
+    int             fail, fd, alen;
     int             length;
-    size_t          len;
+    ssize_t         len;
 
     alen = sizeof(struct sockaddr_in);
     /*
@@ -609,7 +607,7 @@ smux_accept(int sd)
          */
         do
         {
-           length = recvfrom(fd, (char *) data, SMUXMAXPKTSIZE, 0, NULL, NULL);
+           length = recvfrom(fd, (char *) data, SMUXMAXPKTSIZE, 0, NULL, 0);
         }
         while((length == -1) && ((errno == EINTR) || (errno == EAGAIN)));
 
@@ -687,8 +685,7 @@ smux_process(int fd)
 
     do
     {
-       length = recvfrom(fd, (char *) data, SMUXMAXPKTSIZE, MSG_PEEK, NULL,
-                         NULL);
+       length = recvfrom(fd, (char *) data, SMUXMAXPKTSIZE, MSG_PEEK, NULL, 0);
     }
     while((length == -1) && ((errno == EINTR) || (errno == EAGAIN)));
 
@@ -716,7 +713,7 @@ smux_process(int fd)
     do
     {
        length = tmp_length;
-       length = recvfrom(fd, (char *) data, length, 0, NULL, NULL);
+       length = recvfrom(fd, (char *) data, length, 0, NULL, 0);
     }
     while((length == -1) && ((errno == EINTR) || (errno == EAGAIN)));
 
@@ -742,8 +739,8 @@ smux_pdu_process(int fd, u_char * data, size_t length)
     size_t          len;
     u_char         *ptr, type;
 
-    DEBUGMSGTL(("smux", "[smux_pdu_process] Processing %" NETSNMP_PRIz
-                "d bytes\n", length));
+    DEBUGMSGTL(("smux", "[smux_pdu_process] Processing %d bytes\n",
+                length));
 
     error = 0;
     ptr = data;
@@ -785,7 +782,7 @@ smux_pdu_process(int fd, u_char * data, size_t length)
             break;
         case SMUX_TRAP:
             snmp_log(LOG_INFO, "Got trap from peer on fd %d\n", fd);
-            if (ptr)
+            if (ptr != 0)
             {
                DEBUGMSGTL(("smux", "[smux_pdu_process] call smux_trap_process.\n"));
                ptr = smux_trap_process(ptr, &len);
@@ -829,8 +826,8 @@ smux_open_process(int fd, u_char * ptr, size_t * len, int *fail)
         return ((ptr += *len));
     }
     DEBUGMSGTL(("smux",
-                "[smux_open_process] version %ld, len %" NETSNMP_PRIz
-                "u, type %d\n", version, *len, (int) type));
+                "[smux_open_process] version %d, len %d, type %d\n",
+                version, *len, (int) type));
 
     oid_name_len = MAX_OID_LEN;
     if ((ptr = asn_parse_objid(ptr, len, &type, oid_name,
@@ -844,8 +841,8 @@ smux_open_process(int fd, u_char * ptr, size_t * len, int *fail)
     if (snmp_get_do_debugging()) {
         DEBUGMSGTL(("smux", "[smux_open_process] smux peer: %s\n",
                     oid_print));
-        DEBUGMSGTL(("smux", "[smux_open_process] len %" NETSNMP_PRIz
-                    "u, type %d\n", *len, (int) type));
+        DEBUGMSGTL(("smux", "[smux_open_process] len %d, type %d\n", *len,
+                    (int) type));
     }
 
     string_len = SMUXMAXSTRLEN;
@@ -861,8 +858,8 @@ smux_open_process(int fd, u_char * ptr, size_t * len, int *fail)
         for (i = 0; i < (int) string_len; i++)
             DEBUGMSG(("smux", "%c", descr[i]));
         DEBUGMSG(("smux", "\n"));
-        DEBUGMSGTL(("smux", "[smux_open_process] len %" NETSNMP_PRIz
-                    "u, type %d\n", *len, (int) type));
+        DEBUGMSGTL(("smux", "[smux_open_process] len %d, type %d\n", *len,
+                    (int) type));
     }
     descr[string_len] = 0;
 
@@ -879,8 +876,8 @@ smux_open_process(int fd, u_char * ptr, size_t * len, int *fail)
         for (i = 0; i < (int) string_len; i++)
             DEBUGMSG(("smux", "%c", passwd[i]));
         DEBUGMSG(("smux", "\n"));
-        DEBUGMSGTL(("smux", "[smux_open_process] len %" NETSNMP_PRIz
-                    "u, type %d\n", *len, (int) type));
+        DEBUGMSGTL(("smux", "[smux_open_process] len %d, type %d\n", *len,
+                    (int) type));
     }
     passwd[string_len] = '\0';
     if (!smux_auth_peer(oid_name, oid_name_len, passwd, fd)) {
@@ -926,27 +923,10 @@ static int
 smux_auth_peer(oid * name, size_t namelen, char *passwd, int fd)
 {
     int             i;
-    char            oid_print[SMUXMAXSTRLEN];
-
-    if (snmp_get_do_debugging()) {
-        snprint_objid(oid_print, sizeof(oid_print), name, namelen);
-        DEBUGMSGTL(("smux:auth", "[smux_auth_peer] Authorizing: %s, %s\n",
-                    oid_print, passwd));
-    }
 
     for (i = 0; i < nauths; i++) {
-        if (snmp_get_do_debugging()) {
-            snprint_objid(oid_print, sizeof(oid_print),
-                          Auths[i]->sa_oid, Auths[i]->sa_oid_len);
-            DEBUGMSGTL(("smux:auth", "[smux_auth_peer] Checking OID: %s (%d)\n",
-                    oid_print, i));
-        }
         if (snmp_oid_compare(Auths[i]->sa_oid, Auths[i]->sa_oid_len,
                              name, namelen) == 0) {
-            if (snmp_get_do_debugging()) {
-                DEBUGMSGTL(("smux:auth", "[smux_auth_peer] Checking P/W: %s (%d)\n",
-                        Auths[i]->sa_passwd, Auths[i]->sa_active_fd));
-            }
             if (!(strcmp(Auths[i]->sa_passwd, passwd)) &&
                 (Auths[i]->sa_active_fd == -1)) {
                 /*
@@ -983,7 +963,7 @@ smux_close_process(int fd, u_char * ptr, size_t * len)
     }
 
     DEBUGMSGTL(("smux",
-                "[smux_close_process] close from peer on fd %d reason %ld\n",
+                "[smux_close_process] close from peer on fd %d reason %d\n",
                 fd, down));
     smux_peer_cleanup(fd);
 
@@ -1015,7 +995,7 @@ smux_rreq_process(int sd, u_char * ptr, size_t * len)
         smux_send_rrsp(sd, -1);
         return NULL;
     }
-    DEBUGMSGTL(("smux", "[smux_rreq_process] priority %ld\n", priority));
+    DEBUGMSGTL(("smux", "[smux_rreq_process] priority %d\n", priority));
 
     if ((ptr = asn_parse_int(ptr, len, &type, &operation,
                              sizeof(operation))) == NULL) {
@@ -1024,7 +1004,7 @@ smux_rreq_process(int sd, u_char * ptr, size_t * len)
         smux_send_rrsp(sd, -1);
         return NULL;
     }
-    DEBUGMSGTL(("smux", "[smux_rreq_process] operation %ld\n", operation));
+    DEBUGMSGTL(("smux", "[smux_rreq_process] operation %d\n", operation));
 
     if (operation == SMUX_REGOP_DELETE) {
         /*
@@ -1053,7 +1033,7 @@ smux_rreq_process(int sd, u_char * ptr, size_t * len)
                 /*
                  * no replacement found 
                  */
-                smux_list_detach(&ActiveRegs, rptr);
+                smux_list_detach(&ActiveRegs, &rptr);
                 free(rptr);
             }
             smux_send_rrsp(sd, rpriority);
@@ -1067,7 +1047,7 @@ smux_rreq_process(int sd, u_char * ptr, size_t * len)
                             priority);
         if (rptr) {
             rpriority = rptr->sr_priority;
-            smux_list_detach(&PassiveRegs, rptr);
+            smux_list_detach(&PassiveRegs, &rptr);
             free(rptr);
             smux_send_rrsp(sd, rpriority);
             return ptr;
@@ -1108,8 +1088,8 @@ smux_rreq_process(int sd, u_char * ptr, size_t * len)
                 snmp_oid_compare(oid_name, oid_name_len, rptr->sr_name,
                                  rptr->sr_name_len);
             if (result == 0) {
-                if (oid_name_len == rptr->sr_name_len) {
-                    if (nrptr->sr_priority == -1) {
+                if ((oid_name_len == rptr->sr_name_len)) {
+                    if ((nrptr->sr_priority == -1)) {
                         nrptr->sr_priority = rptr->sr_priority;
                         do {
                             nrptr->sr_priority++;
@@ -1158,17 +1138,9 @@ smux_rreq_process(int sd, u_char * ptr, size_t * len)
         if (nrptr->sr_priority == -1)
             nrptr->sr_priority = 0;
         smux_list_add(&ActiveRegs, nrptr);
-        if (register_mib("smux", (struct variable *)
-                             smux_variables, sizeof(struct variable2),
-                             1, nrptr->sr_name, nrptr->sr_name_len)
-                     != SNMPERR_SUCCESS) {
-		DEBUGMSGTL(("smux", "[smux_rreq_process] Failed to register subtree\n"));
-		smux_list_detach(&ActiveRegs, nrptr);
-		free(nrptr);
-		smux_send_rrsp(sd, -1);
-		return NULL;
-	}
-
+        register_mib("smux", (struct variable *)
+                     smux_variables, sizeof(struct variable2),
+                     1, nrptr->sr_name, nrptr->sr_name_len);
       done:
         smux_send_rrsp(sd, nrptr->sr_priority);
         return ptr;
@@ -1214,10 +1186,10 @@ smux_find_match(smux_reg * regs, int sd, oid * oid_name,
 static void
 smux_replace_active(smux_reg * actptr, smux_reg * pasptr)
 {
-    smux_list_detach(&ActiveRegs, actptr);
+    smux_list_detach(&ActiveRegs, &actptr);
     unregister_mib(actptr->sr_name, actptr->sr_name_len);
 
-    smux_list_detach(&PassiveRegs, pasptr);
+    smux_list_detach(&PassiveRegs, &pasptr);
     (void) smux_list_add(&ActiveRegs, pasptr);
 
     register_mib("smux", (struct variable *) smux_variables,
@@ -1227,7 +1199,7 @@ smux_replace_active(smux_reg * actptr, smux_reg * pasptr)
 }
 
 static void
-smux_list_detach(smux_reg ** head, smux_reg * m_remove)
+smux_list_detach(smux_reg ** head, smux_reg ** m_remove)
 {
     smux_reg       *rptr, *rptr2;
 
@@ -1235,13 +1207,15 @@ smux_list_detach(smux_reg ** head, smux_reg * m_remove)
         DEBUGMSGTL(("smux", "[smux_list_detach] Ouch!"));
         return;
     }
-    if (*head == m_remove) {
+    if (*head == *m_remove) {
+        *m_remove = *head;
         *head = (*head)->sr_next;
         return;
     }
     for (rptr = *head, rptr2 = rptr->sr_next; rptr2;
          rptr2 = rptr2->sr_next, rptr = rptr->sr_next) {
-        if (rptr2 == m_remove) {
+        if (rptr2 == *m_remove) {
+            *m_remove = rptr2;
             rptr->sr_next = rptr2->sr_next;
             return;
         }
@@ -1265,61 +1239,50 @@ smux_list_add(smux_reg ** head, smux_reg * add)
         return 0;
     }
     prev = NULL;
-    for (rptr = *head; rptr; rptr = rptr->sr_next) {
+    for (rptr = *head; rptr->sr_next; rptr = rptr->sr_next) {
         result = snmp_oid_compare(add->sr_name, add->sr_name_len,
                                   rptr->sr_name, rptr->sr_name_len);
-        if (result == 0) {
+        if ((result == 0) && (add->sr_priority == rptr->sr_priority)) {
             /*
-             * Same tree...
+             * same tree, same pri, nope 
              */
-            if (add->sr_priority == rptr->sr_priority) {
-                /*
-                 * ... same pri : nope 
-                 */
-                return -1;
-            } else if (add->sr_priority < rptr->sr_priority) {
-                /*
-                 * ... lower pri : insert and return
-                 */
-                add->sr_next = rptr;
-                if ( prev ) { prev->sr_next = add; }
-                else        {         *head = add; }
-                return 0;
-#ifdef XXX
-            } else {
-                /*
-                 * ... higher pri : put after 
-                 */
-                add->sr_next  = rptr->sr_next;
-                rptr->sr_next = add;
-#endif
-            }
+            return -1;
         } else if (result < 0) {
             /*
-             * Earlier tree : insert and return
+             * this can only happen if we go before the head 
              */
-            add->sr_next = rptr;
-            if ( prev ) { prev->sr_next = add; }
-            else        {         *head = add; }
+            add->sr_next = *head;
+            *head = add;
             return 0;
-#ifdef XXX
-        } else  {
+        } else if ((snmp_oid_compare(add->sr_name, add->sr_name_len,
+                                     rptr->sr_next->sr_name,
+                                     rptr->sr_next->sr_name_len)) < 0) {
             /*
-             * Later tree : put after
+             * insert here 
              */
             add->sr_next = rptr->sr_next;
             rptr->sr_next = add;
             return 0;
-#endif
         }
         prev = rptr;
     }
     /*
-     * Otherwise, this entry must come last
+     * compare the last one 
      */
-    if ( prev ) { prev->sr_next = add; }
-    else        {         *head = add; }
-    add->sr_next = NULL;
+    result = snmp_oid_compare(add->sr_name, add->sr_name_len, rptr->sr_name, rptr->sr_name_len);
+    if ((result == 0) && add->sr_priority == rptr->sr_priority)
+        return -1;
+    else  if (result < 0 ) {
+        add->sr_next = rptr;
+        if ( prev ) {
+            prev->sr_next = add;
+        } else {
+            *head = add;
+        }
+    } else {
+        rptr->sr_next = add;
+        add->sr_next = NULL;
+    }
     return 0;
 }
 
@@ -1347,7 +1310,7 @@ smux_find_replacement(oid * name, size_t name_len)
         if (!snmp_oidtree_compare(rptr->sr_name, rptr->sr_name_len,
                                   name, name_len)) {
             if ((difflen = rptr->sr_name_len - name_len)
-                < bestlen || !bestptr) {
+                < bestlen) {
                 bestlen = difflen;
                 bestptr = rptr;
             } else if ((difflen == bestlen) &&
@@ -1365,7 +1328,7 @@ smux_snmp_process(int exact,
                   size_t * return_len, u_char * return_type, int sd)
 {
     u_char          packet[SMUXMAXPKTSIZE], *ptr, result[SMUXMAXPKTSIZE];
-    ssize_t         length = SMUXMAXPKTSIZE;
+    int             length = SMUXMAXPKTSIZE;
     int             tmp_length;
     u_char          type;
     size_t          packet_len;
@@ -1381,7 +1344,7 @@ smux_snmp_process(int exact,
         type = SMUX_GETNEXT;
 
     if (smux_build(type, smux_reqid, objid, len, 0, NULL,
-                   *len, packet, (size_t *) &length) < 0) {
+                   *len, packet, &length) < 0) {
         snmp_log(LOG_ERR, "[smux_snmp_process]: smux_build failed\n");
         return NULL;
     }
@@ -1394,15 +1357,14 @@ smux_snmp_process(int exact,
     }
 
     DEBUGMSGTL(("smux",
-                "[smux_snmp_process] Sent %d request to peer; %" NETSNMP_PRIz "d bytes\n",
+                "[smux_snmp_process] Sent %d request to peer; %d bytes\n",
                 (int) type, length));
 
     while (1) {
         /*
          * peek at what's received 
          */
-        length = recvfrom(sd, (char *) result, SMUXMAXPKTSIZE, MSG_PEEK, NULL,
-                          NULL);
+        length = recvfrom(sd, (char *) result, SMUXMAXPKTSIZE, MSG_PEEK, NULL, 0);
         if (length <= 0) {
             if ((length == -1) && ((errno == EINTR) || (errno == EAGAIN)))
             {
@@ -1417,7 +1379,7 @@ smux_snmp_process(int exact,
             }
         }
 
-        DEBUGMSGTL(("smux", "[smux_snmp_process] Peeked at %" NETSNMP_PRIz "d bytes\n",
+        DEBUGMSGTL(("smux", "[smux_snmp_process] Peeked at %d bytes\n",
                     length));
         DEBUGDUMPSETUP("smux_snmp_process", result, length);
 
@@ -1441,7 +1403,7 @@ smux_snmp_process(int exact,
         do
         {
            length = tmp_length;
-           length = recvfrom(sd, (char *) result, length, 0, NULL, NULL);
+           length = recvfrom(sd, (char *) result, length, 0, NULL, 0);
         }
         while((length == -1) && ((errno == EINTR) || (errno == EAGAIN)));
 
@@ -1452,14 +1414,14 @@ smux_snmp_process(int exact,
            return NULL;
         }
 
-        DEBUGMSGTL(("smux", "[smux_snmp_process] Received %" NETSNMP_PRIz "d bytes\n",
+        DEBUGMSGTL(("smux", "[smux_snmp_process] Received %d bytes\n",
                     length));
 
         if (result[0] == SMUX_TRAP) {
             DEBUGMSGTL(("smux", "[smux_snmp_process] Received trap\n"));
             snmp_log(LOG_INFO, "Got trap from peer on fd %d\n", sd);
-            ptr = asn_parse_header(result, (size_t *) &length, &type);
-            smux_trap_process(ptr, (size_t *) &length);
+            ptr = asn_parse_header(result, &length, &type);
+            smux_trap_process(ptr, &length);
 
             /*
              * go and peek at received data again 
@@ -1525,7 +1487,7 @@ smux_parse(u_char * rsp,
      * XXX How to send something intelligent back in case of an error 
      */
     DEBUGMSGTL(("smux",
-                "[smux_parse] Message type %d, reqid %ld, errstat %ld, \n\terrindex %ld\n",
+                "[smux_parse] Message type %d, reqid %d, errstat %d, \n\terrindex %d\n",
                 (int) type, reqid, errstat, errindex));
     if (ptr == NULL || errstat != SNMP_ERR_NOERROR)
         return NULL;
@@ -1585,8 +1547,8 @@ smux_parse_var(u_char * varbind,
      */
     len = SMUXMAXPKTSIZE;
     DEBUGMSGTL(("smux",
-                "[smux_parse_var] Asn coded len of var %" NETSNMP_PRIz
-                "u, type %d\n", var_val_len, (int) *vartype));
+                "[smux_parse_var] Asn coded len of var %d, type %d\n",
+                var_val_len, (int) *vartype));
 
     switch ((short) *vartype) {
     case ASN_INTEGER:
@@ -1756,7 +1718,9 @@ static void
 smux_peer_cleanup(int sd)
 {
     smux_reg       *nrptr, *rptr, *rptr2;
-    int             i;
+    int             nfound, i;
+
+    nfound = 0;
 
     /*
      * close the descriptor 
@@ -1769,7 +1733,7 @@ smux_peer_cleanup(int sd)
     for (rptr = PassiveRegs; rptr; rptr = nrptr) {
         nrptr = rptr->sr_next;
         if (rptr->sr_fd == sd) {
-            smux_list_detach(&PassiveRegs, rptr);
+            smux_list_detach(&PassiveRegs, &rptr);
             free(rptr);
         }
         rptr = nrptr;
@@ -1780,12 +1744,12 @@ smux_peer_cleanup(int sd)
     for (rptr = ActiveRegs; rptr; rptr = rptr2) {
         rptr2 = rptr->sr_next;
         if (rptr->sr_fd == sd) {
-            smux_list_detach(&ActiveRegs, rptr);
+            smux_list_detach(&ActiveRegs, &rptr);
             unregister_mib(rptr->sr_name, rptr->sr_name_len);
             if ((nrptr = smux_find_replacement(rptr->sr_name,
                                                rptr->sr_name_len)) !=
                 NULL) {
-                smux_list_detach(&PassiveRegs, nrptr);
+                smux_list_detach(&PassiveRegs, &nrptr);
                 smux_list_add(&ActiveRegs, nrptr);
                 register_mib("smux", (struct variable *)
                              smux_variables, sizeof(struct variable2),
@@ -1991,7 +1955,7 @@ smux_trap_process(u_char * rsp, size_t * len)
             /*
              * XXX 
              */
-            if (len == NULL)
+            if (len == 0)
                 return NULL;
             var_val_len = SMUXMAXSTRLEN;
             asn_parse_string(var_val, &maxlen, &vartype,
@@ -2015,7 +1979,7 @@ smux_trap_process(u_char * rsp, size_t * len)
             /*
              * XXX 
              */
-            if (len == NULL)
+            if (len == 0)
                 return NULL;
             var_val_len = SMUXMAXSTRLEN;
             asn_parse_bitstring(var_val, &maxlen, &vartype,
@@ -2099,7 +2063,7 @@ int smux_snmp_select_list_del(int sd)
    return(0);
 }
 
-int smux_snmp_select_list_get_length(void)
+int smux_snmp_select_list_get_length()
 {
    return(sdlen);
 }
diff --git a/agent/mibgroup/smux/smux.h b/agent/mibgroup/smux/smux.h
index 88b8a3d..d151f7d 100644
--- a/agent/mibgroup/smux/smux.h
+++ b/agent/mibgroup/smux/smux.h
@@ -2,11 +2,6 @@
  * Smux module authored by Rohit Dube.
  * Rewritten by Nick Amato <naamato at 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
@@ -70,6 +65,8 @@ extern u_char  *smux_snmp_process(int, oid *, size_t *, size_t *, u_char *,
 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/smux/snmp_bgp.c b/agent/mibgroup/smux/snmp_bgp.c
index 16b0185..aef3b3c 100644
--- a/agent/mibgroup/smux/snmp_bgp.c
+++ b/agent/mibgroup/smux/snmp_bgp.c
@@ -1,5 +1,5 @@
 /*
- * $Id$ 
+ * $Id: snmp_bgp.c 6918 2002-04-20 07:30:29Z hardaker $ 
  */
 
 /*
@@ -52,55 +52,32 @@
 #include "snmp_bgp.h"
 
 struct variable13 bgp_variables[] = {
-    {BGPVERSION, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 1, {1}},
-    {BGPLOCALAS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 1, {2}},
-    {BGPIDENTIFIER, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 1, {4}},
-    {BGPPEERIDENTIFIER, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 1}},
-    {BGPPEERSTATE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 2}},
-    {BGPPEERADMINSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 3}},
-    {BGPPEERNEGOTIATEDVERSION, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 4}},
-    {BGPPEERLOCALADDR, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 5}},
-    {BGPPEERLOCALPORT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 6}},
-    {BGPPEERREMOTEADDR, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 7}},
-    {BGPPEERREMOTEPORT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 8}},
-    {BGPPEERREMOTEAS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 9}},
-    {BGPPEERINUPDATES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 10}},
-    {BGPPEEROUTUPDATES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 11}},
-    {BGPPEERINTOTALMESSAGES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 12}},
-    {BGPPEEROUTTOTALMESSAGES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 13}},
-    {BGPPEERLASTERROR, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {3, 1, 14}},
-    {BGPPATHATTRPEER, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {5, 1, 1}},
-    {BGPPATHATTRDESTNETWORK, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {5, 1, 2}},
-    {BGPPATHATTRORIGIN, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {5, 1, 3}},
-    {BGPPATHATTRASPATH, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {5, 1, 4}},
-    {BGPPATHATTRNEXTHOP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {5, 1, 5}},
-    {BGPPATHATTRINTERASMETRIC, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_bgp, 3, {5, 1, 6}}
+    {BGPVERSION, ASN_OCTET_STR, RONLY, var_bgp, 1, {1}},
+    {BGPLOCALAS, ASN_INTEGER, RONLY, var_bgp, 1, {2}},
+    {BGPIDENTIFIER, ASN_IPADDRESS, RONLY, var_bgp, 1, {4}},
+    {BGPPEERIDENTIFIER, ASN_IPADDRESS, RONLY, var_bgp, 3, {3, 1, 1}},
+    {BGPPEERSTATE, ASN_INTEGER, RONLY, var_bgp, 3, {3, 1, 2}},
+    {BGPPEERADMINSTATUS, ASN_INTEGER, RONLY, var_bgp, 3, {3, 1, 3}},
+    {BGPPEERNEGOTIATEDVERSION, ASN_INTEGER, RONLY, var_bgp, 3, {3, 1, 4}},
+    {BGPPEERLOCALADDR, ASN_IPADDRESS, RONLY, var_bgp, 3, {3, 1, 5}},
+    {BGPPEERLOCALPORT, ASN_INTEGER, RONLY, var_bgp, 3, {3, 1, 6}},
+    {BGPPEERREMOTEADDR, ASN_IPADDRESS, RONLY, var_bgp, 3, {3, 1, 7}},
+    {BGPPEERREMOTEPORT, ASN_INTEGER, RONLY, var_bgp, 3, {3, 1, 8}},
+    {BGPPEERREMOTEAS, ASN_INTEGER, RONLY, var_bgp, 3, {3, 1, 9}},
+    {BGPPEERINUPDATES, ASN_COUNTER, RONLY, var_bgp, 3, {3, 1, 10}},
+    {BGPPEEROUTUPDATES, ASN_COUNTER, RONLY, var_bgp, 3, {3, 1, 11}},
+    {BGPPEERINTOTALMESSAGES, ASN_COUNTER, RONLY, var_bgp, 3, {3, 1, 12}},
+    {BGPPEEROUTTOTALMESSAGES, ASN_COUNTER, RONLY, var_bgp, 3, {3, 1, 13}},
+    {BGPPEERLASTERROR, ASN_OCTET_STR, RONLY, var_bgp, 3, {3, 1, 14}},
+    {BGPPATHATTRPEER, ASN_IPADDRESS, RONLY, var_bgp, 3, {5, 1, 1}},
+    {BGPPATHATTRDESTNETWORK, ASN_IPADDRESS, RONLY, var_bgp, 3, {5, 1, 2}},
+    {BGPPATHATTRORIGIN, ASN_INTEGER, RONLY, var_bgp, 3, {5, 1, 3}},
+    {BGPPATHATTRASPATH, ASN_OCTET_STR, RONLY, var_bgp, 3, {5, 1, 4}},
+    {BGPPATHATTRNEXTHOP, ASN_INTEGER, RONLY, var_bgp, 3, {5, 1, 5}},
+    {BGPPATHATTRINTERASMETRIC, ASN_OCTET_STR, RONLY, var_bgp, 3, {5, 1, 6}}
 };
 
-oid             bgp_variables_oid[] = { NETSNMP_MIB2_OID, 15 };
+oid             bgp_variables_oid[] = { MIB, 15 };
 
 void
 init_snmp_bdp(void)
@@ -109,6 +86,8 @@ init_snmp_bdp(void)
                  bgp_variables_oid);
 }
 
+
+#endif
 static oid      max_bgp_mib[] =
     { 1, 3, 6, 1, 2, 1, 15, 5, 1, 6, 255, 255, 255, 255 };
 static oid      min_bgp_mib[] = { 1, 3, 6, 1, 2, 1, 15, 1, 0 };
diff --git a/agent/mibgroup/smux/snmp_ospf.c b/agent/mibgroup/smux/snmp_ospf.c
index 73f0e43..38c87b8 100644
--- a/agent/mibgroup/smux/snmp_ospf.c
+++ b/agent/mibgroup/smux/snmp_ospf.c
@@ -1,5 +1,5 @@
 /*
- * $Id$ 
+ * $Id: snmp_ospf.c 6918 2002-04-20 07:30:29Z hardaker $ 
  */
 
 /*
@@ -57,225 +57,129 @@ static oid      min_ospf_mib[] =
 extern u_char   smux_type;
 
 struct variable13 ospf_variables[] = {
-    {ospfRouterId, ASN_IPADDRESS, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {1, 1, 1}},
-    {ospfAdminStat, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {1, 1, 2}},
-    {ospfVersionNumber, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {1, 1, 3}},
-    {ospfAreaBdrRtrStatus, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {1, 1, 4}},
-    {ospfASBdrRtrStatus, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {1, 1, 5}},
-    {ospfExternLsaCount, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {1, 1, 6}},
-    {ospfExternLsaCksumSum, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {1, 1, 7}},
-    {ospfTOSSupport, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {1, 1, 8}},
-    {ospfOriginateNewLsas, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {1, 1, 9}},
-    {ospfRxNewLsas, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {1, 1, 10, 0}},
-    {ospfExtLsdbLimit, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {1, 1, 11}},
-    {ospfMulticastExtensions, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {1, 1, 12}},
-    {ospfAreaId, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {2, 1, 1}},
-    {ospfAuthType, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {2, 1, 2}},
-    {ospfImportAsExtern, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {2, 1, 3}},
-    {ospfSpfRuns, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {2, 1, 4}},
-    {ospfAreaBdrRtrCount, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {2, 1, 5}},
-    {ospfAsBdrRtrCount, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {2, 1, 6}},
-    {ospfAreaLsaCount, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {2, 1, 7}},
-    {ospfAreaLsaCksumSum, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {2, 1, 8}},
-    {ospfAreaSummary, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {2, 1, 9}},
-    {ospfAreaStatus, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {2, 1, 10}},
-    {ospfStubAreaId, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {3, 1, 1}},
-    {ospfStubTOS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {3, 1, 2}},
-    {ospfStubMetric, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {3, 1, 3}},
-    {ospfStubStatus, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {3, 1, 4}},
-    {ospfStubMetricType, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {3, 1, 5}},
-    {ospfLsdbAreaId, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {4, 1, 1}},
-    {ospfLsdbType, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {4, 1, 2}},
-    {ospfLsdbLsid, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {4, 1, 3}},
-    {ospfLsdbRouterId, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {4, 1, 4}},
-    {ospfLsdbSequence, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {4, 1, 5}},
-    {ospfLsdbAge, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {4, 1, 6}},
-    {ospfLsdbChecksum, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {4, 1, 7}},
-    {ospfLsdbAdvertisement, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {4, 1, 8}},
-    {ospfAreaRangeAreaId, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {5, 1, 1}},
-    {ospfAreaRangeNet, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {5, 1, 2}},
-    {ospfAreaRangeMask, ASN_IPADDRESS, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {5, 1, 3}},
-    {ospfAreaRangeStatus, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {5, 1, 4}},
-    {ospfAreaRangeEffect, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {5, 1, 5}},
-    {ospfHostIpAddress, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {6, 1, 1}},
-    {ospfHostTOS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {6, 1, 2}},
-    {ospfHostMetric, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {6, 1, 3}},
-    {ospfHostStatus, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {6, 1, 4}},
-    {ospfHostAreaID, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {6, 1, 5}},
-    {ospfIfIpAddress, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {7, 1, 1}},
-    {ospfAddressLessIf, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {7, 1, 2}},
-    {ospfIfAreaId, ASN_IPADDRESS, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {7, 1, 3}},
-    {ospfIfType, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {7, 1, 4}},
-    {ospfIfAdminStat, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {7, 1, 5}},
-    {ospfIfRtrPriority, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {7, 1, 6}},
-    {ospfIfTransitDelay, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {7, 1, 7}},
-    {ospfIfRetransInterval, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {7, 1, 8}},
-    {ospfIfHelloInterval, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {7, 1, 9}},
-    {ospfIfRtrDeadInterval, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {7, 1, 10}},
-    {ospfIfPollInterval, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {7, 1, 11}},
-    {ospfIfState, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {7, 1, 12}},
-    {ospfIfDesignatedRouter, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {7, 1, 13}},
-    {ospfIfBackupDesignatedRouter, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {7, 1, 14}},
-    {ospfIfEvents, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {7, 1, 15}},
-    {ospfIfAuthKey, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {7, 1, 16}},
-    {ospfIfStatus, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {7, 1, 17}},
-    {ospfIfMulticastForwarding, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {7, 1, 18}},
-    {ospfIfMetricIpAddress, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {8, 1, 1}},
-    {ospfIfMetricAddressLessIf, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {8, 1, 2}},
-    {ospfIfMetricTOS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {8, 1, 3}},
-    {ospfIfMetricValue, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {8, 1, 4}},
-    {ospfIfMetricStatus, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {8, 1, 5}},
-    {ospfVirtIfAreaId, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {9, 1, 1}},
-    {ospfVirtIfNeighbor, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {9, 1, 2}},
-    {ospfVirtIfTransitDelay, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {9, 1, 3}},
-    {ospfVirtIfRetransInterval, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {9, 1, 4}},
-    {ospfVirtIfHelloInterval, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {9, 1, 5}},
-    {ospfVirtIfRtrDeadInterval, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {9, 1, 6}},
-    {ospfVirtIfState, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {9, 1, 7}},
-    {ospfVirtIfEvents, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {9, 1, 8}},
-    {ospfVirtIfAuthKey, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {9, 1, 9}},
-    {ospfVirtIfStatus, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {9, 1, 10}},
-    {ospfNbrIpAddr, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {10, 1, 1}},
-    {ospfNbrAddressLessIndex, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {10, 1, 2}},
-    {ospfNbrRtrId, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {10, 1, 3}},
-    {ospfNbrOptions, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {10, 1, 4}},
-    {ospfNbrPriority, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {10, 1, 5}},
-    {ospfNbrState, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {10, 1, 6}},
-    {ospfNbrEvents, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {10, 1, 7}},
-    {ospfNbrLsRetransQLen, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {10, 1, 8}},
-    {ospfNbmaNbrStatus, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {10, 1, 9}},
-    {ospfNbmaNbrPermanence, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {10, 1, 10}},
-    {ospfVirtNbrArea, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {11, 1, 1}},
-    {ospfVirtNbrRtrId, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {11, 1, 2}},
-    {ospfVirtNbrIpAddr, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {11, 1, 3}},
-    {ospfVirtNbrOptions, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {11, 1, 4}},
-    {ospfVirtNbrState, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {11, 1, 5}},
-    {ospfVirtNbrEvents, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {11, 1, 6}},
-    {ospfVirtNbrLsRetransQLen, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {11, 1, 7}},
-    {ospfExtLsdbType, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {12, 1, 1}},
-    {ospfExtLsdbLsid, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {12, 1, 2}},
-    {ospfExtLsdbRouterId, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {12, 1, 3}},
-    {ospfExtLsdbSequence, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {12, 1, 4}},
-    {ospfExtLsdbAge, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {12, 1, 5}},
-    {ospfExtLsdbChecksum, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {12, 1, 6}},
-    {ospfExtLsdbAdvertisement, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {12, 1, 7}},
-    {ospfAreaAggregateAreaID, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {14, 1, 1}},
-    {ospfAreaAggregateLsdbType, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {14, 1, 2}},
-    {ospfAreaAggregateNet, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_ospf, 3, {14, 1, 3}},
-    {ospfAreaAggregateMask, ASN_IPADDRESS, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {14, 1, 4}},
-    {ospfAreaAggregateStatus, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {14, 1, 5}},
-    {ospfAreaAggregateEffect, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_ospf, 3, {14, 1, 6}}
+    {ospfRouterId, ASN_IPADDRESS, RWRITE, var_ospf, 3, {1, 1, 1}},
+    {ospfAdminStat, ASN_INTEGER, RWRITE, var_ospf, 3, {1, 1, 2}},
+    {ospfVersionNumber, ASN_INTEGER, RONLY, var_ospf, 3, {1, 1, 3}},
+    {ospfAreaBdrRtrStatus, ASN_INTEGER, RONLY, var_ospf, 3, {1, 1, 4}},
+    {ospfASBdrRtrStatus, ASN_INTEGER, RWRITE, var_ospf, 3, {1, 1, 5}},
+    {ospfExternLsaCount, ASN_GAUGE, RONLY, var_ospf, 3, {1, 1, 6}},
+    {ospfExternLsaCksumSum, ASN_INTEGER, RONLY, var_ospf, 3, {1, 1, 7}},
+    {ospfTOSSupport, ASN_INTEGER, RWRITE, var_ospf, 3, {1, 1, 8}},
+    {ospfOriginateNewLsas, ASN_COUNTER, RONLY, var_ospf, 3, {1, 1, 9}},
+    {ospfRxNewLsas, ASN_COUNTER, RONLY, var_ospf, 3, {1, 1, 10, 0}},
+    {ospfExtLsdbLimit, ASN_INTEGER, RWRITE, var_ospf, 3, {1, 1, 11}},
+    {ospfMulticastExtensions, ASN_INTEGER, RWRITE, var_ospf, 3,
+     {1, 1, 12}},
+    {ospfAreaId, ASN_IPADDRESS, RONLY, var_ospf, 3, {2, 1, 1}},
+    {ospfAuthType, ASN_INTEGER, RWRITE, var_ospf, 3, {2, 1, 2}},
+    {ospfImportAsExtern, ASN_INTEGER, RWRITE, var_ospf, 3, {2, 1, 3}},
+    {ospfSpfRuns, ASN_COUNTER, RONLY, var_ospf, 3, {2, 1, 4}},
+    {ospfAreaBdrRtrCount, ASN_GAUGE, RONLY, var_ospf, 3, {2, 1, 5}},
+    {ospfAsBdrRtrCount, ASN_GAUGE, RONLY, var_ospf, 3, {2, 1, 6}},
+    {ospfAreaLsaCount, ASN_GAUGE, RONLY, var_ospf, 3, {2, 1, 7}},
+    {ospfAreaLsaCksumSum, ASN_INTEGER, RONLY, var_ospf, 3, {2, 1, 8}},
+    {ospfAreaSummary, ASN_INTEGER, RWRITE, var_ospf, 3, {2, 1, 9}},
+    {ospfAreaStatus, ASN_INTEGER, RWRITE, var_ospf, 3, {2, 1, 10}},
+    {ospfStubAreaId, ASN_IPADDRESS, RONLY, var_ospf, 3, {3, 1, 1}},
+    {ospfStubTOS, ASN_INTEGER, RONLY, var_ospf, 3, {3, 1, 2}},
+    {ospfStubMetric, ASN_INTEGER, RWRITE, var_ospf, 3, {3, 1, 3}},
+    {ospfStubStatus, ASN_INTEGER, RWRITE, var_ospf, 3, {3, 1, 4}},
+    {ospfStubMetricType, ASN_INTEGER, RWRITE, var_ospf, 3, {3, 1, 5}},
+    {ospfLsdbAreaId, ASN_IPADDRESS, RONLY, var_ospf, 3, {4, 1, 1}},
+    {ospfLsdbType, ASN_INTEGER, RONLY, var_ospf, 3, {4, 1, 2}},
+    {ospfLsdbLsid, ASN_IPADDRESS, RONLY, var_ospf, 3, {4, 1, 3}},
+    {ospfLsdbRouterId, ASN_IPADDRESS, RONLY, var_ospf, 3, {4, 1, 4}},
+    {ospfLsdbSequence, ASN_INTEGER, RONLY, var_ospf, 3, {4, 1, 5}},
+    {ospfLsdbAge, ASN_INTEGER, RONLY, var_ospf, 3, {4, 1, 6}},
+    {ospfLsdbChecksum, ASN_INTEGER, RONLY, var_ospf, 3, {4, 1, 7}},
+    {ospfLsdbAdvertisement, ASN_OCTET_STR, RONLY, var_ospf, 3, {4, 1, 8}},
+    {ospfAreaRangeAreaId, ASN_IPADDRESS, RONLY, var_ospf, 3, {5, 1, 1}},
+    {ospfAreaRangeNet, ASN_IPADDRESS, RONLY, var_ospf, 3, {5, 1, 2}},
+    {ospfAreaRangeMask, ASN_IPADDRESS, RWRITE, var_ospf, 3, {5, 1, 3}},
+    {ospfAreaRangeStatus, ASN_INTEGER, RWRITE, var_ospf, 3, {5, 1, 4}},
+    {ospfAreaRangeEffect, ASN_INTEGER, RWRITE, var_ospf, 3, {5, 1, 5}},
+    {ospfHostIpAddress, ASN_IPADDRESS, RONLY, var_ospf, 3, {6, 1, 1}},
+    {ospfHostTOS, ASN_INTEGER, RONLY, var_ospf, 3, {6, 1, 2}},
+    {ospfHostMetric, ASN_INTEGER, RWRITE, var_ospf, 3, {6, 1, 3}},
+    {ospfHostStatus, ASN_INTEGER, RWRITE, var_ospf, 3, {6, 1, 4}},
+    {ospfHostAreaID, ASN_IPADDRESS, RONLY, var_ospf, 3, {6, 1, 5}},
+    {ospfIfIpAddress, ASN_IPADDRESS, RONLY, var_ospf, 3, {7, 1, 1}},
+    {ospfAddressLessIf, ASN_INTEGER, RONLY, var_ospf, 3, {7, 1, 2}},
+    {ospfIfAreaId, ASN_IPADDRESS, RWRITE, var_ospf, 3, {7, 1, 3}},
+    {ospfIfType, ASN_INTEGER, RWRITE, var_ospf, 3, {7, 1, 4}},
+    {ospfIfAdminStat, ASN_INTEGER, RWRITE, var_ospf, 3, {7, 1, 5}},
+    {ospfIfRtrPriority, ASN_INTEGER, RWRITE, var_ospf, 3, {7, 1, 6}},
+    {ospfIfTransitDelay, ASN_INTEGER, RWRITE, var_ospf, 3, {7, 1, 7}},
+    {ospfIfRetransInterval, ASN_INTEGER, RWRITE, var_ospf, 3, {7, 1, 8}},
+    {ospfIfHelloInterval, ASN_INTEGER, RWRITE, var_ospf, 3, {7, 1, 9}},
+    {ospfIfRtrDeadInterval, ASN_INTEGER, RWRITE, var_ospf, 3, {7, 1, 10}},
+    {ospfIfPollInterval, ASN_INTEGER, RWRITE, var_ospf, 3, {7, 1, 11}},
+    {ospfIfState, ASN_INTEGER, RONLY, var_ospf, 3, {7, 1, 12}},
+    {ospfIfDesignatedRouter, ASN_IPADDRESS, RONLY, var_ospf, 3,
+     {7, 1, 13}},
+    {ospfIfBackupDesignatedRouter, ASN_IPADDRESS, RONLY, var_ospf, 3,
+     {7, 1, 14}},
+    {ospfIfEvents, ASN_COUNTER, RONLY, var_ospf, 3, {7, 1, 15}},
+    {ospfIfAuthKey, ASN_OCTET_STR, RWRITE, var_ospf, 3, {7, 1, 16}},
+    {ospfIfStatus, ASN_INTEGER, RWRITE, var_ospf, 3, {7, 1, 17}},
+    {ospfIfMulticastForwarding, ASN_INTEGER, RWRITE, var_ospf, 3,
+     {7, 1, 18}},
+    {ospfIfMetricIpAddress, ASN_IPADDRESS, RONLY, var_ospf, 3, {8, 1, 1}},
+    {ospfIfMetricAddressLessIf, ASN_INTEGER, RONLY, var_ospf, 3,
+     {8, 1, 2}},
+    {ospfIfMetricTOS, ASN_INTEGER, RONLY, var_ospf, 3, {8, 1, 3}},
+    {ospfIfMetricValue, ASN_INTEGER, RWRITE, var_ospf, 3, {8, 1, 4}},
+    {ospfIfMetricStatus, ASN_INTEGER, RWRITE, var_ospf, 3, {8, 1, 5}},
+    {ospfVirtIfAreaId, ASN_IPADDRESS, RONLY, var_ospf, 3, {9, 1, 1}},
+    {ospfVirtIfNeighbor, ASN_IPADDRESS, RONLY, var_ospf, 3, {9, 1, 2}},
+    {ospfVirtIfTransitDelay, ASN_INTEGER, RWRITE, var_ospf, 3, {9, 1, 3}},
+    {ospfVirtIfRetransInterval, ASN_INTEGER, RWRITE, var_ospf, 3,
+     {9, 1, 4}},
+    {ospfVirtIfHelloInterval, ASN_INTEGER, RWRITE, var_ospf, 3, {9, 1, 5}},
+    {ospfVirtIfRtrDeadInterval, ASN_INTEGER, RWRITE, var_ospf, 3,
+     {9, 1, 6}},
+    {ospfVirtIfState, ASN_INTEGER, RONLY, var_ospf, 3, {9, 1, 7}},
+    {ospfVirtIfEvents, ASN_COUNTER, RONLY, var_ospf, 3, {9, 1, 8}},
+    {ospfVirtIfAuthKey, ASN_OCTET_STR, RWRITE, var_ospf, 3, {9, 1, 9}},
+    {ospfVirtIfStatus, ASN_INTEGER, RWRITE, var_ospf, 3, {9, 1, 10}},
+    {ospfNbrIpAddr, ASN_IPADDRESS, RONLY, var_ospf, 3, {10, 1, 1}},
+    {ospfNbrAddressLessIndex, ASN_INTEGER, RONLY, var_ospf, 3, {10, 1, 2}},
+    {ospfNbrRtrId, ASN_IPADDRESS, RONLY, var_ospf, 3, {10, 1, 3}},
+    {ospfNbrOptions, ASN_INTEGER, RONLY, var_ospf, 3, {10, 1, 4}},
+    {ospfNbrPriority, ASN_INTEGER, RWRITE, var_ospf, 3, {10, 1, 5}},
+    {ospfNbrState, ASN_INTEGER, RONLY, var_ospf, 3, {10, 1, 6}},
+    {ospfNbrEvents, ASN_COUNTER, RONLY, var_ospf, 3, {10, 1, 7}},
+    {ospfNbrLsRetransQLen, ASN_GAUGE, RONLY, var_ospf, 3, {10, 1, 8}},
+    {ospfNbmaNbrStatus, ASN_INTEGER, RWRITE, var_ospf, 3, {10, 1, 9}},
+    {ospfNbmaNbrPermanence, ASN_INTEGER, RWRITE, var_ospf, 3, {10, 1, 10}},
+    {ospfVirtNbrArea, ASN_IPADDRESS, RONLY, var_ospf, 3, {11, 1, 1}},
+    {ospfVirtNbrRtrId, ASN_IPADDRESS, RONLY, var_ospf, 3, {11, 1, 2}},
+    {ospfVirtNbrIpAddr, ASN_IPADDRESS, RONLY, var_ospf, 3, {11, 1, 3}},
+    {ospfVirtNbrOptions, ASN_INTEGER, RONLY, var_ospf, 3, {11, 1, 4}},
+    {ospfVirtNbrState, ASN_INTEGER, RONLY, var_ospf, 3, {11, 1, 5}},
+    {ospfVirtNbrEvents, ASN_COUNTER, RONLY, var_ospf, 3, {11, 1, 6}},
+    {ospfVirtNbrLsRetransQLen, ASN_GAUGE, RONLY, var_ospf, 3, {11, 1, 7}},
+    {ospfExtLsdbType, ASN_INTEGER, RONLY, var_ospf, 3, {12, 1, 1}},
+    {ospfExtLsdbLsid, ASN_IPADDRESS, RONLY, var_ospf, 3, {12, 1, 2}},
+    {ospfExtLsdbRouterId, ASN_IPADDRESS, RONLY, var_ospf, 3, {12, 1, 3}},
+    {ospfExtLsdbSequence, ASN_INTEGER, RONLY, var_ospf, 3, {12, 1, 4}},
+    {ospfExtLsdbAge, ASN_INTEGER, RONLY, var_ospf, 3, {12, 1, 5}},
+    {ospfExtLsdbChecksum, ASN_INTEGER, RONLY, var_ospf, 3, {12, 1, 6}},
+    {ospfExtLsdbAdvertisement, ASN_OCTET_STR, RONLY, var_ospf, 3,
+     {12, 1, 7}},
+    {ospfAreaAggregateAreaID, ASN_IPADDRESS, RONLY, var_ospf, 3,
+     {14, 1, 1}},
+    {ospfAreaAggregateLsdbType, ASN_INTEGER, RONLY, var_ospf, 3,
+     {14, 1, 2}},
+    {ospfAreaAggregateNet, ASN_IPADDRESS, RONLY, var_ospf, 3, {14, 1, 3}},
+    {ospfAreaAggregateMask, ASN_IPADDRESS, RWRITE, var_ospf, 3,
+     {14, 1, 4}},
+    {ospfAreaAggregateStatus, ASN_INTEGER, RWRITE, var_ospf, 3,
+     {14, 1, 5}},
+    {ospfAreaAggregateEffect, ASN_INTEGER, RWRITE, var_ospf, 3, {14, 1, 6}}
 };
 
-oid             ospf_variables_oid[] = { NETSNMP_MIB2_OID, 14 };
+oid             ospf_variables_oid[] = { MIB, 14 };
 
 void
 init_snmp_ospf(void)
diff --git a/agent/mibgroup/smux/snmp_rip2.c b/agent/mibgroup/smux/snmp_rip2.c
index b987a09..7e14d13 100644
--- a/agent/mibgroup/smux/snmp_rip2.c
+++ b/agent/mibgroup/smux/snmp_rip2.c
@@ -1,5 +1,5 @@
 /*
- * $Id$ 
+ * $Id: snmp_rip2.c 6918 2002-04-20 07:30:29Z hardaker $ 
  */
 
 /*
@@ -57,53 +57,31 @@ static oid      min_rip_mib[] = { 1, 3, 6, 1, 2, 1, 23, 1, 1, 0 };
 extern u_char   smux_type;
 
 struct variable13 rip2_variables[] = {
-    {RIP2GLOBALROUTECHANGES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_rip2, 2, {1, 1}},
-    {RIP2GLOBALQUERIES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_rip2, 2, {1, 2}},
-    {RIP2IFSTATADDRESS, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_rip2, 3, {2, 1, 1}},
-    {RIP2IFSTATRCVBADPKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_rip2, 3, {2, 1, 2}},
-    {RIP2IFSTATRCVBADROUTES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_rip2, 3, {2, 1, 3}},
-    {RIP2IFSTATSENTUPDATES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_rip2, 3, {2, 1, 4}},
-    {RIP2IFSTATSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_rip2, 3, {2, 1, 5}},
-    {RIP2IFCONFADDRESS, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_rip2, 3, {3, 1, 1}},
-    {RIP2IFCONFDOMAIN, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_rip2, 3, {3, 1, 2}},
-    {RIP2IFCONFAUTHTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_rip2, 3, {3, 1, 3}},
-    {RIP2IFCONFAUTHKEY, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_rip2, 3, {3, 1, 4}},
-    {RIP2IFCONFSEND, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_rip2, 3, {3, 1, 5}},
-    {RIP2IFCONFRECEIVE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_rip2, 3, {3, 1, 6}},
-    {RIP2IFCONFDEFAULTMETRIC, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_rip2, 3, {3, 1, 7}},
-    {RIP2IFCONFSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_rip2, 3, {3, 1, 8}},
-    {RIP2IFCONFSRCADDRESS, ASN_IPADDRESS, NETSNMP_OLDAPI_RWRITE,
-     var_rip2, 3, {3, 1, 9}},
-    {RIP2PEERADDRESS, ASN_IPADDRESS, NETSNMP_OLDAPI_RONLY,
-     var_rip2, 3, {4, 1, 1}},
-    {RIP2PEERDOMAIN, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_rip2, 3, {4, 1, 2}},
-    {RIP2PEERLASTUPDATE, ASN_TIMETICKS, NETSNMP_OLDAPI_RONLY,
-     var_rip2, 3, {4, 1, 3}},
-    {RIP2PEERVERSION, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_rip2, 3, {4, 1, 4}},
-    {RIP2PEERRCVBADPKTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_rip2, 3, {4, 1, 5}},
-    {RIP2PEERRCVBADROUTES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_rip2, 3, {4, 1, 6}}
+    {RIP2GLOBALROUTECHANGES, ASN_COUNTER, RONLY, var_rip2, 2, {1, 1}},
+    {RIP2GLOBALQUERIES, ASN_COUNTER, RONLY, var_rip2, 2, {1, 2}},
+    {RIP2IFSTATADDRESS, ASN_IPADDRESS, RONLY, var_rip2, 3, {2, 1, 1}},
+    {RIP2IFSTATRCVBADPKTS, ASN_COUNTER, RONLY, var_rip2, 3, {2, 1, 2}},
+    {RIP2IFSTATRCVBADROUTES, ASN_COUNTER, RONLY, var_rip2, 3, {2, 1, 3}},
+    {RIP2IFSTATSENTUPDATES, ASN_COUNTER, RONLY, var_rip2, 3, {2, 1, 4}},
+    {RIP2IFSTATSTATUS, ASN_INTEGER, RWRITE, var_rip2, 3, {2, 1, 5}},
+    {RIP2IFCONFADDRESS, ASN_IPADDRESS, RONLY, var_rip2, 3, {3, 1, 1}},
+    {RIP2IFCONFDOMAIN, ASN_OCTET_STR, RWRITE, var_rip2, 3, {3, 1, 2}},
+    {RIP2IFCONFAUTHTYPE, ASN_INTEGER, RWRITE, var_rip2, 3, {3, 1, 3}},
+    {RIP2IFCONFAUTHKEY, ASN_OCTET_STR, RWRITE, var_rip2, 3, {3, 1, 4}},
+    {RIP2IFCONFSEND, ASN_INTEGER, RWRITE, var_rip2, 3, {3, 1, 5}},
+    {RIP2IFCONFRECEIVE, ASN_INTEGER, RWRITE, var_rip2, 3, {3, 1, 6}},
+    {RIP2IFCONFDEFAULTMETRIC, ASN_INTEGER, RWRITE, var_rip2, 3, {3, 1, 7}},
+    {RIP2IFCONFSTATUS, ASN_INTEGER, RWRITE, var_rip2, 3, {3, 1, 8}},
+    {RIP2IFCONFSRCADDRESS, ASN_IPADDRESS, RWRITE, var_rip2, 3, {3, 1, 9}},
+    {RIP2PEERADDRESS, ASN_IPADDRESS, RONLY, var_rip2, 3, {4, 1, 1}},
+    {RIP2PEERDOMAIN, ASN_OCTET_STR, RONLY, var_rip2, 3, {4, 1, 2}},
+    {RIP2PEERLASTUPDATE, ASN_TIMETICKS, RONLY, var_rip2, 3, {4, 1, 3}},
+    {RIP2PEERVERSION, ASN_INTEGER, RONLY, var_rip2, 3, {4, 1, 4}},
+    {RIP2PEERRCVBADPKTS, ASN_COUNTER, RONLY, var_rip2, 3, {4, 1, 5}},
+    {RIP2PEERRCVBADROUTES, ASN_COUNTER, RONLY, var_rip2, 3, {4, 1, 6}}
 };
 
-oid             rip2_variables_oid[] = { NETSNMP_MIB2_OID, 23 };
+oid             rip2_variables_oid[] = { MIB, 23 };
 
 void
 init_snmp_rip2(void)
diff --git a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c
index d1c575f..a9f0de6 100644
--- a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c
+++ b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: snmpNotifyFilterTable.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** \page MFD helper for snmpNotifyFilterTable
  *
@@ -14,7 +14,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -27,15 +26,12 @@
 
 #include "snmpNotifyFilterTable_interface.h"
 
-netsnmp_feature_require(check_storage_transition)
-
-const oid       snmpNotifyFilterTable_oid[] =
+oid             snmpNotifyFilterTable_oid[] =
     { SNMPNOTIFYFILTERTABLE_OID };
-const int       snmpNotifyFilterTable_oid_size =
+int             snmpNotifyFilterTable_oid_size =
 OID_LENGTH(snmpNotifyFilterTable_oid);
 
 snmpNotifyFilterTable_registration snmpNotifyFilterTable_user_context;
-static snmpNotifyFilterTable_registration *snmpNotifyFilterTable_user_context_p;
 
 void            initialize_table_snmpNotifyFilterTable(void);
 void            shutdown_table_snmpNotifyFilterTable(void);
@@ -80,6 +76,7 @@ shutdown_snmpNotifyFilterTable(void)
 void
 initialize_table_snmpNotifyFilterTable(void)
 {
+    snmpNotifyFilterTable_registration *user_context;
     u_long          flags;
 
     DEBUGMSGTL(("verbose:snmpNotifyFilterTable:initialize_table_snmpNotifyFilterTable", "called\n"));
@@ -97,7 +94,7 @@ initialize_table_snmpNotifyFilterTable(void)
      * a netsnmp_data_list is a simple way to store void pointers. A simple
      * string token is used to add, find or remove pointers.
      */
-    snmpNotifyFilterTable_user_context_p =
+    user_context =
         netsnmp_create_data_list("snmpNotifyFilterTable", NULL, NULL);
 
     /*
@@ -109,8 +106,7 @@ initialize_table_snmpNotifyFilterTable(void)
     /*
      * call interface initialization code
      */
-    _snmpNotifyFilterTable_initialize_interface
-	(snmpNotifyFilterTable_user_context_p, flags);
+    _snmpNotifyFilterTable_initialize_interface(user_context, flags);
 }                               /* initialize_table_snmpNotifyFilterTable */
 
 /**
@@ -123,9 +119,7 @@ shutdown_table_snmpNotifyFilterTable(void)
      * call interface shutdown code
      */
     _snmpNotifyFilterTable_shutdown_interface
-        (snmpNotifyFilterTable_user_context_p);
-    netsnmp_free_all_list_data(snmpNotifyFilterTable_user_context_p);
-    snmpNotifyFilterTable_user_context_p = NULL;
+        (&snmpNotifyFilterTable_user_context);
 }
 
 /**
@@ -270,9 +264,9 @@ snmpNotifyFilterTable_post_request(snmpNotifyFilterTable_registration *
          */
         if (MFD_SUCCESS == rc) {
             /*
-             * notify library to save changed rows
+             * save changed rows, if you haven't already
              */
-            snmp_store_needed(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+            snmp_store(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
                                              NETSNMP_DS_LIB_APPTYPE));
         }
 
@@ -547,7 +541,7 @@ snmpNotifyFilterMask_get(snmpNotifyFilterTable_rowreq_ctx * rowreq_ctx,
         /*
          * allocate space for snmpNotifyFilterMask data
          */
-        (*snmpNotifyFilterMask_val_ptr_ptr) = (char*)
+        (*snmpNotifyFilterMask_val_ptr_ptr) =
             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.h b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.h
index 3ff2f94..e940769 100644
--- a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.h
+++ b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: snmpNotifyFilterTable.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 #ifndef SNMPNOTIFYFILTERTABLE_H
 #define SNMPNOTIFYFILTERTABLE_H
@@ -311,8 +311,8 @@ config_require(snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable
         * snmpNotifyFilterTable_row_find_by_mib_index
         (snmpNotifyFilterTable_mib_index * mib_idx);
 
-    extern const oid      snmpNotifyFilterTable_oid[];
-    extern const int      snmpNotifyFilterTable_oid_size;
+    extern oid      snmpNotifyFilterTable_oid[];
+    extern int      snmpNotifyFilterTable_oid_size;
 
 
 #include "snmpNotifyFilterTable_interface.h"
diff --git a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_constants.h b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_constants.h
index f0c0e60..9fb8e5a 100644
--- a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_constants.h
+++ b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: snmpNotifyFilterTable_constants.h 13772 2005-12-01 21:06:00Z rstory $
  */
 #ifndef SNMPNOTIFYFILTERTABLE_CONSTANTS_H
 #define SNMPNOTIFYFILTERTABLE_CONSTANTS_H
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 942a865..07ad36c 100644
--- a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c
+++ b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c
@@ -2,13 +2,12 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: snmpNotifyFilterTable_data_access.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /*
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/library/vacm.h>
@@ -21,8 +20,6 @@
 
 #include "snmpNotifyFilterTable_data_access.h"
 
-netsnmp_feature_require(snmpNotifyFilterTable_container_get)
-
 /** @ingroup interface 
  * @addtogroup data_access data_access: Routines to access data
  *
@@ -246,8 +243,7 @@ snmpNotifyFilterTable_container_load(netsnmp_container *container)
         ++count;
     }
 
-    DEBUGMSGT(("verbose:snmpNotifyFilterTable:snmpNotifyFilterTable_container_load",
-               "inserted %" NETSNMP_PRIz "u records\n", count));
+    DEBUGMSGT(("verbose:snmpNotifyFilterTable:snmpNotifyFilterTable_container_load", "inserted %d records\n", count));
 
     return MFD_SUCCESS;
 }                               /* snmpNotifyFilterTable_container_load */
@@ -499,7 +495,7 @@ snmpNotifyFilterTable_vacm_view_subtree(const char *profile)
 {
     oid             tmp_oid[MAX_OID_LEN];
     netsnmp_index   tmp_idx;
-    size_t          i, j;
+    int             i, j;
     netsnmp_void_array *s;
     struct vacm_viewEntry *tmp;
     snmpNotifyFilterTable_rowreq_ctx *rowreq;
@@ -529,7 +525,7 @@ snmpNotifyFilterTable_vacm_view_subtree(const char *profile)
     /*
      * allocate temporary storage
      */
-    tmp = (struct vacm_viewEntry*)calloc(sizeof(struct vacm_viewEntry), s->size + 1);
+    tmp = 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_data_access.h b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.h
index 4615db4..b2300a5 100644
--- a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.h
+++ b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: snmpNotifyFilterTable_data_access.h 13772 2005-12-01 21:06:00Z rstory $
  */
 #ifndef SNMPNOTIFYFILTERTABLE_DATA_ACCESS_H
 #define SNMPNOTIFYFILTERTABLE_DATA_ACCESS_H
diff --git a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c
index ed3beaa..630c741 100644
--- a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c
+++ b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: snmpNotifyFilterTable_interface.c 15989 2007-03-23 09:15:11Z dts12 $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -47,22 +46,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_child_of(snmpNotifyFilterTable_external_access, libnetsnmpmibs)
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(table_container_row_insert)
-netsnmp_feature_require(check_all_requests_error)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_type_and_max_size)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-
-netsnmp_feature_child_of(snmpNotifyFilterTable_container_size, snmpNotifyFilterTable_external_access)
-netsnmp_feature_child_of(snmpNotifyFilterTable_registration_set, snmpNotifyFilterTable_external_access)
-netsnmp_feature_child_of(snmpNotifyFilterTable_registration_get, snmpNotifyFilterTable_external_access)
-netsnmp_feature_child_of(snmpNotifyFilterTable_container_get, snmpNotifyFilterTable_external_access)
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -113,23 +96,19 @@ static void
     _snmpNotifyFilterTable_container_shutdown
     (snmpNotifyFilterTable_interface_ctx * if_ctx);
 
-#ifndef NETSNMP_FEATURE_REMOVE_SNMPNOTIFYFILTERTABLE_CONTAINER_GET
+
 netsnmp_container *
 snmpNotifyFilterTable_container_get(void)
 {
     return snmpNotifyFilterTable_if_ctx.container;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNMPNOTIFYFILTERTABLE_CONTAINER_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_SNMPNOTIFYFILTERTABLE_REGISTRATION_GET
 snmpNotifyFilterTable_registration *
 snmpNotifyFilterTable_registration_get(void)
 {
     return snmpNotifyFilterTable_if_ctx.user_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNMPNOTIFYFILTERTABLE_REGISTRATION_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_SNMPNOTIFYFILTERTABLE_REGISTRATION_SET
 snmpNotifyFilterTable_registration *
 snmpNotifyFilterTable_registration_set(snmpNotifyFilterTable_registration *
                                        newreg)
@@ -139,15 +118,12 @@ snmpNotifyFilterTable_registration_set(snmpNotifyFilterTable_registration *
     snmpNotifyFilterTable_if_ctx.user_ctx = newreg;
     return old;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNMPNOTIFYFILTERTABLE_REGISTRATION_SET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_SNMPNOTIFYFILTERTABLE_CONTAINER_SIZE
 int
 snmpNotifyFilterTable_container_size(void)
 {
     return CONTAINER_SIZE(snmpNotifyFilterTable_if_ctx.container);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNMPNOTIFYFILTERTABLE_CONTAINER_SIZE */
 
 u_int
 snmpNotifyFilterTable_dirty_get(void)
@@ -171,7 +147,6 @@ static Netsnmp_Node_Handler _mfd_snmpNotifyFilterTable_pre_request;
 static Netsnmp_Node_Handler _mfd_snmpNotifyFilterTable_post_request;
 static Netsnmp_Node_Handler _mfd_snmpNotifyFilterTable_object_lookup;
 static Netsnmp_Node_Handler _mfd_snmpNotifyFilterTable_get_values;
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
 static Netsnmp_Node_Handler _mfd_snmpNotifyFilterTable_check_objects;
 static Netsnmp_Node_Handler _mfd_snmpNotifyFilterTable_undo_setup;
 static Netsnmp_Node_Handler _mfd_snmpNotifyFilterTable_set_values;
@@ -187,7 +162,6 @@ NETSNMP_STATIC_INLINE int
                                                    rowreq_ctx,
                                                    netsnmp_variable_list *
                                                    var, int column);
-#endif
 
 NETSNMP_STATIC_INLINE int
                 _snmpNotifyFilterTable_check_indexes(snmpNotifyFilterTable_rowreq_ctx *
@@ -244,7 +218,7 @@ void
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = SNMPNOTIFYFILTERTABLE_MIN_COL;
     tbl_info->max_column = SNMPNOTIFYFILTERTABLE_MAX_COL;
@@ -285,7 +259,6 @@ void
         _mfd_snmpNotifyFilterTable_post_request;
 
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     /*
      * REQUIRED wrappers for set request handling
      */
@@ -311,7 +284,6 @@ void
      */
     access_multiplexer->consistency_checks =
         _mfd_snmpNotifyFilterTable_check_dependencies;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     /*************************************************
      *
@@ -326,11 +298,8 @@ void
                                             handler,
                                             snmpNotifyFilterTable_oid,
                                             snmpNotifyFilterTable_oid_size,
-                                            HANDLER_CAN_BABY_STEP
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
-                                            | HANDLER_CAN_RWRITE
-#endif
-                                          );
+                                            HANDLER_CAN_BABY_STEP |
+                                            HANDLER_CAN_RWRITE);
     if (NULL == reginfo) {
         snmp_log(LOG_ERR,
                  "error registering table snmpNotifyFilterTable\n");
@@ -344,12 +313,6 @@ void
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -357,6 +320,11 @@ void
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -372,7 +340,6 @@ void
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -753,7 +720,7 @@ _mfd_snmpNotifyFilterTable_post_request(netsnmp_mib_handler *handler, netsnmp_ha
                                         *agtreq_info,
                                         netsnmp_request_info *requests)
 {
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -798,7 +765,6 @@ _mfd_snmpNotifyFilterTable_post_request(netsnmp_mib_handler *handler, netsnmp_ha
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_snmpNotifyFilterTable_post_request */
 
-
 /**
  * @internal
  * wrapper
@@ -872,7 +838,7 @@ _mfd_snmpNotifyFilterTable_object_lookup(netsnmp_mib_handler *handler, netsnmp_h
                                          netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:snmpNotifyFilterTable:_mfd_snmpNotifyFilterTable_object_lookup", "called\n"));
@@ -999,7 +965,7 @@ _mfd_snmpNotifyFilterTable_get_values(netsnmp_mib_handler *handler, netsnmp_hand
                                       *agtreq_info,
                                       netsnmp_request_info *requests)
 {
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1107,7 +1073,6 @@ _snmpNotifyFilterTable_check_indexes(snmpNotifyFilterTable_rowreq_ctx *
                                              user_ctx, rowreq_ctx);
 }                               /* _snmpNotifyFilterTable_check_indexes */
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 /***********************************************************************
  *
  * SET processing
@@ -1278,7 +1243,7 @@ _mfd_snmpNotifyFilterTable_check_objects(netsnmp_mib_handler *handler, netsnmp_h
                                          *agtreq_info,
                                          netsnmp_request_info *requests)
 {
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1326,7 +1291,7 @@ _mfd_snmpNotifyFilterTable_check_dependencies(netsnmp_mib_handler *handler, nets
                                               *requests)
 {
     int             rc;
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:snmpNotifyFilterTable:_mfd_snmpNotifyFilterTable_check_dependencies", "called\n"));
 
@@ -1419,7 +1384,7 @@ _mfd_snmpNotifyFilterTable_undo_setup(netsnmp_mib_handler *handler, netsnmp_hand
                                       netsnmp_request_info *requests)
 {
     int             rc;
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:snmpNotifyFilterTable:_mfd_snmpNotifyFilterTable_undo_setup", "called\n"));
@@ -1484,7 +1449,7 @@ _mfd_snmpNotifyFilterTable_undo_cleanup(netsnmp_mib_handler *handler, netsnmp_ha
                                         *agtreq_info,
                                         netsnmp_request_info *requests)
 {
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1598,7 +1563,7 @@ _mfd_snmpNotifyFilterTable_set_values(netsnmp_mib_handler *handler, netsnmp_hand
                                       *agtreq_info,
                                       netsnmp_request_info *requests)
 {
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1646,7 +1611,7 @@ _mfd_snmpNotifyFilterTable_commit(netsnmp_mib_handler *handler,
                                   netsnmp_request_info *requests)
 {
     int             rc;
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:snmpNotifyFilterTable:_mfd_snmpNotifyFilterTable_commit", "called\n"));
@@ -1679,7 +1644,7 @@ _mfd_snmpNotifyFilterTable_undo_commit(netsnmp_mib_handler *handler, netsnmp_han
                                        netsnmp_request_info *requests)
 {
     int             rc;
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:snmpNotifyFilterTable:_mfd_snmpNotifyFilterTable_undo_commit", "called\n"));
@@ -1779,7 +1744,7 @@ _mfd_snmpNotifyFilterTable_undo_values(netsnmp_mib_handler *handler, netsnmp_han
                                        netsnmp_request_info *requests)
 {
     int             rc;
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -1835,7 +1800,7 @@ _mfd_snmpNotifyFilterTable_irreversible_commit(netsnmp_mib_handler
                                                *agtreq_info, netsnmp_request_info
                                                *requests)
 {
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:snmpNotifyFilterTable:_mfd_snmpNotifyFilterTable_irreversible:commit", "called\n"));
@@ -1863,7 +1828,6 @@ _mfd_snmpNotifyFilterTable_irreversible_commit(netsnmp_mib_handler
 
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_snmpNotifyFilterTable_irreversible_commit */
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 /***********************************************************************
  *
@@ -2038,18 +2002,15 @@ void
 snmpNotifyFilterTable_container_init_persistence(netsnmp_container
                                                  *container)
 {
-    netsnmp_container **container_p;
     int             rc;
 
     register_config_handler(NULL, row_token,
                             _snmpNotifyFilterTable_container_row_restore,
                             NULL, NULL);
-    memdup((u_char **)&container_p, &container, sizeof(container));
-    netsnmp_assert(container_p);
     rc = snmp_register_callback(SNMP_CALLBACK_LIBRARY,
                                 SNMP_CALLBACK_STORE_DATA,
                                 _snmpNotifyFilterTable_container_save_rows,
-                                container_p);
+                                container);
 
     if (rc != SNMP_ERR_NOERROR)
         snmp_log(LOG_ERR, "error registering for STORE_DATA callback "
@@ -2067,11 +2028,9 @@ _snmpNotifyFilterTable_container_save_rows(int majorID, int minorID,
         "#\n" "# snmpNotifyFilterTable persistent data\n" "#";
     char           *type = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
                                                  NETSNMP_DS_LIB_APPTYPE);
-    netsnmp_container *c = *(netsnmp_container **)clientarg;
+    netsnmp_container *c = (netsnmp_container *) clientarg;
 
-    DEBUGMSGTL(("internal:snmpNotifyFilterTable:"
-                "_snmpNotifyFilterTable_container_save_rows",
-                "saving %" NETSNMP_PRIz "u rows\n", CONTAINER_SIZE(c)));
+    DEBUGMSGTL(("internal:snmpNotifyFilterTable:_snmpNotifyFilterTable_container_save_rows", "saving %d rows\n", CONTAINER_SIZE(c)));
 
     read_config_store((char *) type, sep);
     read_config_store((char *) type, buf);
@@ -2122,7 +2081,7 @@ _snmpNotifyFilterTable_container_row_save(snmpNotifyFilterTable_rowreq_ctx
      * be treated a little differently. Specifically, you will need
      * (4 * len) + 4 [3 ASCII chars per byte + 1 for ., + 4 for len].
      *
-     * 3) Also, remember to add space for the identifier and separator
+     * 3) Also, remeber to add space for the identifier and seperator
      * 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
@@ -2250,7 +2209,7 @@ _snmpNotifyFilterTable_container_row_restore(const char *token, char *buf)
      * loop through and get each column
      */
     buf = skip_white(buf);
-    while ((NULL != buf) && isdigit((unsigned char)(*buf))) {
+    while ((NULL != buf) && isdigit(*buf)) {
         /*
          * extract column, skip ':'
          */
@@ -2339,7 +2298,7 @@ _snmpNotifyFilterTable_container_col_save(snmpNotifyFilterTable_rowreq_ctx
     case COLUMN_SNMPNOTIFYFILTERMASK:   /** OCTETSTR = ASN_OCTET_STR */
         buf =
             read_config_save_octet_string(buf,
-                                          (u_char *) rowreq_ctx->data.
+                                          rowreq_ctx->data.
                                           snmpNotifyFilterMask,
                                           rowreq_ctx->data.
                                           snmpNotifyFilterMask_len);
@@ -2433,7 +2392,6 @@ static char    *_snmpNotifyFilterTable_container_col_restore
 }
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_SNMPNOTIFYFILTERTABLE_EXTERNAL_ACCESS
 snmpNotifyFilterTable_rowreq_ctx *
 snmpNotifyFilterTable_row_find_by_mib_index(snmpNotifyFilterTable_mib_index
                                             * mib_idx)
@@ -2456,9 +2414,8 @@ snmpNotifyFilterTable_row_find_by_mib_index(snmpNotifyFilterTable_mib_index
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
+    rowreq_ctx =
         CONTAINER_FIND(snmpNotifyFilterTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNMPNOTIFYFILTERTABLE_EXTERNAL_ACCESS */
diff --git a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.h b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.h
index eb2da8a..c73fce8 100644
--- a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.h
+++ b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: snmpNotifyFilterTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHParameters/usmDHParameters.c b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHParameters/usmDHParameters.c
index d28225d..6cb8c2a 100644
--- a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHParameters/usmDHParameters.c
+++ b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHParameters/usmDHParameters.c
@@ -88,7 +88,7 @@ handle_usmDHParameters(netsnmp_mib_handler *handler,
 
     case MODE_SET_RESERVE2:
         cp = requests->requestvb->val.string;
-        dh_tmpp = d2i_DHparams(NULL, (const unsigned char **) (void *)&cp,
+        dh_tmpp = d2i_DHparams(NULL, (const unsigned char **) &cp,
                                requests->requestvb->val_len);
         if ( !dh_tmpp) {
             netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_WRONGVALUE);
diff --git a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable.c b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable.c
index 5010197..b2e3f20 100644
--- a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable.c
+++ b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: usmDHUserKeyTable.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** \page MFD helper for usmDHUserKeyTable
  *
@@ -26,8 +26,8 @@
 
 #include "usmDHUserKeyTable_interface.h"
 
-const oid       usmDHUserKeyTable_oid[] = { USMDHUSERKEYTABLE_OID };
-const int       usmDHUserKeyTable_oid_size =
+oid             usmDHUserKeyTable_oid[] = { USMDHUSERKEYTABLE_OID };
+int             usmDHUserKeyTable_oid_size =
 OID_LENGTH(usmDHUserKeyTable_oid);
 
 usmDHUserKeyTable_registration usmDHUserKeyTable_user_context;
diff --git a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable.h b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable.h
index b343d78..0548441 100644
--- a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable.h
+++ b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: usmDHUserKeyTable.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 #ifndef USMDHUSERKEYTABLE_H
 #define USMDHUSERKEYTABLE_H
@@ -199,8 +199,8 @@ config_require(snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_
         *usmDHUserKeyTable_row_find_by_mib_index
         (usmDHUserKeyTable_mib_index * mib_idx);
 
-    extern const oid      usmDHUserKeyTable_oid[];
-    extern const int      usmDHUserKeyTable_oid_size;
+    extern oid      usmDHUserKeyTable_oid[];
+    extern int      usmDHUserKeyTable_oid_size;
 
 
 #include "usmDHUserKeyTable_interface.h"
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 a139c9f..6ef7727 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
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: usmDHUserKeyTable_data_access.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /*
  * standard Net-SNMP includes 
@@ -265,7 +265,7 @@ usmDHUserKeyTable_container_load(netsnmp_container * container)
         ++count;
     }
 
-    DEBUGMSGT(("verbose:usmDHUserKeyTable:usmDHUserKeyTable_container_load", "inserted %d records\n", (int)count));
+    DEBUGMSGT(("verbose:usmDHUserKeyTable:usmDHUserKeyTable_container_load", "inserted %d records\n", count));
 
     return MFD_SUCCESS;
 }                               /* usmDHUserKeyTable_container_load */
diff --git a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_access.h b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_access.h
index ad36670..2304523 100644
--- a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_access.h
+++ b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: usmDHUserKeyTable_data_access.h 13774 2005-12-01 21:31:52Z rstory $
  */
 #ifndef USMDHUSERKEYTABLE_DATA_ACCESS_H
 #define USMDHUSERKEYTABLE_DATA_ACCESS_H
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 427d26f..451b2f5 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
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.20 $ of : mfd-data-get.m2c,v $ 
  *
- * $Id$
+ * $Id: usmDHUserKeyTable_data_get.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /*
  * standard Net-SNMP includes 
@@ -18,7 +18,6 @@
  */
 #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)
@@ -58,14 +57,14 @@ usmDHGetUserDHptr(struct usmUser *user, int for_auth_key)
 
 int
 usmDHGetUserKeyChange(struct usmUser *user, int for_auth_key,
-                      u_char **keyobj, size_t *keyobj_len)
+                      char **keyobj, size_t *keyobj_len)
 {
     DH             *dh;
 
     dh = usmDHGetUserDHptr(user, for_auth_key);
 
     if (!dh) {
-        snmp_log(LOG_ERR, "ack...  shouldn't get here: %p %d\n",
+        snmp_log(LOG_ERR, "ack...  shouldn't get here: %x %d\n",
                  user, for_auth_key);
         return MFD_ERROR;
     }
@@ -184,7 +183,7 @@ usmDHUserKeyTable_release_data(usmDHUserKeyTable_data * data)
 int
 usmDHUserKeyTable_indexes_set_tbl_idx(usmDHUserKeyTable_mib_index *
                                       tbl_idx,
-                                      u_char *usmUserEngineID_val_ptr,
+                                      char *usmUserEngineID_val_ptr,
                                       size_t usmUserEngineID_val_ptr_len,
                                       char *usmUserName_val_ptr,
                                       size_t usmUserName_val_ptr_len)
@@ -246,7 +245,7 @@ usmDHUserKeyTable_indexes_set_tbl_idx(usmDHUserKeyTable_mib_index *
  */
 int
 usmDHUserKeyTable_indexes_set(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                              u_char *usmUserEngineID_val_ptr,
+                              char *usmUserEngineID_val_ptr,
                               size_t usmUserEngineID_val_ptr_len,
                               char *usmUserName_val_ptr,
                               size_t usmUserName_val_ptr_len)
@@ -329,7 +328,7 @@ The object used to change any given user's Authentication Key
  */
 int
 usmDHUserAuthKeyChange_get(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                           u_char **usmDHUserAuthKeyChange_val_ptr_ptr,
+                           char **usmDHUserAuthKeyChange_val_ptr_ptr,
                            size_t *usmDHUserAuthKeyChange_val_ptr_len_ptr)
 {
    /** we should have a non-NULL pointer and enough storage */
@@ -412,7 +411,7 @@ The object used to change the agents own Authentication Key
  */
 int
 usmDHUserOwnAuthKeyChange_get(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                              u_char **usmDHUserOwnAuthKeyChange_val_ptr_ptr,
+                              char **usmDHUserOwnAuthKeyChange_val_ptr_ptr,
                               size_t
                               *usmDHUserOwnAuthKeyChange_val_ptr_len_ptr)
 {
@@ -496,7 +495,7 @@ The object used to change any given user's Privacy Key using
  */
 int
 usmDHUserPrivKeyChange_get(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                           u_char **usmDHUserPrivKeyChange_val_ptr_ptr,
+                           char **usmDHUserPrivKeyChange_val_ptr_ptr,
                            size_t *usmDHUserPrivKeyChange_val_ptr_len_ptr)
 {
    /** we should have a non-NULL pointer and enough storage */
@@ -579,7 +578,7 @@ The object used to change the agent's own Privacy Key using a
  */
 int
 usmDHUserOwnPrivKeyChange_get(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                              u_char **usmDHUserOwnPrivKeyChange_val_ptr_ptr,
+                              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 83c028e..bf85bdf 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
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.20 $ of : mfd-data-get.m2c,v $
  *
- * $Id$
+ * $Id: usmDHUserKeyTable_data_get.h 13774 2005-12-01 21:31:52Z rstory $
  *
  * @file usmDHUserKeyTable_data_get.h
  *
@@ -26,8 +26,7 @@ extern          "C" {
 
 #ifdef NEED_USMDH_FUNCTIONS
     int             usmDHGetUserKeyChange(struct usmUser *user,
-                                          int for_auth_key,
-                                          u_char **keyobj,
+                                          int for_auth_key, char **keyobj,
                                           size_t *keyobj_len);
     DH             *usmDHGetUserDHptr(struct usmUser *user,
                                       int for_auth_key);
@@ -55,38 +54,29 @@ extern          "C" {
      */
 
     int             usmDHUserAuthKeyChange_get(usmDHUserKeyTable_rowreq_ctx
-                                               * rowreq_ctx,
-                                               u_char
-                                               **usmDHUserAuthKeyChange_val_ptr_ptr,
-                                               size_t
+                                               * rowreq_ctx, char
+                                               **usmDHUserAuthKeyChange_val_ptr_ptr, size_t
                                                *usmDHUserAuthKeyChange_val_ptr_len_ptr);
     int            
         usmDHUserOwnAuthKeyChange_get(usmDHUserKeyTable_rowreq_ctx *
-                                      rowreq_ctx,
-                                      u_char
-                                      **usmDHUserOwnAuthKeyChange_val_ptr_ptr,
-                                      size_t
+                                      rowreq_ctx, char
+                                      **usmDHUserOwnAuthKeyChange_val_ptr_ptr, size_t
                                       *usmDHUserOwnAuthKeyChange_val_ptr_len_ptr);
     int             usmDHUserPrivKeyChange_get(usmDHUserKeyTable_rowreq_ctx
-                                               * rowreq_ctx,
-                                               u_char
-                                               **usmDHUserPrivKeyChange_val_ptr_ptr,
-                                               size_t
+                                               * rowreq_ctx, char
+                                               **usmDHUserPrivKeyChange_val_ptr_ptr, size_t
                                                *usmDHUserPrivKeyChange_val_ptr_len_ptr);
     int            
         usmDHUserOwnPrivKeyChange_get(usmDHUserKeyTable_rowreq_ctx *
-                                      rowreq_ctx,
-                                      u_char
-                                      **usmDHUserOwnPrivKeyChange_val_ptr_ptr,
-                                      size_t
+                                      rowreq_ctx, char
+                                      **usmDHUserOwnPrivKeyChange_val_ptr_ptr, size_t
                                       *usmDHUserOwnPrivKeyChange_val_ptr_len_ptr);
 
 
     int            
         usmDHUserKeyTable_indexes_set_tbl_idx(usmDHUserKeyTable_mib_index *
-                                              tbl_idx,
-                                              u_char *usmUserEngineID_val_ptr,
-                                              size_t
+                                              tbl_idx, char
+                                              *usmUserEngineID_val_ptr, size_t
                                               usmUserEngineID_val_ptr_len,
                                               char *usmUserName_val_ptr,
                                               size_t
@@ -94,7 +84,7 @@ extern          "C" {
     int            
         usmDHUserKeyTable_indexes_set(usmDHUserKeyTable_rowreq_ctx *
                                       rowreq_ctx,
-                                      u_char *usmUserEngineID_val_ptr,
+                                      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 8536105..1940e19 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
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.19 $ of : mfd-data-set.m2c,v $
  *
- * $Id$
+ * $Id: usmDHUserKeyTable_data_set.c 14169 2006-01-25 16:28:12Z dts12 $
  *
  */
 /*
@@ -22,13 +22,13 @@
 
 int
 usmDHUserCheckValue(struct usmUser *user, int for_auth_key,
-                    u_char *val, size_t val_len)
+                    char *val, size_t val_len)
 {
     /*
      * The set value must be composed of 2 parts, the first being the
      * current value 
      */
-    u_char         *current_value;
+    char           *current_value;
     size_t          current_value_len;
 
     DEBUGMSGTL(("verbose:usmDHUserKeyTable:usmDHUserCheckValue",
@@ -50,11 +50,11 @@ usmDHUserCheckValue(struct usmUser *user, int for_auth_key,
 
 int
 usmDHSetKey(struct usmUser *user, int for_auth_key,
-            u_char *val, size_t val_len)
+            char *val, size_t val_len)
 {
     DH             *dh;
     BIGNUM         *other_pub;
-    u_char         *key;
+    char           *key;
     size_t          key_len;
 
     DEBUGMSGTL(("verbose:usmDHUserKeyTable:usmDHSetKey", "called\n"));
@@ -336,6 +336,7 @@ int
 usmDHUserKeyTable_commit(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx)
 {
     int             rc = MFD_SUCCESS;
+    int             save_flags;
 
     DEBUGMSGTL(("verbose:usmDHUserKeyTable:usmDHUserKeyTable_commit",
                 "called\n"));
@@ -527,7 +528,7 @@ The object used to change any given user's Authentication Key
 int
 usmDHUserAuthKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx *
                                    rowreq_ctx,
-                                   u_char *usmDHUserAuthKeyChange_val_ptr,
+                                   char *usmDHUserAuthKeyChange_val_ptr,
                                    size_t
                                    usmDHUserAuthKeyChange_val_ptr_len)
 {
@@ -604,7 +605,7 @@ usmDHUserAuthKeyChange_undo_setup(usmDHUserKeyTable_rowreq_ctx *
  */
 int
 usmDHUserAuthKeyChange_set(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                           u_char *usmDHUserAuthKeyChange_val_ptr,
+                           char *usmDHUserAuthKeyChange_val_ptr,
                            size_t usmDHUserAuthKeyChange_val_ptr_len)
 {
 
@@ -727,9 +728,8 @@ The object used to change the agents own Authentication Key
  */
 int
 usmDHUserOwnAuthKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx *
-                                      rowreq_ctx,
-                                      u_char *usmDHUserOwnAuthKeyChange_val_ptr,
-                                      size_t
+                                      rowreq_ctx, char
+                                      *usmDHUserOwnAuthKeyChange_val_ptr, size_t
                                       usmDHUserOwnAuthKeyChange_val_ptr_len)
 {
     DEBUGMSGTL(("verbose:usmDHUserKeyTable:usmDHUserOwnAuthKeyChange_check_value", "called\n"));
@@ -798,7 +798,7 @@ usmDHUserOwnAuthKeyChange_undo_setup(usmDHUserKeyTable_rowreq_ctx *
  */
 int
 usmDHUserOwnAuthKeyChange_set(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                              u_char *usmDHUserOwnAuthKeyChange_val_ptr,
+                              char *usmDHUserOwnAuthKeyChange_val_ptr,
                               size_t usmDHUserOwnAuthKeyChange_val_ptr_len)
 {
 
@@ -912,7 +912,7 @@ The object used to change any given user's Privacy Key using
 int
 usmDHUserPrivKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx *
                                    rowreq_ctx,
-                                   u_char *usmDHUserPrivKeyChange_val_ptr,
+                                   char *usmDHUserPrivKeyChange_val_ptr,
                                    size_t
                                    usmDHUserPrivKeyChange_val_ptr_len)
 {
@@ -989,7 +989,7 @@ usmDHUserPrivKeyChange_undo_setup(usmDHUserKeyTable_rowreq_ctx *
  */
 int
 usmDHUserPrivKeyChange_set(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                           u_char *usmDHUserPrivKeyChange_val_ptr,
+                           char *usmDHUserPrivKeyChange_val_ptr,
                            size_t usmDHUserPrivKeyChange_val_ptr_len)
 {
 
@@ -1113,9 +1113,8 @@ The object used to change the agent's own Privacy Key using a
  */
 int
 usmDHUserOwnPrivKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx *
-                                      rowreq_ctx,
-                                      u_char *usmDHUserOwnPrivKeyChange_val_ptr,
-                                      size_t
+                                      rowreq_ctx, char
+                                      *usmDHUserOwnPrivKeyChange_val_ptr, size_t
                                       usmDHUserOwnPrivKeyChange_val_ptr_len)
 {
     DEBUGMSGTL(("verbose:usmDHUserKeyTable:usmDHUserOwnPrivKeyChange_check_value", "called\n"));
@@ -1184,7 +1183,7 @@ usmDHUserOwnPrivKeyChange_undo_setup(usmDHUserKeyTable_rowreq_ctx *
  */
 int
 usmDHUserOwnPrivKeyChange_set(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                              u_char *usmDHUserOwnPrivKeyChange_val_ptr,
+                              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 e7c7059..5ca48bb 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
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.19 $ of : mfd-data-set.m2c,v $ 
  *
- * $Id$
+ * $Id: usmDHUserKeyTable_data_set.h 13774 2005-12-01 21:31:52Z rstory $
  */
 #ifndef USMDHUSERKEYTABLE_DATA_SET_H
 #define USMDHUSERKEYTABLE_DATA_SET_H
@@ -54,19 +54,15 @@ extern          "C" {
 
     int            
         usmDHUserAuthKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx *
-                                           rowreq_ctx,
-                                           u_char
-                                           *usmDHUserAuthKeyChange_val_ptr,
-                                           size_t
+                                           rowreq_ctx, 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,
-                                               u_char
-                                               *usmDHUserAuthKeyChange_val_ptr,
-                                               size_t
+                                               * rowreq_ctx, char
+                                               *usmDHUserAuthKeyChange_val_ptr, size_t
                                                usmDHUserAuthKeyChange_val_ptr_len);
     int            
         usmDHUserAuthKeyChange_undo(usmDHUserKeyTable_rowreq_ctx *
@@ -74,20 +70,16 @@ extern          "C" {
 
     int            
         usmDHUserOwnAuthKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx
-                                              * rowreq_ctx,
-                                              u_char
-                                              *usmDHUserOwnAuthKeyChange_val_ptr,
-                                              size_t
+                                              * rowreq_ctx, 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,
-                                      u_char
-                                      *usmDHUserOwnAuthKeyChange_val_ptr,
-                                      size_t
+                                      rowreq_ctx, char
+                                      *usmDHUserOwnAuthKeyChange_val_ptr, size_t
                                       usmDHUserOwnAuthKeyChange_val_ptr_len);
     int            
         usmDHUserOwnAuthKeyChange_undo(usmDHUserKeyTable_rowreq_ctx *
@@ -95,19 +87,15 @@ extern          "C" {
 
     int            
         usmDHUserPrivKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx *
-                                           rowreq_ctx,
-                                           u_char
-                                           *usmDHUserPrivKeyChange_val_ptr,
-                                           size_t
+                                           rowreq_ctx, 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,
-                                               u_char
-                                               *usmDHUserPrivKeyChange_val_ptr,
-                                               size_t
+                                               * rowreq_ctx, char
+                                               *usmDHUserPrivKeyChange_val_ptr, size_t
                                                usmDHUserPrivKeyChange_val_ptr_len);
     int            
         usmDHUserPrivKeyChange_undo(usmDHUserKeyTable_rowreq_ctx *
@@ -115,20 +103,16 @@ extern          "C" {
 
     int            
         usmDHUserOwnPrivKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx
-                                              * rowreq_ctx,
-                                              u_char
-                                              *usmDHUserOwnPrivKeyChange_val_ptr,
-                                              size_t
+                                              * rowreq_ctx, 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,
-                                      u_char
-                                      *usmDHUserOwnPrivKeyChange_val_ptr,
-                                      size_t
+                                      rowreq_ctx, 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_enums.h b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_enums.h
index 0719a6d..8c2c6d5 100644
--- a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_enums.h
+++ b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_enums.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-enums.m2c,v 1.4 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: usmDHUserKeyTable_enums.h 13774 2005-12-01 21:31:52Z rstory $
  */
 #ifndef USMDHUSERKEYTABLE_ENUMS_H
 #define USMDHUSERKEYTABLE_ENUMS_H
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 04231f9..75e0e85 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
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: usmDHUserKeyTable_interface.c 15015 2006-08-17 15:06:43Z rstory $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -47,10 +46,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(check_all_requests_error)
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -137,7 +132,6 @@ static Netsnmp_Node_Handler _mfd_usmDHUserKeyTable_pre_request;
 static Netsnmp_Node_Handler _mfd_usmDHUserKeyTable_post_request;
 static Netsnmp_Node_Handler _mfd_usmDHUserKeyTable_object_lookup;
 static Netsnmp_Node_Handler _mfd_usmDHUserKeyTable_get_values;
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
 static Netsnmp_Node_Handler _mfd_usmDHUserKeyTable_check_objects;
 static Netsnmp_Node_Handler _mfd_usmDHUserKeyTable_undo_setup;
 static Netsnmp_Node_Handler _mfd_usmDHUserKeyTable_set_values;
@@ -152,7 +146,6 @@ NETSNMP_STATIC_INLINE int
 _usmDHUserKeyTable_undo_column(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
                                                netsnmp_variable_list * var,
                                                int column);
-#endif
 
 /**
  * @internal
@@ -189,7 +182,7 @@ _usmDHUserKeyTable_initialize_interface(usmDHUserKeyTable_registration *
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = USMDHUSERKEYTABLE_MIN_COL;
     tbl_info->max_column = USMDHUSERKEYTABLE_MAX_COL;
@@ -228,7 +221,6 @@ _usmDHUserKeyTable_initialize_interface(usmDHUserKeyTable_registration *
     access_multiplexer->post_request = _mfd_usmDHUserKeyTable_post_request;
 
 
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
     /*
      * REQUIRED wrappers for set request handling
      */
@@ -252,7 +244,6 @@ _usmDHUserKeyTable_initialize_interface(usmDHUserKeyTable_registration *
      */
     access_multiplexer->consistency_checks =
         _mfd_usmDHUserKeyTable_check_dependencies;
-#endif
 
     /*************************************************
      *
@@ -266,11 +257,8 @@ _usmDHUserKeyTable_initialize_interface(usmDHUserKeyTable_registration *
         netsnmp_handler_registration_create("usmDHUserKeyTable", handler,
                                             usmDHUserKeyTable_oid,
                                             usmDHUserKeyTable_oid_size,
-                                            HANDLER_CAN_BABY_STEP
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
-                                          | HANDLER_CAN_RWRITE
-#endif
-                                          );
+                                            HANDLER_CAN_BABY_STEP |
+                                            HANDLER_CAN_RWRITE);
     if (NULL == reginfo) {
         snmp_log(LOG_ERR, "error registering table usmDHUserKeyTable\n");
         return;
@@ -283,12 +271,6 @@ _usmDHUserKeyTable_initialize_interface(usmDHUserKeyTable_registration *
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -296,6 +278,11 @@ _usmDHUserKeyTable_initialize_interface(usmDHUserKeyTable_registration *
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -311,7 +298,6 @@ _usmDHUserKeyTable_initialize_interface(usmDHUserKeyTable_registration *
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -769,7 +755,7 @@ _usmDHUserKeyTable_get_column(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
     case COLUMN_USMDHUSERAUTHKEYCHANGE:
         var->type = ASN_OCTET_STR;
         rc = usmDHUserAuthKeyChange_get(rowreq_ctx,
-                                        &var->val.string,
+                                        (char **) &var->val.string,
                                         &var->val_len);
         break;
 
@@ -779,7 +765,7 @@ _usmDHUserKeyTable_get_column(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
     case COLUMN_USMDHUSEROWNAUTHKEYCHANGE:
         var->type = ASN_OCTET_STR;
         rc = usmDHUserOwnAuthKeyChange_get(rowreq_ctx,
-                                           &var->val.string,
+                                           (char **) &var->val.string,
                                            &var->val_len);
         break;
 
@@ -789,7 +775,7 @@ _usmDHUserKeyTable_get_column(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
     case COLUMN_USMDHUSERPRIVKEYCHANGE:
         var->type = ASN_OCTET_STR;
         rc = usmDHUserPrivKeyChange_get(rowreq_ctx,
-                                        &var->val.string,
+                                        (char **) &var->val.string,
                                         &var->val_len);
         break;
 
@@ -799,7 +785,7 @@ _usmDHUserKeyTable_get_column(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
     case COLUMN_USMDHUSEROWNPRIVKEYCHANGE:
         var->type = ASN_OCTET_STR;
         rc = usmDHUserOwnPrivKeyChange_get(rowreq_ctx,
-                                           &var->val.string,
+                                           (char **) &var->val.string,
                                            &var->val_len);
         break;
 
@@ -887,7 +873,6 @@ _mfd_usmDHUserKeyTable_get_values(netsnmp_mib_handler *handler,
 }                               /* _mfd_usmDHUserKeyTable_get_values */
 
 
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
 /***********************************************************************
  *
  * SET processing
@@ -924,7 +909,7 @@ _usmDHUserKeyTable_check_column(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
             DEBUGMSGTL(("usmDHUserKeyTable:_usmDHUserKeyTable_check_column:usmDHUserAuthKeyChange", "varbind validation failed (eg bad type or size)\n"));
         } else {
             rc = usmDHUserAuthKeyChange_check_value(rowreq_ctx,
-                                                    var->val.
+                                                    (char *) var->val.
                                                     string, var->val_len);
             if ((MFD_SUCCESS != rc) && (MFD_NOT_VALID_EVER != rc)
                 && (MFD_NOT_VALID_NOW != rc)) {
@@ -945,7 +930,7 @@ _usmDHUserKeyTable_check_column(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
             DEBUGMSGTL(("usmDHUserKeyTable:_usmDHUserKeyTable_check_column:usmDHUserOwnAuthKeyChange", "varbind validation failed (eg bad type or size)\n"));
         } else {
             rc = usmDHUserOwnAuthKeyChange_check_value(rowreq_ctx,
-                                                       var->val.
+                                                       (char *) var->val.
                                                        string,
                                                        var->val_len);
             if ((MFD_SUCCESS != rc) && (MFD_NOT_VALID_EVER != rc)
@@ -967,7 +952,7 @@ _usmDHUserKeyTable_check_column(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
             DEBUGMSGTL(("usmDHUserKeyTable:_usmDHUserKeyTable_check_column:usmDHUserPrivKeyChange", "varbind validation failed (eg bad type or size)\n"));
         } else {
             rc = usmDHUserPrivKeyChange_check_value(rowreq_ctx,
-                                                    var->val.
+                                                    (char *) var->val.
                                                     string, var->val_len);
             if ((MFD_SUCCESS != rc) && (MFD_NOT_VALID_EVER != rc)
                 && (MFD_NOT_VALID_NOW != rc)) {
@@ -988,7 +973,7 @@ _usmDHUserKeyTable_check_column(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
             DEBUGMSGTL(("usmDHUserKeyTable:_usmDHUserKeyTable_check_column:usmDHUserOwnPrivKeyChange", "varbind validation failed (eg bad type or size)\n"));
         } else {
             rc = usmDHUserOwnPrivKeyChange_check_value(rowreq_ctx,
-                                                       var->val.
+                                                       (char *) var->val.
                                                        string,
                                                        var->val_len);
             if ((MFD_SUCCESS != rc) && (MFD_NOT_VALID_EVER != rc)
@@ -1288,7 +1273,7 @@ _usmDHUserKeyTable_set_column(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
     case COLUMN_USMDHUSERAUTHKEYCHANGE:
         rowreq_ctx->column_set_flags |= COLUMN_USMDHUSERAUTHKEYCHANGE_FLAG;
         rc = usmDHUserAuthKeyChange_set(rowreq_ctx,
-                                        var->val.string,
+                                        (char *) var->val.string,
                                         var->val_len);
         break;
 
@@ -1299,7 +1284,7 @@ _usmDHUserKeyTable_set_column(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
         rowreq_ctx->column_set_flags |=
             COLUMN_USMDHUSEROWNAUTHKEYCHANGE_FLAG;
         rc = usmDHUserOwnAuthKeyChange_set(rowreq_ctx,
-                                           var->val.string,
+                                           (char *) var->val.string,
                                            var->val_len);
         break;
 
@@ -1309,7 +1294,7 @@ _usmDHUserKeyTable_set_column(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
     case COLUMN_USMDHUSERPRIVKEYCHANGE:
         rowreq_ctx->column_set_flags |= COLUMN_USMDHUSERPRIVKEYCHANGE_FLAG;
         rc = usmDHUserPrivKeyChange_set(rowreq_ctx,
-                                        var->val.string,
+                                        (char *) var->val.string,
                                         var->val_len);
         break;
 
@@ -1320,7 +1305,7 @@ _usmDHUserKeyTable_set_column(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
         rowreq_ctx->column_set_flags |=
             COLUMN_USMDHUSEROWNPRIVKEYCHANGE_FLAG;
         rc = usmDHUserOwnPrivKeyChange_set(rowreq_ctx,
-                                           var->val.string,
+                                           (char *) var->val.string,
                                            var->val_len);
         break;
 
@@ -1607,7 +1592,6 @@ _mfd_usmDHUserKeyTable_irreversible_commit(netsnmp_mib_handler *handler, netsnmp
 
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_usmDHUserKeyTable_irreversible_commit */
-#endif
 
 /***********************************************************************
  *
diff --git a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.h b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.h
index d544234..e55bce1 100644
--- a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.h
+++ b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: usmDHUserKeyTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_oids.h b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_oids.h
index 31ec527..48f351f 100644
--- a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_oids.h
+++ b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_oids.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-oids.m2c,v 1.14 2005/09/27 15:56:08 rstory Exp $
  *
- * $Id$
+ * $Id: usmDHUserKeyTable_oids.h 13774 2005-12-01 21:31:52Z rstory $
  */
 #ifndef USMDHUSERKEYTABLE_OIDS_H
 #define USMDHUSERKEYTABLE_OIDS_H
diff --git a/agent/mibgroup/snmpv3/snmpEngine.c b/agent/mibgroup/snmpv3/snmpEngine.c
index e756788..4ca2987 100644
--- a/agent/mibgroup/snmpv3/snmpEngine.c
+++ b/agent/mibgroup/snmpv3/snmpEngine.c
@@ -3,41 +3,28 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.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>
 
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
+#include "mibII/sysORTable.h"
 #include "snmpEngine.h"
 
-netsnmp_feature_child_of(snmpengine_all, libnetsnmpmibs)
-
-netsnmp_feature_child_of(register_snmpEngine_scalars_context, snmpengine_all)
-
 struct variable2 snmpEngine_variables[] = {
-    {SNMPENGINEID, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_snmpEngine, 1, {1}},
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
+    {SNMPENGINEID, ASN_OCTET_STR, RONLY, var_snmpEngine, 1, {1}},
 #ifdef NETSNMP_ENABLE_TESTING_CODE
-    {SNMPENGINEBOOTS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_snmpEngine, 1, {2}},
-    {SNMPENGINETIME, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_snmpEngine, 1, {3}},
+    {SNMPENGINEBOOTS, ASN_INTEGER, RWRITE, var_snmpEngine, 1, {2}},
+    {SNMPENGINETIME, ASN_INTEGER, RWRITE, var_snmpEngine, 1, {3}},
 #else                           /* !NETSNMP_ENABLE_TESTING_CODE */
-    {SNMPENGINEBOOTS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_snmpEngine, 1, {2}},
-    {SNMPENGINETIME, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_snmpEngine, 1, {3}},
+    {SNMPENGINEBOOTS, ASN_INTEGER, RONLY, var_snmpEngine, 1, {2}},
+    {SNMPENGINETIME, ASN_INTEGER, RONLY, var_snmpEngine, 1, {3}},
 #endif                          /* NETSNMP_ENABLE_TESTING_CODE */
-#else  /* !NETSNMP_NO_WRITE_SUPPORT */ 
-    {SNMPENGINEBOOTS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_snmpEngine, 1, {2}},
-    {SNMPENGINETIME, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_snmpEngine, 1, {3}},
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
-    {SNMPENGINEMAXMESSAGESIZE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_snmpEngine, 1, {4}},
+    {SNMPENGINEMAXMESSAGESIZE, ASN_INTEGER, RONLY, var_snmpEngine, 1, {4}},
 };
 
 /*
@@ -53,7 +40,6 @@ register_snmpEngine_scalars(void)
                  snmpEngine_variables_oid);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_REGISTER_SNMPENGINE_SCALARS_CONTEXT
 void
 register_snmpEngine_scalars_context(const char *contextName)
 {
@@ -66,24 +52,25 @@ register_snmpEngine_scalars_context(const char *contextName)
                          DEFAULT_MIB_PRIORITY, 0, 0, NULL,
                          contextName, -1, 0);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REGISTER_SNMPENGINE_SCALARS_CONTEXT */
 
 void
 init_snmpEngine(void)
 {
-    oid      reg[] = { 1, 3, 6, 1, 6, 3, 10, 3, 1, 1 };
-    REGISTER_SYSOR_ENTRY(reg, "The SNMP Management Architecture MIB.");
+#ifdef USING_MIBII_SYSORTABLE_MODULE
+    static oid      reg[] = { 1, 3, 6, 1, 6, 3, 10, 3, 1, 1 };
+    register_sysORTable(reg, 10, "The SNMP Management Architecture MIB.");
+#endif
     register_snmpEngine_scalars();
 }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
+extern struct timeval starttime;
+
 #ifdef NETSNMP_ENABLE_TESTING_CODE
 int             write_engineBoots(int, u_char *, u_char, size_t, u_char *,
                                   oid *, size_t);
 int             write_engineTime(int, u_char *, u_char, size_t, u_char *,
                                  oid *, size_t);
 #endif                          /* NETSNMP_ENABLE_TESTING_CODE */
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 u_char         *
 var_snmpEngine(struct variable *vp,
@@ -98,11 +85,11 @@ var_snmpEngine(struct variable *vp,
     static long     long_ret;
     static unsigned char engineID[SNMP_MAXBUF];
 
-    *write_method = (WriteMethod*)0;    /* assume it isnt writable for the time being */
+    *write_method = 0;          /* assume it isnt writable for the time being */
     *var_len = sizeof(long_ret);        /* assume an integer and change later if not */
 
     if (header_generic(vp, name, length, exact, var_len, write_method))
-        return NULL;
+        return 0;
 
     /*
      * this is where we do the value assignments for the mib results. 
@@ -117,20 +104,16 @@ var_snmpEngine(struct variable *vp,
         return (unsigned char *) engineID;
 
     case SNMPENGINEBOOTS:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 #ifdef NETSNMP_ENABLE_TESTING_CODE
         *write_method = write_engineBoots;
 #endif                          /* NETSNMP_ENABLE_TESTING_CODE */
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         long_ret = snmpv3_local_snmpEngineBoots();
         return (unsigned char *) &long_ret;
 
     case SNMPENGINETIME:
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 #ifdef NETSNMP_ENABLE_TESTING_CODE
         *write_method = write_engineTime;
 #endif                          /* NETSNMP_ENABLE_TESTING_CODE */
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         long_ret = snmpv3_local_snmpEngineTime();
         return (unsigned char *) &long_ret;
 
@@ -142,11 +125,9 @@ var_snmpEngine(struct variable *vp,
         DEBUGMSGTL(("snmpd", "unknown sub-id %d in var_snmpEngine\n",
                     vp->magic));
     }
-    return NULL;
+    return 0;
 }
 
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 #ifdef NETSNMP_ENABLE_TESTING_CODE
 /*
  * write_engineBoots():
@@ -243,4 +224,3 @@ write_engineTime(int action,
 }
 
 #endif                          /* NETSNMP_ENABLE_TESTING_CODE */
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
diff --git a/agent/mibgroup/snmpv3/snmpEngine.h b/agent/mibgroup/snmpv3/snmpEngine.h
index b62a220..343eeaa 100644
--- a/agent/mibgroup/snmpv3/snmpEngine.h
+++ b/agent/mibgroup/snmpv3/snmpEngine.h
@@ -10,10 +10,10 @@
 #define _MIBGROUP_SNMPENGINE_H
 
 /*
- * we use header_generic from the util_funcs module
+ * we use header_generic and checkmib from the util_funcs module 
  */
 
-config_require(util_funcs/header_generic)
+config_require(util_funcs)
 config_add_mib(SNMP-FRAMEWORK-MIB)
 
     /*
diff --git a/agent/mibgroup/snmpv3/snmpMPDStats.c b/agent/mibgroup/snmpv3/snmpMPDStats.c
index ae792df..c7efbc8 100644
--- a/agent/mibgroup/snmpv3/snmpMPDStats.c
+++ b/agent/mibgroup/snmpv3/snmpMPDStats.c
@@ -3,21 +3,24 @@
  */
 
 #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>
 
+#include "mibII/sysORTable.h"
 #include "snmpMPDStats.h"
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 
 
 struct variable2 snmpMPDStats_variables[] = {
-    {SNMPUNKNOWNSECURITYMODELS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_snmpMPDStats, 1, {1}},
-    {SNMPINVALIDMSGS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_snmpMPDStats, 1, {2}},
-    {SNMPUNKNOWNPDUHANDLERS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_snmpMPDStats, 1, {3}},
+    {SNMPUNKNOWNSECURITYMODELS, ASN_COUNTER, RONLY, var_snmpMPDStats, 1,
+     {1}},
+    {SNMPINVALIDMSGS, ASN_COUNTER, RONLY, var_snmpMPDStats, 1, {2}},
+    {SNMPUNKNOWNPDUHANDLERS, ASN_COUNTER, RONLY, var_snmpMPDStats, 1, {3}},
 };
 
 /*
@@ -29,9 +32,12 @@ oid             snmpMPDStats_variables_oid[] =
 void
 init_snmpMPDStats(void)
 {
+#ifdef USING_MIBII_SYSORTABLE_MODULE
     static oid      reg[] = { 1, 3, 6, 1, 6, 3, 11, 3, 1, 1 };
-    REGISTER_SYSOR_ENTRY(reg,
-                         "The MIB for Message Processing and Dispatching.");
+    register_sysORTable(reg, 10,
+                        "The MIB for Message Processing and Dispatching.");
+#endif
+
     REGISTER_MIB("snmpv3/snmpMPDStats", snmpMPDStats_variables, variable2,
                  snmpMPDStats_variables_oid);
 }
diff --git a/agent/mibgroup/snmpv3/snmpMPDStats.h b/agent/mibgroup/snmpv3/snmpMPDStats.h
index 41eab1d..d17c371 100644
--- a/agent/mibgroup/snmpv3/snmpMPDStats.h
+++ b/agent/mibgroup/snmpv3/snmpMPDStats.h
@@ -8,11 +8,10 @@
 #define _MIBGROUP_SNMPMPDSTATS_H
 
 /*
- * we use header_generic from the util_funcs module 
+ * we use header_generic and checkmib from the util_funcs module 
  */
 
-config_require(util_funcs/header_generic)
-config_exclude(snmpv3/snmpMPDStats_5_5)
+config_require(util_funcs)
 config_add_mib(SNMP-MPD-MIB)
 
     /*
diff --git a/agent/mibgroup/snmpv3/snmpMPDStats_5_5.c b/agent/mibgroup/snmpv3/snmpMPDStats_5_5.c
deleted file mode 100644
index a7fc2ce..0000000
--- a/agent/mibgroup/snmpv3/snmpMPDStats_5_5.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * snmpMPDStats.c: tallies errors for SNMPv3 message processing.
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#include <net-snmp/net-snmp-features.h>
-
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include <net-snmp/agent/sysORTable.h>
-
-#include "snmpMPDStats_5_5.h"
-
-#include <net-snmp/agent/snmp_get_statistic.h>
-
-#define snmpMPDMIB 1, 3, 6, 1, 6, 3, 11
-#define snmpMPDMIBObjects snmpMPDMIB, 2
-#define snmpMPDMIBCompliances snmpMPDMIB, 3, 1
-
-netsnmp_feature_require(helper_statistics)
-
-static oid snmpMPDStats[] = { snmpMPDMIBObjects, 1 };
-
-static netsnmp_handler_registration* snmpMPDStats_reg = NULL;
-static oid snmpMPDCompliance[] = { snmpMPDMIBCompliances, 1 };
-
-void
-init_snmpMPDStats_5_5(void)
-{
-    netsnmp_handler_registration* s =
-        netsnmp_create_handler_registration(
-            "snmpMPDStats", NULL, snmpMPDStats, OID_LENGTH(snmpMPDStats),
-            HANDLER_CAN_RONLY);
-    if (s &&
-	NETSNMP_REGISTER_STATISTIC_HANDLER(s, 1, MPD) == MIB_REGISTERED_OK) {
-        REGISTER_SYSOR_ENTRY(snmpMPDCompliance,
-                             "The MIB for Message Processing and Dispatching.");
-        snmpMPDStats_reg = s;
-    }
-}
-
-void
-shutdown_snmpMPDStats_5_5(void)
-{
-    UNREGISTER_SYSOR_ENTRY(snmpMPDCompliance);
-    if (snmpMPDStats_reg) {
-        netsnmp_unregister_handler(snmpMPDStats_reg);
-        snmpMPDStats_reg = NULL;
-    }
-}
diff --git a/agent/mibgroup/snmpv3/snmpMPDStats_5_5.h b/agent/mibgroup/snmpv3/snmpMPDStats_5_5.h
deleted file mode 100644
index 78f3dff..0000000
--- a/agent/mibgroup/snmpv3/snmpMPDStats_5_5.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _MIBGROUP_SNMPMPDSTATS_H
-#define _MIBGROUP_SNMPMPDSTATS_H
-
-config_exclude(snmpv3/snmpMPDStats)
-config_add_mib(SNMP-MPD-MIB)
-
-void init_snmpMPDStats_5_5(void);
-void shutdown_snmpMPDStats_5_5(void);
-
-#endif /* _MIBGROUP_SNMPMPDSTATS_H */
diff --git a/agent/mibgroup/snmpv3/usmStats.c b/agent/mibgroup/snmpv3/usmStats.c
index 718e071..d81e127 100644
--- a/agent/mibgroup/snmpv3/usmStats.c
+++ b/agent/mibgroup/snmpv3/usmStats.c
@@ -4,26 +4,26 @@
  */
 
 #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>
 
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
+#include "mibII/sysORTable.h"
 #include "usmStats.h"
 
 struct variable2 usmStats_variables[] = {
-    {USMSTATSUNSUPPORTEDSECLEVELS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_usmStats, 1, {1}},
-    {USMSTATSNOTINTIMEWINDOWS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_usmStats, 1, {2}},
-    {USMSTATSUNKNOWNUSERNAMES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_usmStats, 1, {3}},
-    {USMSTATSUNKNOWNENGINEIDS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_usmStats, 1, {4}},
-    {USMSTATSWRONGDIGESTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_usmStats, 1, {5}},
-    {USMSTATSDECRYPTIONERRORS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-     var_usmStats, 1, {6}},
+    {USMSTATSUNSUPPORTEDSECLEVELS, ASN_COUNTER, RONLY, var_usmStats, 1,
+     {1}},
+    {USMSTATSNOTINTIMEWINDOWS, ASN_COUNTER, RONLY, var_usmStats, 1, {2}},
+    {USMSTATSUNKNOWNUSERNAMES, ASN_COUNTER, RONLY, var_usmStats, 1, {3}},
+    {USMSTATSUNKNOWNENGINEIDS, ASN_COUNTER, RONLY, var_usmStats, 1, {4}},
+    {USMSTATSWRONGDIGESTS, ASN_COUNTER, RONLY, var_usmStats, 1, {5}},
+    {USMSTATSDECRYPTIONERRORS, ASN_COUNTER, RONLY, var_usmStats, 1, {6}},
 };
 
 /*
@@ -35,10 +35,12 @@ oid             usmStats_variables_oid[] = { 1, 3, 6, 1, 6, 3, 15, 1, 1 };
 void
 init_usmStats(void)
 {
+#ifdef USING_MIBII_SYSORTABLE_MODULE
     static oid      reg[] = { 1, 3, 6, 1, 6, 3, 15, 2, 1, 1 };
-    REGISTER_SYSOR_ENTRY(reg,
-                         "The management information definitions for the "
-                         "SNMP User-based Security Model.");
+    register_sysORTable(reg, 10,
+                        "The management information definitions for the SNMP User-based Security Model.");
+#endif
+
     REGISTER_MIB("snmpv3/usmStats", usmStats_variables, variable2,
                  usmStats_variables_oid);
 }
@@ -71,6 +73,5 @@ var_usmStats(struct variable *vp,
         long_ret = snmp_get_statistic(tmagic + STAT_USM_STATS_START);
         return (unsigned char *) &long_ret;
     }
-
     return 0;
 }
diff --git a/agent/mibgroup/snmpv3/usmStats.h b/agent/mibgroup/snmpv3/usmStats.h
index 5685381..7188e1a 100644
--- a/agent/mibgroup/snmpv3/usmStats.h
+++ b/agent/mibgroup/snmpv3/usmStats.h
@@ -9,11 +9,10 @@
 #define _MIBGROUP_USMSTATS_H
 
 /*
- * we use header_generic from the util_funcs module 
+ * we use header_generic and checkmib from the util_funcs module 
  */
 
-config_require(util_funcs/header_generic)
-config_exclude(snmpv3/usmStats_5_5)
+config_require(util_funcs)
 config_add_mib(SNMP-USER-BASED-SM-MIB)
 
     /*
diff --git a/agent/mibgroup/snmpv3/usmStats_5_5.c b/agent/mibgroup/snmpv3/usmStats_5_5.c
deleted file mode 100644
index bcd04e1..0000000
--- a/agent/mibgroup/snmpv3/usmStats_5_5.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * usmStats.c: implements the usmStats portion of the SNMP-USER-BASED-SM-MIB
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#include <net-snmp/net-snmp-features.h>
-
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include <net-snmp/agent/sysORTable.h>
-
-#include "usmStats_5_5.h"
-
-#include <net-snmp/agent/snmp_get_statistic.h>
-
-#define snmpUsmMIB 1, 3, 6, 1, 6, 3, 15
-#define usmMIBCompliances snmpUsmMIB, 2, 1
-
-static oid usmStats[] = { snmpUsmMIB, 1, 1 };
-
-static netsnmp_handler_registration* usmStats_reg = NULL;
-static oid usmMIBCompliance[] = { usmMIBCompliances, 1 };
-
-netsnmp_feature_require(helper_statistics)
-
-void
-init_usmStats_5_5(void)
-{
-    netsnmp_handler_registration* s =
-        netsnmp_create_handler_registration(
-            "usmStats", NULL, usmStats, OID_LENGTH(usmStats),
-            HANDLER_CAN_RONLY);
-    if (s &&
-	NETSNMP_REGISTER_STATISTIC_HANDLER(s, 1, USM) == MIB_REGISTERED_OK) {
-        REGISTER_SYSOR_ENTRY(usmMIBCompliance,
-                             "The management information definitions for the "
-                             "SNMP User-based Security Model.");
-        usmStats_reg = s;
-    }
-}
-
-void
-shutdown_usmStats_5_5(void)
-{
-    UNREGISTER_SYSOR_ENTRY(usmMIBCompliance);
-    if (usmStats_reg) {
-        netsnmp_unregister_handler(usmStats_reg);
-        usmStats_reg = NULL;
-    }
-}
diff --git a/agent/mibgroup/snmpv3/usmStats_5_5.h b/agent/mibgroup/snmpv3/usmStats_5_5.h
deleted file mode 100644
index d30719e..0000000
--- a/agent/mibgroup/snmpv3/usmStats_5_5.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _MIBGROUP_USMSTATS_H
-#define _MIBGROUP_USMSTATS_H
-
-config_exclude(snmpv3/usmStats)
-config_add_mib(SNMP-USER-BASED-SM-MIB)
-
-void init_usmStats_5_5(void);
-void shutdown_usmStats_5_5(void);
-
-#endif /* _MIBGROUP_USMSTATS_H */
diff --git a/agent/mibgroup/snmpv3/usmUser.c b/agent/mibgroup/snmpv3/usmUser.c
index 41c525a..c09e44d 100644
--- a/agent/mibgroup/snmpv3/usmUser.c
+++ b/agent/mibgroup/snmpv3/usmUser.c
@@ -3,7 +3,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <stdlib.h>
 
 #if HAVE_STRING_H
@@ -12,44 +11,37 @@
 #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>
 
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 #include "usmUser.h"
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
 int usmStatusCheck(struct usmUser *uptr);
-#endif  /* !NETSNMP_NO_WRITE_SUPPORT */
-
-netsnmp_feature_child_of(usmuser_all, libnetsnmpmibs)
-netsnmp_feature_child_of(init_register_usmuser_context, usmuser_all)
 
 struct variable4 usmUser_variables[] = {
-    {USMUSERSPINLOCK, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_usmUser, 1, {1}},
-    {USMUSERSECURITYNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_usmUser, 3, {2, 1, 3}},
-    {USMUSERCLONEFROM, ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
-     var_usmUser, 3, {2, 1, 4}},
-    {USMUSERAUTHPROTOCOL, ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
-     var_usmUser, 3, {2, 1, 5}},
-    {USMUSERAUTHKEYCHANGE, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_usmUser, 3, {2, 1, 6}},
-    {USMUSEROWNAUTHKEYCHANGE, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_usmUser, 3, {2, 1, 7}},
-    {USMUSERPRIVPROTOCOL, ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
-     var_usmUser, 3, {2, 1, 8}},
-    {USMUSERPRIVKEYCHANGE, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_usmUser, 3, {2, 1, 9}},
-    {USMUSEROWNPRIVKEYCHANGE, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_usmUser, 3, {2, 1, 10}},
-    {USMUSERPUBLIC, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_usmUser, 3, {2, 1, 11}},
-    {USMUSERSTORAGETYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_usmUser, 3, {2, 1, 12}},
-    {USMUSERSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_usmUser, 3, {2, 1, 13}},
+    {USMUSERSPINLOCK, ASN_INTEGER, RWRITE, var_usmUser, 1, {1}},
+    {USMUSERSECURITYNAME, ASN_OCTET_STR, RONLY, var_usmUser, 3, {2, 1, 3}},
+    {USMUSERCLONEFROM, ASN_OBJECT_ID, RWRITE, var_usmUser, 3, {2, 1, 4}},
+    {USMUSERAUTHPROTOCOL, ASN_OBJECT_ID, RWRITE, var_usmUser, 3,
+     {2, 1, 5}},
+    {USMUSERAUTHKEYCHANGE, ASN_OCTET_STR, RWRITE, var_usmUser, 3,
+     {2, 1, 6}},
+    {USMUSEROWNAUTHKEYCHANGE, ASN_OCTET_STR, RWRITE, var_usmUser, 3,
+     {2, 1, 7}},
+    {USMUSERPRIVPROTOCOL, ASN_OBJECT_ID, RWRITE, var_usmUser, 3,
+     {2, 1, 8}},
+    {USMUSERPRIVKEYCHANGE, ASN_OCTET_STR, RWRITE, var_usmUser, 3,
+     {2, 1, 9}},
+    {USMUSEROWNPRIVKEYCHANGE, ASN_OCTET_STR, RWRITE, var_usmUser, 3,
+     {2, 1, 10}},
+    {USMUSERPUBLIC, ASN_OCTET_STR, RWRITE, var_usmUser, 3, {2, 1, 11}},
+    {USMUSERSTORAGETYPE, ASN_INTEGER, RWRITE, var_usmUser, 3, {2, 1, 12}},
+    {USMUSERSTATUS, ASN_INTEGER, RWRITE, var_usmUser, 3, {2, 1, 13}},
 
 };
 
@@ -70,7 +62,6 @@ init_usmUser(void)
                  usmUser_variables_oid);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_INIT_REGISTER_USMUSER_CONTEXT
 void
 init_register_usmUser_context(const char *contextName) {
     register_mib_context("snmpv3/usmUser",
@@ -82,7 +73,6 @@ init_register_usmUser_context(const char *contextName) {
                          DEFAULT_MIB_PRIORITY, 0, 0, NULL,
                          contextName, -1, 0);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INIT_REGISTER_USMUSER_CONTEXT */
 
 /*******************************************************************-o-******
  * usm_generate_OID
@@ -296,7 +286,7 @@ var_usmUser(struct variable * vp,
             size_t * length,
             int exact, size_t * var_len, WriteMethod ** write_method)
 {
-    struct usmUser *uptr = NULL, *nptr;
+    struct usmUser *uptr = NULL, *nptr, *pptr;
     int             i, rtest, result;
     oid            *indexOid;
     size_t          len;
@@ -311,11 +301,8 @@ var_usmUser(struct variable * vp,
     if (!vp || !name || !length || !var_len)
         return NULL;
 
-    /* assume it isnt writable for the time being */
-    *write_method = (WriteMethod*)0;    
-
-    /* assume an integer and change later if not */
-    *var_len = sizeof(long_ret);
+    *write_method = 0;          /* assume it isnt writable for the time being */
+    *var_len = sizeof(long_ret);        /* assume an integer and change later if not */
 
     if (vp->magic != USMUSERSPINLOCK) {
         oid             newname[MAX_OID_LEN];
@@ -328,7 +315,7 @@ var_usmUser(struct variable * vp,
             (exact == 1 && rtest != 0)) {
             if (var_len)
                 *var_len = 0;
-            return NULL;
+            return 0;
         }
         memset(newname, 0, sizeof(newname));
         if (((int) *length) <= (int) vp->namelen || rtest == -1) {
@@ -341,8 +328,8 @@ var_usmUser(struct variable * vp,
             uptr = usm_get_userList();
 
         } else {
-            for (nptr = usm_get_userList(), uptr = NULL;
-                 nptr != NULL; nptr = nptr->next) {
+            for (nptr = usm_get_userList(), pptr = NULL, uptr = NULL;
+                 nptr != NULL; pptr = nptr, nptr = nptr->next) {
                 indexOid =
                     usm_generate_OID(vp->name, vp->namelen, nptr, &len);
                 result = snmp_oid_compare(name, *length, indexOid, len);
@@ -385,7 +372,6 @@ var_usmUser(struct variable * vp,
             indexOid = usm_generate_OID(vp->name, vp->namelen, uptr, &len);
             *length = len;
             memmove(name, indexOid, len * sizeof(oid));
-
             DEBUGMSGTL(("usmUser", "Found user: %s - ", uptr->name));
             for (i = 0; i < (int) uptr->engineIDLen; i++) {
                 DEBUGMSG(("usmUser", " %x", uptr->engineID[i]));
@@ -398,11 +384,10 @@ var_usmUser(struct variable * vp,
         }
     } else {
         if (header_generic(vp, name, length, exact, var_len, write_method))
-            return NULL;
+            return 0;
     }                           /* endif -- vp->magic != USMUSERSPINLOCK */
 
     switch (vp->magic) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
     case USMUSERSPINLOCK:
         *write_method = write_usmUserSpinLock;
         long_ret = usmUserSpinLock;
@@ -473,7 +458,7 @@ var_usmUser(struct variable * vp,
         *write_method = write_usmUserPublic;
         if (uptr) {
             if (uptr->userPublicString) {
-                *var_len = uptr->userPublicStringLen;
+                *var_len = strlen((char *) uptr->userPublicString);
                 return uptr->userPublicString;
             }
             *string = 0;
@@ -498,21 +483,15 @@ var_usmUser(struct variable * vp,
             return (unsigned char *) &long_ret;
         }
         return NULL;
+
     default:
         DEBUGMSGTL(("snmpd", "unknown sub-id %d in var_usmUser\n",
                     vp->magic));
-#else /* !NETSNMP_NO_WRITE_SUPPORT */ 
-    default:
-        DEBUGMSGTL(("snmpd", "no write support for var_usmUser\n"));
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
     }
-    return NULL;
+    return 0;
 
 }                               /* end var_usmUser() */
 
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
-
 /*
  * write_usmUserSpinLock(): called when a set is performed on the
  * usmUserSpinLock object 
@@ -766,6 +745,7 @@ write_usmUserAuthProtocol(int action,
         }
     } else if (action == COMMIT) {
         SNMP_FREE(optr);
+        optr = NULL;
     } else if (action == FREE || action == UNDO) {
         if ((uptr = usm_parse_user(name, name_len)) != NULL) {
             if (resetOnFail) {
@@ -908,6 +888,7 @@ write_usmUserAuthKeyChange(int action,
         uptr->authKeyLen = buflen;
     } else if (action == COMMIT) {
         SNMP_FREE(oldkey);
+        oldkey = NULL;
     } else if (action == UNDO) {
         if ((uptr = usm_parse_user(name, name_len)) != NULL && resetOnFail) {
             SNMP_FREE(uptr->authKey);
@@ -1032,6 +1013,7 @@ write_usmUserPrivProtocol(int action,
         }
     } else if (action == COMMIT) {
         SNMP_FREE(optr);
+        optr = NULL;
     } else if (action == FREE || action == UNDO) {
         if ((uptr = usm_parse_user(name, name_len)) != NULL) {
             if (resetOnFail) {
@@ -1156,6 +1138,7 @@ write_usmUserPrivKeyChange(int action,
         uptr->privKeyLen = buflen;
     } else if (action == COMMIT) {
         SNMP_FREE(oldkey);
+        oldkey = NULL;
     } else if (action == UNDO) {
         if ((uptr = usm_parse_user(name, name_len)) != NULL && resetOnFail) {
             SNMP_FREE(uptr->privKey);
@@ -1181,7 +1164,7 @@ write_usmUserPublic(int action,
                     "write to usmUserPublic not ASN_OCTET_STR\n"));
         return SNMP_ERR_WRONGTYPE;
     }
-    if (var_val_len > 32) {
+    if (var_val_len < 0 || var_val_len > 32) {
         DEBUGMSGTL(("usmUser", "write to usmUserPublic: bad length\n"));
         return SNMP_ERR_WRONGLENGTH;
     }
@@ -1194,15 +1177,14 @@ write_usmUserPublic(int action,
         }
         if (uptr->userPublicString)
             free(uptr->userPublicString);
-        uptr->userPublicString = (u_char *) malloc(var_val_len);
+        uptr->userPublicString = (u_char *) malloc(var_val_len + 1);
         if (uptr->userPublicString == NULL) {
             return SNMP_ERR_GENERR;
         }
         memcpy(uptr->userPublicString, var_val, var_val_len);
-        uptr->userPublicStringLen = var_val_len;
-        DEBUGMSG(("usmUser", "setting public string: %d - ", (int)var_val_len));
-        DEBUGMSGHEX(("usmUser", uptr->userPublicString, var_val_len));
-        DEBUGMSG(("usmUser", "\n"));
+        uptr->userPublicString[var_val_len] = 0;
+        DEBUGMSG(("usmUser", "setting public string: %d - %s\n",
+                  var_val_len, uptr->userPublicString));
     }
     return SNMP_ERR_NOERROR;
 }                               /* end write_usmUserPublic() */
@@ -1259,7 +1241,7 @@ write_usmUserStorageType(int action,
              * Convention apply.  
              */
             DEBUGMSGTL(("usmUser",
-                        "long_ret %ld uptr->st %d uptr->status %d\n",
+                        "long_ret %d uptr->st %d uptr->status %d\n",
                         long_ret, uptr->userStorageType,
                         uptr->userStatus));
 
@@ -1291,7 +1273,6 @@ write_usmUserStorageType(int action,
     return SNMP_ERR_NOERROR;
 }                               /* end write_usmUserStorageType() */
 
-
 /*
  * Return 1 if enough objects have been set up to transition rowStatus to
  * notInService(2) or active(1).  
@@ -1498,9 +1479,7 @@ write_usmUserStatus(int action,
     }
 
     return SNMP_ERR_NOERROR;
-}  /* write_usmUserStatus */
-
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
+}
 
 #if 0
 
diff --git a/agent/mibgroup/snmpv3/usmUser.h b/agent/mibgroup/snmpv3/usmUser.h
index 53d1412..e920b20 100644
--- a/agent/mibgroup/snmpv3/usmUser.h
+++ b/agent/mibgroup/snmpv3/usmUser.h
@@ -15,10 +15,10 @@
 #define USM_LENGTH_OID_MAX	66
 
 /*
- * we use header_generic from the util_funcs module
+ * we use header_generic and checkmib from the util_funcs module 
  */
 
-config_require(util_funcs/header_generic)
+config_require(util_funcs)
 config_add_mib(SNMP-USER-BASED-SM-MIB)
 
     /*
@@ -54,7 +54,6 @@ config_add_mib(SNMP-USER-BASED-SM-MIB)
                                    size_t * engineIDLen,
                                    unsigned char **name, size_t * nameLen);
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT 
      WriteMethod     write_usmUserSpinLock;
      WriteMethod     write_usmUserCloneFrom;
      WriteMethod     write_usmUserAuthProtocol;
@@ -64,6 +63,5 @@ config_add_mib(SNMP-USER-BASED-SM-MIB)
      WriteMethod     write_usmUserPublic;
      WriteMethod     write_usmUserStorageType;
      WriteMethod     write_usmUserStatus;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */ 
 
 #endif                          /* _MIBGROUP_USMUSER_H */
diff --git a/agent/mibgroup/snmpv3mibs.h b/agent/mibgroup/snmpv3mibs.h
index 0cca9a3..60f666d 100644
--- a/agent/mibgroup/snmpv3mibs.h
+++ b/agent/mibgroup/snmpv3mibs.h
@@ -7,10 +7,8 @@
  */
 
 config_require(snmpv3/snmpEngine)
-config_version_require((snmpv3/snmpMPDStats, 5.5, snmpv3/snmpMPDStats_5_5))
-#ifdef NETSNMP_SECMOD_USM
-config_version_require((snmpv3/usmStats, 5.5, snmpv3/usmStats_5_5))
+config_require(snmpv3/snmpMPDStats)
+config_require(snmpv3/usmStats)
 config_require(snmpv3/usmConf)
 config_require(snmpv3/usmUser)
-#endif /* NETSNMP_SECMOD_USM */
-#endif                          /* SNMPV3MIBS_H */
+#endif                          /* NSMPV3MIBS_H */
diff --git a/agent/mibgroup/struct.h b/agent/mibgroup/struct.h
index d025ed0..b87edc9 100644
--- a/agent/mibgroup/struct.h
+++ b/agent/mibgroup/struct.h
@@ -16,13 +16,10 @@ struct extensible {
     int             result;
     char            output[STRMAX];
     struct extensible *next;
-    oid             miboid[MIBMAX];
+    unsigned long   miboid[MIBMAX];
     size_t          miblen;
-    int             mibpriority;
-    netsnmp_pid_t   pid;
-#if defined(WIN32)
-    HANDLE          tid;                /* WIN32 thread */
-#endif
+    int             pid;
+    int             tid;                /* WIN32 thread */
 };
 
 struct myproc {
diff --git a/agent/mibgroup/target.h b/agent/mibgroup/target.h
index 58c5b4b..39fadfe 100644
--- a/agent/mibgroup/target.h
+++ b/agent/mibgroup/target.h
@@ -1,5 +1,5 @@
 config_require(target/snmpTargetAddrEntry)
 config_require(target/snmpTargetParamsEntry)
 config_require(target/target)
-config_version_require((target/target_counters, 5.5, target/target_counters_5_5))
+config_require(target/target_counters)
 config_add_mib(SNMP-TARGET-MIB)
diff --git a/agent/mibgroup/target/snmpTargetAddrEntry.c b/agent/mibgroup/target/snmpTargetAddrEntry.c
index a77b467..2638d20 100644
--- a/agent/mibgroup/target/snmpTargetAddrEntry.c
+++ b/agent/mibgroup/target/snmpTargetAddrEntry.c
@@ -15,12 +15,15 @@
 #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>
 
 #include "snmpTargetAddrEntry.h"
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 
 #define snmpTargetAddrOIDLen 11 /*This is base+column, 
                                  * i.e. everything but index */
@@ -29,7 +32,7 @@ oid             snmpTargetAddrOID[snmpTargetAddrOIDLen] =
     { 1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 0 };
 
 static unsigned long snmpTargetSpinLock = 0;
-static struct targetAddrTable_struct *aAddrTable = NULL;
+static struct targetAddrTable_struct *aAddrTable = 0;
 
 
 /*
@@ -67,21 +70,21 @@ snmpTargetAddrTable_create(void)
         malloc(sizeof(struct targetAddrTable_struct));
 
     if (newEntry) {
-        newEntry->name = NULL;
+        newEntry->name = 0;
 
         newEntry->tDomainLen = 0;
-        newEntry->tAddress = NULL;
+        newEntry->tAddress = 0;
 
         newEntry->timeout = 1500;
         newEntry->retryCount = 3;
 
         newEntry->tagList = strdup("");
-        newEntry->params = NULL;
+        newEntry->params = 0;
 
         newEntry->storageType = SNMP_STORAGE_NONVOLATILE;
         newEntry->rowStatus = SNMP_ROW_NONEXISTENT;
         newEntry->sess = (netsnmp_session *) NULL;
-        newEntry->next = NULL;
+        newEntry->next = 0;
     }
 
     return newEntry;
@@ -95,11 +98,11 @@ snmpTargetAddrTable_create(void)
 void
 snmpTargetAddrTable_dispose(struct targetAddrTable_struct *reaped)
 {
-    if (reaped->sess)
+    if (reaped->sess != NULL) {
         snmp_close(reaped->sess);
-    else
-        SNMP_FREE(reaped->tAddress);
+    }
     SNMP_FREE(reaped->name);
+    SNMP_FREE(reaped->tAddress);
     SNMP_FREE(reaped->tagList);
     SNMP_FREE(reaped->params);
 
@@ -125,7 +128,7 @@ snmpTargetAddrTable_addToList(struct targetAddrTable_struct *newEntry,
     /*
      * if the list is empty, add the new entry to the top 
      */
-    if ((prev_struct = curr_struct = *listPtr) == NULL) {
+    if ((prev_struct = curr_struct = *listPtr) == 0) {
         *listPtr = newEntry;
         return;
     } else {
@@ -140,7 +143,7 @@ snmpTargetAddrTable_addToList(struct targetAddrTable_struct *newEntry,
         /*
          * search through the list for an equal or greater OID value 
          */
-        while (curr_struct != NULL) {
+        while (curr_struct != 0) {
             currOIDLen = strlen(curr_struct->name);
             for (i = 0; i < (int) currOIDLen; i++) {
                 currOID[i] = curr_struct->name[i];
@@ -197,14 +200,14 @@ snmpTargetAddrTable_remFromList(struct targetAddrTable_struct *oldEntry,
 {
     struct targetAddrTable_struct *tptr;
 
-    if ((tptr = *listPtr) == NULL)
+    if ((tptr = *listPtr) == 0)
         return;
     else if (tptr == oldEntry) {
         *listPtr = (*listPtr)->next;
         snmpTargetAddrTable_dispose(tptr);
         return;
     } else {
-        while (tptr->next != NULL) {
+        while (tptr->next != 0) {
             if (tptr->next == oldEntry) {
                 tptr->next = tptr->next->next;
                 snmpTargetAddrTable_dispose(oldEntry);
@@ -234,7 +237,7 @@ search_snmpTargetAddrTable(oid * baseName,
      */
     memcpy(newNum, baseName, baseNameLen * sizeof(oid));
 
-    for (temp_struct = aAddrTable; temp_struct != NULL;
+    for (temp_struct = aAddrTable; temp_struct != 0;
          temp_struct = temp_struct->next) {
         for (i = 0; i < (int) strlen(temp_struct->name); i++) {
             newNum[baseNameLen + i] = temp_struct->name[i];
@@ -252,7 +255,7 @@ search_snmpTargetAddrTable(oid * baseName,
             return temp_struct;
         }
     }
-    return NULL;
+    return (0);
 }                               /* search_snmpTargetAddrTable  */
 
 
@@ -264,8 +267,8 @@ search_snmpTargetAddrTable(oid * baseName,
 int
 snmpTargetAddr_rowStatusCheck(struct targetAddrTable_struct *entry)
 {
-    if ((entry->tDomainLen == 0) || (entry->tAddress == NULL) ||
-        (entry->params == NULL))
+    if ((entry->tDomainLen == 0) || (entry->tAddress == 0) ||
+        (entry->params == 0))
         return 0;
     else
         return 1;
@@ -282,28 +285,27 @@ snmpTargetAddr_rowStatusCheck(struct targetAddrTable_struct *entry)
  */
 
 struct variable2 snmpTargetAddrEntry_variables[] = {
-    {SNMPTARGETADDRTDOMAIN, ASN_OBJECT_ID, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETADDRTDOMAIN, ASN_OBJECT_ID, RWRITE,
      var_snmpTargetAddrEntry, 1, {SNMPTARGETADDRTDOMAINCOLUMN}},
-    {SNMPTARGETADDRTADDRESS, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETADDRTADDRESS, ASN_OCTET_STR, RWRITE,
      var_snmpTargetAddrEntry, 1, {SNMPTARGETADDRTADDRESSCOLUMN}},
-    {SNMPTARGETADDRTIMEOUT, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETADDRTIMEOUT, ASN_INTEGER, RWRITE,
      var_snmpTargetAddrEntry, 1, {SNMPTARGETADDRTIMEOUTCOLUMN}},
-    {SNMPTARGETADDRRETRYCOUNT, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETADDRRETRYCOUNT, ASN_INTEGER, RWRITE,
      var_snmpTargetAddrEntry, 1, {SNMPTARGETADDRRETRYCOUNTCOLUMN}},
-    {SNMPTARGETADDRTAGLIST, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETADDRTAGLIST, ASN_OCTET_STR, RWRITE,
      var_snmpTargetAddrEntry, 1, {SNMPTARGETADDRTAGLISTCOLUMN}},
-    {SNMPTARGETADDRPARAMS, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETADDRPARAMS, ASN_OCTET_STR, RWRITE,
      var_snmpTargetAddrEntry, 1, {SNMPTARGETADDRPARAMSCOLUMN}},
-    {SNMPTARGETADDRSTORAGETYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETADDRSTORAGETYPE, ASN_INTEGER, RWRITE,
      var_snmpTargetAddrEntry, 1, {SNMPTARGETADDRSTORAGETYPECOLUMN}},
-    {SNMPTARGETADDRROWSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETADDRROWSTATUS, ASN_INTEGER, RWRITE,
      var_snmpTargetAddrEntry, 1, {SNMPTARGETADDRROWSTATUSCOLUMN}},
 
 };
 
 struct variable2 snmpTargetSpinLock_var[] = {
-    {SNMPTARGETSPINLOCK, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_targetSpinLock, 1, {1}}
+    {SNMPTARGETSPINLOCK, ASN_INTEGER, RWRITE, var_targetSpinLock, 1, {1}}
 };
 
 static oid      snmpTargetSpinLock_oid[] = { 1, 3, 6, 1, 6, 3, 12, 1 };
@@ -318,7 +320,7 @@ oid             snmpTargetAddrEntry_variables_oid[] =
 void
 init_snmpTargetAddrEntry(void)
 {
-    aAddrTable = NULL;
+    aAddrTable = 0;
     DEBUGMSGTL(("snmpTargetAddrEntry", "init\n"));
     REGISTER_MIB("target/snmpTargetAddrEntry",
                  snmpTargetAddrEntry_variables, variable2,
@@ -327,8 +329,7 @@ init_snmpTargetAddrEntry(void)
                  variable2, snmpTargetSpinLock_oid);
 
     snmpd_register_config_handler("targetAddr",
-                                  snmpd_parse_config_targetAddr,
-                                  (void (*)(void))0, NULL);
+                                  snmpd_parse_config_targetAddr, 0, NULL);
 
     /*
      * we need to be called back later 
@@ -338,27 +339,12 @@ init_snmpTargetAddrEntry(void)
 
 }                               /* init_snmpTargetAddrEntry */
 
-void
-shutdown_snmpTargetAddrEntry(void)
-{
-    struct targetAddrTable_struct *ptr;
-    struct targetAddrTable_struct *next;
-
-    for (ptr = aAddrTable; ptr; ptr = next) {
-        next = ptr->next;
-        snmpTargetAddrTable_dispose(ptr);
-    }
-    aAddrTable = NULL;
-
-    snmp_unregister_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_STORE_DATA,
-                             store_snmpTargetAddrEntry, NULL, FALSE);
-}
 
 int
 snmpTargetAddr_addName(struct targetAddrTable_struct *entry, char *cptr)
 {
     size_t          len;
-    if (cptr == NULL) {
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargetAddrEntry: no name in config string\n"));
         return (0);
@@ -372,7 +358,9 @@ snmpTargetAddr_addName(struct targetAddrTable_struct *entry, char *cptr)
                         "ERROR snmpTargetAddrEntry: name out of range in config string\n"));
             return (0);
         }
-        entry->name = strdup(cptr);
+        entry->name = (char *) malloc(len + 1);
+        strncpy(entry->name, cptr, len);
+        entry->name[len] = '\0';
     }
     return (1);
 }                               /* addName */
@@ -383,7 +371,7 @@ snmpTargetAddr_addTDomain(struct targetAddrTable_struct *entry, char *cptr)
 {
     size_t          len = 128;
 
-    if (cptr == NULL) {
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargetAddrEntry: no tDomain in config string\n"));
         return (0);
@@ -413,7 +401,7 @@ int
 snmpTargetAddr_addTAddress(struct targetAddrTable_struct *entry,
                            char *cptr, size_t len)
 {
-    if (cptr == NULL) {
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargetAddrEntry: no tAddress in config string\n"));
         return (0);
@@ -439,11 +427,11 @@ snmpTargetAddr_addTAddress(struct targetAddrTable_struct *entry,
 int
 snmpTargetAddr_addTimeout(struct targetAddrTable_struct *entry, char *cptr)
 {
-    if (cptr == NULL) {
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargetParamsEntry: no Timeout in config string\n"));
         return (0);
-    } else if (!(isdigit((unsigned char)(*cptr)))) {
+    } else if (!(isdigit(*cptr))) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargeParamsEntry: Timeout is not a digit in config string\n"));
         return (0);
@@ -464,11 +452,11 @@ int
 snmpTargetAddr_addRetryCount(struct targetAddrTable_struct *entry,
                              char *cptr)
 {
-    if (cptr == NULL) {
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargetParamsEntry: no Retry Count in config string\n"));
         return (0);
-    } else if (!(isdigit((unsigned char)(*cptr)))) {
+    } else if (!(isdigit(*cptr))) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargeParamsEntry: Retry Count is not a digit in config string\n"));
         return (0);
@@ -491,22 +479,25 @@ snmpTargetAddr_addRetryCount(struct targetAddrTable_struct *entry,
 int
 snmpTargetAddr_addTagList(struct targetAddrTable_struct *entry, char *cptr)
 {
-    if (cptr == NULL) {
+    size_t          len;
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargetAddrEntry: no tag list in config string\n"));
         return (0);
     } else {
-        size_t len = strlen(cptr);
+        len = strlen(cptr);
         /*
          * spec check for string 0-255 
          */
-        if (len > 255) {
+        if (len < 0 || len > 255) {
             DEBUGMSGTL(("snmpTargetAddrEntry",
                         "ERROR snmpTargetAddrEntry: tag list out of range in config string\n"));
             return (0);
         }
         SNMP_FREE(entry->tagList);
-        entry->tagList = strdup(cptr);
+        entry->tagList = (char *) malloc(len + 1);
+        strncpy(entry->tagList, cptr, len);
+        entry->tagList[len] = '\0';
     }
     return (1);
 }                               /* snmpTargetAddr_addTagList */
@@ -516,7 +507,7 @@ int
 snmpTargetAddr_addParams(struct targetAddrTable_struct *entry, char *cptr)
 {
     size_t          len;
-    if (cptr == NULL) {
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargetAddrEntry: no params in config string\n"));
         return (0);
@@ -530,7 +521,9 @@ snmpTargetAddr_addParams(struct targetAddrTable_struct *entry, char *cptr)
                         "ERROR snmpTargetAddrEntry: params out of range in config string\n"));
             return (0);
         }
-        entry->params = strdup(cptr);
+        entry->params = (char *) malloc(len + 1);
+        strncpy(entry->params, cptr, len);
+        entry->params[len] = '\0';
     }
     return (1);
 }                               /* snmpTargetAddr_addParams */
@@ -540,15 +533,15 @@ int
 snmpTargetAddr_addStorageType(struct targetAddrTable_struct *entry,
                               char *cptr)
 {
-    if (cptr == NULL) {
+    char            buff[1024];
+
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
-                    "ERROR snmpTargetAddrEntry: no storage type in config "
-                    "string\n"));
+                    "ERROR snmpTargetAddrEntry: no storage type in config string\n"));
         return (0);
-    } else if (!(isdigit((unsigned char)(*cptr)))) {
+    } else if (!(isdigit(*cptr))) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
-                    "ERROR snmpTargetAddrEntry: storage type is not a digit "
-                    "in config string\n"));
+                    "ERROR snmpTargetAddrEntry: storage type is not a digit in config string\n"));
         return (0);
     }
     /*
@@ -560,13 +553,14 @@ snmpTargetAddr_addStorageType(struct targetAddrTable_struct *entry,
              (entry->storageType != SNMP_STORAGE_NONVOLATILE) &&
              (entry->storageType != SNMP_STORAGE_PERMANENT) &&
              (entry->storageType != SNMP_STORAGE_READONLY)) {
-        DEBUGMSGTL(("snmpTargetAddrEntry",
-                    "ERROR snmpTargetAddrEntry: storage type not a valid "
-                    "value of other(%d), volatile(%d), nonvolatile(%d), "
-                    "permanent(%d), or readonly(%d) in config string.\n",
-                    SNMP_STORAGE_OTHER, SNMP_STORAGE_VOLATILE,
-                    SNMP_STORAGE_NONVOLATILE, SNMP_STORAGE_PERMANENT,
-                    SNMP_STORAGE_READONLY));
+        snprintf(buff, sizeof(buff),
+                "ERROR snmpTargetAddrEntry: storage type not a valid value of other(%d), volatile(%d), nonvolatile(%d), permanent(%d), or readonly(%d) in config string.\n",
+                SNMP_STORAGE_OTHER, SNMP_STORAGE_VOLATILE,
+                SNMP_STORAGE_NONVOLATILE, SNMP_STORAGE_PERMANENT,
+                SNMP_STORAGE_READONLY);
+        buff[ sizeof(buff)-1 ] = 0;
+        DEBUGMSGTL(("snmpTargetAddrEntry", buff));
+
         return (0);
     }
     return (1);
@@ -577,15 +571,15 @@ int
 snmpTargetAddr_addRowStatus(struct targetAddrTable_struct *entry,
                             char *cptr)
 {
-    if (cptr == NULL) {
+    char            buff[1024];
+
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
-                    "ERROR snmpTargetAddrEntry: no Row Status in config "
-                    "string\n"));
+                    "ERROR snmpTargetAddrEntry: no Row Status in config string\n"));
         return (0);
-    } else if (!(isdigit((unsigned char)(*cptr)))) {
+    } else if (!(isdigit(*cptr))) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
-                    "ERROR snmpTargetAddrEntry: Row Status is not a digit in "
-                    "config string\n"));
+                    "ERROR snmpTargetAddrEntry: Row Status is not a digit in config string\n"));
         return (0);
     }
     /*
@@ -595,11 +589,12 @@ snmpTargetAddr_addRowStatus(struct targetAddrTable_struct *entry,
               != SNMP_ROW_ACTIVE) &&
              (entry->rowStatus != SNMP_ROW_NOTINSERVICE) &&
              (entry->rowStatus != SNMP_ROW_NOTREADY)) {
-        DEBUGMSGTL(("snmpTargetAddrEntry",
-                    "ERROR snmpTargetAddrEntry: Row Status is not a valid "
-                    "value of active(%d), notinservice(%d), or notready(%d) "
-                    "in config string.\n",
-                    SNMP_ROW_ACTIVE, SNMP_ROW_NOTINSERVICE, SNMP_ROW_NOTREADY));
+        snprintf(buff, sizeof(buff),
+                "ERROR snmpTargetAddrEntry: Row Status is not a valid value of active(%d), notinservice(%d), or notready(%d) in config string.\n",
+                SNMP_ROW_ACTIVE, SNMP_ROW_NOTINSERVICE, SNMP_ROW_NOTREADY);
+        buff[ sizeof(buff)-1 ] = 0;
+        DEBUGMSGTL(("snmpTargetAddrEntry", buff));
+
         return (0);
     }
     return (1);
@@ -679,7 +674,7 @@ snmpd_parse_config_targetAddr(const char *token, char *char_ptr)
             newEntry->tagList, newEntry->params, newEntry->storageType,
             newEntry->rowStatus);
     buff[ sizeof(buff)-1 ] = 0;
-    DEBUGMSGTL(("snmpTargetAddrEntry", "%s", buff));
+    DEBUGMSGTL(("snmpTargetAddrEntry", buff));
 
     snmpTargetAddrTable_addToList(newEntry, &aAddrTable);
 }                               /* snmpd_parse_config_target */
@@ -703,8 +698,8 @@ store_snmpTargetAddrEntry(int majorID, int minorID, void *serverarg,
     char            line[1024];
     int             i;
 
-    if ((curr_struct = aAddrTable) != NULL) {
-        while (curr_struct != NULL) {
+    if ((curr_struct = aAddrTable) != 0) {
+        while (curr_struct != 0) {
             if ((curr_struct->storageType == SNMP_STORAGE_NONVOLATILE ||
                  curr_struct->storageType == SNMP_STORAGE_PERMANENT)
                 &&
@@ -719,7 +714,10 @@ store_snmpTargetAddrEntry(int majorID, int minorID, void *serverarg,
                             (int) curr_struct->tDomain[i]);
                     line[ sizeof(line)-1 ] = 0;
                 }
-                strlcat(line, " ", sizeof(line));
+                if ( strlen(line)+2 < sizeof(line) ) {
+                    line[ strlen(line)+1 ] = 0;
+                    line[ strlen(line)   ] = ' ';
+                }
                 read_config_save_octet_string(&line[strlen(line)],
                                               curr_struct->tAddress,
                                               curr_struct->tAddressLen);
@@ -775,7 +773,6 @@ var_snmpTargetAddrEntry(struct variable * vp,
      */
 
     switch (vp->magic) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case SNMPTARGETADDRTDOMAIN:
         *write_method = write_snmpTargetAddrTDomain;
         break;
@@ -800,21 +797,19 @@ var_snmpTargetAddrEntry(struct variable * vp,
     case SNMPTARGETADDRROWSTATUS:
         *write_method = write_snmpTargetAddrRowStatus;
         break;
-#endif /*  !NETSNMP_NO_WRITE_SUPPORT */
     default:
         *write_method = NULL;
     }
 
-    /* assume an integer and change later if not */
-    *var_len = sizeof(long_ret);
+    *var_len = sizeof(long_ret);        /* assume an integer and change later if not */
 
     /*
      * look for OID in current table 
      */
     if ((temp_struct = search_snmpTargetAddrTable(vp->name, vp->namelen,
                                                   name, length,
-                                                  exact)) == NULL) {
-        return NULL;
+                                                  exact)) == 0) {
+        return (0);
     }
 
     /*
@@ -826,7 +821,7 @@ var_snmpTargetAddrEntry(struct variable * vp,
     switch (vp->magic) {
     case SNMPTARGETADDRTDOMAIN:
         if (temp_struct->tDomainLen <= 0) {
-            return NULL;
+            return (0);
         } else {
             for (i = 0; i < temp_struct->tDomainLen; i++) {
                 objid[i] = temp_struct->tDomain[i];
@@ -836,8 +831,8 @@ var_snmpTargetAddrEntry(struct variable * vp,
         return (unsigned char *) objid;
 
     case SNMPTARGETADDRTADDRESS:
-        if (temp_struct->tAddress == NULL)
-            return NULL;
+        if (temp_struct->tAddress == 0)
+            return (0);
         *var_len = temp_struct->tAddressLen;
         return (unsigned char *) temp_struct->tAddress;
 
@@ -851,7 +846,7 @@ var_snmpTargetAddrEntry(struct variable * vp,
 
     case SNMPTARGETADDRTAGLIST:
         if (temp_struct->tagList != NULL) {
-            strlcpy(string, temp_struct->tagList, sizeof(string));
+            strcpy(string, temp_struct->tagList);
             *var_len = strlen(string);
             return (unsigned char *) string;
         } else {
@@ -859,9 +854,9 @@ var_snmpTargetAddrEntry(struct variable * vp,
         }
 
     case SNMPTARGETADDRPARAMS:
-        if (temp_struct->params == NULL)
-            return NULL;
-        strlcpy(string, temp_struct->params, sizeof(string));
+        if (temp_struct->params == 0)
+            return (0);
+        strcpy(string, temp_struct->params);
         *var_len = strlen(string);
         return (unsigned char *) string;
 
@@ -878,12 +873,10 @@ var_snmpTargetAddrEntry(struct variable * vp,
                     "unknown sub-id %d in var_snmpTargetAddrEntry\n",
                     vp->magic));
     }
-
-    return NULL;
+    return 0;
 }                               /* var_snmpTargetAddrEntry */
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 int
 write_snmpTargetAddrTDomain(int action,
                             u_char * var_val,
@@ -913,7 +906,7 @@ write_snmpTargetAddrTDomain(int action,
         if ((target =
              search_snmpTargetAddrTable(snmpTargetAddrOID,
                                         snmpTargetAddrOIDLen, name,
-                                        &name_len, 1)) == NULL) {
+                                        &name_len, 1)) == 0) {
             DEBUGMSGTL(("snmpTargetAddrEntry",
                         "write to snmpTargetAddrTDomain: BAD OID!\n"));
             return SNMP_ERR_INCONSISTENTNAME;
@@ -999,7 +992,7 @@ write_snmpTargetAddrTAddress(int action,
         if ((target =
              search_snmpTargetAddrTable(snmpTargetAddrOID,
                                         snmpTargetAddrOIDLen, name,
-                                        &name_len, 1)) == NULL) {
+                                        &name_len, 1)) == 0) {
             DEBUGMSGTL(("snmpTargetAddrEntry",
                         "write to snmpTargetAddrTAddress: BAD OID!\n"));
             return SNMP_ERR_INCONSISTENTNAME;
@@ -1015,7 +1008,7 @@ write_snmpTargetAddrTAddress(int action,
                 return SNMP_ERR_INCONSISTENTVALUE;
             }
 
-            old_addr = (char *) target->tAddress;
+            old_addr = target->tAddress;
             old_len = target->tAddressLen;
             target->tAddress = (u_char *) malloc(var_val_len);
             if (target->tAddress == NULL) {
@@ -1048,7 +1041,7 @@ write_snmpTargetAddrTAddress(int action,
             if (target->storageType != SNMP_STORAGE_READONLY
                 && target->rowStatus != SNMP_ROW_ACTIVE) {
                 SNMP_FREE(target->tAddress);
-                target->tAddress = (u_char *) old_addr;
+                target->tAddress = old_addr;
                 target->tAddressLen = old_len;
                 if (target->rowStatus == SNMP_ROW_NOTINSERVICE &&
                     snmpTargetAddr_rowStatusCheck(target) == 0) {
@@ -1102,7 +1095,7 @@ write_snmpTargetAddrTimeout(int action,
         if ((temp_struct =
              search_snmpTargetAddrTable(snmpTargetAddrOID,
                                         snmpTargetAddrOIDLen, name, &name_len,
-                                        1)) == NULL) {
+                                        1)) == 0) {
             DEBUGMSGTL(("snmpTargetAddrEntry",
                         "write to snmpTargetAddrTimeout : BAD OID\n"));
             return SNMP_ERR_NOSUCHNAME;
@@ -1124,7 +1117,7 @@ write_snmpTargetAddrTimeout(int action,
         if ((temp_struct =
              search_snmpTargetAddrTable(snmpTargetAddrOID,
                                         snmpTargetAddrOIDLen, name, &name_len,
-                                        1)) != NULL) {
+                                        1)) != 0) {
             temp_struct->timeout = long_ret;
         }
     }
@@ -1244,7 +1237,7 @@ write_snmpTargetAddrTagList(int action,
                         "write to snmpTargetAddrTagList: bad length\n"));
             return SNMP_ERR_WRONGLENGTH;
         }
-        if (!snmpTagListValid((char *) var_val, var_val_len)) {
+        if (!snmpTagListValid(var_val, var_val_len)) {
             return SNMP_ERR_WRONGVALUE;
         }
     } else if (action == RESERVE2) {
@@ -1316,7 +1309,7 @@ write_snmpTargetAddrParams(int action,
         if ((target =
              search_snmpTargetAddrTable(snmpTargetAddrOID,
                                         snmpTargetAddrOIDLen, name,
-                                        &name_len, 1)) == NULL) {
+                                        &name_len, 1)) == 0) {
             DEBUGMSGTL(("snmpTargetAddrEntry",
                         "write to snmpTargetAddrParams: BAD OID!\n"));
             return SNMP_ERR_INCONSISTENTNAME;
@@ -1333,7 +1326,7 @@ write_snmpTargetAddrParams(int action,
             }
 
             old_params = target->params;
-            target->params = malloc(var_val_len + 1);
+            target->params = (u_char *) malloc(var_val_len + 1);
             if (target->params == NULL) {
                 return SNMP_ERR_RESOURCEUNAVAILABLE;
             }
@@ -1508,7 +1501,7 @@ write_snmpTargetAddrRowStatus(int action,
                         "write to snmpTargetAddrRowStatus not ASN_INTEGER\n"));
             return SNMP_ERR_WRONGTYPE;
         }
-        if (var_val_len != sizeof(long)) {
+        if (var_val_len != sizeof(int)) {
             DEBUGMSGTL(("snmpTargetAddrEntry",
                         "write to snmpTargetAddrRowStatus: bad length\n"));
             return SNMP_ERR_WRONGLENGTH;
@@ -1524,7 +1517,7 @@ write_snmpTargetAddrRowStatus(int action,
         if (name_len < snmpTargetAddrOIDLen + 1 ||
             name_len > snmpTargetAddrOIDLen + 32) {
             DEBUGMSGTL(("snmpTargetAddrEntry", "bad index length %d\n",
-                        (int)(name_len - snmpTargetAddrOIDLen)));
+                        name_len - snmpTargetAddrOIDLen));
             return SNMP_ERR_NOCREATION;
         }
 
@@ -1626,7 +1619,6 @@ write_snmpTargetAddrRowStatus(int action,
                 }
             }
         }
-        snmp_store_needed(NULL);
     } else if (action == UNDO || action == FREE) {
         snmpTargetAddrOID[snmpTargetAddrOIDLen - 1] =
             SNMPTARGETADDRROWSTATUSCOLUMN;
@@ -1672,7 +1664,6 @@ write_targetSpinLock(int action,
     return SNMP_ERR_NOERROR;
 }
 
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
 
 u_char         *
@@ -1684,20 +1675,12 @@ var_targetSpinLock(struct variable * vp,
 {
     if (header_generic(vp, name, length, exact, var_len, write_method) ==
         MATCH_FAILED) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_targetSpinLock;
-#else
-		*write_method = NULL;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         return NULL;
     }
     if (vp->magic == SNMPTARGETSPINLOCK) {
-        *var_len = sizeof(unsigned long);
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         *write_method = write_targetSpinLock;
-#else
-		*write_method = NULL;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+        *var_len = sizeof(unsigned long);
         return (u_char *) & (snmpTargetSpinLock);
     }
     return NULL;
diff --git a/agent/mibgroup/target/snmpTargetAddrEntry.h b/agent/mibgroup/target/snmpTargetAddrEntry.h
index 790ed66..53c16f9 100644
--- a/agent/mibgroup/target/snmpTargetAddrEntry.h
+++ b/agent/mibgroup/target/snmpTargetAddrEntry.h
@@ -10,10 +10,10 @@
 #define _MIBGROUP_SNMPTARGETADDRENTRY_H
 
 /*
- * we use header_generic from the util_funcs module
+ * we use header_generic and checkmib from the util_funcs module 
  */
 
-config_require(util_funcs/header_generic)
+config_require(util_funcs)
 
 
     /*
@@ -67,7 +67,6 @@ config_add_mib(SNMPv2-TM)
  */
 
      void            init_snmpTargetAddrEntry(void);
-     void            shutdown_snmpTargetAddrEntry(void);
      int             store_snmpTargetAddrEntry(int majorID, int minorID,
                                                void *serverarg,
                                                void *clientarg);
@@ -81,7 +80,6 @@ config_add_mib(SNMPv2-TM)
 
      void            snmpd_parse_config_targetAddr(const char *, char *);
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
      WriteMethod     write_snmpTargetAddrTDomain;
      WriteMethod     write_snmpTargetAddrTAddress;
      WriteMethod     write_snmpTargetAddrTimeout;
@@ -91,8 +89,7 @@ config_add_mib(SNMPv2-TM)
      WriteMethod     write_snmpTargetAddrStorageType;
      WriteMethod     write_snmpTargetAddrRowStatus;
 
-     WriteMethod     write_targetSpinLock;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
      FindVarMethod   var_targetSpinLock;
+     WriteMethod     write_targetSpinLock;
 
 #endif                          /* _MIBGROUP_SNMPTARGETADDRENTRY_H */
diff --git a/agent/mibgroup/target/snmpTargetParamsEntry.c b/agent/mibgroup/target/snmpTargetParamsEntry.c
index 4e1f4e2..238bd32 100644
--- a/agent/mibgroup/target/snmpTargetParamsEntry.c
+++ b/agent/mibgroup/target/snmpTargetParamsEntry.c
@@ -15,6 +15,9 @@
 #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>
@@ -27,7 +30,7 @@
 oid             snmpTargetParamsOID[snmpTargetParamsOIDLen] =
     { 1, 3, 6, 1, 6, 3, 12, 1, 3, 1, 0 };
 
-static struct targetParamTable_struct *aPTable = NULL;
+static struct targetParamTable_struct *aPTable = 0;
 
 
 /*
@@ -48,16 +51,16 @@ snmpTargetParamTable_create(void)
     newEntry = (struct targetParamTable_struct *)
         malloc(sizeof(struct targetParamTable_struct));
 
-    newEntry->paramName = NULL;
+    newEntry->paramName = 0;
     newEntry->mpModel = -1;
 
     newEntry->secModel = -1;
-    newEntry->secName = NULL;
+    newEntry->secName = 0;
     newEntry->secLevel = -1;
 
     newEntry->storageType = SNMP_STORAGE_NONVOLATILE;
     newEntry->rowStatus = SNMP_ROW_NONEXISTENT;
-    newEntry->next = NULL;
+    newEntry->next = 0;
     return newEntry;
 }
 
@@ -95,7 +98,7 @@ snmpTargetParamTable_addToList(struct targetParamTable_struct *newEntry,
     /*
      * if the list is empty, add the new entry to the top 
      */
-    if ((prev_struct = curr_struct = *listPtr) == NULL) {
+    if ((prev_struct = curr_struct = *listPtr) == 0) {
         *listPtr = newEntry;
         return;
     } else {
@@ -110,7 +113,7 @@ snmpTargetParamTable_addToList(struct targetParamTable_struct *newEntry,
         /*
          * search through the list for an equal or greater OID value 
          */
-        while (curr_struct != NULL) {
+        while (curr_struct != 0) {
             currOIDLen = strlen(curr_struct->paramName);
             for (i = 0; i < (int) currOIDLen; i++) {
                 currOID[i] = curr_struct->paramName[i];
@@ -165,14 +168,14 @@ snmpTargetParamTable_remFromList(struct targetParamTable_struct *oldEntry,
 {
     struct targetParamTable_struct *tptr;
 
-    if ((tptr = *listPtr) == NULL)
+    if ((tptr = *listPtr) == 0)
         return;
     else if (tptr == oldEntry) {
         *listPtr = (*listPtr)->next;
         snmpTargetParamTable_dispose(tptr);
         return;
     } else {
-        while (tptr->next != NULL) {
+        while (tptr->next != 0) {
             if (tptr->next == oldEntry) {
                 tptr->next = tptr->next->next;
                 snmpTargetParamTable_dispose(oldEntry);
@@ -202,7 +205,7 @@ search_snmpTargetParamsTable(oid * baseName,
      */
     memcpy(newNum, baseName, baseNameLen * sizeof(oid));
 
-    for (temp_struct = aPTable; temp_struct != NULL;
+    for (temp_struct = aPTable; temp_struct != 0;
          temp_struct = temp_struct->next) {
         for (i = 0; i < (int) strlen(temp_struct->paramName); i++) {
             newNum[baseNameLen + i] = temp_struct->paramName[i];
@@ -220,7 +223,7 @@ search_snmpTargetParamsTable(oid * baseName,
             return temp_struct;
         }
     }
-    return NULL;
+    return (0);
 }                               /* search_snmpTargetParamsTable */
 
 
@@ -233,7 +236,7 @@ int
 snmpTargetParams_rowStatusCheck(struct targetParamTable_struct *entry)
 {
     if ((entry->mpModel < 0) || (entry->secModel < 0) ||
-        (entry->secLevel < 0) || (entry->secName == NULL))
+        (entry->secLevel < 0) || (entry->secName == 0))
         return 0;
     else
         return 1;
@@ -251,17 +254,17 @@ snmpTargetParams_rowStatusCheck(struct targetParamTable_struct *entry)
  */
 
 struct variable2 snmpTargetParamsEntry_variables[] = {
-    {SNMPTARGETPARAMSMPMODEL, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETPARAMSMPMODEL, ASN_INTEGER, RWRITE,
      var_snmpTargetParamsEntry, 1, {SNMPTARGETPARAMSMPMODELCOLUMN}},
-    {SNMPTARGETPARAMSSECURITYMODEL, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETPARAMSSECURITYMODEL, ASN_INTEGER, RWRITE,
      var_snmpTargetParamsEntry, 1, {SNMPTARGETPARAMSSECURITYMODELCOLUMN}},
-    {SNMPTARGETPARAMSSECURITYNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETPARAMSSECURITYNAME, ASN_OCTET_STR, RWRITE,
      var_snmpTargetParamsEntry, 1, {SNMPTARGETPARAMSSECURITYNAMECOLUMN}},
-    {SNMPTARGETPARAMSSECURITYLEVEL, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETPARAMSSECURITYLEVEL, ASN_INTEGER, RWRITE,
      var_snmpTargetParamsEntry, 1, {SNMPTARGETPARAMSSECURITYLEVELCOLUMN}},
-    {SNMPTARGETPARAMSSTORAGETYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETPARAMSSTORAGETYPE, ASN_INTEGER, RWRITE,
      var_snmpTargetParamsEntry, 1, {SNMPTARGETPARAMSSTORAGETYPECOLUMN}},
-    {SNMPTARGETPARAMSROWSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
+    {SNMPTARGETPARAMSROWSTATUS, ASN_INTEGER, RWRITE,
      var_snmpTargetParamsEntry, 1, {SNMPTARGETPARAMSROWSTATUSCOLUMN}}
 };
 
@@ -275,15 +278,15 @@ oid             snmpTargetParamsEntry_variables_oid[] =
 void
 init_snmpTargetParamsEntry(void)
 {
-    aPTable = NULL;
+    aPTable = 0;
 
     REGISTER_MIB("target/snmpTargetParamsEntry",
                  snmpTargetParamsEntry_variables, variable2,
                  snmpTargetParamsEntry_variables_oid);
 
     snmpd_register_config_handler("targetParams",
-                                  snmpd_parse_config_targetParams,
-                                  (void (*)(void))0, NULL);
+                                  snmpd_parse_config_targetParams, 0,
+                                  NULL);
 
     /*
      * we need to be called back later 
@@ -292,20 +295,13 @@ init_snmpTargetParamsEntry(void)
                            store_snmpTargetParamsEntry, NULL);
 }                               /*  init_snmpTargetParmsEntry  */
 
-void
-shutdown_snmpTargetParamsEntry(void)
-{
-    while (aPTable)
-	snmpTargetParamTable_remFromList(aPTable, &aPTable);
-}
-
 
 int
 snmpTargetParams_addParamName(struct targetParamTable_struct *entry,
                               char *cptr)
 {
     size_t          len;
-    if (cptr == NULL) {
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargetParamsEntry: no param name in config string\n"));
         return (0);
@@ -319,7 +315,9 @@ snmpTargetParams_addParamName(struct targetParamTable_struct *entry,
                         "ERROR snmpTargetParamsEntry: param name out of range in config string\n"));
             return (0);
         }
-        entry->paramName = strdup(cptr);
+        entry->paramName = (char *) malloc(len + 1);
+        strncpy(entry->paramName, cptr, len);
+        entry->paramName[len] = '\0';
     }
     return (1);
 }
@@ -329,11 +327,11 @@ int
 snmpTargetParams_addMPModel(struct targetParamTable_struct *entry,
                             char *cptr)
 {
-    if (cptr == NULL) {
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargetParamsEntry: no mp model in config string\n"));
         return (0);
-    } else if (!(isdigit((unsigned char)(*cptr)))) {
+    } else if (!(isdigit(*cptr))) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargeParamsEntry: mp model is not digit in config string\n"));
         return (0);
@@ -354,11 +352,11 @@ int
 snmpTargetParams_addSecModel(struct targetParamTable_struct *entry,
                              char *cptr)
 {
-    if (cptr == NULL) {
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargetParamsEntry: no sec model in config string\n"));
         return (0);
-    } else if (!(isdigit((unsigned char)(*cptr)))) {
+    } else if (!(isdigit(*cptr))) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargeParamsEntry: security model is not digit in config string\n"));
         return (0);
@@ -380,12 +378,16 @@ int
 snmpTargetParams_addSecName(struct targetParamTable_struct *entry,
                             char *cptr)
 {
-    if (cptr == NULL) {
+    size_t          len;
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargetParamsEntry: no security name in config string\n"));
         return (0);
     } else {
-        entry->secName = strdup(cptr);
+        len = strlen(cptr);
+        entry->secName = (char *) malloc(len + 1);
+        strncpy(entry->secName, cptr, len);
+        entry->secName[len] = '\0';
     }
     return (1);
 }                               /* snmpTargetParams_addSecName  */
@@ -395,11 +397,11 @@ int
 snmpTargetParams_addSecLevel(struct targetParamTable_struct *entry,
                              char *cptr)
 {
-    if (cptr == NULL) {
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargetParamsEntry: no security level in config string\n"));
         return (0);
-    } else if (!(isdigit((unsigned char)(*cptr)))) {
+    } else if (!(isdigit(*cptr))) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargeParamsEntry: security level is not digit in config string\n"));
         return (0);
@@ -421,11 +423,11 @@ int
 snmpTargetParams_addStorageType(struct targetParamTable_struct *entry,
                                 char *cptr)
 {
-    if (cptr == NULL) {
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargetParamsEntry: no storage type in config string\n"));
         return (0);
-    } else if (!(isdigit((unsigned char)(*cptr)))) {
+    } else if (!(isdigit(*cptr))) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargeParamsEntry: storage type is not digit in config string\n"));
         return (0);
@@ -459,11 +461,11 @@ int
 snmpTargetParams_addRowStatus(struct targetParamTable_struct *entry,
                               char *cptr)
 {
-    if (cptr == NULL) {
+    if (cptr == 0) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargetParamsEntry: no row status in config string\n"));
         return (0);
-    } else if (!(isdigit((unsigned char)(*cptr)))) {
+    } else if (!(isdigit(*cptr))) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargeParamsEntry: row status is not digit in config string\n"));
         return (0);
@@ -539,11 +541,13 @@ snmpd_parse_config_targetParams(const char *token, char *char_ptr)
         snmpTargetParamTable_dispose(newEntry);
         return;
     }
-    DEBUGMSGTL(("snmpTargetParamsEntry",
-                "snmp_parse_config_targetParams, read: %s %d %d %s %d %d %d\n",
-                newEntry->paramName, newEntry->mpModel, newEntry->secModel,
-                newEntry->secName, newEntry->secLevel, newEntry->storageType,
-                newEntry->rowStatus));
+    snprintf(buff, sizeof(buff),
+            "snmp_parse_config_targetParams, read: %s %d %d %s %d %d %d\n",
+            newEntry->paramName, newEntry->mpModel, newEntry->secModel,
+            newEntry->secName, newEntry->secLevel, newEntry->storageType,
+            newEntry->rowStatus);
+    buff[ sizeof(buff)-1 ] = 0;
+    DEBUGMSGTL(("snmpTargetParamsEntry", buff));
 
     update_timestamp(newEntry);
     snmpTargetParamTable_addToList(newEntry, &aPTable);
@@ -568,8 +572,8 @@ store_snmpTargetParamsEntry(int majorID, int minorID, void *serverarg,
     char            line[1024];
 
     strcpy(line, "");
-    if ((curr_struct = aPTable) != NULL) {
-        while (curr_struct != NULL) {
+    if ((curr_struct = aPTable) != 0) {
+        while (curr_struct != 0) {
             if ((curr_struct->storageType == SNMP_STORAGE_NONVOLATILE ||
                  curr_struct->storageType == SNMP_STORAGE_PERMANENT)
                 &&
@@ -615,7 +619,6 @@ var_snmpTargetParamsEntry(struct variable * vp,
     struct targetParamTable_struct *temp_struct;
 
     switch (vp->magic) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case SNMPTARGETPARAMSMPMODEL:
         *write_method = write_snmpTargetParamsMPModel;
         break;
@@ -634,21 +637,19 @@ var_snmpTargetParamsEntry(struct variable * vp,
     case SNMPTARGETPARAMSROWSTATUS:
         *write_method = write_snmpTargetParamsRowStatus;
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     default:
         *write_method = NULL;
     }
 
-    /* assume an integer and change later if not */
-    *var_len = sizeof(long_ret);
+    *var_len = sizeof(long_ret);        /* assume an integer and change later if not */
 
     /*
      * look for OID in current table 
      */
     if ((temp_struct = search_snmpTargetParamsTable(vp->name, vp->namelen,
                                                     name, length,
-                                                    exact)) == NULL) {
-        return NULL;
+                                                    exact)) == 0) {
+        return (0);
     }
 
     /*
@@ -664,7 +665,7 @@ var_snmpTargetParamsEntry(struct variable * vp,
          * if unset value, (i.e. new row) 
          */
         if (temp_struct->mpModel == -1)
-            return NULL;
+            return (0);
         long_ret = temp_struct->mpModel;
         return (unsigned char *) &long_ret;
 
@@ -673,7 +674,7 @@ var_snmpTargetParamsEntry(struct variable * vp,
          * if unset value, (i.e. new row) 
          */
         if (temp_struct->secModel == -1)
-            return NULL;
+            return (0);
         long_ret = temp_struct->secModel;
         return (unsigned char *) &long_ret;
 
@@ -681,8 +682,8 @@ var_snmpTargetParamsEntry(struct variable * vp,
         /*
          * if unset value, (i.e. new row) 
          */
-        if (temp_struct->secName == NULL)
-            return NULL;
+        if (temp_struct->secName == 0)
+            return (0);
         /*
          * including null character. 
          */
@@ -696,7 +697,7 @@ var_snmpTargetParamsEntry(struct variable * vp,
          * if unset value, (i.e. new row) 
          */
         if (temp_struct->secLevel == -1)
-            return NULL;
+            return (0);
         long_ret = temp_struct->secLevel;
         return (unsigned char *) &long_ret;
 
@@ -713,12 +714,9 @@ var_snmpTargetParamsEntry(struct variable * vp,
                     "unknown sub-id %d in var_snmpTargetParamsEntry\n",
                     vp->magic));
     }
-
-    return NULL;
+    return 0;
 }                               /* var_snmpTargetParamsEntry */
 
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 /*
  * Assign a value to the mpModel variable.  
  */
@@ -850,7 +848,7 @@ write_snmpTargetParamsSecModel(int action,
         }
         if (find_sec_mod(long_ret) == NULL && long_ret >= 3) {
             DEBUGMSGTL(("snmpTargetParamsEntry",
-                        "write to snmpTargetParamsSecModel: secModel %ld unsupported\n",
+                        "write to snmpTargetParamsSecModel: secModel %d unsupported\n",
                         long_ret));
             return SNMP_ERR_INCONSISTENTVALUE;
         }
@@ -1124,7 +1122,7 @@ write_snmpTargetParamsSecName(int action,
                         "write to snmpTargetParamsSecName: not ASN_OCTET_STR\n"));
             return SNMP_ERR_WRONGTYPE;
         }
-        if (var_val_len > 255) {
+        if (var_val_len > 255 || var_val_len < 0) {
             DEBUGMSGTL(("snmpTargetParamsEntry",
                         "write to snmpTargetParamsSecName: bad length\n"));
             return SNMP_ERR_WRONGLENGTH;
@@ -1281,7 +1279,7 @@ write_snmpTargetParamsRowStatus(int action,
         if (name_len < snmpTargetParamsOIDLen + 1 ||
             name_len > snmpTargetParamsOIDLen + 32) {
             DEBUGMSGTL(("snmpTargetParamsEntry", "bad index length %d\n",
-                        (int)(name_len - snmpTargetParamsOIDLen)));
+                        name_len - snmpTargetParamsOIDLen));
             return SNMP_ERR_NOCREATION;
         }
 
@@ -1374,7 +1372,6 @@ write_snmpTargetParamsRowStatus(int action,
                 update_timestamp(params);
             }
         }
-        snmp_store_needed(NULL);
     } else if (action == UNDO || action == FREE) {
         snmpTargetParamsOID[snmpTargetParamsOIDLen - 1] =
             SNMPTARGETPARAMSROWSTATUSCOLUMN;
@@ -1391,9 +1388,6 @@ write_snmpTargetParamsRowStatus(int action,
     return SNMP_ERR_NOERROR;
 }
 
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
-
 struct targetParamTable_struct *
 get_paramEntry(char *name)
 {
diff --git a/agent/mibgroup/target/snmpTargetParamsEntry.h b/agent/mibgroup/target/snmpTargetParamsEntry.h
index bd30582..9b5ab85 100644
--- a/agent/mibgroup/target/snmpTargetParamsEntry.h
+++ b/agent/mibgroup/target/snmpTargetParamsEntry.h
@@ -1,75 +1,77 @@
 
-  /*
-   * This file was generated by mib2c and is intended for use as a mib module
-   * for the ucd-snmp snmpd agent. Edited by Michael Baer
-   * 
-   * last changed 2/2/99.
-   */
- 
-  #ifndef _MIBGROUP_SNMPTARGETPARAMSENTRY_H
-  #define _MIBGROUP_SNMPTARGETPARAMSENTRY_H
- 
-      /*
-       * Magic number definitions: 
-       */
-  #define   SNMPTARGETPARAMSMPMODEL        1
-  #define   SNMPTARGETPARAMSSECURITYMODEL  2
-  #define   SNMPTARGETPARAMSSECURITYNAME   3
-  #define   SNMPTARGETPARAMSSECURITYLEVEL  4
-  #define   SNMPTARGETPARAMSSTORAGETYPE    5
-  #define   SNMPTARGETPARAMSROWSTATUS      6
-  #define   SNMPTARGETPARAMSMPMODELCOLUMN        2
-  #define   SNMPTARGETPARAMSSECURITYMODELCOLUMN  3
-  #define   SNMPTARGETPARAMSSECURITYNAMECOLUMN   4
-  #define   SNMPTARGETPARAMSSECURITYLEVELCOLUMN  5
-  #define   SNMPTARGETPARAMSSTORAGETYPECOLUMN    6
-  #define   SNMPTARGETPARAMSROWSTATUSCOLUMN      7
-      /*
-       * structure definitions 
-       */
-       struct targetParamTable_struct {
-           char           *paramName;
-           int             mpModel;
-           int             secModel;
-           char           *secName;
-           int             secLevel;
-           int             storageType;
-           int             rowStatus;
-           struct targetParamTable_struct *next;
-           time_t          updateTime;
-       };
- 
-  /*
-   * utility functions 
-   */
-       struct targetParamTable_struct *get_paramEntry(char *name);
-       void            snmpTargetParamTable_add(struct
-                                                targetParamTable_struct
-                                                *newEntry);
-       struct targetParamTable_struct *snmpTargetParamTable_create(void);
-       void snmpTargetParamTable_dispose(struct targetParamTable_struct *);
- 
-  /*
-   * function definitions 
-   */
- 
-       void            init_snmpTargetParamsEntry(void);
-       void            shutdown_snmpTargetParamsEntry(void);
-       int             store_snmpTargetParamsEntry(int majorID, int minorID,
-                                                   void *serverarg,
-                                                   void *clientarg);
-       extern FindVarMethod var_snmpTargetParamsEntry;
- 
-       void            snmpd_parse_config_targetParams(const char *, char *);
- 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
+/*
+ * This file was generated by mib2c and is intended for use as a mib module
+ * for the ucd-snmp snmpd agent. Edited by Michael Baer
+ * 
+ * last changed 2/2/99.
+ */
+
+#ifndef _MIBGROUP_SNMPTARGETPARAMSENTRY_H
+#define _MIBGROUP_SNMPTARGETPARAMSENTRY_H
+
+/*
+ * we use header_generic and checkmib from the util_funcs module 
+ */
+
+config_require(util_funcs)
+
+    /*
+     * Magic number definitions: 
+     */
+#define   SNMPTARGETPARAMSMPMODEL        1
+#define   SNMPTARGETPARAMSSECURITYMODEL  2
+#define   SNMPTARGETPARAMSSECURITYNAME   3
+#define   SNMPTARGETPARAMSSECURITYLEVEL  4
+#define   SNMPTARGETPARAMSSTORAGETYPE    5
+#define   SNMPTARGETPARAMSROWSTATUS      6
+#define   SNMPTARGETPARAMSMPMODELCOLUMN        2
+#define   SNMPTARGETPARAMSSECURITYMODELCOLUMN  3
+#define   SNMPTARGETPARAMSSECURITYNAMECOLUMN   4
+#define   SNMPTARGETPARAMSSECURITYLEVELCOLUMN  5
+#define   SNMPTARGETPARAMSSTORAGETYPECOLUMN    6
+#define   SNMPTARGETPARAMSROWSTATUSCOLUMN      7
+    /*
+     * structure definitions 
+     */
+     struct targetParamTable_struct {
+         char           *paramName;
+         int             mpModel;
+         int             secModel;
+         char           *secName;
+         int             secLevel;
+         int             storageType;
+         int             rowStatus;
+         struct targetParamTable_struct *next;
+         time_t          updateTime;
+     };
+
+/*
+ * utility functions 
+ */
+     struct targetParamTable_struct *get_paramEntry(char *name);
+     void            snmpTargetParamTable_add(struct
+                                              targetParamTable_struct
+                                              *newEntry);
+     struct targetParamTable_struct *snmpTargetParamTable_create(void);
+
+/*
+ * function definitions 
+ */
+
+     void            init_snmpTargetParamsEntry(void);
+     int             store_snmpTargetParamsEntry(int majorID, int minorID,
+                                                 void *serverarg,
+                                                 void *clientarg);
+     extern FindVarMethod var_snmpTargetParamsEntry;
+
+     void            snmpd_parse_config_targetParams(const char *, char *);
+
      WriteMethod     write_snmpTargetParamsMPModel;
      WriteMethod     write_snmpTargetParamsSecModel;
      WriteMethod     write_snmpTargetParamsSecName;
      WriteMethod     write_snmpTargetParamsSecLevel;
      WriteMethod     write_snmpTargetParamsStorageType;
      WriteMethod     write_snmpTargetParamsRowStatus;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
 
 #endif                          /* _MIBGROUP_SNMPTARGETPARAMSENTRY_H */
diff --git a/agent/mibgroup/target/target.c b/agent/mibgroup/target/target.c
index e6aa07f..901e99f 100644
--- a/agent/mibgroup/target/target.c
+++ b/agent/mibgroup/target/target.c
@@ -1,6 +1,8 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #if HAVE_STRING_H
 #include <string.h>
 #else
@@ -10,26 +12,10 @@
 #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"
 
-netsnmp_feature_require(tdomain_support)
-netsnmp_feature_require(tdomain_transport_oid)
-netsnmp_feature_want(netsnmp_tlstmAddr_get_serverId)
-
 #define MAX_TAGS 128
 
 netsnmp_session *
@@ -41,9 +27,6 @@ get_target_sessions(char *taglist, TargetFilterFunction * filterfunct,
     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));
@@ -176,83 +159,18 @@ get_target_sessions(char *taglist, TargetFilterFunction * filterfunct,
                                     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 = NULL;
-
-                                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, "localCert",
-                                                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, "peerCert",
-                                                cert->fingerprint);
-                                }
-#ifndef NETSNMP_FEATURE_REMOVE_TLSTMADDR_GET_SERVERID
-                                server_id = netsnmp_tlstmAddr_get_serverId(
-                                    targaddrs->name);
-#endif /* NETSNMP_FEATURE_REMOVE_TLSTMADDR_GET_SERVERID */
-                                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) * 1000;
                             thissess.retries = targaddrs->retryCount;
                             DEBUGMSGTL(("target_sessions",
-                                        "timeout: %d -> %ld\n",
+                                        "timeout: %d -> %d\n",
                                         targaddrs->timeout,
                                         thissess.timeout));
 
                             if (param->mpModel == SNMP_VERSION_3 &&
-                                param->secModel != SNMP_SEC_MODEL_USM &&
-                                param->secModel != SNMP_SEC_MODEL_TSM) {
+                                param->secModel != 3) {
                                 snmp_log(LOG_ERR,
-                                         "unsupported mpModel/secModel combo %d/%d for target %s\n",
-                                         param->mpModel, param->secModel,
+                                         "unsupported model/secmodel combo for target %s\n",
                                          targaddrs->name);
                                 /*
                                  * XXX: memleak 
diff --git a/agent/mibgroup/target/target_counters.c b/agent/mibgroup/target/target_counters.c
index 0109974..02ebb72 100644
--- a/agent/mibgroup/target/target_counters.c
+++ b/agent/mibgroup/target/target_counters.c
@@ -12,12 +12,12 @@
 #include "target_counters.h"
 #include <net-snmp/agent/instance.h>
 
+static oid   unavailable_context_oid[] = { 1, 3, 6, 1, 6, 3, 12, 1, 4 };
+static oid   unknown_context_oid[]     = { 1, 3, 6, 1, 6, 3, 12, 1, 5 };
+
 void
 init_target_counters(void)
 {
-    const oid unavailable_context_oid[] = { 1, 3, 6, 1, 6, 3, 12, 1, 4 };
-    const oid unknown_context_oid[]     = { 1, 3, 6, 1, 6, 3, 12, 1, 5 };
-
     DEBUGMSGTL(("target_counters", "initializing\n"));
 
     /*
@@ -44,7 +44,6 @@ init_target_counters(void)
 
 }
 
-
 int
 get_unknown_context_count(netsnmp_mib_handler *handler,
                           netsnmp_handler_registration *reginfo,
diff --git a/agent/mibgroup/target/target_counters.h b/agent/mibgroup/target/target_counters.h
index 355f391..a7dbf0a 100644
--- a/agent/mibgroup/target/target_counters.h
+++ b/agent/mibgroup/target/target_counters.h
@@ -2,9 +2,6 @@
  * testhandler.h 
  */
 
-config_exclude(target/target_counters)
-
 void            init_target_counters(void);
-
 Netsnmp_Node_Handler get_unavailable_context_count;
 Netsnmp_Node_Handler get_unknown_context_count;
diff --git a/agent/mibgroup/target/target_counters_5_5.c b/agent/mibgroup/target/target_counters_5_5.c
deleted file mode 100644
index a32207b..0000000
--- a/agent/mibgroup/target/target_counters_5_5.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-
-#include <net-snmp/net-snmp-features.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 "target_counters_5_5.h"
-
-#include <net-snmp/agent/snmp_get_statistic.h>
-
-netsnmp_feature_require(helper_statistics)
-
-void
-init_target_counters_5_5(void)
-{
-    oid target_oid[] = { 1, 3, 6, 1, 6, 3, 12, 1 };
-
-    DEBUGMSGTL(("target_counters", "initializing\n"));
-
-    NETSNMP_REGISTER_STATISTIC_HANDLER(
-        netsnmp_create_handler_registration(
-            "target_counters", NULL, target_oid, OID_LENGTH(target_oid),
-            HANDLER_CAN_RONLY), 4, TARGET);
-}
diff --git a/agent/mibgroup/target/target_counters_5_5.h b/agent/mibgroup/target/target_counters_5_5.h
deleted file mode 100644
index 4960bf1..0000000
--- a/agent/mibgroup/target/target_counters_5_5.h
+++ /dev/null
@@ -1,3 +0,0 @@
-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 0557102..43f5293 100644
--- a/agent/mibgroup/tcp-mib/data_access/tcpConn.h
+++ b/agent/mibgroup/tcp-mib/data_access/tcpConn.h
@@ -1,7 +1,7 @@
 /*
  * tcpConn data access header
  *
- * $Id$
+ * $Id: tcpConn.h 15387 2006-10-10 21:13:36Z tanders $
  */
 /**---------------------------------------------------------------------*/
 /*
@@ -20,15 +20,8 @@
 config_require(tcp-mib/data_access/tcpConn_common)
 #if defined( linux )
 config_require(tcp-mib/data_access/tcpConn_linux)
-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
 #   define NETSNMP_TCPCONN_COMMON_ONLY
 #endif
diff --git a/agent/mibgroup/tcp-mib/data_access/tcpConn_common.c b/agent/mibgroup/tcp-mib/data_access/tcpConn_common.c
index bba01fe..5d4e8c0 100644
--- a/agent/mibgroup/tcp-mib/data_access/tcpConn_common.c
+++ b/agent/mibgroup/tcp-mib/data_access/tcpConn_common.c
@@ -1,7 +1,7 @@
 /*
  *  TcpConn MIB architecture support
  *
- * $Id$
+ * $Id: tcpConn_common.c 16724 2007-10-14 22:10:09Z magfr $
  */
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
@@ -164,13 +164,6 @@ netsnmp_access_tcpconn_entry_free(netsnmp_tcpconn_entry * entry)
     free(entry);
 }
 
-#ifdef TCPCONN_DELETE_SUPPORTED
-
-/* XXX TODO: these are currently unsupported everywhere; to enable the
-   functions first implement netsnmp_arch_tcpconn_entry_delete in the
-   tcpConn_{OS}.c file and then define TCPCONN_DELETE_SUPPORTED in the
-   tcpConn_{OS}.h file (which may need to be created first). */
-
 /**
  * update underlying data store (kernel) for entry
  *
@@ -196,11 +189,10 @@ netsnmp_access_tcpconn_entry_set(netsnmp_tcpconn_entry * entry)
     if (! (entry->flags & NETSNMP_ACCESS_TCPCONN_DELETE))
         return -1;
     
-    rc = netsnmp_arch_tcpconn_entry_delete(entry);
+    rc = netsnmp_arch_tcpconn_delete(entry);
     
     return rc;
 }
-#endif /* TCPCONN_DELETE_SUPPORTED */
 
 /**
  * update an old tcpconn_entry from a new one
diff --git a/agent/mibgroup/tcp-mib/data_access/tcpConn_freebsd4.c b/agent/mibgroup/tcp-mib/data_access/tcpConn_freebsd4.c
deleted file mode 100644
index fed1e84..0000000
--- a/agent/mibgroup/tcp-mib/data_access/tcpConn_freebsd4.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- *  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 26c9a73..7ffebe6 100644
--- a/agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c
+++ b/agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c
@@ -1,7 +1,7 @@
 /*
  *  tcpConnTable MIB architecture support
  *
- * $Id$
+ * $Id: tcpConn_linux.c 15654 2006-12-08 14:30:56Z rstory $
  */
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
@@ -11,7 +11,7 @@
 
 #include "tcp-mib/tcpConnectionTable/tcpConnectionTable_constants.h"
 #include "tcp-mib/data_access/tcpConn_private.h"
-#include "mibgroup/util_funcs/get_pid_from_inode.h"
+
 static int
 linux_states[12] = { 1, 5, 3, 4, 6, 7, 11, 1, 8, 9, 2, 10 };
 
@@ -56,19 +56,18 @@ netsnmp_arch_tcpconn_entry_copy(netsnmp_tcpconn_entry *lhs,
     return 0;
 }
 
-#ifdef TCPCONN_DELETE_SUPPORTED
 /*
  * delete an entry
  */
 int
-netsnmp_arch_tcpconn_entry_delete(netsnmp_tcpconn_entry *entry)
+netsnmp_arch_tcpconn_delete(netsnmp_tcpconn_entry *entry)
 {
     if (NULL == entry)
         return -1;
     /** xxx-rks:9 tcpConn delete not implemented */
     return -1;
 }
-#endif /* TCPCONN_DELETE_SUPPORTED */
+
 
 /**
  *
@@ -82,10 +81,7 @@ netsnmp_arch_tcpconn_container_load(netsnmp_container *container,
     int rc = 0;
 
     DEBUGMSGTL(("access:tcpconn:container",
-                "tcpconn_container_arch_load (flags %x)\n", load_flags));
-
-    /* Setup the pid_from_inode table, and fill it.*/
-    netsnmp_get_pid_from_inode_init();
+                "tcpconn_container_arch_load (flags %p)\n", load_flags));
 
     if (NULL == container) {
         snmp_log(LOG_ERR, "no container specified/found for access_tcpconn\n");
@@ -138,17 +134,16 @@ _load4(netsnmp_container *container, u_int load_flags)
      */
     while (fgets(line, sizeof(line), in)) {
         netsnmp_tcpconn_entry *entry;
-        unsigned int    state, local_port, remote_port, tmp_state;
-        unsigned long long inode;
+        int             state, rc, local_port, remote_port, tmp_state;
         size_t          buf_len, offset;
-        char            local_addr[10], remote_addr[10];
+        u_char          local_addr[10], remote_addr[10];
         u_char         *tmp_ptr;
 
-        if (6 != (rc = sscanf(line, "%*d: %8[0-9A-Z]:%x %8[0-9A-Z]:%x %x %*x:%*x %*x:%*x %*x %*x %*x %llu",
+        if (5 != (rc = sscanf(line, "%*d: %8[0-9A-Z]:%x %8[0-9A-Z]:%x %x",
                               local_addr, &local_port,
-                              remote_addr, &remote_port, &tmp_state, &inode))) {
+                              remote_addr, &remote_port, &tmp_state))) {
             DEBUGMSGT(("access:tcpconn:container",
-                       "error parsing line (%d != 6)\n", rc));
+                       "error parsing line (%d != 5)\n", rc));
             DEBUGMSGT(("access:tcpconn:container"," line '%s'\n", line));
             continue;
         }
@@ -185,8 +180,7 @@ _load4(netsnmp_container *container, u_int load_flags)
         entry->loc_port = (unsigned short) local_port;
         entry->rmt_port = (unsigned short) remote_port;
         entry->tcpConnState = state;
-        entry->pid = netsnmp_get_pid_from_inode(inode);
-
+        
         /** the addr string may need work */
         buf_len = strlen(local_addr);
         if ((8 != buf_len) ||
@@ -260,16 +254,27 @@ _load6(netsnmp_container *container, u_int load_flags)
     int             rc = 0;
     FILE           *in;
     char            line[180];
+    static int      log_open_err = 1;
 
     netsnmp_assert(NULL != container);
 
 #undef PROCFILE
 #define PROCFILE "/proc/net/tcp6"
     if (!(in = fopen(PROCFILE, "r"))) {
-        DEBUGMSGTL(("access:tcpconn:container","could not open " PROCFILE "\n"));
+        snmp_log(LOG_ERR,"could not open " PROCFILE "\n");
+        if (1 == log_open_err) {
+            snmp_log(LOG_ERR,"could not open " PROCFILE "\n");
+            log_open_err = 0;
+        }
         return -2;
     }
-
+    /*
+     * if we turned off logging of open errors, turn it back on now that
+     * we have been able to open the file.
+     */
+    if (0 == log_open_err)
+        log_open_err = 1;
+    
     fgets(line, sizeof(line), in); /* skip header */
 
     /*
@@ -280,17 +285,16 @@ _load6(netsnmp_container *container, u_int load_flags)
      */
     while (fgets(line, sizeof(line), in)) {
         netsnmp_tcpconn_entry *entry;
-        int             state, local_port, remote_port, tmp_state;
-        unsigned long long  inode;
+        int             state, rc, local_port, remote_port, tmp_state;
         size_t          buf_len, offset;
-        char            local_addr[48], remote_addr[48];
+        u_char          local_addr[48], remote_addr[48];
         u_char         *tmp_ptr;
 
-        if (6 != (rc = sscanf(line, "%*d: %47[0-9A-Z]:%x %47[0-9A-Z]:%x %x %*x:%*x %*x:%*x %*x %*x %*x %llu",
+        if (5 != (rc = sscanf(line, "%*d: %47[0-9A-Z]:%x %47[0-9A-Z]:%x %x",
                               local_addr, &local_port,
-                              remote_addr, &remote_port, &tmp_state, &inode))) {
+                              remote_addr, &remote_port, &tmp_state))) {
             DEBUGMSGT(("access:tcpconn:container",
-                       "error parsing line (%d != 6)\n", rc));
+                       "error parsing line (%d != 5)\n", rc));
             DEBUGMSGT(("access:tcpconn:container"," line '%s'\n", line));
             continue;
         }
@@ -327,10 +331,9 @@ _load6(netsnmp_container *container, u_int load_flags)
         entry->loc_port = (unsigned short) local_port;
         entry->rmt_port = (unsigned short) remote_port;
         entry->tcpConnState = state;
-        entry->pid = netsnmp_get_pid_from_inode(inode);
 
         /** the addr string may need work */
-        buf_len = strlen(local_addr);
+        buf_len = strlen((char*)local_addr);
         if ((32 != buf_len) ||
             (-1 == netsnmp_addrstr_hton(local_addr, 32))) {
             DEBUGMSGT(("verbose:access:tcpconn:container",
diff --git a/agent/mibgroup/tcp-mib/data_access/tcpConn_netbsd.c b/agent/mibgroup/tcp-mib/data_access/tcpConn_netbsd.c
deleted file mode 100644
index b4229ff..0000000
--- a/agent/mibgroup/tcp-mib/data_access/tcpConn_netbsd.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- *  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
deleted file mode 100644
index 001064f..0000000
--- a/agent/mibgroup/tcp-mib/data_access/tcpConn_openbsd.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- *  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 889299a..7c2c6ae 100644
--- a/agent/mibgroup/tcp-mib/data_access/tcpConn_solaris2.c
+++ b/agent/mibgroup/tcp-mib/data_access/tcpConn_solaris2.c
@@ -39,16 +39,14 @@ netsnmp_arch_tcpconn_entry_copy(netsnmp_tcpconn_entry *ep1,
     return 0;
 }
 
-#ifdef TCPCONN_DELETE_SUPPORTED
 int 
-netsnmp_arch_tcpconn_entry_delete(netsnmp_tcpconn_entry *ep)
+netsnmp_arch_tcpconn_delete(netsnmp_tcpconn_entry *ep)
 {
     /*
      * Not implemented 
      */
     return (-1);
 }
-#endif /* TCPCONN_DELETE_SUPPORTED */
 
 int 
 netsnmp_arch_tcpconn_container_load(netsnmp_container * container, 
diff --git a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c
index c999a0e..4c61fe2 100644
--- a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c
+++ b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: tcpConnectionTable.c 17861 2009-12-02 15:39:04Z jsafranek $
  */
 /** \page MFD helper for tcpConnectionTable
  *
@@ -26,8 +26,8 @@
 
 #include "tcpConnectionTable_interface.h"
 
-const oid       tcpConnectionTable_oid[] = { TCPCONNECTIONTABLE_OID };
-const int       tcpConnectionTable_oid_size =
+oid             tcpConnectionTable_oid[] = { TCPCONNECTIONTABLE_OID };
+int             tcpConnectionTable_oid_size =
 OID_LENGTH(tcpConnectionTable_oid);
 
 tcpConnectionTable_registration tcpConnectionTable_user_context;
@@ -308,14 +308,14 @@ tcpConnectionTable_indexes_set_tbl_idx(tcpConnectionTable_mib_index *
                                        tbl_idx,
                                        u_long
                                        tcpConnectionLocalAddressType_val,
-                                       const void
+                                       char
                                        *tcpConnectionLocalAddress_val_ptr,
                                        size_t
                                        tcpConnectionLocalAddress_val_ptr_len,
                                        u_long tcpConnectionLocalPort_val,
                                        u_long
                                        tcpConnectionRemAddressType_val,
-                                       const void
+                                       char
                                        *tcpConnectionRemAddress_val_ptr,
                                        size_t
                                        tcpConnectionRemAddress_val_ptr_len,
@@ -355,7 +355,8 @@ tcpConnectionTable_indexes_set_tbl_idx(tcpConnectionTable_mib_index *
         tcpConnectionLocalAddress_val_ptr_len;
     memcpy(tbl_idx->tcpConnectionLocalAddress,
            tcpConnectionLocalAddress_val_ptr,
-           tcpConnectionLocalAddress_val_ptr_len);
+           tcpConnectionLocalAddress_val_ptr_len *
+           sizeof(tcpConnectionLocalAddress_val_ptr[0]));
 
     /*
      * tcpConnectionLocalPort(3)/InetPortNumber/ASN_UNSIGNED/u_long(u_long)//l/a/w/e/R/d/H 
@@ -388,7 +389,8 @@ tcpConnectionTable_indexes_set_tbl_idx(tcpConnectionTable_mib_index *
         tcpConnectionRemAddress_val_ptr_len;
     memcpy(tbl_idx->tcpConnectionRemAddress,
            tcpConnectionRemAddress_val_ptr,
-           tcpConnectionRemAddress_val_ptr_len);
+           tcpConnectionRemAddress_val_ptr_len *
+           sizeof(tcpConnectionRemAddress_val_ptr[0]));
 
     /*
      * tcpConnectionRemPort(6)/InetPortNumber/ASN_UNSIGNED/u_long(u_long)//l/a/w/e/R/d/H 
@@ -404,7 +406,7 @@ tcpConnectionTable_indexes_set_tbl_idx(tcpConnectionTable_mib_index *
  * @internal
  * set row context indexes
  *
- * @param rowreq_ctx the row context that needs updated indexes
+ * @param reqreq_ctx the row context that needs updated indexes
  *
  * @retval MFD_SUCCESS     : success.
  * @retval MFD_ERROR       : other error.
@@ -416,12 +418,12 @@ tcpConnectionTable_indexes_set_tbl_idx(tcpConnectionTable_mib_index *
 int
 tcpConnectionTable_indexes_set(tcpConnectionTable_rowreq_ctx * rowreq_ctx,
                                u_long tcpConnectionLocalAddressType_val,
-                               const void *tcpConnectionLocalAddress_val_ptr,
+                               char *tcpConnectionLocalAddress_val_ptr,
                                size_t
                                tcpConnectionLocalAddress_val_ptr_len,
                                u_long tcpConnectionLocalPort_val,
                                u_long tcpConnectionRemAddressType_val,
-                               const void *tcpConnectionRemAddress_val_ptr,
+                               char *tcpConnectionRemAddress_val_ptr,
                                size_t tcpConnectionRemAddress_val_ptr_len,
                                u_long tcpConnectionRemPort_val)
 {
diff --git a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.h b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.h
index 17d3105..06bdb3c 100644
--- a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.h
+++ b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: tcpConnectionTable.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 #ifndef TCPCONNECTIONTABLE_H
 #define TCPCONNECTIONTABLE_H
@@ -301,8 +301,8 @@ config_require(tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access)
         * tcpConnectionTable_row_find_by_mib_index
         (tcpConnectionTable_mib_index * mib_idx);
 
-    extern const oid      tcpConnectionTable_oid[];
-    extern const int      tcpConnectionTable_oid_size;
+    extern oid      tcpConnectionTable_oid[];
+    extern int      tcpConnectionTable_oid_size;
 
 
 #include "tcpConnectionTable_interface.h"
@@ -362,7 +362,7 @@ config_require(tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access)
                                                * tbl_idx,
                                                u_long
                                                tcpConnectionLocalAddressType_val,
-                                               const void
+                                               char
                                                *tcpConnectionLocalAddress_val_ptr,
                                                size_t
                                                tcpConnectionLocalAddress_val_ptr_len,
@@ -370,7 +370,7 @@ config_require(tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access)
                                                tcpConnectionLocalPort_val,
                                                u_long
                                                tcpConnectionRemAddressType_val,
-                                               const void
+                                               char
                                                *tcpConnectionRemAddress_val_ptr,
                                                size_t
                                                tcpConnectionRemAddress_val_ptr_len,
@@ -396,14 +396,14 @@ config_require(tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access)
                                        rowreq_ctx,
                                        u_long
                                        tcpConnectionLocalAddressType_val,
-                                       const void
+                                       char
                                        *tcpConnectionLocalAddress_val_ptr,
                                        size_t
                                        tcpConnectionLocalAddress_val_ptr_len,
                                        u_long tcpConnectionLocalPort_val,
                                        u_long
                                        tcpConnectionRemAddressType_val,
-                                       const void
+                                       char
                                        *tcpConnectionRemAddress_val_ptr,
                                        size_t
                                        tcpConnectionRemAddress_val_ptr_len,
diff --git a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_constants.h b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_constants.h
index f998a7f..01f7215 100644
--- a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_constants.h
+++ b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: tcpConnectionTable_constants.h 13776 2005-12-01 21:42:04Z rstory $
  */
 #ifndef TCPCONNECTIONTABLE_CONSTANTS_H
 #define TCPCONNECTIONTABLE_CONSTANTS_H
diff --git a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c
index dfb9649..2c2c095 100644
--- a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c
+++ b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: tcpConnectionTable_data_access.c 17861 2009-12-02 15:39:04Z jsafranek $
  */
 /*
  * standard Net-SNMP includes 
@@ -187,12 +187,7 @@ _add_connection(netsnmp_tcpconn_entry *entry, netsnmp_container *container)
                                                        entry->rmt_addr,
                                                        entry->rmt_addr_len,
                                                        entry->rmt_port))) {
-        if (CONTAINER_INSERT(container, rowreq_ctx)) {
-            NETSNMP_LOGONCE((LOG_DEBUG,
-                    "Error inserting entry to tcpConnectionTable,"\
-                    " entry already exists.\n"));
-            tcpConnectionTable_release_rowreq_ctx(rowreq_ctx);
-        }
+        CONTAINER_INSERT(container, rowreq_ctx);
     } else {
         if (rowreq_ctx) {
             snmp_log(LOG_ERR, "error setting index while loading "
@@ -265,7 +260,7 @@ tcpConnectionTable_container_load(netsnmp_container *container)
                                           NETSNMP_ACCESS_TCPCONN_FREE_DONT_CLEAR);
 
     DEBUGMSGT(("verbose:tcpConnectionTable:tcpConnectionTable_cache_load",
-               "%d records\n", (int)CONTAINER_SIZE(container)));
+               "%d records\n", CONTAINER_SIZE(container)));
 
     return MFD_SUCCESS;
 }                               /* tcpConnectionTable_container_load */
diff --git a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.h b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.h
index cd47815..350165a 100644
--- a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.h
+++ b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: tcpConnectionTable_data_access.h 13776 2005-12-01 21:42:04Z rstory $
  */
 #ifndef TCPCONNECTIONTABLE_DATA_ACCESS_H
 #define TCPCONNECTIONTABLE_DATA_ACCESS_H
diff --git a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c
index d0b27e5..9bd5606 100644
--- a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c
+++ b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: tcpConnectionTable_interface.c 15015 2006-08-17 15:06:43Z rstory $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -47,18 +46,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_child_of(tcpConnectionTable_external_access, libnetsnmpmibs)
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(check_all_requests_error)
-
-
-netsnmp_feature_child_of(tcpConnectionTable_container_size, tcpConnectionTable_external_access)
-netsnmp_feature_child_of(tcpConnectionTable_registration_set, tcpConnectionTable_external_access)
-netsnmp_feature_child_of(tcpConnectionTable_registration_get, tcpConnectionTable_external_access)
-netsnmp_feature_child_of(tcpConnectionTable_container_get, tcpConnectionTable_external_access)
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -95,23 +82,19 @@ static void
                 _tcpConnectionTable_container_shutdown(tcpConnectionTable_interface_ctx *
                                                        if_ctx);
 
-#ifndef NETSNMP_FEATURE_REMOVE_TCPCONNECTIONTABLE_CONTAINER_GET
+
 netsnmp_container *
 tcpConnectionTable_container_get(void)
 {
     return tcpConnectionTable_if_ctx.container;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TCPCONNECTIONTABLE_CONTAINER_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TCPCONNECTIONTABLE_REGISTRATION_GET
 tcpConnectionTable_registration *
 tcpConnectionTable_registration_get(void)
 {
     return tcpConnectionTable_if_ctx.user_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TCPCONNECTIONTABLE_REGISTRATION_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TCPCONNECTIONTABLE_REGISTRATION_SET
 tcpConnectionTable_registration *
 tcpConnectionTable_registration_set(tcpConnectionTable_registration *
                                     newreg)
@@ -121,15 +104,12 @@ tcpConnectionTable_registration_set(tcpConnectionTable_registration *
     tcpConnectionTable_if_ctx.user_ctx = newreg;
     return old;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TCPCONNECTIONTABLE_REGISTRATION_SET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TCPCONNECTIONTABLE_CONTAINER_SIZE
 int
 tcpConnectionTable_container_size(void)
 {
     return CONTAINER_SIZE(tcpConnectionTable_if_ctx.container);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TCPCONNECTIONTABLE_CONTAINER_SIZE */
 
 u_int
 tcpConnectionTable_dirty_get(void)
@@ -153,7 +133,6 @@ static Netsnmp_Node_Handler _mfd_tcpConnectionTable_pre_request;
 static Netsnmp_Node_Handler _mfd_tcpConnectionTable_post_request;
 static Netsnmp_Node_Handler _mfd_tcpConnectionTable_object_lookup;
 static Netsnmp_Node_Handler _mfd_tcpConnectionTable_get_values;
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 static Netsnmp_Node_Handler _mfd_tcpConnectionTable_check_objects;
 static Netsnmp_Node_Handler _mfd_tcpConnectionTable_undo_setup;
 static Netsnmp_Node_Handler _mfd_tcpConnectionTable_set_values;
@@ -168,7 +147,6 @@ NETSNMP_STATIC_INLINE int
                 _tcpConnectionTable_undo_column(tcpConnectionTable_rowreq_ctx * rowreq_ctx,
                                                 netsnmp_variable_list *
                                                 var, int column);
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 /**
  * @internal
@@ -213,7 +191,7 @@ _tcpConnectionTable_initialize_interface(tcpConnectionTable_registration *
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = TCPCONNECTIONTABLE_MIN_COL;
     tbl_info->max_column = TCPCONNECTIONTABLE_MAX_COL;
@@ -252,7 +230,7 @@ _tcpConnectionTable_initialize_interface(tcpConnectionTable_registration *
     access_multiplexer->post_request =
         _mfd_tcpConnectionTable_post_request;
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
+
     /*
      * REQUIRED wrappers for set request handling
      */
@@ -277,7 +255,6 @@ _tcpConnectionTable_initialize_interface(tcpConnectionTable_registration *
      */
     access_multiplexer->consistency_checks =
         _mfd_tcpConnectionTable_check_dependencies;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     /*************************************************
      *
@@ -291,11 +268,8 @@ _tcpConnectionTable_initialize_interface(tcpConnectionTable_registration *
         netsnmp_handler_registration_create("tcpConnectionTable", handler,
                                             tcpConnectionTable_oid,
                                             tcpConnectionTable_oid_size,
-                                            HANDLER_CAN_BABY_STEP
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
-                                          | HANDLER_CAN_RWRITE
-#endif
-                                          );
+                                            HANDLER_CAN_BABY_STEP |
+                                            HANDLER_CAN_RWRITE);
     if (NULL == reginfo) {
         snmp_log(LOG_ERR, "error registering table tcpConnectionTable\n");
         return;
@@ -308,12 +282,6 @@ _tcpConnectionTable_initialize_interface(tcpConnectionTable_registration *
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -321,6 +289,11 @@ _tcpConnectionTable_initialize_interface(tcpConnectionTable_registration *
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -336,7 +309,6 @@ _tcpConnectionTable_initialize_interface(tcpConnectionTable_registration *
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -803,7 +775,7 @@ _mfd_tcpConnectionTable_post_request(netsnmp_mib_handler *handler,
                                      *agtreq_info,
                                      netsnmp_request_info *requests)
 {
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -859,7 +831,7 @@ _mfd_tcpConnectionTable_object_lookup(netsnmp_mib_handler *handler, netsnmp_hand
                                       netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:tcpConnectionTable:_mfd_tcpConnectionTable_object_lookup", "called\n"));
@@ -940,7 +912,7 @@ _mfd_tcpConnectionTable_get_values(netsnmp_mib_handler *handler,
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1009,7 +981,6 @@ _mfd_tcpConnectionTable_get_values(netsnmp_mib_handler *handler,
 }                               /* _mfd_tcpConnectionTable_get_values */
 
 
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
 /***********************************************************************
  *
  * SET processing
@@ -1137,7 +1108,7 @@ _mfd_tcpConnectionTable_check_objects(netsnmp_mib_handler *handler, netsnmp_hand
                                       *agtreq_info,
                                       netsnmp_request_info *requests)
 {
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1185,7 +1156,7 @@ _mfd_tcpConnectionTable_check_dependencies(netsnmp_mib_handler *handler, netsnmp
                                            netsnmp_request_info *requests)
 {
     int             rc;
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:tcpConnectionTable:_mfd_tcpConnectionTable_check_dependencies", "called\n"));
 
@@ -1252,7 +1223,7 @@ _mfd_tcpConnectionTable_undo_setup(netsnmp_mib_handler *handler,
                                    netsnmp_request_info *requests)
 {
     int             rc;
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:tcpConnectionTable:_mfd_tcpConnectionTable_undo_setup", "called\n"));
@@ -1317,7 +1288,7 @@ _mfd_tcpConnectionTable_undo_cleanup(netsnmp_mib_handler *handler,
                                      *agtreq_info,
                                      netsnmp_request_info *requests)
 {
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1400,7 +1371,7 @@ _mfd_tcpConnectionTable_set_values(netsnmp_mib_handler *handler,
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1448,7 +1419,7 @@ _mfd_tcpConnectionTable_commit(netsnmp_mib_handler *handler,
                                netsnmp_request_info *requests)
 {
     int             rc;
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:tcpConnectionTable:_mfd_tcpConnectionTable_commit", "called\n"));
@@ -1482,7 +1453,7 @@ _mfd_tcpConnectionTable_undo_commit(netsnmp_mib_handler *handler,
                                     netsnmp_request_info *requests)
 {
     int             rc;
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:tcpConnectionTable:_mfd_tcpConnectionTable_undo_commit", "called\n"));
@@ -1561,7 +1532,7 @@ _mfd_tcpConnectionTable_undo_values(netsnmp_mib_handler *handler,
                                     netsnmp_request_info *requests)
 {
     int             rc;
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -1616,7 +1587,7 @@ _mfd_tcpConnectionTable_irreversible_commit(netsnmp_mib_handler *handler, netsnm
                                             *agtreq_info,
                                             netsnmp_request_info *requests)
 {
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:tcpConnectionTable:_mfd_tcpConnectionTable_irreversible:commit", "called\n"));
@@ -1637,7 +1608,6 @@ _mfd_tcpConnectionTable_irreversible_commit(netsnmp_mib_handler *handler, netsnm
 
     return SNMP_ERR_NOERROR;
 }                               /* _mfd_tcpConnectionTable_irreversible_commit */
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
 /***********************************************************************
  *
@@ -1761,12 +1731,9 @@ _tcpConnectionTable_container_init(tcpConnectionTable_interface_ctx *
     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 +1761,6 @@ _tcpConnectionTable_container_shutdown(tcpConnectionTable_interface_ctx *
 }                               /* _tcpConnectionTable_container_shutdown */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_TCPCONNECTIONTABLE_EXTERNAL_ACCESS
 tcpConnectionTable_rowreq_ctx *
 tcpConnectionTable_row_find_by_mib_index(tcpConnectionTable_mib_index *
                                          mib_idx)
@@ -1817,9 +1783,8 @@ tcpConnectionTable_row_find_by_mib_index(tcpConnectionTable_mib_index *
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
+    rowreq_ctx =
         CONTAINER_FIND(tcpConnectionTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TCPCONNECTIONTABLE_EXTERNAL_ACCESS */
diff --git a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.h b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.h
index c848bcb..02500d1 100644
--- a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.h
+++ b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: tcpConnectionTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.c b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.c
index ebd672b..3c1be1f 100644
--- a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.c
+++ b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: tcpListenerTable.c 17861 2009-12-02 15:39:04Z jsafranek $
  */
 /** \page MFD helper for tcpListenerTable
  *
@@ -26,8 +26,8 @@
 
 #include "tcpListenerTable_interface.h"
 
-const oid       tcpListenerTable_oid[] = { TCPLISTENERTABLE_OID };
-const int       tcpListenerTable_oid_size =
+oid             tcpListenerTable_oid[] = { TCPLISTENERTABLE_OID };
+int             tcpListenerTable_oid_size =
 OID_LENGTH(tcpListenerTable_oid);
 
 tcpListenerTable_registration tcpListenerTable_user_context;
diff --git a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.h b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.h
index 08a741a..9a96a8e 100644
--- a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.h
+++ b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: tcpListenerTable.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 #ifndef TCPLISTENERTABLE_H
 #define TCPLISTENERTABLE_H
@@ -182,8 +182,8 @@ config_require(tcp-mib/tcpListenerTable/tcpListenerTable_data_access)
         * tcpListenerTable_row_find_by_mib_index(tcpListenerTable_mib_index
                                                  * mib_idx);
 
-    extern const oid      tcpListenerTable_oid[];
-    extern const int      tcpListenerTable_oid_size;
+    extern oid      tcpListenerTable_oid[];
+    extern int      tcpListenerTable_oid_size;
 
 
 #include "tcpListenerTable_interface.h"
diff --git a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_constants.h b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_constants.h
index e7ecec6..fd9939e 100644
--- a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_constants.h
+++ b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: tcpListenerTable_constants.h 13787 2005-12-02 18:05:59Z rstory $
  */
 #ifndef TCPLISTENERTABLE_CONSTANTS_H
 #define TCPLISTENERTABLE_CONSTANTS_H
diff --git a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.c b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.c
index 4aa14ff..d41c0d7 100644
--- a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.c
+++ b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: tcpListenerTable_data_access.c 17861 2009-12-02 15:39:04Z jsafranek $
  */
 /*
  * standard Net-SNMP includes 
@@ -181,7 +181,7 @@ _add_connection(netsnmp_tcpconn_entry *entry, netsnmp_container *container)
     if ((NULL != rowreq_ctx) &&
         (MFD_SUCCESS == tcpListenerTable_indexes_set(rowreq_ctx,
                                                      entry->loc_addr_len,
-                                                     (char *) entry->loc_addr,
+                                                     entry->loc_addr,
                                                      entry->loc_addr_len,
                                                      entry->loc_port))) {
         CONTAINER_INSERT(container, rowreq_ctx);
@@ -258,7 +258,7 @@ tcpListenerTable_container_load(netsnmp_container *container)
                                           NETSNMP_ACCESS_TCPCONN_FREE_DONT_CLEAR);
 
     DEBUGMSGT(("verbose:tcpListenerTable:tcpListenerTable_cache_load",
-               "%d records\n", (int)CONTAINER_SIZE(container)));
+               "%d records\n", CONTAINER_SIZE(container)));
 
     return MFD_SUCCESS;
 }                               /* tcpListenerTable_container_load */
diff --git a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.h b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.h
index 1787ccf..3ec2e4c 100644
--- a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.h
+++ b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: tcpListenerTable_data_access.h 13787 2005-12-02 18:05:59Z rstory $
  */
 #ifndef TCPLISTENERTABLE_DATA_ACCESS_H
 #define TCPLISTENERTABLE_DATA_ACCESS_H
diff --git a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c
index 2e41380..78c4b6a 100644
--- a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c
+++ b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: tcpListenerTable_interface.c 15015 2006-08-17 15:06:43Z rstory $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -47,18 +46,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_child_of(tcpListenerTable_external_access, libnetsnmpmibs)
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(check_all_requests_error)
-
-
-netsnmp_feature_child_of(tcpListenerTable_container_size, tcpListenerTable_external_access)
-netsnmp_feature_child_of(tcpListenerTable_registration_set, tcpListenerTable_external_access)
-netsnmp_feature_child_of(tcpListenerTable_registration_get, tcpListenerTable_external_access)
-netsnmp_feature_child_of(tcpListenerTable_container_get, tcpListenerTable_external_access)
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -92,23 +79,19 @@ static void
                 _tcpListenerTable_container_shutdown(tcpListenerTable_interface_ctx *
                                                      if_ctx);
 
-#ifndef NETSNMP_FEATURE_REMOVE_TCPLISTENERTABLE_CONTAINER_GET
+
 netsnmp_container *
 tcpListenerTable_container_get(void)
 {
     return tcpListenerTable_if_ctx.container;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TCPLISTENERTABLE_CONTAINER_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TCPLISTENERTABLE_REGISTRATION_GET
 tcpListenerTable_registration *
 tcpListenerTable_registration_get(void)
 {
     return tcpListenerTable_if_ctx.user_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TCPLISTENERTABLE_REGISTRATION_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TCPLISTENERTABLE_REGISTRATION_SET
 tcpListenerTable_registration *
 tcpListenerTable_registration_set(tcpListenerTable_registration * newreg)
 {
@@ -116,15 +99,12 @@ tcpListenerTable_registration_set(tcpListenerTable_registration * newreg)
     tcpListenerTable_if_ctx.user_ctx = newreg;
     return old;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TCPLISTENERTABLE_REGISTRATION_SET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_TCPLISTENERTABLE_CONTAINER_SIZE
 int
 tcpListenerTable_container_size(void)
 {
     return CONTAINER_SIZE(tcpListenerTable_if_ctx.container);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TCPLISTENERTABLE_CONTAINER_SIZE */
 
 /*
  * mfd multiplexer modes
@@ -170,7 +150,7 @@ _tcpListenerTable_initialize_interface(tcpListenerTable_registration *
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = TCPLISTENERTABLE_MIN_COL;
     tbl_info->max_column = TCPLISTENERTABLE_MAX_COL;
@@ -235,13 +215,6 @@ _tcpListenerTable_initialize_interface(tcpListenerTable_registration *
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
-    /* XXX - are these actually necessary? */
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -249,6 +222,11 @@ _tcpListenerTable_initialize_interface(tcpListenerTable_registration *
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -264,7 +242,6 @@ _tcpListenerTable_initialize_interface(tcpListenerTable_registration *
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -630,7 +607,7 @@ _mfd_tcpListenerTable_post_request(netsnmp_mib_handler *handler,
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    tcpListenerTable_rowreq_ctx *rowreq_ctx = (tcpListenerTable_rowreq_ctx*)
+    tcpListenerTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -677,7 +654,7 @@ _mfd_tcpListenerTable_object_lookup(netsnmp_mib_handler *handler,
                                     netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    tcpListenerTable_rowreq_ctx *rowreq_ctx = (tcpListenerTable_rowreq_ctx*)
+    tcpListenerTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:tcpListenerTable:_mfd_tcpListenerTable_object_lookup", "called\n"));
@@ -748,7 +725,7 @@ _mfd_tcpListenerTable_get_values(netsnmp_mib_handler *handler,
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    tcpListenerTable_rowreq_ctx *rowreq_ctx = (tcpListenerTable_rowreq_ctx*)
+    tcpListenerTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -945,12 +922,9 @@ _tcpListenerTable_container_init(tcpListenerTable_interface_ctx * if_ctx)
     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");
@@ -978,7 +952,6 @@ _tcpListenerTable_container_shutdown(tcpListenerTable_interface_ctx *
 }                               /* _tcpListenerTable_container_shutdown */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_TCPLISTENERTABLE_EXTERNAL_ACCESS
 tcpListenerTable_rowreq_ctx *
 tcpListenerTable_row_find_by_mib_index(tcpListenerTable_mib_index *
                                        mib_idx)
@@ -1001,9 +974,8 @@ tcpListenerTable_row_find_by_mib_index(tcpListenerTable_mib_index *
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = (tcpListenerTable_rowreq_ctx*)
+    rowreq_ctx =
         CONTAINER_FIND(tcpListenerTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TCPLISTENERTABLE_EXTERNAL_ACCESS */
diff --git a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.h b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.h
index a584be6..dca6996 100644
--- a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.h
+++ b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: tcpListenerTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/testhandler.c b/agent/mibgroup/testhandler.c
index 8951319..8e6d708 100644
--- a/agent/mibgroup/testhandler.c
+++ b/agent/mibgroup/testhandler.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
@@ -10,11 +9,6 @@
 #include <strings.h>
 #endif
 
-netsnmp_feature_require(ulong_instance)
-netsnmp_feature_require(register_read_only_table_data)
-netsnmp_feature_require(table_build_result)
-netsnmp_feature_require(table_dataset)
-
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -80,8 +74,6 @@ init_testhandler(void)
         return;
 
     table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
-    if (table_info == NULL)
-        return;
 
     netsnmp_table_helper_add_indexes(table_info, ASN_INTEGER, ASN_INTEGER,
                                      0);
@@ -131,8 +123,6 @@ init_testhandler(void)
      * automatically parsed column and index information 
      */
     table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
-    if (table_info == NULL)
-        return;
 
     netsnmp_table_helper_add_indexes(table_info, ASN_INTEGER,
                                      ASN_OCTET_STR, 0);
@@ -214,13 +204,27 @@ my_test_table_handler(netsnmp_mib_handler *handler,
 {
 
     netsnmp_table_registration_info
+     
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
         *handler_reg_info =
         (netsnmp_table_registration_info *) handler->prev->myvoid;
-
     netsnmp_table_request_info *table_info;
     u_long          result;
     int             x, y;
 
+
     while (requests) {
         netsnmp_variable_list *var = requests->requestvb;
 
@@ -335,7 +339,6 @@ my_test_instance_handler(netsnmp_mib_handler *handler,
                                  (u_char *) & accesses, sizeof(accesses));
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
         if (requests->requestvb->type != ASN_UNSIGNED)
             netsnmp_set_request_error(reqinfo, requests,
@@ -379,7 +382,6 @@ my_test_instance_handler(netsnmp_mib_handler *handler,
          * nothing to do 
          */
         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
     }
 
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/tlstm-mib.h b/agent/mibgroup/tlstm-mib.h
deleted file mode 100644
index 50e6985..0000000
--- a/agent/mibgroup/tlstm-mib.h
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 7b10905..0000000
--- a/agent/mibgroup/tlstm-mib/snmpTlstmAddrTable.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#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
deleted file mode 100644
index 5493ff9..0000000
--- a/agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c
+++ /dev/null
@@ -1,1438 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  $
- */
-
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.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"
-
-netsnmp_feature_require(table_tdata)
-netsnmp_feature_require(tlstmaddr_container)
-netsnmp_feature_require(table_tdata_delete_table)
-netsnmp_feature_require(table_tdata_extract_table)
-netsnmp_feature_require(table_tdata_remove_row)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_storagetype)
-netsnmp_feature_require(check_vb_type_and_max_size)
-netsnmp_feature_require(table_tdata_insert_row)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-/** 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_scalar2(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
deleted file mode 100644
index 8c0b80a..0000000
--- a/agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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
deleted file mode 100644
index ebfa0ec..0000000
--- a/agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#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
deleted file mode 100644
index 84d1afb..0000000
--- a/agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c
+++ /dev/null
@@ -1,1377 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  $
- */
-
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.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"
-
-netsnmp_feature_require(table_tdata)
-netsnmp_feature_require(cert_fingerprints)
-netsnmp_feature_require(table_tdata_delete_table)
-netsnmp_feature_require(table_tdata_extract_table)
-netsnmp_feature_require(table_tdata_remove_row)
-netsnmp_feature_require(tls_fingerprint_build)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_storagetype)
-netsnmp_feature_require(check_vb_type_and_max_size)
-netsnmp_feature_require(check_vb_rowstatus_with_storagetype)
-netsnmp_feature_require(table_tdata_insert_row)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-/** 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_scalar2(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
deleted file mode 100644
index 42b8097..0000000
--- a/agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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
deleted file mode 100644
index d814be2..0000000
--- a/agent/mibgroup/tlstm-mib/snmpTlstmParamsTable.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#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
deleted file mode 100644
index cd54452..0000000
--- a/agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c
+++ /dev/null
@@ -1,1286 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  $
- */
-
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.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"
-
-netsnmp_feature_require(table_tdata)
-netsnmp_feature_require(tlstmparams_find)
-netsnmp_feature_require(tlstmparams_external)
-netsnmp_feature_require(cert_fingerprints)
-netsnmp_feature_require(table_tdata_delete_table)
-netsnmp_feature_require(table_tdata_extract_table)
-netsnmp_feature_require(table_tdata_remove_row)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-netsnmp_feature_require(check_vb_storagetype)
-netsnmp_feature_require(check_vb_type_and_max_size)
-netsnmp_feature_require(check_vb_rowstatus_with_storagetype)
-netsnmp_feature_require(table_tdata_insert_row)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-/** 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_scalar2(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
deleted file mode 100644
index ae33cac..0000000
--- a/agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 9bf4ef8..0000000
--- a/agent/mibgroup/tlstm-mib/snmpTlstmSession.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#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
deleted file mode 100644
index 09c7b60..0000000
--- a/agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 2fcc03c..0000000
--- a/agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#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
deleted file mode 100644
index aec01fe..0000000
--- a/agent/mibgroup/tsm-mib.h
+++ /dev/null
@@ -1,6 +0,0 @@
-/*
- * 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
deleted file mode 100644
index c3976c4..0000000
--- a/agent/mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * 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
deleted file mode 100644
index ba0c5b3..0000000
--- a/agent/mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * 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
deleted file mode 100644
index d1c4101..0000000
--- a/agent/mibgroup/tsm-mib/snmpTsmStats.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#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
deleted file mode 100644
index a567d2e..0000000
--- a/agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * snmpTsmStats
- */
-
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.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;
-
-netsnmp_feature_require(helper_statistics)
-
-netsnmp_feature_child_of(shutdown_snmptsmsession, netsnmp_unused)
-
-/** 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;
-    }
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_SHUTDOWN_SNMPTSMSESSION
-void
-shutdown_snmpTsmSession(void)
-{
-    if (_myreg) {
-        netsnmp_unregister_handler(_myreg);
-        _myreg = NULL;
-    }
-}
-#endif /* NETSNMP_FEATURE_REMOVE_SHUTDOWN_SNMPTSMSESSION */
diff --git a/agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h b/agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h
deleted file mode 100644
index 95007cf..0000000
--- a/agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#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 f9649ef..2a1cf78 100644
--- a/agent/mibgroup/tunnel/tunnel.c
+++ b/agent/mibgroup/tunnel/tunnel.c
@@ -62,8 +62,8 @@
 #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/sysORTable.h>
 
+#include "util_funcs.h"
 #include "tunnel.h"
 
 #ifndef MIN
@@ -137,35 +137,32 @@ struct variable4 tunnel_variables[] = {
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define   LOCALADDRESS          1
-    {LOCALADDRESS, ASN_IPADDRESS, NETSNMP_OLDAPI_RWRITE,
-     var_tunnelIfEntry, 3, {1, 1, 1}},
+    {LOCALADDRESS, ASN_IPADDRESS, RWRITE, var_tunnelIfEntry, 3, {1, 1, 1}},
 #define   REMOTEADDRESS         2
-    {REMOTEADDRESS, ASN_IPADDRESS, NETSNMP_OLDAPI_RWRITE,
-     var_tunnelIfEntry, 3, {1, 1, 2}},
+    {REMOTEADDRESS, ASN_IPADDRESS, RWRITE, var_tunnelIfEntry, 3,
+     {1, 1, 2}},
 #define   ENCAPSMETHOD          3
-    {ENCAPSMETHOD, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_tunnelIfEntry, 3, {1, 1, 3}},
+    {ENCAPSMETHOD, ASN_INTEGER, RONLY, var_tunnelIfEntry, 3, {1, 1, 3}},
 #define   HOPLIMIT              4
-    {HOPLIMIT, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_tunnelIfEntry, 3, {1, 1, 4}},
+    {HOPLIMIT, ASN_INTEGER, RWRITE, var_tunnelIfEntry, 3, {1, 1, 4}},
 #define   SECURITY              5
-    {SECURITY, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_tunnelIfEntry, 3, {1, 1, 5}},
+    {SECURITY, ASN_INTEGER, RONLY, var_tunnelIfEntry, 3, {1, 1, 5}},
 #define   TOS                   6
-    {TOS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_tunnelIfEntry, 3, {1, 1, 6}},
+    {TOS, ASN_INTEGER, RWRITE, var_tunnelIfEntry, 3, {1, 1, 6}},
 
 #define   IFINDEX               7
-    {IFINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_tunnelConfigEntry, 3, {2, 1, 5}},
+    {IFINDEX, ASN_INTEGER, RONLY, var_tunnelConfigEntry, 3, {2, 1, 5}},
 #define   ROWSTATUS             8
-    {ROWSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_tunnelConfigEntry, 3, {2, 1, 6}},
+    {ROWSTATUS, ASN_INTEGER, RWRITE, var_tunnelConfigEntry, 3, {2, 1, 6}},
 };
 
 
 
+extern int      register_sysORTable(oid *, size_t, const char *);
+extern int      unregister_sysORTable(oid *, size_t);
+
 static oid      sysORTable_reg[] = { 1, 3, 6, 1, 2, 1, 10, 131 };
+static size_t   sysORTable_reglen = 8;
 
 static struct tunnel *tunnels;
 
@@ -174,7 +171,7 @@ static struct tunnel *tunnels;
 void
 deinit_tunnel(void)
 {
-    UNREGISTER_SYSOR_ENTRY(sysORTable_reg);
+    unregister_sysORTable(sysORTable_reg, sysORTable_reglen);
 }
 
 
@@ -191,7 +188,7 @@ term_tunnel(int majorID, int minorID, void *serverarg, void *clientarg)
 void
 init_tunnel(void)
 {
-    REGISTER_SYSOR_ENTRY(sysORTable_reg,
+    register_sysORTable(sysORTable_reg, sysORTable_reglen,
                         "RFC 2667 TUNNEL-MIB implementation for "
                         "Linux 2.2.x kernels.");
 
@@ -216,8 +213,8 @@ getType(int index)
     oid             name[MAX_OID_LEN] = { 1, 3, 6, 1, 2, 1, 2, 2, 1, 3 };
     size_t          length = 10;
     struct variable ifType_variable =
-        { 3, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-          var_ifEntry, 10, {1, 3, 6, 1, 2, 1, 2, 2, 1, 3}
+        { 3, ASN_INTEGER, RONLY, var_ifEntry, 10,
+        {1, 3, 6, 1, 2, 1, 2, 2, 1, 3}
     };
     unsigned char  *p;
     size_t          var_len;
@@ -248,15 +245,15 @@ getType(int index)
 
 
 
-static const char *
+static char    *
 getName(int index)
 {
 #ifndef USING_IF_MIB_IFTABLE_IFTABLE_MODULE
     oid             name[MAX_OID_LEN] = { 1, 3, 6, 1, 2, 1, 2, 2, 1, 2 };
     size_t          length = 10;
     struct variable ifName_variable =
-        { 2, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-          var_ifEntry, 10, {1, 3, 6, 1, 2, 1, 2, 2, 1, 2}
+        { 2, ASN_INTEGER, RONLY, var_ifEntry, 10,
+        {1, 3, 6, 1, 2, 1, 2, 2, 1, 2}
     };
     unsigned char  *p;
     size_t          var_len;
@@ -410,7 +407,7 @@ updateTunnels(void)
     static int      max_index = 1;
     static struct tunnel *last_tunnel = NULL;
     struct tunnel  *tunnel;
-    const char     *ifname;
+    char           *ifname;
     int             type;
 
     /*
@@ -418,7 +415,7 @@ updateTunnels(void)
      */
     for (tunnel = tunnels; tunnel; tunnel = tunnel->next) {
         DEBUGMSG(("tunnel",
-                  "updateTunnels(): updating %s (index=%" NETSNMP_PRIo "u)\n",
+                  "updateTunnels(): updating %s (index=%d)\n",
                   tunnel->ifname, tunnel->ifindex));
         updateTunnel(tunnel);
     }
@@ -464,8 +461,7 @@ updateTunnels(void)
             last_tunnel = tunnel;
 
             DEBUGMSG(("tunnel",
-                      "updateTunnels(): added %s (index=%" NETSNMP_PRIo
-                      "u state=%d)\n",
+                      "updateTunnels(): added %s (index=%d state=%d)\n",
                       tunnel->ifname, tunnel->ifindex, tunnel->active));
         }
         if (type == 0)
@@ -486,8 +482,8 @@ getTunnelByIfIndex(int index)
         if (tunnel->ifindex == index) {
             if (!tunnel->active)
                 break;
-            DEBUGMSG(("tunnel", "%s (index=%" NETSNMP_PRIo "u)\n",
-                     tunnel->ifname, tunnel->ifindex));
+            DEBUGMSG(("tunnel",
+                      "%s (index=%d)\n", tunnel->ifname, tunnel->ifindex));
             return tunnel;
         }
     }
@@ -508,8 +504,8 @@ getNextTunnelByIfIndex(int index)
         if (tunnel->ifindex > index) {
             if (!tunnel->active)
                 continue;
-            DEBUGMSG(("tunnel", "%s (index=%" NETSNMP_PRIo "u)\n",
-                      tunnel->ifname, tunnel->ifindex));
+            DEBUGMSG(("tunnel",
+                      "%s (index=%d)\n", tunnel->ifname, tunnel->ifindex));
             return tunnel;
         }
     }
@@ -552,8 +548,8 @@ getTunnelByConfigOid(oid * name, size_t * length)
                               (*length) - tunnel_len - 3)) {
             if (!tunnel->active)
                 break;
-            DEBUGMSG(("tunnel", "%s (index=%" NETSNMP_PRIo "u)\n",
-                      tunnel->ifname, tunnel->ifindex));
+            DEBUGMSG(("tunnel",
+                      "%s (index=%d)\n", tunnel->ifname, tunnel->ifindex));
             return tunnel;
         }
     }
@@ -596,7 +592,8 @@ getNextTunnelByConfigOid(oid * name, size_t * length)
     }
 
     if (last_tunnel) {
-        DEBUGMSG(("tunnel", "%s (index=%" NETSNMP_PRIo "u)\n",
+        DEBUGMSG(("tunnel",
+                  "%s (index=%d)\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 324fbc4..7ce2a2f 100644
--- a/agent/mibgroup/ucd-snmp/disk.c
+++ b/agent/mibgroup/ucd-snmp/disk.c
@@ -4,12 +4,6 @@
 
 #include <net-snmp/net-snmp-config.h>
 
-/* workaround for bug in autoconf 2.60b and 2.61 */
-#ifdef HAVE_GETMNTENT
-#undef HAVE_GETMNTENT
-#define HAVE_GETMNTENT 1 /* previously might be only "#define HAVE_GETMNTENT" */
-#endif
-
 #include <stdio.h>
 
 #if HAVE_STDLIB_H
@@ -51,11 +45,9 @@
 #ifdef HAVE_SYS_STAT_H
 #include <sys/stat.h>
 #endif
-#if !defined(dragonfly)
 #ifdef HAVE_SYS_VNODE_H
 #include <sys/vnode.h>
 #endif
-#endif
 #ifdef HAVE_UFS_UFS_QUOTA_H
 #include <ufs/ufs/quota.h>
 #endif
@@ -81,9 +73,6 @@
 #if HAVE_SYS_VFS_H
 #include <sys/vfs.h>
 #endif
-#if defined(__FreeBSD__) && __FreeBSD_version >= 700055 	/* Or HAVE_SYS_UCRED_H */
-#include <sys/ucred.h>
-#endif
 #if defined(HAVE_STATFS)
 #if HAVE_SYS_MOUNT_H
 #include <sys/mount.h>
@@ -123,7 +112,11 @@
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -132,6 +125,9 @@
 #  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>
@@ -139,7 +135,7 @@
 
 #include "struct.h"
 #include "disk.h"
-#include "util_funcs/header_simple_table.h"
+#include "util_funcs.h"
 #if USING_UCD_SNMP_ERRORMIB_MODULE
 #include "errormib.h"
 #else
@@ -152,7 +148,6 @@
 static void       disk_free_config(void);
 static void       disk_parse_config(const char *, char *);
 static void       disk_parse_config_all(const char *, char *);
-#if HAVE_FSTAB_H || HAVE_GETMNTENT || HAVE_STATFS
 static void       find_and_add_allDisks(int minpercent);
 static void       add_device(char *path, char *device,
 	                     int minspace, int minpercent, int override);
@@ -160,7 +155,6 @@ static void       modify_disk_parameters(int index, int minspace,
 	                                 int minpercent);
 static int        disk_exists(char *path);
 static char      *find_device(char *path);
-#endif
 
 struct diskpart {
     char            device[STRMAX];
@@ -169,51 +163,34 @@ struct diskpart {
     int             minpercent;
 };
 
-#define MAX_INT_32 0x7fffffff
-#define MAX_UINT_32 0xffffffff
+#ifndef  INT32_MAX
+#define  INT32_MAX  0x7fffffff
+#endif
+
 
-unsigned int    numdisks;
+int             numdisks;
 int             allDisksIncluded = 0;
-unsigned int    maxdisks = 0;
+int             maxdisks = 0;
 struct diskpart *disks;
 
 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}},
+  {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_disk, 1, {MIBINDEX}},
+  {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_disk, 1, {ERRORNAME}},
+  {DISKDEVICE, ASN_OCTET_STR, RONLY, var_extensible_disk, 1,
+   {DISKDEVICE}},
+  {DISKMINIMUM, ASN_INTEGER, RONLY, var_extensible_disk, 1,
+   {DISKMINIMUM}},
+  {DISKMINPERCENT, ASN_INTEGER, RONLY, var_extensible_disk, 1,
+   {DISKMINPERCENT}},
+  {DISKTOTAL, ASN_INTEGER, RONLY, var_extensible_disk, 1, {DISKTOTAL}},
+  {DISKAVAIL, ASN_INTEGER, RONLY, var_extensible_disk, 1, {DISKAVAIL}},
+  {DISKUSED, ASN_INTEGER, RONLY, var_extensible_disk, 1, {DISKUSED}},
+  {DISKPERCENT, ASN_INTEGER, RONLY, var_extensible_disk, 1,
+   {DISKPERCENT}},
+  {DISKPERCENTNODE, ASN_INTEGER, RONLY, var_extensible_disk, 1,
+   {DISKPERCENTNODE}},
+  {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_disk, 1, {ERRORFLAG}},
+  {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_disk, 1, {ERRORMSG}}
 };
 
 /*
@@ -243,7 +220,7 @@ init_disk(void)
 static void
 disk_free_config(void)
 {
-  unsigned int             i;
+  int             i;
 
   numdisks = 0;
   for (i = 0; i < maxdisks; i++) {    /* init/erase disk db */
@@ -259,6 +236,7 @@ static void
 disk_parse_config(const char *token, char *cptr)
 {
 #if HAVE_FSTAB_H || HAVE_GETMNTENT || HAVE_STATFS
+  char            tmpbuf[1024];
   char            path[STRMAX];
   int             minpercent;
   int             minspace;
@@ -266,19 +244,23 @@ disk_parse_config(const char *token, char *cptr)
   if (numdisks == maxdisks) {
       if (maxdisks == 0) {
           maxdisks = 50;
-          disks = (struct diskpart *)malloc(maxdisks * sizeof(struct diskpart));
+          disks = malloc(maxdisks * sizeof(struct diskpart));
           if (!disks) {
               config_perror("malloc failed for new disk allocation.");
-	      netsnmp_config_error("\tignoring:  %s", cptr);
+              sprintf(tmpbuf, "\tignoring:  %s", cptr);
+              tmpbuf[ sizeof(tmpbuf)-1 ] = 0;
+              config_perror(tmpbuf);
               return;
           }
           memset(disks, 0, maxdisks * sizeof(struct diskpart));
       } else {
           maxdisks *= 2;
-          disks = (struct diskpart *)realloc(disks, maxdisks * sizeof(struct diskpart));
+          disks = realloc(disks, maxdisks * sizeof(struct diskpart));
           if (!disks) {
               config_perror("malloc failed for new disk allocation.");
-	      netsnmp_config_error("\tignoring:  %s", cptr);
+              sprintf(tmpbuf, "\tignoring:  %s", cptr);
+              tmpbuf[ sizeof(tmpbuf)-1 ] = 0;
+              config_perror(tmpbuf);
               return;
           }
           memset(disks + maxdisks/2, 0, maxdisks/2 * sizeof(struct diskpart));
@@ -296,7 +278,7 @@ disk_parse_config(const char *token, char *cptr)
    * read optional minimum disk usage spec 
    */
   if(cptr != NULL) {
-      if(strchr(cptr, '%') == NULL) {
+      if(strchr(cptr, '%') == 0) {
           minspace = atoi(cptr);
           minpercent = -1;
       }
@@ -321,24 +303,27 @@ static void
 disk_parse_config_all(const char *token, char *cptr)
 {
 #if HAVE_FSTAB_H || HAVE_GETMNTENT || HAVE_STATFS
+  char            tmpbuf[1024];
   int             minpercent = DISKMINPERCENT;
     
   if (numdisks == maxdisks) {
       if (maxdisks == 0) {
           maxdisks = 50;
-          disks = (struct diskpart *)malloc(maxdisks * sizeof(struct diskpart));
+          disks = malloc(maxdisks * sizeof(struct diskpart));
           if (!disks) {
               config_perror("malloc failed for new disk allocation.");
-	      netsnmp_config_error("\tignoring:  %s", cptr);
+              sprintf(tmpbuf, "\tignoring:  %s", cptr);
+              config_perror(tmpbuf);
               return;
           }
           memset(disks, 0, maxdisks * sizeof(struct diskpart));
       } else {
           maxdisks *= 2;
-          disks = (struct diskpart *)realloc(disks, maxdisks * sizeof(struct diskpart));
+          disks = realloc(disks, maxdisks * sizeof(struct diskpart));
           if (!disks) {
               config_perror("malloc failed for new disk allocation.");
-	      netsnmp_config_error("\tignoring:  %s", cptr);
+              sprintf(tmpbuf, "\tignoring:  %s", cptr);
+              config_perror(tmpbuf);
               return;
           }
           memset(disks + maxdisks/2, 0, maxdisks/2 * sizeof(struct diskpart));
@@ -348,7 +333,7 @@ disk_parse_config_all(const char *token, char *cptr)
    * read the minimum disk usage percent
    */
   if(cptr != NULL) {
-      if(strchr(cptr, '%') != NULL) {
+      if(strchr(cptr, '%') != 0) {
           minpercent = atoi(cptr);
       }
   }
@@ -360,7 +345,8 @@ disk_parse_config_all(const char *token, char *cptr)
    */
   if(allDisksIncluded) {
       config_perror("includeAllDisks already specified.");
-      netsnmp_config_error("\tignoring: includeAllDisks %s", cptr);
+      sprintf(tmpbuf, "\tignoring: includeAllDisks %s", cptr);
+      config_perror(tmpbuf);
   }
   else {
       allDisksIncluded = 1;
@@ -370,7 +356,6 @@ disk_parse_config_all(const char *token, char *cptr)
 }
 
 
-#if HAVE_FSTAB_H || HAVE_GETMNTENT || HAVE_STATFS
 static void
 add_device(char *path, char *device, int minspace, int minpercent, int override) 
 {
@@ -383,18 +368,24 @@ add_device(char *path, char *device, int minspace, int minpercent, int override)
   if (numdisks == maxdisks) {
       if (maxdisks == 0) {
           maxdisks = 50;
-          disks = (struct diskpart *)malloc(maxdisks * sizeof(struct diskpart));
+          disks = malloc(maxdisks * sizeof(struct diskpart));
           if (!disks) {
-	      netsnmp_config_error("\tignoring:  %s", device);
+              char tmpbuf[1024];
+              snprintf(tmpbuf, sizeof(tmpbuf), "\tignoring:  %s", device);
+              tmpbuf[ sizeof(tmpbuf)-1 ] = 0;
+              config_perror(tmpbuf);
               return;
           }
           memset(disks, 0, maxdisks * sizeof(struct diskpart));
       } else {
           maxdisks *= 2;
-          disks = (struct diskpart *)realloc(disks, maxdisks * sizeof(struct diskpart));
+          disks = realloc(disks, maxdisks * sizeof(struct diskpart));
           if (!disks) {
+              char tmpbuf[1024];
               config_perror("malloc failed for new disk allocation.");
-	      netsnmp_config_error("\tignoring:  %s", device);
+              snprintf(tmpbuf, sizeof(tmpbuf), "\tignoring:  %s", device);
+              tmpbuf[ sizeof(tmpbuf)-1 ] = 0;
+              config_perror(tmpbuf);
               return;
           }
           memset(disks + maxdisks/2, 0, maxdisks/2 * sizeof(struct diskpart));
@@ -409,8 +400,9 @@ add_device(char *path, char *device, int minspace, int minpercent, int override)
     /* add if and only if the device was found */
     if(device[0] != 0) {
       /* The following buffers are cleared above, no need to add '\0' */
-      strlcpy(disks[numdisks].path, path, sizeof(disks[numdisks].path));
-      strlcpy(disks[numdisks].device, device, sizeof(disks[numdisks].device));
+      strncpy(disks[numdisks].path, path, sizeof(disks[numdisks].path) - 1);
+      strncpy(disks[numdisks].device, device,
+              sizeof(disks[numdisks].device) - 1);
       disks[numdisks].minimumspace = minspace;
       disks[numdisks].minpercent   = minpercent;
       numdisks++;  
@@ -433,7 +425,7 @@ modify_disk_parameters(int index, int minspace, int minpercent)
 
 int disk_exists(char *path) 
 {
-  unsigned int index;
+  int index;
   for(index = 0; index < numdisks; index++) {
     DEBUGMSGTL(("ucd-snmp/disk", "Checking for %s. Found %s at %d\n", path, disks[index].path, index));
     if(strcmp(path, disks[index].path) == 0) {
@@ -462,10 +454,8 @@ find_and_add_allDisks(int minpercent)
   int             i;
 #endif
 
-#if defined(HAVE_GETMNTENT) || defined(HAVE_FSTAB_H)
   int dummy = 0;
-#endif
-
+  char            tmpbuf[1024];
   /* 
    * find the device for the path and copy the device into the
    * string declared above and at the end of the routine return it
@@ -476,7 +466,8 @@ find_and_add_allDisks(int minpercent)
 #if HAVE_SETMNTENT
   mntfp = setmntent(ETC_MNTTAB, "r");
   if (!mntfp) {
-      netsnmp_config_error("Can't open %s (setmntent)\n", ETC_MNTTAB);
+      snprintf( tmpbuf, sizeof(tmpbuf), "Can't open %s (setmntent)\n", ETC_MNTTAB );
+      config_perror(tmpbuf);
       return;
   }
   while (mntfp && NULL != (mntent = getmntent(mntfp))) {
@@ -493,7 +484,8 @@ find_and_add_allDisks(int minpercent)
 #else                           /* getmentent but not setmntent */
   mntfp = fopen(ETC_MNTTAB, "r");
   if (!mntfp) {
-      netsnmp_config_error("Can't open %s (fopen)\n", ETC_MNTTAB);
+      snprintf( tmpbuf, sizeof(tmpbuf), "Can't open %s (fopen)\n", ETC_MNTTAB );
+      config_perror(tmpbuf);
       return;
   }
   while ((i = getmntent(mntfp, &mnttab)) == 0) {
@@ -514,18 +506,6 @@ find_and_add_allDisks(int minpercent)
     dummy = 1;
   }
   endfsent();			/* close /etc/fstab */
-#if defined(__FreeBSD__) && __FreeBSD_version >= 700055
-  {
-    struct statfs *mntbuf;
-    size_t i, mntsize;
-    mntsize = getmntinfo(&mntbuf, MNT_NOWAIT);
-    for (i = 0; i < mntsize; i++) {
-      if (strncmp(mntbuf[i].f_fstypename, "zfs", 3) == 0) {
-	add_device(mntbuf[i].f_mntonname, mntbuf[i].f_mntfromname, -1, minpercent, 0);
-      }
-    }
-  }
-#endif
   if(dummy != 0) {
     /*
      * dummy clause for else below
@@ -544,8 +524,11 @@ find_and_add_allDisks(int minpercent)
     if (numdisks == maxdisks) {
       return;
     }
-    netsnmp_config_warn("Couldn't find device for disk %s",
-			disks[numdisks].path);
+    snprintf(tmpbuf, sizeof(tmpbuf),
+             "Couldn't find device for disk %s",
+             disks[numdisks].path);
+    tmpbuf[ sizeof(tmpbuf)-1 ] = 0;
+    config_pwarn(tmpbuf);
     disks[numdisks].minimumspace = -1;
     disks[numdisks].minpercent = -1;
     disks[numdisks].path[0] = 0;
@@ -572,6 +555,7 @@ find_device(char *path)
 #elif HAVE_STATFS
   struct statfs   statf;
 #endif
+  char            tmpbuf[1024];
   static char     device[STRMAX];
 #if defined(HAVE_GETMNTENT) && !defined(HAVE_SETMNTENT)
   int             i;
@@ -589,12 +573,14 @@ find_device(char *path)
 #if HAVE_SETMNTENT
   mntfp = setmntent(ETC_MNTTAB, "r");
   if (!mntfp) {
-      netsnmp_config_error("Can't open %s (setmntent)\n", ETC_MNTTAB);
+      snprintf( tmpbuf, sizeof(tmpbuf), "Can't open %s (setmntent)\n", ETC_MNTTAB );
+      config_perror(tmpbuf);
       return NULL;
   }
   while (mntfp && NULL != (mntent = getmntent(mntfp)))
     if (strcmp(path, mntent->mnt_dir) == 0) {
-      strlcpy(device, mntent->mnt_fsname, sizeof(device));
+      strncpy(device, mntent->mnt_fsname, sizeof(device));
+      device[sizeof(device) - 1] = '\0';
       DEBUGMSGTL(("ucd-snmp/disk", "Disk:  %s\n",
 		  mntent->mnt_fsname));
       break;
@@ -607,7 +593,8 @@ find_device(char *path)
 #else                           /* getmentent but not setmntent */
   mntfp = fopen(ETC_MNTTAB, "r");
   if (!mntfp) {
-      netsnmp_config_error("Can't open %s (fopen)\n", ETC_MNTTAB);
+      snprintf( tmpbuf, sizeof(tmpbuf), "Can't open %s (fopen)\n", ETC_MNTTAB );
+      config_perror(tmpbuf);
       return NULL;
   }
   while ((i = getmntent(mntfp, &mnttab)) == 0)
@@ -618,14 +605,18 @@ find_device(char *path)
 		  path, mnttab.mnt_mountp));
     }
   fclose(mntfp);
-  if (i == 0)
-    strlcpy(device, mnttab.mnt_special, sizeof(device));
+  if (i == 0) {
+    strncpy(device, mnttab.mnt_special, sizeof(device));
+    device[sizeof(device) - 1] = '\0';
+  }
 #endif /* HAVE_SETMNTENT */
 #elif HAVE_FSTAB_H
   stat(path, &stat1);
   setfsent();
-  if ((fstab = getfsfile(path)))
-    strlcpy(device, fstab->fs_spec, sizeof(device));
+  if ((fstab = getfsfile(path))) {
+    strncpy(device, fstab->fs_spec, sizeof(device));
+    device[sizeof(device) - 1] = '\0';
+  }
   endfsent();
   if (device[0] != '\0') {
      /*
@@ -635,48 +626,55 @@ find_device(char *path)
 
 #elif HAVE_STATFS
   if (statfs(path, &statf) == 0) {
-    strlcpy(device, statf.f_mntfromname, sizeof(device));
+    strncpy(device, statf.f_mntfromname, sizeof(device) - 1);
+    device[sizeof(device) - 1] = '\0';
     DEBUGMSGTL(("ucd-snmp/disk", "Disk:  %s\n",
 		statf.f_mntfromname));
   }
 #endif
   else {
-    netsnmp_config_warn("Couldn't find device for disk %s", path);
+    sprintf(tmpbuf, "Couldn't find device for disk %s",
+	    path);
+    config_pwarn(tmpbuf);
   }
 #else
   config_perror("'disk' checks not supported on this architecture.");
 #endif                   /* HAVE_FSTAB_H || HAVE_GETMNTENT || HAVE_STATFS */  
   return device;
 }
-#endif
 
-/*
- * Part of UCD-SNMP-MIB::dskEntry, which is so hard to fill 
- * (i.e. platform dependent parts).
- */
-struct dsk_entry {
-    unsigned long long  dskTotal;
-    unsigned long long  dskUsed;
-    unsigned long long  dskAvail;
-    unsigned long       dskPercent;
-    unsigned long       dskPercentInode;
-    unsigned long       dskErrorFlag;
-};
 
-/**
- * Fill in the provided dsk_entry structure.
- * Returns -1 on error, 0 on success.
+/*
+ * 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
+ * 
  */
-
-static int
-fill_dsk_entry(int disknum, struct dsk_entry *entry)
+u_char         *
+var_extensible_disk(struct variable *vp,
+                    oid * name,
+                    size_t * length,
+                    int exact,
+                    size_t * var_len, WriteMethod ** write_method)
 {
-#if defined(HAVE_STATVFS) || defined(HAVE_STATFS)
-    float           multiplier;
-#endif
-#if defined(HAVE_FSTAB_H) && !defined(HAVE_SYS_STATVFS_H) && !defined(HAVE_STATFS)
+
+    int             percent, iserror, disknum = 0;
+#if !defined(HAVE_SYS_STATVFS_H) && !defined(HAVE_STATFS)
     double          totalblks, free, used, avail, availblks;
+#else
+    static long     avail;
+#if defined(STRUCT_STATVFS_HAS_F_FILES) || defined(STRUCT_STATFS_HAS_F_FILES)
+    int             percent_inode;
+#endif
 #endif
+    static long     long_ret;
+    static char     errmsg[300];
+    float           multiplier;
 
 #if defined(HAVE_STATVFS) || defined(HAVE_STATFS)
 #ifdef STAT_STATFS_FS_DATA
@@ -698,8 +696,28 @@ fill_dsk_entry(int disknum, struct dsk_entry *entry)
 #endif
 #endif
 
-    entry->dskPercentInode = -1;
-
+tryAgain:
+    if (header_simple_table
+        (vp, name, length, exact, var_len, write_method, numdisks))
+        return (NULL);
+    disknum = name[*length - 1] - 1;
+    switch (vp->magic) {
+    case MIBINDEX:
+        long_ret = disknum + 1;
+        return ((u_char *) (&long_ret));
+    case ERRORNAME:            /* DISKPATH */
+        *var_len = strlen(disks[disknum].path);
+        return ((u_char *) disks[disknum].path);
+    case DISKDEVICE:
+        *var_len = strlen(disks[disknum].device);
+        return ((u_char *) disks[disknum].device);
+    case DISKMINIMUM:
+        long_ret = disks[disknum].minimumspace;
+        return ((u_char *) (&long_ret));
+    case DISKMINPERCENT:
+        long_ret = disks[disknum].minpercent;
+        return ((u_char *) (&long_ret));
+    }
 #if defined(HAVE_STATVFS) || defined(HAVE_STATFS)
 #ifdef STAT_STATFS_FS_DATA
     if (statvfs(disks[disknum].path, &fsd) == -1)
@@ -710,7 +728,9 @@ fill_dsk_entry(int disknum, struct dsk_entry *entry)
         snmp_log(LOG_ERR, "Couldn't open device %s\n",
                  disks[disknum].device);
         setPerrorstatus("statvfs dev/disk");
-        return -1;
+        if (!exact)
+            goto tryAgain;
+        return NULL;
     }
 #ifdef STAT_STATFS_FS_DATA
     vfs.f_blocks = fsd.fd_btot;
@@ -723,38 +743,83 @@ fill_dsk_entry(int disknum, struct dsk_entry *entry)
     vfs.f_bfree = vfs.f_spare[1];
     vfs.f_bavail = vfs.f_spare[2];
 #endif
-
-    multiplier = (float)vfs.f_bsize / (float)1024.0;
-#ifdef HAVE_STRUCT_STATVFS_F_FRSIZE
-    if (vfs.f_frsize > 255)
-        multiplier = (float)vfs.f_frsize / (float)1024.0;
-#endif
-
-    entry->dskTotal = (unsigned long long)(vfs.f_blocks * multiplier);
-    entry->dskAvail = (unsigned long long)(vfs.f_bavail * multiplier);
-    entry->dskUsed = (unsigned long long)((vfs.f_blocks - vfs.f_bfree) * multiplier);
-
-    entry->dskPercent = 
+    percent =
         vfs.f_blocks == 0 ? 0 :
         vfs.f_bavail <= 0 ? 100 :
         (int) ((double) (vfs.f_blocks - vfs.f_bfree) /
                (double) (vfs.f_blocks -
                          (vfs.f_bfree - vfs.f_bavail)) * 100.0 + 0.5);
-
-#if defined(HAVE_STRUCT_STATVFS_F_FILES) || defined HAVE_STRUCT_STATFS_F_FAVAIL
-    entry->dskPercentInode = vfs.f_favail <= 0 ? 100 :
+    multiplier = (float)vfs.f_bsize / (float)1024.0;
+#ifdef STRUCT_STATVFS_HAS_F_FRSIZE
+    if (vfs.f_frsize > 255)
+        multiplier = (float)vfs.f_frsize / (float)1024.0;
+#endif
+    avail = (long)(vfs.f_bavail * multiplier);
+    iserror = (disks[disknum].minimumspace >= 0 ?
+               vfs.f_bavail < (disks[disknum].minimumspace/multiplier) :
+               100 - percent <= disks[disknum].minpercent) ? 1 : 0;
+#if defined(STRUCT_STATVFS_HAS_F_FILES) || defined STRUCT_STATFS_HAS_F_FAVAIL
+    percent_inode = vfs.f_favail <= 0 ? 100 :
         (int) ((double) (vfs.f_files - vfs.f_ffree) /
                (double) (vfs.f_files -
                          (vfs.f_ffree - vfs.f_favail)) * 100.0 + 0.5);
 #else
-#if defined(HAVE_STRUCT_STATFS_F_FILES) && defined(HAVE_STRUCT_STATFS_F_FFREE)
-    entry->dskPercentInode = vfs.f_files == 0 ? 100.0 :
+#if defined(STRUCT_STATFS_HAS_F_FILES) && defined(STRUCT_STATFS_HAS_F_FFREE)
+   percent_inode = vfs.f_files == 0 ? 100.0 :
       (int) ((double) (vfs.f_files - vfs.f_ffree) /
-              (double) (vfs.f_files) * 100.0 + 0.5);
+	          (double) (vfs.f_files) * 100.0 + 0.5);
 #endif 
-#endif /* defined(HAVE_STRUCT_STATVFS_F_FILES) */
-
-#elif HAVE_FSTAB_H
+#endif /* defined(STRUCT_STATVFS_HAS_F_FILES) */ 
+    switch (vp->magic) {
+    case DISKTOTAL:
+        if ( vfs.f_blocks > ( INT32_MAX / multiplier ))
+            long_ret = INT32_MAX;
+        else
+            long_ret = (long)(vfs.f_blocks * multiplier);
+        return ((u_char *) (&long_ret));
+    case DISKAVAIL:
+        if ( vfs.f_bavail > ( INT32_MAX / multiplier ))
+            long_ret = INT32_MAX;
+        else
+            long_ret = (long)(vfs.f_bavail * multiplier);
+        return ((u_char *) (&long_ret));
+    case DISKUSED:
+        if ( (vfs.f_blocks - vfs.f_bfree) > ( INT32_MAX / multiplier ))
+            long_ret = INT32_MAX;
+        else
+            long_ret = (long)((vfs.f_blocks - vfs.f_bfree) * multiplier);
+        return ((u_char *) (&long_ret));
+    case DISKPERCENT:
+        long_ret = percent;
+        return ((u_char *) (&long_ret));
+#if defined(STRUCT_STATVFS_HAS_F_FILES) || defined (STRUCT_STATFS_HAS_F_FILES)
+    case DISKPERCENTNODE:
+        long_ret = percent_inode;
+        return ((u_char *) (&long_ret));
+#endif
+    case ERRORFLAG:
+        long_ret = iserror;
+        return ((u_char *) (&long_ret));
+    case ERRORMSG:
+        if (iserror) {
+            if (disks[disknum].minimumspace >= 0)
+                snprintf(errmsg, sizeof(errmsg),
+                        "%s: less than %d free (= %d)",
+                        disks[disknum].path, disks[disknum].minimumspace,
+                        (int) avail);
+            else
+                snprintf(errmsg, sizeof(errmsg),
+                        "%s: less than %d%% free (= %d%%)",
+                        disks[disknum].path, disks[disknum].minpercent,
+                        percent);
+            errmsg[ sizeof(errmsg)-1 ] = 0;
+        } else
+            errmsg[0] = 0;
+        *var_len = strlen(errmsg);
+        return ((u_char *) (errmsg));
+    }
+#else
+#if HAVE_FSTAB_H
     /*
      * read the disk information 
      */
@@ -762,7 +827,9 @@ fill_dsk_entry(int disknum, struct dsk_entry *entry)
         snmp_log(LOG_ERR, "Couldn't open device %s\n",
                  disks[disknum].device);
         setPerrorstatus("open dev/disk");
-        return -1;
+        if (!exact)
+            goto tryAgain;
+        return (NULL);
     }
     lseek(file, (long) (SBLOCK * DEV_BSIZE), 0);
     if (read(file, (char *) &filesys, SBSIZE) != SBSIZE) {
@@ -770,165 +837,70 @@ fill_dsk_entry(int disknum, struct dsk_entry *entry)
         snmp_log(LOG_ERR, "Error reading device %s\n",
                  disks[disknum].device);
         close(file);
-        return -1;
+        if (!exact)
+            goto tryAgain;
+        return (NULL);
     }
     close(file);
-
     totalblks = filesys.fs_dsize;
     free = filesys.fs_cstotal.cs_nbfree * filesys.fs_frag +
         filesys.fs_cstotal.cs_nffree;
     used = totalblks - free;
     availblks = totalblks * (100 - filesys.fs_minfree) / 100;
     avail = availblks > used ? availblks - used : 0;
-    entry->dskPercent =
+    percent =
         totalblks == 0 ? 0 :
         availblks == 0 ? 100 :
         (int) ((double) used / (double) totalblks * 100.0 + 0.5);
     multiplier = (float)filesys.fs_fsize / (float)1024.0;
-    entry->dskTotal = (unsigned long long)(totalblks * multiplier);
-    entry->dskAvail = (unsigned long long)(avail * multiplier);
-    entry->dskUsed = (unsigned long long)(used * multiplier);
-#else
-    /* MinGW */
-    entry->dskPercent = 0;
-    entry->dskTotal = 0;
-    entry->dskAvail = 0;
-    entry->dskUsed = 0;
-#endif
-
-    entry->dskErrorFlag =
+    iserror =
         (disks[disknum].minimumspace >= 0
-            ? entry->dskAvail < (unsigned long long)disks[disknum].minimumspace
-            : 100 - entry->dskPercent <= (unsigned int)disks[disknum].minpercent) ? 1 : 0;
-
-    return 0;
-}
-
-/*
- * 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             ret;
-	unsigned int	disknum = 0;
-    struct dsk_entry entry;
-    static long     long_ret;
-    static char     errmsg[300];
-
-tryAgain:
-    if (header_simple_table
-        (vp, name, length, exact, var_len, write_method, numdisks))
-        return (NULL);
-    disknum = name[*length - 1] - 1;
-	if (disknum > maxdisks)
-		return NULL;
-    switch (vp->magic) {
-    case MIBINDEX:
-        long_ret = disknum + 1;
-        return ((u_char *) (&long_ret));
-    case ERRORNAME:            /* DISKPATH */
-        *var_len = strlen(disks[disknum].path);
-        return ((u_char *) disks[disknum].path);
-    case DISKDEVICE:
-        *var_len = strlen(disks[disknum].device);
-        return ((u_char *) disks[disknum].device);
-    case DISKMINIMUM:
-        long_ret = disks[disknum].minimumspace;
-        return ((u_char *) (&long_ret));
-    case DISKMINPERCENT:
-        long_ret = disks[disknum].minpercent;
-        return ((u_char *) (&long_ret));
-    }
-
-    ret = fill_dsk_entry(disknum, &entry);
-    if (ret < 0) {
-        if (!exact)
-            goto tryAgain;
-        return NULL;
-    }
-
+            ? avail * multiplier < disks[disknum].minimumspace
+            : 100 - percent <= disks[disknum].minpercent) ? 1 : 0;
     switch (vp->magic) {
     case DISKTOTAL:
-        if (entry.dskTotal > MAX_INT_32)
-            long_ret = MAX_INT_32;
+        if ( totalblks > ( INT32_MAX / multiplier ))
+            long_ret = INT32_MAX;
         else
-            long_ret = (long)(entry.dskTotal);
+            long_ret = (long)(totalblks * multiplier);
         return ((u_char *) (&long_ret));
-    case DISKTOTALLOW:
-        long_ret = entry.dskTotal & MAX_UINT_32;
-        return ((u_char *) (&long_ret));
-    case DISKTOTALHIGH:
-        long_ret = entry.dskTotal >> 32;
-        return ((u_char *) (&long_ret));
-        
     case DISKAVAIL:
-        if (entry.dskAvail > MAX_INT_32)
-            long_ret = MAX_INT_32;
+        if ( avail > ( INT32_MAX / multiplier ))
+            long_ret = INT32_MAX;
         else
-            long_ret = (long)(entry.dskAvail);
-        return ((u_char *) (&long_ret));
-    case DISKAVAILLOW:
-        long_ret = entry.dskAvail & MAX_UINT_32;
+            long_ret = (long)(avail * multiplier);
         return ((u_char *) (&long_ret));
-    case DISKAVAILHIGH:
-        long_ret = entry.dskAvail >> 32;
-        return ((u_char *) (&long_ret));
-
     case DISKUSED:
-        if (entry.dskUsed > MAX_INT_32)
-            long_ret = MAX_INT_32;
+        if ( used > (  INT32_MAX / multiplier ))
+            long_ret = INT32_MAX;
         else
-            long_ret = (long)(entry.dskUsed);
-        return ((u_char *) (&long_ret));
-    case DISKUSEDLOW:
-        long_ret = entry.dskUsed & MAX_UINT_32;
+            long_ret = (long)(used * multiplier);
         return ((u_char *) (&long_ret));
-    case DISKUSEDHIGH:
-        long_ret = entry.dskUsed >> 32;
-        return ((u_char *) (&long_ret));
-
     case DISKPERCENT:
-        long_ret = entry.dskPercent;
-        return ((u_char *) (&long_ret));
-
-    case DISKPERCENTNODE:
-        long_ret = entry.dskPercentInode;
+        long_ret = percent;
         return ((u_char *) (&long_ret));
-
     case ERRORFLAG:
-        long_ret = entry.dskErrorFlag;
+        long_ret = iserror;
         return ((u_char *) (&long_ret));
-
     case ERRORMSG:
-        if (entry.dskErrorFlag) {
+        if (iserror) {
             if (disks[disknum].minimumspace >= 0)
                 snprintf(errmsg, sizeof(errmsg),
                         "%s: less than %d free (= %d)",
                         disks[disknum].path, disks[disknum].minimumspace,
-                        (int) entry.dskAvail);
+                        avail * filesys.fs_fsize / 1024);
             else
                 snprintf(errmsg, sizeof(errmsg),
                         "%s: less than %d%% free (= %d%%)",
                         disks[disknum].path, disks[disknum].minpercent,
-                        (int)entry.dskPercent);
+                        percent);
             errmsg[ sizeof(errmsg)-1 ] = 0;
         } else
             errmsg[0] = 0;
         *var_len = strlen(errmsg);
         return ((u_char *) (errmsg));
     }
+#endif
+#endif
     return NULL;
 }
diff --git a/agent/mibgroup/ucd-snmp/disk.h b/agent/mibgroup/ucd-snmp/disk.h
index 20e9332..6bc5b14 100644
--- a/agent/mibgroup/ucd-snmp/disk.h
+++ b/agent/mibgroup/ucd-snmp/disk.h
@@ -7,7 +7,7 @@
 
 void            init_disk(void);
 
-config_require(util_funcs/header_simple_table)
+config_require(util_funcs)
 
      extern FindVarMethod var_extensible_disk;
 
@@ -21,11 +21,5 @@ config_require(util_funcs/header_simple_table)
 #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_H */
diff --git a/agent/mibgroup/ucd-snmp/disk_hw.c b/agent/mibgroup/ucd-snmp/disk_hw.c
deleted file mode 100644
index 93ecde3..0000000
--- a/agent/mibgroup/ucd-snmp/disk_hw.c
+++ /dev/null
@@ -1,421 +0,0 @@
-/*
- * 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
deleted file mode 100644
index ff42ed9..0000000
--- a/agent/mibgroup/ucd-snmp/disk_hw.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- *  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)
-config_require(hardware/fsys)
-
-     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 4d6d05c..6dedd97 100644
--- a/agent/mibgroup/ucd-snmp/diskio.c
+++ b/agent/mibgroup/ucd-snmp/diskio.c
@@ -25,12 +25,13 @@
 # endif
 #endif
 
-#include <math.h>
-
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
-#include "util_funcs/header_simple_table.h"
+/*
+ * header_generic() comes from here 
+ */
+#include "util_funcs.h"
 
 /*
  * include our .h file 
@@ -51,13 +52,10 @@ static kstat_io_t kio;
 static int      cache_disknr = -1;
 #endif                          /* solaris2 */
 
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#if defined(aix4) || defined(aix5) || defined(aix6)
 /*
  * 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 */
@@ -74,7 +72,7 @@ static int ps_numdisks;			/* number of disks in system, may change while running
 #include <sys/param.h>
 #if __FreeBSD_version >= 500101
 #include <sys/resource.h>       /* for CPUSTATES in devstat.h */
-#elif !defined(dragonfly)
+#else
 #include <sys/dkstat.h>
 #endif
 #include <devstat.h>
@@ -92,11 +90,6 @@ static int ps_numdisks;			/* number of disks in system, may change while running
   #define GETDEVS(x) getdevs((x))
 #endif
 
-#if defined (linux)
-#define DISKIO_SAMPLE_INTERVAL 5
-void devla_getstats(unsigned int regno, void * dummy);
-#endif /* linux */
-
 #if defined (darwin)
 #include <CoreFoundation/CoreFoundation.h>
 #include <IOKit/IOKitLib.h>
@@ -107,9 +100,7 @@ void devla_getstats(unsigned int regno, void * dummy);
 static mach_port_t masterPort;		/* to communicate with I/O Kit	*/
 #endif                          /* darwin */
 
-#ifndef solaris2
-static int      getstats(void);
-#endif
+void            diskio_parse_config(const char *, char *);
 
 #if defined (freebsd4) || defined(freebsd5)
 void		devla_getstats(unsigned int regno, void *dummy);
@@ -117,10 +108,6 @@ void		devla_getstats(unsigned int regno, void *dummy);
 
 FILE           *file;
 
-#if 0
-static void	diskio_free_config(void);
-#endif
-
          /*********************
 	 *
 	 *  Initialisation & common implementation functions
@@ -155,30 +142,19 @@ init_diskio(void)
      */
 
     struct variable2 diskio_variables[] = {
-        {DISKIO_INDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_diskio, 1, {1}},
-        {DISKIO_DEVICE, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_diskio, 1, {2}},
-        {DISKIO_NREAD, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_diskio, 1, {3}},
-        {DISKIO_NWRITTEN, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_diskio, 1, {4}},
-        {DISKIO_READS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_diskio, 1, {5}},
-        {DISKIO_WRITES, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_diskio, 1, {6}},
-#if defined(freebsd4) || defined(freebsd5) || defined(linux)
-        {DISKIO_LA1, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_diskio, 1, {9}},
-        {DISKIO_LA5, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_diskio, 1, {10}},
-        {DISKIO_LA15, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_diskio, 1, {11}},
+        {DISKIO_INDEX, ASN_INTEGER, RONLY, var_diskio, 1, {1}},
+        {DISKIO_DEVICE, ASN_OCTET_STR, RONLY, var_diskio, 1, {2}},
+        {DISKIO_NREAD, ASN_COUNTER, RONLY, var_diskio, 1, {3}},
+        {DISKIO_NWRITTEN, ASN_COUNTER, RONLY, var_diskio, 1, {4}},
+        {DISKIO_READS, ASN_COUNTER, RONLY, var_diskio, 1, {5}},
+        {DISKIO_WRITES, ASN_COUNTER, RONLY, var_diskio, 1, {6}},
+#if defined(freebsd4) || defined(freebsd5)
+        {DISKIO_LA1, ASN_INTEGER, RONLY, var_diskio, 1, {9}},
+        {DISKIO_LA5, ASN_INTEGER, RONLY, var_diskio, 1, {10}},
+        {DISKIO_LA15, ASN_INTEGER, RONLY, var_diskio, 1, {11}},
 #endif
-        {DISKIO_NREADX, ASN_COUNTER64, NETSNMP_OLDAPI_RONLY,
-         var_diskio, 1, {12}},
-        {DISKIO_NWRITTENX, ASN_COUNTER64, NETSNMP_OLDAPI_RONLY,
-         var_diskio, 1, {13}},
+        {DISKIO_NREADX, ASN_COUNTER64, RONLY, var_diskio, 1, {12}},
+        {DISKIO_NWRITTENX, ASN_COUNTER64, RONLY, var_diskio, 1, {13}},
     };
 
     /*
@@ -216,7 +192,7 @@ init_diskio(void)
     IOMasterPort(bootstrap_port, &masterPort);
 #endif
 
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#if defined(aix4) || defined(aix5) || defined(aix6)
     /*
      * initialize values to gather information on first request
      */
@@ -224,44 +200,13 @@ init_diskio(void)
     ps_disk = NULL;
 #endif
 
-#if defined (freebsd4) || defined(freebsd5) || defined(linux)
-    devla_getstats(0, NULL);
-    /* collect LA data regularly */
-    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? */
+#if defined (freebsd4) || defined(freebsd5)
+	devla_getstats(0, NULL);
+	/* collect LA data regularly */
+	snmp_alarm_register(DISKIO_SAMPLE_INTERVAL, SA_REPEAT, devla_getstats, NULL);
 #endif
-}
 
-#if 0
-/* to do: make sure diskio_free_config() gets invoked upon SIGHUP. */
-static void
-diskio_free_config(void)
-{
-    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);
 }
-#endif
-
 
 #ifdef solaris2
 int
@@ -376,8 +321,7 @@ getstats(void)
     time_t          now;
     int             mib[2];
     char           *t, *tp;
-    size_t          size, dkn_size;
-    int             i;
+    int             size, dkn_size, i;
 
     now = time(NULL);
     if (cache_time + CACHE_TIMEOUT > now) {
@@ -477,157 +421,6 @@ var_diskio(struct variable * vp,
 }
 #endif                          /* bsdi */
 
-#ifdef __NetBSD__
-#include <sys/sysctl.h>
-static int      ndisk;
-#ifdef HW_IOSTATNAMES
-static int nmib[2] = {CTL_HW, HW_IOSTATNAMES};
-#else
-static int nmib[2] = {CTL_HW, HW_DISKNAMES};
-#endif
-#ifdef HW_DISKSTATS
-#include <sys/disk.h>
-static int dmib[3] = {CTL_HW, HW_DISKSTATS, sizeof(struct disk_sysctl)};
-static struct disk_sysctl *dk;
-#endif
-#ifdef HW_IOSTATS
-#include <sys/iostat.h>
-static int dmib[3] = {CTL_HW, HW_IOSTATS, sizeof(struct io_sysctl)};
-static struct io_sysctl *dk;
-#endif
-static char   **dkname;
-
-static int
-getstats(void)
-{
-    time_t          now;
-    char           *t, *tp;
-    size_t          size, dkn_size;
-    int             i;
-
-    now = time(NULL);
-    if (cache_time + CACHE_TIMEOUT > now) {
-        return 1;
-    }
-    size = 0;
-    if (sysctl(dmib, 3, NULL, &size, NULL, 0) < 0) {
-        perror("Can't get size of HW_DISKSTATS/HW_IOSTATS mib");
-        return 0;
-    }
-    if (ndisk != size / dmib[2]) {
-        if (dk)
-            free(dk);
-        if (dkname) {
-            for (i = 0; i < ndisk; i++)
-                if (dkname[i])
-                    free(dkname[i]);
-            free(dkname);
-        }
-        ndisk = size / dmib[2];
-        if (ndisk == 0)
-            return 0;
-        dkname = malloc(ndisk * sizeof(char *));
-        dkn_size = 0;
-        if (sysctl(nmib, 2, NULL, &dkn_size, NULL, 0) < 0) {
-            perror("Can't get size of HW_DISKNAMES mib");
-            return 0;
-        }
-        t = malloc(dkn_size);
-        if (sysctl(nmib, 2, t, &dkn_size, NULL, 0) < 0) {
-            perror("Can't get size of HW_DISKNAMES mib");
-            return 0;
-        }
-        for (i = 0, tp = strtok(t, " "); tp && i < ndisk; i++,
-	    tp = strtok(NULL, " ")) {
-            dkname[i] = strdup(tp);
-        }
-        free(t);
-        dk = malloc(ndisk * sizeof(*dk));
-    }
-    if (sysctl(dmib, 3, dk, &size, NULL, 0) < 0) {
-        perror("Can't get HW_DISKSTATS/HW_IOSTATS mib");
-        return 0;
-    }
-    cache_time = now;
-    return 1;
-}
-
-u_char *
-var_diskio(struct variable * vp,
-           oid * name,
-           size_t * length,
-           int exact, size_t * var_len, WriteMethod ** write_method)
-{
-    static long     long_ret;
-    unsigned int    indx;
-
-    if (getstats() == 0)
-        return 0;
-
-    if (header_simple_table
-        (vp, name, length, exact, var_len, write_method, ndisk))
-        return NULL;
-
-    indx = (unsigned int) (name[*length - 1] - 1);
-    if (indx >= ndisk)
-        return NULL;
-
-    switch (vp->magic) {
-    case DISKIO_INDEX:
-        long_ret = (long) indx + 1;
-        return (u_char *) & long_ret;
-
-    case DISKIO_DEVICE:
-        *var_len = strlen(dkname[indx]);
-        return (u_char *) dkname[indx];
-
-    case DISKIO_NREAD:
-#ifdef HW_DISKSTATS
-     	long_ret = dk[indx].dk_rbytes;
-#endif
-#ifdef HW_IOSTATS
-	if (dk[indx].type == IOSTAT_DISK)
-	    long_ret = dk[indx].rbytes;
-#endif
-        return (u_char *) & long_ret;
-
-    case DISKIO_NWRITTEN:
-#ifdef HW_DISKSTATS
-     	long_ret = dk[indx].dk_wbytes;
-#endif
-#ifdef HW_IOSTATS
-	if (dk[indx].type == IOSTAT_DISK)
-	    long_ret = dk[indx].wbytes;
-#endif
-        return (u_char *) & long_ret;
-
-    case DISKIO_READS:
-#ifdef HW_DISKSTATS
-     	long_ret = dk[indx].dk_rxfer;
-#endif
-#ifdef HW_IOSTATS
-	if (dk[indx].type == IOSTAT_DISK)
-	    long_ret = dk[indx].rxfer;
-#endif
-        return (u_char *) & long_ret;
-
-    case DISKIO_WRITES:
-#ifdef HW_DISKSTATS
-     	long_ret = dk[indx].dk_wxfer;
-#endif
-#ifdef HW_IOSTATS
-	if (dk[indx].type == IOSTAT_DISK)
-	    long_ret = dk[indx].wxfer;
-#endif
-        return (u_char *) & long_ret;
-
-    default:
-        ERROR_MSG("diskio.c: don't know how to handle this request.");
-    }
-    return NULL;
-}
-#endif /* __NetBSD__ */
-
 #if defined(freebsd4) || defined(freebsd5)
 
 /* disk load average patch by Rojer */
@@ -694,7 +487,7 @@ void devla_getstats(unsigned int regno, void *dummy) {
         if (ndevs == 0) {
                 ndevs = lastat->dinfo->numdevs;
                 devloads = (struct dev_la *) malloc(ndevs * sizeof(struct dev_la));
-                memset(devloads, '\0', ndevs * sizeof(struct dev_la));
+                bzero(devloads, ndevs * sizeof(struct dev_la));
                 for (i=0; i < ndevs; i++) {
                         devloads[i].la1 = devloads[i].la5 = devloads[i].la15 = 0;
                         memcpy(&devloads[i].prev, &lastat->dinfo->devices[i].busy_time, sizeof(devloads[i].prev));
@@ -891,13 +684,6 @@ typedef struct linux_diskio
     unsigned long  aveq;
 } linux_diskio;
 
-/* disk load averages */
-typedef struct linux_diskio_la
-{
-    unsigned long use_prev;
-    double la1, la5, la15;
-} linux_diskio_la;
-
 typedef struct linux_diskio_header
 {
     linux_diskio* indices;
@@ -905,79 +691,10 @@ typedef struct linux_diskio_header
     int alloc;
 } linux_diskio_header;
 
-typedef struct linux_diskio_la_header
-{
-    linux_diskio_la * indices;   
-    int length;
-} linux_diskio_la_header;
-
 static linux_diskio_header head;
-static linux_diskio_la_header la_head;
-
-void devla_getstats(unsigned int regno, void * dummy) {
 
-    static double expon1, expon5, expon15;
-    double busy_time, busy_percent;
-    int idx;
-
-    if (getstats() == 1) {
-        ERROR_MSG("can't do diskio getstats()\n");
-        return;
-    }
 
-    if (!la_head.length) {
-        la_head.indices = (linux_diskio_la *) malloc(head.length * sizeof(linux_diskio_la));
-        for (idx=0; idx<head.length; idx++) {
-            la_head.indices[idx].la1 = la_head.indices[idx].la5 = la_head.indices[idx].la15 = 0.; 
-            la_head.indices[idx].use_prev = head.indices[idx].use;
-        }
-        la_head.length = head.length;
-        expon1 = exp(-(((double)DISKIO_SAMPLE_INTERVAL) / ((double)60)));
-        expon5 = exp(-(((double)DISKIO_SAMPLE_INTERVAL) / ((double)300)));
-        expon15 = exp(-(((double)DISKIO_SAMPLE_INTERVAL) / ((double)900)));
-    }
-    else if (head.length - la_head.length) {
-        la_head.indices = (linux_diskio_la *) realloc(la_head.indices, head.length * sizeof(linux_diskio_la));
-        for (idx=la_head.length; idx<head.length; idx++) {
-            la_head.indices[idx].la1 = la_head.indices[idx].la5 = la_head.indices[idx].la15 = 0.; 
-            la_head.indices[idx].use_prev = head.indices[idx].use;
-        }
-        la_head.length = head.length;
-    }
-
-    for (idx=0; idx<head.length; idx++) {
-        busy_time = head.indices[idx].use - la_head.indices[idx].use_prev;
-        busy_percent = busy_time * 100. / ((double) DISKIO_SAMPLE_INTERVAL) / 1000.;
-        la_head.indices[idx].la1 = la_head.indices[idx].la1 * expon1 + busy_percent * (1. - expon1);
-        la_head.indices[idx].la5 = la_head.indices[idx].la5 * expon5 + busy_percent * (1. - expon5);
-        la_head.indices[idx].la15 = la_head.indices[idx].la15 * expon15 + busy_percent * (1. - expon15);
-        /*
-          fprintf(stderr, "(%d) update la1=%f la5=%f la15=%f\n",
-          idx, la_head.indices[idx].la1, la_head.indices[idx].la5, la_head.indices[idx].la15);   
-        */
-        la_head.indices[idx].use_prev = head.indices[idx].use;
-    }
-}
-
-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)
+int getstats(void)
 {
     FILE* parts;
     time_t now;
@@ -1016,8 +733,7 @@ getstats(void)
 		    &pTemp->major, &pTemp->minor, pTemp->name,
 		    &pTemp->rio, &pTemp->rsect,
 		    &pTemp->wio, &pTemp->wsect);
-            if (!is_excluded(pTemp->name))
-	        head.length++;
+	    head.length++;
 	}
     }
     else {
@@ -1052,11 +768,9 @@ getstats(void)
 		    &pTemp->running, &pTemp->use, &pTemp->aveq);
             if (rc != 15) {
                snmp_log(LOG_ERR, "diskio.c: cannot find statistics in /proc/partitions\n");
-               fclose(parts);
                return 1;
             }
-            if (!is_excluded(pTemp->name))
-	        head.length++;
+	    head.length++;
 	}
     }
 
@@ -1110,15 +824,6 @@ var_diskio(struct variable * vp,
     case DISKIO_WRITES:
       long_ret = head.indices[indx].wio & 0xffffffff;
       return (u_char *) & long_ret;
-    case DISKIO_LA1:
-      long_ret = la_head.indices[indx].la1;
-      return (u_char *) & long_ret;
-    case DISKIO_LA5:
-      long_ret = la_head.indices[indx].la5;
-      return (u_char *) & long_ret;
-    case DISKIO_LA15:
-      long_ret = la_head.indices[indx].la15;
-      return (u_char *) & long_ret;
     case DISKIO_NREADX:
       *var_len = sizeof(struct counter64);
       c64_ret.low = head.indices[indx].rsect * 512 & 0xffffffff;
@@ -1364,7 +1069,7 @@ var_diskio(struct variable * vp,
 #endif                          /* darwin */
 
 
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#if defined(aix4) || defined(aix5) || defined(aix6)
 /*
  * collect statistics for all disks
  */
diff --git a/agent/mibgroup/ucd-snmp/diskio.h b/agent/mibgroup/ucd-snmp/diskio.h
index 8cd206b..05596ab 100644
--- a/agent/mibgroup/ucd-snmp/diskio.h
+++ b/agent/mibgroup/ucd-snmp/diskio.h
@@ -1,7 +1,7 @@
 #ifndef _MIBGROUP_DISKIO_H
 #define _MIBGROUP_DISKIO_H
 
-config_require(util_funcs/header_simple_table)
+config_require(util_funcs)
 config_add_mib(UCD-DISKIO-MIB)
 
     /*
diff --git a/agent/mibgroup/ucd-snmp/dlmod.c b/agent/mibgroup/ucd-snmp/dlmod.c
index e9742f2..81b5830 100644
--- a/agent/mibgroup/ucd-snmp/dlmod.c
+++ b/agent/mibgroup/ucd-snmp/dlmod.c
@@ -3,7 +3,6 @@
  *
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #if HAVE_STDLIB_H
 #include <stdlib.h>
@@ -14,40 +13,92 @@
 #else
 #include <strings.h>
 #endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#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>
 
+#include "struct.h"
+#include "util_funcs.h"
+
+#if defined(HAVE_DLFCN_H) && ( defined(HAVE_DLOPEN) || defined(HAVE_LIBDL) )
+
 #include <dlfcn.h>
 #include "dlmod.h"
 
-#ifndef SNMPDLMODPATH
-#define SNMPDLMODPATH "/usr/local/lib/snmp/dlmod"
-#endif
+static struct dlmod *dlmods = NULL;
+static int      dlmod_next_index = 1;
+static char     dlmod_path[1024];
 
-struct dlmod {
-  struct dlmod   *next;
-  int             index;
-  char            name[64 + 1];
-  char            path[255 + 1];
-  char            error[255 + 1];
-  void           *handle;
-  int             status;
+static void     dlmod_parse_config(const char *, char *);
+static void     dlmod_free_config(void);
+
+/*
+ * this variable defines function callbacks and type return
+ * information for the dlmod mib
+ */
+static struct variable4 dlmod_variables[] = {
+    {DLMODNEXTINDEX, ASN_INTEGER, RONLY, var_dlmod, 1, {1}},
+    {DLMODNAME, ASN_OCTET_STR, RWRITE, var_dlmodEntry, 3, {2, 1, 2}},
+    {DLMODPATH, ASN_OCTET_STR, RWRITE, var_dlmodEntry, 3, {2, 1, 3}},
+    {DLMODERROR, ASN_OCTET_STR, RONLY, var_dlmodEntry, 3, {2, 1, 4}},
+    {DLMODSTATUS, ASN_INTEGER, RWRITE, var_dlmodEntry, 3, {2, 1, 5}},
 };
 
-#define DLMOD_LOADED		1
-#define DLMOD_UNLOADED		2
-#define DLMOD_ERROR		3
-#define DLMOD_LOAD		4
-#define DLMOD_UNLOAD		5
-#define DLMOD_CREATE		6
-#define DLMOD_DELETE		7
+static oid      dlmod_variables_oid[] = { 1, 3, 6, 1, 4, 1, 2021, 13, 14 };
+static int      dlmod_variables_oid_len = 9;
 
-static struct dlmod *dlmods = NULL;
-static unsigned int dlmod_next_index = 1;
-static char     dlmod_path[1024];
+void
+init_dlmod(void)
+{
+    char           *p;
+    int             len;
+
+    REGISTER_MIB("dlmod", dlmod_variables, variable4, dlmod_variables_oid);
+
+    /*
+     * TODO: REGISTER_SYSOR_ENTRY 
+     */
+
+    DEBUGMSGTL(("dlmod", "register mib\n"));
+
+    snmpd_register_config_handler("dlmod", dlmod_parse_config,
+                                  dlmod_free_config,
+                                  "module-name module-path");
+
+    p = getenv("SNMPDLMODPATH");
+    strncpy(dlmod_path, SNMPDLMODPATH, sizeof(dlmod_path));
+    dlmod_path[ sizeof(dlmod_path)-1 ] = 0;
+    if (p) {
+        if (p[0] == ':') {
+            len = strlen(dlmod_path);
+            if (dlmod_path[len - 1] != ':') {
+                strncat(dlmod_path, ":", sizeof(dlmod_path) - len -1);
+                len++;
+            }
+            strncat(dlmod_path, p + 1,   sizeof(dlmod_path) - len);
+        } else
+            strncpy(dlmod_path, p, sizeof(dlmod_path));
+    }
+    dlmod_path[ sizeof(dlmod_path)-1 ] = 0;
+    DEBUGMSGTL(("dlmod", "dlmod_path: %s\n", dlmod_path));
+}
 
-static struct dlmod   *
+void
+deinit_dlmod(void)
+{
+    unregister_mib(dlmod_variables_oid, dlmod_variables_oid_len);
+    snmpd_unregister_config_handler("dlmod");
+}
+
+struct dlmod   *
 dlmod_create_module(void)
 {
     struct dlmod  **pdlmod, *dlm;
@@ -57,7 +108,7 @@ dlmod_create_module(void)
     if (dlm == NULL)
         return NULL;
 
-    dlm->index = (int)dlmod_next_index++;
+    dlm->index = dlmod_next_index++;
     dlm->status = DLMOD_UNLOADED;
 
     for (pdlmod = &dlmods; *pdlmod != NULL; pdlmod = &((*pdlmod)->next));
@@ -66,7 +117,7 @@ dlmod_create_module(void)
     return dlm;
 }
 
-static void
+void
 dlmod_delete_module(struct dlmod *dlm)
 {
     struct dlmod  **pdlmod;
@@ -83,9 +134,14 @@ dlmod_delete_module(struct dlmod *dlm)
         }
 }
 
-static void
+void
 dlmod_load_module(struct dlmod *dlm)
 {
+    char            sym_init[64];
+    char           *p, tmp_path[255];
+    int             (*dl_init) (void);
+    char           *st;
+
     DEBUGMSGTL(("dlmod", "dlmod_load_module %s: %s\n", dlm->name,
                 dlm->path));
 
@@ -106,8 +162,6 @@ dlmod_load_module(struct dlmod *dlm)
             return;
         }
     } else {
-        char *st, *p, tmp_path[255];
-
         for (p = strtok_r(dlmod_path, ":", &st); p; p = strtok_r(NULL, ":", &st)) {
             snprintf(tmp_path, sizeof(tmp_path), "%s/%s.so", p, dlm->path);
             DEBUGMSGTL(("dlmod", "p: %s tmp_path: %s\n", p, tmp_path));
@@ -122,34 +176,29 @@ dlmod_load_module(struct dlmod *dlm)
                 dlm->status = DLMOD_ERROR;
             }
         }
-        strlcpy(dlm->path, tmp_path, sizeof(dlm->path));
+        strncpy(dlm->path, tmp_path, sizeof(dlm->path));
         if (dlm->status == DLMOD_ERROR)
             return;
     }
-    {
-        char sym_init[64 + sizeof("init_")];
-        int  (*dl_init) (void);
-
-        snprintf(sym_init, sizeof(sym_init), "init_%s", dlm->name);
-        dl_init = dlsym(dlm->handle, sym_init);
-        if (dl_init == NULL) {
-            dlclose(dlm->handle);
-            snprintf(dlm->error, sizeof(dlm->error),
-                     "dlsym failed: can't find \'%s\'", sym_init);
-            dlm->status = DLMOD_ERROR;
-            return;
-        }
-        dl_init();
+    snprintf(sym_init, sizeof(sym_init), "init_%s", dlm->name);
+    dl_init = dlsym(dlm->handle, sym_init);
+    if (dl_init == NULL) {
+        dlclose(dlm->handle);
+        snprintf(dlm->error, sizeof(dlm->error),
+                 "dlsym failed: can't find \'%s\'", sym_init);
+        dlm->status = DLMOD_ERROR;
+        return;
     }
 
+    dl_init();
     dlm->error[0] = '\0';
     dlm->status = DLMOD_LOADED;
 }
 
-static void
+void
 dlmod_unload_module(struct dlmod *dlm)
 {
-    char            sym_deinit[64 + sizeof("shutdown_")];
+    char            sym_deinit[64];
     int             (*dl_deinit) (void);
 
     if (!dlm || dlm->status != DLMOD_LOADED)
@@ -157,22 +206,18 @@ dlmod_unload_module(struct dlmod *dlm)
 
     snprintf(sym_deinit, sizeof(sym_deinit), "deinit_%s", dlm->name);
     dl_deinit = dlsym(dlm->handle, sym_deinit);
-    if (!dl_deinit) {
-        snprintf(sym_deinit, sizeof(sym_deinit), "shutdown_%s", dlm->name);
-        dl_deinit = dlsym(dlm->handle, sym_deinit);
-    }
-    if (dl_deinit) {
-        DEBUGMSGTL(("dlmod", "Calling %s()\n", sym_deinit));
-        dl_deinit();
+    if (dl_deinit == NULL) {
+        snprintf(dlm->error, sizeof(dlm->error),
+                 "dlsym failed: can't find \'%s\'", sym_deinit);
     } else {
-        DEBUGMSGTL(("dlmod", "No destructor for %s\n", dlm->name));
+        dl_deinit();
     }
     dlclose(dlm->handle);
     dlm->status = DLMOD_UNLOADED;
     DEBUGMSGTL(("dlmod", "Module %s unloaded\n", dlm->name));
 }
 
-static struct dlmod   *
+struct dlmod   *
 dlmod_get_by_index(int iindex)
 {
     struct dlmod   *dlmod;
@@ -184,10 +229,6 @@ dlmod_get_by_index(int iindex)
     return NULL;
 }
 
-/*
- * Functions to parse config lines
- */
-
 static void
 dlmod_parse_config(const char *token, char *cptr)
 {
@@ -200,7 +241,7 @@ dlmod_parse_config(const char *token, char *cptr)
         return;
     }
     /*
-     * remove comments
+     * remove comments 
      */
     *(cptr + strcspn(cptr, "#;\r\n")) = '\0';
 
@@ -209,7 +250,7 @@ dlmod_parse_config(const char *token, char *cptr)
         return;
 
     /*
-     * dynamic module name
+     * dynamic module name 
      */
     dlm_name = strtok_r(cptr, "\t ", &st);
     if (dlm_name == NULL) {
@@ -217,16 +258,16 @@ dlmod_parse_config(const char *token, char *cptr)
         dlmod_delete_module(dlm);
         return;
     }
-    strlcpy(dlm->name, dlm_name, sizeof(dlm->name));
+    strncpy(dlm->name, dlm_name, sizeof(dlm->name));
 
     /*
-     * dynamic module path
+     * dynamic module path 
      */
     dlm_path = strtok_r(NULL, "\t ", &st);
     if (dlm_path)
-        strlcpy(dlm->path, dlm_path, sizeof(dlm->path));
+        strncpy(dlm->path, dlm_path, sizeof(dlm->path));
     else
-        strlcpy(dlm->path, dlm_name, sizeof(dlm->path));
+        strncpy(dlm->path, dlm_name, sizeof(dlm->path));
 
     dlmod_load_module(dlm);
 
@@ -248,23 +289,13 @@ dlmod_free_config(void)
     dlmods = NULL;
 }
 
-/*
- * Functions to handle SNMP management
- */
-
-#define DLMODNEXTINDEX 		1
-#define DLMODINDEX     		2
-#define DLMODNAME      		3
-#define DLMODPATH      		4
-#define DLMODERROR     		5
-#define DLMODSTATUS    		6
 
 /*
  * header_dlmod(...
  * 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
+ * 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
@@ -299,7 +330,7 @@ header_dlmod(struct variable *vp,
 }
 
 
-static u_char         *
+u_char         *
 var_dlmod(struct variable * vp,
           oid * name,
           size_t * length,
@@ -307,7 +338,7 @@ var_dlmod(struct variable * vp,
 {
 
     /*
-     * variables we may use later
+     * variables we may use later 
      */
 
     *write_method = 0;          /* assume it isnt writable for the time being */
@@ -316,10 +347,10 @@ var_dlmod(struct variable * vp,
 
     if (header_dlmod(vp, name, length, exact,
                      var_len, write_method) == MATCH_FAILED)
-        return NULL;
+        return 0;
 
     /*
-     * this is where we do the value assignments for the mib results.
+     * this is where we do the value assignments for the mib results. 
      */
     switch (vp->magic) {
     case DLMODNEXTINDEX:
@@ -329,131 +360,20 @@ var_dlmod(struct variable * vp,
         DEBUGMSGTL(("dlmod", "unknown sub-id %d in var_dlmod\n",
                     vp->magic));
     }
-    return NULL;
-}
-
-
-static int
-write_dlmodName(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 struct dlmod *dlm;
-
-    if (var_val_type != ASN_OCTET_STR) {
-        snmp_log(LOG_ERR, "write to dlmodName not ASN_OCTET_STR\n");
-        return SNMP_ERR_WRONGTYPE;
-    }
-    if (var_val_len > sizeof(dlm->name)-1) {
-        snmp_log(LOG_ERR, "write to dlmodName: bad length: too long\n");
-        return SNMP_ERR_WRONGLENGTH;
-    }
-    if (action == COMMIT) {
-        dlm = dlmod_get_by_index(name[12]);
-        if (!dlm || dlm->status == DLMOD_LOADED)
-            return SNMP_ERR_RESOURCEUNAVAILABLE;
-        strncpy(dlm->name, (const char *) var_val, var_val_len);
-        dlm->name[var_val_len] = 0;
-    }
-    return SNMP_ERR_NOERROR;
+    return 0;
 }
 
-static int
-write_dlmodPath(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 struct dlmod *dlm;
-
-    if (var_val_type != ASN_OCTET_STR) {
-        snmp_log(LOG_ERR, "write to dlmodPath not ASN_OCTET_STR\n");
-        return SNMP_ERR_WRONGTYPE;
-    }
-    if (var_val_len > sizeof(dlm->path)-1) {
-        snmp_log(LOG_ERR, "write to dlmodPath: bad length: too long\n");
-        return SNMP_ERR_WRONGLENGTH;
-    }
-    if (action == COMMIT) {
-        dlm = dlmod_get_by_index(name[12]);
-        if (!dlm || dlm->status == DLMOD_LOADED)
-            return SNMP_ERR_RESOURCEUNAVAILABLE;
-        strncpy(dlm->path, (const char *) var_val, var_val_len);
-        dlm->path[var_val_len] = 0;
-    }
-    return SNMP_ERR_NOERROR;
-}
-
-static int
-write_dlmodStatus(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)
-{
-    /*
-     * variables we may use later
-     */
-    struct dlmod   *dlm;
-
-    if (var_val_type != ASN_INTEGER) {
-        snmp_log(LOG_ERR, "write to dlmodStatus not ASN_INTEGER\n");
-        return SNMP_ERR_WRONGTYPE;
-    }
-    if (var_val_len > sizeof(long)) {
-        snmp_log(LOG_ERR, "write to dlmodStatus: bad length\n");
-        return SNMP_ERR_WRONGLENGTH;
-    }
-    if (action == COMMIT) {
-        /*
-         * object identifier in form .1.3.6.1.4.1.2021.13.14.2.1.4.x
-         * where X is index with offset 12
-         */
-
-        dlm = dlmod_get_by_index(name[12]);
-        switch (*((long *) var_val)) {
-        case DLMOD_CREATE:
-            if (dlm || (name[12] != dlmod_next_index))
-                return SNMP_ERR_RESOURCEUNAVAILABLE;
-            dlm = dlmod_create_module();
-            if (!dlm)
-                return SNMP_ERR_RESOURCEUNAVAILABLE;
-            break;
-        case DLMOD_LOAD:
-            if (!dlm || dlm->status == DLMOD_LOADED)
-                return SNMP_ERR_RESOURCEUNAVAILABLE;
-            dlmod_load_module(dlm);
-            break;
-        case DLMOD_UNLOAD:
-            if (!dlm || dlm->status != DLMOD_LOADED)
-                return SNMP_ERR_RESOURCEUNAVAILABLE;
-            dlmod_unload_module(dlm);
-            break;
-        case DLMOD_DELETE:
-            if (!dlm || dlm->status == DLMOD_LOADED)
-                return SNMP_ERR_RESOURCEUNAVAILABLE;
-            dlmod_delete_module(dlm);
-            break;
-        default:
-            return SNMP_ERR_WRONGVALUE;
-        }
-    }
-    return SNMP_ERR_NOERROR;
-}
 
 /*
  * header_dlmodEntry(...
  * 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
+ * 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
- *
+ * 
  */
 
 
@@ -466,8 +386,8 @@ header_dlmodEntry(struct variable *vp,
 #define DLMODENTRY_NAME_LENGTH 12
     oid             newname[MAX_OID_LEN];
     int             result;
-    struct dlmod   *dlm = NULL;
-    unsigned int    dlmod_index;
+    struct dlmod   *dlm = 0;
+    int             dlmod_index;
 
     memcpy((char *) newname, (char *) vp->name,
            (int) vp->namelen * sizeof(oid));
@@ -504,14 +424,14 @@ header_dlmodEntry(struct variable *vp,
     return dlm;
 }
 
-static u_char         *
+u_char         *
 var_dlmodEntry(struct variable * vp,
                oid * name,
                size_t * length,
                int exact, size_t * var_len, WriteMethod ** write_method)
 {
     /*
-     * variables we may use later
+     * variables we may use later 
      */
     struct dlmod   *dlm;
 
@@ -521,10 +441,10 @@ var_dlmodEntry(struct variable * vp,
     dlm =
         header_dlmodEntry(vp, name, length, exact, var_len, write_method);
     if (dlm == NULL)
-        return NULL;
+        return 0;
 
     /*
-     * this is where we do the value assignments for the mib results.
+     * this is where we do the value assignments for the mib results. 
      */
     switch (vp->magic) {
     case DLMODNAME:
@@ -546,69 +466,127 @@ var_dlmodEntry(struct variable * vp,
         DEBUGMSGTL(("dlmod", "unknown sub-id %d in var_dlmodEntry\n",
                     vp->magic));
     }
-    return NULL;
+    return 0;
 }
 
-/*
- * this variable defines function callbacks and type return
- * information for the dlmod mib
- */
-static struct variable4 dlmod_variables[] = {
-    {DLMODNEXTINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_dlmod, 1, {1}},
-    {DLMODNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_dlmodEntry, 3, {2, 1, 2}},
-    {DLMODPATH, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-     var_dlmodEntry, 3, {2, 1, 3}},
-    {DLMODERROR, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_dlmodEntry, 3, {2, 1, 4}},
-    {DLMODSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_dlmodEntry, 3, {2, 1, 5}},
-};
+int
+write_dlmodName(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 struct dlmod *dlm;
 
-static oid dlmod_variables_oid[] = { 1, 3, 6, 1, 4, 1, 2021, 13, 14 };
+    if (var_val_type != ASN_OCTET_STR) {
+        snmp_log(LOG_ERR, "write to dlmodName not ASN_OCTET_STR\n");
+        return SNMP_ERR_WRONGTYPE;
+    }
+    if (var_val_len > sizeof(dlm->name)-1) {
+        snmp_log(LOG_ERR, "write to dlmodName: bad length: too long\n");
+        return SNMP_ERR_WRONGLENGTH;
+    }
+    if (action == COMMIT) {
+        dlm = dlmod_get_by_index(name[12]);
+        if (!dlm || dlm->status == DLMOD_LOADED)
+            return SNMP_ERR_RESOURCEUNAVAILABLE;
+        strncpy(dlm->name, (const char *) var_val, var_val_len);
+        dlm->name[var_val_len] = 0;
+    }
+    return SNMP_ERR_NOERROR;
+}
 
-void
-init_dlmod(void)
+int
+write_dlmodPath(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)
 {
-    REGISTER_MIB("dlmod", dlmod_variables, variable4, dlmod_variables_oid);
+    static struct dlmod *dlm;
+
+    if (var_val_type != ASN_OCTET_STR) {
+        snmp_log(LOG_ERR, "write to dlmodPath not ASN_OCTET_STR\n");
+        return SNMP_ERR_WRONGTYPE;
+    }
+    if (var_val_len > sizeof(dlm->path)-1) {
+        snmp_log(LOG_ERR, "write to dlmodPath: bad length: too long\n");
+        return SNMP_ERR_WRONGLENGTH;
+    }
+    if (action == COMMIT) {
+        dlm = dlmod_get_by_index(name[12]);
+        if (!dlm || dlm->status == DLMOD_LOADED)
+            return SNMP_ERR_RESOURCEUNAVAILABLE;
+        strncpy(dlm->path, (const char *) var_val, var_val_len);
+        dlm->path[var_val_len] = 0;
+    }
+    return SNMP_ERR_NOERROR;
+}
 
+int
+write_dlmodStatus(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)
+{
     /*
-     * TODO: REGISTER_SYSOR_ENTRY
+     * variables we may use later 
      */
+    struct dlmod   *dlm;
 
-    DEBUGMSGTL(("dlmod", "register mib\n"));
-
-    snmpd_register_config_handler("dlmod", dlmod_parse_config,
-                                  dlmod_free_config,
-                                  "module-name module-path");
+    if (var_val_type != ASN_INTEGER) {
+        snmp_log(LOG_ERR, "write to dlmodStatus not ASN_INTEGER\n");
+        return SNMP_ERR_WRONGTYPE;
+    }
+    if (var_val_len > sizeof(long)) {
+        snmp_log(LOG_ERR, "write to dlmodStatus: bad length\n");
+        return SNMP_ERR_WRONGLENGTH;
+    }
+    if (action == COMMIT) {
+        /*
+         * object identifier in form .1.3.6.1.4.1.2021.13.14.2.1.4.x 
+         * where X is index with offset 12 
+         */
 
-    {
-        const char * const p = getenv("SNMPDLMODPATH");
-        strncpy(dlmod_path, SNMPDLMODPATH, sizeof(dlmod_path));
-        dlmod_path[ sizeof(dlmod_path) - 1 ] = 0;
-        if (p) {
-            if (p[0] == ':') {
-                int len = strlen(dlmod_path);
-                if (dlmod_path[len - 1] != ':') {
-                    strncat(dlmod_path, ":", sizeof(dlmod_path) - len - 1);
-                    len++;
-                }
-                strncat(dlmod_path, p + 1,   sizeof(dlmod_path) - len);
-            } else
-                strncpy(dlmod_path, p, sizeof(dlmod_path));
+        dlm = dlmod_get_by_index(name[12]);
+        switch (*((long *) var_val)) {
+        case DLMOD_CREATE:
+            if (dlm || (name[12] != dlmod_next_index))
+                return SNMP_ERR_RESOURCEUNAVAILABLE;
+            dlm = dlmod_create_module();
+            if (!dlm)
+                return SNMP_ERR_RESOURCEUNAVAILABLE;
+            break;
+        case DLMOD_LOAD:
+            if (!dlm || dlm->status == DLMOD_LOADED)
+                return SNMP_ERR_RESOURCEUNAVAILABLE;
+            dlmod_load_module(dlm);
+            break;
+        case DLMOD_UNLOAD:
+            if (!dlm || dlm->status != DLMOD_LOADED)
+                return SNMP_ERR_RESOURCEUNAVAILABLE;
+            dlmod_unload_module(dlm);
+            break;
+        case DLMOD_DELETE:
+            if (!dlm || dlm->status == DLMOD_LOADED)
+                return SNMP_ERR_RESOURCEUNAVAILABLE;
+            dlmod_delete_module(dlm);
+            break;
+        default:
+            return SNMP_ERR_WRONGVALUE;
         }
     }
-
-    dlmod_path[ sizeof(dlmod_path)-1 ] = 0;
-    DEBUGMSGTL(("dlmod", "dlmod_path: %s\n", dlmod_path));
+    return SNMP_ERR_NOERROR;
 }
 
-netsnmp_feature_require(snmpd_unregister_config_handler)
+#else                           /* no dlopen support */
 
 void
-shutdown_dlmod(void)
+init_dlmod(void)
 {
-    snmpd_unregister_config_handler("dlmod");
-    unregister_mib(dlmod_variables_oid, OID_LENGTH(dlmod_variables_oid));
+    DEBUGMSGTL(("dlmod",
+                "Dynamic modules not support on this platform\n"));
 }
+
+#endif
diff --git a/agent/mibgroup/ucd-snmp/dlmod.h b/agent/mibgroup/ucd-snmp/dlmod.h
index df8bef7..690bc45 100644
--- a/agent/mibgroup/ucd-snmp/dlmod.h
+++ b/agent/mibgroup/ucd-snmp/dlmod.h
@@ -3,16 +3,58 @@
  *
  */
 
-#ifndef MIBGROUP_DLMOD_H
-#define MIBGROUP_DLMOD_H
+#ifndef _MIBGROUP_DLMOD_H
+#define _MIBGROUP_DLMOD_H
 
-#if !defined(HAVE_DLFCN_H) || !defined(HAVE_DLOPEN)
-config_error(Dynamic modules not supported on this platform)
-#endif
+/*
+ * TODO #include "mibdefs.h" 
+ */
 
 config_add_mib(UCD-DLMOD-MIB)
+#ifndef SNMPDLMODPATH
+#define SNMPDLMODPATH "/usr/local/lib/snmp/dlmod"
+#endif
+     struct dlmod {
+         struct dlmod   *next;
+         int             index;
+         char            name[64 + 1];
+         char            path[255 + 1];
+         char            error[255 + 1];
+         void           *handle;
+         int             status;
+     };
+
+     void            dlmod_load_module(struct dlmod *);
+     void            dlmod_unload_module(struct dlmod *);
+     struct dlmod   *dlmod_create_module(void);
+     void            dlmod_delete_module(struct dlmod *);
+     struct dlmod   *dlmod_get_by_index(int);
+
+     void            dlmod_init(void);
+     void            dlmod_deinit(void);
+
+     extern void     init_dlmod(void);
+     extern void     deinit_dlmod(void);
+
+     extern FindVarMethod var_dlmod;
+     extern FindVarMethod var_dlmodEntry;
+     extern WriteMethod write_dlmodName;
+     extern WriteMethod write_dlmodPath;
+     extern WriteMethod write_dlmodStatus;
+
+#define DLMODNEXTINDEX 		1
+#define DLMODINDEX     		2
+#define DLMODNAME      		3
+#define DLMODPATH      		4
+#define DLMODERROR     		5
+#define DLMODSTATUS    		6
 
-void init_dlmod(void);
-void shutdown_dlmod(void);
+#define DLMOD_LOADED		1
+#define DLMOD_UNLOADED		2
+#define DLMOD_ERROR		3
+#define DLMOD_LOAD		4
+#define	DLMOD_UNLOAD		5
+#define DLMOD_CREATE		6
+#define DLMOD_DELETE		7
 
-#endif                          /* MIBGROUP_DLMOD_H */
+#endif                          /* _MIBGROUP_DLMOD_H */
diff --git a/agent/mibgroup/ucd-snmp/errormib.c b/agent/mibgroup/ucd-snmp/errormib.c
index 7f3bcb1..4a43c31 100644
--- a/agent/mibgroup/ucd-snmp/errormib.c
+++ b/agent/mibgroup/ucd-snmp/errormib.c
@@ -11,7 +11,11 @@
 #endif
 #include <signal.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -49,11 +53,9 @@
 #ifdef HAVE_SYS_STAT_H
 #include <sys/stat.h>
 #endif
-#if !defined(dragonfly)
 #ifdef HAVE_SYS_VNODE_H
 #include <sys/vnode.h>
 #endif
-#endif
 #ifdef HAVE_UFS_UFS_QUOTA_H
 #include <ufs/ufs/quota.h>
 #endif
@@ -108,6 +110,9 @@
 #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>
@@ -115,7 +120,7 @@
 
 #include "struct.h"
 #include "errormib.h"
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 
 static time_t   errorstatustime = 0;
 static int      errorstatusprior = 0;
@@ -137,7 +142,8 @@ seterrorstatus(const char *to, int prior)
 {
     if (errorstatusprior <= prior ||
         (NETSNMP_ERRORTIMELENGTH < (time(NULL) - errorstatustime))) {
-        strlcpy(errorstring, to, sizeof(errorstring));
+        strncpy(errorstring, to, sizeof(errorstring));
+        errorstring[ sizeof(errorstring)-1 ] = 0;
         errorstatusprior = prior;
         errorstatustime = time(NULL);
     }
@@ -152,14 +158,14 @@ init_errormib(void)
      * information at 
      */
     struct variable2 extensible_error_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_errors, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_errors, 1, {ERRORNAME}},
-        {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_errors, 1, {ERRORFLAG}},
-        {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_errors, 1, {ERRORMSG}}
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_errors, 1,
+         {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_errors, 1,
+         {ERRORNAME}},
+        {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_errors, 1,
+         {ERRORFLAG}},
+        {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_errors, 1,
+         {ERRORMSG}}
     };
 
     /*
@@ -218,7 +224,8 @@ var_extensible_errors(struct variable *vp,
         return ((u_char *) (&long_ret));
     case ERRORMSG:
         if ((NETSNMP_ERRORTIMELENGTH >= time(NULL) - errorstatustime) ? 1 : 0) {
-            strlcpy(errmsg, errorstring, sizeof(errmsg));
+            strncpy(errmsg, errorstring, sizeof(errmsg));
+            errmsg[ sizeof(errmsg)-1 ] = 0;
         } else
             errmsg[0] = 0;
         *var_len = strlen(errmsg);
diff --git a/agent/mibgroup/ucd-snmp/errormib.h b/agent/mibgroup/ucd-snmp/errormib.h
index 501642c..5dcb2cc 100644
--- a/agent/mibgroup/ucd-snmp/errormib.h
+++ b/agent/mibgroup/ucd-snmp/errormib.h
@@ -6,7 +6,7 @@
 
 void            init_errormib(void);
 
-config_require(util_funcs/header_generic)
+config_require(util_funcs)
 
      void            setPerrorstatus(const char *);
      void            seterrorstatus(const char *, int);
diff --git a/agent/mibgroup/ucd-snmp/extensible.c b/agent/mibgroup/ucd-snmp/extensible.c
index d1752ef..42c7042 100644
--- a/agent/mibgroup/ucd-snmp/extensible.c
+++ b/agent/mibgroup/ucd-snmp/extensible.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #if HAVE_STDLIB_H
 #include <stdlib.h>
@@ -11,7 +10,11 @@
 #include <fcntl.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -97,21 +100,22 @@
 #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"
-
-netsnmp_feature_require(get_exten_instance)
-netsnmp_feature_require(parse_miboid)
+#include "util_funcs.h"
 
 extern struct myproc *procwatch;        /* moved to proc.c */
 extern int      numprocs;       /* ditto */
@@ -129,20 +133,20 @@ extern struct variable2 extensible_passthru_variables[];
  * the relocatable extensible commands variables 
  */
 struct variable2 extensible_relocatable_variables[] = {
-    {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_extensible_relocatable, 1, {MIBINDEX}},
-    {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_extensible_relocatable, 1, {ERRORNAME}},
-    {SHELLCOMMAND, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_extensible_relocatable, 1, {SHELLCOMMAND}},
-    {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_extensible_relocatable, 1, {ERRORFLAG}},
-    {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_extensible_relocatable, 1, {ERRORMSG}},
-    {ERRORFIX, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_extensible_relocatable, 1, {ERRORFIX}},
-    {ERRORFIXCMD, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_extensible_relocatable, 1, {ERRORFIXCMD}}
+    {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_relocatable, 1,
+     {MIBINDEX}},
+    {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_relocatable, 1,
+     {ERRORNAME}},
+    {SHELLCOMMAND, ASN_OCTET_STR, RONLY, var_extensible_relocatable, 1,
+     {SHELLCOMMAND}},
+    {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_relocatable, 1,
+     {ERRORFLAG}},
+    {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_relocatable, 1,
+     {ERRORMSG}},
+    {ERRORFIX, ASN_INTEGER, RWRITE, var_extensible_relocatable, 1,
+     {ERRORFIX}},
+    {ERRORFIXCMD, ASN_OCTET_STR, RONLY, var_extensible_relocatable, 1,
+     {ERRORFIXCMD}}
 };
 
 
@@ -151,20 +155,20 @@ init_extensible(void)
 {
 
     struct variable2 extensible_extensible_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_shell, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_shell, 1, {ERRORNAME}},
-        {SHELLCOMMAND, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_shell, 1, {SHELLCOMMAND}},
-        {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_shell, 1, {ERRORFLAG}},
-        {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_shell, 1, {ERRORMSG}},
-        {ERRORFIX, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_extensible_shell, 1, {ERRORFIX}},
-        {ERRORFIXCMD, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_shell, 1, {ERRORFIXCMD}}
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_shell, 1,
+         {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_shell, 1,
+         {ERRORNAME}},
+        {SHELLCOMMAND, ASN_OCTET_STR, RONLY, var_extensible_shell, 1,
+         {SHELLCOMMAND}},
+        {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_shell, 1,
+         {ERRORFLAG}},
+        {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_shell, 1,
+         {ERRORMSG}},
+        {ERRORFIX, ASN_INTEGER, RWRITE, var_extensible_shell, 1,
+         {ERRORFIX}},
+        {ERRORFIXCMD, ASN_OCTET_STR, RONLY, var_extensible_shell, 1,
+         {ERRORFIXCMD}}
     };
 
     /*
@@ -262,7 +266,8 @@ extensible_parse_config(const char *token, char *cptr)
         for (tcptr = cptr; *tcptr != 0 && *tcptr != '#'; tcptr++)
             if (*tcptr == ';' && ptmp->type == EXECPROC)
                 break;
-        sprintf(ptmp->command, "%.*s", (int) (tcptr - cptr), cptr);
+        strncpy(ptmp->command, cptr, tcptr - cptr);
+        ptmp->command[tcptr - cptr] = 0;
     }
 #ifdef NETSNMP_EXECFIXCMD
     sprintf(ptmp->fixcmd, NETSNMP_EXECFIXCMD, ptmp->name);
@@ -418,7 +423,8 @@ execfix_parse_config(const char *token, char *cptr)
         return;
     }
 
-    strlcpy(execp->fixcmd, cptr, sizeof(execp->fixcmd));
+    strncpy(execp->fixcmd, cptr, sizeof(execp->fixcmd));
+    execp->fixcmd[ sizeof(execp->fixcmd)-1 ] = 0;
 }
 
 u_char         *
@@ -621,7 +627,8 @@ var_extensible_relocatable(struct variable *vp,
         cp = strchr(cp1, '\n');
         if (cp)
             *cp = 0;
-        strlcpy(errmsg, cp1, sizeof(errmsg));
+        strncpy(errmsg, cp1, sizeof(errmsg));
+        errmsg[ sizeof(errmsg)-1 ] = 0;
         *var_len = strlen(errmsg);
         if (errmsg[*var_len - 1] == '\n')
             errmsg[--(*var_len)] = '\0';
diff --git a/agent/mibgroup/ucd-snmp/extensible.h b/agent/mibgroup/ucd-snmp/extensible.h
index 24bd16d..558f14b 100644
--- a/agent/mibgroup/ucd-snmp/extensible.h
+++ b/agent/mibgroup/ucd-snmp/extensible.h
@@ -7,7 +7,6 @@
 
 void            init_extensible(void);
 
-config_require(util_funcs/header_simple_table)
 config_require(util_funcs)
 config_require(utilities/execute)
 
diff --git a/agent/mibgroup/ucd-snmp/file.c b/agent/mibgroup/ucd-snmp/file.c
index 9e345d8..00c98d4 100644
--- a/agent/mibgroup/ucd-snmp/file.c
+++ b/agent/mibgroup/ucd-snmp/file.c
@@ -12,7 +12,11 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -21,6 +25,9 @@
 #  include <time.h>
 # endif
 #endif
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #if HAVE_STRING_H
 #include <string.h>
 #endif
@@ -34,7 +41,7 @@
 
 #include "struct.h"
 #include "file.h"
-#include "util_funcs/header_simple_table.h"
+#include "util_funcs.h"
 
 #define MAXFILE   20
 
@@ -45,18 +52,12 @@ void
 init_file(void)
 {
     struct variable2 file_table[] = {
-        {FILE_INDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_file_table, 1, {1}},
-        {FILE_NAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_file_table, 1, {2}},
-        {FILE_SIZE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_file_table, 1, {3}},
-        {FILE_MAX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_file_table, 1, {4}},
-        {FILE_ERROR, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_file_table, 1, {100}},
-        {FILE_MSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_file_table, 1, {101}}
+        {FILE_INDEX, ASN_INTEGER, RONLY, var_file_table, 1, {1}},
+        {FILE_NAME, ASN_OCTET_STR, RONLY, var_file_table, 1, {2}},
+        {FILE_SIZE, ASN_INTEGER, RONLY, var_file_table, 1, {3}},
+        {FILE_MAX, ASN_INTEGER, RONLY, var_file_table, 1, {4}},
+        {FILE_ERROR, ASN_INTEGER, RONLY, var_file_table, 1, {100}},
+        {FILE_MSG, ASN_OCTET_STR, RONLY, var_file_table, 1, {101}}
     };
 
     /*
diff --git a/agent/mibgroup/ucd-snmp/file.h b/agent/mibgroup/ucd-snmp/file.h
index 455086f..8b222c5 100644
--- a/agent/mibgroup/ucd-snmp/file.h
+++ b/agent/mibgroup/ucd-snmp/file.h
@@ -7,8 +7,6 @@
 
 #include "mibdefs.h"
 
-config_require(util_funcs/header_simple_table)
-
 void            init_file(void);
 
 /*
diff --git a/agent/mibgroup/ucd-snmp/hpux.c b/agent/mibgroup/ucd-snmp/hpux.c
index 9c5f9f9..db094d3 100644
--- a/agent/mibgroup/ucd-snmp/hpux.c
+++ b/agent/mibgroup/ucd-snmp/hpux.c
@@ -30,21 +30,15 @@ int_hpux(void)
      * information at 
      */
     struct variable2 hp_variables[] = {
-        {HPCONF, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_hp, 1, {HPCONF}},
-        {HPRECONFIG, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_hp, 1, {HPRECONFIG}},
-        {HPFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_hp, 1, {HPFLAG}},
-        {HPLOGMASK, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_hp, 1, {ERRORFLAG}},
-        {HPSTATUS, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_hp, 1, {ERRORMSG}}
+        {HPCONF, ASN_INTEGER, RWRITE, var_hp, 1, {HPCONF}},
+        {HPRECONFIG, ASN_INTEGER, RWRITE, var_hp, 1, {HPRECONFIG}},
+        {HPFLAG, ASN_INTEGER, RWRITE, var_hp, 1, {HPFLAG}},
+        {HPLOGMASK, ASN_INTEGER, RWRITE, var_hp, 1, {ERRORFLAG}},
+        {HPSTATUS, ASN_INTEGER, RWRITE, var_hp, 1, {ERRORMSG}}
     };
 
     struct variable2 hptrap_variables[] = {
-        {HPTRAP, ASN_IPADDRESS, NETSNMP_OLDAPI_RWRITE,
-         var_hp, 1, {HPTRAP}},
+        {HPTRAP, ASN_IPADDRESS, RWRITE, var_hp, 1, {HPTRAP}},
     };
 
     /*
diff --git a/agent/mibgroup/ucd-snmp/lmSensors.c b/agent/mibgroup/ucd-snmp/lmSensors.c
index 05c60b7..d7dbd98 100644
--- a/agent/mibgroup/ucd-snmp/lmSensors.c
+++ b/agent/mibgroup/ucd-snmp/lmSensors.c
@@ -66,7 +66,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -74,12 +73,9 @@
  * minimal include directives 
  */
 
-#include "util_funcs/header_simple_table.h"
+#include "util_funcs.h"
 #include <time.h>
 
-netsnmp_feature_require(table_container)
-
-
 /*
  * Load required drivers and libraries.
  */
@@ -88,10 +84,9 @@ netsnmp_feature_require(table_container)
     #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"
@@ -136,41 +131,41 @@ struct variable4 lmSensors_variables[] = {
      * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
      */
 #define   LMTEMPSENSORSINDEX    3
-    {LMTEMPSENSORSINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_lmSensorsTable, 3, {2, 1, 1}},
+    {LMTEMPSENSORSINDEX, ASN_INTEGER, RONLY, var_lmSensorsTable, 3,
+     {2, 1, 1}},
 #define   LMTEMPSENSORSDEVICE   4
-    {LMTEMPSENSORSDEVICE, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_lmSensorsTable, 3, {2, 1, 2}},
+    {LMTEMPSENSORSDEVICE, ASN_OCTET_STR, RONLY, var_lmSensorsTable, 3,
+     {2, 1, 2}},
 #define   LMTEMPSENSORSVALUE    5
-    {LMTEMPSENSORSVALUE, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_lmSensorsTable, 3, {2, 1, 3}},
+    {LMTEMPSENSORSVALUE, ASN_GAUGE, RONLY, var_lmSensorsTable, 3,
+     {2, 1, 3}},
 #define   LMFANSENSORSINDEX     8
-    {LMFANSENSORSINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_lmSensorsTable, 3, {3, 1, 1}},
+    {LMFANSENSORSINDEX, ASN_INTEGER, RONLY, var_lmSensorsTable, 3,
+     {3, 1, 1}},
 #define   LMFANSENSORSDEVICE    9
-    {LMFANSENSORSDEVICE, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_lmSensorsTable, 3, {3, 1, 2}},
+    {LMFANSENSORSDEVICE, ASN_OCTET_STR, RONLY, var_lmSensorsTable, 3,
+     {3, 1, 2}},
 #define   LMFANSENSORSVALUE     10
-    {LMFANSENSORSVALUE, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_lmSensorsTable, 3, {3, 1, 3}},
+    {LMFANSENSORSVALUE, ASN_GAUGE, RONLY, var_lmSensorsTable, 3,
+     {3, 1, 3}},
 #define   LMVOLTSENSORSINDEX    13
-    {LMVOLTSENSORSINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_lmSensorsTable, 3, {4, 1, 1}},
+    {LMVOLTSENSORSINDEX, ASN_INTEGER, RONLY, var_lmSensorsTable, 3,
+     {4, 1, 1}},
 #define   LMVOLTSENSORSDEVICE   14
-    {LMVOLTSENSORSDEVICE, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_lmSensorsTable, 3, {4, 1, 2}},
+    {LMVOLTSENSORSDEVICE, ASN_OCTET_STR, RONLY, var_lmSensorsTable, 3,
+     {4, 1, 2}},
 #define   LMVOLTSENSORSVALUE    15
-    {LMVOLTSENSORSVALUE, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_lmSensorsTable, 3, {4, 1, 3}},
+    {LMVOLTSENSORSVALUE, ASN_GAUGE, RONLY, var_lmSensorsTable, 3,
+     {4, 1, 3}},
 #define   LMMISCSENSORSINDEX    18
-    {LMMISCSENSORSINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-     var_lmSensorsTable, 3, {5, 1, 1}},
+    {LMMISCSENSORSINDEX, ASN_INTEGER, RONLY, var_lmSensorsTable, 3,
+     {5, 1, 1}},
 #define   LMMISCSENSORSDEVICE   19
-    {LMMISCSENSORSDEVICE, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-     var_lmSensorsTable, 3, {5, 1, 2}},
+    {LMMISCSENSORSDEVICE, ASN_OCTET_STR, RONLY, var_lmSensorsTable, 3,
+     {5, 1, 2}},
 #define   LMMISCSENSORSVALUE    20
-    {LMMISCSENSORSVALUE, ASN_GAUGE, NETSNMP_OLDAPI_RONLY,
-     var_lmSensorsTable, 3, {5, 1, 3}},
+    {LMMISCSENSORSVALUE, ASN_GAUGE, RONLY, var_lmSensorsTable, 3,
+     {5, 1, 3}},
 };
 
 typedef struct {
@@ -252,7 +247,7 @@ var_lmSensorsTable(struct variable *vp,
                    size_t * var_len, WriteMethod ** write_method)
 {
     static long     long_ret;
-    static char     string[SPRINT_MAX_LEN];
+    static unsigned char string[SPRINT_MAX_LEN];
 
     int             s_index;
     int             s_type = -1;
@@ -331,7 +326,7 @@ var_lmSensorsTable(struct variable *vp,
     case LMFANSENSORSDEVICE:
     case LMVOLTSENSORSDEVICE:
     case LMMISCSENSORSDEVICE:
-        strlcpy(string, s.name, sizeof(string));
+        strncpy(string, s.name, SPRINT_MAX_LEN - 1);
         *var_len = strlen(string);
         ret = (unsigned char *) string;
         goto leaving;
@@ -384,9 +379,9 @@ sensor_init(void)
     }
 
     _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;
 }
@@ -420,7 +415,7 @@ sensor_load(void)
    the scale variable handles miniVolts */
 
 static int
-read_num_sensor(picl_nodehdl_t childh, const char *prop, int scale, int *value)
+read_num_sensor(picl_nodehdl_t childh, char *prop ,int scale, int *value)
  {
   picl_nodehdl_t  sensorh;
   picl_propinfo_t sensor_info;
@@ -486,7 +481,7 @@ read_num_sensor(picl_nodehdl_t childh, const char *prop, int scale, int *value)
 } /* end of read_num_sensor() */
 
 static int
-read_enum_sensor(picl_nodehdl_t childh, const char **options, u_int *value)
+read_enum_sensor(picl_nodehdl_t childh, char **options, u_int *value)
 {
   picl_nodehdl_t  sensorh;
   picl_propinfo_t sensor_info;
@@ -531,10 +526,10 @@ read_enum_sensor(picl_nodehdl_t childh, const char **options, u_int *value)
 
 /* scale variable handles miniVolts*/
  
-static void
+static int
 process_num_sensor(picl_nodehdl_t childh, 
-                  const char propname[PICL_PROPNAMELEN_MAX], 
-                  const char propval[PICL_PROPNAMELEN_MAX], int typ, int scale)
+                  char propname[PICL_PROPNAMELEN_MAX], 
+                  char propval[PICL_PROPNAMELEN_MAX], int typ, int scale)
 {
   int value = 0;
   picl_errno_t error_code;
@@ -558,10 +553,10 @@ process_num_sensor(picl_nodehdl_t childh,
   }
 } /* end process_num_sensor() */
 
-static void
+static int
 process_enum_sensor(picl_nodehdl_t childh, 
-                  const char propname[PICL_PROPNAMELEN_MAX], 
-                  int typ, const char **options)
+                  char propname[PICL_PROPNAMELEN_MAX], 
+                  int typ, char **options)
 {
   int value = 0;
   picl_errno_t error_code;
@@ -588,69 +583,69 @@ process_enum_sensor(picl_nodehdl_t childh,
 /* The following are modules for dealing with individual sensors types.
    They call the generic modules above.  */
 
-static void
+static int
 process_individual_fan(picl_nodehdl_t childh, 
-                     const char propname[PICL_PROPNAMELEN_MAX])
+                     char propname[PICL_PROPNAMELEN_MAX])
 {
   process_num_sensor(childh, propname, "AtoDSensorValue", FAN_TYPE, 1);
 }
 
 
-static void
+static int
 process_newtype_fan(picl_nodehdl_t childh,
-                     const char propname[PICL_PROPNAMELEN_MAX])
+                     char propname[PICL_PROPNAMELEN_MAX])
 {
   process_num_sensor(childh, propname, "Speed", FAN_TYPE, 1);
 }
 
 
-static void
+static int
 process_temperature_sensor(picl_nodehdl_t childh,
-                               const char propname[PICL_PROPNAMELEN_MAX])
+                               char propname[PICL_PROPNAMELEN_MAX])
 {
   process_num_sensor(childh, propname, "Temperature", TEMP_TYPE, 1000);
 } /* MIB asks for mC */
 
-static void
+static int
 process_voltage_sensor(picl_nodehdl_t childh,
-                      const char propname[PICL_PROPNAMELEN_MAX])
+                      char propname[PICL_PROPNAMELEN_MAX])
 {
   process_num_sensor(childh, propname, "Voltage", VOLT_TYPE, 1000);
 } /* MIB asks for mV */
 
-static void
+static int
 process_digital_sensor(picl_nodehdl_t childh,
-                      const char propname[PICL_PROPNAMELEN_MAX])
+                      char propname[PICL_PROPNAMELEN_MAX])
 {
   process_num_sensor(childh, propname, "AtoDSensorValue", VOLT_TYPE, 1);
 }
 
 
-static void
+static int
 process_switch(picl_nodehdl_t childh,
-                   const char propname[PICL_PROPNAMELEN_MAX])
+                   char propname[PICL_PROPNAMELEN_MAX])
 {
 
-  const char *settings[]={"OFF","ON","NORMAL","LOCKED","UNKNOWN",
+  char *settings[]={"OFF","ON","NORMAL","LOCKED","UNKNOWN",
                    "DIAG","SECURE",NULL};
 
   process_enum_sensor(childh, propname, MISC_TYPE, settings);
 }
 
-static void
+static int
 process_led(picl_nodehdl_t childh,
-                   const char propname[PICL_PROPNAMELEN_MAX])
+                   char propname[PICL_PROPNAMELEN_MAX])
 {
 
-  const char *settings[]={"OFF","ON","BLINK",NULL};
+  char *settings[]={"OFF","ON","BLINK",NULL};
   process_enum_sensor(childh, propname, MISC_TYPE, settings);
 }
 
-static void
+static int
 process_i2c(picl_nodehdl_t childh,
-                   const char propname[PICL_PROPNAMELEN_MAX])
+                   char propname[PICL_PROPNAMELEN_MAX])
 {
-  const char *settings[]={"OK",NULL};
+  char *settings[]={"OK",NULL};
   process_enum_sensor(childh, propname, MISC_TYPE, settings);
 }
 
@@ -757,12 +752,6 @@ _sensor_load(time_t t)
 {
 #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;
@@ -772,7 +761,6 @@ _sensor_load(time_t t)
     envctrl_fan_t *fan_info;
     envctrl_ps_t *power_info;
     envctrl_encl_t *enc_info;
-#endif
 
 /* DEBUGMSG(("ucd-snmp/lmSensors", "Reading the sensors\n")); */
 
@@ -788,6 +776,13 @@ _sensor_load(time_t t)
 /* 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) {
@@ -814,7 +809,7 @@ else {
 
 } /*end else picl_initialize */
 
-#else  /* end of picld section */
+#endif  /* end of picld section */
 /* initialize kstat */
 
 kc = kstat_open();
@@ -891,32 +886,32 @@ else{
                    DEBUGMSG(("ucd-snmp/lmSensors", "front panel value %d\n",enc_info->value));
                    typ = 3; /* misc */
                    sensor_array[typ].sensor[other].value = enc_info->value;
-                   strlcpy(sensor_array[typ].sensor[other].name, "FSP",
-                           MAX_NAME);
+                   strncpy(sensor_array[typ].sensor[other].name,"FSP",MAX_NAME-1);
+                   sensor_array[typ].sensor[other].name[MAX_NAME-1]='\0'; /* null terminate */
                    other++;
                    break;
                case ENVCTRL_ENCL_AMBTEMPR:
                    DEBUGMSG(("ucd-snmp/lmSensors", "ambient temp mC %d\n",enc_info->value*1000));
                    typ = 0; /* temperature sensor */
                    sensor_array[typ].sensor[temp].value = enc_info->value*1000;
-                   strlcpy(sensor_array[typ].sensor[temp].name, "Ambient",
-                           MAX_NAME);
+                   strncpy(sensor_array[typ].sensor[temp].name,"Ambient",MAX_NAME-1);
+                   sensor_array[typ].sensor[temp].name[MAX_NAME-1]='\0'; /* null terminate */
                    temp++;
                    break;
                case ENVCTRL_ENCL_BACKPLANE4:
                    DEBUGMSG(("ucd-snmp/lmSensors", "There is a backplane4\n"));
                    typ = 3; /* misc */
                    sensor_array[typ].sensor[other].value = enc_info->value;
-                   strlcpy(sensor_array[typ].sensor[other].name, "Backplane4",
-                           MAX_NAME);
+                   strncpy(sensor_array[typ].sensor[other].name,"Backplane4",MAX_NAME-1);
+                   sensor_array[typ].sensor[other].name[MAX_NAME-1]='\0'; /* null terminate */
                    other++;
                    break;
                case ENVCTRL_ENCL_BACKPLANE8:
                    DEBUGMSG(("ucd-snmp/lmSensors", "There is a backplane8\n"));
                    typ = 3; /* misc */
                    sensor_array[typ].sensor[other].value = enc_info->value;
-                   strlcpy(sensor_array[typ].sensor[other].name, "Backplane8",
-                           MAX_NAME);
+                   strncpy(sensor_array[typ].sensor[other].name,"Backplane8",MAX_NAME-1);
+                   sensor_array[typ].sensor[other].name[MAX_NAME-1]='\0'; /* null terminate */
                    other++;
                    break;
                case ENVCTRL_ENCL_CPUTEMPR:
@@ -928,7 +923,7 @@ else{
                    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 */
@@ -942,17 +937,14 @@ else{
     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;
@@ -964,7 +956,7 @@ else{
         {
            /* Continuing would be unsafe */
            snmp_log(LOG_ERR, "Cannot malloc sensor array!"); 
-           return 1;
+           return (rc = 1);
         } /* end if */
         sensor_array[i].current_len = DEFAULT_SENSORS;
     } /* end for */
@@ -982,7 +974,7 @@ else{
                 !sensors_get_label(*chip, data->number, &label) &&
                 !sensors_get_feature(*chip, data->number, &val)) {
                 int             type = -1;
-                float           mul = 0;
+                float           mul;
                 _sensor_array  *array;
 
                 /* The label, as determined for a given chip in sensors.conf,
@@ -1024,14 +1016,14 @@ else{
                            free(label);
                            label = NULL;
                        } /* end if label */
-                       return 1;
+                       return (rc=1);
                     } /* end if array->sensor */
                     array->current_len = new_size / sizeof(_sensor);
-                    DEBUGMSG(("ucd-snmp/lmSensors", "type #%d increased to %d elements\n", type, (int)array->current_len));
+                    DEBUGMSG(("ucd-snmp/lmSensors", "type #%d increased to %d elements\n", type, array->current_len));
                 } /* end if array->current */
-                strlcpy(array->sensor[array->n].name, label, MAX_NAME);
+                strncpy(array->sensor[array->n].name, label, MAX_NAME);
                 array->sensor[array->n].value = (int) (val * mul);
-                DEBUGMSGTL(("sensors","sensor %s, value %d\n",
+                DEBUGMSGTL(("sensors","sensor %d, value %d\n",
                             array->sensor[array->n].name,
                             array->sensor[array->n].value));
                 array->n++;
@@ -1042,11 +1034,10 @@ else{
 	    } /* end if label */
         } /* end while data */
     } /* end while chip */
-    DEBUGMSG(("ucd-snmp/lmSensors", "<= sensor_load\n"));
+    return rc;
 #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/lmSensors.h b/agent/mibgroup/ucd-snmp/lmSensors.h
index 92098a6..afed6fa 100644
--- a/agent/mibgroup/ucd-snmp/lmSensors.h
+++ b/agent/mibgroup/ucd-snmp/lmSensors.h
@@ -6,7 +6,7 @@
 #ifndef _MIBGROUP_LMSENSORS_H
 #define _MIBGROUP_LMSENSORS_H
 
-config_require(util_funcs/header_simple_table)
+config_require(util_funcs)
 config_add_mib(LM-SENSORS-MIB)
 
      void            init_lmSensors(void);
diff --git a/agent/mibgroup/ucd-snmp/lmsensorsMib.c b/agent/mibgroup/ucd-snmp/lmsensorsMib.c
deleted file mode 100644
index 5a50697..0000000
--- a/agent/mibgroup/ucd-snmp/lmsensorsMib.c
+++ /dev/null
@@ -1,206 +0,0 @@
-#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/hardware/sensors.h>
-#include "hardware/sensors/hw_sensors.h"
-#include "ucd-snmp/lmsensorsMib.h"
-
-netsnmp_container *sensorContainer = NULL;
-
-void initialize_lmSensorsTable(const char *tableName, const oid *tableOID,
-                               netsnmp_container_op *filter, int mult );
-
-int _sensor_filter_temp( netsnmp_container *c, const void *v );
-int _sensor_filter_fan(  netsnmp_container *c, const void *v );
-int _sensor_filter_volt( netsnmp_container *c, const void *v );
-int _sensor_filter_misc( netsnmp_container *c, const void *v );
-
-static const oid lmTempSensorsTable_oid[]   = {1,3,6,1,4,1,2021,13,16,2};
-static const oid lmFanSensorsTable_oid[]    = {1,3,6,1,4,1,2021,13,16,3};
-static const oid lmVoltSensorsTable_oid[]   = {1,3,6,1,4,1,2021,13,16,4};
-static const oid lmMiscSensorsTable_oid[]   = {1,3,6,1,4,1,2021,13,16,5};
-            /* All the tables have the same length root OID */
-const size_t lmSensorsTables_oid_len = OID_LENGTH(lmMiscSensorsTable_oid);
-
-
-/* Initialise the LM Sensors MIB module */
-void
-init_lmsensorsMib(void)
-{
-    DEBUGMSGTL(("ucd-snmp/lmsensorsMib","Initializing LM-SENSORS-MIB tables\n"));
-
-    /* 
-     * Initialise the four LM-SENSORS-MIB tables
-     *
-     * They are almost identical, so we can use the same registration code.
-     */
-    initialize_lmSensorsTable( "lmTempSensorsTable", lmTempSensorsTable_oid,
-                                _sensor_filter_temp, 1000 );  /* MIB asks for mC */
-    initialize_lmSensorsTable( "lmFanSensorsTable",  lmFanSensorsTable_oid,
-                                _sensor_filter_fan,  1);
-    initialize_lmSensorsTable( "lmVoltSensorsTable", lmVoltSensorsTable_oid,
-                                _sensor_filter_volt, 1000 );  /* MIB asks for mV */
-    initialize_lmSensorsTable( "lmMiscSensorsTable", lmMiscSensorsTable_oid,
-                                _sensor_filter_misc, 1 );
-}
-
-/*
- * Common initialisation code, used for setting up all four tables
- */
-void
-initialize_lmSensorsTable(const char *tableName, const oid *tableOID,
-                          netsnmp_container_op *filter, int mult )
-{
-    netsnmp_handler_registration    *reg;
-    netsnmp_table_registration_info *table_info;
-    netsnmp_cache     *cache;
-    netsnmp_container *container;
-
-    /*
-     * Ensure the HAL sensors module has been initialised,
-     *   and retrieve the main sensors container.
-     * This table will then be registered using a filter on this container.
-     */
-    sensorContainer = get_sensor_container();
-    if ( !sensorContainer ) {
-        init_hw_sensors( );
-        sensorContainer = get_sensor_container();
-    }
-    container = netsnmp_container_find("sensorTable:table_container");
-    container->insert_filter = filter;
-    netsnmp_container_add_index( sensorContainer, container );
-
-
-    /*
-     * Create a basic registration structure for the table
-     */
-    reg = netsnmp_create_handler_registration(
-               tableName, lmSensorsTables_handler,
-               tableOID,  lmSensorsTables_oid_len, HANDLER_CAN_RONLY
-              );
-
-    /*
-     * Register the table using the filtered container
-     * Include an indicator of any scaling to be applied to the sensor value
-     */
-    reg->my_reg_void = (void *)mult;
-    table_info = SNMP_MALLOC_TYPEDEF( netsnmp_table_registration_info );
-    netsnmp_table_helper_add_indexes(table_info, ASN_INTEGER, 0);
-    table_info->min_column = COLUMN_LMSENSORS_INDEX;
-    table_info->max_column = COLUMN_LMSENSORS_VALUE;
-    netsnmp_container_table_register( reg, table_info, container, 0 );
-
-    /*
-     * If the HAL sensors module was configured as an on-demand caching
-     *  module (rather than being automatically loaded regularly),
-     *  then ensure this table makes use of that cache.
-     */
-    cache = get_sensor_cache();
-    if ( cache ) {
-        netsnmp_inject_handler_before( reg, netsnmp_cache_handler_get( cache ),
-                                            "table_container");
-    }
-
-}
-
-
-/*
- *  Container filters for the four tables
- *
- *  Used to ensure that sensor entries appear in the appropriate table.
- */
-int _sensor_filter_temp( netsnmp_container *c, const void *v ) {
-    const netsnmp_sensor_info *sp = (const netsnmp_sensor_info *)v;
-    /* Only matches temperature sensors */
-    return (( sp->type == NETSNMP_SENSOR_TYPE_TEMPERATURE ) ? 0 : 1 );
-}
-
-int _sensor_filter_fan( netsnmp_container *c, const void *v ) {
-    const netsnmp_sensor_info *sp = (const netsnmp_sensor_info *)v;
-    /* Only matches fan sensors */
-    return (( sp->type == NETSNMP_SENSOR_TYPE_RPM ) ? 0 : 1 );
-}
-
-int _sensor_filter_volt( netsnmp_container *c, const void *v ) {
-    const netsnmp_sensor_info *sp = (const netsnmp_sensor_info *)v;
-    /* Only matches voltage sensors (AC or DC) */
-    return ((( sp->type == NETSNMP_SENSOR_TYPE_VOLTAGE_DC ) ||
-             ( sp->type == NETSNMP_SENSOR_TYPE_VOLTAGE_AC )) ? 0 : 1 );
-}
-
-int _sensor_filter_misc( netsnmp_container *c, const void *v ) {
-    const netsnmp_sensor_info *sp = (const netsnmp_sensor_info *)v;
-    /* Matches everything except temperature, fan or voltage sensors */
-    return ((( sp->type == NETSNMP_SENSOR_TYPE_TEMPERATURE ) ||
-             ( sp->type == NETSNMP_SENSOR_TYPE_RPM         ) ||
-             ( sp->type == NETSNMP_SENSOR_TYPE_VOLTAGE_DC  ) ||
-             ( sp->type == NETSNMP_SENSOR_TYPE_VOLTAGE_AC  )) ? 1 : 0 );
-}
-
-
-/*
- * Handle requests for any of the four lmXxxxSensorsTables 
- *
- * This is possible because all the table share the
- *  same structure and behaviour.
- */
-int
-lmSensorsTables_handler(
-    netsnmp_mib_handler               *handler,
-    netsnmp_handler_registration      *reginfo,
-    netsnmp_agent_request_info        *reqinfo,
-    netsnmp_request_info              *requests) {
-
-    netsnmp_request_info       *request;
-    netsnmp_table_request_info *table_info;
-    netsnmp_sensor_info        *sensor_info;
-    int mult  = (int)reginfo->my_reg_void;
-
-    DEBUGMSGTL(( "ucd-snmp/lmsensorsMib","lmSensorsTables_handler - root: "));
-    DEBUGMSGOID(("ucd-snmp/lmsensorsMib", reginfo->rootoid, reginfo->rootoid_len));
-    DEBUGMSG((   "ucd-snmp/lmsensorsMib",", mode %d\n", reqinfo->mode ));
-    /*
-     * This is a read-only table, so we only need to handle GET requests.
-     *    (The container helper converts GETNEXT->GET requests automatically).
-     */
-    switch (reqinfo->mode) {
-    case MODE_GET:
-        for (request=requests; request; request=request->next) {
-            sensor_info = (netsnmp_sensor_info *)
-                            netsnmp_container_table_extract_context(request);
-            if ( !sensor_info ) {
-                netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE);
-                continue;
-            }
-    
-            table_info   =  netsnmp_extract_table_info(request);
-            switch (table_info->colnum) {
-            case COLUMN_LMSENSORS_INDEX:
-                snmp_set_var_typed_integer( request->requestvb, ASN_INTEGER,
-                                            sensor_info->idx.oids[0]);
-                break;
-            case COLUMN_LMSENSORS_DEVICE:
-                if ( sensor_info->descr[0] != '\0' ) {
-                    snmp_set_var_typed_value( request->requestvb, ASN_OCTET_STR,
-                                              sensor_info->descr, strlen(sensor_info->descr));
-                } else {
-                    snmp_set_var_typed_value( request->requestvb, ASN_OCTET_STR,
-                                              sensor_info->name,  strlen(sensor_info->name));
-                }
-                break;
-            case COLUMN_LMSENSORS_VALUE:
-                /* Multiply the value by the appropriate scaling factor for this table */
-                snmp_set_var_typed_integer( request->requestvb, ASN_GAUGE,
-                                            (int)(mult*sensor_info->value));
-                break;
-            default:
-                netsnmp_set_request_error(reqinfo, request,
-                                          SNMP_NOSUCHOBJECT);
-                break;
-            }
-        }
-        break;
-
-    }
-    return SNMP_ERR_NOERROR;
-}
diff --git a/agent/mibgroup/ucd-snmp/lmsensorsMib.h b/agent/mibgroup/ucd-snmp/lmsensorsMib.h
deleted file mode 100644
index 9d85dd1..0000000
--- a/agent/mibgroup/ucd-snmp/lmsensorsMib.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef LM_SENSORS_MIB_H
-#define LM_SENSORS_MIB_H
-
-config_require(hardware/sensors)
-config_add_mib(LM-SENSORS-MIB)
-
-/* function declarations */
-void init_lmsensorsMib(void);
-
-/*
- * Handler and Column definitions for lmXxxxSensorsTable
- *
- * Note that the same handler (and hence the same
- *  column identifiers) are used for all four tables.
- * This is possible because all the table share the
- *  same structure and behaviour.
- */
-Netsnmp_Node_Handler lmSensorsTables_handler;
-#define COLUMN_LMSENSORS_INDEX		1
-#define COLUMN_LMSENSORS_DEVICE		2
-#define COLUMN_LMSENSORS_VALUE		3
-
-#endif /* LM_SENSORS_MIB_H */
diff --git a/agent/mibgroup/ucd-snmp/loadave.c b/agent/mibgroup/ucd-snmp/loadave.c
index 6efc5e9..25bf1d3 100644
--- a/agent/mibgroup/ucd-snmp/loadave.c
+++ b/agent/mibgroup/ucd-snmp/loadave.c
@@ -39,11 +39,9 @@
 #ifdef HAVE_SYS_STAT_H
 #include <sys/stat.h>
 #endif
-#if !defined(dragonfly)
 #ifdef HAVE_SYS_VNODE_H
 #include <sys/vnode.h>
 #endif
-#endif
 #ifdef HAVE_UFS_UFS_QUOTA_H
 #include <ufs/ufs/quota.h>
 #endif
@@ -99,7 +97,11 @@
 #include <string.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -108,16 +110,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) || defined(aix7)
-#ifdef HAVE_SYS_PROTOSW_H
-#include <sys/protosw.h>
-#endif
+#if defined(aix4) || defined(aix5) || defined(aix6)
 #include <libperfstat.h>
 #endif
 #if HAVE_SYS_SYSGET_H
@@ -130,22 +132,10 @@
 
 #include "struct.h"
 #include "loadave.h"
-#include "util_funcs/header_simple_table.h"
+#include "util_funcs.h"
 #include "kernel.h"
 
-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;
-}
+double          maxload[3];
 
 void
 init_loadave(void)
@@ -156,24 +146,24 @@ init_loadave(void)
      * information at 
      */
     struct variable2 extensible_loadave_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_loadave, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_loadave, 1, {ERRORNAME}},
-        {LOADAVE, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_loadave, 1, {LOADAVE}},
-        {LOADMAXVAL, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
-         var_extensible_loadave, 1, {LOADMAXVAL}},
-        {LOADAVEINT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_loadave, 1, {LOADAVEINT}},
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_loadave, 1,
+         {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_loadave, 1,
+         {ERRORNAME}},
+        {LOADAVE, ASN_OCTET_STR, RONLY, var_extensible_loadave, 1,
+         {LOADAVE}},
+        {LOADMAXVAL, ASN_OCTET_STR, RONLY, var_extensible_loadave, 1,
+         {LOADMAXVAL}},
+        {LOADAVEINT, ASN_INTEGER, RONLY, var_extensible_loadave, 1,
+         {LOADAVEINT}},
 #ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
-        {LOADAVEFLOAT, ASN_OPAQUE_FLOAT, NETSNMP_OLDAPI_RONLY,
-         var_extensible_loadave, 1, {LOADAVEFLOAT}},
+        {LOADAVEFLOAT, ASN_OPAQUE_FLOAT, RONLY, var_extensible_loadave, 1,
+         {LOADAVEFLOAT}},
 #endif
-        {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_loadave, 1, {ERRORFLAG}},
-        {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_loadave, 1, {ERRORMSG}}
+        {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_loadave, 1,
+         {ERRORFLAG}},
+        {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_loadave, 1,
+         {ERRORMSG}}
     };
 
     /*
@@ -189,22 +179,9 @@ init_loadave(void)
     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
@@ -212,25 +189,6 @@ loadave_parse_config(const char *token, char *cptr)
 {
     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);
@@ -258,12 +216,7 @@ loadave_free_config(void)
 int
 try_getloadavg(double *r_ave, size_t s_ave)
 {
-#if defined(HAVE_GETLOADAVG) || defined(linux) || defined(ultrix) \
-    || defined(sun) || defined(__alpha) || defined(dynix) \
-    || !defined(cygwin) && defined(NETSNMP_CAN_USE_NLIST) \
-       && defined(LOADAVE_SYMBOL)
     double         *pave = r_ave;
-#endif
 #ifndef HAVE_GETLOADAVG
 #ifdef HAVE_SYS_FIXPOINT_H
     fix             favenrun[3];
@@ -277,7 +230,7 @@ try_getloadavg(double *r_ave, size_t s_ave)
 #define FIX_TO_DBL(_IN) (((double) _IN)/((double) FSCALE))
 #endif
 #endif
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#if defined(aix4) || defined(aix5) || defined(aix6)
     int             favenrun[3];
     perfstat_cpu_total_t cs;
 #endif
@@ -297,7 +250,7 @@ try_getloadavg(double *r_ave, size_t s_ave)
     {
         FILE           *in = fopen("/proc/loadavg", "r");
         if (!in) {
-            NETSNMP_LOGONCE((LOG_ERR, "snmpd: cannot open /proc/loadavg\n"));
+            snmp_log(LOG_ERR, "snmpd: cannot open /proc/loadavg\n");
             return (-1);
         }
         fscanf(in, "%lf %lf %lf", pave, (pave + 1), (pave + 2));
@@ -315,7 +268,7 @@ try_getloadavg(double *r_ave, size_t s_ave)
     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) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
     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;
@@ -356,70 +309,6 @@ try_getloadavg(double *r_ave, size_t s_ave)
     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,
@@ -439,10 +328,6 @@ var_extensible_loadave(struct variable * vp,
     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)));
@@ -451,7 +336,7 @@ var_extensible_loadave(struct variable * vp,
     }
     if (try_getloadavg(&avenrun[0], sizeof(avenrun) / sizeof(avenrun[0]))
         == -1)
-        return NULL;
+        return (0);
     switch (vp->magic) {
     case LOADAVE:
 
@@ -480,12 +365,10 @@ var_extensible_loadave(struct variable * vp,
         if (maxload[name[*length - 1] - 1] != 0 &&
             avenrun[name[*length - 1] - 1] >=
             maxload[name[*length - 1] - 1]) {
-            snprintf(errmsg, sizeof(errmsg),
-                     "%d min Load Average too high (= %.2f)",
+            sprintf(errmsg, "%d min Load Average too high (= %.2f)",
                     (name[*length - 1] ==
                      1) ? 1 : ((name[*length - 1] == 2) ? 5 : 15),
                     avenrun[name[*length - 1] - 1]);
-            errmsg[sizeof(errmsg) - 1] = '\0';
         } else {
             errmsg[0] = 0;
         }
diff --git a/agent/mibgroup/ucd-snmp/loadave.h b/agent/mibgroup/ucd-snmp/loadave.h
index 4f5e7a5..497bfb8 100644
--- a/agent/mibgroup/ucd-snmp/loadave.h
+++ b/agent/mibgroup/ucd-snmp/loadave.h
@@ -4,7 +4,7 @@
 #ifndef _MIBGROUP_LOADAVE_H
 #define _MIBGROUP_LOADAVE_H
 
-config_require(util_funcs/header_simple_table)
+config_require(util_funcs)
 
      void            init_loadave(void);
      extern FindVarMethod var_extensible_loadave;
diff --git a/agent/mibgroup/ucd-snmp/logmatch.c b/agent/mibgroup/ucd-snmp/logmatch.c
index abca5ce..17300c4 100644
--- a/agent/mibgroup/ucd-snmp/logmatch.c
+++ b/agent/mibgroup/ucd-snmp/logmatch.c
@@ -9,107 +9,239 @@
  */
 #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>
-#include <regex.h>
-#include <time.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 <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
-#include "util_funcs/header_generic.h"
-#include "util_funcs/header_simple_table.h"
+#include "struct.h"
+#include "util_funcs.h"
+#include "logmatch.h"
+#include "util_funcs.h"
+
+#define MAXLOGMATCH   50
 
-/*
- * ------------------------------------------------
- *  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
- *  -------------------------------------------------
- */
+struct logmatchstat logmatchTable[MAXLOGMATCH];
+int             logmatchCount;
 
-static int
-logmatch_update_filename(const char * pattern, char * currentFilename)
+void
+init_logmatch(void)
 {
-    time_t t;
-    struct tm *tmp;
-    char newFilename[256];
+    struct variable2 logmatch_info[] = {
+        {LOGMATCH_INFO, ASN_INTEGER, RONLY, var_logmatch_table, 0}
+    };
+
+    struct variable2 logmatch_table[] = {
+        {LOGMATCH_INDEX, ASN_INTEGER, RONLY, var_logmatch_table, 1, {1}},
+        {LOGMATCH_NAME, ASN_OCTET_STR, RONLY, var_logmatch_table, 1, {2}},
+        {LOGMATCH_FILENAME, ASN_OCTET_STR, RONLY, var_logmatch_table, 1,
+         {3}},
+        {LOGMATCH_REGEX, ASN_OCTET_STR, RONLY, var_logmatch_table, 1, {4}},
+        {LOGMATCH_GLOBALCTR, ASN_COUNTER, RONLY, var_logmatch_table, 1,
+         {5}},
+        {LOGMATCH_GLOBALCNT, ASN_INTEGER, RONLY, var_logmatch_table, 1,
+         {6}},
+        {LOGMATCH_CURRENTCTR, ASN_COUNTER, RONLY, var_logmatch_table, 1,
+         {7}},
+        {LOGMATCH_CURRENTCNT, ASN_INTEGER, RONLY, var_logmatch_table, 1,
+         {8}},
+        {LOGMATCH_COUNTER, ASN_COUNTER, RONLY, var_logmatch_table, 1, {9}},
+        {LOGMATCH_COUNT, ASN_INTEGER, RONLY, var_logmatch_table, 1, {10}},
+        {LOGMATCH_FREQ, ASN_INTEGER, RONLY, var_logmatch_table, 1, {11}},
+        {LOGMATCH_ERROR, ASN_INTEGER, RONLY, var_logmatch_table, 1, {100}},
+        {LOGMATCH_MSG, ASN_OCTET_STR, 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 (strchr(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;
+/***************************************************************
+*                                                              *
+* !!!---!!! 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;
+}
 
-    /* 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;
+/***************************************************************
+*                                                              *
+* !!!---!!! 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].filename,
+	       &space_path,
+               &(logmatchTable[logmatchCount].frequency),
+               logmatchTable[logmatchCount].regEx);
+
+	/*
+	 * 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++;
     }
 }
 
-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
-
-static struct logmatchstat logmatchTable[MAXLOGMATCH];
-static int                 logmatchCount = 0;
 
 /***************************************************************
 *                                                              *
+* !!!---!!! PUBLIC !!! --- !!!                                 *
+*                                                              *
 * updateLogmatch                                               *
 * this function is called back by snmpd alarms                 *
 *                                                              *
 ***************************************************************/
 
-static void
+
+void
 updateLogmatch(int iindex)
 {
 
+    regmatch_t      myMatch;
     int             matchResultCode;
     char            inbuf[1024];
     char            perfilename[1024];
@@ -119,7 +251,6 @@ updateLogmatch(int iindex)
     int             toobig;
     int             anyChanges = FALSE;
     struct stat     sb;
-    char            lastFilename[256];
 
     /*
      * ------------------------------------ 
@@ -132,7 +263,7 @@ updateLogmatch(int iindex)
      */
 
     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) {
 
@@ -147,6 +278,7 @@ updateLogmatch(int iindex)
 
         if ((perfile = fopen(perfilename, "r"))) {
 
+
             /*
              * ------------------------------------ 
              * the persistent data file exists so   
@@ -157,8 +289,7 @@ updateLogmatch(int iindex)
 
             pos = counter = ccounter = 0;
 
-            if (fscanf(perfile, "%lu %lu %lu %s",
-                       &pos, &ccounter, &counter, lastFilename)) {
+            if (fscanf(perfile, "%lu %lu %lu", &pos, &ccounter, &counter)) {
 
 
                 /*
@@ -169,53 +300,41 @@ updateLogmatch(int iindex)
                  * ------------------------------------ 
                  */
 
-                if (logmatch_update_filename(logmatchTable[iindex].filenamePattern,
-                                             lastFilename) == 0) {
+                if ((logmatchTable[iindex].logfile =
+                    fopen(logmatchTable[iindex].filename, "r"))) {
+
 
                     /*
-                     * ---------------------------------
-                     * the filename is still the same as 
-                     * the one stored in the persistent
-                     * data file.
-                     * ---------------------------------
+                     * ------------------------------------ 
+                     * the log file could be opened; now    
+                     * let's try to set the pointer         
+                     * ------------------------------------ 
                      */
 
-                    if ((logmatchTable[iindex].logfile =
-                        fopen(logmatchTable[iindex].filename, "r"))) {
+                    if (!fseek
+                        (logmatchTable[iindex].logfile, pos, SEEK_SET)) {
 
 
                         /*
                          * ------------------------------------ 
-                         * the log file could be opened; now    
-                         * let's try to set the pointer         
+                         * the pointer could be set - this is   
+                         * the most that we can do: if the      
+                         * pointer is smaller than the file     
+                         * size we must assume that the pointer 
+                         * still points to where it read the    
+                         * file last time; let's restore the    
+                         * data                                 
                          * ------------------------------------ 
                          */
 
-                        if (!fseek
-                            (logmatchTable[iindex].logfile, pos, SEEK_SET)) {
-
-
-                            /*
-                             * ------------------------------------ 
-                             * the pointer could be set - this is   
-                             * the most that we can do: if the      
-                             * pointer is smaller than the file     
-                             * size we must assume that the pointer 
-                             * still points to where it read the    
-                             * file last time; let's restore the    
-                             * data                                 
-                             * ------------------------------------ 
-                             */
-
-                            logmatchTable[iindex].currentFilePosition = pos;
-                            logmatchTable[iindex].currentMatchCounter =
-                                ccounter;
-                        }
-
-                        fclose(logmatchTable[iindex].logfile);
+                        logmatchTable[iindex].currentFilePosition = pos;
+                        logmatchTable[iindex].currentMatchCounter =
+                            ccounter;
+                        logmatchTable[iindex].globalMatchCounter = counter;
                     }
+
+                    fclose(logmatchTable[iindex].logfile);
                 }
-                logmatchTable[iindex].globalMatchCounter = counter;
             }
 
             fclose(perfile);
@@ -224,19 +343,6 @@ updateLogmatch(int iindex)
         logmatchTable[iindex].virgin = FALSE;
     }
 
-    /*
-     * -------------------------------------------
-     * check if a new input file needs to be opened
-     * if yes, reset counter and position
-     * -------------------------------------------
-     */
-
-    if (logmatch_update_filename(logmatchTable[iindex].filenamePattern,
-                                 logmatchTable[iindex].filename) == 1) {
-        logmatchTable[iindex].currentFilePosition = 0; 
-        logmatchTable[iindex].currentMatchCounter = 0;
-    }
-
 
     /*
      * ------------------------------------ 
@@ -287,7 +393,7 @@ updateLogmatch(int iindex)
 
                 matchResultCode =
                     regexec(&(logmatchTable[iindex].regexBuffer),
-                            inbuf, 0, NULL, REG_NOTEOL);
+                            inbuf, 0, &myMatch, REG_NOTEOL);
 
                 if (matchResultCode == 0) {
                     logmatchTable[iindex].globalMatchCounter++;
@@ -324,11 +430,10 @@ updateLogmatch(int iindex)
          * ------------------------------------ 
          */
 
-        fprintf(perfile, "%lu %lu %lu %s\n",
+        fprintf(perfile, "%lu %lu %lu\n",
                 logmatchTable[iindex].currentFilePosition,
                 logmatchTable[iindex].currentMatchCounter,
-                logmatchTable[iindex].globalMatchCounter,
-                logmatchTable[iindex].filename);
+                logmatchTable[iindex].globalMatchCounter);
 
         fclose(perfile);
     }
@@ -336,166 +441,22 @@ updateLogmatch(int iindex)
 }
 
 
-static void
+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++;
-    }
+    updateLogmatch(logmatchtable->thisIndex);
 }
 
-/***************************************************************
-*                                                              *
-* 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 
  */
 
-static u_char *
+u_char         *
 var_logmatch_table(struct variable *vp,
                    oid * name,
                    size_t * length,
@@ -590,62 +551,4 @@ var_logmatch_table(struct variable *vp,
     return NULL;
 }
 
-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");
-
-}
-
-#endif /* HAVE_REGEX_H */
+#endif /* HAVE_REGEX */
diff --git a/agent/mibgroup/ucd-snmp/logmatch.h b/agent/mibgroup/ucd-snmp/logmatch.h
index b94ad3a..eb2c070 100644
--- a/agent/mibgroup/ucd-snmp/logmatch.h
+++ b/agent/mibgroup/ucd-snmp/logmatch.h
@@ -5,9 +5,53 @@
 #ifndef _MIBGROUP_LOGMATCH_H
 #define _MIBGROUP_LOGMATCH_H
 
-config_require(util_funcs/header_generic)
-config_require(util_funcs/header_simple_table)
+#include "mibdefs.h"
+#include <regex.h>
 
-void init_logmatch(void);
+struct logmatchstat {
+    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
 
 #endif                          /* _MIBGROUP_LOGMATCH_H */
diff --git a/agent/mibgroup/ucd-snmp/memory.c b/agent/mibgroup/ucd-snmp/memory.c
index 742186f..109e96f 100644
--- a/agent/mibgroup/ucd-snmp/memory.c
+++ b/agent/mibgroup/ucd-snmp/memory.c
@@ -10,30 +10,32 @@
 #include "memory.h"
 
 #define DEFAULTMINIMUMSWAP 16000        /* kilobytes */
-static int minimum_swap;
+int memory_object_index;
+int minimum_swap;
 
 /** Initializes the memory module */
 void
 init_memory(void)
 {
-    const oid      memory_oid[] = { 1, 3, 6, 1, 4, 1, 2021, 4 };
-    const oid      memSwapError_oid[]  = { 1, 3, 6, 1, 4, 1, 2021, 4, 100 };
-    const oid      memSwapErrMsg_oid[] = { 1, 3, 6, 1, 4, 1, 2021, 4, 101 };
+    static oid      memory_oid[] = { 1, 3, 6, 1, 4, 1, 2021, 4 };
+    static oid      memSwapError_oid[]  = { 1, 3, 6, 1, 4, 1, 2021, 4, 100 };
+    static oid      memSwapErrMsg_oid[] = { 1, 3, 6, 1, 4, 1, 2021, 4, 101 };
 
     DEBUGMSGTL(("memory", "Initializing\n"));
 
+    memory_object_index = OID_LENGTH(memory_oid);
     netsnmp_register_scalar_group(
         netsnmp_create_handler_registration("memory", handle_memory,
-                                 memory_oid, OID_LENGTH(memory_oid),
+                                 memory_oid, memory_object_index,
                                              HANDLER_CAN_RONLY),
                                  1, 17);
     netsnmp_register_scalar(
         netsnmp_create_handler_registration("memSwapError", handle_memory,
-                           memSwapError_oid, OID_LENGTH(memSwapError_oid),
+                           memSwapError_oid, memory_object_index+1,
                                              HANDLER_CAN_RONLY));
     netsnmp_register_scalar(
         netsnmp_create_handler_registration("memSwapErrMsg", handle_memory,
-                          memSwapErrMsg_oid, OID_LENGTH(memSwapErrMsg_oid),
+                          memSwapErrMsg_oid, memory_object_index+1,
                                              HANDLER_CAN_RONLY));
 
     snmpd_register_config_handler("swap", memory_parse_config,
@@ -72,7 +74,7 @@ handle_memory(netsnmp_mib_handler *handler,
     switch (reqinfo->mode) {
     case MODE_GET:
         netsnmp_memory_load();
-        switch (requests->requestvb->name[ reginfo->rootoid_len - 2 ]) {
+        switch (requests->requestvb->name[ memory_object_index ]) {
         case MEMORY_INDEX:
             val = 0;
             break;
@@ -202,9 +204,8 @@ handle_memory(netsnmp_mib_handler *handler,
                                      (u_char *)buf, strlen(buf));
             return SNMP_ERR_NOERROR;
         default:
-            snmp_log(LOG_ERR,
-                     "unknown object (%" NETSNMP_PRIo "u) in handle_memory\n",
-                     requests->requestvb->name[ reginfo->rootoid_len - 2 ]);
+            snmp_log(LOG_ERR, "unknown object (%lu) in handle_memory\n",
+                     requests->requestvb->name[ memory_object_index ]);
 NOSUCH:
             netsnmp_set_request_error( reqinfo, requests, SNMP_NOSUCHOBJECT );
             return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/ucd-snmp/memory_aix4.c b/agent/mibgroup/ucd-snmp/memory_aix4.c
index 786e5eb..318eee0 100644
--- a/agent/mibgroup/ucd-snmp/memory_aix4.c
+++ b/agent/mibgroup/ucd-snmp/memory_aix4.c
@@ -30,13 +30,10 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/auto_nlist.h>
 
-#include "util_funcs/header_generic.h" /* utility function declarations */
+#include "util_funcs.h"         /* utility function declarations */
 #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>
@@ -58,40 +55,38 @@ init_memory_aix4(void)
 {
 
     struct variable2 extensible_mem_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORNAME}},
-        {MEMTOTALSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAP}},
-        {MEMAVAILSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILSWAP}},
-        {MEMTOTALREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREAL}},
-        {MEMAVAILREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILREAL}},
-        {MEMTOTALSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAPTXT}},
-        {MEMUSEDSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDSWAPTXT}},
-        {MEMTOTALREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREALTXT}},
-        {MEMUSEDREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDREALTXT}},
-        {MEMTOTALFREE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALFREE}},
-        {MEMSWAPMINIMUM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSWAPMINIMUM}},
-        {MEMSHARED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSHARED}},
-        {MEMBUFFER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMBUFFER}},
-        {MEMCACHED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMCACHED}},
-        {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORFLAG}},
-        {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORMSG}}
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_mem, 1,
+         {ERRORNAME}},
+        {MEMTOTALSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALSWAP}},
+        {MEMAVAILSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMAVAILSWAP}},
+        {MEMTOTALREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALREAL}},
+        {MEMAVAILREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMAVAILREAL}},
+        {MEMTOTALSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALSWAPTXT}},
+        {MEMUSEDSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMUSEDSWAPTXT}},
+        {MEMTOTALREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALREALTXT}},
+        {MEMUSEDREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMUSEDREALTXT}},
+        {MEMTOTALFREE, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALFREE}},
+        {MEMSWAPMINIMUM, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMSWAPMINIMUM}},
+        {MEMSHARED, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMSHARED}},
+        {MEMBUFFER, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMBUFFER}},
+        {MEMCACHED, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMCACHED}},
+        {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {ERRORFLAG}},
+        {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_mem, 1, {ERRORMSG}}
     };
 
     /*
diff --git a/agent/mibgroup/ucd-snmp/memory_aix4.h b/agent/mibgroup/ucd-snmp/memory_aix4.h
index c39596c..9f58041 100644
--- a/agent/mibgroup/ucd-snmp/memory_aix4.h
+++ b/agent/mibgroup/ucd-snmp/memory_aix4.h
@@ -5,8 +5,6 @@
 #ifndef _MIBGROUP_MEMORY_AIX4_H
 #define _MIBGROUP_MEMORY_AIX4_H
 
-config_require(util_funcs/header_generic)
-
 #include "mibdefs.h"
 
 void            init_memory_aix4(void);
diff --git a/agent/mibgroup/ucd-snmp/memory_darwin7.c b/agent/mibgroup/ucd-snmp/memory_darwin7.c
index 74d5365..79cc4c9 100644
--- a/agent/mibgroup/ucd-snmp/memory_darwin7.c
+++ b/agent/mibgroup/ucd-snmp/memory_darwin7.c
@@ -44,7 +44,7 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/auto_nlist.h>
 
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 #include "memory.h"
 #include "memory_darwin7.h"
 
@@ -73,40 +73,23 @@ init_memory_darwin7(void)
 {
 
     struct variable2 extensible_mem_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORNAME}},
-        {MEMTOTALSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAP}},
-        {MEMAVAILSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILSWAP}},
-        {MEMTOTALREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREAL}},
-        {MEMAVAILREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILREAL}},
-        {MEMTOTALSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAPTXT}},
-        {MEMUSEDSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDSWAPTXT}},
-        {MEMTOTALREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREALTXT}},
-        {MEMUSEDREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDREALTXT}},
-        {MEMTOTALFREE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALFREE}},
-        {MEMSWAPMINIMUM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSWAPMINIMUM}},
-        {MEMSHARED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSHARED}},
-        {MEMBUFFER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMBUFFER}},
-        {MEMCACHED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMCACHED}},
-        {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORFLAG}},
-        {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORMSG}}
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_mem, 1, {ERRORNAME}},
+        {MEMTOTALSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MEMTOTALSWAP}},
+        {MEMAVAILSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MEMAVAILSWAP}},
+        {MEMTOTALREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MEMTOTALREAL}},
+        {MEMAVAILREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MEMAVAILREAL}},
+        {MEMTOTALSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MEMTOTALSWAPTXT}},
+        {MEMUSEDSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MEMUSEDSWAPTXT}},
+        {MEMTOTALREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MEMTOTALREALTXT}},
+        {MEMUSEDREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MEMUSEDREALTXT}},
+        {MEMTOTALFREE, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MEMTOTALFREE}},
+        {MEMSWAPMINIMUM, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MEMSWAPMINIMUM}},
+        {MEMSHARED, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MEMSHARED}},
+        {MEMBUFFER, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MEMBUFFER}},
+        {MEMCACHED, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MEMCACHED}},
+        {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_mem, 1, {ERRORFLAG}},
+        {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_mem, 1, {ERRORMSG}}
     };
 
     /*
diff --git a/agent/mibgroup/ucd-snmp/memory_darwin7.h b/agent/mibgroup/ucd-snmp/memory_darwin7.h
index ab5d264..efa99c8 100644
--- a/agent/mibgroup/ucd-snmp/memory_darwin7.h
+++ b/agent/mibgroup/ucd-snmp/memory_darwin7.h
@@ -5,8 +5,6 @@
 #ifndef _MIBGROUP_MEMORY_DARWIN7_H
 #define _MIBGROUP_MEMORY_DARWIN7_H
 
-config_require(util_funcs/header_generic)
-
 #include "mibdefs.h"
 
 extern void     init_memory_darwin7(void);
diff --git a/agent/mibgroup/ucd-snmp/memory_dynix.c b/agent/mibgroup/ucd-snmp/memory_dynix.c
index 261c4cd..b1d6cb3 100644
--- a/agent/mibgroup/ucd-snmp/memory_dynix.c
+++ b/agent/mibgroup/ucd-snmp/memory_dynix.c
@@ -17,7 +17,7 @@
 #include <net-snmp/agent/auto_nlist.h>
 
 
-#include "util_funcs/header_generic.h" /* utility function declarations */
+#include "util_funcs.h"         /* utility function declarations */
 #include "memory.h"             /* the module-specific header */
 #include "memory_dynix.h"       /* the module-specific header */
 
@@ -34,40 +34,38 @@ init_memory_dynix(void)
 {
 
     struct variable2 extensible_mem_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORNAME}},
-        {MEMTOTALSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAP}},
-        {MEMAVAILSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILSWAP}},
-        {MEMTOTALREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREAL}},
-        {MEMAVAILREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILREAL}},
-        {MEMTOTALSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAPTXT}},
-        {MEMUSEDSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDSWAPTXT}},
-        {MEMTOTALREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREALTXT}},
-        {MEMUSEDREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDREALTXT}},
-        {MEMTOTALFREE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALFREE}},
-        {MEMSWAPMINIMUM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSWAPMINIMUM}},
-        {MEMSHARED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSHARED}},
-        {MEMBUFFER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMBUFFER}},
-        {MEMCACHED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMCACHED}},
-        {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORFLAG}},
-        {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORMSG}}
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_mem, 1,
+         {ERRORNAME}},
+        {MEMTOTALSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALSWAP}},
+        {MEMAVAILSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMAVAILSWAP}},
+        {MEMTOTALREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALREAL}},
+        {MEMAVAILREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMAVAILREAL}},
+        {MEMTOTALSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALSWAPTXT}},
+        {MEMUSEDSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMUSEDSWAPTXT}},
+        {MEMTOTALREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALREALTXT}},
+        {MEMUSEDREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMUSEDREALTXT}},
+        {MEMTOTALFREE, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALFREE}},
+        {MEMSWAPMINIMUM, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMSWAPMINIMUM}},
+        {MEMSHARED, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMSHARED}},
+        {MEMBUFFER, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMBUFFER}},
+        {MEMCACHED, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMCACHED}},
+        {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {ERRORFLAG}},
+        {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_mem, 1, {ERRORMSG}}
     };
 
     /*
diff --git a/agent/mibgroup/ucd-snmp/memory_dynix.h b/agent/mibgroup/ucd-snmp/memory_dynix.h
index 4fb5294..0a6998d 100644
--- a/agent/mibgroup/ucd-snmp/memory_dynix.h
+++ b/agent/mibgroup/ucd-snmp/memory_dynix.h
@@ -5,8 +5,6 @@
 #ifndef _MIBGROUP_MEMORY_DYNIX_H
 #define _MIBGROUP_MEMORY_DYNIX_H
 
-config_require(util_funcs/header_generic)
-
 #include "mibdefs.h"
 
 /*
diff --git a/agent/mibgroup/ucd-snmp/memory_freebsd2.c b/agent/mibgroup/ucd-snmp/memory_freebsd2.c
index 22dde4c..72c7018 100644
--- a/agent/mibgroup/ucd-snmp/memory_freebsd2.c
+++ b/agent/mibgroup/ucd-snmp/memory_freebsd2.c
@@ -10,12 +10,8 @@
  */
 #include <sys/param.h>
 #include <sys/time.h>
-#ifdef dragonfly
-#include <sys/user.h>
-#else
 #include <sys/proc.h>
 #include <sys/dkstat.h>
-#endif
 #ifdef freebsd5
 #include <sys/bio.h>
 #endif
@@ -87,40 +83,38 @@ init_memory_freebsd2(void)
 {
 
     struct variable2 extensible_mem_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORNAME}},
-        {MEMTOTALSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAP}},
-        {MEMAVAILSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILSWAP}},
-        {MEMTOTALREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREAL}},
-        {MEMAVAILREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILREAL}},
-        {MEMTOTALSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAPTXT}},
-        {MEMUSEDSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDSWAPTXT}},
-        {MEMTOTALREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREALTXT}},
-        {MEMUSEDREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDREALTXT}},
-        {MEMTOTALFREE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALFREE}},
-        {MEMSWAPMINIMUM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSWAPMINIMUM}},
-        {MEMSHARED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSHARED}},
-        {MEMBUFFER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMBUFFER}},
-        {MEMCACHED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMCACHED}},
-        {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORFLAG}},
-        {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORMSG}}
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_mem, 1,
+         {ERRORNAME}},
+        {MEMTOTALSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALSWAP}},
+        {MEMAVAILSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMAVAILSWAP}},
+        {MEMTOTALREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALREAL}},
+        {MEMAVAILREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMAVAILREAL}},
+        {MEMTOTALSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALSWAPTXT}},
+        {MEMUSEDSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMUSEDSWAPTXT}},
+        {MEMTOTALREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALREALTXT}},
+        {MEMUSEDREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMUSEDREALTXT}},
+        {MEMTOTALFREE, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALFREE}},
+        {MEMSWAPMINIMUM, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMSWAPMINIMUM}},
+        {MEMSHARED, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMSHARED}},
+        {MEMBUFFER, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMBUFFER}},
+        {MEMCACHED, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMCACHED}},
+        {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {ERRORFLAG}},
+        {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_mem, 1, {ERRORMSG}}
     };
 
     /*
@@ -255,14 +249,8 @@ var_extensible_mem(struct variable *vp,
     static long     long_ret;
     static char     errmsg[1024];
 
-#ifdef dragonfly
-    static struct vmstats mem;
-    size_t        vmstats_size = sizeof(mem);
-#endif
     static struct vmmeter mem;
-#endif
     static struct vmtotal total;
-
     size_t          total_size = sizeof(total);
     int             total_mib[] = { CTL_VM, VM_METER };
 
@@ -280,11 +268,7 @@ var_extensible_mem(struct variable *vp,
     /*
      * Memory info 
      */
-#ifdef dragonfly
-    sysctlbyname("vm.vmstats", &vmstats, &vmstats_size, NULL, 0);
-#else
     auto_nlist(SUM_SYMBOL, (char *) &mem, sizeof(mem));
-#endif
     sysctl(total_mib, 2, &total, &total_size, NULL, 0);
 
     /*
@@ -367,8 +351,6 @@ var_extensible_mem(struct variable *vp,
     case MEMCACHED:
 #ifdef darwin
         long_ret = ptok(mem.v_lookups);
-#elif  defined(dragonfly)
-        long_ret = ptok(mem.v_cache_count);
 #else
         long_ret = ptok(mem.v_cache_count) + ptok(mem.v_inactive_count);
 #endif
diff --git a/agent/mibgroup/ucd-snmp/memory_hpux.c b/agent/mibgroup/ucd-snmp/memory_hpux.c
index c2b2478..5bf99ad 100644
--- a/agent/mibgroup/ucd-snmp/memory_hpux.c
+++ b/agent/mibgroup/ucd-snmp/memory_hpux.c
@@ -49,40 +49,38 @@ init_memory_hpux(void)
 {
 
     struct variable2 extensible_mem_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORNAME}},
-        {MEMTOTALSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAP}},
-        {MEMAVAILSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILSWAP}},
-        {MEMTOTALREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREAL}},
-        {MEMAVAILREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILREAL}},
-        {MEMTOTALSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAPTXT}},
-        {MEMUSEDSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDSWAPTXT}},
-        {MEMTOTALREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREALTXT}},
-        {MEMUSEDREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDREALTXT}},
-        {MEMTOTALFREE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALFREE}},
-        {MEMSWAPMINIMUM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSWAPMINIMUM}},
-        {MEMSHARED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSHARED}},
-        {MEMBUFFER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMBUFFER}},
-        {MEMCACHED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMCACHED}},
-        {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORFLAG}},
-        {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORMSG}}
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_mem, 1,
+         {ERRORNAME}},
+        {MEMTOTALSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALSWAP}},
+        {MEMAVAILSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMAVAILSWAP}},
+        {MEMTOTALREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALREAL}},
+        {MEMAVAILREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMAVAILREAL}},
+        {MEMTOTALSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALSWAPTXT}},
+        {MEMUSEDSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMUSEDSWAPTXT}},
+        {MEMTOTALREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALREALTXT}},
+        {MEMUSEDREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMUSEDREALTXT}},
+        {MEMTOTALFREE, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALFREE}},
+        {MEMSWAPMINIMUM, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMSWAPMINIMUM}},
+        {MEMSHARED, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMSHARED}},
+        {MEMBUFFER, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMBUFFER}},
+        {MEMCACHED, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMCACHED}},
+        {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {ERRORFLAG}},
+        {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_mem, 1, {ERRORMSG}}
     };
 
     /*
diff --git a/agent/mibgroup/ucd-snmp/memory_netbsd1.c b/agent/mibgroup/ucd-snmp/memory_netbsd1.c
index 3d26a44..6632921 100644
--- a/agent/mibgroup/ucd-snmp/memory_netbsd1.c
+++ b/agent/mibgroup/ucd-snmp/memory_netbsd1.c
@@ -47,7 +47,7 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/auto_nlist.h>
 
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 #include "memory.h"
 #include "memory_netbsd1.h"
 
@@ -75,40 +75,38 @@ init_memory_netbsd1(void)
 {
 
     struct variable2 extensible_mem_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORNAME}},
-        {MEMTOTALSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAP}},
-        {MEMAVAILSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILSWAP}},
-        {MEMTOTALREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREAL}},
-        {MEMAVAILREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILREAL}},
-        {MEMTOTALSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAPTXT}},
-        {MEMUSEDSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDSWAPTXT}},
-        {MEMTOTALREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREALTXT}},
-        {MEMUSEDREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDREALTXT}},
-        {MEMTOTALFREE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALFREE}},
-        {MEMSWAPMINIMUM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSWAPMINIMUM}},
-        {MEMSHARED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSHARED}},
-        {MEMBUFFER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMBUFFER}},
-        {MEMCACHED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMCACHED}},
-        {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORFLAG}},
-        {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORMSG}}
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_mem, 1,
+         {ERRORNAME}},
+        {MEMTOTALSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALSWAP}},
+        {MEMAVAILSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMAVAILSWAP}},
+        {MEMTOTALREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALREAL}},
+        {MEMAVAILREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMAVAILREAL}},
+        {MEMTOTALSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALSWAPTXT}},
+        {MEMUSEDSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMUSEDSWAPTXT}},
+        {MEMTOTALREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALREALTXT}},
+        {MEMUSEDREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMUSEDREALTXT}},
+        {MEMTOTALFREE, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALFREE}},
+        {MEMSWAPMINIMUM, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMSWAPMINIMUM}},
+        {MEMSHARED, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMSHARED}},
+        {MEMBUFFER, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMBUFFER}},
+        {MEMCACHED, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMCACHED}},
+        {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {ERRORFLAG}},
+        {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_mem, 1, {ERRORMSG}}
     };
 
     /*
diff --git a/agent/mibgroup/ucd-snmp/memory_netbsd1.h b/agent/mibgroup/ucd-snmp/memory_netbsd1.h
index a195f85..a93754a 100644
--- a/agent/mibgroup/ucd-snmp/memory_netbsd1.h
+++ b/agent/mibgroup/ucd-snmp/memory_netbsd1.h
@@ -5,8 +5,6 @@
 #ifndef _MIBGROUP_MEMORY_NETBSD1_H
 #define _MIBGROUP_MEMORY_NETBSD1_H
 
-config_require(util_funcs/header_generic)
-
 #include "mibdefs.h"
 
 extern void     init_memory_netbsd1(void);
diff --git a/agent/mibgroup/ucd-snmp/memory_solaris2.c b/agent/mibgroup/ucd-snmp/memory_solaris2.c
index 2d36278..33f41b2 100644
--- a/agent/mibgroup/ucd-snmp/memory_solaris2.c
+++ b/agent/mibgroup/ucd-snmp/memory_solaris2.c
@@ -12,7 +12,7 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/auto_nlist.h>
 
-#include "util_funcs/header_generic.h" /* utility function declarations */
+#include "util_funcs.h"         /* utility function declarations */
 #include "memory.h"             /* the module-specific header */
 #include "memory_solaris2.h"    /* the module-specific header */
 
@@ -42,40 +42,38 @@ init_memory_solaris2(void)
 {
 
     struct variable2 extensible_mem_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORNAME}},
-        {MEMTOTALSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAP}},
-        {MEMAVAILSWAP, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILSWAP}},
-        {MEMTOTALREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREAL}},
-        {MEMAVAILREAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMAVAILREAL}},
-        {MEMTOTALSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALSWAPTXT}},
-        {MEMUSEDSWAPTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDSWAPTXT}},
-        {MEMTOTALREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALREALTXT}},
-        {MEMUSEDREALTXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMUSEDREALTXT}},
-        {MEMTOTALFREE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMTOTALFREE}},
-        {MEMSWAPMINIMUM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSWAPMINIMUM}},
-        {MEMSHARED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMSHARED}},
-        {MEMBUFFER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMBUFFER}},
-        {MEMCACHED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {MEMCACHED}},
-        {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORFLAG}},
-        {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_mem, 1, {ERRORMSG}}
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_mem, 1, {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_mem, 1,
+         {ERRORNAME}},
+        {MEMTOTALSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALSWAP}},
+        {MEMAVAILSWAP, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMAVAILSWAP}},
+        {MEMTOTALREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALREAL}},
+        {MEMAVAILREAL, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMAVAILREAL}},
+        {MEMTOTALSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALSWAPTXT}},
+        {MEMUSEDSWAPTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMUSEDSWAPTXT}},
+        {MEMTOTALREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALREALTXT}},
+        {MEMUSEDREALTXT, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMUSEDREALTXT}},
+        {MEMTOTALFREE, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMTOTALFREE}},
+        {MEMSWAPMINIMUM, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMSWAPMINIMUM}},
+        {MEMSHARED, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMSHARED}},
+        {MEMBUFFER, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMBUFFER}},
+        {MEMCACHED, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {MEMCACHED}},
+        {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_mem, 1,
+         {ERRORFLAG}},
+        {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_mem, 1, {ERRORMSG}}
     };
 
     /*
diff --git a/agent/mibgroup/ucd-snmp/memory_solaris2.h b/agent/mibgroup/ucd-snmp/memory_solaris2.h
index fff5f79..336b3dd 100644
--- a/agent/mibgroup/ucd-snmp/memory_solaris2.h
+++ b/agent/mibgroup/ucd-snmp/memory_solaris2.h
@@ -5,8 +5,6 @@
 #ifndef _MIBGROUP_MEMORY_SOLARIS2_H
 #define _MIBGROUP_MEMORY_SOLARIS2_H
 
-config_require(util_funcs/header_generic)
-
 #include "mibdefs.h"
 
 void            init_memory_solaris2(void);
diff --git a/agent/mibgroup/ucd-snmp/pass.c b/agent/mibgroup/ucd-snmp/pass.c
index 4aae728..27350ba 100644
--- a/agent/mibgroup/ucd-snmp/pass.c
+++ b/agent/mibgroup/ucd-snmp/pass.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #if HAVE_STDLIB_H
 #include <stdlib.h>
@@ -24,6 +23,9 @@
 #ifdef HAVE_LIMITS_H
 #include <limits.h>
 #endif
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #ifdef WIN32
 #include <limits.h>
 #endif
@@ -33,13 +35,9 @@
 
 #include "struct.h"
 #include "pass.h"
-#include "pass_common.h"
 #include "extensible.h"
 #include "util_funcs.h"
 
-netsnmp_feature_require(get_exten_instance)
-netsnmp_feature_require(parse_miboid)
-
 struct extensible *passthrus = NULL;
 int             numpassthrus = 0;
 
@@ -50,12 +48,109 @@ struct variable2 extensible_passthru_variables[] = {
     /*
      * bogus entry.  Only some of it is actually used. 
      */
-    {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_extensible_pass, 0, {MIBINDEX}},
+    {MIBINDEX, ASN_INTEGER, RWRITE, var_extensible_pass, 0, {MIBINDEX}},
 };
 
 
 
+/*
+ * lexicographical compare two object identifiers.
+ * * Returns -1 if name1 < name2,
+ * *          0 if name1 = name2,
+ * *          1 if name1 > name2
+ * *
+ * * This method differs from snmp_oid_compare
+ * * in that the comparison stops at the length
+ * * of the smallest object identifier.
+ */
+int
+snmp_oid_min_compare(const oid * in_name1,
+                     size_t len1, const oid * in_name2, size_t len2)
+{
+    register int    len;
+    register const oid *name1 = in_name1;
+    register const oid *name2 = in_name2;
+
+    /*
+     * len = minimum of len1 and len2 
+     */
+    if (len1 < len2)
+        len = len1;
+    else
+        len = len2;
+    /*
+     * find first non-matching OID 
+     */
+    while (len-- > 0) {
+        /*
+         * these must be done in seperate comparisons, since
+         * subtracting them and using that result has problems with
+         * subids > 2^31. 
+         */
+        if (*(name1) < *(name2))
+            return -1;
+        if (*(name1++) > *(name2++))
+            return 1;
+    }
+    /*
+     * both OIDs equal up to length of shorter OID 
+     */
+
+    return 0;
+}
+
+
+/*
+ * This is also called from pass_persist.c 
+ */
+int
+asc2bin(char *p)
+{
+    char           *r, *q = p;
+    char            c;
+    int             n = 0;
+
+    for (;;) {
+        c = (char) strtol(q, &r, 16);
+        if (r == q)
+            break;
+        *p++ = c;
+        q = r;
+        n++;
+    }
+    return n;
+}
+
+/*
+ * This is also called from pass_persist.c 
+ */
+int
+bin2asc(char *p, size_t n)
+{
+    int             i, flag = 0;
+    char            buffer[SNMP_MAXBUF];
+
+    /* prevent buffer overflow */
+    if ((int)n > (sizeof(buffer) - 1))
+        n = sizeof(buffer) - 1;
+
+    for (i = 0; i < (int) n; i++) {
+        buffer[i] = p[i];
+        if (!isprint(p[i]))
+            flag = 1;
+    }
+    if (flag == 0) {
+        p[n] = 0;
+        return n;
+    }
+    for (i = 0; i < (int) n; i++) {
+        sprintf(p, "%02x ", (unsigned char) (buffer[i] & 0xff));
+        p += 3;
+    }
+    *--p = 0;
+    return 3 * n - 1;
+}
+
 void
 init_pass(void)
 {
@@ -68,8 +163,7 @@ pass_parse_config(const char *token, char *cptr)
 {
     struct extensible **ppass = &passthrus, **etmp, *ptmp;
     char           *tcptr, *endopt;
-    int             i;
-    unsigned long   priority;
+    int             i, priority;
 
     /*
      * options
@@ -82,7 +176,7 @@ pass_parse_config(const char *token, char *cptr)
 	/* change priority level */
 	cptr++;
 	cptr = skip_white(cptr);
-	if (! isdigit((unsigned char)(*cptr))) {
+	if (! isdigit(*cptr)) {
 	  config_perror("priority must be an integer");
 	  return;
 	}
@@ -105,7 +199,7 @@ pass_parse_config(const char *token, char *cptr)
      */
     if (*cptr == '.')
         cptr++;
-    if (!isdigit((unsigned char)(*cptr))) {
+    if (!isdigit(*cptr)) {
         config_perror("second token is not a OID");
         return;
     }
@@ -117,10 +211,9 @@ pass_parse_config(const char *token, char *cptr)
     if (*ppass == NULL)
         return;
     (*ppass)->type = PASSTHRU;
-    (*ppass)->mibpriority = priority;
 
     (*ppass)->miblen = parse_miboid(cptr, (*ppass)->miboid);
-    while (isdigit((unsigned char)(*cptr)) || *cptr == '.')
+    while (isdigit(*cptr) || *cptr == '.')
         cptr++;
     /*
      * path
@@ -132,15 +225,16 @@ pass_parse_config(const char *token, char *cptr)
     } else {
         for (tcptr = cptr; *tcptr != 0 && *tcptr != '#' && *tcptr != ';';
              tcptr++);
-        sprintf((*ppass)->command, "%.*s", (int) (tcptr - cptr), cptr);
+        strncpy((*ppass)->command, cptr, tcptr - cptr);
+        (*ppass)->command[tcptr - cptr] = 0;
     }
-    strlcpy((*ppass)->name, (*ppass)->command, sizeof((*ppass)->name));
+    strncpy((*ppass)->name, (*ppass)->command, sizeof((*ppass)->name));
+    (*ppass)->name[ sizeof((*ppass)->name)-1 ] = 0;
     (*ppass)->next = NULL;
 
-    register_mib_priority("pass",
-                 (struct variable *) extensible_passthru_variables,
-                 sizeof(struct variable2), 1, (*ppass)->miboid,
-                 (*ppass)->miblen, (*ppass)->mibpriority);
+    register_mib_priority("pass", (struct variable *) extensible_passthru_variables,
+			  sizeof(struct variable2),
+			  1, (*ppass)->miboid, (*ppass)->miblen, priority);
 
     /*
      * argggg -- pasthrus must be sorted 
@@ -152,7 +246,7 @@ pass_parse_config(const char *token, char *cptr)
             return;
 
         for (i = 0, ptmp = (struct extensible *) passthrus;
-             i < numpassthrus && ptmp != NULL; i++, ptmp = ptmp->next)
+             i < numpassthrus && ptmp != 0; i++, ptmp = ptmp->next)
             etmp[i] = ptmp;
         qsort(etmp, numpassthrus, sizeof(struct extensible *),
               pass_compare);
@@ -176,7 +270,7 @@ pass_free_config(void)
     for (etmp = passthrus; etmp != NULL;) {
         etmp2 = etmp;
         etmp = etmp->next;
-        unregister_mib_priority(etmp2->miboid, etmp2->miblen, etmp2->mibpriority);
+        unregister_mib(etmp2->miboid, etmp2->miblen);
         free(etmp2);
     }
     passthrus = NULL;
@@ -192,14 +286,18 @@ var_extensible_pass(struct variable *vp,
 {
     oid             newname[MAX_OID_LEN];
     int             i, rtest, fd, newlen;
+    static long     long_ret;
+    static in_addr_t addr_ret;
     char            buf[SNMP_MAXBUF];
     static char     buf2[SNMP_MAXBUF];
+    static oid      objid[MAX_OID_LEN];
     struct extensible *passthru;
     FILE           *file;
 
+    long_ret = *length;
     for (i = 1; i <= numpassthrus; i++) {
         passthru = get_exten_instance(passthrus, i);
-        rtest = snmp_oidtree_compare(name, *length,
+        rtest = snmp_oid_min_compare(name, *length,
                                      passthru->miboid, passthru->miblen);
         if ((exact && rtest == 0) || (!exact && rtest <= 0)) {
             /*
@@ -260,7 +358,69 @@ var_extensible_pass(struct variable *vp,
                 fclose(file);
                 wait_on_exec(passthru);
 
-                return netsnmp_internal_pass_parse(buf, buf2, var_len, vp);
+                /*
+                 * buf contains the return type, and buf2 contains the data 
+                 */
+                if (!strncasecmp(buf, "string", 6)) {
+                    buf2[strlen(buf2) - 1] = 0; /* zap the linefeed */
+                    *var_len = strlen(buf2);
+                    vp->type = ASN_OCTET_STR;
+                    return ((unsigned char *) buf2);
+                } else if (!strncasecmp(buf, "integer", 7)) {
+                    *var_len = sizeof(long_ret);
+                    long_ret = strtol(buf2, NULL, 10);
+                    vp->type = ASN_INTEGER;
+                    return ((unsigned char *) &long_ret);
+                } else if (!strncasecmp(buf, "unsigned", 8)) {
+                    *var_len = sizeof(long_ret);
+                    long_ret = strtoul(buf2, NULL, 10);
+                    vp->type = ASN_UNSIGNED;
+                    return ((unsigned char *) &long_ret);
+                } else if (!strncasecmp(buf, "counter", 7)) {
+                    *var_len = sizeof(long_ret);
+                    long_ret = strtoul(buf2, NULL, 10);
+                    vp->type = ASN_COUNTER;
+                    return ((unsigned char *) &long_ret);
+                } else if (!strncasecmp(buf, "octet", 5)) {
+                    *var_len = asc2bin(buf2);
+                    vp->type = ASN_OCTET_STR;
+                    return ((unsigned char *) buf2);
+                } else if (!strncasecmp(buf, "opaque", 6)) {
+                    *var_len = asc2bin(buf2);
+                    vp->type = ASN_OPAQUE;
+                    return ((unsigned char *) buf2);
+                } else if (!strncasecmp(buf, "gauge", 5)) {
+                    *var_len = sizeof(long_ret);
+                    long_ret = strtoul(buf2, NULL, 10);
+                    vp->type = ASN_GAUGE;
+                    return ((unsigned char *) &long_ret);
+                } else if (!strncasecmp(buf, "objectid", 8)) {
+                    newlen = parse_miboid(buf2, objid);
+                    *var_len = newlen * sizeof(oid);
+                    vp->type = ASN_OBJECT_ID;
+                    return ((unsigned char *) objid);
+                } else if (!strncasecmp(buf, "timetick", 8)) {
+                    *var_len = sizeof(long_ret);
+                    long_ret = strtoul(buf2, NULL, 10);
+                    vp->type = ASN_TIMETICKS;
+                    return ((unsigned char *) &long_ret);
+                } else if (!strncasecmp(buf, "ipaddress", 9)) {
+                    newlen = parse_miboid(buf2, objid);
+                    if (newlen != 4) {
+                        snmp_log(LOG_ERR,
+                                 "invalid ipaddress returned:  %s\n",
+                                 buf2);
+                        *var_len = 0;
+                        return (NULL);
+                    }
+                    addr_ret =
+                        (objid[0] << (8 * 3)) + (objid[1] << (8 * 2)) +
+                        (objid[2] << 8) + objid[3];
+                    addr_ret = htonl(addr_ret);
+                    *var_len = sizeof(addr_ret);
+                    vp->type = ASN_IPADDRESS;
+                    return ((unsigned char *) &addr_ret);
+                }
             }
             *var_len = 0;
             return (NULL);
@@ -273,16 +433,21 @@ var_extensible_pass(struct variable *vp,
 }
 
 int
-setPass(int action, u_char * var_val, u_char var_val_type,
+setPass(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)
 {
     int             i, rtest;
     struct extensible *passthru;
+
     char            buf[SNMP_MAXBUF], buf2[SNMP_MAXBUF];
+    long            tmp;
+    unsigned long   utmp;
 
     for (i = 1; i <= numpassthrus; i++) {
         passthru = get_exten_instance(passthrus, i);
-        rtest = snmp_oidtree_compare(name, name_len,
+        rtest = snmp_oid_min_compare(name, name_len,
                                      passthru->miboid, passthru->miblen);
         if (rtest <= 0) {
             if (action != ACTION)
@@ -297,14 +462,65 @@ setPass(int action, u_char * var_val, u_char var_val_type,
             snprintf(passthru->command, sizeof(passthru->command),
                      "%s -s %s ", passthru->name, buf);
             passthru->command[ sizeof(passthru->command)-1 ] = 0;
-            netsnmp_internal_pass_set_format(buf, var_val, var_val_type, var_val_len);
-            strlcat(passthru->command, buf, sizeof(passthru->command));
+            switch (var_val_type) {
+            case ASN_INTEGER:
+            case ASN_COUNTER:
+            case ASN_GAUGE:
+            case ASN_TIMETICKS:
+                tmp = *((long *) var_val);
+                switch (var_val_type) {
+                case ASN_INTEGER:
+                    sprintf(buf, "integer %d\n", (int) tmp);
+                    break;
+                case ASN_COUNTER:
+                    sprintf(buf, "counter %d\n", (int) tmp);
+                    break;
+                case ASN_GAUGE:
+                    sprintf(buf, "gauge %d\n", (int) tmp);
+                    break;
+                case ASN_TIMETICKS:
+                    sprintf(buf, "timeticks %d\n", (int) tmp);
+                    break;
+                }
+                break;
+            case ASN_IPADDRESS:
+                utmp = *((u_long *) var_val);
+                utmp = ntohl(utmp);
+                sprintf(buf, "ipaddress %d.%d.%d.%d\n",
+                        (int) ((utmp & 0xff000000) >> (8 * 3)),
+                        (int) ((utmp & 0xff0000) >> (8 * 2)),
+                        (int) ((utmp & 0xff00) >> (8)),
+                        (int) ((utmp & 0xff)));
+                break;
+            case ASN_OCTET_STR:
+                memcpy(buf2, var_val, var_val_len);
+                if (var_val_len == 0)
+                    sprintf(buf, "string \"\"\n");
+                else if (bin2asc(buf2, var_val_len) == (int) var_val_len)
+                    snprintf(buf, sizeof(buf), "string \"%s\"\n", buf2);
+                else
+                    snprintf(buf, sizeof(buf), "octet \"%s\"\n", buf2);
+                buf[ sizeof(buf)-1 ] = 0;
+                break;
+            case ASN_OBJECT_ID:
+                sprint_mib_oid(buf2, (oid *) var_val, var_val_len/sizeof(oid));
+                snprintf(buf, sizeof(buf), "objectid \"%s\"\n", buf2);
+                buf[ sizeof(buf)-1 ] = 0;
+                break;
+            }
+            strncat(passthru->command, buf, sizeof(passthru->command)-strlen(passthru->command)-1);
+            passthru->command[ sizeof(passthru->command)-1 ] = 0;
             DEBUGMSGTL(("ucd-snmp/pass", "pass-running:  %s",
                         passthru->command));
             exec_command(passthru);
             DEBUGMSGTL(("ucd-snmp/pass", "pass-running returned: %s",
                         passthru->output));
-            return netsnmp_internal_pass_str_to_errno(passthru->output);
+            if (!strncasecmp(passthru->output, "not-writable", 12)) {
+                return SNMP_ERR_NOTWRITABLE;
+            } else if (!strncasecmp(passthru->output, "wrong-type", 10)) {
+                return SNMP_ERR_WRONGTYPE;
+            }
+            return SNMP_ERR_NOERROR;
         }
     }
     if (snmp_get_do_debugging()) {
diff --git a/agent/mibgroup/ucd-snmp/pass.h b/agent/mibgroup/ucd-snmp/pass.h
index 51c0689..089c9ca 100644
--- a/agent/mibgroup/ucd-snmp/pass.h
+++ b/agent/mibgroup/ucd-snmp/pass.h
@@ -6,9 +6,7 @@
 
 void            init_pass(void);
 
-config_require(ucd-snmp/pass_common)
 config_require(util_funcs)
-config_require(utilities/execute)
 config_add_mib(NET-SNMP-PASS-MIB)
 
 extern FindVarMethod var_extensible_pass;
diff --git a/agent/mibgroup/ucd-snmp/pass_common.c b/agent/mibgroup/ucd-snmp/pass_common.c
deleted file mode 100644
index 38a0443..0000000
--- a/agent/mibgroup/ucd-snmp/pass_common.c
+++ /dev/null
@@ -1,264 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-
-#include <ctype.h>
-#if HAVE_STDDEF_H
-#include <stddef.h>
-#endif
-#include <stdio.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 "mibgroup/util_funcs.h"
-#include "pass_common.h"
-
-static int
-netsnmp_internal_asc2bin(char *p)
-{
-    char           *r, *q = p;
-    char            c;
-    int             n = 0;
-
-    for (;;) {
-        c = (char) strtol(q, &r, 16);
-        if (r == q)
-            break;
-        *p++ = c;
-        q = r;
-        n++;
-    }
-    return n;
-}
-
-static int
-netsnmp_internal_bin2asc(char *p, size_t n)
-{
-    int             i, flag = 0;
-    char            buffer[SNMP_MAXBUF];
-
-    /* prevent buffer overflow */
-    if ((int)n > (sizeof(buffer) - 1))
-        n = sizeof(buffer) - 1;
-
-    for (i = 0; i < (int) n; i++) {
-        buffer[i] = p[i];
-        if (!isprint((unsigned char) (p[i])))
-            flag = 1;
-    }
-    if (flag == 0) {
-        p[n] = 0;
-        return n;
-    }
-    for (i = 0; i < (int) n; i++) {
-        sprintf(p, "%02x ", (unsigned char) (buffer[i] & 0xff));
-        p += 3;
-    }
-    *--p = 0;
-    return 3 * n - 1;
-}
-
-int
-netsnmp_internal_pass_str_to_errno(const char *buf)
-{
-    if (!strncasecmp(buf, "too-big", 7)) {
-        /* Shouldn't happen */
-        return SNMP_ERR_TOOBIG;
-    } else if (!strncasecmp(buf, "no-such-name", 12)) {
-        return SNMP_ERR_NOSUCHNAME;
-    } else if (!strncasecmp(buf, "bad-value", 9)) {
-        return SNMP_ERR_BADVALUE;
-    } else if (!strncasecmp(buf, "read-only", 9)) {
-        return SNMP_ERR_READONLY;
-    } else if (!strncasecmp(buf, "gen-error", 9)) {
-        return SNMP_ERR_GENERR;
-    } else if (!strncasecmp(buf, "no-access", 9)) {
-        return SNMP_ERR_NOACCESS;
-    } else if (!strncasecmp(buf, "wrong-type", 10)) {
-        return SNMP_ERR_WRONGTYPE;
-    } else if (!strncasecmp(buf, "wrong-length", 12)) {
-        return SNMP_ERR_WRONGLENGTH;
-    } else if (!strncasecmp(buf, "wrong-encoding", 14)) {
-        return SNMP_ERR_WRONGENCODING;
-    } else if (!strncasecmp(buf, "wrong-value", 11)) {
-        return SNMP_ERR_WRONGVALUE;
-    } else if (!strncasecmp(buf, "no-creation", 11)) {
-        return SNMP_ERR_NOCREATION;
-    } else if (!strncasecmp(buf, "inconsistent-value", 18)) {
-        return SNMP_ERR_INCONSISTENTVALUE;
-    } else if (!strncasecmp(buf, "resource-unavailable", 20)) {
-        return SNMP_ERR_RESOURCEUNAVAILABLE;
-    } else if (!strncasecmp(buf, "commit-failed", 13)) {
-        return SNMP_ERR_COMMITFAILED;
-    } else if (!strncasecmp(buf, "undo-failed", 11)) {
-        return SNMP_ERR_UNDOFAILED;
-    } else if (!strncasecmp(buf, "authorization-error", 19)) {
-        return SNMP_ERR_AUTHORIZATIONERROR;
-    } else if (!strncasecmp(buf, "not-writable", 12)) {
-        return SNMP_ERR_NOTWRITABLE;
-    } else if (!strncasecmp(buf, "inconsistent-name", 17)) {
-        return SNMP_ERR_INCONSISTENTNAME;
-    }
-
-    return SNMP_ERR_NOERROR;
-}
-
-unsigned char *
-netsnmp_internal_pass_parse(char * buf,
-                            char * buf2,
-                            size_t * var_len,
-                            struct variable *vp)
-{
-    static long     long_ret;
-    static in_addr_t addr_ret;
-    int             newlen;
-    static oid      objid[MAX_OID_LEN];
-
-    /*
-     * buf contains the return type, and buf2 contains the data
-     */
-    if (!strncasecmp(buf, "string", 6)) {
-        buf2[strlen(buf2) - 1] = 0; /* zap the linefeed */
-        *var_len = strlen(buf2);
-        vp->type = ASN_OCTET_STR;
-        return ((unsigned char *) buf2);
-    }
-#ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
-    else if (!strncasecmp(buf, "integer64", 9)) {
-        static struct counter64 c64;
-        uint64_t v64 = strtoull(buf2, NULL, 10);
-        c64.high = (unsigned long)(v64 >> 32);
-        c64.low  = (unsigned long)(v64 & 0xffffffff);
-        *var_len = sizeof(c64);
-        vp->type = ASN_INTEGER64;
-        return ((unsigned char *) &c64);
-    }
-#endif
-    else if (!strncasecmp(buf, "integer", 7)) {
-        *var_len = sizeof(long_ret);
-        long_ret = strtol(buf2, NULL, 10);
-        vp->type = ASN_INTEGER;
-        return ((unsigned char *) &long_ret);
-    } else if (!strncasecmp(buf, "unsigned", 8)) {
-        *var_len = sizeof(long_ret);
-        long_ret = strtoul(buf2, NULL, 10);
-        vp->type = ASN_UNSIGNED;
-        return ((unsigned char *) &long_ret);
-    }
-    else if (!strncasecmp(buf, "counter64", 9)) {
-        static struct counter64 c64;
-        uint64_t v64 = strtoull(buf2, NULL, 10);
-        c64.high = (unsigned long)(v64 >> 32);
-        c64.low  = (unsigned long)(v64 & 0xffffffff);
-        *var_len = sizeof(c64);
-        vp->type = ASN_COUNTER64;
-        return ((unsigned char *) &c64);
-    }
-    else if (!strncasecmp(buf, "counter", 7)) {
-        *var_len = sizeof(long_ret);
-        long_ret = strtoul(buf2, NULL, 10);
-        vp->type = ASN_COUNTER;
-        return ((unsigned char *) &long_ret);
-    } else if (!strncasecmp(buf, "octet", 5)) {
-        *var_len = netsnmp_internal_asc2bin(buf2);
-        vp->type = ASN_OCTET_STR;
-        return ((unsigned char *) buf2);
-    } else if (!strncasecmp(buf, "opaque", 6)) {
-        *var_len = netsnmp_internal_asc2bin(buf2);
-        vp->type = ASN_OPAQUE;
-        return ((unsigned char *) buf2);
-    } else if (!strncasecmp(buf, "gauge", 5)) {
-        *var_len = sizeof(long_ret);
-        long_ret = strtoul(buf2, NULL, 10);
-        vp->type = ASN_GAUGE;
-        return ((unsigned char *) &long_ret);
-    } else if (!strncasecmp(buf, "objectid", 8)) {
-        newlen = parse_miboid(buf2, objid);
-        *var_len = newlen * sizeof(oid);
-        vp->type = ASN_OBJECT_ID;
-        return ((unsigned char *) objid);
-    } else if (!strncasecmp(buf, "timetick", 8)) {
-        *var_len = sizeof(long_ret);
-        long_ret = strtoul(buf2, NULL, 10);
-        vp->type = ASN_TIMETICKS;
-        return ((unsigned char *) &long_ret);
-    } else if (!strncasecmp(buf, "ipaddress", 9)) {
-        newlen = parse_miboid(buf2, objid);
-        if (newlen != 4) {
-            snmp_log(LOG_ERR, "invalid ipaddress returned:  %s\n", buf2);
-            *var_len = 0;
-            return (NULL);
-        }
-        addr_ret =
-            (objid[0] << (8 * 3)) + (objid[1] << (8 * 2)) +
-            (objid[2] << 8) + objid[3];
-        addr_ret = htonl(addr_ret);
-        *var_len = sizeof(addr_ret);
-        vp->type = ASN_IPADDRESS;
-        return ((unsigned char *) &addr_ret);
-    }
-    *var_len = 0;
-    return (NULL);
-}
-
-void
-netsnmp_internal_pass_set_format(char *buf,
-                                 const u_char *var_val,
-                                 u_char var_val_type,
-                                 size_t var_val_len)
-{
-    char            buf2[SNMP_MAXBUF];
-    long            tmp;
-    unsigned long   utmp;
-
-    switch (var_val_type) {
-    case ASN_INTEGER:
-    case ASN_COUNTER:
-    case ASN_GAUGE:
-    case ASN_TIMETICKS:
-        tmp = *((const long *) var_val);
-        switch (var_val_type) {
-        case ASN_INTEGER:
-            sprintf(buf, "integer %d\n", (int) tmp);
-            break;
-        case ASN_COUNTER:
-            sprintf(buf, "counter %d\n", (int) tmp);
-            break;
-        case ASN_GAUGE:
-            sprintf(buf, "gauge %d\n", (int) tmp);
-            break;
-        case ASN_TIMETICKS:
-            sprintf(buf, "timeticks %d\n", (int) tmp);
-            break;
-        }
-        break;
-    case ASN_IPADDRESS:
-        utmp = *((const u_long *) var_val);
-        utmp = ntohl(utmp);
-        sprintf(buf, "ipaddress %d.%d.%d.%d\n",
-                (int) ((utmp & 0xff000000) >> (8 * 3)),
-                (int) ((utmp & 0xff0000) >> (8 * 2)),
-                (int) ((utmp & 0xff00) >> (8)),
-                (int) ((utmp & 0xff)));
-        break;
-    case ASN_OCTET_STR:
-        memcpy(buf2, var_val, var_val_len);
-        if (var_val_len == 0)
-            sprintf(buf, "string \"\"\n");
-        else if (netsnmp_internal_bin2asc(buf2, var_val_len) ==
-                 (int) var_val_len)
-            snprintf(buf, sizeof(buf), "string \"%s\"\n", buf2);
-        else
-            snprintf(buf, sizeof(buf), "octet \"%s\"\n", buf2);
-        buf[ sizeof(buf)-1 ] = 0;
-        break;
-    case ASN_OBJECT_ID:
-        sprint_mib_oid(buf2, (const oid *) var_val, var_val_len/sizeof(oid));
-        snprintf(buf, sizeof(buf), "objectid \"%s\"\n", buf2);
-        buf[ sizeof(buf)-1 ] = 0;
-        break;
-    }
-}
diff --git a/agent/mibgroup/ucd-snmp/pass_common.h b/agent/mibgroup/ucd-snmp/pass_common.h
deleted file mode 100644
index b1d7e4b..0000000
--- a/agent/mibgroup/ucd-snmp/pass_common.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef NETSNMP_AGENT_MIBGROUP_PASS_COMMON_H
-#define NETSNMP_AGENT_MIBGROUP_PASS_COMMON_H
-
-/*
- * This is an internal header file. The functions declared here might change
- * or disappear at any time
- */
-
-int
-netsnmp_internal_pass_str_to_errno(const char *buf);
-
-unsigned char *
-netsnmp_internal_pass_parse(char *buf, char *buf2, size_t *var_len,
-                            struct variable *vp);
-
-void
-netsnmp_internal_pass_set_format(char *buf, const u_char *var_val,
-                                 u_char var_val_type, size_t var_val_len);
-
-#endif /* !NETSNMP_AGENT_MIBGROUP_PASS_COMMON_H */
diff --git a/agent/mibgroup/ucd-snmp/pass_persist.c b/agent/mibgroup/ucd-snmp/pass_persist.c
index cc44232..4e960aa 100644
--- a/agent/mibgroup/ucd-snmp/pass_persist.c
+++ b/agent/mibgroup/ucd-snmp/pass_persist.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #if HAVE_IO_H
 #include <io.h>
@@ -26,6 +25,9 @@
 #ifdef HAVE_LIMITS_H
 #include <limits.h>
 #endif
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #ifdef WIN32
 #include <limits.h>
 #endif
@@ -38,37 +40,39 @@
 
 #include "struct.h"
 #include "pass_persist.h"
-#include "pass_common.h"
 #include "extensible.h"
 #include "util_funcs.h"
 
-netsnmp_feature_require(get_exten_instance)
-netsnmp_feature_require(parse_miboid)
-
 struct extensible *persistpassthrus = NULL;
 int             numpersistpassthrus = 0;
 struct persist_pipe_type {
     FILE           *fIn, *fOut;
     int             fdIn, fdOut;
-    netsnmp_pid_t   pid;
+    int             pid;
 }              *persist_pipes = (struct persist_pipe_type *) NULL;
-static unsigned pipe_check_alarm_id;
 static int      init_persist_pipes(void);
 static void     close_persist_pipe(int iindex);
 static int      open_persist_pipe(int iindex, char *command);
-static void     check_persist_pipes(unsigned clientreg, void *clientarg);
 static void     destruct_persist_pipes(void);
 static int      write_persist_pipe(int iindex, const char *data);
 
 /*
+ * These are defined in pass.c 
+ */
+extern int      asc2bin(char *p);
+extern int      bin2asc(char *p, size_t n);
+extern int      snmp_oid_min_compare(const oid *, size_t, const oid *,
+                                     size_t);
+
+/*
  * the relocatable extensible commands variables 
  */
 struct variable2 extensible_persist_passthru_variables[] = {
     /*
      * bogus entry.  Only some of it is actually used. 
      */
-    {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-     var_extensible_pass_persist, 0, {MIBINDEX}},
+    {MIBINDEX, ASN_INTEGER, RWRITE, var_extensible_pass_persist, 0,
+     {MIBINDEX}},
 };
 
 void
@@ -78,19 +82,6 @@ init_pass_persist(void)
                                   pass_persist_parse_config,
                                   pass_persist_free_config,
                                   "miboid program");
-    pipe_check_alarm_id = snmp_alarm_register(10, SA_REPEAT, check_persist_pipes, NULL);
-}
-
-void
-shutdown_pass_persist(void)
-{
-    if (pipe_check_alarm_id) {
-        snmp_alarm_unregister(pipe_check_alarm_id);
-        pipe_check_alarm_id = 0;
-    }
-
-    /* Close any open pipes. */
-    destruct_persist_pipes();
 }
 
 void
@@ -98,8 +89,7 @@ pass_persist_parse_config(const char *token, char *cptr)
 {
     struct extensible **ppass = &persistpassthrus, **etmp, *ptmp;
     char           *tcptr, *endopt;
-    int             i;
-    long int        priority;
+    int             i, priority;
 
     /*
      * options
@@ -112,7 +102,7 @@ pass_persist_parse_config(const char *token, char *cptr)
 	/* change priority level */
 	cptr++;
 	cptr = skip_white(cptr);
-	if (! isdigit((unsigned char)(*cptr))) {
+	if (! isdigit(*cptr)) {
 	  config_perror("priority must be an integer");
 	  return;
 	}
@@ -135,7 +125,7 @@ pass_persist_parse_config(const char *token, char *cptr)
      */
     if (*cptr == '.')
         cptr++;
-    if (!isdigit((unsigned char)(*cptr))) {
+    if (!isdigit(*cptr)) {
         config_perror("second token is not a OID");
         return;
     }
@@ -147,10 +137,9 @@ pass_persist_parse_config(const char *token, char *cptr)
     if (*ppass == NULL)
         return;
     (*ppass)->type = PASSTHRU_PERSIST;
-    (*ppass)->mibpriority = priority;
 
     (*ppass)->miblen = parse_miboid(cptr, (*ppass)->miboid);
-    while (isdigit((unsigned char)(*cptr)) || *cptr == '.')
+    while (isdigit(*cptr) || *cptr == '.')
         cptr++;
     /*
      * path
@@ -162,15 +151,17 @@ pass_persist_parse_config(const char *token, char *cptr)
     } else {
         for (tcptr = cptr; *tcptr != 0 && *tcptr != '#' && *tcptr != ';';
              tcptr++);
-        sprintf((*ppass)->command, "%.*s", (int) (tcptr - cptr), cptr);
+        strncpy((*ppass)->command, cptr, tcptr - cptr);
+        (*ppass)->command[tcptr - cptr] = 0;
     }
-    strlcpy((*ppass)->name, (*ppass)->command, sizeof((*ppass)->name));
+    strncpy((*ppass)->name, (*ppass)->command, sizeof((*ppass)->name));
+    (*ppass)->name[ sizeof((*ppass)->name)-1 ] = 0;
     (*ppass)->next = NULL;
 
     register_mib_priority("pass_persist",
                  (struct variable *) extensible_persist_passthru_variables,
                  sizeof(struct variable2), 1, (*ppass)->miboid,
-                 (*ppass)->miblen, (*ppass)->mibpriority);
+                 (*ppass)->miblen, priority);
 
     /*
      * argggg -- pasthrus must be sorted 
@@ -181,7 +172,7 @@ pass_persist_parse_config(const char *token, char *cptr)
         if (etmp == NULL)
             return;
         for (i = 0, ptmp = (struct extensible *) persistpassthrus;
-             i < numpersistpassthrus && ptmp != NULL; i++, ptmp = ptmp->next)
+             i < numpersistpassthrus && ptmp != 0; i++, ptmp = ptmp->next)
             etmp[i] = ptmp;
         qsort(etmp, numpersistpassthrus, sizeof(struct extensible *),
               pass_persist_compare);
@@ -202,10 +193,15 @@ pass_persist_free_config(void)
 {
     struct extensible *etmp, *etmp2;
 
+    /*
+     * Close any open pipes to any programs 
+     */
+    destruct_persist_pipes();
+
     for (etmp = persistpassthrus; etmp != NULL;) {
         etmp2 = etmp;
         etmp = etmp->next;
-        unregister_mib_priority(etmp2->miboid, etmp2->miblen, etmp2->mibpriority);
+        unregister_mib(etmp2->miboid, etmp2->miblen);
         free(etmp2);
     }
     persistpassthrus = NULL;
@@ -221,8 +217,11 @@ var_extensible_pass_persist(struct variable *vp,
 {
     oid             newname[MAX_OID_LEN];
     int             i, rtest, newlen;
+    static long     long_ret;
+    static in_addr_t addr_ret;
     char            buf[SNMP_MAXBUF];
     static char     buf2[SNMP_MAXBUF];
+    static oid      objid[MAX_OID_LEN];
     struct extensible *persistpassthru;
     FILE           *file;
 
@@ -231,9 +230,10 @@ var_extensible_pass_persist(struct variable *vp,
      */
     init_persist_pipes();
 
+    long_ret = *length;
     for (i = 1; i <= numpersistpassthrus; i++) {
         persistpassthru = get_exten_instance(persistpassthrus, i);
-        rtest = snmp_oidtree_compare(name, *length,
+        rtest = snmp_oid_min_compare(name, *length,
                                      persistpassthru->miboid,
                                      persistpassthru->miblen);
         if ((exact && rtest == 0) || (!exact && rtest <= 0)) {
@@ -312,7 +312,69 @@ var_extensible_pass_persist(struct variable *vp,
                     close_persist_pipe(i);
                     return (NULL);
                 }
-                return netsnmp_internal_pass_parse(buf, buf2, var_len, vp);
+                /*
+                 * buf contains the return type, and buf2 contains the data 
+                 */
+                if (!strncasecmp(buf, "string", 6)) {
+                    buf2[strlen(buf2) - 1] = 0; /* zap the linefeed */
+                    *var_len = strlen(buf2);
+                    vp->type = ASN_OCTET_STR;
+                    return ((unsigned char *) buf2);
+                } else if (!strncasecmp(buf, "integer", 7)) {
+                    *var_len = sizeof(long_ret);
+                    long_ret = strtol(buf2, NULL, 10);
+                    vp->type = ASN_INTEGER;
+                    return ((unsigned char *) &long_ret);
+                } else if (!strncasecmp(buf, "unsigned", 8)) {
+                    *var_len = sizeof(long_ret);
+                    long_ret = strtoul(buf2, NULL, 10);
+                    vp->type = ASN_UNSIGNED;
+                    return ((unsigned char *) &long_ret);
+                } else if (!strncasecmp(buf, "counter", 7)) {
+                    *var_len = sizeof(long_ret);
+                    long_ret = strtoul(buf2, NULL, 10);
+                    vp->type = ASN_COUNTER;
+                    return ((unsigned char *) &long_ret);
+                } else if (!strncasecmp(buf, "octet", 5)) {
+                    *var_len = asc2bin(buf2);
+                    vp->type = ASN_OCTET_STR;
+                    return ((unsigned char *) buf2);
+                } else if (!strncasecmp(buf, "opaque", 6)) {
+                    *var_len = asc2bin(buf2);
+                    vp->type = ASN_OPAQUE;
+                    return ((unsigned char *) buf2);
+                } else if (!strncasecmp(buf, "gauge", 5)) {
+                    *var_len = sizeof(long_ret);
+                    long_ret = strtoul(buf2, NULL, 10);
+                    vp->type = ASN_GAUGE;
+                    return ((unsigned char *) &long_ret);
+                } else if (!strncasecmp(buf, "objectid", 8)) {
+                    newlen = parse_miboid(buf2, objid);
+                    *var_len = newlen * sizeof(oid);
+                    vp->type = ASN_OBJECT_ID;
+                    return ((unsigned char *) objid);
+                } else if (!strncasecmp(buf, "timetick", 8)) {
+                    *var_len = sizeof(long_ret);
+                    long_ret = strtoul(buf2, NULL, 10);
+                    vp->type = ASN_TIMETICKS;
+                    return ((unsigned char *) &long_ret);
+                } else if (!strncasecmp(buf, "ipaddress", 9)) {
+                    newlen = parse_miboid(buf2, objid);
+                    if (newlen != 4) {
+                        snmp_log(LOG_ERR,
+                                 "invalid ipaddress returned:  %s\n",
+                                 buf2);
+                        *var_len = 0;
+                        return (NULL);
+                    }
+                    addr_ret =
+                        (objid[0] << (8 * 3)) + (objid[1] << (8 * 2)) +
+                        (objid[2] << 8) + objid[3];
+                    addr_ret = htonl(addr_ret);
+                    *var_len = sizeof(addr_ret);
+                    vp->type = ASN_IPADDRESS;
+                    return ((unsigned char *) &addr_ret);
+                }
             }
             *var_len = 0;
             return (NULL);
@@ -335,6 +397,8 @@ setPassPersist(int action,
     struct extensible *persistpassthru;
 
     char            buf[SNMP_MAXBUF], buf2[SNMP_MAXBUF];
+    long            tmp;
+    unsigned long   utmp;
 
     /*
      * Make sure that our basic pipe structure is malloced 
@@ -343,7 +407,7 @@ setPassPersist(int action,
 
     for (i = 1; i <= numpersistpassthrus; i++) {
         persistpassthru = get_exten_instance(persistpassthrus, i);
-        rtest = snmp_oidtree_compare(name, name_len,
+        rtest = snmp_oid_min_compare(name, name_len,
                                      persistpassthru->miboid,
                                      persistpassthru->miblen);
         if (rtest <= 0) {
@@ -360,9 +424,55 @@ setPassPersist(int action,
             snprintf(persistpassthru->command,
                      sizeof(persistpassthru->command), "set\n%s\n", buf);
             persistpassthru->command[ sizeof(persistpassthru->command)-1 ] = 0;
-            netsnmp_internal_pass_set_format(buf, var_val, var_val_type, var_val_len);
-            strlcat(persistpassthru->command, buf,
-                    sizeof(persistpassthru->command));
+            switch (var_val_type) {
+            case ASN_INTEGER:
+            case ASN_COUNTER:
+            case ASN_GAUGE:
+            case ASN_TIMETICKS:
+                tmp = *((long *) var_val);
+                switch (var_val_type) {
+                case ASN_INTEGER:
+                    sprintf(buf, "integer %d\n", (int) tmp);
+                    break;
+                case ASN_COUNTER:
+                    sprintf(buf, "counter %d\n", (int) tmp);
+                    break;
+                case ASN_GAUGE:
+                    sprintf(buf, "gauge %d\n", (int) tmp);
+                    break;
+                case ASN_TIMETICKS:
+                    sprintf(buf, "timeticks %d\n", (int) tmp);
+                    break;
+                }
+                break;
+            case ASN_IPADDRESS:
+                utmp = *((u_long *) var_val);
+                utmp = ntohl(utmp);
+                sprintf(buf, "ipaddress %d.%d.%d.%d\n",
+                        (int) ((utmp & 0xff000000) >> (8 * 3)),
+                        (int) ((utmp & 0xff0000) >> (8 * 2)),
+                        (int) ((utmp & 0xff00) >> (8)),
+                        (int) ((utmp & 0xff)));
+                break;
+            case ASN_OCTET_STR:
+                memcpy(buf2, var_val, var_val_len);
+                if (var_val_len == 0)
+                    sprintf(buf, "string \"\"\n");
+                else if (bin2asc(buf2, var_val_len) == (int) var_val_len)
+                    snprintf(buf, sizeof(buf), "string \"%s\"\n", buf2);
+                else
+                    snprintf(buf, sizeof(buf), "octet \"%s\"\n", buf2);
+                buf[ sizeof(buf)-1 ] = 0;
+                break;
+            case ASN_OBJECT_ID:
+                sprint_mib_oid(buf2, (oid *) var_val, var_val_len/sizeof(oid));
+                snprintf(buf, sizeof(buf), "objectid \"%s\"\n", buf2);
+                buf[ sizeof(buf)-1 ] = 0;
+                break;
+            }
+            strncat(persistpassthru->command, buf,
+                    sizeof(persistpassthru->command) -
+                    strlen(persistpassthru->command) - 2);
             persistpassthru->command[ sizeof(persistpassthru->command)-2 ] = '\n';
             persistpassthru->command[ sizeof(persistpassthru->command)-1 ] = 0;
 
@@ -383,7 +493,18 @@ setPassPersist(int action,
                 return SNMP_ERR_NOTWRITABLE;
             }
 
-            return netsnmp_internal_pass_str_to_errno(buf);
+            if (!strncasecmp(buf, "not-writable", 12)) {
+                return SNMP_ERR_NOTWRITABLE;
+            } else if (!strncasecmp(buf, "wrong-type", 10)) {
+                return SNMP_ERR_WRONGTYPE;
+            } else if (!strncasecmp(buf, "wrong-length", 12)) {
+                return SNMP_ERR_WRONGLENGTH;
+            } else if (!strncasecmp(buf, "wrong-value", 11)) {
+                return SNMP_ERR_WRONGVALUE;
+            } else if (!strncasecmp(buf, "inconsistent-value", 18)) {
+                return SNMP_ERR_INCONSISTENTVALUE;
+            }
+            return SNMP_ERR_NOERROR;
         }
     }
     if (snmp_get_do_debugging()) {
@@ -431,50 +552,12 @@ init_persist_pipes(void)
         for (i = 0; i <= numpersistpassthrus; i++) {
             persist_pipes[i].fIn = persist_pipes[i].fOut = (FILE *) 0;
             persist_pipes[i].fdIn = persist_pipes[i].fdOut = -1;
-            persist_pipes[i].pid = NETSNMP_NO_SUCH_PROCESS;
+            persist_pipes[i].pid = -1;
         }
     }
     return persist_pipes ? 1 : 0;
 }
 
-/**
- * Return true if and only if the process associated with the persistent
- * pipe has stopped.
- *
- * @param[in] idx Persistent pipe index.
- */
-static int process_stopped(int idx)
-{
-    if (persist_pipes[idx].pid != NETSNMP_NO_SUCH_PROCESS) {
-#if HAVE_SYS_WAIT_H
-        return waitpid(persist_pipes[idx].pid, NULL, WNOHANG) > 0;
-#endif
-#if defined(WIN32) && !defined (mingw32) && !defined(HAVE_SIGNAL)
-        return WaitForSingleObject(persist_pipes[idx].pid, 0) == WAIT_OBJECT_0;
-#endif
-    }
-    return 0;
-}
-
-/**
- * Iterate over all persistent pipes and close those pipes of which the
- * associated process has stopped.
- */
-static void check_persist_pipes(unsigned clientreg, void *clientarg)
-{
-    int             i;
-
-    if (!persist_pipes)
-        return;
-
-    for (i = 0; i <= numpersistpassthrus; i++) {
-        if (process_stopped(i)) {
-            snmp_log(LOG_INFO, "pass_persist[%d]: child process stopped - closing pipe\n", i);
-            close_persist_pipe(i);
-        }
-    }
-}
-
 /*
  * Destruct our persistent pipes
  *
@@ -507,20 +590,19 @@ open_persist_pipe(int iindex, char *command)
 {
     static int      recurse = 0;        /* used to allow one level of recursion */
 
-    DEBUGMSGTL(("ucd-snmp/pass_persist", "open_persist_pipe(%d,'%s') recurse=%d\n",
-                iindex, command, recurse));
+    DEBUGMSGTL(("ucd-snmp/pass_persist", "open_persist_pipe(%d,'%s')\n",
+                iindex, command));
     /*
      * Open if it's not already open 
      */
-    if (persist_pipes[iindex].pid == NETSNMP_NO_SUCH_PROCESS) {
-        int             fdIn, fdOut;
-        netsnmp_pid_t   pid;
+    if (persist_pipes[iindex].pid == -1) {
+        int             fdIn, fdOut, pid;
 
         /*
          * Did we fail? 
          */
         if ((0 == get_exec_pipes(command, &fdIn, &fdOut, &pid)) ||
-            (pid == NETSNMP_NO_SUCH_PROCESS)) {
+            (pid == -1)) {
             DEBUGMSGTL(("ucd-snmp/pass_persist",
                         "open_persist_pipe: pid == -1\n"));
             recurse = 0;
@@ -540,7 +622,6 @@ open_persist_pipe(int iindex, char *command)
          * Setup our -non-buffered-io- 
          */
         setbuf(persist_pipes[iindex].fOut, (char *) 0);
-        DEBUGMSGTL(("ucd-snmp/pass_persist", "open_persist_pipe: opened the pipes\n"));
     }
 
     /*
@@ -560,7 +641,6 @@ open_persist_pipe(int iindex, char *command)
              * Recurse one time if we get a SIGPIPE 
              */
             if (!recurse) {
-                DEBUGMSGTL(("ucd-snmp/pass_persist", "open_persist_pipe: recursing to reopen\n"));
                 recurse = 1;
                 return open_persist_pipe(iindex, command);
             }
@@ -576,7 +656,7 @@ open_persist_pipe(int iindex, char *command)
         }
         if (strncmp(buf, "PONG", 4)) {
             DEBUGMSGTL(("ucd-snmp/pass_persist",
-                        "open_persist_pipe: Got %s instead of PONG!\n", buf));
+                        "open_persist_pipe: PONG not received!\n"));
             close_persist_pipe(iindex);
             recurse = 0;
             return 0;
@@ -587,6 +667,17 @@ open_persist_pipe(int iindex, char *command)
     return 1;
 }
 
+#if STRUCT_SIGACTION_HAS_SA_SIGACTION
+/*
+ * Generic handler 
+ */
+void
+sigpipe_handler(int sig, siginfo_t * sip, void *uap)
+{
+    return;
+}
+#endif
+
 static int
 write_persist_pipe(int iindex, const char *data)
 {
@@ -597,17 +688,17 @@ write_persist_pipe(int iindex, const char *data)
     /*
      * Don't write to a non-existant process 
      */
-    if (persist_pipes[iindex].pid == NETSNMP_NO_SUCH_PROCESS) {
-        DEBUGMSGTL(("ucd-snmp/pass_persist",
-                    "write_persist_pipe: not writing %s, process is non-existent",
-                    data));
+    if (persist_pipes[iindex].pid == -1) {
         return 0;
     }
 
     /*
-     * Setup our signal action to ignore SIGPIPEs 
+     * Setup our signal action to catch SIGPIPEs 
      */
-    sa.sa_handler = SIG_IGN;
+    sa.sa_handler = NULL;
+#if STRUCT_SIGACTION_HAS_SA_SIGACTION
+    sa.sa_sigaction = &sigpipe_handler;
+#endif
     sigemptyset(&sa.sa_mask);
     sa.sa_flags = 0;
     if (sigaction(SIGPIPE, &sa, &osa)) {
@@ -627,10 +718,10 @@ write_persist_pipe(int iindex, const char *data)
     sigaction(SIGPIPE, &osa, (struct sigaction *) 0);
 
     if (wret < 0) {
-        if (werrno != EPIPE) {
+        if (werrno != EINTR) {
             DEBUGMSGTL(("ucd-snmp/pass_persist",
-                        "write_persist_pipe: write returned unknown error %d (%s)\n",
-                        werrno, strerror(werrno)));
+                        "write_persist_pipe: write returned unknown error %d\n",
+                        errno));
         }
         close_persist_pipe(iindex);
         return 0;
@@ -683,14 +774,7 @@ close_persist_pipe(int iindex)
         persist_pipes[iindex].fOut = (FILE *) 0;
     }
     if (persist_pipes[iindex].fdOut != -1) {
-#ifndef WIN32
-        /*
-         * The sequence open()/fdopen()/fclose()/close() triggers an access
-         * violation with the MSVC runtime. Hence skip the close() call when
-         * using the MSVC runtime.
-         */
         close(persist_pipes[iindex].fdOut);
-#endif
         persist_pipes[iindex].fdOut = -1;
     }
     if (persist_pipes[iindex].fIn) {
@@ -698,33 +782,27 @@ close_persist_pipe(int iindex)
         persist_pipes[iindex].fIn = (FILE *) 0;
     }
     if (persist_pipes[iindex].fdIn != -1) {
-#ifndef WIN32
-        /*
-         * The sequence open()/fdopen()/fclose()/close() triggers an access
-         * violation with the MSVC runtime. Hence skip the close() call when
-         * using the MSVC runtime.
-         */
         close(persist_pipes[iindex].fdIn);
-#endif
         persist_pipes[iindex].fdIn = -1;
     }
 
+#if defined(WIN32) && !defined (mingw32) && !defined (HAVE_SIGNAL)
+    if (!CloseHandle((HANDLE)persist_pipes[iindex].pid)) {
+          DEBUGMSGTL(("ucd-snmp/pass_persist","close_persist_pipe pid: close error\n"));
+        } 
+#endif
+    
 #ifdef __uClinux__
 	/*remove the pipes*/
 	unlink(fifo_in_path);
 	unlink(fifo_out_path);
 #endif
 
-    if (persist_pipes[iindex].pid != NETSNMP_NO_SUCH_PROCESS) {
+    if (persist_pipes[iindex].pid != -1) {
 #if HAVE_SYS_WAIT_H
-        waitpid(persist_pipes[iindex].pid, NULL, 0);
-#endif
-#if defined(WIN32) && !defined (mingw32) && !defined (HAVE_SIGNAL)
-        if (!CloseHandle(persist_pipes[iindex].pid)) {
-            DEBUGMSGTL(("ucd-snmp/pass_persist","close_persist_pipe pid: close error\n"));
-        }
+        waitpid(persist_pipes[iindex].pid, 0, 0);
 #endif
-        persist_pipes[iindex].pid = NETSNMP_NO_SUCH_PROCESS;
+        persist_pipes[iindex].pid = -1;
     }
 
 }
diff --git a/agent/mibgroup/ucd-snmp/pass_persist.h b/agent/mibgroup/ucd-snmp/pass_persist.h
index 0537abc..33be66e 100644
--- a/agent/mibgroup/ucd-snmp/pass_persist.h
+++ b/agent/mibgroup/ucd-snmp/pass_persist.h
@@ -4,12 +4,9 @@
 #ifndef _MIBGROUP_PASS_PERSIST_H
 #define _MIBGROUP_PASS_PERSIST_H
 
-config_require(ucd-snmp/pass_common)
 config_require(util_funcs)
-config_require(utilities/execute)
 
 void            init_pass_persist(void);
-void            shutdown_pass_persist(void);
 extern FindVarMethod var_extensible_pass_persist;
 extern WriteMethod setPassPersist;
 
diff --git a/agent/mibgroup/ucd-snmp/proc.c b/agent/mibgroup/ucd-snmp/proc.c
index e90c2e8..2766158 100644
--- a/agent/mibgroup/ucd-snmp/proc.c
+++ b/agent/mibgroup/ucd-snmp/proc.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #ifdef solaris2
 #define _KMEMUSER               /* Needed by <sys/user.h> */
@@ -30,7 +29,11 @@
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -42,15 +45,15 @@
 #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>
 
 #include "struct.h"
 #include "proc.h"
-#ifdef USING_HOST_DATA_ACCESS_SWRUN_MODULE
-#include <net-snmp/data_access/swrun.h>
-#endif
 #ifdef USING_UCD_SNMP_ERRORMIB_MODULE
 #include "errormib.h"
 #else
@@ -73,24 +76,21 @@ init_proc(void)
      * information at 
      */
     struct variable2 extensible_proc_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_proc, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_proc, 1, {ERRORNAME}},
-        {PROCMIN, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_proc, 1, {PROCMIN}},
-        {PROCMAX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_proc, 1, {PROCMAX}},
-        {PROCCOUNT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_proc, 1, {PROCCOUNT}},
-        {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_proc, 1, {ERRORFLAG}},
-        {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_proc, 1, {ERRORMSG}},
-        {ERRORFIX, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_extensible_proc, 1, {ERRORFIX}},
-        {ERRORFIXCMD, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_proc, 1, {ERRORFIXCMD}}
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_proc, 1, {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_proc, 1,
+         {ERRORNAME}},
+        {PROCMIN, ASN_INTEGER, RONLY, var_extensible_proc, 1, {PROCMIN}},
+        {PROCMAX, ASN_INTEGER, RONLY, var_extensible_proc, 1, {PROCMAX}},
+        {PROCCOUNT, ASN_INTEGER, RONLY, var_extensible_proc, 1,
+         {PROCCOUNT}},
+        {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_proc, 1,
+         {ERRORFLAG}},
+        {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_proc, 1,
+         {ERRORMSG}},
+        {ERRORFIX, ASN_INTEGER, RWRITE, var_extensible_proc, 1,
+         {ERRORFIX}},
+        {ERRORFIXCMD, ASN_OCTET_STR, RONLY, var_extensible_proc, 1,
+         {ERRORFIXCMD}}
     };
 
     /*
@@ -210,12 +210,8 @@ proc_parse_config(const char *token, char *cptr)
         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 = 1;
-        /* This frees "proc <procname> 0 0" to monitor
-         * processes that should _not_ be running. */
+        (*procp)->min = 0;
     }
 #ifdef NETSNMP_PROCFIXCMD
     sprintf((*procp)->fixcmd, NETSNMP_PROCFIXCMD, (*procp)->name);
@@ -265,12 +261,9 @@ var_extensible_proc(struct variable *vp,
         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) ||
-                   /* Processes running that shouldn't be */
-                 (proc->min == 0 && proc->max == 0 && long_ret > 0))) {
+                 (proc->min == 0 && proc->max == 0 && long_ret < 1))) {
                 long_ret = 1;
             } else {
                 long_ret = 0;
@@ -281,20 +274,16 @@ var_extensible_proc(struct variable *vp,
             if (long_ret < 0) {
                 errmsg[0] = 0;  /* catch out of mem errors return 0 count */
             } else if (proc->min && long_ret < proc->min) {
-                if ( long_ret > 0 )
-                    snprintf(errmsg, sizeof(errmsg),
+                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 > 0) {
+            } else if (proc->min == 0 && proc->max == 0 && long_ret < 1) {
                 snprintf(errmsg, sizeof(errmsg),
-                        "%s process should not be running.", proc->name);
+                        "No %s process running.", proc->name);
             } else {
                 errmsg[0] = 0;
             }
@@ -359,15 +348,6 @@ get_proc_instance(struct myproc *proc, oid inst)
     return (proc);
 }
 
-#ifdef USING_HOST_DATA_ACCESS_SWRUN_MODULE
-netsnmp_feature_require(swrun_count_processes_by_name)
-int
-sh_count_procs(char *procname)
-{
-    return swrun_count_processes_by_name( procname );
-}
-#else
-
 #ifdef bsdi2
 #include <sys/param.h>
 #include <sys/sysctl.h>
@@ -380,8 +360,8 @@ sh_count_procs(char *procname)
  * these are for keeping track of the proc array 
  */
 
-static size_t   nproc = 0;
-static size_t   onproc = -1;
+static int      nproc = 0;
+static int      onproc = -1;
 static struct kinfo_proc *pbase = 0;
 
 int
@@ -419,7 +399,7 @@ sh_count_procs(char *procname)
     return ret;
 }
 
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
 #include <procinfo.h>
 #include <sys/types.h>
 
@@ -437,7 +417,8 @@ sh_count_procs(char *procname)
     count = 0;
 
     while(getprocs(&pinfo, sizeof(pinfo), NULL, 0, &index, 1) == 1) {
-        strlcpy(pinfo_name, pinfo.pi_comm, sizeof(pinfo_name));
+        strncpy(pinfo_name, pinfo.pi_comm, 256);
+        pinfo_name[255] = 0;
         sep = strchr(pinfo_name, ' ');
         if(sep != NULL) *sep = 0;
         if(strcmp(procname, pinfo_name) == 0) count++;
@@ -487,7 +468,7 @@ sh_count_procs(char *procname)
           continue;
       if (fgets(cmdline, sizeof(cmdline), status) == NULL) {
           fclose(status);
-          continue;
+          break;
       }
       /* Grab the state of the process as well
        * (so we can ignore zombie processes)
@@ -814,7 +795,6 @@ sh_count_procs(char *procname)
 }
 #endif                          /* _SLASH_PROC_METHOD_ */
 #else
-netsnmp_feature_require(find_field)
 int
 sh_count_procs(char *procname)
 {
@@ -873,4 +853,3 @@ sh_count_procs(char *procname)
     return (ret);
 }
 #endif
-#endif   /* !USING_HOST_DATA_ACCESS_SWRUN_MODULE */
diff --git a/agent/mibgroup/ucd-snmp/proxy.c b/agent/mibgroup/ucd-snmp/proxy.c
index 017fd5c..6ffb5d8 100644
--- a/agent/mibgroup/ucd-snmp/proxy.c
+++ b/agent/mibgroup/ucd-snmp/proxy.c
@@ -9,9 +9,11 @@
  * distributed with the Net-SNMP package.
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <sys/types.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #if HAVE_STRING_H
 #include <string.h>
 #endif
@@ -24,9 +26,6 @@
 
 #include "proxy.h"
 
-netsnmp_feature_require(handler_mark_requests_as_delegated)
-netsnmp_feature_require(request_set_error_idx)
-
 static struct simple_proxy *proxies = NULL;
 
 oid             testoid[] = { 1, 3, 6, 1, 4, 1, 2021, 8888, 1 };
@@ -106,9 +105,7 @@ proxy_parse_config(const char *token, char *line)
 
     DEBUGMSGTL(("proxy_config", "parsing args: %d\n", argn));
     /* Call special parse_args that allows for no specified community string */
-    arg = netsnmp_parse_args(argn, argv, &session, "C:", proxyOptProc,
-                             NETSNMP_PARSE_ARGS_NOLOGGING |
-                             NETSNMP_PARSE_ARGS_NOZERO);
+    arg = snmp_parse_args(argn, argv, &session, "C:", proxyOptProc);
 
     /* reset this in case we modified it */
     netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID,
@@ -285,13 +282,14 @@ proxy_fill_in_session(netsnmp_mib_handler *handler,
                 return 0;
             }
 
-            *configured = strdup("-c");
+            *configured = malloc(strlen("-c") + 1);
+            strcpy(*configured, "-c");
             DEBUGMSGTL(("proxy", "pdu has community string\n"));
             session->community_len = reqinfo->asp->pdu->community_len;
             session->community = malloc(session->community_len + 1);
-            sprintf((char *)session->community, "%.*s",
-                    (int) session->community_len,
-                    (const char *)reqinfo->asp->pdu->community);
+            strncpy((char *)session->community,
+                    (const char *)reqinfo->asp->pdu->community,
+                    session->community_len);
         }
     }
 #endif
@@ -360,7 +358,6 @@ proxy_handler(netsnmp_mib_handler *handler,
         pdu = snmp_pdu_create(reqinfo->mode);
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_ACTION:
         pdu = snmp_pdu_create(SNMP_MSG_SET);
         break;
@@ -388,7 +385,6 @@ proxy_handler(netsnmp_mib_handler *handler,
          *  Nothing to do in this pass
          */
         return SNMP_ERR_NOERROR;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     default:
         snmp_log(LOG_WARNING, "unsupported mode for proxy called (%d)\n",
@@ -400,8 +396,6 @@ proxy_handler(netsnmp_mib_handler *handler,
 
     if (!pdu || !sp) {
         netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_GENERR);
-        if (pdu)
-            snmp_free_pdu(pdu);
         return SNMP_ERR_NOERROR;
     }
 
@@ -409,33 +403,7 @@ proxy_handler(netsnmp_mib_handler *handler,
         ourname = request->requestvb->name;
         ourlength = request->requestvb->name_length;
 
-        if (sp->base_len &&
-            reqinfo->mode == MODE_GETNEXT &&
-            (snmp_oid_compare(ourname, ourlength,
-                              sp->base, sp->base_len) < 0)) {
-            DEBUGMSGTL(( "proxy", "request is out of registered range\n"));
-            /*
-             * Create GETNEXT request with an OID so the
-             * master returns the first OID in the registered range.
-             */
-            memcpy(ourname, sp->base, sp->base_len * sizeof(oid));
-            ourlength = sp->base_len;
-            if (ourname[ourlength-1] <= 1) {
-                /*
-                 * The registered range ends with x.y.z.1
-                 * -> ask for the next of x.y.z
-                 */
-                ourlength--;
-            } else {
-                /*
-                 * The registered range ends with x.y.z.A
-                 * -> ask for the next of x.y.z.A-1.MAX_SUBID
-                 */
-                ourname[ourlength-1]--;
-                ourname[ourlength] = MAX_SUBID;
-                ourlength++;
-            }
-        } else if (sp->base_len > 0) {
+        if (sp->base_len > 0) {
             if ((ourlength - sp->name_len + sp->base_len) > MAX_OID_LEN) {
                 /*
                  * too large 
@@ -450,8 +418,8 @@ proxy_handler(netsnmp_mib_handler *handler,
              * suffix appended? 
              */
             DEBUGMSGTL(("proxy", "length=%d, base_len=%d, name_len=%d\n",
-                        (int)ourlength, (int)sp->base_len, (int)sp->name_len));
-            if (ourlength > sp->name_len)
+                        ourlength, sp->base_len, sp->name_len));
+            if (ourlength > (int) 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;
@@ -526,7 +494,7 @@ proxy_got_response(int operation, netsnmp_session * sess, int reqid,
          * WWWXXX: don't leave requests delayed if operation is
          * something like TIMEOUT 
          */
-        DEBUGMSGTL(("proxy", "got timed out... requests = %8p\n", requests));
+        DEBUGMSGTL(("proxy", "got timed out... requests = %08p\n", requests));
 
         netsnmp_handler_mark_requests_as_delegated(requests,
                                                    REQUEST_IS_NOT_DELEGATED);
@@ -554,15 +522,14 @@ proxy_got_response(int operation, netsnmp_session * sess, int reqid,
              * Not sure if any other error codes need the same treatment. Left
              * as an exercise to the reader...
              */
-            DEBUGMSGTL(("proxy", "got error response (%ld)\n", pdu->errstat));
+            DEBUGMSGTL(("proxy", "got error response (%d)\n", pdu->errstat));
             if((cache->reqinfo->mode == MODE_GETNEXT) &&
                (SNMP_ERR_NOSUCHNAME == pdu->errstat)) {
                 DEBUGMSGTL(("proxy", "  ignoring error response\n"));
                 netsnmp_handler_mark_requests_as_delegated(requests,
                                                            REQUEST_IS_NOT_DELEGATED);
             }
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-	    else if (cache->reqinfo->mode == MODE_SET_ACTION) {
+	    else if ((cache->reqinfo->mode == MODE_SET_ACTION)) {
 		/*
 		 * In order for netsnmp_wrap_up_request to consider the
 		 * SET request complete,
@@ -571,14 +538,13 @@ proxy_got_response(int operation, netsnmp_session * sess, int reqid,
 		 *	?func=detail&atid=112694&aid=1554261&group_id=12694
 		 */
 		DEBUGMSGTL(("proxy",
-		    "got SET error %s, index %ld\n",
+		    "got SET error %s, index %d\n",
 		    snmp_errstring(pdu->errstat), pdu->errindex));
 		netsnmp_handler_mark_requests_as_delegated(
 		    requests, REQUEST_IS_NOT_DELEGATED);
 		netsnmp_request_set_error_idx(requests, pdu->errstat,
                                                         pdu->errindex);
 	    }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
             else {
 		netsnmp_handler_mark_requests_as_delegated( requests,
                                              REQUEST_IS_NOT_DELEGATED);
@@ -616,7 +582,7 @@ proxy_got_response(int operation, netsnmp_session * sess, int reqid,
                                   sp->base_len) != 0)) {
                 DEBUGMSGTL(( "proxy", "out of registered range... "));
                 DEBUGMSGOID(("proxy", var->name, sp->base_len));
-                DEBUGMSG((   "proxy", " (%d) != ", (int)sp->base_len));
+                DEBUGMSG((   "proxy", " (%d) != ", sp->base_len));
                 DEBUGMSGOID(("proxy", sp->base, sp->base_len));
                 DEBUGMSG((   "proxy", "\n"));
                 snmp_set_var_typed_value(request->requestvb, ASN_NULL, NULL, 0);
@@ -628,7 +594,7 @@ proxy_got_response(int operation, netsnmp_session * sess, int reqid,
                                          sp->name_len) != 0)) {
                 DEBUGMSGTL(( "proxy", "out of registered base range... "));
                 DEBUGMSGOID(("proxy", var->name, sp->name_len));
-                DEBUGMSG((   "proxy", " (%d) != ", (int)sp->name_len));
+                DEBUGMSG((   "proxy", " (%d) != ", sp->name_len));
                 DEBUGMSGOID(("proxy", sp->name, sp->name_len));
                 DEBUGMSG((   "proxy", "\n"));
                 snmp_set_var_typed_value(request->requestvb, ASN_NULL, NULL, 0);
diff --git a/agent/mibgroup/ucd-snmp/versioninfo.c b/agent/mibgroup/ucd-snmp/versioninfo.c
index f7a8c63..77a34e5 100644
--- a/agent/mibgroup/ucd-snmp/versioninfo.c
+++ b/agent/mibgroup/ucd-snmp/versioninfo.c
@@ -1,9 +1,12 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -15,6 +18,9 @@
 #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
@@ -24,12 +30,7 @@
 
 #include "struct.h"
 #include "versioninfo.h"
-#include "util_funcs/header_generic.h"
-#include "util_funcs/restart.h"
-#include "util_funcs.h" /* clear_cache */
-
-netsnmp_feature_require(clear_cache)
-
+#include "util_funcs.h"
 
 void
 init_versioninfo(void)
@@ -40,28 +41,28 @@ init_versioninfo(void)
      * information at 
      */
     struct variable2 extensible_version_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_version, 1, {MIBINDEX}},
-        {VERTAG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_version, 1, {VERTAG}},
-        {VERDATE, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_version, 1, {VERDATE}},
-        {VERCDATE, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_version, 1, {VERCDATE}},
-        {VERIDENT, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_version, 1, {VERIDENT}},
-        {VERCONFIG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_version, 1, {VERCONFIG}},
-        {VERCLEARCACHE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_extensible_version, 1, {VERCLEARCACHE}},
-        {VERUPDATECONFIG, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_extensible_version, 1, {VERUPDATECONFIG}},
-        {VERRESTARTAGENT, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_extensible_version, 1, {VERRESTARTAGENT}},
-        {VERSAVEPERSISTENT, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_extensible_version, 1, {VERSAVEPERSISTENT}},
-        {VERDEBUGGING, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
-         var_extensible_version, 1, {VERDEBUGGING}}
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_version, 1,
+         {MIBINDEX}},
+        {VERTAG, ASN_OCTET_STR, RONLY, var_extensible_version, 1,
+         {VERTAG}},
+        {VERDATE, ASN_OCTET_STR, RONLY, var_extensible_version, 1,
+         {VERDATE}},
+        {VERCDATE, ASN_OCTET_STR, RONLY, var_extensible_version, 1,
+         {VERCDATE}},
+        {VERIDENT, ASN_OCTET_STR, RONLY, var_extensible_version, 1,
+         {VERIDENT}},
+        {VERCONFIG, ASN_OCTET_STR, RONLY, var_extensible_version, 1,
+         {VERCONFIG}},
+        {VERCLEARCACHE, ASN_INTEGER, RWRITE, var_extensible_version, 1,
+         {VERCLEARCACHE}},
+        {VERUPDATECONFIG, ASN_INTEGER, RWRITE, var_extensible_version, 1,
+         {VERUPDATECONFIG}},
+        {VERRESTARTAGENT, ASN_INTEGER, RWRITE, var_extensible_version, 1,
+         {VERRESTARTAGENT}},
+        {VERSAVEPERSISTENT, ASN_INTEGER, RWRITE, var_extensible_version, 1,
+         {VERSAVEPERSISTENT}},
+        {VERDEBUGGING, ASN_INTEGER, RWRITE, var_extensible_version, 1,
+         {VERDEBUGGING}}
     };
 
     /*
@@ -108,21 +109,22 @@ var_extensible_version(struct variable *vp,
         long_ret = name[8];
         return ((u_char *) (&long_ret));
     case VERTAG:
-        strlcpy(errmsg, netsnmp_get_version(), sizeof(errmsg));
+        sprintf(errmsg, netsnmp_get_version());
         *var_len = strlen(errmsg);
         return ((u_char *) errmsg);
     case VERDATE:
-        strlcpy(errmsg, "$Date$", sizeof(errmsg));
+        sprintf(errmsg, "$Date: 2006-09-15 01:48:50 +0100 (Fri, 15 Sep 2006) $");
         *var_len = strlen(errmsg);
         return ((u_char *) errmsg);
     case VERCDATE:
         curtime = time(NULL);
         cptr = ctime(&curtime);
-        strlcpy(errmsg, cptr, sizeof(errmsg));
-        *var_len = strlen(errmsg) - 1; /* - 1 to strip trailing newline */
+        sprintf(errmsg, cptr);
+        *var_len = strlen(errmsg) - 1;
         return ((u_char *) errmsg);
     case VERIDENT:
-        strlcpy(errmsg, "$Id$", sizeof(errmsg));
+        sprintf(errmsg,
+                "$Id: versioninfo.c 15220 2006-09-15 00:48:50Z tanders $");
         *var_len = strlen(errmsg);
         return ((u_char *) errmsg);
     case VERCONFIG:
@@ -132,7 +134,7 @@ var_extensible_version(struct variable *vp,
             *var_len = 1024;    /* mib imposed restriction */
         return (u_char *) config_opts;
 #else
-        strlcpy(errmsg, "", sizeof(errmsg)));
+        sprintf(errmsg, "");
         *var_len = strlen(errmsg);
         return ((u_char *) errmsg);
 #endif
@@ -207,10 +209,13 @@ save_persistent(int action,
                size_t var_val_len,
                u_char * statP, oid * name, size_t name_len)
 {
+    long            tmp = 0;
+
     if (var_val_type != ASN_INTEGER) {
         DEBUGMSGTL(("versioninfo", "Wrong type != int\n"));
         return SNMP_ERR_WRONGTYPE;
     }
+    tmp = *((long *) var_val);
     if (action == COMMIT) {
         snmp_store(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
                                          NETSNMP_DS_LIB_APPTYPE));
diff --git a/agent/mibgroup/ucd-snmp/versioninfo.h b/agent/mibgroup/ucd-snmp/versioninfo.h
index 007424e..d991147 100644
--- a/agent/mibgroup/ucd-snmp/versioninfo.h
+++ b/agent/mibgroup/ucd-snmp/versioninfo.h
@@ -28,8 +28,5 @@ extern WriteMethod save_persistent;
 #define VERSAVEPERSISTENT 13
 #define VERDEBUGGING 20
 
-config_require(util_funcs/header_generic)
-config_require(util_funcs/restart)
 config_require(util_funcs)
-
 #endif                          /* _MIBGROUP_VERSIONINFO_H */
diff --git a/agent/mibgroup/ucd-snmp/vmstat.c b/agent/mibgroup/ucd-snmp/vmstat.c
index d52a5b6..f51efea 100644
--- a/agent/mibgroup/ucd-snmp/vmstat.c
+++ b/agent/mibgroup/ucd-snmp/vmstat.c
@@ -13,14 +13,14 @@ FindVarMethod var_extensible_vmstat;
 void
 init_vmstat(void)
 {
-    const oid  vmstat_oid[] = { NETSNMP_UCDAVIS_MIB, 11 };
+    static oid  vmstat_oid[] = { NETSNMP_UCDAVIS_MIB, 11 };
 
     DEBUGMSGTL(("vmstat", "Initializing\n"));
     netsnmp_register_scalar_group(
         netsnmp_create_handler_registration("vmstat", vmstat_handler,
                              vmstat_oid, OID_LENGTH(vmstat_oid),
                              HANDLER_CAN_RONLY),
-        MIBINDEX, CPURAWGUESTNICE);
+        MIBINDEX, RAWSWAPOUT);
 }
 
 
@@ -31,14 +31,13 @@ vmstat_handler(netsnmp_mib_handler          *handler,
                netsnmp_request_info         *requests)
 {
     oid  obj;
-    unsigned long long value = 0;
+    long value = 0;
     char cp[300];
     netsnmp_cpu_info *info = netsnmp_cpu_get_byIdx( -1, 0 );
 
     switch (reqinfo->mode) {
     case MODE_GET:
         obj = requests->requestvb->name[ requests->requestvb->name_length-2 ];
-
         switch (obj) {
         case MIBINDEX:             /* dummy value */
              snmp_set_var_typed_integer(requests->requestvb, ASN_INTEGER, 1);
@@ -113,18 +112,6 @@ vmstat_handler(netsnmp_mib_handler          *handler,
              snmp_set_var_typed_integer(requests->requestvb, ASN_COUNTER,
                                         info->sirq_ticks & 0xffffffff);
              break;
-        case CPURAWSTEAL:
-             snmp_set_var_typed_integer(requests->requestvb, ASN_COUNTER,
-                                        info->steal_ticks & 0xffffffff);
-             break;
-        case CPURAWGUEST:
-             snmp_set_var_typed_integer(requests->requestvb, ASN_COUNTER,
-                                        info->guest_ticks & 0xffffffff);
-             break;
-        case CPURAWGUESTNICE:
-             snmp_set_var_typed_integer(requests->requestvb, ASN_COUNTER,
-                                        info->guestnice_ticks & 0xffffffff);
-             break;
 
         /*
          *  'Cooked' CPU statistics
@@ -142,35 +129,26 @@ vmstat_handler(netsnmp_mib_handler          *handler,
         case CPUUSER:
              if ( info->history && info->history[0].total_hist ) {
                  value  = (info->user_ticks  - info->history[0].user_hist)*100;
-                 if ( info->total_ticks - info->history[0].total_hist)
-                     value /= (info->total_ticks - info->history[0].total_hist);
-                 else
-                     value = 0;    /* or skip this entry */
+                 value /= (info->total_ticks - info->history[0].total_hist);
                  snmp_set_var_typed_integer(requests->requestvb,
-                                            ASN_INTEGER, value & 0x7fffffff);
+                                            ASN_INTEGER, value);
              }
              break;
         case CPUSYSTEM:
              if ( info->history && info->history[0].total_hist ) {
                      /* or sys2_ticks ??? */
                  value  = (info->sys_ticks  - info->history[0].sys_hist)*100;
-                 if ( info->total_ticks - info->history[0].total_hist)
-                     value /= (info->total_ticks - info->history[0].total_hist);
-                 else
-                     value = 0;    /* or skip this entry */
+                 value /= (info->total_ticks - info->history[0].total_hist);
                  snmp_set_var_typed_integer(requests->requestvb,
-                                            ASN_INTEGER, value & 0x7fffffff);
+                                            ASN_INTEGER, value);
              }
              break;
         case CPUIDLE:
              if ( info->history && info->history[0].total_hist ) {
                  value  = (info->idle_ticks  - info->history[0].idle_hist)*100;
-                 if ( info->total_ticks - info->history[0].total_hist)
-                     value /= (info->total_ticks - info->history[0].total_hist);
-                 else
-                     value = 0;    /* or skip this entry */
+                 value /= (info->total_ticks - info->history[0].total_hist);
                  snmp_set_var_typed_integer(requests->requestvb,
-                                            ASN_INTEGER, value & 0x7fffffff);
+                                            ASN_INTEGER, value);
              }
              break;
 		
@@ -190,14 +168,14 @@ vmstat_handler(netsnmp_mib_handler          *handler,
              if ( info->history && info->history[0].total_hist ) {
                  value  = (info->nInterrupts - info->history[0].intr_hist)/60;
                  snmp_set_var_typed_integer(requests->requestvb,
-                                            ASN_INTEGER, value & 0x7fffffff);
+                                            ASN_INTEGER, value);
              }
              break;
         case SYSCONTEXT:
              if ( info->history && info->history[0].total_hist ) {
                  value  = (info->nCtxSwitches - info->history[0].ctx_hist)/60;
                  snmp_set_var_typed_integer(requests->requestvb,
-                                            ASN_INTEGER, value & 0x7fffffff);
+                                            ASN_INTEGER, value);
              }
              break;
 
@@ -217,7 +195,7 @@ vmstat_handler(netsnmp_mib_handler          *handler,
                  value  = (info->swapIn - info->history[0].swpi_hist)/60;
                  /* ??? value *= PAGE_SIZE;  */
                  snmp_set_var_typed_integer(requests->requestvb,
-                                            ASN_INTEGER, value & 0x7fffffff);
+                                            ASN_INTEGER, value);
              }
              break;
         case SWAPOUT:
@@ -225,7 +203,7 @@ vmstat_handler(netsnmp_mib_handler          *handler,
                  value  = (info->swapOut - info->history[0].swpo_hist)/60;
                  /* ??? value *= PAGE_SIZE;  */
                  snmp_set_var_typed_integer(requests->requestvb,
-                                            ASN_INTEGER, value & 0x7fffffff);
+                                            ASN_INTEGER, value);
              }
              break;
 
@@ -244,14 +222,14 @@ vmstat_handler(netsnmp_mib_handler          *handler,
              if ( info->history && info->history[0].total_hist ) {
                  value  = (info->pageOut - info->history[0].pageo_hist)/60;
                  snmp_set_var_typed_integer(requests->requestvb,
-                                            ASN_INTEGER, value & 0x7fffffff);
+                                            ASN_INTEGER, value);
              }
              break;
         case IORECEIVE:
              if ( info->history && info->history[0].total_hist ) {
                  value  = (info->pageIn - info->history[0].pagei_hist)/60;
                  snmp_set_var_typed_integer(requests->requestvb,
-                                            ASN_INTEGER, value & 0x7fffffff);
+                                            ASN_INTEGER, value);
              }
              break;
 
diff --git a/agent/mibgroup/ucd-snmp/vmstat.h b/agent/mibgroup/ucd-snmp/vmstat.h
index eedb5b4..b8d5202 100644
--- a/agent/mibgroup/ucd-snmp/vmstat.h
+++ b/agent/mibgroup/ucd-snmp/vmstat.h
@@ -36,8 +36,5 @@ void              init_vmstat(void);
 #define CPURAWSOFTIRQ 61
 #define RAWSWAPIN 62
 #define RAWSWAPOUT 63
-#define CPURAWSTEAL 64
-#define CPURAWGUEST 65
-#define CPURAWGUESTNICE 66
 
 #endif                          /* _MIBGROUP_VMSTAT_H */
diff --git a/agent/mibgroup/ucd-snmp/vmstat_aix4.c b/agent/mibgroup/ucd-snmp/vmstat_aix4.c
index 62d7ce6..d4904f9 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_aix4.c
+++ b/agent/mibgroup/ucd-snmp/vmstat_aix4.c
@@ -39,9 +39,6 @@
 /*
  * libperfstat structs 
  */
-#ifdef HAVE_SYS_PROTOSW_H
-#include <sys/protosw.h>
-#endif
 #include <libperfstat.h>
 
 #include <net-snmp/net-snmp-config.h>
@@ -49,7 +46,7 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
 #include "mibdefs.h"
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 
 /*
  * Header file for this module 
@@ -156,52 +153,45 @@ init_vmstat_aix4(void)
 	 * Which variables do we service ? 
 	 */
 	struct variable2 extensible_vmstat_variables[] = {
-		{MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {MIBINDEX}},
-		{ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {ERRORNAME}},
-		{SWAPIN, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {SWAPIN}},
-		{SWAPOUT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {SWAPOUT}},
-		{IOSENT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {IOSENT}},
-		{IORECEIVE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {IORECEIVE}},
-		{SYSINTERRUPTS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {SYSINTERRUPTS}},
-		{SYSCONTEXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {SYSCONTEXT}},
-		{CPUUSER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {CPUUSER}},
-		{CPUSYSTEM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {CPUSYSTEM}},
-		{CPUIDLE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {CPUIDLE}},
-		{CPURAWUSER, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {CPURAWUSER}},
-		{CPURAWSYSTEM, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {CPURAWSYSTEM}},
-		{CPURAWIDLE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {CPURAWIDLE}},
-		{CPURAWWAIT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {CPURAWWAIT}},
-		{CPURAWKERNEL, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {CPURAWKERNEL}},
-		{IORAWSENT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {IORAWSENT}},
-		{IORAWRECEIVE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {IORAWRECEIVE}},
-		{SYSRAWINTERRUPTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {SYSRAWINTERRUPTS}},
-		{SYSRAWCONTEXT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-                 var_extensible_vmstat, 1, {SYSRAWCONTEXT}},
+		{MIBINDEX, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+		 {MIBINDEX}},
+		{ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1,
+		 {ERRORNAME}},
+		{SWAPIN, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPIN}},
+		{SWAPOUT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPOUT}},
+		{IOSENT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {IOSENT}},
+		{IORECEIVE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+		 {IORECEIVE}},
+		{SYSINTERRUPTS, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+		 {SYSINTERRUPTS}},
+		{SYSCONTEXT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+		 {SYSCONTEXT}},
+		{CPUUSER, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUUSER}},
+		{CPUSYSTEM, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+		 {CPUSYSTEM}},
+		{CPUIDLE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUIDLE}},
+		{CPURAWUSER, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+		 {CPURAWUSER}},
+		{CPURAWSYSTEM, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+		 {CPURAWSYSTEM}},
+		{CPURAWIDLE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+		 {CPURAWIDLE}},
+		{CPURAWWAIT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+		 {CPURAWWAIT}},
+		{CPURAWKERNEL, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+		 {CPURAWKERNEL}},
+		{IORAWSENT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+		 {IORAWSENT}},
+		{IORAWRECEIVE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+		 {IORAWRECEIVE}},
+		{SYSRAWINTERRUPTS, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+		 {SYSRAWINTERRUPTS}},
+		{SYSRAWCONTEXT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+		 {SYSRAWCONTEXT}},
 		/*
 		 * Future use: 
-		 * {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-                 *  var_extensible_vmstat, 1, {ERRORFLAG }},
-		 * {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-                 *  var_extensible_vmstat, 1, {ERRORMSG }}
+		 * {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {ERRORFLAG }},
+		 * {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1, {ERRORMSG }}
 		 */
 	};
 
diff --git a/agent/mibgroup/ucd-snmp/vmstat_aix4.h b/agent/mibgroup/ucd-snmp/vmstat_aix4.h
index a13fcce..50869ab 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_aix4.h
+++ b/agent/mibgroup/ucd-snmp/vmstat_aix4.h
@@ -15,7 +15,7 @@
     /*
      * Directive to include utility module 
      */
-config_require(util_funcs/header_generic)
+config_require(util_funcs)
 
     /*
      * we have to define the index ourselves, because perfstat structures
diff --git a/agent/mibgroup/ucd-snmp/vmstat_bsdi4.c b/agent/mibgroup/ucd-snmp/vmstat_bsdi4.c
index e35b6cd..cb86264 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_bsdi4.c
+++ b/agent/mibgroup/ucd-snmp/vmstat_bsdi4.c
@@ -41,7 +41,7 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/auto_nlist.h>
 
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 #include "vmstat.h"
 
 /*
@@ -57,48 +57,41 @@ init_vmstat_bsdi4(void)
 {
 
     struct variable2 extensible_vmstat_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {ERRORNAME}},
-        {SWAPIN, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPIN}},
-        {SWAPOUT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPOUT}},
-        {IOSENT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IOSENT}},
-        {IORECEIVE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORECEIVE}},
-        {SYSINTERRUPTS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSINTERRUPTS}},
-        {SYSCONTEXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSCONTEXT}},
-        {CPUUSER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUUSER}},
-        {CPUSYSTEM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUSYSTEM}},
-        {CPUIDLE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUIDLE}},
-        {CPURAWUSER, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWUSER}},
-        {CPURAWNICE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWNICE}},
-        {CPURAWSYSTEM, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWSYSTEM}},
-        {CPURAWIDLE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWIDLE}},
-        {CPURAWKERNEL, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWKERNEL}},
-        {CPURAWINTR, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWINTR}},
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1,
+         {ERRORNAME}},
+        {SWAPIN, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPIN}},
+        {SWAPOUT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPOUT}},
+        {IOSENT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {IOSENT}},
+        {IORECEIVE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {IORECEIVE}},
+        {SYSINTERRUPTS, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSINTERRUPTS}},
+        {SYSCONTEXT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSCONTEXT}},
+        {CPUUSER, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUUSER}},
+        {CPUSYSTEM, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {CPUSYSTEM}},
+        {CPUIDLE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUIDLE}},
+        {CPURAWUSER, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWUSER}},
+        {CPURAWNICE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWNICE}},
+        {CPURAWSYSTEM, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWSYSTEM}},
+        {CPURAWIDLE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWIDLE}},
+        {CPURAWKERNEL, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWKERNEL}},
+        {CPURAWINTR, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWINTR}},
         /*
          * Future use: 
          */
         /*
-         * {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORFLAG }},
-         * {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORMSG }}
+         * {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {ERRORFLAG }},
+         * {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1, {ERRORMSG }}
          */
     };
 
@@ -155,9 +148,9 @@ var_extensible_vmstat(struct variable *vp,
 
     static struct vmmeter mem_old, mem_new;
     int             mem_mib[] = { CTL_VM, VM_CNT };
-    size_t          mem_size = sizeof(struct vmmeter);
+    int             mem_size = sizeof(struct vmmeter);
     int             cpu_mib[] = { CTL_KERN, KERN_CPUSTATS };
-    size_t          cpu_size = sizeof(struct cpustats);
+    int             cpu_size = sizeof(struct cpustats);
 
     static long     long_ret;
     static char     errmsg[300];
diff --git a/agent/mibgroup/ucd-snmp/vmstat_bsdi4.h b/agent/mibgroup/ucd-snmp/vmstat_bsdi4.h
index 74bf31b..0b67a12 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_bsdi4.h
+++ b/agent/mibgroup/ucd-snmp/vmstat_bsdi4.h
@@ -5,8 +5,6 @@
 #ifndef _MIBGROUP_VMSTAT_BSDI4_H
 #define _MIBGROUP_VMSTAT_BSDI4_H
 
-config_require(util_funcs/header_generic)
-
 #include "mibdefs.h"
 
 void            init_vmstat_bsdi4(void);
diff --git a/agent/mibgroup/ucd-snmp/vmstat_darwin7.c b/agent/mibgroup/ucd-snmp/vmstat_darwin7.c
index d96c55c..70415e5 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_darwin7.c
+++ b/agent/mibgroup/ucd-snmp/vmstat_darwin7.c
@@ -43,7 +43,7 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/auto_nlist.h>
 
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 #include "vmstat.h"
 #include "vmstat_darwin7.h"
 
@@ -74,52 +74,45 @@ init_vmstat_darwin7(void)
 {
 
     struct variable2 extensible_vmstat_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {ERRORNAME}},
-        {SWAPIN, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPIN}},
-        {SWAPOUT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPOUT}},
-        {IOSENT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IOSENT}},
-        {IORECEIVE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORECEIVE}},
-        {SYSINTERRUPTS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSINTERRUPTS}},
-        {SYSCONTEXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSCONTEXT}},
-        {CPUUSER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUUSER}},
-        {CPUSYSTEM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUSYSTEM}},
-        {CPUIDLE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUIDLE}},
-        {CPURAWUSER, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWUSER}},
-        {CPURAWNICE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWNICE}},
-        {CPURAWSYSTEM, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWSYSTEM}},
-        {CPURAWIDLE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWIDLE}},
-        {CPURAWKERNEL, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWKERNEL}},
-        {CPURAWINTR, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWINTR}},
-        {SYSRAWINTERRUPTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSRAWINTERRUPTS}},
-        {SYSRAWCONTEXT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSRAWCONTEXT}},
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1,
+         {ERRORNAME}},
+        {SWAPIN, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPIN}},
+        {SWAPOUT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPOUT}},
+        {IOSENT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {IOSENT}},
+        {IORECEIVE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {IORECEIVE}},
+        {SYSINTERRUPTS, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSINTERRUPTS}},
+        {SYSCONTEXT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSCONTEXT}},
+        {CPUUSER, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUUSER}},
+        {CPUSYSTEM, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {CPUSYSTEM}},
+        {CPUIDLE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUIDLE}},
+        {CPURAWUSER, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWUSER}},
+        {CPURAWNICE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWNICE}},
+        {CPURAWSYSTEM, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWSYSTEM}},
+        {CPURAWIDLE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWIDLE}},
+        {CPURAWKERNEL, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWKERNEL}},
+        {CPURAWINTR, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWINTR}},
+        {SYSRAWINTERRUPTS, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {SYSRAWINTERRUPTS}},
+        {SYSRAWCONTEXT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {SYSRAWCONTEXT}},
         /*
          * Future use: 
          */
         /*
-         * {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORFLAG }},
-         * {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORMSG }}
+         * {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {ERRORFLAG }},
+         * {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1, {ERRORMSG }}
          */
     };
 
diff --git a/agent/mibgroup/ucd-snmp/vmstat_darwin7.h b/agent/mibgroup/ucd-snmp/vmstat_darwin7.h
index b1a301d..f92e509 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_darwin7.h
+++ b/agent/mibgroup/ucd-snmp/vmstat_darwin7.h
@@ -5,8 +5,6 @@
 #ifndef _MIBGROUP_VMSTAT_DARWIN7_H
 #define _MIBGROUP_VMSTAT_DARWIN7_H
 
-config_require(util_funcs/header_generic)
-
 #include "mibdefs.h"
 
 void            init_vmstat_darwin7(void);
diff --git a/agent/mibgroup/ucd-snmp/vmstat_dynix.c b/agent/mibgroup/ucd-snmp/vmstat_dynix.c
index 33f5412..9170b26 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_dynix.c
+++ b/agent/mibgroup/ucd-snmp/vmstat_dynix.c
@@ -34,7 +34,7 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
 #include "mibdefs.h"
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 
 /*
  * Header file for this module 
@@ -165,50 +165,43 @@ init_vmstat_dynix(void)
      * Which variables do we service ? 
      */
     struct variable2 extensible_vmstat_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {ERRORNAME}},
-        {SWAPIN, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPIN}},
-        {SWAPOUT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPOUT}},
-        {IOSENT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IOSENT}},
-        {IORECEIVE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORECEIVE}},
-        {SYSINTERRUPTS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSINTERRUPTS}},
-        {SYSCONTEXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSCONTEXT}},
-        {CPUUSER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUUSER}},
-        {CPUSYSTEM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUSYSTEM}},
-        {CPUIDLE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUIDLE}},
-        {CPURAWUSER, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWUSER}},
-        {CPURAWSYSTEM, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWSYSTEM}},
-        {CPURAWIDLE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWIDLE}},
-        {CPURAWWAIT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWWAIT}},
-        {CPURAWKERNEL, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWKERNEL}},
-        {IORAWSENT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORAWSENT}},
-        {IORAWRECEIVE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORAWRECEIVE}},
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1,
+         {ERRORNAME}},
+        {SWAPIN, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPIN}},
+        {SWAPOUT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPOUT}},
+        {IOSENT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {IOSENT}},
+        {IORECEIVE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {IORECEIVE}},
+        {SYSINTERRUPTS, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSINTERRUPTS}},
+        {SYSCONTEXT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSCONTEXT}},
+        {CPUUSER, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUUSER}},
+        {CPUSYSTEM, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {CPUSYSTEM}},
+        {CPUIDLE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUIDLE}},
+        {CPURAWUSER, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWUSER}},
+        {CPURAWSYSTEM, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWSYSTEM}},
+        {CPURAWIDLE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWIDLE}},
+        {CPURAWWAIT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWWAIT}},
+        {CPURAWKERNEL, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWKERNEL}},
+        {IORAWSENT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {IORAWSENT}},
+        {IORAWRECEIVE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {IORAWRECEIVE}},
         /*
          * Future use: 
          */
         /*
-         * {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORFLAG }},
-         * {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORMSG }}
+         * {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {ERRORFLAG }},
+         * {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1, {ERRORMSG }}
          */
     };
 
diff --git a/agent/mibgroup/ucd-snmp/vmstat_dynix.h b/agent/mibgroup/ucd-snmp/vmstat_dynix.h
index 8954e35..aae1790 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_dynix.h
+++ b/agent/mibgroup/ucd-snmp/vmstat_dynix.h
@@ -14,7 +14,7 @@
 /*
  * Directive to include utility module 
  */
-config_require(util_funcs/header_generic)
+config_require(util_funcs)
 
     /*
      * MIB wants V_CPU_SYSTEM which is sysinfo V_CPU_KERNEL + V_CPU_WAIT 
diff --git a/agent/mibgroup/ucd-snmp/vmstat_freebsd2.c b/agent/mibgroup/ucd-snmp/vmstat_freebsd2.c
index 3de89b2..8aa9c76 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_freebsd2.c
+++ b/agent/mibgroup/ucd-snmp/vmstat_freebsd2.c
@@ -9,15 +9,9 @@
  */
 #include <sys/param.h>
 #include <sys/time.h>
-#if defined(dragonfly)
-#include <sys/user.h>
-#else
 #include <sys/proc.h>
-#endif
 #if defined(freebsd5) && __FreeBSD_version >= 500101
 #include <sys/resource.h>
-#elif defined(dragonfly)
-#include <kinfo.h>
 #else
 #include <sys/dkstat.h>
 #endif
@@ -57,7 +51,7 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/auto_nlist.h>
 
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 #include "vmstat.h"
 #include "vmstat_freebsd2.h"
 
@@ -88,52 +82,45 @@ init_vmstat_freebsd2(void)
 {
 
     struct variable2 extensible_vmstat_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {ERRORNAME}},
-        {SWAPIN, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPIN}},
-        {SWAPOUT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPOUT}},
-        {IOSENT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IOSENT}},
-        {IORECEIVE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORECEIVE}},
-        {SYSINTERRUPTS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSINTERRUPTS}},
-        {SYSCONTEXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSCONTEXT}},
-        {CPUUSER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUUSER}},
-        {CPUSYSTEM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUSYSTEM}},
-        {CPUIDLE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUIDLE}},
-        {CPURAWUSER, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWUSER}},
-        {CPURAWNICE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWNICE}},
-        {CPURAWSYSTEM, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWSYSTEM}},
-        {CPURAWIDLE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWIDLE}},
-        {CPURAWKERNEL, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWKERNEL}},
-        {CPURAWINTR, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWINTR}},
-        {SYSRAWINTERRUPTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSRAWINTERRUPTS}},
-        {SYSRAWCONTEXT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSRAWCONTEXT}},
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1,
+         {ERRORNAME}},
+        {SWAPIN, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPIN}},
+        {SWAPOUT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPOUT}},
+        {IOSENT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {IOSENT}},
+        {IORECEIVE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {IORECEIVE}},
+        {SYSINTERRUPTS, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSINTERRUPTS}},
+        {SYSCONTEXT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSCONTEXT}},
+        {CPUUSER, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUUSER}},
+        {CPUSYSTEM, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {CPUSYSTEM}},
+        {CPUIDLE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUIDLE}},
+        {CPURAWUSER, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWUSER}},
+        {CPURAWNICE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWNICE}},
+        {CPURAWSYSTEM, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWSYSTEM}},
+        {CPURAWIDLE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWIDLE}},
+        {CPURAWKERNEL, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWKERNEL}},
+        {CPURAWINTR, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWINTR}},
+        {SYSRAWINTERRUPTS, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {SYSRAWINTERRUPTS}},
+        {SYSRAWCONTEXT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {SYSRAWCONTEXT}},
         /*
          * Future use: 
          */
         /*
-         * {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORFLAG }},
-         * {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORMSG }}
+         * {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {ERRORFLAG }},
+         * {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1, {ERRORMSG }}
          */
     };
 
@@ -181,18 +168,11 @@ var_extensible_vmstat(struct variable *vp,
     static time_t   time_old;
     static time_t   time_diff;
 
-#if defined(dragonfly)
-    static struct kinfo_cputime cpu_old, cpu_new, cpu_diff;
-    static uint64_t cpu_total;
-    uint64_t cpu_sum;
-    static int pagesize;
-#else
     static long     cpu_old[CPUSTATES];
     static long     cpu_new[CPUSTATES];
     static long     cpu_diff[CPUSTATES];
     static long     cpu_total;
     long            cpu_sum;
-#endif
     double          cpu_prc;
 
     static struct vmmeter mem_old, mem_new;
@@ -200,11 +180,6 @@ var_extensible_vmstat(struct variable *vp,
     static long     long_ret;
     static char     errmsg[300];
 
-#if defined(dragonfly)
-    if (pagesize == 0)
-	    pagesize = getpagesize() >> 10;
-#endif
-
     long_ret = 0;               /* set to 0 as default */
 
     if (header_generic(vp, name, length, exact, var_len, write_method))
@@ -220,28 +195,15 @@ var_extensible_vmstat(struct variable *vp,
         /*
          * CPU usage 
          */
+        auto_nlist(CPTIME_SYMBOL, (char *) cpu_new, sizeof(cpu_new));
 
         cpu_total = 0;
 
-#if defined(dragonfly)
-	kinfo_get_sched_cputime(&cpu_new);
-#define CP_UPDATE(field) cpu_diff.field = cpu_new.field - cpu_old.field; cpu_total += cpu_diff.field;
-	CP_UPDATE(cp_user);
-	CP_UPDATE(cp_nice);
-	CP_UPDATE(cp_sys);
-	CP_UPDATE(cp_intr);
-	CP_UPDATE(cp_idle);
-	cpu_old = cpu_new;
-#undef CP_UPDATE
-#else
-        auto_nlist(CPTIME_SYMBOL, (char *) cpu_new, sizeof(cpu_new));
-
         for (loop = 0; loop < CPUSTATES; loop++) {
             cpu_diff[loop] = cpu_new[loop] - cpu_old[loop];
             cpu_old[loop] = cpu_new[loop];
             cpu_total += cpu_diff[loop];
         }
-#endif
 
         if (cpu_total == 0)
             cpu_total = 1;
@@ -261,11 +223,7 @@ var_extensible_vmstat(struct variable *vp,
     /*
      * Page-to-kb macro 
      */
-#if defined(dragonfly)
-#define ptok(p) ((p) * pagesize)
-#else
 #define ptok(p) ((p) * (mem_new.v_page_size >> 10))
-#endif
 
     switch (vp->magic) {
     case MIBINDEX:
@@ -312,73 +270,37 @@ var_extensible_vmstat(struct variable *vp,
         long_ret = rate(mem_new.v_swtch - mem_old.v_swtch);
         return ((u_char *) (&long_ret));
     case CPUUSER:
-#if defined(dragonfly)
-        cpu_sum = cpu_diff.cp_user  + cpu_diff.cp_nice;
-#else
         cpu_sum = cpu_diff[CP_USER] + cpu_diff[CP_NICE];
-#endif
         cpu_prc = (float) cpu_sum / (float) cpu_total;
         long_ret = cpu_prc * CPU_PRC;
         return ((u_char *) (&long_ret));
     case CPUSYSTEM:
-#if defined(dragonfly)
-        cpu_sum = cpu_diff.cp_sys  + cpu_diff.cp_intr;
-#else
         cpu_sum = cpu_diff[CP_SYS] + cpu_diff[CP_INTR];
-#endif
         cpu_prc = (float) cpu_sum / (float) cpu_total;
         long_ret = cpu_prc * CPU_PRC;
         return ((u_char *) (&long_ret));
     case CPUIDLE:
-#if defined(dragonfly)
-        cpu_sum = cpu_diff.cp_idle;
-#else
         cpu_sum = cpu_diff[CP_IDLE];
-#endif
         cpu_prc = (float) cpu_sum / (float) cpu_total;
         long_ret = cpu_prc * CPU_PRC;
         return ((u_char *) (&long_ret));
     case CPURAWUSER:
-#if defined(dragonfly)
-        long_ret = cpu_new.cp_user;
-#else
         long_ret = cpu_new[CP_USER];
-#endif
         return ((u_char *) (&long_ret));
     case CPURAWNICE:
-#if defined(dragonfly)
-        long_ret = cpu_new.cp_nice;
-#else
         long_ret = cpu_new[CP_NICE];
-#endif
         return ((u_char *) (&long_ret));
     case CPURAWSYSTEM:
-#if defined(dragonfly)
-        long_ret = cpu_new.cp_sys  + cpu_new.cp_nice;
-#else
         long_ret = cpu_new[CP_SYS] + cpu_new[CP_INTR];
-#endif
         return ((u_char *) (&long_ret));
     case CPURAWIDLE:
-#if defined(dragonfly)
-        long_ret = cpu_new.cp_idle;
-#else
         long_ret = cpu_new[CP_IDLE];
-#endif
         return ((u_char *) (&long_ret));
     case CPURAWKERNEL:
-#if defined(dragonfly)
-        long_ret = cpu_new.cp_sys;
-#else
         long_ret = cpu_new[CP_SYS];
-#endif
         return ((u_char *) (&long_ret));
     case CPURAWINTR:
-#if defined(dragonfly)
-        long_ret = cpu_new.cp_intr;
-#else
         long_ret = cpu_new[CP_INTR];
-#endif
         return ((u_char *) (&long_ret));
     case SYSRAWINTERRUPTS:
         long_ret = mem_new.v_intr;
diff --git a/agent/mibgroup/ucd-snmp/vmstat_freebsd2.h b/agent/mibgroup/ucd-snmp/vmstat_freebsd2.h
index 26b44b6..f0e60b8 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_freebsd2.h
+++ b/agent/mibgroup/ucd-snmp/vmstat_freebsd2.h
@@ -5,8 +5,6 @@
 #ifndef _MIBGROUP_VMSTAT_FREEBSD2_H
 #define _MIBGROUP_VMSTAT_FREEBSD2_H
 
-config_require(util_funcs/header_generic)
-
 #include "mibdefs.h"
 
 void            init_vmstat_freebsd2(void);
diff --git a/agent/mibgroup/ucd-snmp/vmstat_hpux.c b/agent/mibgroup/ucd-snmp/vmstat_hpux.c
index a784502..892fb7e 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_hpux.c
+++ b/agent/mibgroup/ucd-snmp/vmstat_hpux.c
@@ -45,7 +45,7 @@
 /*
  * Utility functions for UCD-SNMP 
  */
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 
 /*
  * Header file for this module 
@@ -171,52 +171,45 @@ init_vmstat_hpux(void)
      * Which variables do we service ? 
      */
     struct variable2 extensible_vmstat_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {ERRORNAME}},
-        {SWAPIN, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPIN}},
-        {SWAPOUT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPOUT}},
-        {IOSENT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IOSENT}},
-        {IORECEIVE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORECEIVE}},
-        {SYSINTERRUPTS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSINTERRUPTS}},
-        {SYSCONTEXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSCONTEXT}},
-        {CPUUSER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUUSER}},
-        {CPUSYSTEM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUSYSTEM}},
-        {CPUIDLE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUIDLE}},
-        {CPURAWUSER, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWUSER}},
-        {CPURAWNICE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWNICE}},
-        {CPURAWSYSTEM, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWSYSTEM}},
-        {CPURAWIDLE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWIDLE}},
-        {CPURAWWAIT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWWAIT}},
-        {CPURAWKERNEL, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWKERNEL}},
-        {IORAWSENT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORAWSENT}},
-        {IORAWRECEIVE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORAWRECEIVE}},
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1,
+         {ERRORNAME}},
+        {SWAPIN, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPIN}},
+        {SWAPOUT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPOUT}},
+        {IOSENT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {IOSENT}},
+        {IORECEIVE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {IORECEIVE}},
+        {SYSINTERRUPTS, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSINTERRUPTS}},
+        {SYSCONTEXT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSCONTEXT}},
+        {CPUUSER, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUUSER}},
+        {CPUSYSTEM, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {CPUSYSTEM}},
+        {CPUIDLE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUIDLE}},
+        {CPURAWUSER, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWUSER}},
+        {CPURAWNICE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWNICE}},
+        {CPURAWSYSTEM, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWSYSTEM}},
+        {CPURAWIDLE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWIDLE}},
+        {CPURAWWAIT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWWAIT}},
+        {CPURAWKERNEL, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWKERNEL}},
+        {IORAWSENT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {IORAWSENT}},
+        {IORAWRECEIVE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {IORAWRECEIVE}},
         /*
          * Future use: 
          */
         /*
-         * {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORFLAG }},
-         * {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORMSG }}
+         * {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {ERRORFLAG }},
+         * {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1, {ERRORMSG }}
          */
     };
 
diff --git a/agent/mibgroup/ucd-snmp/vmstat_hpux.h b/agent/mibgroup/ucd-snmp/vmstat_hpux.h
index 8f26594..e10095e 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_hpux.h
+++ b/agent/mibgroup/ucd-snmp/vmstat_hpux.h
@@ -14,7 +14,7 @@
 /*
  * Directive to include utility module 
  */
-config_require(util_funcs/header_generic)
+config_require(util_funcs)
 
     /*
      * Make 64-bit pstat calls 
diff --git a/agent/mibgroup/ucd-snmp/vmstat_linux.c b/agent/mibgroup/ucd-snmp/vmstat_linux.c
index d6eff50..dc465f3 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_linux.c
+++ b/agent/mibgroup/ucd-snmp/vmstat_linux.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #if HAVE_LIMITS_H
 #include <limits.h>
@@ -109,20 +108,15 @@
 
 #include "mibdefs.h"
 #include "struct.h"
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 #include "vmstat.h"
 
-netsnmp_feature_require(hardware_cpu_load)
-
-
 FindVarMethod var_extensible_vmstat;
 
 static int has_vmstat = 1;
 static int has_cpu_26 = 1;
 static time_t cache_time;
 #define CACHE_TIMEOUT	5
-#define MAX_INT32 0x7fffffff
-#define MAX_COUNTER 0xffffffff
 
 #define STAT_FILE	"/proc/stat"
 #define VMSTAT_FILE	"/proc/vmstat"
@@ -132,64 +126,54 @@ void
 init_vmstat(void)
 {
     struct variable2 extensible_vmstat_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {ERRORNAME}},
-        {SWAPIN, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPIN}},
-        {SWAPOUT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPOUT}},
-        {RAWSWAPIN, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {RAWSWAPIN}},
-        {RAWSWAPOUT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {RAWSWAPOUT}},
-        {IOSENT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IOSENT}},
-        {IORECEIVE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORECEIVE}},
-        {IORAWSENT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORAWSENT}},
-        {IORAWRECEIVE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORAWRECEIVE}},
-        {SYSINTERRUPTS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSINTERRUPTS}},
-        {SYSCONTEXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSCONTEXT}},
-        {CPUUSER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUUSER}},
-        {CPUSYSTEM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUSYSTEM}},
-        {CPUIDLE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUIDLE}},
-        {CPURAWUSER, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWUSER}},
-        {CPURAWNICE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWNICE}},
-        {CPURAWSYSTEM, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWSYSTEM}},
-        {CPURAWKERNEL, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWKERNEL}},
-        {CPURAWIDLE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWIDLE}},
-        {SYSRAWINTERRUPTS, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSRAWINTERRUPTS}},
-        {SYSRAWCONTEXT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSRAWCONTEXT}},
-        {CPURAWWAIT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWWAIT}},
-        {CPURAWINTR, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWINTR}},
-        {CPURAWSOFTIRQ, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWSOFTIRQ}},
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1,
+         {ERRORNAME}},
+        {SWAPIN, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPIN}},
+        {SWAPOUT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPOUT}},
+        {RAWSWAPIN, ASN_COUNTER, RONLY, var_extensible_vmstat, 1, {RAWSWAPIN}},
+        {RAWSWAPOUT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1, {RAWSWAPOUT}},
+        {IOSENT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {IOSENT}},
+        {IORECEIVE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {IORECEIVE}},
+        {IORAWSENT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1, {IORAWSENT}},
+        {IORAWRECEIVE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {IORAWRECEIVE}},
+        {SYSINTERRUPTS, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSINTERRUPTS}},
+        {SYSCONTEXT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSCONTEXT}},
+        {CPUUSER, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUUSER}},
+        {CPUSYSTEM, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {CPUSYSTEM}},
+        {CPUIDLE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUIDLE}},
+        {CPURAWUSER, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWUSER}},
+        {CPURAWNICE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWNICE}},
+        {CPURAWSYSTEM, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWSYSTEM}},
+        {CPURAWKERNEL, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWKERNEL}},
+        {CPURAWIDLE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWIDLE}},
+        {SYSRAWINTERRUPTS, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {SYSRAWINTERRUPTS}},
+        {SYSRAWCONTEXT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {SYSRAWCONTEXT}},
+        {CPURAWWAIT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWWAIT}},
+        {CPURAWINTR, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWINTR}},
+        {CPURAWSOFTIRQ, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWSOFTIRQ}},
         /*
          * Future use: 
          */
         /*
-         * {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORFLAG }},
-         * {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORMSG }}
+         * {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {ERRORFLAG }},
+         * {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1, {ERRORMSG }}
          */
     };
 
@@ -242,13 +226,7 @@ getstat(unsigned long *cuse, unsigned long *cice, unsigned long *csys,
             statfd = open(STAT_FILE, O_RDONLY, 0);
         }
         close(statfd);
-
-	if (has_vmstat) {
-          vmstatfd = open(VMSTAT_FILE, O_RDONLY, 0);
-          if (vmstatfd == -1) {
-                snmp_log(LOG_ERR, "cannot open %s\n", VMSTAT_FILE);
-                has_vmstat = 0;
-          } else {
+	if (has_vmstat && (vmstatfd = open(VMSTAT_FILE, O_RDONLY, 0)) != -1) {
 	    if (vmbsize == 0) {
 		vmbsize = 256;
 		vmbuff = malloc(vmbsize);
@@ -260,8 +238,9 @@ getstat(unsigned long *cuse, unsigned long *cice, unsigned long *csys,
 		vmstatfd = open(VMSTAT_FILE, O_RDONLY, 0);
 	    }
 	    close(vmstatfd);
-          }
 	}
+	else
+	    has_vmstat = 0;
 	cache_time = now;
     }
 
@@ -493,76 +472,76 @@ var_extensible_vmstat(struct variable *vp,
         *var_len = strlen(errmsg);
         return ((u_char *) (errmsg));
     case SWAPIN:
-        long_ret = vmstat(swapin) & MAX_INT32;
+        long_ret = vmstat(swapin);
         return ((u_char *) (&long_ret));
     case SWAPOUT:
-        long_ret = vmstat(swapout) & MAX_INT32;
+        long_ret = vmstat(swapout);
         return ((u_char *) (&long_ret));
     case RAWSWAPIN:
-        long_ret = vmstat(rawswapin) & MAX_COUNTER;
+        long_ret = vmstat(rawswapin);
         return ((u_char *) (&long_ret));
     case RAWSWAPOUT:
-        long_ret = vmstat(rawswapout) & MAX_COUNTER;
+        long_ret = vmstat(rawswapout);
         return ((u_char *) (&long_ret));
     case IOSENT:
-        long_ret = vmstat(iosent) & MAX_INT32;
+        long_ret = vmstat(iosent);
         return ((u_char *) (&long_ret));
     case IORECEIVE:
-        long_ret = vmstat(ioreceive) & MAX_INT32;
+        long_ret = vmstat(ioreceive);
         return ((u_char *) (&long_ret));
     case IORAWSENT:
-        long_ret = vmstat(rawiosent) & MAX_COUNTER;
+        long_ret = vmstat(rawiosent);
         return ((u_char *) (&long_ret));
     case IORAWRECEIVE:
-        long_ret = vmstat(rawioreceive) & MAX_COUNTER;
+        long_ret = vmstat(rawioreceive);
         return ((u_char *) (&long_ret));
     case SYSINTERRUPTS:
-        long_ret = vmstat(sysinterrupts) & MAX_INT32;
+        long_ret = vmstat(sysinterrupts);
         return ((u_char *) (&long_ret));
     case SYSCONTEXT:
-        long_ret = vmstat(syscontext) & MAX_INT32;
+        long_ret = vmstat(syscontext);
         return ((u_char *) (&long_ret));
     case CPUUSER:
-        long_ret = vmstat(cpuuser) & MAX_INT32;
+        long_ret = vmstat(cpuuser);
         return ((u_char *) (&long_ret));
     case CPUSYSTEM:
-        long_ret = vmstat(cpusystem) & MAX_INT32;
+        long_ret = vmstat(cpusystem);
         return ((u_char *) (&long_ret));
     case CPUIDLE:
-        long_ret = vmstat(cpuidle) & MAX_INT32;
+        long_ret = vmstat(cpuidle);
         return ((u_char *) (&long_ret));
     case CPURAWUSER:
-        long_ret = vmstat(cpurawuser) & MAX_COUNTER;
+        long_ret = vmstat(cpurawuser);
         return ((u_char *) (&long_ret));
     case CPURAWNICE:
-        long_ret = vmstat(cpurawnice) & MAX_COUNTER;
+        long_ret = vmstat(cpurawnice);
         return ((u_char *) (&long_ret));
     case CPURAWSYSTEM:
-        long_ret = (vmstat(cpurawsystem)+vmstat(cpurawinter)+vmstat(cpurawsoft)) & MAX_COUNTER;
+        long_ret = vmstat(cpurawsystem)+vmstat(cpurawinter)+vmstat(cpurawsoft);
         return ((u_char *) (&long_ret));
     case CPURAWKERNEL:
-        long_ret = vmstat(cpurawsystem) & MAX_COUNTER;
+        long_ret = vmstat(cpurawsystem);
         return ((u_char *) (&long_ret));
     case CPURAWIDLE:
-        long_ret = vmstat(cpurawidle) & MAX_COUNTER;
+        long_ret = vmstat(cpurawidle);
         return ((u_char *) (&long_ret));
     case SYSRAWINTERRUPTS:
-	long_ret = vmstat(rawinterrupts) & MAX_COUNTER;
+	long_ret = vmstat(rawinterrupts);
 	return (u_char *)&long_ret;
     case SYSRAWCONTEXT:
-	long_ret = vmstat(rawcontext) & MAX_COUNTER;
+	long_ret = vmstat(rawcontext);
 	return (u_char *)&long_ret;
     case CPURAWWAIT:
 	if (!has_cpu_26) return NULL;
-        long_ret = vmstat(cpurawwait) & MAX_COUNTER;
+        long_ret = vmstat(cpurawwait);
         return ((u_char *) (&long_ret));
     case CPURAWINTR:
 	if (!has_cpu_26) return NULL;
-        long_ret = vmstat(cpurawinter) & MAX_COUNTER;
+        long_ret = vmstat(cpurawinter);
         return ((u_char *) (&long_ret));
     case CPURAWSOFTIRQ:
 	if (!has_cpu_26) return NULL;
-        long_ret = vmstat(cpurawsoft) & MAX_COUNTER;
+        long_ret = vmstat(cpurawsoft);
         return ((u_char *) (&long_ret));
 		
         /*
diff --git a/agent/mibgroup/ucd-snmp/vmstat_linux.h b/agent/mibgroup/ucd-snmp/vmstat_linux.h
index 6f7c50f..738e2f1 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_linux.h
+++ b/agent/mibgroup/ucd-snmp/vmstat_linux.h
@@ -5,7 +5,6 @@
 #ifndef _MIBGROUP_VMSTAT_H
 #define _MIBGROUP_VMSTAT_H
 
-config_require(util_funcs/header_generic)
 config_require(hardware/cpu)
 
 #include "mibdefs.h"
diff --git a/agent/mibgroup/ucd-snmp/vmstat_netbsd1.c b/agent/mibgroup/ucd-snmp/vmstat_netbsd1.c
index 9706c42..48aeabf 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_netbsd1.c
+++ b/agent/mibgroup/ucd-snmp/vmstat_netbsd1.c
@@ -49,7 +49,7 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/auto_nlist.h>
 
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 #include "vmstat.h"
 
 /*
@@ -66,49 +66,42 @@ init_vmstat_netbsd1(void)
 {
 
     struct variable2 extensible_vmstat_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {ERRORNAME}},
-        {SWAPIN, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPIN}},
-        {SWAPOUT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPOUT}},
-        {IOSENT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IOSENT}},
-        {IORECEIVE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORECEIVE}},
-        {SYSINTERRUPTS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSINTERRUPTS}},
-        {SYSCONTEXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSCONTEXT}},
-        {CPUUSER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUUSER}},
-        {CPUSYSTEM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUSYSTEM}},
-        {CPUIDLE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUIDLE}},
-        {CPURAWUSER, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWUSER}},
-        {CPURAWNICE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWNICE}},
-        {CPURAWSYSTEM, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWSYSTEM}},
-        {CPURAWIDLE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWIDLE}},
-        {CPURAWKERNEL, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWKERNEL}},
-        {CPURAWINTR, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWINTR}},
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1,
+         {ERRORNAME}},
+        {SWAPIN, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPIN}},
+        {SWAPOUT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPOUT}},
+        {IOSENT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {IOSENT}},
+        {IORECEIVE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {IORECEIVE}},
+        {SYSINTERRUPTS, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSINTERRUPTS}},
+        {SYSCONTEXT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSCONTEXT}},
+        {CPUUSER, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUUSER}},
+        {CPUSYSTEM, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {CPUSYSTEM}},
+        {CPUIDLE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUIDLE}},
+        {CPURAWUSER, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWUSER}},
+        {CPURAWNICE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWNICE}},
+        {CPURAWSYSTEM, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWSYSTEM}},
+        {CPURAWIDLE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWIDLE}},
+        {CPURAWKERNEL, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWKERNEL}},
+        {CPURAWINTR, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWINTR}},
 
         /*
          * Future use: 
          */
         /*
-         * {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORFLAG }},
-         * {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORMSG }}
+         * {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {ERRORFLAG }},
+         * {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1, {ERRORMSG }}
          */
     };
 
@@ -177,7 +170,7 @@ var_extensible_vmstat(struct variable *vp,
 
     static struct uvmexp mem_old, mem_new;
     int             mem_mib[] = { CTL_VM, VM_UVMEXP };
-    size_t          mem_size = sizeof(struct uvmexp);
+    int             mem_size = sizeof(struct uvmexp);
 
     static long     long_ret;
     static char     errmsg[300];
@@ -193,13 +186,13 @@ var_extensible_vmstat(struct variable *vp,
     if (time_new != time_old) {
 #ifdef KERN_CP_TIME
         int             mib[2] = { CTL_KERN, KERN_CP_TIME };
-        size_t          ssize = sizeof(cpu_new);
+        int             ssize = sizeof(cpu_new);
 
         if (sysctl(mib, 2, cpu_new, &ssize, NULL, 0) < 0)
             memset(cpu_new, 0, sizeof(cpu_new));
 #elif defined(KERN_CPTIME)
         int             mib[2] = { CTL_KERN, KERN_CPTIME };
-        size_t          ssize = sizeof(cpu_new);
+        int             ssize = sizeof(cpu_new);
 
         if (sysctl(mib, 2, cpu_new, &ssize, NULL, 0) < 0)
             memset(cpu_new, 0, sizeof(cpu_new));
diff --git a/agent/mibgroup/ucd-snmp/vmstat_netbsd1.h b/agent/mibgroup/ucd-snmp/vmstat_netbsd1.h
index adf5d46..eb6b172 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_netbsd1.h
+++ b/agent/mibgroup/ucd-snmp/vmstat_netbsd1.h
@@ -5,8 +5,6 @@
 #ifndef _MIBGROUP_VMSTAT_NETBSD1_H
 #define _MIBGROUP_VMSTAT_NETBSD1_H
 
-config_require(util_funcs/header_generic)
-
 #include "mibdefs.h"
 
 void            init_vmstat_netbsd1(void);
diff --git a/agent/mibgroup/ucd-snmp/vmstat_solaris2.c b/agent/mibgroup/ucd-snmp/vmstat_solaris2.c
index 3715045..ca8a87f 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_solaris2.c
+++ b/agent/mibgroup/ucd-snmp/vmstat_solaris2.c
@@ -46,7 +46,7 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
 #include "mibdefs.h"
-#include "util_funcs/header_generic.h"
+#include "util_funcs.h"
 
 /*
  * Header file for this module 
@@ -169,48 +169,41 @@ init_vmstat_solaris2(void)
      * Which variables do we service ? 
      */
     struct variable2 extensible_vmstat_variables[] = {
-        {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {MIBINDEX}},
-        {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {ERRORNAME}},
-        {SWAPIN, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPIN}},
-        {SWAPOUT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SWAPOUT}},
-        {IOSENT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IOSENT}},
-        {IORECEIVE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORECEIVE}},
-        {SYSINTERRUPTS, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSINTERRUPTS}},
-        {SYSCONTEXT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {SYSCONTEXT}},
-        {CPUUSER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUUSER}},
-        {CPUSYSTEM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUSYSTEM}},
-        {CPUIDLE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPUIDLE}},
-        {CPURAWUSER, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWUSER}},
-        {CPURAWSYSTEM, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWSYSTEM}},
-        {CPURAWIDLE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWIDLE}},
-        {CPURAWWAIT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWWAIT}},
-        {CPURAWKERNEL, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {CPURAWKERNEL}},
-        {IORAWSENT, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORAWSENT}},
-        {IORAWRECEIVE, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_extensible_vmstat, 1, {IORAWRECEIVE}},
+        {MIBINDEX, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {MIBINDEX}},
+        {ERRORNAME, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1,
+         {ERRORNAME}},
+        {SWAPIN, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPIN}},
+        {SWAPOUT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {SWAPOUT}},
+        {IOSENT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {IOSENT}},
+        {IORECEIVE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {IORECEIVE}},
+        {SYSINTERRUPTS, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSINTERRUPTS}},
+        {SYSCONTEXT, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {SYSCONTEXT}},
+        {CPUUSER, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUUSER}},
+        {CPUSYSTEM, ASN_INTEGER, RONLY, var_extensible_vmstat, 1,
+         {CPUSYSTEM}},
+        {CPUIDLE, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {CPUIDLE}},
+        {CPURAWUSER, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWUSER}},
+        {CPURAWSYSTEM, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWSYSTEM}},
+        {CPURAWIDLE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWIDLE}},
+        {CPURAWWAIT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWWAIT}},
+        {CPURAWKERNEL, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {CPURAWKERNEL}},
+        {IORAWSENT, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {IORAWSENT}},
+        {IORAWRECEIVE, ASN_COUNTER, RONLY, var_extensible_vmstat, 1,
+         {IORAWRECEIVE}},
         /*
          * Future use: 
-         * {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORFLAG }},
-         * {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         *  var_extensible_vmstat, 1, {ERRORMSG }}
+         * {ERRORFLAG, ASN_INTEGER, RONLY, var_extensible_vmstat, 1, {ERRORFLAG }},
+         * {ERRORMSG, ASN_OCTET_STR, RONLY, var_extensible_vmstat, 1, {ERRORMSG }}
          */
     };
 
diff --git a/agent/mibgroup/ucd-snmp/vmstat_solaris2.h b/agent/mibgroup/ucd-snmp/vmstat_solaris2.h
index 77fbb3b..8282288 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_solaris2.h
+++ b/agent/mibgroup/ucd-snmp/vmstat_solaris2.h
@@ -23,7 +23,7 @@ config_arch_require(solaris2, kernel_sunos5)
     /*
      * Directive to include utility module 
      */
-config_require(util_funcs/header_generic)
+config_require(util_funcs)
 
     /*
      * MIB wants CPU_SYSTEM which is sysinfo CPU_KERNEL + CPU_WAIT 
diff --git a/agent/mibgroup/ucd_snmp.h b/agent/mibgroup/ucd_snmp.h
index 0d87ec1..34c2fbb 100644
--- a/agent/mibgroup/ucd_snmp.h
+++ b/agent/mibgroup/ucd_snmp.h
@@ -3,14 +3,12 @@ config_require(ucd-snmp/proc)
 config_require(ucd-snmp/versioninfo)
 config_require(ucd-snmp/pass)
 config_require(ucd-snmp/pass_persist)
-config_version_require((ucd-snmp/disk, 5.7, ucd-snmp/disk_hw))
+config_require(ucd-snmp/disk)
 config_require(ucd-snmp/loadave)
 config_require(agent/extend)
 config_require(ucd-snmp/errormib)
 config_require(ucd-snmp/file)
-#if defined(HAVE_DLFCN_H) && defined(HAVE_DLOPEN)
 config_require(ucd-snmp/dlmod)
-#endif
 config_require(ucd-snmp/proxy)
 config_require(ucd-snmp/logmatch)
 config_require(ucd-snmp/memory)
diff --git a/agent/mibgroup/udp-mib/data_access/udp_endpoint.h b/agent/mibgroup/udp-mib/data_access/udp_endpoint.h
index ce85be9..60d1626 100644
--- a/agent/mibgroup/udp-mib/data_access/udp_endpoint.h
+++ b/agent/mibgroup/udp-mib/data_access/udp_endpoint.h
@@ -1,7 +1,7 @@
 /*
  * udp_endpoint data access header
  *
- * $Id$
+ * $Id: udp_endpoint.h 15387 2006-10-10 21:13:36Z tanders $
  */
 /**---------------------------------------------------------------------*/
 /*
@@ -20,15 +20,8 @@
 config_require(udp-mib/data_access/udp_endpoint_common)
 #if defined( linux )
 config_require(udp-mib/data_access/udp_endpoint_linux)
-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
 #   define NETSNMP_UDP_ENDPOINT_COMMON_ONLY
 #endif
diff --git a/agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c b/agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c
index 63f8549..183c900 100644
--- a/agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c
+++ b/agent/mibgroup/udp-mib/data_access/udp_endpoint_common.c
@@ -1,10 +1,9 @@
 /*
  *  UDP-MIB endpoint architecture support
  *
- * $Id$
+ * $Id: udp_endpoint_common.c 13920 2005-12-11 17:55:01Z rstory $
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include "udp-mib/udpEndpointTable/udpEndpointTable_constants.h"
 
@@ -14,10 +13,6 @@
 
 #include "udp_endpoint_private.h"
 
-netsnmp_feature_child_of(udp_endpoint_common, libnetsnmpmibs)
-
-netsnmp_feature_child_of(udp_endpoint_entry_create, udp_endpoint_common)
-
 /**---------------------------------------------------------------------*/
 /*
  * local static vars
@@ -29,6 +24,11 @@ netsnmp_feature_child_of(udp_endpoint_entry_create, udp_endpoint_common)
  * initialization
  */
 
+void
+netsnmp_access_udp_endpoint_init(void)
+{
+}
+
 /**---------------------------------------------------------------------*/
 /*
  * container functions
@@ -105,8 +105,7 @@ netsnmp_access_udp_endpoint_container_free(netsnmp_container *container,
          * free all items.
          */
         CONTAINER_CLEAR(container,
-                        (netsnmp_container_obj_func*)
-                        netsnmp_access_udp_endpoint_entry_free,
+                        (netsnmp_container_obj_func*)free,
                         NULL);
     }
 
@@ -120,7 +119,6 @@ netsnmp_access_udp_endpoint_container_free(netsnmp_container *container,
  */
 /**
  */
-#ifndef NETSNMP_FEATURE_REMOVE_UDP_ENDPOINT_ENTRY_CREATE
 netsnmp_udp_endpoint_entry *
 netsnmp_access_udp_endpoint_entry_create(void)
 {
@@ -137,7 +135,6 @@ netsnmp_access_udp_endpoint_entry_create(void)
 
     return entry;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UDP_ENDPOINT_ENTRY_CREATE */
 
 /**
  */
@@ -156,3 +153,23 @@ netsnmp_access_udp_endpoint_entry_free(netsnmp_udp_endpoint_entry * entry)
 
     free(entry);
 }
+
+
+/**---------------------------------------------------------------------*/
+/*
+ * Utility routines
+ */
+
+/**
+ * \internal
+ */
+static void
+_entry_release(netsnmp_udp_endpoint_entry * entry, void *context)
+{
+    netsnmp_access_udp_endpoint_entry_free(entry);
+}
+
+/**---------------------------------------------------------------------*/
+/*
+ *
+ */
diff --git a/agent/mibgroup/udp-mib/data_access/udp_endpoint_freebsd4.c b/agent/mibgroup/udp-mib/data_access/udp_endpoint_freebsd4.c
deleted file mode 100644
index efb8bb6..0000000
--- a/agent/mibgroup/udp-mib/data_access/udp_endpoint_freebsd4.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- *  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 6edbdc1..9e14664 100644
--- a/agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c
+++ b/agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c
@@ -1,10 +1,9 @@
 /*
  *  udpEndpointTable MIB architecture support
  *
- * $Id$
+ * $Id: udp_endpoint_linux.c 17723 2009-08-05 20:07:38Z dts12 $
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 
 #include <net-snmp/agent/net-snmp-agent-includes.h>
@@ -15,15 +14,11 @@
 #include <net-snmp/data_access/udp_endpoint.h>
 
 #include "udp-mib/udpEndpointTable/udpEndpointTable_constants.h"
-#include "mibgroup/util_funcs/get_pid_from_inode.h"
+
 #include "udp_endpoint_private.h"
 
 #include <fcntl.h>
 
-netsnmp_feature_require(text_utils)
-netsnmp_feature_child_of(udp_endpoint_all, libnetsnmpmibs)
-netsnmp_feature_child_of(udp_endpoint_writable, udp_endpoint_all)
-
 static int _load4(netsnmp_container *container, u_int flags);
 #if defined (NETSNMP_ENABLE_IPV6)
 static int _load6(netsnmp_container *container, u_int flags);
@@ -35,7 +30,6 @@ static int _load6(netsnmp_container *container, u_int flags);
  * @retval  0: success
  * @retval <0: error
  */
-#ifndef NETSNMP_FEATURE_REMOVE_UDP_ENDPOINT_WRITABLE
 int
 netsnmp_arch_udp_endpoint_entry_init(netsnmp_udp_endpoint_entry *entry)
 {
@@ -77,7 +71,6 @@ netsnmp_arch_udp_endpoint_delete(netsnmp_udp_endpoint_entry *entry)
     /** xxx-rks:9 udp_endpoint delete not implemented */
     return -1;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UDP_ENDPOINT_WRITABLE */
 
 
 /**
@@ -91,9 +84,6 @@ netsnmp_arch_udp_endpoint_container_load(netsnmp_container *container,
 {
     int rc = 0;
 
-    /* Setup the pid_from_inode table, and fill it.*/
-    netsnmp_get_pid_from_inode_init();
-
     rc = _load4(container, load_flags);
     if(rc < 0) {
         u_int flags = NETSNMP_ACCESS_UDP_ENDPOINT_FREE_KEEP_CONTAINER;
@@ -160,14 +150,14 @@ _process_line_udp_ep(netsnmp_line_info *line_info, void *mem,
     len = (sep - ptr);
     if (-1 == netsnmp_addrstr_hton(ptr, len)) {
         DEBUGMSGTL(("text:util:tvi", "bad length %d for loc addr '%s'\n",
-                    (int)u_ptr_len, line_info->start));
+                    u_ptr_len, line_info->start));
         return PMLP_RC_MEMORY_UNUSED;
     }
     offset = 0;
     netsnmp_hex_to_binary(&u_ptr, &u_ptr_len, &offset, 0, ptr, NULL);
     if ((4 != offset) && (16 != offset)) {
         DEBUGMSGTL(("text:util:tvi", "bad offset %d for loc addr '%s'\n",
-                    (int)offset, line_info->start));
+                    offset, line_info->start));
         return PMLP_RC_MEMORY_UNUSED;
     }
     ep->loc_addr_len = offset;
@@ -196,14 +186,14 @@ _process_line_udp_ep(netsnmp_line_info *line_info, void *mem,
     len = (sep - ptr);
     if (-1 == netsnmp_addrstr_hton(ptr, len)) {
         DEBUGMSGTL(("text:util:tvi", "bad length %d for rmt addr '%s'\n",
-                    (int)u_ptr_len, line_info->start));
+                    u_ptr_len, line_info->start));
         return PMLP_RC_MEMORY_UNUSED;
     }
     offset = 0;
     netsnmp_hex_to_binary(&u_ptr, &u_ptr_len, &offset, 0, ptr, NULL);
     if ((4 != offset) && (16 != offset)) {
         DEBUGMSGTL(("text:util:tvi", "bad offset %d for rmt addr '%s'\n",
-                    (int)offset, line_info->start));
+                    offset, line_info->start));
         return PMLP_RC_MEMORY_UNUSED;
     }
     ep->rmt_addr_len = offset;
@@ -232,13 +222,8 @@ _process_line_udp_ep(netsnmp_line_info *line_info, void *mem,
     inode = strtoull(ptr, &ptr, 0);
     ep->instance = (u_int)inode;
 
-    /*
-     * get the pid also
-     */
-    ep->pid = netsnmp_get_pid_from_inode(inode);
-
-    ep->index = (uintptr_t)(lpi->user_context);
-    lpi->user_context = (void*)((char*)(lpi->user_context) + 1);
+    ep->index = (u_int)(lpi->user_context);
+    lpi->user_context = (void*)((u_int)(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
deleted file mode 100644
index f68314b..0000000
--- a/agent/mibgroup/udp-mib/data_access/udp_endpoint_netbsd.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- *  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
deleted file mode 100644
index 99b67dc..0000000
--- a/agent/mibgroup/udp-mib/data_access/udp_endpoint_openbsd.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- *  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/data_access/udp_endpoint_solaris2.c b/agent/mibgroup/udp-mib/data_access/udp_endpoint_solaris2.c
index f52244a..f4b69df 100644
--- a/agent/mibgroup/udp-mib/data_access/udp_endpoint_solaris2.c
+++ b/agent/mibgroup/udp-mib/data_access/udp_endpoint_solaris2.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 
 #include <net-snmp/agent/net-snmp-agent-includes.h>
@@ -11,16 +10,11 @@
 
 #include "kernel_sunos5.h"
 
-netsnmp_feature_require(netsnmp_access_udp_endpoint_entry_create)
-netsnmp_feature_child_of(udp_endpoint_all, libnetsnmpmibs)
-netsnmp_feature_child_of(udp_endpoint_writable, udp_endpoint_all)
-
 static int _load_udp_endpoint_table_v4(netsnmp_container *, int);
 #if defined(NETSNMP_ENABLE_IPV6) && defined(SOLARIS_HAVE_IPV6_MIB_SUPPORT)
 static int _load_udp_endpoint_table_v6(netsnmp_container *, int);
 #endif
 
-#ifndef NETSNMP_FEATURE_REMOVE_UDP_ENDPOINT_WRITABLE
 int 
 netsnmp_arch_udp_endpoint_entry_init(netsnmp_udp_endpoint_entry *ep)
 {
@@ -54,7 +48,6 @@ netsnmp_arch_udp_endpoint_delete(netsnmp_udp_endpoint_entry *ep)
      */
     return (-1);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UDP_ENDPOINT_WRITABLE */
 
 int 
 netsnmp_arch_udp_endpoint_container_load(netsnmp_container * container, 
diff --git a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.c b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.c
index 145f4ce..5da022f 100644
--- a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.c
+++ b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $ 
  *
- * $Id$
+ * $Id: udpEndpointTable.c 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** \page MFD helper for udpEndpointTable
  *
@@ -26,12 +26,11 @@
 
 #include "udpEndpointTable_interface.h"
 
-const oid       udpEndpointTable_oid[] = { UDPENDPOINTTABLE_OID };
-const int       udpEndpointTable_oid_size =
+oid             udpEndpointTable_oid[] = { UDPENDPOINTTABLE_OID };
+int             udpEndpointTable_oid_size =
 OID_LENGTH(udpEndpointTable_oid);
 
 udpEndpointTable_registration udpEndpointTable_user_context;
-static udpEndpointTable_registration *udpEndpointTable_user_context_p;
 
 void            initialize_table_udpEndpointTable(void);
 void            shutdown_table_udpEndpointTable(void);
@@ -76,6 +75,7 @@ shutdown_udpEndpointTable(void)
 void
 initialize_table_udpEndpointTable(void)
 {
+    udpEndpointTable_registration *user_context;
     u_long          flags;
 
     DEBUGMSGTL(("verbose:udpEndpointTable:initialize_table_udpEndpointTable", "called\n"));
@@ -93,7 +93,7 @@ initialize_table_udpEndpointTable(void)
      * a netsnmp_data_list is a simple way to store void pointers. A simple
      * string token is used to add, find or remove pointers.
      */
-    udpEndpointTable_user_context_p =
+    user_context =
         netsnmp_create_data_list("udpEndpointTable", NULL, NULL);
 
     /*
@@ -105,8 +105,7 @@ initialize_table_udpEndpointTable(void)
     /*
      * call interface initialization code
      */
-    _udpEndpointTable_initialize_interface
-	(udpEndpointTable_user_context_p, flags);
+    _udpEndpointTable_initialize_interface(user_context, flags);
 }                               /* initialize_table_udpEndpointTable */
 
 /**
@@ -118,9 +117,7 @@ shutdown_table_udpEndpointTable(void)
     /*
      * call interface shutdown code
      */
-    _udpEndpointTable_shutdown_interface(udpEndpointTable_user_context_p);
-    netsnmp_free_all_list_data(udpEndpointTable_user_context_p);
-    udpEndpointTable_user_context_p = NULL;
+    _udpEndpointTable_shutdown_interface(&udpEndpointTable_user_context);
 }
 
 /**
@@ -226,8 +223,7 @@ udpEndpointTable_indexes_set_tbl_idx(udpEndpointTable_mib_index * tbl_idx,
                                      size_t
                                      udpEndpointRemoteAddress_val_ptr_len,
                                      u_long udpEndpointRemotePort_val,
-                                     u_long udpEndpointInstance_val,
-                                     u_long udpEndpointProcess_val)
+                                     u_long udpEndpointInstance_val)
 {
     DEBUGMSGTL(("verbose:udpEndpointTable:udpEndpointTable_indexes_set_tbl_idx", "called\n"));
 
@@ -296,10 +292,6 @@ udpEndpointTable_indexes_set_tbl_idx(udpEndpointTable_mib_index * tbl_idx,
      * udpEndpointInstance(7)/UNSIGNED32/ASN_UNSIGNED/u_long(u_long)//l/a/w/e/R/d/h 
      */
     tbl_idx->udpEndpointInstance = udpEndpointInstance_val;
-    /*
-     * udpEndpointProcess(8)/UNSIGNED32/ASN_UNSIGNED/u_long(u_long)//l/a/w/e/R/d/h 
-     */
-    tbl_idx->udpEndpointProcess = udpEndpointProcess_val;
 
 
     return MFD_SUCCESS;
@@ -328,8 +320,7 @@ udpEndpointTable_indexes_set(udpEndpointTable_rowreq_ctx * rowreq_ctx,
                              char *udpEndpointRemoteAddress_val_ptr,
                              size_t udpEndpointRemoteAddress_val_ptr_len,
                              u_long udpEndpointRemotePort_val,
-                             u_long udpEndpointInstance_val,
-                             u_long udpEndpointProcess_val)
+                             u_long udpEndpointInstance_val)
 {
     DEBUGMSGTL(("verbose:udpEndpointTable:udpEndpointTable_indexes_set",
                 "called\n"));
@@ -344,8 +335,7 @@ udpEndpointTable_indexes_set(udpEndpointTable_rowreq_ctx * rowreq_ctx,
                                              udpEndpointRemoteAddress_val_ptr,
                                              udpEndpointRemoteAddress_val_ptr_len,
                                              udpEndpointRemotePort_val,
-                                             udpEndpointInstance_val,
-                                             udpEndpointProcess_val))
+                                             udpEndpointInstance_val))
         return MFD_ERROR;
 
     /*
@@ -412,9 +402,9 @@ udpEndpointProcess_get(udpEndpointTable_rowreq_ctx * rowreq_ctx,
 
     /*
      * TODO:231:o: |-> Extract the current value of the udpEndpointProcess data.
-     * copy (* udpEndpointProcess_val_ptr ) from rowreq_ctx->tbl_idx.udpEndpointProcess
+     * copy (* udpEndpointProcess_val_ptr ) from rowreq_ctx->data
      */
-    (*udpEndpointProcess_val_ptr) = rowreq_ctx->tbl_idx.udpEndpointProcess;
+    (*udpEndpointProcess_val_ptr) = rowreq_ctx->data.udpEndpointProcess;
 
     return MFD_SUCCESS;
 }                               /* udpEndpointProcess_get */
diff --git a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.h b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.h
index 0deda03..f023db8 100644
--- a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.h
+++ b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.48 $ of : mfd-top.m2c,v $
  *
- * $Id$
+ * $Id: udpEndpointTable.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 #ifndef UDPENDPOINTTABLE_H
 #define UDPENDPOINTTABLE_H
@@ -132,11 +132,6 @@ config_require(udp-mib/udpEndpointTable/udpEndpointTable_data_access)
          */
         u_long          udpEndpointInstance;
 
-        /*
-         * udpEndpointProcess(8)/UNSIGNED32/ASN_UNSIGNED/u_long(u_long)//l/a/w/e/R/d/h
-         */
-        u_long          udpEndpointProcess;
-
 
     } udpEndpointTable_mib_index;
 
@@ -205,8 +200,8 @@ config_require(udp-mib/udpEndpointTable/udpEndpointTable_data_access)
         * udpEndpointTable_row_find_by_mib_index(udpEndpointTable_mib_index
                                                  * mib_idx);
 
-    extern const oid      udpEndpointTable_oid[];
-    extern const int      udpEndpointTable_oid_size;
+    extern oid      udpEndpointTable_oid[];
+    extern int      udpEndpointTable_oid_size;
 
 
 #include "udpEndpointTable_interface.h"
@@ -262,9 +257,7 @@ config_require(udp-mib/udpEndpointTable/udpEndpointTable_data_access)
                                              u_long
                                              udpEndpointRemotePort_val,
                                              u_long
-                                             udpEndpointInstance_val,
-                                             u_long
-                                             udpEndpointProcess_val);
+                                             udpEndpointInstance_val);
     int
         udpEndpointTable_indexes_set(udpEndpointTable_rowreq_ctx *
                                      rowreq_ctx,
@@ -280,8 +273,7 @@ config_require(udp-mib/udpEndpointTable/udpEndpointTable_data_access)
                                      size_t
                                      udpEndpointRemoteAddress_val_ptr_len,
                                      u_long udpEndpointRemotePort_val,
-                                     u_long udpEndpointInstance_val,
-                                     u_long udpEndpointProcess_val);
+                                     u_long udpEndpointInstance_val);
 
 
 
diff --git a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_constants.h b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_constants.h
index 35a4c2d..6242e66 100644
--- a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_constants.h
+++ b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_constants.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *  : generic-table-constants.m2c,v 1.5 2005/07/15 22:41:16 rstory Exp $
  *
- * $Id$
+ * $Id: udpEndpointTable_constants.h 13787 2005-12-02 18:05:59Z rstory $
  */
 #ifndef UDPENDPOINTTABLE_CONSTANTS_H
 #define UDPENDPOINTTABLE_CONSTANTS_H
diff --git a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c
index 0e25c21..03b6acf 100644
--- a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c
+++ b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $ 
  *
- * $Id$
+ * $Id: udpEndpointTable_data_access.c 17719 2009-08-05 15:12:06Z jsafranek $
  */
 /*
  * standard Net-SNMP includes 
@@ -239,12 +239,11 @@ udpEndpointTable_container_load(netsnmp_container *container)
     if (NULL == ep_c)
         return MFD_RESOURCE_UNAVAILABLE;
     ep_it = CONTAINER_ITERATOR(ep_c);
-    if (NULL == ep_it) {
+    if (NULL == ep_c) {
         netsnmp_access_udp_endpoint_container_free(ep_c, 0);
         return MFD_RESOURCE_UNAVAILABLE;
     }
-    for (ep = (netsnmp_udp_endpoint_entry*)ITERATOR_FIRST(ep_it); ep;
-         ep = (netsnmp_udp_endpoint_entry*)ITERATOR_NEXT (ep_it)) {
+    for (ep = ITERATOR_FIRST(ep_it); ep; ep = ITERATOR_NEXT(ep_it)) {
 
         /*
          * TODO:352:M: |   |-> set indexes in new udpEndpointTable rowreq context.
@@ -259,15 +258,14 @@ udpEndpointTable_container_load(netsnmp_container *container)
         if (MFD_SUCCESS !=
             udpEndpointTable_indexes_set(rowreq_ctx,
                                          udpEndpointLocalAddressType,
-                                         (char *) ep->loc_addr,
+                                         ep->loc_addr,
                                          ep->loc_addr_len,
                                          ep->loc_port,
                                          udpEndpointRemoteAddressType,
-                                         (char *) ep->rmt_addr,
+                                         ep->rmt_addr,
                                          ep->rmt_addr_len,
                                          ep->rmt_port,
-                                         ep->instance,
-                                         ep->pid)) {
+                                         ep->instance)) {
             snmp_log(LOG_ERR,
                      "error setting index while loading "
                      "udpEndpointTable data.\n");
@@ -295,7 +293,7 @@ udpEndpointTable_container_load(netsnmp_container *container)
 
 
     DEBUGMSGT(("verbose:udpEndpointTable:udpEndpointTable_container_load",
-               "inserted %d records\n", (int)CONTAINER_SIZE(container)));
+               "inserted %d records\n", CONTAINER_SIZE(container)));
 
     return MFD_SUCCESS;
 }                               /* udpEndpointTable_container_load */
diff --git a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.h b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.h
index df7ea87..408461a 100644
--- a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.h
+++ b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.17 $ of : mfd-data-access.m2c,v $
  *
- * $Id$
+ * $Id: udpEndpointTable_data_access.h 13787 2005-12-02 18:05:59Z rstory $
  */
 #ifndef UDPENDPOINTTABLE_DATA_ACCESS_H
 #define UDPENDPOINTTABLE_DATA_ACCESS_H
diff --git a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c
index 60d37e9..657f6f1 100644
--- a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c
+++ b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $ 
  *
- * $Id$
+ * $Id: udpEndpointTable_interface.c 15015 2006-08-17 15:06:43Z rstory $
  */
 /*
  * *********************************************************************
@@ -30,7 +30,6 @@
  * standard Net-SNMP includes 
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -47,18 +46,6 @@
 
 #include <ctype.h>
 
-netsnmp_feature_child_of(udpEndpointTable_external_access, libnetsnmpmibs)
-
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(check_all_requests_error)
-
-
-netsnmp_feature_child_of(udpEndpointTable_container_size, udpEndpointTable_external_access)
-netsnmp_feature_child_of(udpEndpointTable_registration_set, udpEndpointTable_external_access)
-netsnmp_feature_child_of(udpEndpointTable_registration_get, udpEndpointTable_external_access)
-netsnmp_feature_child_of(udpEndpointTable_container_get, udpEndpointTable_external_access)
-
 /**********************************************************************
  **********************************************************************
  ***
@@ -92,23 +79,19 @@ static void
                 _udpEndpointTable_container_shutdown(udpEndpointTable_interface_ctx *
                                                      if_ctx);
 
-#ifndef NETSNMP_FEATURE_REMOVE_UDPENDPOINTTABLE_CONTAINER_GET
+
 netsnmp_container *
 udpEndpointTable_container_get(void)
 {
     return udpEndpointTable_if_ctx.container;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UDPENDPOINTTABLE_CONTAINER_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_UDPENDPOINTTABLE_REGISTRATION_GET
 udpEndpointTable_registration *
 udpEndpointTable_registration_get(void)
 {
     return udpEndpointTable_if_ctx.user_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UDPENDPOINTTABLE_REGISTRATION_GET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_UDPENDPOINTTABLE_REGISTRATION_SET
 udpEndpointTable_registration *
 udpEndpointTable_registration_set(udpEndpointTable_registration * newreg)
 {
@@ -116,15 +99,12 @@ udpEndpointTable_registration_set(udpEndpointTable_registration * newreg)
     udpEndpointTable_if_ctx.user_ctx = newreg;
     return old;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UDPENDPOINTTABLE_REGISTRATION_SET */
 
-#ifndef NETSNMP_FEATURE_REMOVE_UDPENDPOINTTABLE_CONTAINER_SIZE
 int
 udpEndpointTable_container_size(void)
 {
     return CONTAINER_SIZE(udpEndpointTable_if_ctx.container);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UDPENDPOINTTABLE_CONTAINER_SIZE */
 
 /*
  * mfd multiplexer modes
@@ -178,7 +158,7 @@ _udpEndpointTable_initialize_interface(udpEndpointTable_registration *
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrieval. 
+     * optimizes retrival. 
      */
     tbl_info->min_column = UDPENDPOINTTABLE_MIN_COL;
     tbl_info->max_column = UDPENDPOINTTABLE_MAX_COL;
@@ -243,13 +223,6 @@ _udpEndpointTable_initialize_interface(udpEndpointTable_registration *
      */
     if (access_multiplexer->object_lookup)
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if (access_multiplexer->pre_request)
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if (access_multiplexer->post_request)
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
-    /* XXX - are these actually necessary? */
     if (access_multiplexer->set_values)
         mfd_modes |= BABY_STEP_SET_VALUES;
     if (access_multiplexer->irreversible_commit)
@@ -257,6 +230,11 @@ _udpEndpointTable_initialize_interface(udpEndpointTable_registration *
     if (access_multiplexer->object_syntax_checks)
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if (access_multiplexer->pre_request)
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if (access_multiplexer->post_request)
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+
     if (access_multiplexer->undo_setup)
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if (access_multiplexer->undo_cleanup)
@@ -272,7 +250,6 @@ _udpEndpointTable_initialize_interface(udpEndpointTable_registration *
         mfd_modes |= BABY_STEP_COMMIT;
     if (access_multiplexer->undo_commit)
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
 
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -722,7 +699,7 @@ _mfd_udpEndpointTable_post_request(netsnmp_mib_handler *handler,
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    udpEndpointTable_rowreq_ctx *rowreq_ctx = (udpEndpointTable_rowreq_ctx*)
+    udpEndpointTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -769,7 +746,7 @@ _mfd_udpEndpointTable_object_lookup(netsnmp_mib_handler *handler,
                                     netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    udpEndpointTable_rowreq_ctx *rowreq_ctx = (udpEndpointTable_rowreq_ctx*)
+    udpEndpointTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:udpEndpointTable:_mfd_udpEndpointTable_object_lookup", "called\n"));
@@ -840,7 +817,7 @@ _mfd_udpEndpointTable_get_values(netsnmp_mib_handler *handler,
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    udpEndpointTable_rowreq_ctx *rowreq_ctx = (udpEndpointTable_rowreq_ctx*)
+    udpEndpointTable_rowreq_ctx *rowreq_ctx =
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1045,7 +1022,6 @@ _udpEndpointTable_container_init(udpEndpointTable_interface_ctx * if_ctx)
                  "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 +1044,6 @@ _udpEndpointTable_container_shutdown(udpEndpointTable_interface_ctx *
 }                               /* _udpEndpointTable_container_shutdown */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_UDPENDPOINTTABLE_EXTERNAL_ACCESS
 udpEndpointTable_rowreq_ctx *
 udpEndpointTable_row_find_by_mib_index(udpEndpointTable_mib_index *
                                        mib_idx)
@@ -1091,9 +1066,8 @@ udpEndpointTable_row_find_by_mib_index(udpEndpointTable_mib_index *
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = (udpEndpointTable_rowreq_ctx*)
+    rowreq_ctx =
         CONTAINER_FIND(udpEndpointTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UDPENDPOINTTABLE_EXTERNAL_ACCESS */
diff --git a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.h b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.h
index a7016e0..57866f3 100644
--- a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.h
+++ b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.h
@@ -2,7 +2,7 @@
  * Note: this file originally auto-generated by mib2c using
  *       version : 1.67 $ of : mfd-interface.m2c,v $
  *
- * $Id$
+ * $Id: udpEndpointTable_interface.h 14169 2006-01-25 16:28:12Z dts12 $
  */
 /** @ingroup interface Routines to interface to Net-SNMP
  *
diff --git a/agent/mibgroup/util_funcs.c b/agent/mibgroup/util_funcs.c
index 4c34c32..7f2742c 100644
--- a/agent/mibgroup/util_funcs.c
+++ b/agent/mibgroup/util_funcs.c
@@ -9,9 +9,7 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
-#include <sys/types.h>
 #if HAVE_IO_H
 #include <io.h>
 #endif
@@ -22,6 +20,7 @@
 #if HAVE_MALLOC_H
 #include <malloc.h>
 #endif
+#include <sys/types.h>
 #ifdef __alpha
 #ifndef _BSD
 #define _BSD
@@ -44,7 +43,11 @@
 # define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -67,6 +70,9 @@
 #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
@@ -80,9 +86,23 @@
 #ifdef HAVE_SYS_STAT_H
 #include <sys/stat.h>
 #endif
+#if HAVE_DIRENT_H
+#include <dirent.h>
+#else
+# define dirent direct
+# 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
+
 #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"
@@ -97,24 +117,6 @@
 #define setPerrorstatus(x) snmp_log_perror(x)
 #endif
 
-netsnmp_feature_child_of(util_funcs, libnetsnmpmibs)
-
-netsnmp_feature_child_of(shell_command, util_funcs)
-netsnmp_feature_child_of(get_exten_instance, util_funcs)
-netsnmp_feature_child_of(clear_cache, util_funcs)
-netsnmp_feature_child_of(find_field, util_funcs)
-netsnmp_feature_child_of(parse_miboid, util_funcs)
-netsnmp_feature_child_of(string_append_int, util_funcs)
-netsnmp_feature_child_of(internal_mib_table, util_funcs)
-
-#if defined(HAVE_LINUX_RTNETLINK_H)
-netsnmp_feature_child_of(prefix_info_all, util_funcs)
-netsnmp_feature_child_of(prefix_info, prefix_info_all)
-netsnmp_feature_child_of(update_prefix_info, prefix_info_all)
-netsnmp_feature_child_of(delete_prefix_info, prefix_info_all)
-netsnmp_feature_child_of(find_prefix_info, prefix_info_all)
-netsnmp_feature_child_of(create_prefix_info, prefix_info_all)
-#endif /* HAVE_LINUX_RTNETLINK_H */
 
 #ifdef NETSNMP_EXCACHETIME
 static long     cachetime;
@@ -122,14 +124,44 @@ static long     cachetime;
 
 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)
 {
-    return netsnmp_mktemp();
+    static char     name[32];
+    int             fd = -1;
+
+    strcpy(name, get_temp_file_pattern());
+#ifdef HAVE_MKSTEMP
+    fd = mkstemp(name);
+#else
+    if (mktemp(name)) {
+# ifndef WIN32        
+        fd = open(name, O_CREAT | O_EXCL | O_WRONLY, S_IRUSR | S_IWUSR);
+# else
+        /*
+          Win32 needs _S_IREAD | _S_IWRITE to set permissions on file after closing
+        */
+        fd = _open(name, _O_CREAT | _O_EXCL | _O_WRONLY, _S_IREAD | _S_IWRITE);
+# endif
+    }
+#endif
+    if (fd >= 0) {
+        close(fd);
+        DEBUGMSGTL(("make_tempfile", "temp file created: %s\n", name));
+        return name;
+    }
+    snmp_log(LOG_ERR,"make_tempfile: error creating file %s\n", name);
+    return NULL;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_SHELL_COMMAND
 int
 shell_command(struct extensible *ex)
 {
@@ -163,7 +195,6 @@ shell_command(struct extensible *ex)
 #endif
     return (ex->result);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SHELL_COMMAND */
 
 #define MAXOUTPUT 300
 
@@ -190,7 +221,6 @@ exec_command(struct extensible *ex)
     return (ex->result);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_GET_EXTEN_INSTANCE
 struct extensible *
 get_exten_instance(struct extensible *exten, size_t inst)
 {
@@ -202,7 +232,6 @@ get_exten_instance(struct extensible *exten, size_t inst)
         exten = exten->next;
     return (exten);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_GET_EXTEN_INSTANCE */
 
 void
 wait_on_exec(struct extensible *ex)
@@ -210,8 +239,8 @@ wait_on_exec(struct extensible *ex)
 #if defined(WIN32) && !defined (mingw32)
   int rc;
   if (ex->tid != 0 && ex->pid != 0) {
-    HANDLE hThread = ex->tid;
-    HANDLE hProcess = ex->pid;
+    HANDLE hThread = (HANDLE) ex->tid;
+    HANDLE hProcess = (HANDLE) ex->pid;
     rc = WaitForSingleObject(hProcess, NETSNMP_TIMEOUT_WAITFORSINGLEOBJECT);
     DEBUGMSGT(("exec:wait_on_exec","WaitForSingleObject rc=(%d)\n",rc ));
     rc = CloseHandle( hThread );
@@ -236,14 +265,10 @@ wait_on_exec(struct extensible *ex)
 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];
-    int             cachebytes;
+    ssize_t         cachebytes;
     int             cfd;
 #ifdef NETSNMP_EXCACHETIME
     long            curtime;
@@ -269,12 +294,10 @@ get_exec_output(struct extensible *ex)
             /*
              * XXX  Use SNMP_FILEMODE_CLOSED instead of 644? 
              */
-        if ((cfd = open(cachefile, O_WRONLY | O_TRUNC | O_CREAT, 0600)) < 0) {
+        if ((cfd = open(cachefile, O_WRONLY | O_TRUNC | O_CREAT, 0644)) < 0) {
                 snmp_log(LOG_ERR,"can not create cache file\n");
                 setPerrorstatus(cachefile);
-#ifdef NETSNMP_EXCACHETIME
                 cachetime = 0;
-#endif
                 return -1;
         }
         if (cachebytes > 0)
@@ -314,7 +337,7 @@ get_exec_output(struct extensible *ex)
     
     /* Child temporary output pipe with Inheritance on (sa.bInheritHandle is true) */    
     if (!CreatePipe(&hOutputReadTmp,&hOutputWrite,&sa,0)) {
-      DEBUGMSGTL(("util_funcs", "get_exec_pipes CreatePipe ChildOut: %lu\n",
+      DEBUGMSGTL(("util_funcs", "get_exec_pipes CreatePipe ChildOut: %d\n",
             GetLastError()));
       return -1;
     }
@@ -323,7 +346,7 @@ get_exec_output(struct extensible *ex)
      * its stdout handles. */
     if (!DuplicateHandle(GetCurrentProcess(),hOutputWrite, GetCurrentProcess(),
           &hErrorWrite,0, TRUE,DUPLICATE_SAME_ACCESS)) {
-      DEBUGMSGTL(("util_funcs", "get_exec_output DuplicateHandle: %lu\n", GetLastError()));
+      DEBUGMSGTL(("util_funcs", "get_exec_output DuplicateHandle: %d\n", GetLastError()));
       return -1;
     }
 
@@ -332,14 +355,14 @@ get_exec_output(struct extensible *ex)
      * be closed.  */
     if (!DuplicateHandle(GetCurrentProcess(), hOutputReadTmp, GetCurrentProcess(),
           &hOutputRead, 0, FALSE, DUPLICATE_SAME_ACCESS)) {
-      DEBUGMSGTL(("util_funcs", "get_exec_output DupliateHandle ChildOut: %lu\n", GetLastError()));
+      DEBUGMSGTL(("util_funcs", "get_exec_output DupliateHandle ChildOut: %d\n", GetLastError()));
       CloseHandle(hErrorWrite);
       return -1;
     }   
 
     /* Close the temporary output and input handles */
     if (!CloseHandle(hOutputReadTmp)) {
-      DEBUGMSGTL(("util_funcs", "get_exec_output CloseHandle (hOutputReadTmp): %lu\n", GetLastError()));
+      DEBUGMSGTL(("util_funcs", "get_exec_output CloseHandle (hOutputReadTmp): %d\n", GetLastError()));
       CloseHandle(hErrorWrite);
       CloseHandle(hOutputRead);
       return -1;
@@ -361,15 +384,15 @@ get_exec_output(struct extensible *ex)
      * pass_persist    .1.3.6.1.4.1.2021.255  c:/perl/bin/perl c:/temp/pass_persisttest
     */
     if (!CreateProcess(NULL, ex->command, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi)) {
-      DEBUGMSGTL(("util_funcs","get_exec_output CreateProcess:'%s' %lu\n",ex->command, GetLastError()));
+      DEBUGMSGTL(("util_funcs","get_exec_output CreateProcess:'%s' %d\n",ex->command, GetLastError()));
       CloseHandle(hErrorWrite);
       CloseHandle(hOutputRead);
       return -1;
     }
     
     /* Set global child process handle */
-    ex->pid = pi.hProcess;
-    ex->tid = pi.hThread;
+    ex->pid = (int)pi.hProcess;
+    ex->tid = (int)pi.hThread;
 
     /* Close pipe handles to make sure that no handles to the write end of the
      * output pipe are maintained in this process or else the pipe will
@@ -378,23 +401,20 @@ get_exec_output(struct extensible *ex)
      */
 
     if (!CloseHandle(hOutputWrite)){
-      DEBUGMSGTL(("util_funcs","get_exec_output CloseHandle hOutputWrite: %lu\n",
-                  GetLastError()));
+      DEBUGMSGTL(("util_funcs","get_exec_output CloseHandle hOutputWrite: %d\n",ex->command, GetLastError()));
       return -1;
     }
     if (!CloseHandle(hErrorWrite)) {
-      DEBUGMSGTL(("util_funcs","get_exec_output CloseHandle hErrorWrite: %lu\n",
-                  GetLastError()));
+      DEBUGMSGTL(("util_funcs","get_exec_output CloseHandle hErrorWrite: %d\n",ex->command, GetLastError()));
       return -1;
     }
     return fd;
 #endif                          /* WIN32 */
-#endif
-#endif /* !defined(USING_UTILITIES_EXECUTE_MODULE) */
     return -1;
+#endif
 }
 int
-get_exec_pipes(char *cmd, int *fdIn, int *fdOut, netsnmp_pid_t *pid)
+get_exec_pipes(char *cmd, int *fdIn, int *fdOut, int *pid)
 {
 /* 	Alexander Prömel, alexander at proemel.de 08/24/2006
 	The following code, is tested on picotux rev. 1.01.
@@ -627,7 +647,7 @@ get_exec_pipes(char *cmd, int *fdIn, int *fdOut, netsnmp_pid_t *pid)
     DEBUGMSGTL(("util_funcs","child dwProcessId (task manager): %d\n",(int)pi.dwProcessId));
 
     /* Set global child process handle */
-    *pid = pi.hProcess;
+    *pid = (int)pi.hProcess;
 
     /* Cleanup */
     if (!CloseHandle(pi.hThread))
@@ -656,7 +676,6 @@ get_exec_pipes(char *cmd, int *fdIn, int *fdOut, netsnmp_pid_t *pid)
     return 0;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_CLEAR_CACHE
 int
 clear_cache(int action,
             u_char * var_val,
@@ -679,7 +698,59 @@ clear_cache(int action,
     }
     return SNMP_ERR_NOERROR;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CLEAR_CACHE */
+
+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. 
+     */ 
+#if 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)
@@ -696,12 +767,176 @@ print_mib_oid(oid name[], size_t len)
 }
 
 void
-sprint_mib_oid(char *buf, const oid *name, size_t len)
+sprint_mib_oid(char *buf, oid name[], size_t len)
 {
     int             i;
+    for (i = 0; i < (int) len; i++) {
+        sprintf(buf, ".%d", (int) name[i]);
+        while (*buf != 0)
+            buf++;
+    }
+}
+
+/*******************************************************************-o-******
+ * header_simple_table
+ *
+ * Parameters:
+ *	  *vp		 Variable data.
+ *	  *name		 Fully instantiated OID name.
+ *	  *length	 Length of name.
+ *	   exact	 TRUE if an exact match is desired.
+ *	  *var_len	 Hook for size of returned data type.
+ *	(**write_method) Hook for write method (UNUSED).
+ *	   max
+ *      
+ * Returns:
+ *	0	If name matches vp->name (accounting for 'exact') and is
+ *			not greater in length than 'max'.
+ *	1	Otherwise.
+ *
+ *
+ * Compare 'name' to vp->name for the best match or an exact match (if
+ *	requested).  Also check that 'name' is not longer than 'max' if
+ *	max is greater-than/equal 0.
+ * Store a successful match in 'name', and increment the OID instance if
+ *	the match was not exact.  
+ *
+ * 'name' and 'length' are undefined upon failure.
+ *
+ */
+int
+header_simple_table(struct variable *vp, oid * name, size_t * length,
+                    int exact, size_t * var_len,
+                    WriteMethod ** write_method, int max)
+{
+    int             i, rtest;   /* Set to:      -1      If name < vp->name,
+                                 *              1       If name > vp->name,
+                                 *              0       Otherwise.
+                                 */
+    oid             newname[MAX_OID_LEN];
+
+    for (i = 0, rtest = 0;
+         i < (int) vp->namelen && i < (int) (*length) && !rtest; i++) {
+        if (name[i] != vp->name[i]) {
+            if (name[i] < vp->name[i])
+                rtest = -1;
+            else
+                rtest = 1;
+        }
+    }
+    if (rtest > 0 ||
+        (exact == 1
+         && (rtest || (int) *length != (int) (vp->namelen + 1)))) {
+        if (var_len)
+            *var_len = 0;
+        return MATCH_FAILED;
+    }
+
+    memset(newname, 0, sizeof(newname));
+
+    if (((int) *length) <= (int) vp->namelen || rtest == -1) {
+        memmove(newname, vp->name, (int) vp->namelen * sizeof(oid));
+        newname[vp->namelen] = 1;
+        *length = vp->namelen + 1;
+    } 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) {
+            newname[*length - 1] = name[*length - 1] + 1;
+        } else {
+            /*
+             * Careful not to overflow...  
+             */
+            newname[*length - 1] = name[*length - 1];
+        }
+    } else {
+        *length = vp->namelen + 1;
+        memmove(newname, name, (*length) * sizeof(oid));
+        if (!exact) {
+            if (name[*length - 1] < ULONG_MAX) {
+                newname[*length - 1] = name[*length - 1] + 1;
+            } else {
+                /*
+                 * Careful not to overflow...  
+                 */
+                newname[*length - 1] = name[*length - 1];
+            }
+        } else {
+            newname[*length - 1] = name[*length - 1];
+        }
+    }
+    if ((max >= 0 && ((int)newname[*length - 1] > max)) ||
+               ( 0 == newname[*length - 1] )) {
+        if (var_len)
+            *var_len = 0;
+        return MATCH_FAILED;
+    }
+
+    memmove(name, newname, (*length) * sizeof(oid));
+    if (write_method)
+        *write_method = 0;
+    if (var_len)
+        *var_len = sizeof(long);        /* default */
+    return (MATCH_SUCCEEDED);
+}
+
+/*
+ * header_generic(...
+ * 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
+ * 
+ */
 
-    for (i = 0; i < (int) len; i++)
-        buf += sprintf(buf, ".%" NETSNMP_PRIo "u", name[i]);
+/*******************************************************************-o-******
+ * generic_header
+ *
+ * Parameters:
+ *	  *vp	   (I)     Pointer to variable entry that points here.
+ *	  *name	   (I/O)   Input name requested, output name found.
+ *	  *length  (I/O)   Length of input and output oid's.
+ *	   exact   (I)     TRUE if an exact match was requested.
+ *	  *var_len (O)     Length of variable or 0 if function returned.
+ *	(**write_method)   Hook to name a write method (UNUSED).
+ *      
+ * Returns:
+ *	MATCH_SUCCEEDED	If vp->name matches name (accounting for exact bit).
+ *	MATCH_FAILED	Otherwise,
+ *
+ *
+ * Check whether variable (vp) matches name.
+ */
+int
+header_generic(struct variable *vp,
+               oid * name,
+               size_t * length,
+               int exact, size_t * var_len, WriteMethod ** write_method)
+{
+    oid             newname[MAX_OID_LEN];
+    int             result;
+
+    DEBUGMSGTL(("util_funcs", "header_generic: "));
+    DEBUGMSGOID(("util_funcs", name, *length));
+    DEBUGMSG(("util_funcs", " exact=%d\n", exact));
+
+    memcpy((char *) newname, (char *) vp->name,
+           (int) vp->namelen * sizeof(oid));
+    newname[vp->namelen] = 0;
+    result = snmp_oid_compare(name, *length, newname, vp->namelen + 1);
+    DEBUGMSGTL(("util_funcs", "  result: %d\n", result));
+    if ((exact && (result != 0)) || (!exact && (result >= 0)))
+        return (MATCH_FAILED);
+    memcpy((char *) name, (char *) newname,
+           ((int) vp->namelen + 1) * sizeof(oid));
+    *length = vp->namelen + 1;
+
+    *write_method = 0;
+    *var_len = sizeof(long);    /* default to 'long' results */
+    return (MATCH_SUCCEEDED);
 }
 
 /*
@@ -720,7 +955,6 @@ checkmib(struct variable *vp, oid * name, size_t * length,
                                  write_method, max));
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_FIND_FIELD
 char           *
 find_field(char *ptr, int field)
 {
@@ -736,15 +970,15 @@ find_field(char *ptr, int field)
         /*
          * rewind a field length 
          */
-        while (*ptr != 0 && isspace((unsigned char)(*ptr)) && init <= ptr)
+        while (*ptr != 0 && isspace(*ptr) && init <= ptr)
             ptr--;
-        while (*ptr != 0 && !isspace((unsigned char)(*ptr)) && init <= ptr)
+        while (*ptr != 0 && !isspace(*ptr) && init <= ptr)
             ptr--;
-        if (isspace((unsigned char)(*ptr)))
+        if (isspace(*ptr))
             ptr++;              /* past space */
         if (ptr < init)
             ptr = init;
-        if (!isspace((unsigned char)(*ptr)) && *ptr != 0)
+        if (!isspace(*ptr) && *ptr != 0)
             return (ptr);
     } else {
         if ((ptr = skip_white(ptr)) == NULL)
@@ -761,9 +995,7 @@ find_field(char *ptr, int field)
     }
     return (NULL);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_FIND_FIELD */
 
-#ifndef NETSNMP_FEATURE_REMOVE_PARSE_MIBOID
 int
 parse_miboid(const char *buf, oid * oidout)
 {
@@ -773,12 +1005,9 @@ parse_miboid(const char *buf, oid * oidout)
         return 0;
     if (*buf == '.')
         buf++;
-    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((unsigned char)(*buf++)));
+    for (i = 0; isdigit(*buf); i++) {
+        oidout[i] = atoi(buf);
+        while (isdigit(*buf++));
         if (*buf == '.')
             buf++;
     }
@@ -787,9 +1016,7 @@ parse_miboid(const char *buf, oid * oidout)
      */
     return i;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_PARSE_MIBOID */
 
-#ifndef NETSNMP_FEATURE_REMOVE_STRING_APPEND_INT
 void
 string_append_int(char *s, int val)
 {
@@ -804,16 +1031,13 @@ string_append_int(char *s, int val)
     strcpy(s, textVal);
     return;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_STRING_APPEND_INT */
-
-#ifndef NETSNMP_FEATURE_REMOVE_INTERNAL_MIB_TABLE
 
 struct internal_mib_table {
     int             max_size;   /* Size of the current data table */
     int             next_index; /* Index of the next free entry */
     int             current_index;      /* Index of the 'current' entry */
     int             cache_timeout;
-    marker_t        cache_markerM;
+    marker_t        cache_marker;
     RELOAD         *reload;     /* Routine to read in the data */
     COMPARE        *compare;    /* Routine to compare two entries */
     int             data_size;  /* Size of an individual entry */
@@ -834,7 +1058,7 @@ Initialise_Table(int size, int timeout, RELOAD *reload, COMPARE *compare)
     t->next_index = 1;          /* Don't use index 0 */
     t->current_index = 1;
     t->cache_timeout = timeout;
-    t->cache_markerM = NULL;
+    t->cache_marker = NULL;
     t->reload = reload;
     t->compare = compare;
     t->data_size = size;
@@ -856,9 +1080,8 @@ check_and_reload_table(struct internal_mib_table *table)
      * If the saved data is fairly recent,
      *    we don't need to reload it
      */
-    if (table->cache_markerM &&
-        !(netsnmp_ready_monotonic(table->cache_markerM,
-                                  table->cache_timeout * 1000)))
+    if (table->cache_marker &&
+        !(atime_ready(table->cache_marker, table->cache_timeout * 1000)))
         return 1;
 
 
@@ -868,12 +1091,15 @@ check_and_reload_table(struct internal_mib_table *table)
      * N.B:  Update the cache marker *before* calling
      *   this routine, to avoid problems with recursion
      */
-    netsnmp_set_monotonic_marker(&table->cache_markerM);
+    if (!table->cache_marker)
+        table->cache_marker = atime_newMarker();
+    else
+        atime_setMarker(table->cache_marker);
 
     table->next_index = 1;
     if (table->reload((mib_table_t) table) < 0) {
-        free(table->cache_markerM);
-        table->cache_markerM = NULL;
+        free(table->cache_marker);
+        table->cache_marker = NULL;
         return 0;
     }
     table->current_index = 1;
@@ -983,147 +1209,89 @@ Retrieve_Table_Data(mib_table_t t, int *max_idx)
     *max_idx = table->next_index - 1;
     return table->data;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_INTERNAL_MIB_TABLE */
 
-#if defined(HAVE_LINUX_RTNETLINK_H)
+#ifdef linux
+# define PROC_PATH          "/proc"
+# define FILE_DISP          "fd/"
+# define SOCKET_TYPE_1      "socket:["
+# define SOCKET_TYPE_2      "[0000]:"
 
-#ifndef NETSNMP_FEATURE_REMOVE_CREATE_PREFIX_INFO
-prefix_cbx *net_snmp_create_prefix_info(unsigned long OnLinkFlag,
-                                        unsigned long AutonomousFlag,
-                                        char *in6ptr)
+unsigned long long
+extract_inode(char *format)
 {
-   prefix_cbx *node = SNMP_MALLOC_TYPEDEF(prefix_cbx);
-   if(!in6ptr) {
-      free(node);
-      return NULL;
-   }
-   if(!node) {
-      free(node);
-      return NULL;
-   }
-   node->next_info = NULL;
-   node->ipAddressPrefixOnLinkFlag = OnLinkFlag;
-   node->ipAddressPrefixAutonomousFlag = AutonomousFlag;
-   memcpy(node->in6p, in6ptr, sizeof(node->in6p));
-
-   return node;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_CREATE_PREFIX_INFO */
+    unsigned long long ret = 0;
 
-#ifndef NETSNMP_FEATURE_REMOVE_FIND_PREFIX_INFO
-int net_snmp_find_prefix_info(prefix_cbx **head,
-                              char *address,
-                              prefix_cbx *node_to_find)
-{
-    int iret;
-    memset(node_to_find, 0, sizeof(prefix_cbx));
-    if(!*head)
-       return -1;
-    memcpy(node_to_find->in6p, address, sizeof(node_to_find->in6p));
-
-    iret = net_snmp_search_update_prefix_info(head, node_to_find, 1);
-    if(iret < 0) {
-       DEBUGMSGTL(("util_funcs:prefix", "Unable to search the list\n"));
-       return -1;
-    } else if (!iret) {
-       DEBUGMSGTL(("util_funcs:prefix", "Could not find prefix info\n"));
-       return -1;
-    } else
-       return 0;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_FIND_PREFIX_INFO */
+    if (!strncmp(format, SOCKET_TYPE_1, 8)) {
+        ret = strtoull(format + 8, NULL, 0);
+    } else if (!strncmp(format, SOCKET_TYPE_2, 7)) {
+        ret = strtoull(format + 7, NULL, 0);
+    }
 
-#ifndef NETSNMP_FEATURE_REMOVE_UPDATE_PREFIX_INFO
-int net_snmp_update_prefix_info(prefix_cbx **head,
-                                prefix_cbx *node_to_update)
-{
-    int iret;
-    iret = net_snmp_search_update_prefix_info(head, node_to_update, 0);
-    if(iret < 0) {
-       DEBUGMSGTL(("util_funcs:prefix", "Unable to update prefix info\n"));
-       return -1;
-    } else if (!iret) {
-       DEBUGMSGTL(("util_funcs:prefix", "Unable to find the node to update\n"));
-       return -1;
-    } else
-       return 0;
+    return ret;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UPDATE_PREFIX_INFO */
 
-int net_snmp_search_update_prefix_info(prefix_cbx **head,
-                                       prefix_cbx *node_to_use,
-                                       int functionality)
+unsigned int
+get_pid_from_inode(unsigned long long inode)
 {
+    DIR            *procdirs = NULL, *piddirs = NULL;
+    char           *name = NULL;
+    char            path_name[PATH_MAX + 1];
+    char            socket_lnk[NAME_MAX + 1];
+    int             filelen = 0, readlen = 0, iflag = 0;
+    struct dirent  *procinfo, *pidinfo;
+    unsigned int    pid;
+    unsigned long long temp_inode;
+
+    if (!(procdirs = opendir(PROC_PATH))) {
+        snmp_log(LOG_ERR, "snmpd: cannot open /proc\n");       
+        return 0;
+    }
 
-   /* We define functionality based on need                                                         *
-    * 0 - Need to do a search and update. We have to provide the node_to_use structure filled fully *
-    * 1 - Need to do only search. Provide the node_to_use with in6p value filled                    */
-
-    prefix_cbx *temp_node;
-    netsnmp_assert(NULL != head);
-    netsnmp_assert(NULL != node_to_use);
+    while ((procinfo = readdir(procdirs)) != NULL) {
+        name = procinfo->d_name;
+        for (; *name; name++) {
+            if (!isdigit(*name))
+                break;
+        }
+        if(*name)
+            continue;
 
-    if(functionality > 1)
-       return -1;
-    if(!node_to_use)
-       return -1;
+        memset(path_name, '\0', PATH_MAX + 1);
+        filelen = snprintf(path_name, PATH_MAX,
+                           PROC_PATH "/%s/" FILE_DISP, procinfo->d_name);
+        if (filelen <= 0 || PATH_MAX < filelen)
+            continue;
 
+        pid = strtoul(procinfo->d_name, NULL, 0);
 
-    if (!functionality) {
-       if (!*head) {
-           *head = node_to_use;
-           return 1;
-       }
+        if (!(piddirs = opendir(path_name)))
+            continue;
 
-       for (temp_node = *head; temp_node->next_info != NULL ; temp_node = temp_node->next_info) {
-            if (0 == strcmp(temp_node->in6p, node_to_use->in6p)) {
-                temp_node->ipAddressPrefixOnLinkFlag = node_to_use->ipAddressPrefixOnLinkFlag;
-                temp_node->ipAddressPrefixAutonomousFlag = node_to_use->ipAddressPrefixAutonomousFlag;
-                return 2;
-            }
-       }
-       temp_node->next_info = node_to_use;
-       return 1;
-    } else {
-         for (temp_node = *head; temp_node != NULL ; temp_node = temp_node->next_info) {
-              if (0 == strcmp(temp_node->in6p, node_to_use->in6p)) {
-                /*need yo put sem here as i read here */
-                node_to_use->ipAddressPrefixOnLinkFlag = temp_node->ipAddressPrefixOnLinkFlag;
-                node_to_use->ipAddressPrefixAutonomousFlag = temp_node->ipAddressPrefixAutonomousFlag;
-                return 1;
-              }
-         }
-         return 0;
-    }
-}
+        while ((pidinfo = readdir(piddirs)) != NULL) {
+            if (filelen + strlen(pidinfo->d_name) > PATH_MAX)
+                continue;
 
-#ifndef NETSNMP_FEATURE_REMOVE_DELETE_PREFIX_INFO
-int net_snmp_delete_prefix_info(prefix_cbx **head,
-                                char *address)
-{
-
-    prefix_cbx *temp_node,*prev_node;
-    if(!address)
-       return -1;
-    if(!head)
-       return -1;
+            strcpy(path_name + filelen, pidinfo->d_name);
 
-    for (temp_node = *head, prev_node = NULL; temp_node;
-         prev_node = temp_node, temp_node = temp_node->next_info) {
+            memset(socket_lnk, '\0', NAME_MAX + 1);
+            readlen = readlink(path_name, socket_lnk, NAME_MAX);
+            if (readlen < 0)
+                continue;
+            socket_lnk[readlen] = '\0';
 
-         if (temp_node->in6p && strcmp(temp_node->in6p, address) == 0) {
-            if (prev_node)
-                prev_node->next_info = temp_node->next_info;
-            else
-                *head = temp_node->next_info;
-            free(temp_node);
-            return 1;
+            temp_inode = extract_inode(socket_lnk);
+            if (inode == temp_inode) {
+                iflag = 1;
+                break;
+            }
         }
-
+        closedir(piddirs);
+        if (iflag == 1)
+            break;
     }
-    return 0;
+    if (procdirs)
+        closedir(procdirs);
+    return pid;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_DELETE_PREFIX_INFO */
 
-#endif /* HAVE_LINUX_RTNETLINK_H */
-         
+#endif  /* #ifdef linux */
diff --git a/agent/mibgroup/util_funcs.h b/agent/mibgroup/util_funcs.h
index 7f59780..4a0b99e 100644
--- a/agent/mibgroup/util_funcs.h
+++ b/agent/mibgroup/util_funcs.h
@@ -4,46 +4,28 @@
 #ifndef _MIBGROUP_UTIL_FUNCS_H
 #define _MIBGROUP_UTIL_FUNCS_H
 
-config_require(util_funcs/header_generic)
-config_require(util_funcs/header_simple_table)
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#include "util_funcs/header_generic.h"
-#include "util_funcs/header_simple_table.h"
-
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 #include "struct.h"
 
-typedef struct prefix_info
-{
-   struct prefix_info *next_info;
-   unsigned long ipAddressPrefixOnLinkFlag;
-   unsigned long ipAddressPrefixAutonomousFlag;
-   char in6p[40];
-}prefix_cbx;
-#ifndef WIN32
-typedef struct 
-{
- 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 *);
-#if defined(WIN32) && !defined(cygwin)
-int             get_exec_pipes(char *cmd, int *fdIn, int *fdOut, HANDLE *pid);
-#else
-int             get_exec_pipes(char *cmd, int *fdIn, int *fdOut, pid_t *pid);
-#endif
+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);
+void            sprint_mib_oid(char *, oid *, size_t);
+int             header_simple_table(struct variable *, oid *, size_t *,
+                                    int, size_t *,
+                                    WriteMethod ** write_method, int);
+int             header_generic(struct variable *, oid *, size_t *, int,
+                               size_t *, WriteMethod **);
 int             checkmib(struct variable *, oid *, size_t *, int, size_t *,
                          WriteMethod ** write_method, int);
 char           *find_field(char *, int);
@@ -52,35 +34,15 @@ void            string_append_int(char *, int);
 void            wait_on_exec(struct extensible *);
 const char     *make_tempfile(void);
 
-prefix_cbx *net_snmp_create_prefix_info(unsigned long OnLinkFlag,
-                                        unsigned long AutonomousFlag,
-                                        char *in6ptr);
-#ifndef WIN32
-int net_snmp_find_prefix_info(prefix_cbx **head,
-                              char *address,
-                              prefix_cbx *node_to_find);
-int net_snmp_update_prefix_info(prefix_cbx **head,
-                                prefix_cbx *node_to_update);
-int net_snmp_search_update_prefix_info(prefix_cbx **head,
-                                       prefix_cbx *node_to_use,
-                                       int functionality);
-int net_snmp_delete_prefix_info(prefix_cbx **head,
-                                char *address);
+#ifdef linux
+unsigned int    get_pid_from_inode(unsigned long long);
 #endif
-#define NIP6(addr) \
-        ntohs((addr).s6_addr16[0]), \
-        ntohs((addr).s6_addr16[1]), \
-        ntohs((addr).s6_addr16[2]), \
-        ntohs((addr).s6_addr16[3]), \
-        ntohs((addr).s6_addr16[4]), \
-        ntohs((addr).s6_addr16[5]), \
-        ntohs((addr).s6_addr16[6]), \
-        ntohs((addr).s6_addr16[7])
 
 #define     satosin(x)      ((struct sockaddr_in *) &(x))
 #define     SOCKADDR(x)     (satosin(x)->sin_addr.s_addr)
-
-#include "util_funcs/MIB_STATS_CACHE_TIMEOUT.h"
+#ifndef MIB_STATS_CACHE_TIMEOUT
+#define MIB_STATS_CACHE_TIMEOUT 5
+#endif
 
 typedef void   *mib_table_t;
 typedef int     (RELOAD) (mib_table_t);
diff --git a/agent/mibgroup/util_funcs/Exit.c b/agent/mibgroup/util_funcs/Exit.c
deleted file mode 100644
index c848fd8..0000000
--- a/agent/mibgroup/util_funcs/Exit.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 54f0cd5..0000000
--- a/agent/mibgroup/util_funcs/Exit.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- *  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/MIB_STATS_CACHE_TIMEOUT.h b/agent/mibgroup/util_funcs/MIB_STATS_CACHE_TIMEOUT.h
deleted file mode 100644
index 848bacd..0000000
--- a/agent/mibgroup/util_funcs/MIB_STATS_CACHE_TIMEOUT.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * util_funcs/MIB_STATS_CACHE_TIMEOUT.h:  utilitiy functions for extensible
- * groups.
- */
-#ifndef _MIBGROUP_UTIL_FUNCS_MIB_STATS_CACHE_TIMEOUT_H
-#define _MIBGROUP_UTIL_FUNCS_MIB_STATS_CACHE_TIMEOUT_H
-
-#ifndef MIB_STATS_CACHE_TIMEOUT
-#define MIB_STATS_CACHE_TIMEOUT 5
-#endif
-
-#endif /* _MIBGROUP_UTIL_FUNCS_MIB_STATS_CACHE_TIMEOUT_H */
diff --git a/agent/mibgroup/util_funcs/get_pid_from_inode.c b/agent/mibgroup/util_funcs/get_pid_from_inode.c
deleted file mode 100644
index 8e157ae..0000000
--- a/agent/mibgroup/util_funcs/get_pid_from_inode.c
+++ /dev/null
@@ -1,186 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-
-#include "get_pid_from_inode.h"
-
-#include <net-snmp/output_api.h>
-
-#include <ctype.h>
-#include <stdio.h>
-#if HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if HAVE_STRING_H
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-# define PROC_PATH          "/proc"
-# define SOCKET_TYPE_1      "socket:["
-# define SOCKET_TYPE_2      "[0000]:"
-
-/* Definition of a simple open addressing hash table.*/
-/* When inode == 0 then the entry is empty.*/
-typedef struct {
-    ino64_t inode;
-    pid_t   pid;
-} inode_pid_ent_t;
-
-#define INODE_PID_TABLE_MAX_COLLISIONS 1000
-#define INODE_PID_TABLE_LENGTH 20000
-#define INODE_PID_TABLE_SIZE (INODE_PID_TABLE_LENGTH * sizeof (inode_pid_ent_t))
-static inode_pid_ent_t  inode_pid_table[INODE_PID_TABLE_LENGTH];
-
-static uint32_t
-_hash(uint64_t key)
-{
-    key = (~key) + (key << 18);
-    key = key ^ (key >> 31);
-    key = key * 21;
-    key = key ^ (key >> 11);
-    key = key + (key << 6);
-    key = key ^ (key >> 22);
-    return key;
-}
-
-static void
-_clear(void)
-{
-    /* Clear the inode/pid hash table.*/
-    memset(inode_pid_table, 0, INODE_PID_TABLE_SIZE);
-}
-
-static void
-_set(ino64_t inode, pid_t pid)
-{
-    uint32_t        hash = _hash(inode);
-    uint32_t        i;
-    inode_pid_ent_t *entry;
-
-    /* We will try for a maximum number of collisions.*/
-    for (i = 0; i < INODE_PID_TABLE_MAX_COLLISIONS; i++) {
-        entry = &inode_pid_table[(hash + i) % INODE_PID_TABLE_LENGTH];
-
-        /* Check if this entry is empty, or the actual inode we were looking for.*/
-        /* The second part should never happen, but it is here for completeness.*/
-        if (entry->inode == 0 || entry->inode == inode) {
-            entry->inode = inode;
-            entry->pid = pid;
-            return;
-        }
-    }
-
-    /* We will silently fail to insert the inode if we get too many collisions.*/
-    /* the _get function will return a zero pid.*/
-}
-
-static pid_t _get(ino64_t inode)
-{
-    uint32_t        hash = _hash(inode);
-    uint32_t        i;
-    inode_pid_ent_t *entry;
-
-    /* We will try for a maximum number of collisions.*/
-    for (i = 0; i < INODE_PID_TABLE_MAX_COLLISIONS; i++) {
-        entry = &inode_pid_table[(hash + i) % INODE_PID_TABLE_LENGTH];
-
-        /* Check if this entry is empty, or the actual inode we were looking for.*/
-        /* If the entry is empty it means the inode is not in the table and we*/
-        /* should return 0, the entry will also have a zero pid.*/
-        if (entry->inode == 0 || entry->inode == inode) {
-            return entry->pid;
-        }
-    }
-
-    /* We could not find the pid.*/
-    return 0;
-}
-
-void
-netsnmp_get_pid_from_inode_init(void)
-{
-    DIR            *procdirs = NULL, *piddirs = NULL;
-    char            path_name[PATH_MAX + 1];
-    char            socket_lnk[NAME_MAX + 1];
-    int             filelen = 0, readlen = 0;
-    struct dirent  *procinfo, *pidinfo;
-    pid_t           pid = 0;
-    ino64_t         temp_inode;
-
-    _clear();
-
-    /* walk over all directories in /proc*/
-    if (!(procdirs = opendir(PROC_PATH))) {
-        NETSNMP_LOGONCE((LOG_ERR, "snmpd: cannot open /proc\n"));
-        return;
-    }
-
-    while ((procinfo = readdir(procdirs)) != NULL) {
-        const char* name = procinfo->d_name;
-
-        /* A pid directory only contains digits, check for those.*/
-        for (; *name; name++) {
-            if (!isdigit(*name))
-                break;
-        }
-        if(*name)
-            continue;
-
-        /* Create the /proc/<pid>/fd/ path name.*/
-        memset(path_name, '\0', PATH_MAX + 1);
-        filelen = snprintf(path_name, PATH_MAX,
-                           PROC_PATH "/%s/fd/", procinfo->d_name);
-        if (filelen <= 0 || PATH_MAX < filelen)
-            continue;
-
-        /* walk over all the files in /proc/<pid>/fd/*/
-        if (!(piddirs = opendir(path_name)))
-        continue;
-
-        while ((pidinfo = readdir(piddirs)) != NULL) {
-            if (filelen + strlen(pidinfo->d_name) > PATH_MAX)
-                continue;
-
-            strcpy(path_name + filelen, pidinfo->d_name);
-
-            /* The file discriptor is a symbolic link to a socket or a file.*/
-            /* Thus read the symbolic link.*/
-            memset(socket_lnk, '\0', NAME_MAX + 1);
-            readlen = readlink(path_name, socket_lnk, NAME_MAX);
-            if (readlen < 0)
-                continue;
-
-            socket_lnk[readlen] = '\0';
-
-            /* Check if to see if the file descriptor is a socket by comparing*/
-            /* the start to a string. Also extract the inode number from this*/
-            /* symbolic link.*/
-            if (!strncmp(socket_lnk, SOCKET_TYPE_1, 8)) {
-                temp_inode = strtoull(socket_lnk + 8, NULL, 0);
-            } else if (!strncmp(socket_lnk, SOCKET_TYPE_2, 7)) {
-                temp_inode = strtoull(socket_lnk + 7, NULL, 0);
-            } else {
-                temp_inode = 0;
-            }
-
-            /* Add the inode/pid combination to our hash table.*/
-            if (temp_inode != 0) {
-                pid = strtoul(procinfo->d_name, NULL, 0);
-                _set(temp_inode, pid);
-            }
-        }
-        closedir(piddirs);
-    }
-    if (procdirs)
-        closedir(procdirs);
-}
-
-pid_t
-netsnmp_get_pid_from_inode(ino64_t inode)
-{
-    return _get(inode);
-}
-
diff --git a/agent/mibgroup/util_funcs/get_pid_from_inode.h b/agent/mibgroup/util_funcs/get_pid_from_inode.h
deleted file mode 100644
index 7c58760..0000000
--- a/agent/mibgroup/util_funcs/get_pid_from_inode.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * util_funcs/get_pid_from_inode.h:  utilitiy function to retrieve the pid
- * that controls a given inode on linux.
- */
-#ifndef NETSNMP_MIBGROUP_UTIL_FUNCS_GET_PID_FROM_INODE_H
-#define NETSNMP_MIBGROUP_UTIL_FUNCS_HEADER_SIMPLE_TABLE_H
-
-#ifndef linux
-config_error(get_pid_from_inode is only suppored on linux)
-#endif
-
-#define _LARGEFILE64_SOURCE 1
-
-#if HAVE_DIRENT_H
-#include <dirent.h>
-#else
-# define dirent direct
-# 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
-
-#include <sys/types.h>
-
-void netsnmp_get_pid_from_inode_init(void);
-pid_t netsnmp_get_pid_from_inode(ino64_t);
-
-#endif /* NETSNMP_MIBGROUP_UTIL_FUNCS_HEADER_SIMPLE_TABLE_H */
diff --git a/agent/mibgroup/util_funcs/header_generic.c b/agent/mibgroup/util_funcs/header_generic.c
deleted file mode 100644
index 9154be9..0000000
--- a/agent/mibgroup/util_funcs/header_generic.c
+++ /dev/null
@@ -1,64 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include "header_generic.h"
-
-/*
- * header_generic(...
- * 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
- *
- */
-
-/*******************************************************************-o-******
- * generic_header
- *
- * Parameters:
- *	  *vp	   (I)     Pointer to variable entry that points here.
- *	  *name	   (I/O)   Input name requested, output name found.
- *	  *length  (I/O)   Length of input and output oid's.
- *	   exact   (I)     TRUE if an exact match was requested.
- *	  *var_len (O)     Length of variable or 0 if function returned.
- *	(**write_method)   Hook to name a write method (UNUSED).
- *
- * Returns:
- *	MATCH_SUCCEEDED	If vp->name matches name (accounting for exact bit).
- *	MATCH_FAILED	Otherwise,
- *
- *
- * Check whether variable (vp) matches name.
- */
-int
-header_generic(struct variable *vp,
-               oid * name,
-               size_t * length,
-               int exact, size_t * var_len, WriteMethod ** write_method)
-{
-    oid             newname[MAX_OID_LEN];
-    int             result;
-
-    DEBUGMSGTL(("util_funcs", "header_generic: "));
-    DEBUGMSGOID(("util_funcs", name, *length));
-    DEBUGMSG(("util_funcs", " exact=%d\n", exact));
-
-    memcpy((char *) newname, (char *) vp->name,
-           (int) vp->namelen * sizeof(oid));
-    newname[vp->namelen] = 0;
-    result = snmp_oid_compare(name, *length, newname, vp->namelen + 1);
-    DEBUGMSGTL(("util_funcs", "  result: %d\n", result));
-    if ((exact && (result != 0)) || (!exact && (result >= 0)))
-        return (MATCH_FAILED);
-    memcpy((char *) name, (char *) newname,
-           ((int) vp->namelen + 1) * sizeof(oid));
-    *length = vp->namelen + 1;
-
-    *write_method = (WriteMethod*)0;
-    *var_len = sizeof(long);    /* default to 'long' results */
-    return (MATCH_SUCCEEDED);
-}
diff --git a/agent/mibgroup/util_funcs/header_generic.h b/agent/mibgroup/util_funcs/header_generic.h
deleted file mode 100644
index 9861040..0000000
--- a/agent/mibgroup/util_funcs/header_generic.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- *  util_funcs/header_generic.h:  utilitiy functions for extensible groups.
- */
-#ifndef _MIBGROUP_UTIL_FUNCS_HEADER_GENERIC_H
-#define _MIBGROUP_UTIL_FUNCS_HEADER_GENERIC_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int header_generic(struct variable *, oid *, size_t *, int, size_t *,
-                   WriteMethod **);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _MIBGROUP_UTIL_FUNCS_HEADER_GENERIC_H */
diff --git a/agent/mibgroup/util_funcs/header_simple_table.c b/agent/mibgroup/util_funcs/header_simple_table.c
deleted file mode 100644
index 81fe160..0000000
--- a/agent/mibgroup/util_funcs/header_simple_table.c
+++ /dev/null
@@ -1,110 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include "header_simple_table.h"
-
-#include <limits.h>
-
-/*******************************************************************-o-******
- * header_simple_table
- *
- * Parameters:
- *	  *vp		 Variable data.
- *	  *name		 Fully instantiated OID name.
- *	  *length	 Length of name.
- *	   exact	 TRUE if an exact match is desired.
- *	  *var_len	 Hook for size of returned data type.
- *	(**write_method) Hook for write method (UNUSED).
- *	   max
- *
- * Returns:
- *	0	If name matches vp->name (accounting for 'exact') and is
- *			not greater in length than 'max'.
- *	1	Otherwise.
- *
- *
- * Compare 'name' to vp->name for the best match or an exact match (if
- *	requested).  Also check that 'name' is not longer than 'max' if
- *	max is greater-than/equal 0.
- * Store a successful match in 'name', and increment the OID instance if
- *	the match was not exact.
- *
- * 'name' and 'length' are undefined upon failure.
- *
- */
-int
-header_simple_table(struct variable *vp, oid * name, size_t * length,
-                    int exact, size_t * var_len,
-                    WriteMethod ** write_method, int max)
-{
-    int             i, rtest;   /* Set to:      -1      If name < vp->name,
-                                 *              1       If name > vp->name,
-                                 *              0       Otherwise.
-                                 */
-    oid             newname[MAX_OID_LEN];
-
-    for (i = 0, rtest = 0;
-         i < (int) vp->namelen && i < (int) (*length) && !rtest; i++) {
-        if (name[i] != vp->name[i]) {
-            if (name[i] < vp->name[i])
-                rtest = -1;
-            else
-                rtest = 1;
-        }
-    }
-    if (rtest > 0 ||
-        (exact == 1
-         && (rtest || (int) *length != (int) (vp->namelen + 1)))) {
-        if (var_len)
-            *var_len = 0;
-        return MATCH_FAILED;
-    }
-
-    memset(newname, 0, sizeof(newname));
-
-    if (((int) *length) <= (int) vp->namelen || rtest == -1) {
-        memmove(newname, vp->name, (int) vp->namelen * sizeof(oid));
-        newname[vp->namelen] = 1;
-        *length = vp->namelen + 1;
-    } 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] < MAX_SUBID) {
-            newname[*length - 1] = name[*length - 1] + 1;
-        } else {
-            /*
-             * Careful not to overflow...
-             */
-            newname[*length - 1] = name[*length - 1];
-        }
-    } else {
-        *length = vp->namelen + 1;
-        memmove(newname, name, (*length) * sizeof(oid));
-        if (!exact) {
-            if (name[*length - 1] < MAX_SUBID) {
-                newname[*length - 1] = name[*length - 1] + 1;
-            } else {
-                /*
-                 * Careful not to overflow...
-                 */
-                newname[*length - 1] = name[*length - 1];
-            }
-        } else {
-            newname[*length - 1] = name[*length - 1];
-        }
-    }
-    if ((max >= 0 && ((int)newname[*length - 1] > max)) ||
-               ( 0 == newname[*length - 1] )) {
-        if (var_len)
-            *var_len = 0;
-        return MATCH_FAILED;
-    }
-
-    memmove(name, newname, (*length) * sizeof(oid));
-    if (write_method)
-        *write_method = (WriteMethod*)0;
-    if (var_len)
-        *var_len = sizeof(long);        /* default */
-    return (MATCH_SUCCEEDED);
-}
diff --git a/agent/mibgroup/util_funcs/header_simple_table.h b/agent/mibgroup/util_funcs/header_simple_table.h
deleted file mode 100644
index 2a95d69..0000000
--- a/agent/mibgroup/util_funcs/header_simple_table.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * util_funcs/header_simple_table.h:  utilitiy functions for extensible
- * groups.
- */
-#ifndef _MIBGROUP_UTIL_FUNCS_HEADER_SIMPLE_TABLE_H
-#define _MIBGROUP_UTIL_FUNCS_HEADER_SIMPLE_TABLE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int header_simple_table(struct variable *, oid *, size_t *, int, size_t *,
-                        WriteMethod **, int);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _MIBGROUP_UTIL_FUNCS_HEADER_SIMPLE_TABLE_H */
diff --git a/agent/mibgroup/util_funcs/restart.c b/agent/mibgroup/util_funcs/restart.c
deleted file mode 100644
index 5cad737..0000000
--- a/agent/mibgroup/util_funcs/restart.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 82760a1..0000000
--- a/agent/mibgroup/util_funcs/restart.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#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 68f3654..59ffaa9 100644
--- a/agent/mibgroup/utilities/execute.c
+++ b/agent/mibgroup/utilities/execute.c
@@ -35,22 +35,18 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <ucd-snmp/errormib.h>
 
-#include "execute.h"
-#include "struct.h"
+#include "util_funcs.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)
@@ -59,31 +55,25 @@ run_shell_command( char *command, char *input,
     DEBUGMSGTL(("run_shell_command", "running %s\n", command));
     DEBUGMSGTL(("run:shell", "running '%s'\n", command));
 
-    result = -1;
-
     /*
-     * Set up the command and run it.
+     * Set up the command to run....
      */
     if (input) {
         FILE       *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 );
+        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) {
             ofname = netsnmp_mktemp();
             if(NULL == ofname) {
                 if(ifname)
@@ -92,46 +82,49 @@ run_shell_command( char *command, char *input,
             }
             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 {
-            file = popen(command, "w");
-            if (file) {
-                fwrite(input, 1, strlen(input), file);
-                result = pclose(file);
-            }
+            ofname = NULL;   /* Just to shut the compiler up! */
+            snprintf( shellline, sizeof(shellline), "(%s) < \"%s\"",
+                      command, ifname );
         }
     } else {
+        ifname = NULL;   /* Just to shut the compiler up! */
         if (output) {
-            FILE* file;
-
-            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);
+            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 );
+        }
+    }
+
+    /*
+     * ... 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);
     }
 
     return result;
@@ -166,12 +159,67 @@ tokenize_exec_command( char *command, int *argc )
     if (cp) {
         argv[i++] = strdup( cp );
     }
-    argv[i] = NULL;
+    argv[i] = 0;
     *argc = i;
 
     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] = 0;
+    *argc       = count;
+        
+    return argv;
+}
+
 
 int
 run_exec_command( char *command, char *input,
@@ -306,7 +354,7 @@ run_exec_command( char *command, char *input,
              */
             count = read(opipe[0], &cache_ptr[offset], cache_size);
             DEBUGMSGTL(("verbose:run:exec",
-                        "    read %d bytes\n", (int)count));
+                        "    read %d bytes\n", count));
             if (0 == count) {
                 int rc;
                 /*
@@ -341,7 +389,7 @@ run_exec_command( char *command, char *input,
                         break;
                     }
                     DEBUGMSGTL(("verbose:run:exec",
-                                "    %d left in buffer\n", (int)cache_size));
+                                "    %d left in buffer\n", cache_size));
                 }
             }
             else if ((count == -1) && (EAGAIN != errno)) {
diff --git a/agent/mibgroup/utilities/execute.h b/agent/mibgroup/utilities/execute.h
index 3c9e84b..05e8270 100644
--- a/agent/mibgroup/utilities/execute.h
+++ b/agent/mibgroup/utilities/execute.h
@@ -1,6 +1,7 @@
 #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 e2aea74..29010ac 100644
--- a/agent/mibgroup/utilities/iquery.c
+++ b/agent/mibgroup/utilities/iquery.c
@@ -1,35 +1,30 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
 #include "utilities/iquery.h"
 
-netsnmp_feature_child_of(iquery_all, libnetsnmpmibs)
-netsnmp_feature_child_of(iquery, iquery_all)
-netsnmp_feature_child_of(iquery_community_session, iquery_all)
-netsnmp_feature_child_of(iquery_pdu_session, iquery_all)
-
-netsnmp_feature_require(query_set_default_session)
-
-#ifndef NETSNMP_FEATURE_REMOVE_IQUERY
-
 void
 netsnmp_parse_iquerySecLevel(const char *token, char *line)
 {
+    char buf[1024];
     int secLevel;
 
     if ((secLevel = parse_secLevel_conf( token, line )) >= 0 ) {
         netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
                            NETSNMP_DS_AGENT_INTERNAL_SECLEVEL, secLevel);
     } else {
-	netsnmp_config_error("Unknown security level: %s", line);
+        snprintf(buf, sizeof(buf), "Unknown security level: %s", line);
+        buf[ sizeof(buf)-1 ] = 0;
+        config_perror(buf);
     }
 }
 
 void
 netsnmp_parse_iqueryVersion(const char *token, char *line)
 {
+    char buf[1024];
+
 #ifndef NETSNMP_DISABLE_SNMPV1
     if (!strcmp( line, "1" ))
         netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
@@ -46,7 +41,9 @@ netsnmp_parse_iqueryVersion(const char *token, char *line)
         netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID,
                            NETSNMP_DS_AGENT_INTERNAL_VERSION, SNMP_VERSION_3);
     else {
-	netsnmp_config_error("Unknown version: %s", line);
+        snprintf(buf, sizeof(buf), "Unknown version: %s", line);
+        buf[ sizeof(buf)-1 ] = 0;
+        config_perror(buf);
     }
 }
 
@@ -64,6 +61,9 @@ _init_default_iquery_session( int majorID, int minorID,
     if (secName)
         netsnmp_query_set_default_session(
              netsnmp_iquery_user_session(secName));
+    else
+        snmp_log(LOG_WARNING,
+                 "iquerySecName has not been configured - internal queries will fail\n");
     return SNMPERR_SUCCESS;
 }
 
@@ -81,9 +81,9 @@ _tweak_default_iquery_session( int majorID, int minorID,
 {
     u_char eID[SNMP_MAXBUF_SMALL];
     size_t elen;
-    netsnmp_session *s = netsnmp_query_get_default_session_unchecked();
+    netsnmp_session *s = netsnmp_query_get_default_session();
 
-    if ( s && s->securityEngineIDLen == 0 ) {
+    if (s && s->securityEngineIDLen == 0 ) {
         elen = snmpv3_get_engineID(eID, sizeof(eID));
         memdup( &(s->securityEngineID), eID, elen );
         s->securityEngineIDLen = elen;
@@ -130,7 +130,6 @@ void init_iquery(void){
      *
      **************************/
 
-#ifndef NETSNMP_FEATURE_REMOVE_IQUERY_PDU_SESSION
 netsnmp_session *netsnmp_iquery_pdu_session(netsnmp_pdu* pdu) {
     if (!pdu)
        return NULL;
@@ -142,14 +141,13 @@ netsnmp_session *netsnmp_iquery_pdu_session(netsnmp_pdu* pdu) {
                            pdu->securityEngineID,
                            pdu->securityEngineIDLen);
     else
-        return netsnmp_iquery_session((char *) pdu->community, 
+        return netsnmp_iquery_session( pdu->community, 
                            pdu->version,
                            pdu->version+1,
                            SNMP_SEC_LEVEL_NOAUTH,
                            pdu->securityEngineID,
                            pdu->securityEngineIDLen);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IQUERY_PDU_SESSION */
 
 netsnmp_session *netsnmp_iquery_user_session(char* secName){
     u_char eID[SNMP_MAXBUF_SMALL];
@@ -161,7 +159,6 @@ netsnmp_session *netsnmp_iquery_user_session(char* secName){
                            SNMP_SEC_LEVEL_AUTHNOPRIV, eID, elen);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_IQUERY_COMMUNITY_SESSION
 netsnmp_session *netsnmp_iquery_community_session( char* community, int version ) { 
     u_char eID[SNMP_MAXBUF_SMALL];
     size_t elen = snmpv3_get_engineID(eID, sizeof(eID));
@@ -169,7 +166,6 @@ netsnmp_session *netsnmp_iquery_community_session( char* community, int version
     return netsnmp_iquery_session( community, version, version+1,
                            SNMP_SEC_LEVEL_NOAUTH, eID, elen);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_IQUERY_COMMUNITY_SESSION */
 
 netsnmp_session *netsnmp_iquery_session(char* secName,   int   version,
                                         int   secModel,  int   secLevel,
@@ -206,7 +202,3 @@ netsnmp_session *netsnmp_iquery_session(char* secName,   int   version,
     return ss;
 }
 
-#else /* NETSNMP_FEATURE_REMOVE_IQUERY */
-netsnmp_feature_unused(iquery);
-#endif /* NETSNMP_FEATURE_REMOVE_IQUERY */
-
diff --git a/agent/mibgroup/utilities/override.c b/agent/mibgroup/utilities/override.c
index 2b083a9..09ac849 100644
--- a/agent/mibgroup/utilities/override.c
+++ b/agent/mibgroup/utilities/override.c
@@ -15,6 +15,8 @@
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
+#include "util_funcs.h"
+
 typedef struct override_data_s {
     int             type;
     void           *value;
@@ -32,7 +34,7 @@ override_handler(netsnmp_mib_handler *handler,
                  netsnmp_request_info *requests)
 {
 
-    override_data  *data = (override_data*)handler->myvoid;
+    override_data  *data = handler->myvoid;
     void *tmpptr;
 
     if (!data) {
@@ -50,7 +52,6 @@ override_handler(netsnmp_mib_handler *handler,
                                  (u_char *) data->value, data->value_len);
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_RESERVE1:
         if (requests->requestvb->type != data->type)
             netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_WRONGTYPE);
@@ -88,7 +89,6 @@ override_handler(netsnmp_mib_handler *handler,
     case MODE_SET_COMMIT:
         SNMP_FREE(data->set_space);
         break;
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     default:
         snmp_log(LOG_ERR, "unsupported mode in override handler\n");
@@ -114,7 +114,7 @@ netsnmp_parse_override(const char *token, char *line)
     char            buf[SNMP_MAXBUF], namebuf[SNMP_MAXBUF];
     int             readwrite = 0;
     oid             oidbuf[MAX_OID_LEN];
-    size_t          oidbuf_len = MAX_OID_LEN;
+    size_t          oidbuf_len = sizeof(oidbuf);
     int             type;
     override_data  *thedata;
     netsnmp_handler_registration *the_reg;
@@ -183,6 +183,7 @@ netsnmp_parse_override(const char *token, char *line)
         config_perror("memory allocation failure");
         return;
     }
+
     thedata->type = type;
 
     switch (type) {
@@ -205,7 +206,7 @@ netsnmp_parse_override(const char *token, char *line)
              * hex 
              */
             thedata->value_len =
-                hex_to_binary2((u_char *)(buf + 2), strlen(buf) - 2,
+                hex_to_binary2(buf + 2, strlen(buf) - 2,
                                (char **) &thedata->value);
         } else {
             thedata->value = strdup(buf);
@@ -216,8 +217,6 @@ netsnmp_parse_override(const char *token, char *line)
     case ASN_OBJECT_ID:
         read_config_read_objid(buf, (oid **) & thedata->value,
                                &thedata->value_len);
-        /* We need the size of the value in bytes, not in oids */
-        thedata->value_len *= sizeof(oid);
         break;
 
     case ASN_NULL:
@@ -248,7 +247,8 @@ netsnmp_parse_override(const char *token, char *line)
     the_reg->modes = (readwrite) ? HANDLER_CAN_RWRITE : HANDLER_CAN_RONLY;
     the_reg->handler =
         netsnmp_create_handler("override", override_handler);
-    the_reg->rootoid = snmp_duplicate_objid(oidbuf, oidbuf_len);
+    memdup((u_char **) & the_reg->rootoid, (const u_char *) oidbuf,
+           oidbuf_len * sizeof(oid));
     the_reg->rootoid_len = oidbuf_len;
     if (!the_reg->rootoid || !the_reg->handler || !the_reg->handlerName) {
         if (the_reg->handler)
diff --git a/agent/mibgroup/winExtDLL.c b/agent/mibgroup/winExtDLL.c
old mode 100644
new mode 100755
index c693913..b460175
--- a/agent/mibgroup/winExtDLL.c
+++ b/agent/mibgroup/winExtDLL.c
@@ -82,13 +82,13 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/agent/mib_module_config.h>
 
 #ifdef USING_WINEXTDLL_MODULE
 
 #include <net-snmp/types.h>
 
+#include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -98,13 +98,10 @@
 #include "../../win32/MgmtApi-winExtDLL.h"
 
 #include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/library/snmp_assert.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "util_funcs.h"
 #include "winExtDLL.h"
 
-netsnmp_feature_require(oid_is_subtree)
-
 
 #define MAX_VALUE_NAME          16383
 #define MS_ASN_UINTEGER32 MS_ASN_UNSIGNED32
@@ -241,28 +238,13 @@ static int      convert_to_windows_varbind_list(SnmpVarBindList *
 static int      convert_win_snmp_err(const int win_snmp_err);
 static winextdll_view *lookup_view_by_oid(oid * const name,
                                           const size_t name_len);
-static int      snmp_oid_compare_n_w(const oid * name1, size_t len1,
-                                     const UINT * name2, UINT len2);
-static int      snmp_oid_compare_w_n(const UINT * name1, UINT len1,
-                                     const oid * name2, size_t len2);
-static int      netsnmp_oid_is_subtree_n_w(const oid * name1, size_t len1,
-                                           const UINT * name2, UINT len2);
 static void     copy_oid(oid * const to_name, size_t * const to_name_len,
                          const oid * const from_name,
                          const size_t from_name_len);
-static void     copy_oid_n_w(oid * const to_name, size_t * const to_name_len,
-                             const UINT * const from_name,
-                             const UINT from_name_len);
 static UINT    *copy_oid_to_new_windows_oid(AsnObjectIdentifier *
                                             const windows_oid,
                                             const oid * const name,
                                             const size_t name_len);
-static int      snmp_set_var_objid_w(netsnmp_variable_list * var,
-                                     const UINT * name, UINT name_length);
-static netsnmp_variable_list *
-snmp_varlist_add_variable_w(netsnmp_variable_list ** varlist,
-                            const UINT * name, UINT name_length,
-                            u_char type, const void * value, size_t len);
 static void     send_trap(const AsnObjectIdentifier * const,
                           const AsnInteger, const AsnInteger,
                           const AsnTimeticks,
@@ -324,7 +306,7 @@ init_winExtDLL(void)
         AsnObjectIdentifier view;
         winextdll_view  ext_dll_view_info;
 
-        netsnmp_assert(ext_dll_info);
+        assert(ext_dll_info);
         if (!ext_dll_info->dll_name)
             continue;
 
@@ -417,8 +399,8 @@ init_winExtDLL(void)
 
         memset(&ext_dll_view_info, 0, sizeof(ext_dll_view_info));
         ext_dll_view_info.winextdll_info = ext_dll_info;
-        copy_oid_n_w(ext_dll_view_info.name, &ext_dll_view_info.name_length,
-                     view.ids, view.idLength);
+        copy_oid(ext_dll_view_info.name, &ext_dll_view_info.name_length,
+                 view.ids, view.idLength);
         xarray_push_back(&s_winextdll_view, &ext_dll_view_info);
 
         /*
@@ -428,9 +410,9 @@ init_winExtDLL(void)
                && ext_dll_info->pfSnmpExtensionInitEx(&view)) {
             memset(&ext_dll_view_info, 0, sizeof(ext_dll_view_info));
             ext_dll_view_info.winextdll_info = ext_dll_info;
-            copy_oid_n_w(ext_dll_view_info.name,
-                         &ext_dll_view_info.name_length, view.ids,
-                         view.idLength);
+            copy_oid(ext_dll_view_info.name,
+                     &ext_dll_view_info.name_length, view.ids,
+                     view.idLength);
             xarray_push_back(&s_winextdll_view, &ext_dll_view_info);
         }
     }
@@ -518,9 +500,9 @@ basename_equals(const char *path, const char *basename)
     const size_t    path_len = strlen(path);
     const size_t    basename_len = strlen(basename);
 
-    netsnmp_assert(strchr(path, '/') == 0);
-    netsnmp_assert(strchr(basename, '/') == 0);
-    netsnmp_assert(strchr(basename, '\\') == 0);
+    assert(strchr(path, '/') == 0);
+    assert(strchr(basename, '/') == 0);
+    assert(strchr(basename, '\\') == 0);
 
     return path_len >= basename_len + 1
         && path[path_len - basename_len - 1] == '\\'
@@ -626,7 +608,7 @@ alloc_context_info(const int index)
 
     for (p = context_info_head; p; p = p->next) {
         if (p->index == index) {
-            netsnmp_assert(FALSE);
+            assert(FALSE);
             return NULL;
         }
     }
@@ -678,7 +660,7 @@ get_context_info(const int index)
         if (p->index == index)
             return &p->context_info;
 
-    netsnmp_assert(FALSE);
+    assert(FALSE);
     return NULL;
 }
 
@@ -692,51 +674,60 @@ var_winExtDLL(netsnmp_mib_handler *handler,
     winextdll      *ext_dll_info;
     netsnmp_request_info *request;
     UINT            nRequestType;
+    const char     *mode_name;
     int             rc;
 
-    netsnmp_assert(ext_dll_view_info);
+    assert(ext_dll_view_info);
     ext_dll_info = ext_dll_view_info->winextdll_info;
 #if ! defined(NDEBUG)
-    netsnmp_assert(ext_dll_view_info ==
+    assert(ext_dll_view_info ==
            lookup_view_by_oid(reginfo->rootoid, reginfo->rootoid_len));
 #endif
 
     if (ext_dll_info == 0) {
         DEBUGMSG(("winExtDLL",
                   "internal error: no matching extension DLL found.\n"));
-        netsnmp_assert(0);
+        assert(0);
         return SNMP_ERR_GENERR;
     }
 
     switch (reqinfo->mode) {
     case MODE_GET:
+        mode_name = "GET";
         nRequestType = SNMP_EXTENSION_GET;
-        netsnmp_assert(!context_info_head);
+        assert(!context_info_head);
         break;
     case MODE_GETNEXT:
+        mode_name = "GETNEXT";
         nRequestType = SNMP_EXTENSION_GET_NEXT;
-        netsnmp_assert(!context_info_head);
+        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:
         DEBUGMSG(("winExtDLL",
                   "internal error: invalid mode %d.\n", reqinfo->mode));
-        netsnmp_assert(0);
+        assert(0);
         return SNMP_ERR_NOERROR;
     }
 
@@ -759,7 +750,7 @@ var_winExtDLL(netsnmp_mib_handler *handler,
             alloc_context_info(request->index);
 
         varbind = request->requestvb;
-        netsnmp_assert(varbind);
+        assert(varbind);
 
         /*
          * Convert the Net-SNMP varbind to a Windows SNMP varbind list.
@@ -773,24 +764,20 @@ var_winExtDLL(netsnmp_mib_handler *handler,
             goto free_win_varbinds;
         }
 
-        netsnmp_assert(win_varbinds.len == 1);
+        assert(win_varbinds.len == 1);
 
         /*
          * For a GetNext PDU, if the varbind OID comes lexicographically
          * before the root OID of this handler, replace it by the root OID.
          */
         if (reqinfo->mode == MODE_GETNEXT
-            && snmp_oid_compare_w_n(win_varbinds.list[0].name.ids,
-                                    win_varbinds.list[0].name.idLength,
-                                    reginfo->rootoid,
-                                    reginfo->rootoid_len) < 0) {
-
-            SnmpUtilOidFree(&win_varbinds.list[0].name);
-            memset(&win_varbinds.list[0].name, 0,
-                   sizeof(win_varbinds.list[0].name));
-            copy_oid_to_new_windows_oid(&win_varbinds.list[0].name,
-                                        reginfo->rootoid,
-                                        reginfo->rootoid_len);
+            && snmp_oid_compare(win_varbinds.list[0].name.ids,
+                                win_varbinds.list[0].name.idLength,
+                                reginfo->rootoid,
+                                reginfo->rootoid_len) < 0) {
+            AsnObjectIdentifier Root =
+                { reginfo->rootoid_len, reginfo->rootoid };
+            SnmpUtilOidCpy(&win_varbinds.list[0].name, &Root);
         }
 
         if (ext_dll_info->pfSnmpExtensionQueryEx) {
@@ -826,7 +813,7 @@ var_winExtDLL(netsnmp_mib_handler *handler,
             DEBUGMSG(("winExtDLL",
                       "extension DLL %s: SNMP query function returned error code %lu (Windows) / %d (Net-SNMP).\n",
                       ext_dll_info->dll_name, ErrorStatus, rc));
-            netsnmp_assert(ErrorIndex == 1);
+            assert(ErrorIndex == 1);
             netsnmp_request_set_error(requests, rc);
             if (rc == SNMP_NOSUCHOBJECT || rc == SNMP_NOSUCHINSTANCE
                 || rc == SNMP_ERR_NOSUCHNAME)
@@ -857,20 +844,20 @@ var_winExtDLL(netsnmp_mib_handler *handler,
              * win_varbind by an SNMP extension DLL that has not been
              * instrumented by BoundsChecker.
              */
-            if (netsnmp_oid_is_subtree_n_w(ext_dll_view_info->name,
-                                           ext_dll_view_info->name_length,
-                                           win_varbind->name.ids,
-                                           win_varbind->name.idLength) == 0
-                && snmp_oid_compare_n_w(varbind->name, varbind->name_length,
-                                        win_varbind->name.ids,
-                                        win_varbind->name.idLength) < 0) {
+            if (netsnmp_oid_is_subtree(ext_dll_view_info->name,
+                                       ext_dll_view_info->name_length,
+                                       win_varbind->name.ids,
+                                       win_varbind->name.idLength) == 0
+                && snmp_oid_compare(varbind->name, varbind->name_length,
+                                    win_varbind->name.ids,
+                                    win_varbind->name.idLength) < 0) {
                 /*
                  * Copy the OID returned by the extension DLL to the
                  * Net-SNMP varbind.
                  */
-                snmp_set_var_objid_w(varbind,
-                                     win_varbind->name.ids,
-                                     win_varbind->name.idLength);
+                snmp_set_var_objid(varbind,
+                                   win_varbind->name.ids,
+                                   win_varbind->name.idLength);
                 copy_value = TRUE;
             }
         }
@@ -883,7 +870,7 @@ var_winExtDLL(netsnmp_mib_handler *handler,
              */
             result_vb = NULL;
             rc = append_windows_varbind(&result_vb, &win_varbinds.list[0]);
-            netsnmp_assert(result_vb || rc != SNMP_ERR_NOERROR);
+            assert(result_vb || rc != SNMP_ERR_NOERROR);
             if (result_vb) {
                 snmp_set_var_typed_value(varbind,
                                          result_vb->type,
@@ -1027,21 +1014,18 @@ subagentTrapCheck(unsigned int clientreg, void *clientarg)
         int             j;
         const winextdll *ext_dll_info;
 
-        if (s_trapevent.size == 0)
-            return;
-
         dwWaitResult = WaitForMultipleObjects(s_trapevent.size,
                                               &TRAPEVENT(0), FALSE, 0);
 
         i = dwWaitResult - WAIT_OBJECT_0;
         if (i < 0 || i >= s_trapevent.size) {
-            netsnmp_assert(dwWaitResult == WAIT_TIMEOUT);
+            assert(dwWaitResult == WAIT_TIMEOUT);
             return;
         }
 
-        netsnmp_assert(s_trapevent.size == s_trapevent_to_dllinfo.size);
+        assert(s_trapevent.size == s_trapevent_to_dllinfo.size);
         ext_dll_info = TRAPEVENT_TO_DLLINFO(i);
-        netsnmp_assert(ext_dll_info->subagentTrapEvent == TRAPEVENT(i));
+        assert(ext_dll_info->subagentTrapEvent == TRAPEVENT(i));
 
         /*
          * Reset the signalled event just in case the extension DLL erroneously
@@ -1149,8 +1133,8 @@ send_trap(const AsnObjectIdentifier * const pEnterprise,
          * Enterprise specific trap: compute the OID
          * *pEnterprise + ".0." + SpecificTrap.
          */
-        copy_oid_n_w(vb2_oid, &vb2_oid_len,
-                     pEnterprise->ids, pEnterprise->idLength);
+        copy_oid(vb2_oid, &vb2_oid_len,
+                 pEnterprise->ids, pEnterprise->idLength);
         vb2_oid[vb2_oid_len++] = 0;
         vb2_oid[vb2_oid_len++] = SpecificTrap;
     } else {
@@ -1221,42 +1205,43 @@ append_windows_varbind(netsnmp_variable_list ** const net_snmp_varbinds,
 {
     switch (win_varbind->value.asnType) {
     case MS_ASN_INTEGER:
-        snmp_varlist_add_variable_w(net_snmp_varbinds, win_varbind->name.ids,
-                                    win_varbind->name.idLength,
-                                    ASN_INTEGER,
-                                    &win_varbind->value.asnValue.number,
-                                    sizeof(win_varbind->value.asnValue.
-                                           number));
+        snmp_varlist_add_variable(net_snmp_varbinds, win_varbind->name.ids,
+                                  win_varbind->name.idLength,
+                                  ASN_INTEGER,
+                                  (const u_char *) &win_varbind->value.
+                                  asnValue.number,
+                                  sizeof(win_varbind->value.asnValue.
+                                         number));
         break;
     case MS_ASN_BITS:
-        snmp_varlist_add_variable_w(net_snmp_varbinds, win_varbind->name.ids,
-                                    win_varbind->name.idLength,
-                                    ASN_BIT_STR,
-                                    win_varbind->value.asnValue.bits.stream,
-                                    win_varbind->value.asnValue.bits.length);
+        snmp_varlist_add_variable(net_snmp_varbinds, win_varbind->name.ids,
+                                  win_varbind->name.idLength,
+                                  ASN_BIT_STR,
+                                  win_varbind->value.asnValue.bits.stream,
+                                  win_varbind->value.asnValue.bits.length);
         break;
     case MS_ASN_OCTETSTRING:
-        snmp_varlist_add_variable_w(net_snmp_varbinds, win_varbind->name.ids,
-                                    win_varbind->name.idLength,
-                                    ASN_OCTET_STR,
-                                    win_varbind->value.asnValue.string.
-                                    stream,
-                                    win_varbind->value.asnValue.string.
-                                    length);
+        snmp_varlist_add_variable(net_snmp_varbinds, win_varbind->name.ids,
+                                  win_varbind->name.idLength,
+                                  ASN_OCTET_STR,
+                                  win_varbind->value.asnValue.string.
+                                  stream,
+                                  win_varbind->value.asnValue.string.
+                                  length);
         break;
     case MS_ASN_NULL:
-        snmp_varlist_add_variable_w(net_snmp_varbinds, win_varbind->name.ids,
-                                    win_varbind->name.idLength,
-                                    ASN_NULL, 0, 0);
+        snmp_varlist_add_variable(net_snmp_varbinds, win_varbind->name.ids,
+                                  win_varbind->name.idLength,
+                                  ASN_NULL, 0, 0);
         break;
     case MS_ASN_OBJECTIDENTIFIER:
-        snmp_varlist_add_variable_w(net_snmp_varbinds, win_varbind->name.ids,
-                                    win_varbind->name.idLength,
-                                    ASN_OBJECT_ID,
-                                    win_varbind->value.asnValue.
-                                    object.ids,
-                                    win_varbind->value.asnValue.object.
-                                    idLength * sizeof(oid));
+        snmp_varlist_add_variable(net_snmp_varbinds, win_varbind->name.ids,
+                                  win_varbind->name.idLength,
+                                  ASN_OBJECT_ID,
+                                  (u_char *) win_varbind->value.asnValue.
+                                  object.ids,
+                                  win_varbind->value.asnValue.object.
+                                  idLength * sizeof(oid));
         break;
 
         /*
@@ -1264,71 +1249,76 @@ append_windows_varbind(netsnmp_variable_list ** const net_snmp_varbinds,
          */
 
     case MS_ASN_SEQUENCE:
-        snmp_varlist_add_variable_w(net_snmp_varbinds, win_varbind->name.ids,
-                                    win_varbind->name.idLength,
-                                    ASN_SEQUENCE,
-                                    win_varbind->value.asnValue.sequence.
-                                    stream,
-                                    win_varbind->value.asnValue.sequence.
-                                    length);
+        snmp_varlist_add_variable(net_snmp_varbinds, win_varbind->name.ids,
+                                  win_varbind->name.idLength,
+                                  ASN_SEQUENCE,
+                                  win_varbind->value.asnValue.sequence.
+                                  stream,
+                                  win_varbind->value.asnValue.sequence.
+                                  length);
         break;
     case MS_ASN_IPADDRESS:
-        snmp_varlist_add_variable_w(net_snmp_varbinds, win_varbind->name.ids,
-                                    win_varbind->name.idLength,
-                                    ASN_IPADDRESS,
-                                    win_varbind->value.asnValue.address.
-                                    stream,
-                                    win_varbind->value.asnValue.address.
-                                    length);
+        snmp_varlist_add_variable(net_snmp_varbinds, win_varbind->name.ids,
+                                  win_varbind->name.idLength,
+                                  ASN_IPADDRESS,
+                                  win_varbind->value.asnValue.address.
+                                  stream,
+                                  win_varbind->value.asnValue.address.
+                                  length);
         break;
     case MS_ASN_COUNTER32:
-        snmp_varlist_add_variable_w(net_snmp_varbinds, win_varbind->name.ids,
-                                    win_varbind->name.idLength,
-                                    ASN_COUNTER,
-                                    &win_varbind->value.asnValue.counter,
-                                    sizeof(win_varbind->value.asnValue.
-                                           counter));
+        snmp_varlist_add_variable(net_snmp_varbinds, win_varbind->name.ids,
+                                  win_varbind->name.idLength,
+                                  ASN_COUNTER,
+                                  (const u_char *) &win_varbind->value.
+                                  asnValue.counter,
+                                  sizeof(win_varbind->value.asnValue.
+                                         counter));
         break;
     case MS_ASN_GAUGE32:
-        snmp_varlist_add_variable_w(net_snmp_varbinds, win_varbind->name.ids,
-                                    win_varbind->name.idLength,
-                                    ASN_GAUGE,
-                                    &win_varbind->value.asnValue.gauge,
-                                    sizeof(win_varbind->value.asnValue.
-                                           gauge));
+        snmp_varlist_add_variable(net_snmp_varbinds, win_varbind->name.ids,
+                                  win_varbind->name.idLength,
+                                  ASN_GAUGE,
+                                  (const u_char *) &win_varbind->value.
+                                  asnValue.gauge,
+                                  sizeof(win_varbind->value.asnValue.
+                                         gauge));
         break;
     case MS_ASN_TIMETICKS:
-        snmp_varlist_add_variable_w(net_snmp_varbinds, win_varbind->name.ids,
-                                    win_varbind->name.idLength,
-                                    ASN_TIMETICKS,
-                                    &win_varbind->value.asnValue.ticks,
-                                    sizeof(win_varbind->value.asnValue.
-                                           ticks));
+        snmp_varlist_add_variable(net_snmp_varbinds, win_varbind->name.ids,
+                                  win_varbind->name.idLength,
+                                  ASN_TIMETICKS,
+                                  (const u_char *) &win_varbind->value.
+                                  asnValue.ticks,
+                                  sizeof(win_varbind->value.asnValue.
+                                         ticks));
         break;
     case MS_ASN_OPAQUE:        // AsnOctetString
-        snmp_varlist_add_variable_w(net_snmp_varbinds, win_varbind->name.ids,
-                                    win_varbind->name.idLength,
-                                    ASN_OPAQUE,
-                                    win_varbind->value.asnValue.arbitrary.
-                                    stream,
-                                    win_varbind->value.asnValue.arbitrary.
-                                    length);
+        snmp_varlist_add_variable(net_snmp_varbinds, win_varbind->name.ids,
+                                  win_varbind->name.idLength,
+                                  ASN_OPAQUE,
+                                  win_varbind->value.asnValue.arbitrary.
+                                  stream,
+                                  win_varbind->value.asnValue.arbitrary.
+                                  length);
         break;
     case MS_ASN_COUNTER64:
-        snmp_varlist_add_variable_w(net_snmp_varbinds, win_varbind->name.ids,
-                                    win_varbind->name.idLength,
-                                    ASN_COUNTER64,
-                                    &win_varbind->value.asnValue.counter64,
-                                    sizeof(win_varbind->value.asnValue.
-                                           counter64));
+        snmp_varlist_add_variable(net_snmp_varbinds, win_varbind->name.ids,
+                                  win_varbind->name.idLength,
+                                  ASN_COUNTER64,
+                                  (const u_char *) &win_varbind->value.
+                                  asnValue.counter64,
+                                  sizeof(win_varbind->value.asnValue.
+                                         counter64));
         break;
     case MS_ASN_UINTEGER32:
-        snmp_varlist_add_variable_w(net_snmp_varbinds, win_varbind->name.ids,
-                                    win_varbind->name.idLength,
-                                    ASN_UNSIGNED,
-                                    &win_varbind->value.asnValue.unsigned32,
-                                    sizeof(win_varbind->value.asnValue.
-                                           unsigned32));
+        snmp_varlist_add_variable(net_snmp_varbinds, win_varbind->name.ids,
+                                  win_varbind->name.idLength,
+                                  ASN_UNSIGNED,
+                                  (const u_char *) &win_varbind->value.
+                                  asnValue.unsigned32,
+                                  sizeof(win_varbind->value.asnValue.
+                                         unsigned32));
         break;
     default:
         return SNMP_ERR_GENERR;
@@ -1337,24 +1327,6 @@ append_windows_varbind(netsnmp_variable_list ** const net_snmp_varbinds,
     return SNMP_ERR_NOERROR;
 }
 
-static int
-snmp_set_var_objid_w(netsnmp_variable_list * var, const UINT * name,
-                     UINT name_length)
-{
-    netsnmp_static_assert(sizeof(oid) == sizeof(UINT));
-    return snmp_set_var_objid(var, (const oid *) name, name_length);
-}
-
-static netsnmp_variable_list *
-snmp_varlist_add_variable_w(netsnmp_variable_list ** varlist, const UINT * name,
-                            UINT name_length, u_char type, const void * value,
-                            size_t len)
-{
-    netsnmp_static_assert(sizeof(oid) == sizeof(UINT));
-    return snmp_varlist_add_variable(varlist, (const oid *) name, name_length, type,
-                                     value, len);
-}
-
 /**
  * Convert a Net-SNMP varbind to a WinSNMP varbind list.
  *
@@ -1368,8 +1340,8 @@ convert_to_windows_varbind_list(SnmpVarBindList * pVarBindList,
 {
     SnmpVarBind    *win_varbind;
 
-    netsnmp_assert(pVarBindList);
-    netsnmp_assert(varbind);
+    assert(pVarBindList);
+    assert(varbind);
 
     pVarBindList->len = 1;
     pVarBindList->list
@@ -1392,7 +1364,7 @@ convert_to_windows_varbind_list(SnmpVarBindList * pVarBindList,
     switch (varbind->type) {
     case ASN_BOOLEAN:
         // There is no equivalent type in Microsoft's <snmp.h>.
-        netsnmp_assert(0);
+        assert(0);
         win_varbind->value.asnType = MS_ASN_INTEGER;
         win_varbind->value.asnValue.number = *(varbind->val.integer);
         break;
@@ -1437,7 +1409,7 @@ convert_to_windows_varbind_list(SnmpVarBindList * pVarBindList,
         break;
     case ASN_SET:
         // There is no equivalent type in Microsoft's <snmp.h>.
-        netsnmp_assert(0);
+        assert(0);
         win_varbind->value.asnType = MS_ASN_INTEGER;
         win_varbind->value.asnValue.number = *(varbind->val.integer);
         break;
@@ -1480,7 +1452,7 @@ convert_to_windows_varbind_list(SnmpVarBindList * pVarBindList,
             = varbind->val.counter64->low;
         break;
     default:
-        netsnmp_assert(0);
+        assert(0);
         goto generr;
     }
 
@@ -1544,7 +1516,7 @@ convert_win_snmp_err(const int win_snmp_err)
     case SNMP_ERRORSTATUS_INCONSISTENTNAME:
         return SNMP_ERR_INCONSISTENTNAME;
     }
-    netsnmp_assert(0);
+    assert(0);
     return SNMP_ERR_GENERR;
 }
 
@@ -1568,30 +1540,6 @@ lookup_view_by_oid(oid * const name, const size_t name_len)
     return NULL;
 }
 
-static int
-snmp_oid_compare_n_w(const oid * name1, size_t len1, const UINT * name2,
-                     UINT len2)
-{
-    netsnmp_static_assert(sizeof(oid) == sizeof(UINT));
-    return snmp_oid_compare(name1, len1, (const oid *) name2, len2);
-}
-
-static int
-snmp_oid_compare_w_n(const UINT * name1, UINT len1, const oid * name2,
-                     size_t len2)
-{
-    netsnmp_static_assert(sizeof(oid) == sizeof(UINT));
-    return snmp_oid_compare((const oid *) name1, len1, name2, len2);
-}
-
-static int
-netsnmp_oid_is_subtree_n_w(const oid * name1, size_t len1, const UINT * name2,
-                           UINT len2)
-{
-    netsnmp_static_assert(sizeof(oid) == sizeof(UINT));
-    return netsnmp_oid_is_subtree(name1, len1, (const oid *) name2, len2);
-}
-
 /**
  * Copy an OID.
  *
@@ -1607,9 +1555,9 @@ copy_oid(oid * const to_name, size_t * const to_name_len,
 {
     int             j;
 
-    netsnmp_assert(to_name);
-    netsnmp_assert(to_name_len);
-    netsnmp_assert(from_name);
+    assert(to_name);
+    assert(to_name_len);
+    assert(from_name);
 
     for (j = 0; j < from_name_len && j < MAX_OID_LEN; j++)
         to_name[j] = from_name[j];
@@ -1618,23 +1566,6 @@ copy_oid(oid * const to_name, size_t * const to_name_len,
 }
 
 /**
- * Copy an OID.
- *
- * @param[out] to_name       Number of elements written to destination OID.
- * @param[out] to_name_len   Length of destination OID. Must have at least
- *                           min(from_name_len, MAX_OID_LEN) elements.
- * @param[in]  from_name     Original OID.
- * @param[in]  from_name_len Length of original OID.
- */
-static void
-copy_oid_n_w(oid * const to_name, size_t * const to_name_len,
-             const UINT * const from_name, const UINT from_name_len)
-{
-    netsnmp_static_assert(sizeof(oid) == sizeof(UINT));
-    copy_oid(to_name, to_name_len, (const oid *) from_name, from_name_len);
-}
-
-/**
  * Convert a Net-SNMP OID into a Windows OID and allocate memory for the
  * Windows OID.
  *
@@ -1647,10 +1578,10 @@ static UINT    *
 copy_oid_to_new_windows_oid(AsnObjectIdentifier * const windows_oid,
                             const oid * const name, const size_t name_len)
 {
-    netsnmp_assert(windows_oid);
-    netsnmp_assert(windows_oid->ids == 0);
-    netsnmp_assert(windows_oid->idLength == 0);
-    netsnmp_assert(name);
+    assert(windows_oid);
+    assert(windows_oid->ids == 0);
+    assert(windows_oid->idLength == 0);
+    assert(name);
 
     windows_oid->ids
         =
@@ -1665,7 +1596,7 @@ winsnmp_memdup(const void *src, const size_t len)
 {
     u_char         *p;
 
-    netsnmp_assert(len == (UINT) len);
+    assert(len == (UINT) len);
 
     p = SnmpUtilMemAlloc((UINT) len);
     if (p)
@@ -1678,7 +1609,7 @@ winsnmp_memdup(const void *src, const size_t len)
 static void
 xarray_init(xarray * a, size_t elem_size)
 {
-    netsnmp_assert(a);
+    assert(a);
 
     memset(a, 0, sizeof(*a));
     a->elem_size = elem_size;
@@ -1689,7 +1620,7 @@ xarray_init(xarray * a, size_t elem_size)
 static void
 xarray_destroy(xarray * a)
 {
-    netsnmp_assert(a);
+    assert(a);
 
     xarray_reserve(a, 0);
 }
@@ -1705,14 +1636,14 @@ xarray_destroy(xarray * a)
 static void    *
 xarray_push_back(xarray * a, const void *elem)
 {
-    netsnmp_assert(a);
-    netsnmp_assert(elem);
-    netsnmp_assert(a->size <= a->reserved);
+    assert(a);
+    assert(elem);
+    assert(a->size <= a->reserved);
 
     if (a->size == a->reserved)
         xarray_reserve(a, a->reserved == 0 ? 16 : 2 * a->reserved);
     if (a->size < a->reserved) {
-        netsnmp_assert(a->size < a->reserved);
+        assert(a->size < a->reserved);
         return memcpy((char *) (a->p) + a->elem_size * a->size++, elem,
                       a->elem_size);
     }
@@ -1724,12 +1655,12 @@ xarray_push_back(xarray * a, const void *elem)
 static void
 xarray_erase(xarray * a, void *const elem)
 {
-    netsnmp_assert(a);
-    netsnmp_assert(a->size >= 1);
-    netsnmp_assert(a->p <= elem);
-    netsnmp_assert((const char *) elem + a->elem_size <=
+    assert(a);
+    assert(a->size >= 1);
+    assert(a->p <= elem);
+    assert((const char *) elem + a->elem_size <=
            (char *) a->p + a->size * a->elem_size);
-    netsnmp_assert(((const char *) elem - (char *) a->p) % a->elem_size == 0);
+    assert(((const char *) elem - (char *) a->p) % a->elem_size == 0);
 
     a->size--;
     memmove((char *) elem, (char *) elem + a->elem_size,
@@ -1750,8 +1681,8 @@ xarray_erase(xarray * a, void *const elem)
 static void    *
 xarray_reserve(xarray * a, int reserved)
 {
-    netsnmp_assert(a);
-    netsnmp_assert(a->size <= a->reserved);
+    assert(a);
+    assert(a->size <= a->reserved);
 
     if ((a->p = realloc(a->p, a->elem_size * reserved)))
         a->reserved = reserved;
diff --git a/agent/mibgroup/winExtDLL.h b/agent/mibgroup/winExtDLL.h
old mode 100644
new mode 100755
diff --git a/agent/object_monitor.c b/agent/object_monitor.c
index 2ab8c9b..70554d9 100644
--- a/agent/object_monitor.c
+++ b/agent/object_monitor.c
@@ -1,7 +1,7 @@
 /*
  * object_monitor.c
  *
- * $Id$
+ * $Id: object_monitor.c 14169 2006-01-25 16:28:12Z dts12 $
  *
  * functions and data structures for cooperating code to monitor objects.
  *
diff --git a/agent/snmp_agent.c b/agent/snmp_agent.c
index 0b44a81..1d1d66c 100644
--- a/agent/snmp_agent.c
+++ b/agent/snmp_agent.c
@@ -44,7 +44,6 @@ SOFTWARE.
  * @{
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <sys/types.h>
 #ifdef HAVE_LIMITS_H
@@ -60,7 +59,11 @@ SOFTWARE.
 #include <string.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -76,6 +79,9 @@ SOFTWARE.
 #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>
@@ -93,6 +99,8 @@ int             deny_severity = LOG_WARNING;
 #endif
 
 #include "snmpd.h"
+#include "mibgroup/struct.h"
+#include "mibgroup/util_funcs.h"
 #include <net-snmp/agent/mib_module_config.h>
 #include <net-snmp/agent/mib_modules.h>
 
@@ -108,87 +116,6 @@ int             deny_severity = LOG_WARNING;
 #include "smux/smux.h"
 #endif
 
-netsnmp_feature_child_of(snmp_agent, libnetsnmpagent)
-netsnmp_feature_child_of(agent_debugging_utilities, libnetsnmpagent)
-
-netsnmp_feature_child_of(allocate_globalcacheid, snmp_agent)
-netsnmp_feature_child_of(free_agent_snmp_session_by_session, snmp_agent)
-netsnmp_feature_child_of(check_all_requests_error, snmp_agent)
-netsnmp_feature_child_of(check_requests_error, snmp_agent)
-netsnmp_feature_child_of(request_set_error_idx, snmp_agent)
-netsnmp_feature_child_of(set_agent_uptime, snmp_agent)
-netsnmp_feature_child_of(agent_check_and_process, snmp_agent)
-
-netsnmp_feature_child_of(dump_sess_list, agent_debugging_utilities)
-
-netsnmp_feature_child_of(agent_remove_list_data, netsnmp_unused)
-netsnmp_feature_child_of(set_all_requests_error, netsnmp_unused)
-netsnmp_feature_child_of(addrcache_age, netsnmp_unused)
-netsnmp_feature_child_of(delete_subtree_cache, netsnmp_unused)
-
-
-NETSNMP_INLINE void
-netsnmp_agent_add_list_data(netsnmp_agent_request_info *ari,
-                            netsnmp_data_list *node)
-{
-    if (ari) {
-	if (ari->agent_data) {
-            netsnmp_add_list_data(&ari->agent_data, node);
-        } else {
-            ari->agent_data = node;
-	}
-    }
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_AGENT_REMOVE_LIST_DATA
-NETSNMP_INLINE int
-netsnmp_agent_remove_list_data(netsnmp_agent_request_info *ari,
-                               const char * name)
-{
-    if ((NULL == ari) || (NULL == ari->agent_data))
-        return 1;
-
-    return netsnmp_remove_list_node(&ari->agent_data, name);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_AGENT_REMOVE_LIST_DATA */
-
-NETSNMP_INLINE void    *
-netsnmp_agent_get_list_data(netsnmp_agent_request_info *ari,
-                            const char *name)
-{
-    if (ari) {
-        return netsnmp_get_list_data(ari->agent_data, name);
-    }
-    return NULL;
-}
-
-NETSNMP_INLINE void
-netsnmp_free_agent_data_set(netsnmp_agent_request_info *ari)
-{
-    if (ari) {
-        netsnmp_free_list_data(ari->agent_data);
-    }
-}
-
-NETSNMP_INLINE void
-netsnmp_free_agent_data_sets(netsnmp_agent_request_info *ari)
-{
-    if (ari) {
-        netsnmp_free_all_list_data(ari->agent_data);
-    }
-}
-
-NETSNMP_INLINE void
-netsnmp_free_agent_request_info(netsnmp_agent_request_info *ari)
-{
-    if (ari) {
-        if (ari->agent_data) {
-            netsnmp_free_all_list_data(ari->agent_data);
-	}
-        SNMP_FREE(ari);
-    }
-}
-
 oid      version_sysoid[] = { NETSNMP_SYSTEM_MIB };
 int      version_sysoid_len = OID_LENGTH(version_sysoid);
 
@@ -203,7 +130,7 @@ enum {
 struct addrCache {
     char           *addr;
     int            status;
-    struct timeval lastHitM;
+    struct timeval lastHit;
 };
 
 static struct addrCache addrCache[SNMP_ADDRCACHE_SIZE];
@@ -249,13 +176,11 @@ static int      current_globalid = 0;
 
 int      netsnmp_running = 1;
 
-#ifndef NETSNMP_FEATURE_REMOVE_ALLOCATE_GLOBALCACHEID
 int
 netsnmp_allocate_globalcacheid(void)
 {
     return ++current_globalid;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_ALLOCATE_GLOBALCACHEID */
 
 int
 netsnmp_get_local_cachid(netsnmp_cachemap *cache_store, int globalid)
@@ -275,17 +200,15 @@ netsnmp_get_or_add_local_cachid(netsnmp_cachemap **cache_store,
     netsnmp_cachemap *tmpp;
 
     tmpp = SNMP_MALLOC_TYPEDEF(netsnmp_cachemap);
-    if (tmpp != NULL) {
-        if (*cache_store) {
-            tmpp->next = *cache_store;
-            *cache_store = tmpp;
-        } else {
-            *cache_store = tmpp;
-        }
-
-        tmpp->globalid = globalid;
-        tmpp->cacheid = localid;
+    if (*cache_store) {
+        tmpp->next = *cache_store;
+        *cache_store = tmpp;
+    } else {
+        *cache_store = tmpp;
     }
+
+    tmpp->globalid = globalid;
+    tmpp->cacheid = localid;
     return tmpp;
 }
 
@@ -399,7 +322,7 @@ get_set_cache(netsnmp_agent_session *asp)
                 /*
                  * I don't think this case should ever happen. Please email
                  * the net-snmp-coders at lists.sourceforge.net if you have
-                 * a test case that hits this condition. -- rstory
+                 * a test case that hits this assert. -- rstory
                  */
 		int i;
                 netsnmp_assert(NULL == asp->requests); /* see note above */
@@ -422,7 +345,7 @@ get_set_cache(netsnmp_agent_session *asp)
 	    } else {
                 /*
                  * when would we not have saved variables? someone
-                 * let me know if they hit this condition. -- rstory
+                 * let me know if they hit this assert. -- rstory
                  */
                 netsnmp_assert(NULL != ptr->saved_vars);
             }
@@ -618,7 +541,15 @@ _fix_endofmibview(netsnmp_agent_session *asp)
     }
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_AGENT_CHECK_AND_PROCESS
+
+int
+getNextSessID()
+{
+    static int      SessionID = 0;
+
+    return ++SessionID;
+}
+
 /**
  * This function checks for packets arriving on the SNMP port and
  * processes them(snmp_read) if some are found, using the select(). If block
@@ -662,10 +593,11 @@ agent_check_and_process(int block)
          * The caller does not want us to block at all.  
          */
 
-        timerclear(tvp);
+        tvp->tv_sec = 0;
+        tvp->tv_usec = 0;
     }
 
-    count = select(numfds, &fdset, NULL, NULL, tvp);
+    count = select(numfds, &fdset, 0, 0, tvp);
 
     if (count > 0) {
         /*
@@ -688,11 +620,6 @@ agent_check_and_process(int block)
         }                       /* endif -- count>0 */
 
     /*
-     * see if persistent store needs to be saved
-     */
-    snmp_store_if_needed();
-
-    /*
      * Run requested alarms.  
      */
     run_alarms();
@@ -701,7 +628,7 @@ agent_check_and_process(int block)
 
     return count;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_AGENT_CHECK_AND_PROCESS */
+
 
 /*
  * Set up the address cache.  
@@ -757,7 +684,7 @@ netsnmp_addrcache_add(const char *addr)
     /*
      * First get the current and oldest allowable timestamps
      */
-    netsnmp_get_monotonic_clock(&now);
+    gettimeofday(&now, (struct timezone*) NULL);
     aged.tv_sec = now.tv_sec - SNMP_ADDRCACHE_MAXAGE;
     aged.tv_usec = now.tv_usec;
 
@@ -777,8 +704,8 @@ netsnmp_addrcache_add(const char *addr)
                 /*
                  * found a match
                  */
-                addrCache[i].lastHitM = now;
-                if (timercmp(&addrCache[i].lastHitM, &aged, <))
+                memcpy(&addrCache[i].lastHit, &now, sizeof(struct timeval));
+                if (timercmp(&addrCache[i].lastHit, &aged, <))
 		    rc = 1; /* should have expired, so is new */
 		else
 		    rc = 0; /* not expired, so is existing entry */
@@ -788,7 +715,7 @@ netsnmp_addrcache_add(const char *addr)
                 /*
                  * Used, but not this address. check if it's stale.
                  */
-                if (timercmp(&addrCache[i].lastHitM, &aged, <)) {
+                if (timercmp(&addrCache[i].lastHit, &aged, <)) {
                     /*
                      * Stale, reuse
                      */
@@ -806,8 +733,8 @@ netsnmp_addrcache_add(const char *addr)
                      */
                     if (oldest < 0)
                         oldest = i;
-                    else if (timercmp(&addrCache[i].lastHitM,
-                                      &addrCache[oldest].lastHitM, <))
+                    else if (timercmp(&addrCache[i].lastHit,
+                                      &addrCache[oldest].lastHit, <))
                         oldest = i;
                 } /* fresh */
             } /* used, no match */
@@ -824,7 +751,7 @@ netsnmp_addrcache_add(const char *addr)
              */
             addrCache[unused].addr = strdup(addr);
             addrCache[unused].status = SNMP_ADDRCACHE_USED;
-            addrCache[unused].lastHitM = now;
+            memcpy(&addrCache[unused].lastHit, &now, sizeof(struct timeval));
         }
         else { /* Otherwise, replace oldest entry */
             if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
@@ -834,7 +761,7 @@ netsnmp_addrcache_add(const char *addr)
             
             free(addrCache[oldest].addr);
             addrCache[oldest].addr = strdup(addr);
-            addrCache[oldest].lastHitM = now;
+            memcpy(&addrCache[oldest].lastHit, &now, sizeof(struct timeval));
         }
         rc = 1;
     }
@@ -852,13 +779,11 @@ netsnmp_addrcache_add(const char *addr)
  *
  * backwards compatability; not used anywhere
  */
-#ifndef NETSNMP_FEATURE_REMOVE_ADDRCACHE_AGE
 void
 netsnmp_addrcache_age(void)
 {
     (void)netsnmp_addrcache_add(NULL);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_ADDRCACHE_AGE */
 
 /*******************************************************************-o-******
  * netsnmp_agent_check_packet
@@ -883,7 +808,7 @@ netsnmp_agent_check_packet(netsnmp_session * session,
 {
     char           *addr_string = NULL;
 #ifdef  NETSNMP_USE_LIBWRAP
-    char *tcpudpaddr = NULL, *name;
+    char *tcpudpaddr, *name;
     short not_log_connection;
 
     name = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
@@ -917,13 +842,12 @@ netsnmp_agent_check_packet(netsnmp_session * session,
     }
 #ifdef  NETSNMP_USE_LIBWRAP
     /* Catch udp,udp6,tcp,tcp6 transports using "[" */
-    if (addr_string)
-        tcpudpaddr = strstr(addr_string, "[");
+    tcpudpaddr = strstr(addr_string, "[");
     if ( tcpudpaddr != 0 ) {
         char sbuf[64];
         char *xp;
-
-        strlcpy(sbuf, tcpudpaddr + 1, sizeof(sbuf));
+        strncpy(sbuf, tcpudpaddr + 1, sizeof(sbuf));
+        sbuf[sizeof(sbuf)-1] = '\0';
         xp = strstr(sbuf, "]");
         if (xp)
             *xp = '\0';
@@ -989,11 +913,9 @@ netsnmp_agent_check_parse(netsnmp_session * session, netsnmp_pdu *pdu,
             case SNMP_MSG_RESPONSE:
                 snmp_log(LOG_DEBUG, "  RESPONSE message\n");
                 break;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
             case SNMP_MSG_SET:
                 snmp_log(LOG_DEBUG, "  SET message\n");
                 break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
             case SNMP_MSG_TRAP:
                 snmp_log(LOG_DEBUG, "  TRAP message\n");
                 break;
@@ -1011,7 +933,6 @@ netsnmp_agent_check_parse(netsnmp_session * session, netsnmp_pdu *pdu,
                 snmp_log(LOG_DEBUG, "  REPORT message\n");
                 break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
             case SNMP_MSG_INTERNAL_SET_RESERVE1:
                 snmp_log(LOG_DEBUG, "  INTERNAL RESERVE1 message\n");
                 break;
@@ -1035,7 +956,6 @@ netsnmp_agent_check_parse(netsnmp_session * session, netsnmp_pdu *pdu,
             case SNMP_MSG_INTERNAL_SET_UNDO:
                 snmp_log(LOG_DEBUG, "  INTERNAL UNDO message\n");
                 break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
             default:
                 snmp_log(LOG_DEBUG, "  UNKNOWN message, type=%02X\n",
@@ -1127,27 +1047,6 @@ netsnmp_register_agent_nsap(netsnmp_transport *t)
 				  NETSNMP_DS_AGENT_FLAGS);
     s->isAuthoritative = SNMP_SESS_AUTHORITATIVE;
 
-    /* Optional supplimental transport configuration information and
-       final call to actually open the transport */
-    if (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) {
@@ -1203,15 +1102,13 @@ netsnmp_deregister_agent_nsap(int handle)
 
     if (a != NULL && a->handle == handle) {
         *prevNext = a->next;
-	if (snmp_sess_session_lookup(a->s)) {
-            if (main_session == snmp_sess_session(a->s)) {
-                main_session_deregistered = 1;
-            }
-            snmp_close(snmp_sess_session(a->s));
-            /*
-             * The above free()s the transport and session pointers.  
-             */
+        if (main_session == snmp_sess_session(a->s)) {
+            main_session_deregistered = 1;
         }
+        snmp_close(snmp_sess_session(a->s));
+        /*
+         * The above free()s the transport and session pointers.  
+         */
         SNMP_FREE(a);
     }
 
@@ -1284,7 +1181,6 @@ init_master_agent(void)
         return 0;               /*  No error if ! MASTER_AGENT  */
     }
 
-#ifndef NETSNMP_NO_LISTEN_SUPPORT
     /*
      * Have specific agent ports been specified?  
      */
@@ -1302,7 +1198,7 @@ init_master_agent(void)
         /*
          * No, so just specify the default port.  
          */
-        buf = strdup("");
+        buf = "";
     }
 
     DEBUGMSGTL(("snmp_agent", "final port spec: \"%s\"\n", buf));
@@ -1353,8 +1249,6 @@ init_master_agent(void)
 			"NSAP\n", cptr));
         }
     } while(st && *st != '\0');
-    SNMP_FREE(buf);
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
 
 #ifdef USING_AGENTX_MASTER_MODULE
     if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
@@ -1395,7 +1289,7 @@ init_agent_snmp_session(netsnmp_session * session, netsnmp_pdu *pdu)
         return NULL;
     }
 
-    DEBUGMSGTL(("snmp_agent","agent_sesion %8p created\n", asp));
+    DEBUGMSGTL(("snmp_agent","agent_sesion %08p created\n", asp));
     asp->session = session;
     asp->pdu = snmp_clone_pdu(pdu);
     asp->orig_pdu = snmp_clone_pdu(pdu);
@@ -1421,7 +1315,7 @@ free_agent_snmp_session(netsnmp_agent_session *asp)
     if (!asp)
         return;
 
-    DEBUGMSGTL(("snmp_agent","agent_session %8p released\n", asp));
+    DEBUGMSGTL(("snmp_agent","agent_session %08p released\n", asp));
 
     netsnmp_remove_from_delegated(asp);
     
@@ -1433,8 +1327,12 @@ free_agent_snmp_session(netsnmp_agent_session *asp)
         snmp_free_pdu(asp->pdu);
     if (asp->reqinfo)
         netsnmp_free_agent_request_info(asp->reqinfo);
-    SNMP_FREE(asp->treecache);
-    SNMP_FREE(asp->bulkcache);
+    if (asp->treecache) {
+        SNMP_FREE(asp->treecache);
+    }
+    if (asp->bulkcache) {
+        SNMP_FREE(asp->bulkcache);
+    }
     if (asp->requests) {
         int             i;
         for (i = 0; i < asp->vbcount; i++) {
@@ -1489,7 +1387,7 @@ netsnmp_check_for_delegated_and_add(netsnmp_agent_session *asp)
              */
             asp->next = agent_delegated_list;
             agent_delegated_list = asp;
-            DEBUGMSGTL(("snmp_agent", "delegate session == %8p\n", asp));
+            DEBUGMSGTL(("snmp_agent", "delegate session == %08p\n", asp));
         }
         return 1;
     }
@@ -1516,7 +1414,7 @@ netsnmp_remove_from_delegated(netsnmp_agent_session *asp)
         else
             agent_delegated_list = asp->next;
 
-        DEBUGMSGTL(("snmp_agent", "remove delegated session == %8p\n", asp));
+        DEBUGMSGTL(("snmp_agent", "remove delegated session == %08p\n", asp));
 
         return 1;
     }
@@ -1563,7 +1461,7 @@ netsnmp_remove_delegated_requests_for_session(netsnmp_session *sess)
      */
     if(count) {
         DEBUGMSGTL(("snmp_agent", "removed %d delegated request(s) for session "
-                    "%8p\n", count, sess));
+                    "%08p\n", count, sess));
         netsnmp_check_outstanding_agent_requests();
     }
     
@@ -1619,12 +1517,15 @@ netsnmp_add_queued(netsnmp_agent_session *asp)
 int
 netsnmp_wrap_up_request(netsnmp_agent_session *asp, int status)
 {
+    netsnmp_variable_list *var_ptr;
+    int             i;
+
     /*
      * if this request was a set, clear the global now that we are
      * done.
      */
     if (asp == netsnmp_processing_set) {
-        DEBUGMSGTL(("snmp_agent", "SET request complete, asp = %8p\n",
+        DEBUGMSGTL(("snmp_agent", "SET request complete, asp = %08p\n",
                     asp));
         netsnmp_processing_set = NULL;
     }
@@ -1638,7 +1539,6 @@ netsnmp_wrap_up_request(netsnmp_agent_session *asp, int status)
             asp->status = status;
 
         switch (asp->pdu->command) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
             case SNMP_MSG_INTERNAL_SET_BEGIN:
             case SNMP_MSG_INTERNAL_SET_RESERVE1:
             case SNMP_MSG_INTERNAL_SET_RESERVE2:
@@ -1648,7 +1548,6 @@ netsnmp_wrap_up_request(netsnmp_agent_session *asp, int status)
                  */
                 save_set_cache(asp);
                 break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
             case SNMP_MSG_GETNEXT:
                 _fix_endofmibview(asp);
@@ -1667,7 +1566,6 @@ netsnmp_wrap_up_request(netsnmp_agent_session *asp, int status)
          * v1 query.  See RFC2576 - section 4.3
          */
 #ifndef NETSNMP_DISABLE_SNMPV1
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         if ((asp->pdu->command == SNMP_MSG_SET) &&
             (asp->pdu->version == SNMP_VERSION_1)) {
             switch (asp->status) {
@@ -1702,10 +1600,8 @@ netsnmp_wrap_up_request(netsnmp_agent_session *asp, int status)
          */
         if ((asp->pdu->command != SNMP_MSG_SET) &&
             (asp->pdu->version == SNMP_VERSION_1)) {
-            netsnmp_variable_list *var_ptr = asp->pdu->variables;
-            int                    i = 1;
-
-            while (var_ptr != NULL) {
+            for (var_ptr = asp->pdu->variables, i = 1;
+                 var_ptr != NULL; var_ptr = var_ptr->next_variable, i++) {
                 switch (var_ptr->type) {
                     case SNMP_NOSUCHOBJECT:
                     case SNMP_NOSUCHINSTANCE:
@@ -1716,11 +1612,8 @@ netsnmp_wrap_up_request(netsnmp_agent_session *asp, int status)
                         asp->index = i;
                         break;
                 }
-                var_ptr = var_ptr->next_variable;
-                ++i;
             }
         }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 #endif /* snmpv1 support */
     } /** if asp->pdu */
 
@@ -1766,16 +1659,10 @@ netsnmp_wrap_up_request(netsnmp_agent_session *asp, int status)
     }
 
     if ((status == SNMP_ERR_NOERROR) && (asp->pdu)) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         snmp_increment_statistic_by((asp->pdu->command == SNMP_MSG_SET ?
                                      STAT_SNMPINTOTALSETVARS :
                                      STAT_SNMPINTOTALREQVARS),
                                     count_varbinds(asp->pdu->variables));
-#else /* NETSNMP_NO_WRITE_SUPPORT */
-        snmp_increment_statistic_by(STAT_SNMPINTOTALREQVARS,
-                                    count_varbinds(asp->pdu->variables));
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
     } else {
         /*
          * Use a copy of the original request
@@ -1789,8 +1676,7 @@ netsnmp_wrap_up_request(netsnmp_agent_session *asp, int status)
         asp->pdu->command = SNMP_MSG_RESPONSE;
         asp->pdu->errstat = asp->status;
         asp->pdu->errindex = asp->index;
-        if (!snmp_send(asp->session, asp->pdu) &&
-             asp->session->s_snmp_errno != SNMPERR_SUCCESS) {
+        if (!snmp_send(asp->session, asp->pdu)) {
             netsnmp_variable_list *var_ptr;
             snmp_perror("send response");
             for (var_ptr = asp->pdu->variables; var_ptr != NULL;
@@ -1820,7 +1706,6 @@ netsnmp_wrap_up_request(netsnmp_agent_session *asp, int status)
     return 1;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_DUMP_SESS_LIST
 void
 dump_sess_list(void)
 {
@@ -1828,18 +1713,17 @@ dump_sess_list(void)
 
     DEBUGMSGTL(("snmp_agent", "DUMP agent_sess_list -> "));
     for (a = agent_session_list; a != NULL; a = a->next) {
-        DEBUGMSG(("snmp_agent", "%8p[session %8p] -> ", a, a->session));
+        DEBUGMSG(("snmp_agent", "%08p[session %08p] -> ", a, a->session));
     }
     DEBUGMSG(("snmp_agent", "[NIL]\n"));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_DUMP_SESS_LIST */
 
 void
 netsnmp_remove_and_free_agent_snmp_session(netsnmp_agent_session *asp)
 {
     netsnmp_agent_session *a, **prevNext = &agent_session_list;
 
-    DEBUGMSGTL(("snmp_agent", "REMOVE session == %8p\n", asp));
+    DEBUGMSGTL(("snmp_agent", "REMOVE session == %08p\n", asp));
 
     for (a = agent_session_list; a != NULL; a = *prevNext) {
         if (a == asp) {
@@ -1861,7 +1745,6 @@ netsnmp_remove_and_free_agent_snmp_session(netsnmp_agent_session *asp)
     }
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_FREE_AGENT_SNMP_SESSION_BY_SESSION
 void
 netsnmp_free_agent_snmp_session_by_session(netsnmp_session * sess,
                                            void (*free_request)
@@ -1869,7 +1752,7 @@ netsnmp_free_agent_snmp_session_by_session(netsnmp_session * sess,
 {
     netsnmp_agent_session *a, *next, **prevNext = &agent_session_list;
 
-    DEBUGMSGTL(("snmp_agent", "REMOVE session == %8p\n", sess));
+    DEBUGMSGTL(("snmp_agent", "REMOVE session == %08p\n", sess));
 
     for (a = agent_session_list; a != NULL; a = next) {
         if (a->session == sess) {
@@ -1882,7 +1765,6 @@ netsnmp_free_agent_snmp_session_by_session(netsnmp_session * sess,
         }
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_FREE_AGENT_SNMP_SESSION_BY_SESSION */
 
 /** handles an incoming SNMP packet into the agent */
 int
@@ -1989,7 +1871,7 @@ handle_snmp_packet(int op, netsnmp_session * session, int reqid,
     /*
      * done 
      */
-    DEBUGMSGTL(("snmp_agent", "end of handle_snmp_packet, asp = %8p\n",
+    DEBUGMSGTL(("snmp_agent", "end of handle_snmp_packet, asp = %08p\n",
                 asp));
     return rc;
 }
@@ -2000,6 +1882,7 @@ netsnmp_add_varbind_to_cache(netsnmp_agent_session *asp, int vbcount,
                              netsnmp_subtree *tp)
 {
     netsnmp_request_info *request = NULL;
+    int             cacheid;
 
     DEBUGMSGTL(("snmp_agent", "add_vb_to_cache(%8p, %d, ", asp, vbcount));
     DEBUGMSGOID(("snmp_agent", varbind_ptr->name,
@@ -2063,9 +1946,7 @@ netsnmp_add_varbind_to_cache(netsnmp_agent_session *asp, int vbcount,
             varbind_ptr->type = SNMP_ENDOFMIBVIEW;
             break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         case SNMP_MSG_SET:
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
         case SNMP_MSG_GET:
             varbind_ptr->type = SNMP_NOSUCHOBJECT;
             break;
@@ -2074,8 +1955,6 @@ netsnmp_add_varbind_to_cache(netsnmp_agent_session *asp, int vbcount,
             return NULL;        /* shouldn't get here */
         }
     } else {
-        int cacheid;
-
         DEBUGMSGTL(("snmp_agent", "tp->start "));
         DEBUGMSGOID(("snmp_agent", tp->start_a, tp->start_len));
         DEBUGMSG(("snmp_agent", ", tp->end "));
@@ -2101,10 +1980,8 @@ netsnmp_add_varbind_to_cache(netsnmp_agent_session *asp, int vbcount,
         /*
          * for non-SET modes, set the type to NULL 
          */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         if (!MODE_IS_SET(asp->pdu->command)) {
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-            DEBUGMSGTL(("verbose:asp", "asp %p reqinfo %p assigned to request\n",
+        DEBUGMSGTL(("verbose:asp", "asp %p reqinfo %p assigned to request\n",
                     asp, asp->reqinfo));
             if (varbind_ptr->type == ASN_PRIV_INCL_RANGE) {
                 DEBUGMSGTL(("snmp_agent", "varbind %d is inclusive\n",
@@ -2112,9 +1989,7 @@ netsnmp_add_varbind_to_cache(netsnmp_agent_session *asp, int vbcount,
                 request->inclusive = 1;
             }
             varbind_ptr->type = ASN_NULL;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
         /*
          * place them in a cache 
@@ -2157,7 +2032,7 @@ netsnmp_add_varbind_to_cache(netsnmp_agent_session *asp, int vbcount,
                 asp->treecache_len =
                     (asp->treecache_len + CACHE_GROW_SIZE);
                 asp->treecache =
-                    (netsnmp_tree_cache *)realloc(asp->treecache,
+                    realloc(asp->treecache,
                             sizeof(netsnmp_tree_cache) *
                             asp->treecache_len);
                 if (asp->treecache == NULL)
@@ -2285,7 +2160,7 @@ netsnmp_create_subtree_cache(netsnmp_agent_session *asp)
     if (asp->treecache == NULL && asp->treecache_len == 0) {
         asp->treecache_len = SNMP_MAX(1 + asp->vbcount / 4, 16);
         asp->treecache =
-            (netsnmp_tree_cache *)calloc(asp->treecache_len, sizeof(netsnmp_tree_cache));
+            calloc(asp->treecache_len, sizeof(netsnmp_tree_cache));
         if (asp->treecache == NULL)
             return SNMP_ERR_GENERR;
     }
@@ -2326,8 +2201,8 @@ netsnmp_create_subtree_cache(netsnmp_agent_session *asp)
              * result vector
              */
             if (maxresponses < 0 ||
-                maxresponses > (int)(INT_MAX / sizeof(struct varbind_list *)))
-                maxresponses = (int)(INT_MAX / sizeof(struct varbind_list *));
+                maxresponses > INT_MAX / sizeof(struct varbind_list *))
+                maxresponses = INT_MAX / sizeof(struct varbind_list *);
 
             /* ensure that the maximum number of repetitions will fit in the
              * result vector
@@ -2339,7 +2214,7 @@ netsnmp_create_subtree_cache(netsnmp_agent_session *asp)
             if (asp->pdu->errindex > maxbulk) {
                 asp->pdu->errindex = maxbulk;
                 DEBUGMSGTL(("snmp_agent",
-                            "truncating number of getbulk repeats to %ld\n",
+                            "truncating number of getbulk repeats to %d\n",
                             asp->pdu->errindex));
             }
 
@@ -2352,7 +2227,7 @@ netsnmp_create_subtree_cache(netsnmp_agent_session *asp)
                 return SNMP_ERR_GENERR;
             }
         }
-        DEBUGMSGTL(("snmp_agent", "GETBULK N = %d, M = %ld, R = %d\n",
+        DEBUGMSGTL(("snmp_agent", "GETBULK N = %d, M = %d, R = %d\n",
                     n, asp->pdu->errindex, r));
     }
 
@@ -2441,7 +2316,6 @@ netsnmp_create_subtree_cache(netsnmp_agent_session *asp)
                                          NULL, 0);
             break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         case SNMP_MSG_SET:
             view = in_a_view(varbind_ptr->name, &varbind_ptr->name_length,
                              asp->pdu, varbind_ptr->type);
@@ -2450,7 +2324,6 @@ netsnmp_create_subtree_cache(netsnmp_agent_session *asp)
                 return SNMP_ERR_NOACCESS;
             }
             break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
         case SNMP_MSG_GETNEXT:
         case SNMP_MSG_GETBULK:
@@ -2499,10 +2372,6 @@ netsnmp_reassign_requests(netsnmp_agent_session *asp)
     asp->treecache =
         (netsnmp_tree_cache *) calloc(asp->treecache_len,
                                       sizeof(netsnmp_tree_cache));
-
-    if (asp->treecache == NULL)
-        return SNMP_ERR_GENERR;
-
     asp->treecache_num = -1;
     if (asp->cache_store) {
         netsnmp_free_cachemap(asp->cache_store);
@@ -2521,7 +2390,10 @@ netsnmp_reassign_requests(netsnmp_agent_session *asp)
             if (!netsnmp_add_varbind_to_cache(asp, asp->requests[i].index,
                                               asp->requests[i].requestvb,
                                               asp->requests[i].subtree->next)) {
-                SNMP_FREE(old_treecache);
+                if (old_treecache != NULL) {
+                    SNMP_FREE(old_treecache);
+                    old_treecache = NULL;
+                }
             }
         } else if (asp->requests[i].requestvb->type == ASN_PRIV_RETRY) {
             /*
@@ -2531,12 +2403,17 @@ netsnmp_reassign_requests(netsnmp_agent_session *asp)
             if (!netsnmp_add_varbind_to_cache(asp, asp->requests[i].index,
                                               asp->requests[i].requestvb,
                                               asp->requests[i].subtree)) {
-                SNMP_FREE(old_treecache);
+                if (old_treecache != NULL) {
+                    SNMP_FREE(old_treecache);
+                    old_treecache = NULL;
+                }
             }
         }
     }
 
-    SNMP_FREE(old_treecache);
+    if (old_treecache != NULL) {
+        SNMP_FREE(old_treecache);
+    }
     return SNMP_ERR_NOERROR;
 }
 
@@ -2549,7 +2426,6 @@ netsnmp_delete_request_infos(netsnmp_request_info *reqlist)
     }
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_DELETE_SUBTREE_CACHE
 void
 netsnmp_delete_subtree_cache(netsnmp_agent_session *asp)
 {
@@ -2562,9 +2438,7 @@ netsnmp_delete_subtree_cache(netsnmp_agent_session *asp)
         asp->treecache_num--;
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_DELETE_SUBTREE_CACHE */
 
-#ifndef NETSNMP_FEATURE_REMOVE_CHECK_ALL_REQUESTS_ERROR
 /*
  * check all requests for errors
  *
@@ -2595,9 +2469,7 @@ netsnmp_check_all_requests_error(netsnmp_agent_session *asp,
 
     return SNMP_ERR_NOERROR;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CHECK_ALL_REQUESTS_ERROR */
 
-#ifndef NETSNMP_FEATURE_REMOVE_CHECK_REQUESTS_ERROR
 int
 netsnmp_check_requests_error(netsnmp_request_info *requests)
 {
@@ -2610,7 +2482,6 @@ netsnmp_check_requests_error(netsnmp_request_info *requests)
     }
     return SNMP_ERR_NOERROR;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CHECK_REQUESTS_ERROR */
 
 int
 netsnmp_check_requests_status(netsnmp_agent_session *asp,
@@ -2686,7 +2557,6 @@ handle_var_requests(netsnmp_agent_session *asp)
          * errors).
          */
         switch (asp->mode) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         case MODE_SET_COMMIT:
             retstatus = netsnmp_check_requests_status(asp,
 						      asp->treecache[i].
@@ -2700,7 +2570,6 @@ handle_var_requests(netsnmp_agent_session *asp)
 						      requests_begin,
 						      SNMP_ERR_UNDOFAILED);
             break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
         default:
             retstatus = netsnmp_check_requests_status(asp,
@@ -2811,7 +2680,6 @@ netsnmp_check_outstanding_agent_requests(void)
          * if the top request is a set, don't pop it
          * off if there are delegated requests
          */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         if ((netsnmp_agent_queued_list->pdu->command == SNMP_MSG_SET) &&
             (agent_delegated_list)) {
 
@@ -2819,10 +2687,9 @@ netsnmp_check_outstanding_agent_requests(void)
 
             netsnmp_processing_set = netsnmp_agent_queued_list;
             DEBUGMSGTL(("snmp_agent", "SET request remains queued while "
-                        "delegated requests finish, asp = %8p\n", asp));
+                        "delegated requests finish, asp = %08p\n", asp));
             break;
         }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
         /*
          * pop the first request and process it
@@ -2830,7 +2697,7 @@ netsnmp_check_outstanding_agent_requests(void)
         asp = netsnmp_agent_queued_list;
         netsnmp_agent_queued_list = asp->next;
         DEBUGMSGTL(("snmp_agent",
-                    "processing queued request, asp = %8p\n", asp));
+                    "processing queued request, asp = %08p\n", asp));
 
         netsnmp_handle_request(asp, asp->status);
 
@@ -2850,9 +2717,9 @@ netsnmp_check_outstanding_agent_requests(void)
 int
 netsnmp_check_transaction_id(int transaction_id)
 {
-    netsnmp_agent_session *asp;
+    netsnmp_agent_session *asp, *prev_asp = NULL;
 
-    for (asp = agent_delegated_list; asp; asp = asp->next) {
+    for (asp = agent_delegated_list; asp; prev_asp = asp, asp = asp->next) {
         if (asp->pdu->transid == transaction_id)
             return SNMPERR_SUCCESS;
     }
@@ -2873,7 +2740,7 @@ check_delayed_request(netsnmp_agent_session *asp)
 {
     int             status = SNMP_ERR_NOERROR;
 
-    DEBUGMSGTL(("snmp_agent", "processing delegated request, asp = %8p\n",
+    DEBUGMSGTL(("snmp_agent", "processing delegated request, asp = %08p\n",
                 asp));
 
     switch (asp->mode) {
@@ -2894,7 +2761,6 @@ check_delayed_request(netsnmp_agent_session *asp)
         }
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case MODE_SET_COMMIT:
         netsnmp_check_all_requests_status(asp, SNMP_ERR_COMMITFAILED);
         goto settop;
@@ -2930,7 +2796,6 @@ check_delayed_request(netsnmp_agent_session *asp)
             return SNMP_ERR_NOERROR;
         }
         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
     default:
         break;
@@ -3127,7 +2992,6 @@ handle_getnext_loop(netsnmp_agent_session *asp)
     return SNMP_ERR_NOERROR;
 }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 int
 handle_set(netsnmp_agent_session *asp)
 {
@@ -3225,7 +3089,6 @@ handle_set_loop(netsnmp_agent_session *asp)
     }
     return asp->status;
 }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 int
 netsnmp_handle_request(netsnmp_agent_session *asp, int status)
@@ -3246,14 +3109,13 @@ netsnmp_handle_request(netsnmp_agent_session *asp, int status)
             netsnmp_add_queued(asp);
             DEBUGMSGTL(("snmp_agent",
                         "request queued while processing set, "
-                        "asp = %8p\n", asp));
+                        "asp = %08p\n", asp));
             return 1;
         }
 
         /*
          * check for set request
          */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         if (asp->pdu->command == SNMP_MSG_SET) {
             netsnmp_processing_set = asp;
 
@@ -3263,13 +3125,12 @@ netsnmp_handle_request(netsnmp_agent_session *asp, int status)
              */
             if (agent_delegated_list) {
                 DEBUGMSGTL(("snmp_agent", "SET request queued while "
-                            "delegated requests finish, asp = %8p\n",
+                            "delegated requests finish, asp = %08p\n",
                             asp));
                 netsnmp_add_queued(asp);
                 return 1;
             }
         }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
     }
 
     /*
@@ -3310,6 +3171,57 @@ netsnmp_handle_request(netsnmp_agent_session *asp, int status)
     return 1;
 }
 
+/**
+ * This function calls into netsnmp_set_mode_request_error,  sets 
+ * error_value given a reqinfo->mode value.  It's used to send specific
+ * errors back to the agent to process accordingly.
+ * 
+ * If error_value is set to SNMP_NOSUCHOBJECT, SNMP_NOSUCHINSTANCE,
+ * or SNMP_ENDOFMIBVIEW the following is applicable:
+ * Sets the error_value to request->requestvb->type if 
+ * reqinfo->mode value is set to MODE_GET.  If the reqinfo->mode 
+ * value is set to MODE_GETNEXT or MODE_GETBULK the code calls 
+ * snmp_log logging an error message.
+ *
+ * Otherwise, the request->status value is checked, if it's < 0
+ * snmp_log is called with an error message and SNMP_ERR_GENERR is 
+ * assigned to request->status. If the request->status value is >= 0 the
+ * error_value is set to request->status.
+ *
+ * @param reqinfo  is a pointer to the netsnmp_agent_request_info struct.  It
+ *	contains the reqinfo->mode which is required to set error_value or
+ *	log error messages.
+ *
+ * @param request is a pointer to the netsnmp_request_info struct.  The 
+ *	error_value is set to request->requestvb->type
+ *
+ * @param error_value is the exception value you want to set, below are
+ *        possible values.
+ *      - SNMP_NOSUCHOBJECT
+ *      - SNMP_NOSUCHINSTANCE
+ *      - SNMP_ENDOFMIBVIEW
+ *      - SNMP_ERR_NOERROR
+ *      - SNMP_ERR_TOOBIG
+ *      - SNMP_ERR_NOSUCHNAME
+ *      - SNMP_ERR_BADVALUE
+ *      - SNMP_ERR_READONLY
+ *      - SNMP_ERR_GENERR
+ *      - SNMP_ERR_NOACCESS
+ *      - SNMP_ERR_WRONGTYPE
+ *      - SNMP_ERR_WRONGLENGTH
+ *      - SNMP_ERR_WRONGENCODING
+ *      - SNMP_ERR_WRONGVALUE
+ *      - SNMP_ERR_NOCREATION
+ *      - SNMP_ERR_INCONSISTENTVALUE
+ *      - SNMP_ERR_RESOURCEUNAVAILABLE
+ *      - SNMP_ERR_COMMITFAILED
+ *      - SNMP_ERR_UNDOFAILED
+ *      - SNMP_ERR_AUTHORIZATIONERROR
+ *      - SNMP_ERR_NOTWRITABLE
+ *      - SNMP_ERR_INCONSISTENTNAME
+ *
+ * @return Returns error_value under all conditions.
+ */
 int
 handle_pdu(netsnmp_agent_session *asp)
 {
@@ -3321,7 +3233,6 @@ handle_pdu(netsnmp_agent_session *asp)
      */
     switch (asp->pdu->command) {
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case SNMP_MSG_INTERNAL_SET_RESERVE2:
     case SNMP_MSG_INTERNAL_SET_ACTION:
     case SNMP_MSG_INTERNAL_SET_COMMIT:
@@ -3331,7 +3242,6 @@ handle_pdu(netsnmp_agent_session *asp)
         if (status != SNMP_ERR_NOERROR)
             return status;
         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
     case SNMP_MSG_GET:
     case SNMP_MSG_GETNEXT:
@@ -3355,10 +3265,8 @@ handle_pdu(netsnmp_agent_session *asp)
          * fall through 
          */
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case SNMP_MSG_INTERNAL_SET_BEGIN:
     case SNMP_MSG_INTERNAL_SET_RESERVE1:
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
     default:
         asp->vbcount = count_varbinds(asp->pdu->variables);
         if (asp->vbcount) /* efence doesn't like 0 size allocs */
@@ -3448,7 +3356,6 @@ handle_pdu(netsnmp_agent_session *asp)
         status = handle_getnext_loop(asp);
         break;
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case SNMP_MSG_SET:
 #ifdef NETSNMP_DISABLE_SET_SUPPORT
         return SNMP_ERR_NOTWRITABLE;
@@ -3477,7 +3384,6 @@ handle_pdu(netsnmp_agent_session *asp)
          * asp related cache is saved in cleanup 
          */
         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
     case SNMP_MSG_RESPONSE:
         snmp_increment_statistic(STAT_SNMPINGETRESPONSES);
@@ -3527,7 +3433,7 @@ _request_set_error(netsnmp_request_info *request, int mode, int error_value)
         case MODE_GETNEXT:
         case MODE_GETBULK:
             request->requestvb->type = error_value;
-            break;
+            return SNMPERR_SUCCESS;
 
             /*
              * These are technically illegal to set by the
@@ -3540,15 +3446,9 @@ _request_set_error(netsnmp_request_info *request, int mode, int error_value)
             return SNMPERR_VALUE;
              */
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-        case SNMP_MSG_INTERNAL_SET_RESERVE1:
-            request->status = SNMP_ERR_NOCREATION;
-            break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
         default:
             request->status = SNMP_ERR_NOSUCHNAME;      /* WWW: correct? */
-            break;
+            return SNMPERR_SUCCESS;
         }
         break;                  /* never get here */
 
@@ -3569,7 +3469,7 @@ _request_set_error(netsnmp_request_info *request, int mode, int error_value)
              */
             request->status = error_value;
         }
-        break;
+        return SNMPERR_SUCCESS;
     }
     return SNMPERR_SUCCESS;
 }
@@ -3588,7 +3488,6 @@ netsnmp_request_set_error(netsnmp_request_info *request, int error_value)
                               error_value);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_REQUEST_SET_ERROR_IDX
 /** set error for a request within a request list
  * @param request head of the request list
  * @param error_value error value for request
@@ -3616,7 +3515,6 @@ netsnmp_request_set_error_idx(netsnmp_request_info *request,
     return _request_set_error(req, request->agent_req_info->mode,
                               error_value);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_REQUEST_SET_ERROR_IDX */
 
 /** set error for all requests
  * @param requests request list
@@ -3651,131 +3549,103 @@ netsnmp_request_set_error_all( netsnmp_request_info *requests, int error)
     return result;
 }
 
-/**
- * Return the difference between pm and the agent start time in hundredths of
- * a second.
- * \deprecated Don't use in new code.
- *
- * @param[in] pm An absolute time as e.g. reported by gettimeofday().
- */
+extern struct timeval starttime;
+
+                /*
+                 * Return the value of 'sysUpTime' at the given marker 
+                 */
 u_long
 netsnmp_marker_uptime(marker_t pm)
 {
     u_long          res;
-    const_marker_t  start = netsnmp_get_agent_starttime();
+    marker_t        start = (marker_t) & starttime;
 
     res = uatime_hdiff(start, pm);
-    return res;
+    return res;                 /* atime_diff works in msec, not csec */
 }
 
-/**
- * Return the difference between tv and the agent start time in hundredths of
- * a second.
- *
- * \deprecated Use netsnmp_get_agent_uptime() instead.
- *
- * @param[in] tv An absolute time as e.g. reported by gettimeofday().
- */
+                        /*
+                         * struct timeval equivalents of these 
+                         */
 u_long
 netsnmp_timeval_uptime(struct timeval * tv)
 {
     return netsnmp_marker_uptime((marker_t) tv);
 }
 
+                /*
+                 * Return the current value of 'sysUpTime' 
+                 */
+u_long
+netsnmp_get_agent_uptime(void)
+{
+    struct timeval  now;
+    gettimeofday(&now, NULL);
 
-struct timeval  starttime;
-static struct timeval starttimeM;
+    return netsnmp_timeval_uptime(&now);
+}
 
-/**
- * Return a pointer to the variable in which the Net-SNMP start time has
- * been stored.
- *
- * @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.
- */
-const_marker_t        
-netsnmp_get_agent_starttime(void)
+
+
+NETSNMP_INLINE void
+netsnmp_agent_add_list_data(netsnmp_agent_request_info *ari,
+                            netsnmp_data_list *node)
 {
-    return &starttime;
+    if (ari) {
+	if (ari->agent_data) {
+            netsnmp_add_list_data(&ari->agent_data, node);
+        } else {
+            ari->agent_data = node;
+	}
+    }
 }
 
-/**
- * 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)
+NETSNMP_INLINE int
+netsnmp_agent_remove_list_data(netsnmp_agent_request_info *ari,
+                               const char * name)
 {
-    struct timeval now, delta;
+    if ((NULL == ari) || (NULL == ari->agent_data))
+        return 1;
 
-    netsnmp_get_monotonic_clock(&now);
-    NETSNMP_TIMERSUB(&now, &starttimeM, &delta);
-    return delta.tv_sec * (uint64_t)100 + delta.tv_usec / 10000;
+    return netsnmp_remove_list_node(&ari->agent_data, name);
 }
 
-/**
- * Set the time at which Net-SNMP started either to the current time
- * (if s == NULL) or to *s (if s is not NULL).
- *
- * @see See also netsnmp_set_agent_uptime().
- */
-void            
-netsnmp_set_agent_starttime(marker_t s)
+NETSNMP_INLINE void    *
+netsnmp_agent_get_list_data(netsnmp_agent_request_info *ari,
+                            const char *name)
 {
-    if (s) {
-        struct timeval nowA, nowM;
-
-        starttime = *(struct timeval*)s;
-        gettimeofday(&nowA, NULL);
-        netsnmp_get_monotonic_clock(&nowM);
-        NETSNMP_TIMERSUB(&starttime, &nowA, &starttimeM);
-        NETSNMP_TIMERADD(&starttimeM, &nowM, &starttimeM);
-    } else {
-        gettimeofday(&starttime, NULL);
-        netsnmp_get_monotonic_clock(&starttimeM);
+    if (ari) {
+        return netsnmp_get_list_data(ari->agent_data, name);
     }
+    return NULL;
 }
 
-
-/**
- * Return the current value of 'sysUpTime' 
- */
-u_long
-netsnmp_get_agent_uptime(void)
+NETSNMP_INLINE void
+netsnmp_free_agent_data_set(netsnmp_agent_request_info *ari)
 {
-    struct timeval now, delta;
-
-    netsnmp_get_monotonic_clock(&now);
-    NETSNMP_TIMERSUB(&now, &starttimeM, &delta);
-    return delta.tv_sec * 100UL + delta.tv_usec / 10000;
+    if (ari) {
+        netsnmp_free_list_data(ari->agent_data);
+    }
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_SET_AGENT_UPTIME
-/**
- * Set the start time from which 'sysUpTime' is computed.
- *
- * @param[in] hsec New sysUpTime in hundredths of a second.
- *
- * @see See also netsnmp_set_agent_starttime().
- */
-void
-netsnmp_set_agent_uptime(u_long hsec)
+NETSNMP_INLINE void
+netsnmp_free_agent_data_sets(netsnmp_agent_request_info *ari)
 {
-    struct timeval  nowA, nowM;
-    struct timeval  new_uptime;
-
-    gettimeofday(&nowA, NULL);
-    netsnmp_get_monotonic_clock(&nowM);
-    new_uptime.tv_sec = hsec / 100;
-    new_uptime.tv_usec = (uint32_t)(hsec - new_uptime.tv_sec * 100) * 10000L;
-    NETSNMP_TIMERSUB(&nowA, &new_uptime, &starttime);
-    NETSNMP_TIMERSUB(&nowM, &new_uptime, &starttimeM);
+    if (ari) {
+        netsnmp_free_all_list_data(ari->agent_data);
+    }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SET_AGENT_UPTIME */
 
+NETSNMP_INLINE void
+netsnmp_free_agent_request_info(netsnmp_agent_request_info *ari)
+{
+    if (ari) {
+        if (ari->agent_data) {
+            netsnmp_free_all_list_data(ari->agent_data);
+	}
+        SNMP_FREE(ari);
+    }
+}
 
 /*************************************************************************
  *
@@ -3825,7 +3695,6 @@ netsnmp_set_mode_request_error(int mode, netsnmp_request_info *request,
  * @param error_value error value for requests
  * @return error_value
  */
-#ifndef NETSNMP_FEATURE_REMOVE_SET_ALL_REQUESTS_ERROR
 int
 netsnmp_set_all_requests_error(netsnmp_agent_request_info *reqinfo,
                                netsnmp_request_info *requests,
@@ -3834,5 +3703,4 @@ netsnmp_set_all_requests_error(netsnmp_agent_request_info *reqinfo,
     netsnmp_request_set_error_all(requests, error_value);
     return error_value;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SET_ALL_REQUESTS_ERROR */
 /** @} */
diff --git a/agent/snmp_perl.c b/agent/snmp_perl.c
index 48d9695..0011363 100644
--- a/agent/snmp_perl.c
+++ b/agent/snmp_perl.c
@@ -1,7 +1,3 @@
-#if defined(_WIN32) && !defined(_WIN32_WINNT)
-#define _WIN32_WINNT 0x501
-#endif
-
 #include <EXTERN.h>
 #include "perl.h"
 
@@ -9,14 +5,12 @@
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
-#include "snmp_perl.h"
-
 static PerlInterpreter *my_perl;
 
-void            boot_DynaLoader(pTHX_ CV * cv);
+void            boot_DynaLoader(CV * cv);
 
 void
-xs_init(pTHX)
+xs_init(void)
 {
     char            myfile[] = __FILE__;
     char            modulename[] = "DynaLoader::boot_DynaLoader";
@@ -29,14 +23,10 @@ xs_init(pTHX)
 void
 maybe_source_perl_startup(void)
 {
-    int             argc;
-    char          **argv;
-    char          **env;
-    char           *embedargs[] = { NULL, NULL };
+    const char     *embedargs[] = { "", "" };
     const char     *perl_init_file = netsnmp_ds_get_string(NETSNMP_DS_APPLICATION_ID,
 							   NETSNMP_DS_AGENT_PERL_INIT_FILE);
     char            init_file[SNMP_MAXBUF];
-    int             res;
 
     static int      have_done_init = 0;
 
@@ -44,58 +34,31 @@ maybe_source_perl_startup(void)
         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] = strdup(perl_init_file);
+    embedargs[1] = 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) {
-        snmp_log(LOG_ERR,
-                 "embedded perl support failed to initialize (perl_alloc())\n");
+    if (!my_perl)
         goto bail_out;
-    }
 
     perl_construct(my_perl);
-
-#ifdef PERL_EXIT_DESTRUCT_END
-    PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
-#endif
-
-    res = perl_parse(my_perl, xs_init, 2, embedargs, NULL);
-    if (res) {
-        snmp_log(LOG_ERR,
-                 "embedded perl support failed to initialize (perl_parse(%s)"
-                 " returned %d)\n", embedargs[1], res);
+    if (perl_parse(my_perl, xs_init, 2, (char **) embedargs, NULL))
         goto bail_out;
-    }
 
-    res = perl_run(my_perl);
-    if (res) {
-        snmp_log(LOG_ERR,
-                 "embedded perl support failed to initialize (perl_run()"
-                 " returned %d)\n", res);
+    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);
     return;
@@ -175,12 +138,11 @@ void
 shutdown_perl(void)
 {
     if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
-			       NETSNMP_DS_AGENT_DISABLE_PERL) ||
-        my_perl == NULL) {
+			       NETSNMP_DS_AGENT_DISABLE_PERL)) {
         return;
     }
     DEBUGMSGTL(("perl", "shutting down perl\n"));
     perl_destruct(my_perl);
-    my_perl = NULL;
+    perl_free(my_perl);
     DEBUGMSGTL(("perl", "finished shutting down perl\n"));
 }
diff --git a/agent/snmp_perl.h b/agent/snmp_perl.h
deleted file mode 100644
index 00fcc1c..0000000
--- a/agent/snmp_perl.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef SNMP_PERL_H
-#define SNMP_PERL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void init_perl(void);
-void shutdown_perl(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SNMP_PERL_H */
diff --git a/agent/snmp_vars.c b/agent/snmp_vars.c
index c069ab0..820445d 100644
--- a/agent/snmp_vars.c
+++ b/agent/snmp_vars.c
@@ -62,9 +62,6 @@ PERFORMANCE OF THIS SOFTWARE.
  */
 
 #include <net-snmp/net-snmp-config.h>
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
 #if HAVE_STRING_H
 #include <string.h>
 #endif
@@ -74,10 +71,13 @@ PERFORMANCE OF THIS SOFTWARE.
 #include <sys/types.h>
 #include <stdio.h>
 #include <fcntl.h>
-#include <errno.h>
 
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -86,6 +86,9 @@ PERFORMANCE OF THIS SOFTWARE.
 #  include <time.h>
 # endif
 #endif
+#if HAVE_WINSOCK_H
+# include <winsock.h>
+#endif
 #if HAVE_SYS_SOCKET_H
 # include <sys/socket.h>
 #endif
@@ -136,7 +139,6 @@ PERFORMANCE OF THIS SOFTWARE.
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/mib_modules.h>
-#include <net-snmp/agent/agent_sysORTable.h>
 #include "kernel.h"
 
 #include "mibgroup/struct.h"
@@ -148,14 +150,6 @@ PERFORMANCE OF THIS SOFTWARE.
 #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
 #define  MIN(a,b)                     (((a) < (b)) ? (a) : (b))
 #endif
@@ -237,6 +231,8 @@ u_char          return_buf[258];
 u_char          return_buf[256];        /* nee 64 */
 #endif
 
+struct timeval  starttime;
+
 int             callback_master_num = -1;
 
 #ifdef NETSNMP_TRANSPORT_CALLBACK_DOMAIN
@@ -284,7 +280,9 @@ init_agent(const char *app)
     /*
      * get current time (ie, the time the agent started) 
      */
-    netsnmp_set_agent_starttime(NULL);
+    gettimeofday(&starttime, NULL);
+    starttime.tv_sec--;
+    starttime.tv_usec += 1000000L;
 
     /*
      * we handle alarm signals ourselves in the select loop 
@@ -293,7 +291,7 @@ init_agent(const char *app)
 			   NETSNMP_DS_LIB_ALARM_DONT_USE_SIG, 1);
 
 #ifdef NETSNMP_CAN_USE_NLIST
-    r = init_kmem("/dev/kmem") ? 0 : -EACCES;
+    init_kmem("/dev/kmem");
 #endif
 
     setup_tree();
@@ -309,19 +307,16 @@ init_agent(const char *app)
     netsnmp_init_helpers();
     init_traps();
     netsnmp_container_init_list();
-    init_agent_sysORTable();
 
 #if defined(USING_AGENTX_SUBAGENT_MODULE) || defined(USING_AGENTX_MASTER_MODULE)
     /*
      * 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.  
@@ -340,11 +335,6 @@ init_agent(const char *app)
     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
@@ -371,16 +361,12 @@ shutdown_agent(void) {
     netsnmp_clear_callback_list();
     netsnmp_clear_tdomain_list();
     netsnmp_clear_handler_list();
-    shutdown_agent_sysORTable();
     netsnmp_container_free_list();
     clear_sec_mod();
     clear_snmp_enum();
     clear_callback();
-    shutdown_secmod();
+    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 b177d5b..c1814de 100644
--- a/agent/snmpd.c
+++ b/agent/snmpd.c
@@ -36,8 +36,6 @@
  * distributed with the Net-SNMP package.
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/types.h>
 
 #if HAVE_IO_H
 #include <io.h>
@@ -63,7 +61,11 @@
 #include <arpa/inet.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -77,6 +79,8 @@
 #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>
@@ -112,9 +116,6 @@
 #if HAVE_GRP_H
 #include <grp.h>
 #endif
-#ifdef HAVE_CRTDBG_H
-#include <crtdbg.h>
-#endif
 
 #ifndef PATH_MAX
 # ifdef _POSIX_PATH_MAX
@@ -137,20 +138,21 @@ typedef long    fd_mask;
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
 #include <net-snmp/library/fd_event_manager.h>
-#include <net-snmp/library/large_fd_set.h>
 
 #include "m2m.h"
-#include <net-snmp/agent/agent_module_config.h>
 #include <net-snmp/agent/mib_module_config.h>
 
 #include "snmpd.h"
-
+#include "mibgroup/struct.h"
 #include <net-snmp/agent/mib_modules.h>
 
+#include "mibgroup/util_funcs.h"
+
 #include <net-snmp/agent/agent_trap.h>
 
 #include <net-snmp/agent/table.h>
 #include <net-snmp/agent/table_iterator.h>
+#include "mib_module_includes.h"
 
 /*
  * Include winservice.h to support Windows Service
@@ -164,10 +166,6 @@ typedef long    fd_mask;
 
 #endif
 
-netsnmp_feature_want(logging_file)
-netsnmp_feature_want(logging_stdio)
-netsnmp_feature_want(logging_syslog)
-
 /*
  * Globals.
  */
@@ -178,7 +176,7 @@ netsnmp_feature_want(logging_syslog)
 #define TIMETICK         500000L
 
 int             snmp_dump_packet;
-static int      reconfig = 0;
+int             reconfig = 0;
 int             Facility = LOG_DAEMON;
 
 #ifdef WIN32SERVICE
@@ -189,17 +187,15 @@ int             Facility = LOG_DAEMON;
 #define AGENT_STOPPED 0
 int             agent_status = AGENT_STOPPED;
 /* app_name_long used for Event Log (syslog), SCM, registry etc */
-LPCTSTR         app_name_long = _T("Net-SNMP Agent");     /* Application Name */
+LPTSTR          app_name_long = _T("Net-SNMP Agent");     /* Application Name */
 #endif
 
 const char     *app_name = "snmpd";
 
 extern int      netsnmp_running;
-#ifdef USING_UTIL_FUNCS_RESTART_MODULE
 extern char   **argvrestartp;
 extern char    *argvrestart;
 extern char    *argvrestartname;
-#endif /* USING_UTIL_FUNCS_RESTART_MODULE */
 
 #ifdef USING_SMUX_MODULE
 #include <mibgroup/smux/smux.h>
@@ -264,90 +260,81 @@ static void
 usage(char *prog)
 {
 #ifdef WIN32SERVICE
-    printf("\nUsage:  %s [-register] [-quiet] [OPTIONS] [LISTENING ADDRESSES]"
-           "\n        %s [-unregister] [-quiet]", prog, prog);
+    printf("\nUsage:  %s [-register] [-quiet] [OPTIONS] [LISTENING ADDRESSES]",
+           prog);
+    printf("\n        %s [-unregister] [-quiet]", prog);
 #else
     printf("\nUsage:  %s [OPTIONS] [LISTENING ADDRESSES]", prog);
 #endif
-    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 at 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"
+    printf("\n");
+    printf("\n\tVersion:  %s\n", netsnmp_get_version());
+    printf("\tWeb:      http://www.net-snmp.org/\n");
+    printf("\tEmail:    net-snmp-coders at 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("  -DTOKEN[,...]\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"
-           "  -f\t\t\tdo not fork from the shell\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");
 #if HAVE_UNISTD_H
-           "  -g GID\t\tchange to this numeric gid after opening\n"
-	   "\t\t\t  transport endpoints\n"
-#endif
-           "  -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");
+    printf("  -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");
     snmp_log_options_usage("\t", stdout);
-    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"
+    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");
 #ifdef WIN32SERVICE
-           "  -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"
+    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");
 #endif
 #if HAVE_UNISTD_H
-           "  -u UID\t\tchange to this uid (numeric or textual) after\n"
-	   "\t\t\t  opening transport endpoints\n"
+    printf("  -u UID\t\tchange to this uid (numeric or textual) after\n"
+	   "\t\t\t  opening transport endpoints\n");
 #endif
 #ifdef WIN32SERVICE
-           "  -unregister\t\tunregister as a Windows service\n"
-           "  \t\t\t  (followed -quiet to prevent message popups)\n"
+    printf("  -unregister\t\tunregister as a Windows service\n");
+    printf("  \t\t\t  (followed -quiet to prevent message popups)\n");
 #endif
-           "  -v, --version\t\tdisplay version information\n"
-           "  -V\t\t\tverbose display\n"
+    printf("  -v, --version\t\tdisplay version information\n");
+    printf("  -V\t\t\tverbose display\n");
 #if defined(USING_AGENTX_SUBAGENT_MODULE)|| defined(USING_AGENTX_MASTER_MODULE)
-           "  -x ADDRESS\t\tuse ADDRESS as AgentX address\n"
+    printf("  -x ADDRESS\t\tuse ADDRESS as AgentX address\n");
 #endif
 #ifdef USING_AGENTX_SUBAGENT_MODULE
-           "  -X\t\t\trun as an AgentX subagent rather than as an\n"
-	   "\t\t\t  SNMP master agent\n"
-#endif
-           ,
-           "\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"
-           );
+    printf("  -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");
     exit(1);
 }
 
 static void
 version(void)
 {
-    printf("\nNET-SNMP version:  %s\n"
-           "Web:               http://www.net-snmp.org/\n"
-           "Email:             net-snmp-coders at lists.sourceforge.net\n\n",
-           netsnmp_get_version());
+    printf("\nNET-SNMP version:  %s\n", netsnmp_get_version());
+    printf("Web:               http://www.net-snmp.org/\n");
+    printf("Email:             net-snmp-coders at lists.sourceforge.net\n\n");
     exit(0);
 }
 
@@ -392,13 +379,9 @@ SnmpdCatchRandomSignal(int a)
 {
     /* Disable all logs and log the error via syslog */
     snmp_disable_log();
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
     snmp_enable_syslog();
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
     snmp_log(LOG_ERR, "Exiting on signal %d\n", a);
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
     snmp_disable_syslog();
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
     exit(1);
 }
 
@@ -438,7 +421,9 @@ main(int argc, char *argv[])
     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;
     char            option_compatability[] = "-Le";
 #if HAVE_GETPID
@@ -524,13 +509,11 @@ main(int argc, char *argv[])
             argv[i] = option_compatability;            
     }
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
 #ifdef WIN32
     snmp_log_syslogname(app_name_long);
 #else
     snmp_log_syslogname(app_name);
 #endif
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
     netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID,
                           NETSNMP_DS_LIB_APPTYPE, app_name);
 
@@ -574,9 +557,9 @@ main(int argc, char *argv[])
             break;
 
         case 'd':
-            netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID,
-                                   NETSNMP_DS_LIB_DUMP_PACKET,
-                                   ++snmp_dump_packet);
+            snmp_set_dump_packet(++snmp_dump_packet);
+            netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, 
+				   NETSNMP_DS_AGENT_VERBOSE, 1);
             break;
 
         case 'D':
@@ -595,18 +578,19 @@ main(int argc, char *argv[])
                 int             gid;
 
                 gid = strtoul(optarg, &ecp, 10);
-#if HAVE_GETGRNAM && HAVE_PWD_H
                 if (*ecp) {
+#if HAVE_GETPWNAM && HAVE_PWD_H
                     struct group  *info;
-
                     info = getgrnam(optarg);
-                    gid = info ? info->gr_gid : -1;
-                    endgrent();
-                }
+                    if (info) {
+                        gid = info->gr_gid;
+                    } else {
+#endif
+                        fprintf(stderr, "Bad group id: %s\n", optarg);
+                        exit(1);
+#if HAVE_GETPWNAM && HAVE_PWD_H
+                    }
 #endif
-                if (gid < 0) {
-                    fprintf(stderr, "Bad group id: %s\n", optarg);
-                    exit(1);
                 }
                 netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
 				   NETSNMP_DS_AGENT_GROUPID, gid);
@@ -632,7 +616,6 @@ main(int argc, char *argv[])
             }
             break;
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_FILE
         case 'l':
             printf("Warning: -l option is deprecated, use -Lf <file> instead\n");
             if (optarg != NULL) {
@@ -650,7 +633,6 @@ main(int argc, char *argv[])
                 usage(argv[0]);
             }
             break;
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_FILE */
 
         case 'L':
 	    if  (snmp_log_options( optarg, argc, argv ) < 0 ) {
@@ -696,8 +678,7 @@ main(int argc, char *argv[])
             break;
 
         case 'q':
-            netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                   NETSNMP_DS_LIB_QUICK_PRINT, 1);
+            snmp_set_quick_print(1);
             break;
 
         case 'r':
@@ -705,7 +686,6 @@ main(int argc, char *argv[])
 				      NETSNMP_DS_AGENT_NO_ROOT_ACCESS);
             break;
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
         case 's':
             printf("Warning: -s option is deprecated, use -Lsd instead\n");
             snmp_enable_syslog();
@@ -759,7 +739,6 @@ main(int argc, char *argv[])
                 usage(argv[0]);
             }
             break;
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
 
         case 'U':
             netsnmp_ds_toggle_boolean(NETSNMP_DS_APPLICATION_ID, 
@@ -773,18 +752,19 @@ main(int argc, char *argv[])
                 int             uid;
 
                 uid = strtoul(optarg, &ecp, 10);
-#if HAVE_GETPWNAM && HAVE_PWD_H
                 if (*ecp) {
+#if HAVE_GETPWNAM && HAVE_PWD_H
                     struct passwd  *info;
-
                     info = getpwnam(optarg);
-                    uid = info ? info->pw_uid : -1;
-                    endpwent();
-                }
+                    if (info) {
+                        uid = info->pw_uid;
+                    } else {
+#endif
+                        fprintf(stderr, "Bad user id: %s\n", optarg);
+                        exit(1);
+#if HAVE_GETPWNAM && HAVE_PWD_H
+                    }
 #endif
-                if (uid < 0) {
-                    fprintf(stderr, "Bad user id: %s\n", optarg);
-                    exit(1);
                 }
                 netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
 				   NETSNMP_DS_AGENT_USERID, uid);
@@ -848,7 +828,6 @@ main(int argc, char *argv[])
     }
 
     if (optind < argc) {
-#ifndef NETSNMP_NO_LISTEN_SUPPORT
         /*
          * There are optional transport addresses on the command line.  
          */
@@ -857,7 +836,7 @@ main(int argc, char *argv[])
             char *c, *astring;
             if ((c = netsnmp_ds_get_string(NETSNMP_DS_APPLICATION_ID, 
 					   NETSNMP_DS_AGENT_PORTS))) {
-                astring = (char*)malloc(strlen(c) + 2 + strlen(argv[i]));
+                astring = malloc(strlen(c) + 2 + strlen(argv[i]));
                 if (astring == NULL) {
                     fprintf(stderr, "malloc failure processing argv[%d]\n", i);
                     exit(1);
@@ -874,102 +853,82 @@ main(int argc, char *argv[])
         DEBUGMSGTL(("snmpd/main", "port spec: %s\n",
                     netsnmp_ds_get_string(NETSNMP_DS_APPLICATION_ID, 
 					  NETSNMP_DS_AGENT_PORTS)));
-#else /* NETSNMP_NO_LISTEN_SUPPORT */
-        fprintf(stderr, "You specified ports to open; this agent was built to only send notifications\n");
-        exit(1);
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
     }
 
 #ifdef NETSNMP_LOGFILE
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_FILE
     if (0 == log_set)
         snmp_enable_filelog(NETSNMP_LOGFILE,
                             netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
                                                    NETSNMP_DS_LIB_APPEND_LOGFILES));
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_FILE */
 #endif
 
-#ifdef USING_UTIL_FUNCS_RESTART_MODULE
-    {
-        /*
-         * Initialize a argv set to the current for restarting the agent.
-         */
-        char *cptr, **argvptr;
-
-        argvrestartp = (char **)malloc((argc + 2) * sizeof(char *));
-        argvptr = argvrestartp;
-        for (i = 0, ret = 1; i < argc; i++) {
-            ret += strlen(argv[i]) + 1;
-        }
-        argvrestart = (char *) malloc(ret);
-        argvrestartname = (char *) malloc(strlen(argv[0]) + 1);
-        if (!argvrestartp || !argvrestart || !argvrestartname) {
-            fprintf(stderr, "malloc failure processing argvrestart\n");
-            exit(1);
-        }
-        strcpy(argvrestartname, argv[0]);
-
-        for (cptr = argvrestart, i = 0; i < argc; i++) {
-            strcpy(cptr, argv[i]);
-            *(argvptr++) = cptr;
-            cptr += strlen(argv[i]) + 1;
-        }
+    /*
+     * Initialize a argv set to the current for restarting the agent.   
+     */
+    argvrestartp = (char **)malloc((argc + 2) * sizeof(char *));
+    argvptr = argvrestartp;
+    for (i = 0, ret = 1; i < argc; i++) {
+        ret += strlen(argv[i]) + 1;
     }
-#endif /* USING_UTIL_FUNCS_RESTART_MODULE */
-
+    argvrestart = (char *) malloc(ret);
+    argvrestartname = (char *) malloc(strlen(argv[0]) + 1);
+    if (!argvrestartp || !argvrestart || !argvrestartname) {
+        fprintf(stderr, "malloc failure processing argvrestart\n");
+        exit(1);
+    }
+    strcpy(argvrestartname, argv[0]);
     if (agent_mode == -1) {
-        if (strstr(argv[0], "agentxd") != NULL) {
-            netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
+        if (strstr(argvrestartname, "agentxd") != NULL) {
+            netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, 
 				   NETSNMP_DS_AGENT_ROLE, SUB_AGENT);
         } else {
-            netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
+            netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, 
 				   NETSNMP_DS_AGENT_ROLE, MASTER_AGENT);
         }
     } else {
-        netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
+        netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, 
 			       NETSNMP_DS_AGENT_ROLE, agent_mode);
     }
 
-    SOCK_STARTUP;
-    if (init_agent(app_name) != 0) {
-        snmp_log(LOG_ERR, "Agent initialization failed\n");
-        exit(1);
+    for (cptr = argvrestart, i = 0; i < argc; i++) {
+        strcpy(cptr, argv[i]);
+        *(argvptr++) = cptr;
+        cptr += strlen(argv[i]) + 1;
     }
-    init_mib_modules();
+    *cptr = 0;
+    *argvptr = NULL;
 
+#ifdef BUFSIZ
+    setvbuf(stdout, NULL, _IOLBF, BUFSIZ);
+#endif
     /*
-     * start library 
+     * Initialize the world.  Detach from the shell.  Create initial user.  
      */
-    init_snmp(app_name);
-
-    if ((ret = init_master_agent()) != 0) {
+    if(!dont_fork) {
+        int quit = ! netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
+                                            NETSNMP_DS_AGENT_QUIT_IMMEDIATELY);
+        ret = netsnmp_daemonize(quit, snmp_stderrlog_status());
         /*
-         * Some error opening one of the specified agent transports.  
+         * xxx-rks: do we care if fork fails? I think we should...
          */
-        snmp_log(LOG_ERR, "Server Exiting with code 1\n");
-        exit(1);
+        if(ret != 0)
+            Exit(1);                /*  Exit logs exit val for us  */
     }
 
+    SOCK_STARTUP;
+    init_agent(app_name);        /* do what we need to do first. */
+    init_mib_modules();
+
     /*
-     * Initialize the world.  Detach from the shell.  Create initial user.  
+     * start library 
      */
-    if(!dont_fork) {
-        int quit = ! netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
-                                            NETSNMP_DS_AGENT_QUIT_IMMEDIATELY);
-        ret = netsnmp_daemonize(quit,
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_STDIO
-                                snmp_stderrlog_status()
-#else /* NETSNMP_FEATURE_REMOVE_LOGGING_STDIO */
-                                0
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_STDIO */
-            );
+    init_snmp(app_name);
+
+    if ((ret = init_master_agent()) != 0) {
         /*
-         * xxx-rks: do we care if fork fails? I think we should...
+         * Some error opening one of the specified agent transports.  
          */
-        if(ret != 0) {
-            snmp_log(LOG_ERR, "Server Exiting with code 1\n");
-            exit(1);
-        }
+        Exit(1);                /*  Exit logs exit val for us  */
     }
 
 #if HAVE_GETPID
@@ -995,22 +954,14 @@ main(int argc, char *argv[])
                 fprintf(PID, "%d\n", (int) getpid());
                 fclose(PID);
             }
-#ifndef _MSC_VER
-            /* The sequence open()/fdopen()/fclose()/close() makes MSVC crash,
-               hence skip the close() call when using the MSVC runtime. */
             close(fd);
-#endif
         }
     }
 #endif
 
-#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 );
+#if HAVE_UNISTD_H
+    cptr = get_persistent_directory();
+    mkdirhier( cptr, NETSNMP_AGENT_DIRECTORY_MODE, 0 );
    
     uid = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID, 
 			     NETSNMP_DS_AGENT_USERID);
@@ -1019,12 +970,12 @@ main(int argc, char *argv[])
     
 #ifdef HAVE_CHOWN
     if ( uid != 0 || gid != 0 )
-        chown( persistent_dir, uid, gid );
+        chown( cptr, uid, gid );
 #endif
 
 #ifdef HAVE_SETGID
     if ((gid = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID, 
-				  NETSNMP_DS_AGENT_GROUPID)) > 0) {
+				  NETSNMP_DS_AGENT_GROUPID)) != 0) {
         DEBUGMSGTL(("snmpd/main", "Changing gid to %d.\n", gid));
         if (setgid(gid) == -1
 #ifdef HAVE_SETGROUPS
@@ -1041,27 +992,7 @@ main(int argc, char *argv[])
 #endif
 #ifdef HAVE_SETUID
     if ((uid = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID, 
-				  NETSNMP_DS_AGENT_USERID)) > 0) {
-#if HAVE_GETPWNAM && HAVE_PWD_H && HAVE_INITGROUPS
-        struct passwd *info;
-
-        /*
-         * Set supplementary groups before changing UID
-         *   (which probably involves giving up privileges)
-         */
-        info = getpwuid(uid);
-        if (info) {
-            DEBUGMSGTL(("snmpd/main", "Supplementary groups for %s.\n", info->pw_name));
-            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)) {
-                    exit(1);
-                }
-            }
-        }
-        endpwent();
-#endif
+				  NETSNMP_DS_AGENT_USERID)) != 0) {
         DEBUGMSGTL(("snmpd/main", "Changing uid to %d.\n", uid));
         if (setuid(uid) == -1) {
             snmp_log_perror("setuid failed");
@@ -1072,7 +1003,6 @@ main(int argc, char *argv[])
         }
     }
 #endif
-    }
 #endif
 
     /*
@@ -1110,8 +1040,11 @@ main(int argc, char *argv[])
     SnmpTrapNodeDown();
     DEBUGMSGTL(("snmpd/main", "Bye...\n"));
     snmp_shutdown(app_name);
+#ifdef SHUTDOWN_AGENT_CLEANLY /* broken code */
+    /* these attempt to free all known memory, but result in double frees */
     shutdown_master_agent();
     shutdown_agent();
+#endif
 
     if (!netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
 				NETSNMP_DS_AGENT_LEAVE_PIDFILE) &&
@@ -1122,50 +1055,13 @@ main(int argc, char *argv[])
     agent_status = AGENT_STOPPED;
 #endif
 
-#ifdef USING_UTIL_FUNCS_RESTART_MODULE
     SNMP_FREE(argvrestartname);
     SNMP_FREE(argvrestart);
     SNMP_FREE(argvrestartp);
-#endif /* USING_UTIL_FUNCS_RESTART_MODULE */
-
     SOCK_CLEANUP;
     return 0;
 }                               /* End main() -- snmpd */
 
-#if defined(WIN32)
-
-#include <process.h>
-#include <net-snmp/library/snmp_assert.h>
-
-static unsigned s_threadid;
-HANDLE s_thread_handle;
-
-static unsigned __stdcall wait_for_stdin(void* arg)
-{
-    if (getc(stdin) != EOF)
-        netsnmp_running = 0;
-    return 0;
-}
-
-static void create_stdin_waiter_thread(void)
-{
-    netsnmp_assert(s_thread_handle == 0);
-    s_thread_handle = (HANDLE)_beginthreadex(0, 0, wait_for_stdin, 0, 0, &s_threadid);
-    netsnmp_assert(s_thread_handle != 0);
-}
-
-static void join_stdin_waiter_thread(void)
-{
-    int result;
-
-    netsnmp_assert(s_thread_handle != 0);
-    result = WaitForSingleObject(s_thread_handle, 1000);
-    netsnmp_assert(result != WAIT_TIMEOUT);
-    CloseHandle(s_thread_handle);
-    s_thread_handle = 0;
-}
-#endif
-
 /*******************************************************************-o-******
  * receive
  *
@@ -1175,7 +1071,7 @@ static void join_stdin_waiter_thread(void)
  *	0	On success.
  *	-1	System error.
  *
- * Infinite while-loop which monitors incoming messages for the agent.
+ * Infinite while-loop which monitors incoming messges for the agent.
  * Invoke the established message handlers for incoming messages on a per
  * port basis.  Handle timeouts.
  */
@@ -1183,26 +1079,18 @@ static int
 receive(void)
 {
     int             numfds;
-    netsnmp_large_fd_set readfds, writefds, exceptfds;
+    fd_set          readfds, writefds, exceptfds;
     struct timeval  timeout, *tvp = &timeout;
     int             count, block, i;
 #ifdef	USING_SMUX_MODULE
     int             sd;
 #endif                          /* USING_SMUX_MODULE */
 
-    netsnmp_large_fd_set_init(&readfds, FD_SETSIZE);
-    netsnmp_large_fd_set_init(&writefds, FD_SETSIZE);
-    netsnmp_large_fd_set_init(&exceptfds, FD_SETSIZE);
-
     /*
      * ignore early sighup during startup
      */
     reconfig = 0;
 
-#if defined(WIN32)
-    create_stdin_waiter_thread();
-#endif
-
     /*
      * Loop-forever: execute message handlers for sockets with data
      */
@@ -1225,6 +1113,13 @@ receive(void)
 #endif
         }
 
+        for (i = 0; i < NUM_EXTERNAL_SIGS; i++) {
+            if (external_signal_scheduled[i]) {
+                external_signal_scheduled[i]--;
+                external_signal_handler[i](i);
+            }
+        }
+
         /*
          * default to sleeping for a really long time. INT_MAX
          * should be sufficient (eg we don't care if time_t is
@@ -1235,18 +1130,18 @@ receive(void)
         tvp->tv_usec = 0;
 
         numfds = 0;
-        NETSNMP_LARGE_FD_ZERO(&readfds);
-        NETSNMP_LARGE_FD_ZERO(&writefds);
-        NETSNMP_LARGE_FD_ZERO(&exceptfds);
+        FD_ZERO(&readfds);
+        FD_ZERO(&writefds);
+        FD_ZERO(&exceptfds);
         block = 0;
-        snmp_select_info2(&numfds, &readfds, tvp, &block);
+        snmp_select_info(&numfds, &readfds, tvp, &block);
         if (block == 1) {
             tvp = NULL;         /* block without timeout */
 	}
 
 #ifdef	USING_SMUX_MODULE
         if (smux_listen_sd >= 0) {
-            NETSNMP_LARGE_FD_SET(smux_listen_sd, &readfds);
+            FD_SET(smux_listen_sd, &readfds);
             numfds =
                 smux_listen_sd >= numfds ? smux_listen_sd + 1 : numfds;
 
@@ -1254,32 +1149,21 @@ receive(void)
                 sd = smux_snmp_select_list_get_SD_from_List(i);
                 if (sd != 0)
                 {
-                   NETSNMP_LARGE_FD_SET(sd, &readfds);
+                   FD_SET(sd, &readfds);
                    numfds = sd >= numfds ? sd + 1 : numfds;
                 }
             }
         }
 #endif                          /* USING_SMUX_MODULE */
 
-#ifndef NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER
-        netsnmp_external_event_info2(&numfds, &readfds, &writefds, &exceptfds);
-#endif /* NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER */
+        netsnmp_external_event_info(&numfds, &readfds, &writefds, &exceptfds);
 
     reselect:
-        for (i = 0; i < NUM_EXTERNAL_SIGS; i++) {
-            if (external_signal_scheduled[i]) {
-                external_signal_scheduled[i]--;
-                external_signal_handler[i](i);
-            }
-        }
-
         DEBUGMSGTL(("snmpd/select", "select( numfds=%d, ..., tvp=%p)\n",
                     numfds, tvp));
-        if (tvp)
-            DEBUGMSGTL(("timer", "tvp %ld.%ld\n", (long) tvp->tv_sec,
-                        (long) tvp->tv_usec));
-        count = netsnmp_large_fd_set_select(numfds, &readfds, &writefds, &exceptfds,
-				     tvp);
+        if(tvp)
+            DEBUGMSGTL(("timer", "tvp %d.%d\n", tvp->tv_sec, tvp->tv_usec));
+        count = select(numfds, &readfds, &writefds, &exceptfds, tvp);
         DEBUGMSGTL(("snmpd/select", "returned, count = %d\n", count));
 
         if (count > 0) {
@@ -1291,7 +1175,7 @@ receive(void)
             if (smux_listen_sd >= 0) {
                 for (i = 0; i < smux_snmp_select_list_get_length(); i++) {
                     sd = smux_snmp_select_list_get_SD_from_List(i);
-                    if (NETSNMP_LARGE_FD_ISSET(sd, &readfds)) {
+                    if (FD_ISSET(sd, &readfds)) {
                         if (smux_process(sd) < 0) {
                             smux_snmp_select_list_del(sd);
                         }
@@ -1300,7 +1184,7 @@ receive(void)
                 /*
                  * new connection 
                  */
-                if (NETSNMP_LARGE_FD_ISSET(smux_listen_sd, &readfds)) {
+                if (FD_ISSET(smux_listen_sd, &readfds)) {
                     if ((sd = smux_accept(smux_listen_sd)) >= 0) {
                         smux_snmp_select_list_add(sd);
                     }
@@ -1308,15 +1192,11 @@ receive(void)
             }
 
 #endif                          /* USING_SMUX_MODULE */
-
-#ifndef NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER
-            netsnmp_dispatch_external_events2(&count, &readfds,
-                                              &writefds, &exceptfds);
-#endif /* NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER */
-
+            netsnmp_dispatch_external_events(&count, &readfds,
+                                           &writefds, &exceptfds);
             /* If there are still events leftover, process them */
             if (count > 0) {
-              snmp_read2(&readfds);
+              snmp_read(&readfds);
             }
         } else
             switch (count) {
@@ -1344,11 +1224,6 @@ receive(void)
             }                   /* endif -- count>0 */
 
         /*
-         * see if persistent store needs to be saved
-         */
-        snmp_store_if_needed();
-
-        /*
          * run requested alarms 
          */
         run_alarms();
@@ -1357,14 +1232,6 @@ receive(void)
 
     }                           /* endwhile */
 
-    netsnmp_large_fd_set_cleanup(&readfds);
-    netsnmp_large_fd_set_cleanup(&writefds);
-    netsnmp_large_fd_set_cleanup(&exceptfds);
-
-#if defined(WIN32)
-    join_stdin_waiter_thread();
-#endif
-
     snmp_log(LOG_INFO, "Received TERM or STOP signal...  shutting down...\n");
     return 0;
 
@@ -1451,10 +1318,6 @@ _tmain(int argc, TCHAR * argv[])
     int             nRunType = RUN_AS_CONSOLE;
     int             quiet = 0;
     
-#if 0
-    _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF /*| _CRTDBG_CHECK_ALWAYS_DF*/);
-#endif
-
     nRunType = ParseCmdLineForServiceOption(argc, argv, &quiet);
 
     switch (nRunType) {
diff --git a/agent/snmpd.h b/agent/snmpd.h
index 89bcd31..935c0e7 100644
--- a/agent/snmpd.h
+++ b/agent/snmpd.h
@@ -2,10 +2,6 @@
  * snmpd.h
  */
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 #define MASTER_AGENT 0
 #define SUB_AGENT    1
 extern int      agent_role;
@@ -21,7 +17,3 @@ extern int      snmp_read_packet(int);
  * config file parsing routines 
  */
 void            agentBoots_conf(char *, char *);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/apps/Makefile.depend b/apps/Makefile.depend
index 16ac83c..d386763 100644
--- a/apps/Makefile.depend
+++ b/apps/Makefile.depend
@@ -1,143 +1,62 @@
 # 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/net-snmp-features.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/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/ds_agent.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
-./encode_keychange.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./encode_keychange.lo: ../include/net-snmp/library/ucd_compat.h
-./encode_keychange.lo: ../include/net-snmp/library/mib.h
-./encode_keychange.lo: ../include/net-snmp/mib_api.h
-./encode_keychange.lo: ../include/net-snmp/library/parse.h
-./encode_keychange.lo: ../include/net-snmp/library/oid_stash.h
-./encode_keychange.lo: ../include/net-snmp/net-snmp-features.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmp_impl.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmp.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmp-tc.h
-./encode_keychange.lo: ../include/net-snmp/library/getopt.h
 ./encode_keychange.lo: ../include/net-snmp/utilities.h
+./encode_keychange.lo: ../include/net-snmp/library/snmp_client.h
 ./encode_keychange.lo: ../include/net-snmp/library/system.h
 ./encode_keychange.lo: ../include/net-snmp/library/tools.h
 ./encode_keychange.lo: ../include/net-snmp/library/int64.h
 ./encode_keychange.lo: ../include/net-snmp/library/mt_support.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmp_alarm.h
+./encode_keychange.lo: ../include/net-snmp/library/callback.h
 ./encode_keychange.lo: ../include/net-snmp/library/data_list.h
+./encode_keychange.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./encode_keychange.lo: ../include/net-snmp/library/container.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmp_assert.h
 ./encode_keychange.lo: ../include/net-snmp/version.h
+./encode_keychange.lo: ../include/net-snmp/session_api.h
+./encode_keychange.lo: ../include/net-snmp/library/snmp_transport.h
+./encode_keychange.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./encode_keychange.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./encode_keychange.lo: ../include/net-snmp/pdu_api.h
+./encode_keychange.lo: ../include/net-snmp/mib_api.h
+./encode_keychange.lo: ../include/net-snmp/library/mib.h
+./encode_keychange.lo: ../include/net-snmp/library/parse.h
+./encode_keychange.lo: ../include/net-snmp/varbind_api.h
 ./encode_keychange.lo: ../include/net-snmp/config_api.h
 ./encode_keychange.lo: ../include/net-snmp/library/read_config.h
 ./encode_keychange.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -146,54 +65,32 @@
 ./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/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/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 ../include/net-snmp/types.h
 ./snmpbulkget.lo: ../include/net-snmp/definitions.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmp_api.h
-./snmpbulkget.lo: ../include/net-snmp/varbind_api.h
-./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
-./snmpbulkget.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpbulkget.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpbulkget.lo: ../include/net-snmp/library/mib.h
-./snmpbulkget.lo: ../include/net-snmp/mib_api.h
-./snmpbulkget.lo: ../include/net-snmp/library/parse.h
-./snmpbulkget.lo: ../include/net-snmp/library/oid_stash.h
-./snmpbulkget.lo: ../include/net-snmp/net-snmp-features.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/snmp_client.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
 ./snmpbulkget.lo: ../include/net-snmp/library/mt_support.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpbulkget.lo: ../include/net-snmp/library/callback.h
 ./snmpbulkget.lo: ../include/net-snmp/library/data_list.h
+./snmpbulkget.lo: ../include/net-snmp/library/oid_stash.h
 ./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
@@ -201,13 +98,29 @@
 ./snmpbulkget.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmpbulkget.lo: ../include/net-snmp/version.h 
 ./snmpbulkget.lo: ../include/net-snmp/net-snmp-includes.h
-./snmpbulkget.lo: ../include/net-snmp/library/getopt.h
+./snmpbulkget.lo: ../include/net-snmp/session_api.h
+./snmpbulkget.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpbulkget.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpbulkget.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpbulkget.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmpbulkget.lo: ../include/net-snmp/library/mib.h
+./snmpbulkget.lo: ../include/net-snmp/library/parse.h
+./snmpbulkget.lo: ../include/net-snmp/varbind_api.h
 ./snmpbulkget.lo: ../include/net-snmp/config_api.h
 ./snmpbulkget.lo: ../include/net-snmp/library/read_config.h
 ./snmpbulkget.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -216,68 +129,64 @@
 ./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
-./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpbulkwalk.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpbulkwalk.lo: ../include/net-snmp/library/mib.h
-./snmpbulkwalk.lo: ../include/net-snmp/mib_api.h
-./snmpbulkwalk.lo: ../include/net-snmp/library/parse.h
-./snmpbulkwalk.lo: ../include/net-snmp/library/oid_stash.h
-./snmpbulkwalk.lo: ../include/net-snmp/net-snmp-features.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmp.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpbulkwalk.lo: ../include/net-snmp/library/getopt.h
 ./snmpbulkwalk.lo: ../include/net-snmp/utilities.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/system.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/tools.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/int64.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/mt_support.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/callback.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/data_list.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpbulkwalk.lo: ../include/net-snmp/library/container.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmpbulkwalk.lo: ../include/net-snmp/version.h
+./snmpbulkwalk.lo: ../include/net-snmp/session_api.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpbulkwalk.lo: ../include/net-snmp/pdu_api.h
+./snmpbulkwalk.lo: ../include/net-snmp/mib_api.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/mib.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/parse.h
+./snmpbulkwalk.lo: ../include/net-snmp/varbind_api.h
 ./snmpbulkwalk.lo: ../include/net-snmp/config_api.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/read_config.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -286,67 +195,62 @@
 ./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/net-snmp-includes.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/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
-./snmpdelta.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpdelta.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpdelta.lo: ../include/net-snmp/library/mib.h
-./snmpdelta.lo: ../include/net-snmp/mib_api.h
-./snmpdelta.lo: ../include/net-snmp/library/parse.h
-./snmpdelta.lo: ../include/net-snmp/library/oid_stash.h
-./snmpdelta.lo: ../include/net-snmp/net-snmp-features.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmp.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpdelta.lo: ../include/net-snmp/library/getopt.h
 ./snmpdelta.lo: ../include/net-snmp/utilities.h
+./snmpdelta.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpdelta.lo: ../include/net-snmp/library/system.h
 ./snmpdelta.lo: ../include/net-snmp/library/tools.h
 ./snmpdelta.lo: ../include/net-snmp/library/int64.h
 ./snmpdelta.lo: ../include/net-snmp/library/mt_support.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpdelta.lo: ../include/net-snmp/library/callback.h
 ./snmpdelta.lo: ../include/net-snmp/library/data_list.h
+./snmpdelta.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpdelta.lo: ../include/net-snmp/library/container.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmpdelta.lo: ../include/net-snmp/version.h
+./snmpdelta.lo: ../include/net-snmp/session_api.h
+./snmpdelta.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpdelta.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpdelta.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpdelta.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmpdelta.lo: ../include/net-snmp/library/mib.h
+./snmpdelta.lo: ../include/net-snmp/library/parse.h
+./snmpdelta.lo: ../include/net-snmp/varbind_api.h
 ./snmpdelta.lo: ../include/net-snmp/config_api.h
 ./snmpdelta.lo: ../include/net-snmp/library/read_config.h
 ./snmpdelta.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -355,64 +259,61 @@
 ./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/net-snmp-includes.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/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
-./snmpdf.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpdf.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpdf.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./snmpdf.lo: ../include/net-snmp/library/parse.h
-./snmpdf.lo: ../include/net-snmp/library/oid_stash.h
-./snmpdf.lo: ../include/net-snmp/net-snmp-features.h
+./snmpdf.lo:  ../include/net-snmp/library/snmp_api.h
+./snmpdf.lo: ../include/net-snmp/library/asn1.h
 ./snmpdf.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpdf.lo: ../include/net-snmp/library/snmp.h
 ./snmpdf.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpdf.lo: ../include/net-snmp/library/getopt.h
 ./snmpdf.lo: ../include/net-snmp/utilities.h
+./snmpdf.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpdf.lo: ../include/net-snmp/library/system.h
 ./snmpdf.lo: ../include/net-snmp/library/tools.h
 ./snmpdf.lo: ../include/net-snmp/library/int64.h
 ./snmpdf.lo: ../include/net-snmp/library/mt_support.h
 ./snmpdf.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpdf.lo: ../include/net-snmp/library/callback.h
 ./snmpdf.lo: ../include/net-snmp/library/data_list.h
+./snmpdf.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpdf.lo: ../include/net-snmp/library/container.h
 ./snmpdf.lo: ../include/net-snmp/library/snmp_assert.h
-./snmpdf.lo: ../include/net-snmp/version.h ../include/net-snmp/config_api.h
+./snmpdf.lo: ../include/net-snmp/version.h ../include/net-snmp/session_api.h
+./snmpdf.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpdf.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpdf.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpdf.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmpdf.lo: ../include/net-snmp/library/mib.h
+./snmpdf.lo: ../include/net-snmp/library/parse.h
+./snmpdf.lo: ../include/net-snmp/varbind_api.h
+./snmpdf.lo: ../include/net-snmp/config_api.h
 ./snmpdf.lo: ../include/net-snmp/library/read_config.h
 ./snmpdf.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -421,67 +322,62 @@
 ./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/utilities.h
-./snmpget.lo: ../include/net-snmp/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/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/utilities.h ../include/net-snmp/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
-./snmpget.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpget.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpget.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./snmpget.lo: ../include/net-snmp/library/parse.h
-./snmpget.lo: ../include/net-snmp/library/oid_stash.h
-./snmpget.lo: ../include/net-snmp/net-snmp-features.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/snmp_client.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
 ./snmpget.lo: ../include/net-snmp/library/mt_support.h
 ./snmpget.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpget.lo: ../include/net-snmp/library/callback.h
 ./snmpget.lo: ../include/net-snmp/library/data_list.h
+./snmpget.lo: ../include/net-snmp/library/oid_stash.h
 ./snmpget.lo: ../include/net-snmp/library/check_varbind.h
-./snmpget.lo: ../include/net-snmp/library/container.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_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/library/getopt.h
+./snmpget.lo: ../include/net-snmp/net-snmp-includes.h
+./snmpget.lo: ../include/net-snmp/session_api.h
+./snmpget.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpget.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpget.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpget.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmpget.lo: ../include/net-snmp/library/mib.h
+./snmpget.lo: ../include/net-snmp/library/parse.h
+./snmpget.lo: ../include/net-snmp/varbind_api.h
 ./snmpget.lo: ../include/net-snmp/config_api.h
 ./snmpget.lo: ../include/net-snmp/library/read_config.h
 ./snmpget.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -490,68 +386,63 @@
 ./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
-./snmpgetnext.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpgetnext.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpgetnext.lo: ../include/net-snmp/library/mib.h
-./snmpgetnext.lo: ../include/net-snmp/mib_api.h
-./snmpgetnext.lo: ../include/net-snmp/library/parse.h
-./snmpgetnext.lo: ../include/net-snmp/library/oid_stash.h
-./snmpgetnext.lo: ../include/net-snmp/net-snmp-features.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmp.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpgetnext.lo: ../include/net-snmp/library/getopt.h
 ./snmpgetnext.lo: ../include/net-snmp/utilities.h
+./snmpgetnext.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpgetnext.lo: ../include/net-snmp/library/system.h
 ./snmpgetnext.lo: ../include/net-snmp/library/tools.h
 ./snmpgetnext.lo: ../include/net-snmp/library/int64.h
 ./snmpgetnext.lo: ../include/net-snmp/library/mt_support.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpgetnext.lo: ../include/net-snmp/library/callback.h
 ./snmpgetnext.lo: ../include/net-snmp/library/data_list.h
+./snmpgetnext.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpgetnext.lo: ../include/net-snmp/library/container.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmpgetnext.lo: ../include/net-snmp/version.h
+./snmpgetnext.lo: ../include/net-snmp/session_api.h
+./snmpgetnext.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpgetnext.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpgetnext.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpgetnext.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmpgetnext.lo: ../include/net-snmp/library/mib.h
+./snmpgetnext.lo: ../include/net-snmp/library/parse.h
+./snmpgetnext.lo: ../include/net-snmp/varbind_api.h
 ./snmpgetnext.lo: ../include/net-snmp/config_api.h
 ./snmpgetnext.lo: ../include/net-snmp/library/read_config.h
 ./snmpgetnext.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -560,65 +451,61 @@
 ./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/net-snmp-includes.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/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/snmp_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
-./snmpset.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpset.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpset.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./snmpset.lo: ../include/net-snmp/library/parse.h
-./snmpset.lo: ../include/net-snmp/library/oid_stash.h
-./snmpset.lo: ../include/net-snmp/net-snmp-features.h
 ./snmpset.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpset.lo: ../include/net-snmp/library/snmp.h
 ./snmpset.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpset.lo: ../include/net-snmp/library/getopt.h
 ./snmpset.lo: ../include/net-snmp/utilities.h
+./snmpset.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpset.lo: ../include/net-snmp/library/system.h
 ./snmpset.lo: ../include/net-snmp/library/tools.h
 ./snmpset.lo: ../include/net-snmp/library/int64.h
 ./snmpset.lo: ../include/net-snmp/library/mt_support.h
 ./snmpset.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpset.lo: ../include/net-snmp/library/callback.h
 ./snmpset.lo: ../include/net-snmp/library/data_list.h
+./snmpset.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpset.lo: ../include/net-snmp/library/container.h
 ./snmpset.lo: ../include/net-snmp/library/snmp_assert.h
-./snmpset.lo: ../include/net-snmp/version.h ../include/net-snmp/config_api.h
+./snmpset.lo: ../include/net-snmp/version.h ../include/net-snmp/session_api.h
+./snmpset.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpset.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpset.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpset.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmpset.lo: ../include/net-snmp/library/mib.h
+./snmpset.lo: ../include/net-snmp/library/parse.h
+./snmpset.lo: ../include/net-snmp/varbind_api.h
+./snmpset.lo: ../include/net-snmp/config_api.h
 ./snmpset.lo: ../include/net-snmp/library/read_config.h
 ./snmpset.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -627,53 +514,33 @@
 ./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/utilities.h ../include/net-snmp/types.h
-./snmpstatus.lo: ../include/net-snmp/library/oid.h
-./snmpstatus.lo: ../include/net-snmp/library/types.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/utilities.h
+./snmpstatus.lo: ../include/net-snmp/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
-./snmpstatus.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpstatus.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpstatus.lo: ../include/net-snmp/library/mib.h
-./snmpstatus.lo: ../include/net-snmp/mib_api.h
-./snmpstatus.lo: ../include/net-snmp/library/parse.h
-./snmpstatus.lo: ../include/net-snmp/library/oid_stash.h
-./snmpstatus.lo: ../include/net-snmp/net-snmp-features.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/snmp_client.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
 ./snmpstatus.lo: ../include/net-snmp/library/mt_support.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpstatus.lo: ../include/net-snmp/library/callback.h
 ./snmpstatus.lo: ../include/net-snmp/library/data_list.h
+./snmpstatus.lo: ../include/net-snmp/library/oid_stash.h
 ./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
@@ -681,13 +548,29 @@
 ./snmpstatus.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmpstatus.lo: ../include/net-snmp/version.h
 ./snmpstatus.lo: ../include/net-snmp/net-snmp-includes.h
-./snmpstatus.lo: ../include/net-snmp/library/getopt.h
+./snmpstatus.lo: ../include/net-snmp/session_api.h
+./snmpstatus.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpstatus.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpstatus.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpstatus.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmpstatus.lo: ../include/net-snmp/library/mib.h
+./snmpstatus.lo: ../include/net-snmp/library/parse.h
+./snmpstatus.lo: ../include/net-snmp/varbind_api.h
 ./snmpstatus.lo: ../include/net-snmp/config_api.h
 ./snmpstatus.lo: ../include/net-snmp/library/read_config.h
 ./snmpstatus.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -696,67 +579,62 @@
 ./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/net-snmp-includes.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/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
-./snmptable.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmptable.lo: ../include/net-snmp/library/ucd_compat.h
-./snmptable.lo: ../include/net-snmp/library/mib.h
-./snmptable.lo: ../include/net-snmp/mib_api.h
-./snmptable.lo: ../include/net-snmp/library/parse.h
-./snmptable.lo: ../include/net-snmp/library/oid_stash.h
-./snmptable.lo: ../include/net-snmp/net-snmp-features.h
 ./snmptable.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmptable.lo: ../include/net-snmp/library/snmp.h
 ./snmptable.lo: ../include/net-snmp/library/snmp-tc.h
-./snmptable.lo: ../include/net-snmp/library/getopt.h
 ./snmptable.lo: ../include/net-snmp/utilities.h
+./snmptable.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptable.lo: ../include/net-snmp/library/system.h
 ./snmptable.lo: ../include/net-snmp/library/tools.h
 ./snmptable.lo: ../include/net-snmp/library/int64.h
 ./snmptable.lo: ../include/net-snmp/library/mt_support.h
 ./snmptable.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmptable.lo: ../include/net-snmp/library/callback.h
 ./snmptable.lo: ../include/net-snmp/library/data_list.h
+./snmptable.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmptable.lo: ../include/net-snmp/library/container.h
 ./snmptable.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmptable.lo: ../include/net-snmp/version.h
+./snmptable.lo: ../include/net-snmp/session_api.h
+./snmptable.lo: ../include/net-snmp/library/snmp_transport.h
+./snmptable.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmptable.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmptable.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmptable.lo: ../include/net-snmp/library/mib.h
+./snmptable.lo: ../include/net-snmp/library/parse.h
+./snmptable.lo: ../include/net-snmp/varbind_api.h
 ./snmptable.lo: ../include/net-snmp/config_api.h
 ./snmptable.lo: ../include/net-snmp/library/read_config.h
 ./snmptable.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -765,66 +643,62 @@
 ./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/net-snmp-includes.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/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/snmp_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
-./snmptest.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmptest.lo: ../include/net-snmp/library/ucd_compat.h
-./snmptest.lo: ../include/net-snmp/library/mib.h
-./snmptest.lo: ../include/net-snmp/mib_api.h
-./snmptest.lo: ../include/net-snmp/library/parse.h
-./snmptest.lo: ../include/net-snmp/library/oid_stash.h
-./snmptest.lo: ../include/net-snmp/net-snmp-features.h
 ./snmptest.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmptest.lo: ../include/net-snmp/library/snmp.h
 ./snmptest.lo: ../include/net-snmp/library/snmp-tc.h
-./snmptest.lo: ../include/net-snmp/library/getopt.h
 ./snmptest.lo: ../include/net-snmp/utilities.h
+./snmptest.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptest.lo: ../include/net-snmp/library/system.h
 ./snmptest.lo: ../include/net-snmp/library/tools.h
 ./snmptest.lo: ../include/net-snmp/library/int64.h
 ./snmptest.lo: ../include/net-snmp/library/mt_support.h
 ./snmptest.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmptest.lo: ../include/net-snmp/library/callback.h
 ./snmptest.lo: ../include/net-snmp/library/data_list.h
+./snmptest.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmptest.lo: ../include/net-snmp/library/container.h
 ./snmptest.lo: ../include/net-snmp/library/snmp_assert.h
-./snmptest.lo: ../include/net-snmp/version.h ../include/net-snmp/config_api.h
+./snmptest.lo: ../include/net-snmp/version.h
+./snmptest.lo: ../include/net-snmp/session_api.h
+./snmptest.lo: ../include/net-snmp/library/snmp_transport.h
+./snmptest.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmptest.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmptest.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmptest.lo: ../include/net-snmp/library/mib.h
+./snmptest.lo: ../include/net-snmp/library/parse.h
+./snmptest.lo: ../include/net-snmp/varbind_api.h
+./snmptest.lo: ../include/net-snmp/config_api.h
 ./snmptest.lo: ../include/net-snmp/library/read_config.h
 ./snmptest.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -833,164 +707,33 @@
 ./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-features.h
-./snmptls.lo: ../include/net-snmp/net-snmp-includes.h 
-./snmptls.lo:  ../include/net-snmp/definitions.h
-./snmptls.lo: ../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/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/definitions.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmp_api.h
-./snmptranslate.lo: ../include/net-snmp/varbind_api.h
-./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
-./snmptranslate.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmptranslate.lo: ../include/net-snmp/library/ucd_compat.h
-./snmptranslate.lo: ../include/net-snmp/library/mib.h
-./snmptranslate.lo: ../include/net-snmp/mib_api.h
-./snmptranslate.lo: ../include/net-snmp/library/parse.h
-./snmptranslate.lo: ../include/net-snmp/library/oid_stash.h
-./snmptranslate.lo: ../include/net-snmp/net-snmp-features.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmp.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmp-tc.h
+./snmptranslate.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptranslate.lo: ../include/net-snmp/library/system.h
 ./snmptranslate.lo: ../include/net-snmp/library/tools.h
 ./snmptranslate.lo: ../include/net-snmp/library/int64.h
 ./snmptranslate.lo: ../include/net-snmp/library/mt_support.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmptranslate.lo: ../include/net-snmp/library/callback.h
 ./snmptranslate.lo: ../include/net-snmp/library/data_list.h
+./snmptranslate.lo: ../include/net-snmp/library/oid_stash.h
 ./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
@@ -1003,65 +746,67 @@
 ./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
-./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
+./snmptranslate.lo: ../include/net-snmp/output_api.h
+./snmptranslate.lo: ../include/net-snmp/library/snmp_debug.h
+./snmptranslate.lo: ../include/net-snmp/mib_api.h
+./snmptranslate.lo: ../include/net-snmp/library/mib.h
+./snmptranslate.lo: ../include/net-snmp/library/parse.h
+./snmptranslate.lo: ../include/net-snmp/library/ucd_compat.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/snmp_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
-./snmptrap.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmptrap.lo: ../include/net-snmp/library/ucd_compat.h
-./snmptrap.lo: ../include/net-snmp/library/mib.h
-./snmptrap.lo: ../include/net-snmp/mib_api.h
-./snmptrap.lo: ../include/net-snmp/library/parse.h
-./snmptrap.lo: ../include/net-snmp/library/oid_stash.h
-./snmptrap.lo: ../include/net-snmp/net-snmp-features.h
 ./snmptrap.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmptrap.lo: ../include/net-snmp/library/snmp.h
 ./snmptrap.lo: ../include/net-snmp/library/snmp-tc.h
-./snmptrap.lo: ../include/net-snmp/library/getopt.h
 ./snmptrap.lo: ../include/net-snmp/utilities.h
+./snmptrap.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptrap.lo: ../include/net-snmp/library/system.h
 ./snmptrap.lo: ../include/net-snmp/library/tools.h
 ./snmptrap.lo: ../include/net-snmp/library/int64.h
 ./snmptrap.lo: ../include/net-snmp/library/mt_support.h
 ./snmptrap.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmptrap.lo: ../include/net-snmp/library/callback.h
 ./snmptrap.lo: ../include/net-snmp/library/data_list.h
+./snmptrap.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmptrap.lo: ../include/net-snmp/library/container.h
 ./snmptrap.lo: ../include/net-snmp/library/snmp_assert.h
-./snmptrap.lo: ../include/net-snmp/version.h ../include/net-snmp/config_api.h
+./snmptrap.lo: ../include/net-snmp/version.h
+./snmptrap.lo: ../include/net-snmp/session_api.h
+./snmptrap.lo: ../include/net-snmp/library/snmp_transport.h
+./snmptrap.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmptrap.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmptrap.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmptrap.lo: ../include/net-snmp/library/mib.h
+./snmptrap.lo: ../include/net-snmp/library/parse.h
+./snmptrap.lo: ../include/net-snmp/varbind_api.h
+./snmptrap.lo: ../include/net-snmp/config_api.h
 ./snmptrap.lo: ../include/net-snmp/library/read_config.h
 ./snmptrap.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1070,68 +815,64 @@
 ./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/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
-./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmptrapd_auth.lo: ../include/net-snmp/library/ucd_compat.h
-./snmptrapd_auth.lo: ../include/net-snmp/library/mib.h
-./snmptrapd_auth.lo: ../include/net-snmp/mib_api.h
-./snmptrapd_auth.lo: ../include/net-snmp/library/parse.h
-./snmptrapd_auth.lo: ../include/net-snmp/library/oid_stash.h
-./snmptrapd_auth.lo: ../include/net-snmp/net-snmp-features.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/snmp_api.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/asn1.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmp.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmp-tc.h
-./snmptrapd_auth.lo: ../include/net-snmp/library/getopt.h
 ./snmptrapd_auth.lo: ../include/net-snmp/utilities.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/system.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/tools.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/int64.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/mt_support.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/callback.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/data_list.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmptrapd_auth.lo: ../include/net-snmp/library/container.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmptrapd_auth.lo: ../include/net-snmp/version.h
+./snmptrapd_auth.lo: ../include/net-snmp/session_api.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_transport.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmptrapd_auth.lo: ../include/net-snmp/pdu_api.h
+./snmptrapd_auth.lo: ../include/net-snmp/mib_api.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/mib.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/parse.h
+./snmptrapd_auth.lo: ../include/net-snmp/varbind_api.h
 ./snmptrapd_auth.lo: ../include/net-snmp/config_api.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/read_config.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1140,72 +881,65 @@
 ./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/net-snmp-includes.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/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
-./snmptrapd.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmptrapd.lo: ../include/net-snmp/library/ucd_compat.h
-./snmptrapd.lo: ../include/net-snmp/library/mib.h
-./snmptrapd.lo: ../include/net-snmp/mib_api.h
-./snmptrapd.lo: ../include/net-snmp/library/parse.h
-./snmptrapd.lo: ../include/net-snmp/library/oid_stash.h
-./snmptrapd.lo: ../include/net-snmp/net-snmp-features.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmp.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmp-tc.h
-./snmptrapd.lo: ../include/net-snmp/library/getopt.h
 ./snmptrapd.lo: ../include/net-snmp/utilities.h
+./snmptrapd.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptrapd.lo: ../include/net-snmp/library/system.h
 ./snmptrapd.lo: ../include/net-snmp/library/tools.h
 ./snmptrapd.lo: ../include/net-snmp/library/int64.h
 ./snmptrapd.lo: ../include/net-snmp/library/mt_support.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmptrapd.lo: ../include/net-snmp/library/callback.h
 ./snmptrapd.lo: ../include/net-snmp/library/data_list.h
+./snmptrapd.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmptrapd.lo: ../include/net-snmp/library/container.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmptrapd.lo: ../include/net-snmp/version.h
+./snmptrapd.lo: ../include/net-snmp/session_api.h
+./snmptrapd.lo: ../include/net-snmp/library/snmp_transport.h
+./snmptrapd.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmptrapd.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmptrapd.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmptrapd.lo: ../include/net-snmp/library/mib.h
+./snmptrapd.lo: ../include/net-snmp/library/parse.h
+./snmptrapd.lo: ../include/net-snmp/varbind_api.h
 ./snmptrapd.lo: ../include/net-snmp/config_api.h
 ./snmptrapd.lo: ../include/net-snmp/library/read_config.h
 ./snmptrapd.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1214,7 +948,6 @@
 ./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
@@ -1251,47 +984,20 @@
 ./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.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: ../include/net-snmp/agent/mfd.h snmptrapd_handlers.h
+./snmptrapd.lo: snmptrapd_log.h snmptrapd_ds.h snmptrapd_auth.h
 ./snmptrapd.lo: ../agent/mibgroup/notification-log-mib/notification_log.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/net-snmp-features.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
-./snmptrapd_handlers.lo: ../include/net-snmp/varbind_api.h
-./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
-./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmptrapd_handlers.lo: ../include/net-snmp/library/ucd_compat.h
-./snmptrapd_handlers.lo: ../include/net-snmp/library/mib.h
-./snmptrapd_handlers.lo: ../include/net-snmp/mib_api.h
-./snmptrapd_handlers.lo: ../include/net-snmp/library/parse.h
-./snmptrapd_handlers.lo: ../include/net-snmp/library/oid_stash.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp-tc.h
@@ -1300,6 +1006,16 @@
 ./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_client.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/mib_api.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/mib.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/parse.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/callback.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/oid_stash.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/ucd_compat.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
@@ -1317,7 +1033,18 @@
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/version.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/net-snmp-includes.h
-./snmptrapd_handlers.lo: ../include/net-snmp/library/getopt.h
+./snmptrapd_handlers.lo: ../include/net-snmp/session_api.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_transport.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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/pdu_api.h
+./snmptrapd_handlers.lo: ../include/net-snmp/varbind_api.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/snmpv3_api.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpv3.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/transform_oids.h
@@ -1326,7 +1053,6 @@
 ./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
@@ -1364,71 +1090,67 @@
 ./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
-./snmptrapd_log.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmptrapd_log.lo: ../include/net-snmp/library/ucd_compat.h
-./snmptrapd_log.lo: ../include/net-snmp/library/mib.h
-./snmptrapd_log.lo: ../include/net-snmp/mib_api.h
-./snmptrapd_log.lo: ../include/net-snmp/library/parse.h
-./snmptrapd_log.lo: ../include/net-snmp/library/oid_stash.h
-./snmptrapd_log.lo: ../include/net-snmp/net-snmp-features.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmp.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmp-tc.h
-./snmptrapd_log.lo: ../include/net-snmp/library/getopt.h
 ./snmptrapd_log.lo: ../include/net-snmp/utilities.h
+./snmptrapd_log.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/system.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/tools.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/int64.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/mt_support.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmptrapd_log.lo: ../include/net-snmp/library/callback.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/data_list.h
+./snmptrapd_log.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmptrapd_log.lo: ../include/net-snmp/library/container.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmptrapd_log.lo: ../include/net-snmp/version.h
+./snmptrapd_log.lo: ../include/net-snmp/session_api.h
+./snmptrapd_log.lo: ../include/net-snmp/library/snmp_transport.h
+./snmptrapd_log.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmptrapd_log.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmptrapd_log.lo: ../include/net-snmp/pdu_api.h
+./snmptrapd_log.lo: ../include/net-snmp/mib_api.h
+./snmptrapd_log.lo: ../include/net-snmp/library/mib.h
+./snmptrapd_log.lo: ../include/net-snmp/library/parse.h
+./snmptrapd_log.lo: ../include/net-snmp/varbind_api.h
 ./snmptrapd_log.lo: ../include/net-snmp/config_api.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/read_config.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1437,68 +1159,62 @@
 ./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/net-snmp-features.h
-./snmpusm.lo: ../include/net-snmp/net-snmp-config.h 
-./snmpusm.lo:  ../include/net-snmp/net-snmp-includes.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/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/snmp_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
-./snmpusm.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpusm.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpusm.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./snmpusm.lo: ../include/net-snmp/library/parse.h
-./snmpusm.lo: ../include/net-snmp/library/oid_stash.h
-./snmpusm.lo: ../include/net-snmp/net-snmp-features.h
 ./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/library/getopt.h
 ./snmpusm.lo: ../include/net-snmp/utilities.h
+./snmpusm.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpusm.lo: ../include/net-snmp/library/system.h
 ./snmpusm.lo: ../include/net-snmp/library/tools.h
 ./snmpusm.lo: ../include/net-snmp/library/int64.h
 ./snmpusm.lo: ../include/net-snmp/library/mt_support.h
 ./snmpusm.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpusm.lo: ../include/net-snmp/library/callback.h
 ./snmpusm.lo: ../include/net-snmp/library/data_list.h
+./snmpusm.lo: ../include/net-snmp/library/oid_stash.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/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
 ./snmpusm.lo: ../include/net-snmp/library/container.h
 ./snmpusm.lo: ../include/net-snmp/library/snmp_assert.h
-./snmpusm.lo: ../include/net-snmp/version.h ../include/net-snmp/config_api.h
+./snmpusm.lo: ../include/net-snmp/version.h ../include/net-snmp/session_api.h
+./snmpusm.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpusm.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpusm.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpusm.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmpusm.lo: ../include/net-snmp/library/mib.h
+./snmpusm.lo: ../include/net-snmp/library/parse.h
+./snmpusm.lo: ../include/net-snmp/varbind_api.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
 ./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
@@ -1507,66 +1223,62 @@
 ./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/net-snmp-includes.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/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/snmp_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
-./snmpvacm.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpvacm.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpvacm.lo: ../include/net-snmp/library/mib.h
-./snmpvacm.lo: ../include/net-snmp/mib_api.h
-./snmpvacm.lo: ../include/net-snmp/library/parse.h
-./snmpvacm.lo: ../include/net-snmp/library/oid_stash.h
-./snmpvacm.lo: ../include/net-snmp/net-snmp-features.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmp.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpvacm.lo: ../include/net-snmp/library/getopt.h
 ./snmpvacm.lo: ../include/net-snmp/utilities.h
+./snmpvacm.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpvacm.lo: ../include/net-snmp/library/system.h
 ./snmpvacm.lo: ../include/net-snmp/library/tools.h
 ./snmpvacm.lo: ../include/net-snmp/library/int64.h
 ./snmpvacm.lo: ../include/net-snmp/library/mt_support.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpvacm.lo: ../include/net-snmp/library/callback.h
 ./snmpvacm.lo: ../include/net-snmp/library/data_list.h
+./snmpvacm.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpvacm.lo: ../include/net-snmp/library/container.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmp_assert.h
-./snmpvacm.lo: ../include/net-snmp/version.h ../include/net-snmp/config_api.h
+./snmpvacm.lo: ../include/net-snmp/version.h
+./snmpvacm.lo: ../include/net-snmp/session_api.h
+./snmpvacm.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpvacm.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpvacm.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpvacm.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmpvacm.lo: ../include/net-snmp/library/mib.h
+./snmpvacm.lo: ../include/net-snmp/library/parse.h
+./snmpvacm.lo: ../include/net-snmp/varbind_api.h
+./snmpvacm.lo: ../include/net-snmp/config_api.h
 ./snmpvacm.lo: ../include/net-snmp/library/read_config.h
 ./snmpvacm.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1575,67 +1287,62 @@
 ./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/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/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/snmp_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
-./snmpwalk.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpwalk.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpwalk.lo: ../include/net-snmp/library/mib.h
-./snmpwalk.lo: ../include/net-snmp/mib_api.h
-./snmpwalk.lo: ../include/net-snmp/library/parse.h
-./snmpwalk.lo: ../include/net-snmp/library/oid_stash.h
-./snmpwalk.lo: ../include/net-snmp/net-snmp-features.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmp.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpwalk.lo: ../include/net-snmp/library/getopt.h
 ./snmpwalk.lo: ../include/net-snmp/utilities.h
+./snmpwalk.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpwalk.lo: ../include/net-snmp/library/system.h
 ./snmpwalk.lo: ../include/net-snmp/library/tools.h
 ./snmpwalk.lo: ../include/net-snmp/library/int64.h
 ./snmpwalk.lo: ../include/net-snmp/library/mt_support.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpwalk.lo: ../include/net-snmp/library/callback.h
 ./snmpwalk.lo: ../include/net-snmp/library/data_list.h
+./snmpwalk.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpwalk.lo: ../include/net-snmp/library/container.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmp_assert.h
-./snmpwalk.lo: ../include/net-snmp/version.h ../include/net-snmp/config_api.h
+./snmpwalk.lo: ../include/net-snmp/version.h
+./snmpwalk.lo: ../include/net-snmp/session_api.h
+./snmpwalk.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpwalk.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpwalk.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpwalk.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./snmpwalk.lo: ../include/net-snmp/library/mib.h
+./snmpwalk.lo: ../include/net-snmp/library/parse.h
+./snmpwalk.lo: ../include/net-snmp/varbind_api.h
+./snmpwalk.lo: ../include/net-snmp/config_api.h
 ./snmpwalk.lo: ../include/net-snmp/library/read_config.h
 ./snmpwalk.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1644,69 +1351,64 @@
 ./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
 ./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
-./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpnetstat/if.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpnetstat/if.lo: ../include/net-snmp/library/mib.h
-./snmpnetstat/if.lo: ../include/net-snmp/mib_api.h
-./snmpnetstat/if.lo: ../include/net-snmp/library/parse.h
-./snmpnetstat/if.lo: ../include/net-snmp/library/oid_stash.h
-./snmpnetstat/if.lo: ../include/net-snmp/net-snmp-features.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmp.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpnetstat/if.lo: ../include/net-snmp/library/getopt.h
 ./snmpnetstat/if.lo: ../include/net-snmp/utilities.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/system.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/tools.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/int64.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/mt_support.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/callback.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/data_list.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpnetstat/if.lo: ../include/net-snmp/library/container.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmpnetstat/if.lo: ../include/net-snmp/version.h
+./snmpnetstat/if.lo: ../include/net-snmp/session_api.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpnetstat/if.lo: ../include/net-snmp/pdu_api.h
+./snmpnetstat/if.lo: ../include/net-snmp/mib_api.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/mib.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/parse.h
+./snmpnetstat/if.lo: ../include/net-snmp/varbind_api.h
 ./snmpnetstat/if.lo: ../include/net-snmp/config_api.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/read_config.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1715,70 +1417,66 @@
 ./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
-./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/library/mib.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/mib_api.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/library/parse.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/library/oid_stash.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/net-snmp-features.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/library/getopt.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/utilities.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/system.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/tools.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/int64.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/mt_support.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/callback.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/data_list.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/container.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/version.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/session_api.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpnetstat/inet6.lo: ../include/net-snmp/pdu_api.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/mib_api.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/mib.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/parse.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/varbind_api.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/config_api.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/read_config.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1787,69 +1485,65 @@
 ./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
-./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpnetstat/inet.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpnetstat/inet.lo: ../include/net-snmp/library/mib.h
-./snmpnetstat/inet.lo: ../include/net-snmp/mib_api.h
-./snmpnetstat/inet.lo: ../include/net-snmp/library/parse.h
-./snmpnetstat/inet.lo: ../include/net-snmp/library/oid_stash.h
-./snmpnetstat/inet.lo: ../include/net-snmp/net-snmp-features.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpnetstat/inet.lo: ../include/net-snmp/library/getopt.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/utilities.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/system.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/tools.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/int64.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/mt_support.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/callback.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/data_list.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/container.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/version.h
+./snmpnetstat/inet.lo: ../include/net-snmp/session_api.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpnetstat/inet.lo: ../include/net-snmp/pdu_api.h
+./snmpnetstat/inet.lo: ../include/net-snmp/mib_api.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/mib.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/parse.h
+./snmpnetstat/inet.lo: ../include/net-snmp/varbind_api.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/config_api.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/read_config.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1858,69 +1552,65 @@
 ./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
-./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpnetstat/main.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpnetstat/main.lo: ../include/net-snmp/library/mib.h
-./snmpnetstat/main.lo: ../include/net-snmp/mib_api.h
-./snmpnetstat/main.lo: ../include/net-snmp/library/parse.h
-./snmpnetstat/main.lo: ../include/net-snmp/library/oid_stash.h
-./snmpnetstat/main.lo: ../include/net-snmp/net-snmp-features.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmp.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpnetstat/main.lo: ../include/net-snmp/library/getopt.h
 ./snmpnetstat/main.lo: ../include/net-snmp/utilities.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/system.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/tools.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/int64.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/mt_support.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/callback.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/data_list.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpnetstat/main.lo: ../include/net-snmp/library/container.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmpnetstat/main.lo: ../include/net-snmp/version.h
+./snmpnetstat/main.lo: ../include/net-snmp/session_api.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpnetstat/main.lo: ../include/net-snmp/pdu_api.h
+./snmpnetstat/main.lo: ../include/net-snmp/mib_api.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/mib.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/parse.h
+./snmpnetstat/main.lo: ../include/net-snmp/varbind_api.h
 ./snmpnetstat/main.lo: ../include/net-snmp/config_api.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/read_config.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1929,69 +1619,66 @@
 ./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/main.lo:  ./snmpnetstat/main.h
+./snmpnetstat/main.lo: ./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
-./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpnetstat/route.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpnetstat/route.lo: ../include/net-snmp/library/mib.h
-./snmpnetstat/route.lo: ../include/net-snmp/mib_api.h
-./snmpnetstat/route.lo: ../include/net-snmp/library/parse.h
-./snmpnetstat/route.lo: ../include/net-snmp/library/oid_stash.h
-./snmpnetstat/route.lo: ../include/net-snmp/net-snmp-features.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmp.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpnetstat/route.lo: ../include/net-snmp/library/getopt.h
 ./snmpnetstat/route.lo: ../include/net-snmp/utilities.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/system.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/tools.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/int64.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/mt_support.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/callback.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/data_list.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpnetstat/route.lo: ../include/net-snmp/library/container.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmpnetstat/route.lo: ../include/net-snmp/version.h
+./snmpnetstat/route.lo: ../include/net-snmp/session_api.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpnetstat/route.lo: ../include/net-snmp/pdu_api.h
+./snmpnetstat/route.lo: ../include/net-snmp/mib_api.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/mib.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/parse.h
+./snmpnetstat/route.lo: ../include/net-snmp/varbind_api.h
 ./snmpnetstat/route.lo: ../include/net-snmp/config_api.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/read_config.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -2000,69 +1687,66 @@
 ./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/route.lo:  ./snmpnetstat/main.h
+./snmpnetstat/route.lo: ./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
-./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/library/mib.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/mib_api.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/library/parse.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/library/oid_stash.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/net-snmp-features.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/library/getopt.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/utilities.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/system.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/tools.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/int64.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/mt_support.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/callback.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/data_list.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/container.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/version.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/session_api.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmpnetstat/winstub.lo: ../include/net-snmp/pdu_api.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/mib_api.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/mib.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/parse.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/varbind_api.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/config_api.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/read_config.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -2071,5 +1755,4 @@
 ./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 77404dd..55cfa6c 100644
--- a/apps/Makefile.in
+++ b/apps/Makefile.in
@@ -4,7 +4,6 @@
 #
 
 top_builddir=..
-mysubdir=apps
 
 # use GNU vpath, if available, to only set a path for source and headers
 # VPATH will pick up objects too, which is bad if you are sharing a
@@ -18,37 +17,10 @@ mysubdir=apps
 # Things to install
 #
 
- at NETSNMP_BUILD_SSH_PROG_TRUE@SSHINSTALLBINPROG = sshtosnmp$(EXEEXT)
- at NETSNMP_BUILD_SSH_PROG_FALSE@SSHINSTALLBINPROG =
- at NETSNMP_BUILD_SSH_PROG_TRUE@SSHFEATUREPROG = sshtosnmp.ft
- at NETSNMP_BUILD_SSH_PROG_FALSE@SSHFEATUREPROG =
- at NETSNMP_BUILD_TLS_PROG_TRUE@TLSINSTALLBINPROG = snmptls$(EXEEXT)
- at NETSNMP_BUILD_TLS_PROG_FALSE@TLSINSTALLBINPROG =
- at NETSNMP_BUILD_TLS_PROG_TRUE@TLSFEATUREPROG = snmptls.ft
- at NETSNMP_BUILD_TLS_PROG_FALSE@TLSFEATUREPROG =
- at NETSNMP_BUILD_USM_PROG_TRUE@USMINSTALLBINPROG = snmpusm$(EXEEXT)
- at NETSNMP_BUILD_USM_PROG_FALSE@USMINSTALLBINPROG =
- at NETSNMP_BUILD_USM_PROG_TRUE@USMFEATUREPROG = snmpusm.ft
- at NETSNMP_BUILD_USM_PROG_FALSE@USMFEATUREPROG =
- at NETSNMP_BUILD_USM_PROG_TRUE@EKCSTALLBINPROG = encode_keychange$(EXEEXT)
- at NETSNMP_BUILD_USM_PROG_FALSE@EKCSTALLBINPROG =
- at NETSNMP_BUILD_USM_PROG_TRUE@EKCFEATUREPROG = encode_keychange.ft
- at NETSNMP_BUILD_USM_PROG_FALSE@EKCFEATUREPROG =
- at NETSNMP_BUILD_SET_PROG_TRUE@SNMPSETINSTALLBINPROG = snmpset$(EXEEXT)
- at NETSNMP_BUILD_SET_PROG_FALSE@SNMPSETINSTALLBINPROG = 
- at NETSNMP_BUILD_SET_PROG_TRUE@SNMPSETFEATUREPROG = snmpset.ft
- at NETSNMP_BUILD_SET_PROG_FALSE@SNMPSETFEATUREPROG = 
- at NETSNMP_BUILD_SET_PROG_TRUE@SNMPVACMINSTALLBINPROG = snmpvacm$(EXEEXT)
- at NETSNMP_BUILD_SET_PROG_FALSE@SNMPVACMINSTALLBINPROG = 
- at NETSNMP_BUILD_SET_PROG_TRUE@SNMPVACMFEATUREPROG = snmpvacm.ft
- at NETSNMP_BUILD_SET_PROG_FALSE@SNMPVACMFEATUREPROG = 
-
- at NETSNMP_HAVE_AGENTX_LIBS_TRUE@AGENTXTRAP = agentxtrap$(EXEEXT)
- at NETSNMP_HAVE_AGENTX_LIBS_FALSE@AGENTXTRAP =
-
 INSTALLBINPROGS	= snmpget$(EXEEXT) 			\
 		snmpgetnext$(EXEEXT) 			\
-		$(SNMPSETINSTALLBINPROG)	        \
+		snmpset$(EXEEXT) 			\
+		snmpusm$(EXEEXT)			\
 		snmpwalk$(EXEEXT) 			\
 		snmpbulkwalk$(EXEEXT) 			\
 		snmptable$(EXEEXT)			\
@@ -58,11 +30,9 @@ INSTALLBINPROGS	= snmpget$(EXEEXT) 			\
 		snmpstatus$(EXEEXT) 			\
 		snmpdelta$(EXEEXT) 			\
 		snmptest$(EXEEXT)			\
+		encode_keychange$(EXEEXT) 		\
 		snmpdf$(EXEEXT) 			\
-		$(AGENTXTRAP)				\
-		$(SNMPVACMINSTALLBINPROG)	        \
-                $(SSHINSTALLBINPROG) $(TLSINSTALLBINPROG) \
-		$(USMINSTALLBINPROG) $(EKCSTALLBINPROG)
+		snmpvacm$(EXEEXT)
 
 INSTALLSBINPROGS = snmptrapd$(EXEEXT)
 
@@ -70,69 +40,44 @@ INSTALLLIBS     = libnetsnmptrapd.$(LIB_EXTENSION)$(LIB_VERSION)
 
 SUBDIRS		= snmpnetstat
 
-FEATUREFILE=../include/net-snmp/features-apps.h
-
 #
 # build variables.
 #
 
 # 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) $(USELIBS)
-MYSQL_LIBS	= @MYSQL_LIBS@
-MYSQL_INCLUDES	= @MYSQL_INCLUDES@
+USEAGENTLIBS	= $(MIBLIB) $(AGENTLIB) $(HELPERLIB) $(USELIBS)
 
-VAL_LIBS	= @VAL_LIBS@
-LIBS		= $(USELIBS) $(VAL_LIBS) @LIBS@
+#
+# link path in src dir
+LOCAL_LIBS	= -L../snmplib/.libs -L../snmplib -L../agent/.libs -L../agent -L../agent/helpers/.libs -L../agent/helpers
+LIBS		= $(USELIBS) @LIBS@
 PERLLDOPTS_FOR_APPS = @PERLLDOPTS_FOR_APPS@
 PERLLDOPTS_FOR_LIBS = @PERLLDOPTS_FOR_LIBS@
 
 #
 # hack for compiling trapd when agent is disabled
-TRAPDWITHAGENT  = $(USETRAPLIBS) $(MYSQL_LIBS) $(VAL_LIBS) @AGENTLIBS@
-TRAPDWITHOUTAGENT = $(LIBS) $(MYSQL_LIBS) $(VAL_LIBS)
+TRAPDWITHAGENT  = $(USETRAPLIBS) @AGENTLIBS@
+TRAPDWITHOUTAGENT = $(LIBS)
 
 # these will be set by configure to one of the above 2 lines
 TRAPLIBS	= @TRAPLIBS@ $(PERLLDOPTS_FOR_APPS)
 USETRAPLIBS	= @USETRAPLIBS@
 
 CPPFLAGS	= $(TOP_INCLUDES) -I. $(AGENT_INCLUDES) $(HELPER_INCLUDES) \
-		  $(MIBGROUP_INCLUDES)  \
-		  $(SNMPLIB_INCLUDES) $(MYSQL_INCLUDES) @CPPFLAGS@
+		  $(MIBGROUP_INCLUDES)  $(SNMPLIB_INCLUDES) @CPPFLAGS@
 
 OSUFFIX		= lo
 TRAPD_OBJECTS   = snmptrapd.$(OSUFFIX) @other_trapd_objects@
 LIBTRAPD_OBJS   = snmptrapd_handlers.o  snmptrapd_log.o \
-		  snmptrapd_auth.o snmptrapd_sql.o
+		  snmptrapd_auth.o
 LLIBTRAPD_OBJS  = snmptrapd_handlers.lo snmptrapd_log.lo \
-		  snmptrapd_auth.lo snmptrapd_sql.lo
-LIBTRAPD_FTS    = snmptrapd_handlers.ft snmptrapd_log.ft \
-		  snmptrapd_auth.ft snmptrapd_sql.ft
+		  snmptrapd_auth.lo
 OBJS  = *.o
 LOBJS = *.lo
-FTOBJS=$(LIBTRAPD_FTS) \
-       snmpwalk.ft \
-       snmpbulkwalk.ft \
-       snmpbulkget.ft \
-       snmptranslate.ft \
-       snmpstatus.ft \
-       snmpget.ft \
-       snmpdelta.ft \
-       snmptable.ft \
-       snmptest.ft \
-       snmptrapd.ft \
-       snmptrap.ft \
-       $(SNMPSETFEATUREPROG) \
-       $(SNMPVACMFEATUREPROG) \
-       $(USMFEATUREPROG) \
-       $(TLSFEATUREPROG) \
-       agentxtrap.ft \
-       snmpgetnext.ft \
-       $(EKCFEATUREPROG) \
-       snmpdf.ft \
-       $(SSHFEATUREPROG)
 
 all: standardall
 
@@ -143,65 +88,59 @@ OTHERUNINSTALL=snmpinformuninstall snmptrapdperluninstall
 # build rules
 #
 snmpwalk$(EXEEXT):    snmpwalk.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmpwalk.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmpwalk.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 snmpbulkwalk$(EXEEXT):    snmpbulkwalk.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmpbulkwalk.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmpbulkwalk.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 snmpbulkget$(EXEEXT):    snmpbulkget.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmpbulkget.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmpbulkget.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 snmptranslate$(EXEEXT):    snmptranslate.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmptranslate.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmptranslate.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 snmpstatus$(EXEEXT):    snmpstatus.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmpstatus.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmpstatus.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 snmpget$(EXEEXT):    snmpget.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmpget.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmpget.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 snmpdelta$(EXEEXT):    snmpdelta.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmpdelta.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmpdelta.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 snmptable$(EXEEXT):    snmptable.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmptable.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmptable.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 snmptest$(EXEEXT):    snmptest.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmptest.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmptest.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 snmptrapd$(EXEEXT):    $(TRAPD_OBJECTS) $(USETRAPLIBS) $(INSTALLLIBS)
-	$(LINK) ${CFLAGS} -o $@ $(TRAPD_OBJECTS) $(INSTALLLIBS) ${LDFLAGS} ${TRAPLIBS}
+	$(LINK) ${CFLAGS} -o $@ $(TRAPD_OBJECTS) $(INSTALLLIBS) $(LOCAL_LIBS) ${LDFLAGS} ${TRAPLIBS}
 
 snmptrap$(EXEEXT):    snmptrap.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmptrap.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmptrap.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 snmpinform$(EXEEXT): snmptrap$(EXEEXT)
 	rm -f snmpinform
 	$(LN_S) snmptrap$(EXEEXT) snmpinform$(EXEEXT)
 
 snmpset$(EXEEXT):    snmpset.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmpset.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmpset.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 snmpusm$(EXEEXT):    snmpusm.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmpusm.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmpusm.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 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}
+	$(LINK) ${CFLAGS} -o $@ snmpvacm.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 snmpgetnext$(EXEEXT):    snmpgetnext.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmpgetnext.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmpgetnext.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 encode_keychange$(EXEEXT):    encode_keychange.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ encode_keychange.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ encode_keychange.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 snmpdf$(EXEEXT):    snmpdf.$(OSUFFIX) $(USELIBS)
-	$(LINK) ${CFLAGS} -o $@ snmpdf.$(OSUFFIX) ${LDFLAGS} ${LIBS}
+	$(LINK) ${CFLAGS} -o $@ snmpdf.$(OSUFFIX) $(LOCAL_LIBS) ${LDFLAGS} ${LIBS} 
 
 libnetsnmptrapd.$(LIB_EXTENSION)$(LIB_VERSION): $(LLIBTRAPD_OBJS)
 	$(LIB_LD_CMD) $@ ${LLIBTRAPD_OBJS} $(MIBLIB) $(USELIBS) $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS)
@@ -222,9 +161,5 @@ snmptrapdperluninstall: installdirs
 	  @rm -f $(INSTALL_PREFIX)$(snmplibdir)/snmp_perl_trapd.pl
 	  @echo "removed snmp_perl_trapd.pl from $(INSTALL_PREFIX)$(snmplibdir)"
 
-sshtosnmp$(EXEEXT): sshtosnmp.$(OSUFFIX)
-	$(LINK) ${CFLAGS} -o $@ sshtosnmp.$(OSUFFIX)
-
-
 installdirs:
 	@$(SHELL) $(srcdir)/../mkinstalldirs $(INSTALL_PREFIX)$(snmplibdir)
diff --git a/apps/agentxtrap.c b/apps/agentxtrap.c
deleted file mode 100644
index f366f61..0000000
--- a/apps/agentxtrap.c
+++ /dev/null
@@ -1,607 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.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/ds_agent.h>
-
-#include "../agent/mibgroup/agentx/agentx_config.h"
-#include "../agent/mibgroup/agentx/client.h"
-#include "../agent/mibgroup/agentx/protocol.h"
-
-netsnmp_feature_require(snmp_split_pdu)
-netsnmp_feature_require(snmp_reset_var_types)
-
-
-#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 at 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[:...]\t\tload given list of MIBs (ALL loads "
-            "everything)\n"
-            "  -M DIR[:...]\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_perror("Failed to connect to AgentX server");
-        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_perror("Failed to create session");
-        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_perror("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_perror("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"));
-
-    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 5bf8e4c..0c1fe21 100644
--- a/apps/encode_keychange.c
+++ b/apps/encode_keychange.c
@@ -38,6 +38,10 @@
 #include <netinet/in.h>
 #endif
 
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+
 #include <net-snmp/net-snmp-includes.h>
 
 #include <stdlib.h>
@@ -108,7 +112,7 @@ int             _getch(void);
 int
 main(int argc, char **argv)
 {
-    int             rval = 1;
+    int             rval = SNMPERR_SUCCESS;
     size_t          oldKu_len = SNMP_MAXBUF_SMALL,
         newKu_len = SNMP_MAXBUF_SMALL,
         oldkul_len = SNMP_MAXBUF_SMALL,
@@ -170,7 +174,6 @@ main(int argc, char **argv)
             break;
         case 'h':
             rval = 0;
-	    /* fallthrough */
         default:
             usage_to_file(stdout);
             exit(rval);
@@ -202,7 +205,7 @@ main(int argc, char **argv)
                 "Unrecognized hash transform: \"%s\".\n",
                 transform_type_input);
         usage_synopsis(stderr);
-        QUITFUN(SNMPERR_GENERR, main_quit);
+        QUITFUN(rval = SNMPERR_GENERR, main_quit);
     }
 
     if (verbose) {
@@ -229,8 +232,8 @@ main(int argc, char **argv)
         engineid_len = hex_to_binary2(engineid + 2,
                                       strlen((char *) engineid) - 2,
                                       (char **) &engineid);
-        DEBUGMSGTL(("encode_keychange", "engineIDLen: %lu\n",
-                    (unsigned long)engineid_len));
+        DEBUGMSGTL(("encode_keychange", "engineIDLen: %d\n",
+                    engineid_len));
     } else {
         engineid_len = setup_engineID(&engineid, (char *) engineid);
 
@@ -255,12 +258,12 @@ main(int argc, char **argv)
     if (strlen(oldpass) < USM_LENGTH_P_MIN) {
         fprintf(stderr, "Old passphrase must be greater than %d "
                 "characters in length.\n", USM_LENGTH_P_MIN);
-        QUITFUN(SNMPERR_GENERR, main_quit);
+        QUITFUN(rval = SNMPERR_GENERR, main_quit);
 
     } else if (strlen(newpass) < USM_LENGTH_P_MIN) {
         fprintf(stderr, "New passphrase must be greater than %d "
                 "characters in length.\n", USM_LENGTH_P_MIN);
-        QUITFUN(SNMPERR_GENERR, main_quit);
+        QUITFUN(rval = SNMPERR_GENERR, main_quit);
     }
 
     if (verbose) {
@@ -291,12 +294,12 @@ main(int argc, char **argv)
     QUITFUN(rval, main_quit);
 
 
-    DEBUGMSGTL(("encode_keychange", "EID (%lu): ", (unsigned long)engineid_len));
+    DEBUGMSGTL(("encode_keychange", "EID (%d): ", engineid_len));
     for (i = 0; i < (int) engineid_len; i++)
         DEBUGMSGTL(("encode_keychange", "%02x", (int) (engineid[i])));
     DEBUGMSGTL(("encode_keychange", "\n"));
 
-    DEBUGMSGTL(("encode_keychange", "old Ku (%lu) (from %s): ", (unsigned long)oldKu_len,
+    DEBUGMSGTL(("encode_keychange", "old Ku (%d) (from %s): ", oldKu_len,
                 oldpass));
     for (i = 0; i < (int) oldKu_len; i++)
         DEBUGMSGTL(("encode_keychange", "%02x", (int) (oldKu[i])));
@@ -308,8 +311,8 @@ main(int argc, char **argv)
     QUITFUN(rval, main_quit);
 
 
-    DEBUGMSGTL(("encode_keychange", "generating old Kul (%lu) (from Ku): ",
-                (unsigned long)oldkul_len));
+    DEBUGMSGTL(("encode_keychange", "generating old Kul (%d) (from Ku): ",
+                oldkul_len));
     for (i = 0; i < (int) oldkul_len; i++)
         DEBUGMSGTL(("encode_keychange", "%02x", (int) (oldkul[i])));
     DEBUGMSGTL(("encode_keychange", "\n"));
@@ -319,8 +322,8 @@ main(int argc, char **argv)
                         newKu, newKu_len, newkul, &newkul_len);
     QUITFUN(rval, main_quit);
 
-    DEBUGMSGTL(("encode_keychange", "generating new Kul (%lu) (from Ku): ",
-                (unsigned long)oldkul_len));
+    DEBUGMSGTL(("encode_keychange", "generating new Kul (%d) (from Ku): ",
+                oldkul_len));
     for (i = 0; i < (int) newkul_len; i++)
         DEBUGMSGTL(("encode_keychange", "%02x", newkul[i]));
     DEBUGMSGTL(("encode_keychange", "\n"));
@@ -348,11 +351,11 @@ main(int argc, char **argv)
     SNMP_ZERO(oldpass, strlen(oldpass));
     SNMP_ZERO(newpass, strlen(newpass));
 
-    memset(oldKu, 0, oldKu_len);
-    memset(newKu, 0, newKu_len);
+    SNMP_ZERO(oldKu, oldKu_len);
+    SNMP_ZERO(newKu, newKu_len);
 
-    memset(oldkul, 0, oldkul_len);
-    memset(newkul, 0, newkul_len);
+    SNMP_ZERO(oldkul, oldkul_len);
+    SNMP_ZERO(newkul, newkul_len);
 
     SNMP_ZERO(s, strlen(s));
 
@@ -390,22 +393,22 @@ usage_to_file(FILE * ofp)
 
     usage_synopsis(ofp);
 
-    fprintf(ofp, "\n%s\
+    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\
 	a) Commandline options,\n\
 	b) The file \"%s/%s\",\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\
+	c) stdin  -or-  User input from the terminal.\n\
 \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\
+    -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");
+    <engineID> is constructed from the first IP address for the local host.\n\
+		" NL, (s = getenv("HOME")) ? s : "$HOME", local_passphrase_filename);
 
 
     /*
@@ -504,13 +507,13 @@ get_user_passphrases(void)
      */
     if (stat(path, &statbuf) < 0) {
         fprintf(stderr, "Cannot access directory \"%s\".\n", path);
-        QUITFUN(SNMPERR_GENERR, get_user_passphrases_quit);
+        QUITFUN(rval = SNMPERR_GENERR, get_user_passphrases_quit);
 #ifndef WIN32
     } else if (statbuf.st_mode & (S_IRWXG | S_IRWXO)) {
         fprintf(stderr,
                 "Directory \"%s\" is accessible by group or world.\n",
                 path);
-        QUITFUN(SNMPERR_GENERR, get_user_passphrases_quit);
+        QUITFUN(rval = SNMPERR_GENERR, get_user_passphrases_quit);
 #endif                          /* !WIN32 */
     }
 
@@ -521,12 +524,12 @@ get_user_passphrases(void)
     path[ sizeof(path)-1 ] = 0;
     if (stat(path, &statbuf) < 0) {
         fprintf(stderr, "Cannot access file \"%s\".\n", path);
-        QUITFUN(SNMPERR_GENERR, get_user_passphrases_quit);
+        QUITFUN(rval = SNMPERR_GENERR, get_user_passphrases_quit);
 #ifndef WIN32
     } else if (statbuf.st_mode & (S_IRWXG | S_IRWXO)) {
         fprintf(stderr,
                 "File \"%s\" is accessible by group or world.\n", path);
-        QUITFUN(SNMPERR_GENERR, get_user_passphrases_quit);
+        QUITFUN(rval = SNMPERR_GENERR, get_user_passphrases_quit);
 #endif                          /* !WIN32 */
     }
 
@@ -535,7 +538,7 @@ get_user_passphrases(void)
      */
     if ((fp = fopen(path, "r")) == NULL) {
         fprintf(stderr, "Cannot open \"%s\".", path);
-        QUITFUN(SNMPERR_GENERR, get_user_passphrases_quit);
+        QUITFUN(rval = SNMPERR_GENERR, get_user_passphrases_quit);
     }
 
     /*
@@ -610,7 +613,7 @@ get_user_passphrases(void)
 
 
   get_user_passphrases_quit:
-    memset(buf, 0, SNMP_MAXBUF);
+    SNMP_ZERO(buf, SNMP_MAXBUF);
 
     if (obuf != oldpass) {
         SNMP_ZERO(obuf, strlen(obuf));
@@ -740,16 +743,12 @@ snmp_getpassphrase(const char *prompt, int bvisible)
         ti = snmp_ttyecho(0, 0);
     }
 
-    bufp = fgets(buffer, sizeof(buffer), stdin);
+    fgets(buffer, sizeof(buffer), stdin);
 
     if (!bvisible) {
         ti = snmp_ttyecho(0, ti);
         fputs("\n", ofp);
     }
-    if (!bufp) {
-        fprintf(stderr, "Aborted...\n");
-        exit(1);
-    }
 
 
     /*
@@ -763,7 +762,7 @@ snmp_getpassphrase(const char *prompt, int bvisible)
     if (bufp)
         memcpy(bufp, buffer, len + 1);
 
-    memset(buffer, 0, SNMP_MAXBUF);
+    SNMP_ZERO(buffer, SNMP_MAXBUF);
 
 
     return bufp;
diff --git a/apps/snmpbulkget.c b/apps/snmpbulkget.c
index 2e9ee34..47cc31f 100644
--- a/apps/snmpbulkget.c
+++ b/apps/snmpbulkget.c
@@ -42,7 +42,11 @@ SOFTWARE.
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -56,6 +60,9 @@ SOFTWARE.
 #endif
 #include <stdio.h>
 #include <ctype.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -113,7 +120,7 @@ optProc(int argc, char *const *argv, int opt)
                     exit(1);
                 } else {
                     optarg = endptr;
-                    if (isspace((unsigned char)(*optarg))) {
+                    if (isspace(*optarg)) {
                         return;
                     }
                 }
@@ -137,6 +144,7 @@ main(int argc, char *argv[])
     netsnmp_variable_list *vars;
     int             arg;
     int             count;
+    int             running;
     int             status;
     int             exitval = 0;
 
@@ -144,11 +152,9 @@ main(int argc, char *argv[])
      * 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:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
@@ -213,6 +219,7 @@ main(int argc, char *argv[])
             /*
              * error in response, print it 
              */
+            running = 0;
             if (response->errstat == SNMP_ERR_NOSUCHNAME) {
                 printf("End of MIB.\n");
             } else {
@@ -235,9 +242,11 @@ main(int argc, char *argv[])
     } else if (status == STAT_TIMEOUT) {
         fprintf(stderr, "Timeout: No Response from %s\n",
                 session.peername);
+        running = 0;
         exitval = 1;
     } else {                    /* status == STAT_ERROR */
         snmp_sess_perror("snmpbulkget", ss);
+        running = 0;
         exitval = 1;
     }
 
diff --git a/apps/snmpbulkwalk.c b/apps/snmpbulkwalk.c
index 379d2ae..bedbe7f 100644
--- a/apps/snmpbulkwalk.c
+++ b/apps/snmpbulkwalk.c
@@ -42,7 +42,11 @@ SOFTWARE.
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -56,6 +60,9 @@ SOFTWARE.
 #endif
 #include <stdio.h>
 #include <ctype.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -150,7 +157,7 @@ optProc(int argc, char *const *argv, int opt)
                     exit(1);
                 } else {
                     optarg = endptr;
-                    if (isspace((unsigned char)(*optarg))) {
+                    if (isspace(*optarg)) {
                         return;
                     }
                 }
@@ -184,7 +191,7 @@ main(int argc, char *argv[])
     size_t          rootlen;
     int             count;
     int             running;
-    int             status = STAT_ERROR;
+    int             status;
     int             check;
     int             exitval = 0;
 
@@ -202,11 +209,9 @@ main(int argc, char *argv[])
      * 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:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
diff --git a/apps/snmpdelta.c b/apps/snmpdelta.c
index 08e2ebc..a1982f2 100644
--- a/apps/snmpdelta.c
+++ b/apps/snmpdelta.c
@@ -46,7 +46,11 @@
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -58,6 +62,9 @@
 #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
@@ -214,7 +221,7 @@ wait_for_peak_start(int period, int peak)
     /*
      * Now figure out the amount of time to sleep 
      */
-    target = (int)(SecondsAtNextHour - tv->tv_sec) % seconds;
+    target = (SecondsAtNextHour - tv->tv_sec) % seconds;
 
     return target;
 }
@@ -249,7 +256,7 @@ sprint_descriptor(char *buffer, struct varInfo *vip)
 
     for (cp = buf; *cp; cp++);
     while (cp >= buf) {
-        if (isalpha((unsigned char)(*cp)))
+        if (isalpha(*cp))
             break;
         cp--;
     }
@@ -289,7 +296,7 @@ processFileArgs(char *fileName)
             continue;
         blank = TRUE;
         for (cp = buf; *cp; cp++)
-            if (!isspace((unsigned char)(*cp))) {
+            if (!isspace(*cp)) {
                 blank = FALSE;
                 break;
             }
@@ -350,7 +357,7 @@ wait_for_period(int period)
     }
     count = 1;
     while (count != 0) {
-        count = select(0, NULL, NULL, NULL, tv);
+        count = select(0, 0, 0, 0, tv);
         switch (count) {
         case 0:
             break;
@@ -401,11 +408,9 @@ main(int argc, char *argv[])
     int             exit_code = 0;
 
     switch (arg = snmp_parse_args(argc, argv, &session, "C:", &optProc)) {
-    case NETSNMP_PARSE_ARGS_ERROR:
-        exit(1);
-    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
@@ -434,7 +439,7 @@ main(int argc, char *argv[])
 	    	MAX_ARGS);
 	    exit(1);
 	}
-        varinfo[current_name++].name = NULL;
+        varinfo[current_name++].name = 0;
     }
 
     SOCK_STARTUP;
@@ -471,7 +476,7 @@ main(int argc, char *argv[])
                 printf("\t%s", vip->descriptor);
         } else {
             vip->oidlen = 0;
-            strlcpy(vip->descriptor, SumFile, sizeof(vip->descriptor));
+            strcpy(vip->descriptor, SumFile);
         }
         vip->value = 0;
         zeroU64(&vip->c64value);
@@ -726,12 +731,12 @@ main(int argc, char *argv[])
 
         } else if (status == STAT_TIMEOUT) {
             fprintf(stderr, "Timeout: No Response from %s\n", gateway);
-            response = NULL;
+            response = 0;
             exit_code = 1;
             break;
         } else {                /* status == STAT_ERROR */
             snmp_sess_perror("snmpdelta", ss);
-            response = NULL;
+            response = 0;
             exit_code = 1;
             break;
         }
diff --git a/apps/snmpdf.c b/apps/snmpdf.c
index 6a5ef19..7db6b15 100644
--- a/apps/snmpdf.c
+++ b/apps/snmpdf.c
@@ -1,5 +1,5 @@
 /*
- * snmpdf.c - display disk space usage on a network entity via SNMP.
+ * snmpdf.c - send snmp GET requests to a network entity.
  *
  */
 
@@ -54,7 +54,11 @@ SOFTWARE.
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -66,6 +70,9 @@ SOFTWARE.
 #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
@@ -226,11 +233,9 @@ main(int argc, char *argv[])
      * 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:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
diff --git a/apps/snmpget.c b/apps/snmpget.c
index 701f536..10a6968 100644
--- a/apps/snmpget.c
+++ b/apps/snmpget.c
@@ -43,7 +43,11 @@ SOFTWARE.
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -55,6 +59,9 @@ SOFTWARE.
 #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
@@ -119,16 +126,13 @@ main(int argc, char *argv[])
     int             failures = 0;
     int             exitval = 0;
 
-
     /*
      * 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:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
diff --git a/apps/snmpgetnext.c b/apps/snmpgetnext.c
index 7de13f3..5f91def 100644
--- a/apps/snmpgetnext.c
+++ b/apps/snmpgetnext.c
@@ -43,7 +43,11 @@ SOFTWARE.
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -55,6 +59,9 @@ SOFTWARE.
 #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
@@ -120,11 +127,9 @@ main(int argc, char *argv[])
      * 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:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
diff --git a/apps/snmpnetstat/Makefile.depend b/apps/snmpnetstat/Makefile.depend
index 3848e49..48c5370 100644
--- a/apps/snmpnetstat/Makefile.depend
+++ b/apps/snmpnetstat/Makefile.depend
@@ -4,64 +4,58 @@
 ./if.lo: ../../include/net-snmp/system/linux.h
 ./if.lo: ../../include/net-snmp/system/sysv.h
 ./if.lo: ../../include/net-snmp/system/generic.h
+./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/oid.h
-./if.lo: ../../include/net-snmp/library/types.h
+./if.lo:  ../../include/net-snmp/definitions.h
+./if.lo: ../../include/net-snmp/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
-./if.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./if.lo: ../../include/net-snmp/library/ucd_compat.h
-./if.lo: ../../include/net-snmp/library/mib.h
-./if.lo: ../../include/net-snmp/mib_api.h
-./if.lo: ../../include/net-snmp/library/parse.h
-./if.lo: ../../include/net-snmp/library/oid_stash.h
-./if.lo: ../../include/net-snmp/net-snmp-features.h
 ./if.lo: ../../include/net-snmp/library/snmp_impl.h
 ./if.lo: ../../include/net-snmp/library/snmp.h
 ./if.lo: ../../include/net-snmp/library/snmp-tc.h
-./if.lo: ../../include/net-snmp/library/getopt.h
 ./if.lo: ../../include/net-snmp/utilities.h
+./if.lo: ../../include/net-snmp/library/snmp_client.h
 ./if.lo: ../../include/net-snmp/library/system.h
 ./if.lo: ../../include/net-snmp/library/tools.h
 ./if.lo: ../../include/net-snmp/library/int64.h
 ./if.lo: ../../include/net-snmp/library/mt_support.h
 ./if.lo: ../../include/net-snmp/library/snmp_alarm.h
+./if.lo: ../../include/net-snmp/library/callback.h
 ./if.lo: ../../include/net-snmp/library/data_list.h
+./if.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./if.lo: ../../include/net-snmp/library/container.h
 ./if.lo: ../../include/net-snmp/library/snmp_assert.h
-./if.lo: ../../include/net-snmp/version.h ../../include/net-snmp/config_api.h
+./if.lo: ../../include/net-snmp/version.h
+./if.lo: ../../include/net-snmp/session_api.h
+./if.lo: ../../include/net-snmp/library/snmp_transport.h
+./if.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./if.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./if.lo: ../../include/net-snmp/pdu_api.h ../../include/net-snmp/mib_api.h
+./if.lo: ../../include/net-snmp/library/mib.h
+./if.lo: ../../include/net-snmp/library/parse.h
+./if.lo: ../../include/net-snmp/varbind_api.h
+./if.lo: ../../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
@@ -70,70 +64,65 @@
 ./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
 ./if.lo: 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/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
-./inet6.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./inet6.lo: ../../include/net-snmp/library/ucd_compat.h
-./inet6.lo: ../../include/net-snmp/library/mib.h
-./inet6.lo: ../../include/net-snmp/mib_api.h
-./inet6.lo: ../../include/net-snmp/library/parse.h
-./inet6.lo: ../../include/net-snmp/library/oid_stash.h
-./inet6.lo: ../../include/net-snmp/net-snmp-features.h
 ./inet6.lo: ../../include/net-snmp/library/snmp_impl.h
 ./inet6.lo: ../../include/net-snmp/library/snmp.h
 ./inet6.lo: ../../include/net-snmp/library/snmp-tc.h
-./inet6.lo: ../../include/net-snmp/library/getopt.h
 ./inet6.lo: ../../include/net-snmp/utilities.h
+./inet6.lo: ../../include/net-snmp/library/snmp_client.h
 ./inet6.lo: ../../include/net-snmp/library/system.h
 ./inet6.lo: ../../include/net-snmp/library/tools.h
 ./inet6.lo: ../../include/net-snmp/library/int64.h
 ./inet6.lo: ../../include/net-snmp/library/mt_support.h
 ./inet6.lo: ../../include/net-snmp/library/snmp_alarm.h
+./inet6.lo: ../../include/net-snmp/library/callback.h
 ./inet6.lo: ../../include/net-snmp/library/data_list.h
+./inet6.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./inet6.lo: ../../include/net-snmp/library/container.h
 ./inet6.lo: ../../include/net-snmp/library/snmp_assert.h
 ./inet6.lo: ../../include/net-snmp/version.h
+./inet6.lo: ../../include/net-snmp/session_api.h
+./inet6.lo: ../../include/net-snmp/library/snmp_transport.h
+./inet6.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./inet6.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./inet6.lo: ../../include/net-snmp/pdu_api.h ../../include/net-snmp/mib_api.h
+./inet6.lo: ../../include/net-snmp/library/mib.h
+./inet6.lo: ../../include/net-snmp/library/parse.h
+./inet6.lo: ../../include/net-snmp/varbind_api.h
 ./inet6.lo: ../../include/net-snmp/config_api.h
 ./inet6.lo: ../../include/net-snmp/library/read_config.h
 ./inet6.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -142,68 +131,63 @@
 ./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
-./inet.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./inet.lo: ../../include/net-snmp/library/ucd_compat.h
-./inet.lo: ../../include/net-snmp/library/mib.h
-./inet.lo: ../../include/net-snmp/mib_api.h
-./inet.lo: ../../include/net-snmp/library/parse.h
-./inet.lo: ../../include/net-snmp/library/oid_stash.h
-./inet.lo: ../../include/net-snmp/net-snmp-features.h
 ./inet.lo: ../../include/net-snmp/library/snmp_impl.h
 ./inet.lo: ../../include/net-snmp/library/snmp.h
 ./inet.lo: ../../include/net-snmp/library/snmp-tc.h
-./inet.lo: ../../include/net-snmp/library/getopt.h
 ./inet.lo: ../../include/net-snmp/utilities.h
+./inet.lo: ../../include/net-snmp/library/snmp_client.h
 ./inet.lo: ../../include/net-snmp/library/system.h
 ./inet.lo: ../../include/net-snmp/library/tools.h
 ./inet.lo: ../../include/net-snmp/library/int64.h
 ./inet.lo: ../../include/net-snmp/library/mt_support.h
 ./inet.lo: ../../include/net-snmp/library/snmp_alarm.h
+./inet.lo: ../../include/net-snmp/library/callback.h
 ./inet.lo: ../../include/net-snmp/library/data_list.h
+./inet.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./inet.lo: ../../include/net-snmp/library/container.h
 ./inet.lo: ../../include/net-snmp/library/snmp_assert.h
 ./inet.lo: ../../include/net-snmp/version.h
+./inet.lo: ../../include/net-snmp/session_api.h
+./inet.lo: ../../include/net-snmp/library/snmp_transport.h
+./inet.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./inet.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./inet.lo: ../../include/net-snmp/pdu_api.h ../../include/net-snmp/mib_api.h
+./inet.lo: ../../include/net-snmp/library/mib.h
+./inet.lo: ../../include/net-snmp/library/parse.h
+./inet.lo: ../../include/net-snmp/varbind_api.h
 ./inet.lo: ../../include/net-snmp/config_api.h
 ./inet.lo: ../../include/net-snmp/library/read_config.h
 ./inet.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -212,68 +196,63 @@
 ./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/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
-./main.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./main.lo: ../../include/net-snmp/library/ucd_compat.h
-./main.lo: ../../include/net-snmp/library/mib.h
-./main.lo: ../../include/net-snmp/mib_api.h
-./main.lo: ../../include/net-snmp/library/parse.h
-./main.lo: ../../include/net-snmp/library/oid_stash.h
-./main.lo: ../../include/net-snmp/net-snmp-features.h
 ./main.lo: ../../include/net-snmp/library/snmp_impl.h
 ./main.lo: ../../include/net-snmp/library/snmp.h
 ./main.lo: ../../include/net-snmp/library/snmp-tc.h
-./main.lo: ../../include/net-snmp/library/getopt.h
 ./main.lo: ../../include/net-snmp/utilities.h
+./main.lo: ../../include/net-snmp/library/snmp_client.h
 ./main.lo: ../../include/net-snmp/library/system.h
 ./main.lo: ../../include/net-snmp/library/tools.h
 ./main.lo: ../../include/net-snmp/library/int64.h
 ./main.lo: ../../include/net-snmp/library/mt_support.h
 ./main.lo: ../../include/net-snmp/library/snmp_alarm.h
+./main.lo: ../../include/net-snmp/library/callback.h
 ./main.lo: ../../include/net-snmp/library/data_list.h
+./main.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./main.lo: ../../include/net-snmp/library/container.h
 ./main.lo: ../../include/net-snmp/library/snmp_assert.h
 ./main.lo: ../../include/net-snmp/version.h
+./main.lo: ../../include/net-snmp/session_api.h
+./main.lo: ../../include/net-snmp/library/snmp_transport.h
+./main.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./main.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./main.lo: ../../include/net-snmp/pdu_api.h ../../include/net-snmp/mib_api.h
+./main.lo: ../../include/net-snmp/library/mib.h
+./main.lo: ../../include/net-snmp/library/parse.h
+./main.lo: ../../include/net-snmp/varbind_api.h
 ./main.lo: ../../include/net-snmp/config_api.h
 ./main.lo: ../../include/net-snmp/library/read_config.h
 ./main.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -282,68 +261,65 @@
 ./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/snmptsm.h
-./main.lo: ../../include/net-snmp/library/snmpusm.h main.h netstat.h
+./main.lo: ../../include/net-snmp/library/snmpusm.h 
+./main.lo:   main.h
+./main.lo: 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
-./route.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./route.lo: ../../include/net-snmp/library/ucd_compat.h
-./route.lo: ../../include/net-snmp/library/mib.h
-./route.lo: ../../include/net-snmp/mib_api.h
-./route.lo: ../../include/net-snmp/library/parse.h
-./route.lo: ../../include/net-snmp/library/oid_stash.h
-./route.lo: ../../include/net-snmp/net-snmp-features.h
 ./route.lo: ../../include/net-snmp/library/snmp_impl.h
 ./route.lo: ../../include/net-snmp/library/snmp.h
 ./route.lo: ../../include/net-snmp/library/snmp-tc.h
-./route.lo: ../../include/net-snmp/library/getopt.h
 ./route.lo: ../../include/net-snmp/utilities.h
+./route.lo: ../../include/net-snmp/library/snmp_client.h
 ./route.lo: ../../include/net-snmp/library/system.h
 ./route.lo: ../../include/net-snmp/library/tools.h
 ./route.lo: ../../include/net-snmp/library/int64.h
 ./route.lo: ../../include/net-snmp/library/mt_support.h
 ./route.lo: ../../include/net-snmp/library/snmp_alarm.h
+./route.lo: ../../include/net-snmp/library/callback.h
 ./route.lo: ../../include/net-snmp/library/data_list.h
+./route.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./route.lo: ../../include/net-snmp/library/container.h
 ./route.lo: ../../include/net-snmp/library/snmp_assert.h
 ./route.lo: ../../include/net-snmp/version.h
+./route.lo: ../../include/net-snmp/session_api.h
+./route.lo: ../../include/net-snmp/library/snmp_transport.h
+./route.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./route.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./route.lo: ../../include/net-snmp/pdu_api.h ../../include/net-snmp/mib_api.h
+./route.lo: ../../include/net-snmp/library/mib.h
+./route.lo: ../../include/net-snmp/library/parse.h
+./route.lo: ../../include/net-snmp/varbind_api.h
 ./route.lo: ../../include/net-snmp/config_api.h
 ./route.lo: ../../include/net-snmp/library/read_config.h
 ./route.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -352,68 +328,66 @@
 ./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/snmptsm.h
-./route.lo: ../../include/net-snmp/library/snmpusm.h main.h netstat.h
+./route.lo: ../../include/net-snmp/library/snmpusm.h 
+./route.lo:   main.h
+./route.lo: 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
-./winstub.lo: ../../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./winstub.lo: ../../include/net-snmp/library/ucd_compat.h
-./winstub.lo: ../../include/net-snmp/library/mib.h
-./winstub.lo: ../../include/net-snmp/mib_api.h
-./winstub.lo: ../../include/net-snmp/library/parse.h
-./winstub.lo: ../../include/net-snmp/library/oid_stash.h
-./winstub.lo: ../../include/net-snmp/net-snmp-features.h
 ./winstub.lo: ../../include/net-snmp/library/snmp_impl.h
 ./winstub.lo: ../../include/net-snmp/library/snmp.h
 ./winstub.lo: ../../include/net-snmp/library/snmp-tc.h
-./winstub.lo: ../../include/net-snmp/library/getopt.h
 ./winstub.lo: ../../include/net-snmp/utilities.h
+./winstub.lo: ../../include/net-snmp/library/snmp_client.h
 ./winstub.lo: ../../include/net-snmp/library/system.h
 ./winstub.lo: ../../include/net-snmp/library/tools.h
 ./winstub.lo: ../../include/net-snmp/library/int64.h
 ./winstub.lo: ../../include/net-snmp/library/mt_support.h
 ./winstub.lo: ../../include/net-snmp/library/snmp_alarm.h
+./winstub.lo: ../../include/net-snmp/library/callback.h
 ./winstub.lo: ../../include/net-snmp/library/data_list.h
+./winstub.lo: ../../include/net-snmp/library/oid_stash.h
 ./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
 ./winstub.lo: ../../include/net-snmp/library/container.h
 ./winstub.lo: ../../include/net-snmp/library/snmp_assert.h
 ./winstub.lo: ../../include/net-snmp/version.h
+./winstub.lo: ../../include/net-snmp/session_api.h
+./winstub.lo: ../../include/net-snmp/library/snmp_transport.h
+./winstub.lo: ../../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./winstub.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.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
+./winstub.lo: ../../include/net-snmp/pdu_api.h
+./winstub.lo: ../../include/net-snmp/mib_api.h
+./winstub.lo: ../../include/net-snmp/library/mib.h
+./winstub.lo: ../../include/net-snmp/library/parse.h
+./winstub.lo: ../../include/net-snmp/varbind_api.h
 ./winstub.lo: ../../include/net-snmp/config_api.h
 ./winstub.lo: ../../include/net-snmp/library/read_config.h
 ./winstub.lo: ../../include/net-snmp/library/default_store.h
 ./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
@@ -422,5 +396,4 @@
 ./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/Makefile.in b/apps/snmpnetstat/Makefile.in
index ac6e775..4a07ebb 100644
--- a/apps/snmpnetstat/Makefile.in
+++ b/apps/snmpnetstat/Makefile.in
@@ -3,8 +3,6 @@
 #
 
 top_builddir=../..
-mysubdir=apps/snmpnetstat
-
 INSTALLBINPROGS=snmpnetstat$(EXEEXT)
 
 # use GNU vpath, if available, to only set a path for source and headers
@@ -21,16 +19,12 @@ INSTALLBINPROGS=snmpnetstat$(EXEEXT)
 SRCS=	inet.c inet6.c if.c main.c route.c winstub.c ffs.c
 OBJS=	inet.o inet6.o if.o main.o route.o winstub.o ffs.o
 LOBJS=	inet.lo inet6.lo if.lo main.lo route.lo winstub.lo ffs.lo
-FTOBJS=	inet.ft inet6.ft if.ft main.ft route.ft winstub.ft ffs.ft
 TARG= snmpnetstat$(EXEEXT)
 
-FEATUREFILE=../../include/net-snmp/features-snmpnetstat.h
-
 CPPFLAGS= $(TOP_INCLUDES)  @CPPFLAGS@
 
-VAL_LIBS	= @VAL_LIBS@
 USELIBS= ../../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION)
-LIBS=	 ../../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION) $(VAL_LIBS) @LIBS@
+LIBS=	 ../../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION) @LIBS@
 
 all: standardall
 
diff --git a/apps/snmpnetstat/if.c b/apps/snmpnetstat/if.c
index f7e7554..2d8e372 100644
--- a/apps/snmpnetstat/if.c
+++ b/apps/snmpnetstat/if.c
@@ -49,12 +49,8 @@ static char *rcsid = "$OpenBSD: if.c,v 1.42 2005/03/13 16:05:50 mpf Exp $";
 #if HAVE_NET_IF_H
 #include <net/if.h>
 #endif
-#ifndef _XOPEN_SOURCE
-#define _XOPEN_SOURCE 1
-#endif
-#ifndef _XOPEN_SOURCE_EXTENDED
-#define _XOPEN_SOURCE_EXTENDED 1
-#endif
+#define __USE_XOPEN
+#define __USE_XOPEN_EXTENDED
 #include <signal.h>
 
 #include "main.h"
@@ -72,7 +68,7 @@ static void timerPause(void);
         char            ip[128], route[128];
         int             mtu;
         int             drops;
-        unsigned int    ifindex;
+        int             ifindex;
                         /*
                          * Save "expandable" fields as string values
                          *  rather than integer statistics
@@ -131,15 +127,14 @@ _set_address( struct _if_info *cur_if )
      */
     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 == (int)cur_if->ifindex )
+        if ( vp->val.integer && *vp->val.integer == cur_if->ifindex )
             break;
     }
     if (vp2) {
         /*
          * Always want a numeric interface IP address
          */
-        snprintf( cur_if->ip, 128, "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u."
-                  "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u",
+        snprintf( cur_if->ip, 128, "%lu.%lu.%lu.%lu",
                   vp2->name[10],
                   vp2->name[11],
                   vp2->name[12],
@@ -278,6 +273,7 @@ intpr(int interval)
                  * XXX - Try to recover ?
                  */
                 SNMP_FREE( cur_if );
+                cur_if = NULL;
                 break;    /* not for now, no */
             }
             switch ( vp->name[ var->name_length-2 ] ) {
@@ -374,6 +370,7 @@ intpr(int interval)
          */
         if ( intrface && strcmp( cur_if->name, intrface ) != 0) {
             SNMP_FREE( cur_if );
+            cur_if = NULL;
         }
 
         /*
@@ -517,7 +514,7 @@ sidewaysintpr(unsigned int interval)
     struct iftot *sum = NULL, *total  = NULL;    /* overall summary    */
     int    line;
     int    first;
-    size_t i;
+    int    i;
 
     var = NULL;
     if ( intrface ) {
diff --git a/apps/snmpnetstat/inet.c b/apps/snmpnetstat/inet.c
index 0ae810d..7dc3ff1 100644
--- a/apps/snmpnetstat/inet.c
+++ b/apps/snmpnetstat/inet.c
@@ -46,6 +46,8 @@ static const char *rcsid = "$OpenBSD: inet.c,v 1.92 2005/02/10 14:25:08 itojun E
 #include <unistd.h>
 #endif
 #if HAVE_WINSOCK_H
+#include <winsock2.h>
+#include <ws2tcpip.h>
 #include "winstub.h"
 #endif
 #if HAVE_SYS_SOCKET_H
@@ -67,7 +69,7 @@ static const char *rcsid = "$OpenBSD: inet.c,v 1.92 2005/02/10 14:25:08 itojun E
 #include "netstat.h"
 
 struct stat_table {
-    unsigned int  entry;      /* entry number in table */
+    int             entry;      /* entry number in table */
     /*
      * format string to printf(description, value) 
      * warning: the %d must be before the %s 
@@ -104,65 +106,20 @@ const char     *tcpstates[] = {
 };
 #define TCP_NSTATES 11
 
-static void
-tcpprotoprint_line(const char *name, netsnmp_variable_list *vp, int *first)
+void
+tcpprotopr(const char *name)
 {
+    netsnmp_variable_list *var, *vp;
+    oid    tcpConnState_oid[] = { 1,3,6,1,2,1,6,13,1,1 };
+    size_t tcpConnState_len   = OID_LENGTH( tcpConnState_oid );
     int    state, width;
-    char  *cp;
     union {
         struct in_addr addr;
         char      data[4];
     } tmpAddr;
     oid    localPort, remotePort;
     struct in_addr localAddr, remoteAddr;
-
-	state = *vp->val.integer;
-	if (!aflag && state == MIB_TCPCONNSTATE_LISTEN) {
-		return;
-	}
-
-	if (*first) {
-		printf("Active Internet (%s) Connections", name);
-		if (aflag)
-			printf(" (including servers)");
-		putchar('\n');
-		width = Aflag ? 18 : 22;
-		printf("%-5.5s %*.*s %*.*s %s\n",
-			   "Proto", -width, width, "Local Address",
-						-width, width, "Remote Address", "(state)");
-		*first = 0;
-	}
-	
-	/* Extract the local/remote information from the index values */
-	cp = tmpAddr.data;
-	cp[0] = vp->name[ 10 ] & 0xff;
-	cp[1] = vp->name[ 11 ] & 0xff;
-	cp[2] = vp->name[ 12 ] & 0xff;
-	cp[3] = vp->name[ 13 ] & 0xff;
-	localAddr.s_addr = tmpAddr.addr.s_addr;
-	localPort        = ntohs(vp->name[ 14 ]);
-	cp = tmpAddr.data;
-	cp[0] = vp->name[ 15 ] & 0xff;
-	cp[1] = vp->name[ 16 ] & 0xff;
-	cp[2] = vp->name[ 17 ] & 0xff;
-	cp[3] = vp->name[ 18 ] & 0xff;
-	remoteAddr.s_addr = tmpAddr.addr.s_addr;
-	remotePort        = ntohs(vp->name[ 19 ]);
-
-	printf("%-5.5s", name);
-	inetprint(&localAddr,  localPort,  name, 1);
-	inetprint(&remoteAddr, remotePort, name, 0);
-	if (state < 1 || state > TCP_NSTATES) {
-		printf("%d\n", state );
-	} else {
-		printf("%s\n", tcpstates[state]);
-	}
-}
-
-static void
-tcpprotopr_get(const char *name, oid *root, size_t root_len)
-{
-    netsnmp_variable_list *var, *vp;
+    char  *cp;
     int    first = 1;
 
     /*
@@ -170,7 +127,7 @@ tcpprotopr_get(const char *name, oid *root, size_t root_len)
      *   the necessary information.
      */
     var = NULL;
-    snmp_varlist_add_variable( &var, root, root_len,
+    snmp_varlist_add_variable( &var, tcpConnState_oid, tcpConnState_len,
                                    ASN_NULL, NULL,  0);
     if (!var)
         return;
@@ -178,7 +135,45 @@ tcpprotopr_get(const char *name, oid *root, size_t root_len)
         return;
 
     for (vp = var; vp ; vp=vp->next_variable) {
-        tcpprotoprint_line(name, vp, &first);
+        state = *vp->val.integer;
+        if (!aflag && state == MIB_TCPCONNSTATE_LISTEN)
+            continue;
+
+        if (first) {
+            printf("Active Internet (%s) Connections", name);
+            if (aflag)
+                printf(" (including servers)");
+            putchar('\n');
+            width = Aflag ? 18 : 22;
+            printf("%-5.5s %*.*s %*.*s %s\n",
+                   "Proto", -width, width, "Local Address",
+                            -width, width, "Remote Address", "(state)");
+            first=0;
+        }
+        
+        /* Extract the local/remote information from the index values */
+        cp = tmpAddr.data;
+        cp[0] = vp->name[ 10 ] & 0xff;
+        cp[1] = vp->name[ 11 ] & 0xff;
+        cp[2] = vp->name[ 12 ] & 0xff;
+        cp[3] = vp->name[ 13 ] & 0xff;
+        localAddr.s_addr = tmpAddr.addr.s_addr;
+        localPort        = ntohs((u_short)(vp->name[ 14 ]));
+        cp = tmpAddr.data;
+        cp[0] = vp->name[ 15 ] & 0xff;
+        cp[1] = vp->name[ 16 ] & 0xff;
+        cp[2] = vp->name[ 17 ] & 0xff;
+        cp[3] = vp->name[ 18 ] & 0xff;
+        remoteAddr.s_addr = tmpAddr.addr.s_addr;
+        remotePort        = ntohs((u_short)(vp->name[ 19 ]));
+
+        printf("%-5.5s", name);
+        inetprint(&localAddr,  localPort,  name, 1);
+        inetprint(&remoteAddr, remotePort, name, 0);
+        if ( state < 1 || state > TCP_NSTATES )
+            printf("%d\n", state );
+        else
+            printf("%s\n", tcpstates[ state ]);
     }
     snmp_free_varbind( var );
 }
@@ -235,110 +230,6 @@ udpprotopr(const char *name)
     snmp_free_varbind( var );
 }
 
-void
-tcpprotopr_bulkget(const char *name, oid *root, size_t root_len)
-{
-    netsnmp_variable_list *vp;
-	netsnmp_pdu    *pdu, *response;
-    oid             tcpConnState_oid[MAX_OID_LEN];
-	size_t          tcpConnState_len;
-    int    first = 1;
-    int    running = 1;
-    int    status;
-
-	/*
-     * setup initial object name
-     */
-	memmove(tcpConnState_oid, root, sizeof(oid) * root_len);
-	tcpConnState_len = root_len;
-
-    /*
-     * Walking the tcpConnState column will provide all
-     *   the necessary information.
-     */
-	while (running) {
-        /*
-         * create PDU for GETBULK request and add object name to request
-         */
-        pdu = snmp_pdu_create(SNMP_MSG_GETBULK);
-        pdu->non_repeaters = 0;
-        pdu->max_repetitions = max_getbulk;    /* fill the packet */
-        snmp_add_null_var(pdu, tcpConnState_oid, tcpConnState_len);
-
-        /*
-         * do the request
-         */
-        status = snmp_synch_response(ss, pdu, &response);
-        if (status == STAT_SUCCESS) {
-            if (response->errstat == SNMP_ERR_NOERROR) {
-				for (vp = response->variables; vp ; vp=vp->next_variable) {
-                    if ((vp->name_length < root_len) ||
-							(memcmp(root, vp->name, sizeof(oid) * root_len) != 0)) {
-                        /*
-                         * not part of this subtree
-                         */
-                        running = 0;
-                        continue;
-                    }
-
-					tcpprotoprint_line(name, vp, &first);
-
-                    if ((vp->type != SNMP_ENDOFMIBVIEW) &&
-                        (vp->type != SNMP_NOSUCHOBJECT) &&
-                        (vp->type != SNMP_NOSUCHINSTANCE)) {
-                        /*
-                         * Check if last variable, and if so, save for next request.
-                         */
-                        if (vp->next_variable == NULL) {
-                            memmove(tcpConnState_oid, vp->name,
-                                    vp->name_length * sizeof(oid));
-                            tcpConnState_len = vp->name_length;
-                        }
-                    } else {
-                        /*
-                         * an exception value, so stop
-                         */
-                        running = 0;
-                    }
-				}
-            } else {
-                /*
-                 * error in response, print it
-                 */
-                running = 0;
-            }
-        } else if (status == STAT_TIMEOUT) {
-            running = 0;
-        } else {                /* status == STAT_ERROR */
-            running = 0;
-        }
-
-        if (response) {
-            snmp_free_pdu(response);
-		}
-	}
-}
-
-void
-tcpprotopr(const char *name)
-{
-    oid    tcpConnState_oid[] = { 1,3,6,1,2,1,6,13,1,1 };
-    size_t tcpConnState_len   = OID_LENGTH( tcpConnState_oid );
-	int    use_getbulk = 1;
-
-#ifndef NETSNMP_DISABLE_SNMPV1
-    if (ss->version == SNMP_VERSION_1) {
-        use_getbulk = 0;
-	}
-#endif
-
-	if (use_getbulk) {
-		tcpprotopr_bulkget(name, tcpConnState_oid, tcpConnState_len);
-	} else {
-		tcpprotopr_get(name, tcpConnState_oid, tcpConnState_len);
-	}
-}
-
 
 	/*********************
 	 *
@@ -558,7 +449,7 @@ udp_stats(const char *name)
 void
 inetprint(struct in_addr *in, int port, const char *proto, int local)
 {
-	struct servent *sp = NULL;
+	struct servent *sp = 0;
 	char line[80], *cp;
 	int width;
 
@@ -616,8 +507,7 @@ inetname(struct in_addr *inp)
 				cp = np->n_name;
 		}
 		if (cp == NULL) {
-			hp = netsnmp_gethostbyaddr((char *)inp, sizeof (*inp),
-                                                   AF_INET);
+			hp = gethostbyaddr((char *)inp, sizeof (*inp), AF_INET);
 			if (hp) {
 				if ((cp = strchr(hp->h_name, '.')) &&
 				    !strcmp(cp + 1, domain))
@@ -640,7 +530,7 @@ inetname(struct in_addr *inp)
 		snprintf(line, sizeof line, "%s", cp);
 	else {
 		inp->s_addr = ntohl(inp->s_addr);
-#define C(x)	(unsigned)((x) & 0xff)
+#define C(x)	((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 d4ad391..5760522 100644
--- a/apps/snmpnetstat/inet6.c
+++ b/apps/snmpnetstat/inet6.c
@@ -46,6 +46,8 @@ static char sccsid[] = "@(#)inet.c	8.4 (Berkeley) 4/20/94";
 #include <unistd.h>
 #endif
 #if HAVE_WINSOCK_H
+#include <winsock2.h>
+#include <ws2tcpip.h>
 #include "winstub.h"
 #endif
 #if HAVE_SYS_SOCKET_H
@@ -71,7 +73,7 @@ static char sccsid[] = "@(#)inet.c	8.4 (Berkeley) 4/20/94";
 #include "netstat.h"
 
 struct stat_table {
-    unsigned int entry;      /* entry number in table */
+    int             entry;      /* entry number in table */
     /*
      * format string to printf(description, value) 
      * warning: the %d must be before the %s 
@@ -128,7 +130,7 @@ tcp6protopr(const char *name)
         return;
 
     for (vp = var; vp ; vp=vp->next_variable) {
-        state = *vp->val.integer;
+        state = *var->val.integer;
         if (!aflag && state == MIB_TCPCONNSTATE_LISTEN)
             continue;
 
@@ -144,12 +146,12 @@ tcp6protopr(const char *name)
         
         /* Extract the local/remote information from the index values */
         for (i=0; i<16; i++)
-            localAddr[i]  = vp->name[ 10+i ];
-        localPort    = vp->name[ 26 ];
+            localAddr[i]  = var->name[ 10+i ];
+        localPort    = var->name[ 26 ];
         for (i=0; i<16; i++)
-            remoteAddr[i] = vp->name[ 27+i ];
-        remotePort   = vp->name[ 43 ];
-        ifIndex      = vp->name[ 44 ];
+            remoteAddr[i] = var->name[ 27+i ];
+        remotePort   = var->name[ 43 ];
+        ifIndex      = var->name[ 44 ];
 
         printf("%-5.5s", name);
         inet6print(localAddr,  localPort,  name, 1);
@@ -196,9 +198,9 @@ udp6protopr(const char *name)
          *   the IP address from the varbind value, (which is why
          *   we walked udpLocalAddress rather than udpLocalPort)
          */
-        localPort = vp->name[ vp->name_length-2 ];
-        ifIndex   = vp->name[ vp->name_length-1 ];
-        inet6print(vp->val.string, localPort, name, 1);
+        localPort = var->name[ var->name_length-2 ];
+        ifIndex   = var->name[ var->name_length-1 ];
+        inet6print(var->val.string, localPort, name, 1);
         printf(" %4d\n", ifIndex );
     }
     snmp_free_varbind( var );
@@ -223,21 +225,20 @@ _dump_v6stats( const char *name, oid *oid_buf, size_t buf_len,
 {
     netsnmp_variable_list *var, *vp;
     struct stat_table     *sp;
-    long   *stats;
-    oid stat;
-    unsigned int max_stat = 0;
+    oid   *stats, stat;
+    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 = (long *)calloc(max_stat+1, sizeof(long));
+    stats = (oid *)calloc(max_stat+1, sizeof(oid));
     
     /*
      * Walk the specified column(s), and total the individual statistics
@@ -245,12 +246,12 @@ _dump_v6stats( const char *name, oid *oid_buf, size_t buf_len,
     while (1) {
         if (netsnmp_query_getnext( var, ss ) != SNMP_ERR_NOERROR)
             break;
-        if ( snmp_oid_compare( oid_buf,   buf_len,
-                               var->name, buf_len) != 0 )
+        if ( snmp_oid_compare( oid_buf,   buf_len-1,
+                               var->name, buf_len-1) != 0 )
             break;    /* End of Table */
             
         for ( vp=var; vp; vp=vp->next_variable ) {
-            stat = vp->name[ buf_len-1 ];
+            stat = var->name[ buf_len-1 ];
             stats[stat] += *vp->val.integer;
         }
         active=1;
@@ -412,9 +413,9 @@ inet6print(unsigned char *in6, int port, const char *proto, int local)
 		(ret) = getservbyport((int)(port), (proto)); \
 	} while (0)
 
-	struct servent *sp = NULL;
+	struct servent *sp = 0;
 	char line[80], *cp;
-	unsigned width;
+	int width;
 	int len = sizeof line;
 
 	width = Aflag ? 12 : 16;
@@ -469,10 +470,9 @@ inet6name(const unsigned char *in6)
 			domain[0] = '\0';
 	}
 #ifdef NETSNMP_ENABLE_IPV6
-	cp = NULL;
+	cp = 0;
 	if (!nflag && !IN6_IS_ADDR_UNSPECIFIED(in6p)) {
-		hp = netsnmp_gethostbyaddr((const char *)in6p, sizeof(*in6p),
-                                           AF_INET6);
+		hp = gethostbyaddr((const char *)in6p, sizeof(*in6p), AF_INET6);
 		if (hp) {
 			if ((cp = strchr(hp->h_name, '.')) &&
 			    !strcmp(cp + 1, domain))
@@ -493,7 +493,7 @@ inet6name(const unsigned char *in6)
 		if (IN6_IS_ADDR_LINKLOCAL(in6p) ||
 		    IN6_IS_ADDR_MC_LINKLOCAL(in6p)) {
 			sin6.sin6_scope_id =
-			    ntohs(*(const uint16_t *)&in6p->s6_addr[2]);
+			    ntohs(*(u_int16_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 2e09d5e..947c02b 100644
--- a/apps/snmpnetstat/main.c
+++ b/apps/snmpnetstat/main.c
@@ -57,10 +57,6 @@ static char *rcsid = "$OpenBSD: main.c,v 1.52 2005/02/10 14:25:08 itojun Exp $";
 #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 */
@@ -79,11 +75,9 @@ int	sflag;		/* show protocol statistics */
 int	tflag;		/* show i/f watchdog timers */
 int	vflag;		/* be verbose */
 
-
 int	interval;	/* repeat interval for i/f stats */
 char	*intrface;	/* desired i/f for stats, or NULL for all i/fs */
 int	af;		/* address family */
-int     max_getbulk = 32;  /* specifies the max-repeaters value to use with GETBULK requests */
 
 char    *progname = NULL;
 
@@ -91,32 +85,30 @@ char    *progname = NULL;
      * struct nlist nl[] - Omitted
      */
 
-typedef void (stringfun)(const char*);
-
 struct protox {
         /* pr_index/pr_sindex - Omitted */ 
-	int		pr_wanted;	/* 1 if wanted, 0 otherwise */
-	stringfun	*pr_cblocks;	/* control blocks printing routine */
-	stringfun	*pr_stats;	/* statistics printing routine */
-	const char	*pr_name;	/* well-known name */
+	int	pr_wanted;			/* 1 if wanted, 0 otherwise */
+	void	(*pr_cblocks)(const char *);	/* control blocks printing routine */
+	void	(*pr_stats)(const char *);	/* statistics printing routine */
+  const char	*pr_name;			/* well-known name */
 } protox[] = {
 	{ 1,	tcpprotopr,	tcp_stats,	"tcp" },	
 	{ 1,	udpprotopr,	udp_stats,	"udp" },	
 
-	{ 1,	(stringfun*)0,	ip_stats,	"ip" },	/* protopr Omitted */
-	{ 1,	(stringfun*)0,	icmp_stats,	"icmp" },
+	{ 1,	0,	ip_stats,	"ip" },		/* protopr Omitted */
+	{ 1,	0,	icmp_stats,	"icmp" },	
 	/* igmp/ah/esp/ipencap/etherip/ipcomp/carp/pfsync/pim - Omitted */
-	{ 0,	(stringfun*)0,	(stringfun*)0,	NULL }
+	{ 0,	0,	0,		0 }
 };
 
 struct protox ip6protox[] = {
-	{ 1,	tcp6protopr,	(stringfun*)0,	"tcp6" },
-	{ 1,	udp6protopr,	(stringfun*)0,	"udp6" },
+	{ 1,	tcp6protopr,	0,	"tcp6" },
+	{ 1,	udp6protopr,	0,	"udp6" },	
 
-	{ 1,	(stringfun*)0,	ip6_stats,	"ip6" },/* ip6protopr Omitted */
-	{ 1,	(stringfun*)0,	icmp6_stats,	"icmp6" },
+	{ 1,	0,	ip6_stats,	"ip6" },	/* ip6protopr Omitted */
+	{ 1,	0,	icmp6_stats,	"icmp6" },	
 	/* pim6/rip6 - Omitted */
-	{ 0,	(stringfun*)0,	(stringfun*)0,	NULL }
+	{ 0,	0,	0,		0 }
 };
 
 	/* {ipx,ns,atalk}protox Omitted */
@@ -239,24 +231,6 @@ optProc( int argc, char *const *argv, int opt )
 		case 'r':
 			rflag = 1;
 			break;
-		case 'R':
-                        if (optind < argc) {
-                            if (argv[optind]) {
-                                max_getbulk = atoi(argv[optind]);
-                                if (max_getbulk == 0) {
-                                    usage();
-                                    fprintf(stderr, "Bad -CR option: %s\n", 
-                                            argv[optind]);
-                                    exit(1);
-                                }
-                            }
-                        } else {
-                            usage();
-                            fprintf(stderr, "Bad -CR option: no argument given\n");
-                            exit(1);
-                        }
-                        optind++;
-                        break;
 		case 'S':	     /* FreeBSD:
 					NetBSD:  Semi-numeric display
 					OpenBSD: Show route source selector */
@@ -320,13 +294,11 @@ main(int argc, char *argv[])
             progname = argv[0];
 
 	switch (snmp_parse_args( argc, argv, &session, "C:iRs", optProc)) {
-	case NETSNMP_PARSE_ARGS_ERROR:
-	    exit(1);
-	case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
+	case -2:
 	    exit(0);
-	case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+	case -1:
 	    usage();
-	    exit(1);
+	    exit(0);
 	default:
 	    break;
 	}
@@ -424,7 +396,7 @@ main(int argc, char *argv[])
 			for (tp = protox; tp->pr_name; tp++)
 				if (strcmp(tp->pr_name, p->p_name) == 0)
 					break;
-			if (tp->pr_name == NULL || tp->pr_wanted == 0)
+			if (tp->pr_name == 0 || tp->pr_wanted == 0)
 				continue;
 			printproto(tp, p->p_name);
 		}
@@ -477,6 +449,12 @@ plural(int n)
 	return (n != 1 ? "s" : "");
 }
 
+const char *
+plurales(int n)
+{
+	return (n != 1 ? "es" : "");
+}
+
 /*
  * Find the protox for the given "well-known" name.
  */
@@ -511,7 +489,7 @@ name2protox(const char *name)
 
 	setprotoent(1);			/* make protocol lookup cheaper */
 	while ((p = getprotoent())) {
-		/* netsnmp_assert: name not same as p->name */
+		/* 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 1272321..71e7a65 100644
--- a/apps/snmpnetstat/main.h
+++ b/apps/snmpnetstat/main.h
@@ -4,13 +4,10 @@
 #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/netstat.h b/apps/snmpnetstat/netstat.h
index 2841bf2..2762568 100644
--- a/apps/snmpnetstat/netstat.h
+++ b/apps/snmpnetstat/netstat.h
@@ -62,11 +62,11 @@ extern int	interval;	/* repeat interval for i/f stats */
 extern char	*intrface;	/* desired i/f for stats, or NULL for all i/fs */
 
 extern int	af;		/* address family */
-extern int  max_getbulk;  /* specifies the max-repeaters value to use with GETBULK requests */
 
 extern	char *__progname; /* program name, from crt0.o */
 
 const char	*plural(int);
+const char	*plurales(int);
 
 void	tcpprotopr(const char *);
 void	udpprotopr(const char *);
diff --git a/apps/snmpnetstat/route.c b/apps/snmpnetstat/route.c
index e5526dc..1a3b535 100644
--- a/apps/snmpnetstat/route.c
+++ b/apps/snmpnetstat/route.c
@@ -218,6 +218,50 @@ get_ifname(char *name, int ifIndex)
     strcpy(name, ip->name);
 }
 
+/*
+ * Print address family header before a section of the routing table.
+ */
+void
+pr_family(int af)
+{
+	const char *afname;
+
+	switch (af) {
+	case AF_INET:
+		afname = "Internet";
+		break;
+#ifdef NETSNMP_ENABLE_IPV6
+	case AF_INET6:
+		afname = "Internet6";
+		break;
+#endif
+    /*
+	case AF_NS:
+		afname = "XNS";
+		break;
+	case AF_IPX:
+		afname = "IPX";
+		break;
+	case AF_CCITT:
+		afname = "X.25";
+		break;
+	case PF_KEY:
+		afname = "Encap";
+		break;
+	case AF_APPLETALK:
+		afname = "AppleTalk";
+		break;
+     */
+	default:
+		afname = NULL;
+		break;
+	}
+	if (afname)
+		printf("\n%s:\n", afname);
+	else
+		printf("\nProtocol Family %d:\n", af);
+}
+
 /* column widths; each followed by one space */
 #ifndef NETSNMP_ENABLE_IPV6
 #define	WID_DST(af)	26	/* width of destination column */
@@ -287,7 +331,7 @@ routename(in_addr_t in)
 	}
 	cp = NULL;
 	if (!nflag) {
-		hp = netsnmp_gethostbyaddr((char *)&in, sizeof (struct in_addr),
+		hp = gethostbyaddr((char *)&in, sizeof (struct in_addr),
 		    AF_INET);
 		if (hp) {
 			if ((cp = strchr(hp->h_name, '.')) &&
@@ -299,7 +343,7 @@ routename(in_addr_t in)
 	if (cp) {
 		strlcpy(line, cp, sizeof(line));
 	} else {
-#define C(x)	(unsigned)((x) & 0xff)
+#define C(x)	((x) & 0xff)
 		in = ntohl(in);
 		snprintf(line, sizeof line, "%u.%u.%u.%u",
 		    C(in >> 24), C(in >> 16), C(in >> 8), C(in));
diff --git a/apps/snmpnetstat/winstub.c b/apps/snmpnetstat/winstub.c
index 5e2dd64..ffd5966 100644
--- a/apps/snmpnetstat/winstub.c
+++ b/apps/snmpnetstat/winstub.c
@@ -25,6 +25,9 @@
 #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 8fc51dd..ea40450 100644
--- a/apps/snmpnetstat/winstub.h
+++ b/apps/snmpnetstat/winstub.h
@@ -2,8 +2,6 @@
 #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 1b29a6c..454c627 100644
--- a/apps/snmpset.c
+++ b/apps/snmpset.c
@@ -43,7 +43,11 @@ SOFTWARE.
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -55,6 +59,9 @@ SOFTWARE.
 #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
@@ -135,11 +142,9 @@ main(int argc, char *argv[])
      * 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:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
@@ -171,7 +176,6 @@ main(int argc, char *argv[])
             case '=':
             case 'i':
             case 'u':
-            case '3':
             case 't':
             case 'a':
             case 'o':
diff --git a/apps/snmpstatus.c b/apps/snmpstatus.c
index 166ff3d..a061813 100644
--- a/apps/snmpstatus.c
+++ b/apps/snmpstatus.c
@@ -1,6 +1,5 @@
 /*
- * snmpstatus.c - retrieves a fixed set of management information from
- * a network entity.
+ * snmpstatus.c - send snmp GET requests to a network entity.
  *
  */
 /***********************************************************************
@@ -44,7 +43,11 @@ SOFTWARE.
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -56,6 +59,9 @@ SOFTWARE.
 #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
@@ -153,11 +159,9 @@ main(int argc, char *argv[])
      * get the common command line arguments 
      */
     switch (snmp_parse_args(argc, argv, &session, "C:", &optProc)) {
-    case NETSNMP_PARSE_ARGS_ERROR:
-        exit(1);
-    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
diff --git a/apps/snmptable.c b/apps/snmptable.c
index c9c7d26..3460622 100644
--- a/apps/snmptable.c
+++ b/apps/snmptable.c
@@ -43,7 +43,11 @@ SOFTWARE.
 # include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -56,6 +60,9 @@ SOFTWARE.
 #include <sys/select.h>
 #endif
 #include <stdio.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -96,7 +103,6 @@ static int      localdebug;
 static int      exitval = 0;
 static int      use_getbulk = 1;
 static int      max_getbulk = 10;
-static int      extra_columns = 0;
 
 void            usage(void);
 void            get_field_names(void);
@@ -201,7 +207,6 @@ optProc(int argc, char *const *argv, int opt)
             default:
                 fprintf(stderr, "Bad option after -C: %c\n", optarg[-1]);
                 usage();
-                exit(1);
             }
         }
         break;
@@ -250,8 +255,7 @@ main(int argc, char *argv[])
     netsnmp_session session, *ss;
     int            total_entries = 0;
 
-    netsnmp_set_line_buffering(stdout);
-
+    setvbuf(stdout, NULL, _IOLBF, 1024);
     netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
                            NETSNMP_DS_LIB_QUICK_PRINT, 1);
 
@@ -259,11 +263,9 @@ main(int argc, char *argv[])
      * get the common command line arguments 
      */
     switch (snmp_parse_args(argc, argv, &session, "C:", optProc)) {
-    case NETSNMP_PARSE_ARGS_ERROR:
-        exit(1);
-    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
@@ -350,8 +352,6 @@ main(int argc, char *argv[])
 
     if (total_entries == 0)
         printf("%s: No entries\n", table_name);
-    if (extra_columns)
-	printf("%s: WARNING: More columns on agent than in MIB\n", table_name);
 
     return 0;
 }
@@ -666,7 +666,7 @@ get_table_entries(netsnmp_session * ss)
                     col++;
                     name[rootlen] = column[col].subid;
                     if ((vars->name_length < name_length) ||
-                        (vars->name[rootlen] != column[col].subid) ||
+                        ((int) vars->name[rootlen] != column[col].subid) ||
                         memcmp(name, vars->name,
                                name_length * sizeof(oid)) != 0
                         || vars->type == SNMP_ENDOFMIBVIEW) {
@@ -706,7 +706,7 @@ get_table_entries(netsnmp_session * ss)
                                                           NETSNMP_DS_LIB_OID_OUTPUT_FORMAT)) {
                                 case NETSNMP_OID_OUTPUT_MODULE:
 				case 0:
-                                    name_p = strchr(buf, ':');
+                                    name_p = strrchr(buf, ':');
                                     break;
                                 case NETSNMP_OID_OUTPUT_SUFFIX:
                                     name_p = buf;
@@ -865,15 +865,6 @@ getbulk_table_entries(netsnmp_session * ss)
                         printf("%s => taken\n",
                                buf ? (char *) buf : "[NIL]");
                     }
-                    for (col = 0; col < fields; col++)
-                        if (column[col].subid == vars->name[rootlen])
-                            break;
-		    if (col == fields) {
-			extra_columns = 1;
-			last_var = vars;
-			vars = vars->next_variable;
-			continue;
-		    }
                     if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
                                               NETSNMP_DS_LIB_EXTENDED_INDEX)) {
                         name_p = strchr(buf, '[');
@@ -954,6 +945,9 @@ getbulk_table_entries(netsnmp_session * ss)
                     for (cp = buf; *cp; cp++)
                         if (*cp == '\n')
                             *cp = ' ';
+                    for (col = 0; col < fields; col++)
+                        if (column[col].subid == vars->name[rootlen])
+                            break;
                     dp[col] = buf;
                     i = out_len;
                     buf = NULL;
diff --git a/apps/snmptest.c b/apps/snmptest.c
index 24de47b..499bacf 100644
--- a/apps/snmptest.c
+++ b/apps/snmptest.c
@@ -45,7 +45,11 @@ SOFTWARE.
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -57,6 +61,9 @@ SOFTWARE.
 #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
@@ -95,11 +102,9 @@ main(int argc, char *argv[])
      * get the common command line arguments 
      */
     switch (snmp_parse_args(argc, argv, &session, NULL, NULL)) {
-    case NETSNMP_PARSE_ARGS_ERROR:
-        exit(1);
-    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
@@ -122,7 +127,7 @@ main(int argc, char *argv[])
     }
 
     varcount = 0;
-    for(;;) {
+    while (1) {
         vars = NULL;
         for (ret = 1; ret != 0;) {
             vp = (netsnmp_variable_list *)
@@ -163,11 +168,7 @@ main(int argc, char *argv[])
                     } else {
                         printf("What repeat count? ");
                         fflush(stdout);
-                        if (!fgets(input, sizeof(input), stdin)) {
-                            printf("Quitting,  Goodbye\n");
-                            SOCK_CLEANUP;
-                            exit(0);
-                        }
+                        fgets(input, sizeof(input), stdin);
                         maxRepetitions = atoi(input);
                         pdu->non_repeaters = nonRepeaters;
                         pdu->max_repetitions = maxRepetitions;
@@ -210,11 +211,9 @@ main(int argc, char *argv[])
                     case SNMP_MSG_RESPONSE:
                         printf("Received Get Response ");
                         break;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
                     case SNMP_MSG_SET:
                         printf("Received Set Request ");
                         break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
                     case SNMP_MSG_TRAP:
                         printf("Received Trap Request ");
                         break;
@@ -278,7 +277,8 @@ main(int argc, char *argv[])
         varcount = 0;
         nonRepeaters = -1;
     }
-    /* NOTREACHED */
+    SOCK_CLEANUP;
+    return 0;
 }
 
 int
@@ -286,7 +286,8 @@ input_variable(netsnmp_variable_list * vp)
 {
     char            buf[256];
     size_t          val_len;
-    u_char          ch;
+    u_char          value[256], ch;
+    oid             name[MAX_OID_LEN];
 
     printf("Variable: ");
     fflush(stdout);
@@ -304,7 +305,7 @@ input_variable(netsnmp_variable_list * vp)
     if (buf[val_len - 1] == '\n')
         buf[--val_len] = 0;
     if (*buf == '$') {
-        switch (toupper((unsigned char)(buf[1]))) {
+        switch (toupper(buf[1])) {
         case 'G':
             command = SNMP_MSG_GET;
             printf("Request type is Get Request\n");
@@ -313,12 +314,10 @@ input_variable(netsnmp_variable_list * vp)
             command = SNMP_MSG_GETNEXT;
             printf("Request type is Getnext Request\n");
             break;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
         case 'S':
             command = SNMP_MSG_SET;
             printf("Request type is Set Request\n");
             break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
         case 'B':
             command = SNMP_MSG_GETBULK;
             printf("Request type is Bulk Request\n");
@@ -337,19 +336,16 @@ input_variable(netsnmp_variable_list * vp)
             printf("(Are you sending to the right port?)\n");
             break;
         case 'D':
-            if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                       NETSNMP_DS_LIB_DUMP_PACKET)) {
-                netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                       NETSNMP_DS_LIB_DUMP_PACKET, 0);
+            if (snmp_get_dump_packet()) {
+                snmp_set_dump_packet(0);
                 printf("Turned packet dump off\n");
             } else {
-                netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                       NETSNMP_DS_LIB_DUMP_PACKET, 1);
+                snmp_set_dump_packet(1);
                 printf("Turned packet dump on\n");
             }
             break;
         case 'Q':
-            switch ((toupper((unsigned char)(buf[2])))) {
+            switch ((toupper(buf[2]))) {
             case '\n':
             case 0:
                 printf("Quitting,  Goodbye\n");
@@ -357,14 +353,11 @@ input_variable(netsnmp_variable_list * vp)
                 exit(0);
                 break;
             case 'P':
-                if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                           NETSNMP_DS_LIB_QUICK_PRINT)) {
-                    netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                           NETSNMP_DS_LIB_QUICK_PRINT, 0);
+                if (snmp_get_quick_print()) {
+                    snmp_set_quick_print(0);
                     printf("Turned quick printing off\n");
                 } else {
-                    netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                           NETSNMP_DS_LIB_QUICK_PRINT, 1);
+                    snmp_set_quick_print(1);
                     printf("Turned quick printing on\n");
                 }
                 break;
@@ -375,29 +368,19 @@ input_variable(netsnmp_variable_list * vp)
         }
         return -1;
     }
-    {
-	oid     name[MAX_OID_LEN];
-	vp->name_length = MAX_OID_LEN;
-	if (!snmp_parse_oid(buf, name, &vp->name_length)) {
-	    snmp_perror(buf);
-	    return -1;
-	}
-	vp->name = snmp_duplicate_objid(name, vp->name_length);
+    vp->name_length = MAX_OID_LEN;
+    if (!snmp_parse_oid(buf, name, &vp->name_length)) {
+        snmp_perror(buf);
+        return -1;
     }
+    vp->name = (oid *) malloc(vp->name_length * sizeof(oid));
+    memmove(vp->name, name, vp->name_length * sizeof(oid));
 
-    if (command == SNMP_MSG_INFORM
-        || command == SNMP_MSG_TRAP2
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-        || command == SNMP_MSG_SET
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-        ) {
+    if (command == SNMP_MSG_SET || command == SNMP_MSG_INFORM
+        || command == SNMP_MSG_TRAP2) {
         printf("Type [i|u|s|x|d|n|o|t|a]: ");
         fflush(stdout);
-        if (!fgets(buf, sizeof(buf), stdin)) {
-            printf("Quitting,  Goodbye\n");
-            SOCK_CLEANUP;
-            exit(0);
-        }
+        fgets(buf, sizeof(buf), stdin);
         ch = *buf;
         switch (ch) {
         case 'i':
@@ -436,11 +419,7 @@ input_variable(netsnmp_variable_list * vp)
       getValue:
         printf("Value: ");
         fflush(stdout);
-        if (!fgets(buf, sizeof(buf), stdin)) {
-            printf("Quitting,  Goodbye\n");
-            SOCK_CLEANUP;
-            exit(0);
-        }
+        fgets(buf, sizeof(buf), stdin);
         switch (vp->type) {
         case ASN_INTEGER:
             vp->val.integer = (long *) malloc(sizeof(long));
@@ -502,16 +481,14 @@ input_variable(netsnmp_variable_list * vp)
         case ASN_OBJECT_ID:
             if ('\n' == buf[strlen(buf) - 1])
                 buf[strlen(buf) - 1] = '\0';
-	    else {
-		oid value[MAX_OID_LEN];
-		vp->val_len = MAX_OID_LEN;
-		if (0 == read_objid(buf, value, &vp->val_len)) {
-		    printf("Unrecognised OID value\n");
-		    goto getValue;
-		}
-		vp->val.objid = snmp_duplicate_objid(value, vp->val_len);
-		vp->val_len *= sizeof(oid);
-	    }
+            vp->val_len = MAX_OID_LEN;;
+            if (0 == read_objid(buf, (oid *) value, &vp->val_len)) {
+                printf("Unrecognised OID value\n");
+                goto getValue;
+            }
+            vp->val_len *= sizeof(oid);
+            vp->val.objid = (oid *) malloc(vp->val_len);
+            memmove(vp->val.objid, value, vp->val_len);
             break;
         case ASN_TIMETICKS:
             vp->val.integer = (long *) malloc(sizeof(long));
diff --git a/apps/snmptls.c b/apps/snmptls.c
deleted file mode 100644
index 93b648b..0000000
--- a/apps/snmptls.c
+++ /dev/null
@@ -1,559 +0,0 @@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  $
- */
-
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-#undef NETSNMP_USE_ASSERT
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-netsnmp_feature_require(tls_fingerprint_build)
-
-#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;
-    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;
-
-        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 c3d47ae..51788b5 100644
--- a/apps/snmptranslate.c
+++ b/apps/snmptranslate.c
@@ -51,6 +51,11 @@ SOFTWARE.
 #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>
@@ -74,7 +79,7 @@ usage(void)
     fprintf(stderr,
             "  -M DIR[:...]\t\tlook in given list of directories for MIBs\n");
     fprintf(stderr,
-            "  -D[TOKEN[,...]]\tturn on debugging output for the specified TOKENs\n\t\t\t   (ALL gives extremely verbose debugging output)\n");
+            "  -D TOKEN[,...]\tturn on debugging output for the specified TOKENs\n\t\t\t   (ALL gives extremely verbose debugging output)\n");
     fprintf(stderr, "  -w WIDTH\t\tset width of tree and detail output\n");
     fprintf(stderr,
             "  -T TRANSOPTS\t\tSet various options controlling report produced:\n");
@@ -202,8 +207,7 @@ main(int argc, char *argv[])
 #endif /* NETSNMP_DISABLE_MIB_LOADING */
                 case 'd':
                     description = 1;
-                    netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                           NETSNMP_DS_LIB_SAVE_MIB_DESCRS, 1);
+                    snmp_set_save_descriptions(1);
                     break;
                 case 'B':
                     find_all = 1;
@@ -262,8 +266,7 @@ main(int argc, char *argv[])
 
     do {
         name_length = MAX_OID_LEN;
-        if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
-				  NETSNMP_DS_LIB_RANDOM_ACCESS)) {
+        if (snmp_get_random_access()) {
 #ifndef NETSNMP_DISABLE_MIB_LOADING
             if (!get_node(current_name, name, &name_length)) {
 #endif /* NETSNMP_DISABLE_MIB_LOADING */
diff --git a/apps/snmptrap.c b/apps/snmptrap.c
index 7c086db..8cb8f66 100644
--- a/apps/snmptrap.c
+++ b/apps/snmptrap.c
@@ -41,7 +41,11 @@ SOFTWARE.
 # include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -54,6 +58,9 @@ SOFTWARE.
 #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
@@ -97,6 +104,26 @@ snmp_input(int operation,
     return 1;
 }
 
+in_addr_t
+parse_address(char *address)
+{
+    in_addr_t       addr;
+    struct sockaddr_in saddr;
+    struct hostent *hp;
+
+    if ((addr = inet_addr(address)) != -1)
+        return addr;
+    hp = gethostbyname(address);
+    if (hp == NULL) {
+        fprintf(stderr, "unknown host: %s\n", address);
+        exit(1);
+    } else {
+        memcpy(&saddr.sin_addr, hp->h_addr, hp->h_length);
+        return saddr.sin_addr.s_addr;
+    }
+
+}
+
 static void
 optProc(int argc, char *const *argv, int opt)
 {
@@ -145,11 +172,9 @@ main(int argc, char *argv[])
     if (strcmp(prognam, "snmpinform") == 0)
         inform = 1;
     switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
-    case NETSNMP_PARSE_ARGS_ERROR:
-        exit(1);
-    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
@@ -161,20 +186,6 @@ main(int argc, char *argv[])
     session.callback = snmp_input;
     session.callback_magic = NULL;
 
-    /*
-     * setup the local engineID which may be for either or both of the
-     * contextEngineID and/or the securityEngineID.
-     */
-    setup_engineID(NULL, NULL);
-
-    /* if we don't have a contextEngineID set via command line
-       arguments, use our internal engineID as the context. */
-    if (session.contextEngineIDLen == 0 ||
-        session.contextEngineID == NULL) {
-        session.contextEngineID =
-            snmpv3_generate_engineID(&session.contextEngineIDLen);
-    }
-
     if (session.version == SNMP_VERSION_3 && !inform) {
         /*
          * for traps, we use ourselves as the authoritative engine
@@ -194,6 +205,13 @@ main(int argc, char *argv[])
          */
 
         /*
+         * setup the engineID based on IP addr.  Need a different
+         * algorthim here.  This will cause problems with agents on the
+         * same machine sending traps. 
+         */
+        setup_engineID(NULL, NULL);
+
+        /*
          * pick our own engineID 
          */
         if (session.securityEngineIDLen == 0 ||
@@ -201,6 +219,11 @@ main(int argc, char *argv[])
             session.securityEngineID =
                 snmpv3_generate_engineID(&session.securityEngineIDLen);
         }
+        if (session.contextEngineIDLen == 0 ||
+            session.contextEngineID == NULL) {
+            session.contextEngineID =
+                snmpv3_generate_engineID(&session.contextEngineIDLen);
+        }
 
         /*
          * set boots and time, which will cause problems if this
@@ -273,11 +296,7 @@ main(int argc, char *argv[])
         }
         agent = argv[arg];
         if (agent != NULL && strlen(agent) != 0) {
-            int ret = netsnmp_gethostbyname_v4(agent, pdu_in_addr_t);
-            if (ret < 0) {
-                fprintf(stderr, "unknown host: %s\n", agent);
-                exit(1);
-            }
+            *pdu_in_addr_t = parse_address(agent);
         } else {
             *pdu_in_addr_t = get_myaddr();
         }
diff --git a/apps/snmptrapd.c b/apps/snmptrapd.c
index 1a52080..cd15b58 100644
--- a/apps/snmptrapd.c
+++ b/apps/snmptrapd.c
@@ -40,7 +40,9 @@ SOFTWARE.
 #if HAVE_SYS_WAIT_H
 #include <sys/wait.h>
 #endif
-#if HAVE_SYS_SOCKET_H
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#else
 #include <sys/socket.h>
 #endif
 #if HAVE_SYS_SOCKIO_H
@@ -101,11 +103,7 @@ SOFTWARE.
 #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"
-#endif
 
 /*
  * Include winservice.h to support Windows Service
@@ -123,8 +121,6 @@ SOFTWARE.
 #include <tcpd.h>
 #endif
 
-#include <net-snmp/net-snmp-features.h>
-
 #ifndef BSD4_3
 #define BSD4_2
 #endif
@@ -140,27 +136,22 @@ typedef long    fd_mask;
 #define FD_ZERO(p)      memset((p), 0, sizeof(*(p)))
 #endif
 
-char           *logfile = NULL;
-extern int      SyslogTrap;
-extern int      dropauth;
-static int      reconfig = 0;
+char           *logfile = 0;
+int             SyslogTrap = 0;
+int             Event = 0;
+int             dropauth = 0;
+int             reconfig = 0;
 char            ddefault_port[] = "udp:162";	/* Default default port */
 char           *default_port = ddefault_port;
 #if HAVE_GETPID
     FILE           *PID;
     char           *pid_file = NULL;
 #endif
-extern void parse_format(const char *token, char *line);
 char           *trap1_fmt_str_remember = NULL;
 int             dofork = 1;
 
 extern int      netsnmp_running;
 
-#ifdef NETSNMP_USE_MYSQL
-extern int      netsnmp_mysql_init(void);
-extern void     snmptrapd_register_sql_configs( void );
-#endif
-
 /*
  * These definitions handle 4.2 systems without additional syslog facilities.
  */
@@ -211,14 +202,20 @@ int Facility = LOG_DAEMON;
 #define SNMPTRAPD_RUNNING 1
 #define SNMPTRAPD_STOPPED 0
 int             trapd_status = SNMPTRAPD_STOPPED;
-/* app_name_long used for SCM, registry etc */
-LPCTSTR         app_name_long = _T("Net-SNMP Trap Handler");     /* Application Name */
+/* app_name_long used for Event Log (syslog), SCM, registry etc */
+LPTSTR          app_name_long = _T("Net-SNMP Trap Handler");     /* Application Name */
 #endif
 
 const char     *app_name = "snmptrapd";
 
+struct timeval  Now;
+
 void            trapd_update_config(void);
 
+static oid      risingAlarm[] = { 1, 3, 6, 1, 6, 3, 2, 1, 1, 3, 1 };
+static oid      fallingAlarm[] = { 1, 3, 6, 1, 6, 3, 2, 1, 1, 3, 2 };
+static oid      unavailableAlarm[] = { 1, 3, 6, 1, 6, 3, 2, 1, 1, 3, 3 };
+
 #ifdef WIN32SERVICE
 void            StopSnmpTrapd(void);
 int             SnmpTrapdMain(int argc, TCHAR * argv[]);
@@ -231,6 +228,72 @@ int             main(int, char **);
 extern void            subagent_init(void);
 #endif
 
+void
+event_input(netsnmp_variable_list * vp)
+{
+    int             eventid = 0;
+    oid             variable[MAX_OID_LEN];
+    int             variablelen = 0;
+    u_long          destip = 0;
+    int             sampletype = 0;
+    int             value = 0;
+    int             threshold = 0;
+    int             i;
+    int             nvars = 0;
+
+    netsnmp_variable_list	*vp2 = vp;
+    
+    oid            *op = NULL;
+
+    /* Make sure there are 5 variables.  Otherwise, don't bother */
+    for (i=1; i <= 5; i++) {
+      vp2 = vp2->next_variable;
+      if (!vp2) {
+	nvars = -1;
+	break;
+      }
+    }
+    
+    if (nvars != -1)
+    {
+      vp = vp->next_variable;     /* skip sysUptime */
+      if (vp->val_len != sizeof(risingAlarm) ||
+	  !memcmp(vp->val.objid, risingAlarm, sizeof(risingAlarm)))
+	eventid = 1;
+      else if (vp->val_len != sizeof(risingAlarm) ||
+	  !memcmp(vp->val.objid, fallingAlarm, sizeof(fallingAlarm)))
+	eventid = 2;
+      else if (vp->val_len != sizeof(risingAlarm) ||
+	  !memcmp(vp->val.objid, unavailableAlarm, sizeof(unavailableAlarm)))
+	eventid = 3;
+      else {
+	fprintf(stderr, "unknown event\n");
+	eventid = 0;
+      }
+      
+      vp = vp->next_variable;
+      memmove(variable, vp->val.objid, vp->val_len * sizeof(oid));
+      variablelen = vp->val_len;
+      op = vp->name + 22;
+      destip = 0;
+      destip |= (*op++) << 24;
+      destip |= (*op++) << 16;
+      destip |= (*op++) << 8;
+      destip |= *op++;
+      
+      vp = vp->next_variable;
+      sampletype = *vp->val.integer;
+      
+      vp = vp->next_variable;
+      value = *vp->val.integer;
+      
+      vp = vp->next_variable;
+      threshold = *vp->val.integer;
+    }
+    printf("%d: 0x%02lX %d %d %d\n", eventid, destip, sampletype, value,
+	threshold);
+}
+
 
 void
 usage(void)
@@ -251,7 +314,9 @@ usage(void)
     fprintf(stderr,
             "  -C\t\t\tdo not read the default configuration files\n");
     fprintf(stderr, "  -d\t\t\tdump sent and received SNMP packets\n");
-    fprintf(stderr, "  -D[TOKEN[,...]]\t\tturn on debugging output for the specified TOKENs\n\t\t\t   (ALL gives extremely verbose debugging output)\n");
+    fprintf(stderr, "  -D\t\t\tturn on debugging output\n");
+    fprintf(stderr,
+            "  -e\t\t\tprint event # (rising/falling alarm, etc.)\n");
     fprintf(stderr, "  -f\t\t\tdo not fork from the shell\n");
     fprintf(stderr,
             "  -F FORMAT\t\tuse specified format for logging to standard error\n");
@@ -296,6 +361,11 @@ usage(void)
     fprintf(stderr,
             "  -L <LOGOPTS>\t\ttoggle options controlling where to log to\n");
     snmp_log_options_usage("\t\t\t", stderr);
+    fprintf(stderr, "\n  Deprecated options:\n");
+    fprintf(stderr, "  -o FILE\t\tuse -Lf <FILE> instead\n");
+    fprintf(stderr, "  -P\t\t\tuse -f -Le  instead\n");
+    fprintf(stderr, "  -s\t\t\tuse -Lsd instead\n");
+    fprintf(stderr, "  -S d|i|0-7\t\tuse -Ls <facility> instead\n");
 }
 
 static void
@@ -314,7 +384,6 @@ term_handler(int sig)
     extern netsnmp_session *main_session;
 #endif
     netsnmp_running = 0;
-
 #ifdef WIN32SERVICE
     /*
      * In case of windows, select() in receive() function will not return 
@@ -358,8 +427,8 @@ pre_parse(netsnmp_session * session, netsnmp_transport *transport,
       if ( tcpudpaddr != 0 ) {
 	char sbuf[64];
 	char *xp;
-
-	strlcpy(sbuf, tcpudpaddr + 1, sizeof(sbuf));
+	strncpy(sbuf, tcpudpaddr + 1, sizeof(sbuf));
+        sbuf[sizeof(sbuf)-1] = '\0';
         xp = strstr(sbuf, "]");
         if (xp)
             *xp = '\0';
@@ -421,20 +490,15 @@ void
 parse_trapd_address(const char *token, char *cptr)
 {
     char buf[BUFSIZ];
-    char *p;
     cptr = copy_nword(cptr, buf, sizeof(buf));
 
     if (default_port == ddefault_port) {
         default_port = strdup(buf);
     } else {
-        p = malloc(strlen(buf) + 1 + strlen(default_port) + 1);
-        if (p) {
-            strcat(p, buf);
-            strcat(p, ",");
-            strcat(p, default_port );
-        }
+        strcat( buf, "," );
+        strcat( buf, default_port );
         free(default_port);
-        default_port = p;
+        default_port = strdup(buf);
     }
 }
 
@@ -472,10 +536,13 @@ parse_config_pidFile(const char *token, char *cptr)
 void
 parse_config_agentuser(const char *token, char *cptr)
 {
+#if defined(HAVE_GETPWNAM) && defined(HAVE_PWD_H)
+    struct passwd  *info;
+#endif
+
     if (cptr[0] == '#') {
         char           *ecp;
         int             uid;
-
         uid = strtoul(cptr + 1, &ecp, 10);
         if (*ecp != 0) {
             config_perror("Bad number");
@@ -483,51 +550,57 @@ parse_config_agentuser(const char *token, char *cptr)
 	    netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
 			       NETSNMP_DS_AGENT_USERID, uid);
 	}
+    }
 #if defined(HAVE_GETPWNAM) && defined(HAVE_PWD_H)
+    else if ((info = getpwnam(cptr)) != NULL) {
+        netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
+			   NETSNMP_DS_AGENT_USERID, info->pw_uid);
     } else {
-        struct passwd *info;
-
-        info = getpwnam(cptr);
-        if (info)
-            netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
-                               NETSNMP_DS_AGENT_USERID, info->pw_uid);
-        else
-            config_perror("User not found in passwd database");
-        endpwent();
-#endif
+        config_perror("User not found in passwd database");
     }
+    endpwent();
+#endif
 }
 
 void
 parse_config_agentgroup(const char *token, char *cptr)
 {
+#if defined(HAVE_GETGRNAM) && defined(HAVE_GRP_H)
+    struct group   *info;
+#endif
+
     if (cptr[0] == '#') {
         char           *ecp;
         int             gid = strtoul(cptr + 1, &ecp, 10);
-
         if (*ecp != 0) {
             config_perror("Bad number");
 	} else {
             netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
 			       NETSNMP_DS_AGENT_GROUPID, gid);
 	}
+    }
 #if defined(HAVE_GETGRNAM) && defined(HAVE_GRP_H)
+    else if ((info = getgrnam(cptr)) != NULL) {
+        netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
+			   NETSNMP_DS_AGENT_GROUPID, info->gr_gid);
     } else {
-        struct group   *info;
-
-        info = getgrnam(cptr);
-        if (info)
-            netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
-                               NETSNMP_DS_AGENT_GROUPID, info->gr_gid);
-        else
-            config_perror("Group not found in group database");
-        endgrent();
-#endif
+        config_perror("Group not found in group database");
     }
+    endpwent();
+#endif
 }
 #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)
@@ -535,6 +608,13 @@ parse_config_doNotFork(const char *token, char *cptr)
 }
 
 void
+parse_config_printEventNumbers(const char *token, char *cptr)
+{
+  if (netsnmp_ds_parse_boolean(cptr) == 1)
+    Event++;
+}
+
+void
 parse_config_ignoreAuthFailure(const char *token, char *cptr)
 {
   if (netsnmp_ds_parse_boolean(cptr) == 1)
@@ -553,74 +633,6 @@ parse_config_outputOption(const char *token, char *cptr)
   }
 }
 
-static void
-snmptrapd_main_loop(void)
-{
-    int             count, numfds, block;
-    fd_set          readfds,writefds,exceptfds;
-    struct timeval  timeout, *tvp;
-
-    while (netsnmp_running) {
-        if (reconfig) {
-                /*
-                 * If we are logging to a file, receipt of SIGHUP also
-                 * indicates that the log file should be closed and
-                 * re-opened.  This is useful for users that want to
-                 * rotate logs in a more predictable manner.
-                 */
-                netsnmp_logging_restart();
-                snmp_log(LOG_INFO, "NET-SNMP version %s restarted\n",
-                         netsnmp_get_version());
-            trapd_update_config();
-            if (trap1_fmt_str_remember) {
-                parse_format( NULL, trap1_fmt_str_remember );
-            }
-            reconfig = 0;
-        }
-        numfds = 0;
-        FD_ZERO(&readfds);
-        FD_ZERO(&writefds);
-        FD_ZERO(&exceptfds);
-        block = 0;
-        tvp = &timeout;
-        timerclear(tvp);
-        tvp->tv_sec = 5;
-        snmp_select_info(&numfds, &readfds, tvp, &block);
-        if (block == 1)
-            tvp = NULL;         /* block without timeout */
-#ifndef NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER
-        netsnmp_external_event_info(&numfds, &readfds, &writefds, &exceptfds);
-#endif /* NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER */
-        count = select(numfds, &readfds, &writefds, &exceptfds, tvp);
-        if (count > 0) {
-#ifndef NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER
-            netsnmp_dispatch_external_events(&count, &readfds, &writefds,
-                                             &exceptfds);
-#endif /* NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER */
-            /* If there are any more events after external events, then
-             * try SNMP events. */
-            if (count > 0) {
-                snmp_read(&readfds);
-            }
-        } else {
-            switch (count) {
-            case 0:
-                snmp_timeout();
-                break;
-            case -1:
-                if (errno == EINTR)
-                    continue;
-                snmp_log_perror("select");
-                netsnmp_running = 0;
-                break;
-            default:
-                fprintf(stderr, "select returned %d\n", count);
-                netsnmp_running = 0;
-            }
-	}
-	run_alarms();
-    }
-}
 
 /*******************************************************************-o-******
  * main - Non Windows
@@ -648,14 +660,19 @@ main(int argc, char *argv[])
     char            options[128] = "aAc:CdD::efF:g:hHI:L:m:M:no:O:PqsS:tu:vx:-:";
     netsnmp_session *sess_list = NULL, *ss = NULL;
     netsnmp_transport *transport = NULL;
-    int             arg, i = 0;
+    int             arg, i = 0, depmsg = 0;
     int             uid = 0, gid = 0;
+    int             count, numfds, block;
+    fd_set          readfds,writefds,exceptfds;
+    struct timeval  timeout, *tvp;
     char           *cp, *listen_ports = NULL;
 #if defined(USING_AGENTX_SUBAGENT_MODULE) && !defined(NETSNMP_SNMPTRAPD_DISABLE_AGENTX)
     int             agentx_subagent = 1;
 #endif
     netsnmp_trapd_handler *traph;
-
+#ifdef NETSNMP_EMBEDDED_PERL
+    extern void init_perl(void);
+#endif
 
 #ifndef WIN32
     /*
@@ -673,7 +690,6 @@ main(int argc, char *argv[])
 #ifdef SIGHUP
     signal(SIGHUP, SIG_IGN);   /* do not terminate on early SIGHUP */
 #endif
-
 #ifdef SIGINT
     signal(SIGINT, term_handler);
 #endif
@@ -681,16 +697,15 @@ main(int argc, char *argv[])
     signal(SIGPIPE, SIG_IGN);   /* 'Inline' failure of wayward readers */
 #endif
 
+#ifdef SIGHUP
+    signal(SIGHUP, SIG_IGN);   /* do not terminate on early SIGHUP */
+#endif
+
     /*
      * register our configuration handlers now so -H properly displays them 
      */
     snmptrapd_register_configs( );
-#ifdef NETSNMP_USE_MYSQL
-    snmptrapd_register_sql_configs( );
-#endif
-#ifdef NETSNMP_SECMOD_USM
     init_usm_conf( "snmptrapd" );
-#endif /* NETSNMP_SECMOD_USM */
     register_config_handler("snmptrapd", "snmpTrapdAddr",
                             parse_trapd_address, free_trapd_address, "string");
 
@@ -707,15 +722,27 @@ main(int argc, char *argv[])
                             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)");
 
+    register_config_handler("snmptrapd", "printEventNumbers",
+                            parse_config_printEventNumbers, NULL, "(1|yes|true|0|no|false)");
+
     register_config_handler("snmptrapd", "ignoreAuthFailure",
                             parse_config_ignoreAuthFailure, NULL, "(1|yes|true|0|no|false)");
 
     register_config_handler("snmptrapd", "outputOption",
                             parse_config_outputOption, NULL, "string");
 
+#ifdef WIN32
+    setvbuf(stdout, NULL, _IONBF, BUFSIZ);
+#else
+    setvbuf(stdout, NULL, _IOLBF, BUFSIZ);
+#endif
+
     /*
      * Add some options if they are available.  
      */
@@ -723,13 +750,11 @@ main(int argc, char *argv[])
     strcat(options, "p:");
 #endif
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
 #ifdef WIN32
     snmp_log_syslogname(app_name_long);
 #else
     snmp_log_syslogname(app_name);
 #endif
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
 
     /*
      * Now process options normally.  
@@ -775,8 +800,7 @@ main(int argc, char *argv[])
             break;
 
         case 'd':
-            netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                   NETSNMP_DS_LIB_DUMP_PACKET, 1);
+            snmp_set_dump_packet(1);
             break;
 
         case 'D':
@@ -784,25 +808,17 @@ main(int argc, char *argv[])
             snmp_set_do_debugging(1);
             break;
 
+        case 'e':
+            Event++;
+            break;
+
         case 'f':
             dofork = 0;
             break;
 
         case 'F':
             if (optarg != NULL) {
-                if (( strncmp( optarg, "print",   5 ) == 0 ) ||
-                    ( strncmp( optarg, "syslog",  6 ) == 0 ) ||
-                    ( strncmp( optarg, "execute", 7 ) == 0 )) {
-                    /* New style: "type=format" */
-                    trap1_fmt_str_remember = strdup(optarg);
-                    cp = strchr( trap1_fmt_str_remember, '=' );
-                    if (cp)
-                        *cp = ' ';
-                } else {
-                    /* Old style: implicitly "print=format" */
-                    trap1_fmt_str_remember = malloc(strlen(optarg) + 7);
-                    sprintf( trap1_fmt_str_remember, "print %s", optarg );
-                }
+                trap1_fmt_str_remember = optarg;
             } else {
                 usage();
                 exit(1);
@@ -848,8 +864,52 @@ main(int argc, char *argv[])
 
 	case 'S':
             fprintf(stderr,
-                    "Warning: -S option has been withdrawn; use -Ls <facility> instead\n");
-            exit(1);
+                    "Warning: -S option is deprecated; use -Ls <facility> instead\n");
+            depmsg = 1;
+            if (optarg != NULL) {
+                switch (*optarg) {
+                case 'd':
+                case 'D':
+                    Facility = LOG_DAEMON;
+                    break;
+                case 'i':
+                case 'I':
+                    Facility = LOG_INFO;
+                    break;
+                case '0':
+                    Facility = LOG_LOCAL0;
+                    break;
+                case '1':
+                    Facility = LOG_LOCAL1;
+                    break;
+                case '2':
+                    Facility = LOG_LOCAL2;
+                    break;
+                case '3':
+                    Facility = LOG_LOCAL3;
+                    break;
+                case '4':
+                    Facility = LOG_LOCAL4;
+                    break;
+                case '5':
+                    Facility = LOG_LOCAL5;
+                    break;
+                case '6':
+                    Facility = LOG_LOCAL6;
+                    break;
+                case '7':
+                    Facility = LOG_LOCAL7;
+                    break;
+                default:
+                    fprintf(stderr, "invalid syslog facility: -S%c\n",*optarg);
+                    usage();
+                    exit(1);
+                }
+            } else {
+                fprintf(stderr, "no syslog facility specified\n");
+                usage();
+                exit(1);
+            }
             break;
 
         case 'm':
@@ -877,8 +937,16 @@ main(int argc, char *argv[])
 
         case 'o':
             fprintf(stderr,
-                    "Warning: -o option has been withdrawn; use -Lf <file> instead\n");
-            exit(1);
+                    "Warning: -o option is deprecated; use -Lf <file> instead\n");
+            if (optarg != NULL) {
+                logfile = optarg;
+                snmp_enable_filelog(optarg, 
+                                    netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
+                                                           NETSNMP_DS_LIB_APPEND_LOGFILES));
+            } else {
+                usage();
+                exit(1);
+            }
             break;
 
         case 'O':
@@ -911,14 +979,20 @@ main(int argc, char *argv[])
 
         case 'P':
             fprintf(stderr,
-                    "Warning: -P option has been withdrawn; use -f -Le instead\n");
-            exit(1);
+                    "Warning: -P option is deprecated; use -f -Le instead\n");
+            dofork = 0;
+            snmp_enable_stderrlog();
             break;
 
         case 's':
             fprintf(stderr,
-                    "Warning: -s option has been withdrawn; use -Lsd instead\n");
-            exit(1);
+                    "Warning: -s option is deprecated; use -Lsd instead\n");
+            depmsg = 1;
+#ifdef WIN32
+            snmp_enable_syslog_ident(app_name_long, Facility);
+#else
+            snmp_enable_syslog_ident(app_name, Facility);
+#endif
             break;
 
         case 't':
@@ -931,18 +1005,19 @@ main(int argc, char *argv[])
                 char           *ecp;
 
                 uid = strtoul(optarg, &ecp, 10);
-#if HAVE_GETPWNAM && HAVE_PWD_H
                 if (*ecp) {
+#if HAVE_GETPWNAM && HAVE_PWD_H
                     struct passwd  *info;
-
                     info = getpwnam(optarg);
-                    uid = info ? info->pw_uid : -1;
-                    endpwent();
-                }
+                    if (info) {
+                        uid = info->pw_uid;
+                    } else {
+#endif
+                        fprintf(stderr, "Bad user id: %s\n", optarg);
+                        exit(1);
+#if HAVE_GETPWNAM && HAVE_PWD_H
+                    }
 #endif
-                if (uid < 0) {
-                    fprintf(stderr, "Bad user id: %s\n", optarg);
-                    exit(1);
                 }
                 netsnmp_ds_set_int(NETSNMP_DS_APPLICATION_ID, 
 				   NETSNMP_DS_AGENT_USERID, uid);
@@ -1009,25 +1084,34 @@ main(int argc, char *argv[])
      * Don't try this at home, children!
      */
     if (0 == snmp_get_do_logging()) {
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
         traph = netsnmp_add_global_traphandler(NETSNMPTRAPD_PRE_HANDLER,
                                                syslog_handler);
         traph->authtypes = TRAP_AUTH_LOG;
         snmp_enable_syslog();
-#else /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_STDIO
-        traph = netsnmp_add_global_traphandler(NETSNMPTRAPD_PRE_HANDLER,
-                                               print_handler);
-        traph->authtypes = TRAP_AUTH_LOG;
-        snmp_enable_stderr();
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_STDIO */
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
     } else {
         traph = netsnmp_add_global_traphandler(NETSNMPTRAPD_PRE_HANDLER,
                                                print_handler);
         traph->authtypes = TRAP_AUTH_LOG;
     }
 
+    if (Event) {
+        traph = netsnmp_add_traphandler(event_handler, risingAlarm,
+                                        OID_LENGTH(risingAlarm));
+        traph->authtypes = TRAP_AUTH_LOG;
+
+        traph = netsnmp_add_traphandler(event_handler, fallingAlarm,
+                                        OID_LENGTH(fallingAlarm));
+        traph->authtypes = TRAP_AUTH_LOG;
+
+        traph = netsnmp_add_traphandler(event_handler, unavailableAlarm,
+                                        OID_LENGTH(unavailableAlarm));
+        traph->authtypes = TRAP_AUTH_LOG;
+	/* XXX - might be worth setting some "magic data"
+	 * in the traphandler structure that 'event_handler'
+	 * can use to avoid checking the trap OID values.
+	 */
+    }
+
 #if defined(USING_AGENTX_SUBAGENT_MODULE) && !defined(NETSNMP_SNMPTRAPD_DISABLE_AGENTX)
     /*
      * we're an agentx subagent? 
@@ -1058,9 +1142,6 @@ main(int argc, char *argv[])
     init_agent("snmptrapd");
 
 #if defined(USING_AGENTX_SUBAGENT_MODULE) && !defined(NETSNMP_SNMPTRAPD_DISABLE_AGENTX)
-#ifdef NETSNMP_FEATURE_CHECKING
-    netsnmp_feature_require(register_snmpEngine_scalars_context)
-#endif /* NETSNMP_FEATURE_CHECKING */
     /*
      * initialize local modules 
      */
@@ -1101,9 +1182,6 @@ main(int argc, char *argv[])
         extern void init_register_nsVacm_context(const char *);
 #endif
 #ifdef USING_SNMPV3_USMUSER_MODULE
-#ifdef NETSNMP_FEATURE_CHECKING
-        netsnmp_feature_require(init_register_usmUser_context)
-#endif /* NETSNMP_FEATURE_CHECKING */
         extern void init_register_usmUser_context(const char *);
         /* register ourselves as having a USM user database */
         init_register_usmUser_context("snmptrapd");
@@ -1112,9 +1190,6 @@ main(int argc, char *argv[])
         /* register net-snmp vacm extensions */
         init_register_nsVacm_context("snmptrapd");
 #endif
-#ifdef USING_TLSTM_MIB_SNMPTLSTMCERTTOTSNTABLE_MODULE
-        init_snmpTlstmCertToTSNTable_context("snmptrapd");
-#endif
     }
 #endif
 
@@ -1141,7 +1216,10 @@ main(int argc, char *argv[])
 #endif
 
     if (trap1_fmt_str_remember) {
-        parse_format( NULL, trap1_fmt_str_remember );
+        free_trap1_fmt();
+        free_trap2_fmt();
+        print_format1 = strdup(trap1_fmt_str_remember);
+        print_format2 = strdup(trap1_fmt_str_remember);
     }
 
     if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
@@ -1157,72 +1235,13 @@ main(int argc, char *argv[])
      * if no logging options on command line or in conf files, use syslog
      */
     if (0 == snmp_get_do_logging()) {
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
 #ifdef WIN32
         snmp_enable_syslog_ident(app_name_long, Facility);
 #else
         snmp_enable_syslog_ident(app_name, Facility);
 #endif        
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
     }
 
-    if (listen_ports)
-        cp = listen_ports;
-    else
-        cp = default_port;
-
-    while (cp != NULL) {
-        char *sep = strchr(cp, ',');
-
-        if (sep != NULL) {
-            *sep = 0;
-        }
-
-        transport = netsnmp_transport_open_server("snmptrap", cp);
-        if (transport == NULL) {
-            snmp_log(LOG_ERR, "couldn't open %s -- errno %d (\"%s\")\n",
-                     cp, errno, strerror(errno));
-            snmptrapd_close_sessions(sess_list);
-            SOCK_CLEANUP;
-            exit(1);
-        } else {
-            ss = snmptrapd_add_session(transport);
-            if (ss == NULL) {
-                /*
-                 * Shouldn't happen?  We have already opened the transport
-                 * successfully so what could have gone wrong?  
-                 */
-                snmptrapd_close_sessions(sess_list);
-                netsnmp_transport_free(transport);
-                snmp_log(LOG_ERR, "couldn't open snmp - %s", strerror(errno));
-                SOCK_CLEANUP;
-                exit(1);
-            } else {
-                ss->next = sess_list;
-                sess_list = ss;
-            }
-        }
-
-        /*
-         * Process next listen address, if there is one.  
-         */
-
-        if (sep != NULL) {
-            *sep = ',';
-            cp = sep + 1;
-        } else {
-            cp = NULL;
-        }
-    }
-    SNMP_FREE(listen_ports); /* done with them */
-
-#ifdef NETSNMP_USE_MYSQL
-    if( netsnmp_mysql_init() ) {
-        fprintf(stderr, "MySQL initialization failed\n");
-        exit(1);
-    }
-#endif
-
 #ifndef WIN32
     /*
      * fork the process to the background if we are not printing to stderr 
@@ -1272,6 +1291,58 @@ main(int argc, char *argv[])
 #endif
 
     snmp_log(LOG_INFO, "NET-SNMP version %s\n", netsnmp_get_version());
+    if (depmsg) {
+        snmp_log(LOG_WARNING, "-s and -S options are deprecated; use -Ls <facility> instead\n");
+    }
+    
+    if (listen_ports)
+        cp = listen_ports;
+    else
+        cp = default_port;
+
+    while (cp != NULL) {
+        char *sep = strchr(cp, ',');
+
+        if (sep != NULL) {
+            *sep = 0;
+        }
+
+        transport = netsnmp_transport_open_server("snmptrap", cp);
+        if (transport == NULL) {
+            snmp_log(LOG_ERR, "couldn't open %s -- errno %d (\"%s\")\n",
+                     cp, errno, strerror(errno));
+            snmptrapd_close_sessions(sess_list);
+            SOCK_CLEANUP;
+            exit(1);
+        } else {
+            ss = snmptrapd_add_session(transport);
+            if (ss == NULL) {
+                /*
+                 * Shouldn't happen?  We have already opened the transport
+                 * successfully so what could have gone wrong?  
+                 */
+                snmptrapd_close_sessions(sess_list);
+                netsnmp_transport_free(transport);
+                snmp_log(LOG_ERR, "couldn't open snmp - %s", strerror(errno));
+                SOCK_CLEANUP;
+                exit(1);
+            } else {
+                ss->next = sess_list;
+                sess_list = ss;
+            }
+        }
+
+        /*
+         * Process next listen address, if there is one.  
+         */
+
+        if (sep != NULL) {
+            *sep = ',';
+            cp = sep + 1;
+        } else {
+            cp = NULL;
+        }
+    }
 
     /*
      * ignore early sighup during startup
@@ -1314,8 +1385,65 @@ main(int argc, char *argv[])
 #ifdef WIN32SERVICE
     trapd_status = SNMPTRAPD_RUNNING;
 #endif
-
-    snmptrapd_main_loop();
+    while (netsnmp_running) {
+        if (reconfig) {
+                /*
+                 * If we are logging to a file, receipt of SIGHUP also
+                 * indicates the the log file should be closed and
+                 * re-opened.  This is useful for users that want to
+                 * rotate logs in a more predictable manner.
+                 */
+                netsnmp_logging_restart();
+                snmp_log(LOG_INFO, "NET-SNMP version %s restarted\n",
+                         netsnmp_get_version());
+            trapd_update_config();
+            if (trap1_fmt_str_remember) {
+                free_trap1_fmt();
+                free_trap2_fmt();
+                print_format1 = strdup(trap1_fmt_str_remember);
+                print_format2 = strdup(trap1_fmt_str_remember);
+            }
+            reconfig = 0;
+        }
+        numfds = 0;
+        FD_ZERO(&readfds);
+        FD_ZERO(&writefds);
+        FD_ZERO(&exceptfds);
+        block = 0;
+        tvp = &timeout;
+        timerclear(tvp);
+        tvp->tv_sec = 5;
+        snmp_select_info(&numfds, &readfds, tvp, &block);
+        if (block == 1)
+            tvp = NULL;         /* block without timeout */
+        netsnmp_external_event_info(&numfds, &readfds, &writefds, &exceptfds);
+        count = select(numfds, &readfds, &writefds, &exceptfds, tvp);
+        gettimeofday(&Now, 0);
+        if (count > 0) {
+            netsnmp_dispatch_external_events(&count, &readfds, &writefds,
+                                             &exceptfds);
+            /* If there are any more events after external events, then
+             * try SNMP events. */
+            if (count > 0) {
+                snmp_read(&readfds);
+            }
+        } else
+            switch (count) {
+            case 0:
+                snmp_timeout();
+                break;
+            case -1:
+                if (errno == EINTR)
+                    continue;
+                snmp_log_perror("select");
+                netsnmp_running = 0;
+                break;
+            default:
+                fprintf(stderr, "select returned %d\n", count);
+                netsnmp_running = 0;
+            }
+	run_alarms();
+    }
 
     if (snmp_get_do_logging()) {
         struct tm      *tm;
@@ -1327,11 +1455,8 @@ main(int argc, char *argv[])
                  tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour,
                  tm->tm_min, tm->tm_sec, netsnmp_get_version());
     }
-    snmp_log(LOG_INFO, "Stopping snmptrapd\n");
+    snmp_log(LOG_INFO, "Stopping snmptrapd");
     
-#ifdef NETSNMP_EMBEDDED_PERL
-    shutdown_perl();
-#endif
     snmptrapd_close_sessions(sess_list);
     snmp_shutdown("snmptrapd");
 #ifdef WIN32SERVICE
@@ -1352,9 +1477,7 @@ void
 trapd_update_config(void)
 {
     free_config();
-#ifdef USING_MIBII_VACM_CONF_MODULE
     vacm_standard_views(0,0,NULL,NULL);
-#endif
     read_configs();
 }
 
diff --git a/apps/snmptrapd_auth.c b/apps/snmptrapd_auth.c
index be21e5e..00e8aab 100644
--- a/apps/snmptrapd_auth.c
+++ b/apps/snmptrapd_auth.c
@@ -4,13 +4,11 @@
  */
 #include <net-snmp/net-snmp-config.h>
 
-#if HAVE_SYS_TYPES_H
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#else
 #include <sys/types.h>
-#endif
-#if HAVE_NETINET_IN_H
 #include <netinet/in.h>
-#endif
-#if HAVE_NETDB_H
 #include <netdb.h>
 #endif
 
@@ -18,14 +16,7 @@
 #include "snmptrapd_handlers.h"
 #include "snmptrapd_auth.h"
 #include "snmptrapd_ds.h"
-
-#include <net-snmp/agent/agent_module_config.h>
-#include <net-snmp/agent/mib_module_config.h>
-
-#ifdef USING_MIBII_VACM_CONF_MODULE
 #include "mibII/vacm_conf.h"
-#endif
-
 #include <net-snmp/agent/agent_trap.h>
 
 /**
@@ -41,10 +32,8 @@ init_netsnmp_trapd_auth(void)
                                            netsnmp_trapd_auth);
     traph->authtypes = TRAP_AUTH_NONE;
 
-#ifdef USING_MIBII_VACM_CONF_MODULE
     /* register our configuration tokens for VACM configs */
     init_vacm_config_tokens();
-#endif
 
     /* register a config token for turning off the authorization entirely */
     netsnmp_ds_register_config(ASN_BOOLEAN, "snmptrapd", "disableAuthorization",
@@ -120,7 +109,6 @@ netsnmp_trapd_auth(netsnmp_pdu           *pdu,
         return NETSNMPTRAPD_HANDLER_FINISH;
     }
 
-#ifdef USING_MIBII_VACM_CONF_MODULE
     /* check the pdu against each typo of VACM access we may want to
        check up on later.  We cache the results for future lookup on
        each call to netsnmp_trapd_check_auth */
@@ -128,10 +116,8 @@ netsnmp_trapd_auth(netsnmp_pdu           *pdu,
         /* pass the PDU to the VACM routine for handling authorization */
         DEBUGMSGTL(("snmptrapd:auth", "Calling VACM for checking phase %d:%s\n",
                     i, se_find_label_in_slist(VACM_VIEW_ENUM_NAME, i)));
-        if (vacm_check_view_contents(newpdu, var->val.objid,
-                                     var->val_len/sizeof(oid), 0, i,
-                                     VACM_CHECK_VIEW_CONTENTS_DNE_CONTEXT_OK)
-            == VACM_SUCCESS) {
+        if (vacm_check_view(newpdu, var->val.objid,
+                            var->val_len/sizeof(oid), 0, i) == VACM_SUCCESS) {
             DEBUGMSGTL(("snmptrapd:auth", "  result: authorized\n"));
             ret |= 1 << i;
         } else {
@@ -139,7 +125,6 @@ netsnmp_trapd_auth(netsnmp_pdu           *pdu,
         }
     }
     DEBUGMSGTL(("snmptrapd:auth", "Final bitmask auth: %x\n", ret));
-#endif
 
     if (ret) {
         /* we have policy to at least do "something".  Remember and continue. */
diff --git a/apps/snmptrapd_ds.h b/apps/snmptrapd_ds.h
index 03eba14..55c1226 100644
--- a/apps/snmptrapd_ds.h
+++ b/apps/snmptrapd_ds.h
@@ -1,12 +1,7 @@
 #ifndef SNMPTRAPD_DS_H
 #define SNMPTRAPD_DS_H
 
-/* 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) */
-
+/* these must not conflict with agent's DS booleans */
 #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 5a8e3c8..2168b0e 100644
--- a/apps/snmptrapd_handlers.c
+++ b/apps/snmptrapd_handlers.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #if HAVE_STDLIB_H
 #include <stdlib.h>
@@ -15,10 +14,10 @@
 #endif
 #include <ctype.h>
 #include <sys/types.h>
-#if HAVE_NETINET_IN_H
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#else
 #include <netinet/in.h>
-#endif
-#if HAVE_NETDB_H
 #include <netdb.h>
 #endif
 #if HAVE_SYS_WAIT_H
@@ -38,17 +37,10 @@
 #include "snmptrapd_log.h"
 #include "notification-log-mib/notification_log.h"
 
-netsnmp_feature_child_of(add_default_traphandler, snmptrapd)
-
 char *syslog_format1 = NULL;
 char *syslog_format2 = NULL;
 char *print_format1  = NULL;
 char *print_format2  = NULL;
-char *exec_format1   = NULL;
-char *exec_format2   = NULL;
-
-int   SyslogTrap = 0;
-int   dropauth = 0;
 
 const char     *trap1_std_str = "%.4y-%.2m-%.2l %.2h:%.2j:%.2k %B [%b] (via %A [%a]): %N\n\t%W Trap (%q) Uptime: %#T\n%v\n";
 const char     *trap2_std_str = "%.4y-%.2m-%.2l %.2h:%.2j:%.2k %B [%b]:\n%v\n";
@@ -89,27 +81,16 @@ snmptrapd_parse_traphandle(const char *token, char *line)
     char           *cptr, *cp;
     netsnmp_trapd_handler *traph;
     int             flags = 0;
-    char           *format = NULL;
 
     memset( buf, 0, sizeof(buf));
     memset(obuf, 0, sizeof(obuf));
     cptr = copy_nword(line, buf, sizeof(buf));
 
-    if ( buf[0] == '-' && buf[1] == 'F' ) {
-        cptr = copy_nword(cptr, buf, sizeof(buf));
-        format = strdup( buf );
-        cptr = copy_nword(cptr, buf, sizeof(buf));
-    }
-    if ( !cptr ) {
-        netsnmp_config_error("Missing traphandle command (%s)", buf);
-        return;
-    }
-
     DEBUGMSGTL(("read_config:traphandle", "registering handler for: "));
+
     if (!strcmp(buf, "default")) {
         DEBUGMSG(("read_config:traphandle", "default"));
-        traph = netsnmp_add_global_traphandler(NETSNMPTRAPD_DEFAULT_HANDLER,
-                                               command_handler );
+        traph = netsnmp_add_default_traphandler( command_handler );
     } else {
         cp = buf+strlen(buf)-1;
         if ( *cp == '*' ) {
@@ -124,8 +105,11 @@ snmptrapd_parse_traphandle(const char *token, char *line)
             }
         }
         if (!read_objid(buf, obuf, &olen)) {
-	    netsnmp_config_error("Bad trap OID in traphandle directive: %s",
-				 buf);
+            char            buf1[STRINGMAX];
+            snprintf(buf1,  sizeof(buf1),
+                    "Bad trap OID in traphandle directive: %s", buf);
+            buf1[ sizeof(buf1)-1 ] = 0;
+            config_perror(buf1);
             return;
         }
         DEBUGMSGOID(("read_config:traphandle", obuf, olen));
@@ -138,8 +122,6 @@ snmptrapd_parse_traphandle(const char *token, char *line)
         traph->flags = flags;
         traph->authtypes = TRAP_AUTH_EXE;
         traph->token = strdup(cptr);
-        if (format)
-            traph->format = format;
     }
 }
 
@@ -153,26 +135,17 @@ parse_forward(const char *token, char *line)
     char           *cptr, *cp;
     netsnmp_trapd_handler *traph;
     int             flags = 0;
-    char           *format = NULL;
 
     memset( buf, 0, sizeof(buf));
     memset(obuf, 0, sizeof(obuf));
     cptr = copy_nword(line, buf, sizeof(buf));
-
-    if ( buf[0] == '-' && buf[1] == 'F' ) {
-        cptr = copy_nword(cptr, buf, sizeof(buf));
-        format = strdup( buf );
-        cptr = copy_nword(cptr, buf, sizeof(buf));
-    }
     DEBUGMSGTL(("read_config:forward", "registering forward for: "));
     if (!strcmp(buf, "default")) {
         DEBUGMSG(("read_config:forward", "default"));
         if ( !strcmp( cptr, "agentx" ))
-            traph = netsnmp_add_global_traphandler(NETSNMPTRAPD_DEFAULT_HANDLER,
-                                            axforward_handler );
+            traph = netsnmp_add_default_traphandler( axforward_handler );
         else
-            traph = netsnmp_add_global_traphandler(NETSNMPTRAPD_DEFAULT_HANDLER,
-                                            forward_handler );
+            traph = netsnmp_add_default_traphandler( forward_handler );
     } else {
         cp = buf+strlen(buf)-1;
         if ( *cp == '*' ) {
@@ -188,7 +161,11 @@ parse_forward(const char *token, char *line)
         }
 
         if (!read_objid(buf, obuf, &olen)) {
-	    netsnmp_config_error("Bad trap OID in forward directive: %s", buf);
+            char            buf1[STRINGMAX];
+            snprintf(buf1,  sizeof(buf1),
+                    "Bad trap OID in forward directive: %s", buf);
+            buf1[ sizeof(buf1)-1 ] = 0;
+            config_perror(buf1);
             return;
         }
         DEBUGMSGOID(("read_config:forward", obuf, olen));
@@ -204,23 +181,21 @@ parse_forward(const char *token, char *line)
         traph->flags = flags;
         traph->authtypes = TRAP_AUTH_NET;
         traph->token = strdup(cptr);
-        if (format)
-            traph->format = format;
     }
 }
 
 
-void
+static void
 parse_format(const char *token, char *line)
 {
-    char *cp, *sep;
+    char *cp;
 
     /*
      * Extract the first token from the value
      * which tells us which style of format this is
      */
     cp = line;
-    while (*cp && !isspace((unsigned char)(*cp)))
+    while (*cp && !isspace(*cp))
         cp++;
     if (!(*cp)) {
         /*
@@ -231,9 +206,8 @@ parse_format(const char *token, char *line)
         return;
     }
 
-    sep = cp;
     *(cp++) = '\0';
-    while (*cp && isspace((unsigned char)(*cp)))
+    while (*cp && !isspace(*cp))
         cp++;
 
     /*
@@ -263,20 +237,7 @@ parse_format(const char *token, char *line)
         SNMP_FREE( syslog_format2 );
         syslog_format1 = strdup(cp);
         syslog_format2 = strdup(cp);
-    } else if (!strcmp( line, "execute1")) {
-        SNMP_FREE( exec_format1 );
-        exec_format1 = strdup(cp);
-    } else if (!strcmp( line, "execute2")) {
-        SNMP_FREE( exec_format2 );
-        exec_format2 = strdup(cp);
-    } else if (!strcmp( line, "execute")) {
-        SNMP_FREE( exec_format1 );
-        SNMP_FREE( exec_format2 );
-        exec_format1 = strdup(cp);
-        exec_format2 = strdup(cp);
     }
-
-    *sep = ' ';
 }
 
 
@@ -325,7 +286,7 @@ snmptrapd_register_configs( void )
                             parse_trap2_fmt, free_trap2_fmt, "format");
     register_config_handler("snmptrapd", "format",
                             parse_format, NULL,
-			    "[print{,1,2}|syslog{,1,2}|execute{,1,2}] format");
+			    "[print{,1,2}|syslog{,1,2}] format");
     register_config_handler("snmptrapd", "forward",
                             parse_forward, NULL, "OID|\"default\" destination");
 }
@@ -344,26 +305,12 @@ netsnmp_trapd_handler *netsnmp_post_global_traphandlers   = NULL;
 netsnmp_trapd_handler *netsnmp_default_traphandlers  = NULL;
 netsnmp_trapd_handler *netsnmp_specific_traphandlers = NULL;
 
-typedef struct netsnmp_handler_map_t {
-   netsnmp_trapd_handler **handler;
-   const char             *descr;
-} netsnmp_handler_map;
-
-static netsnmp_handler_map handlers[] = {
-    { &netsnmp_auth_global_traphandlers, "auth trap" },
-    { &netsnmp_pre_global_traphandlers, "pre-global trap" },
-    { NULL, "trap specific" },
-    { &netsnmp_post_global_traphandlers, "global" },
-    { NULL, NULL }
-};
-
 /*
  * Register a new "global" traphandler,
  * 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;
 
     if ( !handler )
@@ -374,7 +321,7 @@ netsnmp_add_global_traphandler(int list, Netsnmp_Trap_Handler *handler)
         return NULL;
 
     /*
-     * Add this new handler to the front of the appropriate list
+     * Add this new handler to the front of the appropriate global list
      *   (or should it go on the end?)
      */
     traph->handler = handler;
@@ -392,10 +339,6 @@ netsnmp_add_global_traphandler(int list, Netsnmp_Trap_Handler *handler)
         traph->nexth   = netsnmp_post_global_traphandlers;
         netsnmp_post_global_traphandlers = traph;
         break;
-    case NETSNMPTRAPD_DEFAULT_HANDLER:
-        traph->nexth   = netsnmp_default_traphandlers;
-        netsnmp_default_traphandlers = traph;
-        break;
     default:
         free( traph );
         return NULL;
@@ -403,17 +346,32 @@ netsnmp_add_global_traphandler(int list, Netsnmp_Trap_Handler *handler)
     return traph;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_ADD_DEFAULT_TRAPHANDLER
+
 /*
  * Register a new "default" traphandler, to be applied to all
  * traps with no specific trap handlers of their own.
  */
 netsnmp_trapd_handler *
-netsnmp_add_default_traphandler(Netsnmp_Trap_Handler *handler) {
-    return netsnmp_add_global_traphandler(NETSNMPTRAPD_DEFAULT_HANDLER,
-                                          handler);
+netsnmp_add_default_traphandler( Netsnmp_Trap_Handler* handler) {
+    netsnmp_trapd_handler *traph;
+
+    if ( !handler )
+        return NULL;
+
+    traph = SNMP_MALLOC_TYPEDEF(netsnmp_trapd_handler);
+    if ( !traph )
+        return NULL;
+
+    /*
+     * Add this new handler to the front of the default list
+     *   (or should it go on the end?)
+     */
+    traph->authtypes = TRAP_AUTH_ALL; /* callers will likely change this */
+    traph->handler = handler;
+    traph->nexth   = netsnmp_default_traphandlers;
+    netsnmp_default_traphandlers = traph;
+    return traph;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_ADD_DEFAULT_TRAPHANDLER */
 
 
 /*
@@ -438,7 +396,8 @@ netsnmp_add_traphandler(Netsnmp_Trap_Handler* handler,
     traph->authtypes   = TRAP_AUTH_ALL; /* callers will likely change this */
     traph->handler     = handler;
     traph->trapoid_len = trapOidLen;
-    traph->trapoid     = snmp_duplicate_objid(trapOid, trapOidLen);
+    memdup((u_char **)&(traph->trapoid), (u_char *)trapOid,
+		    sizeof(oid) * trapOidLen);
 
     /*
      * Now try to find the appropriate place in the trap-specific
@@ -553,13 +512,8 @@ netsnmp_trapd_handler *
 netsnmp_get_traphandler( oid *trapOid, int trapOidLen ) {
     netsnmp_trapd_handler *traph;
     
-    if (!trapOid || !trapOidLen) {
-        DEBUGMSGTL(( "snmptrapd:lookup", "get_traphandler no OID!\n"));
+    if (!trapOid || !trapOidLen)
         return NULL;
-    }
-    DEBUGMSGTL(( "snmptrapd:lookup", "Looking up Trap OID: "));
-    DEBUGMSGOID(("snmptrapd:lookup", trapOid, trapOidLen));
-    DEBUGMSG(( "snmptrapd:lookup", "\n"));
 
     /*
      * Look for a matching OID, and return that list...
@@ -574,8 +528,7 @@ netsnmp_get_traphandler( oid *trapOid, int trapOidLen ) {
         if (!(traph->flags & NETSNMP_TRAPHANDLER_FLAG_MATCH_TREE)) {
             if (snmp_oid_compare(traph->trapoid, traph->trapoid_len,
                                  trapOid, trapOidLen) == 0) {
-                DEBUGMSGTL(( "snmptrapd:lookup",
-                             "get_traphandler exact match (%p)\n", traph));
+                DEBUGMSGTL(( "snmptrapd", "get_traphandler exact match (%x)\n", traph));
 	        return traph;
             }
 	} else {
@@ -593,11 +546,11 @@ netsnmp_get_traphandler( oid *trapOid, int trapOidLen ) {
                      */
                     if (snmp_oid_compare(traph->trapoid, traph->trapoid_len,
                                          trapOid, trapOidLen) != 0) {
-                        DEBUGMSGTL(( "snmptrapd:lookup", "get_traphandler strict subtree match (%p)\n", traph));
+                        DEBUGMSGTL(( "snmptrapd", "get_traphandler strict subtree match (%x)\n", traph));
 	                return traph;
                     }
                 } else {
-                    DEBUGMSGTL(( "snmptrapd:lookup", "get_traphandler subtree match (%p)\n", traph));
+                    DEBUGMSGTL(( "snmptrapd", "get_traphandler subtree match (%x)\n", traph));
 	            return traph;
                 }
             }
@@ -607,7 +560,7 @@ netsnmp_get_traphandler( oid *trapOid, int trapOidLen ) {
     /*
      * .... or failing that, return the "default" list (which may be NULL)
      */
-    DEBUGMSGTL(( "snmptrapd:lookup", "get_traphandler default (%p)\n",
+    DEBUGMSGTL(( "snmptrapd", "get_traphandler default (%x)\n",
 			    netsnmp_default_traphandlers));
     return netsnmp_default_traphandlers;
 }
@@ -632,6 +585,7 @@ int   syslog_handler(  netsnmp_pdu           *pdu,
     u_char         *rbuf = NULL;
     size_t          r_len = 64, o_len = 0;
     int             trunc = 0;
+    extern int      SyslogTrap;
 
     DEBUGMSGTL(( "snmptrapd", "syslog_handler\n"));
 
@@ -714,6 +668,7 @@ int   print_handler(   netsnmp_pdu           *pdu,
     u_char         *rbuf = NULL;
     size_t          r_len = 64, o_len = 0;
     int             trunc = 0;
+    extern int      dropauth;
 
     DEBUGMSGTL(( "snmptrapd", "print_handler\n"));
 
@@ -781,20 +736,163 @@ int   print_handler(   netsnmp_pdu           *pdu,
 }
 
 
-#define EXECUTE_FORMAT	"%B\n%b\n%V\n%v\n"
-
 /*
  *  Trap handler for invoking a suitable script
  */
+void
+send_handler_data(FILE * file, struct hostent *host,
+                  netsnmp_pdu *pdu, netsnmp_transport *transport)
+{
+    netsnmp_variable_list tmpvar, *vars;
+    static oid      trapoids[] = { 1, 3, 6, 1, 6, 3, 1, 1, 5, 0 };
+    static oid      snmpsysuptime[] = { 1, 3, 6, 1, 2, 1, 1, 3, 0 };
+    static oid      snmptrapoid[] = { 1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0 };
+    static oid      snmptrapent[] = { 1, 3, 6, 1, 6, 3, 1, 1, 4, 3, 0 };
+    static oid      snmptrapaddr[] = { 1, 3, 6, 1, 6, 3, 18, 1, 3, 0 };
+    static oid      snmptrapcom[] = { 1, 3, 6, 1, 6, 3, 18, 1, 4, 0 };
+    oid             enttrapoid[MAX_OID_LEN];
+    int             enttraplen = pdu->enterprise_length;
+
+    if (transport != NULL && transport->f_fmtaddr != NULL) {
+        char *tstr = transport->f_fmtaddr(transport, pdu->transport_data,
+                                          pdu->transport_data_length);
+        if (tstr != NULL) {
+            fprintf(file, "%s\n%s\n", host ? host->h_name : tstr, tstr);
+            free(tstr);
+        }
+    } else {
+        fprintf(file, "%s\n<UNKNOWN>\n", host ? host->h_name : "<UNKNOWN>");
+    }
+    if (pdu->command == SNMP_MSG_TRAP) {
+        /*
+         * convert a v1 trap to a v2 variable binding list:
+         * The uptime and trapOID go first in the list. 
+         */
+        tmpvar.val.integer = (long *) &pdu->time;
+        tmpvar.val_len = sizeof(pdu->time);
+        tmpvar.type = ASN_TIMETICKS;
+        fprint_variable(file, snmpsysuptime,
+                        sizeof(snmpsysuptime) / sizeof(oid), &tmpvar);
+        tmpvar.type = ASN_OBJECT_ID;
+        if (pdu->trap_type == SNMP_TRAP_ENTERPRISESPECIFIC) {
+            memcpy(enttrapoid, pdu->enterprise, sizeof(oid) * enttraplen);
+            if (enttrapoid[enttraplen - 1] != 0)
+                enttrapoid[enttraplen++] = 0;
+            enttrapoid[enttraplen++] = pdu->specific_type;
+            tmpvar.val.objid = enttrapoid;
+            tmpvar.val_len = enttraplen * sizeof(oid);
+        } else {
+            trapoids[9] = pdu->trap_type + 1;
+            tmpvar.val.objid = trapoids;
+            tmpvar.val_len = 10 * sizeof(oid);
+        }
+        fprint_variable(file, snmptrapoid,
+                        sizeof(snmptrapoid) / sizeof(oid), &tmpvar);
+    }
+    /*
+     * do the variables in the pdu 
+     */
+    for (vars = pdu->variables; vars; vars = vars->next_variable) {
+        fprint_variable(file, vars->name, vars->name_length, vars);
+    }
+    if (pdu->command == SNMP_MSG_TRAP) {
+        /*
+         * convert a v1 trap to a v2 variable binding list:
+         * The enterprise goes last. 
+         */
+        tmpvar.val.string = pdu->agent_addr;
+        tmpvar.val_len = 4;
+        tmpvar.type = ASN_IPADDRESS;
+        fprint_variable(file, snmptrapaddr,
+                        sizeof(snmptrapaddr) / sizeof(oid), &tmpvar);
+        tmpvar.val.string = pdu->community;
+        tmpvar.val_len = pdu->community_len;
+        tmpvar.type = ASN_OCTET_STR;
+        fprint_variable(file, snmptrapcom,
+                        sizeof(snmptrapcom) / sizeof(oid), &tmpvar);
+        tmpvar.val.objid = pdu->enterprise;
+        tmpvar.val_len = pdu->enterprise_length * sizeof(oid);
+        tmpvar.type = ASN_OBJECT_ID;
+        fprint_variable(file, snmptrapent,
+                        sizeof(snmptrapent) / sizeof(oid), &tmpvar);
+    }
+}
+
+void
+do_external(char *cmd, struct hostent *host,
+            netsnmp_pdu *pdu, netsnmp_transport *transport)
+{
+    FILE           *file;
+    int             oldquick, result;
+
+    DEBUGMSGTL(("snmptrapd", "Running: %s\n", cmd));
+    oldquick = snmp_get_quick_print();
+    snmp_set_quick_print(1);
+    if (cmd) {
+#ifndef WIN32
+        int             fd[2];
+        int             pid;
+
+        if (pipe(fd)) {
+            snmp_log_perror("pipe");
+        }
+        if ((pid = fork()) == 0) {
+            /*
+             * child 
+             */
+            close(0);
+            if (dup(fd[0]) != 0) {
+                snmp_log_perror("dup");
+            }
+            close(fd[1]);
+            close(fd[0]);
+            system(cmd);
+            exit(0);
+        } else if (pid > 0) {
+            file = fdopen(fd[1], "w");
+            send_handler_data(file, host, pdu, transport);
+            fclose(file);
+            close(fd[0]);
+            close(fd[1]);
+            if (waitpid(pid, &result, 0) < 0) {
+                snmp_log_perror("waitpid");
+            }
+        } else {
+            snmp_log_perror("fork");
+        }
+#else
+        char            command_buf[128];
+        char            file_buf[L_tmpnam];
+
+        tmpnam(file_buf);
+        file = fopen(file_buf, "w");
+        if (!file) {
+            fprintf(stderr, "fopen: %s: %s\n", file_buf, strerror(errno));
+        } else {
+            send_handler_data(file, host, pdu, transport);
+            fclose(file);
+            snprintf(command_buf, sizeof(command_buf),
+                     "%s < %s", cmd, file_buf);
+            command_buf[ sizeof(command_buf)-1 ] = 0;
+            result = system(command_buf);
+            if (result == -1)
+                fprintf(stderr, "system: %s: %s\n", command_buf,
+                        strerror(errno));
+            else if (result)
+                fprintf(stderr, "system: %s: %d\n", command_buf, result);
+            remove(file_buf);
+        }
+#endif                          /* WIN32 */
+    }
+    snmp_set_quick_print(oldquick);
+}
+
+#define EXECUTE_FORMAT	"%B\n%b\n%V\n%v\n"
+
 int   command_handler( netsnmp_pdu           *pdu,
                        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;
@@ -807,10 +905,8 @@ int   command_handler( netsnmp_pdu           *pdu,
 	    v2_pdu = convert_v1pdu_to_v2(pdu);
 	else
 	    v2_pdu = pdu;
-        oldquick = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                          NETSNMP_DS_LIB_QUICK_PRINT);
-        netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
-                               NETSNMP_DS_LIB_QUICK_PRINT, 1);
+        oldquick = snmp_get_quick_print();
+        snmp_set_quick_print(1);
 
         /*
 	 * Format the trap and pass this string to the external command
@@ -830,39 +926,45 @@ int   command_handler( netsnmp_pdu           *pdu,
                                              handler->format,
                                              v2_pdu, transport);
         } else {
-	    if ( pdu->command == SNMP_MSG_TRAP && exec_format1 ) {
-                DEBUGMSGTL(( "snmptrapd", "exec v1 = '%s'\n", exec_format1));
-                realloc_format_trap(&rbuf, &r_len, &o_len, 1,
-                                             exec_format1, pdu, transport);
-	    } else if ( pdu->command != SNMP_MSG_TRAP && exec_format2 ) {
-                DEBUGMSGTL(( "snmptrapd", "exec v2/3 = '%s'\n", exec_format2));
-                realloc_format_trap(&rbuf, &r_len, &o_len, 1,
-                                             exec_format2, pdu, transport);
-	    } else {
-                DEBUGMSGTL(( "snmptrapd", "execute format\n"));
-                realloc_format_trap(&rbuf, &r_len, &o_len, 1, EXECUTE_FORMAT,
+            DEBUGMSGTL(( "snmptrapd", "execute format\n"));
+            realloc_format_trap(&rbuf, &r_len, &o_len, 1,
+                                             EXECUTE_FORMAT,
                                              v2_pdu, transport);
-            }
 	}
 
         /*
          *  and pass this formatted string to the command specified
          */
-        run_shell_command(handler->token, (char*)rbuf, NULL, NULL);   /* Not interested in output */
-        netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
-                               NETSNMP_DS_LIB_QUICK_PRINT, oldquick);
+        run_shell_command(handler->token, (char*)rbuf, NULL, 0);   /* Not interested in output */
+        snmp_set_quick_print(oldquick);
         if (pdu->command == SNMP_MSG_TRAP)
             snmp_free_pdu(v2_pdu);
         free(rbuf);
     }
     return NETSNMPTRAPD_HANDLER_OK;
-#endif /* !def USING_UTILITIES_EXECUTE_MODULE */
 }
 
 
 
 
 /*
+ *  Trap handler for doing something with "event" traps
+ *      (not entirely clear what this is about ???)
+ */
+	/* XXX - in snmptrapd.c */
+void event_input(netsnmp_variable_list * vp);
+
+int   event_handler( netsnmp_pdu           *pdu,
+                     netsnmp_transport     *transport,
+                     netsnmp_trapd_handler *handler)
+{
+    DEBUGMSGTL(( "snmptrapd", "event_handler\n"));
+    event_input(pdu->variables);
+    return NETSNMPTRAPD_HANDLER_OK;
+}
+
+
+/*
  *  Trap handler for forwarding to the AgentX master agent
  */
 int axforward_handler( netsnmp_pdu           *pdu,
@@ -951,7 +1053,11 @@ snmp_input(int op, netsnmp_session *session,
     netsnmp_variable_list *vars;
     netsnmp_trapd_handler *traph;
     netsnmp_transport *transport = (netsnmp_transport *) magic;
-    int ret, idx;
+    int ret;
+    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:
@@ -1048,26 +1154,77 @@ t        *     d) any other global handlers
          *  OK - Enough waffling, let's get to work.....
 	 */
 
-        for( idx = 0; handlers[idx].descr; ++idx ) {
-            DEBUGMSGTL(("snmptrapd", "Running %s handlers\n",
-                        handlers[idx].descr));
-            if (NULL == handlers[idx].handler) /* specific */
-                traph = netsnmp_get_traphandler(trapOid, trapOidLen);
-            else
-                traph = *handlers[idx].handler;
+        /*
+	 *  a) authentication handlers
+	 */
+        traph = netsnmp_auth_global_traphandlers;
+        DEBUGMSGTL(("snmptrapd", "Running auth trap handlers\n"));
+	while (traph) {
+            if (!netsnmp_trapd_check_auth(traph->authtypes)) {
+                traph = traph->nexth;
+                continue; /* we continue on and skip this one */
+            }
+	    ret = (*(traph->handler))(pdu, transport, traph);
+            if (ret == NETSNMPTRAPD_HANDLER_FINISH)
+                return 1;
+            if (ret == NETSNMPTRAPD_HANDLER_BREAK)
+                break;
+	    traph = traph->nexth;
+	}
 
-            for( ; traph; traph = traph->nexth) {
-                if (!netsnmp_trapd_check_auth(traph->authtypes))
-                    continue; /* we continue on and skip this one */
+        /*
+	 *  b) pre-specific global handlers
+	 */
+        traph = netsnmp_pre_global_traphandlers;
+        DEBUGMSGTL(("snmptrapd", "Running pre-global trap handlers\n"));
+	while (traph) {
+            if (!netsnmp_trapd_check_auth(traph->authtypes)) {
+                traph = traph->nexth;
+                continue; /* we continue on and skip this one */
+            }
+	    ret = (*(traph->handler))(pdu, transport, traph);
+            if (ret == NETSNMPTRAPD_HANDLER_FINISH)
+                return 1;
+            if (ret == NETSNMPTRAPD_HANDLER_BREAK)
+                break;
+	    traph = traph->nexth;
+	}
 
-                ret = (*(traph->handler))(pdu, transport, traph);
-                if(NETSNMPTRAPD_HANDLER_FINISH == ret)
-                    return 1;
-                if (ret == NETSNMPTRAPD_HANDLER_BREAK)
-                    break; /* move on to next type */
-            } /* traph */
-        } /* handlers */
+        /*
+	 *  c) trap-specific handlers
+	 */
+        DEBUGMSGTL(("snmptrapd", "Running trap specific handlers\n"));
+        traph = netsnmp_get_traphandler(trapOid, trapOidLen);
+	while (traph) {
+            if (!netsnmp_trapd_check_auth(traph->authtypes)) {
+                traph = traph->nexth;
+                continue; /* we continue on and skip this one */
+            }
+	    ret = (*(traph->handler))(pdu, transport, traph);
+            if (ret == NETSNMPTRAPD_HANDLER_FINISH)
+                return 1;
+            if (ret == NETSNMPTRAPD_HANDLER_BREAK)
+                break;
+	    traph = traph->nexth;
+	}
 
+        /*
+	 *  d) other global handlers
+	 */
+        DEBUGMSGTL(("snmptrapd", "Running global handlers\n"));
+        traph = netsnmp_post_global_traphandlers;
+	while (traph) {
+            if (!netsnmp_trapd_check_auth(traph->authtypes)) {
+                traph = traph->nexth;
+                continue; /* we continue on and skip this one */
+            }
+	    ret = (*(traph->handler))(pdu, transport, traph);
+            if (ret == NETSNMPTRAPD_HANDLER_FINISH)
+                return 1;
+            if (ret == NETSNMPTRAPD_HANDLER_BREAK)
+                break;
+	    traph = traph->nexth;
+	}
 
 	if (pdu->command == SNMP_MSG_INFORM) {
 	    netsnmp_pdu *reply = snmp_clone_pdu(pdu);
diff --git a/apps/snmptrapd_handlers.h b/apps/snmptrapd_handlers.h
index 097c02d..9212d12 100644
--- a/apps/snmptrapd_handlers.h
+++ b/apps/snmptrapd_handlers.h
@@ -35,7 +35,6 @@ Netsnmp_Trap_Handler   event_handler;
 Netsnmp_Trap_Handler   forward_handler;
 Netsnmp_Trap_Handler   axforward_handler;
 Netsnmp_Trap_Handler   notification_handler;
-Netsnmp_Trap_Handler   mysql_handler;
 
 void free_trap1_fmt(void);
 void free_trap2_fmt(void);
@@ -45,7 +44,6 @@ extern char *print_format2;
 #define NETSNMPTRAPD_AUTH_HANDLER    1
 #define NETSNMPTRAPD_PRE_HANDLER     2
 #define NETSNMPTRAPD_POST_HANDLER    3
-#define NETSNMPTRAPD_DEFAULT_HANDLER 4
 
 #define NETSNMPTRAPD_HANDLER_OK      1	/* Succeed, & keep going */
 #define NETSNMPTRAPD_HANDLER_FAIL    2	/* Failed but keep going */
diff --git a/apps/snmptrapd_log.c b/apps/snmptrapd_log.c
index 774f797..34dbe53 100644
--- a/apps/snmptrapd_log.c
+++ b/apps/snmptrapd_log.c
@@ -40,7 +40,9 @@ SOFTWARE.
 #if HAVE_SYS_WAIT_H
 #include <sys/wait.h>
 #endif
-#if HAVE_SYS_SOCKET_H
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#else
 #include <sys/socket.h>
 #endif
 #if HAVE_SYS_SOCKIO_H
@@ -104,7 +106,7 @@ SOFTWARE.
 typedef struct {
     char            cmd;        /* the format command itself */
     size_t          width;      /* the field's minimum width */
-    int             precision;  /* the field's precision */
+    size_t          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 */
@@ -368,7 +370,7 @@ realloc_output_temp_bfr(u_char ** buf, size_t * buf_len, size_t * out_len,
     temp_to_write = temp_len;
 
     if (options->precision != UNDEF_PRECISION &&
-        temp_to_write > (size_t)options->precision) {
+        temp_to_write > options->precision) {
         temp_to_write = options->precision;
     }
 
@@ -460,6 +462,8 @@ realloc_handle_time_fmt(u_char ** buf, size_t * buf_len, size_t * out_len,
     struct tm      *parsed_time;        /* parsed version of current time */
     char           *safe_bfr = NULL;
     char            fmt_cmd = options->cmd;     /* the format command to use */
+    int             offset = 0; /* offset into string to display */
+    size_t          year_len;   /* length of year string */
 
     if ((safe_bfr = (char *) calloc(30, 1)) == NULL) {
         return 0;
@@ -534,6 +538,11 @@ realloc_handle_time_fmt(u_char ** buf, size_t * buf_len, size_t * out_len,
         case CHR_CUR_YEAR:
         case CHR_UP_YEAR:
             sprintf(safe_bfr, "%d", parsed_time->tm_year + 1900);
+            if (options->precision != UNDEF_PRECISION) {
+                year_len = (size_t) strlen(safe_bfr);
+                if (year_len > options->precision)
+                    offset = year_len - options->precision;
+            }
             break;
 
             /*
@@ -617,10 +626,8 @@ realloc_handle_ip_fmt(u_char ** buf, size_t * buf_len, size_t * out_len,
     char            fmt_cmd = options->cmd;     /* what we're formatting */
     u_char         *temp_buf = NULL;
     size_t          temp_buf_len = 64, temp_out_len = 0;
-    char           *tstr;
-    unsigned int    oflags;
 
-    if ((temp_buf = (u_char*)calloc(temp_buf_len, 1)) == NULL) {
+    if ((temp_buf = calloc(temp_buf_len, 1)) == NULL) {
         return 0;
     }
 
@@ -648,11 +655,11 @@ realloc_handle_ip_fmt(u_char ** buf, size_t * buf_len, size_t * out_len,
          */
         if (!netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
                                     NETSNMP_DS_APP_NUMERIC_IP)) {
-            host = netsnmp_gethostbyaddr((char *) pdu->agent_addr, 4, AF_INET);
+            host = gethostbyaddr((char *) pdu->agent_addr, 4, AF_INET);
         }
         if (host != NULL) {
             if (!snmp_strcat(&temp_buf, &temp_buf_len, &temp_out_len, 1,
-                             (const u_char *)host->h_name)) {
+                             (u_char *)host->h_name)) {
                 if (temp_buf != NULL) {
                     free(temp_buf);
                 }
@@ -674,59 +681,130 @@ realloc_handle_ip_fmt(u_char ** buf, size_t * buf_len, size_t * out_len,
          * Write the numerical transport information.  
          */
         if (transport != NULL && transport->f_fmtaddr != NULL) {
-            oflags = transport->flags;
-            transport->flags &= ~NETSNMP_TRANSPORT_FLAG_HOSTNAME;
-            tstr = transport->f_fmtaddr(transport, pdu->transport_data,
-                                        pdu->transport_data_length);
-            transport->flags = oflags;
-          
-            if (!tstr) goto noip;
-            if (!snmp_strcat(&temp_buf, &temp_buf_len, &temp_out_len,
-                             1, (u_char *)tstr)) {
-                SNMP_FREE(temp_buf);
-                SNMP_FREE(tstr);
+            char           *tstr =
+                transport->f_fmtaddr(transport, pdu->transport_data,
+                                     pdu->transport_data_length);
+            if (!snmp_strcat
+                (&temp_buf, &temp_buf_len, &temp_out_len, 1, (u_char *)tstr)) {
+                if (tstr != NULL) {
+                    free(tstr);
+                }
+                if (temp_buf != NULL) {
+                    free(temp_buf);
+                }
                 return 0;
             }
-            SNMP_FREE(tstr);
+            if (tstr != NULL) {
+                free(tstr);
+            }
         } else {
-noip:
-            if (!snmp_strcat(&temp_buf, &temp_buf_len, &temp_out_len, 1,
-                             (const u_char*)"<UNKNOWN>")) {
-                SNMP_FREE(temp_buf);
+            if (!snmp_strcat
+                (&temp_buf, &temp_buf_len, &temp_out_len, 1,
+                 (const u_char*)"<UNKNOWN>")) {
+                if (temp_buf != NULL) {
+                    free(temp_buf);
+                }
                 return 0;
             }
         }
         break;
 
+        /*
+         * Write a host name.  
+         */
     case CHR_PDU_NAME:
         /*
-         * Try to convert the numerical transport information
-         *  into a hostname.  Or rather, have the transport-specific
-         *  address formatting routine do this.
-         * Otherwise falls back to the numeric address format.
+         * Right, apparently a name lookup is wanted.  This is only reasonable
+         * for the UDP and TCP transport domains (we don't want to try to be
+         * too clever here).  
          */
-        if (transport != NULL && transport->f_fmtaddr != NULL) {
-            oflags = transport->flags;
-            if (!netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
-                                        NETSNMP_DS_APP_NUMERIC_IP))
-                transport->flags |= NETSNMP_TRANSPORT_FLAG_HOSTNAME;
-            tstr = transport->f_fmtaddr(transport, pdu->transport_data,
-                                        pdu->transport_data_length);
-            transport->flags = oflags;
-          
-            if (!tstr) goto nohost;
-            if (!snmp_strcat(&temp_buf, &temp_buf_len, &temp_out_len,
-                             1, (u_char *)tstr)) {
-                SNMP_FREE(temp_buf);
-                SNMP_FREE(tstr);
+#ifdef NETSNMP_TRANSPORT_TCP_DOMAIN
+        if (transport != NULL && (transport->domain == netsnmpUDPDomain ||
+                                  transport->domain ==
+                                  netsnmp_snmpTCPDomain)) {
+#else
+        if (transport != NULL && transport->domain == netsnmpUDPDomain) {
+#endif
+            /*
+             * This is kind of bletcherous -- it breaks the opacity of
+             * transport_data but never mind -- the alternative is a lot of
+             * munging strings from f_fmtaddr.  
+             */
+typedef struct netsnmp_udp_addr_pair_s {   /* From snmpUDPDomain.c */
+    struct sockaddr_in remote_addr;
+    struct in_addr local_addr;
+} netsnmp_udp_addr_pair;
+
+            netsnmp_udp_addr_pair *addr =
+                (netsnmp_udp_addr_pair *) pdu->transport_data;
+            if (addr != NULL
+                && pdu->transport_data_length ==
+                sizeof(netsnmp_udp_addr_pair)) {
+                if (!netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
+                                            NETSNMP_DS_APP_NUMERIC_IP)) {
+                    host =
+                        gethostbyaddr((char *) &(addr->remote_addr.sin_addr),
+                                      sizeof(struct in_addr), AF_INET);
+                }
+                if (host != NULL) {
+                    if (!snmp_strcat
+                        (&temp_buf, &temp_buf_len, &temp_out_len, 1,
+                         (u_char *)host->h_name)) {
+                        if (temp_buf != NULL) {
+                            free(temp_buf);
+                        }
+                        return 0;
+                    }
+                } else {
+                    if (!snmp_strcat
+                        (&temp_buf, &temp_buf_len, &temp_out_len, 1,
+                         (u_char *)inet_ntoa(addr->remote_addr.sin_addr))) {
+                        if (temp_buf != NULL) {
+                            free(temp_buf);
+                        }
+                        return 0;
+                    }
+                }
+            } else {
+                if (!snmp_strcat
+                    (&temp_buf, &temp_buf_len, &temp_out_len, 1,
+                     (const u_char*)"<UNKNOWN>")) {
+                    if (temp_buf != NULL) {
+                        free(temp_buf);
+                    }
+                    return 0;
+                }
+            }
+        } else if (transport != NULL && transport->f_fmtaddr != NULL) {
+            /*
+             * Some other domain for which we do not know how to do a name
+             * lookup.  Fall back to the formatted transport address.  
+             */
+            char           *tstr =
+                transport->f_fmtaddr(transport, pdu->transport_data,
+                                     pdu->transport_data_length);
+            if (!snmp_strcat
+                (&temp_buf, &temp_buf_len, &temp_out_len, 1, (u_char *)tstr)) {
+                if (tstr != NULL) {
+                    free(tstr);
+                }
+                if (temp_buf != NULL) {
+                    free(temp_buf);
+                }
                 return 0;
             }
-            SNMP_FREE(tstr);
+            if (tstr != NULL) {
+                free(tstr);
+            }
         } else {
-nohost:
+            /*
+             * We are kind of stuck!  
+             */
             if (!snmp_strcat(&temp_buf, &temp_buf_len, &temp_out_len, 1,
                              (const u_char*)"<UNKNOWN>")) {
-                SNMP_FREE(temp_buf);
+                if (temp_buf != NULL) {
+                    free(temp_buf);
+                }
                 return 0;
             }
         }
@@ -793,7 +871,7 @@ realloc_handle_ent_fmt(u_char ** buf, size_t * buf_len, size_t * out_len,
         /*
          * Write the context oid.  
          */
-        if (!sprint_realloc_hexstring
+        if (!sprint_realloc_objid
             (&temp_buf, &temp_buf_len, &temp_out_len, 1, pdu->contextEngineID,
              pdu->contextEngineIDLen)) {
             free(temp_buf);
@@ -992,21 +1070,21 @@ realloc_handle_auth_fmt(u_char ** buf, size_t * buf_len, size_t * out_len,
 {
     char            fmt_cmd = options->cmd;     /* what we're outputting */
     u_char         *temp_buf = NULL;
-    size_t          tbuf_len = 64;
-    unsigned int    i;
+    size_t          tbuf_len = 64, tout_len = 0;
+    int             i;
 
-    if ((temp_buf = (u_char*)calloc(tbuf_len, 1)) == NULL) {
+    if ((temp_buf = calloc(tbuf_len, 1)) == NULL) {
         return 0;
     }
 
     switch (fmt_cmd) {
 
     case CHR_SNMP_VERSION:
-        snprintf((char*)temp_buf, tbuf_len, "%ld", pdu->version);
+        tout_len = snprintf((char*)temp_buf, tbuf_len, "%ld", pdu->version);
         break;
 
     case CHR_SNMP_SECMOD:
-        snprintf((char*)temp_buf, tbuf_len, "%d", pdu->securityModel);
+        tout_len = snprintf((char*)temp_buf, tbuf_len, "%d", pdu->securityModel);
         break;
 
     case CHR_SNMP_USER:
@@ -1020,8 +1098,6 @@ realloc_handle_auth_fmt(u_char ** buf, size_t * buf_len, size_t * out_len,
 #if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
             while ((*out_len + pdu->community_len + 1) >= *buf_len) {
                 if (!(allow_realloc && snmp_realloc(buf, buf_len))) {
-                    if (temp_buf)
-                        free(temp_buf);
                     return 0;
                 }
             }
@@ -1038,7 +1114,7 @@ realloc_handle_auth_fmt(u_char ** buf, size_t * buf_len, size_t * out_len,
             break;
 #endif
         default:
-            snprintf((char*)temp_buf, tbuf_len, "%s", pdu->securityName);
+            tout_len = snprintf((char*)temp_buf, tbuf_len, "%s", pdu->securityName);
         }
         break;
 
@@ -1159,7 +1235,7 @@ realloc_handle_wrap_fmt(u_char ** buf, size_t * buf_len, size_t * out_len,
         }
 
         for (i = 0; i < pdu->securityNameLen; i++) {
-            if (isprint((unsigned char)(pdu->securityName[i]))) {
+            if (isprint(pdu->securityName[i])) {
                 *(*buf + *out_len) = pdu->securityName[i];
             } else {
                 *(*buf + *out_len) = '.';
@@ -1181,7 +1257,7 @@ realloc_handle_wrap_fmt(u_char ** buf, size_t * buf_len, size_t * out_len,
         }
 
         for (i = 0; i < pdu->contextNameLen; i++) {
-            if (isprint((unsigned char)(pdu->contextName[i]))) {
+            if (isprint(pdu->contextName[i])) {
                 *(*buf + *out_len) = pdu->contextName[i];
             } else {
                 *(*buf + *out_len) = '.';
@@ -1368,7 +1444,7 @@ realloc_format_plain_trap(u_char ** buf, size_t * buf_len,
      */
     if (!netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
                                 NETSNMP_DS_APP_NUMERIC_IP)) {
-        host = netsnmp_gethostbyaddr((char *) pdu->agent_addr, 4, AF_INET);
+        host = gethostbyaddr((char *) pdu->agent_addr, 4, AF_INET);
     }
     if (host != (struct hostent *) NULL) {
         if (!snmp_strcat
@@ -1717,7 +1793,7 @@ realloc_format_trap(u_char ** buf, size_t * buf_len, size_t * out_len,
              * Parsing a width field.  
              */
             reset_options = TRUE;
-            if (isdigit((unsigned char)(next_chr))) {
+            if (isdigit(next_chr)) {
                 options.width *= 10;
                 options.width +=
                     (unsigned long) next_chr - (unsigned long) '0';
@@ -1748,7 +1824,7 @@ realloc_format_trap(u_char ** buf, size_t * buf_len, size_t * out_len,
              * Parsing a precision field.  
              */
             reset_options = TRUE;
-            if (isdigit((unsigned char)(next_chr))) {
+            if (isdigit(next_chr)) {
                 if (options.precision == UNDEF_PRECISION) {
                     options.precision =
                         (unsigned long) next_chr - (unsigned long) '0';
@@ -1759,9 +1835,8 @@ realloc_format_trap(u_char ** buf, size_t * buf_len, size_t * out_len,
                 }
             } else if (is_fmt_cmd(next_chr)) {
                 options.cmd = next_chr;
-                if ((options.precision != UNDEF_PRECISION) &&
-                    (options.width < (size_t)options.precision)) {
-                    options.width = (size_t)options.precision;
+                if (options.width < options.precision) {
+                    options.width = 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
deleted file mode 100644
index ccba258..0000000
--- a/apps/snmptrapd_sql.c
+++ /dev/null
@@ -1,1118 +0,0 @@
-/*
- * File       : snmptrapd_sql
- * Author     : Robert Story
- *
- * Copyright © 2009 Science Logic, Inc. All rights reserved.
- * Use is subject to license terms specified in the COPYING file
- * distributed with the Net-SNMP package.
- *
- * This file implements a handler for snmptrapd which will cache incoming
- * traps and then write them to a MySQL database.
- *
- */
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-#ifdef NETSNMP_USE_MYSQL
-
-#if HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <stdio.h>
-#if HAVE_STRING_H
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-#include <ctype.h>
-#include <sys/types.h>
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETDB_H
-#include <netdb.h>
-#endif
-
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include "snmptrapd_handlers.h"
-#include "snmptrapd_auth.h"
-#include "snmptrapd_log.h"
-
-/*
- * SQL includes
- */
-#undef PACKAGE_BUGREPORT
-#undef PACKAGE_NAME
-#undef PACKAGE_STRING
-#undef PACKAGE_TARNAME
-#undef PACKAGE_VERSION
-#include <mysql/my_global.h>
-#include <mysql/my_sys.h>
-#include <mysql/mysql.h>
-#include <mysql/errmsg.h>
-
-netsnmp_feature_require(container_fifo)
-
-/*
- * define a structure to hold all the file globals
- */
-typedef struct netsnmp_sql_globals_t {
-    char        *host_name;       /* server host (def=localhost) */
-    char        *user_name;       /* username (def=login name) */
-    char        *password;        /* password (def=none) */
-    u_int        port_num;        /* port number (built-in value) */
-    char        *socket_name;     /* socket name (built-in value) */
-    const char  *db_name;         /* database name (def=none) */
-    u_int        flags;           /* connection flags (none) */
-    MYSQL       *conn;            /* connection */
-    u_char       connected;       /* connected flag */
-    const char  *groups[3];
-    MYSQL_STMT  *trap_stmt, *vb_stmt; /* prepared statements */
-    u_int        alarm_id;        /* id of periodic save alarm */
-    netsnmp_container *queue;     /* container; traps pending database write */
-    u_int        queue_max;       /* auto save queue when it gets this big */
-    int          queue_interval;  /* auto save every N seconds */
-} netsnmp_sql_globals;
-
-static netsnmp_sql_globals _sql = {
-    NULL,                  /* host */
-    NULL,                  /* username */
-    NULL,                  /* password */
-    0,                     /* port */
-    NULL,                  /* socket */
-    "net_snmp",            /* database */
-    0,                     /* conn flags */
-    NULL,                  /* connection */
-    0,                     /* connected */
-    { "client", "snmptrapd", NULL },  /* groups to read from .my.cnf */
-    NULL,                  /* trap_stmt */
-    NULL,                  /* vb_stmt */
-    0,                     /* alarm_id */
-    NULL,                  /* queue */
-    1,                     /* queue_max */
-    -1                     /* queue_interval */
-};
-
-/*
- * log traps as text, or binary blobs?
- */
-#define NETSNMP_MYSQL_TRAP_VALUE_TEXT 1
-
-/*
- * We will be using prepared statements for performance reasons. This
- * requires a sql bind structure for each cell to be inserted in the
- * database. We will be using 2 global static structures to bind to,
- * and a netsnmp container to store the necessary data until it is
- * written to the database. Fixed size buffers are also used to
- * simplify memory management.
- */
-/** enums for the trap fields to be bound */
-enum{
-    TBIND_DATE = 0,           /* time received */
-    TBIND_HOST,               /* src ip */
-    TBIND_USER,               /* auth/user information */
-    TBIND_TYPE,               /* pdu type */
-    TBIND_VER,                /* snmp version */
-    TBIND_REQID,              /* request id */
-    TBIND_OID,                /* trap OID */
-    TBIND_TRANSPORT,          /* transport */
-    TBIND_SECURITY_MODEL,     /* security model */
-    TBIND_v3_MSGID,           /* v3 msg id */
-    TBIND_v3_SECURITY_LEVEL,  /* security level */
-    TBIND_v3_CONTEXT_NAME,    /* context */
-    TBIND_v3_CONTEXT_ENGINE,  /* context engine id */
-    TBIND_v3_SECURITY_NAME,   /* security name */
-    TBIND_v3_SECURITY_ENGINE, /* security engine id */
-    TBIND_MAX
-};
-
-/** enums for the varbind fields to be bound */
-enum {
-    VBIND_ID = 0,             /* trap_id */
-    VBIND_OID,                /* varbind oid */
-    VBIND_TYPE,               /* varbind type */
-    VBIND_VAL,                /* varbind value */
-    VBIND_MAX
-};
-
-/** buffer struct for varbind data */
-typedef struct sql_vb_buf_t {
-
-    char      *oid;
-    u_long     oid_len;
-
-    u_char    *val;
-    u_long     val_len;
-
-    uint16_t   type;
-
-} sql_vb_buf;
-
-/** buffer struct for trap data */
-typedef struct sql_buf_t {
-    char      *host;
-    u_long     host_len;
-
-    char      *oid;
-    u_long     oid_len;
-
-    char      *user;
-    u_long     user_len;
-
-    MYSQL_TIME time;
-    uint16_t   version, type;
-    uint32_t   reqid;
-
-    char      *transport;
-    u_long     transport_len;
-
-    uint16_t   security_level, security_model;
-    uint32_t   msgid;
-
-    char      *context;
-    u_long     context_len;
-
-    char      *context_engine;
-    u_long     context_engine_len;
-
-    char      *security_name;
-    u_long     security_name_len;
-
-    char      *security_engine;
-    u_long     security_engine_len;
-
-    netsnmp_container *varbinds;
-
-    char       logged;
-} sql_buf;
-
-/*
- * static bind structures, plus 2 static buffers to bind to.
- */
-static MYSQL_BIND _tbind[TBIND_MAX], _vbind[VBIND_MAX];
-static my_bool    _no_v3;
-
-static void _sql_process_queue(u_int dontcare, void *meeither);
-
-/*
- * parse the sqlMaxQueue configuration token
- */
-static void
-_parse_queue_fmt(const char *token, char *cptr)
-{
-    _sql.queue_max = atoi(cptr);
-    DEBUGMSGTL(("sql:queue","queue max now %d\n", _sql.queue_max));
-}
-
-/*
- * parse the sqlSaveInterval configuration token
- */
-static void
-_parse_interval_fmt(const char *token, char *cptr)
-{
-    _sql.queue_interval = atoi(cptr);
-    DEBUGMSGTL(("sql:queue","queue interval now %d seconds\n",
-                _sql.queue_interval));
-}
-
-/*
- * register sql related configuration tokens
- */
-void
-snmptrapd_register_sql_configs( void )
-{
-    register_config_handler("snmptrapd", "sqlMaxQueue",
-                            _parse_queue_fmt, NULL, "integer");
-    register_config_handler("snmptrapd", "sqlSaveInterval",
-                            _parse_interval_fmt, NULL, "seconds");
-}
-
-static void
-netsnmp_sql_disconnected(void)
-{
-    DEBUGMSGTL(("sql:connection","disconnected\n"));
-
-    _sql.connected = 0;
-
-    /** release prepared statements */
-    if (_sql.trap_stmt) {
-        mysql_stmt_close(_sql.trap_stmt);
-        _sql.trap_stmt = NULL;
-    }
-    if (_sql.vb_stmt) {
-        mysql_stmt_close(_sql.vb_stmt);
-        _sql.vb_stmt = NULL;
-    }
-}
-
-/*
- * convenience function to log mysql errors
- */
-static void
-netsnmp_sql_error(const char *message)
-{
-    u_int err = mysql_errno(_sql.conn);
-    snmp_log(LOG_ERR, "%s\n", message);
-    if (_sql.conn != NULL) {
-#if MYSQL_VERSION_ID >= 40101
-        snmp_log(LOG_ERR, "Error %u (%s): %s\n",
-                 err, mysql_sqlstate(_sql.conn), mysql_error(_sql.conn));
-#else
-        snmp(LOG_ERR, "Error %u: %s\n",
-             mysql_errno(_sql.conn), mysql_error(_sql.conn));
-#endif
-    }
-    if (CR_SERVER_GONE_ERROR == err)
-        netsnmp_sql_disconnected();
-}
-
-/*
- * convenience function to log mysql statement errors
- */
-static void
-netsnmp_sql_stmt_error (MYSQL_STMT *stmt, const char *message)
-{
-    u_int err = mysql_errno(_sql.conn);
-
-    snmp_log(LOG_ERR, "%s\n", message);
-    if (stmt) {
-        snmp_log(LOG_ERR, "SQL Error %u (%s): %s\n",
-                 mysql_stmt_errno(stmt), mysql_stmt_sqlstate(stmt),
-                 mysql_stmt_error(stmt));
-    }
-    
-    if (CR_SERVER_GONE_ERROR == err)
-        netsnmp_sql_disconnected();
-}
-
-/*
- * sql cleanup function, called at exit
- */
-static void
-netsnmp_mysql_cleanup(void)
-{
-    DEBUGMSGTL(("sql:cleanup"," called\n"));
-
-    /** unregister alarm */
-    if (_sql.alarm_id)
-        snmp_alarm_unregister(_sql.alarm_id);
-
-    /** save any queued traps */
-    if (CONTAINER_SIZE(_sql.queue))
-        _sql_process_queue(0,NULL);
-
-    CONTAINER_FREE(_sql.queue);
-    _sql.queue = NULL;
-
-    if (_sql.trap_stmt) {
-        mysql_stmt_close(_sql.trap_stmt);
-        _sql.trap_stmt = NULL;
-    }
-    if (_sql.vb_stmt) {
-        mysql_stmt_close(_sql.vb_stmt);
-        _sql.vb_stmt = NULL;
-    }
-    
-    /** disconnect from server */
-    netsnmp_sql_disconnected();
-
-    if (_sql.conn) {
-        mysql_close(_sql.conn);
-        _sql.conn = NULL;
-    }
-
-    mysql_library_end();
-}
-
-/*
- * setup (initialize, prepare and bind) a prepared statement
- */
-static int
-netsnmp_mysql_bind(const char *text, size_t text_size, MYSQL_STMT **stmt,
-                   MYSQL_BIND *bind)
-{
-    if ((NULL == text) || (NULL == stmt) || (NULL == bind)) {
-        snmp_log(LOG_ERR,"invalid paramaters to netsnmp_mysql_bind()\n");
-        return -1;
-    }
-
-    *stmt = mysql_stmt_init(_sql.conn);
-    if (NULL == *stmt) {
-        netsnmp_sql_error("could not initialize trap statement handler");
-        return -1;
-    }
-
-    if (mysql_stmt_prepare(*stmt, text, text_size) != 0) {
-        netsnmp_sql_stmt_error(*stmt, "Could not prepare INSERT");
-        mysql_stmt_close(*stmt);
-        *stmt = NULL;
-        return -1;
-    }
-
-    return 0;
-}
-
-/*
- * connect to the database and do initial setup
- */
-static int
-netsnmp_mysql_connect(void)
-{
-    char trap_stmt[] = "INSERT INTO notifications "
-        "(date_time, host, auth, type, version, request_id, snmpTrapOID, transport, security_model, v3msgid, v3security_level, v3context_name, v3context_engine, v3security_name, v3security_engine) "
-        "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
-    char vb_stmt[] = "INSERT INTO varbinds "
-        "(trap_id, oid, type, value) VALUES (?,?,?,?)";
-
-    /** initialize connection handler */
-    if (_sql.connected)
-        return 0;
-
-    DEBUGMSGTL(("sql:connection","connecting\n"));
-
-    /** connect to server */
-    if (mysql_real_connect (_sql.conn, _sql.host_name, _sql.user_name,
-                            _sql.password, _sql.db_name, _sql.port_num,
-                            _sql.socket_name, _sql.flags) == NULL) {
-        netsnmp_sql_error("mysql_real_connect() failed");
-        goto err;
-    }
-    _sql.connected = 1;
-
-    /** disable autocommit */
-    if(0 != mysql_autocommit(_sql.conn, 0)) {
-        netsnmp_sql_error("mysql_autocommit(0) failed");
-        goto err;
-    }
-
-    netsnmp_assert((_sql.trap_stmt == NULL) && (_sql.vb_stmt == NULL));
-
-    /** prepared statement for inserts */
-    if (0 != netsnmp_mysql_bind(trap_stmt,sizeof(trap_stmt), &_sql.trap_stmt,
-                                _tbind))
-        goto err;
-
-    if (0 != netsnmp_mysql_bind(vb_stmt,sizeof(vb_stmt),&_sql.vb_stmt,
-                                _vbind)) {
-        mysql_stmt_close(_sql.trap_stmt);
-        _sql.trap_stmt = NULL;
-        goto err;
-    }
-
-    return 0;
-
-  err:
-    if (_sql.connected)
-        _sql.connected = 0;
-
-    return -1;
-}
-
-/** one-time initialization for mysql */
-int
-netsnmp_mysql_init(void)
-{
-    int not_argc = 0, i;
-    char *not_args[] = { NULL };
-    char **not_argv = not_args;
-    netsnmp_trapd_handler *traph;
-
-    DEBUGMSGTL(("sql:init","called\n"));
-
-    /** negative or 0 interval disables sql logging */
-    if (_sql.queue_interval <= 0) {
-        DEBUGMSGTL(("sql:init",
-                    "mysql not enabled (sqlSaveInterval is <= 0)\n"));
-        return 0;
-    }
-
-    /** create queue for storing traps til they are written to the db */
-    _sql.queue = netsnmp_container_find("fifo");
-    if (NULL == _sql.queue) {
-        snmp_log(LOG_ERR, "Could not allocate sql buf container\n");
-        return -1;
-    }
-
-#ifdef HAVE_BROKEN_LIBMYSQLCLIENT
-    my_init();
-#else
-    MY_INIT("snmptrapd");
-#endif
-
-    /** load .my.cnf values */
-    load_defaults ("my", _sql.groups, &not_argc, &not_argv);
-    for(i=0; i < not_argc; ++i) {
-        if (NULL == not_argv[i])
-            continue;
-        if (strncmp(not_argv[i],"--password=",11) == 0)
-            _sql.password = &not_argv[i][11];
-        else if (strncmp(not_argv[i],"--host=",7) == 0)
-            _sql.host_name = &not_argv[i][7];
-        else if (strncmp(not_argv[i],"--user=",7) == 0)
-            _sql.user_name = &not_argv[i][7];
-        else if (strncmp(not_argv[i],"--port=",7) == 0)
-            _sql.port_num = atoi(&not_argv[i][7]);
-        else if (strncmp(not_argv[i],"--socket=",9) == 0)
-            _sql.socket_name = &not_argv[i][9];
-        else
-            snmp_log(LOG_WARNING, "unknown argument[%d] %s\n", i, not_argv[i]);
-    }
-
-    /** init bind structures */
-    memset(_tbind, 0x0, sizeof(_tbind));
-    memset(_vbind, 0x0, sizeof(_vbind));
-
-    /** trap static bindings */
-    _tbind[TBIND_HOST].buffer_type = MYSQL_TYPE_STRING;
-    _tbind[TBIND_HOST].length = &_tbind[TBIND_HOST].buffer_length;
-
-    _tbind[TBIND_OID].buffer_type = MYSQL_TYPE_STRING;
-    _tbind[TBIND_OID].length = &_tbind[TBIND_OID].buffer_length;
-
-    _tbind[TBIND_REQID].buffer_type = MYSQL_TYPE_LONG;
-    _tbind[TBIND_REQID].is_unsigned = 1;
-
-    _tbind[TBIND_VER].buffer_type = MYSQL_TYPE_SHORT;
-    _tbind[TBIND_VER].is_unsigned = 1;
-
-    _tbind[TBIND_TYPE].buffer_type = MYSQL_TYPE_SHORT;
-    _tbind[TBIND_TYPE].is_unsigned = 1;
-
-    _tbind[TBIND_DATE].buffer_type = MYSQL_TYPE_DATETIME;
-
-    _tbind[TBIND_USER].buffer_type = MYSQL_TYPE_STRING;
-    _tbind[TBIND_USER].length = &_tbind[TBIND_USER].buffer_length;
-
-    _tbind[TBIND_TRANSPORT].buffer_type = MYSQL_TYPE_STRING;
-    _tbind[TBIND_TRANSPORT].length = &_tbind[TBIND_TRANSPORT].buffer_length;
-
-    _tbind[TBIND_SECURITY_MODEL].buffer_type = MYSQL_TYPE_SHORT;
-    _tbind[TBIND_SECURITY_MODEL].is_unsigned = 1;
-
-    _tbind[TBIND_v3_MSGID].buffer_type = MYSQL_TYPE_LONG;
-    _tbind[TBIND_v3_MSGID].is_unsigned = 1;
-    _tbind[TBIND_v3_SECURITY_LEVEL].buffer_type = MYSQL_TYPE_SHORT;
-    _tbind[TBIND_v3_SECURITY_LEVEL].is_unsigned = 1;
-    _tbind[TBIND_v3_CONTEXT_NAME].buffer_type = MYSQL_TYPE_STRING;
-    _tbind[TBIND_v3_CONTEXT_ENGINE].buffer_type = MYSQL_TYPE_STRING;
-    _tbind[TBIND_v3_SECURITY_NAME].buffer_type = MYSQL_TYPE_STRING;
-    _tbind[TBIND_v3_SECURITY_NAME].length =
-        &_tbind[TBIND_v3_SECURITY_NAME].buffer_length;
-    _tbind[TBIND_v3_CONTEXT_NAME].length =
-        &_tbind[TBIND_v3_CONTEXT_NAME].buffer_length;
-    _tbind[TBIND_v3_SECURITY_ENGINE].buffer_type = MYSQL_TYPE_STRING;
-    _tbind[TBIND_v3_SECURITY_ENGINE].length =
-        &_tbind[TBIND_v3_SECURITY_ENGINE].buffer_length;
-    _tbind[TBIND_v3_CONTEXT_ENGINE].length =
-        &_tbind[TBIND_v3_CONTEXT_ENGINE].buffer_length;
-
-    _tbind[TBIND_v3_MSGID].is_null =
-        _tbind[TBIND_v3_SECURITY_LEVEL].is_null =
-        _tbind[TBIND_v3_CONTEXT_NAME].is_null =
-        _tbind[TBIND_v3_CONTEXT_ENGINE].is_null =
-        _tbind[TBIND_v3_SECURITY_NAME].is_null =
-        _tbind[TBIND_v3_SECURITY_ENGINE].is_null = &_no_v3;
-    
-    /** variable static bindings */
-    _vbind[VBIND_ID].buffer_type = MYSQL_TYPE_LONG;
-    _vbind[VBIND_ID].is_unsigned = 1;
-
-    _vbind[VBIND_OID].buffer_type = MYSQL_TYPE_STRING;
-    _vbind[VBIND_OID].length = &_vbind[VBIND_OID].buffer_length;
-
-    _vbind[VBIND_TYPE].buffer_type = MYSQL_TYPE_SHORT;
-    _vbind[VBIND_TYPE].is_unsigned = 1;
-
-#ifdef NETSNMP_MYSQL_TRAP_VALUE_TEXT
-    _vbind[VBIND_VAL].buffer_type = MYSQL_TYPE_STRING;
-#else
-    _vbind[VBIND_VAL].buffer_type = MYSQL_TYPE_BLOB;
-#endif
-    _vbind[VBIND_VAL].length = &_vbind[VBIND_VAL].buffer_length;
-
-    _sql.conn = mysql_init (NULL);
-    if (_sql.conn == NULL) {
-        netsnmp_sql_error("mysql_init() failed (out of memory?)");
-        return -1;
-    }
-
-    /** try to connect; we'll try again later if we fail */
-    (void) netsnmp_mysql_connect();
-
-    /** register periodic queue save */
-    _sql.alarm_id = snmp_alarm_register(_sql.queue_interval, /* seconds */
-                                        1,                   /* repeat */
-                                        _sql_process_queue,  /* function */
-                                        NULL);               /* client args */
-
-    /** add handler */
-    traph = netsnmp_add_global_traphandler(NETSNMPTRAPD_PRE_HANDLER,
-                                           mysql_handler);
-    if (NULL == traph) {
-        snmp_log(LOG_ERR, "Could not allocate sql trap handler\n");
-        return -1;
-    }
-    traph->authtypes = TRAP_AUTH_LOG;
-
-    atexit(netsnmp_mysql_cleanup);
-    return 0;
-}
-
-/*
- * log CSV version of trap.
- * dontcare param is there so this function can be passed directly
- * to CONTAINER_FOR_EACH.
- */
-static void
-_sql_log(sql_buf *sqlb, void* dontcare)
-{
-    netsnmp_iterator     *it;
-    sql_vb_buf           *sqlvb;
-
-    if ((NULL == sqlb) || sqlb->logged)
-        return;
-
-    /*
-     * log trap info
-     * nothing done to protect against data insertion attacks with
-     * respect to bad data (commas, newlines, etc)
-     */
-    snmp_log(LOG_ERR,
-             "trap:%d-%d-%d %d:%d:%d,%s,%d,%d,%d,%s,%s,%d,%d,%d,%s,%s,%s,%s\n",
-             sqlb->time.year,sqlb->time.month,sqlb->time.day,
-             sqlb->time.hour,sqlb->time.minute,sqlb->time.second,
-             sqlb->user,
-             sqlb->type, sqlb->version, sqlb->reqid, sqlb->oid,
-             sqlb->transport, sqlb->security_model, sqlb->msgid,
-             sqlb->security_level, sqlb->context,
-             sqlb->context_engine, sqlb->security_name,
-             sqlb->security_engine);
-
-    sqlb->logged = 1; /* prevent multiple logging */
-
-    it = CONTAINER_ITERATOR(sqlb->varbinds);
-    if (NULL == it) {
-        snmp_log(LOG_ERR,
-                 "error creating iterator; incomplete trap logged\n");
-        return;
-    }
-
-    /** log varbind info */
-    for( sqlvb = ITERATOR_FIRST(it); sqlvb; sqlvb = ITERATOR_NEXT(it)) {
-#ifdef NETSNMP_MYSQL_TRAP_VALUE_TEXT
-        snmp_log(LOG_ERR,"varbind:%s,%s\n", sqlvb->oid, sqlvb->val);
-#else
-        char *hex;
-        int len = binary_to_hex(sqlvb->val, sqlvb->val_len, &hex);
-        if (hex) {
-            snmp_log(LOG_ERR,"varbind:%d,%s,%s\n", sqlvb->oid, hex);
-            free(hex);
-        }
-        else {
-            snmp_log(LOG_ERR,"malloc failed for varbind hex value\n");
-            snmp_log(LOG_ERR,"varbind:%s,\n", sqlvb->oid);
-        }
-#endif
-    }
-    ITERATOR_RELEASE(it);
-   
-}
-
-/*
- * free a buffer
- * dontcare param is there so this function can be passed directly
- * to CONTAINER_FOR_EACH.
- */
-static void
-_sql_vb_buf_free(sql_vb_buf *sqlvb, void* dontcare)
-{
-    if (NULL == sqlvb)
-        return;
-
-    SNMP_FREE(sqlvb->oid);
-    SNMP_FREE(sqlvb->val);
-
-    free(sqlvb);
-}
-
-/*
- * free a buffer
- * dontcare param is there so this function can be passed directly
- * to CONTAINER_FOR_EACH.
- */
-static void
-_sql_buf_free(sql_buf *sqlb, void* dontcare)
-{
-    if (NULL == sqlb)
-        return;
-
-    /** do varbinds first */
-    if (sqlb->varbinds) {
-        CONTAINER_CLEAR(sqlb->varbinds,
-                        (netsnmp_container_obj_func*)_sql_vb_buf_free, NULL);
-        CONTAINER_FREE(sqlb->varbinds);
-    }
-
-    SNMP_FREE(sqlb->host);
-    SNMP_FREE(sqlb->oid);
-    SNMP_FREE(sqlb->user);
-
-    SNMP_FREE(sqlb->context);
-    SNMP_FREE(sqlb->security_name);
-    SNMP_FREE(sqlb->context_engine);
-    SNMP_FREE(sqlb->security_engine);
-    SNMP_FREE(sqlb->transport);
-
-    free(sqlb);
-}
-
-/*
- * allocate buffer to store trap and varbinds
- */
-static sql_buf *
-_sql_buf_get(void)
-{
-    sql_buf *sqlb;
-
-    /** buffer for trap info */
-    sqlb = SNMP_MALLOC_TYPEDEF(sql_buf);
-    if (NULL == sqlb)
-        return NULL;
-    
-    /** fifo for varbinds */
-    sqlb->varbinds = netsnmp_container_find("fifo");
-    if (NULL == sqlb->varbinds) {
-        free(sqlb);
-        return NULL;
-    }
-
-    return sqlb;
-}
-
-/*
- * save info from incoming trap
- *
- * return 0 on success, anything else is an error
- */
-static int
-_sql_save_trap_info(sql_buf *sqlb, netsnmp_pdu  *pdu,
-                    netsnmp_transport     *transport)
-{
-    static oid   trapoids[] = { 1, 3, 6, 1, 6, 3, 1, 1, 5, 0 };
-    oid         *trap_oid, tmp_oid[MAX_OID_LEN];
-    time_t       now;
-    struct tm   *cur_time;
-    size_t       tmp_size;
-    size_t       buf_host_len_t, buf_oid_len_t, buf_user_len_t;
-    int          oid_overflow, trap_oid_len;
-    netsnmp_variable_list *vars;
-
-    if ((NULL == sqlb) || (NULL == pdu) || (NULL == transport))
-        return -1;
-
-    DEBUGMSGTL(("sql:queue", "queueing incoming trap\n"));
-
-    /** time */
-    (void) time(&now);
-    cur_time = localtime(&now);
-    sqlb->time.year = cur_time->tm_year + 1900;
-    sqlb->time.month = cur_time->tm_mon + 1;
-    sqlb->time.day = cur_time->tm_mday;
-    sqlb->time.hour = cur_time->tm_hour;
-    sqlb->time.minute = cur_time->tm_min;
-    sqlb->time.second = cur_time->tm_sec;
-    sqlb->time.second_part = 0;
-    sqlb->time.neg = 0;
-
-    /** host name */
-    buf_host_len_t = 0;
-    tmp_size = sizeof(sqlb->host);
-    realloc_format_trap((u_char**)&sqlb->host, &tmp_size,
-                        &buf_host_len_t, 1, "%B", pdu, transport);
-    sqlb->host_len = buf_host_len_t;
-
-    /* snmpTrapOID */
-    if (pdu->command == SNMP_MSG_TRAP) {
-        /*
-         * convert a v1 trap to a v2 varbind
-         */
-        if (pdu->trap_type == SNMP_TRAP_ENTERPRISESPECIFIC) {
-            trap_oid_len = pdu->enterprise_length;
-            memcpy(tmp_oid, pdu->enterprise, sizeof(oid) * trap_oid_len);
-            if (tmp_oid[trap_oid_len - 1] != 0)
-                tmp_oid[trap_oid_len++] = 0;
-            tmp_oid[trap_oid_len++] = pdu->specific_type;
-            trap_oid = tmp_oid;
-        } else {
-            trapoids[9] = pdu->trap_type + 1;
-            trap_oid = trapoids;
-            trap_oid_len = OID_LENGTH(trapoids);
-        }
-    }
-    else {
-        vars = pdu->variables;
-        if (vars && vars->next_variable) {
-            trap_oid_len = vars->next_variable->val_len / sizeof(oid);
-            trap_oid = vars->next_variable->val.objid;
-        }
-        else {
-            static oid null_oid[] = { 0, 0 };
-            trap_oid_len = OID_LENGTH(null_oid);
-            trap_oid = null_oid;
-        }
-    }
-    tmp_size = 0;
-    buf_oid_len_t = oid_overflow = 0;
-    netsnmp_sprint_realloc_objid_tree((u_char**)&sqlb->oid,&tmp_size,
-                                      &buf_oid_len_t, 1, &oid_overflow,
-                                      trap_oid, trap_oid_len);
-    sqlb->oid_len = buf_oid_len_t;
-    if (oid_overflow)
-        snmp_log(LOG_WARNING,"OID truncated in sql buffer\n");
-
-    /** request id */
-    sqlb->reqid = pdu->reqid;
-
-    /** version (convert to 1 based, for sql enum) */
-    sqlb->version = pdu->version + 1;
-
-    /** command type (convert to 1 based, for sql enum) */
-    sqlb->type = pdu->command - 159;
-
-    /** community string/user name */
-    tmp_size = 0;
-    buf_user_len_t = 0;
-    realloc_format_trap((u_char**)&sqlb->user, &tmp_size,
-                        &buf_user_len_t, 1, "%u", pdu, transport);
-    sqlb->user_len = buf_user_len_t;
-
-    /** transport */
-    sqlb->transport = transport->f_fmtaddr(transport, pdu->transport_data,
-                                           pdu->transport_data_length);
-
-    /** security model */
-    sqlb->security_model = pdu->securityModel;
-
-    if ((SNMP_MP_MODEL_SNMPv3+1) == sqlb->version) {
-
-        sqlb->msgid = pdu->msgid;
-        sqlb->security_level = pdu->securityLevel;
-
-        if (pdu->contextName) {
-            sqlb->context = netsnmp_strdup_and_null((u_char*)pdu->contextName,
-                                                    pdu->contextNameLen);
-            sqlb->context_len = pdu->contextNameLen;
-        }
-        if (pdu->contextEngineID) {
-            sqlb->context_engine_len = 
-                binary_to_hex(pdu->contextEngineID, pdu->contextEngineIDLen,
-                              &sqlb->context_engine);
-        }
-
-        if (pdu->securityName) {
-            sqlb->security_name =
-                netsnmp_strdup_and_null((u_char*)pdu->securityName,
-                                        pdu->securityNameLen);
-            sqlb->security_name_len = pdu->securityNameLen;
-        }
-        if (pdu->securityEngineID) {
-            sqlb->security_engine_len = 
-                binary_to_hex(pdu->securityEngineID, pdu->securityEngineIDLen,
-                              &sqlb->security_engine);
-        }
-    }
-
-    return 0;
-}
-
-/*
- * save varbind info from incoming trap
- *
- * return 0 on success, anything else is an error
- */
-static int
-_sql_save_varbind_info(sql_buf *sqlb, netsnmp_pdu  *pdu)
-{
-    netsnmp_variable_list *var;
-    sql_vb_buf       *sqlvb;
-    size_t            tmp_size, buf_oid_len_t;
-    int               oid_overflow, rc;
-#ifdef NETSNMP_MYSQL_TRAP_VALUE_TEXT
-    size_t            buf_val_len_t;
-#endif
-
-    if ((NULL == sqlb) || (NULL == pdu))
-        return -1;
-
-    var = pdu->variables;
-    while(var) {
-        sqlvb = SNMP_MALLOC_TYPEDEF(sql_vb_buf);
-        if (NULL == sqlvb)
-            break;
-
-        /** OID */
-        tmp_size = 0;
-        buf_oid_len_t = oid_overflow = 0;
-        netsnmp_sprint_realloc_objid_tree((u_char**)&sqlvb->oid, &tmp_size,
-                                          &buf_oid_len_t,
-                                          1, &oid_overflow, var->name,
-                                          var->name_length);
-        sqlvb->oid_len = buf_oid_len_t;
-        if (oid_overflow)
-            snmp_log(LOG_WARNING,"OID truncated in sql insert\n");
-        
-        /** type */
-        if (var->type > ASN_OBJECT_ID)
-            /** convert application types to sql enum */
-            sqlvb->type = ASN_OBJECT_ID + 1 + (var->type & ~ASN_APPLICATION);
-        else
-            sqlvb->type = var->type;
-
-        /** value */
-#ifdef NETSNMP_MYSQL_TRAP_VALUE_TEXT
-        tmp_size = 0;
-        buf_val_len_t = 0;
-        sprint_realloc_by_type((u_char**)&sqlvb->val, &tmp_size,
-                               &buf_val_len_t, 1, var, 0, 0, 0);
-        sqlvb->val_len = buf_val_len_t;
-#else
-        memdup(&sqlvb->val, var->val.string, var->val_len);
-        sqlvb->val_len = var->val_len;
-#endif
-
-        var = var->next_variable;
-
-        /** insert into container */
-        rc = CONTAINER_INSERT(sqlb->varbinds,sqlvb);
-        if(rc)
-            snmp_log(LOG_ERR, "couldn't insert varbind into trap container\n");
-    }
-
-    return 0;
-}
-
-/*
- * sql trap handler
- */
-int
-mysql_handler(netsnmp_pdu           *pdu,
-              netsnmp_transport     *transport,
-              netsnmp_trapd_handler *handler)
-{
-    sql_buf     *sqlb;
-    int          old_format, rc;
-
-    DEBUGMSGTL(("sql:handler", "called\n"));
-
-    /** allocate a buffer to save data */
-    sqlb = _sql_buf_get();
-    if (NULL == sqlb) {
-        snmp_log(LOG_ERR, "Could not allocate trap sql buffer\n");
-        return syslog_handler( pdu, transport, handler );
-    }
-
-    /** save OID output format and change to numeric */
-    old_format = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID,
-                                    NETSNMP_DS_LIB_OID_OUTPUT_FORMAT);
-    netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_OID_OUTPUT_FORMAT,
-                       NETSNMP_OID_OUTPUT_NUMERIC);
-
-
-    rc = _sql_save_trap_info(sqlb, pdu, transport);
-    rc = _sql_save_varbind_info(sqlb, pdu);
-
-    /** restore previous OID output format */
-    netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_OID_OUTPUT_FORMAT,
-                       old_format);
-
-    /** insert into queue */
-    rc = CONTAINER_INSERT(_sql.queue, sqlb);
-    if(rc) {
-        snmp_log(LOG_ERR, "Could not log queue sql trap buffer\n");
-        _sql_log(sqlb, NULL);
-        _sql_buf_free(sqlb, 0);
-        return -1;
-    }
-
-    /** save queue if size is > max */
-    if (CONTAINER_SIZE(_sql.queue) >= _sql.queue_max)
-        _sql_process_queue(0,NULL);
-
-    return 0;
-}
-
-/*
- * save a buffered trap to sql database
- */
-static void
-_sql_save(sql_buf *sqlb, void *dontcare)
-{
-    netsnmp_iterator     *it;
-    sql_vb_buf           *sqlvb;
-    u_long                trap_id;
-
-    /*
-     * don't even try if we don't have a database connection
-     */
-    if (0 == _sql.connected) {
-        _sql_log(sqlb, NULL);
-        return;
-    }
-
-    /*
-     * the prepared statements are bound to the static buffer objects,
-     * so copy the queued data to the static version.
-     */
-    _tbind[TBIND_HOST].buffer = sqlb->host;
-    _tbind[TBIND_HOST].buffer_length = sqlb->host_len;
-
-    _tbind[TBIND_OID].buffer = sqlb->oid;
-    _tbind[TBIND_OID].buffer_length = sqlb->oid_len;
-
-    _tbind[TBIND_REQID].buffer = (void *)&sqlb->reqid;
-    _tbind[TBIND_VER].buffer = (void *)&sqlb->version;
-    _tbind[TBIND_TYPE].buffer = (void *)&sqlb->type;
-    _tbind[TBIND_SECURITY_MODEL].buffer = (void *)&sqlb->security_model;
-
-    _tbind[TBIND_DATE].buffer = (void *)&sqlb->time;
-
-    _tbind[TBIND_USER].buffer = sqlb->user;
-    _tbind[TBIND_USER].buffer_length = sqlb->user_len;
-
-    _tbind[TBIND_TRANSPORT].buffer = sqlb->transport;
-    if (sqlb->transport)
-        _tbind[TBIND_TRANSPORT].buffer_length = strlen(sqlb->transport);
-    else
-        _tbind[TBIND_TRANSPORT].buffer_length = 0;
-
-
-    if ((SNMP_MP_MODEL_SNMPv3+1) == sqlb->version) {
-        _no_v3 = 0;
-
-        _tbind[TBIND_v3_MSGID].buffer = &sqlb->msgid;
-        
-        _tbind[TBIND_v3_SECURITY_LEVEL].buffer = &sqlb->security_level;
-        
-        _tbind[TBIND_v3_CONTEXT_NAME].buffer = sqlb->context;
-        _tbind[TBIND_v3_CONTEXT_NAME].buffer_length = sqlb->context_len;
-
-        _tbind[TBIND_v3_CONTEXT_ENGINE].buffer = sqlb->context_engine;
-        _tbind[TBIND_v3_CONTEXT_ENGINE].buffer_length =
-            sqlb->context_engine_len;
-
-        _tbind[TBIND_v3_SECURITY_NAME].buffer = sqlb->security_name;
-        _tbind[TBIND_v3_SECURITY_NAME].buffer_length = sqlb->security_name_len;
-
-        _tbind[TBIND_v3_SECURITY_ENGINE].buffer = sqlb->security_engine;
-        _tbind[TBIND_v3_SECURITY_ENGINE].buffer_length =
-            sqlb->security_engine_len;
-    }
-    else {
-        _no_v3 = 1;
-    }
-
-    if (mysql_stmt_bind_param(_sql.trap_stmt, _tbind) != 0) {
-        netsnmp_sql_stmt_error(_sql.trap_stmt,
-                               "Could not bind parameters for INSERT");
-        _sql_log(sqlb, NULL);
-        return;
-    }
-
-    /** execute the prepared statement */
-    if (mysql_stmt_execute(_sql.trap_stmt) != 0) {
-        netsnmp_sql_stmt_error(_sql.trap_stmt,
-                               "Could not execute insert statement for trap");
-        _sql_log(sqlb, NULL);
-        return;
-    }
-    trap_id = mysql_insert_id(_sql.conn);
-
-    /*
-     * iterate over the varbinds, copy data and insert
-     */
-    it = CONTAINER_ITERATOR(sqlb->varbinds);
-    if (NULL == it) {
-        snmp_log(LOG_ERR,"Could not allocate iterator\n");
-        _sql_log(sqlb, NULL);
-        return;
-    }
-
-    for( sqlvb = ITERATOR_FIRST(it); sqlvb; sqlvb = ITERATOR_NEXT(it)) {
-
-        _vbind[VBIND_ID].buffer = (void *)&trap_id;
-        _vbind[VBIND_TYPE].buffer = (void *)&sqlvb->type;
-
-        _vbind[VBIND_OID].buffer = sqlvb->oid;
-        _vbind[VBIND_OID].buffer_length = sqlvb->oid_len;
-
-        _vbind[VBIND_VAL].buffer = sqlvb->val;
-        _vbind[VBIND_VAL].buffer_length = sqlvb->val_len;
-
-        if (mysql_stmt_bind_param(_sql.vb_stmt, _vbind) != 0) {
-            netsnmp_sql_stmt_error(_sql.vb_stmt,
-                                   "Could not bind parameters for INSERT");
-            _sql_log(sqlb, NULL);
-            break;
-        }
-
-        if (mysql_stmt_execute(_sql.vb_stmt) != 0) {
-            netsnmp_sql_stmt_error(_sql.vb_stmt,
-                                   "Could not execute insert statement for varbind");
-            _sql_log(sqlb, NULL);
-            break;
-        }
-    }
-    ITERATOR_RELEASE(it);
-}
-
-/*
- * process (save) queued items to sql database.
- *
- * dontcare & meeither are dummy params so this function can be used
- * as a netsnmp_alarm callback function.
- */
-static void
-_sql_process_queue(u_int dontcare, void *meeither)
-{
-    int        rc;
-
-    /** bail if the queue is empty */
-    if( 0 == CONTAINER_SIZE(_sql.queue))
-        return;
-
-    DEBUGMSGT(("sql:process", "processing %d queued traps\n",
-               (int)CONTAINER_SIZE(_sql.queue)));
-
-    /*
-     * if we don't have a database connection, try to reconnect. We
-     * don't care if we fail - traps will be logged in that case.
-     */
-    if (0 == _sql.connected) {
-        DEBUGMSGT(("sql:process", "no sql connection; reconnecting\n"));
-        (void) netsnmp_mysql_connect();
-    }
-
-    CONTAINER_FOR_EACH(_sql.queue, (netsnmp_container_obj_func*)_sql_save,
-                       NULL);
-
-    if (_sql.connected) {
-        rc = mysql_commit(_sql.conn);
-        if (rc) { /* nuts... now what? */
-            netsnmp_sql_error("commit failed");
-            CONTAINER_FOR_EACH(_sql.queue,
-                               (netsnmp_container_obj_func*)_sql_log,
-                               NULL);
-        }
-    }
-
-    CONTAINER_CLEAR(_sql.queue, (netsnmp_container_obj_func*)_sql_buf_free,
-                    NULL);
-}
-
-#else
-int unused;	/* Suppress "empty translation unit" warning */
-#endif /* NETSNMP_USE_MYSQL */
diff --git a/apps/snmpusm.c b/apps/snmpusm.c
index 42919bd..01553f9 100644
--- a/apps/snmpusm.c
+++ b/apps/snmpusm.c
@@ -36,7 +36,11 @@
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -48,6 +52,9 @@
 #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
@@ -55,9 +62,9 @@
 #include <arpa/inet.h>
 #endif
 
-#if defined(HAVE_OPENSSL_DH_H) && defined(HAVE_LIBCRYPTO)
+#ifdef HAVE_OPENSSL_DH_H
 #include <openssl/dh.h>
-#endif /* HAVE_OPENSSL_DH_H && HAVE_LIBCRYPTO */
+#endif
 
 #include <net-snmp/net-snmp-includes.h>
 
@@ -105,11 +112,9 @@ usmUserPublic[MAX_OID_LEN] = {1, 3, 6, 1, 6, 3, 15, 1, 2, 2, 1, 11},
 usmUserStatus[MAX_OID_LEN] = {1, 3, 6, 1, 6, 3, 15, 1, 2, 2, 1, 13},
 /* diffie helman change key objects */
 usmDHUserAuthKeyChange[MAX_OID_LEN] = {1, 3, 6, 1, 3, 101, 1, 1, 2, 1, 1 },
-usmDHUserPrivKeyChange[MAX_OID_LEN] = {1, 3, 6, 1, 3, 101, 1, 1, 2, 1, 3 },
-#if defined(HAVE_OPENSSL_DH_H) && defined(HAVE_LIBCRYPTO)
 usmDHUserOwnAuthKeyChange[MAX_OID_LEN] = {1, 3, 6, 1, 3, 101, 1, 1, 2, 1, 2 },
+usmDHUserPrivKeyChange[MAX_OID_LEN] = {1, 3, 6, 1, 3, 101, 1, 1, 2, 1, 3 },
 usmDHUserOwnPrivKeyChange[MAX_OID_LEN] = {1, 3, 6, 1, 3, 101, 1, 1, 2, 1, 4 },
-#endif /* HAVE_OPENSSL_DH_H && HAVE_LIBCRYPTO */
 usmDHParameters[] = { 1,3,6,1,3,101,1,1,1,0 }
 ;
 size_t usmDHParameters_len = OID_LENGTH(usmDHParameters);
@@ -122,7 +127,6 @@ int             doauthkey = 0, doprivkey = 0, uselocalizedkey = 0;
 size_t          usmUserEngineIDLen = 0;
 u_char         *usmUserEngineID = NULL;
 char           *usmUserPublic_val = NULL;
-int             docreateandwait = 0;
 
 
 void
@@ -133,21 +137,19 @@ usage(void)
     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]               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] 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] [-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-PASS NEW-KEY-OR-PASS [USER]\n");
+            "  [options] (-Ca|-Cx) -Ck passwd OLD-KEY-OR-PASSPHRASE NEW-KEY-OR-PASSPHRASE [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");
@@ -193,6 +195,7 @@ get_USM_DH_key(netsnmp_variable_list *vars, netsnmp_variable_list *dhvar,
     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)
@@ -200,10 +203,9 @@ get_USM_DH_key(netsnmp_variable_list *vars, netsnmp_variable_list *dhvar,
     
     memcpy(dhkeychange, vars->val.string, vars->val_len);
 
-    {
-        const unsigned char *cp = dhvar->val.string;
-        dh = d2i_DHparams(NULL, &cp, dhvar->val_len);
-    }
+    cp = dhvar->val.string;
+    dh = d2i_DHparams(NULL, (const unsigned char **) &cp,
+                      dhvar->val_len);
 
     if (!dh || !dh->g || !dh->p) {
         SNMP_FREE(dhkeychange);
@@ -216,7 +218,7 @@ get_USM_DH_key(netsnmp_variable_list *vars, netsnmp_variable_list *dhvar,
         return SNMPERR_GENERR;
     }
             
-    if (vars->val_len != (unsigned int)BN_num_bytes(dh->pub_key)) {
+    if (vars->val_len != 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));
@@ -249,7 +251,7 @@ get_USM_DH_key(netsnmp_variable_list *vars, netsnmp_variable_list *dhvar,
 
         printf("new %s key: 0x", keyname);
         for(kp = key + key_len - outkey_len;
-            kp - key < (int)key_len;  kp++) {
+            kp - key < key_len;  kp++) {
             printf("%02x", (unsigned char) *kp);
         }
         printf("\n");
@@ -296,12 +298,8 @@ optProc(int argc, char *const *argv, int opt)
                 optind++;
                 break;
 
-            case 'w':
-                docreateandwait = 1;
-                break;
-
 	    case 'E': {
-	        size_t ebuf_len = MAX_ENGINEID_LENGTH;
+	        size_t ebuf_len = 32; /* XXX: MAX_ENGINEID_LENGTH */
                 u_char *ebuf;
                 if (optind < argc) {
                     if (argv[optind]) {
@@ -382,11 +380,9 @@ main(int argc, char *argv[])
      * 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:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
@@ -712,11 +708,7 @@ main(int argc, char *argv[])
              */
             setup_oid(usmUserStatus, &name_length,
                       usmUserEngineID, usmUserEngineIDLen, argv[arg-1]);
-            if (docreateandwait) {
-                longvar = RS_CREATEANDWAIT;
-            } else {
-                longvar = RS_CREATEANDGO;
-            }
+            longvar = RS_CREATEANDGO;
             snmp_pdu_add_variable(pdu, usmUserStatus, name_length,
                                   ASN_INTEGER, (u_char *) & longvar,
                                   sizeof(longvar));
@@ -956,7 +948,7 @@ main(int argc, char *argv[])
             vars = vars->next_variable;
         }
         /* snmp_free_pdu(dhresponse); */ /* parts still in use somewhere */
-#endif /* HAVE_OPENSSL_DH_H && HAVE_LIBCRYPTO */
+#endif /* HAVE_OPENSSL_DH_H */
     } else {
         fprintf(stderr, "Unknown command\n");
         usage();
@@ -1012,9 +1004,7 @@ main(int argc, char *argv[])
         exitval = 1;
     }
 
-#if defined(HAVE_OPENSSL_DH_H) && defined(HAVE_LIBCRYPTO)
   begone:
-#endif /* HAVE_OPENSSL_DH_H && HAVE_LIBCRYPTO */
     if (response)
         snmp_free_pdu(response);
     snmp_close(ss);
diff --git a/apps/snmpvacm.c b/apps/snmpvacm.c
index f88ede6..cf071f2 100644
--- a/apps/snmpvacm.c
+++ b/apps/snmpvacm.c
@@ -23,7 +23,11 @@
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -35,6 +39,9 @@
 #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
@@ -83,15 +90,19 @@ static const char *successNotes[CMD_NUM] = {
 
 static oid      vacmGroupName[MAX_OID_LEN] =
     { 1, 3, 6, 1, 6, 3, 16, 1, 2, 1, 3 },
-    vacmSec2GroupStatus[MAX_OID_LEN] = {
+    vacmSec2GroupStorageType[MAX_OID_LEN] = {
+1, 3, 6, 1, 6, 3, 16, 1, 2, 1, 4}, vacmSec2GroupStatus[MAX_OID_LEN] = {
 1, 3, 6, 1, 6, 3, 16, 1, 2, 1, 5}, vacmAccessContextMatch[MAX_OID_LEN] = {
 1, 3, 6, 1, 6, 3, 16, 1, 4, 1, 4}, vacmAccessReadViewName[MAX_OID_LEN] = {
 1, 3, 6, 1, 6, 3, 16, 1, 4, 1, 5}, vacmAccessWriteViewName[MAX_OID_LEN] = {
 1, 3, 6, 1, 6, 3, 16, 1, 4, 1, 6}, vacmAccessNotifyViewName[MAX_OID_LEN] = {
-1, 3, 6, 1, 6, 3, 16, 1, 4, 1, 7}, vacmAccessStatus[MAX_OID_LEN] = {
+1, 3, 6, 1, 6, 3, 16, 1, 4, 1, 7}, vacmAccessStorageType[MAX_OID_LEN] = {
+1, 3, 6, 1, 6, 3, 16, 1, 4, 1, 8}, vacmAccessStatus[MAX_OID_LEN] = {
 1, 3, 6, 1, 6, 3, 16, 1, 4, 1, 9}, vacmViewTreeFamilyMask[MAX_OID_LEN] = {
 1, 3, 6, 1, 6, 3, 16, 1, 5, 2, 1, 3}, vacmViewTreeFamilyType[MAX_OID_LEN] = {
 1, 3, 6, 1, 6, 3, 16, 1, 5, 2, 1, 4},
+    vacmViewTreeFamilyStorageType[MAX_OID_LEN] = {
+1, 3, 6, 1, 6, 3, 16, 1, 5, 2, 1, 5},
     vacmViewTreeFamilyStatus[MAX_OID_LEN] = {
 1, 3, 6, 1, 6, 3, 16, 1, 5, 2, 1, 6}
 
@@ -100,6 +111,7 @@ static oid      vacmGroupName[MAX_OID_LEN] =
 #define NSVACMACCESSTABLE    1, 3, 6, 1, 4, 1, 8072, 1, 9, 1
 static oid nsVacmContextPfx[MAX_OID_LEN]  = { NSVACMACCESSTABLE, 1, 2 };
 static oid nsVacmViewName[MAX_OID_LEN]    = { NSVACMACCESSTABLE, 1, 3 };
+static oid nsVacmStorageType[MAX_OID_LEN] = { NSVACMACCESSTABLE, 1, 4 };
 static oid nsVacmRowStatus[MAX_OID_LEN]   = { NSVACMACCESSTABLE, 1, 5 };
 
 int             viewTreeFamilyType = 1;
@@ -272,8 +284,7 @@ main(int argc, char *argv[])
     int             exitval = 0;
     int             command = 0;
     long            longvar;
-    int             secModel, secLevel, contextMatch;
-    unsigned int    val, i = 0;
+    int             secModel, secLevel, contextMatch, val, i = 0;
     char           *mask, *groupName, *prefix, *authtype;
     u_char          viewMask[VACMSTRINGLEN];
     char           *st;
@@ -283,11 +294,9 @@ main(int argc, char *argv[])
      * 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:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
@@ -384,7 +393,7 @@ main(int argc, char *argv[])
                 i++;
             }
 	} else {
-            for (i=0 ; i < (name_length+7)/8; i++)
+            for (i=0 ; i < ((int)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 659d7de..a54d599 100644
--- a/apps/snmpwalk.c
+++ b/apps/snmpwalk.c
@@ -42,7 +42,11 @@ SOFTWARE.
 # include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -55,6 +59,9 @@ SOFTWARE.
 #include <sys/select.h>
 #endif
 #include <stdio.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -69,13 +76,10 @@ SOFTWARE.
 #define NETSNMP_DS_WALK_DONT_CHECK_LEXICOGRAPHIC	3
 #define NETSNMP_DS_WALK_TIME_RESULTS     	        4
 #define NETSNMP_DS_WALK_DONT_GET_REQUESTED	        5
-#define NETSNMP_DS_WALK_TIME_RESULTS_SINGLE	        6
 
 oid             objid_mib[] = { 1, 3, 6, 1, 2, 1 };
 int             numprinted = 0;
 
-char           *end_name = NULL;
-
 void
 usage(void)
 {
@@ -91,10 +95,7 @@ usage(void)
     fprintf(stderr,
             "\t\t\t  c:  do not check returned OIDs are increasing\n");
     fprintf(stderr,
-            "\t\t\t  t:  Display wall-clock time to complete the walk\n");
-    fprintf(stderr,
-            "\t\t\t  T:  Display wall-clock time to complete each request\n");
-    fprintf(stderr, "\t\t\t  E {OID}:  End the walk at the specified OID\n");
+            "\t\t\t  t:  Display wall-clock time to complete the request\n");
 }
 
 void
@@ -150,15 +151,6 @@ optProc(int argc, char *const *argv, int opt)
                 netsnmp_ds_toggle_boolean(NETSNMP_DS_APPLICATION_ID,
                                           NETSNMP_DS_WALK_TIME_RESULTS);
                 break;
-
-            case 'E':
-                end_name = argv[optind++];
-                break;
-
-            case 'T':
-                netsnmp_ds_toggle_boolean(NETSNMP_DS_APPLICATION_ID,
-                                          NETSNMP_DS_WALK_TIME_RESULTS_SINGLE);
-                break;
                 
             default:
                 fprintf(stderr, "Unknown flag passed to -C: %c\n",
@@ -181,14 +173,12 @@ main(int argc, char *argv[])
     size_t          name_length;
     oid             root[MAX_OID_LEN];
     size_t          rootlen;
-    oid             end_oid[MAX_OID_LEN];
-    size_t          end_len = 0;
     int             count;
     int             running;
-    int             status = STAT_ERROR;
+    int             status;
     int             check;
     int             exitval = 0;
-    struct timeval  tv1, tv2, tv_a, tv_b;
+    struct timeval  tv1, tv2;
 
     netsnmp_ds_register_config(ASN_BOOLEAN, "snmpwalk", "includeRequested",
 			       NETSNMP_DS_APPLICATION_ID, 
@@ -208,21 +198,15 @@ main(int argc, char *argv[])
 
     netsnmp_ds_register_config(ASN_BOOLEAN, "snmpwalk", "timeResults",
                                NETSNMP_DS_APPLICATION_ID,
-                               NETSNMP_DS_WALK_TIME_RESULTS);
-
-    netsnmp_ds_register_config(ASN_BOOLEAN, "snmpwalk", "timeResultsSingle",
-                               NETSNMP_DS_APPLICATION_ID,
-                               NETSNMP_DS_WALK_TIME_RESULTS_SINGLE);
+			       NETSNMP_DS_WALK_TIME_RESULTS);
 
     /*
      * 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:
+    case -2:
         exit(0);
-    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+    case -1:
         usage();
         exit(1);
     default:
@@ -249,23 +233,6 @@ main(int argc, char *argv[])
         rootlen = sizeof(objid_mib) / sizeof(oid);
     }
 
-    /*
-     * If we've been given an explicit end point,
-     *  then convert this to an OID, otherwise
-     *  move to the next sibling of the start.
-     */
-    if ( end_name ) {
-        end_len = MAX_OID_LEN;
-        if (snmp_parse_oid(end_name, end_oid, &end_len) == NULL) {
-            snmp_perror(end_name);
-            exit(1);
-        }
-    } else {
-        memmove(end_oid, root, rootlen*sizeof(oid));
-        end_len = rootlen;
-        end_oid[end_len-1]++;
-    }
-
     SOCK_STARTUP;
 
     /*
@@ -298,7 +265,7 @@ main(int argc, char *argv[])
 
     if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
                                NETSNMP_DS_WALK_TIME_RESULTS))
-        netsnmp_get_monotonic_clock(&tv1);
+        gettimeofday(&tv1, NULL);
     while (running) {
         /*
          * create PDU for GETNEXT request and add object name to request 
@@ -309,20 +276,17 @@ main(int argc, char *argv[])
         /*
          * do the request 
          */
-        if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_WALK_TIME_RESULTS_SINGLE))
-            netsnmp_get_monotonic_clock(&tv_a);
         status = snmp_synch_response(ss, pdu, &response);
         if (status == STAT_SUCCESS) {
-            if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_WALK_TIME_RESULTS_SINGLE))
-                netsnmp_get_monotonic_clock(&tv_b);
             if (response->errstat == SNMP_ERR_NOERROR) {
                 /*
                  * check resulting variables 
                  */
                 for (vars = response->variables; vars;
                      vars = vars->next_variable) {
-                    if (snmp_oid_compare(end_oid, end_len,
-                                         vars->name, vars->name_length) <= 0) {
+                    if ((vars->name_length < rootlen)
+                        || (memcmp(root, vars->name, rootlen * sizeof(oid))
+                            != 0)) {
                         /*
                          * not part of this subtree 
                          */
@@ -330,10 +294,6 @@ main(int argc, char *argv[])
                         continue;
                     }
                     numprinted++;
-                    if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_WALK_TIME_RESULTS_SINGLE))
-                        fprintf(stdout, "%f s: ",  
-                                (double) (tv_b.tv_usec - tv_a.tv_usec)/1000000 +
-                                (double) (tv_b.tv_sec - tv_a.tv_sec));
                     print_variable(vars->name, vars->name_length, vars);
                     if ((vars->type != SNMP_ENDOFMIBVIEW) &&
                         (vars->type != SNMP_NOSUCHOBJECT) &&
@@ -402,7 +362,7 @@ main(int argc, char *argv[])
     }
     if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
                                NETSNMP_DS_WALK_TIME_RESULTS))
-        netsnmp_get_monotonic_clock(&tv2);
+        gettimeofday(&tv2, NULL);
 
     if (numprinted == 0 && status == STAT_SUCCESS) {
         /*
diff --git a/apps/sshtosnmp.c b/apps/sshtosnmp.c
deleted file mode 100644
index d26067d..0000000
--- a/apps/sshtosnmp.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/* Copyright 2009 SPARTA, Inc. All rights reserved
- * Use is subject to license terms specified in the COPYING file
- * distributed with the Net-SNMP package.
- */
-
-/*
- * This is merely a wrapper around stdin/out for sshd to call.  It
- * simply passes traffic to the running snmpd through a unix domain
- * socket after first passing any needed SSH Domain information.
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_SYS_UN_H
-#include <sys/un.h>
-#endif
-
-#include <sys/select.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <stdio.h>
-
-#ifndef MAXPATHLEN
-#warn no system max path length detected
-#define MAXPATHLEN 2048
-#endif
-
-#define DEFAULT_SOCK_PATH "/var/net-snmp/sshdomainsocket"
-
-#define NETSNMP_SSHTOSNMP_VERSION_NUMBER 1
-
-
-
-/*
- * Extra debugging output for, um, debugging.
- */
-
-#undef DEBUGGING
-
-#ifdef DEBUGGING
-#define DEBUG(x) deb(x)
-FILE *debf = NULL;
-void
-deb(const char *string) {
-    if (NULL == debf) {
-        debf = fopen("/tmp/sshtosnmp.log", "a");
-    }
-    if (NULL != debf) {
-        fprintf(debf, "%s\n", string);
-        fflush(debf);
-    }
-}
-#else  /* !DEBUGGING */
-#define DEBUG(x)
-#endif /* DEBUGGING code */
-
-int
-main(int argc, char **argv) {
-
-    int sock;
-    struct sockaddr_un addr;
-    u_char buf[4096];
-    size_t buf_len = sizeof(buf);
-    int rc = 0, pktsize = 0;
-
-    fd_set read_set;
-
-    DEBUG("----------\nstarting up");
-
-    /* Open a connection to the UNIX domain socket or fail */
-
-    addr.sun_family = AF_UNIX;
-    if (argc > 1) {
-        strcpy(addr.sun_path, argv[1]);
-    } else {
-        strcpy(addr.sun_path, DEFAULT_SOCK_PATH);
-    }
-
-    sock = socket(PF_UNIX, SOCK_STREAM, 0);
-    DEBUG("created socket");
-    if (sock <= 0) {
-        exit(1);
-    }
-
-    /* set the SO_PASSCRED option so we can pass uid */
-    /* XXX: according to the unix(1) manual this shouldn't be needed
-       on the sending side? */
-    {
-        int one = 1;
-        setsockopt(sock, SOL_SOCKET, SO_PASSCRED, (void *) &one,
-                   sizeof(one));
-    }
-
-    if (connect(sock, (struct sockaddr *) &addr,
-                sizeof(struct sockaddr_un)) != 0) {
-        DEBUG("FAIL CONNECT");
-        exit(1);
-    }
-
-    DEBUG("opened socket");
-
-    /*
-     * we are running as the user that ssh authenticated us as, and this
-     * is the name/uid that the agent needs for processing as a SNMPv3
-     * security name.  So this is the only thing needed to pass to the
-     * agent.
-     */
-
-    /* version 1 of our internal ssh to snmp wrapper is just a single
-       byte version number and indicates we're also passing unix
-       socket credentials containing our user id */
-
-    /* In case of future changes, we'll pass a version number first */
-
-    buf[0] = NETSNMP_SSHTOSNMP_VERSION_NUMBER;
-    buf_len = 1;
-    
-    /* send the prelim message and the credentials together using sendmsg() */
-    {
-        struct msghdr m;
-        struct {
-           struct cmsghdr cm;
-           struct ucred ouruser;
-        } cmsg;
-        struct iovec iov = { buf, buf_len };
-
-        /* Make sure that even padding fields get initialized.*/
-        memset(&cmsg, 0, sizeof(cmsg));
-        memset(&m, 0, sizeof(m));
-
-        /* set up the basic message */
-        cmsg.cm.cmsg_len = sizeof(struct cmsghdr) + sizeof(struct ucred);
-        cmsg.cm.cmsg_level = SOL_SOCKET;
-        cmsg.cm.cmsg_type = SCM_CREDENTIALS;
-
-        cmsg.ouruser.uid = getuid();
-        cmsg.ouruser.gid = getgid();
-        cmsg.ouruser.pid = getpid();
-
-        m.msg_iov               = &iov;
-        m.msg_iovlen            = 1;
-        m.msg_control           = &cmsg;
-        m.msg_controllen        = sizeof(cmsg);
-        m.msg_flags             = 0;
-        
-        DEBUG("sending to sock");
-        rc = sendmsg(sock, &m, MSG_NOSIGNAL|MSG_DONTWAIT);
-        if (rc < 0) {
-            fprintf(stderr, "failed to send startup message\n");
-            DEBUG("failed to send startup message\n");
-            exit(1);
-        }
-    }
-
-    DEBUG("sent name");
-    
-    /* now we just send and receive from both the socket and stdin/stdout */
-
-    while(1) {
-        /* read from stdin and the socket */
-        FD_SET(sock, &read_set);
-        FD_SET(STDIN_FILENO, &read_set);
-
-        /* blocking without a timeout be fine fine */
-        select(sock+1, &read_set, NULL, NULL, NULL);
-
-        if (FD_ISSET(STDIN_FILENO, &read_set)) {
-            /* read from stdin to get stuff from sshd to send to the agent */
-            DEBUG("data from stdin");
-            rc = read(STDIN_FILENO, buf, sizeof(buf));
-
-            if (rc <= 0) {
-                /* end-of-file */
-#ifndef HAVE_CLOSESOCKET
-                rc = close(sock);
-#else
-                rc = closesocket(sock);
-#endif
-                exit(0);
-            }
-            DEBUG("read from stdin");
-
-            /* send it up the pipe */
-            pktsize = rc;
-            rc = -1;
-            while (rc < 0) {
-                DEBUG("sending to socket");
-                rc = sendto(sock, buf, pktsize, 0, NULL, 0);
-                DEBUG("back from sendto");
-                if (rc < 0)
-                    DEBUG("sentto failed");
-                if (rc < 0 && errno != EINTR) {
-                    break;
-                }
-            }
-            if (rc > 0)
-                DEBUG("sent to socket");
-            else
-                DEBUG("failed to send to socket!!");
-        }
-
-        if (FD_ISSET(sock, &read_set)) {
-            /* read from the socket and send to to stdout which goes to sshd */
-            DEBUG("data on unix socket");
-
-            rc = -1;
-            while (rc < 0) {
-                rc = recvfrom(sock, buf, sizeof(buf), 0, NULL, NULL);
-                if (rc < 0 && errno != EINTR) {
-                    close(sock);
-                    exit(0);
-                }
-            }
-            DEBUG("read from socket");
-
-            pktsize = rc;
-            rc = write(STDOUT_FILENO, buf, pktsize);
-            /* XXX: check that counts match */
-            if (rc > 0) {
-                DEBUG("wrote to stdout");
-            } else {
-                DEBUG("failed to write to stdout");
-            }
-        }
-    }
-}
diff --git a/config.guess b/config.guess
index 2852378..f32079a 100755
--- a/config.guess
+++ b/config.guess
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 #   Free Software Foundation, Inc.
 
-timestamp='2010-08-21'
+timestamp='2008-01-23'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -27,16 +27,16 @@ timestamp='2010-08-21'
 # the same distribution terms that you use for the rest of that program.
 
 
-# Originally written by Per Bothner.  Please send patches (context
-# diff format) to <config-patches at gnu.org> and include a ChangeLog
-# entry.
+# Originally written by Per Bothner <per at bothner.com>.
+# Please send patches to <config-patches at gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
 # exits with 0.  Otherwise, it exits with 1.
 #
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -56,9 +56,8 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -92,7 +91,7 @@ if test $# != 0; then
   exit 1
 fi
 
-trap 'exit 1' HUP INT TERM
+trap 'exit 1' 1 2 15
 
 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
 # compiler to aid in system detection is discouraged as it requires
@@ -106,7 +105,7 @@ trap 'exit 1' HUP INT TERM
 
 set_cc_for_build='
 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" HUP INT PIPE TERM ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
 : ${TMPDIR=/tmp} ;
  { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
@@ -171,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
 		eval $set_cc_for_build
 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep -q __ELF__
+			| grep __ELF__ >/dev/null
 		then
 		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
 		    # Return netbsd for either.  FIX?
@@ -325,33 +324,14 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	case `/usr/bin/uname -p` in
 	    sparc) echo sparc-icl-nx7; exit ;;
 	esac ;;
-    s390x:SunOS:*:*)
-	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
     sun4H:SunOS:5.*:*)
 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
-    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-	echo i386-pc-auroraux${UNAME_RELEASE}
-	exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-	eval $set_cc_for_build
-	SUN_ARCH="i386"
-	# If there is a compiler, see if it is configured for 64-bit objects.
-	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
-	# This test works for both compilers.
-	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-		grep IS_64BIT_ARCH >/dev/null
-	    then
-		SUN_ARCH="x86_64"
-	    fi
-	fi
-	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
@@ -552,7 +532,7 @@ EOF
 		echo rs6000-ibm-aix3.2
 	fi
 	exit ;;
-    *:AIX:*:[4567])
+    *:AIX:*:[456])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
@@ -660,7 +640,7 @@ EOF
 	    # => hppa64-hp-hpux11.23
 
 	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-		grep -q __LP64__
+		grep __LP64__ >/dev/null
 	    then
 		HP_ARCH="hppa2.0w"
 	    else
@@ -811,12 +791,12 @@ EOF
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit ;;
-    *:Interix*:*)
+    *:Interix*:[3456]*)
     	case ${UNAME_MACHINE} in
 	    x86)
 		echo i586-pc-interix${UNAME_RELEASE}
 		exit ;;
-	    authenticamd | genuineintel | EM64T)
+	    EM64T | authenticamd)
 		echo x86_64-unknown-interix${UNAME_RELEASE}
 		exit ;;
 	    IA64)
@@ -826,9 +806,6 @@ EOF
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
 	exit ;;
-    8664:Windows_NT:*)
-	echo x86_64-pc-mks
-	exit ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -858,20 +835,6 @@ EOF
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit ;;
     arm*:Linux:*:*)
 	eval $set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -894,17 +857,6 @@ EOF
     frv:Linux:*:*)
     	echo frv-unknown-linux-gnu
 	exit ;;
-    i*86:Linux:*:*)
-	LIBC=gnu
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-	exit ;;
     ia64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
@@ -914,33 +866,74 @@ EOF
     m68*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
-    mips:Linux:*:* | mips64:Linux:*:*)
+    mips:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef mips
+	#undef mipsel
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=mipsel
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=mips
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    mips64:Linux:*:*)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
 	#undef CPU
-	#undef ${UNAME_MACHINE}
-	#undef ${UNAME_MACHINE}el
+	#undef mips64
+	#undef mips64el
 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=${UNAME_MACHINE}el
+	CPU=mips64el
 	#else
 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=${UNAME_MACHINE}
+	CPU=mips64
 	#else
 	CPU=
 	#endif
 	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     or32:Linux:*:*)
 	echo or32-unknown-linux-gnu
 	exit ;;
-    padre:Linux:*:*)
-	echo sparc-unknown-linux-gnu
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
 	exit ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
@@ -950,11 +943,8 @@ EOF
 	  *)    echo hppa-unknown-linux-gnu ;;
 	esac
 	exit ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
-	exit ;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux
@@ -968,9 +958,6 @@ EOF
     sparc:Linux:*:* | sparc64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
-    tile*:Linux:*:*)
-	echo ${UNAME_MACHINE}-tilera-linux-gnu
-	exit ;;
     vax:Linux:*:*)
 	echo ${UNAME_MACHINE}-dec-linux-gnu
 	exit ;;
@@ -980,6 +967,69 @@ EOF
     xtensa*:Linux:*:*)
     	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
+    i*86:Linux:*:*)
+	# The BFD linker knows what the default object file format is, so
+	# first see if it will tell us. cd to the root directory to prevent
+	# problems with other programs or directories called `ld' in the path.
+	# Set LC_ALL=C to ensure ld outputs messages in English.
+	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+			 | sed -ne '/supported targets:/!d
+				    s/[ 	][ 	]*/ /g
+				    s/.*supported targets: *//
+				    s/ .*//
+				    p'`
+        case "$ld_supported_targets" in
+	  elf32-i386)
+		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+		;;
+	  a.out-i386-linux)
+		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+		exit ;;
+	  coff-i386)
+		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+		exit ;;
+	  "")
+		# Either a pre-BFD a.out linker (linux-gnuoldld) or
+		# one that does not give us useful --help.
+		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+		exit ;;
+	esac
+	# Determine whether the default compiler is a.out or elf
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#ifdef __ELF__
+	# ifdef __GLIBC__
+	#  if __GLIBC__ >= 2
+	LIBC=gnu
+	#  else
+	LIBC=gnulibc1
+	#  endif
+	# else
+	LIBC=gnulibc1
+	# endif
+	#else
+	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+	LIBC=gnu
+	#else
+	LIBC=gnuaout
+	#endif
+	#endif
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^LIBC/{
+		s: ::g
+		p
+	    }'`"
+	test x"${LIBC}" != x && {
+		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+		exit
+	}
+	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
+	;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
 	# earlier versions are messed up and put the nodename in both
@@ -1008,7 +1058,7 @@ EOF
     i*86:syllable:*:*)
 	echo ${UNAME_MACHINE}-pc-syllable
 	exit ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
 	echo i386-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
     i*86:*DOS:*:*)
@@ -1052,11 +1102,8 @@ EOF
     pc:*:*:*)
 	# Left here for compatibility:
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i586.
-	# Note: whatever this is, it MUST be the same as what config.sub
-	# prints for the "djgpp" host, or else GDB configury will decide that
-	# this is a cross-build.
-	echo i586-pc-msdosdjgpp
+        # the processor, so we play safe by assuming i386.
+	echo i386-pc-msdosdjgpp
         exit ;;
     Intel:Mach:3*:*)
 	echo i386-pc-mach3
@@ -1094,16 +1141,6 @@ EOF
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
           && { echo i486-ncr-sysv4; exit; } ;;
-    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
-	OS_REL='.3'
-	test -r /etc/.relid \
-	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
-	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
-	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 	echo m68k-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
@@ -1116,7 +1153,7 @@ EOF
     rs6000:LynxOS:2.*:*)
 	echo rs6000-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
 	echo powerpc-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
     SM[BE]S:UNIX_SV:*:*)
@@ -1179,9 +1216,6 @@ EOF
     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
 	echo i586-pc-beos
 	exit ;;
-    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
-	echo i586-pc-haiku
-	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
 	exit ;;
@@ -1209,16 +1243,6 @@ EOF
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
 	case $UNAME_PROCESSOR in
-	    i386)
-		eval $set_cc_for_build
-		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-		      grep IS_64BIT_ARCH >/dev/null
-		  then
-		      UNAME_PROCESSOR="x86_64"
-		  fi
-		fi ;;
 	    unknown) UNAME_PROCESSOR=powerpc ;;
 	esac
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
@@ -1300,9 +1324,6 @@ EOF
     i*86:rdos:*:*)
 	echo ${UNAME_MACHINE}-pc-rdos
 	exit ;;
-    i*86:AROS:*:*)
-	echo ${UNAME_MACHINE}-pc-aros
-	exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
diff --git a/config.sub b/config.sub
index 320e303..6759825 100755
--- a/config.sub
+++ b/config.sub
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 #   Free Software Foundation, Inc.
 
-timestamp='2010-09-11'
+timestamp='2008-01-16'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -32,16 +32,13 @@ timestamp='2010-09-11'
 
 
 # Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# diff and a properly formatted ChangeLog entry.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
 # If it is invalid, we print an error message on stderr and exit with code 1.
 # Otherwise, we print the canonical config type on stdout and succeed.
 
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
 # that are meaningful with *any* GNU software.
@@ -75,9 +72,8 @@ Report bugs and patches to <config-patches at gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free
-Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -124,10 +120,8 @@ esac
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-  knetbsd*-gnu* | netbsd*-gnu* | \
-  kopensolaris*-gnu* | \
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -154,13 +148,10 @@ case $os in
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray | -microblaze)
+	-apple | -axis | -knuth | -cray)
 		os=
 		basic_machine=$1
 		;;
-        -bluegene*)
-	        os=-cnk
-		;;
 	-sim | -cisco | -oki | -wec | -winbond)
 		os=
 		basic_machine=$1
@@ -258,16 +249,13 @@ case $basic_machine in
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
-	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore | mep | metag \
+	| maxq | mb | microblaze | mcore | mep \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
-	| mips64octeon | mips64octeonel \
-	| mips64orion | mips64orionel \
-	| mips64r5900 | mips64r5900el \
 	| mips64vr | mips64vrel \
+	| mips64orion | mips64orionel \
 	| mips64vr4100 | mips64vr4100el \
 	| mips64vr4300 | mips64vr4300el \
 	| mips64vr5000 | mips64vr5000el \
@@ -280,41 +268,28 @@ case $basic_machine in
 	| mipsisa64sr71k | mipsisa64sr71kel \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
-	| moxie \
 	| mt \
 	| msp430 \
-	| nds32 | nds32le | nds32be \
 	| nios | nios2 \
 	| ns16k | ns32k \
 	| or32 \
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
-	| rx \
 	| score \
-	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
 	| spu | strongarm \
-	| tahoe | thumb | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
-	| ubicom32 \
+	| tahoe | thumb | tic4x | tic80 | tron \
 	| v850 | v850e \
 	| we32k \
 	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
-	| z8k | z80)
+	| z8k)
 		basic_machine=$basic_machine-unknown
 		;;
-	c54x)
-		basic_machine=tic54x-unknown
-		;;
-	c55x)
-		basic_machine=tic55x-unknown
-		;;
-	c6x)
-		basic_machine=tic6x-unknown
-		;;
-	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+	m6811 | m68hc11 | m6812 | m68hc12)
 		# Motorola 68HC11/12.
 		basic_machine=$basic_machine-unknown
 		os=-none
@@ -345,7 +320,7 @@ case $basic_machine in
 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
 	| avr-* | avr32-* \
 	| bfin-* | bs2000-* \
-	| c[123]* | c30-* | [cjt]90-* | c4x-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
 	| clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
@@ -354,17 +329,14 @@ case $basic_machine in
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
-	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
-	| mips64octeon-* | mips64octeonel-* \
-	| mips64orion-* | mips64orionel-* \
-	| mips64r5900-* | mips64r5900el-* \
 	| mips64vr-* | mips64vrel-* \
+	| mips64orion-* | mips64orionel-* \
 	| mips64vr4100-* | mips64vr4100el-* \
 	| mips64vr4300-* | mips64vr4300el-* \
 	| mips64vr5000-* | mips64vr5000el-* \
@@ -379,30 +351,27 @@ case $basic_machine in
 	| mmix-* \
 	| mt-* \
 	| msp430-* \
-	| nds32-* | nds32le-* | nds32be-* \
 	| nios-* | nios2-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
 	| orion-* \
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
-	| romp-* | rs6000-* | rx-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| romp-* | rs6000-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 	| sparclite-* \
 	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
 	| tahoe-* | thumb-* \
 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-	| tile-* | tilegx-* \
 	| tron-* \
-	| ubicom32-* \
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
 	| xstormy16-* | xtensa*-* \
 	| ymp-* \
-	| z8k-* | z80-*)
+	| z8k-*)
 		;;
 	# Recognize the basic CPU types without company name, with glob match.
 	xtensa*)
@@ -470,10 +439,6 @@ case $basic_machine in
 		basic_machine=m68k-apollo
 		os=-bsd
 		;;
-	aros)
-		basic_machine=i386-pc
-		os=-aros
-		;;
 	aux)
 		basic_machine=m68k-apple
 		os=-aux
@@ -490,27 +455,10 @@ case $basic_machine in
 		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
 		os=-linux
 		;;
-	bluegene*)
-		basic_machine=powerpc-ibm
-		os=-cnk
-		;;
-	c54x-*)
-		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	c55x-*)
-		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	c6x-*)
-		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
 	c90)
 		basic_machine=c90-cray
 		os=-unicos
 		;;
-        cegcc)
-		basic_machine=arm-unknown
-		os=-cegcc
-		;;
 	convex-c1)
 		basic_machine=c1-convex
 		os=-bsd
@@ -578,10 +526,6 @@ case $basic_machine in
 		basic_machine=m88k-motorola
 		os=-sysv3
 		;;
-	dicos)
-		basic_machine=i686-pc
-		os=-dicos
-		;;
 	djgpp)
 		basic_machine=i586-pc
 		os=-msdosdjgpp
@@ -755,9 +699,6 @@ case $basic_machine in
 		basic_machine=ns32k-utek
 		os=-sysv
 		;;
-        microblaze)
-		basic_machine=microblaze-xilinx
-		;;
 	mingw32)
 		basic_machine=i386-pc
 		os=-mingw32
@@ -862,12 +803,6 @@ case $basic_machine in
 	np1)
 		basic_machine=np1-gould
 		;;
-        neo-tandem)
-		basic_machine=neo-tandem
-		;;
-        nse-tandem)
-		basic_machine=nse-tandem
-		;;
 	nsr-tandem)
 		basic_machine=nsr-tandem
 		;;
@@ -1102,10 +1037,17 @@ case $basic_machine in
 		basic_machine=t90-cray
 		os=-unicos
 		;;
-        # This must be matched before tile*.
-        tilegx*)
-		basic_machine=tilegx-unknown
-		os=-linux-gnu
+	tic54x | c54x*)
+		basic_machine=tic54x-unknown
+		os=-coff
+		;;
+	tic55x | c55x*)
+		basic_machine=tic55x-unknown
+		os=-coff
+		;;
+	tic6x | c6x*)
+		basic_machine=tic6x-unknown
+		os=-coff
 		;;
 	tile*)
 		basic_machine=tile-unknown
@@ -1186,10 +1128,6 @@ case $basic_machine in
 		basic_machine=z8k-unknown
 		os=-sim
 		;;
-	z80-*-coff)
-		basic_machine=z80-unknown
-		os=-sim
-		;;
 	none)
 		basic_machine=none-none
 		os=-none
@@ -1228,7 +1166,7 @@ case $basic_machine in
 	we32k)
 		basic_machine=we32k-att
 		;;
-	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
 		basic_machine=sh-unknown
 		;;
 	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
@@ -1278,9 +1216,6 @@ case $os in
         # First match some system type aliases
         # that might get confused with valid system types.
 	# -solaris* is a basic system type, with this one exception.
-        -auroraux)
-	        os=-auroraux
-		;;
 	-solaris1 | -solaris1.*)
 		os=`echo $os | sed -e 's|solaris1|sunos4|'`
 		;;
@@ -1301,11 +1236,10 @@ case $os in
 	# Each alternative MUST END IN A *, to match a version number.
 	# -sysv* is not here because it comes later, after sysvr4.
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-	      | -sym* | -kopensolaris* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* | -aros* \
+	      | -aos* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
@@ -1314,10 +1248,9 @@ case $os in
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* | -cegcc* \
+	      | -chorusos* | -chorusrdb* \
 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-android* \
-	      | -linux-newlib* | -linux-uclibc* \
+	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
 	      | -uxpv* | -beos* | -mpeix* | -udk* \
 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1325,7 +1258,7 @@ case $os in
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1455,11 +1388,6 @@ case $os in
 	-zvmoe)
 		os=-zvmoe
 		;;
-	-dicos*)
-		os=-dicos
-		;;
-        -nacl*)
-	        ;;
 	-none)
 		;;
 	*)
@@ -1500,15 +1428,6 @@ case $basic_machine in
         c4x-* | tic4x-*)
         	os=-coff
 		;;
-	tic54x-*)
-		os=-coff
-		;;
-	tic55x-*)
-		os=-coff
-		;;
-	tic6x-*)
-		os=-coff
-		;;
 	# This must come before the *-dec entry.
 	pdp10-*)
 		os=-tops20
@@ -1666,7 +1585,7 @@ case $basic_machine in
 			-sunos*)
 				vendor=sun
 				;;
-			-cnk*|-aix*)
+			-aix*)
 				vendor=ibm
 				;;
 			-beos*)
diff --git a/configure b/configure
index eb6f294..ff6ee6e 100755
--- a/configure
+++ b/configure
@@ -1,435 +1,84 @@
 #! /bin/sh
-# From configure.ac Revision.
+# From configure.in Revision: 18739 .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for Net-SNMP 5.7.2.1.
+# Generated by GNU Autoconf 2.59 for Net-SNMP 5.4.3.
 #
 # Report bugs to <net-snmp-coders at lists.sourceforge.net>.
 #
-#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
-#
-#
+# Copyright (C) 2003 Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
 
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
 fi
+DUALCASE=1; export DUALCASE # for MKS sh
 
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
 fi
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
 PS1='$ '
 PS2='> '
 PS4='+ '
 
 # NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1
-
-  test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
-    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
-    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
-    PATH=/empty FPATH=/empty; export PATH FPATH
-    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
-      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
 do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in #(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  # We cannot yet assume a decent shell, so we have to provide a
-	# neutralization value for shells without unset; and this also
-	# works around shells that cannot unset nonexistent variables.
-	# Preserve -v and -x to the replacement shell.
-	BASH_ENV=/dev/null
-	ENV=/dev/null
-	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-	export CONFIG_SHELL
-	case $- in # ((((
-	  *v*x* | *x*v* ) as_opts=-vx ;;
-	  *v* ) as_opts=-v ;;
-	  *x* ) as_opts=-x ;;
-	  * ) as_opts= ;;
-	esac
-	exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
   else
-    $as_echo "$0: Please tell bug-autoconf at gnu.org and
-$0: net-snmp-coders at lists.sourceforge.net about your
-$0: system, including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+    $as_unset $as_var
   fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
+done
 
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
   as_expr=expr
 else
   as_expr=false
 fi
 
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
   as_basename=basename
 else
   as_basename=false
 fi
 
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
 
-as_me=`$as_basename -- "$0" ||
+# Name of the executable.
+as_me=`$as_basename "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
 
+# PATH needs CR, and LINENO needs CR and PATH.
 # Avoid depending upon Character Ranges.
 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
 as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
@@ -437,107 +86,146 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
 
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
     sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
       N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
       t loop
-      s/-\n.*//
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
     ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+  chmod +x $as_me.lineno ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
 
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
   # Exit status is that of the last command.
   exit
 }
 
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
 esac
 
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
 else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
+  as_expr=false
 fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
     as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
   fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
 else
   as_ln_s='cp -p'
 fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
+rm -f conf$$ conf$$.exe conf$$.file
 
 if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
+  as_mkdir_p=:
 else
   test -d ./-p && rmdir ./-p
   as_mkdir_p=false
 fi
 
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in #(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
+as_executable_p="test -f"
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -545,516 +233,245 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 # Sed expression to map a string onto a valid variable name.
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+
+
+# Check that we are running under the correct shell.
 SHELL=${CONFIG_SHELL-/bin/sh}
 
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
+  ;;
+esac
 
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
+echo=${ECHO-echo}
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+    # expected sizes: less than 2kB, 1kB, 512 bytes, 16 bytes, ...
+    if (echo_test_string=`eval $cmd`) 2>/dev/null &&
+       echo_test_string=`eval $cmd` &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+   test "X$echo_testing_string" = "X$echo_test_string"; then
+  :
+else
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for dir in $PATH /usr/ucb; do
+    IFS="$lt_save_ifs"
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running configure again with it.
+      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+    else
+      # Try using printf.
+      echo='printf %s\n'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+	 test "X$echo_testing_string" = "X$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL $0 --fallback-echo"
+      elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	echo="$CONFIG_SHELL $0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+	  then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "$0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+
+
+tagnames=${tagnames+${tagnames},}CXX
+
+tagnames=${tagnames+${tagnames},}F77
 
 # Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
 # so uname gets run too.
 ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
 
+exec 6>&1
+
 #
 # Initializations.
 #
 ac_default_prefix=/usr/local
-ac_clean_files=
 ac_config_libobj_dir=.
-LIBOBJS=
 cross_compiling=no
 subdirs=
 MFLAGS=
 MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete.  It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
 
 # Identity of this package.
 PACKAGE_NAME='Net-SNMP'
 PACKAGE_TARNAME='net-snmp'
-PACKAGE_VERSION='5.7.2.1'
-PACKAGE_STRING='Net-SNMP 5.7.2.1'
+PACKAGE_VERSION='5.4.3'
+PACKAGE_STRING='Net-SNMP 5.4.3'
 PACKAGE_BUGREPORT='net-snmp-coders at lists.sourceforge.net'
-PACKAGE_URL=''
 
-ac_unique_file="agent/snmpd.c"
+ac_unique_file="agent/mibgroup/ucd-snmp/extensible.c"
 # Factoring default headers for most tests.
 ac_includes_default="\
 #include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
+#if HAVE_SYS_TYPES_H
 # include <sys/types.h>
 #endif
-#ifdef HAVE_SYS_STAT_H
+#if HAVE_SYS_STAT_H
 # include <sys/stat.h>
 #endif
-#ifdef STDC_HEADERS
+#if STDC_HEADERS
 # include <stdlib.h>
 # include <stddef.h>
 #else
-# ifdef HAVE_STDLIB_H
+# if HAVE_STDLIB_H
 #  include <stdlib.h>
 # endif
 #endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
 #  include <memory.h>
 # endif
 # include <string.h>
 #endif
-#ifdef HAVE_STRINGS_H
+#if HAVE_STRINGS_H
 # include <strings.h>
 #endif
-#ifdef HAVE_INTTYPES_H
+#if HAVE_INTTYPES_H
 # include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+#  include <stdint.h>
+# endif
 #endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
+#if HAVE_UNISTD_H
 # include <unistd.h>
 #endif"
 
-ac_config_libobj_dir=snmplib
-ac_subst_vars='LTLIBOBJS
-ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE
-PARTIALTARGETFLAGS
-DLLIBS
-OTHERAGENTLIBLFTS
-OTHERAGENTLIBLOBJS
-OTHERAGENTLIBOBJS
-AGENTLIBS
-LMIBLIBS
-PSCMD
-LPSTAT_PATH
-LIBOBJS
-ALLOCA
-VAL_LIBS
-LAGENTLIBS
-LNETSNMPLIBS
-PYTHONFEATURES
-PYTHONARGS
-PYTHONCLEANTARGS
-PYTHONUNINSTALLTARGS
-PYTHONINSTALLTARGS
-PYTHONTARGS
-PERLFEATURES
-PERLARGS
-PERLUNINSTALLTARGS
-PERLINSTALLTARGS
-PERLTARGS
-PERLLDOPTS_FOR_APPS
-PERLLDOPTS_FOR_LIBS
-EMBEDPERLUNINSTALL
-EMBEDPERLINSTALL
-MYSQL_INCLUDES
-MYSQL_LIBS
-MYSQLCONFIG
-crypto_files_lo
-crypto_files_o
-crypto_files_c
-NETSNMP_BUILD_SET_PROG_FALSE
-NETSNMP_BUILD_SET_PROG_TRUE
-NETSNMP_BUILD_USM_PROG_FALSE
-NETSNMP_BUILD_USM_PROG_TRUE
-NETSNMP_BUILD_TLS_PROG_FALSE
-NETSNMP_BUILD_TLS_PROG_TRUE
-NETSNMP_BUILD_SSH_PROG_FALSE
-NETSNMP_BUILD_SSH_PROG_TRUE
-NETSNMP_HAVE_AGENTX_LIBS_FALSE
-NETSNMP_HAVE_AGENTX_LIBS_TRUE
-NETSNMP_DEFAULT_MIBS
-ENV_SEPARATOR
-dllcleans
-default_mibs_install
-krb5_config
-security_ftobj_list
-security_lobj_list
-security_obj_list
-security_hdr_list
-security_src_list
-transport_ftobj_list
-transport_lobj_list
-transport_obj_list
-transport_src_list
-transport_hdr_list
-other_trapd_objects
-other_ftagentobjs
-other_lagentobjs
-other_agentobjs
-other_ftobjs_list
-other_lobjs_list
-other_objs_list
-other_src_list
-SNMPCONFPATH
-NETSNMP_DEFAULT_MIBDIRS
-SNMPSHAREPATH
-SNMPLIBPATH
-VERSION
-DPKG_QUERY_PATH
-CCPATH
-EXTRACPPFLAGS
-LD_NO_UNDEFINED
-target_os
-target_vendor
-target_cpu
-target
-NON_GNU_VPATH
-GNU_vpath
-MIBGROUP_INCLUDES
-HELPER_INCLUDES
-AGENT_INCLUDES
-SNMPLIB_INCLUDES
-TOP_INCLUDES
-DEVFLAGS
-LIBTOOL_DEPS
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-MANIFEST_TOOL
-AWK
-RANLIB
-STRIP
-ac_ct_AR
-AR
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-LIBTOOL
-OBJDUMP
-DLLTOOL
-AS
-LINKCC
-CPP
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-PERL_SYSTEM_INVOKES_POSIX_SHELL
-UNAMEPROG
-PYTHONPROG
-PSPROG
-PERLPROG
-AUTOHEADER
-AUTOCONF
-WHOAMI
-FIND
-FILE
-SED
-SET_MAKE
-LN_S
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-EGREP
-GREP
-COPY_PERSISTENT_FILES
-UCDPERSISTENT_DIRECTORY
-PERSISTENT_DIRECTORY
-FEATUREHEADERS
-FEATURETARGS
-FEATURE_REMOVE_FLAGS
-FEATURE_ADD_FLAGS
-installucdlibs
-installucdheaders
-FTMAINSUBS
-MAINSUBS
-USETRAPLIBS
-TRAPLIBS
-SNMPD
-INSTALL_PREFIX
-LIBTOOLFLAGS
-CONFIGURE_OPTIONS
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files='MODULE_LIST
-module_list_c
-module_list_o
-module_list_lo
-module_list_ft
-mib_module_list_c
-mib_module_list_o
-mib_module_list_lo
-mib_module_list_ft
-agent_module_list_c
-agent_module_list_o
-agent_module_list_lo
-agent_module_list_ft
-mibgroup_list_o
-mibgroup_list_lo
-mibgroup_list_ft
-agentgroup_list_o
-agentgroup_list_lo
-agentgroup_list_ft
-module_rules
-module_list_deps
-mib_module_list_deps
-agent_module_list_deps'
-ac_user_opts='
-enable_option_checking
-with_cc
-with_linkcc
-with_ar
-with_endianness
-with_cflags
-with_ldflags
-enable_as_needed
-with_libs
-enable_silent_libtool
-with_dmalloc
-enable_dmalloc
-with_efence
-enable_efence
-with_rsaref
-enable_rsaref
-with_openssl
-enable_openssl
-with_ssl
-enable_ssl
-with_pkcs
-enable_pkcs
-with_krb5
-enable_krb5
-with_dnssec_local_validation
-enable_dnssec_local_validation
-with_dnssec
-enable_dnssec
-with_rpm
-enable_rpm
-with_install_prefix
-enable_agent
-with_agent
-enable_applications
-with_applications
-enable_manuals
-with_manuals
-enable_scripts
-with_scripts
-enable_mibs
-enable_mib_config_checking
-with_mib_config_checking
-enable_mib_config_debug
-with_mib_config_debug
-enable_new_features
-enable_old_features
-with_features_of
-with_defaults
-enable_defaults
-enable_ucd_snmp_compatibility
-with_ucd_snmp_compatibility
-enable_mib_loading
-with_mib_loading
-with_mibdirs
-enable_mibdirs
-with_mibs
-with_mibfiles
-enable_mibfiles
-enable_des
-with_des
-enable_privacy
-with_privacy
-enable_md5
-with_md5
-enable_internal_md5
-with_internal_md5
-with_opaque_special_types
-enable_opaque_special_types
-enable_ipv6
-with_ipv6
-with_logfile
-enable_logfile
-with_persistent_directory
-enable_persistent_directory
-with_persistent_mask
-enable_persistent_mask
-with_copy_persistent_files
-enable_copy_persistent_files
-with_temp_file_pattern
-enable_temp_file_pattern
-enable_snmpv1
-with_snmpv1
-enable_snmpv2c
-with_snmpv2c
-with_default_snmp_version
-enable_default_snmp_version
-with_transports
-with_out_transports
-with_transport
-with_out_transport
-with_security_modules
-enable_security_modules
-with_out_security_modules
-enable_out_security_modules
-enable_debugging
-with_debugging
-enable_developer
-with_developer
-enable_testing_code
-with_testing_code
-enable_reentrant
-with_reentrant
-enable_deprecated
-with_deprecated
-with_root_access
-enable_root_access
-with_kmem_usage
-enable_kmem_usage
-with_dummy_values
-enable_dummy_values
-enable_set_support
-with_set_support
-with_sys_contact
-enable_sys_contact
-with_sys_location
-enable_sys_location
-enable_local_smux
-with_local_smux
-enable_agentx_dom_sock_only
-with_agentx_dom_sock_only
-enable_snmptrapd_subagent
-with_snmptrapd_subagent
-with_agentx_socket
-enable_agentx_socket
-with_features
-enable_features
-with_out_features
-enable_out_features
-with_feature
-with_out_feature
-enable_minimalist
-with_minimalist
-enable_notify_only
-with_notify_only
-enable_notifyonly
-enable_no_listen
-with_no_listen
-enable_nolisten
-enable_read_only
-with_read_only
-enable_readonly
-enable_mini_agent
-with_mini_agent
-with_miniagent
-enable_miniagent
-enable_mfd_rewrites
-with_mfd_rewrites
-with_mib_modules
-enable_mib_modules
-with_out_mib_modules
-enable_out_mib_modules
-with_mib_module
-with_module
-with_modules
-with_out_mib_module
-with_out_module
-with_out_modules
-with_enterprise_oid
-enable_enterprise_oid
-with_enterprise_sysoid
-enable_enterprise_sysoid
-with_enterprise_notification_oid
-enable_enterprise_notification_oid
-with_perl_modules
-enable_perl_modules
-enable_embedded_perl
-with_embedded_perl
-enable_perl_cc_checks
-with_perl_cc_checks
-with_python_modules
-with_server_send_buf
-enable_server_send_buf
-with_server_recv_buf
-enable_server_recv_buf
-with_client_send_buf
-enable_client_send_buf
-with_client_recv_buf
-enable_client_recv_buf
-with_elf
-enable_elf
-with_nl
-enable_nl
-with_libwrap
-enable_libwrap
-with_zlib
-enable_zlib
-with_bzip2
-with_mnttab
-enable_mnttab
-with_mysql
-enable_mysql
-enable_shared
-enable_static
-with_pic
-enable_fast_install
-with_gnu_ld
-with_sysroot
-enable_libtool_lock
-'
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP'
-
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CONFIGURE_OPTIONS LIBTOOLFLAGS INSTALL_PREFIX SNMPD TRAPLIBS USETRAPLIBS MAINSUBS HAVE_DMALLOC_H installucdheaders installucdlibs CC CFLAGS LDFLAGS  [...]
+ac_subst_files='MODULE_LIST module_list_c module_list_o module_list_lo mib_module_list_c mib_module_list_o mib_module_list_lo agent_module_list_c agent_module_list_o agent_module_list_lo mibgroup_list_o mibgroup_list_lo agentgroup_list_o agentgroup_list_lo agent_module_list module_rules module_list_deps mib_module_list_deps agent_module_list_deps'
 
 # Initialize some variables set by options.
 ac_init_help=
 ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
 # The variables have the same names as the options, with
 # dashes changed to underlines.
 cache_file=/dev/null
@@ -1077,49 +494,34 @@ x_libraries=NONE
 # and all the variables that are supposed to be based on exec_prefix
 # by default will actually change.
 # Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
 bindir='${exec_prefix}/bin'
 sbindir='${exec_prefix}/sbin'
 libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
+datadir='${prefix}/share'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
 
 ac_prev=
-ac_dashdash=
 for ac_option
 do
   # If the previous option needs an argument, assign it.
   if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
+    eval "$ac_prev=\$ac_option"
     ac_prev=
     continue
   fi
 
-  case $ac_option in
-  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *=)   ac_optarg= ;;
-  *)    ac_optarg=yes ;;
-  esac
+  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
-  case $ac_dashdash$ac_option in
-  --)
-    ac_dashdash=yes ;;
+  case $ac_option in
 
   -bindir | --bindir | --bindi | --bind | --bin | --bi)
     ac_prev=bindir ;;
@@ -1141,59 +543,33 @@ do
   --config-cache | -C)
     cache_file=config.cache ;;
 
-  -datadir | --datadir | --datadi | --datad)
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
     ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
     datadir=$ac_optarg ;;
 
-  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-  | --dataroo | --dataro | --datar)
-    ac_prev=datarootdir ;;
-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-    datarootdir=$ac_optarg ;;
-
   -disable-* | --disable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=no ;;
-
-  -docdir | --docdir | --docdi | --doc | --do)
-    ac_prev=docdir ;;
-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-    docdir=$ac_optarg ;;
-
-  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-    ac_prev=dvidir ;;
-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-    dvidir=$ac_optarg ;;
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    eval "enable_$ac_feature=no" ;;
 
   -enable-* | --enable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
     esac
-    eval enable_$ac_useropt=\$ac_optarg ;;
+    eval "enable_$ac_feature='$ac_optarg'" ;;
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
@@ -1220,12 +596,6 @@ do
   -host=* | --host=* | --hos=* | --ho=*)
     host_alias=$ac_optarg ;;
 
-  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-    ac_prev=htmldir ;;
-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-  | --ht=*)
-    htmldir=$ac_optarg ;;
-
   -includedir | --includedir | --includedi | --included | --include \
   | --includ | --inclu | --incl | --inc)
     ac_prev=includedir ;;
@@ -1250,16 +620,13 @@ do
   | --libexe=* | --libex=* | --libe=*)
     libexecdir=$ac_optarg ;;
 
-  -localedir | --localedir | --localedi | --localed | --locale)
-    ac_prev=localedir ;;
-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-    localedir=$ac_optarg ;;
-
   -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst | --locals)
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
     ac_prev=localstatedir ;;
   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
     localstatedir=$ac_optarg ;;
 
   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
@@ -1324,16 +691,6 @@ do
   | --progr-tra=* | --program-tr=* | --program-t=*)
     program_transform_name=$ac_optarg ;;
 
-  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-    ac_prev=pdfdir ;;
-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-    pdfdir=$ac_optarg ;;
-
-  -psdir | --psdir | --psdi | --psd | --ps)
-    ac_prev=psdir ;;
-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-    psdir=$ac_optarg ;;
-
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
@@ -1384,36 +741,26 @@ do
     ac_init_version=: ;;
 
   -with-* | --with-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
     esac
-    eval with_$ac_useropt=\$ac_optarg ;;
+    eval "with_$ac_package='$ac_optarg'" ;;
 
   -without-* | --without-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=no ;;
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/-/_/g'`
+    eval "with_$ac_package=no" ;;
 
   --x)
     # Obsolete; use --with-x.
@@ -1433,26 +780,27 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
+  -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
     ;;
 
   *=*)
     ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
     # Reject names that are not valid shell variable names.
-    case $ac_envvar in #(
-      '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
-    esac
-    eval $ac_envvar=\$ac_optarg
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+    eval "$ac_envvar='$ac_optarg'"
     export $ac_envvar ;;
 
   *)
     # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
     ;;
 
   esac
@@ -1460,36 +808,31 @@ done
 
 if test -n "$ac_prev"; then
   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  as_fn_error $? "missing argument to $ac_option"
+  { echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
 fi
 
-if test -n "$ac_unrecognized_opts"; then
-  case $enable_option_checking in
-    no) ;;
-    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
-  esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
-		datadir sysconfdir sharedstatedir localstatedir includedir \
-		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
 do
-  eval ac_val=\$$ac_var
-  # Remove trailing slashes.
+  eval ac_val=$`echo $ac_var`
   case $ac_val in
-    */ )
-      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
-      eval $ac_var=\$ac_val;;
+    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
   esac
-  # Be sure to have absolute directory names.
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+	      localstatedir libdir includedir oldincludedir infodir mandir
+do
+  eval ac_val=$`echo $ac_var`
   case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+    [\\/$]* | ?:[\\/]* ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
   esac
-  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
 done
 
 # There might be people who depend on the old broken behavior: `$host'
@@ -1503,8 +846,8 @@ target=$target_alias
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used" >&2
+    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
   fi
@@ -1516,72 +859,94 @@ test -n "$host_alias" && ac_tool_prefix=$host_alias-
 test "$silent" = yes && exec 6>/dev/null
 
 
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  as_fn_error $? "pwd does not report name of working directory"
-
-
 # Find the source files, if location was not specified.
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_myself" : 'X\(//\)[^/]' \| \
-	 X"$as_myself" : 'X\(//\)$' \| \
-	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
+  # Try the directory containing this script, then its parent.
+  ac_confdir=`(dirname "$0") 2>/dev/null ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$0" : 'X\(//\)[^/]' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$0" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
   srcdir=$ac_confdir
-  if test ! -r "$srcdir/$ac_unique_file"; then
+  if test ! -r $srcdir/$ac_unique_file; then
     srcdir=..
   fi
 else
   ac_srcdir_defaulted=no
 fi
-if test ! -r "$srcdir/$ac_unique_file"; then
-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
-	pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
-  srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
-  eval ac_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_env_${ac_var}_value=\$${ac_var}
-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+   { (exit 1); exit 1; }; }
+  else
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
+  fi
+fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+   { (exit 1); exit 1; }; }
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
+ac_env_CXX_set=${CXX+set}
+ac_env_CXX_value=$CXX
+ac_cv_env_CXX_set=${CXX+set}
+ac_cv_env_CXX_value=$CXX
+ac_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_env_CXXFLAGS_value=$CXXFLAGS
+ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_cv_env_CXXFLAGS_value=$CXXFLAGS
+ac_env_CXXCPP_set=${CXXCPP+set}
+ac_env_CXXCPP_value=$CXXCPP
+ac_cv_env_CXXCPP_set=${CXXCPP+set}
+ac_cv_env_CXXCPP_value=$CXXCPP
+ac_env_F77_set=${F77+set}
+ac_env_F77_value=$F77
+ac_cv_env_F77_set=${F77+set}
+ac_cv_env_F77_value=$F77
+ac_env_FFLAGS_set=${FFLAGS+set}
+ac_env_FFLAGS_value=$FFLAGS
+ac_cv_env_FFLAGS_set=${FFLAGS+set}
+ac_cv_env_FFLAGS_value=$FFLAGS
 
 #
 # Report the --help message.
@@ -1590,7 +955,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Net-SNMP 5.7.2.1 to adapt to many kinds of systems.
+\`configure' configures Net-SNMP 5.4.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1604,17 +969,20 @@ Configuration:
       --help=short        display options specific to this package
       --help=recursive    display the short help of all the included packages
   -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking ...' messages
+  -q, --quiet, --silent   do not print \`checking...' messages
       --cache-file=FILE   cache test results in FILE [disabled]
   -C, --config-cache      alias for \`--cache-file=config.cache'
   -n, --no-create         do not create output files
       --srcdir=DIR        find the sources in DIR [configure dir or \`..']
 
+_ACEOF
+
+  cat <<_ACEOF
 Installation directories:
   --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
+			  [$ac_default_prefix]
   --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [PREFIX]
+			  [PREFIX]
 
 By default, \`make install' will install all the files in
 \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
@@ -1624,25 +992,18 @@ for instance \`--prefix=\$HOME'.
 For better control, use the options below.
 
 Fine tuning of the installation directories:
-  --bindir=DIR            user executables [EPREFIX/bin]
-  --sbindir=DIR           system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR        program executables [EPREFIX/libexec]
-  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --libdir=DIR            object code libraries [EPREFIX/lib]
-  --includedir=DIR        C header files [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
-  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR           info documentation [DATAROOTDIR/info]
-  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR            man documentation [DATAROOTDIR/man]
-  --docdir=DIR            documentation root [DATAROOTDIR/doc/net-snmp]
-  --htmldir=DIR           html documentation [DOCDIR]
-  --dvidir=DIR            dvi documentation [DOCDIR]
-  --pdfdir=DIR            pdf documentation [DOCDIR]
-  --psdir=DIR             ps documentation [DOCDIR]
+  --bindir=DIR           user executables [EPREFIX/bin]
+  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR       program executables [EPREFIX/libexec]
+  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
+  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+  --libdir=DIR           object code libraries [EPREFIX/lib]
+  --includedir=DIR       C header files [PREFIX/include]
+  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+  --infodir=DIR          info documentation [PREFIX/info]
+  --mandir=DIR           man documentation [PREFIX/man]
 _ACEOF
 
   cat <<\_ACEOF
@@ -1656,47 +1017,35 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Net-SNMP 5.7.2.1:";;
+     short | recursive ) echo "Configuration of Net-SNMP 5.4.3:";;
    esac
   cat <<\_ACEOF
 
 Optional Features:
-  --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --disable-as-needed             Link libperl against applications rather
-                                  than Net-SNMP libraries. Use only if the other
-                                  way doesn't work.
+  --enable-as-needed              Link libperl against Net-SNMP libraries
+                                  rather than applications. We recommend to
+                                  use this option if it works.
   --enable-silent-libtool         Pass --silent to libtool.
 
+  --enable-mini-agent             Build a minimal agent.
   --disable-agent                 Do not build the agent (snmpd).
   --disable-applications          Do not build the apps (snmpget, ...).
   --disable-manuals               Do not install the manuals.
   --disable-scripts               Do not install the scripts (mib2c, ...).
   --disable-mibs                  Do not install the mib files.
-  --enable-mib-config-checking    Turns on extra checks during configuration
-                                  of mib modules. Any conflicts will cause
-                                  configure to abort (default is to issue a
-                                  warning and continue.)
-  --enable-mib-config-debug       Turns on verbose output during mib module
-                                  configure processing.
-  --enable-new-features   Compile in new MIB modules and other experimental
-                          features which are due to be included in future
-                          releases.
-  --enable-old-features   Compile in old MIB modules and other deprecated
-                          features which were replaced in the default build of
-                          this release.
-  --enable-ucd-snmp-compatibility Install ucd-snmp look-alike headers and libs.
-
   --disable-mib-loading           Do not include code that parses and
                                   manipulates the mib files.
+  --disable-snmpv1                Do not include code that implements SNMPv1.
+  --disable-snmpv2c               Do not include code that implements SNMPv2c.
+  --disable-set-support           Do not allow SNMP set requests.
   --disable-des                   Do not support DES encryption.
   --disable-privacy               Don't compile in support for privacy (encryption).
   --disable-md5                   Do not support MD5 authentication.
   --enable-internal-md5           Use the internal MD5 support.
   --enable-ipv6                   Generate IPv6 ready version.
-  --disable-snmpv1                Do not include code that implements SNMPv1.
-  --disable-snmpv2c               Do not include code that implements SNMPv2c.
+  --enable-local-smux             Restrict SMUX connections to localhost (by default).
   --enable-debugging              Outputs extra debugging information at all
                                   times.  Normally, you should not enable this,
                                   but instead use the -D flag of the commands,
@@ -1705,6 +1054,17 @@ Optional Features:
                                   This might provide some speed benefits.
   --enable-developer              Turns on super-duper-extra-compile-warnings
                                   when using gcc.
+  --enable-agentx-dom-sock-only   Disable UDP/TCP transports for agentx.
+  --disable-snmptrapd-subagent    Disable agentx subagent code in snmptrapd.
+  --enable-mib-config-checking    Turns on extra checks during configuration
+                                  of mib modules. Any conflicts will cause
+                                  configure to abort (default is to issue a
+                                  warning and continue.)
+  --enable-mib-config-debug       Turns on verbose output during mib module
+                                  configure processing.)
+  --enable-mfd-rewrites           Use new MFD rewrites of mib modules,
+                                  where available. (default is to use
+                                  original mib module code).
   --enable-testing-code           Enables some code sections that should
                                   only be used for testing of certain
                                   SNMP functionalities.  This should *not*
@@ -1714,26 +1074,17 @@ Optional Features:
                                   environments.  This does not guarantee
                                   thread-safe operation.
                                   Currently an experimental setting.
-  --disable-deprecated            Don't compile in deprecated functions.
-  --disable-set-support           Do not allow SNMP set requests.
-  --enable-local-smux             Restrict SMUX connections to localhost (by default).
-  --enable-agentx-dom-sock-only   Disable UDP/TCP transports for agentx.
-  --disable-snmptrapd-subagent    Disable agentx subagent code in snmptrapd.
-  --enable-minimalist             Remove all non-essential code features.
-  --enable-notify-only            Build tools that can only send notifications.
-  --enable-no-listen              Build tools that can't listen to ports.
-  --enable-read-only              Remove all SET support from the code.
-  --enable-mini-agent             Build a minimal agent.
-  --enable-mfd-rewrites           Use new MFD rewrites of mib modules,
-                                  where available. (default is to use
-                                  original mib module code).
   --disable-embedded-perl         Disable embedded Perl in the SNMP agent and
                                   snmptrapd. enabled by default
   --disable-perl-cc-checks        Disable configure checks for whether Perl's
                                   C Compiler is compatible with ours when
                                   embedded Perl is enabled.
-  --enable-shared[=PKGS]  build shared libraries [default=yes]
-  --enable-static[=PKGS]  build static libraries [default=yes]
+  --enable-ucd-snmp-compatibility Install ucd-snmp look-alike headers and libs.
+
+  --enable-shared[=PKGS]
+                          build shared libraries [default=yes]
+  --enable-static[=PKGS]
+                          build static libraries [default=yes]
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
@@ -1752,47 +1103,49 @@ Compiler Options:
   --with-cflags=CFLAGS            use CFLAGS as compile time arguments.
   --with-ldflags=LDFLAGS          use LDFLAGS as link time arguments to ld.
   --with-libs=LIBS                use LIBS as link time arguments to ld.
-  --with-dmalloc=PATH     Use dmalloc library (www.dmalloc.com)
+  --with-install-prefix=PATH      Just for installing, prefix all
+                                  directories with PATH.  This is known not
+                                  to work on some systems with shared
+                                  libraries (eg, HPUX)
+
+  --with-dmalloc=PATH             Use dmalloc library (www.dmalloc.com)
   --with-efence                   Look for and use libefence (malloc).
   --with-rsaref=PATH              Look for librsaref 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.
-
-  --with-pkcs=PATH                Look for pkcs11 in PATH/lib.
+  --with-openssl=PATH             Look for openssl in PATH/lib.
   --with-krb5=PATH                Look for krb5 in PATH/lib.
-  --with-dnssec-local-validation Enable local DNSSEC validation using libval (no)
   --without-rpm                   Don't include support for the RPM package
                                   management system when building the host MIB
                                   module.
-  --with-install-prefix=PATH      Just for installing, prefix all
-                                  directories with PATH.  This is known not
-                                  to work on some systems with shared
-                                  libraries (eg, HPUX)
-  --with-features-of=version
-                          Compile in MIB modules and other features as if this
-                          was release "version" (default is 5.7.2.1).
-
-Miscellaneous:
-  --with-defaults         Use defaults for prompted values.
+  --without-opaque-special-types  Don't use special opaque encodings.
+                                  SNMP normally cannot handle
+                                  floating numbers, nor large 64 bit
+                                  integers well.  By default, the
+                                  net-snmp package compiles in
+                                  support for these extra datatypes
+                                  (in a legal way)
   --with-mibdirs="dir1:dir2:"   Default directories to look for mibs.
                                   (Default: \$HOME/.snmp/mibs:DATADIR/snmp/mibs)
   --with-mibs="item1:item2:"    Default mib IDs to read.
-                                  (The default list is
-                                   "SNMPv2-MIB:IF-MIB:IP-MIB:TCP-MIB:UDP-MIB"
+                                  (The default list is "IP-MIB:IF-MIB:
+                                  TCP-MIB:UDP-MIB:SNMPv2-MIB:RFC1213-MIB"
                                   with the addition of any mibs used
                                   by the mib modules the agent is
                                   configured with)
   --with-mibfiles="file1:file2" Default mib files to load.
                                   (Default:  none.  uses IDs above instead.)
-  --without-opaque-special-types  Don't use special opaque encodings.
-                                  SNMP normally cannot handle
-                                  floating numbers, nor large 64 bit
-                                  integers well.  By default, the
-                                  net-snmp package compiles in
-                                  support for these extra datatypes
-                                  (in a legal way)
-  --with-logfile="location"       Default log file location for snmpd.
+  --with-pkcs=PATH                Look for pkcs11 in PATH/lib.
+
+Configuring the agent:
+  --without-root-access           The snmpd agent won't require root access to
+                                  run it.  The information it returns in the
+                                  mib-II tree may not be correct, however.
+  --without-kmem-usage            Do not include any code related to the use
+                                  of kmem.
+  --with-dummy-values             Provide 'placeholder' dummy values where
+                                  the necessary information is not available.
+                                  This is technically not compliant with the
+                                  SNMP specifications, but was how the agent
+                                  operated for versions < 4.0.
   --with-persistent-directory="directory"
                                   Default directory for persistent data storage.
   --with-persistent-mask="mask"  Default mask for persistent data storage.
@@ -1801,13 +1154,19 @@ Miscellaneous:
                                      (or use "yes" to copy them).
                                      (Default: yes)
   --with-temp-file-pattern=PATTERN  Pattern of temporary files (Default: /tmp/snmpdXXXXXX)
+  --with-agentx-socket=FILE         AgentX socket (Default: /var/agentx/master as specified in RFC2741)
   --with-default-snmp-version="3" Default version of SNMP to use.
                                     (Default: 3)
                                     Legal values: 1, 2 (for SNMPv2c) or 3.
+  --with-sys-contact="who at where"  Default system contact.
+                                    (Default: LOGIN at DOMAINNAME)
+  --with-sys-location="location"  Default system location.
+                                    (Default: Unknown)
+  --with-logfile="location"       Default log file location for snmpd.
   --with-transports="t1 t2 ..."   Compile in the given SNMP transport
-                                    modules (space or comma separated list).
+                                    modules (space separated list).
   --with-out-transports="t1 ..."  Exclude listed SNMP transports
-                                    (space or comma separated list).
+                                    (space separated list).
 
   Available SNMP transport modules are:
 
@@ -1816,11 +1175,11 @@ Miscellaneous:
     UDPIPv6     support for SNMP over UDP/IPv6.
                 This transport is available for Linux, Solaris and
                 FreeBSD at least.
-                This transport is compiled in by default if IPv6 support is enabled.
+                It is never compiled in by default.
     TCPIPv6     support for SNMP over UDP/IPv6.
                 This transport is available for Linux, Solaris and
                 FreeBSD at least.
-                This transport is compiled in by default if IPv6 support is enabled.
+                It is never compiled in by default.
     TCP         support for SNMP over TCP/IP.
                 This transport is compiled in by default, but may be omitted.
     Unix        support for SNMP over Unix domain protocols.
@@ -1828,18 +1187,12 @@ Miscellaneous:
                 platforms, and may be omitted.
     Callback    support for SNMP over an internal locally connected pair
                 of snmp_sessions.
-    Alias       The alias transport simply lets you define more complex
-                transport strings and alias them to simple names in
-                the snmp.conf file.
     AAL5PVC     support for SNMP over AAL5 PVCs.
                 This transport is presently only available for Linux,
                 is never compiled in by default and may be omitted.
     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
 
   --with-security-modules="s1 s2 ..."   Compile in the given SNMP security
                                     module services (space separated list).
@@ -1847,34 +1200,9 @@ Miscellaneous:
   Available SNMP security services:
 
         usm                support for user based SNMP security
+                           (required and always compiled in)
         ksm                support for kerberos based SNMP security
-        tsm                support for the Transport-based security
-                           (for use with the SSH, DTLSUDP and TLSTCP transports)
 
-  --with-out-security-modules="s1 s2 ..."   Removes the given SNMP security
-                                    module services from the default list.
-
-
-Configuring the agent:
-  --without-root-access           The snmpd agent won't require root access to
-                                  run it.  The information it returns in the
-                                  mib-II tree may not be correct, however.
-  --without-kmem-usage            Do not include any code related to the use
-                                  of kmem.
-  --with-dummy-values             Provide 'placeholder' dummy values where
-                                  the necessary information is not available.
-                                  This is technically not compliant with the
-                                  SNMP specifications, but was how the agent
-                                  operated for versions < 4.0.
-  --with-sys-contact="who at where"  Default system contact.
-                                    (Default: LOGIN at DOMAINNAME)
-  --with-sys-location="location"  Default system location.
-                                    (Default: Unknown)
-  --with-agentx-socket=FILE         AgentX socket (Default: /var/agentx/master as specified in RFC2741)
-  --with-features="feat1 feat2"   Request extra features to be turned on.
-                                   (only useful with --enable-minimalist)
-  --with-out-features="feat1..."  Remove specific features.
-                                   (implies --enable-minimalist)
   --with-mib-modules="item1 ..."  Compile with additional mib modules
                                     (Space separated list).
   --with-out-mib-modules="list"   Compile without these mib modules.
@@ -1915,7 +1243,6 @@ Configuring the agent:
       ipfwchains/ipfwchains  firewall chains under ipfw
                              (See agent/mibgroup/ipfwchains/README)
       sctp-mib             support for the SCTP-MIB
-      etherlike-mib        support for the EtherLike-MIB
 
     Solaris
       ucd-snmp/lmSensors   hardware monitoring (LM-SENSORS-MIB)
@@ -1981,1422 +1308,1060 @@ Network Buffers:
   --with-client-send-buf=ARG    Similar as previous options, but for the
                                   receive buffer of client sockets
   --with-client-recv-buf=ARG    Similar as previous options, but for the send buffer
+
+Miscellaneous:
+  --with-defaults         Use defaults for prompted values.
+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-pic              try to use only PIC/non-PIC objects [default=use
+                          both]
+  --with-tags[=TAGS]
+                          include additional configurations [automatic]
   --without-elf           use elf libraries
-  --with-nl               use libnl to get netlink data (linux only).
   --with-libwrap=LIBPATH  Compile in libwrap (tcp_wrappers) support.
   --with-zlib=DIR         use libz in DIR
   --with-bzip2=DIR        use libbz2 in DIR
-  --with-mnttab="/etc/mnttab"
-                          Mount table location. The default is to autodetect
-                          this.
-  --with-mysql            Include support for MySQL.
-  --with-pic              try to use only PIC/non-PIC objects [default=use
-                          both]
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-sysroot=DIR Search for dependent libraries within DIR
-                        (or the compiler's sysroot if not specified).
 
 Some influential environment variables:
   CC          C compiler command
   CFLAGS      C compiler flags
   LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
               nonstandard directory <lib dir>
-  LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
-              you have headers in a nonstandard directory <include dir>
+  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
+              headers in a nonstandard directory <include dir>
   CPP         C preprocessor
+  CXX         C++ compiler command
+  CXXFLAGS    C++ compiler flags
+  CXXCPP      C++ preprocessor
+  F77         Fortran 77 compiler command
+  FFLAGS      Fortran 77 compiler flags
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
 Report bugs to <net-snmp-coders at lists.sourceforge.net>.
 _ACEOF
-ac_status=$?
 fi
 
 if test "$ac_init_help" = "recursive"; then
   # If there are subdirs, report their specific --help.
+  ac_popdir=`pwd`
   for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" ||
-      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
-      continue
+    test -d $ac_dir || continue
     ac_builddir=.
 
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
 
 case $srcdir in
-  .)  # We are building in place.
+  .)  # No --srcdir option.  We are building in place.
     ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
     ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
 esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-    cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-    elif test -f "$ac_srcdir/configure"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure" --help=recursive
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
+
+    cd $ac_dir
+    # Check for guested configure; otherwise get Cygnus style configure.
+    if test -f $ac_srcdir/configure.gnu; then
+      echo
+      $SHELL $ac_srcdir/configure.gnu  --help=recursive
+    elif test -f $ac_srcdir/configure; then
+      echo
+      $SHELL $ac_srcdir/configure  --help=recursive
+    elif test -f $ac_srcdir/configure.ac ||
+	   test -f $ac_srcdir/configure.in; then
+      echo
+      $ac_configure --help
     else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi || ac_status=$?
-    cd "$ac_pwd" || { ac_status=$?; break; }
+      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi
+    cd $ac_popdir
   done
 fi
 
-test -n "$ac_init_help" && exit $ac_status
+test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-Net-SNMP configure 5.7.2.1
-generated by GNU Autoconf 2.68
+Net-SNMP configure 5.4.3
+generated by GNU Autoconf 2.59
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2003 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
-  exit
+  exit 0
 fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
 
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
+It was created by Net-SNMP $as_me 5.4.3, which was
+generated by GNU Autoconf 2.59.  Invocation command line was
 
-} # ac_fn_c_try_compile
+  $ $0 $@
 
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
+_ACEOF
 {
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
 
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
 
-} # ac_fn_c_try_cpp
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
 
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval \${$3+:} false; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_header_compiler=yes
-else
-  ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
 
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  ac_header_preproc=yes
-else
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
+_ASUNAME
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
-  yes:no: )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ---------------------------------------------------- ##
-## Report this to net-snmp-coders at lists.sourceforge.net ##
-## ---------------------------------------------------- ##"
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  echo "PATH: $as_dir"
+done
 
-} # ac_fn_c_check_header_mongrel
+} >&5
 
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+cat >&5 <<_ACEOF
 
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
 
-} # ac_fn_c_try_run
+## ----------- ##
+## Core tests. ##
+## ----------- ##
 
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $2 innocuous_$2
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $2 (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_sep=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+      # Get rid of the leading space.
+      ac_sep=" "
+      ;;
+    esac
+  done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
 
-int
-main ()
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
 {
-return $2 ();
-  ;
-  return 0;
+  (set) 2>&1 |
+    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      sed -n \
+	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+      ;;
+    *)
+      sed -n \
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
 }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+    echo
 
-} # ac_fn_c_check_func
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=$`echo $ac_var`
+      echo "$ac_var='"'"'$ac_val'"'"'"
+    done | sort
+    echo
 
-# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
-# --------------------------------------------
-# Tries to find the compile-time value of EXPR in a program that includes
-# INCLUDES, setting VAR accordingly. Returns whether the value could be
-# computed
-ac_fn_c_compute_int ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if test "$cross_compiling" = yes; then
-    # Depending upon the size, compute the lo and hi bounds.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=$`echo $ac_var`
+	echo "$ac_var='"'"'$ac_val'"'"'"
+      done | sort
+      echo
+    fi
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      sed "/^$/d" confdefs.h | sort
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      echo "$as_me: caught signal $ac_signal"
+    echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core &&
+  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+     ' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=$ac_mid; break
-else
-  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
-			if test $ac_lo -le $ac_mid; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0
+# Predefined preprocessor variables.
 
-  ;
-  return 0;
-}
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_lo=$ac_mid; break
-else
-  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
-			if test $ac_mid -le $ac_hi; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  ac_lo= ac_hi=
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_hi=$ac_mid
-else
-  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in #((
-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
-'') ac_retval=1 ;;
-esac
-  else
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-static long int longval () { return $2; }
-static unsigned long int ulongval () { return $2; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
 
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (($2) < 0)
-    {
-      long int i = longval ();
-      if (i != ($2))
-	return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ($2))
-	return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
 
-  ;
-  return 0;
-}
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else
-  ac_retval=1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-rm -f conftest.val
 
-  fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
 
-} # ac_fn_c_compute_int
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
 
-# ac_fn_c_find_intX_t LINENO BITS VAR
-# -----------------------------------
-# Finds a signed integer type with width BITS, setting cache variable VAR
-# accordingly.
-ac_fn_c_find_intX_t ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5
-$as_echo_n "checking for int$2_t... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=no"
-     # Order is important - never check a type that is potentially smaller
-     # than half of the expected target width.
-     for ac_type in int$2_t 'int' 'long int' \
-	 'long long int' 'short int' 'signed char'; do
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-	     enum { N = $2 / 2 - 1 };
-int
-main ()
-{
-static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-	        enum { N = $2 / 2 - 1 };
-int
-main ()
-{
-static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1)
-		 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
 
-else
-  case $ac_type in #(
-  int$2_t) :
-    eval "$3=yes" ;; #(
-  *) :
-    eval "$3=\$ac_type" ;;
-esac
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-       if eval test \"x\$"$3"\" = x"no"; then :
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
 
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . $cache_file;;
+      *)                      . ./$cache_file;;
+    esac
+  fi
 else
-  break
-fi
-     done
+  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
 fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
-} # ac_fn_c_find_intX_t
-
-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-# -------------------------------------------
-# Tests whether TYPE exists after having included INCLUDES, setting cache
-# variable VAR accordingly.
-ac_fn_c_check_type ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=no"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-if (sizeof ($2))
-	 return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-if (sizeof (($2)))
-	    return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  eval "$3=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+  eval ac_new_val="\$ac_env_${ac_var}_value"
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+echo "$as_me:   current value: $ac_new_val" >&2;}
+	ac_cache_corrupted=:
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
 fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
-} # ac_fn_c_check_type
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-# ac_fn_c_find_uintX_t LINENO BITS VAR
-# ------------------------------------
-# Finds an unsigned integer type with width BITS, setting cache variable VAR
-# accordingly.
-ac_fn_c_find_uintX_t ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
-$as_echo_n "checking for uint$2_t... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=no"
-     # Order is important - never check a type that is potentially smaller
-     # than half of the expected target width.
-     for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \
-	 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  case $ac_type in #(
-  uint$2_t) :
-    eval "$3=yes" ;; #(
-  *) :
-    eval "$3=\$ac_type" ;;
-esac
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-       if eval test \"x\$"$3"\" = x"no"; then :
 
-else
-  break
-fi
-     done
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
-} # ac_fn_c_find_uintX_t
 
-# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
-# ----------------------------------------------------
-# Tries to find if the field MEMBER exists in type AGGR, after including
-# INCLUDES, setting cache variable VAR accordingly.
-ac_fn_c_check_member ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
-$as_echo_n "checking for $2.$3... " >&6; }
-if eval \${$4+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$5
-int
-main ()
-{
-static $2 ac_aggr;
-if (ac_aggr.$3)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$4=yes"
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$5
-int
-main ()
-{
-static $2 ac_aggr;
-if (sizeof ac_aggr.$3)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$4=yes"
-else
-  eval "$4=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$4
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
-} # ac_fn_c_check_member
 
-# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
-# ---------------------------------------------
-# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly.
-ac_fn_c_check_decl ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  as_decl_name=`echo $2|sed 's/ *(.*//'`
-  as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-#ifndef $as_decl_name
-#ifdef __cplusplus
-  (void) $as_decl_use;
-#else
-  (void) $as_decl_name;
-#endif
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
-} # ac_fn_c_check_decl
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
 
-It was created by Net-SNMP $as_me 5.7.2.1, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
 
-  $ $0 $@
 
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
 
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
 
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
 
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
 
-_ASUNAME
 
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
 
-} >&5
 
-cat >&5 <<_ACEOF
 
 
-## ----------- ##
-## Core tests. ##
-## ----------- ##
 
-_ACEOF
 
 
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
-    2)
-      as_fn_append ac_configure_args1 " '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      as_fn_append ac_configure_args " '$ac_arg'"
-      ;;
-    esac
-  done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
 
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
 
-    $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-	"s/'\''/'\''\\\\'\'''\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
 
-    $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      $as_echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
 
-    if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=\$$ac_var
-	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
 
-    if test -s confdefs.h; then
-      $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
 
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
 
-$as_echo "/* confdefs.h */" > confdefs.h
+          ac_config_headers="$ac_config_headers include/net-snmp/net-snmp-config.h"
 
-# Predefined preprocessor variables.
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
+  rm -f configure-summary
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
 
+#
+# save the configure arguments
+#
 cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
+#define NETSNMP_CONFIGURE_OPTIONS "$ac_configure_args"
 _ACEOF
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
+CONFIGURE_OPTIONS="\"$ac_configure_args"\"
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
 
+#
+# Compilation setup
+#
 
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in #((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
-elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
-else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
-  fi
-done
+# Check whether --with-cc or --without-cc was given.
+if test "${with_cc+set}" = set; then
+  withval="$with_cc"
+  CC=$with_cc;export CC
+fi;
 
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special files
-  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
-  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
 
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	# differences in whitespace do not lead to failure.
-	ac_old_val_w=`echo x $ac_old_val`
-	ac_new_val_w=`echo x $ac_new_val`
-	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	  ac_cache_corrupted=:
-	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
-	  eval $ac_var=\$ac_old_val
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
+# Check whether --with-linkcc or --without-linkcc was given.
+if test "${with_linkcc+set}" = set; then
+  withval="$with_linkcc"
+  LINKCC=$with_linkcc;export LINKCC
+fi;
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+# Check whether --with-ar or --without-ar was given.
+if test "${with_ar+set}" = set; then
+  withval="$with_ar"
+  AR=$with_ar; export AR
+fi;
 
 
+# Check whether --with-endianness or --without-endianness was given.
+if test "${with_endianness+set}" = set; then
+  withval="$with_endianness"
+  if test $with_endianness != "big" -a $with_endianness != "little" ; then
+       { { echo "$as_me:$LINENO: error: Endianness must be big or little, not \"$with_endianness\"." >&5
+echo "$as_me: error: Endianness must be big or little, not \"$with_endianness\"." >&2;}
+   { (exit 1); exit 1; }; };
+     fi
 
+fi;
 
 
+# Check whether --with-cflags or --without-cflags was given.
+if test "${with_cflags+set}" = set; then
+  withval="$with_cflags"
+  CFLAGS=$with_cflags; export CFLAGS
+fi;
 
-ac_config_headers="$ac_config_headers include/net-snmp/net-snmp-config.h"
 
+# Check whether --with-ldflags or --without-ldflags was given.
+if test "${with_ldflags+set}" = set; then
+  withval="$with_ldflags"
+  LDFLAGS=$with_ldflags; export LDFLAGS
+fi;
 
+# Check whether --enable-as-needed or --disable-as-needed was given.
+if test "${enable_as_needed+set}" = set; then
+  enableval="$enable_as_needed"
 
-  rm -f configure-summary
+fi;
 
 
-#
-# save the configure arguments
-#
+# Check whether --with-libs or --without-libs was given.
+if test "${with_libs+set}" = set; then
+  withval="$with_libs"
+  LIBS=$with_libs; export LIBS
+fi;
 
-cat >>confdefs.h <<_ACEOF
-#define NETSNMP_CONFIGURE_OPTIONS "$ac_configure_args"
-_ACEOF
+# Check whether --enable-silent-libtool or --disable-silent-libtool was given.
+if test "${enable_silent_libtool+set}" = set; then
+  enableval="$enable_silent_libtool"
+  LIBTOOLFLAGS=--silent
+fi;
 
-CONFIGURE_OPTIONS="\"$ac_configure_args\""
 
 
-##
-## Recommended structure:
-##
-#     information on the package
-#     checks for programs
-#     checks for libraries
-#     checks for header files
-#     checks for types
-#     checks for structures
-#     checks for compiler characteristics
-#     checks for library functions
-#     checks for system services
+# Check whether --with-install-prefix or --without-install-prefix was given.
+if test "${with_install_prefix+set}" = set; then
+  withval="$with_install_prefix"
+  INSTALL_PREFIX="$withval"
+fi;
 
-# -*- autoconf -*-
-#########################################
-##
-#   Command-line processing - --with/--enable
-##
-#########################################
+if test "x$INSTALL_PREFIX" = "xyes" ; then
+  { { echo "$as_me:$LINENO: error: --with-install-prefix requires an argument" >&5
+echo "$as_me: error: --with-install-prefix requires an argument" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test "x$INSTALL_PREFIX" = "xno" ; then
+  INSTALL_PREFIX=""
+fi
 
-##
-#   System: Compiler settings
-##
 
+# check for errors in args that run after module processing here, so
+# they fail before module processing...
+# Check whether --enable-libwrap or --disable-libwrap was given.
+if test "${enable_libwrap+set}" = set; then
+  enableval="$enable_libwrap"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-libwrap/--without-libwrap instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-libwrap/--without-libwrap instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+  # Check whether --enable-zlib or --disable-zlib was given.
+if test "${enable_zlib+set}" = set; then
+  enableval="$enable_zlib"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-zlib/--without-zlib instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-zlib/--without-zlib instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --enable-mini_agent or --disable-mini_agent was given.
+if test "${enable_mini_agent+set}" = set; then
+  enableval="$enable_mini_agent"
+
+fi;
+if test "x$enable_mini_agent" = "xyes"; then
+    mini_agent="yes"
+else
+    mini_agent="no"
+fi
 
-# Check whether --with-cc was given.
-if test "${with_cc+set}" = set; then :
-  withval=$with_cc; CC=$with_cc;export CC
+# Check whether --with-mini_agent or --without-mini_agent was given.
+if test "${with_mini_agent+set}" = set; then
+  withval="$with_mini_agent"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-mini-agent/--disable-mini-agent instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-mini-agent/--disable-mini-agent instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --with-miniagent or --without-miniagent was given.
+if test "${with_miniagent+set}" = set; then
+  withval="$with_miniagent"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-mini-agent/--disable-mini-agent instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-mini-agent/--disable-mini-agent instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+# Check whether --enable-miniagent or --disable-miniagent was given.
+if test "${enable_miniagent+set}" = set; then
+  enableval="$enable_miniagent"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-mini-agent/--disable-mini-agent instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-mini-agent/--disable-mini-agent instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --enable-agent or --disable-agent was given.
+if test "${enable_agent+set}" = set; then
+  enableval="$enable_agent"
+
+fi;
+if test "x$enable_agent" != "xno"; then
+   SNMPD='snmpd$(EXEEXT)'
+   MAINSUBS="$MAINSUBS agent"
+   TRAPLIBS='$(TRAPDWITHAGENT)'
+   USETRAPLIBS='$(USEAGENTLIBS)'
+else
+   SNMPD=""
+   # we still need/want the agentlibs (for subagents, e.g. snmptrapd)
+   MAINSUBS="$MAINSUBS agent"
+   # building snmptrapd w/o agentlibs doesn't work atm
+   #TRAPLIBS='$(TRAPDWITHOUTAGENT)'
+   #USETRAPLIBS='$(USELIBS)'
+   TRAPLIBS='$(TRAPDWITHAGENT)'
+   USETRAPLIBS='$(USEAGENTLIBS)'
 fi
 
 
 
-# Check whether --with-linkcc was given.
-if test "${with_linkcc+set}" = set; then :
-  withval=$with_linkcc; LINKCC=$with_linkcc;export LINKCC
-fi
 
+# Check whether --with-agent or --without-agent was given.
+if test "${with_agent+set}" = set; then
+  withval="$with_agent"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-agent/--disable-agent instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-agent/--disable-agent instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
+# Check whether --enable-applications or --disable-applications was given.
+if test "${enable_applications+set}" = set; then
+  enableval="$enable_applications"
 
-# Check whether --with-ar was given.
-if test "${with_ar+set}" = set; then :
-  withval=$with_ar; AR=$with_ar; export AR
+fi;
+if test "x$enable_applications" != "xno"; then
+   MAINSUBS="$MAINSUBS apps"
 fi
+# Common mistakes
 
+# Check whether --with-applications or --without-applications was given.
+if test "${with_applications+set}" = set; then
+  withval="$with_applications"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-applications/--disable-applications instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-applications/--disable-applications instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
+# Check whether --enable-manuals or --disable-manuals was given.
+if test "${enable_manuals+set}" = set; then
+  enableval="$enable_manuals"
 
-# Check whether --with-endianness was given.
-if test "${with_endianness+set}" = set; then :
-  withval=$with_endianness; if test $with_endianness != "big" -a $with_endianness != "little" ; then
-       as_fn_error $? "Endianness must be big or little, not \"$with_endianness\"." "$LINENO" 5;
-     fi
+fi;
+if test "x$enable_manuals" != "xno"; then
+   MAINSUBS="$MAINSUBS man"
+fi
+
+# Check whether --with-manuals or --without-manuals was given.
+if test "${with_manuals+set}" = set; then
+  withval="$with_manuals"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-manuals/--disable-manuals instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-manuals/--disable-manuals instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
+# Check whether --enable-scripts or --disable-scripts was given.
+if test "${enable_scripts+set}" = set; then
+  enableval="$enable_scripts"
+
+fi;
+if test "x$enable_scripts" != "xno"; then
+   MAINSUBS="$MAINSUBS local"
 fi
 
+# Check whether --with-scripts or --without-scripts was given.
+if test "${with_scripts+set}" = set; then
+  withval="$with_scripts"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-scripts/--disable-scripts instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-scripts/--disable-scripts instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
+# Check whether --enable-mibs or --disable-mibs was given.
+if test "${enable_mibs+set}" = set; then
+  enableval="$enable_mibs"
 
-# Check whether --with-cflags was given.
-if test "${with_cflags+set}" = set; then :
-  withval=$with_cflags; CFLAGS=$with_cflags; export CFLAGS
+fi;
+if test "x$enable_mibs" != "xno"; then
+   MAINSUBS="$MAINSUBS mibs"
 fi
+# with-mibs is valid too, but means something else
+
+
+echo "$as_me:$LINENO: checking what to build and install" >&5
+echo $ECHO_N "checking what to build and install... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $MAINSUBS" >&5
+echo "${ECHO_T}$MAINSUBS" >&6
 
+# Check whether --enable-mib-loading or --disable-mib-loading was given.
+if test "${enable_mib_loading+set}" = set; then
+  enableval="$enable_mib_loading"
 
+fi;
+if test "x$enable_mib_loading" = "xno"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_DISABLE_MIB_LOADING 1
+_ACEOF
 
-# Check whether --with-ldflags was given.
-if test "${with_ldflags+set}" = set; then :
-  withval=$with_ldflags; LDFLAGS=$with_ldflags; export LDFLAGS
 fi
 
+# Check whether --with-mib-loading or --without-mib-loading was given.
+if test "${with_mib_loading+set}" = set; then
+  withval="$with_mib_loading"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-mib-loading/--disable-mib-loading instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-mib-loading/--disable-mib-loading instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+#
+SNMP_VERSIONS=""
+# Check whether --enable-snmpv1 or --disable-snmpv1 was given.
+if test "${enable_snmpv1+set}" = set; then
+  enableval="$enable_snmpv1"
+
+fi;
+if test "x$enable_snmpv1" = "xno"; then
 
-# Check whether --enable-as-needed was given.
-if test "${enable_as_needed+set}" = set; then :
-  enableval=$enable_as_needed;
+cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_DISABLE_SNMPV1 1
+_ACEOF
+
+else
+  SNMP_VERSIONS="$SNMP_VERSIONS 1"
 fi
 
+# Check whether --with-snmpv1 or --without-snmpv1 was given.
+if test "${with_snmpv1+set}" = set; then
+  withval="$with_snmpv1"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-snmpv1/--disable-snmpv1 instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-snmpv1/--disable-snmpv1 instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
+# Check whether --enable-snmpv2c or --disable-snmpv2c was given.
+if test "${enable_snmpv2c+set}" = set; then
+  enableval="$enable_snmpv2c"
 
-# Check whether --with-libs was given.
-if test "${with_libs+set}" = set; then :
-  withval=$with_libs; LIBS=$with_libs; export LIBS
+fi;
+if test "x$enable_snmpv2c" = "xno"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_DISABLE_SNMPV2C 1
+_ACEOF
+
+else
+  SNMP_VERSIONS="$SNMP_VERSIONS 2c"
 fi
 
+# Check whether --with-snmpv2c or --without-snmpv2c was given.
+if test "${with_snmpv2c+set}" = set; then
+  withval="$with_snmpv2c"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-snmpv2c/--disable-snmpv2c instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-snmpv2c/--disable-snmpv2c instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+SNMP_VERSIONS="$SNMP_VERSIONS 3"
+
+  cat >> configure-summary << EOF
+  SNMP Versions Supported:   $SNMP_VERSIONS
+EOF
+
+
+# Check whether --enable-set-support or --disable-set-support was given.
+if test "${enable_set_support+set}" = set; then
+  enableval="$enable_set_support"
+
+fi;
+if test "x$enable_set_support" = "xno"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_DISABLE_SET_SUPPORT 1
+_ACEOF
 
-# Check whether --enable-silent-libtool was given.
-if test "${enable_silent_libtool+set}" = set; then :
-  enableval=$enable_silent_libtool; LIBTOOLFLAGS=--silent
 fi
 
+# Check whether --with-set-support or --without-set-support was given.
+if test "${with_set_support+set}" = set; then
+  withval="$with_set_support"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-set-support/--disable-set-support instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-set-support/--disable-set-support instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --enable-des or --disable-des was given.
+if test "${enable_des+set}" = set; then
+  enableval="$enable_des"
+
+fi;
+if test "x$enable_des" = "xno"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_DISABLE_DES 1
+_ACEOF
 
+fi
 
+# Check whether --with-des or --without-des was given.
+if test "${with_des+set}" = set; then
+  withval="$with_des"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-des/--disable-des instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-des/--disable-des instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-##
-#   System: Library settings
-##
+# Check whether --enable-privacy or --disable-privacy was given.
+if test "${enable_privacy+set}" = set; then
+  enableval="$enable_privacy"
 
+fi;
+if test "x$enable_privacy" != "xno"; then
+  cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_ENABLE_SCAPI_AUTHPRIV 1
+_ACEOF
 
-# Check whether --with-dmalloc was given.
-if test "${with_dmalloc+set}" = set; then :
-  withval=$with_dmalloc;
 fi
 
-   # Check whether --enable-dmalloc was given.
-if test "${enable_dmalloc+set}" = set; then :
-  enableval=$enable_dmalloc; as_fn_error $? "Invalid option. Use --with-dmalloc/--without-dmalloc instead" "$LINENO" 5
+# Check whether --with-privacy or --without-privacy was given.
+if test "${with_privacy+set}" = set; then
+  withval="$with_privacy"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-privacy/--disable-privacy instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-privacy/--disable-privacy instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --enable-md5 or --disable-md5 was given.
+if test "${enable_md5+set}" = set; then
+  enableval="$enable_md5"
+
+fi;
+if test "x$enable_md5" = "xno"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_DISABLE_MD5 1
+_ACEOF
+
 fi
 
+# Check whether --with-md5 or --without-md5 was given.
+if test "${with_md5+set}" = set; then
+  withval="$with_md5"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-md5/--disable-md5 instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-md5/--disable-md5 instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
+# Check whether --enable-internal-md5 or --disable-internal-md5 was given.
+if test "${enable_internal_md5+set}" = set; then
+  enableval="$enable_internal_md5"
 
-# Check whether --with-efence was given.
-if test "${with_efence+set}" = set; then :
-  withval=$with_efence; use_efence="$withval"
+fi;
+if test "x$enable_internal_md5" = "xyes"; then
+  if test "x$enable_md5" = "xno"; then
+    { { echo "$as_me:$LINENO: error: You can not specify both --enable-internal-md5 and --disable-md5" >&5
+echo "$as_me: error: You can not specify both --enable-internal-md5 and --disable-md5" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_USE_INTERNAL_MD5 1
+_ACEOF
+
+  fi
 fi
 
-   # Check whether --enable-efence was given.
-if test "${enable_efence+set}" = set; then :
-  enableval=$enable_efence; as_fn_error $? "Invalid option. Use --with-efence/--without-efence instead" "$LINENO" 5
+# Check whether --with-internal-md5 or --without-internal-md5 was given.
+if test "${with_internal_md5+set}" = set; then
+  withval="$with_internal_md5"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-internal-md5/--disable-internal-md5 instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-internal-md5/--disable-internal-md5 instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --enable-ipv6 or --disable-ipv6 was given.
+if test "${enable_ipv6+set}" = set; then
+  enableval="$enable_ipv6"
+  if test "x$enable_ipv6" = "xyes"; then
+      cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_ENABLE_IPV6 1
+_ACEOF
+
+    fi
+fi;
+
+# Check whether --with-ipv6 or --without-ipv6 was given.
+if test "${with_ipv6+set}" = set; then
+  withval="$with_ipv6"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-ipv6/--disable-ipv6 instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-ipv6/--disable-ipv6 instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --enable-local-smux or --disable-local-smux was given.
+if test "${enable_local_smux+set}" = set; then
+  enableval="$enable_local_smux"
+  if test "x$enable_local_smux" = "xyes"; then
+      cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_ENABLE_LOCAL_SMUX 1
+_ACEOF
+
+    fi
+fi;
+
+# Check whether --with-local-smux or --without-local-smux was given.
+if test "${with_local_smux+set}" = set; then
+  withval="$with_local_smux"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-local-smux/--disable-local-smux instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-local-smux/--disable-local-smux instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --enable-debugging or --disable-debugging was given.
+if test "${enable_debugging+set}" = set; then
+  enableval="$enable_debugging"
+  cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_ALWAYS_DEBUG 1
+_ACEOF
+
+fi;
+
+# Check whether --with-debugging or --without-debugging was given.
+if test "${with_debugging+set}" = set; then
+  withval="$with_debugging"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-debugging/--disable-debugging instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-debugging/--disable-debugging instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --enable-developer or --disable-developer was given.
+if test "${enable_developer+set}" = set; then
+  enableval="$enable_developer"
+  developer=yes
+fi;
+
+# Check whether --with-developer or --without-developer was given.
+if test "${with_developer+set}" = set; then
+  withval="$with_developer"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-developer/--disable-developer instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-developer/--disable-developer instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+if test "x$enable_debugging" = "xno"; then
+    cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_NO_DEBUGGING 1
+_ACEOF
+
 fi
 
 
+# Check whether --with-dmalloc or --without-dmalloc was given.
+if test "${with_dmalloc+set}" = set; then
+  withval="$with_dmalloc"
+  if test "x$withval" = "xyes"; then
+      LIBS="$LIBS -ldmalloc"
+      cat >>confdefs.h <<\_ACEOF
+#define HAVE_DMALLOC_H 1
+_ACEOF
+
+    elif test -d "$withval"; then
+
+  if test "x$withval" != x -a -d $withval; then
+     if test -d $withval/lib; then
+       LDFLAGS="-L$withval/lib $LDFLAGS"
+     fi
+     if test -d $withval/include; then
+	CPPFLAGS="-I$withval/include $CPPFLAGS"
+     fi
+  fi
+
+      LIBS="$LIBS -ldmalloc"
+      cat >>confdefs.h <<\_ACEOF
+#define HAVE_DMALLOC_H 1
+_ACEOF
+
+    fi
+
+fi;
+
+# Check whether --enable-dmalloc or --disable-dmalloc was given.
+if test "${enable_dmalloc+set}" = set; then
+  enableval="$enable_dmalloc"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-dmalloc/--without-dmalloc instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-dmalloc/--without-dmalloc instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+
+# Check whether --with-efence or --without-efence was given.
+if test "${with_efence+set}" = set; then
+  withval="$with_efence"
+  use_efence="$withval"
+fi;
+# Check whether --enable-efence or --disable-efence was given.
+if test "${enable_efence+set}" = set; then
+  enableval="$enable_efence"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-efence/--without-efence instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-efence/--without-efence instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
 tryrsaref=no
 
-# Check whether --with-rsaref was given.
-if test "${with_rsaref+set}" = set; then :
-  withval=$with_rsaref; if test "x$withval" = "xyes"; then
+# Check whether --with-rsaref or --without-rsaref was given.
+if test "${with_rsaref+set}" = set; then
+  withval="$with_rsaref"
+  if test "x$withval" = "xyes"; then
       tryrsaref=yes
     elif test "x$withval" = "xno"; then
       tryrsaref=no
@@ -3413,32 +2378,27 @@ if test "${with_rsaref+set}" = set; then :
 
       tryrsaref=yes
     fi
-fi
-
-   # Check whether --enable-rsaref was given.
-if test "${enable_rsaref+set}" = set; then :
-  enableval=$enable_rsaref; as_fn_error $? "Invalid option. Use --with-rsaref/--without-rsaref instead" "$LINENO" 5
-fi
-
+fi;
+# Check whether --enable-rsaref or --disable-rsaref was given.
+if test "${enable_rsaref+set}" = set; then
+  enableval="$enable_rsaref"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-rsaref/--without-rsaref instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-rsaref/--without-rsaref instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
 tryopenssl=defaultyes
 askedopenssl=no
 
-# Check whether --with-openssl was given.
-if test "${with_openssl+set}" = set; then :
-  withval=$with_openssl; if test "x$withval" = "xyes"; then
+# Check whether --with-openssl or --without-openssl was given.
+if test "${with_openssl+set}" = set; then
+  withval="$with_openssl"
+  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
-      if test -d "$withval/lib/MinGW"; then
-        LDFLAGS="-L$withval/lib/MinGW $LDFLAGS"
-        CPPFLAGS="-I$withval/include $CPPFLAGS"
-      else
 
   if test "x$withval" != x -a -d $withval; then
      if test -d $withval/lib; then
@@ -3449,17 +2409,10 @@ if test "${with_openssl+set}" = set; then :
      fi
   fi
 
-      fi
       tryopenssl=yes
       askedopenssl=yes
     fi
-fi
-
-   # Check whether --enable-openssl was given.
-if test "${enable_openssl+set}" = set; then :
-  enableval=$enable_openssl; as_fn_error $? "Invalid option. Use --with-openssl/--without-openssl instead" "$LINENO" 5
-fi
-
+fi;
 if test "x$tryopenssl" = "xdefaultyes"; then
 
   if test "x/usr/local/ssl" != x -a -d /usr/local/ssl; then
@@ -3473,53 +2426,36 @@ if test "x$tryopenssl" = "xdefaultyes"; then
 
       tryopenssl=yes
 fi
-
-# Check whether --with-ssl was given.
-if test "${with_ssl+set}" = set; then :
-  withval=$with_ssl; as_fn_error $? "Invalid option. Use --with-openssl/--without-openssl instead" "$LINENO" 5
-fi
-
-# Check whether --enable-ssl was given.
-if test "${enable_ssl+set}" = set; then :
-  enableval=$enable_ssl; as_fn_error $? "Invalid option. Use --with-openssl/--without-openssl instead" "$LINENO" 5
-fi
-
-
-askedpkcs=no
-
-# Check whether --with-pkcs was given.
-if test "${with_pkcs+set}" = set; then :
-  withval=$with_pkcs; if test "x$withval" = "xyes"; then
-      askedpkcs=yes
-    elif test "x$withval" = "xno"; then
-      askedpkcs=no
-    elif test -d "$withval"; then
-
-  if test "x$withval" != x -a -d $withval; then
-     if test -d $withval/lib; then
-       LDFLAGS="-L$withval/lib $LDFLAGS"
-     fi
-     if test -d $withval/include; then
-	CPPFLAGS="-I$withval/include $CPPFLAGS"
-     fi
-  fi
-
-      askedpkcs=yes
-    fi
-fi
-
-   # Check whether --enable-pkcs was given.
-if test "${enable_pkcs+set}" = set; then :
-  enableval=$enable_pkcs; as_fn_error $? "Invalid option. Use --with-pkcs/--without-pkcs instead" "$LINENO" 5
-fi
-
+# Check whether --enable-openssl or --disable-openssl was given.
+if test "${enable_openssl+set}" = set; then
+  enableval="$enable_openssl"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-openssl/--without-openssl instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-openssl/--without-openssl instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --with-ssl or --without-ssl was given.
+if test "${with_ssl+set}" = set; then
+  withval="$with_ssl"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-openssl/--without-openssl instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-openssl/--without-openssl instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+# Check whether --enable-ssl or --disable-ssl was given.
+if test "${enable_ssl+set}" = set; then
+  enableval="$enable_ssl"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-openssl/--without-openssl instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-openssl/--without-openssl instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
 trykrb5=defaultyes
 askedkrb5=no
 
-# Check whether --with-krb5 was given.
-if test "${with_krb5+set}" = set; then :
-  withval=$with_krb5; if test "x$withval" = "xyes"; then
+# Check whether --with-krb5 or --without-krb5 was given.
+if test "${with_krb5+set}" = set; then
+  withval="$with_krb5"
+  if test "x$withval" = "xyes"; then
       trykrb5=yes
       askedkrb5=yes
       krb5path=undef
@@ -3531,3651 +2467,5683 @@ if test "${with_krb5+set}" = set; then :
       askedkrb5=yes
       krb5path=$withval
     fi
-fi
-
-   # Check whether --enable-krb5 was given.
-if test "${enable_krb5+set}" = set; then :
-  enableval=$enable_krb5; as_fn_error $? "Invalid option. Use --with-krb5/--without-krb5 instead" "$LINENO" 5
-fi
-
+fi;
 if test "x$trykrb5" = "xdefaultyes"; then
       trykrb5=yes
       krb5path=/usr/kerberos
 fi
+# Check whether --enable-krb5 or --disable-krb5 was given.
+if test "${enable_krb5+set}" = set; then
+  enableval="$enable_krb5"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-krb5/--without-krb5 instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-krb5/--without-krb5 instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+
+# Check whether --with-rpm or --without-rpm was given.
+if test "${with_rpm+set}" = set; then
+  withval="$with_rpm"
+
+fi;
+# Check whether --enable-rpm or --disable-rpm was given.
+if test "${enable_rpm+set}" = set; then
+  enableval="$enable_rpm"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-rpm/--without-rpm instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-rpm/--without-rpm instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --enable-agentx-dom-sock-only or --disable-agentx-dom-sock-only was given.
+if test "${enable_agentx_dom_sock_only+set}" = set; then
+  enableval="$enable_agentx_dom_sock_only"
+  cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_AGENTX_DOM_SOCK_ONLY 1
+_ACEOF
+
+fi;
+
+# Check whether --with-agentx-dom-sock-only or --without-agentx-dom-sock-only was given.
+if test "${with_agentx_dom_sock_only+set}" = set; then
+  withval="$with_agentx_dom_sock_only"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-agentx-dom-sock-only/--disable-agentx-dom-sock-only instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-agentx-dom-sock-only/--disable-agentx-dom-sock-only instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --enable-snmptrapd-subagent or --disable-snmptrapd-subagent was given.
+if test "${enable_snmptrapd_subagent+set}" = set; then
+  enableval="$enable_snmptrapd_subagent"
+
+fi;
+if test "x$enable_snmptrapd_subagent" = "xno"; then
+  cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_SNMPTRAPD_DISABLE_AGENTX 1
+_ACEOF
 
-
-# Check whether --with-dnssec-local-validation was given.
-if test "${with_dnssec_local_validation+set}" = set; then :
-  withval=$with_dnssec_local_validation; want_dnssec=$withval
-else
-  want_dnssec=no
 fi
 
-# Check whether --enable-dnssec-local-validation was given.
-if test "${enable_dnssec_local_validation+set}" = set; then :
-  enableval=$enable_dnssec_local_validation; as_fn_error $? "Invalid option. Use --with-dnssec-local-validation/--without-dnssec-local-validation instead" "$LINENO" 5
-fi
+# Check whether --with-snmptrapd-subagent or --without-snmptrapd-subagent was given.
+if test "${with_snmptrapd_subagent+set}" = set; then
+  withval="$with_snmptrapd_subagent"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-snmptrapd-subagent/--disable-snmptrapd-subagent instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-snmptrapd-subagent/--disable-snmptrapd-subagent instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
 
-# Check whether --with-dnssec was given.
-if test "${with_dnssec+set}" = set; then :
-  withval=$with_dnssec; as_fn_error $? "Invalid option. Use --with-dnssec-local-validation/--without-dnssec-local-validation instead" "$LINENO" 5
-fi
+# Check whether --with-opaque-special-types or --without-opaque-special-types was given.
+if test "${with_opaque_special_types+set}" = set; then
+  withval="$with_opaque_special_types"
 
-# Check whether --enable-dnssec was given.
-if test "${enable_dnssec+set}" = set; then :
-  enableval=$enable_dnssec; as_fn_error $? "Invalid option. Use --with-dnssec-local-validation/--without-dnssec-local-validation instead" "$LINENO" 5
-fi
+fi;
+# Check whether --enable-opaque-special-types or --disable-opaque-special-types was given.
+if test "${enable_opaque_special_types+set}" = set; then
+  enableval="$enable_opaque_special_types"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-opaque-special-types/--without-opaque-special-types instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-opaque-special-types/--without-opaque-special-types instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
 
+# Check whether --with-mibdirs or --without-mibdirs was given.
+if test "${with_mibdirs+set}" = set; then
+  withval="$with_mibdirs"
+  NETSNMP_DEFAULT_MIBDIRS="$with_mibdirs"
+    cat >>confdefs.h <<_ACEOF
+#define NETSNMP_DEFAULT_MIBDIRS "$with_mibdirs"
+_ACEOF
 
-# Check whether --with-rpm was given.
-if test "${with_rpm+set}" = set; then :
-  withval=$with_rpm;
-fi
+fi;
+# Check whether --enable-mibdirs or --disable-mibdirs was given.
+if test "${enable_mibdirs+set}" = set; then
+  enableval="$enable_mibdirs"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-mibdirs/--without-mibdirs instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-mibdirs/--without-mibdirs instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-   # Check whether --enable-rpm was given.
-if test "${enable_rpm+set}" = set; then :
-  enableval=$enable_rpm; as_fn_error $? "Invalid option. Use --with-rpm/--without-rpm instead" "$LINENO" 5
-fi
 
+# Check whether --with-mibs or --without-mibs was given.
+if test "${with_mibs+set}" = set; then
+  withval="$with_mibs"
+  NETSNMP_DEFAULT_MIBS="$with_mibs"
+fi;
+# enable-mibs is valid too, but means something else
 
 
-##
-#   Project: Build configuration settings
-##
+# Check whether --with-mibfiles or --without-mibfiles was given.
+if test "${with_mibfiles+set}" = set; then
+  withval="$with_mibfiles"
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_DEFAULT_MIBFILES "$with_mibfiles"
+_ACEOF
 
-#       Install prefix
-#
+fi;
+# Check whether --enable-mibfiles or --disable-mibfiles was given.
+if test "${enable_mibfiles+set}" = set; then
+  enableval="$enable_mibfiles"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-mibfiles/--without-mibfiles instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-mibfiles/--without-mibfiles instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-# Check whether --with-install-prefix was given.
-if test "${with_install_prefix+set}" = set; then :
-  withval=$with_install_prefix; INSTALL_PREFIX="$withval"
-fi
+# Check whether --enable-mib-config-checking or --disable-mib-config-checking was given.
+if test "${enable_mib_config_checking+set}" = set; then
+  enableval="$enable_mib_config_checking"
+  with_mib_cfg_checks="yes"
+else
+  with_mib_cfg_checks="no"
+fi;
 
+# Check whether --with-mib-config-checking or --without-mib-config-checking was given.
+if test "${with_mib_config_checking+set}" = set; then
+  withval="$with_mib_config_checking"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-mib-config-checking/--disable-mib-config-checking instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-mib-config-checking/--disable-mib-config-checking instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-if test "x$INSTALL_PREFIX" = "xyes" ; then
-  as_fn_error $? "--with-install-prefix requires an argument" "$LINENO" 5
-fi
-if test "x$INSTALL_PREFIX" = "xno" ; then
-  INSTALL_PREFIX=""
-fi
+# Check whether --enable-mib-config-debug or --disable-mib-config-debug was given.
+if test "${enable_mib_config_debug+set}" = set; then
+  enableval="$enable_mib_config_debug"
+  with_mib_cfg_debug="yes"
+else
+  with_mib_cfg_debug="no"
+fi;
 
+# Check whether --with-mib-config-checking or --without-mib-config-checking was given.
+if test "${with_mib_config_checking+set}" = set; then
+  withval="$with_mib_config_checking"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-mib-config-checking/--disable-mib-config-checking instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-mib-config-checking/--disable-mib-config-checking instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
+# Check whether --enable-mfd-rewrites or --disable-mfd-rewrites was given.
+if test "${enable_mfd_rewrites+set}" = set; then
+  enableval="$enable_mfd_rewrites"
 
-#
-#   Subsystems to build:
-#       Library
-#
-FEATUREHEADERS="library/features.h"
-FTMAINSUBS=""
+fi;
+if test "x$enable_mfd_rewrites" = "xyes"; then
+   cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_ENABLE_MFD_REWRITES 1
+_ACEOF
 
-#
-#       Agent
-#
-# Check whether --enable-agent was given.
-if test "${enable_agent+set}" = set; then :
-  enableval=$enable_agent;
 fi
 
+# Check whether --with-mfd-rewrites or --without-mfd-rewrites was given.
+if test "${with_mfd_rewrites+set}" = set; then
+  withval="$with_mfd_rewrites"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-mfd-rewrites/--disable-mfd-rewrites instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-mfd-rewrites/--disable-mfd-rewrites instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-# Check whether --with-agent was given.
-if test "${with_agent+set}" = set; then :
-  withval=$with_agent; as_fn_error $? "Invalid option. Use --enable-agent/--disable-agent instead" "$LINENO" 5
-fi
+askedpkcs=no
 
-if test "x$enable_agent" != "xno"; then
-   SNMPD='snmpd$(EXEEXT)'
-   MAINSUBS="$MAINSUBS agent"
-   FEATUREHEADERS="$FEATUREHEADERS agent/features-mibgroups.h agent/features.h"
-   FTMAINSUBS="agent $FTMAINSUBS"
-   TRAPLIBS='$(TRAPDWITHAGENT)'
-   USETRAPLIBS='$(USEAGENTLIBS)'
-else
-   SNMPD=""
-   # we still need/want the agentlibs (for subagents, e.g. snmptrapd)
-   MAINSUBS="$MAINSUBS agent"
-   # building snmptrapd w/o agentlibs doesn't work atm
-   #TRAPLIBS='$(TRAPDWITHOUTAGENT)'
-   #USETRAPLIBS='$(USELIBS)'
-   TRAPLIBS='$(TRAPDWITHAGENT)'
-   USETRAPLIBS='$(USEAGENTLIBS)'
-
-$as_echo "#define NETSNMP_DISABLE_AGENT 1" >>confdefs.h
+# Check whether --with-pkcs or --without-pkcs was given.
+if test "${with_pkcs+set}" = set; then
+  withval="$with_pkcs"
+  if test "x$withval" = "xyes"; then
+      askedpkcs=yes
+    elif test "x$withval" = "xno"; then
+      askedpkcs=no
+    elif test -d "$withval"; then
 
-fi
+  if test "x$withval" != x -a -d $withval; then
+     if test -d $withval/lib; then
+       LDFLAGS="-L$withval/lib $LDFLAGS"
+     fi
+     if test -d $withval/include; then
+	CPPFLAGS="-I$withval/include $CPPFLAGS"
+     fi
+  fi
 
+      askedpkcs=yes
+    fi
+fi;
+# Check whether --enable-pkcs or --disable-pkcs was given.
+if test "${enable_pkcs+set}" = set; then
+  enableval="$enable_pkcs"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-pkcs/--without-pkcs instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-pkcs/--without-pkcs instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --enable-testing-code or --disable-testing-code was given.
+if test "${enable_testing_code+set}" = set; then
+  enableval="$enable_testing_code"
+  cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_ENABLE_TESTING_CODE 1
+_ACEOF
+
+fi;
+
+# Check whether --with-testing-code or --without-testing-code was given.
+if test "${with_testing_code+set}" = set; then
+  withval="$with_testing_code"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-testing-code/--disable-testing-code instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-testing-code/--disable-testing-code instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --enable-reentrant or --disable-reentrant was given.
+if test "${enable_reentrant+set}" = set; then
+  enableval="$enable_reentrant"
+  with_res_locks="yes"
+else
+  with_res_locks="no"
+fi;
+
+# Check whether --with-reentrant or --without-reentrant was given.
+if test "${with_reentrant+set}" = set; then
+  withval="$with_reentrant"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-reentrant/--disable-reentrant instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-reentrant/--disable-reentrant instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+
+# Check whether --with-root-access or --without-root-access was given.
+if test "${with_root_access+set}" = set; then
+  withval="$with_root_access"
+
+fi;
+# Check whether --enable-root-access or --disable-root-access was given.
+if test "${enable_root_access+set}" = set; then
+  enableval="$enable_root_access"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-root-access/--without-root-access instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-root-access/--without-root-access instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+
+# Check whether --with-kmem-usage or --without-kmem-usage was given.
+if test "${with_kmem_usage+set}" = set; then
+  withval="$with_kmem_usage"
+
+fi;
+# Check whether --enable-kmem-usage or --disable-kmem-usage was given.
+if test "${enable_kmem_usage+set}" = set; then
+  enableval="$enable_kmem_usage"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-kmem-usage/--without-kmem-usage instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-kmem-usage/--without-kmem-usage instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+
+# Check whether --with-dummy-values or --without-dummy-values was given.
+if test "${with_dummy_values+set}" = set; then
+  withval="$with_dummy_values"
+
+fi;
+# Check whether --enable-dummy-values or --disable-dummy-values was given.
+if test "${enable_dummy_values+set}" = set; then
+  enableval="$enable_dummy_values"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-dummy-values/--without-dummy-values instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-dummy-values/--without-dummy-values instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+
+# Check whether --with-persistent-directory or --without-persistent-directory was given.
+if test "${with_persistent_directory+set}" = set; then
+  withval="$with_persistent_directory"
+  ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY="$with_persistent_directory"
+fi;
+# Check whether --enable-persistent-directory or --disable-persistent-directory was given.
+if test "${enable_persistent_directory+set}" = set; then
+  enableval="$enable_persistent_directory"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-persistent-directory/--without-persistent-directory instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-persistent-directory/--without-persistent-directory instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+default_persistent_mask=077
+
+# Check whether --with-persistent-mask or --without-persistent-mask was given.
+if test "${with_persistent_mask+set}" = set; then
+  withval="$with_persistent_mask"
 
+  if test "$withval" = yes; then
+    { { echo "$as_me:$LINENO: error:  Please provide a mask value " >&5
+echo "$as_me: error:  Please provide a mask value " >&2;}
+   { (exit 1); exit 1; }; };
+  fi
+  echo "$as_me:$LINENO: result: using default persistent mask $withval" >&5
+echo "${ECHO_T}using default persistent mask $withval" >&6
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_PERSISTENT_MASK $withval
+_ACEOF
 
 
+else
 
-#       Applications
-#
-# Check whether --enable-applications was given.
-if test "${enable_applications+set}" = set; then :
-  enableval=$enable_applications;
-fi
+  echo "$as_me:$LINENO: result: using default persistent mask $default_persistent_mask" >&5
+echo "${ECHO_T}using default persistent mask $default_persistent_mask" >&6
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_PERSISTENT_MASK $default_persistent_mask
+_ACEOF
 
 
-# Check whether --with-applications was given.
-if test "${with_applications+set}" = set; then :
-  withval=$with_applications; as_fn_error $? "Invalid option. Use --enable-applications/--disable-applications instead" "$LINENO" 5
-fi
+fi;
+# Check whether --enable-persistent-mask or --disable-persistent-mask was given.
+if test "${enable_persistent_mask+set}" = set; then
+  enableval="$enable_persistent_mask"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-persistent-mask instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-persistent-mask instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-if test "x$enable_applications" != "xno"; then
-   MAINSUBS="$MAINSUBS apps"
-   FEATUREHEADERS="$FEATUREHEADERS features-snmpnetstat.h features-apps.h"
-   FTMAINSUBS="apps $FTMAINSUBS"
-else
 
-$as_echo "#define NETSNMP_DISABLE_APPS 1" >>confdefs.h
+# Check whether --with-copy_persistent_files or --without-copy_persistent_files was given.
+if test "${with_copy_persistent_files+set}" = set; then
+  withval="$with_copy_persistent_files"
+  ac_cv_user_prompt_COPY_PERSISTENT_FILES="$with_copy_persistent_files"
+fi;
+# Check whether --enable-copy_persistent_files or --disable-copy_persistent_files was given.
+if test "${enable_copy_persistent_files+set}" = set; then
+  enableval="$enable_copy_persistent_files"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-copy_persistent_files/--without-copy_persistent_files instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-copy_persistent_files/--without-copy_persistent_files instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-fi
+default_temp_file_pattern="/tmp/snmpdXXXXXX"
 
-#       Manual pages
-#
-# Check whether --enable-manuals was given.
-if test "${enable_manuals+set}" = set; then :
-  enableval=$enable_manuals;
-fi
+# Check whether --with-temp-file-pattern or --without-temp-file-pattern was given.
+if test "${with_temp_file_pattern+set}" = set; then
+  withval="$with_temp_file_pattern"
 
+  if test "$withval" = yes; then
+    { { echo "$as_me:$LINENO: error:  Please provide a pattern " >&5
+echo "$as_me: error:  Please provide a pattern " >&2;}
+   { (exit 1); exit 1; }; };
+  fi
+  echo "$as_me:$LINENO: result: using temporary file pattern $withval" >&5
+echo "${ECHO_T}using temporary file pattern $withval" >&6
 
-# Check whether --with-manuals was given.
-if test "${with_manuals+set}" = set; then :
-  withval=$with_manuals; as_fn_error $? "Invalid option. Use --enable-manuals/--disable-manuals instead" "$LINENO" 5
-fi
+cat >>confdefs.h <<_ACEOF
+#define NETSNMP_TEMP_FILE_PATTERN "$withval"
+_ACEOF
 
-if test "x$enable_manuals" != "xno"; then
-   MAINSUBS="$MAINSUBS man"
-fi
 
-#       Supporting scripts
-#
-# Check whether --enable-scripts was given.
-if test "${enable_scripts+set}" = set; then :
-  enableval=$enable_scripts;
-fi
+else
 
+  echo "$as_me:$LINENO: result: using default temporary file pattern $default_temp_file_pattern" >&5
+echo "${ECHO_T}using default temporary file pattern $default_temp_file_pattern" >&6
 
-# Check whether --with-scripts was given.
-if test "${with_scripts+set}" = set; then :
-  withval=$with_scripts; as_fn_error $? "Invalid option. Use --enable-scripts/--disable-scripts instead" "$LINENO" 5
-fi
+cat >>confdefs.h <<_ACEOF
+#define NETSNMP_TEMP_FILE_PATTERN "$default_temp_file_pattern"
+_ACEOF
 
-if test "x$enable_scripts" != "xno"; then
-   MAINSUBS="$MAINSUBS local"
-fi
 
-#       MIB files
-#
-# Check whether --enable-mibs was given.
-if test "${enable_mibs+set}" = set; then :
-  enableval=$enable_mibs;
-fi
+fi;
+# Check whether --enable-temp-file-pattern or --disable-temp-file-pattern was given.
+if test "${enable_temp_file_pattern+set}" = set; then
+  enableval="$enable_temp_file_pattern"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-temp-file-pattern instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-temp-file-pattern instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-if test "x$enable_mibs" != "xno"; then
-   MAINSUBS="$MAINSUBS mibs"
-fi
-# with-mibs is valid too, but means something else
+default_agentx_socket="/var/agentx/master"
 
+# Check whether --with-agentx-socket or --without-agentx-socket was given.
+if test "${with_agentx_socket+set}" = set; then
+  withval="$with_agentx_socket"
 
+  if test "$withval" = yes; then
+    { { echo "$as_me:$LINENO: error:  Please provide a full path " >&5
+echo "$as_me: error:  Please provide a full path " >&2;}
+   { (exit 1); exit 1; }; };
+  fi
+  echo "$as_me:$LINENO: result: using AgentX socket $withval" >&5
+echo "${ECHO_T}using AgentX socket $withval" >&6
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what to build and install" >&5
-$as_echo_n "checking what to build and install... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAINSUBS" >&5
-$as_echo "$MAINSUBS" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define NETSNMP_AGENTX_SOCKET "$withval"
+_ACEOF
 
 
-#       MIB module validation (during "configure")
-#
-# Check whether --enable-mib-config-checking was given.
-if test "${enable_mib_config_checking+set}" = set; then :
-  enableval=$enable_mib_config_checking; if test "$enableval" = yes -o "$enableval" = no ; then
-     with_mib_cfg_checks="$enableval"
-   else
-     as_fn_error $? "Please use --enable/--disable-mib-config-checking" "$LINENO" 5
-   fi
 else
-  with_mib_cfg_checks="no"
-fi
-
-
-# Check whether --with-mib-config-checking was given.
-if test "${with_mib_config_checking+set}" = set; then :
-  withval=$with_mib_config_checking; as_fn_error $? "Invalid option. Use --enable-mib-config-checking/--disable-mib-config-checking instead" "$LINENO" 5
-fi
 
+  echo "$as_me:$LINENO: result: using default AgentX socket $default_agentx_socket" >&5
+echo "${ECHO_T}using default AgentX socket $default_agentx_socket" >&6
 
-# Check whether --enable-mib-config-debug was given.
-if test "${enable_mib_config_debug+set}" = set; then :
-  enableval=$enable_mib_config_debug; if test "$enableval" = yes -o "$enableval" = no ; then
-     with_mib_cfg_debug="$enableval"
-   else
-     as_fn_error $? "Please use --enable/--disable-mib-config-debug" "$LINENO" 5
-   fi
-else
-  with_mib_cfg_debug="no"
-fi
+cat >>confdefs.h <<_ACEOF
+#define NETSNMP_AGENTX_SOCKET "$default_agentx_socket"
+_ACEOF
 
 
-# Check whether --with-mib-config-debug was given.
-if test "${with_mib_config_debug+set}" = set; then :
-  withval=$with_mib_config_debug; as_fn_error $? "Invalid option. Use --enable-mib-config-debug/--disable-mib-config-debug instead" "$LINENO" 5
-fi
+fi;
+# Check whether --enable-agentx-socket or --disable-agentx-socket was given.
+if test "${enable_agentx_socket+set}" = set; then
+  enableval="$enable_agentx_socket"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-agentx-socket instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-agentx-socket instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
 
+# Check whether --with-default-snmp-version or --without-default-snmp-version was given.
+if test "${with_default_snmp_version+set}" = set; then
+  withval="$with_default_snmp_version"
+  ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION="$with_default_snmp_version"
+fi;
+# Check whether --enable-default-snmp-version or --disable-default-snmp-version was given.
+if test "${enable_default_snmp_version+set}" = set; then
+  enableval="$enable_default_snmp_version"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-default-snmp-version/--without-default-snmp-version instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-default-snmp-version/--without-default-snmp-version instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-#       Version-specific features
-#
-# Check whether --enable-new-features was given.
-if test "${enable_new_features+set}" = set; then :
-  enableval=$enable_new_features;
+# we test this now and later as well.  we test it now so configure can die
+# early on with an error rather than waiting till the end of the script.
+if test "x$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "x"; then
+  if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" = "2c"; then
+    ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION="2"
+  fi
+  if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "1" -a "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "2" -a "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "3"; then
+    { { echo "$as_me:$LINENO: error: Illegal version number passed to --with-default-snmp-version" >&5
+echo "$as_me: error: Illegal version number passed to --with-default-snmp-version" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
 fi
 
 
-# Check whether --enable-old-features was given.
-if test "${enable_old_features+set}" = set; then :
-  enableval=$enable_old_features;
+# Check whether --with-sys_contact or --without-sys_contact was given.
+if test "${with_sys_contact+set}" = set; then
+  withval="$with_sys_contact"
+  ac_cv_user_prompt_NETSNMP_SYS_CONTACT="$with_sys_contact"
+fi;
+# Check whether --enable-sys_contact or --disable-sys_contact was given.
+if test "${enable_sys_contact+set}" = set; then
+  enableval="$enable_sys_contact"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-sys-contact/--without-sys-contact instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-sys-contact/--without-sys-contact instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+
+# Check whether --with-sys_location or --without-sys_location was given.
+if test "${with_sys_location+set}" = set; then
+  withval="$with_sys_location"
+  ac_cv_user_prompt_NETSNMP_SYS_LOC="$with_sys_location"
+fi;
+# Check whether --enable-sys_location or --disable-sys_location was given.
+if test "${enable_sys_location+set}" = set; then
+  enableval="$enable_sys_location"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-sys-location/--without-sys-location instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-sys-location/--without-sys-location instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+
+# Check whether --with-logfile or --without-logfile was given.
+if test "${with_logfile+set}" = set; then
+  withval="$with_logfile"
+  ac_cv_user_prompt_NETSNMP_LOGFILE="$with_logfile"
+fi;
+# Check whether --enable-logfile or --disable-logfile was given.
+if test "${enable_logfile+set}" = set; then
+  enableval="$enable_logfile"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-logfile/--without-logfile instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-logfile/--without-logfile instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+if test "$ac_cv_user_prompt_NETSNMP_LOGFILE" = "no"; then
+    ac_cv_user_prompt_NETSNMP_LOGFILE="none"
 fi
 
 
+# Check whether --with-transports or --without-transports was given.
+if test "${with_transports+set}" = set; then
+  withval="$with_transports"
 
-# Check whether --with-features-of was given.
-if test "${with_features_of+set}" = set; then :
-  withval=$with_features_of;
-else
-  with_features_of=$PACKAGE_VERSION
-fi
+fi;
 
+# Check whether --with-out_transports or --without-out_transports was given.
+if test "${with_out_transports+set}" = set; then
+  withval="$with_out_transports"
 
+fi;
 
-#       Manual prompting during "configure"
+#
+# Catch common mistakes in transport options
 #
 
-# Check whether --with-defaults was given.
-if test "${with_defaults+set}" = set; then :
-  withval=$with_defaults; if test "$withval" = yes -o "$withval" = no ; then
-     defaults="$withval"
-   else
-     as_fn_error $? "Please use --with/--without-defaults" "$LINENO" 5
-   fi
-else
-  defaults="no"
-fi
+# Check whether --with-transport or --without-transport was given.
+if test "${with_transport+set}" = set; then
+  withval="$with_transport"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-transports/--without-transports instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-transports/--without-transports instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --with-out-transport or --without-out-transport was given.
+if test "${with_out_transport+set}" = set; then
+  withval="$with_out_transport"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-out-transports/--without-out-transports instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-out-transports/--without-out-transports instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+#
+# security modules
+#
 
-   # Check whether --enable-defaults was given.
-if test "${enable_defaults+set}" = set; then :
-  enableval=$enable_defaults; as_fn_error $? "Invalid option. Use --with-defaults/--without-defaults instead" "$LINENO" 5
-fi
 
+# Check whether --with-security-modules or --without-security-modules was given.
+if test "${with_security_modules+set}" = set; then
+  withval="$with_security_modules"
 
+fi;
+# Check whether --enable-security-modules or --disable-security-modules was given.
+if test "${enable_security_modules+set}" = set; then
+  enableval="$enable_security_modules"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-security-modules/--without-security-modules instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-security-modules/--without-security-modules instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-#       UCD compatability
 #
-# Check whether --enable-ucd-snmp-compatibility was given.
-if test "${enable_ucd_snmp_compatibility+set}" = set; then :
-  enableval=$enable_ucd_snmp_compatibility;
-fi
+# mib modules
+#
 
 
-# Check whether --with-ucd-snmp-compatibility was given.
-if test "${with_ucd_snmp_compatibility+set}" = set; then :
-  withval=$with_ucd_snmp_compatibility; as_fn_error $? "Invalid option. Use --enable-ucd-snmp-compatibility/--disable-ucd-snmp-compatibility instead" "$LINENO" 5
-fi
+# Check whether --with-mib_modules or --without-mib_modules was given.
+if test "${with_mib_modules+set}" = set; then
+  withval="$with_mib_modules"
 
+fi;
+# Check whether --enable-mib_modules or --disable-mib_modules was given.
+if test "${enable_mib_modules+set}" = set; then
+  enableval="$enable_mib_modules"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-mib-modules/--without-mib-modules instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-mib-modules/--without-mib-modules instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-if test "x$enable_ucd_snmp_compatibility" = "xyes" ; then
-  installucdheaders=installucdheaders
-  installucdlibs=installucdlibs
 
-  cat >> configure-summary << EOF
-  UCD-SNMP compatability:     enabled
-EOF
+# Check whether --with-out_mib_modules or --without-out_mib_modules was given.
+if test "${with_out_mib_modules+set}" = set; then
+  withval="$with_out_mib_modules"
 
-fi
+fi;
+# Check whether --enable-out_mib_modules or --disable-out_mib_modules was given.
+if test "${enable_out_mib_modules+set}" = set; then
+  enableval="$enable_out_mib_modules"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-out-mib-modules/--without-out-mib-modules instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-out-mib-modules/--without-out-mib-modules instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
 
+#
+
+# Check whether --with-enterprise-oid or --without-enterprise-oid was given.
+if test "${with_enterprise_oid+set}" = set; then
+  withval="$with_enterprise_oid"
 
+  if test "$withval" = yes; then
+    { { echo "$as_me:$LINENO: error:  Please provide a value for the enterprise number " >&5
+echo "$as_me: error:  Please provide a value for the enterprise number " >&2;}
+   { (exit 1); exit 1; }; };
+  fi
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_ENTERPRISE_OID $withval
+_ACEOF
 
-##
-#   Project: Library: MIB configuration settings
-##
+  ent_oid="1,3,6,1,4,1,$withval"
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_ENTERPRISE_MIB $ent_oid
+_ACEOF
 
-# Check whether --enable-mib-loading was given.
-if test "${enable_mib_loading+set}" = set; then :
-  enableval=$enable_mib_loading;
-fi
+  ent_dot_oid="1.3.6.1.4.1.$withval"
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_ENTERPRISE_DOT_MIB $ent_dot_oid
+_ACEOF
 
+  echo "$as_me:$LINENO: result: using enterprise number $withval" >&5
+echo "${ECHO_T}using enterprise number $withval" >&6
 
-# Check whether --with-mib-loading was given.
-if test "${with_mib_loading+set}" = set; then :
-  withval=$with_mib_loading; as_fn_error $? "Invalid option. Use --enable-mib-loading/--disable-mib-loading instead" "$LINENO" 5
-fi
+else
 
-if test "x$enable_mib_loading" = "xno"; then
+  echo "$as_me:$LINENO: result: using default \"enterprise.net-snmp\"" >&5
+echo "${ECHO_T}using default \"enterprise.net-snmp\"" >&6
 
-$as_echo "#define NETSNMP_DISABLE_MIB_LOADING 1" >>confdefs.h
+fi;
+# Check whether --enable-enterprise-oid or --disable-enterprise-oid was given.
+if test "${enable_enterprise_oid+set}" = set; then
+  enableval="$enable_enterprise_oid"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-enterprise-oid/--without-enterprise-oid instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-enterprise-oid/--without-enterprise-oid instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-fi
 
+# Check whether --with-enterprise-sysoid or --without-enterprise-sysoid was given.
+if test "${with_enterprise_sysoid+set}" = set; then
+  withval="$with_enterprise_sysoid"
 
-# Check whether --with-mibdirs was given.
-if test "${with_mibdirs+set}" = set; then :
-  withval=$with_mibdirs; NETSNMP_DEFAULT_MIBDIRS="$with_mibdirs"
+  if test "$withval" = yes; then
+    { { echo "$as_me:$LINENO: error:  Please provide a base OID value " >&5
+echo "$as_me: error:  Please provide a base OID value " >&2;}
+   { (exit 1); exit 1; }; };
+  fi
+  sys_oid=`echo "$withval" | sed 's/^\.//' | sed 's/\./\,/g'`
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_SYSTEM_MIB $sys_oid
+_ACEOF
 
-cat >>confdefs.h <<_ACEOF
-#define NETSNMP_DEFAULT_MIBDIRS "$with_mibdirs"
+  sys_dot_oid=`echo "$withval" | sed 's/^\.//'`
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_SYSTEM_DOT_MIB $sys_dot_oid
 _ACEOF
 
-fi
+  sysoid_len=`echo "$withval" | sed 's/^\.//g' | awk -F\. '{ print NF }'`
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_SYSTEM_DOT_MIB_LENGTH $sysoid_len
+_ACEOF
 
-   # Check whether --enable-mibdirs was given.
-if test "${enable_mibdirs+set}" = set; then :
-  enableval=$enable_mibdirs; as_fn_error $? "Invalid option. Use --with-mibdirs/--without-mibdirs instead" "$LINENO" 5
-fi
+  echo "$as_me:$LINENO: result: using enterprise sysOID $withval ...." >&5
+echo "${ECHO_T}using enterprise sysOID $withval ...." >&6
 
+else
 
+  echo "$as_me:$LINENO: result: using default enterprise sysOID \"NET-SNMP-MIB::netSnmpAgentOIDs...\"" >&5
+echo "${ECHO_T}using default enterprise sysOID \"NET-SNMP-MIB::netSnmpAgentOIDs...\"" >&6
 
-# Check whether --with-mibs was given.
-if test "${with_mibs+set}" = set; then :
-  withval=$with_mibs; NETSNMP_DEFAULT_MIBS="$with_mibs"
-fi
+fi;
+# Check whether --enable-enterprise-sysoid or --disable-enterprise-sysoid was given.
+if test "${enable_enterprise_sysoid+set}" = set; then
+  enableval="$enable_enterprise_sysoid"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-enterprise-sysoid/--without-enterprise-sysoid instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-enterprise-sysoid/--without-enterprise-sysoid instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-# enable-mibs is valid too, but means something else
 
+# Check whether --with-enterprise-notification-oid or --without-enterprise-notification-oid was given.
+if test "${with_enterprise_notification_oid+set}" = set; then
+  withval="$with_enterprise_notification_oid"
 
-# Check whether --with-mibfiles was given.
-if test "${with_mibfiles+set}" = set; then :
-  withval=$with_mibfiles;
-cat >>confdefs.h <<_ACEOF
-#define NETSNMP_DEFAULT_MIBFILES "$with_mibfiles"
+  if test "$withval" = yes; then
+    { { echo "$as_me:$LINENO: error:  Please provide a base OID value " >&5
+echo "$as_me: error:  Please provide a base OID value " >&2;}
+   { (exit 1); exit 1; }; };
+  fi
+  notification_oid=`echo "$withval" | sed 's/^\.//' | sed 's/\./\,/g'`
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_NOTIFICATION_MIB $notification_oid
 _ACEOF
 
-fi
-
-   # Check whether --enable-mibfiles was given.
-if test "${enable_mibfiles+set}" = set; then :
-  enableval=$enable_mibfiles; as_fn_error $? "Invalid option. Use --with-mibfiles/--without-mibfiles instead" "$LINENO" 5
-fi
+  notification_dot_oid=`echo "$withval" | sed 's/^\.//'`
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_NOTIFICATION_DOT_MIB $notification_dot_oid
+_ACEOF
 
+  notificationoid_len=`echo "$withval" | sed 's/^\.//g' | awk -F\. '{ print NF }'`
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_NOTIFICATION_DOT_MIB_LENGTH $notificationoid_len
+_ACEOF
 
+  echo "$as_me:$LINENO: result: using enterprise notifications $withval" >&5
+echo "${ECHO_T}using enterprise notifications $withval" >&6
 
-##
-#   Project: Library: Security configuration
-##
+else
 
-# Check whether --enable-des was given.
-if test "${enable_des+set}" = set; then :
-  enableval=$enable_des;
-fi
+  echo "$as_me:$LINENO: result: using default notifications \"NET-SNMP-MIB::netSnmpNotifications\"" >&5
+echo "${ECHO_T}using default notifications \"NET-SNMP-MIB::netSnmpNotifications\"" >&6
 
+fi;
+# Check whether --enable-enterprise-notification-oid or --disable-enterprise-notification-oid was given.
+if test "${enable_enterprise_notification_oid+set}" = set; then
+  enableval="$enable_enterprise_notification_oid"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-enterprise-notification-oid/--without-enterprise-notification-oid instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-enterprise-notification-oid/--without-enterprise-notification-oid instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+#
+# Catch common mistakes in configure options
+#
 
-# Check whether --with-des was given.
-if test "${with_des+set}" = set; then :
-  withval=$with_des; as_fn_error $? "Invalid option. Use --enable-des/--disable-des instead" "$LINENO" 5
-fi
+# Check whether --with-mib-module or --without-mib-module was given.
+if test "${with_mib_module+set}" = set; then
+  withval="$with_mib_module"
+  { { echo "$as_me:$LINENO: error:  Invalid option1. Use --with-mib-modules instead " >&5
+echo "$as_me: error:  Invalid option1. Use --with-mib-modules instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --with-module or --without-module was given.
+if test "${with_module+set}" = set; then
+  withval="$with_module"
+  { { echo "$as_me:$LINENO: error:  Invalid option3. Use --with-mib-modules instead " >&5
+echo "$as_me: error:  Invalid option3. Use --with-mib-modules instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --with-modules or --without-modules was given.
+if test "${with_modules+set}" = set; then
+  withval="$with_modules"
+  { { echo "$as_me:$LINENO: error:  Invalid option4. Use --with-mib-modules instead " >&5
+echo "$as_me: error:  Invalid option4. Use --with-mib-modules instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+
+# Check whether --with-out-mib-module or --without-out-mib-module was given.
+if test "${with_out_mib_module+set}" = set; then
+  withval="$with_out_mib_module"
+  { { echo "$as_me:$LINENO: error:  Invalid option5. Use --with-out-mib-modules instead " >&5
+echo "$as_me: error:  Invalid option5. Use --with-out-mib-modules instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --with-out-modules or --without-out-modules was given.
+if test "${with_out_modules+set}" = set; then
+  withval="$with_out_modules"
+  { { echo "$as_me:$LINENO: error:  Invalid option7. Use --with-out-mib-modules instead " >&5
+echo "$as_me: error:  Invalid option7. Use --with-out-mib-modules instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+# Check whether --with-out-module or --without-out-module was given.
+if test "${with_out_module+set}" = set; then
+  withval="$with_out_module"
+  { { echo "$as_me:$LINENO: error:  Invalid option8. Use --with-out-mib-modules instead " >&5
+echo "$as_me: error:  Invalid option8. Use --with-out-mib-modules instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
+#
+# Perl specific
+#
+
+# Check whether --with-perl-modules or --without-perl-modules was given.
+if test "${with_perl_modules+set}" = set; then
+  withval="$with_perl_modules"
 
-if test "x$enable_des" = "xno"; then
+    if test "$withval" = "no"; then
+      install_perl="no"
+    else
+      install_perl="yes"
+      if test "$withval" != "yes"; then
+        PERLARGS="$withval"
+      fi
+    fi
 
-$as_echo "#define NETSNMP_DISABLE_DES 1" >>confdefs.h
+else
+  install_perl="try"
+fi;
 
-fi
+# Check whether --enable-embedded-perl or --disable-embedded-perl was given.
+if test "${enable_embedded_perl+set}" = set; then
+  enableval="$enable_embedded_perl"
+  embed_perl="$enableval"
+else
+  embed_perl="try"
+fi;
 
-# Check whether --enable-privacy was given.
-if test "${enable_privacy+set}" = set; then :
-  enableval=$enable_privacy;
-fi
+# Check whether --enable-perl-cc-checks or --disable-perl-cc-checks was given.
+if test "${enable_perl_cc_checks+set}" = set; then
+  enableval="$enable_perl_cc_checks"
 
+fi;
 
-# Check whether --with-privacy was given.
-if test "${with_privacy+set}" = set; then :
-  withval=$with_privacy; as_fn_error $? "Invalid option. Use --enable-privacy/--disable-privacy instead" "$LINENO" 5
-fi
+# Common perl mistakes
+# Check whether --enable-perl-modules or --disable-perl-modules was given.
+if test "${enable_perl_modules+set}" = set; then
+  enableval="$enable_perl_modules"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-perl-modules/--without-perl-modules instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-perl-modules/--without-perl-modules instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-if test "x$enable_privacy" != "xno"; then
+# Check whether --with-embedded-perl or --without-embedded-perl was given.
+if test "${with_embedded_perl+set}" = set; then
+  withval="$with_embedded_perl"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-embedded-perl/--disable-embedded-perl instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-embedded-perl/--disable-embedded-perl instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-$as_echo "#define NETSNMP_ENABLE_SCAPI_AUTHPRIV 1" >>confdefs.h
+# Check whether --with-perl-cc-checks or --without-perl-cc-checks was given.
+if test "${with_perl_cc_checks+set}" = set; then
+  withval="$with_perl_cc_checks"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-perl-cc-checks/--disable-perl-cc-checks instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-perl-cc-checks/--disable-perl-cc-checks instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-fi
 
-# Check whether --enable-md5 was given.
-if test "${enable_md5+set}" = set; then :
-  enableval=$enable_md5;
-fi
+#
+# Python specific
+#
 
+# Check whether --with-python-modules or --without-python-modules was given.
+if test "${with_python_modules+set}" = set; then
+  withval="$with_python_modules"
 
-# Check whether --with-md5 was given.
-if test "${with_md5+set}" = set; then :
-  withval=$with_md5; as_fn_error $? "Invalid option. Use --enable-md5/--disable-md5 instead" "$LINENO" 5
-fi
+    install_python="yes"
+    if test "$withval" = "yes"; then
+      PYTHONARGS=""
+    elif test "$withval" = "no"; then
+      PYTHONARGS=""
+      install_python="no"
+    else
+      PYTHONARGS="$withval"
+    fi
 
-if test "x$enable_md5" = "xno"; then
+else
+  install_python="no"
+fi;
 
-$as_echo "#define NETSNMP_DISABLE_MD5 1" >>confdefs.h
+# other flags
 
-fi
 
-# Check whether --enable-internal-md5 was given.
-if test "${enable_internal_md5+set}" = set; then :
-  enableval=$enable_internal_md5;
-fi
+# Check whether --with-server-send-buf or --without-server-send-buf was given.
+if test "${with_server_send_buf+set}" = set; then
+  withval="$with_server_send_buf"
 
+   if test "$withval" = yes; then
+    { { echo "$as_me:$LINENO: error:  Please provide a positive number for the server send buffer " >&5
+echo "$as_me: error:  Please provide a positive number for the server send buffer " >&2;}
+   { (exit 1); exit 1; }; }
+   fi
+   cat >>confdefs.h <<_ACEOF
+#define NETSNMP_DEFAULT_SERVER_SEND_BUF $withval
+_ACEOF
 
-# Check whether --with-internal-md5 was given.
-if test "${with_internal_md5+set}" = set; then :
-  withval=$with_internal_md5; as_fn_error $? "Invalid option. Use --enable-internal-md5/--disable-internal-md5 instead" "$LINENO" 5
-fi
+else
+  echo "$as_me:$LINENO: result: using OS default send buffer size for server sockets" >&5
+echo "${ECHO_T}using OS default send buffer size for server sockets" >&6
+fi;
+# Check whether --enable-server-send-buf or --disable-server-send-buf was given.
+if test "${enable_server_send_buf+set}" = set; then
+  enableval="$enable_server_send_buf"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-server-send-buf/--without-server-send-buf instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-server-send-buf/--without-server-send-buf instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-if test "x$enable_internal_md5" = "xyes"; then
-  if test "x$enable_md5" = "xno"; then
-    as_fn_error $? "You can not specify both --enable-internal-md5 and --disable-md5" "$LINENO" 5
-  else
 
-$as_echo "#define NETSNMP_USE_INTERNAL_MD5 1" >>confdefs.h
+# Check whether --with-server-recv-buf or --without-server-recv-buf was given.
+if test "${with_server_recv_buf+set}" = set; then
+  withval="$with_server_recv_buf"
 
+  if test "$withval" = yes; then
+    { { echo "$as_me:$LINENO: error:  Please provide a positive number for the server recv buffer " >&5
+echo "$as_me: error:  Please provide a positive number for the server recv buffer " >&2;}
+   { (exit 1); exit 1; }; }
   fi
-fi
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_DEFAULT_SERVER_RECV_BUF $withval
+_ACEOF
 
+else
+  echo "$as_me:$LINENO: result: using OS default recv buffer size for server sockets" >&5
+echo "${ECHO_T}using OS default recv buffer size for server sockets" >&6
+fi;
+# Check whether --enable-server-recv-buf or --disable-server-recv-buf was given.
+if test "${enable_server_recv_buf+set}" = set; then
+  enableval="$enable_server_recv_buf"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-server-recv-buf/--without-server-recv-buf instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-server-recv-buf/--without-server-recv-buf instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-##
-#   Project: Library: Misc configuration
-##
 
+# Check whether --with-client-send-buf or --without-client-send-buf was given.
+if test "${with_client_send_buf+set}" = set; then
+  withval="$with_client_send_buf"
 
-# Check whether --with-opaque-special-types was given.
-if test "${with_opaque_special_types+set}" = set; then :
-  withval=$with_opaque_special_types;
-fi
+  if test "$withval" = yes; then
+    { { echo "$as_me:$LINENO: error:  Please provide a positive number for the client send buffer " >&5
+echo "$as_me: error:  Please provide a positive number for the client send buffer " >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_DEFAULT_CLIENT_SEND_BUF $withval
+_ACEOF
 
-   # Check whether --enable-opaque-special-types was given.
-if test "${enable_opaque_special_types+set}" = set; then :
-  enableval=$enable_opaque_special_types; as_fn_error $? "Invalid option. Use --with-opaque-special-types/--without-opaque-special-types instead" "$LINENO" 5
-fi
+else
+  echo "$as_me:$LINENO: result: using OS default send buffer size for client sockets" >&5
+echo "${ECHO_T}using OS default send buffer size for client sockets" >&6
+fi;
+# Check whether --enable-client-send-buf or --disable-client-send-buf was given.
+if test "${enable_client_send_buf+set}" = set; then
+  enableval="$enable_client_send_buf"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-client-send-buf/--without-client-send-buf instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-client-send-buf/--without-client-send-buf instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-# Only define if specifically chosen as --without (i.e., default to true).
-if test "x$with_opaque_special_types" != "xno"; then
 
-$as_echo "#define NETSNMP_WITH_OPAQUE_SPECIAL_TYPES 1" >>confdefs.h
+# Check whether --with-client-recv-buf or --without-client-recv-buf was given.
+if test "${with_client_recv_buf+set}" = set; then
+  withval="$with_client_recv_buf"
 
-fi
+  if test "$withval" = yes; then
+    { { echo "$as_me:$LINENO: error:  Please provide a positive number for the client recv buffer " >&5
+echo "$as_me: error:  Please provide a positive number for the client recv buffer " >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_DEFAULT_CLIENT_RECV_BUF $withval
+_ACEOF
 
-# Check whether --enable-ipv6 was given.
-if test "${enable_ipv6+set}" = set; then :
-  enableval=$enable_ipv6; if test "x$enable_ipv6" = "xyes"; then
+else
+  echo "$as_me:$LINENO: result: using OS default recv buffer size for client sockets" >&5
+echo "${ECHO_T}using OS default recv buffer size for client sockets" >&6
+fi;
+# Check whether --enable-client-recv-buf or --disable-client-recv-buf was given.
+if test "${enable_client_recv_buf+set}" = set; then
+  enableval="$enable_client_recv_buf"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-client-recv-buf/--without-client-recv-buf instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-client-recv-buf/--without-client-recv-buf instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
-$as_echo "#define NETSNMP_ENABLE_IPV6 1" >>confdefs.h
+#
+# otherwise prompted information
+#
 
-    fi
-fi
+# Check whether --with-defaults or --without-defaults was given.
+if test "${with_defaults+set}" = set; then
+  withval="$with_defaults"
+  defaults="yes"
+else
+  defaults="no"
+fi;
+# Check whether --enable-defaults or --disable-defaults was given.
+if test "${enable_defaults+set}" = set; then
+  enableval="$enable_defaults"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-defaults/--without-defaults instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-defaults/--without-defaults instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
+# Check whether --enable-ucd-snmp-compatibility or --disable-ucd-snmp-compatibility was given.
+if test "${enable_ucd_snmp_compatibility+set}" = set; then
+  enableval="$enable_ucd_snmp_compatibility"
 
-# Check whether --with-ipv6 was given.
-if test "${with_ipv6+set}" = set; then :
-  withval=$with_ipv6; as_fn_error $? "Invalid option. Use --enable-ipv6/--disable-ipv6 instead" "$LINENO" 5
-fi
+fi;
 
+# Check whether --with-ucd-snmp-compatibility or --without-ucd-snmp-compatibility was given.
+if test "${with_ucd_snmp_compatibility+set}" = set; then
+  withval="$with_ucd_snmp_compatibility"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --enable-ucd-snmp-compatibility/--disable-ucd-snmp-compatibility instead " >&5
+echo "$as_me: error:  Invalid option. Use --enable-ucd-snmp-compatibility/--disable-ucd-snmp-compatibility instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
 
+#
+# setup install targets
+#
+if test "x$enable_ucd_snmp_compatibility" = "xyes" ; then
+  installucdheaders=installucdheaders
+  installucdlibs=installucdlibs
 
-# Check whether --with-logfile was given.
-if test "${with_logfile+set}" = set; then :
-  withval=$with_logfile; ac_cv_user_prompt_NETSNMP_LOGFILE="$with_logfile"
-fi
+  cat >> configure-summary << EOF
+  UCD-SNMP compatability:     enabled
+EOF
 
-   # Check whether --enable-logfile was given.
-if test "${enable_logfile+set}" = set; then :
-  enableval=$enable_logfile; as_fn_error $? "Invalid option. Use --with-logfile/--without-logfile instead" "$LINENO" 5
 fi
 
-if test "$ac_cv_user_prompt_NETSNMP_LOGFILE" = "no"; then
-    ac_cv_user_prompt_NETSNMP_LOGFILE="none"
-fi
 
 
-# Check whether --with-persistent-directory was given.
-if test "${with_persistent_directory+set}" = set; then :
-  withval=$with_persistent_directory; ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY="$with_persistent_directory"
-fi
+# Only define if specifically chosen as --without (i.e., default to true).
+if test "x$with_root_access" = "xno"; then
+  cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_NO_ROOT_ACCESS 1
+_ACEOF
 
-   # Check whether --enable-persistent-directory was given.
-if test "${enable_persistent_directory+set}" = set; then :
-  enableval=$enable_persistent_directory; as_fn_error $? "Invalid option. Use --with-persistent-directory/--without-persistent-directory instead" "$LINENO" 5
 fi
 
+# Only define if specifically chosen as --without (i.e., default to true).
+if test "x$with_kmem_usage" = "xno"; then
+  cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_NO_KMEM_USAGE 1
+_ACEOF
 
-
-# Check whether --with-persistent-mask was given.
-if test "${with_persistent_mask+set}" = set; then :
-  withval=$with_persistent_mask; if test `expr "X$withval" : 'X[0-7]*$'` -eq 4 ; then
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: using persistent mask $withval" >&5
-$as_echo "using persistent mask $withval" >&6; }
-     withval="0$withval"
-   else
-     as_fn_error $? "Please provide a three digit octal persistent mask value" "$LINENO" 5
-   fi
-else
-  withval=077
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: using default persistent mask $withval" >&5
-$as_echo "using default persistent mask $withval" >&6; }
-fi
-
-   # Check whether --enable-persistent-mask was given.
-if test "${enable_persistent_mask+set}" = set; then :
-  enableval=$enable_persistent_mask; as_fn_error $? "Invalid option. Use --with-persistent-mask/--without-persistent-mask instead" "$LINENO" 5
 fi
 
-
-cat >>confdefs.h <<_ACEOF
-#define NETSNMP_PERSISTENT_MASK $withval
+# Define unless specifically suppressed (i.e., option defaults to false).
+if test "x$with_dummy_values" != "xyes"; then
+  cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_NO_DUMMY_VALUES 1
 _ACEOF
 
-
-
-# Check whether --with-copy_persistent_files was given.
-if test "${with_copy_persistent_files+set}" = set; then :
-  withval=$with_copy_persistent_files; ac_cv_user_prompt_COPY_PERSISTENT_FILES="$with_copy_persistent_files"
 fi
 
-   # Check whether --enable-copy_persistent_files was given.
-if test "${enable_copy_persistent_files+set}" = set; then :
-  enableval=$enable_copy_persistent_files; as_fn_error $? "Invalid option. Use --with-copy_persistent_files/--without-copy_persistent_files instead" "$LINENO" 5
+# Only define if specifically chosen as --without (i.e., default to true).
+if test "x$with_opaque_special_types" != "xno"; then
+  cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_WITH_OPAQUE_SPECIAL_TYPES 1
+_ACEOF
+
 fi
 
 
-default_temp_file_pattern="/tmp/snmpdXXXXXX"
+# overflow problems with hpux's sh
+# taken from Perl's Configure script
 
-# Check whether --with-temp-file-pattern was given.
-if test "${with_temp_file_pattern+set}" = set; then :
-  withval=$with_temp_file_pattern; if test `expr "X$withval" : ".*XXXXXX$"` -ne 0 ; then
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: using temporary file pattern $withval" >&5
-$as_echo "using temporary file pattern $withval" >&6; }
-   else
-     as_fn_error $? "temporary file pattens must end with 6 X's" "$LINENO" 5
-   fi
+echo "$as_me:$LINENO: checking if I need to feed myself to ksh" >&5
+echo $ECHO_N "checking if I need to feed myself to ksh... $ECHO_C" >&6
+if test -f /hp-ux -a -f /bin/ksh; then
+  if (PATH=.; alias -x) >/dev/null 2>&1; then
+    echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+  else
+    echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+    if test "x$1" = "x"; then
+      exec /bin/ksh $0
+    else
+      exec /bin/ksh $0 "$@"
+    fi
+  fi
 else
-  withval="$default_temp_file_pattern"
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: using default temporary file pattern $withval" >&5
-$as_echo "using default temporary file pattern $withval" >&6; }
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-   # Check whether --enable-temp-file-pattern was given.
-if test "${enable_temp_file_pattern+set}" = set; then :
-  enableval=$enable_temp_file_pattern; as_fn_error $? "Invalid option. Use --with-temp-file-pattern/--without-temp-file-pattern instead" "$LINENO" 5
+if test "x$developer" != "xno" -a -f $srcdir/remove-files; then
+  # turn on the developer flag when taken from a SVN checkout (not a release)
+  developer="yes"
 fi
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-cat >>confdefs.h <<_ACEOF
-#define NETSNMP_TEMP_FILE_PATTERN "$withval"
-_ACEOF
-
-
-
-##
-#   Project: Library: Version configuration
-##
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
-SNMP_VERSIONS=""
-# Check whether --enable-snmpv1 was given.
-if test "${enable_snmpv1+set}" = set; then :
-  enableval=$enable_snmpv1;
 fi
-
-
-# Check whether --with-snmpv1 was given.
-if test "${with_snmpv1+set}" = set; then :
-  withval=$with_snmpv1; as_fn_error $? "Invalid option. Use --enable-snmpv1/--disable-snmpv1 instead" "$LINENO" 5
 fi
-
-if test "x$enable_snmpv1" = "xno"; then
-
-$as_echo "#define NETSNMP_DISABLE_SNMPV1 1" >>confdefs.h
-
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
 else
-  SNMP_VERSIONS="$SNMP_VERSIONS 1"
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-# Check whether --enable-snmpv2c was given.
-if test "${enable_snmpv2c+set}" = set; then :
-  enableval=$enable_snmpv2c;
 fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
-
-# Check whether --with-snmpv2c was given.
-if test "${with_snmpv2c+set}" = set; then :
-  withval=$with_snmpv2c; as_fn_error $? "Invalid option. Use --enable-snmpv2c/--disable-snmpv2c instead" "$LINENO" 5
 fi
-
-if test "x$enable_snmpv2c" = "xno"; then
-
-$as_echo "#define NETSNMP_DISABLE_SNMPV2C 1" >>confdefs.h
-
-else
-  SNMP_VERSIONS="$SNMP_VERSIONS 2c"
 fi
-
-SNMP_VERSIONS="$SNMP_VERSIONS 3"
-
-  cat >> configure-summary << EOF
-  SNMP Versions Supported:   $SNMP_VERSIONS
-EOF
-
-
-
-# Check whether --with-default-snmp-version was given.
-if test "${with_default_snmp_version+set}" = set; then :
-  withval=$with_default_snmp_version; ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION="$with_default_snmp_version"
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-   # Check whether --enable-default-snmp-version was given.
-if test "${enable_default_snmp_version+set}" = set; then :
-  enableval=$enable_default_snmp_version; as_fn_error $? "Invalid option. Use --with-default-snmp-version/--without-default-snmp-version instead" "$LINENO" 5
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
 fi
 
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
-# we test this now and later as well.  we test it now so configure can die
-# early on with an error rather than waiting till the end of the script.
-case "${ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION-3}" in
-  [123]) ;;
-  2c) ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION=2 ;;
-  *)
-    as_fn_error $? "Illegal version number.  Only 1, 2 (for SNMPv2c) and 3 are supported." "$LINENO" 5
-    ;;
-esac
-
-
-##
-#   Project: Library: Transport modules
-##
-
-
-# Check whether --with-transports was given.
-if test "${with_transports+set}" = set; then :
-  withval=$with_transports;
 fi
-
-
-# Check whether --with-out_transports was given.
-if test "${with_out_transports+set}" = set; then :
-  withval=$with_out_transports;
 fi
-
-
-#
-# Catch common mistakes in transport options
-#
-
-# Check whether --with-transport was given.
-if test "${with_transport+set}" = set; then :
-  withval=$with_transport; as_fn_error $? "Invalid option. Use --with-transports/--without-transports instead" "$LINENO" 5
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-
-# Check whether --with-out-transport was given.
-if test "${with_out_transport+set}" = set; then :
-  withval=$with_out_transport; as_fn_error $? "Invalid option. Use --with-out-transports/--without-out-transports instead" "$LINENO" 5
 fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
-
-
-##
-#   Project: Library: Security modules
-##
-
-
-# Check whether --with-security-modules was given.
-if test "${with_security_modules+set}" = set; then :
-  withval=$with_security_modules;
 fi
-
-   # Check whether --enable-security-modules was given.
-if test "${enable_security_modules+set}" = set; then :
-  enableval=$enable_security_modules; as_fn_error $? "Invalid option. Use --with-security-modules/--without-security-modules instead" "$LINENO" 5
 fi
-
-
-
-# Check whether --with-out-security-modules was given.
-if test "${with_out_security_modules+set}" = set; then :
-  withval=$with_out_security_modules;
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-   # Check whether --enable-out-security-modules was given.
-if test "${enable_out_security_modules+set}" = set; then :
-  enableval=$enable_out_security_modules; as_fn_error $? "Invalid option. Use --with-out-security-modules/--without-out-security-modules instead" "$LINENO" 5
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
 fi
 
-
-
-##
-#   Project: Library: Developer-related settings
-##
-
-# Check whether --enable-debugging was given.
-if test "${enable_debugging+set}" = set; then :
-  enableval=$enable_debugging; $as_echo "#define NETSNMP_ALWAYS_DEBUG 1" >>confdefs.h
-
 fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
-
-# Check whether --with-debugging was given.
-if test "${with_debugging+set}" = set; then :
-  withval=$with_debugging; as_fn_error $? "Invalid option. Use --enable-debugging/--disable-debugging instead" "$LINENO" 5
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
 fi
-
-if test "x$enable_debugging" = "xno"; then
-    $as_echo "#define NETSNMP_NO_DEBUGGING 1" >>confdefs.h
-
 fi
-
-# Check whether --enable-developer was given.
-if test "${enable_developer+set}" = set; then :
-  enableval=$enable_developer; if test "$enableval" = yes ; then
-     developer="yes"
-   elif test "$enableval" != no ; then
-     as_fn_error $? "Please use --enable/--disable-developer" "$LINENO" 5
-   else
-     developer="no"
-   fi
 fi
-
-
-# Check whether --with-developer was given.
-if test "${with_developer+set}" = set; then :
-  withval=$with_developer; as_fn_error $? "Invalid option. Use --enable-developer/--disable-developer instead" "$LINENO" 5
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-
-# Check whether --enable-testing-code was given.
-if test "${enable_testing_code+set}" = set; then :
-  enableval=$enable_testing_code; if test "$enableval" = yes ; then
-
-$as_echo "#define NETSNMP_ENABLE_TESTING_CODE 1" >>confdefs.h
-
-   elif test "$enableval" != no ; then
-     as_fn_error $? "Please use --enable/--disable-testing-code" "$LINENO" 5
-   fi
 fi
-
-
-# Check whether --with-testing-code was given.
-if test "${with_testing_code+set}" = set; then :
-  withval=$with_testing_code; as_fn_error $? "Invalid option. Use --enable-testing-code/--disable-testing-code instead" "$LINENO" 5
-fi
-
-
-# Check whether --enable-reentrant was given.
-if test "${enable_reentrant+set}" = set; then :
-  enableval=$enable_reentrant; if test "$enableval" = yes -o "$enableval" = no ; then
-     with_res_locks="$enableval"
-   else
-     as_fn_error $? "Please use --enable/--disable-reentrant" "$LINENO" 5
-   fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  with_res_locks="no"
-fi
-
-
-# Check whether --with-reentrant was given.
-if test "${with_reentrant+set}" = set; then :
-  withval=$with_reentrant; as_fn_error $? "Invalid option. Use --enable-reentrant/--disable-reentrant instead" "$LINENO" 5
-fi
-
-
-# Check whether --enable-deprecated was given.
-if test "${enable_deprecated+set}" = set; then :
-  enableval=$enable_deprecated;
-fi
-
-
-# Check whether --with-deprecated was given.
-if test "${with_deprecated+set}" = set; then :
-  withval=$with_deprecated; as_fn_error $? "Invalid option. Use --enable-deprecated/--disable-deprecated instead" "$LINENO" 5
-fi
-
-if test "$enable_deprecated" = no ; then
-
-$as_echo "#define NETSNMP_NO_DEPRECATED_FUNCTIONS 1" >>confdefs.h
-
-fi
-
-
-
-##
-#   Project: Agent configuration settings
-##
-
-
-# Check whether --with-root-access was given.
-if test "${with_root_access+set}" = set; then :
-  withval=$with_root_access;
-fi
-
-   # Check whether --enable-root-access was given.
-if test "${enable_root_access+set}" = set; then :
-  enableval=$enable_root_access; as_fn_error $? "Invalid option. Use --with-root-access/--without-root-access instead" "$LINENO" 5
-fi
-
-# Only define if specifically chosen as --without (i.e., default to true).
-if test "x$with_root_access" = "xno"; then
-
-$as_echo "#define NETSNMP_NO_ROOT_ACCESS 1" >>confdefs.h
-
-fi
-
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
-# Check whether --with-kmem-usage was given.
-if test "${with_kmem_usage+set}" = set; then :
-  withval=$with_kmem_usage;
 fi
-
-   # Check whether --enable-kmem-usage was given.
-if test "${enable_kmem_usage+set}" = set; then :
-  enableval=$enable_kmem_usage; as_fn_error $? "Invalid option. Use --with-kmem-usage/--without-kmem-usage instead" "$LINENO" 5
 fi
-
-# Only define if specifically chosen as --without (i.e., default to true).
-if test "x$with_kmem_usage" = "xno"; then
-
-$as_echo "#define NETSNMP_NO_KMEM_USAGE 1" >>confdefs.h
-
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-
-# Check whether --with-dummy-values was given.
-if test "${with_dummy_values+set}" = set; then :
-  withval=$with_dummy_values;
+    test -n "$CC" && break
+  done
 fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
-   # Check whether --enable-dummy-values was given.
-if test "${enable_dummy_values+set}" = set; then :
-  enableval=$enable_dummy_values; as_fn_error $? "Invalid option. Use --with-dummy-values/--without-dummy-values instead" "$LINENO" 5
 fi
-
-# Define unless specifically suppressed (i.e., option defaults to false).
-if test "x$with_dummy_values" != "xyes"; then
-
-$as_echo "#define NETSNMP_NO_DUMMY_VALUES 1" >>confdefs.h
-
 fi
-
-# Check whether --enable-set-support was given.
-if test "${enable_set_support+set}" = set; then :
-  enableval=$enable_set_support;
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
+  test -n "$ac_ct_CC" && break
+done
 
-# Check whether --with-set-support was given.
-if test "${with_set_support+set}" = set; then :
-  withval=$with_set_support; as_fn_error $? "Invalid option. Use --enable-set-support/--disable-set-support instead" "$LINENO" 5
+  CC=$ac_ct_CC
 fi
 
-if test "x$enable_set_support" = "xno"; then
-
-$as_echo "#define NETSNMP_DISABLE_SET_SUPPORT 1" >>confdefs.h
-
 fi
 
 
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
 
-# Check whether --with-sys_contact was given.
-if test "${with_sys_contact+set}" = set; then :
-  withval=$with_sys_contact; ac_cv_user_prompt_NETSNMP_SYS_CONTACT="$with_sys_contact"
-fi
-
-   # Check whether --enable-sys_contact was given.
-if test "${enable_sys_contact+set}" = set; then :
-  enableval=$enable_sys_contact; as_fn_error $? "Invalid option. Use --with-sys_contact/--without-sys_contact instead" "$LINENO" 5
-fi
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+     "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
 
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+int
+main ()
+{
 
-# Check whether --with-sys_location was given.
-if test "${with_sys_location+set}" = set; then :
-  withval=$with_sys_location; ac_cv_user_prompt_NETSNMP_SYS_LOC="$with_sys_location"
-fi
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+  (eval $ac_link_default) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Find the output, starting from the most likely.  This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+	;;
+    conftest.$ac_ext )
+	# This is the source file.
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	# FIXME: I believe we export ac_cv_exeext for Libtool,
+	# but it would be cool to find out if it's true.  Does anybody
+	# maintain Libtool? --akim.
+	export ac_cv_exeext
+	break;;
+    * )
+	break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-   # Check whether --enable-sys_location was given.
-if test "${enable_sys_location+set}" = set; then :
-  enableval=$enable_sys_location; as_fn_error $? "Invalid option. Use --with-sys_location/--without-sys_location instead" "$LINENO" 5
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+   { (exit 77); exit 77; }; }
 fi
 
+ac_exeext=$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
 
-
-
-##
-#   Project: Agent: Extensibility configuration
-##
-
-# Check whether --enable-local-smux was given.
-if test "${enable_local_smux+set}" = set; then :
-  enableval=$enable_local_smux; if test "x$enable_local_smux" = "xyes"; then
-
-$as_echo "#define NETSNMP_ENABLE_LOCAL_SMUX 1" >>confdefs.h
-
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
     fi
+  fi
 fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
 
-
-# Check whether --with-local-smux was given.
-if test "${with_local_smux+set}" = set; then :
-  withval=$with_local_smux; as_fn_error $? "Invalid option. Use --enable-local-smux/--disable-local-smux instead" "$LINENO" 5
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  export ac_cv_exeext
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
 fi
 
+rm -f conftest$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
 
-# Check whether --enable-agentx-dom-sock-only was given.
-if test "${enable_agentx_dom_sock_only+set}" = set; then :
-  enableval=$enable_agentx_dom_sock_only;
-$as_echo "#define NETSNMP_AGENTX_DOM_SOCK_ONLY 1" >>confdefs.h
-
-fi
-
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-# Check whether --with-agentx-dom-sock-only was given.
-if test "${with_agentx_dom_sock_only+set}" = set; then :
-  withval=$with_agentx_dom_sock_only; as_fn_error $? "Invalid option. Use --enable-agentx-dom-sock-only/--disable-agentx-dom-sock-only instead" "$LINENO" 5
-fi
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-# Check whether --enable-snmptrapd-subagent was given.
-if test "${enable_snmptrapd_subagent+set}" = set; then :
-  enableval=$enable_snmptrapd_subagent;
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
 fi
 
-
-# Check whether --with-snmptrapd-subagent was given.
-if test "${with_snmptrapd_subagent+set}" = set; then :
-  withval=$with_snmptrapd_subagent; as_fn_error $? "Invalid option. Use --enable-snmptrapd-subagent/--disable-snmptrapd-subagent instead" "$LINENO" 5
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-if test "x$enable_snmptrapd_subagent" = "xno"; then
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
 
-$as_echo "#define NETSNMP_SNMPTRAPD_DISABLE_AGENTX 1" >>confdefs.h
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_compiler_gnu=no
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
-default_agentx_socket="/var/agentx/master"
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-# Check whether --with-agentx-socket was given.
-if test "${with_agentx_socket+set}" = set; then :
-  withval=$with_agentx_socket;
-  if test "$withval" = yes; then
-    as_fn_error $? " Please provide a full path " "$LINENO" 5;
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using AgentX socket $withval" >&5
-$as_echo "using AgentX socket $withval" >&6; }
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_g=yes
 else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-  withval=$default_agentx_socket
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using default AgentX socket $default_agentx_socket" >&5
-$as_echo "using default AgentX socket $default_agentx_socket" >&6; }
-
+ac_cv_prog_cc_g=no
 fi
-
-   # Check whether --enable-agentx-socket was given.
-if test "${enable_agentx_socket+set}" = set; then :
-  enableval=$enable_agentx_socket; as_fn_error $? "Invalid option. Use --with-agentx-socket/--without-agentx-socket instead" "$LINENO" 5
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
-
-cat >>confdefs.h <<_ACEOF
-#define NETSNMP_AGENTX_SOCKET "$withval"
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
 
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std1 is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std1.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
 
-#
-# feature addition/removal and minimialist support
-#
-FEATURE_ADD_FLAGS=""
-
-# Check whether --with-features was given.
-if test "${with_features+set}" = set; then :
-  withval=$with_features;
-  if test "$withval" = yes; then
-    as_fn_error $? " Please provide a list of features " "$LINENO" 5;
-  fi
-  FEATURE_ADD_FLAGS="--add $withval"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: adding in features: $withval" >&5
-$as_echo "adding in features: $withval" >&6; }
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX			-qlanglvl=ansi
+# Ultrix and OSF/1	-std1
+# HP-UX 10.20 and later	-Ae
+# HP-UX older versions	-Aa -D_HPUX_SOURCE
+# SVR4			-Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
+rm -f conftest.err conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
 
-   # Check whether --enable-features was given.
-if test "${enable_features+set}" = set; then :
-  enableval=$enable_features; as_fn_error $? "Invalid option. Use --with-features/--without-features instead" "$LINENO" 5
 fi
 
+case "x$ac_cv_prog_cc_stdc" in
+  x|xno)
+    echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+  *)
+    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+    CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
 
+# Some people use a C++ compiler to compile C.  Since we use `exit',
+# in C++ we need to declare it.  In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+  choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  for ac_declaration in \
+   '' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-
-FEATURE_REMOVE_FLAGS=""
-
-# Check whether --with-out-features was given.
-if test "${with_out_features+set}" = set; then :
-  withval=$with_out_features;
-  if test "$withval" = yes; then
-    as_fn_error $? " Please provide a list of features " "$LINENO" 5;
-  fi
-  FEATURE_REMOVE_FLAGS="--remove $withval"
-  FEATURETARGS="features"
-
-$as_echo "#define NETSNMP_MINIMAL_CODE 1" >>confdefs.h
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: removing features: $withval" >&5
-$as_echo "removing features: $withval" >&6; }
-
+continue
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-   # Check whether --enable-out-features was given.
-if test "${enable_out_features+set}" = set; then :
-  enableval=$enable_out_features; as_fn_error $? "Invalid option. Use --with-out-features/--without-out-features instead" "$LINENO" 5
 fi
-
-
-
-
-# Catch common mistakes
-
-# Check whether --with-feature was given.
-if test "${with_feature+set}" = set; then :
-  withval=$with_feature; as_fn_error $? "Invalid option. Use --with-features/--without-features instead" "$LINENO" 5
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
 fi
 
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-# Check whether --with-out-feature was given.
-if test "${with_out_feature+set}" = set; then :
-  withval=$with_out_feature; as_fn_error $? "Invalid option. Use --with-out-features/--without-out-features instead" "$LINENO" 5
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-
-FEATURETARGS=""
-# Check whether --enable-minimalist was given.
-if test "${enable_minimalist+set}" = set; then :
-  enableval=$enable_minimalist;
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
 fi
-
-
-# Check whether --with-minimalist was given.
-if test "${with_minimalist+set}" = set; then :
-  withval=$with_minimalist; as_fn_error $? "Invalid option. Use --enable-minimalist/--disable-minimalist instead" "$LINENO" 5
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
 fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-if test "x$enable_minimalist" = "xyes"; then
-   # we'll assume the mini agent is desired here as well
-   mini_agent="yes"
-   FEATURETARGS="features"
-
-   # needed to bootstrap later checks
-   echo "" > include/net-snmp/feature-details.h
-
-$as_echo "#define NETSNMP_MINIMAL_CODE 1" >>confdefs.h
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
 
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
 else
-   FEATUREHEADERS=""
+  ac_cpp_err=yes
 fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-# Check whether --with-minimalist was given.
-if test "${with_minimalist+set}" = set; then :
-  withval=$with_minimalist; as_fn_error $? "Invalid option. Use --enable-minimalist/--disable-minimalist instead" "$LINENO" 5
+  # Passes both tests.
+ac_preproc_ok=:
+break
 fi
+rm -f conftest.err conftest.$ac_ext
 
-
-
-
-# Check whether --enable-notify-only was given.
-if test "${enable_notify_only+set}" = set; then :
-  enableval=$enable_notify_only;
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
 fi
 
+    done
+    ac_cv_prog_CPP=$CPP
 
-# Check whether --with-notify-only was given.
-if test "${with_notify_only+set}" = set; then :
-  withval=$with_notify_only; as_fn_error $? "Invalid option. Use --enable-notify-only/--disable-notify-only instead" "$LINENO" 5
 fi
-
-if test "x$enable_notify_only" = "xyes"; then
-
-$as_echo "#define NETSNMP_NOTIFY_ONLY 1" >>confdefs.h
-
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
 fi
-
-# Check whether --with-notify-only was given.
-if test "${with_notify_only+set}" = set; then :
-  withval=$with_notify_only; as_fn_error $? "Invalid option. Use --enable-notify-only/--disable-notify-only instead" "$LINENO" 5
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
 fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-# Check whether --enable-notifyonly was given.
-if test "${enable_notifyonly+set}" = set; then :
-  enableval=$enable_notifyonly; as_fn_error $? "Invalid option. Use --enable-notify-only/--disable-notify-only instead" "$LINENO" 5
+  # Broken: fails on valid input.
+continue
 fi
+rm -f conftest.err conftest.$ac_ext
 
-
-# Check whether --enable-no-listen was given.
-if test "${enable_no_listen+set}" = set; then :
-  enableval=$enable_no_listen;
-fi
-
-
-# Check whether --with-no-listen was given.
-if test "${with_no_listen+set}" = set; then :
-  withval=$with_no_listen; as_fn_error $? "Invalid option. Use --enable-no-listen/--disable-no-listen instead" "$LINENO" 5
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
 fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-if test "x$enable_no_listen" = "xyes" -o "x$enable_notify_only" = "xyes"; then
-   enable_no_listen="yes"
-
-$as_echo "#define NETSNMP_NO_LISTEN_SUPPORT 1" >>confdefs.h
-
+  # Passes both tests.
+ac_preproc_ok=:
+break
 fi
+rm -f conftest.err conftest.$ac_ext
 
-# Check whether --with-no-listen was given.
-if test "${with_no_listen+set}" = set; then :
-  withval=$with_no_listen; as_fn_error $? "Invalid option. Use --enable-no-listen/--disable-no-listen instead" "$LINENO" 5
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
 fi
 
-# Check whether --enable-nolisten was given.
-if test "${enable_nolisten+set}" = set; then :
-  enableval=$enable_nolisten; as_fn_error $? "Invalid option. Use --enable-no-listen/--disable-no-listen instead" "$LINENO" 5
-fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+LINKCC=${LINKCC-"$CC"}
 
-# Check whether --enable-read-only was given.
-if test "${enable_read_only+set}" = set; then :
-  enableval=$enable_read_only;
-fi
 
 
-# Check whether --with-read-only was given.
-if test "${with_read_only+set}" = set; then :
-  withval=$with_read_only; as_fn_error $? "Invalid option. Use --enable-read-only/--disable-read-only instead" "$LINENO" 5
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi
 fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
 
-if test "x$enable_read_only" = "xyes" -o "x$enable_notify_only" = "xyes" ; then
-   enable_read_only="yes"
 
-$as_echo "#define NETSNMP_NO_WRITE_SUPPORT 1" >>confdefs.h
 
-fi
+echo "$as_me:$LINENO: checking for AIX" >&5
+echo $ECHO_N "checking for AIX... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef _AIX
+  yes
+#endif
 
-# Check whether --with-read-only was given.
-if test "${with_read_only+set}" = set; then :
-  withval=$with_read_only; as_fn_error $? "Invalid option. Use --enable-read-only/--disable-read-only instead" "$LINENO" 5
-fi
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+cat >>confdefs.h <<\_ACEOF
+#define _ALL_SOURCE 1
+_ACEOF
 
-# Check whether --enable-readonly was given.
-if test "${enable_readonly+set}" = set; then :
-  enableval=$enable_readonly; as_fn_error $? "Invalid option. Use --enable-read-only/--disable-read-only instead" "$LINENO" 5
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
+rm -f conftest*
 
 
 
-##
-#   Project: Agent: MIB module configuration
-##
-
-# Check whether --enable-mini_agent was given.
-if test "${enable_mini_agent+set}" = set; then :
-  enableval=$enable_mini_agent;
+# system check
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f $ac_dir/shtool; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+   { (exit 1); exit 1; }; }
 fi
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
 
+# Make sure we can run config.sub.
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+   { (exit 1); exit 1; }; }
+
+echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+  ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+   { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
-# Check whether --with-mini_agent was given.
-if test "${with_mini_agent+set}" = set; then :
-  withval=$with_mini_agent; as_fn_error $? "Invalid option. Use --enable-mini_agent/--disable-mini_agent instead" "$LINENO" 5
-fi
 
-if test "x$enable_mini_agent" = "xyes"; then
-    mini_agent="yes"
+echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-    mini_agent="no"
-fi
+  ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+  ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
 
-# Check whether --with-miniagent was given.
-if test "${with_miniagent+set}" = set; then :
-  withval=$with_miniagent; as_fn_error $? "Invalid option. Use --enable-mini-agent/--disable-mini-agent instead" "$LINENO" 5
 fi
-
-# Check whether --enable-miniagent was given.
-if test "${enable_miniagent+set}" = set; then :
-  enableval=$enable_miniagent; as_fn_error $? "Invalid option. Use --enable-mini-agent/--disable-mini-agent instead" "$LINENO" 5
-fi
-
-
+echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6
+host=$ac_cv_host
+host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
 
+echo "$as_me:$LINENO: checking target system type" >&5
+echo $ECHO_N "checking target system type... $ECHO_C" >&6
+if test "${ac_cv_target+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_target_alias=$target_alias
+test "x$ac_cv_target_alias" = "x" &&
+  ac_cv_target_alias=$ac_cv_host_alias
+ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
 
-# Check whether --enable-mfd-rewrites was given.
-if test "${enable_mfd_rewrites+set}" = set; then :
-  enableval=$enable_mfd_rewrites;
 fi
+echo "$as_me:$LINENO: result: $ac_cv_target" >&5
+echo "${ECHO_T}$ac_cv_target" >&6
+target=$ac_cv_target
+target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
 
-# Check whether --with-mfd-rewrites was given.
-if test "${with_mfd_rewrites+set}" = set; then :
-  withval=$with_mfd_rewrites; as_fn_error $? "Invalid option. Use --enable-mfd-rewrites/--disable-mfd-rewrites instead" "$LINENO" 5
-fi
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+  test "$program_prefix$program_suffix$program_transform_name" = \
+    NONENONEs,x,x, &&
+  program_prefix=${target_alias}-
 
-if test "x$enable_mfd_rewrites" = "xyes"; then
+PARTIALTARGETOS=`echo $target_os | sed 's/[-._].*//'`
 
-$as_echo "#define NETSNMP_ENABLE_MFD_REWRITES 1" >>confdefs.h
 
+# platform-specific compiler flags
+if test "x$PARTIALTARGETOS" = "xmingw32msvc"; then
+	CFLAGS="$CFLAGS -Dmingw32"
 fi
 
+# platform-specific linker flags
+case $target_os in
+    aix4.2*|aix4.3*|aix5*|aix6*)
+        echo "$as_me:$LINENO: checking what linker flags to add to enable runtime linking on AIX" >&5
+echo $ECHO_N "checking what linker flags to add to enable runtime linking on AIX... $ECHO_C" >&6
+        for ld_flag in $LDFLAGS; do
+            if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+                netsnmp_aix_runtimelinking_flags_ok=yes
+                break
+            fi
+        done
+        if test "X$netsnmp_aix_runtimelinking_flags_ok" != "Xyes"; then
+	    if test "x$GCC" = "xyes"; then
+	        netsnmp_aix_ldflags="-Wl,-brtl"
+	    else
+                netsnmp_aix_ldflags="-brtl"
+	    fi
+            LDFLAGS="$netsnmp_aix_ldflags $LDFLAGS"
+	    echo "$as_me:$LINENO: result: $netsnmp_aix_ldflags" >&5
+echo "${ECHO_T}$netsnmp_aix_ldflags" >&6
+	else
+	    echo "$as_me:$LINENO: result: none" >&5
+echo "${ECHO_T}none" >&6
+	fi
+	;;
+    darwin8*|darwin9*)
+        echo "$as_me:$LINENO: checking whether darwin ld might need -flat_namespace" >&5
+echo $ECHO_N "checking whether darwin ld might need -flat_namespace... $ECHO_C" >&6
+	if test -z "$MACOSX_DEPLOYMENT_TARGET"; then
+		LDFLAGS="-flat_namespace $LDFLAGS"
+		echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+	else
+		echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+	fi
+	;;
+    *)
+        ;;
+esac
 
-
-# Check whether --with-mib_modules was given.
-if test "${with_mib_modules+set}" = set; then :
-  withval=$with_mib_modules;
-fi
-
-   # Check whether --enable-mib_modules was given.
-if test "${enable_mib_modules+set}" = set; then :
-  enableval=$enable_mib_modules; as_fn_error $? "Invalid option. Use --with-mib_modules/--without-mib_modules instead" "$LINENO" 5
-fi
+# libtool stuff for shared/static libraries.
 
 
 
-# Check whether --with-out_mib_modules was given.
-if test "${with_out_mib_modules+set}" = set; then :
-  withval=$with_out_mib_modules;
-fi
 
-   # Check whether --enable-out_mib_modules was given.
-if test "${enable_out_mib_modules+set}" = set; then :
-  enableval=$enable_out_mib_modules; as_fn_error $? "Invalid option. Use --with-out_mib_modules/--without-out_mib_modules instead" "$LINENO" 5
-fi
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval="$enable_shared"
+  p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_shared=yes
+fi;
 
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+  enableval="$enable_static"
+  p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_static=yes
+fi;
 
+# Check whether --enable-fast-install or --disable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then
+  enableval="$enable_fast_install"
+  p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_fast_install=yes
+fi;
 
-#
-# Catch common mistakes in configure options
-#
+echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6
+if test "${lt_cv_path_SED+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
 
-# Check whether --with-mib-module was given.
-if test "${with_mib_module+set}" = set; then :
-  withval=$with_mib_module; as_fn_error $? "Invalid option. Use --with-mib-modules/--without-mib-modules instead" "$LINENO" 5
 fi
 
+SED=$lt_cv_path_SED
 
-# Check whether --with-module was given.
-if test "${with_module+set}" = set; then :
-  withval=$with_module; as_fn_error $? "Invalid option. Use --with-mib-modules/--without-mib-modules instead" "$LINENO" 5
-fi
+echo "$as_me:$LINENO: result: $SED" >&5
+echo "${ECHO_T}$SED" >&6
 
 
-# Check whether --with-modules was given.
-if test "${with_modules+set}" = set; then :
-  withval=$with_modules; as_fn_error $? "Invalid option. Use --with-mib-modules/--without-mib-modules instead" "$LINENO" 5
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval="$with_gnu_ld"
+  test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+else
+  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
 fi
-
-
-
-# Check whether --with-out-mib-module was given.
-if test "${with_out_mib_module+set}" = set; then :
-  withval=$with_out_mib_module; as_fn_error $? "Invalid option. Use --with-out-mib-modules/--without-out-mib-modules instead" "$LINENO" 5
+if test "${lt_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
 fi
-
-
-# Check whether --with-out-module was given.
-if test "${with_out_module+set}" = set; then :
-  withval=$with_out_module; as_fn_error $? "Invalid option. Use --with-out-mib-modules/--without-out-mib-modules instead" "$LINENO" 5
 fi
 
-
-# Check whether --with-out-modules was given.
-if test "${with_out_modules+set}" = set; then :
-  withval=$with_out_modules; as_fn_error $? "Invalid option. Use --with-out-mib-modules/--without-out-mib-modules instead" "$LINENO" 5
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
+echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
+if test "${lt_cv_ld_reload_flag+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_ld_reload_flag='-r'
+fi
+echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
 
-##
-#   Project: Enterprise settings	(? Agent/Library/Both?)
-##
-
-
-# Check whether --with-enterprise-oid was given.
-if test "${with_enterprise_oid+set}" = set; then :
-  withval=$with_enterprise_oid;
-  if test "$withval" = yes; then
-    as_fn_error $? " Please provide a value for the enterprise number " "$LINENO" 5;
+echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
+echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
+if test "${lt_cv_path_NM+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
   fi
-  cat >>confdefs.h <<_ACEOF
-#define NETSNMP_ENTERPRISE_OID $withval
-_ACEOF
-
-  ent_oid="1,3,6,1,4,1,$withval"
-  cat >>confdefs.h <<_ACEOF
-#define NETSNMP_ENTERPRISE_MIB $ent_oid
-_ACEOF
-
-  ent_dot_oid="1.3.6.1.4.1.$withval"
-  cat >>confdefs.h <<_ACEOF
-#define NETSNMP_ENTERPRISE_DOT_MIB $ent_dot_oid
-_ACEOF
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using enterprise number $withval" >&5
-$as_echo "using enterprise number $withval" >&6; }
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi
+fi
+echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+echo "${ECHO_T}$lt_cv_path_NM" >&6
+NM="$lt_cv_path_NM"
 
+echo "$as_me:$LINENO: checking whether ln -s works" >&5
+echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
 else
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using default \"enterprise.net-snmp\"" >&5
-$as_echo "using default \"enterprise.net-snmp\"" >&6; }
-
+  echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+echo "${ECHO_T}no, using $LN_S" >&6
 fi
 
-   # Check whether --enable-enterprise-oid was given.
-if test "${enable_enterprise_oid+set}" = set; then :
-  enableval=$enable_enterprise_oid; as_fn_error $? "Invalid option. Use --with-enterprise-oid/--without-enterprise-oid instead" "$LINENO" 5
-fi
+echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
+echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6
+if test "${lt_cv_deplibs_check_method+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
 
+case $host_os in
+aix[4-9]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 
-# Check whether --with-enterprise-sysoid was given.
-if test "${with_enterprise_sysoid+set}" = set; then :
-  withval=$with_enterprise_sysoid;
-  if test "$withval" = yes; then
-    as_fn_error $? " Please provide a base OID value " "$LINENO" 5;
-  fi
-  sys_oid=`echo "$withval" | sed 's/^\.//' | sed 's/\./\,/g'`
-  cat >>confdefs.h <<_ACEOF
-#define NETSNMP_SYSTEM_MIB $sys_oid
-_ACEOF
+bsdi[45]*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
 
-  sys_dot_oid=`echo "$withval" | sed 's/^\.//'`
-  cat >>confdefs.h <<_ACEOF
-#define NETSNMP_SYSTEM_DOT_MIB $sys_dot_oid
-_ACEOF
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
 
-  sysoid_len=`echo "$withval" | sed 's/^\.//g' | awk -F\. '{ print NF }'`
-  cat >>confdefs.h <<_ACEOF
-#define NETSNMP_SYSTEM_DOT_MIB_LENGTH $sysoid_len
-_ACEOF
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  if ( file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using enterprise sysOID $withval ...." >&5
-$as_echo "using enterprise sysOID $withval ...." >&6; }
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 
-else
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using default enterprise sysOID \"NET-SNMP-MIB::netSnmpAgentOIDs...\"" >&5
-$as_echo "using default enterprise sysOID \"NET-SNMP-MIB::netSnmpAgentOIDs...\"" >&6; }
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 
-fi
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
 
-   # Check whether --enable-enterprise-sysoid was given.
-if test "${enable_enterprise_sysoid+set}" = set; then :
-  enableval=$enable_enterprise_sysoid; as_fn_error $? "Invalid option. Use --with-enterprise-sysoid/--without-enterprise-sysoid instead" "$LINENO" 5
-fi
+interix[3-9]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+  ;;
 
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 
-# Check whether --with-enterprise-notification-oid was given.
-if test "${with_enterprise_notification_oid+set}" = set; then :
-  withval=$with_enterprise_notification_oid;
-  if test "$withval" = yes; then
-    as_fn_error $? " Please provide a base OID value " "$LINENO" 5;
+netbsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
   fi
-  notification_oid=`echo "$withval" | sed 's/^\.//' | sed 's/\./\,/g'`
-  cat >>confdefs.h <<_ACEOF
-#define NETSNMP_NOTIFICATION_MIB $notification_oid
-_ACEOF
-
-  notification_dot_oid=`echo "$withval" | sed 's/^\.//'`
-  cat >>confdefs.h <<_ACEOF
-#define NETSNMP_NOTIFICATION_DOT_MIB $notification_dot_oid
-_ACEOF
-
-  notificationoid_len=`echo "$withval" | sed 's/^\.//g' | awk -F\. '{ print NF }'`
-  cat >>confdefs.h <<_ACEOF
-#define NETSNMP_NOTIFICATION_DOT_MIB_LENGTH $notificationoid_len
-_ACEOF
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using enterprise notifications $withval" >&5
-$as_echo "using enterprise notifications $withval" >&6; }
-
-else
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using default notifications \"NET-SNMP-MIB::netSnmpNotifications\"" >&5
-$as_echo "using default notifications \"NET-SNMP-MIB::netSnmpNotifications\"" >&6; }
+  ;;
 
-fi
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
 
-   # Check whether --enable-enterprise-notification-oid was given.
-if test "${enable_enterprise_notification_oid+set}" = set; then :
-  enableval=$enable_enterprise_notification_oid; as_fn_error $? "Invalid option. Use --with-enterprise-notification-oid/--without-enterprise-notification-oid instead" "$LINENO" 5
-fi
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
 
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  fi
+  ;;
 
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 
-##
-#   Project: Perl settings
-##
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 
-# Check whether --with-perl-modules was given.
-if test "${with_perl_modules+set}" = set; then :
-  withval=$with_perl_modules;
-    if test "$withval" = "no"; then
-      install_perl="no"
-    else
-      install_perl="yes"
-      if test "$withval" != "yes"; then
-        PERLARGS="$withval"
-      fi
-    fi
-
-else
-  install_perl="try"
-fi
-
-   # Check whether --enable-perl-modules was given.
-if test "${enable_perl_modules+set}" = set; then :
-  enableval=$enable_perl_modules; as_fn_error $? "Invalid option. Use --with-perl-modules/--without-perl-modules instead" "$LINENO" 5
-fi
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
 
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
 
-# Check whether --enable-embedded-perl was given.
-if test "${enable_embedded_perl+set}" = set; then :
-  enableval=$enable_embedded_perl; embed_perl="$enableval"
-else
-  embed_perl="try"
 fi
+echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
 
 
-# Check whether --with-embedded-perl was given.
-if test "${with_embedded_perl+set}" = set; then :
-  withval=$with_embedded_perl; as_fn_error $? "Invalid option. Use --enable-embedded-perl/--disable-embedded-perl instead" "$LINENO" 5
-fi
-
 
-# Check whether --enable-perl-cc-checks was given.
-if test "${enable_perl_cc_checks+set}" = set; then :
-  enableval=$enable_perl_cc_checks;
-fi
 
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
 
-# Check whether --with-perl-cc-checks was given.
-if test "${with_perl_cc_checks+set}" = set; then :
-  withval=$with_perl_cc_checks; as_fn_error $? "Invalid option. Use --enable-perl-cc-checks/--disable-perl-cc-checks instead" "$LINENO" 5
-fi
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
 
+# Allow CC to be a program name with arguments.
+compiler=$CC
 
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+  enableval="$enable_libtool_lock"
 
-##
-#   Project: Python settings
-##
+fi;
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
 
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '#line 5465 "configure"' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+   fi
+  fi
+  rm -rf conftest*
+  ;;
 
-# Check whether --with-python-modules was given.
-if test "${with_python_modules+set}" = set; then :
-  withval=$with_python_modules;
-    install_python="yes"
-    if test "$withval" = "yes"; then
-      PYTHONARGS=""
-    elif test "$withval" = "no"; then
-      PYTHONARGS=""
-      install_python="no"
-    else
-      PYTHONARGS="$withval"
-    fi
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case `/usr/bin/file conftest.o` in
+    *32-bit*)
+      case $host in
+        x86_64-*kfreebsd*-gnu)
+          LD="${LD-ld} -m elf_i386_fbsd"
+          ;;
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*|powerpc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      case $host in
+        x86_64-*kfreebsd*-gnu)
+          LD="${LD-ld} -m elf_x86_64_fbsd"
+          ;;
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
 
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
+if test "${lt_cv_cc_needs_belf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  install_python="no"
-fi
-
-
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-##
-#   Project: Library settings
-##
+     cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+int
+main ()
+{
 
-# Check whether --with-server-send-buf was given.
-if test "${with_server_send_buf+set}" = set; then :
-  withval=$with_server_send_buf;
-   if test "$withval" = yes; then
-    as_fn_error $? " Please provide a positive number for the server send buffer " "$LINENO" 5
-   fi
-   cat >>confdefs.h <<_ACEOF
-#define NETSNMP_DEFAULT_SERVER_SEND_BUF $withval
+  ;
+  return 0;
+}
 _ACEOF
-
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  lt_cv_cc_needs_belf=yes
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using OS default send buffer size for server sockets" >&5
-$as_echo "using OS default send buffer size for server sockets" >&6; }
-fi
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-   # Check whether --enable-server-send-buf was given.
-if test "${enable_server_send_buf+set}" = set; then :
-  enableval=$enable_server_send_buf; as_fn_error $? "Invalid option. Use --with-server-send-buf/--without-server-send-buf instead" "$LINENO" 5
+lt_cv_cc_needs_belf=no
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+     ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-
-
-# Check whether --with-server-recv-buf was given.
-if test "${with_server_recv_buf+set}" = set; then :
-  withval=$with_server_recv_buf;
-  if test "$withval" = yes; then
-    as_fn_error $? " Please provide a positive number for the server recv buffer " "$LINENO" 5
+fi
+echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
   fi
-  cat >>confdefs.h <<_ACEOF
-#define NETSNMP_DEFAULT_SERVER_RECV_BUF $withval
-_ACEOF
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)
+        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
 
+*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_DLLTOOL+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using OS default recv buffer size for server sockets" >&5
-$as_echo "using OS default recv buffer size for server sockets" >&6; }
-fi
-
-   # Check whether --enable-server-recv-buf was given.
-if test "${enable_server_recv_buf+set}" = set; then :
-  enableval=$enable_server_recv_buf; as_fn_error $? "Invalid option. Use --with-server-recv-buf/--without-server-recv-buf instead" "$LINENO" 5
-fi
-
-
-
-# Check whether --with-client-send-buf was given.
-if test "${with_client_send_buf+set}" = set; then :
-  withval=$with_client_send_buf;
-  if test "$withval" = yes; then
-    as_fn_error $? " Please provide a positive number for the client send buffer " "$LINENO" 5
+  if test -n "$DLLTOOL"; then
+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
   fi
-  cat >>confdefs.h <<_ACEOF
-#define NETSNMP_DEFAULT_CLIENT_SEND_BUF $withval
-_ACEOF
+done
+done
 
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using OS default send buffer size for client sockets" >&5
-$as_echo "using OS default send buffer size for client sockets" >&6; }
 fi
-
-   # Check whether --enable-client-send-buf was given.
-if test "${enable_client_send_buf+set}" = set; then :
-  enableval=$enable_client_send_buf; as_fn_error $? "Invalid option. Use --with-client-send-buf/--without-client-send-buf instead" "$LINENO" 5
 fi
-
-
-
-# Check whether --with-client-recv-buf was given.
-if test "${with_client_recv_buf+set}" = set; then :
-  withval=$with_client_recv_buf;
-  if test "$withval" = yes; then
-    as_fn_error $? " Please provide a positive number for the client recv buffer " "$LINENO" 5
-  fi
-  cat >>confdefs.h <<_ACEOF
-#define NETSNMP_DEFAULT_CLIENT_RECV_BUF $withval
-_ACEOF
-
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+  echo "$as_me:$LINENO: result: $DLLTOOL" >&5
+echo "${ECHO_T}$DLLTOOL" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using OS default recv buffer size for client sockets" >&5
-$as_echo "using OS default recv buffer size for client sockets" >&6; }
-fi
-
-   # Check whether --enable-client-recv-buf was given.
-if test "${enable_client_recv_buf+set}" = set; then :
-  enableval=$enable_client_recv_buf; as_fn_error $? "Invalid option. Use --with-client-recv-buf/--without-client-recv-buf instead" "$LINENO" 5
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-
-##
-#   System: library settings  (more)
-##
-
-
-# Check whether --with-elf was given.
-if test "${with_elf+set}" = set; then :
-  withval=$with_elf;
 fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+  ac_ct_DLLTOOL=$DLLTOOL
+  # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_DLLTOOL"; then
+  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
-   # Check whether --enable-elf was given.
-if test "${enable_elf+set}" = set; then :
-  enableval=$enable_elf; as_fn_error $? "Invalid option. Use --with-elf/--without-elf instead" "$LINENO" 5
+  test -z "$ac_cv_prog_ac_ct_DLLTOOL" && ac_cv_prog_ac_ct_DLLTOOL="false"
 fi
-
-
-
-# Check whether --with-nl was given.
-if test "${with_nl+set}" = set; then :
-  withval=$with_nl;
 fi
-
-   # Check whether --enable-nl was given.
-if test "${enable_nl+set}" = set; then :
-  enableval=$enable_nl; as_fn_error $? "Invalid option. Use --with-nl/--without-nl instead" "$LINENO" 5
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+  echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5
+echo "${ECHO_T}$ac_ct_DLLTOOL" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-
-
-# Check whether --with-libwrap was given.
-if test "${with_libwrap+set}" = set; then :
-  withval=$with_libwrap;
+  DLLTOOL=$ac_ct_DLLTOOL
 else
-  with_libwrap="no"
+  DLLTOOL="$ac_cv_prog_DLLTOOL"
 fi
 
-   # Check whether --enable-libwrap was given.
-if test "${enable_libwrap+set}" = set; then :
-  enableval=$enable_libwrap; as_fn_error $? "Invalid option. Use --with-libwrap/--without-libwrap instead" "$LINENO" 5
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
+set dummy ${ac_tool_prefix}as; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AS+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$AS"; then
+  ac_cv_prog_AS="$AS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AS="${ac_tool_prefix}as"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+AS=$ac_cv_prog_AS
+if test -n "$AS"; then
+  echo "$as_me:$LINENO: result: $AS" >&5
+echo "${ECHO_T}$AS" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
+fi
+if test -z "$ac_cv_prog_AS"; then
+  ac_ct_AS=$AS
+  # Extract the first word of "as", so it can be a program name with args.
+set dummy as; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_AS"; then
+  ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AS="as"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
+  test -z "$ac_cv_prog_ac_ct_AS" && ac_cv_prog_ac_ct_AS="false"
+fi
+fi
+ac_ct_AS=$ac_cv_prog_ac_ct_AS
+if test -n "$ac_ct_AS"; then
+  echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
+echo "${ECHO_T}$ac_ct_AS" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-# Check whether --with-zlib was given.
-if test "${with_zlib+set}" = set; then :
-  withval=$with_zlib;
+  AS=$ac_ct_AS
 else
-  with_zlib="no"
+  AS="$ac_cv_prog_AS"
 fi
 
-   # Check whether --enable-zlib was given.
-if test "${enable_zlib+set}" = set; then :
-  enableval=$enable_zlib; as_fn_error $? "Invalid option. Use --with-zlib/--without-zlib instead" "$LINENO" 5
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_OBJDUMP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$OBJDUMP"; then
+  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+  echo "$as_me:$LINENO: result: $OBJDUMP" >&5
+echo "${ECHO_T}$OBJDUMP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+  ac_ct_OBJDUMP=$OBJDUMP
+  # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_OBJDUMP"; then
+  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OBJDUMP="objdump"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
+  test -z "$ac_cv_prog_ac_ct_OBJDUMP" && ac_cv_prog_ac_ct_OBJDUMP="false"
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+  echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
+echo "${ECHO_T}$ac_ct_OBJDUMP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-# Check whether --with-bzip2 was given.
-if test "${with_bzip2+set}" = set; then :
-  withval=$with_bzip2;
+  OBJDUMP=$ac_ct_OBJDUMP
 else
-  with_bzip2="no"
+  OBJDUMP="$ac_cv_prog_OBJDUMP"
 fi
 
+  ;;
+
+esac
 
+need_locks="$enable_libtool_lock"
 
-# Check whether --with-mnttab was given.
-if test "${with_mnttab+set}" = set; then :
-  withval=$with_mnttab;
-fi
 
-   # Check whether --enable-mnttab was given.
-if test "${enable_mnttab+set}" = set; then :
-  enableval=$enable_mnttab; as_fn_error $? "Invalid option. Use --with-mnttab/--without-mnttab instead" "$LINENO" 5
-fi
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_header_stdc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-##
-#   Project: mysql
-##
+ac_cv_header_stdc=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
 
-# Check whether --with-mysql was given.
-if test "${with_mysql+set}" = set; then :
-  withval=$with_mysql;
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
 fi
+rm -f conftest*
 
-   # Check whether --enable-mysql was given.
-if test "${enable_mysql+set}" = set; then :
-  enableval=$enable_mysql; as_fn_error $? "Invalid option. Use --with-mysql/--without-mysql instead" "$LINENO" 5
 fi
 
-if test "x$with_mysql" = "xyes"; then
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
 
-$as_echo "#define NETSNMP_USE_MYSQL 1" >>confdefs.h
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
 
 fi
 
-# -*- autoconf -*-
-#
-# Prompt for various bits of user information
-#
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
 
-if test "x$ac_cv_user_prompt_NETSNMP_LOGFILE" = "x" -o "x$ac_cv_user_prompt_NETSNMP_SYS_LOC" = "x" -o "x$ac_cv_user_prompt_NETSNMP_SYS_CONTACT" = "x" -o "x$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" = "x"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to prompt for values" >&5
-$as_echo_n "checking whether to prompt for values... " >&6; }
-if ${ac_cv_have_warned+:} false; then :
-  $as_echo_n "(cached) " >&6
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      exit(2);
+  exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
 else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-if test "x$defaults" = "xno"; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}:
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
 
-	 ************** Configuration Section **************
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
 
-	You are about to be prompted with a series of questions.  Answer
-them carefully, as they determine how the SNMP agent and related
-applications are to function.
+fi
 
-	After the configure script finishes, you can browse the newly
-created net-snmp-config.h file for further - less important - parameters to
-modify.  Be careful if you re-run configure though, since net-snmp-config.h
-will be overwritten.
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
 
--Press return to continue-
-" >&5
-$as_echo "$as_me:
 
-	 ************** Configuration Section **************
 
-	You are about to be prompted with a series of questions.  Answer
-them carefully, as they determine how the SNMP agent and related
-applications are to function.
 
-	After the configure script finishes, you can browse the newly
-created net-snmp-config.h file for further - less important - parameters to
-modify.  Be careful if you re-run configure though, since net-snmp-config.h
-will be overwritten.
 
--Press return to continue-
-" >&6;}
 
-read tmpinput <&7
-ac_cv_have_warned="yes"
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_have_warned="no"
-fi
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_warned" >&5
-$as_echo "$ac_cv_have_warned" >&6; }
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
 else
-  ac_cv_have_warned="yes"
-fi
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-ME=`$WHOAMI`
-if test -f /etc/resolv.conf; then
-  LOC=`awk '/^domain/{loc=$NF}END{print loc}' /etc/resolv.conf`
+eval "$as_ac_Header=no"
 fi
-if test "x$LOC" = x; then
-  LOC="@no.where"
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
+fi
 
-MSG_CHECK="Default version of SNMP to use"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $MSG_CHECK" >&5
-$as_echo_n "checking $MSG_CHECK... " >&6; }
-if ${ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  echo "" >&6
+done
 
-if test "x$defaults" = "xno"; then
-echo $ECHO_N "
 
-*** Default SNMP Version:
 
-	Starting with Net-SNMP 5.0, you can choose the default version of
-the SNMP protocol to use when no version is given explicitly on the
-command line, or via an 'snmp.conf' file.  In the past this was set to
-SNMPv1, but you can use this to switch to SNMPv3 if desired.  SNMPv3
-will provide a more secure management environment (and thus you're
-encouraged to switch to SNMPv3), but may break existing scripts that
-rely on the old behaviour.  (Though such scripts will probably need to
-be changed to use the '-c' community flag anyway, as the SNMPv1
-command line usage has changed as well.).
-   At this prompt you can select \"1\", \"2\" (for SNMPv2c), or \"3\" as
-the default version for the command tools (snmpget, ...) to use.  This
-can always be overridden at runtime using the -v flag to the tools, or
-by using the \"defVersion\" token in your snmp.conf file.
-   Providing the --with-default-snmp-version=\"x\" parameter to ./configure
-will avoid this prompt.
-
-Default version of SNMP to use (3): $ECHO_C"
-read tmpinput <&7
-if test "$tmpinput" = "" -a "3" != ""; then
-  tmpinput="3"
+for ac_header in dlfcn.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-eval NETSNMP_DEFAULT_SNMP_VERSION=\"$tmpinput\"
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 else
-tmpinput="3"
-eval NETSNMP_DEFAULT_SNMP_VERSION=\"$tmpinput\"
-fi
-
-eval ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION=\$NETSNMP_DEFAULT_SNMP_VERSION
-echo $ECHO_N "setting $MSG_CHECK to...  $ECHO_C" >&6
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_header_compiler=no
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" >&5
-$as_echo "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" >&6; }
-if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "none"; then
-  if test "xunquoted" = "xquoted" -o "xunquoted" = "xQUOTED"; then
-    cat >>confdefs.h <<_ACEOF
-#define NETSNMP_DEFAULT_SNMP_VERSION "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION"
-_ACEOF
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-  else
-    cat >>confdefs.h <<_ACEOF
-#define NETSNMP_DEFAULT_SNMP_VERSION $ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
   fi
+else
+  ac_cpp_err=yes
 fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-# we tested this above before the prompt, but the prompt may give a new value.
-case "${ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION}" in
-  [123]) ;;
-  2c) ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION=2 ;;
-  *)
-    as_fn_error $? "Illegal version number.  Only 1, 2 (for SNMPv2c) and 3 are supported." "$LINENO" 5
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
     ;;
 esac
-
-
-MSG_CHECK="System Contact Information"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $MSG_CHECK" >&5
-$as_echo_n "checking $MSG_CHECK... " >&6; }
-if ${ac_cv_user_prompt_NETSNMP_SYS_CONTACT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  echo "" >&6
-
-if test "x$defaults" = "xno"; then
-echo $ECHO_N "
-
-*** System Contact Information:
-
-	Describes who should be contacted about the host the agent is
-running on.  This information is available in the MIB-II tree.  This
-can also be over-ridden using the \"syscontact\" syntax in the agent's
-configuration files.
-  Providing the --with-sys-contact=\"contact\" parameter to ./configure
-will avoid this prompt.
-
-System Contact Information ($ME@$LOC): $ECHO_C"
-read tmpinput <&7
-if test "$tmpinput" = "" -a "$ME@$LOC" != ""; then
-  tmpinput="$ME@$LOC"
-fi
-eval NETSNMP_SYS_CONTACT=\"$tmpinput\"
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-tmpinput="$ME@$LOC"
-eval NETSNMP_SYS_CONTACT=\"$tmpinput\"
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
-
-eval ac_cv_user_prompt_NETSNMP_SYS_CONTACT=\$NETSNMP_SYS_CONTACT
-echo $ECHO_N "setting $MSG_CHECK to...  $ECHO_C" >&6
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_user_prompt_NETSNMP_SYS_CONTACT" >&5
-$as_echo "$ac_cv_user_prompt_NETSNMP_SYS_CONTACT" >&6; }
-if test "$ac_cv_user_prompt_NETSNMP_SYS_CONTACT" != "none"; then
-  if test "xquoted" = "xquoted" -o "xquoted" = "xQUOTED"; then
-    cat >>confdefs.h <<_ACEOF
-#define NETSNMP_SYS_CONTACT "$ac_cv_user_prompt_NETSNMP_SYS_CONTACT"
-_ACEOF
-
-  else
-    cat >>confdefs.h <<_ACEOF
-#define NETSNMP_SYS_CONTACT $ac_cv_user_prompt_NETSNMP_SYS_CONTACT
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
-  fi
 fi
 
+done
 
-
-MSG_CHECK="System Location"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $MSG_CHECK" >&5
-$as_echo_n "checking $MSG_CHECK... " >&6; }
-if ${ac_cv_user_prompt_NETSNMP_SYS_LOC+:} false; then :
-  $as_echo_n "(cached) " >&6
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo "" >&6
-
-if test "x$defaults" = "xno"; then
-echo $ECHO_N "
-
-*** System Location:
-
-	Describes the location of the system.  This information is
-available in the MIB-II tree.  this can also be over-ridden using the
-\"syslocation\" syntax in the agent's configuration files.
-  Providing the --with-sys-location=\"location\" parameter to ./configure
-will avoid this prompt.
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
-System Location (Unknown): $ECHO_C"
-read tmpinput <&7
-if test "$tmpinput" = "" -a "Unknown" != ""; then
-  tmpinput="Unknown"
 fi
-eval NETSNMP_SYS_LOC=\"$tmpinput\"
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  echo "$as_me:$LINENO: result: $CXX" >&5
+echo "${ECHO_T}$CXX" >&6
 else
-tmpinput="Unknown"
-eval NETSNMP_SYS_LOC=\"$tmpinput\"
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-eval ac_cv_user_prompt_NETSNMP_SYS_LOC=\$NETSNMP_SYS_LOC
-echo $ECHO_N "setting $MSG_CHECK to...  $ECHO_C" >&6
-
+    test -n "$CXX" && break
+  done
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_user_prompt_NETSNMP_SYS_LOC" >&5
-$as_echo "$ac_cv_user_prompt_NETSNMP_SYS_LOC" >&6; }
-if test "$ac_cv_user_prompt_NETSNMP_SYS_LOC" != "none"; then
-  if test "xquoted" = "xquoted" -o "xquoted" = "xQUOTED"; then
-    cat >>confdefs.h <<_ACEOF
-#define NETSNMP_SYS_LOC "$ac_cv_user_prompt_NETSNMP_SYS_LOC"
-_ACEOF
-
-  else
-    cat >>confdefs.h <<_ACEOF
-#define NETSNMP_SYS_LOC $ac_cv_user_prompt_NETSNMP_SYS_LOC
-_ACEOF
-
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
   fi
+done
+done
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+echo "${ECHO_T}$ac_ct_CXX" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
+  test -n "$ac_ct_CXX" && break
+done
+test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
 
-if test -d /var/log; then
-  defaultlog="/var/log/snmpd.log"
-else
-  defaultlog="/usr/adm/snmpd.log"
+  CXX=$ac_ct_CXX
 fi
 
 
-MSG_CHECK="Location to write logfile"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $MSG_CHECK" >&5
-$as_echo_n "checking $MSG_CHECK... " >&6; }
-if ${ac_cv_user_prompt_NETSNMP_LOGFILE+:} false; then :
-  $as_echo_n "(cached) " >&6
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+     "checking for C++ compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo "" >&6
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-if test "x$defaults" = "xno"; then
-echo $ECHO_N "
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
 
-*** Logfile location:
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-	Enter the default location for the snmpd agent to dump
-information & errors to.  If not defined (enter the keyword \"none\"
-at the prompt below) the agent will use stdout and stderr instead.
-(Note: This value can be over-ridden using command line options.)
-  Providing the --with-logfile=\"path\" parameter to ./configure
-will avoid this prompt.
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
-Location to write logfile ($defaultlog): $ECHO_C"
-read tmpinput <&7
-if test "$tmpinput" = "" -a "$defaultlog" != ""; then
-  tmpinput="$defaultlog"
 fi
-eval NETSNMP_LOGFILE=\"$tmpinput\"
+echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+GXX=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cxx_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-tmpinput="$defaultlog"
-eval NETSNMP_LOGFILE=\"$tmpinput\"
-fi
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-eval ac_cv_user_prompt_NETSNMP_LOGFILE=\$NETSNMP_LOGFILE
-echo $ECHO_N "setting $MSG_CHECK to...  $ECHO_C" >&6
+int
+main ()
+{
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_user_prompt_NETSNMP_LOGFILE" >&5
-$as_echo "$ac_cv_user_prompt_NETSNMP_LOGFILE" >&6; }
-if test "$ac_cv_user_prompt_NETSNMP_LOGFILE" != "none"; then
-  if test "xquoted" = "xquoted" -o "xquoted" = "xQUOTED"; then
-    cat >>confdefs.h <<_ACEOF
-#define NETSNMP_LOGFILE "$ac_cv_user_prompt_NETSNMP_LOGFILE"
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cxx_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_prog_cxx_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
   else
-    cat >>confdefs.h <<_ACEOF
-#define NETSNMP_LOGFILE $ac_cv_user_prompt_NETSNMP_LOGFILE
-_ACEOF
-
+    CXXFLAGS="-g"
   fi
-fi
-
-
-if test -d /var; then
-  defaultstore="/var/net-snmp"
-  ucddefaultstore="/var/ucd-snmp"
 else
-  defaultstore="/etc/net-snmp"
-  ucddefaultstore="/etc/ucd-snmp"
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
 fi
+for ac_declaration in \
+   '' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-
-MSG_CHECK="Location to write persistent information"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $MSG_CHECK" >&5
-$as_echo_n "checking $MSG_CHECK... " >&6; }
-if ${ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  echo "" >&6
-
-if test "x$defaults" = "xno"; then
-echo $ECHO_N "
-
-*** snmpd persistent storage location:
-
-	Enter a directory for the SNMP library to store persistent
-data in the form of a configuration file.  This default location is
-different than the old default location (which was for ucd-snmp).  If
-you stay with the new path, I'll ask you in a second if you wish to
-copy your files over to the new location (once only).  If you pick
-some other path than the default, you'll have to copy them yourself.
-There is nothing wrong with picking the old path ($ucddefaultstore) if
-you'd rather.
-  Providing the --with-persistent-directory=\"path\" parameter to
-./configure will avoid this prompt.
-
-Location to write persistent information ($defaultstore): $ECHO_C"
-read tmpinput <&7
-if test "$tmpinput" = "" -a "$defaultstore" != ""; then
-  tmpinput="$defaultstore"
+continue
 fi
-eval NETSNMP_PERSISTENT_DIRECTORY=\"$tmpinput\"
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
 else
-tmpinput="$defaultstore"
-eval NETSNMP_PERSISTENT_DIRECTORY=\"$tmpinput\"
-fi
-
-eval ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY=\$NETSNMP_PERSISTENT_DIRECTORY
-echo $ECHO_N "setting $MSG_CHECK to...  $ECHO_C" >&6
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY" >&5
-$as_echo "$ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY" >&6; }
-if test "$ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY" != "none"; then
-  if test "xquoted" = "xquoted" -o "xquoted" = "xQUOTED"; then
-    cat >>confdefs.h <<_ACEOF
-#define NETSNMP_PERSISTENT_DIRECTORY "$ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY"
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
+echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
+if test -z "$CXXCPP"; then
+  if test "${ac_cv_prog_CXXCPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CXXCPP needs to be expanded
+    for CXXCPP in "$CXX -E" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-
-  else
-    cat >>confdefs.h <<_ACEOF
-#define NETSNMP_PERSISTENT_DIRECTORY $ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
 _ACEOF
-
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
   fi
+else
+  ac_cpp_err=yes
 fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
 
-PERSISTENT_DIRECTORY=$ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY
-
-UCDPERSISTENT_DIRECTORY=$ucddefaultstore
-
-
-if test $PERSISTENT_DIRECTORY = "$defaultstore" -a -d "$ucddefaultstore" -a ! -d "$defaultstore" ; then
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking If we should copy the old persistent directory" >&5
-$as_echo_n "checking If we should copy the old persistent directory... " >&6; }
-if ${ac_cv_user_prompt_COPY_PERSISTENT_FILES+:} false; then :
-  $as_echo_n "(cached) " >&6
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
 else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
 
-if test "x$defaults" = "xno"; then
-echo $ECHO_N "
-
-*** Copying old ucd-snmp persistent files to net-snmp persistent directory:
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
 
-	Would you like to copy the older ucd-snmp persistent files
-into your new net-snmp persistent file path?  This will functionally
-save all your ucd-snmp data and let it be used within the net-snmp
-tools.  This will only be done once when you run make install.  If you
-wish to do this, enter "yes" at the prompt.
-  Providing the --with-copy-persistent-files=\"no\" (or \"yes\")
-parameters to ./configure will avoid this prompt.
+    done
+    ac_cv_prog_CXXCPP=$CXXCPP
 
-Copy ucd-snmp data into the net-snmp data directory ("yes"): $ECHO_C"
-read tmpinput <&7
-if test "$tmpinput" = "" -a ""yes"" != ""; then
-  tmpinput=""yes""
 fi
-eval ac_cv_user_prompt_COPY_PERSISTENT_FILES=\"$tmpinput\"
+  CXXCPP=$ac_cv_prog_CXXCPP
 else
-tmpinput=""yes""
-eval ac_cv_user_prompt_COPY_PERSISTENT_FILES=\"$tmpinput\"
-fi
-
-
+  ac_cv_prog_CXXCPP=$CXXCPP
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_user_prompt_COPY_PERSISTENT_FILES" >&5
-$as_echo "$ac_cv_user_prompt_COPY_PERSISTENT_FILES" >&6; }
+echo "$as_me:$LINENO: result: $CXXCPP" >&5
+echo "${ECHO_T}$CXXCPP" >&6
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
 else
-ac_cv_user_prompt_COPY_PERSISTENT_FILES="no"
+  ac_cpp_err=yes
 fi
-COPY_PERSISTENT_FILES="$ac_cv_user_prompt_COPY_PERSISTENT_FILES"
-
-
-# -*- autoconf -*-
-#########################################
-##
-# Checks for programs
-##
-#########################################
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-##
-#   Shell checks:
-##
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
 
-#       Check for 'sh' overflow                         (HP-UX)
-#         (taken from Perl's configure script)
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if I need to feed myself to ksh" >&5
-$as_echo_n "checking if I need to feed myself to ksh... " >&6; }
-if test -f /hp-ux -a -f /bin/ksh; then
-  if (PATH=.; alias -x) >/dev/null 2>&1; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
   else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    if test "x$1" = "x"; then
-      exec /bin/ksh $0
-    else
-      exec /bin/ksh $0 "$@"
-    fi
+    ac_cpp_err=
   fi
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  ac_cpp_err=yes
 fi
-
-
-##
-#   Standard and path program checks:
-##
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
-  $as_echo_n "(cached) " >&6
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
 else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
 else
-  ac_cv_path_GREP=$GREP
+  { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
 fi
 
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+  if test -n "$F77"; then
+  ac_cv_prog_F77="$F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
   fi
+done
+done
+
+fi
+fi
+F77=$ac_cv_prog_F77
+if test -n "$F77"; then
+  echo "$as_me:$LINENO: result: $F77" >&5
+echo "${ECHO_T}$F77" >&6
 else
-  ac_cv_path_EGREP=$EGREP
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-   fi
+    test -n "$F77" && break
+  done
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
-  ./ | .// | /[cC]/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    rm -rf conftest.one conftest.two conftest.dir
-	    echo one > conftest.one
-	    echo two > conftest.two
-	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-	      test -s conftest.one && test -s conftest.two &&
-	      test -s conftest.dir/conftest.one &&
-	      test -s conftest.dir/conftest.two
-	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	      break 3
-	    fi
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
-
-  done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-	@echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
-  *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  SET_MAKE=
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
-     for ac_i in 1 2 3 4 5 6 7; do
-       ac_script="$ac_script$as_nl$ac_script"
-     done
-     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     { ac_script=; unset ac_script;}
-     if test -z "$SED"; then
-  ac_path_SED_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
-# Check for GNU ac_path_SED and select it if it is found.
-  # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
-  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo '' >> "conftest.nl"
-    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_SED_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_SED="$ac_path_SED"
-      ac_path_SED_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_SED_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_SED"; then
-    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
-  fi
-else
-  ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
-  rm -f conftest.sed
-
-
-for ac_prog in file
+if test -z "$F77"; then
+  ac_ct_F77=$F77
+  for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_FILE+:} false; then :
-  $as_echo_n "(cached) " >&6
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$FILE"; then
-  ac_cv_prog_FILE="$FILE" # Let the user override the test.
+  if test -n "$ac_ct_F77"; then
+  ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_FILE="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_F77="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-  done
-IFS=$as_save_IFS
+done
 
 fi
 fi
-FILE=$ac_cv_prog_FILE
-if test -n "$FILE"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FILE" >&5
-$as_echo "$FILE" >&6; }
+ac_ct_F77=$ac_cv_prog_ac_ct_F77
+if test -n "$ac_ct_F77"; then
+  echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
+echo "${ECHO_T}$ac_ct_F77" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-
-  test -n "$FILE" && break
+  test -n "$ac_ct_F77" && break
 done
 
-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.
-  as_fn_error 1 "file program not found although it is needed by libtool." "$LINENO" 5
+  F77=$ac_ct_F77
 fi
 
-for ac_prog in find
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_FIND+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$FIND"; then
-  ac_cv_prog_FIND="$FIND" # Let the user override the test.
+
+# Provide some information about the compiler.
+echo "$as_me:6973:" \
+     "checking for Fortran 77 compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+rm -f a.out
+
+# If we don't use `.F' as extension, the preprocessor is not run on the
+# input file.  (Note that this only needs to work for GNU compilers.)
+ac_save_ext=$ac_ext
+ac_ext=F
+echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6
+if test "${ac_cv_f77_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+      program main
+#ifndef __GNUC__
+       choke me
+#endif
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_FIND="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_compiler_gnu=no
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_f77_compiler_gnu=$ac_compiler_gnu
+
 fi
-FIND=$ac_cv_prog_FIND
-if test -n "$FIND"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIND" >&5
-$as_echo "$FIND" >&6; }
+echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6
+ac_ext=$ac_save_ext
+ac_test_FFLAGS=${FFLAGS+set}
+ac_save_FFLAGS=$FFLAGS
+FFLAGS=
+echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
+echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_f77_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
+  FFLAGS=-g
+cat >conftest.$ac_ext <<_ACEOF
+      program main
 
-  test -n "$FIND" && break
-done
-
-for ac_prog in whoami logname
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_WHOAMI+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$WHOAMI"; then
-  ac_cv_prog_WHOAMI="$WHOAMI" # Let the user override the test.
+      end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_f77_g=yes
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_WHOAMI="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_prog_f77_g=no
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
-WHOAMI=$ac_cv_prog_WHOAMI
-if test -n "$WHOAMI"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WHOAMI" >&5
-$as_echo "$WHOAMI" >&6; }
+echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
+echo "${ECHO_T}$ac_cv_prog_f77_g" >&6
+if test "$ac_test_FFLAGS" = set; then
+  FFLAGS=$ac_save_FFLAGS
+elif test $ac_cv_prog_f77_g = yes; then
+  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+    FFLAGS="-g -O2"
+  else
+    FFLAGS="-g"
+  fi
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+    FFLAGS="-O2"
+  else
+    FFLAGS=
+  fi
 fi
 
+G77=`test $ac_compiler_gnu = yes && echo yes`
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-  test -n "$WHOAMI" && break
-done
-test -n "$WHOAMI" || WHOAMI="whoami"
 
 
-# Extract the first word of "autoconf", so it can be a program name with args.
-set dummy autoconf; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_AUTOCONF+:} false; then :
-  $as_echo_n "(cached) " >&6
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+# find the maximum length of command line arguments
+echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case $AUTOCONF in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_AUTOCONF="$AUTOCONF" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_AUTOCONF="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-AUTOCONF=$ac_cv_path_AUTOCONF
-if test -n "$AUTOCONF"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AUTOCONF" >&5
-$as_echo "$AUTOCONF" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "autoheader", so it can be a program name with args.
-set dummy autoheader; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_AUTOHEADER+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $AUTOHEADER in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_AUTOHEADER="$AUTOHEADER" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_AUTOHEADER="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-AUTOHEADER=$ac_cv_path_AUTOHEADER
-if test -n "$AUTOHEADER"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AUTOHEADER" >&5
-$as_echo "$AUTOHEADER" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
+    i=0
+  teststring="ABCD"
 
-# Extract the first word of "perl", so it can be a program name with args.
-set dummy perl; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PERLPROG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PERLPROG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PERLPROG="$PERLPROG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PERLPROG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
 
-  ;;
-esac
-fi
-PERLPROG=$ac_cv_path_PERLPROG
-if test -n "$PERLPROG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERLPROG" >&5
-$as_echo "$PERLPROG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
 
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
 
-# Extract the first word of "ps", so it can be a program name with args.
-set dummy ps; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PSPROG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PSPROG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PSPROG="$PSPROG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PSPROG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
 
-  ;;
-esac
-fi
-PSPROG=$ac_cv_path_PSPROG
-if test -n "$PSPROG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PSPROG" >&5
-$as_echo "$PSPROG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
 
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
 
-# Extract the first word of "python", so it can be a program name with args.
-set dummy python; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PYTHONPROG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PYTHONPROG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PYTHONPROG="$PYTHONPROG" # Let the user override the test with a path.
-  ;;
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ 	]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
   *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PYTHONPROG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
+	       = "XX$teststring") >/dev/null 2>&1 &&
+	      new_result=`expr "X$teststring" : ".*" 2>&1` &&
+	      lt_cv_sys_max_cmd_len=$new_result &&
+	      test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on massive
+      # amounts of additional arguments before passing them to the linker.
+      # It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
 
-  ;;
-esac
-fi
-PYTHONPROG=$ac_cv_path_PYTHONPROG
-if test -n "$PYTHONPROG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHONPROG" >&5
-$as_echo "$PYTHONPROG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
 fi
 
-
-
-# Extract the first word of "uname", so it can be a program name with args.
-set dummy uname; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_UNAMEPROG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $UNAMEPROG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_UNAMEPROG="$UNAMEPROG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_UNAMEPROG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-UNAMEPROG=$ac_cv_path_UNAMEPROG
-if test -n "$UNAMEPROG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNAMEPROG" >&5
-$as_echo "$UNAMEPROG" >&6; }
+if test -n $lt_cv_sys_max_cmd_len ; then
+  echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  echo "$as_me:$LINENO: result: none" >&5
+echo "${ECHO_T}none" >&6
 fi
 
 
 
-cat >>confdefs.h <<_ACEOF
-#define UNAMEPROG "$UNAMEPROG"
-_ACEOF
-
-
-if test "x$ac_cv_prog_AUTOCONF" = "x"; then
-	AUTOCONF=":"
-
-fi
-if test "x$ac_cv_prog_AUTOHEADER" = "x"; then
-	AUTOHEADER=":"
 
-fi
 
-MAKE=${MAKE-"make"}
-$MAKE -v -f /dev/null 2>/dev/null | $GREP GNU >/dev/null
-have_gnu_make=$?
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
 
-##
-#   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.
-##
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the Perl function system() invokes a POSIX shell" >&5
-$as_echo_n "checking whether the Perl function system() invokes a POSIX shell... " >&6; }
-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
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
 
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
 
-##
-#   Compilation-related program checks:
-##
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[BCDT]'
+  ;;
+cygwin* | mingw* | pw32*)
+  symcode='[ABCDGISTW]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  if test "$host_cpu" = ia64; then
+    symcode='[ABCDEGRST]'
+  fi
+  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  ;;
+linux* | k*bsd*-gnu)
+  if test "$host_cpu" = ia64; then
+    symcode='[ABCDGIRSTW]'
+    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[BCDEGRST]'
+  ;;
+osf*)
+  symcode='[BCDEGQRST]'
+  ;;
+solaris*)
+  symcode='[BDRT]'
+  ;;
+sco3.2v5*)
+  symcode='[DT]'
+  ;;
+sysv4.2uw2*)
+  symcode='[DT]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[ABDT]'
+  ;;
+sysv4)
+  symcode='[DFNSTU]'
+  ;;
+esac
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ 	]\($symcode$symcode*\)[ 	][ 	]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
+  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if grep ' nm_test_var$' "$nlist" >/dev/null; then
+	if grep ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+	  cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+	  cat <<\EOF >> conftest.$ac_ext
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+	  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&5
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&5
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+    fi
+  else
+    echo "$progname: failed program was:" >&5
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  echo "$as_me:$LINENO: result: failed" >&5
+echo "${ECHO_T}failed" >&6
+else
+  echo "$as_me:$LINENO: result: ok" >&5
+echo "${ECHO_T}ok" >&6
+fi
+
+echo "$as_me:$LINENO: checking for objdir" >&5
+echo $ECHO_N "checking for objdir... $ECHO_C" >&6
+if test "${lt_cv_objdir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+echo "${ECHO_T}$lt_cv_objdir" >&6
+objdir=$lt_cv_objdir
+
+
+
+
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
+  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="${ac_tool_prefix}ar"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-  done
-IFS=$as_save_IFS
+done
 
 fi
 fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  echo "$as_me:$LINENO: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-
 fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="ar"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-  done
-IFS=$as_save_IFS
+done
 
+  test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false"
 fi
 fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+echo "${ECHO_T}$ac_ct_AR" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
+  AR=$ac_ct_AR
 else
-  CC="$ac_cv_prog_CC"
+  AR="$ac_cv_prog_AR"
 fi
 
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-  done
-IFS=$as_save_IFS
+done
 
 fi
 fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-
-  fi
 fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
 else
-  ac_prog_rejected=no
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-  done
-IFS=$as_save_IFS
+done
 
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
+  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
 fi
 fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-
+  RANLIB=$ac_ct_RANLIB
+else
+  RANLIB="$ac_cv_prog_RANLIB"
 fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-  done
-IFS=$as_save_IFS
+done
 
 fi
 fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-
-    test -n "$CC" && break
-  done
 fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-  done
-IFS=$as_save_IFS
+done
 
+  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
 fi
 fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
+  STRIP=$ac_ct_STRIP
+else
+  STRIP="$ac_cv_prog_STRIP"
 fi
 
 
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
 
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
 
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
 
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
   esac
-done
-rm -f $ac_rmfiles
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
 
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
-	;;
-    [ab].out )
-	# We found the default executable, but exeext='' is most
-	# certainly right.
-	break;;
-    *.* )
-	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-	then :; else
-	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	fi
-	# We set ac_cv_exeext here because the later test for it is not
-	# safe: cross compilers may not add the suffix if given an `-o'
-	# argument, so we may need to know it at that point already.
-	# Even if this section looks crufty: it has the advantage of
-	# actually working.
-	break;;
-    * )
-	break;;
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
   esac
 done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
-else
-  ac_file=''
-fi
-if test -z "$ac_file"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/${ac_tool_prefix}file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
 
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
 esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  break;;
-    * ) break;;
-  esac
-done
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
 fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
 
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
-  { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-  if { ac_try='./conftest$ac_cv_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    echo "$as_me:$LINENO: checking for file" >&5
+echo $ECHO_N "checking for file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
     fi
-  fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
 
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
-  $as_echo_n "(cached) " >&6
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-int
-main ()
-{
+  else
+    MAGIC_CMD=:
+  fi
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+  fi
+  ;;
 esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
+
+
+  case $host_os in
+    rhapsody* | darwin*)
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test -n "$DSYMUTIL"; then
+  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
 fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+  echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
+echo "${ECHO_T}$DSYMUTIL" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+  ac_ct_DSYMUTIL=$DSYMUTIL
+  # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_DSYMUTIL"; then
+  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
+  test -z "$ac_cv_prog_ac_ct_DSYMUTIL" && ac_cv_prog_ac_ct_DSYMUTIL=":"
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+  echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
+echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6
 else
-  ac_compiler_gnu=no
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
+  DSYMUTIL=$ac_ct_DSYMUTIL
+else
+  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_NMEDIT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$NMEDIT"; then
+  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
 else
-  GCC=
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
 fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+  echo "$as_me:$LINENO: result: $NMEDIT" >&5
+echo "${ECHO_T}$NMEDIT" >&6
 else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-int
-main ()
-{
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+  ac_ct_NMEDIT=$NMEDIT
+  # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_NMEDIT"; then
+  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_NMEDIT="nmedit"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
+  test -z "$ac_cv_prog_ac_ct_NMEDIT" && ac_cv_prog_ac_ct_NMEDIT=":"
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+  echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
+echo "${ECHO_T}$ac_ct_NMEDIT" >&6
 else
-  CFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-int
-main ()
-{
+  NMEDIT=$ac_ct_NMEDIT
+else
+  NMEDIT="$ac_cv_prog_NMEDIT"
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
 
+    echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
+echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+   # By default we will add the -single_module flag. You can override
+   # by either setting the environment variable LT_MULTI_MODULE
+   # non-empty at configure time, or by adding -multi_module to the
+   # link flags.
+   echo "int foo(void){return 1;}" > conftest.c
+   $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+     -dynamiclib ${wl}-single_module conftest.c
+   if test -f libconftest.dylib; then
+     lt_cv_apple_cc_single_mod=yes
+     rm -rf libconftest.dylib*
+   fi
+   rm conftest.c
+      fi
+fi
+echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
+echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6
+    echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
+echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
 int
@@ -7186,4951 +8154,5522 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  lt_cv_ld_exported_symbols_list=yes
 else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+lt_cv_ld_exported_symbols_list=no
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+   LDFLAGS="$save_LDFLAGS"
 
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+fi
+echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
+echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6
+    case $host_os in
+    rhapsody* | darwin1.[0123])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*)
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+   10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+   10.[012]*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+   10.*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}"
+    fi
+    if test "$DSYMUTIL" != ":"; then
+      _lt_dsymutil="~$DSYMUTIL \$lib || :"
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
 
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
 
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
+enable_dlopen=yes
+enable_win32_dll=yes
 
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+  enableval="$enable_libtool_lock"
+
+fi;
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
 
-fi
 
+# Check whether --with-pic or --without-pic was given.
+if test "${with_pic+set}" = set; then
+  withval="$with_pic"
+  pic_mode="$withval"
+else
+  pic_mode=default
+fi;
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+lt_save_CC="$CC"
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+
+# Source file extension for C test sources.
 ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if ${ac_cv_prog_CPP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
 
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
 
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
 
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
 
-    done
-    ac_cv_prog_CPP=$CPP
 
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
 
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
 
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
+# Allow CC to be a program name with arguments.
+compiler=$CC
 
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
 
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm -r conftest*
 
-LINKCC=${LINKCC-"$CC"}
 
 
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
+echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
+  lt_cv_prog_compiler_rtti_exceptions=no
+  ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:8322: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:8326: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $rm conftest*
 
-int
-main ()
-{
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
 else
-  ac_cv_header_stdc=no
+    :
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
+fi
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
+lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
 
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
 
-fi
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl='-Wl,'
+    lt_prog_compiler_static='-static'
 
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+      ;;
 
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
 
-fi
+    mingw* | cygwin* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
 
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic='-fno-common'
+      ;;
 
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
 
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared=no
+      enable_shared=no
+      ;;
 
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic=-Kconform_pic
+      fi
+      ;;
 
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='-fPIC'
+	;;
+      esac
+      ;;
 
-fi
+    *)
+      lt_prog_compiler_pic='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      else
+	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         lt_prog_compiler_pic='-qnocommon'
+         lt_prog_compiler_wl='-Wl,'
+         ;;
+       esac
+       ;;
 
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+    mingw* | cygwin* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
 
-fi
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static='${wl}-a ${wl}archive'
+      ;;
 
-done
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static='-non_shared'
+      ;;
 
+    newsos6)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    linux* | k*bsd*-gnu)
+      case $cc_basename in
+      icc* | ecc*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-KPIC'
+	lt_prog_compiler_static='-static'
+        ;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-fpic'
+	lt_prog_compiler_static='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static='-non_shared'
+        ;;
+      *)
+        case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C 5.9
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl='-Wl,'
+	  ;;
+	*Sun\ F*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  lt_prog_compiler_pic='-KPIC'
+	  lt_prog_compiler_static='-Bstatic'
+	  lt_prog_compiler_wl=''
+	  ;;
+	esac
+	;;
+      esac
+      ;;
 
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static='-non_shared'
+      ;;
 
-  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
-  MINIX=yes
-else
-  MINIX=
-fi
+    rdos*)
+      lt_prog_compiler_static='-non_shared'
+      ;;
 
+    solaris*)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl='-Wl,';;
+      esac
+      ;;
 
-  if test "$MINIX" = yes; then
+    sunos4*)
+      lt_prog_compiler_wl='-Qoption ld '
+      lt_prog_compiler_pic='-PIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
 
-$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
 
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic='-Kconform_pic'
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
 
-$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
 
+    unicos*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_can_build_shared=no
+      ;;
 
-$as_echo "#define _MINIX 1" >>confdefs.h
+    uts4*)
+      lt_prog_compiler_pic='-pic'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
 
+    *)
+      lt_prog_compiler_can_build_shared=no
+      ;;
+    esac
   fi
 
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic" >&6
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
 
-#	  define __EXTENSIONS__ 1
-	  $ac_includes_default
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_safe_to_define___extensions__=yes
-else
-  ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
-  test $ac_cv_safe_to_define___extensions__ = yes &&
-    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
-
-  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
-
-  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
-
-  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
-
-  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
-$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if ${ac_cv_c_const+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-/* FIXME: Include the comments suggested by Paul. */
-#ifndef __cplusplus
-  /* Ultrix mips cc rejects this.  */
-  typedef int charset[2];
-  const charset cs;
-  /* SunOS 4.1.1 cc rejects this.  */
-  char const *const *pcpcc;
-  char **ppc;
-  /* NEC SVR4.0.2 mips cc rejects this.  */
-  struct point {int x, y;};
-  static struct point const zero = {0,0};
-  /* AIX XL C 1.02.0.0 rejects this.
-     It does not let you subtract one const X* pointer from another in
-     an arm of an if-expression whose if-part is not a constant
-     expression */
-  const char *g = "string";
-  pcpcc = &g + (g ? g-g : 0);
-  /* HPUX 7.0 cc rejects these. */
-  ++pcpcc;
-  ppc = (char**) pcpcc;
-  pcpcc = (char const *const *) ppc;
-  { /* SCO 3.2v4 cc rejects this.  */
-    char *t;
-    char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-    *t++ = 0;
-    if (s) return 0;
-  }
-  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-    int x[] = {25, 17};
-    const int *foo = &x[0];
-    ++foo;
-  }
-  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-    typedef const int *iptr;
-    iptr p = 0;
-    ++p;
-  }
-  { /* AIX XL C 1.02.0.0 rejects this saying
-       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; };
-    struct s *b; b->j = 5;
-  }
-  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-    const int foo = 10;
-    if (!foo) return 0;
-  }
-  return !cs[0] && !zero.x;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_const=yes
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_c_const=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
-$as_echo "$ac_cv_c_const" >&6; }
-if test $ac_cv_c_const = no; then
-
-$as_echo "#define const /**/" >>confdefs.h
+  lt_cv_prog_compiler_pic_works=no
+  ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:8612: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:8616: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_pic_works=yes
+     fi
+   fi
+   $rm conftest*
 
 fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
-  $as_echo_n "(cached) " >&6
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+    case $lt_prog_compiler_pic in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+     esac
 else
-  ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_inline=$ac_kw
+    lt_prog_compiler_pic=
+     lt_prog_compiler_can_build_shared=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  test "$ac_cv_c_inline" != no && break
-done
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
-
-case $ac_cv_c_inline in
-  inline | yes) ;;
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic=
+    ;;
   *)
-    case $ac_cv_c_inline in
-      no) ac_val=;;
-      *) ac_val=$ac_cv_c_inline;;
-    esac
-    cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
+    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
     ;;
 esac
 
-
-#       libtool stuff for shared/static libraries.
 #
-
-case `pwd` in
-  *\ * | *\	*)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.4'
-macro_revision='1.3293'
-
-
-
-
-
-
-
-
-
-
-
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
+  lt_cv_prog_compiler_static_works=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler_static_works=yes
+       fi
+     else
+       lt_cv_prog_compiler_static_works=yes
+     fi
+   fi
+   $rm -r conftest*
+   LDFLAGS="$save_LDFLAGS"
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6
 
-ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
-   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='printf %s\n'
-else
-  # Use this function as a fallback that always works.
-  func_fallback_echo ()
-  {
-    eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-  }
-  ECHO='func_fallback_echo'
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+    :
+else
+    lt_prog_compiler_static=
 fi
 
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO ""
-}
-
-case "$ECHO" in
-  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
-  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
-  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
-esac
-
-
-
-
-
-
 
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:8716: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:8720: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
 
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6
 
 
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
 
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
 
+  runpath_var=
+  allow_undefined_flag=
+  enable_shared_with_static_runtimes=no
+  archive_cmds=
+  archive_expsym_cmds=
+  old_archive_From_new_cmds=
+  old_archive_from_expsyms_cmds=
+  export_dynamic_flag_spec=
+  whole_archive_flag_spec=
+  thread_safe_flag_spec=
+  hardcode_libdir_flag_spec=
+  hardcode_libdir_flag_spec_ld=
+  hardcode_libdir_separator=
+  hardcode_direct=no
+  hardcode_minus_L=no
+  hardcode_shlibpath_var=unsupported
+  link_all_deplibs=unknown
+  hardcode_automatic=no
+  module_cmds=
+  module_expsym_cmds=
+  always_export_symbols=no
+  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
-     for ac_i in 1 2 3 4 5 6 7; do
-       ac_script="$ac_script$as_nl$ac_script"
-     done
-     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     { ac_script=; unset ac_script;}
-     if test -z "$SED"; then
-  ac_path_SED_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
-# Check for GNU ac_path_SED and select it if it is found.
-  # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
-  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo '' >> "conftest.nl"
-    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_SED_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_SED="$ac_path_SED"
-      ac_path_SED_max=$ac_count
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
     fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_SED_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_SED"; then
-    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
-  fi
-else
-  ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
-  rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-
-
-
-
-
-
-
-
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
 
+  ld_shlibs=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
-   then ac_cv_path_FGREP="$GREP -F"
-   else
-     if test -z "$FGREP"; then
-  ac_path_FGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in fgrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
-  # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'FGREP' >> "conftest.nl"
-    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_FGREP="$ac_path_FGREP"
-      ac_path_FGREP_max=$ac_count
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec=
     fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_FGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_FGREP"; then
-    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_FGREP=$FGREP
-fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
 
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[3-9]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs=no
+	cat <<EOF 1>&2
 
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
 
-test -z "$GREP" && GREP=grep
+EOF
+      fi
+      ;;
 
+    amigaos*)
+      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
 
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs=no
+      ;;
 
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
 
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      allow_undefined_flag=unsupported
+      always_export_symbols=no
+      enable_shared_with_static_runtimes=yes
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
 
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
 
+    interix[3-9]*)
+      hardcode_direct=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
 
+    gnu* | linux* | k*bsd*-gnu)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	*)
+	  tmp_sharedflag='-shared' ;;
+	esac
+	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
 
+	if test $supports_anon_versioning = yes; then
+	  archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	ld_shlibs=no
+      fi
+      ;;
 
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
 
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs=no
+	cat <<EOF 1>&2
 
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
 
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
 
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs=no
+	cat <<_LT_EOF 1>&2
 
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
 
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    ld_shlibs=no
+	  fi
+	;;
+      esac
+      ;;
 
+    sunos4*)
+      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
 
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+    esac
 
+    if test "$ld_shlibs" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec=
+      export_dynamic_flag_spec=
+      whole_archive_flag_spec=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag=unsupported
+      always_export_symbols=yes
+      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct=unsupported
+      fi
+      ;;
 
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
+    aix[4-9]*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
 
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds=''
+      hardcode_direct=yes
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  :
+	  else
+  	  # We have old collect2
+  	  hardcode_direct=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L=yes
+  	  hardcode_libdir_flag_spec='-L$libdir'
+  	  hardcode_libdir_separator=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
-if ${lt_cv_path_LD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
 else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+       hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag="-z nodefs"
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
-  $as_echo_n "(cached) " >&6
 else
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
+	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag=' ${wl}-bernotok'
+	  allow_undefined_flag=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec='$convenience'
+	  archive_cmds_need_lc=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
 
+    amigaos*)
+      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs=no
+      ;;
 
+    bsdi[45]*)
+      export_dynamic_flag_spec=-rdynamic
+      ;;
 
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec=' '
+      allow_undefined_flag=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes=yes
+      ;;
 
+    darwin* | rhapsody*)
+      case $host_os in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      archive_cmds_need_lc=no
+      hardcode_direct=no
+      hardcode_automatic=yes
+      hardcode_shlibpath_var=unsupported
+      whole_archive_flag_spec=''
+      link_all_deplibs=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+        module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+        archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+        module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+         module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+         archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs=no
+          ;;
+      esac
+    fi
+      ;;
 
+    dgux*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
 
+    freebsd1*)
+      ld_shlibs=no
+      ;;
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
-	  lt_cv_path_NM="$tmp_nm -B"
-	  break
-	  ;;
-	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	  */dev/null*)
-	    lt_cv_path_NM="$tmp_nm -p"
-	    break
-	    ;;
-	  *)
-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	    continue # so that we can try to find one that supports BSD flags
-	    ;;
-	  esac
-	  ;;
-	esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$DUMPBIN"; then :
-    # Let the user override the test.
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in dumpbin "link -dump"
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DUMPBIN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DUMPBIN"; then
-  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
 
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
 
-    test -n "$DUMPBIN" && break
-  done
-fi
-if test -z "$DUMPBIN"; then
-  ac_ct_DUMPBIN=$DUMPBIN
-  for ac_prog in dumpbin "link -dump"
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DUMPBIN"; then
-  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
 
-fi
-fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
 
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L=yes
+      export_dynamic_flag_spec='${wl}-E'
+      ;;
 
-  test -n "$ac_ct_DUMPBIN" && break
-done
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator=:
 
-  if test "x$ac_ct_DUMPBIN" = x; then
-    DUMPBIN=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DUMPBIN=$ac_ct_DUMPBIN
-  fi
-fi
+	hardcode_direct=yes
+	export_dynamic_flag_spec='${wl}-E'
 
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
-    *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
-      ;;
-    *)
-      DUMPBIN=:
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L=yes
+      fi
       ;;
-    esac
-  fi
 
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
-  fi
-fi
-test -z "$NM" && NM=nm
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator=:
 
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  hardcode_libdir_flag_spec_ld='+b $libdir'
+	  hardcode_direct=no
+	  hardcode_shlibpath_var=no
+	  ;;
+	*)
+	  hardcode_direct=yes
+	  export_dynamic_flag_spec='${wl}-E'
 
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L=yes
+	  ;;
+	esac
+      fi
+      ;;
 
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      link_all_deplibs=yes
+      ;;
 
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
 
+    newsos6)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_shlibpath_var=no
+      ;;
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
-  cat conftest.out >&5
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+	hardcode_direct=yes
+	hardcode_shlibpath_var=no
+	if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	  export_dynamic_flag_spec='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	     archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     hardcode_libdir_flag_spec='-R$libdir'
+	     ;;
+	   *)
+	     archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+        fi
+      else
+	ld_shlibs=no
+      fi
+      ;;
 
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-    i=0
-  teststring="ABCD"
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      allow_undefined_flag=unsupported
+      archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
 
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw* | cegcc*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
 
-  mint*)
-    # On MiNT this can take a long time and run out of memory.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
 
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      hardcode_libdir_separator=:
+      ;;
 
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
+    solaris*)
+      no_undefined_flag=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_shlibpath_var=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test "$GCC" = yes; then
+	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      link_all_deplibs=yes
+      ;;
 
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
 
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds='$CC -r -o $output$reload_objs'
+	  hardcode_direct=no
+        ;;
+	motorola)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+	;;
       esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[	 ]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      # Make teststring a little bigger before we do anything with it.
-      # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
-        teststring=$teststring$teststring
-      done
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      # If test is not a shell built-in, we'll probably end up computing a
-      # maximum length that is only half of the actual maximum length, but
-      # we can't tell.
-      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
-	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      # Only check the string length outside the loop.
-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on
-      # massive amounts of additional arguments before passing them to the
-      # linker.  It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var=no
+      ;;
 
-fi
+    sysv4.3*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var=no
+      export_dynamic_flag_spec='-Bexport'
+      ;;
 
-if test -n $lt_cv_sys_max_cmd_len ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs=yes
+      fi
+      ;;
 
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+      no_undefined_flag='${wl}-z,text'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      runpath_var='LD_RUN_PATH'
 
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
 
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag='${wl}-z,text'
+      allow_undefined_flag='${wl}-z,nodefs'
+      archive_cmds_need_lc=no
+      hardcode_shlibpath_var=no
+      hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+      export_dynamic_flag_spec='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
 
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
 
+    uts4*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
 
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
+    *)
+      ld_shlibs=no
+      ;;
+    esac
+  fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,b/c, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
+echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+echo "${ECHO_T}$ld_shlibs" >&6
+test "$ld_shlibs" = no && can_build_shared=no
 
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc=yes
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl
+	pic_flag=$lt_prog_compiler_pic
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag
+        allow_undefined_flag=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc=no
+        else
+	  archive_cmds_need_lc=yes
+        fi
+        allow_undefined_flag=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+echo "${ECHO_T}$archive_cmds_need_lc" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
 
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  lt_unset=unset
-else
-  lt_unset=false
-fi
-
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
 
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[lt_foo]++; }
+  if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+  sys_lib_search_path_spec=`echo $lt_search_path_spec`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
 
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
 
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
 
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  lt_SP2NL='tr \040 \012'
-  lt_NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  lt_SP2NL='tr \100 \n'
-  lt_NL2SP='tr \r\n \100\100'
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
   ;;
-esac
-
-
 
+aix[4-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
 
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
 
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
 
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
 
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
 
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
-        ;;
-    esac
-    ;;
-  *-*-cygwin* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_noop
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
-        ;;
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
     esac
     ;;
-  * ) # unhandled hosts (and "normal" native builds)
-    lt_cv_to_host_file_cmd=func_convert_file_noop
-    ;;
-esac
-
-fi
 
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
 
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
 
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
 
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
 
+freebsd1*)
+  dynamic_linker=no
+  ;;
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  #assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
-        ;;
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
     esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
     ;;
-esac
-
-fi
-
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
-
-
-
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
 
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    if test "$GCC" != yes; then
-      reload_cmds=false
-    fi
-    ;;
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
     else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
     fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
     ;;
-esac
-
-
-
-
-
-
-
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
 
+interix[3-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
 
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OBJDUMP"; then
-  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
 
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
 
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
 
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
-  ac_ct_OBJDUMP=$OBJDUMP
-  # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OBJDUMP"; then
-  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
   fi
-done
-  done
-IFS=$as_save_IFS
 
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
 
-  if test "x$ac_ct_OBJDUMP" = x; then
-    OBJDUMP="false"
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
   else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OBJDUMP=$ac_ct_OBJDUMP
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
   fi
-else
-  OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
-  lt_cv_deplibs_check_method=pass_all
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
   ;;
 
-beos*)
-  lt_cv_deplibs_check_method=pass_all
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
   ;;
 
-bsdi[45]*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
   ;;
 
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-  # unless we find 'file', for example because we are cross-compiling.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-    lt_cv_file_magic_cmd='func_win32_libid'
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
   else
-    # Keep this pattern in sync with the one in func_win32_libid.
-    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
-    lt_cv_file_magic_cmd='$OBJDUMP -f'
+    shlibpath_overrides_runpath=yes
   fi
   ;;
 
-cegcc*)
-  # use the weaker test based on 'objdump'. See mingw*.
-  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | dragonfly*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
   ;;
 
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
   ;;
 
-haiku*)
-  lt_cv_deplibs_check_method=pass_all
+rdos*)
+  dynamic_linker=no
   ;;
 
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
   ;;
 
-interix[3-9]*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
   ;;
 
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
   esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
   fi
   ;;
 
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-*nto* | *qnx*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
   else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
   fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
   ;;
 
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
   ;;
 
-tpf*)
-  lt_cv_deplibs_check_method=pass_all
+*)
+  dynamic_linker=no
   ;;
 esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
 
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
 
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
-  case $host_os in
-  mingw* | pw32*)
-    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
-      want_nocaseglob=yes
-    else
-      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
-    fi
-    ;;
-  esac
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
 fi
 
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
 
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
 
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+   test -n "$runpath_var" || \
+   test "X$hardcode_automatic" = "Xyes" ; then
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DLLTOOL"; then
-  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
-  ac_ct_DLLTOOL=$DLLTOOL
-  # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DLLTOOL"; then
-  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_DLLTOOL" = x; then
-    DLLTOOL="false"
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no &&
+     test "$hardcode_minus_L" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action=relink
   else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DLLTOOL=$ac_ct_DLLTOOL
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action=immediate
   fi
 else
-  DLLTOOL="$ac_cv_prog_DLLTOOL"
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action=unsupported
 fi
+echo "$as_me:$LINENO: result: $hardcode_action" >&5
+echo "${ECHO_T}$hardcode_action" >&6
 
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-
+if test "$hardcode_action" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
-  $as_echo_n "(cached) " >&6
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
 else
-  lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh
-  # decide which to use based on capabilities of $DLLTOOL
-  case `$DLLTOOL --help 2>&1` in
-  *--identify-strict*)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
-    ;;
-  *)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         old_striplib="$STRIP -S"
+         echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+       else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+       ;;
+   *)
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
     ;;
   esac
-  ;;
-*)
-  # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
-  ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in ar
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
 fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$AR" && break
-  done
-fi
-if test -z "$AR"; then
-  ac_ct_AR=$AR
-  for ac_prog in ar
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_AR" && break
-done
-
-  if test "x$ac_ct_AR" = x; then
-    AR="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AR=$ac_ct_AR
-  fi
-fi
-
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-
-
-
-
-
-
-
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
 
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
 
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
 
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
-  $as_echo_n "(cached) " >&6
+  darwin*)
+  # if libdl is installed we need to link against it
+    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  lt_cv_ar_at_file=no
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
 int
 main ()
 {
-
+dlopen ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  echo conftest.$ac_objext > conftest.lst
-      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
-      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
-  (eval $lt_ar_try) 2>&5
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-      if test "$ac_status" -eq 0; then
-	# Ensure the archiver fails upon bogus file names.
-	rm -f conftest.$ac_objext libconftest.a
-	{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
-  (eval $lt_ar_try) 2>&5
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-	if test "$ac_status" -ne 0; then
-          lt_cv_ar_at_file=@
-        fi
-      fi
-      rm -f conftest.* libconftest.a
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_dl_dlopen=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
-
-if test "x$lt_cv_ar_at_file" = xno; then
-  archiver_list_spec=
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
-  archiver_list_spec=$lt_cv_ar_at_file
-fi
 
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
 
+fi
 
+   ;;
 
+  *)
+    echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define shl_load innocuous_shl_load
 
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char shl_load (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_shl_load=yes
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_func_shl_load=no
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+  lt_cv_dlopen="shl_load"
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
+  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_shl_load=yes
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_dld_shl_load=no
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
+  echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define dlopen innocuous_dlopen
 
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char dlopen (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
+#undef dlopen
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
 
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+int
+main ()
+{
+return f != dlopen;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_dlopen=yes
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_func_dlopen=no
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+  lt_cv_dlopen="dlopen"
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_dl_dlopen=no
 fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_svld_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_svld_dlopen=no
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
+  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-
-
-
-
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_dld_link=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 fi
-
-case $host_os in
-  darwin*)
-    lock_old_archive_extraction=yes ;;
-  *)
-    lock_old_archive_extraction=no ;;
-esac
-
-
-
-
-
 
 
+fi
 
 
+fi
 
 
+fi
 
 
+fi
 
 
+fi
 
+    ;;
+  esac
 
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
 
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
 
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
 
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
 
-for ac_prog in gawk mawk nawk awk
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
-  $as_echo_n "(cached) " >&6
+    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$AWK"; then
-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self=cross
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 11117 "configure"
+#include "confdefs.h"
 
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
 
+#include <stdio.h>
 
-  test -n "$AWK" && break
-done
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
 
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
 
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
 
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
 
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
 
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self=no
+  fi
+fi
+rm -fr conftest*
 
 
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
 
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self_static=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 11217 "configure"
+#include "confdefs.h"
 
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
 
+#include <stdio.h>
 
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
 
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
 
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
 
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
 
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
 
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&5 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self_static=no
+  fi
+fi
+rm -fr conftest*
 
 
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+    fi
 
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
 
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
 
-# Allow CC to be a program name with arguments.
-compiler=$CC
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
 
 
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+# Report which library types will actually be built
+echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6
 
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+test "$can_build_shared" = "no" && enable_shared=no
 
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
 case $host_os in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw* | pw32* | cegcc*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDEGRST]'
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
   fi
   ;;
-irix* | nonstopux*)
-  symcode='[BCDEGRST]'
-  ;;
-osf*)
-  symcode='[BCDEGQRST]'
-  ;;
-solaris*)
-  symcode='[BDRT]'
-  ;;
-sco3.2v5*)
-  symcode='[DT]'
-  ;;
-sysv4.2uw2*)
-  symcode='[DT]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[ABDT]'
-  ;;
-sysv4)
-  symcode='[DFNSTU]'
-  ;;
-esac
 
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[ABCDGIRSTW]' ;;
+aix[4-9]*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+    ;;
 esac
+echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler \
+    CC \
+    LD \
+    lt_prog_compiler_wl \
+    lt_prog_compiler_pic \
+    lt_prog_compiler_static \
+    lt_prog_compiler_no_builtin_flag \
+    export_dynamic_flag_spec \
+    thread_safe_flag_spec \
+    whole_archive_flag_spec \
+    enable_shared_with_static_runtimes \
+    old_archive_cmds \
+    old_archive_from_new_cmds \
+    predep_objects \
+    postdep_objects \
+    predeps \
+    postdeps \
+    compiler_lib_search_path \
+    compiler_lib_search_dirs \
+    archive_cmds \
+    archive_expsym_cmds \
+    postinstall_cmds \
+    postuninstall_cmds \
+    old_archive_from_expsyms_cmds \
+    allow_undefined_flag \
+    no_undefined_flag \
+    export_symbols_cmds \
+    hardcode_libdir_flag_spec \
+    hardcode_libdir_flag_spec_ld \
+    hardcode_libdir_separator \
+    hardcode_automatic \
+    module_cmds \
+    module_expsym_cmds \
+    lt_cv_prog_compiler_c_o \
+    fix_srcfile_path \
+    exclude_expsyms \
+    include_expsyms; do
+
+    case $var in
+    old_archive_cmds | \
+    old_archive_from_new_cmds | \
+    archive_cmds | \
+    archive_expsym_cmds | \
+    module_cmds | \
+    module_expsym_cmds | \
+    old_archive_from_expsyms_cmds | \
+    export_symbols_cmds | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
 
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
 
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+cfgfile="${ofile}T"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  $rm -f "$cfgfile"
+  { echo "$as_me:$LINENO: creating $ofile" >&5
+echo "$as_me: creating $ofile" >&6;}
 
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
+  cat <<__EOF__ >> "$cfgfile"
+#! $SHELL
 
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
 
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
+# A sed program that does not truncate output.
+SED=$lt_SED
 
-  # Write the raw and C identifiers.
-  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK '"\
-"     {last_section=section; section=\$ 3};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-"     ' prfx=^$ac_symprfx"
-  else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-  fi
-  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
 
-  # Check to see that the pipe works correctly.
-  pipe_works=no
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
-  rm -f conftest*
-  cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
+# The names of the tagged configurations supported by this script.
+available_tags=
 
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
+# ### BEGIN LIBTOOL CONFIG
 
-      # Make sure that we snagged all the symbols we need.
-      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
-   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data.  */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 
-#ifdef __cplusplus
-extern "C" {
-#endif
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
 
-_LT_EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
 
-	  cat <<_LT_EOF >> conftest.$ac_ext
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
 
-/* The mapping between symbol names and symbols.  */
-LT_DLSYM_CONST struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-	  cat <<\_LT_EOF >> conftest.$ac_ext
-  {0, (void *) 0}
-};
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
 
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
 
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_globsym_save_LIBS=$LIBS
-	  lt_globsym_save_CFLAGS=$CFLAGS
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS=$lt_globsym_save_LIBS
-	  CFLAGS=$lt_globsym_save_CFLAGS
-	else
-	  echo "cannot find nm_test_func in $nlist" >&5
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
 
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
 
-fi
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
 
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-fi
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
 
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-  nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
-  nm_file_list_spec='@'
-fi
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
 
+# A C compiler.
+LTCC=$lt_LTCC
 
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
 
+# A language-specific compiler.
+CC=$lt_compiler
 
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC
 
+# An ERE matcher.
+EGREP=$lt_EGREP
 
+# The linker used to build libraries.
+LD=$lt_LD
 
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
 
+# A BSD-compatible nm program.
+NM=$lt_NM
 
+# A symbol stripping program
+STRIP=$lt_STRIP
 
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
 
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
 
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
 
+# Used on cygwin: assembler.
+AS="$AS"
 
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
 
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
 
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
 
+# Object file suffix (normally "o").
+objext="$ac_objext"
 
+# Old archive suffix (normally "a").
+libext="$libext"
 
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
 
+# Executable file suffix (normally "").
+exeext="$exeext"
 
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+pic_mode=$pic_mode
 
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
 
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
 
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
 
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
 
+# Do we need a version for libraries?
+need_version=$need_version
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
 
-# Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
-  withval=$with_sysroot;
-else
-  with_sysroot=no
-fi
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
 
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
 
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
-   if test "$GCC" = yes; then
-     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
-   fi
-   ;; #(
- /*)
-   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-   ;; #(
- no|'')
-   ;; #(
- *)
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
-$as_echo "${with_sysroot}" >&6; }
-   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
-   ;;
-esac
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
 
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
 
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
 
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec
 
+# Library versioning type.
+version_type=$version_type
 
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
-  enableval=$enable_libtool_lock;
-fi
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
 
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
 
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-	HPUX_IA64_MODE="32"
-	;;
-      *ELF-64*)
-	HPUX_IA64_MODE="64"
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -melf32bsmip"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -melf32bmipn32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -melf64bmip"
-	;;
-      esac
-    else
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -32"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -n32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -64"
-	  ;;
-      esac
-    fi
-  fi
-  rm -rf conftest*
-  ;;
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.o` in
-      *32-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_i386_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
-	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
-	    LD="${LD-ld} -m elf32ppclinux"
-	    ;;
-	  s390x-*linux*)
-	    LD="${LD-ld} -m elf_s390"
-	    ;;
-	  sparc64-*linux*)
-	    LD="${LD-ld} -m elf32_sparc"
-	    ;;
-	esac
-	;;
-      *64-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_x86_64_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_x86_64"
-	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
-	    LD="${LD-ld} -m elf64ppc"
-	    ;;
-	  s390*-*linux*|s390*-*tpf*)
-	    LD="${LD-ld} -m elf64_s390"
-	    ;;
-	  sparc*-*linux*)
-	    LD="${LD-ld} -m elf64_sparc"
-	    ;;
-	esac
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
 
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
 
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
 
-int
-main ()
-{
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_cc_needs_belf=yes
-else
-  lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-sparc*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)
-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-	  LD="${LD-ld} -64"
-	fi
-	;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-esac
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
 
-need_locks="$enable_libtool_lock"
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects
 
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
-set dummy ${ac_tool_prefix}mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$MANIFEST_TOOL"; then
-  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects
 
-fi
-fi
-MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
-if test -n "$MANIFEST_TOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps
 
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps
 
-fi
-if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
-  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
-  # Extract the first word of "mt", so it can be a program name with args.
-set dummy mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_MANIFEST_TOOL"; then
-  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
 
-fi
-fi
-ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
-if test -n "$ac_ct_MANIFEST_TOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
 
-  if test "x$ac_ct_MANIFEST_TOOL" = x; then
-    MANIFEST_TOOL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
-  fi
-else
-  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
-fi
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
 
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_path_mainfest_tool=no
-  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
-  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
-  cat conftest.err >&5
-  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
-    lt_cv_path_mainfest_tool=yes
-  fi
-  rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
-  MANIFEST_TOOL=:
-fi
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
 
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
 
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
 
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
 
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
 
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
 
-  case $host_os in
-    rhapsody* | darwin*)
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DSYMUTIL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DSYMUTIL"; then
-  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
 
-fi
-fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
 
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
 
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
-  ac_ct_DSYMUTIL=$DSYMUTIL
-  # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DSYMUTIL"; then
-  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
 
-fi
-fi
-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
 
-  if test "x$ac_ct_DSYMUTIL" = x; then
-    DSYMUTIL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DSYMUTIL=$ac_ct_DSYMUTIL
-  fi
-else
-  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
 
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NMEDIT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$NMEDIT"; then
-  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
 
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
 
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
-  ac_ct_NMEDIT=$NMEDIT
-  # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_NMEDIT"; then
-  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_NMEDIT="nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
 
-fi
-fi
-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
 
-  if test "x$ac_ct_NMEDIT" = x; then
-    NMEDIT=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    NMEDIT=$ac_ct_NMEDIT
-  fi
-else
-  NMEDIT="$ac_cv_prog_NMEDIT"
-fi
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
 
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LIPO+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$LIPO"; then
-  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
 
-fi
-fi
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
 
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic
 
-fi
-if test -z "$ac_cv_prog_LIPO"; then
-  ac_ct_LIPO=$LIPO
-  # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_LIPO"; then
-  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_LIPO="lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
 
-fi
-fi
-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
 
-  if test "x$ac_ct_LIPO" = x; then
-    LIPO=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    LIPO=$ac_ct_LIPO
-  fi
-else
-  LIPO="$ac_cv_prog_LIPO"
-fi
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
 
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OTOOL"; then
-  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
 
-fi
-fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
 
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
 
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
-  ac_ct_OTOOL=$OTOOL
-  # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OTOOL"; then
-  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OTOOL="otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
 
-fi
-fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
 
-  if test "x$ac_ct_OTOOL" = x; then
-    OTOOL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OTOOL=$ac_ct_OTOOL
-  fi
-else
-  OTOOL="$ac_cv_prog_OTOOL"
-fi
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
 
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL64+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OTOOL64"; then
-  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
 
-fi
-fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# ### END LIBTOOL CONFIG
 
+__EOF__
 
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
-  ac_ct_OTOOL64=$OTOOL64
-  # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OTOOL64"; then
-  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OTOOL64="otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-fi
-fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+  case $host_os in
+  aix3*)
+    cat <<\EOF >> "$cfgfile"
 
-  if test "x$ac_ct_OTOOL64" = x; then
-    OTOOL64=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OTOOL64=$ac_ct_OTOOL64
-  fi
-else
-  OTOOL64="$ac_cv_prog_OTOOL64"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
 fi
+EOF
+    ;;
+  esac
 
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
 
+  mv -f "$cfgfile" "$ofile" || \
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
 
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
 
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+CC="$lt_save_CC"
 
 
+# Check whether --with-tags or --without-tags was given.
+if test "${with_tags+set}" = set; then
+  withval="$with_tags"
+  tagnames="$withval"
+fi;
 
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
+  fi
 
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
+    else
+      { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
+echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
+    fi
+  fi
+  if test -z "$LTCFLAGS"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
+  fi
 
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
 
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
+    "") ;;
+    *)  { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
+echo "$as_me: error: invalid tag name: $tagname" >&2;}
+   { (exit 1); exit 1; }; }
+	;;
+    esac
 
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
+echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
 
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+	if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+	    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+	    (test "X$CXX" != "Xg++"))) ; then
+	  ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_flag_spec_ld_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_shlibpath_var_CXX=unsupported
+hardcode_automatic_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+compiler_lib_search_dirs_CXX=
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
 
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
 
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
 
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
 
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
 
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
 
+# Allow CC to be a program name with arguments.
+compiler=$CC
 
 
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
 
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm -r conftest*
 
 
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
-  $as_echo_n "(cached) " >&6
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
 else
-  lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
-	# By default we will add the -single_module flag. You can override
-	# by either setting the environment variable LT_MULTI_MODULE
-	# non-empty at configure time, or by adding -multi_module to the
-	# link flags.
-	rm -rf libconftest.dylib*
-	echo "int foo(void){return 1;}" > conftest.c
-	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
-	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-        _lt_result=$?
-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
-	  lt_cv_apple_cc_single_mod=yes
-	else
-	  cat conftest.err >&5
-	fi
-	rm -rf libconftest.dylib*
-	rm -f conftest.*
-      fi
+  $as_unset lt_cv_prog_gnu_ld
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
-  $as_echo_n "(cached) " >&6
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
 else
-  lt_cv_ld_exported_symbols_list=no
-      save_LDFLAGS=$LDFLAGS
-      echo "_main" > conftest.sym
-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  $as_unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+compiler_CXX=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_ld_exported_symbols_list=yes
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
 else
-  lt_cv_ld_exported_symbols_list=no
+  lt_prog_compiler_no_builtin_flag_CXX=
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	LDFLAGS="$save_LDFLAGS"
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_force_load=no
-      cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
-      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
-      echo "$AR cru libconftest.a conftest.o" >&5
-      $AR cru libconftest.a conftest.o 2>&5
-      echo "$RANLIB libconftest.a" >&5
-      $RANLIB libconftest.a 2>&5
-      cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
-      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
-      _lt_result=$?
-      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
-	lt_cv_ld_force_load=yes
-      else
-	cat conftest.err >&5
-      fi
-        rm -f conftest.err libconftest.a conftest conftest.c
-        rm -rf conftest.dSYM
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
-    case $host_os in
-    rhapsody* | darwin1.[012])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-    darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-    darwin*) # darwin 5.x on
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[012]*)
-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-	10.*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-      esac
-    ;;
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval="$with_gnu_ld"
+  test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
   esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-    else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
     ;;
   esac
-
-for ac_header in dlfcn.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-# Set options
-enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AS+:} false; then :
-  $as_echo_n "(cached) " >&6
+elif test "$with_gnu_ld" = yes; then
+  echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
 else
-  if test -n "$AS"; then
-  ac_cv_prog_AS="$AS" # Let the user override the test.
+  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AS="${ac_tool_prefix}as"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
   done
-IFS=$as_save_IFS
-
-fi
-fi
-AS=$ac_cv_prog_AS
-if test -n "$AS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
-$as_echo "$AS" >&6; }
+  IFS="$lt_save_ifs"
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
 fi
-
-
 fi
-if test -z "$ac_cv_prog_AS"; then
-  ac_ct_AS=$AS
-  # Extract the first word of "as", so it can be a program name with args.
-set dummy as; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AS+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_AS"; then
-  ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AS="as"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-fi
-fi
-ac_ct_AS=$ac_cv_prog_ac_ct_AS
-if test -n "$ac_ct_AS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
-$as_echo "$ac_ct_AS" >&6; }
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-
-  if test "x$ac_ct_AS" = x; then
-    AS="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AS=$ac_ct_AS
-  fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  AS="$ac_cv_prog_AS"
+  # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
 fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
 
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DLLTOOL"; then
-  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
 
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
 
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
-  ac_ct_DLLTOOL=$DLLTOOL
-  # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DLLTOOL"; then
-  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
 
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
 
-  if test "x$ac_ct_DLLTOOL" = x; then
-    DLLTOOL="false"
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+	grep 'no-whole-archive' > /dev/null; then
+      whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      whole_archive_flag_spec_CXX=
+    fi
   else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DLLTOOL=$ac_ct_DLLTOOL
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
   fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
 else
-  DLLTOOL="$ac_cv_prog_DLLTOOL"
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
 fi
 
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OBJDUMP"; then
-  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+# PORTME: fill in a description of your system's C++ link characteristics
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+ld_shlibs_CXX=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  aix[4-9]*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      aix_use_runtimelinking=no
+
+      # Test if we are trying to use run time linking or normal
+      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+      # need to do runtime linking.
+      case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+	for ld_flag in $LDFLAGS; do
+	  case $ld_flag in
+	  *-brtl*)
+	    aix_use_runtimelinking=yes
+	    break
+	    ;;
+	  esac
+	done
+	;;
+      esac
 
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
 
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    archive_cmds_CXX=''
+    hardcode_direct_CXX=yes
+    hardcode_libdir_separator_CXX=':'
+    link_all_deplibs_CXX=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.[012]|aix4.[012].*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+	collect2name=`${CC} -print-prog-name=collect2`
+	if test -f "$collect2name" && \
+	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	then
+	  # We have reworked collect2
+	  :
+	else
+	  # We have old collect2
+	  hardcode_direct_CXX=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  hardcode_minus_L_CXX=yes
+	  hardcode_libdir_flag_spec_CXX='-L$libdir'
+	  hardcode_libdir_separator_CXX=
+	fi
+	;;
+      esac
+      shared_flag='-shared'
+      if test "$aix_use_runtimelinking" = yes; then
+	shared_flag="$shared_flag "'${wl}-G'
+      fi
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	shared_flag='-G'
+      else
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag='${wl}-G'
+	else
+	  shared_flag='${wl}-bM:SRE'
+	fi
+      fi
+    fi
 
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
-  ac_ct_OBJDUMP=$OBJDUMP
-  # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OBJDUMP"; then
-  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+    # It seems that -bexpall does not export symbols beginning with
+    # underscore (_), so it is better to generate a list of symbols to export.
+    always_export_symbols_CXX=yes
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      allow_undefined_flag_CXX='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-  if test "x$ac_ct_OBJDUMP" = x; then
-    OBJDUMP="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OBJDUMP=$ac_ct_OBJDUMP
-  fi
-else
-  OBJDUMP="$ac_cv_prog_OBJDUMP"
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
-  ;;
-esac
-
-test -z "$AS" && AS=as
+      hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
 
+      archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+	hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+	allow_undefined_flag_CXX="-z nodefs"
+	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+      else
+	# Determine the default libpath from the value encoded in an empty executable.
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
-test -z "$DLLTOOL" && DLLTOOL=dlltool
+	hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+	# Warning - without using the other run time loading flags,
+	# -berok will link without error, but may produce a broken library.
+	no_undefined_flag_CXX=' ${wl}-bernotok'
+	allow_undefined_flag_CXX=' ${wl}-berok'
+	# Exported symbols can be pulled into shared objects from archives
+	whole_archive_flag_spec_CXX='$convenience'
+	archive_cmds_need_lc_CXX=yes
+	# This is similar to how AIX traditionally builds its shared libraries.
+	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
 
+  beos*)
+    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+      allow_undefined_flag_CXX=unsupported
+      # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+      # support --undefined.  This deserves some investigation.  FIXME
+      archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    else
+      ld_shlibs_CXX=no
+    fi
+    ;;
 
+  chorus*)
+    case $cc_basename in
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
 
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+    # as there is no search path for DLLs.
+    hardcode_libdir_flag_spec_CXX='-L$libdir'
+    allow_undefined_flag_CXX=unsupported
+    always_export_symbols_CXX=no
+    enable_shared_with_static_runtimes_CXX=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	cp $export_symbols $output_objdir/$soname.def;
+      else
+	echo EXPORTS > $output_objdir/$soname.def;
+	cat $export_symbols >> $output_objdir/$soname.def;
+      fi~
+      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+    else
+      ld_shlibs_CXX=no
+    fi
+  ;;
+      darwin* | rhapsody*)
+      archive_cmds_need_lc_CXX=no
+      hardcode_direct_CXX=no
+      hardcode_automatic_CXX=yes
+      hardcode_shlibpath_var_CXX=unsupported
+      whole_archive_flag_spec_CXX=''
+      link_all_deplibs_CXX=yes
+      allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
+      if test "$GXX" = yes ; then
+      output_verbose_link_cmd='echo'
+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+      if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+        archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+      fi
+      else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+          archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+          module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+          archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs_CXX=no
+          ;;
+      esac
+      fi
+        ;;
 
+  dgux*)
+    case $cc_basename in
+      ec++*)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      ghcx*)
+	# Green Hills C++ Compiler
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  freebsd[12]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    ld_shlibs_CXX=no
+    ;;
+  freebsd-elf*)
+    archive_cmds_need_lc_CXX=no
+    ;;
+  freebsd* | dragonfly*)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    ld_shlibs_CXX=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+    hardcode_libdir_separator_CXX=:
+    export_dynamic_flag_spec_CXX='${wl}-E'
+    hardcode_direct_CXX=yes
+    hardcode_minus_L_CXX=yes # Not in the search PATH,
+				# but as the default
+				# location of the library.
 
-test -z "$OBJDUMP" && OBJDUMP=objdump
+    case $cc_basename in
+    CC*)
+      # FIXME: insert proper C++ library support
+      ld_shlibs_CXX=no
+      ;;
+    aCC*)
+      archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+        # FIXME: insert proper C++ library support
+        ld_shlibs_CXX=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_CXX=:
 
+      case $host_cpu in
+      hppa*64*|ia64*) ;;
+      *)
+	export_dynamic_flag_spec_CXX='${wl}-E'
+        ;;
+      esac
+    fi
+    case $host_cpu in
+    hppa*64*|ia64*)
+      hardcode_direct_CXX=no
+      hardcode_shlibpath_var_CXX=no
+      ;;
+    *)
+      hardcode_direct_CXX=yes
+      hardcode_minus_L_CXX=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    esac
 
+    case $cc_basename in
+      CC*)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      aCC*)
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	esac
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test $with_gnu_ld = no; then
+	    case $host_cpu in
+	    hppa*64*)
+	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    ia64*)
+	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    *)
+	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    esac
+	  fi
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	fi
+	;;
+    esac
+    ;;
+  interix[3-9]*)
+    hardcode_direct_CXX=no
+    hardcode_shlibpath_var_CXX=no
+    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+    export_dynamic_flag_spec_CXX='${wl}-E'
+    # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+    # Instead, shared libraries are loaded at an image base (0x10000000 by
+    # default) and relocated if they conflict, which is a slow very memory
+    # consuming and fragmenting process.  To avoid this, we pick a random,
+    # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+    # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+    archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC*)
+	# SGI C++
+	archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	# Archives containing C++ object files must be created using
+	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test "$with_gnu_ld" = no; then
+	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	  else
+	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+	  fi
+	fi
+	link_all_deplibs_CXX=yes
+	;;
+    esac
+    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+    hardcode_libdir_separator_CXX=:
+    ;;
+  linux* | k*bsd*-gnu)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+	;;
+      icpc*)
+	# Intel C++
+	with_gnu_ld=yes
+	# version 8.0 and above of icpc choke on multiply defined symbols
+	# if we add $predep_objects and $postdep_objects, however 7.1 and
+	# earlier do not add the objects themselves.
+	case `$CC -V 2>&1` in
+	*"Version 7."*)
+  	  archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+  	  archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	*)  # Version 8.0 or newer
+	  tmp_idyn=
+	  case $host_cpu in
+	    ia64*) tmp_idyn=' -i_dynamic';;
+	  esac
+  	  archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	  archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	esac
+	archive_cmds_need_lc_CXX=no
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+	whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	;;
+      pgCC* | pgcpp*)
+        # Portland Group C++ compiler
+	archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+  	archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+	whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+        ;;
+      cxx*)
+	# Compaq C++
+	archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
 
+	runpath_var=LD_RUN_PATH
+	hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C++ 5.9
+	  no_undefined_flag_CXX=' -zdefs'
+	  archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+	  hardcode_libdir_flag_spec_CXX='-R$libdir'
+	  whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+
+	  # Not sure whether something based on
+	  # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+	  # would be better.
+	  output_verbose_link_cmd='echo'
+
+	  # Archives containing C++ object files must be created using
+	  # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	  # necessary to make sure instantiated templates are included
+	  # in the archive.
+	  old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+	  ;;
+	esac
+	;;
+    esac
+    ;;
+  lynxos*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  m88k*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  mvs*)
+    case $cc_basename in
+      cxx*)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+      wlarc=
+      hardcode_libdir_flag_spec_CXX='-R$libdir'
+      hardcode_direct_CXX=yes
+      hardcode_shlibpath_var_CXX=no
+    fi
+    # Workaround some broken pre-1.5 toolchains
+    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+    ;;
+  openbsd2*)
+    # C++ shared libraries are fairly broken
+    ld_shlibs_CXX=no
+    ;;
+  openbsd*)
+    if test -f /usr/libexec/ld.so; then
+      hardcode_direct_CXX=yes
+      hardcode_shlibpath_var_CXX=no
+      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+	export_dynamic_flag_spec_CXX='${wl}-E'
+	whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      fi
+      output_verbose_link_cmd='echo'
+    else
+      ld_shlibs_CXX=no
+    fi
+    ;;
+  osf3*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
 
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
 
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	hardcode_libdir_separator_CXX=:
 
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
 
-        enable_dlopen=no
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      cxx*)
+	allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	  archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 
+	  hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	  hardcode_libdir_separator_CXX=:
 
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
 
-            # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
-  enableval=$enable_shared; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
 	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
+	;;
     esac
-else
-  enable_shared=yes
-fi
-
-
-
+    ;;
+  osf4* | osf5*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
 
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
 
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	hardcode_libdir_separator_CXX=:
 
+	# Archives containing C++ object files must be created using
+	# the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      cxx*)
+	allow_undefined_flag_CXX=' -expect_unresolved \*'
+	archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	  echo "-hidden">> $lib.exp~
+	  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry ${output_objdir}/so_locations -o $lib~
+	  $rm $lib.exp'
+
+	hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	 archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
 
+	  hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	  hardcode_libdir_separator_CXX=:
 
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
 
-  # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
-  enableval=$enable_static; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
 	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
+	;;
     esac
-else
-  enable_static=yes
-fi
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
-  withval=$with_pic; pic_mode="$withval"
-else
-  pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
+    ;;
+  psos*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  sunos4*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.x
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      lcc*)
+	# Lucid
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  solaris*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.2, 5.x and Centerline C++
+        archive_cmds_need_lc_CXX=yes
+	no_undefined_flag_CXX=' -zdefs'
+	archive_cmds_CXX='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	$CC -G${allow_undefined_flag}  ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	hardcode_libdir_flag_spec_CXX='-R$libdir'
+	hardcode_shlibpath_var_CXX=no
+	case $host_os in
+	  solaris2.[0-5] | solaris2.[0-5].*) ;;
+	  *)
+	    # The compiler driver will combine and reorder linker options,
+	    # but understands `-z linker_flag'.
+	    # Supported since Solaris 2.6 (maybe 2.5.1?)
+	    whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
+	    ;;
+	esac
+	link_all_deplibs_CXX=yes
 
+	output_verbose_link_cmd='echo'
 
+	# Archives containing C++ object files must be created using
+	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+	;;
+      gcx*)
+	# Green Hills C++ Compiler
+	archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
 
+	# The C++ compiler must be used to create the archive.
+	old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	;;
+      *)
+	# GNU C++ compiler with Solaris linker
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+	  if $CC --version | grep -v '^2\.7' > /dev/null; then
+	    archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  else
+	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	    # platform.
+	    archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  fi
 
-  # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
-  enableval=$enable_fast_install; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
+	  hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+	  case $host_os in
+	  solaris2.[0-5] | solaris2.[0-5].*) ;;
+	  *)
+	    whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	    ;;
+	  esac
 	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
+	;;
     esac
-else
-  enable_fast_install=yes
-fi
-
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-test -z "$LN_S" && LN_S="ln -s"
-
-
-
-
-
+    ;;
+  sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+    no_undefined_flag_CXX='${wl}-z,text'
+    archive_cmds_need_lc_CXX=no
+    hardcode_shlibpath_var_CXX=no
+    runpath_var='LD_RUN_PATH'
 
+    case $cc_basename in
+      CC*)
+	archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  sysv5* | sco3.2v5* | sco5v6*)
+    # Note: We can NOT use -z defs as we might desire, because we do not
+    # link with -lc, and that would cause any symbols used from libc to
+    # always be unresolved, which means just about no library would
+    # ever link correctly.  If we're not using GNU ld we use -z text
+    # though, which does catch some bad symbols but isn't as heavy-handed
+    # as -z defs.
+    # For security reasons, it is highly recommended that you always
+    # use absolute paths for naming shared libraries, and exclude the
+    # DT_RUNPATH tag from executables and libraries.  But doing so
+    # requires that you compile everything twice, which is a pain.
+    # So that behaviour is only enabled if SCOABSPATH is set to a
+    # non-empty value in the environment.  Most likely only useful for
+    # creating official distributions of packages.
+    # This is a hack until libtool officially supports absolute path
+    # names for shared libraries.
+    no_undefined_flag_CXX='${wl}-z,text'
+    allow_undefined_flag_CXX='${wl}-z,nodefs'
+    archive_cmds_need_lc_CXX=no
+    hardcode_shlibpath_var_CXX=no
+    hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+    hardcode_libdir_separator_CXX=':'
+    link_all_deplibs_CXX=yes
+    export_dynamic_flag_spec_CXX='${wl}-Bexport'
+    runpath_var='LD_RUN_PATH'
 
+    case $cc_basename in
+      CC*)
+	archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+      *)
+	archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	;;
+    esac
+    ;;
+  tandem*)
+    case $cc_basename in
+      NCC*)
+	# NonStop-UX NCC 3.20
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  vxworks*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  *)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+esac
+echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6
+test "$ld_shlibs_CXX" = no && can_build_shared=no
 
+GCC_CXX="$GXX"
+LD_CXX="$LD"
 
+cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+EOF
 
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  # The `*' in the case matches for architectures that use `case' in
+  # $output_verbose_cmd can trigger glob expansion during the loop
+  # eval without this substitution.
+  output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
+
+  for p in `eval $output_verbose_link_cmd`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" \
+	  || test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
 
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$compiler_lib_search_path_CXX"; then
+	     compiler_lib_search_path_CXX="${prev}${p}"
+	   else
+	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$postdeps_CXX"; then
+	   postdeps_CXX="${prev}${p}"
+	 else
+	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
 
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$predep_objects_CXX"; then
+	   predep_objects_CXX="$p"
+	 else
+	   predep_objects_CXX="$predep_objects_CXX $p"
+	 fi
+       else
+	 if test -z "$postdep_objects_CXX"; then
+	   postdep_objects_CXX="$p"
+	 else
+	   postdep_objects_CXX="$postdep_objects_CXX $p"
+	 fi
+       fi
+       ;;
 
+    *) ;; # Ignore the rest.
 
-if test -n "${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
+    esac
+  done
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
+  # Clean up.
+  rm -f a.out a.exe
 else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
+  echo "libtool.m4: error: problem compiling CXX test program"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
 
+$rm -f confest.$objext
 
+compiler_lib_search_dirs_CXX=
+if test -n "$compiler_lib_search_path_CXX"; then
+  compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
 
+# PORTME: override above test on systems where it is broken
+case $host_os in
+interix[3-9]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  predep_objects_CXX=
+  postdep_objects_CXX=
+  postdeps_CXX=
+  ;;
 
+linux*)
+  case `$CC -V 2>&1 | sed 5q` in
+  *Sun\ C*)
+    # Sun C++ 5.9
+    #
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+    if test "$solaris_use_stlport4" != yes; then
+      postdeps_CXX='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
 
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
+solaris*)
+  case $cc_basename in
+  CC*)
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
 
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    if test "$solaris_use_stlport4" != yes; then
+      postdeps_CXX='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
   ;;
 esac
 
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
 
-with_gnu_ld="$lt_cv_prog_gnu_ld"
+lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
 
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
 
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/${ac_tool_prefix}file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  else
-    MAGIC_CMD=:
-  fi
-fi
-
-  fi
-  ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
-  case $cc_basename in
-  nvcc*)
-    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
-  *)
-    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
-  esac
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
-    :
-fi
-
-fi
-
-
-
-
-
-
-  lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl='-Wl,'
-    lt_prog_compiler_static='-static'
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    lt_prog_compiler_wl_CXX='-Wl,'
+    lt_prog_compiler_static_CXX='-static'
 
     case $host_os in
-      aix*)
+    aix*)
       # All AIX code is PIC.
       if test "$host_cpu" = ia64; then
 	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
+	lt_prog_compiler_static_CXX='-Bstatic'
       fi
       ;;
-
     amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            lt_prog_compiler_pic='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
       ;;
-
     beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
+    mingw* | cygwin* | os2* | pw32*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       # Although the cygwin gcc ignores -fPIC, still need this for old-style
       # (--disable-auto-import) libraries
-      lt_prog_compiler_pic='-DDLL_EXPORT'
+      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
       ;;
-
     darwin* | rhapsody*)
       # PIC is the default on this platform
       # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic='-fno-common'
+      lt_prog_compiler_pic_CXX='-fno-common'
       ;;
-
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      lt_prog_compiler_static=
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      lt_prog_compiler_pic_CXX=
+      ;;
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_CXX=-Kconform_pic
+      fi
       ;;
-
     hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	# +Z the default
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
 	;;
       *)
-	lt_prog_compiler_pic='-fPIC'
+	lt_prog_compiler_pic_CXX='-fPIC'
 	;;
       esac
       ;;
-
-    interix[3-9]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared=no
-      enable_shared=no
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic='-fPIC -shared'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic=-Kconform_pic
-      fi
-      ;;
-
     *)
-      lt_prog_compiler_pic='-fPIC'
-      ;;
-    esac
-
-    case $cc_basename in
-    nvcc*) # Cuda Compiler Driver 2.2
-      lt_prog_compiler_wl='-Xlinker '
-      lt_prog_compiler_pic='-Xcompiler -fPIC'
+      lt_prog_compiler_pic_CXX='-fPIC'
       ;;
     esac
   else
-    # PORTME Check for flag to pass linker flags through the system compiler.
     case $host_os in
-    aix*)
-      lt_prog_compiler_wl='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      else
-	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
+      aix[4-9]*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  lt_prog_compiler_static_CXX='-Bstatic'
+	else
+	  lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+	fi
 	;;
-      *)
-	lt_prog_compiler_pic='+Z'
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
 	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-      case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
-      ecc*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-KPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      # icc used to be incompatible with GCC.
-      # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-fPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      # Lahey Fortran 8.1.
-      lf95*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='--shared'
-	lt_prog_compiler_static='--static'
+       darwin*)
+         # PIC is the default on this platform
+         # Common symbols not allowed in MH_DYLIB files
+         case $cc_basename in
+           xlc*)
+           lt_prog_compiler_pic_CXX='-qnocommon'
+           lt_prog_compiler_wl_CXX='-Wl,'
+           ;;
+         esac
+       ;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
 	;;
-      nagfor*)
-	# NAG Fortran compiler
-	lt_prog_compiler_wl='-Wl,-Wl,,'
-	lt_prog_compiler_pic='-PIC'
-	lt_prog_compiler_static='-Bstatic'
+      freebsd* | dragonfly*)
+	# FreeBSD uses GNU C++
 	;;
-      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-fpic'
-	lt_prog_compiler_static='-Bstatic'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static='-non_shared'
-        ;;
-      xl* | bgxl* | bgf* | mpixl*)
-	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-qpic'
-	lt_prog_compiler_static='-qstaticlink'
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+	    if test "$host_cpu" != ia64; then
+	      lt_prog_compiler_pic_CXX='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+	    case $host_cpu in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      lt_prog_compiler_pic_CXX='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
 	;;
-      *)
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ F* | *Sun*Fortran*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl=''
-	  ;;
-	*Sun\ C*)
-	  # Sun C 5.9
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl='-Wl,'
-	  ;;
+      interix*)
+	# This is c89, which is MS Visual C++ (no shared libs)
+	# Anyone wants to do a port?
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
 	esac
 	;;
-      esac
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic='-fPIC -shared'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    rdos*)
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
-	lt_prog_compiler_wl='-Qoption ld ';;
-      *)
-	lt_prog_compiler_wl='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl='-Qoption ld '
-      lt_prog_compiler_pic='-PIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	lt_prog_compiler_pic='-Kconform_pic'
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    unicos*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_can_build_shared=no
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic='-pic'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared=no
-      ;;
-    esac
-  fi
-
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic=
-    ;;
-  *)
-    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
-    ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_works=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_pic_works=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
-    case $lt_prog_compiler_pic in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
-     esac
-else
-    lt_prog_compiler_pic=
-     lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
+      linux* | k*bsd*-gnu)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    lt_prog_compiler_wl_CXX='--backend -Wl,'
+	    lt_prog_compiler_pic_CXX='-fPIC'
+	    ;;
+	  icpc* | ecpc*)
+	    # Intel C++
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-static'
+	    ;;
+	  pgCC* | pgcpp*)
+	    # Portland Group C++ compiler.
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-fpic'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    lt_prog_compiler_pic_CXX=
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    ;;
+	  *)
+	    case `$CC -V 2>&1 | sed 5q` in
+	    *Sun\ C*)
+	      # Sun C++ 5.9
+	      lt_prog_compiler_pic_CXX='-KPIC'
+	      lt_prog_compiler_static_CXX='-Bstatic'
+	      lt_prog_compiler_wl_CXX='-Qoption ld '
+	      ;;
+	    esac
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    lt_prog_compiler_pic_CXX='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    lt_prog_compiler_wl_CXX='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    lt_prog_compiler_pic_CXX=
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    lt_prog_compiler_wl_CXX='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    lt_prog_compiler_pic_CXX='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    lt_prog_compiler_pic_CXX='-pic'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	esac
+	;;
+      vxworks*)
+	;;
+      *)
+	lt_prog_compiler_can_build_shared_CXX=no
+	;;
+    esac
+  fi
 
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6
 
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
 
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_pic_works_CXX=no
+  ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:13622: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:13626: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_pic_works_CXX=yes
+     fi
+   fi
+   $rm conftest*
 
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_CXX" >&6
 
+if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
+    case $lt_prog_compiler_pic_CXX in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+     esac
+else
+    lt_prog_compiler_pic_CXX=
+     lt_prog_compiler_can_build_shared_CXX=no
+fi
 
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_CXX=
+    ;;
+  *)
+    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
+    ;;
+esac
 
 #
 # Check to make sure the static flag actually works.
 #
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
-  $as_echo_n "(cached) " >&6
+wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
+echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  lt_cv_prog_compiler_static_works=no
+  lt_cv_prog_compiler_static_works_CXX=no
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -12140,96 +13679,36 @@ else
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&5
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler_static_works=yes
+         lt_cv_prog_compiler_static_works_CXX=yes
        fi
      else
-       lt_cv_prog_compiler_static_works=yes
+       lt_cv_prog_compiler_static_works_CXX=yes
      fi
    fi
-   $RM -r conftest*
+   $rm -r conftest*
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_static_works_CXX" >&6
 
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
     :
 else
-    lt_prog_compiler_static=
-fi
-
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
+    lt_prog_compiler_static_CXX=
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  lt_cv_prog_compiler_c_o=no
-   $RM -r conftest 2>/dev/null
+  lt_cv_prog_compiler_c_o_CXX=no
+   $rm -r conftest 2>/dev/null
    mkdir conftest
    cd conftest
    mkdir out
@@ -12244,2238 +13723,13113 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13726: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   echo "$as_me:13730: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
      if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o=yes
+       lt_cv_prog_compiler_c_o_CXX=yes
      fi
    fi
    chmod u+w . 2>&5
-   $RM conftest*
+   $rm conftest*
    # SGI C++ compiler will create directory out/ii_files/ for
    # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
    cd ..
-   $RM -r conftest
-   $RM conftest*
+   rmdir conftest
+   $rm conftest*
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6
 
 
 hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
   hard_links=yes
-  $RM conftest*
+  $rm conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
   if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
   need_locks=no
 fi
 
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
 
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
-  runpath_var=
-  allow_undefined_flag=
-  always_export_symbols=no
-  archive_cmds=
-  archive_expsym_cmds=
-  compiler_needs_object=no
-  enable_shared_with_static_runtimes=no
-  export_dynamic_flag_spec=
-  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  hardcode_automatic=no
-  hardcode_direct=no
-  hardcode_direct_absolute=no
-  hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
-  hardcode_libdir_separator=
-  hardcode_minus_L=no
-  hardcode_shlibpath_var=unsupported
-  inherit_rpath=no
-  link_all_deplibs=unknown
-  module_cmds=
-  module_expsym_cmds=
-  old_archive_from_new_cmds=
-  old_archive_from_expsyms_cmds=
-  thread_safe_flag_spec=
-  whole_archive_flag_spec=
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  # Exclude shared library initialization/finalization symbols.
-  extract_expsyms_cmds=
-
+  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
+  aix[4-9]*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+    else
+      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
     fi
     ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
+  pw32*)
+    export_symbols_cmds_CXX="$ltdll_cmds"
+  ;;
+  cygwin* | mingw*)
+    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
   esac
+  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
 
-  ld_shlibs=yes
+echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6
+test "$ld_shlibs_CXX" = no && can_build_shared=no
 
-  # On some targets, GNU ld is compatible enough with the native linker
-  # that we're better off using the native interface for both.
-  lt_use_gnu_ld_interface=no
-  if test "$with_gnu_ld" = yes; then
-    case $host_os in
-      aix*)
-	# The AIX port of GNU ld has always aspired to compatibility
-	# with the native linker.  However, as the warning in the GNU ld
-	# block says, versions before 2.19.5* couldn't really create working
-	# shared libraries, regardless of the interface used.
-	case `$LD -v 2>&1` in
-	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
-	  *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
-	  *\ \(GNU\ Binutils\)\ [3-9]*) ;;
-	  *)
-	    lt_use_gnu_ld_interface=yes
-	    ;;
-	esac
-	;;
-      *)
-	lt_use_gnu_ld_interface=yes
-	;;
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_CXX=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_CXX in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_CXX
+	pic_flag=$lt_prog_compiler_pic_CXX
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+        allow_undefined_flag_CXX=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_CXX=no
+        else
+	  archive_cmds_need_lc_CXX=yes
+        fi
+        allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6
+      ;;
     esac
   fi
+  ;;
+esac
 
-  if test "$lt_use_gnu_ld_interface" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    export_dynamic_flag_spec='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      whole_archive_flag_spec=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>&1` in
-      *GNU\ gold*) supports_anon_versioning=yes ;;
-      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-      *\ 2.11.*) ;; # other 2.11 versions
-      *) supports_anon_versioning=yes ;;
-    esac
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
 
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix[3-9]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
+need_lib_prefix=unknown
+hardcode_into_libs=no
 
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
 
-_LT_EOF
-      fi
-      ;;
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
 
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            archive_expsym_cmds=''
-        ;;
-      m68k)
-            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            hardcode_libdir_flag_spec='-L$libdir'
-            hardcode_minus_L=yes
-        ;;
-      esac
-      ;;
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
 
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+aix[4-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
       else
-	ld_shlibs=no
+	can_build_shared=no
       fi
       ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
 
-    cygwin* | mingw* | pw32* | cegcc*)
-      # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec='-L$libdir'
-      export_dynamic_flag_spec='${wl}--export-all-symbols'
-      allow_undefined_flag=unsupported
-      always_export_symbols=no
-      enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-
-      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
 
-    haiku*)
-      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      link_all_deplibs=yes
-      ;;
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
 
-    interix[3-9]*)
-      hardcode_direct=no
-      hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-      export_dynamic_flag_spec='${wl}-E'
-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-      # Instead, shared libraries are loaded at an image base (0x10000000 by
-      # default) and relocated if they conflict, which is a slow very memory
-      # consuming and fragmenting process.  To avoid this, we pick a random,
-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      ;;
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
 
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-      tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
-	case $cc_basename in
-	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-	esac
-      fi
-      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test "$tmp_diet" = no
-      then
-	tmp_addflag=' $pic_flag'
-	tmp_sharedflag='-shared'
-	case $cc_basename,$host_cpu in
-        pgcc*)				# Portland Group C compiler
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95* | pgfortran*)
-					# Portland Group f77 and f90 compilers
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	lf95*)				# Lahey Fortran 8.1
-	  whole_archive_flag_spec=
-	  tmp_sharedflag='--shared' ;;
-	xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
-	  tmp_sharedflag='-qmkshrobj'
-	  tmp_addflag= ;;
-	nvcc*)	# Cuda Compiler Driver 2.2
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  compiler_needs_object=yes
-	  ;;
-	esac
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)			# Sun C 5.9
-	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  compiler_needs_object=yes
-	  tmp_sharedflag='-G' ;;
-	*Sun\ F*)			# Sun Fortran 8.3
-	  tmp_sharedflag='-G' ;;
-	esac
-	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
 
-        if test "x$supports_anon_versioning" = xyes; then
-          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	    echo "local: *; };" >> $output_objdir/$libname.ver~
-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-        fi
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
 
-	case $cc_basename in
-	xlf* | bgf* | bgxlf* | mpixlf*)
-	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-	  hardcode_libdir_flag_spec=
-	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
-	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-	  if test "x$supports_anon_versioning" = xyes; then
-	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-	  fi
-	  ;;
-	esac
-      else
-        ld_shlibs=no
-      fi
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
       ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
       else
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
       fi
       ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
 
-    solaris*)
-      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
 
-_LT_EOF
-      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
 
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
 
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
 
-_LT_EOF
-	;;
-	*)
-	  # For security reasons, it is highly recommended that you always
-	  # use absolute paths for naming shared libraries, and exclude the
-	  # DT_RUNPATH tag from executables and libraries.  But doing so
-	  # requires that you compile everything twice, which is a pain.
-	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	  else
-	    ld_shlibs=no
-	  fi
-	;;
-      esac
-      ;;
+freebsd1*)
+  dynamic_linker=no
+  ;;
 
-    sunos4*)
-      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
       ;;
-
-    *)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
       ;;
-    esac
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
 
-    if test "$ld_shlibs" = no; then
-      runpath_var=
-      hardcode_libdir_flag_spec=
-      export_dynamic_flag_spec=
-      whole_archive_flag_spec=
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
     fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag=unsupported
-      always_export_symbols=yes
-      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	hardcode_direct=unsupported
-      fi
-      ;;
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
 
-    aix[4-9]*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	# Also, AIX nm treats weak defined symbols like other global
-	# defined symbols, whereas GNU nm marks them as "W".
-	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+interix[3-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
 	else
-	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
 
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-	  for ld_flag in $LDFLAGS; do
-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-	    aix_use_runtimelinking=yes
-	    break
-	  fi
-	  done
-	  ;;
-	esac
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
 
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
 
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
 
-      archive_cmds=''
-      hardcode_direct=yes
-      hardcode_direct_absolute=yes
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-      file_list_spec='${wl}-f,'
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
 
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[012]|aix4.[012].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	  # We have reworked collect2
-	  :
-	  else
-	  # We have old collect2
-	  hardcode_direct=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  hardcode_minus_L=yes
-	  hardcode_libdir_flag_spec='-L$libdir'
-	  hardcode_libdir_separator=
-	  fi
-	  ;;
-	esac
-	shared_flag='-shared'
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag="$shared_flag "'${wl}-G'
-	fi
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-	  fi
-	fi
-      fi
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
 
-      export_dynamic_flag_spec='${wl}-bexpall'
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	allow_undefined_flag='-berok'
-        # Determine the default libpath from the value encoded in an
-        # empty executable.
-        if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  if ${lt_cv_aix_libpath_+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
 
-int
-main ()
-{
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
 
-  lt_aix_libpath_sed='
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }'
-  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
   fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_="/usr/lib:/lib"
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
   fi
+  ;;
 
-fi
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
 
-  aix_libpath=$lt_cv_aix_libpath_
-fi
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
 
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-      else
-	if test "$host_cpu" = ia64; then
-	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-	  allow_undefined_flag="-z nodefs"
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an
-	 # empty executable.
-	 if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if ${lt_cv_aix_libpath_+:} false; then :
-  $as_echo_n "(cached) " >&6
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
 
-int
-main ()
-{
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" || \
+   test -n "$runpath_var_CXX" || \
+   test "X$hardcode_automatic_CXX" = "Xyes" ; then
 
-  lt_aix_libpath_sed='
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }'
-  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_CXX" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
+     test "$hardcode_minus_L_CXX" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_CXX=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_CXX=immediate
   fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_CXX=unsupported
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_="/usr/lib:/lib"
-  fi
+echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
+echo "${ECHO_T}$hardcode_action_CXX" >&6
 
+if test "$hardcode_action_CXX" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
 fi
 
-  aix_libpath=$lt_cv_aix_libpath_
-fi
-
-	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  no_undefined_flag=' ${wl}-bernotok'
-	  allow_undefined_flag=' ${wl}-berok'
-	  if test "$with_gnu_ld" = yes; then
-	    # We only use this code for GNU lds that support --whole-archive.
-	    whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	  else
-	    # Exported symbols can be pulled into shared objects from archives
-	    whole_archive_flag_spec='$convenience'
-	  fi
-	  archive_cmds_need_lc=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
 
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            archive_expsym_cmds=''
-        ;;
-      m68k)
-            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            hardcode_libdir_flag_spec='-L$libdir'
-            hardcode_minus_L=yes
-        ;;
-      esac
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_CXX \
+    CC_CXX \
+    LD_CXX \
+    lt_prog_compiler_wl_CXX \
+    lt_prog_compiler_pic_CXX \
+    lt_prog_compiler_static_CXX \
+    lt_prog_compiler_no_builtin_flag_CXX \
+    export_dynamic_flag_spec_CXX \
+    thread_safe_flag_spec_CXX \
+    whole_archive_flag_spec_CXX \
+    enable_shared_with_static_runtimes_CXX \
+    old_archive_cmds_CXX \
+    old_archive_from_new_cmds_CXX \
+    predep_objects_CXX \
+    postdep_objects_CXX \
+    predeps_CXX \
+    postdeps_CXX \
+    compiler_lib_search_path_CXX \
+    compiler_lib_search_dirs_CXX \
+    archive_cmds_CXX \
+    archive_expsym_cmds_CXX \
+    postinstall_cmds_CXX \
+    postuninstall_cmds_CXX \
+    old_archive_from_expsyms_cmds_CXX \
+    allow_undefined_flag_CXX \
+    no_undefined_flag_CXX \
+    export_symbols_cmds_CXX \
+    hardcode_libdir_flag_spec_CXX \
+    hardcode_libdir_flag_spec_ld_CXX \
+    hardcode_libdir_separator_CXX \
+    hardcode_automatic_CXX \
+    module_cmds_CXX \
+    module_expsym_cmds_CXX \
+    lt_cv_prog_compiler_c_o_CXX \
+    fix_srcfile_path_CXX \
+    exclude_expsyms_CXX \
+    include_expsyms_CXX; do
+
+    case $var in
+    old_archive_cmds_CXX | \
+    old_archive_from_new_cmds_CXX | \
+    archive_cmds_CXX | \
+    archive_expsym_cmds_CXX | \
+    module_cmds_CXX | \
+    module_expsym_cmds_CXX | \
+    old_archive_from_expsyms_cmds_CXX | \
+    export_symbols_cmds_CXX | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
       ;;
-
-    bsdi[45]*)
-      export_dynamic_flag_spec=-rdynamic
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
       ;;
+    esac
+  done
 
-    cygwin* | mingw* | pw32* | cegcc*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      case $cc_basename in
-      cl*)
-	# Native MSVC
-	hardcode_libdir_flag_spec=' '
-	allow_undefined_flag=unsupported
-	always_export_symbols=yes
-	file_list_spec='@'
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	  else
-	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	  fi~
-	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	  linknames='
-	# The linker will not automatically build a static lib if we build a DLL.
-	# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
-	enable_shared_with_static_runtimes=yes
-	export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
-	# Don't use ranlib
-	old_postinstall_cmds='chmod 644 $oldlib'
-	postlink_cmds='lt_outputfile="@OUTPUT@"~
-	  lt_tool_outputfile="@TOOL_OUTPUT@"~
-	  case $lt_outputfile in
-	    *.exe|*.EXE) ;;
-	    *)
-	      lt_outputfile="$lt_outputfile.exe"
-	      lt_tool_outputfile="$lt_tool_outputfile.exe"
-	      ;;
-	  esac~
-	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	    $RM "$lt_outputfile.manifest";
-	  fi'
-	;;
-      *)
-	# Assume MSVC wrapper
-	hardcode_libdir_flag_spec=' '
-	allow_undefined_flag=unsupported
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-	# The linker will automatically build a .lib file if we build a DLL.
-	old_archive_from_new_cmds='true'
-	# FIXME: Should let the user specify the lib program.
-	old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
-	enable_shared_with_static_runtimes=yes
-	;;
-      esac
-      ;;
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
 
-    darwin* | rhapsody*)
+cfgfile="$ofile"
 
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
 
-  archive_cmds_need_lc=no
-  hardcode_direct=no
-  hardcode_automatic=yes
-  hardcode_shlibpath_var=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-  else
-    whole_archive_flag_spec=''
-  fi
-  link_all_deplibs=yes
-  allow_undefined_flag="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=func_echo_all
-    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 
-  else
-  ld_shlibs=no
-  fi
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
 
-      ;;
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
 
-    dgux*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
 
-    freebsd1*)
-      ld_shlibs=no
-      ;;
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
 
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
 
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
 
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
-      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
 
-    hpux9*)
-      if test "$GCC" = yes; then
-	archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_direct=yes
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
 
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L=yes
-      export_dynamic_flag_spec='${wl}-E'
-      ;;
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
 
-    hpux10*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_flag_spec_ld='+b $libdir'
-	hardcode_libdir_separator=:
-	hardcode_direct=yes
-	hardcode_direct_absolute=yes
-	export_dynamic_flag_spec='${wl}-E'
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	hardcode_minus_L=yes
-      fi
-      ;;
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
 
-    hpux11*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
+# A C compiler.
+LTCC=$lt_LTCC
 
-	  # Older versions of the 11.00 compiler do not understand -b yet
-	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler__b=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS -b"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler__b=yes
-       fi
-     else
-       lt_cv_prog_compiler__b=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
+# A language-specific compiler.
+CC=$lt_compiler_CXX
 
-if test x"$lt_cv_prog_compiler__b" = xyes; then
-    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-else
-    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-fi
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_CXX
 
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator=:
+# An ERE matcher.
+EGREP=$lt_EGREP
 
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  hardcode_direct=no
-	  hardcode_shlibpath_var=no
-	  ;;
-	*)
-	  hardcode_direct=yes
-	  hardcode_direct_absolute=yes
-	  export_dynamic_flag_spec='${wl}-E'
+# The linker used to build libraries.
+LD=$lt_LD_CXX
 
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L=yes
-	  ;;
-	esac
-      fi
-      ;;
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
 
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	# Try to use the -exported_symbol ld option, if it does not
-	# work, assume that -exports_file does not work either and
-	# implicitly export all symbols.
-	# This should be the same for all languages, so no per-tag cache variable.
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  save_LDFLAGS="$LDFLAGS"
-	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-	   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-int foo (void) { return 0; }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_irix_exported_symbol=yes
-else
-  lt_cv_irix_exported_symbol=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-           LDFLAGS="$save_LDFLAGS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
-	if test "$lt_cv_irix_exported_symbol" = yes; then
-          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-	fi
-      else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      inherit_rpath=yes
-      link_all_deplibs=yes
-      ;;
+# A BSD-compatible nm program.
+NM=$lt_NM
 
-    netbsd*)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
+# A symbol stripping program
+STRIP=$lt_STRIP
 
-    newsos6)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_shlibpath_var=no
-      ;;
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
 
-    *nto* | *qnx*)
-      ;;
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
 
-    openbsd*)
-      if test -f /usr/libexec/ld.so; then
-	hardcode_direct=yes
-	hardcode_shlibpath_var=no
-	hardcode_direct_absolute=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	  hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	  export_dynamic_flag_spec='${wl}-E'
-	else
-	  case $host_os in
-	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	     archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	     hardcode_libdir_flag_spec='-R$libdir'
-	     ;;
-	   *)
-	     archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	     hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	     ;;
-	  esac
-	fi
-      else
-	ld_shlibs=no
-      fi
-      ;;
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
 
-    os2*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
+# Used on cygwin: assembler.
+AS="$AS"
 
-    osf3*)
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
 
-	# Both c and cxx compiler support -rpath directly
-	hardcode_libdir_flag_spec='-rpath $libdir'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_separator=:
-      ;;
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
 
-    solaris*)
-      no_undefined_flag=' -z defs'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-      else
-	case `$CC -V 2>&1` in
-	*"Compilers 5.0"*)
-	  wlarc=''
-	  archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
-	  ;;
-	*)
-	  wlarc='${wl}'
-	  archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-	  ;;
-	esac
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_shlibpath_var=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *)
-	# The compiler driver will combine and reorder linker options,
-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
-	# but is careful enough not to reorder.
-	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test "$GCC" = yes; then
-	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	else
-	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
-	fi
-	;;
-      esac
-      link_all_deplibs=yes
-      ;;
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
 
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
+# Object file suffix (normally "o").
+objext="$ac_objext"
 
-    sysv4)
-      case $host_vendor in
-	sni)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  reload_cmds='$CC -r -o $output$reload_objs'
-	  hardcode_direct=no
-        ;;
-	motorola)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var=no
-      ;;
+# Old archive suffix (normally "a").
+libext="$libext"
 
-    sysv4.3*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      export_dynamic_flag_spec='-Bexport'
-      ;;
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
 
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	hardcode_shlibpath_var=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	ld_shlibs=yes
-      fi
-      ;;
+# Executable file suffix (normally "").
+exeext="$exeext"
 
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag='${wl}-z,text'
-      archive_cmds_need_lc=no
-      hardcode_shlibpath_var=no
-      runpath_var='LD_RUN_PATH'
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+pic_mode=$pic_mode
 
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
-      # link with -lc, and that would cause any symbols used from libc to
-      # always be unresolved, which means just about no library would
-      # ever link correctly.  If we're not using GNU ld we use -z text
-      # though, which does catch some bad symbols but isn't as heavy-handed
-      # as -z defs.
-      no_undefined_flag='${wl}-z,text'
-      allow_undefined_flag='${wl}-z,nodefs'
-      archive_cmds_need_lc=no
-      hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-R,$libdir'
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-      export_dynamic_flag_spec='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      ld_shlibs=no
-      ;;
-    esac
-
-    if test x$host_vendor = xsni; then
-      case $host in
-      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	export_dynamic_flag_spec='${wl}-Blargedynsym'
-	;;
-      esac
-    fi
-  fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  $RM conftest*
-	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } 2>conftest.err; then
-	  soname=conftest
-	  lib=conftest
-	  libobjs=conftest.$ac_objext
-	  deplibs=
-	  wl=$lt_prog_compiler_wl
-	  pic_flag=$lt_prog_compiler_pic
-	  compiler_flags=-v
-	  linker_flags=-v
-	  verstring=
-	  output_objdir=.
-	  libname=conftest
-	  lt_save_allow_undefined_flag=$allow_undefined_flag
-	  allow_undefined_flag=
-	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
-  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-	  then
-	    lt_cv_archive_cmds_need_lc=no
-	  else
-	    lt_cv_archive_cmds_need_lc=yes
-	  fi
-	  allow_undefined_flag=$lt_save_allow_undefined_flag
-	else
-	  cat conftest.err 1>&5
-	fi
-	$RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
-      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
-      ;;
-    esac
-  fi
-  ;;
-esac
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
 
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
 
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
 
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
 
+# Do we need a version for libraries?
+need_version=$need_version
 
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
 
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
 
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
 
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
 
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
 
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
 
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
 
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
 
+# Library versioning type.
+version_type=$version_type
 
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
 
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
 
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
 
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_CXX
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
 
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
 
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
 
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
 
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
 
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
 
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_CXX
 
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_CXX
 
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_CXX
 
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_CXX
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
 
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
 
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
 
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
 
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
 
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
 
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
 
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
 
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
 
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
 
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
 
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
 
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
 
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
 
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
 
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
 
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
 
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
 
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
 
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_CXX
 
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
 
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
 
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_CXX
 
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
 
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
 
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
 
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
 
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
 
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
 
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
 
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
 
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
 
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
 
+# ### END LIBTOOL TAG CONFIG: $tagname
 
+__EOF__
 
 
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
 
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
 
+	else
+	  tagname=""
+	fi
+	;;
 
+      F77)
+	if test -n "$F77" && test "X$F77" != "Xno"; then
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+
+
+archive_cmds_need_lc_F77=no
+allow_undefined_flag_F77=
+always_export_symbols_F77=no
+archive_expsym_cmds_F77=
+export_dynamic_flag_spec_F77=
+hardcode_direct_F77=no
+hardcode_libdir_flag_spec_F77=
+hardcode_libdir_flag_spec_ld_F77=
+hardcode_libdir_separator_F77=
+hardcode_minus_L_F77=no
+hardcode_automatic_F77=no
+module_cmds_F77=
+module_expsym_cmds_F77=
+link_all_deplibs_F77=unknown
+old_archive_cmds_F77=$old_archive_cmds
+no_undefined_flag_F77=
+whole_archive_flag_spec_F77=
+enable_shared_with_static_runtimes_F77=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+objext_F77=$objext
 
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
 
+# Code to be used in simple link tests
+lt_simple_link_test_code="\
+      program t
+      end
+"
 
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
 
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
 
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
 
+# Allow CC to be a program name with arguments.
+compiler=$CC
 
 
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
 
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm -r conftest*
 
 
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+compiler_F77=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
 
+echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6
 
+echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+test "$can_build_shared" = "no" && enable_shared=no
 
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+aix[4-9]*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+  ;;
+esac
+echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6
 
+echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6
 
+GCC_F77="$G77"
+LD_F77="$LD"
 
+lt_prog_compiler_wl_F77=
+lt_prog_compiler_pic_F77=
+lt_prog_compiler_static_F77=
 
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
 
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl_F77='-Wl,'
+    lt_prog_compiler_static_F77='-static'
 
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_F77='-Bstatic'
+      fi
+      ;;
 
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+      ;;
 
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
 
+    mingw* | cygwin* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+      ;;
 
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_F77='-fno-common'
+      ;;
 
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
 
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared_F77=no
+      enable_shared=no
+      ;;
 
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_F77=-Kconform_pic
+      fi
+      ;;
 
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_F77='-fPIC'
+	;;
+      esac
+      ;;
 
+    *)
+      lt_prog_compiler_pic_F77='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_F77='-Bstatic'
+      else
+	lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         lt_prog_compiler_pic_F77='-qnocommon'
+         lt_prog_compiler_wl_F77='-Wl,'
+         ;;
+       esac
+       ;;
 
+    mingw* | cygwin* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+      ;;
 
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_F77='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static_F77='${wl}-a ${wl}archive'
+      ;;
 
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static_F77='-non_shared'
+      ;;
 
+    newsos6)
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
 
+    linux* | k*bsd*-gnu)
+      case $cc_basename in
+      icc* | ecc*)
+	lt_prog_compiler_wl_F77='-Wl,'
+	lt_prog_compiler_pic_F77='-KPIC'
+	lt_prog_compiler_static_F77='-static'
+        ;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl_F77='-Wl,'
+	lt_prog_compiler_pic_F77='-fpic'
+	lt_prog_compiler_static_F77='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl_F77='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static_F77='-non_shared'
+        ;;
+      *)
+        case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C 5.9
+	  lt_prog_compiler_pic_F77='-KPIC'
+	  lt_prog_compiler_static_F77='-Bstatic'
+	  lt_prog_compiler_wl_F77='-Wl,'
+	  ;;
+	*Sun\ F*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  lt_prog_compiler_pic_F77='-KPIC'
+	  lt_prog_compiler_static_F77='-Bstatic'
+	  lt_prog_compiler_wl_F77=''
+	  ;;
+	esac
+	;;
+      esac
+      ;;
 
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static_F77='-non_shared'
+      ;;
 
+    rdos*)
+      lt_prog_compiler_static_F77='-non_shared'
+      ;;
 
+    solaris*)
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl_F77='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl_F77='-Wl,';;
+      esac
+      ;;
 
+    sunos4*)
+      lt_prog_compiler_wl_F77='-Qoption ld '
+      lt_prog_compiler_pic_F77='-PIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
 
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
 
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic_F77='-Kconform_pic'
+	lt_prog_compiler_static_F77='-Bstatic'
+      fi
+      ;;
 
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
 
+    unicos*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_can_build_shared_F77=no
+      ;;
 
+    uts4*)
+      lt_prog_compiler_pic_F77='-pic'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
 
+    *)
+      lt_prog_compiler_can_build_shared_F77=no
+      ;;
+    esac
+  fi
 
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6
 
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_F77"; then
 
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_pic_works_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_pic_works_F77=no
+  ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_F77"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:15309: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:15313: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_pic_works_F77=yes
+     fi
+   fi
+   $rm conftest*
 
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_F77" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_F77" >&6
 
+if test x"$lt_cv_prog_compiler_pic_works_F77" = xyes; then
+    case $lt_prog_compiler_pic_F77 in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
+     esac
+else
+    lt_prog_compiler_pic_F77=
+     lt_prog_compiler_can_build_shared_F77=no
+fi
 
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_F77=
+    ;;
+  *)
+    lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
+    ;;
+esac
 
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\"
+echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_static_works_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_static_works_F77=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler_static_works_F77=yes
+       fi
+     else
+       lt_cv_prog_compiler_static_works_F77=yes
+     fi
+   fi
+   $rm -r conftest*
+   LDFLAGS="$save_LDFLAGS"
 
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_F77" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_static_works_F77" >&6
 
+if test x"$lt_cv_prog_compiler_static_works_F77" = xyes; then
+    :
+else
+    lt_prog_compiler_static_F77=
+fi
 
 
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_F77=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:15413: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:15417: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_F77=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
 
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6
 
 
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
 
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
 
+  runpath_var=
+  allow_undefined_flag_F77=
+  enable_shared_with_static_runtimes_F77=no
+  archive_cmds_F77=
+  archive_expsym_cmds_F77=
+  old_archive_From_new_cmds_F77=
+  old_archive_from_expsyms_cmds_F77=
+  export_dynamic_flag_spec_F77=
+  whole_archive_flag_spec_F77=
+  thread_safe_flag_spec_F77=
+  hardcode_libdir_flag_spec_F77=
+  hardcode_libdir_flag_spec_ld_F77=
+  hardcode_libdir_separator_F77=
+  hardcode_direct_F77=no
+  hardcode_minus_L_F77=no
+  hardcode_shlibpath_var_F77=unsupported
+  link_all_deplibs_F77=unknown
+  hardcode_automatic_F77=no
+  module_cmds_F77=
+  module_expsym_cmds_F77=
+  always_export_symbols_F77=no
+  export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms_F77=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms_F77='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
 
+  ld_shlibs_F77=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
 
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec_F77='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec_F77=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
 
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[3-9]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs_F77=no
+	cat <<EOF 1>&2
 
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
 
+EOF
+      fi
+      ;;
 
+    amigaos*)
+      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs_F77=no
+      ;;
 
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag_F77=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
 
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      allow_undefined_flag_F77=unsupported
+      always_export_symbols_F77=no
+      enable_shared_with_static_runtimes_F77=yes
+      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
 
+    interix[3-9]*)
+      hardcode_direct_F77=no
+      hardcode_shlibpath_var_F77=no
+      hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec_F77='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
 
+    gnu* | linux* | k*bsd*-gnu)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	*)
+	  tmp_sharedflag='-shared' ;;
+	esac
+	archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
 
+	if test $supports_anon_versioning = yes; then
+	  archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
 
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
 
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs_F77=no
+	cat <<EOF 1>&2
 
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
 
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
 
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs_F77=no
+	cat <<_LT_EOF 1>&2
 
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
 
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    ld_shlibs_F77=no
+	  fi
+	;;
+      esac
+      ;;
 
+    sunos4*)
+      archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
 
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+    esac
 
+    if test "$ld_shlibs_F77" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec_F77=
+      export_dynamic_flag_spec_F77=
+      whole_archive_flag_spec_F77=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag_F77=unsupported
+      always_export_symbols_F77=yes
+      archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L_F77=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct_F77=unsupported
+      fi
+      ;;
 
+    aix[4-9]*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
 
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	  ;;
+	esac
 
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
 
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
+      archive_cmds_F77=''
+      hardcode_direct_F77=yes
+      hardcode_libdir_separator_F77=':'
+      link_all_deplibs_F77=yes
 
-if test "$GCC" = yes; then
-  case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
-  esac
-  case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
-    *) lt_sed_strip_eq="s,=/,/,g" ;;
-  esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
-  case $lt_search_path_spec in
-  *\;*)
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
-    ;;
-  *)
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
-    ;;
-  esac
-  # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
-  lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-  for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
-      test -d "$lt_sys_path" && \
-	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-    fi
-  done
-  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
-  for (lt_i = NF; lt_i > 0; lt_i--) {
-    if ($lt_i != "" && $lt_i != ".") {
-      if ($lt_i == "..") {
-        lt_count++;
-      } else {
-        if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
-        } else {
-          lt_count--;
-        }
-      }
-    }
-  }
-  if (lt_foo != "") { lt_freq[lt_foo]++; }
-  if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
-  # AWK program above erroneously prepends '/' to C:/dos/paths
-  # for these hosts.
-  case $host_os in
-    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
-  esac
-  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  :
+	  else
+  	  # We have old collect2
+  	  hardcode_direct_F77=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L_F77=yes
+  	  hardcode_libdir_flag_spec_F77='-L$libdir'
+  	  hardcode_libdir_separator_F77=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols_F77=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag_F77='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       cat >conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
 else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
+       hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag_F77="-z nodefs"
+	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+      program main
 
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
+      end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
-aix[4-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
+	 hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag_F77=' ${wl}-bernotok'
+	  allow_undefined_flag_F77=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec_F77='$convenience'
+	  archive_cmds_need_lc_F77=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
       fi
       ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
 
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
+    amigaos*)
+      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs_F77=no
+      ;;
 
-  case $GCC,$cc_basename in
-  yes,*)
-    # gcc
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
+    bsdi[45]*)
+      export_dynamic_flag_spec_F77=-rdynamic
+      ;;
 
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec_F77=' '
+      allow_undefined_flag_F77=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds_F77='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes_F77=yes
+      ;;
 
-      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+    darwin* | rhapsody*)
+      case $host_os in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag_F77='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      archive_cmds_need_lc_F77=no
+      hardcode_direct_F77=no
+      hardcode_automatic_F77=yes
+      hardcode_shlibpath_var_F77=unsupported
+      whole_archive_flag_spec_F77=''
+      link_all_deplibs_F77=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+        module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+        archive_expsym_cmds_F77="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+        module_expsym_cmds_F77="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+         module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+         archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs_F77=no
+          ;;
+      esac
+    fi
       ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+
+    dgux*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_shlibpath_var_F77=no
       ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+
+    freebsd1*)
+      ld_shlibs_F77=no
       ;;
-    esac
-    dynamic_linker='Win32 ld.exe'
-    ;;
 
-  *,cl*)
-    # Native MSVC
-    libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
 
-    case $build_os in
-    mingw*)
-      sys_lib_search_path_spec=
-      lt_save_ifs=$IFS
-      IFS=';'
-      for lt_path in $LIB
-      do
-        IFS=$lt_save_ifs
-        # Let DOS variable expansion print the short 8.3 style file name.
-        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-      done
-      IFS=$lt_save_ifs
-      # Convert to MSYS style.
-      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_F77=yes
+      hardcode_minus_L_F77=yes
+      hardcode_shlibpath_var_F77=no
       ;;
-    cygwin*)
-      # Convert to unix form, then to dos form, then back to unix form
-      # but this time dos style (no spaces!) so that the unix form looks
-      # like /cygdrive/c/PROGRA~1:/cygdr...
-      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
       ;;
-    *)
-      sys_lib_search_path_spec="$LIB"
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+	archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
       fi
-      # FIXME: find the short name or the path components, as spaces are
-      # common. (e.g. "Program Files" -> "PROGRA~1")
-      ;;
-    esac
+      hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      hardcode_direct_F77=yes
 
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-    dynamic_linker='Win32 link.exe'
-    ;;
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L_F77=yes
+      export_dynamic_flag_spec_F77='${wl}-E'
+      ;;
 
-  *)
-    # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    dynamic_linker='Win32 ld.exe'
-    ;;
-  esac
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_F77=:
 
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+	hardcode_direct_F77=yes
+	export_dynamic_flag_spec_F77='${wl}-E'
 
-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L_F77=yes
+      fi
+      ;;
 
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_F77=:
 
-freebsd1*)
-  dynamic_linker=no
-  ;;
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  hardcode_libdir_flag_spec_ld_F77='+b $libdir'
+	  hardcode_direct_F77=no
+	  hardcode_shlibpath_var_F77=no
+	  ;;
+	*)
+	  hardcode_direct_F77=yes
+	  export_dynamic_flag_spec_F77='${wl}-E'
 
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[123]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_F77=yes
+	  ;;
+	esac
+      fi
       ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      link_all_deplibs_F77=yes
       ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
 
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
 
-haiku*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
-  hardcode_into_libs=yes
-  ;;
+    newsos6)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_F77=yes
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      hardcode_shlibpath_var_F77=no
+      ;;
 
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
-  postinstall_cmds='chmod 555 $lib'
-  # or fails outright, so override atomically:
-  install_override_mode=555
-  ;;
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+	hardcode_direct_F77=yes
+	hardcode_shlibpath_var_F77=no
+	if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+	  export_dynamic_flag_spec_F77='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	     archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     hardcode_libdir_flag_spec_F77='-R$libdir'
+	     ;;
+	   *)
+	     archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+        fi
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
 
-interix[3-9]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
+    os2*)
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+      allow_undefined_flag_F77=unsupported
+      archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
 
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag_F77=' -expect_unresolved \*'
+	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag_F77=' -expect_unresolved \*'
+	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec_F77='-rpath $libdir'
+      fi
+      hardcode_libdir_separator_F77=:
+      ;;
+
+    solaris*)
+      no_undefined_flag_F77=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_shlibpath_var_F77=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test "$GCC" = yes; then
+	  whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
 	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
+	  whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      link_all_deplibs_F77=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_direct_F77=yes
+      hardcode_minus_L_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_F77=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds_F77='$CC -r -o $output$reload_objs'
+	  hardcode_direct_F77=no
+        ;;
+	motorola)
+	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_F77=no
+      export_dynamic_flag_spec_F77='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var_F77=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs_F77=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+      no_undefined_flag_F77='${wl}-z,text'
+      archive_cmds_need_lc_F77=no
+      hardcode_shlibpath_var_F77=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag_F77='${wl}-z,text'
+      allow_undefined_flag_F77='${wl}-z,nodefs'
+      archive_cmds_need_lc_F77=no
+      hardcode_shlibpath_var_F77=no
+      hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator_F77=':'
+      link_all_deplibs_F77=yes
+      export_dynamic_flag_spec_F77='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    *)
+      ld_shlibs_F77=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
+echo "${ECHO_T}$ld_shlibs_F77" >&6
+test "$ld_shlibs_F77" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_F77" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_F77=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_F77 in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_F77
+	pic_flag=$lt_prog_compiler_pic_F77
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_F77
+        allow_undefined_flag_F77=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_F77=no
+        else
+	  archive_cmds_need_lc_F77=yes
+        fi
+        allow_undefined_flag_F77=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[4-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
     ;;
+
   *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
     ;;
   esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
   ;;
 
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix[3-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_F77=
+if test -n "$hardcode_libdir_flag_spec_F77" || \
+   test -n "$runpath_var_F77" || \
+   test "X$hardcode_automatic_F77" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_F77" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no &&
+     test "$hardcode_minus_L_F77" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_F77=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_F77=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_F77=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
+echo "${ECHO_T}$hardcode_action_F77" >&6
+
+if test "$hardcode_action_F77" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_F77 \
+    CC_F77 \
+    LD_F77 \
+    lt_prog_compiler_wl_F77 \
+    lt_prog_compiler_pic_F77 \
+    lt_prog_compiler_static_F77 \
+    lt_prog_compiler_no_builtin_flag_F77 \
+    export_dynamic_flag_spec_F77 \
+    thread_safe_flag_spec_F77 \
+    whole_archive_flag_spec_F77 \
+    enable_shared_with_static_runtimes_F77 \
+    old_archive_cmds_F77 \
+    old_archive_from_new_cmds_F77 \
+    predep_objects_F77 \
+    postdep_objects_F77 \
+    predeps_F77 \
+    postdeps_F77 \
+    compiler_lib_search_path_F77 \
+    compiler_lib_search_dirs_F77 \
+    archive_cmds_F77 \
+    archive_expsym_cmds_F77 \
+    postinstall_cmds_F77 \
+    postuninstall_cmds_F77 \
+    old_archive_from_expsyms_cmds_F77 \
+    allow_undefined_flag_F77 \
+    no_undefined_flag_F77 \
+    export_symbols_cmds_F77 \
+    hardcode_libdir_flag_spec_F77 \
+    hardcode_libdir_flag_spec_ld_F77 \
+    hardcode_libdir_separator_F77 \
+    hardcode_automatic_F77 \
+    module_cmds_F77 \
+    module_expsym_cmds_F77 \
+    lt_cv_prog_compiler_c_o_F77 \
+    fix_srcfile_path_F77 \
+    exclude_expsyms_F77 \
+    include_expsyms_F77; do
+
+    case $var in
+    old_archive_cmds_F77 | \
+    old_archive_from_new_cmds_F77 | \
+    archive_cmds_F77 | \
+    archive_expsym_cmds_F77 | \
+    module_cmds_F77 | \
+    module_expsym_cmds_F77 | \
+    old_archive_from_expsyms_cmds_F77 | \
+    export_symbols_cmds_F77 | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_F77
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_F77
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_F77
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_F77
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_F77
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_F77
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_F77
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_F77
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_F77
+archive_expsym_cmds=$lt_archive_expsym_cmds_F77
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_F77
+module_expsym_cmds=$lt_module_expsym_cmds_F77
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_F77
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_F77
+
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_F77
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_F77
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_F77
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_F77
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_F77
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_F77
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_F77
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_F77
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_F77
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_F77
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_F77
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_F77
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_F77
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_F77
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      GCJ)
+	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+
+
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+objext_GCJ=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm -r conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+compiler_GCJ=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+archive_cmds_need_lc_GCJ=no
+
+old_archive_cmds_GCJ=$old_archive_cmds
+
+
+lt_prog_compiler_no_builtin_flag_GCJ=
+
+if test "$GCC" = yes; then
+  lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_rtti_exceptions=no
+  ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:17625: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:17629: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+    lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
+else
+    :
+fi
+
+fi
+
+lt_prog_compiler_wl_GCJ=
+lt_prog_compiler_pic_GCJ=
+lt_prog_compiler_static_GCJ=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl_GCJ='-Wl,'
+    lt_prog_compiler_static_GCJ='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_GCJ='-fno-common'
+      ;;
+
+    interix[3-9]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared_GCJ=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_GCJ=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_GCJ='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      lt_prog_compiler_pic_GCJ='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      else
+	lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         lt_prog_compiler_pic_GCJ='-qnocommon'
+         lt_prog_compiler_wl_GCJ='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | cygwin* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_GCJ='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static_GCJ='-non_shared'
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    linux* | k*bsd*-gnu)
+      case $cc_basename in
+      icc* | ecc*)
+	lt_prog_compiler_wl_GCJ='-Wl,'
+	lt_prog_compiler_pic_GCJ='-KPIC'
+	lt_prog_compiler_static_GCJ='-static'
+        ;;
+      pgcc* | pgf77* | pgf90* | pgf95*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl_GCJ='-Wl,'
+	lt_prog_compiler_pic_GCJ='-fpic'
+	lt_prog_compiler_static_GCJ='-Bstatic'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl_GCJ='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static_GCJ='-non_shared'
+        ;;
+      *)
+        case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)
+	  # Sun C 5.9
+	  lt_prog_compiler_pic_GCJ='-KPIC'
+	  lt_prog_compiler_static_GCJ='-Bstatic'
+	  lt_prog_compiler_wl_GCJ='-Wl,'
+	  ;;
+	*Sun\ F*)
+	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
+	  lt_prog_compiler_pic_GCJ='-KPIC'
+	  lt_prog_compiler_static_GCJ='-Bstatic'
+	  lt_prog_compiler_wl_GCJ=''
+	  ;;
+	esac
+	;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static_GCJ='-non_shared'
+      ;;
+
+    rdos*)
+      lt_prog_compiler_static_GCJ='-non_shared'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl_GCJ='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl_GCJ='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl_GCJ='-Qoption ld '
+      lt_prog_compiler_pic_GCJ='-PIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic_GCJ='-Kconform_pic'
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_can_build_shared_GCJ=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic_GCJ='-pic'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared_GCJ=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_GCJ"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_pic_works_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_pic_works_GCJ=no
+  ac_outfile=conftest.$ac_objext
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:17915: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:17919: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_pic_works_GCJ=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_GCJ" >&6
+
+if test x"$lt_cv_prog_compiler_pic_works_GCJ" = xyes; then
+    case $lt_prog_compiler_pic_GCJ in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
+     esac
+else
+    lt_prog_compiler_pic_GCJ=
+     lt_prog_compiler_can_build_shared_GCJ=no
+fi
+
+fi
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_GCJ=
+    ;;
+  *)
+    lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ"
+    ;;
+esac
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\"
+echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_static_works_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_static_works_GCJ=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_cv_prog_compiler_static_works_GCJ=yes
+       fi
+     else
+       lt_cv_prog_compiler_static_works_GCJ=yes
+     fi
+   fi
+   $rm -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_static_works_GCJ" >&6
+
+if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then
+    :
+else
+    lt_prog_compiler_static_GCJ=
+fi
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_GCJ=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:18019: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:18023: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_GCJ=yes
+     fi
+   fi
+   chmod u+w . 2>&5
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+  runpath_var=
+  allow_undefined_flag_GCJ=
+  enable_shared_with_static_runtimes_GCJ=no
+  archive_cmds_GCJ=
+  archive_expsym_cmds_GCJ=
+  old_archive_From_new_cmds_GCJ=
+  old_archive_from_expsyms_cmds_GCJ=
+  export_dynamic_flag_spec_GCJ=
+  whole_archive_flag_spec_GCJ=
+  thread_safe_flag_spec_GCJ=
+  hardcode_libdir_flag_spec_GCJ=
+  hardcode_libdir_flag_spec_ld_GCJ=
+  hardcode_libdir_separator_GCJ=
+  hardcode_direct_GCJ=no
+  hardcode_minus_L_GCJ=no
+  hardcode_shlibpath_var_GCJ=unsupported
+  link_all_deplibs_GCJ=unknown
+  hardcode_automatic_GCJ=no
+  module_cmds_GCJ=
+  module_expsym_cmds_GCJ=
+  always_export_symbols_GCJ=no
+  export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms_GCJ=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms_GCJ='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs_GCJ=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec_GCJ=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[3-9]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs_GCJ=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs_GCJ=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag_GCJ=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      allow_undefined_flag_GCJ=unsupported
+      always_export_symbols_GCJ=no
+      enable_shared_with_static_runtimes_GCJ=yes
+      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    interix[3-9]*)
+      hardcode_direct_GCJ=no
+      hardcode_shlibpath_var_GCJ=no
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+      export_dynamic_flag_spec_GCJ='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | k*bsd*-gnu)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* | pgf95*)	# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	case `$CC -V 2>&1 | sed 5q` in
+	*Sun\ C*)			# Sun C 5.9
+	  whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_sharedflag='-G' ;;
+	*Sun\ F*)			# Sun Fortran 8.3
+	  tmp_sharedflag='-G' ;;
+	*)
+	  tmp_sharedflag='-shared' ;;
+	esac
+	archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs_GCJ=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+	ld_shlibs_GCJ=no
+	cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+	;;
+	*)
+	  if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	    hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+	    archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
+	    archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
+	  else
+	    ld_shlibs_GCJ=no
+	  fi
+	;;
+      esac
+      ;;
+
+    sunos4*)
+      archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs_GCJ" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec_GCJ=
+      export_dynamic_flag_spec_GCJ=
+      whole_archive_flag_spec_GCJ=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag_GCJ=unsupported
+      always_export_symbols_GCJ=yes
+      archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L_GCJ=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct_GCJ=unsupported
+      fi
+      ;;
+
+    aix[4-9]*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	  ;;
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds_GCJ=''
+      hardcode_direct_GCJ=yes
+      hardcode_libdir_separator_GCJ=':'
+      link_all_deplibs_GCJ=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  :
+	  else
+  	  # We have old collect2
+  	  hardcode_direct_GCJ=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L_GCJ=yes
+  	  hardcode_libdir_flag_spec_GCJ='-L$libdir'
+  	  hardcode_libdir_separator_GCJ=
+	  fi
+	  ;;
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+	  if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+	  fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols_GCJ=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag_GCJ='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+       hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag_GCJ="-z nodefs"
+	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag_GCJ=' ${wl}-bernotok'
+	  allow_undefined_flag_GCJ=' ${wl}-berok'
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec_GCJ='$convenience'
+	  archive_cmds_need_lc_GCJ=yes
+	  # This is similar to how AIX traditionally builds its shared libraries.
+	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs_GCJ=no
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec_GCJ=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec_GCJ=' '
+      allow_undefined_flag_GCJ=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds_GCJ='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds_GCJ='lib -OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes_GCJ=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case $host_os in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      archive_cmds_need_lc_GCJ=no
+      hardcode_direct_GCJ=no
+      hardcode_automatic_GCJ=yes
+      hardcode_shlibpath_var_GCJ=unsupported
+      whole_archive_flag_spec_GCJ=''
+      link_all_deplibs_GCJ=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        archive_cmds_GCJ="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+        module_cmds_GCJ="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+        archive_expsym_cmds_GCJ="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+        module_expsym_cmds_GCJ="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+         module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+         archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs_GCJ=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs_GCJ=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_GCJ=yes
+      hardcode_minus_L_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      hardcode_direct_GCJ=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L_GCJ=yes
+      export_dynamic_flag_spec_GCJ='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_GCJ=:
+
+	hardcode_direct_GCJ=yes
+	export_dynamic_flag_spec_GCJ='${wl}-E'
+
+	# hardcode_minus_L: Not really in the search PATH,
+	# but as the default location of the library.
+	hardcode_minus_L_GCJ=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case $host_cpu in
+	hppa*64*)
+	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	ia64*)
+	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_GCJ=:
+
+	case $host_cpu in
+	hppa*64*|ia64*)
+	  hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
+	  hardcode_direct_GCJ=no
+	  hardcode_shlibpath_var_GCJ=no
+	  ;;
+	*)
+	  hardcode_direct_GCJ=yes
+	  export_dynamic_flag_spec_GCJ='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_GCJ=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      link_all_deplibs_GCJ=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    newsos6)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_GCJ=yes
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+	hardcode_direct_GCJ=yes
+	hardcode_shlibpath_var_GCJ=no
+	if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	  archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	  archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	  hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+	  export_dynamic_flag_spec_GCJ='${wl}-E'
+	else
+	  case $host_os in
+	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	     archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	     hardcode_libdir_flag_spec_GCJ='-R$libdir'
+	     ;;
+	   *)
+	     archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	     hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+	     ;;
+	  esac
+        fi
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+      allow_undefined_flag_GCJ=unsupported
+      archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag_GCJ=' -expect_unresolved \*'
+	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag_GCJ=' -expect_unresolved \*'
+	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
+      fi
+      hardcode_libdir_separator_GCJ=:
+      ;;
+
+    solaris*)
+      no_undefined_flag_GCJ=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+	# The compiler driver will combine and reorder linker options,
+	# but understands `-z linker_flag'.  GCC discards it without `$wl',
+	# but is careful enough not to reorder.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+	if test "$GCC" = yes; then
+	  whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	else
+	  whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract'
+	fi
+	;;
+      esac
+      link_all_deplibs_GCJ=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_minus_L_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_GCJ=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds_GCJ='$CC -r -o $output$reload_objs'
+	  hardcode_direct_GCJ=no
+        ;;
+	motorola)
+	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_GCJ=no
+      export_dynamic_flag_spec_GCJ='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var_GCJ=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs_GCJ=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+      no_undefined_flag_GCJ='${wl}-z,text'
+      archive_cmds_need_lc_GCJ=no
+      hardcode_shlibpath_var_GCJ=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      no_undefined_flag_GCJ='${wl}-z,text'
+      allow_undefined_flag_GCJ='${wl}-z,nodefs'
+      archive_cmds_need_lc_GCJ=no
+      hardcode_shlibpath_var_GCJ=no
+      hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+      hardcode_libdir_separator_GCJ=':'
+      link_all_deplibs_GCJ=yes
+      export_dynamic_flag_spec_GCJ='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    *)
+      ld_shlibs_GCJ=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
+echo "${ECHO_T}$ld_shlibs_GCJ" >&6
+test "$ld_shlibs_GCJ" = no && can_build_shared=no
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_GCJ" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_GCJ=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_GCJ in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_GCJ
+	pic_flag=$lt_prog_compiler_pic_GCJ
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
+        allow_undefined_flag_GCJ=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_GCJ=no
+        else
+	  archive_cmds_need_lc_GCJ=yes
+        fi
+        allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[4-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[123]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix[3-9]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_GCJ=
+if test -n "$hardcode_libdir_flag_spec_GCJ" || \
+   test -n "$runpath_var_GCJ" || \
+   test "X$hardcode_automatic_GCJ" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_GCJ" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
+     test "$hardcode_minus_L_GCJ" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_GCJ=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_GCJ=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_GCJ=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
+echo "${ECHO_T}$hardcode_action_GCJ" >&6
+
+if test "$hardcode_action_GCJ" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_GCJ \
+    CC_GCJ \
+    LD_GCJ \
+    lt_prog_compiler_wl_GCJ \
+    lt_prog_compiler_pic_GCJ \
+    lt_prog_compiler_static_GCJ \
+    lt_prog_compiler_no_builtin_flag_GCJ \
+    export_dynamic_flag_spec_GCJ \
+    thread_safe_flag_spec_GCJ \
+    whole_archive_flag_spec_GCJ \
+    enable_shared_with_static_runtimes_GCJ \
+    old_archive_cmds_GCJ \
+    old_archive_from_new_cmds_GCJ \
+    predep_objects_GCJ \
+    postdep_objects_GCJ \
+    predeps_GCJ \
+    postdeps_GCJ \
+    compiler_lib_search_path_GCJ \
+    compiler_lib_search_dirs_GCJ \
+    archive_cmds_GCJ \
+    archive_expsym_cmds_GCJ \
+    postinstall_cmds_GCJ \
+    postuninstall_cmds_GCJ \
+    old_archive_from_expsyms_cmds_GCJ \
+    allow_undefined_flag_GCJ \
+    no_undefined_flag_GCJ \
+    export_symbols_cmds_GCJ \
+    hardcode_libdir_flag_spec_GCJ \
+    hardcode_libdir_flag_spec_ld_GCJ \
+    hardcode_libdir_separator_GCJ \
+    hardcode_automatic_GCJ \
+    module_cmds_GCJ \
+    module_expsym_cmds_GCJ \
+    lt_cv_prog_compiler_c_o_GCJ \
+    fix_srcfile_path_GCJ \
+    exclude_expsyms_GCJ \
+    include_expsyms_GCJ; do
+
+    case $var in
+    old_archive_cmds_GCJ | \
+    old_archive_from_new_cmds_GCJ | \
+    archive_cmds_GCJ | \
+    archive_expsym_cmds_GCJ | \
+    module_cmds_GCJ | \
+    module_expsym_cmds_GCJ | \
+    old_archive_from_expsyms_cmds_GCJ | \
+    export_symbols_cmds_GCJ | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_GCJ
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_GCJ
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_GCJ
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_GCJ
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_GCJ
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_GCJ
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_GCJ
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_GCJ
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_GCJ
+archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_GCJ
+module_expsym_cmds=$lt_module_expsym_cmds_GCJ
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_GCJ
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_GCJ
+
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_GCJ
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_GCJ
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_GCJ
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_GCJ
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_GCJ
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_GCJ
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_GCJ
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_GCJ
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_GCJ
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_GCJ
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_GCJ
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_GCJ
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      RC)
+
+
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+objext_RC=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm -r conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+compiler_RC=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+lt_cv_prog_compiler_c_o_RC=yes
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_RC \
+    CC_RC \
+    LD_RC \
+    lt_prog_compiler_wl_RC \
+    lt_prog_compiler_pic_RC \
+    lt_prog_compiler_static_RC \
+    lt_prog_compiler_no_builtin_flag_RC \
+    export_dynamic_flag_spec_RC \
+    thread_safe_flag_spec_RC \
+    whole_archive_flag_spec_RC \
+    enable_shared_with_static_runtimes_RC \
+    old_archive_cmds_RC \
+    old_archive_from_new_cmds_RC \
+    predep_objects_RC \
+    postdep_objects_RC \
+    predeps_RC \
+    postdeps_RC \
+    compiler_lib_search_path_RC \
+    compiler_lib_search_dirs_RC \
+    archive_cmds_RC \
+    archive_expsym_cmds_RC \
+    postinstall_cmds_RC \
+    postuninstall_cmds_RC \
+    old_archive_from_expsyms_cmds_RC \
+    allow_undefined_flag_RC \
+    no_undefined_flag_RC \
+    export_symbols_cmds_RC \
+    hardcode_libdir_flag_spec_RC \
+    hardcode_libdir_flag_spec_ld_RC \
+    hardcode_libdir_separator_RC \
+    hardcode_automatic_RC \
+    module_cmds_RC \
+    module_expsym_cmds_RC \
+    lt_cv_prog_compiler_c_o_RC \
+    fix_srcfile_path_RC \
+    exclude_expsyms_RC \
+    include_expsyms_RC; do
+
+    case $var in
+    old_archive_cmds_RC | \
+    old_archive_from_new_cmds_RC | \
+    archive_cmds_RC | \
+    archive_expsym_cmds_RC | \
+    module_cmds_RC | \
+    module_expsym_cmds_RC | \
+    old_archive_from_expsyms_cmds_RC | \
+    export_symbols_cmds_RC | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_RC
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_LTCFLAGS
+
+# A language-specific compiler.
+CC=$lt_compiler_RC
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_RC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_RC
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_RC
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_RC
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_RC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_RC
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_RC
+archive_expsym_cmds=$lt_archive_expsym_cmds_RC
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_RC
+module_expsym_cmds=$lt_module_expsym_cmds_RC
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_RC
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_RC
+
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_RC
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_RC
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_RC
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_RC
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_RC
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_RC
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_RC
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_RC
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_RC
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_RC
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path=$lt_fix_srcfile_path
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_RC
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_RC
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_RC
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_RC
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	;;
+
+      *)
+	{ { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
+echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
+   { (exit 1); exit 1; }; }
+	;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
+echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+fi
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+# Prevent multiple expansion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Checks for programs.
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	    break 3
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+done
+
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL=$ac_install_sh
+  fi
+fi
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo "$as_me:$LINENO: checking whether ln -s works" >&5
+echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+  echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+echo "${ECHO_T}no, using $LN_S" >&6
+fi
+
+echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
+if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.make <<\_ACEOF
+all:
+	@echo 'ac_maketemp="$(MAKE)"'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+  eval ac_cv_prog_make_${ac_make}_set=yes
+else
+  eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftest.make
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  SET_MAKE=
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
+# Extract the first word of "ps", so it can be a program name with args.
+set dummy ps; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PSPROG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PSPROG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PSPROG="$PSPROG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PSPROG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+PSPROG=$ac_cv_path_PSPROG
+
+if test -n "$PSPROG"; then
+  echo "$as_me:$LINENO: result: $PSPROG" >&5
+echo "${ECHO_T}$PSPROG" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PERLPROG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PERLPROG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PERLPROG="$PERLPROG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PERLPROG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+PERLPROG=$ac_cv_path_PERLPROG
+
+if test -n "$PERLPROG"; then
+  echo "$as_me:$LINENO: result: $PERLPROG" >&5
+echo "${ECHO_T}$PERLPROG" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+# Extract the first word of "python", so it can be a program name with args.
+set dummy python; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PYTHONPROG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PYTHONPROG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PYTHONPROG="$PYTHONPROG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PYTHONPROG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+PYTHONPROG=$ac_cv_path_PYTHONPROG
+
+if test -n "$PYTHONPROG"; then
+  echo "$as_me:$LINENO: result: $PYTHONPROG" >&5
+echo "${ECHO_T}$PYTHONPROG" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+for ac_prog in whoami logname
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_WHOAMI+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$WHOAMI"; then
+  ac_cv_prog_WHOAMI="$WHOAMI" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_WHOAMI="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+WHOAMI=$ac_cv_prog_WHOAMI
+if test -n "$WHOAMI"; then
+  echo "$as_me:$LINENO: result: $WHOAMI" >&5
+echo "${ECHO_T}$WHOAMI" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$WHOAMI" && break
+done
+test -n "$WHOAMI" || WHOAMI="whoami"
+
+for ac_prog in sed gsed
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_SED+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$SED"; then
+  ac_cv_prog_SED="$SED" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_SED="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+SED=$ac_cv_prog_SED
+if test -n "$SED"; then
+  echo "$as_me:$LINENO: result: $SED" >&5
+echo "${ECHO_T}$SED" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$SED" && break
+done
+
+for ac_prog in find
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_FIND+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$FIND"; then
+  ac_cv_prog_FIND="$FIND" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_FIND="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+FIND=$ac_cv_prog_FIND
+if test -n "$FIND"; then
+  echo "$as_me:$LINENO: result: $FIND" >&5
+echo "${ECHO_T}$FIND" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$FIND" && break
+done
+
+# Extract the first word of "autoconf", so it can be a program name with args.
+set dummy autoconf; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_AUTOCONF+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $AUTOCONF in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_AUTOCONF="$AUTOCONF" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_AUTOCONF="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+AUTOCONF=$ac_cv_path_AUTOCONF
+
+if test -n "$AUTOCONF"; then
+  echo "$as_me:$LINENO: result: $AUTOCONF" >&5
+echo "${ECHO_T}$AUTOCONF" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+# Extract the first word of "autoheader", so it can be a program name with args.
+set dummy autoheader; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_AUTOHEADER+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $AUTOHEADER in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_AUTOHEADER="$AUTOHEADER" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_AUTOHEADER="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+AUTOHEADER=$ac_cv_path_AUTOHEADER
+
+if test -n "$AUTOHEADER"; then
+  echo "$as_me:$LINENO: result: $AUTOHEADER" >&5
+echo "${ECHO_T}$AUTOHEADER" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test "x$ac_cv_prog_AUTOCONF" = "x"; then
+	AUTOCONF=":"
+
+fi
+if test "x$ac_cv_prog_AUTOHEADER" = "x"; then
+	AUTOHEADER=":"
+
+fi
+
+# Extract the first word of "uname", so it can be a program name with args.
+set dummy uname; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_UNAMEPROG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $UNAMEPROG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_UNAMEPROG="$UNAMEPROG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_UNAMEPROG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+UNAMEPROG=$ac_cv_path_UNAMEPROG
+
+if test -n "$UNAMEPROG"; then
+  echo "$as_me:$LINENO: result: $UNAMEPROG" >&5
+echo "${ECHO_T}$UNAMEPROG" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define UNAMEPROG "$UNAMEPROG"
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
+echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+if test "${ac_cv_c_const+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+  /* Ultrix mips cc rejects this.  */
+  typedef int charset[2];
+  const charset x;
+  /* SunOS 4.1.1 cc rejects this.  */
+  char const *const *ccp;
+  char **p;
+  /* NEC SVR4.0.2 mips cc rejects this.  */
+  struct point {int x, y;};
+  static struct point const zero = {0,0};
+  /* AIX XL C 1.02.0.0 rejects this.
+     It does not let you subtract one const X* pointer from another in
+     an arm of an if-expression whose if-part is not a constant
+     expression */
+  const char *g = "string";
+  ccp = &g + (g ? g-g : 0);
+  /* HPUX 7.0 cc rejects these. */
+  ++ccp;
+  p = (char**) ccp;
+  ccp = (char const *const *) p;
+  { /* SCO 3.2v4 cc rejects this.  */
+    char *t;
+    char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+    *t++ = 0;
+  }
+  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+    int x[] = {25, 17};
+    const int *foo = &x[0];
+    ++foo;
+  }
+  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+    typedef const int *iptr;
+    iptr p = 0;
+    ++p;
+  }
+  { /* AIX XL C 1.02.0.0 rejects this saying
+       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+    struct s { int j; const int *ap[3]; };
+    struct s *b; b->j = 5;
+  }
+  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+    const int foo = 10;
+  }
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_const=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_c_const=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
+echo "${ECHO_T}$ac_cv_c_const" >&6
+if test $ac_cv_c_const = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define const
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for inline" >&5
+echo $ECHO_N "checking for inline... $ECHO_C" >&6
+if test "${ac_cv_c_inline+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_inline=$ac_kw; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
+echo "${ECHO_T}$ac_cv_c_inline" >&6
+
+
+case $ac_cv_c_inline in
+  inline | yes) ;;
+  *)
+    case $ac_cv_c_inline in
+      no) ac_val=;;
+      *) ac_val=$ac_cv_c_inline;;
+    esac
+    cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+    ;;
+esac
+
+
+
+# get version number.
+echo "$as_me:$LINENO: checking for net-snmp version number" >&5
+echo $ECHO_N "checking for net-snmp version number... $ECHO_C" >&6
+VERSION=`grep NetSnmpVersionInfo.*= $srcdir/snmplib/snmp_version.c | sed 's/";.*//;s/.*"//;'`
+
+# create the release version number....  I'm not sure this is used
+# anywhere any longer.
+_release_version=`echo $VERSION | sed 's/";.*//;s/.*"//;s/pre/0./;'`
+
+RELEASEVERSION=`echo $_release_version | sed 's/^\([0-9]\)\.\([0-9]\)/\1:\2:0/'`
+
+
+
+
+echo "$as_me:$LINENO: result: $VERSION" >&5
+echo "${ECHO_T}$VERSION" >&6
+
+  cat >> configure-summary << EOF
+  Net-SNMP Version:           $VERSION
+EOF
+
+
+# super type checking
+# WWWXXX
+echo "$as_me:$LINENO: checking for developer gcc flags" >&5
+echo $ECHO_N "checking for developer gcc flags... $ECHO_C" >&6
+if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
+  DEVFLAGS="-Wall -Winline -Wstrict-prototypes -Wwrite-strings -Wcast-qual -Wno-char-subscripts"
+else
+  DEVFLAGS=""
+fi
+echo "$as_me:$LINENO: result: $DEVFLAGS" >&5
+echo "${ECHO_T}$DEVFLAGS" >&6
+
+
+#
+# hacks for building outside of the source directory
+#
+# 1) make sure build include paths are before source
+# 2) check for GNU make to use vpath instead of VPATH
+#
+NON_GNU_VPATH="VPATH ="
+GNU_vpath="#vpath"
+#
+# define include paths relative to top_srcdir
+# tweak includes if we're building outside of the source dir
+if test "x$srcdir" = "x."; then
+TOP_INCLUDES=SRC_TOP_INCLUDES
+SNMPLIB_INCLUDES=SRC_SNMPLIB_INCLUDES
+AGENT_INCLUDES=SRC_AGENT_INCLUDES
+HELPER_INCLUDES=SRC_HELPER_INCLUDES
+MIBGROUP_INCLUDES=SRC_MIBGROUP_INCLUDES
+else
+TOP_INCLUDES=BLD_TOP_INCLUDES
+SNMPLIB_INCLUDES=BLD_SNMPLIB_INCLUDES
+AGENT_INCLUDES=BLD_AGENT_INCLUDES
+HELPER_INCLUDES=BLD_HELPER_INCLUDES
+MIBGROUP_INCLUDES=BLD_MIBGROUP_INCLUDES
+make -v -f /dev/null 2>/dev/null | grep GNU >/dev/null
+have_gnu_make=$?
+if test $have_gnu_make -eq 0 ; then
+    NON_GNU_VPATH="#VPATH ="
+    GNU_vpath="vpath"
+fi
+fi
+
+
+
+
+
+
+
+
+
+#
+# Check whether we can use -Ux -Dx=x with the expected behaviour
+#
+echo "$as_me:$LINENO: checking whether to un-define target system token (before redefining)" >&5
+echo $ECHO_N "checking whether to un-define target system token (before redefining)... $ECHO_C" >&6
+OLD_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="-U$PARTIALTARGETOS -D$PARTIALTARGETOS=$PARTIALTARGETOS"
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+[
+#ifdef $PARTIALTARGETOS
+yes
+#endif
+]
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  PARTIALTARGETFLAGS="-U$PARTIALTARGETOS -D$PARTIALTARGETOS=$PARTIALTARGETOS"
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+  PARTIALTARGETFLAGS="-D$PARTIALTARGETOS=$PARTIALTARGETOS"
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+rm -f conftest*
+
+CFLAGS="$CFLAGS $PARTIALTARGETFLAGS"
+CPPFLAGS="$OLD_CPPFLAGS"
+
+  cat >> configure-summary << EOF
+  Building for:               $PARTIALTARGETOS
+EOF
+
+
+
+#
+# check for special includes and pick one
+#
+
+echo "$as_me:$LINENO: checking for system include file" >&5
+echo $ECHO_N "checking for system include file... $ECHO_C" >&6
+
+filebase=$target_os
+# ignore binary format indication
+filebase=`echo $filebase | sed 's/elf//'`
+filebase=`echo $filebase | sed 's/aout//'`
+filebase=`echo $filebase | sed 's/ecoff//'`
+filebase=`echo $filebase | sed 's/coff//'`
+while test "x$filebase" != "x$last" -a ! -f $srcdir/include/net-snmp/system/$filebase.h
+do
+    last=$filebase
+    filebase=`echo $filebase | sed 's/[-._][^-._]*$//'`
+    if test "x$filebase" = "x$last"; then
+	filebase=`echo $filebase | sed 's/[0-9]*$//'`
+    fi
+done
+
+if test "x$filebase" = "x$last"; then
+    filebase="generic"
+fi
+ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE="net-snmp/system/$filebase.h"
+
+
+echo "$as_me:$LINENO: result: $ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE" >&5
+echo "${ECHO_T}$ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE" >&6
+cat >>confdefs.h <<_ACEOF
+#define NETSNMP_SYSTEM_INCLUDE_FILE "$ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE"
+_ACEOF
+
+
+# second part, the CPU type.
+
+echo "$as_me:$LINENO: checking for machine-type include file" >&5
+echo $ECHO_N "checking for machine-type include file... $ECHO_C" >&6
+
+filebase=$target_cpu
+while test "x$filebase" != "x$last" -a ! -f $srcdir/include/net-snmp/machine/$filebase.h
+do
+    last=$filebase
+    filebase=`echo $filebase | sed 's/[-._][^-._]*$//'`
+done
+
+if test "x$filebase" = "x$last"; then
+    filebase="generic"
+fi
+ac_cv_NETSNMP_MACHINE_INCLUDE_FILE="net-snmp/machine/$filebase.h"
+
+echo "$as_me:$LINENO: result: $ac_cv_NETSNMP_MACHINE_INCLUDE_FILE" >&5
+echo "${ECHO_T}$ac_cv_NETSNMP_MACHINE_INCLUDE_FILE" >&6
+
+cat >>confdefs.h <<_ACEOF
+#define NETSNMP_MACHINE_INCLUDE_FILE "$ac_cv_NETSNMP_MACHINE_INCLUDE_FILE"
+_ACEOF
+
+
+# Extract the first word of "$CC", so it can be a program name with args.
+set dummy $CC; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_CCPATH+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $CCPATH in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_CCPATH="$CCPATH" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_CCPATH="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+CCPATH=$ac_cv_path_CCPATH
+
+if test -n "$CCPATH"; then
+  echo "$as_me:$LINENO: result: $CCPATH" >&5
+echo "${ECHO_T}$CCPATH" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+# watch out for /usr/ucb/cc on solaris, it doesn't work with this package.
+case $target_os in
+    bsdi*)
+	if test "x$CCPATH" = "x/usr/ucb/cc" -o "x$CCPATH" = "x/usr/bin/cc"; then
+	    { { echo "$as_me:$LINENO: error:
+
+*** The BSDI /usr/ucb/cc compiler does not work with this package.
+*** Please run configure with --with-cc=gcc
+" >&5
+echo "$as_me: error:
+
+*** The BSDI /usr/ucb/cc compiler does not work with this package.
+*** Please run configure with --with-cc=gcc
+" >&2;}
+   { (exit 1); exit 1; }; }
+	fi
+    ;;
+    solaris*)
+	if test "x$CCPATH" = "x/usr/ucb/cc"; then
+	    { { echo "$as_me:$LINENO: error:
+
+*** The solaris /usr/ucb/cc compiler does not work with this package.
+*** Please put a different compiler in your path first or run
+*** configure with --with-cc=XX, where XX is the compiler you want to use.
+" >&5
+echo "$as_me: error:
+
+*** The solaris /usr/ucb/cc compiler does not work with this package.
+*** Please put a different compiler in your path first or run
+*** configure with --with-cc=XX, where XX is the compiler you want to use.
+" >&2;}
+   { (exit 1); exit 1; }; }
+	fi
+    ;;
+esac
+
+echo "$as_me:$LINENO: checking for additional cpp flags" >&5
+echo $ECHO_N "checking for additional cpp flags... $ECHO_C" >&6
+# gcc extra CPPFLAGS
+if test "x$GCC" = "xyes" -a "x$CPP" = "x$CC -E"; then
+  # extra cpp flags for gnu c compiler to allow .in file extensions.
+  EXTRACPPFLAGS="-x c"
+else
+  EXTRACPPFLAGS=""
+fi
+
+# Solaris extra cpp flags.
+if test "x$GCC" != "xyes"; then
+  case $target_os in
+    solaris*) EXTRACPPFLAGS="$EXTRACPPFLAGS -Xs" ;;
+  esac
+fi
+
+
+echo "$as_me:$LINENO: result: $EXTRACPPFLAGS" >&5
+echo "${ECHO_T}$EXTRACPPFLAGS" >&6
+
+# Prefixes must begin with "/" or [A-Z] followed by colon.
+
+if test "x$prefix" = "xNONE"; then
+  prefix=/usr/local
+fi
+
+fch=`echo $prefix | sed 's/\(.\).*/\1/'`
+if test "x$fch" != "x/" ; then
+   sch=`echo $prefix | sed 's/.\(.\).*/\1/'`
+   if test "x$sch" != "x:" ; then
+      prefix=`pwd`/$prefix
+      echo "adjusting prefix to $prefix"
+   fi
+fi
+
+if test "x$exec_prefix" = "xNONE"; then
+  exec_prefix=$prefix
+fi
+
+fch=`echo $exec_prefix | sed 's/\(.\).*/\1/'`
+if test "x$fch" != "x/" ; then
+   sch=`echo $exec_prefix | sed 's/.\(.\).*/\1/'`
+   if test "x$sch" != "x:" ; then
+      exec_prefix=`pwd`/$exec_prefix
+      echo "adjusting exec_prefix to $exec_prefix"
+   fi
+fi
+
+# Set SNMPLIBPATH & SNMPSHAREPATH
+
+SNMPLIBPATH=""
+tmpset="$libdir/snmp"
+while test "x$tmpset" != "x$SNMPLIBPATH"; do
+  SNMPLIBPATH="$tmpset"
+  eval tmpset="$tmpset"
+done
+cat >>confdefs.h <<_ACEOF
+#define SNMPLIBPATH "$SNMPLIBPATH"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define SNMPDLMODPATH "$SNMPLIBPATH/dlmod"
+_ACEOF
+
+
+SNMPSHAREPATH=""
+tmpset="$datadir/snmp"
+while test "x$tmpset" != "x$SNMPSHAREPATH"; do
+  SNMPSHAREPATH="$tmpset"
+  eval tmpset="$tmpset"
+done
+cat >>confdefs.h <<_ACEOF
+#define SNMPSHAREPATH "$SNMPSHAREPATH"
+_ACEOF
+
+
+
+if test "x$NETSNMP_DEFAULT_MIBDIRS" = "x"; then
+  NETSNMP_DEFAULT_MIBDIRS="\$HOME/.snmp/mibs:$SNMPSHAREPATH/mibs"
+  if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
+    NETSNMP_DEFAULT_MIBDIRS=`echo "$NETSNMP_DEFAULT_MIBDIRS" | $SED 's/:/;/g'`
+  fi
+  cat >>confdefs.h <<_ACEOF
+#define NETSNMP_DEFAULT_MIBDIRS "$NETSNMP_DEFAULT_MIBDIRS"
+_ACEOF
+
+fi
+
+
+SNMPCONFPATH=""
+tmpset="$sysconfdir/snmp"
+while test "x$tmpset" != "x$SNMPCONFPATH"; do
+  SNMPCONFPATH="$tmpset"
+  eval tmpset="$tmpset"
+done
+cat >>confdefs.h <<_ACEOF
+#define SNMPCONFPATH "$SNMPCONFPATH"
+_ACEOF
+
+
+
+echo "$as_me:$LINENO: checking for short" >&5
+echo $ECHO_N "checking for short... $ECHO_C" >&6
+if test "${ac_cv_type_short+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((short *) 0)
+  return 0;
+if (sizeof (short))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_short=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_short=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5
+echo "${ECHO_T}$ac_cv_type_short" >&6
+
+echo "$as_me:$LINENO: checking size of short" >&5
+echo $ECHO_N "checking size of short... $ECHO_C" >&6
+if test "${ac_cv_sizeof_short+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_short" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_short=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (short)); }
+unsigned long ulongval () { return (long) (sizeof (short)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (short))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (short))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (short))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_short=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_short=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5
+echo "${ECHO_T}$ac_cv_sizeof_short" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_SHORT $ac_cv_sizeof_short
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking for int" >&5
+echo $ECHO_N "checking for int... $ECHO_C" >&6
+if test "${ac_cv_type_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((int *) 0)
+  return 0;
+if (sizeof (int))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_int=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_int=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5
+echo "${ECHO_T}$ac_cv_type_int" >&6
+
+echo "$as_me:$LINENO: checking size of int" >&5
+echo $ECHO_N "checking size of int... $ECHO_C" >&6
+if test "${ac_cv_sizeof_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_int" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_int=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (int)); }
+unsigned long ulongval () { return (long) (sizeof (int)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (int))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (int))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (int))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_int=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_int=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
+echo "${ECHO_T}$ac_cv_sizeof_int" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking for long" >&5
+echo $ECHO_N "checking for long... $ECHO_C" >&6
+if test "${ac_cv_type_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((long *) 0)
+  return 0;
+if (sizeof (long))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_long=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_long=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5
+echo "${ECHO_T}$ac_cv_type_long" >&6
+
+echo "$as_me:$LINENO: checking size of long" >&5
+echo $ECHO_N "checking size of long... $ECHO_C" >&6
+if test "${ac_cv_sizeof_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_long" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_long=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (long)); }
+unsigned long ulongval () { return (long) (sizeof (long)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (long))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (long))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (long))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_long=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_long=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5
+echo "${ECHO_T}$ac_cv_sizeof_long" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking for long long" >&5
+echo $ECHO_N "checking for long long... $ECHO_C" >&6
+if test "${ac_cv_type_long_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((long long *) 0)
+  return 0;
+if (sizeof (long long))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_long_long=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_long_long=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5
+echo "${ECHO_T}$ac_cv_type_long_long" >&6
+
+echo "$as_me:$LINENO: checking size of long long" >&5
+echo $ECHO_N "checking size of long long... $ECHO_C" >&6
+if test "${ac_cv_sizeof_long_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_long_long" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long long))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_long_long=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (long long)); }
+unsigned long ulongval () { return (long) (sizeof (long long)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (long long))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (long long))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (long long))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_long_long=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_long_long=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5
+echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking for intmax_t" >&5
+echo $ECHO_N "checking for intmax_t... $ECHO_C" >&6
+if test "${ac_cv_type_intmax_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((intmax_t *) 0)
+  return 0;
+if (sizeof (intmax_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_intmax_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_intmax_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_intmax_t" >&5
+echo "${ECHO_T}$ac_cv_type_intmax_t" >&6
+
+echo "$as_me:$LINENO: checking size of intmax_t" >&5
+echo $ECHO_N "checking size of intmax_t... $ECHO_C" >&6
+if test "${ac_cv_sizeof_intmax_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_intmax_t" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (intmax_t))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (intmax_t))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (intmax_t))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (intmax_t))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (intmax_t))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_intmax_t=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (intmax_t), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (intmax_t), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (intmax_t)); }
+unsigned long ulongval () { return (long) (sizeof (intmax_t)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (intmax_t))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (intmax_t))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (intmax_t))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_intmax_t=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (intmax_t), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (intmax_t), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_intmax_t=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_intmax_t" >&5
+echo "${ECHO_T}$ac_cv_sizeof_intmax_t" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INTMAX_T $ac_cv_sizeof_intmax_t
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking for int8_t" >&5
+echo $ECHO_N "checking for int8_t... $ECHO_C" >&6
+if test "${ac_cv_type_int8_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((int8_t *) 0)
+  return 0;
+if (sizeof (int8_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_int8_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_int8_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_int8_t" >&5
+echo "${ECHO_T}$ac_cv_type_int8_t" >&6
+if test $ac_cv_type_int8_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_INT8_T 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for uint8_t" >&5
+echo $ECHO_N "checking for uint8_t... $ECHO_C" >&6
+if test "${ac_cv_type_uint8_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((uint8_t *) 0)
+  return 0;
+if (sizeof (uint8_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_uint8_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_uint8_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_uint8_t" >&5
+echo "${ECHO_T}$ac_cv_type_uint8_t" >&6
+if test $ac_cv_type_uint8_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_UINT8_T 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for u_int8_t" >&5
+echo $ECHO_N "checking for u_int8_t... $ECHO_C" >&6
+if test "${ac_cv_type_u_int8_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((u_int8_t *) 0)
+  return 0;
+if (sizeof (u_int8_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_u_int8_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_u_int8_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_u_int8_t" >&5
+echo "${ECHO_T}$ac_cv_type_u_int8_t" >&6
+if test $ac_cv_type_u_int8_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_U_INT8_T 1
+_ACEOF
+
+
+fi
+
+echo "$as_me:$LINENO: checking for int16_t" >&5
+echo $ECHO_N "checking for int16_t... $ECHO_C" >&6
+if test "${ac_cv_type_int16_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((int16_t *) 0)
+  return 0;
+if (sizeof (int16_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_int16_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_int16_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_int16_t" >&5
+echo "${ECHO_T}$ac_cv_type_int16_t" >&6
+if test $ac_cv_type_int16_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_INT16_T 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for uint16_t" >&5
+echo $ECHO_N "checking for uint16_t... $ECHO_C" >&6
+if test "${ac_cv_type_uint16_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((uint16_t *) 0)
+  return 0;
+if (sizeof (uint16_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_uint16_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_uint16_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_uint16_t" >&5
+echo "${ECHO_T}$ac_cv_type_uint16_t" >&6
+if test $ac_cv_type_uint16_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_UINT16_T 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for u_int16_t" >&5
+echo $ECHO_N "checking for u_int16_t... $ECHO_C" >&6
+if test "${ac_cv_type_u_int16_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((u_int16_t *) 0)
+  return 0;
+if (sizeof (u_int16_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_u_int16_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_u_int16_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_u_int16_t" >&5
+echo "${ECHO_T}$ac_cv_type_u_int16_t" >&6
+if test $ac_cv_type_u_int16_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_U_INT16_T 1
+_ACEOF
+
+
+fi
+
+echo "$as_me:$LINENO: checking for int32_t" >&5
+echo $ECHO_N "checking for int32_t... $ECHO_C" >&6
+if test "${ac_cv_type_int32_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((int32_t *) 0)
+  return 0;
+if (sizeof (int32_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_int32_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_int32_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_int32_t" >&5
+echo "${ECHO_T}$ac_cv_type_int32_t" >&6
+if test $ac_cv_type_int32_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_INT32_T 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for uint32_t" >&5
+echo $ECHO_N "checking for uint32_t... $ECHO_C" >&6
+if test "${ac_cv_type_uint32_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((uint32_t *) 0)
+  return 0;
+if (sizeof (uint32_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_uint32_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_uint32_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_uint32_t" >&5
+echo "${ECHO_T}$ac_cv_type_uint32_t" >&6
+if test $ac_cv_type_uint32_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_UINT32_T 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for u_int32_t" >&5
+echo $ECHO_N "checking for u_int32_t... $ECHO_C" >&6
+if test "${ac_cv_type_u_int32_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((u_int32_t *) 0)
+  return 0;
+if (sizeof (u_int32_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_u_int32_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_u_int32_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_u_int32_t" >&5
+echo "${ECHO_T}$ac_cv_type_u_int32_t" >&6
+if test $ac_cv_type_u_int32_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_U_INT32_T 1
+_ACEOF
+
+
+fi
+
+echo "$as_me:$LINENO: checking for int64_t" >&5
+echo $ECHO_N "checking for int64_t... $ECHO_C" >&6
+if test "${ac_cv_type_int64_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((int64_t *) 0)
+  return 0;
+if (sizeof (int64_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_int64_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_int64_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_int64_t" >&5
+echo "${ECHO_T}$ac_cv_type_int64_t" >&6
+if test $ac_cv_type_int64_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_INT64_T 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for uint64_t" >&5
+echo $ECHO_N "checking for uint64_t... $ECHO_C" >&6
+if test "${ac_cv_type_uint64_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((uint64_t *) 0)
+  return 0;
+if (sizeof (uint64_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_uint64_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_uint64_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_uint64_t" >&5
+echo "${ECHO_T}$ac_cv_type_uint64_t" >&6
+if test $ac_cv_type_uint64_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_UINT64_T 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for u_int64_t" >&5
+echo $ECHO_N "checking for u_int64_t... $ECHO_C" >&6
+if test "${ac_cv_type_u_int64_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((u_int64_t *) 0)
+  return 0;
+if (sizeof (u_int64_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_u_int64_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_u_int64_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_u_int64_t" >&5
+echo "${ECHO_T}$ac_cv_type_u_int64_t" >&6
+if test $ac_cv_type_u_int64_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_U_INT64_T 1
+_ACEOF
+
+
+fi
+
+echo "$as_me:$LINENO: checking for intmax_t" >&5
+echo $ECHO_N "checking for intmax_t... $ECHO_C" >&6
+if test "${ac_cv_type_intmax_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((intmax_t *) 0)
+  return 0;
+if (sizeof (intmax_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_intmax_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_intmax_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_intmax_t" >&5
+echo "${ECHO_T}$ac_cv_type_intmax_t" >&6
+if test $ac_cv_type_intmax_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_INTMAX_T 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for uintmax_t" >&5
+echo $ECHO_N "checking for uintmax_t... $ECHO_C" >&6
+if test "${ac_cv_type_uintmax_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((uintmax_t *) 0)
+  return 0;
+if (sizeof (uintmax_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_uintmax_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_uintmax_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_uintmax_t" >&5
+echo "${ECHO_T}$ac_cv_type_uintmax_t" >&6
+if test $ac_cv_type_uintmax_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_UINTMAX_T 1
+_ACEOF
+
+
+fi
+
+echo "$as_me:$LINENO: checking for off64_t" >&5
+echo $ECHO_N "checking for off64_t... $ECHO_C" >&6
+if test "${ac_cv_type_off64_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((off64_t *) 0)
+  return 0;
+if (sizeof (off64_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_off64_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_off64_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_off64_t" >&5
+echo "${ECHO_T}$ac_cv_type_off64_t" >&6
+if test $ac_cv_type_off64_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_OFF64_T 1
+_ACEOF
+
+
+fi
+
+echo "$as_me:$LINENO: checking for uintptr_t" >&5
+echo $ECHO_N "checking for uintptr_t... $ECHO_C" >&6
+if test "${ac_cv_type_uintptr_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((uintptr_t *) 0)
+  return 0;
+if (sizeof (uintptr_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_uintptr_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_uintptr_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_uintptr_t" >&5
+echo "${ECHO_T}$ac_cv_type_uintptr_t" >&6
+if test $ac_cv_type_uintptr_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_UINTPTR_T 1
+_ACEOF
+
+
+fi
+echo "$as_me:$LINENO: checking for intptr_t" >&5
+echo $ECHO_N "checking for intptr_t... $ECHO_C" >&6
+if test "${ac_cv_type_intptr_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((intptr_t *) 0)
+  return 0;
+if (sizeof (intptr_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_intptr_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_intptr_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_intptr_t" >&5
+echo "${ECHO_T}$ac_cv_type_intptr_t" >&6
+if test $ac_cv_type_intptr_t = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_INTPTR_T 1
+_ACEOF
+
+
+fi
+
+
+# solaris specific type
+echo "$as_me:$LINENO: checking for Counter64" >&5
+echo $ECHO_N "checking for Counter64... $ECHO_C" >&6
+if test "${ac_cv_type_Counter64+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <inet/mib2.h>
+
+int
+main ()
+{
+if ((Counter64 *) 0)
+  return 0;
+if (sizeof (Counter64))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_Counter64=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_Counter64=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_Counter64" >&5
+echo "${ECHO_T}$ac_cv_type_Counter64" >&6
+if test $ac_cv_type_Counter64 = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_COUNTER64 1
+_ACEOF
+
+
+fi
+
+
+# guess IPv6 stack type.
+if test "x$enable_ipv6" = "xyes"; then
+	v6type=unknown
+	v6lib=none
+	v6trylibc=no
+
+	echo "$as_me:$LINENO: checking ipv6 stack type" >&5
+echo $ECHO_N "checking ipv6 stack type... $ECHO_C" >&6
+	for i in v6d toshiba kame inria zeta linux-glibc linux-inet6 generic; do
+		case $i in
+		v6d)
+			cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include </usr/local/v6/include/sys/types.h>
+#ifdef __V6D__
+yes
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  v6type=$i; v6lib=v6;
+				v6libdir=/usr/local/v6/lib;
+				CFLAGS="-I/usr/local/v6/include $CFLAGS"
+fi
+rm -f conftest*
+
+			;;
+		toshiba)
+			cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <sys/param.h>
+#ifdef _TOSHIBA_INET6
+yes
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  v6type=$i; v6lib=inet6;
+				v6libdir=/usr/local/v6/lib;
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
+fi
+rm -f conftest*
+
+			;;
+		kame)
+			cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <netinet/in.h>
+#ifdef __KAME__
+yes
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  v6type=$i; v6lib=inet6;
+				v6libdir=/usr/local/v6/lib;
+				v6trylibc=yes;
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
+fi
+rm -f conftest*
+
+			;;
+		inria)
+			cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <netinet/in.h>
+#ifdef IPV6_INRIA_VERSION
+yes
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  v6type=$i;
+				v6lib=dummy;
+				v6libdir=none;
+				v6trylibc=yes;
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
+fi
+rm -f conftest*
+
+			;;
+		zeta)
+			cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <sys/param.h>
+#ifdef _ZETA_MINAMI_INET6
+A
+yes
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  v6type=$i; v6lib=inet6;
+				v6libdir=/usr/local/v6/lib;
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
+fi
+rm -f conftest*
+
+			;;
+		linux-glibc)
+			cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <features.h>
+#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC_ > 2))
+yes
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "yes" >/dev/null 2>&1; then
+  v6type=$i;
+				v6lib=dummy;
+				v6libdir=none;
+				v6trylibc=yes;
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
+fi
+rm -f conftest*
+
+			;;
+		linux-inet6)
+			if test -d /usr/inet6; then
+				v6type=$i
+				v6lib=inet6
+				v6libdir=/usr/inet6/lib
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
+			fi
+			;;
+		generic)
+                        echo "$as_me:$LINENO: result: postponed" >&5
+echo "${ECHO_T}postponed" >&6
+
+
+ac_safe_struct=`echo "sockaddr_in6" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "sin6_addr" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for sockaddr_in6.sin6_addr" >&5
+echo $ECHO_N "checking for sockaddr_in6.sin6_addr... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "xno" = "x"; then
+  defineit="= 0"
+elif test "xno" = "xno"; then
+  defineit=""
+else
+  defineit="no"
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+
+int
+main ()
+{
+
+struct sockaddr_in6 testit;
+testit.sin6_addr $defineit;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+
+
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
+
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+	                echo "$as_me:$LINENO: checking ipv6 stack type" >&5
+echo $ECHO_N "checking ipv6 stack type... $ECHO_C" >&6
+                        if test "x$ac_cv_struct_sockaddr_in6_has_sin6_addr" = "xyes"; then
+				v6type=$i
+				v6lib=dummy
+				v6libdir=none
+				v6trylibc=yes
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
+                        fi
+			;;
+		esac
+		if test "$v6type" != "unknown"; then
+			break
+		fi
+	done
+
+	if test "$v6lib" != "none"; then
+		if test -d $v6libdir -a -f $v6libdir/lib$v6lib.a; then
+			LIBS="-L$v6libdir -l$v6lib $LIBS"
+			enable_ipv6="yes"
+			echo "$as_me:$LINENO: result: \"$v6type, $enable_ipv6, using lib$v6lib\"" >&5
+echo "${ECHO_T}\"$v6type, $enable_ipv6, using lib$v6lib\"" >&6
+		elif test "$v6trylibc" = "yes"; then
+			enable_ipv6="yes"
+			echo "$as_me:$LINENO: result: \"$v6type, $enable_ipv6, using libc\"" >&5
+echo "${ECHO_T}\"$v6type, $enable_ipv6, using libc\"" >&6
+		else
+			{ { echo "$as_me:$LINENO: error: no IPv6 library lib$v6lib.a found." >&5
+echo "$as_me: error: no IPv6 library lib$v6lib.a found." >&2;}
+   { (exit 1); exit 1; }; }
+			exit 1
+		fi
+	else
+		enable_ipv6="no"
+		echo "$as_me:$LINENO: result: \"$v6type, $enable_ipv6\"" >&5
+echo "${ECHO_T}\"$v6type, $enable_ipv6\"" >&6
+	fi
+fi
+
+#
+# Maybe add library extensions for thread mutex locking.
+#
+
+if test "x$with_res_locks" = "xyes"; then
+  cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_REENTRANT 1
+_ACEOF
+
+
+    case $target_os in
+
+    aix*)
+	CC_RUNTIME_ARG="$CC_RUNTIME_ARG -lpthreads"
+	;;
+
+    *)
+	;;
+
+    esac
+fi
+
+#
+# Add platform-specific source files.
+#
+echo "$as_me:$LINENO: checking for platform-specific source" >&5
+echo $ECHO_N "checking for platform-specific source... $ECHO_C" >&6
+other_src_list=""
+other_objs_list=""
+other_lobjs_list=""
+other_agentobjs=""
+other_lagentobjs=""
+other_trapd_objects=""
+
+# Win32 service code
+if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
+  other_src_list="$other_src_list winservice.c winservicerc.rc"
+  other_objs_list="$other_objs_list winservice.o winservicerc.o"
+  other_lobjs_list="$other_lobjs_list winservice.lo winservicerc.lo"
+  other_agentobjs="../snmplib/winservicerc.o"
+  other_lagentobjs="../snmplib/winservicerc.lo"
+  other_trapd_objects="../snmplib/winservicerc.o"
+fi
+
+# Win32 pipes
+if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
+  other_src_list="$other_src_list winpipe.c"
+  other_objs_list="$other_objs_list winpipe.o"
+  other_lobjs_list="$other_lobjs_list winpipe.lo"
+fi
+
+
+
+
+
+
+
+
+echo "$as_me:$LINENO: result: $other_src_list $other_objs_list $other_lobjs_list" >&5
+echo "${ECHO_T}$other_src_list $other_objs_list $other_lobjs_list" >&6
+echo "$as_me:$LINENO: result: $other_agentobjs $other_lagentobjs $other_trapd_objects" >&5
+echo "${ECHO_T}$other_agentobjs $other_lagentobjs $other_trapd_objects" >&6
+
+#
+# Do transport module processing.
+#
+echo "$as_me:$LINENO: checking for and configuring transport modules to use" >&5
+echo $ECHO_N "checking for and configuring transport modules to use... $ECHO_C" >&6
+transport_src_list=""
+transport_hdr_list=""
+transport_def_list=""
+transport_result_list=""
+transport_add_list=""
+transport_callback_disabled=""
+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" = "xcygwin"; then
+  transport_default_list="UDP TCP Callback"
+elif test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
+  transport_default_list="UDP TCP Callback"
+else
+  transport_default_list="UDP TCP 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
+      { { echo "$as_me:$LINENO: error: It is not possible to compile without UDP/IP support." >&5
+echo "$as_me: error: It is not possible to compile without UDP/IP support." >&2;}
+   { (exit 1); exit 1; }; }
+    elif test "x$i" = "xCallback"; then
+      echo
+      transport_callback_disabled="yes"
+    fi
+  else
+    if test "x$i" = "xAAL5PVC"; then
+      if test "x$PARTIALTARGETOS" != "xlinux"; then
+        echo
+        { { echo "$as_me:$LINENO: error: AAL5 PVC support unavailable for this platform (Linux only)" >&5
+echo "$as_me: error: AAL5 PVC support unavailable for this platform (Linux only)" >&2;}
+   { (exit 1); exit 1; }; }
+      fi
+    fi
+    if test "x$i" = "xIPX"; then
+      if test "x$PARTIALTARGETOS" != "xlinux"; then
+        echo
+        { { echo "$as_me:$LINENO: error: IPX support unavailable for this platform (Linux only)" >&5
+echo "$as_me: error: IPX support unavailable for this platform (Linux only)" >&2;}
+   { (exit 1); exit 1; }; }
+      fi
+    fi
+    if test "x$i" = "xUnix"; then
+      if test "x$PARTIALTARGETOS" = "xcygwin"; then
+        echo
+        { { echo "$as_me:$LINENO: error: Unix domain protocol support unavailable for this platform" >&5
+echo "$as_me: error: Unix domain protocol support unavailable for this platform" >&2;}
+   { (exit 1); exit 1; }; }
+      elif test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
+        echo
+        { { echo "$as_me:$LINENO: error: Unix domain protocol support unavailable for this platform" >&5
+echo "$as_me: error: Unix domain protocol support unavailable for this platform" >&2;}
+   { (exit 1); exit 1; }; }
+      fi
+    fi
+    if test ! "x$enable_ipv6" = "xyes"; then
+        if test "x$i" = "xUDPIPv6" -o "x$i" = "xTCPIPv6"; then
+            echo
+            { { echo "$as_me:$LINENO: error: IPv6 transports not available if IPv6 support is not enabled" >&5
+echo "$as_me: error: IPv6 transports not available if IPv6 support is not enabled" >&2;}
+   { (exit 1); exit 1; }; }
+        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
+      { { echo "$as_me:$LINENO: error: Cannot find file $srcdir/$rel_transport_src to support SNMP transport domain $i." >&5
+echo "$as_me: error: Cannot find file $srcdir/$rel_transport_src to support SNMP transport domain $i." >&2;}
+   { (exit 1); exit 1; }; }
+    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'`
+
+## win32 platforms require inet_ntop etc.
+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
+
+
+
+
+
+for i in $transport_def_list; do
+  cat >>confdefs.h <<_ACEOF
+#define $i 1
+_ACEOF
+
+done
+echo "$as_me:$LINENO: result: $transport_result_list." >&5
+echo "${ECHO_T}$transport_result_list." >&6
+
+  cat >> configure-summary << EOF
+  Network transport support: $transport_result_list
+EOF
+
+
+#
+# Security modules to use
+#
+
+echo "$as_me:$LINENO: checking for security modules to use" >&5
+echo $ECHO_N "checking for security modules to use... $ECHO_C" >&6
+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
+if test ! -d include/net-snmp; then
+  mkdir include/net-snmp
+fi
+if test ! -d include/net-snmp/agent; then
+  mkdir include/net-snmp/agent
+fi
+if test ! -d include/net-snmp/library; then
+  mkdir include/net-snmp/library
+fi
+if test ! -d include/ucd-snmp; then
+  mkdir include/ucd-snmp
+fi
+
+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
+
+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
+        { { echo "$as_me:$LINENO: error: The USM security module is mandatory" >&5
+echo "$as_me: error: The USM security module is mandatory" >&2;}
+   { (exit 1); exit 1; }; }
+    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
+    { { echo "$as_me:$LINENO: error: No such security module: $i / $cfile / $hfile" >&5
+echo "$as_me: error: No such security module: $i / $cfile / $hfile" >&2;}
+   { (exit 1); exit 1; }; }
+  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
+  cat >>confdefs.h <<_ACEOF
+#define $def_name 1
+_ACEOF
+
+done
+
+
+
+
+
+echo "$as_me:$LINENO: result: $new_with_security" >&5
+echo "${ECHO_T}$new_with_security" >&6
+
+  cat >> configure-summary << EOF
+  SNMPv3 Security Modules:    $new_with_security
+EOF
+
+
+#
+# Handle the special case of KSM to see which crypto API we support
+#
+
+ac_cv_NETSNMP_USE_KERBEROS_MIT=no
+rebuilt_new_with_security=
+already_checked_krb5=no
+
+for sec in $new_with_security
+do
+  if test "x$sec" = "xksm" -a "xyes" = "x$already_checked_krb5"; then
+    continue
+  fi
+  already_checked_krb5=yes
+
+  if test x$sec != xksm; then
+    rebuilt_new_with_security="$rebuilt_new_with_security $sec"
+  else
+    if test no = $trykrb5; then
+      { echo "$as_me:$LINENO: configured not to use krb5. disabling ksm" >&5
+echo "$as_me: configured not to use krb5. disabling ksm" >&6;}
+      continue
+    fi
+
+    # Extract the first word of "krb5-config", so it can be a program name with args.
+set dummy krb5-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_krb5_config+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $krb5_config in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_krb5_config="$krb5_config" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_dummy="$krb5path/bin:$PATH"
+for as_dir in $as_dummy
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_krb5_config="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_path_krb5_config" && ac_cv_path_krb5_config="no"
+  ;;
+esac
+fi
+krb5_config=$ac_cv_path_krb5_config
+
+if test -n "$krb5_config"; then
+  echo "$as_me:$LINENO: result: $krb5_config" >&5
+echo "${ECHO_T}$krb5_config" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+    if test no != $krb5_config; then
+      CPPFLAGS="$CPPFLAGS `$krb5_config --cflags`"
+      LIBS="$LIBS `$krb5_config --libs`"
+    elif test $krb5path != no; then
+
+  if test "x$krb5path" != x -a -d $krb5path; then
+     if test -d $krb5path/lib; then
+       LDFLAGS="-L$krb5path/lib $LDFLAGS"
+     fi
+     if test -d $krb5path/include; then
+	CPPFLAGS="-I$krb5path/include $CPPFLAGS"
+     fi
+  fi
+
+    else
+
+  if test "x/usr/kerberos" != x -a -d /usr/kerberos; then
+     if test -d /usr/kerberos/lib; then
+       LDFLAGS="-L/usr/kerberos/lib $LDFLAGS"
+     fi
+     if test -d /usr/kerberos/include; then
+	CPPFLAGS="-I/usr/kerberos/include $CPPFLAGS"
+     fi
+  fi
+
+    fi
+
+    echo "$as_me:$LINENO: checking for krb5" >&5
+echo $ECHO_N "checking for krb5... $ECHO_C" >&6
+    if test "${ac_cv_have_krb5+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  echo "$as_me:$LINENO: checking for krb5_init_context in -lkrb5" >&5
+echo $ECHO_N "checking for krb5_init_context in -lkrb5... $ECHO_C" >&6
+if test "${ac_cv_lib_krb5_krb5_init_context+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lkrb5  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char krb5_init_context ();
+int
+main ()
+{
+krb5_init_context ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_krb5_krb5_init_context=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_krb5_krb5_init_context=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_krb5_krb5_init_context" >&5
+echo "${ECHO_T}$ac_cv_lib_krb5_krb5_init_context" >&6
+if test $ac_cv_lib_krb5_krb5_init_context = yes; then
+  ac_cv_have_krb5=yes
+else
+  ac_cv_have_krb5=no
+
+fi
+
+
+fi
+
+
+    if test $ac_cv_have_krb5 = no; then
+      if test "x$askedkrb5" = "xyes"; then
+	{ { echo "$as_me:$LINENO: error: Asked to use krb5 but I couldn't find it." >&5
+echo "$as_me: error: Asked to use krb5 but I couldn't find it." >&2;}
+   { (exit 1); exit 1; }; }
+      fi
+      echo "$as_me:$LINENO: result: no. disabling ksm" >&5
+echo "${ECHO_T}no. disabling ksm" >&6
+      continue
+    fi
+
+    echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+    rebuilt_new_with_security="$rebuilt_new_with_security ksm"
+
+    echo "$as_me:$LINENO: checking for heimdal" >&5
+echo $ECHO_N "checking for heimdal... $ECHO_C" >&6
+    if test "${ac_cv_heimdal+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <krb5.h>
+int
+main ()
+{
+const char *v = heimdal_version;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_heimdal=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_heimdal=no
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+    echo "$as_me:$LINENO: result: $ac_cv_heimdal" >&5
+echo "${ECHO_T}$ac_cv_heimdal" >&6
+    if test $ac_cv_heimdal = yes; then
+      cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_USE_KERBEROS_HEIMDAL 1
+_ACEOF
+
+      if test no = $krb5_config; then
+	LIBS="$LIBS -lkrb5 -lasn1 -lcom_err -lroken"
+      fi
+    elif test no = $krb5_config; then
+	LIBS="$LIBS -lkrb5 -lcom_err"
+    fi
+
+    echo "$as_me:$LINENO: checking to see which crypto API we need to use" >&5
+echo $ECHO_N "checking to see which crypto API we need to use... $ECHO_C" >&6
+    echo "$as_me:$LINENO: checking for krb5_c_encrypt" >&5
+echo $ECHO_N "checking for krb5_c_encrypt... $ECHO_C" >&6
+if test "${ac_cv_func_krb5_c_encrypt+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define krb5_c_encrypt to an innocuous variant, in case <limits.h> declares krb5_c_encrypt.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define krb5_c_encrypt innocuous_krb5_c_encrypt
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char krb5_c_encrypt (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef krb5_c_encrypt
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char krb5_c_encrypt ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_krb5_c_encrypt) || defined (__stub___krb5_c_encrypt)
+choke me
+#else
+char (*f) () = krb5_c_encrypt;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != krb5_c_encrypt;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_krb5_c_encrypt=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_krb5_c_encrypt=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_krb5_c_encrypt" >&5
+echo "${ECHO_T}$ac_cv_func_krb5_c_encrypt" >&6
+if test $ac_cv_func_krb5_c_encrypt = yes; then
+
+    if test "${ac_cv_NETSNMP_USE_KERBEROS_MIT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  echo "$as_me:$LINENO: checking for krb5_init_context in -lk5crypto" >&5
+echo $ECHO_N "checking for krb5_init_context in -lk5crypto... $ECHO_C" >&6
+if test "${ac_cv_lib_k5crypto_krb5_init_context+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lk5crypto  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char krb5_init_context ();
+int
+main ()
+{
+krb5_init_context ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_k5crypto_krb5_init_context=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_k5crypto_krb5_init_context=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_k5crypto_krb5_init_context" >&5
+echo "${ECHO_T}$ac_cv_lib_k5crypto_krb5_init_context" >&6
+if test $ac_cv_lib_k5crypto_krb5_init_context = yes; then
+  ac_cv_NETSNMP_USE_KERBEROS_MIT=yes
+else
+  ac_cv_MIT_NEW_CRYPTo=no
+
+fi
+
+
+fi
+
+
+    if test yes = $ac_cv_NETSNMP_USE_KERBEROS_MIT; then
+      echo "$as_me:$LINENO: result: new MIT crypto API" >&5
+echo "${ECHO_T}new MIT crypto API" >&6
+      cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_USE_KERBEROS_MIT 1
+_ACEOF
+
+      if test no = $krb5_config; then
+	LIBS="$LIBS -lk5crypto"
+      fi
+    else
+      echo "$as_me:$LINENO: result: old MIT crypto API" >&5
+echo "${ECHO_T}old MIT crypto API" >&6
+fi
+
+    fi
+  fi
+done
+
+new_with_security=$rebuilt_new_with_security
+
+#
+# generate empty files
+#
+# Create include file list for snmp_vars.h to use.
+mibdir="agent/mibgroup"
+if test ! -d agent; then
+  mkdir agent
+fi
+if test ! -d agent/mibgroup; then
+  mkdir agent/mibgroup
+fi
+j="$mibdir/mib_module_includes.h  $mibdir/agent_module_includes.h \
+   $mibdir/mib_module_inits.h     $mibdir/agent_module_inits.h    \
+   $mibdir/mib_module_shutdown.h  $mibdir/agent_module_shutdown.h \
+   include/net-snmp/agent/mib_module_config.h                     \
+                   include/net-snmp/agent/agent_module_config.h   \
+   $mibdir/mib_module_dot_conf.h  $mibdir/agent_module_dot_conf.h"
+
+for i in $j; do
+  rm -f $i
+  echo "/* This file is automatically generated by configure.  Do not modify by hand. */" > $i
+done
+
+#
+# Do hairy agent module processing.
+#
+echo "$as_me:$LINENO: checking for and configuring mib modules to use" >&5
+echo $ECHO_N "checking for and configuring mib modules to use... $ECHO_C" >&6
+
+# set up the CPP command
+MODULECPP="$CPP $PARTIALTARGETFLAGS -I${srcdir}/include -I${srcdir}/agent/mibgroup"
+if test "x$enable_mfd_rewrites" = "xyes"; then
+  MODULECPP="$MODULECPP -DNETSNMP_ENABLE_MFD_REWRITES"
+fi
+
+module_list=""
+mib_module_list=""
+agent_module_list=""
+new_with_mib_modules=`echo $with_mib_modules | sed 's/,/ /g;'`
+new_with_out_mib_modules=`echo $with_out_mib_modules | sed 's/,/ /g;'`
+
+# set up initial module list
+new_module_list="$new_with_mib_modules default_modules"
+
+# minor modifications
+if test "x$enable_agent" = "xno"; then
+   # minimum mib module list for snmptrapd
+   new_module_list="mibII/vacm_vars mibII/vacm_conf utilities/execute $new_with_mib_modules"
+   default_mibs=SNMPv2-MIB:RFC1213-MIB
+   default_mibs_install=" "
+elif test "x$mini_agent" = "xyes"; then
+   # define the mini agent flag to reduce our load list from default_mibs.h
+   MODULECPP="$MODULECPP -DNETSNMP_MINI_AGENT"
+fi
+
+test_modules="$new_module_list"
+new_module_list=""
+
+# remove modules that were explicitly excluded
+for i in $test_modules
+ do
+  if echo " $new_with_out_mib_modules " | grep " $i " > /dev/null; then
+    mib_cfg_msg="mib module '$i' is both included and excluded."
+    { echo "$as_me:$LINENO: WARNING: mib module conflict" >&5
+echo "$as_me: WARNING: mib module conflict" >&2;}
+    if test "x$with_mib_cfg_checks" = "xyes"; then
+      { echo "$as_me:$LINENO: WARNING: user with    : $with_mib_modules" >&5
+echo "$as_me: WARNING: user with    : $with_mib_modules" >&2;}
+      { echo "$as_me:$LINENO: WARNING: final with   : $new_module_list" >&5
+echo "$as_me: WARNING: final with   : $new_module_list" >&2;}
+      { echo "$as_me:$LINENO: WARNING: user without : $with_out_mib_modules" >&5
+echo "$as_me: WARNING: user without : $with_out_mib_modules" >&2;}
+      { echo "$as_me:$LINENO: WARNING: final without: $new_with_out_mib_modules" >&5
+echo "$as_me: WARNING: final without: $new_with_out_mib_modules" >&2;}
+      { { echo "$as_me:$LINENO: error: $mib_cfg_msg" >&5
+echo "$as_me: error: $mib_cfg_msg" >&2;}
+   { (exit 1); exit 1; }; }
+    else
+      { echo "$as_me:$LINENO: WARNING: $mib_cfg_msg It will be excluded" >&5
+echo "$as_me: WARNING: $mib_cfg_msg It will be excluded" >&2;}
+
+  cat >> configure-summary << EOF
+  *** MIB Module warning *** $mib_cfg_msg It has been excluded.
+EOF
+
+    fi
+  else
+    new_module_list="$new_module_list $i"
+  fi
+done
+
+echo "$as_me:$LINENO: result: $new_module_list." >&5
+echo "${ECHO_T}$new_module_list." >&6
+
+#---------------------
+# loop over module list
+#
+all_warnings=""
+if test "x$with_mib_cfg_debug" = "xyes"; then
+   module_debug=1
+else
+   module_debug=0
+fi
+first_pass=1
+output_to=normal
+
+if test ! -d mk ; then
+  mkdir mk
+fi
+
+
+module_rules=mk/module_rules.mk
+echo "# contents below built automatically by configure; do not edit by hand" > $module_rules
+
+#
+# make file sub-pieces
+#
+for i in module_list_deps mib_module_list_deps agent_module_list_deps ; do
+  eval "$i=mk/${i}.mk"
+  echo "# contents below built automatically by configure; do not edit by hand" > mk/${i}.mk
+done
+
+#
+# variable settings sub-pieces
+#
+for i in module_list_code mib_module_list_code agent_module_list_code module_list mib_module_list agent_module_list ; do
+  eval "$i=mk/${i}.mk"
+  echo "# contents below built automatically by configure; do not edit by hand" > mk/${i}.mk
+  echo "$i= \\" >> mk/${i}.mk
+done
+
+echo $ECHO_N "echo " $ECHO_C > mk/MODULE_LIST.mk
+MODULE_LIST=mk/MODULE_LIST.mk
+
+
+#---------------------
+# until we have an empty module list...
+#   (modules may add new modules, and until all dependencies are done...)
+#
+while test "x$new_module_list" != "x"; do
+
+  if test $module_debug = 1; then
+    echo -e "\n****************************************************************"
+  fi
+
+
+
+  if test $module_debug = 1; then
+    echo "nml: $new_module_list"
+  fi
+
+
+
+  #---------------------
+  # loop over all the modules in the current list
+  #
+  for j in $new_module_list
+    do
+
+    #---------------------
+    # figure out which sub-blocks to build in parts
+    if echo "$j" | grep "=" ; then
+       # build a shared object file
+       # format: sofilename=module1:module2
+       # XXX: currently doesn't do this
+       dl_name=`echo $j | sed 's/=.*//'`
+       dl_names="$dl_names $dl_name"
+       dl_objects=`echo $j | sed 's/.*=//'`
+       module_sublist=`echo $dl_objects | sed 's/:/ /g'`
+       saved_sublist=""
+       saved_sublist_code=""
+       output_to=separate
+
+       # create output files
+       # these actually get nuked later
+       output_inits="agent/mibgroup/${dl_name}-dll.c"
+       output_hdrs="agent/mibgroup/${dl_name}-hdrs.h"
+    else
+       # not a special token invocation
+       module_sublist=$j
+       output_to=normal
+       output_t=
+    fi
+
+    while test "x$module_sublist" != "x" ; do
+
+    #---------------------
+    # loop over all the modules in the sub list
+    for i in $module_sublist
+    do
+
+
+  if test $module_debug = 1; then
+    echo -e "\n================================================================"
+  fi
+
+
+
+  if test $module_debug = 1; then
+    echo "testing $i"
+  fi
+
+
+    need_header=0
+
+    #---------------------
+    # build a pseudo include header that includes current config and
+    # system symbols:
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include NETSNMP_SYSTEM_INCLUDE_FILE
+#include "$srcdir/$mibdir/$i.h"
+_ACEOF
+    mv conftest.$ac_ext module_tmp_header.h
+
+    #---------------------
+    # macro: config_belongs_in(ARG)
+    #   ARG: either
+    #     - mib_module   => libnetsnmpmibs   (default)
+    #     - agent_module => libnetsnmpagent
+    #
+    module_type=mib_module
+    if test -f $srcdir/$mibdir/$i.h; then
+
+      module_type=`$MODULECPP module_tmp_header.h | grep config_belongs_in | sed 's at .*config_belongs_in(\([^)]*\)).*@\1@'`
+
+    fi
+    if test "x$module_type" = "x" ; then
+      module_type=mib_module
+    fi
+    if test "x$output_to" = "xnormal" ; then
+     	output_inits="$mibdir/${module_type}_inits.h"
+     	output_hdrs="$mibdir/${module_type}_includes.h"
+    fi
+
+    #--------------------
+    # check for duplicates within the dll system.
+    #   - if found in a dll, then remove from the dll and add to main
+    dblfix=""
+    for dltest in $dl_names ; do
+      eval mod_files="\"\$dl_${dltest}_files\""
+      if echo " $mod_files " | grep " $i " > /dev/null; then
+        # some dll module has already seen this, unload it from that list
+        # and include it in the core (again)
+
+  if test $module_debug = 1; then
+    echo "removing $i from $dltest"
+  fi
+
+
+        mod_files=`echo " $mod_files " | sed "s@ $i @@"`
+        dblfix="__XXX__"
+        eval "dl_${dltest}_files=\"$mod_files\""
+
+        module_list="$module_list $i"
+	echo "read_config.lo: mibgroup/$i.h" >> $module_list_deps
+	if test $module_type = "agent_module" ; then
+ 	    echo "snmp_vars.lo: mibgroup/$i.h" >> $agent_module_list_deps
+        else
+ 	    echo "mib_modules.lo: mibgroup/$i.h" >> $mib_module_list_deps
+        fi
+        eval ${module_type}_list="\"\$${module_type}_list $i\""
+	echo "	$i \\" >> $module_list_code
+	echo $ECHO_N " $i" $ECHO_C >> $MODULE_LIST
+        eval tmpfilevar=\$`echo ${module_type}_list_code`
+        echo "	$i \\" >> $tmpfilevar
+
+	# XXX: add this to the main init list; this is possible not
+	# quite in the right spot any longer but we're stuck with it.
+	# Adding it back to the original ordered spot would be a
+	# nightmare.  Ok, we're already in nightmare code so that
+	# wolud have to be a night-terror.
+        mnm=`echo $i | sed 's/.*\///;s/\.c$//;'`
+	output_inits_tmp="$mibdir/${module_type}_inits.h"
+	echo "  if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits_tmp
+        # XXX: even worse, we loose whether the header is needed or not.
+     	output_hdrs_tmp="$mibdir/${module_type}_includes.h"
+        echo '#include "'"mibgroup/$i.h"'"' >> $output_hdrs_tmp
+      fi
+    done
+
+    #---------------------
+    # make sure module wasn't explicitly excluded, or already added
+    #
+    if test "x$dblfix" != "x" ; then
+
+  if test $module_debug = 1; then
+    echo "$i was duplicated -- putting into main"
+  fi
+
+
+    elif echo " $new_with_out_mib_modules " | grep " $i " > /dev/null; then
+
+  if test $module_debug = 1; then
+    echo "$i was excluded"
+  fi
+
+
+    elif echo " $module_list " | grep " $i " > /dev/null; then
+
+  if test $module_debug = 1; then
+    echo "$i already tested"
+  fi
+
+
+    else
+
+      #---------------------
+      # process modules header, checking for config_ pseudo-macros
+      #
+
+      #---------------------
+      # does the header file for the module exist?
+      #   macros are only processed if it does
+      if test -f $srcdir/$mibdir/$i.h; then
+        new_list=""
+
+        #---------------------
+      	# macro: config_exclude(modules)
+      	#  - lists conflicts with other modules
+      	#    - EG: new MIB implementations exclude old and vice-versa
+      	#
+        # check if $i has any conflicts
+        #
+	new_list_excl=`$MODULECPP module_tmp_header.h | grep config_exclude | sed 's/.*config_exclude(\(.*\)).*/\1/'`
+	if test "x$new_list_excl" != "x"; then
+
+  if test $module_debug = 1; then
+    echo "$i excludes $new_list_excl"
+  fi
+
+
+	  for j in $new_list_excl
+	    do
+	    if echo " $module_list $new_mib_module_list $new_list_two " | grep " $j " > /dev/null; then
+              mib_cfg_msg="mib module '$i' excludes module '$j' but another module requires it"
+              { echo "$as_me:$LINENO: WARNING: mib module error" >&5
+echo "$as_me: WARNING: mib module error" >&2;}
+              if test "x$with_mib_cfg_checks" = "xyes"; then
+	        { { echo "$as_me:$LINENO: error: $mib_cfg_msg" >&5
+echo "$as_me: error: $mib_cfg_msg" >&2;}
+   { (exit 1); exit 1; }; }
+              else
+	        { echo "$as_me:$LINENO: WARNING: $mib_cfg_msg" >&5
+echo "$as_me: WARNING: $mib_cfg_msg" >&2;}
+
+  cat >> configure-summary << EOF
+  *** MIB Module warning *** $mib_cfg_msg
+EOF
+
+              fi
+	    else
+	      new_with_out_mib_modules="$j $new_with_out_mib_modules"
+
+  if test $module_debug = 1; then
+    echo "$j added to excluded list"
+  fi
+
+
+	    fi
+	  done
+	fi
+
+        #---------------------
+      	# macro: config_arch_require(ARCH,modules)
+      	#  - lists modules required for a given ARCH
+        #
+        # check if $i has any architecture specific requirements
+        #
+
+        new_list_arch=`$MODULECPP module_tmp_header.h | grep config_arch_require | sed 's/.*config_arch_require( *\([^ ]*\) *, *\([^ ]*\) *).*/\1-xarchx-\2/'`
+
+	if test "x$new_list_arch" != "x"; then
+          for j in $new_list_arch
+	    do
+	    archtest=`echo $j | sed 's/-xarchx-.*//'`
+	    # target_os may have been changed to a #define of 1...
+	    if test "x$archtest" = "x1" -o "x$target_os" = "x$archtest" -o "x$PARTIALTARGETOS" = "x$archtest"; then
+	      new_list="$new_list `echo $j | sed 's/.*-xarchx-//'`"
+
+  if test $module_debug = 1; then
+    echo " $i required adding arch files: `echo $j | sed 's/.*-xarchx-//'`"
+  fi
+
+
+	    fi
+	  done
+	fi
+
+  if test $module_debug = 1; then
+    echo " $i required arch files: $new_list"
+  fi
+
+
+
+        #---------------------
+      	# macro: config_require(modules)
+      	#  - lists modules required for this module
+        #
+        # check if $i has any other required modules
+        #
+	new_list="$new_list `$MODULECPP module_tmp_header.h | grep config_require | sed 's/.*config_require(\(.*\)).*/\1/'`"
+
+  if test $module_debug = 1; then
+    echo " $i will test: $new_list"
+  fi
+
+
+	if test "x$new_list" != "x"; then
+	  for j in $new_list
+	    do
+
+  if test $module_debug = 1; then
+    echo -n " $i wants to add $j: "
+  fi
+
+
+	    if test ! -f $srcdir/$mibdir/$j.h -a ! -f $srcdir/$mibdir/$j.c; then
+              { echo "$as_me:$LINENO: WARNING: mib module error" >&5
+echo "$as_me: WARNING: mib module error" >&2;}
+	      { { echo "$as_me:$LINENO: error: mib module \"$i\" requires module \"$j\" but $j.h or $j.c could not be found in $srcdir/$mibdir" >&5
+echo "$as_me: error: mib module \"$i\" requires module \"$j\" but $j.h or $j.c could not be found in $srcdir/$mibdir" >&2;}
+   { (exit 1); exit 1; }; }
+	    elif echo " $new_with_out_mib_modules " | grep " $j " > /dev/null; then
+	      if test "x$i" != "xdefault_modules" ; then
+                mib_cfg_msg="mib module '$i' requires module '$j' but someone told me to compile without it"
+                { echo "$as_me:$LINENO: WARNING: mib module error" >&5
+echo "$as_me: WARNING: mib module error" >&2;}
+                if test "x$with_mib_cfg_checks" = "xyes"; then
+                  { { echo "$as_me:$LINENO: error: $mib_cfg_msg" >&5
+echo "$as_me: error: $mib_cfg_msg" >&2;}
+   { (exit 1); exit 1; }; }
+                else
+                  { echo "$as_me:$LINENO: WARNING: $mib_cfg_msg" >&5
+echo "$as_me: WARNING: $mib_cfg_msg" >&2;}
+
+  cat >> configure-summary << EOF
+  *** MIB Module warning *** $mib_cfg_msg
+EOF
+
+                fi
+#	    elif echo " $module_list $new_list_two $new_module_list " | grep " $j " > /dev/null; then
+#              AC_MSG_MODULE_DBG("  $j included previously")
+              fi
+	    else
+	      new_list_two="$new_list_two $j"
+
+  if test $module_debug = 1; then
+    echo "  $j included"
+  fi
+
+
+	    fi
+	  done
+	fi
+
+        #---------------------
+      	# macro: config_add_mib(SOME-MIB)
+      	#  - lists MIBs to be added to the default to-load list.
+        #
+        # check if $i has any mibs to add
+        #
+	new_mibs=`$MODULECPP module_tmp_header.h | grep config_add_mib | sed 's/.*config_add_mib(\(.*\)).*/\1/'`
+	if test "x$new_mibs" != "x"; then
+	    for j in $new_mibs
+		do
+		if test "x`echo :$default_mibs: | grep :$j:`" = "x"; then
+		    default_mibs="$default_mibs:$j"
+		fi
+		if test -f $srcdir/mibs/$j.txt; then
+		    if echo $default_mibs_install | grep " $j " > /dev/null; then
+			    :
+		    else
+			    default_mibs_install="$default_mibs_install $j.txt"
+		    fi
+		fi
+	    done
+	fi # new mibs
+
+        #-------------------
+        # add the current module to the list of stuff to compile, etc.
+        #
+        # add $i to module list
+        #
+
+  if test $module_debug = 1; then
+    echo "  $i added (based on $i.h)"
+  fi
+
+
+        module_list="$module_list $i"
+        eval ${module_type}_list="\"\$${module_type}_list $i\""
+
+	echo "read_config.lo: mibgroup/$i.h" >> $module_list_deps
+	if test $module_type = "agent_module" ; then
+ 	    echo "snmp_vars.lo: mibgroup/$i.h" >> $agent_module_list_deps
+        else
+ 	    echo "mib_modules.lo: mibgroup/$i.h" >> $mib_module_list_deps
+        fi
+
+        #-------------------
+        # check for unsupported config_load_mib
+        #
+        if $MODULECPP module_tmp_header.h | grep config_load_mib > /dev/null 2>&1; then
+          { echo "$as_me:$LINENO: WARNING: mib module error" >&5
+echo "$as_me: WARNING: mib module error" >&2;}
+      	  { echo "$as_me:$LINENO: WARNING: mib module \"$i\" uses the \"config_load_mib\" directive, which is no longer supported.  It probably won't work." >&5
+echo "$as_me: WARNING: mib module \"$i\" uses the \"config_load_mib\" directive, which is no longer supported.  It probably won't work." >&2;}
+        fi # grep config_load_mib
+
+        #-------------------
+        # check for config_parse_dot_conf
+        #  (generally not used any longer; old auto-load a .conf token)
+        #
+
+        $MODULECPP module_tmp_header.h | grep config_parse_dot_conf | sed 's at .*config_parse_dot_conf(\([^)]*\), *\([^),]*\), *\([^),]*\), *\([^),]*\)).*@register_config_handler("snmpd",\1, \2, \3, \4);@' >> $mibdir/mib_module_dot_conf.h
+
+
+        #---------------------
+      	# macro: config_error(error text)
+      	#  - used to signal a configuration error from a module
+        #
+        # check if $i has any errors, or warnings
+        #
+	error=`$MODULECPP module_tmp_header.h | grep config_error | sed 's/.*config_error(\(.*\)).*/\1/'`
+	if test "x$error" != "x"; then
+          echo
+          echo
+          { { echo "$as_me:$LINENO: error: $i: *** $error ***" >&5
+echo "$as_me: error: $i: *** $error ***" >&2;}
+   { (exit 1); exit 1; }; }
+        fi
+
+        #---------------------
+      	# macro: config_warning(warning text)
+      	#  - used to signal a configuration "warning" to be printed to the user
+        #
+	warning=`$MODULECPP module_tmp_header.h | grep config_warning | sed 's/.*config_warning(\(.*\)).*/\1/'`
+	if test "x$warning" != "x"; then
+          all_warnings="$all_warnings $warning
+"
+        fi
+
+      #---------------------
+      # Check for a .c file if the .h didn't exist
+      #
+      elif test -f $srcdir/$mibdir/$i.c; then
+        if echo " $module_list $new_list_two $new_module_list " | grep " $i      " > /dev/null; then
+
+  if test $module_debug = 1; then
+    echo "  $i already included"
+  fi
 
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
 
-  # Some binutils ld are patched to set DT_RUNPATH
-  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_shlibpath_overrides_runpath=no
-    save_LDFLAGS=$LDFLAGS
-    save_libdir=$libdir
-    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
-	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+        else
 
-int
-main ()
-{
+  if test $module_debug = 1; then
+    echo "  $i added (based on $i.c)"
+  fi
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    LDFLAGS=$save_LDFLAGS
-    libdir=$save_libdir
 
-fi
+	   module_list="$module_list $i"
+	   mib_module_list="$mib_module_list $i"
+        fi
 
-  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+      #---------------------
+      # No .h or .c = error!  (typo?)
+      #
+      else # no $i.h or $i.c
+        { echo "$as_me:$LINENO: WARNING: mib module error" >&5
+echo "$as_me: WARNING: mib module error" >&2;}
+	{ { echo "$as_me:$LINENO: error: module files $i.h or $i.c could not be found in $srcdir/$mibdir" >&5
+echo "$as_me: error: module files $i.h or $i.c could not be found in $srcdir/$mibdir" >&2;}
+   { (exit 1); exit 1; }; }
+      fi # no $i.h
 
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
+      #-------------------
+      # check for init/shutdown routines too
+      #
+      has_c_code=no
+      if test -f $srcdir/$mibdir/$i.c; then
+        if test "x$output_to" = "xnormal" ; then
+	  echo "	$i \\" >> $module_list_code
+  	  echo $ECHO_N " $i" $ECHO_C >> $MODULE_LIST
+          eval tmpfilevar=\$`echo ${module_type}_list_code`
+          echo "	$i \\" >> $tmpfilevar
+        else
+          eval "dl_${dl_name}_files=\"\$dl_${dl_name}_files $i\""
+          saved_sublist_code="$saved_sublist_code $i"
+        fi
+        mnm=`echo $i | sed 's/.*\///;s/\.c$//;'`
 
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  if test $module_debug = 1; then
+    echo -e "\nchecking '$srcdir/$mibdir/$i.c' ($mnm/`basename $i`) C file for init/shutdown"
   fi
 
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
 
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
+        if test "x$mnm" != "x`basename $i`"; then
+           { echo "$as_me:$LINENO: WARNING: mib module error" >&5
+echo "$as_me: WARNING: mib module error" >&2;}
+	   { { echo "$as_me:$LINENO: error: conflicting names: $mnm != \`basename $i\`" >&5
+echo "$as_me: error: conflicting names: $mnm != \`basename $i\`" >&2;}
+   { (exit 1); exit 1; }; }
+        fi
+        temp_init=`grep init_$mnm $srcdir/$mibdir/$i.c | grep -v _init_$mnm`
+	if test "x$temp_init" != "x"; then
+
+  if test $module_debug = 1; then
+    echo -e "adding init_$mnm() to list"
   fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
 
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
 
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
+            need_header=1
+	    echo "  if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits
+	fi
+	grep shutdown_$mnm $srcdir/$mibdir/$i.c > /dev/null
+        if test $? -eq 0 ; then
+            if test $module_debug -eq 1; then
+              echo -e "\nadding shutdown_$mnm() to list"
+            fi
+            need_header=1
+	    echo "  if (should_init(\"$mnm\")) shutdown_$mnm();" >> $mibdir/${module_type}_shutdown.h
+	fi
+      fi # test -f $srcdir/$mibdir/$i.c
 
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
+      #-------------------
+      # if there is a shutdown/init list,
+      #
+      if test $need_header -eq 1 ; then
+         echo '#include "'"mibgroup/$i.h"'"' >> $output_hdrs
+      else
+         echo '/*#include "'"mibgroup/$i.h"'"*/' >> $output_hdrs
+      fi
 
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
+      #-------------------
+      # check for output directory (for building outside of source tree
+      #
 
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
+      if test "x`echo $i | sed 's/\///g;'`" != "x$i"; then
+	mnd=`echo $i | sed 's/\/[^/]*$//;'`
+	if test ! -d ./$mibdir/$mnd; then
+	    module_directories="$module_directories ./$mibdir/$mnd"
+	fi
+      fi # module directory test
 
-rdos*)
-  dynamic_linker=no
-  ;;
 
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
+      #-------------------
+      # define USING_*_MODULE
+      #
 
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
+      sym="`echo ${i} | sed 's/[^a-zA-Z0-9_]/_/g' | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`"
+
+      echo "/* Define if compiling with the ${i} module files.  */" >> include/net-snmp/agent/${module_type}_config.h
+      echo "#define USING_${sym}_MODULE 1" >> include/net-snmp/agent/${module_type}_config.h
+      echo " " >> include/net-snmp/agent/${module_type}_config.h
+
+      #-------------------
+      echo $ECHO_N " $i$ECHO_C"
+    fi #
+    done # for i in $module_sublist
+
+    if test "$output_to" = "separate" ; then
+      if test "x$new_list_two" = "x" ; then
+        # no new sub-modules to add to the current target
+        output_to="normal"
+
+        dllcleans="$saved_sublist_o $dllcleans"
+        output_inits=""
+        module_sublist=""
+      else
+        # a module had sub-modules required; keep goin'
+        saved_sublist="$saved_sublist $module_sublist"
+        module_sublist="$new_list_two"
+        new_list_two=""
+      fi
+    else
+      module_sublist=""
+    fi
+
+    done # while module_sublist
+  done # for j in $new_module_list
+
+  # remember the top level modules for later reporting
+  if test $first_pass = 1 ; then
+    # remember this list for later reporting
+    top_level_modules="$new_module_list => $new_list_two"
+    first_pass=0
   fi
-  need_version=yes
-  ;;
+  #-------------------
+  # if $i added new modules vis config_*,
+  # check those modules for requirements too
+  #
+  # transfer the new module to check list to the normal variable
+  #
+  if test "x$new_list_two" ; then
+    output_to=normal
+  fi
+  new_module_list="$new_list_two"
+  new_list_two=""
+done # while test "x$new_module_list" != "x"; do
+echo ""
+
+#--------------------
+# construct the dll code files and make rules.  This can't be done
+# until now because dulpicate use of a module means it gets removed
+# from the dll and put into the main agent.
+#
+for i in $dl_names ; do
+  eval mod_files="\"\$dl_${i}_files\""
+  echo "components in the $i dll: $mod_files"
 
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
+  output_inits="agent/mibgroup/${i}-dll.c"
+  output_hdrs="agent/mibgroup/${i}-hdrs.h"
 
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
 
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
+  if test $module_debug = 1; then
+    echo "creating dll file: $output_inits"
   fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
 
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
 
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
+  for ofile in $output_inits $output_hdrs ; do
+    if test -f $ofile ; then
+      if grep "this file created automatically by configure" $ofile > /dev/null 2>&1 ; then
+  	:
+      else
+  	{ { echo "$as_me:$LINENO: error: $ofile already existed ; can't build dll object $i" >&5
+echo "$as_me: error: $ofile already existed ; can't build dll object $i" >&2;}
+   { (exit 1); exit 1; }; }
+      fi
+    fi
+    cat > $ofile << EOFIF
+/* xDo not edit; this file created automatically by configure */
+EOFIF
+  done
 
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
+  cat >> $output_inits << EOFOC
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include "${i}-hdrs.h"
+void
+init_$i(void) {
+EOFOC
 
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
+  # create the .so rule
+  saved_sublist_o=`echo "$mod_files " | sed 's/^ *//g;s/  */.o /g;'`
 
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
+  # create the rules for each object
+  for j in $mod_files ; do
+    cat >> $module_rules << EOFR
+$j.o: $j.c
+	\$(CC) -c \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ \$<
+
+EOFR
+    mnm=`echo $j | sed 's/.*\///;s/\.c$//;'`
+    echo "  if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits
+  done
+
+  # create the rule for the .so and wrapper code
+  cat >> $module_rules << EOFM
+${i}-dll.o: ${i}-dll.c
+	\$(CC) -c \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ \$<
 
+${i}.so: $saved_sublist_o ${i}-dll.o
+	\$(CC) \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ $saved_sublist_o ${i}-dll.o
 
+EOFM
+        cat >> $output_inits << EOFOCFIN
+}
+EOFOCFIN
 
+done
 
+# cleanup
+rm -f module_tmp_header.h
 
+#-------------------
+# build module lists for Makefiles
+#
 
 
+for i in module_list_o module_list_c module_list_lo mib_module_list_o mib_module_list_c mib_module_list_lo mibgroup_list_o mibgroup_list_lo agent_module_list_o agent_module_list_c agent_module_list_lo agentgroup_list_o agentgroup_list_lo ; do
+  eval "$i=mk/${i}.mk"
+done
 
+sed 's/^module_list_code/module_list_o/;s/\([^=]\)  *\\/\1.o \\/g'  < $module_list_code  > $module_list_o
+sed 's/^module_list_code/module_list_c/;s/\([^=]\)  *\\/\1.c \\/g'  < $module_list_code  > $module_list_c
+sed 's/^module_list_code/module_list_lo/;s/\([^=]\)  *\\/\1.lo \\/g' < $module_list_code  > $module_list_lo
 
+sed 's/^mib_module_list_code/mib_module_list_o/;s/\([^=]\)  *\\/\1.o \\/g'  < $mib_module_list_code  > $mib_module_list_o
+sed 's/^mib_module_list_code/mib_module_list_c/;s/\([^=]\)  *\\/\1.c \\/g'  < $mib_module_list_code  > $mib_module_list_c
+sed 's/^mib_module_list_code/mib_module_list_lo/;s/\([^=]\)  *\\/\1.lo \\/g' < $mib_module_list_code  > $mib_module_list_lo
 
+sed 's/^mib_module_list_o/mibgroup_list_o/;s@\([^ 	]*\)\.o at mibgroup/\1.o at g' < $mib_module_list_o > $mibgroup_list_o
+sed 's/^mib_module_list_lo/mibgroup_list_lo/;s@\([^ 	]*\)\.lo at mibgroup/\1.lo at g' < $mib_module_list_lo > $mibgroup_list_lo
 
+sed 's/^agent_module_list_code/agent_module_list_o/;s/\([^=]\)  *\\/\1.o \\/g'  < $agent_module_list_code  > $agent_module_list_o
+sed 's/^agent_module_list_code/agent_module_list_c/;s/\([^=]\)  *\\/\1.c \\/g'  < $agent_module_list_code  > $agent_module_list_c
+sed 's/^agent_module_list_code/agent_module_list_lo/;s/\([^=]\)  *\\/\1.lo \\/g' < $agent_module_list_code  > $agent_module_list_lo
 
+sed 's/^agent_module_list_o/agentgroup_list_o/;s@\([^ 	]*\)\.o at mibgroup/\1.o at g' < $agent_module_list_o > $agentgroup_list_o
+sed 's/^agent_module_list_lo/agentgroup_list_lo/;s@\([^ 	]*\)\.lo at mibgroup/\1.lo at g' < $agent_module_list_lo > $agentgroup_list_lo
 
+for i in module_list_o module_list_c module_list_lo mib_module_list_o mib_module_list_c mib_module_list_lo mibgroup_list_o mibgroup_list_lo agent_module_list_o agent_module_list_c agent_module_list_lo agentgroup_list_o agentgroup_list_lo ; do
+	# hpux make (at least) doesn't like a trailing \ on the last
+	# line even when the next line contains nothing but
+	# whitespace.
+	lasttoken=`tail -1 mk/$i.mk | awk '{print $1}'`
+	sed "s#$lasttoken \\\\#$lasttoken#" < mk/$i.mk > mk/$i.mk.tmp
+	mv mk/$i.mk.tmp mk/$i.mk
 
+	# add a closing comment
+	echo "" >> mk/$i.mk
+	echo "# end configure generated code" >> mk/$i.mk
+done
 
 
 
+if test $module_debug -eq 1; then
+   echo -e "\nFinal module list: $module_list_code"
+   exit
+fi
+if test "x$with_mib_cfg_checks" = "xyes"; then
 
+  cat >> configure-summary << EOF
+  Agent Module list: $module_list_code
+EOF
 
+fi
 
 
 
@@ -14492,6 +26846,8 @@ fi
 
 
 
+#AC_SUBST_FILE(mib_module_list)
+#AC_SUBST(module_list)
 
 
 
@@ -14499,3745 +26855,6777 @@ fi
 
 
 
+echo "$as_me:$LINENO: result: ." >&5
+echo "${ECHO_T}." >&6
 
+if test $module_debug -eq 1; then
 
+  cat >> configure-summary << EOF
+  Agent MIB code:            $module_list
+EOF
 
+fi
 
+  cat >> configure-summary << EOF
+  Agent MIB code:            $top_level_modules
+EOF
 
 
+# end hairy agent module processing
 
+echo "$as_me:$LINENO: checking if directories need to be created" >&5
+echo $ECHO_N "checking if directories need to be created... $ECHO_C" >&6
+for i in $module_directories; do
+  $srcdir/mkinstalldirs $i
+done
+echo "$as_me:$LINENO: result: ." >&5
+echo "${ECHO_T}." >&6
 
+#-------------------
+# Define default mibs
+#
+echo "$as_me:$LINENO: checking default mib files to read" >&5
+echo $ECHO_N "checking default mib files to read... $ECHO_C" >&6
+if test "x$NETSNMP_DEFAULT_MIBS" = "x"; then
+  NETSNMP_DEFAULT_MIBS="$default_mibs"
+fi
+if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
+  # mingw32 and cygwin use ';' as the environment variable separator char
+  ENV_SEPARATOR=";"
+  NETSNMP_DEFAULT_MIBS=`echo "$NETSNMP_DEFAULT_MIBS" | sed 's/:/;/g'`
+  default_mibs=`echo "$default_mibs" | sed 's/:/;/g'`
+else
+  ENV_SEPARATOR=":"
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define NETSNMP_DEFAULT_MIBS "$NETSNMP_DEFAULT_MIBS"
+_ACEOF
 
 
+echo "$as_me:$LINENO: result: $NETSNMP_DEFAULT_MIBS" >&5
+echo "${ECHO_T}$NETSNMP_DEFAULT_MIBS" >&6
 
+echo "$as_me:$LINENO: checking whether we have to build PIC code" >&5
+echo $ECHO_N "checking whether we have to build PIC code... $ECHO_C" >&6
+echo " $module_list " | grep " ucd-snmp/dlmod " >/dev/null
+if test $? -eq 0 ; then
+        LIB_CFLAGS="$LIB_CFLAGS $SHLIB_CFLAGS"
+	echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+	DLLIBS=""
+	echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
+#
+# Check for kernel location
+#
 
+echo "$as_me:$LINENO: checking for location of system kernel" >&5
+echo $ECHO_N "checking for location of system kernel... $ECHO_C" >&6
+if test "${ac_cv_KERNEL_LOC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_KERNEL_LOC="unknown"
+# First determine if test expects a -f or a -c (character device (SYSV))
 
+if test -c /dev/null; then
+  CFLAG="-c"
+elif test -f /dev/null; then
+  CFLAG="-f"
+else
+  # fall back
+  CFLAG="-f"
+fi
+for i in /vmunix /hp-ux /stand/vmunix /dev/ksyms /kernel/unix /kernel/genunix /netbsd /unix /kernel /bsd /mach_kernel /boot/kernel/kernel
+  do
+  if test -f $i -o $CFLAG $i; then
+    ac_cv_KERNEL_LOC="$i"
+    break;
+  fi
+done
+if test $i = "unknown"; then
+  { echo "$as_me:$LINENO: WARNING: Can't find system kernel...  Setting to /vmunix" >&5
+echo "$as_me: WARNING: Can't find system kernel...  Setting to /vmunix" >&2;}
+  ac_cv_KERNEL_LOC="/vmunix"
+fi
 
+fi
+echo "$as_me:$LINENO: result: $ac_cv_KERNEL_LOC" >&5
+echo "${ECHO_T}$ac_cv_KERNEL_LOC" >&6
 
+cat >>confdefs.h <<_ACEOF
+#define KERNEL_LOC "$ac_cv_KERNEL_LOC"
+_ACEOF
 
 
+#
+# Check for mount table location
+#
 
+echo "$as_me:$LINENO: checking for mount table location" >&5
+echo $ECHO_N "checking for mount table location... $ECHO_C" >&6
+if test "${ac_cv_ETC_MNTTAB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_ETC_MNTTAB="unknown"
+for i in /etc/mnttab /etc/mtab /etc/filesystems /dev/mnttab
+  do
+  if test -f $i -o -c $i; then
+    ac_cv_ETC_MNTTAB="$i"
+    break;
+  fi
+done
 
+fi
+echo "$as_me:$LINENO: result: $ac_cv_ETC_MNTTAB" >&5
+echo "${ECHO_T}$ac_cv_ETC_MNTTAB" >&6
 
+cat >>confdefs.h <<_ACEOF
+#define ETC_MNTTAB "$ac_cv_ETC_MNTTAB"
+_ACEOF
 
 
+# Check for /dev/dmem or /dev/drum location
+echo "$as_me:$LINENO: checking for location of swap device" >&5
+echo $ECHO_N "checking for location of swap device... $ECHO_C" >&6
+if test "${ac_cv_DMEM_LOC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+# First determine if test expects a -f or a -c (character device (SYSV))
 
+if test -f /dev/kmem; then
+  CTEST="test -f"
+elif test -c /dev/kmem; then
+  CTEST="test -c"
+else
+  # fall back
+  CTEST="test -f"
+fi
 
+if $CTEST /dev/dmem; then
+  ac_cv_DMEM_LOC="/dev/dmem"
+elif $CTEST /dev/drum; then
+  ac_cv_DMEM_LOC="/dev/drum"
+else
+  ac_cv_DMEM_LOC="none"
+fi
 
+fi
+echo "$as_me:$LINENO: result: $ac_cv_DMEM_LOC" >&5
+echo "${ECHO_T}$ac_cv_DMEM_LOC" >&6
 
+if test "x$ac_cv_DMEM_LOC" != "xnone"; then
+  cat >>confdefs.h <<_ACEOF
+#define DMEM_LOC "$ac_cv_DMEM_LOC"
+_ACEOF
 
+fi
 
+# forced efence turned off.
+# if test "x$developer" = "xyes" -a "x$use_efence" != "xno"; then
+#    use_efence="yes"
+# fi
 
+if test "x$use_efence" = "xyes"; then
 
+echo "$as_me:$LINENO: checking for EF_Exit in -lefence" >&5
+echo $ECHO_N "checking for EF_Exit in -lefence... $ECHO_C" >&6
+if test "${ac_cv_lib_efence_EF_Exit+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lefence  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char EF_Exit ();
+int
+main ()
+{
+EF_Exit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_efence_EF_Exit=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_efence_EF_Exit=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_efence_EF_Exit" >&5
+echo "${ECHO_T}$ac_cv_lib_efence_EF_Exit" >&6
+if test $ac_cv_lib_efence_EF_Exit = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBEFENCE 1
+_ACEOF
 
+  LIBS="-lefence $LIBS"
 
+fi
 
+fi
 
+# Checks for libraries.
+# AC_CHECK_LIB(des, main)
+# AC_CHECK_LIB(m, asin)
 
 
+# Check whether --with-elf or --without-elf was given.
+if test "${with_elf+set}" = set; then
+  withval="$with_elf"
 
+else
+  # Check whether --enable-elf or --disable-elf was given.
+if test "${enable_elf+set}" = set; then
+  enableval="$enable_elf"
+  { { echo "$as_me:$LINENO: error:  Invalid option. Use --with-elf/--without-elf instead " >&5
+echo "$as_me: error:  Invalid option. Use --with-elf/--without-elf instead " >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+fi;
 
+if test "x$with_elf" != "xno"; then
+# nlist is needed for uptime on some sytems in the generic library
+# add hosts which don't use nlist to the blank first line
+case $target_os in
+	linux*) ;;
+	irix*) # Check for nlist in mld (irix)
 
+echo "$as_me:$LINENO: checking for nlist in -lelf" >&5
+echo $ECHO_N "checking for nlist in -lelf... $ECHO_C" >&6
+if test "${ac_cv_lib_elf_nlist+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lelf  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char nlist ();
+int
+main ()
+{
+nlist ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_elf_nlist=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_elf_nlist=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_elf_nlist" >&5
+echo "${ECHO_T}$ac_cv_lib_elf_nlist" >&6
+if test $ac_cv_lib_elf_nlist = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBELF 1
+_ACEOF
 
+  LIBS="-lelf $LIBS"
 
+fi
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
-   test -n "$runpath_var" ||
-   test "X$hardcode_automatic" = "Xyes" ; then
+echo "$as_me:$LINENO: checking for nlist64 in -lelf" >&5
+echo $ECHO_N "checking for nlist64 in -lelf... $ECHO_C" >&6
+if test "${ac_cv_lib_elf_nlist64+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lelf  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action=immediate
-  fi
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char nlist64 ();
+int
+main ()
+{
+nlist64 ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_elf_nlist64=yes
 else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-if test "$hardcode_action" = relink ||
-   test "$inherit_rpath" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
+ac_cv_lib_elf_nlist64=no
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_elf_nlist64" >&5
+echo "${ECHO_T}$ac_cv_lib_elf_nlist64" >&6
+if test $ac_cv_lib_elf_nlist64 = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBELF 1
+_ACEOF
 
+  LIBS="-lelf $LIBS"
 
+fi
 
 
+echo "$as_me:$LINENO: checking for nlist in -lmld" >&5
+echo $ECHO_N "checking for nlist in -lmld... $ECHO_C" >&6
+if test "${ac_cv_lib_mld_nlist+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lmld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-
-  if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char nlist ();
+int
+main ()
+{
+nlist ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_mld_nlist=yes
 else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
+ac_cv_lib_mld_nlist=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_mld_nlist" >&5
+echo "${ECHO_T}$ac_cv_lib_mld_nlist" >&6
+if test $ac_cv_lib_mld_nlist = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBMLD 1
+_ACEOF
 
-  mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-    ;;
+  LIBS="-lmld $LIBS"
 
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-    ;;
+fi
 
-  darwin*)
-  # if libdl is installed we need to link against it
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
-  $as_echo_n "(cached) " >&6
+		;;
+	*) # default
+
+echo "$as_me:$LINENO: checking for nlist in -lelf" >&5
+echo $ECHO_N "checking for nlist in -lelf... $ECHO_C" >&6
+if test "${ac_cv_lib_elf_nlist+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+LIBS="-lelf  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-char dlopen ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char nlist ();
 int
 main ()
 {
-return dlopen ();
+nlist ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_elf_nlist=yes
 else
-  ac_cv_lib_dl_dlopen=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_elf_nlist=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
+echo "$as_me:$LINENO: result: $ac_cv_lib_elf_nlist" >&5
+echo "${ECHO_T}$ac_cv_lib_elf_nlist" >&6
+if test $ac_cv_lib_elf_nlist = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBELF 1
+_ACEOF
 
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
+  LIBS="-lelf $LIBS"
 
 fi
 
-    ;;
+		;;
+esac
+fi
 
-  *)
-    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
-  lt_cv_dlopen="shl_load"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+# On some platforms (Irix) libnsl and libsocket should not be used.
+echo "$as_me:$LINENO: checking for gethostbyname" >&5
+echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
+if test "${ac_cv_func_gethostbyname+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define gethostbyname to an innocuous variant, in case <limits.h> declares gethostbyname.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define gethostbyname innocuous_gethostbyname
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char gethostbyname (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef gethostbyname
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
 #endif
-char shl_load ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char gethostbyname ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
+choke me
+#else
+char (*f) () = gethostbyname;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-return shl_load ();
+return f != gethostbyname;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dld_shl_load=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_gethostbyname=yes
 else
-  ac_cv_lib_dld_shl_load=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_gethostbyname=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
-  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen"
+echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
+if test $ac_cv_func_gethostbyname = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_GETHOSTBYNAME 1
+_ACEOF
+
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
-  $as_echo_n "(cached) " >&6
+  echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5
+echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+LIBS="-lnsl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-char dlopen ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char gethostbyname ();
 int
 main ()
 {
-return dlopen ();
+gethostbyname ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_nsl_gethostbyname=yes
 else
-  ac_cv_lib_dl_dlopen=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_nsl_gethostbyname=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
-  $as_echo_n "(cached) " >&6
+echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
+if test $ac_cv_lib_nsl_gethostbyname = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_GETHOSTBYNAME 1
+_ACEOF
+
+	LIBS="${LIBS} -lnsl"
+fi
+
+fi
+
+
+# SCO Unixware 7.1.4 finds gethostbyname() in -lsocket
+echo "$as_me:$LINENO: checking for gethostbyname" >&5
+echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
+if test "${ac_cv_func_gethostbyname+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define gethostbyname to an innocuous variant, in case <limits.h> declares gethostbyname.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define gethostbyname innocuous_gethostbyname
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char gethostbyname (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef gethostbyname
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
+char gethostbyname ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
+choke me
+#else
+char (*f) () = gethostbyname;
+#endif
 #ifdef __cplusplus
-extern "C"
+}
 #endif
-char dlopen ();
+
 int
 main ()
 {
-return dlopen ();
+return f != gethostbyname;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_svld_dlopen=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_gethostbyname=yes
 else
-  ac_cv_lib_svld_dlopen=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_gethostbyname=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
+if test $ac_cv_func_gethostbyname = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_GETHOSTBYNAME 1
+_ACEOF
+
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
-  $as_echo_n "(cached) " >&6
+  echo "$as_me:$LINENO: checking for gethostbyname in -lsocket" >&5
+echo $ECHO_N "checking for gethostbyname in -lsocket... $ECHO_C" >&6
+if test "${ac_cv_lib_socket_gethostbyname+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+LIBS="-lsocket  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-char dld_link ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char gethostbyname ();
 int
 main ()
 {
-return dld_link ();
+gethostbyname ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dld_dld_link=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_socket_gethostbyname=yes
 else
-  ac_cv_lib_dld_dld_link=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-
-fi
-
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_socket_gethostbyname=no
 fi
-
-
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_socket_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_lib_socket_gethostbyname" >&6
+if test $ac_cv_lib_socket_gethostbyname = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_GETHOSTBYNAME 1
+_ACEOF
 
-
+	LIBS="${LIBS} -lsocket"
 fi
 
-
 fi
 
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
+# Solaris kstat
+echo "$as_me:$LINENO: checking for kstat_lookup in -lkstat" >&5
+echo $ECHO_N "checking for kstat_lookup in -lkstat... $ECHO_C" >&6
+if test "${ac_cv_lib_kstat_kstat_lookup+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lkstat  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-/* When -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
 #endif
-
-int fnord () { return 42; }
-int main ()
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char kstat_lookup ();
+int
+main ()
 {
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else
-        {
-	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-          else puts (dlerror ());
-	}
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
+kstat_lookup ();
+  ;
+  return 0;
 }
-_LT_EOF
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_kstat_kstat_lookup=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_kstat_kstat_lookup=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
+echo "$as_me:$LINENO: result: $ac_cv_lib_kstat_kstat_lookup" >&5
+echo "${ECHO_T}$ac_cv_lib_kstat_kstat_lookup" >&6
+if test $ac_cv_lib_kstat_kstat_lookup = yes; then
 
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBKSTAT 1
+_ACEOF
 
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
+        LNETSNMPLIBS="${LNETSNMPLIBS} -lkstat"
+fi
 
-#include <stdio.h>
 
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
+# Check for libraries that the agent needs
+# saving old libraries
+NONAGENTLIBS=$LIBS
 
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
+# Check for security related functions
+if test "x$tryopenssl" != "xno"; then
+    if test "x$askedopenssl" != "xyes" -a "x$askedpkcs" = "xyes"; then
+      echo "$as_me:$LINENO: checking for C_Initialize in -lpkcs11" >&5
+echo $ECHO_N "checking for C_Initialize in -lpkcs11... $ECHO_C" >&6
+if test "${ac_cv_lib_pkcs11_C_Initialize+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpkcs11  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-/* When -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
 #endif
-
-int fnord () { return 42; }
-int main ()
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char C_Initialize ();
+int
+main ()
 {
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else
-        {
-	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-          else puts (dlerror ());
-	}
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
+C_Initialize ();
+  ;
+  return 0;
 }
-_LT_EOF
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_pkcs11_C_Initialize=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_pkcs11_C_Initialize=no
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_pkcs11_C_Initialize" >&5
+echo "${ECHO_T}$ac_cv_lib_pkcs11_C_Initialize" >&6
+if test $ac_cv_lib_pkcs11_C_Initialize = yes; then
 
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBPKCS11 1
+_ACEOF
 
+              LIBPKCS11="-lpkcs11"
+fi
 
+    else
+      if test "x$tryrsaref" != "xno"; then
 
+echo "$as_me:$LINENO: checking for RSAPrivateDecrypt in -lrsaref" >&5
+echo $ECHO_N "checking for RSAPrivateDecrypt in -lrsaref... $ECHO_C" >&6
+if test "${ac_cv_lib_rsaref_RSAPrivateDecrypt+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lrsaref  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char RSAPrivateDecrypt ();
+int
+main ()
+{
+RSAPrivateDecrypt ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_rsaref_RSAPrivateDecrypt=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_rsaref_RSAPrivateDecrypt=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_rsaref_RSAPrivateDecrypt" >&5
+echo "${ECHO_T}$ac_cv_lib_rsaref_RSAPrivateDecrypt" >&6
+if test $ac_cv_lib_rsaref_RSAPrivateDecrypt = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBRSAREF 1
+_ACEOF
 
+  LIBS="-lrsaref $LIBS"
 
+fi
 
 
+echo "$as_me:$LINENO: checking for RSA_PKCS1_RSAref in -lRSAglue" >&5
+echo $ECHO_N "checking for RSA_PKCS1_RSAref in -lRSAglue... $ECHO_C" >&6
+if test "${ac_cv_lib_RSAglue_RSA_PKCS1_RSAref+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lRSAglue  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-
-
-
-
-
-
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char RSA_PKCS1_RSAref ();
+int
+main ()
+{
+RSA_PKCS1_RSAref ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_RSAglue_RSA_PKCS1_RSAref=yes
 else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP" ; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    fi
-    ;;
-  *)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    ;;
-  esac
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_RSAglue_RSA_PKCS1_RSAref=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_RSAglue_RSA_PKCS1_RSAref" >&5
+echo "${ECHO_T}$ac_cv_lib_RSAglue_RSA_PKCS1_RSAref" >&6
+if test $ac_cv_lib_RSAglue_RSA_PKCS1_RSAref = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBRSAGLUE 1
+_ACEOF
 
+  LIBS="-lRSAglue $LIBS"
 
+fi
 
+      fi
 
+      echo "$as_me:$LINENO: checking for EVP_md5 in -lcrypto" >&5
+echo $ECHO_N "checking for EVP_md5 in -lcrypto... $ECHO_C" >&6
+if test "${ac_cv_lib_crypto_EVP_md5+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcrypto  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char EVP_md5 ();
+int
+main ()
+{
+EVP_md5 ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_crypto_EVP_md5=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_crypto_EVP_md5=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_EVP_md5" >&5
+echo "${ECHO_T}$ac_cv_lib_crypto_EVP_md5" >&6
+if test $ac_cv_lib_crypto_EVP_md5 = yes; then
 
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBCRYPTO 1
+_ACEOF
 
+              LIBCRYPTO="-lcrypto"
+fi
 
+      echo "$as_me:$LINENO: checking for AES_cfb128_encrypt in -lcrypto" >&5
+echo $ECHO_N "checking for AES_cfb128_encrypt in -lcrypto... $ECHO_C" >&6
+if test "${ac_cv_lib_crypto_AES_cfb128_encrypt+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcrypto  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char AES_cfb128_encrypt ();
+int
+main ()
+{
+AES_cfb128_encrypt ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_crypto_AES_cfb128_encrypt=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_crypto_AES_cfb128_encrypt=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_AES_cfb128_encrypt" >&5
+echo "${ECHO_T}$ac_cv_lib_crypto_AES_cfb128_encrypt" >&6
+if test $ac_cv_lib_crypto_AES_cfb128_encrypt = yes; then
 
-  # Report which library types will actually be built
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_AES_CFB128_ENCRYPT 1
+_ACEOF
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
-  test "$can_build_shared" = "no" && enable_shared=no
+fi
 
-  # On AIX, shared libraries and static libraries use the same namespace, and
-  # are all built from PIC.
-  case $host_os in
-  aix3*)
-    test "$enable_shared" = yes && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
     fi
-    ;;
+elif test "x$askedpkcs" = "xyes"; then
+    echo "$as_me:$LINENO: checking for C_Initialize in -lpkcs11" >&5
+echo $ECHO_N "checking for C_Initialize in -lpkcs11... $ECHO_C" >&6
+if test "${ac_cv_lib_pkcs11_C_Initialize+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpkcs11  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-  aix[4-9]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
-    fi
-    ;;
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char C_Initialize ();
+int
+main ()
+{
+C_Initialize ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_pkcs11_C_Initialize=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
-  # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
+ac_cv_lib_pkcs11_C_Initialize=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_pkcs11_C_Initialize" >&5
+echo "${ECHO_T}$ac_cv_lib_pkcs11_C_Initialize" >&6
+if test $ac_cv_lib_pkcs11_C_Initialize = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBPKCS11 1
+_ACEOF
 
+            LIBPKCS11="-lpkcs11"
+fi
 
+fi
 
+LIBS=$NONAGENTLIBS
 
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+# check for tcp wrapper support
+_cppflags="${CPPFLAGS}"
+_ldflags="${LDFLAGS}"
 
-CC="$lt_save_CC"
 
+# Check whether --with-libwrap or --without-libwrap was given.
+if test "${with_libwrap+set}" = set; then
+  withval="$with_libwrap"
 
+  if test "$with_libwrap" != "no"; then
+    if test "$with_libwrap" != "yes"; then
+      CPPFLAGS="${CPPFLAGS} -I$with_libwrap/include"
+      LDFLAGS="${LDFLAGS} -L$with_libwrap/lib"
+    fi
 
+    _libs=${LIBS}
+    if test "${ac_cv_header_tcpd_h+set}" = set; then
+  echo "$as_me:$LINENO: checking for tcpd.h" >&5
+echo $ECHO_N "checking for tcpd.h... $ECHO_C" >&6
+if test "${ac_cv_header_tcpd_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_tcpd_h" >&5
+echo "${ECHO_T}$ac_cv_header_tcpd_h" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking tcpd.h usability" >&5
+echo $ECHO_N "checking tcpd.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <tcpd.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
+# Is the header present?
+echo "$as_me:$LINENO: checking tcpd.h presence" >&5
+echo $ECHO_N "checking tcpd.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <tcpd.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: tcpd.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: tcpd.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: tcpd.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: tcpd.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: tcpd.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: tcpd.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: tcpd.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: tcpd.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: tcpd.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: tcpd.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: tcpd.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: tcpd.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: tcpd.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: tcpd.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: tcpd.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: tcpd.h: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for tcpd.h" >&5
+echo $ECHO_N "checking for tcpd.h... $ECHO_C" >&6
+if test "${ac_cv_header_tcpd_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_tcpd_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_tcpd_h" >&5
+echo "${ECHO_T}$ac_cv_header_tcpd_h" >&6
 
+fi
+if test $ac_cv_header_tcpd_h = yes; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: Asked to use libwrap but I couldn't find tcpd.h." >&5
+echo "$as_me: error: Asked to use libwrap but I couldn't find tcpd.h." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 
 
 
+    LIBS="$LIBS -lwrap"
+	echo "$as_me:$LINENO: checking for TCP wrappers library -lwrap" >&5
+echo $ECHO_N "checking for TCP wrappers library -lwrap... $ECHO_C" >&6
+	# XXX: should check for hosts_ctl
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+		     #include <tcpd.h>
+		     int allow_severity = 0;
+		     int deny_severity  = 0;
 
+int
+main ()
+{
+hosts_access((void *)0)
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
 
-        ac_config_commands="$ac_config_commands libtool"
 
+	    echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+	    cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_USE_LIBWRAP 1
+_ACEOF
 
+	    test "$with_libwrap" != no -a "$with_libwrap" != yes && _wraplibs="-L$with_libwrap/lib"
+	    _wraplibs="$_wraplibs -lwrap"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
 
-# Only expand once:
+	    echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+	    # Linux RedHat 6.1 won't link libwrap without libnsl
+	    echo "$as_me:$LINENO: checking for yp_get_default_domain" >&5
+echo $ECHO_N "checking for yp_get_default_domain... $ECHO_C" >&6
+if test "${ac_cv_func_yp_get_default_domain+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define yp_get_default_domain to an innocuous variant, in case <limits.h> declares yp_get_default_domain.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define yp_get_default_domain innocuous_yp_get_default_domain
 
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char yp_get_default_domain (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
+#undef yp_get_default_domain
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char yp_get_default_domain ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_yp_get_default_domain) || defined (__stub___yp_get_default_domain)
+choke me
+#else
+char (*f) () = yp_get_default_domain;
+#endif
+#ifdef __cplusplus
+}
+#endif
 
-##
-#   Build environment:
-##
+int
+main ()
+{
+return f != yp_get_default_domain;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_yp_get_default_domain=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-#   developer build
-#       (enabled by default when building from SVN checkout)
-#
-if test "x$developer" != "xno" -a -f $srcdir/remove-files; then
-    developer="yes"
+ac_cv_func_yp_get_default_domain=no
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for developer gcc flags" >&5
-$as_echo_n "checking for developer gcc flags... " >&6; }
-if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_yp_get_default_domain" >&5
+echo "${ECHO_T}$ac_cv_func_yp_get_default_domain" >&6
+if test $ac_cv_func_yp_get_default_domain = yes; then
+  :
+else
 
-    #       WWWXXX - strict type checking
-    #
-    DEVFLAGS="-Wall -Wstrict-prototypes -Wwrite-strings -Wcast-qual"
+echo "$as_me:$LINENO: checking for yp_get_default_domain in -lnsl" >&5
+echo $ECHO_N "checking for yp_get_default_domain in -lnsl... $ECHO_C" >&6
+if test "${ac_cv_lib_nsl_yp_get_default_domain+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-    DEVFLAGS=""
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEVFLAGS" >&5
-$as_echo "$DEVFLAGS" >&6; }
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char yp_get_default_domain ();
+int
+main ()
+{
+yp_get_default_domain ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_nsl_yp_get_default_domain=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_nsl_yp_get_default_domain=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_yp_get_default_domain" >&5
+echo "${ECHO_T}$ac_cv_lib_nsl_yp_get_default_domain" >&6
+if test $ac_cv_lib_nsl_yp_get_default_domain = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBNSL 1
+_ACEOF
 
-#   building outside source directory
-#
-#       a) ensure build include paths are before source
-#       b) ensure GNU make uses 'vpath' instead of 'VPATH'
-#
-NON_GNU_VPATH="VPATH ="
-GNU_vpath="#vpath"
+  LIBS="-lnsl $LIBS"
 
-#       define include paths relative to top_srcdir
-#       tweak includes if we're building outside of the source dir
-#
-if test "x$srcdir" = "x."; then
-    TOP_INCLUDES=SRC_TOP_INCLUDES
-    SNMPLIB_INCLUDES=SRC_SNMPLIB_INCLUDES
-    AGENT_INCLUDES=SRC_AGENT_INCLUDES
-    HELPER_INCLUDES=SRC_HELPER_INCLUDES
-    MIBGROUP_INCLUDES=SRC_MIBGROUP_INCLUDES
-else
-    TOP_INCLUDES=BLD_TOP_INCLUDES
-    SNMPLIB_INCLUDES=BLD_SNMPLIB_INCLUDES
-    AGENT_INCLUDES=BLD_AGENT_INCLUDES
-    HELPER_INCLUDES=BLD_HELPER_INCLUDES
-    MIBGROUP_INCLUDES=BLD_MIBGROUP_INCLUDES
-    if test $have_gnu_make -eq 0 ; then
-        NON_GNU_VPATH="#VPATH ="
-        GNU_vpath="vpath"
-    fi
 fi
 
+fi
 
+	    echo "$as_me:$LINENO: checking for TCP wrappers library -lwrap linked with -lnsl" >&5
+echo $ECHO_N "checking for TCP wrappers library -lwrap linked with -lnsl... $ECHO_C" >&6
+	    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+		         #include <tcpd.h>
+		         int allow_severity = 0;
+	                 int deny_severity  = 0;
 
+int
+main ()
+{
+hosts_access((void *)0)
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+			cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_USE_LIBWRAP 1
+_ACEOF
 
+			test "$with_libwrap" != no -a "$with_libwrap" != yes && _wraplibs="-L$with_libwrap/lib"
+			_wraplibs="$_wraplibs -lwrap -lnsl"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+			{ { echo "$as_me:$LINENO: error: Asked to use libwrap but I couldn't find it." >&5
+echo "$as_me: error: Asked to use libwrap but I couldn't find it." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+    LAGENTLIBS="$_wraplibs"
+    CPPFLAGS=${_cppflags}
+    LDFLAGS=${_ldflags}
+    LIBS=${_libs}
+  fi
 
+fi;
 
 
 
-##
-#   System-related compilation checks:
-##
-
-#       What system are we building for
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
-$as_echo_n "checking target system type... " >&6; }
-if ${ac_cv_target+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_header in rpm/rpmlib.h rpm/header.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 else
-  if test "x$target_alias" = x; then
-  ac_cv_target=$ac_cv_host
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
 else
-  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
-fi
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_header_compiler=no
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
-$as_echo "$ac_cv_target" >&6; }
-case $ac_cv_target in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
-esac
-target=$ac_cv_target
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_target
-shift
-target_cpu=$1
-target_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-target_os=$*
-IFS=$ac_save_IFS
-case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
-
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-test -n "$target_alias" &&
-  test "$program_prefix$program_suffix$program_transform_name" = \
-    NONENONEs,x,x, &&
-  program_prefix=${target_alias}-
-
-PARTIALTARGETOS=`echo $target_os | sed 's/[-._].*//'`
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-  cat >> configure-summary << EOF
-  Building for:               $PARTIALTARGETOS
-EOF
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
+fi
 
-#
-#    Whether or not Cygwin's ld recognizes the flag -no-undefined.
-#
+done
 
-case x$target_os in
-xcygwin*)
-  saved_LDFLAGS=$LDFLAGS
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker supports -no-undefined" >&5
-$as_echo_n "checking whether the linker supports -no-undefined... " >&6; }
-  LDFLAGS="$saved_LDFLAGS -Wl,-no-undefined"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+if test "${ac_cv_header_rpm_rpmlib_h+set}" = set; then
+  echo "$as_me:$LINENO: checking for rpm/rpmlib.h" >&5
+echo $ECHO_N "checking for rpm/rpmlib.h... $ECHO_C" >&6
+if test "${ac_cv_header_rpm_rpmlib_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_rpm_rpmlib_h" >&5
+echo "${ECHO_T}$ac_cv_header_rpm_rpmlib_h" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking rpm/rpmlib.h usability" >&5
+echo $ECHO_N "checking rpm/rpmlib.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+$ac_includes_default
+#include <rpm/rpmlib.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-int
-main ()
-{
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-  ;
-  return 0;
-}
+# Is the header present?
+echo "$as_me:$LINENO: checking rpm/rpmlib.h presence" >&5
+echo $ECHO_N "checking rpm/rpmlib.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <rpm/rpmlib.h>
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; };                   LD_NO_UNDEFINED=-no-undefined
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  ac_cpp_err=yes
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
-  LDFLAGS="$saved_LDFLAGS"
-  ;;
-esac
-
-
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-#
-#   Socket library: either 'default' (non-MinGW) or 'winsock2' (MinGW).
-#
-case x$target_os in
-  xmingw*)
-    with_socklib=winsock2
-    if test "x$enable_ipv6" = "xyes"; then
-      CFLAGS="-D_WIN32_WINNT=0x0501 $CFLAGS"
-    fi
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: rpm/rpmlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: rpm/rpmlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: rpm/rpmlib.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: rpm/rpmlib.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: rpm/rpmlib.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: rpm/rpmlib.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: rpm/rpmlib.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: rpm/rpmlib.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: rpm/rpmlib.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: rpm/rpmlib.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: rpm/rpmlib.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: rpm/rpmlib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: rpm/rpmlib.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: rpm/rpmlib.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: rpm/rpmlib.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: rpm/rpmlib.h: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
     ;;
-  *)
-    with_socklib=default;;
 esac
+echo "$as_me:$LINENO: checking for rpm/rpmlib.h" >&5
+echo $ECHO_N "checking for rpm/rpmlib.h... $ECHO_C" >&6
+if test "${ac_cv_header_rpm_rpmlib_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_rpm_rpmlib_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_rpm_rpmlib_h" >&5
+echo "${ECHO_T}$ac_cv_header_rpm_rpmlib_h" >&6
+
+fi
+if test $ac_cv_header_rpm_rpmlib_h = yes; then
+  rpmlib_h=yes
+else
+  rpmlib_h=no
+fi
 
 
-#   Check system define behaviour
-#       Does "-Ux -Dx=x" work as expected?
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to un-define target system token (before redefining)" >&5
-$as_echo_n "checking whether to un-define target system token (before redefining)... " >&6; }
-OLD_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="-U$PARTIALTARGETOS -D$PARTIALTARGETOS=$PARTIALTARGETOS"
+if test "${ac_cv_header_rpm_header_h+set}" = set; then
+  echo "$as_me:$LINENO: checking for rpm/header.h" >&5
+echo $ECHO_N "checking for rpm/header.h... $ECHO_C" >&6
+if test "${ac_cv_header_rpm_header_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_rpm_header_h" >&5
+echo "${ECHO_T}$ac_cv_header_rpm_header_h" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking rpm/header.h usability" >&5
+echo $ECHO_N "checking rpm/header.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <rpm/header.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+# Is the header present?
+echo "$as_me:$LINENO: checking rpm/header.h presence" >&5
+echo $ECHO_N "checking rpm/header.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-[
-#ifdef $PARTIALTARGETOS
-yes
-#endif
-    ]
+#include <rpm/header.h>
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
-    PARTIALTARGETFLAGS="-U$PARTIALTARGETOS -D$PARTIALTARGETOS=$PARTIALTARGETOS"
-       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
 else
-    PARTIALTARGETFLAGS="-D$PARTIALTARGETOS=$PARTIALTARGETOS"
-       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  ac_cpp_err=yes
 fi
-rm -f conftest*
-
-CFLAGS="$CFLAGS $PARTIALTARGETFLAGS"
-CPPFLAGS="$OLD_CPPFLAGS"
-
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-#       Determine appropriate <net-snmp/system/{os}.h> include
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for system include file" >&5
-$as_echo_n "checking for system include file... " >&6; }
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-filebase=$target_os
-# ignore binary format indication
-filebase=`echo $filebase | $SED 's/elf//'`
-filebase=`echo $filebase | $SED 's/aout//'`
-filebase=`echo $filebase | $SED 's/ecoff//'`
-filebase=`echo $filebase | $SED 's/coff//'`
-while test "x$filebase" != "x$last" -a ! -f $srcdir/include/net-snmp/system/$filebase.h
-do
-    last=$filebase
-    filebase=`echo $filebase | $SED 's/[-._][^-._]*$//'`
-    if test "x$filebase" = "x$last"; then
-	filebase=`echo $filebase | $SED 's/[0-9]*$//'`
-    fi
-done
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: rpm/header.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: rpm/header.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: rpm/header.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: rpm/header.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: rpm/header.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: rpm/header.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: rpm/header.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: rpm/header.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: rpm/header.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: rpm/header.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: rpm/header.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: rpm/header.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: rpm/header.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: rpm/header.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: rpm/header.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: rpm/header.h: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for rpm/header.h" >&5
+echo $ECHO_N "checking for rpm/header.h... $ECHO_C" >&6
+if test "${ac_cv_header_rpm_header_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_rpm_header_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_rpm_header_h" >&5
+echo "${ECHO_T}$ac_cv_header_rpm_header_h" >&6
 
-if test "x$filebase" = "x$last"; then
-    filebase="generic"
 fi
-ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE="net-snmp/system/$filebase.h"
+if test $ac_cv_header_rpm_header_h = yes; then
+  rpmheader_h=yes
+else
+  rpmheader_h=no
+fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE" >&5
-$as_echo "$ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define NETSNMP_SYSTEM_INCLUDE_FILE "$ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE"
-_ACEOF
 
 
+if test "x$rpmheader_h" = "xno" -o "x$rpmlib_h" = "xno" ; then
+  if test "x$with_rpm" = "xyes" ; then
+    { { echo "$as_me:$LINENO: error: Could not find either the RPM header files needed and was specifically asked to use RPM support" >&5
+echo "$as_me: error: Could not find either the RPM header files needed and was specifically asked to use RPM support" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    with_rpm=no
+  fi
+fi
 
-#       Determine appropriate <net-snmp/machine/{cpu}.h> include
 #
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for machine-type include file" >&5
-$as_echo_n "checking for machine-type include file... " >&6; }
-
-filebase=$target_cpu
-while test "x$filebase" != "x$last" -a ! -f $srcdir/include/net-snmp/machine/$filebase.h
-do
-    last=$filebase
-    filebase=`echo $filebase | $SED 's/[-._][^-._]*$//'`
-done
-
-if test "x$filebase" = "x$last"; then
-    filebase="generic"
-fi
-ac_cv_NETSNMP_MACHINE_INCLUDE_FILE="net-snmp/machine/$filebase.h"
+# rpm libraries only needed for the host resources mib software
+# installed tables (on linux in particular)
+#
+if test "x$with_rpm" != "xno" && \
+        echo " $module_list " | grep " host/hr_swinst " > /dev/null; then
+  # ARG.  RPM is a real pain.
+  # FWIW librpm.la, librpmio.la, and libpopt.la have correct dependencies.
+  _rpmlibs=""
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_NETSNMP_MACHINE_INCLUDE_FILE" >&5
-$as_echo "$ac_cv_NETSNMP_MACHINE_INCLUDE_FILE" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define NETSNMP_MACHINE_INCLUDE_FILE "$ac_cv_NETSNMP_MACHINE_INCLUDE_FILE"
-_ACEOF
+  # zlib is required for newer versions of rpm
+  _cppflags="${CPPFLAGS}"
+  _ldflags="${LDFLAGS}"
 
 
+# Check whether --with-zlib or --without-zlib was given.
+if test "${with_zlib+set}" = set; then
+  withval="$with_zlib"
 
-##
-#   Platform-specific compilation checks:
-##
+    if test -d "$withval"; then
+      CPPFLAGS="${CPPFLAGS} -I$withval/include"
+      LDFLAGS="${LDFLAGS} -L$withval/lib"
+    fi
 
-#   Preprocessor checks:
-#
+fi;
 
-#       More sensible system identifier                 (MinGW)
-#
-if test "x$PARTIALTARGETOS" = "xmingw32msvc"; then
-	CFLAGS="$CFLAGS -Dmingw32"
+  # dunno if this is needed for rpm-4.0.x, earlier probably needs.
+  if test "${ac_cv_header_zlib_h+set}" = set; then
+  echo "$as_me:$LINENO: checking for zlib.h" >&5
+echo $ECHO_N "checking for zlib.h... $ECHO_C" >&6
+if test "${ac_cv_header_zlib_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-
-#       Handle .in file extension                       (GCC)
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for additional cpp flags" >&5
-$as_echo_n "checking for additional cpp flags... " >&6; }
-if test "x$GCC" = "xyes" -a "x$CPP" = "x$CC -E"; then
-    EXTRACPPFLAGS="-x c"
+echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5
+echo "${ECHO_T}$ac_cv_header_zlib_h" >&6
 else
-    EXTRACPPFLAGS=""
-fi
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking zlib.h usability" >&5
+echo $ECHO_N "checking zlib.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <zlib.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-#       Solaris extra CPP flags                         (Solaris)
-#
-if test "x$GCC" != "xyes"; then
-    case $target_os in
-        solaris*) EXTRACPPFLAGS="$EXTRACPPFLAGS -Xs" ;;
-    esac
+ac_header_compiler=no
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXTRACPPFLAGS" >&5
-$as_echo "$EXTRACPPFLAGS" >&6; }
-
-
-#   Compiler checks:
-#
-
-# Extract the first word of "$CC", so it can be a program name with args.
-set dummy $CC; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CCPATH+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $CCPATH in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_CCPATH="$CCPATH" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_CCPATH="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
+# Is the header present?
+echo "$as_me:$LINENO: checking zlib.h presence" >&5
+echo $ECHO_N "checking zlib.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <zlib.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
   fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-CCPATH=$ac_cv_path_CCPATH
-if test -n "$CCPATH"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCPATH" >&5
-$as_echo "$CCPATH" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  ac_cpp_err=yes
 fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-case $target_os in
-    bsdi*)
-        #   Check for bundled compiler                  (BSDi)
-        #
-	if test "x$CCPATH" = "x/usr/ucb/cc" -o "x$CCPATH" = "x/usr/bin/cc"; then
-	    as_fn_error $? "
-
-*** The BSDI /usr/ucb/cc compiler does not work with this package.
-*** Please run configure with --with-cc=gcc
-" "$LINENO" 5
-	fi
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: zlib.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
     ;;
-    solaris*)
-        #   Check for bundled compiler                  (Solaris)
-        #
-	if test "x$CCPATH" = "x/usr/ucb/cc"; then
-	    as_fn_error $? "
-
-*** The solaris /usr/ucb/cc compiler does not work with this package.
-*** Please put a different compiler in your path first or run
-*** configure with --with-cc=XX, where XX is the compiler you want to use.
-" "$LINENO" 5
-	fi
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: zlib.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: zlib.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: zlib.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: zlib.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: zlib.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: zlib.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: zlib.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: zlib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: zlib.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: zlib.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: zlib.h: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
     ;;
 esac
+echo "$as_me:$LINENO: checking for zlib.h" >&5
+echo $ECHO_N "checking for zlib.h... $ECHO_C" >&6
+if test "${ac_cv_header_zlib_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_zlib_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5
+echo "${ECHO_T}$ac_cv_header_zlib_h" >&6
 
+fi
+if test $ac_cv_header_zlib_h = yes; then
 
-#   Compiler flags:
-#
-
-# The Net-SNMP source code is not strict-aliasing safe, so add
-# -fno-strict-aliasing to $CFLAGS if the compiler supports it.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -fno-strict-aliasing" >&5
-$as_echo_n "checking whether the compiler supports -fno-strict-aliasing... " >&6; }
-netsnmp_save_CFLAGS="$CFLAGS"
-CFLAGS="-fno-strict-aliasing $CFLAGS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+echo "$as_me:$LINENO: checking for gzread in -lz" >&5
+echo $ECHO_N "checking for gzread in -lz... $ECHO_C" >&6
+if test "${ac_cv_lib_z_gzread+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lz  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char gzread ();
 int
 main ()
 {
-
+gzread ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_z_gzread=yes
 else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  CFLAGS="$netsnmp_save_CFLAGS"
-
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
-
-#   Linker checks:
-#
-
-case $target_os in
-    aix4.2*|aix4.3*|aix5*|aix6*|aix7*)
-        #   Runtime linking flags                       (AIX)
-        #
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking what linker flags to add to enable runtime linking on AIX" >&5
-$as_echo_n "checking what linker flags to add to enable runtime linking on AIX... " >&6; }
-        for ld_flag in $LDFLAGS; do
-            if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-                netsnmp_aix_runtimelinking_flags_ok=yes
-                break
-            fi
-        done
-        if test "X$netsnmp_aix_runtimelinking_flags_ok" != "Xyes"; then
-	    if test "x$GCC" = "xyes"; then
-	        netsnmp_aix_ldflags="-Wl,-brtl"
-	    else
-                netsnmp_aix_ldflags="-brtl"
-	    fi
-            LDFLAGS="$netsnmp_aix_ldflags $LDFLAGS"
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_aix_ldflags" >&5
-$as_echo "$netsnmp_aix_ldflags" >&6; }
-	else
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-	fi
-	;;
-
-    darwin8*|darwin9*|darwin10*)
-        #   Flat Namespace linking                      (Mac OS/X)
-        #
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether darwin ld might need -flat_namespace" >&5
-$as_echo_n "checking whether darwin ld might need -flat_namespace... " >&6; }
-	if test -z "$MACOSX_DEPLOYMENT_TARGET"; then
-		LDFLAGS="-flat_namespace $LDFLAGS"
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-	else
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-	fi
-	;;
-
-    *)
-        ;;
-esac
-
-
-#       dpkg package (swintst_apt)
-#	    used in agent only
-#
-# Extract the first word of "dpkg-query", so it can be a program name with args.
-set dummy dpkg-query; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_DPKG_QUERY_PATH+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $DPKG_QUERY_PATH in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_DPKG_QUERY_PATH="$DPKG_QUERY_PATH" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_DPKG_QUERY_PATH="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-DPKG_QUERY_PATH=$ac_cv_path_DPKG_QUERY_PATH
-if test -n "$DPKG_QUERY_PATH"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DPKG_QUERY_PATH" >&5
-$as_echo "$DPKG_QUERY_PATH" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ac_cv_lib_z_gzread=no
 fi
-
-
-if test x$DPKG_QUERY_PATH != x; then
-
-$as_echo "#define HAVE_DPKG_QUERY 1" >>confdefs.h
-
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_z_gzread" >&5
+echo "${ECHO_T}$ac_cv_lib_z_gzread" >&6
+if test $ac_cv_lib_z_gzread = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBZ 1
+_ACEOF
 
+  LIBS="-lz $LIBS"
 
-##
-#   Non-program/compilation checks:
-##
+else
+  CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}
+fi
 
-#       Substitute version number.
-#
-VERSION=$PACKAGE_VERSION
+else
+  CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}
+fi
 
 
-  cat >> configure-summary << EOF
-  Net-SNMP Version:           $PACKAGE_VERSION
-EOF
 
+  # two variants of bzip2 need checking.
 
+# Check whether --with-bzip2 or --without-bzip2 was given.
+if test "${with_bzip2+set}" = set; then
+  withval="$with_bzip2"
 
-# -*- autoconf -*-
-#########################################
-##
-# Configure paths
-##
-#########################################
+    if test -d "$withval"; then
+      CPPFLAGS="${CPPFLAGS} -I$withval/include"
+      LDFLAGS="${LDFLAGS} -L$withval/lib"
+    fi
+    if test "x$with_bzip2" != "xno"; then
+  echo "$as_me:$LINENO: checking for bzread in -lbz2" >&5
+echo $ECHO_N "checking for bzread in -lbz2... $ECHO_C" >&6
+if test "${ac_cv_lib_bz2_bzread+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbz2  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-##
-#   Prefix paths:
-##
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char bzread ();
+int
+main ()
+{
+bzread ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_bz2_bzread=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-#   Main prefix
-#
-if test "x$prefix" = "xNONE"; then
-  prefix=/usr/local
+ac_cv_lib_bz2_bzread=no
 fi
-
-#       Prefix must be an absolute path
-#           i.e. begin with "/"                         (Unix)
-#                or "[A-Z]:"                            (Windows)
-#
-firstchar=`echo $prefix | $SED 's/\(.\).*/\1/'`
-if test "x$firstchar" != "x/" ; then
-   secondchar=`echo $prefix | $SED 's/.\(.\).*/\1/'`
-   if test "x$secondchar" != "x:" ; then
-      prefix=`pwd`/$prefix
-      echo "adjusting prefix to $prefix"
-   fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_bz2_bzread" >&5
+echo "${ECHO_T}$ac_cv_lib_bz2_bzread" >&6
+if test $ac_cv_lib_bz2_bzread = yes; then
+  _rpmlibs="$_rpmlibs -lbz2"
+else
+  echo "$as_me:$LINENO: checking for BZ2_bzread in -lbz2" >&5
+echo $ECHO_N "checking for BZ2_bzread in -lbz2... $ECHO_C" >&6
+if test "${ac_cv_lib_bz2_BZ2_bzread+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbz2  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char BZ2_bzread ();
+int
+main ()
+{
+BZ2_bzread ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_bz2_BZ2_bzread=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-#   Exec prefix
-#
-#       Prefix must be an absolute path
-#           i.e. begin with "/"                         (Unix)
-#                or "[A-Z]:"                            (Windows)
-#
-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
+ac_cv_lib_bz2_BZ2_bzread=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_bz2_BZ2_bzread" >&5
+echo "${ECHO_T}$ac_cv_lib_bz2_BZ2_bzread" >&6
+if test $ac_cv_lib_bz2_BZ2_bzread = yes; then
+  _rpmlibs="$_rpmlibs -lbz2"
 fi
 
+fi
 
-##
-#   Environmental variables:
-##
-
-#       SNMPLIBPATH
-#
-SNMPLIBPATH=""
-tmpset="$libdir/snmp"
-while test "x$tmpset" != "x$SNMPLIBPATH"; do
-    SNMPLIBPATH="$tmpset"
-    eval tmpset="$tmpset"
-done
-cat >>confdefs.h <<_ACEOF
-#define SNMPLIBPATH "$SNMPLIBPATH"
-_ACEOF
-
+    fi
 
-cat >>confdefs.h <<_ACEOF
-#define SNMPDLMODPATH "$SNMPLIBPATH/dlmod"
-_ACEOF
+fi;
 
 
-#       SNMPSHAREPATH
-#
-SNMPSHAREPATH=""
-tmpset="$datadir/snmp"
-while test "x$tmpset" != "x$SNMPSHAREPATH"; do
-    SNMPSHAREPATH="$tmpset"
-    eval tmpset="$tmpset"
-done
-cat >>confdefs.h <<_ACEOF
-#define SNMPSHAREPATH "$SNMPSHAREPATH"
+  # two variants of db1 need checking.
+  echo "$as_me:$LINENO: checking for dbopen in -ldb1" >&5
+echo $ECHO_N "checking for dbopen in -ldb1... $ECHO_C" >&6
+if test "${ac_cv_lib_db1_dbopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldb1  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-
-
-#       MIBDIRS   (default)
-#
-if test "x$NETSNMP_DEFAULT_MIBDIRS" = "x"; then
-    NETSNMP_DEFAULT_MIBDIRS="\$HOME/.snmp/mibs:$SNMPSHAREPATH/mibs"
-    if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
-        #
-        #    USe Windows-style path separator
-        NETSNMP_DEFAULT_MIBDIRS=`echo "$NETSNMP_DEFAULT_MIBDIRS" | $SED 's/:/;/g'`
-    fi
-    cat >>confdefs.h <<_ACEOF
-#define NETSNMP_DEFAULT_MIBDIRS "$NETSNMP_DEFAULT_MIBDIRS"
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dbopen ();
+int
+main ()
+{
+dbopen ();
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_db1_dbopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_db1_dbopen=no
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_db1_dbopen" >&5
+echo "${ECHO_T}$ac_cv_lib_db1_dbopen" >&6
+if test $ac_cv_lib_db1_dbopen = yes; then
+  _rpmlibs="-ldb1 $_rpmlibs"
+else
+  echo "$as_me:$LINENO: checking for dbopen in -ldb" >&5
+echo $ECHO_N "checking for dbopen in -ldb... $ECHO_C" >&6
+if test "${ac_cv_lib_db_dbopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldb  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-
-#       SNMPCONFPATH
-#
-SNMPCONFPATH=""
-tmpset="$sysconfdir/snmp"
-while test "x$tmpset" != "x$SNMPCONFPATH"; do
-    SNMPCONFPATH="$tmpset"
-    eval tmpset="$tmpset"
-done
-cat >>confdefs.h <<_ACEOF
-#define SNMPCONFPATH "$SNMPCONFPATH"
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dbopen ();
+int
+main ()
+{
+dbopen ();
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_db_dbopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_db_dbopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_db_dbopen" >&5
+echo "${ECHO_T}$ac_cv_lib_db_dbopen" >&6
+if test $ac_cv_lib_db_dbopen = yes; then
+  _rpmlibs="-ldb $_rpmlibs"
+fi
 
+fi
 
-#########################################
-##
-# Checks for header files.
-##
-#########################################
 
-##
-#   Standard checks:
-##
-#  Core:
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
+  # two variants of db3 need checking.
+  echo "$as_me:$LINENO: checking for db_create in -ldb-3.1" >&5
+echo $ECHO_N "checking for db_create in -ldb-3.1... $ECHO_C" >&6
+if test "${ac_cv_lib_db_3_1_db_create+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldb-3.1  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char db_create ();
 int
 main ()
 {
-
+db_create ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_db_3_1_db_create=yes
 else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ac_cv_lib_db_3_1_db_create=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_db_3_1_db_create" >&5
+echo "${ECHO_T}$ac_cv_lib_db_3_1_db_create" >&6
+if test $ac_cv_lib_db_3_1_db_create = yes; then
+  _rpmlibs="-ldb-3.1 $_rpmlibs"
+else
+  echo "$as_me:$LINENO: checking for db_create in -ldb-3.0" >&5
+echo $ECHO_N "checking for db_create in -ldb-3.0... $ECHO_C" >&6
+if test "${ac_cv_lib_db_3_0_db_create+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldb-3.0  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <string.h>
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char db_create ();
+int
+main ()
+{
+db_create ();
+  ;
+  return 0;
+}
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_db_3_0_db_create=yes
 else
-  ac_cv_header_stdc=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_db_3_0_db_create=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_db_3_0_db_create" >&5
+echo "${ECHO_T}$ac_cv_lib_db_3_0_db_create" >&6
+if test $ac_cv_lib_db_3_0_db_create = yes; then
+  _rpmlibs="-ldb-3.0 $_rpmlibs"
 fi
-rm -f conftest*
 
 fi
 
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
 
+  # rpm-3.0.5 and later needs popt.
+  echo "$as_me:$LINENO: checking for poptParseArgvString in -lpopt" >&5
+echo $ECHO_N "checking for poptParseArgvString in -lpopt... $ECHO_C" >&6
+if test "${ac_cv_lib_popt_poptParseArgvString+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpopt  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char poptParseArgvString ();
+int
+main ()
+{
+poptParseArgvString ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_popt_poptParseArgvString=yes
 else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_popt_poptParseArgvString=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_popt_poptParseArgvString" >&5
+echo "${ECHO_T}$ac_cv_lib_popt_poptParseArgvString" >&6
+if test $ac_cv_lib_popt_poptParseArgvString = yes; then
+  _rpmlibs="-lpopt $_rpmlibs"
 fi
 
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
+
+  # rpm-4.0.x needs rpmio.
+  echo "$as_me:$LINENO: checking for Fopen in -lrpmio" >&5
+echo $ECHO_N "checking for Fopen in -lrpmio... $ECHO_C" >&6
+if test "${ac_cv_lib_rpmio_Fopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lrpmio $_rpmlibs $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
 #endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char Fopen ();
 int
 main ()
 {
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
+Fopen ();
+  ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_rpmio_Fopen=yes
 else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_rpmio_Fopen=no
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_rpmio_Fopen" >&5
+echo "${ECHO_T}$ac_cv_lib_rpmio_Fopen" >&6
+if test $ac_cv_lib_rpmio_Fopen = yes; then
+  _rpmlibs="-lrpmio $_rpmlibs"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
 
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
 
-fi
-          #  <stdlib.h>, <stdarg.h>,   <string.h>  & <float.h>
-ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
-  as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
-$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
-if eval \${$as_ac_Header+:} false; then :
-  $as_echo_n "(cached) " >&6
+  # now check for rpm using the appropriate libraries.
+  echo "$as_me:$LINENO: checking for rpmGetFilesystemList in -lrpm" >&5
+echo $ECHO_N "checking for rpmGetFilesystemList in -lrpm... $ECHO_C" >&6
+if test "${ac_cv_lib_rpm_rpmGetFilesystemList+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lrpm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <sys/types.h>
-#include <$ac_hdr>
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char rpmGetFilesystemList ();
 int
 main ()
 {
-if ((DIR *) 0)
-return 0;
+rpmGetFilesystemList ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$as_ac_Header=yes"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_rpm_rpmGetFilesystemList=yes
 else
-  eval "$as_ac_Header=no"
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_rpm_rpmGetFilesystemList=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-eval ac_res=\$$as_ac_Header
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+echo "$as_me:$LINENO: result: $ac_cv_lib_rpm_rpmGetFilesystemList" >&5
+echo "${ECHO_T}$ac_cv_lib_rpm_rpmGetFilesystemList" >&6
+if test $ac_cv_lib_rpm_rpmGetFilesystemList = yes; then
+
+    cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBRPM 1
 _ACEOF
 
-ac_header_dirent=$ac_hdr; break
-fi
+    LMIBLIBS="-lrpm $_rpmlibs $LMIBLIBS"
+    CFLAGS="$CFLAGS -I/usr/include/rpm"
 
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
-$as_echo_n "checking for library containing opendir... " >&6; }
-if ${ac_cv_search_opendir+:} false; then :
-  $as_echo_n "(cached) " >&6
 else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+    # rpm-4.0.3 librpmdb actually contains what we need.
+    echo "$as_me:$LINENO: checking for rpmdbOpen in -lrpmdb" >&5
+echo $ECHO_N "checking for rpmdbOpen in -lrpmdb... $ECHO_C" >&6
+if test "${ac_cv_lib_rpmdb_rpmdbOpen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lrpmdb -lrpm $_rpmlibs $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-char opendir ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char rpmdbOpen ();
 int
 main ()
 {
-return opendir ();
+rpmdbOpen ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' dir; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_opendir=$ac_res
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_rpmdb_rpmdbOpen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_rpmdb_rpmdbOpen=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_opendir+:} false; then :
-  break
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-done
-if ${ac_cv_search_opendir+:} false; then :
+echo "$as_me:$LINENO: result: $ac_cv_lib_rpmdb_rpmdbOpen" >&5
+echo "${ECHO_T}$ac_cv_lib_rpmdb_rpmdbOpen" >&6
+if test $ac_cv_lib_rpmdb_rpmdbOpen = yes; then
+
+      cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBRPM 1
+_ACEOF
+
+      LMIBLIBS="-lrpmdb -lrpm $_rpmlibs $LMIBLIBS"
+      CFLAGS="$CFLAGS -I/usr/include/rpm"
 
-else
-  ac_cv_search_opendir=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
-$as_echo "$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
 
 fi
 
+
+  # rpm 4.6 has incompatible API, turn on the legacy one
+  echo "$as_me:$LINENO: checking whether headerGetEntry is declared" >&5
+echo $ECHO_N "checking whether headerGetEntry is declared... $ECHO_C" >&6
+if test "${ac_cv_have_decl_headerGetEntry+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
-$as_echo_n "checking for library containing opendir... " >&6; }
-if ${ac_cv_search_opendir+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+#include <rpm/rpmlib.h>
+
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char opendir ();
 int
 main ()
 {
-return opendir ();
+#ifndef headerGetEntry
+  char *p = (char *) headerGetEntry;
+#endif
+
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' x; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_opendir=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_opendir+:} false; then :
-  break
-fi
-done
-if ${ac_cv_search_opendir+:} false; then :
-
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_have_decl_headerGetEntry=yes
 else
-  ac_cv_search_opendir=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_have_decl_headerGetEntry=no
 fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
-$as_echo "$ac_cv_search_opendir" >&6; }
-ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+echo "$as_me:$LINENO: result: $ac_cv_have_decl_headerGetEntry" >&5
+echo "${ECHO_T}$ac_cv_have_decl_headerGetEntry" >&6
+if test $ac_cv_have_decl_headerGetEntry = yes; then
+  :
+else
+
+cat >>confdefs.h <<\_ACEOF
+#define _RPM_4_4_COMPAT
+_ACEOF
 
 fi
 
 fi
-        #  <dirent.h>, <sys/ndir.h>, <sys/dir.h> & <ndir.h>
-#  Apps:
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5
-$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
-if ${ac_cv_header_sys_wait_h+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+# libkvm
+echo "$as_me:$LINENO: checking for kvm_read in -lkvm" >&5
+echo $ECHO_N "checking for kvm_read in -lkvm... $ECHO_C" >&6
+if test "${ac_cv_lib_kvm_kvm_read+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lkvm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/wait.h>
-#ifndef WEXITSTATUS
-# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
-#endif
-#ifndef WIFEXITED
-# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-#endif
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char kvm_read ();
 int
 main ()
 {
-  int s;
-  wait (&s);
-  s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
+kvm_read ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_sys_wait_h=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_kvm_kvm_read=yes
 else
-  ac_cv_header_sys_wait_h=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_kvm_kvm_read=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5
-$as_echo "$ac_cv_header_sys_wait_h" >&6; }
-if test $ac_cv_header_sys_wait_h = yes; then
-
-$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
-
+echo "$as_me:$LINENO: result: $ac_cv_lib_kvm_kvm_read" >&5
+echo "${ECHO_T}$ac_cv_lib_kvm_kvm_read" >&6
+if test $ac_cv_lib_kvm_kvm_read = yes; then
+  _libkvm="-lkvm"
 fi
-      #  <sys/wait.h>
 
-# allow for quick module/library/etc processing checks
-if test "x$NETSNMP_QUICK_CHECK" = "x" ; then
-
-##
-#   Stand-alone headers:
-##
-#  Core:
-for ac_header in getopt.h   pthread.h  regex.h                        string.h   syslog.h   unistd.h                       stdint.h   inttypes.h                                sys/param.h                          sys/select.h                         sys/socket.h                         sys/time.h                           sys/timeb.h                          sys/un.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+echo "$as_me:$LINENO: checking for kvm_openfiles" >&5
+echo $ECHO_N "checking for kvm_openfiles... $ECHO_C" >&6
+if test "${ac_cv_func_kvm_openfiles+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define kvm_openfiles to an innocuous variant, in case <limits.h> declares kvm_openfiles.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define kvm_openfiles innocuous_kvm_openfiles
 
-fi
-
-done
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char kvm_openfiles (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
-#  Library and Agent:
-for ac_header in nlist.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "nlist.h" "ac_cv_header_nlist_h" "
-$ac_includes_default
+#undef kvm_openfiles
 
-#ifndef LIBBSD_DISABLE_DEPRECATED
-#define LIBBSD_DISABLE_DEPRECATED 1
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char kvm_openfiles ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_kvm_openfiles) || defined (__stub___kvm_openfiles)
+choke me
+#else
+char (*f) () = kvm_openfiles;
+#endif
+#ifdef __cplusplus
+}
 #endif
 
-"
-if test "x$ac_cv_header_nlist_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_NLIST_H 1
+int
+main ()
+{
+return f != kvm_openfiles;
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_kvm_openfiles=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_func_kvm_openfiles=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
+echo "$as_me:$LINENO: result: $ac_cv_func_kvm_openfiles" >&5
+echo "${ECHO_T}$ac_cv_func_kvm_openfiles" >&6
+if test $ac_cv_func_kvm_openfiles = yes; then
 
-done
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_KVM_OPENFILES 1
+_ACEOF
 
+else
+  echo "$as_me:$LINENO: checking for kvm_openfiles in -lkvm" >&5
+echo $ECHO_N "checking for kvm_openfiles in -lkvm... $ECHO_C" >&6
+if test "${ac_cv_lib_kvm_kvm_openfiles+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lkvm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#  Library:
-for ac_header in fcntl.h    io.h       kstat.h                                   limits.h   locale.h                                    sys/file.h       sys/ioctl.h                           sys/sockio.h     sys/stat.h                            sys/systemcfg.h  sys/systeminfo.h                      sys/times.h      sys/uio.h                             sys/utsname.h                        netipx/ipx.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char kvm_openfiles ();
+int
+main ()
+{
+kvm_openfiles ();
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_kvm_kvm_openfiles=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_kvm_kvm_openfiles=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_kvm_kvm_openfiles" >&5
+echo "${ECHO_T}$ac_cv_lib_kvm_kvm_openfiles" >&6
+if test $ac_cv_lib_kvm_kvm_openfiles = yes; then
 
-done
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_KVM_OPENFILES 1
+_ACEOF
+
+	_libkvm="-lkvm"
+fi
 
+fi
 
-#  Agent:
-for ac_header in dlfcn.h    err.h      fcntl.h    fstab.h                                   grp.h      io.h                                      ioctls.h   kstat.h    kvm.h      limits.h                                  mntent.h   mtab.h                                               pkglocs.h             pwd.h                                     utmpx.h    utsname.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+echo "$as_me:$LINENO: checking for kvm_getprocs" >&5
+echo $ECHO_N "checking for kvm_getprocs... $ECHO_C" >&6
+if test "${ac_cv_func_kvm_getprocs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define kvm_getprocs to an innocuous variant, in case <limits.h> declares kvm_getprocs.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define kvm_getprocs innocuous_kvm_getprocs
 
-fi
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char kvm_getprocs (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
-done
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
+#undef kvm_getprocs
 
-for ac_header in sys/diskio.h  sys/dkio.h                                                   sys/file.h    sys/filio.h   sys/fixpoint.h                                 sys/fs.h      sys/ioctl.h   sys/loadavg.h  sys/mntent.h                    sys/mnttab.h  sys/pool.h    sys/protosw.h  sys/pstat.h                     sys/sockio.h  sys/stat.h    sys/statfs.h   sys/statvfs.h                   sys/stream.h  sys/sysget.h  sys/sysmp.h                                    sys/tcpipstats.h          [...]
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char kvm_getprocs ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_kvm_getprocs) || defined (__stub___kvm_getprocs)
+choke me
+#else
+char (*f) () = kvm_getprocs;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != kvm_getprocs;
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_kvm_getprocs=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_func_kvm_getprocs=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
+echo "$as_me:$LINENO: result: $ac_cv_func_kvm_getprocs" >&5
+echo "${ECHO_T}$ac_cv_func_kvm_getprocs" >&6
+if test $ac_cv_func_kvm_getprocs = yes; then
 
-done
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_KVM_GETPROCS 1
+_ACEOF
 
+else
+  echo "$as_me:$LINENO: checking for kvm_getprocs in -lkvm" >&5
+echo $ECHO_N "checking for kvm_getprocs in -lkvm... $ECHO_C" >&6
+if test "${ac_cv_lib_kvm_kvm_getprocs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lkvm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-for ac_header in asm/page.h asm/types.h                                 inet/mib2.h                                            linux/hdreg.h linux/tasks.h                            machine/param.h                                        netinet/tcp_fsm.h                                      ufs/fs.h                                               uvm/uvm_extern.h uvm/uvm_param.h                       vm/vm.h vm/vm_extern.h vm/vm_param.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char kvm_getprocs ();
+int
+main ()
+{
+kvm_getprocs ();
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_kvm_kvm_getprocs=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_kvm_kvm_getprocs=no
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_kvm_kvm_getprocs" >&5
+echo "${ECHO_T}$ac_cv_lib_kvm_kvm_getprocs" >&6
+if test $ac_cv_lib_kvm_kvm_getprocs = yes; then
 
-done
-
-
-#  Apps:
-for ac_header in fcntl.h    grp.h      pwd.h                        sys/cdefs.h   sys/ioctl.h                          sys/socket.h  sys/sockio.h                         sys/time.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_KVM_GETPROCS 1
 _ACEOF
 
+	_libkvm="-lkvm"
 fi
 
-done
-
+fi
 
-#  Not-Used:
-for ac_header in search.h   sgtty.h    xti.h                        sys/dmap.h sys/poll.h                              sys/timeout.h                                      machine/pte.h                                      pci/pci.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+echo "$as_me:$LINENO: checking for kvm_getswapinfo" >&5
+echo $ECHO_N "checking for kvm_getswapinfo... $ECHO_C" >&6
+if test "${ac_cv_func_kvm_getswapinfo+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define kvm_getswapinfo to an innocuous variant, in case <limits.h> declares kvm_getswapinfo.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define kvm_getswapinfo innocuous_kvm_getswapinfo
 
-fi
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char kvm_getswapinfo (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
-done
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
+#undef kvm_getswapinfo
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char kvm_getswapinfo ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_kvm_getswapinfo) || defined (__stub___kvm_getswapinfo)
+choke me
+#else
+char (*f) () = kvm_getswapinfo;
+#endif
+#ifdef __cplusplus
+}
+#endif
 
-# Valgrind
-for ac_header in valgrind/valgrind.h valgrind/memcheck.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+int
+main ()
+{
+return f != kvm_getswapinfo;
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_kvm_getswapinfo=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_func_kvm_getswapinfo=no
 fi
-
-done
-
-# OpenSSL
-for ac_header in openssl/aes.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
+echo "$as_me:$LINENO: result: $ac_cv_func_kvm_getswapinfo" >&5
+echo "${ECHO_T}$ac_cv_func_kvm_getswapinfo" >&6
+if test $ac_cv_func_kvm_getswapinfo = yes; then
 
-done
-     #  (Core)
-for ac_header in openssl/dh.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_KVM_GETSWAPINFO 1
 _ACEOF
 
-fi
+else
+  echo "$as_me:$LINENO: checking for kvm_getswapinfo in -lkvm" >&5
+echo $ECHO_N "checking for kvm_getswapinfo in -lkvm... $ECHO_C" >&6
+if test "${ac_cv_lib_kvm_kvm_getswapinfo+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lkvm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-done
-     #  (Apps)
-#  Not-Used:
-for ac_header in openssl/des.h  openssl/hmac.h                   openssl/evp.h  security/cryptoki.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char kvm_getswapinfo ();
+int
+main ()
+{
+kvm_getswapinfo ();
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_kvm_kvm_getswapinfo=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_kvm_kvm_getswapinfo=no
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_kvm_kvm_getswapinfo" >&5
+echo "${ECHO_T}$ac_cv_lib_kvm_kvm_getswapinfo" >&6
+if test $ac_cv_lib_kvm_kvm_getswapinfo = yes; then
 
-done
-
-
-# RPM subdirectory path                   (Agent)
-if test "x$with_rpm" != "xno"; then
-  for ac_header in rpm/rpmts.h   rpm/rpmfileutil.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include <rpm/rpmlib.h>
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_KVM_GETSWAPINFO 1
 _ACEOF
 
+	_libkvm="-lkvm"
 fi
 
-done
-
 fi
 
+if test "x${_libkvm}" != "x"; then
 
-##
-#   Pre-requisite on other headers:
-##
-
-#       requiring <sys/param.h>  (MAXPATHLEN)           (OpenBSD 3.4)
-#  Agent:
-#
-for ac_header in sys/swap.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "sys/swap.h" "ac_cv_header_sys_swap_h" "$ac_includes_default
-
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-
-"
-if test "x$ac_cv_header_sys_swap_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_SWAP_H 1
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBKVM 1
 _ACEOF
 
+	LAGENTLIBS="$LAGENTLIBS ${_libkvm}"
 fi
 
-done
-
-
-#       requiring <sys/param.h>                         (FreeBSD)
-#
-#  Core:      (? Tested above? )
-for ac_header in stdlib.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+# DYNAMIC MODULE SUPPORT
+echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define dlopen innocuous_dlopen
 
-fi
-
-done
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char dlopen (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
-#
-#  Library:
-for ac_header in malloc.h        net/if_dl.h   sys/sysctl.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
 #endif
 
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
+#undef dlopen
 
-#
-#  Agent:
-for ac_header in malloc.h        osreldate.h                                     machine/types.h net/if_dl.h   net/if_types.h                    sys/dkstat.h    sys/conf.h    sys/mbuf.h                        sys/mount.h     sys/proc.h    sys/queue.h                       sys/sysctl.h    sys/user.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
 #endif
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
 #endif
 
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+int
+main ()
+{
+return f != dlopen;
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_func_dlopen=no
 fi
-
-done
-
-
-#       requiring <sys/sema.h>                          (IRIX 6.5)
-#  Agent:
-#
-for ac_header in sys/sema.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/sema.h" "ac_cv_header_sys_sema_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_sema_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_SEMA_H 1
-_ACEOF
-
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
 
-done
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_DLOPEN 1
+_ACEOF
 
-for ac_header in sys/hashing.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "sys/hashing.h" "ac_cv_header_sys_hashing_h" "$ac_includes_default
+else
+  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#if HAVE_SYS_SEMA_H
-#include <sys/sema.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
 #endif
-
-"
-if test "x$ac_cv_header_sys_hashing_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_HASHING_H 1
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_dl_dlopen=no
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
 
-done
-
-
-#       requiring <sys/socket.h>                        (Solaris 9)
-#  Agent:
-#
-for ac_header in sys/socketvar.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "sys/socketvar.h" "ac_cv_header_sys_socketvar_h" "$ac_includes_default
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_DLOPEN 1
+_ACEOF
 
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
 
-"
-if test "x$ac_cv_header_sys_socketvar_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_SOCKETVAR_H 1
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBDL 1
 _ACEOF
 
+	LMIBLIBS="${LMIBLIBS} -ldl"
 fi
 
-done
+fi
 
 
-#       requiring _KMEMUSER and <sys/types.h>           (BSDi3/IRIX)
-#  Agent:
-#
-for ac_header in sys/vnode.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "sys/vnode.h" "ac_cv_header_sys_vnode_h" "
-#define _KMEMUSER 1
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
+# nlist
 
-"
-if test "x$ac_cv_header_sys_vnode_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_VNODE_H 1
+
+
+for ac_func in nlist nlist64 knlist
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-fi
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
-done
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
+#undef $ac_func
 
-#       requiring <machine/types.h>                     (NetBSD)
-#  Agent:
-#
-for ac_header in sys/disklabel.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "sys/disklabel.h" "ac_cv_header_sys_disklabel_h" "
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
 #endif
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
 #endif
-#if HAVE_MACHINE_TYPES_H
-#include <machine/types.h>
+#ifdef __cplusplus
+}
 #endif
 
-"
-if test "x$ac_cv_header_sys_disklabel_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_DISKLABEL_H 1
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
+fi
 done
 
 
-#	QNX
-for ac_header in nbutil.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "nbutil.h" "ac_cv_header_nbutil_h" "$ac_includes_default"
-if test "x$ac_cv_header_nbutil_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_NBUTIL_H 1
+# whether we need -ldevstat for diskio MIB
+echo " $module_list " | grep " ucd-snmp/diskio " >/dev/null
+if test $? -eq 0 ; then
+	echo "$as_me:$LINENO: checking for getdevs" >&5
+echo $ECHO_N "checking for getdevs... $ECHO_C" >&6
+if test "${ac_cv_func_getdevs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define getdevs to an innocuous variant, in case <limits.h> declares getdevs.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define getdevs innocuous_getdevs
 
-fi
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char getdevs (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
-done
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
+#undef getdevs
 
-#       UFS headers
-#  Agent:
-#
-for ac_header in ufs/ufs/dinode.h ufs/ufs/quota.h ufs/ufs/inode.h ufs/ffs/fs.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
 #endif
-#if HAVE_UFS_UFS_DINODE_H
-#include <ufs/ufs/dinode.h>
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char getdevs ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_getdevs) || defined (__stub___getdevs)
+choke me
+#else
+char (*f) () = getdevs;
 #endif
-#if HAVE_UFS_UFS_QUOTA_H
-#include <ufs/ufs/quota.h>
+#ifdef __cplusplus
+}
 #endif
 
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+int
+main ()
+{
+return f != getdevs;
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_getdevs=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_func_getdevs=no
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_getdevs" >&5
+echo "${ECHO_T}$ac_cv_func_getdevs" >&6
+if test $ac_cv_func_getdevs = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_GETDEVS 1
+_ACEOF
 
-done
-
+else
+  echo "$as_me:$LINENO: checking for getdevs in -ldevstat" >&5
+echo $ECHO_N "checking for getdevs in -ldevstat... $ECHO_C" >&6
+if test "${ac_cv_lib_devstat_getdevs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldevstat  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#       requiring <vm/vm.h>                             (BSDi2)
-#  Agent:
-#
-for ac_header in vm/swap_pager.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "vm/swap_pager.h" "ac_cv_header_vm_swap_pager_h" "
-#if HAVE_VM_VM_H
-#include <vm/vm.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
 #endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char getdevs ();
+int
+main ()
+{
+getdevs ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_devstat_getdevs=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-"
-if test "x$ac_cv_header_vm_swap_pager_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_VM_SWAP_PAGER_H 1
+ac_cv_lib_devstat_getdevs=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_devstat_getdevs" >&5
+echo "${ECHO_T}$ac_cv_lib_devstat_getdevs" >&6
+if test $ac_cv_lib_devstat_getdevs = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_GETDEVS 1
 _ACEOF
 
+		LMIBLIBS="${LMIBLIBS} -ldevstat"
 fi
 
-done
+fi
 
+	echo "$as_me:$LINENO: checking for getdevs" >&5
+echo $ECHO_N "checking for getdevs... $ECHO_C" >&6
+if test "${ac_cv_func_getdevs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define getdevs to an innocuous variant, in case <limits.h> declares getdevs.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define getdevs innocuous_getdevs
 
-#       netlink/rtnetlink                               (Linux)
-#  Agent:
-#
-for ac_header in linux/netlink.h  linux/rtnetlink.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
-#if HAVE_ASM_TYPES_H
-#include <asm/types.h>
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char getdevs (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
 #endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
+
+#undef getdevs
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char getdevs ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_getdevs) || defined (__stub___getdevs)
+choke me
+#else
+char (*f) () = getdevs;
 #endif
-#if HAVE_LINUX_NETLINK_H
-#include <linux/netlink.h>
+#ifdef __cplusplus
+}
 #endif
 
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+int
+main ()
+{
+return f != getdevs;
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_getdevs=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_func_getdevs=no
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_getdevs" >&5
+echo "${ECHO_T}$ac_cv_func_getdevs" >&6
+if test $ac_cv_func_getdevs = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_DEVSTAT_GETDEVS 1
+_ACEOF
 
-done
-
-
+else
+  echo "$as_me:$LINENO: checking for devstat_getdevs in -ldevstat" >&5
+echo $ECHO_N "checking for devstat_getdevs in -ldevstat... $ECHO_C" >&6
+if test "${ac_cv_lib_devstat_devstat_getdevs+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldevstat  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#       Network headers
-#  Core or Library/Agent/Apps:
-#
-for ac_header in arpa/inet.h        net/if.h                               netinet/in.h       netdb.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_TIMEOUT_H
-#include <sys/timeout.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_SYS_SOCKETVAR_H
-#include <sys/socketvar.h>
-#endif
-#if HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#if HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_H
-#include <netinet/ip.h>
-#endif
-#if HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
-#if HAVE_NETINET_IP_ICMP_H
-#include <netinet/ip_icmp.h>
-#endif
-#if HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif
-#if HAVE_NETINET_UDP_H
-#include <netinet/udp.h>
-#endif
-#if HAVE_NETINET_TCP_TIMER_H
-#include <netinet/tcp_timer.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
 #endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char devstat_getdevs ();
+int
+main ()
+{
+devstat_getdevs ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_devstat_devstat_getdevs=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ac_cv_lib_devstat_devstat_getdevs=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_devstat_devstat_getdevs" >&5
+echo "${ECHO_T}$ac_cv_lib_devstat_devstat_getdevs" >&6
+if test $ac_cv_lib_devstat_devstat_getdevs = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_DEVSTAT_GETDEVS 1
 _ACEOF
 
+		LMIBLIBS="${LMIBLIBS} -ldevstat"
 fi
 
-done
+fi
 
-#
-#  Agent:
-for ac_header in net/if_arp.h       net/if_mib.h         net/if_var.h                       netinet/if_ether.h netinet/in_systm.h   netinet/in_var.h                   netinet/ip.h       netinet/ip_icmp.h                                       netinet/icmp_var.h netinet/ip_var.h                                        netinet/tcp.h      netinet/tcp_timer.h  netinet/tcp_var.h                  netinet/tcpip.h    netinet/udp.h        netinet/udp_var.h                  net/route.h        netine [...]
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_TIMEOUT_H
-#include <sys/timeout.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_SYS_SOCKETVAR_H
-#include <sys/socketvar.h>
-#endif
-#if HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#if HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_H
-#include <netinet/ip.h>
-#endif
-#if HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#if HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
-#if HAVE_NETINET_IP_ICMP_H
-#include <netinet/ip_icmp.h>
-#endif
-#if HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif
-#if HAVE_NETINET_UDP_H
-#include <netinet/udp.h>
-#endif
-#if HAVE_NETINET_TCP_TIMER_H
-#include <netinet/tcp_timer.h>
-#endif
-#if HAVE_NETINET_ICMP6_H
-#include <netinet/icmp6.h>
-#endif
+fi
 
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+# LM-SENSORS-MIB support
+echo " $module_list " | grep " ucd-snmp/lmSensors " > /dev/null
+if test $? -eq 0 ; then
+        echo "$as_me:$LINENO: checking for sensors support" >&5
+echo $ECHO_N "checking for sensors support... $ECHO_C" >&6
+        case $target_os in
+          solaris*)
+            if test "${ac_cv_header_picl_h+set}" = set; then
+  echo "$as_me:$LINENO: checking for picl.h" >&5
+echo $ECHO_N "checking for picl.h... $ECHO_C" >&6
+if test "${ac_cv_header_picl_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_picl_h" >&5
+echo "${ECHO_T}$ac_cv_header_picl_h" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking picl.h usability" >&5
+echo $ECHO_N "checking picl.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <picl.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_header_compiler=no
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-done
+# Is the header present?
+echo "$as_me:$LINENO: checking picl.h presence" >&5
+echo $ECHO_N "checking picl.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <picl.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-#       KAME (IPv6) headers
-#  Agent:
-#
-# KAME
-for ac_header in netinet/ip6.h                                                 netinet6/in6_var.h    netinet6/in6_pcb.h                      netinet6/ip6_var.h    netinet6/nd6.h                          netinet6/tcp6.h       netinet6/tcp6_fsm.h                     netinet6/tcp6_timer.h netinet6/tcp6_var.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP6_H
-#include <netinet/ip6.h>
-#endif
-#if HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#if HAVE_NET_ROUTE_H
-#include <net/route.h>
-#endif
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: picl.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: picl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: picl.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: picl.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: picl.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: picl.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: picl.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: picl.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: picl.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: picl.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: picl.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: picl.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: picl.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: picl.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: picl.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: picl.h: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for picl.h" >&5
+echo $ECHO_N "checking for picl.h... $ECHO_C" >&6
+if test "${ac_cv_header_picl_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_picl_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_picl_h" >&5
+echo "${ECHO_T}$ac_cv_header_picl_h" >&6
 
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+fi
+if test $ac_cv_header_picl_h = yes; then
+  LMIBLIBS="${LMIBLIBS} -lpicl"
+fi
+
+
+
+for ac_header in picl.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_header_compiler=no
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-done
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-#       requiring <netinet/in.h>                        (OpenBSD 2.6)
-#  Agent:
-#
-for ac_header in netinet/in_pcb.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "netinet/in_pcb.h" "ac_cv_header_netinet_in_pcb_h" "
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_TIMEOUT_H
-#include <sys/timeout.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_SYS_SOCKETVAR_H
-#include <sys/socketvar.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-#if HAVE_NETINET_IP_H
-#include <netinet/ip.h>
-#endif
-#if HAVE_NET_ROUTE_H
-#include <net/route.h>
-#endif
-#if HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
-"
-if test "x$ac_cv_header_netinet_in_pcb_h" = xyes; then :
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
-#define HAVE_NETINET_IN_PCB_H 1
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
 
 done
 
+            ;;
+        *)
+            if test "${ac_cv_header_sensors_sensors_h+set}" = set; then
+  echo "$as_me:$LINENO: checking for sensors/sensors.h" >&5
+echo $ECHO_N "checking for sensors/sensors.h... $ECHO_C" >&6
+if test "${ac_cv_header_sensors_sensors_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_sensors_sensors_h" >&5
+echo "${ECHO_T}$ac_cv_header_sensors_sensors_h" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking sensors/sensors.h usability" >&5
+echo $ECHO_N "checking sensors/sensors.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <sensors/sensors.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-##
-#   Pre-requisite on specific types
-##
-
-#       Special hack to get around various problems on older Linux kernels
-#       (major ugh!)
-#  Agent:
-#
-for ac_header in linux/ethtool.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "linux/ethtool.h" "ac_cv_header_linux_ethtool_h" "
-#include <linux/types.h>
-typedef __u64 u64;         /* hack, so we may include kernel's ethtool.h */
-typedef __u32 u32;         /* ditto */
-typedef __u16 u16;         /* ditto */
-typedef __u8 u8;           /* ditto */
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-"
-if test "x$ac_cv_header_linux_ethtool_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LINUX_ETHTOOL_H 1
+# Is the header present?
+echo "$as_me:$LINENO: checking sensors/sensors.h presence" >&5
+echo $ECHO_N "checking sensors/sensors.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sensors/sensors.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
 fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-done
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: sensors/sensors.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: sensors/sensors.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: sensors/sensors.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: sensors/sensors.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: sensors/sensors.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: sensors/sensors.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: sensors/sensors.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: sensors/sensors.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: sensors/sensors.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: sensors/sensors.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: sensors/sensors.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: sensors/sensors.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: sensors/sensors.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: sensors/sensors.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: sensors/sensors.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: sensors/sensors.h: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for sensors/sensors.h" >&5
+echo $ECHO_N "checking for sensors/sensors.h... $ECHO_C" >&6
+if test "${ac_cv_header_sensors_sensors_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_sensors_sensors_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_sensors_sensors_h" >&5
+echo "${ECHO_T}$ac_cv_header_sensors_sensors_h" >&6
 
-##
-#   Headers requiring particular libraries
-##
+fi
+if test $ac_cv_header_sensors_sensors_h = yes; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: asked to use lm_sensors but I couldn't find sensors/sensors.h" >&5
+echo "$as_me: error: asked to use lm_sensors but I couldn't find sensors/sensors.h" >&2;}
+   { (exit 1); exit 1; }; }
+fi
 
-#       for HostRes                                     (Solaris 2.x)
-#  Agent:
-#
-for ac_header in pkginfo.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "pkginfo.h" "ac_cv_header_pkginfo_h" "$ac_includes_default"
-if test "x$ac_cv_header_pkginfo_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_PKGINFO_H 1
-_ACEOF
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pkginfo" >&5
-$as_echo_n "checking for library containing pkginfo... " >&6; }
-if ${netsnmp_cv_func_pkginfo_LMIBLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
+            echo "$as_me:$LINENO: checking for sensors_get_detected_chips in -lsensors" >&5
+echo $ECHO_N "checking for sensors_get_detected_chips in -lsensors... $ECHO_C" >&6
+if test "${ac_cv_lib_sensors_sensors_get_detected_chips+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LMIBLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsensors  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-char pkginfo ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char sensors_get_detected_chips ();
 int
 main ()
 {
-return pkginfo ();
+sensors_get_detected_chips ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_sensors_sensors_get_detected_chips=yes
 else
-  for netsnmp_cur_lib in adm ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pkginfo ();
-int
-main ()
-{
-return pkginfo ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
+ac_cv_lib_sensors_sensors_get_detected_chips=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_pkginfo_LMIBLIBS="${netsnmp_result}"
+echo "$as_me:$LINENO: result: $ac_cv_lib_sensors_sensors_get_detected_chips" >&5
+echo "${ECHO_T}$ac_cv_lib_sensors_sensors_get_detected_chips" >&6
+if test $ac_cv_lib_sensors_sensors_get_detected_chips = yes; then
+
+		   LMIBLIBS="${LMIBLIBS} -lsensors" ;
+
+else
+  { { echo "$as_me:$LINENO: error: asked to use lm_sensors but I couldn't find -lsensors" >&5
+echo "$as_me: error: asked to use lm_sensors but I couldn't find -lsensors" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+            ;;
+        esac
+fi
+
+######################################################################
+# PERL SUPPORT
+######################################################################
+
+#
+# test to see if we can attempt to build embedded Perl so far
+#
+if test "x$embed_perl" = "xtry" ; then
+  if test "x$install_perl" = "xno" ; then
+    install_perl="try"
+  fi
+  if test "x$ac_cv_path_PERLPROG" = "x" -o "x$ac_cv_path_PERLPROG" = "xno" ; then
+    install_perl="no"
+    embed_perl="no"
+  fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_pkginfo_LMIBLIBS" >&5
-$as_echo "$netsnmp_cv_func_pkginfo_LMIBLIBS" >&6; }
- if test "${netsnmp_cv_func_pkginfo_LMIBLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_pkginfo_LMIBLIBS}" != "none required" ; then
-       LMIBLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
 
-$as_echo "#define HAVE_PKGINFO 1" >>confdefs.h
 
+#
+# Embedded Perl specific stuff
+#
 
- fi
+# test perl prog
+if test "x$install_perl" != "xno" ; then
+    myperl=$ac_cv_path_PERLPROG
+    if test $myperl = "no" ; then
+      if test "x$install_perl" = "xtry" ; then
+        install_perl="no"
+      else
+        { { echo "$as_me:$LINENO: error: --enable-embedded-perl requested but no perl executable found" >&5
+echo "$as_me: error: --enable-embedded-perl requested but no perl executable found" >&2;}
+   { (exit 1); exit 1; }; }
+      fi
+    fi
+fi
 
+# test for shared libraries support
+if test "x$install_perl" != "xno" ; then
+    # embedded Perl requires shared libraries
+    if test "x$enable_shared" != "xyes"; then
+      if test "x$install_perl" = "xtry" ; then
+        install_perl="no"
+      else
+        { { echo "$as_me:$LINENO: error: Perl support requires --enable-shared" >&5
+echo "$as_me: error: Perl support requires --enable-shared" >&2;}
+   { (exit 1); exit 1; }; }
+      fi
+    fi
 fi
 
-done
+if test "x$install_perl" != "xno" ; then
+  echo "$as_me:$LINENO: checking if we are in the source tree so we can install Perl modules" >&5
+echo $ECHO_N "checking if we are in the source tree so we can install Perl modules... $ECHO_C" >&6
+  if test "x$srcdir" = "x." -o -d perl/agent/default_store ; then
+    echo "$as_me:$LINENO: result: Yes" >&5
+echo "${ECHO_T}Yes" >&6
+  else
+    if test "x$install_perl" = "xtry" ; then
+      install_perl="no"
+      echo "$as_me:$LINENO: result: No" >&5
+echo "${ECHO_T}No" >&6
+    else
+      { { echo "$as_me:$LINENO: error: Perl modules can not be built outside the source directory" >&5
+echo "$as_me: error: Perl modules can not be built outside the source directory" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+  fi
+fi
 
+# check the Perl compiler name
+if test "x$install_perl" != "xno" ; then
+    #
+    # Perl cc checks
+    #
+    if test "xenable_perl_cc_checks" != "xno" ; then
+      echo "$as_me:$LINENO: checking for Perl cc" >&5
+echo $ECHO_N "checking for Perl cc... $ECHO_C" >&6
 
-case $target_os in
-    aix*)
-        #       for CPU/memory statistics               (AIX)
-        #  Agent:
-        #
-        for ac_header in libperfstat.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "libperfstat.h" "ac_cv_header_libperfstat_h" "
-#if HAVE_SYS_PROTOSW_H
-#include <sys/protosw.h>
-#endif
+      PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'`
 
-"
-if test "x$ac_cv_header_libperfstat_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBPERFSTAT_H 1
-_ACEOF
+      if test "x$PERLCC" != "x" ; then
+        echo "$as_me:$LINENO: result: $PERLCC" >&5
+echo "${ECHO_T}$PERLCC" >&6
+      else
+        if test "x$install_perl" = "xtry" ; then
+          install_perl="no"
+        else
+          { { echo "$as_me:$LINENO: error: Could not determine the compiler that was used to build $myperl. Either set the environment variable PERLPROG to a different perl binary or use --without-perl-modules to build without Perl." >&5
+echo "$as_me: error: Could not determine the compiler that was used to build $myperl. Either set the environment variable PERLPROG to a different perl binary or use --without-perl-modules to build without Perl." >&2;}
+   { (exit 1); exit 1; }; }
+        fi
+      fi
+fi
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing perfstat_cpu_total" >&5
-$as_echo_n "checking for library containing perfstat_cpu_total... " >&6; }
-if ${netsnmp_cv_func_perfstat_cpu_total_LMIBLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LMIBLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+# check the Perl compiler compatibility
+if test "x$install_perl" != "xno" ; then
+      echo "$as_me:$LINENO: checking whether $PERLCC is a GNU C compiler" >&5
+echo $ECHO_N "checking whether $PERLCC is a GNU C compiler... $ECHO_C" >&6
+      OLDCC=$CC
+      CC="$PERLCC"
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char perfstat_cpu_total ();
 int
 main ()
 {
-return perfstat_cpu_total ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
-else
-  for netsnmp_cur_lib in perfstat ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
+#ifndef __GNUC__
+  choke me
 #endif
-char perfstat_cpu_total ();
-int
-main ()
-{
-return perfstat_cpu_total ();
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  perlcc_is_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+perlcc_is_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+      echo "$as_me:$LINENO: result: $perlcc_is_gnu" >&5
+echo "${ECHO_T}$perlcc_is_gnu" >&6
+      CC=$OLDCC
+      if test "x$GCC" = "xyes" -a "x$perlcc_is_gnu" = "xno" ; then
+      	if test "x$install_perl" = "xtry" ; then
+      	  install_perl="no"
+      	else
+      	  { { echo "$as_me:$LINENO: error: This build is using a GNU C compiler ($CC) while Perl has been compiled with a non-GNU (or non-working) compiler ($PERLCC). This likely won't work for building with Perl support. Either specify a different compiler (--with-cc=PATH), disable this check (--disable-perl-cc-checks) or build without Perl (--without-perl-modules)." >&5
+echo "$as_me: error: This build is using a GNU C compiler ($CC) while Perl has been compiled with a non-GNU (or non-working) compiler ($PERLCC). This likely won't work for building with Perl support. Either specify a different compiler (--with-cc=PATH), disable this check (--disable-perl-cc-checks) or build without Perl (--without-perl-modules)." >&2;}
+   { (exit 1); exit 1; }; }
+      	fi
+      fi
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+
+# check if they're both gnu
+if test "x$install_perl" != "xno" ; then
+      if test "x$GCC" != "xyes" -a "x$perlcc_is_gnu" = "xyes" ; then
+      	if test "x$install_perl" = "xtry" ; then
+      	  install_perl="no"
+      	else
+          { { echo "$as_me:$LINENO: error: This build is using a non-GNU C compiler ($CC) while Perl has been compiled with a GNU compiler ($PERLCC). This likely won't work for building with Perl support. Either specify a different compiler (--with-cc=PATH), disable this check (--disable-perl-cc-checks) or build without Perl (--without-perl-modules)." >&5
+echo "$as_me: error: This build is using a non-GNU C compiler ($CC) while Perl has been compiled with a GNU compiler ($PERLCC). This likely won't work for building with Perl support. Either specify a different compiler (--with-cc=PATH), disable this check (--disable-perl-cc-checks) or build without Perl (--without-perl-modules)." >&2;}
+   { (exit 1); exit 1; }; }
+      	fi
+      fi
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_perfstat_cpu_total_LMIBLIBS="${netsnmp_result}"
+
+# we have enough support for installing the modules at least.
+if test "x$install_perl" = "xtry" ; then
+  install_perl="yes"
+else
+  if test "x$install_perl" = "xno" ; then
+    install_perl="no"
+    embed_perl="no"
+  fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_perfstat_cpu_total_LMIBLIBS" >&5
-$as_echo "$netsnmp_cv_func_perfstat_cpu_total_LMIBLIBS" >&6; }
- if test "${netsnmp_cv_func_perfstat_cpu_total_LMIBLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_perfstat_cpu_total_LMIBLIBS}" != "none required" ; then
-       LMIBLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
 
-$as_echo "#define HAVE_PERFSTAT 1" >>confdefs.h
+####################
+# on to embedding...
+
+# check the compiler flags for illegal tokens
+case $target_os in
+    solaris*)
+      if test "x$embed_perl" != "xno" ; then
+          #
+          # Perl cc checks
+          #
+          echo "$as_me:$LINENO: checking for problematic Perl cc flags on Suns" >&5
+echo $ECHO_N "checking for problematic Perl cc flags on Suns... $ECHO_C" >&6
+          if $myperl -V:ccflags | grep LARGEFILE > /dev/null ; then
+            if test "x$embed_perl" = "xtry" ; then
+              embed_perl="no"
+            else
+              { { echo "$as_me:$LINENO: error: Perl was compiled with LARGEFILE support which will break Net-SNMP. Either set the environment variable PERLPROG to a different perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether." >&5
+echo "$as_me: error: Perl was compiled with LARGEFILE support which will break Net-SNMP. Either set the environment variable PERLPROG to a different perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether." >&2;}
+   { (exit 1); exit 1; }; }
+            fi
+          else
+            echo "$as_me:$LINENO: result: none known" >&5
+echo "${ECHO_T}none known" >&6
+          fi
+      fi
+    ;;
 
- else
-    as_fn_error $? "
+    *)
+    ;;
+esac
 
-*** To monitor CPU/memory values in AIX you need to install
-*** libperfstat which can be found in bos.perf
-" "$LINENO" 5
- fi
 
+# check the cflags
+if test "x$embed_perl" != "xno" ; then
+    echo "$as_me:$LINENO: checking for Perl CFLAGS" >&5
+echo $ECHO_N "checking for Perl CFLAGS... $ECHO_C" >&6
+    perlcflags=`$myperl -MExtUtils::Embed -e ccopts`
+    if test "x$perlcflags" != "x" ; then
+      echo "$as_me:$LINENO: result: $perlcflags" >&5
+echo "${ECHO_T}$perlcflags" >&6
+      CFLAGS="$CFLAGS $perlcflags"
+    else
+      if test "x$embed_perl" = "xtry" ; then
+        embed_perl="no"
+      else
+        { { echo "$as_me:$LINENO: error: Could not determine the C compiler flags that were used to build $myperl. Either set the environment variable PERLPROG to a different Perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether." >&5
+echo "$as_me: error: Could not determine the C compiler flags that were used to build $myperl. Either set the environment variable PERLPROG to a different Perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether." >&2;}
+   { (exit 1); exit 1; }; }
+      fi
+    fi
 fi
 
-done
+# check the ldflags
+if test "x$embed_perl" != "xno" ; then
+    echo "$as_me:$LINENO: checking for Perl LDFLAGS" >&5
+echo $ECHO_N "checking for Perl LDFLAGS... $ECHO_C" >&6
+    netsnmp_perlldopts=`$myperl -MExtUtils::Embed -e ldopts`
+    if test "x$netsnmp_perlldopts" != "x" ; then
+      echo "$as_me:$LINENO: result: $netsnmp_perlldopts" >&5
+echo "${ECHO_T}$netsnmp_perlldopts" >&6
+    else
+      if test "x$embed_perl" = "xtry" ; then
+        embed_perl="no"
+      else
+        { { echo "$as_me:$LINENO: error: Could not determine the linker options that were used to build $myperl. Either set the environment variable PERLPROG to a different Perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether." >&5
+echo "$as_me: error: Could not determine the linker options that were used to build $myperl. Either set the environment variable PERLPROG to a different Perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether." >&2;}
+   { (exit 1); exit 1; }; }
+      fi
+    fi
+    if test "x$enable_as_needed" = "xyes" ; then
+      # link *libraries* with libperl
+      PERLLDOPTS_FOR_LIBS="$netsnmp_perlldopts"
+      # Perl ccdlflags (RPATH to libperl, hopefully)
+      echo "$as_me:$LINENO: checking for Perl CCDLFLAGS" >&5
+echo $ECHO_N "checking for Perl CCDLFLAGS... $ECHO_C" >&6
 
-        ;;
-    hpux*)
-        #       HP-UX agent needs open_mib       (XXX - not a header check!)
-        #
+      netsnmp_perlccdlflags=`$myperl -V:ccdlflags | $myperl -n -e 'print $1 '"if (/^\s*ccdlflags='([^']+)';/);"`
+
+      echo "$as_me:$LINENO: result: $netsnmp_perlccdlflags" >&5
+echo "${ECHO_T}$netsnmp_perlccdlflags" >&6
+      PERLLDOPTS_FOR_APPS="$netsnmp_perlccdlflags"
+    else
+      # link *applications* against libperl
+      PERLLDOPTS_FOR_APPS="$netsnmp_perlldopts"
+    fi
+fi
+
+# check needed functions
+if test "x$embed_perl" != "xno" ; then
+    OLDLIBS="$LIBS"
+    LIBS="$LIBS $netsnmp_perlldopts"
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing open_mib" >&5
-$as_echo_n "checking for library containing open_mib... " >&6; }
-if ${netsnmp_cv_func_open_mib_LMIBLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
+    # newer perl vs older perl call functions
+
+for ac_func in eval_pv
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LMIBLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
 #endif
-char open_mib ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-return open_mib ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+    # sigh: this has a CAPITAL P in Perl, which ends up being the same
+    # autoconf define as the lower case so we have to treat them *BOTH*
+    # specially.  Wonderful.
+    echo "$as_me:$LINENO: checking for perl_eval_pv" >&5
+echo $ECHO_N "checking for perl_eval_pv... $ECHO_C" >&6
+if test "${ac_cv_func_perl_eval_pv+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  for netsnmp_cur_lib in nm ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define perl_eval_pv to an innocuous variant, in case <limits.h> declares perl_eval_pv.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define perl_eval_pv innocuous_perl_eval_pv
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char perl_eval_pv (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+#undef perl_eval_pv
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
 #endif
-char open_mib ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char perl_eval_pv ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_perl_eval_pv) || defined (__stub___perl_eval_pv)
+choke me
+#else
+char (*f) () = perl_eval_pv;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-return open_mib ();
+return f != perl_eval_pv;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_perl_eval_pv=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_perl_eval_pv=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_open_mib_LMIBLIBS="${netsnmp_result}"
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_open_mib_LMIBLIBS" >&5
-$as_echo "$netsnmp_cv_func_open_mib_LMIBLIBS" >&6; }
- if test "${netsnmp_cv_func_open_mib_LMIBLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_open_mib_LMIBLIBS}" != "none required" ; then
-       LMIBLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
-
-$as_echo "#define HAVE_LIBNM 1" >>confdefs.h
+echo "$as_me:$LINENO: result: $ac_cv_func_perl_eval_pv" >&5
+echo "${ECHO_T}$ac_cv_func_perl_eval_pv" >&6
+if test $ac_cv_func_perl_eval_pv = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_PERL_EVAL_PV_LC 1
+_ACEOF
 
+fi
 
- fi
+    echo "$as_me:$LINENO: checking for Perl_eval_pv" >&5
+echo $ECHO_N "checking for Perl_eval_pv... $ECHO_C" >&6
+if test "${ac_cv_func_Perl_eval_pv+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define Perl_eval_pv to an innocuous variant, in case <limits.h> declares Perl_eval_pv.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define Perl_eval_pv innocuous_Perl_eval_pv
 
-        ;;
-    *)
-        ;;
-esac
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char Perl_eval_pv (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
-#       for MIB-2 info                                  (Cygwin and MinGW)
-#  Core:
-#
-for ac_header in windows.h iphlpapi.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
-#ifdef HAVE_WINDOWS_H
-#include <windows.h>
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
 #endif
 
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
+#undef Perl_eval_pv
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char Perl_eval_pv ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_Perl_eval_pv) || defined (__stub___Perl_eval_pv)
+choke me
+#else
+char (*f) () = Perl_eval_pv;
+#endif
+#ifdef __cplusplus
+}
+#endif
 
-#       for MIB-2 info                                  (MinGW)
-#  Core:
-#
-if test x$with_socklib = xwinsock2; then
-  for ac_header in winsock.h winsock2.h ws2tcpip.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+int
+main ()
+{
+return f != Perl_eval_pv;
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_Perl_eval_pv=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_func_Perl_eval_pv=no
 fi
-
-done
-
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-
-#
-# for ucd-snmp/lmsensorsMib
-#
-for ac_header in sensors/sensors.h picl.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+echo "$as_me:$LINENO: result: $ac_cv_func_Perl_eval_pv" >&5
+echo "${ECHO_T}$ac_cv_func_Perl_eval_pv" >&6
+if test $ac_cv_func_Perl_eval_pv = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_PERL_EVAL_PV_UC 1
 _ACEOF
 
 fi
 
-done
-
-
-fi # NETSNMP_QUICK_CHECK
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
 
-_ACEOF
+    LIBS="$OLDLIBS"
 
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
 
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-      if test ! -f "$cache_file" || test -h "$cache_file"; then
-	cat confcache >"$cache_file"
+    if test "x$ac_cv_func_perl_eval_pv" != "xyes" -a "x$ac_cv_func_Perl_eval_pv" != "xyes" -a "x$ac_cv_func_eval_pv" != "xyes" ; then
+      if test "x$embed_perl" = "xtry" ; then
+        embed_perl="no"
       else
-        case $cache_file in #(
-        */* | ?:*)
-	  mv -f confcache "$cache_file"$$ &&
-	  mv -f "$cache_file"$$ "$cache_file" ;; #(
-        *)
-	  mv -f confcache "$cache_file" ;;
-	esac
+        { { echo "$as_me:$LINENO: error: Could not find the eval_pv, perl_eval_pv or Perl_eval_pv functions needed for embedded Perl support. Either set the environment variable PERLPROG to a different perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether." >&5
+echo "$as_me: error: Could not find the eval_pv, perl_eval_pv or Perl_eval_pv functions needed for embedded Perl support. Either set the environment variable PERLPROG to a different perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether." >&2;}
+   { (exit 1); exit 1; }; }
       fi
-    fi
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-# -*- autoconf -*-
-#########################################
-##
-# Checks for types
-##
-#########################################
-
-##
-#   Standard checks:
-##
+    else
+      cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_EMBEDDED_PERL 1
+_ACEOF
 
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
-$as_echo_n "checking size of short... " >&6; }
-if ${ac_cv_sizeof_short+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short"        "$ac_includes_default"; then :
+      OTHERAGENTLIBOBJS="snmp_perl.o"
+      OTHERAGENTLIBLOBJS="snmp_perl.lo"
 
+      EMBEDPERLINSTALL="embedperlinstall"
+      EMBEDPERLUNINSTALL="embedperluninstall"
+      # yay, we got here!
+      embed_perl="yes"
+    fi
 else
-  if test "$ac_cv_type_short" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (short)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_short=0
-   fi
+      EMBEDPERLINSTALL=""
+      EMBEDPERLUNINSTALL=""
+      embed_perl="no"
+    fi
 fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
-$as_echo "$ac_cv_sizeof_short" >&6; }
 
 
 
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SHORT $ac_cv_sizeof_short
-_ACEOF
 
+# embedded Perl results
+echo "$as_me:$LINENO: checking for potential embedded Perl support" >&5
+echo $ECHO_N "checking for potential embedded Perl support... $ECHO_C" >&6
+if test "x$embed_perl" != "xyes" ; then
 
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
-$as_echo_n "checking size of int... " >&6; }
-if ${ac_cv_sizeof_int+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int"        "$ac_includes_default"; then :
+  cat >> configure-summary << EOF
+  Embedded Perl support:      disabled
+EOF
 
+  echo "$as_me:$LINENO: result: disabled" >&5
+echo "${ECHO_T}disabled" >&6
 else
-  if test "$ac_cv_type_int" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (int)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_int=0
-   fi
-fi
 
+  cat >> configure-summary << EOF
+  Embedded Perl support:      enabled
+EOF
+
+  echo "$as_me:$LINENO: result: enabled" >&5
+echo "${ECHO_T}enabled" >&6
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
-$as_echo "$ac_cv_sizeof_int" >&6; }
 
+# install Perl module results
+PERLTARGS=""
+PERLINSTALLTARGS=""
+PERLUNINSTALLTARGS=""
+echo "$as_me:$LINENO: checking if we can install the Perl modules" >&5
+echo $ECHO_N "checking if we can install the Perl modules... $ECHO_C" >&6
+if test "x$install_perl" = "xyes" ; then
+    PERLTARGS="perlmodules"
+    PERLINSTALLTARGS="perlinstall"
+    PERLUNINSTALLTARGS="perluninstall"
+    if test "x$embed_perl" = "xyes" ; then
 
+  cat >> configure-summary << EOF
+  SNMP Perl modules:          building -- embeddable
+EOF
 
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_INT $ac_cv_sizeof_int
-_ACEOF
+      echo "$as_me:$LINENO: result: yes -- and embeddable" >&5
+echo "${ECHO_T}yes -- and embeddable" >&6
+    else
 
+  cat >> configure-summary << EOF
+  SNMP Perl modules:          building -- not embeddable
+EOF
 
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
-$as_echo_n "checking size of long... " >&6; }
-if ${ac_cv_sizeof_long+:} false; then :
-  $as_echo_n "(cached) " >&6
+      echo "$as_me:$LINENO: result: yes -- not embeddable" >&5
+echo "${ECHO_T}yes -- not embeddable" >&6
+    fi
 else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long"        "$ac_includes_default"; then :
+    echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 
-else
-  if test "$ac_cv_type_long" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (long)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_long=0
-   fi
-fi
+  cat >> configure-summary << EOF
+  SNMP Perl modules:          disabled
+EOF
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
-$as_echo "$ac_cv_sizeof_long" >&6; }
 
 
 
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_LONG $ac_cv_sizeof_long
-_ACEOF
 
 
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
-$as_echo_n "checking size of long long... " >&6; }
-if ${ac_cv_sizeof_long_long+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long"        "$ac_includes_default"; then :
 
-else
-  if test "$ac_cv_type_long_long" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (long long)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_long_long=0
-   fi
-fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5
-$as_echo "$ac_cv_sizeof_long_long" >&6; }
+# reset libs
+AGENTLIBS=$LIBS
+LIBS=$NONAGENTLIBS
 
 
 
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
-_ACEOF
+# python support
+PYTHONTARGS=""
+PYTHONINSTALLTARGS=""
+PYTHONUNINSTALLTARGS=""
+PYTHONCLEANTARGS=""
+echo "$as_me:$LINENO: checking if we should install the python bindings" >&5
+echo $ECHO_N "checking if we should install the python bindings... $ECHO_C" >&6
+if test "x$install_python" = "xyes" ; then
+    PYTHONTARGS="pythonmodules"
+    PYTHONINSTALLTARGS="pythoninstall"
+    PYTHONUNINSTALLTARGS="pythonuninstall"
+    PYTHONCLEANTARGS="pythonclean"
 
+  cat >> configure-summary << EOF
+  SNMP Python modules:        building for $PYTHONPROG
+EOF
 
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of intmax_t" >&5
-$as_echo_n "checking size of intmax_t... " >&6; }
-if ${ac_cv_sizeof_intmax_t+:} false; then :
-  $as_echo_n "(cached) " >&6
+    echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
 else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (intmax_t))" "ac_cv_sizeof_intmax_t"        "$ac_includes_default"; then :
 
-else
-  if test "$ac_cv_type_intmax_t" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (intmax_t)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_intmax_t=0
-   fi
-fi
+  cat >> configure-summary << EOF
+  SNMP Python modules:        disabled
+EOF
 
+    echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_intmax_t" >&5
-$as_echo "$ac_cv_sizeof_intmax_t" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_INTMAX_T $ac_cv_sizeof_intmax_t
-_ACEOF
-
-
-
-ac_fn_c_find_intX_t "$LINENO" "8" "ac_cv_c_int8_t"
-case $ac_cv_c_int8_t in #(
-  no|yes) ;; #(
-  *)
-
-cat >>confdefs.h <<_ACEOF
-#define int8_t $ac_cv_c_int8_t
-_ACEOF
-;;
-esac
 
-ac_fn_c_find_intX_t "$LINENO" "16" "ac_cv_c_int16_t"
-case $ac_cv_c_int16_t in #(
-  no|yes) ;; #(
-  *)
 
-cat >>confdefs.h <<_ACEOF
-#define int16_t $ac_cv_c_int16_t
-_ACEOF
-;;
-esac
 
-ac_fn_c_find_intX_t "$LINENO" "32" "ac_cv_c_int32_t"
-case $ac_cv_c_int32_t in #(
-  no|yes) ;; #(
-  *)
 
-cat >>confdefs.h <<_ACEOF
-#define int32_t $ac_cv_c_int32_t
-_ACEOF
-;;
-esac
 
-ac_fn_c_find_intX_t "$LINENO" "64" "ac_cv_c_int64_t"
-case $ac_cv_c_int64_t in #(
-  no|yes) ;; #(
-  *)
 
-cat >>confdefs.h <<_ACEOF
-#define int64_t $ac_cv_c_int64_t
-_ACEOF
-;;
-esac
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
-$as_echo_n "checking for long long int... " >&6; }
-if ${ac_cv_type_long_long_int+:} false; then :
-  $as_echo_n "(cached) " >&6
+# Checks for header files.
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
 
-  /* For now, do not test the preprocessor; as of 2007 there are too many
-	 implementations with broken preprocessors.  Perhaps this can
-	 be revisited in 2012.  In the meantime, code should not expect
-	 #if to work with literals wider than 32 bits.  */
-      /* Test literals.  */
-      long long int ll = 9223372036854775807ll;
-      long long int nll = -9223372036854775807LL;
-      unsigned long long int ull = 18446744073709551615ULL;
-      /* Test constant expressions.   */
-      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
-		     ? 1 : -1)];
-      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
-		     ? 1 : -1)];
-      int i = 63;
 int
 main ()
 {
-/* Test availability of runtime routines for shift and division.  */
-      long long int llmax = 9223372036854775807ll;
-      unsigned long long int ullmax = 18446744073709551615ull;
-      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
-	      | (llmax / ll) | (llmax % ll)
-	      | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
-	      | (ullmax / ull) | (ullmax % ull));
-  ;
-  return 0;
-}
 
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  			if test "$cross_compiling" = yes; then :
-  ac_cv_type_long_long_int=yes
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
-	       #ifndef LLONG_MAX
-	       # define HALF \
-			(1LL << (sizeof (long long int) * CHAR_BIT - 2))
-	       # define LLONG_MAX (HALF - 1 + HALF)
-	       #endif
-int
-main ()
-{
-long long int n = 1;
-	       int i;
-	       for (i = 0; ; i++)
-		 {
-		   long long int m = n << i;
-		   if (m >> i != n)
-		     return 1;
-		   if (LLONG_MAX / 2 < m)
-		     break;
-		 }
-	       return 0;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_type_long_long_int=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_header_stdc=yes
 else
-  ac_cv_type_long_long_int=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-else
-  ac_cv_type_long_long_int=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+ac_cv_header_stdc=no
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5
-$as_echo "$ac_cv_type_long_long_int" >&6; }
-  if test $ac_cv_type_long_long_int = yes; then
-
-$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
-
-  fi
-
-
-
-  ac_fn_c_check_type "$LINENO" "intmax_t" "ac_cv_type_intmax_t" "$ac_includes_default"
-if test "x$ac_cv_type_intmax_t" = xyes; then :
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-$as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h
-
-else
-  test $ac_cv_type_long_long_int = yes \
-       && ac_type='long long int' \
-       || ac_type='long int'
-
-cat >>confdefs.h <<_ACEOF
-#define intmax_t $ac_type
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
 
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
 fi
+rm -f conftest*
 
+fi
 
-ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t"
-case $ac_cv_c_uint8_t in #(
-  no|yes) ;; #(
-  *)
-
-$as_echo "#define _UINT8_T 1" >>confdefs.h
-
-
-cat >>confdefs.h <<_ACEOF
-#define uint8_t $ac_cv_c_uint8_t
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-;;
-  esac
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
 
-ac_fn_c_find_uintX_t "$LINENO" "16" "ac_cv_c_uint16_t"
-case $ac_cv_c_uint16_t in #(
-  no|yes) ;; #(
-  *)
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
 
+fi
 
-cat >>confdefs.h <<_ACEOF
-#define uint16_t $ac_cv_c_uint16_t
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-;;
-  esac
-
-ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t"
-case $ac_cv_c_uint32_t in #(
-  no|yes) ;; #(
-  *)
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
 
-$as_echo "#define _UINT32_T 1" >>confdefs.h
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      exit(2);
+  exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define uint32_t $ac_cv_c_uint32_t
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
 _ACEOF
-;;
-  esac
 
-ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t"
-case $ac_cv_c_uint64_t in #(
-  no|yes) ;; #(
-  *)
+fi
+
 
-$as_echo "#define _UINT64_T 1" >>confdefs.h
 
 
-cat >>confdefs.h <<_ACEOF
-#define uint64_t $ac_cv_c_uint64_t
-_ACEOF
-;;
-  esac
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
-$as_echo_n "checking for unsigned long long int... " >&6; }
-if ${ac_cv_type_unsigned_long_long_int+:} false; then :
-  $as_echo_n "(cached) " >&6
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+  as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
+echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+#include <sys/types.h>
+#include <$ac_hdr>
 
-  /* For now, do not test the preprocessor; as of 2007 there are too many
-	 implementations with broken preprocessors.  Perhaps this can
-	 be revisited in 2012.  In the meantime, code should not expect
-	 #if to work with literals wider than 32 bits.  */
-      /* Test literals.  */
-      long long int ll = 9223372036854775807ll;
-      long long int nll = -9223372036854775807LL;
-      unsigned long long int ull = 18446744073709551615ULL;
-      /* Test constant expressions.   */
-      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
-		     ? 1 : -1)];
-      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
-		     ? 1 : -1)];
-      int i = 63;
 int
 main ()
 {
-/* Test availability of runtime routines for shift and division.  */
-      long long int llmax = 9223372036854775807ll;
-      unsigned long long int ullmax = 18446744073709551615ull;
-      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
-	      | (llmax / ll) | (llmax % ll)
-	      | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
-	      | (ullmax / ull) | (ullmax % ull));
+if ((DIR *) 0)
+return 0;
   ;
   return 0;
 }
-
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_type_unsigned_long_long_int=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
 else
-  ac_cv_type_unsigned_long_long_int=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
-$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
-  if test $ac_cv_type_unsigned_long_long_int = yes; then
-
-$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
-
-  fi
-
-
-
-  ac_fn_c_check_type "$LINENO" "uintmax_t" "ac_cv_type_uintmax_t" "$ac_includes_default"
-if test "x$ac_cv_type_uintmax_t" = xyes; then :
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
 
-$as_echo "#define HAVE_UINTMAX_T 1" >>confdefs.h
+ac_header_dirent=$ac_hdr; break
+fi
 
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+  echo "$as_me:$LINENO: checking for library containing opendir" >&5
+echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
+if test "${ac_cv_search_opendir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  test $ac_cv_type_unsigned_long_long_int = yes \
-       && ac_type='unsigned long long int' \
-       || ac_type='unsigned long int'
+  ac_func_search_save_LIBS=$LIBS
+ac_cv_search_opendir=no
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-cat >>confdefs.h <<_ACEOF
-#define uintmax_t $ac_type
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char opendir ();
+int
+main ()
+{
+opendir ();
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_opendir="none required"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_opendir" = no; then
+  for ac_lib in dir; do
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char opendir ();
+int
+main ()
+{
+opendir ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_opendir="-l$ac_lib"
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+echo "${ECHO_T}$ac_cv_search_opendir" >&6
+if test "$ac_cv_search_opendir" != no; then
+  test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
 
-  ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default"
-if test "x$ac_cv_type_intptr_t" = xyes; then :
-
-$as_echo "#define HAVE_INTPTR_T 1" >>confdefs.h
+fi
 
 else
-  for ac_type in 'int' 'long int' 'long long int'; do
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  echo "$as_me:$LINENO: checking for library containing opendir" >&5
+echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6
+if test "${ac_cv_search_opendir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+ac_cv_search_opendir=no
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_includes_default
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char opendir ();
 int
 main ()
 {
-static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
-test_array [0] = 0
-
+opendir ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_opendir="none required"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-cat >>confdefs.h <<_ACEOF
-#define intptr_t $ac_type
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_opendir" = no; then
+  for ac_lib in x; do
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char opendir ();
+int
+main ()
+{
+opendir ();
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_search_opendir="-l$ac_lib"
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-	  ac_type=
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-       test -z "$ac_type" && break
-     done
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  done
 fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+echo "${ECHO_T}$ac_cv_search_opendir" >&6
+if test "$ac_cv_search_opendir" != no; then
+  test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS"
 
+fi
 
+fi
 
-  ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
-if test "x$ac_cv_type_uintptr_t" = xyes; then :
-
-$as_echo "#define HAVE_UINTPTR_T 1" >>confdefs.h
+echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6
+if test "${ac_cv_header_sys_wait_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/wait.h>
+#ifndef WEXITSTATUS
+# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
+#endif
+#ifndef WIFEXITED
+# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
+#endif
 
-else
-  for ac_type in 'unsigned int' 'unsigned long int' \
-	'unsigned long long int'; do
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
 int
 main ()
 {
-static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
-test_array [0] = 0
-
+  int s;
+  wait (&s);
+  s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-cat >>confdefs.h <<_ACEOF
-#define uintptr_t $ac_type
-_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_header_sys_wait_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-	  ac_type=
+ac_cv_header_sys_wait_h=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-       test -z "$ac_type" && break
-     done
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
+echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6
+if test $ac_cv_header_sys_wait_h = yes; then
 
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SYS_WAIT_H 1
+_ACEOF
 
+fi
 
-##
-#   Other type checks:
-##
 
-ac_fn_c_check_type "$LINENO" "off64_t" "ac_cv_type_off64_t" "$ac_includes_default"
-if test "x$ac_cv_type_off64_t" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_OFF64_T 1
-_ACEOF
 
 
-fi
 
-ac_fn_c_check_type "$LINENO" "nfds_t" "ac_cv_type_nfds_t" "#include <sys/poll.h>
-"
-if test "x$ac_cv_type_nfds_t" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_NFDS_T 1
-_ACEOF
 
 
-fi
 
 
-#   Solaris specific checks
-#       (taken from Perl's configure script)
-#
-ac_fn_c_check_type "$LINENO" "Counter64" "ac_cv_type_Counter64" "#include <inet/mib2.h>
-"
-if test "x$ac_cv_type_Counter64" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_COUNTER64 1
-_ACEOF
 
 
-fi
 
-ac_fn_c_check_type "$LINENO" "mib2_ipIfStatsEntry_t" "ac_cv_type_mib2_ipIfStatsEntry_t" "#include <inet/mib2.h>
-"
-if test "x$ac_cv_type_mib2_ipIfStatsEntry_t" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_MIB2_IPIFSTATSENTRY_T 1
+for ac_header in stdarg.h string.h fcntl.h limits.h sys/file.h sys/ioctl.h syslog.h unistd.h sys/dmap.h machine/pte.h xti.h sys/sockio.h sys/socket.h sys/param.h sys/uio.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
 fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-#   N.B:  The above checks could safely be moved to
-#         the later 'config_types' sub-script
-#
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
-##
-#   Determine the IPv6 stack type
-##
+fi
 
-#       These checks also set the LIBS/CFLAGS variables,
-#       which may be needed for subsequent function tests
-#
+done
 
-if test "x$enable_ipv6" = "xyes"; then
-	v6type=unknown
-	v6lib=none
-	v6trylibc=no
+# at least Solaris 9 needs sys/socket.h to compile sys/socketvar.h
 
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking ipv6 stack type" >&5
-$as_echo_n "checking ipv6 stack type... " >&6; }
-	for i in v6d toshiba kame inria zeta linux-glibc linux-inet6 cygwin winsock2 generic; do
-		case $i in
-		v6d)
-			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+for ac_header in sys/socketvar.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+$ac_includes_default
 
-#include </usr/local/v6/include/sys/types.h>
-#ifdef __V6D__
-yes
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
 #endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
-  v6type=$i; v6lib=v6;
-				v6libdir=/usr/local/v6/lib;
-				CFLAGS="-I/usr/local/v6/include $CFLAGS"
-fi
-rm -f conftest*
 
-			;;
-		toshiba)
-			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/param.h>
-#ifdef _TOSHIBA_INET6
-yes
-#endif
+#include <$ac_header>
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
-  v6type=$i; v6lib=inet6;
-				v6libdir=/usr/local/v6/lib;
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
-fi
-rm -f conftest*
-
-			;;
-		kame)
-			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-#include <netinet/in.h>
-#ifdef __KAME__
-yes
-#endif
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
-  v6type=$i; v6lib=inet6;
-				v6libdir=/usr/local/v6/lib;
-				v6trylibc=yes;
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
+
 fi
-rm -f conftest*
 
-			;;
-		inria)
-			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+done
 
-#include <netinet/in.h>
-#ifdef IPV6_INRIA_VERSION
-yes
-#endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
-  v6type=$i;
-				v6lib=dummy;
-				v6libdir=none;
-				v6trylibc=yes;
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
-fi
-rm -f conftest*
+# at least OpenBSD 3.4 needs sys/param.h (MAXPATHLEN) to compile sys/swap.h
 
-			;;
-		zeta)
-			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+for ac_header in sys/swap.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+$ac_includes_default
 
+#if HAVE_SYS_PARAM_H
 #include <sys/param.h>
-#ifdef _ZETA_MINAMI_INET6
-A
-yes
 #endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
-  v6type=$i; v6lib=inet6;
-				v6libdir=/usr/local/v6/lib;
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
-fi
-rm -f conftest*
 
-			;;
-		linux-glibc)
-			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <features.h>
-#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC_ > 2))
-yes
-#endif
+#include <$ac_header>
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
-  v6type=$i;
-				v6lib=dummy;
-				v6libdir=none;
-				v6trylibc=yes;
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
-fi
-rm -f conftest*
-
-			;;
-		linux-inet6)
-			if test -d /usr/inet6; then
-				v6type=$i
-				v6lib=inet6
-				v6libdir=/usr/inet6/lib
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
-			fi
-			;;
-		cygwin)
-			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-#include <netinet/in.h>
-#ifdef _CYGWIN_IN6_H
-yes
-#endif
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
-  v6type=$i;
-				v6lib=dummy;
-				v6libdir=none
-				v6trylibc=yes;
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
+
 fi
-rm -f conftest*
 
-                       ;;
-		winsock2)
-			cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+done
 
-#include <ws2tcpip.h>
-#if defined(_WS2TCPIP_H)
-yes
-#endif
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
-  v6type=$i;
-				v6lib=dummy;
-				v6libdir=none
-				v6trylibc=yes;
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
-fi
-rm -f conftest*
 
-			;;
-		generic)
-                        { $as_echo "$as_me:${as_lineno-$LINENO}: result: postponed" >&5
-$as_echo "postponed" >&6; }
-			ac_fn_c_check_member "$LINENO" "struct sockaddr_in6" "sin6_addr" "ac_cv_member_struct_sockaddr_in6_sin6_addr" "
-$ac_includes_default
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
 
-"
-if test "x$ac_cv_member_struct_sockaddr_in6_sin6_addr" = xyes; then :
 
-fi
 
-	                { $as_echo "$as_me:${as_lineno-$LINENO}: checking ipv6 stack type" >&5
-$as_echo_n "checking ipv6 stack type... " >&6; }
-                        if test "x$ac_cv_member_struct_sockaddr_in6_sin6_addr" = "xyes"; then
-				v6type=$i
-				v6lib=dummy
-				v6libdir=none
-				v6trylibc=yes
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
-                        fi
-			;;
-		esac
-		if test "$v6type" != "unknown"; then
-			break
-		fi
-	done
 
-	if test "$v6lib" != "none"; then
-		if test -d $v6libdir -a -f $v6libdir/lib$v6lib.a; then
-			LIBS="-L$v6libdir -l$v6lib $LIBS"
-			enable_ipv6="yes"
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$v6type, $enable_ipv6, using lib$v6lib\"" >&5
-$as_echo "\"$v6type, $enable_ipv6, using lib$v6lib\"" >&6; }
-		elif test "$v6trylibc" = "yes"; then
-			enable_ipv6="yes"
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$v6type, $enable_ipv6, using libc\"" >&5
-$as_echo "\"$v6type, $enable_ipv6, using libc\"" >&6; }
-		else
-			as_fn_error $? "no IPv6 library lib$v6lib.a found." "$LINENO" 5
-			exit 1
-		fi
-	else
-		enable_ipv6="no"
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$v6type, $enable_ipv6\"" >&5
-$as_echo "\"$v6type, $enable_ipv6\"" >&6; }
-	fi
-fi
 
-# -*- autoconf -*-
-#
-# Maybe add library extensions for thread mutex locking.
-#
 
-if test "x$with_res_locks" = "xyes"; then
 
-$as_echo "#define NETSNMP_REENTRANT 1" >>confdefs.h
 
 
-    case $target_os in
 
-    aix*)
-	CC_RUNTIME_ARG="$CC_RUNTIME_ARG -lpthreads"
-	;;
 
-    *)
-	;;
 
-    esac
-fi
 
-#
-# Add platform-specific source files.
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for platform-specific source" >&5
-$as_echo_n "checking for platform-specific source... " >&6; }
-other_src_list=""
-other_ftobjs_list=""
-other_lobjs_list=""
-other_objs_list=""
-other_agentobjs=""
-other_lagentobjs=""
-other_ftagentobjs=""
-other_trapd_objects=""
 
-# Win32 service code
-if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
-  other_src_list="$other_src_list winservice.c winservicerc.rc"
-  other_objs_list="$other_objs_list winservice.o winservicerc.o"
-  other_lobjs_list="$other_lobjs_list winservice.lo winservicerc.lo"
-  other_ftobjs_list="$other_ftobjs_list winservice.ft winservicerc.ft"
-  other_agentobjs="../snmplib/winservicerc.o"
-  other_lagentobjs="../snmplib/winservicerc.lo"
-  other_ftagentobjs="../snmplib/winservicerc.lo"
-  other_trapd_objects="../snmplib/winservicerc.o"
-fi
 
-# Win32 pipes
-if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
-  other_src_list="$other_src_list winpipe.c"
-  other_objs_list="$other_objs_list winpipe.o"
-  other_lobjs_list="$other_lobjs_list winpipe.lo"
-  other_ftobjs_list="$other_ftobjs_list winpipe.ft"
-fi
 
 
 
@@ -18248,184 +33636,176 @@ fi
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $other_src_list $other_objs_list $other_lobjs_list" >&5
-$as_echo "$other_src_list $other_objs_list $other_lobjs_list" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $other_agentobjs $other_lagentobjs $other_trapd_objects" >&5
-$as_echo "$other_agentobjs $other_lagentobjs $other_trapd_objects" >&6; }
 
-#
-# Create directory structure for build
-#
-if test ! -d include; then
-  mkdir include
+
+
+
+
+
+
+
+
+for ac_header in sys/timeout.h sys/un.h fstab.h sys/fs.h mtab.h ufs/fs.h sys/fixpoint.h machine/param.h sys/vm.h vm/vm.h sys/vmmeter.h sys/vmparam.h sys/vmmac.h sys/vmsystm.h sys/time.h sys/times.h sys/statvfs.h sys/vfs.h sys/mnttab.h sys/select.h mntent.h sys/mntent.h kstat.h utsname.h sys/utsname.h sys/cdefs.h getopt.h locale.h pthread.h sys/loadavg.h regex.h linux/tasks.h pwd.h grp.h utmpx.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-if test ! -d include/net-snmp; then
-  mkdir include/net-snmp
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
 fi
-if test ! -d include/net-snmp/agent; then
-  mkdir include/net-snmp/agent
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
 fi
-if test ! -d include/net-snmp/library; then
-  mkdir include/net-snmp/library
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
 fi
-if test ! -d include/ucd-snmp; then
-  mkdir include/ucd-snmp
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
-if test ! -d snmplib; then
-  mkdir snmplib
 fi
-if test ! -d snmplib/transports ; then
-  mkdir snmplib/transports
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
 fi
 
-#
-# Do transport module processing.
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for and configuring transport modules to use" >&5
-$as_echo_n "checking for and configuring transport modules to use... " >&6; }
+done
 
-# include the actual code checking
-# -*- 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;'`
+# Network headers
 
-# 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
-              as_fn_error $? "IPv6 transports not available if IPv6 support is not enabled" "$LINENO" 5
-          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
-        as_fn_error $? "Cannot find file $srcdir/$rel_transport_src to support SNMP transport domain $i." "$LINENO" 5
-      fi
 
-      #---------------------
-      # build a pseudo include header that includes current config and
-      # system symbols:
-      rm -f conftest.$ac_ext module_tmp_header.h
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include NETSNMP_SYSTEM_INCLUDE_FILE
-#undef NETSNMP_MINIMAL_CODE
-#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"
-_ACEOF
-      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 ""
-        as_fn_error $? "$error_list" "$LINENO" 5
-      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'`
-transport_ftobj_list=`echo " $transport_src_list " | $SED 's/\.c/\.ft/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"
-    transport_ftobj_list="$transport_ftobj_list inet_ntop.ft inet_pton.ft"
-  fi
-fi
 
-if test "x$transport_result_list" = x ; then
-   as_fn_error $? "No transports configured, at least one must be provided" "$LINENO" 5
-fi
 
 
 
@@ -18433,8428 +33813,12669 @@ fi
 
 
 
-for i in $transport_def_list; do
-  cat >>confdefs.h <<_ACEOF
-#define $i 1
-_ACEOF
 
-done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $transport_result_list." >&5
-$as_echo "$transport_result_list." >&6; }
 
-  cat >> configure-summary << EOF
-  Network transport support: $transport_result_list
-EOF
 
+for ac_header in arpa/inet.h netinet/in_systm.h netinet/in.h netinet/ip_var.h netinet/tcp.h netinet/tcpip.h netinet/udp.h net/if.h netinet/in_var.h netinet/ip.h netinet/ip_icmp.h net/if_arp.h net/if_mib.h net/if_var.h netinet/if_ether.h netinet/tcp_timer.h netinet/tcp_var.h netinet/udp_var.h netinet/icmp_var.h netdb.h net/route.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-# cleanup
-rm -f module_tmp_header.h
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_TIMEOUT_H
+#include <sys/timeout.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_SYS_SOCKETVAR_H
+#include <sys/socketvar.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#if HAVE_NETINET_IN_SYSTM_H
+#include <netinet/in_systm.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_H
+#include <netinet/ip.h>
+#endif
+#if HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+#if HAVE_NETINET_IP_ICMP_H
+#include <netinet/ip_icmp.h>
+#endif
+#if HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_TCP_TIMER_H
+#include <netinet/tcp_timer.h>
+#endif
 
-#
-# Security modules to use
-#
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for security modules to use" >&5
-$as_echo_n "checking for security modules to use... " >&6; }
-# -*- sh -*-
-security_def_list="usm"
-security_src_list=""
-security_obj_list=""
-security_lobj_list=""
-security_ftobj_list=""
-security_mod_list=" "
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-new_with_security=
-new_with_out_security=`echo $with_out_security_modules | tr , ' '`
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
-# Assign additional security modules
-for i in `echo $with_security_modules | tr , ' '`; do
-  if echo " $new_with_out_security " | $GREP " $i " > /dev/null; then
-    echo
-    as_fn_error $? "security module conflict - $i both included and excluded" "$LINENO" 5
-  elif echo " $new_with_security " | $GREP " $i " > /dev/null ; then
-    : # Double define, ignore
-  else
-    new_with_security="$new_with_security $i"
-  fi
-done
+fi
 
-# Add default security modules
-for i in $security_def_list; do
-  if echo " $new_with_out_security " | $GREP " $i " > /dev/null; then
-    : # Excluded, ignore
-  elif echo " $new_with_security " | $GREP " $i " > /dev/null ; then
-    : # Double define, ignore
-  else
-    new_with_security="$new_with_security $i"
-  fi
 done
 
-# Generate output files
-: ${security_init_file:='snmplib/snmpsm_init.h'}
-: ${security_shutdown_file:='snmplib/snmpsm_shutdown.h'}
-: ${security_incl_file:='include/net-snmp/library/snmpv3-security-includes.h'}
+# UFS headers
 
-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_shutdown_file
-echo "/* This file is automatically generated by configure.  Do not modify by hand. */" > $security_incl_file
 
-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
-    as_fn_error $? "No such security module: $i / $cfile / $hfile" "$LINENO" 5
-  fi
 
-  # define a bunch of stuff to enable it
-  security_mod_list="${security_mod_list} $i"
-  security_src_list="$security_src_list $cfile"
-  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"
-  security_ftobj_list="$security_ftobj_list snmp"$i".ft"
-  echo "init_"$i"();" >> $security_init_file
-  echo "shutdown_"$i"();" >> $security_shutdown_file
-  echo "#include <net-snmp/library/$hfile>" >> $security_incl_file
-  def_name="`$as_echo "NETSNMP_SECMOD_$i" | $as_tr_cpp`"
-  cat >>confdefs.h <<_ACEOF
-#define $def_name 1
+for ac_header in ufs/ufs/dinode.h ufs/ufs/quota.h ufs/ufs/inode.h ufs/ffs/fs.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-done
-
-
-
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_UFS_UFS_DINODE_H
+#include <ufs/ufs/dinode.h>
+#endif
+#if HAVE_UFS_UFS_QUOTA_H
+#include <ufs/ufs/quota.h>
+#endif
 
 
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $new_with_security" >&5
-$as_echo "$new_with_security" >&6; }
+fi
 
-  cat >> configure-summary << EOF
-  SNMPv3 Security Modules:    $new_with_security
-EOF
+done
 
+# FreeBSD required headers
 
-#
-# Handle the special case of KSM to see which crypto API we support
-#
 
-ac_cv_NETSNMP_USE_KERBEROS_MIT=no
-rebuilt_new_with_security=
-already_checked_krb5=no
 
-for sec in $new_with_security
-do
-  if test "x$sec" = "xksm" -a "xyes" = "x$already_checked_krb5"; then
-    continue
-  fi
-  already_checked_krb5=yes
 
-  if test x$sec != xksm; then
-    rebuilt_new_with_security="$rebuilt_new_with_security $sec"
-  else
-    if test no = $trykrb5; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: configured not to use krb5. disabling ksm" >&5
-$as_echo "$as_me: configured not to use krb5. disabling ksm" >&6;}
-      continue
-    fi
 
-    # Extract the first word of "krb5-config", so it can be a program name with args.
-set dummy krb5-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_krb5_config+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $krb5_config in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_krb5_config="$krb5_config" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$krb5path/bin:$PATH"
-for as_dir in $as_dummy
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_krb5_config="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_krb5_config" && ac_cv_path_krb5_config="no"
-  ;;
-esac
-fi
-krb5_config=$ac_cv_path_krb5_config
-if test -n "$krb5_config"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $krb5_config" >&5
-$as_echo "$krb5_config" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
 
 
 
-    if test no != $krb5_config; then
-      CPPFLAGS="$CPPFLAGS `$krb5_config --cflags`"
-      LIBS="$LIBS `$krb5_config --libs`"
-    elif test $krb5path != no; then
 
-  if test "x$krb5path" != x -a -d $krb5path; then
-     if test -d $krb5path/lib; then
-       LDFLAGS="-L$krb5path/lib $LDFLAGS"
-     fi
-     if test -d $krb5path/include; then
-	CPPFLAGS="-I$krb5path/include $CPPFLAGS"
-     fi
-  fi
 
-    else
 
-  if test "x/usr/kerberos" != x -a -d /usr/kerberos; then
-     if test -d /usr/kerberos/lib; then
-       LDFLAGS="-L/usr/kerberos/lib $LDFLAGS"
-     fi
-     if test -d /usr/kerberos/include; then
-	CPPFLAGS="-I/usr/kerberos/include $CPPFLAGS"
-     fi
-  fi
 
-    fi
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5" >&5
-$as_echo_n "checking for krb5... " >&6; }
-    if ${ac_cv_have_krb5+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5
-$as_echo_n "checking for krb5_init_context in -lkrb5... " >&6; }
-if ${ac_cv_lib_krb5_krb5_init_context+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_header in malloc.h net/if_dl.h sys/sysctl.h stdlib.h net/if_types.h sys/queue.h osreldate.h machine/types.h sys/user.h sys/proc.h sys/mbuf.h sys/mount.h sys/dkstat.h sys/conf.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lkrb5  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
 #endif
-char krb5_init_context ();
-int
-main ()
-{
-return krb5_init_context ();
-  ;
-  return 0;
-}
+#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+
+
+#include <$ac_header>
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_krb5_krb5_init_context=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
 else
-  ac_cv_lib_krb5_krb5_init_context=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5_krb5_init_context" >&5
-$as_echo "$ac_cv_lib_krb5_krb5_init_context" >&6; }
-if test "x$ac_cv_lib_krb5_krb5_init_context" = xyes; then :
-  ac_cv_have_krb5=yes
-else
-  ac_cv_have_krb5=no
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
 fi
 
+done
+
+# Linux
+
 
-fi
 
 
-    if test $ac_cv_have_krb5 = no; then
-      if test "x$askedkrb5" = "xyes"; then
-	as_fn_error $? "Asked to use krb5 but I couldn't find it." "$LINENO" 5
-      fi
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no. disabling ksm" >&5
-$as_echo "no. disabling ksm" >&6; }
-      continue
-    fi
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    rebuilt_new_with_security="$rebuilt_new_with_security ksm"
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for heimdal" >&5
-$as_echo_n "checking for heimdal... " >&6; }
-    if ${ac_cv_heimdal+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+
+for ac_header in netinet/tcp_fsm.h sys/protosw.h nlist.h ioctls.h asm/page.h asm/types.h netipx/ipx.h pci/pci.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <krb5.h>
-int
-main ()
-{
-const char *v = heimdal_version;
-  ;
-  return 0;
-}
+$ac_includes_default
+#include <$ac_header>
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_heimdal=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
 else
-  ac_cv_heimdal=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_header_compiler=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_heimdal" >&5
-$as_echo "$ac_cv_heimdal" >&6; }
-    if test $ac_cv_heimdal = yes; then
-
-$as_echo "#define NETSNMP_USE_KERBEROS_HEIMDAL 1" >>confdefs.h
-
-      if test no = $krb5_config; then
-	LIBS="$LIBS -lkrb5 -lasn1 -lcom_err -lroken"
-      fi
-    elif test no = $krb5_config; then
-	LIBS="$LIBS -lkrb5 -lcom_err"
-    fi
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see which crypto API we need to use" >&5
-$as_echo_n "checking to see which crypto API we need to use... " >&6; }
-    ac_fn_c_check_func "$LINENO" "krb5_c_encrypt" "ac_cv_func_krb5_c_encrypt"
-if test "x$ac_cv_func_krb5_c_encrypt" = xyes; then :
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-    if ${ac_cv_NETSNMP_USE_KERBEROS_MIT+:} false; then :
-  $as_echo_n "(cached) " >&6
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lk5crypto" >&5
-$as_echo_n "checking for krb5_init_context in -lk5crypto... " >&6; }
-if ${ac_cv_lib_k5crypto_krb5_init_context+:} false; then :
-  $as_echo_n "(cached) " >&6
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lk5crypto  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char krb5_init_context ();
-int
-main ()
-{
-return krb5_init_context ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_k5crypto_krb5_init_context=yes
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_lib_k5crypto_krb5_init_context=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_k5crypto_krb5_init_context" >&5
-$as_echo "$ac_cv_lib_k5crypto_krb5_init_context" >&6; }
-if test "x$ac_cv_lib_k5crypto_krb5_init_context" = xyes; then :
-  ac_cv_NETSNMP_USE_KERBEROS_MIT=yes
-else
-  ac_cv_MIT_NEW_CRYPTo=no
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
 fi
-
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
 fi
 
+done
 
-    if test yes = $ac_cv_NETSNMP_USE_KERBEROS_MIT; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: new MIT crypto API" >&5
-$as_echo "new MIT crypto API" >&6; }
+# Solaris
 
-$as_echo "#define NETSNMP_USE_KERBEROS_MIT 1" >>confdefs.h
+for ac_header in inet/mib2.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-      if test no = $krb5_config; then
-	LIBS="$LIBS -lk5crypto"
-      fi
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: old MIT crypto API" >&5
-$as_echo "old MIT crypto API" >&6; }
+ac_header_compiler=no
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-    fi
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
   fi
-done
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-new_with_security=$rebuilt_new_with_security
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-#
-# Detect lm_sensors version
-#
-if test "x$ac_cv_header_sensors_sensors_h" = "xyes"; then
-    ac_fn_c_check_decl "$LINENO" "sensors_get_all_subfeatures" "ac_cv_have_decl_sensors_get_all_subfeatures" "#include <sensors/sensors.h>
-"
-if test "x$ac_cv_have_decl_sensors_get_all_subfeatures" = xyes; then :
-  ac_have_decl=1
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_have_decl=0
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SENSORS_GET_ALL_SUBFEATURES $ac_have_decl
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
-if test $ac_have_decl = 1; then :
-
-$as_echo "#define NETSNMP_USE_SENSORS_V3 1" >>confdefs.h
 
 fi
 
-fi
+done
 
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
+# NetBSD required headers
 
-_ACEOF
 
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
 
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-      if test ! -f "$cache_file" || test -h "$cache_file"; then
-	cat confcache >"$cache_file"
-      else
-        case $cache_file in #(
-        */* | ?:*)
-	  mv -f confcache "$cache_file"$$ &&
-	  mv -f "$cache_file"$$ "$cache_file" ;; #(
-        *)
-	  mv -f confcache "$cache_file" ;;
-	esac
-      fi
-    fi
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-# -*- autoconf -*-
-#########################################
-##
-# Checks for libraries that are run
-# before the agent module tests.
-##
-#########################################
 
 
-##
-#   RPM checks
-#
-##
-for ac_header in rpm/rpmlib.h rpm/header.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
 
+for ac_header in kvm.h sys/pool.h uvm/uvm_param.h uvm/uvm_extern.h vm/vm_param.h vm/vm_extern.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-done
-
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-ac_fn_c_check_header_mongrel "$LINENO" "rpm/rpmlib.h" "ac_cv_header_rpm_rpmlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_rpm_rpmlib_h" = xyes; then :
-  rpmlib_h=yes
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
 else
-  rpmlib_h=no
+  ac_cpp_err=yes
 fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-ac_fn_c_check_header_mongrel "$LINENO" "rpm/header.h" "ac_cv_header_rpm_header_h" "$ac_includes_default"
-if test "x$ac_cv_header_rpm_header_h" = xyes; then :
-  rpmheader_h=yes
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  rpmheader_h=no
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
-
-if test "x$rpmheader_h" = "xno" -o "x$rpmlib_h" = "xno" ; then
-  if test "x$with_rpm" = "xyes" ; then
-    as_fn_error $? "Could not find either the RPM header files needed and was specifically asked to use RPM support" "$LINENO" 5
-  else
-    with_rpm=no
-  fi
 fi
 
-#
-# rpm libraries only needed for the host resources mib software
-# installed tables (on linux in particular)
-#
-if test "x$with_rpm" != "xno"; then
-  # ARG.  RPM is a real pain.
-  # FWIW librpm.la, librpmio.la, and libpopt.la have correct dependencies.
-  _rpmlibs=""
+done
 
-  # rpm-4.0.x needs rpmio.
+# BSDi2 headers
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing rpmGetPath" >&5
-$as_echo_n "checking for library containing rpmGetPath... " >&6; }
-if ${netsnmp_cv_func_rpmGetPath__rpmlibs+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_header in vm/swap_pager.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$_rpmlibs"
-          netsnmp_temp_LIBS="${netsnmp_target_val} $LMIBLIBS ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
+#if HAVE_VM_VM_H
+#include <vm/vm.h>
 #endif
-char rpmGetPath ();
-int
-main ()
-{
-return rpmGetPath ();
-  ;
-  return 0;
-}
+
+
+#include <$ac_header>
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
 else
-  for netsnmp_cur_lib in rpmio ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char rpmGetPath ();
-int
-main ()
-{
-return rpmGetPath ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+eval "$as_ac_Header=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_rpmGetPath__rpmlibs="${netsnmp_result}"
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_rpmGetPath__rpmlibs" >&5
-$as_echo "$netsnmp_cv_func_rpmGetPath__rpmlibs" >&6; }
- if test "${netsnmp_cv_func_rpmGetPath__rpmlibs}" != "no" ; then
-    if test "${netsnmp_cv_func_rpmGetPath__rpmlibs}" != "none required" ; then
-       _rpmlibs="${netsnmp_result} ${netsnmp_target_val}"
-    fi
-
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
- fi
+fi
 
+done
 
-  # rpm-4.0.3 librpmdb actually contains what we need.
+# linux ethtool
+# requires special hacks to get around various problems on older linux kernels.
+# major ugh....
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing rpmdbOpen" >&5
-$as_echo_n "checking for library containing rpmdbOpen... " >&6; }
-if ${netsnmp_cv_func_rpmdbOpen__rpmlibs+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_header in linux/ethtool.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$_rpmlibs"
-          netsnmp_temp_LIBS="${netsnmp_target_val} $LMIBLIBS ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char rpmdbOpen ();
-int
-main ()
-{
-return rpmdbOpen ();
-  ;
-  return 0;
-}
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
-else
-  for netsnmp_cur_lib in rpmdb ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char rpmdbOpen ();
-int
-main ()
-{
-return rpmdbOpen ();
-  ;
-  return 0;
-}
+#include <linux/types.h>
+typedef __u64 u64;         /* hack, so we may include kernel's ethtool.h */
+typedef __u32 u32;         /* ditto */
+typedef __u16 u16;         /* ditto */
+typedef __u8 u8;           /* ditto */
+
+
+#include <$ac_header>
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_rpmdbOpen__rpmlibs="${netsnmp_result}"
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_rpmdbOpen__rpmlibs" >&5
-$as_echo "$netsnmp_cv_func_rpmdbOpen__rpmlibs" >&6; }
- if test "${netsnmp_cv_func_rpmdbOpen__rpmlibs}" != "no" ; then
-    if test "${netsnmp_cv_func_rpmdbOpen__rpmlibs}" != "none required" ; then
-       _rpmlibs="${netsnmp_result} ${netsnmp_target_val}"
-    fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
+fi
 
- fi
+done
 
-  # now check for rpm using the appropriate libraries.
+# BSDi3 headers
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing rpmReadConfigFiles" >&5
-$as_echo_n "checking for library containing rpmReadConfigFiles... " >&6; }
-if ${netsnmp_cv_func_rpmReadConfigFiles__rpmlibs+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_header in sys/stat.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$_rpmlibs"
-          netsnmp_temp_LIBS="${netsnmp_target_val} $LMIBLIBS ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char rpmReadConfigFiles ();
-int
-main ()
-{
-return rpmReadConfigFiles ();
-  ;
-  return 0;
-}
+$ac_includes_default
+#include <$ac_header>
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
 else
-  for netsnmp_cur_lib in rpm ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char rpmReadConfigFiles ();
-int
-main ()
-{
-return rpmReadConfigFiles ();
-  ;
-  return 0;
-}
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_rpmReadConfigFiles__rpmlibs="${netsnmp_result}"
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_rpmReadConfigFiles__rpmlibs" >&5
-$as_echo "$netsnmp_cv_func_rpmReadConfigFiles__rpmlibs" >&6; }
- if test "${netsnmp_cv_func_rpmReadConfigFiles__rpmlibs}" != "no" ; then
-    if test "${netsnmp_cv_func_rpmReadConfigFiles__rpmlibs}" != "none required" ; then
-       _rpmlibs="${netsnmp_result} ${netsnmp_target_val}"
-    fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
-$as_echo "#define HAVE_LIBRPM 1" >>confdefs.h
+fi
 
-    LMIBLIBS="$_rpmlibs $LMIBLIBS"
+done
 
+# BSDi3/IRIX headers
+# at least IRIX 6.5 needs _KMEMUSER and sys/types.h (mprot_t) to compile
+#   sys/vnode.h
 
- fi
+for ac_header in sys/vnode.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+#define _KMEMUSER 1
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
 
-  # rpm 4.6 has incompatible API, turn on the legacy one
-  ac_fn_c_check_decl "$LINENO" "headerGetEntry" "ac_cv_have_decl_headerGetEntry" "#include <rpm/rpmlib.h>
 
-"
-if test "x$ac_cv_have_decl_headerGetEntry" = xyes; then :
-  :
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
 else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-$as_echo "#define _RPM_4_4_COMPAT /**/" >>confdefs.h
-
+eval "$as_ac_Header=no"
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
 fi
 
-#
-# getfsstat/getvfsstat
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getfsstat" >&5
-$as_echo_n "checking for library containing getfsstat... " >&6; }
-if ${ac_cv_search_getfsstat+:} false; then :
-  $as_echo_n "(cached) " >&6
+done
+
+# at least IRIX 6.5 needs sys/sema.h (mrlock_t) to compile sys/hashing.h
+
+for ac_header in sys/sema.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getfsstat ();
-int
-main ()
-{
-return getfsstat ();
-  ;
-  return 0;
-}
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
 _ACEOF
-for ac_lib in '' nbutil; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+    ac_cpp_err=
   fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_getfsstat=$ac_res
+else
+  ac_cpp_err=yes
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_getfsstat+:} false; then :
-  break
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
 fi
-done
-if ${ac_cv_search_getfsstat+:} false; then :
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_search_getfsstat=no
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getfsstat" >&5
-$as_echo "$ac_cv_search_getfsstat" >&6; }
-ac_res=$ac_cv_search_getfsstat
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
 fi
-
-for ac_func in getfsstat
-do :
-  ac_fn_c_check_func "$LINENO" "getfsstat" "ac_cv_func_getfsstat"
-if test "x$ac_cv_func_getfsstat" = xyes; then :
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
-#define HAVE_GETFSSTAT 1
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
-done
-
-for ac_func in getvfsstat
-do :
-  ac_fn_c_check_func "$LINENO" "getvfsstat" "ac_cv_func_getvfsstat"
-if test "x$ac_cv_func_getvfsstat" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_GETVFSSTAT 1
-_ACEOF
 
-fi
 done
 
-# getmntent is in the standard C library on UNICOS, in -lsun on Irix 4,
-# -lseq on Dynix/PTX, -lgen on Unixware.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getmntent" >&5
-$as_echo_n "checking for library containing getmntent... " >&6; }
-if ${ac_cv_search_getmntent+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+for ac_header in sys/hashing.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+$ac_includes_default
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
+#if HAVE_SYS_SEMA_H
+#include <sys/sema.h>
 #endif
-char getmntent ();
-int
-main ()
-{
-return getmntent ();
-  ;
-  return 0;
-}
+
+
+#include <$ac_header>
 _ACEOF
-for ac_lib in '' sun seq gen; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_getmntent=$ac_res
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_getmntent+:} false; then :
-  break
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-done
-if ${ac_cv_search_getmntent+:} false; then :
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
-else
-  ac_cv_search_getmntent=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getmntent" >&5
-$as_echo "$ac_cv_search_getmntent" >&6; }
-ac_res=$ac_cv_search_getmntent
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-  ac_cv_func_getmntent=yes
 
-$as_echo "#define HAVE_GETMNTENT 1" >>confdefs.h
+done
+
+# more IRIX headers
 
-else
-  ac_cv_func_getmntent=no
-fi
 
 
 
-#
-# kinfo_get_cpus
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing kinfo_get_cpus" >&5
-$as_echo_n "checking for library containing kinfo_get_cpus... " >&6; }
-if ${ac_cv_search_kinfo_get_cpus+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_header in sys/tcpipstats.h sys/sysmp.h sys/systeminfo.h sys/sysget.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char kinfo_get_cpus ();
-int
-main ()
-{
-return kinfo_get_cpus ();
-  ;
-  return 0;
-}
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-for ac_lib in '' kinfo; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+    ac_cpp_err=
   fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_kinfo_get_cpus=$ac_res
+else
+  ac_cpp_err=yes
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_kinfo_get_cpus+:} false; then :
-  break
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
 fi
-done
-if ${ac_cv_search_kinfo_get_cpus+:} false; then :
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_search_kinfo_get_cpus=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_kinfo_get_cpus" >&5
-$as_echo "$ac_cv_search_kinfo_get_cpus" >&6; }
-ac_res=$ac_cv_search_kinfo_get_cpus
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
 fi
-
-for ac_func in kinfo_get_cpus
-do :
-  ac_fn_c_check_func "$LINENO" "kinfo_get_cpus" "ac_cv_func_kinfo_get_cpus"
-if test "x$ac_cv_func_kinfo_get_cpus" = xyes; then :
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
-#define HAVE_KINFO_GET_CPUS 1
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
+
 done
 
+# AIX system configuration
 
-#
-# diskIOLAx requires exp which may require -lm
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing exp" >&5
-$as_echo_n "checking for library containing exp... " >&6; }
-if ${ac_cv_search_exp+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_header in sys/systemcfg.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char exp ();
-int
-main ()
-{
-return exp ();
-  ;
-  return 0;
-}
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
 _ACEOF
-for ac_lib in '' m; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+    ac_cpp_err=
   fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_exp=$ac_res
+else
+  ac_cpp_err=yes
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_exp+:} false; then :
-  break
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
 fi
-done
-if ${ac_cv_search_exp+:} false; then :
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_search_exp=no
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_exp" >&5
-$as_echo "$ac_cv_search_exp" >&6; }
-ac_res=$ac_cv_search_exp
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
 fi
 
+done
 
-#
-#   libkvm
-#
+# from smux stuff
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing kvm_read" >&5
-$as_echo_n "checking for library containing kvm_read... " >&6; }
-if ${netsnmp_cv_func_kvm_read_LAGENTLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+
+for ac_header in err.h sys/filio.h sgtty.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LAGENTLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char kvm_read ();
-int
-main ()
-{
-return kvm_read ();
-  ;
-  return 0;
-}
+$ac_includes_default
+#include <$ac_header>
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
 else
-  for netsnmp_cur_lib in kvm ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char kvm_read ();
-int
-main ()
-{
-return kvm_read ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_kvm_read_LAGENTLIBS="${netsnmp_result}"
+ac_header_compiler=no
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_kvm_read_LAGENTLIBS" >&5
-$as_echo "$netsnmp_cv_func_kvm_read_LAGENTLIBS" >&6; }
- if test "${netsnmp_cv_func_kvm_read_LAGENTLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_kvm_read_LAGENTLIBS}" != "none required" ; then
-       LAGENTLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
-
-
- fi
-
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing kvm_openfiles" >&5
-$as_echo_n "checking for library containing kvm_openfiles... " >&6; }
-if ${netsnmp_cv_func_kvm_openfiles_LAGENTLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LAGENTLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char kvm_openfiles ();
-int
-main ()
-{
-return kvm_openfiles ();
-  ;
-  return 0;
-}
+#include <$ac_header>
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
 else
-  for netsnmp_cur_lib in kvm ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char kvm_openfiles ();
-int
-main ()
-{
-return kvm_openfiles ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
+  ac_header_preproc=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_kvm_openfiles_LAGENTLIBS="${netsnmp_result}"
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_kvm_openfiles_LAGENTLIBS" >&5
-$as_echo "$netsnmp_cv_func_kvm_openfiles_LAGENTLIBS" >&6; }
- if test "${netsnmp_cv_func_kvm_openfiles_LAGENTLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_kvm_openfiles_LAGENTLIBS}" != "none required" ; then
-       LAGENTLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
+fi
 
- fi
+done
 
+# AIX needs this for statfs func
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing kvm_getprocs" >&5
-$as_echo_n "checking for library containing kvm_getprocs... " >&6; }
-if ${netsnmp_cv_func_kvm_getprocs_LMIBLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_header in sys/statfs.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LMIBLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char kvm_getprocs ();
-int
-main ()
-{
-return kvm_getprocs ();
-  ;
-  return 0;
-}
+$ac_includes_default
+#include <$ac_header>
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
 else
-  for netsnmp_cur_lib in kvm ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char kvm_getprocs ();
-int
-main ()
-{
-return kvm_getprocs ();
-  ;
-  return 0;
-}
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_kvm_getprocs_LMIBLIBS="${netsnmp_result}"
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_kvm_getprocs_LMIBLIBS" >&5
-$as_echo "$netsnmp_cv_func_kvm_getprocs_LMIBLIBS" >&6; }
- if test "${netsnmp_cv_func_kvm_getprocs_LMIBLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_kvm_getprocs_LMIBLIBS}" != "none required" ; then
-       LMIBLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
+fi
+
+done
+
+# for HostRes (HP-UX at least)
 
- fi
 
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing kvm_getproc2" >&5
-$as_echo_n "checking for library containing kvm_getproc2... " >&6; }
-if ${netsnmp_cv_func_kvm_getproc2_LMIBLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+
+for ac_header in sys/dkio.h sys/diskio.h sys/pstat.h linux/hdreg.h pkglocs.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LMIBLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char kvm_getproc2 ();
-int
-main ()
-{
-return kvm_getproc2 ();
-  ;
-  return 0;
-}
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
-else
-  for netsnmp_cur_lib in kvm ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char kvm_getproc2 ();
-int
-main ()
-{
-return kvm_getproc2 ();
-  ;
-  return 0;
-}
+#include <$ac_header>
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_kvm_getproc2_LMIBLIBS="${netsnmp_result}"
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_kvm_getproc2_LMIBLIBS" >&5
-$as_echo "$netsnmp_cv_func_kvm_getproc2_LMIBLIBS" >&6; }
- if test "${netsnmp_cv_func_kvm_getproc2_LMIBLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_kvm_getproc2_LMIBLIBS}" != "none required" ; then
-       LMIBLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
+fi
 
- fi
+done
 
+# for HostRes (Solaris 2.x at least)
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing kvm_getswapinfo" >&5
-$as_echo_n "checking for library containing kvm_getswapinfo... " >&6; }
-if ${netsnmp_cv_func_kvm_getswapinfo_LMIBLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_header in pkginfo.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LMIBLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char kvm_getswapinfo ();
-int
-main ()
-{
-return kvm_getswapinfo ();
-  ;
-  return 0;
-}
+$ac_includes_default
+#include <$ac_header>
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
 else
-  for netsnmp_cur_lib in kvm ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char kvm_getswapinfo ();
-int
-main ()
-{
-return kvm_getswapinfo ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+ac_header_compiler=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_kvm_getswapinfo_LMIBLIBS="${netsnmp_result}"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_kvm_getswapinfo_LMIBLIBS" >&5
-$as_echo "$netsnmp_cv_func_kvm_getswapinfo_LMIBLIBS" >&6; }
- if test "${netsnmp_cv_func_kvm_getswapinfo_LMIBLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_kvm_getswapinfo_LMIBLIBS}" != "none required" ; then
-       LMIBLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-
- fi
-
-netsnmp_save_LIBS="$LIBS"
-LIBS="$LAGENTLIBS $LMIBLIBS $LIBS"
-for ac_func in kvm_openfiles kvm_getprocs kvm_getproc2 kvm_getswapinfo
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
 fi
-done
-
-LIBS="$netsnmp_save_LIBS"
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-#
-#   dynamic module support
-#
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
-$as_echo_n "checking for library containing dlopen... " >&6; }
-if ${netsnmp_cv_func_dlopen_LMIBLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LMIBLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val} $LAGENTLIBS $LSNMPLIBS ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
+ echo "$as_me:$LINENO: checking for pkginfo in -ladm" >&5
+echo $ECHO_N "checking for pkginfo in -ladm... $ECHO_C" >&6
+if test "${ac_cv_lib_adm_pkginfo+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  for netsnmp_cur_lib in dl ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ladm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-char dlopen ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char pkginfo ();
 int
 main ()
 {
-return dlopen ();
+pkginfo ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_adm_pkginfo=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_adm_pkginfo=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_dlopen_LMIBLIBS="${netsnmp_result}"
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_dlopen_LMIBLIBS" >&5
-$as_echo "$netsnmp_cv_func_dlopen_LMIBLIBS" >&6; }
- if test "${netsnmp_cv_func_dlopen_LMIBLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_dlopen_LMIBLIBS}" != "none required" ; then
-       LMIBLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
-
-
- fi
-
-netsnmp_save_LIBS="$LIBS"
-LIBS="$LMIBLIBS $LAGENTLIBS $LSNMPLIBS $LIBS"
-for ac_func in dlopen
-do :
-  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DLOPEN 1
+echo "$as_me:$LINENO: result: $ac_cv_lib_adm_pkginfo" >&5
+echo "${ECHO_T}$ac_cv_lib_adm_pkginfo" >&6
+if test $ac_cv_lib_adm_pkginfo = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_PKGINFO 1
 _ACEOF
 
+    LMIBLIBS="${LMIBLIBS} -ladm"
 fi
-done
-
-LIBS="$netsnmp_save_LIBS"
 
-# -*- autoconf -*-
-#
-# generate empty files
-#
-# Create include file list for snmp_vars.h to use.
-mibdir="agent/mibgroup"
-if test ! -d agent; then
-  mkdir agent
-fi
-if test ! -d agent/mibgroup; then
-  mkdir agent/mibgroup
 fi
-j="$mibdir/mib_module_includes.h  $mibdir/agent_module_includes.h \
-   $mibdir/mib_module_inits.h     $mibdir/agent_module_inits.h    \
-   $mibdir/mib_module_shutdown.h  $mibdir/agent_module_shutdown.h \
-   include/net-snmp/agent/mib_module_config.h                     \
-                   include/net-snmp/agent/agent_module_config.h   \
-   $mibdir/mib_module_dot_conf.h  $mibdir/agent_module_dot_conf.h"
 
-for i in $j; do
-  rm -f $i
-  echo "/* This file is automatically generated by configure.  Do not modify by hand. */" > $i
 done
 
-#
-# Do hairy agent module processing.
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for and configuring mib modules to use" >&5
-$as_echo_n "checking for and configuring mib modules to use... " >&6; }
-
-# set up the CPP command
-MODULECPP="$CPP $PARTIALTARGETFLAGS -DNETSNMP_FEATURE_CHECKING -I${srcdir}/include -I${srcdir}/agent/mibgroup"
-if test "x$enable_mfd_rewrites" = "xyes"; then
-  MODULECPP="$MODULECPP -DNETSNMP_ENABLE_MFD_REWRITES"
-fi
-
-module_list=""
-mib_module_list=""
-agent_module_list=""
-new_with_mib_modules=`echo $with_mib_modules | $SED 's/,/ /g;'`
-new_with_out_mib_modules=`echo $with_out_mib_modules | $SED 's/,/ /g;'`
 
-# set up initial module list
-new_module_list="$new_with_mib_modules default_modules"
+case $target_os in
+    aix*) # AIX perfstat library, needed for CPU/memory statistics
 
-# minor modifications
-if test "x$enable_agent" = "xno"; then
-   # minimum mib module list for snmptrapd
-   new_module_list="mibII/vacm_vars mibII/vacm_conf utilities/execute $new_with_mib_modules"
-   default_mibs=SNMPv2-MIB:IF-MIB:IP-MIB:TCP-MIB:UDP-MIB
-   default_mibs_install=" "
-elif test "x$mini_agent" = "xyes"; then
-   # define the mini agent flag to reduce our load list from default_mibs.h
-   MODULECPP="$MODULECPP -DNETSNMP_MINI_AGENT"
+for ac_header in libperfstat.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-test_modules="$new_module_list"
-new_module_list=""
-
-# remove modules that were explicitly excluded
-for i in $test_modules
- do
-  if echo " $new_with_out_mib_modules " | $GREP " $i " > /dev/null; then
-    mib_cfg_msg="mib module '$i' is both included and excluded."
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: mib module conflict" >&5
-$as_echo "$as_me: WARNING: mib module conflict" >&2;}
-    if test "x$with_mib_cfg_checks" = "xyes"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: user with    : $with_mib_modules" >&5
-$as_echo "$as_me: WARNING: user with    : $with_mib_modules" >&2;}
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: final with   : $new_module_list" >&5
-$as_echo "$as_me: WARNING: final with   : $new_module_list" >&2;}
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: user without : $with_out_mib_modules" >&5
-$as_echo "$as_me: WARNING: user without : $with_out_mib_modules" >&2;}
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: final without: $new_with_out_mib_modules" >&5
-$as_echo "$as_me: WARNING: final without: $new_with_out_mib_modules" >&2;}
-      as_fn_error $? "$mib_cfg_msg" "$LINENO" 5
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $mib_cfg_msg It will be excluded" >&5
-$as_echo "$as_me: WARNING: $mib_cfg_msg It will be excluded" >&2;}
-
-  cat >> configure-summary << EOF
-  *** MIB Module warning *** $mib_cfg_msg It has been excluded.
-EOF
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-    fi
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
-    new_module_list="$new_module_list $i"
+    ac_cpp_err=
   fi
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $new_module_list." >&5
-$as_echo "$new_module_list." >&6; }
-
-#---------------------
-# loop over module list
-#
-all_warnings=""
-if test "x$with_mib_cfg_debug" = "xyes"; then
-   module_debug=1
 else
-   module_debug=0
+  ac_cpp_err=yes
 fi
-first_pass=1
-output_to=normal
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-if test ! -d mk ; then
-  mkdir mk
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ echo "$as_me:$LINENO: checking for perfstat_cpu_total in -lperfstat" >&5
+echo $ECHO_N "checking for perfstat_cpu_total in -lperfstat... $ECHO_C" >&6
+if test "${ac_cv_lib_perfstat_perfstat_cpu_total+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lperfstat  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-module_rules=mk/module_rules.mk
-echo "# contents below built automatically by configure; do not edit by hand" > $module_rules
-
-#
-# make file sub-pieces
-#
-for i in module_list_deps mib_module_list_deps agent_module_list_deps ; do
-  eval "$i=mk/${i}.mk"
-  echo "# contents below built automatically by configure; do not edit by hand" > mk/${i}.mk
-done
-
-#
-# variable settings sub-pieces
-#
-for i in module_list_code mib_module_list_code agent_module_list_code module_list mib_module_list agent_module_list ; do
-  eval "$i=mk/${i}.mk"
-  echo "# contents below built automatically by configure; do not edit by hand" > mk/${i}.mk
-  echo "$i= \\" >> mk/${i}.mk
-done
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char perfstat_cpu_total ();
+int
+main ()
+{
+perfstat_cpu_total ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_perfstat_perfstat_cpu_total=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-echo $ECHO_N "echo " $ECHO_C > mk/MODULE_LIST.mk
-MODULE_LIST=mk/MODULE_LIST.mk
+ac_cv_lib_perfstat_perfstat_cpu_total=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_perfstat_perfstat_cpu_total" >&5
+echo "${ECHO_T}$ac_cv_lib_perfstat_perfstat_cpu_total" >&6
+if test $ac_cv_lib_perfstat_perfstat_cpu_total = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_PERFSTAT 1
+_ACEOF
 
+            LMIBLIBS="${LMIBLIBS} -lperfstat"
+fi
 
-#---------------------
-# until we have an empty module list...
-#   (modules may add new modules, and until all dependencies are done...)
-#
-while test "x$new_module_list" != "x"; do
+else
+  { { echo "$as_me:$LINENO: error:
 
-  if test $module_debug = 1; then
-    echo -e "\n****************************************************************"
-  fi
+*** To monitor CPU/memory values in AIX you need to install
+*** libperfstat which can be found in bos.perf
+" >&5
+echo "$as_me: error:
 
+*** To monitor CPU/memory values in AIX you need to install
+*** libperfstat which can be found in bos.perf
+" >&2;}
+   { (exit 1); exit 1; }; }
+fi
 
+done
 
-  if test $module_debug = 1; then
-    echo "nml: $new_module_list"
-  fi
+        ;;
+    hpux*) # HP-UX agent needs open_mib
+        echo "$as_me:$LINENO: checking for open_mib in -lnm" >&5
+echo $ECHO_N "checking for open_mib in -lnm... $ECHO_C" >&6
+if test "${ac_cv_lib_nm_open_mib+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char open_mib ();
+int
+main ()
+{
+open_mib ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_nm_open_mib=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_nm_open_mib=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_nm_open_mib" >&5
+echo "${ECHO_T}$ac_cv_lib_nm_open_mib" >&6
+if test $ac_cv_lib_nm_open_mib = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBNM 1
+_ACEOF
 
-  #---------------------
-  # loop over all the modules in the current list
-  #
-  for j in $new_module_list
-    do
+            LMIBLIBS="${LMIBLIBS} -lnm"
+fi
 
-    #---------------------
-    # figure out which sub-blocks to build in parts
-    if echo "$j" | $GREP "=" ; then
-       # build a shared object file
-       # format: sofilename=module1:module2
-       # XXX: currently doesn't do this
-       dl_name=`echo $j | $SED 's/=.*//'`
-       dl_names="$dl_names $dl_name"
-       dl_objects=`echo $j | $SED 's/.*=//'`
-       module_sublist=`echo $dl_objects | $SED 's/:/ /g'`
-       saved_sublist=""
-       saved_sublist_code=""
-       output_to=separate
+        ;;
+    *)
+        ;;
+esac
+# WIN32
+# (mingw32 must link winsock explicitly)
 
-       # create output files
-       # these actually get nuked later
-       output_inits="agent/mibgroup/${dl_name}-dll.c"
-       output_hdrs="agent/mibgroup/${dl_name}-hdrs.h"
-    else
-       # not a special token invocation
-       module_sublist=$j
-       output_to=normal
-       output_t=
-    fi
+for ac_header in winsock.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-    while test "x$module_sublist" != "x" ; do
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-    #---------------------
-    # loop over all the modules in the sub list
-    for i in $module_sublist
-    do
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-  if test $module_debug = 1; then
-    echo -e "\n================================================================"
-  fi
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
+        AGENTLIBS="${AGENTLIBS} -liphlpapi"
+        case $target_os in
+                mingw*)
+                        LIBS="${LIBS} -lregex -lws2_32"
+                        AGENTLIBS="${AGENTLIBS} -lregex -lws2_32"
+                        ;;
+                *)
+                        ;;
+        esac
 
-  if test $module_debug = 1; then
-    echo "testing $i"
-  fi
+fi
 
+done
 
-    need_header=0
 
-    #---------------------
-    # build a pseudo include header that includes current config and
-    # system symbols:
-    rm -f conftest.$ac_ext module_tmp_header.h
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+for ac_header in io.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
-#include NETSNMP_SYSTEM_INCLUDE_FILE
-#include "$srcdir/$mibdir/$i.h"
+$ac_includes_default
+#include <$ac_header>
 _ACEOF
-    mv conftest.$ac_ext module_tmp_header.h
-
-    #---------------------
-    # macro: config_belongs_in(ARG)
-    #   ARG: either
-    #     - mib_module   => libnetsnmpmibs   (default)
-    #     - agent_module => libnetsnmpagent
-    #
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-    module_type=mib_module
-    if test -f $srcdir/$mibdir/$i.h; then
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-      module_type=`$MODULECPP module_tmp_header.h | \
-                   $SED -n 's at .*config_belongs_in(\([^)]*\)).*@\1 at p'`
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-    fi
-    if test "x$module_type" = "x" ; then
-      module_type=mib_module
-    fi
-    if test "x$output_to" = "xnormal" ; then
-     	output_inits="$mibdir/${module_type}_inits.h"
-     	output_hdrs="$mibdir/${module_type}_includes.h"
-    fi
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-    #--------------------
-    # check for duplicates within the dll system.
-    #   - if found in a dll, then remove from the dll and add to main
-    dblfix=""
-    for dltest in $dl_names ; do
-      eval mod_files="\"\$dl_${dltest}_files\""
-      if echo " $mod_files " | $GREP " $i " > /dev/null; then
-        # some dll module has already seen this, unload it from that list
-        # and include it in the core (again)
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
-  if test $module_debug = 1; then
-    echo "removing $i from $dltest"
-  fi
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
+fi
 
-        mod_files=`echo " $mod_files " | $SED "s@ $i @@"`
-        dblfix="__XXX__"
-        eval "dl_${dltest}_files=\"$mod_files\""
+done
 
-        module_list="$module_list $i"
-	echo "read_config.lo: mibgroup/$i.h" >> $module_list_deps
-	if test $module_type = "agent_module" ; then
- 	    echo "snmp_vars.lo: mibgroup/$i.h" >> $agent_module_list_deps
-        else
- 	    echo "mib_modules.lo: mibgroup/$i.h" >> $mib_module_list_deps
-        fi
-        eval ${module_type}_list="\"\$${module_type}_list $i\""
-	echo "	$i \\" >> $module_list_code
-	echo $ECHO_N " $i" $ECHO_C >> $MODULE_LIST
-        eval tmpfilevar=\$`echo ${module_type}_list_code`
-        echo "	$i \\" >> $tmpfilevar
+# SCO
 
-	# XXX: add this to the main init list; this is possible not
-	# quite in the right spot any longer but we're stuck with it.
-	# Adding it back to the original ordered spot would be a
-	# nightmare.  Ok, we're already in nightmare code so that
-	# wolud have to be a night-terror.
-        mnm=`echo $i | $SED 's/.*\///;s/\.c$//;'`
-	output_inits_tmp="$mibdir/${module_type}_inits.h"
-	echo "  if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits_tmp
-        # XXX: even worse, we loose whether the header is needed or not.
-     	output_hdrs_tmp="$mibdir/${module_type}_includes.h"
-        echo '#include "'"mibgroup/$i.h"'"' >> $output_hdrs_tmp
-      fi
-    done
+for ac_header in sys/stream.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-    #---------------------
-    # make sure module wasn't explicitly excluded, or already added
-    #
-    if test "x$dblfix" != "x" ; then
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-  if test $module_debug = 1; then
-    echo "$i was duplicated -- putting into main"
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
   fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-    elif echo " $new_with_out_mib_modules " | $GREP " $i " > /dev/null; then
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
-  if test $module_debug = 1; then
-    echo "$i was excluded"
-  fi
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
+fi
 
-    elif echo " $module_list " | $GREP " $i " > /dev/null; then
+done
 
-  if test $module_debug = 1; then
-    echo "$i already tested"
-  fi
+# KAME
 
 
-    else
 
-      #---------------------
-      # process modules header, checking for config_ pseudo-macros
-      #
 
-      #---------------------
-      # does the header file for the module exist?
-      #   macros are only processed if it does
-      if test -f $srcdir/$mibdir/$i.h; then
-        new_list=""
 
-        #---------------------
-      	# macro: config_exclude(modules)
-      	#  - lists conflicts with other modules
-      	#    - EG: new MIB implementations exclude old and vice-versa
-      	#
-        # check if $i has any conflicts
-        #
 
-        new_list_excl=`$MODULECPP module_tmp_header.h | \
-                       $SED -n 's/.*config_exclude(\(.*\)).*/\1/p'`
-	if test "x$new_list_excl" != "x"; then
 
-  if test $module_debug = 1; then
-    echo "$i excludes $new_list_excl"
-  fi
 
 
-	  for j in $new_list_excl
-	    do
-	    if echo " $module_list $new_mib_module_list $new_list_two " | $GREP " $j " > /dev/null; then
-              mib_cfg_msg="mib module '$i' excludes module '$j' but another module requires it"
-              { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: mib module error" >&5
-$as_echo "$as_me: WARNING: mib module error" >&2;}
-              if test "x$with_mib_cfg_checks" = "xyes"; then
-	        as_fn_error $? "$mib_cfg_msg" "$LINENO" 5
-              else
-	        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $mib_cfg_msg" >&5
-$as_echo "$as_me: WARNING: $mib_cfg_msg" >&2;}
+for ac_header in netinet/ip6.h netinet6/in6_var.h netinet6/in6_pcb.h netinet6/ip6_var.h netinet6/tcp6.h netinet6/tcp6_fsm.h netinet6/nd6.h netinet6/tcp6_timer.h netinet6/tcp6_var.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-  cat >> configure-summary << EOF
-  *** MIB Module warning *** $mib_cfg_msg
-EOF
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP6_H
+#include <netinet/ip6.h>
+#endif
 
-              fi
-	    else
-	      new_with_out_mib_modules="$j $new_with_out_mib_modules"
 
-  if test $module_debug = 1; then
-    echo "$j added to excluded list"
-  fi
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
-	    fi
-	  done
-	fi
+fi
 
-        #---------------------
-      	# macro: config_arch_require(ARCH,modules)
-      	#  - lists modules required for a given ARCH
-        #
-        # check if $i has any architecture specific requirements
-        #
+done
 
+# DYNAMIC MODULE SUPPORT
 
-        new_list_arch=`$MODULECPP module_tmp_header.h | \
-                       $SED -n 's/.*config_arch_require( *\([^ ]*\) *, *\([^ ]*\) *).*/\1-xarchx-\2/p'`
+for ac_header in dlfcn.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-	if test "x$new_list_arch" != "x"; then
-          for j in $new_list_arch
-	    do
-	    archtest=`echo $j | $SED 's/-xarchx-.*//'`
-	    # target_os may have been changed to a #define of 1...
-	    if test "x$archtest" = "x1" -o "x$target_os" = "x$archtest" -o "x$PARTIALTARGETOS" = "x$archtest"; then
-	      new_list="$new_list `echo $j | $SED 's/.*-xarchx-//'`"
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-  if test $module_debug = 1; then
-    echo " $i required adding arch files: `echo $j | $SED 's/.*-xarchx-//'`"
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
   fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-	    fi
-	  done
-	fi
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
-  if test $module_debug = 1; then
-    echo " $i required arch files: $new_list"
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+# table_array helper support
+
+for ac_header in search.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
   fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
-        #---------------------
-      	# macro: config_version_require((base, version, version-modules, ...))
-      	#  - lists alternative modules used from different versions.
-        #
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
-        new_list_alt3=`$MODULECPP module_tmp_header.h | \
-            $AWK '
-                BEGIN {
-                    if("'"$enable_new_features"'" == "yes")
-                        method="max";
-                    else if("'"$enable_old_features"'" == "yes")
-                        method="max-less";
-                    else
-                        method="max-less-equal";
-                    FS = ".";
-                    split("'"$with_features_of"'", a);
-                    version=sprintf("%03d%03d%03d%03d", a[1], a[2], a[3], a[4]);
-                }
-                /config_version_require/ {
-                    gsub("^.*config_version_require *\\\\(\\\\(", "");
-                    gsub("\\\\)\\\\).*$", "");
-                    gsub(", *", ",");
-                    FS = ",";
-                    n = split($0, a);
-                    FS = ".";
-                    actver = "000000000000";
-                    actstr = a[1];
-                    for(i = 2; i < n; i += 2) {
-                        split(a[i], b);
-                        curver=sprintf("%03d%03d%03d%03d", b[1], b[2], b[3], b[4]);
-                        if (curver > actver && (method != "max-less" || curver < version) && (method != "max-less-equal" || curver <= version)) {
-                            actver = curver;
-                            actstr = a[i + 1];
-                        }
-                    }
-                    printf(" %s", actstr);
-                }'`
+fi
 
-  if test $module_debug = 1; then
-    echo " $i required versioned features: $new_list_alt3"
-  fi
+done
 
 
-        new_list="${new_list}${new_list_alt3}"
+# RPM subdirectory path (sigh)
+if test "x$with_rpm" != "xno" && \
+        echo " $module_list " | grep " host/hr_swinst " > /dev/null; then
 
-        #---------------------
-      	# macro: config_require(modules)
-      	#  - lists modules required for this module
-        #
-        # check if $i has any other required modules
-        #
+for ac_header in rpm/rpmdb.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-        new_list="$new_list `$MODULECPP module_tmp_header.h | \
-                  $SED -n 's/.*config_require(\(.*\)).*/\1/p'`"
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-  if test $module_debug = 1; then
-    echo " $i will test: $new_list"
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
   fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-	if test "x$new_list" != "x"; then
-	  for j in $new_list
-	    do
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
-  if test $module_debug = 1; then
-    echo -n " $i wants to add $j: "
-  fi
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
+fi
 
-	    if test ! -f $srcdir/$mibdir/$j.h -a ! -f $srcdir/$mibdir/$j.c; then
-              { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: mib module error" >&5
-$as_echo "$as_me: WARNING: mib module error" >&2;}
-	      as_fn_error $? "mib module \"$i\" requires module \"$j\" but $j.h or $j.c could not be found in $srcdir/$mibdir" "$LINENO" 5
-	    elif echo " $new_with_out_mib_modules " | $GREP " $j " > /dev/null; then
-	      if test "x$i" != "xdefault_modules" ; then
-                mib_cfg_msg="mib module '$i' requires module '$j' but someone told me to compile without it"
-                { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: mib module error" >&5
-$as_echo "$as_me: WARNING: mib module error" >&2;}
-                if test "x$with_mib_cfg_checks" = "xyes"; then
-                  as_fn_error $? "$mib_cfg_msg" "$LINENO" 5
-                else
-                  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $mib_cfg_msg" >&5
-$as_echo "$as_me: WARNING: $mib_cfg_msg" >&2;}
+done
 
-  cat >> configure-summary << EOF
-  *** MIB Module warning *** $mib_cfg_msg
-EOF
+fi
 
-                fi
-#	    elif echo " $module_list $new_list_two $new_module_list " | $GREP " $j " > /dev/null; then
-#              AC_MSG_MODULE_DBG("  $j included previously")
-              fi
-	    else
-	      new_list_two="$new_list_two $j"
+# OpenBSD 2.6 needs netinet/in.h before netinet/in_pcb.h
+echo "$as_me:$LINENO: checking for netinet/in_pcb.h" >&5
+echo $ECHO_N "checking for netinet/in_pcb.h... $ECHO_C" >&6
+if test "${cv_have_netinet_in_pcb_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+   cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-  if test $module_debug = 1; then
-    echo "  $j included"
+#include <netinet/in.h>
+#include <netinet/in_pcb.h>
+
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
   fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  cv_have_netinet_in_pcb_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  cv_have_netinet_in_pcb_h=no
+fi
+rm -f conftest.err conftest.$ac_ext
+fi
 
-	    fi
-	  done
-	fi
+echo "$as_me:$LINENO: result: $cv_have_netinet_in_pcb_h" >&5
+echo "${ECHO_T}$cv_have_netinet_in_pcb_h" >&6
+if test $cv_have_netinet_in_pcb_h = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_NETINET_IN_PCB_H 1
+_ACEOF
 
-        #---------------------
-      	# macro: config_add_mib(SOME-MIB)
-      	#  - lists MIBs to be added to the default to-load list.
-        #
-        # check if $i has any mibs to add
-        #
+fi
 
-        new_mibs=`$MODULECPP module_tmp_header.h | \
-                  $SED -n 's/.*config_add_mib(\(.*\)).*/\1/p'`
-	if test "x$new_mibs" != "x"; then
-	    for j in $new_mibs
-		do
-		if test "x`echo :$default_mibs: | $GREP :$j:`" = "x"; then
-		    default_mibs="$default_mibs:$j"
-		fi
-		if test -f $srcdir/mibs/$j.txt; then
-		    if echo $default_mibs_install | $GREP " $j " > /dev/null; then
-			    :
-		    else
-			    default_mibs_install="$default_mibs_install $j.txt"
-		    fi
-		fi
-	    done
-	fi # new mibs
+# NetBSD needs machine/types.h before sys/disklabel.h
+echo "$as_me:$LINENO: checking for sys/disklabel.h" >&5
+echo $ECHO_N "checking for sys/disklabel.h... $ECHO_C" >&6
+if test "${cv_have_sys_disklabel_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+   cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-        #-------------------
-        # add the current module to the list of stuff to compile, etc.
-        #
-        # add $i to module list
-        #
+#include <machine/types.h>
+#include <sys/disklabel.h>
 
-  if test $module_debug = 1; then
-    echo "  $i added (based on $i.h)"
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
   fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  cv_have_sys_disklabel_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  cv_have_sys_disklabel_h=no
+fi
+rm -f conftest.err conftest.$ac_ext
+fi
 
-        module_list="$module_list $i"
-        eval ${module_type}_list="\"\$${module_type}_list $i\""
+echo "$as_me:$LINENO: result: $cv_have_sys_disklabel_h" >&5
+echo "${ECHO_T}$cv_have_sys_disklabel_h" >&6
+if test $cv_have_sys_disklabel_h = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_SYS_DISKLABEL_H 1
+_ACEOF
 
-	echo "read_config.lo: mibgroup/$i.h" >> $module_list_deps
-	if test $module_type = "agent_module" ; then
- 	    echo "snmp_vars.lo: mibgroup/$i.h" >> $agent_module_list_deps
-        else
- 	    echo "mib_modules.lo: mibgroup/$i.h" >> $mib_module_list_deps
-        fi
+fi
 
-        #-------------------
-        # check for unsupported config_load_mib
-        #
-        if $MODULECPP module_tmp_header.h | $GREP -q config_load_mib; then
-          { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: mib module error" >&5
-$as_echo "$as_me: WARNING: mib module error" >&2;}
-      	  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: mib module \"$i\" uses the \"config_load_mib\" directive, which is no longer supported.  It probably won't work." >&5
-$as_echo "$as_me: WARNING: mib module \"$i\" uses the \"config_load_mib\" directive, which is no longer supported.  It probably won't work." >&2;}
-        fi # grep config_load_mib
+# OpenSSL
 
-        #-------------------
-        # check for config_parse_dot_conf
-        #  (generally not used any longer; old auto-load a .conf token)
-        #
 
 
-        $MODULECPP module_tmp_header.h | \
-        $SED -n 's at .*config_parse_dot_conf(\([^)]*\), *\([^),]*\), *\([^),]*\), *\([^),]*\)).*@register_config_handler("snmpd",\1, \2, \3, \4);@p' >> $mibdir/mib_module_dot_conf.h
 
 
-        #---------------------
-      	# macro: config_error(error text)
-      	#  - used to signal a configuration error from a module
-        #
-        # check if $i has any errors, or warnings
-        #
+for ac_header in openssl/hmac.h openssl/evp.h openssl/aes.h openssl/des.h openssl/dh.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-        error=`$MODULECPP module_tmp_header.h | \
-               $SED -n 's/.*config_error(\(.*\)).*/\1/p'`
-	if test "x$error" != "x"; then
-          echo
-          echo
-          as_fn_error $? "$i: *** $error ***" "$LINENO" 5
-        fi
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
-        #---------------------
-      	# macro: config_warning(warning text)
-      	#  - used to signal a configuration "warning" to be printed to the user
-        #
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-        warning=`$MODULECPP module_tmp_header.h | \
-                 $SED -n 's/.*config_warning(\(.*\)).*/\1/p'`
-	if test "x$warning" != "x"; then
-          all_warnings="$all_warnings $warning
-"
-        fi
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-      #---------------------
-      # Check for a .c file if the .h didn't exist
-      #
-      elif test -f $srcdir/$mibdir/$i.c; then
-        if echo " $module_list $new_list_two $new_module_list " | $GREP " $i      " > /dev/null; then
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
 
-  if test $module_debug = 1; then
-    echo "  $i already included"
-  fi
+done
 
 
-        else
+for ac_header in security/cryptoki.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-  if test $module_debug = 1; then
-    echo "  $i added (based on $i.c)"
-  fi
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
 
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-	   module_list="$module_list $i"
-	   mib_module_list="$mib_module_list $i"
-        fi
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
 
-      #---------------------
-      # No .h or .c = error!  (typo?)
-      #
-      else # no $i.h or $i.c
-        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: mib module error" >&5
-$as_echo "$as_me: WARNING: mib module error" >&2;}
-	as_fn_error $? "module files $i.h or $i.c could not be found in $srcdir/$mibdir" "$LINENO" 5
-      fi # no $i.h
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------------------------- ##
+## Report this to net-snmp-coders at lists.sourceforge.net ##
+## ---------------------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 
-      #-------------------
-      # check for init/shutdown routines too
-      #
-      has_c_code=no
-      if test -f $srcdir/$mibdir/$i.c; then
-        if test "x$output_to" = "xnormal" ; then
-	  echo "	$i \\" >> $module_list_code
-  	  echo $ECHO_N " $i" $ECHO_C >> $MODULE_LIST
-          eval tmpfilevar=\$`echo ${module_type}_list_code`
-          echo "	$i \\" >> $tmpfilevar
-        else
-          eval "dl_${dl_name}_files=\"\$dl_${dl_name}_files $i\""
-          saved_sublist_code="$saved_sublist_code $i"
-        fi
-        mnm=`echo $i | $SED 's/.*\///;s/\.c$//;'`
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
 
-  if test $module_debug = 1; then
-    echo -e "\nchecking '$srcdir/$mibdir/$i.c' ($mnm/`basename $i`) C file for init/shutdown"
-  fi
+fi
 
+done
 
-        if test "x$mnm" != "x`basename $i`"; then
-           { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: mib module error" >&5
-$as_echo "$as_me: WARNING: mib module error" >&2;}
-	   as_fn_error $? "conflicting names: $mnm != \`basename $i\`" "$LINENO" 5
-        fi
-        temp_init=`$GREP init_$mnm $srcdir/$mibdir/$i.c | $GREP -v _init_$mnm`
-	if test "x$temp_init" != "x"; then
 
-  if test $module_debug = 1; then
-    echo -e "adding init_$mnm() to list"
+# Printing
+# Extract the first word of "lpstat", so it can be a program name with args.
+set dummy lpstat; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_LPSTAT_PATH+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $LPSTAT_PATH in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_LPSTAT_PATH="$LPSTAT_PATH" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_LPSTAT_PATH="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
   fi
+done
+done
 
+  ;;
+esac
+fi
+LPSTAT_PATH=$ac_cv_path_LPSTAT_PATH
 
-            need_header=1
-	    echo "  if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits
-	fi
-	$GREP shutdown_$mnm $srcdir/$mibdir/$i.c > /dev/null
-        if test $? -eq 0 ; then
-            if test $module_debug -eq 1; then
-              echo -e "\nadding shutdown_$mnm() to list"
-            fi
-            need_header=1
-	    echo "  if (should_init(\"$mnm\")) shutdown_$mnm();" >> $mibdir/${module_type}_shutdown.h
-	fi
-      fi # test -f $srcdir/$mibdir/$i.c
-
-      #-------------------
-      # if there is a shutdown/init list,
-      #
-      if test $need_header -eq 1 ; then
-         echo '#include "'"mibgroup/$i.h"'"' >> $output_hdrs
-      else
-         echo '/*#include "'"mibgroup/$i.h"'"*/' >> $output_hdrs
-      fi
+if test -n "$LPSTAT_PATH"; then
+  echo "$as_me:$LINENO: result: $LPSTAT_PATH" >&5
+echo "${ECHO_T}$LPSTAT_PATH" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-      #-------------------
-      # check for output directory (for building outside of source tree
-      #
+if test x$LPSTAT_PATH != x; then
+    cat >>confdefs.h <<_ACEOF
+#define LPSTAT_PATH "$LPSTAT_PATH"
+_ACEOF
 
-      if test "x`echo $i | $SED 's/\///g;'`" != "x$i"; then
-	mnd=`echo $i | $SED 's/\/[^/]*$//;'`
-	if test ! -d ./$mibdir/$mnd; then
-	    module_directories="$module_directories ./$mibdir/$mnd"
-	fi
-      fi # module directory test
+    cat >>confdefs.h <<\_ACEOF
+#define HAVE_LPSTAT 1
+_ACEOF
 
+fi
 
-      #-------------------
-      # define USING_*_MODULE
-      #
+for ac_func in cgetnext
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-      sym="`echo ${i} | $SED 's/[^a-zA-Z0-9_]/_/g' | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
-      echo "/* Define if compiling with the ${i} module files.  */" >> include/net-snmp/agent/${module_type}_config.h
-      echo "#define USING_${sym}_MODULE 1" >> include/net-snmp/agent/${module_type}_config.h
-      echo " " >> include/net-snmp/agent/${module_type}_config.h
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
-      #-------------------
-      echo $ECHO_N " $i$ECHO_C"
-    fi #
-    done # for i in $module_sublist
+#undef $ac_func
 
-    if test "$output_to" = "separate" ; then
-      if test "x$new_list_two" = "x" ; then
-        # no new sub-modules to add to the current target
-        output_to="normal"
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
 
-        dllcleans="$saved_sublist_o $dllcleans"
-        output_inits=""
-        module_sublist=""
-      else
-        # a module had sub-modules required; keep goin'
-        saved_sublist="$saved_sublist $module_sublist"
-        module_sublist="$new_list_two"
-        new_list_two=""
-      fi
-    else
-      module_sublist=""
-    fi
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-    done # while module_sublist
-  done # for j in $new_module_list
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
-  # remember the top level modules for later reporting
-  if test $first_pass = 1 ; then
-    # remember this list for later reporting
-    top_level_modules="$new_module_list => $new_list_two"
-    first_pass=0
-  fi
-  #-------------------
-  # if $i added new modules vis config_*,
-  # check those modules for requirements too
-  #
-  # transfer the new module to check list to the normal variable
-  #
-  if test "x$new_list_two" ; then
-    output_to=normal
-  fi
-  new_module_list="$new_list_two"
-  new_list_two=""
-done # while test "x$new_module_list" != "x"; do
-echo ""
+fi
+done
 
-#--------------------
-# construct the dll code files and make rules.  This can't be done
-# until now because duplicate use of a module means it gets removed
-# from the dll and put into the main agent.
-#
-for i in $dl_names ; do
-  eval mod_files="\"\$dl_${i}_files\""
-  echo "components in the $i dll: $mod_files"
+if test -r /etc/printcap; then
+    cat >>confdefs.h <<\_ACEOF
+#define HAVE_PRINTCAP 1
+_ACEOF
 
-  output_inits="agent/mibgroup/${i}-dll.c"
-  output_hdrs="agent/mibgroup/${i}-hdrs.h"
+fi
 
+echo "$as_me:$LINENO: checking for authentication support" >&5
+echo $ECHO_N "checking for authentication support... $ECHO_C" >&6
+useopenssl=no
+usepkcs=no
+if test "x$ac_cv_lib_pkcs11_C_Initialize" != "xyes" -o "x$ac_cv_header_security_cryptoki_h" != "xyes"; then
+    if test "x$askedpkcs" = "xyes"; then
+       { { echo "$as_me:$LINENO: error: Asked to use PKCS11 but I couldn't find it." >&5
+echo "$as_me: error: Asked to use PKCS11 but I couldn't find it." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+else
+    if test "x$askedpkcs" = "xyes"; then
+        usepkcs=yes
+    fi
+fi
 
-  if test $module_debug = 1; then
-    echo "creating dll file: $output_inits"
-  fi
+if test "x$ac_cv_lib_crypto_EVP_md5" != "xyes" -o "x$ac_cv_header_openssl_hmac_h" != "xyes" -o "x$ac_cv_header_openssl_hmac_h" != "xyes"; then
+    if test "x$askedopenssl" = "xyes"; then
+        { { echo "$as_me:$LINENO: error: Asked to use OpenSSL but I couldn't find it." >&5
+echo "$as_me: error: Asked to use OpenSSL but I couldn't find it." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+else
+    if test "x$askedopenssl" = "xyes"; then
+        useopenssl=yes
+    elif test "x$tryopenssl" = "xyes"; then
+        if test "x$usepkcs" != "xyes"; then
+            useopenssl=yes
+        fi
+    fi
+fi
 
+if 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
+            encrmodes="DES AES"
+	else
+	    encrmodes="DES"
+	fi
+    else
+        encrmodes="disabled"
+    fi
+    cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_USE_OPENSSL 1
+_ACEOF
 
-  for ofile in $output_inits $output_hdrs ; do
-    if test -f $ofile ; then
-      if $GREP "this file created automatically by configure" $ofile > /dev/null 2>&1 ; then
-  	:
-      else
-  	as_fn_error $? "$ofile already existed ; can't build dll object $i" "$LINENO" 5
-      fi
+    LNETSNMPLIBS="$LNETSNMPLIBS $LIBCRYPTO"
+    echo "$as_me:$LINENO: result: OpenSSL Support" >&5
+echo "${ECHO_T}OpenSSL Support" >&6
+elif test "x$usepkcs" != "xno" ; then
+    authmodes="MD5 SHA1"
+    if test "x$enable_privacy" != "xno" ; then
+        encrmodes="DES"
+    else
+        encrmodes="disabled"
     fi
-    cat > $ofile << EOFIF
-/* xDo not edit; this file created automatically by configure */
-EOFIF
-  done
+    cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_USE_PKCS11 1
+_ACEOF
 
-  cat >> $output_inits << EOFOC
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include "${i}-hdrs.h"
-void
-init_$i(void) {
-EOFOC
+    LNETSNMPLIBS="$LNETSNMPLIBS $LIBPKCS11"
+    echo "$as_me:$LINENO: result: PKCS11 Support" >&5
+echo "${ECHO_T}PKCS11 Support" >&6
+elif test "x$enable_md5" != "xno"; then
+    authmodes="MD5"
+    encrmodes=""
+    cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_USE_INTERNAL_MD5 1
+_ACEOF
 
-  # create the .so rule
-  saved_sublist_o=`echo "$mod_files " | $SED 's/^ *//g;s/  */.o /g;'`
+    echo "$as_me:$LINENO: result: Internal MD5 Support" >&5
+echo "${ECHO_T}Internal MD5 Support" >&6
+fi
+if test "x$enable_md5" = "xno"; then
+    authmodes=`echo $authmodes | sed 's/MD5 *//;'`
+fi
 
-  # create the rules for each object
-  for j in $mod_files ; do
-    cat >> $module_rules << EOFR
-$j.o: $j.c
-	\$(CC) -c \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ \$<
 
-EOFR
-    mnm=`echo $j | $SED 's/.*\///;s/\.c$//;'`
-    echo "  if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits
-  done
 
-  # create the rule for the .so and wrapper code
-  cat >> $module_rules << EOFM
-${i}-dll.o: ${i}-dll.c
-	\$(CC) -c \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ \$<
 
-${i}.so: $saved_sublist_o ${i}-dll.o
-	\$(CC) \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ $saved_sublist_o ${i}-dll.o
+  cat >> configure-summary << EOF
+  Authentication support:     $authmodes
+EOF
 
-EOFM
-        cat >> $output_inits << EOFOCFIN
-}
-EOFOCFIN
 
-done
+  cat >> configure-summary << EOF
+  Encryption support:         $encrmodes
+EOF
 
-# cleanup
-rm -f conftest.$ac_ext module_tmp_header.h
 
-#-------------------
-# build module lists for Makefiles
-#
+if test "x$all_warnings" != "x"; then
 
+  cat >> configure-summary << EOF
+  WARNING: $all_warnings
+EOF
 
-for i in module_list_o module_list_c module_list_lo module_list_ft mib_module_list_o mib_module_list_c mib_module_list_lo mib_module_list_ft mibgroup_list_o mibgroup_list_lo mibgroup_list_ft agent_module_list_o agent_module_list_c agent_module_list_lo agent_module_list_ft agentgroup_list_o agentgroup_list_lo agentgroup_list_ft ; do
-  eval "$i=mk/${i}.mk"
-done
+fi
 
-$SED 's/^module_list_code/module_list_o/;s/\([^=]\)  *\\/\1.o \\/g'  < $module_list_code  > $module_list_o
-$SED 's/^module_list_code/module_list_c/;s/\([^=]\)  *\\/\1.c \\/g'  < $module_list_code  > $module_list_c
-$SED 's/^module_list_code/module_list_lo/;s/\([^=]\)  *\\/\1.lo \\/g' < $module_list_code  > $module_list_lo
-$SED 's/^module_list_code/module_list_ft/;s/\([^=]\)  *\\/\1.ft \\/g' < $module_list_code  > $module_list_ft
+# Checks for typedefs, structures, and compiler characteristics.
+echo "$as_me:$LINENO: checking for off_t" >&5
+echo $ECHO_N "checking for off_t... $ECHO_C" >&6
+if test "${ac_cv_type_off_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((off_t *) 0)
+  return 0;
+if (sizeof (off_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_off_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_off_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
+echo "${ECHO_T}$ac_cv_type_off_t" >&6
+if test $ac_cv_type_off_t = yes; then
+  :
+else
 
-$SED 's/^mib_module_list_code/mib_module_list_o/;s/\([^=]\)  *\\/\1.o \\/g'  < $mib_module_list_code  > $mib_module_list_o
-$SED 's/^mib_module_list_code/mib_module_list_c/;s/\([^=]\)  *\\/\1.c \\/g'  < $mib_module_list_code  > $mib_module_list_c
-$SED 's/^mib_module_list_code/mib_module_list_lo/;s/\([^=]\)  *\\/\1.lo \\/g' < $mib_module_list_code  > $mib_module_list_lo
-$SED 's/^mib_module_list_code/mib_module_list_ft/;s/\([^=]\)  *\\/\1.ft \\/g' < $mib_module_list_code  > $mib_module_list_ft
+cat >>confdefs.h <<_ACEOF
+#define off_t long
+_ACEOF
 
-$SED 's/^mib_module_list_o/mibgroup_list_o/;s@\([^ 	]*\)\.o at mibgroup/\1.o at g' < $mib_module_list_o > $mibgroup_list_o
-$SED 's/^mib_module_list_lo/mibgroup_list_lo/;s@\([^ 	]*\)\.lo at mibgroup/\1.lo at g' < $mib_module_list_lo > $mibgroup_list_lo
-$SED 's/^mib_module_list_ft/mibgroup_list_ft/;s@\([^ 	]*\)\.ft at mibgroup/\1.ft at g' < $mib_module_list_ft > $mibgroup_list_ft
+fi
 
-$SED 's/^agent_module_list_code/agent_module_list_o/;s/\([^=]\)  *\\/\1.o \\/g'  < $agent_module_list_code  > $agent_module_list_o
-$SED 's/^agent_module_list_code/agent_module_list_c/;s/\([^=]\)  *\\/\1.c \\/g'  < $agent_module_list_code  > $agent_module_list_c
-$SED 's/^agent_module_list_code/agent_module_list_lo/;s/\([^=]\)  *\\/\1.lo \\/g' < $agent_module_list_code  > $agent_module_list_lo
-$SED 's/^agent_module_list_code/agent_module_list_ft/;s/\([^=]\)  *\\/\1.ft \\/g' < $agent_module_list_code  > $agent_module_list_ft
+echo "$as_me:$LINENO: checking for pid_t" >&5
+echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
+if test "${ac_cv_type_pid_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((pid_t *) 0)
+  return 0;
+if (sizeof (pid_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_pid_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-$SED 's/^agent_module_list_o/agentgroup_list_o/;s@\([^ 	]*\)\.o at mibgroup/\1.o at g' < $agent_module_list_o > $agentgroup_list_o
-$SED 's/^agent_module_list_lo/agentgroup_list_lo/;s@\([^ 	]*\)\.lo at mibgroup/\1.lo at g' < $agent_module_list_lo > $agentgroup_list_lo
-$SED 's/^agent_module_list_ft/agentgroup_list_ft/;s@\([^ 	]*\)\.ft at mibgroup/\1.ft at g' < $agent_module_list_ft > $agentgroup_list_ft
+ac_cv_type_pid_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
+echo "${ECHO_T}$ac_cv_type_pid_t" >&6
+if test $ac_cv_type_pid_t = yes; then
+  :
+else
 
-for i in module_list_o module_list_c module_list_lo module_list_ft mib_module_list_o mib_module_list_c mib_module_list_lo mib_module_list_ft mibgroup_list_o mibgroup_list_lo mibgroup_list_ft agent_module_list_o agent_module_list_c agent_module_list_lo agent_module_list_ft agentgroup_list_o agentgroup_list_lo agentgroup_list_ft ; do
-	# hpux make (at least) doesn't like a trailing \ on the last
-	# line even when the next line contains nothing but
-	# whitespace.
-	lasttoken=`awk '{lasttoken=$1}END{print lasttoken}' mk/$i.mk`
-	$SED "s#$lasttoken \\\\#$lasttoken#" < mk/$i.mk > mk/$i.mk.tmp
-	mv mk/$i.mk.tmp mk/$i.mk
+cat >>confdefs.h <<_ACEOF
+#define pid_t int
+_ACEOF
 
-	# add a closing comment
-	echo "" >> mk/$i.mk
-	echo "# end configure generated code" >> mk/$i.mk
-done
+fi
 
+echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
+echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
+if test "${ac_cv_header_time+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
 
+int
+main ()
+{
+if ((struct tm *) 0)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_header_time=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-if test $module_debug -eq 1; then
-   echo -e "\nFinal module list: $module_list_code"
-   exit
+ac_cv_header_time=no
 fi
-if test "x$with_mib_cfg_checks" = "xyes"; then
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
+echo "${ECHO_T}$ac_cv_header_time" >&6
+if test $ac_cv_header_time = yes; then
 
-  cat >> configure-summary << EOF
-  Agent Module list: $module_list_code
-EOF
+cat >>confdefs.h <<\_ACEOF
+#define TIME_WITH_SYS_TIME 1
+_ACEOF
 
 fi
 
 
+# this should use AC_CHECK_TYPE, but it's broken at least in 2.13-14
+# so we do it by hand.
+echo "$as_me:$LINENO: checking for socklen_t" >&5
+echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6
+if eval "test \"\${ac_cv_type_$1+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "socklen_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  ac_cv_type_socklen_t=yes
+else
+  ac_cv_type_socklen_t=no
+fi
+rm -f conftest*
 
+fi
 
 
+echo "$as_me:$LINENO: result: $ac_cv_type_socklen_t" >&5
+echo "${ECHO_T}$ac_cv_type_socklen_t" >&6
+if test $ac_cv_type_socklen_t = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_SOCKLEN_T 1
+_ACEOF
 
+fi
 
+# AIX keeps in_addr_t in /usr/include/netinet/in.h
+echo "$as_me:$LINENO: checking for in_addr_t" >&5
+echo $ECHO_N "checking for in_addr_t... $ECHO_C" >&6
+if eval "test \"\${ac_cv_type_$1+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "in_addr_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  ac_cv_type_in_addr_t=yes
+else
+  ac_cv_type_in_addr_t=no
+fi
+rm -f conftest*
 
+fi
 
 
+echo "$as_me:$LINENO: result: $ac_cv_type_in_addr_t" >&5
+echo "${ECHO_T}$ac_cv_type_in_addr_t" >&6
+if test $ac_cv_type_in_addr_t = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_IN_ADDR_T 1
+_ACEOF
 
+fi
 
+# Older versions of MinGW do not define ssize_t in sys/types
+echo "$as_me:$LINENO: checking for ssize_t" >&5
+echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6
+if eval "test \"\${ac_cv_type_$1+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "ssize_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  ac_cv_type_ssize_t=yes
+else
+  ac_cv_type_ssize_t=no
+fi
+rm -f conftest*
 
+fi
 
 
+echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5
+echo "${ECHO_T}$ac_cv_type_ssize_t" >&6
+if test $ac_cv_type_ssize_t = yes; then
 
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SSIZE_T 1
+_ACEOF
 
+fi
 
+# Check ps args
+echo "$as_me:$LINENO: checking for correct flags to ps" >&5
+echo $ECHO_N "checking for correct flags to ps... $ECHO_C" >&6
+if test "${ac_cv_ps_flags+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "`($PSPROG -e 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+  ac_cv_ps_flags="-e"
+elif test "`($PSPROG -el 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+  ac_cv_ps_flags="-el"
+elif test "`($PSPROG acx 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+  ac_cv_ps_flags="acx"
+elif test "`($PSPROG -acx 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+  ac_cv_ps_flags="-acx"
+elif test "`($PSPROG -o pid,tt,state,time,ucomm 2>&1) | $EGREP ' ps *$' | awk '{print $NF}'`" = "ps" ; then
+  ac_cv_ps_flags="-o pid,tt,state,time,ucomm"
+elif test "`($PSPROG ax 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+  ac_cv_ps_flags="ax"
+elif test "x$PARTIALTARGETOS" = "xcygwin"; then
+  ac_cv_ps_flags="-e"
+elif test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
+  ac_cv_ps_flags="-e"
+else
+  { echo "$as_me:$LINENO: WARNING: Unable to determine valid ps flags...  defaulting..." >&5
+echo "$as_me: WARNING: Unable to determine valid ps flags...  defaulting..." >&2;}
+  ac_cv_ps_flags="-acx"
+fi
 
+fi
+echo "$as_me:$LINENO: result: $ac_cv_ps_flags" >&5
+echo "${ECHO_T}$ac_cv_ps_flags" >&6
 
+PSCMD="$PSPROG $ac_cv_ps_flags"
 
+cat >>confdefs.h <<_ACEOF
+#define PSCMD "$PSPROG $ac_cv_ps_flags"
+_ACEOF
 
 
+# Checks for byte order
+if test $cross_compiling = yes; then
+  if test x$with_endianness = xbig; then
+    cat >>confdefs.h <<\_ACEOF
+#define WORDS_BIGENDIAN 1
+_ACEOF
 
+  elif test -z $with_endianness; then
+    { { echo "$as_me:$LINENO: error: You are cross-compiling, but you have not specified the target's endianness" >&5
+echo "$as_me: error: You are cross-compiling, but you have not specified the target's endianness" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+else
+  if test $with_endianness; then
+    { { echo "$as_me:$LINENO: error: Endianness has been specified, but you are not cross-compiling." >&5
+echo "$as_me: error: Endianness has been specified, but you are not cross-compiling." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
+echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
+if test "${ac_cv_c_bigendian+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # See if sys/param.h defines the BYTE_ORDER macro.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/param.h>
 
+int
+main ()
+{
+#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
+ bogus endian macros
+#endif
 
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <sys/param.h>
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ." >&5
-$as_echo "." >&6; }
-
-if test $module_debug -eq 1; then
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+#endif
 
-  cat >> configure-summary << EOF
-  Agent MIB code:            $module_list
-EOF
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_bigendian=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_c_bigendian=no
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-  cat >> configure-summary << EOF
-  Agent MIB code:            $top_level_modules
-EOF
-
-
-# end hairy agent module processing
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if directories need to be created" >&5
-$as_echo_n "checking if directories need to be created... " >&6; }
-for i in $module_directories; do
-  $srcdir/mkinstalldirs $i
-done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ." >&5
-$as_echo "." >&6; }
-
-#-------------------
-# Define default mibs
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking default mib files to read" >&5
-$as_echo_n "checking default mib files to read... " >&6; }
-if test "x$NETSNMP_DEFAULT_MIBS" = "x"; then
-  NETSNMP_DEFAULT_MIBS="$default_mibs"
+# It does not; compile a test program.
+if test "$cross_compiling" = yes; then
+  # try to guess the endianness by grepping values into an object file
+  ac_cv_c_bigendian=unknown
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
+short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
+int
+main ()
+{
+ _ascii (); _ebcdic ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
+  ac_cv_c_bigendian=yes
 fi
-if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
-  # mingw32 and cygwin use ';' as the environment variable separator char
-  ENV_SEPARATOR=";"
-  NETSNMP_DEFAULT_MIBS=`echo "$NETSNMP_DEFAULT_MIBS" | $SED 's/:/;/g'`
-  default_mibs=`echo "$default_mibs" | $SED 's/:/;/g'`
-else
-  ENV_SEPARATOR=":"
+if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+  if test "$ac_cv_c_bigendian" = unknown; then
+    ac_cv_c_bigendian=no
+  else
+    # finding both strings is unlikely to happen, but who knows?
+    ac_cv_c_bigendian=unknown
+  fi
 fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-cat >>confdefs.h <<_ACEOF
-#define NETSNMP_DEFAULT_MIBS "$NETSNMP_DEFAULT_MIBS"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+int
+main ()
+{
+  /* Are we little or big endian?  From Harbison&Steele.  */
+  union
+  {
+    long l;
+    char c[sizeof (long)];
+  } u;
+  u.l = 1;
+  exit (u.c[sizeof (long) - 1] == 1);
+}
 _ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_bigendian=no
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+( exit $ac_status )
+ac_cv_c_bigendian=yes
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
+echo "${ECHO_T}$ac_cv_c_bigendian" >&6
+case $ac_cv_c_bigendian in
+  yes)
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $NETSNMP_DEFAULT_MIBS" >&5
-$as_echo "$NETSNMP_DEFAULT_MIBS" >&6; }
+cat >>confdefs.h <<\_ACEOF
+#define WORDS_BIGENDIAN 1
+_ACEOF
+ ;;
+  no)
+     ;;
+  *)
+    { { echo "$as_me:$LINENO: error: unknown endianness
+presetting ac_cv_c_bigendian=no (or yes) will help" >&5
+echo "$as_me: error: unknown endianness
+presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
 
-#-------------------
-# Define symbols for conditional compilation in makefiles
-#
+fi
 
-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='#'
+# Checks for library functions.
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments.  Useless!
+echo "$as_me:$LINENO: checking for working alloca.h" >&5
+echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6
+if test "${ac_cv_working_alloca_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-   NETSNMP_HAVE_AGENTX_LIBS_TRUE='#'
-   NETSNMP_HAVE_AGENTX_LIBS_FALSE=''
-fi
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <alloca.h>
+int
+main ()
+{
+char *p = (char *) alloca (2 * sizeof (int));
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_working_alloca_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_working_alloca_h=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
+echo "${ECHO_T}$ac_cv_working_alloca_h" >&6
+if test $ac_cv_working_alloca_h = yes; then
 
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ALLOCA_H 1
+_ACEOF
 
-# -*- autoconf -*-
-#########################################
-##
-# Miscellaneous checks
-##
-#########################################
+fi
 
-##
-#   Compilation-related
-##
+echo "$as_me:$LINENO: checking for alloca" >&5
+echo $ECHO_N "checking for alloca... $ECHO_C" >&6
+if test "${ac_cv_func_alloca_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+#  include <malloc.h>
+#  define alloca _alloca
+# else
+#  if HAVE_ALLOCA_H
+#   include <alloca.h>
+#  else
+#   ifdef _AIX
+ #pragma alloca
+#   else
+#    ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+#    endif
+#   endif
+#  endif
+# endif
+#endif
 
-#       Dynamic modules require Position-Independent Code
-#	    LIB_CFLAGS/DLLIBS: used in agent Makefile only
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we have to build PIC code" >&5
-$as_echo_n "checking whether we have to build PIC code... " >&6; }
-echo " $module_list " | $GREP " ucd-snmp/dlmod " >/dev/null
-if test $? -eq 0 ; then
-    LIB_CFLAGS="$LIB_CFLAGS $SHLIB_CFLAGS"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+int
+main ()
+{
+char *p = (char *) alloca (1);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_alloca_works=yes
 else
-    DLLIBS=""
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_func_alloca_works=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
+echo "${ECHO_T}$ac_cv_func_alloca_works" >&6
 
-# -*- autoconf -*-
-#########################################
-##
-# Checks for libraries that are run
-# after the agent module tests.
-##
-#########################################
+if test $ac_cv_func_alloca_works = yes; then
 
-#   HAVE_LIB Definitions used in the Net-SNMP code base:
-#
-#       HAVE_LIBCRYPTO:	apps
-#       HAVE_LIBRPM:	agent
-#
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ALLOCA 1
+_ACEOF
 
-##
-#   Simple checks:
-##
+else
+  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble.  Some versions do not even contain alloca or
+# contain a buggy version.  If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
 
-# AC_CHECK_LIB(des, main)
-# AC_CHECK_LIB(m,   asin)
+ALLOCA=alloca.$ac_objext
 
-#   dmalloc
-#
-if test "${with_dmalloc+set}" = set; then
-   if test "$with_dmalloc" = yes -a -d $with_dmalloc ; then
+cat >>confdefs.h <<\_ACEOF
+#define C_ALLOCA 1
+_ACEOF
 
-  if test "x$with_dmalloc" != x -a -d $with_dmalloc; then
-     if test -d $with_dmalloc/lib; then
-       LDFLAGS="-L$with_dmalloc/lib $LDFLAGS"
-     fi
-     if test -d $with_dmalloc/include; then
-	CPPFLAGS="-I$with_dmalloc/include $CPPFLAGS"
-     fi
-  fi
 
-   fi
-   for ac_header in dmalloc.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "dmalloc.h" "ac_cv_header_dmalloc_h" "$ac_includes_default"
-if test "x$ac_cv_header_dmalloc_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DMALLOC_H 1
+echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
+echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6
+if test "${ac_cv_os_cray+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
 
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "webecray" >/dev/null 2>&1; then
+  ac_cv_os_cray=yes
+else
+  ac_cv_os_cray=no
 fi
+rm -f conftest*
 
-done
-
-   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dmalloc_message" >&5
-$as_echo_n "checking for library containing dmalloc_message... " >&6; }
-if ${ac_cv_search_dmalloc_message+:} false; then :
-  $as_echo_n "(cached) " >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
+echo "${ECHO_T}$ac_cv_os_cray" >&6
+if test $ac_cv_os_cray = yes; then
+  for ac_func in _getb67 GETB67 getb67; do
+    as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
 #endif
-char dmalloc_message ();
+
 int
 main ()
 {
-return dmalloc_message ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' dmalloc; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_dmalloc_message=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_dmalloc_message+:} false; then :
-  break
-fi
-done
-if ${ac_cv_search_dmalloc_message+:} false; then :
-
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  ac_cv_search_dmalloc_message=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dmalloc_message" >&5
-$as_echo "$ac_cv_search_dmalloc_message" >&6; }
-ac_res=$ac_cv_search_dmalloc_message
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
 
+cat >>confdefs.h <<_ACEOF
+#define CRAY_STACKSEG_END $ac_func
+_ACEOF
+
+    break
 fi
 
+  done
 fi
 
-#   EFence
-#       (This used to be on by default for developer checkout)
-#
-if test "x$use_efence" = "xyes"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing EF_Exit" >&5
-$as_echo_n "checking for library containing EF_Exit... " >&6; }
-if ${ac_cv_search_EF_Exit+:} false; then :
-  $as_echo_n "(cached) " >&6
+echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
+echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6
+if test "${ac_cv_c_stack_direction+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  if test "$cross_compiling" = yes; then
+  ac_cv_c_stack_direction=0
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+int
+find_stack_direction ()
+{
+  static char *addr = 0;
+  auto char dummy;
+  if (addr == 0)
+    {
+      addr = &dummy;
+      return find_stack_direction ();
+    }
+  else
+    return (&dummy > addr) ? 1 : -1;
+}
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char EF_Exit ();
 int
 main ()
 {
-return EF_Exit ();
-  ;
-  return 0;
+  exit (find_stack_direction () < 0);
 }
 _ACEOF
-for ac_lib in '' efence; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_EF_Exit=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_EF_Exit+:} false; then :
-  break
-fi
-done
-if ${ac_cv_search_EF_Exit+:} false; then :
-
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_c_stack_direction=1
 else
-  ac_cv_search_EF_Exit=no
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_c_stack_direction=-1
 fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_EF_Exit" >&5
-$as_echo "$ac_cv_search_EF_Exit" >&6; }
-ac_res=$ac_cv_search_EF_Exit
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
 fi
+echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
+echo "${ECHO_T}$ac_cv_c_stack_direction" >&6
 
-fi
+cat >>confdefs.h <<_ACEOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+_ACEOF
 
 
-#   ELF libraries
-#       Typically used for 'nlist'  (needed for uptime)
-#
-if test "x$with_elf" != "xno"; then
-case $target_os in
-	linux*) # add hosts which don't use nlist here
-                ;;
-	irix*) # Check for nlist in mld (irix)
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nlist in -lelf" >&5
-$as_echo_n "checking for nlist in -lelf... " >&6; }
-if ${ac_cv_lib_elf_nlist+:} false; then :
-  $as_echo_n "(cached) " >&6
+fi
+
+if test $ac_cv_c_compiler_gnu = yes; then
+    echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
+echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
+if test "${ac_cv_prog_gcc_traditional+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lelf  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+    ac_pattern="Autoconf.*'x'"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char nlist ();
-int
-main ()
-{
-return nlist ();
-  ;
-  return 0;
-}
+#include <sgtty.h>
+Autoconf TIOCGETP
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_elf_nlist=yes
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "$ac_pattern" >/dev/null 2>&1; then
+  ac_cv_prog_gcc_traditional=yes
 else
-  ac_cv_lib_elf_nlist=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+  ac_cv_prog_gcc_traditional=no
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_elf_nlist" >&5
-$as_echo "$ac_cv_lib_elf_nlist" >&6; }
-if test "x$ac_cv_lib_elf_nlist" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBELF 1
-_ACEOF
+rm -f conftest*
 
-  LIBS="-lelf $LIBS"
 
+  if test $ac_cv_prog_gcc_traditional = no; then
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <termio.h>
+Autoconf TCGETA
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "$ac_pattern" >/dev/null 2>&1; then
+  ac_cv_prog_gcc_traditional=yes
+fi
+rm -f conftest*
+
+  fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5
+echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
+  if test $ac_cv_prog_gcc_traditional = yes; then
+    CC="$CC -traditional"
+  fi
 fi
 
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nlist64 in -lelf" >&5
-$as_echo_n "checking for nlist64 in -lelf... " >&6; }
-if ${ac_cv_lib_elf_nlist64+:} false; then :
-  $as_echo_n "(cached) " >&6
+echo "$as_me:$LINENO: checking for working memcmp" >&5
+echo $ECHO_N "checking for working memcmp... $ECHO_C" >&6
+if test "${ac_cv_func_memcmp_working+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lelf  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_memcmp_working=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char nlist64 ();
+$ac_includes_default
 int
 main ()
 {
-return nlist64 ();
+
+  /* Some versions of memcmp are not 8-bit clean.  */
+  char c0 = 0x40, c1 = 0x80, c2 = 0x81;
+  if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0)
+    exit (1);
+
+  /* The Next x86 OpenStep bug shows up only when comparing 16 bytes
+     or more and with at least one buffer not starting on a 4-byte boundary.
+     William Lewis provided this test program.   */
+  {
+    char foo[21];
+    char bar[21];
+    int i;
+    for (i = 0; i < 4; i++)
+      {
+	char *a = foo + i;
+	char *b = bar + i;
+	strcpy (a, "--------01111111");
+	strcpy (b, "--------10000000");
+	if (memcmp (a, b, 16) >= 0)
+	  exit (1);
+      }
+    exit (0);
+  }
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_elf_nlist64=yes
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_memcmp_working=yes
 else
-  ac_cv_lib_elf_nlist64=no
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_memcmp_working=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_elf_nlist64" >&5
-$as_echo "$ac_cv_lib_elf_nlist64" >&6; }
-if test "x$ac_cv_lib_elf_nlist64" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBELF 1
-_ACEOF
-
-  LIBS="-lelf $LIBS"
-
 fi
+echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5
+echo "${ECHO_T}$ac_cv_func_memcmp_working" >&6
+test $ac_cv_func_memcmp_working = no && case $LIBOBJS in
+    "memcmp.$ac_objext"   | \
+  *" memcmp.$ac_objext"   | \
+    "memcmp.$ac_objext "* | \
+  *" memcmp.$ac_objext "* ) ;;
+  *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" ;;
+esac
+
 
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nlist in -lmld" >&5
-$as_echo_n "checking for nlist in -lmld... " >&6; }
-if ${ac_cv_lib_mld_nlist+:} false; then :
-  $as_echo_n "(cached) " >&6
+echo "$as_me:$LINENO: checking return type of signal handlers" >&5
+echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
+if test "${ac_cv_type_signal+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lmld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+#include <sys/types.h>
+#include <signal.h>
+#ifdef signal
+# undef signal
+#endif
 #ifdef __cplusplus
-extern "C"
+extern "C" void (*signal (int, void (*)(int)))(int);
+#else
+void (*signal ()) ();
 #endif
-char nlist ();
+
 int
 main ()
 {
-return nlist ();
+int i;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_mld_nlist=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_signal=void
 else
-  ac_cv_lib_mld_nlist=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_signal=int
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mld_nlist" >&5
-$as_echo "$ac_cv_lib_mld_nlist" >&6; }
-if test "x$ac_cv_lib_mld_nlist" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBMLD 1
-_ACEOF
+echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
+echo "${ECHO_T}$ac_cv_type_signal" >&6
 
-  LIBS="-lmld $LIBS"
+cat >>confdefs.h <<_ACEOF
+#define RETSIGTYPE $ac_cv_type_signal
+_ACEOF
 
-fi
 
-		;;
-	*) # default
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nlist in -lelf" >&5
-$as_echo_n "checking for nlist in -lelf... " >&6; }
-if ${ac_cv_lib_elf_nlist+:} false; then :
-  $as_echo_n "(cached) " >&6
+# getmntent is in -lsun on Irix 4, -lseq on Dynix/PTX, -lgen on Unixware.
+echo "$as_me:$LINENO: checking for getmntent in -lsun" >&5
+echo $ECHO_N "checking for getmntent in -lsun... $ECHO_C" >&6
+if test "${ac_cv_lib_sun_getmntent+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lelf  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+LIBS="-lsun  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-char nlist ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char getmntent ();
 int
 main ()
 {
-return nlist ();
+getmntent ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_elf_nlist=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_sun_getmntent=yes
 else
-  ac_cv_lib_elf_nlist=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_sun_getmntent=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_elf_nlist" >&5
-$as_echo "$ac_cv_lib_elf_nlist" >&6; }
-if test "x$ac_cv_lib_elf_nlist" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBELF 1
+echo "$as_me:$LINENO: result: $ac_cv_lib_sun_getmntent" >&5
+echo "${ECHO_T}$ac_cv_lib_sun_getmntent" >&6
+if test $ac_cv_lib_sun_getmntent = yes; then
+  LIBS="-lsun $LIBS"
+else
+  echo "$as_me:$LINENO: checking for getmntent in -lseq" >&5
+echo $ECHO_N "checking for getmntent in -lseq... $ECHO_C" >&6
+if test "${ac_cv_lib_seq_getmntent+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lseq  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-
-  LIBS="-lelf $LIBS"
-
-fi
-
-		;;
-esac
-fi
-
-
-#   libsocket
-#       Needed for 'socket(2)'                          (Solaris)
-#       Possibly also for 'gethostname(3)'              (non-Solaris)
-#           (alternatively in libnsl                    (Solaris)
-#            or in libws2_32)                           (MinGW)
-#
-case x$with_socklib in
-xwinsock2)
-  #   libws2_w32                                        (MinGW)
-  #
-  netsnmp_save_LIBS="$LIBS"
-  LIBS="$LIBS -lws2_32"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-    #include <winsock2.h>
-
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char getmntent ();
 int
 main ()
 {
-
-    socket(0, 0, 0);
-    gethostbyname(0);
-
+getmntent ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-    # Keep LIBS.
-    true
-
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_seq_getmntent=yes
 else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-    # Restore LIBS and complain.
-    LIBS="$netsnmp_save_LIBS"
-    as_fn_error $? "libws2_32 not found." "$LINENO" 5
-
+ac_cv_lib_seq_getmntent=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  ;;
-*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
-$as_echo_n "checking for library containing socket... " >&6; }
-if ${ac_cv_search_socket+:} false; then :
-  $as_echo_n "(cached) " >&6
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_seq_getmntent" >&5
+echo "${ECHO_T}$ac_cv_lib_seq_getmntent" >&6
+if test $ac_cv_lib_seq_getmntent = yes; then
+  LIBS="-lseq $LIBS"
 else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  echo "$as_me:$LINENO: checking for getmntent in -lgen" >&5
+echo $ECHO_N "checking for getmntent in -lgen... $ECHO_C" >&6
+if test "${ac_cv_lib_gen_getmntent+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lgen  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
 #endif
-char socket ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char getmntent ();
 int
 main ()
 {
-return socket ();
+getmntent ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' socket; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_socket=$ac_res
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_gen_getmntent=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_gen_getmntent=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_socket+:} false; then :
-  break
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-done
-if ${ac_cv_search_socket+:} false; then :
-
-else
-  ac_cv_search_socket=no
+echo "$as_me:$LINENO: result: $ac_cv_lib_gen_getmntent" >&5
+echo "${ECHO_T}$ac_cv_lib_gen_getmntent" >&6
+if test $ac_cv_lib_gen_getmntent = yes; then
+  LIBS="-lgen $LIBS"
 fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
-$as_echo "$ac_cv_search_socket" >&6; }
-ac_res=$ac_cv_search_socket
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
-else
-  as_fn_error $? "socket(2) not found." "$LINENO" 5
 fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5
-$as_echo_n "checking for library containing gethostbyname... " >&6; }
-if ${ac_cv_search_gethostbyname+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+for ac_func in getmntent
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
 #endif
-char gethostbyname ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-return gethostbyname ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' nsl socket; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_gethostbyname=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_gethostbyname+:} false; then :
-  break
-fi
-done
-if ${ac_cv_search_gethostbyname+:} false; then :
-
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  ac_cv_search_gethostbyname=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5
-$as_echo "$ac_cv_search_gethostbyname" >&6; }
-ac_res=$ac_cv_search_gethostbyname
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "$as_ac_var=no"
 fi
-
-  for ac_func in gethostbyname
-do :
-  ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
-if test "x$ac_cv_func_gethostbyname" = xyes; then :
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
-#define HAVE_GETHOSTBYNAME 1
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
 fi
 done
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyaddr" >&5
-$as_echo_n "checking for library containing gethostbyaddr... " >&6; }
-if ${ac_cv_search_gethostbyaddr+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+
+
+
+
+
+
+
+
+for ac_func in setmntent hasmntopt gethostname uname gettimeofday select socket strtol strtoul strlcpy
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
 #endif
-char gethostbyaddr ();
+
 int
 main ()
 {
-return gethostbyaddr ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' nsl socket; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_gethostbyaddr=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_gethostbyaddr+:} false; then :
-  break
-fi
-done
-if ${ac_cv_search_gethostbyaddr+:} false; then :
-
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  ac_cv_search_gethostbyaddr=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyaddr" >&5
-$as_echo "$ac_cv_search_gethostbyaddr" >&6; }
-ac_res=$ac_cv_search_gethostbyaddr
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "$as_ac_var=no"
 fi
-
-  for ac_func in gethostbyaddr
-do :
-  ac_fn_c_check_func "$LINENO" "gethostbyaddr" "ac_cv_func_gethostbyaddr"
-if test "x$ac_cv_func_gethostbyaddr" = xyes; then :
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
-#define HAVE_GETHOSTBYADDR 1
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
 fi
 done
 
-  ;;
-esac
 
 
-#   libiphlpapi                                         (Cygwin and MinGW)
-#
-netsnmp_save_LIBS="$LIBS"
-LIBS="$LIBS -liphlpapi"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-  #include <winsock2.h>
-  #include <iphlpapi.h>
 
-int
-main ()
-{
 
-  IpRenewAddress(0);
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
 
-  # Keep LIBS.
-  true
 
-else
 
-  # Restore LIBS and complain.
-  LIBS="$netsnmp_save_LIBS"
-  case x$with_socklib in
-  xwinsock2)
-    as_fn_error $? "libiphlpapi not found." "$LINENO" 5
-    ;;
-  esac
+for ac_func in strchr strtok_r strdup memcpy memmove index bcopy strcasestr regcomp
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
-#   libregex                                            (MinGW)
-#
-netsnmp_save_LIBS="$LIBS"
-LIBS="$LIBS -lregex"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+#undef $ac_func
 
-  #include <sys/types.h>
-  #include <regex.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
 
 int
 main ()
 {
-
-  regcomp(0, 0, 0);
-
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-  # Keep LIBS.
-  true
-
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-  # Restore LIBS.
-  LIBS="$netsnmp_save_LIBS"
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+done
 
 
-#   libsnmpapi                                          (MinGW)
-#
-netsnmp_save_LIBS="$LIBS"
-LIBS="$LIBS -lsnmpapi"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-  #include <snmp.h>
 
-int
-main ()
-{
 
-  SnmpUtilMemAlloc(0);
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
 
-  # Keep LIBS.
-  true
 
-else
 
-  # Restore LIBS.
-  LIBS="$netsnmp_save_LIBS"
 
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+for ac_func in signal setsid sigset sigblock sighold strerror setenv vsnprintf snprintf
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
-#   kstat library                                       (Solaris)
-#
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing kstat_lookup" >&5
-$as_echo_n "checking for library containing kstat_lookup... " >&6; }
-if ${netsnmp_cv_func_kstat_lookup_LNETSNMPLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LNETSNMPLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+#undef $ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
 #endif
-char kstat_lookup ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-return kstat_lookup ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+for ac_func in sigaction
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  for netsnmp_cur_lib in kstat ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
 #endif
-char kstat_lookup ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-return kstat_lookup ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_kstat_lookup_LNETSNMPLIBS="${netsnmp_result}"
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_kstat_lookup_LNETSNMPLIBS" >&5
-$as_echo "$netsnmp_cv_func_kstat_lookup_LNETSNMPLIBS" >&6; }
- if test "${netsnmp_cv_func_kstat_lookup_LNETSNMPLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_kstat_lookup_LNETSNMPLIBS}" != "none required" ; then
-       LNETSNMPLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
-$as_echo "#define HAVE_LIBKSTAT 1" >>confdefs.h
+fi
+done
 
 
- fi
 
 
+for ac_func in random lrand48 rand
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-#
-#   librt
-#
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
-$as_echo_n "checking for library containing clock_gettime... " >&6; }
-if ${netsnmp_cv_func_clock_gettime_LNETSNMPLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LNETSNMPLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+#undef $ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
-#endif
-char clock_gettime ();
-int
-main ()
 {
-return clock_gettime ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
-else
-  for netsnmp_cur_lib in rt ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
+#endif
+/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
 #ifdef __cplusplus
-extern "C"
+}
 #endif
-char clock_gettime ();
+
 int
 main ()
 {
-return clock_gettime ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_clock_gettime_LNETSNMPLIBS="${netsnmp_result}"
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_clock_gettime_LNETSNMPLIBS" >&5
-$as_echo "$netsnmp_cv_func_clock_gettime_LNETSNMPLIBS" >&6; }
- if test "${netsnmp_cv_func_clock_gettime_LNETSNMPLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_clock_gettime_LNETSNMPLIBS}" != "none required" ; then
-       LNETSNMPLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
-$as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
+fi
+done
 
 
- fi
 
 
 
-##
-#   MIB-module-specific checks
-##
 
-#   libdevstat
-#        (for diskIO MIB)
-#
-#   Not-Used: HAVE_GETDEVS/HAVE_DEVSTAT_GETDEVS
-#
-echo " $module_list " | $GREP " ucd-snmp/diskio " >/dev/null
-if test $? -eq 0 ; then
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getdevs" >&5
-$as_echo_n "checking for library containing getdevs... " >&6; }
-if ${netsnmp_cv_func_getdevs_LMIBLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_func in execv system fork getpid strncasecmp sigalrm
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LMIBLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
-#endif
-char getdevs ();
-int
-main ()
 {
-return getdevs ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
-else
-  for netsnmp_cur_lib in devstat ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
+#endif
+/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
 #ifdef __cplusplus
-extern "C"
+}
 #endif
-char getdevs ();
+
 int
 main ()
 {
-return getdevs ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_getdevs_LMIBLIBS="${netsnmp_result}"
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_getdevs_LMIBLIBS" >&5
-$as_echo "$netsnmp_cv_func_getdevs_LMIBLIBS" >&6; }
- if test "${netsnmp_cv_func_getdevs_LMIBLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_getdevs_LMIBLIBS}" != "none required" ; then
-       LMIBLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
-
-$as_echo "#define HAVE_GETDEVS 1" >>confdefs.h
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
+fi
+done
 
- fi
 
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing devstat_getdevs" >&5
-$as_echo_n "checking for library containing devstat_getdevs... " >&6; }
-if ${netsnmp_cv_func_devstat_getdevs_LMIBLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_func in lseek64 pread64
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LMIBLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
-#endif
-char devstat_getdevs ();
-int
-main ()
 {
-return devstat_getdevs ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
-else
-  for netsnmp_cur_lib in devstat ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
+#endif
+/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
 #ifdef __cplusplus
-extern "C"
+}
 #endif
-char devstat_getdevs ();
+
 int
 main ()
 {
-return devstat_getdevs ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_devstat_getdevs_LMIBLIBS="${netsnmp_result}"
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_devstat_getdevs_LMIBLIBS" >&5
-$as_echo "$netsnmp_cv_func_devstat_getdevs_LMIBLIBS" >&6; }
- if test "${netsnmp_cv_func_devstat_getdevs_LMIBLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_devstat_getdevs_LMIBLIBS}" != "none required" ; then
-       LMIBLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
-
-$as_echo "#define HAVE_DEVSTAT_GETDEVS 1" >>confdefs.h
-
-
- fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
 fi
+done
 
-#   libpci
-#        (for if-mib description)
-#
+if test "x$with_rpm" != "xno" && \
+        echo " $module_list " | grep " host/hr_swinst " > /dev/null; then
+  OLDLIBS=$LIBS
+  LIBS=$LMIBLIBS
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pci_lookup_name" >&5
-$as_echo_n "checking for library containing pci_lookup_name... " >&6; }
-if ${netsnmp_cv_func_pci_lookup_name_LMIBLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_func in rpmGetPath
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LMIBLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
-#endif
-char pci_lookup_name ();
-int
-main ()
 {
-return pci_lookup_name ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
-else
-  for netsnmp_cur_lib in pci ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
+#endif
+/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
 #ifdef __cplusplus
-extern "C"
+}
 #endif
-char pci_lookup_name ();
+
 int
 main ()
 {
-return pci_lookup_name ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_pci_lookup_name_LMIBLIBS="${netsnmp_result}"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_pci_lookup_name_LMIBLIBS" >&5
-$as_echo "$netsnmp_cv_func_pci_lookup_name_LMIBLIBS" >&6; }
- if test "${netsnmp_cv_func_pci_lookup_name_LMIBLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_pci_lookup_name_LMIBLIBS}" != "none required" ; then
-       LMIBLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
-
-$as_echo "#define HAVE_PCI_LOOKUP_NAME 1" >>confdefs.h
-
-
- fi
-
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-#   LM-SENSORS-MIB support
-#
-echo " $module_list " | $GREP -i "ucd-snmp/lmsensor" > /dev/null
-if test $? -eq 0 ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sensors support" >&5
-$as_echo_n "checking for sensors support... " >&6; }
-        case $target_os in
-        solaris*)
-            #  Agent:  HAVE_PICL_H
-            #
-            ac_fn_c_check_header_mongrel "$LINENO" "picl.h" "ac_cv_header_picl_h" "$ac_includes_default"
-if test "x$ac_cv_header_picl_h" = xyes; then :
-  LMIBLIBS="${LMIBLIBS} -lpicl"
+eval "$as_ac_var=no"
 fi
-
-
-            for ac_header in picl.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "picl.h" "ac_cv_header_picl_h" "$ac_includes_default"
-if test "x$ac_cv_header_picl_h" = xyes; then :
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
-#define HAVE_PICL_H 1
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
 fi
-
 done
 
-            ;;
-        *)
-            #  Not-Used:  HAVE_SENSORS_SENSORS_H
-            #
-            ac_fn_c_check_header_mongrel "$LINENO" "sensors/sensors.h" "ac_cv_header_sensors_sensors_h" "$ac_includes_default"
-if test "x$ac_cv_header_sensors_sensors_h" = xyes; then :
+  LIBS=$OLDLIBS
+fi
 
+
+for ac_func in getloadavg
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  as_fn_error $? "asked to use lm_sensors but I couldn't find sensors/sensors.h" "$LINENO" 5
-fi
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sensors_get_detected_chips" >&5
-$as_echo_n "checking for library containing sensors_get_detected_chips... " >&6; }
-if ${netsnmp_cv_func_sensors_get_detected_chips_LMIBLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LMIBLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+#undef $ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
-#endif
-char sensors_get_detected_chips ();
-int
-main ()
 {
-return sensors_get_detected_chips ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
-else
-  for netsnmp_cur_lib in sensors ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
+#endif
+/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
 #ifdef __cplusplus
-extern "C"
+}
 #endif
-char sensors_get_detected_chips ();
+
 int
 main ()
 {
-return sensors_get_detected_chips ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_sensors_get_detected_chips_LMIBLIBS="${netsnmp_result}"
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_sensors_get_detected_chips_LMIBLIBS" >&5
-$as_echo "$netsnmp_cv_func_sensors_get_detected_chips_LMIBLIBS" >&6; }
- if test "${netsnmp_cv_func_sensors_get_detected_chips_LMIBLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_sensors_get_detected_chips_LMIBLIBS}" != "none required" ; then
-       LMIBLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
-
- else
-    as_fn_error $? "asked to use lm_sensors but I couldn't find -lsensors" "$LINENO" 5
- fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
-            ;;
-        esac
 fi
+done
+
 
-#
-# libnl (netlink)
-#
 
-if test "x$with_nl" != "xno"; then
-    case $target_os in
-    linux*) # Check for libnl (linux)
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing nl_connect" >&5
-$as_echo_n "checking for library containing nl_connect... " >&6; }
-if ${netsnmp_cv_func_nl_connect_LMIBLIBS+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_func in getaddrinfo getipnodebyname gai_strerror
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  netsnmp_func_search_save_LIBS="$LIBS"
-     netsnmp_target_val="$LMIBLIBS"
-          netsnmp_temp_LIBS="${netsnmp_target_val}  ${LIBS}"
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
-#endif
-char nl_connect ();
-int
-main ()
 {
-return nl_connect ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result="none required"
-else
-  for netsnmp_cur_lib in nl ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
+#endif
+/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
 #ifdef __cplusplus
-extern "C"
+}
 #endif
-char nl_connect ();
+
 int
 main ()
 {
-return nl_connect ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  netsnmp_result=-l${netsnmp_cur_lib}
-                   break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-          done
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     netsnmp_cv_func_nl_connect_LMIBLIBS="${netsnmp_result}"
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_func_nl_connect_LMIBLIBS" >&5
-$as_echo "$netsnmp_cv_func_nl_connect_LMIBLIBS" >&6; }
- if test "${netsnmp_cv_func_nl_connect_LMIBLIBS}" != "no" ; then
-    if test "${netsnmp_cv_func_nl_connect_LMIBLIBS}" != "none required" ; then
-       LMIBLIBS="${netsnmp_result} ${netsnmp_target_val}"
-    fi
-    for ac_header in netlink/netlink.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "netlink/netlink.h" "ac_cv_header_netlink_netlink_h" "$ac_includes_default"
-if test "x$ac_cv_header_netlink_netlink_h" = xyes; then :
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
-#define HAVE_NETLINK_NETLINK_H 1
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
 fi
-
 done
 
+# BSDi2 functions differ
 
- fi
-
-    ;;
-    esac
-fi
 
+for ac_func in statvfs statfs
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
-##
-#   More complex checks:
-##
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
-#   Security related functions
-#
-NONAGENTLIBS=$LIBS	 # save old libraries
-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
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C_Initialize in -lpkcs11" >&5
-$as_echo_n "checking for C_Initialize in -lpkcs11... " >&6; }
-if ${ac_cv_lib_pkcs11_C_Initialize+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpkcs11  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+#undef $ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
 #endif
-char C_Initialize ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-return C_Initialize ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pkcs11_C_Initialize=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  ac_cv_lib_pkcs11_C_Initialize=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pkcs11_C_Initialize" >&5
-$as_echo "$ac_cv_lib_pkcs11_C_Initialize" >&6; }
-if test "x$ac_cv_lib_pkcs11_C_Initialize" = xyes; then :
-
-$as_echo "#define HAVE_LIBPKCS11 1" >>confdefs.h
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
-		LIBPKCS11="-lpkcs11"
 fi
+done
 
-    else
-        if test "x$tryrsaref" != "xno"; then
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RSAPrivateDecrypt in -lrsaref" >&5
-$as_echo_n "checking for RSAPrivateDecrypt in -lrsaref... " >&6; }
-if ${ac_cv_lib_rsaref_RSAPrivateDecrypt+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+for ac_func in getdtablesize
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lrsaref  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
 #endif
-char RSAPrivateDecrypt ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-return RSAPrivateDecrypt ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_rsaref_RSAPrivateDecrypt=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  ac_cv_lib_rsaref_RSAPrivateDecrypt=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rsaref_RSAPrivateDecrypt" >&5
-$as_echo "$ac_cv_lib_rsaref_RSAPrivateDecrypt" >&6; }
-if test "x$ac_cv_lib_rsaref_RSAPrivateDecrypt" = xyes; then :
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBRSAREF 1
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
-  LIBS="-lrsaref $LIBS"
-
 fi
+done
 
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RSA_PKCS1_RSAref in -lRSAglue" >&5
-$as_echo_n "checking for RSA_PKCS1_RSAref in -lRSAglue... " >&6; }
-if ${ac_cv_lib_RSAglue_RSA_PKCS1_RSAref+:} false; then :
-  $as_echo_n "(cached) " >&6
+# freebsd2 checks
+
+for ac_func in getfsstat
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lRSAglue  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
 #endif
-char RSA_PKCS1_RSAref ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-return RSA_PKCS1_RSAref ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_RSAglue_RSA_PKCS1_RSAref=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  ac_cv_lib_RSAglue_RSA_PKCS1_RSAref=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_RSAglue_RSA_PKCS1_RSAref" >&5
-$as_echo "$ac_cv_lib_RSAglue_RSA_PKCS1_RSAref" >&6; }
-if test "x$ac_cv_lib_RSAglue_RSA_PKCS1_RSAref" = xyes; then :
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBRSAGLUE 1
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
-  LIBS="-lRSAglue $LIBS"
-
 fi
+done
 
-        fi
 
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -leay32" >&5
-$as_echo_n "checking for -leay32... " >&6; }
-        netsnmp_save_LIBS="$LIBS"
-        LIBS="-leay32"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+for ac_func in usleep
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
 
-                #include <openssl/evp.h>
 int
 main ()
 {
-return EVP_md5();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }; ac_cv_lib_eay32_EVP_md5=yes; CRYPTO="eay32"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-        LIBS="$netsnmp_save_LIBS"
+done
 
-        if test x$CRYPTO = x; then
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_md5 in -lcrypto" >&5
-$as_echo_n "checking for EVP_md5 in -lcrypto... " >&6; }
-if ${ac_cv_lib_crypto_EVP_md5+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+for ac_func in setlocale
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcrypto  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
 #endif
-char EVP_md5 ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-return EVP_md5 ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_crypto_EVP_md5=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  ac_cv_lib_crypto_EVP_md5=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_EVP_md5" >&5
-$as_echo "$ac_cv_lib_crypto_EVP_md5" >&6; }
-if test "x$ac_cv_lib_crypto_EVP_md5" = xyes; then :
-  CRYPTO="crypto"
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
-        fi
-
-        if test x$CRYPTO != x; then
+fi
+done
 
-$as_echo "#define HAVE_LIBCRYPTO 1" >>confdefs.h
 
-            LIBCRYPTO="-l${CRYPTO}"
-            as_ac_Lib=`$as_echo "ac_cv_lib_${CRYPTO}''_AES_cfb128_encrypt" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AES_cfb128_encrypt in -l${CRYPTO}" >&5
-$as_echo_n "checking for AES_cfb128_encrypt in -l${CRYPTO}... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
-  $as_echo_n "(cached) " >&6
+for ac_func in tcgetattr
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${CRYPTO}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
 #endif
-char AES_cfb128_encrypt ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-return AES_cfb128_encrypt ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  eval "$as_ac_Lib=no"
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-
-$as_echo "#define HAVE_AES_CFB128_ENCRYPT 1" >>confdefs.h
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
 fi
+done
 
 
-            as_ac_Lib=`$as_echo "ac_cv_lib_${CRYPTO}''_EVP_MD_CTX_create" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_MD_CTX_create in -l${CRYPTO}" >&5
-$as_echo_n "checking for EVP_MD_CTX_create in -l${CRYPTO}... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+for ac_func in if_nameindex if_freenameindex
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-l${CRYPTO}  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
 #endif
-char EVP_MD_CTX_create ();
+
 int
 main ()
 {
-return EVP_MD_CTX_create ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  eval "$as_ac_Lib=no"
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-
-$as_echo "#define HAVE_EVP_MD_CTX_CREATE /**/" >>confdefs.h
-
-
-$as_echo "#define HAVE_EVP_MD_CTX_DESTROY /**/" >>confdefs.h
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
 fi
+done
 
-        fi
-        if echo " $transport_result_list " | $GREP "DTLS" > /dev/null; then
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DTLSv1_method in -lssl" >&5
-$as_echo_n "checking for DTLSv1_method in -lssl... " >&6; }
-if ${ac_cv_lib_ssl_DTLSv1_method+:} false; then :
-  $as_echo_n "(cached) " >&6
+# solaris checks
+
+for ac_func in getpagesize
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lssl -lcrypto $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
 #endif
-char DTLSv1_method ();
+
 int
 main ()
 {
-return DTLSv1_method ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_ssl_DTLSv1_method=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  ac_cv_lib_ssl_DTLSv1_method=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_DTLSv1_method" >&5
-$as_echo "$ac_cv_lib_ssl_DTLSv1_method" >&6; }
-if test "x$ac_cv_lib_ssl_DTLSv1_method" = xyes; then :
-
-$as_echo "#define HAVE_LIBSSL_DTLS 1" >>confdefs.h
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
-                LIBCRYPTO=" -lssl $LIBCRYPTO"
-else
-  as_fn_error $? "The DTLS based transports require the libssl library from OpenSSL to be available and support DTLS" "$LINENO" 5
 fi
+done
 
-            TLSPROG=yes
-        fi
-        if echo " $transport_result_list " | $GREP "TLS" > /dev/null; then
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_library_init in -lssl" >&5
-$as_echo_n "checking for SSL_library_init in -lssl... " >&6; }
-if ${ac_cv_lib_ssl_SSL_library_init+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+for ac_func in mkstemp
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lssl -lcrypto $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
 #endif
-char SSL_library_init ();
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-return SSL_library_init ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_ssl_SSL_library_init=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  ac_cv_lib_ssl_SSL_library_init=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_library_init" >&5
-$as_echo "$ac_cv_lib_ssl_SSL_library_init" >&6; }
-if test "x$ac_cv_lib_ssl_SSL_library_init" = xyes; then :
-
-$as_echo "#define HAVE_LIBSSL 1" >>confdefs.h
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
-                LIBCRYPTO=" -lssl $LIBCRYPTO"
-else
-  as_fn_error $? "The DTLS based transports require the libssl library from OpenSSL to be available" "$LINENO" 5
 fi
+done
 
-            TLSPROG=yes
-        fi
-        if echo " $transport_result_list " | $GREP " SSH " > /dev/null; then
-	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libssh2_session_startup in -lssh2" >&5
-$as_echo_n "checking for libssh2_session_startup in -lssh2... " >&6; }
-if ${ac_cv_lib_ssh2_libssh2_session_startup+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+
+
+for ac_func in getpwnam getgrnam setgid setuid setgroups
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lssh2  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
 #ifdef __cplusplus
-extern "C"
+}
 #endif
-char libssh2_session_startup ();
+
 int
 main ()
 {
-return libssh2_session_startup ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_ssh2_libssh2_session_startup=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  ac_cv_lib_ssh2_libssh2_session_startup=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssh2_libssh2_session_startup" >&5
-$as_echo "$ac_cv_lib_ssh2_libssh2_session_startup" >&6; }
-if test "x$ac_cv_lib_ssh2_libssh2_session_startup" = xyes; then :
-
-$as_echo "#define HAVE_LIBSSH2 1" >>confdefs.h
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
-                LIBCRYPTO=" -lssh2 $LIBCRYPTO"
-else
-  as_fn_error $? "The SSH transport requires the libssh2 library to be available" "$LINENO" 5
 fi
+done
 
-            SSHPROG=yes
-        fi
-    fi
-elif test "x$askedpkcs" = "xyes"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C_Initialize in -lpkcs11" >&5
-$as_echo_n "checking for C_Initialize in -lpkcs11... " >&6; }
-if ${ac_cv_lib_pkcs11_C_Initialize+:} false; then :
-  $as_echo_n "(cached) " >&6
+# High resolution alarm support
+
+for ac_func in setitimer
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpkcs11  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
+{
 #endif
-char C_Initialize ();
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-return C_Initialize ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pkcs11_C_Initialize=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  ac_cv_lib_pkcs11_C_Initialize=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pkcs11_C_Initialize" >&5
-$as_echo "$ac_cv_lib_pkcs11_C_Initialize" >&6; }
-if test "x$ac_cv_lib_pkcs11_C_Initialize" = xyes; then :
-  $as_echo "#define HAVE_LIBPKCS11 1" >>confdefs.h
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-        LIBPKCS11="-lpkcs11"
+eval "$as_ac_var=no"
 fi
-
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-if test "x$TLSPROG" = "xyes"; then
-   ac_fn_c_check_decl "$LINENO" "EVP_sha224" "ac_cv_have_decl_EVP_sha224" "#include <openssl/evp.h>
-"
-if test "x$ac_cv_have_decl_EVP_sha224" = xyes; then :
-  :
-else
-
-$as_echo "#define HAVE_EVP_SHA224 /**/" >>confdefs.h
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
 fi
+done
 
-   ac_fn_c_check_decl "$LINENO" "EVP_sha384" "ac_cv_have_decl_EVP_sha384" "#include <openssl/evp.h>
-"
-if test "x$ac_cv_have_decl_EVP_sha384" = xyes; then :
-  :
-else
+# functions to support the clock.
 
-$as_echo "#define HAVE_EVP_SHA384 /**/" >>confdefs.h
 
-fi
 
-fi
 
-LIBS=$NONAGENTLIBS	 # restore old libraries
-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" -a "x$enable_read_only" != "xyes" ; then
-    NETSNMP_BUILD_TLS_PROG_TRUE=''
-    NETSNMP_BUILD_TLS_PROG_FALSE='#'
-else
-    NETSNMP_BUILD_TLS_PROG_TRUE='#'
-    NETSNMP_BUILD_TLS_PROG_FALSE=''
-fi
-if echo " ${security_mod_list} " | grep ' usm ' ; then
-    if test "x$enable_read_only" != "xyes" ; then
-    	NETSNMP_BUILD_USM_PROG_TRUE=''
-    	NETSNMP_BUILD_USM_PROG_FALSE='#'
-    else
-    	NETSNMP_BUILD_USM_PROG_TRUE='#'
-    	NETSNMP_BUILD_USM_PROG_FALSE=''
-    fi
-else
-    NETSNMP_BUILD_USM_PROG_TRUE='#'
-    NETSNMP_BUILD_USM_PROG_FALSE=''
-fi
-if test "x$enable_read_only" != "xyes" ; then
-    NETSNMP_BUILD_SET_PROG_TRUE=""
-    NETSNMP_BUILD_SET_PROG_FALSE="#"
+for ac_func in mktime stime times sysconf
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-    NETSNMP_BUILD_SET_PROG_TRUE="#"
-    NETSNMP_BUILD_SET_PROG_FALSE=""
-fi
-
-
-
-
-
-
-
-
-
-#
-# 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"
-   $as_echo "#define HAVE_AES_CFB128_ENCRYPT 1" >>confdefs.h
-
-fi
-
-
-
-
-#
-# if we can do any sort of crypto then note it
-#
-if test "x$CRYPTO" != "x" ; then
-
-$as_echo "#define NETSNMP_CAN_DO_CRYPTO 1" >>confdefs.h
-
-fi
-
-#   TCP wrapper support
-#
-_cppflags="${CPPFLAGS}"
-_ldflags="${LDFLAGS}"
-if test "$with_libwrap" != "no"; then
-  if test "$with_libwrap" != "yes"; then
-    CPPFLAGS="${CPPFLAGS} -I$with_libwrap/include"
-    LDFLAGS="${LDFLAGS} -L$with_libwrap/lib"
-  fi
-
-  _libs=${LIBS}
-  ac_fn_c_check_header_mongrel "$LINENO" "tcpd.h" "ac_cv_header_tcpd_h" "$ac_includes_default"
-if test "x$ac_cv_header_tcpd_h" = xyes; then :
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-else
-  as_fn_error $? "Asked to use libwrap but I couldn't find tcpd.h." "$LINENO" 5
-fi
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
+#undef $ac_func
 
-  LIBS="$LIBS -lwrap"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TCP wrappers library -lwrap" >&5
-$as_echo_n "checking for TCP wrappers library -lwrap... " >&6; }
-  # XXX: should check for hosts_ctl
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-     #include <tcpd.h>
-     int allow_severity = 0;
-     int deny_severity  = 0;
-int
-main ()
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
 {
-hosts_access((void *)0)
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-     $as_echo "#define NETSNMP_USE_LIBWRAP 1" >>confdefs.h
-
-     test "$with_libwrap" != no -a "$with_libwrap" != yes && _wraplibs="-L$with_libwrap/lib"
-     _wraplibs="$_wraplibs -lwrap"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-     # Linux RedHat 6.1 won't link libwrap without libnsl
-     ac_fn_c_check_func "$LINENO" "yp_get_default_domain" "ac_cv_func_yp_get_default_domain"
-if test "x$ac_cv_func_yp_get_default_domain" = xyes; then :
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for yp_get_default_domain in -lnsl" >&5
-$as_echo_n "checking for yp_get_default_domain in -lnsl... " >&6; }
-if ${ac_cv_lib_nsl_yp_get_default_domain+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
+#endif
+/* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
 #ifdef __cplusplus
-extern "C"
+}
 #endif
-char yp_get_default_domain ();
+
 int
 main ()
 {
-return yp_get_default_domain ();
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_nsl_yp_get_default_domain=yes
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  ac_cv_lib_nsl_yp_get_default_domain=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_yp_get_default_domain" >&5
-$as_echo "$ac_cv_lib_nsl_yp_get_default_domain" >&6; }
-if test "x$ac_cv_lib_nsl_yp_get_default_domain" = xyes; then :
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNSL 1
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
-  LIBS="-lnsl $LIBS"
-
 fi
+done
 
-fi
+# missing from hp-ux
 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TCP wrappers library -lwrap linked with -lnsl" >&5
-$as_echo_n "checking for TCP wrappers library -lwrap linked with -lnsl... " >&6; }
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+for ac_func in if_nametoindex
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <sys/types.h>
-	#include <tcpd.h>
-	int allow_severity = 0;
-	int deny_severity  = 0;
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 int
 main ()
 {
-hosts_access((void *)0)
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-	$as_echo "#define NETSNMP_USE_LIBWRAP 1" >>confdefs.h
-
-	test "$with_libwrap" != no -a "$with_libwrap" != yes && _wraplibs="-L$with_libwrap/lib"
-	_wraplibs="$_wraplibs -lwrap -lnsl"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-	as_fn_error $? "Asked to use libwrap but I couldn't find it." "$LINENO" 5
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  LAGENTLIBS="$_wraplibs"
-  CPPFLAGS=${_cppflags}
-  LDFLAGS=${_ldflags}
-  LIBS=${_libs}
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
-
-##
-#   mysql
-##
-if test "x$with_mysql" = "xyes" ; then
-  for ac_prog in mysql_config
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MYSQLCONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MYSQLCONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MYSQLCONFIG="$MYSQLCONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_MYSQLCONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-MYSQLCONFIG=$ac_cv_path_MYSQLCONFIG
-if test -n "$MYSQLCONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MYSQLCONFIG" >&5
-$as_echo "$MYSQLCONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
 fi
+done
 
+# missing from MinGW
 
-  test -n "$MYSQLCONFIG" && break
-done
 
-  for ac_header in mysql/mysql.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "mysql/mysql.h" "ac_cv_header_mysql_mysql_h" "$ac_includes_default"
-if test "x$ac_cv_header_mysql_mysql_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_MYSQL_MYSQL_H 1
+for ac_func in chown localtime_r
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
 
-fi
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
-done
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
-  ac_fn_c_check_header_mongrel "$LINENO" "mysql/mysql.h" "ac_cv_header_mysql_mysql_h" "$ac_includes_default"
-if test "x$ac_cv_header_mysql_mysql_h" = xyes; then :
-  mysql_h=yes
-else
-  mysql_h=no
-fi
+#undef $ac_func
 
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
 
-  if test "x$MYSQLCONFIG" = "x" -o "x$mysql_h" = "xno"; then
-     as_fn_error $? "Could not find mysql_config or mysql.h and was specifically asked to use MySQL support" "$LINENO" 5
-  fi
-  MYSQL_LIBS=`$MYSQLCONFIG --libs`
-  MYSQL_INCLUDES=`$MYSQLCONFIG --cflags`
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether MY_INIT() works" >&5
-$as_echo_n "checking whether MY_INIT() works... " >&6; }
-  _libs="${LIBS}"
-  _cppflags="${CPPFLAGS}"
-  LIBS="${LIBS} ${MYSQL_LIBS}"
-  CPPFLAGS="${CPPFLAGS} ${MYSQL_INCLUDES}"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <mysql/my_global.h>
-               #include <mysql/my_sys.h>
 int
 main ()
 {
-MY_INIT("my_init_test")
+return f != $ac_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-$as_echo "#define HAVE_BROKEN_LIBMYSQLCLIENT 1" >>confdefs.h
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "$as_ac_var=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  CPPFLAGS="${_cppflags}"
-  LIBS="${_libs}"
-
-  cat >> configure-summary << EOF
-  MYSQL Trap Logging:         enabled
-EOF
-
-else
-
-  cat >> configure-summary << EOF
-  MYSQL Trap Logging:         unavailable
-EOF
-
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
-
-
-
-
-##
-#   Non-library checks
-##
-
-# nlist
-for ac_func in nlist nlist64 knlist
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
 fi
 done
 
 
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
+echo "$as_me:$LINENO: checking for SIOCGIFADDR in sys/ioctl.h" >&5
+echo $ECHO_N "checking for SIOCGIFADDR in sys/ioctl.h... $ECHO_C" >&6
+if test "${cv_sys_ioctl_h_has_SIOCGIFADDR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+   cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-      if test ! -f "$cache_file" || test -h "$cache_file"; then
-	cat confcache >"$cache_file"
-      else
-        case $cache_file in #(
-        */* | ?:*)
-	  mv -f confcache "$cache_file"$$ &&
-	  mv -f "$cache_file"$$ "$cache_file" ;; #(
-        *)
-	  mv -f confcache "$cache_file" ;;
-	esac
-      fi
-    fi
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-# -*- autoconf -*-
-#########################################
-##
-#   Perl & Python support
-##
-#########################################
-
-##
-#   Check whether Net-SNMP configuration will support Perl
-##
-
-#   Inputs:
-#       install_perl:   whether or not to install the Perl modules
-#                           yes/no/try   (i.e. 'maybe' - the default)
-#       embed_perl:     whether or not to embed Perl support within the agent
-#                           yes/no/try   (i.e. 'maybe' - the default)
-#
-#       ac_cv_path_PERLPROG:    Path to perl binary
-
+#ifdef HAVE_SYS_IOCTL_H
+#include <sys/ioctl.h>
+#endif
+#ifdef SIOCGIFADDR
+xxxyesxxx
+#endif
 
-#       Embedded Perl requires Perl modules, and the perl binary
-#
-if test "x$embed_perl" = "xtry" ; then
-    if test "x$install_perl" = "xno" ; then
-        install_perl="try"
-    fi
-    if test "x$ac_cv_path_PERLPROG" = "x" -o "x$ac_cv_path_PERLPROG" = "xno" ; then
-        install_perl="no"
-        embed_perl="no"
-    fi
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "xxxyesxxx" >/dev/null 2>&1; then
+  cv_sys_ioctl_h_has_SIOCGIFADDR=yes
+else
+  cv_sys_ioctl_h_has_SIOCGIFADDR=no
 fi
+rm -f conftest*
 
-#       Perl modules require the perl binary
-#
-if test "x$install_perl" != "xno" ; then
-    myperl=$ac_cv_path_PERLPROG
-    if test $myperl = "no" ; then
-        if test "x$install_perl" = "xtry" ; then
-            install_perl="no"
-        else
-            as_fn_error $? "--enable-embedded-perl requested but no perl executable found" "$LINENO" 5
-        fi
-    fi
 fi
 
-#       Perl modules require shared libraries
-#
-if test "x$install_perl" != "xno" ; then
-    if test "x$enable_shared" != "xyes"; then
-        if test "x$install_perl" = "xtry" ; then
-            install_perl="no"
-        else
-            as_fn_error $? "Perl support requires --enable-shared" "$LINENO" 5
-        fi
-    fi
-fi
+echo "$as_me:$LINENO: result: $cv_sys_ioctl_h_has_SIOCGIFADDR" >&5
+echo "${ECHO_T}$cv_sys_ioctl_h_has_SIOCGIFADDR" >&6
+if test $cv_sys_ioctl_h_has_SIOCGIFADDR = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define SYS_IOCTL_H_HAS_SIOCGIFADDR 1
+_ACEOF
 
-#       Perl modules can only be installed from within the source tree
-#
-if test "x$install_perl" != "xno" ; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we are in the source tree so we can install Perl modules" >&5
-$as_echo_n "checking if we are in the source tree so we can install Perl modules... " >&6; }
-    if test "x$srcdir" = "x." -o -d perl/agent/default_store ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: Yes" >&5
-$as_echo "Yes" >&6; }
-    else
-        if test "x$install_perl" = "xtry" ; then
-            install_perl="no"
-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: No" >&5
-$as_echo "No" >&6; }
-        else
-            as_fn_error $? "Perl modules can not be built outside the source directory" "$LINENO" 5
-        fi
-    fi
 fi
 
+# ultrix
+echo "$as_me:$LINENO: checking for two-argument statfs with struct fs_data (Ultrix)" >&5
+echo $ECHO_N "checking for two-argument statfs with struct fs_data (Ultrix)... $ECHO_C" >&6
+if test "${fu_cv_sys_stat_fs_data+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  fu_cv_sys_stat_fs_data=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#   The rest of the Perl-related checks aren't relevant
-#       if we're not using the Perl modules
-#
-if test "x$install_perl" != "xno" ; then
-
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
+#endif
+#ifdef HAVE_SYS_FS_TYPES_H
+#include <sys/fs_types.h>
+#endif
+main ()
+{
+struct fs_data fsd;
+/* Ultrix's statfs returns 1 for success,
+   0 for not mounted, -1 for failure.  */
+exit (statfs (".", &fsd) != 1);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  fu_cv_sys_stat_fs_data=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-##
-#   Check compiler compatability
-##
+( exit $ac_status )
+fu_cv_sys_stat_fs_data=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
 
-    #       What compiler was used to build the perl binary?
-    #
-    if test "xenable_perl_cc_checks" != "xno" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Perl cc" >&5
-$as_echo_n "checking for Perl cc... " >&6; }
+echo "$as_me:$LINENO: result: $fu_cv_sys_stat_fs_data" >&5
+echo "${ECHO_T}$fu_cv_sys_stat_fs_data" >&6
+if test $fu_cv_sys_stat_fs_data = yes; then
+  cat >>confdefs.h <<\_ACEOF
+#define STAT_STATFS_FS_DATA 1
+_ACEOF
 
-        PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'`
+fi
 
-        if test "x$PERLCC" != "x" ; then
-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERLCC" >&5
-$as_echo "$PERLCC" >&6; }
-        else
-            if test "x$install_perl" = "xtry" ; then
-                install_perl="no"
-            else
-                as_fn_error $? "Could not determine the compiler that was used to build $myperl. Either set the environment variable PERLPROG to a different perl binary or use --without-perl-modules to build without Perl." "$LINENO" 5
-            fi
-        fi
-    fi
+# check if compiler pre-processor defines __FUNCTION__
+echo "$as_me:$LINENO: checking if __FUNCTION__ is defined" >&5
+echo $ECHO_N "checking if __FUNCTION__ is defined... $ECHO_C" >&6
+if test "${ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-    #       Was GCC used to build the perl binary?
-    #
-    if test "x$install_perl" != "xno" ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PERLCC is a GNU C compiler" >&5
-$as_echo_n "checking whether $PERLCC is a GNU C compiler... " >&6; }
-        OLDCC=$CC
-        CC="$PERLCC"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-
 int
 main ()
 {
 
-#ifndef __GNUC__
-  choke me
-#endif
+    char *cp = __FUNCTION__;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  perlcc_is_gnu=yes
-else
-  perlcc_is_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $perlcc_is_gnu" >&5
-$as_echo "$perlcc_is_gnu" >&6; }
-        CC=$OLDCC
-
-        #       Check compatability:  Gnu Net-SNMP vs Non-Gnu perl
-        #
-        if test "x$GCC" = "xyes" -a "x$perlcc_is_gnu" = "xno" ; then
-            if test "x$install_perl" = "xtry" ; then
-      	        install_perl="no"
-      	    else
-      	        as_fn_error $? "This build is using a GNU C compiler ($CC) while Perl has been compiled with a non-GNU (or non-working) compiler ($PERLCC). This likely won't work for building with Perl support. Either specify a different compiler (--with-cc=PATH), disable this check (--disable-perl-cc-checks) or build without Perl (--without-perl-modules)." "$LINENO" 5
-      	    fi
-        fi
-    fi
-
-    #       Check compatability:  Non-Gnu Net-SNMP vs Gnu perl
-    #
-    if test "x$install_perl" != "xno" ; then
-        if test "x$GCC" != "xyes" -a "x$perlcc_is_gnu" = "xyes" ; then
-      	    if test "x$install_perl" = "xtry" ; then
-      	        install_perl="no"
-      	    else
-                as_fn_error $? "This build is using a non-GNU C compiler ($CC) while Perl has been compiled with a GNU compiler ($PERLCC). This likely won't work for building with Perl support. Either specify a different compiler (--with-cc=PATH), disable this check (--disable-perl-cc-checks) or build without Perl (--without-perl-modules)." "$LINENO" 5
-      	    fi
-        fi
-    fi
-
-    #       Are we clear to proceed?
-    #
-    if test "x$install_perl" = "xtry" ; then
-        install_perl="yes"
-    else
-        if test "x$install_perl" = "xno" ; then
-            install_perl="no"
-            embed_perl="no"
-        fi
-    fi
-
-
-##
-#   Determine compilation environment needed for embedded Perl
-##
-
-#       System-specific requirements
-#
-case $target_os in
-    solaris*)
-      if test "x$embed_perl" != "xno" ; then
-          #   Check for LARGEFILE support               (Solaris)
-          #
-          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for problematic Perl cc flags on Suns" >&5
-$as_echo_n "checking for problematic Perl cc flags on Suns... " >&6; }
-          if $myperl -V:ccflags | $GREP LARGEFILE > /dev/null ; then
-            if test "x$embed_perl" = "xtry" ; then
-              embed_perl="no"
-            else
-              as_fn_error $? "Perl was compiled with LARGEFILE support which will break Net-SNMP. Either set the environment variable PERLPROG to a different perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether." "$LINENO" 5
-            fi
-          else
-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: none known" >&5
-$as_echo "none known" >&6; }
-          fi
-      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
-            { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Embedded perl defaulting to off" >&5
-$as_echo "$as_me: WARNING: Embedded perl defaulting to off" >&2;}
-            embed_perl="no"
-        fi
-    ;;
-
-    *)
-    ;;
-esac
-
-#       Compiler flags
-#
-if test "x$embed_perl" != "xno" ; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Perl CFLAGS" >&5
-$as_echo_n "checking for Perl CFLAGS... " >&6; }
-    perlcflags=`$myperl -MExtUtils::Embed -e ccopts`
-    if test "x$perlcflags" != "x" ; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $perlcflags" >&5
-$as_echo "$perlcflags" >&6; }
-      CFLAGS="$CFLAGS $perlcflags"
-    else
-      if test "x$embed_perl" = "xtry" ; then
-        embed_perl="no"
-      else
-        as_fn_error $? "Could not determine the C compiler flags that were used to build $myperl. Either set the environment variable PERLPROG to a different Perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether." "$LINENO" 5
-      fi
-    fi
-fi
-
-#       Linker flags
-#
-if test "x$embed_perl" != "xno" ; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Perl LDFLAGS" >&5
-$as_echo_n "checking for Perl LDFLAGS... " >&6; }
-    netsnmp_perlldopts=`$myperl -MExtUtils::Embed -e ldopts`
-    if test "x$netsnmp_perlldopts" != "x" ; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_perlldopts" >&5
-$as_echo "$netsnmp_perlldopts" >&6; }
-    else
-      if test "x$embed_perl" = "xtry" ; then
-        embed_perl="no"
-      else
-        as_fn_error $? "Could not determine the linker options that were used to build $myperl. Either set the environment variable PERLPROG to a different Perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether." "$LINENO" 5
-      fi
-    fi
-    if test "x$enable_as_needed" != "xno" ; then
-      #   Just-in-time linking will embed the Perl library within
-      #       the Net-SNMP library (rather than the agent application)
-      #
-      PERLLDOPTS_FOR_LIBS="$netsnmp_perlldopts"
-      #   Perl ccdlflags (RPATH to libperl, hopefully)
-      #
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Perl CCDLFLAGS" >&5
-$as_echo_n "checking for Perl CCDLFLAGS... " >&6; }
-
-      netsnmp_perlccdlflags=`$myperl -V:ccdlflags | $myperl -n -e 'print $1 '"if (/^\s*ccdlflags='([^']+)';/);"`
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_perlccdlflags" >&5
-$as_echo "$netsnmp_perlccdlflags" >&6; }
-      PERLLDOPTS_FOR_APPS="$netsnmp_perlccdlflags"
-    else
-      #   Otherwise embed the Perl library within the application
-      #
-      PERLLDOPTS_FOR_LIBS="$netsnmp_perlldopts"
-      # link *applications* against libperl
-      PERLLDOPTS_FOR_APPS="$netsnmp_perlldopts"
-    fi
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED=no
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED" >&5
+echo "${ECHO_T}$ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED" >&6
 
-#       'Perl_eval_pv' function (and equivalents)
-#
-if test "x$embed_perl" != "xno" ; then
-    #   Three possible versions of this routine:
-    #       eval_pv                                     (to 5.003_97d)
-    #       perl_eval_pv                                (5.004/5.005)
-    #       Perl_eval_pv                                (from 5.6ff)
-    #
-    OLDLIBS="$LIBS"
-    LIBS="$LIBS $netsnmp_perlldopts"
-    for ac_func in eval_pv
-do :
-  ac_fn_c_check_func "$LINENO" "eval_pv" "ac_cv_func_eval_pv"
-if test "x$ac_cv_func_eval_pv" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_EVAL_PV 1
+if test "x$ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED" = "xyes"; then
+  cat >>confdefs.h <<\_ACEOF
+#define HAVE_CPP_UNDERBAR_FUNCTION_DEFINED 1
 _ACEOF
 
 fi
-done
 
-    ac_fn_c_check_func "$LINENO" "perl_eval_pv" "ac_cv_func_perl_eval_pv"
-if test "x$ac_cv_func_perl_eval_pv" = xyes; then :
+#--------------------------------------------------------------
+# on SCO Unixware 7.1.4 (SCO compiler), "static inline" functions
+# are not supported, so this disables the whole inline thing if it
+# doesn't work properly. Should have no effect on other platforms.
+echo "$as_me:$LINENO: checking whether static inline functions are broken (Unixware)" >&5
+echo $ECHO_N "checking whether static inline functions are broken (Unixware)... $ECHO_C" >&6
+if test "${netsnmp_cv_c_broken_inline+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+
+static inline int nested_inline_function(void) {
+  return 0;
+}
+inline int main_inline_function( void ) {
+  return nested_inline_function();
+}
 
-$as_echo "#define HAVE_PERL_EVAL_PV_LC 1" >>confdefs.h
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  netsnmp_cv_broken_inline=no
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+netsnmp_cv_broken_inline=yes
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $netsnmp_cv_c_broken_inline" >&5
+echo "${ECHO_T}$netsnmp_cv_c_broken_inline" >&6
+
+# But, sadly, the usage of inline in NET_SNMP disagrees seriously with at least
+# solaris2, so disable it for now.
+case "$target_os" in
+    solaris*)
+        netsnmp_cv_broken_inline=yes
+        ;;
+    *)
+        ;;
+esac
 
-    ac_fn_c_check_func "$LINENO" "Perl_eval_pv" "ac_cv_func_Perl_eval_pv"
-if test "x$ac_cv_func_Perl_eval_pv" = xyes; then :
+if test "$netsnmp_cv_broken_inline" = yes ; then
 
-$as_echo "#define HAVE_PERL_EVAL_PV_UC 1" >>confdefs.h
+cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_BROKEN_INLINE 1
+_ACEOF
 
 fi
 
-    LIBS="$OLDLIBS"
-    #
-    #   Note that autoconf flattens case when defining tokens,
-    #   so we need to explicitly distinguish between the latter two.
+# openbsd seems to have dropped m_clusters and m_clfree from mbstat
 
-    if test "x$ac_cv_func_perl_eval_pv" != "xyes" -a "x$ac_cv_func_Perl_eval_pv" != "xyes" -a "x$ac_cv_func_eval_pv" != "xyes" ; then
-      if test "x$embed_perl" = "xtry" ; then
-        embed_perl="no"
-      else
-        as_fn_error $? "Could not find the eval_pv, perl_eval_pv or Perl_eval_pv functions needed for embedded Perl support. Either set the environment variable PERLPROG to a different perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether." "$LINENO" 5
-      fi
-    else
-      #   Activate Embedded Perl
-      #
 
-$as_echo "#define NETSNMP_EMBEDDED_PERL 1" >>confdefs.h
+ac_safe_struct=`echo "mbstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "m_clusters" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-      OTHERAGENTLIBOBJS="snmp_perl.o"
-      OTHERAGENTLIBLOBJS="snmp_perl.lo"
-      OTHERAGENTLIBLFTS="snmp_perl.ft"
+echo "$as_me:$LINENO: checking for mbstat.m_clusters" >&5
+echo $ECHO_N "checking for mbstat.m_clusters... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-      EMBEDPERLINSTALL="embedperlinstall"
-      EMBEDPERLUNINSTALL="embedperluninstall"
-      embed_perl="yes"
-    fi
+if test "xno" = "x"; then
+  defineit="= 0"
+elif test "xno" = "xno"; then
+  defineit=""
 else
-      EMBEDPERLINSTALL=""
-      EMBEDPERLUNINSTALL=""
-      embed_perl="no"
-    fi
+  defineit="no"
 fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
 
+#if HAVE_SYS_MBUF_H
+#include <sys/mbuf.h>
+#endif
 
-##
-#   Report and configure results
-##
 
+int
+main ()
+{
 
+struct mbstat testit;
+testit.m_clusters $defineit;
 
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
 
-#       Results of Embedded Perl checks
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for potential embedded Perl support" >&5
-$as_echo_n "checking for potential embedded Perl support... " >&6; }
-if test "x$embed_perl" != "xyes" ; then
 
-  cat >> configure-summary << EOF
-  Embedded Perl support:      disabled
-EOF
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
-$as_echo "disabled" >&6; }
 else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-  cat >> configure-summary << EOF
-  Embedded Perl support:      enabled
-EOF
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: enabled" >&5
-$as_echo "enabled" >&6; }
-fi
 
-#       Results of Perl Module checks
-#
-PERLTARGS=""
-PERLINSTALLTARGS=""
-PERLUNINSTALLTARGS=""
-PERLFEATURES=""
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can install the Perl modules" >&5
-$as_echo_n "checking if we can install the Perl modules... " >&6; }
-if test "x$install_perl" = "xyes" ; then
-    PERLTARGS="perlmodules"
-    PERLINSTALLTARGS="perlinstall"
-    PERLUNINSTALLTARGS="perluninstall"
-    PERLFEATURES="perlfeatures"
-    if test "x$embed_perl" = "xyes" ; then
+# openbsd seems to have dropped m_mbufs from mbstat too
 
-  cat >> configure-summary << EOF
-  SNMP Perl modules:          building -- embeddable
-EOF
 
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes -- and embeddable" >&5
-$as_echo "yes -- and embeddable" >&6; }
-    else
+ac_safe_struct=`echo "mbstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "m_mbufs" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-  cat >> configure-summary << EOF
-  SNMP Perl modules:          building -- not embeddable
-EOF
+echo "$as_me:$LINENO: checking for mbstat.m_mbufs" >&5
+echo $ECHO_N "checking for mbstat.m_mbufs... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes -- not embeddable" >&5
-$as_echo "yes -- not embeddable" >&6; }
-    fi
+if test "xno" = "x"; then
+  defineit="= 0"
+elif test "xno" = "xno"; then
+  defineit=""
 else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  defineit="no"
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-  cat >> configure-summary << EOF
-  SNMP Perl modules:          disabled
-EOF
 
-fi
+#if HAVE_SYS_MBUF_H
+#include <sys/mbuf.h>
+#endif
 
 
+int
+main ()
+{
+
+struct mbstat testit;
+testit.m_mbufs $defineit;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
 
 
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-#       Reset LIBS to pre-libwrap value   (???)
-#
-AGENTLIBS=$LIBS
-LIBS=$NONAGENTLIBS
 
 
 
-##
-#   Python checks
-##
 
-PYTHONTARGS=""
-PYTHONINSTALLTARGS=""
-PYTHONUNINSTALLTARGS=""
-PYTHONCLEANTARGS=""
-PYTHONFEATURES=""
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we should install the python bindings" >&5
-$as_echo_n "checking if we should install the python bindings... " >&6; }
-if test "x$install_python" = "xyes" ; then
-    PYTHONTARGS="pythonmodules"
-    PYTHONINSTALLTARGS="pythoninstall"
-    PYTHONUNINSTALLTARGS="pythonuninstall"
-    PYTHONCLEANTARGS="pythonclean"
-    PYTHONFEATURES="pythonfeatures"
 
-  cat >> configure-summary << EOF
-  SNMP Python modules:        building for $PYTHONPROG
-EOF
+ac_safe_struct=`echo "sigaction" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "sa_sigaction" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+echo "$as_me:$LINENO: checking for sigaction.sa_sigaction" >&5
+echo $ECHO_N "checking for sigaction.sa_sigaction... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
-  cat >> configure-summary << EOF
-  SNMP Python modules:        disabled
-EOF
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+if test "xno" = "x"; then
+  defineit="= 0"
+elif test "xno" = "xno"; then
+  defineit=""
+else
+  defineit="no"
 fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/signal.h>
 
 
+int
+main ()
+{
 
+struct sigaction testit;
+testit.sa_sigaction $defineit;
 
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
 
-# -*- autoconf -*-
-#########################################
-##
-# Miscellaneous checks
-##
-#########################################
 
-##
-#   Package characteristics
-#       Authentication/Encryption support
-##
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
-#       Check for PKCS11
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for authentication support" >&5
-$as_echo_n "checking for authentication support... " >&6; }
-useopenssl=no
-usepkcs=no
-if test "x$ac_cv_lib_pkcs11_C_Initialize" != "xyes" -o "x$ac_cv_header_security_cryptoki_h" != "xyes"; then
-    if test "x$askedpkcs" = "xyes"; then
-        as_fn_error $? "Asked to use PKCS11 but I couldn't find it." "$LINENO" 5
-    fi
 else
-    if test "x$askedpkcs" = "xyes"; then
-        usepkcs=yes
-    fi
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-#       Check for OpenSSL
-#
-if test "x$ac_cv_lib_crypto_EVP_md5" != "xyes" -a "x$ac_cv_lib_eay32_EVP_md5" != "xyes" -o "x$ac_cv_header_openssl_hmac_h" != "xyes"; then
-    if test "x$askedopenssl" = "xyes"; then
-        as_fn_error $? "Asked to use OpenSSL but I couldn't find it." "$LINENO" 5
-    fi
+
+
+
+
+ac_safe_struct=`echo "tm" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "tm_gmtoff" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for tm.tm_gmtoff" >&5
+echo $ECHO_N "checking for tm.tm_gmtoff... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-    if test "x$askedopenssl" = "xyes"; then
-        useopenssl=yes
-    elif test "x$tryopenssl" = "xyes"; then
-        if test "x$usepkcs" != "xyes"; then
-            useopenssl=yes
-        fi
-    fi
+
+if test "xno" = "x"; then
+  defineit="= 0"
+elif test "xno" = "xno"; then
+  defineit=""
+else
+  defineit="no"
 fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#       Available authentication/encryption modes
-#
-if test "x$CRYPTO" = "xinternal" ; then
-    authmodes="MD5 SHA1"
-    if test "x$enable_privacy" != "xno" ; then
-        encrmodes="DES AES"
-    else
-        encrmodes="disabled"
-    fi
 
-$as_echo "#define NETSNMP_USE_INTERNAL_CRYPTO 1" >>confdefs.h
+#include <sys/types.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
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: Internal Crypto Support" >&5
-$as_echo "Internal Crypto Support" >&6; }
-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
-            encrmodes="DES AES"
-	else
-	    encrmodes="DES"
-	fi
-    else
-        encrmodes="disabled"
-    fi
-    $as_echo "#define NETSNMP_USE_OPENSSL 1" >>confdefs.h
 
-    LNETSNMPLIBS="$LNETSNMPLIBS $LIBCRYPTO"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: OpenSSL Support" >&5
-$as_echo "OpenSSL Support" >&6; }
-elif test "x$usepkcs" != "xno" ; then
-    authmodes="MD5 SHA1"
-    if test "x$enable_privacy" != "xno" ; then
-        encrmodes="DES"
-    else
-        encrmodes="disabled"
-    fi
+int
+main ()
+{
 
-$as_echo "#define NETSNMP_USE_PKCS11 1" >>confdefs.h
+struct tm testit;
+testit.tm_gmtoff $defineit;
 
-    LNETSNMPLIBS="$LNETSNMPLIBS $LIBPKCS11"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: PKCS11 Support" >&5
-$as_echo "PKCS11 Support" >&6; }
-elif test "x$enable_md5" != "xno"; then
-    authmodes="MD5"
-    encrmodes=""
-    $as_echo "#define NETSNMP_USE_INTERNAL_MD5 1" >>confdefs.h
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: Internal MD5 Support" >&5
-$as_echo "Internal MD5 Support" >&6; }
-fi
-if test "x$enable_md5" = "xno"; then
-    authmodes=`echo $authmodes | $SED 's/MD5 *//;'`
+eval "${ac_safe_all}=no"
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
 
 
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
-  cat >> configure-summary << EOF
-  Crypto support from:        $CRYPTO
-EOF
-
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-  cat >> configure-summary << EOF
-  Authentication support:     $authmodes
-EOF
 
 
-  cat >> configure-summary << EOF
-  Encryption support:         $encrmodes
-EOF
 
 
-if test "x$all_warnings" != "x"; then
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_mtu" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-  cat >> configure-summary << EOF
-  WARNING: $all_warnings
-EOF
+echo "$as_me:$LINENO: checking for ifnet.if_mtu" >&5
+echo $ECHO_N "checking for ifnet.if_mtu... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-
-#
-# Check whether user wants DNSSEC local validation support
-#
-_libs=${LIBS}
-if ! test "x-$want_dnssec" = "x-no" ; then
-    for ac_header in validator/validator-config.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "validator/validator-config.h" "ac_cv_header_validator_validator_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_validator_validator_config_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_VALIDATOR_VALIDATOR_CONFIG_H 1
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-fi
 
-done
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
 
-    if test "$ac_cv_header_validator_validator_config_h" != yes; then
-        as_fn_error $? "Can't find validator.h" "$LINENO" 5
-    fi
-    if test "x$ac_cv_lib_crypto_EVP_md5" != "xyes" -a \
-            "x$ac_cv_lib_eay32_EVP_md5" != "xyes" -o \
-            "x$ac_cv_header_openssl_hmac_h" != "xyes"; then
-        as_fn_error $? "Couldn't find OpenSSL for local DNSSEC validation support." "$LINENO" 5
-    fi
-    LIBS="$LIBS $LIBCRYPTO"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for query_send in -lsres" >&5
-$as_echo_n "checking for query_send in -lsres... " >&6; }
-if ${ac_cv_lib_sres_query_send+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsres  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char query_send ();
 int
 main ()
 {
-return query_send ();
+
+struct ifnet testit;
+testit.if_mtu $defineit;
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_sres_query_send=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  ac_cv_lib_sres_query_send=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sres_query_send" >&5
-$as_echo "$ac_cv_lib_sres_query_send" >&6; }
-if test "x$ac_cv_lib_sres_query_send" = xyes; then :
+
+
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
   cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSRES 1
+#define $ac_uc_define 1
 _ACEOF
 
-  LIBS="-lsres $LIBS"
-
 else
-  as_fn_error $? "Can't find libsres" "$LINENO" 5
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-    VAL_LIBS="-lsres $LIBCRYPTO"
-    LIBS="$LIBS -lsres"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for p_val_status in -lval" >&5
-$as_echo_n "checking for p_val_status in -lval... " >&6; }
-if ${ac_cv_lib_val_p_val_status+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+
+if test "x$ac_cv_struct_ifnet_has_if_mtu" = "xno"; then
+echo "$as_me:$LINENO: checking if _KERNEL needs to be defined for if_mtu" >&5
+echo $ECHO_N "checking if _KERNEL needs to be defined for if_mtu... $ECHO_C" >&6
+if test "${ac_cv_IFNET_NEEDS_KERNEL+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lval  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+if test "x$ac_cv_struct_ifnet_has_if_mtu" = "xyes"; then
+  ac_cv_IFNET_NEEDS_KERNEL=no
+else
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
+#define _KERNEL 1
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
 #endif
-char p_val_status ();
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+
 int
 main ()
 {
-return p_val_status ();
+
+struct ifnet testit;
+testit.if_mtu = 0;
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_val_p_val_status=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_IFNET_NEEDS_KERNEL=yes
 else
-  ac_cv_lib_val_p_val_status=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_IFNET_NEEDS_KERNEL=no
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_IFNET_NEEDS_KERNEL" >&5
+echo "${ECHO_T}$ac_cv_IFNET_NEEDS_KERNEL" >&6
+
+if test "x$ac_cv_IFNET_NEEDS_KERNEL" = "xyes"; then
+  cat >>confdefs.h <<\_ACEOF
+#define IFNET_NEEDS_KERNEL 1
+_ACEOF
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_val_p_val_status" >&5
-$as_echo "$ac_cv_lib_val_p_val_status" >&6; }
-if test "x$ac_cv_lib_val_p_val_status" = xyes; then :
-  LIBS="$LIBS -lval"
-                 VAL_LIBS="$VAL_LIBS -lval"
-                 have_val_res_query=yes
+fi
+
+
+
+ac_safe_struct=`echo "sockaddr" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "sa_len" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for sockaddr.sa_len" >&5
+echo $ECHO_N "checking for sockaddr.sa_len... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_rwlock_init in -lpthread" >&5
-$as_echo_n "checking for pthread_rwlock_init in -lpthread... " >&6; }
-if ${ac_cv_lib_pthread_pthread_rwlock_init+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+if test "xno" = "x"; then
+  defineit="= 0"
+elif test "xno" = "xno"; then
+  defineit=""
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  defineit="no"
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
+
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
 #endif
-char pthread_rwlock_init ();
+#include <sys/socket.h>
+
+
 int
 main ()
 {
-return pthread_rwlock_init ();
+
+struct sockaddr testit;
+testit.sa_len $defineit;
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pthread_pthread_rwlock_init=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  ac_cv_lib_pthread_pthread_rwlock_init=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_rwlock_init" >&5
-$as_echo "$ac_cv_lib_pthread_pthread_rwlock_init" >&6; }
-if test "x$ac_cv_lib_pthread_pthread_rwlock_init" = xyes; then :
+
+
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
   cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBPTHREAD 1
+#define $ac_uc_define 1
 _ACEOF
 
-  LIBS="-lpthread $LIBS"
-
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-		   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for p_val_status in -lval-threads" >&5
-$as_echo_n "checking for p_val_status in -lval-threads... " >&6; }
-if ${ac_cv_lib_val_threads_p_val_status+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+
+ac_safe_struct=`echo "sockaddr" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "sa_union.sa_generic.sa_family2" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for sockaddr.sa_union.sa_generic.sa_family2" >&5
+echo $ECHO_N "checking for sockaddr.sa_union.sa_generic.sa_family2... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lval-threads  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+if test "xno" = "x"; then
+  defineit="= 0"
+elif test "xno" = "xno"; then
+  defineit=""
+else
+  defineit="no"
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
+
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
 #endif
-char p_val_status ();
+#include <sys/socket.h>
+
+
 int
 main ()
 {
-return p_val_status ();
+
+struct sockaddr testit;
+testit.sa_union.sa_generic.sa_family2 $defineit;
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_val_threads_p_val_status=yes
-else
-  ac_cv_lib_val_threads_p_val_status=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_val_threads_p_val_status" >&5
-$as_echo "$ac_cv_lib_val_threads_p_val_status" >&6; }
-if test "x$ac_cv_lib_val_threads_p_val_status" = xyes; then :
-  have_val_res_query=yes
-                   LIBS="-lval-threads $LIBS"
-                   VAL_LIBS="-lval-threads -lpthread $VAL_LIBS"
-                   LIBVAL_SUFFIX="-threads"
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  as_fn_error $? "Can't find libval or libval-threads" "$LINENO" 5
-fi
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
 
-$as_echo "#define DNSSEC_LOCAL_VALIDATION 1" >>confdefs.h
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
-    DNSSEC="enabled"
 else
-    DNSSEC="disabled"
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-LIBS=${_libs}
 
 
 
-  cat >> configure-summary << EOF
-  Local DNSSEC validation:    $DNSSEC
-EOF
 
+ac_safe_struct=`echo "sockaddr_storage" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ss_family" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
+echo "$as_me:$LINENO: checking for sockaddr_storage.ss_family" >&5
+echo $ECHO_N "checking for sockaddr_storage.ss_family... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "xno" = "x"; then
+  defineit="= 0"
+elif test "xno" = "xno"; then
+  defineit=""
+else
+  defineit="no"
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-# -*- autoconf -*-
-#########################################
-##
-# Checks for types
-##
-#########################################
+#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
 
-##
-#   Standard checks:
-##
 
-# Checks for typedefs, structures, and compiler characteristics.
-ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
-if test "x$ac_cv_type_off_t" = xyes; then :
+int
+main ()
+{
 
-else
+struct sockaddr_storage testit;
+testit.ss_family $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define off_t long int
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
-if test "x$ac_cv_type_pid_t" = xyes; then :
+fi
 
-else
 
-cat >>confdefs.h <<_ACEOF
-#define pid_t int
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
-$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
-if ${ac_cv_header_time+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+
+ac_safe_struct=`echo "sockaddr_storage" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "__ss_family" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for sockaddr_storage.__ss_family" >&5
+echo $ECHO_N "checking for sockaddr_storage.__ss_family... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "xno" = "x"; then
+  defineit="= 0"
+elif test "xno" = "xno"; then
+  defineit=""
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  defineit="no"
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+
+
+#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#if HAVE_SYS_TYPES_H
 #include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
 
 int
 main ()
 {
-if ((struct tm *) 0)
-return 0;
+
+struct sockaddr_storage testit;
+testit.__ss_family $defineit;
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_time=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  ac_cv_header_time=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
-$as_echo "$ac_cv_header_time" >&6; }
-if test $ac_cv_header_time = yes; then
 
-$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
 
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
+
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 
 
-##
-#   More complex checks:
-##
 
-#   Check for 'socklen_t'                           (HP-UX)
-#
-ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-"
-if test "x$ac_cv_type_socklen_t" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SOCKLEN_T 1
-_ACEOF
+ac_safe_struct=`echo "rtentry" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "rt_dst" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
+echo "$as_me:$LINENO: checking for rtentry.rt_dst" >&5
+echo $ECHO_N "checking for rtentry.rt_dst... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+if test "xno" = "x"; then
+  defineit="= 0"
+elif test "xno" = "xno"; then
+  defineit=""
+else
+  defineit="no"
 fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-
-#   Check for 'in_addr_t'
-#       May be in <netinet/in.h>                        (AIX)
-#
-ac_fn_c_check_type "$LINENO" "in_addr_t" "ac_cv_type_in_addr_t" "
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
 #endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
 #endif
-"
-if test "x$ac_cv_type_in_addr_t" = xyes; then :
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_IN_ADDR_T 1
-_ACEOF
 
+int
+main ()
+{
 
-fi
+struct rtentry testit;
+testit.rt_dst $defineit;
 
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-#   Check for 'ssize_t'
-#       Not necessarily in <sys/types.h>                (older MinGW)
-#
-ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-"
-if test "x$ac_cv_type_ssize_t" = xyes; then :
+fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SSIZE_T 1
-_ACEOF
 
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 
-# -*- autoconf -*-
-#########################################
-##
-# Miscellaneous checks
-##
-#########################################
-
-##
-#   Compilation characteristics
-##
 
-#       Byte order
-#
-if test "$with_endianness" = "big"; then
-    ac_cv_c_bigendian=yes
-elif test "$with_endianness" = "little" ; then
-    ac_cv_c_bigendian=no
-fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
-$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if ${ac_cv_c_bigendian+:} false; then :
-  $as_echo_n "(cached) " >&6
+# checking for 4.3 vs 4.4 rtentry.
+echo "$as_me:$LINENO: checking type of rtentry structure" >&5
+echo $ECHO_N "checking type of rtentry structure... $ECHO_C" >&6
+if test "${ac_cv_RTENTRY_TYPE+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_c_bigendian=unknown
-    # See if we're dealing with a universal compiler.
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __APPLE_CC__
-	       not a universal capable compiler
-	     #endif
-	     typedef int dummy;
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-	# Check for potential -arch flags.  It is not universal unless
-	# there are at least two -arch flags with different values.
-	ac_arch=
-	ac_prev=
-	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
-	 if test -n "$ac_prev"; then
-	   case $ac_word in
-	     i?86 | x86_64 | ppc | ppc64)
-	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
-		 ac_arch=$ac_word
-	       else
-		 ac_cv_c_bigendian=universal
-		 break
-	       fi
-	       ;;
-	   esac
-	   ac_prev=
-	 elif test "x$ac_word" = "x-arch"; then
-	   ac_prev=arch
-	 fi
-       done
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if sys/param.h defines the BYTE_ORDER macro.
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-	     #include <sys/param.h>
 
-int
-main ()
-{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
-		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
-		     && LITTLE_ENDIAN)
-	      bogus endian macros
-	     #endif
 
-  ;
-  return 0;
-}
+# 4.4 compat
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
 #include <sys/types.h>
-		#include <sys/param.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
 
 int
 main ()
 {
-#if BYTE_ORDER != BIG_ENDIAN
-		 not big endian
-		#endif
+
+
+#ifndef STRUCT_RTENTRY_HAS_RT_DST
+#define rt_dst rt_nodes->rn_key
+#endif
+
+  struct rtentry rt;
+  rt.rt_nodes[0].rn_flags = 1;
+  rt.rt_dst;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_RTENTRY_TYPE="BSD-4.4"
 else
-  ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-int
-main ()
-{
-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
-	      bogus endian macros
-	     #endif
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-  ;
-  return 0;
-}
+# 4.3 compat
+if test "x$ac_cv_RTENTRY_TYPE" = "x"; then
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to _BIG_ENDIAN or not.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <limits.h>
+
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
 
 int
 main ()
 {
-#ifndef _BIG_ENDIAN
-		 not big endian
-		#endif
+
+struct rtentry rt;
+rt.rt_hash;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_RTENTRY_TYPE="BSD-4.3"
 else
-  ac_cv_c_bigendian=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # Compile a test program.
-      if test "$cross_compiling" = yes; then :
-  # Try to guess by grepping values from an object file.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-short int ascii_mm[] =
-		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-		short int ascii_ii[] =
-		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-		int use_ascii (int i) {
-		  return ascii_mm[i] + ascii_ii[i];
-		}
-		short int ebcdic_ii[] =
-		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-		short int ebcdic_mm[] =
-		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-		int use_ebcdic (int i) {
-		  return ebcdic_mm[i] + ebcdic_ii[i];
-		}
-		extern int foo;
-
-int
-main ()
-{
-return use_ascii (foo) == use_ebcdic (foo);
-  ;
-  return 0;
-}
+
+# else ack.
+if test "x$ac_cv_RTENTRY_TYPE" = "x"; then
+  echo "$as_me:$LINENO: result: Unknown" >&5
+echo "${ECHO_T}Unknown" >&6
+  ac_cv_RTENTRY_TYPE="unknown"
+fi
+
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_RTENTRY_TYPE" >&5
+echo "${ECHO_T}$ac_cv_RTENTRY_TYPE" >&6
+
+if test "x$ac_cv_RTENTRY_TYPE" = "xBSD-4.4"; then
+  cat >>confdefs.h <<\_ACEOF
+#define RTENTRY_4_4 1
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
-	      ac_cv_c_bigendian=yes
-	    fi
-	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
-	      if test "$ac_cv_c_bigendian" = unknown; then
-		ac_cv_c_bigendian=no
-	      else
-		# finding both strings is unlikely to happen, but who knows?
-		ac_cv_c_bigendian=unknown
-	      fi
-	    fi
+
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+# checking for alpha's ortentry vs rtentry
+if test "x$ac_cv_RTENTRY_TYPE" = "xunknown"; then
+echo "$as_me:$LINENO: checking for struct rtentry" >&5
+echo $ECHO_N "checking for struct rtentry... $ECHO_C" >&6
+if test "${ac_cv_struct_rtentry+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-
-	     /* Are we little or big endian?  From Harbison&Steele.  */
-	     union
-	     {
-	       long int l;
-	       char c[sizeof (long int)];
-	     } u;
-	     u.l = 1;
-	     return u.c[sizeof (long int) - 1] == 1;
+#define KERNEL
+#include <net/route.h>
 
-  ;
-  return 0;
-}
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_c_bigendian=no
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "ortentry" >/dev/null 2>&1; then
+  ac_cv_struct_rtentry=ortentry
 else
-  ac_cv_c_bigendian=yes
+  ac_cv_struct_rtentry=rtentry
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest*
+
+if test "x$ac_cv_struct_rtentry" = "xrtentry" ; then
+  ac_cv_struct_rtentry="rtentry"
+else
+  ac_cv_struct_rtentry="ortentry"
 fi
 
-    fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
-$as_echo "$ac_cv_c_bigendian" >&6; }
- case $ac_cv_c_bigendian in #(
-   yes)
-     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
-;; #(
-   no)
-      ;; #(
-   universal)
+echo "$as_me:$LINENO: result: $ac_cv_struct_rtentry" >&5
+echo "${ECHO_T}$ac_cv_struct_rtentry" >&6
+else
+  RTENTRY_TYPE="rtentry"
+  ac_cv_struct_rtentry="rtentry"
+fi
 
-$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+if test "x$ac_cv_struct_rtentry" != "x"; then
+  cat >>confdefs.h <<_ACEOF
+#define RTENTRY struct ${ac_cv_struct_rtentry}
+_ACEOF
 
-     ;; #(
-   *)
-     as_fn_error $? "Failed to figure out host endianness, please use --with-endianness to specify it." "$LINENO" 5 ;;
- esac
+else
+  cat >>confdefs.h <<\_ACEOF
+#define RTENTRY struct rtentry
+_ACEOF
 
+fi
 
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
+# check for 4.3's rtentry->rt_next
+if test "x$ac_cv_RTENTRY_TYPE" = "xBSD-4.3"; then
+echo "$as_me:$LINENO: checking for struct rtentry has a rt_next node" >&5
+echo $ECHO_N "checking for struct rtentry has a rt_next node... $ECHO_C" >&6
+if test "${ac_cv_struct_rtentry_rt_next+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
 
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-      if test ! -f "$cache_file" || test -h "$cache_file"; then
-	cat confcache >"$cache_file"
-      else
-        case $cache_file in #(
-        */* | ?:*)
-	  mv -f confcache "$cache_file"$$ &&
-	  mv -f "$cache_file"$$ "$cache_file" ;; #(
-        *)
-	  mv -f confcache "$cache_file" ;;
-	esac
-      fi
-    fi
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-# -*- autoconf -*-
-#########################################
-##
-# Checks for library functions.
-##
-#########################################
+int
+main ()
+{
+
+struct rtentry rt;
+rt.rt_next;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_struct_rtentry_rt_next=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-##
-#   Standard checks:
-##
-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
+ac_cv_struct_rtentry_rt_next=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-else
+fi
+echo "$as_me:$LINENO: result: $ac_cv_struct_rtentry_rt_next" >&5
+echo "${ECHO_T}$ac_cv_struct_rtentry_rt_next" >&6
 
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
+if test "x$ac_cv_struct_rtentry_rt_next" = "xyes"; then
+  cat >>confdefs.h <<\_ACEOF
+#define RTENTRY_RT_NEXT 1
 _ACEOF
 
 fi
 
-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
-# for constant arguments.  Useless!
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
-$as_echo_n "checking for working alloca.h... " >&6; }
-if ${ac_cv_working_alloca_h+:} false; then :
-  $as_echo_n "(cached) " >&6
+fi
+
+# Check sin6_scope_id member specified in RFC2553 additionally
+echo "$as_me:$LINENO: checking for struct sockaddr_in6.sin6_scope_id" >&5
+echo $ECHO_N "checking for struct sockaddr_in6.sin6_scope_id... $ECHO_C" >&6
+if test "${ac_cv_member_struct_sockaddr_in6_sin6_scope_id+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <alloca.h>
+
+$ac_includes_default
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+
 int
 main ()
 {
-char *p = (char *) alloca (2 * sizeof (int));
-			  if (p) return 0;
+static struct sockaddr_in6 ac_aggr;
+if (ac_aggr.sin6_scope_id)
+return 0;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_working_alloca_h=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_member_struct_sockaddr_in6_sin6_scope_id=yes
 else
-  ac_cv_working_alloca_h=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
-$as_echo "$ac_cv_working_alloca_h" >&6; }
-if test $ac_cv_working_alloca_h = yes; then
-
-$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
-
-fi
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
-$as_echo_n "checking for alloca... " >&6; }
-if ${ac_cv_func_alloca_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# ifdef _MSC_VER
-#  include <malloc.h>
-#  define alloca _alloca
-# else
-#  ifdef HAVE_ALLOCA_H
-#   include <alloca.h>
-#  else
-#   ifdef _AIX
- #pragma alloca
-#   else
-#    ifndef alloca /* predefined by HP cc +Olibcalls */
-void *alloca (size_t);
-#    endif
-#   endif
-#  endif
-# endif
+
+$ac_includes_default
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
 #endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
 
 int
 main ()
 {
-char *p = (char *) alloca (1);
-				    if (p) return 0;
+static struct sockaddr_in6 ac_aggr;
+if (sizeof ac_aggr.sin6_scope_id)
+return 0;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_func_alloca_works=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_member_struct_sockaddr_in6_sin6_scope_id=yes
 else
-  ac_cv_func_alloca_works=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_member_struct_sockaddr_in6_sin6_scope_id=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
-$as_echo "$ac_cv_func_alloca_works" >&6; }
+echo "$as_me:$LINENO: result: $ac_cv_member_struct_sockaddr_in6_sin6_scope_id" >&5
+echo "${ECHO_T}$ac_cv_member_struct_sockaddr_in6_sin6_scope_id" >&6
+if test $ac_cv_member_struct_sockaddr_in6_sin6_scope_id = yes; then
 
-if test $ac_cv_func_alloca_works = yes; then
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+_ACEOF
 
-$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
 
-else
-  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
-# that cause trouble.  Some versions do not even contain alloca or
-# contain a buggy version.  If you still want to use their alloca,
-# use ar to extract alloca.o from them instead of compiling alloca.c.
+fi
 
-ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
 
-$as_echo "#define C_ALLOCA 1" >>confdefs.h
+# Check struct rtentry for various things.
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
-$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
-if ${ac_cv_os_cray+:} false; then :
-  $as_echo_n "(cached) " >&6
+ac_safe_struct=`echo "rtentry" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "rt_unit" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for rtentry.rt_unit" >&5
+echo $ECHO_N "checking for rtentry.rt_unit... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#if defined CRAY && ! defined CRAY2
-webecray
-#else
-wenotbecray
+
+
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
 #endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+
 
+int
+main ()
+{
+
+struct rtentry testit;
+testit.rt_unit $defineit;
+
+  ;
+  return 0;
+}
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "webecray" >/dev/null 2>&1; then :
-  ac_cv_os_cray=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  ac_cv_os_cray=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
 fi
-rm -f conftest*
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5
-$as_echo "$ac_cv_os_cray" >&6; }
-if test $ac_cv_os_cray = yes; then
-  for ac_func in _getb67 GETB67 getb67; do
-    as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
 
-cat >>confdefs.h <<_ACEOF
-#define CRAY_STACKSEG_END $ac_func
+
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
-    break
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-  done
-fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
-$as_echo_n "checking stack direction for C alloca... " >&6; }
-if ${ac_cv_c_stack_direction+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+ac_safe_struct=`echo "rtentry" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "rt_refcnt" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for rtentry.rt_refcnt" >&5
+echo $ECHO_N "checking for rtentry.rt_refcnt... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test "$cross_compiling" = yes; then :
-  ac_cv_c_stack_direction=0
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_includes_default
-int
-find_stack_direction ()
-{
-  static char *addr = 0;
-  auto char dummy;
-  if (addr == 0)
-    {
-      addr = &dummy;
-      return find_stack_direction ();
-    }
-  else
-    return (&dummy > addr) ? 1 : -1;
-}
+
+
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+
 
 int
 main ()
 {
-  return find_stack_direction () < 0;
+
+struct rtentry testit;
+testit.rt_refcnt $defineit;
+
+  ;
+  return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_c_stack_direction=1
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  ac_cv_c_stack_direction=-1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
-$as_echo "$ac_cv_c_stack_direction" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
-_ACEOF
 
 
-fi
-          #  alloca()
-if test $ac_cv_c_compiler_gnu = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5
-$as_echo_n "checking whether $CC needs -traditional... " >&6; }
-if ${ac_cv_prog_gcc_traditional+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-    ac_pattern="Autoconf.*'x'"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sgtty.h>
-Autoconf TIOCGETP
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "$ac_pattern" >/dev/null 2>&1; then :
-  ac_cv_prog_gcc_traditional=yes
+
 else
-  ac_cv_prog_gcc_traditional=no
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-rm -f conftest*
 
 
-  if test $ac_cv_prog_gcc_traditional = no; then
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <termio.h>
-Autoconf TCGETA
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "$ac_pattern" >/dev/null 2>&1; then :
-  ac_cv_prog_gcc_traditional=yes
-fi
-rm -f conftest*
 
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5
-$as_echo "$ac_cv_prog_gcc_traditional" >&6; }
-  if test $ac_cv_prog_gcc_traditional = yes; then
-    CC="$CC -traditional"
-  fi
-fi
 
 
-if test "$cross_compiling" = yes -a "${ac_cv_func_memcmp_working+set}" != set
-then
-  # Cross-compiling and ac_cv_func_memcmp_working has not been set - assume
-  # that memcmp() is available.
-  ac_cv_func_memcmp_working=yes
-else
-  # Native compilation - test for the availability of memcmp().
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5
-$as_echo_n "checking for working memcmp... " >&6; }
-if ${ac_cv_func_memcmp_working+:} false; then :
-  $as_echo_n "(cached) " >&6
+ac_safe_struct=`echo "rtentry" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "rt_hash" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for rtentry.rt_hash" >&5
+echo $ECHO_N "checking for rtentry.rt_hash... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test "$cross_compiling" = yes; then :
-  ac_cv_func_memcmp_working=no
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
 
-  /* Some versions of memcmp are not 8-bit clean.  */
-  char c0 = '\100', c1 = '\200', c2 = '\201';
-  if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0)
-    return 1;
 
-  /* The Next x86 OpenStep bug shows up only when comparing 16 bytes
-     or more and with at least one buffer not starting on a 4-byte boundary.
-     William Lewis provided this test program.   */
-  {
-    char foo[21];
-    char bar[21];
-    int i;
-    for (i = 0; i < 4; i++)
-      {
-	char *a = foo + i;
-	char *b = bar + i;
-	strcpy (a, "--------01111111");
-	strcpy (b, "--------10000000");
-	if (memcmp (a, b, 16) >= 0)
-	  return 1;
-      }
-    return 0;
-  }
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+
+
+int
+main ()
+{
+
+struct rtentry testit;
+testit.rt_hash $defineit;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_func_memcmp_working=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  ac_cv_func_memcmp_working=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5
-$as_echo "$ac_cv_func_memcmp_working" >&6; }
-test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in
-  *" memcmp.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS memcmp.$ac_objext"
- ;;
-esac
 
 
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
+
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
-$as_echo_n "checking return type of signal handlers... " >&6; }
-if ${ac_cv_type_signal+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+
+ac_safe_struct=`echo "rtentry" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "rt_use" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for rtentry.rt_use" >&5
+echo $ECHO_N "checking for rtentry.rt_use... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+
+
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
 #include <sys/types.h>
-#include <signal.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+
 
 int
 main ()
 {
-return *(signal (0, 0)) (0) == 1;
+
+struct rtentry testit;
+testit.rt_use $defineit;
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_type_signal=int
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  ac_cv_type_signal=void
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
-$as_echo "$ac_cv_type_signal" >&6; }
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-cat >>confdefs.h <<_ACEOF
-#define RETSIGTYPE $ac_cv_type_signal
-_ACEOF
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
 
 
-##
-#   Stand-alone function checks:
-##
-#  Core:
-for ac_func in lrand48         rand          random                    signal          sigset
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define $ac_uc_define 1
 _ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-done
 
 
-#  Library:
-for ac_func in closedir        fgetc_unlocked  flockfile                        fork            funlockfile     getipnodebyname                  gettimeofday    if_nametoindex  mkstemp                          opendir         readdir         regcomp                          setenv          setitimer       setlocale                        setsid          snprintf        strcasestr                       strdup          strerror        strncasecmp                      sysconf         times  [...]
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
-fi
-done
+# Check tcpstat for tcpstat.tcp_rcvmemdrop
 
 
-# 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*)
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ws2tcpip.h>
-int
-main ()
-{
- gai_strerror(0);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-   ac_cv_func_gai_strerror=yes
-      $as_echo  "#define HAVE_GAI_STRERROR 1" >>confdefs.h
+ac_safe_struct=`echo "tcpstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "tcp_rcvmemdrop" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+echo "$as_me:$LINENO: checking for tcpstat.tcp_rcvmemdrop" >&5
+echo $ECHO_N "checking for tcpstat.tcp_rcvmemdrop... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ws2tcpip.h>
-int
-main ()
-{
- getaddrinfo(NULL, NULL, NULL, NULL);
-  ;
-  return 0;
-}
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-   ac_cv_func_getaddrinfo=yes
-      $as_echo  "#define HAVE_GETADDRINFO 1" >>confdefs.h
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <winsock2.h>
-int
-main ()
-{
- gethostbyname(NULL);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-   ac_cv_func_gethostbyname=yes
-      $as_echo  "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef HAVE_SYS_TIMEOUT_H
+#include <sys/timeout.h>
+#endif
+#include <netinet/tcp.h>
+#ifdef HAVE_NETINET_TCP_TIMER_H
+#include <netinet/tcp_timer.h>
+#endif
+
+#ifdef HAVE_NETINET_TCP_VAR_H
+#include <netinet/tcp_var.h>
+#endif
 
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <winsock2.h>
 int
 main ()
 {
- gethostbyaddr(NULL);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-   ac_cv_func_gethostaddr=yes
-      $as_echo  "#define HAVE_GETHOSTBYADDR 1" >>confdefs.h
 
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
+struct tcpstat testit;
+testit.tcp_rcvmemdrop $defineit;
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <winsock2.h>
-int
-main ()
-{
- gethostname(NULL, 0);
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-   ac_cv_func_gethostname=yes
-      $as_echo  "#define HAVE_GETHOSTNAME 1" >>confdefs.h
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    ;;
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-  *)
-    for ac_func in gai_strerror getaddrinfo gethostbyname gethostbyname2 gethostname gethostbyaddr
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+fi
+
+
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define $ac_uc_define 1
 _ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-done
-
-    ;;
-esac
 
 
 
-ac_fn_c_check_func "$LINENO" "getopt" "ac_cv_func_getopt"
-if test "x$ac_cv_func_getopt" = xyes; then :
-  $as_echo "#define HAVE_GETOPT 1" >>confdefs.h
 
-else
-  case " $LIBOBJS " in
-  *" getopt.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS getopt.$ac_objext"
- ;;
-esac
 
-fi
 
-ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop"
-if test "x$ac_cv_func_inet_ntop" = xyes; then :
-  $as_echo "#define HAVE_INET_NTOP 1" >>confdefs.h
+ac_safe_struct=`echo "ifaddr" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ifa_next" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
+echo "$as_me:$LINENO: checking for ifaddr.ifa_next" >&5
+echo $ECHO_N "checking for ifaddr.ifa_next... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case " $LIBOBJS " in
-  *" inet_ntop.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS inet_ntop.$ac_objext"
- ;;
-esac
 
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton"
-if test "x$ac_cv_func_inet_pton" = xyes; then :
-  $as_echo "#define HAVE_INET_PTON 1" >>confdefs.h
 
-else
-  case " $LIBOBJS " in
-  *" inet_pton.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS inet_pton.$ac_objext"
- ;;
-esac
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
 
-fi
 
-ac_fn_c_check_func "$LINENO" "strlcat" "ac_cv_func_strlcat"
-if test "x$ac_cv_func_strlcat" = xyes; then :
-  $as_echo "#define HAVE_STRLCAT 1" >>confdefs.h
+int
+main ()
+{
+
+struct ifaddr testit;
+testit.ifa_next $defineit;
 
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  case " $LIBOBJS " in
-  *" strlcat.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS strlcat.$ac_objext"
- ;;
-esac
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
 fi
-
-ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy"
-if test "x$ac_cv_func_strlcpy" = xyes; then :
-  $as_echo "#define HAVE_STRLCPY 1" >>confdefs.h
-
-else
-  case " $LIBOBJS " in
-  *" strlcpy.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS strlcpy.$ac_objext"
- ;;
-esac
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
-ac_fn_c_check_func "$LINENO" "strtok_r" "ac_cv_func_strtok_r"
-if test "x$ac_cv_func_strtok_r" = xyes; then :
-  $as_echo "#define HAVE_STRTOK_R 1" >>confdefs.h
 
-else
-  case " $LIBOBJS " in
-  *" strtok_r.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS strtok_r.$ac_objext"
- ;;
-esac
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol"
-if test "x$ac_cv_func_strtol" = xyes; then :
-  $as_echo "#define HAVE_STRTOL 1" >>confdefs.h
-
-else
-  case " $LIBOBJS " in
-  *" strtol.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS strtol.$ac_objext"
- ;;
-esac
 
-fi
 
-ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul"
-if test "x$ac_cv_func_strtoul" = xyes; then :
-  $as_echo "#define HAVE_STRTOUL 1" >>confdefs.h
+# Check ifnet entries using macro defined in aclocal.m4.
+#
+# XXX  Broken on FreeBSD where these are #define'd in <net/if.h>
+#
 
-else
-  case " $LIBOBJS " in
-  *" strtoul.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS strtoul.$ac_objext"
- ;;
-esac
 
-fi
 
-ac_fn_c_check_func "$LINENO" "strtoull" "ac_cv_func_strtoull"
-if test "x$ac_cv_func_strtoull" = xyes; then :
-  $as_echo "#define HAVE_STRTOULL 1" >>confdefs.h
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_baudrate" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
+echo "$as_me:$LINENO: checking for ifnet.if_baudrate" >&5
+echo $ECHO_N "checking for ifnet.if_baudrate... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case " $LIBOBJS " in
-  *" strtoull.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS strtoull.$ac_objext"
- ;;
-esac
 
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
+#endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
 
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
+#endif
 
-#  Agent:
-for ac_func in cgetnext        chown          execv                           gai_strerror                   getgrnam                        gethostname     getloadavg                                     getpid          getpwnam                                       hasmntopt       initgroups                                     if_nameindex    if_indextoname if_nametoindex                  localtime_r     mkstemp        mktime                          poll            regcomp              [...]
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
-fi
-done
+int
+main ()
+{
 
+struct ifnet testit;
+testit.if_baudrate $defineit;
 
-#  Apps:
-for ac_func in getdtablesize                                                  getgrnam        getpid        getpwnam                         setgid          setgroups     setuid                           tcgetattr
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-done
 
 
-#  Not-Used:
-for ac_func in if_freenameindex              getpagesize                      lseek64         pread64                                        select          sigalrm       socket
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define $ac_uc_define 1
 _ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-done
 
 
 
-##
-#   More complex function checks:
-#           (Agent)
-##
 
-#       rpmGetPath check needs clean LIBS environment   (Linux)
-#
-if test "x$with_rpm" != "xno"; then
-    OLDLIBS=$LIBS
-    LIBS=$LMIBLIBS
-    for ac_func in rpmGetPath
-do :
-  ac_fn_c_check_func "$LINENO" "rpmGetPath" "ac_cv_func_rpmGetPath"
-if test "x$ac_cv_func_rpmGetPath" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_RPMGETPATH 1
-_ACEOF
 
-fi
-done
 
-    LIBS=$OLDLIBS
-fi
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_baudrate.ifs_value" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-#       statfs( char *, struct fs_data* )               (Ultrix)
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for two-argument statfs with struct fs_data (Ultrix)" >&5
-$as_echo_n "checking for two-argument statfs with struct fs_data (Ultrix)... " >&6; }
-if ${fu_cv_sys_stat_fs_data+:} false; then :
-  $as_echo_n "(cached) " >&6
+echo "$as_me:$LINENO: checking for ifnet.if_baudrate.ifs_value" >&5
+echo $ECHO_N "checking for ifnet.if_baudrate.ifs_value... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test "$cross_compiling" = yes; then :
-  fu_cv_sys_stat_fs_data=no
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
+
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
 #endif
 #include <sys/types.h>
-#ifdef HAVE_SYS_MOUNT_H
-#include <sys/mount.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
 #endif
-#ifdef HAVE_SYS_FS_TYPES_H
-#include <sys/fs_types.h>
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
+#endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
+
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
+
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
 #endif
+
+
+int
 main ()
 {
-struct fs_data fsd;
-/* Ultrix's statfs returns 1 for success,
-   0 for not mounted, -1 for failure.  */
-exit (statfs (".", &fsd) != 1);
+
+struct ifnet testit;
+testit.if_baudrate.ifs_value $defineit;
+
+  ;
+  return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  fu_cv_sys_stat_fs_data=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  fu_cv_sys_stat_fs_data=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $fu_cv_sys_stat_fs_data" >&5
-$as_echo "$fu_cv_sys_stat_fs_data" >&6; }
-if test $fu_cv_sys_stat_fs_data = yes; then
 
-$as_echo "#define STAT_STATFS_FS_DATA 1" >>confdefs.h
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 
-##
-#   Other function-related checks:
-#           (general build)
-##
 
-#       How to get the name of the current function
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to get the name of the current function" >&5
-$as_echo_n "checking how to get the name of the current function... " >&6; }
-if ${netsnmp_cv__func__name+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
 
-    netsnmp_cv__func__name=no
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-int
-main ()
-{
-const char* cp = __func__;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv__func__name=__func__
+
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_speed" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for ifnet.if_speed" >&5
+echo $ECHO_N "checking for ifnet.if_speed... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    if test "$netsnmp_cv__func__name" = no ; then
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
+
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
+#endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
+
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
+
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
+#endif
+
+
 int
 main ()
 {
-const char* cp = __FUNCTION__;
+
+struct ifnet testit;
+testit.if_speed $defineit;
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv__func__name=__FUNCTION__
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv__func__name" >&5
-$as_echo "$netsnmp_cv__func__name" >&6; }
-if test "$netsnmp_cv__func__name" != no; then
-
-cat >>confdefs.h <<_ACEOF
-#define NETSNMP_FUNCTION $netsnmp_cv__func__name
-_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
 
-#       Whether static inline functions are broken      (SCO Unixware)
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether static inline functions are broken (Unixware)" >&5
-$as_echo_n "checking whether static inline functions are broken (Unixware)... " >&6; }
-if ${netsnmp_cv_c_broken_inline+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-static inline int nested_inline_function(void) {
-  return 0;
-}
-inline int main_inline_function( void ) {
-  return nested_inline_function();
-}
 
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv_broken_inline=no
+
 else
-  netsnmp_cv_broken_inline=yes
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_c_broken_inline" >&5
-$as_echo "$netsnmp_cv_c_broken_inline" >&6; }
 
 
-#       Yes -  static inline functions are broken       (Solaris 2.x)
-#
-case "$target_os" in
-    solaris*)
-        netsnmp_cv_broken_inline=yes
-        ;;
-    *)
-        ;;
-esac
 
-if test "$netsnmp_cv_broken_inline" = yes ; then
 
-$as_echo "#define NETSNMP_BROKEN_INLINE 1" >>confdefs.h
 
-fi
 
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_type" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-##
-#   Mis-placed (non-function) checks:
-##
+echo "$as_me:$LINENO: checking for ifnet.if_type" >&5
+echo $ECHO_N "checking for ifnet.if_type... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIOCGIFADDR in sys/ioctl.h" >&5
-$as_echo_n "checking for SIOCGIFADDR in sys/ioctl.h... " >&6; }
-if ${netsnmp_cv_sys_ioctl_h_has_SIOCGIFADDR+:} false; then :
-  $as_echo_n "(cached) " >&6
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-#ifdef HAVE_SYS_IOCTL_H
-#include <sys/ioctl.h>
+
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
 #endif
-#ifndef SIOCGIFADDR
-No SIOCGIFADDR found here.
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
 #endif
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
+#endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
 
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv_sys_ioctl_h_has_SIOCGIFADDR=yes
-else
-  netsnmp_cv_sys_ioctl_h_has_SIOCGIFADDR=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_sys_ioctl_h_has_SIOCGIFADDR" >&5
-$as_echo "$netsnmp_cv_sys_ioctl_h_has_SIOCGIFADDR" >&6; }
-if test $netsnmp_cv_sys_ioctl_h_has_SIOCGIFADDR = yes; then
-
-$as_echo "#define SYS_IOCTL_H_HAS_SIOCGIFADDR 1" >>confdefs.h
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-fi
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
+#endif
 
-##
-#   Check how to print a size_t variable
-##
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the underlying type of a size_t" >&5
-$as_echo_n "checking the underlying type of a size_t... " >&6; }
-if ${netsnmp_cv_size_t_type+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if [ x$netsnmp_cv_size_t_type = x ] ; then
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-extern unsigned int variable;
-extern size_t variable;
 int
 main ()
 {
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv_size_t_type="int"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
-    if [ x$netsnmp_cv_size_t_type = x ] ; then
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-extern unsigned long variable;
-extern size_t variable;
-int
-main ()
-{
+struct ifnet testit;
+testit.if_type $defineit;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv_size_t_type="long"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
-    if [ x$netsnmp_cv_size_t_type = x ] ; then
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-extern unsigned long long variable;
-extern size_t variable;
-int
-main ()
-{
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv_size_t_type="long long"
+eval "${ac_safe_all}=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
-    if [ x$netsnmp_cv_size_t_type = x ] ; then
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-extern unsigned short variable;
-extern size_t variable;
-int
-main ()
-{
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv_size_t_type="short"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
-    if [ x$netsnmp_cv_size_t_type = x ] ; then
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-extern unsigned char variable;
-extern size_t variable;
-int
-main ()
-{
 
-  ;
-  return 0;
-}
+
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv_size_t_type="char"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_size_t_type" >&5
-$as_echo "$netsnmp_cv_size_t_type" >&6; }
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to printf a size_t" >&5
-$as_echo_n "checking how to printf a size_t... " >&6; }
-case "$netsnmp_cv_size_t_type" in
-    char|short|int) netsnmp_PRIz="" ;;
-    long) netsnmp_PRIz="l" ;;
-    "long long") netsnmp_PRIz="ll" ;;
-    *) as_fn_error $? "underlying type of size_t not known" "$LINENO" 5 ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_PRIz" >&5
-$as_echo "$netsnmp_PRIz" >&6; }
 
-cat >>confdefs.h <<_ACEOF
-#define NETSNMP_PRIz "$netsnmp_PRIz"
-_ACEOF
 
 
-##
-#   Check how to print a uint32_t variable
-##
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the underlying type of an uint32_t" >&5
-$as_echo_n "checking the underlying type of an uint32_t... " >&6; }
-if ${netsnmp_cv_uint32_t_type+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_imcasts" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for ifnet.if_imcasts" >&5
+echo $ECHO_N "checking for ifnet.if_imcasts... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if [ x$netsnmp_cv_uint32_t_type = x ] ; then
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-extern unsigned char variable;
-extern uint32_t variable;
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv_uint32_t_type="char"
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
-    if [ x$netsnmp_cv_uint32_t_type = x ] ; then
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-extern unsigned short variable;
-extern uint32_t variable;
-int
-main ()
-{
-
-  ;
-  return 0;
-}
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv_uint32_t_type="short"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
-    if [ x$netsnmp_cv_uint32_t_type = x ] ; then
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-$ac_includes_default
-extern unsigned int variable;
-extern uint32_t variable;
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv_uint32_t_type="int"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
-    if [ x$netsnmp_cv_uint32_t_type = x ] ; then
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-extern unsigned long variable;
-extern uint32_t variable;
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv_uint32_t_type="long"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
-    if [ x$netsnmp_cv_uint32_t_type = x ] ; then
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-extern unsigned long long variable;
-extern uint32_t variable;
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
+#endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
+
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
+
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
+#endif
+
+
 int
 main ()
 {
 
+struct ifnet testit;
+testit.if_imcasts $defineit;
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_cv_uint32_t_type="long long"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_cv_uint32_t_type" >&5
-$as_echo "$netsnmp_cv_uint32_t_type" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to printf a uint32_t" >&5
-$as_echo_n "checking how to printf a uint32_t... " >&6; }
-case "$netsnmp_cv_uint32_t_type" in
-    char|short|int) netsnmp_PRI32="" ;;
-    long) netsnmp_PRI32="l" ;;
-    "long long") netsnmp_PRI32="ll" ;;
-    *) as_fn_error $? "underlying type of uint32_t not known" "$LINENO" 5 ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_PRI32" >&5
-$as_echo "$netsnmp_PRI32" >&6; }
-
-cat >>confdefs.h <<_ACEOF
-#define NETSNMP_PRI32 "$netsnmp_PRI32"
-_ACEOF
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
 
-# 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
-    if ${netsnmp_cv_bio_dgram_get_peer+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BIO_dgram_get_peer" >&5
-$as_echo_n "checking for BIO_dgram_get_peer... " >&6; }
 
-        oldLIBS="$LIBS"
-        LIBS="$LIBS -lcrypto"
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <openssl/bio.h>
-int
-main ()
-{
-BIO_dgram_get_peer(NULL, NULL);
-  ;
-  return 0;
-}
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
 
 else
-  as_fn_error $? "DTLS support requires a newer version of OpenSSL" "$LINENO" 5
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
 
-        LIBS="$oldLIBS"
 
-       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
 
-fi
 
-fi
 
 
-# -*- autoconf -*-
-#########################################
-##
-# Checks for data structures & members
-##
-#########################################
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_iqdrops" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-##
-#   Simple checks:
-##
+echo "$as_me:$LINENO: checking for ifnet.if_iqdrops" >&5
+echo $ECHO_N "checking for ifnet.if_iqdrops... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-#       struct arphd
-#   Agent:
-#
-ac_fn_c_check_member "$LINENO" "struct arphd" "at_next" "ac_cv_member_struct_arphd_at_next" "
-    $ac_includes_default
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
+
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
 #endif
-#ifdef HAVE_SYS_SOCKET_H
+#include <sys/types.h>
 #include <sys/socket.h>
-#endif
 #ifdef HAVE_SYS_TIME_H
 #include <sys/time.h>
 #endif
 #include <net/if.h>
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IF_ETHER_H
-#include <netinet/if_ether.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
 #endif
-
-"
-if test "x$ac_cv_member_struct_arphd_at_next" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_ARPHD_AT_NEXT 1
-_ACEOF
-
-
-fi
-
-
-#       struct des_ks_struct
-#         ('weak_key' indicates older version of OpenSSL)
-#   Library:
-#
-if test "x$ac_cv_header_openssl_des_h" = "xyes" ; then
-    ac_fn_c_check_member "$LINENO" "struct des_ks_struct" "weak_key" "ac_cv_member_struct_des_ks_struct_weak_key" "
-#ifdef HAVE_OPENSSL_DES_H
-#include <openssl/des.h>
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
 #endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
 
-"
-if test "x$ac_cv_member_struct_des_ks_struct_weak_key" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_DES_KS_STRUCT_WEAK_KEY 1
-_ACEOF
-
-
-fi
-
-fi
-
-#       struct dirent
-#         (see also AC_STRUCT_DIRENT_D_TYPE)
-#   Library:
-#
-ac_fn_c_check_member "$LINENO" "struct dirent" "d_type" "ac_cv_member_struct_dirent_d_type" "
-    $ac_includes_default
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-#if HAVE_DIRENT_H
-#include <dirent.h>
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
 #endif
 
-"
-if test "x$ac_cv_member_struct_dirent_d_type" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_DIRENT_D_TYPE 1
-_ACEOF
-
 
-fi
-
-
-#       struct ethtool_cmd
-#
-if test "x$ac_cv_header_linux_ethtool_h" = "xyes" ; then
-ac_fn_c_check_member "$LINENO" "struct ethtool_cmd" "speed_hi" "ac_cv_member_struct_ethtool_cmd_speed_hi" "
-    $ac_includes_default
-
-#ifdef HAVE_LINUX_ETHTOOL_H
-#include <linux/ethtool.h>
-#endif
+int
+main ()
+{
 
-"
-if test "x$ac_cv_member_struct_ethtool_cmd_speed_hi" = xyes; then :
+struct ifnet testit;
+testit.if_iqdrops $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_ETHTOOL_CMD_SPEED_HI 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-
+eval "${ac_safe_all}=no"
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
-#       struct ipstat
-#   Agent:
-#
-ac_fn_c_check_member "$LINENO" "struct ipstat" "ips_cantfrag" "ac_cv_member_struct_ipstat_ips_cantfrag" "
-    $ac_includes_default
-
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
-
-"
-if test "x$ac_cv_member_struct_ipstat_ips_cantfrag" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IPSTAT_IPS_CANTFRAG 1
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
-
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-ac_fn_c_check_member "$LINENO" "struct ipstat" "ips_delivered" "ac_cv_member_struct_ipstat_ips_delivered" "
-    $ac_includes_default
 
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
 
-"
-if test "x$ac_cv_member_struct_ipstat_ips_delivered" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IPSTAT_IPS_DELIVERED 1
-_ACEOF
 
 
-fi
-ac_fn_c_check_member "$LINENO" "struct ipstat" "ips_fragdropped" "ac_cv_member_struct_ipstat_ips_fragdropped" "
-    $ac_includes_default
 
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_noproto" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-"
-if test "x$ac_cv_member_struct_ipstat_ips_fragdropped" = xyes; then :
+echo "$as_me:$LINENO: checking for ifnet.if_noproto" >&5
+echo $ECHO_N "checking for ifnet.if_noproto... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IPSTAT_IPS_FRAGDROPPED 1
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-fi
-ac_fn_c_check_member "$LINENO" "struct ipstat" "ips_fragmented" "ac_cv_member_struct_ipstat_ips_fragmented" "
-    $ac_includes_default
-
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
 #endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
 #endif
-
-"
-if test "x$ac_cv_member_struct_ipstat_ips_fragmented" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IPSTAT_IPS_FRAGMENTED 1
-_ACEOF
-
-
-fi
-ac_fn_c_check_member "$LINENO" "struct ipstat" "ips_localout" "ac_cv_member_struct_ipstat_ips_localout" "
-    $ac_includes_default
-
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
 #endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
 #endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
 
-"
-if test "x$ac_cv_member_struct_ipstat_ips_localout" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IPSTAT_IPS_LOCALOUT 1
-_ACEOF
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
+#endif
 
-fi
-ac_fn_c_check_member "$LINENO" "struct ipstat" "ips_noproto" "ac_cv_member_struct_ipstat_ips_noproto" "
-    $ac_includes_default
 
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
+int
+main ()
+{
 
-"
-if test "x$ac_cv_member_struct_ipstat_ips_noproto" = xyes; then :
+struct ifnet testit;
+testit.if_noproto $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IPSTAT_IPS_NOPROTO 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-
+eval "${ac_safe_all}=no"
 fi
-ac_fn_c_check_member "$LINENO" "struct ipstat" "ips_noroute" "ac_cv_member_struct_ipstat_ips_noroute" "
-    $ac_includes_default
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
+fi
 
-"
-if test "x$ac_cv_member_struct_ipstat_ips_noroute" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IPSTAT_IPS_NOROUTE 1
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
-
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-ac_fn_c_check_member "$LINENO" "struct ipstat" "ips_odropped" "ac_cv_member_struct_ipstat_ips_odropped" "
-    $ac_includes_default
 
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
 
-"
-if test "x$ac_cv_member_struct_ipstat_ips_odropped" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IPSTAT_IPS_ODROPPED 1
-_ACEOF
 
 
-fi
-ac_fn_c_check_member "$LINENO" "struct ipstat" "ips_ofragments" "ac_cv_member_struct_ipstat_ips_ofragments" "
-    $ac_includes_default
 
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_omcasts" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-"
-if test "x$ac_cv_member_struct_ipstat_ips_ofragments" = xyes; then :
+echo "$as_me:$LINENO: checking for ifnet.if_omcasts" >&5
+echo $ECHO_N "checking for ifnet.if_omcasts... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IPSTAT_IPS_OFRAGMENTS 1
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-fi
-ac_fn_c_check_member "$LINENO" "struct ipstat" "ips_reassembled" "ac_cv_member_struct_ipstat_ips_reassembled" "
-    $ac_includes_default
-
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
 #endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
 #endif
-
-"
-if test "x$ac_cv_member_struct_ipstat_ips_reassembled" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IPSTAT_IPS_REASSEMBLED 1
-_ACEOF
-
-
-fi
-
-#
-#   Not-Used:
-ac_fn_c_check_member "$LINENO" "struct ipstat" "ips_cantforward" "ac_cv_member_struct_ipstat_ips_cantforward" "
-    $ac_includes_default
-
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
 #endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
 #endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
 
-"
-if test "x$ac_cv_member_struct_ipstat_ips_cantforward" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IPSTAT_IPS_CANTFORWARD 1
-_ACEOF
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
+#endif
 
-fi
-ac_fn_c_check_member "$LINENO" "struct ipstat" "ips_fragtimeout" "ac_cv_member_struct_ipstat_ips_fragtimeout" "
-    $ac_includes_default
 
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
+int
+main ()
+{
 
-"
-if test "x$ac_cv_member_struct_ipstat_ips_fragtimeout" = xyes; then :
+struct ifnet testit;
+testit.if_omcasts $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IPSTAT_IPS_FRAGTIMEOUT 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-
+eval "${ac_safe_all}=no"
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
 
-#       struct mbstat
-#   Not-Used:
-#
-ac_fn_c_check_member "$LINENO" "struct mbstat" "m_clusters" "ac_cv_member_struct_mbstat_m_clusters" "
-    $ac_includes_default
-
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_MBUF_H
-#include <sys/mbuf.h>
-#endif
-
-"
-if test "x$ac_cv_member_struct_mbstat_m_clusters" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_MBSTAT_M_CLUSTERS 1
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
-
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-ac_fn_c_check_member "$LINENO" "struct mbstat" "m_clfree" "ac_cv_member_struct_mbstat_m_clfree" "
-    $ac_includes_default
-
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_MBUF_H
-#include <sys/mbuf.h>
-#endif
-
-"
-if test "x$ac_cv_member_struct_mbstat_m_clfree" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_MBSTAT_M_CLFREE 1
-_ACEOF
 
 
-fi
-ac_fn_c_check_member "$LINENO" "struct mbstat" "m_mbufs" "ac_cv_member_struct_mbstat_m_mbufs" "
-    $ac_includes_default
 
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_MBUF_H
-#include <sys/mbuf.h>
-#endif
 
-"
-if test "x$ac_cv_member_struct_mbstat_m_mbufs" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_MBSTAT_M_MBUFS 1
-_ACEOF
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_xname" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
+echo "$as_me:$LINENO: checking for ifnet.if_xname" >&5
+echo $ECHO_N "checking for ifnet.if_xname... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+if test "xno" = "x"; then
+  defineit="= 0"
+elif test "xno" = "xno"; then
+  defineit=""
+else
+  defineit="no"
 fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-#       struct nlist
-#
-ac_fn_c_check_member "$LINENO" "struct nlist" "n_value" "ac_cv_member_struct_nlist_n_value" "
-    $ac_includes_default
-
-#if HAVE_NLIST_H
-#include <nlist.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
 #endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
+#endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
 
-"
-if test "x$ac_cv_member_struct_nlist_n_value" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_NLIST_N_VALUE 1
-_ACEOF
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
+#endif
 
-fi
-ac_fn_c_check_member "$LINENO" "struct nlist64" "n_value" "ac_cv_member_struct_nlist64_n_value" "
-    $ac_includes_default
 
-#if HAVE_NLIST_H
-#include <nlist.h>
-#endif
+int
+main ()
+{
 
-"
-if test "x$ac_cv_member_struct_nlist64_n_value" = xyes; then :
+struct ifnet testit;
+testit.if_xname $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_NLIST64_N_VALUE 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-
+eval "${ac_safe_all}=no"
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
 
-#       struct sigaction
-#   Agent:
-#
-ac_fn_c_check_member "$LINENO" "struct sigaction" "sa_sigaction" "ac_cv_member_struct_sigaction_sa_sigaction" "
-    $ac_includes_default
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SIGNAL_H
-#include <sys/signal.h>
-#endif
-
-"
-if test "x$ac_cv_member_struct_sigaction_sa_sigaction" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_SIGACTION_SA_SIGACTION 1
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
-
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 
-#       struct sockaddr
-#   Library:
-#
-ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_len" "ac_cv_member_struct_sockaddr_sa_len" "
-    $ac_includes_default
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#elif defined(HAVE_WINSOCK2_H)
-#include <winsock2.h>
-#endif
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-"
-if test "x$ac_cv_member_struct_sockaddr_sa_len" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_SOCKADDR_SA_LEN 1
-_ACEOF
 
 
-fi
-ac_fn_c_check_member "$LINENO" "struct sockaddr" "sa_union.sa_generic.sa_family2" "ac_cv_member_struct_sockaddr_sa_union_sa_generic_sa_family2" "
-    $ac_includes_default
 
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#elif defined(HAVE_WINSOCK2_H)
-#include <winsock2.h>
-#endif
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_lastchange.tv_sec" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-"
-if test "x$ac_cv_member_struct_sockaddr_sa_union_sa_generic_sa_family2" = xyes; then :
+echo "$as_me:$LINENO: checking for ifnet.if_lastchange.tv_sec" >&5
+echo $ECHO_N "checking for ifnet.if_lastchange.tv_sec... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_SOCKADDR_SA_UNION_SA_GENERIC_SA_FAMILY2 1
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-fi
-ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" "
-    $ac_includes_default
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
 #endif
-#ifdef HAVE_SYS_SOCKET_H
+#include <sys/types.h>
 #include <sys/socket.h>
-#elif defined(HAVE_WINSOCK2_H)
-#include <winsock2.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
 #endif
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
 #endif
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
+#endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
 
-"
-if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
-_ACEOF
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
+#endif
 
-fi
-ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "__ss_family" "ac_cv_member_struct_sockaddr_storage___ss_family" "
-    $ac_includes_default
 
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#elif defined(HAVE_WINSOCK2_H)
-#include <winsock2.h>
-#endif
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
+int
+main ()
+{
 
-"
-if test "x$ac_cv_member_struct_sockaddr_storage___ss_family" = xyes; then :
+struct ifnet testit;
+testit.if_lastchange.tv_sec $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-
+eval "${ac_safe_all}=no"
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
 
-#       struct sockaddr_in6     (see RFC 2553)
-#   Library:
-#
-ac_fn_c_check_member "$LINENO" "struct sockaddr_in6" "sin6_scope_id" "ac_cv_member_struct_sockaddr_in6_sin6_scope_id" "
-    $ac_includes_default
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.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
-
-"
-if test "x$ac_cv_member_struct_sockaddr_in6_sin6_scope_id" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
-
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 
-#       struct msghdr
-#   Library:
-#
-ac_fn_c_check_member "$LINENO" "struct msghdr" "msg_control" "ac_cv_member_struct_msghdr_msg_control" "
-    $ac_includes_default
 
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.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
 
-"
-if test "x$ac_cv_member_struct_msghdr_msg_control" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_MSGHDR_MSG_CONTROL 1
-_ACEOF
 
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_obytes" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for ifnet.if_obytes" >&5
+echo $ECHO_N "checking for ifnet.if_obytes... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-ac_fn_c_check_member "$LINENO" "struct msghdr" "msg_flags" "ac_cv_member_struct_msghdr_msg_flags" "
-    $ac_includes_default
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
+
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
 #endif
-#ifdef HAVE_SYS_SOCKET_H
+#include <sys/types.h>
 #include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
 #endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_WINSOCK2_H
-#include <winsock2.h>
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
 #endif
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
 #endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
 
-"
-if test "x$ac_cv_member_struct_msghdr_msg_flags" = xyes; then :
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_MSGHDR_MSG_FLAGS 1
-_ACEOF
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
+#endif
 
 
-fi
+int
+main ()
+{
 
+struct ifnet testit;
+testit.if_obytes $defineit;
 
-#       struct sockaddr_un
-#   Library:
-#
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of sockaddr_un.sun_path" >&5
-$as_echo_n "checking size of sockaddr_un.sun_path... " >&6; }
-if ${ac_cv_sizeof_sockaddr_un_sun_path+:} false; then :
-  $as_echo_n "(cached) " >&6
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (sockaddr_un.sun_path))" "ac_cv_sizeof_sockaddr_un_sun_path"        "
-    $ac_includes_default
-
-#if HAVE_SYS_UN_H
-#include <sys/un.h>
-#endif
-struct sockaddr_un sockaddr_un;
-
-"; then :
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-else
-  if test "$ac_cv_type_sockaddr_un_sun_path" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (sockaddr_un.sun_path)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_sockaddr_un_sun_path=0
-   fi
+eval "${ac_safe_all}=no"
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_sockaddr_un_sun_path" >&5
-$as_echo "$ac_cv_sizeof_sockaddr_un_sun_path" >&6; }
-
 
 
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SOCKADDR_UN_SUN_PATH $ac_cv_sizeof_sockaddr_un_sun_path
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
 
-#       struct statfs
-#   Agent:
-#
-ac_fn_c_check_member "$LINENO" "struct statfs" "f_favail" "ac_cv_member_struct_statfs_f_favail" "
-    $ac_includes_default
 
-#if HAVE_SYS_STATFS_H
-#include <sys/statfs.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_MOUNT_H
-#include <sys/mount.h>
-#endif
-#ifdef HAVE_NBUTIL_H
-#include <nbutil.h>
-#endif
 
-"
-if test "x$ac_cv_member_struct_statfs_f_favail" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STATFS_F_FAVAIL 1
-_ACEOF
 
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_ibytes" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for ifnet.if_ibytes" >&5
+echo $ECHO_N "checking for ifnet.if_ibytes... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-ac_fn_c_check_member "$LINENO" "struct statfs" "f_ffree" "ac_cv_member_struct_statfs_f_ffree" "
-    $ac_includes_default
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#if HAVE_SYS_STATFS_H
-#include <sys/statfs.h>
+
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
 #endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
 #endif
-#ifdef HAVE_SYS_MOUNT_H
-#include <sys/mount.h>
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
 #endif
-#ifdef HAVE_NBUTIL_H
-#include <nbutil.h>
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
 #endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
 
-"
-if test "x$ac_cv_member_struct_statfs_f_ffree" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STATFS_F_FFREE 1
-_ACEOF
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
+#endif
 
-fi
-ac_fn_c_check_member "$LINENO" "struct statfs" "f_files" "ac_cv_member_struct_statfs_f_files" "
-    $ac_includes_default
 
-#if HAVE_SYS_STATFS_H
-#include <sys/statfs.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_MOUNT_H
-#include <sys/mount.h>
-#endif
-#ifdef HAVE_NBUTIL_H
-#include <nbutil.h>
-#endif
+int
+main ()
+{
 
-"
-if test "x$ac_cv_member_struct_statfs_f_files" = xyes; then :
+struct ifnet testit;
+testit.if_ibytes $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STATFS_F_FILES 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-
+eval "${ac_safe_all}=no"
 fi
-ac_fn_c_check_member "$LINENO" "struct statfs" "f_flags" "ac_cv_member_struct_statfs_f_flags" "
-    $ac_includes_default
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-#if HAVE_SYS_STATFS_H
-#include <sys/statfs.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_MOUNT_H
-#include <sys/mount.h>
-#endif
-#ifdef HAVE_NBUTIL_H
-#include <nbutil.h>
-#endif
+fi
 
-"
-if test "x$ac_cv_member_struct_statfs_f_flags" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STATFS_F_FLAGS 1
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
-
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-ac_fn_c_check_member "$LINENO" "struct statfs" "f_frsize" "ac_cv_member_struct_statfs_f_frsize" "
-    $ac_includes_default
 
-#if HAVE_SYS_STATFS_H
-#include <sys/statfs.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_MOUNT_H
-#include <sys/mount.h>
-#endif
-#ifdef HAVE_NBUTIL_H
-#include <nbutil.h>
-#endif
 
-"
-if test "x$ac_cv_member_struct_statfs_f_frsize" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STATFS_F_FRSIZE 1
-_ACEOF
 
 
-fi
 
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_addrlist" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-#       struct statvfs
-#   Agent:
-#
-ac_fn_c_check_member "$LINENO" "struct statvfs" "f_files" "ac_cv_member_struct_statvfs_f_files" "
-    $ac_includes_default
+echo "$as_me:$LINENO: checking for ifnet.if_addrlist" >&5
+echo $ECHO_N "checking for ifnet.if_addrlist... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-#if HAVE_SYS_STATFS_H
-#include <sys/statfs.h>
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
 #endif
-#if HAVE_SYS_STATVFS_H
-#include <sys/statvfs.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
 #endif
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
+#endif
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
 
-"
-if test "x$ac_cv_member_struct_statvfs_f_files" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STATVFS_F_FILES 1
-_ACEOF
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
+#endif
 
-fi
-ac_fn_c_check_member "$LINENO" "struct statvfs" "f_frsize" "ac_cv_member_struct_statvfs_f_frsize" "
-    $ac_includes_default
 
-#if HAVE_SYS_STATFS_H
-#include <sys/statfs.h>
-#endif
-#if HAVE_SYS_STATVFS_H
-#include <sys/statvfs.h>
-#endif
+int
+main ()
+{
 
-"
-if test "x$ac_cv_member_struct_statvfs_f_frsize" = xyes; then :
+struct ifnet testit;
+testit.if_addrlist $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STATVFS_F_FRSIZE 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-
+eval "${ac_safe_all}=no"
 fi
-ac_fn_c_check_member "$LINENO" "struct statvfs" "mnt_dir" "ac_cv_member_struct_statvfs_mnt_dir" "
-    $ac_includes_default
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-#if HAVE_SYS_STATFS_H
-#include <sys/statfs.h>
-#endif
-#if HAVE_SYS_STATVFS_H
-#include <sys/statvfs.h>
-#endif
+fi
 
-"
-if test "x$ac_cv_member_struct_statvfs_mnt_dir" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_STATVFS_MNT_DIR 1
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
-
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 
-#       struct swdevt
-#   Not-Used:
-#
-ac_fn_c_check_member "$LINENO" "struct swdevt" "sw_nblksenabled" "ac_cv_member_struct_swdevt_sw_nblksenabled" "
-    $ac_includes_default
 
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_CONF_H
-#include <sys/conf.h>
-#endif
 
-"
-if test "x$ac_cv_member_struct_swdevt_sw_nblksenabled" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_SWDEVT_SW_NBLKSENABLED 1
-_ACEOF
 
+ac_safe_struct=`echo "ifnet" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "if_addrhead.tqh_first" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-fi
+echo "$as_me:$LINENO: checking for ifnet.if_addrhead.tqh_first" >&5
+echo $ECHO_N "checking for ifnet.if_addrhead.tqh_first... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#       struct tcpstat
-#   Agent:
-#
-ac_fn_c_check_member "$LINENO" "struct tcpstat" "tcp_rcvmemdrop" "ac_cv_member_struct_tcpstat_tcp_rcvmemdrop" "
-    $ac_includes_default
 
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
 #endif
-#ifdef HAVE_SYS_TIMEOUT_H
-#include <sys/timeout.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
 #endif
-#ifdef HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
 #endif
-#ifdef HAVE_NETINET_TCP_TIMER_H
-#include <netinet/tcp_timer.h>
+#ifdef HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
 #endif
-#ifdef HAVE_NETINET_TCP_VAR_H
-#include <netinet/tcp_var.h>
+#ifdef linux
+struct ifnet {
+	char	*if_name;		/* name, e.g. "en" or "lo" */
+	short	if_unit;		/* sub-unit for lower level driver */
+	short	if_mtu;			/* maximum transmission unit */
+	short	if_flags;		/* up/down, broadcast, etc. */
+	int	if_metric;		/* routing metric (external only) */
+	char    if_hwaddr [6];		/* ethernet address */
+	int	if_type;		/* interface type: 1=generic,
+					   28=slip, ether=6, loopback=24 */
+	int	if_speed;		/* interface speed: in bits/sec */
+
+	struct sockaddr if_addr;	/* interface's address */
+	struct sockaddr ifu_broadaddr;	/* broadcast address */
+	struct sockaddr ia_subnetmask; 	/* interface's mask */
+
+	struct	ifqueue {
+		int	ifq_len;
+		int	ifq_drops;
+	} if_snd;			/* output queue */
+	int	if_ibytes;		/* octets received on interface */
+	int	if_ipackets;		/* packets received on interface */
+	int	if_ierrors;		/* input errors on interface */
+        int     if_iqdrops;             /* input queue overruns */
+	int	if_obytes;		/* octets sent on interface */
+	int	if_opackets;		/* packets sent on interface */
+	int	if_oerrors;		/* output errors on interface */
+	int	if_collisions;		/* collisions on csma interfaces */
+/* end statistics */
+	struct	ifnet *if_next;
+};
 #endif
 
-"
-if test "x$ac_cv_member_struct_tcpstat_tcp_rcvmemdrop" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_TCPSTAT_TCP_RCVMEMDROP 1
+int
+main ()
+{
+
+struct ifnet testit;
+testit.if_addrhead.tqh_first $defineit;
+
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
 
-#       struct tm
-#   Library:
-#
-ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "
-    $ac_includes_default
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
-#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
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-"
-if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_TM_TM_GMTOFF 1
-_ACEOF
 
 
-fi
 
 
-#       extern timezone
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking extern timezone" >&5
-$as_echo_n "checking extern timezone... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ac_safe_struct=`echo "udpstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "udps_discard" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for udpstat.udps_discard" >&5
+echo $ECHO_N "checking for udpstat.udps_discard... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.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
+
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_UDP_VAR_H
+#include <netinet/udp_var.h>
 #endif
 
+
 int
 main ()
 {
 
-  return timezone;
+struct udpstat testit;
+testit.udps_discard $defineit;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-$as_echo "#define HAVE_TIMEZONE_VARIABLE 1" >>confdefs.h
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+fi
 
-else
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
 
-#       struct timezone
-#   Library:
-#
-ac_fn_c_check_member "$LINENO" "struct timezone" "tz_dsttime" "ac_cv_member_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
 
-"
-if test "x$ac_cv_member_struct_timezone_tz_dsttime" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_TIMEZONE_TZ_DSTTIME 1
-_ACEOF
 
+ac_safe_struct=`echo "udpstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "udps_noport" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-fi
+echo "$as_me:$LINENO: checking for udpstat.udps_noport" >&5
+echo $ECHO_N "checking for udpstat.udps_noport... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#       struct udpstat
-#   Agent:
-#
-ac_fn_c_check_member "$LINENO" "struct udpstat" "udps_discard" "ac_cv_member_struct_udpstat_udps_discard" "
-    $ac_includes_default
 
+#include <sys/types.h>
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
@@ -26868,43 +46489,95 @@ ac_fn_c_check_member "$LINENO" "struct udpstat" "udps_discard" "ac_cv_member_str
 #include <netinet/udp_var.h>
 #endif
 
-"
-if test "x$ac_cv_member_struct_udpstat_udps_discard" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_UDPSTAT_UDPS_DISCARD 1
+int
+main ()
+{
+
+struct udpstat testit;
+testit.udps_noport $defineit;
+
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-ac_fn_c_check_member "$LINENO" "struct udpstat" "udps_fullsock" "ac_cv_member_struct_udpstat_udps_fullsock" "
-    $ac_includes_default
 
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
-#if HAVE_NETINET_UDP_H
-#include <netinet/udp.h>
-#endif
-#if HAVE_NETINET_UDP_VAR_H
-#include <netinet/udp_var.h>
-#endif
 
-"
-if test "x$ac_cv_member_struct_udpstat_udps_fullsock" = xyes; then :
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
+
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+
+
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_UDPSTAT_UDPS_FULLSOCK 1
-_ACEOF
+ac_safe_struct=`echo "udpstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "udps_noportbcast" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
+echo "$as_me:$LINENO: checking for udpstat.udps_noportbcast" >&5
+echo $ECHO_N "checking for udpstat.udps_noportbcast... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-ac_fn_c_check_member "$LINENO" "struct udpstat" "udps_noport" "ac_cv_member_struct_udpstat_udps_noport" "
-    $ac_includes_default
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
 
+#include <sys/types.h>
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
@@ -26918,43 +46591,95 @@ ac_fn_c_check_member "$LINENO" "struct udpstat" "udps_noport" "ac_cv_member_stru
 #include <netinet/udp_var.h>
 #endif
 
-"
-if test "x$ac_cv_member_struct_udpstat_udps_noport" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_UDPSTAT_UDPS_NOPORT 1
-_ACEOF
+int
+main ()
+{
+
+struct udpstat testit;
+testit.udps_noportbcast $defineit;
 
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
 fi
-ac_fn_c_check_member "$LINENO" "struct udpstat" "udps_noportbcast" "ac_cv_member_struct_udpstat_udps_noportbcast" "
-    $ac_includes_default
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
-#if HAVE_NETINET_UDP_H
-#include <netinet/udp.h>
-#endif
-#if HAVE_NETINET_UDP_VAR_H
-#include <netinet/udp_var.h>
-#endif
+fi
 
-"
-if test "x$ac_cv_member_struct_udpstat_udps_noportbcast" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_UDPSTAT_UDPS_NOPORTBCAST 1
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+
+
 
+ac_safe_struct=`echo "udpstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "udps_fullsock" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for udpstat.udps_fullsock" >&5
+echo $ECHO_N "checking for udpstat.udps_fullsock... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-ac_fn_c_check_member "$LINENO" "struct udpstat" "udps_opackets" "ac_cv_member_struct_udpstat_udps_opackets" "
-    $ac_includes_default
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
+
+#include <sys/types.h>
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
@@ -26968,4643 +46693,4443 @@ ac_fn_c_check_member "$LINENO" "struct udpstat" "udps_opackets" "ac_cv_member_st
 #include <netinet/udp_var.h>
 #endif
 
-"
-if test "x$ac_cv_member_struct_udpstat_udps_opackets" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_UDPSTAT_UDPS_OPACKETS 1
+int
+main ()
+{
+
+struct udpstat testit;
+testit.udps_fullsock $defineit;
+
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
 
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-##
-#   ifnet-related checks:
-##
 
-#       Does "struct ifnet" need _KERNEL defined?       (Irix)
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if _KERNEL needs to be defined for if_mtu" >&5
-$as_echo_n "checking if _KERNEL needs to be defined for if_mtu... " >&6; }
-if ${ac_cv_IFNET_NEEDS_KERNEL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_IFNET_NEEDS_KERNEL=unknown
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-#include <sys/types.h>
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
 
-int
-main ()
-{
-struct ifnet test; test.if_mtu = 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_IFNET_NEEDS_KERNEL=no
+
+ac_safe_struct=`echo "arphd" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "at_next" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for arphd.at_next" >&5
+echo $ECHO_N "checking for arphd.at_next... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         if test "$ac_cv_IFNET_NEEDS_KERNEL" = unknown ; then
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-#define _KERNEL 1
-#include <sys/types.h>
+
 #ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
 #endif
-#ifdef HAVE_SYS_SOCKET_H
+#include <sys/types.h>
 #include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
 #endif
-#ifdef HAVE_NET_IF_H
 #include <net/if.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
 #endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
+#if HAVE_NETINET_IF_ETHER_H
+#include <netinet/if_ether.h>
 #endif
 
+
 int
 main ()
 {
-struct ifnet test; test.if_mtu = 0;
+
+struct arphd testit;
+testit.at_next $defineit;
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_IFNET_NEEDS_KERNEL=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_IFNET_NEEDS_KERNEL" >&5
-$as_echo "$ac_cv_IFNET_NEEDS_KERNEL" >&6; }
 
-if test "x$ac_cv_IFNET_NEEDS_KERNEL" = "xyes"; then
 
-$as_echo "#define NETSNMP_IFNET_NEEDS_KERNEL 1" >>confdefs.h
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-#       Does "struct ifnet" need _KERNEL_STRUCTURES defined?       (DragonFly 3)
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if _KERNEL_STRUCTURES needs to be defined for if_mtu" >&5
-$as_echo_n "checking if _KERNEL_STRUCTURES needs to be defined for if_mtu... " >&6; }
-if ${ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+
+ac_safe_struct=`echo "swdevt" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "sw_nblksenabled" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for swdevt.sw_nblksenabled" >&5
+echo $ECHO_N "checking for swdevt.sw_nblksenabled... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
 else
-  ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES=unknown
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
+
+#if HAVE_SYS_TYPES_H
 #include <sys/types.h>
+#endif
 #ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
 #endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
+#if HAVE_SYS_CONF_H
+#include <sys/conf.h>
 #endif
 
+
 int
 main ()
 {
-struct ifnet test; test.if_mtu = 0;
+
+struct swdevt testit;
+testit.sw_nblksenabled $defineit;
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES=no
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+
+
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
+
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+
+
+
+ac_safe_struct=`echo "statvfs" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "mnt_dir" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for statvfs.mnt_dir" >&5
+echo $ECHO_N "checking for statvfs.mnt_dir... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         if test "$ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES" = unknown ; then
-         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-#define _KERNEL_STRUCTURES 1
-#include <sys/types.h>
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
+
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
 #endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
 #endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
+#if HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
 #endif
 
+
 int
 main ()
 {
-struct ifnet test; test.if_mtu = 0;
+
+struct statvfs testit;
+testit.mnt_dir $defineit;
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-         fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES" >&5
-$as_echo "$ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES" >&6; }
 
-if test "x$ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES" = "xyes"; then
 
-$as_echo "#define NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES 1" >>confdefs.h
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 
-#       struct ifaddr
-#   Not-Used:
-#
-ac_fn_c_check_member "$LINENO" "struct ifaddr" "ifa_next" "ac_cv_member_struct_ifaddr_ifa_next" "
 
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
+
+
+ac_safe_struct=`echo "statvfs" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "f_frsize" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for statvfs.f_frsize" >&5
+echo $ECHO_N "checking for statvfs.f_frsize... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
 #endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
 #endif
+#if HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
 #endif
 
-    $ac_includes_default
 
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
+int
+main ()
+{
+
+struct statvfs testit;
+testit.f_frsize $defineit;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
 
-"
-if test "x$ac_cv_member_struct_ifaddr_ifa_next" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFADDR_IFA_NEXT 1
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
-
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 
-#       struct ifnet
-#         (Broken on FreeBSD - #define'd in <net/if.h>)
-#   Agent:   (?or Not-Used?)
-#
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_addrlist" "ac_cv_member_struct_ifnet_if_addrlist" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
-#endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_addrlist" = xyes; then :
+ac_safe_struct=`echo "statfs" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "f_frsize" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_ADDRLIST 1
+echo "$as_me:$LINENO: checking for statfs.f_frsize" >&5
+echo $ECHO_N "checking for statfs.f_frsize... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_addrhead.tqh_first" "ac_cv_member_struct_ifnet_if_addrhead_tqh_first" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
 #endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
 #endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
+#if HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
 #endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
+int
+main ()
+{
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_addrhead_tqh_first" = xyes; then :
+struct statfs testit;
+testit.f_frsize $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_ADDRHEAD_TQH_FIRST 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-
+eval "${ac_safe_all}=no"
 fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_baudrate" "ac_cv_member_struct_ifnet_if_baudrate" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
-#endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
-
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
+fi
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_baudrate" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_BAUDRATE 1
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
-
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_baudrate.ifs_value" "ac_cv_member_struct_ifnet_if_baudrate_ifs_value" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
-#endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_baudrate_ifs_value" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_BAUDRATE_IFS_VALUE 1
-_ACEOF
 
+ac_safe_struct=`echo "statvfs" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "f_files" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for statvfs.f_files" >&5
+echo $ECHO_N "checking for statvfs.f_files... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_ibytes" "ac_cv_member_struct_ifnet_if_ibytes" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
 #endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
 #endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
+#if HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
 #endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
+int
+main ()
+{
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_ibytes" = xyes; then :
+struct statvfs testit;
+testit.f_files $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_IBYTES 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_imcasts" "ac_cv_member_struct_ifnet_if_imcasts" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
-#endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_imcasts" = xyes; then :
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_IMCASTS 1
-_ACEOF
 
 
-fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_iqdrops" "ac_cv_member_struct_ifnet_if_iqdrops" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
-#endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
+ac_safe_struct=`echo "statfs" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "f_files" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_iqdrops" = xyes; then :
+echo "$as_me:$LINENO: checking for statfs.f_files" >&5
+echo $ECHO_N "checking for statfs.f_files... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_IQDROPS 1
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_lastchange.tv_sec" "ac_cv_member_struct_ifnet_if_lastchange_tv_sec" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
 #endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
 #endif
-#ifdef HAVE_SYS_TYPES_H
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
 #include <sys/types.h>
 #endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
 #endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
+int
+main ()
+{
+
+struct statfs testit;
+testit.f_files $defineit;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_lastchange_tv_sec" = xyes; then :
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_SEC 1
+fi
+
+
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+
 
+
+ac_safe_struct=`echo "statfs" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "f_ffree" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for statfs.f_ffree" >&5
+echo $ECHO_N "checking for statfs.f_ffree... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_lastchange.tv_nsec" "ac_cv_member_struct_ifnet_if_lastchange_tv_nsec" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
 #endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
 #endif
-#ifdef HAVE_SYS_TYPES_H
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
 #include <sys/types.h>
 #endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
 #endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
+int
+main ()
+{
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_lastchange_tv_nsec" = xyes; then :
+struct statfs testit;
+testit.f_ffree $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_NSEC 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_mtu" "ac_cv_member_struct_ifnet_if_mtu" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
+
+
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
+
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+
+
+
+ac_safe_struct=`echo "statfs" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "f_favail" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for statfs.f_favail" >&5
+echo $ECHO_N "checking for statfs.f_favail... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
 #endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
 #endif
-#ifdef HAVE_SYS_TYPES_H
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
 #include <sys/types.h>
 #endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
 #endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
+int
+main ()
+{
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_mtu" = xyes; then :
+struct statfs testit;
+testit.f_favail $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_MTU 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_noproto" "ac_cv_member_struct_ifnet_if_noproto" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
-#endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
+
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+
+
+
+ac_safe_struct=`echo "nlist" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "n_value" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for nlist.n_value" >&5
+echo $ECHO_N "checking for nlist.n_value... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#if HAVE_NLIST_H
+#include <nlist.h>
 #endif
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_noproto" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_NOPROTO 1
+int
+main ()
+{
+
+struct nlist testit;
+testit.n_value $defineit;
+
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_obytes" "ac_cv_member_struct_ifnet_if_obytes" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
-#endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_obytes" = xyes; then :
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_OBYTES 1
-_ACEOF
 
 
-fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_omcasts" "ac_cv_member_struct_ifnet_if_omcasts" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
-#endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
+# struct nlist64 (IRIX)
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
+ac_safe_struct=`echo "nlist64" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "n_value" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_omcasts" = xyes; then :
+echo "$as_me:$LINENO: checking for nlist64.n_value" >&5
+echo $ECHO_N "checking for nlist64.n_value... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_OMCASTS 1
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_speed" "ac_cv_member_struct_ifnet_if_speed" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
+#if HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
+#if HAVE_NLIST_H
+#include <nlist.h>
 #endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
+int
+main ()
+{
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_speed" = xyes; then :
+struct nlist64 testit;
+testit.n_value $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_SPEED 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_type" "ac_cv_member_struct_ifnet_if_type" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
-#endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_type" = xyes; then :
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_TYPE 1
+
+
+# check struct ipstat for various things
+
+
+ac_safe_struct=`echo "ipstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ips_cantforward" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for ipstat.ips_cantforward" >&5
+echo $ECHO_N "checking for ipstat.ips_cantforward... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-fi
-ac_fn_c_check_member "$LINENO" "struct ifnet" "if_xname" "ac_cv_member_struct_ifnet_if_xname" "
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
 #endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
 #endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. \"en\" or \"lo\" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
 
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
 
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
+int
+main ()
+{
 
-"
-if test "x$ac_cv_member_struct_ifnet_if_xname" = xyes; then :
+struct ipstat testit;
+testit.ips_cantforward $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_IFNET_IF_XNAME 1
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
 
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
+
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+
+
+
+ac_safe_struct=`echo "ipstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ips_cantfrag" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for ipstat.ips_cantfrag" >&5
+echo $ECHO_N "checking for ipstat.ips_cantfrag... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-##
-#   rtentry structure checks:
-##
 
-# Check struct rtentry for common fields
-#   Agent:
-#
-ac_fn_c_check_member "$LINENO" "struct rtentry" "rt_dst" "ac_cv_member_struct_rtentry_rt_dst" "
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
 #include <sys/types.h>
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#include <sys/socket.h>
-#undef KERNEL
-#undef _KERNEL
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
 #endif
-#ifdef HAVE_NET_ROUTE_H
-#include <net/route.h>
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
 #endif
 
-"
-if test "x$ac_cv_member_struct_rtentry_rt_dst" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_RTENTRY_RT_DST 1
+int
+main ()
+{
+
+struct ipstat testit;
+testit.ips_cantfrag $defineit;
+
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-ac_fn_c_check_member "$LINENO" "struct rtentry" "rt_hash" "ac_cv_member_struct_rtentry_rt_hash" "
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <sys/types.h>
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#include <sys/socket.h>
-#undef KERNEL
-#undef _KERNEL
-#endif
-#ifdef HAVE_NET_ROUTE_H
-#include <net/route.h>
-#endif
 
-"
-if test "x$ac_cv_member_struct_rtentry_rt_hash" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_RTENTRY_RT_HASH 1
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
 
+
+
+
+ac_safe_struct=`echo "ipstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ips_delivered" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for ipstat.ips_delivered" >&5
+echo $ECHO_N "checking for ipstat.ips_delivered... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-ac_fn_c_check_member "$LINENO" "struct rtentry" "rt_next" "ac_cv_member_struct_rtentry_rt_next" "
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
 #include <sys/types.h>
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#include <sys/socket.h>
-#undef KERNEL
-#undef _KERNEL
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
 #endif
-#ifdef HAVE_NET_ROUTE_H
-#include <net/route.h>
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
 #endif
 
-"
-if test "x$ac_cv_member_struct_rtentry_rt_next" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_RTENTRY_RT_NEXT 1
+int
+main ()
+{
+
+struct ipstat testit;
+testit.ips_delivered $defineit;
+
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-ac_fn_c_check_member "$LINENO" "struct rtentry" "rt_refcnt" "ac_cv_member_struct_rtentry_rt_refcnt" "
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <sys/types.h>
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#include <sys/socket.h>
-#undef KERNEL
-#undef _KERNEL
-#endif
-#ifdef HAVE_NET_ROUTE_H
-#include <net/route.h>
-#endif
 
-"
-if test "x$ac_cv_member_struct_rtentry_rt_refcnt" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_RTENTRY_RT_REFCNT 1
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+
+
+
+ac_safe_struct=`echo "ipstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ips_fragdropped" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for ipstat.ips_fragdropped" >&5
+echo $ECHO_N "checking for ipstat.ips_fragdropped... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-ac_fn_c_check_member "$LINENO" "struct rtentry" "rt_unit" "ac_cv_member_struct_rtentry_rt_unit" "
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
 #include <sys/types.h>
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#include <sys/socket.h>
-#undef KERNEL
-#undef _KERNEL
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
 #endif
-#ifdef HAVE_NET_ROUTE_H
-#include <net/route.h>
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
 #endif
 
-"
-if test "x$ac_cv_member_struct_rtentry_rt_unit" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_RTENTRY_RT_UNIT 1
+int
+main ()
+{
+
+struct ipstat testit;
+testit.ips_fragdropped $defineit;
+
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-ac_fn_c_check_member "$LINENO" "struct rtentry" "rt_use" "ac_cv_member_struct_rtentry_rt_use" "
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <sys/types.h>
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#include <sys/socket.h>
-#undef KERNEL
-#undef _KERNEL
-#endif
-#ifdef HAVE_NET_ROUTE_H
-#include <net/route.h>
-#endif
 
-"
-if test "x$ac_cv_member_struct_rtentry_rt_use" = xyes; then :
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_RTENTRY_RT_USE 1
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
-
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 
 
-# Check for BSD 4.3 vs 4.4 struct rtentry
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking type of rtentry structure" >&5
-$as_echo_n "checking type of rtentry structure... " >&6; }
-if ${ac_cv_RTENTRY_TYPE+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+
+ac_safe_struct=`echo "ipstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ips_fragtimeout" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for ipstat.ips_fragtimeout" >&5
+echo $ECHO_N "checking for ipstat.ips_fragtimeout... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
-        # BSD 4.4 compatible structure
-        #    ('rt_nodes' array)
-        #
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
+
 #include <sys/types.h>
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
 #endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
 #endif
-#include <sys/socket.h>
-#undef KERNEL
-#undef _KERNEL
-#include <net/route.h>
+
 
 int
 main ()
 {
 
-
-#ifndef HAVE_STRUCT_RTENTRY_RT_DST
-#define rt_dst rt_nodes->rn_key
-#endif
-
-  struct rtentry rt;
-  rt.rt_nodes[0].rn_flags = 1;
-  rt.rt_dst;
+struct ipstat testit;
+testit.ips_fragtimeout $defineit;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_RTENTRY_TYPE="BSD-4.4"
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-        if test "x$ac_cv_RTENTRY_TYPE" = "x"; then
-        # BSD 4.3 compatible structure
-        #    ('rt_hash')
-        #
-        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+fi
+
+
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
+
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+
+
+
+ac_safe_struct=`echo "ipstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ips_fragmented" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for ipstat.ips_fragmented" >&5
+echo $ECHO_N "checking for ipstat.ips_fragmented... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
+
 #include <sys/types.h>
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
 #endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
 #endif
-#include <sys/socket.h>
-#undef KERNEL
-#undef _KERNEL
-#include <net/route.h>
+
 
 int
 main ()
 {
 
-
-struct rtentry rt;
-rt.rt_hash;
+struct ipstat testit;
+testit.ips_fragmented $defineit;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_RTENTRY_TYPE="BSD-4.3"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-        fi
-
-        if test "x$ac_cv_RTENTRY_TYPE" = "x"; then
-        # Neither BSD 4.3 nor 4.4 compatible structure
-        #
-            ac_cv_RTENTRY_TYPE="unknown"
-        fi
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_RTENTRY_TYPE" >&5
-$as_echo "$ac_cv_RTENTRY_TYPE" >&6; }
-
-if test "x$ac_cv_RTENTRY_TYPE" = "xBSD-4.4"; then
-
-$as_echo "#define RTENTRY_4_4 1" >>confdefs.h
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
-#    Check for ortentry                                 (Alpha)
-#
-if test "x$ac_cv_RTENTRY_TYPE" = "xunknown"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct rtentry" >&5
-$as_echo_n "checking for struct rtentry... " >&6; }
-if ${ac_cv_struct_rtentry+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#define KERNEL
-#include <net/route.h>
 
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "ortentry" >/dev/null 2>&1; then :
-  ac_cv_struct_rtentry=ortentry
-else
-  ac_cv_struct_rtentry=rtentry
-fi
-rm -f conftest*
 
-        if test "x$ac_cv_struct_rtentry" = "xrtentry" ; then
-             ac_cv_struct_rtentry="rtentry"
-        else
-             ac_cv_struct_rtentry="ortentry"
-        fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_rtentry" >&5
-$as_echo "$ac_cv_struct_rtentry" >&6; }
 else
-    RTENTRY_TYPE="rtentry"
-    ac_cv_struct_rtentry="rtentry"
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-if test "x$ac_cv_struct_rtentry" = "x"; then
-    ac_cv_struct_rtentry=rtentry
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define RTENTRY struct ${ac_cv_struct_rtentry}
-_ACEOF
 
 
 
-# -*- autoconf -*-
-#########################################
-##
-# Miscellaneous Operating-System characteristics
-##
-#########################################
 
+ac_safe_struct=`echo "ipstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ips_localout" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-#	Determine how to test for character devices
-#	[We assume that /dev/null does actually exist!]
-#
-if test -c /dev/null; then
-    CDEV_TEST_FLAG="-c"
-elif test -f /dev/null; then
-    CDEV_TEST_FLAG="-f"
+echo "$as_me:$LINENO: checking for ipstat.ips_localout" >&5
+echo $ECHO_N "checking for ipstat.ips_localout... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Can't reliably detect character devices" >&5
-$as_echo "$as_me: WARNING: Can't reliably detect character devices" >&2;}
-    # Is it actually sensible to fall back on "test -f" ?
-    CDEV_TEST_FLAG="-f"
-fi
 
-#       Kernel Location
-#	    used in library/agent
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of system kernel" >&5
-$as_echo_n "checking for location of system kernel... " >&6; }
-if ${ac_cv_KERNEL_LOC+:} false; then :
-  $as_echo_n "(cached) " >&6
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
 else
-  ac_cv_KERNEL_LOC="unknown"
-    for i in /vmunix /hp-ux /stand/vmunix /dev/ksyms /kernel/unix /kernel/genunix /netbsd /unix /kernel /bsd /mach_kernel /boot/kernel/kernel
-    do
-        if test $CDEV_TEST_FLAG $i; then
-            ac_cv_KERNEL_LOC="$i"
-            break;
-        fi
-    done
-    #
-    # In principle, this test is meant to provide a default path to the kernel
-    # In practice, the test is broken and the kernel path is set to "unknown"
-    #
-    # Note that on certain systems (e.g. some Linux distributions),
-    #    it is impossible to predict the name of the kernel,
-    #    particularly if it includes the kernel version, architecture, etc
-    #
-    # Since this default will never actually be used, then don't try to set it
-    #
-    if test $i = "unknown"; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Can't find system kernel... hopefully this won't be needed!" >&5
-$as_echo "$as_me: WARNING: Can't find system kernel... hopefully this won't be needed!" >&2;}
-    fi
-
+  defineit=""
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_KERNEL_LOC" >&5
-$as_echo "$ac_cv_KERNEL_LOC" >&6; }
-
-cat >>confdefs.h <<_ACEOF
-#define KERNEL_LOC "$ac_cv_KERNEL_LOC"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
 _ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+
 
-#       /dev/kmem existence
-#	    used in agent only
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /dev/kmem" >&5
-$as_echo_n "checking for /dev/kmem... " >&6; }
-if ${ac_cv_HAVE_KMEM+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test $CDEV_TEST_FLAG /dev/kmem; then
-        ac_cv_HAVE_KMEM="/dev/kmem"
-    fi
+int
+main ()
+{
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_HAVE_KMEM" >&5
-$as_echo "$ac_cv_HAVE_KMEM" >&6; }
-#
-#  Note that it's OK if this device is not found
-#
-if test "x$ac_cv_HAVE_KMEM" = "x/dev/kmem"; then
+struct ipstat testit;
+testit.ips_localout $defineit;
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_KMEM "$ac_cv_HAVE_KMEM"
+  ;
+  return 0;
+}
 _ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
 fi
-
-
-#       Swap device Location
-#           (/dev/dmem or /dev/drum)
-#	    used in agent only
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of swap device" >&5
-$as_echo_n "checking for location of swap device... " >&6; }
-if ${ac_cv_DMEM_LOC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test $CDEV_TEST_FLAG /dev/dmem; then
-        ac_cv_DMEM_LOC="/dev/dmem"
-    elif test $CDEV_TEST_FLAG /dev/drum; then
-        ac_cv_DMEM_LOC="/dev/drum"
-    else
-        ac_cv_DMEM_LOC="none"
-    fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_DMEM_LOC" >&5
-$as_echo "$ac_cv_DMEM_LOC" >&6; }
-#
-#  Note that it's OK if this device is not found
-#
-if test "x$ac_cv_DMEM_LOC" != "xnone"; then
 
-cat >>confdefs.h <<_ACEOF
-#define DMEM_LOC "$ac_cv_DMEM_LOC"
+
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
 
-#       Mount table Location
-#	    used in agent only
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for mount table location" >&5
-$as_echo_n "checking for mount table location... " >&6; }
-if ${ac_cv_ETC_MNTTAB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_ETC_MNTTAB="${with_mnttab:-unknown}"
-    if test "$ac_cv_ETC_MNTTAB" = "unknown"; then
-        for i in /etc/mnttab /etc/mtab /etc/filesystems /dev/mnttab
-        do
-            if test -f $i -o -c $i; then
-                ac_cv_ETC_MNTTAB="$i"
-                break;
-            fi
-        done
-    fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_ETC_MNTTAB" >&5
-$as_echo "$ac_cv_ETC_MNTTAB" >&6; }
 
-cat >>confdefs.h <<_ACEOF
-#define ETC_MNTTAB "$ac_cv_ETC_MNTTAB"
-_ACEOF
 
 
+ac_safe_struct=`echo "ipstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ips_noproto" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-#       Printing
-#	    used in agent only
-#
-# Extract the first word of "lpstat", so it can be a program name with args.
-set dummy lpstat; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_LPSTAT_PATH+:} false; then :
-  $as_echo_n "(cached) " >&6
+echo "$as_me:$LINENO: checking for ipstat.ips_noproto" >&5
+echo $ECHO_N "checking for ipstat.ips_noproto... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case $LPSTAT_PATH in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_LPSTAT_PATH="$LPSTAT_PATH" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_LPSTAT_PATH="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-  ;;
-esac
-fi
-LPSTAT_PATH=$ac_cv_path_LPSTAT_PATH
-if test -n "$LPSTAT_PATH"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LPSTAT_PATH" >&5
-$as_echo "$LPSTAT_PATH" >&6; }
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  defineit=""
 fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
-if test x$LPSTAT_PATH != x; then
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
 
-cat >>confdefs.h <<_ACEOF
-#define LPSTAT_PATH "$LPSTAT_PATH"
-_ACEOF
 
+int
+main ()
+{
+
+struct ipstat testit;
+testit.ips_noproto $defineit;
 
-$as_echo "#define HAVE_LPSTAT 1" >>confdefs.h
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
 fi
-if test -r /etc/printcap; then
-
-$as_echo "#define HAVE_PRINTCAP 1" >>confdefs.h
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
 
-#       Check ps args
-#	    used in agent only
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for correct flags to ps" >&5
-$as_echo_n "checking for correct flags to ps... " >&6; }
-if ${ac_cv_ps_flags+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
-if test "`($PSPROG -e 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
-    ac_cv_ps_flags="-e"
-elif test "`($PSPROG -el 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
-    ac_cv_ps_flags="-el"
-elif test "`($PSPROG acx 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
-    ac_cv_ps_flags="acx"
-elif test "`($PSPROG -acx 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
-    ac_cv_ps_flags="-acx"
-elif test "`($PSPROG -o pid,tt,state,time,ucomm 2>&1) | $EGREP ' ps *$' | awk '{print $NF}'`" = "ps" ; then
-    ac_cv_ps_flags="-o pid,tt,state,time,ucomm"
-elif test "`($PSPROG ax 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
-    ac_cv_ps_flags="ax"
-elif test "x$PARTIALTARGETOS" = "xcygwin"; then
-    ac_cv_ps_flags="-e"
-elif test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
-    ac_cv_ps_flags="-e"
 else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to determine valid ps flags...  defaulting..." >&5
-$as_echo "$as_me: WARNING: Unable to determine valid ps flags...  defaulting..." >&2;}
-    ac_cv_ps_flags="-acx"
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_ps_flags" >&5
-$as_echo "$ac_cv_ps_flags" >&6; }
 
-PSCMD="$PSPROG $ac_cv_ps_flags"
 
 
-cat >>confdefs.h <<_ACEOF
-#define PSCMD "$PSPROG $ac_cv_ps_flags"
-_ACEOF
 
+ac_safe_struct=`echo "ipstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ips_noroute" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
+echo "$as_me:$LINENO: checking for ipstat.ips_noroute" >&5
+echo $ECHO_N "checking for ipstat.ips_noroute... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-##
-#   System/Compilation-related
-##
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
 
-#       Test for SIGHUP
-#
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIGHUP" >&5
-$as_echo_n "checking for SIGHUP... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <signal.h>
 int
 main ()
 {
-return SIGHUP
+
+struct ipstat testit;
+testit.ips_noroute $defineit;
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  netsnmp_have_sighup=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  netsnmp_have_sighup=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netsnmp_have_sighup" >&5
-$as_echo "$netsnmp_have_sighup" >&6; }
-if test "x$netsnmp_have_sighup" = xyes; then
-
-$as_echo "#define HAVE_SIGHUP 1" >>confdefs.h
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
 
-#       Check whether sysctl() is usable
-#	    used in library/agent
-#
-if test $cross_compiling = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Can't check sysctl, manually define NETSNMP_CAN_USE_SYSCTL if platform support available" >&5
-$as_echo "$as_me: WARNING: Can't check sysctl, manually define NETSNMP_CAN_USE_SYSCTL if platform support available" >&2;}
-else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if sysctl can read kernel information" >&5
-$as_echo_n "checking if sysctl can read kernel information... " >&6; }
-if ${ac_cv_NETSNMP_CAN_USE_SYSCTL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-  ac_cv_NETSNMP_CAN_USE_SYSCTL=no
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
+
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-#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
-#if HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-#include <sys/types.h>
-#if HAVE_SYS_SYSCTL_H
-# include <sys/sysctl.h>
-#endif
 
-main() {
-  int                 mib[2];
-  size_t              len;
-  struct timeval boottime;
 
-  mib[0] = CTL_KERN;
-  mib[1] = KERN_BOOTTIME;
 
-  len = sizeof(boottime);
-  sysctl(mib, 2, &boottime, &len, NULL, NULL);
-  if (boottime.tv_sec != 0)
-    exit(0);
-  else
-    exit(1);
-}
 
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_NETSNMP_CAN_USE_SYSCTL=yes
+ac_safe_struct=`echo "ipstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ips_odropped" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for ipstat.ips_odropped" >&5
+echo $ECHO_N "checking for ipstat.ips_odropped... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_NETSNMP_CAN_USE_SYSCTL=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
 
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_NETSNMP_CAN_USE_SYSCTL" >&5
-$as_echo "$ac_cv_NETSNMP_CAN_USE_SYSCTL" >&6; }
-fi
-
-if test "x$ac_cv_NETSNMP_CAN_USE_SYSCTL" = "xyes"; then
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-$as_echo "#define NETSNMP_CAN_USE_SYSCTL 1" >>confdefs.h
 
-fi
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
 
 
-#   Check whether TCP timer constants are indeed constant
-#       or depend on the kernel clock tick 'hz'.        (FreeBSD 4.x)
-#
-#       If the latter, then we will need to have a local
-#       variable 'hz' defined and with a suitable value,
-#       whenever we want to  use one one of these 'constants'.
-#
-# 	    used in agent only
-#
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether TCP timers depend on 'hz'" >&5
-$as_echo_n "checking whether TCP timers depend on 'hz'... " >&6; }
-if ${ac_cv_TCPTV_NEEDS_HZ+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+int
+main ()
+{
 
-#include <netinet/tcp_timer.h>
-TCPTV_SRTTDFLT
+struct ipstat testit;
+testit.ips_odropped $defineit;
 
+  ;
+  return 0;
+}
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "hz" >/dev/null 2>&1; then :
-  ac_cv_TCPTV_NEEDS_HZ=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  ac_cv_TCPTV_NEEDS_HZ=no
-fi
-rm -f conftest*
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "${ac_safe_all}=no"
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_TCPTV_NEEDS_HZ" >&5
-$as_echo "$ac_cv_TCPTV_NEEDS_HZ" >&6; }
-
-if test "x$ac_cv_TCPTV_NEEDS_HZ" = "xyes"; then
-
-$as_echo "#define TCPTV_NEEDS_HZ 1" >>confdefs.h
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
 
 
-#   Check whether IP Route table is cached              (Solaris)
-#	    used in agent only
-#
-case $target_os in
-  solaris*)
-    #    Header checks                                  (Solaris 2.6/7)
-    #
-    for ac_header in inet/common.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "inet/common.h" "ac_cv_header_inet_common_h" "$ac_includes_default"
-if test "x$ac_cv_header_inet_common_h" = xyes; then :
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
   cat >>confdefs.h <<_ACEOF
-#define HAVE_INET_COMMON_H 1
+#define $ac_uc_define 1
 _ACEOF
 
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
 
-done
 
-    for ac_header in inet/ip.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "inet/ip.h" "ac_cv_header_inet_ip_h" "$ac_includes_default
 
-#if HAVE_SYS_STREAM_H
-#include <sys/stream.h>
-#endif
-#if HAVE_INET_COMMON_H
-#include <inet/common.h>
-#endif
 
-"
-if test "x$ac_cv_header_inet_ip_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_INET_IP_H 1
-_ACEOF
- ac_inet_ip_h=yes
-else
-  ac_inet_ip_h=no
-fi
 
-done
+ac_safe_struct=`echo "ipstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ips_ofragments" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
-    if test $ac_inet_ip_h = yes ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mib2_ipRouteEntry_t in inet/mib2.h" >&5
-$as_echo_n "checking for mib2_ipRouteEntry_t in inet/mib2.h... " >&6; }
-if ${ac_cv_mib2_ipRouteEntry_t+:} false; then :
-  $as_echo_n "(cached) " >&6
+echo "$as_me:$LINENO: checking for ipstat.ips_ofragments" >&5
+echo $ECHO_N "checking for ipstat.ips_ofragments... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-#if HAVE_INET_MIB2_H
-#include <inet/mib2.h>
+
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
 #endif
 
+
 int
 main ()
 {
 
-  mib2_ipRouteEntry_t testit;
-  if(sizeof(testit))
-    return(0);
+struct ipstat testit;
+testit.ips_ofragments $defineit;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_mib2_ipRouteEntry_t=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  ac_cv_mib2_ipRouteEntry_t=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
+
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_mib2_ipRouteEntry_t" >&5
-$as_echo "$ac_cv_mib2_ipRouteEntry_t" >&6; }
 
-        if test "x$ac_cv_mib2_ipRouteEntry_t" = "xyes" ; then
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether IRE_CACHE is defined in inet/ip.h" >&5
-$as_echo_n "checking whether IRE_CACHE is defined in inet/ip.h... " >&6; }
-if ${ac_cv_ire_cache+:} false; then :
-  $as_echo_n "(cached) " >&6
+
+
+
+
+ac_safe_struct=`echo "ipstat" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "ips_reassembled" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+
+echo "$as_me:$LINENO: checking for ipstat.ips_reassembled" >&5
+echo $ECHO_N "checking for ipstat.ips_reassembled... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-#if HAVE_INET_IP_H
-#include <inet/ip.h>
+
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
 #endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+
 
 int
 main ()
 {
 
-  int testit=IRE_CACHE;
-  if(testit)
-    return(0);
+struct ipstat testit;
+testit.ips_reassembled $defineit;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_ire_cache=yes
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
 else
-  ac_cv_ire_cache=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_ire_cache" >&5
-$as_echo "$ac_cv_ire_cache" >&6; }
-        else
-            ac_cv_ire_cache=no
-        fi
-
-        if test "x$ac_cv_ire_cache" = "xyes" ; then
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-$as_echo "#define HAVE_DEFINED_IRE_CACHE /**/" >>confdefs.h
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-        else
-            { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: It seems that you have inet/ip.h, but IRE_CACHE is not defined. \
-That means that your query to ipRoute MIB could generate over 20k results! \
-And this can be very slow." >&5
-$as_echo "$as_me: WARNING: It seems that you have inet/ip.h, but IRE_CACHE is not defined. \
-That means that your query to ipRoute MIB could generate over 20k results! \
-And this can be very slow." >&2;}
-        fi
-    fi         # "test $ac_inet_ip_h = yes"
-    ;;
-esac
+fi
 
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
 
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
 _ACEOF
 
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-      if test ! -f "$cache_file" || test -h "$cache_file"; then
-	cat confcache >"$cache_file"
-      else
-        case $cache_file in #(
-        */* | ?:*)
-	  mv -f confcache "$cache_file"$$ &&
-	  mv -f "$cache_file"$$ "$cache_file" ;; #(
-        *)
-	  mv -f confcache "$cache_file" ;;
-	esac
-      fi
-    fi
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
 fi
-rm -f confcache
 
-#
-# define the agent libraries variables
-#
 
 
+# check for the des_ks_struct.weak_key attribute, which indicates the
+# older openssl version is being used.
+if test "x$ac_cv_header_openssl_des_h" = "xyes" ; then
+
+
+ac_safe_struct=`echo "des_ks_struct" | sed 'y%./+-%__p_%'`
+ac_safe_member=`echo "weak_key" | sed 'y%./+-%__p_%'`
+ac_safe_all="ac_cv_struct_${ac_safe_struct}_has_${ac_safe_member}"
+  ac_uc_define=STRUCT_`echo "${ac_safe_struct}_HAS_${ac_safe_member}" | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
 
+echo "$as_me:$LINENO: checking for des_ks_struct.weak_key" >&5
+echo $ECHO_N "checking for des_ks_struct.weak_key... $ECHO_C" >&6
+if eval "test \"\${$ac_safe_all+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+if test "x" = "x"; then
+  defineit="= 0"
+elif test "x" = "xno"; then
+  defineit=""
+else
+  defineit=""
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 
+#include <openssl/des.h>
 
 
+int
+main ()
+{
 
+struct des_ks_struct testit;
+testit.weak_key $defineit;
 
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "${ac_safe_all}=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_config_files="$ac_config_files Makefile:Makefile.top:Makefile.in:Makefile.rules"
+eval "${ac_safe_all}=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
-ac_config_files="$ac_config_files snmplib/Makefile:Makefile.top:snmplib/Makefile.in:Makefile.rules:snmplib/Makefile.depend"
+fi
 
-ac_config_files="$ac_config_files apps/Makefile:Makefile.top:apps/Makefile.in:Makefile.rules:apps/Makefile.depend"
 
-ac_config_files="$ac_config_files apps/snmpnetstat/Makefile:Makefile.top:apps/snmpnetstat/Makefile.in:Makefile.rules:apps/snmpnetstat/Makefile.depend"
+if eval "test \"x$`echo ${ac_safe_all}`\" = \"xyes\""; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  cat >>confdefs.h <<_ACEOF
+#define $ac_uc_define 1
+_ACEOF
 
-ac_config_files="$ac_config_files agent/Makefile:Makefile.top:agent/Makefile.in:Makefile.rules:agent/Makefile.depend"
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-ac_config_files="$ac_config_files agent/helpers/Makefile:Makefile.top:agent/helpers/Makefile.in:Makefile.rules:agent/helpers/Makefile.depend"
 
-ac_config_files="$ac_config_files agent/mibgroup/Makefile:Makefile.top:agent/mibgroup/Makefile.in:Makefile.rules:agent/mibgroup/Makefile.depend"
+fi
 
-ac_config_files="$ac_config_files local/Makefile:Makefile.top:local/Makefile.in:Makefile.rules"
+# attempt to figure out if sysctl is usable
 
-ac_config_files="$ac_config_files testing/Makefile:Makefile.top:testing/Makefile.in"
+if test $cross_compiling = yes; then
+  { echo "$as_me:$LINENO: WARNING: Can't check sysctl, manually define NETSNMP_CAN_USE_SYSCTL if platform support available" >&5
+echo "$as_me: WARNING: Can't check sysctl, manually define NETSNMP_CAN_USE_SYSCTL if platform support available" >&2;}
+else
+  echo "$as_me:$LINENO: checking if sysctl can read kernel information" >&5
+echo $ECHO_N "checking if sysctl can read kernel information... $ECHO_C" >&6
+if test "${ac_cv_NETSNMP_CAN_USE_SYSCTL+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_NETSNMP_CAN_USE_SYSCTL=no
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-ac_config_files="$ac_config_files man/Makefile:Makefile.top:man/Makefile.in:Makefile.rules"
+#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
+#if HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+#include <sys/types.h>
+#if HAVE_SYS_SYSCTL_H
+# include <sys/sysctl.h>
+#endif
 
-ac_config_files="$ac_config_files mibs/Makefile:Makefile.top:mibs/Makefile.in:Makefile.rules"
+main() {
+  int                 mib[2];
+  size_t              len;
+  struct timeval boottime;
 
-ac_config_files="$ac_config_files net-snmp-config:net-snmp-config.in"
+  mib[0] = CTL_KERN;
+  mib[1] = KERN_BOOTTIME;
 
-ac_config_files="$ac_config_files net-snmp-create-v3-user:net-snmp-create-v3-user.in"
+  len = sizeof(boottime);
+  sysctl(mib, 2, &boottime, &len, NULL, NULL);
+  if (boottime.tv_sec != 0)
+    exit(0);
+  else
+    exit(1);
+}
 
-ac_config_files="$ac_config_files dist/generation-scripts/gen-variables:dist/generation-scripts/gen-variables.in"
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_NETSNMP_CAN_USE_SYSCTL=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+( exit $ac_status )
+ac_cv_NETSNMP_CAN_USE_SYSCTL=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_NETSNMP_CAN_USE_SYSCTL" >&5
+echo "${ECHO_T}$ac_cv_NETSNMP_CAN_USE_SYSCTL" >&6
+fi
 
-ac_config_commands="$ac_config_commands default"
+if test "x$ac_cv_NETSNMP_CAN_USE_SYSCTL" = "xyes"; then
+  cat >>confdefs.h <<\_ACEOF
+#define NETSNMP_CAN_USE_SYSCTL 1
+_ACEOF
 
+fi
 
 #
-# protect PACKAGE_* variables
+# In FreeBSD 4.x, the TCP timer constants aren't.  They are defined
+# in terms of 'hz', the kernel clock tick.  In this case,
+# we need to have a local variable 'hz' in scope and set to a useful
+# value whenever we use one of these constants.
 #
+echo "$as_me:$LINENO: checking whether TCP timers depend on 'hz'" >&5
+echo $ECHO_N "checking whether TCP timers depend on 'hz'... $ECHO_C" >&6
+if test "${ac_cv_TCPTV_NEEDS_HZ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <netinet/tcp_timer.h>
+TCPTV_SRTTDFLT
 
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "hz" >/dev/null 2>&1; then
+  ac_cv_TCPTV_NEEDS_HZ=yes
+else
+  ac_cv_TCPTV_NEEDS_HZ=no
+fi
+rm -f conftest*
 
+fi
+echo "$as_me:$LINENO: result: $ac_cv_TCPTV_NEEDS_HZ" >&5
+echo "${ECHO_T}$ac_cv_TCPTV_NEEDS_HZ" >&6
 
+if test "x$ac_cv_TCPTV_NEEDS_HZ" = "xyes"; then
+  cat >>confdefs.h <<\_ACEOF
+#define TCPTV_NEEDS_HZ 1
+_ACEOF
 
+fi
 
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
 #
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
+# define the agent libraries variables
 #
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
 
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
 
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-      if test ! -f "$cache_file" || test -h "$cache_file"; then
-	cat confcache >"$cache_file"
-      else
-        case $cache_file in #(
-        */* | ?:*)
-	  mv -f confcache "$cache_file"$$ &&
-	  mv -f "$cache_file"$$ "$cache_file" ;; #(
-        *)
-	  mv -f confcache "$cache_file" ;;
-	esac
-      fi
-    fi
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
 
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 
-DEFS=-DHAVE_CONFIG_H
 
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
+#
+# Prompt for various bits of user information
+#
 
-LTLIBOBJS=$ac_ltlibobjs
+if test "x$ac_cv_user_prompt_NETSNMP_LOGFILE" = "x" -o "x$ac_cv_user_prompt_NETSNMP_SYS_LOC" = "x" -o "x$ac_cv_user_prompt_NETSNMP_SYS_CONTACT" = "x" -o "x$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" = "x"; then
+echo "$as_me:$LINENO: checking whether to prompt for values" >&5
+echo $ECHO_N "checking whether to prompt for values... $ECHO_C" >&6
+if test "${ac_cv_have_warned+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
+if test "x$defaults" = "xno"; then
+cat << EOF
 
+	 ************** Configuration Section **************
 
+	You are about to be prompted with a series of questions.  Answer
+them carefully, as they determine how the SNMP agent and related
+applications are to function.
 
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
+	After the configure script finishes, you can browse the newly
+created net-snmp-config.h file for further - less important - parameters to
+modify.  Be careful if you re-run configure though, since net-snmp-config.h
+will be overwritten.
 
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
+-Press return to continue-
+EOF
 
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
+read tmpinput
+ac_cv_have_warned="yes"
 else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
+  ac_cv_have_warned="no"
 fi
 
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
 fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
+echo "$as_me:$LINENO: result: $ac_cv_have_warned" >&5
+echo "${ECHO_T}$ac_cv_have_warned" >&6
+else
+  ac_cv_have_warned="yes"
 fi
 
+ME=`$WHOAMI`
+if test -f /etc/resolv.conf; then
+  LOC=`cat /etc/resolv.conf | grep '^domain' | tail -1 | awk '{print $NF}'`
+else
+  LOC="@no.where"
+fi
 
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
 
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
+MSG_CHECK=`echo "
 
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+*** Default SNMP Version:
 
+	Starting with Net-SNMP 5.0, you can choose the default version of
+the SNMP protocol to use when no version is given explicitly on the
+command line, or via an 'snmp.conf' file.  In the past this was set to
+SNMPv1, but you can use this to switch to SNMPv3 if desired.  SNMPv3
+will provide a more secure management environment (and thus you're
+encouraged to switch to SNMPv3), but may break existing scripts that
+rely on the old behaviour.  (Though such scripts will probably need to
+be changed to use the '-c' community flag anyway, as the SNMPv1
+command line usage has changed as well.).
+   At this prompt you can select \"1\", \"2\" (for SNMPv2c), or \"3\" as
+the default version for the command tools (snmpget, ...) to use.  This
+can always be overridden at runtime using the -v flag to the tools, or
+by using the \"defVersion\" token in your snmp.conf file.
+   Providing the --with-default-snmp-version=\"x\" parameter to ./configure
+will avoid this prompt.
 
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
+Default version of SNMP to use" | tail -1`
+echo "$as_me:$LINENO: checking $MSG_CHECK" >&5
+echo $ECHO_N "checking $MSG_CHECK... $ECHO_C" >&6
+if test "${ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
+  echo "" >&6
 
+if test "x$defaults" = "xno"; then
+echo $ECHO_N "
 
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
+*** Default SNMP Version:
+
+	Starting with Net-SNMP 5.0, you can choose the default version of
+the SNMP protocol to use when no version is given explicitly on the
+command line, or via an 'snmp.conf' file.  In the past this was set to
+SNMPv1, but you can use this to switch to SNMPv3 if desired.  SNMPv3
+will provide a more secure management environment (and thus you're
+encouraged to switch to SNMPv3), but may break existing scripts that
+rely on the old behaviour.  (Though such scripts will probably need to
+be changed to use the '-c' community flag anyway, as the SNMPv1
+command line usage has changed as well.).
+   At this prompt you can select \"1\", \"2\" (for SNMPv2c), or \"3\" as
+the default version for the command tools (snmpget, ...) to use.  This
+can always be overridden at runtime using the -v flag to the tools, or
+by using the \"defVersion\" token in your snmp.conf file.
+   Providing the --with-default-snmp-version=\"x\" parameter to ./configure
+will avoid this prompt.
 
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
+Default version of SNMP to use (3): $ECHO_C"
+read tmpinput
+if test "$tmpinput" = "" -a "3" != ""; then
+  tmpinput="3"
 fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
+eval NETSNMP_DEFAULT_SNMP_VERSION=\"$tmpinput\"
 else
-  as_dirname=false
+tmpinput="3"
+eval NETSNMP_DEFAULT_SNMP_VERSION=\"$tmpinput\"
 fi
 
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
+eval ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION=\$NETSNMP_DEFAULT_SNMP_VERSION
+echo $ECHO_N "setting $MSG_CHECK to...  $ECHO_C" >&6
 
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
 fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
+echo "$as_me:$LINENO: result: $ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" >&5
+echo "${ECHO_T}$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" >&6
+if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "none"; then
+  if test "xunquoted" = "xquoted" -o "xunquoted" = "xQUOTED"; then
+    cat >>confdefs.h <<_ACEOF
+#define NETSNMP_DEFAULT_SNMP_VERSION "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION"
+_ACEOF
+
   else
-    as_ln_s='cp -p'
+    cat >>confdefs.h <<_ACEOF
+#define NETSNMP_DEFAULT_SNMP_VERSION $ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION
+_ACEOF
+
   fi
-else
-  as_ln_s='cp -p'
 fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
 
 
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
+# we tested this above before the prompt, but the prompt may give a new value.
+if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" = "2c"; then
+  ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION="2"
 fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in #(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
+if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "1" -a "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "2" -a "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "3"; then
+  { { echo "$as_me:$LINENO: error: Illegal version number.  Only 1, 2 (for SNMPv2c) and 3 are supported." >&5
+echo "$as_me: error: Illegal version number.  Only 1, 2 (for SNMPv2c) and 3 are supported." >&2;}
+   { (exit 1); exit 1; }; }
 fi
-as_executable_p=$as_test_x
 
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+MSG_CHECK=`echo "
 
+*** System Contact Information:
 
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by Net-SNMP $as_me 5.7.2.1, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
+	Describes who should be contacted about the host the agent is
+running on.  This information is available in the MIB-II tree.  This
+can also be over-ridden using the \"syscontact\" syntax in the agent's
+configuration files.
+  Providing the --with-sys-contact=\"contact\" parameter to ./configure
+will avoid this prompt.
 
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
+System Contact Information" | tail -1`
+echo "$as_me:$LINENO: checking $MSG_CHECK" >&5
+echo $ECHO_N "checking $MSG_CHECK... $ECHO_C" >&6
+if test "${ac_cv_user_prompt_NETSNMP_SYS_CONTACT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  echo "" >&6
 
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
+if test "x$defaults" = "xno"; then
+echo $ECHO_N "
 
-_ACEOF
+*** System Contact Information:
 
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
+	Describes who should be contacted about the host the agent is
+running on.  This information is available in the MIB-II tree.  This
+can also be over-ridden using the \"syscontact\" syntax in the agent's
+configuration files.
+  Providing the --with-sys-contact=\"contact\" parameter to ./configure
+will avoid this prompt.
 
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
+System Contact Information ($ME@$LOC): $ECHO_C"
+read tmpinput
+if test "$tmpinput" = "" -a "$ME@$LOC" != ""; then
+  tmpinput="$ME@$LOC"
+fi
+eval NETSNMP_SYS_CONTACT=\"$tmpinput\"
+else
+tmpinput="$ME@$LOC"
+eval NETSNMP_SYS_CONTACT=\"$tmpinput\"
+fi
 
 
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
+eval ac_cv_user_prompt_NETSNMP_SYS_CONTACT=\$NETSNMP_SYS_CONTACT
+echo $ECHO_N "setting $MSG_CHECK to...  $ECHO_C" >&6
 
+fi
+echo "$as_me:$LINENO: result: $ac_cv_user_prompt_NETSNMP_SYS_CONTACT" >&5
+echo "${ECHO_T}$ac_cv_user_prompt_NETSNMP_SYS_CONTACT" >&6
+if test "$ac_cv_user_prompt_NETSNMP_SYS_CONTACT" != "none"; then
+  if test "xquoted" = "xquoted" -o "xquoted" = "xQUOTED"; then
+    cat >>confdefs.h <<_ACEOF
+#define NETSNMP_SYS_CONTACT "$ac_cv_user_prompt_NETSNMP_SYS_CONTACT"
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration.  Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number and configuration settings, then exit
-      --config     print configuration, then exit
-  -q, --quiet, --silent
-                   do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-      --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
-      --header=FILE[:TEMPLATE]
-                   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
+  else
+    cat >>confdefs.h <<_ACEOF
+#define NETSNMP_SYS_CONTACT $ac_cv_user_prompt_NETSNMP_SYS_CONTACT
+_ACEOF
 
-Configuration headers:
-$config_headers
+  fi
+fi
 
-Configuration commands:
-$config_commands
 
-Report bugs to <net-snmp-coders at lists.sourceforge.net>."
 
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-Net-SNMP config.status 5.7.2.1
-configured by $0, generated by GNU Autoconf 2.68,
-  with options \\"\$ac_cs_config\\"
+MSG_CHECK=`echo "
 
-Copyright (C) 2010 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
+*** System Location:
 
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
+	Describes the location of the system.  This information is
+available in the MIB-II tree.  this can also be over-ridden using the
+\"syslocation\" syntax in the agent's configuration files.
+  Providing the --with-sys-location=\"location\" parameter to ./configure
+will avoid this prompt.
 
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=?*)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  --*=)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=
-    ac_shift=:
-    ;;
-  *)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  esac
+System Location" | tail -1`
+echo "$as_me:$LINENO: checking $MSG_CHECK" >&5
+echo $ECHO_N "checking $MSG_CHECK... $ECHO_C" >&6
+if test "${ac_cv_user_prompt_NETSNMP_SYS_LOC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  echo "" >&6
 
-  case $ac_option in
-  # Handling of the options.
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
-  --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    '') as_fn_error $? "missing file argument" ;;
-    esac
-    as_fn_append CONFIG_FILES " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --he | --h)
-    # Conflict between --help and --header
-    as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
-  --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
+if test "x$defaults" = "xno"; then
+echo $ECHO_N "
 
-  # This is an error.
-  -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
+*** System Location:
 
-  *) as_fn_append ac_config_targets " $1"
-     ac_need_defaults=false ;;
+	Describes the location of the system.  This information is
+available in the MIB-II tree.  this can also be over-ridden using the
+\"syslocation\" syntax in the agent's configuration files.
+  Providing the --with-sys-location=\"location\" parameter to ./configure
+will avoid this prompt.
 
-  esac
-  shift
-done
+System Location (Unknown): $ECHO_C"
+read tmpinput
+if test "$tmpinput" = "" -a "Unknown" != ""; then
+  tmpinput="Unknown"
+fi
+eval NETSNMP_SYS_LOC=\"$tmpinput\"
+else
+tmpinput="Unknown"
+eval NETSNMP_SYS_LOC=\"$tmpinput\"
+fi
 
-ac_configure_extra_args=
 
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
+eval ac_cv_user_prompt_NETSNMP_SYS_LOC=\$NETSNMP_SYS_LOC
+echo $ECHO_N "setting $MSG_CHECK to...  $ECHO_C" >&6
 
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
-  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-  shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
-  CONFIG_SHELL='$SHELL'
-  export CONFIG_SHELL
-  exec "\$@"
 fi
-
+echo "$as_me:$LINENO: result: $ac_cv_user_prompt_NETSNMP_SYS_LOC" >&5
+echo "${ECHO_T}$ac_cv_user_prompt_NETSNMP_SYS_LOC" >&6
+if test "$ac_cv_user_prompt_NETSNMP_SYS_LOC" != "none"; then
+  if test "xquoted" = "xquoted" -o "xquoted" = "xQUOTED"; then
+    cat >>confdefs.h <<_ACEOF
+#define NETSNMP_SYS_LOC "$ac_cv_user_prompt_NETSNMP_SYS_LOC"
 _ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-  $as_echo "$ac_log"
-} >&5
 
+  else
+    cat >>confdefs.h <<_ACEOF
+#define NETSNMP_SYS_LOC $ac_cv_user_prompt_NETSNMP_SYS_LOC
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-
 
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+  fi
+fi
 
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
-host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
-host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
-build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
-build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
-build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
-SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
-Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
-GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
-EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
-FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
-LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
-NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
-LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
-exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
-want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
-sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
-STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
-lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
-CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
-compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
-GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
-lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
-objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
-need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
-LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
-libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
-version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
-install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
-striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in AS \
-DLLTOOL \
-OBJDUMP \
-SHELL \
-ECHO \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-deplibs_check_method \
-file_magic_cmd \
-file_magic_glob \
-want_nocaseglob \
-sharedlib_from_linklib_cmd \
-AR \
-AR_FLAGS \
-archiver_list_spec \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-nm_file_list_spec \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_pic \
-lt_prog_compiler_wl \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-MANIFEST_TOOL \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_flag_spec_ld \
-hardcode_libdir_separator \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-install_override_mode \
-finish_eval \
-old_striplib \
-striplib; do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
 
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postlink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec; do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
+if test -d /var/log; then
+  defaultlog="/var/log/snmpd.log"
+else
+  defaultlog="/usr/adm/snmpd.log"
+fi
 
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
 
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
+MSG_CHECK=`echo "
 
+*** Logfile location:
 
-    PACKAGE='$PACKAGE'
-    VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
-    RM='$RM'
-    ofile='$ofile'
+	Enter the default location for the snmpd agent to dump
+information & errors to.  If not defined (enter the keyword \"none\"
+at the prompt below) the agent will use stdout and stderr instead.
+(Note: This value can be over-ridden using command line options.)
+  Providing the --with-logfile=\"path\" parameter to ./configure
+will avoid this prompt.
 
+Location to write logfile" | tail -1`
+echo "$as_me:$LINENO: checking $MSG_CHECK" >&5
+echo $ECHO_N "checking $MSG_CHECK... $ECHO_C" >&6
+if test "${ac_cv_user_prompt_NETSNMP_LOGFILE+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  echo "" >&6
 
+if test "x$defaults" = "xno"; then
+echo $ECHO_N "
 
+*** Logfile location:
 
-_ACEOF
+	Enter the default location for the snmpd agent to dump
+information & errors to.  If not defined (enter the keyword \"none\"
+at the prompt below) the agent will use stdout and stderr instead.
+(Note: This value can be over-ridden using command line options.)
+  Providing the --with-logfile=\"path\" parameter to ./configure
+will avoid this prompt.
 
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+Location to write logfile ($defaultlog): $ECHO_C"
+read tmpinput
+if test "$tmpinput" = "" -a "$defaultlog" != ""; then
+  tmpinput="$defaultlog"
+fi
+eval NETSNMP_LOGFILE=\"$tmpinput\"
+else
+tmpinput="$defaultlog"
+eval NETSNMP_LOGFILE=\"$tmpinput\"
+fi
 
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "include/net-snmp/net-snmp-config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/net-snmp/net-snmp-config.h" ;;
-    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile:Makefile.top:Makefile.in:Makefile.rules" ;;
-    "snmplib/Makefile") CONFIG_FILES="$CONFIG_FILES snmplib/Makefile:Makefile.top:snmplib/Makefile.in:Makefile.rules:snmplib/Makefile.depend" ;;
-    "apps/Makefile") CONFIG_FILES="$CONFIG_FILES apps/Makefile:Makefile.top:apps/Makefile.in:Makefile.rules:apps/Makefile.depend" ;;
-    "apps/snmpnetstat/Makefile") CONFIG_FILES="$CONFIG_FILES apps/snmpnetstat/Makefile:Makefile.top:apps/snmpnetstat/Makefile.in:Makefile.rules:apps/snmpnetstat/Makefile.depend" ;;
-    "agent/Makefile") CONFIG_FILES="$CONFIG_FILES agent/Makefile:Makefile.top:agent/Makefile.in:Makefile.rules:agent/Makefile.depend" ;;
-    "agent/helpers/Makefile") CONFIG_FILES="$CONFIG_FILES agent/helpers/Makefile:Makefile.top:agent/helpers/Makefile.in:Makefile.rules:agent/helpers/Makefile.depend" ;;
-    "agent/mibgroup/Makefile") CONFIG_FILES="$CONFIG_FILES agent/mibgroup/Makefile:Makefile.top:agent/mibgroup/Makefile.in:Makefile.rules:agent/mibgroup/Makefile.depend" ;;
-    "local/Makefile") CONFIG_FILES="$CONFIG_FILES local/Makefile:Makefile.top:local/Makefile.in:Makefile.rules" ;;
-    "testing/Makefile") CONFIG_FILES="$CONFIG_FILES testing/Makefile:Makefile.top:testing/Makefile.in" ;;
-    "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile:Makefile.top:man/Makefile.in:Makefile.rules" ;;
-    "mibs/Makefile") CONFIG_FILES="$CONFIG_FILES mibs/Makefile:Makefile.top:mibs/Makefile.in:Makefile.rules" ;;
-    "net-snmp-config") CONFIG_FILES="$CONFIG_FILES net-snmp-config:net-snmp-config.in" ;;
-    "net-snmp-create-v3-user") CONFIG_FILES="$CONFIG_FILES net-snmp-create-v3-user:net-snmp-create-v3-user.in" ;;
-    "dist/generation-scripts/gen-variables") CONFIG_FILES="$CONFIG_FILES dist/generation-scripts/gen-variables:dist/generation-scripts/gen-variables.in" ;;
-    "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
-
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
-  esac
-done
 
+eval ac_cv_user_prompt_NETSNMP_LOGFILE=\$NETSNMP_LOGFILE
+echo $ECHO_N "setting $MSG_CHECK to...  $ECHO_C" >&6
 
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
 fi
+echo "$as_me:$LINENO: result: $ac_cv_user_prompt_NETSNMP_LOGFILE" >&5
+echo "${ECHO_T}$ac_cv_user_prompt_NETSNMP_LOGFILE" >&6
+if test "$ac_cv_user_prompt_NETSNMP_LOGFILE" != "none"; then
+  if test "xquoted" = "xquoted" -o "xquoted" = "xQUOTED"; then
+    cat >>confdefs.h <<_ACEOF
+#define NETSNMP_LOGFILE "$ac_cv_user_prompt_NETSNMP_LOGFILE"
+_ACEOF
 
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp= ac_tmp=
-  trap 'exit_status=$?
-  : "${ac_tmp:=$tmp}"
-  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
-  trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-if $AWK 'BEGIN { getline <"/dev/null" }' </dev/null 2>/dev/null; then
-  ac_cs_awk_getline=:
-  ac_cs_awk_pipe_init=
-  ac_cs_awk_read_file='
-      while ((getline aline < (F[key])) > 0)
-	print(aline)
-      close(F[key])'
-  ac_cs_awk_pipe_fini=
-else
-  ac_cs_awk_getline=false
-  ac_cs_awk_pipe_init="print \"cat <<'|#_!!_#|' &&\""
-  ac_cs_awk_read_file='
-      print "|#_!!_#|"
-      print "cat " F[key] " &&"
-      '$ac_cs_awk_pipe_init
-  # The final `:' finishes the AND list.
-  ac_cs_awk_pipe_fini='END { print "|#_!!_#|"; print ":" }'
-fi
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
-  eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\\r'
-else
-  ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-# Create commands to substitute file output variables.
-{
-  echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" &&
-  echo 'cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&' &&
-  echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' &&
-  echo "_ACAWK" &&
-  echo "_ACEOF"
-} >conf$$files.sh &&
-. ./conf$$files.sh ||
-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-rm -f conf$$files.sh
-
-{
-  echo "cat >conf$$subs.awk <<_ACEOF" &&
-  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
-  echo "_ACEOF"
-} >conf$$subs.sh ||
-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  . ./conf$$subs.sh ||
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
-  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
-  if test $ac_delim_n = $ac_delim_num; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
   else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
-  N
-  s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
-  for (key in S) S_is_set[key] = 1
-  FS = ""
-  \$ac_cs_awk_pipe_init
-}
-{
-  line = $ 0
-  nfields = split(line, field, "@")
-  substed = 0
-  len = length(field[1])
-  for (i = 2; i < nfields; i++) {
-    key = field[i]
-    keylen = length(key)
-    if (S_is_set[key]) {
-      value = S[key]
-      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
-      len += length(value) + length(field[++i])
-      substed = 1
-    } else
-      len += 1 + keylen
-  }
-  if (nfields == 3 && !substed) {
-    key = field[2]
-    if (F[key] != "" && line ~ /^[	 ]*@.*@[	 ]*$/) {
-      \$ac_cs_awk_read_file
-      next
-    }
-  }
-  print line
-}
-\$ac_cs_awk_pipe_fini
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
-  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
-  cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
-  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+    cat >>confdefs.h <<_ACEOF
+#define NETSNMP_LOGFILE $ac_cv_user_prompt_NETSNMP_LOGFILE
 _ACEOF
 
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
-h
-s///
-s/^/:/
-s/[	 ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[	 ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[	 ]*$//
-}'
+  fi
 fi
 
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
 
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
-  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_tt"; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
+if test -d /var; then
+  defaultstore="/var/net-snmp"
+  ucddefaultstore="/var/ucd-snmp"
+else
+  defaultstore="/etc/net-snmp"
+  ucddefaultstore="/etc/ucd-snmp"
+fi
 
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any.  Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  for (key in D) D_is_set[key] = 1
-  FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
-  line = \$ 0
-  split(line, arg, " ")
-  if (arg[1] == "#") {
-    defundef = arg[2]
-    mac1 = arg[3]
-  } else {
-    defundef = substr(arg[1], 2)
-    mac1 = arg[2]
-  }
-  split(mac1, mac2, "(") #)
-  macro = mac2[1]
-  prefix = substr(line, 1, index(line, defundef) - 1)
-  if (D_is_set[macro]) {
-    # Preserve the white space surrounding the "#".
-    print prefix "define", macro P[macro] D[macro]
-    next
-  } else {
-    # Replace #undef with comments.  This is necessary, for example,
-    # in the case of _POSIX_SOURCE, which is predefined and required
-    # on some systems where configure will not decide to define it.
-    if (defundef == "undef") {
-      print "/*", prefix defundef, macro, "*/"
-      next
-    }
-  }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
 
+MSG_CHECK=`echo "
 
-eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
+*** snmpd persistent storage location:
 
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$ac_tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-	 # because $ac_f cannot contain `:'.
-	 test -f "$ac_f" ||
-	   case $ac_f in
-	   [\\/$]*) false;;
-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
-      esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      as_fn_append ac_file_inputs " '$ac_f'"
-    done
+	Enter a directory for the SNMP library to store persistent
+data in the form of a configuration file.  This default location is
+different than the old default location (which was for ucd-snmp).  If
+you stay with the new path, I'll ask you in a second if you wish to
+copy your files over to the new location (once only).  If you pick
+some other path than the default, you'll have to copy them yourself.
+There is nothing wrong with picking the old path ($ucddefaultstore) if
+you'd rather.
+  Providing the --with-persistent-directory=\"path\" parameter to
+./configure will avoid this prompt.
 
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
-	`' by configure.'
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
-    fi
-    # Neutralize special characters interpreted by sed in replacement strings.
-    case $configure_input in #(
-    *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
-       sed 's/[\\\\&|]/\\\\&/g'`;; #(
-    *) ac_sed_conf_input=$configure_input;;
-    esac
+Location to write persistent information" | tail -1`
+echo "$as_me:$LINENO: checking $MSG_CHECK" >&5
+echo $ECHO_N "checking $MSG_CHECK... $ECHO_C" >&6
+if test "${ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  echo "" >&6
 
-    case $ac_tag in
-    *:-:* | *:-) cat >"$ac_tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
-    esac
-    ;;
-  esac
+if test "x$defaults" = "xno"; then
+echo $ECHO_N "
 
-  ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  as_dir="$ac_dir"; as_fn_mkdir_p
-  ac_builddir=.
+*** snmpd persistent storage location:
 
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
+	Enter a directory for the SNMP library to store persistent
+data in the form of a configuration file.  This default location is
+different than the old default location (which was for ucd-snmp).  If
+you stay with the new path, I'll ask you in a second if you wish to
+copy your files over to the new location (once only).  If you pick
+some other path than the default, you'll have to copy them yourself.
+There is nothing wrong with picking the old path ($ucddefaultstore) if
+you'd rather.
+  Providing the --with-persistent-directory=\"path\" parameter to
+./configure will avoid this prompt.
 
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+Location to write persistent information ($defaultstore): $ECHO_C"
+read tmpinput
+if test "$tmpinput" = "" -a "$defaultstore" != ""; then
+  tmpinput="$defaultstore"
+fi
+eval NETSNMP_PERSISTENT_DIRECTORY=\"$tmpinput\"
+else
+tmpinput="$defaultstore"
+eval NETSNMP_PERSISTENT_DIRECTORY=\"$tmpinput\"
+fi
 
 
-  case $ac_mode in
-  :F)
-  #
-  # CONFIG_FILE
-  #
+eval ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY=\$NETSNMP_PERSISTENT_DIRECTORY
+echo $ECHO_N "setting $MSG_CHECK to...  $ECHO_C" >&6
 
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-  esac
+fi
+echo "$as_me:$LINENO: result: $ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY" >&5
+echo "${ECHO_T}$ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY" >&6
+if test "$ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY" != "none"; then
+  if test "xquoted" = "xquoted" -o "xquoted" = "xQUOTED"; then
+    cat >>confdefs.h <<_ACEOF
+#define NETSNMP_PERSISTENT_DIRECTORY "$ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY"
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  ac_datarootdir_hack='
-  s&@datadir@&$datadir&g
-  s&@docdir@&$docdir&g
-  s&@infodir@&$infodir&g
-  s&@localedir@&$localedir&g
-  s&@mandir@&$mandir&g
-  s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
+  else
+    cat >>confdefs.h <<_ACEOF
+#define NETSNMP_PERSISTENT_DIRECTORY $ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY
 _ACEOF
 
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" |
-if $ac_cs_awk_getline; then
-  $AWK -f "$ac_tmp/subs.awk"
-else
-  $AWK -f "$ac_tmp/subs.awk" | $SHELL
-fi \
-  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
-      "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&2;}
-
-  rm -f "$ac_tmp/stdin"
-  case $ac_file in
-  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
-  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
-  esac \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
-  :H)
-  #
-  # CONFIG_HEADER
-  #
-  if test x"$ac_file" != x-; then
-    {
-      $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
-    } >"$ac_tmp/config.h" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      rm -f "$ac_file"
-      mv "$ac_tmp/config.h" "$ac_file" \
-	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    fi
-  else
-    $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
-      || as_fn_error $? "could not create -" "$LINENO" 5
   fi
- ;;
+fi
 
-  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
-  esac
 
+PERSISTENT_DIRECTORY=$ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY
 
-  case $ac_file$ac_mode in
-    "libtool":C)
+UCDPERSISTENT_DIRECTORY=$ucddefaultstore
 
-    # See if we are running on zsh, and set the options which allow our
-    # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
-      setopt NO_GLOB_SUBST
-    fi
 
-    cfgfile="${ofile}T"
-    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-    $RM "$cfgfile"
+if test $PERSISTENT_DIRECTORY = "$defaultstore" -a -d "$ucddefaultstore" -a ! -d "$defaultstore" ; then
+echo "$as_me:$LINENO: checking If we should copy the old persistent directory" >&5
+echo $ECHO_N "checking If we should copy the old persistent directory... $ECHO_C" >&6
+if test "${ac_cv_user_prompt_COPY_PERSISTENT_FILES+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
 
-    cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
 
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-#                 Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+if test "x$defaults" = "xno"; then
+echo $ECHO_N "
 
+*** Copying old ucd-snmp persistent files to net-snmp persistent directory:
 
-# The names of the tagged configurations supported by this script.
-available_tags=""
+	Would you like to copy the older ucd-snmp persistent files
+into your new net-snmp persistent file path?  This will functionally
+save all your ucd-snmp data and let it be used within the net-snmp
+tools.  This will only be done once when you run make install.  If you
+wish to do this, enter "yes" at the prompt.
+  Providing the --with-copy-persistent-files=\"no\" (or \"yes\")
+parameters to ./configure will avoid this prompt.
 
-# ### BEGIN LIBTOOL CONFIG
+Copy ucd-snmp data into the net-snmp data directory ("yes"): $ECHO_C"
+read tmpinput
+if test "$tmpinput" = "" -a ""yes"" != ""; then
+  tmpinput=""yes""
+fi
+eval ac_cv_user_prompt_COPY_PERSISTENT_FILES=\"$tmpinput\"
+else
+tmpinput=""yes""
+eval ac_cv_user_prompt_COPY_PERSISTENT_FILES=\"$tmpinput\"
+fi
 
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
 
-# Assembler program.
-AS=$lt_AS
 
-# DLL creation program.
-DLLTOOL=$lt_DLLTOOL
+fi
+echo "$as_me:$LINENO: result: $ac_cv_user_prompt_COPY_PERSISTENT_FILES" >&5
+echo "${ECHO_T}$ac_cv_user_prompt_COPY_PERSISTENT_FILES" >&6
+else
+ac_cv_user_prompt_COPY_PERSISTENT_FILES="no"
+fi
+COPY_PERSISTENT_FILES="$ac_cv_user_prompt_COPY_PERSISTENT_FILES"
 
-# Object dumper program.
-OBJDUMP=$lt_OBJDUMP
 
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
 
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
 
-# What type of objects to build.
-pic_mode=$pic_mode
+          ac_config_files="$ac_config_files Makefile:Makefile.top:Makefile.in:Makefile.rules"
 
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
+          ac_config_files="$ac_config_files snmplib/Makefile:Makefile.top:snmplib/Makefile.in:Makefile.rules:snmplib/Makefile.depend"
 
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
+          ac_config_files="$ac_config_files apps/Makefile:Makefile.top:apps/Makefile.in:Makefile.rules:apps/Makefile.depend"
 
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
+          ac_config_files="$ac_config_files apps/snmpnetstat/Makefile:Makefile.top:apps/snmpnetstat/Makefile.in:Makefile.rules:apps/snmpnetstat/Makefile.depend"
 
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
+          ac_config_files="$ac_config_files agent/Makefile:Makefile.top:agent/Makefile.in:Makefile.rules:agent/Makefile.depend"
 
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
+          ac_config_files="$ac_config_files agent/helpers/Makefile:Makefile.top:agent/helpers/Makefile.in:Makefile.rules:agent/helpers/Makefile.depend"
 
-# A sed program that does not truncate output.
-SED=$lt_SED
+          ac_config_files="$ac_config_files agent/mibgroup/Makefile:Makefile.top:agent/mibgroup/Makefile.in:Makefile.rules:agent/mibgroup/Makefile.depend"
 
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
+          ac_config_files="$ac_config_files local/Makefile:Makefile.top:local/Makefile.in:Makefile.rules"
 
-# A grep program that handles long lines.
-GREP=$lt_GREP
+          ac_config_files="$ac_config_files testing/Makefile:Makefile.top:testing/Makefile.in"
 
-# An ERE matcher.
-EGREP=$lt_EGREP
+          ac_config_files="$ac_config_files man/Makefile:Makefile.top:man/Makefile.in:Makefile.rules"
 
-# A literal string matcher.
-FGREP=$lt_FGREP
+          ac_config_files="$ac_config_files mibs/Makefile:Makefile.top:mibs/Makefile.in:Makefile.rules"
 
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
+          ac_config_files="$ac_config_files net-snmp-config:net-snmp-config.in"
 
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
 
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
+          ac_config_commands="$ac_config_commands default"
 
-# Object file suffix (normally "o").
-objext=$ac_objext
 
-# Executable file suffix (normally "").
-exeext=$exeext
+#
+# protect PACKAGE_* variables
+#
+
 
-# whether the shell understands "unset".
-lt_unset=$lt_unset
 
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
 
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
 
-# convert \$build file names to \$host format.
-to_host_file_cmd=$lt_cv_to_host_file_cmd
 
-# convert \$build files to toolchain format.
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
 
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
 
-# Command to use when deplibs_check_method = "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
 
-# How to find potential files when deplibs_check_method = "file_magic".
-file_magic_glob=$lt_file_magic_glob
 
-# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
-want_nocaseglob=$lt_want_nocaseglob
 
-# Command to associate shared and link libraries.
-sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
 
-# The archiver.
-AR=$lt_AR
+_ACEOF
 
-# Flags to create an archive.
-AR_FLAGS=$lt_AR_FLAGS
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+  (set) 2>&1 |
+    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;;
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n \
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} |
+  sed '
+     t clear
+     : clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     : end' >>confcache
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
+  if test -w $cache_file; then
+    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+    cat confcache >$cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
 
-# How to feed a file listing to the archiver.
-archiver_list_spec=$lt_archiver_list_spec
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 
-# A symbol stripping program.
-STRIP=$lt_STRIP
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[	 ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[	 ]*$//;
+}'
+fi
 
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
+DEFS=-DHAVE_CONFIG_H
 
-# Whether to use a lock for old archive extraction.
-lock_old_archive_extraction=$lock_old_archive_extraction
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_i=`echo "$ac_i" |
+	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+  # 2. Add them.
+  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
 
-# A C compiler.
-LTCC=$lt_CC
+LTLIBOBJS=$ac_ltlibobjs
 
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
 
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
 
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
 
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
 
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
 
-# Specify filename containing input files for \$NM.
-nm_file_list_spec=$lt_nm_file_list_spec
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
 
-# The root where to search for dependent libraries,and in which our libraries should be installed.
-lt_sysroot=$lt_sysroot
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
 
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
 
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
 
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
 
-# Manifest tool.
-MANIFEST_TOOL=$lt_MANIFEST_TOOL
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
 
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
 
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
 
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
 
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
 
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-# Old archive suffix (normally "a").
-libext=$libext
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
 
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
 
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
 
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
 
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+   { (exit 1); exit 1; }; }
 
-# Do we need a version for libraries?
-need_version=$need_version
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
 
-# Library versioning type.
-version_type=$version_type
 
-# Shared library runtime path variable.
-runpath_var=$runpath_var
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
 
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
 
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
 
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
 
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
+as_executable_p="test -f"
 
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 
-# Permission mode override for installation of shared libraries.
-install_override_mode=$lt_install_override_mode
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
 
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
 
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
+# CDPATH.
+$as_unset CDPATH
 
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
+exec 6>&1
 
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.  Logging --version etc. is OK.
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
 
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+This file was extended by Net-SNMP $as_me 5.4.3, which was
+generated by GNU Autoconf 2.59.  Invocation command line was
 
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
 
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
 
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
 
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
+if test -n "$ac_config_headers"; then
+  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
 
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
+if test -n "$ac_config_links"; then
+  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
 
+if test -n "$ac_config_commands"; then
+  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
 
-# The linker used to build libraries.
-LD=$lt_LD
+cat >>$CONFIG_STATUS <<\_ACEOF
 
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
 
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
+Usage: $0 [OPTIONS] [FILE]...
 
-# A language specific compiler.
-CC=$lt_compiler
+  -h, --help       print this help, then exit
+  -V, --version    print version number, then exit
+  -q, --quiet      do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+		   instantiate the configuration file FILE
+  --header=FILE[:TEMPLATE]
+		   instantiate the configuration header FILE
 
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
+Configuration files:
+$config_files
 
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+Configuration headers:
+$config_headers
 
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
+Configuration commands:
+$config_commands
 
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
+Report bugs to <bug-autoconf at gnu.org>."
+_ACEOF
 
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+Net-SNMP config.status 5.4.3
+configured by $0, generated by GNU Autoconf 2.59,
+  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+Copyright (C) 2003 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+_ACEOF
 
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  -*)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_option=$1
+     ac_need_defaults=false;;
+  esac
 
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+  case $ac_option in
+  # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit 0 ;;
+  --debug | --d* | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+    ac_need_defaults=false;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
 
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+  # This is an error.
+  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; } ;;
 
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
+  *) ac_config_targets="$ac_config_targets $1" ;;
 
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
+  esac
+  shift
+done
 
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+ac_configure_extra_args=
 
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
 
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
 
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
+_ACEOF
 
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
 
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
 
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
 
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
 
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile:Makefile.top:Makefile.in:Makefile.rules" ;;
+  "snmplib/Makefile" ) CONFIG_FILES="$CONFIG_FILES snmplib/Makefile:Makefile.top:snmplib/Makefile.in:Makefile.rules:snmplib/Makefile.depend" ;;
+  "apps/Makefile" ) CONFIG_FILES="$CONFIG_FILES apps/Makefile:Makefile.top:apps/Makefile.in:Makefile.rules:apps/Makefile.depend" ;;
+  "apps/snmpnetstat/Makefile" ) CONFIG_FILES="$CONFIG_FILES apps/snmpnetstat/Makefile:Makefile.top:apps/snmpnetstat/Makefile.in:Makefile.rules:apps/snmpnetstat/Makefile.depend" ;;
+  "agent/Makefile" ) CONFIG_FILES="$CONFIG_FILES agent/Makefile:Makefile.top:agent/Makefile.in:Makefile.rules:agent/Makefile.depend" ;;
+  "agent/helpers/Makefile" ) CONFIG_FILES="$CONFIG_FILES agent/helpers/Makefile:Makefile.top:agent/helpers/Makefile.in:Makefile.rules:agent/helpers/Makefile.depend" ;;
+  "agent/mibgroup/Makefile" ) CONFIG_FILES="$CONFIG_FILES agent/mibgroup/Makefile:Makefile.top:agent/mibgroup/Makefile.in:Makefile.rules:agent/mibgroup/Makefile.depend" ;;
+  "local/Makefile" ) CONFIG_FILES="$CONFIG_FILES local/Makefile:Makefile.top:local/Makefile.in:Makefile.rules" ;;
+  "testing/Makefile" ) CONFIG_FILES="$CONFIG_FILES testing/Makefile:Makefile.top:testing/Makefile.in" ;;
+  "man/Makefile" ) CONFIG_FILES="$CONFIG_FILES man/Makefile:Makefile.top:man/Makefile.in:Makefile.rules" ;;
+  "mibs/Makefile" ) CONFIG_FILES="$CONFIG_FILES mibs/Makefile:Makefile.top:mibs/Makefile.in:Makefile.rules" ;;
+  "net-snmp-config" ) CONFIG_FILES="$CONFIG_FILES net-snmp-config:net-snmp-config.in" ;;
+  "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+  "include/net-snmp/net-snmp-config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/net-snmp/net-snmp-config.h" ;;
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
 
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
 
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
 
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
+# Create a (secure) tmp directory for tmp files.
 
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
+{
+  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./confstat$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in ." >&2
+   { (exit 1); exit 1; }
+}
 
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
+_ACEOF
 
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+  # Protect against being on the right side of a sed subst in config.status.
+  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s, at SHELL@,$SHELL,;t t
+s, at PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s, at PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s, at PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s, at PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s, at PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s, at PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s, at exec_prefix@,$exec_prefix,;t t
+s, at prefix@,$prefix,;t t
+s, at program_transform_name@,$program_transform_name,;t t
+s, at bindir@,$bindir,;t t
+s, at sbindir@,$sbindir,;t t
+s, at libexecdir@,$libexecdir,;t t
+s, at datadir@,$datadir,;t t
+s, at sysconfdir@,$sysconfdir,;t t
+s, at sharedstatedir@,$sharedstatedir,;t t
+s, at localstatedir@,$localstatedir,;t t
+s, at libdir@,$libdir,;t t
+s, at includedir@,$includedir,;t t
+s, at oldincludedir@,$oldincludedir,;t t
+s, at infodir@,$infodir,;t t
+s, at mandir@,$mandir,;t t
+s, at build_alias@,$build_alias,;t t
+s, at host_alias@,$host_alias,;t t
+s, at target_alias@,$target_alias,;t t
+s, at DEFS@,$DEFS,;t t
+s, at ECHO_C@,$ECHO_C,;t t
+s, at ECHO_N@,$ECHO_N,;t t
+s, at ECHO_T@,$ECHO_T,;t t
+s, at LIBS@,$LIBS,;t t
+s, at CONFIGURE_OPTIONS@,$CONFIGURE_OPTIONS,;t t
+s, at LIBTOOLFLAGS@,$LIBTOOLFLAGS,;t t
+s, at INSTALL_PREFIX@,$INSTALL_PREFIX,;t t
+s, at SNMPD@,$SNMPD,;t t
+s, at TRAPLIBS@,$TRAPLIBS,;t t
+s, at USETRAPLIBS@,$USETRAPLIBS,;t t
+s, at MAINSUBS@,$MAINSUBS,;t t
+s, at HAVE_DMALLOC_H@,$HAVE_DMALLOC_H,;t t
+s, at installucdheaders@,$installucdheaders,;t t
+s, at installucdlibs@,$installucdlibs,;t t
+s, at CC@,$CC,;t t
+s, at CFLAGS@,$CFLAGS,;t t
+s, at LDFLAGS@,$LDFLAGS,;t t
+s, at CPPFLAGS@,$CPPFLAGS,;t t
+s, at ac_ct_CC@,$ac_ct_CC,;t t
+s, at EXEEXT@,$EXEEXT,;t t
+s, at OBJEXT@,$OBJEXT,;t t
+s, at CPP@,$CPP,;t t
+s, at LINKCC@,$LINKCC,;t t
+s, at EGREP@,$EGREP,;t t
+s, at build@,$build,;t t
+s, at build_cpu@,$build_cpu,;t t
+s, at build_vendor@,$build_vendor,;t t
+s, at build_os@,$build_os,;t t
+s, at host@,$host,;t t
+s, at host_cpu@,$host_cpu,;t t
+s, at host_vendor@,$host_vendor,;t t
+s, at host_os@,$host_os,;t t
+s, at target@,$target,;t t
+s, at target_cpu@,$target_cpu,;t t
+s, at target_vendor@,$target_vendor,;t t
+s, at target_os@,$target_os,;t t
+s, at SED@,$SED,;t t
+s, at LN_S@,$LN_S,;t t
+s, at ECHO@,$ECHO,;t t
+s, at AR@,$AR,;t t
+s, at ac_ct_AR@,$ac_ct_AR,;t t
+s, at RANLIB@,$RANLIB,;t t
+s, at ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+s, at STRIP@,$STRIP,;t t
+s, at ac_ct_STRIP@,$ac_ct_STRIP,;t t
+s, at DSYMUTIL@,$DSYMUTIL,;t t
+s, at ac_ct_DSYMUTIL@,$ac_ct_DSYMUTIL,;t t
+s, at NMEDIT@,$NMEDIT,;t t
+s, at ac_ct_NMEDIT@,$ac_ct_NMEDIT,;t t
+s, at DLLTOOL@,$DLLTOOL,;t t
+s, at ac_ct_DLLTOOL@,$ac_ct_DLLTOOL,;t t
+s, at AS@,$AS,;t t
+s, at ac_ct_AS@,$ac_ct_AS,;t t
+s, at OBJDUMP@,$OBJDUMP,;t t
+s, at ac_ct_OBJDUMP@,$ac_ct_OBJDUMP,;t t
+s, at CXX@,$CXX,;t t
+s, at CXXFLAGS@,$CXXFLAGS,;t t
+s, at ac_ct_CXX@,$ac_ct_CXX,;t t
+s, at CXXCPP@,$CXXCPP,;t t
+s, at F77@,$F77,;t t
+s, at FFLAGS@,$FFLAGS,;t t
+s, at ac_ct_F77@,$ac_ct_F77,;t t
+s, at LIBTOOL@,$LIBTOOL,;t t
+s, at LIBTOOL_DEPS@,$LIBTOOL_DEPS,;t t
+s, at INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s, at INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s, at INSTALL_DATA@,$INSTALL_DATA,;t t
+s, at SET_MAKE@,$SET_MAKE,;t t
+s, at PSPROG@,$PSPROG,;t t
+s, at PERLPROG@,$PERLPROG,;t t
+s, at PYTHONPROG@,$PYTHONPROG,;t t
+s, at WHOAMI@,$WHOAMI,;t t
+s, at FIND@,$FIND,;t t
+s, at AUTOCONF@,$AUTOCONF,;t t
+s, at AUTOHEADER@,$AUTOHEADER,;t t
+s, at UNAMEPROG@,$UNAMEPROG,;t t
+s, at VERSION@,$VERSION,;t t
+s, at RELEASEVERSION@,$RELEASEVERSION,;t t
+s, at DEVFLAGS@,$DEVFLAGS,;t t
+s, at TOP_INCLUDES@,$TOP_INCLUDES,;t t
+s, at SNMPLIB_INCLUDES@,$SNMPLIB_INCLUDES,;t t
+s, at AGENT_INCLUDES@,$AGENT_INCLUDES,;t t
+s, at HELPER_INCLUDES@,$HELPER_INCLUDES,;t t
+s, at MIBGROUP_INCLUDES@,$MIBGROUP_INCLUDES,;t t
+s, at GNU_vpath@,$GNU_vpath,;t t
+s, at NON_GNU_VPATH@,$NON_GNU_VPATH,;t t
+s, at CCPATH@,$CCPATH,;t t
+s, at EXTRACPPFLAGS@,$EXTRACPPFLAGS,;t t
+s, at SNMPLIBPATH@,$SNMPLIBPATH,;t t
+s, at SNMPSHAREPATH@,$SNMPSHAREPATH,;t t
+s, at NETSNMP_DEFAULT_MIBDIRS@,$NETSNMP_DEFAULT_MIBDIRS,;t t
+s, at SNMPCONFPATH@,$SNMPCONFPATH,;t t
+s, at other_src_list@,$other_src_list,;t t
+s, at other_objs_list@,$other_objs_list,;t t
+s, at other_lobjs_list@,$other_lobjs_list,;t t
+s, at other_agentobjs@,$other_agentobjs,;t t
+s, at other_lagentobjs@,$other_lagentobjs,;t t
+s, at other_trapd_objects@,$other_trapd_objects,;t t
+s, at transport_hdr_list@,$transport_hdr_list,;t t
+s, at transport_src_list@,$transport_src_list,;t t
+s, at transport_obj_list@,$transport_obj_list,;t t
+s, at transport_lobj_list@,$transport_lobj_list,;t t
+s, at security_src_list@,$security_src_list,;t t
+s, at security_hdr_list@,$security_hdr_list,;t t
+s, at security_obj_list@,$security_obj_list,;t t
+s, at security_lobj_list@,$security_lobj_list,;t t
+s, at krb5_config@,$krb5_config,;t t
+s, at default_mibs_install@,$default_mibs_install,;t t
+s, at dllcleans@,$dllcleans,;t t
+s, at ENV_SEPARATOR@,$ENV_SEPARATOR,;t t
+s, at NETSNMP_DEFAULT_MIBS@,$NETSNMP_DEFAULT_MIBS,;t t
+s, at EMBEDPERLINSTALL@,$EMBEDPERLINSTALL,;t t
+s, at EMBEDPERLUNINSTALL@,$EMBEDPERLUNINSTALL,;t t
+s, at PERLLDOPTS_FOR_LIBS@,$PERLLDOPTS_FOR_LIBS,;t t
+s, at PERLLDOPTS_FOR_APPS@,$PERLLDOPTS_FOR_APPS,;t t
+s, at PERLTARGS@,$PERLTARGS,;t t
+s, at PERLINSTALLTARGS@,$PERLINSTALLTARGS,;t t
+s, at PERLUNINSTALLTARGS@,$PERLUNINSTALLTARGS,;t t
+s, at PERLARGS@,$PERLARGS,;t t
+s, at PYTHONTARGS@,$PYTHONTARGS,;t t
+s, at PYTHONINSTALLTARGS@,$PYTHONINSTALLTARGS,;t t
+s, at PYTHONUNINSTALLTARGS@,$PYTHONUNINSTALLTARGS,;t t
+s, at PYTHONCLEANTARGS@,$PYTHONCLEANTARGS,;t t
+s, at PYTHONARGS@,$PYTHONARGS,;t t
+s, at LPSTAT_PATH@,$LPSTAT_PATH,;t t
+s, at LNETSNMPLIBS@,$LNETSNMPLIBS,;t t
+s, at LAGENTLIBS@,$LAGENTLIBS,;t t
+s, at PSCMD@,$PSCMD,;t t
+s, at ALLOCA@,$ALLOCA,;t t
+s, at LIBOBJS@,$LIBOBJS,;t t
+s, at LMIBLIBS@,$LMIBLIBS,;t t
+s, at AGENTLIBS@,$AGENTLIBS,;t t
+s, at OTHERAGENTLIBOBJS@,$OTHERAGENTLIBOBJS,;t t
+s, at OTHERAGENTLIBLOBJS@,$OTHERAGENTLIBLOBJS,;t t
+s, at PERSISTENT_DIRECTORY@,$PERSISTENT_DIRECTORY,;t t
+s, at UCDPERSISTENT_DIRECTORY@,$UCDPERSISTENT_DIRECTORY,;t t
+s, at COPY_PERSISTENT_FILES@,$COPY_PERSISTENT_FILES,;t t
+s, at DLLIBS@,$DLLIBS,;t t
+s, at LTLIBOBJS@,$LTLIBOBJS,;t t
+/@MODULE_LIST@/r $MODULE_LIST
+s, at MODULE_LIST@,,;t t
+/@module_list_c@/r $module_list_c
+s, at module_list_c@,,;t t
+/@module_list_o@/r $module_list_o
+s, at module_list_o@,,;t t
+/@module_list_lo@/r $module_list_lo
+s, at module_list_lo@,,;t t
+/@mib_module_list_c@/r $mib_module_list_c
+s, at mib_module_list_c@,,;t t
+/@mib_module_list_o@/r $mib_module_list_o
+s, at mib_module_list_o@,,;t t
+/@mib_module_list_lo@/r $mib_module_list_lo
+s, at mib_module_list_lo@,,;t t
+/@agent_module_list_c@/r $agent_module_list_c
+s, at agent_module_list_c@,,;t t
+/@agent_module_list_o@/r $agent_module_list_o
+s, at agent_module_list_o@,,;t t
+/@agent_module_list_lo@/r $agent_module_list_lo
+s, at agent_module_list_lo@,,;t t
+/@mibgroup_list_o@/r $mibgroup_list_o
+s, at mibgroup_list_o@,,;t t
+/@mibgroup_list_lo@/r $mibgroup_list_lo
+s, at mibgroup_list_lo@,,;t t
+/@agentgroup_list_o@/r $agentgroup_list_o
+s, at agentgroup_list_o@,,;t t
+/@agentgroup_list_lo@/r $agentgroup_list_lo
+s, at agentgroup_list_lo@,,;t t
+/@agent_module_list@/r $agent_module_list
+s, at agent_module_list@,,;t t
+/@module_rules@/r $module_rules
+s, at module_rules@,,;t t
+/@module_list_deps@/r $module_list_deps
+s, at module_list_deps@,,;t t
+/@mib_module_list_deps@/r $mib_module_list_deps
+s, at mib_module_list_deps@,,;t t
+/@agent_module_list_deps@/r $agent_module_list_deps
+s, at agent_module_list_deps@,,;t t
+CEOF
+
+_ACEOF
+
+  cat >>$CONFIG_STATUS <<\_ACEOF
+  # Split the substitutions into bite-sized pieces for seds with
+  # small command number limits, like on Digital OSF/1 and HP-UX.
+  ac_max_sed_lines=48
+  ac_sed_frag=1 # Number of current file.
+  ac_beg=1 # First line for current file.
+  ac_end=$ac_max_sed_lines # Line after last line for current file.
+  ac_more_lines=:
+  ac_sed_cmds=
+  while $ac_more_lines; do
+    if test $ac_beg -gt 1; then
+      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    else
+      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    fi
+    if test ! -s $tmp/subs.frag; then
+      ac_more_lines=false
+    else
+      # The purpose of the label and of the branching condition is to
+      # speed up the sed processing (if there are no `@' at all, there
+      # is no need to browse any of the substitutions).
+      # These are the two extra sed commands mentioned above.
+      (echo ':t
+  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+      if test -z "$ac_sed_cmds"; then
+	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+      else
+	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+      fi
+      ac_sed_frag=`expr $ac_sed_frag + 1`
+      ac_beg=$ac_end
+      ac_end=`expr $ac_end + $ac_max_sed_lines`
+    fi
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
+  fi
+fi # test -n "$CONFIG_FILES"
 
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+	cat >$tmp/stdin
+	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
 
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
 
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
+  ac_builddir=.
 
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
 
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
 
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
 
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
 
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  esac
 
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    configure_input=
+  else
+    configure_input="$ac_file.  "
+  fi
+  configure_input=$configure_input"Generated from `echo $ac_file_in |
+				     sed 's,.*/,,'` by configure."
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+	 # Absolute (can't be DOS-style, as IFS=:)
+	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 echo "$f";;
+      *) # Relative
+	 if test -f "$f"; then
+	   # Build tree
+	   echo "$f"
+	 elif test -f "$srcdir/$f"; then
+	   # Source tree
+	   echo "$srcdir/$f"
+	 else
+	   # /dev/null tree
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s, at configure_input@,$configure_input,;t t
+s, at srcdir@,$ac_srcdir,;t t
+s, at abs_srcdir@,$ac_abs_srcdir,;t t
+s, at top_srcdir@,$ac_top_srcdir,;t t
+s, at abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s, at builddir@,$ac_builddir,;t t
+s, at abs_builddir@,$ac_abs_builddir,;t t
+s, at top_builddir@,$ac_top_builddir,;t t
+s, at abs_top_builddir@,$ac_abs_top_builddir,;t t
+s, at INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+  rm -f $tmp/stdin
+  if test x"$ac_file" != x-; then
+    mv $tmp/out $ac_file
+  else
+    cat $tmp/out
+    rm -f $tmp/out
+  fi
 
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
+  # Run the commands associated with the file.
+  case $ac_file in
+    net-snmp-config ) chmod +x net-snmp-config ;;
+  esac
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
 
-# ### END LIBTOOL CONFIG
+#
+# CONFIG_HEADER section.
+#
 
-_LT_EOF
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([	 ]*\)#\([	 ]*define[	 ][	 ]*\)'
+ac_dB='[	 ].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([	 ]*\)#\([	 ]*\)undef\([	 ][	 ]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
 
-  case $host_os in
-  aix3*)
-    cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-_LT_EOF
-    ;;
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+	cat >$tmp/stdin
+	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
   esac
 
+  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+	 # Absolute (can't be DOS-style, as IFS=:)
+	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 # Do quote $f, to prevent DOS paths from being IFS'd.
+	 echo "$f";;
+      *) # Relative
+	 if test -f "$f"; then
+	   # Build tree
+	   echo "$f"
+	 elif test -f "$srcdir/$f"; then
+	   # Source tree
+	   echo "$srcdir/$f"
+	 else
+	   # /dev/null tree
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+  # Remove the trailing spaces.
+  sed 's/[	 ]*$//' $ac_file_inputs >$tmp/in
+
+_ACEOF
+
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h.  The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status.  Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\_ACEOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*\)\(([^)]*)\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+t end
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+_ACEOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless.  Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >>conftest.undefs <<\_ACEOF
+s,^[	 ]*#[	 ]*undef[	 ][	 ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+_ACEOF
+
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo '  if grep "^[	 ]*#[	 ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo '  :' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.defines >/dev/null
+do
+  # Write a limited-size here document to $tmp/defines.sed.
+  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#define' lines.
+  echo '/^[	 ]*#[	 ]*define/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/defines.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+  rm -f conftest.defines
+  mv conftest.tail conftest.defines
+done
+rm -f conftest.defines
+echo '  fi # grep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
+
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+  # Write a limited-size here document to $tmp/undefs.sed.
+  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#undef'
+  echo '/^[	 ]*#[	 ]*undef/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+  rm -f conftest.undefs
+  mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    echo "/* Generated by configure.  */" >$tmp/config.h
+  else
+    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
+  fi
+  cat $tmp/in >>$tmp/config.h
+  rm -f $tmp/in
+  if test x"$ac_file" != x-; then
+    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+      { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+      rm -f $ac_file
+      mv $tmp/config.h $ac_file
+    fi
+  else
+    cat $tmp/config.h
+    rm -f $tmp/config.h
+  fi
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_dest" : 'X\(//\)[^/]' \| \
+	 X"$ac_dest" : 'X\(//\)$' \| \
+	 X"$ac_dest" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
 
-ltmain="$ac_aux_dir/ltmain.sh"
+  ac_builddir=.
 
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
 
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" \
-     || (rm -f "$cfgfile"; exit 1)
-
-  if test x"$xsi_shell" = xyes; then
-  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
-func_dirname ()\
-{\
-\    case ${1} in\
-\      */*) func_dirname_result="${1%/*}${2}" ;;\
-\      *  ) func_dirname_result="${3}" ;;\
-\    esac\
-} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_basename ()$/,/^} # func_basename /c\
-func_basename ()\
-{\
-\    func_basename_result="${1##*/}"\
-} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
-func_dirname_and_basename ()\
-{\
-\    case ${1} in\
-\      */*) func_dirname_result="${1%/*}${2}" ;;\
-\      *  ) func_dirname_result="${3}" ;;\
-\    esac\
-\    func_basename_result="${1##*/}"\
-} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
-func_stripname ()\
-{\
-\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
-\    # positional parameters, so assign one to ordinary parameter first.\
-\    func_stripname_result=${3}\
-\    func_stripname_result=${func_stripname_result#"${1}"}\
-\    func_stripname_result=${func_stripname_result%"${2}"}\
-} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
-func_split_long_opt ()\
-{\
-\    func_split_long_opt_name=${1%%=*}\
-\    func_split_long_opt_arg=${1#*=}\
-} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
-func_split_short_opt ()\
-{\
-\    func_split_short_opt_arg=${1#??}\
-\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
-} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
-func_lo2o ()\
-{\
-\    case ${1} in\
-\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
-\      *)    func_lo2o_result=${1} ;;\
-\    esac\
-} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_xform ()$/,/^} # func_xform /c\
-func_xform ()\
-{\
-    func_xform_result=${1%.*}.lo\
-} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_arith ()$/,/^} # func_arith /c\
-func_arith ()\
-{\
-    func_arith_result=$(( $* ))\
-} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_len ()$/,/^} # func_len /c\
-func_len ()\
-{\
-    func_len_result=${#1}\
-} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-fi
-
-if test x"$lt_shell_append" = xyes; then
-  sed -e '/^func_append ()$/,/^} # func_append /c\
-func_append ()\
-{\
-    eval "${1}+=\\${2}"\
-} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
-func_append_quoted ()\
-{\
-\    func_quote_for_eval "${2}"\
-\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
-} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  # Save a `func_append' function call where possible by direct use of '+='
-  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-else
-  # Save a `func_append' function call even when '+=' is not available
-  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
-$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
-fi
-
-
-   mv -f "$cfgfile" "$ofile" ||
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
 
- ;;
-    "net-snmp-config":F) chmod +x net-snmp-config ;;
-    "net-snmp-create-v3-user":F) chmod +x net-snmp-create-v3-user ;;
-    "default":C) echo timestamp > stamp-h ;;
 
+  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
+  case $ac_dest in
+    default ) echo timestamp > stamp-h ;;
   esac
-done # for ac_tag
+done
+_ACEOF
 
+cat >>$CONFIG_STATUS <<\_ACEOF
 
-as_fn_exit 0
+{ (exit 0); exit 0; }
 _ACEOF
+chmod +x $CONFIG_STATUS
 ac_clean_files=$ac_clean_files_save
 
-test $ac_write_fail = 0 ||
-  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
 
 # configure is writing to config.log, and then calls config.status.
 # config.status does its own redirection, appending to config.log.
@@ -31624,11 +51149,7 @@ if test "$no_create" != yes; then
   exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
-  $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+  $ac_cs_success || { (exit 1); exit 1; }
 fi
 
 
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index 81f3e64..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,131 +0,0 @@
-# Portions of this file are subject to the following copyright.  See
-# the Net-SNMP's COPYING file for more details and other copyrights
-# that may apply:
-#
-# Portions 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.
-#
-
-#
-# Process this file with autoconf to produce a configure script.
-#
-AC_INIT([Net-SNMP], [5.7.2.1], [net-snmp-coders at lists.sourceforge.net])
-AC_PREREQ([2.63])
-AC_CONFIG_SRCDIR([agent/snmpd.c])
-AC_REVISION([$Revision$])
-
-AC_CONFIG_MACRO_DIR([m4])
-AC_CONFIG_HEADER(include/net-snmp/net-snmp-config.h)
-
-AC_MSG_CACHE_INIT()
-
-#
-# save the configure arguments
-#
-AC_DEFINE_UNQUOTED(NETSNMP_CONFIGURE_OPTIONS,"$ac_configure_args",
-  [configure options specified])
-CONFIGURE_OPTIONS="\"$ac_configure_args\""
-AC_SUBST(CONFIGURE_OPTIONS)
-
-##
-## Recommended structure:
-##
-#     information on the package
-#     checks for programs
-#     checks for libraries
-#     checks for header files
-#     checks for types
-#     checks for structures
-#     checks for compiler characteristics
-#     checks for library functions
-#     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
-#
-AC_SUBST(LMIBLIBS)
-AC_SUBST(AGENTLIBS)
-AC_SUBST(OTHERAGENTLIBOBJS)
-AC_SUBST(OTHERAGENTLIBLOBJS)
-AC_SUBST(OTHERAGENTLIBLFTS)
-
-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])
-AC_CONFIG_FILES([apps/snmpnetstat/Makefile:Makefile.top:apps/snmpnetstat/Makefile.in:Makefile.rules:apps/snmpnetstat/Makefile.depend])
-AC_CONFIG_FILES([agent/Makefile:Makefile.top:agent/Makefile.in:Makefile.rules:agent/Makefile.depend])
-AC_CONFIG_FILES([agent/helpers/Makefile:Makefile.top:agent/helpers/Makefile.in:Makefile.rules:agent/helpers/Makefile.depend])
-AC_CONFIG_FILES([agent/mibgroup/Makefile:Makefile.top:agent/mibgroup/Makefile.in:Makefile.rules:agent/mibgroup/Makefile.depend])
-AC_CONFIG_FILES([local/Makefile:Makefile.top:local/Makefile.in:Makefile.rules])
-AC_CONFIG_FILES([testing/Makefile:Makefile.top:testing/Makefile.in])
-AC_CONFIG_FILES([man/Makefile:Makefile.top:man/Makefile.in:Makefile.rules])
-AC_CONFIG_FILES([mibs/Makefile:Makefile.top:mibs/Makefile.in:Makefile.rules])
-AC_CONFIG_FILES([net-snmp-config:net-snmp-config.in],
-		[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)
-
-#
-# protect PACKAGE_* variables
-#
-AH_VERBATIM([PACKAGE_BUGREPORT],[/* Define to the address where bug reports for this package should be sent. */
-#ifndef PACKAGE_BUGREPORT
-#undef PACKAGE_BUGREPORT
-#endif])
-AH_VERBATIM([PACKAGE_NAME],[/* Define to the full name of this package. */
-#ifndef PACKAGE_NAME
-#undef PACKAGE_NAME
-#endif])
-AH_VERBATIM([PACKAGE_STRING],[/* Define to the full name and version of this package. */
-#ifndef PACKAGE_STRING
-#undef PACKAGE_STRING
-#endif])
-AH_VERBATIM([PACKAGE_TARNAME],[/* Define to the one symbol short name of this package. */
-#ifndef PACKAGE_TARNAME
-#undef PACKAGE_TARNAME
-#endif])
-AH_VERBATIM([PACKAGE_VERSION],[/* Define to the version of this package. */
-#ifndef PACKAGE_VERSION
-#undef PACKAGE_VERSION
-#endif])
-
-AC_OUTPUT
-
-AC_MSG_CACHE_DISPLAY()
-# Local Variables:
-# mode: Autoconf
-# comment-start: "#"
-# End:
diff --git a/configure.d/config_modules_agent b/configure.d/config_modules_agent
deleted file mode 100644
index 3272679..0000000
--- a/configure.d/config_modules_agent
+++ /dev/null
@@ -1,814 +0,0 @@
-# -*- autoconf -*-
-#
-# generate empty files
-#
-# Create include file list for snmp_vars.h to use.
-mibdir="agent/mibgroup"
-if test ! -d agent; then
-  mkdir agent
-fi
-if test ! -d agent/mibgroup; then
-  mkdir agent/mibgroup
-fi
-j="$mibdir/mib_module_includes.h  $mibdir/agent_module_includes.h \
-   $mibdir/mib_module_inits.h     $mibdir/agent_module_inits.h    \
-   $mibdir/mib_module_shutdown.h  $mibdir/agent_module_shutdown.h \
-   include/net-snmp/agent/mib_module_config.h                     \
-                   include/net-snmp/agent/agent_module_config.h   \
-   $mibdir/mib_module_dot_conf.h  $mibdir/agent_module_dot_conf.h"
-
-for i in $j; do
-  rm -f $i
-  echo "/* This file is automatically generated by configure.  Do not modify by hand. */" > $i
-done
-
-#
-# Do hairy agent module processing.
-#
-AC_MSG_CHECKING([for and configuring mib modules to use])
-
-# set up the CPP command
-MODULECPP="$CPP $PARTIALTARGETFLAGS -DNETSNMP_FEATURE_CHECKING -I${srcdir}/include -I${srcdir}/agent/mibgroup"
-if test "x$enable_mfd_rewrites" = "xyes"; then
-  MODULECPP="$MODULECPP -DNETSNMP_ENABLE_MFD_REWRITES"
-fi
-
-module_list=""
-mib_module_list=""
-agent_module_list=""
-new_with_mib_modules=`echo $with_mib_modules | $SED 's/,/ /g;'`
-new_with_out_mib_modules=`echo $with_out_mib_modules | $SED 's/,/ /g;'`
-
-# set up initial module list
-new_module_list="$new_with_mib_modules default_modules"
-
-# minor modifications
-if test "x$enable_agent" = "xno"; then
-   # minimum mib module list for snmptrapd
-   new_module_list="mibII/vacm_vars mibII/vacm_conf utilities/execute $new_with_mib_modules"
-   default_mibs=SNMPv2-MIB:IF-MIB:IP-MIB:TCP-MIB:UDP-MIB
-   default_mibs_install=" "
-elif test "x$mini_agent" = "xyes"; then
-   # define the mini agent flag to reduce our load list from default_mibs.h
-   MODULECPP="$MODULECPP -DNETSNMP_MINI_AGENT"
-fi
-
-test_modules="$new_module_list"
-new_module_list=""
-
-# remove modules that were explicitly excluded
-for i in $test_modules
- do
-  if echo " $new_with_out_mib_modules " | $GREP " $i " > /dev/null; then
-    mib_cfg_msg="mib module '$i' is both included and excluded."
-    AC_MSG_WARN([mib module conflict])
-    if test "x$with_mib_cfg_checks" = "xyes"; then
-      AC_MSG_WARN([user with    : $with_mib_modules])
-      AC_MSG_WARN([final with   : $new_module_list])
-      AC_MSG_WARN([user without : $with_out_mib_modules])
-      AC_MSG_WARN([final without: $new_with_out_mib_modules])
-      AC_MSG_ERROR([$mib_cfg_msg])
-    else
-      AC_MSG_WARN([$mib_cfg_msg It will be excluded])
-      AC_MSG_CACHE_ADD([*** MIB Module warning *** $mib_cfg_msg It has been excluded.])
-    fi
-  else
-    new_module_list="$new_module_list $i"
-  fi
-done
-
-AC_MSG_RESULT([$new_module_list.])
-
-#---------------------
-# loop over module list
-#
-all_warnings=""
-if test "x$with_mib_cfg_debug" = "xyes"; then
-   module_debug=1
-else
-   module_debug=0
-fi
-first_pass=1
-output_to=normal
-
-if test ! -d mk ; then
-  mkdir mk
-fi
-
-
-module_rules=mk/module_rules.mk
-echo "# contents below built automatically by configure; do not edit by hand" > $module_rules
-
-#
-# make file sub-pieces
-#
-for i in module_list_deps mib_module_list_deps agent_module_list_deps ; do
-  eval "$i=mk/${i}.mk"
-  echo "# contents below built automatically by configure; do not edit by hand" > mk/${i}.mk
-done
-
-#
-# variable settings sub-pieces
-#
-for i in module_list_code mib_module_list_code agent_module_list_code module_list mib_module_list agent_module_list ; do
-  eval "$i=mk/${i}.mk"
-  echo "# contents below built automatically by configure; do not edit by hand" > mk/${i}.mk
-  echo "$i= \\" >> mk/${i}.mk
-done
-
-echo $ECHO_N "echo " $ECHO_C > mk/MODULE_LIST.mk
-MODULE_LIST=mk/MODULE_LIST.mk
-
-
-#---------------------
-# until we have an empty module list...
-#   (modules may add new modules, and until all dependencies are done...)
-#
-while test "x$new_module_list" != "x"; do
-  AC_MSG_MODULE_DBG(-e,"\n****************************************************************")
-  AC_MSG_MODULE_DBG("nml: $new_module_list")
-
-  #---------------------
-  # loop over all the modules in the current list
-  #
-  for j in $new_module_list
-    do
-
-    #---------------------
-    # figure out which sub-blocks to build in parts
-    if echo "$j" | $GREP "=" ; then
-       # build a shared object file
-       # format: sofilename=module1:module2
-       # XXX: currently doesn't do this
-       dl_name=`echo $j | $SED 's/=.*//'`
-       dl_names="$dl_names $dl_name"
-       dl_objects=`echo $j | $SED 's/.*=//'`
-       module_sublist=`echo $dl_objects | $SED 's/:/ /g'`
-       saved_sublist=""
-       saved_sublist_code=""
-       output_to=separate
-
-       # create output files
-       # these actually get nuked later
-       output_inits="agent/mibgroup/${dl_name}-dll.c"
-       output_hdrs="agent/mibgroup/${dl_name}-hdrs.h"
-    else
-       # not a special token invocation
-       module_sublist=$j
-       output_to=normal
-       output_t=
-    fi
-
-    while test "x$module_sublist" != "x" ; do
-
-    #---------------------
-    # loop over all the modules in the sub list
-    for i in $module_sublist
-    do
-
-    AC_MSG_MODULE_DBG(-e "\n================================================================")
-    AC_MSG_MODULE_DBG("testing $i")
-    need_header=0
-
-    #---------------------
-    # 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
-#include "$srcdir/$mibdir/$i.h"]])])
-    mv conftest.$ac_ext module_tmp_header.h
-
-    #---------------------
-    # macro: config_belongs_in(ARG)
-    #   ARG: either
-    #     - mib_module   => libnetsnmpmibs   (default)
-    #     - agent_module => libnetsnmpagent
-    #
-    AH_TOP([#define config_belongs_in(x)])
-    module_type=mib_module
-    if test -f $srcdir/$mibdir/$i.h; then
-      changequote(, )
-      module_type=`$MODULECPP module_tmp_header.h | \
-                   $SED -n 's at .*config_belongs_in(\([^)]*\)).*@\1 at p'`
-      changequote([, ])
-    fi
-    if test "x$module_type" = "x" ; then
-      module_type=mib_module
-    fi
-    if test "x$output_to" = "xnormal" ; then
-     	output_inits="$mibdir/${module_type}_inits.h"
-     	output_hdrs="$mibdir/${module_type}_includes.h"
-    fi
-
-    #--------------------
-    # check for duplicates within the dll system. 
-    #   - if found in a dll, then remove from the dll and add to main
-    dblfix=""
-    for dltest in $dl_names ; do
-      eval mod_files="\"\$dl_${dltest}_files\""
-      if echo " $mod_files " | $GREP " $i " > /dev/null; then
-        # some dll module has already seen this, unload it from that list
-        # and include it in the core (again)
-        AC_MSG_MODULE_DBG("removing $i from $dltest")
-        mod_files=`echo " $mod_files " | $SED "s@ $i @@"`
-        dblfix="__XXX__"
-        eval "dl_${dltest}_files=\"$mod_files\""
-
-        module_list="$module_list $i"
-	echo "read_config.lo: mibgroup/$i.h" >> $module_list_deps
-	if test $module_type = "agent_module" ; then
- 	    echo "snmp_vars.lo: mibgroup/$i.h" >> $agent_module_list_deps
-        else
- 	    echo "mib_modules.lo: mibgroup/$i.h" >> $mib_module_list_deps
-        fi
-        eval ${module_type}_list="\"\$${module_type}_list $i\""
-	echo "	$i \\" >> $module_list_code
-	echo $ECHO_N " $i" $ECHO_C >> $MODULE_LIST
-        eval tmpfilevar=\$`echo ${module_type}_list_code`
-        echo "	$i \\" >> $tmpfilevar
-
-	# XXX: add this to the main init list; this is possible not
-	# quite in the right spot any longer but we're stuck with it.
-	# Adding it back to the original ordered spot would be a
-	# nightmare.  Ok, we're already in nightmare code so that
-	# wolud have to be a night-terror.
-        mnm=`echo $i | $SED 's/.*\///;s/\.c$//;'`
-	output_inits_tmp="$mibdir/${module_type}_inits.h"
-	echo "  if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits_tmp
-        # XXX: even worse, we loose whether the header is needed or not.
-     	output_hdrs_tmp="$mibdir/${module_type}_includes.h"
-        echo '#include "'"mibgroup/$i.h"'"' >> $output_hdrs_tmp
-      fi
-    done
-
-    #---------------------
-    # make sure module wasn't explicitly excluded, or already added
-    #
-    if test "x$dblfix" != "x" ; then
-      AC_MSG_MODULE_DBG("$i was duplicated -- putting into main")
-    elif echo " $new_with_out_mib_modules " | $GREP " $i " > /dev/null; then
-      AC_MSG_MODULE_DBG("$i was excluded")
-    elif echo " $module_list " | $GREP " $i " > /dev/null; then
-      AC_MSG_MODULE_DBG("$i already tested")
-    else
-
-      #---------------------
-      # process modules header, checking for config_ pseudo-macros
-      #
-
-      #---------------------
-      # does the header file for the module exist?
-      #   macros are only processed if it does
-      if test -f $srcdir/$mibdir/$i.h; then
-        new_list=""
-
-        #---------------------
-      	# macro: config_exclude(modules)
-      	#  - lists conflicts with other modules
-      	#    - EG: new MIB implementations exclude old and vice-versa
-      	#
-        # check if $i has any conflicts
-        #
-        AH_TOP([#define config_exclude(x)])
-        new_list_excl=`$MODULECPP module_tmp_header.h | \
-                       $SED -n 's/.*config_exclude(\(.*\)).*/\1/p'`
-	if test "x$new_list_excl" != "x"; then
-          AC_MSG_MODULE_DBG("$i excludes $new_list_excl")
-	  for j in $new_list_excl
-	    do
-	    if echo " $module_list $new_mib_module_list $new_list_two " | $GREP " $j " > /dev/null; then
-              mib_cfg_msg="mib module '$i' excludes module '$j' but another module requires it"
-              AC_MSG_WARN([mib module error])
-              if test "x$with_mib_cfg_checks" = "xyes"; then
-	        AC_MSG_ERROR([$mib_cfg_msg])
-              else
-	        AC_MSG_WARN([$mib_cfg_msg])
-                AC_MSG_CACHE_ADD([*** MIB Module warning *** $mib_cfg_msg])
-              fi
-	    else
-	      new_with_out_mib_modules="$j $new_with_out_mib_modules"
-              AC_MSG_MODULE_DBG("$j added to excluded list")
-	    fi
-	  done
-	fi
-
-        #---------------------
-      	# macro: config_arch_require(ARCH,modules)
-      	#  - lists modules required for a given ARCH
-        #
-        # check if $i has any architecture specific requirements
-        #
-        AH_TOP([#define config_arch_require(x,y)])
-        changequote(, )
-        new_list_arch=`$MODULECPP module_tmp_header.h | \
-                       $SED -n 's/.*config_arch_require( *\([^ ]*\) *, *\([^ ]*\) *).*/\1-xarchx-\2/p'`
-        changequote([, ])
-	if test "x$new_list_arch" != "x"; then
-          for j in $new_list_arch
-	    do
-	    archtest=`echo $j | $SED 's/-xarchx-.*//'`
-	    # target_os may have been changed to a #define of 1...
-	    if test "x$archtest" = "x1" -o "x$target_os" = "x$archtest" -o "x$PARTIALTARGETOS" = "x$archtest"; then
-	      new_list="$new_list `echo $j | $SED 's/.*-xarchx-//'`"
-              AC_MSG_MODULE_DBG(" $i required adding arch files: `echo $j | $SED 's/.*-xarchx-//'`")
-	    fi
-	  done
-	fi
-        AC_MSG_MODULE_DBG(" $i required arch files: $new_list")
-
-        #---------------------
-      	# macro: config_version_require((base, version, version-modules, ...))
-      	#  - lists alternative modules used from different versions.
-        #
-        AH_TOP([#define config_version_require(x)])
-        [new_list_alt3=`$MODULECPP module_tmp_header.h | \
-            $AWK '
-                BEGIN {
-                    if("'"$enable_new_features"'" == "yes")
-                        method="max";
-                    else if("'"$enable_old_features"'" == "yes")
-                        method="max-less";
-                    else
-                        method="max-less-equal";
-                    FS = ".";
-                    split("'"$with_features_of"'", a);
-                    version=sprintf("%03d%03d%03d%03d", a[1], a[2], a[3], a[4]);
-                }
-                /config_version_require/ {
-                    gsub("^.*config_version_require *\\\\(\\\\(", "");
-                    gsub("\\\\)\\\\).*$", "");
-                    gsub(", *", ",");
-                    FS = ",";
-                    n = split($0, a);
-                    FS = ".";
-                    actver = "000000000000";
-                    actstr = a[1];
-                    for(i = 2; i < n; i += 2) {
-                        split(a[i], b);
-                        curver=sprintf("%03d%03d%03d%03d", b[1], b[2], b[3], b[4]);
-                        if (curver > actver && (method != "max-less" || curver < version) && (method != "max-less-equal" || curver <= version)) {
-                            actver = curver;
-                            actstr = a[i + 1];
-                        }
-                    }
-                    printf(" %s", actstr);
-                }'`]
-        AC_MSG_MODULE_DBG(" $i required versioned features: $new_list_alt3")
-        new_list="${new_list}${new_list_alt3}"
-
-        #---------------------
-      	# macro: config_require(modules)
-      	#  - lists modules required for this module
-        #
-        # check if $i has any other required modules
-        #
-        AH_TOP([#define config_require(x)])
-        new_list="$new_list `$MODULECPP module_tmp_header.h | \
-                  $SED -n 's/.*config_require(\(.*\)).*/\1/p'`"
-        AC_MSG_MODULE_DBG(" $i will test: $new_list")
-	if test "x$new_list" != "x"; then
-	  for j in $new_list
-	    do
-            AC_MSG_MODULE_DBG(-n " $i wants to add $j: ")
-	    if test ! -f $srcdir/$mibdir/$j.h -a ! -f $srcdir/$mibdir/$j.c; then
-              AC_MSG_WARN([mib module error])
-	      AC_MSG_ERROR([mib module "$i" requires module "$j" but $j.h or $j.c could not be found in $srcdir/$mibdir])
-	    elif echo " $new_with_out_mib_modules " | $GREP " $j " > /dev/null; then
-	      if test "x$i" != "xdefault_modules" ; then
-                mib_cfg_msg="mib module '$i' requires module '$j' but someone told me to compile without it"
-                AC_MSG_WARN([mib module error])
-                if test "x$with_mib_cfg_checks" = "xyes"; then
-                  AC_MSG_ERROR([$mib_cfg_msg])
-                else
-                  AC_MSG_WARN([$mib_cfg_msg])
-                  AC_MSG_CACHE_ADD([*** MIB Module warning *** $mib_cfg_msg])
-                fi
-#	    elif echo " $module_list $new_list_two $new_module_list " | $GREP " $j " > /dev/null; then
-#              AC_MSG_MODULE_DBG("  $j included previously")
-              fi
-	    else
-	      new_list_two="$new_list_two $j"
-              AC_MSG_MODULE_DBG("  $j included")
-	    fi
-	  done
-	fi
-
-        #---------------------
-      	# macro: config_add_mib(SOME-MIB)
-      	#  - lists MIBs to be added to the default to-load list.
-        #
-        # check if $i has any mibs to add
-        #
-        AH_TOP([#define config_add_mib(x)])
-        new_mibs=`$MODULECPP module_tmp_header.h | \
-                  $SED -n 's/.*config_add_mib(\(.*\)).*/\1/p'`
-	if test "x$new_mibs" != "x"; then
-	    for j in $new_mibs
-		do
-		if test "x`echo :$default_mibs: | $GREP :$j:`" = "x"; then
-		    default_mibs="$default_mibs:$j"
-		fi
-		if test -f $srcdir/mibs/$j.txt; then
-		    if echo $default_mibs_install | $GREP " $j " > /dev/null; then
-			    :
-		    else
-			    default_mibs_install="$default_mibs_install $j.txt"
-		    fi
-		fi
-	    done
-	fi # new mibs
-
-        #-------------------
-        # add the current module to the list of stuff to compile, etc.
-        #
-        # add $i to module list
-        #
-        AC_MSG_MODULE_DBG("  $i added (based on $i.h)")
-        module_list="$module_list $i"
-        eval ${module_type}_list="\"\$${module_type}_list $i\""
-
-	echo "read_config.lo: mibgroup/$i.h" >> $module_list_deps
-	if test $module_type = "agent_module" ; then
- 	    echo "snmp_vars.lo: mibgroup/$i.h" >> $agent_module_list_deps
-        else
- 	    echo "mib_modules.lo: mibgroup/$i.h" >> $mib_module_list_deps
-        fi
-
-        #-------------------
-        # check for unsupported config_load_mib
-        #
-        if $MODULECPP module_tmp_header.h | $GREP -q config_load_mib; then
-          AC_MSG_WARN([mib module error])
-      	  AC_MSG_WARN([mib module "$i" uses the "config_load_mib" directive, which is no longer supported.  It probably won't work.])
-        fi # grep config_load_mib
-
-        #-------------------
-        # check for config_parse_dot_conf
-        #  (generally not used any longer; old auto-load a .conf token)
-        #
-        AH_TOP([#define config_parse_dot_conf(w,x,y,z)])
-        changequote(, )
-        $MODULECPP module_tmp_header.h | \
-        $SED -n 's at .*config_parse_dot_conf(\([^)]*\), *\([^),]*\), *\([^),]*\), *\([^),]*\)).*@register_config_handler("snmpd",\1, \2, \3, \4);@p' >> $mibdir/mib_module_dot_conf.h
-	changequote([, ])
-
-        #---------------------
-      	# macro: config_error(error text)
-      	#  - used to signal a configuration error from a module
-        #
-        # check if $i has any errors, or warnings
-        #
-        AH_TOP([#define config_error(x)])
-        error=`$MODULECPP module_tmp_header.h | \
-               $SED -n 's/.*config_error(\(.*\)).*/\1/p'`
-	if test "x$error" != "x"; then
-          echo
-          echo
-          AC_MSG_ERROR([$i: *** $error ***])
-        fi
-
-        #---------------------
-      	# macro: config_warning(warning text)
-      	#  - used to signal a configuration "warning" to be printed to the user
-        #
-        AH_TOP([#define config_warning(x)])
-        warning=`$MODULECPP module_tmp_header.h | \
-                 $SED -n 's/.*config_warning(\(.*\)).*/\1/p'`
-	if test "x$warning" != "x"; then
-          all_warnings="$all_warnings $warning
-"
-        fi
-
-      #---------------------
-      # Check for a .c file if the .h didn't exist
-      #
-      elif test -f $srcdir/$mibdir/$i.c; then
-        if echo " $module_list $new_list_two $new_module_list " | $GREP " $i      " > /dev/null; then
-           AC_MSG_MODULE_DBG("  $i already included")
-        else
-           AC_MSG_MODULE_DBG("  $i added (based on $i.c)")
-	   module_list="$module_list $i"
-	   mib_module_list="$mib_module_list $i"
-        fi
-
-      #---------------------
-      # No .h or .c = error!  (typo?)
-      #
-      else # no $i.h or $i.c
-        AC_MSG_WARN([mib module error])
-	AC_MSG_ERROR([module files $i.h or $i.c could not be found in $srcdir/$mibdir])
-      fi # no $i.h
-
-      #-------------------
-      # check for init/shutdown routines too
-      #
-      has_c_code=no
-      if test -f $srcdir/$mibdir/$i.c; then
-        if test "x$output_to" = "xnormal" ; then
-	  echo "	$i \\" >> $module_list_code
-  	  echo $ECHO_N " $i" $ECHO_C >> $MODULE_LIST
-          eval tmpfilevar=\$`echo ${module_type}_list_code`
-          echo "	$i \\" >> $tmpfilevar
-        else
-          eval "dl_${dl_name}_files=\"\$dl_${dl_name}_files $i\""
-          saved_sublist_code="$saved_sublist_code $i"
-        fi
-        mnm=`echo $i | $SED 's/.*\///;s/\.c$//;'`
-        AC_MSG_MODULE_DBG(-e "\nchecking '$srcdir/$mibdir/$i.c' ($mnm/`basename $i`) C file for init/shutdown")
-        if test "x$mnm" != "x`basename $i`"; then
-           AC_MSG_WARN([mib module error])
-	   AC_MSG_ERROR([conflicting names: $mnm != `basename $i`])
-        fi
-        temp_init=`$GREP init_$mnm $srcdir/$mibdir/$i.c | $GREP -v _init_$mnm`
-	if test "x$temp_init" != "x"; then
-            AC_MSG_MODULE_DBG(-e "adding init_$mnm() to list")
-            need_header=1
-	    echo "  if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits
-	fi
-	$GREP shutdown_$mnm $srcdir/$mibdir/$i.c > /dev/null
-        if test $? -eq 0 ; then
-            if test $module_debug -eq 1; then
-              echo -e "\nadding shutdown_$mnm() to list"
-            fi
-            need_header=1
-	    echo "  if (should_init(\"$mnm\")) shutdown_$mnm();" >> $mibdir/${module_type}_shutdown.h
-	fi
-      fi # test -f $srcdir/$mibdir/$i.c
-
-      #-------------------
-      # if there is a shutdown/init list,
-      #
-      if test $need_header -eq 1 ; then
-         echo '#include "'"mibgroup/$i.h"'"' >> $output_hdrs
-      else
-         echo '/*#include "'"mibgroup/$i.h"'"*/' >> $output_hdrs
-      fi
-
-      #-------------------
-      # check for output directory (for building outside of source tree
-      #
-      changequote(, )
-      if test "x`echo $i | $SED 's/\///g;'`" != "x$i"; then
-	mnd=`echo $i | $SED 's/\/[^/]*$//;'`
-	if test ! -d ./$mibdir/$mnd; then
-	    module_directories="$module_directories ./$mibdir/$mnd"
-	fi
-      fi # module directory test
-      changequote([, ])
-
-      #-------------------
-      # define USING_*_MODULE
-      #
-      changequote(, )
-      sym="`echo ${i} | $SED 's/[^a-zA-Z0-9_]/_/g' | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`"
-      changequote([, ])
-      echo "/* Define if compiling with the ${i} module files.  */" >> include/net-snmp/agent/${module_type}_config.h
-      echo "#define USING_${sym}_MODULE 1" >> include/net-snmp/agent/${module_type}_config.h
-      echo " " >> include/net-snmp/agent/${module_type}_config.h
-
-      #-------------------
-      echo $ECHO_N " $i$ECHO_C"
-    fi #
-    done # for i in $module_sublist
-
-    if test "$output_to" = "separate" ; then
-      if test "x$new_list_two" = "x" ; then
-        # no new sub-modules to add to the current target
-        output_to="normal"
-
-        dllcleans="$saved_sublist_o $dllcleans"
-        output_inits=""
-        module_sublist=""
-      else
-        # a module had sub-modules required; keep goin'
-        saved_sublist="$saved_sublist $module_sublist"
-        module_sublist="$new_list_two"
-        new_list_two=""
-      fi
-    else
-      module_sublist=""
-    fi
-
-    done # while module_sublist
-  done # for j in $new_module_list
-
-  # remember the top level modules for later reporting
-  if test $first_pass = 1 ; then
-    # remember this list for later reporting
-    top_level_modules="$new_module_list => $new_list_two"
-    first_pass=0
-  fi
-  #-------------------
-  # if $i added new modules vis config_*,
-  # check those modules for requirements too
-  #
-  # transfer the new module to check list to the normal variable
-  #
-  if test "x$new_list_two" ; then
-    output_to=normal
-  fi
-  new_module_list="$new_list_two"
-  new_list_two=""
-done # while test "x$new_module_list" != "x"; do
-echo ""
-
-#--------------------
-# construct the dll code files and make rules.  This can't be done
-# until now because duplicate use of a module means it gets removed
-# from the dll and put into the main agent.
-#
-for i in $dl_names ; do
-  eval mod_files="\"\$dl_${i}_files\""
-  echo "components in the $i dll: $mod_files"
-
-  output_inits="agent/mibgroup/${i}-dll.c"
-  output_hdrs="agent/mibgroup/${i}-hdrs.h"
-
-  AC_MSG_MODULE_DBG("creating dll file: $output_inits")
-  for ofile in $output_inits $output_hdrs ; do
-    if test -f $ofile ; then
-      if $GREP "this file created automatically by configure" $ofile > /dev/null 2>&1 ; then
-  	:
-      else
-  	AC_MSG_ERROR([$ofile already existed ; can't build dll object $i])
-      fi
-    fi
-    cat > $ofile << EOFIF
-/* xDo not edit; this file created automatically by configure */
-EOFIF
-  done
-
-  cat >> $output_inits << EOFOC
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-#include "${i}-hdrs.h"
-void
-init_$i(void) {
-EOFOC
-
-  # create the .so rule
-  saved_sublist_o=`echo "$mod_files " | $SED 's/^ *//g;s/  */.o /g;'`
-
-  # create the rules for each object
-  for j in $mod_files ; do
-    cat >> $module_rules << EOFR
-$j.o: $j.c
-	\$(CC) -c \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ \$<
-
-EOFR
-    mnm=`echo $j | $SED 's/.*\///;s/\.c$//;'`
-    echo "  if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits
-  done
-
-  # create the rule for the .so and wrapper code
-  cat >> $module_rules << EOFM
-${i}-dll.o: ${i}-dll.c
-	\$(CC) -c \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ \$<
-
-${i}.so: $saved_sublist_o ${i}-dll.o
-	\$(CC) \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ $saved_sublist_o ${i}-dll.o
-
-EOFM
-        cat >> $output_inits << EOFOCFIN
-}
-EOFOCFIN
-
-done
-
-# cleanup
-rm -f conftest.$ac_ext module_tmp_header.h
-
-#-------------------
-# build module lists for Makefiles
-#
-changequote(, )
-
-for i in module_list_o module_list_c module_list_lo module_list_ft mib_module_list_o mib_module_list_c mib_module_list_lo mib_module_list_ft mibgroup_list_o mibgroup_list_lo mibgroup_list_ft agent_module_list_o agent_module_list_c agent_module_list_lo agent_module_list_ft agentgroup_list_o agentgroup_list_lo agentgroup_list_ft ; do
-  eval "$i=mk/${i}.mk"
-done
-
-$SED 's/^module_list_code/module_list_o/;s/\([^=]\)  *\\/\1.o \\/g'  < $module_list_code  > $module_list_o
-$SED 's/^module_list_code/module_list_c/;s/\([^=]\)  *\\/\1.c \\/g'  < $module_list_code  > $module_list_c
-$SED 's/^module_list_code/module_list_lo/;s/\([^=]\)  *\\/\1.lo \\/g' < $module_list_code  > $module_list_lo
-$SED 's/^module_list_code/module_list_ft/;s/\([^=]\)  *\\/\1.ft \\/g' < $module_list_code  > $module_list_ft
-
-$SED 's/^mib_module_list_code/mib_module_list_o/;s/\([^=]\)  *\\/\1.o \\/g'  < $mib_module_list_code  > $mib_module_list_o
-$SED 's/^mib_module_list_code/mib_module_list_c/;s/\([^=]\)  *\\/\1.c \\/g'  < $mib_module_list_code  > $mib_module_list_c
-$SED 's/^mib_module_list_code/mib_module_list_lo/;s/\([^=]\)  *\\/\1.lo \\/g' < $mib_module_list_code  > $mib_module_list_lo
-$SED 's/^mib_module_list_code/mib_module_list_ft/;s/\([^=]\)  *\\/\1.ft \\/g' < $mib_module_list_code  > $mib_module_list_ft
-
-$SED 's/^mib_module_list_o/mibgroup_list_o/;s@\([^ 	]*\)\.o at mibgroup/\1.o at g' < $mib_module_list_o > $mibgroup_list_o
-$SED 's/^mib_module_list_lo/mibgroup_list_lo/;s@\([^ 	]*\)\.lo at mibgroup/\1.lo at g' < $mib_module_list_lo > $mibgroup_list_lo
-$SED 's/^mib_module_list_ft/mibgroup_list_ft/;s@\([^ 	]*\)\.ft at mibgroup/\1.ft at g' < $mib_module_list_ft > $mibgroup_list_ft
-
-$SED 's/^agent_module_list_code/agent_module_list_o/;s/\([^=]\)  *\\/\1.o \\/g'  < $agent_module_list_code  > $agent_module_list_o
-$SED 's/^agent_module_list_code/agent_module_list_c/;s/\([^=]\)  *\\/\1.c \\/g'  < $agent_module_list_code  > $agent_module_list_c
-$SED 's/^agent_module_list_code/agent_module_list_lo/;s/\([^=]\)  *\\/\1.lo \\/g' < $agent_module_list_code  > $agent_module_list_lo
-$SED 's/^agent_module_list_code/agent_module_list_ft/;s/\([^=]\)  *\\/\1.ft \\/g' < $agent_module_list_code  > $agent_module_list_ft
-
-$SED 's/^agent_module_list_o/agentgroup_list_o/;s@\([^ 	]*\)\.o at mibgroup/\1.o at g' < $agent_module_list_o > $agentgroup_list_o
-$SED 's/^agent_module_list_lo/agentgroup_list_lo/;s@\([^ 	]*\)\.lo at mibgroup/\1.lo at g' < $agent_module_list_lo > $agentgroup_list_lo
-$SED 's/^agent_module_list_ft/agentgroup_list_ft/;s@\([^ 	]*\)\.ft at mibgroup/\1.ft at g' < $agent_module_list_ft > $agentgroup_list_ft
-
-for i in module_list_o module_list_c module_list_lo module_list_ft mib_module_list_o mib_module_list_c mib_module_list_lo mib_module_list_ft mibgroup_list_o mibgroup_list_lo mibgroup_list_ft agent_module_list_o agent_module_list_c agent_module_list_lo agent_module_list_ft agentgroup_list_o agentgroup_list_lo agentgroup_list_ft ; do
-	# hpux make (at least) doesn't like a trailing \ on the last
-	# line even when the next line contains nothing but
-	# whitespace.
-	lasttoken=`awk '{lasttoken=$1}END{print lasttoken}' mk/$i.mk`
-	$SED "s#$lasttoken \\\\#$lasttoken#" < mk/$i.mk > mk/$i.mk.tmp
-	mv mk/$i.mk.tmp mk/$i.mk
-
-	# add a closing comment
-	echo "" >> mk/$i.mk
-	echo "# end configure generated code" >> mk/$i.mk
-done
-
-changequote([, ])
-
-if test $module_debug -eq 1; then
-   echo -e "\nFinal module list: $module_list_code"
-   exit
-fi
-if test "x$with_mib_cfg_checks" = "xyes"; then
-  AC_MSG_CACHE_ADD([Agent Module list: $module_list_code])
-fi
-AC_SUBST_FILE(MODULE_LIST)
-AC_SUBST_FILE(module_list_c)
-AC_SUBST_FILE(module_list_o)
-AC_SUBST_FILE(module_list_lo)
-AC_SUBST_FILE(module_list_ft)
-AC_SUBST_FILE(mib_module_list_c)
-AC_SUBST_FILE(mib_module_list_o)
-AC_SUBST_FILE(mib_module_list_lo)
-AC_SUBST_FILE(mib_module_list_ft)
-AC_SUBST_FILE(agent_module_list_c)
-AC_SUBST_FILE(agent_module_list_o)
-AC_SUBST_FILE(agent_module_list_lo)
-AC_SUBST_FILE(agent_module_list_ft)
-AC_SUBST_FILE(mibgroup_list_o)
-AC_SUBST_FILE(mibgroup_list_lo)
-AC_SUBST_FILE(mibgroup_list_ft)
-AC_SUBST_FILE(agentgroup_list_o)
-AC_SUBST_FILE(agentgroup_list_lo)
-AC_SUBST_FILE(agentgroup_list_ft)
-
-AC_SUBST(default_mibs_install)
-AC_SUBST(dllcleans)
-AC_SUBST_FILE(module_rules)
-AC_SUBST_FILE(module_list_deps)
-AC_SUBST_FILE(mib_module_list_deps)
-AC_SUBST_FILE(agent_module_list_deps)
-
-AC_MSG_RESULT(.)
-
-if test $module_debug -eq 1; then
-AC_MSG_CACHE_ADD(Agent MIB code:            $module_list)
-fi
-AC_MSG_CACHE_ADD(Agent MIB code:            $top_level_modules)
-
-# end hairy agent module processing
-
-AC_MSG_CHECKING([if directories need to be created])
-for i in $module_directories; do
-  $srcdir/mkinstalldirs $i
-done
-AC_MSG_RESULT(.)
-
-#-------------------
-# Define default mibs
-#
-AC_MSG_CHECKING([default mib files to read])
-if test "x$NETSNMP_DEFAULT_MIBS" = "x"; then
-  NETSNMP_DEFAULT_MIBS="$default_mibs"
-fi
-if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
-  # mingw32 and cygwin use ';' as the environment variable separator char
-  ENV_SEPARATOR=";"
-  NETSNMP_DEFAULT_MIBS=`echo "$NETSNMP_DEFAULT_MIBS" | $SED 's/:/;/g'`
-  default_mibs=`echo "$default_mibs" | $SED 's/:/;/g'`
-else
-  ENV_SEPARATOR=":"
-fi
-AC_SUBST(ENV_SEPARATOR)
-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
deleted file mode 100644
index b6609c1..0000000
--- a/configure.d/config_modules_lib
+++ /dev/null
@@ -1,232 +0,0 @@
-# -*- autoconf -*-
-#
-# Maybe add library extensions for thread mutex locking.
-#
-
-if test "x$with_res_locks" = "xyes"; then
-  AC_DEFINE(NETSNMP_REENTRANT, 1,
-    [Define to 1 if you want to build with reentrant/threaded
-     code (incomplete).])
-
-    case $target_os in
-
-    aix*)
-	CC_RUNTIME_ARG="$CC_RUNTIME_ARG -lpthreads"
-	;;
-
-    *)
-	;;
-
-    esac
-fi
-
-#
-# Add platform-specific source files.
-#
-AC_MSG_CHECKING([for platform-specific source])
-other_src_list=""
-other_ftobjs_list=""
-other_lobjs_list=""
-other_objs_list=""
-other_agentobjs=""
-other_lagentobjs=""
-other_ftagentobjs=""
-other_trapd_objects=""
-
-# Win32 service code
-if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
-  other_src_list="$other_src_list winservice.c winservicerc.rc"
-  other_objs_list="$other_objs_list winservice.o winservicerc.o"
-  other_lobjs_list="$other_lobjs_list winservice.lo winservicerc.lo"
-  other_ftobjs_list="$other_ftobjs_list winservice.ft winservicerc.ft"
-  other_agentobjs="../snmplib/winservicerc.o"
-  other_lagentobjs="../snmplib/winservicerc.lo"
-  other_ftagentobjs="../snmplib/winservicerc.lo"
-  other_trapd_objects="../snmplib/winservicerc.o" 
-fi
-  
-# Win32 pipes
-if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
-  other_src_list="$other_src_list winpipe.c"
-  other_objs_list="$other_objs_list winpipe.o"
-  other_lobjs_list="$other_lobjs_list winpipe.lo"
-  other_ftobjs_list="$other_ftobjs_list winpipe.ft"
-fi
-
-AC_SUBST(other_src_list)
-AC_SUBST(other_objs_list)
-AC_SUBST(other_lobjs_list)
-AC_SUBST(other_ftobjs_list)
-AC_SUBST(other_agentobjs)
-AC_SUBST(other_lagentobjs)
-AC_SUBST(other_ftagentobjs)
-AC_SUBST(other_trapd_objects)
-
-AC_MSG_RESULT([$other_src_list $other_objs_list $other_lobjs_list])
-AC_MSG_RESULT([$other_agentobjs $other_lagentobjs $other_trapd_objects])
-  
-#
-# Create directory structure for build
-#
-if test ! -d include; then
-  mkdir include
-fi
-if test ! -d include/net-snmp; then
-  mkdir include/net-snmp
-fi
-if test ! -d include/net-snmp/agent; then
-  mkdir include/net-snmp/agent
-fi
-if test ! -d include/net-snmp/library; then
-  mkdir include/net-snmp/library
-fi
-if test ! -d include/ucd-snmp; then
-  mkdir include/ucd-snmp
-fi
-
-if test ! -d snmplib; then
-  mkdir snmplib
-fi
-if test ! -d snmplib/transports ; then
-  mkdir snmplib/transports
-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)
-AC_SUBST(transport_ftobj_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)
-
-# cleanup
-rm -f module_tmp_header.h
-
-#
-# Security modules to use
-# 
-
-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) 	 
-AC_SUBST(security_lobj_list)
-AC_SUBST(security_ftobj_list)
-AC_MSG_RESULT($new_with_security)
-AC_MSG_CACHE_ADD(SNMPv3 Security Modules:    $new_with_security)
-
-#
-# Handle the special case of KSM to see which crypto API we support
-#
-
-ac_cv_NETSNMP_USE_KERBEROS_MIT=no
-rebuilt_new_with_security=
-already_checked_krb5=no
-
-for sec in $new_with_security
-do
-  if test "x$sec" = "xksm" -a "xyes" = "x$already_checked_krb5"; then
-    continue
-  fi
-  already_checked_krb5=yes
-
-  if test x$sec != xksm; then
-    rebuilt_new_with_security="$rebuilt_new_with_security $sec"
-  else
-    if test no = $trykrb5; then
-      AC_MSG_NOTICE([configured not to use krb5. disabling ksm])
-      continue
-    fi
-
-    AC_PATH_PROG([krb5_config],krb5-config,[no],$krb5path/bin:$PATH)
-
-    if test no != $krb5_config; then
-      CPPFLAGS="$CPPFLAGS `$krb5_config --cflags`"
-      LIBS="$LIBS `$krb5_config --libs`"
-    elif test $krb5path != no; then
-      AC_ADD_SEARCH_PATH($krb5path)
-    else
-      AC_ADD_SEARCH_PATH(/usr/kerberos)
-    fi
-
-    AC_MSG_CHECKING([for krb5])
-    AC_CACHE_VAL(ac_cv_have_krb5,
-      AC_CHECK_LIB(krb5, krb5_init_context,
-	ac_cv_have_krb5=yes, ac_cv_have_krb5=no
-      )
-    )
-
-    if test $ac_cv_have_krb5 = no; then
-      if test "x$askedkrb5" = "xyes"; then
-	AC_MSG_ERROR(Asked to use krb5 but I couldn't find it.)
-      fi
-      AC_MSG_RESULT(no. disabling ksm)
-      continue
-    fi
-      
-    AC_MSG_RESULT(yes)
-    rebuilt_new_with_security="$rebuilt_new_with_security ksm"
-
-    AC_MSG_CHECKING([[for heimdal]])
-    AC_CACHE_VAL(ac_cv_heimdal,
-    [AC_TRY_COMPILE(
-      [#include <krb5.h>],
-      [const char *v = heimdal_version;],
-      ac_cv_heimdal=yes,
-      ac_cv_heimdal=no
-    )])
-    AC_MSG_RESULT($ac_cv_heimdal)
-    if test $ac_cv_heimdal = yes; then
-      AC_DEFINE(NETSNMP_USE_KERBEROS_HEIMDAL, 1,
-        [Define this if you're using Heimdal Kerberos])
-      if test no = $krb5_config; then
-	LIBS="$LIBS -lkrb5 -lasn1 -lcom_err -lroken"
-      fi
-    elif test no = $krb5_config; then
-	LIBS="$LIBS -lkrb5 -lcom_err"
-    fi
-
-    AC_MSG_CHECKING([to see which crypto API we need to use])
-    AC_CHECK_FUNC(krb5_c_encrypt,[
-    AC_CACHE_VAL(ac_cv_NETSNMP_USE_KERBEROS_MIT,
-      AC_CHECK_LIB(k5crypto, krb5_init_context,
-	ac_cv_NETSNMP_USE_KERBEROS_MIT=yes, ac_cv_MIT_NEW_CRYPTo=no
-      )
-    )
-
-    if test yes = $ac_cv_NETSNMP_USE_KERBEROS_MIT; then
-      AC_MSG_RESULT(new MIT crypto API)
-      AC_DEFINE(NETSNMP_USE_KERBEROS_MIT, 1,
-        [Define this if we're using the new MIT crypto API])
-      if test no = $krb5_config; then
-	LIBS="$LIBS -lk5crypto"
-      fi
-    else
-      AC_MSG_RESULT(old MIT crypto API)])
-    fi
-  fi
-done
-
-new_with_security=$rebuilt_new_with_security
-
-#
-# Detect lm_sensors version
-#
-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 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
deleted file mode 100644
index 823ca7d..0000000
--- a/configure.d/config_modules_security_modules
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- sh -*-
-security_def_list="usm"
-security_src_list=""
-security_obj_list=""
-security_lobj_list=""
-security_ftobj_list=""
-security_mod_list=" "
-
-new_with_security=
-new_with_out_security=`echo $with_out_security_modules | tr , ' '`
-
-# Assign additional security modules
-for i in `echo $with_security_modules | tr , ' '`; do
-  if echo " $new_with_out_security " | $GREP " $i " > /dev/null; then
-    echo
-    AC_MSG_ERROR([security module conflict - $i both included and excluded])
-  elif echo " $new_with_security " | $GREP " $i " > /dev/null ; then
-    : # Double define, ignore
-  else
-    new_with_security="$new_with_security $i"
-  fi
-done
-
-# Add default security modules
-for i in $security_def_list; do
-  if echo " $new_with_out_security " | $GREP " $i " > /dev/null; then
-    : # Excluded, ignore
-  elif echo " $new_with_security " | $GREP " $i " > /dev/null ; then
-    : # Double define, ignore
-  else
-    new_with_security="$new_with_security $i"
-  fi
-done
-
-# Generate output files
-: ${security_init_file:='snmplib/snmpsm_init.h'}
-: ${security_shutdown_file:='snmplib/snmpsm_shutdown.h'}
-: ${security_incl_file:='include/net-snmp/library/snmpv3-security-includes.h'}
-
-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_shutdown_file
-echo "/* This file is automatically generated by configure.  Do not modify by hand. */" > $security_incl_file
-
-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_mod_list="${security_mod_list} $i"
-  security_src_list="$security_src_list $cfile"
-  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"
-  security_ftobj_list="$security_ftobj_list snmp"$i".ft"
-  echo "init_"$i"();" >> $security_init_file
-  echo "shutdown_"$i"();" >> $security_shutdown_file
-  echo "#include <net-snmp/library/$hfile>" >> $security_incl_file
-  def_name="AS_TR_CPP([NETSNMP_SECMOD_$i])"
-  AC_DEFINE_UNQUOTED($def_name)
-done
-
diff --git a/configure.d/config_modules_transports b/configure.d/config_modules_transports
deleted file mode 100644
index b10b960..0000000
--- a/configure.d/config_modules_transports
+++ /dev/null
@@ -1,137 +0,0 @@
-# -*- 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
-#undef NETSNMP_MINIMAL_CODE
-#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'`
-transport_ftobj_list=`echo " $transport_src_list " | $SED 's/\.c/\.ft/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"
-    transport_ftobj_list="$transport_ftobj_list inet_ntop.ft inet_pton.ft"
-  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
deleted file mode 100644
index 3c5385b..0000000
--- a/configure.d/config_os_functions
+++ /dev/null
@@ -1,324 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-# Checks for library functions.
-##
-#########################################
-
-##
-#   Standard checks:
-##
-AC_FUNC_ALLOCA          #  alloca()
-AC_PROG_GCC_TRADITIONAL
-
-if test "$cross_compiling" = yes -a "${ac_cv_func_memcmp_working+set}" != set
-then
-  # Cross-compiling and ac_cv_func_memcmp_working has not been set - assume
-  # that memcmp() is available.
-  ac_cv_func_memcmp_working=yes
-else
-  # Native compilation - test for the availability of memcmp().
-  AC_FUNC_MEMCMP
-fi
-
-AC_TYPE_SIGNAL
-
-##
-#   Stand-alone function checks:
-##
-#  Core:
-AC_CHECK_FUNCS([lrand48         rand          random    ] dnl
-               [signal          sigset                  ] )
-
-#  Library:
-AC_CHECK_FUNCS([closedir        fgetc_unlocked  flockfile        ] dnl
-               [fork            funlockfile     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>],
-    [ gethostbyaddr(NULL); ])],
-    [ ac_cv_func_gethostaddr=yes
-      AS_ECHO "#define HAVE_GETHOSTBYADDR 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 gethostbyaddr])
-    ;;
-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        chown          execv           ] dnl
-               [gai_strerror                   getgrnam        ] dnl
-               [gethostname     getloadavg                     ] dnl
-               [getpid          getpwnam                       ] dnl
-               [hasmntopt       initgroups                     ] 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                         ] )
-
-#  Apps:
-AC_CHECK_FUNCS([getdtablesize                                  ] dnl
-               [getgrnam        getpid        getpwnam         ] dnl
-               [setgid          setgroups     setuid           ] dnl
-               [tcgetattr                                      ] )
-
-#  Not-Used:
-AC_CHECK_FUNCS([if_freenameindex              getpagesize      ] dnl
-               [lseek64         pread64                        ] dnl
-               [select          sigalrm       socket           ] )
-
-
-##
-#   More complex function checks:
-#           (Agent)
-##
-
-#       rpmGetPath check needs clean LIBS environment   (Linux)
-#
-if test "x$with_rpm" != "xno"; then
-    OLDLIBS=$LIBS
-    LIBS=$LMIBLIBS
-    AC_CHECK_FUNCS(rpmGetPath)
-    LIBS=$OLDLIBS
-fi
-
-#       statfs( char *, struct fs_data* )               (Ultrix)
-#
-AC_MSG_CHECKING([[for two-argument statfs with struct fs_data (Ultrix)]])
-AC_CACHE_VAL(
-    fu_cv_sys_stat_fs_data,
-    [AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <sys/types.h>
-#ifdef HAVE_SYS_MOUNT_H
-#include <sys/mount.h>
-#endif
-#ifdef HAVE_SYS_FS_TYPES_H
-#include <sys/fs_types.h>
-#endif
-main ()
-{
-struct fs_data fsd;
-/* 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])])
-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,
-        [Define if statfs takes 2 args and the second argument has
-         type struct fs_data. @<:@Ultrix@:>@])
-fi
-
-
-##
-#   Other function-related checks:
-#           (general build)
-##
-
-#       How to get the name of the current function
-#
-AC_CACHE_CHECK([how to get the name of the current function],
-               [netsnmp_cv__func__name],[
-    netsnmp_cv__func__name=no
-    AC_COMPILE_IFELSE(
-        [AC_LANG_PROGRAM(,[[const char* cp = __func__;]])],
-        [netsnmp_cv__func__name=__func__])
-    if test "$netsnmp_cv__func__name" = no ; then
-      AC_COMPILE_IFELSE(
-        [AC_LANG_PROGRAM(,[[const char* cp = __FUNCTION__;]])],
-        [netsnmp_cv__func__name=__FUNCTION__])
-    fi])
-if test "$netsnmp_cv__func__name" != no; then
-    AC_DEFINE_UNQUOTED([NETSNMP_FUNCTION],[$netsnmp_cv__func__name],
-        [Should evaluate to the name of the current function if defined])
-fi
-
-
-#       Whether static inline functions are broken      (SCO Unixware)
-#
-AC_CACHE_CHECK([[whether static inline functions are broken (Unixware)]],
-                [netsnmp_cv_c_broken_inline],
-    AC_COMPILE_IFELSE([AC_LANG_SOURCE([
-static inline int nested_inline_function(void) {
-  return 0;
-}
-inline int main_inline_function( void ) {
-  return nested_inline_function();
-}
-    ])],
-    netsnmp_cv_broken_inline=no,
-    netsnmp_cv_broken_inline=yes))
-
-
-#       Yes -  static inline functions are broken       (Solaris 2.x)
-#
-case "$target_os" in
-    solaris*)
-        netsnmp_cv_broken_inline=yes
-        ;;
-    *)
-        ;;
-esac
-
-if test "$netsnmp_cv_broken_inline" = yes ; then
-  AC_DEFINE(NETSNMP_BROKEN_INLINE, 1,
-        [Define if static inline functions are unsupported])
-fi
-
-
-##
-#   Mis-placed (non-function) checks:
-##
-
-AC_CACHE_CHECK([for SIOCGIFADDR in sys/ioctl.h],
-               netsnmp_cv_sys_ioctl_h_has_SIOCGIFADDR,
-    AC_COMPILE_IFELSE(
-        [AC_LANG_PROGRAM([[
-#ifdef HAVE_SYS_IOCTL_H
-#include <sys/ioctl.h>
-#endif
-#ifndef SIOCGIFADDR
-No SIOCGIFADDR found here.
-#endif
-        ]])],
-    [netsnmp_cv_sys_ioctl_h_has_SIOCGIFADDR=yes],
-    [netsnmp_cv_sys_ioctl_h_has_SIOCGIFADDR=no]))
-if test $netsnmp_cv_sys_ioctl_h_has_SIOCGIFADDR = yes; then
-  AC_DEFINE(SYS_IOCTL_H_HAS_SIOCGIFADDR, 1,
-   [define if SIOCGIFADDR exists in sys/ioctl.h])
-fi
-
-##
-#   Check how to print a size_t variable
-##
-
-AC_CACHE_CHECK(
-    [the underlying type of a size_t],
-    netsnmp_cv_size_t_type,
-    [m4_foreach([TYPE], [[int],[long],[long long],[short],[char]],
-     [if [[ x$netsnmp_cv_size_t_type = x ]] ; then
-         AC_COMPILE_IFELSE(
-	     [AC_LANG_PROGRAM(
-[AC_INCLUDES_DEFAULT()
-extern unsigned TYPE variable;
-extern size_t variable;],
-                 [])],
-             [netsnmp_cv_size_t_type="TYPE"])
-     fi
-    ])])
-
-AC_MSG_CHECKING([how to printf a size_t])
-case "$netsnmp_cv_size_t_type" in
-    char|short|int) netsnmp_PRIz="" ;;
-    long) netsnmp_PRIz="l" ;;
-    "long long") netsnmp_PRIz="ll" ;;
-    *) AC_MSG_ERROR([underlying type of size_t not known]) ;;
-esac
-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
deleted file mode 100644
index d903f58..0000000
--- a/configure.d/config_os_headers
+++ /dev/null
@@ -1,523 +0,0 @@
-#########################################
-##
-# Checks for header files.
-##
-#########################################
-
-##
-#   Standard checks:
-##
-#  Core:
-AC_HEADER_STDC          #  <stdlib.h>, <stdarg.h>,   <string.h>  & <float.h>
-AC_HEADER_DIRENT        #  <dirent.h>, <sys/ndir.h>, <sys/dir.h> & <ndir.h>
-#  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:
-##
-#  Core:
-AC_CHECK_HEADERS([getopt.h   pthread.h  regex.h      ] dnl
-                 [string.h   syslog.h   unistd.h     ] dnl
-                 [stdint.h   inttypes.h              ] dnl
-                 [sys/param.h        ] dnl
-                 [sys/select.h       ] dnl
-                 [sys/socket.h       ] dnl
-                 [sys/time.h         ] dnl
-                 [sys/timeb.h        ] dnl
-                 [sys/un.h           ])
-
-#  Library and Agent:
-AC_CHECK_HEADERS([nlist.h],,,[
-AC_INCLUDES_DEFAULT
-[
-#ifndef LIBBSD_DISABLE_DEPRECATED
-#define LIBBSD_DISABLE_DEPRECATED 1
-#endif
-]])
-
-#  Library:
-AC_CHECK_HEADERS([fcntl.h    io.h       kstat.h                 ] dnl
-                 [limits.h   locale.h                  ] dnl
-                 [sys/file.h       sys/ioctl.h         ] dnl
-                 [sys/sockio.h     sys/stat.h          ] dnl
-                 [sys/systemcfg.h  sys/systeminfo.h    ] dnl
-                 [sys/times.h      sys/uio.h           ] dnl
-                 [sys/utsname.h      ] dnl
-                 [netipx/ipx.h       ])
-
-#  Agent:
-AC_CHECK_HEADERS([dlfcn.h    err.h      fcntl.h    fstab.h      ] dnl
-                 [           grp.h      io.h                    ] dnl
-                 [ioctls.h   kstat.h    kvm.h      limits.h     ] dnl
-                 [           mntent.h   mtab.h                  ] dnl
-                 [           pkglocs.h             pwd.h        ] dnl
-                 [           utmpx.h    utsname.h               ])
-
-AC_CHECK_HEADERS([sys/diskio.h  sys/dkio.h                                 ] dnl
-                 [sys/file.h    sys/filio.h   sys/fixpoint.h               ] dnl
-                 [sys/fs.h      sys/ioctl.h   sys/loadavg.h  sys/mntent.h  ] dnl
-                 [sys/mnttab.h  sys/pool.h    sys/protosw.h  sys/pstat.h   ] dnl
-                 [sys/sockio.h  sys/stat.h    sys/statfs.h   sys/statvfs.h ] dnl
-                 [sys/stream.h  sys/sysget.h  sys/sysmp.h                  ] dnl
-                 [sys/tcpipstats.h            sys/utsname.h  sys/vfs.h     ] dnl
-                 [sys/vm.h      sys/vmmac.h   sys/vmmeter.h  sys/vmparam.h ] dnl
-                 [sys/vmsystm.h                                            ])
-
-AC_CHECK_HEADERS([asm/page.h asm/types.h               ] dnl
-                 [inet/mib2.h                          ] dnl
-                 [linux/hdreg.h linux/tasks.h          ] dnl
-                 [machine/param.h                      ] dnl
-                 [netinet/tcp_fsm.h                    ] dnl
-                 [ufs/fs.h                             ] dnl
-                 [uvm/uvm_extern.h uvm/uvm_param.h     ] dnl
-                 [vm/vm.h vm/vm_extern.h vm/vm_param.h ])
-
-#  Apps:
-AC_CHECK_HEADERS([fcntl.h    grp.h      pwd.h      ] dnl
-                 [sys/cdefs.h   sys/ioctl.h        ] dnl
-                 [sys/socket.h  sys/sockio.h       ] dnl
-                 [sys/time.h                       ])
-
-#  Not-Used:
-AC_CHECK_HEADERS([search.h   sgtty.h    xti.h      ] dnl
-                 [sys/dmap.h sys/poll.h            ] dnl
-                 [sys/timeout.h                    ] dnl
-                 [machine/pte.h                    ] dnl
-                 [pci/pci.h                        ])
-
-
-# Valgrind
-AC_CHECK_HEADERS([valgrind/valgrind.h valgrind/memcheck.h])
-# OpenSSL
-AC_CHECK_HEADERS([openssl/aes.h ])     #  (Core)
-AC_CHECK_HEADERS([openssl/dh.h  ])     #  (Apps)
-#  Not-Used:
-AC_CHECK_HEADERS([openssl/des.h  openssl/hmac.h ] dnl
-                 [openssl/evp.h  security/cryptoki.h])
-
-# RPM subdirectory path                   (Agent)
-if test "x$with_rpm" != "xno"; then
-  AC_CHECK_HEADERS([rpm/rpmts.h   rpm/rpmfileutil.h], [], [],
-		   [[#include <rpm/rpmlib.h>]])
-fi
-
-
-##
-#   Pre-requisite on other headers:
-##
-
-#       requiring <sys/param.h>  (MAXPATHLEN)           (OpenBSD 3.4)
-#  Agent:
-#
-AC_CHECK_HEADERS(sys/swap.h,,,
-    AC_INCLUDES_DEFAULT([])
-    [
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-    ])
-
-#       requiring <sys/param.h>                         (FreeBSD)
-#
-#  Core:      (? Tested above? )
-AC_CHECK_HEADERS([stdlib.h  ],,,
-    [[
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-    ]])
-#
-#  Library:
-AC_CHECK_HEADERS([malloc.h        net/if_dl.h   sys/sysctl.h    ],,,
-    [[
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-    ]])
-#
-#  Agent:
-AC_CHECK_HEADERS([malloc.h        osreldate.h                   ] dnl
-                 [machine/types.h net/if_dl.h   net/if_types.h  ] dnl
-                 [sys/dkstat.h    sys/conf.h    sys/mbuf.h      ] dnl
-                 [sys/mount.h     sys/proc.h    sys/queue.h     ] dnl
-                 [sys/sysctl.h    sys/user.h                    ],,,
-    [[
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-    ]])
-
-#       requiring <sys/sema.h>                          (IRIX 6.5)
-#  Agent:
-#
-AC_CHECK_HEADERS([sys/sema.h])
-AC_CHECK_HEADERS(sys/hashing.h,,,
-    AC_INCLUDES_DEFAULT([])
-    [
-#if HAVE_SYS_SEMA_H
-#include <sys/sema.h>
-#endif
-    ])
-
-#       requiring <sys/socket.h>                        (Solaris 9)
-#  Agent:
-#
-AC_CHECK_HEADERS(sys/socketvar.h,,,
-    AC_INCLUDES_DEFAULT([])
-    [
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-    ])
-
-#       requiring _KMEMUSER and <sys/types.h>           (BSDi3/IRIX)
-#  Agent:
-#
-AC_CHECK_HEADERS(sys/vnode.h,,,
-    [
-#define _KMEMUSER 1
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-    ])
-
-#       requiring <machine/types.h>                     (NetBSD)
-#  Agent:
-#
-AC_CHECK_HEADERS(sys/disklabel.h,,,
-    [[
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_MACHINE_TYPES_H
-#include <machine/types.h>
-#endif
-    ]])
-
-#	QNX
-AC_CHECK_HEADERS([nbutil.h])
-
-#       UFS headers
-#  Agent:
-#
-AC_CHECK_HEADERS([ufs/ufs/dinode.h ufs/ufs/quota.h ufs/ufs/inode.h ufs/ffs/fs.h],,,
-    [[
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_UFS_UFS_DINODE_H
-#include <ufs/ufs/dinode.h>
-#endif
-#if HAVE_UFS_UFS_QUOTA_H
-#include <ufs/ufs/quota.h>
-#endif
-    ]])
-
-#       requiring <vm/vm.h>                             (BSDi2)
-#  Agent:
-#
-AC_CHECK_HEADERS(vm/swap_pager.h,,,
-    [[
-#if HAVE_VM_VM_H
-#include <vm/vm.h>
-#endif
-    ]])
-
-#       netlink/rtnetlink                               (Linux)
-#  Agent:
-#
-AC_CHECK_HEADERS([linux/netlink.h  linux/rtnetlink.h],,,
-    [[
-#if HAVE_ASM_TYPES_H
-#include <asm/types.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_LINUX_NETLINK_H
-#include <linux/netlink.h>
-#endif
-    ]])
-
-
-#       Network headers
-#  Core or Library/Agent/Apps:
-#
-AC_CHECK_HEADERS([arpa/inet.h        net/if.h             ] dnl
-                 [netinet/in.h       netdb.h              ],,,
-    [[
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_TIMEOUT_H
-#include <sys/timeout.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_SYS_SOCKETVAR_H
-#include <sys/socketvar.h>
-#endif
-#if HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#if HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_H
-#include <netinet/ip.h>
-#endif
-#if HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
-#if HAVE_NETINET_IP_ICMP_H
-#include <netinet/ip_icmp.h>
-#endif
-#if HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif
-#if HAVE_NETINET_UDP_H
-#include <netinet/udp.h>
-#endif
-#if HAVE_NETINET_TCP_TIMER_H
-#include <netinet/tcp_timer.h>
-#endif
-    ]])
-#
-#  Agent:
-AC_CHECK_HEADERS([net/if_arp.h       net/if_mib.h         net/if_var.h     ] dnl
-                 [netinet/if_ether.h netinet/in_systm.h   netinet/in_var.h ] dnl
-                 [netinet/ip.h       netinet/ip_icmp.h                     ] dnl
-                 [netinet/icmp_var.h netinet/ip_var.h                      ] dnl
-                 [netinet/tcp.h      netinet/tcp_timer.h  netinet/tcp_var.h] dnl
-                 [netinet/tcpip.h    netinet/udp.h        netinet/udp_var.h] dnl
-                 [net/route.h        netinet/icmp6.h                       ],,,
-    [[
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_TIMEOUT_H
-#include <sys/timeout.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_SYS_SOCKETVAR_H
-#include <sys/socketvar.h>
-#endif
-#if HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#if HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_H
-#include <netinet/ip.h>
-#endif
-#if HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#if HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
-#if HAVE_NETINET_IP_ICMP_H
-#include <netinet/ip_icmp.h>
-#endif
-#if HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif
-#if HAVE_NETINET_UDP_H
-#include <netinet/udp.h>
-#endif
-#if HAVE_NETINET_TCP_TIMER_H
-#include <netinet/tcp_timer.h>
-#endif
-#if HAVE_NETINET_ICMP6_H
-#include <netinet/icmp6.h>
-#endif
-    ]])
-
-#       KAME (IPv6) headers
-#  Agent:
-#
-# KAME
-AC_CHECK_HEADERS([netinet/ip6.h                               ] dnl
-                 [netinet6/in6_var.h    netinet6/in6_pcb.h    ] dnl
-                 [netinet6/ip6_var.h    netinet6/nd6.h        ] dnl
-                 [netinet6/tcp6.h       netinet6/tcp6_fsm.h   ] dnl
-                 [netinet6/tcp6_timer.h netinet6/tcp6_var.h],,,
-    [[
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP6_H
-#include <netinet/ip6.h>
-#endif
-#if HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#if HAVE_NET_ROUTE_H
-#include <net/route.h>
-#endif
-    ]])
-
-#       requiring <netinet/in.h>                        (OpenBSD 2.6)
-#  Agent:
-#
-AC_CHECK_HEADERS(netinet/in_pcb.h,,,
-    [[
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_SYS_TIMEOUT_H
-#include <sys/timeout.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_SYS_SOCKETVAR_H
-#include <sys/socketvar.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IN_SYSTM_H
-#include <netinet/in_systm.h>
-#endif
-#if HAVE_NETINET_IP_H
-#include <netinet/ip.h>
-#endif
-#if HAVE_NET_ROUTE_H
-#include <net/route.h>
-#endif
-#if HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-    ]])
-
-##
-#   Pre-requisite on specific types
-##
-
-#       Special hack to get around various problems on older Linux kernels
-#       (major ugh!)
-#  Agent:
-#
-AC_CHECK_HEADERS([linux/ethtool.h],,,
-[[
-#include <linux/types.h>
-typedef __u64 u64;         /* hack, so we may include kernel's ethtool.h */
-typedef __u32 u32;         /* ditto */
-typedef __u16 u16;         /* ditto */
-typedef __u8 u8;           /* ditto */
-]])
-
-##
-#   Headers requiring particular libraries
-##
-
-#       for HostRes                                     (Solaris 2.x)
-#  Agent:
-#
-AC_CHECK_HEADERS(pkginfo.h,
-    NETSNMP_SEARCH_LIBS(pkginfo, adm,
-        AC_DEFINE(HAVE_PKGINFO, 1, [define if you have pkginfo]),,,LMIBLIBS))
-
-case $target_os in
-    aix*)
-        #       for CPU/memory statistics               (AIX)
-        #  Agent:
-        #
-        AC_CHECK_HEADERS(libperfstat.h,
-            NETSNMP_SEARCH_LIBS(perfstat_cpu_total, perfstat,
-                AC_DEFINE(HAVE_PERFSTAT, 1, [on aix, if you have perfstat]),
-                AC_MSG_ERROR([
-
-*** To monitor CPU/memory values in AIX you need to install
-*** libperfstat which can be found in bos.perf
-]),,
-                LMIBLIBS),,
-    [[
-#if HAVE_SYS_PROTOSW_H
-#include <sys/protosw.h>
-#endif
-    ]])
-        ;;
-    hpux*)
-        #       HP-UX agent needs open_mib       (XXX - not a header check!)
-        #
-        NETSNMP_SEARCH_LIBS(open_mib, nm,
-            AC_DEFINE(HAVE_LIBNM, 1, [define if you have libnm]),,,LMIBLIBS)
-        ;;
-    *)
-        ;;
-esac
-
-#       for MIB-2 info                                  (Cygwin and MinGW)
-#  Core:
-#
-AC_CHECK_HEADERS([windows.h iphlpapi.h], [], [], [
-#ifdef HAVE_WINDOWS_H
-#include <windows.h>
-#endif
-])
-
-#       for MIB-2 info                                  (MinGW)
-#  Core:
-#
-if test x$with_socklib = xwinsock2; then
-  AC_CHECK_HEADERS([winsock.h winsock2.h ws2tcpip.h])
-fi
-
-#
-# for ucd-snmp/lmsensorsMib
-#
-AC_CHECK_HEADERS([sensors/sensors.h picl.h])
-
-fi # NETSNMP_QUICK_CHECK
diff --git a/configure.d/config_os_libs1 b/configure.d/config_os_libs1
deleted file mode 100644
index 35f052a..0000000
--- a/configure.d/config_os_libs1
+++ /dev/null
@@ -1,95 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-# Checks for libraries that are run
-# before the agent module tests.
-##
-#########################################
-
-
-##
-#   RPM checks
-#
-##
-AC_CHECK_HEADERS(rpm/rpmlib.h rpm/header.h)
-
-AC_CHECK_HEADER(rpm/rpmlib.h,rpmlib_h=yes,rpmlib_h=no)
-AC_CHECK_HEADER(rpm/header.h,rpmheader_h=yes,rpmheader_h=no)
-
-if test "x$rpmheader_h" = "xno" -o "x$rpmlib_h" = "xno" ; then
-  if test "x$with_rpm" = "xyes" ; then
-    AC_MSG_ERROR([Could not find either the RPM header files needed and was specifically asked to use RPM support])
-  else
-    with_rpm=no
-  fi
-fi
-
-#
-# rpm libraries only needed for the host resources mib software
-# installed tables (on linux in particular)
-#
-if test "x$with_rpm" != "xno"; then
-  # ARG.  RPM is a real pain.
-  # FWIW librpm.la, librpmio.la, and libpopt.la have correct dependencies.
-  _rpmlibs=""
-
-  # rpm-4.0.x needs rpmio.
-  NETSNMP_SEARCH_LIBS(rpmGetPath, rpmio,,, $LMIBLIBS, _rpmlibs)
-  
-  # rpm-4.0.3 librpmdb actually contains what we need.
-  NETSNMP_SEARCH_LIBS(rpmdbOpen, rpmdb,,, $LMIBLIBS, _rpmlibs)
-  # now check for rpm using the appropriate libraries.
-  NETSNMP_SEARCH_LIBS(rpmReadConfigFiles, rpm, [
-    AC_DEFINE(HAVE_LIBRPM, 1,
-      [Define to 1 if you have the `rpm' library (-lrpm).])
-    LMIBLIBS="$_rpmlibs $LMIBLIBS"
-  ],, $LMIBLIBS, _rpmlibs)
-
-  # rpm 4.6 has incompatible API, turn on the legacy one
-  AC_CHECK_DECL([headerGetEntry],
-    : ,
-    AC_DEFINE([_RPM_4_4_COMPAT], [], [Define if you have RPM 4.6 or newer to turn on legacy API]),
-    [[#include <rpm/rpmlib.h>]]
-  )
-fi
-
-#
-# getfsstat/getvfsstat
-#
-AC_SEARCH_LIBS(getfsstat, [nbutil])
-AC_CHECK_FUNCS(getfsstat)
-AC_CHECK_FUNCS(getvfsstat)
-AC_FUNC_GETMNTENT
-
-#
-# kinfo_get_cpus
-#
-AC_SEARCH_LIBS(kinfo_get_cpus, [kinfo])
-AC_CHECK_FUNCS(kinfo_get_cpus)
-
-#
-# diskIOLAx requires exp which may require -lm
-#
-AC_SEARCH_LIBS(exp, [m])
-
-#
-#   libkvm
-#
-NETSNMP_SEARCH_LIBS(kvm_read, kvm,,,, LAGENTLIBS)
-NETSNMP_SEARCH_LIBS(kvm_openfiles, kvm,,,, LAGENTLIBS)
-NETSNMP_SEARCH_LIBS(kvm_getprocs, kvm,,,, LMIBLIBS)
-NETSNMP_SEARCH_LIBS(kvm_getproc2, kvm,,,, LMIBLIBS)
-NETSNMP_SEARCH_LIBS(kvm_getswapinfo, kvm,,,, LMIBLIBS)
-netsnmp_save_LIBS="$LIBS"
-LIBS="$LAGENTLIBS $LMIBLIBS $LIBS"
-AC_CHECK_FUNCS([kvm_openfiles kvm_getprocs kvm_getproc2 kvm_getswapinfo])
-LIBS="$netsnmp_save_LIBS"
-
-#
-#   dynamic module support
-#
-NETSNMP_SEARCH_LIBS([dlopen], [dl],,, [$LAGENTLIBS $LSNMPLIBS], [LMIBLIBS])
-netsnmp_save_LIBS="$LIBS"
-LIBS="$LMIBLIBS $LAGENTLIBS $LSNMPLIBS $LIBS"
-AC_CHECK_FUNCS([dlopen])
-LIBS="$netsnmp_save_LIBS"
diff --git a/configure.d/config_os_libs2 b/configure.d/config_os_libs2
deleted file mode 100644
index 677f3e6..0000000
--- a/configure.d/config_os_libs2
+++ /dev/null
@@ -1,487 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-# Checks for libraries that are run
-# after the agent module tests.
-##
-#########################################
-
-#   HAVE_LIB Definitions used in the Net-SNMP code base:
-#
-#       HAVE_LIBCRYPTO:	apps
-#       HAVE_LIBRPM:	agent
-#
-
-##
-#   Simple checks:
-##
-
-# AC_CHECK_LIB(des, main)
-# AC_CHECK_LIB(m,   asin)
-
-#   dmalloc
-#
-if test "${with_dmalloc+set}" = set; then
-   if test "$with_dmalloc" = yes -a -d $with_dmalloc ; then
-       AC_ADD_SEARCH_PATH($with_dmalloc)
-   fi
-   AC_CHECK_HEADERS([dmalloc.h])
-   AC_SEARCH_LIBS([dmalloc_message], [dmalloc])
-fi
-
-#   EFence
-#       (This used to be on by default for developer checkout)
-#
-if test "x$use_efence" = "xyes"; then
-    AC_SEARCH_LIBS([EF_Exit], [efence])
-fi
-
-
-#   ELF libraries
-#       Typically used for 'nlist'  (needed for uptime)
-#
-if test "x$with_elf" != "xno"; then
-case $target_os in
-	linux*) # add hosts which don't use nlist here
-                ;;
-	irix*) # Check for nlist in mld (irix)
-		AC_CHECK_LIB(elf, nlist)
-		AC_CHECK_LIB(elf, nlist64)
-		AC_CHECK_LIB(mld, nlist)
-		;;
-	*) # default
-		AC_CHECK_LIB(elf, nlist)
-		;;
-esac
-fi
- 
-
-#   libsocket
-#       Needed for 'socket(2)'                          (Solaris)
-#       Possibly also for 'gethostname(3)'              (non-Solaris)
-#           (alternatively in libnsl                    (Solaris)
-#            or in libws2_32)                           (MinGW)
-#
-case x$with_socklib in
-xwinsock2)
-  #   libws2_w32                                        (MinGW)
-  #
-  netsnmp_save_LIBS="$LIBS"
-  LIBS="$LIBS -lws2_32"
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([
-    #include <winsock2.h>
-  ], [
-    socket(0, 0, 0);
-    gethostbyname(0);
-  ])], [
-    # Keep LIBS.
-    true
-  ], [
-    # Restore LIBS and complain.
-    LIBS="$netsnmp_save_LIBS"
-    AC_MSG_ERROR([libws2_32 not found.])
-  ])
-  ;;
-*)
-  AC_SEARCH_LIBS(socket, socket,,AC_MSG_ERROR([socket(2) not found.]))
-  AC_SEARCH_LIBS(gethostbyname, [nsl socket])
-  AC_CHECK_FUNCS(gethostbyname)
-  AC_SEARCH_LIBS(gethostbyaddr, [nsl socket])
-  AC_CHECK_FUNCS(gethostbyaddr)
-  ;;
-esac
-
-
-#   libiphlpapi                                         (Cygwin and MinGW)
-#
-netsnmp_save_LIBS="$LIBS"
-LIBS="$LIBS -liphlpapi"
-AC_LINK_IFELSE([AC_LANG_PROGRAM([
-  #include <winsock2.h>
-  #include <iphlpapi.h>
-], [
-  IpRenewAddress(0);
-])], [
-  # Keep LIBS.
-  true
-], [
-  # Restore LIBS and complain.
-  LIBS="$netsnmp_save_LIBS"
-  case x$with_socklib in
-  xwinsock2)
-    AC_MSG_ERROR([libiphlpapi not found.])
-    ;;
-  esac
-])
-
-
-#   libregex                                            (MinGW)
-#
-netsnmp_save_LIBS="$LIBS"
-LIBS="$LIBS -lregex"
-AC_LINK_IFELSE([AC_LANG_PROGRAM([
-  #include <sys/types.h>
-  #include <regex.h>
-], [
-  regcomp(0, 0, 0);
-])], [
-  # Keep LIBS.
-  true
-], [
-  # Restore LIBS.
-  LIBS="$netsnmp_save_LIBS"
-])
-
-
-#   libsnmpapi                                          (MinGW)
-#
-netsnmp_save_LIBS="$LIBS"
-LIBS="$LIBS -lsnmpapi"
-AC_LINK_IFELSE([AC_LANG_PROGRAM([
-  #include <snmp.h>
-], [
-  SnmpUtilMemAlloc(0);
-])], [
-  # Keep LIBS.
-  true
-], [
-  # Restore LIBS.
-  LIBS="$netsnmp_save_LIBS"
-])
-
-
-#   kstat library                                       (Solaris)
-#
-NETSNMP_SEARCH_LIBS(kstat_lookup, kstat,
-        AC_DEFINE(HAVE_LIBKSTAT, 1,
-        	[Define to 1 if you have the `kstat' library (-lkstat).]),,,
-        LNETSNMPLIBS)
-
-
-#
-#   librt
-#
-
-NETSNMP_SEARCH_LIBS(clock_gettime, rt,
-        AC_DEFINE(HAVE_CLOCK_GETTIME, 1,
-                [Define to 1 if you have the `clock_gettime' library]),,,
-        LNETSNMPLIBS)
-
-
-##
-#   MIB-module-specific checks
-##
-
-#   libdevstat
-#        (for diskIO MIB)
-#
-#   Not-Used: HAVE_GETDEVS/HAVE_DEVSTAT_GETDEVS
-#
-echo " $module_list " | $GREP " ucd-snmp/diskio " >/dev/null
-if test $? -eq 0 ; then
-	NETSNMP_SEARCH_LIBS(getdevs, devstat,
-                AC_DEFINE(HAVE_GETDEVS, 1,
-                        [define if you have getdevs()]),,,LMIBLIBS)
-	NETSNMP_SEARCH_LIBS(devstat_getdevs, devstat,
-                AC_DEFINE(HAVE_DEVSTAT_GETDEVS, 1,
-                        [define if you have devstat_getdevs()]),,,LMIBLIBS)
-fi
-
-#   libpci
-#        (for if-mib description)
-#
-NETSNMP_SEARCH_LIBS(pci_lookup_name, pci,
-	AC_DEFINE(HAVE_PCI_LOOKUP_NAME, 1,
-		[define if you have pci_lookup_name()]),,,LMIBLIBS)
-
-#   LM-SENSORS-MIB support
-#
-echo " $module_list " | $GREP -i "ucd-snmp/lmsensor" > /dev/null
-if test $? -eq 0 ; then
-        AC_MSG_CHECKING([for sensors support])
-        case $target_os in
-        solaris*)
-            #  Agent:  HAVE_PICL_H
-            #
-            AC_CHECK_HEADER(picl.h, LMIBLIBS="${LMIBLIBS} -lpicl",)
-            AC_CHECK_HEADERS(picl.h)
-            ;;
-        *)
-            #  Not-Used:  HAVE_SENSORS_SENSORS_H
-            #
-            AC_CHECK_HEADER(sensors/sensors.h,,
-                [AC_MSG_ERROR([asked to use lm_sensors but I couldn't find sensors/sensors.h])])
-            NETSNMP_SEARCH_LIBS(sensors_get_detected_chips, sensors,,
-                [AC_MSG_ERROR([asked to use lm_sensors but I couldn't find -lsensors])],,
-                LMIBLIBS)
-            ;;
-        esac
-fi
-
-#
-# libnl (netlink)
-#
-
-if test "x$with_nl" != "xno"; then
-    case $target_os in
-    linux*) # Check for libnl (linux)
-	NETSNMP_SEARCH_LIBS(
-	    nl_connect, nl,
-	    [AC_CHECK_HEADERS(netlink/netlink.h)],,, LMIBLIBS)
-    ;;
-    esac
-fi
-
-
-
-##
-#   More complex checks:
-##
-
-#   Security related functions
-#
-NONAGENTLIBS=$LIBS	 # save old libraries
-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")
-    else 
-        if test "x$tryrsaref" != "xno"; then
-            AC_CHECK_LIB(rsaref, RSAPrivateDecrypt)
-            AC_CHECK_LIB(RSAglue, RSA_PKCS1_RSAref)
-        fi
-
-        AC_MSG_CHECKING([for -leay32])
-        netsnmp_save_LIBS="$LIBS"
-        LIBS="-leay32"
-        AC_LINK_IFELSE([AC_LANG_PROGRAM([
-                #include <openssl/evp.h>],
-                [return EVP_md5();])],
-            [AC_MSG_RESULT(yes); ac_cv_lib_eay32_EVP_md5=yes; CRYPTO="eay32"],
-            [AC_MSG_RESULT(no)]
-        )
-        LIBS="$netsnmp_save_LIBS"
-
-        if test x$CRYPTO = x; then
-            AC_CHECK_LIB([crypto], [EVP_md5], [CRYPTO="crypto"])
-        fi
-
-        if test x$CRYPTO != x; then
-            AC_DEFINE(HAVE_LIBCRYPTO, 1,
-                [Define to 1 if you have the OpenSSL library (-lcrypto or -leay32).])
-            LIBCRYPTO="-l${CRYPTO}"
-            AC_CHECK_LIB(${CRYPTO}, AES_cfb128_encrypt, 
-                AC_DEFINE(HAVE_AES_CFB128_ENCRYPT, 1,
-                    [Define to 1 if you have the `AES_cfb128_encrypt' function.]))
-
-            AC_CHECK_LIB(${CRYPTO}, EVP_MD_CTX_create,
-                AC_DEFINE([HAVE_EVP_MD_CTX_CREATE], [],
-                    [Define to 1 if you have the `EVP_MD_CTX_create' function.])
-                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,
-                AC_DEFINE(HAVE_LIBSSH2, 1,
-                    [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]),)
-            SSHPROG=yes
-        fi
-    fi
-elif test "x$askedpkcs" = "xyes"; then
-    AC_CHECK_LIB(pkcs11, C_Initialize,
-        AC_DEFINE(HAVE_LIBPKCS11)
-        LIBPKCS11="-lpkcs11")
-fi
-if test "x$TLSPROG" = "xyes"; then
-   AC_CHECK_DECL([EVP_sha224],
-    : ,
-    AC_DEFINE([HAVE_EVP_SHA224], [], [Define if you have EVP_sha224/256 in openssl]),
-    [[#include <openssl/evp.h>]])
-   AC_CHECK_DECL([EVP_sha384],
-    : ,
-    AC_DEFINE([HAVE_EVP_SHA384], [], [Define if you have EVP_sha384/256 in openssl]),
-    [[#include <openssl/evp.h>]])
-fi
-
-LIBS=$NONAGENTLIBS	 # restore old libraries
-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" -a "x$enable_read_only" != "xyes" ; then
-    NETSNMP_BUILD_TLS_PROG_TRUE=''
-    NETSNMP_BUILD_TLS_PROG_FALSE='#'
-else
-    NETSNMP_BUILD_TLS_PROG_TRUE='#'
-    NETSNMP_BUILD_TLS_PROG_FALSE=''
-fi
-if echo " ${security_mod_list} " | grep ' usm ' ; then
-    if test "x$enable_read_only" != "xyes" ; then
-    	NETSNMP_BUILD_USM_PROG_TRUE=''
-    	NETSNMP_BUILD_USM_PROG_FALSE='#'
-    else
-    	NETSNMP_BUILD_USM_PROG_TRUE='#'
-    	NETSNMP_BUILD_USM_PROG_FALSE=''
-    fi
-else
-    NETSNMP_BUILD_USM_PROG_TRUE='#'
-    NETSNMP_BUILD_USM_PROG_FALSE=''
-fi
-if test "x$enable_read_only" != "xyes" ; then
-    NETSNMP_BUILD_SET_PROG_TRUE=""
-    NETSNMP_BUILD_SET_PROG_FALSE="#"
-else
-    NETSNMP_BUILD_SET_PROG_TRUE="#"
-    NETSNMP_BUILD_SET_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)
-AC_SUBST(NETSNMP_BUILD_USM_PROG_TRUE)
-AC_SUBST(NETSNMP_BUILD_USM_PROG_FALSE)
-AC_SUBST(NETSNMP_BUILD_SET_PROG_TRUE)
-AC_SUBST(NETSNMP_BUILD_SET_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
-#
-_cppflags="${CPPFLAGS}"
-_ldflags="${LDFLAGS}"
-if test "$with_libwrap" != "no"; then
-  if test "$with_libwrap" != "yes"; then
-    CPPFLAGS="${CPPFLAGS} -I$with_libwrap/include"
-    LDFLAGS="${LDFLAGS} -L$with_libwrap/lib"
-  fi
-
-  _libs=${LIBS}
-  AC_CHECK_HEADER(tcpd.h, ,
-    AC_MSG_ERROR([Asked to use libwrap but I couldn't find tcpd.h.]))
-
-  LIBS="$LIBS -lwrap"
-  AC_MSG_CHECKING([for TCP wrappers library -lwrap])
-  # XXX: should check for hosts_ctl
-  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)]])],
-    [AC_MSG_RESULT([yes])
-     AC_DEFINE(NETSNMP_USE_LIBWRAP)
-     test "$with_libwrap" != no -a "$with_libwrap" != yes && _wraplibs="-L$with_libwrap/lib"
-     _wraplibs="$_wraplibs -lwrap"],
-    [AC_MSG_RESULT([no])
-     # Linux RedHat 6.1 won't link libwrap without libnsl
-     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_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-	#include <tcpd.h>
-	int allow_severity = 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"
-	_wraplibs="$_wraplibs -lwrap -lnsl"],
-       [AC_MSG_RESULT(no)
-	AC_MSG_ERROR(Asked to use libwrap but I couldn't find it.)])])
-  LAGENTLIBS="$_wraplibs"
-  CPPFLAGS=${_cppflags}
-  LDFLAGS=${_ldflags}
-  LIBS=${_libs}
-fi
-
-
-##
-#   mysql
-##
-if test "x$with_mysql" = "xyes" ; then
-  AC_PATH_PROGS(MYSQLCONFIG,mysql_config)
-  AC_CHECK_HEADERS(mysql/mysql.h)
-  AC_CHECK_HEADER(mysql/mysql.h,mysql_h=yes,mysql_h=no)
-  if test "x$MYSQLCONFIG" = "x" -o "x$mysql_h" = "xno"; then
-     AC_MSG_ERROR([Could not find mysql_config or mysql.h and was specifically asked to use MySQL support])
-  fi
-  MYSQL_LIBS=`$MYSQLCONFIG --libs`
-  MYSQL_INCLUDES=`$MYSQLCONFIG --cflags`
-  AC_MSG_CHECKING([whether MY_INIT() works])
-  _libs="${LIBS}"
-  _cppflags="${CPPFLAGS}"
-  LIBS="${LIBS} ${MYSQL_LIBS}"
-  CPPFLAGS="${CPPFLAGS} ${MYSQL_INCLUDES}"
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <mysql/my_global.h>
-               #include <mysql/my_sys.h>]], [[MY_INIT("my_init_test")]])],[AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
-               AC_DEFINE([HAVE_BROKEN_LIBMYSQLCLIENT], 1,
-	                 [Define if using MY_INIT() causes a linker error])])
-  CPPFLAGS="${_cppflags}"
-  LIBS="${_libs}"
-  AC_MSG_CACHE_ADD(MYSQL Trap Logging:         enabled)
-else
-  AC_MSG_CACHE_ADD(MYSQL Trap Logging:         unavailable)
-fi
-AC_SUBST(MYSQL_LIBS)
-AC_SUBST(MYSQL_INCLUDES)
-  
-
-##
-#   Non-library checks
-##
-
-# nlist
-AC_CHECK_FUNCS(nlist nlist64 knlist)
-
diff --git a/configure.d/config_os_misc1 b/configure.d/config_os_misc1
deleted file mode 100644
index feec9a9..0000000
--- a/configure.d/config_os_misc1
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-# Miscellaneous checks
-##
-#########################################
-
-##
-#   Compilation-related
-##
-
-#       Dynamic modules require Position-Independent Code
-#	    LIB_CFLAGS/DLLIBS: used in agent Makefile only
-#
-AC_MSG_CHECKING([whether we have to build PIC code])
-echo " $module_list " | $GREP " ucd-snmp/dlmod " >/dev/null
-if test $? -eq 0 ; then
-    LIB_CFLAGS="$LIB_CFLAGS $SHLIB_CFLAGS"
-    AC_MSG_RESULT(yes)
-else
-    DLLIBS=""
-    AC_MSG_RESULT(no)
-fi
-
diff --git a/configure.d/config_os_misc2 b/configure.d/config_os_misc2
deleted file mode 100644
index e2a8ff5..0000000
--- a/configure.d/config_os_misc2
+++ /dev/null
@@ -1,142 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-# Miscellaneous checks
-##
-#########################################
-
-##
-#   Package characteristics
-#       Authentication/Encryption support
-##
-
-#       Check for PKCS11
-#
-AC_MSG_CHECKING([for authentication support])
-useopenssl=no
-usepkcs=no
-if test "x$ac_cv_lib_pkcs11_C_Initialize" != "xyes" -o "x$ac_cv_header_security_cryptoki_h" != "xyes"; then
-    if test "x$askedpkcs" = "xyes"; then
-        AC_MSG_ERROR(Asked to use PKCS11 but I couldn't find it.)
-    fi
-else
-    if test "x$askedpkcs" = "xyes"; then
-        usepkcs=yes
-    fi
-fi
-
-#       Check for OpenSSL
-#
-if test "x$ac_cv_lib_crypto_EVP_md5" != "xyes" -a "x$ac_cv_lib_eay32_EVP_md5" != "xyes" -o "x$ac_cv_header_openssl_hmac_h" != "xyes"; then
-    if test "x$askedopenssl" = "xyes"; then
-        AC_MSG_ERROR(Asked to use OpenSSL but I couldn't find it.)
-    fi
-else
-    if test "x$askedopenssl" = "xyes"; then
-        useopenssl=yes
-    elif test "x$tryopenssl" = "xyes"; then
-        if test "x$usepkcs" != "xyes"; then
-            useopenssl=yes
-        fi
-    fi
-fi
-
-#       Available authentication/encryption modes
-#
-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
-            encrmodes="DES AES"
-	else
-	    encrmodes="DES"
-	fi
-    else
-        encrmodes="[disabled]"
-    fi
-    AC_DEFINE(NETSNMP_USE_OPENSSL)
-    LNETSNMPLIBS="$LNETSNMPLIBS $LIBCRYPTO"
-    AC_MSG_RESULT(OpenSSL Support)
-elif test "x$usepkcs" != "xno" ; then
-    authmodes="MD5 SHA1"
-    if test "x$enable_privacy" != "xno" ; then
-        encrmodes="DES"
-    else
-        encrmodes="[disabled]"
-    fi
-    AC_DEFINE(NETSNMP_USE_PKCS11, 1,
-      [Define if you are using the codeS11 library ...])
-    LNETSNMPLIBS="$LNETSNMPLIBS $LIBPKCS11"
-    AC_MSG_RESULT(PKCS11 Support)
-elif test "x$enable_md5" != "xno"; then
-    authmodes="MD5"
-    encrmodes=""
-    AC_DEFINE(NETSNMP_USE_INTERNAL_MD5)
-    AC_MSG_RESULT(Internal MD5 Support)
-fi
-if test "x$enable_md5" = "xno"; then
-    authmodes=`echo $authmodes | $SED 's/MD5 *//;'`
-fi
-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)
-
-if test "x$all_warnings" != "x"; then
-    AC_MSG_CACHE_ADD(WARNING: $all_warnings)
-fi
-
-#
-# Check whether user wants DNSSEC local validation support
-#
-_libs=${LIBS}
-if ! test "x-$want_dnssec" = "x-no" ; then
-    AC_CHECK_HEADERS([validator/validator-config.h])
-    if test "$ac_cv_header_validator_validator_config_h" != yes; then
-        AC_MSG_ERROR(Can't find validator.h)
-    fi
-    if test "x$ac_cv_lib_crypto_EVP_md5" != "xyes" -a \
-            "x$ac_cv_lib_eay32_EVP_md5" != "xyes" -o \
-            "x$ac_cv_header_openssl_hmac_h" != "xyes"; then
-        AC_MSG_ERROR(Couldn't find OpenSSL for local DNSSEC validation support.)
-    fi
-    LIBS="$LIBS $LIBCRYPTO"
-    AC_CHECK_LIB(sres, query_send,,AC_MSG_ERROR([Can't find libsres]))
-    VAL_LIBS="-lsres $LIBCRYPTO"
-    LIBS="$LIBS -lsres"
-    AC_CHECK_LIB(val, p_val_status,
-                 LIBS="$LIBS -lval"
-                 VAL_LIBS="$VAL_LIBS -lval"
-                 have_val_res_query=yes,
-                 [ AC_CHECK_LIB(pthread, pthread_rwlock_init)
-		   AC_CHECK_LIB(val-threads, p_val_status,
-                   have_val_res_query=yes
-                   LIBS="-lval-threads $LIBS"
-                   VAL_LIBS="-lval-threads -lpthread $VAL_LIBS"
-                   LIBVAL_SUFFIX="-threads",
-                   AC_MSG_ERROR(Can't find libval or libval-threads))
-                 ])
-    AC_DEFINE(DNSSEC_LOCAL_VALIDATION, 1,
-              [Define if you want local DNSSEC validation support])
-    DNSSEC="enabled"
-else
-    DNSSEC="disabled"
-fi
-
-LIBS=${_libs}
-
-AC_SUBST(VAL_LIBS)
-AC_MSG_CACHE_ADD(Local DNSSEC validation:    $DNSSEC)
-
- 
diff --git a/configure.d/config_os_misc3 b/configure.d/config_os_misc3
deleted file mode 100644
index 17aff48..0000000
--- a/configure.d/config_os_misc3
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-# Miscellaneous checks
-##
-#########################################
-
-##
-#   Compilation characteristics
-##
-
-#       Byte order
-#
-if test "$with_endianness" = "big"; then
-    ac_cv_c_bigendian=yes
-elif test "$with_endianness" = "little" ; then
-    ac_cv_c_bigendian=no
-fi
-AC_C_BIGENDIAN(,,
-    [AC_MSG_ERROR([Failed to figure out host endianness, please use --with-endianness to specify it.])])
diff --git a/configure.d/config_os_misc4 b/configure.d/config_os_misc4
deleted file mode 100644
index b6cb040..0000000
--- a/configure.d/config_os_misc4
+++ /dev/null
@@ -1,319 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-# Miscellaneous Operating-System characteristics
-##
-#########################################
-
-
-#	Determine how to test for character devices
-#	[We assume that /dev/null does actually exist!]
-#
-if test -c /dev/null; then
-    CDEV_TEST_FLAG="-c"
-elif test -f /dev/null; then
-    CDEV_TEST_FLAG="-f"
-else
-    AC_MSG_WARN([Can't reliably detect character devices])
-    # Is it actually sensible to fall back on "test -f" ?
-    CDEV_TEST_FLAG="-f"
-fi
-
-#       Kernel Location
-#	    used in library/agent
-#
-AC_CACHE_CHECK([for location of system kernel],
-    ac_cv_KERNEL_LOC,
-   [ac_cv_KERNEL_LOC="unknown"
-    for i in /vmunix /hp-ux /stand/vmunix /dev/ksyms /kernel/unix /kernel/genunix /netbsd /unix /kernel /bsd /mach_kernel /boot/kernel/kernel
-    do
-        if test $CDEV_TEST_FLAG $i; then
-            ac_cv_KERNEL_LOC="$i"
-            break;
-        fi
-    done
-    #
-    # In principle, this test is meant to provide a default path to the kernel
-    # In practice, the test is broken and the kernel path is set to "unknown"
-    #
-    # Note that on certain systems (e.g. some Linux distributions),
-    #    it is impossible to predict the name of the kernel,
-    #    particularly if it includes the kernel version, architecture, etc
-    #
-    # Since this default will never actually be used, then don't try to set it
-    #
-    if test $i = "unknown"; then
-        AC_MSG_WARN([Can't find system kernel... hopefully this won't be needed!])
-    fi
-])
-AC_DEFINE_UNQUOTED(KERNEL_LOC,"$ac_cv_KERNEL_LOC", [location of UNIX kernel])
-
-
-#       /dev/kmem existence
-#	    used in agent only
-#
-AC_CACHE_CHECK([for /dev/kmem],
-    ac_cv_HAVE_KMEM,
-   [if test $CDEV_TEST_FLAG /dev/kmem; then
-        ac_cv_HAVE_KMEM="/dev/kmem"
-    fi
-])
-#
-#  Note that it's OK if this device is not found
-#
-if test "x$ac_cv_HAVE_KMEM" = "x/dev/kmem"; then
-    AC_DEFINE_UNQUOTED(HAVE_KMEM,"$ac_cv_HAVE_KMEM", [Define if you have /dev/kmem])
-fi
-
-
-#       Swap device Location
-#           (/dev/dmem or /dev/drum)
-#	    used in agent only
-#
-AC_CACHE_CHECK([for location of swap device],
-    ac_cv_DMEM_LOC,
-   [if test $CDEV_TEST_FLAG /dev/dmem; then
-        ac_cv_DMEM_LOC="/dev/dmem"
-    elif test $CDEV_TEST_FLAG /dev/drum; then
-        ac_cv_DMEM_LOC="/dev/drum"
-    else
-        ac_cv_DMEM_LOC="none"
-    fi
-])
-#
-#  Note that it's OK if this device is not found
-#
-if test "x$ac_cv_DMEM_LOC" != "xnone"; then
-    AC_DEFINE_UNQUOTED(DMEM_LOC,"$ac_cv_DMEM_LOC", [location of swap device])
-fi
-
-
-#       Mount table Location
-#	    used in agent only
-#
-AC_CACHE_CHECK([for mount table location],
-    ac_cv_ETC_MNTTAB,
-   [ac_cv_ETC_MNTTAB="${with_mnttab:-unknown}"
-    if test "$ac_cv_ETC_MNTTAB" = "unknown"; then
-        for i in /etc/mnttab /etc/mtab /etc/filesystems /dev/mnttab
-        do
-            if test -f $i -o -c $i; then
-                ac_cv_ETC_MNTTAB="$i"
-                break;
-            fi
-        done
-    fi
-])
-AC_DEFINE_UNQUOTED(ETC_MNTTAB,"$ac_cv_ETC_MNTTAB", [location of mount table list])
-
-
-#       Printing
-#	    used in agent only
-#
-AC_PATH_PROG([LPSTAT_PATH],lpstat)
-if test x$LPSTAT_PATH != x; then
-    AC_DEFINE_UNQUOTED(LPSTAT_PATH, "$LPSTAT_PATH",
-	[Path to the lpstat command])
-    AC_DEFINE(HAVE_LPSTAT, 1, [Set if the lpstat command is available])
-fi
-if test -r /etc/printcap; then
-    AC_DEFINE(HAVE_PRINTCAP, 1, [Set if /etc/printcap exists])
-fi
-
-
-#       Check ps args
-#	    used in agent only
-#
-AC_CACHE_CHECK([for correct flags to ps],
-     ac_cv_ps_flags,
-     [
-if test "`($PSPROG -e 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
-    ac_cv_ps_flags="-e"
-elif test "`($PSPROG -el 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
-    ac_cv_ps_flags="-el"
-elif test "`($PSPROG acx 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
-    ac_cv_ps_flags="acx"
-elif test "`($PSPROG -acx 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
-    ac_cv_ps_flags="-acx"
-elif test "`($PSPROG -o pid,tt,state,time,ucomm 2>&1) | $EGREP ' ps *$' | awk '{print $NF}'`" = "ps" ; then
-    ac_cv_ps_flags="-o pid,tt,state,time,ucomm"
-elif test "`($PSPROG ax 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
-    ac_cv_ps_flags="ax"
-elif test "x$PARTIALTARGETOS" = "xcygwin"; then
-    ac_cv_ps_flags="-e"
-elif test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then 
-    ac_cv_ps_flags="-e"
-else
-    AC_MSG_WARN([Unable to determine valid ps flags...  defaulting...])
-    ac_cv_ps_flags="-acx"
-fi
-])
-
-PSCMD="$PSPROG $ac_cv_ps_flags"
-AC_SUBST(PSCMD)
-AC_DEFINE_UNQUOTED(PSCMD, "$PSPROG $ac_cv_ps_flags",
-  [Command to generate ps output, the final column must be the process
-   name withOUT arguments])
-
-
-##
-#   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
-#
-if test $cross_compiling = yes; then
-    AC_MSG_WARN([Can't check sysctl, manually define NETSNMP_CAN_USE_SYSCTL if platform support available])
-else
-    AC_CACHE_CHECK([if sysctl can read kernel information],
-        ac_cv_NETSNMP_CAN_USE_SYSCTL,
-       [AC_TRY_RUN([
-#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
-#if HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-#include <sys/types.h>
-#if HAVE_SYS_SYSCTL_H
-# include <sys/sysctl.h>
-#endif
-
-main() {
-  int                 mib[2];
-  size_t              len;
-  struct timeval boottime;
-  
-  mib[0] = CTL_KERN;
-  mib[1] = KERN_BOOTTIME;
-  
-  len = sizeof(boottime);
-  sysctl(mib, 2, &boottime, &len, NULL, NULL);
-  if (boottime.tv_sec != 0)
-    exit(0);
-  else
-    exit(1);
-}
-        ],
-        ac_cv_NETSNMP_CAN_USE_SYSCTL=yes,
-        ac_cv_NETSNMP_CAN_USE_SYSCTL=no,
-        ac_cv_NETSNMP_CAN_USE_SYSCTL=no)])
-fi
-
-if test "x$ac_cv_NETSNMP_CAN_USE_SYSCTL" = "xyes"; then
-  AC_DEFINE(NETSNMP_CAN_USE_SYSCTL, 1, [sysctl works to get boottime, etc...])
-fi
-
-
-#   Check whether TCP timer constants are indeed constant
-#       or depend on the kernel clock tick 'hz'.        (FreeBSD 4.x)
-#
-#       If the latter, then we will need to have a local
-#       variable 'hz' defined and with a suitable value,
-#       whenever we want to  use one one of these 'constants'.
-#
-# 	    used in agent only
-#
-AC_CACHE_CHECK([whether TCP timers depend on 'hz'],
-    ac_cv_TCPTV_NEEDS_HZ,
-   [AC_EGREP_CPP(hz,
-        [
-#include <netinet/tcp_timer.h>
-TCPTV_SRTTDFLT
-        ],
-        ac_cv_TCPTV_NEEDS_HZ=yes,
-        ac_cv_TCPTV_NEEDS_HZ=no)])
-
-if test "x$ac_cv_TCPTV_NEEDS_HZ" = "xyes"; then
-    AC_DEFINE(TCPTV_NEEDS_HZ, 1,
-        [Define if the TCP timer constants in <netinet/tcp_timer.h>
-         depend on the integer variable 'hz'.  @<:@FreeBSD 4.x@:>@])
-fi
-
-
-#   Check whether IP Route table is cached              (Solaris)
-#	    used in agent only
-#
-case $target_os in
-  solaris*)
-    #    Header checks                                  (Solaris 2.6/7)
-    #
-    AC_CHECK_HEADERS(inet/common.h)
-    AC_CHECK_HEADERS(inet/ip.h,ac_inet_ip_h=yes,ac_inet_ip_h=no,
-        AC_INCLUDES_DEFAULT([])
-        [
-#if HAVE_SYS_STREAM_H
-#include <sys/stream.h>
-#endif
-#if HAVE_INET_COMMON_H
-#include <inet/common.h>
-#endif
-        ])
-    if test $ac_inet_ip_h = yes ; then
-        AC_CACHE_CHECK([for mib2_ipRouteEntry_t in inet/mib2.h],
-            ac_cv_mib2_ipRouteEntry_t,
-           [AC_TRY_COMPILE([
-#if HAVE_INET_MIB2_H
-#include <inet/mib2.h>
-#endif
-               ],[
-  mib2_ipRouteEntry_t testit;
-  if(sizeof(testit))
-    return(0);
-               ],
-               ac_cv_mib2_ipRouteEntry_t=yes,
-               ac_cv_mib2_ipRouteEntry_t=no)])
-
-        if test "x$ac_cv_mib2_ipRouteEntry_t" = "xyes" ; then
-            AC_CACHE_CHECK([whether IRE_CACHE is defined in inet/ip.h],
-                ac_cv_ire_cache,
-               [AC_TRY_COMPILE([
-#if HAVE_INET_IP_H
-#include <inet/ip.h>
-#endif
-                   ],[
-  int testit=IRE_CACHE;
-  if(testit)
-    return(0);
-                   ],
-                   ac_cv_ire_cache=yes,
-                   ac_cv_ire_cache=no)])
-        else
-            ac_cv_ire_cache=no
-        fi
-
-        if test "x$ac_cv_ire_cache" = "xyes" ; then
-            AC_DEFINE(HAVE_DEFINED_IRE_CACHE,[],
-                [define to 1 if you have IRE_CACHE defined in <inet/ip.h> header file.])
-        else
-            AC_MSG_WARN([It seems that you have inet/ip.h, but IRE_CACHE is not defined. \
-That means that your query to ipRoute MIB could generate over 20k results! \
-And this can be very slow.])
-        fi
-    fi         # "test $ac_inet_ip_h = yes"
-    ;;
-esac
diff --git a/configure.d/config_os_progs b/configure.d/config_os_progs
deleted file mode 100644
index 6ab38f4..0000000
--- a/configure.d/config_os_progs
+++ /dev/null
@@ -1,437 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-# Checks for programs
-##
-#########################################
-
-##
-#   Shell checks:
-##
-
-#       Check for 'sh' overflow                         (HP-UX)
-#         (taken from Perl's configure script)
-#
-AC_MSG_CHECKING([if I need to feed myself to ksh])
-if test -f /hp-ux -a -f /bin/ksh; then
-  if (PATH=.; alias -x) >/dev/null 2>&1; then
-    AC_MSG_RESULT(no)
-  else
-    AC_MSG_RESULT(yes)
-    if test "x$1" = "x"; then
-      exec /bin/ksh $0
-    else
-      exec /bin/ksh $0 "$@"
-    fi
-  fi
-else
-  AC_MSG_RESULT(no)
-fi
-
-
-##
-#   Standard and path program checks:
-##
-
-AC_PROG_EGREP
-AC_PROG_GREP
-AC_PROG_INSTALL
-AC_PROG_LN_S
-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)
-
-AC_PATH_PROG(AUTOCONF,    autoconf)
-AC_PATH_PROG(AUTOHEADER,  autoheader)
-AC_PATH_PROG([PERLPROG],  perl)
-AC_PATH_PROG([PSPROG],    ps)
-AC_PATH_PROG([PYTHONPROG],python)
-
-AC_PATH_PROG([UNAMEPROG], uname)
-AC_DEFINE_UNQUOTED(UNAMEPROG,"$UNAMEPROG", [Where is the uname command])
-
-if test "x$ac_cv_prog_AUTOCONF" = "x"; then
-	AUTOCONF=":"
-	AC_SUBST(AUTOCONF)
-fi
-if test "x$ac_cv_prog_AUTOHEADER" = "x"; then
-	AUTOHEADER=":"
-	AC_SUBST(AUTOHEADER)
-fi
-
-MAKE=${MAKE-"make"}
-$MAKE -v -f /dev/null 2>/dev/null | $GREP GNU >/dev/null
-have_gnu_make=$?
-
-
-##
-#   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_SUBST([PERL_SYSTEM_INVOKES_POSIX_SHELL])
-AC_MSG_RESULT([yes])
-
-
-##
-#   Compilation-related program checks:
-##
-
-AC_LANG([C])
-AC_PROG_CC
-AC_PROG_CPP
-LINKCC=${LINKCC-"$CC"}
-AC_SUBST(LINKCC)
-
-AC_AIX
-AC_C_CONST
-AC_C_INLINE
-
-#       libtool stuff for shared/static libraries.
-#
-LT_PREREQ([2.2.6])
-LT_INIT([win32-dll])
-AC_SUBST(LIBTOOL_DEPS)
-
-
-##
-#   Build environment:
-##
-
-#   developer build 
-#       (enabled by default when building from SVN checkout)
-#
-if test "x$developer" != "xno" -a -f $srcdir/remove-files; then
-    developer="yes"
-fi
-AC_MSG_CHECKING([for developer gcc flags])
-if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
-
-    #       WWWXXX - strict type checking
-    #
-    DEVFLAGS="-Wall -Wstrict-prototypes -Wwrite-strings -Wcast-qual"
-else
-    DEVFLAGS=""
-fi
-AC_MSG_RESULT($DEVFLAGS)
-AC_SUBST(DEVFLAGS)
-
-
-#   building outside source directory
-#
-#       a) ensure build include paths are before source
-#       b) ensure GNU make uses 'vpath' instead of 'VPATH'
-#
-NON_GNU_VPATH="VPATH ="
-GNU_vpath="#vpath"
-
-#       define include paths relative to top_srcdir
-#       tweak includes if we're building outside of the source dir
-#
-if test "x$srcdir" = "x."; then
-    TOP_INCLUDES=SRC_TOP_INCLUDES
-    SNMPLIB_INCLUDES=SRC_SNMPLIB_INCLUDES
-    AGENT_INCLUDES=SRC_AGENT_INCLUDES
-    HELPER_INCLUDES=SRC_HELPER_INCLUDES
-    MIBGROUP_INCLUDES=SRC_MIBGROUP_INCLUDES
-else
-    TOP_INCLUDES=BLD_TOP_INCLUDES
-    SNMPLIB_INCLUDES=BLD_SNMPLIB_INCLUDES
-    AGENT_INCLUDES=BLD_AGENT_INCLUDES
-    HELPER_INCLUDES=BLD_HELPER_INCLUDES
-    MIBGROUP_INCLUDES=BLD_MIBGROUP_INCLUDES
-    if test $have_gnu_make -eq 0 ; then
-        NON_GNU_VPATH="#VPATH ="
-        GNU_vpath="vpath"
-    fi
-fi
-AC_SUBST(TOP_INCLUDES)
-AC_SUBST(SNMPLIB_INCLUDES)
-AC_SUBST(AGENT_INCLUDES)
-AC_SUBST(HELPER_INCLUDES)
-AC_SUBST(MIBGROUP_INCLUDES)
-AC_SUBST(GNU_vpath)
-AC_SUBST(NON_GNU_VPATH)
-
-
-##
-#   System-related compilation checks:
-##
-
-#       What system are we building for
-#
-AC_CANONICAL_TARGET
-changequote(, )
-PARTIALTARGETOS=`echo $target_os | sed 's/[-._].*//'`
-changequote([, ])
-AC_MSG_CACHE_ADD(Building for:               $PARTIALTARGETOS)
-
-
-#
-#    Whether or not Cygwin's ld recognizes the flag -no-undefined. 
-#
-
-case x$target_os in
-xcygwin*)
-  saved_LDFLAGS=$LDFLAGS
-
-  AC_MSG_CHECKING([whether the linker supports -no-undefined])
-  LDFLAGS="$saved_LDFLAGS -Wl,-no-undefined"
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-                 [AC_MSG_RESULT([yes]); dnl
-                  LD_NO_UNDEFINED=-no-undefined],
-                 [AC_MSG_RESULT([no])])
-  
-  LDFLAGS="$saved_LDFLAGS"
-  ;;
-esac
-
-AC_SUBST(LD_NO_UNDEFINED)
-
-
-#
-#   Socket library: either 'default' (non-MinGW) or 'winsock2' (MinGW).
-#
-case x$target_os in
-  xmingw*)
-    with_socklib=winsock2
-    if test "x$enable_ipv6" = "xyes"; then
-      CFLAGS="-D_WIN32_WINNT=0x0501 $CFLAGS"
-    fi
-    ;;
-  *)
-    with_socklib=default;;
-esac
-
-
-#   Check system define behaviour
-#       Does "-Ux -Dx=x" work as expected?
-#
-AC_MSG_CHECKING([whether to un-define target system token (before redefining)])
-OLD_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="-U$PARTIALTARGETOS -D$PARTIALTARGETOS=$PARTIALTARGETOS"
-
-AC_EGREP_CPP(yes,
-    [[
-#ifdef $PARTIALTARGETOS
-yes
-#endif
-    ]],
-    [  PARTIALTARGETFLAGS="-U$PARTIALTARGETOS -D$PARTIALTARGETOS=$PARTIALTARGETOS"
-       AC_MSG_RESULT([yes])],
-    [  PARTIALTARGETFLAGS="-D$PARTIALTARGETOS=$PARTIALTARGETOS"
-       AC_MSG_RESULT([no])])
-CFLAGS="$CFLAGS $PARTIALTARGETFLAGS"
-CPPFLAGS="$OLD_CPPFLAGS"
-
-
-#       Determine appropriate <net-snmp/system/{os}.h> include
-#
-AC_MSG_CHECKING([for system include file])
-changequote(, )
-filebase=$target_os
-# ignore binary format indication
-filebase=`echo $filebase | $SED 's/elf//'`
-filebase=`echo $filebase | $SED 's/aout//'`
-filebase=`echo $filebase | $SED 's/ecoff//'`
-filebase=`echo $filebase | $SED 's/coff//'`
-while test "x$filebase" != "x$last" -a ! -f $srcdir/include/net-snmp/system/$filebase.h
-do
-    last=$filebase
-    filebase=`echo $filebase | $SED 's/[-._][^-._]*$//'`
-    if test "x$filebase" = "x$last"; then
-	filebase=`echo $filebase | $SED 's/[0-9]*$//'`
-    fi
-done
-
-if test "x$filebase" = "x$last"; then
-    filebase="generic"
-fi
-ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE="net-snmp/system/$filebase.h"
-changequote([, ])
-AC_MSG_RESULT($ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE)
-AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_INCLUDE_FILE, "$ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE")
-
-
-#       Determine appropriate <net-snmp/machine/{cpu}.h> include
-#
-AC_MSG_CHECKING([for machine-type include file])
-changequote(, )
-filebase=$target_cpu
-while test "x$filebase" != "x$last" -a ! -f $srcdir/include/net-snmp/machine/$filebase.h
-do
-    last=$filebase
-    filebase=`echo $filebase | $SED 's/[-._][^-._]*$//'`
-done
-
-if test "x$filebase" = "x$last"; then
-    filebase="generic"
-fi
-ac_cv_NETSNMP_MACHINE_INCLUDE_FILE="net-snmp/machine/$filebase.h"
-changequote([, ])
-AC_MSG_RESULT([$ac_cv_NETSNMP_MACHINE_INCLUDE_FILE])
-AC_DEFINE_UNQUOTED(NETSNMP_MACHINE_INCLUDE_FILE, "$ac_cv_NETSNMP_MACHINE_INCLUDE_FILE")
-
-
-##
-#   Platform-specific compilation checks:
-##
-
-#   Preprocessor checks:
-#
-
-#       More sensible system identifier                 (MinGW)
-#
-if test "x$PARTIALTARGETOS" = "xmingw32msvc"; then
-	CFLAGS="$CFLAGS -Dmingw32"
-fi
-
-#       Handle .in file extension                       (GCC)
-#
-AC_MSG_CHECKING([for additional cpp flags])
-if test "x$GCC" = "xyes" -a "x$CPP" = "x$CC -E"; then
-    EXTRACPPFLAGS="-x c"
-else
-    EXTRACPPFLAGS=""
-fi
-
-#       Solaris extra CPP flags                         (Solaris)
-#
-if test "x$GCC" != "xyes"; then
-    case $target_os in
-        solaris*) EXTRACPPFLAGS="$EXTRACPPFLAGS -Xs" ;;
-    esac
-fi
-
-AC_SUBST(EXTRACPPFLAGS)
-AC_MSG_RESULT($EXTRACPPFLAGS)
-
-
-#   Compiler checks:
-#
-
-AC_PATH_PROG([CCPATH],$CC)
-case $target_os in
-    bsdi*)
-        #   Check for bundled compiler                  (BSDi)
-        #
-	if test "x$CCPATH" = "x/usr/ucb/cc" -o "x$CCPATH" = "x/usr/bin/cc"; then
-	    AC_MSG_ERROR([
-
-*** The BSDI /usr/ucb/cc compiler does not work with this package.  
-*** Please run configure with --with-cc=gcc
-])
-	fi
-    ;;
-    solaris*)
-        #   Check for bundled compiler                  (Solaris)
-        #
-	if test "x$CCPATH" = "x/usr/ucb/cc"; then
-	    AC_MSG_ERROR([
-
-*** The solaris /usr/ucb/cc compiler does not work with this package.  
-*** Please put a different compiler in your path first or run
-*** configure with --with-cc=XX, where XX is the compiler you want to use.
-])
-	fi
-    ;;
-esac
-
-
-#   Compiler flags:
-#
-
-# The Net-SNMP source code is not strict-aliasing safe, so add
-# -fno-strict-aliasing to $CFLAGS if the compiler supports it.
-AC_MSG_CHECKING([whether the compiler supports -fno-strict-aliasing])
-netsnmp_save_CFLAGS="$CFLAGS"
-CFLAGS="-fno-strict-aliasing $CFLAGS"
-AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [AC_MSG_RESULT([yes])], [
-  AC_MSG_RESULT([no])
-  CFLAGS="$netsnmp_save_CFLAGS"
-])
-
-
-#   Linker checks:
-#
-    
-case $target_os in
-    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])
-        for ld_flag in $LDFLAGS; do
-            if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-                netsnmp_aix_runtimelinking_flags_ok=yes
-                break
-            fi
-        done
-        if test "X$netsnmp_aix_runtimelinking_flags_ok" != "Xyes"; then
-	    if test "x$GCC" = "xyes"; then
-	        netsnmp_aix_ldflags="-Wl,-brtl"
-	    else
-                netsnmp_aix_ldflags="-brtl"
-	    fi
-            LDFLAGS="$netsnmp_aix_ldflags $LDFLAGS"
-	    AC_MSG_RESULT($netsnmp_aix_ldflags)
-	else
-	    AC_MSG_RESULT([none])
-	fi
-	;;
-
-    darwin8*|darwin9*|darwin10*)
-        #   Flat Namespace linking                      (Mac OS/X)
-        #
-        AC_MSG_CHECKING([whether darwin ld might need -flat_namespace])
-	if test -z "$MACOSX_DEPLOYMENT_TARGET"; then
-		LDFLAGS="-flat_namespace $LDFLAGS"
-		AC_MSG_RESULT([yes])
-	else
-		AC_MSG_RESULT([no])
-	fi
-	;;
-
-    *)
-        ;;
-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:
-##
-
-#       Substitute version number.
-#
-AC_SUBST(VERSION, $PACKAGE_VERSION)
-AC_MSG_CACHE_ADD(Net-SNMP Version:           $PACKAGE_VERSION)
-
diff --git a/configure.d/config_os_struct_members b/configure.d/config_os_struct_members
deleted file mode 100644
index b26cf77..0000000
--- a/configure.d/config_os_struct_members
+++ /dev/null
@@ -1,754 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-# Checks for data structures & members
-##
-#########################################
-
-##
-#   Simple checks:
-##
-
-#       struct arphd
-#   Agent:
-#
-AC_CHECK_MEMBERS([struct arphd.at_next],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#include <net/if.h>
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IF_ETHER_H
-#include <netinet/if_ether.h>
-#endif
-    ]])
-
-#       struct des_ks_struct
-#         ('weak_key' indicates older version of OpenSSL)
-#   Library:
-#
-if test "x$ac_cv_header_openssl_des_h" = "xyes" ; then
-    AC_CHECK_MEMBERS([struct des_ks_struct.weak_key],,,[[
-#ifdef HAVE_OPENSSL_DES_H
-#include <openssl/des.h>
-#endif
-    ]])
-fi
-
-#       struct dirent
-#         (see also AC_STRUCT_DIRENT_D_TYPE)
-#   Library:
-#
-AC_CHECK_MEMBERS([struct dirent.d_type],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#if HAVE_DIRENT_H
-#include <dirent.h>
-#endif
-    ]])
-
-#       struct ethtool_cmd
-#
-if test "x$ac_cv_header_linux_ethtool_h" = "xyes" ; then
-AC_CHECK_MEMBERS([struct ethtool_cmd.speed_hi],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#ifdef HAVE_LINUX_ETHTOOL_H
-#include <linux/ethtool.h>
-#endif
-    ]])
-fi
-
-#       struct ipstat
-#   Agent:
-#
-AC_CHECK_MEMBERS([struct ipstat.ips_cantfrag,
-                  struct ipstat.ips_delivered,
-                  struct ipstat.ips_fragdropped,
-                  struct ipstat.ips_fragmented,
-                  struct ipstat.ips_localout,
-                  struct ipstat.ips_noproto,
-                  struct ipstat.ips_noroute,
-                  struct ipstat.ips_odropped,
-                  struct ipstat.ips_ofragments,
-                  struct ipstat.ips_reassembled],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
-    ]])
-#
-#   Not-Used:
-AC_CHECK_MEMBERS([struct ipstat.ips_cantforward,
-                  struct ipstat.ips_fragtimeout],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
-    ]])
-
-#       struct mbstat
-#   Not-Used:
-#
-AC_CHECK_MEMBERS([struct mbstat.m_clusters,
-                  struct mbstat.m_clfree,
-                  struct mbstat.m_mbufs],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#if HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_MBUF_H
-#include <sys/mbuf.h>
-#endif
-    ]])
-
-#       struct nlist
-#
-AC_CHECK_MEMBERS([struct nlist.n_value,
-                  struct nlist64.n_value],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#if HAVE_NLIST_H
-#include <nlist.h>
-#endif
-    ]])
-
-#       struct sigaction
-#   Agent:
-#
-AC_CHECK_MEMBERS([struct sigaction.sa_sigaction],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SIGNAL_H
-#include <sys/signal.h>
-#endif
-    ]])
-
-#       struct sockaddr
-#   Library:
-#
-AC_CHECK_MEMBERS([struct sockaddr.sa_len,
-                  struct sockaddr.sa_union.sa_generic.sa_family2,
-                  struct sockaddr_storage.ss_family,
-                  struct sockaddr_storage.__ss_family],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#elif defined(HAVE_WINSOCK2_H)
-#include <winsock2.h>
-#endif
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-    ]])
-
-#       struct sockaddr_in6     (see RFC 2553)
-#   Library:
-#
-AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.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 msghdr
-#   Library:
-#
-AC_CHECK_MEMBERS([struct msghdr.msg_control,
-                  struct msghdr.msg_flags],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.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
-#   Library:
-#
-AC_CHECK_SIZEOF([sockaddr_un.sun_path],,[
-    AC_INCLUDES_DEFAULT
-    [
-#if HAVE_SYS_UN_H
-#include <sys/un.h>
-#endif
-struct sockaddr_un sockaddr_un;
-    ]])
-
-#       struct statfs
-#   Agent:
-#
-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()
-    [
-#if HAVE_SYS_STATFS_H
-#include <sys/statfs.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_MOUNT_H
-#include <sys/mount.h>
-#endif 
-#ifdef HAVE_NBUTIL_H
-#include <nbutil.h>
-#endif 
-    ]])
-
-#       struct statvfs
-#   Agent:
-#
-AC_CHECK_MEMBERS([struct statvfs.f_files,
-                  struct statvfs.f_frsize,
-                  struct statvfs.mnt_dir],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#if HAVE_SYS_STATFS_H
-#include <sys/statfs.h>
-#endif
-#if HAVE_SYS_STATVFS_H
-#include <sys/statvfs.h>
-#endif
-    ]])
-
-#       struct swdevt
-#   Not-Used:
-#
-AC_CHECK_MEMBERS([struct swdevt.sw_nblksenabled],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#if HAVE_SYS_CONF_H
-#include <sys/conf.h>
-#endif
-    ]])
-
-#       struct tcpstat
-#   Agent:
-#
-AC_CHECK_MEMBERS([struct tcpstat.tcp_rcvmemdrop],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_TIMEOUT_H
-#include <sys/timeout.h>
-#endif
-#ifdef HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif
-#ifdef HAVE_NETINET_TCP_TIMER_H
-#include <netinet/tcp_timer.h>
-#endif
-#ifdef HAVE_NETINET_TCP_VAR_H
-#include <netinet/tcp_var.h>
-#endif
-    ]])
-
-#       struct tm
-#   Library:
-#
-AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#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
-    ]])
-
-#       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:
-#
-AC_CHECK_MEMBERS([struct udpstat.udps_discard,
-                  struct udpstat.udps_fullsock,
-                  struct udpstat.udps_noport,
-                  struct udpstat.udps_noportbcast,
-                  struct udpstat.udps_opackets],,,[
-    AC_INCLUDES_DEFAULT()
-    [
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_NETINET_IP_VAR_H
-#include <netinet/ip_var.h>
-#endif
-#if HAVE_NETINET_UDP_H
-#include <netinet/udp.h>
-#endif
-#if HAVE_NETINET_UDP_VAR_H
-#include <netinet/udp_var.h>
-#endif
-    ]])
-
-
-
-##
-#   ifnet-related checks:
-##
-
-#       Does "struct ifnet" need _KERNEL defined?       (Irix)
-#
-AC_CACHE_CHECK([if _KERNEL needs to be defined for if_mtu],
-        [ac_cv_IFNET_NEEDS_KERNEL],
-        [ac_cv_IFNET_NEEDS_KERNEL=unknown
-         AC_COMPILE_IFELSE(
-             [AC_LANG_PROGRAM([
-#include <sys/types.h>
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-             ], [[struct ifnet test; test.if_mtu = 0;]])],
-             [ac_cv_IFNET_NEEDS_KERNEL=no])
-         if test "$ac_cv_IFNET_NEEDS_KERNEL" = unknown ; then
-         AC_COMPILE_IFELSE(
-             [AC_LANG_PROGRAM([
-#define _KERNEL 1
-#include <sys/types.h>
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-             ], [[struct ifnet test; test.if_mtu = 0;]])],
-             [ac_cv_IFNET_NEEDS_KERNEL=yes])
-         fi])
-
-if test "x$ac_cv_IFNET_NEEDS_KERNEL" = "xyes"; then
-    AC_DEFINE(NETSNMP_IFNET_NEEDS_KERNEL, 1,
-        [ifnet needs to have _KERNEL defined])
-fi
-
-#       Does "struct ifnet" need _KERNEL_STRUCTURES defined?       (DragonFly 3)
-#
-AC_CACHE_CHECK([if _KERNEL_STRUCTURES needs to be defined for if_mtu],
-        [ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES],
-        [ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES=unknown
-         AC_COMPILE_IFELSE(
-             [AC_LANG_PROGRAM([
-#include <sys/types.h>
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-             ], [[struct ifnet test; test.if_mtu = 0;]])],
-             [ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES=no])
-         if test "$ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES" = unknown ; then
-         AC_COMPILE_IFELSE(
-             [AC_LANG_PROGRAM([
-#define _KERNEL_STRUCTURES 1
-#include <sys/types.h>
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-             ], [[struct ifnet test; test.if_mtu = 0;]])],
-             [ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES=yes])
-         fi])
-
-if test "x$ac_cv_IFNET_NEEDS_KERNEL_STRUCTURES" = "xyes"; then
-    AC_DEFINE(NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES, 1,
-        [ifnet needs to have _KERNEL_STRUCTURES defined])
-fi
-
-
-#       struct ifaddr
-#   Not-Used:
-#
-AC_CHECK_MEMBERS([struct ifaddr.ifa_next],,,[
-    [
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-    ]
-    AC_INCLUDES_DEFAULT()
-    [
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-    ]])
-
-#       struct ifnet
-#         (Broken on FreeBSD - #define'd in <net/if.h>)
-#   Agent:   (?or Not-Used?)
-#
-AC_CHECK_MEMBERS([struct ifnet.if_addrlist,
-                  struct ifnet.if_addrhead.tqh_first,
-                  struct ifnet.if_baudrate,
-                  struct ifnet.if_baudrate.ifs_value,
-                  struct ifnet.if_ibytes,
-                  struct ifnet.if_imcasts,
-                  struct ifnet.if_iqdrops,
-                  struct ifnet.if_lastchange.tv_sec,
-                  struct ifnet.if_lastchange.tv_nsec,
-                  struct ifnet.if_mtu,
-                  struct ifnet.if_noproto,
-                  struct ifnet.if_obytes,
-                  struct ifnet.if_omcasts,
-                  struct ifnet.if_speed,
-                  struct ifnet.if_type,
-                  struct ifnet.if_xname],,,[[
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-#ifdef HAVE_NET_IF_VAR_H
-#include <net/if_var.h>
-#endif
-#ifdef HAVE_SYS_QUEUE_H
-#include <sys/queue.h>
-#endif
-#ifdef linux
-struct ifnet {
-	char	*if_name;		/* name, e.g. "en" or "lo" */
-	short	if_unit;		/* sub-unit for lower level driver */
-	short	if_mtu;			/* maximum transmission unit */
-	short	if_flags;		/* up/down, broadcast, etc. */
-	int	if_metric;		/* routing metric (external only) */
-	char    if_hwaddr [6];		/* ethernet address */
-	int	if_type;		/* interface type: 1=generic,
-					   28=slip, ether=6, loopback=24 */
-	int	if_speed;		/* interface speed: in bits/sec */
-
-	struct sockaddr if_addr;	/* interface's address */
-	struct sockaddr ifu_broadaddr;	/* broadcast address */
-	struct sockaddr ia_subnetmask; 	/* interface's mask */
-
-	struct	ifqueue {
-		int	ifq_len;
-		int	ifq_drops;
-	} if_snd;			/* output queue */
-	int	if_ibytes;		/* octets received on interface */
-	int	if_ipackets;		/* packets received on interface */
-	int	if_ierrors;		/* input errors on interface */
-        int     if_iqdrops;             /* input queue overruns */
-	int	if_obytes;		/* octets sent on interface */
-	int	if_opackets;		/* packets sent on interface */
-	int	if_oerrors;		/* output errors on interface */
-	int	if_collisions;		/* collisions on csma interfaces */
-/* end statistics */
-	struct	ifnet *if_next;
-};
-#endif
-    ]])
-
-
-##
-#   rtentry structure checks:
-##
-
-# Check struct rtentry for common fields
-#   Agent:
-#
-AC_CHECK_MEMBERS([struct rtentry.rt_dst,
-                  struct rtentry.rt_hash,
-                  struct rtentry.rt_next,
-                  struct rtentry.rt_refcnt,
-                  struct rtentry.rt_unit,
-                  struct rtentry.rt_use],,,
-    [
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <sys/types.h>
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#include <sys/socket.h>
-#undef KERNEL
-#undef _KERNEL
-#endif
-#ifdef HAVE_NET_ROUTE_H
-#include <net/route.h>
-#endif
-    ])
-
-
-# Check for BSD 4.3 vs 4.4 struct rtentry
-#
-AC_CACHE_CHECK([type of rtentry structure],
-    [ac_cv_RTENTRY_TYPE],
-    [
-        # BSD 4.4 compatible structure
-        #    ('rt_nodes' array)
-        #
-        AC_TRY_COMPILE([
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <sys/types.h>
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#include <sys/socket.h>
-#undef KERNEL
-#undef _KERNEL
-#include <net/route.h>
-        ],[
-
-#ifndef HAVE_STRUCT_RTENTRY_RT_DST
-#define rt_dst rt_nodes->rn_key
-#endif
-
-  struct rtentry rt; 
-  rt.rt_nodes[0].rn_flags = 1;
-  rt.rt_dst;
-        ], ac_cv_RTENTRY_TYPE="BSD-4.4")
-
-        if test "x$ac_cv_RTENTRY_TYPE" = "x"; then
-        # BSD 4.3 compatible structure
-        #    ('rt_hash')
-        #
-        AC_TRY_COMPILE([
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#include <sys/types.h>
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-#define _KERNEL_STRUCTURES 1
-#endif
-#ifdef NETSNMP_IFNET_NEEDS_KERNEL
-#define KERNEL
-#if !defined(__DragonFly__)
-#define _KERNEL 1
-#endif
-#endif
-#include <sys/socket.h>
-#undef KERNEL
-#undef _KERNEL
-#include <net/route.h>
-        ],[
-
-struct rtentry rt; 
-rt.rt_hash;
-        ], ac_cv_RTENTRY_TYPE="BSD-4.3")
-        fi
-
-        if test "x$ac_cv_RTENTRY_TYPE" = "x"; then
-        # Neither BSD 4.3 nor 4.4 compatible structure
-        #
-            ac_cv_RTENTRY_TYPE="unknown"
-        fi
-    ])
-
-if test "x$ac_cv_RTENTRY_TYPE" = "xBSD-4.4"; then
-    AC_DEFINE(RTENTRY_4_4, 1, [Use BSD 4.4 routing table entries?])
-fi
-
-#    Check for ortentry                                 (Alpha)
-#
-if test "x$ac_cv_RTENTRY_TYPE" = "xunknown"; then
-    AC_CACHE_CHECK([for struct rtentry],
-        [ac_cv_struct_rtentry],
-        [AC_EGREP_CPP(ortentry,
-            [
-#define KERNEL
-#include <net/route.h>
-            ],
-            [ac_cv_struct_rtentry=ortentry],
-            [ac_cv_struct_rtentry=rtentry ])
-        if test "x$ac_cv_struct_rtentry" = "xrtentry" ; then
-             ac_cv_struct_rtentry="rtentry"
-        else
-             ac_cv_struct_rtentry="ortentry"
-        fi
-    ])
-else
-    RTENTRY_TYPE="rtentry"
-    ac_cv_struct_rtentry="rtentry"
-fi
-
-if test "x$ac_cv_struct_rtentry" = "x"; then
-    ac_cv_struct_rtentry=rtentry
-fi
-AC_DEFINE_UNQUOTED(RTENTRY,struct ${ac_cv_struct_rtentry},
-        [define rtentry to ortentry on SYSV machines (alphas)])
-
diff --git a/configure.d/config_project_ipv6_types b/configure.d/config_project_ipv6_types
deleted file mode 100644
index 35886a1..0000000
--- a/configure.d/config_project_ipv6_types
+++ /dev/null
@@ -1,208 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-# Checks for types
-##
-#########################################
-
-##
-#   Standard checks:
-##
-
-AC_CHECK_SIZEOF(short)
-AC_CHECK_SIZEOF(int)
-AC_CHECK_SIZEOF(long)
-AC_CHECK_SIZEOF(long long)
-AC_CHECK_SIZEOF(intmax_t)
-
-AC_TYPE_INT8_T
-AC_TYPE_INT16_T
-AC_TYPE_INT32_T
-AC_TYPE_INT64_T
-AC_TYPE_INTMAX_T
-AC_TYPE_UINT8_T
-AC_TYPE_UINT16_T
-AC_TYPE_UINT32_T
-AC_TYPE_UINT64_T
-AC_TYPE_UINTMAX_T
-AC_TYPE_INTPTR_T
-AC_TYPE_UINTPTR_T
-
-##
-#   Other type checks:
-##
-
-AC_CHECK_TYPES([off64_t])
-AC_CHECK_TYPES([nfds_t],,,[#include <sys/poll.h>])
-
-#   Solaris specific checks
-#       (taken from Perl's configure script)
-#
-AC_CHECK_TYPES([Counter64],,,[#include <inet/mib2.h>])
-AC_CHECK_TYPES([mib2_ipIfStatsEntry_t],,,[#include <inet/mib2.h>])
-
-#   N.B:  The above checks could safely be moved to
-#         the later 'config_types' sub-script
-#
-
-
-##
-#   Determine the IPv6 stack type
-##
-
-#       These checks also set the LIBS/CFLAGS variables,
-#       which may be needed for subsequent function tests
-#
-
-if test "x$enable_ipv6" = "xyes"; then
-	v6type=unknown
-	v6lib=none
-	v6trylibc=no
-
-	AC_MSG_CHECKING([[ipv6 stack type]])
-	for i in v6d toshiba kame inria zeta linux-glibc linux-inet6 cygwin winsock2 generic; do
-		case $i in
-		v6d)
-			AC_EGREP_CPP(yes, [
-#include </usr/local/v6/include/sys/types.h>
-#ifdef __V6D__
-yes
-#endif],
-				[v6type=$i; v6lib=v6;
-				v6libdir=/usr/local/v6/lib;
-				CFLAGS="-I/usr/local/v6/include $CFLAGS"])
-			;;
-		toshiba)
-			AC_EGREP_CPP(yes, [
-#include <sys/param.h>
-#ifdef _TOSHIBA_INET6
-yes
-#endif],
-				[v6type=$i; v6lib=inet6;
-				v6libdir=/usr/local/v6/lib;
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
-			;;
-		kame)
-			AC_EGREP_CPP(yes, [
-#include <netinet/in.h>
-#ifdef __KAME__
-yes
-#endif],
-				[v6type=$i; v6lib=inet6;
-				v6libdir=/usr/local/v6/lib;
-				v6trylibc=yes;
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
-			;;
-		inria)
-			AC_EGREP_CPP(yes, [
-#include <netinet/in.h>
-#ifdef IPV6_INRIA_VERSION
-yes
-#endif],
-				[v6type=$i;
-				v6lib=dummy;
-				v6libdir=none;
-				v6trylibc=yes;
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
-			;;
-		zeta)
-			AC_EGREP_CPP(yes, [
-#include <sys/param.h>
-#ifdef _ZETA_MINAMI_INET6
-A
-yes
-#endif],
-				[v6type=$i; v6lib=inet6;
-				v6libdir=/usr/local/v6/lib;
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
-			;;
-		linux-glibc)
-			AC_EGREP_CPP(yes, [
-#include <features.h>
-#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC_ > 2))
-yes
-#endif],
-				[v6type=$i;
-				v6lib=dummy;
-				v6libdir=none;
-				v6trylibc=yes;
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
-			;;
-		linux-inet6)
-			if test -d /usr/inet6; then
-				v6type=$i
-				v6lib=inet6
-				v6libdir=/usr/inet6/lib
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
-			fi
-			;;
-		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"])
-                       ;;
-		winsock2)
-			AC_EGREP_CPP(yes, [
-#include <ws2tcpip.h>
-#if defined(_WS2TCPIP_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],,,[
-AC_INCLUDES_DEFAULT()
-[#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-]])
-	                AC_MSG_CHECKING([[ipv6 stack type]])
-                        if test "x$ac_cv_member_struct_sockaddr_in6_sin6_addr" = "xyes"; then
-				v6type=$i
-				v6lib=dummy
-				v6libdir=none
-				v6trylibc=yes
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
-                        fi
-			;;
-		esac
-		if test "$v6type" != "unknown"; then
-			break
-		fi
-	done
-
-	if test "$v6lib" != "none"; then
-		if test -d $v6libdir -a -f $v6libdir/lib$v6lib.a; then
-			LIBS="-L$v6libdir -l$v6lib $LIBS"
-			enable_ipv6="yes"
-			AC_MSG_RESULT(["$v6type, $enable_ipv6, using lib$v6lib"])
-		elif test "$v6trylibc" = "yes"; then
-			enable_ipv6="yes"
-			AC_MSG_RESULT(["$v6type, $enable_ipv6, using libc"])
-		else
-			AC_MSG_ERROR(no IPv6 library lib$v6lib.a found.)
-			exit 1
-		fi
-	else
-		enable_ipv6="no"
-		AC_MSG_RESULT(["$v6type, $enable_ipv6"])
-	fi
-fi
diff --git a/configure.d/config_project_manual b/configure.d/config_project_manual
deleted file mode 100644
index 31efdd3..0000000
--- a/configure.d/config_project_manual
+++ /dev/null
@@ -1,170 +0,0 @@
-# -*- autoconf -*-
-#
-# Prompt for various bits of user information
-#
-
-if test "x$ac_cv_user_prompt_NETSNMP_LOGFILE" = "x" -o "x$ac_cv_user_prompt_NETSNMP_SYS_LOC" = "x" -o "x$ac_cv_user_prompt_NETSNMP_SYS_CONTACT" = "x" -o "x$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" = "x"; then
-AC_CACHE_CHECK(whether to prompt for values, ac_cv_have_warned,
-[
-if test "x$defaults" = "xno"; then
-AC_MSG_NOTICE([
-
-	 ************** Configuration Section **************
-
-	You are about to be prompted with a series of questions.  Answer
-them carefully, as they determine how the SNMP agent and related
-applications are to function.
-
-	After the configure script finishes, you can browse the newly
-created net-snmp-config.h file for further - less important - parameters to
-modify.  Be careful if you re-run configure though, since net-snmp-config.h 
-will be overwritten.
-
--Press return to continue-
-])
-
-read tmpinput <&AS_ORIGINAL_STDIN_FD
-ac_cv_have_warned="yes"
-else
-  ac_cv_have_warned="no"
-fi
-])
-else
-  ac_cv_have_warned="yes"
-fi
-
-ME=`$WHOAMI`
-if test -f /etc/resolv.conf; then
-  LOC=`awk '/^domain/{loc=$NF}END{print loc}' /etc/resolv.conf`
-fi
-if test "x$LOC" = x; then
-  LOC="@no.where"
-fi
-
-AC_PROMPT_USER(NETSNMP_DEFAULT_SNMP_VERSION,[
-
-*** Default SNMP Version:
-
-	Starting with Net-SNMP 5.0, you can choose the default version of
-the SNMP protocol to use when no version is given explicitly on the
-command line, or via an 'snmp.conf' file.  In the past this was set to
-SNMPv1, but you can use this to switch to SNMPv3 if desired.  SNMPv3
-will provide a more secure management environment (and thus you're
-encouraged to switch to SNMPv3), but may break existing scripts that
-rely on the old behaviour.  (Though such scripts will probably need to
-be changed to use the '-c' community flag anyway, as the SNMPv1
-command line usage has changed as well.).
-   At this prompt you can select \"1\", \"2\" (for SNMPv2c), or \"3\" as
-the default version for the command tools (snmpget, ...) to use.  This
-can always be overridden at runtime using the -v flag to the tools, or
-by using the \"defVersion\" token in your snmp.conf file.
-   Providing the --with-default-snmp-version=\"x\" parameter to ./configure
-will avoid this prompt.
-
-Default version of SNMP to use],3,unquoted)
-
-# we tested this above before the prompt, but the prompt may give a new value.
-case "${ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION}" in
-  [[123]]) ;;
-  2c) ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION=2 ;;
-  *)
-    AC_MSG_ERROR([Illegal version number.  Only 1, 2 (for SNMPv2c) and 3 are supported.])
-    ;;
-esac
-
-AC_PROMPT_USER(NETSNMP_SYS_CONTACT,[
-
-*** System Contact Information:
-
-	Describes who should be contacted about the host the agent is
-running on.  This information is available in the MIB-II tree.  This
-can also be over-ridden using the \"syscontact\" syntax in the agent's
-configuration files.
-  Providing the --with-sys-contact=\"contact\" parameter to ./configure
-will avoid this prompt.
-
-System Contact Information],$ME@$LOC,quoted)
-
-AC_PROMPT_USER(NETSNMP_SYS_LOC,[
-
-*** System Location:
-
-	Describes the location of the system.  This information is
-available in the MIB-II tree.  this can also be over-ridden using the
-\"syslocation\" syntax in the agent's configuration files.
-  Providing the --with-sys-location=\"location\" parameter to ./configure
-will avoid this prompt.
-
-System Location],Unknown,quoted)
-
-if test -d /var/log; then
-  defaultlog="/var/log/snmpd.log"
-else
-  defaultlog="/usr/adm/snmpd.log"
-fi
-  
-AC_PROMPT_USER(NETSNMP_LOGFILE,[
-
-*** Logfile location:
-
-	Enter the default location for the snmpd agent to dump
-information & errors to.  If not defined (enter the keyword \"none\"
-at the prompt below) the agent will use stdout and stderr instead.
-(Note: This value can be over-ridden using command line options.)
-  Providing the --with-logfile=\"path\" parameter to ./configure
-will avoid this prompt.
-
-Location to write logfile],$defaultlog,quoted)
-
-if test -d /var; then
-  defaultstore="/var/net-snmp"
-  ucddefaultstore="/var/ucd-snmp"
-else
-  defaultstore="/etc/net-snmp"
-  ucddefaultstore="/etc/ucd-snmp"
-fi
-  
-AC_PROMPT_USER(NETSNMP_PERSISTENT_DIRECTORY,[
-
-*** snmpd persistent storage location:
-
-	Enter a directory for the SNMP library to store persistent
-data in the form of a configuration file.  This default location is
-different than the old default location (which was for ucd-snmp).  If
-you stay with the new path, I'll ask you in a second if you wish to
-copy your files over to the new location (once only).  If you pick
-some other path than the default, you'll have to copy them yourself.
-There is nothing wrong with picking the old path ($ucddefaultstore) if
-you'd rather.
-  Providing the --with-persistent-directory=\"path\" parameter to
-./configure will avoid this prompt.
-
-Location to write persistent information],$defaultstore,quoted)
-
-PERSISTENT_DIRECTORY=$ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY
-AC_SUBST(PERSISTENT_DIRECTORY)
-UCDPERSISTENT_DIRECTORY=$ucddefaultstore
-AC_SUBST(UCDPERSISTENT_DIRECTORY)
-
-if test $PERSISTENT_DIRECTORY = "$defaultstore" -a -d "$ucddefaultstore" -a ! -d "$defaultstore" ; then
-AC_CACHE_CHECK(If we should copy the old persistent directory, ac_cv_user_prompt_COPY_PERSISTENT_FILES,
-[
-AC_PROMPT_USER_NO_DEFINE(ac_cv_user_prompt_COPY_PERSISTENT_FILES,[
-
-*** Copying old ucd-snmp persistent files to net-snmp persistent directory:
-
-	Would you like to copy the older ucd-snmp persistent files
-into your new net-snmp persistent file path?  This will functionally
-save all your ucd-snmp data and let it be used within the net-snmp
-tools.  This will only be done once when you run make install.  If you
-wish to do this, enter "yes" at the prompt.
-  Providing the --with-copy-persistent-files=\"no\" (or \"yes\")
-parameters to ./configure will avoid this prompt.
-
-Copy ucd-snmp data into the net-snmp data directory],"yes")
-])
-else
-ac_cv_user_prompt_COPY_PERSISTENT_FILES="no"
-fi
-COPY_PERSISTENT_FILES="$ac_cv_user_prompt_COPY_PERSISTENT_FILES"
-AC_SUBST(COPY_PERSISTENT_FILES)
diff --git a/configure.d/config_project_paths b/configure.d/config_project_paths
deleted file mode 100644
index 9690c84..0000000
--- a/configure.d/config_project_paths
+++ /dev/null
@@ -1,101 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-# Configure paths
-##
-#########################################
-
-##
-#   Prefix paths:
-##
-
-#   Main prefix
-#
-if test "x$prefix" = "xNONE"; then
-  prefix=/usr/local
-fi
-
-#       Prefix must be an absolute path
-#           i.e. begin with "/"                         (Unix)
-#                or "[A-Z]:"                            (Windows)
-#
-firstchar=`echo $prefix | $SED 's/\(.\).*/\1/'`
-if test "x$firstchar" != "x/" ; then
-   secondchar=`echo $prefix | $SED 's/.\(.\).*/\1/'`
-   if test "x$secondchar" != "x:" ; then
-      prefix=`pwd`/$prefix
-      echo "adjusting prefix to $prefix"
-   fi
-fi
-
-
-#   Exec prefix
-#
-#       Prefix must be an absolute path
-#           i.e. begin with "/"                         (Unix)
-#                or "[A-Z]:"                            (Windows)
-#
-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
-
-
-##
-#   Environmental variables:
-##
-
-#       SNMPLIBPATH
-#
-SNMPLIBPATH=""
-tmpset="$libdir/snmp"
-while test "x$tmpset" != "x$SNMPLIBPATH"; do
-    SNMPLIBPATH="$tmpset"
-    eval tmpset="$tmpset"
-done
-AC_DEFINE_UNQUOTED(SNMPLIBPATH,"$SNMPLIBPATH")
-AC_SUBST(SNMPLIBPATH)
-AC_DEFINE_UNQUOTED(SNMPDLMODPATH,"$SNMPLIBPATH/dlmod")
-
-#       SNMPSHAREPATH
-#
-SNMPSHAREPATH=""
-tmpset="$datadir/snmp"
-while test "x$tmpset" != "x$SNMPSHAREPATH"; do
-    SNMPSHAREPATH="$tmpset"
-    eval tmpset="$tmpset"
-done
-AC_DEFINE_UNQUOTED(SNMPSHAREPATH,"$SNMPSHAREPATH")
-AC_SUBST(SNMPSHAREPATH)
-
-#       MIBDIRS   (default)
-#
-if test "x$NETSNMP_DEFAULT_MIBDIRS" = "x"; then
-    NETSNMP_DEFAULT_MIBDIRS="\$HOME/.snmp/mibs:$SNMPSHAREPATH/mibs"
-    if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
-        #
-        #    USe Windows-style path separator
-        NETSNMP_DEFAULT_MIBDIRS=`echo "$NETSNMP_DEFAULT_MIBDIRS" | $SED 's/:/;/g'`
-    fi
-    AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_MIBDIRS,"$NETSNMP_DEFAULT_MIBDIRS")
-fi
-AC_SUBST(NETSNMP_DEFAULT_MIBDIRS)
-
-#       SNMPCONFPATH
-#
-SNMPCONFPATH=""
-tmpset="$sysconfdir/snmp"
-while test "x$tmpset" != "x$SNMPCONFPATH"; do
-    SNMPCONFPATH="$tmpset"
-    eval tmpset="$tmpset"
-done
-AC_DEFINE_UNQUOTED(SNMPCONFPATH,"$SNMPCONFPATH")
-AC_SUBST(SNMPCONFPATH)
diff --git a/configure.d/config_project_perl_python b/configure.d/config_project_perl_python
deleted file mode 100644
index 23f8c7e..0000000
--- a/configure.d/config_project_perl_python
+++ /dev/null
@@ -1,379 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-#   Perl & Python support
-##
-#########################################
-
-##
-#   Check whether Net-SNMP configuration will support Perl
-##
-
-#   Inputs:
-#       install_perl:   whether or not to install the Perl modules
-#                           yes/no/try   (i.e. 'maybe' - the default)
-#       embed_perl:     whether or not to embed Perl support within the agent
-#                           yes/no/try   (i.e. 'maybe' - the default)
-#
-#       ac_cv_path_PERLPROG:    Path to perl binary
-
-
-#       Embedded Perl requires Perl modules, and the perl binary
-#
-if test "x$embed_perl" = "xtry" ; then
-    if test "x$install_perl" = "xno" ; then
-        install_perl="try"
-    fi
-    if test "x$ac_cv_path_PERLPROG" = "x" -o "x$ac_cv_path_PERLPROG" = "xno" ; then
-        install_perl="no"
-        embed_perl="no"
-    fi
-fi
-
-#       Perl modules require the perl binary
-#
-if test "x$install_perl" != "xno" ; then
-    myperl=$ac_cv_path_PERLPROG
-    if test $myperl = "no" ; then
-        if test "x$install_perl" = "xtry" ; then
-            install_perl="no"
-        else
-            AC_MSG_ERROR(--enable-embedded-perl requested but no perl executable found)
-        fi
-    fi
-fi
-
-#       Perl modules require shared libraries
-#
-if test "x$install_perl" != "xno" ; then
-    if test "x$enable_shared" != "xyes"; then
-        if test "x$install_perl" = "xtry" ; then
-            install_perl="no"
-        else
-            AC_MSG_ERROR(Perl support requires --enable-shared)
-        fi
-    fi
-fi
-
-#       Perl modules can only be installed from within the source tree
-#
-if test "x$install_perl" != "xno" ; then
-    AC_MSG_CHECKING([if we are in the source tree so we can install Perl modules])
-    if test "x$srcdir" = "x." -o -d perl/agent/default_store ; then
-        AC_MSG_RESULT([Yes])
-    else
-        if test "x$install_perl" = "xtry" ; then
-            install_perl="no"
-            AC_MSG_RESULT([No])
-        else
-            AC_MSG_ERROR([Perl modules can not be built outside the source directory])
-        fi
-    fi
-fi      
-
-
-#   The rest of the Perl-related checks aren't relevant
-#       if we're not using the Perl modules
-#
-if test "x$install_perl" != "xno" ; then
-
-
-##
-#   Check compiler compatability
-##
-
-    #       What compiler was used to build the perl binary?
-    #
-    if test "xenable_perl_cc_checks" != "xno" ; then
-        AC_MSG_CHECKING([for Perl cc])
-        changequote(, )
-        PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'`
-        changequote([, ])
-        if test "x$PERLCC" != "x" ; then
-            AC_MSG_RESULT([$PERLCC])
-        else
-            if test "x$install_perl" = "xtry" ; then
-                install_perl="no"
-            else
-                AC_MSG_ERROR([Could not determine the compiler that was used to build $myperl. Either set the environment variable PERLPROG to a different perl binary or use --without-perl-modules to build without Perl.])
-            fi
-        fi
-    fi
-
-    #       Was GCC used to build the perl binary?
-    #
-    if test "x$install_perl" != "xno" ; then
-        AC_MSG_CHECKING([whether $PERLCC is a GNU C compiler])
-        OLDCC=$CC
-        CC="$PERLCC"
-        AC_COMPILE_IFELSE([
-            AC_LANG_PROGRAM([], [[
-#ifndef __GNUC__
-  choke me
-#endif
-            ]])], [perlcc_is_gnu=yes], [perlcc_is_gnu=no])
-        AC_MSG_RESULT([$perlcc_is_gnu])
-        CC=$OLDCC
-
-        #       Check compatability:  Gnu Net-SNMP vs Non-Gnu perl
-        #
-        if test "x$GCC" = "xyes" -a "x$perlcc_is_gnu" = "xno" ; then
-            if test "x$install_perl" = "xtry" ; then
-      	        install_perl="no"
-      	    else
-      	        AC_MSG_ERROR([This build is using a GNU C compiler ($CC) while Perl has been compiled with a non-GNU (or non-working) compiler ($PERLCC). This likely won't work for building with Perl support. Either specify a different compiler (--with-cc=PATH), disable this check (--disable-perl-cc-checks) or build without Perl (--without-perl-modules).])
-      	    fi
-        fi
-    fi
-
-    #       Check compatability:  Non-Gnu Net-SNMP vs Gnu perl
-    #
-    if test "x$install_perl" != "xno" ; then
-        if test "x$GCC" != "xyes" -a "x$perlcc_is_gnu" = "xyes" ; then
-      	    if test "x$install_perl" = "xtry" ; then
-      	        install_perl="no"
-      	    else
-                AC_MSG_ERROR([This build is using a non-GNU C compiler ($CC) while Perl has been compiled with a GNU compiler ($PERLCC). This likely won't work for building with Perl support. Either specify a different compiler (--with-cc=PATH), disable this check (--disable-perl-cc-checks) or build without Perl (--without-perl-modules).])
-      	    fi
-        fi
-    fi
-
-    #       Are we clear to proceed?
-    #
-    if test "x$install_perl" = "xtry" ; then
-        install_perl="yes"
-    else
-        if test "x$install_perl" = "xno" ; then
-            install_perl="no"
-            embed_perl="no"
-        fi
-    fi
-
-
-##
-#   Determine compilation environment needed for embedded Perl
-##
-
-#       System-specific requirements
-#
-case $target_os in
-    solaris*)
-      if test "x$embed_perl" != "xno" ; then
-          #   Check for LARGEFILE support               (Solaris)
-          #
-          AC_MSG_CHECKING([for problematic Perl cc flags on Suns])
-          if $myperl -V:ccflags | $GREP LARGEFILE > /dev/null ; then
-            if test "x$embed_perl" = "xtry" ; then
-              embed_perl="no"
-            else
-              AC_MSG_ERROR([Perl was compiled with LARGEFILE support which will break Net-SNMP. Either set the environment variable PERLPROG to a different perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether.])
-            fi
-          else
-            AC_MSG_RESULT([none known])
-          fi
-      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
-
-#       Compiler flags
-#
-if test "x$embed_perl" != "xno" ; then
-    AC_MSG_CHECKING([for Perl CFLAGS])
-    perlcflags=`$myperl -MExtUtils::Embed -e ccopts`
-    if test "x$perlcflags" != "x" ; then
-      AC_MSG_RESULT([$perlcflags])
-      CFLAGS="$CFLAGS $perlcflags"
-    else
-      if test "x$embed_perl" = "xtry" ; then
-        embed_perl="no"
-      else
-        AC_MSG_ERROR([Could not determine the C compiler flags that were used to build $myperl. Either set the environment variable PERLPROG to a different Perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether.])
-      fi
-    fi
-fi
-
-#       Linker flags
-#
-if test "x$embed_perl" != "xno" ; then
-    AC_MSG_CHECKING([for Perl LDFLAGS])
-    netsnmp_perlldopts=`$myperl -MExtUtils::Embed -e ldopts`
-    if test "x$netsnmp_perlldopts" != "x" ; then
-      AC_MSG_RESULT([$netsnmp_perlldopts])
-    else
-      if test "x$embed_perl" = "xtry" ; then
-        embed_perl="no"
-      else
-        AC_MSG_ERROR([Could not determine the linker options that were used to build $myperl. Either set the environment variable PERLPROG to a different Perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether.])
-      fi
-    fi
-    if test "x$enable_as_needed" != "xno" ; then
-      #   Just-in-time linking will embed the Perl library within
-      #       the Net-SNMP library (rather than the agent application)
-      #
-      PERLLDOPTS_FOR_LIBS="$netsnmp_perlldopts"
-      #   Perl ccdlflags (RPATH to libperl, hopefully)
-      #
-      AC_MSG_CHECKING([for Perl CCDLFLAGS])
-      changequote(, )
-      netsnmp_perlccdlflags=`$myperl -V:ccdlflags | $myperl -n -e 'print $1 '"if (/^\s*ccdlflags='([^']+)';/);"`
-      changequote([, ])
-      AC_MSG_RESULT([$netsnmp_perlccdlflags])
-      PERLLDOPTS_FOR_APPS="$netsnmp_perlccdlflags"
-    else
-      #   Otherwise embed the Perl library within the application
-      #
-      PERLLDOPTS_FOR_LIBS="$netsnmp_perlldopts"
-      # link *applications* against libperl
-      PERLLDOPTS_FOR_APPS="$netsnmp_perlldopts"
-    fi
-fi
-
-#       'Perl_eval_pv' function (and equivalents)
-#
-if test "x$embed_perl" != "xno" ; then
-    #   Three possible versions of this routine:
-    #       eval_pv                                     (to 5.003_97d)
-    #       perl_eval_pv                                (5.004/5.005)
-    #       Perl_eval_pv                                (from 5.6ff)
-    #
-    OLDLIBS="$LIBS"
-    LIBS="$LIBS $netsnmp_perlldopts"
-    AC_CHECK_FUNCS(eval_pv)
-    AC_CHECK_FUNC(perl_eval_pv,
-      AC_DEFINE(HAVE_PERL_EVAL_PV_LC, 1,
-        [Define to 1 if you have `the perl_eval_pv' function.]))
-    AC_CHECK_FUNC(Perl_eval_pv,
-      AC_DEFINE(HAVE_PERL_EVAL_PV_UC, 1,
-        [Define to 1 if you have the `Perl_eval_pv' function.]))
-    LIBS="$OLDLIBS"
-    #
-    #   Note that autoconf flattens case when defining tokens,
-    #   so we need to explicitly distinguish between the latter two.
-
-    if test "x$ac_cv_func_perl_eval_pv" != "xyes" -a "x$ac_cv_func_Perl_eval_pv" != "xyes" -a "x$ac_cv_func_eval_pv" != "xyes" ; then
-      if test "x$embed_perl" = "xtry" ; then
-        embed_perl="no"
-      else
-        AC_MSG_ERROR([Could not find the eval_pv, perl_eval_pv or Perl_eval_pv functions needed for embedded Perl support. Either set the environment variable PERLPROG to a different perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether.])
-      fi
-    else
-      #   Activate Embedded Perl
-      #
-      AC_DEFINE(NETSNMP_EMBEDDED_PERL, 1,
-        [Define if you are embedding perl in the main agent.])
-      OTHERAGENTLIBOBJS="snmp_perl.o"
-      OTHERAGENTLIBLOBJS="snmp_perl.lo"
-      OTHERAGENTLIBLFTS="snmp_perl.ft"
-
-      EMBEDPERLINSTALL="embedperlinstall"
-      EMBEDPERLUNINSTALL="embedperluninstall"
-      embed_perl="yes"
-    fi
-else
-      EMBEDPERLINSTALL=""
-      EMBEDPERLUNINSTALL=""
-      embed_perl="no"
-    fi
-fi
-
-
-##
-#   Report and configure results
-##
-
-AC_SUBST(EMBEDPERLINSTALL)
-AC_SUBST(EMBEDPERLUNINSTALL)
-AC_SUBST(PERLLDOPTS_FOR_LIBS)
-AC_SUBST(PERLLDOPTS_FOR_APPS)
-
-#       Results of Embedded Perl checks
-#
-AC_MSG_CHECKING([for potential embedded Perl support])
-if test "x$embed_perl" != "xyes" ; then
-  AC_MSG_CACHE_ADD(Embedded Perl support:      disabled)
-  AC_MSG_RESULT([disabled])
-else
-  AC_MSG_CACHE_ADD(Embedded Perl support:      enabled)
-  AC_MSG_RESULT([enabled])
-fi
-
-#       Results of Perl Module checks
-#
-PERLTARGS=""
-PERLINSTALLTARGS=""
-PERLUNINSTALLTARGS=""
-PERLFEATURES=""
-AC_MSG_CHECKING([if we can install the Perl modules])
-if test "x$install_perl" = "xyes" ; then
-    PERLTARGS="perlmodules"
-    PERLINSTALLTARGS="perlinstall"
-    PERLUNINSTALLTARGS="perluninstall"
-    PERLFEATURES="perlfeatures"
-    if test "x$embed_perl" = "xyes" ; then
-      AC_MSG_CACHE_ADD(SNMP Perl modules:          building -- embeddable)
-      AC_MSG_RESULT([yes -- and embeddable])
-    else
-      AC_MSG_CACHE_ADD(SNMP Perl modules:          building -- not embeddable)
-      AC_MSG_RESULT([yes -- not embeddable])
-    fi
-else
-    AC_MSG_RESULT([no])
-    AC_MSG_CACHE_ADD(SNMP Perl modules:          disabled)
-fi
-AC_SUBST(PERLTARGS)
-AC_SUBST(PERLINSTALLTARGS)
-AC_SUBST(PERLUNINSTALLTARGS)
-AC_SUBST(PERLARGS)
-AC_SUBST(PERLFEATURES)
-
-
-#       Reset LIBS to pre-libwrap value   (???)
-#
-AGENTLIBS=$LIBS
-LIBS=$NONAGENTLIBS
-
-
-
-##
-#   Python checks
-##
-
-PYTHONTARGS=""
-PYTHONINSTALLTARGS=""
-PYTHONUNINSTALLTARGS=""
-PYTHONCLEANTARGS=""
-PYTHONFEATURES=""
-AC_MSG_CHECKING([if we should install the python bindings])
-if test "x$install_python" = "xyes" ; then
-    PYTHONTARGS="pythonmodules"
-    PYTHONINSTALLTARGS="pythoninstall"
-    PYTHONUNINSTALLTARGS="pythonuninstall"
-    PYTHONCLEANTARGS="pythonclean"
-    PYTHONFEATURES="pythonfeatures"
-    AC_MSG_CACHE_ADD(SNMP Python modules:        building for $PYTHONPROG)
-    AC_MSG_RESULT([yes])
-else
-    AC_MSG_CACHE_ADD(SNMP Python modules:        disabled)
-    AC_MSG_RESULT([no])
-fi
-AC_SUBST(PYTHONTARGS)
-AC_SUBST(PYTHONINSTALLTARGS)
-AC_SUBST(PYTHONUNINSTALLTARGS)
-AC_SUBST(PYTHONCLEANTARGS)
-AC_SUBST(PYTHONARGS)
-AC_SUBST(PYTHONFEATURES)
-
-
diff --git a/configure.d/config_project_types b/configure.d/config_project_types
deleted file mode 100644
index ec9c85a..0000000
--- a/configure.d/config_project_types
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-# Checks for types
-##
-#########################################
-
-##
-#   Standard checks:
-##
-
-# Checks for typedefs, structures, and compiler characteristics.
-AC_TYPE_OFF_T
-AC_TYPE_PID_T
-AC_HEADER_TIME
-
-
-##
-#   More complex checks:
-##
-
-#   Check for 'socklen_t'                           (HP-UX)
-#
-AC_CHECK_TYPES([socklen_t],,,[
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif])
-
-
-#   Check for 'in_addr_t'
-#       May be in <netinet/in.h>                        (AIX)
-#
-AC_CHECK_TYPES([in_addr_t],,,[
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif])
-
-
-#   Check for 'ssize_t'
-#       Not necessarily in <sys/types.h>                (older MinGW)
-#
-AC_CHECK_TYPES([ssize_t],,,[
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif])
diff --git a/configure.d/config_project_with_enable b/configure.d/config_project_with_enable
deleted file mode 100644
index 61ba026..0000000
--- a/configure.d/config_project_with_enable
+++ /dev/null
@@ -1,1150 +0,0 @@
-# -*- autoconf -*-
-#########################################
-##
-#   Command-line processing - --with/--enable
-##
-#########################################
-
-##
-#   System: Compiler settings
-##
-
-AC_ARG_WITH(cc, [
-Compiler Options:
-  --with-cc=CC                    use CC to compile (default=gcc).],
-    [CC=$with_cc;export CC])
-
-AC_ARG_WITH(linkcc, [
-  --with-linkcc=CC                use CC to link (default=gcc).],
-    [LINKCC=$with_linkcc;export LINKCC])
-
-AC_ARG_WITH(ar,
-[  --with-ar=AR                    use AR as the archiver.],
-    [AR=$with_ar; export AR])
-
-AC_ARG_WITH(endianness,
-[  --with-endianness=big|little    define endianness of target platform when
-                                  cross-compiling.],
-    [if test $with_endianness != "big" -a $with_endianness != "little" ; then
-       AC_MSG_ERROR([Endianness must be big or little, not "$with_endianness".]);
-     fi
-])
-
-AC_ARG_WITH(cflags,
-[  --with-cflags=CFLAGS            use CFLAGS as compile time arguments.],
-    [CFLAGS=$with_cflags; export CFLAGS])
-
-AC_ARG_WITH(ldflags,
-[  --with-ldflags=LDFLAGS          use LDFLAGS as link time arguments to ld.],
-    [LDFLAGS=$with_ldflags; export LDFLAGS])
-
-AC_ARG_ENABLE(as-needed,
-[  --disable-as-needed             Link libperl against applications rather
-                                  than Net-SNMP libraries. Use only if the other
-                                  way doesn't work.])
-
-AC_ARG_WITH(libs,
-[  --with-libs=LIBS                use LIBS as link time arguments to ld.],
-    [LIBS=$with_libs; export LIBS])
-
-AC_ARG_ENABLE(silent-libtool,
-[  --enable-silent-libtool         Pass --silent to libtool.],
-	LIBTOOLFLAGS=--silent)
-AC_SUBST(LIBTOOLFLAGS)
-
-
-##
-#   System: Library settings
-##
-
-NETSNMP_ARG_WITH(dmalloc,
-        AS_HELP_STRING([--with-dmalloc=PATH],
-                [Use dmalloc library (www.dmalloc.com)]))
-
-NETSNMP_ARG_WITH(efence,
-[  --with-efence                   Look for and use libefence (malloc).],
-      use_efence="$withval")
-
-tryrsaref=no
-NETSNMP_ARG_WITH(rsaref,
-[  --with-rsaref=PATH              Look for librsaref in PATH/lib.],
-    if test "x$withval" = "xyes"; then
-      tryrsaref=yes
-    elif test "x$withval" = "xno"; then
-      tryrsaref=no
-    elif test -d "$withval"; then
-      AC_ADD_SEARCH_PATH($withval)
-      tryrsaref=yes
-    fi,
-)
-
-tryopenssl=defaultyes
-askedopenssl=no
-NETSNMP_ARG_WITH(openssl,
-[  --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
-      if test -d "$withval/lib/MinGW"; then
-        LDFLAGS="-L$withval/lib/MinGW $LDFLAGS"
-        CPPFLAGS="-I$withval/include $CPPFLAGS"
-      else
-        AC_ADD_SEARCH_PATH($withval)
-      fi
-      tryopenssl=yes
-      askedopenssl=yes
-    fi,
-)
-if test "x$tryopenssl" = "xdefaultyes"; then
-      AC_ADD_SEARCH_PATH(/usr/local/ssl)
-      tryopenssl=yes
-fi
-AC_ARG_WITH([ssl],,NETSNMP_INVALID_WITH([openssl]))
-AC_ARG_ENABLE([ssl],,NETSNMP_INVALID_WITH([openssl]))
-
-askedpkcs=no
-NETSNMP_ARG_WITH(pkcs,
-[  --with-pkcs=PATH                Look for pkcs11 in PATH/lib.],
-    if test "x$withval" = "xyes"; then
-      askedpkcs=yes
-    elif test "x$withval" = "xno"; then
-      askedpkcs=no
-    elif test -d "$withval"; then
-      AC_ADD_SEARCH_PATH($withval)
-      askedpkcs=yes
-    fi,
-)
-
-trykrb5=defaultyes
-askedkrb5=no
-NETSNMP_ARG_WITH(krb5,
-[  --with-krb5=PATH                Look for krb5 in PATH/lib.],
-    if test "x$withval" = "xyes"; then
-      trykrb5=yes
-      askedkrb5=yes
-      krb5path=undef
-    elif test "x$withval" = "xno"; then
-      trykrb5=no
-      krb5path=undef
-    elif test -d "$withval"; then
-      trykrb5=yes
-      askedkrb5=yes
-      krb5path=$withval
-    fi,
-)
-if test "x$trykrb5" = "xdefaultyes"; then
-      trykrb5=yes
-      krb5path=/usr/kerberos
-fi
-
-AC_ARG_WITH(dnssec-local-validation,
-        [  --with-dnssec-local-validation Enable local DNSSEC validation using libval (no)], want_dnssec=$withval, want_dnssec=no)
-AC_ARG_ENABLE([dnssec-local-validation],,
-              NETSNMP_INVALID_WITH([dnssec-local-validation]))
-AC_ARG_WITH([dnssec],,NETSNMP_INVALID_WITH([dnssec-local-validation]))
-AC_ARG_ENABLE([dnssec],,NETSNMP_INVALID_WITH([dnssec-local-validation]))
-
-NETSNMP_ARG_WITH(rpm,
-[  --without-rpm                   Don't include support for the RPM package
-                                  management system when building the host MIB
-                                  module.])
-
-
-##
-#   Project: Build configuration settings
-##
-
-#       Install prefix
-#
-AC_ARG_WITH(install-prefix,
-[  --with-install-prefix=PATH      Just for installing, prefix all 
-                                  directories with PATH.  This is known not
-                                  to work on some systems with shared
-                                  libraries (eg, HPUX)],
-      INSTALL_PREFIX="$withval")
-
-if test "x$INSTALL_PREFIX" = "xyes" ; then
-  AC_MSG_ERROR([--with-install-prefix requires an argument])
-fi
-if test "x$INSTALL_PREFIX" = "xno" ; then
-  INSTALL_PREFIX=""
-fi
-AC_SUBST(INSTALL_PREFIX)
-
-
-#
-#   Subsystems to build:
-#       Library
-#
-FEATUREHEADERS="library/features.h"
-FTMAINSUBS=""
-
-#
-#       Agent
-#
-NETSNMP_ARG_ENABLE(agent,
-[  --disable-agent                 Do not build the agent (snmpd).])
-if test "x$enable_agent" != "xno"; then
-   SNMPD='snmpd$(EXEEXT)'
-   MAINSUBS="$MAINSUBS agent"
-   FEATUREHEADERS="$FEATUREHEADERS agent/features-mibgroups.h agent/features.h"
-   FTMAINSUBS="agent $FTMAINSUBS"
-   TRAPLIBS='$(TRAPDWITHAGENT)'
-   USETRAPLIBS='$(USEAGENTLIBS)'
-else
-   SNMPD=""
-   # we still need/want the agentlibs (for subagents, e.g. snmptrapd)
-   MAINSUBS="$MAINSUBS agent"
-   # building snmptrapd w/o agentlibs doesn't work atm
-   #TRAPLIBS='$(TRAPDWITHOUTAGENT)'
-   #USETRAPLIBS='$(USELIBS)'
-   TRAPLIBS='$(TRAPDWITHAGENT)'
-   USETRAPLIBS='$(USEAGENTLIBS)'
-   AC_DEFINE([NETSNMP_DISABLE_AGENT], 1, [Define if no agent is built])
-fi
-
-AC_SUBST(SNMPD)
-AC_SUBST(TRAPLIBS)
-AC_SUBST(USETRAPLIBS)
-
-#       Applications
-#
-NETSNMP_ARG_ENABLE(applications,
-[  --disable-applications          Do not build the apps (snmpget, ...).])
-if test "x$enable_applications" != "xno"; then
-   MAINSUBS="$MAINSUBS apps"
-   FEATUREHEADERS="$FEATUREHEADERS features-snmpnetstat.h features-apps.h"
-   FTMAINSUBS="apps $FTMAINSUBS"
-else
-   AC_DEFINE([NETSNMP_DISABLE_APPS], 1, [Define if no apps are built])
-fi
-
-#       Manual pages
-#
-NETSNMP_ARG_ENABLE(manuals,
-[  --disable-manuals               Do not install the manuals.])
-if test "x$enable_manuals" != "xno"; then
-   MAINSUBS="$MAINSUBS man"
-fi
-
-#       Supporting scripts
-#
-NETSNMP_ARG_ENABLE(scripts,
-[  --disable-scripts               Do not install the scripts (mib2c, ...).])
-if test "x$enable_scripts" != "xno"; then
-   MAINSUBS="$MAINSUBS local"
-fi
-
-#       MIB files
-#
-AC_ARG_ENABLE(mibs,
-[  --disable-mibs                  Do not install the mib files.])
-if test "x$enable_mibs" != "xno"; then
-   MAINSUBS="$MAINSUBS mibs"
-fi
-# with-mibs is valid too, but means something else
-
-AC_SUBST(MAINSUBS)
-AC_SUBST(FTMAINSUBS)
-AC_MSG_CHECKING([what to build and install])
-AC_MSG_RESULT([$MAINSUBS])
-
-
-#       MIB module validation (during "configure")
-#
-NETSNMP_ARG_ENABLE(mib-config-checking,
-[  --enable-mib-config-checking    Turns on extra checks during configuration
-                                  of mib modules. Any conflicts will cause
-                                  configure to abort (default is to issue a
-                                  warning and continue.)],
-  [if test "$enableval" = yes -o "$enableval" = no ; then
-     with_mib_cfg_checks="$enableval"
-   else
-     AC_MSG_ERROR([Please use --enable/--disable-mib-config-checking])
-   fi],
-  [with_mib_cfg_checks="no"])
-
-NETSNMP_ARG_ENABLE(mib-config-debug,
-[  --enable-mib-config-debug       Turns on verbose output during mib module
-                                  configure processing.],
-  [if test "$enableval" = yes -o "$enableval" = no ; then
-     with_mib_cfg_debug="$enableval"
-   else
-     AC_MSG_ERROR([Please use --enable/--disable-mib-config-debug])
-   fi],
-  [with_mib_cfg_debug="no"])
-
-
-#       Version-specific features
-#
-AC_ARG_ENABLE([new-features],
-        [AS_HELP_STRING([--enable-new-features],
-                [Compile in new MIB modules and other experimental features
-                 which are due to be included in future releases.])])
-
-AC_ARG_ENABLE([old-features],
-        [AS_HELP_STRING([--enable-old-features],
-                [Compile in old MIB modules and other deprecated features
-                 which were replaced in the default build of this release.])])
-
-AC_ARG_WITH([features-of],
-        [AS_HELP_STRING([--with-features-of=version],
-                [Compile in MIB modules and other features as if this was
-                 release "version" (default is ]AC_PACKAGE_VERSION[).])],,
-        [with_features_of=$PACKAGE_VERSION])
-   
-
-#       Manual prompting during "configure"
-#
-NETSNMP_ARG_WITH(defaults,
-[
-Miscellaneous:
-  --with-defaults         Use defaults for prompted values.],
-  [if test "$withval" = yes -o "$withval" = no ; then
-     defaults="$withval"
-   else
-     AC_MSG_ERROR([Please use --with/--without-defaults])
-   fi],
-  [defaults="no"])
-
-
-#       UCD compatability
-#
-NETSNMP_ARG_ENABLE(ucd-snmp-compatibility,
-[  --enable-ucd-snmp-compatibility Install ucd-snmp look-alike headers and libs.
-])
-
-if test "x$enable_ucd_snmp_compatibility" = "xyes" ; then	
-  installucdheaders=installucdheaders
-  installucdlibs=installucdlibs
-  AC_MSG_CACHE_ADD(UCD-SNMP compatability:     enabled)
-fi
-AC_SUBST(installucdheaders)
-AC_SUBST(installucdlibs)
-
-
-##
-#   Project: Library: MIB configuration settings
-##
-
-NETSNMP_ARG_ENABLE(mib-loading,
-[  --disable-mib-loading           Do not include code that parses and 
-                                  manipulates the mib files.])
-if test "x$enable_mib_loading" = "xno"; then
-  AC_DEFINE([NETSNMP_DISABLE_MIB_LOADING], 1, 
-            [Define if mib loading and parsing code should not be included])
-fi
-
-NETSNMP_ARG_WITH(mibdirs,
-[  --with-mibdirs="dir1:dir2:"   Default directories to look for mibs.
-                                  (Default: \$HOME/.snmp/mibs:DATADIR/snmp/mibs)],
-    [NETSNMP_DEFAULT_MIBDIRS="$with_mibdirs"
-    AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_MIBDIRS,"$with_mibdirs",
-        [default location to look for mibs to load using the above tokens
-         and/or those in the MIBS envrionment variable])])
-
-AC_ARG_WITH(mibs,
-[  --with-mibs="item1:item2:"    Default mib IDs to read.
-                                  (The default list is
-                                   "SNMPv2-MIB:IF-MIB:IP-MIB:TCP-MIB:UDP-MIB"
-                                  with the addition of any mibs used
-                                  by the mib modules the agent is
-                                  configured with)],
-    NETSNMP_DEFAULT_MIBS="$with_mibs")
-# enable-mibs is valid too, but means something else
-
-NETSNMP_ARG_WITH(mibfiles,
-[  --with-mibfiles="file1:file2" Default mib files to load.
-                                  (Default:  none.  uses IDs above instead.)],
-    AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_MIBFILES,"$with_mibfiles",
-        [default mib files to load, specified by path.]))
-
-
-##
-#   Project: Library: Security configuration
-##
-
-NETSNMP_ARG_ENABLE(des,
-[  --disable-des                   Do not support DES encryption.])
-if test "x$enable_des" = "xno"; then
-  AC_DEFINE([NETSNMP_DISABLE_DES], 1, 
-            [Define if DES encryption should not be supported])
-fi
-
-NETSNMP_ARG_ENABLE(privacy,
-[  --disable-privacy               Don't compile in support for privacy (encryption).])
-if test "x$enable_privacy" != "xno"; then
-  AC_DEFINE(NETSNMP_ENABLE_SCAPI_AUTHPRIV, 1,
-    [define if you want to compile support for both authentication and
-     privacy support.])
-fi
-
-NETSNMP_ARG_ENABLE(md5,
-[  --disable-md5                   Do not support MD5 authentication.])
-if test "x$enable_md5" = "xno"; then
-  AC_DEFINE([NETSNMP_DISABLE_MD5], 1, 
-            [Define if MD5 authentication should not be supported])
-fi
-
-NETSNMP_ARG_ENABLE(internal-md5,
-[  --enable-internal-md5           Use the internal MD5 support.])
-if test "x$enable_internal_md5" = "xyes"; then
-  if test "x$enable_md5" = "xno"; then
-    AC_MSG_ERROR(You can not specify both --enable-internal-md5 and --disable-md5)
-  else
-    AC_DEFINE(NETSNMP_USE_INTERNAL_MD5, 1,
-      [define if you are using the MD5 code ...])
-  fi
-fi
-
-
-##
-#   Project: Library: Misc configuration
-##
-
-NETSNMP_ARG_WITH(opaque-special-types,
-[  --without-opaque-special-types  Don't use special opaque encodings.
-                                  SNMP normally cannot handle
-                                  floating numbers, nor large 64 bit
-                                  integers well.  By default, the
-                                  net-snmp package compiles in
-                                  support for these extra datatypes
-                                  (in a legal way)])
-# Only define if specifically chosen as --without (i.e., default to true).
-if test "x$with_opaque_special_types" != "xno"; then
-  AC_DEFINE(NETSNMP_WITH_OPAQUE_SPECIAL_TYPES, 1,
-    [Should we compile to use special opaque types: float, double, counter64,
-     i64, ui64, union?])
-fi
-
-NETSNMP_ARG_ENABLE(ipv6,
-[  --enable-ipv6                   Generate IPv6 ready version.],
-    [if test "x$enable_ipv6" = "xyes"; then
-      AC_DEFINE(NETSNMP_ENABLE_IPV6, 1,
-        [define if you want to enable IPv6 support])
-    fi])
-
-NETSNMP_ARG_WITH(logfile,
-[  --with-logfile="location"       Default log file location for snmpd.],
-    ac_cv_user_prompt_NETSNMP_LOGFILE="$with_logfile")
-if test "$ac_cv_user_prompt_NETSNMP_LOGFILE" = "no"; then
-    ac_cv_user_prompt_NETSNMP_LOGFILE="none"
-fi
-
-NETSNMP_ARG_WITH(persistent-directory,
-[  --with-persistent-directory="directory"
-                                  Default directory for persistent data storage.],ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY="$with_persistent_directory")
-
-NETSNMP_ARG_WITH(persistent-mask,
-[  --with-persistent-mask="mask"  Default mask for persistent data storage.
-                                  (Default: 077)],
-  [if test [`expr "X$withval" : 'X[0-7]*$'`] -eq 4 ; then
-     AC_MSG_RESULT([using persistent mask $withval])
-     withval="0$withval"
-   else
-     AC_MSG_ERROR([Please provide a three digit octal persistent mask value])
-   fi],
-  [withval=077
-   AC_MSG_RESULT([using default persistent mask $withval])])
-AC_DEFINE_UNQUOTED(NETSNMP_PERSISTENT_MASK,$withval,
-   [umask permissions to set up persistent files with])
-
-NETSNMP_ARG_WITH(copy_persistent_files,
-[  --with-copy-persistent-files="no" Don't copy persistent files
-                                     (or use "yes" to copy them).
-                                     (Default: yes)],
-    ac_cv_user_prompt_COPY_PERSISTENT_FILES="$with_copy_persistent_files")
-
-default_temp_file_pattern="/tmp/snmpdXXXXXX"
-NETSNMP_ARG_WITH(temp-file-pattern,
-[  --with-temp-file-pattern=PATTERN  Pattern of temporary files (Default: /tmp/snmpdXXXXXX)],
-  [if test `expr "X$withval" : ".*XXXXXX$"` -ne 0 ; then
-     AC_MSG_RESULT(using temporary file pattern $withval)
-   else
-     AC_MSG_ERROR([temporary file pattens must end with 6 X's])
-   fi],
-  [withval="$default_temp_file_pattern"
-   AC_MSG_RESULT(using default temporary file pattern $withval)])
-AC_DEFINE_UNQUOTED(NETSNMP_TEMP_FILE_PATTERN,"$withval",
-  [Pattern of temporary files])
-
-
-##
-#   Project: Library: Version configuration
-##
-
-SNMP_VERSIONS=""
-NETSNMP_ARG_ENABLE(snmpv1,
-[  --disable-snmpv1                Do not include code that implements SNMPv1.])
-if test "x$enable_snmpv1" = "xno"; then
-  AC_DEFINE([NETSNMP_DISABLE_SNMPV1], 1, 
-            [Define if SNMPv1 code should not be included])
-else
-  SNMP_VERSIONS="$SNMP_VERSIONS 1"
-fi
-
-NETSNMP_ARG_ENABLE(snmpv2c,
-[  --disable-snmpv2c               Do not include code that implements SNMPv2c.])
-if test "x$enable_snmpv2c" = "xno"; then
-  AC_DEFINE([NETSNMP_DISABLE_SNMPV2C], 1, 
-            [Define if SNMPv2c code should not be included])
-else
-  SNMP_VERSIONS="$SNMP_VERSIONS 2c"
-fi
-
-SNMP_VERSIONS="$SNMP_VERSIONS 3"
-AC_MSG_CACHE_ADD(SNMP Versions Supported:   $SNMP_VERSIONS)
-
-NETSNMP_ARG_WITH(default-snmp-version,
-[  --with-default-snmp-version="3" Default version of SNMP to use.
-                                    (Default: 3)
-                                    Legal values: 1, 2 (for SNMPv2c) or 3.],
-    ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION="$with_default_snmp_version")
-
-# we test this now and later as well.  we test it now so configure can die
-# early on with an error rather than waiting till the end of the script.
-case "${ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION-3}" in
-  [[123]]) ;;
-  2c) ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION=2 ;;
-  *)
-    AC_MSG_ERROR([Illegal version number.  Only 1, 2 (for SNMPv2c) and 3 are supported.])
-    ;;
-esac
-
-
-##
-#   Project: Library: Transport modules
-##
-
-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).
-
-  Available SNMP transport modules are:
-
-    UDP         support for SNMP over UDP/IP.
-                This transport is always compiled in.
-    UDPIPv6     support for SNMP over UDP/IPv6.
-                This transport is available for Linux, Solaris and
-                FreeBSD at least.
-                This transport is compiled in by default if IPv6 support is enabled.
-    TCPIPv6     support for SNMP over UDP/IPv6.
-                This transport is available for Linux, Solaris and
-                FreeBSD at least.
-                This transport is compiled in by default if IPv6 support is enabled.
-    TCP         support for SNMP over TCP/IP.
-                This transport is compiled in by default, but may be omitted.
-    Unix        support for SNMP over Unix domain protocols.
-                This transport is compiled in by default except on Win32
-                platforms, and may be omitted.
-    Callback    support for SNMP over an internal locally connected pair
-                of snmp_sessions.
-    Alias       The alias transport simply lets you define more complex
-                transport strings and alias them to simple names in
-                the snmp.conf file.
-    AAL5PVC     support for SNMP over AAL5 PVCs.
-                This transport is presently only available for Linux,
-                is never compiled in by default and may be omitted.
-    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
-])
-
-#
-# Catch common mistakes in transport options
-#
-AC_ARG_WITH(transport,, NETSNMP_INVALID_WITH([transports]))
-AC_ARG_WITH(out-transport,, NETSNMP_INVALID_WITH([out-transports]))
-
-
-##
-#   Project: Library: Security modules
-##
-
-NETSNMP_ARG_WITH(security-modules,
-[  --with-security-modules="s1 s2 ..."   Compile in the given SNMP security
-                                    module services (space separated list).
-
-  Available SNMP security services:
-
-        usm                support for user based SNMP security
-        ksm                support for kerberos based SNMP security
-        tsm                support for the Transport-based security
-                           (for use with the SSH, DTLSUDP and TLSTCP transports)
-])
-
-NETSNMP_ARG_WITH(out-security-modules,
-[  --with-out-security-modules="s1 s2 ..."   Removes the given SNMP security
-                                    module services from the default list.
-])
-
-
-##
-#   Project: Library: Developer-related settings
-##
-
-NETSNMP_ARG_ENABLE(debugging,
-[  --enable-debugging              Outputs extra debugging information at all
-                                  times.  Normally, you should not enable this,
-                                  but instead use the -D flag of the commands,
-                                  which toggles debuging output at runtime.
-  --disable-debugging             Disallows debugging code to be built in.
-                                  This might provide some speed benefits.],
-    AC_DEFINE(NETSNMP_ALWAYS_DEBUG))
-if test "x$enable_debugging" = "xno"; then
-    AC_DEFINE(NETSNMP_NO_DEBUGGING)
-fi
-
-NETSNMP_ARG_ENABLE(developer,
-[  --enable-developer              Turns on super-duper-extra-compile-warnings
-                                  when using gcc.],
-  [if test "$enableval" = yes ; then
-     developer="yes"
-   elif test "$enableval" != no ; then
-     AC_MSG_ERROR([Please use --enable/--disable-developer])
-   else
-     developer="no"
-   fi])
-
-NETSNMP_ARG_ENABLE(testing-code,
-[  --enable-testing-code           Enables some code sections that should 
-                                  only be used for testing of certain
-                                  SNMP functionalities.  This should *not* 
-                                  be turned on for production use.  Ever.],
-  [if test "$enableval" = yes ; then
-     AC_DEFINE(NETSNMP_ENABLE_TESTING_CODE, 1, [testing code sections.])
-   elif test "$enableval" != no ; then
-     AC_MSG_ERROR([Please use --enable/--disable-testing-code])
-   fi])
-
-NETSNMP_ARG_ENABLE(reentrant,
-[  --enable-reentrant              Enables locking functions that protect
-                                  library resources in some multi-threading
-                                  environments.  This does not guarantee
-                                  thread-safe operation.
-                                  Currently an experimental setting.],
-  [if test "$enableval" = yes -o "$enableval" = no ; then
-     with_res_locks="$enableval"
-   else
-     AC_MSG_ERROR([Please use --enable/--disable-reentrant])
-   fi],
-  [with_res_locks="no"])
-
-NETSNMP_ARG_ENABLE(deprecated,
-[  --disable-deprecated            Don't compile in deprecated functions.])
-if test "$enable_deprecated" = no ; then
-   AC_DEFINE([NETSNMP_NO_DEPRECATED_FUNCTIONS], 1,
-             [Define to suppress inclusion of deprecated functions])
-fi
-
-
-
-##
-#   Project: Agent configuration settings
-##
-
-NETSNMP_ARG_WITH(root-access,
-[
-Configuring the agent:
-  --without-root-access           The snmpd agent won't require root access to
-                                  run it.  The information it returns in the
-                                  mib-II tree may not be correct, however.])
-# Only define if specifically chosen as --without (i.e., default to true).
-if test "x$with_root_access" = "xno"; then
-  AC_DEFINE(NETSNMP_NO_ROOT_ACCESS, 1,
-    [If you don't have root access don't exit upon kmem errors])
-fi
-
-NETSNMP_ARG_WITH(kmem-usage,
-[  --without-kmem-usage            Do not include any code related to the use
-                                  of kmem.])
-# Only define if specifically chosen as --without (i.e., default to true).
-if test "x$with_kmem_usage" = "xno"; then
-  AC_DEFINE(NETSNMP_NO_KMEM_USAGE, 1, [If we don't want to use kmem.])
-fi
-
-NETSNMP_ARG_WITH(dummy-values,
-[  --with-dummy-values             Provide 'placeholder' dummy values where
-                                  the necessary information is not available.
-                                  This is technically not compliant with the
-                                  SNMP specifications, but was how the agent
-                                  operated for versions < 4.0.])
-# Define unless specifically suppressed (i.e., option defaults to false).
-if test "x$with_dummy_values" != "xyes"; then
-  AC_DEFINE(NETSNMP_NO_DUMMY_VALUES, 1,
-    [If you don't want the agent to report on variables it doesn't have
-     data for])
-fi
-
-NETSNMP_ARG_ENABLE(set-support,
-[  --disable-set-support           Do not allow SNMP set requests.])
-if test "x$enable_set_support" = "xno"; then
-  AC_DEFINE([NETSNMP_DISABLE_SET_SUPPORT], 1, 
-            [Define if SNMP SET support should be disabled])
-fi
-
-
-NETSNMP_ARG_WITH(sys_contact,
-[  --with-sys-contact="who at where"  Default system contact.
-                                    (Default: LOGIN at DOMAINNAME)],
-    ac_cv_user_prompt_NETSNMP_SYS_CONTACT="$with_sys_contact")
-
-NETSNMP_ARG_WITH(sys_location,
-[  --with-sys-location="location"  Default system location.
-                                    (Default: Unknown)],
-    ac_cv_user_prompt_NETSNMP_SYS_LOC="$with_sys_location")
-
-
-
-##
-#   Project: Agent: Extensibility configuration
-##
-
-NETSNMP_ARG_ENABLE(local-smux,
-[  --enable-local-smux             Restrict SMUX connections to localhost (by default).],
-    [if test "x$enable_local_smux" = "xyes"; then
-      AC_DEFINE(NETSNMP_ENABLE_LOCAL_SMUX, 1,
-          [define if you want to restrict SMUX connections to localhost
-           by default])
-    fi])
-
-NETSNMP_ARG_ENABLE(agentx-dom-sock-only,
-[  --enable-agentx-dom-sock-only   Disable UDP/TCP transports for agentx.],
-AC_DEFINE(NETSNMP_AGENTX_DOM_SOCK_ONLY, 1,
-    [define if agentx transport is to use domain sockets only]))
-
-NETSNMP_ARG_ENABLE(snmptrapd-subagent,
-[  --disable-snmptrapd-subagent    Disable agentx subagent code in snmptrapd.])
-if test "x$enable_snmptrapd_subagent" = "xno"; then
-  AC_DEFINE(NETSNMP_SNMPTRAPD_DISABLE_AGENTX, 1,
-    [define if you do not want snmptrapd to register as an AgentX subagent])
-fi
-
-default_agentx_socket="/var/agentx/master"
-NETSNMP_ARG_WITH(agentx-socket,
-[  --with-agentx-socket=FILE         AgentX socket (Default: /var/agentx/master as specified in RFC2741)],[
-  if test "$withval" = yes; then
-    AC_MSG_ERROR([ Please provide a full path ]);
-  fi
-  AC_MSG_RESULT(using AgentX socket $withval)
-],[
-  withval=$default_agentx_socket
-  AC_MSG_RESULT(using default AgentX socket $default_agentx_socket)
-])
-AC_DEFINE_UNQUOTED(NETSNMP_AGENTX_SOCKET,"$withval",
-        [Unix domain socket for AgentX master-subagent communication])
-
-#
-# feature addition/removal and minimialist support
-#
-FEATURE_ADD_FLAGS=""
-NETSNMP_ARG_WITH(features,
-[  --with-features="feat1 feat2"   Request extra features to be turned on.
-                                   (only useful with --enable-minimalist)],[
-  if test "$withval" = yes; then
-    AC_MSG_ERROR([ Please provide a list of features ]);
-  fi
-  FEATURE_ADD_FLAGS="--add $withval"
-  AC_MSG_RESULT(adding in features: $withval)
-])
-AC_SUBST(FEATURE_ADD_FLAGS)
-
-
-FEATURE_REMOVE_FLAGS=""
-NETSNMP_ARG_WITH(out-features,
-[  --with-out-features="feat1..."  Remove specific features.
-                                   (implies --enable-minimalist)],[
-  if test "$withval" = yes; then
-    AC_MSG_ERROR([ Please provide a list of features ]);
-  fi
-  FEATURE_REMOVE_FLAGS="--remove $withval"
-  FEATURETARGS="features"
-  AC_DEFINE(NETSNMP_MINIMAL_CODE, 1,
-    [Define if you want to remove all non-essential code features.])
-  AC_MSG_RESULT(removing features: $withval)
-])
-AC_SUBST(FEATURE_REMOVE_FLAGS)
-
-
-# Catch common mistakes
-AC_ARG_WITH(feature,, NETSNMP_INVALID_WITH([features]))
-AC_ARG_WITH(out-feature,, NETSNMP_INVALID_WITH([out-features]))
-
-FEATURETARGS=""
-NETSNMP_ARG_ENABLE(minimalist,
-[  --enable-minimalist             Remove all non-essential code features.])
-if test "x$enable_minimalist" = "xyes"; then
-   # we'll assume the mini agent is desired here as well
-   mini_agent="yes"
-   FEATURETARGS="features"
-
-   # needed to bootstrap later checks
-   echo "" > include/net-snmp/feature-details.h
-   AC_DEFINE(NETSNMP_MINIMAL_CODE, 1,
-     [Define if you want to remove all non-essential code features.])
-else
-   FEATUREHEADERS=""
-fi
-AC_ARG_WITH([minimalist],,NETSNMP_INVALID_ENABLE([minimalist]))
-AC_SUBST(FEATURETARGS)
-AC_SUBST(FEATUREHEADERS)
-
-NETSNMP_ARG_ENABLE(notify-only,
-[  --enable-notify-only            Build tools that can only send notifications.])
-if test "x$enable_notify_only" = "xyes"; then
-   AC_DEFINE(NETSNMP_NOTIFY_ONLY, 1,
-     [Define if you want to only support sending notifications])
-fi
-AC_ARG_WITH([notify-only],,NETSNMP_INVALID_ENABLE([notify-only]))
-AC_ARG_ENABLE([notifyonly],,NETSNMP_INVALID_ENABLE([notify-only]))
-
-NETSNMP_ARG_ENABLE(no-listen,
-[  --enable-no-listen              Build tools that can't listen to ports.])
-if test "x$enable_no_listen" = "xyes" -o "x$enable_notify_only" = "xyes"; then
-   enable_no_listen="yes"
-   AC_DEFINE(NETSNMP_NO_LISTEN_SUPPORT, 1,
-     [Define if you want to remove all listening support from the code])
-fi
-AC_ARG_WITH([no-listen],,NETSNMP_INVALID_ENABLE([no-listen]))
-AC_ARG_ENABLE([nolisten],,NETSNMP_INVALID_ENABLE([no-listen]))
-
-NETSNMP_ARG_ENABLE(read-only,
-[  --enable-read-only              Remove all SET support from the code.])
-if test "x$enable_read_only" = "xyes" -o "x$enable_notify_only" = "xyes" ; then
-   enable_read_only="yes"
-   AC_DEFINE(NETSNMP_NO_WRITE_SUPPORT, 1,
-     [Define if you want to remove all SET/write access from the code])
-fi
-AC_ARG_WITH([read-only],,NETSNMP_INVALID_ENABLE([read-only]))
-AC_ARG_ENABLE([readonly],,NETSNMP_INVALID_ENABLE([read-only]))
-
-
-##
-#   Project: Agent: MIB module configuration
-##
-
-NETSNMP_ARG_ENABLE(mini_agent,
-[  --enable-mini-agent             Build a minimal agent.])
-if test "x$enable_mini_agent" = "xyes"; then
-    mini_agent="yes"
-else
-    mini_agent="no"
-fi
-AC_ARG_WITH([miniagent],,NETSNMP_INVALID_ENABLE([mini-agent]))
-AC_ARG_ENABLE([miniagent],,NETSNMP_INVALID_ENABLE([mini-agent]))
-
-
-
-
-NETSNMP_ARG_ENABLE(mfd-rewrites,
-[  --enable-mfd-rewrites           Use new MFD rewrites of mib modules,
-                                  where available. (default is to use
-                                  original mib module code).])
-if test "x$enable_mfd_rewrites" = "xyes"; then
-   AC_DEFINE(NETSNMP_ENABLE_MFD_REWRITES, 1,
-     [Define if you want to build MFD module rewrites])
-fi
-
-
-NETSNMP_ARG_WITH(mib_modules,
-[  --with-mib-modules="item1 ..."  Compile with additional mib modules
-                                    (Space separated list).])
-
-NETSNMP_ARG_WITH(out_mib_modules,
-[  --with-out-mib-modules="list"   Compile without these mib modules.
-
-  Default mib modules compiled into the agent (which can be removed):
-  
-    mibII                  support for the mib-II tree.
-    snmpv3mibs             support for the snmpv3 mib modules.
-    ucd_snmp               UCD-SNMP-MIB specific extensions.
-    agent_mibs             NET-SNMP-AGENT-MIB extensions
-    agentx                 AgentX support (see below)
-    notification           mibs supporting specification of trap destinations.
-    target                 Support for the SNMP WGs TARGET-MIB.
-    utilities              general agent configuration utilities.
-    disman/event           support for the DISMAN-EVENT-MIB
-                             (supports self monitoring and notification 
-                              delivery when error conditions are found)
-    disman/schedule        support for the DISMAN-SCHEDULE-MIB
-                             (trigger SET requests at specified times)
-    host                   host resources mib support.
-                             (only on major supported platforms)
-
-  Optional mib modules that can be built into the agent include:
-    smux                   smux support to allow subagents to attach to snmpd.
-    mibII/mta_sendmail     Sendmail statistics monitoring (MTA-MIB)
-    ucd-snmp/diskio        Table of io-devices and how much data they have
-                           read/written.  (only tested on Solaris, Linux)
-    disman/old-event-mib   previous implementation of the DISMAN-EVENT-MIB
-
-  Optional modules for specific platforms
-    Linux
-      ucd-snmp/lmSensors   hardware monitoring (LM-SENSORS-MIB)
-      ip-mib/ipv4InterfaceTable  (experimental)
-      ip-mib/ipv6InterfaceTable  (experimental)
-      tunnel               Linux TUNNEL-MIB support (ifTable extension)
-      mibII/interfaces     (old ifTable implementation)
-      misc/ipfwacc         accounting rules IP firewall information
-      ipfwchains/ipfwchains  firewall chains under ipfw
-                             (See agent/mibgroup/ipfwchains/README)
-      sctp-mib             support for the SCTP-MIB
-      etherlike-mib        support for the EtherLike-MIB
-
-    Solaris
-      ucd-snmp/lmSensors   hardware monitoring (LM-SENSORS-MIB)
-      if-mib               IF-MIB rewrite (add --enable-mfd-rewrites)
-      tcp-mib              TCP-MIB rewrite (tcpConnectionTable and
-                             tcpListenerTable; add --enable-mfd-rewrites)
-      udp-mib              UDP-MIB rewrite (udpEndpointTable;
-                             add --enable-mfd-rewrites)
-
-    FreeBSD/OpenBSD
-      if-mib               IF-MIB rewrite (add --enable-mfd-rewrites)
-
-  AgentX support:
-    agentx/subagent        allows the agent to run as either a snmp agent
-                           or as an agentX sub-agent.
-    agentx/master          makes the agent run as an agentX master agent
-                           as well as a normal snmp agent.
-    agentx                 includes both agentx/master and agentx/client.
-
-  Optional modules for C coders to look at and/or include as extension examples:
-  
-    examples/ucdDemoPublic  SNMPv3 interoperability testing mib.
-    examples/example        example C code extension.])
-
-
-#
-# Catch common mistakes in configure options
-#
-AC_ARG_WITH(mib-module,, NETSNMP_INVALID_WITH([mib-modules]))
-AC_ARG_WITH(module,, NETSNMP_INVALID_WITH([mib-modules]))
-AC_ARG_WITH(modules,, NETSNMP_INVALID_WITH([mib-modules]))
-
-AC_ARG_WITH(out-mib-module,, NETSNMP_INVALID_WITH([out-mib-modules]))
-AC_ARG_WITH(out-module,, NETSNMP_INVALID_WITH([out-mib-modules]))
-AC_ARG_WITH(out-modules,, NETSNMP_INVALID_WITH([out-mib-modules]))
-
-
-##
-#   Project: Enterprise settings	(? Agent/Library/Both?)
-##
-
-NETSNMP_ARG_WITH(enterprise-oid,
-[Enterprise OIDs:  (warning: this should be used with caution.)
-
-  --with-enterprise-oid              The enterprise number assigned to the
-                                     vendor by IANA.  See
-                                     http://www.iana.org/cgi-bin/enterprise.pl
-                                     to get one, though using the default is
-                                     probably the right choice is most cases.
-                                     (default 8072 = "enterprise.net-snmp")],[
-  if test "$withval" = yes; then
-    AC_MSG_ERROR([ Please provide a value for the enterprise number ]);
-  fi
-  AC_DEFINE_UNQUOTED(NETSNMP_ENTERPRISE_OID, $withval)
-  ent_oid="1,3,6,1,4,1,$withval"
-  AC_DEFINE_UNQUOTED(NETSNMP_ENTERPRISE_MIB, $ent_oid)
-  ent_dot_oid="1.3.6.1.4.1.$withval"
-  AC_DEFINE_UNQUOTED(NETSNMP_ENTERPRISE_DOT_MIB, $ent_dot_oid)
-  AC_MSG_RESULT(using enterprise number $withval)
-],[
-  AC_MSG_RESULT(using default "enterprise.net-snmp")
-])
-
-NETSNMP_ARG_WITH(enterprise-sysoid,
-[
-  --with-enterprise-sysoid           The base OID for the sysObjectID
-                                     of the system group
-                                     (default .1.3.6.1.4.1.8072.3.2... = 
-                                      "netSnmpAgentOIDs...")],[
-  if test "$withval" = yes; then
-    AC_MSG_ERROR([ Please provide a base OID value ]);
-  fi
-  sys_oid=`echo "$withval" | sed 's/^\.//' | sed 's/\./\,/g'`
-  AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_MIB, $sys_oid)
-  sys_dot_oid=`echo "$withval" | sed 's/^\.//'`
-  AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_DOT_MIB, $sys_dot_oid)
-  sysoid_len=`echo "$withval" | sed 's/[^\.]//g' | awk -F\. '{ print NF }'`
-  AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_DOT_MIB_LENGTH, $sysoid_len)
-  AC_MSG_RESULT(using enterprise sysOID $withval ....)
-],[
-  AC_MSG_RESULT(using default enterprise sysOID "NET-SNMP-MIB::netSnmpAgentOIDs...")
-])
-
-NETSNMP_ARG_WITH(enterprise-notification-oid,
-[
-  --with-enterprise-notification-oid The OID used for the root of
-				     enterprise specific notifications.
-                                     (default .1.3.6.1.4.1.8072.4 = 
-                                      "netSnmpNotificationPrefix")],[
-  if test "$withval" = yes; then
-    AC_MSG_ERROR([ Please provide a base OID value ]);
-  fi
-  notification_oid=`echo "$withval" | sed 's/^\.//' | sed 's/\./\,/g'`
-  AC_DEFINE_UNQUOTED(NETSNMP_NOTIFICATION_MIB, $notification_oid)
-  notification_dot_oid=`echo "$withval" | sed 's/^\.//'`
-  AC_DEFINE_UNQUOTED(NETSNMP_NOTIFICATION_DOT_MIB, $notification_dot_oid)
-  notificationoid_len=`echo "$withval" | sed 's/[^\.]//g' | awk -F\. '{ print NF }'`
-  AC_DEFINE_UNQUOTED(NETSNMP_NOTIFICATION_DOT_MIB_LENGTH, $notificationoid_len)
-  AC_MSG_RESULT(using enterprise notifications $withval)
-],[
-  AC_MSG_RESULT(using default notifications "NET-SNMP-MIB::netSnmpNotifications")
-])
-
-
-##
-#   Project: Perl settings
-##
-
-NETSNMP_ARG_WITH(perl-modules,
-[
-Perl:
-  --with-perl-modules[=ARGS]      Install the Perl modules along with the rest
-                                  of the net-snmp toolkit.  If ARGS is
-                                  specified, they're passed to the
-                                  Makefile.PL script.],[
-    if test "$withval" = "no"; then
-      install_perl="no"
-    else
-      install_perl="yes"
-      if test "$withval" != "yes"; then
-        PERLARGS="$withval"
-      fi
-    fi
-], install_perl="try")
-
-NETSNMP_ARG_ENABLE(embedded-perl,
-[  --disable-embedded-perl         Disable embedded Perl in the SNMP agent and
-                                  snmptrapd. [enabled by default]],
-    embed_perl="$enableval", embed_perl="try")
-
-NETSNMP_ARG_ENABLE(perl-cc-checks,
-[  --disable-perl-cc-checks        Disable configure checks for whether Perl's
-                                  C Compiler is compatible with ours when
-                                  embedded Perl is enabled.])
-
-
-##
-#   Project: Python settings
-##
-
-AC_ARG_WITH(python-modules,
-[
-Python:
-  --with-python-modules[=ARGS]    Install the python bindings along with the
-                                  rest of the net-snmp toolkit.  If ARGS is
-                                  specified, they're passed to the
-                                  setup.py script as arguments.],[
-    install_python="yes"
-    if test "$withval" = "yes"; then
-      PYTHONARGS=""
-    elif test "$withval" = "no"; then
-      PYTHONARGS=""
-      install_python="no"
-    else
-      PYTHONARGS="$withval"
-    fi
-], install_python="no")
-
-
-##
-#   Project: Library settings
-##
-
-NETSNMP_ARG_WITH(server-send-buf,
-[
-Network Buffers:
-  --with-server-send-buf[=ARG]    Use ARG for the default UDP/TCP send buffer instead
-                                  of the OS buffer for server sockets that are
-                                  created (snmpd, snmptrapd).  
-                                  This default can be overridden in the runtime 
-                                  configuration files.
-                                  The ARG should be the size in bytes],[
-   if test "$withval" = yes; then
-    AC_MSG_ERROR([ Please provide a positive number for the server send buffer ])
-   fi
-   AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_SERVER_SEND_BUF, $withval)],
-   AC_MSG_RESULT([using OS default send buffer size for server sockets]) )
-
-NETSNMP_ARG_WITH(server-recv-buf,
-[  --with-server-recv-buf[=ARG]    Similar as previous option, but for receive buffer],[
-  if test "$withval" = yes; then
-    AC_MSG_ERROR([ Please provide a positive number for the server recv buffer ])
-  fi
-  AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_SERVER_RECV_BUF, $withval)],
-  AC_MSG_RESULT([using OS default recv buffer size for server sockets]) )
-
-NETSNMP_ARG_WITH(client-send-buf,
-[  --with-client-send-buf[=ARG]    Similar as previous options, but for the
-                                  receive buffer of client sockets],[
-  if test "$withval" = yes; then
-    AC_MSG_ERROR([ Please provide a positive number for the client send buffer ])
-  fi
-  AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_CLIENT_SEND_BUF, $withval)],
-  AC_MSG_RESULT([using OS default send buffer size for client sockets]) )
-
-NETSNMP_ARG_WITH(client-recv-buf,
-[  --with-client-recv-buf[=ARG]    Similar as previous options, but for the send buffer],[
-  if test "$withval" = yes; then
-    AC_MSG_ERROR([ Please provide a positive number for the client recv buffer ])
-  fi
-  AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_CLIENT_RECV_BUF, $withval)],
-  AC_MSG_RESULT([using OS default recv buffer size for client sockets]) )
-
-##
-#   System: library settings  (more)
-##
-
-NETSNMP_ARG_WITH(elf,
-  [AS_HELP_STRING([--without-elf],[use elf libraries])])
-
-NETSNMP_ARG_WITH(nl,
-  [AS_HELP_STRING([--with-nl],[use libnl to get netlink data (linux only).])])
-
-NETSNMP_ARG_WITH(libwrap,
-  [  --with-libwrap[=LIBPATH]  Compile in libwrap (tcp_wrappers) support.],
-  [],
-  [with_libwrap="no"])
-
-NETSNMP_ARG_WITH(zlib,
-  [  --with-zlib[=DIR]         use libz in DIR],
-  [],
-  [with_zlib="no"])
-
-AC_ARG_WITH(bzip2,
-  [  --with-bzip2[=DIR]        use libbz2 in DIR],
-  [],
-  [with_bzip2="no"])
-
-NETSNMP_ARG_WITH(
- [mnttab],
- AS_HELP_STRING(
-   [--with-mnttab="/etc/mnttab"],
-   [Mount table location. The default is to autodetect this.]))
-
-##
-#   Project: mysql
-##
-
-NETSNMP_ARG_WITH(mysql,
-  [  --with-mysql            Include support for MySQL.])
-if test "x$with_mysql" = "xyes"; then
-  AC_DEFINE(NETSNMP_USE_MYSQL, 1,
-    [define if you are using the mysql code for snmptrapd ...])
-fi
diff --git a/configure.in b/configure.in
new file mode 100644
index 0000000..40aeb79
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,4799 @@
+# Portions of this file are subject to the following copyright.  See
+# the Net-SNMP's COPYING file for more details and other copyrights
+# that may apply:
+#
+# Portions 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.
+#
+
+#
+# Process this file with autoconf to produce a configure script.
+#
+AC_INIT([Net-SNMP], [5.4.3], [net-snmp-coders at lists.sourceforge.net])
+AC_PREREQ([2.59])
+AC_CONFIG_SRCDIR([agent/mibgroup/ucd-snmp/extensible.c])
+AC_REVISION([$Revision: 18816 $])
+
+AC_CONFIG_HEADER(include/net-snmp/net-snmp-config.h)
+
+AC_MSG_CACHE_INIT()
+
+#
+# save the configure arguments
+#
+AC_DEFINE_UNQUOTED(NETSNMP_CONFIGURE_OPTIONS,"$ac_configure_args")
+CONFIGURE_OPTIONS="\"$ac_configure_args"\"
+AC_SUBST(CONFIGURE_OPTIONS)
+
+#
+# Compilation setup
+#
+AC_ARG_WITH(cc, [
+Compiler Options:
+  --with-cc=CC                    use CC to compile (default=gcc).],
+    [CC=$with_cc;export CC])
+
+AC_ARG_WITH(linkcc, [
+  --with-linkcc=CC                use CC to link (default=gcc).],
+    [LINKCC=$with_linkcc;export LINKCC])
+
+AC_ARG_WITH(ar,
+[  --with-ar=AR                    use AR as the archiver.],
+    [AR=$with_ar; export AR])
+
+AC_ARG_WITH(endianness,
+[  --with-endianness=big|little    define endianness of target platform when
+                                  cross-compiling.],
+    [if test $with_endianness != "big" -a $with_endianness != "little" ; then
+       AC_MSG_ERROR([Endianness must be big or little, not "$with_endianness".]);
+     fi
+])
+
+AC_ARG_WITH(cflags,
+[  --with-cflags=CFLAGS            use CFLAGS as compile time arguments.],
+    [CFLAGS=$with_cflags; export CFLAGS])
+
+AC_ARG_WITH(ldflags,
+[  --with-ldflags=LDFLAGS          use LDFLAGS as link time arguments to ld.],
+    [LDFLAGS=$with_ldflags; export LDFLAGS])
+
+AC_ARG_ENABLE(as-needed,
+[  --enable-as-needed              Link libperl against Net-SNMP libraries 
+                                  rather than applications. We recommend to
+                                  use this option if it works.])
+
+AC_ARG_WITH(libs,
+[  --with-libs=LIBS                use LIBS as link time arguments to ld.],
+    [LIBS=$with_libs; export LIBS])
+
+AC_ARG_ENABLE(silent-libtool,
+[  --enable-silent-libtool         Pass --silent to libtool.],
+	LIBTOOLFLAGS=--silent)
+AC_SUBST(LIBTOOLFLAGS)
+
+AC_ARG_WITH(install-prefix,
+[  --with-install-prefix=PATH      Just for installing, prefix all 
+                                  directories with PATH.  This is known not
+                                  to work on some systems with shared
+                                  libraries (eg, HPUX)],
+      INSTALL_PREFIX="$withval")
+
+if test "x$INSTALL_PREFIX" = "xyes" ; then
+  AC_MSG_ERROR([--with-install-prefix requires an argument])
+fi
+if test "x$INSTALL_PREFIX" = "xno" ; then
+  INSTALL_PREFIX=""
+fi
+AC_SUBST(INSTALL_PREFIX)
+
+# check for errors in args that run after module processing here, so
+# they fail before module processing...
+AC_ARG_ENABLE(libwrap,,
+	AC_MSG_ERROR([ Invalid option. Use --with-libwrap/--without-libwrap instead ]) )
+  AC_ARG_ENABLE(zlib,,
+	AC_MSG_ERROR([ Invalid option. Use --with-zlib/--without-zlib instead ]) )
+
+AC_ARG_ENABLE(mini_agent,
+[  --enable-mini-agent             Build a minimal agent.])
+if test "x$enable_mini_agent" = "xyes"; then
+    mini_agent="yes"
+else
+    mini_agent="no"
+fi
+AC_ARG_WITH(mini_agent,,
+         AC_MSG_ERROR([ Invalid option. Use --enable-mini-agent/--disable-mini-agent instead ]) )
+AC_ARG_WITH(miniagent,,
+         AC_MSG_ERROR([ Invalid option. Use --enable-mini-agent/--disable-mini-agent instead ]) )
+AC_ARG_ENABLE(miniagent,,
+         AC_MSG_ERROR([ Invalid option. Use --enable-mini-agent/--disable-mini-agent instead ]) )
+
+AC_ARG_ENABLE(agent,
+[  --disable-agent                 Do not build the agent (snmpd).])
+if test "x$enable_agent" != "xno"; then
+   SNMPD='snmpd$(EXEEXT)'
+   MAINSUBS="$MAINSUBS agent"
+   TRAPLIBS='$(TRAPDWITHAGENT)'
+   USETRAPLIBS='$(USEAGENTLIBS)'
+else
+   SNMPD=""
+   # we still need/want the agentlibs (for subagents, e.g. snmptrapd)
+   MAINSUBS="$MAINSUBS agent"
+   # building snmptrapd w/o agentlibs doesn't work atm
+   #TRAPLIBS='$(TRAPDWITHOUTAGENT)'
+   #USETRAPLIBS='$(USELIBS)'
+   TRAPLIBS='$(TRAPDWITHAGENT)'
+   USETRAPLIBS='$(USEAGENTLIBS)'
+fi
+AC_SUBST(SNMPD)
+AC_SUBST(TRAPLIBS)
+AC_SUBST(USETRAPLIBS)
+AC_ARG_WITH(agent,,
+         AC_MSG_ERROR([ Invalid option. Use --enable-agent/--disable-agent instead ]) )
+
+AC_ARG_ENABLE(applications,
+[  --disable-applications          Do not build the apps (snmpget, ...).])
+if test "x$enable_applications" != "xno"; then
+   MAINSUBS="$MAINSUBS apps"
+fi
+# Common mistakes
+AC_ARG_WITH(applications,,
+        AC_MSG_ERROR([ Invalid option. Use --enable-applications/--disable-applications instead ]) )
+
+AC_ARG_ENABLE(manuals,
+[  --disable-manuals               Do not install the manuals.])
+if test "x$enable_manuals" != "xno"; then
+   MAINSUBS="$MAINSUBS man"
+fi
+AC_ARG_WITH(manuals,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-manuals/--disable-manuals instead ]) )
+
+AC_ARG_ENABLE(scripts,
+[  --disable-scripts               Do not install the scripts (mib2c, ...).])
+if test "x$enable_scripts" != "xno"; then
+   MAINSUBS="$MAINSUBS local"
+fi
+AC_ARG_WITH(scripts,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-scripts/--disable-scripts instead ]) )
+
+AC_ARG_ENABLE(mibs,
+[  --disable-mibs                  Do not install the mib files.])
+if test "x$enable_mibs" != "xno"; then
+   MAINSUBS="$MAINSUBS mibs"
+fi
+# with-mibs is valid too, but means something else
+
+AC_SUBST(MAINSUBS)
+AC_MSG_CHECKING([what to build and install])
+AC_MSG_RESULT([$MAINSUBS])
+
+AC_ARG_ENABLE(mib-loading,
+[  --disable-mib-loading           Do not include code that parses and 
+                                  manipulates the mib files.])
+if test "x$enable_mib_loading" = "xno"; then
+  AC_DEFINE([NETSNMP_DISABLE_MIB_LOADING], 1, 
+            [Define if mib loading and parsing code should not be included])
+fi
+AC_ARG_WITH(mib-loading,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-mib-loading/--disable-mib-loading instead ]) )
+
+#
+SNMP_VERSIONS=""
+AC_ARG_ENABLE(snmpv1,
+[  --disable-snmpv1                Do not include code that implements SNMPv1.])
+if test "x$enable_snmpv1" = "xno"; then
+  AC_DEFINE([NETSNMP_DISABLE_SNMPV1], 1, 
+            [Define if SNMPv1 code should not be included])
+else
+  SNMP_VERSIONS="$SNMP_VERSIONS 1"
+fi
+AC_ARG_WITH(snmpv1,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-snmpv1/--disable-snmpv1 instead ]) )
+
+AC_ARG_ENABLE(snmpv2c,
+[  --disable-snmpv2c               Do not include code that implements SNMPv2c.])
+if test "x$enable_snmpv2c" = "xno"; then
+  AC_DEFINE([NETSNMP_DISABLE_SNMPV2C], 1, 
+            [Define if SNMPv2c code should not be included])
+else
+  SNMP_VERSIONS="$SNMP_VERSIONS 2c"
+fi
+AC_ARG_WITH(snmpv2c,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-snmpv2c/--disable-snmpv2c instead ]) )
+
+SNMP_VERSIONS="$SNMP_VERSIONS 3"
+AC_MSG_CACHE_ADD(SNMP Versions Supported:   $SNMP_VERSIONS)
+
+AC_ARG_ENABLE(set-support,
+[  --disable-set-support           Do not allow SNMP set requests.])
+if test "x$enable_set_support" = "xno"; then
+  AC_DEFINE([NETSNMP_DISABLE_SET_SUPPORT], 1, 
+            [Define if SNMP SET support should be disabled])
+fi
+AC_ARG_WITH(set-support,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-set-support/--disable-set-support instead ]) )
+
+AC_ARG_ENABLE(des,
+[  --disable-des                   Do not support DES encryption.])
+if test "x$enable_des" = "xno"; then
+  AC_DEFINE([NETSNMP_DISABLE_DES], 1, 
+            [Define if DES encryption should not be supported])
+fi
+AC_ARG_WITH(des,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-des/--disable-des instead ]) )
+
+AC_ARG_ENABLE(privacy,
+[  --disable-privacy               Don't compile in support for privacy (encryption).])
+if test "x$enable_privacy" != "xno"; then
+  AC_DEFINE(NETSNMP_ENABLE_SCAPI_AUTHPRIV)
+fi
+AC_ARG_WITH(privacy,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-privacy/--disable-privacy instead ]) )
+
+AC_ARG_ENABLE(md5,
+[  --disable-md5                   Do not support MD5 authentication.])
+if test "x$enable_md5" = "xno"; then
+  AC_DEFINE([NETSNMP_DISABLE_MD5], 1, 
+            [Define if MD5 authentication should not be supported])
+fi
+AC_ARG_WITH(md5,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-md5/--disable-md5 instead ]) )
+
+AC_ARG_ENABLE(internal-md5,
+[  --enable-internal-md5           Use the internal MD5 support.])
+if test "x$enable_internal_md5" = "xyes"; then
+  if test "x$enable_md5" = "xno"; then
+    AC_MSG_ERROR(You can not specify both --enable-internal-md5 and --disable-md5)
+  else
+    AC_DEFINE(NETSNMP_USE_INTERNAL_MD5)
+  fi
+fi
+AC_ARG_WITH(internal-md5,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-internal-md5/--disable-internal-md5 instead ]) )
+
+AC_ARG_ENABLE(ipv6,
+[  --enable-ipv6                   Generate IPv6 ready version.],
+    [if test "x$enable_ipv6" = "xyes"; then
+      AC_DEFINE(NETSNMP_ENABLE_IPV6)
+    fi])
+AC_ARG_WITH(ipv6,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-ipv6/--disable-ipv6 instead ]) )
+
+AC_ARG_ENABLE(local-smux,
+[  --enable-local-smux             Restrict SMUX connections to localhost (by default).],
+    [if test "x$enable_local_smux" = "xyes"; then
+      AC_DEFINE(NETSNMP_ENABLE_LOCAL_SMUX)
+    fi])
+AC_ARG_WITH(local-smux,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-local-smux/--disable-local-smux instead ]) )
+
+AC_ARG_ENABLE(debugging,
+[  --enable-debugging              Outputs extra debugging information at all
+                                  times.  Normally, you should not enable this,
+                                  but instead use the -D flag of the commands,
+                                  which toggles debuging output at runtime.
+  --disable-debugging             Disallows debugging code to be built in.
+                                  This might provide some speed benefits.],
+    AC_DEFINE(NETSNMP_ALWAYS_DEBUG))
+AC_ARG_WITH(debugging,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-debugging/--disable-debugging instead ]) )
+
+AC_ARG_ENABLE(developer,
+[  --enable-developer              Turns on super-duper-extra-compile-warnings
+                                  when using gcc.],
+    developer=yes)
+AC_ARG_WITH(developer,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-developer/--disable-developer instead ]) )
+
+if test "x$enable_debugging" = "xno"; then
+    AC_DEFINE(NETSNMP_NO_DEBUGGING)
+fi
+
+AC_ARG_WITH(dmalloc,
+[  --with-dmalloc=PATH             Use dmalloc library (www.dmalloc.com)],
+    if test "x$withval" = "xyes"; then
+      LIBS="$LIBS -ldmalloc"
+      AC_DEFINE(HAVE_DMALLOC_H)
+    elif test -d "$withval"; then
+      AC_ADD_SEARCH_PATH($withval)
+      LIBS="$LIBS -ldmalloc"
+      AC_DEFINE(HAVE_DMALLOC_H)
+    fi
+)
+AC_SUBST(HAVE_DMALLOC_H)
+AC_ARG_ENABLE(dmalloc,,
+	AC_MSG_ERROR([ Invalid option. Use --with-dmalloc/--without-dmalloc instead ]) )
+
+AC_ARG_WITH(efence,
+[  --with-efence                   Look for and use libefence (malloc).],
+      use_efence="$withval")
+AC_ARG_ENABLE(efence,,
+	AC_MSG_ERROR([ Invalid option. Use --with-efence/--without-efence instead ]) )
+
+tryrsaref=no
+AC_ARG_WITH(rsaref,
+[  --with-rsaref=PATH              Look for librsaref in PATH/lib.],
+    if test "x$withval" = "xyes"; then
+      tryrsaref=yes
+    elif test "x$withval" = "xno"; then
+      tryrsaref=no
+    elif test -d "$withval"; then
+      AC_ADD_SEARCH_PATH($withval)
+      tryrsaref=yes
+    fi,
+)
+AC_ARG_ENABLE(rsaref,,
+	AC_MSG_ERROR([ Invalid option. Use --with-rsaref/--without-rsaref instead ]) )
+
+tryopenssl=defaultyes
+askedopenssl=no
+AC_ARG_WITH(openssl,
+[  --with-openssl=PATH             Look for openssl in PATH/lib.],
+    if test "x$withval" = "xyes"; then
+      tryopenssl=yes
+      askedopenssl=yes
+    elif test "x$withval" = "xno"; then
+      tryopenssl=no
+    elif test -d "$withval"; then
+      AC_ADD_SEARCH_PATH($withval)
+      tryopenssl=yes
+      askedopenssl=yes
+    fi,
+)
+if test "x$tryopenssl" = "xdefaultyes"; then
+      AC_ADD_SEARCH_PATH(/usr/local/ssl)
+      tryopenssl=yes
+fi
+AC_ARG_ENABLE(openssl,,
+	AC_MSG_ERROR([ Invalid option. Use --with-openssl/--without-openssl instead ]) )
+AC_ARG_WITH(ssl,,
+	AC_MSG_ERROR([ Invalid option. Use --with-openssl/--without-openssl instead ]) )
+AC_ARG_ENABLE(ssl,,
+	AC_MSG_ERROR([ Invalid option. Use --with-openssl/--without-openssl instead ]) )
+
+trykrb5=defaultyes
+askedkrb5=no
+AC_ARG_WITH(krb5,
+[  --with-krb5=PATH                Look for krb5 in PATH/lib.],
+    if test "x$withval" = "xyes"; then
+      trykrb5=yes
+      askedkrb5=yes
+      krb5path=undef
+    elif test "x$withval" = "xno"; then
+      trykrb5=no
+      krb5path=undef
+    elif test -d "$withval"; then
+      trykrb5=yes
+      askedkrb5=yes
+      krb5path=$withval
+    fi,
+)
+if test "x$trykrb5" = "xdefaultyes"; then
+      trykrb5=yes
+      krb5path=/usr/kerberos
+fi
+AC_ARG_ENABLE(krb5,,
+	AC_MSG_ERROR([ Invalid option. Use --with-krb5/--without-krb5 instead ]) )
+
+AC_ARG_WITH(rpm,
+[  --without-rpm                   Don't include support for the RPM package
+                                  management system when building the host MIB
+                                  module.])
+AC_ARG_ENABLE(rpm,,
+	AC_MSG_ERROR([ Invalid option. Use --with-rpm/--without-rpm instead ]) )
+
+AC_ARG_ENABLE(agentx-dom-sock-only,
+[  --enable-agentx-dom-sock-only   Disable UDP/TCP transports for agentx.],
+AC_DEFINE(NETSNMP_AGENTX_DOM_SOCK_ONLY))
+AC_ARG_WITH(agentx-dom-sock-only,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-agentx-dom-sock-only/--disable-agentx-dom-sock-only instead ]) )
+
+AC_ARG_ENABLE(snmptrapd-subagent,
+[  --disable-snmptrapd-subagent    Disable agentx subagent code in snmptrapd.])
+if test "x$enable_snmptrapd_subagent" = "xno"; then
+  AC_DEFINE(NETSNMP_SNMPTRAPD_DISABLE_AGENTX)
+fi
+AC_ARG_WITH(snmptrapd-subagent,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-snmptrapd-subagent/--disable-snmptrapd-subagent instead ]) )
+
+AC_ARG_WITH(opaque-special-types,
+[  --without-opaque-special-types  Don't use special opaque encodings.
+                                  SNMP normally cannot handle
+                                  floating numbers, nor large 64 bit
+                                  integers well.  By default, the
+                                  net-snmp package compiles in
+                                  support for these extra datatypes
+                                  (in a legal way)])
+AC_ARG_ENABLE(opaque-special-types,,
+	AC_MSG_ERROR([ Invalid option. Use --with-opaque-special-types/--without-opaque-special-types instead ]) )
+
+AC_ARG_WITH(mibdirs,
+[  --with-mibdirs="dir1:dir2:"   Default directories to look for mibs.
+                                  (Default: \$HOME/.snmp/mibs:DATADIR/snmp/mibs)],
+    [NETSNMP_DEFAULT_MIBDIRS="$with_mibdirs"
+    AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_MIBDIRS,"$with_mibdirs")])
+AC_ARG_ENABLE(mibdirs,,
+	AC_MSG_ERROR([ Invalid option. Use --with-mibdirs/--without-mibdirs instead ]) )
+
+AC_ARG_WITH(mibs,
+[  --with-mibs="item1:item2:"    Default mib IDs to read.
+                                  (The default list is "IP-MIB:IF-MIB:
+                                  TCP-MIB:UDP-MIB:SNMPv2-MIB:RFC1213-MIB"
+                                  with the addition of any mibs used
+                                  by the mib modules the agent is
+                                  configured with)],
+    NETSNMP_DEFAULT_MIBS="$with_mibs")
+# enable-mibs is valid too, but means something else
+
+AC_ARG_WITH(mibfiles,
+[  --with-mibfiles="file1:file2" Default mib files to load.
+                                  (Default:  none.  uses IDs above instead.)],
+    AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_MIBFILES,"$with_mibfiles"))
+AC_ARG_ENABLE(mibfiles,,
+	AC_MSG_ERROR([ Invalid option. Use --with-mibfiles/--without-mibfiles instead ]) )
+
+AC_ARG_ENABLE(mib-config-checking,
+[  --enable-mib-config-checking    Turns on extra checks during configuration
+                                  of mib modules. Any conflicts will cause
+                                  configure to abort (default is to issue a
+                                  warning and continue.)],
+    with_mib_cfg_checks="yes",with_mib_cfg_checks="no")
+AC_ARG_WITH(mib-config-checking,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-mib-config-checking/--disable-mib-config-checking instead ]) )
+
+AC_ARG_ENABLE(mib-config-debug,
+[  --enable-mib-config-debug       Turns on verbose output during mib module
+                                  configure processing.)],
+    with_mib_cfg_debug="yes",with_mib_cfg_debug="no")
+AC_ARG_WITH(mib-config-checking,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-mib-config-checking/--disable-mib-config-checking instead ]) )
+
+AC_ARG_ENABLE(mfd-rewrites,
+[  --enable-mfd-rewrites           Use new MFD rewrites of mib modules,
+                                  where available. (default is to use
+                                  original mib module code).])
+if test "x$enable_mfd_rewrites" = "xyes"; then
+   AC_DEFINE(NETSNMP_ENABLE_MFD_REWRITES)
+fi
+AC_ARG_WITH(mfd-rewrites,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-mfd-rewrites/--disable-mfd-rewrites instead ]) )
+
+askedpkcs=no
+AC_ARG_WITH(pkcs,
+[  --with-pkcs=PATH                Look for pkcs11 in PATH/lib.],
+    if test "x$withval" = "xyes"; then
+      askedpkcs=yes
+    elif test "x$withval" = "xno"; then
+      askedpkcs=no
+    elif test -d "$withval"; then
+      AC_ADD_SEARCH_PATH($withval)
+      askedpkcs=yes
+    fi,
+)
+AC_ARG_ENABLE(pkcs,,
+	AC_MSG_ERROR([ Invalid option. Use --with-pkcs/--without-pkcs instead ]) )
+
+AC_ARG_ENABLE(testing-code,
+[  --enable-testing-code           Enables some code sections that should 
+                                  only be used for testing of certain
+                                  SNMP functionalities.  This should *not* 
+                                  be turned on for production use.  Ever.],
+    AC_DEFINE(NETSNMP_ENABLE_TESTING_CODE))
+AC_ARG_WITH(testing-code,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-testing-code/--disable-testing-code instead ]) )
+
+AC_ARG_ENABLE(reentrant,
+[  --enable-reentrant              Enables locking functions that protect
+                                  library resources in some multi-threading
+                                  environments.  This does not guarantee
+                                  thread-safe operation.
+                                  Currently an experimental setting.],
+    with_res_locks="yes",with_res_locks="no")
+AC_ARG_WITH(reentrant,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-reentrant/--disable-reentrant instead ]) )
+
+AC_ARG_WITH(root-access,
+[
+Configuring the agent:
+  --without-root-access           The snmpd agent won't require root access to
+                                  run it.  The information it returns in the
+                                  mib-II tree may not be correct, however.])
+AC_ARG_ENABLE(root-access,,
+	AC_MSG_ERROR([ Invalid option. Use --with-root-access/--without-root-access instead ]) )
+
+AC_ARG_WITH(kmem-usage,
+[  --without-kmem-usage            Do not include any code related to the use
+                                  of kmem.])
+AC_ARG_ENABLE(kmem-usage,,
+	AC_MSG_ERROR([ Invalid option. Use --with-kmem-usage/--without-kmem-usage instead ]) )
+
+AC_ARG_WITH(dummy-values,
+[  --with-dummy-values             Provide 'placeholder' dummy values where
+                                  the necessary information is not available.
+                                  This is technically not compliant with the
+                                  SNMP specifications, but was how the agent
+                                  operated for versions < 4.0.])
+AC_ARG_ENABLE(dummy-values,,
+	AC_MSG_ERROR([ Invalid option. Use --with-dummy-values/--without-dummy-values instead ]) )
+
+AC_ARG_WITH(persistent-directory,
+[  --with-persistent-directory="directory"
+                                  Default directory for persistent data storage.],ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY="$with_persistent_directory")
+AC_ARG_ENABLE(persistent-directory,,
+	AC_MSG_ERROR([ Invalid option. Use --with-persistent-directory/--without-persistent-directory instead ]) )
+
+default_persistent_mask=077
+AC_ARG_WITH(persistent-mask,
+[  --with-persistent-mask="mask"  Default mask for persistent data storage.
+                                  (Default: 077)],[
+  if test "$withval" = yes; then
+    AC_MSG_ERROR([ Please provide a mask value ]);
+  fi
+  AC_MSG_RESULT(using default persistent mask $withval)
+  AC_DEFINE_UNQUOTED(NETSNMP_PERSISTENT_MASK,$withval)
+],[
+  AC_MSG_RESULT(using default persistent mask $default_persistent_mask)
+  AC_DEFINE_UNQUOTED(NETSNMP_PERSISTENT_MASK,$default_persistent_mask)
+])
+AC_ARG_ENABLE(persistent-mask,,
+	AC_MSG_ERROR([ Invalid option. Use --with-persistent-mask instead ]) )
+
+AC_ARG_WITH(copy_persistent_files,
+[  --with-copy-persistent-files="no" Don't copy persistent files
+                                     (or use "yes" to copy them).
+                                     (Default: yes)],
+    ac_cv_user_prompt_COPY_PERSISTENT_FILES="$with_copy_persistent_files")
+AC_ARG_ENABLE(copy_persistent_files,,
+	AC_MSG_ERROR([ Invalid option. Use --with-copy_persistent_files/--without-copy_persistent_files instead ]) )
+
+default_temp_file_pattern="/tmp/snmpdXXXXXX"
+AC_ARG_WITH(temp-file-pattern,
+[  --with-temp-file-pattern=PATTERN  Pattern of temporary files (Default: /tmp/snmpdXXXXXX)],[
+  if test "$withval" = yes; then
+    AC_MSG_ERROR([ Please provide a pattern ]);
+  fi
+  AC_MSG_RESULT(using temporary file pattern $withval)
+  AC_DEFINE_UNQUOTED(NETSNMP_TEMP_FILE_PATTERN,"$withval",[Pattern of temporary files])
+],[
+  AC_MSG_RESULT(using default temporary file pattern $default_temp_file_pattern)
+  AC_DEFINE_UNQUOTED(NETSNMP_TEMP_FILE_PATTERN,"$default_temp_file_pattern",[Pattern of temporary files])
+])
+AC_ARG_ENABLE(temp-file-pattern,,
+	AC_MSG_ERROR([ Invalid option. Use --with-temp-file-pattern instead ]) )
+
+default_agentx_socket="/var/agentx/master"
+AC_ARG_WITH(agentx-socket,
+[  --with-agentx-socket=FILE         AgentX socket (Default: /var/agentx/master as specified in RFC2741)],[
+  if test "$withval" = yes; then
+    AC_MSG_ERROR([ Please provide a full path ]);
+  fi
+  AC_MSG_RESULT(using AgentX socket $withval)
+  AC_DEFINE_UNQUOTED(NETSNMP_AGENTX_SOCKET,"$withval",[Unix domain socket for AgentX master-subagent communication])
+],[
+  AC_MSG_RESULT(using default AgentX socket $default_agentx_socket)
+  AC_DEFINE_UNQUOTED(NETSNMP_AGENTX_SOCKET,"$default_agentx_socket",[Unix domain socket for AgentX master-subagent communication])
+])
+AC_ARG_ENABLE(agentx-socket,,
+	AC_MSG_ERROR([ Invalid option. Use --with-agentx-socket instead ]) )
+
+AC_ARG_WITH(default-snmp-version,
+[  --with-default-snmp-version="3" Default version of SNMP to use.
+                                    (Default: 3)
+                                    Legal values: 1, 2 (for SNMPv2c) or 3.],
+    ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION="$with_default_snmp_version")
+AC_ARG_ENABLE(default-snmp-version,,
+	AC_MSG_ERROR([ Invalid option. Use --with-default-snmp-version/--without-default-snmp-version instead ]) )
+
+# we test this now and later as well.  we test it now so configure can die
+# early on with an error rather than waiting till the end of the script.
+if test "x$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "x"; then
+  if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" = "2c"; then
+    ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION="2"
+  fi
+  if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "1" -a "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "2" -a "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "3"; then
+    AC_MSG_ERROR(Illegal version number passed to --with-default-snmp-version)
+  fi
+fi
+
+AC_ARG_WITH(sys_contact,
+[  --with-sys-contact="who at where"  Default system contact.
+                                    (Default: LOGIN at DOMAINNAME)],
+    ac_cv_user_prompt_NETSNMP_SYS_CONTACT="$with_sys_contact")
+AC_ARG_ENABLE(sys_contact,,
+	AC_MSG_ERROR([ Invalid option. Use --with-sys-contact/--without-sys-contact instead ]) )
+
+AC_ARG_WITH(sys_location,
+[  --with-sys-location="location"  Default system location.
+                                    (Default: Unknown)],
+    ac_cv_user_prompt_NETSNMP_SYS_LOC="$with_sys_location")
+AC_ARG_ENABLE(sys_location,,
+	AC_MSG_ERROR([ Invalid option. Use --with-sys-location/--without-sys-location instead ]) )
+
+AC_ARG_WITH(logfile,
+[  --with-logfile="location"       Default log file location for snmpd.],
+    ac_cv_user_prompt_NETSNMP_LOGFILE="$with_logfile")
+AC_ARG_ENABLE(logfile,,
+	AC_MSG_ERROR([ Invalid option. Use --with-logfile/--without-logfile instead ]) )
+if test "$ac_cv_user_prompt_NETSNMP_LOGFILE" = "no"; then
+    ac_cv_user_prompt_NETSNMP_LOGFILE="none"
+fi
+
+AC_ARG_WITH(transports,
+[  --with-transports="t1 t2 ..."   Compile in the given SNMP transport
+                                    modules (space separated list).])
+AC_ARG_WITH(out_transports,
+[  --with-out-transports="t1 ..."  Exclude listed SNMP transports
+                                    (space separated list).
+
+  Available SNMP transport modules are:
+
+    UDP         support for SNMP over UDP/IP.
+                This transport is always compiled in.
+    UDPIPv6     support for SNMP over UDP/IPv6.
+                This transport is available for Linux, Solaris and
+                FreeBSD at least.
+                It is never compiled in by default.
+    TCPIPv6     support for SNMP over UDP/IPv6.
+                This transport is available for Linux, Solaris and
+                FreeBSD at least.
+                It is never compiled in by default.
+    TCP         support for SNMP over TCP/IP.
+                This transport is compiled in by default, but may be omitted.
+    Unix        support for SNMP over Unix domain protocols.
+                This transport is compiled in by default except on Win32
+                platforms, and may be omitted.
+    Callback    support for SNMP over an internal locally connected pair
+                of snmp_sessions.
+    AAL5PVC     support for SNMP over AAL5 PVCs.
+                This transport is presently only available for Linux,
+                is never compiled in by default and may be omitted.
+    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.
+])
+
+#
+# Catch common mistakes in transport options
+#
+AC_ARG_WITH(transport,,    AC_MSG_ERROR([ Invalid option. Use --with-transports/--without-transports instead ])     )
+AC_ARG_WITH(out-transport,,AC_MSG_ERROR([ Invalid option. Use --with-out-transports/--without-out-transports instead ]) )
+
+#
+# security modules
+#
+
+AC_ARG_WITH(security-modules,
+[  --with-security-modules="s1 s2 ..."   Compile in the given SNMP security
+                                    module services (space separated list).
+
+  Available SNMP security services:
+
+        usm                support for user based SNMP security
+                           (required and always compiled in)
+        ksm                support for kerberos based SNMP security
+])
+AC_ARG_ENABLE(security-modules,,
+	AC_MSG_ERROR([ Invalid option. Use --with-security-modules/--without-security-modules instead ]) )
+
+#
+# mib modules
+#
+
+AC_ARG_WITH(mib_modules,
+[  --with-mib-modules="item1 ..."  Compile with additional mib modules
+                                    (Space separated list).])
+AC_ARG_ENABLE(mib_modules,,
+	AC_MSG_ERROR([ Invalid option. Use --with-mib-modules/--without-mib-modules instead ]) )
+
+AC_ARG_WITH(out_mib_modules,
+[  --with-out-mib-modules="list"   Compile without these mib modules.
+
+  Default mib modules compiled into the agent (which can be removed):
+  
+    mibII                  support for the mib-II tree.
+    snmpv3mibs             support for the snmpv3 mib modules.
+    ucd_snmp               UCD-SNMP-MIB specific extensions.
+    agent_mibs             NET-SNMP-AGENT-MIB extensions
+    agentx                 AgentX support (see below)
+    notification           mibs supporting specification of trap destinations.
+    target                 Support for the SNMP WGs TARGET-MIB.
+    utilities              general agent configuration utilities.
+    disman/event           support for the DISMAN-EVENT-MIB
+                             (supports self monitoring and notification 
+                              delivery when error conditions are found)
+    disman/schedule        support for the DISMAN-SCHEDULE-MIB
+                             (trigger SET requests at specified times)
+    host                   host resources mib support.
+                             (only on major supported platforms)
+
+  Optional mib modules that can be built into the agent include:
+    smux                   smux support to allow subagents to attach to snmpd.
+    mibII/mta_sendmail     Sendmail statistics monitoring (MTA-MIB)
+    ucd-snmp/diskio        Table of io-devices and how much data they have
+                           read/written.  (only tested on Solaris, Linux)
+    disman/old-event-mib   previous implementation of the DISMAN-EVENT-MIB
+
+  Optional modules for specific platforms
+    Linux
+      ucd-snmp/lmSensors   hardware monitoring (LM-SENSORS-MIB)
+      ip-mib/ipv4InterfaceTable  (experimental)
+      ip-mib/ipv6InterfaceTable  (experimental)
+      tunnel               Linux TUNNEL-MIB support (ifTable extension)
+      mibII/interfaces     (old ifTable implementation)
+      misc/ipfwacc         accounting rules IP firewall information
+      ipfwchains/ipfwchains  firewall chains under ipfw
+                             (See agent/mibgroup/ipfwchains/README)
+      sctp-mib             support for the SCTP-MIB
+
+    Solaris
+      ucd-snmp/lmSensors   hardware monitoring (LM-SENSORS-MIB)
+      if-mib               IF-MIB rewrite (add --enable-mfd-rewrites)
+      tcp-mib              TCP-MIB rewrite (tcpConnectionTable and
+                             tcpListenerTable; add --enable-mfd-rewrites)
+      udp-mib              UDP-MIB rewrite (udpEndpointTable;
+                             add --enable-mfd-rewrites)
+
+    FreeBSD/OpenBSD
+      if-mib               IF-MIB rewrite (add --enable-mfd-rewrites)
+
+  AgentX support:
+    agentx/subagent        allows the agent to run as either a snmp agent
+                           or as an agentX sub-agent.
+    agentx/master          makes the agent run as an agentX master agent
+                           as well as a normal snmp agent.
+    agentx                 includes both agentx/master and agentx/client.
+
+  Optional modules for C coders to look at and/or include as extension examples:
+  
+    examples/ucdDemoPublic  SNMPv3 interoperability testing mib.
+    examples/example        example C code extension.])
+AC_ARG_ENABLE(out_mib_modules,,
+	AC_MSG_ERROR([ Invalid option. Use --with-out-mib-modules/--without-out-mib-modules instead ]) )
+
+
+#
+AC_ARG_WITH(enterprise-oid,
+[Enterprise OIDs:  (warning: this should be used with caution.)
+
+  --with-enterprise-oid              The enterprise number assigned to the
+                                     vendor by IANA.  See
+                                     http://www.iana.org/cgi-bin/enterprise.pl
+                                     to get one, though using the default is
+                                     probably the right choice is most cases.
+                                     (default 8072 = "enterprise.net-snmp")],[
+  if test "$withval" = yes; then
+    AC_MSG_ERROR([ Please provide a value for the enterprise number ]);
+  fi
+  AC_DEFINE_UNQUOTED(NETSNMP_ENTERPRISE_OID, $withval)
+  ent_oid="1,3,6,1,4,1,$withval"
+  AC_DEFINE_UNQUOTED(NETSNMP_ENTERPRISE_MIB, $ent_oid)
+  ent_dot_oid="1.3.6.1.4.1.$withval"
+  AC_DEFINE_UNQUOTED(NETSNMP_ENTERPRISE_DOT_MIB, $ent_dot_oid)
+  AC_MSG_RESULT(using enterprise number $withval)
+],[
+  AC_MSG_RESULT(using default "enterprise.net-snmp")
+])
+AC_ARG_ENABLE(enterprise-oid,,
+	AC_MSG_ERROR([ Invalid option. Use --with-enterprise-oid/--without-enterprise-oid instead ]) )
+
+AC_ARG_WITH(enterprise-sysoid,
+[
+  --with-enterprise-sysoid           The base OID for the sysObjectID
+                                     of the system group
+                                     (default .1.3.6.1.4.1.8072.3.2... = 
+                                      "netSnmpAgentOIDs...")],[
+  if test "$withval" = yes; then
+    AC_MSG_ERROR([ Please provide a base OID value ]);
+  fi
+  sys_oid=`echo "$withval" | sed 's/^\.//' | sed 's/\./\,/g'`
+  AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_MIB, $sys_oid)
+  sys_dot_oid=`echo "$withval" | sed 's/^\.//'`
+  AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_DOT_MIB, $sys_dot_oid)
+  sysoid_len=`echo "$withval" | sed 's/[^\.]//g' | awk -F\. '{ print NF }'`
+  AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_DOT_MIB_LENGTH, $sysoid_len)
+  AC_MSG_RESULT(using enterprise sysOID $withval ....)
+],[
+  AC_MSG_RESULT(using default enterprise sysOID "NET-SNMP-MIB::netSnmpAgentOIDs...")
+])
+AC_ARG_ENABLE(enterprise-sysoid,,
+	AC_MSG_ERROR([ Invalid option. Use --with-enterprise-sysoid/--without-enterprise-sysoid instead ]) )
+
+AC_ARG_WITH(enterprise-notification-oid,
+[
+  --with-enterprise-notification-oid The OID used for the root of
+				     enterprise specific notifications.
+                                     (default .1.3.6.1.4.1.8072.4 = 
+                                      "netSnmpNotificationPrefix")],[
+  if test "$withval" = yes; then
+    AC_MSG_ERROR([ Please provide a base OID value ]);
+  fi
+  notification_oid=`echo "$withval" | sed 's/^\.//' | sed 's/\./\,/g'`
+  AC_DEFINE_UNQUOTED(NETSNMP_NOTIFICATION_MIB, $notification_oid)
+  notification_dot_oid=`echo "$withval" | sed 's/^\.//'`
+  AC_DEFINE_UNQUOTED(NETSNMP_NOTIFICATION_DOT_MIB, $notification_dot_oid)
+  notificationoid_len=`echo "$withval" | sed 's/[^\.]//g' | awk -F\. '{ print NF }'`
+  AC_DEFINE_UNQUOTED(NETSNMP_NOTIFICATION_DOT_MIB_LENGTH, $notificationoid_len)
+  AC_MSG_RESULT(using enterprise notifications $withval)
+],[
+  AC_MSG_RESULT(using default notifications "NET-SNMP-MIB::netSnmpNotifications")
+])
+AC_ARG_ENABLE(enterprise-notification-oid,,
+	AC_MSG_ERROR([ Invalid option. Use --with-enterprise-notification-oid/--without-enterprise-notification-oid instead ]) )
+#
+# Catch common mistakes in configure options
+#
+AC_ARG_WITH(mib-module,,    AC_MSG_ERROR([ Invalid option1. Use --with-mib-modules instead ])     )
+AC_ARG_WITH(module,,
+	AC_MSG_ERROR([ Invalid option3. Use --with-mib-modules instead ]) )
+AC_ARG_WITH(modules,,
+	AC_MSG_ERROR([ Invalid option4. Use --with-mib-modules instead ]) )
+
+AC_ARG_WITH(out-mib-module,,AC_MSG_ERROR([ Invalid option5. Use --with-out-mib-modules instead ]) )
+AC_ARG_WITH(out-modules,,
+	AC_MSG_ERROR([ Invalid option7. Use --with-out-mib-modules instead ]) )
+AC_ARG_WITH(out-module,,
+	AC_MSG_ERROR([ Invalid option8. Use --with-out-mib-modules instead ]) )
+
+#
+# Perl specific
+#
+AC_ARG_WITH(perl-modules,
+[
+Perl:
+  --with-perl-modules[=ARGS]      Install the Perl modules along with the rest
+                                  of the net-snmp toolkit.  If ARGS is
+                                  specified, they're passed to the
+                                  Makefile.PL script.],[
+    if test "$withval" = "no"; then
+      install_perl="no"
+    else
+      install_perl="yes"
+      if test "$withval" != "yes"; then
+        PERLARGS="$withval"
+      fi
+    fi
+], install_perl="try")
+
+AC_ARG_ENABLE(embedded-perl,
+[  --disable-embedded-perl         Disable embedded Perl in the SNMP agent and
+                                  snmptrapd. [enabled by default]],
+    embed_perl="$enableval", embed_perl="try")
+
+AC_ARG_ENABLE(perl-cc-checks,
+[  --disable-perl-cc-checks        Disable configure checks for whether Perl's
+                                  C Compiler is compatible with ours when
+                                  embedded Perl is enabled.])
+
+# Common perl mistakes
+AC_ARG_ENABLE(perl-modules,,
+	AC_MSG_ERROR([ Invalid option. Use --with-perl-modules/--without-perl-modules instead ]) )
+AC_ARG_WITH(embedded-perl,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-embedded-perl/--disable-embedded-perl instead ]) )
+AC_ARG_WITH(perl-cc-checks,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-perl-cc-checks/--disable-perl-cc-checks instead ]) )
+
+
+#
+# Python specific
+#
+AC_ARG_WITH(python-modules,
+[
+Python:
+  --with-python-modules[=ARGS]    Install the python bindings along with the
+                                  rest of the net-snmp toolkit.  If ARGS is
+                                  specified, they're passed to the
+                                  setup.py script as arguments.],[
+    install_python="yes"
+    if test "$withval" = "yes"; then
+      PYTHONARGS=""
+    elif test "$withval" = "no"; then
+      PYTHONARGS=""
+      install_python="no"
+    else
+      PYTHONARGS="$withval"
+    fi
+], install_python="no")
+
+# other flags
+
+AC_ARG_WITH(server-send-buf,
+[
+Network Buffers:
+  --with-server-send-buf[=ARG]    Use ARG for the default UDP/TCP send buffer instead
+                                  of the OS buffer for server sockets that are
+                                  created (snmpd, snmptrapd).  
+                                  This default can be overridden in the runtime 
+                                  configuration files.
+                                  The ARG should be the size in bytes],[
+   if test "$withval" = yes; then
+    AC_MSG_ERROR([ Please provide a positive number for the server send buffer ])
+   fi
+   AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_SERVER_SEND_BUF, $withval)],
+   AC_MSG_RESULT([using OS default send buffer size for server sockets]) )
+AC_ARG_ENABLE(server-send-buf,,
+	AC_MSG_ERROR([ Invalid option. Use --with-server-send-buf/--without-server-send-buf instead ]) )
+
+AC_ARG_WITH(server-recv-buf,
+[  --with-server-recv-buf[=ARG]    Similar as previous option, but for receive buffer],[
+  if test "$withval" = yes; then
+    AC_MSG_ERROR([ Please provide a positive number for the server recv buffer ])
+  fi
+  AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_SERVER_RECV_BUF, $withval)],
+  AC_MSG_RESULT([using OS default recv buffer size for server sockets]) )
+AC_ARG_ENABLE(server-recv-buf,,
+	AC_MSG_ERROR([ Invalid option. Use --with-server-recv-buf/--without-server-recv-buf instead ]) )
+
+AC_ARG_WITH(client-send-buf,
+[  --with-client-send-buf[=ARG]    Similar as previous options, but for the
+                                  receive buffer of client sockets],[
+  if test "$withval" = yes; then
+    AC_MSG_ERROR([ Please provide a positive number for the client send buffer ])
+  fi
+  AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_CLIENT_SEND_BUF, $withval)],
+  AC_MSG_RESULT([using OS default send buffer size for client sockets]) )
+AC_ARG_ENABLE(client-send-buf,,
+	AC_MSG_ERROR([ Invalid option. Use --with-client-send-buf/--without-client-send-buf instead ]) )
+
+AC_ARG_WITH(client-recv-buf,
+[  --with-client-recv-buf[=ARG]    Similar as previous options, but for the send buffer],[
+  if test "$withval" = yes; then
+    AC_MSG_ERROR([ Please provide a positive number for the client recv buffer ])
+  fi
+  AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_CLIENT_RECV_BUF, $withval)],
+  AC_MSG_RESULT([using OS default recv buffer size for client sockets]) )
+AC_ARG_ENABLE(client-recv-buf,,
+	AC_MSG_ERROR([ Invalid option. Use --with-client-recv-buf/--without-client-recv-buf instead ]) )
+
+#
+# otherwise prompted information
+#
+AC_ARG_WITH(defaults,
+[
+Miscellaneous:
+  --with-defaults         Use defaults for prompted values.],
+    defaults="yes",defaults="no")
+AC_ARG_ENABLE(defaults,,
+	AC_MSG_ERROR([ Invalid option. Use --with-defaults/--without-defaults instead ]) )
+
+AC_ARG_ENABLE(ucd-snmp-compatibility,
+[  --enable-ucd-snmp-compatibility Install ucd-snmp look-alike headers and libs.
+])
+AC_ARG_WITH(ucd-snmp-compatibility,,
+	AC_MSG_ERROR([ Invalid option. Use --enable-ucd-snmp-compatibility/--disable-ucd-snmp-compatibility instead ]) )
+
+#
+# setup install targets
+#
+if test "x$enable_ucd_snmp_compatibility" = "xyes" ; then	
+  installucdheaders=installucdheaders
+  installucdlibs=installucdlibs
+  AC_MSG_CACHE_ADD(UCD-SNMP compatability:     enabled)
+fi
+AC_SUBST(installucdheaders)
+AC_SUBST(installucdlibs)
+
+# Only define if specifically chosen as --without (i.e., default to true). 
+if test "x$with_root_access" = "xno"; then
+  AC_DEFINE(NETSNMP_NO_ROOT_ACCESS)
+fi
+
+# Only define if specifically chosen as --without (i.e., default to true).
+if test "x$with_kmem_usage" = "xno"; then
+  AC_DEFINE(NETSNMP_NO_KMEM_USAGE)
+fi
+
+# Define unless specifically suppressed (i.e., option defaults to false). 
+if test "x$with_dummy_values" != "xyes"; then
+  AC_DEFINE(NETSNMP_NO_DUMMY_VALUES)
+fi
+
+# Only define if specifically chosen as --without (i.e., default to true). 
+if test "x$with_opaque_special_types" != "xno"; then
+  AC_DEFINE(NETSNMP_WITH_OPAQUE_SPECIAL_TYPES)
+fi
+
+
+# overflow problems with hpux's sh
+# taken from Perl's Configure script 
+
+AC_MSG_CHECKING([if I need to feed myself to ksh])
+if test -f /hp-ux -a -f /bin/ksh; then
+  if (PATH=.; alias -x) >/dev/null 2>&1; then
+    AC_MSG_RESULT(no)
+  else
+    AC_MSG_RESULT(yes)
+    if test "x$1" = "x"; then
+      exec /bin/ksh $0
+    else
+      exec /bin/ksh $0 "$@"
+    fi
+  fi
+else
+  AC_MSG_RESULT(no)
+fi
+
+if test "x$developer" != "xno" -a -f $srcdir/remove-files; then
+  # turn on the developer flag when taken from a SVN checkout (not a release)
+  developer="yes"
+fi
+
+AC_LANG([C])
+AC_PROG_CC
+AC_PROG_CPP
+LINKCC=${LINKCC-"$CC"}
+AC_SUBST(LINKCC)
+AC_AIX
+
+# system check
+AC_CANONICAL_TARGET
+changequote(, )
+PARTIALTARGETOS=`echo $target_os | sed 's/[-._].*//'`
+changequote([, ])
+
+# platform-specific compiler flags
+if test "x$PARTIALTARGETOS" = "xmingw32msvc"; then
+	CFLAGS="$CFLAGS -Dmingw32"
+fi
+
+# platform-specific linker flags
+case $target_os in
+    aix4.2*|aix4.3*|aix5*|aix6*)
+        AC_MSG_CHECKING([what linker flags to add to enable runtime linking on AIX])
+        for ld_flag in $LDFLAGS; do
+            if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+                netsnmp_aix_runtimelinking_flags_ok=yes
+                break
+            fi
+        done
+        if test "X$netsnmp_aix_runtimelinking_flags_ok" != "Xyes"; then
+	    if test "x$GCC" = "xyes"; then
+	        netsnmp_aix_ldflags="-Wl,-brtl"
+	    else
+                netsnmp_aix_ldflags="-brtl"
+	    fi
+            LDFLAGS="$netsnmp_aix_ldflags $LDFLAGS"
+	    AC_MSG_RESULT($netsnmp_aix_ldflags)
+	else
+	    AC_MSG_RESULT([none])
+	fi
+	;;
+    darwin8*|darwin9*)
+        AC_MSG_CHECKING([whether darwin ld might need -flat_namespace])
+	if test -z "$MACOSX_DEPLOYMENT_TARGET"; then
+		LDFLAGS="-flat_namespace $LDFLAGS"
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
+	fi
+	;;
+    *)
+        ;;
+esac
+
+# libtool stuff for shared/static libraries.
+AC_LIBTOOL_DLOPEN
+AC_LIBTOOL_WIN32_DLL
+AC_PROG_LIBTOOL
+AC_SUBST(LIBTOOL_DEPS)
+
+# Checks for programs.
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+AC_PROG_EGREP
+AC_PATH_PROG([PSPROG],ps)
+AC_PATH_PROG([PERLPROG],perl)
+AC_PATH_PROG([PYTHONPROG],python)
+AC_CHECK_PROGS(WHOAMI, whoami logname, whoami)
+AC_CHECK_PROGS(SED,sed gsed)
+AC_CHECK_PROGS(FIND,find)
+AC_PATH_PROG(AUTOCONF, autoconf)
+AC_PATH_PROG(AUTOHEADER, autoheader)
+if test "x$ac_cv_prog_AUTOCONF" = "x"; then
+	AUTOCONF=":"
+	AC_SUBST(AUTOCONF)
+fi
+if test "x$ac_cv_prog_AUTOHEADER" = "x"; then
+	AUTOHEADER=":"
+	AC_SUBST(AUTOHEADER)
+fi
+
+AC_PATH_PROG([UNAMEPROG],uname)
+AC_DEFINE_UNQUOTED(UNAMEPROG,"$UNAMEPROG")
+
+AC_C_CONST
+AC_C_INLINE
+
+
+# get version number.
+AC_MSG_CHECKING([for net-snmp version number])
+VERSION=`grep NetSnmpVersionInfo.*= $srcdir/snmplib/snmp_version.c | sed 's/";.*//;s/.*"//;'`
+
+# create the release version number....  I'm not sure this is used
+# anywhere any longer.
+_release_version=`echo $VERSION | sed 's/";.*//;s/.*"//;s/pre/0./;'`
+changequote(, )
+RELEASEVERSION=`echo $_release_version | sed 's/^\([0-9]\)\.\([0-9]\)/\1:\2:0/'`
+changequote([, ])
+
+AC_SUBST(VERSION)
+AC_SUBST(RELEASEVERSION)
+AC_MSG_RESULT($VERSION)
+AC_MSG_CACHE_ADD(Net-SNMP Version:           $VERSION)
+
+# super type checking
+# WWWXXX
+AC_MSG_CHECKING([for developer gcc flags])
+if test "x$developer" = "xyes" -a "x$GCC" = "xyes"; then
+  DEVFLAGS="-Wall -Winline -Wstrict-prototypes -Wwrite-strings -Wcast-qual -Wno-char-subscripts"
+else
+  DEVFLAGS=""
+fi
+AC_MSG_RESULT($DEVFLAGS)
+AC_SUBST(DEVFLAGS)
+
+#
+# hacks for building outside of the source directory
+#
+# 1) make sure build include paths are before source
+# 2) check for GNU make to use vpath instead of VPATH
+#
+NON_GNU_VPATH="VPATH ="
+GNU_vpath="#vpath"
+#
+# define include paths relative to top_srcdir
+# tweak includes if we're building outside of the source dir
+if test "x$srcdir" = "x."; then
+TOP_INCLUDES=SRC_TOP_INCLUDES
+SNMPLIB_INCLUDES=SRC_SNMPLIB_INCLUDES
+AGENT_INCLUDES=SRC_AGENT_INCLUDES
+HELPER_INCLUDES=SRC_HELPER_INCLUDES
+MIBGROUP_INCLUDES=SRC_MIBGROUP_INCLUDES
+else
+TOP_INCLUDES=BLD_TOP_INCLUDES
+SNMPLIB_INCLUDES=BLD_SNMPLIB_INCLUDES
+AGENT_INCLUDES=BLD_AGENT_INCLUDES
+HELPER_INCLUDES=BLD_HELPER_INCLUDES
+MIBGROUP_INCLUDES=BLD_MIBGROUP_INCLUDES
+make -v -f /dev/null 2>/dev/null | grep GNU >/dev/null
+have_gnu_make=$?
+if test $have_gnu_make -eq 0 ; then
+    NON_GNU_VPATH="#VPATH ="
+    GNU_vpath="vpath"
+fi
+fi
+AC_SUBST(TOP_INCLUDES)
+AC_SUBST(SNMPLIB_INCLUDES)
+AC_SUBST(AGENT_INCLUDES)
+AC_SUBST(HELPER_INCLUDES)
+AC_SUBST(MIBGROUP_INCLUDES)
+AC_SUBST(GNU_vpath)
+AC_SUBST(NON_GNU_VPATH)
+
+
+#
+# Check whether we can use -Ux -Dx=x with the expected behaviour
+#
+AC_MSG_CHECKING([whether to un-define target system token (before redefining)])
+OLD_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="-U$PARTIALTARGETOS -D$PARTIALTARGETOS=$PARTIALTARGETOS"
+
+AC_EGREP_CPP(yes,[[
+#ifdef $PARTIALTARGETOS
+yes
+#endif
+]],
+[PARTIALTARGETFLAGS="-U$PARTIALTARGETOS -D$PARTIALTARGETOS=$PARTIALTARGETOS"
+ AC_MSG_RESULT([yes])],
+[PARTIALTARGETFLAGS="-D$PARTIALTARGETOS=$PARTIALTARGETOS"
+ AC_MSG_RESULT([no])])
+CFLAGS="$CFLAGS $PARTIALTARGETFLAGS"
+CPPFLAGS="$OLD_CPPFLAGS"
+AC_MSG_CACHE_ADD(Building for:               $PARTIALTARGETOS)
+
+
+#
+# check for special includes and pick one
+#
+
+AC_MSG_CHECKING([for system include file])
+changequote(, )
+filebase=$target_os
+# ignore binary format indication
+filebase=`echo $filebase | sed 's/elf//'`
+filebase=`echo $filebase | sed 's/aout//'`
+filebase=`echo $filebase | sed 's/ecoff//'`
+filebase=`echo $filebase | sed 's/coff//'`
+while test "x$filebase" != "x$last" -a ! -f $srcdir/include/net-snmp/system/$filebase.h
+do
+    last=$filebase
+    filebase=`echo $filebase | sed 's/[-._][^-._]*$//'`
+    if test "x$filebase" = "x$last"; then
+	filebase=`echo $filebase | sed 's/[0-9]*$//'`
+    fi
+done
+
+if test "x$filebase" = "x$last"; then
+    filebase="generic"
+fi
+ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE="net-snmp/system/$filebase.h"
+
+changequote([, ])
+AC_MSG_RESULT($ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE)
+AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_INCLUDE_FILE, "$ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE")
+
+# second part, the CPU type.
+
+AC_MSG_CHECKING([for machine-type include file])
+changequote(, )
+filebase=$target_cpu
+while test "x$filebase" != "x$last" -a ! -f $srcdir/include/net-snmp/machine/$filebase.h
+do
+    last=$filebase
+    filebase=`echo $filebase | sed 's/[-._][^-._]*$//'`
+done
+
+if test "x$filebase" = "x$last"; then
+    filebase="generic"
+fi
+ac_cv_NETSNMP_MACHINE_INCLUDE_FILE="net-snmp/machine/$filebase.h"
+changequote([, ])
+AC_MSG_RESULT([$ac_cv_NETSNMP_MACHINE_INCLUDE_FILE])
+
+AC_DEFINE_UNQUOTED(NETSNMP_MACHINE_INCLUDE_FILE, "$ac_cv_NETSNMP_MACHINE_INCLUDE_FILE")
+
+AC_PATH_PROG([CCPATH],$CC)
+# watch out for /usr/ucb/cc on solaris, it doesn't work with this package.
+case $target_os in
+    bsdi*)
+	if test "x$CCPATH" = "x/usr/ucb/cc" -o "x$CCPATH" = "x/usr/bin/cc"; then
+	    AC_MSG_ERROR([
+
+*** The BSDI /usr/ucb/cc compiler does not work with this package.  
+*** Please run configure with --with-cc=gcc
+])
+	fi
+    ;;
+    solaris*)
+	if test "x$CCPATH" = "x/usr/ucb/cc"; then
+	    AC_MSG_ERROR([
+
+*** The solaris /usr/ucb/cc compiler does not work with this package.  
+*** Please put a different compiler in your path first or run
+*** configure with --with-cc=XX, where XX is the compiler you want to use.
+])
+	fi
+    ;;
+esac
+    
+AC_MSG_CHECKING([for additional cpp flags])
+# gcc extra CPPFLAGS
+if test "x$GCC" = "xyes" -a "x$CPP" = "x$CC -E"; then
+  # extra cpp flags for gnu c compiler to allow .in file extensions.
+  EXTRACPPFLAGS="-x c"
+else
+  EXTRACPPFLAGS=""
+fi
+
+# Solaris extra cpp flags.
+if test "x$GCC" != "xyes"; then
+  case $target_os in
+    solaris*) EXTRACPPFLAGS="$EXTRACPPFLAGS -Xs" ;;
+  esac
+fi
+
+AC_SUBST(EXTRACPPFLAGS)
+AC_MSG_RESULT($EXTRACPPFLAGS)
+
+# Prefixes must begin with "/" or [A-Z] followed by colon.
+
+if test "x$prefix" = "xNONE"; then
+  prefix=/usr/local
+fi
+
+fch=`echo $prefix | sed 's/\(.\).*/\1/'`
+if test "x$fch" != "x/" ; then
+   sch=`echo $prefix | sed 's/.\(.\).*/\1/'`
+   if test "x$sch" != "x:" ; then
+      prefix=`pwd`/$prefix
+      echo "adjusting prefix to $prefix"
+   fi
+fi
+
+if test "x$exec_prefix" = "xNONE"; then
+  exec_prefix=$prefix
+fi
+
+fch=`echo $exec_prefix | sed 's/\(.\).*/\1/'`
+if test "x$fch" != "x/" ; then
+   sch=`echo $exec_prefix | sed 's/.\(.\).*/\1/'`
+   if test "x$sch" != "x:" ; then
+      exec_prefix=`pwd`/$exec_prefix
+      echo "adjusting exec_prefix to $exec_prefix"
+   fi
+fi
+
+# Set SNMPLIBPATH & SNMPSHAREPATH
+
+SNMPLIBPATH=""
+tmpset="$libdir/snmp"
+while test "x$tmpset" != "x$SNMPLIBPATH"; do
+  SNMPLIBPATH="$tmpset"
+  eval tmpset="$tmpset"
+done
+AC_DEFINE_UNQUOTED(SNMPLIBPATH,"$SNMPLIBPATH")
+AC_SUBST(SNMPLIBPATH)
+AC_DEFINE_UNQUOTED(SNMPDLMODPATH,"$SNMPLIBPATH/dlmod")
+
+SNMPSHAREPATH=""
+tmpset="$datadir/snmp"
+while test "x$tmpset" != "x$SNMPSHAREPATH"; do
+  SNMPSHAREPATH="$tmpset"
+  eval tmpset="$tmpset"
+done
+AC_DEFINE_UNQUOTED(SNMPSHAREPATH,"$SNMPSHAREPATH")
+AC_SUBST(SNMPSHAREPATH)
+
+if test "x$NETSNMP_DEFAULT_MIBDIRS" = "x"; then
+  NETSNMP_DEFAULT_MIBDIRS="\$HOME/.snmp/mibs:$SNMPSHAREPATH/mibs"
+  if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
+    NETSNMP_DEFAULT_MIBDIRS=`echo "$NETSNMP_DEFAULT_MIBDIRS" | $SED 's/:/;/g'`
+  fi
+  AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_MIBDIRS,"$NETSNMP_DEFAULT_MIBDIRS")
+fi
+AC_SUBST(NETSNMP_DEFAULT_MIBDIRS)
+
+SNMPCONFPATH=""
+tmpset="$sysconfdir/snmp"
+while test "x$tmpset" != "x$SNMPCONFPATH"; do
+  SNMPCONFPATH="$tmpset"
+  eval tmpset="$tmpset"
+done
+AC_DEFINE_UNQUOTED(SNMPCONFPATH,"$SNMPCONFPATH")
+AC_SUBST(SNMPCONFPATH)
+
+AC_CHECK_SIZEOF(short)
+AC_CHECK_SIZEOF(int)
+AC_CHECK_SIZEOF(long)
+AC_CHECK_SIZEOF(long long)
+AC_CHECK_SIZEOF(intmax_t)
+AC_CHECK_TYPES([int8_t,  uint8_t,  u_int8_t])
+AC_CHECK_TYPES([int16_t, uint16_t, u_int16_t])
+AC_CHECK_TYPES([int32_t, uint32_t, u_int32_t])
+AC_CHECK_TYPES([int64_t, uint64_t, u_int64_t])
+AC_CHECK_TYPES([intmax_t, uintmax_t])
+AC_CHECK_TYPES([off64_t])
+AC_CHECK_TYPES([uintptr_t, intptr_t])
+
+# solaris specific type
+AC_CHECK_TYPES([Counter64],,,[#include <inet/mib2.h>])
+
+# guess IPv6 stack type.
+if test "x$enable_ipv6" = "xyes"; then
+	v6type=unknown
+	v6lib=none
+	v6trylibc=no
+
+	AC_MSG_CHECKING([[ipv6 stack type]])
+	for i in v6d toshiba kame inria zeta linux-glibc linux-inet6 generic; do
+		case $i in
+		v6d)
+			AC_EGREP_CPP(yes, [
+#include </usr/local/v6/include/sys/types.h>
+#ifdef __V6D__
+yes
+#endif],
+				[v6type=$i; v6lib=v6;
+				v6libdir=/usr/local/v6/lib;
+				CFLAGS="-I/usr/local/v6/include $CFLAGS"])
+			;;
+		toshiba)
+			AC_EGREP_CPP(yes, [
+#include <sys/param.h>
+#ifdef _TOSHIBA_INET6
+yes
+#endif],
+				[v6type=$i; v6lib=inet6;
+				v6libdir=/usr/local/v6/lib;
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
+			;;
+		kame)
+			AC_EGREP_CPP(yes, [
+#include <netinet/in.h>
+#ifdef __KAME__
+yes
+#endif],
+				[v6type=$i; v6lib=inet6;
+				v6libdir=/usr/local/v6/lib;
+				v6trylibc=yes;
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
+			;;
+		inria)
+			AC_EGREP_CPP(yes, [
+#include <netinet/in.h>
+#ifdef IPV6_INRIA_VERSION
+yes
+#endif],
+				[v6type=$i;
+				v6lib=dummy;
+				v6libdir=none;
+				v6trylibc=yes;
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
+			;;
+		zeta)
+			AC_EGREP_CPP(yes, [
+#include <sys/param.h>
+#ifdef _ZETA_MINAMI_INET6
+A
+yes
+#endif],
+				[v6type=$i; v6lib=inet6;
+				v6libdir=/usr/local/v6/lib;
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
+			;;
+		linux-glibc)
+			AC_EGREP_CPP(yes, [
+#include <features.h>
+#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC_ > 2))
+yes
+#endif],
+				[v6type=$i;
+				v6lib=dummy;
+				v6libdir=none;
+				v6trylibc=yes;
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
+			;;
+		linux-inet6)
+			if test -d /usr/inet6; then
+				v6type=$i
+				v6lib=inet6
+				v6libdir=/usr/inet6/lib
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
+			fi
+			;;
+		generic)
+                        AC_MSG_RESULT([[postponed]])
+			AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+], sockaddr_in6, sin6_addr, no)
+	                AC_MSG_CHECKING([[ipv6 stack type]])
+                        if test "x$ac_cv_struct_sockaddr_in6_has_sin6_addr" = "xyes"; then
+				v6type=$i
+				v6lib=dummy
+				v6libdir=none
+				v6trylibc=yes
+				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"
+                        fi
+			;;
+		esac
+		if test "$v6type" != "unknown"; then
+			break
+		fi
+	done
+
+	if test "$v6lib" != "none"; then
+		if test -d $v6libdir -a -f $v6libdir/lib$v6lib.a; then
+			LIBS="-L$v6libdir -l$v6lib $LIBS"
+			enable_ipv6="yes"
+			AC_MSG_RESULT(["$v6type, $enable_ipv6, using lib$v6lib"])
+		elif test "$v6trylibc" = "yes"; then
+			enable_ipv6="yes"
+			AC_MSG_RESULT(["$v6type, $enable_ipv6, using libc"])
+		else
+			AC_MSG_ERROR(no IPv6 library lib$v6lib.a found.)
+			exit 1
+		fi
+	else
+		enable_ipv6="no"
+		AC_MSG_RESULT(["$v6type, $enable_ipv6"])
+	fi
+fi
+
+#
+# Maybe add library extensions for thread mutex locking.
+#
+
+if test "x$with_res_locks" = "xyes"; then
+  AC_DEFINE(NETSNMP_REENTRANT)
+
+    case $target_os in
+
+    aix*)
+	CC_RUNTIME_ARG="$CC_RUNTIME_ARG -lpthreads"
+	;;
+
+    *)
+	;;
+
+    esac
+fi
+
+#
+# Add platform-specific source files.
+#
+AC_MSG_CHECKING([for platform-specific source])
+other_src_list=""
+other_objs_list=""
+other_lobjs_list=""
+other_agentobjs=""
+other_lagentobjs=""
+other_trapd_objects=""
+
+# Win32 service code
+if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
+  other_src_list="$other_src_list winservice.c winservicerc.rc"
+  other_objs_list="$other_objs_list winservice.o winservicerc.o"
+  other_lobjs_list="$other_lobjs_list winservice.lo winservicerc.lo"
+  other_agentobjs="../snmplib/winservicerc.o"
+  other_lagentobjs="../snmplib/winservicerc.lo"
+  other_trapd_objects="../snmplib/winservicerc.o" 
+fi
+  
+# Win32 pipes
+if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
+  other_src_list="$other_src_list winpipe.c"
+  other_objs_list="$other_objs_list winpipe.o"
+  other_lobjs_list="$other_lobjs_list winpipe.lo"
+fi
+
+AC_SUBST(other_src_list)
+AC_SUBST(other_objs_list)
+AC_SUBST(other_lobjs_list)
+AC_SUBST(other_agentobjs)
+AC_SUBST(other_lagentobjs)
+AC_SUBST(other_trapd_objects)
+
+AC_MSG_RESULT([$other_src_list $other_objs_list $other_lobjs_list])
+AC_MSG_RESULT([$other_agentobjs $other_lagentobjs $other_trapd_objects])
+  
+#
+# Do transport module processing.
+#
+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=""
+transport_callback_disabled=""
+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" = "xcygwin"; then
+  transport_default_list="UDP TCP Callback"
+elif test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then 
+  transport_default_list="UDP TCP Callback"
+else
+  transport_default_list="UDP TCP 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.)
+    elif test "x$i" = "xCallback"; then
+      echo
+      transport_callback_disabled="yes"
+    fi
+  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" = "xcygwin"; then
+        echo
+        AC_MSG_ERROR(Unix domain protocol support unavailable for this platform)
+      elif 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'`
+
+## win32 platforms require inet_ntop etc.
+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
+if test ! -d include/net-snmp; then
+  mkdir include/net-snmp
+fi
+if test ! -d include/net-snmp/agent; then
+  mkdir include/net-snmp/agent
+fi
+if test ! -d include/net-snmp/library; then
+  mkdir include/net-snmp/library
+fi
+if test ! -d include/ucd-snmp; then
+  mkdir include/ucd-snmp
+fi
+
+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
+
+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
+
+AC_SUBST(security_src_list)
+AC_SUBST(security_hdr_list)
+AC_SUBST(security_obj_list) 	 
+AC_SUBST(security_lobj_list)
+AC_MSG_RESULT($new_with_security)
+AC_MSG_CACHE_ADD(SNMPv3 Security Modules:    $new_with_security)
+
+#
+# Handle the special case of KSM to see which crypto API we support
+#
+
+ac_cv_NETSNMP_USE_KERBEROS_MIT=no
+rebuilt_new_with_security=
+already_checked_krb5=no
+
+for sec in $new_with_security
+do
+  if test "x$sec" = "xksm" -a "xyes" = "x$already_checked_krb5"; then
+    continue
+  fi
+  already_checked_krb5=yes
+
+  if test x$sec != xksm; then
+    rebuilt_new_with_security="$rebuilt_new_with_security $sec"
+  else
+    if test no = $trykrb5; then
+      AC_MSG_NOTICE([configured not to use krb5. disabling ksm])
+      continue
+    fi
+
+    AC_PATH_PROG([krb5_config],krb5-config,[no],$krb5path/bin:$PATH)
+
+    if test no != $krb5_config; then
+      CPPFLAGS="$CPPFLAGS `$krb5_config --cflags`"
+      LIBS="$LIBS `$krb5_config --libs`"
+    elif test $krb5path != no; then
+      AC_ADD_SEARCH_PATH($krb5path)
+    else
+      AC_ADD_SEARCH_PATH(/usr/kerberos)
+    fi
+
+    AC_MSG_CHECKING([for krb5])
+    AC_CACHE_VAL(ac_cv_have_krb5,
+      AC_CHECK_LIB(krb5, krb5_init_context,
+	ac_cv_have_krb5=yes, ac_cv_have_krb5=no
+      )
+    )
+
+    if test $ac_cv_have_krb5 = no; then
+      if test "x$askedkrb5" = "xyes"; then
+	AC_MSG_ERROR(Asked to use krb5 but I couldn't find it.)
+      fi
+      AC_MSG_RESULT(no. disabling ksm)
+      continue
+    fi
+      
+    AC_MSG_RESULT(yes)
+    rebuilt_new_with_security="$rebuilt_new_with_security ksm"
+
+    AC_MSG_CHECKING([[for heimdal]])
+    AC_CACHE_VAL(ac_cv_heimdal,
+    [AC_TRY_COMPILE(
+      [#include <krb5.h>],
+      [const char *v = heimdal_version;],
+      ac_cv_heimdal=yes,
+      ac_cv_heimdal=no
+    )])
+    AC_MSG_RESULT($ac_cv_heimdal)
+    if test $ac_cv_heimdal = yes; then
+      AC_DEFINE(NETSNMP_USE_KERBEROS_HEIMDAL)
+      if test no = $krb5_config; then
+	LIBS="$LIBS -lkrb5 -lasn1 -lcom_err -lroken"
+      fi
+    elif test no = $krb5_config; then
+	LIBS="$LIBS -lkrb5 -lcom_err"
+    fi
+
+    AC_MSG_CHECKING([to see which crypto API we need to use])
+    AC_CHECK_FUNC(krb5_c_encrypt,[
+    AC_CACHE_VAL(ac_cv_NETSNMP_USE_KERBEROS_MIT,
+      AC_CHECK_LIB(k5crypto, krb5_init_context,
+	ac_cv_NETSNMP_USE_KERBEROS_MIT=yes, ac_cv_MIT_NEW_CRYPTo=no
+      )
+    )
+
+    if test yes = $ac_cv_NETSNMP_USE_KERBEROS_MIT; then
+      AC_MSG_RESULT(new MIT crypto API)
+      AC_DEFINE(NETSNMP_USE_KERBEROS_MIT)
+      if test no = $krb5_config; then
+	LIBS="$LIBS -lk5crypto"
+      fi
+    else
+      AC_MSG_RESULT(old MIT crypto API)])
+    fi
+  fi
+done
+
+new_with_security=$rebuilt_new_with_security
+
+#
+# generate empty files
+#
+# Create include file list for snmp_vars.h to use.
+mibdir="agent/mibgroup"
+if test ! -d agent; then
+  mkdir agent
+fi
+if test ! -d agent/mibgroup; then
+  mkdir agent/mibgroup
+fi
+j="$mibdir/mib_module_includes.h  $mibdir/agent_module_includes.h \
+   $mibdir/mib_module_inits.h     $mibdir/agent_module_inits.h    \
+   $mibdir/mib_module_shutdown.h  $mibdir/agent_module_shutdown.h \
+   include/net-snmp/agent/mib_module_config.h                     \
+                   include/net-snmp/agent/agent_module_config.h   \
+   $mibdir/mib_module_dot_conf.h  $mibdir/agent_module_dot_conf.h"
+
+for i in $j; do
+  rm -f $i
+  echo "/* This file is automatically generated by configure.  Do not modify by hand. */" > $i
+done
+
+#
+# Do hairy agent module processing.
+#
+AC_MSG_CHECKING([for and configuring mib modules to use])
+
+# set up the CPP command
+MODULECPP="$CPP $PARTIALTARGETFLAGS -I${srcdir}/include -I${srcdir}/agent/mibgroup"
+if test "x$enable_mfd_rewrites" = "xyes"; then
+  MODULECPP="$MODULECPP -DNETSNMP_ENABLE_MFD_REWRITES"
+fi
+
+module_list=""
+mib_module_list=""
+agent_module_list=""
+new_with_mib_modules=`echo $with_mib_modules | sed 's/,/ /g;'`
+new_with_out_mib_modules=`echo $with_out_mib_modules | sed 's/,/ /g;'`
+
+# set up initial module list
+new_module_list="$new_with_mib_modules default_modules"
+
+# minor modifications
+if test "x$enable_agent" = "xno"; then
+   # minimum mib module list for snmptrapd
+   new_module_list="mibII/vacm_vars mibII/vacm_conf utilities/execute $new_with_mib_modules"
+   default_mibs=SNMPv2-MIB:RFC1213-MIB
+   default_mibs_install=" "
+elif test "x$mini_agent" = "xyes"; then
+   # define the mini agent flag to reduce our load list from default_mibs.h
+   MODULECPP="$MODULECPP -DNETSNMP_MINI_AGENT"
+fi
+
+test_modules="$new_module_list"
+new_module_list=""
+
+# remove modules that were explicitly excluded
+for i in $test_modules
+ do
+  if echo " $new_with_out_mib_modules " | grep " $i " > /dev/null; then
+    mib_cfg_msg="mib module '$i' is both included and excluded."
+    AC_MSG_WARN([mib module conflict])
+    if test "x$with_mib_cfg_checks" = "xyes"; then
+      AC_MSG_WARN([user with    : $with_mib_modules])
+      AC_MSG_WARN([final with   : $new_module_list])
+      AC_MSG_WARN([user without : $with_out_mib_modules])
+      AC_MSG_WARN([final without: $new_with_out_mib_modules])
+      AC_MSG_ERROR([$mib_cfg_msg])
+    else
+      AC_MSG_WARN([$mib_cfg_msg It will be excluded])
+      AC_MSG_CACHE_ADD([*** MIB Module warning *** $mib_cfg_msg It has been excluded.])
+    fi
+  else
+    new_module_list="$new_module_list $i"
+  fi
+done
+
+AC_MSG_RESULT([$new_module_list.])
+
+#---------------------
+# loop over module list
+#
+all_warnings=""
+if test "x$with_mib_cfg_debug" = "xyes"; then
+   module_debug=1
+else
+   module_debug=0
+fi
+first_pass=1
+output_to=normal
+
+if test ! -d mk ; then
+  mkdir mk
+fi
+
+
+module_rules=mk/module_rules.mk
+echo "# contents below built automatically by configure; do not edit by hand" > $module_rules
+
+#
+# make file sub-pieces
+#
+for i in module_list_deps mib_module_list_deps agent_module_list_deps ; do
+  eval "$i=mk/${i}.mk"
+  echo "# contents below built automatically by configure; do not edit by hand" > mk/${i}.mk
+done
+
+#
+# variable settings sub-pieces
+#
+for i in module_list_code mib_module_list_code agent_module_list_code module_list mib_module_list agent_module_list ; do
+  eval "$i=mk/${i}.mk"
+  echo "# contents below built automatically by configure; do not edit by hand" > mk/${i}.mk
+  echo "$i= \\" >> mk/${i}.mk
+done
+
+echo $ECHO_N "echo " $ECHO_C > mk/MODULE_LIST.mk
+MODULE_LIST=mk/MODULE_LIST.mk
+
+
+#---------------------
+# until we have an empty module list...
+#   (modules may add new modules, and until all dependencies are done...)
+#
+while test "x$new_module_list" != "x"; do
+  AC_MSG_MODULE_DBG(-e,"\n****************************************************************")
+  AC_MSG_MODULE_DBG("nml: $new_module_list")
+
+  #---------------------
+  # loop over all the modules in the current list
+  #
+  for j in $new_module_list
+    do
+
+    #---------------------
+    # figure out which sub-blocks to build in parts
+    if echo "$j" | grep "=" ; then
+       # build a shared object file
+       # format: sofilename=module1:module2
+       # XXX: currently doesn't do this
+       dl_name=`echo $j | sed 's/=.*//'`
+       dl_names="$dl_names $dl_name"
+       dl_objects=`echo $j | sed 's/.*=//'`
+       module_sublist=`echo $dl_objects | sed 's/:/ /g'`
+       saved_sublist=""
+       saved_sublist_code=""
+       output_to=separate
+
+       # create output files
+       # these actually get nuked later
+       output_inits="agent/mibgroup/${dl_name}-dll.c"
+       output_hdrs="agent/mibgroup/${dl_name}-hdrs.h"
+    else
+       # not a special token invocation
+       module_sublist=$j
+       output_to=normal
+       output_t=
+    fi
+
+    while test "x$module_sublist" != "x" ; do
+
+    #---------------------
+    # loop over all the modules in the sub list
+    for i in $module_sublist
+    do
+
+    AC_MSG_MODULE_DBG(-e "\n================================================================")
+    AC_MSG_MODULE_DBG("testing $i")
+    need_header=0
+
+    #---------------------
+    # build a pseudo include header that includes current config and
+    # system symbols:
+    AC_LANG_CONFTEST(AC_LANG_SOURCE([[
+#include NETSNMP_SYSTEM_INCLUDE_FILE
+#include "$srcdir/$mibdir/$i.h"]]))
+    mv conftest.$ac_ext module_tmp_header.h
+
+    #---------------------
+    # macro: config_belongs_in(ARG)
+    #   ARG: either
+    #     - mib_module   => libnetsnmpmibs   (default)
+    #     - agent_module => libnetsnmpagent
+    #
+    module_type=mib_module
+    if test -f $srcdir/$mibdir/$i.h; then
+      changequote(, )
+      module_type=`$MODULECPP module_tmp_header.h | grep config_belongs_in | sed 's at .*config_belongs_in(\([^)]*\)).*@\1@'`
+      changequote([, ])
+    fi
+    if test "x$module_type" = "x" ; then
+      module_type=mib_module
+    fi
+    if test "x$output_to" = "xnormal" ; then
+     	output_inits="$mibdir/${module_type}_inits.h"
+     	output_hdrs="$mibdir/${module_type}_includes.h"
+    fi
+
+    #--------------------
+    # check for duplicates within the dll system. 
+    #   - if found in a dll, then remove from the dll and add to main
+    dblfix=""
+    for dltest in $dl_names ; do
+      eval mod_files="\"\$dl_${dltest}_files\""
+      if echo " $mod_files " | grep " $i " > /dev/null; then
+        # some dll module has already seen this, unload it from that list
+        # and include it in the core (again)
+        AC_MSG_MODULE_DBG("removing $i from $dltest")
+        mod_files=`echo " $mod_files " | sed "s@ $i @@"`
+        dblfix="__XXX__"
+        eval "dl_${dltest}_files=\"$mod_files\""
+
+        module_list="$module_list $i"
+	echo "read_config.lo: mibgroup/$i.h" >> $module_list_deps
+	if test $module_type = "agent_module" ; then
+ 	    echo "snmp_vars.lo: mibgroup/$i.h" >> $agent_module_list_deps
+        else
+ 	    echo "mib_modules.lo: mibgroup/$i.h" >> $mib_module_list_deps
+        fi
+        eval ${module_type}_list="\"\$${module_type}_list $i\""
+	echo "	$i \\" >> $module_list_code
+	echo $ECHO_N " $i" $ECHO_C >> $MODULE_LIST
+        eval tmpfilevar=\$`echo ${module_type}_list_code`
+        echo "	$i \\" >> $tmpfilevar
+
+	# XXX: add this to the main init list; this is possible not
+	# quite in the right spot any longer but we're stuck with it.
+	# Adding it back to the original ordered spot would be a
+	# nightmare.  Ok, we're already in nightmare code so that
+	# wolud have to be a night-terror.
+        mnm=`echo $i | sed 's/.*\///;s/\.c$//;'`
+	output_inits_tmp="$mibdir/${module_type}_inits.h"
+	echo "  if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits_tmp
+        # XXX: even worse, we loose whether the header is needed or not.
+     	output_hdrs_tmp="$mibdir/${module_type}_includes.h"
+        echo '#include "'"mibgroup/$i.h"'"' >> $output_hdrs_tmp
+      fi
+    done
+
+    #---------------------
+    # make sure module wasn't explicitly excluded, or already added
+    #
+    if test "x$dblfix" != "x" ; then
+      AC_MSG_MODULE_DBG("$i was duplicated -- putting into main")
+    elif echo " $new_with_out_mib_modules " | grep " $i " > /dev/null; then
+      AC_MSG_MODULE_DBG("$i was excluded")
+    elif echo " $module_list " | grep " $i " > /dev/null; then
+      AC_MSG_MODULE_DBG("$i already tested")
+    else
+
+      #---------------------
+      # process modules header, checking for config_ pseudo-macros
+      #
+
+      #---------------------
+      # does the header file for the module exist?
+      #   macros are only processed if it does
+      if test -f $srcdir/$mibdir/$i.h; then
+        new_list=""
+
+        #---------------------
+      	# macro: config_exclude(modules)
+      	#  - lists conflicts with other modules
+      	#    - EG: new MIB implementations exclude old and vice-versa
+      	#
+        # check if $i has any conflicts
+        #
+	new_list_excl=`$MODULECPP module_tmp_header.h | grep config_exclude | sed 's/.*config_exclude(\(.*\)).*/\1/'`
+	if test "x$new_list_excl" != "x"; then
+          AC_MSG_MODULE_DBG("$i excludes $new_list_excl")
+	  for j in $new_list_excl
+	    do
+	    if echo " $module_list $new_mib_module_list $new_list_two " | grep " $j " > /dev/null; then
+              mib_cfg_msg="mib module '$i' excludes module '$j' but another module requires it"
+              AC_MSG_WARN([mib module error])
+              if test "x$with_mib_cfg_checks" = "xyes"; then
+	        AC_MSG_ERROR([$mib_cfg_msg])
+              else
+	        AC_MSG_WARN([$mib_cfg_msg])
+                AC_MSG_CACHE_ADD([*** MIB Module warning *** $mib_cfg_msg])
+              fi
+	    else
+	      new_with_out_mib_modules="$j $new_with_out_mib_modules"
+              AC_MSG_MODULE_DBG("$j added to excluded list")
+	    fi
+	  done
+	fi
+
+        #---------------------
+      	# macro: config_arch_require(ARCH,modules)
+      	#  - lists modules required for a given ARCH
+        #
+        # check if $i has any architecture specific requirements
+        #
+        changequote(, )
+        new_list_arch=`$MODULECPP module_tmp_header.h | grep config_arch_require | sed 's/.*config_arch_require( *\([^ ]*\) *, *\([^ ]*\) *).*/\1-xarchx-\2/'`
+        changequote([, ])
+	if test "x$new_list_arch" != "x"; then
+          for j in $new_list_arch
+	    do
+	    archtest=`echo $j | sed 's/-xarchx-.*//'`
+	    # target_os may have been changed to a #define of 1...
+	    if test "x$archtest" = "x1" -o "x$target_os" = "x$archtest" -o "x$PARTIALTARGETOS" = "x$archtest"; then
+	      new_list="$new_list `echo $j | sed 's/.*-xarchx-//'`"
+              AC_MSG_MODULE_DBG(" $i required adding arch files: `echo $j | sed 's/.*-xarchx-//'`")
+	    fi
+	  done
+	fi
+        AC_MSG_MODULE_DBG(" $i required arch files: $new_list")
+
+        #---------------------
+      	# macro: config_require(modules)
+      	#  - lists modules required for this module
+        #
+        # check if $i has any other required modules
+        #
+	new_list="$new_list `$MODULECPP module_tmp_header.h | grep config_require | sed 's/.*config_require(\(.*\)).*/\1/'`"
+        AC_MSG_MODULE_DBG(" $i will test: $new_list")
+	if test "x$new_list" != "x"; then
+	  for j in $new_list
+	    do
+            AC_MSG_MODULE_DBG(-n " $i wants to add $j: ")
+	    if test ! -f $srcdir/$mibdir/$j.h -a ! -f $srcdir/$mibdir/$j.c; then
+              AC_MSG_WARN([mib module error])
+	      AC_MSG_ERROR([mib module "$i" requires module "$j" but $j.h or $j.c could not be found in $srcdir/$mibdir])
+	    elif echo " $new_with_out_mib_modules " | grep " $j " > /dev/null; then
+	      if test "x$i" != "xdefault_modules" ; then
+                mib_cfg_msg="mib module '$i' requires module '$j' but someone told me to compile without it"
+                AC_MSG_WARN([mib module error])
+                if test "x$with_mib_cfg_checks" = "xyes"; then
+                  AC_MSG_ERROR([$mib_cfg_msg])
+                else
+                  AC_MSG_WARN([$mib_cfg_msg])
+                  AC_MSG_CACHE_ADD([*** MIB Module warning *** $mib_cfg_msg])
+                fi
+#	    elif echo " $module_list $new_list_two $new_module_list " | grep " $j " > /dev/null; then
+#              AC_MSG_MODULE_DBG("  $j included previously")
+              fi
+	    else
+	      new_list_two="$new_list_two $j"
+              AC_MSG_MODULE_DBG("  $j included")
+	    fi
+	  done
+	fi
+
+        #---------------------
+      	# macro: config_add_mib(SOME-MIB)
+      	#  - lists MIBs to be added to the default to-load list.
+        #
+        # check if $i has any mibs to add
+        #
+	new_mibs=`$MODULECPP module_tmp_header.h | grep config_add_mib | sed 's/.*config_add_mib(\(.*\)).*/\1/'`
+	if test "x$new_mibs" != "x"; then
+	    for j in $new_mibs
+		do
+		if test "x`echo :$default_mibs: | grep :$j:`" = "x"; then
+		    default_mibs="$default_mibs:$j"
+		fi
+		if test -f $srcdir/mibs/$j.txt; then
+		    if echo $default_mibs_install | grep " $j " > /dev/null; then
+			    :
+		    else
+			    default_mibs_install="$default_mibs_install $j.txt"
+		    fi
+		fi
+	    done
+	fi # new mibs
+
+        #-------------------
+        # add the current module to the list of stuff to compile, etc.
+        #
+        # add $i to module list
+        #
+        AC_MSG_MODULE_DBG("  $i added (based on $i.h)")
+        module_list="$module_list $i"
+        eval ${module_type}_list="\"\$${module_type}_list $i\""
+
+	echo "read_config.lo: mibgroup/$i.h" >> $module_list_deps
+	if test $module_type = "agent_module" ; then
+ 	    echo "snmp_vars.lo: mibgroup/$i.h" >> $agent_module_list_deps
+        else
+ 	    echo "mib_modules.lo: mibgroup/$i.h" >> $mib_module_list_deps
+        fi
+
+        #-------------------
+        # check for unsupported config_load_mib
+        #
+        if $MODULECPP module_tmp_header.h | grep config_load_mib > /dev/null 2>&1; then
+          AC_MSG_WARN([mib module error])
+      	  AC_MSG_WARN([mib module "$i" uses the "config_load_mib" directive, which is no longer supported.  It probably won't work.])
+        fi # grep config_load_mib
+
+        #-------------------
+        # check for config_parse_dot_conf
+        #  (generally not used any longer; old auto-load a .conf token)
+        #
+        changequote(, )
+        $MODULECPP module_tmp_header.h | grep config_parse_dot_conf | sed 's at .*config_parse_dot_conf(\([^)]*\), *\([^),]*\), *\([^),]*\), *\([^),]*\)).*@register_config_handler("snmpd",\1, \2, \3, \4);@' >> $mibdir/mib_module_dot_conf.h
+	changequote([, ])
+
+        #---------------------
+      	# macro: config_error(error text)
+      	#  - used to signal a configuration error from a module
+        #
+        # check if $i has any errors, or warnings
+        #
+	error=`$MODULECPP module_tmp_header.h | grep config_error | sed 's/.*config_error(\(.*\)).*/\1/'`
+	if test "x$error" != "x"; then
+          echo
+          echo
+          AC_MSG_ERROR([$i: *** $error ***])
+        fi
+
+        #---------------------
+      	# macro: config_warning(warning text)
+      	#  - used to signal a configuration "warning" to be printed to the user
+        #
+	warning=`$MODULECPP module_tmp_header.h | grep config_warning | sed 's/.*config_warning(\(.*\)).*/\1/'`
+	if test "x$warning" != "x"; then
+          all_warnings="$all_warnings $warning
+"
+        fi
+
+      #---------------------
+      # Check for a .c file if the .h didn't exist
+      #
+      elif test -f $srcdir/$mibdir/$i.c; then
+        if echo " $module_list $new_list_two $new_module_list " | grep " $i      " > /dev/null; then
+           AC_MSG_MODULE_DBG("  $i already included")
+        else
+           AC_MSG_MODULE_DBG("  $i added (based on $i.c)")
+	   module_list="$module_list $i"
+	   mib_module_list="$mib_module_list $i"
+        fi
+
+      #---------------------
+      # No .h or .c = error!  (typo?)
+      #
+      else # no $i.h or $i.c
+        AC_MSG_WARN([mib module error])
+	AC_MSG_ERROR([module files $i.h or $i.c could not be found in $srcdir/$mibdir])
+      fi # no $i.h
+
+      #-------------------
+      # check for init/shutdown routines too
+      #
+      has_c_code=no
+      if test -f $srcdir/$mibdir/$i.c; then
+        if test "x$output_to" = "xnormal" ; then
+	  echo "	$i \\" >> $module_list_code
+  	  echo $ECHO_N " $i" $ECHO_C >> $MODULE_LIST
+          eval tmpfilevar=\$`echo ${module_type}_list_code`
+          echo "	$i \\" >> $tmpfilevar
+        else
+          eval "dl_${dl_name}_files=\"\$dl_${dl_name}_files $i\""
+          saved_sublist_code="$saved_sublist_code $i"
+        fi
+        mnm=`echo $i | sed 's/.*\///;s/\.c$//;'`
+        AC_MSG_MODULE_DBG(-e "\nchecking '$srcdir/$mibdir/$i.c' ($mnm/`basename $i`) C file for init/shutdown")
+        if test "x$mnm" != "x`basename $i`"; then
+           AC_MSG_WARN([mib module error])
+	   AC_MSG_ERROR([conflicting names: $mnm != `basename $i`])
+        fi
+        temp_init=`grep init_$mnm $srcdir/$mibdir/$i.c | grep -v _init_$mnm`
+	if test "x$temp_init" != "x"; then
+            AC_MSG_MODULE_DBG(-e "adding init_$mnm() to list")
+            need_header=1
+	    echo "  if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits
+	fi
+	grep shutdown_$mnm $srcdir/$mibdir/$i.c > /dev/null
+        if test $? -eq 0 ; then
+            if test $module_debug -eq 1; then
+              echo -e "\nadding shutdown_$mnm() to list"
+            fi
+            need_header=1
+	    echo "  if (should_init(\"$mnm\")) shutdown_$mnm();" >> $mibdir/${module_type}_shutdown.h
+	fi
+      fi # test -f $srcdir/$mibdir/$i.c
+
+      #-------------------
+      # if there is a shutdown/init list,
+      #
+      if test $need_header -eq 1 ; then
+         echo '#include "'"mibgroup/$i.h"'"' >> $output_hdrs
+      else
+         echo '/*#include "'"mibgroup/$i.h"'"*/' >> $output_hdrs
+      fi
+
+      #-------------------
+      # check for output directory (for building outside of source tree
+      #
+      changequote(, )
+      if test "x`echo $i | sed 's/\///g;'`" != "x$i"; then
+	mnd=`echo $i | sed 's/\/[^/]*$//;'`
+	if test ! -d ./$mibdir/$mnd; then
+	    module_directories="$module_directories ./$mibdir/$mnd"
+	fi
+      fi # module directory test
+      changequote([, ])
+
+      #-------------------
+      # define USING_*_MODULE
+      #
+      changequote(, )
+      sym="`echo ${i} | sed 's/[^a-zA-Z0-9_]/_/g' | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`"
+      changequote([, ])
+      echo "/* Define if compiling with the ${i} module files.  */" >> include/net-snmp/agent/${module_type}_config.h
+      echo "#define USING_${sym}_MODULE 1" >> include/net-snmp/agent/${module_type}_config.h
+      echo " " >> include/net-snmp/agent/${module_type}_config.h
+
+      #-------------------
+      echo $ECHO_N " $i$ECHO_C"
+    fi #
+    done # for i in $module_sublist
+
+    if test "$output_to" = "separate" ; then
+      if test "x$new_list_two" = "x" ; then
+        # no new sub-modules to add to the current target
+        output_to="normal"
+
+        dllcleans="$saved_sublist_o $dllcleans"
+        output_inits=""
+        module_sublist=""
+      else
+        # a module had sub-modules required; keep goin'
+        saved_sublist="$saved_sublist $module_sublist"
+        module_sublist="$new_list_two"
+        new_list_two=""
+      fi
+    else
+      module_sublist=""
+    fi
+
+    done # while module_sublist
+  done # for j in $new_module_list
+
+  # remember the top level modules for later reporting
+  if test $first_pass = 1 ; then
+    # remember this list for later reporting
+    top_level_modules="$new_module_list => $new_list_two"
+    first_pass=0
+  fi
+  #-------------------
+  # if $i added new modules vis config_*,
+  # check those modules for requirements too
+  #
+  # transfer the new module to check list to the normal variable
+  #
+  if test "x$new_list_two" ; then
+    output_to=normal
+  fi
+  new_module_list="$new_list_two"
+  new_list_two=""
+done # while test "x$new_module_list" != "x"; do
+echo ""
+
+#--------------------
+# construct the dll code files and make rules.  This can't be done
+# until now because dulpicate use of a module means it gets removed
+# from the dll and put into the main agent.
+#
+for i in $dl_names ; do
+  eval mod_files="\"\$dl_${i}_files\""
+  echo "components in the $i dll: $mod_files"
+
+  output_inits="agent/mibgroup/${i}-dll.c"
+  output_hdrs="agent/mibgroup/${i}-hdrs.h"
+
+  AC_MSG_MODULE_DBG("creating dll file: $output_inits")
+  for ofile in $output_inits $output_hdrs ; do
+    if test -f $ofile ; then
+      if grep "this file created automatically by configure" $ofile > /dev/null 2>&1 ; then
+  	:
+      else
+  	AC_MSG_ERROR([$ofile already existed ; can't build dll object $i])
+      fi
+    fi
+    cat > $ofile << EOFIF
+/* xDo not edit; this file created automatically by configure */
+EOFIF
+  done
+
+  cat >> $output_inits << EOFOC
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include "${i}-hdrs.h"
+void
+init_$i(void) {
+EOFOC
+
+  # create the .so rule
+  saved_sublist_o=`echo "$mod_files " | sed 's/^ *//g;s/  */.o /g;'`
+
+  # create the rules for each object
+  for j in $mod_files ; do
+    cat >> $module_rules << EOFR
+$j.o: $j.c
+	\$(CC) -c \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ \$<
+
+EOFR
+    mnm=`echo $j | sed 's/.*\///;s/\.c$//;'`
+    echo "  if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits
+  done
+
+  # create the rule for the .so and wrapper code
+  cat >> $module_rules << EOFM
+${i}-dll.o: ${i}-dll.c
+	\$(CC) -c \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ \$<
+
+${i}.so: $saved_sublist_o ${i}-dll.o
+	\$(CC) \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ $saved_sublist_o ${i}-dll.o
+
+EOFM
+        cat >> $output_inits << EOFOCFIN
+}
+EOFOCFIN
+
+done
+
+# cleanup
+rm -f module_tmp_header.h
+
+#-------------------
+# build module lists for Makefiles
+#
+changequote(, )
+
+for i in module_list_o module_list_c module_list_lo mib_module_list_o mib_module_list_c mib_module_list_lo mibgroup_list_o mibgroup_list_lo agent_module_list_o agent_module_list_c agent_module_list_lo agentgroup_list_o agentgroup_list_lo ; do
+  eval "$i=mk/${i}.mk"
+done
+
+sed 's/^module_list_code/module_list_o/;s/\([^=]\)  *\\/\1.o \\/g'  < $module_list_code  > $module_list_o
+sed 's/^module_list_code/module_list_c/;s/\([^=]\)  *\\/\1.c \\/g'  < $module_list_code  > $module_list_c
+sed 's/^module_list_code/module_list_lo/;s/\([^=]\)  *\\/\1.lo \\/g' < $module_list_code  > $module_list_lo
+
+sed 's/^mib_module_list_code/mib_module_list_o/;s/\([^=]\)  *\\/\1.o \\/g'  < $mib_module_list_code  > $mib_module_list_o
+sed 's/^mib_module_list_code/mib_module_list_c/;s/\([^=]\)  *\\/\1.c \\/g'  < $mib_module_list_code  > $mib_module_list_c
+sed 's/^mib_module_list_code/mib_module_list_lo/;s/\([^=]\)  *\\/\1.lo \\/g' < $mib_module_list_code  > $mib_module_list_lo
+
+sed 's/^mib_module_list_o/mibgroup_list_o/;s@\([^ 	]*\)\.o at mibgroup/\1.o at g' < $mib_module_list_o > $mibgroup_list_o
+sed 's/^mib_module_list_lo/mibgroup_list_lo/;s@\([^ 	]*\)\.lo at mibgroup/\1.lo at g' < $mib_module_list_lo > $mibgroup_list_lo
+
+sed 's/^agent_module_list_code/agent_module_list_o/;s/\([^=]\)  *\\/\1.o \\/g'  < $agent_module_list_code  > $agent_module_list_o
+sed 's/^agent_module_list_code/agent_module_list_c/;s/\([^=]\)  *\\/\1.c \\/g'  < $agent_module_list_code  > $agent_module_list_c
+sed 's/^agent_module_list_code/agent_module_list_lo/;s/\([^=]\)  *\\/\1.lo \\/g' < $agent_module_list_code  > $agent_module_list_lo
+
+sed 's/^agent_module_list_o/agentgroup_list_o/;s@\([^ 	]*\)\.o at mibgroup/\1.o at g' < $agent_module_list_o > $agentgroup_list_o
+sed 's/^agent_module_list_lo/agentgroup_list_lo/;s@\([^ 	]*\)\.lo at mibgroup/\1.lo at g' < $agent_module_list_lo > $agentgroup_list_lo
+
+for i in module_list_o module_list_c module_list_lo mib_module_list_o mib_module_list_c mib_module_list_lo mibgroup_list_o mibgroup_list_lo agent_module_list_o agent_module_list_c agent_module_list_lo agentgroup_list_o agentgroup_list_lo ; do
+	# hpux make (at least) doesn't like a trailing \ on the last
+	# line even when the next line contains nothing but
+	# whitespace.
+	lasttoken=`tail -1 mk/$i.mk | awk '{print $1}'`
+	sed "s#$lasttoken \\\\#$lasttoken#" < mk/$i.mk > mk/$i.mk.tmp
+	mv mk/$i.mk.tmp mk/$i.mk
+
+	# add a closing comment
+	echo "" >> mk/$i.mk
+	echo "# end configure generated code" >> mk/$i.mk
+done
+
+changequote([, ])
+
+if test $module_debug -eq 1; then
+   echo -e "\nFinal module list: $module_list_code"
+   exit
+fi
+if test "x$with_mib_cfg_checks" = "xyes"; then
+  AC_MSG_CACHE_ADD([Agent Module list: $module_list_code])
+fi
+AC_SUBST_FILE(MODULE_LIST)
+AC_SUBST_FILE(module_list_c)
+AC_SUBST_FILE(module_list_o)
+AC_SUBST_FILE(module_list_lo)
+AC_SUBST_FILE(mib_module_list_c)
+AC_SUBST_FILE(mib_module_list_o)
+AC_SUBST_FILE(mib_module_list_lo)
+AC_SUBST_FILE(agent_module_list_c)
+AC_SUBST_FILE(agent_module_list_o)
+AC_SUBST_FILE(agent_module_list_lo)
+AC_SUBST_FILE(mibgroup_list_o)
+AC_SUBST_FILE(mibgroup_list_lo)
+AC_SUBST_FILE(agentgroup_list_o)
+AC_SUBST_FILE(agentgroup_list_lo)
+AC_SUBST_FILE(agent_module_list)
+
+#AC_SUBST_FILE(mib_module_list)
+#AC_SUBST(module_list)
+AC_SUBST(default_mibs_install)
+AC_SUBST(dllcleans)
+AC_SUBST_FILE(module_rules)
+AC_SUBST_FILE(module_list_deps)
+AC_SUBST_FILE(mib_module_list_deps)
+AC_SUBST_FILE(agent_module_list_deps)
+
+AC_MSG_RESULT(.)
+
+if test $module_debug -eq 1; then
+AC_MSG_CACHE_ADD(Agent MIB code:            $module_list)
+fi
+AC_MSG_CACHE_ADD(Agent MIB code:            $top_level_modules)
+
+# end hairy agent module processing
+
+AC_MSG_CHECKING([if directories need to be created])
+for i in $module_directories; do
+  $srcdir/mkinstalldirs $i
+done
+AC_MSG_RESULT(.)
+
+#-------------------
+# Define default mibs
+#
+AC_MSG_CHECKING([default mib files to read])
+if test "x$NETSNMP_DEFAULT_MIBS" = "x"; then
+  NETSNMP_DEFAULT_MIBS="$default_mibs"
+fi
+if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
+  # mingw32 and cygwin use ';' as the environment variable separator char
+  ENV_SEPARATOR=";"
+  NETSNMP_DEFAULT_MIBS=`echo "$NETSNMP_DEFAULT_MIBS" | sed 's/:/;/g'`
+  default_mibs=`echo "$default_mibs" | sed 's/:/;/g'`
+else
+  ENV_SEPARATOR=":"
+fi
+AC_SUBST(ENV_SEPARATOR)
+AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_MIBS,"$NETSNMP_DEFAULT_MIBS")
+AC_SUBST(NETSNMP_DEFAULT_MIBS)
+AC_MSG_RESULT($NETSNMP_DEFAULT_MIBS)
+
+AC_MSG_CHECKING([whether we have to build PIC code])
+echo " $module_list " | grep " ucd-snmp/dlmod " >/dev/null
+if test $? -eq 0 ; then
+        LIB_CFLAGS="$LIB_CFLAGS $SHLIB_CFLAGS"
+	AC_MSG_RESULT(yes)
+else
+	DLLIBS=""
+	AC_MSG_RESULT(no)
+fi
+
+#
+# Check for kernel location
+#
+
+AC_CACHE_CHECK(for location of system kernel,ac_cv_KERNEL_LOC,
+[ac_cv_KERNEL_LOC="unknown"
+# First determine if test expects a -f or a -c (character device (SYSV))
+
+if test -c /dev/null; then
+  CFLAG="-c"
+elif test -f /dev/null; then
+  CFLAG="-f"
+else
+  # fall back
+  CFLAG="-f"
+fi
+for i in /vmunix /hp-ux /stand/vmunix /dev/ksyms /kernel/unix /kernel/genunix /netbsd /unix /kernel /bsd /mach_kernel /boot/kernel/kernel
+  do
+  if test -f $i -o $CFLAG $i; then
+    ac_cv_KERNEL_LOC="$i"
+    break;
+  fi
+done
+if test $i = "unknown"; then
+  AC_MSG_WARN([Can't find system kernel...  Setting to /vmunix])
+  ac_cv_KERNEL_LOC="/vmunix"
+fi
+])
+
+AC_DEFINE_UNQUOTED(KERNEL_LOC,"$ac_cv_KERNEL_LOC")
+
+#
+# Check for mount table location
+#
+
+AC_CACHE_CHECK(for mount table location,ac_cv_ETC_MNTTAB,
+[ac_cv_ETC_MNTTAB="unknown"
+for i in /etc/mnttab /etc/mtab /etc/filesystems /dev/mnttab
+  do
+  if test -f $i -o -c $i; then
+    ac_cv_ETC_MNTTAB="$i"
+    break;
+  fi
+done
+])
+
+AC_DEFINE_UNQUOTED(ETC_MNTTAB,"$ac_cv_ETC_MNTTAB")
+
+# Check for /dev/dmem or /dev/drum location
+AC_CACHE_CHECK(for location of swap device,ac_cv_DMEM_LOC,
+[
+# First determine if test expects a -f or a -c (character device (SYSV))
+
+if test -f /dev/kmem; then
+  CTEST="test -f"
+elif test -c /dev/kmem; then
+  CTEST="test -c"
+else
+  # fall back
+  CTEST="test -f"
+fi
+
+if $CTEST /dev/dmem; then
+  ac_cv_DMEM_LOC="/dev/dmem"
+elif $CTEST /dev/drum; then
+  ac_cv_DMEM_LOC="/dev/drum"
+else
+  ac_cv_DMEM_LOC="none"
+fi
+])
+
+if test "x$ac_cv_DMEM_LOC" != "xnone"; then
+  AC_DEFINE_UNQUOTED(DMEM_LOC,"$ac_cv_DMEM_LOC")
+fi
+
+# forced efence turned off.
+# if test "x$developer" = "xyes" -a "x$use_efence" != "xno"; then
+#    use_efence="yes"
+# fi
+
+if test "x$use_efence" = "xyes"; then
+    AC_CHECK_LIB(efence, EF_Exit)
+fi
+
+# Checks for libraries.
+# AC_CHECK_LIB(des, main)
+# AC_CHECK_LIB(m, asin)
+
+AC_ARG_WITH(elf,
+	[AS_HELP_STRING(--without-elf,[use elf libraries])],,
+	[AC_ARG_ENABLE(elf,,
+		[AC_MSG_ERROR([ Invalid option. Use --with-elf/--without-elf instead ])])])
+
+if test "x$with_elf" != "xno"; then
+# nlist is needed for uptime on some sytems in the generic library
+# add hosts which don't use nlist to the blank first line
+case $target_os in
+	linux*) ;;
+	irix*) # Check for nlist in mld (irix)
+		AC_CHECK_LIB(elf, nlist)
+		AC_CHECK_LIB(elf, nlist64)
+		AC_CHECK_LIB(mld, nlist)
+		;;
+	*) # default
+		AC_CHECK_LIB(elf, nlist)
+		;;
+esac
+fi
+ 
+
+# On some platforms (Irix) libnsl and libsocket should not be used.
+AC_CHECK_FUNC(gethostbyname, AC_DEFINE(HAVE_GETHOSTBYNAME),
+	AC_CHECK_LIB(nsl, gethostbyname, AC_DEFINE(HAVE_GETHOSTBYNAME)
+	LIBS="${LIBS} -lnsl"))
+
+# SCO Unixware 7.1.4 finds gethostbyname() in -lsocket
+AC_CHECK_FUNC(gethostbyname, AC_DEFINE(HAVE_GETHOSTBYNAME),
+	AC_CHECK_LIB(socket, gethostbyname, AC_DEFINE(HAVE_GETHOSTBYNAME)
+	LIBS="${LIBS} -lsocket"))
+
+# Solaris kstat
+AC_CHECK_LIB(kstat, kstat_lookup,
+        AC_DEFINE(HAVE_LIBKSTAT, 1, [Define to 1 if you have the `kstat' library (-lkstat).])
+        LNETSNMPLIBS="${LNETSNMPLIBS} -lkstat")
+
+# Check for libraries that the agent needs
+# saving old libraries
+NONAGENTLIBS=$LIBS
+
+# Check for security related functions
+if test "x$tryopenssl" != "xno"; then
+    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")
+    else 
+      if test "x$tryrsaref" != "xno"; then
+         AC_CHECK_LIB(rsaref, RSAPrivateDecrypt)
+         AC_CHECK_LIB(RSAglue, RSA_PKCS1_RSAref)
+      fi
+
+      AC_CHECK_LIB(crypto, EVP_md5, AC_DEFINE(HAVE_LIBCRYPTO, 1, [Define to 1 if you have the `crypto' library (-lcrypto).])
+              LIBCRYPTO="-lcrypto")
+      AC_CHECK_LIB(crypto, AES_cfb128_encrypt, 
+              AC_DEFINE(HAVE_AES_CFB128_ENCRYPT, 1, [Define to 1 if you have the `AES_cfb128_encrypt' function.]))
+    fi
+elif test "x$askedpkcs" = "xyes"; then
+    AC_CHECK_LIB(pkcs11, C_Initialize, AC_DEFINE(HAVE_LIBPKCS11)
+            LIBPKCS11="-lpkcs11")
+fi
+
+LIBS=$NONAGENTLIBS
+
+# check for tcp wrapper support
+_cppflags="${CPPFLAGS}"
+_ldflags="${LDFLAGS}"
+
+AC_ARG_WITH(libwrap,
+[  --with-libwrap[=LIBPATH]  Compile in libwrap (tcp_wrappers) support.],[
+  if test "$with_libwrap" != "no"; then
+    if test "$with_libwrap" != "yes"; then
+      CPPFLAGS="${CPPFLAGS} -I$with_libwrap/include"
+      LDFLAGS="${LDFLAGS} -L$with_libwrap/lib"
+    fi
+
+    _libs=${LIBS}
+    AC_CHECK_HEADER(tcpd.h, ,
+	    AC_MSG_ERROR([Asked to use libwrap but I couldn't find tcpd.h.]))
+
+    LIBS="$LIBS -lwrap"
+	AC_MSG_CHECKING([for TCP wrappers library -lwrap])
+	# XXX: should check for hosts_ctl
+	AC_TRY_LINK([#include <sys/types.h>
+		     #include <tcpd.h>
+		     int allow_severity = 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"
+	    _wraplibs="$_wraplibs -lwrap"],
+        [
+	    AC_MSG_RESULT([no])
+	    # Linux RedHat 6.1 won't link libwrap without libnsl
+	    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>
+		         #include <tcpd.h>
+		         int allow_severity = 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"
+			_wraplibs="$_wraplibs -lwrap -lnsl",
+
+			AC_MSG_RESULT(no)
+			AC_MSG_ERROR(Asked to use libwrap but I couldn't find it.))])
+    LAGENTLIBS="$_wraplibs"
+    CPPFLAGS=${_cppflags}
+    LDFLAGS=${_ldflags}
+    LIBS=${_libs}
+  fi
+])
+
+AC_CHECK_HEADERS(rpm/rpmlib.h rpm/header.h)
+
+AC_CHECK_HEADER(rpm/rpmlib.h,rpmlib_h=yes,rpmlib_h=no)
+AC_CHECK_HEADER(rpm/header.h,rpmheader_h=yes,rpmheader_h=no)
+
+if test "x$rpmheader_h" = "xno" -o "x$rpmlib_h" = "xno" ; then
+  if test "x$with_rpm" = "xyes" ; then
+    AC_MSG_ERROR([Could not find either the RPM header files needed and was specifically asked to use RPM support])
+  else
+    with_rpm=no
+  fi
+fi
+
+#
+# rpm libraries only needed for the host resources mib software
+# installed tables (on linux in particular)
+#
+if test "x$with_rpm" != "xno" && \
+        echo " $module_list " | grep " host/hr_swinst " > /dev/null; then
+  # ARG.  RPM is a real pain.
+  # FWIW librpm.la, librpmio.la, and libpopt.la have correct dependencies.
+  _rpmlibs=""
+
+  # zlib is required for newer versions of rpm
+  _cppflags="${CPPFLAGS}"
+  _ldflags="${LDFLAGS}"
+
+  AC_ARG_WITH(zlib,
+  [  --with-zlib[=DIR]         use libz in DIR],[
+    if test -d "$withval"; then
+      CPPFLAGS="${CPPFLAGS} -I$withval/include"
+      LDFLAGS="${LDFLAGS} -L$withval/lib"
+    fi
+  ])
+
+  # dunno if this is needed for rpm-4.0.x, earlier probably needs.
+  AC_CHECK_HEADER(zlib.h,
+      AC_CHECK_LIB(z, gzread, , CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags}),
+      CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags})
+
+  # two variants of bzip2 need checking.
+  AC_ARG_WITH(bzip2,
+  [  --with-bzip2[=DIR]        use libbz2 in DIR],[
+    if test -d "$withval"; then
+      CPPFLAGS="${CPPFLAGS} -I$withval/include"
+      LDFLAGS="${LDFLAGS} -L$withval/lib"
+    fi
+    if test "x$with_bzip2" != "xno"; then
+  AC_CHECK_LIB(bz2, bzread, [_rpmlibs="$_rpmlibs -lbz2"],
+     AC_CHECK_LIB(bz2, BZ2_bzread, [_rpmlibs="$_rpmlibs -lbz2"],))
+    fi
+  ])
+
+
+  # two variants of db1 need checking.
+  AC_CHECK_LIB(db1, dbopen, [_rpmlibs="-ldb1 $_rpmlibs"],
+     AC_CHECK_LIB(db, dbopen, [_rpmlibs="-ldb $_rpmlibs"]))
+
+  # two variants of db3 need checking.
+  AC_CHECK_LIB(db-3.1, db_create, [_rpmlibs="-ldb-3.1 $_rpmlibs"],
+    AC_CHECK_LIB(db-3.0, db_create, [_rpmlibs="-ldb-3.0 $_rpmlibs"]))
+  
+  # rpm-3.0.5 and later needs popt.
+  AC_CHECK_LIB(popt, poptParseArgvString, [_rpmlibs="-lpopt $_rpmlibs"])
+  
+  # rpm-4.0.x needs rpmio.
+  AC_CHECK_LIB(rpmio, Fopen, [_rpmlibs="-lrpmio $_rpmlibs"],,$_rpmlibs)
+  
+  # now check for rpm using the appropriate libraries.
+  AC_CHECK_LIB(rpm, rpmGetFilesystemList,[
+    AC_DEFINE(HAVE_LIBRPM)
+    LMIBLIBS="-lrpm $_rpmlibs $LMIBLIBS"
+    CFLAGS="$CFLAGS -I/usr/include/rpm"
+  ],[
+    # rpm-4.0.3 librpmdb actually contains what we need.
+    AC_CHECK_LIB(rpmdb, rpmdbOpen,[
+      AC_DEFINE(HAVE_LIBRPM)
+      LMIBLIBS="-lrpmdb -lrpm $_rpmlibs $LMIBLIBS"
+      CFLAGS="$CFLAGS -I/usr/include/rpm"
+    ],,-lrpm $_rpmlibs)
+  ])
+
+  # rpm 4.6 has incompatible API, turn on the legacy one
+  AC_CHECK_DECL([headerGetEntry],
+    : ,
+    AC_DEFINE([_RPM_4_4_COMPAT], [], [Define if you have RPM 4.6 or newer to turn on legacy API]),
+    [[#include <rpm/rpmlib.h>]]
+  )
+fi
+
+# libkvm
+AC_CHECK_LIB(kvm, kvm_read, [_libkvm="-lkvm"])
+AC_CHECK_FUNC(kvm_openfiles, AC_DEFINE(HAVE_KVM_OPENFILES, 1, [Define to 1 if you have the `kvm_openfiles' function.]),
+	AC_CHECK_LIB(kvm, kvm_openfiles, AC_DEFINE(HAVE_KVM_OPENFILES, 1, [Define to 1 if you have the `kvm_openfiles' function.])
+	_libkvm="-lkvm"))
+AC_CHECK_FUNC(kvm_getprocs, AC_DEFINE(HAVE_KVM_GETPROCS, 1, [Define to 1 if you have the `kvm_getprocs' function.]),
+	AC_CHECK_LIB(kvm, kvm_getprocs, AC_DEFINE(HAVE_KVM_GETPROCS, 1, [Define to 1 if you have the `kvm_getprocs' function.])
+	_libkvm="-lkvm"))
+AC_CHECK_FUNC(kvm_getswapinfo, AC_DEFINE(HAVE_KVM_GETSWAPINFO, 1, [Define to 1 if you have the `kvm_getswapinfo' function.]),
+	AC_CHECK_LIB(kvm, kvm_getswapinfo, AC_DEFINE(HAVE_KVM_GETSWAPINFO, 1, [Define to 1 if you have the `kvm_getswapinfo' function.])
+	_libkvm="-lkvm"))
+if test "x${_libkvm}" != "x"; then
+	AC_DEFINE(HAVE_LIBKVM, 1, [Define to 1 if you have the `kvm' library (-lkvm).])
+	LAGENTLIBS="$LAGENTLIBS ${_libkvm}"
+fi
+
+# DYNAMIC MODULE SUPPORT
+AC_CHECK_FUNC(dlopen, AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if you have the `dlopen' function.]),
+	AC_CHECK_LIB(dl, dlopen, AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if you have the `dlopen' function.])
+	AC_DEFINE(HAVE_LIBDL, 1, [Define to 1 if you have the `dl' library (-ldl).])
+	LMIBLIBS="${LMIBLIBS} -ldl"))
+
+# nlist
+AC_CHECK_FUNCS(nlist nlist64 knlist)
+
+# whether we need -ldevstat for diskio MIB
+echo " $module_list " | grep " ucd-snmp/diskio " >/dev/null
+if test $? -eq 0 ; then
+	AC_CHECK_FUNC(getdevs, AC_DEFINE(HAVE_GETDEVS),
+		AC_CHECK_LIB(devstat, getdevs, AC_DEFINE(HAVE_GETDEVS)
+		LMIBLIBS="${LMIBLIBS} -ldevstat"))
+	AC_CHECK_FUNC(getdevs, AC_DEFINE(HAVE_DEVSTAT_GETDEVS),
+		AC_CHECK_LIB(devstat, devstat_getdevs, AC_DEFINE(HAVE_DEVSTAT_GETDEVS)
+		LMIBLIBS="${LMIBLIBS} -ldevstat"))
+fi
+
+# LM-SENSORS-MIB support
+echo " $module_list " | grep " ucd-snmp/lmSensors " > /dev/null
+if test $? -eq 0 ; then
+        AC_MSG_CHECKING([for sensors support])
+        case $target_os in
+          solaris*)
+            AC_CHECK_HEADER(picl.h, LMIBLIBS="${LMIBLIBS} -lpicl",)
+            AC_CHECK_HEADERS(picl.h)
+            ;;
+        *)
+            AC_CHECK_HEADER(sensors/sensors.h,,
+                [AC_MSG_ERROR([asked to use lm_sensors but I couldn't find sensors/sensors.h])])
+            AC_CHECK_LIB(sensors, sensors_get_detected_chips, [
+		   LMIBLIBS="${LMIBLIBS} -lsensors" ;
+                ],
+                [AC_MSG_ERROR([asked to use lm_sensors but I couldn't find -lsensors])])
+            ;;
+        esac
+fi
+
+######################################################################
+# PERL SUPPORT
+######################################################################
+
+#
+# test to see if we can attempt to build embedded Perl so far
+#
+if test "x$embed_perl" = "xtry" ; then
+  if test "x$install_perl" = "xno" ; then
+    install_perl="try"
+  fi
+  if test "x$ac_cv_path_PERLPROG" = "x" -o "x$ac_cv_path_PERLPROG" = "xno" ; then
+    install_perl="no"
+    embed_perl="no"
+  fi
+fi
+
+
+#
+# Embedded Perl specific stuff
+#
+
+# test perl prog
+if test "x$install_perl" != "xno" ; then
+    myperl=$ac_cv_path_PERLPROG
+    if test $myperl = "no" ; then
+      if test "x$install_perl" = "xtry" ; then
+        install_perl="no"
+      else
+        AC_MSG_ERROR(--enable-embedded-perl requested but no perl executable found)
+      fi
+    fi
+fi
+
+# test for shared libraries support
+if test "x$install_perl" != "xno" ; then
+    # embedded Perl requires shared libraries
+    if test "x$enable_shared" != "xyes"; then
+      if test "x$install_perl" = "xtry" ; then
+        install_perl="no"
+      else
+        AC_MSG_ERROR(Perl support requires --enable-shared)
+      fi
+    fi
+fi
+
+if test "x$install_perl" != "xno" ; then
+  AC_MSG_CHECKING([if we are in the source tree so we can install Perl modules])
+  if test "x$srcdir" = "x." -o -d perl/agent/default_store ; then
+    AC_MSG_RESULT([Yes])
+  else
+    if test "x$install_perl" = "xtry" ; then
+      install_perl="no"
+      AC_MSG_RESULT([No])
+    else
+      AC_MSG_ERROR([Perl modules can not be built outside the source directory])
+    fi
+  fi
+fi      
+
+# check the Perl compiler name
+if test "x$install_perl" != "xno" ; then
+    #
+    # Perl cc checks
+    #
+    if test "xenable_perl_cc_checks" != "xno" ; then
+      AC_MSG_CHECKING([for Perl cc])
+      changequote(, )
+      PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'`
+      changequote([, ])
+      if test "x$PERLCC" != "x" ; then
+        AC_MSG_RESULT([$PERLCC])
+      else
+        if test "x$install_perl" = "xtry" ; then
+          install_perl="no"
+        else
+          AC_MSG_ERROR([Could not determine the compiler that was used to build $myperl. Either set the environment variable PERLPROG to a different perl binary or use --without-perl-modules to build without Perl.])
+        fi
+      fi
+fi
+
+# check the Perl compiler compatibility
+if test "x$install_perl" != "xno" ; then
+      AC_MSG_CHECKING([whether $PERLCC is a GNU C compiler])
+      OLDCC=$CC
+      CC="$PERLCC"
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
+#ifndef __GNUC__
+  choke me
+#endif
+      ]])], [perlcc_is_gnu=yes], [perlcc_is_gnu=no])
+      AC_MSG_RESULT([$perlcc_is_gnu])
+      CC=$OLDCC
+      if test "x$GCC" = "xyes" -a "x$perlcc_is_gnu" = "xno" ; then
+      	if test "x$install_perl" = "xtry" ; then
+      	  install_perl="no"
+      	else
+      	  AC_MSG_ERROR([This build is using a GNU C compiler ($CC) while Perl has been compiled with a non-GNU (or non-working) compiler ($PERLCC). This likely won't work for building with Perl support. Either specify a different compiler (--with-cc=PATH), disable this check (--disable-perl-cc-checks) or build without Perl (--without-perl-modules).])
+      	fi
+      fi
+fi
+
+# check if they're both gnu
+if test "x$install_perl" != "xno" ; then
+      if test "x$GCC" != "xyes" -a "x$perlcc_is_gnu" = "xyes" ; then
+      	if test "x$install_perl" = "xtry" ; then
+      	  install_perl="no"
+      	else
+          AC_MSG_ERROR([This build is using a non-GNU C compiler ($CC) while Perl has been compiled with a GNU compiler ($PERLCC). This likely won't work for building with Perl support. Either specify a different compiler (--with-cc=PATH), disable this check (--disable-perl-cc-checks) or build without Perl (--without-perl-modules).])
+      	fi
+      fi
+fi
+
+# we have enough support for installing the modules at least.
+if test "x$install_perl" = "xtry" ; then
+  install_perl="yes"
+else
+  if test "x$install_perl" = "xno" ; then
+    install_perl="no"
+    embed_perl="no"
+  fi
+fi
+
+####################
+# on to embedding...
+
+# check the compiler flags for illegal tokens
+case $target_os in
+    solaris*)
+      if test "x$embed_perl" != "xno" ; then
+          #
+          # Perl cc checks
+          #
+          AC_MSG_CHECKING([for problematic Perl cc flags on Suns])
+          if $myperl -V:ccflags | grep LARGEFILE > /dev/null ; then
+            if test "x$embed_perl" = "xtry" ; then
+              embed_perl="no"
+            else
+              AC_MSG_ERROR([Perl was compiled with LARGEFILE support which will break Net-SNMP. Either set the environment variable PERLPROG to a different perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether.])
+            fi
+          else
+            AC_MSG_RESULT([none known])
+          fi
+      fi
+    ;;
+
+    *)
+    ;;
+esac
+
+
+# check the cflags
+if test "x$embed_perl" != "xno" ; then
+    AC_MSG_CHECKING([for Perl CFLAGS])
+    perlcflags=`$myperl -MExtUtils::Embed -e ccopts`
+    if test "x$perlcflags" != "x" ; then
+      AC_MSG_RESULT([$perlcflags])
+      CFLAGS="$CFLAGS $perlcflags"
+    else
+      if test "x$embed_perl" = "xtry" ; then
+        embed_perl="no"
+      else
+        AC_MSG_ERROR([Could not determine the C compiler flags that were used to build $myperl. Either set the environment variable PERLPROG to a different Perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether.])
+      fi
+    fi
+fi
+
+# check the ldflags
+if test "x$embed_perl" != "xno" ; then
+    AC_MSG_CHECKING([for Perl LDFLAGS])
+    netsnmp_perlldopts=`$myperl -MExtUtils::Embed -e ldopts`
+    if test "x$netsnmp_perlldopts" != "x" ; then
+      AC_MSG_RESULT([$netsnmp_perlldopts])
+    else
+      if test "x$embed_perl" = "xtry" ; then
+        embed_perl="no"
+      else
+        AC_MSG_ERROR([Could not determine the linker options that were used to build $myperl. Either set the environment variable PERLPROG to a different Perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether.])
+      fi
+    fi
+    if test "x$enable_as_needed" = "xyes" ; then
+      # link *libraries* with libperl
+      PERLLDOPTS_FOR_LIBS="$netsnmp_perlldopts"
+      # Perl ccdlflags (RPATH to libperl, hopefully)
+      AC_MSG_CHECKING([for Perl CCDLFLAGS])
+      changequote(, )
+      netsnmp_perlccdlflags=`$myperl -V:ccdlflags | $myperl -n -e 'print $1 '"if (/^\s*ccdlflags='([^']+)';/);"`
+      changequote([, ])
+      AC_MSG_RESULT([$netsnmp_perlccdlflags])
+      PERLLDOPTS_FOR_APPS="$netsnmp_perlccdlflags"
+    else
+      # link *applications* against libperl
+      PERLLDOPTS_FOR_APPS="$netsnmp_perlldopts"
+    fi
+fi
+
+# check needed functions
+if test "x$embed_perl" != "xno" ; then
+    OLDLIBS="$LIBS"
+    LIBS="$LIBS $netsnmp_perlldopts"
+
+    # newer perl vs older perl call functions
+    AC_CHECK_FUNCS(eval_pv)
+
+    # sigh: this has a CAPITAL P in Perl, which ends up being the same
+    # autoconf define as the lower case so we have to treat them *BOTH*
+    # specially.  Wonderful.
+    AC_CHECK_FUNC(perl_eval_pv, AC_DEFINE(HAVE_PERL_EVAL_PV_LC))
+    AC_CHECK_FUNC(Perl_eval_pv, AC_DEFINE(HAVE_PERL_EVAL_PV_UC))
+
+    LIBS="$OLDLIBS"
+
+
+    if test "x$ac_cv_func_perl_eval_pv" != "xyes" -a "x$ac_cv_func_Perl_eval_pv" != "xyes" -a "x$ac_cv_func_eval_pv" != "xyes" ; then
+      if test "x$embed_perl" = "xtry" ; then
+        embed_perl="no"
+      else
+        AC_MSG_ERROR([Could not find the eval_pv, perl_eval_pv or Perl_eval_pv functions needed for embedded Perl support. Either set the environment variable PERLPROG to a different perl binary or use --disable-embedded-perl to turn off embedded Perl functionality altogether.])
+      fi
+    else
+      AC_DEFINE(NETSNMP_EMBEDDED_PERL)
+      OTHERAGENTLIBOBJS="snmp_perl.o"
+      OTHERAGENTLIBLOBJS="snmp_perl.lo"
+
+      EMBEDPERLINSTALL="embedperlinstall"
+      EMBEDPERLUNINSTALL="embedperluninstall"
+      # yay, we got here!
+      embed_perl="yes"
+    fi
+else
+      EMBEDPERLINSTALL=""
+      EMBEDPERLUNINSTALL=""
+      embed_perl="no"
+    fi
+fi
+AC_SUBST(EMBEDPERLINSTALL)
+AC_SUBST(EMBEDPERLUNINSTALL)
+AC_SUBST(PERLLDOPTS_FOR_LIBS)
+AC_SUBST(PERLLDOPTS_FOR_APPS)
+
+# embedded Perl results
+AC_MSG_CHECKING([for potential embedded Perl support])
+if test "x$embed_perl" != "xyes" ; then
+  AC_MSG_CACHE_ADD(Embedded Perl support:      disabled)
+  AC_MSG_RESULT([disabled])
+else
+  AC_MSG_CACHE_ADD(Embedded Perl support:      enabled)
+  AC_MSG_RESULT([enabled])
+fi
+
+# install Perl module results
+PERLTARGS=""
+PERLINSTALLTARGS=""
+PERLUNINSTALLTARGS=""
+AC_MSG_CHECKING([if we can install the Perl modules])
+if test "x$install_perl" = "xyes" ; then
+    PERLTARGS="perlmodules"
+    PERLINSTALLTARGS="perlinstall"
+    PERLUNINSTALLTARGS="perluninstall"
+    if test "x$embed_perl" = "xyes" ; then
+      AC_MSG_CACHE_ADD(SNMP Perl modules:          building -- embeddable)
+      AC_MSG_RESULT([yes -- and embeddable])
+    else
+      AC_MSG_CACHE_ADD(SNMP Perl modules:          building -- not embeddable)
+      AC_MSG_RESULT([yes -- not embeddable])
+    fi
+else
+    AC_MSG_RESULT([no])
+    AC_MSG_CACHE_ADD(SNMP Perl modules:          disabled)
+fi
+AC_SUBST(PERLTARGS)
+AC_SUBST(PERLINSTALLTARGS)
+AC_SUBST(PERLUNINSTALLTARGS)
+AC_SUBST(PERLARGS)
+
+
+
+# reset libs
+AGENTLIBS=$LIBS
+LIBS=$NONAGENTLIBS
+
+
+
+# python support
+PYTHONTARGS=""
+PYTHONINSTALLTARGS=""
+PYTHONUNINSTALLTARGS=""
+PYTHONCLEANTARGS=""
+AC_MSG_CHECKING([if we should install the python bindings])
+if test "x$install_python" = "xyes" ; then
+    PYTHONTARGS="pythonmodules"
+    PYTHONINSTALLTARGS="pythoninstall"
+    PYTHONUNINSTALLTARGS="pythonuninstall"
+    PYTHONCLEANTARGS="pythonclean"
+    AC_MSG_CACHE_ADD(SNMP Python modules:        building for $PYTHONPROG)
+    AC_MSG_RESULT([yes])
+else
+    AC_MSG_CACHE_ADD(SNMP Python modules:        disabled)
+    AC_MSG_RESULT([no])
+fi
+AC_SUBST(PYTHONTARGS)
+AC_SUBST(PYTHONINSTALLTARGS)
+AC_SUBST(PYTHONUNINSTALLTARGS)
+AC_SUBST(PYTHONCLEANTARGS)
+AC_SUBST(PYTHONARGS)
+
+
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_HEADER_DIRENT
+AC_HEADER_SYS_WAIT
+AC_CHECK_HEADERS(stdarg.h string.h fcntl.h limits.h sys/file.h sys/ioctl.h syslog.h unistd.h sys/dmap.h machine/pte.h xti.h sys/sockio.h sys/socket.h sys/param.h sys/uio.h)
+# at least Solaris 9 needs sys/socket.h to compile sys/socketvar.h
+AC_CHECK_HEADERS(sys/socketvar.h,,,
+AC_INCLUDES_DEFAULT([])
+[
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+])
+# at least OpenBSD 3.4 needs sys/param.h (MAXPATHLEN) to compile sys/swap.h
+AC_CHECK_HEADERS(sys/swap.h,,,
+AC_INCLUDES_DEFAULT([])
+[
+#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+])
+AC_CHECK_HEADERS(sys/timeout.h sys/un.h fstab.h sys/fs.h mtab.h ufs/fs.h sys/fixpoint.h machine/param.h sys/vm.h vm/vm.h sys/vmmeter.h sys/vmparam.h sys/vmmac.h sys/vmsystm.h sys/time.h sys/times.h sys/statvfs.h sys/vfs.h sys/mnttab.h sys/select.h mntent.h sys/mntent.h kstat.h utsname.h sys/utsname.h sys/cdefs.h getopt.h locale.h pthread.h sys/loadavg.h regex.h linux/tasks.h pwd.h grp.h utmpx.h)
+# Network headers
+AC_CHECK_HEADERS(arpa/inet.h netinet/in_systm.h netinet/in.h netinet/ip_var.h netinet/tcp.h netinet/tcpip.h netinet/udp.h net/if.h netinet/in_var.h netinet/ip.h netinet/ip_icmp.h net/if_arp.h net/if_mib.h net/if_var.h netinet/if_ether.h netinet/tcp_timer.h netinet/tcp_var.h netinet/udp_var.h netinet/icmp_var.h netdb.h net/route.h,,,
+[[
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_TIMEOUT_H
+#include <sys/timeout.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_SYS_SOCKETVAR_H
+#include <sys/socketvar.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#if HAVE_NETINET_IN_SYSTM_H
+#include <netinet/in_systm.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_H
+#include <netinet/ip.h>
+#endif
+#if HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+#if HAVE_NETINET_IP_ICMP_H
+#include <netinet/ip_icmp.h>
+#endif
+#if HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_TCP_TIMER_H
+#include <netinet/tcp_timer.h>
+#endif
+]])
+# UFS headers
+AC_CHECK_HEADERS(ufs/ufs/dinode.h ufs/ufs/quota.h ufs/ufs/inode.h ufs/ffs/fs.h,,,
+[[
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_UFS_UFS_DINODE_H
+#include <ufs/ufs/dinode.h>
+#endif
+#if HAVE_UFS_UFS_QUOTA_H
+#include <ufs/ufs/quota.h>
+#endif
+]])
+# FreeBSD required headers
+AC_CHECK_HEADERS(malloc.h net/if_dl.h sys/sysctl.h stdlib.h net/if_types.h sys/queue.h osreldate.h machine/types.h sys/user.h sys/proc.h sys/mbuf.h sys/mount.h sys/dkstat.h sys/conf.h,,,
+[[
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+]])
+# Linux
+AC_CHECK_HEADERS(netinet/tcp_fsm.h sys/protosw.h nlist.h ioctls.h asm/page.h asm/types.h netipx/ipx.h pci/pci.h)
+# Solaris
+AC_CHECK_HEADERS(inet/mib2.h)
+# NetBSD required headers
+AC_CHECK_HEADERS(kvm.h sys/pool.h uvm/uvm_param.h uvm/uvm_extern.h vm/vm_param.h vm/vm_extern.h)
+# BSDi2 headers
+AC_CHECK_HEADERS(vm/swap_pager.h,,,
+[[
+#if HAVE_VM_VM_H
+#include <vm/vm.h>
+#endif
+]])
+# linux ethtool
+# requires special hacks to get around various problems on older linux kernels.
+# major ugh....
+AC_CHECK_HEADERS([linux/ethtool.h],,,
+[[
+#include <linux/types.h>
+typedef __u64 u64;         /* hack, so we may include kernel's ethtool.h */
+typedef __u32 u32;         /* ditto */
+typedef __u16 u16;         /* ditto */
+typedef __u8 u8;           /* ditto */
+]])
+# BSDi3 headers
+AC_CHECK_HEADERS(sys/stat.h)
+# BSDi3/IRIX headers
+# at least IRIX 6.5 needs _KMEMUSER and sys/types.h (mprot_t) to compile 
+#   sys/vnode.h
+AC_CHECK_HEADERS(sys/vnode.h,,,
+[
+#define _KMEMUSER 1
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+])
+# at least IRIX 6.5 needs sys/sema.h (mrlock_t) to compile sys/hashing.h
+AC_CHECK_HEADERS(sys/sema.h)
+AC_CHECK_HEADERS(sys/hashing.h,,,
+AC_INCLUDES_DEFAULT([])
+[
+#if HAVE_SYS_SEMA_H
+#include <sys/sema.h>
+#endif
+])
+# more IRIX headers
+AC_CHECK_HEADERS(sys/tcpipstats.h sys/sysmp.h sys/systeminfo.h sys/sysget.h)
+# AIX system configuration
+AC_CHECK_HEADERS(sys/systemcfg.h)
+# from smux stuff
+AC_CHECK_HEADERS(err.h sys/filio.h sgtty.h)
+# AIX needs this for statfs func
+AC_CHECK_HEADERS(sys/statfs.h)
+# for HostRes (HP-UX at least)
+AC_CHECK_HEADERS(sys/dkio.h sys/diskio.h sys/pstat.h linux/hdreg.h pkglocs.h)
+# for HostRes (Solaris 2.x at least)
+AC_CHECK_HEADERS(pkginfo.h,
+    AC_CHECK_LIB(adm, pkginfo, AC_DEFINE(HAVE_PKGINFO)
+    LMIBLIBS="${LMIBLIBS} -ladm"))
+
+case $target_os in
+    aix*) # AIX perfstat library, needed for CPU/memory statistics
+        AC_CHECK_HEADERS(libperfstat.h,
+            AC_CHECK_LIB(perfstat, perfstat_cpu_total, AC_DEFINE(HAVE_PERFSTAT)
+            LMIBLIBS="${LMIBLIBS} -lperfstat"), AC_MSG_ERROR([
+
+*** To monitor CPU/memory values in AIX you need to install
+*** libperfstat which can be found in bos.perf
+]))
+        ;;
+    hpux*) # HP-UX agent needs open_mib
+        AC_CHECK_LIB(nm, open_mib, AC_DEFINE(HAVE_LIBNM)
+            LMIBLIBS="${LMIBLIBS} -lnm")
+        ;;
+    *)
+        ;;
+esac
+# WIN32
+# (mingw32 must link winsock explicitly)
+AC_CHECK_HEADERS(winsock.h,[
+        AGENTLIBS="${AGENTLIBS} -liphlpapi"
+        case $target_os in
+                mingw*)
+                        LIBS="${LIBS} -lregex -lws2_32"
+                        AGENTLIBS="${AGENTLIBS} -lregex -lws2_32"
+                        ;;
+                *)
+                        ;;
+        esac
+])
+AC_CHECK_HEADERS(io.h)
+# SCO
+AC_CHECK_HEADERS(sys/stream.h)
+# KAME
+AC_CHECK_HEADERS(netinet/ip6.h netinet6/in6_var.h netinet6/in6_pcb.h netinet6/ip6_var.h netinet6/tcp6.h netinet6/tcp6_fsm.h netinet6/nd6.h netinet6/tcp6_timer.h netinet6/tcp6_var.h,,,
+[[
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_QUEUE_H
+#include <sys/queue.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP6_H
+#include <netinet/ip6.h>
+#endif
+]])
+# DYNAMIC MODULE SUPPORT
+AC_CHECK_HEADERS(dlfcn.h)
+# table_array helper support
+AC_CHECK_HEADERS(search.h)
+
+# RPM subdirectory path (sigh)
+if test "x$with_rpm" != "xno" && \
+        echo " $module_list " | grep " host/hr_swinst " > /dev/null; then
+  AC_CHECK_HEADERS(rpm/rpmdb.h)
+fi
+
+# OpenBSD 2.6 needs netinet/in.h before netinet/in_pcb.h
+AC_MSG_CHECKING([[for netinet/in_pcb.h]])
+AC_CACHE_VAL(cv_have_netinet_in_pcb_h,
+[ AC_TRY_CPP( [
+#include <netinet/in.h>
+#include <netinet/in_pcb.h>
+], cv_have_netinet_in_pcb_h=yes, cv_have_netinet_in_pcb_h=no)])
+AC_MSG_RESULT($cv_have_netinet_in_pcb_h)
+if test $cv_have_netinet_in_pcb_h = yes; then
+  AC_DEFINE(HAVE_NETINET_IN_PCB_H)
+fi
+
+# NetBSD needs machine/types.h before sys/disklabel.h
+AC_MSG_CHECKING([[for sys/disklabel.h]])
+AC_CACHE_VAL(cv_have_sys_disklabel_h,
+[ AC_TRY_CPP( [
+#include <machine/types.h>
+#include <sys/disklabel.h>
+], cv_have_sys_disklabel_h=yes, cv_have_sys_disklabel_h=no)])
+AC_MSG_RESULT($cv_have_sys_disklabel_h)
+if test $cv_have_sys_disklabel_h = yes; then
+  AC_DEFINE(HAVE_SYS_DISKLABEL_H)
+fi
+
+# OpenSSL
+AC_CHECK_HEADERS(openssl/hmac.h openssl/evp.h openssl/aes.h openssl/des.h openssl/dh.h)
+AC_CHECK_HEADERS(security/cryptoki.h)
+
+# Printing
+AC_PATH_PROG([LPSTAT_PATH],lpstat)
+if test x$LPSTAT_PATH != x; then
+    AC_DEFINE_UNQUOTED(LPSTAT_PATH,"$LPSTAT_PATH")
+    AC_DEFINE(HAVE_LPSTAT)
+fi
+AC_CHECK_FUNCS(cgetnext)
+if test -r /etc/printcap; then
+    AC_DEFINE(HAVE_PRINTCAP)
+fi
+
+AC_MSG_CHECKING([for authentication support])
+useopenssl=no
+usepkcs=no
+if test "x$ac_cv_lib_pkcs11_C_Initialize" != "xyes" -o "x$ac_cv_header_security_cryptoki_h" != "xyes"; then
+    if test "x$askedpkcs" = "xyes"; then
+       AC_MSG_ERROR(Asked to use PKCS11 but I couldn't find it.)
+    fi
+else
+    if test "x$askedpkcs" = "xyes"; then
+        usepkcs=yes
+    fi
+fi
+
+if test "x$ac_cv_lib_crypto_EVP_md5" != "xyes" -o "x$ac_cv_header_openssl_hmac_h" != "xyes" -o "x$ac_cv_header_openssl_hmac_h" != "xyes"; then
+    if test "x$askedopenssl" = "xyes"; then
+        AC_MSG_ERROR(Asked to use OpenSSL but I couldn't find it.)
+    fi
+else
+    if test "x$askedopenssl" = "xyes"; then
+        useopenssl=yes
+    elif test "x$tryopenssl" = "xyes"; then
+        if test "x$usepkcs" != "xyes"; then
+            useopenssl=yes
+        fi
+    fi
+fi
+
+if 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
+            encrmodes="DES AES"
+	else
+	    encrmodes="DES"
+	fi
+    else
+        encrmodes="[disabled]"
+    fi
+    AC_DEFINE(NETSNMP_USE_OPENSSL)
+    LNETSNMPLIBS="$LNETSNMPLIBS $LIBCRYPTO"
+    AC_MSG_RESULT(OpenSSL Support)
+elif test "x$usepkcs" != "xno" ; then
+    authmodes="MD5 SHA1"
+    if test "x$enable_privacy" != "xno" ; then
+        encrmodes="DES"
+    else
+        encrmodes="[disabled]"
+    fi
+    AC_DEFINE(NETSNMP_USE_PKCS11)
+    LNETSNMPLIBS="$LNETSNMPLIBS $LIBPKCS11"
+    AC_MSG_RESULT(PKCS11 Support)
+elif test "x$enable_md5" != "xno"; then
+    authmodes="MD5"
+    encrmodes=""
+    AC_DEFINE(NETSNMP_USE_INTERNAL_MD5)
+    AC_MSG_RESULT(Internal MD5 Support)
+fi
+if test "x$enable_md5" = "xno"; then
+    authmodes=`echo $authmodes | sed 's/MD5 *//;'`
+fi
+AC_SUBST(LNETSNMPLIBS)
+AC_SUBST(LAGENTLIBS)
+
+AC_MSG_CACHE_ADD(Authentication support:     $authmodes)
+AC_MSG_CACHE_ADD(Encryption support:         $encrmodes)
+
+if test "x$all_warnings" != "x"; then
+    AC_MSG_CACHE_ADD(WARNING: $all_warnings)
+fi
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_TYPE_OFF_T
+AC_TYPE_PID_T
+AC_HEADER_TIME
+
+# this should use AC_CHECK_TYPE, but it's broken at least in 2.13-14
+# so we do it by hand.
+AC_MSG_CHECKING([for socklen_t])
+AC_CACHE_VAL(ac_cv_type_$1,
+[AC_EGREP_CPP([socklen_t@<:@^a-zA-Z_0-9@:>@],
+[#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif], [ac_cv_type_socklen_t=yes], [ac_cv_type_socklen_t=no])])
+
+AC_MSG_RESULT([$ac_cv_type_socklen_t])
+if test $ac_cv_type_socklen_t = yes; then
+  AC_DEFINE(HAVE_SOCKLEN_T)
+fi
+
+# AIX keeps in_addr_t in /usr/include/netinet/in.h
+AC_MSG_CHECKING([for in_addr_t])
+AC_CACHE_VAL(ac_cv_type_$1,
+[AC_EGREP_CPP([in_addr_t@<:@^a-zA-Z_0-9@:>@],
+[#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif], [ac_cv_type_in_addr_t=yes], [ac_cv_type_in_addr_t=no])])
+
+AC_MSG_RESULT([$ac_cv_type_in_addr_t])
+if test $ac_cv_type_in_addr_t = yes; then
+  AC_DEFINE(HAVE_IN_ADDR_T)
+fi
+
+# Older versions of MinGW do not define ssize_t in sys/types
+AC_MSG_CHECKING([for ssize_t])
+AC_CACHE_VAL(ac_cv_type_$1,
+[AC_EGREP_CPP([ssize_t@<:@^a-zA-Z_0-9@:>@],
+[#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif], [ac_cv_type_ssize_t=yes], [ac_cv_type_ssize_t=no])])
+
+AC_MSG_RESULT([$ac_cv_type_ssize_t])
+if test $ac_cv_type_ssize_t = yes; then
+  AC_DEFINE(HAVE_SSIZE_T, 1, [Define if type ssize_t is available])
+fi
+
+# Check ps args
+AC_CACHE_CHECK([for correct flags to ps], ac_cv_ps_flags,
+[if test "`($PSPROG -e 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+  ac_cv_ps_flags="-e"
+elif test "`($PSPROG -el 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+  ac_cv_ps_flags="-el"
+elif test "`($PSPROG acx 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+  ac_cv_ps_flags="acx"
+elif test "`($PSPROG -acx 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+  ac_cv_ps_flags="-acx"
+elif test "`($PSPROG -o pid,tt,state,time,ucomm 2>&1) | $EGREP ' ps *$' | awk '{print $NF}'`" = "ps" ; then
+  ac_cv_ps_flags="-o pid,tt,state,time,ucomm"
+elif test "`($PSPROG ax 2>&1) | $EGREP ' (ps) *$' | awk '{print $NF}'`" = "ps" ; then
+  ac_cv_ps_flags="ax"
+elif test "x$PARTIALTARGETOS" = "xcygwin"; then
+  ac_cv_ps_flags="-e"
+elif test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then 
+  ac_cv_ps_flags="-e"
+else
+  AC_MSG_WARN([Unable to determine valid ps flags...  defaulting...])
+  ac_cv_ps_flags="-acx"
+fi
+])
+
+PSCMD="$PSPROG $ac_cv_ps_flags"
+AC_SUBST(PSCMD)
+AC_DEFINE_UNQUOTED(PSCMD, "$PSPROG $ac_cv_ps_flags")
+
+# Checks for byte order
+if test $cross_compiling = yes; then
+  if test x$with_endianness = xbig; then
+    AC_DEFINE(WORDS_BIGENDIAN)
+  elif test -z $with_endianness; then
+    AC_MSG_ERROR([You are cross-compiling, but you have not specified the target's endianness])
+  fi
+else
+  if test $with_endianness; then
+    AC_MSG_ERROR([Endianness has been specified, but you are not cross-compiling.])
+  fi
+  AC_C_BIGENDIAN
+fi
+
+# Checks for library functions.
+AC_FUNC_ALLOCA
+AC_PROG_GCC_TRADITIONAL
+AC_FUNC_MEMCMP
+AC_TYPE_SIGNAL
+AC_FUNC_GETMNTENT
+AC_CHECK_FUNCS(setmntent hasmntopt gethostname uname gettimeofday select socket strtol strtoul strlcpy)
+AC_CHECK_FUNCS(strchr strtok_r strdup memcpy memmove index bcopy strcasestr regcomp)
+AC_CHECK_FUNCS(signal setsid sigset sigblock sighold strerror setenv vsnprintf snprintf)
+AC_CHECK_FUNCS(sigaction)
+AC_CHECK_FUNCS(random lrand48 rand)
+AC_CHECK_FUNCS(execv system fork getpid strncasecmp sigalrm)
+AC_CHECK_FUNCS(lseek64 pread64)
+if test "x$with_rpm" != "xno" && \
+        echo " $module_list " | grep " host/hr_swinst " > /dev/null; then
+  OLDLIBS=$LIBS
+  LIBS=$LMIBLIBS
+  AC_CHECK_FUNCS(rpmGetPath)
+  LIBS=$OLDLIBS
+fi
+
+AC_CHECK_FUNCS(getloadavg)
+AC_CHECK_FUNCS(getaddrinfo getipnodebyname gai_strerror)
+# BSDi2 functions differ
+AC_CHECK_FUNCS(statvfs statfs)
+AC_CHECK_FUNCS(getdtablesize)
+# freebsd2 checks
+AC_CHECK_FUNCS(getfsstat)
+AC_CHECK_FUNCS(usleep)
+AC_CHECK_FUNCS(setlocale)
+AC_CHECK_FUNCS(tcgetattr)
+AC_CHECK_FUNCS(if_nameindex if_freenameindex)
+# solaris checks
+AC_CHECK_FUNCS(getpagesize)
+AC_CHECK_FUNCS(mkstemp)
+AC_CHECK_FUNCS(getpwnam getgrnam setgid setuid setgroups)
+# High resolution alarm support
+AC_CHECK_FUNCS(setitimer)
+# functions to support the clock.
+AC_CHECK_FUNCS(mktime stime times sysconf)
+# missing from hp-ux
+AC_CHECK_FUNCS(if_nametoindex)
+# missing from MinGW
+AC_CHECK_FUNCS(chown localtime_r)
+
+AC_MSG_CHECKING([[for SIOCGIFADDR in sys/ioctl.h]])
+AC_CACHE_VAL(cv_sys_ioctl_h_has_SIOCGIFADDR,
+[ AC_EGREP_CPP(xxxyesxxx,
+[
+#ifdef HAVE_SYS_IOCTL_H
+#include <sys/ioctl.h>
+#endif
+#ifdef SIOCGIFADDR
+xxxyesxxx
+#endif
+], cv_sys_ioctl_h_has_SIOCGIFADDR=yes, cv_sys_ioctl_h_has_SIOCGIFADDR=no)])
+AC_MSG_RESULT($cv_sys_ioctl_h_has_SIOCGIFADDR)
+if test $cv_sys_ioctl_h_has_SIOCGIFADDR = yes; then
+  AC_DEFINE(SYS_IOCTL_H_HAS_SIOCGIFADDR)
+fi
+
+# ultrix
+AC_MSG_CHECKING([[for two-argument statfs with struct fs_data (Ultrix)]])
+AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
+[AC_TRY_RUN([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
+#endif
+#ifdef HAVE_SYS_FS_TYPES_H
+#include <sys/fs_types.h>
+#endif
+main ()
+{
+struct fs_data fsd;
+/* 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)])
+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)
+fi
+
+# check if compiler pre-processor defines __FUNCTION__
+AC_CACHE_CHECK(if __FUNCTION__ is defined,ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED,
+[
+AC_TRY_COMPILE(,[
+    char *cp = __FUNCTION__;
+], ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED=yes, ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED=no)])
+
+if test "x$ac_cv_HAVE_CPP_UNDERBAR_FUNCTION_DEFINED" = "xyes"; then
+  AC_DEFINE(HAVE_CPP_UNDERBAR_FUNCTION_DEFINED)
+fi
+
+#--------------------------------------------------------------
+# on SCO Unixware 7.1.4 (SCO compiler), "static inline" functions
+# are not supported, so this disables the whole inline thing if it
+# doesn't work properly. Should have no effect on other platforms.
+AC_CACHE_CHECK([[whether static inline functions are broken (Unixware)]],
+    [netsnmp_cv_c_broken_inline],
+AC_COMPILE_IFELSE([[
+static inline int nested_inline_function(void) {
+  return 0;
+}
+inline int main_inline_function( void ) {
+  return nested_inline_function();
+}
+]], netsnmp_cv_broken_inline=no, netsnmp_cv_broken_inline=yes))
+
+# But, sadly, the usage of inline in NET_SNMP disagrees seriously with at least
+# solaris2, so disable it for now.
+case "$target_os" in
+    solaris*)
+        netsnmp_cv_broken_inline=yes
+        ;;
+    *)
+        ;;
+esac
+
+if test "$netsnmp_cv_broken_inline" = yes ; then
+  AC_DEFINE(NETSNMP_BROKEN_INLINE, 1,
+        [Define if static inline functions are unsupported])
+fi
+
+# openbsd seems to have dropped m_clusters and m_clfree from mbstat
+AC_CHECK_STRUCT_FOR([
+#if HAVE_SYS_MBUF_H
+#include <sys/mbuf.h>
+#endif
+], mbstat, m_clusters, no)
+
+# openbsd seems to have dropped m_mbufs from mbstat too
+AC_CHECK_STRUCT_FOR([
+#if HAVE_SYS_MBUF_H
+#include <sys/mbuf.h>
+#endif
+], mbstat, m_mbufs, no)
+
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/signal.h>
+], sigaction, sa_sigaction, no)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.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
+], tm, tm_gmtoff, no)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+], ifnet, if_mtu)
+
+if test "x$ac_cv_struct_ifnet_has_if_mtu" = "xno"; then
+AC_CACHE_CHECK(if _KERNEL needs to be defined for if_mtu, ac_cv_IFNET_NEEDS_KERNEL,
+[
+if test "x$ac_cv_struct_ifnet_has_if_mtu" = "xyes"; then
+  ac_cv_IFNET_NEEDS_KERNEL=no
+else
+AC_TRY_COMPILE([
+#define _KERNEL 1
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+],[
+struct ifnet testit;
+testit.if_mtu = 0;
+], ac_cv_IFNET_NEEDS_KERNEL=yes, ac_cv_IFNET_NEEDS_KERNEL=no)
+fi
+])
+
+if test "x$ac_cv_IFNET_NEEDS_KERNEL" = "xyes"; then
+  AC_DEFINE(IFNET_NEEDS_KERNEL)
+fi
+fi
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+], sockaddr, sa_len, no)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+], sockaddr, sa_union.sa_generic.sa_family2, no)
+
+AC_CHECK_STRUCT_FOR([
+#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+], sockaddr_storage, ss_family, no)
+
+AC_CHECK_STRUCT_FOR([
+#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+], sockaddr_storage, __ss_family, no)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+], rtentry, rt_dst, no)
+
+# checking for 4.3 vs 4.4 rtentry.
+AC_CACHE_CHECK(type of rtentry structure,ac_cv_RTENTRY_TYPE,
+[
+
+# 4.4 compat
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+],[
+
+#ifndef STRUCT_RTENTRY_HAS_RT_DST
+#define rt_dst rt_nodes->rn_key
+#endif
+
+  struct rtentry rt; 
+  rt.rt_nodes[0].rn_flags = 1;
+  rt.rt_dst;
+  ], ac_cv_RTENTRY_TYPE="BSD-4.4")
+
+# 4.3 compat
+if test "x$ac_cv_RTENTRY_TYPE" = "x"; then
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+],[
+struct rtentry rt; 
+rt.rt_hash;
+], ac_cv_RTENTRY_TYPE="BSD-4.3")
+fi
+
+# else ack.
+if test "x$ac_cv_RTENTRY_TYPE" = "x"; then
+  AC_MSG_RESULT(Unknown)
+  ac_cv_RTENTRY_TYPE="unknown"
+fi
+
+])
+
+if test "x$ac_cv_RTENTRY_TYPE" = "xBSD-4.4"; then
+  AC_DEFINE(RTENTRY_4_4)
+fi
+
+# checking for alpha's ortentry vs rtentry
+if test "x$ac_cv_RTENTRY_TYPE" = "xunknown"; then
+AC_CACHE_CHECK(for struct rtentry, ac_cv_struct_rtentry,
+[AC_EGREP_CPP(ortentry, [#define KERNEL
+#include <net/route.h>
+],  ac_cv_struct_rtentry=ortentry,  ac_cv_struct_rtentry=rtentry )
+if test "x$ac_cv_struct_rtentry" = "xrtentry" ; then
+  ac_cv_struct_rtentry="rtentry"
+else
+  ac_cv_struct_rtentry="ortentry"
+fi
+])
+else
+  RTENTRY_TYPE="rtentry"
+  ac_cv_struct_rtentry="rtentry"
+fi
+
+if test "x$ac_cv_struct_rtentry" != "x"; then
+  AC_DEFINE_UNQUOTED(RTENTRY,struct ${ac_cv_struct_rtentry})
+else
+  AC_DEFINE(RTENTRY,struct rtentry)
+fi
+
+# check for 4.3's rtentry->rt_next
+if test "x$ac_cv_RTENTRY_TYPE" = "xBSD-4.3"; then
+AC_CACHE_CHECK(for struct rtentry has a rt_next node, 
+	ac_cv_struct_rtentry_rt_next,
+[
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+],[
+struct rtentry rt; 
+rt.rt_next;
+], ac_cv_struct_rtentry_rt_next=yes,  ac_cv_struct_rtentry_rt_next=no )
+])
+
+if test "x$ac_cv_struct_rtentry_rt_next" = "xyes"; then
+  AC_DEFINE(RTENTRY_RT_NEXT)
+fi
+
+fi
+
+# Check sin6_scope_id member specified in RFC2553 additionally
+AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,,[
+AC_INCLUDES_DEFAULT()
+[#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+]])
+
+# Check struct rtentry for various things.
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+], rtentry, rt_unit)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+], rtentry, rt_refcnt)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+], rtentry, rt_hash)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef IFNET_NEEDS_KERNEL
+#define KERNEL
+#define _KERNEL
+#endif
+#include <sys/socket.h>
+#undef KERNEL
+#undef _KERNEL
+#include <net/route.h>
+], rtentry, rt_use)
+
+# Check tcpstat for tcpstat.tcp_rcvmemdrop
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#ifdef HAVE_SYS_TIMEOUT_H
+#include <sys/timeout.h>
+#endif
+#include <netinet/tcp.h>
+#ifdef HAVE_NETINET_TCP_TIMER_H
+#include <netinet/tcp_timer.h>
+#endif
+
+#ifdef HAVE_NETINET_TCP_VAR_H
+#include <netinet/tcp_var.h>
+#endif
+], tcpstat, tcp_rcvmemdrop)
+
+
+AC_CHECK_STRUCT_FOR([
+#ifdef IFNET_NEEDS_KERNEL
+#define _KERNEL 1
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#include <net/if.h>
+#ifdef HAVE_NET_IF_VAR_H
+#include <net/if_var.h>
+#endif
+], ifaddr, ifa_next)
+
+# Check ifnet entries using macro defined in aclocal.m4.
+#
+# XXX  Broken on FreeBSD where these are #define'd in <net/if.h>
+#
+AC_CHECK_IFNET_FOR(if_baudrate)
+AC_CHECK_IFNET_FOR(if_baudrate.ifs_value)
+AC_CHECK_IFNET_FOR(if_speed)
+AC_CHECK_IFNET_FOR(if_type)
+AC_CHECK_IFNET_FOR(if_imcasts)
+AC_CHECK_IFNET_FOR(if_iqdrops)
+AC_CHECK_IFNET_FOR(if_noproto)
+AC_CHECK_IFNET_FOR(if_omcasts)
+AC_CHECK_IFNET_FOR(if_xname,no)
+AC_CHECK_IFNET_FOR(if_lastchange.tv_sec)
+AC_CHECK_IFNET_FOR(if_obytes)
+AC_CHECK_IFNET_FOR(if_ibytes)
+AC_CHECK_IFNET_FOR(if_addrlist)
+AC_CHECK_IFNET_FOR(if_addrhead.tqh_first)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_UDP_VAR_H
+#include <netinet/udp_var.h>
+#endif
+],udpstat,udps_discard)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_UDP_VAR_H
+#include <netinet/udp_var.h>
+#endif
+],udpstat,udps_noport)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_UDP_VAR_H
+#include <netinet/udp_var.h>
+#endif
+],udpstat,udps_noportbcast)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_UDP_VAR_H
+#include <netinet/udp_var.h>
+#endif
+],udpstat,udps_fullsock)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#include <net/if.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IF_ETHER_H
+#include <netinet/if_ether.h>
+#endif
+],arphd,at_next)
+
+AC_CHECK_STRUCT_FOR([
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#if HAVE_SYS_CONF_H
+#include <sys/conf.h>
+#endif
+],swdevt,sw_nblksenabled)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#if HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
+#endif
+],statvfs,mnt_dir)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#if HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
+#endif
+],statvfs,f_frsize)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#if HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
+#endif
+],statfs,f_frsize)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#if HAVE_SYS_STATVFS_H
+#include <sys/statvfs.h>
+#endif
+],statvfs,f_files)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
+#endif
+],statfs,f_files)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
+#endif
+],statfs,f_ffree)
+
+AC_CHECK_STRUCT_FOR([
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#if HAVE_SYS_STATFS_H
+#include <sys/statfs.h>
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_MOUNT_H
+#include <sys/mount.h>
+#endif
+],statfs,f_favail)
+
+AC_CHECK_STRUCT_FOR([
+#if HAVE_NLIST_H
+#include <nlist.h>
+#endif
+],nlist,n_value)
+
+# struct nlist64 (IRIX)
+AC_CHECK_STRUCT_FOR([
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_NLIST_H
+#include <nlist.h>
+#endif
+],nlist64, n_value)
+
+# check struct ipstat for various things
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_cantforward)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_cantfrag)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_delivered)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_fragdropped)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_fragtimeout)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_fragmented)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_localout)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_noproto)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_noroute)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_odropped)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_ofragments)
+
+AC_CHECK_STRUCT_FOR([
+#include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_NETINET_IP_VAR_H
+#include <netinet/ip_var.h>
+#endif
+], ipstat, ips_reassembled)
+
+# check for the des_ks_struct.weak_key attribute, which indicates the 
+# older openssl version is being used.
+if test "x$ac_cv_header_openssl_des_h" = "xyes" ; then
+AC_CHECK_STRUCT_FOR([
+#include <openssl/des.h>
+], des_ks_struct, weak_key)
+fi
+
+# attempt to figure out if sysctl is usable
+
+if test $cross_compiling = yes; then
+  AC_MSG_WARN([Can't check sysctl, manually define NETSNMP_CAN_USE_SYSCTL if platform support available])
+else
+  AC_CACHE_CHECK(if sysctl can read kernel information,ac_cv_NETSNMP_CAN_USE_SYSCTL,
+  [AC_TRY_RUN([
+#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
+#if HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+#include <sys/types.h>
+#if HAVE_SYS_SYSCTL_H
+# include <sys/sysctl.h>
+#endif
+
+main() {
+  int                 mib[2];
+  size_t              len;
+  struct timeval boottime;
+  
+  mib[0] = CTL_KERN;
+  mib[1] = KERN_BOOTTIME;
+  
+  len = sizeof(boottime);
+  sysctl(mib, 2, &boottime, &len, NULL, NULL);
+  if (boottime.tv_sec != 0)
+    exit(0);
+  else
+    exit(1);
+}
+  ], ac_cv_NETSNMP_CAN_USE_SYSCTL=yes, ac_cv_NETSNMP_CAN_USE_SYSCTL=no, ac_cv_NETSNMP_CAN_USE_SYSCTL=no)])
+fi
+
+if test "x$ac_cv_NETSNMP_CAN_USE_SYSCTL" = "xyes"; then
+  AC_DEFINE(NETSNMP_CAN_USE_SYSCTL)
+fi
+
+#
+# In FreeBSD 4.x, the TCP timer constants aren't.  They are defined
+# in terms of 'hz', the kernel clock tick.  In this case,
+# we need to have a local variable 'hz' in scope and set to a useful
+# value whenever we use one of these constants.
+#
+AC_CACHE_CHECK(whether TCP timers depend on 'hz',ac_cv_TCPTV_NEEDS_HZ,
+[AC_EGREP_CPP(hz,
+[#include <netinet/tcp_timer.h>
+TCPTV_SRTTDFLT
+], ac_cv_TCPTV_NEEDS_HZ=yes, ac_cv_TCPTV_NEEDS_HZ=no)])
+
+if test "x$ac_cv_TCPTV_NEEDS_HZ" = "xyes"; then
+  AC_DEFINE(TCPTV_NEEDS_HZ)
+fi
+
+#
+# define the agent libraries variables
+#
+AC_SUBST(LMIBLIBS)
+AC_SUBST(AGENTLIBS)
+AC_SUBST(OTHERAGENTLIBOBJS)
+AC_SUBST(OTHERAGENTLIBLOBJS)
+
+#
+# Prompt for various bits of user information
+#
+
+if test "x$ac_cv_user_prompt_NETSNMP_LOGFILE" = "x" -o "x$ac_cv_user_prompt_NETSNMP_SYS_LOC" = "x" -o "x$ac_cv_user_prompt_NETSNMP_SYS_CONTACT" = "x" -o "x$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" = "x"; then
+AC_CACHE_CHECK(whether to prompt for values, ac_cv_have_warned,
+[
+if test "x$defaults" = "xno"; then
+cat << EOF
+
+	 ************** Configuration Section **************
+
+	You are about to be prompted with a series of questions.  Answer
+them carefully, as they determine how the SNMP agent and related
+applications are to function.
+
+	After the configure script finishes, you can browse the newly
+created net-snmp-config.h file for further - less important - parameters to
+modify.  Be careful if you re-run configure though, since net-snmp-config.h 
+will be overwritten.
+
+-Press return to continue-
+EOF
+
+read tmpinput
+ac_cv_have_warned="yes"
+else
+  ac_cv_have_warned="no"
+fi
+])
+else
+  ac_cv_have_warned="yes"
+fi
+
+ME=`$WHOAMI`
+if test -f /etc/resolv.conf; then
+  LOC=`cat /etc/resolv.conf | grep '^domain' | tail -1 | awk '{print $NF}'`
+else
+  LOC="@no.where"
+fi
+
+AC_PROMPT_USER(NETSNMP_DEFAULT_SNMP_VERSION,[
+
+*** Default SNMP Version:
+
+	Starting with Net-SNMP 5.0, you can choose the default version of
+the SNMP protocol to use when no version is given explicitly on the
+command line, or via an 'snmp.conf' file.  In the past this was set to
+SNMPv1, but you can use this to switch to SNMPv3 if desired.  SNMPv3
+will provide a more secure management environment (and thus you're
+encouraged to switch to SNMPv3), but may break existing scripts that
+rely on the old behaviour.  (Though such scripts will probably need to
+be changed to use the '-c' community flag anyway, as the SNMPv1
+command line usage has changed as well.).
+   At this prompt you can select \"1\", \"2\" (for SNMPv2c), or \"3\" as
+the default version for the command tools (snmpget, ...) to use.  This
+can always be overridden at runtime using the -v flag to the tools, or
+by using the \"defVersion\" token in your snmp.conf file.
+   Providing the --with-default-snmp-version=\"x\" parameter to ./configure
+will avoid this prompt.
+
+Default version of SNMP to use],3,unquoted)
+
+# we tested this above before the prompt, but the prompt may give a new value.
+if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" = "2c"; then
+  ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION="2"
+fi
+if test "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "1" -a "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "2" -a "$ac_cv_user_prompt_NETSNMP_DEFAULT_SNMP_VERSION" != "3"; then
+  AC_MSG_ERROR([Illegal version number.  Only 1, 2 (for SNMPv2c) and 3 are supported.])
+fi
+
+AC_PROMPT_USER(NETSNMP_SYS_CONTACT,[
+
+*** System Contact Information:
+
+	Describes who should be contacted about the host the agent is
+running on.  This information is available in the MIB-II tree.  This
+can also be over-ridden using the \"syscontact\" syntax in the agent's
+configuration files.
+  Providing the --with-sys-contact=\"contact\" parameter to ./configure
+will avoid this prompt.
+
+System Contact Information],$ME@$LOC,quoted)
+
+AC_PROMPT_USER(NETSNMP_SYS_LOC,[
+
+*** System Location:
+
+	Describes the location of the system.  This information is
+available in the MIB-II tree.  this can also be over-ridden using the
+\"syslocation\" syntax in the agent's configuration files.
+  Providing the --with-sys-location=\"location\" parameter to ./configure
+will avoid this prompt.
+
+System Location],Unknown,quoted)
+
+if test -d /var/log; then
+  defaultlog="/var/log/snmpd.log"
+else
+  defaultlog="/usr/adm/snmpd.log"
+fi
+  
+AC_PROMPT_USER(NETSNMP_LOGFILE,[
+
+*** Logfile location:
+
+	Enter the default location for the snmpd agent to dump
+information & errors to.  If not defined (enter the keyword \"none\"
+at the prompt below) the agent will use stdout and stderr instead.
+(Note: This value can be over-ridden using command line options.)
+  Providing the --with-logfile=\"path\" parameter to ./configure
+will avoid this prompt.
+
+Location to write logfile],$defaultlog,quoted)
+
+if test -d /var; then
+  defaultstore="/var/net-snmp"
+  ucddefaultstore="/var/ucd-snmp"
+else
+  defaultstore="/etc/net-snmp"
+  ucddefaultstore="/etc/ucd-snmp"
+fi
+  
+AC_PROMPT_USER(NETSNMP_PERSISTENT_DIRECTORY,[
+
+*** snmpd persistent storage location:
+
+	Enter a directory for the SNMP library to store persistent
+data in the form of a configuration file.  This default location is
+different than the old default location (which was for ucd-snmp).  If
+you stay with the new path, I'll ask you in a second if you wish to
+copy your files over to the new location (once only).  If you pick
+some other path than the default, you'll have to copy them yourself.
+There is nothing wrong with picking the old path ($ucddefaultstore) if
+you'd rather.
+  Providing the --with-persistent-directory=\"path\" parameter to
+./configure will avoid this prompt.
+
+Location to write persistent information],$defaultstore,quoted)
+
+PERSISTENT_DIRECTORY=$ac_cv_user_prompt_NETSNMP_PERSISTENT_DIRECTORY
+AC_SUBST(PERSISTENT_DIRECTORY)
+UCDPERSISTENT_DIRECTORY=$ucddefaultstore
+AC_SUBST(UCDPERSISTENT_DIRECTORY)
+
+if test $PERSISTENT_DIRECTORY = "$defaultstore" -a -d "$ucddefaultstore" -a ! -d "$defaultstore" ; then
+AC_CACHE_CHECK(If we should copy the old persistent directory, ac_cv_user_prompt_COPY_PERSISTENT_FILES,
+[
+AC_PROMPT_USER_NO_DEFINE(ac_cv_user_prompt_COPY_PERSISTENT_FILES,[
+
+*** Copying old ucd-snmp persistent files to net-snmp persistent directory:
+
+	Would you like to copy the older ucd-snmp persistent files
+into your new net-snmp persistent file path?  This will functionally
+save all your ucd-snmp data and let it be used within the net-snmp
+tools.  This will only be done once when you run make install.  If you
+wish to do this, enter "yes" at the prompt.
+  Providing the --with-copy-persistent-files=\"no\" (or \"yes\")
+parameters to ./configure will avoid this prompt.
+
+Copy ucd-snmp data into the net-snmp data directory],"yes")
+])
+else
+ac_cv_user_prompt_COPY_PERSISTENT_FILES="no"
+fi
+COPY_PERSISTENT_FILES="$ac_cv_user_prompt_COPY_PERSISTENT_FILES"
+AC_SUBST(COPY_PERSISTENT_FILES)
+
+AC_SUBST(DLLIBS)
+
+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])
+AC_CONFIG_FILES([apps/snmpnetstat/Makefile:Makefile.top:apps/snmpnetstat/Makefile.in:Makefile.rules:apps/snmpnetstat/Makefile.depend])
+AC_CONFIG_FILES([agent/Makefile:Makefile.top:agent/Makefile.in:Makefile.rules:agent/Makefile.depend])
+AC_CONFIG_FILES([agent/helpers/Makefile:Makefile.top:agent/helpers/Makefile.in:Makefile.rules:agent/helpers/Makefile.depend])
+AC_CONFIG_FILES([agent/mibgroup/Makefile:Makefile.top:agent/mibgroup/Makefile.in:Makefile.rules:agent/mibgroup/Makefile.depend])
+AC_CONFIG_FILES([local/Makefile:Makefile.top:local/Makefile.in:Makefile.rules])
+AC_CONFIG_FILES([testing/Makefile:Makefile.top:testing/Makefile.in])
+AC_CONFIG_FILES([man/Makefile:Makefile.top:man/Makefile.in:Makefile.rules])
+AC_CONFIG_FILES([mibs/Makefile:Makefile.top:mibs/Makefile.in:Makefile.rules])
+AC_CONFIG_FILES([net-snmp-config:net-snmp-config.in],
+		[chmod +x net-snmp-config])
+
+AC_CONFIG_COMMANDS([default], echo timestamp > stamp-h)
+
+#
+# protect PACKAGE_* variables
+#
+AH_VERBATIM([PACKAGE_BUGREPORT],[/* Define to the address where bug reports for this package should be sent. */
+#ifndef PACKAGE_BUGREPORT
+#undef PACKAGE_BUGREPORT
+#endif])
+AH_VERBATIM([PACKAGE_NAME],[/* Define to the full name of this package. */
+#ifndef PACKAGE_NAME
+#undef PACKAGE_NAME
+#endif])
+AH_VERBATIM([PACKAGE_STRING],[/* Define to the full name and version of this package. */
+#ifndef PACKAGE_STRING
+#undef PACKAGE_STRING
+#endif])
+AH_VERBATIM([PACKAGE_TARNAME],[/* Define to the one symbol short name of this package. */
+#ifndef PACKAGE_TARNAME
+#undef PACKAGE_TARNAME
+#endif])
+AH_VERBATIM([PACKAGE_VERSION],[/* Define to the version of this package. */
+#ifndef PACKAGE_VERSION
+#undef PACKAGE_VERSION
+#endif])
+
+AC_OUTPUT
+
+AC_MSG_CACHE_DISPLAY()
+# Local Variables:
+# mode: Autoconf
+# comment-start: "#"
+# End:
diff --git a/debian/README.Debian b/debian/README.Debian
index 8bdba2a..23b60dc 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -1,26 +1,22 @@
 Please note the following customizations of the Net-SNMP packages for
 Debian.
 
- - It doesn't ship some MIBs (IANA, IETF) from license reason.
-   Please download it
-   (Bug#479633, etc)
+The default configuration for snmpd is rather paranoid for security
+reasons.  Edit /etc/snmp/snmpd.conf or run snmpconf to allow greater
+access.
 
- - The default configuration for snmpd is rather paranoid for security
-   reasons.  Edit /etc/snmp/snmpd.conf or run snmpconf (in snmp package)
-   to allow greater access.
+The snmpconf program provides a simple, menu driven way of configuring
+the snmp applications and daemons.
 
- - The snmpconf program provides a simple, menu driven way of configuring
-   the snmp applications and daemons.
+You can individually control whether or not snmpd and snmpdtrap are
+run by editing /etc/default/snmp.  In addition, neither daemon will be
+run if its config file in /etc/snmp is removed.
 
- - You can individually control whether or not snmpd and snmpdtrap are
-   run by editing /etc/default/snmp.  In addition, neither daemon will be
-   run if its config file in /etc/snmp is removed.
+As of net-snmp version 5.0, the community string can no longer be
+specified after the agent parameter on the command line.  It must now
+be specified with the -c option.  Please see snmpcmd(1) for more
+information.
 
- - As of net-snmp version 5.0, the community string can no longer be
-   specified after the agent parameter on the command line.  It must now
-   be specified with the -c option.  Please see snmpcmd(1) for more
-   information.
-
- - snmpd is built with TCP Wrappers.  Make sure your /etc/hosts.allow and
-   /etc/hosts.deny files account for this.
+snmpd is built with TCP Wrappers.  Make sure your /etc/hosts.allow and
+/etc/hosts.deny files account for this.
 
diff --git a/debian/TODO b/debian/TODO
deleted file mode 100644
index 6de6f86..0000000
--- a/debian/TODO
+++ /dev/null
@@ -1,47 +0,0 @@
-* We cannot build Perl module with -pie hardening option.
-
-* We cannot include below MIBs due to license reason, so removed them
-  from upstream tarball.
-
-RFC1155-SMI.txt
-RFC1213-MIB.txt
-SMUX-MIB.txt
-IPV6-TCP-MIB.txt
-IPV6-UDP-MIB.txt
-IPV6-MIB.txt
-IPV6-TC.txt
-IPV6-ICMP-MIB.txt
-SNMP-COMMUNITY-MIB.txt
-SNMPv2-SMI.txt
-SNMPv2-TC.txt
-SNMPv2-CONF.txt
-AGENTX-MIB.txt
-SNMP-USM-DH-OBJECTS-MIB.txt
-NETWORK-SERVICES-MIB.txt
-MTA-MIB.txt
-HOST-RESOURCES-MIB.txt
-HOST-RESOURCES-TYPES.txt
-RMON-MIB.txt
-HCNUM-TC.txt
-IF-MIB.txt
-IF-INVERTED-STACK-MIB.txt
-DISMAN-EVENT-MIB.txt
-DISMAN-EXPRESSION-MIB.txt
-NOTIFICATION-LOG-MIB.txt
-DISMAN-SCRIPT-MIB.txt
-DISMAN-SCHEDULE-MIB.txt
-SNMP-FRAMEWORK-MIB.txt
-SNMP-MPD-MIB.txt
-SNMP-NOTIFICATION-MIB.txt
-SNMP-PROXY-MIB.txt
-SNMP-TARGET-MIB.txt
-SNMP-USER-BASED-SM-MIB.txt
-SNMP-VIEW-BASED-ACM-MIB.txt
-SNMPv2-TM.txt
-SNMPv2-MIB.txt
-TRANSPORT-ADDRESS-MIB.txt
-IPV6-FLOW-LABEL-MIB.txt
-EtherLike-MIB.txt
-SNMP-USM-AES-MIB.txt
-SCTP-MIB.txt
-
diff --git a/debian/changelog b/debian/changelog
index 080c9e0..56f1b7b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,403 +1,10 @@
-net-snmp (5.7.2.1~dfsg-6) unstable; urgency=medium
-
-  * debian/{snmpd.conf,patches/add_rocommunity6.patch}
-    - fix typo, thanks to Uwe Storbeck <uwe at ibr.ch> for the report
-      (Closes: #746399)
-
- -- Hideki Yamane <henrich at debian.org>  Sun, 04 May 2014 10:55:05 +0900
-
-net-snmp (5.7.2.1~dfsg-5) unstable; urgency=high
+net-snmp (5.4.3~dfsg-2+squeeze1) stable-proposed-updates; urgency=high
 
+  * Non-Maintainer upload.
   * debian/patches
-    - add ifmib.patch taken from upstream to work on systems without a PCI bus
-      Thanks to Chris Boot <debian at bootc.net> and Sergey Dorofeev
-      <sergey at fidoman.ru> for the report (Closes: #745919, #745956)
-
- -- Hideki Yamane <henrich at debian.org>  Sun, 27 Apr 2014 17:05:08 +0900
-
-net-snmp (5.7.2.1~dfsg-4) unstable; urgency=medium
-
-  * debian/*.init
-    - fix incorrect sequence of options passed to start-stop-daemon
-      Thanks to Mehul Sanghvi <mehul.sanghvi at gmail.com> (Closes: #745828)
-
- -- Hideki Yamane <henrich at debian.org>  Sat, 26 Apr 2014 14:19:55 +0900
-
-net-snmp (5.7.2.1~dfsg-3) unstable; urgency=medium
-
-  * Upload to unstable
-  * debian/snmptrapd.init
-    - fix "--force-reload" option (Closes: #525028)
-
- -- Hideki Yamane <henrich at debian.org>  Thu, 10 Apr 2014 00:08:03 +0900
-
-net-snmp (5.7.2.1~dfsg-2) experimental; urgency=medium
-
-  * fix broken debian/snmpd.postinst
-  * debian/control
-    - fix dependency for snmptrapd since '/usr/bin/traptoemail' is also in
-      snmp (<< 5.7.2.1~dfsg-1)
-
- -- Hideki Yamane <henrich at debian.org>  Tue, 01 Apr 2014 23:15:15 +0900
-
-net-snmp (5.7.2.1~dfsg-1) experimental; urgency=medium
-
-  * New upstream release
-    - fix DoS on ICMP-MIB as CVE-2014-2284 (Closes: #742817)
-  * Ack NMU (Closes: #717419)
-  * debian/patches
-    - add add_rocommunity6.patch to fix snmpwalk using ipv6 (Closes: #717179)
-    - add fix_manpage-has-errors-from-man.patch
-    - add agentx-crash.patch, taken from Fedora package. It fixes CVE-2012-6151
-      (Closes: #731625)
-    - add TrapReceiver.patch to fix CVE-2014-2285
-  * debian/control
-    - set Standards-Version: 3.9.5
-    - add "Build-Depends: libpci-dev" to enable libpci function that was
-      introduced in 5.7 (Closes: #741504)
-    - split snmptrapd from snmpd to allow to install only snmpd on systems that
-      will never issue traps (Closes: #314902)
-      + Also it separates mysql dependency (Closes: #715486)
-  * debian/libsnmp-dev.install
-    - add missing net-snmp-create-v3-user (Closes: #726158, #718988)
-  * debian/upstream/signing-key.asc
-    - check upstream PGP key
-  * debian/rules
-    - add etherlike-mib/dot3StatsTable (Closes: #729732, LP#1251847)
-  * debian/snmpd.init
-    - relax start-stop-daemons avoid restart daemon before it terminates.
-      Thanks to Saj Goonatilleke <saj.goonatilleke at anchor.net.au> for the
-      patch (Closes: #640456)
-    - fix "init.d-script-does-not-source-init-functions" lintian warning
-  * debian/snmptrapd.init
-    - split it from snmpd.init (Closes: #724288)
-  * debian/snmpd.postinst
-    - fix weird user creation (Closes: #482041, #589040, #606784, #610630)
-  * debian/snmpd.postrm
-    - remove unnecessary old /var/agentx/master directory with purge
-      (Closes: #728546)
-  * debian/snmp.install
-    - move traptoemail to snmptrapd.install releated to above changes
-  * debian/{snmpd,snmptrapd}.default
-    - fix pid diretory (Closes: #611668)
-  * debian/README.Debian
-    - note snmpconf is in snmp package (Closes: #577649)
-
- -- Hideki Yamane <henrich at debian.org>  Sun, 30 Mar 2014 19:58:39 +0900
-
-net-snmp (5.7.2~dfsg-8.1) unstable; urgency=low
-
-  * Non-maintainer upload.
-  * Move net-snmp-config to libsnmp-dev package (Closes: #716805)
-  * Mark libsnmp-base as Multi-Arch: foreign and drop Multi-Arch: same for
-    libsnmp-dev package (Closes: #708302)
-
- -- Laurent Bigonville <bigon at debian.org>  Sat, 13 Jul 2013 17:13:09 +0200
-
-net-snmp (5.7.2~dfsg-8) unstable; urgency=low
-
-  * add libsnmp-perl.preinst to deal with empty directory by libsnmp15
-    package removal (Closes: #709761) 
-  * {snmp,snmpd}.postinst: deal with "copyright file missing after upgrade
-    (policy 12.5)" (Closes: #709087)
-
- -- Hideki Yamane <henrich at debian.org>  Thu, 06 Jun 2013 08:49:02 +0900
-
-net-snmp (5.7.2~dfsg-7) unstable; urgency=low
-
-  * debian/control
-    - libsnmp-base: update to more policy polite (Breaks/Replaces: libsnmp15
-      (<<5.7.2~dfsg-5)), thanks to James McCoy
-  * debian/snmp.preinst
-    - fix incomplete script.
-
- -- Hideki Yamane <henrich at debian.org>  Mon, 20 May 2013 14:19:36 +0900
-
-net-snmp (5.7.2~dfsg-6) unstable; urgency=low
-
-  * debian/rules
-    - Fix Hurd build issue, thanks Pino Toscano <pino at debian.org> for
-      the patch (Closes: #708951)
-  * debian/snmpd.init
-    - patch from Ubuntu, LSBified
-  * debian/snmp.pre{inst,rm}
-    - patch from Ubuntu, Kill any/all processes owned by snmp user before
-      install/uninstall.
-  * debian/control
-    - add "Conflicts: libsnmp15" to libsnmp-base since moving net-snmp-config
-      in previous version cause trouble (Closes: #708983)
-
- -- Hideki Yamane <henrich at debian.org>  Mon, 20 May 2013 08:49:14 +0900
-
-net-snmp (5.7.2~dfsg-5) unstable; urgency=low
-
-  * debian/control
-    - fix typo and improve description, thanks to Martin Eberhard Schauer
-      <Martin.E.Schauer at gmx.de> for the patch (Closes: #708519)
-    - libsnmp-base: add "Conflicts: libsnmp30 (<< 5.7.2~dfsg-5)" since
-      net-snmp-config file moves from libsnmp30 to libsnmp-base
-      (Closes: #708298)
-    - update descriptions
-  * debian/{libsnmp-base,libsnmp30}.install: update
-
- -- Hideki Yamane <henrich at debian.org>  Sun, 19 May 2013 23:09:52 +0900
-
-net-snmp (5.7.2~dfsg-4) unstable; urgency=low
-
-  * debian/snmpd.{init,default,postinst}
-    - silly bug related to handle /var/run/agentx directory 
-      (Closes: #708335, #708328) Thanks to Hilmar Preuße <hille42 at web.de> and
-      Vincent Bernat <bernat at debian.org> for reporting
-
- -- Hideki Yamane <henrich at debian.org>  Wed, 15 May 2013 22:21:39 +0900
-
-net-snmp (5.7.2~dfsg-3) unstable; urgency=low
-
-  * Upload to unstable
-  * debian/control 
-    - specify version for "Breaks: libsnmp15"
-
- -- Hideki Yamane <henrich at debian.org>  Thu, 09 May 2013 20:38:28 +0900
-
-net-snmp (5.7.2~dfsg-2) experimental; urgency=low
-
-  * debian/snmpd.{postinst,postrm}
-    - avoid failure with /var/run/agentx 
-  * debian/control
-    - add "Breaks: libsnmp15" to snmp since snmp.conf moves from it.
-
- -- Hideki Yamane <henrich at debian.org>  Fri, 26 Apr 2013 16:02:01 +0900
-
-net-snmp (5.7.2~dfsg-1) experimental; urgency=low
-
-  * debian/control
-    - add myself to Uploaders. Thanks, Jochen.
-  * debian/snmpd.{dirs,init,postinst}
-    - ensure /var/run/agentx exists since maybe /var/run would be tmpfs, so
-      would disappear with reboot. Thanks to lintian.
-  * debian/patches
-    - add fix_manpage-has-errors_break_line.patch
-
- -- Hideki Yamane <henrich at debian.org>  Fri, 26 Apr 2013 07:47:09 +0900
-
-net-snmp (5.7.2~dfsg-1~0.2) experimental; urgency=low
-
-  * Non-maintainer upload.
-  * debian/rules
-    - don't specify installdocs -plibsnmp-perl twice.
-    - add dh_python2 to avoid missing dependency (Closes: #704864)
-  * debian/control
-    - set XS-Python-Version: 2.7 to avoid that dh_python2 would fail
-
- -- Hideki Yamane <henrich at debian.org>  Tue, 09 Apr 2013 10:42:56 +0900
-
-net-snmp (5.7.2~dfsg-1~0.1) experimental; urgency=low
-
-  * Non-maintainer upload.
-  * New upstream version 5.7.2 (Closes: #557348, #631063, #684388, #599929,
-    #673197, #581185, #558356, #568550, #514842, #445608, #557186, #411858,
-    #428824, #611837, #495060, #527231, #583391, #572414, #668545, #344979,
-    #397573)
-  * debian/control
-    - set "Standards-Version: 3.9.4"
-    - set "Build-Depends: debhelper (>= 9)" to enable hardening
-    - set "Build-Depends: automake", instead of automake1.9
-    - drop "Build-Depends: python-central", use dh_python2 by default, instead
-    - remove duplicational "Priority:" and "Section:" fields
-    - make it "Multi-Arch" enable
-    - add description for non-free snmp-mibs-downloader for users' convinience
-      (Closes: #561124)
-    - add "Build-Depends: libmysqld-dev" to support MySQL
-    - add "Build-Depends: dh-autoreconf"
-    - use python-all (2.6.6-3~) instead of python-all-dev (>= 2.5.4-1~), python
-      (>=2.3.5-7) for Build-Depends
-    - add "Build-Depends: python2.7-dev"
-    - s/libsnmp-python/python-netsnmp/ as Python Policy compliant
-      (Closes: #661899)
-    - Add libsnmp-base to snmp and snmpd's Depends and remove it from
-      libsnmp30, also remove "Depends: libsnmp-perl (=${binary:Version})" from
-      libsnmp-dev to adjust dependencies in Multi-Arch compliant.
-    - simplify libsnmp-perl's Depends to avoid piuparts error
-    - remove "Conflicts: libsnmp-dev" from libsnmp-dev
-    - point to git://anonscm.debian.org/pkg-net-snmp/pkg-net-snmp.git for
-      Vcs-* fields
-  * debian/compat
-    - set 9
-  * debian/*.install
-    - split into *.manpages
-  * debian/fixman: drop it.
-  * debian/*.manpages (Closes: #505149) 
-    - remove unnecessary"snmp" from tail of all man pages
-  * debian/libsnmp-base.install
-    - move /usr/share/mibs to /usr/share/snmp/mibs (probably, previous setting
-      was just wrong...)
-    - install all mibs/*.txt
-  * debian/libsnmp-dev.install
-    - change from "usr/lib/*" to "usr/lib/*/*" to deal with Multi-Arch
-  * debian/libsnmp30.install
-    - change from "usr/lib/*.so" to "usr/lib/*/*.so" to deal with Multi-Arch
-  * debian/snmp.dirs: remove it since unnecessary
-  * debian/snmpd.dirs: remove lintian overrides direcotry, add /etc/snmp
-  * debian/libsnmp-dev.dirs: add it
-  * debian/libsnmp-perl.examples: add it since dh_installexamples target in
-    previous debian/rules doesn't work correctly.
-  * debian/patches
-    - remove all *.README files
-    - add fix_typo_in_snmpd.conf.patch (Closes: #603593)
-      Thanks to Slavko <linux at slavino.sk>
-    - add fix_logging_option.patch (Closes: #616437)
-    - add fix_snmpcheck_perl_path.patch to provide snmpcheck (Closes: #44373)
-    - add net-snmp-config_multi-arch.patch to enable Multi-Arch
-    - add fix_regular_expression.patch enable to build under Multi-Arch
-    - add to snmptranslate.1.patch fix lintian "hyphen-used-as-minus-sign"
-      warnings
-    - add fix_spelling_error.patch to fix typo
-    - add after_RFC5378 to include some MIBs as DFSF-free code in RFC Documents.
-    - adjust and refresh 03_makefiles.patch
-    - add fix_man_error.patch
-    - drop 25_duplicate_iftable.patch and 44_nlist_kvm.patch since it cannot be
-      applied to current code.
-    - drop 32_mnttab_path.patch since it was merged to upstream as 
-      configure.d/config_os_misc4
-    - drop 56_manpage.patch since most of patches are merged, and others are
-      unnecessary because upstream files are disappeared.
-    - refresh 61_vacm_missing_dependency_check.patch
-    - drop 63_fix_shell.patch since it was merged to upstream
-    - reapplied 64_missing_lib.patch since upstream source has been changed.
-    - drop 65_CVE-2012-2141.patch since it was merged to upstream
-    - drop 66_formatstrings.patch since almost merged to upstream, some of 
-      code are changed in upstream and become unnecessary.
-    - move 08_defaultconfig.patch to debian/snmptrapd.conf
-  * debian/rules
-    - enable hardening
-      (TODO: building perl module would be failed without -pie)
-    - specify LDFLAGS to enable hardening
-    - add "--with autotools-dev,autoreconf"
-    - export DEB_BUILD_MAINT_OPTIONS to enable hardening
-    - drop "dh --with python-central" (Closes: #616913) 
-    - drop "include /usr/share/python/python.mk"
-    - remove "$(PYVERS:%=debian/python-install-stamp-%)"
-    - move exist python targets under override_dh_install
-    - remove unnecessary .PHONY lines
-    - enable tests by removing no instructions with dh_auto_test line
-    - set DEB_HOST_MULTIARCH to enable Multi-Arch
-    - enable install snmpcheck
-    - don't specify to copy files but install them by using .install file
-      (mostly)
-    - enable mysql support
-    - enable AES support (Closes: #447705)
-    - don't make symlink for /usr/share/doc/libsnmp-perl since other are okay
-      but it has examples files.
-    - snmpd doc files link to libsnmp (Closes: #453124)
-    - libsnmp-perl doc files link to libsnmp
-    - adjust dh_strip for dbg package.
-    - adjust dh_clean target
-    - remove override_dh_auto_build since LD_RUN_PATH is clearly specified
-      during building perl modules
-    - add mibII/mta_sendmail to build modules (Closes: #641608)
-    - install copyright file manually for libsnmp30
-    - "get-orig-source:" target: really remove IANA files.
-    - improve specifying MIBs directory with new one.
-    - add "disman/event-mib" to MIB_MODULES, somehow changes in 5.2.2-5
-      disappeared (Closes: #562787)
-  * debian/clean
-    - most listed files are cared by autotools-dev, so removed.
-  * debian/snmp.conf: fix typo (Closes: #623499, #647468)
-  * debian/snmpd.init
-    - force remove pid files (Closes: #528104)
-    - deal with MIBs directory changes
-  * add libsnmp30.lintian-overrides since it seems to be false-positive.
-  * debian/snmpd.dirs: fix "using of /var/agentx conflicts with FHS"
-    RFC says "(It may create other, implementation-specific endpoints.)", so
-    FHS-compliant endpoint is more suitable for Debian system.
-    (Closes: #672063)
-  * debian/snmpd.lintian-overrides
-    - remove above overrides since it's unnecessary anomore.
-  * move snmp.conf from libsnmp30 to snmp.
-  * debian/snmpd.default
-    - Disable loading mteTrigger and mteTriggerConf modules as they don't
-      work without non-free MIBs.
-  * libsnmp-perl.postinst: remove it since it's not necesssary because
-    symlink is handled by debian/rules
-
- -- Hideki Yamane <henrich at debian.org>  Sun, 27 Jan 2013 11:57:29 +0900
-
-net-snmp (5.4.3~dfsg-2.7) unstable; urgency=low
-
-  * Non-maintainer upload.
-  * debian/patches/27_kfreebsd_bug625985.patch: New patch, fix build error on
-    kfreebsd-*, by Steven Chamberlain (closes: #625985).
-
- -- Michael Banck <mbanck at debian.org>  Sat, 24 Nov 2012 13:30:51 +0100
-
-net-snmp (5.4.3~dfsg-2.6) unstable; urgency=low
-
-  * Non-maintainer upload.
-  * debian/libsnmp-perl.postinst: Fix directory to symlink upgrade in
-    postinst (closes: #692949)
-
- -- David Prévot <taffit at debian.org>  Sun, 18 Nov 2012 09:24:30 -0400
-
-net-snmp (5.4.3~dfsg-2.5) unstable; urgency=medium
-
-  * Non-maintainer upload by the Security Team.
-  * Fix CVE-2012-2141 by using Ubuntu's patch (Closes: #672492).
-  * Do not ship *.la files (Closes: #633166).
-  * Enable hardened build flags and fix missing format strings 
-    (Closes: #657519).
-  * Source debconf before doing work in postinst (Closes: #626312).
-  * Fix check for existing snmp group in postinst (Closes: #609430).
-  * Use *-any architecture qualifiers (Closes: #634735).
-  * Add Indonesian debconf translation (Closes: #654166).
-  * Add Polish debconf translation (Closes: #661252).
-
- -- Luk Claes <luk at debian.org>  Sun, 27 May 2012 17:22:01 +0200
-
-net-snmp (5.4.3~dfsg-2.4) unstable; urgency=low
-
-  * Non-maintainer upload.
-  * Trivial lintian fix: don't use braces in libsnmp-dev.install
-  * Fix pending l10n issues. Debconf translations:
-    - Korean (si-cheol KO).  Closes: #630948
-    - Slovak (Slavko).  Closes: #634988
-    - Serbian (Zlatan Todoric).  Closes: #635066
-    - Serbian Latin (Zlatan Todoric).  Closes: #635067
-    - Catalan; (Innocent De Marchi).  Closes: #641829
-
- -- Christian Perrier <bubulle at debian.org>  Mon, 19 Dec 2011 07:34:31 +0100
-
-net-snmp (5.4.3~dfsg-2.3) unstable; urgency=low
-
-  * Non-maintainer upload.
-  * Fix for init script status command when trapd is not running.  Thanks to
-    Steve Camfield <steve.camfield at scamfield.co.uk> for the patch
-    (closes: #610306)
-
- -- Stephen Gran <sgran at debian.org>  Sat, 27 Aug 2011 09:10:09 +0000
-
-net-snmp (5.4.3~dfsg-2.2) unstable; urgency=high
-
-  * Non-maintainer upload.
-  * Fix FTBFS on kfreebsd-* by updating 44_nlist_kvm.patch to detect nlist
-    (in libbsd), thanks to Jakub Wilk (Closes: #625985).
-  * Add build-dependency on libbsd-dev on kfreebsd-* accordingly.
-
- -- Cyril Brulebois <kibi at debian.org>  Mon, 09 May 2011 11:12:31 +0200
-
-net-snmp (5.4.3~dfsg-2.1) unstable; urgency=high
-
-  [ Julien Cristau ]
-  * Non-maintainer upload to fix FTBFS (closes: #625730).
-  * Don't hardcode SHELL to /bin/sh in Makefile.top, libtool wants bash
-    (closes: #617212).
-  * Add missing libraries to link commands to make newer gcc happy (closes:
-    #555767, #615756).
-
-  [ Cyril Brulebois ]
-  * Do the 3.0 (quilt) dance to get Julien's patches applied.
-  * Add some bug closures.
+    - apply CVE-2012-2141.patch 
 
- -- Cyril Brulebois <kibi at debian.org>  Sat, 07 May 2011 12:14:26 +0200
+ -- Hideki Yamane <henrich at debian.org>  Sat, 06 Apr 2013 15:06:20 +0900
 
 net-snmp (5.4.3~dfsg-2) unstable; urgency=high
 
diff --git a/debian/clean b/debian/clean
new file mode 100644
index 0000000..7fb4f96
--- /dev/null
+++ b/debian/clean
@@ -0,0 +1,26 @@
+aclocal.m4
+configure
+ltmain.sh
+stamp-h
+stamp-h.in
+configure-summary
+config.log
+config.guess
+config.sub
+install-sh
+debian/stamp-autotools-files
+debian/stamp-patched
+debian/stamp-makefile-build
+include/net-snmp/net-snmp-config.h.in
+perl/Makefile.old
+perl/SNMP/Makefile.old
+perl/SNMP/t/snmptest.cmd
+perl/agent/Makefile.old
+perl/agent/default_store/Makefile.old
+perl/agent/Support/Makefile.old
+perl/TrapReceiver/const-xs.inc
+perl/TrapReceiver/Makefile.old
+perl/TrapReceiver/const-c.inc
+perl/default_store/Makefile.old
+perl/ASN/Makefile.old
+perl/OID/Makefile.old
diff --git a/debian/compat b/debian/compat
index ec63514..7f8f011 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-9
+7
diff --git a/debian/control b/debian/control
index e52262a..9bbcb7f 100644
--- a/debian/control
+++ b/debian/control
@@ -2,27 +2,19 @@ Source: net-snmp
 Section: net
 Priority: optional
 Maintainer: Net-SNMP Packaging Team <pkg-net-snmp-devel at lists.alioth.debian.org>
-Uploaders: Jochen Friedrich <jochen at scram.de>, Thomas Anders <tanders at users.sourceforge.net>, Noah Meyerhans <noahm at debian.org>,
- Hideki Yamane <henrich at debian.org>
-Build-Depends: debhelper (>= 9), libtool, libwrap0-dev, libssl-dev (>> 0.9.8), perl (>=5.8), libperl-dev,
- python-all (>= 2.6.6-3~), python-setuptools (>=0.6b3), python2.7-dev,
- autoconf, automake, autotools-dev, debianutils (>=1.13.1), dh-autoreconf,
- bash (>=2.05), findutils (>=4.1.20), procps, 
- libbsd-dev [kfreebsd-i386 kfreebsd-amd64], 
- libkvm-dev [kfreebsd-i386 kfreebsd-amd64], 
- libsensors4-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64],
- libmysqld-dev, libpci-dev
-Build-Conflicts: libsnmp-dev
-Standards-Version: 3.9.5
-Vcs-Git: git://anonscm.debian.org/pkg-net-snmp/pkg-net-snmp.git
-Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-net-snmp/pkg-net-snmp.git
-XS-Python-Version: 2.7
+Uploaders: Jochen Friedrich <jochen at scram.de>, Thomas Anders <tanders at users.sourceforge.net>, Noah Meyerhans <noahm at debian.org>
+Build-Depends: debhelper (>= 7.0.50~), libtool, libwrap0-dev, libssl-dev (>> 0.9.8), perl (>=5.8), libperl-dev, python-all-dev (>= 2.5.4-1~), python-central (>=0.5.6), python (>=2.3.5-7), python-setuptools (>=0.6b3), autoconf, automake1.9, autotools-dev, debianutils (>=1.13.1), bash (>=2.05), findutils (>=4.1.20), procps, libkvm-dev [kfreebsd-i386 kfreebsd-amd64], libsensors4-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64]
+Standards-Version: 3.8.4
+Vcs-Svn: svn://svn.debian.org/pkg-net-snmp/
+Vcs-Browser: http://svn.debian.org/wsvn/pkg-net-snmp/
+XS-Python-Version: all
 Homepage: http://net-snmp.sourceforge.net/
 
 Package: snmpd
+Section: net
+Priority: optional
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, debconf, lsb-base (>= 3.2-13), libsnmp-base
-Suggests: snmptrapd
+Depends: ${shlibs:Depends}, ${misc:Depends}, adduser, debconf, lsb-base (>= 3.2-13)
 Description: SNMP (Simple Network Management Protocol) agents
  The Simple Network Management Protocol (SNMP) provides a framework
  for the exchange of management information between agents (servers)
@@ -31,26 +23,12 @@ Description: SNMP (Simple Network Management Protocol) agents
  The Net-SNMP agent is a daemon which listens for incoming SNMP
  requests from clients and provides responses.
 
-Package: snmptrapd
-Architecture: any
-Recommends: perl-modules
-Depends: ${shlibs:Depends}, ${misc:Depends}, snmpd
-Conflicts: snmpd (<< 5.7.2.1~dfsg-1), snmp (<< 5.7.2.1~dfsg-1)
-Breaks: snmpd (<< 5.7.2.1~dfsg-1)
-Replaces: snmp (<< 5.7.2.1~dfsg-1)
-Description: Net-SNMP notification receiver
- The Simple Network Management Protocol (SNMP) provides a framework
- for the exchange of management information between agents (servers)
- and clients.
- .
- snmptrapd is an SNMP application (daemon) that receives and logs SNMP TRAP
- and INFORM messages.
-
 Package: snmp
+Section: net
+Priority: optional
 Architecture: any
 Recommends: perl-modules
-Depends: ${shlibs:Depends}, ${misc:Depends}, libsnmp-base
-Breaks: libsnmp15 (<< 5.7.2~dfsg-0.1)
+Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: SNMP (Simple Network Management Protocol) applications
  The Simple Network Management Protocol (SNMP) provides a framework
  for the exchange of management information between agents (servers)
@@ -61,35 +39,28 @@ Description: SNMP (Simple Network Management Protocol) applications
 
 Package: libsnmp-base
 Section: libs
+Priority: optional
 Architecture: all
-Replaces: libsnmp-dev (<< 5.4~dfsg), libsnmp9-dev (<< 5.4~dfsg), libsnmp15 (<< 5.7.2~dfsg-5)
-Conflicts: libsnmp-dev (<< 5.4~dfsg), libsnmp9-dev (<< 5.4~dfsg), libsnmp30 (<< 5.7.2~dfsg-5)
-Breaks: libsnmp15 (<< 5.7.2~dfsg-5)
+Replaces: libsnmp-dev (<< 5.4~dfsg), libsnmp9-dev (<< 5.4~dfsg)
+Conflicts: libsnmp-dev (<< 5.4~dfsg), libsnmp9-dev (<< 5.4~dfsg)
 Depends: ${misc:Depends}
 Suggests: snmp-mibs-downloader
-Multi-Arch: foreign
-Description: SNMP configuration script, MIBs and documentation
+Description: SNMP (Simple Network Management Protocol) MIBs and documentation
  The Simple Network Management Protocol (SNMP) provides a framework
  for the exchange of management information between agents (servers)
  and clients.
  .
- This package includes net-snmp-config scripts, documentation and MIBs
- (Management Information Bases) for the SNMP libraries, agents and
- applications. MIBs contain a formal description of the data that can be
- managed using SNMP and applications.
- .
- NOTE: If you want the OIDs (Object Identifiers) to resolve to their text
- description, you need to activate the non-free repository and install the
- "snmp-mibs-downloader" package.
+ This package includes documentation and MIBs (Management Information
+ Bases) for the SNMP libraries, agents and applications. MIBs contain
+ a formal description of the data that can be managed using SNMP.
+ and applications.
 
-Package: libsnmp30
+Package: libsnmp15
 Section: libs
+Priority: optional
 Architecture: any
-Replaces: libsnmp-base (<< 5.4.2.1~dfsg-4), snmp (<< 5.4.3~dfsg-1), libsnmp15
-Breaks: libsnmp15
-Multi-Arch: same
-Pre-Depends: ${misc:Pre-Depends}
-Depends: ${shlibs:Depends}, ${misc:Depends}, libsnmp-base
+Replaces: libsnmp-base (<< 5.4.2.1~dfsg-4), snmp (<< 5.4.3~dfsg-1)
+Depends: libsnmp-base (>=${source:Version}), ${shlibs:Depends}, ${misc:Depends}
 Description: SNMP (Simple Network Management Protocol) library
  The Simple Network Management Protocol (SNMP) provides a framework
  for the exchange of management information between agents (servers)
@@ -99,11 +70,11 @@ Description: SNMP (Simple Network Management Protocol) library
  sending, receiving, decoding, and manipulation of the SNMP requests
  and responses.
 
-Package: libsnmp30-dbg
+Package: libsnmp15-dbg
 Section: debug
 Priority: extra
 Architecture: any
-Depends: libsnmp30 (=${binary:Version}), ${misc:Depends}
+Depends: libsnmp15 (=${binary:Version}), ${misc:Depends}
 Description: SNMP (Simple Network Management Protocol) library debug
  The Simple Network Management Protocol (SNMP) provides a framework
  for the exchange of management information between agents (servers)
@@ -113,12 +84,12 @@ Description: SNMP (Simple Network Management Protocol) library debug
 
 Package: libsnmp-dev
 Section: libdevel
+Priority: optional
 Architecture: any
-Replaces: libsnmp9-dev, libsnmp15-dev, snmp (<< 5.4~dfsg), libsnmp-base (<< 5.7.2~dfsg-8.1~)
+Replaces: libsnmp9-dev, libsnmp15-dev, snmp (<< 5.4~dfsg)
 Provides: libsnmp9-dev
-Conflicts: libsnmp9-dev, libsnmp15-dev, snmp (<< 5.4~dfsg)
-Breaks: libsnmp-base (<< 5.7.2~dfsg-8.1~)
-Depends: libc6-dev, libsnmp30 (=${binary:Version}), libwrap0-dev, libssl-dev, procps, libkvm-dev [kfreebsd-any], libsensors4-dev [linux-any], ${misc:Depends}
+Conflicts: libsnmp-dev, libsnmp9-dev, libsnmp15-dev, snmp (<< 5.4~dfsg)
+Depends: libc6-dev, libsnmp15 (=${binary:Version}), libsnmp-perl (=${binary:Version}), libwrap0-dev, libssl-dev, procps, libkvm-dev [kfreebsd-any], libsensors4-dev [linux-any], ${misc:Depends}, libperl-dev
 Description: SNMP (Simple Network Management Protocol) development files
  The Simple Network Management Protocol (SNMP) provides a framework
  for the exchange of management information between agents (servers)
@@ -130,8 +101,9 @@ Description: SNMP (Simple Network Management Protocol) development files
 
 Package: libsnmp-perl
 Section: perl
+Priority: optional
 Architecture: any
-Depends: ${perl:Depends}, ${shlibs:Depends}, ${misc:Depends}
+Depends: ${perl:Depends}, libsnmp15 (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
 Description: SNMP (Simple Network Management Protocol) Perl5 support
  The Simple Network Management Protocol (SNMP) provides a framework
  for the exchange of management information between agents (servers)
@@ -140,14 +112,13 @@ Description: SNMP (Simple Network Management Protocol) Perl5 support
  The Net-SNMP Perl5 support files provide the Perl functions for
  integration of SNMP into applications written in Perl.
 
-Package: python-netsnmp
+Package: libsnmp-python
 Section: python
+Priority: optional
 Architecture: any
 Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends}
-Breaks: libsnmp-python
-Replaces: libsnmp-python
-Provides: libsnmp-python, ${python:Provides}
 XB-Python-Version: ${python:Versions}
+Provides: ${python:Provides}
 Description: SNMP (Simple Network Management Protocol) Python support
  The Simple Network Management Protocol (SNMP) provides a framework
  for the exchange of management information between agents (servers)
@@ -157,6 +128,8 @@ Description: SNMP (Simple Network Management Protocol) Python support
  integration of SNMP into applications written in Python.
 
 Package: tkmib
+Section: net
+Priority: optional
 Architecture: all
 Depends: libsnmp-perl (>=${source:Version}), perl-tk, ${misc:Depends}
 Description: SNMP (Simple Network Management Protocol) MIB browser
diff --git a/debian/fixman b/debian/fixman
new file mode 100644
index 0000000..71b6e64
--- /dev/null
+++ b/debian/fixman
@@ -0,0 +1,61 @@
+#!/bin/bash
+
+# This script fixes up various problems with the man pages.
+
+# Create the symlinks for multiple and alternative names when they are
+# described in a single man page.
+
+sections="1 3 5 8"
+#echo "sections = $sections"
+
+for s in $sections; do
+    files=$(grep -rl '^\.SH NAME' debian/tmp/usr/share/man/man$s | \
+      grep -v '/netsnmp_')
+    #echo "files = $files"
+
+    for f in $files; do
+	if [[ ! -f $f ]]; then
+	    continue
+	fi
+
+	f2=$(basename $f .$s)
+	commands=$(sed -e '/^\.SH NAME/,/^\./p' -e d $f | 
+	    sed -e '/^\./d' -e 's/,/ /g' -e 's/\\\?-.*$//')
+	#echo "$f2 commands = $commands"
+
+	for c in $commands; do
+	    c2=$(basename $c)
+	    if [[ $c2 != $f2 ]]; then
+		#echo ln -sf $f2.$s debian/tmp/usr/share/man/man$s/$c2.$s
+		ln -sf $f2.$s debian/tmp/usr/share/man/man$s/$c2.$s
+	    fi
+	done
+    done
+done
+
+# Rename the pages to avoid possible conflicts with other packages.
+
+mv debian/tmp/usr/share/man/man3/SNMP.3 debian/tmp/usr/share/man/man3/SNMP.3pm
+
+sections="3 5"
+#echo "sections = $sections"
+
+for s in $sections; do
+    files=debian/tmp/usr/share/man/man$s/*.$s
+    #echo "files = $files"
+
+    for f in $files; do
+	if [[ -L $f ]]; then
+	    l=$(readlink $f)
+	    #echo ln -sf ${l}snmp ${f}snmp
+	    ln -sf ${l}snmp ${f}snmp
+	    rm -f $f
+	else
+	    #echo mv $f ${f}snmp
+	    sed -e "s/^\(\.TH \"[^\"]*\"\|\.TH [^\"][^ ]*\) *${s}/\1 ${s}snmp/" < $f > ${f}tmp
+	    sed -e "s/^\(\.so .*\)${s}$/\1${s}snmp/" < ${f}tmp > ${f}snmp
+	    rm -f $f
+	    rm -f ${f}tmp
+	fi
+    done
+done
diff --git a/debian/libsnmp-base.docs b/debian/libsnmp-base.docs
index fc60795..6ea16e2 100644
--- a/debian/libsnmp-base.docs
+++ b/debian/libsnmp-base.docs
@@ -3,4 +3,4 @@ NEWS
 README
 README.snmpv3
 README.thread
-mibs/README.mibs
+debian/README.Debian
diff --git a/debian/libsnmp-base.install b/debian/libsnmp-base.install
index 2e6946b..d57fd7d 100644
--- a/debian/libsnmp-base.install
+++ b/debian/libsnmp-base.install
@@ -1,2 +1,8 @@
-mibs/*.txt	usr/share/snmp/mibs
-usr/share/snmp/mib2c-data
+debian/tmp/usr/share/mibs
+debian/tmp/usr/share/snmp/mib2c-data
+debian/tmp/usr/share/man/man5/mib2c.conf.5snmp
+debian/tmp/usr/share/man/man5/snmp.conf.5snmp
+debian/tmp/usr/share/man/man5/snmp_config.5snmp
+debian/tmp/usr/share/man/man5/snmpd.examples.5snmp
+debian/tmp/usr/share/man/man5/snmpd.internal.5snmp
+debian/tmp/usr/share/man/man5/variables.5snmp
diff --git a/debian/libsnmp-base.manpages b/debian/libsnmp-base.manpages
deleted file mode 100644
index 5577871..0000000
--- a/debian/libsnmp-base.manpages
+++ /dev/null
@@ -1,6 +0,0 @@
-man/mib2c.conf.5
-man/snmp.conf.5
-man/snmp_config.5
-man/snmpd.examples.5
-man/snmpd.internal.5
-man/variables.5
diff --git a/debian/libsnmp-dev.dirs b/debian/libsnmp-dev.dirs
deleted file mode 100644
index 230a402..0000000
--- a/debian/libsnmp-dev.dirs
+++ /dev/null
@@ -1 +0,0 @@
-etc/snmp
diff --git a/debian/libsnmp-dev.install b/debian/libsnmp-dev.install
index d9a42cf..9f59cff 100644
--- a/debian/libsnmp-dev.install
+++ b/debian/libsnmp-dev.install
@@ -1,15 +1,8 @@
-local/mib2c*.conf etc/snmp
-usr/bin/mib2c
-usr/bin/mib2c-update
-usr/include/*
-usr/lib/*/lib*.a
-usr/lib/*/lib*.so
-# Install the "broke" headers
-agent/mibgroup/struct.h	usr/include/net-snmp/agent
-agent/mibgroup/util_funcs.h usr/include/net-snmp
-agent/mibgroup/mibincl.h usr/include/net-snmp/library
-agent/mibgroup/header_complex.h usr/include/net-snmp/agent
-usr/bin/net-snmp-config
-usr/share/man/man1/net-snmp-config.1
-usr/bin/net-snmp-create-v3-user
-usr/share/man/man1/net-snmp-create-v3-user.1
+debian/tmp/etc/snmp/mib2c*.conf
+debian/tmp/usr/bin/mib2c
+debian/tmp/usr/bin/mib2c-update
+debian/tmp/usr/include
+debian/tmp/usr/lib/lib*.{a,so,la}
+debian/tmp/usr/share/man/man1/mib2c.1
+debian/tmp/usr/share/man/man1/mib2c-update.1
+debian/tmp/usr/share/man/man3/*
diff --git a/debian/libsnmp-dev.manpages b/debian/libsnmp-dev.manpages
deleted file mode 100644
index 5846936..0000000
--- a/debian/libsnmp-dev.manpages
+++ /dev/null
@@ -1,3 +0,0 @@
-man/mib2c.1
-man/mib2c-update.1
-man/*.3
diff --git a/debian/libsnmp-perl.examples b/debian/libsnmp-perl.examples
deleted file mode 100644
index f11e24b..0000000
--- a/debian/libsnmp-perl.examples
+++ /dev/null
@@ -1 +0,0 @@
-perl/SNMP/examples/*
diff --git a/debian/libsnmp-perl.install b/debian/libsnmp-perl.install
index 36e0356..074862e 100644
--- a/debian/libsnmp-perl.install
+++ b/debian/libsnmp-perl.install
@@ -1 +1 @@
-usr/lib/perl*
+debian/tmp/usr/lib/perl*
diff --git a/debian/libsnmp-perl.preinst b/debian/libsnmp-perl.preinst
deleted file mode 100644
index 696fc08..0000000
--- a/debian/libsnmp-perl.preinst
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-# preinst script for libsnmp-perl
-
-set -e
-
-
-case "$1" in
-    install|upgrade)
-
-    DOCDIR=/usr/share/doc/libsnmp-perl
-    if [ -L $DOCDIR ]; then
-        rm $DOCDIR
-    fi
-    ;;
-
-    abort-upgrade)
-    ;;
-
-    *)
-        echo "preinst called with unknown argument \`$1'" >&2
-        exit 1
-    ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
diff --git a/debian/python-netsnmp.install b/debian/libsnmp-python.install
similarity index 100%
rename from debian/python-netsnmp.install
rename to debian/libsnmp-python.install
diff --git a/debian/libsnmp30.dirs b/debian/libsnmp15.dirs
similarity index 100%
rename from debian/libsnmp30.dirs
rename to debian/libsnmp15.dirs
diff --git a/debian/libsnmp15.docs b/debian/libsnmp15.docs
new file mode 100644
index 0000000..b6f02d9
--- /dev/null
+++ b/debian/libsnmp15.docs
@@ -0,0 +1,10 @@
+AGENT.txt
+FAQ
+NEWS
+README
+README.agentx
+README.snmpv3
+README.thread
+TODO
+local/README.mib2c
+debian/README.Debian
diff --git a/debian/libsnmp15.install b/debian/libsnmp15.install
new file mode 100644
index 0000000..d2e541d
--- /dev/null
+++ b/debian/libsnmp15.install
@@ -0,0 +1,4 @@
+debian/tmp/usr/lib/lib*.so.*
+debian/tmp/usr/bin/net-snmp-config
+debian/tmp/usr/share/man/man1/net-snmp-config.1
+debian/tmp/etc/snmp/snmp.conf
diff --git a/debian/libsnmp30.postinst b/debian/libsnmp15.postinst
similarity index 100%
rename from debian/libsnmp30.postinst
rename to debian/libsnmp15.postinst
diff --git a/debian/libsnmp30.copyright b/debian/libsnmp30.copyright
deleted file mode 100644
index e69de29..0000000
diff --git a/debian/libsnmp30.docs b/debian/libsnmp30.docs
deleted file mode 100644
index f232bba..0000000
--- a/debian/libsnmp30.docs
+++ /dev/null
@@ -1,9 +0,0 @@
-AGENT.txt
-FAQ
-NEWS
-README
-README.agentx
-README.snmpv3
-README.thread
-TODO
-local/README.mib2c
diff --git a/debian/libsnmp30.install b/debian/libsnmp30.install
deleted file mode 100644
index 3ddde58..0000000
--- a/debian/libsnmp30.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/lib*.so.*
diff --git a/debian/libsnmp30.lintian-overrides b/debian/libsnmp30.lintian-overrides
deleted file mode 100644
index 6ce8d29..0000000
--- a/debian/libsnmp30.lintian-overrides
+++ /dev/null
@@ -1 +0,0 @@
-libsnmp30: hardening-no-relro usr/lib/*/libnetsnmptrapd.so.*
diff --git a/debian/patches/02_statistics.README b/debian/patches/02_statistics.README
new file mode 100644
index 0000000..eca1db7
--- /dev/null
+++ b/debian/patches/02_statistics.README
@@ -0,0 +1 @@
+This patch ignores interfaces without statistics.
diff --git a/debian/patches/02_statistics.patch b/debian/patches/02_statistics.patch
index a582476..1d05728 100644
--- a/debian/patches/02_statistics.patch
+++ b/debian/patches/02_statistics.patch
@@ -1,10 +1,8 @@
-This patch ignores interfaces without statistics.
-
-Index: net-snmp-5.7.2~dfsg/agent/mibgroup/mibII/interfaces.c
+Index: net-snmp-5.4.3/agent/mibgroup/mibII/interfaces.c
 ===================================================================
---- net-snmp-5.7.2~dfsg.orig/agent/mibgroup/mibII/interfaces.c	2013-01-07 12:53:22.545808176 +0900
-+++ net-snmp-5.7.2~dfsg/agent/mibgroup/mibII/interfaces.c	2013-01-07 12:53:22.541808167 +0900
-@@ -1592,6 +1592,10 @@
+--- net-snmp-5.4.3.orig/agent/mibgroup/mibII/interfaces.c	2010-06-04 17:10:29.000000000 +0200
++++ net-snmp-5.4.3/agent/mibgroup/mibII/interfaces.c	2010-06-04 17:10:33.000000000 +0200
+@@ -1551,6 +1551,10 @@
          struct ifnet   *nnew;
          char           *stats, *ifstart = line;
  
@@ -15,7 +13,7 @@ Index: net-snmp-5.7.2~dfsg/agent/mibgroup/mibII/interfaces.c
          if (line[strlen(line) - 1] == '\n')
              line[strlen(line) - 1] = '\0';
  
-@@ -1624,7 +1628,7 @@
+@@ -1584,7 +1588,7 @@
                                                 &coll) != 5)) {
              if ((scan_line_to_use == scan_line_2_2)
                  && !strstr(line, "No statistics available"))
diff --git a/debian/patches/03_makefiles.README b/debian/patches/03_makefiles.README
new file mode 100644
index 0000000..3691a14
--- /dev/null
+++ b/debian/patches/03_makefiles.README
@@ -0,0 +1,2 @@
+Makefile patch to include libwrap and libsensors libraries and install extra
+MIB files.
diff --git a/debian/patches/03_makefiles.patch b/debian/patches/03_makefiles.patch
index 927c798..d844cc2 100644
--- a/debian/patches/03_makefiles.patch
+++ b/debian/patches/03_makefiles.patch
@@ -1,11 +1,8 @@
-Makefile patch to include libwrap and libsensors libraries and install extra
-MIB files.
-
-Index: net-snmp-5.7.2~dfsg/local/Makefile.in
+Index: net-snmp-5.4.3/local/Makefile.in
 ===================================================================
---- net-snmp-5.7.2~dfsg.orig/local/Makefile.in	2013-01-15 01:05:58.571396020 +0900
-+++ net-snmp-5.7.2~dfsg/local/Makefile.in	2013-01-15 01:05:58.567396010 +0900
-@@ -103,7 +103,7 @@
+--- net-snmp-5.4.3.orig/local/Makefile.in	2008-03-21 18:22:57.000000000 +0100
++++ net-snmp-5.4.3/local/Makefile.in	2010-06-04 17:10:51.000000000 +0200
+@@ -100,7 +100,7 @@
  
  mib2c.made: $(srcdir)/mib2c
  	if test "x$(PERL)" != "x" ; then \
@@ -14,56 +11,101 @@ Index: net-snmp-5.7.2~dfsg/local/Makefile.in
  	else \
  	  touch mib2c.made; \
          fi
-Index: net-snmp-5.7.2~dfsg/Makefile.top
+Index: net-snmp-5.4.3/Makefile.top
 ===================================================================
---- net-snmp-5.7.2~dfsg.orig/Makefile.top	2013-01-15 01:05:58.571396020 +0900
-+++ net-snmp-5.7.2~dfsg/Makefile.top	2013-01-15 01:11:31.544153075 +0900
-@@ -27,6 +27,7 @@
+--- net-snmp-5.4.3.orig/Makefile.top	2009-10-29 10:55:42.000000000 +0100
++++ net-snmp-5.4.3/Makefile.top	2010-06-04 17:10:51.000000000 +0200
+@@ -24,8 +24,9 @@
+ man5dir		= $(mandir)/man5
+ man8dir		= $(mandir)/man8
  snmplibdir	= $(datadir)/snmp
- mibdir		= $(snmplibdir)/mibs
+-mibdir		= $(snmplibdir)/mibs
++mibdir		= $(datadir)/mibs/netsnmp
  persistentdir	= @PERSISTENT_DIRECTORY@
 +sysconfdir	= @sysconfdir@
  DESTDIR         = @INSTALL_PREFIX@
  INSTALL_PREFIX  = $(DESTDIR)
  
-Index: net-snmp-5.7.2~dfsg/Makefile.in
+Index: net-snmp-5.4.3/mibs/Makefile.in
 ===================================================================
---- net-snmp-5.7.2~dfsg.orig/Makefile.in	2013-01-15 01:05:58.571396020 +0900
-+++ net-snmp-5.7.2~dfsg/Makefile.in	2013-01-15 01:09:08.607827737 +0900
-@@ -17,7 +17,7 @@
+--- net-snmp-5.4.3.orig/mibs/Makefile.in	2009-05-29 11:08:28.000000000 +0200
++++ net-snmp-5.4.3/mibs/Makefile.in	2010-06-04 17:13:21.000000000 +0200
+@@ -13,53 +13,24 @@
+ OTHERUNINSTALL=mibsuninstall
  
- INSTALLHEADERS=version.h net-snmp-features.h
- INCLUDESUBDIR=system
--INCLUDESUBDIRHEADERS= aix.h bsd.h bsdi3.h bsdi4.h bsdi.h cygwin.h \
-+INCLUDESUBDIRHEADERS= aix.h bsd.h bsdi3.h bsdi4.h bsdi.h cygwin.h kfreebsd.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 \
-@@ -170,7 +170,7 @@
- #
- # override LD_RUN_PATH to avoid dependencies on the build directory
- perlmodules: perlmakefiles subdirs
--	@(cd perl ; $(MAKE) LD_RUN_PATH="$(libdir):`$(PERL) -e 'use Config; print qq($$Config{archlibexp}/CORE);'`") ; \
-+	@(cd perl ; $(MAKE) LD_RUN_PATH="") ; \
-         if test $$? != 0 ; then \
-            exit 1 ; \
-         fi
-Index: net-snmp-5.7.2~dfsg/mibs/Makefile.in
-===================================================================
---- net-snmp-5.7.2~dfsg.orig/mibs/Makefile.in	2013-01-15 01:05:58.571396020 +0900
-+++ net-snmp-5.7.2~dfsg/mibs/Makefile.in	2013-01-15 01:17:21.484984229 +0900
-@@ -48,11 +48,11 @@
- UCDMIBS = UCD-SNMP-MIB.txt UCD-DEMO-MIB.txt UCD-IPFWACC-MIB.txt \
- 	UCD-DLMOD-MIB.txt UCD-DISKIO-MIB.txt
  
-+EXTRAMIBS = GNOME-SMI LM-SENSORS-MIB
-+
- DEFAULTMIBS = @default_mibs_install@
+-V1MIBS	= RFC1155-SMI.txt RFC1213-MIB.txt RFC-1215.txt
++NETSNMPMIBS = NET-SNMP-TC NET-SNMP-MIB NET-SNMP-AGENT-MIB \
++	NET-SNMP-EXAMPLES-MIB NET-SNMP-EXTEND-MIB NET-SNMP-PASS-MIB \
++	NET-SNMP-MONITOR-MIB NET-SNMP-SYSTEM-MIB \
++	NET-SNMP-VACM-MIB
+ 
+-V2MIBS = SNMPv2-CONF.txt SNMPv2-SMI.txt SNMPv2-TC.txt SNMPv2-TM.txt \
+-	SNMPv2-MIB.txt
++UCDMIBS = UCD-SNMP-MIB UCD-DEMO-MIB UCD-IPFWACC-MIB \
++	UCD-DLMOD-MIB UCD-DISKIO-MIB
  
+-V3MIBS	= SNMP-FRAMEWORK-MIB.txt SNMP-MPD-MIB.txt SNMP-TARGET-MIB.txt \
+-	SNMP-NOTIFICATION-MIB.txt SNMP-PROXY-MIB.txt \
+-	SNMP-USER-BASED-SM-MIB.txt SNMP-VIEW-BASED-ACM-MIB.txt \
+-	SNMP-COMMUNITY-MIB.txt TRANSPORT-ADDRESS-MIB.txt
+-
+-AGENTMIBS = AGENTX-MIB.txt SMUX-MIB.txt
+-
+-IANAMIBS = IANAifType-MIB.txt IANA-LANGUAGE-MIB.txt \
+-	IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt
+-
+-RFCMIBS	= IF-MIB.txt IF-INVERTED-STACK-MIB.txt \
+-	EtherLike-MIB.txt \
+-	IP-MIB.txt IP-FORWARD-MIB.txt IANA-RTPROTO-MIB.txt \
+-	TCP-MIB.txt UDP-MIB.txt \
+-	INET-ADDRESS-MIB.txt HCNUM-TC.txt \
+-	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 \
+-	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
+-
+-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
+-
+-UCDMIBS = UCD-SNMP-MIB.txt UCD-DEMO-MIB.txt UCD-IPFWACC-MIB.txt \
+-	UCD-DLMOD-MIB.txt UCD-DISKIO-MIB.txt
+-
+-DEFAULTMIBS = @default_mibs_install@
+-
 -MIBS	= $(V1MIBS) $(V2MIBS) $(V3MIBS) $(RFCMIBS) \
 -	$(AGENTMIBS) $(IANAMIBS) \
 -	$(NETSNMPMIBS) $(UCDMIBS) $(DEFAULTMIBS)
-+MIBS	=  $(NETSNMPMIBS) $(UCDMIBS) $(DEFAULTMIBS) $(EXTRAMIBS)
++EXTRAMIBS = GNOME-SMI LM-SENSORS-MIB
++
++MIBS	= $(NETSNMPMIBS) $(UCDMIBS) $(EXTRAMIBS)
  
  all: standardall
  
+ mibsinstall: installdirs
+-	@for i in $(MIBS) ; do \
+-		$(INSTALL_DATA) $(srcdir)/$$i $(INSTALL_PREFIX)$(mibdir) ; \
+-		echo "install: installed $$i in $(INSTALL_PREFIX)$(mibdir)" ; \
++	@for i in $(MIBS); do \
++		$(INSTALL_DATA) $(srcdir)/$$i.txt $(INSTALL_PREFIX)$(mibdir)/$$i ; \
++		echo "install: installed $$i.txt in $(INSTALL_PREFIX)$(mibdir)/$$i" ; \
+ 	done
+ 
+ mibsuninstall: installdirs
+Index: net-snmp-5.4.3/Makefile.in
+===================================================================
+--- net-snmp-5.4.3.orig/Makefile.in	2007-06-08 22:32:56.000000000 +0200
++++ net-snmp-5.4.3/Makefile.in	2010-06-04 17:10:51.000000000 +0200
+@@ -156,7 +156,7 @@
+ #
+ # override LD_RUN_PATH to avoid dependencies on the build directory
+ perlmodules: perlmakefiles subdirs
+-	@(cd perl ; $(MAKE) LD_RUN_PATH="$(libdir):`$(PERL) -e 'use Config; print qq($$Config{archlibexp}/CORE);'`") ; \
++	@(cd perl ; $(MAKE) LD_RUN_PATH="") ; \
+         if test $$? != 0 ; then \
+            exit 1 ; \
+         fi
diff --git a/debian/patches/05_searchdirs.README b/debian/patches/05_searchdirs.README
new file mode 100644
index 0000000..4b623a7
--- /dev/null
+++ b/debian/patches/05_searchdirs.README
@@ -0,0 +1 @@
+Debian patch to add search path for mib2c
diff --git a/debian/patches/05_searchdirs.patch b/debian/patches/05_searchdirs.patch
index 43f96ec..cb1bade 100644
--- a/debian/patches/05_searchdirs.patch
+++ b/debian/patches/05_searchdirs.patch
@@ -1,6 +1,3 @@
-Makefile patch to include libwrap and libsensors libraries and install extra
-MIB files.
-
 --- net-snmp-5.1.2.orig/local/mib2c
 +++ net-snmp-5.1.2/local/mib2c
 @@ -60,8 +60,9 @@
diff --git a/debian/patches/06_extramibs.README b/debian/patches/06_extramibs.README
new file mode 100644
index 0000000..7e029a4
--- /dev/null
+++ b/debian/patches/06_extramibs.README
@@ -0,0 +1 @@
+Extra MIB files shipped with Debian.
diff --git a/debian/patches/06_extramibs.patch b/debian/patches/06_extramibs.patch
index 792d66e..a777b3a 100644
--- a/debian/patches/06_extramibs.patch
+++ b/debian/patches/06_extramibs.patch
@@ -1,5 +1,3 @@
-Extra MIB files shipped with Debian.
-
 diff -ruN net-snmp-5.4.1.orig/mibs/GNOME-SMI.txt net-snmp-5.4.1/mibs/GNOME-SMI.txt
 --- net-snmp-5.4.1.orig/mibs/GNOME-SMI.txt	1970-01-01 01:00:00.000000000 +0100
 +++ net-snmp-5.4.1/mibs/GNOME-SMI.txt	2007-09-20 16:33:55.000000000 +0200
diff --git a/debian/patches/07_docfiles.README b/debian/patches/07_docfiles.README
new file mode 100644
index 0000000..7b6cfd4
--- /dev/null
+++ b/debian/patches/07_docfiles.README
@@ -0,0 +1 @@
+Patch documentation files to change paths to Debian specific locations.
diff --git a/debian/patches/07_docfiles.patch b/debian/patches/07_docfiles.patch
index 01dbda2..999509d 100644
--- a/debian/patches/07_docfiles.patch
+++ b/debian/patches/07_docfiles.patch
@@ -1,5 +1,3 @@
-Patch documentation files to change paths to Debian specific locations.
-
 Index: net-snmp-5.4.3/FAQ
 ===================================================================
 --- net-snmp-5.4.3.orig/FAQ	2010-05-23 22:39:44.000000000 +0200
diff --git a/debian/patches/08_defaultconfig.README b/debian/patches/08_defaultconfig.README
new file mode 100644
index 0000000..cceb830
--- /dev/null
+++ b/debian/patches/08_defaultconfig.README
@@ -0,0 +1 @@
+Default snmpd.config file used by Debian
diff --git a/debian/patches/08_defaultconfig.patch b/debian/patches/08_defaultconfig.patch
new file mode 100644
index 0000000..b16c8a6
--- /dev/null
+++ b/debian/patches/08_defaultconfig.patch
@@ -0,0 +1,23 @@
+Index: net-snmp-5.4.3/EXAMPLE-trap.conf
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ net-snmp-5.4.3/EXAMPLE-trap.conf	2010-06-04 17:15:48.000000000 +0200
+@@ -0,0 +1,18 @@
++###############################################################################
++#
++# EXAMPLE-trap.conf:
++#   An example configuration file for configuring the Net-SNMP snmptrapd agent.
++#
++###############################################################################
++#
++# This file is intended to only be an example.  If, however, you want
++# to use it, it should be placed in /etc/snmp/snmptrapd.conf.
++# When the snmptrapd agent starts up, this is where it will look for it.
++#
++# All lines beginning with a '#' are comments and are intended for you
++# to read.  All other lines are configuration commands for the agent.
++
++#
++# PLEASE: read the snmptrapd.conf(5) manual page as well!
++#
++
diff --git a/debian/patches/25_duplicate_iftable.README b/debian/patches/25_duplicate_iftable.README
new file mode 100644
index 0000000..1ea7085
--- /dev/null
+++ b/debian/patches/25_duplicate_iftable.README
@@ -0,0 +1,11 @@
+Patch from
+http://sourceforge.net/tracker/index.php?func=detail&aid=1513191&group_id=12694&atid=312694 :
+
+This patch fixes bug #1238981 for me. If a new device
+will be added, the old device are first checked. If
+there's an old device with the same name is found, the
+old device is removed from the list. This fixes the
+problem that i have tons of ppp0 interfaces in the
+snmpd ifTable.
+
+Signed-of-by: Sven Schnelle <svens at gmx.de>
diff --git a/debian/patches/25_duplicate_iftable.patch b/debian/patches/25_duplicate_iftable.patch
new file mode 100644
index 0000000..d940147
--- /dev/null
+++ b/debian/patches/25_duplicate_iftable.patch
@@ -0,0 +1,99 @@
+diff -ru net-snmp-5.4.2.1.orig/agent/mibgroup/if-mib/data_access/interface.c net-snmp-5.4.2.1/agent/mibgroup/if-mib/data_access/interface.c
+--- net-snmp-5.4.2.1.orig/agent/mibgroup/if-mib/data_access/interface.c	2008-02-23 00:52:33.000000000 +0100
++++ net-snmp-5.4.2.1/agent/mibgroup/if-mib/data_access/interface.c	2009-07-31 17:10:49.000000000 +0200
+@@ -469,12 +469,12 @@
+         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");
++                snmp_log(LOG_ERR, "IfIndex of an interface changed.\n");
+                 logged = 1;
+             }
+-            DEBUGMSGTL(("access:interface:ifIndex", "index %d != tmp for %s\n",
+-                         index, name));
++	    se_remove_value_from_slist("interfaces", name);
++	    se_add_pair_to_slist("interfaces", strdup(name), index);
++	    DEBUGMSGTL(("access:interface:ifIndex", "ifname %s, old index %d, already existing, replaced with %d\n", name, tmp, index));
+         }
+ }
+ 
+diff -ru net-snmp-5.4.2.1.orig/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c net-snmp-5.4.2.1/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c
+--- net-snmp-5.4.2.1.orig/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c	2008-02-12 20:05:24.000000000 +0100
++++ net-snmp-5.4.2.1/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c	2009-07-31 17:04:17.000000000 +0200
+@@ -266,8 +266,21 @@
+ _add_new_interface(netsnmp_interface_entry *ifentry,
+                    netsnmp_container *container)
+ {
+-    ifTable_rowreq_ctx *rowreq_ctx;
+-
++    ifTable_rowreq_ctx *rowreq_ctx, *container_entry;
++    netsnmp_iterator *ctxit;
++    ctxit = CONTAINER_ITERATOR(container);
++    container_entry = ITERATOR_FIRST(ctxit);
++
++    for(; container_entry; container_entry = ITERATOR_NEXT(ctxit)) {
++	if(!strcmp(ifentry->name, container_entry->data.ifName) && \
++	    ifentry->index != container_entry->data.ifentry->index) {
++		DEBUGMSGTL(("ifTable:access", "removing old entry %s (index %d != %d)\n",
++		    container_entry->data.ifName, container_entry->data.ifentry->index, ifentry->index));
++		    se_remove_value_from_slist("interfaces", container_entry->data.ifName);
++		CONTAINER_REMOVE(container, container_entry);
++		ifTable_release_rowreq_ctx(container_entry);
++		}
++    }
+     DEBUGMSGTL(("ifTable:access", "creating new entry\n"));
+ 
+     /*
+Nur in net-snmp-5.4.2.1/agent/mibgroup/if-mib/ifTable: ifTable_data_access.c.orig.
+diff -ru net-snmp-5.4.2.1.orig/snmplib/snmp_enum.c net-snmp-5.4.2.1/snmplib/snmp_enum.c
+--- net-snmp-5.4.2.1.orig/snmplib/snmp_enum.c	2005-02-09 20:46:35.000000000 +0100
++++ net-snmp-5.4.2.1/snmplib/snmp_enum.c	2009-07-31 17:04:17.000000000 +0200
+@@ -213,6 +213,27 @@
+     return SE_DNE;              /* XXX: um, no good solution here */
+ }
+ 
++int se_remove_value_from_list(struct snmp_enum_list **list, const char *label)
++{
++   struct snmp_enum_list *lastlist;
++   if(!list)
++     return SE_DNE;
++
++   lastlist = NULL;
++   while(*list) {
++      if(strcmp((*list)->label, label) == 0) {
++	 free((*list)->label);
++	 if(lastlist)
++	   lastlist->next = (*list)->next;
++	 free(*list);
++	 *list = NULL;
++	 return 0;
++      }
++      lastlist = *list;
++      (*list) = (*list)->next;
++   }
++   
++}
+ int
+ se_find_free_value_in_list(struct snmp_enum_list *list)
+ {
+@@ -331,6 +352,19 @@
+     return (se_find_value_in_list(se_find_slist(listname), label));
+ }
+ 
++void se_remove_value_from_slist(const char *listname, const char *label)
++{
++   struct snmp_enum_list_str *sptr, *lastp = NULL;
++   struct snmp_enum_list *list;
++   if (!listname)
++     return;
++
++   for (sptr = sliststorage;
++	sptr != NULL; lastp = sptr, sptr = sptr->next)
++     if (sptr->name && strcmp(sptr->name, listname) == 0)
++       se_remove_value_from_list(&sptr->list, label);
++}
++
+ int
+ se_find_free_value_in_slist(const char *listname)
+ {
diff --git a/debian/patches/26_kfreebsd.README b/debian/patches/26_kfreebsd.README
new file mode 100644
index 0000000..fa94b0f
--- /dev/null
+++ b/debian/patches/26_kfreebsd.README
@@ -0,0 +1 @@
+Preliminary support for kfreebsd.
diff --git a/debian/patches/26_kfreebsd.patch b/debian/patches/26_kfreebsd.patch
index 6ff23f0..cf9613a 100644
--- a/debian/patches/26_kfreebsd.patch
+++ b/debian/patches/26_kfreebsd.patch
@@ -1,9 +1,95 @@
-Preliminary support for kfreebsd.
-Index: net-snmp-5.7.2~dfsg/agent/mibgroup/hardware/cpu/cpu_sysctl.c
+only in patch2:
+unchanged:
+Index: net-snmp-5.4.2.1/Makefile.in
 ===================================================================
---- net-snmp-5.7.2~dfsg.orig/agent/mibgroup/hardware/cpu/cpu_sysctl.c	2013-01-07 13:18:53.861513650 +0900
-+++ net-snmp-5.7.2~dfsg/agent/mibgroup/hardware/cpu/cpu_sysctl.c	2013-01-07 13:21:32.693902019 +0900
-@@ -12,7 +12,7 @@
+--- net-snmp-5.4.2.1.orig/Makefile.in	2009-11-27 15:13:25.000000000 +0100
++++ net-snmp-5.4.2.1/Makefile.in	2009-11-27 15:13:35.000000000 +0100
+@@ -17,8 +17,8 @@
+ INCLUDESUBDIR=system
+ INCLUDESUBDIRHEADERS= aix.h bsd.h bsdi3.h bsdi4.h bsdi.h cygwin.h \
+ 	darwin.h darwin7.h darwin8.h darwin9.h freebsd5.h freebsd6.h \
+-	dynix.h freebsd2.h freebsd3.h freebsd4.h freebsd.h generic.h hpux.h \
+-	irix.h linux.h mingw32.h mips.h netbsd.h openbsd.h osf5.h \
++	dynix.h freebsd2.h freebsd3.h freebsd4.h freebsd.h generic.h kfreebsd.h \
++	hpux.h irix.h linux.h mingw32.h mips.h netbsd.h openbsd.h osf5.h \
+ 	solaris2.3.h solaris2.4.h solaris2.5.h solaris2.6.h \
+ 	solaris.h sunos.h svr5.h sysv.h ultrix4.h dragonfly.h
+ INCLUDESUBDIR2=machine
+Index: net-snmp-5.4.2.1/include/net-snmp/system/kfreebsd.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ net-snmp-5.4.2.1/include/net-snmp/system/kfreebsd.h	2009-11-27 15:13:35.000000000 +0100
+@@ -0,0 +1,65 @@
++#include "freebsd6.h"
++#define freebsd6 freebsd6
++
++#include <osreldate.h>
++#define __FreeBSD_version __FreeBSD_kernel_version
++
++#include <sys/queue.h>
++#include <sys/_types.h>
++
++typedef unsigned int tcp_seq;
++typedef unsigned int tcp_cc;        
++#define TCPOPT_SACK_HDR         (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_SACK<<8)
++#define MAX_SACK_BLKS   6       /* Max # SACK blocks stored at sender side */
++#define TCP_MAX_SACK    3       /* MAX # SACKs sent in any segment */
++
++#include <netinet/tcp_var.h>  
++
++#include <net/ethernet.h>
++#include <net/if_arp.h>
++#include <netinet/in.h>
++
++/*
++ * Externalized form of struct socket used by the sysctl(3) interface.
++ */
++struct xsocket {
++        size_t  xso_len;        /* length of this structure */
++        struct  socket *xso_so; /* makes a convenient handle sometimes */
++        short   so_type;
++        short   so_options;
++        short   so_linger;
++        short   so_state;
++        caddr_t so_pcb;         /* another convenient handle */
++        int     xso_protocol;
++        int     xso_family;
++        short   so_qlen;
++        short   so_incqlen;
++        short   so_qlimit;
++        short   so_timeo;
++        u_short so_error;
++        pid_t   so_pgid;
++        u_long  so_oobmark;
++        struct xsockbuf {
++                u_int   sb_cc;
++                u_int   sb_hiwat;
++                u_int   sb_mbcnt;
++                u_int   sb_mbmax;
++                int     sb_lowat;
++                int     sb_timeo;
++                short   sb_flags;
++        } so_rcv, so_snd;
++        uid_t   so_uid;         /* XXX */
++};
++typedef     u_quad_t so_gen_t;
++
++#define _SYS_SOCKETVAR_H_
++#include <netinet/in_pcb.h>
++
++struct  xtcpcb {
++        size_t  xt_len;
++        struct  inpcb   xt_inp;
++        struct  tcpcb   xt_tp;
++        struct  xsocket xt_socket;
++        u_quad_t        xt_alignment_hack;
++};
++
+Index: net-snmp-5.4.2.1/agent/mibgroup/hardware/cpu/cpu_sysctl.c
+===================================================================
+--- net-snmp-5.4.2.1.orig/agent/mibgroup/hardware/cpu/cpu_sysctl.c	2009-11-27 15:15:37.000000000 +0100
++++ net-snmp-5.4.2.1/agent/mibgroup/hardware/cpu/cpu_sysctl.c	2009-11-27 15:19:01.000000000 +0100
+@@ -11,7 +11,7 @@
  #include <unistd.h>
  #include <sys/types.h>
  
@@ -12,16 +98,16 @@ Index: net-snmp-5.7.2~dfsg/agent/mibgroup/hardware/cpu/cpu_sysctl.c
  #include <sys/resource.h>
  #if !defined(CPUSTATES)
  #include <sys/dkstat.h>
-@@ -83,7 +83,7 @@
- #elif defined(KERN_CPTIME)                /* OpenBSD */
- #define NETSNMP_KERN_CPU  KERN_CPTIME
+@@ -73,7 +73,7 @@
+ #define NETSNMP_CPU_STATS uint64_t
+ #endif
  
 -#elif defined(__FreeBSD__)
 +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
  #define NETSNMP_KERN_CPU  0    /* dummy value - sysctlnametomib(2) should be used */
  
  #else
-@@ -117,7 +117,7 @@
+@@ -107,7 +107,7 @@
  #define NETSNMP_VM_STATS_TYPE  struct uvmexp
  #endif  /* VM_UVMEXP2 || VM_UVMEXP */
  
@@ -31,20 +117,11 @@ Index: net-snmp-5.7.2~dfsg/agent/mibgroup/hardware/cpu/cpu_sysctl.c
  #define NETSNMP_VM_STATS_TYPE  struct vmmeter
      #define NS_VM_INTR		v_intr
 @@ -159,7 +159,7 @@
-      * Don't fight it, Dave - go with the flow....
-      */
-     NETSNMP_CPU_STATS cpu_stats[CPUSTATES];
--#if !defined(__FreeBSD__) && !defined(__NetBSD__)
-+#if !defined(__FreeBSD__) || defined(__FreeBSD_kernel__) && !defined(__NetBSD__)
-     int            cpu_mib[] = { CTL_KERN, NETSNMP_KERN_CPU };
- #endif
-     size_t         cpu_size  = sizeof(cpu_stats);
-@@ -173,7 +173,7 @@
      size_t         mem_size  = sizeof(NETSNMP_VM_STATS_TYPE);
      netsnmp_cpu_info *cpu = netsnmp_cpu_get_byIdx( -1, 0 );
  
--#if (defined(__FreeBSD__) || defined(__NetBSD__))
-+#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__))
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
      sysctlbyname("kern.cp_time", cpu_stats, &cpu_size, NULL, 0);
  #else
      sysctl(cpu_mib, 2,  cpu_stats, &cpu_size, NULL, 0);
diff --git a/debian/patches/27_kfreebsd_bug625985.patch b/debian/patches/27_kfreebsd_bug625985.patch
deleted file mode 100644
index c23b671..0000000
--- a/debian/patches/27_kfreebsd_bug625985.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Index: net-snmp-5.7.2~dfsg/agent/mibgroup/hardware/memory/memory_freebsd.c
-===================================================================
---- net-snmp-5.7.2~dfsg.orig/agent/mibgroup/hardware/memory/memory_freebsd.c	2013-01-07 14:23:52.000000000 +0900
-+++ net-snmp-5.7.2~dfsg/agent/mibgroup/hardware/memory/memory_freebsd.c	2013-01-07 14:23:55.000000000 +0900
-@@ -211,11 +211,12 @@
- 
- #include <sys/conf.h>
- 
-+kvm_t   *kd = NULL;
-+
- int
- swapmode(long pagesize)
- {
-     int             i, n;
--    static kvm_t   *kd = NULL;
-     struct kvm_swap kswap[16];
-     netsnmp_memory_info *mem;
-     char buf[1024];
diff --git a/debian/patches/32_mnttab_path.README b/debian/patches/32_mnttab_path.README
new file mode 100644
index 0000000..e8183d7
--- /dev/null
+++ b/debian/patches/32_mnttab_path.README
@@ -0,0 +1 @@
+Patch to hardcode mount table location.
diff --git a/debian/patches/32_mnttab_path.patch b/debian/patches/32_mnttab_path.patch
new file mode 100644
index 0000000..ad92ff1
--- /dev/null
+++ b/debian/patches/32_mnttab_path.patch
@@ -0,0 +1,31 @@
+Index: net-snmp-5.4.3/configure.in
+===================================================================
+--- net-snmp-5.4.3.orig/configure.in	2010-05-23 22:39:44.000000000 +0200
++++ net-snmp-5.4.3/configure.in	2010-06-04 17:27:58.000000000 +0200
+@@ -2609,13 +2609,19 @@
+ 
+ AC_CACHE_CHECK(for mount table location,ac_cv_ETC_MNTTAB,
+ [ac_cv_ETC_MNTTAB="unknown"
+-for i in /etc/mnttab /etc/mtab /etc/filesystems /dev/mnttab
+-  do
+-  if test -f $i -o -c $i; then
+-    ac_cv_ETC_MNTTAB="$i"
+-    break;
+-  fi
+-done
++AC_ARG_WITH(mnttab,
++[  --with-mnttab=\"/etc/mnttab\"  Mount table location.
++                                 The default is to autodetect this.],
++	[ac_cv_ETC_MNTTAB="$with_mnttab"])
++if test "$ac_cv_ETC_MNTTAB" = "unknown"; then
++  for i in /etc/mnttab /etc/mtab /etc/filesystems /dev/mnttab
++    do
++    if test -f $i -o -c $i; then
++      ac_cv_ETC_MNTTAB="$i"
++      break;
++    fi
++  done
++fi
+ ])
+ 
+ AC_DEFINE_UNQUOTED(ETC_MNTTAB,"$ac_cv_ETC_MNTTAB")
diff --git a/debian/patches/44_nlist_kvm.README b/debian/patches/44_nlist_kvm.README
new file mode 100644
index 0000000..9afa706
--- /dev/null
+++ b/debian/patches/44_nlist_kvm.README
@@ -0,0 +1 @@
+Patch from Petr Salinger <Petr.Salinger at seznam.cz>: search nlist() in libkvm.
diff --git a/debian/patches/44_nlist_kvm.patch b/debian/patches/44_nlist_kvm.patch
new file mode 100644
index 0000000..ad9453d
--- /dev/null
+++ b/debian/patches/44_nlist_kvm.patch
@@ -0,0 +1,12 @@
+--- net-snmp-5.4.1~dfsg.orig/configure.in
++++ net-snmp-5.4.1~dfsg/configure.in
+@@ -2854,6 +2854,9 @@
+ AC_CHECK_FUNC(kvm_getswapinfo, AC_DEFINE(HAVE_KVM_GETSWAPINFO, 1, [Define to 1 if you have the `kvm_getswapinfo' function.]),
+ 	AC_CHECK_LIB(kvm, kvm_getswapinfo, AC_DEFINE(HAVE_KVM_GETSWAPINFO, 1, [Define to 1 if you have the `kvm_getswapinfo' function.])
+ 	_libkvm="-lkvm"))
++AC_CHECK_FUNC(nlist, AC_DEFINE(HAVE_NLIST, 1, [Define to 1 if you have the `nlist' function.]),
++        AC_CHECK_LIB(kvm, nlist, AC_DEFINE(HAVE_NLIST, 1, [Define to 1 if you have the `nlist' function.])
++        _libkvm="-lkvm"))
+ if test "x${_libkvm}" != "x"; then
+ 	AC_DEFINE(HAVE_LIBKVM, 1, [Define to 1 if you have the `kvm' library (-lkvm).])
+ 	LAGENTLIBS="$LAGENTLIBS ${_libkvm}"
diff --git a/debian/patches/56_manpage.README b/debian/patches/56_manpage.README
new file mode 100644
index 0000000..79a923e
--- /dev/null
+++ b/debian/patches/56_manpage.README
@@ -0,0 +1,2 @@
+fix some manpage problems found by lintian.
+(applied upstream in changeset 19119)
diff --git a/debian/patches/56_manpage.patch b/debian/patches/56_manpage.patch
new file mode 100644
index 0000000..b3bc3b0
--- /dev/null
+++ b/debian/patches/56_manpage.patch
@@ -0,0 +1,171 @@
+Index: net-snmp-5.4.3/man/snmpd.conf.5.def
+===================================================================
+--- net-snmp-5.4.3.orig/man/snmpd.conf.5.def	2010-06-04 17:49:31.000000000 +0200
++++ net-snmp-5.4.3/man/snmpd.conf.5.def	2010-06-04 17:49:43.000000000 +0200
+@@ -419,7 +419,7 @@
+ Historically, the Net-SNMP agent has reported such file systems
+ as 'Fixed Disks', and this is still the default behaviour.
+ Setting this directive to '1' reports such file systems as
+-'Network Disks', as required by the Host Resources MIB.
++\'Network Disks', as required by the Host Resources MIB.
+ .SS Process Monitoring 
+ The \fChrSWRun\fR group of the Host Resources MIB provides
+ information about individual processes running on the local system.
+Index: net-snmp-5.4.3/man/snmptrapd.conf.5.def
+===================================================================
+--- net-snmp-5.4.3.orig/man/snmptrapd.conf.5.def	2010-06-04 17:49:31.000000000 +0200
++++ net-snmp-5.4.3/man/snmptrapd.conf.5.def	2010-06-04 17:49:43.000000000 +0200
+@@ -179,7 +179,7 @@
+ NOTIFICATION-TYPE object, and the specified program will be invoked for
+ notifications that match this OID exactly.  However this token also
+ supports a simple form of wildcard suffixing.  By appending the character
+-'*' to the OID token, the corresponding program will be invoked for any
++\'*' to the OID token, the corresponding program will be invoked for any
+ notification based within subtree rooted at the specified OID.
+ For example, an OID token of \fC.1.3.6.1.4.1*\fP would match any enterprise
+ specific notification (including the specified OID itself).
+Index: net-snmp-5.4.3/man/mib_api.3.def
+===================================================================
+--- net-snmp-5.4.3.orig/man/mib_api.3.def	2010-06-04 17:49:31.000000000 +0200
++++ net-snmp-5.4.3/man/mib_api.3.def	2010-06-04 17:49:43.000000000 +0200
+@@ -124,7 +124,8 @@
+ lb lb lb
+ l  l  l.
+ tag + len + load the new module when:
+-NULL + 0 + always (the old module is a strict subset of the new)
++NULL + 0 + always (the old module is a strict subset of
++ + + the new)
+ name + 0 + for the given tag only
+ name + non-0 + for any identifier with this prefix
+ .TE
+@@ -317,6 +318,6 @@
+ .TP 10
+ MIBS
+ A colon separated list of MIB modules to load.
+-Default: IP-MIB:IF-MIB:TCP-MIB:UDP-MIB:SNMPv2-MIB:RFC1213-MIB:UCD-SNMP-MIB.
++Default: IP-MIB:IF-MIB:TCP-MIB:UDP-MIB:SNMPv2-MIB: RFC1213-MIB:UCD-SNMP-MIB.
+ .SH "SEE ALSO"
+ .BR snmp_api "(3)"
+Index: net-snmp-5.4.3/man/netsnmp_container.3
+===================================================================
+--- net-snmp-5.4.3.orig/man/netsnmp_container.3	2010-06-04 17:49:31.000000000 +0200
++++ net-snmp-5.4.3/man/netsnmp_container.3	2010-06-04 17:49:43.000000000 +0200
+@@ -2,7 +2,7 @@
+ .ad l
+ .nh
+ .SH NAME
+-container \- 
++container \- Net-SNMP null container
+ .SS "Modules"
+ 
+ .in +1c
+Index: net-snmp-5.4.3/man/netsnmp_example_scalar_int.3
+===================================================================
+--- net-snmp-5.4.3.orig/man/netsnmp_example_scalar_int.3	2010-06-04 17:49:31.000000000 +0200
++++ net-snmp-5.4.3/man/netsnmp_example_scalar_int.3	2010-06-04 17:49:43.000000000 +0200
+@@ -2,7 +2,7 @@
+ .ad l
+ .nh
+ .SH NAME
+-example_scalar_int: instantiates a few example scalars. \- This example merely creates some scalar registrations that allows some simple variables to be accessed via SNMP. 
++example_scalar_int \- This example merely creates some scalar registrations that allows some simple variables to be accessed via SNMP.
+ More...
+ .SS "Functions"
+ 
+@@ -23,4 +23,4 @@
+ .PP
+ snmpset localhost netSnmpExampleInteger.0 = 1234 netSnmpExampleScalars = 1234
+ .PP
+-snmpget localhost netSnmpExampleInteger.0 netSnmpExampleScalars = 1234 
+\ No newline at end of file
++snmpget localhost netSnmpExampleInteger.0 netSnmpExampleScalars = 1234
+Index: net-snmp-5.4.3/man/netsnmp_library.3
+===================================================================
+--- net-snmp-5.4.3.orig/man/netsnmp_library.3	2010-06-04 17:49:31.000000000 +0200
++++ net-snmp-5.4.3/man/netsnmp_library.3	2010-06-04 17:49:43.000000000 +0200
+@@ -2,7 +2,7 @@
+ .ad l
+ .nh
+ .SH NAME
+-The Net-SNMP library \- 
++netsnmp_library \- the Net-SNMP library
+ .SS "Data Structures"
+ 
+ .in +1c
+Index: net-snmp-5.4.3/man/netsnmp_mib_utilities.3
+===================================================================
+--- net-snmp-5.4.3.orig/man/netsnmp_mib_utilities.3	2010-06-04 17:49:31.000000000 +0200
++++ net-snmp-5.4.3/man/netsnmp_mib_utilities.3	2010-06-04 17:49:43.000000000 +0200
+@@ -2,7 +2,7 @@
+ .ad l
+ .nh
+ .SH NAME
+-mib parsing and datatype manipulation routines. \- 
++netsnmp_mib_utilities \- the Net-SNMP mib parsing and datatype manipulation routines.
+ .SS "Data Structures"
+ 
+ .in +1c
+Index: net-snmp-5.4.3/man/netsnmp_table.3
+===================================================================
+--- net-snmp-5.4.3.orig/man/netsnmp_table.3	2010-06-04 17:49:31.000000000 +0200
++++ net-snmp-5.4.3/man/netsnmp_table.3	2010-06-04 17:49:43.000000000 +0200
+@@ -191,9 +191,9 @@
+ .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
++Entry
+ .PP
+-.column 
++column
+ .PP
+ Definition at line 784 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)"
+Index: net-snmp-5.4.3/man/netsnmp_agent.3
+===================================================================
+--- net-snmp-5.4.3.orig/man/netsnmp_agent.3	2010-06-04 17:49:31.000000000 +0200
++++ net-snmp-5.4.3/man/netsnmp_agent.3	2010-06-04 17:49:43.000000000 +0200
+@@ -2,7 +2,7 @@
+ .ad l
+ .nh
+ .SH NAME
+-The Net-SNMP agent \- 
++netsnmp_agent \- 
+ .PP
+ The snmp agent responds to SNMP queries from management stations.  
+ 
+Index: net-snmp-5.4.3/man/netsnmp_handler.3
+===================================================================
+--- net-snmp-5.4.3.orig/man/netsnmp_handler.3	2010-06-04 17:49:31.000000000 +0200
++++ net-snmp-5.4.3/man/netsnmp_handler.3	2010-06-04 17:49:43.000000000 +0200
+@@ -2,7 +2,7 @@
+ .ad l
+ .nh
+ .SH NAME
+-Net-SNMP Agent handler and extensibility API \- 
++netsnmp_handler \- 
+ .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).  
+ 
+Index: net-snmp-5.4.3/man/snmpcmd.1.def
+===================================================================
+--- net-snmp-5.4.3.orig/man/snmpcmd.1.def	2010-06-04 17:50:02.000000000 +0200
++++ net-snmp-5.4.3/man/snmpcmd.1.def	2010-06-04 17:52:49.000000000 +0200
+@@ -562,7 +562,7 @@
+ Display the varbind value only, not the OID:
+ .RS
+ .nf
+-\fC    $ snmpget -c public -v 1 \fB-Oe\fP localhost ipForwarding.0
++\fC    $ snmpget -c public -v 1 \fB-Ov\fP localhost ipForwarding.0
+     INTEGER: forwarding(1)\fR
+ .fi
+ .RE
+@@ -582,7 +582,7 @@
+ .nf
+ \fC    $ snmpgetnext -c public -v 1 localhost ipv6RouteTable
+     IPv6-MIB::ipv6RouteIfIndex.63.254.1.0.255.0.0.0.0.0.0.0.0.0.0.0.64.1 = INTEGER: 2
+-    $ snmpgetnext -c public -v 1 \fB-OE\fP localhost ipv6RouteTable
++    $ snmpgetnext -c public -v 1 \fB-OX\fP localhost ipv6RouteTable
+     IPv6-MIB::ipv6RouteIfIndex[3ffe:100:ff00:0:0:0:0:0][64][1] = INTEGER: 2
+ .fi
+ .RE
diff --git a/debian/patches/60_libsensors_api.README b/debian/patches/60_libsensors_api.README
new file mode 100644
index 0000000..0b09631
--- /dev/null
+++ b/debian/patches/60_libsensors_api.README
@@ -0,0 +1 @@
+Patch from Jonathan Nieder <jrnieder at gmail.com> to update lmsensors API to libsensors4.
diff --git a/debian/patches/60_libsensors_api.patch b/debian/patches/60_libsensors_api.patch
index 1fd4a56..6272065 100644
--- a/debian/patches/60_libsensors_api.patch
+++ b/debian/patches/60_libsensors_api.patch
@@ -1,18 +1,25 @@
-Patch from Jonathan Nieder <jrnieder at gmail.com> to update lmsensors API to libsensors4.
-
-Index: net-snmp-5.7.2~dfsg/agent/mibgroup/ucd-snmp/lmSensors.c
+Index: net-snmp-5.4.3/agent/mibgroup/ucd-snmp/lmSensors.c
 ===================================================================
---- net-snmp-5.7.2~dfsg.orig/agent/mibgroup/ucd-snmp/lmSensors.c	2013-01-14 15:20:53.481713884 +0900
-+++ net-snmp-5.7.2~dfsg/agent/mibgroup/ucd-snmp/lmSensors.c	2013-01-14 15:34:53.367634884 +0900
-@@ -94,7 +94,6 @@
-     #endif 
+--- net-snmp-5.4.3.orig/agent/mibgroup/ucd-snmp/lmSensors.c	2010-06-04 18:04:58.000000000 +0200
++++ net-snmp-5.4.3/agent/mibgroup/ucd-snmp/lmSensors.c	2010-06-04 18:06:48.000000000 +0200
+@@ -89,7 +89,6 @@
+     #include </usr/platform/sun4u/include/sys/envctrl.h>
  #else
      #include <sensors/sensors.h>
 -    #define CONFIG_FILE_NAME "/etc/sensors.conf"
  #endif
  
  #include "lmSensors.h"
-@@ -357,9 +356,7 @@
+@@ -247,7 +246,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;
+@@ -352,9 +351,7 @@
  {
      int             res;
  #ifndef solaris2
@@ -22,7 +29,7 @@ Index: net-snmp-5.7.2~dfsg/agent/mibgroup/ucd-snmp/lmSensors.c
      int             i = 0;
    
      DEBUGMSG(("ucd-snmp/lmSensors", "=> sensor_init\n"));
-@@ -371,13 +368,7 @@
+@@ -366,13 +363,7 @@
          sensor_array[i].sensor = NULL;
      }
  
@@ -37,7 +44,7 @@ Index: net-snmp-5.7.2~dfsg/agent/mibgroup/ucd-snmp/lmSensors.c
      {
          res = 2;
          goto leaving;
-@@ -395,7 +386,7 @@
+@@ -390,7 +381,7 @@
  sensor_load(void)
  {
      int rc = 0;
@@ -46,7 +53,7 @@ Index: net-snmp-5.7.2~dfsg/agent/mibgroup/ucd-snmp/lmSensors.c
  
      if (t > timestamp + 7) /* this may require some tuning - currently 7 seconds*/
      {
-@@ -947,7 +938,8 @@
+@@ -940,7 +931,8 @@
  #else /* end solaris2 only ie. ifdef everything else */
  
      const sensors_chip_name *chip;
@@ -54,9 +61,9 @@ Index: net-snmp-5.7.2~dfsg/agent/mibgroup/ucd-snmp/lmSensors.c
 +    const sensors_feature *feature;
 +    const sensors_subfeature *subfeature;
      int             chip_nr = 0;
+     int             rc = 0;
      unsigned int    i = 0;
- 
-@@ -969,78 +961,80 @@
+@@ -961,78 +953,80 @@
          sensor_array[i].current_len = DEFAULT_SENSORS;
      } /* end for */
  
@@ -73,7 +80,7 @@ Index: net-snmp-5.7.2~dfsg/agent/mibgroup/ucd-snmp/lmSensors.c
 -                !sensors_get_label(*chip, data->number, &label) &&
 -                !sensors_get_feature(*chip, data->number, &val)) {
 -                int             type = -1;
--                float           mul = 0;
+-                float           mul;
 -                _sensor_array  *array;
 -
 -                /* The label, as determined for a given chip in sensors.conf,
@@ -115,14 +122,14 @@ Index: net-snmp-5.7.2~dfsg/agent/mibgroup/ucd-snmp/lmSensors.c
 -                           free(label);
 -                           label = NULL;
 -                       } /* end if label */
--                       return 1;
+-                       return (rc=1);
 -                    } /* end if array->sensor */
 -                    array->current_len = new_size / sizeof(_sensor);
--                    DEBUGMSG(("ucd-snmp/lmSensors", "type #%d increased to %d elements\n", type, (int)array->current_len));
+-                    DEBUGMSG(("ucd-snmp/lmSensors", "type #%d increased to %d elements\n", type, array->current_len));
 -                } /* end if array->current */
--                strlcpy(array->sensor[array->n].name, label, MAX_NAME);
+-                strncpy(array->sensor[array->n].name, label, MAX_NAME);
 -                array->sensor[array->n].value = (int) (val * mul);
--                DEBUGMSGTL(("sensors","sensor %s, value %d\n",
+-                DEBUGMSGTL(("sensors","sensor %d, value %d\n",
 -                            array->sensor[array->n].name,
 -                            array->sensor[array->n].value));
 -                array->n++;
@@ -207,5 +214,5 @@ Index: net-snmp-5.7.2~dfsg/agent/mibgroup/ucd-snmp/lmSensors.c
 +            } /* end while subfeature */
 +        } /* end while feature */
      } /* end while chip */
-     DEBUGMSG(("ucd-snmp/lmSensors", "<= sensor_load\n"));
+     return rc;
  #endif  /* end else ie. ifdef everything else */
diff --git a/debian/patches/61_vacm_missing_dependency_check.README b/debian/patches/61_vacm_missing_dependency_check.README
new file mode 100644
index 0000000..cf43caa
--- /dev/null
+++ b/debian/patches/61_vacm_missing_dependency_check.README
@@ -0,0 +1,2 @@
+Do not call vacm_standard_views() if the corresponding module was not compiled.
+(applied upstream in changeset 19116)
diff --git a/debian/patches/61_vacm_missing_dependency_check.patch b/debian/patches/61_vacm_missing_dependency_check.patch
index dd94576..85486d8 100644
--- a/debian/patches/61_vacm_missing_dependency_check.patch
+++ b/debian/patches/61_vacm_missing_dependency_check.patch
@@ -1,33 +1,67 @@
-Do not call vacm_standard_views() if the corresponding module was not compiled.
-(applied upstream in changeset 19116)
-
-http://net-snmp.git.sourceforge.net/git/gitweb.cgi?p=net-snmp/net-snmp;a=commitdiff;h=93161743ab8caa5259a945a8d890ae96a99f0b1c;hp=2299559c29fc6493ac2f8836b82683c0904a9b9d
-
-However, it isn't applied newest 5.7.2 source tree... why?
-
-Index: net-snmp-5.7.2~dfsg/apps/snmptrapd_auth.c
+Index: net-snmp-5.4.3~dfsg/agent/agent_read_config.c
 ===================================================================
---- net-snmp-5.7.2~dfsg.orig/apps/snmptrapd_auth.c	2013-01-23 11:40:36.267276110 +0900
-+++ net-snmp-5.7.2~dfsg/apps/snmptrapd_auth.c	2013-01-23 11:40:36.263276099 +0900
-@@ -27,6 +27,7 @@
- #endif
+--- net-snmp-5.4.3~dfsg.orig/agent/agent_read_config.c	2008-07-24 08:53:02.000000000 +0200
++++ net-snmp-5.4.3~dfsg/agent/agent_read_config.c	2011-01-05 12:45:24.000000000 +0100
+@@ -282,7 +282,9 @@
+     snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
+                         SNMPD_CALLBACK_PRE_UPDATE_CONFIG, NULL);
+     free_config();
++#ifdef USING_MIBII_VACM_CONF_MODULE
+     vacm_standard_views(0,0,NULL,NULL);
++#endif
+     read_configs();
+ }
+ 
+Index: net-snmp-5.4.3~dfsg/apps/snmptrapd.c
+===================================================================
+--- net-snmp-5.4.3~dfsg.orig/apps/snmptrapd.c	2010-04-30 21:10:17.000000000 +0200
++++ net-snmp-5.4.3~dfsg/apps/snmptrapd.c	2011-01-05 12:45:24.000000000 +0100
+@@ -1477,7 +1477,9 @@
+ trapd_update_config(void)
+ {
+     free_config();
++#ifdef USING_MIBII_VACM_CONF_MODULE
+     vacm_standard_views(0,0,NULL,NULL);
++#endif
+     read_configs();
+ }
  
+Index: net-snmp-5.4.3~dfsg/apps/snmptrapd_auth.c
+===================================================================
+--- net-snmp-5.4.3~dfsg.orig/apps/snmptrapd_auth.c	2006-09-15 02:48:50.000000000 +0200
++++ net-snmp-5.4.3~dfsg/apps/snmptrapd_auth.c	2011-01-05 12:47:02.000000000 +0100
+@@ -18,6 +18,7 @@
+ #include "snmptrapd_ds.h"
+ #include "mibII/vacm_conf.h"
  #include <net-snmp/agent/agent_trap.h>
 +#include <net-snmp/agent/net-snmp-agent-includes.h>
  
  /**
   * initializes the snmptrapd authorization code registering needed
-Index: net-snmp-5.7.2~dfsg/agent/agent_read_config.c
-===================================================================
---- net-snmp-5.7.2~dfsg.orig/agent/agent_read_config.c	2013-01-23 11:38:12.334930631 +0900
-+++ net-snmp-5.7.2~dfsg/agent/agent_read_config.c	2013-01-23 11:41:40.083429045 +0900
-@@ -290,6 +290,9 @@
-     snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
-                         SNMPD_CALLBACK_PRE_UPDATE_CONFIG, NULL);
-     free_config();
+@@ -32,8 +33,10 @@
+                                            netsnmp_trapd_auth);
+     traph->authtypes = TRAP_AUTH_NONE;
+ 
 +#ifdef USING_MIBII_VACM_CONF_MODULE
-+    vacm_standard_views(0,0,NULL,NULL);
+     /* register our configuration tokens for VACM configs */
+     init_vacm_config_tokens();
++#endif
+ 
+     /* register a config token for turning off the authorization entirely */
+     netsnmp_ds_register_config(ASN_BOOLEAN, "snmptrapd", "disableAuthorization",
+@@ -109,6 +112,7 @@
+         return NETSNMPTRAPD_HANDLER_FINISH;
+     }
+ 
++#ifdef USING_MIBII_VACM_CONF_MODULE
+     /* check the pdu against each typo of VACM access we may want to
+        check up on later.  We cache the results for future lookup on
+        each call to netsnmp_trapd_check_auth */
+@@ -125,6 +129,7 @@
+         }
+     }
+     DEBUGMSGTL(("snmptrapd:auth", "Final bitmask auth: %x\n", ret));
 +#endif
-     read_configs();
- }
  
+     if (ret) {
+         /* we have policy to at least do "something".  Remember and continue. */
diff --git a/debian/patches/62_add_lib_cflags.README b/debian/patches/62_add_lib_cflags.README
new file mode 100644
index 0000000..8e0a005
--- /dev/null
+++ b/debian/patches/62_add_lib_cflags.README
@@ -0,0 +1,2 @@
+Patch to add option "--base-lib-cflags" to net-snmp-config. This flag returns options needed to link
+against libnetsnmp. In particular, no perl specific options are provided.
diff --git a/debian/patches/62_add_lib_cflags.patch b/debian/patches/62_add_lib_cflags.patch
index 305d777..527c595 100644
--- a/debian/patches/62_add_lib_cflags.patch
+++ b/debian/patches/62_add_lib_cflags.patch
@@ -1,17 +1,23 @@
-Patch to add option "--base-lib-cflags" to net-snmp-config. This flag returns options needed to link
-against libnetsnmp. In particular, no perl specific options are provided.
-
-It was reported in
-"libsnmp-base: forcing perl headers in net-snmp-config --cflags breaks perl builds"
-http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502806
-
-
-
-Index: net-snmp-5.7.2~dfsg/net-snmp-config.in
+Index: net-snmp-5.4.2.1/configure.in
 ===================================================================
---- net-snmp-5.7.2~dfsg.orig/net-snmp-config.in	2013-01-14 04:28:45.350028570 +0000
-+++ net-snmp-5.7.2~dfsg/net-snmp-config.in	2013-01-14 04:28:45.350028570 +0000
-@@ -140,6 +140,9 @@
+--- net-snmp-5.4.2.1.orig/configure.in	2009-12-01 17:30:39.000000000 +0100
++++ net-snmp-5.4.2.1/configure.in	2009-12-01 17:30:40.000000000 +0100
+@@ -3050,6 +3050,10 @@
+   fi
+ fi
+ 
++# Save CFLAGS for net-snmp-config
++LIBCFLAGS="$CFLAGS"
++AC_SUBST(LIBCFLAGS)
++
+ ####################
+ # on to embedding...
+ 
+Index: net-snmp-5.4.2.1/net-snmp-config.in
+===================================================================
+--- net-snmp-5.4.2.1.orig/net-snmp-config.in	2009-12-01 17:30:12.000000000 +0100
++++ net-snmp-5.4.2.1/net-snmp-config.in	2009-12-01 17:31:16.000000000 +0100
+@@ -107,6 +107,9 @@
      --base-cflags)
        echo @CFLAGS@ @CPPFLAGS@ -I${NSC_INCLUDEDIR}
        ;;
@@ -21,7 +27,7 @@ Index: net-snmp-5.7.2~dfsg/net-snmp-config.in
      --cflags|--cf*)
        echo @CFLAGS@ @DEVFLAGS@ @CPPFLAGS@ -I. -I${NSC_INCLUDEDIR}
        ;;
-@@ -643,6 +646,8 @@
+@@ -684,6 +687,8 @@
    echo "  These options produce the various compilation flags needed when"
    echo "  building external SNMP applications:"
    echo ""
diff --git a/debian/patches/64_missing_lib.patch b/debian/patches/64_missing_lib.patch
deleted file mode 100644
index f395e9d..0000000
--- a/debian/patches/64_missing_lib.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Index: net-snmp-5.7.2~dfsg/apps/Makefile.in
-===================================================================
---- net-snmp-5.7.2~dfsg.orig/apps/Makefile.in	2012-10-09 22:28:58.000000000 +0000
-+++ net-snmp-5.7.2~dfsg/apps/Makefile.in	2013-01-14 05:56:10.000000000 +0000
-@@ -83,6 +83,8 @@
- USEAGENTLIBS	= $(MIBLIB) $(AGENTLIB) $(USELIBS)
- MYSQL_LIBS	= @MYSQL_LIBS@
- MYSQL_INCLUDES	= @MYSQL_INCLUDES@
-+LIBCRYPTO       = @LIBCRYPTO@
-+LIBWRAP         = @LIBWRAP@
- 
- VAL_LIBS	= @VAL_LIBS@
- LIBS		= $(USELIBS) $(VAL_LIBS) @LIBS@
-@@ -170,7 +172,7 @@
- 	$(LINK) ${CFLAGS} -o $@ snmptest.$(OSUFFIX) ${LDFLAGS} ${LIBS}
- 
- snmptrapd$(EXEEXT):    $(TRAPD_OBJECTS) $(USETRAPLIBS) $(INSTALLLIBS)
--	$(LINK) ${CFLAGS} -o $@ $(TRAPD_OBJECTS) $(INSTALLLIBS) ${LDFLAGS} ${TRAPLIBS}
-+	$(LINK) ${CFLAGS} -o $@ $(TRAPD_OBJECTS) $(INSTALLLIBS) ${LDFLAGS} ${TRAPLIBS} $(LIBWRAP)
- 
- snmptrap$(EXEEXT):    snmptrap.$(OSUFFIX) $(USELIBS)
- 	$(LINK) ${CFLAGS} -o $@ snmptrap.$(OSUFFIX) ${LDFLAGS} ${LIBS}
-@@ -183,7 +185,7 @@
- 	$(LINK) ${CFLAGS} -o $@ snmpset.$(OSUFFIX) ${LDFLAGS} ${LIBS}
- 
- snmpusm$(EXEEXT):    snmpusm.$(OSUFFIX) $(USELIBS)
--	$(LINK) ${CFLAGS} -o $@ snmpusm.$(OSUFFIX) ${LDFLAGS} ${LIBS}
-+	$(LINK) ${CFLAGS} -o $@ snmpusm.$(OSUFFIX) ${LDFLAGS} ${LIBS} $(LIBCRYPTO)
- 
- snmpvacm$(EXEEXT):    snmpvacm.$(OSUFFIX) $(USELIBS)
- 	$(LINK) ${CFLAGS} -o $@ snmpvacm.$(OSUFFIX) ${LDFLAGS} ${LIBS}
-Index: net-snmp-5.7.2~dfsg/configure.ac
-===================================================================
---- net-snmp-5.7.2~dfsg.orig/configure.ac	2012-10-09 22:28:58.000000000 +0000
-+++ net-snmp-5.7.2~dfsg/configure.ac	2013-01-14 05:56:44.894900017 +0000
-@@ -78,6 +78,9 @@
- 
- AC_SUBST(PARTIALTARGETFLAGS)
- AC_SUBST(ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE)
-+LIBWRAP="$_wraplibs"
-+AC_SUBST(LIBWRAP)
-+AC_SUBST(LIBCRYPTO)
- 
- 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])
diff --git a/debian/patches/CVE-2012-2141.patch b/debian/patches/CVE-2012-2141.patch
new file mode 100644
index 0000000..1c6de22
--- /dev/null
+++ b/debian/patches/CVE-2012-2141.patch
@@ -0,0 +1,31 @@
+Description: fix denial of service via SNMP GET with non-existent
+ extension table entry
+Bug: http://sourceforge.net/tracker/index.php?func=detail&aid=3526549&group_id=12694&atid=112694
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=672492
+Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=815813
+Origin: upstream, http://net-snmp.git.sourceforge.net/git/gitweb.cgi?p=net-snmp/net-snmp;a=commit;h=4c5633f1603e4bd03ed05c37d782ec8911759c47
+
+Index: net-snmp-5.4.3~dfsg/agent/mibgroup/agent/extend.c
+===================================================================
+--- net-snmp-5.4.3~dfsg.orig/agent/mibgroup/agent/extend.c	2013-04-06 15:06:10.934136272 +0900
++++ net-snmp-5.4.3~dfsg/agent/mibgroup/agent/extend.c	2013-04-06 15:06:10.922136274 +0900
+@@ -1124,7 +1124,7 @@
+              * ...and check the line requested is valid
+              */
+             line_idx = *table_info->indexes->next_variable->val.integer;
+-            if (eptr->numlines < line_idx)
++            if (line_idx < 1 || line_idx > eptr->numlines)
+                 return NULL;
+         }
+         return eptr;
+@@ -1297,6 +1297,10 @@
+                  * Determine which line we've been asked for....
+                  */
+                 line_idx = *table_info->indexes->next_variable->val.integer;
++                if (line_idx < 1 || line_idx > extension->numlines) {
++                    netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE);
++                    continue;
++                }
+                 cp  = extension->lines[line_idx-1];
+ 
+                 /* 
diff --git a/debian/patches/TrapReceiver.patch b/debian/patches/TrapReceiver.patch
deleted file mode 100644
index 0973f83..0000000
--- a/debian/patches/TrapReceiver.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Description: Fixes Perl Trap Handler Segfault with old Perl (e.g. Perl 5.8.8) (CVE-2014-2285)
-Origin: upstream
-Bug: http://sourceforge.net/p/net-snmp/code/ci/76e8d6d100320629d8a23be4b0128619600c919d/
-Last-Update: 2014-03-30
-
---- net-snmp-5.7.2.1~dfsg.orig/perl/TrapReceiver/TrapReceiver.xs
-+++ net-snmp-5.7.2.1~dfsg/perl/TrapReceiver/TrapReceiver.xs
-@@ -81,18 +81,18 @@ int   perl_trapd_handler( netsnmp_pdu
-         STOREPDUi("securitymodel", pdu->securityModel);
-         STOREPDUi("securitylevel", pdu->securityLevel);
-         STOREPDU("contextName",
--                 newSVpv(pdu->contextName, pdu->contextNameLen));
-+                 newSVpv(pdu->contextName ? pdu->contextName : "", pdu->contextNameLen));
-         STOREPDU("contextEngineID",
--                 newSVpv((char *) pdu->contextEngineID,
-+                 newSVpv(pdu->contextEngineID ? (char *) pdu->contextEngineID : "",
-                                     pdu->contextEngineIDLen));
-         STOREPDU("securityEngineID",
--                 newSVpv((char *) pdu->securityEngineID,
-+                 newSVpv(pdu->securityEngineID ? (char *) pdu->securityEngineID : "",
-                                     pdu->securityEngineIDLen));
-         STOREPDU("securityName",
--                 newSVpv((char *) pdu->securityName, pdu->securityNameLen));
-+                 newSVpv(pdu->securityName ? (char *) pdu->securityName : "", pdu->securityNameLen));
-     } else {
-         STOREPDU("community",
--                 newSVpv((char *) pdu->community, pdu->community_len));
-+                 newSVpv(pdu->community ? (char *) pdu->community : "", pdu->community_len));
-     }
- 
-     if (transport && transport->f_fmtaddr) {
diff --git a/debian/patches/add_rocommunity6.patch b/debian/patches/add_rocommunity6.patch
deleted file mode 100644
index 782729d..0000000
--- a/debian/patches/add_rocommunity6.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: pkg-net-snmp/EXAMPLE.conf.def
-===================================================================
---- pkg-net-snmp.orig/EXAMPLE.conf.def	2013-09-04 19:13:13.000000000 +0900
-+++ pkg-net-snmp/EXAMPLE.conf.def	2013-09-04 19:13:13.000000000 +0900
-@@ -49,6 +49,8 @@
- #rocommunity public  localhost
-                                                  #  Default access to basic system info
-  rocommunity public  default    -V systemonly
-+                                                 #  rocommunity6 is for IPv6
-+ rocommunity6 public  default   -V systemonly
- 
-                                                  #  Full access from an example network
-                                                  #     Adjust this network address to match your local
diff --git a/debian/patches/after_RFC5378 b/debian/patches/after_RFC5378
deleted file mode 100644
index 9bb502e..0000000
--- a/debian/patches/after_RFC5378
+++ /dev/null
@@ -1,43 +0,0 @@
-Description: exclude under RFC5378 modules
-Author: Hideki Yamane <henrich at debian.org>
----
-Origin: vendor
-Forwarded: not-needed
-Last-Update: 2013-02-08
-
---- net-snmp-5.7.2~dfsg.orig/mibs/rfclist
-+++ net-snmp-5.7.2~dfsg/mibs/rfclist
-@@ -233,33 +233,3 @@
- 5190	MIDCOM-MIB
- 5240	PIM-BSR-MIB
- 5324	T11-FC-SP-TC-MIB:T11-FC-SP-AUTHENTICATION-MIB:T11-FC-SP-ZONING-MIB:T11-FC-SP-POLICY-MIB:T11-FC-SP-SA-MIB
--5427	SYSLOG-TC-MIB
--5428	PKTC-IETF-EVENT-MIB
--5488	NEMO-MIB
--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
diff --git a/debian/patches/agentx-crash.patch b/debian/patches/agentx-crash.patch
deleted file mode 100644
index 00988cc..0000000
--- a/debian/patches/agentx-crash.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Description: fix snmpd crash via AgentX connection
- 
- taken from Fedora, net-snmp-5.7-agentx-crash.patch
-
-bz729738 - net-snmp dumps core in netsnmp_oid_find_prefix
-bz1038011 - net-snmp: snmpd crashes/hangs when AgentX subagent times-out
-
-commit f9304c83f76202db0e684269ca1af32e43cd9db4
-Author: Jan Safranek <jsafranek at users.sourceforge.net>
-Date:   Tue Feb 7 14:53:44 2012 +0100
-
-    CHANGES: PATCH 1633670: fixed snmpd crashing when an AgentX subagent disconnect in the middle of processing of a request.
-
-    I fixed also the memory leak reported in the tracker comments.
-
-
-Origin: vendor
-Forwarded: not-needed
-Last-Update: <YYYY-MM-DD>
-
---- net-snmp-5.7.2~dfsg.orig/agent/mibgroup/agentx/master.c
-+++ net-snmp-5.7.2~dfsg/agent/mibgroup/agentx/master.c
-@@ -219,6 +219,9 @@ agentx_got_response(int operation,
-     if (!cache) {
-         DEBUGMSGTL(("agentx/master", "response too late on session %8p\n",
-                     session));
-+        /* response is too late, free the cache */
-+        if (magic)
-+            netsnmp_free_delegated_cache((netsnmp_delegated_cache*) magic);
-         return 0;
-     }
-     requests = cache->requests;
-@@ -606,6 +609,8 @@ agentx_master_handler(netsnmp_mib_handle
-     result = snmp_async_send(ax_session, pdu, agentx_got_response, cb_data);
-     if (result == 0) {
-         snmp_free_pdu(pdu);
-+        if (cb_data)
-+            netsnmp_free_delegated_cache((netsnmp_delegated_cache*) cb_data);
-     }
- 
-     return SNMP_ERR_NOERROR;
---- net-snmp-5.7.2~dfsg.orig/agent/mibgroup/agentx/master_admin.c
-+++ net-snmp-5.7.2~dfsg/agent/mibgroup/agentx/master_admin.c
-@@ -133,11 +133,16 @@ close_agentx_session(netsnmp_session * s
-          * requests, so that the delegated request will be completed and
-          * further requests can be processed
-          */
--        netsnmp_remove_delegated_requests_for_session(session);
-+	while (netsnmp_remove_delegated_requests_for_session(session)) {
-+		DEBUGMSGTL(("agentx/master", "Continue removing delegated reqests\n"));
-+	}
-+
-         if (session->subsession != NULL) {
-             netsnmp_session *subsession = session->subsession;
-             for(; subsession; subsession = subsession->next) {
--                netsnmp_remove_delegated_requests_for_session(subsession);
-+                while (netsnmp_remove_delegated_requests_for_session(subsession)) {
-+			DEBUGMSGTL(("agentx/master", "Continue removing delegated subsession reqests\n"));
-+		}
-             }
-         }
-                 
diff --git a/debian/patches/dropped_25_duplicate_iftable.patch b/debian/patches/dropped_25_duplicate_iftable.patch
deleted file mode 100644
index 6d2e841..0000000
--- a/debian/patches/dropped_25_duplicate_iftable.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-Patch from
-http://sourceforge.net/tracker/index.php?func=detail&aid=1513191&group_id=12694&atid=312694 :
-
-This patch fixes bug #1238981 for me. If a new device
-will be added, the old device are first checked. If
-there's an old device with the same name is found, the
-old device is removed from the list. This fixes the
-problem that i have tons of ppp0 interfaces in the
-snmpd ifTable.
-
-Signed-of-by: Sven Schnelle <svens at gmx.de>
-
--> not applied to current code. need to investigate more 
-  Hideki Yamane <henrich at debian.org>
-
-
-diff -ru net-snmp-5.4.2.1.orig/agent/mibgroup/if-mib/data_access/interface.c net-snmp-5.4.2.1/agent/mibgroup/if-mib/data_access/interface.c
---- net-snmp-5.4.2.1.orig/agent/mibgroup/if-mib/data_access/interface.c	2008-02-23 00:52:33.000000000 +0100
-+++ net-snmp-5.4.2.1/agent/mibgroup/if-mib/data_access/interface.c	2009-07-31 17:10:49.000000000 +0200
-@@ -469,12 +469,12 @@
-         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");
-+                snmp_log(LOG_ERR, "IfIndex of an interface changed.\n");
-                 logged = 1;
-             }
--            DEBUGMSGTL(("access:interface:ifIndex", "index %d != tmp for %s\n",
--                         index, name));
-+	    se_remove_value_from_slist("interfaces", name);
-+	    se_add_pair_to_slist("interfaces", strdup(name), index);
-+	    DEBUGMSGTL(("access:interface:ifIndex", "ifname %s, old index %d, already existing, replaced with %d\n", name, tmp, index));
-         }
- }
- 
-diff -ru net-snmp-5.4.2.1.orig/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c net-snmp-5.4.2.1/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c
---- net-snmp-5.4.2.1.orig/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c	2008-02-12 20:05:24.000000000 +0100
-+++ net-snmp-5.4.2.1/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c	2009-07-31 17:04:17.000000000 +0200
-@@ -266,8 +266,21 @@
- _add_new_interface(netsnmp_interface_entry *ifentry,
-                    netsnmp_container *container)
- {
--    ifTable_rowreq_ctx *rowreq_ctx;
--
-+    ifTable_rowreq_ctx *rowreq_ctx, *container_entry;
-+    netsnmp_iterator *ctxit;
-+    ctxit = CONTAINER_ITERATOR(container);
-+    container_entry = ITERATOR_FIRST(ctxit);
-+
-+    for(; container_entry; container_entry = ITERATOR_NEXT(ctxit)) {
-+	if(!strcmp(ifentry->name, container_entry->data.ifName) && \
-+	    ifentry->index != container_entry->data.ifentry->index) {
-+		DEBUGMSGTL(("ifTable:access", "removing old entry %s (index %d != %d)\n",
-+		    container_entry->data.ifName, container_entry->data.ifentry->index, ifentry->index));
-+		    se_remove_value_from_slist("interfaces", container_entry->data.ifName);
-+		CONTAINER_REMOVE(container, container_entry);
-+		ifTable_release_rowreq_ctx(container_entry);
-+		}
-+    }
-     DEBUGMSGTL(("ifTable:access", "creating new entry\n"));
- 
-     /*
-Nur in net-snmp-5.4.2.1/agent/mibgroup/if-mib/ifTable: ifTable_data_access.c.orig.
-diff -ru net-snmp-5.4.2.1.orig/snmplib/snmp_enum.c net-snmp-5.4.2.1/snmplib/snmp_enum.c
---- net-snmp-5.4.2.1.orig/snmplib/snmp_enum.c	2005-02-09 20:46:35.000000000 +0100
-+++ net-snmp-5.4.2.1/snmplib/snmp_enum.c	2009-07-31 17:04:17.000000000 +0200
-@@ -213,6 +213,27 @@
-     return SE_DNE;              /* XXX: um, no good solution here */
- }
- 
-+int se_remove_value_from_list(struct snmp_enum_list **list, const char *label)
-+{
-+   struct snmp_enum_list *lastlist;
-+   if(!list)
-+     return SE_DNE;
-+
-+   lastlist = NULL;
-+   while(*list) {
-+      if(strcmp((*list)->label, label) == 0) {
-+	 free((*list)->label);
-+	 if(lastlist)
-+	   lastlist->next = (*list)->next;
-+	 free(*list);
-+	 *list = NULL;
-+	 return 0;
-+      }
-+      lastlist = *list;
-+      (*list) = (*list)->next;
-+   }
-+   
-+}
- int
- se_find_free_value_in_list(struct snmp_enum_list *list)
- {
-@@ -331,6 +352,19 @@
-     return (se_find_value_in_list(se_find_slist(listname), label));
- }
- 
-+void se_remove_value_from_slist(const char *listname, const char *label)
-+{
-+   struct snmp_enum_list_str *sptr, *lastp = NULL;
-+   struct snmp_enum_list *list;
-+   if (!listname)
-+     return;
-+
-+   for (sptr = sliststorage;
-+	sptr != NULL; lastp = sptr, sptr = sptr->next)
-+     if (sptr->name && strcmp(sptr->name, listname) == 0)
-+       se_remove_value_from_list(&sptr->list, label);
-+}
-+
- int
- se_find_free_value_in_slist(const char *listname)
- {
diff --git a/debian/patches/dropped_44_nlist_kvm.patch b/debian/patches/dropped_44_nlist_kvm.patch
deleted file mode 100644
index 3ec6670..0000000
--- a/debian/patches/dropped_44_nlist_kvm.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-
-Patch from Petr Salinger <Petr.Salinger at seznam.cz>: search nlist() in libkvm.
-
-cannot apply to current code?
-
---- net-snmp-5.4.3~dfsg.orig/configure.in
-+++ net-snmp-5.4.3~dfsg/configure.in
-@@ -2890,6 +2890,9 @@
- 	AC_DEFINE(HAVE_LIBKVM, 1, [Define to 1 if you have the `kvm' library (-lkvm).])
- 	LAGENTLIBS="$LAGENTLIBS ${_libkvm}"
- fi
-+AC_CHECK_FUNC(nlist, AC_DEFINE(HAVE_NLIST, 1, [Define to 1 if you have the `nlist' function.]),
-+        AC_CHECK_LIB(bsd, nlist, AC_DEFINE(HAVE_NLIST, 1, [Define to 1 if you have the `nlist' function.])
-+        LAGENTLIBS="$LAGENTLIBS bsd"))
- 
- # DYNAMIC MODULE SUPPORT
- AC_CHECK_FUNC(dlopen, AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if you have the `dlopen' function.]),
diff --git a/debian/patches/fix_logging_option.patch b/debian/patches/fix_logging_option.patch
deleted file mode 100644
index 675737f..0000000
--- a/debian/patches/fix_logging_option.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Description: fix man description
-Author: Hideki Yamane <henrich at debian.org>
-
----
-Origin: vendor
-Bug-Debian: http://bugs.debian.org/616437
-Forwarded: no
-Last-Update: 2013-01-23
-
---- net-snmp-5.7.2~dfsg.orig/man/snmpd.8.def
-+++ net-snmp-5.7.2~dfsg/man/snmpd.8.def
-@@ -78,9 +78,9 @@ To get a list of compiled modules, run t
- .I "\-Dmib_init \-H"
- (assuming debugging support has been compiled in).
- .TP
--.B \-L[efos]
-+.B \-L[eEfFoOsS]
- Specify where logging output should be directed (standard error or output,
--to a file or via syslog).  See LOGGING OPTIONS in snmpcmd(5) for details.
-+to a file or via syslog).  See LOGGING OPTIONS in snmpcmd(1) for details.
- .TP
- .BR \-m " \fIMIBLIST"
- Specifies a colon separated list of MIB modules to load for this
diff --git a/debian/patches/fix_man_error.patch b/debian/patches/fix_man_error.patch
deleted file mode 100644
index 5cbda9c..0000000
--- a/debian/patches/fix_man_error.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Description: fix man error
- 
- - mib2c.conf
-   http://lintian.debian.org/tags/manpage-has-bad-whatis-entry.html
-
-
-Author: Hideki Yamane <henrich at debian.org>
-
----
-Origin: vendor
-Forwarded: no
-Last-Update: 2013-01-26
-
-Index: net-snmp-5.7.2~dfsg/man/mib2c.conf.5.in
-===================================================================
---- net-snmp-5.7.2~dfsg.orig/man/mib2c.conf.5.in	2013-01-26 19:04:05.000000000 +0900
-+++ net-snmp-5.7.2~dfsg/man/mib2c.conf.5.in	2013-01-26 19:04:05.000000000 +0900
-@@ -1,6 +1,6 @@
- .TH MIB2C.CONF 5 "28 Apr 2004" VVERSIONINFO "Net-SNMP"
- .SH NAME
--mib2c.conf \[em] How to write mib2c.conf files to do ANYTHING based on MIB input.
-+mib2c.conf - How to write mib2c.conf files to do ANYTHING based on MIB input.
- .SH SYNOPSIS
- % cat > mib2c.test.conf  << EOF
- @foreach $t table@
diff --git a/debian/patches/fix_manpage-has-errors-from-man.patch b/debian/patches/fix_manpage-has-errors-from-man.patch
deleted file mode 100644
index 54e8a55..0000000
--- a/debian/patches/fix_manpage-has-errors-from-man.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Description: variables(5) lines over 80 width
-
-$ LC_ALL=C MANROFFSEQ='' MANWIDTH=80 man --warnings -E UTF-8 -l -Tutf8 -Z man/variables.5.def > /dev/null
- 
- cause error.
-
-Forwarded: no
-Last-Update: 2014-01-11
-
---- net-snmp-5.7.2~dfsg.orig/man/variables.5.def
-+++ net-snmp-5.7.2~dfsg/man/variables.5.def
-@@ -84,7 +84,8 @@ A variant of this (typically used when w
- text, rather than running programs), is to combine the name and
- numeric subidentifier:
- .RS
-- .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysDescr(1)
-+ .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1)
-+ .sysDescr(1)
- .RE
- 
- .SS Module-qualified OIDs
diff --git a/debian/patches/fix_manpage-has-errors_break_line.patch b/debian/patches/fix_manpage-has-errors_break_line.patch
deleted file mode 100644
index f642d2b..0000000
--- a/debian/patches/fix_manpage-has-errors_break_line.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Description: fix manpage error
-
- see http://lintian.debian.org/tags/manpage-has-errors-from-man.html
-
-Author: Hideki Yamane <henrich at debian.org>
-
----
-Forwarded: no
-Last-Update: 2013-04-26
-
---- net-snmp-5.7.2~dfsg.orig/man/snmpcmd.1.def
-+++ net-snmp-5.7.2~dfsg/man/snmpcmd.1.def
-@@ -888,7 +888,7 @@ The standard prefix for object identifie
- Defaults to .iso.org.dod.internet.mgmt.mib\-2
- .IP MIBS
- The list of MIBs to load. Defaults to
--SNMPv2\-TC:SNMPv2\-MIB:IF\-MIB:IP\-MIB:TCP\-MIB:UDP\-MIB:SNMP\-VACM\-MIB.
-+SNMPv2\-TC\:SNMPv2\-MIB:IF\-MIB:IP\-MIB\:TCP\-MIB\:UDP\-MIB\:SNMP\-VACM\-MIB.
- Overridden by the
- .B \-m
- option.
---- net-snmp-5.7.2~dfsg.orig/man/netsnmp_mib_api.3.def
-+++ net-snmp-5.7.2~dfsg/man/netsnmp_mib_api.3.def
-@@ -277,7 +277,7 @@ A colon separated list of MIB modules to
- .br
- The default list of modules will depend on how the Net-SNMP software
- was originally compiled, but is typically:
--IP\-MIB:IF\-MIB:TCP\-MIB:UDP\-MIB:SNMPv2\-MIB:RFC1213\-MIB: UCD\-SNMP\-MIB:HOST\-RESOURCES\-MIB
-+IP\-MIB\:IF\-MIB\:TCP\-MIB\:UDP\-MIB\:SNMPv2\-MIB\:RFC1213\-MIB\: UCD\-SNMP\-MIB\:HOST\-RESOURCES\-MIB
- .IP
- If the value of the
- .B MIBS
---- net-snmp-5.7.2~dfsg.orig/man/netsnmp_config_api.3.def
-+++ net-snmp-5.7.2~dfsg/man/netsnmp_config_api.3.def
-@@ -365,7 +365,7 @@ function that it should abort the operat
- SNMPCONFPATH
- A colon separated list of directories to search for configuration
- files in.
--Default: SYSCONFDIR/snmp:DATADIR/snmp:LIBDIR/snmp:$HOME/.snmp
-+Default\: SYSCONFDIR/snmp\:DATADIR/snmp\:LIBDIR/snmp\:$HOME/.snmp
- .SH "SEE ALSO"
- .BR mib_api "(3), " snmp_api (3)
- .\" Local Variables:
diff --git a/debian/patches/fix_regular_expression.patch b/debian/patches/fix_regular_expression.patch
deleted file mode 100644
index 97f79bb..0000000
--- a/debian/patches/fix_regular_expression.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Description: fix regular expression mismatching
- setup.py would find library via net-snmp-config, however, its result also 
- matches to "-L/usr/lib/x86_64-linux-gnu" and return "inux-gnu" as library
- in Debian/Ubuntu enabling Multi-Arch environtment as below.
->>> import os
->>> import re
->>> import string
->>> import sys
->>> netsnmp_libs="-Wl,-z,relro -Wl,-z,now -L/usr/lib/x86_64-linux-gnu -lnetsnmp -lcrypto -lm"
->>> print netsnmp_libs
--Wl,-z,relro -Wl,-z,now -L/usr/lib/x86_64-linux-gnu -lnetsnmp -lcrypto -lm
->>> re.findall(r"-l(\S+)", netsnmp_libs)
-['inux-gnu', 'netsnmp', 'crypto', 'm']
-
- Just inserting space will fix this.
->>> re.findall(r" -l(\S+)", netsnmp_libs)
-['netsnmp', 'crypto', 'm']
-
-Author: Hideki Yamane <henrich at debian.org>
-
----
-Origin: vendor
-Forwarded: no
-Last-Update: 2013-01-07
-
-Index: net-snmp-5.7.1~dfsg/python/setup.py
-===================================================================
---- net-snmp-5.7.1~dfsg.orig/python/setup.py	2013-01-07 11:33:32.346195340 +0900
-+++ net-snmp-5.7.1~dfsg/python/setup.py	2013-01-07 11:33:58.654255360 +0900
-@@ -18,14 +18,14 @@
-     netsnmp_libs = os.popen(basedir+'/net-snmp-config --libs').read()
-     libdir = os.popen(basedir+'/net-snmp-config --build-lib-dirs '+basedir).read()
-     incdir = os.popen(basedir+'/net-snmp-config --build-includes '+basedir).read()
--    libs = re.findall(r"-l(\S+)", netsnmp_libs)
-+    libs = re.findall(r" -l(\S+)", netsnmp_libs)
-     libdirs = re.findall(r"-L(\S+)", libdir)
-     incdirs = re.findall(r"-I(\S+)", incdir)
- else:
-     netsnmp_libs = os.popen('net-snmp-config --libs').read()
-     libdirs = re.findall(r"-L(\S+)", netsnmp_libs)
-     incdirs = []
--    libs = re.findall(r"-l(\S+)", netsnmp_libs)
-+    libs = re.findall(r" -l(\S+)", netsnmp_libs)
- 
- setup(
-     name="netsnmp-python", version="1.0a1",
diff --git a/debian/patches/fix_snmpcheck_perl_path.patch b/debian/patches/fix_snmpcheck_perl_path.patch
deleted file mode 100644
index 7d7b9de..0000000
--- a/debian/patches/fix_snmpcheck_perl_path.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Description: fix snmpcheck shebang
- Just don't use /usr/local/bin/perl...
-
-Author: Hideki Yamane <henrich at debian.org>
-
----
-Origin: vendor
-Bug-Debian: http://bugs.debian.org/44373
-Forwarded: not-needed
-Last-Update: 2012-07-17
-
---- net-snmp-5.7.1~dfsg.orig/local/snmpcheck.def
-+++ net-snmp-5.7.1~dfsg/local/snmpcheck.def
-@@ -1,4 +1,4 @@
--#!/usr/local/bin/perl -w
-+#!/usr/bin/perl 
- 
- use strict 'refs';
- require Net::Ping;
diff --git a/debian/patches/fix_spelling_error.patch b/debian/patches/fix_spelling_error.patch
deleted file mode 100644
index b86c706..0000000
--- a/debian/patches/fix_spelling_error.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-Description: fix spelling error
-Author: Hideki Yamane <henrich at debian.org>
-
----
-Origin: vendor
-Forwarded: no
-Last-Update: 2013-01-22
-
---- net-snmp-5.7.2~dfsg.orig/apps/encode_keychange.c
-+++ net-snmp-5.7.2~dfsg/apps/encode_keychange.c
-@@ -403,7 +403,7 @@ usage_to_file(FILE * ofp)
-    "-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\
-+    <engineID> is interpreted as a hex string when preceded 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");
- 
---- net-snmp-5.7.2~dfsg.orig/apps/snmpusm.c
-+++ net-snmp-5.7.2~dfsg/apps/snmpusm.c
-@@ -150,7 +150,7 @@ usage(void)
-     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");
-+    fprintf(stderr, "\t-Ck\t\tAllows one to use localized key (must start with 0x)\n");
-     fprintf(stderr, "\t\t\tinstead of passphrase.\n");
- }
- 
---- net-snmp-5.7.2~dfsg.orig/apps/snmpnetstat/inet6.c
-+++ net-snmp-5.7.2~dfsg/apps/snmpnetstat/inet6.c
-@@ -333,7 +333,7 @@ icmp6_stats(const char *name)
-     struct stat_table icmp6stats_tbl[] = {
-         {1, "%d total message%s received"},
-         {2, "%d message%s dropped due to errors"},
--        {18, "%d ouput message request%s"},
-+        {18, "%d output message request%s"},
-         {19, "%d output message%s discarded"},
-         {0, ""}
-     };
---- net-snmp-5.7.2~dfsg.orig/apps/snmpnetstat/inet.c
-+++ net-snmp-5.7.2~dfsg/apps/snmpnetstat/inet.c
-@@ -445,7 +445,7 @@ icmp_stats(const char *name)
-     struct stat_table icmpstats_tbl[] = {
-         {1, "%d total message%s received"},
-         {2, "%d message%s dropped due to errors"},
--        {14, "%d ouput message request%s"},
-+        {14, "%d output message request%s"},
-         {15, "%d output message%s discarded"},
-         {0, ""}
-     };
diff --git a/debian/patches/fix_typo_in_snmpd.conf.patch b/debian/patches/fix_typo_in_snmpd.conf.patch
deleted file mode 100644
index acab1d6..0000000
--- a/debian/patches/fix_typo_in_snmpd.conf.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Description: fix typo
-Author: Hideki Yamane <henrich at debian.org>
----
-Origin: vendor
-Bug-Debian: http://bugs.debian.org/603593
-Forwarded: no
-Last-Update: 2013-01-23
-
---- net-snmp-5.7.2~dfsg.orig/EXAMPLE.conf.def
-+++ net-snmp-5.7.2~dfsg/EXAMPLE.conf.def
-@@ -63,7 +63,7 @@ view   systemonly  included   .1.3.6.1.2
- #rwuser   authPrivUser   priv
- 
- #  It's no longer typically necessary to use the full 'com2sec/group/access' configuration
--#  r[ou]user and r[ow]community, together with suitable views, should cover most requirements
-+#  r[ow]user and r[ow]community, together with suitable views, should cover most requirements
- 
- 
- 
diff --git a/debian/patches/ifmib.patch b/debian/patches/ifmib.patch
deleted file mode 100644
index 0204f8a..0000000
--- a/debian/patches/ifmib.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-diff --git a/agent/mibgroup/if-mib/data_access/interface_linux.c b/agent/mibgroup/if-mib/data_access/interface_linux.c
-index 3419811..d6eb91a 100644
---- a/agent/mibgroup/if-mib/data_access/interface_linux.c
-+++ b/agent/mibgroup/if-mib/data_access/interface_linux.c
-@@ -18,7 +18,31 @@ netsnmp_feature_require(interface_ioctl_flags_set)
- 
- #ifdef HAVE_PCI_LOOKUP_NAME
- #include <pci/pci.h>
-+#include <setjmp.h>
- static struct pci_access *pci_access;
-+
-+/* Avoid letting libpci call exit(1) when no PCI bus is available. */
-+static int do_longjmp =0;
-+static jmp_buf err_buf;
-+static void
-+netsnmp_pci_error(char *msg, ...)
-+{
-+    va_list args;
-+    char *buf;
-+    int buflen;
-+
-+    va_start(args, msg);
-+    buflen = strlen("pcilib: ")+strlen(msg)+2;
-+    buf = malloc(buflen);
-+    snprintf(buf, buflen, "pcilib: %s\n", msg);
-+    snmp_vlog(LOG_ERR, buf, args);
-+    free(buf);
-+    va_end(args);
-+    if (do_longjmp)
-+	longjmp(err_buf, 1);
-+    else
-+	exit(1);
-+}
- #endif
- 
- #ifdef HAVE_LINUX_ETHTOOL_H
-@@ -147,10 +171,22 @@ netsnmp_arch_interface_init(void)
- 
- #ifdef HAVE_PCI_LOOKUP_NAME
-     pci_access = pci_alloc();
--    if (pci_access)
-+    if (!pci_access) {
-+	snmp_log(LOG_ERR, "pcilib: pci_alloc failed\n");
-+	return;
-+    }
-+
-+    pci_access->error = netsnmp_pci_error;
-+
-+    do_longjmp = 1;
-+    if (setjmp(err_buf)) {
-+        pci_cleanup(pci_access);
-+	snmp_log(LOG_ERR, "pcilib: pci_init failed\n");
-+        pci_access = NULL;
-+    }
-+    else if (pci_access)
- 	pci_init(pci_access);
--    else
--	snmp_log(LOG_ERR, "Unable to create pci access method\n");
-+    do_longjmp = 0;
- #endif
- }
- 
diff --git a/debian/patches/net-snmp-config_multi-arch.patch b/debian/patches/net-snmp-config_multi-arch.patch
deleted file mode 100644
index 60b653e..0000000
--- a/debian/patches/net-snmp-config_multi-arch.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Description: enable Multi-Arch support in net-snmp-config
- specify $DEB_HOST_MULTIARCH to enable Multi-Arch
-
-Author: Hideki Yamane <henrich at debian.org>
-
----
-Origin: vendor
-Forwarded: no
-Last-Update: 2012-07-18
-
-Index: net-snmp-5.7.2~dfsg/net-snmp-config.in
-===================================================================
---- net-snmp-5.7.2~dfsg.orig/net-snmp-config.in	2013-01-14 16:10:26.524006164 +0900
-+++ net-snmp-5.7.2~dfsg/net-snmp-config.in	2013-01-14 16:13:34.584345846 +0900
-@@ -90,14 +90,14 @@
-     --prefix=*)
-       prefix=$optarg
-       NSC_PREFIX=${prefix}
--      NSC_INCLUDEDIR=${prefix}/include
--      NSC_LIBDIR=-L${prefix}/lib
-+      NSC_INCLUDEDIR=${prefix}/include/$DEB_HOST_MULTIARC/,${prefix}/include/
-+      NSC_LIBDIR=-L${prefix}/lib/$DEB_HOST_MULTIARCH/,${prefix}/lib/
-       ;;
- 
-     --exec-prefix=*)
-       exec_prefix=$optarg
-       NSC_EXEC_PREFIX=${exec_prefix}
--      NSC_LIBDIR=-L${exec_prefix}/lib
-+      NSC_LIBDIR=-L${exec_prefix}/lib/$DEB_HOST_MULTIARCH/,${prefix}/lib/
-       ;;
- 
-     --debug-tokens|--deb*|--dbg*)
diff --git a/debian/patches/series b/debian/patches/series
index 9f7bc2d..db3892d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,24 +3,13 @@
 05_searchdirs.patch
 06_extramibs.patch
 07_docfiles.patch
+08_defaultconfig.patch
+25_duplicate_iftable.patch
 26_kfreebsd.patch
-27_kfreebsd_bug625985.patch 
+32_mnttab_path.patch
+44_nlist_kvm.patch
+56_manpage.patch
 60_libsensors_api.patch
 61_vacm_missing_dependency_check.patch
 62_add_lib_cflags.patch
-64_missing_lib.patch
-fix_snmpcheck_perl_path.patch
-fix_regular_expression.patch
-snmptranslate.1.patch
-fix_spelling_error.patch
-#net-snmp-config_multi-arch.patch
-fix_logging_option.patch
-fix_typo_in_snmpd.conf.patch
-fix_man_error.patch
-after_RFC5378
-fix_manpage-has-errors_break_line.patch
-add_rocommunity6.patch
-fix_manpage-has-errors-from-man.patch
-agentx-crash.patch
-TrapReceiver.patch
-ifmib.patch
+CVE-2012-2141.patch
diff --git a/debian/patches/snmptranslate.1.patch b/debian/patches/snmptranslate.1.patch
deleted file mode 100644
index b95b933..0000000
--- a/debian/patches/snmptranslate.1.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Description: fix hyphen-used-as-minus-sign
- fix lintian "hyphen-used-as-minus-sign" warnings.
-
-Author: Hideki Yamane <henrich at debian.org>
-
----
-Origin: vendor
-Forwarded: no
-Last-Update: 2012-07-17
-
-Index: net-snmp-5.7.2~dfsg/man/snmptranslate.1.def
-===================================================================
---- net-snmp-5.7.2~dfsg.orig/man/snmptranslate.1.def	2012-10-10 07:28:58.000000000 +0900
-+++ net-snmp-5.7.2~dfsg/man/snmptranslate.1.def	2013-01-15 01:19:05.000000000 +0900
-@@ -163,22 +163,22 @@
- .nf
- +--system(1)
-    |
--   +-- -R-- String    sysDescr(1)
-+   +-- \-R-- String    sysDescr(1)
-    |        Textual Convention: DisplayString
-    |        Size: 0..255
--   +-- -R-- ObjID     sysObjectID(2)
--   +-- -R-- TimeTicks sysUpTime(3)
--   +-- -RW- String    sysContact(4)
-+   +-- \-R-- ObjID     sysObjectID(2)
-+   +-- \-R-- TimeTicks sysUpTime(3)
-+   +-- \-RW- String    sysContact(4)
-    |        Textual Convention: DisplayString
-    |        Size: 0..255
--   +-- -RW- String    sysName(5)
-+   +-- \-RW- String    sysName(5)
-    |        Textual Convention: DisplayString
-    |        Size: 0..255
--   +-- -RW- String    sysLocation(6)
-+   +-- \-RW- String    sysLocation(6)
-    |        Textual Convention: DisplayString
-    |        Size: 0..255
--   +-- -R-- Integer   sysServices(7)
--   +-- -R-- TimeTicks sysORLastChange(8)
-+   +-- \-R-- Integer   sysServices(7)
-+   +-- \-R-- TimeTicks sysORLastChange(8)
-    |        Textual Convention: TimeStamp
-    |
-    +--sysORTable(9)
-@@ -186,11 +186,11 @@
-       +--sysOREntry(1)
-          |
-          +-- ---- Integer   sysORIndex(1)
--         +-- -R-- ObjID     sysORID(2)
--         +-- -R-- String    sysORDescr(3)
-+         +-- \-R-- ObjID     sysORID(2)
-+         +-- \-R-- String    sysORDescr(3)
-          |        Textual Convention: DisplayString
-          |        Size: 0..255
--         +-- -R-- TimeTicks sysORUpTime(4)
-+         +-- \-R-- TimeTicks sysORUpTime(4)
-                   Textual Convention: TimeStamp
- 
- .fi
diff --git a/debian/po/ca.po b/debian/po/ca.po
deleted file mode 100644
index a958752..0000000
--- a/debian/po/ca.po
+++ /dev/null
@@ -1,52 +0,0 @@
-# net-snmp po-debconf translation to spanish
-# Copyright (C) 2006 Software in the Public Interest, SPI Inc.
-# This file is distributed under the same license as the PACKAGE package.
-# Innocent De Marchi <tangram.peces at gmail.com>, 2011
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 5.4.3~dfsg-2.3\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
-"PO-Revision-Date: 2011-09-07 17:04+0100\n"
-"Last-Translator: Innocent De Marchi <tangram.peces at gmail.com>\n"
-"Language-Team: Catalan <debian-l10n-catalan at lists.debian.org>\n"
-"Language: ca\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Catalan\n"
-"X-Poedit-Country: Spain\n"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Default parameters changed since version 5.2.1"
-msgstr "Canvi dels paràmetres predeterminats des de la versió 5.2.1"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid ""
-"The default start parameters of the snmpd agent/daemon have been changed."
-msgstr ""
-"S'han canviat els paràmetres d'arrancada predeterminats de l'agent i dimoni "
-"«snmpd»."
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid ""
-"The daemon is now started as user snmp, binds to localhost only and runs "
-"with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
-"individually changed in /etc/default/snmpd."
-msgstr ""
-"El dimoni s'engega amb l'usuari «snmp», lligat únicament amb el servidor "
-"local i s'executa amb el suport de multiplexat SNMP (SMUX) desactivat. Cada "
-"un dels paràmetres es poden canviar a «/etc/default/snmpd»."
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
-msgstr "Llegiu «/usr/share/doc/snmpd/NEWS.Debian.gz» per més detalls."
diff --git a/debian/po/cs.po b/debian/po/cs.po
index 1ff7487..a61fa33 100644
--- a/debian/po/cs.po
+++ b/debian/po/cs.po
@@ -6,32 +6,31 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2007-05-31 13:24+0100\n"
 "Last-Translator: Grumpa <v.matys at grumpa.net>\n"
 "Language-Team: Czech <debian-l10n-czech at lists.debian.org>\n"
-"Language: cs\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr "Výchozí parametry změněné od verze 5.2.1"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr "Výchozí startovací parametry snmpd agenta/démona byly změněny."
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -43,7 +42,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr "Další podrobnosti najdete v /usr/share/doc/snmpd/NEWS.Debian.gz."
 
diff --git a/debian/po/da.po b/debian/po/da.po
index 29b10f5..d2cacbb 100644
--- a/debian/po/da.po
+++ b/debian/po/da.po
@@ -6,12 +6,11 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp debconf\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2007-06-02 10:05+0200\n"
 "Last-Translator: Claus Hindsgaul <claus.hindsgaul at gmail.com>\n"
 "Language-Team: Danish\n"
-"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -19,20 +18,20 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr "Standardindstillinger, der er �ndret siden version 5.2.1"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr "Standardindstillingerne for snmpd-agenten og -d�monen er �ndret."
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -44,7 +43,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr "Se /usr/share/doc/snmpd/NEWS.Debian.gz for yderligere oplysninger."
 
diff --git a/debian/po/de.po b/debian/po/de.po
index 2dd6994..9e34fde 100644
--- a/debian/po/de.po
+++ b/debian/po/de.po
@@ -5,32 +5,31 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp 5.4~dfsg-2\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2007-05-31 22:02+0200\n"
 "Last-Translator: Helge Kreutzmann <debian at helgefjell.de>\n"
 "Language-Team: de <debian-l10n-german at lists.debian.org>\n"
-"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-15\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr "Standardparameter seit Version 5.2.1 ge�ndert"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr "Die Standard-Startparameter des Snmpd-Agenten/Daemons wurden ge�ndert."
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -42,7 +41,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr ""
 "Bitte lesen Sie /usr/share/doc/snmpd/NEWS.Debian.gz f�r weitere Details."
diff --git a/debian/po/es.po b/debian/po/es.po
index 7ac7651..584bb40 100644
--- a/debian/po/es.po
+++ b/debian/po/es.po
@@ -34,25 +34,24 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp 5.2.3-4\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2007-06-03 17:39+0200\n"
 "Last-Translator: Javier Fern�ndez-Sanguino <jfs at debian.org>\n"
 "Language-Team: Debian Spanish <debian-l10n-spanish at lists.debian.org>\n"
-"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-15\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr "Cambio de los par�metros por omisi�n desde la versi�n 5.2.1"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr ""
@@ -61,7 +60,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -74,7 +73,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr ""
 "Consulte �/usr/share/doc/snmpd/NEWS.Debian.gz� si desea m�s informaci�n."
diff --git a/debian/po/eu.po b/debian/po/eu.po
index 0fc4e54..74bdb48 100644
--- a/debian/po/eu.po
+++ b/debian/po/eu.po
@@ -6,12 +6,11 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp-templates\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2007-05-31 23:10+0200\n"
 "Last-Translator: Piarres Beobide <pi at beobide.net>\n"
 "Language-Team: Euskara <Librezale at librezale.org>\n"
-"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -19,13 +18,13 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr "Lehenetsiriko parametroak aldatu egin dira 5.2.1 bertsiotik"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr ""
@@ -33,7 +32,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -45,7 +44,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr ""
 "Mesedez /usr/share/doc/snmpd/NEWS.Debian.gz begiratu xehetasun gehiagorako."
diff --git a/debian/po/fi.po b/debian/po/fi.po
index 5c0d113..015a292 100644
--- a/debian/po/fi.po
+++ b/debian/po/fi.po
@@ -1,12 +1,11 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp_5.4.1~dfsg-4\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-09-23 04:32+0200\n"
 "PO-Revision-Date: 2007-10-29 00:28+0200\n"
 "Last-Translator: Esko Arajärvi <edu at iki.fi>\n"
 "Language-Team: Finnish <debian-l10n-finnish at lists.debian.org>\n"
-"Language: fi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -22,27 +21,18 @@ msgstr "Oletusparametrit ovat muuttuneet versiosta 5.2.1 alkaen"
 #. Type: note
 #. Description
 #: ../snmpd.templates:2001
-msgid ""
-"The default start parameters of the snmpd agent/daemon have been changed."
+msgid "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr "snmpd-taustaohjelman oletuskäynnistysparametrit ovat muuttuneet."
 
 #. Type: note
 #. Description
 #: ../snmpd.templates:2001
-msgid ""
-"The daemon is now started as user snmp, binds to localhost only and runs "
-"with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
-"individually changed in /etc/default/snmpd."
-msgstr ""
-"Taustaohjelma käynnistetään nyt käyttäjätunnuksella snmp, se kuuntelee vain "
-"paikallisosoitetta (”localhost”) ja se ajetaan ilman ”SNMP multiplexing "
-"(SMUX)”-tukea. Kaikkia näitä parametreja voidaan muuttaa tiedostossa /etc/"
-"default/snmpd."
+msgid "The daemon is now started as user snmp, binds to localhost only and runs with SNMP multiplexing (SMUX) support disabled. These parameters can all be individually changed in /etc/default/snmpd."
+msgstr "Taustaohjelma käynnistetään nyt käyttäjätunnuksella snmp, se kuuntelee vain paikallisosoitetta (”localhost”) ja se ajetaan ilman ”SNMP multiplexing (SMUX)”-tukea. Kaikkia näitä parametreja voidaan muuttaa tiedostossa /etc/default/snmpd."
 
 #. Type: note
 #. Description
 #: ../snmpd.templates:2001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
-msgstr ""
-"Lisätietoja (englanniksi) löytyy tiedostosta /usr/share/doc/snmpd/NEWS."
-"Debian.gz."
+msgstr "Lisätietoja (englanniksi) löytyy tiedostosta /usr/share/doc/snmpd/NEWS.Debian.gz."
+
diff --git a/debian/po/fr.po b/debian/po/fr.po
index 9d3ab21..00d3f0a 100644
--- a/debian/po/fr.po
+++ b/debian/po/fr.po
@@ -5,12 +5,11 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: fr\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2007-06-15 07:27+0200\n"
 "Last-Translator: Christian Perrier <bubulle at debian.org>\n"
 "Language-Team: French <debian-l10n-french at lists.debian.org>\n"
-"Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -18,22 +17,26 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr "Changement des paramètres par défaut dans la version 5.2.1"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
-msgstr ""
-"Les paramètres par défaut du démarrage de l'agent SNMP snmpd ont été "
-"modifiés."
+msgstr "Les paramètres par défaut du démarrage de l'agent SNMP snmpd ont été modifiés."
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
+#| msgid ""
+#| "Debian has changed the default start parameters of the snmpd agent/"
+#| "daemon. The daemon is now started as user snmp, binds to localhost only "
+#| "and SMUX support is disabled. These parameters can all be individually "
+#| "changed in /etc/default/snmpd. Please see /usr/share/doc/snmpd/NEWS."
+#| "Debian.gz for more details."
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -46,7 +49,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr ""
 "Veuillez lire le fichier /usr/share/doc/snmpd/NEWS.Debian.gz pour plus "
diff --git a/debian/po/gl.po b/debian/po/gl.po
index b13905f..f05d3a8 100644
--- a/debian/po/gl.po
+++ b/debian/po/gl.po
@@ -5,32 +5,31 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2007-05-31 09:37+0200\n"
 "Last-Translator: Jacobo Tarrio <jtarrio at debian.org>\n"
 "Language-Team: Galician <proxecto at trasno.net>\n"
-"Language: gl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr "Cambiáronse os parámetros por defecto desde a versión 5.2.1"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr "Cambiáronse os parámetros de inicio do axente/servizo snmpd."
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -42,7 +41,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr "Consulte /usr/share/doc/nsmpd/NEWS.Debian.gz para ter máis detalles."
 
diff --git a/debian/po/id.po b/debian/po/id.po
deleted file mode 100644
index 6f25e8e..0000000
--- a/debian/po/id.po
+++ /dev/null
@@ -1,43 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: net-snmp 5.4.3~dfsg-2.4\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
-"PO-Revision-Date: 2012-01-02 12:55+0700\n"
-"Last-Translator: Mahyuddin Susanto <udienz at ubuntu.com>\n"
-"Language-Team: Debian Indonesia Translator <debian-l10n-indonesian at lists.debian.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Indonesian\n"
-"X-Poedit-Country: INDONESIA\n"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Default parameters changed since version 5.2.1"
-msgstr "Parameter bawaan berubah sejak versi 5.2.1"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "The default start parameters of the snmpd agent/daemon have been changed."
-msgstr "Parameter bawaan pemulai dari daemon snmpd agend/daemon telah berubah"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "The daemon is now started as user snmp, binds to localhost only and runs with SNMP multiplexing (SMUX) support disabled. These parameters can all be individually changed in /etc/default/snmpd."
-msgstr "Daemon sekarang dimulai dari pengguna snmp, hanya untuk localhost dengan dukungan SNMP multiplexing diaktifkan. Semua ini dapat diubah di /etc/default/snmpd."
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
-msgstr "Mohon lihat /usr/share/doc/snmpd/NEWS.Debian.gz untuk selengkapnya"
-
diff --git a/debian/po/it.po b/debian/po/it.po
index 2e2bb44..0fd47bc 100644
--- a/debian/po/it.po
+++ b/debian/po/it.po
@@ -6,25 +6,24 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp 5.4 italian debconf templates\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2007-06-09 13:56+0200\n"
 "Last-Translator: Luca Monducci <luca.mo at tiscali.it>\n"
 "Language-Team: Italian <debian-l10n-italian at lists.debian.org>\n"
-"Language: it\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr "I parametri predefiniti sono cambiati rispetto alla versione 5.2.1"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr ""
@@ -32,7 +31,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -44,6 +43,6 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr "Consultare /usr/share/doc/snmpd/NEWS.Debian.gz per maggiori dettagli."
diff --git a/debian/po/ja.po b/debian/po/ja.po
index 56d93c7..d4a0cac 100644
--- a/debian/po/ja.po
+++ b/debian/po/ja.po
@@ -2,50 +2,48 @@
 # as net-snmp Debian package's copyright holder. 
 # This file is distributed under the same license as the net-snmp package.
 # Hideki Yamane (Debian-JP) <henrich at debian.or.jp>, 2008.
-# 
-msgid ""
-msgstr ""
-"Project-Id-Version: net-snmp 5.4.1~dfsg-8.1\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
-"PO-Revision-Date: 2008-07-31 11:21+0200\n"
-"Last-Translator: Hideki Yamane (Debian-JP) <henrich at debian.or.jp>\n"
-"Language-Team: Japanese <debian-japanese at lists.debian.org>\n"
-"Language: ja\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Default parameters changed since version 5.2.1"
-msgstr "バージョン 5.2.1 からデフォルトのパラメータが変更されました"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid ""
-"The default start parameters of the snmpd agent/daemon have been changed."
-msgstr ""
-"snmpd エージェントおよびデーモンのデフォルトの起動パラメータが変更されまし"
-"た。"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid ""
-"The daemon is now started as user snmp, binds to localhost only and runs "
-"with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
-"individually changed in /etc/default/snmpd."
-msgstr ""
-"daemon はこれよりユーザ snmp として起動され、localhost のみが通信可能であり、"
-"SNMP マルチプレキシング (SMUX) サポートは無効にされます。これらのパラメータは"
-"すべて個別に /etc/default/snmpd で変更できます。"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
-msgstr ""
-"詳細については /usr/share/doc/snmpd/NEWS.Debian.gz を参照してください。"
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: net-snmp 5.4.1~dfsg-8.1\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
+"PO-Revision-Date: 2008-07-31 11:21+0200\n"
+"Last-Translator: Hideki Yamane (Debian-JP) <henrich at debian.or.jp>\n"
+"Language-Team: Japanese <debian-japanese at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: note
+#. Description
+#: ../snmpd.templates:3001
+msgid "Default parameters changed since version 5.2.1"
+msgstr "バージョン 5.2.1 からデフォルトのパラメータが変更されました"
+
+#. Type: note
+#. Description
+#: ../snmpd.templates:3001
+msgid ""
+"The default start parameters of the snmpd agent/daemon have been changed."
+msgstr ""
+"snmpd エージェントおよびデーモンのデフォルトの起動パラメータが変更されました。"
+
+#. Type: note
+#. Description
+#: ../snmpd.templates:3001
+msgid ""
+"The daemon is now started as user snmp, binds to localhost only and runs "
+"with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
+"individually changed in /etc/default/snmpd."
+msgstr ""
+"daemon はこれよりユーザ snmp として起動され、localhost のみが通信可能であり、"
+"SNMP マルチプレキシング (SMUX) サポートは無効にされます。これらのパラメータは"
+"すべて個別に /etc/default/snmpd で変更できます。"
+
+#. Type: note
+#. Description
+#: ../snmpd.templates:3001
+msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
+msgstr "詳細については /usr/share/doc/snmpd/NEWS.Debian.gz を参照してください。"
+
diff --git a/debian/po/ko.po b/debian/po/ko.po
deleted file mode 100644
index 6704c86..0000000
--- a/debian/po/ko.po
+++ /dev/null
@@ -1,52 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: debconf template\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
-"PO-Revision-Date: 2011-06-11 15:23+0900\n"
-"Last-Translator: si-cheol KO <kosicheol at gmail.com>\n"
-"Language-Team: Korean <debian-l10n-korean at lists.debian.org>\n"
-"Language: ko\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Korean\n"
-"X-Poedit-Country: KOREA, REPUBLIC OF\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Default parameters changed since version 5.2.1"
-msgstr "버전 5.2.1 이후부터 기본 파라메터가 변경되었음"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid ""
-"The default start parameters of the snmpd agent/daemon have been changed."
-msgstr "SNMP 에이전트/데몬의 기본 시작 파라메터가 변경되었습니다."
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-#, fuzzy
-msgid ""
-"The daemon is now started as user snmp, binds to localhost only and runs "
-"with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
-"individually changed in /etc/default/snmpd."
-msgstr ""
-"데몬이 사용자 SNMP로 시작되고 로컬호스트에 바인드됩니다. SNMP 멀티플렉싱"
-"(SMUX) 지원은 사용할 수 없습니다. 이런 파라메터들은 /etc/default/snmpd에서 개"
-"별적으로 바꿀 수 있습니다."
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
-msgstr "세부정보는 /usr/share/doc/snmpd/NEWS.Debian.gz파일을 참조하세요."
diff --git a/debian/po/nl.po b/debian/po/nl.po
index 9016189..685bb02 100644
--- a/debian/po/nl.po
+++ b/debian/po/nl.po
@@ -6,25 +6,25 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp 5.2.2-3\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2008-01-03 22:16+0000\n"
 "Last-Translator: Vincent Zweije <zweije at xs4all.nl>\n"
 "Language-Team: Debian-Dutch <debian-l10n-dutch at lists.debian.org>\n"
-"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO-8859-15\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
-msgstr "Standaard parameters gewijzigd vanaf versie 5.2.1"
+msgstr ""
+"Standaard parameters gewijzigd vanaf versie 5.2.1"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr ""
@@ -32,7 +32,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -45,6 +45,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
-msgstr "Zie /usr/share/doc/snmpd/NEWS.Debian.gz voor nadere informatie."
+msgstr ""
+"Zie /usr/share/doc/snmpd/NEWS.Debian.gz voor nadere informatie."
diff --git a/debian/po/pl.po b/debian/po/pl.po
deleted file mode 100644
index b3adb44..0000000
--- a/debian/po/pl.po
+++ /dev/null
@@ -1,54 +0,0 @@
-# Translation of net-snmp debconf templates to Polish.
-# Copyright (C) 2011
-# This file is distributed under the same license as the net-snmp package.
-#
-# Michał Kułach <michal.kulach at gmail.com>, 2012.
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
-"PO-Revision-Date: 2012-02-15 18:38+0100\n"
-"Last-Translator: Michał Kułach <michal.kulach at gmail.com>\n"
-"Language-Team: Polish <debian-l10n-polish at lists.debian.org>\n"
-"Language: pl\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.2\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
-"|| n%100>=20) ? 1 : 2);\n"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Default parameters changed since version 5.2.1"
-msgstr "Domyślne parametry zmieniły się od wersji 5.2.1"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid ""
-"The default start parameters of the snmpd agent/daemon have been changed."
-msgstr "Domyślne parametry startowe agenta/demona snmpd zmieniły się."
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid ""
-"The daemon is now started as user snmp, binds to localhost only and runs "
-"with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
-"individually changed in /etc/default/snmpd."
-msgstr ""
-"Demon jest teraz uruchamiany jako użytkownik snmp, powiązany jedynie z "
-"localhost oraz działa z wyłączonym multipleksowaniem SNMP (SMUX). Parametry "
-"te mogą być zmienione w pliku /etc/default/snmpd."
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
-msgstr ""
-"Proszę zapoznać się z /usr/share/doc/snmpd/NEWS.Debian.gz, aby uzyskać więcej "
-"szczegółów."
-
diff --git a/debian/po/pt.po b/debian/po/pt.po
index 0acd55d..3da6759 100644
--- a/debian/po/pt.po
+++ b/debian/po/pt.po
@@ -2,30 +2,29 @@
 # This file is distributed under the same license as the net-snmp package.
 # Rui Branco <ruipb at debianpt.org>, 2006.
 # 01-06-2007 - Rui Branco <ruipb at debianpt.org>
-#
-#
+# 
+# 
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp 5.4~dfsg-2\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2007-06-01 17:40+0100\n"
 "Last-Translator: Rui Branco <ruipb at debianpt.org>\n"
 "Language-Team: Portuguese <traduz at debianpt.org>\n"
-"Language: pt\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr "Parâmetros por omissão alterados desde a versão 5.2.1"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr ""
@@ -33,7 +32,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -45,6 +44,6 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr "Para mais detalhes por favor veja /usr/share/doc/snmpd/NEWS.Debian.gz."
diff --git a/debian/po/pt_BR.po b/debian/po/pt_BR.po
index 71e4653..d501a36 100644
--- a/debian/po/pt_BR.po
+++ b/debian/po/pt_BR.po
@@ -7,12 +7,11 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2007-06-02 09:04:21-0300\n"
 "Last-Translator: Herbert Parentes Fortes Neto <h_p_f_n at yahoo.com.br>\n"
 "Language-Team: l10n portuguese <debian-l10n-portuguese at lists.debian.org>\n"
-"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -20,13 +19,13 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr "Os parâmetros de inicialização padrão mudaram desde a versão 5.2.1"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr ""
@@ -35,7 +34,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -47,6 +46,6 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr "Por favor veja /usr/share/doc/snmpd/NEWS.Debian.gz para mais detalhes."
diff --git a/debian/po/ro.po b/debian/po/ro.po
index 63576a9..f5d3ec3 100644
--- a/debian/po/ro.po
+++ b/debian/po/ro.po
@@ -8,12 +8,11 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: ro\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-11-05 04:32+0100\n"
 "PO-Revision-Date: 2008-11-15 04:18+0200\n"
 "Last-Translator: Eddy Petrișor <eddy.petrisor at gmail.com>\n"
 "Language-Team: Romanian <debian-l10n-romanian at lists.debian.org>\n"
-"Language: ro\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
diff --git a/debian/po/ru.po b/debian/po/ru.po
index b6a2756..bbfe373 100644
--- a/debian/po/ru.po
+++ b/debian/po/ru.po
@@ -6,35 +6,34 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp_5.2.2-4\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2007-06-03 12:33+0400\n"
 "Last-Translator: Yuri Kozlov <kozlov.y at gmail.com>\n"
 "Language-Team: Russian <debian-l10n-russian at lists.debian.org>\n"
-"Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr "Изменение в настройках по умолчанию, начиная с версии 5.2.1"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr "Изменились параметры запуска агента/демона snmpd."
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -46,7 +45,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr ""
 "Подробней об этом смотрите в файле /usr/share/doc/snmpd/NEWS.Debian.gz."
diff --git a/debian/po/sk.po b/debian/po/sk.po
deleted file mode 100644
index 1024ba4..0000000
--- a/debian/po/sk.po
+++ /dev/null
@@ -1,50 +0,0 @@
-# Slovak translations for net-snmp package
-# Slovenské preklady pre balík net-snmp.
-# Copyright (C) 2011 THE net-snmp'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the net-snmp package.
-# Slavko <linux at slavino.sk>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: net-snmp 5.4.3\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
-"PO-Revision-Date: 2011-07-21 16:15+0200\n"
-"Last-Translator: Slavko <linux at slavino.sk>\n"
-"Language-Team: Slovak <nomail>\n"
-"Language: sk\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Default parameters changed since version 5.2.1"
-msgstr "Predvolené parametre boli od verzie 5.2.1 zmenené"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid ""
-"The default start parameters of the snmpd agent/daemon have been changed."
-msgstr "Predvolené štartovacie parametre agenta/démona snmpd boli zmenené."
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid ""
-"The daemon is now started as user snmp, binds to localhost only and runs "
-"with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
-"individually changed in /etc/default/snmpd."
-msgstr ""
-"Démon je teraz spúšťaný pod používateľom snmp, je viazaný len na localhost a "
-"beží s vypnutou podporou multiplexingu SNMP (SMUX). Všetky tieto parametre "
-"môžu byť individuálne zmenené v /etc/default/snmpd."
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
-msgstr "Prosím pozrite si detaily v /usr/share/doc/snmpd/NEWS.Debian.gz."
diff --git a/debian/po/sr.po b/debian/po/sr.po
deleted file mode 100644
index 6c36c99..0000000
--- a/debian/po/sr.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2011
-# This file is distributed under the same license as the net-snmp package.
-# Zlatan Todoric <zlatan.todoric at gmail.com>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: net-snmp\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Zlatan Todoric <zlatan.todoric at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Default parameters changed since version 5.2.1"
-msgstr "Подразумијевани параметри су промијењени са верзијом 5.2.1"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid ""
-"The default start parameters of the snmpd agent/daemon have been changed."
-msgstr ""
-"Подразумијевани почетни параметри (snmpd) агента/позадинског процеса су "
-"промијењени."
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid ""
-"The daemon is now started as user snmp, binds to localhost only and runs "
-"with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
-"individually changed in /etc/default/snmpd."
-msgstr ""
-"Позадински процес је сада покренут као корисник (snmp), везује се само "
-"локално и покреће се са искљученом (SNMP multiplexing (SMUX)) подршком. Ови "
-"параметри могубити појединачно промијењени у /etc/default/snmpd."
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
-msgstr ""
-"Молимо вас погледајте /usr/share/doc/snmpd/NEWS.Debian.gz за више детаља."
diff --git a/debian/po/sr at latin.po b/debian/po/sr at latin.po
deleted file mode 100644
index 91c32e6..0000000
--- a/debian/po/sr at latin.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2011
-# This file is distributed under the same license as the net-snmp package.
-# Zlatan Todoric <zlatan.todoric at gmail.com>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: net-snmp\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Zlatan Todoric <zlatan.todoric at gmail.com>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Default parameters changed since version 5.2.1"
-msgstr "Podrazumijevani parametri su promijenjeni sa verzijom 5.2.1"
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid ""
-"The default start parameters of the snmpd agent/daemon have been changed."
-msgstr ""
-"Podrazumijevani početni parametri (snmpd) agenta/pozadinskog procesa su "
-"promijenjeni."
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid ""
-"The daemon is now started as user snmp, binds to localhost only and runs "
-"with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
-"individually changed in /etc/default/snmpd."
-msgstr ""
-"Pozadinski proces je sada pokrenut kao korisnik (snmp), vezuje se samo "
-"lokalno i pokreće se sa isključenom (SNMP multiplexing (SMUX)) podrškom. Ovi "
-"parametri mogubiti pojedinačno promijenjeni u /etc/default/snmpd."
-
-#. Type: note
-#. Description
-#: ../snmpd.templates:2001
-msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
-msgstr ""
-"Molimo vas pogledajte /usr/share/doc/snmpd/NEWS.Debian.gz za više detalja."
diff --git a/debian/po/sv.po b/debian/po/sv.po
index 2cc735d..0648513 100644
--- a/debian/po/sv.po
+++ b/debian/po/sv.po
@@ -6,12 +6,11 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp 5.2.2-3\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-06-14 04:33+0200\n"
 "PO-Revision-Date: 2008-07-21 19:28+0100\n"
 "Last-Translator: Martin Bagge <brother at bsnet.se>\n"
 "Language-Team: Swedish <tp-sv at listor.tp-sv.se>\n"
-"Language: sv\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -25,21 +24,14 @@ msgstr "Standardparametrar 
 #. Type: note
 #. Description
 #: ../snmpd.templates:2001
-msgid ""
-"The default start parameters of the snmpd agent/daemon have been changed."
+msgid "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr "Standardiserade uppstartsparameterar f�r snmpd agenten har �ndrats."
 
 #. Type: note
 #. Description
 #: ../snmpd.templates:2001
-msgid ""
-"The daemon is now started as user snmp, binds to localhost only and runs "
-"with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
-"individually changed in /etc/default/snmpd."
-msgstr ""
-"Tj�nsten startas numera som anv�ndaren snmp, lyssnar bara p� lokal v�rd och "
-"k�rs med st�det f�r SNMP multiplexing (SMUX) avaktiverat. Dessa parameterar "
-"kan f�r�ndras i /etc/default/snmpd."
+msgid "The daemon is now started as user snmp, binds to localhost only and runs with SNMP multiplexing (SMUX) support disabled. These parameters can all be individually changed in /etc/default/snmpd."
+msgstr "Tj�nsten startas numera som anv�ndaren snmp, lyssnar bara p� lokal v�rd och k�rs med st�det f�r SNMP multiplexing (SMUX) avaktiverat. Dessa parameterar kan f�r�ndras i /etc/default/snmpd."
 
 #. Type: note
 #. Description
@@ -49,7 +41,6 @@ msgstr "L
 
 #~ msgid "Upgrade warning from version 3.6 and below"
 #~ msgstr "Varning f�r uppgradering fr�n version 3.6 och �ldre"
-
 #~ msgid ""
 #~ "Debian now uses the NET SNMP agent/daemon.  Since the new agent uses an "
 #~ "entirely new configuration file format, any configuration you may have "
@@ -66,6 +57,6 @@ msgstr "L
 #~ "konfiguration att installeras som standard.  V�nligen l�s manualsidan "
 #~ "snmpd.conf(5) och redigera sedan /etc/snmp/snmpd.conf p� l�mpligt s�tt "
 #~ "f�r att passa dina behov."
-
 #~ msgid "Upgrade warning from version 5.2.1 and below"
 #~ msgstr "Varning f�r uppgradering fr�n version 5.2.1 och �ldre"
+
diff --git a/debian/po/ta.po b/debian/po/ta.po
index baaab14..0f063d5 100644
--- a/debian/po/ta.po
+++ b/debian/po/ta.po
@@ -6,12 +6,11 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2007-06-09 13:31+0530\n"
 "Last-Translator: Dr.T.Vasudevan <agnihot3 at gmail.com>\n"
 "Language-Team: TAMIL <ubuntu-l10n-tam at lists.ubuntu.com>\n"
-"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -19,20 +18,20 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr "பதிப்பு 5.2.1 க்குப் பின் முன்னிருப்பு அளபுருக்கள் மாறி உள்ளன"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr "snmpd agent/daemon இல் துவங்கும் முன்னிருப்பு அளபுருக்கள் மாறி உள்ளன"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -44,6 +43,6 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr "மேல் தகவல்களுக்கு /usr/share/doc/snmpd/NEWS.Debian.gz ஐ காணவும்."
diff --git a/debian/po/templates.pot b/debian/po/templates.pot
index 03a55f7..868894e 100644
--- a/debian/po/templates.pot
+++ b/debian/po/templates.pot
@@ -7,32 +7,31 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -41,6 +40,6 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr ""
diff --git a/debian/po/vi.po b/debian/po/vi.po
index 935bf76..d167241 100644
--- a/debian/po/vi.po
+++ b/debian/po/vi.po
@@ -1,16 +1,15 @@
 # Vietnamese translation for Net SNMP.
 # Copyright © 2007 Free Software Foundation, Inc.
 # Clytie Siddall <clytie at riverland.net.au>, 2007
-#
+# 
 msgid ""
 msgstr ""
 "Project-Id-Version: net-snmp\n"
-"Report-Msgid-Bugs-To: net-snmp at packages.debian.org\n"
-"POT-Creation-Date: 2011-12-10 08:44+0100\n"
+"Report-Msgid-Bugs-To: pkg-net-snmp-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-05-31 07:40+0200\n"
 "PO-Revision-Date: 2007-05-31 17:57+0930\n"
 "Last-Translator: Clytie Siddall <clytie at riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN at googlegroups.com>\n"
-"Language: vi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -19,13 +18,13 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Default parameters changed since version 5.2.1"
 msgstr "Tham số mặc định bị thay đổi kể từ phiên bản 5.2.1"
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The default start parameters of the snmpd agent/daemon have been changed."
 msgstr ""
@@ -33,7 +32,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid ""
 "The daemon is now started as user snmp, binds to localhost only and runs "
 "with SNMP multiplexing (SMUX) support disabled. These parameters can all be "
@@ -46,7 +45,7 @@ msgstr ""
 
 #. Type: note
 #. Description
-#: ../snmpd.templates:2001
+#: ../snmpd.templates:3001
 msgid "Please see /usr/share/doc/snmpd/NEWS.Debian.gz for more details."
 msgstr ""
 "Xem tập tin tin tức « /usr/share/doc/snmpd/NEWS.Debian.gz » để tìm chi tiết."
diff --git a/debian/rules b/debian/rules
index d1da11e..0f8606a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,33 +1,28 @@
 #!/usr/bin/make -f
-#export DH_VERBOSE=1
 
-# TODO
-# without -pie build fails during perl module build somehow...
-export DEB_BUILD_MAINT_OPTIONS := hardening=+all,-pie
-DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+include /usr/share/python/python.mk
 
-LIB_VERSION = 30
+LIB_VERSION = 15
 UPSTREAM_VERSION = $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ':' | sed 's/ //' | sed 's/~dfsg.*$$//')
 COMPAT_VERSION = $(UPSTREAM_VERSION)~dfsg
 PYTHON_VERSION = 1.0a1
 
-MIB_MODULES = smux ucd-snmp/dlmod mibII/mta_sendmail disman/event-mib
+MIB_MODULES = smux ucd-snmp/dlmod
 EXCL_MIB_MODULES =
 
-OLD_MIBS_DIR="/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp"
-MIBS_DIR="/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf"
+PYVERS=$(shell pyversions -vr)
 
-ifeq (linux,$(DEB_BUILD_ARCH_OS))
-MIB_MODULES += ucd-snmp/diskio ucd-snmp/lmsensorsMib etherlike-mib/dot3StatsTable
+ifeq (linux,$(DEB_HOST_ARCH_OS))
+MIB_MODULES += ucd-snmp/diskio ucd-snmp/lmSensors 
 IPV6 = --enable-ipv6
 DEB_DH_GENCONTROL_ARGS=-- -Vos-specific-dev="libsensors4-dev"
 else
-ifeq (kfreebsd,$(DEB_BUILD_ARCH_OS))
+ifeq (kfreebsd,$(DEB_HOST_ARCH_OS))
 IPV6 = --disable-ipv6
 DEB_DH_GENCONTROL_ARGS=-- -Vos-specific-dev="libkvm-dev"
 endif
 endif
-ifeq (hurd,$(DEB_BUILD_ARCH_OS))
+ifeq (hurd,$(DEB_HOST_ARCH_OS))
 IPV6 = --enable-ipv6
 EXCL_MIB_MODULES += mibII
 else
@@ -35,14 +30,20 @@ MIB_MODULES += host
 endif
 
 %:
-	dh $@ --with autotools-dev,autoreconf,python2
+	dh --with python-central $@
 
+.PHONY: override_dh_auto_configure
 override_dh_auto_configure:
+	ln -f -s /usr/share/misc/config.guess .
+	ln -f -s /usr/share/misc/config.sub .
+	libtoolize --install --copy
+	aclocal
+	autoheader
+	autoconf
 	dh_auto_configure -- --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man \
 	  --with-persistent-directory=/var/lib/snmp \
 	  --enable-ucd-snmp-compatibility \
 	  --enable-shared --with-cflags="$(CFLAGS) -DNETSNMP_USE_INLINE" \
-	  --with-ldflags="$(LDFLAGS)" \
 	  --with-perl-modules="INSTALLDIRS=vendor" --enable-as-needed \
 	  $(IPV6) --with-logfile=none \
 	  --without-rpm --with-libwrap --with-openssl \
@@ -52,62 +53,93 @@ override_dh_auto_configure:
 	  --with-out-mib-modules="$(EXCL_MIB_MODULES)" \
 	  --enable-mfd-rewrites \
 	  --with-mnttab=/etc/mtab \
-	  --with-mibdirs="\$$HOME/.snmp/mibs:$(MIBS_DIR):$(OLD_MIBS_DIR)" \
-	  --with-mysql \
+	  --with-mibdirs="\$$HOME/.snmp/mibs:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp" \
 	  --with-defaults
-# --with-python-modules=""  # don't specify it, since dh_python2 cannot handle it.
-# --with-dnssec-local-validation  # not enabled since libval doesn't exist in Debian yet
 
+.PHONY: override_dh_clean
 override_dh_clean:
 	dh_clean
-	rm -rf `find . -name .libs` \
-	       python/build         \
-	       python/netsnmp_python.egg-info
+	rm -rf `find . -name .libs`
+	rm -rf `find . -name .svn`
+	find . -name *\.py[co] -exec rm {} \;
+	find debian -name python-*-stamp-* -exec rm {} \;
+	rm -rf python/build
+	rm -rf python/netsnmp_python.egg-info
 
-override_dh_strip:
-	dh_strip -plibsnmp$(LIB_VERSION) --dbg-package=libsnmp$(LIB_VERSION)-dbg
-	dh_strip
+.PHONY: override_dh_auto_build
+override_dh_auto_build:
+	dh_auto_build -- LD_RUN_PATH=
+
+.PHONY: override_dh_auto_install
+override_dh_auto_install: $(PYVERS:%=debian/python-build-stamp-%)
+	dh_auto_install -- INSTALL_PREFIX=$(CURDIR)/debian/tmp DESTDIR=$(CURDIR)/debian/tmp
+	# Install the "broke" headers
+	cp agent/mibgroup/struct.h debian/tmp/usr/include/net-snmp/agent
+	cp agent/mibgroup/util_funcs.h debian/tmp/usr/include/net-snmp
+	cp agent/mibgroup/mibincl.h debian/tmp/usr/include/net-snmp/library
+	cp agent/mibgroup/header_complex.h debian/tmp/usr/include/net-snmp/agent
+	# Remove the snmpcheck program since we don't support it (yet).
+	rm debian/tmp/usr/bin/snmpcheck
+	# Copy the .conf files.
+	mkdir -p debian/tmp/etc/snmp
+	cp EXAMPLE.conf debian/tmp/etc/snmp/snmpd.conf
+	cp EXAMPLE-trap.conf debian/tmp/etc/snmp/snmptrapd.conf
+	cp debian/snmp.conf debian/tmp/etc/snmp/snmp.conf
+	mv debian/tmp/usr/share/snmp/mib2c*.conf debian/tmp/etc/snmp
+	dh_installdocs -plibsnmp-base mibs/README.mibs
+	# Perform other man pages fixups.
+	bash ./debian/fixman
+
+.PHONY: override_dh_auto_test
+dh_auto_test:
 
+.PHONY: override_dh_makeshlibs
 override_dh_makeshlibs:
 	dh_makeshlibs -plibsnmp$(LIB_VERSION) -V"libsnmp$(LIB_VERSION) (>= $(COMPAT_VERSION))"
 
-override_dh_install:
-	cd python; python setup.py build --basedir=$(CURDIR) ; \
-		   python setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb --basedir=$(CURDIR) ; \
-		   find $(CURDIR) -name *.pyc -delete
-	install $(CURDIR)/EXAMPLE.conf $(CURDIR)/debian/snmpd/etc/snmp/snmpd.conf
+.PHONY: override_dh_strip
+override_dh_strip:
+	dh_strip -plibsnmp$(LIB_VERSION) --dbg-package=libsnmp$(LIB_VERSION)-dbg
+	dh_strip
+
+.PHONY: override_dh_install
+override_dh_install: $(PYVERS:%=debian/python-install-stamp-%)
+	dh_installexamples -plibsnmp-perl $(shell ls -d perl/SNMP/examples/* | grep -v SCCS)
 	dh_install
 
+.PHONY: override_dh_installdocs
 override_dh_installdocs:
-	dh_installdocs --link-doc=libsnmp$(LIB_VERSION) \
-		       -plibsnmp-dev \
-		       -plibsnmp$(LIB_VERSION)-dbg \
-		       -ppython-netsnmp \
-		       -psnmpd \
-		       -psnmptrapd \
-		       -psnmp
-	dh_installdocs  -plibsnmp-perl -ptkmib -plibsnmp-base
-	# dh_installdocs has a bug when --link-doc is called it don't install copyright file to referenced package
-	# so specify to copy it
-	install -d $(CURDIR)/debian/libsnmp$(LIB_VERSION)/usr/share/doc/libsnmp$(LIB_VERSION)/
-	install -m644 debian/copyright $(CURDIR)/debian/libsnmp$(LIB_VERSION)/usr/share/doc/libsnmp$(LIB_VERSION)/
+	dh_installdocs
+	rm -rf debian/libsnmp-dev/usr/share/doc/libsnmp-dev
+	rm -rf debian/libsnmp$(LIB_VERSION)-dbg/usr/share/doc/libsnmp$(LIB_VERSION)-dbg
+	rm -rf debian/libsnmp-perl/usr/share/doc/libsnmp-perl
+	ln -sf libsnmp$(LIB_VERSION) debian/libsnmp-dev/usr/share/doc/libsnmp-dev
+	ln -sf libsnmp$(LIB_VERSION) debian/libsnmp$(LIB_VERSION)-dbg/usr/share/doc/libsnmp$(LIB_VERSION)-dbg
+	ln -sf libsnmp$(LIB_VERSION) debian/libsnmp-perl/usr/share/doc/libsnmp-perl
 
+.PHONY: override_dh_fixperms
 override_dh_fixperms:
 	dh_fixperms
-	chmod -x debian/libsnmp-dev/etc/snmp/*.conf
 	chmod 600 debian/snmpd/etc/snmp/snmp*d.conf
 
-override_dh_auto_test:
-	# prevent test since it fails with network configuration under pbuilder/etc.
-	true
+debian/python-build-stamp-%:
+	# Build python modules manually as the net-snmp Makefile is too limited.
+	cd python; python$* setup.py build --basedir=$(CURDIR)
+	touch $@
+
+debian/python-install-stamp-%:
+	# Build python modules manually as the net-snmp Makefile is too limited.
+	cd python; python$* setup.py install --root $(CURDIR)/debian/tmp $(py_setup_install_args)
+	mv debian/tmp/usr/lib/python$*/$(call py_sitename, $*)/netsnmp_python-$(PYTHON_VERSION).egg-info \
+	   debian/tmp/usr/lib/python$*/$(call py_sitename, $*)/netsnmp_python.egg-info
+	touch $@
 
 get-orig-source:
 	@uscan --download-version $(UPSTREAM_VERSION) --destdir /tmp --force-download --no-symlink
-	@tar xf /tmp/net-snmp-$(UPSTREAM_VERSION).tar.gz -C /tmp
+	@tar xfz /tmp/net-snmp-$(UPSTREAM_VERSION).tar.gz -C /tmp
 	@rm -rf /tmp/net-snmp-$(UPSTREAM_VERSION)/doc
 	@cd /tmp/net-snmp-$(UPSTREAM_VERSION)/mibs; \
-	 grep ^iana ianalist | while read iana mibs; do rm -f `echo $$mibs | sed -e s/$$/.txt/`; done; \
-	 cat rfclist | while read rfc mibs; do rm -f `echo $$mibs | sed 's/:/.txt /g' | sed 's/$$/.txt/'`; done
+	cat rfclist ianalist | while read rfc mibs; do rm -f `echo $$mibs | sed 's/:/.txt /g' | sed 's/$$/.txt/'`; done
 	@rm -f /tmp/net-snmp-$(UPSTREAM_VERSION)/mibs/RFC-1215.txt
-	@cd /tmp; tar cJf net-snmp_$(COMPAT_VERSION).orig.tar.xz net-snmp-$(UPSTREAM_VERSION)
+	@cd /tmp; tar czf net-snmp_$(COMPAT_VERSION).orig.tar.gz net-snmp-$(UPSTREAM_VERSION)
 	@rm -rf /tmp/net-snmp-$(UPSTREAM_VERSION)
diff --git a/debian/snmp.conf b/debian/snmp.conf
index 95a6e6f..e8ca08e 100644
--- a/debian/snmp.conf
+++ b/debian/snmp.conf
@@ -1,4 +1,5 @@
+#
 # As the snmp packages come without MIB files due to license reasons, loading
 # of MIBs is disabled by default. If you added the MIBs you can reenable
-# loading them by commenting out the following line.
+# loaging them by commenting out the following line.
 mibs :
diff --git a/debian/snmp.dirs b/debian/snmp.dirs
new file mode 100644
index 0000000..1da8fba
--- /dev/null
+++ b/debian/snmp.dirs
@@ -0,0 +1 @@
+usr/share/lintian/overrides
diff --git a/debian/snmp.install b/debian/snmp.install
index 8290285..9085ef4 100644
--- a/debian/snmp.install
+++ b/debian/snmp.install
@@ -1,5 +1,9 @@
-debian/snmp.conf etc/snmp/
-usr/bin/snmp*
-usr/bin/encode*
-usr/bin/fixproc
-usr/share/snmp/snmpconf-data/snmp-data
+debian/tmp/usr/bin/snmp*
+debian/tmp/usr/bin/encode*
+debian/tmp/usr/bin/fixproc
+debian/tmp/usr/bin/traptoemail
+debian/tmp/usr/share/man/man1/snmp*
+debian/tmp/usr/share/man/man1/encode*
+debian/tmp/usr/share/man/man1/fixproc.1
+debian/tmp/usr/share/man/man1/traptoemail.1
+debian/tmp/usr/share/snmp/snmpconf-data/snmp-data
diff --git a/debian/snmp.manpages b/debian/snmp.manpages
deleted file mode 100644
index 0ab3306..0000000
--- a/debian/snmp.manpages
+++ /dev/null
@@ -1,4 +0,0 @@
-man/snmp*.1
-man/encode*.1
-man/fixproc.1
-man/traptoemail.1
diff --git a/debian/snmp.postinst b/debian/snmp.postinst
deleted file mode 100644
index da451d0..0000000
--- a/debian/snmp.postinst
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-# postinst script for snmp
-#
-# see: dh_installdeb(1)
-
-set -e
-
-case "$1" in
-    configure)
-
-        DOCDIR=/usr/share/doc/snmp
-        DOCLINK=libsnmp30
-
-        if [ -d $DOCDIR ] && [ ! -L $DOCDIR ]; then
-                rmdir $DOCDIR
-                ln -s $DOCLINK $DOCDIR
-        fi
-    ;;
-
-    abort-upgrade|abort-remove|abort-deconfigure)
-    ;;
-
-    *)
-        echo "postinst called with unknown argument \`$1'" >&2
-        exit 1
-    ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
diff --git a/debian/snmp.preinst b/debian/snmp.preinst
index 8f8c754..9dc3306 100644
--- a/debian/snmp.preinst
+++ b/debian/snmp.preinst
@@ -1,29 +1,18 @@
-#!/bin/sh
+#! /bin/sh
 
 set -e
 
-case "$1" in
+action="$1"
 
-install|upgrade)
+if [ "$action" = upgrade ]
+then
   if [ -L /usr/share/doc/snmp ]; then
     rm -f /usr/share/doc/snmp
   fi
   if [ -d /usr/doc/snmp ]; then
     rm -rf /usr/doc/snmp
   fi
-
-  killall -u snmp 2>/dev/null || true
-
-  ;;
-abort-upgrade)
-  ;;
-
-*)
-  echo "preinst called with unknown argument \`$1'" >&2
-  exit 1
-  ;;
-
-esac
+fi
 
 #DEBHELPER#
 
diff --git a/debian/snmp.prerm b/debian/snmp.prerm
deleted file mode 100644
index a02114d..0000000
--- a/debian/snmp.prerm
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-set -e
-
-case "$1" in
-    remove|upgrade|deconfigure)
-    killall -u snmp  2>/dev/null || true
-    ;;
-
-    failed-upgrade)
-    ;;
-
-    *)
-        echo "prerm called with unknown argument \`$1'" >&2
-        exit 1
-    ;;
-esac
-
-#DEBHELPER#
-
-exit 0
diff --git a/debian/snmpd.default b/debian/snmpd.default
index e47dec8..14f2b86 100644
--- a/debian/snmpd.default
+++ b/debian/snmpd.default
@@ -1,4 +1,4 @@
-# This file controls the activity of snmpd
+# This file controls the activity of snmpd and snmptrapd
 
 # Don't load any MIBs by default.
 # You might comment this lines once you have the MIBs downloaded.
@@ -8,4 +8,15 @@ export MIBS=
 SNMPDRUN=yes
 
 # snmpd options (use syslog, close stdin/out/err).
-SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux,mteTrigger,mteTriggerConf -p /run/snmpd.pid'
+SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'
+
+# snmptrapd control (yes means start daemon).  As of net-snmp version
+# 5.0, master agentx support must be enabled in snmpd before snmptrapd
+# can be run.  See snmpd.conf(5) for how to do this.
+TRAPDRUN=no
+
+# snmptrapd options (use syslog).
+TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'
+
+# create symlink on Debian legacy location to official RFC path
+SNMPDCOMPAT=yes
diff --git a/debian/snmpd.dirs b/debian/snmpd.dirs
index 230a402..14ce423 100644
--- a/debian/snmpd.dirs
+++ b/debian/snmpd.dirs
@@ -1 +1,2 @@
-etc/snmp
+usr/share/lintian/overrides
+var/agentx
diff --git a/debian/snmpd.init b/debian/snmpd.init
index 3e6dc03..125a1ba 100644
--- a/debian/snmpd.init
+++ b/debian/snmpd.init
@@ -1,6 +1,6 @@
-#! /bin/sh
+#! /bin/sh -e
 ### BEGIN INIT INFO
-# Provides:           snmpd
+# Provides:           snmpd snmptrapd
 # Required-Start:     $network $remote_fs $syslog
 # Required-Stop:      $network $remote_fs $syslog
 # Default-Start:      2 3 4 5
@@ -18,15 +18,14 @@ set -e
 export PATH=/sbin:/usr/sbin:/bin:/usr/bin
 
 test -x /usr/sbin/snmpd || exit 0
+test -x /usr/sbin/snmptrapd || exit 0
 
 # Defaults
-OLD_MIBS_DIR="/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp"
-MIBS_DIR="/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf"
-export MIBDIRS="$MIBS_DIR:$OLD_MIBS_DIR"
-
-SNMP_PID="/run/snmpd.pid"
-SNMPDRUN="yes"
-SNMPDOPTS="-Lsd -Lf /dev/null -p $SNMP_PID"
+export MIBDIRS=/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
+SNMPDRUN=yes
+SNMPDOPTS='-Lsd -Lf /dev/null -p /var/run/snmpd.pid'
+TRAPDRUN=no
+TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'
 
 # Reads config file (will override defaults above)
 [ -r /etc/default/snmpd ] && . /etc/default/snmpd
@@ -34,48 +33,65 @@ SNMPDOPTS="-Lsd -Lf /dev/null -p $SNMP_PID"
 # Cd to / before starting any daemons.
 cd /
 
+# Create compatibility link to old AgentX socket location
+if [ "$SNMPDCOMPAT" = "yes" ] && [ "$1" != status ]; then
+  ln -sf /var/agentx/master /var/run/agentx
+fi
+
 case "$1" in
   start)
-    log_daemon_msg "Starting SNMP services:"
-    # remove old symlink with previous version
-    if [ -L /var/run/agentx ]; then
-	    rm -f /var/run/agentx
-    fi
-    if [ ! -d /var/run/agentx ]; then
-	    mkdir -p /var/run/agentx
-    fi
+    echo -n "Starting network management services:"
     if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then
 	start-stop-daemon --quiet --start --oknodo --exec /usr/sbin/snmpd \
 	    -- $SNMPDOPTS
-	log_progress_msg " snmpd"
+	echo -n " snmpd"
     fi
+    if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
+	start-stop-daemon --quiet --start --oknodo --exec /usr/sbin/snmptrapd \
+	    -- $TRAPDOPTS
+	echo -n " snmptrapd"
+    fi
+    echo "."
     ;;
   stop)
-    log_daemon_msg "Stopping SNMP services:"
-    start-stop-daemon --quiet --stop --oknodo --retry 3 --exec /usr/sbin/snmpd && [ ! -f $SNMP_PID ] || rm $SNMP_PID
-    log_progress_msg " snmpd"
+    echo -n "Stopping network management services:"
+    start-stop-daemon --quiet --stop --oknodo --exec /usr/sbin/snmpd
+    echo -n " snmpd"
+    start-stop-daemon --quiet --stop --oknodo --exec /usr/sbin/snmptrapd
+    echo -n " snmptrapd"
+    echo "."
     ;;
   restart)
-    log_daemon_msg "Restarting SNMP services:"
-    start-stop-daemon --quiet --stop --oknodo --retry 3 --exec /usr/sbin/snmpd  && [ ! -f $SNMP_PID ] || rm $SNMP_PID
+    echo -n "Restarting network management services:"
+    start-stop-daemon --quiet --stop --oknodo --exec /usr/sbin/snmpd
+    start-stop-daemon --quiet --stop --oknodo --exec /usr/sbin/snmptrapd
+    # Allow the daemons time to exit completely.
+    sleep 2
     if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then
 	start-stop-daemon --quiet --start --exec /usr/sbin/snmpd -- $SNMPDOPTS
-	log_progress_msg " snmpd"
+	echo -n " snmpd"
+    fi
+    if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
+	# Allow snmpd time to start up.
+	sleep 1
+	start-stop-daemon --quiet --start --exec /usr/sbin/snmptrapd -- $TRAPDOPTS
+	echo -n " snmptrapd"
     fi
+    echo "."
     ;;
   reload|force-reload)
-    log_daemon_msg "Reloading SNMP services:"
+    echo -n "Reloading network management services:"
     if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then
         start-stop-daemon --quiet --stop --signal 1 \
-	    --pidfile "$SNMP_PID" --exec /usr/sbin/snmpd
-	log_progress_msg " snmpd"
+	    --pidfile /var/run/snmpd.pid --exec /usr/sbin/snmpd
+	echo -n " snmpd"
     fi
+    echo "."
     ;;
   status)
     status=0
-    if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then
-    	status_of_proc /usr/sbin/snmpd snmpd || status=$?
-    fi
+    status_of_proc /usr/sbin/snmpd snmpd || status=$?
+    status_of_proc /usr/sbin/snmptrapd snmptrapd || status=$?
     exit $status
     ;;
   *)
diff --git a/debian/snmpd.install b/debian/snmpd.install
index 869de98..bbbc21f 100644
--- a/debian/snmpd.install
+++ b/debian/snmpd.install
@@ -1,3 +1,11 @@
-usr/sbin/snmpd
-usr/share/snmp/snmpconf-data/snmpd-data
-usr/share/snmp/snmp_perl.pl
+debian/tmp/usr/sbin/*
+debian/tmp/usr/share/man/man5/snmpd.conf.5snmp
+debian/tmp/usr/share/man/man5/snmptrapd.conf.5snmp
+debian/tmp/usr/share/man/man8/snmpd.8
+debian/tmp/usr/share/man/man8/snmptrapd.8
+debian/tmp/usr/share/snmp/snmpconf-data/snmpd-data
+debian/tmp/usr/share/snmp/snmpconf-data/snmptrapd-data
+debian/tmp/usr/share/snmp/snmp_perl.pl
+debian/tmp/usr/share/snmp/snmp_perl_trapd.pl
+debian/tmp/etc/snmp/snmpd.conf
+debian/tmp/etc/snmp/snmptrapd.conf
diff --git a/debian/snmpd.lintian-overrides b/debian/snmpd.lintian-overrides
index 8821a55..57ba01f 100644
--- a/debian/snmpd.lintian-overrides
+++ b/debian/snmpd.lintian-overrides
@@ -1 +1,3 @@
 snmpd: non-standard-file-perm etc/snmp/snmpd.conf 0600 != 0644
+snmpd: non-standard-file-perm etc/snmp/snmptrapd.conf 0600 != 0644
+snmpd: non-standard-dir-in-var var/agentx/
diff --git a/debian/snmpd.manpages b/debian/snmpd.manpages
deleted file mode 100644
index 4b51151..0000000
--- a/debian/snmpd.manpages
+++ /dev/null
@@ -1,2 +0,0 @@
-man/snmpd.conf.5
-man/snmpd.8
diff --git a/debian/snmpd.postinst b/debian/snmpd.postinst
index c4c559e..2be79eb 100644
--- a/debian/snmpd.postinst
+++ b/debian/snmpd.postinst
@@ -1,62 +1,17 @@
 #! /bin/sh
 
-SNMPDIR=/var/lib/snmp
-
 set -e
 
-case "$1" in
-    configure)
-
-	. /usr/share/debconf/confmodule
-	db_version 2.0
-
-	if [ ! `getent passwd snmp >/dev/null` ]; then
-
-	  if [ ! `getent group snmp >/dev/null` ]; then
-	     # no snmp user & group
-	     adduser --quiet --system --group --home $SNMPDIR \
-	             --shell /usr/sbin/nologin snmp
-	  else
-	     # no snmp user, but snmp group exists
-	     adduser --quiet --system --ingroup snmp --home $SNMPDIR \
-	             --shell /usr/sbin/nologin snmp
-	  fi
-
-	elif [ ! `getent group snmp >/dev/null` ]; then
-
-	  # snmp user exists but no snmp group
-	  addgroup --quiet --system snmp
-
-	  # if user is local system user (not LDAP or so), then exec usermod
-	  # see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482041#25
-	  if [ ! `getent passwd snmp | cut -d':' -f3` -ge 1000 ]; then
-	    mkdir -p $SNMPDIR || true
-	    usermod -d $SNMPDIR -m -g snmp -s /usr/sbin/nologin snmp
-	  fi
-
+if [ "x$1" = xconfigure ]; then
+	if [ ! `getent group snmp >/dev/null` ]; then
+		 deluser --quiet --system snmp
 	fi
+	adduser --quiet --system --group --no-create-home --home /var/lib/snmp snmp
+	chown -R snmp:snmp /var/lib/snmp
+fi
 
-	# Bug#709087
-        DOCDIR=/usr/share/doc/snmpd
-        DOCLINK=libsnmp30
-
-        if [ -d $DOCDIR ] && [ ! -L $DOCDIR ]; then
-                rmdir $DOCDIR
-                ln -s $DOCLINK $DOCDIR
-        fi
-    ;;
-
-    abort-upgrade|abort-remove|abort-deconfigure)
-    ;;
-
-    *)
-        echo "postinst called with unknown argument \`$1'" >&2
-        exit 1
-    ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
+. /usr/share/debconf/confmodule
+db_version 2.0
 
 #DEBHELPER#
 
diff --git a/debian/snmpd.postrm b/debian/snmpd.postrm
index b23db23..2eda8b2 100644
--- a/debian/snmpd.postrm
+++ b/debian/snmpd.postrm
@@ -6,8 +6,10 @@ set -e
 
 if [ $1 = purge ]; then  
     rm -f /var/lib/snmp/snmpd.conf*
-    rm -rf /var/run/agentx /var/agentx/master
+    rm -f /var/lib/snmp/snmptrapd.conf*
+    rm -f /var/run/agentx
     rm -f /var/run/snmpd.pid
+    rm -f /var/run/snmptrapd.pid
     if getent passwd snmp >/dev/null; then
 	if [ -x /usr/sbin/deluser ]; then
 	    deluser --quiet --system snmp
diff --git a/debian/snmptrapd.conf b/debian/snmptrapd.conf
deleted file mode 100644
index c5a8f04..0000000
--- a/debian/snmptrapd.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#
-# EXAMPLE-trap.conf:
-#   An example configuration file for configuring the Net-SNMP snmptrapd agent.
-#
-###############################################################################
-#
-# This file is intended to only be an example.
-# When the snmptrapd agent starts up, this is where it will look for it.
-#
-# All lines beginning with a '#' are comments and are intended for you
-# to read.  All other lines are configuration commands for the agent.
-
-#
-# PLEASE: read the snmptrapd.conf(5) manual page as well!
-#
-#authCommunity log,execute,net private 
-#authCommunity log,execute,net public
-#
-## send mail when get any events
-#traphandle default /usr/bin/traptoemail -s smtp.example.org foobar at example.org
-#
-## send mail when get linkDown
-#traphandle .1.3.6.1.6.3.1.1.5.3 /usr/bin/traptoemail -s smtp.example.org foobar at example.org
diff --git a/debian/snmptrapd.default b/debian/snmptrapd.default
deleted file mode 100644
index 3649c48..0000000
--- a/debian/snmptrapd.default
+++ /dev/null
@@ -1,9 +0,0 @@
-# This file controls the activity of snmptrapd
-
-# snmptrapd control (yes means start daemon).  As of net-snmp version
-# 5.0, master agentx support must be enabled in snmpd before snmptrapd
-# can be run.  See snmpd.conf(5) for how to do this.
-TRAPDRUN=no
-
-# snmptrapd options (use syslog).
-TRAPDOPTS='-Lsd -p /run/snmptrapd.pid'
diff --git a/debian/snmptrapd.dirs b/debian/snmptrapd.dirs
deleted file mode 100644
index 230a402..0000000
--- a/debian/snmptrapd.dirs
+++ /dev/null
@@ -1 +0,0 @@
-etc/snmp
diff --git a/debian/snmptrapd.init b/debian/snmptrapd.init
deleted file mode 100644
index 48e26ac..0000000
--- a/debian/snmptrapd.init
+++ /dev/null
@@ -1,81 +0,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides:           snmptrapd
-# Required-Start:     $network $remote_fs $syslog
-# Required-Stop:      $network $remote_fs $syslog
-# Default-Start:      2 3 4 5
-# Default-Stop:       0 1 6
-# Short-Description:  SNMP Trap daemon
-# Description:        NET SNMP (Simple Network Management Protocol) trap daemon
-### END INIT INFO
-#
-# Author:    Hideki Yamane <henrich at debian.org>
-#            (based on Jochen Friedrich <jochen at scram.de>'s snmpd.init)
-#
-set -e
-
-. /lib/lsb/init-functions
-
-export PATH=/sbin:/usr/sbin:/bin:/usr/bin
-test -x /usr/sbin/snmptrapd || exit 0
-
-# Defaults
-OLD_MIBS_DIR="/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp"
-MIBS_DIR="/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf"
-export MIBDIRS="$MIBS_DIR:$OLD_MIBS_DIR"
-
-TRAPD_PID="/run/snmptrapd.pid"
-TRAPDRUN=no
-TRAPDOPTS="-Lsd -p $TRAPD_PID"
-
-# Reads config file (will override defaults above)
-[ -r /etc/default/snmptrapd ] && . /etc/default/snmptrapd
-
-# Cd to / before starting any daemons.
-cd /
-
-case "$1" in
-  start)
-    log_daemon_msg "Starting SNMP trap services:"
-    if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
-	start-stop-daemon --quiet --start --oknodo --exec /usr/sbin/snmptrapd \
-	    -- $TRAPDOPTS
-	log_progress_msg " snmptrapd"
-    fi
-    ;;
-  stop)
-    log_daemon_msg "Stopping SNMP trap services:"
-    start-stop-daemon --quiet --stop --oknodo --retry 3 --exec /usr/sbin/snmptrapd \
-           && [ ! -f $TRAPD_PID ] || rm $TRAPD_PID
-    log_progress_msg " snmptrapd"
-    ;;
-  restart)
-    log_daemon_msg "Restarting SNMP trap services:"
-    start-stop-daemon --quiet --stop --oknodo --retry 3 --exec /usr/sbin/snmptrapd \
-           && [ ! -f $TRAPD_PID ] || rm $TRAPD_PID
-    if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
-        start-stop-daemon --quiet --start --retry 3 --exec /usr/sbin/snmptrapd -- $TRAPDOPTS
-	log_progress_msg " snmptrapd"
-    fi
-    ;;
-  reload|force-reload)
-    log_daemon_msg "Reloading SNMP trap services:"
-    if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
-        start-stop-daemon --quiet --stop --signal 1 \
-           --pidfile "$TRAPD_PID" --exec /usr/sbin/snmptrapd
-        log_progress_msg " snmptrapd"
-    fi
-    ;;
-  status)
-    status=0
-    if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
-      status_of_proc /usr/sbin/snmptrapd snmptrapd || status=$?
-    fi
-    exit $status
-    ;;
-  *)
-    echo "Usage: /etc/init.d/snmptrapd {start|stop|restart|reload|force-reload|status}"
-    exit 1
-esac
-
-exit 0
diff --git a/debian/snmptrapd.install b/debian/snmptrapd.install
deleted file mode 100644
index 3d93a7a..0000000
--- a/debian/snmptrapd.install
+++ /dev/null
@@ -1,5 +0,0 @@
-usr/bin/traptoemail
-usr/sbin/snmptrapd
-debian/snmptrapd.conf etc/snmp/
-usr/share/snmp/snmpconf-data/snmptrapd-data
-usr/share/snmp/snmp_perl_trapd.pl
diff --git a/debian/snmptrapd.lintian-overrides b/debian/snmptrapd.lintian-overrides
deleted file mode 100644
index 2d5f28d..0000000
--- a/debian/snmptrapd.lintian-overrides
+++ /dev/null
@@ -1 +0,0 @@
-snmptrapd: non-standard-file-perm etc/snmp/snmptrapd.conf 0600 != 0644
diff --git a/debian/snmptrapd.manpages b/debian/snmptrapd.manpages
deleted file mode 100644
index ac0d7ab..0000000
--- a/debian/snmptrapd.manpages
+++ /dev/null
@@ -1,2 +0,0 @@
-man/snmptrapd.conf.5
-man/snmptrapd.8
diff --git a/debian/snmptrapd.postrm b/debian/snmptrapd.postrm
deleted file mode 100644
index 77deff7..0000000
--- a/debian/snmptrapd.postrm
+++ /dev/null
@@ -1,12 +0,0 @@
-#! /bin/sh
-
-set -e
-
-#DEBHELPER#
-
-if [ $1 = purge ]; then
-    rm -f /var/lib/snmp/snmptrapd.conf*
-    rm -f /var/run/snmptrapd.pid
-fi
-
-exit 0
diff --git a/debian/tkmib.install b/debian/tkmib.install
index c3a11bb..af20861 100644
--- a/debian/tkmib.install
+++ b/debian/tkmib.install
@@ -1,2 +1,2 @@
-usr/bin/tkmib
-usr/share/man/man1/tkmib.1
+debian/tmp/usr/bin/tkmib
+debian/tmp/usr/share/man/man1/tkmib.1
diff --git a/debian/upstream/signing-key.asc b/debian/upstream/signing-key.asc
deleted file mode 100644
index 1c59f60..0000000
--- a/debian/upstream/signing-key.asc
+++ /dev/null
@@ -1,161 +0,0 @@
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.12 (GNU/Linux)
-
-mQGiBD4k5yIRBACX8CQosdGX+cl3RS8YirOFAZXXm8lBCh1hOmi05XRIOYm5Dhi2
-7K8xIJ0a3e0eCmyq8cRuF0cR4cbBY2Kjr/DliA27Z866H6TK6lX+NM3RzFtZZ24i
-55uC5YNnlAmMD3e0WZtL/38i9HZJpyG81HxzCH54ZmboFNMPEL5UMazMawCg0jc2
-iL7AW4fg5B0Du1rGw6aE3Y8D/A5XNW8f8rmLCROvcZwvJ6AL2kBPmRtYVPyX5Snp
-rQiqgV5KcRopfCMZnLjkqi8cp6fvsoCqw4BR5ZHa9XX9Y/X505gWKS0/Mg3w5/8e
-ikdZchbT8z9jH6K99lUmbBV2inK9tP5gmQCvjN3R2FpqQRHEtUueNBPlTEBSw6YQ
-bfFYA/9+HOvBTFN0mdMLXc9pVAW0EeOZfvYxvfiL6cLnwSzKl+XATdQCBCYMuLfd
-N+xZfHQKx5cRKH/z0dlXxnvfmj48STAAKLdSXeJ+bFTsYrRZ3cYPoBTGwMSC5EUT
-V3+Cjdq4XLBDKv27P99x6Hy3hiREbetg3b9yCO5+qLVDdR3OqLQ+TmV0LVNOTVAg
-QWRtaW5pc3RyYXRvcnMgPG5ldC1zbm1wLWFkbWluQGxpc3RzLnNvdXJjZWZvcmdl
-Lm5ldD6IXQQTEQIAHQUCPiTnIgUJBaOagAULBwoDBAMVAwIDFgIBAheAAAoJEKzL
-Zf14AP6scxkAmgPgpsHQqfiwHXCPHQENBcUFZthmAJ967FZv5dXDPa+PEcawHZ+p
-SM650IhGBBARAgAGBQI+JOfGAAoJENSTHGQ/pCoo2Z4Amwc4zz2wPUax4la4I0dB
-GYP48Ry8AJwMrpc3bPdIAu6kkeKDOFtRkVYGl4hMBBMRAgAMBQJDFkMPBYMAsj6T
-AAoJEP/AM+sGeoLmO0wAoL8y10Im025Fc3CuZzOFt6o7bB2MAKCRHXPJ9yyltSqN
-BJR3HXnx4YFE+4hMBBARAgAMBQJCiVDDBYMBPzDfAAoJEIvYLm8wuUtczbsAnA/E
-0Mc/N852hhHdIqUmhI4n2jf0AJ4thdFf0KlvqlzIhfbbyLGUmS/YN4hMBBIRAgAM
-BQJC3OX7BYMA65unAAoJEGuSvENlxpT3e1kAn01vdQCZv+9eeEFRaSJ7ofYk5CCq
-AKCXoto0cJ8+RghDu7bG16sHQNrpFrkBDQQ+JOckEAQAnlnV1f840l6RTQDiiIAm
-J2qbRMPFfA5VS+51dJNIZ0d0FWhlVHLqkECZMHIKzTJjbaDpugMT1G0ejlRTpQnn
-znD9/3VxgCLLIwCcu/IshXw0Oz8xAk3X69EU6e7QFkgVxE2tzozqLGdHdWkwCjdZ
-Z+IUzM2eYepqOK/6Lu2ASesAAwYD/3FXSoI41EduZEMLYVaqaHIgBGxLACLc9PGM
-5XsRCQISJiZysykxASV6sFJqPr6qYcoU4mFoMIOf6YvTad806c9C93gPoHihi1Dl
-bFnSClxtR2djNWqM2J0E8tvFQHrKsJ2ZQYk2kVP/hoXHa9e7g8eSnbWXdljFAQIS
-QDTZrKcliEwEGBECAAwFAj4k5yQFCQWjmoAACgkQrMtl/XgA/qxJDgCfcZKImfbP
-NG2myfKkqKssJYbQUzwAoKog/ILJeXUJM+VI7n0CCgf/JQRMmQGiBEPNJu8RBACS
-2dQTblehKtCgXlWKY23h7/qyJ8o+5v5NLkNJ7/aPLxc7xNrgYHMJz4c1czTima+N
-lOOuZXJDxN5eaUJTvs4UfjorJztVG/mdC2T0HpT6D+kBDTIYeTjSVC4D1zH+T9EH
-2rGPwBx1Dshe5RlGam3l8BNEdwTxG9a8SNNSivnBkwCgz2FEnLPj4P8arklyNGwx
-UCvzblED/2Ly2Uwj2FXgglfR/M4CYDlPxonDBXY/OyiQ0vjZ5p+OOsO2KRyb08SG
-jT/I8d3RnsyQ9FM4FSwsEL0jhIY4+Rs5PLNr8vuq3fqd3AA1FQPuik5q6llodCZm
-awx/WZ5KWtuiBSzFOld+XUrIELb9/C4oxpj/+AEwEQKUfBX66PwSA/wKR//A1Ygl
-9SqiuuEhVs8qjMKvvII3VMdOjjhoGN8adOfS6gKppGWN4fipYy4SPQVSAdjDuUVN
-u4NBg5WU1Sp9zTnQn54oUN3CmZdFe9De6FslYSsqzXuH3/Rvsw9AVcN70DZ/sngK
-K0cpvXwXnv0jpJP7rWvP9LbveX2ECjdK67Q+TmV0LVNOTVAgQWRtaW5pc3RyYXRv
-cnMgPG5ldC1zbm1wLWFkbWluQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD6ITAQQEQIA
-DAUCQ86AcwWDBaJA/AAKCRDv99UstjWaeC7MAKCVgGpbgbs1Go7JG+TTXdQGTa5O
-AQCeKhkqKhnGJ/e3CgzEnP40lql4iGKIZAQTEQIAJAUCQ80m7wIbAwUJBaOagAYL
-CQgHAwIDFQIDAxYCAQIeAQIXgAAKCRDUM6RB/+8J12iiAJ9kTN8pvy6VzgM6sWA3
-jxZIZl4WIQCfdY8EJQmP5nwCdtu56p3H5TyJKaGITAQTEQIADAUCQ86MhwWDBaI0
-6AAKCRD/wDPrBnqC5qUwAJ0cn1+cWbUy0zpoQUVIp7RqrXZ2PwCeOnAP0IIsw7Gs
-wfcspOrbxv9fSJ6ITAQQEQIADAUCQ80rUQWDBaOWHgAKCRDUkxxkP6QqKN9uAJ94
-3bRLVphLDcBL4HC3ML7u2PoA3QCg1+hLg6O+KyAaFnVn3DhDl7858EuIZAQTEQIA
-JAUCQ80m7wIbAwUJBaOagAYLCQgHAwIDFQIDAxYCAQIeAQIXgAAKCRDUM6RB/+8J
-12iiAJ9aAYEAPirub7GaBLuAR4ZFWZQv/wCgzo+oPs3CLTVq/Qnwxrc6HwtTkcu5
-BA0EQ80oVhAQAMuU3P6e91C605WEMa9zRuQClAnGSKa8/3GMiinuKevUc/mJ+u5S
-nEFjwF+wrMwRKnTndq1C07SPhkkhWgqBu2oWnA0z2h0Nk+5+ki7gcx9dbVzLSm7D
-c6UPaxL5t1LL3e63fwyLK+CoUkJTB9fcrEjpP9b0awx93WkwFlNPAUFXRByQ4Vim
-ubQt6su6R6ihN2R5MHPpZ2B1iylLaPwugbwj3cEj9wOHhhe7XSSZyoI8sAVQjBcE
-CNFz56k9gZXjuEa8gGqs04IUNDsjYvcB7GpwY0twILfZhLL4WOo1Juj7Y/C2B1MN
-xXplhZClugf18dJNlAI8cy64S6DwQqdi/bCPxMulmR4fU4Cb7f/c7in0NhkckCBO
-u6Y04Y8lI7oFyGwjCaC75iBMAN8hMbh/X2PnRZORUw+2ICddNkqzDu8NIKfj9hSY
-WHIFlTZS82GND+qAN3L/P5nHmqYWH86TUjsEdLnVDw3C4vxLUUQ03Q6M8vFlmZmM
-sqf/gvcZPnBQQsNEUxPhClNTw0hXp59ITC/tzEAIIuEzzNRnUzHP2qR01b2Rfer4
-cD7kmSQ+9NoRQos1xsijfuo9Ddmj3Peclf6ecVRbDjYXWcLISRilJteyZYg6ru/1
-glGk9jSeOo++ImbPDwyMhR3eL9e8S8CGKUDNeqs4ZcandhnskXm37gfXAAMFEACX
-RiqkQHyj/RllTcfIgr7yd4YobgwDJNHehYXUE6rtDPS9xMJtniHNgox37pXD6lFP
-3hP6RgNacByM8kAIHFHDRlXzLZZtYXXkxIl4AzR/3NwflfWLzeR/5Yvh/dtsUWAm
-dAwBDdkmlxAKsBIojDgrjEDZUbhv/m3uDuY0UGvl7/mZ/ewbdZYChzJKP8Hv6Gyz
-x7WvSdwoPvrWb8QwjWigcKa0RDVD+2hOwO+zijxIV7FUCZEK5KQBerVWEapW8VEf
-Jmlf+9LM17vnmFZDvYdPtQSqxAo/FskjGHqLDajXQS2xs5IuGFBGfIzDFvTtqf3h
-vEDzOOlcBu1H6+OyA4zwlo1unq/fbcSa676sPpzA/fXlzd6HJBfOPg5Z9TDNaHkX
-MA8rcBgGsZdUs+Zo19UgQm7LvjD6S+UwLKex8XifuzAfgr23DBm4KL4wG7nhI53L
-pzbYXHr7nKhhvJ5VD4wvW0BIcqH03PKh2ID2k36t710KcDqlyPIXVB0OGFzDn3CW
-fn2ZlLDNwJBniLVkQ5CAaK4XSGWRCMbf2BY7cT6o0mPDTPLcTfE2Y71q9hKyDhsQ
-I0Wwd1nVqKydKrhtkvojtFqOoN5XkTwSDTfZzDAWKLlUEryqJEn9FlwMN22G/MEk
-SfZwn2qLTgVW0MsFTJ9DX0Wa+mWBiekKpsQH4CiOg4hPBBgRAgAPBQJDzShWAhsM
-BQkFo5qAAAoJENQzpEH/7wnXfNkAn2dgl6WXyZDkfCYm9wyr667+t4g9AJ9MJ9D3
-zrv864pRkV75dSOT9xYuQJkBogRIgK8qEQQA+plb9bDKumKrWLKeP4lEVhKiLJjd
-zuFmQ6zgmRjLh6QXRtBNPR9hxSKQV7Qhse/gh066Fsc2A27Vu+QkHi4UYmyYXuyl
-EFt0dTI+O+fciPYTErLUMGRfcUiOJONIDMnA2mIEH5hpRkDiODE5SZUGTJXD1T6k
-MBuDTmZKfPRFY9cAoO00hr0aSI0XPbBvKbcrdNCI2q+BBACqmLT2al8JDJrFWvUN
-IPbMae0PuxXg19rHsJThWe6mHzZjwjhfx2EKtxZb72592/YXPhjvdcu8IYWcRCB/
-mBl2/AbOuOCg8pehkzp6sYIyPCWKbr4TptK+kmZRUXxhQX9PcstYh89XMh3SDayw
-Kzp/9MTp9Wjeq8PxW5rtodFMoQQAhZJWeQV2O84W4cJ5QnKqED+1gJ7bWYK109KD
-u2rbYpOiloRwM3vxplNdCH8pc1OUL9pebQdOEZYy7zWo2ulIKhydfl5ZXAYGGJ/s
-6GY+Uo3a2F7uxCBswjUmwnpyL2dQ8fjOs5/41r//olHUNLTyEXYwaq0krNhDXIR0
-pSTh+xm0P05ldC1TTk1QIEFkbWluaXN0cmF0b3JzIDxuZXQtc25tcC1hZG1pbnNA
-bGlzdHMuc291cmNlZm9yZ2UubmV0PohmBBMRAgAmBQJIgK8qAhsDBQkFo5qABgsJ
-CAcDAgQVAggDBBYCAwECHgECF4AACgkQlFtdujF/j2R0gACgilsLLLhKBoOXlp3y
-vcxmS7G4bnYAoJt0ZR7KMxdr3jw06Oofe7I4G2ZliEYEEBECAAYFAkvq/A8ACgkQ
-/8Az6wZ6guZxGQCfd1JzHDb2yfjxsQ3hp2/msfE3UZ0AoKjc6ExLveLnu3Q8woSw
-TNLksn2auQQNBEiAryoQEADAMzwG20Ngw1qmbK+3QbbRCxPQ6A+StCBzgYxrNca3
-Mn19IuoM4vdSzN3u/ofFcBLxj9dJL3GAjhZKg0MBkIX651EvgMbVyVRIzXIa+gT+
-3kV3l9FZYk2KnPLPR7txnM0dty9NrR9fu99VoAUxwQFPqd1Osm3lGad+FMKtMBQY
-jAqZwRHFH42E3nyPEsB+PuOWMKLjQTw9TtzQUKVTNdVQg391OnUfoy4vvGZc8I+s
-it57Mqi5jENoAOrrThabURoX7BHplicWLbmPuC3hvwfWHZnCPFHZcBzUuy8mpzxs
-arN5UiAdAMh+/oov2GQQ8DQB3r8XUjHEWAb6SKZ42v4dulENuHL20ExGLWjzJm+8
-D6/qUUQKRl7uNgOfh0ElGc6jWasd6IHbkGZ+oqgIgU8YTa+/pxA70iG4a/2Rm8er
-+jcccBXquYCDe5JxJESD7/Y2q9nZ3MI2ouUWVilZrS7Z9G/tXzxh1H71Vqq2bCWE
-DL5ciM/4zKSb2wdRGZWum0Ho72fbAZYlmUNnMoo4RO98ZTTSN1xD/8+rjWUMFUtY
-KSsPHG4ZKoCFLinuZLgFIsRrdBCQSj0ifdPYvvRFR9H8JETS3HKE/joU0dLTK2dl
-ANBZahb/ZE1QIDQ0aO+1n4fY++xO4RDzda9JyfHFFJKAkEcWVpHn46sKAqPpwhqU
-4wADBRAAuTiynhAami/JSvpSWtGuWOM4R0yYnUrW4kPQMh5Tfy1Nh+ZqcSAycdlP
-/Zpt7maIKIm+V2SJqeL2XKZdUabjtIE0/OK3bnhI6xqd39CntSD4dH4DGHn6RmXz
-FPUU6Ab4nSeVyuqcMsRTnD5i3x+ejh6+aSBwAVXmUn3YYf9sGBYVK2j/RtPRV14z
-u2Uf1nfr6fWUZ2k9IjTmaQ5MU+ytvjzEWvSgvOhEJgZl4/lopytOloJo911AiJha
-CGp7fPwTsa/rWRBfk/tzjV45fKjTMIzAWobsT341LLSHcoOvq45K17EYfxURQw4f
-mz76ePS5BQ7XH14VR+Bse1qAJmwX4kRN+AK+hRVEtFWpqhtUCvmdXgYFaVfymfO+
-oHeNuKOR+xAeSvYQ8cVjnfgimqhHr3en89WRTfEfcbIt9AJhQ6y9JDyksjtmBZx2
-zLQA+npf/ylaVImPALXEHocWGcRKKV6LJCZo4qwDCArI4CJAwMpt3GXPO9zKE3Eb
-Cbd4HF8MvShBnCogiZxvQBih8WDSyp72GqgJBR6xVL0mEJAOTd2W3I0FiwTrW0gx
-8px/9exHupUsQ9NdauLTTuRMNkOJBAXYuAPol/RcB/q75GVxMbAsyO64fdrBlgpJ
-JnMidP6sjoQCjvqr6dRHi0VPGY/vnPh3HD4ZX+yuxyKZ2uTlvvGITwQYEQIADwUC
-SICvKgIbDAUJBaOagAAKCRCUW126MX+PZP6ZAJ9PmauFo3SMZWnihaaCPODw7P4K
-WwCfY2n1avqNYSzYiS25jSRisMawfR2ZAg0ETefCbAEQAL081HBy3wM32Brx86Ph
-ZWRcK4KHSyxKcHFzGkgyu76dKTrVKEyUwRZb/XOWmluEe+MLxDPlHcKQwxvEvGMY
-JHAK0OmTVREHpkQGXw5uW3kAJV6dqH+zTDI8lJo0zAjDmB2qaf19UgLNN/qNcJtN
-1relDtWDRYJI2vKw4ussvab9onFOhPIPNwwpiJNKQVm4qT95TCJEb+p1INphSH6c
-MK/LQflGXRoBwOYbvjMhU2lL83A0K6TYPdAy2v9gOIzmMFZbgwzZAbvsRrFxzxPe
-1L2592Y+sdW+E/c0zFuNU7V25OjFubyHFRDcPMu/jvNFAPQb5lkQmQAaDCFDjmZT
-OJw5iRM0U0ANEc5D06DIRVZeDedVJuxF7JcL1z+zn5RjKZd0lR1jd9q3RTygX3gU
-O+GXwL3HtX+Toj0DP7m0gt2hZIT70B81NKRY2ToF8p/gT9CjSk4ssZuRmDDrVsgJ
-h9ap8r/2BQNTJOfUxJ2rWgAeIEMQ7cssxjls4N+zfWQliGhBuuNhfVMIOupDylsx
-6ErOumo37kvK/DewffOI1k6HnLNdJZBOTPvUxiuFfIz5EdEm8ptegAnjqlKPNODE
-zbfBPjVKV4dqKjnhyoMprMtzfDucLQJ8JTTvrkj4qjZYqC1osWAei3wPcUKKgd8u
-Qob6Abl1lY3NmAoWCZrPLtsrABEBAAG0Pk5ldC1TTk1QIEFkbWluaXN0cmF0b3Jz
-IDxuZXQtc25tcC1hZG1pbkBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+iQI+BBMBAgAo
-BQJN58JsAhsDBQkFo5qABgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRB2z0e4
-p3xTKXOpD/4wXbc0VNcI/xFwCPvLvbutBW/4RBAOWPGbU20Oc+kvTP+eruOjXtLB
-VAOo1ZWPmrA87veSrUMHzUQQ1ipX7n1i1qcDfoGNESwCwscn0bfL/eOCicVc45YG
-wJCevDpO26YFByrU+oqS+jP0t/wcAS5kY404c0uTbqWq60sbvyohw/tRpW9/YcAX
-7sHc6kaetL9/M/zHD5I8Xh6IB8bzTULsBpL+D076AQ2Hv2MZvffYmXTq1fA+K+f4
-/KPgmvt89d6Uz11WAwyAShMI6PDPazKIRFl8bGG/sePXVEye2Z7EUpMsAe7WrtMl
-GOWaeD+RdhrlpO4J6K05l0022C7o0jJk2uKqdRkrZOnaTaZT3SrCatVQjmVe6HP1
-A/wCRdJn1vJW+Ao8TZJb9SOwHwRyVPUP+C7RYYmOh/gqz61YIFedAjjJZwa/U89u
-yoxbrCt+xx5Wi5k/4JTU+/qPf1jW2h85IOEu+E3Yt0bHgKQWBiTJZ3j7njLfwuBu
-M3jVHQS7rrhQdR0sU/gAi96hlzIYqhdgcz7DZTc/bNMhGryRzAQ++iJztBNeH1Hv
-rLS1fEQxC85PS6yuHpWuQe6wb42h9bya1Ty1lqGTANHWzQmwXa/CYq5QyIXaCpBI
-sUar2sZTgYqLiDtB6GzDYKyhILThTRnFoFunuTGb+6il+RpFw9FLsIhGBBARAgAG
-BQJN58O5AAoJEJRbXboxf49k3c0AoNgEm6sGzPA1BbSZ0YVXdQEz5mwPAJ9W6Byr
-OeV/xm+yE1ULBM9LHchTk4hGBBARAgAGBQJPVMkZAAoJEP/AM+sGeoLmRmQAoLYH
-G1UsiVNoqaaoRuEeToCpFIznAJ0a183nEF3lAyXdlxHPiecarCYScLkCDQRN58Js
-ARAA6gePHzBJeJIwUmvber/7g+Pgpc7bFcRVAe4JclsNfyVb71WtfyUydeL7wm1s
-6aOKwrQuVunRjkPDeIUNJ1An3Mrk6bTmSPgh0qX8b//2poIzgyhIyD9cIL7RJLMH
-1IWWZ3721Yx8ILR4Y5BYhFqocpqyhVYXiffS6IJrP3TPSoFB9vn6O6ZOKEuYdOwJ
-F6fCHGpm3AN56IJuiDaI+4YvN05BIWkdXaT5MjMeJdJRbPyN3IfBWyKb5GIykDJU
-TZfgZVT4n0HwQ9Gr6dyzEgKV0CUjqsnyvaVpgbp/bWm62rU9ukN/a4nSC87PqWHW
-A5fK6YjDnmfsxDkI5dBUUiKGH7eitVeLHogE/YXLh7vPWDz2IcQt3wubmgZHiQFH
-e6hl9jSOfNAR0nvlpwKXMc6XPKaw7ZtOAhMvZdebTZSliwa2ZmdB+bzr/tj47UGb
-PNJRbeClw35/EDoc6Ww3ev8fCnmrFExqO3zflqYYtj1HMa2DMOFFPwD72fjruosh
-lU6Ybde0bgul9FrapTQKFwS1jjavBiCJup+0nOfLq6xTkurNFbG9LrcgWkOCgaOR
-7zgPrNks88uquQD2bbN11+MUrsxBXh5L0QcWSak95Hb3POsj+hMwJIHJHpz0p6z/
-307PxyjTeXW4R2Ch+5RV76+wLA3DGwjUvL1+1yJlL658lgUAEQEAAYkCJQQYAQIA
-DwUCTefCbAIbDAUJBaOagAAKCRB2z0e4p3xTKZ7mD/9aVuZMsfg2vuCOQAjd7wWR
-LMLDlIXo+tNGsQZQ/feeV4woO3YTMU4xR6R3r7YdHUt5XFQmJRVpQdi1G5vkOdS3
-5pyKltZ8JjtQvd8dMvqAIrHmZFKFHFxelnewKLxmZwQmaGfo5DSnWCifsOF4AMYR
-sLGLISRgEeE/OMPg0ED4ac3AqlaYNWxOMhVnpm3vdUVIXLYQiUUjGri0XmNtUeDY
-YYeoBF+I2ifL5dZwzzbKKs7UvtL0vpnZZPs3sjDTQ8i1ouOYHO1hPhDZyHUR9geO
-mHxAwcLq8CVuUAUmGvr/FDuCQV1sUa0Jre7eoDYFBBIiNynbpHpzOFiRx1uQLyw1
-xqrdbKxZmTeU7Sk+iwfB8XhEMINF6zvWWHnSzyL7QaTb4tlafENtZ98rFwGRRODq
-wQ1RK89fBxN8H5JySsKhfPLSwpeu0i0kPVFmN99pcvi3k3XCAF5gxFB3I2l52HAF
-SUaspflIv8co6hU+aGy0kMiCZOeqjZvW2XWA3K4KOWO7N6esZaXILjqt8GHeDDTN
-ITtAeKPnGMkdyt7DQzPRKjSBaDT1AAJsdiESeqpzW4RWBunVbdxFFa8l1QtthHML
-QvuS7c9PTiTiE0dghdZ++h6+njARye9aBVJjzTTtS75plrpzhXvfHI4zhxZeaYOV
-ogmrHYcUO4BeOe4bpm5NOA==
-=ZycW
------END PGP PUBLIC KEY BLOCK-----
diff --git a/dist/Makefile b/dist/Makefile
deleted file mode 100644
index 57eb2af..0000000
--- a/dist/Makefile
+++ /dev/null
@@ -1,133 +0,0 @@
-# ======================================================================
-# $Source$
-# $Revision$
-# $Date$
-# $Author$
-# $Name$
-# $State$
-# ======================================================================
-
-# Makefile for generating rpm package files (.rpm) for net-snmp.
-
-# GNU 'make'-specific features are used in this makefile.
-# Other makes may or may not work with it.
-# See http://www.gnu.org/manual/make/index.html for details.
-
-SHELL = /bin/sh
-
-# Define the RPM package name
-NAME = net-snmp
-
-# Define the default RPM release number. Set by Version-Munge.pl
-VERSION = 5.7.2.1
-
-VERSION_TAG=`echo Ext-$(VERSION) | sed 's/\./-/g;'`
-
-WITH_PERL=1
-EMBED_PERL=1
-
-# Define the RPM architecture, i.e., 'ppc', 'i386', etc.
-ARCH = `uname -i`
-
-# Directory structure expected by 'rpm' program
-RPM_BASE := $(PWD)/rpm
-
-RPM_TREE := \
-    $(RPM_BASE)/BUILD \
-    $(RPM_BASE)/RPMS \
-    $(RPM_BASE)/SOURCES \
-    $(RPM_BASE)/SPECS \
-    $(RPM_BASE)/SRPMS
-
-.PHONY:	all clean rpm_files binary_rpm source_rpm all_rpm
-
-all:	all_rpm_files
-
-# Delete all generated files.
-clean:
-	rm -rf $(RPM_BASE)
-
-# --------------------------------------------------------------------
-# Macros and rules for updating net-snmp-x.x.x.tar.gz.
-# 'rpm' expects a compressed archive (.tar.gz) of the source directory
-# to exist (in the rpm/SOURCES directory) before it is run.
-# --------------------------------------------------------------------
-CVSROOT = :pserver:anonymous at net-snmp.cvs.sourceforge.net:/cvsroot/net-snmp
-
-PKG_VER := $(NAME)-$(VERSION)
-
-GZIP_TAR := $(RPM_BASE)/SOURCES/$(PKG_VER).tar.gz
-
-gzip_tar:	$(GZIP_TAR)
-
-$(GZIP_TAR):
-	@echo "Creating a compressed archive of the package's source files..."
-	(cd $(RPM_BASE)/SOURCES; \
-	cvs -d$(CVSROOT) login; \
-	cvs -z3 -d$(CVSROOT) export -r$(VERSION_TAG) $(NAME); \
-	mv $(NAME) $(PKG_VER); \
-	tar cf $(PKG_VER).tar $(PKG_VER); \
-	gzip $(PKG_VER).tar)
-	@echo "A compressed archive of the package's source-file tree has been created."
-
-# --------------------------------------------------------------------
-# Macros and rules for updating the binary and source RPM package files.
-# --------------------------------------------------------------------
-# Redefine '%_topdir' to allow an RPM package file to be built anywhere,
-# instead of in the /usr/src/redhat directory tree.
-#
-# Don't want 'rpmbuild' to strip your executable programs?
-# Then add this line:
-#   --define='_os_install_post /usr/lib/rpm/brp-compress' \
-# to the RPM_OPTS macro definition.  This will eliminate the 
-# stripping of binaries, but still retain the compression of
-# manual pages.
-#
-ifeq ($(WITH_PERL),0)
-PERLOPTS = --without perl_modules
-endif
-ifeq ($(EMBED_PERL),0)
-PERLOPTS += --without embedded_perl
-endif
-
-RPM_OPTS := \
-    --define='_topdir $(RPM_BASE)' \
-    --define='_includedir /usr/include/net-snmp' \
-    --target $(ARCH) $(PERLOPTS)
-
-SPEC_FILE  := $(NAME).spec
-RPM_SPEC   := $(RPM_BASE)/SPECS/$(SPEC_FILE)
-
-BINARY_RPM := $(RPM_BASE)/RPMS/$(ARCH)/$(PKG_VER)-$(RELEASE).$(ARCH).rpm
-SOURCE_RPM := $(RPM_BASE)/SRPMS/$(PKG_VER)-$(RELEASE).src.rpm
-
-rpm_files:	$(GZIP_TAR) all_rpm_files
-binary_rpm:	$(BINARY_RPM)
-source_rpm:	$(SOURCE_RPM)
-rpm_tree: $(RPM_TREE)
-
-all_rpm_files:	$(RPM_TREE) $(RPM_SPEC)
-	(cd $(RPM_BASE)/SPECS; \
-	rpmbuild -ba $(RPM_OPTS) $(SPEC_FILE))
-
-$(BINARY_RPM):	$(RPM_TREE) $(RPM_SPEC)
-	(cd $(RPM_BASE)/SPECS; \
-	rpmbuild -bb $(RPM_OPTS) $(SPEC_FILE))
-
-$(SOURCE_RPM):	$(RPM_TREE) $(RPM_SPEC)
-	(cd $(RPM_BASE)/SPECS; \
-	rpmbuild -bs $(RPM_OPTS) $(SPEC_FILE))
-
-$(RPM_SPEC):	$(RPM_BASE)/SPECS $(SPEC_FILE)
-	cp $(SPEC_FILE) $@
-
-$(RPM_TREE):
-	mkdir -p $@
-
-$(SPEC_FILE):
-	@echo "ERROR: missing '$(SPEC_FILE)' in the current directory"
-	@exit 1
-
-FORCE:
-
-# === End of Makefile === #
diff --git a/dist/README.build-scripts b/dist/README.build-scripts
deleted file mode 100644
index 9e06dfb..0000000
--- a/dist/README.build-scripts
+++ /dev/null
@@ -1,108 +0,0 @@
-******************************************************************************
-*
-* README.build-scripts
-*
-* Author: Robert Story <rstory at freesnmp.com>
-*
-* $Id$
-*
-******************************************************************************
-
-
-Introduction
-============
-
-The automated build script will automatically run configure, 'make all',
-'make test' and 'make install'. Log files are kept for each step, and the
-scripts should abort when errors occur.
-
-The usage of nsb-package is:
-
- Usage: nsb-package [-c] [-d] [-p] [-s SRCD] [-b BUILDD] [-i INSTALLD] VERSION
-  
-    VERSION    : release number (eg 5.2.2)
-    -s SRCDIR  : soure directory [$HOME/src/net-snmp-VERSION]
-    -b BUILDD  : build directory [$HOME/build/]
-                 NOTE-platform will be appended to build directory
-    -i INSTALLD: install directory [$HOME/build/\$PLATFORM/usr/local]
-   
-    -c : skip configure
-    -d : dirty build (don't make distclean)
-    -m : skip 'make all'
-    -p : don't pause at prompts in between stages
-    -t : skip 'make test'
-
-
-The defaults assume you have a 'src', 'build' and 'binaries' directory in
-your home directory.
-
-
-
-Recommended Procedure
-=====================
-
-1) Log into Sourceforge Compile Farm Server
-
-2) Update source (this will likely be automated in the future)
-
-   For example, for release 5.0.3:
-
-   $ cd ~/src
-   $ CVS_RSH=ssh cvs -d $USER at cvs.net-snmp.org:/cvsroot/net-snmp \
-         -q co -r Ext-5-0-3 -d ~/src/net-snmp-Ext-5-0-3 net-snmp
-
-3) Run the package script. 
-
-   $ $HOME/src/net-snmp-cvs/dist/nsb-package -r \
-        -s $HOME/src/net-snmp-5.0.5 5.0.5
-
-4) Create tarball (assuming no errors; see next section if there are errors)
-
-   $ cd ~/build/`nsb-platform`
-   $ tar cvf net-snmp-5.0.3-`nsb-platform`.tar usr
-   $ gzip --best *.tar
-
-5) Copy tarball to Sourceforge shell sever
-
-   $ scp *.gz net-snmp.sourceforge.net:~/binaries/
-
-6) Log out of compile farm server, log into shell server
-
-7) Upload to Sourceforge
-
-   $ ftp upload.sourceforge.net
-     >bin
-     >put *.gz
-
-8) Update binaries via Sourceforge admin page
-
-
-
-Builds with errors
-==================
-
-Should you encounter a build error, you will most likely want to skip the
-'make distclean' and configure step (assuming the problem wasn't with
-configure!). To do this, specify the 'dirty' and 'skip configure' options:
-
-   $ nsb-package -p -d -c Ext-5-0-3
-
-
-Should the build succeed, but some tests fail during 'make test', you probably
-can to skip the test step to get to the install step:
-
-   $ nsb-package -p -d -c -t Ext-5-0-3
-
-
-OTHER PROBLEMS
---------------
-* "Cannot find nsb-functions"
-  
-   It's a hack, but symlink nsb-functions and nsb-package to your local
-   bin directory ($HOME/bin).  I'm trying to think of a better solution.
-
-* "gcc: snmp_version.lo: No such file or directory"
-
-   This is a good indication that you have previously build in your
-   source directory. 'make distclean' in your source directory, or
-   check out a fresh new version from CVS.
diff --git a/dist/RELEASE-INSTRUCTIONS b/dist/RELEASE-INSTRUCTIONS
deleted file mode 100644
index 56a4161..0000000
--- a/dist/RELEASE-INSTRUCTIONS
+++ /dev/null
@@ -1,1001 +0,0 @@
-This is a summary of the steps required to make a new release.  Do not
-attempt to run these manually - instead use the 'makerelease'
-application and makerelease.xml file.  Get 'makerelease' from the
-makerelease SVN repository:
-
-  svn co https://makerelease.svn.sourceforge.net/svnroot/makerelease/trunk/makerelease
-  cd makerelease
-  perl Makefile.PL
-  make
-  sudo make install
-
-Then to run it from a directory to release:
-
-  makerelease -c NETSNMPTRUNK/dist/makerelease.xml
-
-It will prompt you for all needed information and tasks to be done.
-
-IMPORTANT NOTE:
-    Don't *ever* release a second tar ball under the same name as the
-    first.  It's much much much better to release another version
-    instead, since you don't have to figure out from the bug reports
-    that a user really grabbed the first snapshot instead of the
-    second when they complain about version "XXX" not working.
-
-====== makerelease -n output showing makerelease documented steps ======
-
-STEP: 1: Setup Steps
-
-  This set of steps will do some preliminary "safety" checks to ensure the
-  local environment is ok and setup some important information.
-
-  ===== Entering Step: 1 =====
-
-STEP: 1.1: Setup Checck
-
-  This should show the last version number published in this branch by
-  looking at the time line in the README file:
-
-  Commands to execute:
-
-    head -1 README
-
-STEP: 1.2: Pick a Version Number
-
-  Please enter the version number to publish.  Net-SNMP convention dictates
-  that this be a version number like 5.4 or 5.4.1.  Pre-releases that occur
-  before a branch freezes should be appended with ".preN" like 5.4.1.pre2. 
-  Release-candidates should be labeled ".rcN" like 5.4.1.rc1.
-
-  Decide on a value for parameter 'VERSION'
-
-    parameter: VERSION
-
-    prompt:    Enter the new version number:
-
-STEP: 1.3: Defining a second internal version string
-
-  Internal perl code will be executed
-
-STEP: 1.4: Release Parameter Information
-
-  Here is the configured information we'll be using:
-
-  VERSION:		   {VERSION}
-
-  VERSION with dashes:	   {VERSIONDASHES}
-
-  Floating point VERSION:  {VERSIONFLOAT}
-
-  SVN Branch URL:	   {BRANCHPATH}
-
-STEP: 1.5: update
-
-  We need to make sure your code is up to date and matches the latest
-  sources in this branch.
-
-  Commands to execute:
-
-    svn update
-
-STEP: 1.6: Check for changes
-
-  This steps looks for outstanding files that have been modified.  There
-  should be no outstanding modifications!  If this step finds outstanding
-  modified files you need to check them in or revert them before
-  continuing!
-
-  Commands to execute:
-
-    svn -u status | egrep '^[^\?]'
-
-  (Leaving Step: 1)
-
-STEP: 2: Source Code Setup
-
-  This set of steps will modify various places within the source code tree
-  to bring it up to date with the new version number about to be published.
-
-  ===== Entering Step: 2 =====
-
-STEP: 2.1: Libtool / Library versioning setup
-
-  These steps will modify the various files in the source tree that contain
-  the version number, show you the changes that will be made and then check
-  in the resulting changes if you approve of them.
-
-  ===== Entering Step: 2.1 =====
-
-STEP: 2.1.1: version:libtoolmanualedit
-
-  You (may) need to edit Makefile.top to update the library version
-  numbering (usually just for the first pre-release of a given version). 
-  See the comments in RELEASE-INSTRUCTIONS about LIBCURRENT, LIBAGE and
-  LIBREVISION.
-
-  This script will commit the file for you after you're done.
-
-STEP: 2.1.2: version:commit
-
-  We'll now commit the Makefile.top file if you've modified it.
-
-  Commands to execute:
-
-    svn commit -m "version update" Makefile.top
-
-  (Leaving Step: 2.1)
-
-STEP: 2.2: Change The Version Number
-
-  These steps will modify the various files in the source tree that contain
-  the version number, show you the changes that will be made and then check
-  in the resulting changes if you approve of them.
-
-  ===== Entering Step: 2.2 =====
-
-STEP: 2.2.1: Modify the source files
-
-  We will now modify files through the code to replace the version number
-  with the newer one.
-
-  Modifying files:
-
-    replacing: 'VERSION = '(.*)'' with: 'VERSION = \'{VERSIONFLOAT}\''
-
-
-    files:  glob=ARRAY(0x8dc9064)
-
-      perl/SNMP/SNMP.pm
-
-      perl/agent/agent.pm
-
-      perl/agent/Support/Support.pm
-
-      perl/agent/default_store/default_store.pm
-
-      perl/default_store/default_store.pm
-
-      perl/OID/OID.pm
-
-      perl/ASN/ASN.pm
-
-      perl/AnyData_SNMP/Storage.pm
-
-      perl/AnyData_SNMP/Format.pm
-
-      perl/TrapReceiver/TrapReceiver.pm
-
-
-
-  Modifying files:
-
-    replacing: 'NetSnmpVersionInfo = "[\d\.]+"' with: 'NetSnmpVersionInfo =
-  "{VERSION}"'
-
-
-    files:  glob=ARRAY(0x8dc8fd4)
-
-      snmplib/snmp_version.c
-
-
-
-  Modifying files:
-
-    replacing: 'Version: [\.0-9a-zA-Z]+' with: 'Version: {VERSION}'
-
-
-    files:  glob=ARRAY(0x8dc8f44)
-
-      README
-
-      FAQ
-
-      dist/net-snmp.spec
-
-
-
-  Modifying files:
-
-    replacing: 'VERSION = [\.0-9a-zA-Z]+' with: 'VERSION = {VERSION}'
-
-
-    files:  glob=ARRAY(0x8dc8ed4)
-
-      dist/Makefile
-
-
-
-  Modifying files:
-
-    replacing: 'AC_INIT\(\[Net-SNMP\], \[([^\]]+)\]' with:
-  'AC_INIT([Net-SNMP], [{VERSION}]'
-
-
-    files:  glob=ARRAY(0x8dc8e64)
-
-      configure.in
-
-
-
-  Modifying files:
-
-    replacing: 'NetSnmpVersionInfo = "[^"]+"' with: 'NetSnmpVersionInfo =
-  "{VERSION}"'
-
-
-    files:  glob=ARRAY(0x8dc8df4)
-
-      snmplib/snmp_version.c
-
-
-
-STEP: 2.2.2: Running autoconf to rebuild configure
-
-  We modified configure.in, so we now need to run autoconf to rebuild
-  configure.
-
-  XXX: in the future we should verify the correct autoconf version number
-
-  Commands to execute:
-
-    autoconf
-
-STEP: 2.2.3: Running svn diff to check changes
-
-  Check the following changes for proper version number differences before
-  we commit the chances.
-
-  Commands to execute:
-
-    svn diff
-
-STEP: 2.2.4: Running svn commit to commit the changes
-
-  Check the changes in the above diff and then we'll commit the results
-  here if they look ok.
-
-  Commands to execute:
-
-    svn commit -m "Version number update"
-
-  (Leaving Step: 2.2)
-
-STEP: 2.3: docs:make
-
-  This step will create manual pages from doxygen instrumented code files.
-
-  Commands to execute:
-
-    make docs
-
-    make mancp
-
-STEP: 2.4: docs:update
-
-  This will run svn status to figure out what files have changed since the
-  previous man page generation steps were done.  After this step, we'll
-  commit all the modified files.
-
-  You may find additional files (marked with a ?) that should be added to
-  the svn repository and you'll need to do this by hand before going on to
-  the next step.
-
-  Note: based on a recent net-snmp-admin discussion, we're no longer going
-  to be adding the bazillions of man pages that doxygen generates by
-  default.  Only important ones should be added.
-
-  Commands to execute:
-
-    svn -u status man
-
-STEP: 2.5: docs:manualaddnewman
-
-  Update man/Makefile.in with details of any new man pages, and run 'svn
-  add' on them.
-
-  I'll commit these changes for you after you're done.
-
-STEP: 2.6: docs:commit
-
-  Commands to execute:
-
-    svn commit -m "documentation update" man
-
-  (Leaving Step: 2)
-
-STEP: 3: Testing Steps
-
-  These steps will help you test the source code to ensure it passes some
-  simple "it works" tests.
-
-  ===== Entering Step: 3 =====
-
-STEP: 3.1: build:distclean
-
-  First we need to clean the existing build tree and start from scratch.
-
-  Commands to execute:
-
-    make distclean
-
-STEP: 3.2: build:configure
-
-  We need to run configure to set up the build tree.
-
-  Commands to execute:
-
-    ./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
-
-STEP: 3.3: build:make
-
-  Then we need to build the code
-
-  Commands to execute:
-
-    make
-
-STEP: 3.4: build:test
-
-  Now we run "make test" which should produce a perfect set up test
-  results.  If not, this needs to be fixed or at least understood and
-  accepted as is for some other reason.
-
-  Commands to execute:
-
-    make test TESTOPTS=-n
-
-STEP: 3.5: code:checkcomments
-
-  This command looks for source code oddities and policy violations.
-
-  Commands to execute:
-
-    make checks
-
-  (Leaving Step: 3)
-
-STEP: 4: Release File Steps
-
-  Certain files in the distribution and built on a per-release basis. 
-  These steps will help set up these files.
-
-  ===== Entering Step: 4 =====
-
-STEP: 4.1: code:makedepend
-
-  This step creates Makefile dependencies using the "distdepend" rule in
-  the top level Makefile.
-
-  Commands to execute:
-
-    make distdepend
-
-STEP: 4.2: code:commitdepend
-
-  This step commits the dependency changes done in the previous step.
-
-  Commands to execute:
-
-    svn commit -m "make depend" `find . -name Makefile.depend`
-
-STEP: 4.3: changelog:svn2cl
-
-  We need to extract the portions of the change logs committed to the
-  repository.
-
-  Commands to execute:
-
-    svn2cl -f ChangeLog.add --break-before-msg --stop-on-copy
-
-    perl dist/changelogfix  < ChangeLog.add > ChangeLog.reallyadd
-
-STEP: 4.4: changelog:manualedit
-
-  You need to manually insert the *relevent* portions of
-  'ChangeLog.reallyadd' into the ChangeLog file. I'll commit these changes
-  for you after you finish cutting out the proper changes.
-
-STEP: 4.5: changelog:commit
-
-  Commands to execute:
-
-    svn commit -m "version update" ChangeLog
-
-STEP: 4.6: docs:newnews
-
-  Commands to execute:
-
-    perl dist/extractnews -s ----- -e ----- ChangeLog
-
-STEP: 4.7: docs:newnews
-
-  Commands to execute:
-
-    perl dist/extractnews -c CHANGES.new2 -n NEWS.new2 ChangeLog.reallyadd
-
-STEP: 4.8: docs:README
-
-  You need to manually insert the relevent portions of 'CHANGES.new' and
-  'NEWS.new' into the CHANGES and NEWS file. (There are alternative
-  versions in 'CHANGES.new2' and 'NEWS.new2') You may wish to update the
-  README file as well. I'll commit these changes for you afterwards
-
-STEP: 4.9: docs:commit
-
-  Commands to execute:
-
-    svn commit -m "version update" README NEWS CHANGES
-
-STEP: 4.10: release:update
-
-  One more svn update and status to make sure nothing odd exists in your
-  source tree.	Please check the results!
-
-  Commands to execute:
-
-    svn -u status
-
-  (Leaving Step: 4)
-
-STEP: 5: Make the Release
-
-  This is it!  After this point it's much harder to turn back.	If
-  everything is ok until this point and you're ready to actually stamp the
-  release in SVN and make release files, these steps will do that for you.
-
-  ===== Entering Step: 5 =====
-
-STEP: 5.1: release:tag
-
-  This will actually svn copy the current checked out branch to the new tag
-  name.  Specifically:
-
-  svn copy {BRANCHPATH} .../tags/Ext-{VERSIONDASHES}
-
-  Commands to execute:
-
-    svn copy -m "{VERSION} release" {BRANCHPATH}
-  https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/tags/Ext-{VERSIONDA
-  SHES}
-
-STEP: 5.2: release:makedist
-
-  Commands to execute:
-
-    svn export
-  https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/tags/Ext-{VERSIONDA
-  SHES}/net-snmp net-snmp-{VERSION}
-
-STEP: 5.3: release:removefiles
-
-  Commands to execute:
-
-    net-snmp-{VERSION}/remove-files net-snmp-{VERSION}
-
-STEP: 5.4: release:makedist
-
-  Commands to execute:
-
-    star artype=ustar -c -z -f net-snmp-{VERSION}.tar.gz 
-  net-snmp-{VERSION}
-
-STEP: 5.5: release:makezipclean
-
-  Commands to execute:
-
-    rm -f net-snmp-{VERSION}.zip
-
-STEP: 5.6: release:makezip
-
-  Commands to execute:
-
-    zip -r net-snmp-{VERSION}.zip  net-snmp-{VERSION}
-
-STEP: 5.7: release:searching-gpg-keys
-
-  Commands to execute:
-
-    gpg --list-secret-keys net-snmp-admin
-
-STEP: 5.8: release:gpg
-
-  Commands to execute:
-
-    gpg -u 317F8F64 -a --detach-sign net-snmp-{VERSION}.tar.gz
-
-STEP: 5.9: release:gpg
-
-  Commands to execute:
-
-    gpg -u 317F8F64 -a --detach-sign net-snmp-{VERSION}.zip
-
-STEP: 5.10: Release File Test
-
-  We'll also re-build the source and retest a few things to ensure the
-  packaged file can actually be built.
-
-  ===== Entering Step: 5.10 =====
-
-STEP: 5.10.1: posttest:untar
-
-  Commands to execute:
-
-    rm -rf net-snmp-{VERSION}
-
-STEP: 5.10.2: posttest:untar
-
-  Commands to execute:
-
-    tar xzf net-snmp-{VERSION}.tar.gz
-
-STEP: 5.10.3: posttest:configure
-
-  Commands to execute:
-
-    cd net-snmp-{VERSION} && ./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
-
-STEP: 5.10.4: posttest:make
-
-  Commands to execute:
-
-    cd net-snmp-{VERSION} && make
-
-STEP: 5.10.5: posttest:test
-
-  Commands to execute:
-
-    cd net-snmp-{VERSION} && make test
-
-  (Leaving Step: 5.10)
-
-  (Leaving Step: 5)
-
-STEP: 6: Release the results
-
-  Now we'll publish the results to the SF server
-
-  ===== Entering Step: 6 =====
-
-STEP: 6.1: rsync the new files
-
-  This will copy the results to the SF uploads directory in your account on
-  frs.sourceforge.net
-
-  Commands to execute:
-
-    rsync -v net-snmp-{VERSION}.tar.gz net-snmp-{VERSION}.tar.gz.asc
-  net-snmp-{VERSION}.zip net-snmp-{VERSION}.zip.asc
-  frs.sourceforge.net:uploads/
-
-STEP: 6.2: Update the SF release web page
-
-  Commands to execute:
-
-    firefox
-  'http://sourceforge.net/project/admin/editpackages.php?group_id=12694'
-
-  (Leaving Step: 6)
-
-STEP: 7: 
-
-  Binaries: build rpms, .tar.gzs, etc.
-
-STEP: 8: Advertise it!
-
-  ===== Entering Step: 8 =====
-
-STEP: 8.1: 
-
-  Add a note to the source forge news system:
-
-  http://sourceforge.net/news/submit.php?group_id=12694
-
-  Commands to execute:
-
-    firefox 'http://sourceforge.net/news/submit.php?group_id=12694'
-
-STEP: 8.2: 
-
-  Send an announcement message to one of the following mailing lists based
-  on it's type:
-
-  pre:	  net-snmp-coders at lists.sourceforge.net
-
-  rc:	  net-snmp-users at lists.sourceforge.net
-
-  final:  net-snmp-announce at lists.sourceforge.net
-
-STEP: 8.3: 
-
-  Update the topic on the #Net-SNMP channel if this is a trunk based
-  release.
-
-STEP: 8.4: 
-
-  Update the freshmeat listing (Wes needs to do this):
-
-  http://freshmeat.net/projects/net-snmp/
-
-  Commands to execute:
-
-    firefox http://freshmeat.net/projects/net-snmp/
-
-  (Leaving Step: 8)
-
-STEP: 9: 
-
-  Advertise: NEWS upload to sf, publish on -announce, freshmeat, and the
-  GNU FSF directory (http://directory.fsf.org/project/net-snmp/)... (send
-  mail to bug-directory at gnu.org)
-
-
-
-
-
-====== BEGIN OBSOLETE (pre-makerelease) DOCUMENTATION ======
-
-***************************************************************************
-TESTING:
-
-  1) Update the source tree to catch all recent commits,
-     and check that all local changes have been committed.
-
-     $ svn -u status
-     $ svn    update
-
-  2) Change the libtool version information in Makefile.top.
-     See MANUAL - STEP 1 later in these instructions.
-     'makerelease' will commit this file automatically.
-
-  3) Configure the suite with as many modules as possible,
-     build and test it.  The makerelease script will use
-     the options:
-
-      $ ./configure  '--with-mib-modules=host examples examples/example  \
-                              testhandler smux Rmon disman/event-mib'    \
-                      --with-transports=IPX  --enable-ipv6               \
-                      --enable-embedded-perl --enable-shared
-
-     Ideally this should be repeated on as many systems as possible
-     (including running "make install").  However the makerelease
-     script will only test things on the current box, and will not
-     try to install the software.
-
-
-***************************************************************************
-DOCUMENTATION:
-
-  4)  Update the version number in the doxygen.conf file
-      (handled automatically by 'makerelease') and generate
-      the doxygen extracted manual pages.
-
-        $ make docs
-        $ make mancp
-
-     'makerelease' will commit this file automatically.
-     Note that any new man pages should be added to Makefile.in.
-     This is *NOT* currently handled by the makerelease script.
-
-  5) Check the code for illegal constructs (e.g. C++ style comments
-     or GNU make specific constructs in Makefiles):
-
-        $ make checks
-
-  6) Update Makefile dependencies:
-
-        $ make distdepend
-
-     'makerelease' will commit these dependencies automatically.
-
-  7) Update the ChangeLog file with details of all (recent) changes
-     to the suite.  See MANUAL - STEP 2 later in these instructions.
-     'makerelease' will commit this file automatically.
-
-  8) Update the README, NEWS, and CHANGES files with details of
-     significant changes to the suite.  See MANUAL - STEP 3 later
-     in these instructions.
-     'makerelease' will commit these files automatically.
-
-
-***************************************************************************
-RELEASE:
-
-  9) Make sure all changes are checked in:
-
-       $ svn -u status
-       $ svn    update
-
-     [Note that this step is omitted when running "makerelease"]
-
- 10) Change the version number in various files
-       (README, FAQ, configure.in, net-snmp.spec and assorted Perl modules).
-     'makerelease' will update and commit these files automatically.
-
- 11) Create a tag checkpoint for this release:
-
-       $ svn copy  /trunk                 /tags/Ext-5-x
-     or
-       $ svn copy  /branches/V5-x-patches /tags/Ext-5-x-y
-
- 12) Construct the source packages:
-
-        $ svn export /tags/Ext-5-x-y/net-snmp net-snmp-5.x.y
-        $ net-snmp-5.x.y/remove-files         net-snmp-5.x.y
-        $ star artype=ustar -c -z -f net-snmp-5.x.y.tar.gz    net-snmp-5.x.y
-        $ rm -f net-snmp-5.x.y.zip"
-        $ zip -r net-snmp-5.x.y.zip net-snmp-5.x.y"
-
-
- 13) Sign (or checksum) the packages:
-
-     Wes/Robert:
-        $ gpg -u net-snmp-admin -a --detach-sign net-snmp-5.x.y.tar.gz
-        $ gpg -u net-snmp-admin -a --detach-sign net-snmp-5.x.y.zip
-     Others:
-        $ md5sum net-snmp-5.x.y.tar.gz > net-snmp-5.x.y.tar.gz.md5
-        $ md5sum net-snmp-5.x.y.zip    > net-snmp-5.x.y.zip.md5
-
-
-***************************************************************************
-RELEASE TESTING:
-
- 14) Unpack a clean copy of the tarball, configure, build and
-     test the release tarball.
-
- 15) Double-check that there are no outstanding changes that have
-     been missed from the CVS checkin:
-
-        $ svn status
-
-Note:  This is the last stage that is handled by the "makerelease" script
-       Everything following will need to be done manually.
-
- 15) Upload the packages (and signature files) to the SourceForge server:
- 
-        $ ncftpput upload.sf.net incoming net-snmp-5.x.y.tar.gz
-        $ ncftpput upload.sf.net incoming net-snmp-5.x.y.zip
-        * SF pages:  "Admin" -> "File Releases"
-        * net-snmp:  "Add Release" (or "Edit Release")
-        * Create (or choose) an appropriate release name
-             e.g.  "5.x.y source code"  (or "5.x.y pre-releases")
-        * "Edit This Release"
-        * Select the tarball and/or other relevant files
-
- 16) Announce the release on the appropriate list.
-     Pre-release announcements (and a call for testing) should be
-     sent to net-snmp-coders, release-candidates to net-snmp-users.
-
-     Full releases should be announced on net-snmp-users, and as a
-     news item on the project home page - including the NEWS snippet
-     of significant changes since the last release.
-
- 17) Update the following htdocs files (in the main SVN trunk):
-         htdocs/download.html
-         htdocs/dev/schedule.html
-
-     [Make sure you have permissions set up properly on the web
-      server so that files created become group-writable!!!]
-
-     That concludes the process for pre-releases and release-candidates.
-     For full releases, wait a week to ensure that there are no major
-     problems, before continuing with the remaining steps.
-
-        If there are known problems and another release is planned to
-     fix them, don't announce the broken version - wait for the updated
-     one instead.
-
- 18) Once this week has elapsed, submit an announement of the new
-     release to net-snmp-announce.  This message will need to be
-     explicitly authorized via MailMan.
-
-     Also update the IRC topic to include mention of this release.
-
- 19) For a release on the most recent development line, start bugging
-     Wes to update the freshmeat, Free Software Directory and
-     Wikipedia entries.
-
- 20) For a release on the most recent development line, update the
-     'htdocs/page-top.html' file (in the main SVN trunk) to reference
-     the latest version.
-
-     Update the following files with any changes:
-
-         htdocs/docs/readmefiles/NEWS
-         htdocs/docs/readmefiles/CHANGES
-         htdocs/docs/readmefiles/README*
-         htdocs/COPYING
-
-     [Make sure you have permissions set up properly on the web
-      server so that files created become group-writable!!!]
-         
-
- 21) For a major new-feature release (i.e. 5.x), create the patches
-     branch:
-
-        $ svn copy  /tags/Ext-5-x   /branches/V5-x-patches
-
-     and update the SVN main trunk with a new version number:
-
-        $ local/Version-Munge.pl -v 5.(x+1).dev -M -P -C
-
-     The 1 week delay (and continued code freeze) is to to ensure that
-     developer effort is concentrated on immediate problems following
-     the release.  Any major problems should hopefully come to light
-     during this period, so after a week it should be safe to create
-     the patches branch and officially end the code freeze on MAIN.
-
- 22) Update the official patches tracker set:
-
-     - any patches for this new release tarball should be given
-       priority 9
-     - all patches for the previous release on this line should
-       be marked at priority 5
-     - all patches for earlier releases on this line should
-       be marked at priority 1, and closed
-
-     If a line has been designated closed, then all official
-     patches for that line should be marked as closed as well.
-
- 23) Hide the pre-release repository from the File Releases
-     admin pages.
-
- 24) Clean up the 'dist' dir of the relevant V5-x-patches branch.
-     Only leave the following files:
-
-     changelogfix  cvsshow  cvsup  extractnews  makerelease
-     net-snmp.spec  snmpd-init.d  snmptrapd-init.d
-
-     Note that any files removed should also be deleted from
-     SVN repository.
-
-
-***************************************************************************
-CREATING BINARY DISTRIBUTIONS
-
-  0) Always REMOVE ALL PREVIOUS INSTALLS FIRST, then do a make install
-     from the tar-ball extracted sources and *THEN* rebuild all
-     binaries again.  This ensures that everything (especially perl
-     modules) are properly linked against the right libraries.
-
-  1) always build releases from a tarball, not from SVN.
-
-  2) Add mib modules that are common.  Basically, add:
-
-       host                      -- where supported.
-       disman/event-mib
-       smux
-
-  3) use --with-defaults --with-syscontact="Unknown" 
-                         --with-syslocation="Unknown"
-
-  4) when running make install, do it like:
-
-     $ make install prefix=/some/path/to/home/ARCH/usr/local \
-            exec_prefix=/some/path/to/home/ARCH/usr/local
-    
-  5) Tar it up:
-
-     $ cd /some/path/to/home/ARCH
-     $ tar czf net-snmp-5.0.3-ARCH.tar.gz usr/local
-
-  6) upload and release, like you did for the source code but with a
-     different package name for binaries (5.0.3 binaries).
-
-  7) RPMs [do this in main line even if its for a patch branch]:
-     $ cd dist
-     $ cp ../net-snmp-5.0.8.tar.gz rpm/SOURCES
-     $ make RELEASE=1
-     
-     This should put multiple binary rpm files in:
-       dist/rpm/RPMS/i386/
-     And one source RPM in:
-       dist/rpm/SRPMS/
-
-     *** These files need to be renamed to include the OS version.
-
-         EG: ...i386.rpm needs to become ...fc5.i386.rpm
-
-  8) Remove (or hide) binaries from older releases of the same line,
-     where you have submitted a newer binary for the same architecture.
-     Once the last binary for a particular release version has been
-     removed, hide that repository.
-     
-
-***************************************************************************
-***************************************************************************
-MANUAL - STEP 1
-
-  Changing the libtool version information in Makefile.top.
-
-      - If any interfaces/structures have been removed or changed since the
-        last update, increment current (+5), and set age and revision to 0.
-        Stop!
-
-      - If any interfaces have been added since the last public release,
-        then increment current and age, and set revision to 0.
-        Stop!
-
-      - If the source code has changed at all since the last update,
-        then increment revision (c:r:a becomes c:r+1:a).
-
-      Note: maintenance releases (eg 5.2.x) should never have changes
-            that would require current to be incremented.
-
-  The check-api-changes script in the dist directory will construct a
-  diff of all headers, which can be useful for determining if anything
-  needs bumping.
-
-     Update these variables now, so that when you run
-     make in a second to test things you can spot libtool yelling
-     about improper numbering before you make the release and not
-     after you've uploaded the tar ball :-/
-
-
-***************************************************************************
-MANUAL - STEP 2
-
-  Changing the libtool version information in Makefile.top.
-  Updating the ChangeLog file
-
-      - The ChangeLog entries are extracted (normally automatically)
-        using the command:
-
-          $ svn2cl -f ChangeLog.add --break-before-msg --stop-on-copy
-
-        If you don't have svn2cl installed, you can try and find a
-        suitable binary package for your architecture, or you can
-        get it directly from
-              http://ch.tudelft.nl/~arthur/svn2cl
-        You may need to rename the script from 'svn2cl.sh' to 'svn2cl'
-
-      - In either case, they are fixed up (automatically) using:
-
-          $ perl dist/changelogfix < ChangeLog.add > ChangeLog.reallyadd
-        or
-          $ perl dist/changelogfix V5-{N}-patches < ChangeLog.add > ChangeLog.reallyadd
-
-      - The manual processing step is to insert the appropriate portion
-        of the file 'ChangeLog.reallyadd' into 'ChangeLog'.  You can
-        usually find the point where the previous release started in
-        the file by searching for "version tag".
-
-      - Please keep the line of dashes at the top of the file, as this
-        makes it easier to copy during the next release.
-
-      - If using emacs, switch from changelog-mode to text-mode.
-
-      - Check in the new ChangeLog:
-
-          $ svn commit -m "update for release X" ChangeLog
-
-        This is done automatically by "makerelease"
-
-
-***************************************************************************
-MANUAL - STEP 3
-
-Updating README, NEWS, and CHANGES files
-
-  [ This information has been moved to:
-
-  http://www.net-snmp.org/wiki/index.php/Commit_message_auto-extraction_formats
-
-  ]
-
-However, leaving some examples here for quick referral:
-
-  SVN commit messages that generate auto-NEWS and auto-CHANGES
-  extractions should be formatted like the following examples:
-
-    NEWS: snmpd: I did something really cool to the agent
-    CHANGES: snmptrapd: fixed something minor in snmptrapd
-    NEWS: perl: PATCH: 123,456: Applied patches 123 and 456 to support perl6
-    CHANGES: BUG: 13: Fixed bug 13 & secured the world at large against hackers
-    NEWS: perl: PATCH: 123: from Robert: did something
-    NEWS: perl: PATCH: 123: from "Robert Story": did something else
diff --git a/dist/autoconf-version b/dist/autoconf-version
deleted file mode 100644
index 264f2ce..0000000
--- a/dist/autoconf-version
+++ /dev/null
@@ -1 +0,0 @@
-2.68
diff --git a/dist/check-api-change b/dist/check-api-change
deleted file mode 100755
index 1f61e42..0000000
--- a/dist/check-api-change
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/sh
-#
-# simplistic script to check all header files for
-# differences. Intended to help detect api changes
-# between releases.
-#
-# it's not pretty or efficient, and inspection of
-# the results must be done manually.
-#
-# it's also not secure (don't run as root)
-# or portable. Tested on Linux.
-#
-
-if [ "x$1" = "x" -o "x$2" = "x" ]; then
-   echo "Usage: $0 <old-dir> <new-dir>"
-   exit 1
-fi
-
-od=$1
-nd=$2
-DIR=/tmp
-OUTPUT=$DIR/api-diff.pat
-ODT=$DIR/api-od
-
-if [ ! -d $od ]; then
-   echo "old dir $od doesn't exist"
-   exit 1
-fi
-
-if [ ! -d $nd ]; then
-   echo "old dir $nd doesn't exist"
-   exit 1
-fi
-
-# find header in nd
-rm -f $OUTPUT $ODT 2>/dev/null
-(cd $od && find . -type f -name "*.h"|sort > $ODT)
-
-OH=`cat $ODT`
-for h in $OH
-do
-   nh=$nd/$h
-   oh=$od/$h
-   echo "* $nh"
-   if [ -f "$nh" ]; then
-      echo "* diff: $h vs $nh" >> $OUTPUT
-      diff -u $oh $nh >> $OUTPUT 2>&1
-   else
-      echo "* Old header $h not found in new headers" >> $OUTPUT
-   fi
-done
-
-echo "Inspect output in $OUTPUT"
-echo "See Makefile.top for libtool version bumping rules."
diff --git a/dist/cvsshow b/dist/cvsshow
index 7539595..6899dbc 100755
--- a/dist/cvsshow
+++ b/dist/cvsshow
@@ -1,69 +1,46 @@
-#!/bin/sh
+#!/bin/bash
+#
+# $Id: cvsshow 7385 2002-08-01 18:51:44Z rstory $
 #
 export CVS_RSH=ssh
 TAG=
 
-do_cvs()
-{
-   DIR=$1
-   if [ ! -f $DIR/CVS/Repository ]; then
-	echo "'$DIR' has no CVS/Repository!"
-	exit
-   fi
+if [ $# -eq 0 ]; then
+	DIR=.
+else
+	if [ $# -ne 1 ]; then
+		echo "usage: $0 <working directory>"
+		exit
+	fi
+	DIR=$1
+fi
 
-   if [ ! -f $DIR/CVS/Root ]; then
-	echo "'$DIR' has no CVS/Root!"
+if [ ! -d $DIR ]; then
+	echo "no such directory '$DIR'"
 	exit
-   fi
-
-   if [ -f $DIR/CVS/Tag ]; then
-	TAG="-r `cat $DIR/CVS/Tag | cut -c 2-`"
-   fi
-
-   REP="`cat $DIR/CVS/Repository`"
-   ROOT="`cat $DIR/CVS/Root`"
-
-   echo "Directory $DIR is rooted at $ROOT, $TAG $REP..."
-   echo "   update with cvs -z3 -d $ROOT -q co $TAG -d $DIR $REP"
-}
+fi
 
-do_svn()
-{
-   DIR=$1
-   if [ ! -d $DIR/.svn ]; then
-	echo "'$DIR' has no .svn/ subdir!"
+if [ ! -d $DIR/CVS ]; then
+	echo "'$DIR' has no CVS directory!"
 	exit
-   fi
-
-   ROOT=`svn info | grep URL|cut -f2 -d " "`
-   if [ -z "$ROOT" ]; then
-      echo "Couldn't find root from $DIR/.svn/entries"
-      exit 1
-   fi
-
-   echo "Directory $DIR is rooted at $ROOT..."
-   echo "   update with svn co $ROOT $DIR"
-}
+fi
 
-if [ $# -eq 0 ]; then
-	DIRS=.
-else
-	DIRS=$@
+if [ ! -f $DIR/CVS/Repository ]; then
+	echo "'$DIR' has no CVS/Repository!"
+	exit
 fi
 
-for d in $DIRS
-do
-   if [ ! -d $d ]; then
-	echo "no such directory '$d'"
+if [ ! -f $DIR/CVS/Root ]; then
+	echo "'$DIR' has no CVS/Root!"
 	exit
-   fi
+fi
+
+if [ -f $DIR/CVS/Tag ]; then
+	TAG="-r `cat $DIR/CVS/Tag | cut -c 2-`"
+fi
 
-   if [ -d $d/CVS ]; then
-	do_cvs $d
-   elif [ -d $d/.svn ]; then
-	do_svn $d
-   else
-	echo "'$d' has neither CVS nor SVN information!"
-   fi
-done
+REP="`cat $DIR/CVS/Repository`"
+ROOT="`cat $DIR/CVS/Root`"
 
+echo "Directory $DIR is rooted at $ROOT, $TAG $REP..."
+echo "update with cvs -z3 -d $ROOT -q co $TAG -d $DIR $REP"
diff --git a/dist/cvsup b/dist/cvsup
index ca07b0f..2ce2ff0 100755
--- a/dist/cvsup
+++ b/dist/cvsup
@@ -1,8 +1,8 @@
-#!/bin/sh
+#!/usr/bin/env bash
 #
-# $Id$
+# $Id: cvsup 15452 2006-10-18 14:45:18Z rstory $
 #
-CVS_RSH=ssh; export CVS_RSH
+export CVS_RSH=ssh
 TAG=
 WO=0
 DEST=
@@ -18,7 +18,6 @@ if [ "x$1" = "x-u" ]; then
         TAR='/usr/bin/star -Hustar -not -pat="*/CVS/*" -c -f'
     elif [ -x /bin/tar ]; then
         TAR="/bin/tar --exclude=CVS -c -f"
-        echo "warning: star not available, using (less portable) tar..."
     else
         echo "neither /usr/bin/star nor /bin/tar found."
         exit
diff --git a/dist/extractnews b/dist/extractnews
index bce94c9..69e1f5b 100755
--- a/dist/extractnews
+++ b/dist/extractnews
@@ -19,16 +19,10 @@ LocalGetOptions(\%opts,
 		"",
 		['c|changes-file=s','A file to save CHANGES entries to'],
 		['n|news-file=s','A file to save NEWS entries to'],
-		['d|debug-line=s', 'Debugging output for lines matching STRING'],
 		"",
 		['GUI:otherargs_text','Input files to parse'],
 	       );
 
-my $maybecontinue = 0;
-my $lasttext = "";
-my $lastfile;
-my $lastcomponent;
-
 foreach my $argv (@ARGV) {
     open(I, $argv);
     if ($opts{'s'}) {
@@ -42,81 +36,43 @@ foreach my $argv (@ARGV) {
 
 	last if ($opts{'e'} && /$opts{e}/o);
 
-	print STDERR "here: $_" if ($opts{'d'} && /$opts{'d'}/o);
-
 	# don't use this:
 	#   FILE: BUGS: 123,456: text
 	($file, $patbug, $nums, $text) = 
 	  /(NEWS|CHANGES):\s*-*\s*\[*(BUG|PATCH)(?:ES|S|):*\s*([\d,\s*]*)\]*:*\s*-*\s*(.*)/;
 
-	print STDERR "  1:$file, $component, $patbug, $nums, $text\n" if ($opts{'d'} && /$opts{'d'}/o);
-
 	# or this:
 	#   FILE: component - text
 	($file, $component, $text) = 
 	  /(NEWS|CHANGES):\s*(\w+)\s*-+\s*(.*)/ if (!$file);
 
-	print STDERR "  2:$file, $component, $patbug, $nums, $text\n" if ($opts{'d'} && /$opts{'d'}/o);
-
 	# what you should use:
+	#   FILE: component: text
+	#      or
 	#   FILE: component: BUGS: 123,456: text
 	#
 	#      or
 	#   FILE: component: PATCH: 123,456: from someone text
 	#   FILE: component: PATCH: 123,456: from "someone long" text
 	($file, $component, $patbug, $nums, $text) = 
-	  /(NEWS|CHANGES):\s*([^:]+):\s*-*\s*\[*(BUG|PATCH)(?:ES|S):*\s*([\d,\s*]*)\]*:*\s*-*\s*(?:from ["'][^"]+["']|from \w+|):*\s*(.*)/ if (!$file);
-
-	print STDERR "  3:$file, $component, $patbug, $nums, $text\n" if ($opts{'d'} && /$opts{'d'}/o);
-
-	#      or at least:
-	#   FILE: component: text
-	($file, $component, $text) = 
-	  /(NEWS|CHANGES):\s*([^:]+):\s*-*\s*(.*)/ if (!$file);
-
-	print STDERR "  4:$file, $component, $patbug, $nums, $text\n" if ($opts{'d'} && /$opts{'d'}/o);
+	  /(NEWS|CHANGES):\s*([^:]+):\s*-*\s*\[*(BUG|PATCH)*(?:ES|S|):*\s*([\d,\s*]*)\]*:*\s*-*\s*(?:from ["'][^"]+["']|from \w+|):*\s*(.*)/ if (!$file);
 
 	# component left out
 	# FILE: [BUGS: 123,456]: text
 	($file, $patbug, $nums, $text) = 
 	  /(NEWS|CHANGES):\s*\[*(BUG|PATCH)*(?:ES|S|):*\s*([\d,\s*]*)\]*:*\s*-*\s*(.*)/ if (!$file);
 	
-	print STDERR "  5:$file, $component, $patbug, $nums, $text\n" if ($opts{'d'} && /$opts{'d'}/o);
-
-	if ($opts{'d'} && /$opts{'d'}/o) {
-	    my $bogus = 1; # breakable point
-	}
-
-	if (!$file && $maybecontinue) {
-	    if (/^\s*(.+)$/) {
-		$text = $1;
-		$file = $lastfile;
-		$component = $lastcomponent;
-
-		# we're going to re-add these
-		pop @{$output{$opts{'c'}}{$component}};
-		pop @{$output{$opts{'n'}}{$component}} if ($file eq 'NEWS');
-	    } else {
-		$maybecontinue = 0;
-		$lasttext = "";
-		next;
-	    }
-	} elsif (!$file) {
-	    next;
-	}
-		
+	next if (!$file);
+	
 	next if (exists($stash{$text}));
 	$stash{$text} = 1;
 	
 	$component = "unspecified" if (!$component);
 	if ($patbug) {
-	    $lasttext .= " [$patbug $nums]: $text";
+	    $text = wrap("      - ","        ","[$patbug $nums]: $text") . "\n";
 	} else {
-	    $lasttext .= " $text";
+	    $text = wrap("      - ","        ","$text") . "\n";
 	}
-	$lasttext =~ s/^ //;                   # get rid of leading spaces
-	$lasttext =~ s/^([a-z])/uc($1)/e;      # capitalize the first letter 
-	$text = wrap("      - ","        ","$lasttext") . "\n";
 	
 	#
 	#  Assist with displaying categories in a sensible order
@@ -129,12 +85,8 @@ foreach my $argv (@ARGV) {
 	$component =~ s/^snmp/0snmp/;
 	$component =~ s/^agent/0snmpd/;		# Merge "agent" into "snmpd"
 	$component =~ s/^([A-Z])/zz\1/;
-	print STDERR "  t:$file, $component, $patbug, $nums, $text\n" if ($opts{'d'} && /$opts{'d'}/o);
 	push @{$output{$opts{'c'}}{$component}}, $text;
 	push @{$output{$opts{'n'}}{$component}}, $text if ($file eq 'NEWS');
-	$lastfile = $file;
-	$lastcomponent = $component;
-	$maybecontinue = 1;
     }
 }
 
diff --git a/dist/generation-scripts/gen-security-headers.in b/dist/generation-scripts/gen-security-headers.in
deleted file mode 100644
index 4e5881a..0000000
--- a/dist/generation-scripts/gen-security-headers.in
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/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 at 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
deleted file mode 100644
index 71a7bd9..0000000
--- a/dist/generation-scripts/gen-transport-headers.in
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/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 at 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 b/dist/generation-scripts/gen-variables
deleted file mode 100644
index d2e8677..0000000
--- a/dist/generation-scripts/gen-variables
+++ /dev/null
@@ -1,10 +0,0 @@
-#
-# common variables used by configure scripts
-#
-SED="/usr/bin/sed"
-CPP="gcc -E"
-GREP="/usr/bin/grep"
-PARTIALTARGETFLAGS="-Ulinux -Dlinux=linux"
-NETSNMP_SYSTEM_INCLUDE_FILE="net-snmp/system/linux.h"
-
-srcdir=.
diff --git a/dist/generation-scripts/gen-variables.in b/dist/generation-scripts/gen-variables.in
deleted file mode 100644
index 4329206..0000000
--- a/dist/generation-scripts/gen-variables.in
+++ /dev/null
@@ -1,10 +0,0 @@
-#
-# 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 b/dist/makerelease
new file mode 100755
index 0000000..b46b9f9
--- /dev/null
+++ b/dist/makerelease
@@ -0,0 +1,355 @@
+#!/usr/bin/perl
+
+use strict;
+use Pod::Usage;
+
+
+my %opts;
+my $descr;
+
+LocalGetOptions(\%opts,
+	   ['r|regexp-ignore-steps=s','Ignore these REGEXP steps'],
+	   ['s|start-at=s',           'Skip all steps until ARG'],
+	   ['i|interactive',          'Prompt whether to do each step'],
+	   ['n|dry-run',     'Dry run only.  Don\'t actually do anything.'],
+	   ['h|help', 'Help']);
+
+pod2usage(1) if ($opts{'h'});
+my $version = shift;
+pod2usage( "No version supplied" ) if (!$version);
+my $extrajunk = shift;
+pod2usage( "Unexpected argument ($extrajunk)" ) if ($extrajunk);
+my $vtag   = $version;
+my $branch = "";
+# Ensure we have both numeric and tag-style version labels
+# plus the branch that we're working from (if relevant)
+if ( $version =~ /^Ext/) {
+    $version =~ s/^Ext-//g;
+    $version =~ s/-/./g;
+} else {
+    $vtag =~ s/\./-/g;
+    $vtag = "Ext-" . $vtag;
+}
+if ( $version =~ /^([0-9]\.[0-9])\.[0-9]/) {
+    ($branch = $version) =~ s/([0-9]\.[0-9])\.[0-9].*/\1/;
+    $branch =~ s/\./-/;
+    $branch = "V${branch}-patches";
+}
+
+# Make sure we're at the root of the build tree
+#  (if we're in the dist directory, then cd ..)
+chdir("..") if (-f 'makerelease');
+die "Not at root of build tree" if (! -f 'configure.in');
+
+#
+#  TESTING:
+#
+# Step 1) Ensure the build tree is up to date
+System("update","svn -u status");
+System("update","svn -q update");
+
+# Step 2) Change the libtool version information in Makefile.top
+manualstep('version:manualedit',
+	   "You (may) need to edit Makefile.top to update the library version numbering
+     (usually just for the first pre-release of a given version).
+        See the comments in RELEASE-INSTRUCTIONS
+        about LIBCURRENT, LIBAGE and LIBREVISION.
+
+  I'll commit the file for you after you're done
+");
+System("version:commit",
+       "svn commit -m \"version update\" Makefile.top");
+
+# Step 3) configure and build and test it
+my $transportargs = "";
+if ( $^O eq "linux" ) {
+    $transportargs = "--with-transports=IPX";
+}
+my $configureargs = "--cache=config.cache --with-defaults ".
+    "--with-mib-modules='     examples examples/example   ".
+    "  testhandler smux Rmon'                             ".
+    " $transportargs        --enable-ipv6                 ".
+    "--enable-embedded-perl --enable-shared";
+System("build:distclean","make distclean") if (-f 'Makefile');
+System("build:configure","./configure $configureargs");
+System("build:make","make");
+System("build:test","make test TESTOPTS=-n");
+
+#
+# DOCUMENTATION
+#
+# Step 4) Update doxygen version number, and generate man pages
+System("docs:doxygenconf",
+       "perl local/Version-Munge.pl -v $version -M -P -C -t doxygen");
+System("docs:make","make docs");
+System("docs:mancp","make mancp");
+System("docs:update","svn -u status man");
+manualstep('docs:manualaddnewman',
+  "Update man/Makefile.in with details of any new man pages,
+  and run 'svn add' on them.
+  I'll commit these changes for you after you're done
+");
+System("docs:commit","svn commit -m \"documentation update\" man");
+
+# Step 5) Check code for illegal constructs
+System("code:checkcomments","make checks");
+
+# Step 6) Update Makefile dependencies
+System("code:makedepend","make distdepend");
+System("code:commitdepend","svn commit -m \"make depend\" `find . -name Makefile.depend`");
+
+# Step 7) Update ChangeLog
+#   XXX: May need to extend the folding line-length,
+#        to avoid svn2cl mangling CHANGES/NEWS entries
+System("changelog:svn2cl",
+       "svn2cl -f ChangeLog.add --break-before-msg --stop-on-copy");
+System("changelog:changelogfix",
+       "perl dist/changelogfix $branch < ChangeLog.add > ChangeLog.reallyadd");
+manualstep("changelog:manualedit",
+           "You need to manually insert the *relevent* portions of
+  'ChangeLog.reallyadd' into the ChangeLog file.
+  I'll commit these changes for you afterwards");
+System("changelog:commit","svn commit -m \"version update\" ChangeLog");
+
+# Step 8) Update README/NEWS/CHANGES
+System("docs:newnews",
+       "perl dist/extractnews -s ----- -e ----- ChangeLog");
+System("docs:newnews",
+       "perl dist/extractnews -c CHANGES.new2 -n NEWS.new2 ChangeLog.reallyadd");
+manualstep("docs:README",
+           "You need to manually insert the relevent portions of
+  'CHANGES.new' and 'NEWS.new' into the CHANGES and NEWS file.
+  (There are alternative versions in 'CHANGES.new2' and 'NEWS.new2')
+  You may wish to update the README file as well.
+  I'll commit these changes for you afterwards");
+System("docs:commit",
+       "svn commit -m \"version update\" README NEWS CHANGES");
+
+#
+# RELEASE
+#
+# Step  9)  Resync code (omitted)
+# Step 10)  Update version
+System("release:versionstamp",
+       "perl local/Version-Munge.pl -v $version -M -P -C");
+
+# Step 11)  Create the release tag checkpoint
+my $root="https://net-snmp.svn.sourceforge.net/svnroot/net-snmp";
+if ( $branch ) {
+    System("release:tag",
+       "svn copy -m \"$version release\" $root/branches/$branch $root/tags/$vtag");
+} else {
+    System("release:tag",
+       "svn copy -m \"$version release\" $root/trunk $root/tags/$vtag");
+}
+
+# Step 12)  Construct the tarball
+my $tar = "star artype=ustar";    # XXX - check for star/gtar/etc
+System("release:makedist",
+       "svn export $root/tags/${vtag}/net-snmp net-snmp-$version");
+System("release:removefiles",
+       "net-snmp-$version/remove-files net-snmp-$version");
+System("release:makedist",
+       "$tar -c -z -f net-snmp-${version}.tar.gz  net-snmp-$version");
+System("release:makezipclean",
+       "rm -f net-snmp-${version}.zip");
+System("release:makezip",
+       "zip -r net-snmp-${version}.zip  net-snmp-$version");
+
+
+# Step 13)  Sign (or checksum) the package
+my $sig1;
+my $sig2;
+my $pkg1 = "net-snmp-${version}.tar.gz";
+my $pkg2 = "net-snmp-${version}.zip";
+
+System("release:searching-gpg-keys",
+       "gpg --list-secret-keys net-snmp-admin");
+if($? != 0) {
+    $sig1 = "${pkg1}.md5";
+    $sig2 = "${pkg2}.md5";
+    System("release:md5","md5sum $pkg1 > $sig1");
+    System("release:md5","md5sum $pkg2 > $sig2");
+} else {
+    # currently only rstory and hardaker have the gpg keys till Wes
+    # sees someone else in person ;-)
+    $sig1 = "${pkg1}.asc";
+    System("release:gpg","gpg -u net-snmp-admin -a --detach-sign $pkg1");
+    $sig2 = "${pkg2}.asc";
+    System("release:gpg","gpg -u net-snmp-admin -a --detach-sign $pkg2");
+}
+
+#
+#  RELEASE TESTING:
+#
+# Step 14)  Unpack, build and test the release tarball
+System("posttest:untar", "rm -rf net-snmp-${version}");
+System("posttest:untar", "tar xzf net-snmp-${version}.tar.gz");
+chdir("net-snmp-${version}");
+System("posttest:configure","./configure $configureargs");
+System("posttest:make","make");
+System("posttest:test","make test");
+chdir("..");
+
+# Step 15)  Double-check there are no outstanding changes
+System("release:update","svn -u status");
+
+#
+# Steps 16 and following are NOT handled automatically.
+# See the RELEASE-INSTRUCTIONS for full details.
+#
+print STDERR "**************************************** FINISHED ********************\n";
+print STDERR "\nDouble check the SVN status output above for any outstanding changes\n\n";
+print STDERR "Run the following command to upload the relase to SF:\n";
+print STDERR "  rsync -v  $pkg1 $pkg2 $sig1 $sig2 frs.sourceforge.net:uploads/\n";
+print STDERR "See RELEASE-INSTRUCTIONS for any additional steps\n";
+
+
+######################################################################
+sub System {
+    my $name = shift;
+    my $cmd = $descr = join(" ", @_);
+    my $rc;
+    while (dostep($name)) {
+	print STDERR "  running: ",$cmd,"\n";
+	last if ($opts{'n'});
+	system(@_);
+	$rc = checkresult();
+        last if ($rc == 0);
+    }
+}
+
+sub checkresult {
+    if ($?) {
+	print STDERR "The above STEP failed.  Continue anyway (y/n/r)?  ";
+	my $ans = <STDIN>;
+        return 1 if ($ans =~ /^r/);
+	if ($ans =~ /^n/) {
+	    print STDERR "  EXITING\n";
+	    exit;
+	}
+    }
+   return 0;
+}
+
+sub dostep {
+    my $name = shift;
+    print STDERR "\n********** STEP: $name ******************************\n";
+    if ($descr) {
+	print STDERR "  [$descr]\n";
+	$descr = undef;
+    }
+    print "\n";
+    if ($opts{'s'} && $name ne $opts{'s'}) {
+	print STDERR "      [skipping]\n";
+	return 0;
+    }
+    $opts{'s'} = '';
+    if ($opts{r} && $name =~ /$opts{r}/) {
+	print STDERR "      [skipping]\n";
+	return 0;
+    } elsif ($opts{'i'}) {
+	print STDERR "  Do this step (y/n/q)?  ";
+	my $ans = <STDIN>;
+	if ($ans =~ /^n/) {
+	    print STDERR "      [skipping]\n";
+	    return 0;
+	}
+	if ($ans =~ /^q/) {
+	    print STDERR "      QUITTING\n";
+	    exit;
+	}
+    }
+    return 1;
+}
+
+sub manualstep {
+    my $tag = shift;
+
+    if (dostep($tag)) {
+	print STDERR "\n\n",join(" ", at _);
+
+	print STDERR "\n\n  Hit return when done:  ";
+
+	return 1 if ($opts{'n'});
+
+	my $bogus = <STDIN>;
+	return 1;
+    }
+    return 0;
+}
+
+#######################################################################
+# getopt long gui portability code
+#
+sub LocalGetOptions {
+    if (eval {require Getopt::GUI::Long;}) {
+	import Getopt::GUI::Long;
+	Getopt::GUI::Long::Configure(qw(display_help no_ignore_case));
+	return GetOptions(@_);
+    } else {
+	require Getopt::Long;
+	Getopt::Long::Configure(qw(auto_help no_ignore_case));
+	import Getopt::Long;
+    }
+    GetOptions(LocalOptionsMap(@_));
+}
+
+sub LocalOptionsMap {
+    my ($st, $cb, @opts) = ((ref($_[0]) eq 'HASH')
+			    ? (1, 1, $_[0]) : (0, 2));
+    for (my $i = $st; $i <= $#_; $i += $cb) {
+	if ($_[$i]) {
+	    next if (ref($_[$i]) eq 'ARRAY' && $_[$i][0] =~ /^GUI:/);
+	    push @opts, ((ref($_[$i]) eq 'ARRAY') ? $_[$i][0] : $_[$i]);
+	    push @opts, $_[$i+1] if ($cb == 2);
+	}
+    }
+    return @opts;
+}
+
+__END__
+
+=head1 NAME
+
+makerelease - software package release script
+
+=head1 SYNOPSIS
+
+makerelease [options] version
+
+=head1 ARGUMENTS
+
+For full releases, the version should be specified in the form  I<5.x.y>
+
+For pre-releases, the version should be specified in the form  I<5.x.y.preN>
+
+For release candidates, the version should be specified in the form  I<5.x.y.rcN>
+
+Alternatively, it is also possible to specify versions in the form  Ext-5-x-y
+
+=head1 OPTIONS
+
+=over 8
+
+=item B<-r {step}| --regexp-ignore-steps={step}>
+
+Ignore steps matching the regular expression {step}
+
+=item B<-s {step}| --start-at={step}>
+
+Skip all steps preceding the specified (exact) {step}
+
+=item B<-i | --interactive>
+
+Prompt whether or not to execute each step
+
+=item B<-n | --dry-run>
+
+Print the commands that would be executed, but do not execute them.
+
+=item B<-h | --help>
+
+Display this help message.
+
+=back
diff --git a/dist/makerelease.xml b/dist/makerelease.xml
deleted file mode 100644
index 7371256..0000000
--- a/dist/makerelease.xml
+++ /dev/null
@@ -1,537 +0,0 @@
-<!-- this is a makerelease script: http://github.com/hardaker/makerelease -->
-<makerelease>
-  <!-- TODO:
-  - make mancp below happens before configure is run, which
-    doesn't work if it's a complete work.
-  - configure options should be prompted into a variable and used
-  -->
-  <steps>
-    <step type="section" title="Setup Steps" mandatory="1">
-      <text>
-	This set of steps will do some preliminary "safety" checks to
-	ensure the local environment is ok and setup some important
-	information.
-      </text>
-      <steps>
-	<step type="system" title="Old Code">
-	  <text>
-	    This checks for old tarballs (and particularly unpacked
-	    distributions) which might confuse the later processing.
-	    If this step finds outstanding files you need to remove
-	    them before continuing!
-	  </text>
-	  <commands>
-	    <command expectfailure="1">find . -name 'net-snmp-5*' | egrep '^[^\?]'</command>
-	  </commands>
-	</step>
-	<step type="system" title="Setup Check">
-	  <text>
-	    This should show the last version number published in this
-	    branch by looking at the time line in the README file:
-	  </text>
-	  <commands>
-	    <command>head -1 README</command>
-	  </commands>
-	</step>
-	<step type="prompt" prompt="Enter the new version number:"
-	  title="Pick a Version Number"
-	  parameter="VERSION">
-	  <text>
-	    Please enter the version number to publish.  Net-SNMP
-	    convention dictates that this be a version number like 5.4 or
-	    5.4.1.  Pre-releases that occur before a branch freezes should
-	    be appended with ".preN" like 5.4.1.pre2.  Release-candidates
-	    should be labeled ".rcN" like 5.4.1.rc1.
-	  </text>
-	</step>
-	<step type="prompt" prompt="Enter the last version number:"
-	  title="Enter the last version number"
-	  parameter="LASTVERSION">
-	  <text>
-	    Please enter the last version number that the changelog should be
-            generated from.  This should be easy for a new release on a branch,
-            but may be more tricky for a main release.
-	  </text>
-	</step>
-	<step type="perl" title="Defining a second internal version string"
-	  mandatory="1">
-	  <perl>
-	    <code>
-	      # version number with dashes instead of dots
-	      $self->{'parameters'}{'VERSIONTAGNAME'} =
-    	          "v" . $self->{'parameters'}{'VERSION'};
-
-	      $self->{'parameters'}{'LASTVERSIONTAGNAME'} =
-    	          "v" . $self->{'parameters'}{'LASTVERSION'};
-
-	      # target version number (without preN/rcN)
-	      $self->{'parameters'}{'VERSIONTARGET'} =
-    	          $self->{'parameters'}{'VERSION'};
-    	      if ( $self->{'parameters'}{'VERSIONTARGET'} =~ /\.pre.*/ ) {
-    	          $self->{'parameters'}{'VERSIONTARGET'} =~ s/\.pre.*//;
-    	          $self->{'parameters'}{'RELEASETYPE'} = "pre";
-    	      } elsif ( $self->{'parameters'}{'VERSIONTARGET'} =~ /\.rc.*/ ) {
-    	          $self->{'parameters'}{'VERSIONTARGET'} =~ s/\.rc.*//;
-    	          $self->{'parameters'}{'RELEASETYPE'} = "rc";
-    	      } else {
-    	          $self->{'parameters'}{'RELEASETYPE'} = "full";
-    	      }
-
-	      # version in floating point form for perl modules
-              my ($major, $minor, $patch, $opps) =
-	          ($self->{'parameters'}{'VERSION'} =~
-                      /^(\d+)\.(\d+)\.?(\d*)\.?(\d*)/);
-	      $self->{'parameters'}{'VERSIONFLOAT'} = 
-                  $major + $minor/100 + $patch/10000 + $opps/100000;
-
-	      # find out the git branch we're on.
-	      open(GITINFO,"git branch|");
-	      while(<GITINFO>) {
-		  if (/^\*\s+(.*)/) {
-		     $self->{'parameters'}{'BRANCHPATH'} = $1;
-		     my ($nextBranch);
-		     $nextBranch = <GITINFO>;
-		     $nextBranch =~ s/^\s+//;
-		     $self->{'parameters'}{'NEXTBRANCH'} = $nextBranch;
-                     last;
-                  }
-              }
-              close(GITINFO);
-
-	      return 0;
-	    </code>
-	  </perl>
-	</step>
-	<step type="Informational" title="Release Parameter Information" pause="1">
-	  <text>
-	    Here is the configured information we'll be using:
-
-	    VERSION:                 {VERSION}
-
-	    VERSION tag name:        {VERSIONTAGNAME}
-
-	    Floating point VERSION:  {VERSIONFLOAT}
-
-            Git Branch Name:         {BRANCHPATH}
-	  </text>
-	</step>
-	<step type="system" stepname="update" title="Check for changes">
-	  <text>This steps looks for outstanding files that have been
-	  modified.  There should be no outstanding modifications!  If
-	  this step finds outstanding modified files you need to check
-	  them in or revert them before continuing!</text>
-	  <commands>
-	    <command expectfailure="1">git status --porcelain | egrep '^[^\?]'</command>
-	  </commands>
-	</step>
-      </steps>
-    </step>
-    <step type="section" title="Source Code Setup">
-      <text>
-	This set of steps will modify various places within the source
-	code tree to bring it up to date with the new version number
-	about to be published.
-      </text>
-      <steps>
-	<step type="section" title="Libtool / Library versioning setup">
-	  <text>
-	    These steps will modify the various files in the source tree
-	    that contain the version number, show you the changes that
-	    will be made and then check in the resulting changes if you
-	    approve of them.
-	  </text>
-	  <steps>
-	    <step type="informational" pause="true"
-	      skipunless="'{RELEASETYPE}' eq 'pre'"
-	      stepname="version:manualedit" title="version:libtoolmanualedit">
-	      <text>
-		You may need to edit Makefile.top to update the library
-		version numbering - see the comments there about LIBCURRENT,
-		LIBAGE and LIBREVISION for details.  This is usually only
-		needed for the first pre-release of a given version.
-
-		This script will commit the file for you after you're done.
-	      </text>
-	    </step>
-	    <step prompt="true" type="system" stepname="version:libtoolcommit"
-	      title="version:commit">
-	      <text>We'll now commit the Makefile.top file if you've
-		modified it.</text>
-	      <commands>
-		<command ignoreerror="1">git commit -m "version update for {VERSION}" Makefile.top</command>
-	      </commands>
-	    </step>
-	  </steps>
-	</step>
-	<step type="section" title="Change The Version Number">
-	  <text>
-	    These steps will modify the various files in the source tree
-	    that contain the version number, show you the changes that
-	    will be made and then check in the resulting changes if you
-	    approve of them.
-	  </text>
-	  <steps>
-	    <step type="modify" title="Modify the source files"
-	      stepname="release:versionstamp">
-	      <text>
-		We will now modify files through the code to replace the
-		version number with the newer one.
-	      </text>
-	      <modifications>
-		<modify
-		  find="VERSION = '(.*)'"
-		  replace="VERSION = \'{VERSIONFLOAT}\'">
-		  <files>
-		    <file>perl/SNMP/SNMP.pm</file>
-		    <file>perl/agent/agent.pm</file>
-		    <file>perl/agent/Support/Support.pm*</file>
-		    <file>perl/agent/default_store/default_store.pm</file>
-		    <file>perl/default_store/default_store.pm</file>
-		    <file>perl/OID/OID.pm</file>
-		    <file>perl/ASN/ASN.pm</file>
-		    <file>perl/AnyData_SNMP/Storage.pm</file>
-		    <file>perl/AnyData_SNMP/Format.pm</file>
-		    <file>perl/TrapReceiver/TrapReceiver.pm</file>
-		  </files>
-		</modify>
-		<!-- this will fail (ok) against future versions with
-		configure generated PACKAGE_VERSION usage -->
-		<modify
-		  find="NetSnmpVersionInfo = "[\d\.]+""
-		  replace="NetSnmpVersionInfo = "{VERSION}"">
-		  <files>
-		    <file>snmplib/snmp_version.c</file>
-		  </files>
-		</modify>
-		<modify
-		  find="Version: [\.0-9a-zA-Z]+"
-		  replace="Version: {VERSION}">
-		  <files>
-		    <file>README</file>
-		    <file>FAQ</file>
-		    <file>dist/net-snmp.spec</file>
-		  </files>
-		</modify>
-		<modify
-		  find="VERSION = [\.0-9a-zA-Z]+"
-		  replace="VERSION = {VERSION}">
-		  <files>
-		    <file>dist/Makefile*</file>
-		  </files>
-		</modify>
-		<modify
-		  find="AC_INIT\(\[Net-SNMP\], \[([^\]]+)\]"
-		  replace="AC_INIT([Net-SNMP], [{VERSION}]">
-		  <files>
-		    <file>configure.in*</file>
-		    <file>configure.ac*</file>
-		  </files>
-		</modify>
-		<modify
-		  find="NetSnmpVersionInfo = "[^"]+""
-		  replace="NetSnmpVersionInfo = "{VERSION}"">
-		  <files>
-		    <file>snmplib/snmp_version.c</file>
-		  </files>
-		</modify>
-	      </modifications>
-	    </step>
-	    <step type="system" stepname="release:versionautoconf"
-	      title="Running autoconf to rebuild configure">
-	      <text>We modified configure.in, so we now need to run
-		autoconf to rebuild configure.</text>
-	      <commands>
-		<command>rm -f configure</command>
-		<command>dist/run-autoconf</command>
-	      </commands>
-	    </step>
-	    <step type="system" stepname="release:versiondiff"
-	      title="Running svn diff to check changes">
-
-	      <text>Check the following changes for proper version number
-		differences before we commit the chances.</text>
-	      <commands>
-		<command>git diff</command>
-	      </commands>
-	    </step>
-	    <step type="system" stepname="release:versioncommit" pause="true"
-	      title="Running git commit to commit the changes">
-
-	      <text>Check the changes in the above diff and then we'll
-		commit the results here if they look ok.</text>
-	      <commands>
-		<command>git commit -a -m "Version number update: {VERSION}"</command>
-	      </commands>
-	    </step>
-	  </steps>
-	</step>
-	<step type="system" stepname="docs:update" title="docs:update">
-	  <text>This will run git status to figure out what files have
-	  changed since the previous man page generation steps were
-	  done.  After this step, we'll commit all the modified files.
-
-	  You may find additional files (marked with a ?) that should
-	  be added to the svn repository and you'll need to do this by
-	  hand before going on to the next step.
-
-	  Note: based on a recent net-snmp-admin discussion, we're no
-	  longer going to be adding the bazillions of man pages that
-	  doxygen generates by default.  Only important ones should be
-	  added.</text>
-	  <commands>
-	    <command>git status --porcelain man</command>
-	  </commands>
-	</step>
-	<step type="informational" pause="true" stepname="docs:manualaddnewman" title="docs:manualaddnewman">
-	  <text>
-	    Update man/Makefile.in with details of any new man pages,
-	    and run 'git add' on them.
-
-	    I'll commit these changes for you after you're done.
-	  </text>
-	</step>
-	<step prompt="true" type="system" stepname="docs:commit" title="docs:commit">
-	  <commands>
-	    <command ignoreerror="1">git commit -m "documentation update for {VERSION}" man</command>
-	  </commands>
-	</step>
-      </steps>
-    </step>
-    <step type="section" title="Testing Steps">
-      <text>
-	These steps will help you test the source code to ensure it
-	passes some simple "it works" tests.
-      </text>
-      <steps>
-	<step type="system" stepname="build:distclean" title="build:distclean">
-	  <text>First we need to clean the existing build tree and
-	  start from scratch.</text>
-	  <commands>
-	    <command>NETSNMP_DONT_CHECK_VERSION=1 make distclean</command>
-	  </commands>
-	</step>
-	<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 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">
-	  <text>Then we need to build the code</text>
-	  <commands>
-	    <command>NETSNMP_DONT_CHECK_VERSION=1 make</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="build:test" title="testing: default tests">
-	  <text>Now we run "make test" which should produce a perfect
-	  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</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="build:test:unit" title="testing: unit-tests">
-	  <text>Now we run the unit-tests which should also produce a perfect
-	  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>cd testing && ./RUNFULLTESTS -g unit-tests</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="build:test:transports" title="testing: transports">
-	  <text>Now we run the transport tests which should also
-	  produce a perfect set up test results, if your machine
-	  supports all the transports.  If not, this needs to be fixed
-	  or at least understood and accepted as is for some other
-	  reason (like you can't do IPv6 on your system).</text>
-	  <commands>
-	    <command>cd testing && ./RUNFULLTESTS -g transports</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="code:checkcomments" title="code:checkcomments">
-	  <text>This command looks for source code oddities and policy
-	  violations.</text>
-	  <commands>
-	    <command>make checks</command>
-	  </commands>
-	</step>
-      </steps>
-    </step>
-    <step type="section" title="Release File Steps">
-      <text>Certain files in the distribution are built on a
-	per-release basis.  These steps will help set up these files.</text>
-      <steps>
-	<step type="system" stepname="code:makedepend" title="code:makedepend">
-          <text>This step creates Makefile dependencies using the
-          "distdepend" rule in the top level Makefile.
-
-          Note that if you have any additional MIB module code files in the
-          source tree, these will be included in the Makefile dependency list.
-          You may wish to remove these and re-run "make distdepend" before
-          committing the changes.
-          </text>
-	  <commands>
-	    <command>make distdepend</command>
-	  </commands>
-	</step>
-	<step prompt="true" type="system" stepname="code:commitdepend" title="code:commitdepend">
-          <text>This step commits the dependency changes done in the
-          previous step.</text>
-	  <commands>
-	    <command ignoreerror="1">git commit -m "make depend for {VERSION}" `find . -name Makefile.depend`</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="changelog:create" title="Creating a changelog update">
-          <text>We need to extract the portions of the change logs
-          committed to the repository.</text>
-	  <commands>
-	    <command>git log --no-merges {LASTVERSIONTAGNAME}..HEAD > ChangeLog.add</command>
-	  </commands>
-	</step>
-	<step type="informational" pause="true" stepname="changelog:manualedit" title="changelog:manualedit">
-	  <text>
-	    You need to manually insert the *relevent* portions of
-	    'ChangeLog.add' into the ChangeLog file.
-
-            I also suggest truncating ChangeLog.add to only contain
-            the *relevent* portions for this release, as this will make
-            CHANGES.new2 and NEWS.new2 more accurate later on.
-
-	    I'll commit these changes for you after you finish cutting
-	    out the proper changes.
-	  </text>
-	</step>
-	<step prompt="true" type="system" stepname="changelog:commit" title="changelog:commit">
-	  <commands>
-	    <command>git commit -m "version update for {VERSION}" ChangeLog</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="docs:newnews" title="docs:newnews">
-	  <commands>
-	    <command>perl dist/extractnews -s ----- -e ----- ChangeLog</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="docs:newnews" title="docs:newnews">
-	  <commands>
-	    <command>perl dist/extractnews -c CHANGES.new2 -n NEWS.new2 ChangeLog.add</command>
-	  </commands>
-	</step>
-	<step type="informational" pause="true" stepname="docs:README-and-NEWS" title="docs:README">
-	  <text>
-	    You need to manually insert the relevent portions of
-	    'CHANGES.new' and 'NEWS.new' into the CHANGES and NEWS file.
-	    (There are alternative versions in 'CHANGES.new2' and 'NEWS.new2')
-	    You may wish to update the README file as well.
-	    I'll commit these changes for you afterwards
-	  </text>
-	</step>
-	<step prompt="true" type="system" stepname="docs:commit" title="docs:commit">
-	  <commands>
-	    <command ignoreerror="1">git commit -m "version update for {VERSION}" README NEWS CHANGES</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="release:update" title="release:update">
-	  <text>One more git pull and status to make sure nothing
-	  odd exists in your source tree.  Please check the results!</text>
-	  <commands>
-	    <command>git status --porcelain</command>
-	  </commands>
-	</step>
-      </steps>
-    </step>
-
-    <step type="section" title="Make the Release" prompt="yes">
-      <text>This is it!  After this point it's much harder to turn
-      back.  If everything is ok until this point and you're ready to
-      actually tag the release in git and make release files, these
-      steps will do that for you.
-      </text>
-      <steps>
-	<step prompt="true" type="system" stepname="release:tag" title="release:tag">
-	  <text>
-	    This will actually svn copy the current checked out branch
-	    to the new tag name.  Specifically:
-
-               git tag -u A77C5329 -s {VERSIONTAGNAME} -m "Tagging of version {VERSION} as {VERSIONTAGNAME}"
-	  </text>
-	  <commands>
-	    <command>git tag -u A77C5329 -s {VERSIONTAGNAME} -m "Tagging of version {VERSION} as {VERSIONTAGNAME}"</command>
-	  </commands>
-	</step>
-	<step prompt="true" type="system" stepname="release:makedist" title="release:makedist">
-	  <commands>
-	    <command>git archive --prefix=net-snmp-{VERSION}/ {BRANCHPATH} | tar xf -</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="release:removefiles" title="release:removefiles">
-	  <commands>
-	    <command>net-snmp-{VERSION}/remove-files net-snmp-{VERSION}</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="release:makedist" title="release:makedist">
-	  <commands>
-	    <command>star artype=ustar -c -z -f net-snmp-{VERSION}.tar.gz  net-snmp-{VERSION}</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="release:makezipclean" title="release:makezipclean">
-	  <commands>
-	    <command>rm -f net-snmp-{VERSION}.zip</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="release:makezip" title="release:makezip">
-	  <commands>
-	    <command>zip -r net-snmp-{VERSION}.zip  net-snmp-{VERSION}</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="release:searching-gpg-keys" title="release:searching-gpg-keys">
-	  <commands>
-	    <command>gpg --list-secret-keys net-snmp-admin</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="release:gpg" title="release:gpg">
-	  <commands>
-	    <command>gpg -u A77C5329 -a --detach-sign net-snmp-{VERSION}.tar.gz</command>
-	  </commands>
-	</step>
-	<step type="system" stepname="release:gpg" title="release:gpg">
-	  <commands>
-	    <command>gpg -u A77C5329 -a --detach-sign net-snmp-{VERSION}.zip</command>
-	  </commands>
-	</step>
-
-	<step type="section" title="Release File Test">
-	  <text>We'll also re-build the source and retest a few things to
-	    ensure the packaged file can actually be built.
-	  </text>
-	  <steps>
-	    <step type="system" stepname="posttest:untar" title="posttest:untar">
-	      <commands>
-		<command>rm -rf net-snmp-{VERSION}</command>
-	      </commands>
-	    </step>
-	    <step type="system" stepname="posttest:untar" title="posttest:untar">
-	      <commands>
-		<command>tar xzf net-snmp-{VERSION}.tar.gz</command>
-	      </commands>
-	    </step>
-	    <step type="system" stepname="posttest:configure" title="posttest:configure">
-	      <commands>
-		<command>cd net-snmp-{VERSION} && ./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>
-	      </commands>
-	    </step>
-	    <step type="system" stepname="posttest:make" title="posttest:make">
-	      <commands>
-		<command>cd net-snmp-{VERSION} && make</command>
-	      </commands>
-	    </step>
-	    <step type="system" stepname="posttest:test" title="posttest:test">
-	      <commands>
-		<command>cd net-snmp-{VERSION} && make test</command>
-	      </commands>
-	    </step>
-	  </steps>
-	</step>
-      </steps>
-    </step>
-  </steps>
-</makerelease>
diff --git a/dist/net-snmp-solaris-build/DEVENV b/dist/net-snmp-solaris-build/DEVENV
deleted file mode 100644
index b905cae..0000000
--- a/dist/net-snmp-solaris-build/DEVENV
+++ /dev/null
@@ -1,44 +0,0 @@
-PREFIX=/opt/OSS
-export PREFIX
-
-PATH=$PREFIX/bin:/usr/bin:/usr/dt/bin:/usr/openwin/bin:/usr/sbin:/usr/ccs/bin:/usr/ucb
-export PATH
-
-LD_LIBRARY_PATH=$PREFIX/lib 
-LD_RUN_PATH=$LD_LIBRARY_PATH
-export LD_LIBRARY_PATH LD_RUN_PATH
-
-CC=gcc
-export CC
-
-CPPFLAGS="-I$PREFIX/include"
-CFLAGS="-mv8 -mtune=ultrasparc"
-LDFLAGS="-L$PREFIX/lib -R$PREFIX/lib"
-export CPPFLAGS CFLAGS LDFLAGS
-
-TMP=/tmp
-export TMP
-
-TOP=/ctbto/idc/cicn/source/build/`basename $PREFIX`
-export TOP
-
-SRC=$TOP/dist
-export SRC
-
-WORK=$TOP/work
-export WORK
-
-
-# for superpack:
-
-CHECKLIST=$TOP/Checklist; export CHECKLIST
-MAKE=$PREFIX/bin/make
-export MAKE
-
-#CATEGORY=OpenSource; export CATEGORY
-#VENDOR="Free Software Foundation"; export VENDOR
-BASEDIR=/opt; export BASEDIR
-PREFIX=$BASEDIR/`basename $TOP`; export PREFIX
-RELEASE_AREA=$TOP/../packages/`/bin/uname -p`/`/bin/uname -r`; export RELEASE_AREA
-
-umask 022
diff --git a/dist/net-snmp-solaris-build/README b/dist/net-snmp-solaris-build/README
deleted file mode 100644
index 53e25a6..0000000
--- a/dist/net-snmp-solaris-build/README
+++ /dev/null
@@ -1,19 +0,0 @@
-The "buildpackage-solaris" script does a "one-shot" build 
-and packaging of an untarred net-snmp distribution 
-on Solaris without requiring root access. 
- 
-The resulting native Solaris package can then be 
-(automatically) installed/removed using the Solaris 
-pkgadd(1)/pkgrm(1) commands. 
- 
-The script requires customization of your 
-development environment - see attached file 
-DEVENV - before it can be used. 
- 
- Basic usage: ./buildpackage-solaris distclean 
- 
-The script "elfdepend.sh" is required to 
-determine the dependencies of all built ELF binaries 
-and libraries to create a "package dependency file" - 
-see depend(4). 
- 
diff --git a/dist/net-snmp-solaris-build/buildpackage-solaris b/dist/net-snmp-solaris-build/buildpackage-solaris
deleted file mode 100644
index 31f4f0c..0000000
--- a/dist/net-snmp-solaris-build/buildpackage-solaris
+++ /dev/null
@@ -1,182 +0,0 @@
-#!/bin/ksh
-#
-# automatic build (configure/make/package) script 
-# for NET-SNMP on Solaris
-#
-# 2004/11 Rewrite to strictly build the package jfrank at fastrieve.com
-# 2002/11 Stefan.Radman at CTBTO.ORG
-
-
-# If you define DEBUG, the script will be verbose, and we won't remove temporary files
-
-#DEBUG=Y
-if [ ! -z $DEBUG ]; then
-   set -x # be verbose
-fi
-
-# TMP is where we are temporarily installing the package to
-TMP=`pwd`/pkgroot
-
-# PKG is the internal and external name for the package
-PKG=OSSnet-snmp
-
-#PREFIX is the top level architecture dependent directory.
-# This should be normally determined by configure
-#prefix=/opt/${PKG}
-prefix=/usr/local
-
-# VARDIR is the persistent dir from configure
-VARDIR=/var/net-snmp
-
-expandedprefix=${TMP}/${prefix}
-
-PERL=${PERL:=`which perl`}
-MAKE=${MAKE:=`which make`}
-
-if [ -d ${TMP} ]; then
-   rm -rf ${TMP};
-fi
-
-# install to temporary package build root
-cd ../..
-
-$MAKE install prefix=${expandedprefix} exec_prefix=${expandedprefix} || exit 1
-
-# We now have the main software installed, copy over the auxillary files
-cd -
-
-awk /^___snmpd-init.d/,/___EOF/ $0 | grep -v ^___ | sed "s, at prefix@,$prefix,g" >|snmpd-init.d
-
-# create persistent directory if it does not exist
-[ -d $TMP/$VARDIR ] || install -d -m 0755 $TMP/$VARDIR 
-
-# postinstall
-LD_LIBRARY_PATH=$TMP$prefix/lib:$LD_LIBRARY_PATH $TMP/$prefix/bin/snmptranslate\
-  -M$TMP/$prefix/share/snmp/mibs -m SNMPv2-SMI .1 >&- || exit $? # create MIB index
-
-# package
-version=`../../net-snmp-config --version`
-os=`uname -s`
-rel=`uname -r`
-class=snmp
-owner=$LOGNAME
-groups | awk '{print $1}' | read group
-cat <<== >|pkginfo
-PKG="${PKG}"
-NAME="net-snmp-$version"
-ARCH="`uname -p`"
-VERSION="$version, $os $rel, `date +%Y.%m.%d.%H.%M.%S`"
-CATEGORY="OpenSource"
-DESC="The NET-SNMP Tools and Library"
-VENDOR="http://net-snmp.sourceforge.net"
-CLASSES="$class"
-BASEDIR="$prefix"
-==
-. ./pkginfo
-
-echo 'checking dependencies'
-unset LD_LIBRARY_PATH # binaries and libraries should have RPATH now
-./elfdepend.sh $TMP | grep -v "P  *$PKG " >|depend # ignore own package
-
-echo 'creating prototype file'
-cat <<== >|prototype
-i pkginfo
-i copyright=../../COPYING
-#i preinstall=./preinstall-postremove
-#i postinstall=./preinstall-postremove
-i depend
-# set default mode, owner and group
-! default 0775 root sys
-d snmp /etc 0755 root sys
-d snmp /etc/init.d 0755 root sys
-f snmp /etc/init.d/snmpd=./snmpd-init.d 0755 root sys
-#l snmp /etc/rc2.d/S76snmpd=/etc/init.d/snmpd # not yet
-==
-
-pkgproto -c snmp $TMP=/ |\
-egrep -v '^d .* / |^d .* /var |^d .* /opt |^ .*perllocal.pod=' |\
-sed -e "s/ $owner $group\$//" >> prototype || exit $?
-# and ignore top level directories (must pre-exist)
-
-echo 'creating package'
-pkgmk -od . || exit $?
-pkgtrans . $PKG-$version-$ARCH-$os$rel.pkg $PKG || exit $?
-
-# We should really do some cleanup here
-if [ -z $DEBUG ]; then
-   rm -rf snmpd-init.d $PKG $TMP pkginfo prototype depend 
-fi
-
-echo "build was successfull"
-exit 0
-
-# /etc/init/snmpd
-# This is packaged inside of buildpackage-solaris because we need to substitute
-# in the actual server name.
-
-___snmpd-init.d___
-#! /bin/sh
-#
-# start/stop the NET-SNMP master agent (snmpd)
-#
-# Location:      /etc/init.d/snmpd
-#                /etc/rc3.d/S??snmpd
-#
-name="NET-SNMP agent"
-daemon=@prefix@/sbin/snmpd
-
-case "$1" in
-start)
-        [ ! -x $daemon ] && echo "ERROR: cannot start $name ($daemon)" && exit 1
-        echo "Starting $name ... \c"
-        PGREP=`which pgrep`
-        if [ -z $PGREP ]; then
-           pid=`pgrep -fx $daemon`
-        else
-           pid=`ps -ef | grep $daemon | grep -v grep | awk '{print $2}'`
-        fi
-
-        [ ! -z "$pid" ] && echo "already running with pid $pid." && exit 0
-        $daemon && echo "done."
-        ;;
-stop)
-        echo "Stopping $name ... \c"
-        PGREP=`which pgrep`
-        if [ -z $PGREP ]; then
-           pid=`pgrep -fx $daemon`
-        else
-           pid=`ps -ef | grep $daemon | grep -v grep | awk '{print $2}'`
-        fi
-        [ ! -z "$pid" ] && (kill $pid && echo "done" ) || echo "not running"
-
-        ;;
-status)
-        echo "$name is \c"
-        PGREP=`which pgrep`
-        if [ -z $PGREP ]; then
-           pid=`pgrep -fx $daemon`
-        else
-           pid=`ps -ef | grep $daemon | grep -v grep | awk '{print $2}'`
-        fi
-        [ -z "$pid" ] && echo "not running" || echo "running with pid $pid"
-        ;;
-restart)
-        $0 stop && $0 start
-        ;;
-reload)
-        echo "Re-initializing $name ...\c"
-        PGREP=`which pgrep`
-        if [ -z $PGREP ]; then
-           pid=`pgrep -fx $daemon`
-        else
-           pid=`ps -ef | grep $daemon | grep -v grep | awk '{print $2}'`
-        fi
-        [ ! -z "$pid" ] && (kill -HUP $pid && echo "done" ) || echo "not running"
-        ;;
-*)
-        echo "Usage: $0 { start | stop | status | restart | reload }"
-        ;;
-esac
-
-exit 0
-___EOF___
diff --git a/dist/net-snmp-solaris-build/elfdepend.sh b/dist/net-snmp-solaris-build/elfdepend.sh
deleted file mode 100755
index 547c4cc..0000000
--- a/dist/net-snmp-solaris-build/elfdepend.sh
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/bin/ksh
-#
-# elfdepend.sh
-#
-# given a path, this scripts searches for ELF binaries and libraries
-# and generates package dependency file entries according to ther dependencies
-#
-# Usage: elfdepend <ELF-binary>|<directory>
-#
-# 2002/11 Stefan.Radman at CTBTO.ORG
-#
-# /var/sadm/install/contents format:
-#
-# /dev d none 0775 root sys SUNWcsr SUNWcsd
-# path type class mode owner group packages
-# /etc/.login f renamenew 0644 root sys 516 37956 904647695 SUNWcsr
-# /etc/acct/holidays e preserve 0664 bin bin 289 22090 904647603 SUNWaccr
-# path type class mode owner group x x x packages
-# /bin=./usr/bin s none SUNWcsr
-# path=link type class packages
-# /devices/pseudo/clone at 0:hme c none 11 7 0600 root sys SUNWcsd
-# path type class x x owner mode packages
-#
-# types e (sed), v (volatile) have same format like type f (file)
-# type l (hardlink) has same format like type s (symlink)
-#
-prog=`basename $0`
-LAST_CHANCE=/opt/OSS/lib
-
-if [ -d "$1" ] ; then
-  find $1 -type f -exec file {} \;
-elif [ -x "$1" ] ; then
-  file $1
-else
-  echo 1>&2 "usage: $0 <directory>|<ELF executable>"
-  exit 1
-fi | awk '$2 == "ELF" { print }' | cut -d: -f1 |\
-while read elf
-do
-  ldd "$elf" | while read lib x path
-  do
-    [ -z "$path" ] && continue
-    if [ "$path" = '(file not found)' ]
-    then
-      if [ -x $LAST_CHANCE/$lib ]
-      then
-        path="$LAST_CHANCE/$lib"
-      else
-        echo "# $prog: $lib $x $path"
-        continue # not found
-      fi
-    fi
-    echo "$path"
-    # need symlink handling here - see /usr/platform/SUNW,*/lib/*
-  done
-done | sort -u | while read libpath other
-do
-  [ "$libpath" = "#" ] && echo "$libpath $other" && continue # error message
-  set -- `grep "^$libpath[ =]"  /var/sadm/install/contents | head -1`
-  path=$1; type=$2
-  case $type in
-    f) # file
-      shift 9 # first package
-      ;;
-    s|l) # link
-      shift 3 # first package
-      ;;
-    '') # not found
-      echo "# $prog: $libpath is not associated with any package"
-      continue
-      ;;
-    *) # dubious file type
-      echo "# $prog: path $1 has dubious file type $2"
-      continue
-      ;;
-  esac
-  set -- `echo $1 | tr : ' '`
-  echo $1 # strip off classes
-done | sort -u | while read pkg other
-do
-  if [ "$pkg" = "#" ] ; then # error message
-    echo 1>&2 "$other" # goes to stderr
-    continue
-  fi
-  eval `pkgparam -v $pkg PKG NAME`
-  printf "P  %-15s%s\n" "$PKG" "$NAME"
-done
diff --git a/dist/net-snmp.spec b/dist/net-snmp.spec
index bc36a6e..0c82e12 100644
--- a/dist/net-snmp.spec
+++ b/dist/net-snmp.spec
@@ -10,7 +10,7 @@
 %if 0%{?rhel_version}
 %define rhel %{?rhel_version}
 %else
-%define is_rhel %(grep -E "Red Hat Enterprise Linux|CentOS" /etc/redhat-release &>/dev/null && echo 1 || echo 0)
+%define is_rhel %(grep "Red Hat Enterprise Linux" /etc/redhat-release &>/dev/null && echo 1 || echo 0)
 %if %{is_rhel}
 %define rhel %(sed </etc/redhat-release -e 's/.*release \\(.\\).*/\\1/'  )
 %endif
@@ -37,7 +37,7 @@
 %endif
 Summary: Tools and servers for the SNMP protocol
 Name: net-snmp
-Version: 5.7.2.1
+Version: 5.4.3
 # update release for vendor release. (eg 1.fc6, 1.rh72, 1.ydl3, 1.ydl23)
 Release: 1
 URL: http://www.net-snmp.org/
@@ -105,12 +105,6 @@ Requires: net-snmp = %{epoch}:%{version}, perl
 
 %if 0%{?fedora}%{?rhel}
 Provides: net-snmp-perl
-Provides: perl(SNMP) perl(NetSNMP::OID)
-Provides: perl(NetSNMP::ASN)
-Provides: perl(NetSNMP::AnyData::Format::SNMP) perl(NetSNMP::AnyData::Storage::SNMP)
-Provides: perl(NetSNMP::agent)
-Provides: perl(NetSNMP::manager) perl(NetSNMP::TrapReceiver)
-Provides: perl(NetSNMP::default_store) perl(NetSNMP::agent::default_store)
 Obsoletes: net-snmp-perl
 %endif
 
@@ -133,7 +127,7 @@ exit 1
 	--enable-shared \
 	%{?netsnmp_perl_modules: --with-perl-modules="INSTALLDIRS=vendor"} \
 	%{!?netsnmp_perl_modules: --without-perl-modules} \
-	%{?netsnmp_embedded_perl: --enable-embedded-perl} \
+	%{?netsnmp_embedded_perl: --enable-as-needed --enable-embedded-perl} \
 	%{!?netsnmp_embedded_perl: --disable-embedded-perl} \
 	--with-cflags="$RPM_OPT_FLAGS %{netsnmp_cflags}"
 
@@ -237,24 +231,14 @@ rm -rf $RPM_BUILD_ROOT
 echo "No additional verification is done for net-snmp"
 
 %changelog
-* Thu Jul 26 2012 Dave Shield <D.T.Shield at liverpool.ac.uk>
-- Additional "Provides:" to complete the list of perl modules
-  Triggered by Bug ID #3540621
-
-* Thu Oct  7 2010 Peter Green <peter.green at az-tek.co.uk>
-- Modified RHEL detection to include CentOS.
-- Added extra "Provides:" to the perlmods package definition;
-  otherwise subsequent package installations that require certain
-  Perl modules try to re-install RHEL/CentOS stock net-snmp
-
 * Tue May  6 2008 Jan Safranek <jsafranek at users.sf.net>
 - remove %{libcurrent}
-- add openssl-devel to build requirements
-- don't use Provides: unless necessary, let rpmbuild compute the provided 
+- don't use Provides: unless necessary, let rpmbuild compute the provided
   libraries
 
-* Tue Jun 19 2007 Thomas Anders <tanders at users.sf.net>
+* Tue Jun 30 2007 Thomas Anders <tanders at users.sf.net>
 - add "BuildRequires: perl-ExtUtils-Embed", e.g. for Fedora 7
+- add --enable-as-needed if building with embedded Perl support
 
 * Wed Nov 23 2006 Thomas Anders <tanders at users.sf.net>
 - fixes for 5.4 and 64-bit platforms
diff --git a/dist/nsb-config b/dist/nsb-config
deleted file mode 100755
index 0944fe6..0000000
--- a/dist/nsb-config
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-# Author: Robert Story <rstory at freesnmp.com>
-#
-########################################################################
-########################################################################
-
-usage()
-{
-   echo "Usage: $0  [-d|-x] [-s SRCD]"
-   echo ""
-   echo " -s SRCDIR  : soure directory [$HOME/src/net-snmp-VERSION]"
-   echo ""
-   echo " -x : configure extra features for pre-release testing"
-   echo " -d : configure for binary distribution"
-   exit 1
-}
-
-#set -x
-
-
-#
-# find nsb-platform based on the path to this script
-#
-EXE_PATH=`dirname $0`
-if [ -f $EXE_PATH/nsb-functions ];then
-   . $EXE_PATH/nsb-functions
-elif [ -f $HOME/bin/nsb-functions ]; then
-   . $HOME/bin/nsb-functions
-elif [ -f nsb-functions ];then
-   . nsb-functions
-else
-   echo "Cannot find nsb-functions in $EXE_PATH, $HOME/bin or $PWD"
-   exit 1
-fi
-
-
-########################################################################
-########################################################################
-NSB_CONFIG_ALL=2
-
-#      x)  x=$OPTARG ;;
-while getopts ds:x opt
-do
-    case "$opt" in
-      d)  NSB_CONFIG_ALL=0;;
-      s)  SRCD=$OPTARG ;;
-      x)  NSB_CONFIG_ALL=1;;
-      \?)# unknown flag
-        usage;;
-    esac
-done
-shift `expr $OPTIND - 1`
-
-if [ $NSB_CONFIG_ALL -eq 2 ]; then
-   echo "You must specify -d or -x"
-   usage
-fi
-
-if [ "x$SRCD" = "x" ]; then
-   for x in . $HOME/src/net-snmp
-   do
-      if [ -f $x/configure ]; then
-         SRCD=$x
-         break
-      fi
-   done
-   if [ "x$SRCD" = "x" ]; then
-      echo "Couldn't find a source directory. Please specify one for me."
-      usage
-   fi
-fi
-
-
-########################################################################
-########################################################################
-if [ $NSB_CONFIG_ALL -eq 0 ];then
-    nsb_config_dist $SRCD
-else
-    nsb_config_all $SRCD
-fi
diff --git a/dist/nsb-functions b/dist/nsb-functions
deleted file mode 100644
index 4865cc2..0000000
--- a/dist/nsb-functions
+++ /dev/null
@@ -1,508 +0,0 @@
-#!/bin/sh
-#----------------------------------------------------------------------
-# $Id$
-# Author: Robert Story <rstory at freesnmp.com>
-
-#----------------------------------------------------------------------
-#
-# source user config
-if [ -f $HOME/.snmp/nsb-rc ]; then
-   . $HOME/.snmp/nsb-rc
-fi
-
-
-#----------------------------------------------------------------------
-#
-nsb_sysname()
-{
-   echo `uname -mrs | tr ' /' '__'`
-}
-
-#----------------------------------------------------------------------
-#
-# Utility vars
-#
-NSB_VERSION=${NSB_VERSION:=""}
-NSB_BUILD_DIR=${NSB_BUILD_DIR:=""}
-NSB_BUILD_SUFFIX=${NSB_BUILD_SUFFIX:=""}
-NSB_SRC_DIR=${NSB_SRC_DIR:=""}
-NSB_INSTALL_DIR=${NSB_INSTALL_DIR:=""}
-NSB_INSTALL_DIR_DEFAULT=${NSB_INSTALL_DIR_DEFAULT:="$NSB_BUILD_DIR/usr"}
-NSB_PLATFORM=${NSB_PLATFORM:=`nsb_sysname`}
-# sun doesn't support hostname -s
-NSB_HOST=${NSB_HOST:=`hostname | cut -f1 -d.`}
-NSB_QUIET=${NSB_QUIET:=0}
-NSB_PROMPT=${NSB_PROMPT:=0}
-NSB_CLEAN=${NSB_CLEAN:=1}
-NSB_CONFIG_ALL=${NSB_CONFIG_ALL:=0}
-NSB_SKIP_CONFIG=${NSB_SKIP_CONFIG:=0}
-NSB_SKIP_BUILD=${NSB_SKIP_BUILD:=0}
-NSB_SKIP_TEST=${NSB_SKIP_TEST:=0}
-NSB_SKIP_INSTALL=${NSB_SKIP_INSTALL:=0}
-NSB_ERR_CTX_LINES=${NSB_ERR_CTX_LINES:=25}
-NSB_DIST_TRANSPORTS="UDP TCP Unix Callback"
-NSB_EXTRA_TRANSPORTS=""
-NSB_DIST_MODULES=${NSB_DIST_MODULES:="host disman/event-mib smux"}
-NSB_EXTRA_MODULES=${NSB_EXTRA_MODULES:="examples examples/example smux Rmon"}
-#testhandler
-NSB_EXTRA_CONFIG=${NSB_EXTRA_CONFIG:=""}
-NSB_PREFIX=${NSB_PREFIX:="/usr"}
-NSB_EXTRA_INSTALL=${NSB_EXTRA_INSTALL:=""}
-NSB_SHARED=${NSB_SHARED:="--enable-shared"}
-NSB_VIEW=cat
-NSB_FLOW=
-NSB_DATE=${NSB_DATE:=`date +%y%m%d_%H%M`}
-
-## embedded perl
-NSB_DIRLINK_DIRS="perl mibs include python"
-NSB_PERL=${NSB_PERL:=""}
-#NSB_PERL=${NSB_PERL:="--enable-embedded-perl"}
-if [ "x$NSB_PERL" != "x" ]; then
-  NSB_SKIP_DIRLINK=${NSB_SKIP_DIRLINK:=0}
-else
-  NSB_SKIP_DIRLINK=${NSB_SKIP_DIRLINK:=1}
-fi
-
-#
-# System specific additions
-#
-case `uname -s` in
-
-   SunOS)
-      NSB_TAIL_ARGS="-$NSB_ERR_CTX_LINES"
-      ;;
-
-   *)
-      NSB_TAIL_ARGS="-n $NSB_ERR_CTX_LINES"
-      ;;
-esac
-
-
-#----------------------------------------------------------------------
-#
-# Utility functions
-#
-
-nsb_abort()
-{
-   echo
-   echo "ABORTING: $@" >&2
-   exit 255
-}
-
-nsb_info()
-{
-   if [ $NSB_QUIET -ne 1 ]; then
-      echo $@
-   fi
-}
-
-nsb_prompt()
-{
-   if [ "x$1" = "x-f" ]; then
-      shift 1
-      tmp_nsb_prompt=1
-   else
-      tmp_nsb_prompt=$NSB_PROMPT
-   fi
-   if [ $tmp_nsb_prompt -eq 1 ]; then
-      echo $@
-      read nsb_prompt_dummy
-   else
-      echo "$@ (PROMPT SKIPPED)"
-   fi
-}
-
-nsb_flow()
-{
-    NSB_FLOW=$NSB_FLOW:$@
-    echo "Running $@" >&2
-}
-
-#----------------------------------------------------------------------
-#
-nsb_config_dist()
-{
-   nsb_flow config_dist
-   if [ $# -lt 1 ]; then
-      nsb_abort "usage: nsb_config_dist src_dir"
-   fi
-   ngc_src=$1
-   if [ ! -d $ngc_src ]; then
-      nsb_abort "$ngc_src does not exist!"
-   fi
-   if [ ! -d $ngc_src/agent/mibgroup ]; then
-      nsb_abort "agent/mibgroup directory in $ngc_src does not exist!"
-   fi
-   ngc_dest=$2
-   if [ "X$ngc_dest" != "X" -a ! -d $ngc_dest ]; then
-      nsb_abort "$ngc_dest does not exist!"
-   fi
-
-   #
-   # some modules might be release specific, so make sure they
-   # exist before we send them off to configure
-   #
-   NSB_FINAL_MODULES=
-   for ncd_x in $NSB_DIST_MODULES
-   do
-	if [ -r $ngc_src/agent/mibgroup/$ncd_x.h ]; then
-		NSB_FINAL_MODULES="$NSB_FINAL_MODULES $ncd_x"
-	fi
-   done
-
-   #
-   # NOTE: for some reason, bash does not expand variables
-   # inside of single quotes, so use double quotes
-   #
-   echo $ngc_src/configure --with-sys-location=Unknown \
-      --prefix="$NSB_PREFIX" \
-      --disable-developer $NSB_EXTRA_CONFIG \
-      --with-sys-contact='System Administrator' \
-      --with-defaults --with-mib-modules="$NSB_FINAL_MODULES"
-   $ngc_src/configure --with-sys-location=Unknown \
-      --prefix="$NSB_PREFIX" \
-      --disable-developer $NSB_EXTRA_CONFIG \
-      --with-sys-contact='System Administrator' \
-      --with-defaults --with-mib-modules="$NSB_FINAL_MODULES"
-   # I'd like to add ' | tee nsb_config.$NSB_DATE' to save output, but then
-   # I'd lose the rc from configure, which I need... sigh
-   ngc_rc=$?
-   if [ $ngc_rc -ne 0 ];then
-      nsb_abort "Error during configure dist (rc=$ngc_rc)"
-   fi
-}
-
-nsb_config_all()
-{
-   nsb_flow config_all
-   if [ $# -lt 1 ]; then
-      nsb_abort "usage: nsb_config_all src_dir"
-   fi
-   ngc_src=$1
-   if [ ! -d $ngc_src ]; then
-      nsb_abort "$ngc_src does not exist!"
-   fi
-   if [ ! -d $ngc_src/agent/mibgroup ]; then
-      nsb_abort "agent/mibgroup directory in $ngc_src does not exist!"
-   fi
-   ngc_dest=$2
-   if [ "X$ngc_dest" != "X" -a ! -d $ngc_dest ]; then
-      nsb_abort "$ngc_dest does not exist!"
-   fi
-
-   #
-   # System specific additions
-   #
-   case `uname -s` in
-
-   Linux)
-      NSB_IPV6=${NSB_IPV6:="--enable-ipv6"}
-      NSB_EXTRA_TRANSPORTS="IPX"
-      ;;
-
-   #Darwin)
-   #   ;;
-
-   *)
-      NSB_IPV6=${NSB_IPV6:="--enable-ipv6"}
-      ;;
-   esac
-
-   #
-   # use libwrap if we can find the header
-   #
-   if [ -f /usr/include/tcpd.h ]; then
-      NSB_LIBWRAP=${NSB_LIBWRAP:="--with-libwrap"}
-      NSB_EXTRA_CONFIG="$NSB_EXTRA_CONFIG $NSB_LIBWRAP"
-   fi
-
-   #
-   # some modules might be release specific, so make sure they
-   # exist before we send them off to configure
-   #
-   NSB_FINAL_MODULES=
-   for ncd_x in $NSB_DIST_MODULES $NSB_EXTRA_MODULES
-   do
-	if [ -r $ngc_src/agent/mibgroup/$ncd_x.h ]; then
-		NSB_FINAL_MODULES="$NSB_FINAL_MODULES $ncd_x"
-	fi
-   done
-
-   #
-   # configure
-   #
-   # NOTE: for some reason, bash does not expand variables
-   # inside of single quotes, so use double quotes
-   #
-   echo $ngc_src/configure  --with-defaults \
-      --prefix="$NSB_PREFIX" \
-      --disable-developer $NSB_EXTRA_CONFIG \
-      "--with-mib-modules=$NSB_FINAL_MODULES" \
-      "--with-transports=$NSB_DIST_TRANSPORTS $NSB_EXTRA_TRANSPORTS" \
-      $NSB_SHARED $NSB_IPV6 $NSB_PERL
-   $ngc_src/configure  --with-defaults \
-      --prefix="$NSB_PREFIX" \
-      --disable-developer $NSB_EXTRA_CONFIG \
-      "--with-mib-modules=$NSB_FINAL_MODULES" \
-      "--with-transports=$NSB_DIST_TRANSPORTS $NSB_EXTRA_TRANSPORTS" \
-      $NSB_SHARED $NSB_IPV6 $NSB_PERL
-   # I'd like to add ' | tee nsb_config.$NSB_DATE' to save output, but then
-   # I'd lose the rc from configure, which I need... sigh
-   ngc_rc=$?
-   if [ $ngc_rc -ne 0 ];then
-      nsb_abort "Error during configure all (rc=$ngc_rc)"
-   fi
-}
-
-nsb_zip()
-{
-   if [ $# -ne 3 ]; then
-      nsb_abort "usage: $0 release build_directory dest_dir"
-   fi
-
-   release=$1
-   build_dir=$2
-   dest_dir=$3
-
-   build=$build_dir/$NSB_PLATFORM
-
-   if [ ! -d $build ]; then
-      nsb_abort "$build directory does not exist!"
-   fi
-
-   if [ ! -d $build/usr ]; then
-      nsb_abort "install directory $build/usr directory does not exist!"
-   fi
-
-   cd $build
-
-   rm -f $dest_dir/$release-$NSB_PLATFORM.tar
-   nsb_info "tar cf $dest_dir/$release-$NSB_PLATFORM.tar usr"
-   tar cf $dest_dir/$release-$NSB_PLATFORM.tar usr
-
-   nsb_info "gzip --best $dest_dir/$release-$NSB_PLATFORM.tar"
-   gzip --best $dest_dir/$release-$NSB_PLATFORM.tar
-
-   if [ $NSB_QUIET -ne 1 ]; then
-      ls -lt $dest_dir
-   fi
-}
-
-nsb_upload()
-{
-   build_dir=$1
-   target=$2
-   nsb_flow upload to $target: config.log configure-summary nsb_make-all.$NSB_DATE nsb_make-test.$NSB_DATE
-   dir=$PWD
-   cd $build_dir
-   /usr/bin/scp config.log configure-summary nsb_make-all.$NSB_DATE nsb_make-test.$NSB_DATE\
-                 $target
-   cd $dir
-}
-
-nsb_dir_link()
-{
-  if [ $# -lt 2 ]; then
-    nsb_abort "usage: nsb_dir_link src_dir dst_dir"
-  fi
-  link_src_dir=$1
-  link_dst_dir=$2
-  if [ -d $link_src_dir ]; then
-    nsb_flow set up shadow directory $link_dst_dir
-    $NSB_DIRLINK $link_src_dir $link_dst_dir
-    rc=$?
-    if [ $rc -ne 0 ];then
-      nsb_abort "Error during nsb_dir_link (rc=$rc)"
-    fi
-  else
-    nsb_info "Skipping $link_src_dir"
-  fi
-  }
-
-nsb_make()
-{
-   nsb_flow make $1
-   target=$1
-   shift 1
-   parms=$@
-
-   if [ "x$NSB_MAKE" = "x" ];then
-      #nsb_info "Searching for GNU make (set NSB_MAKE to skip this step)"
-      for p in `echo $PATH | tr ':' ' '`
-      do
-         #echo $p
-         if [ -x $p/make ];then
-            dummy=`$p/make --version 2>&1 | grep GNU`
-            if [ $? -eq 0 ];then
-	       #nsb_info "using $p/make ($dummy)"
-               NSB_MAKE=$p/make
-               break
-            fi
-         fi
-         if [ -x $p/gmake ];then
-            dummy=`$p/gmake --version 2>&1 | grep GNU`
-            if [ $? -eq 0 ];then
-	       #nsb_info "using $p/gmake ($dummy)"
-               NSB_MAKE=$p/gmake
-               break
-            fi
-         fi
-      done
-      if [ "x$NSB_MAKE" = "x" ];then
-         nsb_abort "GNU make not found. Set NSB_MAKE to your make executable."
-      fi
-   fi
-
-   nsb_make_OUTPUT=nsb_make-$target.$NSB_DATE
-   nsb_info "Making $target... (log is $nsb_make_OUTPUT)"
-   #
-   if [ "x$target" = "xall" ]; then
-      $NSB_MAKE NOAUTODEPS=y touchit 2>&1 | tee $nsb_make_OUTPUT
-   fi
-   $NSB_MAKE $NSB_MAKE_EXTRA NOAUTODEPS=y start-flag $target $parms end-flag 2>&1 | tee -a $nsb_make_OUTPUT
-   # checking $? would only get us the rc from tee, which is useless
-
-   nsb_info "Checking for errors..."
-   egrep -i "error|fail|warn|no such|exists|t find |ermission denied" $nsb_make_OUTPUT \
-         > nsb_make-$target-allerrs.$NSB_DATE
-   # allow for a few exceptions
-   egrep -v -i "^ok|testing .*failure|[a-z&_](fail|error)|warn|error(mib|\.3)|(LOG|SNMP)_ERR|In function|= FAILURE|DEBUGMSG|/\*|static library .* is not portable" nsb_make-$target-allerrs.$NSB_DATE \
-         > nsb_make-$target-errs.$NSB_DATE
-   if [ -s nsb_make-$target-errs.$NSB_DATE ]; then
-      nsb_prompt "press enter to view errors"
-#      grep ':' $nsb_make_OUTPUT > nsb_make-$target-errs2.$NSB_DATE
-#      tail -n $NSB_ERR_CTX_LINES nsb_make-$target-errs2.$NSB_DATE >&2
-      tail $NSB_TAIL_ARGS nsb_make-$target-errs.$NSB_DATE >&2
-      nsb_abort "Error(s) during make $target"
-   fi
-
-   if [ -f build-in-progress-flag ];then
-     nsb_abort "make $target incomplete"
-   fi
-}
-
-nsb_default_paths()
-{
-   if [ "x$NSB_VERSION" = "x" ]; then
-      NSB_VERSION="unknown-version"
-   fi
-   if [ "x$NSB_SRC_DIR" = "x" ]; then
-      NSB_SRC_DIR=$HOME/src/net-snmp-$NSB_VERSION
-   fi
-   if [ "x$NSB_BUILD_DIR" = "x" ]; then
-      NSB_BUILD_DIR=$HOME/build/$NSB_VERSION
-      if [ "x$NSB_SUFFIX" != "x" ]; then
-         NSB_BUILD_DIR=$NSB_BUILD_DIR/$NSB_SUFFIX
-      fi
-   fi
-   if [ "x$NSB_INSTALL_DIR" = "x" ]; then
-      NSB_INSTALL_DIR="$NSB_INSTALL_DIR_DEFAULT"
-   fi
-}
-
-nsb_build()
-{
-   if [ $# -lt 5 ]; then
-      nsb_abort "usage: $0 release src_dir build_directory dest_dir config_all_flag ($@)"
-   fi
-
-   nsb_config_all_flag=0
-   release=$1
-   src_dir=$2
-   build_dir=$3
-   dest_dir=$4
-   nsb_config_all_flag=$5
-   shift 5
-
-   nsb_flow build in $build_dir
-   nsb_flow host $NSB_HOST
-   nsb_flow platform $NSB_PLATFORM
-
-   if [ ! -d $src_dir ]; then
-      nsb_abort "$src_dir does not exist!"
-   fi
-
-   if [ ! -d $build_dir ]; then
-      mkdir $build_dir
-      if [ ! -d $build_dir ]; then
-         nsb_abort "$build_dir directory does not exist!"
-      fi
-   fi
-
-   nsb_info "Changing directories to $build_dir"
-   cd $build_dir
-
-   if [ $NSB_CLEAN -gt 0 ]; then
-      nsb_info "Cleaning up..."
-      if [ $NSB_CLEAN -eq 2 ];then
-        if [ "x$PWD" = "x/" ]; then
-           nsb_abort "Not running rm -fR from /"
-        fi
-        nsb_info "rm -fR * .[a-zA-Z]* > /dev/null 2>&1"
-        rm -fR * .[a-zA-Z]* > /dev/null 2>&1
-      else
-        if [ "x$dest_dir" != "x" -a "x$dest_dir" != "x/" ]; then
-          nsb_info "rm -fR nsb_* $dest_dir > /dev/null 2>&1"
-          #rm -fR nsb_* $dest_dir > /dev/null 2>&1
-        fi
-        if [ -f Makefile ]; then
-            nsb_make NOAUTODEPS=y distclean
-            nsb_build_rc=$?
-            if [ $nsb_build_rc -ne 0 ]; then
-                nsb_abort "Error during make distclean (rc=$nsb_build_rc)"
-            fi
-        fi
-      fi
-   fi
-
-   if [ "X$dest_dir" != "X" -a ! -d $dest_dir ]; then
-      mkdir -p $dest_dir
-      if [ ! -d $dest_dir ]; then
-         nsb_abort "$dest_dir directory does not exist!"
-      fi
-   fi
-
-   if [ $NSB_SKIP_DIRLINK -eq 1 ]; then
-      nsb_info "Skipping nsb_dir_link"
-   else
-      for d in $NSB_DIRLINK_DIRS; do
-        nsb_dir_link $src_dir/$d $build_dir/$d
-      done
-   fi
-
-   if [ $NSB_SKIP_CONFIG -ne 1 ]; then
-      nsb_info "Configuring... (log is nsb_config.$NSB_DATE)"
-      if [ "x$nsb_config_all_flag" = "x0" ]; then
-          nsb_config_dist $src_dir "$dest_dir"
-      else
-          nsb_config_all $src_dir "$dest_dir"
-      fi
-      nsb_prompt "press enter to continue"
-   fi
-
-   if [ $NSB_SKIP_BUILD -eq 1 ]; then
-      nsb_info "Skipping 'make all'"
-   else
-      nsb_make all
-   fi
-
-   if [ $NSB_SKIP_TEST -eq 1 ]; then
-      nsb_info "Skipping 'make test'"
-   else
-      nsb_prompt "No errors found, press enter to run tests"
-      SNMP_TMPDIR_BASE=$build_dir/tests
-      export SNMP_TMPDIR_BASE
-      nsb_make test
-   fi
-
-   if [ $NSB_SKIP_INSTALL -eq 1 ]; then
-      nsb_info "Skipping 'make install'"
-   else
-      nsb_prompt "No errors found, press enter to install"
-      # DESTDIR makes sure the perl stuff goes into $dest_dir, too
-      nsb_make install DESTDIR="$dest_dir" $NSB_EXTRA_INSTALL
-   fi
-
-   return 0
-}
diff --git a/dist/nsb-nightly b/dist/nsb-nightly
deleted file mode 100755
index 3298a26..0000000
--- a/dist/nsb-nightly
+++ /dev/null
@@ -1,188 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-# Author: Robert Story <rstory at freesnmp.com>
-#
-########################################################################
-########################################################################
-
-usage()
-{
-   echo "Usage: $0  [optional params] VERSION"
-   echo ""
-   echo " optional params: [-x] [-s SRCD] [-b BUILDD] [-i INSTALLD]"
-   echo "                  [-h host] [-p path]"
-   echo " VERSION    : release number (eg 5.2.2)"
-   echo " -s SRCDIR  : soure directory [$HOME/src/net-snmp-VERSION]"
-   echo " -b BUILDD  : build directory [$HOME/build/]"
-   echo "              NOTE-platform will be appended to build directory"
-   echo " -i INSTALLD: install directory [$HOME/build/\$PLATFORM/usr]"
-   echo ""
-   echo " -x : configure extra features for pre-release testing"
-   echo " -C : don't source $HOME/.snmp/nsb-nightly"
-   echo ""
-   echo " -f : from address for email results"
-   echo " -e : address to email error results to"
-   echo " -o : address to email success results to"
-   echo " -h : host to upload results to"
-   echo " -p : path to upload results to"
-   exit 1
-}
-
-#set -x
-
-# make getopts work on Tru64 by respawning in Posix mode
-if [ "`uname`" = "OSF1" -a "$BIN_SH" != "xpg4" ]; then
-    BIN_SH=xpg4
-    export BIN_SH
-    exec $0 $*
-fi
-
-#
-# find nsb-platform based on the path to this script
-#
-EXE_PATH=`dirname $0`
-if [ ! -f $EXE_PATH/nsb-functions ];then
-   if [ -f $HOME/bin/nsb-functions ]; then
-      EXE_PATH=$HOME/bin
-   elif [ -f nsb-functions ];then
-      EXE_PATH=$PWD
-   else
-      echo "Cannot find nsb-functions in $EXE_PATH, $HOME/bin or $PWD"
-      exit 1
-   fi
-fi
-
-if [ "x$1" = "x-C" ]; then
-    shift
-else
-    if [ -f $HOME/.snmp/nsb-nightly ];then
-        . $HOME/.snmp/nsb-nightly
-    fi
-fi
-
-########################################################################
-########################################################################
-
-# -r : remove build dir before
-# -R : remove build dir after
-PARMS="$PARMS -r"
-NIGHTLY_VERBOSE=0
-NSB_ERR_RESULTS_TO=""
-NSB_OK_RESULTS_TO=""
-
-while getopts b:e:f:i:o:s:xh:p:v opt
-do
-    case "$opt" in
-      b)  NSB_BUILD_DIR=$OPTARG;;
-      e)  NSB_ERR_RESULTS_TO=$OPTARG;;
-      f)  NSB_FROM=$OPTARG;;
-      o)  NSB_OK_RESULTS_TO=$OPTARG;;
-      i)  PARMS="-i $OPTARG $PARMS";;
-      s)  NSB_SRC_DIR=$OPTARG;;
-      h)  NSB_SCP_HOST=$OPTARG
-          PARMS="-h $NSB_SCP_HOST $PARMS"
-          ;;
-      p)  NSB_SCP_DEST=$OPTARG
-          PARMS="-p $NSB_SCP_DEST $PARMS"
-          ;;
-      x)  PARMS="-x $PARMS";;
-      v)  NIGHTLY_VERBOSE=1;;
-      \?)# unknown flag
-        usage;;
-    esac
-done
-shift `expr $OPTIND - 1`
-
-if [ $# -ne 1 ]; then
-   echo "expecting 1 argument, got $# ($@)"
-   usage
-fi
-
-NSB_VERSION=$1
-
-. $EXE_PATH/nsb-functions
-
-nsb_default_paths
-
-PARMS="$PARMS -b $NSB_BUILD_DIR -s $NSB_SRC_DIR"
-
-########################################################################
-########################################################################
-echo "Start: `date`"
-echo "Running nsb-package $PARMS $NSB_VERSION"
-if [ $NIGHTLY_VERBOSE = 1 ]; then
-    $EXE_PATH/nsb-package $PARMS $NSB_VERSION
-else
-    $EXE_PATH/nsb-package $PARMS $NSB_VERSION > /dev/null
-fi
-RC=$?
-echo "Finish: `date`"
-cd $NSB_BUILD_DIR
-case $RC in
-    0)  RESULT="Success"
-        NSB_RESULTS_TO=$NSB_OK_RESULTS_TO
-        FILES=""
-        ;;
-    *) RESULT="Error (rc $RC)"
-       NSB_RESULTS_TO=$NSB_ERR_RESULTS_TO
-       FILES=`ls nsb-make-*-errs.* 2>/dev/null`
-       if [ "x$NSB_SCP_HOST" != "x" ]; then
-          nsb_upload $NSB_BUILD_DIR $NSB_SCP_HOST:$NSB_SCP_DEST/$NSB_VERSION/$NSB_SUFFIX
-       fi
-        ;;
-esac
-echo "Result: $RESULT"
-
-if [ "x$NSB_RESULTS_TO" != "x" ]; then
-   SUBJECT="$NSB_VERSION $RESULT on $NSB_HOST ($NSB_PLATFORM)"
-   echo "Sending mail to $NSB_RESULTS_TO: $SUBJECT"
-   case `uname -s` in
-      OpenBSD|FreeBSD) # mail doesn't allow setting From
-         # seems to be in /usr/sbin, which isn't in all paths
-	 PATH=/usr/sbin/:$PATH
-         echo "From: $NSB_FROM" > mail.results
-         echo "To: $NSB_RESULTS_TO" >> mail.results
-         # mail-related errors to OK address (usully buildmaster)
-         echo "Errors-To: $NSB_OK_RESULTS_TO" >> mail.results
-         echo "Subject: $SUBJECT" >> mail.results
-         echo "" >> mail.results
-         grep CONFIGURE_OPTIONS include/net-snmp/net-snmp-config.h|sed 's:/home/[^ ]*/build:$HOME:g' >> mail.results
-         echo "Result: $RESULT" >> mail.results
-         if [ "x$FILES" != "x" ]; then
-            cat $FILES >> mail.results
-         fi
-         sendmail -t < mail.results
-         ;;
-      SunOS) # no sendmail, no mail -s, need -t for To 
-         echo "From: $NSB_FROM" > mail.results
-         # mail-related errors to OK address (usully buildmaster)
-         echo "Errors-To: $NSB_OK_RESULTS_TO" >> mail.results
-         echo "Subject: $SUBJECT" >> mail.results
-         echo "" >> mail.results
-         grep CONFIGURE_OPTIONS include/net-snmp/net-snmp-config.h|sed 's:/home/[^ ]*/build:$HOME:g' >> mail.results
-         echo "Result: $RESULT" >> mail.results
-         if [ "x$FILES" != "x" ]; then
-            cat $FILES >> mail.results
-         fi
-         mail -t $NSB_RESULTS_TO < mail.results
-         ;;
-      *)
-         echo "Result: $RESULT" >> mail.results
-         if [ "x$FILES" != "x" ]; then
-            cat $FILES >> mail.results
-         fi
-         mail -s "$SUBJECT" $NSB_RESULTS_TO < mail.results
-         ;;
-   esac
-fi
-
-if [ $RC -eq 0 ]; then
-        if [ "x$NSB_BUILD_DIR" = "/" ]; then
-            nsb_abort "Not running rm -fR from /"
-        else
-            /bin/rm -fR $NSB_BUILD_DIR > /dev/null 2>&1
-        fi
-fi
-
-exit $RC
diff --git a/dist/nsb-package b/dist/nsb-package
deleted file mode 100755
index f51c150..0000000
--- a/dist/nsb-package
+++ /dev/null
@@ -1,137 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-# Author: Robert Story <rstory at freesnmp.com>
-#
-########################################################################
-########################################################################
-
-usage()
-{
-   echo "Usage: $0  [params] VERSION"
-   echo ""
-   echo "  params: [-c] [-d] [-P] [-s NSB_SRC_DIR] [-b BUILDD] [-i NSB_INSTALL_DIR]"
-   echo "          [-h host] [-p path]"
-   echo ""
-   echo " VERSION    : release number (eg 5.2.2)"
-   echo " -s NSB_SRC_DIR  : source directory [$HOME/src/net-snmp-VERSION]"
-   echo " -b BUILDD  : build directory [$HOME/build/]"
-   echo "              NOTE-platform will be appended to build directory"
-   echo " -i NSB_INSTALL_DIR: install directory [$HOME/build/\$PLATFORM/usr]"
-   echo ""
-   echo " -x : configure extra features for pre-release testing"
-   echo " -c : skip configure"
-   echo " -d : dirty build (don't make distclean)"
-   echo " -m : skip 'make all'"
-   echo " -P : pause at prompts in between stages"
-   echo " -r : remove build dir (rm -fR) before build"
-   echo " -R : remove build dir (rm -fR) after successful build"
-   echo " -t : skip 'make test'"
-   echo " -C : don't source $HOME/.snmp/nsb-package"
-   echo ""
-   echo " -h : host to upload results to"
-   echo " -p : path to upload results to"
-   exit 1
-}
-
-#trap exit SIGINT
-
-#set -x
-
-# make getopts work on Tru64 by respawning in Posix mode
-if [ "`uname`" = "OSF1" -a "$BIN_SH" != "xpg4" ]; then
-    BIN_SH=xpg4
-    export BIN_SH
-    exec $0 $*
-fi
-
-#
-# find nsb-platform based on the path to this script
-#
-EXE_PATH=`dirname $0`
-if [ ! -f $EXE_PATH/nsb-functions ];then
-   if [ -f $HOME/bin/nsb-functions ]; then
-      EXE_PATH=$HOME/bin
-   elif [ -f nsb-functions ];then
-      EXE_PATH=$PWD
-   else
-      echo "Cannot find nsb-functions in $EXE_PATH, $HOME/bin or $PWD"
-      exit 1
-   fi
-fi
-
-if [ "x$1" = "x-C" ]; then
-    shift
-else
-    if [ -f $HOME/.snmp/nsb-package ];then
-        . $HOME/.snmp/nsb-package
-    fi
-fi
-
-########################################################################
-########################################################################
-
-REMOVE_SUCCESS=0
-
-#      x)  x=$OPTARG ;;
-while getopts b:cdh:i:mPp:rRs:tx opt
-do
-    case "$opt" in
-      b)  NSB_BUILD_DIR=$OPTARG ;;
-      c)  NSB_SKIP_CONFIG=1 ;;
-      d)  NSB_CLEAN=0 ;;
-      h)  NSB_SCP_HOST=$OPTARG ;;
-      i)  NSB_INSTALL_DIR=$OPTARG ;;
-      m)  NSB_SKIP_BUILD=1 ;;
-      P)  NSB_PROMPT=1 ;;
-      p)  NSB_SCP_DEST=$OPTARG ;;
-      r)  NSB_CLEAN=2 ;;
-      R)  REMOVE_SUCCESS=1 ;;
-      s)  NSB_SRC_DIR=$OPTARG ;;
-      t)  NSB_SKIP_TEST=1 ;;
-      x)  NSB_CONFIG_ALL=1;;
-      \?)# unknown flag
-        usage;;
-    esac
-done
-shift `expr $OPTIND - 1`
-
-if [ $# -ne 1 ]; then
-   echo "expecting 1 argument, got $# ($@)"
-   usage
-fi
-
-NSB_VERSION=$1
-
-. $EXE_PATH/nsb-functions
-
-nsb_default_paths
-
-if [ $NSB_CLEAN -eq 1 ]; then
-   if [ $NSB_SKIP_CONFIG -eq 1 ]; then
-      echo "A clean build also requires configuration (-d and -c"
-      echo "cannot both be specified)."
-      usage
-   fi
-fi
-
-
-########################################################################
-########################################################################
-nsb_prompt "press enter to build $NSB_SRC_DIR in $NSB_BUILD_DIR, and install in $NSB_INSTALL_DIR"
-nsb_build $NSB_VERSION $NSB_SRC_DIR $NSB_BUILD_DIR $NSB_INSTALL_DIR $NSB_CONFIG_ALL
-rc=$?
-if [ "x$NSB_SCP_HOST" != "x" ]; then
-   nsb_upload $NSB_BUILD_DIR $NSB_SCP_HOST:$NSB_SCP_DEST/$NSB_VERSION/$NSB_HOST/
-fi
-if [ $rc -eq 0 ] && [ $REMOVE_SUCCESS -eq 1 ];then
-    nsb_prompt "press enter to remove $NSB_BUILD_DIR"
-    if [ "x$NSB_BUILD_DIR" = "/" ]; then
-       nsb_abort "Not running rm -fR from /"
-    else
-       /bin/rm -fR $NSB_BUILD_DIR > /dev/null 2>&1
-    fi
-fi
-
-nsb_prompt "press enter to exit with rc $RC"
-exit $rc
diff --git a/dist/nsb-platform b/dist/nsb-platform
deleted file mode 100755
index a7550a3..0000000
--- a/dist/nsb-platform
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-# Author: Robert Story <rstory at freesnmp.com>
-#
-########################################################################
-########################################################################
-
-#
-# find nsb-platform based on the path to this script
-#
-EXE_PATH=`dirname $0`
-if [ -f $EXE_PATH/nsb-functions ];then
-   . $EXE_PATH/nsb-functions
-elif [ -f $HOME/bin/nsb-functions ]; then
-   . $HOME/bin/nsb-functions
-elif [ -f nsb-functions ];then
-   . nsb-functions
-else
-   echo "Cannot find nsb-functions in $EXE_PATH, $HOME/bin or $PWD"
-   exit 1
-fi
-
-########################################################################
-########################################################################
-
-nsb_sysname
diff --git a/dist/patme b/dist/patme
deleted file mode 100755
index 0fd50ee..0000000
--- a/dist/patme
+++ /dev/null
@@ -1,351 +0,0 @@
-#!/usr/bin/perl
-
-use Getopt::GUI::Long;
-use QWizard;
-use QWizard::API;
-use Data::Dumper;
-use Cwd;
-
-use Getopt::Std;
-Getopt::GUI::Long::Configure(qw(display_help no_ignore_case));
-
-use strict;
-
-our %opts =
-(
- 'd' => $ENV{'HOME'} . "/src/snmp/patme/",
- 'b' => 'main,5.6,5.5,5.4,5.3',
- 'p' => '-p0',
-);
-
-# sets the order shown
-our @codetrees = ('main',
-		  '5.6',
-		  '5.5',
-		  '5.4',
-		  '5.3',
-		  '5.2',
-		  '5.1',
-		  '5.0',
-		  'UCD');
-
-our %codetrees = ('5.0' => 'V5-0-patches',
-		  '5.1' => 'V5-1-patches',
-		  '5.2' => 'V5-2-patches',
-		  '5.3' => 'V5-3-patches',
-		  '5.4' => 'V5-4-patches',
-		  '5.5' => 'V5-5-patches',
-		  '5.6' => 'V5-6-patches',
-		  'main' => 'net-snmp',
-		  'UCD' => 'V4-2-patches');
-
-our (@captures, $capfilt, $result, %captures, $capturenum);
-
-GetOptions(\%opts,
-	   ['f|file=s',           'Patch file'],
-	   ['d|base-directory=s', 'Base directory of checkouts'],
-	   ['p|patch-args=s',     'Default patch arguments (-p1)'],
-
-	   ['GUI:separator',   'Patch application specifics;'],
-	   ['b|braches=s',     'Branches to apply to (eg 5.1,5.2,...)'],
-	   ['m|commit-msg=s',  'Default commit message to use'],
-	   ['D|subdir=s',      'Apply patches to a subdirectory'],
-	   ['u|no-update',     'Do not run svn status/update in the directory first.  Only use this if it\'s known clean.'],
-	  );
-
-my %bs;
-if ($opts{'b'}) {
-    map { $bs{$_} = 1; } split(/,\s*/,$opts{'b'}); 
-}
-$opts{'d'} .= "/" if ($opts{'d'} !~ /\/$/);
-
-my $qw = new QWizard();
-my $pris = load_primaries();
-$qw->{'primaries'} = $pris;
-
-$qw->qwparam('svncommit',$opts{'m'}) if ($opts{'m'});
-
-$qw->magic('top');
-
-sub make_tops {
-    my @tops;
-    foreach my $k (@codetrees) {
-	push @tops, 
-	  qw_checkbox($k, "Apply to $k", 1, 0, 
-		      default => $qw->qwparam($k) || $bs{$k},
-		      override => 1);
-    }
-    return @tops;
-}
-
-sub load_primaries {
-    my @tops = make_tops();
-    return
-      {
-       top =>
-       qw_primary('top','Select packages to apply the patch to:', '', 
-		  [@tops,
-		  qw_text('basedir', 'Base code directory:', 
-			  default => $opts{'d'}),
-		  qw_hidden('no_confirm',1),
-		  qw_text('patchfile','Patch file:', default => $opts{f},
-			 check_value => sub { 
-			     return "patch file doesn't exist" if (! -f qwparam('patchfile'))
-			 }),
-		  qw_checkbox('noupdate','Don\'t run svn update/revert first:', 
-			      1, 0, default => $opts{'u'} || 0)],
-		  [],[],sub_modules => ['commit', 'commitmsg', 'maketest',
-					'edit', 'applying', 'check',
-					'patch_info']),
-
-       patch_info =>
-       qw_primary('check','Checking code directory status:', '',
-		  [qw_paragraph('patch pieces:',
-				sub { capture("egrep '^(---|\\+\\+\\+)' " . 
-					      qwparam('patchfile'))},
-				width => 80,
-				height => 30),
-		   qw_text('patchargs','Patch arguments',
-			   default => $opts{'p'}),
-		   qw_text('subdir', 'Apply in package subdir:',
-			   default => $opts{'D'}),
-		   qw_paragraph('Note:','Hitting next below will first clean your local repositories which could take a bit (watch the console for deails on what it\'s doing at any moment)', doif => sub {!qwparam('noupdate')}),
-]),
-
-
-       check =>
-       qw_primary('check','Checking code directory status:', '',
-		  [qw_paragraph('removed .rej files:',
-			       sub { my $it = captureeachdir('find . -name \*.rej');
-				     captureeachdir('find . -name \*.rej | xargs rm -f');
-				     return $it;
-				 },
-				preformatted => 1,
-				width => 80,
-				height => 60,
-			       ),
-		   qw_paragraph('svn update:',
-				sub {
-				    my ($res, $one);
-				    foreach my $k (@codetrees) {
-					next if (!qwparam($k));
-					$res .= "$k:\n";
-					$one = capturedir($codetrees{$k}, 
-							  "svn update");
-					$res .= $one;
-					$one = capturedir($codetrees{$k}, 
-							  "svn revert -R .");
-					$res .= $one;
-				    }
-				    return $res;
-				  },
-				preformatted => 1,
-				width => 80,
-				height => 60,
-				doif => sub{!qwparam('noupdate')}
-			       )		  ],
-		 ),
-
-       applying =>
-       qw_primary("applying", 'Applying patches to the code bases', '',
-		  [{type => 'table',
-		    text => 'Results:',
-		    values => sub {
-			my @tab;
-			foreach my $k (@codetrees) {
-			    next if (!qwparam($k));
-			    push @tab, [$k,
-					qw_paragraph("r$k","", 
-						     preformatted => 1,
-						     width => 80,
-						     height => 20,
-						     values => 
-						     sub { my $cmd = "patch " . qwparam('patchargs') . " < " . qwparam('patchfile');
-							   my $results = "Running on $k: $cmd" . "\n" . capturedir($codetrees{$k},$cmd);
-							   return $results})];
-			}
-			return [\@tab];
-		    }}],[],[]),
-
-       edit =>
-       qw_primary('edit','Fix the following files:','',
-		  [qw_paragraph('Fix these (maybe):',
-			       sub {
-				   $capfilt = '(.*.rej)';
-				   my $res = 
-				     captureeachdir('find . -name \*.rej');
-				   print Dumper(\%captures);
-				   $capfilt = undef;
-				   return $res;
-				 },
-				preformatted => 1,
-				width => 80,
-				height => 60,
-			       ),
-		   qw_label('failed files:',
-			    sub { $capturenum = 0;
-				  map { $capturenum += $#{$captures{$_}} + 1;
-				    } (keys(%captures));
-				  return $capturenum;
-			      }),
-		  qw_checkbox('edithem','Open an editor on the failed files?',
-			      1, 0, doif => sub { return $capturenum > 0 }),
-		  qw_text('editor','Editor:',default => $ENV{'EDITOR'} || 'vi',
-			  doif => sub { return $capturenum > 0 })],
-		  [sub {
-		       if (qwparam('edithem')) {
-			   foreach my $k (keys(%captures)) {
-			       foreach my $f (@{$captures{$k}}) {
-				   my $file = qwparam('basedir') .
-				     $codetrees{$k} .
-				       qwparam('subdir') . '/' . $f->[0];
-				   print STDERR "editing: $file\n";
-				   system(qwparam('editor') . " " . $file);
-			       }
-			   }
-		       }
-		   }]
-		 ),
-
-       maketest =>
-       qw_primary("maketest", "Run make?",'',
-		 [qw_checkbox('makeit','Run make?', 1, 0),
-		  qw_checkbox('maketest', 'Run make test?', 1, 0)
-		 ],
- 		 [sub {
- 		      if (qwparam('makeit') || qwparam('maketest')) {
- 			  $_[0]->add_todos(-early, 'domake');
- 		      }
- 		  }]
-		 ),
-
-       domake =>
-       qw_primary("domake", "Make results",'',
-		  [qw_paragraph('Make results:',
-				sub { return captureeachdir('make'); },
-				preformatted => 1,
-				width => 80,
-				height => 20,
-				doif => sub { qwparam('makeit') }
-			       ),
-		   qw_paragraph('Make test results:',
-				sub { return captureeachdir('make test'); },
-				preformatted => 1,
-				width => 80,
-				height => 20,
-				doif => sub { qwparam('maketest') }
-			       )]
-		  ),
-
-       commitmsg =>
-       qw_primary("commitmsg", 'Commit info:', '',
-		  [qw_text('svncommit','Commit message',
-			   default => qwparam('svncommit') || $opts{'m'}),
-		  {type => 'dynamic',
-		   values => sub { my @tops = make_tops(1); return \@tops}}]),
-
-       commit =>
-       qw_primary("commit", 'running commit:', '',
-		  [qw_paragraph('committing files:',
-			       sub { my $msg = qwparam('svncommit');
-				     $msg =~ s/\'/\'\"\'\"\'/g; # escape 's
-				     return capturedir($opts{'d'},
-						       'svn commit -m \'' . $msg . '\' ' . get_codedirs_str()); },
-				preformatted => 1,
-				width => 80,
-				height => 20,
-			       )]),
-
-       editing =>
-       qw_primary("applying", 'Edit the following files:', '',
-		  [{type => 'table',
-		    text => 'Results:',
-		    values => sub { return [\@captures]},
-		   }],[],[])
-      }
-}
-
-sub capture {
-    my $cmd = join(" ", at _);
-    my $results = "Running: $cmd\n";
-    my @a;
-    print $results;
-    open(I,"$cmd 2>&1|");
-    while (<I>) {
-	$results .= $_;
-	print $_;
-	if ($capfilt) {
-	    print "capfilt: $capfilt\n";
-	    @a = /$capfilt/;
-	    print "  capfilt: @a\n";
-	    push @captures, [@a];
-	}
-    }
-    close(I);
-    $result = $? >> 8;
-    $results .= "RESULT: " . (($result) ? "FAIL" : "SUCCESS") . "($result)\n";
-    return $results;
-}
-
-sub capturedir {
-    my $dir = shift;
-    $dir .= "/" if ($dir !~ /\/$/);
-    my $basedir = qwparam('basedir');
-    $basedir .= "/" if ($basedir !~ /\/$/);
-    my $olddir = getcwd();
-    my $newdir = "$basedir$dir" . qwparam('subdir');
-    my $res = "changing to: $newdir\n";
-    print $res;
-    chdir($newdir);
-    $res .= capture(@_);
-    chdir($olddir);
-    return $res;
-}
-
-sub get_codedirs_str() {
-    my $res = "";
-    foreach my $k (@codetrees) {
-	next if (!qwparam($k));
-	$res .= " $opts{'d'}$codetrees{$k}";
-    }
-    $res =~ s/^ //;
-    return $res;
-}
-
-sub captureeachdir {
-    my $out;
-    %captures = ();
-    foreach my $k (@codetrees) {
-	next if (!qwparam($k));
-	$out .= "$k:\n";
-	$out .= capturedir($codetrees{$k}, @_) . "\n";
-	if ($#captures > -1) {
-	    @{$captures{$k}} = @captures;
-	    @captures = ();
-	}
-    }
-    return $out;
-}
-
-sub dodir {
-    my $text = shift;
-    return
-      [{type => 'table',
-	text => $text,
-	values => [[sub {
-			my @tab;
-			foreach my $k (@codetrees) {
-			    next if (!qwparam($k));
-			    push @tab, [$k,
-					qw_paragraph("r$k","", 
-						     preformatted => 1,
-						     width => 80,
-						     height => 20,
-						     values => 
-						     [[sub { $_->[0]($k)}, 
-						       @_]])];
-			}
-			return [\@tab];
-		    }, @_]]
-       }];
-}
diff --git a/dist/release b/dist/release
deleted file mode 100644
index 6da7b93..0000000
--- a/dist/release
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# Insert lines in this file to prevent the 'rollup' utility from
-# applying patches to a given branch.  Right now, the file should contain
-# a branch name followed by 'rc' when the branch is in rc phase of a release.
-#
-V5-7-patches rc
-V5-7-patches rc
-V5-7-patches rc
diff --git a/dist/run-autoconf b/dist/run-autoconf
deleted file mode 100755
index 2969a59..0000000
--- a/dist/run-autoconf
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-version=`cat dist/autoconf-version`
-prog='autoconf'
-# TODO: accept a different tool (autoheader) from the command line
-
-searchprefixes="/usr/local"
-for path in $searchprefixes ; do
-    if [ -d "$path/autoconf-$version" ]; then
-	prog="$path/autoconf-$version/bin/$prog"
-	break;
-    fi
-done
-
-echo "trying $prog version"
-echo "$prog --version"
-toolversion=`$prog --version | head -1 | awk '{print $NF}'`
-
-echo "Expected: $version"
-echo "Found:    $toolversion"
-
-if [ "$version" != "$toolversion" ] ; then
-    echo "$prog doesn't match the expected version"
-    echo ""
-    echo "If you want this tool to auto-find versions, build the right"
-    echo "autoconf version using --prefix=/usr/local/autoconf-$version"
-    echo "and then re-run this tool ($0) once it's installed"
-    exit 1
-fi
-
-echo "Running $prog"
-autoconf "$@"
diff --git a/dist/schema-snmptrapd.sql b/dist/schema-snmptrapd.sql
deleted file mode 100644
index f496f17..0000000
--- a/dist/schema-snmptrapd.sql
+++ /dev/null
@@ -1,31 +0,0 @@
-USE net_snmp;
-DROP TABLE IF EXISTS notifications;
-CREATE TABLE IF NOT EXISTS `notifications` (
-  `trap_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
-  `date_time` datetime NOT NULL,
-  `host` varchar(255) NOT NULL,
-  `auth` varchar(255) NOT NULL,
-  `type` ENUM('get','getnext','response','set','trap','getbulk','inform','trap2','report') NOT NULL,
-  `version` ENUM('v1','v2c', 'unsupported(v2u)','v3') NOT NULL,
-  `request_id` int(11) unsigned NOT NULL,
-  `snmpTrapOID` varchar(1024) NOT NULL,
-  `transport` varchar(255) NOT NULL,
-  `security_model` ENUM('snmpV1','snmpV2c','USM') NOT NULL,
-  `v3msgid` int(11) unsigned,
-  `v3security_level` ENUM('noAuthNoPriv','authNoPriv','authPriv'),
-  `v3context_name` varchar(32),
-  `v3context_engine` varchar(64),
-  `v3security_name` varchar(32),
-  `v3security_engine` varchar(64),
-  PRIMARY KEY  (`trap_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
-
-DROP TABLE IF EXISTS varbinds;
-CREATE TABLE IF NOT EXISTS `varbinds` (
-  `trap_id` int(11) unsigned NOT NULL default '0',
-  `oid` varchar(1024) NOT NULL,
-  `type` ENUM('boolean','integer','bit','octet','null','oid','ipaddress','counter','unsigned','timeticks','opaque','unused1','counter64','unused2') NOT NULL,
-  `value` blob NOT NULL,
-  KEY `trap_id` (`trap_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1;
diff --git a/dist/svnup b/dist/svnup
deleted file mode 100755
index 40353f0..0000000
--- a/dist/svnup
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/bin/sh
-#
-# $Id: cvsup 15788 2007-01-24 13:49:38Z dts12 $
-#
-TAG=
-WO=0
-DEST=
-TMPDIR=/tmp
-
-if [ "x$1" = "x-u" ]; then
-    DEST=$2
-    shift 2
-
-    # gnu tar (as of 1.15.1) is unable to create portable tar archives, 
-    # especially if long file names (>100 char) are present.
-    # star is a better replacement.
-    if [ -x /usr/bin/star ]; then
-        TAR='/usr/bin/star -Hustar -not -pat=*/.svn/* -c -f'
-    elif [ -x /bin/tar ]; then
-        TAR="/bin/tar --exclude=.svn -c -f"
-        echo "warning: star not available, using (less portable) tar..."
-    else
-        echo "neither /usr/bin/star nor /bin/tar found."
-        exit
-    fi
-fi
-
-if [ $# -eq 0 ]; then
-    DIR=$PWD
-else
-    if [ $# -ne 1 ]; then
-        echo "usage: $0 <working directory>"
-        exit
-    fi
-    DIR=$1
-fi
-
-if [ -z ${DIR##*/} ];then
-   DIR=${DIR%/*}
-fi
-SUBD=${DIR##*/}
-PARENT=${DIR%*$SUBD}
-#echo "$DIR = $PARENT + $SUBD"
-
-if [ ! -d $DIR ]; then
-    echo "no such directory '$DIR'"
-    exit
-fi
-
-if [ ! -d $DIR/.svn ]; then
-    echo "'$DIR' has no .svn directory!"
-    exit
-fi
-
-if [ ! -f $DIR/.svn/entries ]; then
-    echo "'$DIR' has no .svn/entries!"
-    exit
-fi
-
-SVNURL=`svn info $DIR| grep URL|cut -f2 -d " "`
-SVNTLD=`echo $SVNURL | sed 's:.*svnroot/net-snmp/\([^/]*\).*:\1:'`
-if [ "x$SVNTLD" = "xtrunk" ]; then
-   TAG="main"
-else
-   TAG=`echo $SVNURL | sed 's:.*svnroot/net-snmp/[^/]*/\([^/]*\).*:\1:'`
-fi
-
-if [ ! -z $DEST ]; then
-    if [ -z $TAG ]; then
-        echo "no TAG found in $DIR!"
-        exit 1
-    fi
-fi
-
-COMMAND="svn update -q $SVNURL $DIR"
-
-if [ ! -w $DIR/.svn ]; then
-    if [ -O $DIR/.svn ]; then
-        WO=1
-        echo "Making $DIR writable"
-        chmod -R u+w $DIR
-    fi
-fi
-
-echo "Updating directory $DIR from $TAG..."
-echo "$COMMAND"
-
-$COMMAND
-rc=$?
-if [ $rc -ne 0 ]; then
-    echo "svn command returned $?"
-fi
-
-if [ $WO -eq 1 ]; then
-    echo "Making $DIR read-only"
-    chmod -R a-w $DIR
-fi
-
-if [ ! -z $DEST ]; then
-  if [ $rc -ne 0 ]; then
-    echo "skipping upload due to rc $rc from svn command"
-    exit $rc
-  else
-    cd $DIR/..
-    #echo $PWD
-    DATE=`date +%Y%m%d_%H%M`
-    SOURCE=net-snmp-svn-$TAG"_$DATE"
-    $TAR $TMPDIR/$SOURCE.tar $SUBD
-    rc=$?
-    if [ $rc -ne 0 ]; then
-      echo "skipping upload due to rc $rc from tar command"
-      rm -f $TMPDIR/$SOURCE.tar.gz
-      exit $rc
-    fi
-    gzip -f --best $TMPDIR/$SOURCE.tar
-    rc=$?
-    if [ $rc -ne 0 ]; then
-      echo "skipping upload due to rc $rc from gzip command"
-      rm -f $TMPDIR/$SOURCE.tar.gz
-      exit $rc
-    fi
-    scp $TMPDIR/$SOURCE.tar.gz $DEST
-    rc=$?
-    if [ $rc -ne 0 ]; then
-      echo "warning: rc $rc from scp command (tarball in $TMPDIR)"
-    else
-      rm -f $TMPDIR/$SOURCE.tar.gz
-    fi
-  fi
-fi
diff --git a/doxygen.conf b/doxygen.conf
index 20e457d..980c529 100644
--- a/doxygen.conf
+++ b/doxygen.conf
@@ -23,7 +23,7 @@ PROJECT_NAME           = net-snmp
 # This could be handy for archiving the generated documentation or 
 # if some version control system is used.
 
-PROJECT_NUMBER         = $(VERSION)
+PROJECT_NUMBER         = 5.4.3.pre1
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
 # base path where the generated documentation will be put. 
@@ -280,7 +280,7 @@ WARNINGS               = YES
 # for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
 # automatically be disabled.
 
-WARN_IF_UNDOCUMENTED   = NO
+WARN_IF_UNDOCUMENTED   = YES
 
 # The WARN_FORMAT tag determines the format of the warning messages that 
 # doxygen can produce. The string should contain the $file, $line, and $text 
@@ -585,7 +585,7 @@ RTF_EXTENSIONS_FILE    =
 # If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
 # generate man pages
 
-GENERATE_MAN           = NO
+GENERATE_MAN           = YES
 
 # 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 ec930fe..69151a8 100644
--- a/include/net-snmp/agent/agent_handler.h
+++ b/include/net-snmp/agent/agent_handler.h
@@ -61,17 +61,6 @@ typedef struct netsnmp_mib_handler_s {
                                           struct
                                           netsnmp_agent_request_info_s *,
                                           struct netsnmp_request_info_s *);
-        /** data clone hook for myvoid
-         *  deep copy the myvoid member - default is to copy the pointer
-         *  This method is only called if myvoid != NULL
-         *  myvoid is the current myvoid pointer.
-         *  returns NULL on failure
-         */
-        void *(*data_clone)(void *myvoid);
-        /** data free hook for myvoid
-         *  delete the myvoid member - default is to do nothing
-         *  This method is only called if myvoid != NULL
-         */
         void (*data_free)(void *myvoid); /**< data free hook for myvoid */
 
         struct netsnmp_mib_handler_s *next;
@@ -218,13 +207,12 @@ typedef int (Netsnmp_Node_Handler) (netsnmp_mib_handler *handler,
     netsnmp_handler_registration *
     netsnmp_handler_registration_create(const char *name,
                                         netsnmp_mib_handler *handler,
-                                        const oid * reg_oid, size_t reg_oid_len,
+                                        oid * reg_oid, size_t reg_oid_len,
                                         int modes);
     netsnmp_handler_registration *
     netsnmp_create_handler_registration(const char *name, Netsnmp_Node_Handler*
-                                        handler_access_method,
-                                        const oid *reg_oid, size_t reg_oid_len,
-                                        int modes);
+                                        handler_access_method, oid *reg_oid,
+                                        size_t reg_oid_len, int modes);
 
     netsnmp_delegated_cache
         *netsnmp_create_delegated_cache(netsnmp_mib_handler *,
@@ -243,8 +231,6 @@ typedef int (Netsnmp_Node_Handler) (netsnmp_mib_handler *handler,
     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 e6b3540..e9af89d 100644
--- a/include/net-snmp/agent/agent_read_config.h
+++ b/include/net-snmp/agent/agent_read_config.h
@@ -11,17 +11,12 @@ extern          "C" {
 
     void            init_agent_read_config(const char *);
     void            update_config(void);
-    void            snmpd_register_config_handler(const char *token,
+    void            snmpd_register_config_handler(const char *,
                                                   void (*parser) (const
                                                                   char *,
                                                                   char *),
                                                   void (*releaser) (void),
-                                                  const char *help);
-    void            snmpd_register_const_config_handler(
-                                 const char *,
-                                 void (*parser) (const char *, const char *),
-                                 void (*releaser) (void),
-                                 const char *);
+                                                  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 6a907bf..e9e2845 100644
--- a/include/net-snmp/agent/agent_registry.h
+++ b/include/net-snmp/agent/agent_registry.h
@@ -35,20 +35,18 @@ struct view_parameters {
 };
 
 struct register_parameters {
-    oid                          *name;
-    size_t                        namelen;
-    int                           priority;
-    int                           range_subid;
-    oid                           range_ubound;
-    int                           timeout;
-    u_char                        flags;
-    const char                   *contextName;
-    netsnmp_session              *session;
-    netsnmp_handler_registration *reginfo;
+    oid            *name;
+    size_t          namelen;
+    int             priority;
+    int             range_subid;
+    oid             range_ubound;
+    int             timeout;
+    u_char          flags;
+    const char     *contextName;
 };
 
 typedef struct subtree_context_cache_s {
-    const char				*context_name;
+    char				*context_name;
     struct netsnmp_subtree_s		*first_subtree;
     struct subtree_context_cache_s	*next;
 } subtree_context_cache;
@@ -59,21 +57,18 @@ void             setup_tree		  (void);
 void             shutdown_tree    (void);
 
 
-netsnmp_subtree *netsnmp_subtree_find	  (const oid *, size_t,
-					   netsnmp_subtree *,
+netsnmp_subtree *netsnmp_subtree_find	  (oid *, size_t, netsnmp_subtree *,
 					   const char *context_name);
 
-netsnmp_subtree *netsnmp_subtree_find_next(const oid *, size_t,
-					   netsnmp_subtree *,
+netsnmp_subtree *netsnmp_subtree_find_next(oid *, size_t, netsnmp_subtree *,
 					   const char *context_name);
 
-netsnmp_subtree *netsnmp_subtree_find_prev(const oid *, size_t,
-					   netsnmp_subtree *,
+netsnmp_subtree *netsnmp_subtree_find_prev(oid *, size_t,netsnmp_subtree *,
 					   const char *context_name);
 
 netsnmp_subtree *netsnmp_subtree_find_first(const char *context_name);
 
-netsnmp_session *get_session_for_oid	   (const oid *, size_t, 
+netsnmp_session *get_session_for_oid	   (oid *, size_t, 
 					    const char *context_name);
 
 subtree_context_cache *get_top_context_cache(void);
@@ -90,26 +85,24 @@ int netsnmp_get_lookup_cache_size(void);
 #define DEFAULT_MIB_PRIORITY		127
 
 int             register_mib		   (const char *, struct variable *,
-					    size_t, size_t, const oid *,
-					    size_t);
+					    size_t, size_t, oid *, size_t);
 
 int             register_mib_priority	   (const char *, struct variable *,
-					    size_t, size_t, const oid *, size_t,
+					    size_t, size_t, oid *, size_t,
 					    int);
 
 int             register_mib_range	   (const char *, struct variable *,
-					    size_t, size_t, const oid *,
-					    size_t, int, int, oid,
-					    netsnmp_session *);
+					    size_t, size_t, oid *, size_t, 
+					    int, int, oid, netsnmp_session *);
 
 int		register_mib_context	   (const char *, struct variable *,
-					    size_t, size_t, const oid *, size_t,
+					    size_t, size_t, oid *, size_t,
 					    int, int, oid, netsnmp_session *,
 					    const char *, int, int);
 
 int	netsnmp_register_mib_table_row	   (const char *, struct variable *,
-					    size_t, size_t, oid *,
-					    size_t, int, int, netsnmp_session *,
+					    size_t, size_t, oid *, size_t, 
+					    int, int, netsnmp_session *,
 					    const char *, int, int);
 
 int		unregister_mib		   (oid *, size_t);
diff --git a/include/net-snmp/agent/agent_sysORTable.h b/include/net-snmp/agent/agent_sysORTable.h
deleted file mode 100644
index 5626e4a..0000000
--- a/include/net-snmp/agent/agent_sysORTable.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef AGENT_SYSORTABLE_H
-#define AGENT_SYSORTABLE_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-struct sysORTable;
-
-extern void     init_agent_sysORTable(void);
-extern void     shutdown_agent_sysORTable(void);
-
-extern void     netsnmp_sysORTable_foreach(void (*)(const struct sysORTable*,
-                                                    void*),
-                                           void*);
-
-extern int      register_sysORTable(oid *, size_t, const char *);
-extern int      unregister_sysORTable(oid *, size_t);
-extern int      register_sysORTable_sess(oid *, size_t, const char *,
-                                         netsnmp_session *);
-extern int      unregister_sysORTable_sess(oid *, size_t, netsnmp_session *);
-extern void     unregister_sysORTable_by_session(netsnmp_session *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* AGENT_SYSORTABLE_H */
diff --git a/include/net-snmp/agent/agent_trap.h b/include/net-snmp/agent/agent_trap.h
index 26e2223..ebc2b06 100644
--- a/include/net-snmp/agent/agent_trap.h
+++ b/include/net-snmp/agent/agent_trap.h
@@ -14,20 +14,16 @@ void            init_traps(void);
 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, 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,
-                                            const char *context);
 void            send_enterprise_trap_vars(int trap, int specific,
-                                          const oid * enterprise,
+                                          oid * enterprise,
                                           int enterprise_length,
                                           netsnmp_variable_list * vars);
 int             netsnmp_send_traps(int trap, int specific,
-                          const oid * enterprise, int enterprise_length,
+                          oid * enterprise, int enterprise_length,
                           netsnmp_variable_list * vars,
-                          /* flags are currently unused */
-                          const char * context, int flags);
+                          /* These next two are currently unused */
+                          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 d0d5c22..27e580e 100644
--- a/include/net-snmp/agent/all_helpers.h
+++ b/include/net-snmp/agent/all_helpers.h
@@ -32,7 +32,6 @@ extern          "C" {
 #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/auto_nlist.h b/include/net-snmp/agent/auto_nlist.h
index 21b6b8c..c7cd872 100644
--- a/include/net-snmp/agent/auto_nlist.h
+++ b/include/net-snmp/agent/auto_nlist.h
@@ -12,9 +12,9 @@ extern          "C" {
 #endif
 
 #ifdef NETSNMP_CAN_USE_NLIST
-int             auto_nlist(const char *, char *, size_t);
+int             auto_nlist(const char *, char *, int);
 long            auto_nlist_value(const char *);
-int             KNLookup(struct nlist *, int, char *, size_t);
+int             KNLookup(struct nlist *, int, char *, int);
 #else
 int             auto_nlist_noop(void);
 #	define auto_nlist(x,y,z) auto_nlist_noop()
diff --git a/include/net-snmp/agent/baby_steps.h b/include/net-snmp/agent/baby_steps.h
index d256550..5287770 100644
--- a/include/net-snmp/agent/baby_steps.h
+++ b/include/net-snmp/agent/baby_steps.h
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * $Id: baby_steps.h 11068 2004-09-14 02:29:16Z rstory $
  */
 #ifndef BABY_STEPS_H
 #define BABY_STEPS_H
@@ -16,7 +16,6 @@ extern          "C" {
 #define BABY_STEP_NONE                  0
 #define BABY_STEP_PRE_REQUEST           (0x1 <<  1)
 #define BABY_STEP_OBJECT_LOOKUP         (0x1 <<  2)
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 #define BABY_STEP_CHECK_VALUE           (0x1 <<  3)
 #define BABY_STEP_ROW_CREATE            (0x1 <<  4)
 #define BABY_STEP_UNDO_SETUP            (0x1 <<  5)
@@ -27,17 +26,14 @@ extern          "C" {
 #define BABY_STEP_UNDO_COMMIT           (0x1 << 10)
 #define BABY_STEP_IRREVERSIBLE_COMMIT   (0x1 << 11)
 #define BABY_STEP_UNDO_CLEANUP          (0x1 << 12)
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 #define BABY_STEP_POST_REQUEST          (0x1 << 13)
 
 #define BABY_STEP_ALL                   (0xffffffff)
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 #define BABY_STEP_CHECK_OBJECT          BABY_STEP_CHECK_VALUE
 #define BABY_STEP_SET_VALUES            BABY_STEP_SET_VALUE
 #define BABY_STEP_UNDO_SETS             BABY_STEP_UNDO_SET
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 /** @name baby_steps
  *
@@ -47,8 +43,6 @@ extern          "C" {
  *  @{ */
 
     typedef struct netsnmp_baby_steps_modes_s {
-       /** Number of handlers whose myvoid pointer points at this object. */
-       int         refcnt;
        u_int       registered;
        u_int       completed;
     } netsnmp_baby_steps_modes;
@@ -80,7 +74,6 @@ typedef struct netsnmp_baby_steps_access_methods_s {
    Netsnmp_Node_Handler *pre_request;
    Netsnmp_Node_Handler *object_lookup;
    Netsnmp_Node_Handler *get_values;
-#ifndef NETSNMP_NO_WRITE_SUPPORT
    Netsnmp_Node_Handler *object_syntax_checks;
    Netsnmp_Node_Handler *row_creation;
    Netsnmp_Node_Handler *undo_setup;
@@ -91,7 +84,6 @@ typedef struct netsnmp_baby_steps_access_methods_s {
    Netsnmp_Node_Handler *undo_cleanup;
    Netsnmp_Node_Handler *undo_commit;
    Netsnmp_Node_Handler *irreversible_commit;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
    Netsnmp_Node_Handler *post_request;
 
    void                 *my_access_void;
diff --git a/include/net-snmp/agent/cache_handler.h b/include/net-snmp/agent/cache_handler.h
index 1e4751c..e5ac653 100644
--- a/include/net-snmp/agent/cache_handler.h
+++ b/include/net-snmp/agent/cache_handler.h
@@ -1,13 +1,3 @@
-/* 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.
- */
 #ifndef NETSNMP_CACHE_HANDLER_H
 #define NETSNMP_CACHE_HANDLER_H
 
@@ -32,8 +22,6 @@ extern          "C" {
     typedef void (NetsnmpCacheFree)(netsnmp_cache *, void*);
 
     struct netsnmp_cache_s {
-	/** Number of handlers whose myvoid member points at this structure. */
-	int      refcnt;
         /*
 	 * For operation of the data caches
 	 */
@@ -42,7 +30,7 @@ extern          "C" {
         int      valid;
         char     expired;
         int      timeout;	/* Length of time the cache is valid (in s) */
-        marker_t timestampM;	/* When the cache was last loaded */
+        marker_t timestamp;	/* When the cache was last loaded */
         u_long   timer_id;      /* periodic timer id */
 
         NetsnmpCacheLoad *load_cache;
@@ -86,7 +74,7 @@ extern          "C" {
     int            netsnmp_is_cache_valid(    netsnmp_agent_request_info *);
     netsnmp_mib_handler *netsnmp_get_cache_handler(int, NetsnmpCacheLoad *,
                                                         NetsnmpCacheFree *,
-                                                        const oid*, int);
+                                                        oid*, int);
     int   netsnmp_register_cache_handler(netsnmp_handler_registration *reginfo,
                                          int, NetsnmpCacheLoad *,
                                               NetsnmpCacheFree *);
@@ -96,15 +84,11 @@ extern          "C" {
     netsnmp_cache *
     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);
-
+                         oid * rootoid, int rootoid_len);
     netsnmp_mib_handler *
     netsnmp_cache_handler_get(netsnmp_cache* cache);
-    void netsnmp_cache_handler_owns_cache(netsnmp_mib_handler *handler);
 
-    netsnmp_cache * netsnmp_cache_find_by_oid(const oid * rootoid,
+    netsnmp_cache * netsnmp_cache_find_by_oid(oid * rootoid,
                                               int rootoid_len);
 
     unsigned int netsnmp_cache_timer_start(netsnmp_cache *cache);
@@ -119,7 +103,6 @@ extern          "C" {
 #define NETSNMP_CACHE_DONT_AUTO_RELEASE                     0x0008
 #define NETSNMP_CACHE_PRELOAD                               0x0010
 #define NETSNMP_CACHE_AUTO_RELOAD                           0x0020
-#define NETSNMP_CACHE_RESET_TIMER_ON_USE                    0x0040
 
 #define NETSNMP_CACHE_HINT_HANDLER_ARGS                     0x1000
 
diff --git a/include/net-snmp/agent/ds_agent.h b/include/net-snmp/agent/ds_agent.h
index f6f639d..aabb792 100644
--- a/include/net-snmp/agent/ds_agent.h
+++ b/include/net-snmp/agent/ds_agent.h
@@ -27,18 +27,10 @@
 #define NETSNMP_DS_AGENT_DONT_LOG_TCPWRAPPERS_CONNECTS 12   /* 1 = disable logging */
 #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 */
-#define NETSNMP_DS_AGENT_REALSTORAGEUNITS 14    /* 1 = use real allocation units in hrStorageTable, 0 = recalculate it to fit 32bits */
 
-   /* 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 */
+/* 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 */
 
 /*
  * strings 
@@ -50,7 +42,6 @@
 #define NETSNMP_DS_AGENT_PERL_INIT_FILE    4    /* used by embedded perl */
 #define NETSNMP_DS_SMUX_SOCKET    5     /* ip:port socket addr */
 #define NETSNMP_DS_NOTIF_LOG_CTX  6     /* "" | "snmptrapd" */
-#define NETSNMP_DS_AGENT_TRAP_ADDR      7     /* used as v1 trap agent address */
 
 /*
  * integers 
diff --git a/include/net-snmp/agent/hardware/cpu.h b/include/net-snmp/agent/hardware/cpu.h
index f6e43e5..21ead4d 100644
--- a/include/net-snmp/agent/hardware/cpu.h
+++ b/include/net-snmp/agent/hardware/cpu.h
@@ -3,18 +3,18 @@ extern int cpu_num;
 
                  /* For rolling averages */
 struct netsnmp_cpu_history {
-     unsigned long long user_hist;
-     unsigned long long sys_hist;
-     unsigned long long idle_hist;
-     unsigned long long nice_hist;
-     unsigned long long total_hist;
+     long user_hist;
+     long sys_hist;
+     long idle_hist;
+     long nice_hist;
+     long total_hist;
 
-     unsigned long long ctx_hist;
-     unsigned long long intr_hist;
-     unsigned long long swpi_hist;
-     unsigned long long swpo_hist;
-     unsigned long long pagei_hist;
-     unsigned long long pageo_hist;
+     long ctx_hist;
+     long intr_hist;
+     long swpi_hist;
+     long swpo_hist;
+     long pagei_hist;
+     long pageo_hist;
 };
 
 struct netsnmp_cpu_info_s {
@@ -25,30 +25,27 @@ struct netsnmp_cpu_info_s {
      int  status;
 
                  /* For UCD cpu stats */
-     unsigned long long user_ticks;
-     unsigned long long nice_ticks;
-     unsigned long long sys_ticks;
-     unsigned long long idle_ticks;
-     unsigned long long wait_ticks;
-     unsigned long long kern_ticks;
-     unsigned long long intrpt_ticks;
-     unsigned long long sirq_ticks;
-     unsigned long long steal_ticks;
-     unsigned long long guest_ticks;
-     unsigned long long guestnice_ticks;
+     long user_ticks;
+     long nice_ticks;
+     long sys_ticks;
+     long idle_ticks;
+     long wait_ticks;
+     long kern_ticks;
+     long intrpt_ticks;
+     long sirq_ticks;
 
-     unsigned long long total_ticks;
-     unsigned long long sys2_ticks;  /* For non-atomic system counts */
+     long total_ticks;
+     long sys2_ticks;  /* For non-atomic system counts */
 
                  /* For paging-related UCD stats */
               /* XXX - Do these belong elsewhere ?? */
               /* XXX - Do Not Use - Subject to Change */
-     unsigned long long pageIn;
-     unsigned long long pageOut;
-     unsigned long long swapIn;
-     unsigned long long swapOut;
-     unsigned long long nInterrupts;
-     unsigned long long nCtxSwitches;
+     long pageIn;
+     long pageOut;
+     long swapIn;
+     long swapOut;
+     long nInterrupts;
+     long nCtxSwitches;
 
      struct netsnmp_cpu_history *history;
 
diff --git a/include/net-snmp/agent/hardware/fsys.h b/include/net-snmp/agent/hardware/fsys.h
deleted file mode 100644
index 91e8e17..0000000
--- a/include/net-snmp/agent/hardware/fsys.h
+++ /dev/null
@@ -1,109 +0,0 @@
-typedef struct netsnmp_fsys_info_s netsnmp_fsys_info;
-
-#define _NETSNMP_FS_TYPE_SKIP_BIT   0x2000
-#define _NETSNMP_FS_TYPE_LOCAL      0x1000
-
-   /*
-    * Enumeration from HOST-RESOURCES-TYPES mib
-    */
-#define NETSNMP_FS_TYPE_OTHER	   1
-#define NETSNMP_FS_TYPE_UNKNOWN	   2
-#define NETSNMP_FS_TYPE_BERKELEY   3
-#define NETSNMP_FS_TYPE_SYSV	   4
-#define NETSNMP_FS_TYPE_FAT	   5
-#define NETSNMP_FS_TYPE_HPFS	   6
-#define NETSNMP_FS_TYPE_HFS	   7
-#define NETSNMP_FS_TYPE_MFS	   8
-#define NETSNMP_FS_TYPE_NTFS	   9
-#define NETSNMP_FS_TYPE_VNODE	   10
-#define NETSNMP_FS_TYPE_JFS	   11
-#define NETSNMP_FS_TYPE_ISO9660	   12
-#define NETSNMP_FS_TYPE_ROCKRIDGE  13
-#define NETSNMP_FS_TYPE_NFS	   14
-#define NETSNMP_FS_TYPE_NETWARE	   15
-#define NETSNMP_FS_TYPE_AFS	   16
-#define NETSNMP_FS_TYPE_DFS	   17
-#define NETSNMP_FS_TYPE_APPLESHARE 18
-#define NETSNMP_FS_TYPE_RFS	   19
-#define NETSNMP_FS_TYPE_DGCS	   20
-#define NETSNMP_FS_TYPE_BOOTFS	   21
-#define NETSNMP_FS_TYPE_FAT32	   22
-#define NETSNMP_FS_TYPE_EXT2	   23
-
-   /*
-    * Additional enumerationis - not listed in that MIB
-    */
-#define NETSNMP_FS_TYPE_IGNORE	   1 | _NETSNMP_FS_TYPE_LOCAL | _NETSNMP_FS_TYPE_SKIP_BIT
-
-#define NETSNMP_FS_TYPE_PROC	   2 | _NETSNMP_FS_TYPE_LOCAL | _NETSNMP_FS_TYPE_SKIP_BIT
-
-#define NETSNMP_FS_TYPE_DEVPTS	   3 | _NETSNMP_FS_TYPE_LOCAL | _NETSNMP_FS_TYPE_SKIP_BIT
-#define NETSNMP_FS_TYPE_SYSFS	   4 | _NETSNMP_FS_TYPE_LOCAL | _NETSNMP_FS_TYPE_SKIP_BIT
-#define NETSNMP_FS_TYPE_TMPFS	   5 | _NETSNMP_FS_TYPE_LOCAL
-#define NETSNMP_FS_TYPE_USBFS	   6 | _NETSNMP_FS_TYPE_LOCAL
-
-#define NETSNMP_FS_FLAG_ACTIVE   0x01
-#define NETSNMP_FS_FLAG_REMOTE   0x02
-#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
-
-struct netsnmp_fsys_info_s {
-     netsnmp_index  idx;
-  /* int  idx; */
- 
-     char path[  SNMP_MAXPATH+1];
-     char device[SNMP_MAXPATH+1];
-     int  type;
-
-     unsigned long long size;
-     unsigned long long used;
-     unsigned long long avail;
-     unsigned long long units;
-
-     /* artificially computed values, both 'size_32' and 'units_32' fit INT32 */
-     unsigned long size_32;
-     unsigned long used_32;
-     unsigned long avail_32;
-     unsigned long units_32;
-
-     unsigned long long inums_total;
-     unsigned long long inums_avail;
-
-     int  minspace;
-     int  minpercent;
-
-     long flags;
-
-     netsnmp_fsys_info *next;
-};
-
-
-    /*
-     * Possibly not all needed ??
-     */
-netsnmp_fsys_info *netsnmp_fsys_get_first( void );
-netsnmp_fsys_info *netsnmp_fsys_get_next( netsnmp_fsys_info* );
-netsnmp_fsys_info *netsnmp_fsys_get_byIdx(  int,   int );
-netsnmp_fsys_info *netsnmp_fsys_get_next_byIdx(int,int );
-
-netsnmp_fsys_info *netsnmp_fsys_by_device(  char*, int );
-netsnmp_fsys_info *netsnmp_fsys_by_path(    char*, int );
-
-netsnmp_cache *netsnmp_fsys_get_cache( void );
-int  netsnmp_fsys_load( netsnmp_cache *cache, void *data );
-void netsnmp_fsys_free( netsnmp_cache *cache, void *data );
-
-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* );
-
-void netsnmp_fsys_calculate32( netsnmp_fsys_info *f);
diff --git a/include/net-snmp/agent/hardware/sensors.h b/include/net-snmp/agent/hardware/sensors.h
deleted file mode 100644
index d59eca7..0000000
--- a/include/net-snmp/agent/hardware/sensors.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Hardware Abstraction Layer - Sensors module
- *
- * Public interface
- */
-
-#define NETSNMP_SENSOR_TYPE_OTHER       1
-#define NETSNMP_SENSOR_TYPE_VOLTAGE_AC  3
-#define NETSNMP_SENSOR_TYPE_VOLTAGE_DC  4
-#define NETSNMP_SENSOR_TYPE_CURRENT     5
-#define NETSNMP_SENSOR_TYPE_POWER       6
-#define NETSNMP_SENSOR_TYPE_FREQUENCY   7
-#define NETSNMP_SENSOR_TYPE_TEMPERATURE 8
-#define NETSNMP_SENSOR_TYPE_HUMIDITY    9
-#define NETSNMP_SENSOR_TYPE_RPM        10
-#define NETSNMP_SENSOR_TYPE_VOLUME     11
-#define NETSNMP_SENSOR_TYPE_BOOLEAN    12
-
-
-#define NETSNMP_SENSOR_FLAG_ACTIVE     0x01
-#define NETSNMP_SENSOR_FLAG_NAVAIL     0x02
-#define NETSNMP_SENSOR_FLAG_BROKEN     0x04
-#define NETSNMP_SENSOR_FLAG_DISABLE    0x08
-
-#define NETSNMP_SENSOR_MASK_STATUS     0x06  /* NAVAIL|BROKEN */
-
-
-#define NETSNMP_SENSOR_FIND_CREATE     1   /* or use one of the sensor type values */
-#define NETSNMP_SENSOR_FIND_EXIST      0
-
-typedef struct netsnmp_sensor_info_s netsnmp_sensor_info;
-struct netsnmp_sensor_info_s {
-
-    netsnmp_index  idx;
-    /* int  idx; */
-    char  name[256];
-    
-    int   type;
-    float value;
-    char  descr[256];
-    long  flags;
-};
-
-netsnmp_container   *get_sensor_container( void );
-netsnmp_cache       *get_sensor_cache( void );
-netsnmp_sensor_info *sensor_by_name( const char *, int );
-NetsnmpCacheLoad     netsnmp_sensor_load;
-NetsnmpCacheFree     netsnmp_sensor_free;
diff --git a/include/net-snmp/agent/instance.h b/include/net-snmp/agent/instance.h
index 82f2edd..c765da8 100644
--- a/include/net-snmp/agent/instance.h
+++ b/include/net-snmp/agent/instance.h
@@ -1,5 +1,5 @@
 /*
- * instance.h 
+ * testhandler.h 
  */
 #ifndef NETSNMP_INSTANCE_H
 #define NETSNMP_INSTANCE_H
@@ -20,9 +20,8 @@ extern "C" {
  * * have to check the oid at all.  Just answer.
  */
 
-int
-netsnmp_register_instance(netsnmp_handler_registration * reginfo);
-
+int             netsnmp_register_instance(netsnmp_handler_registration
+                                          *reginfo);
 int            
 netsnmp_register_read_only_instance(netsnmp_handler_registration *reginfo);
 
@@ -30,112 +29,124 @@ netsnmp_register_read_only_instance(netsnmp_handler_registration *reginfo);
 
 netsnmp_mib_handler *netsnmp_get_instance_handler(void);
 
-int
-netsnmp_register_read_only_ulong_instance(const char * name,
-                                          const oid * reg_oid,
-                                          size_t reg_oid_len,
-                                          u_long * it,
-                                          Netsnmp_Node_Handler * subhandler);
-int
-netsnmp_register_ulong_instance(const char * name,
-                                const oid * reg_oid,
-                                size_t reg_oid_len,
-                                u_long * it,
-                                Netsnmp_Node_Handler * subhandler);
-int
-netsnmp_register_read_only_counter32_instance(const char *name,
-                                              const oid * reg_oid,
-                                              size_t reg_oid_len,
-                                              u_long * it,
-                                              Netsnmp_Node_Handler *subhandler);
-int
-netsnmp_register_read_only_long_instance(const char *name,
-                                         const oid * reg_oid,
-                                         size_t reg_oid_len,
-                                         long *it,
-                                         Netsnmp_Node_Handler * subhandler);
-int
-netsnmp_register_long_instance(const char *name,
-                               const oid * reg_oid,
-                               size_t reg_oid_len,
-                               long *it,
-                               Netsnmp_Node_Handler * subhandler);
-
-int
-netsnmp_register_read_only_int_instance(const char *name,
-                                        const oid * reg_oid,
-                                        size_t reg_oid_len, int *it,
-                                        Netsnmp_Node_Handler * subhandler);
-
-int
-netsnmp_register_int_instance(const char *name,
-                              const oid * reg_oid,
-                              size_t reg_oid_len, int *it,
-                              Netsnmp_Node_Handler * subhandler);
+int             netsnmp_register_read_only_ulong_instance(const char *name,
+                                                          oid * reg_oid,
+                                                          size_t
+                                                          reg_oid_len,
+                                                          u_long * it,
+                                                          Netsnmp_Node_Handler
+                                                          * subhandler);
+int             netsnmp_register_ulong_instance(const char *name,
+                                                oid * reg_oid,
+                                                size_t reg_oid_len,
+                                                u_long * it,
+                                                Netsnmp_Node_Handler *
+                                                subhandler);
+int             netsnmp_register_read_only_counter32_instance(const char
+                                                              *name,
+                                                              oid *
+                                                              reg_oid,
+                                                              size_t
+                                                              reg_oid_len,
+                                                              u_long * it,
+                                                              Netsnmp_Node_Handler
+                                                              *
+                                                              subhandler);
+int             netsnmp_register_read_only_long_instance(const char *name,
+                                                         oid * reg_oid,
+                                                         size_t
+                                                         reg_oid_len,
+                                                         long *it,
+                                                         Netsnmp_Node_Handler
+                                                         * subhandler);
+int             netsnmp_register_long_instance(const char *name,
+                                               oid * reg_oid,
+                                               size_t reg_oid_len,
+                                               long *it,
+                                               Netsnmp_Node_Handler *
+                                               subhandler);
+
+int             netsnmp_register_read_only_int_instance(const char *name,
+                                              oid * reg_oid,
+                                              size_t reg_oid_len, int *it,
+                                              Netsnmp_Node_Handler *
+                                              subhandler);
+
+int             netsnmp_register_int_instance(const char *name,
+                                              oid * reg_oid,
+                                              size_t reg_oid_len, int *it,
+                                              Netsnmp_Node_Handler *
+                                              subhandler);
 
 /* identical functions that register a in a particular context */
-int
-netsnmp_register_read_only_ulong_instance_context(const char *name,
-                                                  const oid * reg_oid,
-                                                  size_t reg_oid_len,
-                                                  u_long * it,
-                                                  Netsnmp_Node_Handler
-                                                  * subhandler,
-                                                  const char *contextName);
-int
-netsnmp_register_ulong_instance_context(const char *name,
-                                        const oid * reg_oid,
-                                        size_t reg_oid_len,
-                                        u_long * it,
-                                        Netsnmp_Node_Handler * subhandler,
-                                        const char *contextName);
-int
-netsnmp_register_read_only_counter32_instance_context(const char *name,
-                                                      const oid * reg_oid,
-                                                      size_t reg_oid_len,
-                                                      u_long * it,
+int  netsnmp_register_read_only_ulong_instance_context(const char *name,
+                                                       oid * reg_oid,
+                                                       size_t
+                                                       reg_oid_len,
+                                                       u_long * it,
+                                                       Netsnmp_Node_Handler
+                                                       * subhandler,
+                                                       const char *contextName);
+int  netsnmp_register_ulong_instance_context(const char *name,
+                                             oid * reg_oid,
+                                             size_t reg_oid_len,
+                                             u_long * it,
+                                             Netsnmp_Node_Handler *
+                                             subhandler,
+                                             const char *contextName);
+int  netsnmp_register_read_only_counter32_instance_context(const char
+                                                           *name,
+                                                           oid *
+                                                           reg_oid,
+                                                           size_t
+                                                           reg_oid_len,
+                                                           u_long * it,
+                                                           Netsnmp_Node_Handler
+                                                           *
+                                                           subhandler,
+                                                           const char *contextName);
+int  netsnmp_register_read_only_long_instance_context(const char *name,
+                                                      oid * reg_oid,
+                                                      size_t
+                                                      reg_oid_len,
+                                                      long *it,
                                                       Netsnmp_Node_Handler
                                                       * subhandler,
                                                       const char *contextName);
-int
-netsnmp_register_read_only_long_instance_context(const char *name,
-                                                 const oid * reg_oid,
-                                                 size_t reg_oid_len,
-                                                 long *it,
-                                                 Netsnmp_Node_Handler
-                                                 * subhandler,
-                                                 const char *contextName);
-int
-netsnmp_register_long_instance_context(const char *name,
-                                       const oid * reg_oid,
-                                       size_t reg_oid_len,
-                                       long *it,
-                                       Netsnmp_Node_Handler * subhandler,
-                                       const char *contextName);
-
-int
-netsnmp_register_read_only_int_instance_context(const char *name,
-                                                const oid * reg_oid,
-                                                size_t reg_oid_len, int *it,
-                                                Netsnmp_Node_Handler *
-                                                subhandler,
-                                                const char *contextName);
-
-int
-netsnmp_register_int_instance_context(const char *name,
-                                      const oid * reg_oid,
-                                      size_t reg_oid_len, int *it,
-                                      Netsnmp_Node_Handler * subhandler,
-                                      const char *contextName);
-
-int
-netsnmp_register_num_file_instance(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);
+int  netsnmp_register_long_instance_context(const char *name,
+                                            oid * reg_oid,
+                                            size_t reg_oid_len,
+                                            long *it,
+                                            Netsnmp_Node_Handler *
+                                            subhandler,
+                                            const char *contextName);
+
+int  netsnmp_register_read_only_int_instance_context(const char *name,
+                                                     oid * reg_oid,
+                                                     size_t reg_oid_len, int *it,
+                                                     Netsnmp_Node_Handler *
+                                                     subhandler,
+                                                     const char *contextName);
+
+int  netsnmp_register_int_instance_context(const char *name,
+                                           oid * reg_oid,
+                                           size_t reg_oid_len, int *it,
+                                           Netsnmp_Node_Handler *
+                                           subhandler,
+                                           const char *contextName);
+
+int  netsnmp_register_num_file_instance(const char *name,
+                                        oid * reg_oid, size_t reg_oid_len,
+                                        char *file_name, int asn_type, int mode,
+                                        Netsnmp_Node_Handler * subhandler,
+                                        const char *contextName);
 
 Netsnmp_Node_Handler netsnmp_instance_helper_handler;
+Netsnmp_Node_Handler netsnmp_instance_ulong_handler;
+Netsnmp_Node_Handler netsnmp_instance_long_handler;
+Netsnmp_Node_Handler netsnmp_instance_int_handler;
+Netsnmp_Node_Handler netsnmp_instance_uint_handler;
+Netsnmp_Node_Handler netsnmp_instance_counter32_handler;
 Netsnmp_Node_Handler netsnmp_instance_num_file_handler;
 
 #ifdef __cplusplus
diff --git a/include/net-snmp/agent/mfd.h b/include/net-snmp/agent/mfd.h
index 15d0d91..8394884 100644
--- a/include/net-snmp/agent/mfd.h
+++ b/include/net-snmp/agent/mfd.h
@@ -1,7 +1,7 @@
 /*
  * MIBs For Dummies header
  *
- * $Id$
+ * $Id: mfd.h 12707 2005-08-30 00:47:11Z rstory $
  */
 #ifndef NETSNMP_MFD_H
 #define NETSNMP_MFD_H
diff --git a/include/net-snmp/agent/object_monitor.h b/include/net-snmp/agent/object_monitor.h
index 8ac3eca..71af070 100644
--- a/include/net-snmp/agent/object_monitor.h
+++ b/include/net-snmp/agent/object_monitor.h
@@ -3,7 +3,7 @@
  *
  * Contributed by: Robert Story <rstory at freesnmp.com>
  *
- * $Id$
+ * $Id: object_monitor.h 14169 2006-01-25 16:28:12Z dts12 $
  *
  * functions and data structures for cooperating code to monitor objects.
  *
diff --git a/include/net-snmp/agent/old_api.h b/include/net-snmp/agent/old_api.h
index 1ae171c..06ec449 100644
--- a/include/net-snmp/agent/old_api.h
+++ b/include/net-snmp/agent/old_api.h
@@ -28,7 +28,7 @@ int             netsnmp_register_old_api(const char *moduleName,
                                          struct variable *var,
                                          size_t varsize,
                                          size_t numvars,
-                                         const oid * mibloc,
+                                         oid * mibloc,
                                          size_t mibloclen,
                                          int priority,
                                          int range_subid,
diff --git a/include/net-snmp/agent/snmp_agent.h b/include/net-snmp/agent/snmp_agent.h
index aad8837..45ca62b 100644
--- a/include/net-snmp/agent/snmp_agent.h
+++ b/include/net-snmp/agent/snmp_agent.h
@@ -118,15 +118,9 @@ extern          "C" {
 #define MODE_GETNEXT          SNMP_MSG_GETNEXT
 #define MODE_GETBULK          SNMP_MSG_GETBULK
 #define MODE_GET_STASH        SNMP_MSG_INTERNAL_GET_STASH
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 #define MODE_IS_GET(x)        ((x >= 128) && (x != -1)  && (x != SNMP_MSG_SET))
-#else /* NETSNMP_NO_WRITE_SUPPORT */
-#define MODE_IS_GET(x)        ((x >= 128) && (x != -1))
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
     /* #define MODE_IS_GET(x)        ((x == SNMP_MSG_GET) || (x == SNMP_MSG_GETNEXT) || (x == SNMP_MSG_GETBULK) || (x == SNMP_MSG_INTERNAL_GET_STASH)) */
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 #define MODE_SET_BEGIN        SNMP_MSG_INTERNAL_SET_BEGIN
 #define MODE_SET_RESERVE1     SNMP_MSG_INTERNAL_SET_RESERVE1
 #define MODE_SET_RESERVE2     SNMP_MSG_INTERNAL_SET_RESERVE2
@@ -136,13 +130,11 @@ extern          "C" {
 #define MODE_SET_UNDO         SNMP_MSG_INTERNAL_SET_UNDO
 #define MODE_IS_SET(x)         ((x < 128) || (x == -1) || (x == SNMP_MSG_SET))
     /* #define MODE_IS_SET(x)         (!MODE_IS_GET(x)) */
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 #define MODE_BSTEP_PRE_REQUEST   SNMP_MSG_INTERNAL_PRE_REQUEST
 #define MODE_BSTEP_POST_REQUEST  SNMP_MSG_INTERNAL_POST_REQUEST
 
 #define MODE_BSTEP_OBJECT_LOOKUP       SNMP_MSG_INTERNAL_OBJECT_LOOKUP
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 #define MODE_BSTEP_CHECK_VALUE         SNMP_MSG_INTERNAL_CHECK_VALUE
 #define MODE_BSTEP_ROW_CREATE          SNMP_MSG_INTERNAL_ROW_CREATE
 #define MODE_BSTEP_UNDO_SETUP          SNMP_MSG_INTERNAL_UNDO_SETUP
@@ -153,7 +145,7 @@ extern          "C" {
 #define MODE_BSTEP_UNDO_COMMIT         SNMP_MSG_INTERNAL_UNDO_COMMIT
 #define MODE_BSTEP_IRREVERSIBLE_COMMIT SNMP_MSG_INTERNAL_IRREVERSIBLE_COMMIT
 #define MODE_BSTEP_UNDO_CLEANUP        SNMP_MSG_INTERNAL_UNDO_CLEANUP
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
+
 
 /** @typedef struct netsnmp_agent_request_info_s netsnmp_agent_request_info
  * Typedefs the netsnmp_agent_request_info_s struct into
@@ -270,11 +262,7 @@ extern          "C" {
 
     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/include/net-snmp/agent/snmp_get_statistic.h b/include/net-snmp/agent/snmp_get_statistic.h
deleted file mode 100644
index cc5d486..0000000
--- a/include/net-snmp/agent/snmp_get_statistic.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef SNMP_GET_STATISTIC_H
-#define SNMP_GET_STATISTIC_H
-
-/** Registers a scalar group with statistics from @ref snmp_get_statistic.
- *  as reginfo.[start, start + end - begin].
- *  @param reginfo registration to register the items under
- *  @param start offset to the begin item
- *  @param begin first snmp_get_statistic key to return
- *  @param end last snmp_get_statistic key to return
- */
-int
-netsnmp_register_statistic_handler(netsnmp_handler_registration *reginfo,
-                                   oid start, int begin, int end);
-
-#define NETSNMP_REGISTER_STATISTIC_HANDLER(reginfo, start, stat)        \
-  netsnmp_register_statistic_handler(reginfo, start,                    \
-                                     STAT_ ## stat ## _STATS_START,     \
-                                     STAT_ ## stat ## _STATS_END)
-
-#endif
diff --git a/include/net-snmp/agent/snmp_vars.h b/include/net-snmp/agent/snmp_vars.h
index 5ca2ffc..d280a9a 100644
--- a/include/net-snmp/agent/snmp_vars.h
+++ b/include/net-snmp/agent/snmp_vars.h
@@ -45,23 +45,6 @@ PERFORMANCE OF THIS SOFTWARE.
 
     struct variable;
 
-    /**
-     * Duplicates a variable.
-     *
-     * @return Pointer to the duplicate variable upon success; NULL upon
-     *   failure.
-     *
-     * @see struct variable
-     * @see struct variable1
-     * @see struct variable2
-     * @see struct variable3
-     * @see struct variable4
-     * @see struct variable7
-     * @see struct variable8
-     * @see struct variable13
-     */
-    struct variable *netsnmp_duplicate_variable(struct variable *var);
-
     /*
      * Function pointer called by the master agent for writes. 
      */
diff --git a/include/net-snmp/agent/stash_cache.h b/include/net-snmp/agent/stash_cache.h
index 3709a27..cfa85ef 100644
--- a/include/net-snmp/agent/stash_cache.h
+++ b/include/net-snmp/agent/stash_cache.h
@@ -20,7 +20,6 @@ typedef struct netsnmp_stash_cache_data_s {
 } netsnmp_stash_cache_data;
 
 /* function prototypes */
-void netsnmp_init_stash_cache_helper(void);
 netsnmp_mib_handler *netsnmp_get_bare_stash_cache_handler(void);
 netsnmp_mib_handler *netsnmp_get_stash_cache_handler(void);
 netsnmp_mib_handler *netsnmp_get_timed_bare_stash_cache_handler(int timeout,
diff --git a/include/net-snmp/agent/sysORTable.h b/include/net-snmp/agent/sysORTable.h
deleted file mode 100644
index bfebad2..0000000
--- a/include/net-snmp/agent/sysORTable.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef NETSNMP_SYSORTABLE_H
-#define NETSNMP_SYSORTABLE_H
-
-struct sysORTable {
-    char            *OR_descr;
-    oid             *OR_oid;
-    size_t           OR_oidlen;
-    netsnmp_session *OR_sess;
-    u_long           OR_uptime;
-};
-
-struct register_sysOR_parameters {
-    char            *descr;
-    oid             *name;
-    size_t           namelen;
-};
-
-#define SYS_ORTABLE_REGISTERED_OK              0
-#define SYS_ORTABLE_REGISTRATION_FAILED       -1
-#define SYS_ORTABLE_UNREGISTERED_OK            0
-#define SYS_ORTABLE_NO_SUCH_REGISTRATION      -1
-
-#include <net-snmp/agent/agent_callbacks.h>
-
-#define REGISTER_SYSOR_TABLE(theoid, len, descr)           \
-  do {                                                     \
-    struct sysORTable t;                                   \
-    t.OR_descr = NETSNMP_REMOVE_CONST(char *, descr);      \
-    t.OR_oid = theoid;                                     \
-    t.OR_oidlen = len;                                     \
-    t.OR_sess = NULL;                                      \
-    t.OR_uptime = 0;                                       \
-    snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,         \
-                        SNMPD_CALLBACK_REQ_REG_SYSOR, &t); \
-  } while(0);
-
-#define REGISTER_SYSOR_ENTRY(theoid, descr)                     \
-  REGISTER_SYSOR_TABLE(theoid, sizeof(theoid) / sizeof(oid),    \
-                       descr)
-
-#define UNREGISTER_SYSOR_TABLE(theoid, len)                     \
-  do {                                                          \
-    struct sysORTable t;                                        \
-    t.OR_descr = NULL;                                          \
-    t.OR_oid = theoid;                                          \
-    t.OR_oidlen = len;                                          \
-    t.OR_sess = NULL;                                           \
-    t.OR_uptime = 0;                                            \
-    snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,              \
-                        SNMPD_CALLBACK_REQ_UNREG_SYSOR, &t);    \
-  } while(0);
-
-#define UNREGISTER_SYSOR_ENTRY(theoid)                          \
-  UNREGISTER_SYSOR_TABLE(theoid, sizeof(theoid) / sizeof(oid))
-
-#define UNREGISTER_SYSOR_SESS(sess)                             \
-  snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,                \
-                      SNMPD_CALLBACK_REQ_UNREG_SYSOR_SESS,      \
-                      sess);
-
-
-#endif /* NETSNMP_SYSORTABLE_H */
diff --git a/include/net-snmp/agent/table.h b/include/net-snmp/agent/table.h
index 79e588c..3b8bbc2 100644
--- a/include/net-snmp/agent/table.h
+++ b/include/net-snmp/agent/table.h
@@ -9,12 +9,6 @@
  * distributed with the Net-SNMP package.
  */
 /*
- * 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.
- */
-/*
  * @file table.h
  *
  * @addtogroup table
@@ -121,14 +115,15 @@ extern          "C" {
     netsnmp_mib_handler
         *netsnmp_get_table_handler(netsnmp_table_registration_info
                                    *tabreq);
-    void  netsnmp_handler_owns_table_info(netsnmp_mib_handler *handler);
-    void  netsnmp_registration_owns_table_info(netsnmp_handler_registration *reg);
-    int   netsnmp_register_table(  netsnmp_handler_registration    *reginfo,
-                                   netsnmp_table_registration_info *tabreq);
-    int   netsnmp_unregister_table(netsnmp_handler_registration    *reginfo);
-    int   netsnmp_table_build_oid( netsnmp_handler_registration    *reginfo,
-                                   netsnmp_request_info            *reqinfo,
-                                   netsnmp_table_request_info   *table_info);
+    int             netsnmp_register_table(netsnmp_handler_registration
+                                           *reginfo,
+                                           netsnmp_table_registration_info
+                                           *tabreq);
+    int             netsnmp_table_build_oid(netsnmp_handler_registration
+                                            *reginfo,
+                                            netsnmp_request_info *reqinfo,
+                                            netsnmp_table_request_info
+                                            *table_info);
     int            
         netsnmp_table_build_oid_from_index(netsnmp_handler_registration
                                            *reginfo,
@@ -152,10 +147,6 @@ extern          "C" {
     netsnmp_table_registration_info
         *netsnmp_find_table_registration_info(netsnmp_handler_registration
                                               *reginfo);
-    netsnmp_table_registration_info *
-        netsnmp_table_registration_info_clone(netsnmp_table_registration_info *tri);
-    void netsnmp_table_registration_info_free(netsnmp_table_registration_info *);
-
     netsnmp_index * netsnmp_table_index_find_next_row(netsnmp_container *c,
                                                       netsnmp_table_request_info *tblreq);
 
@@ -167,9 +158,13 @@ extern          "C" {
 
 #define netsnmp_table_helper_add_index(tinfo, type) snmp_varlist_add_variable(&tinfo->indexes, NULL, 0, (u_char)type, NULL, 0);
 
+#if HAVE_STDARG_H
     void           
         netsnmp_table_helper_add_indexes(netsnmp_table_registration_info
                                          *tinfo, ...);
+#else
+    void            netsnmp_table_helper_add_indexes(va_alist);
+#endif
 
     int netsnmp_check_getnext_reply(netsnmp_request_info *request,
                                     oid * prefix, size_t prefix_len,
diff --git a/include/net-snmp/agent/table_array.h b/include/net-snmp/agent/table_array.h
index afe0717..3d5a5ab 100644
--- a/include/net-snmp/agent/table_array.h
+++ b/include/net-snmp/agent/table_array.h
@@ -1,6 +1,6 @@
 /*
  * table_array.h
- * $Id$
+ * $Id: table_array.h 12757 2005-09-12 15:24:16Z dts12 $
  */
 #ifndef _TABLE_ARRAY_HANDLER_H_
 #define _TABLE_ARRAY_HANDLER_H_
diff --git a/include/net-snmp/agent/table_container.h b/include/net-snmp/agent/table_container.h
index b342110..7fa07e1 100644
--- a/include/net-snmp/agent/table_container.h
+++ b/include/net-snmp/agent/table_container.h
@@ -1,6 +1,6 @@
 /*
  * table_container.h
- * $Id$
+ * $Id: table_container.h 13071 2005-10-17 11:36:06Z dts12 $
  */
 #ifndef _TABLE_CONTAINER_HANDLER_H_
 #define _TABLE_CONTAINER_HANDLER_H_
@@ -52,8 +52,6 @@ extern          "C" {
                                      netsnmp_table_registration_info *tabreq,
                                      netsnmp_container *container,
                                      char key_type);
-    int            
-    netsnmp_container_table_unregister(netsnmp_handler_registration *reginfo);
     
     /** retrieve the container used by the table_container helper */
     netsnmp_container*
@@ -89,8 +87,6 @@ extern          "C" {
 
     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_data.h b/include/net-snmp/agent/table_data.h
index f64475e..ee9386b 100644
--- a/include/net-snmp/agent/table_data.h
+++ b/include/net-snmp/agent/table_data.h
@@ -58,7 +58,6 @@ extern          "C" {
                                                      netsnmp_table_row  *row);
     void   *netsnmp_table_data_remove_and_delete_row(netsnmp_table_data *table,
                                                      netsnmp_table_row  *row);
-    void    netsnmp_table_data_delete_table( netsnmp_table_data *table );
 
 /* =================================
  * Table Data API: MIB maintenance
diff --git a/include/net-snmp/agent/table_dataset.h b/include/net-snmp/agent/table_dataset.h
index 66e3b3c..b7dda47 100644
--- a/include/net-snmp/agent/table_dataset.h
+++ b/include/net-snmp/agent/table_dataset.h
@@ -95,7 +95,6 @@ extern          "C" {
         netsnmp_table_dataset_remove_and_delete_row(netsnmp_table_data_set
                                                     *table,
                                                     netsnmp_table_row *row);
-    void netsnmp_delete_table_data_set(netsnmp_table_data_set *table_set);
 
 /* ============================
  * DataSet API: Default row operations
@@ -113,8 +112,12 @@ extern          "C" {
                                           unsigned int, int, int,
                                           void  *default_value,
                                           size_t default_value_len);
+#if HAVE_STDARG_H
     void netsnmp_table_set_multi_add_default_row(netsnmp_table_data_set *,
                                                 ...);
+#else
+    void netsnmp_table_set_multi_add_default_row(va_alist);
+#endif
 
 
 /* ============================
@@ -132,16 +135,6 @@ extern          "C" {
     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);
 
 
 /* ============================
@@ -150,8 +143,6 @@ extern          "C" {
 
     void netsnmp_register_auto_data_table(netsnmp_table_data_set *table_set,
                                           char *registration_name);
-    void netsnmp_unregister_auto_data_table(netsnmp_table_data_set *table_set,
-					    char *registration_name);
     void netsnmp_config_parse_table_set(const char *token, char *line);
     void netsnmp_config_parse_add_row(  const char *token, char *line);
 
@@ -176,7 +167,7 @@ extern          "C" {
     int  netsnmp_mark_row_column_writable(  netsnmp_table_row *row,
                                             int column, int writable);
     int  netsnmp_set_row_column(            netsnmp_table_row *,
-                                            unsigned int, int, const void *,
+                                            unsigned int, int, const char *,
                                             size_t);
 
 /* ============================
@@ -185,7 +176,11 @@ extern          "C" {
 
     void netsnmp_table_dataset_add_index(netsnmp_table_data_set
                                                     *table, u_char type);
+#if HAVE_STDARG_H
     void netsnmp_table_set_add_indexes(netsnmp_table_data_set *tset, ...);
+#else
+    void netsnmp_table_helper_add_indexes(va_alist);
+#endif
 
 #ifdef __cplusplus
 }
diff --git a/include/net-snmp/agent/table_iterator.h b/include/net-snmp/agent/table_iterator.h
index c71dd4e..8cdb1e7 100644
--- a/include/net-snmp/agent/table_iterator.h
+++ b/include/net-snmp/agent/table_iterator.h
@@ -51,9 +51,6 @@ extern          "C" {
        The netsnmp_iterator_info typedef can be used instead of directly calling this struct if you would prefer.
      */
     typedef struct netsnmp_iterator_info_s {
-       /** Number of handlers that own this data structure. */
-       int refcnt;
-
        /** Responsible for: returning the first set of "index" data, a
            loop-context pointer, and optionally a data context
            pointer */
@@ -97,7 +94,6 @@ extern          "C" {
         void           *myvoid;
         int             flags;
 #define NETSNMP_ITERATOR_FLAG_SORTED	0x01
-#define NETSNMP_HANDLER_OWNS_IINFO	0x02
 
        /** A pointer to the netsnmp_table_registration_info object
            this iterator is registered along with. */
@@ -120,11 +116,11 @@ extern          "C" {
  * Iterator API: MIB maintenance
  * ============================ */
 
-    void   netsnmp_handler_owns_iterator_info(netsnmp_mib_handler *h);
     netsnmp_mib_handler
           *netsnmp_get_table_iterator_handler(netsnmp_iterator_info *iinfo);
-    int netsnmp_register_table_iterator(netsnmp_handler_registration *reginfo,
-                                        netsnmp_iterator_info *iinfo);
+    int    netsnmp_register_table_iterator(   netsnmp_handler_registration
+                                                                    *reginfo,
+                                              netsnmp_iterator_info *iinfo);
     void  netsnmp_iterator_delete_table(netsnmp_iterator_info *iinfo);
 
     void *netsnmp_extract_iterator_context(netsnmp_request_info *);
@@ -132,10 +128,6 @@ extern          "C" {
 
     Netsnmp_Node_Handler netsnmp_table_iterator_helper_handler;
 
-#define netsnmp_register_table_iterator2(reginfo, iinfo)        \
-    (((iinfo)->flags |= NETSNMP_HANDLER_OWNS_IINFO),           \
-        netsnmp_register_table_iterator((reginfo), (iinfo)))
-
 
 /* ============================
  * Iterator API: Row operations
diff --git a/include/net-snmp/agent/table_tdata.h b/include/net-snmp/agent/table_tdata.h
index b0a1689..242b159 100644
--- a/include/net-snmp/agent/table_tdata.h
+++ b/include/net-snmp/agent/table_tdata.h
@@ -21,7 +21,6 @@ extern          "C" {
 #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
@@ -84,10 +83,9 @@ typedef  struct netsnmp_tdata_s     netsnmp_table_data2;
 
     netsnmp_mib_handler *netsnmp_get_tdata_handler(netsnmp_tdata *table);
 
-    int netsnmp_tdata_register(  netsnmp_handler_registration    *reginfo,
-                                 netsnmp_tdata                   *table,
-                                 netsnmp_table_registration_info *table_info);
-    int netsnmp_tdata_unregister(netsnmp_handler_registration    *reginfo);
+    int netsnmp_tdata_register(netsnmp_handler_registration *reginfo,
+                               netsnmp_tdata                *table,
+                               netsnmp_table_registration_info *table_info);
 
     netsnmp_tdata      *netsnmp_tdata_extract_table(    netsnmp_request_info *);
     netsnmp_container  *netsnmp_tdata_extract_container(netsnmp_request_info *);
@@ -95,7 +93,6 @@ typedef  struct netsnmp_tdata_s     netsnmp_table_data2;
     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/agent/watcher.h b/include/net-snmp/agent/watcher.h
index 67104ee..43a19d7 100644
--- a/include/net-snmp/agent/watcher.h
+++ b/include/net-snmp/agent/watcher.h
@@ -8,10 +8,6 @@
 extern "C" {
 #endif
 
-/** @ingroup watcher
- *  @{
- */
-
 /*
  * if handler flag has this bit set, the timestamp will be
  * treated as a pointer to the timestamp. If this bit is
@@ -20,36 +16,8 @@ extern "C" {
  */
 #define NETSNMP_WATCHER_DIRECT MIB_HANDLER_CUSTOM1
 
-/** The size of the watched object is constant.
- *  @hideinitializer
- */
-#define WATCHER_FIXED_SIZE     0x01
-/** 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.
- *  @hideinitializer
- */
-#define WATCHER_MAX_SIZE       0x02
-/** If set then the variable data_size_p points to is supposed to hold the
- *  current size of the watched object and will be updated on writes.
- *  @hideinitializer
- *  @since Net-SNMP 5.5
- */
-#define WATCHER_SIZE_IS_PTR    0x04
-/** 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.
- *  @hideinitializer
- *  @since Net-SNMP 5.5
- */
-#define WATCHER_SIZE_STRLEN    0x08
-/** 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.
- *  @hideinitializer
- *  @since Net-SNMP 5.5.1
- */
-#define WATCHER_SIZE_UNIT_OIDS 0x10
+#define WATCHER_FIXED_SIZE    0x01
+#define WATCHER_MAX_SIZE      0x02
 
 typedef struct netsnmp_watcher_info_s {
     void     *data;
@@ -57,19 +25,12 @@ typedef struct netsnmp_watcher_info_s {
     size_t    max_size;
     u_char    type;
     int       flags;
-    size_t   *data_size_p;
 } netsnmp_watcher_info;
 
-/** @} */
-
 int netsnmp_register_watched_instance( netsnmp_handler_registration *reginfo,
                                        netsnmp_watcher_info         *winfo);
-int netsnmp_register_watched_instance2(netsnmp_handler_registration *reginfo,
-                                       netsnmp_watcher_info         *winfo);
 int netsnmp_register_watched_scalar(   netsnmp_handler_registration *reginfo,
                                        netsnmp_watcher_info         *winfo);
-int netsnmp_register_watched_scalar2(  netsnmp_handler_registration *reginfo,
-                                       netsnmp_watcher_info         *winfo);
 int netsnmp_register_watched_timestamp(netsnmp_handler_registration *reginfo,
                                        marker_t timestamp);
 int netsnmp_watched_timestamp_register(netsnmp_mib_handler *whandler,
@@ -83,56 +44,38 @@ int netsnmp_register_watched_spinlock(netsnmp_handler_registration *reginfo,
  */
 
 int netsnmp_register_ulong_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               u_long * it,
                               Netsnmp_Node_Handler * subhandler);
 int netsnmp_register_read_only_ulong_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               u_long * it,
                               Netsnmp_Node_Handler * subhandler);
 int netsnmp_register_long_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               long * it,
                               Netsnmp_Node_Handler * subhandler);
 int netsnmp_register_read_only_long_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               long * it,
                               Netsnmp_Node_Handler * subhandler);
 int netsnmp_register_int_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               int * it,
                               Netsnmp_Node_Handler * subhandler);
 int netsnmp_register_read_only_int_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               int * it,
                               Netsnmp_Node_Handler * subhandler);
 int netsnmp_register_read_only_counter32_scalar(const char *name,
-                              const oid * reg_oid, size_t reg_oid_len,
+                              oid * reg_oid, size_t reg_oid_len,
                               u_long * it,
                               Netsnmp_Node_Handler * subhandler);
 
 #define WATCHER_HANDLER_NAME "watcher"
 
 netsnmp_mib_handler  *netsnmp_get_watcher_handler(void);
-
-netsnmp_watcher_info *
-netsnmp_init_watcher_info(netsnmp_watcher_info *, void *, size_t, u_char, int);
-
-netsnmp_watcher_info *
-netsnmp_init_watcher_info6(netsnmp_watcher_info *,
-			   void *, size_t, u_char, int, size_t, size_t*);
-
-netsnmp_watcher_info *
-netsnmp_create_watcher_info(void *, size_t, u_char, int);
-
-netsnmp_watcher_info *
-netsnmp_create_watcher_info6(void *, size_t, u_char, int, size_t, size_t*);
-
-netsnmp_watcher_info *
-netsnmp_clone_watcher_info(netsnmp_watcher_info *winfo);
-void
-netsnmp_owns_watcher_info(netsnmp_mib_handler *handler);
-
+netsnmp_watcher_info *netsnmp_create_watcher_info(void *, size_t, u_char, int);
 Netsnmp_Node_Handler  netsnmp_watcher_helper_handler;
 
 netsnmp_mib_handler  *netsnmp_get_watched_timestamp_handler(void);
diff --git a/include/net-snmp/config_api.h b/include/net-snmp/config_api.h
index 048eed9..67cd6a4 100644
--- a/include/net-snmp/config_api.h
+++ b/include/net-snmp/config_api.h
@@ -8,84 +8,14 @@
 
 #include <net-snmp/types.h>
 
-#ifdef __cplusplus
-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);
-
-    NETSNMP_IMPORT
-    struct config_line *register_app_prenetsnmp_mib_handler(
-                                                const char *token,
-                                                void (*parser) (const char *, char *),
-                                                void (*releaser) (void),
-                                                const char *usageLine);
-    NETSNMP_IMPORT
-    void            unregister_app_config_handler(                    const char *token);
-
-    /* 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
-}
-#endif
-
     /*
-     *    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.
-     *
-     *    In due course, these should probably be gathered
-     *  together into a companion 'library/config_api.h' header file.
-     *  [Or some suitable name]
+     *  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.
      *
-     *    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:
+     *  But for the time being, this header file is a placeholder,
+     *  to allow application writers to adopt the new header file names.
      */
 #include <net-snmp/library/snmp_api.h>
 
diff --git a/include/net-snmp/data_access/arp.h b/include/net-snmp/data_access/arp.h
index ba4bb21..e096c65 100644
--- a/include/net-snmp/data_access/arp.h
+++ b/include/net-snmp/data_access/arp.h
@@ -1,7 +1,7 @@
 /*
  * arp data access header
  *
- * $Id$
+ * $Id: arp.h 17892 2009-12-09 14:37:16Z jsafranek $
  */
 #ifndef NETSNMP_ACCESS_ARP_H
 #define NETSNMP_ACCESS_ARP_H
@@ -73,7 +73,6 @@ typedef struct netsnmp_arp_s {
 
    int       flags; /* for net-snmp use */
 
-   unsigned  generation;
    oid       if_index;
 
    u_char    arp_physaddress[NETSNMP_ACCESS_ARP_PHYSADDR_BUF_SIZE];
@@ -84,42 +83,33 @@ typedef struct netsnmp_arp_s {
    u_char    arp_type;           /* inetNetToMediaType 1-5 */
    u_char    arp_state;          /* inetNetToMediaState 1-7 */
 
-   u_long    arp_last_updated;   /* timeticks of last update */
 } netsnmp_arp_entry;
 
-#define NETSNMP_ACCESS_ARP_ENTRY_FLAG_DELETE      0x00000001
 
 /**---------------------------------------------------------------------*/
 /*
  * ACCESS function prototypes
  */
-struct netsnmp_arp_access_s;
-typedef struct netsnmp_arp_access_s netsnmp_arp_access;
-
-typedef void (NetsnmpAccessArpUpdate)(netsnmp_arp_access *, netsnmp_arp_entry*);
-typedef void (NetsnmpAccessArpGC)    (netsnmp_arp_access *);
-
-struct netsnmp_arp_access_s {
-    void *magic;
-    void *arch_magic;
-    int synchronized;
-    unsigned generation;
-    NetsnmpAccessArpUpdate *update_hook;
-    NetsnmpAccessArpGC *gc_hook;
-    char *cache_expired;
-};
-
-netsnmp_arp_access *
-netsnmp_access_arp_create(u_int init_flags,
-                          NetsnmpAccessArpUpdate *update_hook,
-                          NetsnmpAccessArpGC *gc_hook,
-                          int *cache_timeout, int *cache_flags,
-                          char *cache_expired);
-#define NETSNMP_ACCESS_ARP_CREATE_NOFLAGS             0x0000
-
-int netsnmp_access_arp_delete(netsnmp_arp_access *access);
-int netsnmp_access_arp_load(netsnmp_arp_access *access);
-int netsnmp_access_arp_unload(netsnmp_arp_access *access);
+/*
+ * ifcontainer init
+ */
+netsnmp_container * netsnmp_access_arp_container_init(u_int init_flags);
+#define NETSNMP_ACCESS_ARP_INIT_NOFLAGS               0x0000
+
+/*
+ * ifcontainer load and free
+ */
+netsnmp_container*
+netsnmp_access_arp_container_load(netsnmp_container* container,
+                                    u_int load_flags);
+#define NETSNMP_ACCESS_ARP_LOAD_NOFLAGS               0x0000
+
+void netsnmp_access_arp_container_free(netsnmp_container *container,
+                                         u_int free_flags);
+#define NETSNMP_ACCESS_ARP_FREE_NOFLAGS               0x0000
+#define NETSNMP_ACCESS_ARP_FREE_DONT_CLEAR            0x0001
+#define NETSNMP_ACCESS_ARP_FREE_KEEP_CONTAINER        0x0002
+
 
 /*
  * create/free a arp+entry
@@ -129,9 +119,6 @@ netsnmp_access_arp_entry_create(void);
 
 void netsnmp_access_arp_entry_free(netsnmp_arp_entry * entry);
 
-void netsnmp_access_arp_entry_update(netsnmp_arp_entry *entry,
-        netsnmp_arp_entry *new_data);
-
 /*
  * find entry in container
  */
diff --git a/include/net-snmp/data_access/defaultrouter.h b/include/net-snmp/data_access/defaultrouter.h
deleted file mode 100644
index 93ac18f..0000000
--- a/include/net-snmp/data_access/defaultrouter.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * defaultrouter data access header
- *
- * $Id:$
- */
-#ifndef NETSNMP_ACCESS_DEFAULTROUTER_H
-#define NETSNMP_ACCESS_DEFAULTROUTER_H
-
-# ifdef __cplusplus
-extern          "C" {
-#endif
-
-/**---------------------------------------------------------------------*/
-/*
- * structure definitions
- */
-#if defined( NETSNMP_ENABLE_IPV6 )
-#   define NETSNMP_ACCESS_DEFAULTROUTER_BUF_SIZE 16   /* XXX: 20, for ip6z? */
-#else
-#   define NETSNMP_ACCESS_DEFAULTROUTER_BUF_SIZE 4
-#endif
-
-
-/*
- * netsnmp_default_route_entry
- */
-typedef struct netsnmp_defaultrouter_s {
-
-    netsnmp_index oid_index;   /* MUST BE FIRST!! for container use */
-    oid           ns_dr_index; /* arbitrary index */
-
-    int      flags; /* for net-snmp use */
-
-    /*
-     * mib related data
-     */
-    u_char   dr_addresstype;    /* ipDefaultRouterAddressType */
-    char     dr_address[NETSNMP_ACCESS_DEFAULTROUTER_BUF_SIZE]; /* ipDefaultRouterAddress */
-    size_t   dr_address_len;    /* length of ipDefaultRouterAddress */
-    oid      dr_if_index;       /* ipDefaultRouterIfIndex */
-    uint32_t dr_lifetime;       /* ipDefaultRouterLifetime (0-65535) */
-    char     dr_preference;     /* ipDefaultRouterPreference (-2,-1,0,1) */
-
-} netsnmp_defaultrouter_entry;
-
-
-/**---------------------------------------------------------------------*/
-/*
- * ACCESS function prototypes
- */
-/*
- * container init
- */
-netsnmp_container *
-netsnmp_access_defaultrouter_container_init(u_int flags);
-#define NETSNMP_ACCESS_DEFAULTROUTER_INIT_NOFLAGS               0x0000
-#define NETSNMP_ACCESS_DEFAULTROUTER_INIT_ADDL_IDX_BY_ADDR      0x0001
-
-/*
- * container load
- */
-netsnmp_container*
-netsnmp_access_defaultrouter_container_load(netsnmp_container* container,
-                                            u_int load_flags);
-#define NETSNMP_ACCESS_DEFAULTROUTER_LOAD_NOFLAGS               0x0000
-#define NETSNMP_ACCESS_DEFAULTROUTER_LOAD_IPV4_ONLY             0x0001
-#define NETSNMP_ACCESS_DEFAULTROUTER_LOAD_IPV6_ONLY             0x0002
-#define NETSNMP_ACCESS_DEFAULTROUTER_LOAD_ADDL_IDX_BY_ADDR      0x0004
-
-/*
- * container free
- */
-void
-netsnmp_access_defaultrouter_container_free(netsnmp_container *container,
-                                            u_int free_flags);
-#define NETSNMP_ACCESS_DEFAULTROUTER_FREE_NOFLAGS               0x0000
-#define NETSNMP_ACCESS_DEFAULTROUTER_FREE_DONT_CLEAR            0x0001
-#define NETSNMP_ACCESS_DEFAULTROUTER_FREE_KEEP_CONTAINER        0x0002
-
-/*
- * entry create
- */
-netsnmp_defaultrouter_entry *
-netsnmp_access_defaultrouter_entry_create(void);
-
-/*
- * entry load
- */
-int
-netsnmp_access_defaultrouter_entry_load(size_t *num_entries,
-                                        netsnmp_defaultrouter_entry **entries);
-
-/*
- * entry update
- */
-int
-netsnmp_access_defaultrouter_entry_update(netsnmp_defaultrouter_entry *lhs,
-                                          netsnmp_defaultrouter_entry *rhs);
-
-/*
- * entry free
- */
-void
-netsnmp_access_defaultrouter_entry_free(netsnmp_defaultrouter_entry *entry);
-
-
-
-/**---------------------------------------------------------------------*/
-
-# ifdef __cplusplus
-}
-#endif
-
-#endif /* NETSNMP_ACCESS_DEFAULTROUTER_H */
diff --git a/include/net-snmp/data_access/interface.h b/include/net-snmp/data_access/interface.h
index 20013ed..02cdf15 100644
--- a/include/net-snmp/data_access/interface.h
+++ b/include/net-snmp/data_access/interface.h
@@ -1,7 +1,7 @@
 /*
  * interface data access header
  *
- * $Id$
+ * $Id: interface.h 18100 2010-02-05 09:48:46Z jsafranek $
  */
 #ifndef NETSNMP_ACCESS_INTERFACE_H
 #define NETSNMP_ACCESS_INTERFACE_H
@@ -34,20 +34,6 @@ extern          "C" {
 #define NETSNMP_INTERFACE_FLAGS_HAS_V6_REACHABLE        0x00040000
 #define NETSNMP_INTERFACE_FLAGS_HAS_V6_IFID             0x00080000
 #define NETSNMP_INTERFACE_FLAGS_HAS_V6_FORWARDING       0x00100000
-/* Some platforms, e.g.Linux, do not provide standalone counter
- * for incoming unicast packets - they provide counter of all packets
- * + separate counter for the multicast ones.
- * That means the counter of all packets must watched and checked
- * for overflows to reconstruct its 64-bit value (i.e. as usual
- * for counter of unicast packets), and after its expansion to 64-bits,
- * nr.of multicast packets must be substracted to get nr. of unicast
- * packets.
- * This flag marks stats of such platforms. Nr. of all incoming packets,
- * provided by the platform, must be stored in
- * netsnmp_interface_stats.iall and netsnmp_interface_stats.iucast will
- * be automatically calculated later.
- */
-#define NETSNMP_INTERFACE_FLAGS_CALCULATE_UCAST         0x00200000
 
 /*************************************************************
  * constants for enums for the MIB node
@@ -107,11 +93,6 @@ typedef struct netsnmp_interface_stats_s {
      */
    /** input */
     struct counter64 ibytes;
-    /*
-     * nr. of all packets (to calculate iucast, when underlying platform does
-     * not provide it)
-     */
-    struct counter64 iall;
     struct counter64 iucast;
     struct counter64 imcast;
     struct counter64 ibcast;
@@ -198,7 +179,7 @@ typedef struct netsnmp_interface_entry_s {
 typedef struct _conf_if_list {
     const char     *name;
     int             type;
-    uint64_t speed;
+    uint64_t        speed;
     struct _conf_if_list *next;
 } netsnmp_conf_if_list;
 
@@ -292,9 +273,6 @@ Interface_Scan_Init(void);
 int
 Interface_Scan_Next(short *index, char *name, netsnmp_interface_entry **entry,
                     void *dc);
-int
-Interface_Scan_NextInt(int *index, char *name, netsnmp_interface_entry **entry,
-                    void *dc);
 #endif
 
 /**---------------------------------------------------------------------*/
diff --git a/include/net-snmp/data_access/ip_scalars.h b/include/net-snmp/data_access/ip_scalars.h
index f7b2e31..25191fe 100644
--- a/include/net-snmp/data_access/ip_scalars.h
+++ b/include/net-snmp/data_access/ip_scalars.h
@@ -5,10 +5,8 @@
 extern          "C" {
 #endif
 
-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/ipaddress.h b/include/net-snmp/data_access/ipaddress.h
index 75056f2..b751b47 100644
--- a/include/net-snmp/data_access/ipaddress.h
+++ b/include/net-snmp/data_access/ipaddress.h
@@ -1,7 +1,7 @@
 /*
  * ipaddress data access header
  *
- * $Id$
+ * $Id: ipaddress.h 15220 2006-09-15 00:48:50Z tanders $
  */
 #ifndef NETSNMP_ACCESS_IPADDRESS_H
 #define NETSNMP_ACCESS_IPADDRESS_H
@@ -47,10 +47,7 @@ typedef struct netsnmp_ipaddress_s {
    u_char    ia_status;     /* IpAddressStatus (1-7) */
    u_char    ia_origin;     /* IpAddressOrigin (1-6) */
    u_char    ia_storagetype; /* IpAddressStorageType (1-5) */
-   u_char    ia_onlink_flag; /* IpOnlinkFlag */
-   u_char    ia_autonomous_flag; /*IpAutonomousFlag */
-   u_long    ia_prefered_lifetime;/*IpPreferedLifeTime*/
-   u_long    ia_valid_lifetime;/*IpValidLifeTime*/
+
    netsnmp_data_list *arch_data;      /* arch specific data */
 
 } netsnmp_ipaddress_entry;
@@ -145,19 +142,7 @@ int netsnmp_ipaddress_prefix_copy(u_char *dst, u_char *src,
 
 int netsnmp_ipaddress_ipv4_prefix_len(in_addr_t mask);
 
-int netsnmp_ipaddress_flags_copy(u_long *ipAddressPrefixAdvPreferredLifetime,
-                                 u_long *ipAddressPrefixAdvValidLifetime,
-                                 u_long *ipAddressPrefixOnLinkFlag,
-                                 u_long *ipAddressPrefixAutonomousFlag,
-                                 u_long *ia_prefered_lifetime,
-                                 u_long *ia_valid_lifetime,
-                                 u_char *ia_onlink_flag,
-                                 u_char *ia_autonomous_flag);
-
-int netsnmp_ipaddress_prefix_origin_copy(u_long *ipAddressPrefixOrigin,
-                                         u_char ia_origin,
-                                         int flags,
-                                         u_long ipAddressAddrType);
+
 
 /**---------------------------------------------------------------------*/
 
diff --git a/include/net-snmp/data_access/ipstats.h b/include/net-snmp/data_access/ipstats.h
index f782459..0e7aa1e 100644
--- a/include/net-snmp/data_access/ipstats.h
+++ b/include/net-snmp/data_access/ipstats.h
@@ -1,7 +1,7 @@
 /*
  * ipstats data access header
  *
- * $Id$
+ * $Id: ipstats.h 11068 2004-09-14 02:29:16Z rstory $
  */
 #ifndef NETSNMP_ACCESS_IPSTATS_H
 #define NETSNMP_ACCESS_IPSTATS_H
@@ -10,40 +10,6 @@
 extern          "C" {
 #endif
 
-#define IPSYSTEMSTATSTABLE_HCINRECEIVES       1
-#define IPSYSTEMSTATSTABLE_HCINOCTETS         2
-#define IPSYSTEMSTATSTABLE_INHDRERRORS        3
-#define IPSYSTEMSTATSTABLE_HCINNOROUTES       4 
-#define IPSYSTEMSTATSTABLE_INADDRERRORS       5
-#define IPSYSTEMSTATSTABLE_INUNKNOWNPROTOS    6
-#define IPSYSTEMSTATSTABLE_INTRUNCATEDPKTS    7
-#define IPSYSTEMSTATSTABLE_HCINFORWDATAGRAMS  8 
-#define IPSYSTEMSTATSTABLE_REASMREQDS         9
-#define IPSYSTEMSTATSTABLE_REASMOKS           10
-#define IPSYSTEMSTATSTABLE_REASMFAILS         11
-#define IPSYSTEMSTATSTABLE_INDISCARDS         12
-#define IPSYSTEMSTATSTABLE_HCINDELIVERS       13
-#define IPSYSTEMSTATSTABLE_HCOUTREQUESTS      14
-#define IPSYSTEMSTATSTABLE_HCOUTNOROUTES      15
-#define IPSYSTEMSTATSTABLE_HCOUTFORWDATAGRAMS 16
-#define IPSYSTEMSTATSTABLE_HCOUTDISCARDS      17
-#define IPSYSTEMSTATSTABLE_HCOUTFRAGREQDS     18
-#define IPSYSTEMSTATSTABLE_HCOUTFRAGOKS       19
-#define IPSYSTEMSTATSTABLE_HCOUTFRAGFAILS     20
-#define IPSYSTEMSTATSTABLE_HCOUTFRAGCREATES   21
-#define IPSYSTEMSTATSTABLE_HCOUTTRANSMITS     22
-#define IPSYSTEMSTATSTABLE_HCOUTOCTETS        23
-#define IPSYSTEMSTATSTABLE_HCINMCASTPKTS      24
-#define IPSYSTEMSTATSTABLE_HCINMCASTOCTETS    25
-#define IPSYSTEMSTATSTABLE_HCOUTMCASTPKTS     26
-#define IPSYSTEMSTATSTABLE_HCOUTMCASTOCTETS   27
-#define IPSYSTEMSTATSTABLE_HCINBCASTPKTS      28
-#define IPSYSTEMSTATSTABLE_HCOUTBCASTPKTS     29
-#define IPSYSTEMSTATSTABLE_DISCONTINUITYTIME  30
-#define IPSYSTEMSTATSTABLE_REFRESHRATE        31
-    
-#define IPSYSTEMSTATSTABLE_LAST IPSYSTEMSTATSTABLE_REFRESHRATE
-    
 /**---------------------------------------------------------------------*/
 /*
  * structure definitions
@@ -54,42 +20,28 @@ extern          "C" {
  */
 typedef struct netsnmp_ipstats_s {
 
-   /* Columns of ipStatsTable. Some of them are HC for computation of the 
-    * other columns, when underlying OS does not provide them.
-    * Always fill at least 32 bits, the table is periodically polled -> 32 bit
-    * overflow shall be detected and 64 bit value should be computed automatically. */
    U64             HCInReceives;
    U64             HCInOctets;
    u_long          InHdrErrors;
-   U64             HCInNoRoutes; 
+   u_long          InNoRoutes;
    u_long          InAddrErrors;
    u_long          InUnknownProtos;
    u_long          InTruncatedPkts;
-   
-   /* optional, can be computed from HCInNoRoutes and HCOutForwDatagrams */
-   U64             HCInForwDatagrams; 
-   
+   U64             HCInForwDatagrams;
    u_long          ReasmReqds;
    u_long          ReasmOKs;
    u_long          ReasmFails;
    u_long          InDiscards;
    U64             HCInDelivers;
    U64             HCOutRequests;
-   U64             HCOutNoRoutes;
+   u_long          OutNoRoutes;
    U64             HCOutForwDatagrams;
-   U64             HCOutDiscards;
-   
-   /* optional, can be computed from HCOutFragOKs + HCOutFragFails*/
-   U64             HCOutFragReqds;
-   U64             HCOutFragOKs;
-   U64             HCOutFragFails;
-   U64             HCOutFragCreates;
-   
-   /* optional, can be computed from 
-    * HCOutRequests +HCOutForwDatagrams + HCOutFragCreates
-    * - HCOutFragReqds - HCOutNoRoutes  - HCOutDiscards */
+   u_long          OutDiscards;
+   u_long          OutFragReqds;
+   u_long          OutFragOKs;
+   u_long          OutFragFails;
+   u_long          OutFragCreates;
    U64             HCOutTransmits;
-   
    U64             HCOutOctets;
    U64             HCInMcastPkts;
    U64             HCInMcastOctets;
@@ -98,8 +50,6 @@ typedef struct netsnmp_ipstats_s {
    U64             HCInBcastPkts;
    U64             HCOutBcastPkts;
 
-   /* Array of available columns.*/
-   int             columnAvail[IPSYSTEMSTATSTABLE_LAST+1];
 } netsnmp_ipstats;
 
 
diff --git a/include/net-snmp/data_access/route.h b/include/net-snmp/data_access/route.h
index d944d10..e6d964a 100644
--- a/include/net-snmp/data_access/route.h
+++ b/include/net-snmp/data_access/route.h
@@ -1,7 +1,7 @@
 /*
  * route data access header
  *
- * $Id$
+ * $Id: route.h 15220 2006-09-15 00:48:50Z tanders $
  */
 #ifndef NETSNMP_ACCESS_ROUTE_H
 #define NETSNMP_ACCESS_ROUTE_H
@@ -45,7 +45,7 @@ typedef struct netsnmp_route_s {
     * 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  3
+#define NETSNMP_POLICY_OID_MAX_LEN  2
    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/scopezone.h b/include/net-snmp/data_access/scopezone.h
deleted file mode 100644
index de5c8bf..0000000
--- a/include/net-snmp/data_access/scopezone.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * scopezone data access header
- *
- * $Id: scopezone.h 14170 2007-04-29 02:22:12Z varun_c $
- */
-#ifndef NETSNMP_ACCESS_SCOPEZONE_H
-#define NETSNMP_ACCESS_SCOPEZONE_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-
-/**---------------------------------------------------------------------*/
-/*
- * structure definitions
- *
- *
- * NOTE: if you add fields, update code dealing with
- *       them in ipv6scopezone_common.c
- */
-typedef struct netsnmp_v6scopezone_entry_s {
-    netsnmp_index oid_index;
-    oid           ns_scopezone_index;
-    u_int   ns_flags; /* net-snmp flags */
-    oid     index;
-    int     scopezone_linklocal;    
-
-} netsnmp_v6scopezone_entry;
-
-/**---------------------------------------------------------------------*/
-/*
- * ACCESS function prototypes
- */
-
-/*
- * scopezone container init
- */
-netsnmp_container * netsnmp_access_scopezone_container_init(u_int init_flags);
-
-/*
- * scopezone container load and free
- */
-netsnmp_container*
-netsnmp_access_scopezone_container_load(netsnmp_container* container,
-                                        u_int load_flags);
-
-void netsnmp_access_scopezone_container_free(netsnmp_container *container,
-                                             u_int free_flags);
-#define NETSNMP_ACCESS_SCOPEZONE_FREE_NOFLAGS               0x0000
-#define NETSNMP_ACCESS_SCOPEZONE_FREE_DONT_CLEAR            0x0001
-#define NETSNMP_ACCESS_SCOPEZONE_FREE_KEEP_CONTAINER        0x0002
-
-
-/*
- * create/free an scopezone entry
- */
-netsnmp_v6scopezone_entry *
-netsnmp_access_scopezone_entry_create(void);
-
-void netsnmp_access_scopezone_entry_free(netsnmp_v6scopezone_entry * entry);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* NETSNMP_ACCESS_SCOPEZONE_H */
diff --git a/include/net-snmp/data_access/swinst.h b/include/net-snmp/data_access/swinst.h
deleted file mode 100644
index 0e28df1..0000000
--- a/include/net-snmp/data_access/swinst.h
+++ /dev/null
@@ -1,77 +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 (C) 2007 Apple, Inc. All rights reserved.
- * Use is subject to license terms specified in the COPYING file
- * distributed with the Net-SNMP package.
- */
-#ifndef NETSNMP_SWINST_H
-#define NETSNMP_SWINST_H
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-    /*
-     * Data structure for a swinst entry 
-     */
-    typedef struct hrSWInstalledTable_entry {
-        netsnmp_index   oid_index;
-        
-        /*
-         * Index values; MIB type is int32, but we use oid so this
-         * structure can be used directly with a table_container.
-         */
-        oid             swIndex;
-        
-        /*
-         * Column values 
-         */
-        char            swName[64];
-        char            swDate[11];
-#ifdef NETSNMP_HAVE_SWID
-        oid            *swID;
-        u_char          swID_len;
-#endif
-        u_char          swType;
-        u_char          swName_len;
-        u_char          swDate_len;
-    } netsnmp_swinst_entry;
-    
-#define HRSWINSTALLEDTYPE_UNKNOWN  1
-#define HRSWINSTALLEDTYPE_OPERATINGSYSTEM  2
-#define HRSWINSTALLEDTYPE_DEVICEDRIVER  3
-#define HRSWINSTALLEDTYPE_APPLICATION  4
-
-
-#define NETSNMP_SWINST_NOFLAGS            0x00000000
-
-#define NETSNMP_SWINST_ALL_OR_NONE        0x00000001
-#define NETSNMP_SWINST_DONT_FREE_ITEMS    0x00000002
-
-    netsnmp_container *
-    netsnmp_swinst_container_load(netsnmp_container *container, int flags );
-
-    void netsnmp_swinst_container_free(netsnmp_container *container,
-                                       u_int flags);
-    void netsnmp_swinst_container_free_items(netsnmp_container *container);
-
-    void netsnmp_swinst_entry_remove(netsnmp_container * container,
-                                     netsnmp_swinst_entry *entry);
-
-    netsnmp_swinst_entry * netsnmp_swinst_entry_create(int32_t index);
-    void netsnmp_swinst_entry_free(netsnmp_swinst_entry *entry);
-
-    int32_t netsnmp_swinst_add_name(const char *name);
-    int32_t netsnmp_swinst_get_id(const char *name);
-    const char * netsnmp_swinst_get_name(int32_t id);
-
-#ifdef  __cplusplus
-}
-#endif
-
-
-#endif /* NETSNMP_SWINST_H */
diff --git a/include/net-snmp/data_access/swrun.h b/include/net-snmp/data_access/swrun.h
deleted file mode 100644
index 3e15c41..0000000
--- a/include/net-snmp/data_access/swrun.h
+++ /dev/null
@@ -1,104 +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 (C) 2007 Apple, Inc. All rights reserved.
- * Use is subject to license terms specified in the COPYING file
- * distributed with the Net-SNMP package.
- */
-#ifndef NETSNMP_SWRUN_H
-#define NETSNMP_SWRUN_H
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-
-    /*-*****************************************************************
-     *
-     * Data structure for a row entry 
-     */
-    typedef struct hrSWRunTable_entry {
-        netsnmp_index   oid_index;
-        
-        /*
-         * Index values 
-         */
-        oid             hrSWRunIndex;
-        
-        /*
-         * Column values 
-         */
-        char            hrSWRunName[ 64+1];  /* size per MIB + 1 */
-        char            hrSWRunPath[128+1];  /* size per MIB + 1 */
-        char            hrSWRunParameters[128+1]; /* size per MIB + 1 */
-#ifdef NETSNMP_SWRUN_HAVE_ID  /* if not defined, will always use nullOid */
-        oid             hrSWRunID[SNMP_MAXOID];
-        u_char          hrSWRunID_len;
-#endif
-        u_char          hrSWRunName_len;
-        u_char          hrSWRunPath_len;
-        u_char          hrSWRunParameters_len;
-
-        u_char          hrSWRunType;
-        u_char          hrSWRunStatus;
-        u_char          old_hrSWRunStatus;
-
-        /*
-         * Perf values
-         */
-        int32_t         hrSWRunPerfCPU;
-        int32_t         hrSWRunPerfMem;
-        
-    } netsnmp_swrun_entry;
-
-    /*
-     * enums for column hrSWRunType
-     */
-#define HRSWRUNTYPE_UNKNOWN             1
-#define HRSWRUNTYPE_OPERATINGSYSTEM     2
-#define HRSWRUNTYPE_DEVICEDRIVER        3
-#define HRSWRUNTYPE_APPLICATION         4
-
-    /*
-     * enums for column hrSWRunStatus
-     */
-#define HRSWRUNSTATUS_RUNNING           1
-#define HRSWRUNSTATUS_RUNNABLE          2
-#define HRSWRUNSTATUS_NOTRUNNABLE       3
-#define HRSWRUNSTATUS_INVALID           4
-
-    /*-*****************************************************************
-     *
-     * Prototypes
-     */
-    netsnmp_container *
-    netsnmp_swrun_container_load(netsnmp_container *container, u_int flags );
-
-    void netsnmp_swrun_container_free(netsnmp_container *container, u_int flags);
-    void netsnmp_swrun_container_free_items(netsnmp_container * container);
-
-    netsnmp_swrun_entry *
-    netsnmp_swrun_entry_create(int32_t swIndex);
-
-    void netsnmp_swrun_entry_free(netsnmp_swrun_entry *entry);
-
-    int  swrun_count_processes( void );
-    int  swrun_max_processes(   void );
-    int  swrun_count_processes_by_name( char *name );
-
-#define NETSNMP_SWRUN_NOFLAGS            0x00000000
-#define NETSNMP_SWRUN_ALL_OR_NONE        0x00000001
-#define NETSNMP_SWRUN_DONT_FREE_ITEMS    0x00000002
-/*#define NETSNMP_SWRUN_xx                0x00000004 */
-
-#ifdef  __cplusplus
-}
-#endif
-
-
-#endif /* NETSNMP_SWRUN_H */
-
-
diff --git a/include/net-snmp/data_access/systemstats.h b/include/net-snmp/data_access/systemstats.h
index c72dfbb..53dfd51 100644
--- a/include/net-snmp/data_access/systemstats.h
+++ b/include/net-snmp/data_access/systemstats.h
@@ -1,7 +1,7 @@
 /*
  * systemstats data access header
  *
- * $Id$
+ * $Id: systemstats.h 13607 2005-11-16 19:51:15Z rstory $
  */
 #ifndef NETSNMP_ACCESS_SYSTEMSTATS_H
 #define NETSNMP_ACCESS_SYSTEMSTATS_H
@@ -22,11 +22,7 @@ extern          "C" {
 typedef struct netsnmp_systemstats_s {
 
    netsnmp_index oid_index;   /* MUST BE FIRST!! for container use */
-   /* 
-    * Index of the table
-    * First entry = ip version
-    * Second entry = interface index (0 for ipSystemStatsTable */
-   oid           index[2];           
+   oid           ns_ip_version;
 
    int       flags; /* for net-snmp use */
 
@@ -36,11 +32,6 @@ typedef struct netsnmp_systemstats_s {
     */
    netsnmp_ipstats stats;
 
-   /*
-    * for logging
-    */
-   const char* tableName;
-   
    /** old_stats is used in netsnmp_access_interface_entry_update_stats */
    netsnmp_ipstats *old_stats;
 
@@ -54,24 +45,17 @@ typedef struct netsnmp_systemstats_s {
 /*
  * 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
 
-/**
- * Load container. If the NETSNMP_ACCESS_SYSTEMSTATS_LOAD_IFTABLE is set
- * the ipIfSystemStats table is loaded, else ipSystemStatsTable is loaded.
+/*
+ * load and free
  */
 netsnmp_container*
 netsnmp_access_systemstats_container_load(netsnmp_container* container,
                                     u_int load_flags);
 #define NETSNMP_ACCESS_SYSTEMSTATS_LOAD_NOFLAGS               0x0000
-#define NETSNMP_ACCESS_SYSTEMSTATS_LOAD_IFTABLE               0x0001 
 
 void netsnmp_access_systemstats_container_free(netsnmp_container *container,
                                          u_int free_flags);
@@ -84,8 +68,7 @@ void netsnmp_access_systemstats_container_free(netsnmp_container *container,
  * create/free an entry
  */
 netsnmp_systemstats_entry *
-netsnmp_access_systemstats_entry_create(int version, int if_index,
-            const char* tableName);
+netsnmp_access_systemstats_entry_create(int version);
 
 void netsnmp_access_systemstats_entry_free(netsnmp_systemstats_entry * entry);
 
diff --git a/include/net-snmp/data_access/tcpConn.h b/include/net-snmp/data_access/tcpConn.h
index d9ef7b2..1ab8e43 100644
--- a/include/net-snmp/data_access/tcpConn.h
+++ b/include/net-snmp/data_access/tcpConn.h
@@ -1,7 +1,7 @@
 /*
  * tcpConn data access header
  *
- * $Id$
+ * $Id: tcpConn.h 15136 2006-09-01 17:50:29Z rstory $
  */
 #ifndef NETSNMP_ACCESS_TCPCONN_H
 #define NETSNMP_ACCESS_TCPCONN_H
diff --git a/include/net-snmp/data_access/udp_endpoint.h b/include/net-snmp/data_access/udp_endpoint.h
index 36231ee..cc81b02 100644
--- a/include/net-snmp/data_access/udp_endpoint.h
+++ b/include/net-snmp/data_access/udp_endpoint.h
@@ -1,7 +1,7 @@
 /*
  * udp_endpoint data access header
  *
- * $Id$
+ * $Id: udp_endpoint.h 15250 2006-09-19 03:27:05Z hardaker $
  */
 #ifndef NETSNMP_ACCESS_UDP_ENDPOINT_H
 #define NETSNMP_ACCESS_UDP_ENDPOINT_H
@@ -41,7 +41,6 @@ extern          "C" {
         u_short   rmt_port;
 
         u_int     instance;
-        u_int     pid;
    
     } netsnmp_udp_endpoint_entry;
 
diff --git a/include/net-snmp/library/asn1.h b/include/net-snmp/library/asn1.h
index 52ecc3b..f132f3b 100644
--- a/include/net-snmp/library/asn1.h
+++ b/include/net-snmp/library/asn1.h
@@ -1,8 +1,6 @@
 #ifndef ASN1_H
 #define ASN1_H
 
-#include <net-snmp/library/oid.h>
-
 #ifdef __cplusplus
 extern          "C" {
 #endif
@@ -39,6 +37,16 @@ SOFTWARE.
 ******************************************************************/
 
 
+#ifndef MAX_SUBID               /* temporary - duplicate definition protection */
+#ifndef EIGHTBIT_SUBIDS
+    typedef u_long  oid;
+#define MAX_SUBID   0xFFFFFFFF
+#else
+    typedef u_char  oid;
+#define MAX_SUBID   0xFF
+#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 */
@@ -178,56 +186,37 @@ SOFTWARE.
 
 
     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 56cdbae..acd5d40 100644
--- a/include/net-snmp/library/callback.h
+++ b/include/net-snmp/library/callback.h
@@ -27,8 +27,6 @@ extern          "C" {
 #define SNMP_CALLBACK_POST_PREMIB_READ_CONFIG	3
 #define SNMP_CALLBACK_LOGGING			4
 #define SNMP_CALLBACK_SESSION_INIT		5
-#define SNMP_CALLBACK_PRE_READ_CONFIG	        7
-#define SNMP_CALLBACK_PRE_PREMIB_READ_CONFIG	8
 
 
     /*
@@ -51,29 +49,21 @@ extern          "C" {
     /*
      * function prototypes 
      */
-    NETSNMP_IMPORT
     void            init_callbacks(void);
 
-    NETSNMP_IMPORT
     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
deleted file mode 100644
index 34a79dc..0000000
--- a/include/net-snmp/library/cert_util.h
+++ /dev/null
@@ -1,226 +0,0 @@
-#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 1e1615a..4271f76 100644
--- a/include/net-snmp/library/check_varbind.h
+++ b/include/net-snmp/library/check_varbind.h
@@ -18,31 +18,21 @@ extern          "C" {
     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/cmu_compat.h b/include/net-snmp/library/cmu_compat.h
new file mode 100644
index 0000000..5475c6f
--- /dev/null
+++ b/include/net-snmp/library/cmu_compat.h
@@ -0,0 +1,292 @@
+/* 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 � 2003 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms specified in the COPYING file
+ * distributed with the Net-SNMP package.
+ */
+
+/*
+ *  CMU compatability definitions and structures.
+ *
+ *    (since the UCD package split from the CMU one
+ *     about 8 years ago, that's probably enough time
+ *     for people to convert any outstanding code!)
+ */
+
+#ifndef NET_SNMP_CMU_COMPAT_H
+#define NET_SNMP_CMU_COMPAT_H
+
+#ifdef __cplusplus
+extern          "C" {
+#endif
+
+    /*
+     * ============================
+     * *
+     * * Enumerations and definitions
+     * *
+     * * ============================ 
+     */
+#include <net-snmp/definitions.h>
+    /*
+     * From parse.h 
+     */
+#define ACCESS_READONLY		MIB_ACCESS_READONLY
+#define ACCESS_READWRITE	MIB_ACCESS_READWRITE
+#define ACCESS_WRITEONLY	MIB_ACCESS_WRITEONLY
+#define ACCESS_NOACCESS		MIB_ACCESS_NOACCESS
+#define ACCESS_NOTIFY		MIB_ACCESS_NOTIFY
+#define ACCESS_CREATE		MIB_ACCESS_CREATE
+#define STATUS_MANDATORY	MIB_STATUS_MANDATORY
+#define STATUS_OPTIONAL		MIB_STATUS_OPTIONAL
+#define STATUS_OBSOLETE		MIB_STATUS_OBSOLETE
+#define STATUS_DEPRECATED	MIB_STATUS_DEPRECATED
+#define STATUS_CURRENT		MIB_STATUS_CURRENT
+    /*
+     * From smnp_impl.h 
+     */
+#define INTEGER	    ASN_INTEGER
+#define STRING	    ASN_OCTET_STR
+#define OBJID	    ASN_OBJECT_ID
+#define NULLOBJ	    ASN_NULL
+#define BITSTRING   ASN_BIT_STR /* HISTORIC - don't use */
+#define IPADDRESS   ASN_IPADDRESS
+#define COUNTER	    ASN_COUNTER
+#define GAUGE	    ASN_GAUGE
+#define UNSIGNED    ASN_UNSIGNED
+#define TIMETICKS   ASN_TIMETICKS
+#define ASNT_OPAQUE ASN_OPAQUE
+#define NSAP	    ASN_NSAP
+#define COUNTER64   ASN_COUNTER64
+#define UINTEGER    ASN_UINTEGER
+    /*
+     * From snmp.h 
+     */
+#define GET_REQ_MSG	    SNMP_MSG_GET
+#define GETNEXT_REQ_MSG	    SNMP_MSG_GETNEXT
+#define GET_RSP_MSG	    SNMP_MSG_RESPONSE
+#define SET_REQ_MSG	    SNMP_MSG_SET
+#define TRP_REQ_MSG	    SNMP_MSG_TRAP
+#define BULK_REQ_MSG	    SNMP_MSG_GETBULK
+#define INFORM_REQ_MSG	    SNMP_MSG_INFORM
+#define TRP2_REQ_MSG	    SNMP_MSG_TRAP2
+#define REPORT_RSP_MSG	    SNMP_MSG_REPORT
+    /*
+     * since CMU V1.5 
+     */
+#define SNMP_PDU_GET	    SNMP_MSG_GET
+#define SNMP_PDU_GETNEXT    SNMP_MSG_GETNEXT
+#define SNMP_PDU_RESPONSE   SNMP_MSG_RESPONSE
+#define SNMP_PDU_SET        SNMP_MSG_SET
+#define SNMP_PDU_GETBULK    SNMP_MSG_GETBULK
+#define SNMP_PDU_INFORM     SNMP_MSG_INFORM
+#define SNMP_PDU_V2TRAP     SNMP_MSG_TRAP2
+#define SNMP_PDU_REPORT     SNMP_MSG_REPORT
+#define SNMP_TRAP_AUTHENTICATIONFAILURE SNMP_TRAP_AUTHFAIL
+#define SMI_INTEGER     ASN_INTEGER
+#define SMI_STRING      ASN_OCTET_STR
+#define SMI_OBJID       ASN_OBJECT_ID
+#define SMI_NULLOBJ     ASN_NULL
+#define SMI_IPADDRESS   ASN_IPADDRESS
+#define SMI_COUNTER32	ASN_COUNTER
+#define SMI_GAUGE32	ASN_GAUGE
+#define SMI_UNSIGNED32  SMI_GAUGE32
+#define SMI_TIMETICKS   ASN_TIMETICKS
+#define SMI_OPAQUE      ASN_OPAQUE
+#define SMI_COUNTER64   ASN_COUNTER64
+    /*
+     * ============================
+     * *
+     * *     Function declarations
+     * *     and global variables
+     * *
+     * * ============================ 
+     */
+extern int      snmp_dump_packet;       /* from snmp_api.h */
+extern int      quick_print;    /* from snmp_api.h */
+
+#include <net-snmp/types.h>     /* for snmp_pdu & snmp_session */
+
+int             mib_TxtToOid(char *, oid **, size_t *); /* from snmp.h */
+int             mib_OidToTxt(oid *, size_t, char *, size_t);    /* from snmp.h */
+u_char         *cmu_snmp_parse(netsnmp_session * session, netsnmp_pdu *pdu, u_char * data, size_t length);      /* from snmp.h */
+
+
+
+
+        /*
+         * ============================
+         * *
+         * * MIB-II data structures
+         * *    (from mib.h) 
+         * *
+         * * ============================ 
+         */
+
+
+struct mib_system {
+    char            sysDescr[32];       /* textual description */
+    u_char          sysObjectID[16];    /* OBJECT IDENTIFIER of system */
+    u_char          ObjIDLen;   /* length of sysObjectID */
+    u_int           sysUpTime;  /* Uptime in 100/s of a second */
+};
+
+struct mib_interface {
+    int             ifNumber;   /* number of interfaces */
+};
+
+struct mib_ifEntry {
+    int             ifIndex;    /* index of this interface  */
+    char            ifDescr[32];        /* english description of interface */
+    int             ifType;     /* network type of device   */
+    int             ifMtu;      /* size of largest packet in bytes  */
+    u_int           ifSpeed;    /* bandwidth in bits/sec    */
+    u_char          ifPhysAddress[11];  /* interface's address */
+    u_char          PhysAddrLen;        /* length of physAddr */
+    int             ifAdminStatus;      /* desired state of interface */
+    int             ifOperStatus;       /* current operational status */
+    u_int           ifLastChange;       /* value of sysUpTime when current state entered */
+    u_int           ifInOctets; /* number of octets received on interface */
+    u_int           ifInUcastPkts;      /* number of unicast packets delivered */
+    u_int           ifInNUcastPkts;     /* number of broadcasts or multicasts */
+    u_int           ifInDiscards;       /* number of packets discarded with no error */
+    u_int           ifInErrors; /* number of packets containing errors */
+    u_int           ifInUnknownProtos;  /* number of packets with unknown protocol */
+    u_int           ifOutOctets;        /* number of octets transmitted */
+    u_int           ifOutUcastPkts;     /* number of unicast packets sent */
+    u_int           ifOutNUcastPkts;    /* number of broadcast or multicast pkts */
+    u_int           ifOutDiscards;      /* number of packets discarded with no error */
+    u_int           ifOutErrors;        /* number of pkts discarded with an error */
+    u_int           ifOutQLen;  /* number of packets in output queue */
+};
+
+struct mib_atEntry {
+    int             atIfIndex;  /* interface on which this entry maps */
+    u_char          atPhysAddress[11];  /* physical address of destination */
+    u_char          PhysAddressLen;     /* length of atPhysAddress */
+    u_int           atNetAddress;       /* IP address of physical address */
+};
+
+struct mib_ip {
+    int             ipForwarding;       /* 1 if gateway, 2 if host */
+    int             ipDefaultTTL;       /* default TTL for pkts originating here */
+    u_int           ipInReceives;       /* no. of IP packets received from interfaces */
+    u_int           ipInHdrErrors;      /* number of pkts discarded due to header errors */
+    u_int           ipInAddrErrors;     /* no. of pkts discarded due to bad address */
+    u_int           ipForwDatagrams;    /* number pf pkts forwarded through this entity */
+    u_int           ipInUnknownProtos;  /* no. of local-addressed pkts w/unknown proto */
+    u_int           ipInDiscards;       /* number of error-free packets discarded */
+    u_int           ipInDelivers;       /* number of datagrams delivered to upper level */
+    u_int           ipOutRequests;      /* number of IP datagrams originating locally */
+    u_int           ipOutDiscards;      /* number of error-free output IP pkts discarded */
+    u_int           ipOutNoRoutes;      /* number of IP pkts discarded due to no route */
+    int             ipReasmTimeout;     /* seconds fragment is held awaiting reassembly */
+    u_int           ipReasmReqds;       /* no. of fragments needing reassembly (here) */
+    u_int           ipReasmOKs; /* number of fragments reassembled */
+    u_int           ipReasmFails;       /* number of failures in IP reassembly */
+    u_int           ipFragOKs;  /* number of datagrams fragmented here */
+    u_int           ipFragFails;        /* no. pkts unable to be fragmented here */
+    u_int           ipFragCreates;      /* number of IP fragments created here */
+};
+
+struct mib_ipAddrEntry {
+    u_int           ipAdEntAddr;        /* IP address of this entry */
+    int             ipAdEntIfIndex;     /* IF for this entry */
+    u_int           ipAdEntNetMask;     /* subnet mask of this entry */
+    int             ipAdEntBcastAddr;   /* read the MIB for this one */
+    int 	    ipAdEntReasmMaxSize;
+		/* max size for dg reassembly   {ipAddrEntry 5} */
+};
+
+struct mib_ipRouteEntry {
+    u_int           ipRouteDest;        /* destination IP addr for this route */
+    int             ipRouteIfIndex;     /* index of local IF for this route */
+    int             ipRouteMetric1;     /* Primary routing metric */
+    int             ipRouteMetric2;     /* Alternate routing metric */
+    int             ipRouteMetric3;     /* Alternate routing metric */
+    int             ipRouteMetric4;     /* Alternate routing metric */
+    u_int           ipRouteNextHop;     /* IP addr of next hop */
+    int             ipRouteType;        /* Type of this route */
+    int             ipRouteProto;       /* How this route was learned */
+    int             ipRouteAge; /* No. of seconds since updating this route */
+};
+
+struct mib_icmp {
+    u_int           icmpInMsgs; /* Total of ICMP msgs received */
+    u_int           icmpInErrors;       /* Total of ICMP msgs received with errors */
+    u_int           icmpInDestUnreachs;
+    u_int           icmpInTimeExcds;
+    u_int           icmpInParmProbs;
+    u_int           icmpInSrcQuenchs;
+    u_int           icmpInRedirects;
+    u_int           icmpInEchos;
+    u_int           icmpInEchoReps;
+    u_int           icmpInTimestamps;
+    u_int           icmpInTimestampReps;
+    u_int           icmpInAddrMasks;
+    u_int           icmpInAddrMaskReps;
+    u_int           icmpOutMsgs;
+    u_int           icmpOutErrors;
+    u_int           icmpOutDestUnreachs;
+    u_int           icmpOutTimeExcds;
+    u_int           icmpOutParmProbs;
+    u_int           icmpOutSrcQuenchs;
+    u_int           icmpOutRedirects;
+    u_int           icmpOutEchos;
+    u_int           icmpOutEchoReps;
+    u_int           icmpOutTimestamps;
+    u_int           icmpOutTimestampReps;
+    u_int           icmpOutAddrMasks;
+    u_int           icmpOutAddrMaskReps;
+};
+
+struct mib_tcp {
+    int             tcpRtoAlgorithm;    /* retransmission timeout algorithm */
+    int             tcpRtoMin;  /* minimum retransmission timeout (mS) */
+    int             tcpRtoMax;  /* maximum retransmission timeout (mS) */
+    int             tcpMaxConn; /* maximum tcp connections possible */
+    u_int           tcpActiveOpens;     /* number of SYN-SENT -> CLOSED transitions */
+    u_int           tcpPassiveOpens;    /* number of SYN-RCVD -> LISTEN transitions */
+    u_int           tcpAttemptFails;    /*(SYN-SENT,SYN-RCVD)->CLOSED or SYN-RCVD->LISTEN */
+    u_int           tcpEstabResets;     /* (ESTABLISHED,CLOSE-WAIT) -> CLOSED */
+    u_int           tcpCurrEstab;       /* number in ESTABLISHED or CLOSE-WAIT state */
+    u_int           tcpInSegs;  /* number of segments received */
+    u_int           tcpOutSegs; /* number of segments sent */
+    u_int           tcpRetransSegs;     /* number of retransmitted segments */
+};
+
+struct mib_tcpConnEntry {
+    int             tcpConnState;       /* State of this connection */
+    u_int           tcpConnLocalAddress;        /* local IP address for this connection */
+    int             tcpConnLocalPort;   /* local port for this connection */
+    u_int           tcpConnRemAddress;  /* remote IP address for this connection */
+    int             tcpConnRemPort;     /* remote port for this connection */
+};
+
+struct mib_udp {
+    u_int           udpInDatagrams;     /* No. of UDP datagrams delivered to users */
+    u_int           udpNoPorts; /* No. of UDP datagrams to port with no listener */
+    u_int           udpInErrors;        /* No. of UDP datagrams unable to be delivered */
+    u_int           udpOutDatagrams;    /* No. of UDP datagrams sent from this entity */
+};
+
+struct mib_egp {
+    u_int           egpInMsgs;  /* No. of EGP msgs received without error */
+    u_int           egpInErrors;        /* No. of EGP msgs received with error */
+    u_int           egpOutMsgs; /* No. of EGP msgs sent */
+    u_int           egpOutErrors;       /* No. of (outgoing) EGP msgs dropped due to error */
+};
+
+struct mib_egpNeighEntry {
+    int             egpNeighState;      /* local EGP state with this entry's neighbor */
+    u_int           egpNeighAddr;       /* IP address of this entry's neighbor */
+};
+
+#ifdef __cplusplus
+}
+#endif
+#endif                          /* NET_SNMP_CMU_COMPAT_H */
diff --git a/include/net-snmp/library/container.h b/include/net-snmp/library/container.h
index 963289e..fd273d5 100644
--- a/include/net-snmp/library/container.h
+++ b/include/net-snmp/library/container.h
@@ -1,18 +1,8 @@
-/* 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.
- */
 #ifndef NETSNMP_CONTAINER_H
 #define NETSNMP_CONTAINER_H
 
 /*
- * $Id$
+ * $Id: container.h 17254 2008-10-14 09:37:21Z jsafranek $
  *
  * WARNING: This is a recently created file, and all of it's contents are
  *          subject to change at any time.
@@ -24,11 +14,9 @@
 #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" {
@@ -43,14 +31,7 @@ extern "C" {
     struct netsnmp_container_s; /** forward declare */
 
     /*
-     * 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
+     * function returning an int for an operation on a container
      */
     typedef int (netsnmp_container_option)(struct netsnmp_container_s *,
                                            int set, u_int flags);
@@ -154,16 +135,18 @@ extern "C" {
        /*
         * release memory for an entry from the container
         */
-       netsnmp_container_op    *release; /* NOTE: deprecated. Use free_item */
-       netsnmp_container_obj_func *free_item;
+       netsnmp_container_op    *release;
 
        /*
-        * 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.
         */
+
+       /*
+        * find the entry in the container with the same key
+        *
+        */
        netsnmp_container_rtn   *find;
 
        /*
@@ -208,14 +191,6 @@ extern "C" {
         */
        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.
         *
@@ -244,16 +219,11 @@ extern "C" {
 
        /*
         * sort count, for iterators to track (insert/delete
-        * bumps counter, invalidates iterator)
+        * bumps coutner, invalidates iterator
         */
        u_long                          sync;
 
        /*
-        * flags
-        */
-       u_int                           flags;
-
-       /*
         * containers can contain other containers (additional indexes)
         */
        struct netsnmp_container_s *next, *prev;
@@ -264,9 +234,7 @@ extern "C" {
      * 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);
 
     /*
@@ -281,14 +249,12 @@ extern "C" {
      * 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);
 
@@ -299,9 +265,7 @@ extern "C" {
      * 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 *' */
@@ -312,16 +276,7 @@ extern "C" {
     int netsnmp_compare_mem(const char * lhs, size_t lhs_len,
                             const char * rhs, size_t rhs_len);
 
-    /** 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);
 
 /*
@@ -333,15 +288,15 @@ extern "C" {
 #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 {                          \
-        rc = x->flags & 0;                                              \
+        if (NULL==(x)->options)                                         \
+            rc = -1;                                                    \
+        else                                                            \
+            rc = (x)->options(x,0, o);                                  \
     } while(0)
 
 
@@ -368,67 +323,168 @@ extern "C" {
      * inline functions, you most likely have optimizations turned off.
      * Either turn them back on, or define NETSNMP_NO_INLINE
      */
+#ifndef NETSNMP_USE_INLINE /* default is to inline */
     /*
      * insert k into all containers
      */
-    NETSNMP_IMPORT
     int CONTAINER_INSERT(netsnmp_container *x, const void *k);
 
     /*
      * remove k from all containers
      */
-    NETSNMP_IMPORT
     int CONTAINER_REMOVE(netsnmp_container *x, const void *k);
 
     /*
-     * duplicate container
-     */
-    NETSNMP_IMPORT
-    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.
      */
-    NETSNMP_IMPORT
     void CONTAINER_CLEAR(netsnmp_container *x, netsnmp_container_obj_func *f,
                         void *c);
-
+    /*
+     * free all containers
+     */
+    int CONTAINER_FREE(netsnmp_container *x);
+#else
+    /*------------------------------------------------------------------
+     * 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_INSERT_HELPER(netsnmp_container* x, const void* k)
+    {
+        while(x && x->insert_filter && x->insert_filter(x,k) == 1)
+            x = x->next;
+        if(x) {
+            int rc = x->insert(x,k);
+            if(rc)
+                snmp_log(LOG_DEBUG,"error on subcontainer '%s' insert (%d)\n",
+                         x->container_name ? x->container_name : "", rc);
+            else {
+                rc = CONTAINER_INSERT_HELPER(x->next, k);
+                if(rc)
+                    x->remove(x,k);
+            }
+            return rc;
+        }
+        return 0;
+    }
+
+    /*------------------------------------------------------------------
+     * 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_INSERT(netsnmp_container* x, const void* k)
+    {
+        /** start at first container */
+        while(x->prev)
+            x = x->prev;
+        return CONTAINER_INSERT_HELPER(x, k);
+    }
+
+    /*------------------------------------------------------------------
+     * 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_REMOVE(netsnmp_container *x, const void *k)
+    {
+        int rc2, rc = 0;
+        
+        /** start at last container */
+        while(x->next)
+            x = x->next;
+        while(x) {
+            rc2 = x->remove(x,k);
+            /** ignore remove errors if there is a filter in place */
+            if ((rc2) && (NULL == x->insert_filter)) {
+                snmp_log(LOG_ERR,"error on subcontainer remove (%d)\n", rc2);
+                rc = rc2;
+            }
+            x = x->prev;
+            
+        }
+        return rc;
+    }
+    
+    /*------------------------------------------------------------------
+     * 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;
+        
+        /** start at last container */
+        while(x->next)
+            x = x->next;
+        while(x) {
+            netsnmp_container *tmp;
+            tmp = x->prev;
+            if (NULL != x->container_name)
+                SNMP_FREE(x->container_name);
+            rc2 = x->cfree(x);
+            if (rc2) {
+                snmp_log(LOG_ERR,"error on subcontainer cfree (%d)\n", rc2);
+                rc = rc2;
+            }
+            x = tmp;
+        }
+        return rc;
+    }
+
+    /*------------------------------------------------------------------
+     * These functions should EXACTLY match the function version in
+     * container.c. If you change one, change them both.
+     */
     /*
      * clear all containers. When clearing the *first* container, and
-     * *only* the first container, call the free_item function for each item.
+     * *only* the first container, call the function f for each item.
      * After calling this function, all containers should be empty.
      */
-    NETSNMP_IMPORT
-    void CONTAINER_FREE_ALL(netsnmp_container *x, void *c);
-
+    NETSNMP_STATIC_INLINE /* gcc docs recommend static w/inline */
+    void CONTAINER_CLEAR(netsnmp_container *x, netsnmp_container_obj_func *f,
+                        void *c)
+    {
+        /** start at last container */
+        while(x->next)
+            x = x->next;
+        while(x->prev) {
+            x->clear(x, NULL, c);
+            x = x->prev;
+        }
+        x->clear(x, f, c);
+    }
+
+    /*------------------------------------------------------------------
+     * These functions should EXACTLY match the function version in
+     * container.c. If you change one, change them both.
+     */
     /*
-     * free all containers
+     * Find a sub-container with the given name
      */
-    NETSNMP_IMPORT
-    int CONTAINER_FREE(netsnmp_container *x);
-
-    NETSNMP_IMPORT
+    NETSNMP_STATIC_INLINE /* gcc docs recommend static w/inline */
     netsnmp_container *SUBCONTAINER_FIND(netsnmp_container *x,
-                                         const char* name);
-
-    /*
-     * 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);
+                                         const char* name)
+    {
+        if ((NULL == x) || (NULL == name))
+            return NULL;
+
+        /** start at first container */
+        while(x->prev)
+            x = x->prev;
+        while(x) {
+            if ((NULL != x->container_name) &&
+                (0 == strcmp(name,x->container_name)))
+                break;
+            x = x->next;
+        }
+        return x;
+    }
 
+#endif
     
     /*************************************************************************
      *
@@ -478,20 +534,12 @@ extern "C" {
 
        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_binary_array.h b/include/net-snmp/library/container_binary_array.h
index 336a8e9..289f831 100644
--- a/include/net-snmp/library/container_binary_array.h
+++ b/include/net-snmp/library/container_binary_array.h
@@ -1,6 +1,6 @@
 /*
  * binary_array.h
- * $Id$
+ * $Id: container_binary_array.h 9757 2004-03-02 05:03:36Z rstory $
  */
 
 #ifndef BINARY_ARRAY_H
@@ -37,9 +37,6 @@ extern          "C" {
 
     void netsnmp_container_binary_array_init(void);
 
-    int netsnmp_binary_array_options_set(netsnmp_container *c, int set, u_int flags);
-
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/net-snmp/library/container_list_ssll.h b/include/net-snmp/library/container_list_ssll.h
index 494f213..8a9e496 100644
--- a/include/net-snmp/library/container_list_ssll.h
+++ b/include/net-snmp/library/container_list_ssll.h
@@ -1,6 +1,6 @@
 /*
  * container_list_sl.h
- * $Id$
+ * $Id: container_list_ssll.h 11068 2004-09-14 02:29:16Z rstory $
  *
  */
 #ifndef NETSNMP_CONTAINER_SSLL_H
@@ -16,7 +16,6 @@ extern "C" {
     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 a55d342..6489606 100644
--- a/include/net-snmp/library/container_null.h
+++ b/include/net-snmp/library/container_null.h
@@ -10,7 +10,6 @@ extern "C" {
 
 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 54a3a5d..4046df8 100644
--- a/include/net-snmp/library/data_list.h
+++ b/include/net-snmp/library/data_list.h
@@ -14,7 +14,7 @@
  * @addtogroup agent
  * @addtogroup library *
  *
- * $Id$
+ * $Id: data_list.h 18102 2010-02-08 19:47:17Z bvassche $
  *
  * External definitions for functions and variables in netsnmp_data_list.c.
  *
@@ -56,7 +56,6 @@ extern          "C" {
        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,
@@ -65,23 +64,17 @@ extern          "C" {
       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 3c3c519..ce5ed66 100644
--- a/include/net-snmp/library/default_store.h
+++ b/include/net-snmp/library/default_store.h
@@ -24,21 +24,18 @@
 #ifndef DEFAULT_STORE_H
 #define DEFAULT_STORE_H
 
-#include <net-snmp/net-snmp-config.h>
-
 #ifdef __cplusplus
 extern          "C" {
 #endif
 
 #define NETSNMP_DS_MAX_IDS 3
-#define NETSNMP_DS_MAX_SUBIDS 48        /* needs to be a multiple of 8 */
+#define NETSNMP_DS_MAX_SUBIDS 40        /* needs to be a multiple of 8 */
 
     /*
      * begin storage definitions 
      */
 /**
- * @def NETSNMP_DS_LIBRARY_ID
- * These definitions correspond with the "storid" argument to the API.
+ * @def NETSNMP_DS_LIBRARY_ID These definitions correspond with the "storid" argument to the API 
  */
 #define NETSNMP_DS_LIBRARY_ID     0
 #define NETSNMP_DS_APPLICATION_ID 1
@@ -90,35 +87,23 @@ extern          "C" {
 #define NETSNMP_DS_LIB_DISABLE_PERSISTENT_LOAD  35 /* don't load persistent file */
 #define NETSNMP_DS_LIB_DISABLE_PERSISTENT_SAVE  36 /* don't save persistent file */
 #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_DONT_LOAD_HOST_FILES 40 /* don't read host.conf files */
-#define NETSNMP_DS_LIB_DNSSEC_WARN_ONLY     41 /* tread DNSSEC errors as warnings */
-#define NETSNMP_DS_LIB_MAX_BOOL_ID          48 /* match NETSNMP_DS_MAX_SUBIDS */
 
     /*
      * library integers 
      */
-#define NETSNMP_DS_LIB_MIB_WARNINGS         0
-#define NETSNMP_DS_LIB_SECLEVEL             1
-#define NETSNMP_DS_LIB_SNMPVERSION          2
-#define NETSNMP_DS_LIB_DEFAULT_PORT         3
-#define NETSNMP_DS_LIB_OID_OUTPUT_FORMAT    4
-#define NETSNMP_DS_LIB_PRINT_SUFFIX_ONLY    NETSNMP_DS_LIB_OID_OUTPUT_FORMAT
+#define NETSNMP_DS_LIB_MIB_WARNINGS  0
+#define NETSNMP_DS_LIB_SECLEVEL      1
+#define NETSNMP_DS_LIB_SNMPVERSION   2
+#define NETSNMP_DS_LIB_DEFAULT_PORT  3
+#define NETSNMP_DS_LIB_OID_OUTPUT_FORMAT  4
+#define NETSNMP_DS_LIB_PRINT_SUFFIX_ONLY  NETSNMP_DS_LIB_OID_OUTPUT_FORMAT
 #define NETSNMP_DS_LIB_STRING_OUTPUT_FORMAT 5
-#define NETSNMP_DS_LIB_HEX_OUTPUT_LENGTH    6
-#define NETSNMP_DS_LIB_SERVERSENDBUF        7 /* send buffer (server) */
-#define NETSNMP_DS_LIB_SERVERRECVBUF        8 /* receive buffer (server) */
-#define NETSNMP_DS_LIB_CLIENTSENDBUF        9 /* send buffer (client) */
-#define NETSNMP_DS_LIB_CLIENTRECVBUF       10 /* receive buffer (client) */
-#define NETSNMP_DS_SSHDOMAIN_SOCK_PERM     11
-#define NETSNMP_DS_SSHDOMAIN_DIR_PERM      12
-#define NETSNMP_DS_SSHDOMAIN_SOCK_USER     12
-#define NETSNMP_DS_SSHDOMAIN_SOCK_GROUP    13
-#define NETSNMP_DS_LIB_TIMEOUT             14
-#define NETSNMP_DS_LIB_RETRIES             15
-#define NETSNMP_DS_LIB_MAX_INT_ID          48 /* match NETSNMP_DS_MAX_SUBIDS */
-    
+#define NETSNMP_DS_LIB_HEX_OUTPUT_LENGTH 6
+#define NETSNMP_DS_LIB_SERVERSENDBUF   7 /* send buffer (server) */
+#define NETSNMP_DS_LIB_SERVERRECVBUF   8 /* receive buffer (server) */
+#define NETSNMP_DS_LIB_CLIENTSENDBUF   9 /* send buffer (client) */
+#define NETSNMP_DS_LIB_CLIENTRECVBUF  10 /* receive buffer (client) */
+
     /*
      * special meanings for the default SNMP version slot (NETSNMP_DS_LIB_SNMPVERSION) 
      */
@@ -157,54 +142,28 @@ extern          "C" {
 #define NETSNMP_DS_LIB_APPTYPES          20
 #define NETSNMP_DS_LIB_KSM_KEYTAB        21
 #define NETSNMP_DS_LIB_KSM_SERVICE_NAME  22
-#define NETSNMP_DS_LIB_X509_CLIENT_PUB   23
-#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
-#define NETSNMP_DS_LIB_TLS_LOCAL_CERT    30
-#define NETSNMP_DS_LIB_TLS_PEER_CERT     31
-#define NETSNMP_DS_LIB_SSH_USERNAME      32
-#define NETSNMP_DS_LIB_SSH_PUBKEY        33
-#define NETSNMP_DS_LIB_SSH_PRIVKEY       34
-#define NETSNMP_DS_LIB_MAX_STR_ID        48 /* match NETSNMP_DS_MAX_SUBIDS */
 
     /*
      * 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
deleted file mode 100644
index 471bb0b..0000000
--- a/include/net-snmp/library/dir_utils.h
+++ /dev/null
@@ -1,63 +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 (C) 2007 Apple, Inc. All rights reserved.
- * Use is subject to license terms specified in the COPYING file
- * distributed with the Net-SNMP package.
- */
-#ifndef NETSNMP_DIR_UTILS_H
-#define NETSNMP_DIR_UTILS_H
-
-#ifdef __cplusplus
-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_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);
-
-        
-
-    /*------------------------------------------------------------------
-     *
-     * flags
-     */
-#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
-
-    
-        
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* NETSNMP_DIR_UTILS_H */
diff --git a/include/net-snmp/library/fd_event_manager.h b/include/net-snmp/library/fd_event_manager.h
index ede67b4..4b7242d 100644
--- a/include/net-snmp/library/fd_event_manager.h
+++ b/include/net-snmp/library/fd_event_manager.h
@@ -88,15 +88,8 @@ int             unregister_exceptfd(int);
  *
  * 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,
-                                  netsnmp_large_fd_set *exceptfds);
-
 /*
  * Dispatch External Events
  *
@@ -121,13 +114,7 @@ void netsnmp_external_event_info2(int *numfds,
  *
  * 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,
-                                       netsnmp_large_fd_set *exceptfds);
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/net-snmp/library/file_utils.h b/include/net-snmp/library/file_utils.h
index 9f5cdce..fa9b5a4 100644
--- a/include/net-snmp/library/file_utils.h
+++ b/include/net-snmp/library/file_utils.h
@@ -13,23 +13,32 @@ extern "C" {
      */
     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
@@ -45,9 +54,6 @@ extern "C" {
      * 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);
@@ -56,11 +62,7 @@ extern "C" {
     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);
-
-
+        
 
     /*------------------------------------------------------------------
      *
@@ -68,8 +70,7 @@ extern "C" {
      *
      */
 #define NETSNMP_FILE_NO_AUTOCLOSE                         0x00000001
-#define NETSNMP_FILE_STATS                                0x00000002
-#define NETSNMP_FILE_AUTO_OPEN                            0x00000004
+#define NETSNMP_FILE_                                     0x00000002
 
     /*------------------------------------------------------------------
      *
diff --git a/include/net-snmp/library/getopt.h b/include/net-snmp/library/getopt.h
index f70ffe4..0f4d691 100644
--- a/include/net-snmp/library/getopt.h
+++ b/include/net-snmp/library/getopt.h
@@ -1,12 +1,6 @@
 #ifndef _GETOPT_H_
 #define _GETOPT_H_ 1
 
-#ifndef NET_SNMP_CONFIG_H
-#error <net-snmp/net-snmp-config.h> must be included before <net-snmp/library/getopt.h>.
-#endif
-
-#if !defined(HAVE_GETOPT_H)
-
 #ifdef __cplusplus
 extern          "C" {
 #endif
@@ -18,7 +12,4 @@ NETSNMP_IMPORT int   optind, opterr, optopt, optreset;
 #ifdef __cplusplus
 }
 #endif
-
-#endif /* HAVE_GETOPT_H */
-
 #endif
diff --git a/include/net-snmp/library/int64.h b/include/net-snmp/library/int64.h
index 9c7c894..fdc6805 100644
--- a/include/net-snmp/library/int64.h
+++ b/include/net-snmp/library/int64.h
@@ -13,15 +13,11 @@ extern          "C" {
     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);
@@ -31,7 +27,6 @@ extern          "C" {
 
     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 44acc48..2276216 100644
--- a/include/net-snmp/library/keytools.h
+++ b/include/net-snmp/library/keytools.h
@@ -24,25 +24,21 @@ extern          "C" {
     /*
      * Prototypes.h
      */
-    NETSNMP_IMPORT
     int             generate_Ku(const oid * hashtype, u_int hashtype_len,
-                                const u_char * P, size_t pplen,
+                                u_char * P, size_t pplen,
                                 u_char * Ku, size_t * kulen);
 
-    NETSNMP_IMPORT
     int             generate_kul(const oid * hashtype, u_int hashtype_len,
-                                 const u_char * engineID, size_t engineID_len,
-                                 const u_char * Ku, size_t ku_len,
+                                 u_char * engineID, size_t engineID_len,
+                                 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
deleted file mode 100644
index 9b547cd..0000000
--- a/include/net-snmp/library/large_fd_set.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- * @file  large_fd_set.h
- *
- * @brief Macro's and functions for manipulation of large file descriptor sets.
- */
-
-
-#ifndef LARGE_FD_SET_H
-#define LARGE_FD_SET_H
-
-
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/types.h>
-
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-
-#if defined(HAVE_WINSOCK_H) && !defined(_WINSOCKAPI_) && !defined(_WINSOCK_H)
-#error <winsock.h> or <winsock2.h> must have been included before this file.
-#endif
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-/**
- * Add socket fd to the set *fdset if not yet present.
- * Enlarges the set if necessary.
- */
-#define NETSNMP_LARGE_FD_SET(fd, fdset) \
-                    netsnmp_large_fd_setfd(fd, fdset)
-
-/**
- * Remove socket fd from the set *fdset.
- * Do nothing if fd is not present in *fdset.
- * Do nothing if fd >= fdset->lfs_setsize.
- */
-#define NETSNMP_LARGE_FD_CLR(fd, fdset) \
-                    netsnmp_large_fd_clr(fd, fdset)
-
-/**
- * Test whether set *fdset contains socket fd.
- * Evaluates to zero (false) if fd >= fdset->lfs_setsize.
- */
-#define NETSNMP_LARGE_FD_ISSET(fd, fdset) \
-                    netsnmp_large_fd_is_set(fd, fdset)
-
-#if !defined(cygwin) && defined(HAVE_WINSOCK_H)
-
-/**
- * Number of bytes needed to store a number of file descriptors as a
- * struct fd_set.
- */
-#define NETSNMP_FD_SET_BYTES(setsize)                           \
-    (sizeof(fd_set) + ((setsize) - FD_SETSIZE) * sizeof(SOCKET))
-
-/** Remove all sockets from the set *fdset. */
-#define NETSNMP_LARGE_FD_ZERO(fdset) \
-    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
-
-/**
- * Size of a single element of the array with file descriptor bitmasks.
- *
- * According to SUSv2, this array must have the name fds_bits. See also
- * <a href="http://www.opengroup.org/onlinepubs/007908775/xsh/systime.h.html">The Single UNIX Specification, Version 2, <sys/time.h></a>.
- */
-#define NETSNMP_FD_MASK_SIZE sizeof(((fd_set*)0)->fds_bits[0])
-
-/** Number of bits in one element of the fd_set.fds_bits array. */
-#define NETSNMP_BITS_PER_FD_MASK (8 * NETSNMP_FD_MASK_SIZE)
-
-/** Number of elements needed for the fds_bits array. */
-#define NETSNMP_FD_SET_ELEM_COUNT(setsize) \
-    (setsize + NETSNMP_BITS_PER_FD_MASK - 1) / NETSNMP_BITS_PER_FD_MASK
-
-/**
- * Number of bytes needed to store a number of file descriptors as a
- * struct fd_set.
- */
-#define NETSNMP_FD_SET_BYTES(setsize)                                   \
-    (sizeof(fd_set) + NETSNMP_FD_SET_ELEM_COUNT((setsize) - FD_SETSIZE) \
-     * NETSNMP_FD_MASK_SIZE)
-
-/** Remove all file descriptors from the set *fdset. */
-#define NETSNMP_LARGE_FD_ZERO(fdset)                            \
-    do {                                                        \
-        memset((fdset)->lfs_setptr, 0,                          \
-               NETSNMP_FD_SET_BYTES((fdset)->lfs_setsize));     \
-    } while (0)
-
-
-void   netsnmp_large_fd_setfd( int fd, netsnmp_large_fd_set *fdset);
-void   netsnmp_large_fd_clr(   int fd, netsnmp_large_fd_set *fdset);
-int    netsnmp_large_fd_is_set(int fd, netsnmp_large_fd_set *fdset);
-
-#endif
-
-/**
- * Initialize a netsnmp_large_fd_set structure.
- *
- * Note: this function only initializes the lfs_setsize and lfs_setptr
- * members of netsnmp_large_fd_set, not the file descriptor set itself.
- * 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);
-
-/**
- * Modify the size of a file descriptor set and preserve the first
- * min(fdset->lfs_setsize, setsize) file descriptors.
- *
- * Returns 1 upon success or 0 if memory allocation failed.
- */
-int    netsnmp_large_fd_set_resize( netsnmp_large_fd_set *fdset, int setsize);
-
-/**
- * Synchronous I/O multiplexing for large file descriptor sets.
- *
- * On POSIX systems, any file descriptor set with size below numfds will be
- * resized before invoking select().
- *
- * @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);
-
-/** Deallocate the memory allocated by netsnmp_large_fd_set_init. */
-NETSNMP_IMPORT
-void   netsnmp_large_fd_set_cleanup(netsnmp_large_fd_set *fdset);
-
-/**
- * Copy an fd_set to a netsnmp_large_fd_set structure.
- *
- * @note dst must have been initialized before this function is called.
- */
-void   netsnmp_copy_fd_set_to_large_fd_set(netsnmp_large_fd_set *dst,
-                                                   const fd_set *src);
-
-/**
- * Copy a netsnmp_large_fd_set structure into an fd_set.
- *
- * @return 0 upon success, -1 when copying fails because *src is too large to
- *         fit into *dst.
- */
-int    netsnmp_copy_large_fd_set_to_fd_set(              fd_set *dst,
-                                     const netsnmp_large_fd_set *src);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* LARGE_FD_SET_H */
diff --git a/include/net-snmp/library/lcd_time.h b/include/net-snmp/library/lcd_time.h
index da8c3c1..2c65e2c 100644
--- a/include/net-snmp/library/lcd_time.h
+++ b/include/net-snmp/library/lcd_time.h
@@ -99,7 +99,7 @@ extern          "C" {
     /*
      * Prototypes.
      */
-    int             get_enginetime(const u_char * engineID, u_int engineID_len,
+    int             get_enginetime(u_char * engineID, u_int engineID_len,
                                    u_int * engine_boot,
                                    u_int * engine_time,
                                    u_int authenticated);
@@ -111,7 +111,7 @@ extern          "C" {
                                       u_int * last_engine_time,
                                       u_int authenticated);
 
-    int             set_enginetime(const u_char * engineID, u_int engineID_len,
+    int             set_enginetime(u_char * engineID, u_int engineID_len,
                                    u_int engine_boot, u_int engine_time,
                                    u_int authenticated);
 
@@ -122,9 +122,9 @@ extern          "C" {
          
          
         Enginetime
-        search_enginetime_list(const u_char * engineID, u_int engineID_len);
+        search_enginetime_list(u_char * engineID, u_int engineID_len);
 
-    int             hash_engineID(const u_char * engineID, u_int engineID_len);
+    int             hash_engineID(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 6a07300..ce74647 100644
--- a/include/net-snmp/library/libsnmp.h
+++ b/include/net-snmp/library/libsnmp.h
@@ -31,7 +31,7 @@ extern          "C" {
  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  * SOFTWARE.
  * 
- * $Id$
+ * $Id: libsnmp.h 6918 2002-04-20 07:30:29Z hardaker $
  * 
  **********************************************************************/
 
@@ -53,7 +53,11 @@ extern          "C" {
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -67,7 +71,9 @@ extern          "C" {
 #endif
 #include <stdio.h>
 #include <ctype.h>
-#if HAVE_NETDB_H
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#else
 #include <netdb.h>
 #endif
 #if HAVE_ARPA_INET_H
@@ -76,6 +82,8 @@ extern          "C" {
 
 #ifdef UCD_SNMP_LIBRARY
 
+#define snmp_parse cmu_snmp_parse
+
 #include <ucd-snmp/asn1.h>
 #include <ucd-snmp/snmp_api.h>
 #include <ucd-snmp/snmp_impl.h>
@@ -133,9 +141,7 @@ extern          "C" {
 #define SNMP_MSG_GET GET_REQ_MSG
 #define SNMP_MSG_GETNEXT GETNEXT_REQ_MSG
 #define SNMP_MSG_RESPONSE GET_RSP_MSG
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 #define SNMP_MSG_SET SET_REQ_MSG
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 #define SNMP_MSG_TRAP TRP_REQ_MSG
 #define SNMP_MSG_GETBULK    (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x5)
 #define SNMP_MSG_INFORM     (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x6)
diff --git a/include/net-snmp/library/md5.h b/include/net-snmp/library/md5.h
index 12b192a..c995c7e 100644
--- a/include/net-snmp/library/md5.h
+++ b/include/net-snmp/library/md5.h
@@ -28,7 +28,7 @@ extern          "C" {
      * ** Input: MD -- an MDptr
      * ** Initialize the MDstruct prepatory to doing a message digest computation.
      */
-    NETSNMP_IMPORT void MDbegin(MDptr);
+    extern void     MDbegin(MDptr);
 
     /*
      * MDupdate(MD,X,count)
@@ -43,7 +43,7 @@ extern          "C" {
      * ** every MD computation should end with one call to MDupdate with a
      * ** count less than 512.  Zero is OK for a count.
      */
-    NETSNMP_IMPORT int MDupdate(MDptr, const unsigned char *, unsigned int);
+    extern int      MDupdate(MDptr, unsigned char *, unsigned int);
 
     /*
      * MDprint(MD)
@@ -54,10 +54,10 @@ extern          "C" {
      */
     extern void     MDprint(MDptr);
 
-    int             MDchecksum(const u_char * data, size_t len, u_char * mac,
+    int             MDchecksum(u_char * data, size_t len, u_char * mac,
                                size_t maclen);
-    int             MDsign(const u_char * data, size_t len, u_char * mac,
-                           size_t maclen, const u_char * secret,
+    int             MDsign(u_char * data, size_t len, u_char * mac,
+                           size_t maclen, 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 18d98e1..f7c8bba 100644
--- a/include/net-snmp/library/mib.h
+++ b/include/net-snmp/library/mib.h
@@ -34,13 +34,7 @@ SOFTWARE.
 
 #include <stdio.h>              /* for FILE */
 
-#include <net-snmp/mib_api.h>
-
-#define NETSNMP_MIB2_OID 1, 3, 6, 1, 2, 1
-
-#ifndef NETSNMP_NO_LEGACY_DEFINITIONS
-#define MIB NETSNMP_MIB2_OID
-#endif
+#define MIB 1, 3, 6, 1, 2, 1
 
 #define MIB_IFTYPE_OTHER		    1
 #define MIB_IFTYPE_REGULAR1822		    2
@@ -117,54 +111,67 @@ SOFTWARE.
     struct variable_list;
     struct enum_list;
 
-    NETSNMP_IMPORT
+    void            print_mib(FILE * fp);
     void            print_ascii_dump(FILE *);
+    int             read_objid(const char *, oid *, size_t *);
     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 );
-    char *          netsnmp_mibindex_lookup( const char * );
-    FILE *          netsnmp_mibindex_new( const char * );
-    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
+    void            netsnmp_init_mib(void);
+#ifndef NETSNMP_CLEAN_NAMESPACE
+    void            init_mib(void);
+#endif
+    void            shutdown_mib(void);
+    void            print_description(oid *, size_t, int);
+    void            fprint_description(FILE *, oid *, size_t, int);
+    int             snprint_description(char *, size_t, oid *, size_t, int);
+    int             sprint_realloc_description(u_char **, size_t *, size_t *,
+                                               int, oid *, size_t, int);
+    int             get_module_node(const char *, const char *, oid *,
+                                    size_t *);
     int             get_wild_node(const char *, oid *, size_t *);
-    NETSNMP_IMPORT
     int             get_node(const char *, oid *, size_t *);
-    NETSNMP_IMPORT
+    oid            *snmp_parse_oid(const char *, oid *, size_t *);
     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,
+
+    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);
+
+    int             snprint_variable(char *buf, size_t buf_len,
+                                     const oid * objid, size_t objidlen,
+                                     const netsnmp_variable_list * variable);
+
+    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);
+
 #ifndef NETSNMP_DISABLE_MIB_LOADING
     struct tree    *
 #else
@@ -178,7 +185,6 @@ SOFTWARE.
                                                       const oid * objid,
                                                       size_t objidlen);
 
-    NETSNMP_IMPORT
     void
                     netsnmp_sprint_realloc_objid(u_char ** buf,
                                                  size_t * buf_len,
@@ -188,18 +194,40 @@ SOFTWARE.
                                                  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,
+    void            print_value(const oid * objid, size_t objidlen,
+                                const netsnmp_variable_list * variable);
+
+    void            fprint_value(FILE * fp,
                                  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,
+    int             snprint_value(char *buf, size_t buf_len,
+                                  const oid * objid, size_t objidlen,
+                                  const netsnmp_variable_list * variable);
+
+    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);
+
+
+    void            print_objid(const oid * objid, size_t objidlen);
+
+    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);
+
+    int             sprint_realloc_objid(u_char ** buf, size_t * buf_len,
+                                         size_t * out_len,
+                                         int allow_realloc,
+                                         const oid * objid,
+                                         size_t objidlen);
+
+
     int             sprint_realloc_by_type(u_char ** buf, size_t * buf_len,
                                            size_t * out_len,
                                            int allow_realloc,
@@ -208,14 +236,12 @@ SOFTWARE.
                                            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,
@@ -434,7 +460,6 @@ SOFTWARE.
                                  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 *,
@@ -467,35 +492,23 @@ SOFTWARE.
                                    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 4e35d33..c17c729 100644
--- a/include/net-snmp/library/mt_support.h
+++ b/include/net-snmp/library/mt_support.h
@@ -63,13 +63,9 @@ error "There is no re-entrant support as defined."
 #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
deleted file mode 100644
index e7adf41..0000000
--- a/include/net-snmp/library/oid.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#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 290bb40..cf13f62 100644
--- a/include/net-snmp/library/oid_stash.h
+++ b/include/net-snmp/library/oid_stash.h
@@ -38,9 +38,8 @@ extern          "C" {
        NetSNMPStashDump *dumpfn;
     } netsnmp_oid_stash_save_info;
 
-    NETSNMP_IMPORT
-    int             netsnmp_oid_stash_add_data(netsnmp_oid_stash_node **root,
-					       const oid * lookup,
+    int             netsnmp_oid_stash_add_data(netsnmp_oid_stash_node
+                                               **root, oid * lookup,
                                                size_t lookup_len,
                                                void *mydata);
     SNMPCallback netsnmp_oid_stash_store_all;
@@ -48,12 +47,10 @@ extern          "C" {
 
     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,
+                                    oid * lookup, size_t lookup_len);
+    void           *netsnmp_oid_stash_get_data(netsnmp_oid_stash_node
+                                               *root, 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);
@@ -68,7 +65,6 @@ extern          "C" {
                                  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
deleted file mode 100644
index bddf083..0000000
--- a/include/net-snmp/library/openssl_aes.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* 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 at 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
deleted file mode 100644
index 44e7baf..0000000
--- a/include/net-snmp/library/openssl_des.h
+++ /dev/null
@@ -1,236 +0,0 @@
-/* crypto/des/des.h */
-/* Copyright (C) 1995-1997 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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
deleted file mode 100644
index 1e85f31..0000000
--- a/include/net-snmp/library/openssl_md5.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* crypto/md5/md5.h */
-/* Copyright (C) 1995-1998 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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 at 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
deleted file mode 100644
index ec2ff09..0000000
--- a/include/net-snmp/library/openssl_sha.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/* crypto/sha/sha.h */
-/* Copyright (C) 1995-1998 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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 ce46ab9..785106d 100644
--- a/include/net-snmp/library/parse.h
+++ b/include/net-snmp/library/parse.h
@@ -4,9 +4,6 @@
 #ifdef __cplusplus
 extern          "C" {
 #endif
-
-#include <net-snmp/mib_api.h>
-
     /*
      * parse.h
      */
@@ -32,19 +29,10 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 SOFTWARE.
 ******************************************************************/
 
-#define NETSNMP_MAXLABEL 64      /* maximum characters in a label */
+#define MAXLABEL        64      /* maximum characters in a label */
 #define MAXTOKEN        128     /* maximum characters in a token */
 #define MAXQUOTESTR     4096    /* maximum characters in a quoted string */
 
-/*
- * MAXLABEL appears to be unused in code, and conflicts with
- * <arpa/nameser.h>. Only define it if requested. This will
- * cause problems if local DNSSEC validation is also enabled.
- */
-#ifdef UCD_COMPATIBLE
-#define MAXLABEL        NETSNMP_MAXLABEL
-#endif
-
     struct variable_list;
 
     /*
@@ -82,6 +70,33 @@ SOFTWARE.
     };
 
     /*
+     * A linked list of nodes.
+     */
+    struct node {
+        struct node    *next;
+        char           *label;  /* This node's (unique) textual name */
+        u_long          subid;  /* This node's integer subidentifier */
+        int             modid;  /* The module containing this node */
+        char           *parent; /* The parent's textual name */
+        int             tc_index;       /* index into tclist (-1 if NA) */
+        int             type;   /* The type of object this represents */
+        int             access;
+        int             status;
+        struct enum_list *enums;        /* (optional) list of enumerated integers */
+        struct range_list *ranges;
+        struct index_list *indexes;
+        char           *augments;
+        struct varbind_list *varbinds;
+        char           *hint;
+        char           *units;
+        char           *description;    /* description (a quoted string) */
+        char           *reference;    /* references (a quoted string) */
+        char           *defaultValue;
+	char           *filename;
+        int             lineno;
+    };
+
+    /*
      * A tree in the format of the tree structure of the MIB.
      */
     struct tree {
@@ -114,7 +129,6 @@ SOFTWARE.
         char           *reference;    /* references (a quoted string) */
         int             reported;       /* 1=report started in print_subtree... */
         char           *defaultValue;
-       char	       *parseErrorString; /* Contains the error string if there are errors in parsing MIBs */
     };
 
     /*
@@ -195,51 +209,46 @@ SOFTWARE.
 #define	ANON	"anonymous#"
 #define	ANON_LEN  strlen(ANON)
 
+    struct tree    *netsnmp_read_module(const char *);
+#ifndef NETSNMP_CLEAN_NAMESPACE
+    struct tree    *read_module(const char *);
+#endif
+    struct tree    *read_mib(const char *);
+    struct tree    *read_all_mibs(void);
     int             netsnmp_unload_module(const char *name);
-#ifndef NETSNMP_NO_LEGACY_DEFINITIONS
+#ifndef NETSNMP_CLEAN_NAMESPACE
     int             unload_module(const char *name);
+    void            init_mib_internals(void);
 #endif
     void            netsnmp_init_mib_internals(void);
     void            unload_all_mibs(void);
     int             add_mibfile(const char*, const char*, FILE *);
+    int             add_mibdir(const char *);
+    void            add_module_replacement(const char *, const char *,
+                                           const char *, int);
     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 5b1f7d0..dbde29c 100644
--- a/include/net-snmp/library/read_config.h
+++ b/include/net-snmp/library/read_config.h
@@ -15,7 +15,7 @@ extern          "C" {
 #define PREMIB_CONFIG 1
 #define EITHER_CONFIG 2
 
-#include <net-snmp/config_api.h>
+
 
     /*
      * Defines a set of file types and the parse and free functions
@@ -43,85 +43,76 @@ extern          "C" {
     };
 
 
-    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 */
-    int             read_config(const char *, struct config_line *, int);
-    int             read_config_files(int);
-    NETSNMP_IMPORT
+    void            read_config(const char *, struct config_line *, int);
+    void            read_configs(void);
+    void            read_premib_configs(void);
+    void            read_config_files(int);
     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
+    void            config_perror(const char *);
+    void            config_pwarn(const char *);
     char           *skip_white(char *);
-    const char     *skip_white_const(const char *);
-    NETSNMP_IMPORT
     char           *skip_not_white(char *);
-    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 */
-    NETSNMP_IMPORT
-    int             read_config_with_type(const char *, const char *);
-    NETSNMP_IMPORT
+    void            read_config_with_type(const char *, const char *);
+    struct config_line *register_config_handler(const char *, const char *,
+                                                void (*parser) (const char
+                                                                *, char *),
+                                                void (*releaser) (void),
+                                                const char *);
+    struct config_line *register_app_config_handler(const char *,
+                                                    void (*parser) (const
+                                                                    char *,
+                                                                    char
+                                                                    *),
+                                                    void (*releaser)
+                                                    (void), const char *);
+    struct config_line *register_prenetsnmp_mib_handler(const char *,
+                                                        const char *,
+                                                        void (*parser)
+                                                        (const char *,
+                                                         char *),
+                                                        void (*releaser)
+                                                        (void),
+                                                        const char *);
+    struct config_line *register_app_prenetsnmp_mib_handler(const char *,
+                                                            void (*parser)
+                                                            (const char *,
+                                                             char *),
+                                                            void
+                                                            (*releaser)
+                                                            (void),
+                                                            const char *);
+    void            unregister_config_handler(const char *, const char *);
+    void            unregister_app_config_handler(const char *);
+    void            unregister_all_config_handlers(void);
+    void            read_config_print_usage(const char *lead);
     char           *read_config_save_octet_string(char *saveto,
                                                   u_char * str,
                                                   size_t len);
-    NETSNMP_IMPORT
-    char           *read_config_read_octet_string(const char *readfrom,
+    char           *read_config_read_octet_string(char *readfrom,
                                                   u_char ** str,
                                                   size_t * len);
-    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);
 
@@ -139,17 +130,13 @@ extern          "C" {
                                                    **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 f4b63f5..d927044 100644
--- a/include/net-snmp/library/scapi.h
+++ b/include/net-snmp/library/scapi.h
@@ -35,7 +35,6 @@ extern          "C" {
     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);
@@ -44,20 +43,20 @@ extern          "C" {
 
     int             sc_generate_keyed_hash(const oid * authtype,
                                            size_t authtypelen,
-                                           const u_char * key, u_int keylen,
-                                           const u_char * message, u_int msglen,
+                                           u_char * key, u_int keylen,
+                                           u_char * message, u_int msglen,
                                            u_char * MAC, size_t * maclen);
 
     int             sc_check_keyed_hash(const oid * authtype,
-                                        size_t authtypelen, const u_char * key,
-                                        u_int keylen, const u_char * message,
-                                        u_int msglen, const u_char * MAC,
+                                        size_t authtypelen, u_char * key,
+                                        u_int keylen, u_char * message,
+                                        u_int msglen, 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,
-                               const u_char * plaintext, u_int ptlen,
+                               u_char * plaintext, u_int ptlen,
                                u_char * ciphertext, size_t * ctlen);
 
     int             sc_decrypt(const oid * privtype, size_t privtypelen,
@@ -67,7 +66,7 @@ extern          "C" {
                                u_char * plaintext, size_t * ptlen);
 
     int             sc_hash(const oid * hashtype, size_t hashtypelen,
-                            const u_char * buf, size_t buf_len,
+                            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 a355dd0..bfb4c5f 100644
--- a/include/net-snmp/library/snmp-tc.h
+++ b/include/net-snmp/library/snmp-tc.h
@@ -18,9 +18,8 @@ extern          "C" {
                                           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 *);
+    u_char         *date_n_time(time_t *, size_t *);
+    time_t          ctime_to_timet(char *);
 
     /*
      * TrueValue 
@@ -53,11 +52,7 @@ extern          "C" {
 #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 f5978c6..3bb55bf 100644
--- a/include/net-snmp/library/snmp.h
+++ b/include/net-snmp/library/snmp.h
@@ -118,9 +118,7 @@ SOFTWARE.
 #define SNMP_MSG_GET        (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x0) /* a0=160 */
 #define SNMP_MSG_GETNEXT    (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x1) /* a1=161 */
 #define SNMP_MSG_RESPONSE   (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x2) /* a2=162 */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 #define SNMP_MSG_SET        (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x3) /* a3=163 */
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     /*
      * PDU types in SNMPv1 and SNMPsec 
@@ -139,7 +137,6 @@ SOFTWARE.
      */
 #define SNMP_MSG_REPORT     (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x8) /* a8=168 */
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     /*
      * internal modes that should never be used by the protocol for the
      * pdu type.
@@ -165,7 +162,6 @@ SOFTWARE.
 #define SNMP_MSG_INTERNAL_UNDO_COMMIT           24
 #define SNMP_MSG_INTERNAL_IRREVERSIBLE_COMMIT   25
 #define SNMP_MSG_INTERNAL_UNDO_CLEANUP          26
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
     /*
      * modes > 128 for non sets.
@@ -179,14 +175,9 @@ SOFTWARE.
     /*
      * test for member of Confirmed Class i.e., reportable 
      */
-#ifdef NETSNMP_NO_WRITE_SUPPORT
-#define SNMP_CMD_CONFIRMED(c) (c == SNMP_MSG_INFORM || c == SNMP_MSG_GETBULK ||\
-                               c == SNMP_MSG_GETNEXT || c == SNMP_MSG_GET )
-#else /* !NETSNMP_NO_WRITE_SUPPORT */
 #define SNMP_CMD_CONFIRMED(c) (c == SNMP_MSG_INFORM || c == SNMP_MSG_GETBULK ||\
                                c == SNMP_MSG_GETNEXT || c == SNMP_MSG_GET || \
-                               c == SNMP_MSG_SET )
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+                               c == SNMP_MSG_SET)
 
     /*
      * Exception values for SNMPv2p, SNMPv2c, SNMPv2u, SNMPv2*, and SNMPv3 
@@ -286,7 +277,6 @@ SOFTWARE.
 #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
@@ -329,15 +319,11 @@ SOFTWARE.
 #define SNMPADMINLENGTH 255
 
 
-    NETSNMP_IMPORT
     char           *uptime_string(u_long, char *);
     char           *uptime_string_n(u_long, char *, size_t);
-    NETSNMP_IMPORT
-    void            xdump(const void *, size_t, const char *);
-    NETSNMP_IMPORT
+    void            xdump(const u_char *, size_t, const char *);
     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 325109a..88516cb 100644
--- a/include/net-snmp/library/snmpAAL5PVCDomain.h
+++ b/include/net-snmp/library/snmpAAL5PVCDomain.h
@@ -11,10 +11,6 @@ extern          "C" {
 #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/snmpAliasDomain.h b/include/net-snmp/library/snmpAliasDomain.h
deleted file mode 100644
index ccafcb5..0000000
--- a/include/net-snmp/library/snmpAliasDomain.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef _SNMPALIASDOMAIN_H
-#define _SNMPALIASDOMAIN_H
-
-#ifdef NETSNMP_TRANSPORT_ALIAS_DOMAIN
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/asn1.h>
-
-/*
- * Simple aliases for complex transport strings that can be specified
- * via the snmp.conf file and the 'alias' token.
- */
-
-#define TRANSPORT_DOMAIN_ALIAS_IP		1,3,6,1,2,1,100,1,5
-NETSNMP_IMPORT oid netsnmp_snmpALIASDomain[];
-
-/*
- * "Constructor" for transport domain object.  
- */
-
-void            netsnmp_alias_ctor(void);
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /*NETSNMP_TRANSPORT_ALIAS_DOMAIN */
-
-#endif/*_SNMPALIASDOMAIN_H*/
diff --git a/include/net-snmp/library/snmpCallbackDomain.h b/include/net-snmp/library/snmpCallbackDomain.h
index e1be70b..4a4e1a8 100644
--- a/include/net-snmp/library/snmpCallbackDomain.h
+++ b/include/net-snmp/library/snmpCallbackDomain.h
@@ -11,7 +11,6 @@ extern          "C" {
 
 #ifdef NETSNMP_TRANSPORT_CALLBACK_DOMAIN
 
-#include <net-snmp/types.h>
 #include <net-snmp/library/snmp_transport.h>
 
 typedef struct netsnmp_callback_pass_s {
@@ -39,7 +38,6 @@ int             netsnmp_callback_hook_build(netsnmp_session * sp,
 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
@@ -57,7 +55,6 @@ netsnmp_session *netsnmp_callback_open(int attach_to,
                                                            *,
                                                            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
deleted file mode 100644
index 2135da3..0000000
--- a/include/net-snmp/library/snmpDTLSUDPDomain.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef _SNMPDTLSUDPDOMAIN_H
-#define _SNMPDTLSUDPDOMAIN_H
-
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-config_require(UDP)
-config_require(TLSBase)
-
-#include <net-snmp/types.h>
-#include <net-snmp/library/snmp_transport.h>
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-#define TRANSPORT_DOMAIN_DTLS_UDP_IP	1,3,6,1,6,1,9
-NETSNMP_IMPORT oid netsnmpDTLSUDPDomain[7];
-NETSNMP_IMPORT size_t netsnmpDTLSUDPDomain_len;
-
-netsnmp_transport *netsnmp_dtlsudp_transport(struct sockaddr_in *addr,
-                                             int local);
-
-
-/*
- * Register any configuration tokens specific to the agent.  
- */
-
-void            netsnmp_dtlsudp_agent_config_tokens_register(void);
-
-/*
- * "Constructor" for transport domain object.  
- */
-
-void            netsnmp_dtlsudp_ctor(void);
-
-#ifdef __cplusplus
-}
-#endif
-#endif/*_SNMPDTLSUDPDOMAIN_H*/
diff --git a/include/net-snmp/library/snmpIPXDomain.h b/include/net-snmp/library/snmpIPXDomain.h
index 11c2beb..304b360 100644
--- a/include/net-snmp/library/snmpIPXDomain.h
+++ b/include/net-snmp/library/snmpIPXDomain.h
@@ -11,9 +11,6 @@ extern          "C" {
 #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
deleted file mode 100644
index 7871dc4..0000000
--- a/include/net-snmp/library/snmpIPv4BaseDomain.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* 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
deleted file mode 100644
index 545c8f0..0000000
--- a/include/net-snmp/library/snmpIPv6BaseDomain.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* 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
deleted file mode 100644
index 2bd44e9..0000000
--- a/include/net-snmp/library/snmpSSHDomain.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#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
-
-/*
- * 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 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.
- */
-
-void            netsnmp_ssh_ctor(void);
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /*NETSNMP_TRANSPORT_SSH_DOMAIN */
-
-#endif/*_SNMPSSHDOMAIN_H*/
diff --git a/include/net-snmp/library/snmpSTDDomain.h b/include/net-snmp/library/snmpSTDDomain.h
index 3e9a59f..77be22b 100644
--- a/include/net-snmp/library/snmpSTDDomain.h
+++ b/include/net-snmp/library/snmpSTDDomain.h
@@ -3,12 +3,13 @@
 
 #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
deleted file mode 100644
index 71d86c8..0000000
--- a/include/net-snmp/library/snmpSocketBaseDomain.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#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
deleted file mode 100644
index 9c81a90..0000000
--- a/include/net-snmp/library/snmpTCPBaseDomain.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#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 c45856b..f465b79 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 3bca22b..b9de9eb 100644
--- a/include/net-snmp/library/snmpTCPIPv6Domain.h
+++ b/include/net-snmp/library/snmpTCPIPv6Domain.h
@@ -1,20 +1,13 @@
 #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.
@@ -30,7 +23,7 @@ netsnmp_transport *netsnmp_tcp6_transport(struct sockaddr_in6 *addr,
  * "Constructor" for transport domain object.  
  */
 
-NETSNMP_IMPORT void     netsnmp_tcpipv6_ctor(void);
+void            netsnmp_tcp6_ctor(void);
 
 #ifdef __cplusplus
 }
diff --git a/include/net-snmp/library/snmpTLSBaseDomain.h b/include/net-snmp/library/snmpTLSBaseDomain.h
deleted file mode 100644
index bc21cb6..0000000
--- a/include/net-snmp/library/snmpTLSBaseDomain.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#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;
-       netsnmp_indexed_addr_pair *addr;
-       char                      *our_identity;
-       char                      *their_identity;
-       char                      *their_fingerprint;
-       char                      *their_hostname;
-       char                      *trust_cert;
-    } _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
deleted file mode 100644
index 4f27662..0000000
--- a/include/net-snmp/library/snmpTLSTCPDomain.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#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
deleted file mode 100644
index 3ce7320..0000000
--- a/include/net-snmp/library/snmpUDPBaseDomain.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef SNMPUDPBASEDOMAIN_H
-#define SNMPUDPBASEDOMAIN_H
-
-config_require(SocketBase)
-
-#include <net-snmp/library/snmp_transport.h>
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-/*
- * Definitions
- */
-#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(linux) && defined(IP_PKTINFO) \
-    || defined(IP_RECVDSTADDR) && !defined(_MSC_VER)
-    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 f030360..540adf5 100644
--- a/include/net-snmp/library/snmpUDPDomain.h
+++ b/include/net-snmp/library/snmpUDPDomain.h
@@ -15,28 +15,36 @@ extern          "C" {
 #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,
-                                       const char **secname,
-                                       const char **contextName);
+                                       char **secname,
+                                       char **contextName);
+
+int             netsnmp_sock_buffer_set(int s, int optname, int local,
+                                        int size);
+
 
 /*
  * "Constructor" for transport domain object.  
@@ -44,19 +52,6 @@ int             netsnmp_udp_getSecName(void *opaque, int olength,
 
 void            netsnmp_udp_ctor(void);
 
-/*
- * 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)
-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);
-int netsnmp_udp_sendto(int fd, struct in_addr *srcip, int if_index,
-					   struct sockaddr *remote, void *data, int len);
-#endif
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/net-snmp/library/snmpUDPIPv4BaseDomain.h b/include/net-snmp/library/snmpUDPIPv4BaseDomain.h
deleted file mode 100644
index 54f8a49..0000000
--- a/include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* 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
-
-/*
- * Prototypes
- */
-
-    netsnmp_transport *netsnmp_udpipv4base_transport(struct sockaddr_in *addr,
-                                                     int local);
-
-#if defined(linux) && defined(IP_PKTINFO) \
-    || defined(IP_RECVDSTADDR) && !defined(_MSC_VER)
-    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 83eba2c..c4ea464 100644
--- a/include/net-snmp/library/snmpUDPIPv6Domain.h
+++ b/include/net-snmp/library/snmpUDPIPv6Domain.h
@@ -1,18 +1,12 @@
 #ifndef _SNMPUDPIPV6DOMAIN_H
 #define _SNMPUDPIPV6DOMAIN_H
 
-#include <net-snmp/types.h>
-
 #ifdef __cplusplus
 extern          "C" {
 #endif
 
 #include <net-snmp/library/snmp_transport.h>
-
-config_require(IPv6Base)
-config_require(UDPBase)
-
-#include <net-snmp/library/snmpIPv6BaseDomain.h>
+#include <net-snmp/library/asn1.h>
 
 /*
  * The SNMP over UDP over IPv6 transport domain is identified by
@@ -22,38 +16,34 @@ config_require(UDPBase)
 #define TRANSPORT_DOMAIN_UDP_IPV6	1,3,6,1,2,1,100,1,2
 NETSNMP_IMPORT oid      netsnmp_UDPIPv6Domain[];
 
-netsnmp_transport *netsnmp_udp6_transport(struct sockaddr_in6 *addr,
-                                          int local);
+netsnmp_transport *snmp_udp6_transport(struct sockaddr_in6 *addr,
+                                       int local);
 
 
 /*
  * 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,
                                             char *param);
 
-NETSNMP_IMPORT
 int             netsnmp_udp6_getSecName(void *opaque, int olength,
                                         const char *community,
-                                        int community_len,
-                                        const char **secname,
-                                        const char **contextName);
+                                        int community_len, char **secname,
+                                        char **contextName);
 
 /*
- * "Constructor" for transport domain object.
+ * "Constructor" for transport domain object.  
  */
 
-NETSNMP_IMPORT void netsnmp_udpipv6_ctor(void);
+void            netsnmp_udp6_ctor(void);
 
 #ifdef __cplusplus
 }
diff --git a/include/net-snmp/library/snmpUnixDomain.h b/include/net-snmp/library/snmpUnixDomain.h
index 91e7f63..51909f7 100644
--- a/include/net-snmp/library/snmpUnixDomain.h
+++ b/include/net-snmp/library/snmpUnixDomain.h
@@ -3,8 +3,8 @@
 
 #ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
 
-#if defined(cygwin) || defined(mingw32) || defined(mingw32msvc)
-    config_error(Unix domain protocol support unavailable for this platform)
+#ifdef __cplusplus
+extern          "C" {
 #endif
 
 #if HAVE_SYS_SOCKET_H
@@ -15,12 +15,7 @@
 #endif
 
 #include <net-snmp/library/snmp_transport.h>
-
-config_require(SocketBase)
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
+#include <net-snmp/library/asn1.h>
 
 /*
  * The SNMP over local socket transport domain is identified by
@@ -36,8 +31,8 @@ void netsnmp_unix_agent_config_tokens_register(void);
 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, const char **secName,
-                            const char **contextName);
+                            size_t community_len, char **secName,
+                            char **contextName);
 
 
 /*
@@ -46,20 +41,9 @@ int netsnmp_unix_getSecName(void *opaque, int olength,
 
 void            netsnmp_unix_ctor(void);
 
-/*
- * Support functions
- */
-void            netsnmp_unix_create_path_with_mode(int mode);
-void            netsnmp_unix_dont_create_path(void);
-
 #ifdef __cplusplus
 }
 #endif
-#else
-
-#define netsnmp_unix_create_path_with_mode(x)
-#define netsnmp_unix_dont_create_path()
-
 #endif                          /*NETSNMP_TRANSPORT_UNIX_DOMAIN */
 
 #endif/*_SNMPUNIXDOMAIN_H*/
diff --git a/include/net-snmp/library/snmp_alarm.h b/include/net-snmp/library/snmp_alarm.h
index d1bcbfa..f13b2a9 100644
--- a/include/net-snmp/library/snmp_alarm.h
+++ b/include/net-snmp/library/snmp_alarm.h
@@ -12,17 +12,13 @@ extern          "C" {
      * alarm flags 
      */
 #define SA_REPEAT 0x01          /* keep repeating every X seconds */
-#define SA_FIRED 0x10          /* Being processed in run_alarms */
 
     struct snmp_alarm {
-        /** Alarm interval. Zero if single-shot. */
         struct timeval  t;
         unsigned int    flags;
         unsigned int    clientreg;
-        /** Last time the alarm fired [monotonic clock]. */
-        struct timeval  t_lastM;
-        /** Next time the alarm will fire [monotonic clock]. */
-        struct timeval  t_nextM;
+        struct timeval  t_last;
+        struct timeval  t_next;
         void           *clientarg;
         SNMPAlarmCallback *thecallback;
         struct snmp_alarm *next;
@@ -31,10 +27,8 @@ extern          "C" {
     /*
      * 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,
@@ -44,27 +38,22 @@ extern          "C" {
                                            unsigned int flags,
                                            SNMPAlarmCallback * cb,
                                            void *cd);
-    NETSNMP_IMPORT
-    int             snmp_alarm_reset(unsigned int clientreg);
 
 
     /*
      * the ones you shouldn't 
      */
-    NETSNMP_IMPORT void init_snmp_alarm(void);
+    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);
-    NETSNMP_IMPORT void run_alarms(void);
+    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 6f658d5..cb61ef7 100644
--- a/include/net-snmp/library/snmp_api.h
+++ b/include/net-snmp/library/snmp_api.h
@@ -24,14 +24,6 @@
  * @{
  */
 
-#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>
-
-#include <net-snmp/net-snmp-features.h>
-
 #ifndef DONT_SHARE_ERROR_WITH_OTHER_THREADS
 #define SET_SNMP_ERROR(x) snmp_errno=(x)
 #else
@@ -65,7 +57,257 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 SOFTWARE.
 ******************************************************************/
 
+/** @typedef struct variable_list netsnmp_variable_list
+    * Typedefs the variable_list struct into netsnmp_variable_list */
+struct variable_list;
+typedef struct variable_list netsnmp_variable_list;
 struct timeval;
+struct netsnmp_transport_s;
+
+#define USM_AUTH_KU_LEN     32
+#define USM_PRIV_KU_LEN     32
+
+/** @typedef struct snmp_pdu to netsnmp_pdu
+    * Typedefs the snmp_pdu struct into netsnmp_pdu */
+/** @struct snmp_pdu
+ * The snmp protocol data unit.
+ */	
+typedef struct snmp_pdu {
+
+    /*
+     * Protocol-version independent fields
+     */
+    /** snmp version */
+    long            version;
+    /** Type of this PDU */	
+    int             command;
+    /** Request id - note: not incremented on retries */
+    long            reqid;  
+    /** Message id for V3 messages note: incremented for each retry */
+    long            msgid;
+    /** Unique ID for incoming transactions */
+    long            transid;
+    /** Session id for AgentX messages */
+    long            sessid;
+    /** Error status (non_repeaters in GetBulk) */
+    long            errstat;
+    /** Error index (max_repetitions in GetBulk) */
+    long            errindex;       
+    /** Uptime */
+    u_long          time;   
+    u_long          flags;
+
+    int             securityModel;
+    /** noAuthNoPriv, authNoPriv, authPriv */
+    int             securityLevel;  
+    int             msgParseModel;
+
+    /**
+     * Transport-specific opaque data.  This replaces the IP-centric address
+     * field.  
+     */
+    
+    void           *transport_data;
+    int             transport_data_length;
+
+    /**
+     * The actual transport domain.  This SHOULD NOT BE FREE()D.  
+     */
+
+    const oid      *tDomain;
+    size_t          tDomainLen;
+
+    netsnmp_variable_list *variables;
+
+
+    /*
+     * SNMPv1 & SNMPv2c fields
+     */
+    /** community for outgoing requests. */
+    u_char         *community;
+    /** length of community name. */
+    size_t          community_len;  
+
+    /*
+     * Trap information
+     */
+    /** System OID */
+    oid            *enterprise;     
+    size_t          enterprise_length;
+    /** trap type */
+    long            trap_type;
+    /** specific type */
+    long            specific_type;
+    /** This is ONLY used for v1 TRAPs  */
+    unsigned char   agent_addr[4];  
+
+    /*
+     *  SNMPv3 fields
+     */
+    /** context snmpEngineID */
+    u_char         *contextEngineID;
+    /** Length of contextEngineID */
+    size_t          contextEngineIDLen;     
+    /** authoritative contextName */
+    char           *contextName;
+    /** Length of contextName */
+    size_t          contextNameLen;
+    /** authoritative snmpEngineID for security */
+    u_char         *securityEngineID;
+    /** Length of securityEngineID */
+    size_t          securityEngineIDLen;    
+    /** on behalf of this principal */
+    char           *securityName;
+    /** Length of securityName. */
+    size_t          securityNameLen;        
+    
+    /*
+     * AgentX fields
+     *      (also uses SNMPv1 community field)
+     */
+    int             priority;
+    int             range_subid;
+    
+    void           *securityStateRef;
+} netsnmp_pdu;
+
+struct snmp_session;
+
+/** @typedef struct snmp_session netsnmp_session
+ * Typedefs the snmp_session struct intonetsnmp_session */
+typedef struct snmp_session netsnmp_session;
+
+typedef int     (*snmp_callback) (int, netsnmp_session *, int,
+                                      netsnmp_pdu *, void *);
+typedef int     (*netsnmp_callback) (int, netsnmp_session *, int,
+                                         netsnmp_pdu *, void *);
+/** @struct snmp_session
+ * The snmp session structure.
+ */
+struct snmp_session {
+    /*
+     * Protocol-version independent fields
+     */
+    /** snmp version */
+    long            version;
+    /** Number of retries before timeout. */
+    int             retries;
+    /** Number of uS until first timeout, then exponential backoff */
+    long            timeout;        
+    u_long          flags;
+    struct snmp_session *subsession;
+    struct snmp_session *next;
+
+    /** name or address of default peer (may include transport specifier and/or port number) */
+    char           *peername;
+    /** UDP port number of peer. (NO LONGER USED - USE peername INSTEAD) */
+    u_short         remote_port;
+    /** My Domain name or dotted IP address, 0 for default */
+    char           *localname;
+    /** My UDP port number, 0 for default, picked randomly */
+    u_short         local_port;     
+    /**
+     * Authentication function or NULL if null authentication is used 
+     */
+    u_char         *(*authenticator) (u_char *, size_t *, u_char *, size_t);
+    /** Function to interpret incoming data */
+    netsnmp_callback callback;      
+    /**
+     * Pointer to data that the callback function may consider important 
+     */
+    void           *callback_magic;
+    /** copy of system errno */
+    int             s_errno;
+    /** copy of library errno */
+    int             s_snmp_errno;   
+    /** Session id - AgentX only */
+    long            sessid; 
+
+    /*
+     * SNMPv1 & SNMPv2c fields
+     */
+    /** community for outgoing requests. */
+    u_char         *community;
+    /** Length of community name. */
+    size_t          community_len;  
+    /**  Largest message to try to receive.  */
+    size_t          rcvMsgMaxSize;
+    /**  Largest message to try to send.  */
+    size_t          sndMsgMaxSize;  
+
+    /*
+     * SNMPv3 fields
+     */
+    /** are we the authoritative engine? */
+    u_char          isAuthoritative;
+    /** authoritative snmpEngineID */
+    u_char         *contextEngineID;
+    /** Length of contextEngineID */
+    size_t          contextEngineIDLen;     
+    /** initial engineBoots for remote engine */
+    u_int           engineBoots;
+    /** initial engineTime for remote engine */
+    u_int           engineTime;
+    /** authoritative contextName */
+    char           *contextName;
+    /** Length of contextName */
+    size_t          contextNameLen;
+    /** authoritative snmpEngineID */
+    u_char         *securityEngineID;
+    /** Length of contextEngineID */
+    size_t          securityEngineIDLen;    
+    /** on behalf of this principal */
+    char           *securityName;
+    /** Length of securityName. */
+    size_t          securityNameLen;
+
+    /** auth protocol oid */
+    oid            *securityAuthProto;
+    /** Length of auth protocol oid */
+    size_t          securityAuthProtoLen;
+    /** Ku for auth protocol XXX */
+    u_char          securityAuthKey[USM_AUTH_KU_LEN];       
+    /** Length of Ku for auth protocol */
+    size_t          securityAuthKeyLen;
+    /** Kul for auth protocol */
+    u_char          *securityAuthLocalKey;       
+    /** Length of Kul for auth protocol XXX */
+    size_t          securityAuthLocalKeyLen;       
+
+    /** priv protocol oid */
+    oid            *securityPrivProto;
+    /** Length of priv protocol oid */
+    size_t          securityPrivProtoLen;
+    /** Ku for privacy protocol XXX */
+    u_char          securityPrivKey[USM_PRIV_KU_LEN];       
+    /** Length of Ku for priv protocol */
+    size_t          securityPrivKeyLen;
+    /** Kul for priv protocol */
+    u_char          *securityPrivLocalKey;       
+    /** Length of Kul for priv protocol XXX */
+    size_t          securityPrivLocalKeyLen;       
+
+    /** snmp security model, v1, v2c, usm */
+    int             securityModel;
+    /** noAuthNoPriv, authNoPriv, authPriv */
+    int             securityLevel;  
+    /** target param name */
+    char           *paramName;
+
+    /**
+     * security module specific 
+     */
+    void           *securityInfo;
+
+    /**
+     * 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?
+     */
+    void           *myvoid;
+};
+
 /*
  * A list of all the outstanding requests for a particular session.
  */
@@ -78,8 +320,8 @@ typedef struct request_list {
     void           *cb_data;        /* user callback data per request (NULL if unused) */
     int             retries;        /* Number of retries */
     u_long          timeout;        /* length to wait for timeout */
-    struct timeval  timeM;   /* Time this request was made [monotonic clock] */
-    struct timeval  expireM; /* Time this request is due to expire [monotonic clock]. */
+    struct timeval  time;   /* Time this request was made */
+    struct timeval  expire; /* time this request is due to expire */
     struct snmp_session *session;
     netsnmp_pdu    *pdu;    /* The pdu for this request
 			     * (saved so it can be retransmitted */
@@ -117,6 +359,8 @@ typedef struct request_list {
 #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 */
@@ -141,26 +385,18 @@ typedef struct request_list {
     /*
      * to determine type of Report from varbind_list 
      */
-#define REPORT_STATS_LEN  9	/* Length of prefix for MPD/USM report statistic objects */
-#define REPORT_STATS_LEN2 8	/* Length of prefix for Target report statistic objects */
-/* From SNMP-MPD-MIB */
+#define REPORT_STATS_LEN 9
 #define REPORT_snmpUnknownSecurityModels_NUM 1
-#define REPORT_snmpInvalidMsgs_NUM           2
-#define REPORT_snmpUnknownPDUHandlers_NUM    3
-/* From SNMP-USER-BASED-SM-MIB */
+#define REPORT_snmpInvalidMsgs_NUM 2
 #define REPORT_usmStatsUnsupportedSecLevels_NUM 1
 #define REPORT_usmStatsNotInTimeWindows_NUM 2
 #define REPORT_usmStatsUnknownUserNames_NUM 3
 #define REPORT_usmStatsUnknownEngineIDs_NUM 4
-#define REPORT_usmStatsWrongDigests_NUM     5
+#define REPORT_usmStatsWrongDigests_NUM 5
 #define REPORT_usmStatsDecryptionErrors_NUM 6
-/* From SNMP-TARGET-MIB */
-#define REPORT_snmpUnavailableContexts_NUM  4
-#define REPORT_snmpUnknownContexts_NUM      5
 
 #define SNMP_DETAIL_SIZE        512
 
-#define SNMP_FLAGS_UDP_BROADCAST   0x800
 #define SNMP_FLAGS_RESP_CALLBACK   0x400      /* Additional callback on response */
 #define SNMP_FLAGS_USER_CREATED    0x200      /* USM user has been created */
 #define SNMP_FLAGS_DONT_PROBE      0x100      /* don't probe for an engineID */
@@ -257,29 +493,132 @@ typedef struct request_list {
 #define SNMPERR_KRB5			(-63)
 #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			(-69)
+#define SNMPERR_MAX			(-65)
+
+#define non_repeaters	errstat
+#define max_repetitions errindex
+
+typedef union {
+   long           *integer;
+   u_char         *string;
+   oid            *objid;
+   u_char         *bitstring;
+   struct counter64 *counter64;
+#ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
+   float          *floatVal;
+   double         *doubleVal;
+   /*
+    * t_union *unionVal; 
+    */
+#endif                          /* NETSNMP_WITH_OPAQUE_SPECIAL_TYPES */
+} netsnmp_vardata;
+
+
+/** @struct variable_list
+ * The netsnmp variable list binding structure, it's typedef'd to
+ * netsnmp_variable_list.
+ */
+struct variable_list {
+   /** NULL for last variable */
+   struct variable_list *next_variable;    
+   /** Object identifier of variable */
+   oid            *name;   
+   /** number of subid's in name */
+   size_t          name_length;    
+   /** ASN type of variable */
+   u_char          type;   
+   /** value of variable */
+    netsnmp_vardata val;
+   /** the length of the value to be copied into buf */
+   size_t          val_len;
+   /** buffer to hold the OID */
+   oid             name_loc[MAX_OID_LEN];  
+   /** 90 percentile < 40. */
+   u_char          buf[40];
+   /** (Opaque) hook for additional data */
+   void           *data;
+   /** callback to free above */
+   void            (*dataFreeHook)(void *);    
+   int             index;
+};
+
+
+
+    /*
+     * netsnmp_session *snmp_open(session)
+     *      netsnmp_session *session;
+     *
+     * Sets up the session with the snmp_session information provided
+     * by the user.  Then opens and binds the necessary UDP port.
+     * A handle to the created session is returned (this is different than
+     * the pointer passed to snmp_open()).  On any error, NULL is returned
+     * and snmp_errno is set to the appropriate error code.
+     */
+    netsnmp_session *snmp_open(netsnmp_session *);
+
+    /*
+     * int snmp_close(session)
+     *     netsnmp_session *session;
+     *
+     * Close the input session.  Frees all data allocated for the session,
+     * dequeues any pending requests, and closes any sockets allocated for
+     * the session.  Returns 0 on error, 1 otherwise.
+     *
+     * snmp_close_sessions() does the same thing for all open sessions
+     */
+    int             snmp_close(netsnmp_session *);
+    int             snmp_close_sessions(void);
+
+
+    /*
+     * int snmp_send(session, pdu)
+     *     netsnmp_session *session;
+     *     netsnmp_pdu      *pdu;
+     *
+     * Sends the input pdu on the session after calling snmp_build to create
+     * a serialized packet.  If necessary, set some of the pdu data from the
+     * session defaults.  Add a request corresponding to this pdu to the list
+     * of outstanding requests on this session, then send the pdu.
+     * Returns the request id of the generated packet if applicable, otherwise 1.
+     * On any error, 0 is returned.
+     * The pdu is freed by snmp_send() unless a failure occured.
+     */
+    int             snmp_send(netsnmp_session *, netsnmp_pdu *);
+
+    /*
+     * int snmp_async_send(session, pdu, callback, cb_data)
+     *     netsnmp_session *session;
+     *     netsnmp_pdu      *pdu;
+     *     netsnmp_callback callback;
+     *     void   *cb_data;
+     *
+     * Sends the input pdu on the session after calling snmp_build to create
+     * a serialized packet.  If necessary, set some of the pdu data from the
+     * session defaults.  Add a request corresponding to this pdu to the list
+     * of outstanding requests on this session and store callback and data,
+     * then send the pdu.
+     * Returns the request id of the generated packet if applicable, otherwise 1.
+     * On any error, 0 is returned.
+     * The pdu is freed by snmp_send() unless a failure occured.
+     */
+    int             snmp_async_send(netsnmp_session *, netsnmp_pdu *,
+                                    netsnmp_callback, void *);
 
 
     /*
-     * General purpose memory allocation functions. Use these functions to
-     * allocate memory that may be reallocated or freed by the Net-SNMP
-     * library or to reallocate or free memory that has been allocated by the
-     * Net-SNMP library, and when working in a context where there is more than
-     * one heap. Examples are:
-     * - Perl XSUB's.
-     * - MSVC or MinGW with the Net-SNMP library compiled as a DLL instead of
-     *   a static library.
+     * void snmp_read(fdset)
+     *     fd_set  *fdset;
+     *
+     * Checks to see if any of the fd's set in the fdset belong to
+     * snmp.  Each socket with it's fd set has a packet read from it
+     * and snmp_parse is called on the packet received.  The resulting pdu
+     * 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 *netsnmp_malloc(size_t size);
-    NETSNMP_IMPORT void *netsnmp_calloc(size_t nelem, size_t elsize);
-    NETSNMP_IMPORT void *netsnmp_realloc(void *ptr, size_t size);
-    NETSNMP_IMPORT void netsnmp_free(void *ptr);
-    NETSNMP_IMPORT char *netsnmp_strdup(const char *s1);
+    void            snmp_read(fd_set *);
+
+
 
     /*
      * void
@@ -288,8 +627,57 @@ typedef struct request_list {
      *
      * Frees the pdu and any malloc'd data associated with it.
      */
+    void            snmp_free_pdu(netsnmp_pdu *);
 
-    NETSNMP_IMPORT void snmp_free_var_internals(netsnmp_variable_list *);     /* frees contents only */
+    void            snmp_free_var(netsnmp_variable_list *);     /* frees just this one */
+
+    void            snmp_free_varbind(netsnmp_variable_list * var);     /* frees all in list */
+
+    /*
+     * int snmp_select_info(numfds, fdset, timeout, block)
+     * int *numfds;
+     * fd_set   *fdset;
+     * struct timeval *timeout;
+     * int *block;
+     *
+     * 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.
+     * If activity occurs on any of these file descriptors, snmp_read
+     * should be called with that file descriptor set.
+     *
+     * The timeout is the latest time that SNMP can wait for a timeout.  The
+     * select should be done with the minimum time between timeout and any other
+     * timeouts necessary.  This should be checked upon each invocation of select.
+     * If a timeout is received, snmp_timeout should be called to check if the
+     * timeout was for SNMP.  (snmp_timeout is idempotent)
+     *
+     * Block is 1 if the select is requested to block indefinitely, rather than
+     * time out.  If block is input as 1, the timeout value will be treated as
+     * undefined, but it must be available for setting in snmp_select_info.  On
+     * return, if block is true, the value of timeout will be undefined.
+     *
+     * snmp_select_info returns the number of open sockets.  (i.e. The number
+     * of sessions open)
+     */
+    int             snmp_select_info(int *, fd_set *, struct timeval *,
+                                     int *);
+
+
+
+    /*
+     * void snmp_timeout();
+     *
+     * snmp_timeout should be called whenever the timeout from snmp_select_info
+     * expires, but it is idempotent, so snmp_timeout can be polled (probably a
+     * cpu expensive proposition).  snmp_timeout checks to see if any of the
+     * sessions have an outstanding request that has timed out.  If it finds one
+     * (or more), and that pdu has more retries available, a new packet is formed
+     * from the pdu and is resent.  If there are no more retries available, the
+     * callback for the session is used to alert the user of the timeout.
+     */
+
+    void            snmp_timeout(void);
 
 
     /*
@@ -331,27 +719,20 @@ typedef struct request_list {
 
     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 *,
@@ -359,10 +740,8 @@ typedef struct request_list {
     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
@@ -386,40 +765,27 @@ typedef struct request_list {
                                    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
+    netsnmp_variable_list *snmp_pdu_add_variable(netsnmp_pdu *, const oid *,
+                                                 size_t, u_char, const u_char *,
+                                                 size_t);
+    netsnmp_variable_list *snmp_varlist_add_variable(netsnmp_variable_list
+                                                     ** varlist,
+                                                     const oid * name,
+                                                     size_t name_length,
+                                                     u_char type,
+                                                     const u_char * value,
+                                                     size_t len);
     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
-
-#ifndef NETSNMP_FEATURE_REMOVE_STATISTICS
     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);
-#else /* NETSNMP_FEATURE_REMOVE_STATISTICS */
-
-/* allow code to continue referencing API even if statistics are removed */
-#define snmp_increment_statistic(X)
-#define snmp_increment_statistic_by(X,Y)
-#define snmp_init_statistics()
-
-#endif
-
     int             create_user_from_session(netsnmp_session * session);
-    int snmpv3_probe_contextEngineID_rfc5343(void *slp,
-                                             netsnmp_session *session);
+    int snmp_get_fd_for_session(struct snmp_session *sessp);
 
     /*
      * New re-allocating reverse encoding functions.  
@@ -438,13 +804,10 @@ typedef struct request_list {
 
 
 
-struct netsnmp_transport_s;
-
     /*
      * Extended open; fpre_parse has changed.  
      */
 
-    NETSNMP_IMPORT
     netsnmp_session *snmp_open_ex(netsnmp_session *,
                                   int (*fpre_parse) (netsnmp_session *,
                                                      struct
@@ -468,38 +831,70 @@ struct netsnmp_transport_s;
      * 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);
 
 
-    NETSNMP_IMPORT
-    void            netsnmp_sess_log_error(int priority,
-                                           const char *prog_string,
-                                           netsnmp_session * ss);
-    const char *    snmp_pdu_type(int type);
+    /*
+     * 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,
+     * but operate on a single session only.
+     *
+     * Synopsis:
+     
+     void * sessp;
+     netsnmp_session session, *ss;
+     netsnmp_pdu *pdu, *response;
+     
+     snmp_sess_init(&session);
+     session.retries = ...
+     session.remote_port = ...
+     sessp = snmp_sess_open(&session);
+     ss = snmp_sess_session(sessp);
+     if (ss == NULL)
+     exit(1);
+     ...
+     if (ss->community) free(ss->community);
+     ss->community = strdup(gateway);
+     ss->community_len = strlen(gateway);
+     ...
+     snmp_sess_synch_response(sessp, pdu, &response);
+     ...
+     snmp_sess_close(sessp);
+     
+     * See also:
+     * snmp_sess_synch_response, in snmp_client.h.
+     
+     * Notes:
+     *  1. Invoke snmp_sess_session after snmp_sess_open.
+     *  2. snmp_sess_session return value is an opaque pointer.
+     *  3. Do NOT free memory returned by snmp_sess_session.
+     *  4. Replace snmp_send(ss,pdu) with snmp_sess_send(sessp,pdu)
+     */
+
+    void            snmp_sess_init(netsnmp_session *);
+    void           *snmp_sess_open(netsnmp_session *);
+    void           *snmp_sess_pointer(netsnmp_session *);
+    netsnmp_session *snmp_sess_session(void *);
 
     /*
      * Return the netsnmp_transport structure associated with the given opaque
      * 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 ------------------------------------------ 
+     * EXPERIMENTAL API EXTENSIONS ------------------------------------------ 
      * 
      * snmp_sess_add_ex, snmp_sess_add, snmp_add 
      * 
@@ -546,7 +941,6 @@ struct netsnmp_transport_s;
                                   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 *,
@@ -554,7 +948,6 @@ struct netsnmp_transport_s;
                                                  *, 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 *,
@@ -579,6 +972,28 @@ struct netsnmp_transport_s;
                                                                 *, void *,
                                                                 size_t)
         );
+
+    /*
+     * use return value from snmp_sess_open as void * parameter 
+     */
+
+    int             snmp_sess_send(void *, netsnmp_pdu *);
+    int             snmp_sess_async_send(void *, netsnmp_pdu *,
+                                         netsnmp_callback, void *);
+    int             snmp_sess_select_info(void *, int *, fd_set *,
+                                          struct timeval *, int *);
+    int             snmp_sess_read(void *, fd_set *);
+    void            snmp_sess_timeout(void *);
+    int             snmp_sess_close(void *);
+
+    void            snmp_sess_error(void *, int *, int *, char **);
+    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);
+
     /*
      * end single session API 
      */
@@ -664,48 +1079,7 @@ struct netsnmp_transport_s;
 #define  STAT_TARGET_STATS_START             STAT_SNMPUNAVAILABLECONTEXTS
 #define  STAT_TARGET_STATS_END               STAT_SNMPUNKNOWNCONTEXTS
 
-    /*
-     * 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
-
-    /*
-     * Internal: The list of active/open sessions.
-     */
-    struct session_list {
-       struct session_list *next;
-       netsnmp_session *session;
-       netsnmp_transport *transport;
-       struct snmp_internal_session *internal;
-    };
+#define  MAX_STATS                           43
 
 #ifdef __cplusplus
 }
diff --git a/include/net-snmp/library/snmp_assert.h b/include/net-snmp/library/snmp_assert.h
index 8f52a69..2c8565d 100644
--- a/include/net-snmp/library/snmp_assert.h
+++ b/include/net-snmp/library/snmp_assert.h
@@ -29,99 +29,32 @@
 #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_FUNC_FMT " %s()\n"
-#          define NETSNMP_FUNC_PARAM NETSNMP_FUNCTION
-#      else
-#          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 {        \
+#      ifdef  HAVE_CPP_UNDERBAR_FUNCTION_DEFINED
+#         define netsnmp_assert(x)  do { \
                  if ( x ) \
                     ; \
-                 else { \
-                    return y; \
-                 } \
+                 else \
+                    snmp_log(LOG_ERR,"netsnmp_assert %s failed %s:%d %s()\n", \
+                             __STRING(x),__FILE__,__LINE__,__FUNCTION__); \
               }while(0)
-#      define netsnmp_assert_or_msgreturn(x, y, z)  do {       \
-                 if ( x ) \
+#      else
+#         define netsnmp_assert(x)  do { \
+                 if( x )\
                     ; \
-                 else { \
-                    return z; \
-                 } \
+                 else \
+                    snmp_log(LOG_ERR,"netsnmp_assert %s failed %s:%d\n", \
+                             __STRING(x),__FILE__,__LINE__); \
               }while(0)
+#      endif
+#   else /* NO DEBUGGING */
+#      define netsnmp_assert(x)
 #   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 ea54e7d..85c0aba 100644
--- a/include/net-snmp/library/snmp_client.h
+++ b/include/net-snmp/library/snmp_client.h
@@ -26,12 +26,6 @@ SOFTWARE.
 #ifndef SNMP_CLIENT_H
 #define SNMP_CLIENT_H
 
-#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
 extern          "C" {
 #endif
@@ -54,112 +48,62 @@ extern          "C" {
         netsnmp_pdu    *pdu;
     };
 
-    NETSNMP_IMPORT
+    int             snmp_set_var_value(netsnmp_variable_list *,
+                                       const u_char *, size_t);
+    int             snmp_set_var_objid(netsnmp_variable_list * vp,
+                                       const oid * objid,
+                                       size_t name_length);
+    int             snmp_set_var_typed_value(netsnmp_variable_list *
+                                             newvar, u_char type,
+                                             const u_char * val_str,
+                                             size_t val_len);
+    int             snmp_set_var_typed_integer(netsnmp_variable_list * newvar,
+                                               u_char type, long val);
     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,
-                                                const oid *name, size_t len);
+                                                oid *name, size_t len);
 
+    netsnmp_variable_list *snmp_add_null_var(netsnmp_pdu *, const oid *, size_t);
+    netsnmp_pdu    *snmp_pdu_create(int);
+    netsnmp_pdu    *snmp_fix_pdu(netsnmp_pdu *, int);
+    netsnmp_pdu    *snmp_clone_pdu(netsnmp_pdu *);
     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 *);
-    NETSNMP_IMPORT
+    netsnmp_variable_list *snmp_clone_varbind(netsnmp_variable_list *);
+    const char     *snmp_errstring(int);
+    int             snmp_synch_response(netsnmp_session *, netsnmp_pdu *,
+                                        netsnmp_pdu **);
     int             snmp_synch_response_cb(netsnmp_session *,
                                            netsnmp_pdu *, netsnmp_pdu **,
                                            snmp_callback);
-    NETSNMP_IMPORT
-    int             snmp_clone_mem(void **, const void *, unsigned);
+    int             snmp_clone_mem(void **, void *, unsigned);
 
+    /*
+     * single session API - see snmp_api.h for full details 
+     */
+    int             snmp_sess_synch_response(void *, netsnmp_pdu *,
+                                             netsnmp_pdu **);
 
-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 *);
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-NETSNMP_IMPORT
 int netsnmp_query_set(     netsnmp_variable_list *, netsnmp_session *);
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
-
-/** **************************************************************************
- *
- * 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
 }
diff --git a/include/net-snmp/library/snmp_debug.h b/include/net-snmp/library/snmp_debug.h
index a3969f6..9e3d5a9 100644
--- a/include/net-snmp/library/snmp_debug.h
+++ b/include/net-snmp/library/snmp_debug.h
@@ -15,60 +15,36 @@ extern          "C" {
      */
 
 
-#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. 
      */
-    NETSNMP_IMPORT
-    void            debugmsg(const char *token, const char *format, ...)
-                        NETSNMP_ATTRIBUTE_FORMAT(printf, 2, 3);
-    NETSNMP_IMPORT
+#if HAVE_STDARG_H
+    void            debugmsg(const char *token, const char *format, ...);
     void            debugmsgtoken(const char *token, const char *format,
-                                  ...)
-                        NETSNMP_ATTRIBUTE_FORMAT(printf, 2, 3);
+                                  ...);
     void            debug_combo_nc(const char *token, const char *format,
-                                   ...)
-                        NETSNMP_ATTRIBUTE_FORMAT(printf, 2, 3);
-
-#undef NETSNMP_ATTRIBUTE_FORMAT
-
-    NETSNMP_IMPORT
+                                   ...);
+#else
+    void            debugmsg(va_alist);
+    void            debugmsgtoken(va_alist);
+    void            debug_combo_nc(va_alist);
+#endif
     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);
-    NETSNMP_IMPORT
-    void            debugmsg_hex(const char *token, const u_char * thedata,
+    void            debugmsg_hex(const char *token, u_char * thedata,
                                  size_t len);
-    NETSNMP_IMPORT
-    void            debugmsg_hextli(const char *token, const u_char * thedata,
+    void            debugmsg_hextli(const char *token, 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);
+    char           *debug_indent(void);
 
     /*
      * Use these macros instead of the functions above to allow them to be
@@ -145,14 +121,11 @@ extern          "C" {
 #define __DBGMSGL_NC(x)  __DBGTRACE; debugmsg x
 #define __DBGMSGTL_NC(x) __DBGTRACE; debug_combo_nc x
 
-#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__))
+#ifdef  HAVE_CPP_UNDERBAR_FUNCTION_DEFINED
+#define __DBGTRACE       __DBGMSGT(("trace","%s(): %s, %d:\n",__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
@@ -163,11 +136,11 @@ extern          "C" {
 #define __DBGMSGOIDRANGE(x) debugmsg_oidrange x
 #define __DBGMSGHEX(x)     debugmsg_hex x
 #define __DBGMSGHEXTLI(x)  debugmsg_hextli x
-#define __DBGINDENT()      debug_indent_get()
+#define __DBGINDENT()      debug_indent()
 #define __DBGINDENTADD(x)  debug_indent_add(x)
 #define __DBGINDENTMORE()  debug_indent_add(2)
 #define __DBGINDENTLESS()  debug_indent_add(-2)
-#define __DBGPRINTINDENT(token) __DBGMSGTL((token, "%*s", __DBGINDENT(), ""))
+#define __DBGPRINTINDENT(token) __DBGMSGTL((token, "%s", __DBGINDENT()))
 
 #define __DBGDUMPHEADER(token,x) \
         __DBGPRINTINDENT("dumph_" token); \
@@ -184,11 +157,12 @@ extern          "C" {
 
 #define __DBGDUMPSECTION(token,x) \
         __DBGPRINTINDENT("dumph_" token); \
-        debugmsg("dumph_" token,"%s\n",x);\
+        debugmsg("dumph_" token,x); \
+        debugmsg("dumph_" token,"\n"); \
         __DBGINDENTMORE()
 
 #define __DBGDUMPSETUP(token,buf,len) \
-        debugmsg("dumpx" token, "dumpx_%s:%*s", token, __DBGINDENT(), ""); \
+        debugmsg("dumpx" token, "dumpx_%s:%s", token, __DBGINDENT()); \
         __DBGMSGHEX(("dumpx_" token,buf,len)); \
         if (debug_is_token_registered("dumpv" token) == SNMPERR_SUCCESS || \
             debug_is_token_registered("dumpv_" token) != SNMPERR_SUCCESS) { \
@@ -196,31 +170,95 @@ extern          "C" {
         } else { \
             debugmsg("dumpx_" token,"  "); \
         } \
-        debugmsg("dumpv" token, "dumpv_%s:%*s", token, __DBGINDENT(), "");
+        debugmsg("dumpv" token, "dumpv_%s:%s", token, __DBGINDENT());
 
 /******************* End   private macros ************************/
 /*****************************************************************/
-#endif /* NETSNMP_NO_DEBUGGING */
 
-#ifdef __cplusplus
-}
-#endif
+/*****************************************************************/
+/********************Start public  macros ************************/
 
-    /* Public macros moved to top-level API header file */
-#include <net-snmp/output_api.h>
+#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 DEBUGINDENT()      do {if (_DBG_IF_) {__DBGINDENT();} }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)
 
-#ifdef __cplusplus
-extern          "C" {
-#endif
 
-    void            snmp_debug_init(void);
+#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 DEBUGINDENT()
+#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
 
 #define MAX_DEBUG_TOKENS 256
 #define MAX_DEBUG_TOKEN_LEN 128
 #define DEBUG_TOKEN_DELIMITER ","
 #define DEBUG_ALWAYS_TOKEN "all"
 
-#ifndef NETSNMP_NO_DEBUGGING
+    /*
+     * 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);
 
 /*
  * internal:
@@ -234,9 +272,7 @@ typedef struct netsnmp_token_descr_s {
 
 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 237891d..b6ea884 100644
--- a/include/net-snmp/library/snmp_enum.h
+++ b/include/net-snmp/library/snmp_enum.h
@@ -48,11 +48,6 @@ extern          "C" {
     int             se_find_free_value(unsigned int major, unsigned int minor);
     char           *se_find_label(unsigned int major, unsigned int minor,
                                   int value);
-    /**
-     * Add the pair (label, value) to the list (major, minor). Transfers
-     * ownership of the memory pointed to by label to the list:
-     * clear_snmp_enum() deallocates that memory.
-     */
     int             se_add_pair(unsigned int major, unsigned int minor,
                                 char *label, int value);
 
@@ -63,19 +58,11 @@ extern          "C" {
      * 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);
-    /**
-     * Add the pair (label, value) to the slist with name listname. Transfers
-     * 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,19 +81,12 @@ extern          "C" {
      * Persistent enumeration lists
      */
     void            se_store_enum_list(struct snmp_enum_list *new_list,
-                                       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);
+                                       const char *token, char *type);
+    void            se_store_list(unsigned int major, unsigned int minor, char *type);
+    void            se_store_slist(const char *listname, char *type);
     int             se_store_slist_callback(int majorID, int minorID,
                                            void *serverargs, void *clientargs);
     void            se_read_conf(const char *word, char *cptr);
-    /**
-     * 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_impl.h b/include/net-snmp/library/snmp_impl.h
index f79aebd..0d32c44 100644
--- a/include/net-snmp/library/snmp_impl.h
+++ b/include/net-snmp/library/snmp_impl.h
@@ -72,15 +72,10 @@ SOFTWARE.
     /*
      * Access control statements for the agent 
      */
-#define NETSNMP_OLDAPI_RONLY	0x1     /* read access only */
-#define NETSNMP_OLDAPI_RWRITE	0x2     /* read and write access (must have 0x2 bit set) */
-#define NETSNMP_OLDAPI_NOACCESS 0x0000  /* no access for anybody */
-
-#ifndef NETSNMP_NO_LEGACY_DEFINITIONS
-#define RONLY           NETSNMP_OLDAPI_RONLY
-#define RWRITE          NETSNMP_OLDAPI_RWRITE
-#define NOACCESS        NETSNMP_OLDAPI_NOACCESS
-#endif
+#define RONLY	0x1             /* read access only */
+#define RWRITE	0x2             /* read and write access (must have 0x2 bit set) */
+
+#define NOACCESS 0x0000         /* no access for anybody */
 
     /*
      * defined types (from the SMI, RFC 1157) 
diff --git a/include/net-snmp/library/snmp_logging.h b/include/net-snmp/library/snmp_logging.h
index 1d7921b..0dde7ae 100644
--- a/include/net-snmp/library/snmp_logging.h
+++ b/include/net-snmp/library/snmp_logging.h
@@ -1,17 +1,18 @@
 #ifndef SNMP_LOGGING_H
 #define SNMP_LOGGING_H
 
-#include <net-snmp/types.h>
-#include <net-snmp/output_api.h>
+#ifdef __cplusplus
+extern          "C" {
+#endif
 
+#include <stdio.h>
 #if HAVE_SYSLOG_H
 #include <syslog.h>
 #endif
-#include <stdio.h>
+#if HAVE_STDARG_H
 #include <stdarg.h>
-
-#ifdef __cplusplus
-extern          "C" {
+#else
+#include <varargs.h>
 #endif
 
 #ifndef LOG_ERR
@@ -34,36 +35,51 @@ extern          "C" {
 #define DEFAULT_LOG_ID "net-snmp"
 #endif
 
-#define NETSNMP_LOGONCE(x) do { \
-        static char logged = 0; \
-        if (!logged) {          \
-            logged = 1;         \
-            snmp_log x ;        \
-        }                       \
-    } while(0)
-
     void            init_snmp_logging(void);
-    NETSNMP_IMPORT
+    void            shutdown_snmp_logging(void);
+    int             snmp_get_do_logging(void);
     void            snmp_disable_syslog(void);
     void            snmp_disable_filelog(void);
-    NETSNMP_IMPORT
     void            snmp_disable_stderrlog(void);
     void            snmp_disable_calllog(void);
-    NETSNMP_IMPORT
+    void            snmp_disable_log(void);
     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 HAVE_STDARG_H
+# 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
+#else
+    int             snmp_log(va_alist);
+#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
@@ -72,13 +88,8 @@ extern          "C" {
 #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 *);
@@ -104,21 +115,13 @@ extern          "C" {
 	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
deleted file mode 100644
index b291736..0000000
--- a/include/net-snmp/library/snmp_openssl.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Header file for the OpenSSL Wrapper
- */
-
-#ifndef SNMP_OPENSSL_H
-#define SNMP_OPENSSL_H
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    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
-#endif                          /* SNMP_OPENSSL_H */
diff --git a/include/net-snmp/library/snmp_parse_args.h b/include/net-snmp/library/snmp_parse_args.h
index 1ad63e0..c0fe71e 100644
--- a/include/net-snmp/library/snmp_parse_args.h
+++ b/include/net-snmp/library/snmp_parse_args.h
@@ -1,89 +1,16 @@
 #ifndef SNMP_PARSE_ARGS_H
 #define SNMP_PARSE_ARGS_H
-
-/**
- * @file snmp_parse_args.h
- *
- * Support for initializing variables of type netsnmp_session from command
- * line arguments
- */
-
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-/** 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 aabb7ed..aeeb24a 100644
--- a/include/net-snmp/library/snmp_secmod.h
+++ b/include/net-snmp/library/snmp_secmod.h
@@ -10,9 +10,8 @@ extern          "C" {
 /* Locally defined security models.
  * (Net-SNMP enterprise number = 8072)*256 + local_num
  */
-#define NETSNMP_SEC_MODEL_KSM     2066432
-#define NETSNMP_KSM_SECURITY_MODEL     NETSNMP_SEC_MODEL_KSM
-#define NETSNMP_TSM_SECURITY_MODEL     SNMP_SEC_MODEL_TSM
+#define NETSNMP_KSM_SECURITY_MODEL     2066432
+#define NETSNMP_LOCALSM_SECURITY_MODEL 2066433
 
 struct snmp_secmod_def;
 
@@ -91,11 +90,7 @@ typedef void    (SecmodHandleReport) (void *sessp,
                                       netsnmp_session *,
                                       int result,
                                       netsnmp_pdu *origpdu);
-typedef int     (SecmodDiscoveryMethod) (void *slp, netsnmp_session *session);
-typedef int     (SecmodPostDiscovery) (void *slp, netsnmp_session *session);
 
-typedef int     (SecmodSessionSetup) (netsnmp_session *in_session,
-                                      netsnmp_session *out_session);
 /*
  * definition of a security module
  */
@@ -110,7 +105,6 @@ struct snmp_secmod_def {
      */
     SecmodSessionCallback *session_open;        /* called in snmp_sess_open()  */
     SecmodSessionCallback *session_close;       /* called in snmp_sess_close() */
-    SecmodSessionSetup    *session_setup;
 
     /*
      * pdu manipulation routines 
@@ -131,12 +125,6 @@ struct snmp_secmod_def {
     * error and report handling
     */
    SecmodHandleReport *handle_report;
-
-   /*
-    * default engineID discovery mechanism
-    */
-   SecmodDiscoveryMethod *probe_engineid;
-   SecmodPostDiscovery   *post_probe_engineid;
 };
 
 
@@ -158,20 +146,16 @@ int             register_sec_mod(int, const char *,
 /*
  * find a security service definition 
  */
-NETSNMP_IMPORT
 struct snmp_secmod_def *find_sec_mod(int);
 /*
  * register a security service 
  */
 int             unregister_sec_mod(int);        /* register a security service */
 void            init_secmod(void);
-NETSNMP_IMPORT
-void            shutdown_secmod(void);
 
 /*
  * 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 711f676..5a4565d 100644
--- a/include/net-snmp/library/snmp_service.h
+++ b/include/net-snmp/library/snmp_service.h
@@ -7,7 +7,7 @@ extern "C" {
 
 /* Default port handling */
 
-NETSNMP_IMPORT int
+extern int
 netsnmp_register_default_domain(const char* application, const char* domain);
 
 extern const char*
@@ -19,7 +19,7 @@ netsnmp_lookup_default_domains(const char* application);
 extern void
 netsnmp_clear_default_domain(void);
 
-NETSNMP_IMPORT int
+extern int
 netsnmp_register_default_target(const char* application, const char* domain,
 				const char* target);
 
@@ -29,7 +29,7 @@ netsnmp_lookup_default_target(const char* application, const char* domain);
 extern void
 netsnmp_clear_default_target(void);
 
-NETSNMP_IMPORT void
+extern 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 4162897..ce742d5 100644
--- a/include/net-snmp/library/snmp_transport.h
+++ b/include/net-snmp/library/snmp_transport.h
@@ -2,31 +2,6 @@
 #define _SNMP_TRANSPORT_H
 
 #include <sys/types.h>
-
-#if HAVE_SYS_SOCKET_H
-#ifdef solaris2
-#define _XPG4_2
-#endif
-
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
-#define _LINUX_SOURCE_COMPAT
-#endif
-
-#include <sys/socket.h>
-
-#ifdef solaris2
-# ifndef CMSG_SPACE
-#  define CMSG_SPACE(l) \
-            ((unsigned int)_CMSG_HDR_ALIGN(sizeof (struct cmsghdr) + (l)))
-#  define CMSG_LEN(l)   (_CMSG_HDR_ALIGN(sizeof(struct cmsghdr)) + (l))
-# endif
-#endif
-#endif /* HAVE_SYS_SOCKET_H */
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
 #include <net-snmp/library/asn1.h>
 
 #ifdef __cplusplus
@@ -41,14 +16,9 @@ extern          "C" {
 
 /*  Some transport-type flags.  */
 
-#define		NETSNMP_TRANSPORT_FLAG_STREAM	 0x01
-#define		NETSNMP_TRANSPORT_FLAG_LISTEN	 0x02
-#define		NETSNMP_TRANSPORT_FLAG_TUNNELED	 0x04
-#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 */
+#define		NETSNMP_TRANSPORT_FLAG_STREAM	0x01
+#define		NETSNMP_TRANSPORT_FLAG_LISTEN	0x02
+#define		NETSNMP_TRANSPORT_FLAG_TUNNELED	0x04
 
 /*  The standard SNMP domains.  */
 
@@ -63,53 +33,8 @@ NETSNMP_IMPORT size_t   netsnmpCONSDomain_len;
 NETSNMP_IMPORT size_t   netsnmpDDPDomain_len;
 NETSNMP_IMPORT size_t   netsnmpIPXDomain_len;
 
-/* Structure which stores transport security model specific parameters */
-/* isms-secshell-11 section 4.1 */
-
-/* contents documented in draft-ietf-isms-transport-security-model
-   Section 3.2 */
-/* note: VACM only allows <= 32 so this is overkill till another ACM comes */
-#define NETSNMP_TM_MAX_SECNAME 256
-
-typedef union netsnmp_sockaddr_storage_u {
-    struct sockaddr     sa;
-    struct sockaddr_in  sin;
-#ifdef NETSNMP_ENABLE_IPV6
-    struct sockaddr_in6 sin6;
-#endif
-} netsnmp_sockaddr_storage;
-
-typedef struct netsnmp_addr_pair_s {
-   netsnmp_sockaddr_storage remote_addr;
-   netsnmp_sockaddr_storage local_addr;
-} netsnmp_addr_pair;
-
-typedef struct netsnmp_indexed_addr_pair_s {
-   netsnmp_sockaddr_storage remote_addr;
-   netsnmp_sockaddr_storage local_addr;
-    int if_index;
-} netsnmp_indexed_addr_pair;
-
-typedef struct netsnmp_tmStateReference_s {
-   oid    transportDomain[MAX_OID_LEN];
-   size_t transportDomainLen;
-   char   securityName[NETSNMP_TM_MAX_SECNAME];
-   size_t securityNameLen;
-   int    requestedSecurityLevel;
-   int    transportSecurityLevel;
-   char   sameSecurity;
-   char   sessionID[8];
-   
-   char   have_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.  */
 
@@ -143,14 +68,6 @@ typedef struct netsnmp_transport_s {
 
     size_t          msgMaxSize;
 
-#ifdef FOR_STANDARDS_COMPLIANCE_OR_FUTURE_USE
-    /* TM state reference per ISMS WG solution */
-    netsnmp_tmStateReference *tmStateRef;
-#endif
-
-    /* tunneled transports */
-    struct netsnmp_transport_s * base_transport;
-
     /*  Callbacks.  Arguments are:
      *		
      *              "this" pointer, fd, buf, size, *opaque, *opaque_length  
@@ -162,34 +79,14 @@ typedef struct netsnmp_transport_s {
 				 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);
-
-    /*  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" */
+    char           *(*f_fmtaddr)(struct netsnmp_transport_s *, void *,
+				 int);
 } netsnmp_transport;
 
 typedef struct netsnmp_transport_list_s {
@@ -217,22 +114,13 @@ typedef struct netsnmp_tdomain_s {
 
 } 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,
 				       netsnmp_transport *transport);
-int netsnmp_sockaddr_size(struct sockaddr *sa);
 
 
 /*
@@ -245,7 +133,6 @@ netsnmp_transport *netsnmp_transport_copy(netsnmp_transport *t);
 
 /*  Free an netsnmp_transport.  */
 
-NETSNMP_IMPORT
 void            netsnmp_transport_free(netsnmp_transport *t);
 
 
@@ -257,7 +144,6 @@ void            netsnmp_transport_free(netsnmp_transport *t);
  * *out_len.
  */
 
-NETSNMP_IMPORT
 int             netsnmp_tdomain_support(const oid *in_oid, size_t in_len,
 					const oid **out_oid, size_t *out_len);
 
@@ -265,52 +151,35 @@ int             netsnmp_tdomain_register(netsnmp_tdomain *domain);
     
 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 1b563f0..0284727 100644
--- a/include/net-snmp/library/snmpksm.h
+++ b/include/net-snmp/library/snmpksm.h
@@ -13,9 +13,7 @@ extern          "C" {
                                           snmp_secmod_outgoing_params *);
     int             ksm_process_in_msg(struct snmp_secmod_incoming_params
                                        *);
-    void            init_ksm(void);
-
-    void            shutdown_ksm(void);
+    void            init_usm(void);
 
     /*
      * This is the "key usage" that is used by the new crypto API.  It's used
@@ -27,8 +25,6 @@ extern          "C" {
 #define KSM_KEY_USAGE_ENCRYPTION	1030
 #define KSM_KEY_USAGE_CHECKSUM		1031
 
-#define KSM_SEC_MODEL_NUMBER            SNMP_SEC_MODEL_KSM
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/net-snmp/library/snmptsm.h b/include/net-snmp/library/snmptsm.h
deleted file mode 100644
index 264a928..0000000
--- a/include/net-snmp/library/snmptsm.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Header file for Transport Security Model support
- */
-
-#ifndef SNMPTSM_H
-#define SNMPTSM_H
-
-#define TSM_SEC_MODEL_NUMBER            SNMP_SEC_MODEL_TSM
-
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    int             tsm_rgenerate_out_msg(struct
-                                          snmp_secmod_outgoing_params *);
-    int             tsm_process_in_msg(struct snmp_secmod_incoming_params
-                                       *);
-    void            init_tsm(void);
-
-    void            shutdown_tsm(void);
-
-    #define NETSNMP_TM_SAME_SECURITY_NOT_REQUIRED 0
-    #define NETSNMP_TM_USE_SAME_SECURITY          1
-
-    /* basically we store almost nothing else but a tm ref */
-    typedef struct netsnmp_tsmSecurityReference_s {
-       netsnmp_tmStateReference *tmStateRef;
-    } netsnmp_tsmSecurityReference;
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* SNMPTSM_H */
diff --git a/include/net-snmp/library/snmpusm.h b/include/net-snmp/library/snmpusm.h
index 9d673cc..6d66271 100644
--- a/include/net-snmp/library/snmpusm.h
+++ b/include/net-snmp/library/snmpusm.h
@@ -7,8 +7,6 @@
 #ifndef SNMPUSM_H
 #define SNMPUSM_H
 
-#include <net-snmp/library/callback.h>
-
 #ifdef __cplusplus
 extern          "C" {
 #endif
@@ -28,7 +26,7 @@ extern          "C" {
 #define USM_MD5_AND_SHA_AUTH_LEN        12      /* bytes */
 #define USM_MAX_AUTHSIZE                USM_MD5_AND_SHA_AUTH_LEN
 
-#define USM_SEC_MODEL_NUMBER            SNMP_SEC_MODEL_USM
+#define USM_SEC_MODEL_NUMBER            3
 
     /*
      * Structures.
@@ -75,7 +73,6 @@ extern          "C" {
         u_char         *privKey;
         size_t          privKeyLen;
         u_char         *userPublicString;
-        size_t          userPublicStringLen;
         int             userStatus;
         int             userStorageType;
        /* these are actually DH * pointers but only if openssl is avail. */
@@ -139,9 +136,6 @@ extern          "C" {
                                                         usmStateReference
                                                         *ref,
                                                         int sec_level);
-    int             usm_clone_usmStateReference(struct usmStateReference *from,
-                                                    struct usmStateReference **to);
-
 
 #ifdef NETSNMP_ENABLE_TESTING_CODE
     void            emergency_print(u_char * field, u_int length);
@@ -180,7 +174,6 @@ extern          "C" {
                                                     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;
@@ -201,79 +194,50 @@ extern          "C" {
                                        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(const char *line);
-    NETSNMP_IMPORT
+    struct usmUser *usm_read_user(char *line);
     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);
-    NETSNMP_IMPORT
-    void            shutdown_usm(void);
-
-    NETSNMP_IMPORT
-    int             usm_create_user_from_session(netsnmp_session * session);
-    SecmodPostDiscovery usm_create_user_from_session_hook;
-    NETSNMP_IMPORT
-    void            usm_parse_create_usmUser(const char *token,
-                                             char *line);
-    NETSNMP_IMPORT
-    const oid      *get_default_authtype(size_t *);
-    NETSNMP_IMPORT
-    const oid      *get_default_privtype(size_t *);
-    void            snmpv3_authtype_conf(const char *word, char *cptr);
-    void            snmpv3_privtype_conf(const char *word, char *cptr);
 
 #ifdef __cplusplus
 }
diff --git a/include/net-snmp/library/snmpv3.h b/include/net-snmp/library/snmpv3.h
index a958809..e248441 100644
--- a/include/net-snmp/library/snmpv3.h
+++ b/include/net-snmp/library/snmpv3.h
@@ -9,24 +9,25 @@
 extern          "C" {
 #endif
 
-#define MAX_ENGINEID_LENGTH 32 /* per SNMP-FRAMEWORK-MIB SnmpEngineID TC */
+#define MAX_ENGINEID_LENGTH 128
 
 #define ENGINEID_TYPE_IPV4    1
 #define ENGINEID_TYPE_IPV6    2
 #define ENGINEID_TYPE_MACADDR 3
 #define ENGINEID_TYPE_TEXT    4
-#define ENGINEID_TYPE_EXACT   5
 #define ENGINEID_TYPE_NETSNMP_RND 128
 
 #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 *);
     void            engineIDType_conf(const char *, char *);
     void            engineIDNic_conf(const char *, char *);
-    NETSNMP_IMPORT
+    void            snmpv3_authtype_conf(const char *word, char *cptr);
+    void            snmpv3_privtype_conf(const char *word, char *cptr);
+    void            usm_parse_create_usmUser(const char *token,
+                                             char *line);
     void            init_snmpv3(const char *);
     int             init_snmpv3_post_config(int majorid, int minorid,
                                             void *serverarg,
@@ -38,21 +39,18 @@ extern          "C" {
     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);
+    const oid      *get_default_authtype(size_t *);
+    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 5c58e4a..2538664 100644
--- a/include/net-snmp/library/system.h
+++ b/include/net-snmp/library/system.h
@@ -47,19 +47,15 @@ SOFTWARE.
      * Returns: -1 : fork failed
      *           0 : No errors
      */
-    NETSNMP_IMPORT
     int netsnmp_daemonize(int quit_immediately, int stderr_log);
 
     /*
      * Definitions for the system dependent library file
-     *
-     * Do not define 'struct direct' when MSVC_PERL is defined because a
-     * structure with that name is also defined in the Perl header
-     * lib\CORE\dirent.h. Do not declare gettimeofday() either.
      */
 #ifndef MSVC_PERL
+#ifdef WIN32
 
-#ifndef HAVE_READDIR
+#ifndef HAVE_DIRENT_H /* MingGW has dirent.h but also defines WIN32 */
     /*
      * structure of a directory entry 
      */
@@ -80,90 +76,51 @@ SOFTWARE.
         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 */
+#endif /* HAVE_DIRENT_H */
 
 #ifndef HAVE_GETTIMEOFDAY
-    NETSNMP_IMPORT
     int             gettimeofday(struct timeval *, struct timezone *tz);
 #endif
-
-#endif                         /* MSVC_PERL */
-
-/*
- * 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
+#ifndef HAVE_STRCASECMP
     int             strcasecmp(const char *s1, const char *s2);
 #endif
-#if !defined(HAVE_STRNCASECMP) && !defined(strncasecmp)
-    NETSNMP_IMPORT
+#ifndef HAVE_STRNCASECMP
     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()
+
 #else                           /* !WIN32 */
+
 #define SOCK_STARTUP
 #define SOCK_CLEANUP
+
 #endif                          /* WIN32 */
+#endif				/* MSVC_PERL */
 
 #include <net-snmp/types.h>     /* For definition of in_addr_t */
 
-    /* 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 versions of dns resoloution.. may include DNSSEC validation. */
-    struct addrinfo; /* forward declare */
-    NETSNMP_IMPORT
-    struct hostent *netsnmp_gethostbyname(const char *name);
-
-    NETSNMP_IMPORT
-    struct hostent *netsnmp_gethostbyaddr(const void *addr, socklen_t len,
-                                          int type);
-
-    NETSNMP_IMPORT
-    int             netsnmp_getaddrinfo(const char *name, const char *service,
-                                        const struct addrinfo *hints,
-                                        struct addrinfo **res);
-
-    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
 
-    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);
+    int             calculate_time_diff(struct timeval *,
+                                        struct timeval *);
+    u_int           calculate_sectime_diff(struct timeval *now,
+                                           struct timeval *then);
 
 #ifndef HAVE_STRCASESTR
     char           *strcasestr(const char *, const char *);
@@ -174,41 +131,24 @@ SOFTWARE.
 #ifndef HAVE_STRTOUL
     unsigned long   strtoul(const char *, char **, int);
 #endif
-#ifndef HAVE_STRTOULL
-    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
-    NETSNMP_IMPORT
-    size_t            strlcat(char * __restrict, const char * __restrict,
-                              size_t);
-#endif
 
     int             netsnmp_os_prematch(const char *ospmname,
                                         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
 }
 #endif
diff --git a/include/net-snmp/library/testing.h b/include/net-snmp/library/testing.h
deleted file mode 100644
index ec6135a..0000000
--- a/include/net-snmp/library/testing.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#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) do { printf("%s %d - %s\n", ((isok) ? "ok" : "not ok"), ++__test_counter, description); } while (0)
-
-#define OKF(isok, description) do { printf("%s %d - ", ((isok) ? "ok" : "not ok"), ++__test_counter); printf description; printf("\n"); } while (0)
-
-#define PLAN(number) do { printf("1..%d\n", number); __did_plan = 1; } while (0)
-
-#endif /* NETSNMP_LIBRARY_TESTING_H */
diff --git a/include/net-snmp/library/tools.h b/include/net-snmp/library/tools.h
index b420c0f..e57d1ac 100644
--- a/include/net-snmp/library/tools.h
+++ b/include/net-snmp/library/tools.h
@@ -8,10 +8,6 @@
 #ifndef _TOOLS_H
 #define _TOOLS_H
 
-#ifdef HAVE_INTTYPES_H
-#include <inttypes.h> /* uintptr_t */
-#endif
-
 #ifdef __cplusplus
 extern          "C" {
 #endif
@@ -76,23 +72,6 @@ extern          "C" {
 #define SNMP_ZERO(s,l)	do { if (s) memset(s, 0, l); } while(0)
 
 
-/**
- * @def NETSNMP_REMOVE_CONST(t, e)
- *
- * Cast away constness without that gcc -Wcast-qual prints a compiler warning,
- * similar to const_cast<> in C++.
- *
- * @param[in] t A pointer type.
- * @param[in] e An expression of a type that can be assigned to the type (const t).
- */
-#if defined(__GNUC__)
-#define NETSNMP_REMOVE_CONST(t, e)                                      \
-    (__extension__ ({ const t tmp = (e); (t)(uintptr_t)tmp; }))
-#else
-#define NETSNMP_REMOVE_CONST(t, e) ((t)(uintptr_t)(e))
-#endif
-
-
 #define TOUPPER(c)	(c >= 'a' && c <= 'z' ? c - ('a' - 'A') : c)
 #define TOLOWER(c)	(c >= 'A' && c <= 'Z' ? c + ('a' - 'A') : c)
 
@@ -113,7 +92,7 @@ extern          "C" {
  *  Expands to string with value of the s. 
  *  If s is macro, the resulting string is value of the macro.
  *  Example: 
- *   \#define TEST 1234
+ *   #define TEST 1234
  *   SNMP_MACRO_VAL_TO_STR(TEST) expands to "1234"
  *   SNMP_MACRO_VAL_TO_STR(TEST+1) expands to "1234+1"
  */
@@ -161,42 +140,6 @@ extern          "C" {
 	}						\
 }
 
-/**
- * Compute res = a + b.
- *
- * @pre a and b must be normalized 'struct timeval' values.
- *
- * @note res may be the same variable as one of the operands. In other
- *   words, &a == &res || &b == &res may hold.
- */
-#define NETSNMP_TIMERADD(a, b, res)                  \
-{                                                    \
-    (res)->tv_sec  = (a)->tv_sec  + (b)->tv_sec;     \
-    (res)->tv_usec = (a)->tv_usec + (b)->tv_usec;    \
-    if ((res)->tv_usec >= 1000000L) {                \
-        (res)->tv_usec -= 1000000L;                  \
-        (res)->tv_sec++;                             \
-    }                                                \
-}
-
-/**
- * Compute res = a - b.
- *
- * @pre a and b must be normalized 'struct timeval' values.
- *
- * @note res may be the same variable as one of the operands. In other
- *   words, &a == &res || &b == &res may hold.
- */
-#define NETSNMP_TIMERSUB(a, b, res)                             \
-{                                                               \
-    (res)->tv_sec  = (a)->tv_sec  - (b)->tv_sec - 1;            \
-    (res)->tv_usec = (a)->tv_usec - (b)->tv_usec + 1000000L;    \
-    if ((res)->tv_usec >= 1000000L) {                           \
-        (res)->tv_usec -= 1000000L;                             \
-        (res)->tv_sec++;                                        \
-    }                                                           \
-}
-
 
     /*
      * ISTRANSFORM
@@ -218,25 +161,14 @@ extern          "C" {
      * 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);
-
-    void            netsnmp_check_definedness(const void *packet,
-                                              size_t length);
-
-    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);
+    int             memdup(u_char ** to, const u_char * from, size_t size);
 
-    NETSNMP_IMPORT
     u_int           binary_to_hex(const u_char * input, size_t len,
                                   char **output);
                     /* preferred */
@@ -244,70 +176,43 @@ extern          "C" {
                                          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;
-    typedef const void* const_marker_t;
-
-    NETSNMP_IMPORT
     marker_t        atime_newMarker(void);
-    NETSNMP_IMPORT
     void            atime_setMarker(marker_t pm);
-    NETSNMP_IMPORT
-    void            netsnmp_get_monotonic_clock(struct timeval* tv);
-    NETSNMP_IMPORT
-    void            netsnmp_set_monotonic_marker(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);
-    NETSNMP_IMPORT
-    int             netsnmp_ready_monotonic(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
+    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);
+
+    int             marker_tticks(marker_t pm);
+    int             timeval_tticks(struct timeval *tv);
     char            *netsnmp_getenv(const char *name);
-    NETSNMP_IMPORT
-    int             netsnmp_setenv(const char *envname, const char *envval,
-                                   int overwrite);
 
     int             netsnmp_addrstr_hton(char *ptr, size_t len);
 
-    NETSNMP_IMPORT
-    int             netsnmp_string_time_to_secs(const char *time_string);
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/net-snmp/library/types.h b/include/net-snmp/library/types.h
deleted file mode 100644
index 0174291..0000000
--- a/include/net-snmp/library/types.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef NET_SNMP_LIBRARY_TYPES_H
-#define NET_SNMP_LIBRARY_TYPES_H
-
-#ifndef NET_SNMP_CONFIG_H
-#error "Please include <net-snmp/net-snmp-config.h> before this file"
-#endif
-
-
-#include <net-snmp/types.h>
-
-
-typedef struct netsnmp_index_s {
-    size_t          len;
-    oid            *oids;
-} netsnmp_index;
-
-typedef struct netsnmp_void_array_s {
-    size_t          size;
-    void          **array;
-} netsnmp_void_array;
-
-/*
- * references to various types
- */
-typedef struct netsnmp_ref_void {
-    void           *val;
-} netsnmp_ref_void;
-
-typedef union {
-    u_long          ul;
-    u_int           ui;
-    u_short         us;
-    u_char          uc;
-    long            sl;
-    int             si;
-    short           ss;
-    char            sc;
-    char           *cp;
-    void           *vp;
-} netsnmp_cvalue;
-
-typedef struct netsnmp_ref_size_t_s {
-    size_t          val;
-}              *netsnmp_ref_size_t;
-
-/*
- * Structure for holding a set of file descriptors, similar to fd_set.
- *
- * This structure however can hold so-called large file descriptors
- * (>= FD_SETSIZE or 1024) on Unix systems or more than FD_SETSIZE (64)
- * sockets on Windows systems.
- *
- * It is safe to allocate this structure on the stack.
- *
- * This structure must be initialized by calling netsnmp_large_fd_set_init()
- * and must be cleaned up via netsnmp_large_fd_set_cleanup(). If this last
- * function is not called this may result in a memory leak.
- *
- * The members of this structure are:
- * lfs_setsize: maximum set size.
- * lsf_setptr:  points to lfs_set if lfs_setsize <= FD_SETSIZE, and otherwise
- *              to dynamically allocated memory.
- * lfs_set:     file descriptor / socket set data if lfs_setsize <= FD_SETSIZE.
- */
-typedef struct netsnmp_large_fd_set_s {
-    unsigned        lfs_setsize;
-    fd_set         *lfs_setptr;
-    fd_set          lfs_set;
-} netsnmp_large_fd_set;
-#endif                          /* NET_SNMP_LIBRARY_TYPES_H */
diff --git a/include/net-snmp/library/ucd_compat.h b/include/net-snmp/library/ucd_compat.h
index 329d435..73979d3 100644
--- a/include/net-snmp/library/ucd_compat.h
+++ b/include/net-snmp/library/ucd_compat.h
@@ -13,34 +13,22 @@ extern          "C" {
         /*
          * 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 a5be6ac..a34dc69 100644
--- a/include/net-snmp/library/vacm.h
+++ b/include/net-snmp/library/vacm.h
@@ -126,15 +126,12 @@ extern          "C" {
         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);
     /*
@@ -143,7 +140,6 @@ extern          "C" {
      * Returns NULL if that entry does not exist.
      */
 
-    NETSNMP_IMPORT
     int vacm_checkSubtree(const char *, oid *, size_t);
 
     /*
@@ -159,7 +155,6 @@ extern          "C" {
      *                         disallowed portions.
      */
 
-    NETSNMP_IMPORT
     void
                     vacm_scanViewInit(void);
     /*
@@ -169,7 +164,6 @@ extern          "C" {
      */
 
 
-    NETSNMP_IMPORT
     struct vacm_viewEntry *vacm_scanViewNext(void);
     /*
      * Returns a pointer to the next viewEntry.
@@ -180,7 +174,6 @@ extern          "C" {
      * view_scanInit() starts the scan over.
      */
 
-    NETSNMP_IMPORT
     struct vacm_viewEntry *vacm_createViewEntry(const char *, oid *,
                                                 size_t);
     /*
@@ -189,34 +182,22 @@ extern          "C" {
      * 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 *);
@@ -224,7 +205,6 @@ extern          "C" {
     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);
@@ -237,23 +217,16 @@ extern          "C" {
     void            vacm_save_group(struct vacm_groupEntry *group_entry,
                                     const char *token, const char *type);
 
-    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_view(const char *token, char *line);
+    void            vacm_parse_config_group(const char *token, char *line);
     void            vacm_parse_config_access(const char *token,
-                                             const char *line);
-    NETSNMP_IMPORT
+                                             char *line);
     void            vacm_parse_config_auth_access(const char *token,
-                                                  const char *line);
+                                             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 90fd723..c1dd93f 100644
--- a/include/net-snmp/library/winpipe.h
+++ b/include/net-snmp/library/winpipe.h
@@ -35,7 +35,6 @@
 #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 76080d6..1c4763a 100644
--- a/include/net-snmp/library/winservice.h
+++ b/include/net-snmp/library/winservice.h
@@ -95,6 +95,17 @@ extern "C"
   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 3b54e83..09ff5f5 100644
--- a/include/net-snmp/mib_api.h
+++ b/include/net-snmp/mib_api.h
@@ -7,101 +7,18 @@
 
 #include <net-snmp/types.h>
 
-#ifdef __cplusplus
-extern          "C" {
-#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 */
-    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 */
-    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);
-
-#ifdef __cplusplus
-}
-#endif
-
     /*
-     *    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.
+     *  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.
      *
-     *    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:
+     *  But for the time being, this header file is a placeholder,
+     *  to allow application writers to adopt the new header file names.
      */
 
 #include <net-snmp/library/snmp_api.h>
+
 #include <net-snmp/library/mib.h>
 #ifndef NETSNMP_DISABLE_MIB_LOADING
 #include <net-snmp/library/parse.h>
diff --git a/include/net-snmp/net-snmp-config.h.in b/include/net-snmp/net-snmp-config.h.in
index ff30b46..f5896ef 100644
--- a/include/net-snmp/net-snmp-config.h.in
+++ b/include/net-snmp/net-snmp-config.h.in
@@ -1,10 +1,6 @@
-/* include/net-snmp/net-snmp-config.h.in.  Generated from configure.ac by autoheader.  */
+/* include/net-snmp/net-snmp-config.h.in.  Generated from configure.in 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
@@ -28,37 +24,244 @@
  */
 #ifndef NETSNMP_NO_AUTOCONF_DEFINITIONS
 
+/* define if you have type int32_t */
+#undef HAVE_INT32_T
 
-#if defined (WIN32) || defined (mingw32) || defined (cygwin)
-#define ENV_SEPARATOR ";"
-#define ENV_SEPARATOR_CHAR ';'
-#else
-#define ENV_SEPARATOR ":"
-#define ENV_SEPARATOR_CHAR ':'
-#endif
+/* define if you have type uint32_t */
+#undef HAVE_UINT32_T
 
-/* definitions added by configure on-the-fly */
+/* define if you have type u_int32_t */
+#undef HAVE_U_INT32_T
 
-#define config_belongs_in(x)
+/* define if you have type int64_t */
+#undef HAVE_INT64_T
 
-#define config_exclude(x)
+/* define if you have type uint64_t */
+#undef HAVE_UINT64_T
 
-#define config_arch_require(x,y)
+/* define if you have type u_int64_t */
+#undef HAVE_U_INT64_T
 
-#define config_version_require(x)
+/* define if you have type intptr_t */
+#undef HAVE_INTPTR_T
 
-#define config_require(x)
+/* define if you have type uintptr_t */
+#undef HAVE_UINTPTR_T
 
-#define config_add_mib(x)
+/* got socklen_t? */
+#undef HAVE_SOCKLEN_T
 
-#define config_parse_dot_conf(w,x,y,z)
+/* got in_addr_t? */
+#undef HAVE_IN_ADDR_T
 
-#define config_error(x)
+/* define if you have getdevs() */
+#undef HAVE_GETDEVS
 
+/* define if you have devstat_getdevs() */
+#undef HAVE_DEVSTAT_GETDEVS
+
+/* define if you have <netinet/in_pcb.h> */
+#undef HAVE_NETINET_IN_PCB_H
+
+/* define if you have <sys/disklabel.h> */
+#undef HAVE_SYS_DISKLABEL_H
+
+/* define if your compiler (processor) defines __FUNCTION__ for you */
+#undef HAVE_CPP_UNDERBAR_FUNCTION_DEFINED
+
+/* on aix, if you have perfstat */
+#undef HAVE_PERFSTAT
+
+/* define if you have libdb, libnm or librpm, respectively */
+#undef HAVE_LIBDB
+#undef HAVE_LIBNM
+#undef HAVE_LIBRPM
+
+/* define if you have pkginfo */
+#undef HAVE_PKGINFO
+
+/* define if you have gethostbyname */
+#undef HAVE_GETHOSTBYNAME
+
+/* define if you have the perl_eval_pv() function */
+#undef HAVE_PERL_EVAL_PV_LC
+
+/* define if you have the Perl_eval_pv() function */
+#undef HAVE_PERL_EVAL_PV_UC
+
+/* printing system */
+#undef HAVE_LPSTAT
+#undef LPSTAT_PATH
+#undef HAVE_PRINTCAP
+/* Use dmalloc to do malloc debugging? */
+#undef HAVE_DMALLOC_H
+
+/* location of UNIX kernel */
+#define KERNEL_LOC "/vmunix"
+
+/* location of mount table list */
+#define ETC_MNTTAB "/etc/mnttab"
+
+/* location of swap device (ok if not found) */
+#undef DMEM_LOC
+
+/* Command to generate ps output, the final column must be the process
+   name withOUT arguments */
+#define PSCMD "/bin/ps"
+
+/* Where is the uname command */
+#define UNAMEPROG "/bin/uname"
+
+/* define if you are using linux and /proc/net/dev has the compressed
+   field, which exists in linux kernels 2.2 and greater. */
+#undef PROC_NET_DEV_HAS_COMPRESSED
+
+/* define rtentry to ortentry on SYSV machines (alphas) */
+#undef RTENTRY
+
+/* Use BSD 4.4 routing table entries? */
+#undef RTENTRY_4_4
+
+/* Does struct sigaction have a sa_sigaction field? */
+#undef STRUCT_SIGACTION_HAS_SA_SIGACTION
+
+/* Does struct tm have a tm_gmtoff field? */
+#undef STRUCT_TM_HAS_TM_GMTOFFF
+
+/* Does struct sockaddr have a sa_len field? */
+#undef STRUCT_SOCKADDR_HAS_SA_LEN
+
+/* Does struct sockaddr have a sa_family2 field? */
+#undef STRUCT_SOCKADDR_HAS_SA_UNION_SA_GENERIC_SA_FAMILY2
+
+/* Does struct sockaddr_storage have a ss_family field? */
+#undef STRUCT_SOCKADDR_STORAGE_HAS_SS_FAMILY
+
+/* Does struct sockaddr_storage have a __ss_family field? */
+#undef STRUCT_SOCKADDR_STORAGE_HAS___SS_FAMILY
+
+/* Does struct in6_addr have a s6_un.sa6_ladd field? */
+#undef STRUCT_IN6_ADDR_HAS_S6_UN_SA6_LADDR
+
+/* rtentry structure tests */
+#undef RTENTRY_RT_NEXT
+#undef STRUCT_RTENTRY_HAS_RT_DST
+#undef STRUCT_RTENTRY_HAS_RT_UNIT
+#undef STRUCT_RTENTRY_HAS_RT_USE
+#undef STRUCT_RTENTRY_HAS_RT_REFCNT
+#undef STRUCT_RTENTRY_HAS_RT_HASH
+
+/* ifnet structure tests */
+#undef STRUCT_IFNET_HAS_IF_BAUDRATE
+#undef STRUCT_IFNET_HAS_IF_BAUDRATE_IFS_VALUE
+#undef STRUCT_IFNET_HAS_IF_SPEED
+#undef STRUCT_IFNET_HAS_IF_TYPE
+#undef STRUCT_IFNET_HAS_IF_IMCASTS
+#undef STRUCT_IFNET_HAS_IF_IQDROPS
+#undef STRUCT_IFNET_HAS_IF_LASTCHANGE_TV_SEC
+#undef STRUCT_IFNET_HAS_IF_NOPROTO
+#undef STRUCT_IFNET_HAS_IF_OMCASTS
+#undef STRUCT_IFNET_HAS_IF_XNAME
+#undef STRUCT_IFNET_HAS_IF_OBYTES
+#undef STRUCT_IFNET_HAS_IF_IBYTES
+#undef STRUCT_IFNET_HAS_IF_ADDRLIST
+
+/* tcpstat.tcps_rcvmemdrop */
+#undef STRUCT_TCPSTAT_HAS_TCPS_RCVMEMDROP
+
+/* udpstat.udps_discard */
+#undef STRUCT_UDPSTAT_HAS_UDPS_DISCARD
+
+/* udpstat.udps_discard */
+#undef STRUCT_UDPSTAT_HAS_UDPS_NOPORT
+
+/* udpstat.udps_discard */
+#undef STRUCT_UDPSTAT_HAS_UDPS_NOPORTBCAST
+
+/* udpstat.udps_discard */
+#undef STRUCT_UDPSTAT_HAS_UDPS_FULLSOCK
+
+/* arphd.at_next */
+#undef STRUCT_ARPHD_HAS_AT_NEXT
+
+/* ifaddr.ifa_next */
+#undef STRUCT_IFADDR_HAS_IFA_NEXT
+
+/* ifnet.if_mtu */
+#undef STRUCT_IFNET_HAS_IF_MTU
+
+/* swdevt.sw_nblksenabled */
+#undef STRUCT_SWDEVT_HAS_SW_NBLKSENABLED
+
+/* nlist.n_value */
+#undef STRUCT_NLIST_HAS_N_VALUE
+
+/* nlist64.n_value */
+#undef STRUCT_NLIST64_HAS_N_VALUE
+
+/* ipstat structure tests */
+#undef STRUCT_IPSTAT_HAS_IPS_CANTFORWARD
+#undef STRUCT_IPSTAT_HAS_IPS_CANTFRAG
+#undef STRUCT_IPSTAT_HAS_IPS_DELIVERED
+#undef STRUCT_IPSTAT_HAS_IPS_FRAGDROPPED
+#undef STRUCT_IPSTAT_HAS_IPS_FRAGTIMEOUT
+#undef STRUCT_IPSTAT_HAS_IPS_LOCALOUT
+#undef STRUCT_IPSTAT_HAS_IPS_NOPROTO
+#undef STRUCT_IPSTAT_HAS_IPS_NOROUTE
+#undef STRUCT_IPSTAT_HAS_IPS_ODROPPED
+#undef STRUCT_IPSTAT_HAS_IPS_OFRAGMENTS
+#undef STRUCT_IPSTAT_HAS_IPS_REASSEMBLED
+
+/* vfsstat.f_frsize */
+#undef STRUCT_STATVFS_HAS_F_FRSIZE
+
+/* vfsstat.f_files */
+#undef STRUCT_STATVFS_HAS_F_FILES
+
+/* statfs inode structure tests*/
+#undef STRUCT_STATFS_HAS_F_FILES
+#undef STRUCT_STATFS_HAS_F_FFREE
+#undef STRUCT_STATFS_HAS_F_FAVAIL
+
+/* des_ks_struct.weak_key */
+#undef STRUCT_DES_KS_STRUCT_HAS_WEAK_KEY
+
+/* ifnet needs to have _KERNEL defined */
+#undef IFNET_NEEDS_KERNEL
+
+/* sysctl works to get boottime, etc... */
+#undef NETSNMP_CAN_USE_SYSCTL
+
+/* define if SIOCGIFADDR exists in sys/ioctl.h */
+#undef SYS_IOCTL_H_HAS_SIOCGIFADDR
+
+/* Define if statfs takes 2 args and the second argument has
+   type struct fs_data. [Ultrix] */
+#undef STAT_STATFS_FS_DATA
+
+/* Define if the TCP timer constants in <netinet/tcp_timer.h>
+   depend on the integer variable `hz'.  [FreeBSD 4.x] */
+#undef TCPTV_NEEDS_HZ
+
+/* Not-to-be-compiled macros for use by configure only */
+#define config_require(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)
+#define config_error(x)
 #define config_warning(x)
+  
+#if defined (WIN32) || defined (mingw32) || defined (cygwin)
+#define ENV_SEPARATOR ";"
+#define ENV_SEPARATOR_CHAR ';'
+#else
+#define ENV_SEPARATOR ":"
+#define ENV_SEPARATOR_CHAR ':'
+#endif
 
-/* Define if building universal (internal helper macro) */
-#undef AC_APPLE_UNIVERSAL_BUILD
+/* definitions added by configure on-the-fly */
 
 /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
    systems. This function is required for `alloca.c' support on those systems.
@@ -68,15 +271,6 @@
 /* Define to 1 if using `alloca.c'. */
 #undef C_ALLOCA
 
-/* location of swap device */
-#undef DMEM_LOC
-
-/* Define if you want local DNSSEC validation support */
-#undef DNSSEC_LOCAL_VALIDATION
-
-/* location of mount table list */
-#undef ETC_MNTTAB
-
 /* Define to 1 if you have the `AES_cfb128_encrypt' function. */
 #undef HAVE_AES_CFB128_ENCRYPT
 
@@ -96,8 +290,8 @@
 /* Define to 1 if you have the <asm/types.h> header file. */
 #undef HAVE_ASM_TYPES_H
 
-/* Define if using MY_INIT() causes a linker error */
-#undef HAVE_BROKEN_LIBMYSQLCLIENT
+/* Define to 1 if you have the `bcopy' function. */
+#undef HAVE_BCOPY
 
 /* Define to 1 if you have the `cgetnext' function. */
 #undef HAVE_CGETNEXT
@@ -105,25 +299,9 @@
 /* Define to 1 if you have the `chown' function. */
 #undef HAVE_CHOWN
 
-/* Define to 1 if you have the `clock_gettime' library */
-#undef HAVE_CLOCK_GETTIME
-
-/* 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
 
-/* Define to 1 if you have the declaration of `sensors_get_all_subfeatures',
-   and to 0 if you don't. */
-#undef HAVE_DECL_SENSORS_GET_ALL_SUBFEATURES
-
-/* define to 1 if you have IRE_CACHE defined in <inet/ip.h> header file. */
-#undef HAVE_DEFINED_IRE_CACHE
-
-/* define if you have devstat_getdevs() */
-#undef HAVE_DEVSTAT_GETDEVS
-
 /* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
    */
 #undef HAVE_DIRENT_H
@@ -134,60 +312,30 @@
 /* Define to 1 if you have the `dlopen' function. */
 #undef HAVE_DLOPEN
 
-/* 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
 
 /* Define to 1 if you have the `eval_pv' function. */
 #undef HAVE_EVAL_PV
 
-/* Define to 1 if you have the `EVP_MD_CTX_create' function. */
-#undef HAVE_EVP_MD_CTX_CREATE
-
-/* Define to 1 if you have the `EVP_MD_CTX_destroy' function. */
-#undef HAVE_EVP_MD_CTX_DESTROY
-
-/* Define if you have EVP_sha224/256 in openssl */
-#undef HAVE_EVP_SHA224
-
-/* Define if you have EVP_sha384/256 in openssl */
-#undef HAVE_EVP_SHA384
-
 /* Define to 1 if you have the `execv' function. */
 #undef HAVE_EXECV
 
 /* Define to 1 if you have the <fcntl.h> header file. */
 #undef HAVE_FCNTL_H
 
-/* Define to 1 if you have the `fgetc_unlocked' function. */
-#undef HAVE_FGETC_UNLOCKED
-
-/* Define to 1 if you have the `flockfile' function. */
-#undef HAVE_FLOCKFILE
-
 /* Define to 1 if you have the `fork' function. */
 #undef HAVE_FORK
 
 /* Define to 1 if you have the <fstab.h> header file. */
 #undef HAVE_FSTAB_H
 
-/* Define to 1 if you have the `funlockfile' function. */
-#undef HAVE_FUNLOCKFILE
-
 /* Define to 1 if you have the `gai_strerror' function. */
 #undef HAVE_GAI_STRERROR
 
 /* Define to 1 if you have the `getaddrinfo' function. */
 #undef HAVE_GETADDRINFO
 
-/* define if you have getdevs() */
-#undef HAVE_GETDEVS
-
 /* Define to 1 if you have the `getdtablesize' function. */
 #undef HAVE_GETDTABLESIZE
 
@@ -197,15 +345,6 @@
 /* Define to 1 if you have the `getgrnam' function. */
 #undef HAVE_GETGRNAM
 
-/* Define to 1 if you have the `gethostbyaddr' function. */
-#undef HAVE_GETHOSTBYADDR
-
-/* 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
 
@@ -218,9 +357,6 @@
 /* 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
 
@@ -236,9 +372,6 @@
 /* Define to 1 if you have the `gettimeofday' function. */
 #undef HAVE_GETTIMEOFDAY
 
-/* Define to 1 if you have the `getvfsstat' function. */
-#undef HAVE_GETVFSSTAT
-
 /* Define to 1 if you have the <grp.h> header file. */
 #undef HAVE_GRP_H
 
@@ -248,32 +381,29 @@
 /* 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
 
 /* Define to 1 if you have the `if_nametoindex' function. */
 #undef HAVE_IF_NAMETOINDEX
 
-/* Define to 1 if you have the <inet/common.h> header file. */
-#undef HAVE_INET_COMMON_H
-
-/* Define to 1 if you have the <inet/ip.h> header file. */
-#undef HAVE_INET_IP_H
+/* 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
 
-/* Define to 1 if you have the `inet_ntop' function. */
-#undef HAVE_INET_NTOP
+/* Define to 1 if the system has the type `int16_t'. */
+#undef HAVE_INT16_T
 
-/* Define to 1 if you have the `inet_pton' function. */
-#undef HAVE_INET_PTON
+/* Define to 1 if the system has the type `int32_t'. */
+#undef HAVE_INT32_T
 
-/* Define to 1 if you have the `initgroups' function. */
-#undef HAVE_INITGROUPS
+/* Define to 1 if the system has the type `int64_t'. */
+#undef HAVE_INT64_T
+
+/* Define to 1 if the system has the type `int8_t'. */
+#undef HAVE_INT8_T
 
 /* Define to 1 if the system has the type `intmax_t'. */
 #undef HAVE_INTMAX_T
@@ -284,33 +414,18 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
-/* Define to 1 if the system has the type `in_addr_t'. */
-#undef HAVE_IN_ADDR_T
-
 /* Define to 1 if you have the <ioctls.h> header file. */
 #undef HAVE_IOCTLS_H
 
 /* Define to 1 if you have the <io.h> header file. */
 #undef HAVE_IO_H
 
-/* Define to 1 if you have the <iphlpapi.h> header file. */
-#undef HAVE_IPHLPAPI_H
-
-/* Define to 1 if you have the `kinfo_get_cpus' function. */
-#undef HAVE_KINFO_GET_CPUS
-
-/* Define if you have /dev/kmem */
-#undef HAVE_KMEM
-
 /* Define to 1 if you have the `knlist' function. */
 #undef HAVE_KNLIST
 
 /* Define to 1 if you have the <kstat.h> header file. */
 #undef HAVE_KSTAT_H
 
-/* Define to 1 if you have the `kvm_getproc2' function. */
-#undef HAVE_KVM_GETPROC2
-
 /* Define to 1 if you have the `kvm_getprocs' function. */
 #undef HAVE_KVM_GETPROCS
 
@@ -323,21 +438,27 @@
 /* Define to 1 if you have the `kvm_openfiles' function. */
 #undef HAVE_KVM_OPENFILES
 
-/* Define to 1 if you have the OpenSSL library (-lcrypto or -leay32). */
+/* Define to 1 if you have the `crypto' library (-lcrypto). */
 #undef HAVE_LIBCRYPTO
 
+/* Define to 1 if you have the `dl' library (-ldl). */
+#undef HAVE_LIBDL
+
+/* Define to 1 if you have the `efence' library (-lefence). */
+#undef HAVE_LIBEFENCE
+
 /* Define to 1 if you have the `elf' library (-lelf). */
 #undef HAVE_LIBELF
 
 /* Define to 1 if you have the `kstat' library (-lkstat). */
 #undef HAVE_LIBKSTAT
 
+/* Define to 1 if you have the `kvm' library (-lkvm). */
+#undef HAVE_LIBKVM
+
 /* Define to 1 if you have the `mld' library (-lmld). */
 #undef HAVE_LIBMLD
 
-/* define if you have libnm */
-#undef HAVE_LIBNM
-
 /* Define to 1 if you have the `nsl' library (-lnsl). */
 #undef HAVE_LIBNSL
 
@@ -347,29 +468,14 @@
 /* Define to 1 if you have the `pkcs11' library (-lpkcs11). */
 #undef HAVE_LIBPKCS11
 
-/* Define to 1 if you have the `pthread' library (-lpthread). */
-#undef HAVE_LIBPTHREAD
-
-/* Define to 1 if you have the `rpm' library (-lrpm). */
-#undef HAVE_LIBRPM
-
 /* Define to 1 if you have the `RSAglue' library (-lRSAglue). */
 #undef HAVE_LIBRSAGLUE
 
 /* Define to 1 if you have the `rsaref' library (-lrsaref). */
 #undef HAVE_LIBRSAREF
 
-/* Define to 1 if you have the `sres' library (-lsres). */
-#undef HAVE_LIBSRES
-
-/* Define to 1 if you have the `ssh2' library (-lssh2). */
-#undef HAVE_LIBSSH2
-
-/* 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 `z' library (-lz). */
+#undef HAVE_LIBZ
 
 /* Define to 1 if you have the <limits.h> header file. */
 #undef HAVE_LIMITS_H
@@ -380,12 +486,6 @@
 /* Define to 1 if you have the <linux/hdreg.h> header file. */
 #undef HAVE_LINUX_HDREG_H
 
-/* Define to 1 if you have the <linux/netlink.h> header file. */
-#undef HAVE_LINUX_NETLINK_H
-
-/* Define to 1 if you have the <linux/rtnetlink.h> header file. */
-#undef HAVE_LINUX_RTNETLINK_H
-
 /* Define to 1 if you have the <linux/tasks.h> header file. */
 #undef HAVE_LINUX_TASKS_H
 
@@ -395,12 +495,6 @@
 /* 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
-
-/* Set if the lpstat command is available */
-#undef HAVE_LPSTAT
-
 /* Define to 1 if you have the `lrand48' function. */
 #undef HAVE_LRAND48
 
@@ -419,12 +513,15 @@
 /* Define to 1 if you have the <malloc.h> header file. */
 #undef HAVE_MALLOC_H
 
+/* Define to 1 if you have the `memcpy' function. */
+#undef HAVE_MEMCPY
+
+/* Define to 1 if you have the `memmove' function. */
+#undef HAVE_MEMMOVE
+
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
-/* Define to 1 if the system has the type `mib2_ipIfStatsEntry_t'. */
-#undef HAVE_MIB2_IPIFSTATSENTRY_T
-
 /* Define to 1 if you have the `mkstemp' function. */
 #undef HAVE_MKSTEMP
 
@@ -437,12 +534,6 @@
 /* Define to 1 if you have the <mtab.h> header file. */
 #undef HAVE_MTAB_H
 
-/* Define to 1 if you have the <mysql/mysql.h> header file. */
-#undef HAVE_MYSQL_MYSQL_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
 
@@ -473,9 +564,6 @@
 /* Define to 1 if you have the <netinet6/tcp6_var.h> header file. */
 #undef HAVE_NETINET6_TCP6_VAR_H
 
-/* Define to 1 if you have the <netinet/icmp6.h> header file. */
-#undef HAVE_NETINET_ICMP6_H
-
 /* Define to 1 if you have the <netinet/icmp_var.h> header file. */
 #undef HAVE_NETINET_ICMP_VAR_H
 
@@ -485,9 +573,6 @@
 /* Define to 1 if you have the <netinet/in.h> header file. */
 #undef HAVE_NETINET_IN_H
 
-/* Define to 1 if you have the <netinet/in_pcb.h> header file. */
-#undef HAVE_NETINET_IN_PCB_H
-
 /* Define to 1 if you have the <netinet/in_systm.h> header file. */
 #undef HAVE_NETINET_IN_SYSTM_H
 
@@ -530,9 +615,6 @@
 /* Define to 1 if you have the <netipx/ipx.h> header file. */
 #undef HAVE_NETIPX_IPX_H
 
-/* Define to 1 if you have the <netlink/netlink.h> header file. */
-#undef HAVE_NETLINK_NETLINK_H
-
 /* Define to 1 if you have the <net/if_arp.h> header file. */
 #undef HAVE_NET_IF_ARP_H
 
@@ -554,9 +636,6 @@
 /* Define to 1 if you have the <net/route.h> header file. */
 #undef HAVE_NET_ROUTE_H
 
-/* Define to 1 if the system has the type `nfds_t'. */
-#undef HAVE_NFDS_T
-
 /* Define to 1 if you have the `nlist' function. */
 #undef HAVE_NLIST
 
@@ -569,9 +648,6 @@
 /* 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
 
@@ -590,42 +666,21 @@
 /* Define to 1 if you have the <osreldate.h> header file. */
 #undef HAVE_OSRELDATE_H
 
-/* define if you have pci_lookup_name() */
-#undef HAVE_PCI_LOOKUP_NAME
-
 /* Define to 1 if you have the <pci/pci.h> header file. */
 #undef HAVE_PCI_PCI_H
 
-/* on aix, if you have perfstat */
-#undef HAVE_PERFSTAT
-
-/* Define to 1 if you have `the perl_eval_pv' function. */
-#undef HAVE_PERL_EVAL_PV_LC
-
-/* Define to 1 if you have the `Perl_eval_pv' function. */
-#undef HAVE_PERL_EVAL_PV_UC
-
 /* Define to 1 if you have the <picl.h> header file. */
 #undef HAVE_PICL_H
 
-/* define if you have pkginfo */
-#undef HAVE_PKGINFO
-
 /* Define to 1 if you have the <pkginfo.h> header file. */
 #undef HAVE_PKGINFO_H
 
 /* Define to 1 if you have the <pkglocs.h> header file. */
 #undef HAVE_PKGLOCS_H
 
-/* Define to 1 if you have the `poll' function. */
-#undef HAVE_POLL
-
 /* Define to 1 if you have the `pread64' function. */
 #undef HAVE_PREAD64
 
-/* Set if /etc/printcap exists */
-#undef HAVE_PRINTCAP
-
 /* Define to 1 if you have the <pthread.h> header file. */
 #undef HAVE_PTHREAD_H
 
@@ -638,9 +693,6 @@
 /* Define to 1 if you have the `random' function. */
 #undef HAVE_RANDOM
 
-/* Define to 1 if you have the `readdir' function. */
-#undef HAVE_READDIR
-
 /* Define to 1 if you have the `regcomp' function. */
 #undef HAVE_REGCOMP
 
@@ -653,15 +705,12 @@
 /* Define to 1 if you have the <rpm/header.h> header file. */
 #undef HAVE_RPM_HEADER_H
 
-/* Define to 1 if you have the <rpm/rpmfileutil.h> header file. */
-#undef HAVE_RPM_RPMFILEUTIL_H
+/* Define to 1 if you have the <rpm/rpmdb.h> header file. */
+#undef HAVE_RPM_RPMDB_H
 
 /* Define to 1 if you have the <rpm/rpmlib.h> header file. */
 #undef HAVE_RPM_RPMLIB_H
 
-/* Define to 1 if you have the <rpm/rpmts.h> header file. */
-#undef HAVE_RPM_RPMTS_H
-
 /* Define to 1 if you have the <search.h> header file. */
 #undef HAVE_SEARCH_H
 
@@ -671,9 +720,6 @@
 /* Define to 1 if you have the `select' function. */
 #undef HAVE_SELECT
 
-/* Define to 1 if you have the <sensors/sensors.h> header file. */
-#undef HAVE_SENSORS_SENSORS_H
-
 /* Define to 1 if you have the `setenv' function. */
 #undef HAVE_SETENV
 
@@ -713,15 +759,9 @@
 /* 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
 
@@ -731,10 +771,7 @@
 /* Define to 1 if you have the `socket' function. */
 #undef HAVE_SOCKET
 
-/* Define to 1 if the system has the type `socklen_t'. */
-#undef HAVE_SOCKLEN_T
-
-/* Define to 1 if the system has the type `ssize_t'. */
+/* Define if type ssize_t is available */
 #undef HAVE_SSIZE_T
 
 /* Define to 1 if you have the `statfs' function. */
@@ -743,6 +780,9 @@
 /* Define to 1 if you have the `statvfs' function. */
 #undef HAVE_STATVFS
 
+/* Define to 1 if you have the <stdarg.h> header file. */
+#undef HAVE_STDARG_H
+
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
@@ -755,6 +795,9 @@
 /* Define to 1 if you have the `strcasestr' function. */
 #undef HAVE_STRCASESTR
 
+/* Define to 1 if you have the `strchr' function. */
+#undef HAVE_STRCHR
+
 /* Define to 1 if you have the `strdup' function. */
 #undef HAVE_STRDUP
 
@@ -767,9 +810,6 @@
 /* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H
 
-/* Define to 1 if you have the `strlcat' function. */
-#undef HAVE_STRLCAT
-
 /* Define to 1 if you have the `strlcpy' function. */
 #undef HAVE_STRLCPY
 
@@ -785,217 +825,9 @@
 /* Define to 1 if you have the `strtoul' function. */
 #undef HAVE_STRTOUL
 
-/* Define to 1 if you have the `strtoull' function. */
-#undef HAVE_STRTOULL
-
-/* Define to 1 if `at_next' is a member of `struct arphd'. */
-#undef HAVE_STRUCT_ARPHD_AT_NEXT
-
-/* Define to 1 if `weak_key' is a member of `struct des_ks_struct'. */
-#undef HAVE_STRUCT_DES_KS_STRUCT_WEAK_KEY
-
-/* Define to 1 if `d_type' is a member of `struct dirent'. */
-#undef HAVE_STRUCT_DIRENT_D_TYPE
-
-/* Define to 1 if `speed_hi' is a member of `struct ethtool_cmd'. */
-#undef HAVE_STRUCT_ETHTOOL_CMD_SPEED_HI
-
-/* Define to 1 if `ifa_next' is a member of `struct ifaddr'. */
-#undef HAVE_STRUCT_IFADDR_IFA_NEXT
-
-/* Define to 1 if `if_addrhead.tqh_first' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_ADDRHEAD_TQH_FIRST
-
-/* Define to 1 if `if_addrlist' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_ADDRLIST
-
-/* Define to 1 if `if_baudrate' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_BAUDRATE
-
-/* Define to 1 if `if_baudrate.ifs_value' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_BAUDRATE_IFS_VALUE
-
-/* Define to 1 if `if_ibytes' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_IBYTES
-
-/* Define to 1 if `if_imcasts' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_IMCASTS
-
-/* Define to 1 if `if_iqdrops' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_IQDROPS
-
-/* Define to 1 if `if_lastchange.tv_nsec' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_NSEC
-
-/* Define to 1 if `if_lastchange.tv_sec' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_SEC
-
-/* Define to 1 if `if_mtu' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_MTU
-
-/* Define to 1 if `if_noproto' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_NOPROTO
-
-/* Define to 1 if `if_obytes' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_OBYTES
-
-/* Define to 1 if `if_omcasts' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_OMCASTS
-
-/* Define to 1 if `if_speed' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_SPEED
-
-/* Define to 1 if `if_type' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_TYPE
-
-/* Define to 1 if `if_xname' is a member of `struct ifnet'. */
-#undef HAVE_STRUCT_IFNET_IF_XNAME
-
-/* Define to 1 if `ips_cantforward' is a member of `struct ipstat'. */
-#undef HAVE_STRUCT_IPSTAT_IPS_CANTFORWARD
-
-/* Define to 1 if `ips_cantfrag' is a member of `struct ipstat'. */
-#undef HAVE_STRUCT_IPSTAT_IPS_CANTFRAG
-
-/* Define to 1 if `ips_delivered' is a member of `struct ipstat'. */
-#undef HAVE_STRUCT_IPSTAT_IPS_DELIVERED
-
-/* Define to 1 if `ips_fragdropped' is a member of `struct ipstat'. */
-#undef HAVE_STRUCT_IPSTAT_IPS_FRAGDROPPED
-
-/* Define to 1 if `ips_fragmented' is a member of `struct ipstat'. */
-#undef HAVE_STRUCT_IPSTAT_IPS_FRAGMENTED
-
-/* Define to 1 if `ips_fragtimeout' is a member of `struct ipstat'. */
-#undef HAVE_STRUCT_IPSTAT_IPS_FRAGTIMEOUT
-
-/* Define to 1 if `ips_localout' is a member of `struct ipstat'. */
-#undef HAVE_STRUCT_IPSTAT_IPS_LOCALOUT
-
-/* Define to 1 if `ips_noproto' is a member of `struct ipstat'. */
-#undef HAVE_STRUCT_IPSTAT_IPS_NOPROTO
-
-/* Define to 1 if `ips_noroute' is a member of `struct ipstat'. */
-#undef HAVE_STRUCT_IPSTAT_IPS_NOROUTE
-
-/* Define to 1 if `ips_odropped' is a member of `struct ipstat'. */
-#undef HAVE_STRUCT_IPSTAT_IPS_ODROPPED
-
-/* Define to 1 if `ips_ofragments' is a member of `struct ipstat'. */
-#undef HAVE_STRUCT_IPSTAT_IPS_OFRAGMENTS
-
-/* Define to 1 if `ips_reassembled' is a member of `struct ipstat'. */
-#undef HAVE_STRUCT_IPSTAT_IPS_REASSEMBLED
-
-/* Define to 1 if `m_clfree' is a member of `struct mbstat'. */
-#undef HAVE_STRUCT_MBSTAT_M_CLFREE
-
-/* Define to 1 if `m_clusters' is a member of `struct mbstat'. */
-#undef HAVE_STRUCT_MBSTAT_M_CLUSTERS
-
-/* Define to 1 if `m_mbufs' is a member of `struct mbstat'. */
-#undef HAVE_STRUCT_MBSTAT_M_MBUFS
-
-/* Define to 1 if `msg_control' is a member of `struct msghdr'. */
-#undef HAVE_STRUCT_MSGHDR_MSG_CONTROL
-
-/* Define to 1 if `msg_flags' is a member of `struct msghdr'. */
-#undef HAVE_STRUCT_MSGHDR_MSG_FLAGS
-
-/* Define to 1 if `n_value' is a member of `struct nlist64'. */
-#undef HAVE_STRUCT_NLIST64_N_VALUE
-
-/* Define to 1 if `n_value' is a member of `struct nlist'. */
-#undef HAVE_STRUCT_NLIST_N_VALUE
-
-/* Define to 1 if `rt_dst' is a member of `struct rtentry'. */
-#undef HAVE_STRUCT_RTENTRY_RT_DST
-
-/* Define to 1 if `rt_hash' is a member of `struct rtentry'. */
-#undef HAVE_STRUCT_RTENTRY_RT_HASH
-
-/* Define to 1 if `rt_next' is a member of `struct rtentry'. */
-#undef HAVE_STRUCT_RTENTRY_RT_NEXT
-
-/* Define to 1 if `rt_refcnt' is a member of `struct rtentry'. */
-#undef HAVE_STRUCT_RTENTRY_RT_REFCNT
-
-/* Define to 1 if `rt_unit' is a member of `struct rtentry'. */
-#undef HAVE_STRUCT_RTENTRY_RT_UNIT
-
-/* Define to 1 if `rt_use' is a member of `struct rtentry'. */
-#undef HAVE_STRUCT_RTENTRY_RT_USE
-
-/* Define to 1 if `sa_sigaction' is a member of `struct sigaction'. */
-#undef HAVE_STRUCT_SIGACTION_SA_SIGACTION
-
-/* Define to 1 if `sin6_scope_id' is a member of `struct sockaddr_in6'. */
+/* Define to 1 if `sin6_scope_id' is member of `struct sockaddr_in6'. */
 #undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
 
-/* Define to 1 if `sa_len' is a member of `struct sockaddr'. */
-#undef HAVE_STRUCT_SOCKADDR_SA_LEN
-
-/* Define to 1 if `sa_union.sa_generic.sa_family2' is a member of `struct
-   sockaddr'. */
-#undef HAVE_STRUCT_SOCKADDR_SA_UNION_SA_GENERIC_SA_FAMILY2
-
-/* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */
-#undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
-
-/* Define to 1 if `__ss_family' is a member of `struct sockaddr_storage'. */
-#undef HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY
-
-/* Define to 1 if `f_favail' is a member of `struct statfs'. */
-#undef HAVE_STRUCT_STATFS_F_FAVAIL
-
-/* Define to 1 if `f_ffree' is a member of `struct statfs'. */
-#undef HAVE_STRUCT_STATFS_F_FFREE
-
-/* Define to 1 if `f_files' is a member of `struct statfs'. */
-#undef HAVE_STRUCT_STATFS_F_FILES
-
-/* Define to 1 if `f_flags' is a member of `struct statfs'. */
-#undef HAVE_STRUCT_STATFS_F_FLAGS
-
-/* Define to 1 if `f_frsize' is a member of `struct statfs'. */
-#undef HAVE_STRUCT_STATFS_F_FRSIZE
-
-/* Define to 1 if `f_files' is a member of `struct statvfs'. */
-#undef HAVE_STRUCT_STATVFS_F_FILES
-
-/* Define to 1 if `f_frsize' is a member of `struct statvfs'. */
-#undef HAVE_STRUCT_STATVFS_F_FRSIZE
-
-/* Define to 1 if `mnt_dir' is a member of `struct statvfs'. */
-#undef HAVE_STRUCT_STATVFS_MNT_DIR
-
-/* Define to 1 if `sw_nblksenabled' is a member of `struct swdevt'. */
-#undef HAVE_STRUCT_SWDEVT_SW_NBLKSENABLED
-
-/* Define to 1 if `tcp_rcvmemdrop' is a member of `struct tcpstat'. */
-#undef HAVE_STRUCT_TCPSTAT_TCP_RCVMEMDROP
-
-/* Define to 1 if `tz_dsttime' is a member of `struct timezone'. */
-#undef HAVE_STRUCT_TIMEZONE_TZ_DSTTIME
-
-/* Define to 1 if `tm_gmtoff' is a member of `struct tm'. */
-#undef HAVE_STRUCT_TM_TM_GMTOFF
-
-/* Define to 1 if `udps_discard' is a member of `struct udpstat'. */
-#undef HAVE_STRUCT_UDPSTAT_UDPS_DISCARD
-
-/* Define to 1 if `udps_fullsock' is a member of `struct udpstat'. */
-#undef HAVE_STRUCT_UDPSTAT_UDPS_FULLSOCK
-
-/* Define to 1 if `udps_noport' is a member of `struct udpstat'. */
-#undef HAVE_STRUCT_UDPSTAT_UDPS_NOPORT
-
-/* Define to 1 if `udps_noportbcast' is a member of `struct udpstat'. */
-#undef HAVE_STRUCT_UDPSTAT_UDPS_NOPORTBCAST
-
-/* Define to 1 if `udps_opackets' is a member of `struct udpstat'. */
-#undef HAVE_STRUCT_UDPSTAT_UDPS_OPACKETS
-
 /* Define to 1 if you have the `sysconf' function. */
 #undef HAVE_SYSCONF
 
@@ -1018,9 +850,6 @@
 /* Define to 1 if you have the <sys/diskio.h> header file. */
 #undef HAVE_SYS_DISKIO_H
 
-/* Define to 1 if you have the <sys/disklabel.h> header file. */
-#undef HAVE_SYS_DISKLABEL_H
-
 /* Define to 1 if you have the <sys/dkio.h> header file. */
 #undef HAVE_SYS_DKIO_H
 
@@ -1070,9 +899,6 @@
 /* Define to 1 if you have the <sys/param.h> header file. */
 #undef HAVE_SYS_PARAM_H
 
-/* Define to 1 if you have the <sys/poll.h> header file. */
-#undef HAVE_SYS_POLL_H
-
 /* Define to 1 if you have the <sys/pool.h> header file. */
 #undef HAVE_SYS_POOL_H
 
@@ -1136,9 +962,6 @@
 /* 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
 
@@ -1193,9 +1016,6 @@
 /* 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
 
@@ -1211,6 +1031,18 @@
 /* Define to 1 if you have the <ufs/ufs/quota.h> header file. */
 #undef HAVE_UFS_UFS_QUOTA_H
 
+/* Define to 1 if the system has the type `uint16_t'. */
+#undef HAVE_UINT16_T
+
+/* Define to 1 if the system has the type `uint32_t'. */
+#undef HAVE_UINT32_T
+
+/* Define to 1 if the system has the type `uint64_t'. */
+#undef HAVE_UINT64_T
+
+/* Define to 1 if the system has the type `uint8_t'. */
+#undef HAVE_UINT8_T
+
 /* Define to 1 if the system has the type `uintmax_t'. */
 #undef HAVE_UINTMAX_T
 
@@ -1223,9 +1055,6 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
-/* Define to 1 if the system has the type `unsigned long long int'. */
-#undef HAVE_UNSIGNED_LONG_LONG_INT
-
 /* Define to 1 if you have the `usleep' function. */
 #undef HAVE_USLEEP
 
@@ -1241,14 +1070,17 @@
 /* Define to 1 if you have the <uvm/uvm_param.h> header file. */
 #undef HAVE_UVM_UVM_PARAM_H
 
-/* Define to 1 if you have the <valgrind/memcheck.h> header file. */
-#undef HAVE_VALGRIND_MEMCHECK_H
+/* Define to 1 if the system has the type `u_int16_t'. */
+#undef HAVE_U_INT16_T
+
+/* Define to 1 if the system has the type `u_int32_t'. */
+#undef HAVE_U_INT32_T
 
-/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
-#undef HAVE_VALGRIND_VALGRIND_H
+/* Define to 1 if the system has the type `u_int64_t'. */
+#undef HAVE_U_INT64_T
 
-/* Define to 1 if you have the <validator/validator-config.h> header file. */
-#undef HAVE_VALIDATOR_VALIDATOR_CONFIG_H
+/* Define to 1 if the system has the type `u_int8_t'. */
+#undef HAVE_U_INT8_T
 
 /* Define to 1 if you have the <vm/swap_pager.h> header file. */
 #undef HAVE_VM_SWAP_PAGER_H
@@ -1265,62 +1097,18 @@
 /* Define to 1 if you have the `vsnprintf' function. */
 #undef HAVE_VSNPRINTF
 
-/* Define to 1 if you have the <windows.h> header file. */
-#undef HAVE_WINDOWS_H
-
-/* Define to 1 if you have the <winsock2.h> header file. */
-#undef HAVE_WINSOCK2_H
-
 /* Define to 1 if you have the <winsock.h> header file. */
 #undef HAVE_WINSOCK_H
 
-/* Define to 1 if you have the <ws2tcpip.h> header file. */
-#undef HAVE_WS2TCPIP_H
-
 /* Define to 1 if you have the <xti.h> header file. */
 #undef HAVE_XTI_H
 
-/* location of UNIX kernel */
-#undef KERNEL_LOC
-
-/* Path to the lpstat command */
-#undef LPSTAT_PATH
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
-#undef LT_OBJDIR
-
-/* define if agentx transport is to use domain sockets only */
-#undef NETSNMP_AGENTX_DOM_SOCK_ONLY
-
 /* Unix domain socket for AgentX master-subagent communication */
 #undef NETSNMP_AGENTX_SOCKET
 
 /* 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
-
-/* configure options specified */
-#undef NETSNMP_CONFIGURE_OPTIONS
-
-/* default location to look for mibs to load using the above tokens and/or
-   those in the MIBS envrionment variable */
-#undef NETSNMP_DEFAULT_MIBDIRS
-
-/* default mib files to load, specified by path. */
-#undef NETSNMP_DEFAULT_MIBFILES
-
-/* Define if no agent is built */
-#undef NETSNMP_DISABLE_AGENT
-
-/* Define if no apps are built */
-#undef NETSNMP_DISABLE_APPS
-
 /* Define if DES encryption should not be supported */
 #undef NETSNMP_DISABLE_DES
 
@@ -1339,103 +1127,9 @@
 /* Define if SNMPv2c code should not be included */
 #undef NETSNMP_DISABLE_SNMPV2C
 
-/* Define if you are embedding perl in the main agent. */
-#undef NETSNMP_EMBEDDED_PERL
-
-/* define if you want to enable IPv6 support */
-#undef NETSNMP_ENABLE_IPV6
-
-/* define if you want to restrict SMUX connections to localhost by default */
-#undef NETSNMP_ENABLE_LOCAL_SMUX
-
-/* Define if you want to build MFD module rewrites */
-#undef NETSNMP_ENABLE_MFD_REWRITES
-
-/* define if you want to compile support for both authentication and privacy
-   support. */
-#undef NETSNMP_ENABLE_SCAPI_AUTHPRIV
-
-/* testing code sections. */
-#undef NETSNMP_ENABLE_TESTING_CODE
-
-/* Should evaluate to the name of the current function if defined */
-#undef NETSNMP_FUNCTION
-
-/* ifnet needs to have _KERNEL defined */
-#undef NETSNMP_IFNET_NEEDS_KERNEL
-
-/* ifnet needs to have _KERNEL_STRUCTURES defined */
-#undef NETSNMP_IFNET_NEEDS_KERNEL_STRUCTURES
-
-/* Define if you want to remove all non-essential code features. */
-#undef NETSNMP_MINIMAL_CODE
-
-/* Define if you want to only support sending notifications */
-#undef NETSNMP_NOTIFY_ONLY
-
-/* Define to suppress inclusion of deprecated functions */
-#undef NETSNMP_NO_DEPRECATED_FUNCTIONS
-
-/* If you don't want the agent to report on variables it doesn't have data for
-   */
-#undef NETSNMP_NO_DUMMY_VALUES
-
-/* If we don't want to use kmem. */
-#undef NETSNMP_NO_KMEM_USAGE
-
-/* Define if you want to remove all listening support from the code */
-#undef NETSNMP_NO_LISTEN_SUPPORT
-
-/* If you don't have root access don't exit upon kmem errors */
-#undef NETSNMP_NO_ROOT_ACCESS
-
-/* Define if you want to remove all SET/write access from the code */
-#undef NETSNMP_NO_WRITE_SUPPORT
-
-/* 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
-
-/* Define to 1 if you want to build with reentrant/threaded code (incomplete).
-   */
-#undef NETSNMP_REENTRANT
-
-/* define if you do not want snmptrapd to register as an AgentX subagent */
-#undef NETSNMP_SNMPTRAPD_DISABLE_AGENTX
-
 /* 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
-
-/* Define this if you're using Heimdal Kerberos */
-#undef NETSNMP_USE_KERBEROS_HEIMDAL
-
-/* Define this if we're using the new MIT crypto API */
-#undef NETSNMP_USE_KERBEROS_MIT
-
-/* define if you are using the mysql code for snmptrapd ... */
-#undef NETSNMP_USE_MYSQL
-
-/* Define if you are using the codeS11 library ... */
-#undef NETSNMP_USE_PKCS11
-
-/* 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,
-   i64, ui64, union? */
-#undef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
-
 /* Define to the address where bug reports for this package should be sent. */
 #ifndef PACKAGE_BUGREPORT
 #undef PACKAGE_BUGREPORT
@@ -1456,135 +1150,57 @@
 #undef PACKAGE_TARNAME
 #endif
 
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
 /* Define to the version of this package. */
 #ifndef PACKAGE_VERSION
 #undef PACKAGE_VERSION
 #endif
 
-/* Command to generate ps output, the final column must be the process name
-   withOUT arguments */
-#undef PSCMD
-
 /* Define as the return type of signal handlers (`int' or `void'). */
 #undef RETSIGTYPE
 
-/* define rtentry to ortentry on SYSV machines (alphas) */
-#undef RTENTRY
-
-/* Use BSD 4.4 routing table entries? */
-#undef RTENTRY_4_4
-
-/* The size of `int', as computed by sizeof. */
+/* The size of a `int', as computed by sizeof. */
 #undef SIZEOF_INT
 
-/* The size of `intmax_t', as computed by sizeof. */
+/* The size of a `intmax_t', as computed by sizeof. */
 #undef SIZEOF_INTMAX_T
 
-/* The size of `long', as computed by sizeof. */
+/* The size of a `long', as computed by sizeof. */
 #undef SIZEOF_LONG
 
-/* The size of `long long', as computed by sizeof. */
+/* The size of a `long long', as computed by sizeof. */
 #undef SIZEOF_LONG_LONG
 
-/* The size of `short', as computed by sizeof. */
+/* The size of a `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.
+   automatically deduced at run-time.
 	STACK_DIRECTION > 0 => grows toward higher addresses
 	STACK_DIRECTION < 0 => grows toward lower addresses
 	STACK_DIRECTION = 0 => direction of growth unknown */
 #undef STACK_DIRECTION
 
-/* Define if statfs takes 2 args and the second argument has type struct
-   fs_data. [Ultrix] */
-#undef STAT_STATFS_FS_DATA
-
 /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
 
-/* define if SIOCGIFADDR exists in sys/ioctl.h */
-#undef SYS_IOCTL_H_HAS_SIOCGIFADDR
-
-/* Define if the TCP timer constants in <netinet/tcp_timer.h> depend on the
-   integer variable 'hz'. [FreeBSD 4.x] */
-#undef TCPTV_NEEDS_HZ
-
 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
 #undef TIME_WITH_SYS_TIME
 
-/* Where is the uname command */
-#undef UNAMEPROG
+/* Define to 1 if your processor stores words with the most significant byte
+   first (like Motorola and SPARC, unlike Intel and VAX). */
+#undef WORDS_BIGENDIAN
 
-/* Enable extensions on AIX 3, Interix.  */
+/* Define to 1 if on AIX 3.
+   System headers sometimes define this.
+   We just want to avoid a redefinition error message.  */
 #ifndef _ALL_SOURCE
 # undef _ALL_SOURCE
 #endif
-/* Enable GNU extensions on systems that have them.  */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris.  */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop.  */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
-   significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-#  define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-#  undef WORDS_BIGENDIAN
-# endif
-#endif
-
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
-   this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#undef _POSIX_SOURCE
 
 /* Define if you have RPM 4.6 or newer to turn on legacy API */
 #undef _RPM_4_4_COMPAT
 
-/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
-   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
-   #define below would cause a syntax error. */
-#undef _UINT32_T
-
-/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
-   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
-   #define below would cause a syntax error. */
-#undef _UINT64_T
-
-/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>,
-   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
-   #define below would cause a syntax error. */
-#undef _UINT8_T
-
 /* Define to empty if `const' does not conform to ANSI C. */
 #undef const
 
@@ -1594,68 +1210,58 @@
 #undef inline
 #endif
 
-/* Define to the type of a signed integer type of width exactly 16 bits if
-   such a type exists and the standard includes do not define it. */
-#undef int16_t
-
-/* Define to the type of a signed integer type of width exactly 32 bits if
-   such a type exists and the standard includes do not define it. */
-#undef int32_t
-
-/* Define to the type of a signed integer type of width exactly 64 bits if
-   such a type exists and the standard includes do not define it. */
-#undef int64_t
-
-/* Define to the type of a signed integer type of width exactly 8 bits if such
-   a type exists and the standard includes do not define it. */
-#undef int8_t
-
-/* Define to the widest signed integer type if <stdint.h> and <inttypes.h> do
-   not define. */
-#undef intmax_t
-
-/* Define to the type of a signed integer type wide enough to hold a pointer,
-   if such a type exists, and if the system does not define it. */
-#undef intptr_t
-
-/* Define to `long int' if <sys/types.h> does not define. */
+/* Define to `long' if <sys/types.h> does not define. */
 #undef off_t
 
 /* Define to `int' if <sys/types.h> does not define. */
 #undef pid_t
 
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef size_t
-
-/* Define to the type of an unsigned integer type of width exactly 16 bits if
-   such a type exists and the standard includes do not define it. */
-#undef uint16_t
-
-/* Define to the type of an unsigned integer type of width exactly 32 bits if
-   such a type exists and the standard includes do not define it. */
-#undef uint32_t
+/* end of definitions added by configure on-the-fly */
 
-/* Define to the type of an unsigned integer type of width exactly 64 bits if
-   such a type exists and the standard includes do not define it. */
-#undef uint64_t
+#ifndef HAVE_STRCHR
+#ifdef HAVE_INDEX
+# define strchr index
+# define strrchr rindex
+#endif
+#endif
 
-/* Define to the type of an unsigned integer type of width exactly 8 bits if
-   such a type exists and the standard includes do not define it. */
-#undef uint8_t
+#ifndef HAVE_INDEX
+#ifdef HAVE_STRCHR
+#ifdef mingw32
+# define index(a,b) strchr(a,b)
+# define rindex(a,b) strrchr(a,b)
+#else
+# define index strchr
+# define rindex strrchr
+#endif
+#endif
+#endif
 
-/* Define to the widest unsigned integer type if <stdint.h> and <inttypes.h>
-   do not define. */
-#undef uintmax_t
+#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
 
-/* Define to the type of an unsigned integer type wide enough to hold a
-   pointer, if such a type exists, and if the system does not define it. */
-#undef uintptr_t
+#ifndef HAVE_MEMMOVE
+#ifdef HAVE_MEMCPY
+# define memmove memcpy
+#endif
+#endif
 
-/* end of definitions added by configure on-the-fly */
+#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
 
 /* 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)) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
+#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_OPENSSL_AES_H) && defined(HAVE_AES_CFB128_ENCRYPT)
 #define HAVE_AES 1
 #endif
 
@@ -1681,7 +1287,7 @@
 #endif
 #endif
 
-#ifdef HAVE_DMALLOC_H
+#if HAVE_DMALLOC_H
 #define DMALLOC_FUNC_CHECK
 #endif
 
@@ -1709,6 +1315,27 @@
 /* default list of mibs to load */
 #define NETSNMP_DEFAULT_MIBS "IP-MIB:IF-MIB:TCP-MIB:UDP-MIB:SNMPv2-MIB:RFC1213-MIB"
 
+/* default location to look for mibs to load using the above tokens
+   and/or those in the MIBS envrionment variable*/
+#undef NETSNMP_DEFAULT_MIBDIRS
+
+/* default mib files to load, specified by path. */
+#undef NETSNMP_DEFAULT_MIBFILES
+
+/* should we compile to use special opaque types: float, double,
+   counter64, i64, ui64, union? */
+#undef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
+
+/* define if you want to compile support for both authentication and
+   privacy support. */
+#undef NETSNMP_ENABLE_SCAPI_AUTHPRIV
+
+/* define if you are using the MD5 code ...*/
+#undef NETSNMP_USE_INTERNAL_MD5
+
+/* define if you are using the codeS11 library ...*/
+#undef NETSNMP_USE_PKCS11
+
 /* debugging stuff */
 /* if defined, we optimize the code to exclude all debugging calls. */
 #undef NETSNMP_NO_DEBUGGING
@@ -1724,6 +1351,9 @@
    lines: PERSISTENT_DIRECTORY/NAME.persistent.conf */
 #define NETSNMP_PERSISTENT_DIRECTORY "/var/snmp"
 
+/* PERSISTENT_MASK: the umask permissions to set up persistent files with */
+#define NETSNMP_PERSISTENT_MASK 077
+
 /* AGENT_DIRECTORY_MODE: the mode the agents should use to create
    directories with. Since the data stored here is probably sensitive, it
    probably should be read-only by root/administrator. */
@@ -1768,6 +1398,19 @@
 /* Use libwrap to handle allow/deny hosts? */
 #undef NETSNMP_USE_LIBWRAP
 
+/* testing code sections. */
+#undef NETSNMP_ENABLE_TESTING_CODE 
+
+/* If you don't have root access don't exit upon kmem errors */
+#undef NETSNMP_NO_ROOT_ACCESS
+
+/* If we don't want to use kmem. */
+#undef NETSNMP_NO_KMEM_USAGE
+
+/* If you don't want the agent to report on variables it doesn't have data for */
+#undef NETSNMP_NO_DUMMY_VALUES
+
+
 /* Mib-2 tree Info */
 /* These are the system information variables. */
 
@@ -1823,7 +1466,6 @@
 #define NETSNMP_HPUX11ID 14
 #define NETSNMP_AIXID 15
 #define NETSNMP_MACOSXID 16
-#define NETSNMP_DRAGONFLYID 17
 #define NETSNMP_UNKNOWNID 255
 
 #ifdef hpux9
@@ -1853,9 +1495,6 @@
 #if defined(__FreeBSD__)
 #define NETSNMP_OSTYPE NETSNMP_FREEBSDID
 #endif
-#if defined(__DragonFly__)
-#define NETSNMP_OSTYPE NETSNMP_DRAGONFLYID
-#endif
 #if defined(irix6) || defined(irix5)
 #define NETSNMP_OSTYPE NETSNMP_IRIXID
 #endif
@@ -1865,13 +1504,13 @@
 #if defined(bsdi2) || defined(bsdi3) || defined(bsdi4)
 #define NETSNMP_OSTYPE NETSNMP_BSDIID
 #endif
-#if defined(openbsd)
+#if defined(openbsd2) || defined(openbsd3) || defined(openbsd4)
 #define NETSNMP_OSTYPE NETSNMP_OPENBSDID
 #endif
 #ifdef WIN32
 #define NETSNMP_OSTYPE NETSNMP_WIN32ID
 #endif
-#if defined(aix3) || defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#if defined(aix3) || defined(aix4) || defined(aix5) || defined(aix6)
 #define NETSNMP_OSTYPE NETSNMP_AIXID
 #endif
 #if defined(darwin) && (darwin >= 8)
@@ -1928,7 +1567,7 @@
 
 #define NETSNMP_EXCACHETIME 30
 #define NETSNMP_CACHEFILE ".snmp-exec-cache"
-#define NETSNMP_MAXCACHESIZE (1500*80)   /* roughly 1500 lines max */
+#define NETSNMP_MAXCACHESIZE (200*80)   /* roughly 200 lines max */
 
 /* misc defaults */
 
@@ -1956,12 +1595,18 @@
 /* UNdefine to allow specifying zero-length community string */
 /* #define NETSNMP_NO_ZEROLENGTH_COMMUNITY 1 */
 
+/* define to exit the agent on a bad kernel read */
+/* #define NETSNMP_EXIT_ON_BAD_KLREAD  */
+
 /* Number of community strings to store */
 #define NETSNMP_NUM_COMMUNITIES	5
 
 /* internal define */
 #define NETSNMP_LASTFIELD -1
 
+/* configure options specified */
+#define NETSNMP_CONFIGURE_OPTIONS ""
+
 /*  Pluggable transports.  */
 
 /*  This is defined if support for the UDP/IP transport domain is
@@ -1996,32 +1641,13 @@
     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
+/*  This is defined if support for the UDP/IP transport domain is
     available.   */
-#undef NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+#undef NETSNMP_TRANSPORT_TLS_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
 
@@ -2031,9 +1657,18 @@
 /* define this if the local security module is available */
 #undef NETSNMP_SECMOD_LOCALSM
 
+/* define if you want to build with reentrant/threaded code (incomplete)*/
+#undef NETSNMP_REENTRANT
+
 /* define if configured as a "mini-agent" */
 #undef NETSNMP_MINI_AGENT
 
+/* define if you are embedding perl in the main agent */
+#undef NETSNMP_EMBEDDED_PERL
+
+/* define if you want to build MFD module rewrites*/
+#undef NETSNMP_ENABLE_MFD_REWRITES
+
 /* this is the location of the net-snmp mib tree.  It shouldn't be
    changed, as the places it is used are expected to be constant
    values or are directly tied to the UCD-SNMP-MIB. */
@@ -2101,12 +1736,33 @@
 #  define NETSNMP_IMPORT extern
 #endif
 
+/* define if you want to enable IPv6 support */
+#undef NETSNMP_ENABLE_IPV6
+
+/* define if you want to restrict SMUX connections to localhost by default */
+#undef NETSNMP_ENABLE_LOCAL_SMUX
+
+/* define if agentx transport is to use domain sockets only */
+#undef NETSNMP_AGENTX_DOM_SOCK_ONLY
+
+/* define if you do not want snmptrapd to register as an AgentX subagent */
+#undef NETSNMP_SNMPTRAPD_DISABLE_AGENTX
+
+/* define this if we're using the new MIT crypto API */
+#undef NETSNMP_USE_KERBEROS_MIT
+
+/* define this if you're using Heimdal Kerberos */
+#undef NETSNMP_USE_KERBEROS_HEIMDAL
+
 /* comment the next line if you are compiling with libsnmp.h 
    and are not using the UC-Davis SNMP library. */
 #define UCD_SNMP_LIBRARY 1
 
+/* add in recent CMU library extensions (not complete) */
+#undef CMU_COMPATIBLE
+
 /* final conclusion on nlist usage */
-#if defined(HAVE_NLIST) && defined(HAVE_STRUCT_NLIST_N_VALUE) && !defined(NETSNMP_DONT_USE_NLIST) && defined(HAVE_KMEM) && !defined(NETSNMP_NO_KMEM_USAGE)
+#if defined(HAVE_NLIST) && defined(STRUCT_NLIST_HAS_N_VALUE) && !defined(NETSNMP_DONT_USE_NLIST) && !defined(NETSNMP_NO_KMEM_USAGE)
 #define NETSNMP_CAN_USE_NLIST
 #endif
 
@@ -2312,6 +1968,10 @@
 # define NO_ZEROLENGTH_COMMUNITY NETSNMP_NO_ZEROLENGTH_COMMUNITY
 #endif
 
+#ifdef NETSNMP_EXIT_ON_BAD_KLREAD
+# define EXIT_ON_BAD_KLREAD NETSNMP_EXIT_ON_BAD_KLREAD
+#endif
+
 #define LASTFIELD NETSNMP_LASTFIELD
 
 #define CONFIGURE_OPTIONS NETSNMP_CONFIGURE_OPTIONS
diff --git a/include/net-snmp/net-snmp-features.h b/include/net-snmp/net-snmp-features.h
deleted file mode 100644
index f37e6c5..0000000
--- a/include/net-snmp/net-snmp-features.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef NETSNMP_FEATURES_H
-#define NETSNMP_FEATURES_H
-
-/* include files that are only needed if --enable-minimalist is on */
-#ifdef NETSNMP_MINIMAL_CODE
-#ifdef NETSNMP_FEATURE_CHECKING
-#include <net-snmp/feature-details.h>
-#else /* ! NETSNMP_FEATURE_CHECKING */
-#include <net-snmp/library/features.h>
-#ifndef NETSNMP_DISABLE_AGENT
-#include <net-snmp/agent/features.h>
-#include <net-snmp/agent/features-mibgroups.h>
-#endif
-#ifndef NETSNMP_DISABLE_APPS
-#include <net-snmp/features-snmpnetstat.h>
-#include <net-snmp/features-apps.h>
-#endif
-#endif /* ! NETSNMP_FEATURE_CHECKING */
-#endif /* NETSNMP_MINIMAL_CODE */
-
-
-/* prototypes always needed */
-#ifndef NETSNMP_FEATURE_CHECKING
-#define netsnmp_feature_provide(X)
-#define netsnmp_feature_require(X)
-#define netsnmp_feature_want(X)
-#define netsnmp_feature_child_of(X, Y)
-#endif
-
-#define netsnmp_feature_unused(X) char netsnmp_feature_unused_ ## X
-
-#endif /* NETSNMP_FEATURES_H */
diff --git a/include/net-snmp/net-snmp-includes.h b/include/net-snmp/net-snmp-includes.h
index 3ee62ae..53dc7b8 100644
--- a/include/net-snmp/net-snmp-includes.h
+++ b/include/net-snmp/net-snmp-includes.h
@@ -38,7 +38,11 @@
 #endif
 
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -67,7 +71,6 @@
 #include <net-snmp/definitions.h>
 #include <net-snmp/types.h>
 
-#include <net-snmp/library/getopt.h>
 #include <net-snmp/utilities.h>
 #include <net-snmp/session_api.h>
 #include <net-snmp/pdu_api.h>
@@ -77,4 +80,8 @@
 #include <net-snmp/output_api.h>
 #include <net-snmp/snmpv3_api.h>
 
+#ifdef CMU_COMPATIBLE
+#include <net-snmp/library/cmu_compat.h>
+#endif
+
 #endif                          /* NET_SNMP_INCLUDES_H */
diff --git a/include/net-snmp/openssl_md5.h b/include/net-snmp/openssl_md5.h
deleted file mode 100644
index 1e85f31..0000000
--- a/include/net-snmp/openssl_md5.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* crypto/md5/md5.h */
-/* Copyright (C) 1995-1998 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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 at 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 3bf3172..be2ce0c 100644
--- a/include/net-snmp/output_api.h
+++ b/include/net-snmp/output_api.h
@@ -1,5 +1,5 @@
-#ifndef NET_SNMP_OUTPUT_API_H
-#define NET_SNMP_OUTPUT_API_H
+#ifndef NET_SNMP_LOGGING_API_H
+#define NET_SNMP_LOGGING_API_H
 
     /**
      *  Library API routines concerned with logging and message output
@@ -7,145 +7,17 @@
      */
 
 #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);
 
     /*
-     *    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.
-     *
-     *    In due course, these should probably be gathered
-     *  together into a companion 'library/output_api.h' header file.
-     *  [Or some suitable name]
+     *  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.
      *
-     *    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:
+     *  But for the time being, this header file is a placeholder,
+     *  to allow application writers to adopt the new header file names.
      */
 
-#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>
@@ -154,4 +26,4 @@ extern "C" {
 #define ERROR_MSG(string)	snmp_set_detail(string)
 #endif
 
-#endif                          /* NET_SNMP_OUTPUT_API_H */
+#endif                          /* NET_SNMP_LOGGING_API_H */
diff --git a/include/net-snmp/pdu_api.h b/include/net-snmp/pdu_api.h
index 125595d..a3a1dd6 100644
--- a/include/net-snmp/pdu_api.h
+++ b/include/net-snmp/pdu_api.h
@@ -7,36 +7,14 @@
 
 #include <net-snmp/types.h>
 
-#ifdef __cplusplus
-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
-}
-#endif
-
     /*
-     *    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.
-     *
-     *    In due course, these should probably be gathered
-     *  together into a companion 'library/pdu_api.h' header file.
-     *  [Or some suitable name]
+     *  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.
      *
-     *    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:
+     *  But for the time being, this header file is a placeholder,
+     *  to allow application writers to adopt the new header file names.
      */
 
 #include <net-snmp/library/snmp_api.h>
diff --git a/include/net-snmp/session_api.h b/include/net-snmp/session_api.h
index 88dbc41..3327f89 100644
--- a/include/net-snmp/session_api.h
+++ b/include/net-snmp/session_api.h
@@ -8,272 +8,14 @@
 
 #include <net-snmp/types.h>
 
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-    NETSNMP_IMPORT
-    void            snmp_sess_init(netsnmp_session *);
-
-    /*
-     * netsnmp_session *snmp_open(session)
-     *      netsnmp_session *session;
-     *
-     * Sets up the session with the snmp_session information provided
-     * by the user.  Then opens and binds the necessary UDP port.
-     * A handle to the created session is returned (this is different than
-     * 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 *);
-
-    /*
-     * int snmp_close(session)
-     *     netsnmp_session *session;
-     *
-     * Close the input session.  Frees all data allocated for the session,
-     * dequeues any pending requests, and closes any sockets allocated for
-     * the session.  Returns 0 on error, 1 otherwise.
-     *
-     * 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);
-
-
-    /*
-     * int snmp_send(session, pdu)
-     *     netsnmp_session *session;
-     *     netsnmp_pdu      *pdu;
-     *
-     * Sends the input pdu on the session after calling snmp_build to create
-     * a serialized packet.  If necessary, set some of the pdu data from the
-     * session defaults.  Add a request corresponding to this pdu to the list
-     * of outstanding requests on this session, then send the pdu.
-     * Returns the request id of the generated packet if applicable, otherwise 1.
-     * 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 *);
-
     /*
-     * int snmp_async_send(session, pdu, callback, cb_data)
-     *     netsnmp_session *session;
-     *     netsnmp_pdu      *pdu;
-     *     netsnmp_callback callback;
-     *     void   *cb_data;
-     *
-     * Sends the input pdu on the session after calling snmp_build to create
-     * a serialized packet.  If necessary, set some of the pdu data from the
-     * session defaults.  Add a request corresponding to this pdu to the list
-     * of outstanding requests on this session and store callback and data,
-     * then send the pdu.
-     * Returns the request id of the generated packet if applicable, otherwise 1.
-     * 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 *);
-
-
-    /*
-     * void snmp_read(fdset)
-     *     fd_set  *fdset;
-     *
-     * Checks to see if any of the fd's set in the fdset belong to
-     * snmp.  Each socket with it's fd set has a packet read from it
-     * and snmp_parse is called on the packet received.  The resulting pdu
-     * 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 *);
-
-    /*
-     * snmp_read2() is similar to snmp_read(), but accepts a pointer to a
-     * 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 **);
-
-    /*
-     * int snmp_select_info(numfds, fdset, timeout, block)
-     * int *numfds;
-     * fd_set   *fdset;
-     * struct timeval *timeout;
-     * int *block;
-     *
-     * 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.
-     * If activity occurs on any of these file descriptors, snmp_read
-     * should be called with that file descriptor set.
-     *
-     * The timeout is the latest time that SNMP can wait for a timeout.  The
-     * select should be done with the minimum time between timeout and any other
-     * timeouts necessary.  This should be checked upon each invocation of select.
-     * If a timeout is received, snmp_timeout should be called to check if the
-     * timeout was for SNMP.  (snmp_timeout is idempotent)
-     *
-     * Block is 1 if the select is requested to block indefinitely, rather than
-     * time out.  If block is input as 1, the timeout value will be treated as
-     * undefined, but it must be available for setting in snmp_select_info.  On
-     * return, if block is true, the value of timeout will be undefined.
-     *
-     * 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 *);
-
-    /*
-     * snmp_select_info2() is similar to snmp_select_info(), but accepts a
-     * 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();
-     *
-     * snmp_timeout should be called whenever the timeout from snmp_select_info
-     * expires, but it is idempotent, so snmp_timeout can be polled (probably a
-     * cpu expensive proposition).  snmp_timeout checks to see if any of the
-     * sessions have an outstanding request that has timed out.  If it finds one
-     * (or more), and that pdu has more retries available, a new packet is formed
-     * from the pdu and is resent.  If there are no more retries available, the
-     * callback for the session is used to alert the user of the timeout.
-     */
-
-    NETSNMP_IMPORT
-    void            snmp_timeout(void);
-
-    /*
-     * single session API.
-     *
-     * These functions perform similar actions as snmp_XX functions,
-     * but operate on a single session only.
-     *
-     * Synopsis:
-     
-     void * sessp;
-     netsnmp_session session, *ss;
-     netsnmp_pdu *pdu, *response;
-     
-     snmp_sess_init(&session);
-     session.retries = ...
-     session.remote_port = ...
-     sessp = snmp_sess_open(&session);
-     ss = snmp_sess_session(sessp);
-     if (ss == NULL)
-     exit(1);
-     ...
-     if (ss->community) free(ss->community);
-     ss->community = strdup(gateway);
-     ss->community_len = strlen(gateway);
-     ...
-     snmp_sess_synch_response(sessp, pdu, &response);
-     ...
-     snmp_sess_close(sessp);
-     
-     * See also:
-     * snmp_sess_synch_response, in snmp_client.h.
-     
-     * Notes:
-     *  1. Invoke snmp_sess_session after snmp_sess_open.
-     *  2. snmp_sess_session return value is an opaque pointer.
-     *  3. Do NOT free memory returned by snmp_sess_session.
-     *  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 *);
-
-
-    /*
-     * 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 **);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-    /*
-     *    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.
-     *
-     *    In due course, these should probably be gathered
-     *  together into a companion 'library/session_api.h' header file.
-     *  [Or some suitable name]
+     *  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.
      *
-     *    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:
+     *  But for the time being, this header file is a placeholder,
+     *  to allow application writers to adopt the new header file names.
      */
 
 #include <net-snmp/library/snmp_api.h>
diff --git a/include/net-snmp/system/aix.h b/include/net-snmp/system/aix.h
index 02d4981..43272f1 100644
--- a/include/net-snmp/system/aix.h
+++ b/include/net-snmp/system/aix.h
@@ -22,6 +22,3 @@
 
 /* define the extra mib modules that are supported */
 #define NETSNMP_INCLUDE_HOST_RESOURCES
-
-/* the legacy symbol NOACCESS clashes with the system headers. Remove it. */
-#define NETSNMP_NO_LEGACY_DEFINITIONS
diff --git a/include/net-snmp/system/cygwin.h b/include/net-snmp/system/cygwin.h
index a9b76fb..14ae8ae 100644
--- a/include/net-snmp/system/cygwin.h
+++ b/include/net-snmp/system/cygwin.h
@@ -7,6 +7,7 @@
 #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 5a065b7..6750cf1 100644
--- a/include/net-snmp/system/darwin.h
+++ b/include/net-snmp/system/darwin.h
@@ -5,4 +5,3 @@
  * At least, as of 5.3.
  */
 #undef HAVE_FSTAB_H
-
diff --git a/include/net-snmp/system/darwin10.h b/include/net-snmp/system/darwin10.h
deleted file mode 100644
index 8ed82d0..0000000
--- a/include/net-snmp/system/darwin10.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * 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 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
-
diff --git a/include/net-snmp/system/darwin11.h b/include/net-snmp/system/darwin11.h
deleted file mode 100644
index 24fed93..0000000
--- a/include/net-snmp/system/darwin11.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * 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
deleted file mode 100644
index fd66147..0000000
--- a/include/net-snmp/system/darwin12.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * 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 8d4554d..b1553de 100644
--- a/include/net-snmp/system/darwin7.h
+++ b/include/net-snmp/system/darwin7.h
@@ -12,4 +12,3 @@
 
 #define SWAPFILE_DIR "/private/var/vm"
 #define SWAPFILE_PREFIX "swapfile"
-
diff --git a/include/net-snmp/system/darwin8.h b/include/net-snmp/system/darwin8.h
index 1e6d7d3..174fa78 100644
--- a/include/net-snmp/system/darwin8.h
+++ b/include/net-snmp/system/darwin8.h
@@ -63,6 +63,14 @@
 #endif
 
 /*
+ * Although Darwin does have a kvm.h file, kvm_openfiles etc. always
+ * return null because /dev/kmem was removed in OS X 10.4 for Intel.
+ */
+#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.
  */
@@ -91,4 +99,3 @@
  */
 /* #define USE_UNIFIED_IPV6_STRUCTS 1 */
 #undef STRUCT_in6pcb_HAS_inp_vflag
-
diff --git a/include/net-snmp/system/darwin9.h b/include/net-snmp/system/darwin9.h
index cf4e1d5..62d8d30 100644
--- a/include/net-snmp/system/darwin9.h
+++ b/include/net-snmp/system/darwin9.h
@@ -3,16 +3,6 @@
  * 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 
@@ -45,9 +35,6 @@
  * This section defines Mac OS X 10.5 (and later) specific additions.
  */
 #define darwin 9
-#ifndef darwin9
-#   define darwin9 darwin
-#endif
 
 /*
  * Mac OS X should only use the modern API and definitions.
@@ -63,14 +50,6 @@
 #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
@@ -103,6 +82,14 @@
 #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.
  */
@@ -133,11 +120,6 @@
 #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
  */
@@ -145,4 +127,3 @@
 #ifdef TARGET_RT_LITTLE_ENDIAN
 #define UDP_ADDRESSES_IN_HOST_ORDER 1
 #endif
-
diff --git a/include/net-snmp/system/dragonfly.h b/include/net-snmp/system/dragonfly.h
index 35d016b..853d462 100644
--- a/include/net-snmp/system/dragonfly.h
+++ b/include/net-snmp/system/dragonfly.h
@@ -6,7 +6,6 @@
 #define freebsd2 freebsd2
 #define freebsd3 freebsd3
 #define freebsd4 freebsd4
-#define dragonfly dragonfly
 
 #undef IFADDR_SYMBOL
 #define IFADDR_SYMBOL "in_ifaddrhead"
diff --git a/include/net-snmp/system/freebsd.h b/include/net-snmp/system/freebsd.h
index a30683f..4108429 100644
--- a/include/net-snmp/system/freebsd.h
+++ b/include/net-snmp/system/freebsd.h
@@ -24,4 +24,6 @@
 
 /* define the extra mib modules that are supported */
 #define NETSNMP_INCLUDE_HOST_RESOURCES
+#ifdef NETSNMP_ENABLE_MFD_REWRITES
 #define NETSNMP_INCLUDE_IFTABLE_REWRITES
+#endif
diff --git a/include/net-snmp/system/freebsd10.h b/include/net-snmp/system/freebsd10.h
deleted file mode 100644
index 871b9df..0000000
--- a/include/net-snmp/system/freebsd10.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* freebsd9 is a superset of freebsd10 */
-#include "freebsd9.h"
-#define freebsd10 freebsd10
diff --git a/include/net-snmp/system/freebsd5.h b/include/net-snmp/system/freebsd5.h
index 369c1a4..efbc5b3 100644
--- a/include/net-snmp/system/freebsd5.h
+++ b/include/net-snmp/system/freebsd5.h
@@ -4,5 +4,5 @@
 
 /* don't define _KERNEL on FreeBSD 5.3 even if configure thinks we need it */
 #ifdef freebsd5
-#undef NETSNMP_IFNET_NEEDS_KERNEL
+#undef IFNET_NEEDS_KERNEL
 #endif
diff --git a/include/net-snmp/system/freebsd8.h b/include/net-snmp/system/freebsd8.h
deleted file mode 100644
index 0c814bd..0000000
--- a/include/net-snmp/system/freebsd8.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* freebsd8 is a superset of freebsd7 */
-#include "freebsd7.h"
-#define freebsd7 freebsd7
diff --git a/include/net-snmp/system/freebsd9.h b/include/net-snmp/system/freebsd9.h
deleted file mode 100644
index 1bd4750..0000000
--- a/include/net-snmp/system/freebsd9.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* freebsd9 is a superset of freebsd8 */
-#include "freebsd8.h"
-#define freebsd9 freebsd9
diff --git a/include/net-snmp/system/generic.h b/include/net-snmp/system/generic.h
index 0828a84..5bac16d 100644
--- a/include/net-snmp/system/generic.h
+++ b/include/net-snmp/system/generic.h
@@ -1,5 +1,3 @@
-#ifndef __NET_SNMP_SYSTEM_GENERIC_H__
-#define __NET_SNMP_SYSTEM_GENERIC_H__
 
 #define bsdlike bsdlike
 
@@ -74,5 +72,3 @@
  */
 #define INP_NEXT_SYMBOL inp_next
 #define INP_PREV_SYMBOL inp_prev
-
-#endif /* !__NET_SNMP_SYSTEM_GENERIC_H__ */
diff --git a/include/net-snmp/system/hpux.h b/include/net-snmp/system/hpux.h
index 57cea42..0b627e9 100644
--- a/include/net-snmp/system/hpux.h
+++ b/include/net-snmp/system/hpux.h
@@ -80,15 +80,5 @@
 #  define NETSNMP_ENABLE_INLINE 0
 #endif
 
-/*
- * prevent sigaction being redefined to cma_sigaction
- * (causing build errors on HP-UX 10.20, at least)
- */
-#ifdef hpux10
-#ifndef _CMA_NOWRAPPERS_
-#  define _CMA_NOWRAPPERS_ 1
-#endif
-#endif
-
 /* define the extra mib modules that are supported */
 #define NETSNMP_INCLUDE_HOST_RESOURCES
diff --git a/include/net-snmp/system/irix.h b/include/net-snmp/system/irix.h
index 933fe63..79d41a8 100644
--- a/include/net-snmp/system/irix.h
+++ b/include/net-snmp/system/irix.h
@@ -23,7 +23,7 @@
 /*
  * don't define _KERNEL before including sys/unistd.h 
  */
-#define NETSNMP_IFNET_NEEDS_KERNEL_LATE  1
+#define IFNET_NEEDS_KERNEL_LATE  1
 
 #define STREAM_NEEDS_KERNEL_ISLANDS
 
diff --git a/include/net-snmp/system/kfreebsd.h b/include/net-snmp/system/kfreebsd.h
deleted file mode 100644
index dbf7024..0000000
--- a/include/net-snmp/system/kfreebsd.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#include "freebsd6.h"
-#define freebsd6 freebsd6
-
-#include <osreldate.h>
-#define __FreeBSD_version __FreeBSD_kernel_version
-
-#include <sys/queue.h>
-#include <sys/_types.h>
-
diff --git a/include/net-snmp/system/mingw32.h b/include/net-snmp/system/mingw32.h
index 68a3a76..29d09a4 100644
--- a/include/net-snmp/system/mingw32.h
+++ b/include/net-snmp/system/mingw32.h
@@ -16,15 +16,6 @@
     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
@@ -39,7 +30,10 @@
 #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
@@ -50,9 +44,6 @@
 /* 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
 
@@ -81,13 +72,15 @@
 #define	F_SETFL		4
 #define	O_NONBLOCK	0x4000  /* non blocking I/O (POSIX style) */
 
-#ifndef HAVE_STRUCT_TIMEZONE_TZ_DSTTIME
 /*
- * Older MinGW versions do not have struct timezone, so define it here.
+ * 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.
  */
 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 1f22a44..53556ba 100644
--- a/include/net-snmp/system/netbsd.h
+++ b/include/net-snmp/system/netbsd.h
@@ -34,42 +34,9 @@
 
 #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
-#define NETBSD_STATS_VIA_SYSCTL
-#endif /* __NetBSD_Version__ >= 499005800 */
-
 /* define the extra mib modules that are supported */
 #define NETSNMP_INCLUDE_HOST_RESOURCES
-#define NETSNMP_INCLUDE_IFTABLE_REWRITES
diff --git a/include/net-snmp/system/nto-qnx6.h b/include/net-snmp/system/nto-qnx6.h
deleted file mode 100644
index 1965111..0000000
--- a/include/net-snmp/system/nto-qnx6.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#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/system/openbsd.h b/include/net-snmp/system/openbsd.h
index 8db0eac..f463a5f 100644
--- a/include/net-snmp/system/openbsd.h
+++ b/include/net-snmp/system/openbsd.h
@@ -1,7 +1,6 @@
 #include "netbsd.h"
 
 #define netbsd1 netbsd1         /* we're really close to this */
-#define openbsd openbsd
 #define UVM
 
 #undef MBPOOL_SYMBOL
@@ -15,4 +14,6 @@
 
 /* define the extra mib modules that are supported */
 #define NETSNMP_INCLUDE_HOST_RESOURCES
+#ifdef NETSNMP_ENABLE_MFD_REWRITES
 #define NETSNMP_INCLUDE_IFTABLE_REWRITES
+#endif
diff --git a/include/net-snmp/system/openbsd4.h b/include/net-snmp/system/openbsd4.h
deleted file mode 100644
index 7077d06..0000000
--- a/include/net-snmp/system/openbsd4.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* openbsd4 is a superset of openbsd3 */
-#include "openbsd.h"
-#define openbsd3 openbsd3
diff --git a/include/net-snmp/system/openbsd5.h b/include/net-snmp/system/openbsd5.h
deleted file mode 100644
index 26b2415..0000000
--- a/include/net-snmp/system/openbsd5.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* openbsd5 is a superset of all since openbsd3 */
-#include "openbsd4.h"
-#define openbsd4 openbsd4
diff --git a/include/net-snmp/system/solaris.h b/include/net-snmp/system/solaris.h
index ec61c39..d3dcb72 100644
--- a/include/net-snmp/system/solaris.h
+++ b/include/net-snmp/system/solaris.h
@@ -25,9 +25,14 @@
 #define UDP_PORTS_IN_HOST_ORDER 1
 #define TCP_PORTS_IN_HOST_ORDER 1
 
+/* get some required prototypes (strtok_r) from include files */
+#define __EXTENSIONS__
+
 /* define the extra mib modules that are supported */
 #define NETSNMP_INCLUDE_HOST_RESOURCES
+#ifdef NETSNMP_ENABLE_MFD_REWRITES
 #define NETSNMP_INCLUDE_IFTABLE_REWRITES
+#endif
 
 /* Solaris 2.6+ */
 #define _SLASH_PROC_METHOD_ 1
@@ -38,6 +43,6 @@
 /*
  * NEW_MIB_COMPLIANT is a define used in Solaris 10U4+ to enable additional
  * MIB information (it affects the structs in <inet/mib2.h>)
- */ 
- 
+ */
+
 #define NEW_MIB_COMPLIANT
diff --git a/include/net-snmp/system/svr5.h b/include/net-snmp/system/svr5.h
index 017c7c1..c4a9f9a 100644
--- a/include/net-snmp/system/svr5.h
+++ b/include/net-snmp/system/svr5.h
@@ -7,12 +7,18 @@
 /*
  * using CCS "cc", "configure" does not find this item 
  */
+#define HAVE_MEMCPY 1
+/*
+ * so, undo the damage done earlier in config.h 
+ */
+#undef memcpy
+#undef memmove
 #define HAVE_GETHOSTBYNAME 1
 
 /*
  * lie about this next define to avoid sa_len and sa_family MACROS !! 
  */
-#define HAVE_STRUCT_SOCKADDR_SA_UNION_SA_GENERIC_SA_FAMILY2 1
+#define STRUCT_SOCKADDR_HAS_SA_UNION_SA_GENERIC_SA_FAMILY2 1
 
 /*
  * this header requires queue_t, not easily done without kernel headers 
diff --git a/include/net-snmp/types.h b/include/net-snmp/types.h
index 95d2576..0592004 100644
--- a/include/net-snmp/types.h
+++ b/include/net-snmp/types.h
@@ -15,7 +15,11 @@
                          * For 'timeval' 
                          */
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -29,64 +33,34 @@
 #include <inttypes.h>
 #endif
 #include <sys/types.h>
-#if 1
-/*
- * If neither the Microsoft winsock header file nor the MinGW winsock header
- * file has already been included, do this now.
- */
-# if defined(HAVE_WINSOCK2_H) && defined(HAVE_WS2TCPIP_H)
-#  if !defined(HAVE_WIN32_PLATFORM_SDK) && _MSC_VER -0 <= 1200 \
-    && _WIN32_WINNT -0 >= 0x0400
-    /*
-     * When using the MSVC 6 header files, including <winsock2.h> when
-     * _WIN32_WINNT >= 0x0400 results in a compilation error. Hence include
-     * <windows.h> instead, because <winsock2.h> is included from inside
-     * <windows.h> when _WIN32_WINNT >= 0x0400. The SDK version of <windows.h>
-     * does not include <winsock2.h> however.
-     */
-#   include <windows.h>
-#  else
-#   include <winsock2.h>
-#  endif
-#  include <ws2tcpip.h>
-# elif defined(HAVE_WINSOCK_H)
-#  include <winsock.h>
-# endif
-#endif
-
-#if defined(WIN32) && !defined(cygwin)
-typedef HANDLE netsnmp_pid_t;
-#define NETSNMP_NO_SUCH_PROCESS INVALID_HANDLE_VALUE
-#else
-/*
- * Note: on POSIX-compliant systems, pid_t is defined in <sys/types.h>.
- * And if pid_t has not been defined in <sys/types.h>, AC_TYPE_PID_T ensures
- * that a pid_t definition is present in net-snmp-config.h.
- */
-typedef pid_t netsnmp_pid_t;
-#define NETSNMP_NO_SUCH_PROCESS -1
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
 #endif
 
 #if HAVE_NETINET_IN_H
 #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   0xFFFFFFFF
+#else
+typedef u_char  oid;
+#define MAX_SUBID   0xFF
+#endif
+#endif
+
 #ifndef HAVE_SOCKLEN_T
 typedef u_int socklen_t;
 #endif
 
 #ifndef HAVE_IN_ADDR_T
-  /*
-   * The type in_addr_t must match the type of sockaddr_in::sin_addr.
-   * For MSVC and MinGW32, this is u_long.
-   */
-typedef u_long in_addr_t;
+typedef u_int in_addr_t;
 #endif
 
 #ifndef HAVE_SSIZE_T
@@ -97,328 +71,215 @@ typedef long ssize_t;
 #endif
 #endif
 
-#ifndef HAVE_NFDS_T
-typedef unsigned long int nfds_t;
-#endif
-
     /*
-     *  For the initial release, this will just refer to the
-     *  relevant UCD header files.
-     *    In due course, the types and structures relevant to the
-     *  Net-SNMP API will be identified, and defined here directly.
-     *
-     *  But for the time being, this header file is primarily a placeholder,
-     *  to allow application writers to adopt the new header file names.
+     * Try to ensure we have 32-bit (and hopefully 64-bit)
+     *    integer types available.
      */
 
-typedef union {
-   long           *integer;
-   u_char         *string;
-   oid            *objid;
-   u_char         *bitstring;
-   struct counter64 *counter64;
-#ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
-   float          *floatVal;
-   double         *doubleVal;
-   /*
-    * t_union *unionVal; 
-    */
-#endif                          /* NETSNMP_WITH_OPAQUE_SPECIAL_TYPES */
-} netsnmp_vardata;
-
-
-#define MAX_OID_LEN	    128 /* max subid's in an oid */
-
-/** @typedef struct variable_list netsnmp_variable_list
- * Typedefs the variable_list struct into netsnmp_variable_list */
-/** @struct variable_list
- * The netsnmp variable list binding structure, it's typedef'd to
- * netsnmp_variable_list.
- */
-typedef struct variable_list {
-   /** NULL for last variable */
-   struct variable_list *next_variable;    
-   /** Object identifier of variable */
-   oid            *name;   
-   /** number of subid's in name */
-   size_t          name_length;    
-   /** ASN type of variable */
-   u_char          type;   
-   /** value of variable */
-    netsnmp_vardata val;
-   /** the length of the value to be copied into buf */
-   size_t          val_len;
-   /** buffer to hold the OID */
-   oid             name_loc[MAX_OID_LEN];  
-   /** 90 percentile < 40. */
-   u_char          buf[40];
-   /** (Opaque) hook for additional data */
-   void           *data;
-   /** callback to free above */
-   void            (*dataFreeHook)(void *);    
-   int             index;
-} netsnmp_variable_list;
-
-
-/** @typedef struct snmp_pdu to netsnmp_pdu
- * Typedefs the snmp_pdu struct into netsnmp_pdu */
-/** @struct snmp_pdu
- * The snmp protocol data unit.
- */	
-typedef struct snmp_pdu {
-
-#define non_repeaters	errstat
-#define max_repetitions errindex
+#ifndef HAVE_INT8_T
+typedef signed char int8_t;
+#endif /* !HAVE_INT8_T */
 
-    /*
-     * Protocol-version independent fields
-     */
-    /** snmp version */
-    long            version;
-    /** Type of this PDU */	
-    int             command;
-    /** Request id - note: not incremented on retries */
-    long            reqid;  
-    /** Message id for V3 messages note: incremented for each retry */
-    long            msgid;
-    /** Unique ID for incoming transactions */
-    long            transid;
-    /** Session id for AgentX messages */
-    long            sessid;
-    /** Error status (non_repeaters in GetBulk) */
-    long            errstat;
-    /** Error index (max_repetitions in GetBulk) */
-    long            errindex;       
-    /** Uptime */
-    u_long          time;   
-    u_long          flags;
-
-    int             securityModel;
-    /** noAuthNoPriv, authNoPriv, authPriv */
-    int             securityLevel;  
-    int             msgParseModel;
+#ifndef HAVE_UINT8_T
+#ifdef HAVE_U_INT8_T
+typedef u_int8_t      uint8_t;
+#else
+typedef unsigned char uint8_t;
+#endif
+#endif /* !HAVE_UINT8_T */
 
-    /**
-     * Transport-specific opaque data.  This replaces the IP-centric address
-     * field.  
-     */
-    
-    void           *transport_data;
-    int             transport_data_length;
+#ifndef HAVE_INT16_T
+#if   SIZEOF_INT == 2
+#define INT16_T int
+#elif SIZEOF_SHORT == 2
+#define INT16_T short
+#else
+#define _INT16_IS_NOT_16BIT
+#define INT16_T short
+#endif
+typedef INT16_T int16_t;
+#endif /* !HAVE_INT16_T */
 
-    /**
-     * The actual transport domain.  This SHOULD NOT BE FREE()D.  
-     */
+#ifndef HAVE_UINT16_T
+#ifdef HAVE_U_INT16_T
+typedef u_int16_t        uint16_t;
+#else
+#ifdef INT16_T
+typedef unsigned INT16_T uint16_t;
+#else
+typedef unsigned short   uint16_t;
+#endif
+#endif
+#endif /* !HAVE_UINT16_T */
+
+#ifndef HAVE_INT32_T
+#if   SIZEOF_INT == 4
+#define INT32_T int 
+#elif SIZEOF_LONG == 4
+#define INT32_T long 
+#elif SIZEOF_SHORT == 4
+#define INT32_T short 
+#else
+#define _INT32_IS_NOT_32BIT
+#define INT32_T int 
+#endif
+typedef INT32_T int32_t;
+#endif /* !HAVE_INT32_T */
 
-    const oid      *tDomain;
-    size_t          tDomainLen;
+#ifndef HAVE_UINT32_T
+#ifdef HAVE_U_INT32_T
+typedef u_int32_t        uint32_t;
+#else
+#ifdef INT32_T
+typedef unsigned INT32_T uint32_t;
+#else
+typedef unsigned int     uint32_t;
+#endif
+#endif
+#endif /* !HAVE_UINT32_T */
+
+#ifndef HAVE_INT64_T
+#if SIZEOF_LONG == 8
+#define INT64_T long 
+#elif SIZEOF_LONG_LONG == 8
+#define INT64_T long long
+#elif   SIZEOF_INT == 8
+#define INT64_T int 
+#elif SIZEOF_LONG >= 8
+#define INT64_T long 
+#define _INT64_IS_NOT_64BIT
+#endif
+#ifdef INT64_T
+typedef INT64_T int64_t;
+#define HAVE_INT64_T 1
+#endif
+#endif /* !HAVE_INT64_T */
 
-    netsnmp_variable_list *variables;
+#ifndef HAVE_UINT64_T
+#ifdef HAVE_U_INT64_T
+typedef u_int64_t        uint64_t;
+#elif defined(INT64_T)
+typedef unsigned INT64_T uint64_t;
+#endif
+#define HAVE_UINT64_T 1
+#endif
 
+#ifndef HAVE_INTMAX_T
+#ifdef SIZEOF_LONG_LONG
+typedef long long intmax_t;
+#define SIZEOF_INTMAX_T SIZEOF_LONG_LONG
+#elif defined(HAVE_INT64_T) && !defined(_INT64_IS_NOT_64BIT)
+typedef int64_t   intmax_t;
+#define SIZEOF_INTMAX_T 8
+#else
+typedef long      intmax_t;
+#define SIZEOF_INTMAX_T SIZEOF_LONG
+#endif
+#define HAVE_INTMAX_T 1
+#endif
 
-    /*
-     * SNMPv1 & SNMPv2c fields
-     */
-    /** community for outgoing requests. */
-    u_char         *community;
-    /** length of community name. */
-    size_t          community_len;  
+#ifndef HAVE_UINTMAX_T
+#ifdef SIZEOF_LONG_LONG
+typedef unsigned long long uintmax_t;
+#elif defined(HAVE_UINT64_T) && !defined(_INT64_IS_NOT_64BIT)
+typedef uint64_t           uintmax_t;
+#else
+typedef unsigned long      uintmax_t;
+#endif
+#define HAVE_UINTMAX_T 1
+#endif
 
-    /*
-     * Trap information
-     */
-    /** System OID */
-    oid            *enterprise;     
-    size_t          enterprise_length;
-    /** trap type */
-    long            trap_type;
-    /** specific type */
-    long            specific_type;
-    /** This is ONLY used for v1 TRAPs  */
-    unsigned char   agent_addr[4];  
+#ifndef HAVE_UINTPTR_T
+#if SIZEOF_LONG == 8
+/* likely 64bit machine with 64bit addressing? */
+    typedef unsigned long uintptr_t;
+#else
+    typedef unsigned uintptr_t;
+#endif
+#endif
 
-    /*
-     *  SNMPv3 fields
-     */
-    /** context snmpEngineID */
-    u_char         *contextEngineID;
-    /** Length of contextEngineID */
-    size_t          contextEngineIDLen;     
-    /** authoritative contextName */
-    char           *contextName;
-    /** Length of contextName */
-    size_t          contextNameLen;
-    /** authoritative snmpEngineID for security */
-    u_char         *securityEngineID;
-    /** Length of securityEngineID */
-    size_t          securityEngineIDLen;    
-    /** on behalf of this principal */
-    char           *securityName;
-    /** Length of securityName. */
-    size_t          securityNameLen;        
+#ifndef HAVE_INTPTR_T
+#if SIZEOF_LONG == 8
+/* likely 64bit machine with 64bit addressing? */
+    typedef long intptr_t;
+#else
+    typedef int intptr_t;
+#endif
+#endif
     
     /*
-     * AgentX fields
-     *      (also uses SNMPv1 community field)
+     *  For the initial release, this will just refer to the
+     *  relevant UCD header files.
+     *    In due course, the types and structures relevant to the
+     *  Net-SNMP API will be identified, and defined here directly.
+     *
+     *  But for the time being, this header file is primarily a placeholder,
+     *  to allow application writers to adopt the new header file names.
      */
-    int             priority;
-    int             range_subid;
-    
-    void           *securityStateRef;
-} netsnmp_pdu;
-
-
-/** @typedef struct snmp_session netsnmp_session
- * Typedefs the snmp_session struct intonetsnmp_session */
-        struct snmp_session;
-typedef struct snmp_session netsnmp_session;
 
-#define USM_AUTH_KU_LEN     32
-#define USM_PRIV_KU_LEN     32
 
-typedef int        (*snmp_callback) (int, netsnmp_session *, int,
-                                          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.
+#include <net-snmp/definitions.h>
+#include <net-snmp/library/snmp_api.h>
+/*
+ * #include <net-snmp/library/libsnmp.h> 
  */
-struct snmp_session {
-    /*
-     * Protocol-version independent fields
-     */
-    /** snmp version */
-    long            version;
-    /** Number of retries before timeout. */
-    int             retries;
-    /** Number of uS until first timeout, then exponential backoff */
-    long            timeout;        
-    u_long          flags;
-    struct snmp_session *subsession;
-    struct snmp_session *next;
-
-    /** name or address of default peer (may include transport specifier and/or port number) */
-    char           *peername;
-    /** UDP port number of peer. (NO LONGER USED - USE peername INSTEAD) */
-    u_short         remote_port;
-    /** My Domain name or dotted IP address, 0 for default */
-    char           *localname;
-    /** My UDP port number, 0 for default, picked randomly */
-    u_short         local_port;     
-    /**
-     * Authentication function or NULL if null authentication is used 
-     */
-    u_char         *(*authenticator) (u_char *, size_t *, u_char *, size_t);
-    /** Function to interpret incoming data */
-    netsnmp_callback callback;      
-    /**
-     * Pointer to data that the callback function may consider important 
-     */
-    void           *callback_magic;
-    /** copy of system errno */
-    int             s_errno;
-    /** copy of library errno */
-    int             s_snmp_errno;   
-    /** Session id - AgentX only */
-    long            sessid; 
 
-    /*
-     * SNMPv1 & SNMPv2c fields
-     */
-    /** community for outgoing requests. */
-    u_char         *community;
-    /** Length of community name. */
-    size_t          community_len;  
-    /**  Largest message to try to receive.  */
-    size_t          rcvMsgMaxSize;
-    /**  Largest message to try to send.  */
-    size_t          sndMsgMaxSize;  
+    typedef struct netsnmp_index_s {
+       size_t      len;
+       oid         *oids;
+    } netsnmp_index;
 
-    /*
-     * SNMPv3 fields
-     */
-    /** are we the authoritative engine? */
-    u_char          isAuthoritative;
-    /** authoritative snmpEngineID */
-    u_char         *contextEngineID;
-    /** Length of contextEngineID */
-    size_t          contextEngineIDLen;     
-    /** initial engineBoots for remote engine */
-    u_int           engineBoots;
-    /** initial engineTime for remote engine */
-    u_int           engineTime;
-    /** authoritative contextName */
-    char           *contextName;
-    /** Length of contextName */
-    size_t          contextNameLen;
-    /** authoritative snmpEngineID */
-    u_char         *securityEngineID;
-    /** Length of contextEngineID */
-    size_t          securityEngineIDLen;    
-    /** on behalf of this principal */
-    char           *securityName;
-    /** Length of securityName. */
-    size_t          securityNameLen;
-
-    /** auth protocol oid */
-    oid            *securityAuthProto;
-    /** Length of auth protocol oid */
-    size_t          securityAuthProtoLen;
-    /** Ku for auth protocol XXX */
-    u_char          securityAuthKey[USM_AUTH_KU_LEN];       
-    /** Length of Ku for auth protocol */
-    size_t          securityAuthKeyLen;
-    /** Kul for auth protocol */
-    u_char          *securityAuthLocalKey;       
-    /** Length of Kul for auth protocol XXX */
-    size_t          securityAuthLocalKeyLen;       
-
-    /** priv protocol oid */
-    oid            *securityPrivProto;
-    /** Length of priv protocol oid */
-    size_t          securityPrivProtoLen;
-    /** Ku for privacy protocol XXX */
-    u_char          securityPrivKey[USM_PRIV_KU_LEN];       
-    /** Length of Ku for priv protocol */
-    size_t          securityPrivKeyLen;
-    /** Kul for priv protocol */
-    u_char          *securityPrivLocalKey;       
-    /** Length of Kul for priv protocol XXX */
-    size_t          securityPrivLocalKeyLen;       
-
-    /** snmp security model, v1, v2c, usm */
-    int             securityModel;
-    /** noAuthNoPriv, authNoPriv, authPriv */
-    int             securityLevel;  
-    /** target param name */
-    char           *paramName;
 
-    /**
-     * security module specific 
-     */
-    void           *securityInfo;
+    typedef struct netsnmp_void_array_s {
+       size_t  size;
+       void * *array;
+    } netsnmp_void_array;
 
-    /**
-     * transport specific configuration 
-     */
-   struct netsnmp_container_s *transport_configuration;
-
-    /**
-     * 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?
+    /*
+     * references to various types
      */
-    void           *myvoid;
-};
-
+    typedef struct netsnmp_ref_void {
+       void * val;
+    } netsnmp_ref_void;
+
+    typedef union {
+        u_long  ul;
+        u_int   ui;
+        u_short us;
+        u_char  uc;
+        long    sl;
+        int     si;
+        short   ss;
+        char    sc;
+        char *  cp;
+        void *  vp;
+    } netsnmp_cvalue;
+
+#if 0
+    typedef struct netsnmp_ref_u_char {
+       u_char * val;
+    } netsnmp_ref_U_char;
+
+    typedef struct netsnmp_ref_char {
+       char * val;
+    } netsnmp_ref_void;
+
+    typedef struct netsnmp_ref_int_s {
+       int val;
+    } netsnmp_ref_int;
+
+    typedef struct netsnmp_ref_u_int_s {
+       u_int val;
+    } netsnmp_ref_int;
+
+    typedef struct netsnmp_ref_u_long_s {
+       u_long val;
+    } netsnmp_ref_u_long;
+#endif
 
-#include <net-snmp/library/types.h>
-#include <net-snmp/definitions.h>
-#include <net-snmp/library/snmp_api.h>
+    typedef struct netsnmp_ref_size_t_s {
+       size_t val;
+    } * netsnmp_ref_size_t;
 
 #ifdef __cplusplus
 }
diff --git a/include/net-snmp/varbind_api.h b/include/net-snmp/varbind_api.h
index 7f48503..ed5748b 100644
--- a/include/net-snmp/varbind_api.h
+++ b/include/net-snmp/varbind_api.h
@@ -7,97 +7,16 @@
 
 #include <net-snmp/types.h>
 
-#ifdef __cplusplus
-extern          "C" {
-#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 */
-    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
-}
-#endif
-
     /*
-     *    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.
+     *  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.
      *
-     *    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:
+     *  But for the time being, this header file is a placeholder,
+     *  to allow application writers to adopt the new header file names.
      */
+
 #include <net-snmp/library/snmp_api.h>
 #include <net-snmp/library/snmp_client.h>
 #include <net-snmp/library/mib.h>
diff --git a/include/net-snmp/version.h b/include/net-snmp/version.h
index 1c36ffe..17b2e45 100644
--- a/include/net-snmp/version.h
+++ b/include/net-snmp/version.h
@@ -9,7 +9,6 @@ extern          "C" {
     extern const char *NetSnmpVersionInfo;
 #endif
 
-    NETSNMP_IMPORT
     const char     *netsnmp_get_version(void);
 
 #ifdef __cplusplus
diff --git a/install-sh b/install-sh
index 3f83ce9..2c212cc 100755
--- a/install-sh
+++ b/install-sh
@@ -1,38 +1,19 @@
-#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2010-02-06.18; # UTC
-
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# 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
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#! /bin/sh
 #
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
 #
+# Copyright 1991 by the Massachusetts Institute of Technology
 #
-# FSF changes to this file are in the public domain.
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission.  M.I.T. makes no representations about the
+# suitability of this software for any purpose.  It is provided "as is"
+# without express or implied warranty.
 #
 # Calling this script install-sh is preferred over install.sh, to prevent
 # `make' implicit rules from creating a file called install from it
@@ -40,485 +21,230 @@ scriptversion=2010-02-06.18; # UTC
 #
 # This script is compatible with the BSD install script, but was written
 # from scratch.
+#
 
-nl='
-'
-IFS=" ""	$nl"
 
 # set DOITPROG to echo to test this script
 
 # Don't use :- since 4.3BSD and earlier shells don't like it.
-doit=${DOITPROG-}
-if test -z "$doit"; then
-  doit_exec=exec
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+	-c) instcmd="$cpprog"
+	    shift
+	    continue;;
+
+	-d) dir_arg=true
+	    shift
+	    continue;;
+
+	-m) chmodcmd="$chmodprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-o) chowncmd="$chownprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-g) chgrpcmd="$chgrpprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-s) stripcmd="$stripprog"
+	    shift
+	    continue;;
+
+	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
+	    shift
+	    continue;;
+
+	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+	    shift
+	    continue;;
+
+	*)  if [ x"$src" = x ]
+	    then
+		src=$1
+	    else
+		# this colon is to work around a 386BSD /bin/sh bug
+		:
+		dst=$1
+	    fi
+	    shift
+	    continue;;
+    esac
+done
+
+if [ x"$src" = x ]
+then
+	echo "install:	no input file specified"
+	exit 1
 else
-  doit_exec=$doit
+	true
 fi
 
-# Put in absolute file names if you don't have them in your path;
-# or use environment vars.
-
-chgrpprog=${CHGRPPROG-chgrp}
-chmodprog=${CHMODPROG-chmod}
-chownprog=${CHOWNPROG-chown}
-cmpprog=${CMPPROG-cmp}
-cpprog=${CPPROG-cp}
-mkdirprog=${MKDIRPROG-mkdir}
-mvprog=${MVPROG-mv}
-rmprog=${RMPROG-rm}
-stripprog=${STRIPPROG-strip}
-
-posix_glob='?'
-initialize_posix_glob='
-  test "$posix_glob" != "?" || {
-    if (set -f) 2>/dev/null; then
-      posix_glob=
-    else
-      posix_glob=:
-    fi
-  }
-'
-
-posix_mkdir=
+if [ x"$dir_arg" != x ]; then
+	dst=$src
+	src=""
+	
+	if [ -d $dst ]; then
+		instcmd=:
+	else
+		instcmd=mkdir
+	fi
+else
 
-# Desired mode of installed file.
-mode=0755
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad 
+# if $src (and thus $dsttmp) contains '*'.
 
-chgrpcmd=
-chmodcmd=$chmodprog
-chowncmd=
-mvcmd=$mvprog
-rmcmd="$rmprog -f"
-stripcmd=
+	if [ -f $src -o -d $src ]
+	then
+		true
+	else
+		echo "install:  $src does not exist"
+		exit 1
+	fi
+	
+	if [ x"$dst" = x ]
+	then
+		echo "install:	no destination specified"
+		exit 1
+	else
+		true
+	fi
 
-src=
-dst=
-dir_arg=
-dst_arg=
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
 
-copy_on_change=false
-no_target_directory=
+	if [ -d $dst ]
+	then
+		dst="$dst"/`basename $src`
+	else
+		true
+	fi
+fi
 
-usage="\
-Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
-   or: $0 [OPTION]... SRCFILES... DIRECTORY
-   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
-   or: $0 [OPTION]... -d DIRECTORIES...
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
 
-In the 1st form, copy SRCFILE to DSTFILE.
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-In the 4th, create DIRECTORIES.
+# Make sure that the destination directory exists.
+#  this part is taken from Noah Friedman's mkinstalldirs script
 
-Options:
-     --help     display this help and exit.
-     --version  display version info and exit.
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='	
+'
+IFS="${IFS-${defaultIFS}}"
 
-  -c            (ignored)
-  -C            install only if different (preserve the last data modification time)
-  -d            create directories instead of installing files.
-  -g GROUP      $chgrpprog installed files to GROUP.
-  -m MODE       $chmodprog installed files to MODE.
-  -o USER       $chownprog installed files to USER.
-  -s            $stripprog installed files.
-  -t DIRECTORY  install into DIRECTORY.
-  -T            report an error if DSTFILE is a directory.
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
 
-Environment variables override the default commands:
-  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
-  RMPROG STRIPPROG
-"
+pathcomp=''
 
-while test $# -ne 0; do
-  case $1 in
-    -c) ;;
+while [ $# -ne 0 ] ; do
+	pathcomp="${pathcomp}${1}"
+	shift
 
-    -C) copy_on_change=true;;
+	if [ ! -d "${pathcomp}" ] ;
+        then
+		$mkdirprog "${pathcomp}"
+	else
+		true
+	fi
 
-    -d) dir_arg=true;;
+	pathcomp="${pathcomp}/"
+done
+fi
 
-    -g) chgrpcmd="$chgrpprog $2"
-	shift;;
+if [ x"$dir_arg" != x ]
+then
+	$doit $instcmd $dst &&
 
-    --help) echo "$usage"; exit $?;;
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
 
-    -m) mode=$2
-	case $mode in
-	  *' '* | *'	'* | *'
-'*	  | *'*'* | *'?'* | *'['*)
-	    echo "$0: invalid mode: $mode" >&2
-	    exit 1;;
-	esac
-	shift;;
+# If we're going to rename the final executable, determine the name now.
 
-    -o) chowncmd="$chownprog $2"
-	shift;;
+	if [ x"$transformarg" = x ] 
+	then
+		dstfile=`basename $dst`
+	else
+		dstfile=`basename $dst $transformbasename | 
+			sed $transformarg`$transformbasename
+	fi
 
-    -s) stripcmd=$stripprog;;
+# don't allow the sed command to completely eliminate the filename
 
-    -t) dst_arg=$2
-	shift;;
+	if [ x"$dstfile" = x ] 
+	then
+		dstfile=`basename $dst`
+	else
+		true
+	fi
 
-    -T) no_target_directory=true;;
+# Make a temp file name in the proper directory.
 
-    --version) echo "$0 $scriptversion"; exit $?;;
+	dsttmp=$dstdir/#inst.$$#
 
-    --)	shift
-	break;;
+# Move or copy the file name to the temp name
 
-    -*)	echo "$0: invalid option: $1" >&2
-	exit 1;;
+	$doit $instcmd $src $dsttmp &&
 
-    *)  break;;
-  esac
-  shift
-done
+	trap "rm -f ${dsttmp}" 0 &&
 
-if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
-  # When -d is used, all remaining arguments are directories to create.
-  # When -t is used, the destination is already specified.
-  # Otherwise, the last argument is the destination.  Remove it from $@.
-  for arg
-  do
-    if test -n "$dst_arg"; then
-      # $@ is not empty: it contains at least $arg.
-      set fnord "$@" "$dst_arg"
-      shift # fnord
-    fi
-    shift # arg
-    dst_arg=$arg
-  done
-fi
+# and set any options; do chmod last to preserve setuid bits
 
-if test $# -eq 0; then
-  if test -z "$dir_arg"; then
-    echo "$0: no input file specified." >&2
-    exit 1
-  fi
-  # It's OK to call `install-sh -d' without argument.
-  # This can happen when creating conditional directories.
-  exit 0
-fi
+# If any of these fail, we abort the whole thing.  If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
 
-if test -z "$dir_arg"; then
-  do_exit='(exit $ret); exit $ret'
-  trap "ret=129; $do_exit" 1
-  trap "ret=130; $do_exit" 2
-  trap "ret=141; $do_exit" 13
-  trap "ret=143; $do_exit" 15
-
-  # Set umask so as not to create temps with too-generous modes.
-  # However, 'strip' requires both read and write access to temps.
-  case $mode in
-    # Optimize common cases.
-    *644) cp_umask=133;;
-    *755) cp_umask=22;;
-
-    *[0-7])
-      if test -z "$stripcmd"; then
-	u_plus_rw=
-      else
-	u_plus_rw='% 200'
-      fi
-      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
-    *)
-      if test -z "$stripcmd"; then
-	u_plus_rw=
-      else
-	u_plus_rw=,u+rw
-      fi
-      cp_umask=$mode$u_plus_rw;;
-  esac
-fi
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
 
-for src
-do
-  # Protect names starting with `-'.
-  case $src in
-    -*) src=./$src;;
-  esac
-
-  if test -n "$dir_arg"; then
-    dst=$src
-    dstdir=$dst
-    test -d "$dstdir"
-    dstdir_status=$?
-  else
-
-    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
-    # might cause directories to be created, which would be especially bad
-    # if $src (and thus $dsttmp) contains '*'.
-    if test ! -f "$src" && test ! -d "$src"; then
-      echo "$0: $src does not exist." >&2
-      exit 1
-    fi
-
-    if test -z "$dst_arg"; then
-      echo "$0: no destination specified." >&2
-      exit 1
-    fi
-
-    dst=$dst_arg
-    # Protect names starting with `-'.
-    case $dst in
-      -*) dst=./$dst;;
-    esac
+# Now rename the file to the real destination.
 
-    # If destination is a directory, append the input filename; won't work
-    # if double slashes aren't ignored.
-    if test -d "$dst"; then
-      if test -n "$no_target_directory"; then
-	echo "$0: $dst_arg: Is a directory" >&2
-	exit 1
-      fi
-      dstdir=$dst
-      dst=$dstdir/`basename "$src"`
-      dstdir_status=0
-    else
-      # Prefer dirname, but fall back on a substitute if dirname fails.
-      dstdir=`
-	(dirname "$dst") 2>/dev/null ||
-	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	     X"$dst" : 'X\(//\)[^/]' \| \
-	     X"$dst" : 'X\(//\)$' \| \
-	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
-	echo X"$dst" |
-	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\/\)[^/].*/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\/\)$/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\).*/{
-		   s//\1/
-		   q
-		 }
-		 s/.*/./; q'
-      `
-
-      test -d "$dstdir"
-      dstdir_status=$?
-    fi
-  fi
-
-  obsolete_mkdir_used=false
-
-  if test $dstdir_status != 0; then
-    case $posix_mkdir in
-      '')
-	# Create intermediate dirs using mode 755 as modified by the umask.
-	# This is like FreeBSD 'install' as of 1997-10-28.
-	umask=`umask`
-	case $stripcmd.$umask in
-	  # Optimize common cases.
-	  *[2367][2367]) mkdir_umask=$umask;;
-	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
-	  *[0-7])
-	    mkdir_umask=`expr $umask + 22 \
-	      - $umask % 100 % 40 + $umask % 20 \
-	      - $umask % 10 % 4 + $umask % 2
-	    `;;
-	  *) mkdir_umask=$umask,go-w;;
-	esac
-
-	# With -d, create the new directory with the user-specified mode.
-	# Otherwise, rely on $mkdir_umask.
-	if test -n "$dir_arg"; then
-	  mkdir_mode=-m$mode
-	else
-	  mkdir_mode=
-	fi
+	$doit $rmcmd -f $dstdir/$dstfile &&
+	$doit $mvcmd $dsttmp $dstdir/$dstfile 
 
-	posix_mkdir=false
-	case $umask in
-	  *[123567][0-7][0-7])
-	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
-	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-	    ;;
-	  *)
-	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
-	    if (umask $mkdir_umask &&
-		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
-	    then
-	      if test -z "$dir_arg" || {
-		   # Check for POSIX incompatibilities with -m.
-		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-		   # other-writeable bit of parent directory when it shouldn't.
-		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
-		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
-		   case $ls_ld_tmpdir in
-		     d????-?r-*) different_mode=700;;
-		     d????-?--*) different_mode=755;;
-		     *) false;;
-		   esac &&
-		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
-		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
-		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-		   }
-		 }
-	      then posix_mkdir=:
-	      fi
-	      rmdir "$tmpdir/d" "$tmpdir"
-	    else
-	      # Remove any dirs left behind by ancient mkdir implementations.
-	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
-	    fi
-	    trap '' 0;;
-	esac;;
-    esac
+fi &&
 
-    if
-      $posix_mkdir && (
-	umask $mkdir_umask &&
-	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
-      )
-    then :
-    else
-
-      # The umask is ridiculous, or mkdir does not conform to POSIX,
-      # or it failed possibly due to a race condition.  Create the
-      # directory the slow way, step by step, checking for races as we go.
-
-      case $dstdir in
-	/*) prefix='/';;
-	-*) prefix='./';;
-	*)  prefix='';;
-      esac
-
-      eval "$initialize_posix_glob"
-
-      oIFS=$IFS
-      IFS=/
-      $posix_glob set -f
-      set fnord $dstdir
-      shift
-      $posix_glob set +f
-      IFS=$oIFS
-
-      prefixes=
-
-      for d
-      do
-	test -z "$d" && continue
-
-	prefix=$prefix$d
-	if test -d "$prefix"; then
-	  prefixes=
-	else
-	  if $posix_mkdir; then
-	    (umask=$mkdir_umask &&
-	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
-	    # Don't fail if two instances are running concurrently.
-	    test -d "$prefix" || exit 1
-	  else
-	    case $prefix in
-	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
-	      *) qprefix=$prefix;;
-	    esac
-	    prefixes="$prefixes '$qprefix'"
-	  fi
-	fi
-	prefix=$prefix/
-      done
-
-      if test -n "$prefixes"; then
-	# Don't fail if two instances are running concurrently.
-	(umask $mkdir_umask &&
-	 eval "\$doit_exec \$mkdirprog $prefixes") ||
-	  test -d "$dstdir" || exit 1
-	obsolete_mkdir_used=true
-      fi
-    fi
-  fi
-
-  if test -n "$dir_arg"; then
-    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
-    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
-    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
-      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
-  else
-
-    # Make a couple of temp file names in the proper directory.
-    dsttmp=$dstdir/_inst.$$_
-    rmtmp=$dstdir/_rm.$$_
-
-    # Trap to clean up those temp files at exit.
-    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-
-    # Copy the file name to the temp name.
-    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
-
-    # and set any options; do chmod last to preserve setuid bits.
-    #
-    # If any of these fail, we abort the whole thing.  If we want to
-    # ignore errors from any of these, just make sure not to ignore
-    # errors from the above "$doit $cpprog $src $dsttmp" command.
-    #
-    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
-    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
-    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
-    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
-
-    # If -C, don't bother to copy if it wouldn't change the file.
-    if $copy_on_change &&
-       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
-       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
-
-       eval "$initialize_posix_glob" &&
-       $posix_glob set -f &&
-       set X $old && old=:$2:$4:$5:$6 &&
-       set X $new && new=:$2:$4:$5:$6 &&
-       $posix_glob set +f &&
-
-       test "$old" = "$new" &&
-       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
-    then
-      rm -f "$dsttmp"
-    else
-      # Rename the file to the real destination.
-      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
-
-      # The rename failed, perhaps because mv can't rename something else
-      # to itself, or perhaps because mv is so ancient that it does not
-      # support -f.
-      {
-	# Now remove or move aside any old file at destination location.
-	# We try this two ways since rm can't unlink itself on some
-	# systems and the destination file might be busy for other
-	# reasons.  In this case, the final cleanup might fail but the new
-	# file should still install successfully.
-	{
-	  test ! -f "$dst" ||
-	  $doit $rmcmd -f "$dst" 2>/dev/null ||
-	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
-	  } ||
-	  { echo "$0: cannot unlink or rename $dst" >&2
-	    (exit 1); exit 1
-	  }
-	} &&
-
-	# Now rename the file to the real destination.
-	$doit $mvcmd "$dsttmp" "$dst"
-      }
-    fi || exit 1
-
-    trap '' 0
-  fi
-done
 
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
+exit 0
diff --git a/local/FAQ2HTML b/local/FAQ2HTML
index d8b1721..746ea6e 100755
--- a/local/FAQ2HTML
+++ b/local/FAQ2HTML
@@ -17,7 +17,7 @@ while($current_line <= $#faqfile) {
     $_ = $faqfile[$current_line];
     $current_line++;
 
-    if (/Net-SNMP Version: (.*)/) {
+    if (/net-snmp Version: (.*)/) {
       $version = $1;
     }
 
diff --git a/local/Makefile.in b/local/Makefile.in
index df81db0..ea67246 100644
--- a/local/Makefile.in
+++ b/local/Makefile.in
@@ -16,11 +16,10 @@ OTHERUNINSTALL=localuninstall
 #
 SNMPCONFPATH=@SNMPCONFPATH@
 PERSISTENT_DIRECTORY=@PERSISTENT_DIRECTORY@
-PERLSCRIPTS=snmpcheck tkmib mib2c fixproc ipf-mod.pl snmpconf traptoemail snmp-bridge-mib net-snmp-cert
+PERLSCRIPTS=snmpcheck tkmib mib2c fixproc ipf-mod.pl snmpconf traptoemail
 SHELLSCRIPTS=mib2c-update
 SCRIPTSMADEFORPERL=snmpcheck.made tkmib.made mib2c.made fixproc.made \
-	ipf-mod.pl.made snmpconf.made traptoemail.made snmp-bridge-mib.made \
-	net-snmp-cert.made
+	ipf-mod.pl.made snmpconf.made traptoemail.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 \
@@ -29,16 +28,14 @@ DATASRCS=mib2c.conf mib2c.iterate.conf mib2c.iterate_access.conf \
 	mib2c.check_values.conf mib2c.check_values_local.conf \
 	mib2c.access_functions.conf mib2c.notify.conf \
 	mib2c.int_watch.conf mib2c.genhtml.conf \
-	mib2c.raw-table.conf mib2c.table_data.conf \
-	mib2c.container.conf mib2c.perl.conf
+	mib2c.table_data.conf mib2c.container.conf mib2c.perl.conf
 MIB2CINSTALLDIR=$(snmplibdir)/mib2c-data
 MIB2CDATASRC=mib2c-conf.d
 MIB2CFILES=default-mfd-top.m2c details-enums.m2i details-node.m2i \
 	details-table.m2i generic-ctx-copy.m2i generic-ctx-get.m2i \
 	generic-ctx-set.m2i generic-data-allocate.m2i generic-data-context.m2i \
 	generic-get-char.m2i generic-get-decl-bot.m2i generic-get-decl.m2i \
-	generic-get-long.m2i generic-get-oid.m2i generic-get-U64.m2i \
-	generic-header-bottom.m2i \
+	generic-get-long.m2i generic-get-oid.m2i generic-header-bottom.m2i \
 	generic-header-top.m2i generic-source-includes.m2i \
 	generic-table-constants.m2c generic-table-enums.m2c \
 	generic-table-indexes-from-oid.m2i generic-table-indexes-set.m2i \
@@ -108,13 +105,6 @@ mib2c.made: $(srcdir)/mib2c
 	  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 \
@@ -144,13 +134,6 @@ traptoemail.made: $(srcdir)/traptoemail
 	  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 7f6f29c..fde5939 100755
--- a/local/Version-Munge.pl
+++ b/local/Version-Munge.pl
@@ -33,6 +33,12 @@ if (!$opts{'R'} && !$opts{'M'} && !$opts{'C'} && !$opts{'D'}) {
 }
 
 my @exprs = (
+	     # c files with a equal sign and a specific variable
+	     { type => 'c',
+	       expr => 'VersionInfo(\s*=\s*[^"]*)"(.*)"',
+	       repl => 'VersionInfo$1"$VERSION"', 
+	       files => [qw(snmplib/snmp_version.c)]},
+
 	     # documentation files
 	     { type => 'docs',
 	       expr => 'Version: [\.0-9a-zA-Z]+',
@@ -41,6 +47,12 @@ my @exprs = (
 	       not_required => {'dist/net-snmp.spec' => 1}
 	     },
 
+	     # sed files
+	     { type => 'sed',
+	       expr => '^s\/VERSIONINFO\/[^\/]*',
+	       repl => 's\/VERSIONINFO\/$VERSION',
+	       files => [qw(sedscript.in)]},
+
 	     # Makefiles
 	     { type => 'Makefile',
 	       expr => 'VERSION = [\.0-9a-zA-Z]+',
@@ -49,6 +61,13 @@ my @exprs = (
 	       not_required => {'dist/Makefile' => 1}
 	     },
 
+	     # Doxygen config
+	     { type => 'doxygen',
+	       expr => 'PROJECT_NUMBER(\s+)=(\s+)\'(.*)\'',
+	       repl => 'PROJECT_NUMBER$1=$2\'$VERSION\'',
+	       files => [qw(doxygen.conf)]
+	     },
+
 	     # perl files
 	     { type => 'perl',
 	       expr => 'VERSION = \'(.*)\'',
@@ -71,11 +90,17 @@ my @exprs = (
 	     { type => 'configure',
 	       expr => 'AC_INIT\\(\\[Net-SNMP\\], \\[([^\\]]+)\\]',
 	       repl => 'AC_INIT([Net-SNMP], [$VERSION]',
-	       files => [qw(configure.ac)],
+	       files => [qw(configure.in)],
 	       exec => 'autoconf',
 	       exfiles => [qw(configure)],
 	     },
 
+	     # configure script files
+	     { type => 'doxygen',
+	       expr => 'PROJECT_NUMBER\s*= (.*)',
+	       repl => 'PROJECT_NUMBER         = $VERSION',
+	       files => [qw(doxygen.conf)],
+	     },
 	    );
 
 #
diff --git a/local/certgen-test.pl b/local/certgen-test.pl
deleted file mode 100644
index b335428..0000000
--- a/local/certgen-test.pl
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/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 at 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/gittools/shell-functions b/local/gittools/shell-functions
deleted file mode 100644
index 45e6507..0000000
--- a/local/gittools/shell-functions
+++ /dev/null
@@ -1,443 +0,0 @@
-# -*- shell-script -*-
-# These functions are useful functions when working with a bash shell
-# within a Net-SNMP git checkout.
-
-nsbuildroot=${nsbuildroot:=$HOME/ns-build-root}
-nsecho=${nsecho:=}
-nsbranches=${nsbranches:="V5-4-patches V5-5-patches V5-6-patches V5-7-patches master"}
-
-# set nsverbose to ':' if you don't want verbose output of what's going on
-nsverbose=${nsverbose:="echo ::: Net-SNMP: "}
-
-_ns_maybemkdir () {
-    dir=$1
-    if [ ! -d $dir ] ; then
-	$nsverbose making directory $dir
-	mkdir -p $dir
-    fi
-}
-
-_ns_switchtobuilddir () {
-    dir=$1
-    _ns_maybemkdir $dir
-    $nsverbose cd $dir
-    cd $dir
-}
-
-_ns_getbuilddir() {
-    nssuffix=${1:-$nssuffix}
-    nsbranch=`git branch | egrep '^\*' | sed 's/^..//'`
-    NSBUILDDIR="$nsbuildroot/$nsbranch"
-    NSSRCDIR="$PWD"
-
-    # add on the suffix if created
-    if [ "$nssuffix" != "" ]; then
-	NSBUILDDIR="$nsbuildroot/$nsbranch-$nssuffix"
-    fi
-}
-
-_ns_setbuilddir() {
-    _ns_getbuilddir "$1"
-    _ns_switchtobuilddir $NSBUILDDIR
-}
-
-_ns_cleanup() {
-    $nsverbose cd $NSSRCDIR
-    cd $NSSRCDIR
-}
-
-_ns_checkclean() {
-    if [ `git status --porcelain --untracked-files=no | wc -l` -gt 0 ] ; then
-	echo "Your directory has outstanding changes!"
-	echo "  Please either commit the changes, discard them or stash them"
-	NSCLEAN=0
-    else
-	NSCLEAN=1
-    fi
-}
-
-#
-# nsmake [-s suffix]
-#   runs 'make' in $nsbuildroot/branch[-suffix]
-nsmake () {
-    if [ "$1" = "-s" ]; then
-	shift
-        _ns_setbuilddir "$1"
-	shift
-    else
-        _ns_setbuilddir
-    fi
-
-    $nsverbose make "$@"
-    $nsecho make "$@"
-
-    _ns_cleanup
-}
-
-nsmakeall () {
-    _ns_checkclean
-    if [ $NSCLEAN != 1 ]; then
-	return
-    fi
-
-    for branch in $nsbranches ; do
-	git checkout $branch
-	nsmake "$@"
-    done
-}
-
-#
-# nsconfigure [-s suffix] [configure arguments]
-#   runs 'configure' in $nsbuildroot/branch[-suffix] with passed arguments
-nsconfigure () {
-    if [ "$1" = "-s" ]; then
-	shift
-        _ns_setbuilddir "$1"
-	shift
-    else
-        _ns_setbuilddir
-    fi
-    
-    $nsverbose running $NSSRCDIR/configure "$@"
-    $nsecho $NSSRCDIR/configure "$@"
-    
-    _ns_cleanup
-}
-
-nspatchtry() {
-    _ns_checkclean
-    if [ $NSCLEAN != 1 ]; then
-	return
-    fi
-
-    # remember these branches
-    nsgoodbranches=""
-    nsbadbranches=""
-
-    # remember the patch args for later use
-    nspatchargs="$@"
-
-    # attempt to add any missing patch arguments
-
-    echo "x $nspatchargs x" | grep -- -p > /dev/null
-    if [ $? != "0" ] ; then
-	# they didn't specify a -p option.  Try to guess at one...
-	nspatchfile=`echo $nspatchargs | sed 's/.* \([^ ]+\)$/\1/'`
-	# attempt to count the slashes before any agent/snmplib/apps/etc
-	patchcount=$((`grep diff $nspatchfile | head -1 | awk '{print $NF}' | sed 's/\(agent\|snmplib\|apps\|local\|perl\|python\).*//;s#[^/]##g' | wc -c` - 1))
-	nspatchargs="-p $patchcount $nspatchargs"
-    fi
-
-    echo "x $nspatchargs x" | grep -- "-i " > /dev/null
-    if [ $? != "0" ] ; then
-	# they didn't specify a -i option.  Try to add one...
-	nspatchargs=`echo $nspatchargs | sed 's/\(.*\) \(..*\)$/\1 -i \2/'`
-    fi
-
-    echo "Using patch args: $nspatchargs"
-
-    for branch in $nsbranches ; do
-	$nsverbose checking out and applying patch in $branch
-	$nsecho git checkout $branch
-
-	$nsverbose Appling patch
-	$nsecho patch -N --batch $nspatchargs
-	if [ $? = 0 ] ; then
-	    $nsverbose Patch succeeded on $branch
-	    nsgoodbranches="$nsgoodbranches $branch"
-	else
-	    $nsverbose Patch failed on $branch
-	    nsbadbranches="$nsbadbranches $branch"
-	fi
-
-	$nsverbose cleaning source tree
-	git checkout .
-    done
-
-    echo ""
-    echo "Patch application results:"
-    echo "  Success: $nsgoodbranches"
-    echo "     Fail: $nsbadbranches"
-}
-
-_nspatchapplybase() {
-    _ns_checkclean
-    if [ $NSCLEAN != 1 ]; then
-	return
-    fi
-
-    patchbranch=`echo $nsgoodbranches | sed 's/ .*//'`
-
-    $nsverbose Checking out $patchbranch
-    $nsecho git checkout $patchbranch
-
-    $nsverbose applying the patch "$nspatchargs"
-    $nsecho patch $nspatchargs
-    $nsecho git diff | cat
-}
-
-nspatchapply() {
-    _nspatchapplybase
-    
-    echo ""
-    echo -n "commit the results to $patchbranch? [y/n]"
-    read ans
-
-    if [ $ans = 'y' -o $ans = 'Y' ] ; then
-	$nsecho git commit -a "$@"
-    fi
-}
-
-nssfpatchapply() {
-    _nspatchapplybase
-    nssfpatchcommit "$@"
-}
-
-nssfpatchcommit() {
-    patch="$1"
-    area="$2"
-
-    if [ "$patch" = "" ] ; then
-	echo "Enter patch number: "
-	echo -n "> "
-	read patch
-    fi
-    if [ "$patch" = "" ] ; then
-	echo "Error: A patch number is required"
-	return
-    fi
-
-    if [ "$area" = "" ] ; then
-	echo "Which area does this patch affect?  (agent, libnetsnmp, apps, ...)?"
-	echo -n "> "
-	read area
-    fi
-    if [ "$area" = "" ] ; then
-	area="unknown"
-    fi
-
-    #
-    # get the patch's html
-    #
-    tmpfile="/tmp/nspatch.$patch"
-    if [ ! -f "$tmpfile" ]; then
-	wget -O $tmpfile "https://sourceforge.net/tracker/?func=detail&aid="${patch}"&group_id=12694&atid=312694"
-    fi
-
-    echo "---------------------------------"
-
-    username=`grep /users/ $tmpfile | head -1 | sed 's/.*.users.//;s/.".*//;'`
-    echo "username:   $username"
-
-    fullname=`grep /users/ $tmpfile | head -1 | sed 's/.*title=.//;s/".*//;'`
-    echo "fullname:   $fullname"
-
-    title=`grep "Detail: $patch" $tmpfile | head -1 | sed "s/.*$patch - //;s/<.*//" | sed 's/"//g;' | sed "s/'//g;"`
-    echo commit msg: $title
-
-    commitmsg="CHANGES: $area: PATCH $patch: from $username: $title"
-
-    patchbranch=`echo $nsgoodbranches | sed 's/ .*//'`
-    echo "Branch:     $patchbranch"
-    echo "Command: "
-    echo "  git commit -a -s \\"
-    echo "  --author='$fullname <$username at users.sourceforge.net>'\\"
-    echo "  -m '$commitmsg'"
-    echo ""
-    echo -n "commit the results to $patchbranch? [y/n]"
-    read ans
-
-    if [ $ans = 'y' -o $ans = 'Y' ] ; then
-	$nsecho git commit -a -s --author="$fullname <$username at users.sourceforge.net>" -m "$commitmsg"
-    else
-	echo "if you don't wish to keep the changes, use 'git reset --hard'"
-    fi
-}
-    
-
-nsrollup() {
-    fetch=1;
-
-    if [ "$1" = "--no-fetch" ] ; then
-	fetch=0
-        shift
-    fi
-
-    if [ "$1" = "--merge" ] ; then
-	mergeop="merge"
-    elif [ "$1" = "--rebase" ] ; then
-	mergeop="rebase"
-    else
-	mergeop="merge"
-    fi
-
-    _ns_checkclean
-    if [ $NSCLEAN != 1 ]; then
-	return
-    fi
-
-    if [ $fetch == 1 ]; then
-      $nsverbose Pulling all upstream branches
-      $nsecho git fetch --all
-    fi
-    
-    nslastbranch=""
-
-    nsbranchesdone=""
-    nsbranchesnotdone=""
-
-    for branch in $nsbranches ; do
-	if [ "$nslastbranch" != "" ] ; then
-	    $nsverbose checking out $branch
-	    $nsecho git checkout $branch
-
-	    if [ -f dist/release ] ; then
-		if [ "`egrep ^$branch dist/release`" = "$branch rc" ] ; then
-		    $nsverbose Skipping: branch is in rc phase of release
-		    nsbranchesnotdone="$nsbranchesnotdone $branch"
-
-		    # comment this out if you want nsrollup to skip the
-		    # branch and roll the changes in the lower branch up
-		    # to the super-parent when the parent is in release status
-		    nslastbranch=$branch
-
-		    continue
-		fi
-	    fi
-
-	    $nsverbose rebasing our local changes on $branch
-	    MERGE_AUTOEDIT=no git $mergeop origin/$branch
-
-	    $nsverbose merging $nslastbranch into $branch
-	    MERGE_AUTOEDIT=no $nsecho git merge --log $nslastbranch
-	    if [ $? != 0 ] ; then
-		echo ""
-		echo "---------------------------------------------"
-		echo "Merge of $nslastbranch into $branch failed!!!"
-		echo ""
-		echo "Hints for fixing this:"
-		echo "  You're on: $branch"
-		echo "  Steps:"
-		echo "    1) fix all files marked as problematic"
-		echo "    2) run 'git add' on each file"
-		if [ $mergeop = "rebase" ] ; then
-		    echo "    3) run 'git rebase --continue' to commit the changes"
-		else
-		    echo "    3) run 'git commit' to commit the changes"
-		fi
-		echo "    4) once done, re-run nsrollup"
-		echo "  Aborting:"
-		echo "    If instead you want to give up, run"
-		echo "    1) git $mergeop --abort"
-		echo ""
-		echo "Updated the following branches:"
-		echo "  $nsbranchesdone"
-		if [ "$nsbranchesnotdone" != "" ] ; then
-		    echo "Did NOT update the following branches:"
-		    echo "  $nsbranchesnotdone"
-		fi
-		echo "Failed to update this branch:"
-		echo "   $branch"
-		return
-	    fi
-
-	    _ns_checkclean
-	    if [ $NSCLEAN != 1 ] ; then
-		# we really shouldn't git here.  merge will either autocommit
-		# or it will fail
-		$nsverbose committing merge results
-		$nsecho git commit -m "nsrollup: merging $nslastbranch into $branch" -a
-	    fi
-
-	    nsbranchesdone="$nsbranchesdone $branch"
-	fi
-
-	nslastbranch=$branch
-    done
-
-    echo ""
-    echo "-------------------------------"
-    echo "Updated the following branches:"
-    echo "  $nsbranchesdone"
-    if [ "$nsbranchesnotdone" != "" ] ; then
-	echo "Did NOT update the following branches:"
-	echo "  $nsbranchesnotdone"
-    fi
-
-    echo ""
-    echo "Now would be a good time to run 'nssync'"
-}
-
-nspull() {
-    nscurrentbranch=`git branch | egrep '^\*' | sed 's/^..//'`
-    _ns_checkclean
-    if [ $NSCLEAN != 1 ]; then
-	return
-    fi
-
-    if [ "$1" = "--merge" ] ; then
-	mergeop="merge"
-    elif [ "$1" = "--rebase" ] ; then
-	mergeop="rebase"
-    else
-	mergeop="merge"
-    fi
-
-    git fetch --all
-    for branch in $nsbranches ; do
-	git checkout $branch
-	MERGE_AUTOEDIT=no git $mergeop origin/$branch
-	if [ $? != 0 ] ; then
-	    echo "git $mergeop failed; please fix first"
-	    return
-	fi
-    done
-    git checkout $nscurrentbranch
-}
-
-nspush() {
-    _ns_checkclean
-    if [ $NSCLEAN != 1 ]; then
-	return
-    fi
-
-    git push origin $nsbranches
-    if [ $? != 0 ] ; then
-	echo "git push failed; help?"
-	return
-    fi
-}
-
-#
-# pull/pushes all the known active branches
-#
-nssync() {
-    nspull "$@"
-    nspush "$@"
-}
-
-#
-# runs the right version of autoconf for a given branch
-#
-#   configure autoconf versions using --prefix=/usr/local/autoconf-VERSION
-#
-nsautoconf() {
-    if [ "$1" == "autoheader" ] ; then
-	tool="autoheader"
-    else
-	tool="autoconf"
-    fi
-
-    COR=`cat dist/autoconf-version`
-    PATH=/usr/local/autoconf-${COR}/bin:$PATH autoconf --version > /tmp/autoconf.version
-    VER=`head -1 /tmp/autoconf.version | awk '{print $NF}'`
-    if [ "$VER" != "$COR" ] ; then
-	echo "failed to find the correct version of autoconf"
-	echo "please install autoconf version $COR in /usr/local/autoconf-$COR"
-	echo "  (configure autoconf-$COR using -prefix=/usr/local/autoconf-$COR"
-	return
-    fi
-
-    echo "RUNNING AUTOCONF $COR"
-    PATH=/usr/local/autoconf-${autover}/bin:$PATH $tool
-}
diff --git a/local/html-add-header-footer.pl b/local/html-add-header-footer.pl
index c3cb902..96e46a5 100755
--- a/local/html-add-header-footer.pl
+++ b/local/html-add-header-footer.pl
@@ -21,7 +21,7 @@ use File::Copy;
 use File::stat;
 use Getopt::Long;
 
-my $tidy_options = '-f /dev/null -m -i -asxhtml -wrap 130 -quiet --quote-nbsp n';
+my $tidy_options = '-f /dev/null -m -i -asxhtml -wrap 130 -quiet';
 
 my $pattern = '';
 my $section = '';
diff --git a/local/html-textfile-fix.pl b/local/html-textfile-fix.pl
index b72075b..f941197 100755
--- a/local/html-textfile-fix.pl
+++ b/local/html-textfile-fix.pl
@@ -8,7 +8,6 @@ use File::Copy;
 # Date:           December 29th, 2005
 # 
 @files = qw"
-CHANGES
 ERRATA
 INSTALL
 NEWS
@@ -18,7 +17,6 @@ README.agent-mibs
 README.agentx
 README.aix
 README.hpux11
-README.irix
 README.krb5
 README.mib2c
 README.mibs
diff --git a/local/mib2c b/local/mib2c
index 2016f06..4ed7587 100755
--- a/local/mib2c
+++ b/local/mib2c
@@ -2,7 +2,7 @@
 #!/usr/bin/perl -w
 
 #
-# $Id$
+# $Id: mib2c 17684 2009-07-10 07:46:43Z jsafranek $
 #
 # Description: 
 #
@@ -51,7 +51,6 @@ $debug=0;
 $quiet=0;
 $strict_unk_token = 0;
 $noindent = 0;
-$nosed = 0;
 $currentline = 0;
 $currentlevel = -1;
 %assignments;
@@ -74,7 +73,6 @@ sub usage {
     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;
 }	
@@ -101,8 +99,6 @@ while($#ARGV >= 0) {
         $quiet = 1;
       } elsif (/^-i/) {
         $noindent = 1;
-      } elsif (/^-s/) {
-        $nosed = 1;
       } elsif (/^-h/) {
         usage && exit(1);
       } elsif (/^-f/) {
@@ -235,15 +231,6 @@ $fh = open_conf($configfile);
 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 "-");
@@ -303,11 +290,9 @@ sub oidlength {
 #   $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', 'lastchange', 'storagetype' and 'rowstatus' can
-#     also be used with table variables to indicate whether it contains
-#     writable, creatable, LastChange, StorageType or RowStatus column objects
+#     'settable', 'creatable' and 'rowstatus' can also be used with table variables
+#     to indicate whether it contains writable, creatable or RowStatus column objects
 #
 #   $var.hasdefval     -- returns 1 if var has a DEFVAL clause
 #   $var.defval        -- node's DEFVAL
@@ -326,7 +311,7 @@ sub process_vars {
 
     # mib substitutions ($var.type -> $mibnode->{'type'})
    if ( $it =~ /\$(\w+)\.(\w+)/ ) {
-    if ($SNMP::MIB{$vars{$1}} && defined($tables{$SNMP::MIB{$vars{$1}}{'label'}})) {
+    if ($SNMP::MIB{$vars{$1}} && $SNMP::MIB{$vars{$1}}{'label'} =~ /Table$/) {
       $it =~ s/\$(\w+)\.(settable)/(table_is_writable($SNMP::MIB{$vars{$1}}{label}))/eg;
       $it =~ s/\$(\w+)\.(creatable)/(table_has_create($SNMP::MIB{$vars{$1}}{label}))/eg;
       $it =~ s/\$(\w+)\.(rowstatus)/(table_has_rowstatus($SNMP::MIB{$vars{$1}}{label}))/eg;
@@ -362,7 +347,6 @@ sub process_vars {
     $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";
     }
@@ -898,8 +882,7 @@ sub process {
 	      foreach $varbind (@{$notifyvars{$currentnotify}}) {
 		#		print "looping on $var for $varbind\n";
 		  $return = do_a_loop($stash, \$vars{$var}, $varbind,
-				          \$currentvarbind, $varbind,
-				              \$currentvar, $varbind);
+				      \$currentvarbind, $varbind);
 	      }
 	    }
             m2c_die("foreach did not end with \@end@") if($return ne "end");
@@ -953,7 +936,6 @@ sub process {
             m2c_die("foreach did not end with \@end@") if($return ne "end");
 	  } elsif (/\@\s*foreach\s+\$([^\@]+)\s+\$([^\@]+)\s+range\s+([^\@]+)\@/) {
 	    my ($svar, $evar, $node) = ($1, $2, $3);
-	    $svar =~ s/,$//;
 	    my $stash = do_tell();
 	    my $range;
 	    $node = $currentcolumn if (!$node);
@@ -991,7 +973,6 @@ sub process {
           my ($type,$arg,$ok) = ($1,$2,0);
 	  my $stash = do_tell();
           my $loop = 1;
-          my $everlooped = 0;
 
           while ($loop) {
             # check condition based on type
@@ -1009,11 +990,7 @@ sub process {
             # act on condition
             if ($ok) {
 	      $return = do_a_loop($stash, \$vars{$type}, $ok, \$vars{$args});
-	      $everlooped = 1;
             } else {
-	      if (!$everlooped) {
-                $return = skippart();
-              }
 	      $loop = 0;
             }
           }
@@ -1066,7 +1043,7 @@ sub mib2c_output {
 
 sub setup_data {
     my $mib = shift;
-    if ($mib->{label} =~ /Table$/ && $#{$mib->{children}} != -1) {
+    if ($mib->{label} =~ /Table$/) {
 	my $tablename = $mib->{label};
 	my $entry = $mib->{children};
 	my $columns = $entry->[0]{children};
diff --git a/local/mib2c-conf.d/details-enums.m2i b/local/mib2c-conf.d/details-enums.m2i
index 3b0f152..ee6140c 100644
--- a/local/mib2c-conf.d/details-enums.m2i
+++ b/local/mib2c-conf.d/details-enums.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for enums. Do not use directly.
 ##
-## $Id$
+## $Id: details-enums.m2i 12011 2005-03-18 23:01:44Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12011 $ */
 @end@
 ########################################################################
 @ifconf $node.syntax.m2i@
@@ -76,5 +76,5 @@ $m2c_const_dcl INTERNAL_$context.uc_$m2c_iname $m2c_const_del (0x01 << $v) $m2c_
 @end@ # ! syntax include
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12011 $ */
 @end@
diff --git a/local/mib2c-conf.d/details-node.m2i b/local/mib2c-conf.d/details-node.m2i
index 0f3e2a2..139336d 100644
--- a/local/mib2c-conf.d/details-node.m2i
+++ b/local/mib2c-conf.d/details-node.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## Generic include for columns. Do not use directly.
 ##
-## $Id$
+## $Id: details-node.m2i 13790 2005-12-02 18:12:52Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 13790 $ */
 @end@
 ########################################################################
 /*---------------------------------------------------------------------
@@ -98,5 +98,5 @@ $node.description
  */
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 13790 $ */
 @end@
diff --git a/local/mib2c-conf.d/details-table.m2i b/local/mib2c-conf.d/details-table.m2i
index 06df7ef..cb73702 100644
--- a/local/mib2c-conf.d/details-table.m2i
+++ b/local/mib2c-conf.d/details-table.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for tables. Do not use directly.
 ##
-## $Id$
+## $Id: details-table.m2i 12023 2005-03-24 00:42:15Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12023 $ */
 @end@
 ########################################################################
 /**********************************************************************
@@ -21,5 +21,5 @@
 */
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12023 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-ctx-copy.m2i b/local/mib2c-conf.d/generic-ctx-copy.m2i
index c959637..a447c46 100644
--- a/local/mib2c-conf.d/generic-ctx-copy.m2i
+++ b/local/mib2c-conf.d/generic-ctx-copy.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-ctx-copy.m2i 11300 2004-10-08 23:39:17Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11300 $ */
 @end@
 ########################################################################
 ##
@@ -29,5 +29,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11300 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-ctx-get.m2i b/local/mib2c-conf.d/generic-ctx-get.m2i
index ef795c3..5828f26 100644
--- a/local/mib2c-conf.d/generic-ctx-get.m2i
+++ b/local/mib2c-conf.d/generic-ctx-get.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-ctx-get.m2i 12865 2005-09-27 17:05:53Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12865 $ */
 @end@
 ########################################################################
 ##/*
@@ -72,7 +72,7 @@
         ($m2c_ctx_lhs <
          ($m2c_ctx_rhs$m2c_ctx_lm))) {
 @   if $m2c_node_realloc == 0@
-        snmp_log(LOG_ERR,"not enough space for value ($m2c_ctx_rh)\n");
+        snmp_log(LOG_ERR,"not enough space for value\n");
         return MFD_ERROR;
 @   else@
         /*
@@ -84,7 +84,7 @@
         $m2c_ctx_lh = malloc($m2c_ctx_rhs$m2c_ctx_cm);
 @      end@
         if(NULL == $m2c_ctx_lh) {
-            snmp_log(LOG_ERR,"could not allocate memory ($m2c_ctx_rh)\n");
+            snmp_log(LOG_ERR,"could not allocate memory\n");
             return MFD_ERROR;
         }
 @   end@
@@ -102,5 +102,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12865 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-ctx-set.m2i b/local/mib2c-conf.d/generic-ctx-set.m2i
index 86c99a0..554fa14 100644
--- a/local/mib2c-conf.d/generic-ctx-set.m2i
+++ b/local/mib2c-conf.d/generic-ctx-set.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-ctx-set.m2i 12586 2005-07-25 23:25:54Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12586 $ */
 @end@
 ########################################################################
 ##
@@ -25,5 +25,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12586 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-data-allocate.m2i b/local/mib2c-conf.d/generic-data-allocate.m2i
index 556defe..b852933 100644
--- a/local/mib2c-conf.d/generic-data-allocate.m2i
+++ b/local/mib2c-conf.d/generic-data-allocate.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-data-allocate.m2i 11948 2005-02-25 22:36:30Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11948 $ */
 @end@
 ########################################################################
 ##
@@ -58,5 +58,5 @@ ${context}_release_data(${context}_data *data)
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11948 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-data-context.m2i b/local/mib2c-conf.d/generic-data-context.m2i
index 4152e91..de2e74a 100644
--- a/local/mib2c-conf.d/generic-data-context.m2i
+++ b/local/mib2c-conf.d/generic-data-context.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-data-context.m2i 11300 2004-10-08 23:39:17Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11300 $ */
 @end@
 ########################################################################
 ##
@@ -47,5 +47,5 @@ typedef $m2c_data_context ${context}_data;
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11300 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-get-U64.m2i b/local/mib2c-conf.d/generic-get-U64.m2i
deleted file mode 100644
index 791c79e..0000000
--- a/local/mib2c-conf.d/generic-get-U64.m2i
+++ /dev/null
@@ -1,14 +0,0 @@
-#############################################################  -*- c -*-
-## generic include for XXX. Do not use directly.
-##
-## $Id$
-########################################################################
- at if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
- at end@
-########################################################################
-##
-########################################################################
- at if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
- at end@
diff --git a/local/mib2c-conf.d/generic-get-char.m2i b/local/mib2c-conf.d/generic-get-char.m2i
index e63e686..0893e97 100644
--- a/local/mib2c-conf.d/generic-get-char.m2i
+++ b/local/mib2c-conf.d/generic-get-char.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-get-char.m2i 12011 2005-03-18 23:01:44Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12011 $ */
 @end@
 ########################################################################
 ##
@@ -45,5 +45,5 @@ $example_end
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12011 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-get-decl-bot.m2i b/local/mib2c-conf.d/generic-get-decl-bot.m2i
index 32b4e68..4dbda2b 100644
--- a/local/mib2c-conf.d/generic-get-decl-bot.m2i
+++ b/local/mib2c-conf.d/generic-get-decl-bot.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-get-decl-bot.m2i 9366 2004-02-02 15:56:14Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 9366 $ */
 @end@
 ########################################################################
 ##
@@ -18,5 +18,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 9366 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-get-decl.m2i b/local/mib2c-conf.d/generic-get-decl.m2i
index 0568e1c..b95c369 100644
--- a/local/mib2c-conf.d/generic-get-decl.m2i
+++ b/local/mib2c-conf.d/generic-get-decl.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-get-decl.m2i 9366 2004-02-02 15:56:14Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 9366 $ */
 @end@
 ########################################################################
 ##
@@ -39,5 +39,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 9366 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-get-long.m2i b/local/mib2c-conf.d/generic-get-long.m2i
index 791c79e..0aed597 100644
--- a/local/mib2c-conf.d/generic-get-long.m2i
+++ b/local/mib2c-conf.d/generic-get-long.m2i
@@ -1,14 +1,14 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-get-long.m2i 8830 2003-09-30 13:34:57Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 8830 $ */
 @end@
 ########################################################################
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 8830 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-get-oid.m2i b/local/mib2c-conf.d/generic-get-oid.m2i
index 56dd485..44fdd3a 100644
--- a/local/mib2c-conf.d/generic-get-oid.m2i
+++ b/local/mib2c-conf.d/generic-get-oid.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-get-oid.m2i 10598 2004-07-03 17:10:41Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 10598 $ */
 @end@
 ########################################################################
 ##
@@ -14,5 +14,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 10598 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-header-bottom.m2i b/local/mib2c-conf.d/generic-header-bottom.m2i
index e00e174..744a086 100644
--- a/local/mib2c-conf.d/generic-header-bottom.m2i
+++ b/local/mib2c-conf.d/generic-header-bottom.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-header-bottom.m2i 11068 2004-09-14 02:29:16Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11068 $ */
 @end@
 ########################################################################
 ##
@@ -17,5 +17,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11068 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-header-top.m2i b/local/mib2c-conf.d/generic-header-top.m2i
index a4d3bd8..1dea958 100644
--- a/local/mib2c-conf.d/generic-header-top.m2i
+++ b/local/mib2c-conf.d/generic-header-top.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-header-top.m2i 8830 2003-09-30 13:34:57Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 8830 $ */
 @end@
 ########################################################################
 ##
@@ -18,5 +18,5 @@ extern "C" {
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 8830 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-source-includes.m2i b/local/mib2c-conf.d/generic-source-includes.m2i
index 9341cf9..8b737c9 100644
--- a/local/mib2c-conf.d/generic-source-includes.m2i
+++ b/local/mib2c-conf.d/generic-source-includes.m2i
@@ -1,16 +1,15 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-source-includes.m2i 8830 2003-09-30 13:34:57Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 8830 $ */
 @end@
 ########################################################################
 ##
 /* standard Net-SNMP includes */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -20,5 +19,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 8830 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-table-constants.m2c b/local/mib2c-conf.d/generic-table-constants.m2c
index 36e23d3..8133b5c 100644
--- a/local/mib2c-conf.d/generic-table-constants.m2c
+++ b/local/mib2c-conf.d/generic-table-constants.m2c
@@ -1,7 +1,7 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-table-constants.m2c 12526 2005-07-15 22:41:16Z rstory $
 ########################################################################
 @if $m2c_create_fewer_files != 1@
 @   foreach $table table@
@@ -17,13 +17,13 @@
 @   open ${name}.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: generic-table-constants.m2c 12526 2005-07-15 22:41:16Z rstory $
  *
  * $$hack:$
  */
 ########################################################################
 @   if $m2c_mark_boundary == 1@
-/** START header generated by $RCSfile$ $Revision$ */
+/** START header generated by $RCSfile$ $Revision: 12526 $ */
 @   end@
 ########################################################################
 @   include generic-header-top.m2i@
@@ -39,6 +39,6 @@
 @   eval $name = "$m2c_save"@
 ########################################################################
 @   if $m2c_mark_boundary == 1@
-/** END header generated by $RCSfile$ $Revision$ */
+/** END header generated by $RCSfile$ $Revision: 12526 $ */
 @   end@
 @end@ // m2c_create_fewer_files
diff --git a/local/mib2c-conf.d/generic-table-enums.m2c b/local/mib2c-conf.d/generic-table-enums.m2c
index 92b2132..a31643a 100644
--- a/local/mib2c-conf.d/generic-table-enums.m2c
+++ b/local/mib2c-conf.d/generic-table-enums.m2c
@@ -1,7 +1,7 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-table-enums.m2c 12526 2005-07-15 22:41:16Z rstory $
 ########################################################################
 @if $m2c_create_fewer_files != 1@
 @eval $hack = "Id"@
@@ -10,7 +10,7 @@
 @open ${name}.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: generic-table-enums.m2c 12526 2005-07-15 22:41:16Z rstory $
  *
  * $$hack:$
  */
@@ -19,7 +19,7 @@
 @end@ // m2c_create_fewer_files
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START header generated by $RCSfile$ $Revision$ */
+/** START header generated by $RCSfile$ $Revision: 12526 $ */
 @end@
 ##
  /*
@@ -59,5 +59,5 @@
 @end@
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END header generated by $RCSfile$ $Revision$ */
+/** END header generated by $RCSfile$ $Revision: 12526 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-table-indexes-from-oid.m2i b/local/mib2c-conf.d/generic-table-indexes-from-oid.m2i
index 758bda2..7ec0b5d 100644
--- a/local/mib2c-conf.d/generic-table-indexes-from-oid.m2i
+++ b/local/mib2c-conf.d/generic-table-indexes-from-oid.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-table-indexes-from-oid.m2i 11300 2004-10-08 23:39:17Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11300 $ */
 @end@
 ########################################################################
 ##
@@ -66,5 +66,5 @@ ${context}_index_from_oid(netsnmp_index *oid_idx,
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11300 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-table-indexes-set.m2i b/local/mib2c-conf.d/generic-table-indexes-set.m2i
index 34f9c7d..c48f73d 100644
--- a/local/mib2c-conf.d/generic-table-indexes-set.m2i
+++ b/local/mib2c-conf.d/generic-table-indexes-set.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-table-indexes-set.m2i 14170 2006-01-26 17:02:48Z dts12 $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 14170 $ */
 @end@
 ########################################################################
 ##
@@ -119,5 +119,5 @@ ${context}_indexes_set(${context}_rowreq_ctx *rowreq_ctx$gtis_tmp)
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 14170 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-table-indexes-to-oid.m2i b/local/mib2c-conf.d/generic-table-indexes-to-oid.m2i
index c17de4c..78a47eb 100644
--- a/local/mib2c-conf.d/generic-table-indexes-to-oid.m2i
+++ b/local/mib2c-conf.d/generic-table-indexes-to-oid.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-table-indexes-to-oid.m2i 12019 2005-03-22 22:27:57Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12019 $ */
 @end@
 ########################################################################
 ##
@@ -24,10 +24,11 @@ ${context}_index_to_oid(netsnmp_index *oid_idx,
 @        include m2c_setup_node.m2i@
         /* $m2c_node_summary */
 @        if $m2c_node_needlength == 1@
-    snmp_set_var_value(&var_$node, &mib_idx->$node,
+    snmp_set_var_value(&var_$node, (u_char*)&mib_idx->$node,
                        mib_idx->${node}_len * sizeof(mib_idx->${node}[0]));
 @        else@
-    snmp_set_var_value(&var_$node, &mib_idx->$node, sizeof(mib_idx->$node));
+    snmp_set_var_value(&var_$node, (u_char*)&mib_idx->$node,
+                       sizeof(mib_idx->$node));
 @        end@
 
 @    end@ # for each column
@@ -48,5 +49,5 @@ ${context}_index_to_oid(netsnmp_index *oid_idx,
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12019 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-table-indexes-varbind-setup.m2i b/local/mib2c-conf.d/generic-table-indexes-varbind-setup.m2i
index 8c0d48d..844bbde 100644
--- a/local/mib2c-conf.d/generic-table-indexes-varbind-setup.m2i
+++ b/local/mib2c-conf.d/generic-table-indexes-varbind-setup.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-table-indexes-varbind-setup.m2i 10286 2004-05-18 17:35:47Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 10286 $ */
 @end@
 ########################################################################
 ##
@@ -47,5 +47,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 10286 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-table-indexes.m2i b/local/mib2c-conf.d/generic-table-indexes.m2i
index c226611..37522ea 100644
--- a/local/mib2c-conf.d/generic-table-indexes.m2i
+++ b/local/mib2c-conf.d/generic-table-indexes.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-table-indexes.m2i 11360 2004-10-15 00:49:24Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11360 $ */
 @end@
 ########################################################################
 ##
@@ -63,5 +63,5 @@ typedef struct ${context}_mib_index_s {
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11360 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-table-oids.m2c b/local/mib2c-conf.d/generic-table-oids.m2c
index 6f8ab2a..48e754c 100644
--- a/local/mib2c-conf.d/generic-table-oids.m2c
+++ b/local/mib2c-conf.d/generic-table-oids.m2c
@@ -1,7 +1,7 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-table-oids.m2c 17548 2009-04-23 16:35:18Z hardaker $
 ########################################################################
 @if $m2c_create_fewer_files != 1@
 @eval $hack = "Id"@
@@ -10,7 +10,7 @@
 @open ${name}.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: generic-table-oids.m2c 17548 2009-04-23 16:35:18Z hardaker $
  *
  * $$hack:$
  */
@@ -19,7 +19,7 @@
 @end@ // m2c_create_fewer_files
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START header generated by $RCSfile$ $Revision$ */
+/** START header generated by $RCSfile$ $Revision: 17548 $ */
 @end@
 ##
 
@@ -109,5 +109,5 @@
 @end@
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END header generated by $RCSfile$ $Revision$ */
+/** END header generated by $RCSfile$ $Revision: 17548 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-value-map-func.m2i b/local/mib2c-conf.d/generic-value-map-func.m2i
index b0df63b..49ed332 100644
--- a/local/mib2c-conf.d/generic-value-map-func.m2i
+++ b/local/mib2c-conf.d/generic-value-map-func.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-value-map-func.m2i 12095 2005-04-18 22:14:01Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12095 $ */
 @end@
 ########################################################################
 ## }
@@ -100,5 +100,5 @@ ${node}_map($m2c_node_map_param)
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12095 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-value-map-reverse.m2i b/local/mib2c-conf.d/generic-value-map-reverse.m2i
index 4b6eb38..16baaa0 100644
--- a/local/mib2c-conf.d/generic-value-map-reverse.m2i
+++ b/local/mib2c-conf.d/generic-value-map-reverse.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-value-map-reverse.m2i 12587 2005-07-25 23:26:53Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12587 $ */
 @end@
 ########################################################################
 ##
@@ -45,5 +45,5 @@ $example_end
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12587 $ */
 @end@
diff --git a/local/mib2c-conf.d/generic-value-map.m2i b/local/mib2c-conf.d/generic-value-map.m2i
index 0f7bd2e..1fbe42d 100644
--- a/local/mib2c-conf.d/generic-value-map.m2i
+++ b/local/mib2c-conf.d/generic-value-map.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: generic-value-map.m2i 11593 2004-12-10 14:46:09Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11593 $ */
 @end@
 ########################################################################
 ## }
@@ -42,5 +42,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11593 $ */
 @end@
diff --git a/local/mib2c-conf.d/m2c_setup_enum.m2i b/local/mib2c-conf.d/m2c_setup_enum.m2i
index b5bb7ae..faaef73 100644
--- a/local/mib2c-conf.d/m2c_setup_enum.m2i
+++ b/local/mib2c-conf.d/m2c_setup_enum.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: m2c_setup_enum.m2i 11987 2005-03-04 19:58:28Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11987 $ */
 @end@
 ########################################################################
 ##
@@ -20,5 +20,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11987 $ */
 @end@
diff --git a/local/mib2c-conf.d/m2c_setup_node.m2i b/local/mib2c-conf.d/m2c_setup_node.m2i
index 67fb89d..719193b 100644
--- a/local/mib2c-conf.d/m2c_setup_node.m2i
+++ b/local/mib2c-conf.d/m2c_setup_node.m2i
@@ -1,6 +1,6 @@
 #############################################################  -*- c -*-
 ## Defaults
-## $Id$
+## $Id: m2c_setup_node.m2i 12856 2005-09-27 15:58:00Z rstory $
 ########################################################################
 @if "$m2c_node_name" ne "$node"@
 ## if $node.accessible != 1, might be inaccessible index node
diff --git a/local/mib2c-conf.d/m2c_setup_table.m2i b/local/mib2c-conf.d/m2c_setup_table.m2i
index 4481e39..cca31af 100644
--- a/local/mib2c-conf.d/m2c_setup_table.m2i
+++ b/local/mib2c-conf.d/m2c_setup_table.m2i
@@ -1,10 +1,10 @@
 ########################################################################
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: m2c_setup_table.m2i 12086 2005-04-18 21:53:05Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12086 $ */
 @end@
 ########################################################################
 ##
@@ -44,5 +44,5 @@
 ########################################################################
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12086 $ */
 @end@
diff --git a/local/mib2c-conf.d/m2c_table_save_defaults.m2i b/local/mib2c-conf.d/m2c_table_save_defaults.m2i
index e36c32e..bdd03e4 100644
--- a/local/mib2c-conf.d/m2c_table_save_defaults.m2i
+++ b/local/mib2c-conf.d/m2c_table_save_defaults.m2i
@@ -1,7 +1,7 @@
 #######################################################################
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: m2c_table_save_defaults.m2i 12577 2005-07-25 15:37:02Z dts12 $
 ########################################################################
 ##
 ##
diff --git a/local/mib2c-conf.d/mfd-access-container-cached-defines.m2i b/local/mib2c-conf.d/mfd-access-container-cached-defines.m2i
index 5f65b63..f774720 100644
--- a/local/mib2c-conf.d/mfd-access-container-cached-defines.m2i
+++ b/local/mib2c-conf.d/mfd-access-container-cached-defines.m2i
@@ -1,10 +1,10 @@
 #######################################################################
 ###generic include for XXX. Do not use directly.
 ###
-### $Id$
+### $Id: mfd-access-container-cached-defines.m2i 14170 2006-01-26 17:02:48Z dts12 $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 14170 $ */
 @end@
 ##//####################################################################
 ##//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ -572,5 +572,5 @@ _${context}_container_shutdown(${context}_interface_ctx *if_ctx)
 ########################################################################
 ##//####################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 14170 $ */
 @end@
diff --git a/local/mib2c-conf.d/mfd-access-unsorted-external-defines.m2i b/local/mib2c-conf.d/mfd-access-unsorted-external-defines.m2i
index f4f3514..841798a 100644
--- a/local/mib2c-conf.d/mfd-access-unsorted-external-defines.m2i
+++ b/local/mib2c-conf.d/mfd-access-unsorted-external-defines.m2i
@@ -1,7 +1,7 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: mfd-access-unsorted-external-defines.m2i 17717 2009-08-04 21:59:16Z dts12 $
 ########################################################################
 ##
 @eval $mfd_aue_wrap_param = "wrap_ctx"@
@@ -14,7 +14,7 @@
 @eval $mfd_aue_param_cmt = "$mfd_aue_param Pointer to a $mfd_aue_param_type"
 ##
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 17717 $ */
 @end@
 ##//####################################################################
 ##//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ -1194,5 +1194,5 @@ $example_end
 @end@ // m2c_processing_type eq 'r
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 17717 $ */
 @end@
diff --git a/local/mib2c-conf.d/mfd-data-access.m2c b/local/mib2c-conf.d/mfd-data-access.m2c
index bcff9bb..78aad57 100644
--- a/local/mib2c-conf.d/mfd-data-access.m2c
+++ b/local/mib2c-conf.d/mfd-data-access.m2c
@@ -1,7 +1,7 @@
 ##//#########################################################  -*- c -*-
 ##//generic include for XXX. Do not use directly.
 ##
-##//$Id$
+##//$Id: mfd-data-access.m2c 14170 2006-01-26 17:02:48Z dts12 $
 ##//####################################################################
 ##//####################################################################
 ##
@@ -13,12 +13,12 @@
 @eval $hack = "Id"@
 /*
  * Note: this file originally auto-generated by mib2c using
- *       version $Revision$ of $RCSfile$
+ *       version $Revision: 14170 $ of $RCSfile$
  *
  * $$hack:$
  */
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 14170 $ */
 @end@
 @eval $m2c_save = "$name"@
 @eval $name = "${name}_DATA_ACCESS"@
@@ -72,7 +72,7 @@ int ${node}_check_index( ${context}_rowreq_ctx *rowreq_ctx ); /* internal */
 @open ${name}_data_access.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *       version $Revision$ of $RCSfile$ 
+ *       version $Revision: 14170 $ of $RCSfile$ 
  *
  * $$hack:$
  */
@@ -326,6 +326,6 @@ ${context}_validate_index( ${context}_registration * ${context}_reg,
 /** @} */
 ##//####################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 14170 $ */
 @end@
 @eval $m2c_processing_type = "$mfd_data_access_processing_type"@
diff --git a/local/mib2c-conf.d/mfd-data-get.m2c b/local/mib2c-conf.d/mfd-data-get.m2c
index cf1c848..7fa67f2 100644
--- a/local/mib2c-conf.d/mfd-data-get.m2c
+++ b/local/mib2c-conf.d/mfd-data-get.m2c
@@ -1,7 +1,7 @@
 ############################################################# -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: mfd-data-get.m2c 12088 2005-04-18 21:58:42Z rstory $
 ########################################################################
 ########################################################################
 ## lower conf files get confused with multiple processing types, so
@@ -14,7 +14,7 @@
 @   eval $hack = "Id"@
 /*
  * Note: this file originally auto-generated by mib2c using
- *       version $Revision$ of $RCSfile$
+ *       version $Revision: 12088 $ of $RCSfile$
  *
  * $$hack:$
  *
@@ -32,7 +32,7 @@
 @   eval $name = "$m2c_tmp"@
 @end@ // m2c_create_fewer_files
 @if $m2c_mark_boundary == 1@
-/** START header generated by $RCSfile$ $Revision$ */
+/** START header generated by $RCSfile$ $Revision: 12088 $ */
 @end@
 ########################################################################
 ##
@@ -69,7 +69,7 @@
 @end@ // table
 
 @if $m2c_mark_boundary == 1@
-/** END header generated by $RCSfile$ $Revision$ */
+/** END header generated by $RCSfile$ $Revision: 12088 $ */
 @end@
 @if $m2c_create_fewer_files != 1@
 @   eval $m2c_tmp = "$name"@
@@ -89,7 +89,7 @@
 @open ${name}_data_get.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *       version $Revision$ of $RCSfile$ 
+ *       version $Revision: 12088 $ of $RCSfile$ 
  *
  * $$hack:$
  */
@@ -108,7 +108,7 @@
  */
 @end@ // m2c_create_fewer_files
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12088 $ */
 @end@
 @foreach $table table@
 @    include m2c_setup_table.m2i@
@@ -160,7 +160,7 @@
 /** @} */
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12088 $ */
 @end@
 ########################################################################
 @end@ // $mfd_processing_types =~ /c/
diff --git a/local/mib2c-conf.d/mfd-data-set.m2c b/local/mib2c-conf.d/mfd-data-set.m2c
index 1150551..b3e447e 100644
--- a/local/mib2c-conf.d/mfd-data-set.m2c
+++ b/local/mib2c-conf.d/mfd-data-set.m2c
@@ -1,7 +1,7 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: mfd-data-set.m2c 12077 2005-04-14 02:47:19Z rstory $
 ########################################################################
 ## lower conf files get confused with multiple processing types, so
 ## set single options
@@ -13,7 +13,7 @@
 @open ${name}_data_set.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *       version $Revision$ of $RCSfile$ 
+ *       version $Revision: 12077 $ of $RCSfile$ 
  *
  * $$hack:$
  */
@@ -24,7 +24,7 @@
 @end@ // m2c_create_fewer_files
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START header generated by $RCSfile$ $Revision$ */
+/** START header generated by $RCSfile$ $Revision: 12077 $ */
 @end@
 ##
 /* *********************************************************************
@@ -56,7 +56,7 @@ int ${context}_check_dependencies(${context}_rowreq_ctx *ctx);
 @end@ # foreach table
 
 @if $m2c_mark_boundary == 1@
-/** END header generated by $RCSfile$ $Revision$ */
+/** END header generated by $RCSfile$ $Revision: 12077 $ */
 @end@
 @if $m2c_create_fewer_files != 1@
 @eval $m2c_save = "$name"@
@@ -78,7 +78,7 @@ int ${context}_check_dependencies(${context}_rowreq_ctx *ctx);
 @open ${name}_data_set.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *       version $Revision$ of $RCSfile$
+ *       version $Revision: 12077 $ of $RCSfile$
  *
  * $$hack:$
  *
@@ -94,7 +94,7 @@ int ${context}_check_dependencies(${context}_rowreq_ctx *ctx);
  */
 @end@ // m2c_create_fewer_files
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12077 $ */
 @end@
 ########################################################################
 @foreach $table table@
@@ -134,7 +134,7 @@ int ${context}_check_dependencies(${context}_rowreq_ctx *ctx);
 ########################################################################
 /** @} */
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12077 $ */
 @end@
 ########################################################################
 @end@ // mfd_processing_type =~ /c/
diff --git a/local/mib2c-conf.d/mfd-interactive-setup.m2c b/local/mib2c-conf.d/mfd-interactive-setup.m2c
index e3d3d55..3361553 100644
--- a/local/mib2c-conf.d/mfd-interactive-setup.m2c
+++ b/local/mib2c-conf.d/mfd-interactive-setup.m2c
@@ -1,10 +1,10 @@
 #######################################################################
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: mfd-interactive-setup.m2c 16380 2007-05-17 18:06:33Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 16380 $ */
 @end@
 ########################################################################
 @eval $m2c_temp_writable = table_is_writable($context)@
@@ -113,9 +113,7 @@ code for dynamic row creation?
 ## ---------------------------------------------------
 Do you want to use an existing data structure for the USER context?
 This would be a structure used to track data for the entire table,
-(similar to a global variable) not individual rows.  (Many
-implementations won't need this, in which case the default is fine).
-
+(similar to a global variable) not individual rows.
 
   1) No, use $m2c_temp_context_reg [DEFAULT]
   2) Yes, use my own structure
@@ -128,9 +126,8 @@ implementations won't need this, in which case the default is fine).
 
 ## ---------------------------------------------------
 Do you want to use an existing data structure for the DATA context?
-The DATA context holds the data for each MIB column in a given row. By
-default, a new data structure will be created with an element for each
-column.  If you already have a structure that holds your data, select 2.
+The DATA context holds the data for each MIB column. By default, a new
+data structure will be created with an element for each column.
 
   1) No, use $m2c_temp_data_context [DEFAULT]
   2) Yes, use my own structure
@@ -331,5 +328,5 @@ snmpd. (You can still link it in later.)
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 16380 $ */
 @end@
diff --git a/local/mib2c-conf.d/mfd-interface.m2c b/local/mib2c-conf.d/mfd-interface.m2c
index d666c9a..6a3cd0b 100644
--- a/local/mib2c-conf.d/mfd-interface.m2c
+++ b/local/mib2c-conf.d/mfd-interface.m2c
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: mfd-interface.m2c 15899 2007-02-27 13:08:24Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 15899 $ */
 @end@
 ########################################################################
 ##
@@ -14,7 +14,7 @@
 @eval $hack = "Id"@
 /*
  * Note: this file originally auto-generated by mib2c using
- *       version $Revision$ of $RCSfile$
+ *       version $Revision: 15899 $ of $RCSfile$
  *
  * $$hack:$
  */
@@ -105,7 +105,7 @@ void ${context}_valid_columns_set(netsnmp_column_info *vc);
 @open ${name}_interface.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *       version $Revision$ of $RCSfile$ 
+ *       version $Revision: 15899 $ of $RCSfile$ 
  *
  * $$hack:$
  */
@@ -118,10 +118,6 @@ void ${context}_valid_columns_set(netsnmp_column_info *vc);
 
 #include "${name}_interface.h"
 
-netsnmp_feature_require(baby_steps)
-netsnmp_feature_require(row_merge)
-netsnmp_feature_require(check_all_requests_error)
-
 #include <ctype.h>
 
 @eval $m2c_processing_type = 'i'@
@@ -219,7 +215,14 @@ static Netsnmp_Node_Handler _mfd_${context}_irreversible_commit;
 static Netsnmp_Node_Handler _mfd_${context}_check_dependencies;
 @      end@
 
+NETSNMP_STATIC_INLINE int _${context}_undo_column( ${context}_rowreq_ctx *rowreq_ctx,
+                                                   netsnmp_variable_list *var, int column );
+
 @   end@ # writable
+ at if ($m2c_table_persistent == 1) || ($m2c_table_row_creation == 1)@
+NETSNMP_STATIC_INLINE int _${context}_check_indexes(${context}_rowreq_ctx * rowreq_ctx);
+
+ at end@
 @   if ("$m2c_data_context" eq "generated") && (($m2c_undo_embed == 0) || ($m2c_data_allocate == 1))@
 ${context}_data *${context}_allocate_data(void);
 
@@ -256,7 +259,7 @@ _${context}_initialize_interface(${context}_registration * reg_ptr,  u_long flag
                              0);
 
     /*  Define the minimum and maximum accessible columns.  This
-        optimizes retrieval. */
+        optimizes retrival. */
     tbl_info->min_column = $context.uc_MIN_COL;
     tbl_info->max_column = $context.uc_MAX_COL;
 
@@ -291,7 +294,6 @@ _${context}_initialize_interface(${context}_registration * reg_ptr,  u_long flag
     access_multiplexer->pre_request = _mfd_${context}_pre_request;
     access_multiplexer->post_request = _mfd_${context}_post_request;
 
-#ifndef NETSNMP_DISABLE_SET_SUPPORT
 ##
 @   if $m2c_table_settable@
 
@@ -319,7 +321,6 @@ _${context}_initialize_interface(${context}_registration * reg_ptr,  u_long flag
     access_multiplexer->consistency_checks = _mfd_${context}_check_dependencies;
 @      end@
 @   end@ # writable
-#endif
 
     /*************************************************
      *
@@ -332,15 +333,11 @@ _${context}_initialize_interface(${context}_registration * reg_ptr,  u_long flag
                                                   ${context}_oid,
                                                   ${context}_oid_size,
                                                   HANDLER_CAN_BABY_STEP |
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
-                                                  HANDLER_CAN_RONLY
-#else
 @if $m2c_table_settable == 1@
                                                   HANDLER_CAN_RWRITE
 @else@
                                                   HANDLER_CAN_RONLY
 @end@
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
                                                   );
     if(NULL == reginfo) {
         snmp_log(LOG_ERR,"error registering table ${context}\n");
@@ -354,12 +351,6 @@ _${context}_initialize_interface(${context}_registration * reg_ptr,  u_long flag
      */
     if( access_multiplexer->object_lookup )
         mfd_modes |= BABY_STEP_OBJECT_LOOKUP;
-    if( access_multiplexer->pre_request )
-        mfd_modes |= BABY_STEP_PRE_REQUEST;
-    if( access_multiplexer->post_request )
-        mfd_modes |= BABY_STEP_POST_REQUEST;
-    
-#if !(defined(NETSNMP_NO_WRITE_SUPPORT) || defined(NETSNMP_DISABLE_SET_SUPPORT))
     if( access_multiplexer->set_values )
         mfd_modes |= BABY_STEP_SET_VALUES;
     if( access_multiplexer->irreversible_commit )
@@ -367,6 +358,11 @@ _${context}_initialize_interface(${context}_registration * reg_ptr,  u_long flag
     if( access_multiplexer->object_syntax_checks )
         mfd_modes |= BABY_STEP_CHECK_OBJECT;
 
+    if( access_multiplexer->pre_request )
+        mfd_modes |= BABY_STEP_PRE_REQUEST;
+    if( access_multiplexer->post_request )
+        mfd_modes |= BABY_STEP_POST_REQUEST;
+    
     if( access_multiplexer->undo_setup )
         mfd_modes |= BABY_STEP_UNDO_SETUP;
     if( access_multiplexer->undo_cleanup )
@@ -382,7 +378,6 @@ _${context}_initialize_interface(${context}_registration * reg_ptr,  u_long flag
         mfd_modes |= BABY_STEP_COMMIT;
     if( access_multiplexer->undo_commit )
         mfd_modes |= BABY_STEP_UNDO_COMMIT;
-#endif /* NETSNMP_NO_WRITE_SUPPORT || NETSNMP_DISABLE_SET_SUPPORT */
     
     handler = netsnmp_baby_steps_handler_get(mfd_modes);
     netsnmp_inject_handler(reginfo, handler);
@@ -609,7 +604,7 @@ _mfd_${context}_post_request(netsnmp_mib_handler *handler,
                              netsnmp_agent_request_info *agtreq_info,
                              netsnmp_request_info *requests)
 {
-    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
+    ${context}_rowreq_ctx *rowreq_ctx =
                   netsnmp_container_table_row_extract(requests);
     int rc, packet_rc;
 
@@ -658,51 +653,6 @@ _mfd_${context}_post_request(netsnmp_mib_handler *handler,
 ########################################################################
 ##
 @if ($m2c_table_row_creation == 1) || ($m2c_table_persistent == 1)@
-NETSNMP_STATIC_INLINE int
-_${context}_check_indexes(${context}_rowreq_ctx * rowreq_ctx)
-{
-    int                          rc = SNMPERR_SUCCESS;
-
-    DEBUGMSGTL(("internal:${context}:_${context}_check_indexes","called\n"));
-
-    netsnmp_assert(NULL != rowreq_ctx);
-
-##
- at if $m2c_table_external_indexes != 0@
-    /*
-     * check that the corresponding EXTERNAL row exists
-     */
-@   foreach $node externalindex@
-@      include m2c_setup_node.m2i@
-
-    /* (INDEX) $m2c_node_summary */
-    rc = ${context}_${node}_check_index( rowreq_ctx );
-    if(MFD_SUCCESS != rc)
-        return SNMP_ERR_NOCREATION;
-@   end@ # for each nonindex
-
- at end@ # external index
-@   foreach $node internalindex@
-@      include m2c_setup_node.m2i@
-
-    /* (INDEX) $m2c_node_summary */
-@   eval $m2c_nv_val = "rowreq_ctx->tbl_idx.$node"@
-@   eval $m2c_nv_len = "rowreq_ctx->tbl_idx.${node}_len"@
-@   eval $m2c_nv_str = "rowreq_ctx->tbl_idx.$node"@
-@   include node-validate.m2i@
-       if (MFD_SUCCESS != rc)
-          return rc;
-        rc = ${node}_check_index( rowreq_ctx );
-       if(MFD_SUCCESS != rc)
-           return SNMP_ERR_NOCREATION;
-@   end@ # for each internalindex
-
-    /*
-     * if individual parts look ok, check them as a whole
-     */
-    return ${context}_validate_index( ${context}_if_ctx.user_ctx, rowreq_ctx );
-} /* _${context}_check_indexes */
-##----------------------------------------------------------------------
 /**
  * @internal
  * wrapper
@@ -783,7 +733,7 @@ _mfd_${context}_object_lookup(netsnmp_mib_handler *handler,
                          netsnmp_request_info *requests)
 {
     int                    rc = SNMP_ERR_NOERROR;
-    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
+    ${context}_rowreq_ctx *rowreq_ctx =
                   netsnmp_container_table_row_extract(requests);
     
     DEBUGMSGTL(("internal:${context}:_mfd_${context}_object_lookup","called\n"));
@@ -948,7 +898,7 @@ _mfd_${context}_get_values(netsnmp_mib_handler *handler,
                          netsnmp_agent_request_info *agtreq_info,
                          netsnmp_request_info *requests)
 {
-    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
+    ${context}_rowreq_ctx *rowreq_ctx =
                   netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info * tri;
     u_char                     * old_string;
@@ -1017,6 +967,54 @@ _mfd_${context}_get_values(netsnmp_mib_handler *handler,
     return SNMP_ERR_NOERROR;
 } /* _mfd_${context}_get_values */
 
+##----------------------------------------------------------------------
+ at if ($m2c_table_row_creation == 1) || ($m2c_table_persistent == 1)@
+NETSNMP_STATIC_INLINE int
+_${context}_check_indexes(${context}_rowreq_ctx * rowreq_ctx)
+{
+    int                          rc = SNMPERR_SUCCESS;
+
+    DEBUGMSGTL(("internal:${context}:_${context}_check_indexes","called\n"));
+
+    netsnmp_assert(NULL != rowreq_ctx);
+
+##
+ at if $m2c_table_external_indexes != 0@
+    /*
+     * check that the corresponding EXTERNAL row exists
+     */
+@   foreach $node externalindex@
+@      include m2c_setup_node.m2i@
+
+    /* (INDEX) $m2c_node_summary */
+    rc = ${context}_${node}_check_index( rowreq_ctx );
+    if(MFD_SUCCESS != rc)
+        return SNMP_ERR_NOCREATION;
+@   end@ # for each nonindex
+
+ at end@ # external index
+@   foreach $node internalindex@
+@      include m2c_setup_node.m2i@
+
+    /* (INDEX) $m2c_node_summary */
+@   eval $m2c_nv_val = "rowreq_ctx->tbl_idx.$node"@
+@   eval $m2c_nv_len = "rowreq_ctx->tbl_idx.${node}_len"@
+@   eval $m2c_nv_str = "rowreq_ctx->tbl_idx.$node"@
+@   include node-validate.m2i@
+       if (MFD_SUCCESS != rc)
+          return rc;
+        rc = ${node}_check_index( rowreq_ctx );
+       if(MFD_SUCCESS != rc)
+           return SNMP_ERR_NOCREATION;
+@   end@ # for each internalindex
+
+    /*
+     * if individual parts look ok, check them as a whole
+     */
+    return ${context}_validate_index( ${context}_if_ctx.user_ctx, rowreq_ctx );
+} /* _${context}_check_indexes */
+ at end@ # $m2c_table_row_creation
+
 ########################################################################
 ##
 /***********************************************************************
@@ -1104,7 +1102,7 @@ _mfd_${context}_check_objects(netsnmp_mib_handler *handler,
                          netsnmp_agent_request_info *agtreq_info,
                          netsnmp_request_info *requests)
 {
-    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
+    ${context}_rowreq_ctx *rowreq_ctx =
                   netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info * tri;
     int                          rc;
@@ -1151,7 +1149,7 @@ _mfd_${context}_check_dependencies(netsnmp_mib_handler *handler,
                          netsnmp_request_info *requests)
 {
     int                    rc;
-    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
+    ${context}_rowreq_ctx *rowreq_ctx =
                   netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:${context}:_mfd_${context}_check_dependencies","called\n"));
 
@@ -1221,7 +1219,7 @@ _mfd_${context}_undo_setup(netsnmp_mib_handler *handler,
                          netsnmp_request_info *requests)
 {
     int                    rc;
-    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
+    ${context}_rowreq_ctx *rowreq_ctx =
                   netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:${context}:_mfd_${context}_undo_setup","called\n"));
@@ -1285,7 +1283,7 @@ _mfd_${context}_undo_cleanup(netsnmp_mib_handler *handler,
                              netsnmp_agent_request_info *agtreq_info,
                              netsnmp_request_info *requests)
 {
-    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
+    ${context}_rowreq_ctx *rowreq_ctx =
                   netsnmp_container_table_row_extract(requests);
     int rc;
 
@@ -1373,7 +1371,7 @@ _mfd_${context}_set_values(netsnmp_mib_handler *handler,
                          netsnmp_agent_request_info *agtreq_info,
                          netsnmp_request_info *requests)
 {
-    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
+    ${context}_rowreq_ctx *rowreq_ctx =
                   netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info * tri;
     int                          rc = SNMP_ERR_NOERROR;
@@ -1419,7 +1417,7 @@ _mfd_${context}_commit(netsnmp_mib_handler *handler,
                          netsnmp_request_info *requests)
 {
     int                    rc;
-    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
+    ${context}_rowreq_ctx *rowreq_ctx =
                   netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:${context}:_mfd_${context}_commit","called\n"));
@@ -1452,7 +1450,7 @@ _mfd_${context}_undo_commit(netsnmp_mib_handler *handler,
                          netsnmp_request_info *requests)
 {
     int                    rc;
-    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
+    ${context}_rowreq_ctx *rowreq_ctx =
                   netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:${context}:_mfd_${context}_undo_commit","called\n"));
@@ -1533,7 +1531,7 @@ _mfd_${context}_undo_values(netsnmp_mib_handler *handler,
                          netsnmp_request_info *requests)
 {
     int                    rc;
-    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
+    ${context}_rowreq_ctx *rowreq_ctx =
                   netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info * tri;
 
@@ -1590,7 +1588,7 @@ _mfd_${context}_irreversible_commit(netsnmp_mib_handler *handler,
 @   if $m2c_irreversible_commit == 1@
     int                    rc;
 @   end@
-    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
+    ${context}_rowreq_ctx *rowreq_ctx =
                   netsnmp_container_table_row_extract(requests);
     
     DEBUGMSGTL(("internal:${context}:_mfd_${context}_irreversible:commit","called\n"));
@@ -1671,7 +1669,7 @@ ${context}_row_find_by_mib_index(${context}_mib_index *mib_idx)
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = (${context}_rowreq_ctx*)CONTAINER_FIND(${context}_if_ctx.container, &oid_idx);
+    rowreq_ctx = CONTAINER_FIND(${context}_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
@@ -1714,5 +1712,5 @@ ${context}_row_ref_decrement(${context}_rowreq_ctx *rowreq_ctx)
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 15899 $ */
 @end@
diff --git a/local/mib2c-conf.d/mfd-makefile.m2m b/local/mib2c-conf.d/mfd-makefile.m2m
index c41d5bb..d94951c 100644
--- a/local/mib2c-conf.d/mfd-makefile.m2m
+++ b/local/mib2c-conf.d/mfd-makefile.m2m
@@ -1,5 +1,5 @@
 ####################################################### -*- Makefile -*-
-## $Id$
+## $Id: mfd-makefile.m2m 12577 2005-07-25 15:37:02Z dts12 $
 ##
 ########################################################################
 ##
@@ -16,7 +16,7 @@
 @   else@
 ########################################################################
 @      if $m2c_mark_boundary == 1@
-# START code generated by $RCSfile$ $Revision$
+# START code generated by $RCSfile$ $Revision: 12577 $
 @      end@
 ########################################################################
 
@@ -132,7 +132,7 @@ include $(TABLE_PREFIX)_data_set.deps
 @end@
 ########################################################################
 @      if $m2c_mark_boundary == 1@
-# END code generated by $RCSfile$ $Revision$
+# END code generated by $RCSfile$ $Revision: 12577 $
 @      end@
 @   end@ # not including ${name}_Makefile.m2m
 @   close ${name}_Makefile@
diff --git a/local/mib2c-conf.d/mfd-persistence.m2i b/local/mib2c-conf.d/mfd-persistence.m2i
index 7796cf2..fc551af 100644
--- a/local/mib2c-conf.d/mfd-persistence.m2i
+++ b/local/mib2c-conf.d/mfd-persistence.m2i
@@ -1,9 +1,9 @@
 ########################################################################
 ## generic include for XXX. Do not use directly.
-## $Id$
+## $Id: mfd-persistence.m2i 15990 2007-03-23 09:19:51Z dts12 $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 15990 $ */
 @end@
 ########################################################################
 @if $m2c_processing_type eq 'h'@
@@ -162,7 +162,7 @@ _${context}_container_row_save(
      * be treated a little differently. Specifically, you will need
      * (4 * len) + 4 [3 ASCII chars per byte + 1 for ., + 4 for len].
      *
-     * 3) Also, remember to add space for the identifier and separator
+     * 3) Also, remeber to add space for the identifier and seperator
      * 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
@@ -474,5 +474,5 @@ _${context}_container_col_restore(
 @end@ // $m2c_processing_type eq 'i'
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 15990 $ */
 @end@
diff --git a/local/mib2c-conf.d/mfd-readme.m2c b/local/mib2c-conf.d/mfd-readme.m2c
index 5ed9d59..9aeef10 100644
--- a/local/mib2c-conf.d/mfd-readme.m2c
+++ b/local/mib2c-conf.d/mfd-readme.m2c
@@ -1,10 +1,10 @@
 ########################################################################
 ## generic include for XXX. Don't use directly.
 ##
-## $Id$
+## $Id: mfd-readme.m2c 12091 2005-04-18 22:05:47Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12091 $ */
 @end@
 ########################################################################
 ##
@@ -842,5 +842,5 @@ Table / column details
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12091 $ */
 @end@
diff --git a/local/mib2c-conf.d/mfd-top.m2c b/local/mib2c-conf.d/mfd-top.m2c
index db0f398..2d236b2 100644
--- a/local/mib2c-conf.d/mfd-top.m2c
+++ b/local/mib2c-conf.d/mfd-top.m2c
@@ -1,6 +1,6 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
-## $Id$
+## $Id: mfd-top.m2c 14170 2006-01-26 17:02:48Z dts12 $
 ########################################################################
 ########################################################################
 ##
@@ -77,7 +77,7 @@
 @eval $hack = "Id"@
 /*
  * Note: this file originally auto-generated by mib2c using
- *       version $Revision$ of $RCSfile$
+ *       version $Revision: 14170 $ of $RCSfile$
  *
  * $$hack:$
  */
@@ -88,7 +88,7 @@
  * @{
  */
 @if $m2c_mark_boundary == 1@
-/** START header generated by $RCSfile$ $Revision$ */
+/** START header generated by $RCSfile$ $Revision: 14170 $ */
 @end@
 #include <net-snmp/library/asn1.h>
 
@@ -252,8 +252,8 @@ int ${context}_row_ref_increment(${context}_rowreq_ctx *rowreq_ctx);
 int ${context}_row_ref_decrement(${context}_rowreq_ctx *rowreq_ctx);
 
 @   end@
-extern const oid ${context}_oid[];
-extern const int ${context}_oid_size;
+extern oid ${context}_oid[];
+extern int ${context}_oid_size;
 
 @end@ # for each
 
@@ -278,7 +278,7 @@ extern const int ${context}_oid_size;
  * TODO:499:x: *************************************************************
  */
 @if $m2c_mark_boundary == 1@
-/** END header generated by $RCSfile$ $Revision$ */
+/** END header generated by $RCSfile$ $Revision: 14170 $ */
 @end@
 @include generic-header-bottom.m2i@
 /** @} */
@@ -289,7 +289,7 @@ extern const int ${context}_oid_size;
 @open ${name}.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *       version $Revision$ of $RCSfile$ 
+ *       version $Revision: 14170 $ of $RCSfile$ 
  *
  * $$hack:$
  */
@@ -303,14 +303,14 @@ extern const int ${context}_oid_size;
 #include <net-snmp/agent/mib_modules.h>
 
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 14170 $ */
 @end@
 #include "${name}_interface.h"
 
 @foreach $table table@
 @    include m2c_setup_table.m2i@
-const oid ${context}_oid[] = { $context.uc_OID };
-const int ${context}_oid_size = OID_LENGTH(${context}_oid);
+oid ${context}_oid[] = { $context.uc_OID };
+int ${context}_oid_size = OID_LENGTH(${context}_oid);
 
 @    if "x$m2c_context_reg" ne "x"@
     ${context}_registration  ${context}_user_context;
@@ -577,7 +577,7 @@ ${context}_post_request(${context}_registration * user_context, int rc)
 ########################################################################
 /** @{ */
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 14170 $ */
 @end@
 ##
 ########################################################################
diff --git a/local/mib2c-conf.d/node-get.m2i b/local/mib2c-conf.d/node-get.m2i
index 1d7255c..96ee8e4 100644
--- a/local/mib2c-conf.d/node-get.m2i
+++ b/local/mib2c-conf.d/node-get.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: node-get.m2i 12704 2005-08-30 00:38:54Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12704 $ */
 @end@
 ########################################################################
 ##
@@ -103,5 +103,5 @@ ${node}_get( ${context}_rowreq_ctx *rowreq_ctx, $m2c_node_param_ref )
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12704 $ */
 @end@
diff --git a/local/mib2c-conf.d/node-set.m2i b/local/mib2c-conf.d/node-set.m2i
index 2041b59..6108631 100644
--- a/local/mib2c-conf.d/node-set.m2i
+++ b/local/mib2c-conf.d/node-set.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: node-set.m2i 11991 2005-03-04 20:10:14Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11991 $ */
 @end@
 ########################################################################
 ##
@@ -232,5 +232,5 @@ ${node}_undo( ${context}_rowreq_ctx *rowreq_ctx)
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11991 $ */
 @end@
diff --git a/local/mib2c-conf.d/node-storage.m2i b/local/mib2c-conf.d/node-storage.m2i
index 7a941f0..eb90675 100644
--- a/local/mib2c-conf.d/node-storage.m2i
+++ b/local/mib2c-conf.d/node-storage.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: node-storage.m2i 8830 2003-09-30 13:34:57Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 8830 $ */
 @end@
 ########################################################################
 ##
@@ -17,5 +17,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 8830 $ */
 @end@
diff --git a/local/mib2c-conf.d/node-validate.m2i b/local/mib2c-conf.d/node-validate.m2i
index a63f1d7..fd9c606 100644
--- a/local/mib2c-conf.d/node-validate.m2i
+++ b/local/mib2c-conf.d/node-validate.m2i
@@ -1,13 +1,13 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: node-validate.m2i 12101 2005-04-20 22:45:01Z rstory $
 ##
 ## assumes an integer rc is available and will be tested by caller
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12101 $ */
 @end@
 ########################################################################
 ##----------------------------------------------------------------------
@@ -67,5 +67,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12101 $ */
 @end@
diff --git a/local/mib2c-conf.d/node-varbind-validate.m2i b/local/mib2c-conf.d/node-varbind-validate.m2i
index 1b3fb37..ed2f933 100644
--- a/local/mib2c-conf.d/node-varbind-validate.m2i
+++ b/local/mib2c-conf.d/node-varbind-validate.m2i
@@ -1,7 +1,7 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: node-varbind-validate.m2i 12101 2005-04-20 22:45:01Z rstory $
 ##
 ## Tests a netsnmp_variable_list pointer (var) against known
 ## contstraints. If none are found, calls the user supplied funtion
@@ -14,7 +14,7 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12101 $ */
 @end@
 ########################################################################
 ##----------------------------------------------------------------------
@@ -50,5 +50,5 @@ netsnmp_assert(rc == SNMP_ERR_NOERROR); /* paranoia */
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12101 $ */
 @end@
diff --git a/local/mib2c-conf.d/parent-dependencies.m2i b/local/mib2c-conf.d/parent-dependencies.m2i
index 104f150..bc912b3 100644
--- a/local/mib2c-conf.d/parent-dependencies.m2i
+++ b/local/mib2c-conf.d/parent-dependencies.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: parent-dependencies.m2i 11989 2005-03-04 20:02:42Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11989 $ */
 @end@ # ;
 ########################################################################
 ##
@@ -59,5 +59,5 @@ ${context}_check_dependencies(${context}_rowreq_ctx *rowreq_ctx)
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11989 $ */
 @end@
diff --git a/local/mib2c-conf.d/parent-set.m2i b/local/mib2c-conf.d/parent-set.m2i
index 02afe3d..bb02522 100644
--- a/local/mib2c-conf.d/parent-set.m2i
+++ b/local/mib2c-conf.d/parent-set.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: parent-set.m2i 12851 2005-09-27 15:43:39Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12851 $ */
 @end@
 ########################################################################
 ##//####################################################################
@@ -413,5 +413,5 @@ ${context}_irreversible_commit( ${context}_rowreq_ctx *rowreq_ctx)
 @end@ // m2c_processing_type eq 'c'
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12851 $ */
 @end@
diff --git a/local/mib2c-conf.d/subagent.m2c b/local/mib2c-conf.d/subagent.m2c
index 61fc26d..6159838 100644
--- a/local/mib2c-conf.d/subagent.m2c
+++ b/local/mib2c-conf.d/subagent.m2c
@@ -1,9 +1,9 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
-## $Id$
+## $Id: subagent.m2c 15795 2007-01-25 22:07:06Z tanders $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 15795 $ */
 @end@
 ########################################################################
 ##
@@ -11,7 +11,7 @@
 @open ${name}_subagent.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *       version $Revision$ of $RCSfile$ 
+ *       version $Revision: 15795 $ of $RCSfile$ 
  */
 @include generic-header-top.m2i@
 @include generic-header-bottom.m2i@
@@ -22,23 +22,11 @@
 @open ${name}_subagent.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *       version $Revision$ of $RCSfile$ 
+ *       version $Revision: 15795 $ of $RCSfile$ 
  */
 @include generic-source-includes.m2i@
 #include <signal.h>
 
-/*
- * If compiling within the net-snmp source code, this will trigger the feature
- * detection mechansim to ensure the agent_check_and_process() function
- * is left available even if --enable-minimialist is turned on.  If you
- * have configured net-snmp using --enable-minimialist and want to compile
- * this code externally to the Net-SNMP code base, then please add
- * --with-features="agent_check_and_process enable_stderrlog" to your
- * configure line.
- */
-netsnmp_feature_require(agent_check_and_process)
-netsnmp_feature_require(enable_stderrlog)
-
 static int keep_running;
 
 static RETSIGTYPE
@@ -191,5 +179,5 @@ main (int argc, char **argv) {
 
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 15795 $ */
 @end@
diff --git a/local/mib2c-conf.d/syntax-COUNTER64-get.m2i b/local/mib2c-conf.d/syntax-COUNTER64-get.m2i
index 7f36830..af05f10 100644
--- a/local/mib2c-conf.d/syntax-COUNTER64-get.m2i
+++ b/local/mib2c-conf.d/syntax-COUNTER64-get.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: syntax-COUNTER64-get.m2i 11363 2004-10-15 00:52:14Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11363 $ */
     ## }
 @end@
 ########################################################################
@@ -31,5 +31,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11363 $ */
 @end@
diff --git a/local/mib2c-conf.d/syntax-DateAndTime-get.m2i b/local/mib2c-conf.d/syntax-DateAndTime-get.m2i
index 984d1e2..a2131fe 100644
--- a/local/mib2c-conf.d/syntax-DateAndTime-get.m2i
+++ b/local/mib2c-conf.d/syntax-DateAndTime-get.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: syntax-DateAndTime-get.m2i 12079 2005-04-14 02:52:09Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12079 $ */
 @end@
 ########################################################################
 ##
@@ -50,5 +50,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12079 $ */
 @end@
diff --git a/local/mib2c-conf.d/syntax-InetAddress-get.m2i b/local/mib2c-conf.d/syntax-InetAddress-get.m2i
index 253980c..2b19f8d 100644
--- a/local/mib2c-conf.d/syntax-InetAddress-get.m2i
+++ b/local/mib2c-conf.d/syntax-InetAddress-get.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: syntax-InetAddress-get.m2i 11795 2005-01-06 14:49:39Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11795 $ */
 @end@
 ########################################################################
 ##
@@ -96,5 +96,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11795 $ */
 @end@
diff --git a/local/mib2c-conf.d/syntax-InetAddress-set.m2i b/local/mib2c-conf.d/syntax-InetAddress-set.m2i
index be3cf10..9ab9cbb 100644
--- a/local/mib2c-conf.d/syntax-InetAddress-set.m2i
+++ b/local/mib2c-conf.d/syntax-InetAddress-set.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: syntax-InetAddress-set.m2i 9070 2003-11-04 15:32:23Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 9070 $ */
 @end@
 ########################################################################
 ##
@@ -18,5 +18,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 9070 $ */
 @end@
diff --git a/local/mib2c-conf.d/syntax-InetAddressType-get.m2i b/local/mib2c-conf.d/syntax-InetAddressType-get.m2i
index 0b89a5a..792e221 100644
--- a/local/mib2c-conf.d/syntax-InetAddressType-get.m2i
+++ b/local/mib2c-conf.d/syntax-InetAddressType-get.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: syntax-InetAddressType-get.m2i 11300 2004-10-08 23:39:17Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11300 $ */
 @end@
 ########################################################################
 ##
@@ -21,5 +21,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11300 $ */
 @end@
diff --git a/local/mib2c-conf.d/syntax-InetAddressType-set.m2i b/local/mib2c-conf.d/syntax-InetAddressType-set.m2i
index fb81efe..091ccc9 100644
--- a/local/mib2c-conf.d/syntax-InetAddressType-set.m2i
+++ b/local/mib2c-conf.d/syntax-InetAddressType-set.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: syntax-InetAddressType-set.m2i 11300 2004-10-08 23:39:17Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11300 $ */
 @end@
 ########################################################################
 ##
@@ -21,5 +21,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11300 $ */
 @end@
diff --git a/local/mib2c-conf.d/syntax-RowStatus-dependencies.m2i b/local/mib2c-conf.d/syntax-RowStatus-dependencies.m2i
index 9f14baf..121006c 100644
--- a/local/mib2c-conf.d/syntax-RowStatus-dependencies.m2i
+++ b/local/mib2c-conf.d/syntax-RowStatus-dependencies.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: syntax-RowStatus-dependencies.m2i 12850 2005-09-27 15:42:43Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12850 $ */
 @end@
 ########################################################################
 ## {
@@ -109,5 +109,5 @@
 ## }
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12850 $ */
 @end@
diff --git a/local/mib2c-conf.d/syntax-RowStatus-get.m2i b/local/mib2c-conf.d/syntax-RowStatus-get.m2i
index f8e0996..1a418de 100644
--- a/local/mib2c-conf.d/syntax-RowStatus-get.m2i
+++ b/local/mib2c-conf.d/syntax-RowStatus-get.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: syntax-RowStatus-get.m2i 12090 2005-04-18 22:04:52Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 12090 $ */
 @end@
 ########################################################################
 ##
@@ -61,5 +61,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 12090 $ */
 @end@
diff --git a/local/mib2c-conf.d/syntax-RowStatus-varbind-validate.m2i b/local/mib2c-conf.d/syntax-RowStatus-varbind-validate.m2i
index dc91ac8..79cec51 100644
--- a/local/mib2c-conf.d/syntax-RowStatus-varbind-validate.m2i
+++ b/local/mib2c-conf.d/syntax-RowStatus-varbind-validate.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: syntax-RowStatus-varbind-validate.m2i 8857 2003-10-01 00:20:35Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 8857 $ */
 @end@
 ########################################################################
 ##
@@ -12,5 +12,5 @@ rc = netsnmp_check_vb_rowstatus_value(var);
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 8857 $ */
 @end@
diff --git a/local/mib2c-conf.d/syntax-StorageType-dependencies.m2i b/local/mib2c-conf.d/syntax-StorageType-dependencies.m2i
index 0419514..a2ee74f 100644
--- a/local/mib2c-conf.d/syntax-StorageType-dependencies.m2i
+++ b/local/mib2c-conf.d/syntax-StorageType-dependencies.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: syntax-StorageType-dependencies.m2i 11057 2004-09-10 21:39:36Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11057 $ */
 @end@
 ########################################################################
 ## {
@@ -15,5 +15,5 @@
 ## }
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11057 $ */
 @end@
diff --git a/local/mib2c-conf.d/syntax-TestAndIncr-get.m2i b/local/mib2c-conf.d/syntax-TestAndIncr-get.m2i
index 7cd2f60..6da07f9 100644
--- a/local/mib2c-conf.d/syntax-TestAndIncr-get.m2i
+++ b/local/mib2c-conf.d/syntax-TestAndIncr-get.m2i
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## generic include for XXX. Do not use directly.
 ##
-## $Id$
+## $Id: syntax-TestAndIncr-get.m2i 11300 2004-10-08 23:39:17Z rstory $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11300 $ */
 @end@
 ########################################################################
 ##
@@ -18,5 +18,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11300 $ */
 @end@
diff --git a/local/mib2c-update b/local/mib2c-update
index 42017e5..ebdfd34 100755
--- a/local/mib2c-update
+++ b/local/mib2c-update
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/bash
 #
-# $Id$
+# $Id: mib2c-update 16702 2007-09-16 09:51:41Z magfr $
 #
 # script to merge custom code into updated mib2c code
 #
@@ -39,7 +39,7 @@ debug()
 
 error()
 {
-    echo "ERROR: $@" >&2
+    echo "ERROR: $@" > /dev/stderr
 }
 
 die()
@@ -308,16 +308,8 @@ if [ -f $HOME/.mib2c-updaterc ]; then
     . $HOME/.mib2c-updaterc
 fi
 
-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
+if [ -f .mib2c-updaterc ]; then
+    . .mib2c-updaterc
 fi
 
 check_setup
diff --git a/local/mib2c.access_functions.conf b/local/mib2c.access_functions.conf
index 9d54f14..0f2780b 100644
--- a/local/mib2c.access_functions.conf
+++ b/local/mib2c.access_functions.conf
@@ -5,7 +5,7 @@
 @open ${name}_access.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.access_functions.conf 11358 2004-10-14 12:57:34Z dts12 $
  */
 #ifndef $name.uc_ACCESS_H
 #define $name.uc_ACCESS_H
@@ -37,7 +37,7 @@ void * ${t}_create_data_context(netsnmp_variable_list *index_data, int column);
 
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.access_functions.conf 11358 2004-10-14 12:57:34Z dts12 $
  */
 
 #include <net-snmp/net-snmp-config.h>
@@ -79,7 +79,7 @@ ${t}_get_first_data_point(void **my_loop_context, void **my_data_context,
     vptr = put_index_data;
     
     @foreach $idx index@
-    snmp_set_var_value(vptr, /** XXX: $idx data */, /** XXX: length of $idx data */);
+    snmp_set_var_value(vptr, (u_char *) /** XXX: $idx data */, /** XXX: length of $idx data */);
     vptr = vptr->next_variable;
     @end@
 
@@ -107,7 +107,7 @@ ${t}_get_next_data_point(void **my_loop_context, void **my_data_context,
     vptr = put_index_data;
     
     @foreach $idx index@
-    snmp_set_var_value(vptr, /** XXX: $idx data */, /** XXX: length of $idx data */);
+    snmp_set_var_value(vptr, (u_char *) /** XXX: $idx data */, /** XXX: length of $idx data */);
     vptr = vptr->next_variable;
     @end@
 
@@ -116,7 +116,7 @@ ${t}_get_next_data_point(void **my_loop_context, void **my_data_context,
 
 /** 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 retrieval and modification during
+ *  and set_XXX functions for data retrival and modification during
  *  this SET request.
  *
  *  The indexes are encoded (in order) into the index_data pointer,
diff --git a/local/mib2c.array-user.conf b/local/mib2c.array-user.conf
index 31559ac..9ad42f7 100644
--- a/local/mib2c.array-user.conf
+++ b/local/mib2c.array-user.conf
@@ -12,7 +12,7 @@
 @eval $hack = "Id"
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.array-user.conf 15997 2007-03-25 22:28:35Z dts12 $
  *
  * $$hack:$
  *
@@ -136,8 +136,8 @@ int ${i}_get_value(netsnmp_request_info *, netsnmp_index *, netsnmp_table_reques
 /*************************************************************
  * oid declarations
  */
-extern const oid ${i}_oid[];
-extern const size_t ${i}_oid_len;
+extern oid ${i}_oid[];
+extern size_t ${i}_oid_len;
 
 #define ${i}_TABLE_OID $i.commaoid
     
@@ -220,7 +220,7 @@ ${i}_context * ${i}_get( const char *name, int len );
 @eval $hack = "Id"@
 /*
  * Note: this file originally auto-generated by mib2c using
- *       $Id$
+ *       $Id: mib2c.array-user.conf 15997 2007-03-25 22:28:35Z dts12 $
  *
  * $$hack:$
  *
@@ -261,8 +261,8 @@ ${i}_context * ${i}_get( const char *name, int len );
 static     netsnmp_handler_registration *my_handler = NULL;
 static     netsnmp_table_array_callbacks cb;
 
-const oid ${i}_oid[] = { ${i}_TABLE_OID };
-const size_t ${i}_oid_len = OID_LENGTH(${i}_oid);
+oid ${i}_oid[] = { ${i}_TABLE_OID };
+size_t ${i}_oid_len = OID_LENGTH(${i}_oid);
 
 
 #ifdef ${i}_CUSTOM_SORT
diff --git a/local/mib2c.check_values.conf b/local/mib2c.check_values.conf
index 259ac1f..f9d8851 100644
--- a/local/mib2c.check_values.conf
+++ b/local/mib2c.check_values.conf
@@ -41,7 +41,7 @@ datatype and value.
 @open ${name}_checkfns.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.check_values.conf 9254 2004-01-12 00:43:46Z rstory $
  */
 
 /********************************************************************
@@ -108,7 +108,7 @@ datatype and value.
             @eval $x = 1@
 	    if (
 	  @else@
-	        &&
+	        ||
           @end@
 	       !(*val >= $min && *val <= $max)
         @end@
diff --git a/local/mib2c.check_values_local.conf b/local/mib2c.check_values_local.conf
index 13c1e60..25e00c9 100644
--- a/local/mib2c.check_values_local.conf
+++ b/local/mib2c.check_values_local.conf
@@ -5,7 +5,7 @@
 @open ${name}_checkfns_local.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        : $Id$
+ *        : $Id: mib2c.check_values_local.conf 10232 2004-05-04 23:35:32Z hardaker $
  * 
  */
 #ifndef $name.uc_CHECKFNS_H
@@ -35,7 +35,7 @@ should NOT be modified.
 @open ${name}_checkfns_local.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.check_values_local.conf 10232 2004-05-04 23:35:32Z hardaker $
  */
 
 /* standard headers */
diff --git a/local/mib2c.column_defines.conf b/local/mib2c.column_defines.conf
index 5b8328f..a4d2e6d 100644
--- a/local/mib2c.column_defines.conf
+++ b/local/mib2c.column_defines.conf
@@ -1,7 +1,7 @@
 @open ${name}_columns.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: mib2c.column_defines.conf 7011 2002-05-08 05:42:47Z hardaker $
  */
 #ifndef $name.uc_COLUMNS_H
 #define $name.uc_COLUMNS_H
diff --git a/local/mib2c.column_enums.conf b/local/mib2c.column_enums.conf
index 4dba4fa..f18230d 100644
--- a/local/mib2c.column_enums.conf
+++ b/local/mib2c.column_enums.conf
@@ -1,7 +1,7 @@
 @open ${name}_enums.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: mib2c.column_enums.conf 12909 2005-09-29 22:16:22Z hardaker $
  */
 #ifndef $name.uc_ENUMS_H
 #define $name.uc_ENUMS_H
diff --git a/local/mib2c.column_storage.conf b/local/mib2c.column_storage.conf
index 9f3ba1f..de4249f 100644
--- a/local/mib2c.column_storage.conf
+++ b/local/mib2c.column_storage.conf
@@ -1,10 +1,10 @@
 #############################################################  -*- c -*-
 ## top level mfd conf file
-## $Id$
+## $Id: mib2c.column_storage.conf 11111 2004-09-21 23:48:45Z rstory $
 ########################################################################
 @   open ${name}_storage.h@
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 11111 $ */
 @end@
 ########################################################################
 ##
@@ -19,5 +19,5 @@
 ##
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 11111 $ */
 @end@
diff --git a/local/mib2c.conf b/local/mib2c.conf
index c71968c..329e71e 100644
--- a/local/mib2c.conf
+++ b/local/mib2c.conf
@@ -5,12 +5,12 @@ code you need to write.  You must pick one depending on your need.
 You requested mib2c to be run on the following part of the MIB tree:
   OID:                       	    $name
   numeric translation:       	    $name.objectID
- at eval $numS = count_scalars@
-  number of scalars within:         $numS
- at eval $numT = count_tables@
-  number of tables within:          $numT
- at eval $numN = count_notifications@
-  number of notifications within:   $numN
+ at eval $num = count_scalars@
+  number of scalars within:         $num
+ at eval $num = count_tables@
+  number of tables within:          $num
+ at eval $num = count_notifications@
+  number of notifications within:   $num
 
 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,32 +31,7 @@ base (which provides a much greater choice of APIs to pick from):
 @elsif $ans != 2@
 Invalid answer.
 @else@
-  @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@
- at if $numS > 0@
+ at if count_scalars() > 0@
 
 **********************************************************************
 		 GENERATING CODE FOR SCALAR OBJECTS:
@@ -88,190 +63,191 @@ Invalid answer
   @end@
 @end@ # scalars
 
- at if $numT > 0@
+ at if count_tables() > 0@
 **********************************************************************
 		     GENERATING CODE FOR TABLES:
 **********************************************************************
 
-  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.
-
-    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.
-
-    There are a number of different code templates that can be used to
-  implement MIB tables, using various approaches to these two tasks.
-
-  There are three basic approaches to identifying the relevant row:
-
-    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 will produce code based on the table_dataset handler.
-
-    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.
-
-         However searching for the requested row is not very efficient,
-       and performance can be slow - particularly for large tables with
-       many rows.
-
-    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).
-
-       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.
-
-    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.
-
- at 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.
- at 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.
+  Your tables will likely either fall into one of two categories:
+
+    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.
+
+    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.
+
+    3) Do not generate code for the tables.
+
+  @prompt $ans Select the option that best fits you: @
+  @if $ans != 3@
+    @if $ans == 1@
+
+      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:
+
+      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)
+
+      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)
+
+      4) Do not generate code for the tables.
+
+      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.
+
+     @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@
     @else@
-       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).
- at 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.
- at 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@
-
-  @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@
+      @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.
+        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@
+ @end@ # != 3
 @end@ # tables
 
- at if $numN > 0@
+ at if count_notifications() > 0@
 **********************************************************************
 		 GENERATING CODE FOR NOTIFICATIONS:
 **********************************************************************
diff --git a/local/mib2c.container.conf b/local/mib2c.container.conf
index e76621f..eb4e4bc 100644
--- a/local/mib2c.container.conf
+++ b/local/mib2c.container.conf
@@ -1,14 +1,11 @@
 ## -*- c -*-
-## Portions of this file ar Copyright (C) Apple, Inc.
-## Use is subject to license terms specified in the COPYING file
-## distributed with the Net-SNMP package.
 ######################################################################
 ## Do the .h file
 ######################################################################
 @open ${name}.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: mib2c.container.conf 15999 2007-03-25 22:32:02Z dts12 $
  */
 #ifndef $name.uc_H
 #define $name.uc_H
@@ -33,21 +30,14 @@ Netsnmp_Node_Handler ${i}_handler;
 @open ${name}.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: mib2c.container.conf 15999 2007-03-25 22:32:02Z 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/agent/net-snmp-agent-includes.h>
-#include <net-snmp/agent/table_container.h>
 #include "${name}.h"
 
-#ifdef ${i.uc}_USE_CACHE
-static void _cache_free(netsnmp_cache * cache, void *magic);
-static int _cache_load(netsnmp_cache * cache, void *vmagic);
-#endif
-
 /** Initializes the $name module */
 void
 init_$name(void)
@@ -57,9 +47,9 @@ init_$name(void)
     initialize_table_$i();
   @end@
 }
-##
+
 @foreach $i table@
-## Determine the first/last column names
+  # Determine the first/last column names
   @eval $first_column = "-"@
   @eval $last_column = "-"@
   @foreach $c column@
@@ -75,18 +65,12 @@ init_$name(void)
 void
 initialize_table_$i(void)
 {
-    const oid ${i}_oid[] = {$i.commaoid};
-    const size_t ${i}_oid_len   = OID_LENGTH(${i}_oid);
-    netsnmp_handler_registration    *reg = NULL;
-    netsnmp_mib_handler             *handler = NULL;
-    netsnmp_container               *container = NULL;
-    netsnmp_table_registration_info *table_info = NULL;
-#ifdef ${i.uc}_USE_CACHE
-    netsnmp_cache  *cache = NULL;
-#endif
+    static oid ${i}_oid[] = {$i.commaoid};
+    size_t ${i}_oid_len   = OID_LENGTH(${i}_oid);
+    netsnmp_handler_registration    *reg;
+    netsnmp_container               *container;
+    netsnmp_table_registration_info *table_info;
 
-    DEBUGMSGTL(("${name}:init", "initializing table $i\n"));
-    
     reg = netsnmp_create_handler_registration(
               "$i",     ${i}_handler,
               ${i}_oid, ${i}_oid_len,
@@ -96,26 +80,9 @@ initialize_table_$i(void)
               HANDLER_CAN_RONLY
 @end@
               );
-    if (NULL == reg) {
-        snmp_log(LOG_ERR,"error creating handler registration for $i\n");
-        goto bail;
-    }
- at if $i.settable@
-    /** should a set on a non-existent row create a new one? */
-    /** reg->modes |= HANDLER_CAN_NOT_CREATE; */
- at end@
-
-    container  = netsnmp_container_find( "$i:table_container" );
-    if (NULL == container) {
-        snmp_log(LOG_ERR,"error creating container for $i\n");
-        goto bail;
-    }
 
+    container  = netsnmp_container_find( "table_container" );
     table_info = SNMP_MALLOC_TYPEDEF( netsnmp_table_registration_info );
-    if (NULL == table_info) {
-        snmp_log(LOG_ERR,"error allocating table registration for $i\n");
-        goto bail;
-    }
     netsnmp_table_helper_add_indexes(table_info,
     @foreach $idx index@
                            $idx.type,  /* index: $idx */
@@ -124,92 +91,13 @@ initialize_table_$i(void)
     table_info->min_column = COLUMN_$first_column.uc;
     table_info->max_column = COLUMN_$last_column.uc;
     
-    /*************************************************
-     *
-     * inject container_table helper
-     */
-    handler = netsnmp_container_table_handler_get(table_info, container,
-                                                  TABLE_CONTAINER_KEY_NETSNMP_INDEX);
-    if (NULL == handler) {
-        snmp_log(LOG_ERR,"error allocating table registration for $i\n");
-        goto bail;
-    }
-    if (SNMPERR_SUCCESS != netsnmp_inject_handler(reg, handler)) {
-        snmp_log(LOG_ERR,"error injecting container_table handler for $i\n");
-        goto bail;
-    }
-    handler = NULL; /* reg has it, will reuse below */
-
-#ifdef ${i.uc}_USE_CACHE
-    /*************************************************
-     *
-     * inject cache helper
-     */
-    cache = netsnmp_cache_create(30,    /* timeout in seconds */
-                                 _cache_load, _cache_free,
-                                 ${i}_oid, ${i}_oid_len);
-
-    if (NULL == cache) {
-        snmp_log(LOG_ERR, "error creating cache for $i\n");
-        goto bail;
-    }
-    cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
-    cache->magic = container;
-
-    handler = netsnmp_cache_handler_get(cache);
-    if (NULL == handler) {
-        snmp_log(LOG_ERR, "error creating cache handler for $i\n");
-        goto bail;
-    }
-
-    if (SNMPERR_SUCCESS != netsnmp_inject_handler(reg, handler)) {
-        snmp_log(LOG_ERR,"error injecting cache handler for $i\n");
-        goto bail;
-    }
-    handler = NULL; /* reg has it*/
-#endif
+    netsnmp_container_table_register( reg, table_info, container, 0 );
 
-    /*
-     * register the table
-     */
-    if (SNMPERR_SUCCESS != netsnmp_register_table(reg, table_info)) {
-        snmp_log(LOG_ERR,"error registering table handler for $i\n");
-        reg = NULL; /* it was freed inside netsnmp_register_table */
-        goto bail;
-    }
-
-    /*
-     * Initialise the contents of the table here
-     */
-
-    
-    return; /* ok */
-
-    /*
-     * Some error occurred during registration. Clean up and bail.
-     */
-  bail: /* not ok */
-    
-    if (handler)
-        netsnmp_handler_free(handler);
-
-#ifdef ${i.uc}_USE_CACHE
-    if (cache)
-        netsnmp_cache_free(cache);
-#endif
-    
-    if (table_info)
-        netsnmp_table_registration_info_free(table_info);
-
-    if (container)
-        CONTAINER_FREE(container);
-
-    if (reg) 
-        netsnmp_handler_registration_free(reg);
+    /* Initialise the contents of the table here */
 }
 
-/** Typical data structure for a row entry */
-typedef struct ${i}_entry_s {
+    /* Typical data structure for a row entry */
+struct ${i}_entry {
     netsnmp_index oid_index;
 
     /* Index values */
@@ -245,10 +133,10 @@ typedef struct ${i}_entry_s {
     @end@
 
     int   valid;
-} ${i}_entry;
+};
 
-/** create a new row in the table */
-${i}_entry *
+/* create a new row in the table */
+struct ${i}_entry *
 ${i}_createEntry(netsnmp_container *container, 
   @foreach $idx index@
     @if $idx.needlength@
@@ -259,9 +147,9 @@ ${i}_createEntry(netsnmp_container *container,
     @end@
   @end@
                 ) {
-    ${i}_entry *entry;
+    struct ${i}_entry *entry;
 
-    entry = SNMP_MALLOC_TYPEDEF(${i}_entry);
+    entry = SNMP_MALLOC_TYPEDEF(struct ${i}_entry);
     if (!entry)
         return NULL;
 
@@ -279,10 +167,10 @@ ${i}_createEntry(netsnmp_container *container,
     return entry;
 }
 
-/** remove a row from the table */
+/* remove a row from the table */
 void
 ${i}_removeEntry(netsnmp_container *container, 
-                 ${i}_entry *entry) {
+                 struct ${i}_entry *entry) {
 
     if (!entry)
         return;    /* Nothing to remove */
@@ -291,15 +179,6 @@ ${i}_removeEntry(netsnmp_container *container,
         SNMP_FREE( entry );   /* XXX - release any other internal resources */
 }
 
-/** remove a row from the table */
-void
-${i}_freeEntry(${i}_entry *entry) {
-
-    if (!entry)
-        return;    /* Nothing to remove */
-    SNMP_FREE( entry );   /* XXX - release any other internal resources */
-}
-
 /** handles requests for the $i table */
 int
 ${i}_handler(
@@ -310,13 +189,10 @@ ${i}_handler(
 
     netsnmp_request_info       *request;
     netsnmp_table_request_info *table_info;
+    netsnmp_table_data         *table_data;
     netsnmp_container          *container;
-    ${i}_entry                 *table_entry;
- at if $i.settable@
+    struct ${i}_entry          *table_entry;
     int                         ret;
- at end@
-
-    DEBUGMSGTL(("${name}:handler", "Processing request (%d)\n", reqinfo->mode));
 
     switch (reqinfo->mode) {
         /*
@@ -324,18 +200,9 @@ ${i}_handler(
          */
     case MODE_GET:
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-               continue;
-            table_entry = (${i}_entry *)
+            table_entry = (struct ${i}_entry *)
                               netsnmp_container_table_extract_context(request);
             table_info  =     netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR,
-                         "could not extract table entry or info for $i\n");
-                snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR,
-                                         NULL, 0);
-                continue;
-            }
     
             switch (table_info->colnum) {
             @foreach $c column@
@@ -348,7 +215,7 @@ ${i}_handler(
                 }
             @if $c.needlength@
                 snmp_set_var_typed_value( request->requestvb, $c.type,
-                                          table_entry->$c,
+                                 (u_char*)table_entry->$c,
                                           table_entry->${c}_len);
             @else@
                 snmp_set_var_typed_integer( request->requestvb, $c.type,
@@ -371,18 +238,9 @@ ${i}_handler(
          */
     case MODE_SET_RESERVE1:
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-               continue;
-            table_entry = (${i}_entry *)
+            table_entry = (struct ${i}_entry *)
                               netsnmp_container_table_extract_context(request);
             table_info  =     netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR,
-                         "could not extract table entry or info for $i\n");
-                snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR,
-                                         NULL, 0);
-                continue;
-            }
     
             switch (table_info->colnum) {
             @foreach $c column@
@@ -393,7 +251,7 @@ ${i}_handler(
                          (table_entry ? RS_ACTIVE : RS_NONEXISTENT ));
             @else@
             @if $c.needlength@
-	        /* or possibly 'netsnmp_check_vb_type_and_size' */
+	        /* or possiblc 'netsnmp_check_vb_type_and_size' */
                 ret = netsnmp_check_vb_type_and_max_size(
                           request->requestvb, $c.type, sizeof(table_entry->$c));
             @else@
@@ -419,18 +277,10 @@ ${i}_handler(
     case MODE_SET_RESERVE2:
 @if $i.creatable@
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-               continue;
-            table_entry = (${i}_entry *)
+            container   =     netsnmp_container_table_extract(request);
+            table_entry = (struct ${i}_entry *)
                               netsnmp_container_table_extract_context(request);
             table_info  =     netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR,
-                         "could not extract table entry or info for $i\n");
-                snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR,
-                                         NULL, 0);
-                continue;
-            }
     
             switch (table_info->colnum) {
 @if $i.rowstatus@
@@ -440,14 +290,6 @@ ${i}_handler(
                 switch (*request->requestvb->val.integer) {
                 case RS_CREATEANDGO:
                 case RS_CREATEANDWAIT:
-                    container   =     netsnmp_container_table_extract(request);
-                    if (NULL == container) {
-                        snmp_log(LOG_ERR,
-                                 "could not extract table container for $i\n");
-                        snmp_set_var_typed_value(request->requestvb,
-                                                 SNMP_ERR_GENERR, NULL, 0);
-                        continue;
-                    }
                     table_entry = ${i}_createEntry(container
   @foreach $idx index@
     @if $idx.needlength@
@@ -475,14 +317,6 @@ ${i}_handler(
             @end@
             @end@
                 if ( !table_entry ) {
-                    container   =     netsnmp_container_table_extract(request);
-                    if (NULL == container) {
-                        snmp_log(LOG_ERR,
-                                 "could not extract table container for $i\n");
-                        snmp_set_var_typed_value(request->requestvb,
-                                                 SNMP_ERR_GENERR, NULL, 0);
-                        continue;
-                    }
                     table_entry = ${i}_createEntry(container
   @foreach $idx index@
     @if $idx.needlength@
@@ -511,26 +345,10 @@ ${i}_handler(
     case MODE_SET_FREE:
 @if $i.creatable@
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-               continue;
             container   =     netsnmp_container_table_extract(request);
-            if (NULL == container) {
-                snmp_log(LOG_ERR,
-                         "could not extract table container for $i\n");
-                snmp_set_var_typed_value(request->requestvb,
-                                         SNMP_ERR_GENERR, NULL, 0);
-                continue;
-            }
-            table_entry = (${i}_entry *)
+            table_entry = (struct ${i}_entry *)
                               netsnmp_container_table_extract_context(request);
             table_info  =     netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR,
-                         "could not extract table entry or info for $i\n");
-                snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR,
-                                         NULL, 0);
-                continue;
-            }
     
             switch (table_info->colnum) {
 @if $i.rowstatus@
@@ -564,18 +382,9 @@ ${i}_handler(
 
     case MODE_SET_ACTION:
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-               continue;
-            table_entry = (${i}_entry *)
+            table_entry = (struct ${i}_entry *)
                               netsnmp_container_table_extract_context(request);
             table_info  =     netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR,
-                         "could not extract table entry or info for $i\n");
-                snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR,
-                                         NULL, 0);
-                continue;
-            }
     
             switch (table_info->colnum) {
             @foreach $c column@
@@ -608,18 +417,9 @@ ${i}_handler(
 @if $i.rowstatus@
         /* Check the internal consistency of an active row */
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-               continue;
-            table_entry = (${i}_entry *)
+            table_entry = (struct ${i}_entry *)
                               netsnmp_container_table_extract_context(request);
             table_info  =     netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR,
-                         "could not extract table entry or info for $i\n");
-                snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR,
-                                         NULL, 0);
-                continue;
-            }
     
             switch (table_info->colnum) {
             @foreach $c column@
@@ -643,26 +443,10 @@ ${i}_handler(
 
     case MODE_SET_UNDO:
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-               continue;
             container   =     netsnmp_container_table_extract(request);
-            if (NULL == container) {
-                snmp_log(LOG_ERR,
-                         "could not extract table container for $i\n");
-                snmp_set_var_typed_value(request->requestvb,
-                                         SNMP_ERR_GENERR, NULL, 0);
-                continue;
-            }
-            table_entry = (${i}_entry *)
+            table_entry = (struct ${i}_entry *)
                               netsnmp_container_table_extract_context(request);
             table_info  =     netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR,
-                         "could not extract table entry or info for $i\n");
-                snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR,
-                                         NULL, 0);
-                continue;
-            }
     
             switch (table_info->colnum) {
             @foreach $c column@
@@ -734,18 +518,10 @@ ${i}_handler(
     case MODE_SET_COMMIT:
 @if $i.creatable@
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-               continue;
-            table_entry = (${i}_entry *)
+            container   =     netsnmp_container_table_extract(request);
+            table_entry = (struct ${i}_entry *)
                               netsnmp_container_table_extract_context(request);
             table_info  =     netsnmp_extract_table_info(request);
-            if ((NULL == table_entry) || (NULL == table_info)) {
-                snmp_log(LOG_ERR,
-                         "could not extract table entry or info for $i\n");
-                snmp_set_var_typed_value(request->requestvb, SNMP_ERR_GENERR,
-                                         NULL, 0);
-                continue;
-            }
     
             switch (table_info->colnum) {
 @if $i.rowstatus@
@@ -768,14 +544,6 @@ ${i}_handler(
                     break;
 
                 case RS_DESTROY:
-                    container = netsnmp_container_table_extract(request);
-                    if (NULL == container) {
-                        snmp_log(LOG_ERR,
-                                 "could not extract table container for $i\n");
-                        snmp_set_var_typed_value(request->requestvb,
-                                                 SNMP_ERR_GENERR, NULL, 0);
-                        continue;
-                    }
                     ${i}_removeEntry(container, table_entry );
                 }
             @end@
@@ -798,67 +566,4 @@ ${i}_handler(
     }
     return SNMP_ERR_NOERROR;
 }
-
-#ifdef ${i.uc}_USE_CACHE
-/**
- * @internal
- */
-static int
-_cache_load(netsnmp_cache * cache, void *vmagic)
-{
-    netsnmp_container *container;
-    
-    DEBUGMSGTL(("internal:${i}:_cache_load", "called\n"));
-
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR, "invalid cache for ${i}_cache_load\n");
-        return -1;
-    }
-    container = (netsnmp_container *)cache->magic;
-
-    /** should only be called for an invalid or expired cache */
-    netsnmp_assert((0 == cache->valid) || (1 == cache->expired));
-
-    /*
-     * load cache here (or call function to do it)
-     */
-    /** CONTAINER_INSERT(container, record); */
-
-    return 0;
-}                               /* _cache_load */
-
-/**
- * @Internal
- */
-/** remove a row from the table */
-static void
-${i}_freeEntry_cb(${i}_entry *entry, void *magic) {
-
-    ${i}_freeEntry(entry);
-}
-
-/**
- * @internal
- */
-static void
-_cache_free(netsnmp_cache * cache, void *magic)
-{
-    netsnmp_container *container;
-
-    DEBUGMSGTL(("internal:${i}:_cache_free", "called\n"));
-
-    if ((NULL == cache) || (NULL == cache->magic)) {
-        snmp_log(LOG_ERR, "invalid cache in ${i}_cache_free\n");
-        return;
-    }
-    container = (netsnmp_container *) cache->magic;
-
-    /*
-     * empty (but don't free) cache here
-     */
-    CONTAINER_CLEAR(container,
-                    (netsnmp_container_obj_func*)${i}_freeEntry_cb,
-                    NULL);
-}                               /* _cache_free */
-#endif /* ${i.uc}_USE_CACHE */
 @end@
diff --git a/local/mib2c.create-dataset.conf b/local/mib2c.create-dataset.conf
index 9cf75fd..f47b9f0 100644
--- a/local/mib2c.create-dataset.conf
+++ b/local/mib2c.create-dataset.conf
@@ -5,7 +5,7 @@
 @open ${name}.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: mib2c.create-dataset.conf 9375 2004-02-02 19:06:54Z rstory $
  */
 #ifndef $name.uc_H
 #define $name.uc_H
@@ -30,7 +30,7 @@ Netsnmp_Node_Handler ${i}_handler;
 @open ${name}.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.create-dataset.conf 9375 2004-02-02 19:06:54Z rstory $
  */
 
 #include <net-snmp/net-snmp-config.h>
@@ -43,7 +43,8 @@ Netsnmp_Node_Handler ${i}_handler;
 void
 initialize_table_$i(void)
 {
-    const oid ${i}_oid[] = {$i.commaoid};
+    static oid ${i}_oid[] = {$i.commaoid};
+    size_t ${i}_oid_len = OID_LENGTH(${i}_oid);
     netsnmp_table_data_set *table_set;
 
     /* create the table structure itself */
@@ -77,7 +78,7 @@ initialize_table_$i(void)
        of the request, change ${i}_handler to "NULL" */
     netsnmp_register_table_data_set(netsnmp_create_handler_registration("$i", ${i}_handler,
                                                         ${i}_oid,
-                                                        OID_LENGTH(${i}_oid),
+                                                        ${i}_oid_len,
                                                         HANDLER_CAN_RWRITE),
                             table_set, NULL);
 }
diff --git a/local/mib2c.emulation.conf b/local/mib2c.emulation.conf
index 20d2e7b..c879d0d 100644
--- a/local/mib2c.emulation.conf
+++ b/local/mib2c.emulation.conf
@@ -6,7 +6,7 @@
 ##          provide basic/simplistic emulation for a particular MIB.
 ##
 ## 
-## $Id$
+## $Id: mib2c.emulation.conf 14860 2006-07-05 22:44:06Z rstory $
 ######################################################################
 @open ${name}-emulation.conf@
 #
diff --git a/local/mib2c.int_watch.conf b/local/mib2c.int_watch.conf
index ecc5d10..5804a74 100644
--- a/local/mib2c.int_watch.conf
+++ b/local/mib2c.int_watch.conf
@@ -7,7 +7,7 @@
 @open ${name}.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.int_watch.conf 13957 2005-12-20 15:33:08Z tanders $
  */
 #ifndef $name.uc_H
 #define $name.uc_H
@@ -22,7 +22,7 @@ void init_$name(void);
 @open ${name}.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.int_watch.conf 13957 2005-12-20 15:33:08Z tanders $
  */
 
 #include <net-snmp/net-snmp-config.h>
@@ -50,12 +50,12 @@ void
 init_${name}(void)
 {
   netsnmp_handler_registration *reg;
+  netsnmp_watcher_info         *winfo;
 
   @foreach $i scalar@
     @if !$i.needlength@
-    const oid ${i}_oid[] = { $i.commaoid };
+    static oid ${i}_oid[] = { $i.commaoid };
     @end@
-  static netsnmp_watcher_info ${i}_winfo;
   @end@
 
   /*
@@ -92,9 +92,10 @@ init_${name}(void)
     @else@
               HANDLER_CAN_RONLY);
     @end@
-    netsnmp_init_watcher_info(&${i}_winfo, &$i, sizeof($i.decl),
-			      $i.type, WATCHER_FIXED_SIZE);
-if (netsnmp_register_watched_scalar( reg, &${i}_winfo ) < 0 ) {
+    winfo = netsnmp_create_watcher_info(
+                &$i, sizeof($i.decl),
+                 $i.type, WATCHER_FIXED_SIZE);
+    if (netsnmp_register_watched_scalar( reg, winfo ) < 0 ) {
         snmp_log( LOG_ERR, "Failed to register watched $i" );
     }
 
diff --git a/local/mib2c.iterate.conf b/local/mib2c.iterate.conf
index 3a2b5f7..774ae22 100644
--- a/local/mib2c.iterate.conf
+++ b/local/mib2c.iterate.conf
@@ -1,45 +1,11 @@
 ## -*- c -*-
-#
- at if "$cache" eq "" @
- at 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@
- at else@       #  -S cache={something}
-    @if "$cache" ne "1" && "$cache" ne "0" @
- at open -@
-Invalid value for 'cache' ($cache) - generating caching code
-      @eval $cache = 1@
-    @end@
- at end@
-
 ######################################################################
 ## Do the .h file
 ######################################################################
 @open ${name}.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: mib2c.iterate.conf 17821 2009-11-11 09:00:00Z dts12 $
  */
 #ifndef $name.uc_H
 #define $name.uc_H
@@ -51,7 +17,7 @@ void initialize_table_$i(void);
 Netsnmp_Node_Handler ${i}_handler;
 Netsnmp_First_Data_Point  ${i}_get_first_data_point;
 Netsnmp_Next_Data_Point   ${i}_get_next_data_point;
- at if "$cache" == 1 @
+ at if "$cache" ne "" @
 NetsnmpCacheLoad ${i}_load;
 NetsnmpCacheFree ${i}_free;
 #define $i.uc_TIMEOUT  60
@@ -71,7 +37,7 @@ NetsnmpCacheFree ${i}_free;
 @open ${name}.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: mib2c.iterate.conf 17821 2009-11-11 09:00:00Z dts12 $
  */
 
 #include <net-snmp/net-snmp-config.h>
@@ -106,14 +72,12 @@ init_$name(void)
 void
 initialize_table_$i(void)
 {
-    const oid ${i}_oid[] = {$i.commaoid};
-    const size_t ${i}_oid_len   = OID_LENGTH(${i}_oid);
+    static oid ${i}_oid[] = {$i.commaoid};
+    size_t ${i}_oid_len   = OID_LENGTH(${i}_oid);
     netsnmp_handler_registration    *reg;
     netsnmp_iterator_info           *iinfo;
     netsnmp_table_registration_info *table_info;
 
-    DEBUGMSGTL(("${name}:init", "initializing table $i\n"));
-
     reg = netsnmp_create_handler_registration(
               "$i",     ${i}_handler,
               ${i}_oid, ${i}_oid_len,
@@ -139,7 +103,7 @@ initialize_table_$i(void)
     iinfo->table_reginfo        = table_info;
     
     netsnmp_register_table_iterator( reg, iinfo );
- at if "$cache" == 1 @
+ at if "$cache" ne "" @
     netsnmp_inject_handler_before( reg, 
         netsnmp_get_cache_handler($i.uc_TIMEOUT,
                                   ${i}_load, ${i}_free,
@@ -247,7 +211,7 @@ ${i}_removeEntry( struct ${i}_entry *entry ) {
     SNMP_FREE( entry );   /* XXX - release any other internal resources */
 }
 
- at if "$cache" == 1 @
+ at if "$cache" ne "" @
 /* Example cache handling - set up linked list from a suitable file */
 int
 ${i}_load( netsnmp_cache *cache, void *vmagic ) {
@@ -255,23 +219,13 @@ ${i}_load( netsnmp_cache *cache, void *vmagic ) {
     struct ${i}_entry *this;
     char buf[STRMAX];
 
-    /* The basic load routine template assumes that the data to
-       be reported is held in a file - with one row of the file
-       for each row of the table.
-          If your data is available via a different API, you
-       should amend this initial block (and the control of the
-       'while' loop) accordingly.
-          'XXX' marks where the template is incomplete and
-       code will definitely need to be added. */
-
     fp = fopen( "/data/for/${i}", "r" );
     if ( !fp ) {
         return -1;
     }
     while ( fgets( buf, STRMAX, fp )) {
         this = SNMP_MALLOC_TYPEDEF( struct ${i}_entry );
-        /* XXX - Unpick 'buf' to extract the individual field values
-                 and then populate the 'this' data structure with them */
+        /* Unpick 'buf' and populate 'this' */
 
         this->next = ${i}_head;
         ${i}_head = this;    /* Iterate helper is fine with unordered lists! */
@@ -343,8 +297,6 @@ ${i}_handler(
     netsnmp_table_request_info *table_info;
     struct ${i}_entry          *table_entry;
 
-    DEBUGMSGTL(("${name}:handler", "Processing request (%d)\n", reqinfo->mode));
-
     switch (reqinfo->mode) {
         /*
          * Read-support (also covers GetNext requests)
@@ -366,7 +318,7 @@ ${i}_handler(
                 }
             @if $c.needlength@
                 snmp_set_var_typed_value( request->requestvb, $c.type,
-                                          table_entry->$c,
+                                 (u_char*)table_entry->$c,
                                           table_entry->${c}_len);
             @else@
                 snmp_set_var_typed_integer( request->requestvb, $c.type,
@@ -402,7 +354,7 @@ ${i}_handler(
                          (table_entry ? RS_ACTIVE : RS_NONEXISTENT ));
             @else@
             @if $c.needlength@
-	        /* or possibly 'netsnmp_check_vb_type_and_size' */
+	        /* or possiblc 'netsnmp_check_vb_type_and_size' */
                 ret = netsnmp_check_vb_type_and_max_size(
                           request->requestvb, $c.type, sizeof(table_entry->$c));
             @else@
diff --git a/local/mib2c.iterate_access.conf b/local/mib2c.iterate_access.conf
index c211fd3..a7e0f32 100644
--- a/local/mib2c.iterate_access.conf
+++ b/local/mib2c.iterate_access.conf
@@ -5,7 +5,7 @@
 @open ${name}.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.iterate_access.conf 17483 2009-04-09 08:54:46Z dts12 $
  */
 #ifndef $name.uc_H
 #define $name.uc_H
@@ -39,7 +39,7 @@ Netsnmp_Node_Handler ${i}_handler;
 @open ${name}.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.iterate_access.conf 17483 2009-04-09 08:54:46Z dts12 $
  */
 
 #include <net-snmp/net-snmp-config.h>
@@ -77,13 +77,11 @@ ${name}_free_undoInfo(void *vptr) {
 void
 initialize_table_$i(void)
 {
-    const oid ${i}_oid[] = {$i.commaoid};
+    static oid ${i}_oid[] = {$i.commaoid};
     netsnmp_table_registration_info *table_info;
     netsnmp_handler_registration *my_handler;
     netsnmp_iterator_info *iinfo;
 
-    DEBUGMSGTL(("${name}:init", "initializing table $i\n"));
-
     /** create the table registration information structures */
     table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
     iinfo = SNMP_MALLOC_TYPEDEF(netsnmp_iterator_info);
@@ -114,7 +112,7 @@ initialize_table_$i(void)
                              0);
 
     /** Define the minimum and maximum accessible columns.  This
-        optimizes retrieval. */
+        optimizes retrival. */
     @eval $minv = 0xffffffff@
     @eval $maxv = 0@
     @foreach $c column@
@@ -179,14 +177,14 @@ ${i}_handler(
 
     void *data_context = NULL;
 
+    oid *suffix;
+    size_t suffix_len;
+
     /** column and row index encoded portion */
-    const oid * const suffix =
-        requests->requestvb->name + reginfo->rootoid_len + 1;
-    const size_t suffix_len = requests->requestvb->name_length -
+    suffix = requests->requestvb->name + reginfo->rootoid_len + 1;
+    suffix_len = requests->requestvb->name_length -
         (reginfo->rootoid_len + 1);
     
-    DEBUGMSGTL(("${name}:handler", "Processing request (%d)\n", reqinfo->mode));
-
     for(request = requests; request; request = request->next) {
         var = request->requestvb;
         if (request->processed != 0)
@@ -244,8 +242,8 @@ ${i}_handler(
                                 retval = get_$c(data_context, &retval_len);
                                 if (retval)
                                     snmp_set_var_typed_value(var, $c.type,
-                                                             retval,
-                                                             retval_len);
+                                                         (const u_char *) retval,
+                                                         retval_len);
                             }
                         break;
 
@@ -293,7 +291,8 @@ ${i}_handler(
                                     ui = SNMP_MALLOC_STRUCT(undoInfo);
                                     ui->len = retval_len;
                                     memdup((u_char **) &ui->ptr,
-                                           retval, ui->len);
+                                           (u_char *) retval,
+                                           ui->len);
                                 }
 
                     /** check the new value, possibly against the
diff --git a/local/mib2c.mfd.conf b/local/mib2c.mfd.conf
index d309ea5..ba1dc26 100644
--- a/local/mib2c.mfd.conf
+++ b/local/mib2c.mfd.conf
@@ -1,9 +1,9 @@
 #############################################################  -*- c -*-
 ## top level mfd conf file
-## $Id$
+## $Id: mib2c.mfd.conf 15885 2007-02-26 11:30:36Z dts12 $
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** START code generated by $RCSfile$ $Revision$ */
+/** START code generated by $RCSfile$ $Revision: 15885 $ */
 @end@
 ########################################################################
 ##
@@ -28,5 +28,5 @@
 @run mfd-top.m2c@
 ########################################################################
 @if $m2c_mark_boundary == 1@
-/** END code generated by $RCSfile$ $Revision$ */
+/** END code generated by $RCSfile$ $Revision: 15885 $ */
 @end@
diff --git a/local/mib2c.notify.conf b/local/mib2c.notify.conf
index 77f3330..d93963c 100644
--- a/local/mib2c.notify.conf
+++ b/local/mib2c.notify.conf
@@ -5,7 +5,7 @@
 @open ${name}.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.notify.conf 10110 2004-04-15 12:29:19Z dts12 $
  */
 #ifndef $name.uc_H
 #define $name.uc_H
@@ -22,7 +22,7 @@ int send_${i}_trap(void);
 @open ${name}.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.notify.conf 10110 2004-04-15 12:29:19Z dts12 $
  */
 
 #include <net-snmp/net-snmp-config.h>
@@ -30,21 +30,20 @@ int send_${i}_trap(void);
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "${name}.h"
 
-extern const oid snmptrap_oid[];
-extern const size_t snmptrap_oid_len;
+static oid snmptrap_oid[] = {1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0};
 
 @foreach $i notifications@
 int
 send_${i}_trap( void )
 {
     netsnmp_variable_list  *var_list = NULL;
-    const oid ${i}_oid[] = { $i.commaoid };
+    oid ${i}_oid[] = { $i.commaoid };
     @foreach $v varbinds@
     @if $v.isscalar@
-    const oid ${v}_oid[] = { $v.commaoid, 0 };
+    oid ${v}_oid[] = { $v.commaoid, 0 };
     @end@
     @if !$v.isscalar@
-    const oid ${v}_oid[] = { $v.commaoid, /* insert index here */ };
+    oid ${v}_oid[] = { $v.commaoid, /* insert index here */ };
     @end@
     @end@
 
@@ -52,7 +51,7 @@ send_${i}_trap( void )
      * Set the snmpTrapOid.0 value
      */
     snmp_varlist_add_variable(&var_list,
-        snmptrap_oid, snmptrap_oid_len,
+        snmptrap_oid, OID_LENGTH(snmptrap_oid),
         ASN_OBJECT_ID,
         ${i}_oid, sizeof(${i}_oid));
     
diff --git a/local/mib2c.old-api.conf b/local/mib2c.old-api.conf
index 8fa270b..4ee924d 100644
--- a/local/mib2c.old-api.conf
+++ b/local/mib2c.old-api.conf
@@ -5,7 +5,7 @@
 @open ${name}.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.old-api.conf 17851 2009-11-30 16:46:06Z dts12 $
  */
 #ifndef $name.uc_H
 #define $name.uc_H
@@ -36,7 +36,7 @@ FindVarMethod var_${i};
 @open ${name}.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.old-api.conf 17851 2009-11-30 16:46:06Z dts12 $
  */
 
 #include <net-snmp/net-snmp-config.h>
@@ -69,12 +69,10 @@ struct variable4 ${name}_variables[] = {
     @eval $suffixlen = $i.oidlength - $name.oidlength@
 #define $i.uc		$magic
     @if $i.settable@
-{$i.uc,  $i.type,  NETSNMP_OLDAPI_RWRITE,
- var_${name}, $suffixlen,  { $suffix }},
+{$i.uc,  $i.type,  RWRITE,  var_${name}, $suffixlen,  { $suffix }},
     @end@
     @if !$i.settable@
-{$i.uc,  $i.type,  NETSNMP_OLDAPI_RONLY,
- var_${name}, $suffixlen,  { $suffix }},
+{$i.uc,  $i.type,  RONLY ,  var_${name}, $suffixlen,  { $suffix }},
     @end@
 @end@
 
@@ -93,12 +91,10 @@ struct variable4 ${name}_variables[] = {
     @eval $magic = $magic + 1@
 #define $c.uc		$magic
     @if $c.settable@
-{$c.uc,  $c.type,  NETSNMP_OLDAPI_RWRITE,
- var_${i}, $suffixlen,  { $suffix $ctmp 1, $c.subid }},
+{$c.uc,  $c.type,  RWRITE,  var_${i}, $suffixlen,  { $suffix $ctmp 1, $c.subid }},
     @end@
     @if !$c.settable@
-{$c.uc,  $c.type,  NETSNMP_OLDAPI_RONLY,
- var_${i}, $suffixlen,  { $suffix $ctmp 1, $c.subid }},
+{$c.uc,  $c.type,  RONLY,   var_${i}, $suffixlen,  { $suffix $ctmp 1, $c.subid }},
     @end@
  @end@
 @end@
diff --git a/local/mib2c.raw-table.conf b/local/mib2c.raw-table.conf
deleted file mode 100644
index bd88fdb..0000000
--- a/local/mib2c.raw-table.conf
+++ /dev/null
@@ -1,612 +0,0 @@
-## -*- c -*-
-######################################################################
-## Do the .h file
-######################################################################
- at open ${name}.h@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  $Id: mib2c.raw-table.conf 17436 2009-03-31 15:12:19Z dts12 $
- */
-#ifndef $name.uc_H
-#define $name.uc_H
-
-void init_$name(void);
-
-#endif /* $name.uc_H */
-######################################################################
-## Do the .c file
-######################################################################
- at open ${name}.c@
-/*
- * Note: this file originally auto-generated by mib2c using
- *  $Id: mib2c.raw-table.conf 17436 2009-03-31 15:12:19Z 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 "${name}.h"
-
- at foreach $i table@
-  ## Determine the first/last column names
-  @eval $first_column = "-"@
-  @eval $last_column = "-"@
-  @foreach $c column@
-    @if $c.readable@
-      @if "$first_column" eq "-"@
-        @eval $first_column = $c@
-      @end@
-      @eval $last_column = $c@
-    @end@
-  @end@
-
-/* column number definitions for table $i */
-  @foreach $c column@
-#define COLUMN_$c.uc		$c.subid
-  @end@
-
-    /* Typical data structure for a row entry */
-struct ${i}_entry {
-    /* Index values */
-    @foreach $idx index@
-     @if $idx.needlength@
-    $idx.decl $idx[NNN];
-    size_t ${idx}_len;
-     @else@
-    $idx.decl $idx;
-     @end@
-    @end@
-
-    /* Column values */
-    @foreach $c nonindex@
-    @if $c.readable@
-     @if $c.needlength@
-    $c.decl $c[NNN];
-    size_t ${c}_len;
-     @else@
-    $c.decl $c;
-     @end@
-     @if $c.settable@
-      @if !$c.rowstatus@
-       @if $c.needlength@
-    $c.decl old_$c[NNN];
-    size_t old_${c}_len;
-       @else@
-    $c.decl old_$c;
-       @end@
-      @end@
-     @end@
-    @end@
-    @end@
-
-    int   valid;
-};
-
-/* create a new row in the table */
-static struct ${i}_entry *
-${i}_createEntry( int dummy
-  @foreach $idx index@
-    @if $idx.needlength@
-                 , $idx.decl* $idx
-                 , size_t ${idx}_len
-    @else@
-                 , $idx.decl  $idx
-    @end@
-  @end@
-                ) {
-    struct ${i}_entry *entry;
-
-    entry = SNMP_MALLOC_TYPEDEF(struct ${i}_entry);
-    if (!entry)
-        return NULL;
-
-    /* XXX - insert entry into local data structure */
-    return entry;
-}
-
-/* remove a row from the table */
-static void
-${i}_removeEntry(struct ${i}_entry *entry) {
-    if (!entry)
-        return;    /* Nothing to remove */
-
-    /* XXX - remove entry from local data structure */
-
-    if (entry)
-        SNMP_FREE( entry );   /* XXX - release any other internal resources */
-}
-
-
-/** determine the appropriate row for an exact request */
-static struct ${i}_entry *
-${i}_get_entry( netsnmp_variable_list *indexes ) {
-    struct ${i}_entry *row = NULL;
-
-    /* XXX - Use the 'indexes' parameter to retrieve the data
-       structure for the requested row, and return this. */
-    return row;
-}
-
-/** determine the appropriate row for an fuzzy request */
-static struct ${i}_entry *
-${i}_get_next_entry( netsnmp_handler_registration *reginfo,
-                     netsnmp_request_info         *request,
-                     int                           column,
-                     netsnmp_variable_list        *indexes ) {
-    struct ${i}_entry *row = NULL;
-    oid             build_space[MAX_OID_LEN];
-    size_t          build_space_len = 0;
-    size_t          index_oid_len = 0;
-
-    /* XXX - Use the 'indexes' parameter to identify the
-             next row in the table.... */
-
-    /* XXX   .... update the 'indexes' parameter with the
-             appropriate index values ... */
-
-    /* ... and update the requested OID to match this instance */
-    memcpy(build_space, reginfo->rootoid,   /* registered oid */
-                        reginfo->rootoid_len * sizeof(oid));
-    build_space_len = reginfo->rootoid_len;
-    build_space[build_space_len++] = 1;  /* entry */
-    build_space[build_space_len++] = column; /* column */
-    build_oid_noalloc(build_space + build_space_len,
-                      MAX_OID_LEN - build_space_len, &index_oid_len,
-                      NULL, 0, indexes);
-    snmp_set_var_objid(request->requestvb, build_space,
-                       build_space_len + index_oid_len);
-
-    /*  Finally, return the data structure for this row */
-    return row;
-}
-
-
-/** handles requests for the $i table */
-static int
-${i}_handler(
-    netsnmp_mib_handler               *handler,
-    netsnmp_handler_registration      *reginfo,
-    netsnmp_agent_request_info        *reqinfo,
-    netsnmp_request_info              *requests) {
-
-    netsnmp_request_info       *request;
-    netsnmp_table_request_info *table_info;
-    struct ${i}_entry          *table_entry;
-    @if $i.settable@
-    int                         ret;
-    @end@
-
-    switch (reqinfo->mode) {
-        /*
-         * Read-support
-         */
-    case MODE_GET:
-        for (request=requests; request; request=request->next) {
-            table_info  =     netsnmp_extract_table_info( request);
-            table_entry =     ${i}_get_entry( table_info->indexes );
-    
-            switch (table_info->colnum) {
-            @foreach $c column@
-            @if $c.readable@
-            case COLUMN_$c.uc:
-                if ( !table_entry ) {
-                    netsnmp_set_request_error(reqinfo, request,
-                                              SNMP_NOSUCHINSTANCE);
-                    continue;
-                }
-            @if $c.needlength@
-                snmp_set_var_typed_value( request->requestvb, $c.type,
-                                          table_entry->$c,
-                                          table_entry->${c}_len);
-            @else@
-                snmp_set_var_typed_integer( request->requestvb, $c.type,
-                                            table_entry->$c);
-            @end@
-                break;
-            @end@
-            @end@
-            default:
-                netsnmp_set_request_error(reqinfo, request,
-                                          SNMP_NOSUCHOBJECT);
-                break;
-            }
-        }
-        break;
-
-    case MODE_GETNEXT:
-        for (request=requests; request; request=request->next) {
-            table_info  =     netsnmp_extract_table_info( request);
-            table_entry =     ${i}_get_next_entry( reginfo, request,
-                                   table_info->colnum, table_info->indexes );
-    
-            switch (table_info->colnum) {
-            @foreach $c column@
-            @if $c.readable@
-            case COLUMN_$c.uc:
-                if ( !table_entry ) {
-                    netsnmp_set_request_error(reqinfo, request,
-                                              SNMP_NOSUCHINSTANCE);
-                    continue;
-                }
-            @if $c.needlength@
-                snmp_set_var_typed_value( request->requestvb, $c.type,
-                                          table_entry->$c,
-                                          table_entry->${c}_len);
-            @else@
-                snmp_set_var_typed_integer( request->requestvb, $c.type,
-                                            table_entry->$c);
-            @end@
-                break;
-            @end@
-            @end@
-            default:
-                netsnmp_set_request_error(reqinfo, request,
-                                          SNMP_NOSUCHOBJECT);
-                break;
-            }
-        }
-        break;
-
- at if $i.settable@
-        /*
-         * Write-support
-         */
-    case MODE_SET_RESERVE1:
-        for (request=requests; request; request=request->next) {
-            table_info  =     netsnmp_extract_table_info( request);
-            table_entry =     ${i}_get_entry( table_info->indexes );
-    
-            switch (table_info->colnum) {
-            @foreach $c column@
-            @if $c.settable@
-            case COLUMN_$c.uc:
-            @if $c.rowstatus@
-                ret = netsnmp_check_vb_rowstatus(request->requestvb,
-                         (table_entry ? RS_ACTIVE : RS_NONEXISTENT ));
-            @else@
-            @if $c.needlength@
-	        /* or possibly 'netsnmp_check_vb_type_and_size' */
-                ret = netsnmp_check_vb_type_and_max_size(
-                          request->requestvb, $c.type, sizeof(table_entry->$c));
-            @else@
-                /* or possibly 'netsnmp_check_vb_int_range' */
-                ret = netsnmp_check_vb_int( request->requestvb );
-            @end@
-            @end@
-                if ( ret != SNMP_ERR_NOERROR ) {
-                    netsnmp_set_request_error( reqinfo, request, ret );
-                    return SNMP_ERR_NOERROR;
-                }
-                break;
-            @end@
-            @end@
-            default:
-                netsnmp_set_request_error( reqinfo, request,
-                                           SNMP_ERR_NOTWRITABLE );
-                return SNMP_ERR_NOERROR;
-            }
-        }
-        break;
-
-    case MODE_SET_RESERVE2:
- at if $i.creatable@
-        for (request=requests; request; request=request->next) {
-            table_info = netsnmp_extract_table_info( request);
-            table_entry =     ${i}_get_entry( table_info->indexes );
-    
-            switch (table_info->colnum) {
- at if $i.rowstatus@
-            @foreach $c column@
-            @if $c.rowstatus@
-            case COLUMN_$c.uc:
-                switch (*request->requestvb->val.integer) {
-                case RS_CREATEANDGO:
-                case RS_CREATEANDWAIT:
-                    table_entry = ${i}_createEntry( 0
-  @foreach $idx index@
-    @if $idx.needlength@
-                        ,  table_info->indexes->val.string
-                        ,  table_info->indexes->val_len
-    @else@
-                        , *table_info->indexes->val.integer
-    @end@
-  @end@
-                        );
-                    if ( !table_entry ) {
-                        netsnmp_set_request_error( reqinfo, request,
-                                                   SNMP_ERR_RESOURCEUNAVAILABLE );
-                        return SNMP_ERR_NOERROR;
-                    }
-                }
-            @end@
-            @end@
- at else@
-            @foreach $c column@
-            @if $c.creatable@
-            case COLUMN_$c.uc:
-            @end@
-            @end@
-                if ( !table_entry ) {
-                    table_entry = ${i}_createEntry( 0
-  @foreach $idx index@
-    @if $idx.needlength@
-                        ,  table_info->indexes->val.string
-                        ,  table_info->indexes->val_len
-    @else@
-                        , *table_info->indexes->val.integer
-    @end@
-  @end@
-                        );
-                    if ( !table_entry ) {
-                        netsnmp_set_request_error( reqinfo, request,
-                                                   SNMP_ERR_RESOURCEUNAVAILABLE );
-                        return SNMP_ERR_NOERROR;
-                    }
-                }
-                break;
- at end@
-            }
-        }
- at end@
-        break;
-
-    case MODE_SET_FREE:
- at if $i.creatable@
-        for (request=requests; request; request=request->next) {
-            table_info  =     netsnmp_extract_table_info( request);
-            table_entry =     ${i}_get_entry( table_info->indexes );
-    
-            switch (table_info->colnum) {
- at if $i.rowstatus@
-            @foreach $c column@
-            @if $c.rowstatus@
-            case COLUMN_$c.uc:
-                switch (*request->requestvb->val.integer) {
-                case RS_CREATEANDGO:
-                case RS_CREATEANDWAIT:
-                    if (table_entry && !table_entry->valid) {
-                        ${i}_removeEntry(table_entry);
-                    }
-                }
-            @end@
-            @end@
- at else@
-            @foreach $c column@
-            @if $c.creatable@
-            case COLUMN_$c.uc:
-            @end@
-            @end@
-                if ( table_entry && !table_entry->valid ) {
-                    ${i}_removeEntry(table_entry);
-                }
-                break;
- at end@
-            }
-        }
- at end@
-        break;
-
-    case MODE_SET_ACTION:
-        for (request=requests; request; request=request->next) {
-            table_info  =     netsnmp_extract_table_info( request);
-            table_entry =     ${i}_get_entry( table_info->indexes );
-    
-            switch (table_info->colnum) {
-            @foreach $c column@
-            @if $c.settable@
-            @if !$c.rowstatus@
-            case COLUMN_$c.uc:
-                @if $c.needlength@
-                memcpy( table_entry->old_$c,
-                        table_entry->$c,
-                        sizeof(table_entry->$c));
-                table_entry->old_${c}_len =
-                        table_entry->${c}_len;
-                memset( table_entry->$c, 0,
-                        sizeof(table_entry->$c));
-                memcpy( table_entry->$c,
-                        request->requestvb->val.string,
-                        request->requestvb->val_len);
-                table_entry->${c}_len =
-                        request->requestvb->val_len;
-                @else@
-                table_entry->old_$c = table_entry->$c;
-                table_entry->$c     = *request->requestvb->val.integer;
-                @end@
-                break;
-            @end@
-            @end@
-            @end@
-            }
-        }
- at if $i.rowstatus@
-        /* Check the internal consistency of an active row */
-        for (request=requests; request; request=request->next) {
-            table_info  =     netsnmp_extract_table_info( request);
-            table_entry =     ${i}_get_entry( table_info->indexes );
-    
-            switch (table_info->colnum) {
-            @foreach $c column@
-            @if $c.rowstatus@
-            case COLUMN_$c.uc:
-                switch (*request->requestvb->val.integer) {
-                case RS_ACTIVE:
-                case RS_CREATEANDGO:
-                    if (/* XXX */) {
-                        netsnmp_set_request_error( reqinfo, request,
-                                                   SNMP_ERR_INCONSISTENTVALUE );
-                        return SNMP_ERR_NOERROR;
-                    }
-                }
-            @end@
-            @end@
-            }
-        }
- at end@
-        break;
-
-    case MODE_SET_UNDO:
-        for (request=requests; request; request=request->next) {
-            table_info  =     netsnmp_extract_table_info( request);
-            table_entry =     ${i}_get_entry( table_info->indexes );
-    
-            switch (table_info->colnum) {
-            @foreach $c column@
-            @if $c.settable@
-            case COLUMN_$c.uc:
- at if $i.rowstatus@
-  @if $c.rowstatus@
-                switch (*request->requestvb->val.integer) {
-                case RS_CREATEANDGO:
-                case RS_CREATEANDWAIT:
-                    if (table_entry && !table_entry->valid) {
-                        ${i}_removeEntry(table_entry);
-                    }
-                }
-  @else@
-                @if $c.needlength@
-                memcpy( table_entry->$c,
-                        table_entry->old_$c,
-                        sizeof(table_entry->$c));
-                memset( table_entry->old_$c, 0,
-                        sizeof(table_entry->$c));
-                table_entry->${c}_len =
-                        table_entry->old_${c}_len;
-                @else@
-                table_entry->$c     = table_entry->old_$c;
-                table_entry->old_$c = 0;
-                @end@
-  @end@
- at else@
-  @if $c.creatable@
-                if ( table_entry && !table_entry->valid ) {
-                    ${i}_removeEntry(table_entry);
-                } else {
-                    @if $c.needlength@
-                    memcpy( table_entry->$c,
-                            table_entry->old_$c,
-                            sizeof(table_entry->$c));
-                    memset( table_entry->old_$c, 0,
-                            sizeof(table_entry->$c));
-                    table_entry->${c}_len =
-                            table_entry->old_${c}_len;
-                    @else@
-                    table_entry->$c     = table_entry->old_$c;
-                    table_entry->old_$c = 0;
-                    @end@
-                }
-  @else@
-                @if $c.needlength@
-                memcpy( table_entry->$c,
-                        table_entry->old_$c,
-                        sizeof(table_entry->$c));
-                memset( table_entry->old_$c, 0,
-                        sizeof(table_entry->$c));
-                table_entry->${c}_len =
-                        table_entry->old_${c}_len;
-                @else@
-                table_entry->$c     = table_entry->old_$c;
-                table_entry->old_$c = 0;
-                @end@
-  @end@
- at end@
-                break;
-            @end@
-            @end@
-            }
-        }
-        break;
-
-    case MODE_SET_COMMIT:
- at if $i.creatable@
-        for (request=requests; request; request=request->next) {
-            table_info  =     netsnmp_extract_table_info(    request);
-            table_entry =     ${i}_get_entry( table_info->indexes );
-    
-            switch (table_info->colnum) {
- at if $i.rowstatus@
-            @foreach $c column@
-            @if $c.rowstatus@
-            case COLUMN_$c.uc:
-                switch (*request->requestvb->val.integer) {
-                case RS_CREATEANDGO:
-                    table_entry->valid = 1;
-                    /* Fall-through */
-                case RS_ACTIVE:
-                    table_entry->$c = RS_ACTIVE;
-                    break;
-
-                case RS_CREATEANDWAIT:
-                    table_entry->valid = 1;
-                    /* Fall-through */
-                case RS_NOTINSERVICE:
-                    table_entry->$c = RS_NOTINSERVICE;
-                    break;
-
-                case RS_DESTROY:
-                    ${i}_removeEntry(table_entry);
-                }
-            @end@
-            @end@
- at else@
-            @foreach $c column@
-            @if $c.creatable@
-            case COLUMN_$c.uc:
-            @end@
-            @end@
-                if ( table_entry && !table_entry->valid ) {
-                    table_entry->valid = 1;
-                }
- at end@
-            }
-        }
- at end@
-        break;
- at end@
-    }
-    return SNMP_ERR_NOERROR;
-}
-
-/** Initialize the $i table by defining its contents and how it's structured */
-static void
-initialize_table_$i(void)
-{
-    const oid ${i}_oid[] = {$i.commaoid};
-    netsnmp_handler_registration    *reg;
-    netsnmp_table_registration_info *table_info;
-
-    reg = netsnmp_create_handler_registration(
-              "$i",     ${i}_handler,
-              ${i}_oid, OID_LENGTH(${i}_oid),
- at if $i.settable@
-              HANDLER_CAN_RWRITE
- at else@
-              HANDLER_CAN_RONLY
- at end@
-              );
-
-    table_info = SNMP_MALLOC_TYPEDEF( netsnmp_table_registration_info );
-    netsnmp_table_helper_add_indexes(table_info,
-    @foreach $idx index@
-                           $idx.type,  /* index: $idx */
-    @end@
-                           0);
-
-    table_info->min_column = COLUMN_$first_column.uc;
-    table_info->max_column = COLUMN_$last_column.uc;
-
-    netsnmp_register_table( reg, table_info );
-
-    /* Initialise the contents of the table here */
-}
-
- at end@
-/** Initializes the $name module */
-void
-init_$name(void)
-{
-  /* here we initialize all the tables we're planning on supporting */
-  @foreach $i table@
-    initialize_table_$i();
-  @end@
-}
diff --git a/local/mib2c.row.conf b/local/mib2c.row.conf
index f736baa..4b81145 100755
--- a/local/mib2c.row.conf
+++ b/local/mib2c.row.conf
@@ -5,7 +5,7 @@
 @open ${name}.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: mib2c.row.conf 15201 2006-09-14 09:53:44Z dts12 $
  */
 #ifndef $name.uc_H
 #define $name.uc_H
@@ -83,7 +83,7 @@ struct ${i}_entry {
 @open ${name}.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: mib2c.row.conf 15201 2006-09-14 09:53:44Z dts12 $
  */
 
 #include <net-snmp/net-snmp-config.h>
@@ -117,17 +117,16 @@ init_$name(void)
 void
 initialize_table_$i(void)
 {
-    const oid ${i}_oid[] = {$i.commaoid};
+    static oid ${i}_oid[] = {$i.commaoid};
+    size_t ${i}_oid_len   = OID_LENGTH(${i}_oid);
     netsnmp_handler_registration    *reg;
     struct ${i}_entry               *row;
     netsnmp_variable_list           *idxs;
     netsnmp_table_registration_info *table_info;
 
-    DEBUGMSGTL(("${name}:init", "initializing table $i\n"));
-
     reg = netsnmp_create_handler_registration(
               "$i",     ${i}_handler,
-              ${i}_oid, OID_LENGTH(${i}_oid),
+              ${i}_oid, ${i}_oid_len,
 @if $i.settable@
               HANDLER_CAN_RWRITE
 @else@
@@ -213,9 +212,10 @@ ${i}_buildIndexList(struct ${i}_entry *row)
     v2 = v2->next_variable;
    @end@
    @if $idx.needlength@
-    snmp_set_var_typed_value( v2, $idx.type, row->$idx, row->${idx}_len);
+    snmp_set_var_typed_value( v2, $idx.type, (u_char*)row->$idx,
+                                                      row->${idx}_len);
    @else@
-    snmp_set_var_typed_integer( v2, $idx.type, row->$idx);
+    snmp_set_var_typed_integer( v2, $idx.type, (u_char*)row->$idx);
    @end@
    @eval $first=0@
   @end@
@@ -237,8 +237,6 @@ ${i}_handler(
     struct ${i}_entry          *table_entry;
     int                         ret;
 
-    DEBUGMSGTL(("${name}:handler", "Processing request (%d)\n", reqinfo->mode));
-
     switch (reqinfo->mode) {
         /*
          * Read-support (also covers GetNext requests)
@@ -254,7 +252,7 @@ ${i}_handler(
             case COLUMN_$c.uc:
             @if $c.needlength@
                 snmp_set_var_typed_value( request->requestvb, $c.type,
-                                          table_entry->$c,
+                                 (u_char*)table_entry->$c,
                                           table_entry->${c}_len);
             @else@
                 snmp_set_var_typed_integer( request->requestvb, $c.type,
diff --git a/local/mib2c.scalar.conf b/local/mib2c.scalar.conf
index 3024fa4..dda308c 100644
--- a/local/mib2c.scalar.conf
+++ b/local/mib2c.scalar.conf
@@ -5,7 +5,7 @@
 @open ${name}.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.scalar.conf 11805 2005-01-07 09:37:18Z dts12 $
  */
 #ifndef $name.uc_H
 #define $name.uc_H
@@ -23,7 +23,7 @@ Netsnmp_Node_Handler handle_${i};
 @open ${name}.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *        $Id$
+ *        $Id: mib2c.scalar.conf 11805 2005-01-07 09:37:18Z dts12 $
  */
 
 #include <net-snmp/net-snmp-config.h>
@@ -36,7 +36,7 @@ void
 init_$name(void)
 {
   @foreach $i scalar@
-    const oid ${i}_oid[] = { $i.commaoid };
+    static oid ${i}_oid[] = { $i.commaoid };
   @end@
 
   DEBUGMSGTL(("$name", "Initializing\n"));
@@ -75,7 +75,7 @@ handle_$i(netsnmp_mib_handler *handler,
 
         case MODE_GET:
             snmp_set_var_typed_value(requests->requestvb, $i.type,
-                                     /* XXX: a pointer to the scalar's data */,
+                                     (u_char *) /* XXX: a pointer to the scalar's data */,
                                      /* XXX: the length of the data in bytes */);
             break;
 
diff --git a/local/mib2c.table_data.conf b/local/mib2c.table_data.conf
index 2cc665c..5362ee9 100644
--- a/local/mib2c.table_data.conf
+++ b/local/mib2c.table_data.conf
@@ -1,39 +1,11 @@
 ## -*- c -*-
-#
- at if "$cache" eq "" @
- at 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@
- at else@       #  -S cache={something}
-    @if "$cache" ne "1" && "$cache" ne "0" @
- at open -@
-Invalid value for 'cache' ($cache) - generating caching code
-      @eval $cache = 1@
-    @end@
- at end@
-
 ######################################################################
 ## Do the .h file
 ######################################################################
 @open ${name}.h@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: mib2c.table_data.conf 18469 2010-04-07 14:05:38Z dts12 $
  */
 #ifndef $name.uc_H
 #define $name.uc_H
@@ -43,7 +15,7 @@ void init_$name(void);
 @foreach $i table@
 void initialize_table_$i(void);
 Netsnmp_Node_Handler ${i}_handler;
- at if "$cache" == 1 @
+ at if "$cache" ne "" @
 NetsnmpCacheLoad ${i}_load;
 NetsnmpCacheFree ${i}_free;
 #define $i.uc_TIMEOUT  60
@@ -63,7 +35,7 @@ NetsnmpCacheFree ${i}_free;
 @open ${name}.c@
 /*
  * Note: this file originally auto-generated by mib2c using
- *  $Id$
+ *  $Id: mib2c.table_data.conf 18469 2010-04-07 14:05:38Z dts12 $
  */
 
 #include <net-snmp/net-snmp-config.h>
@@ -98,17 +70,15 @@ init_$name(void)
 void
 initialize_table_$i(void)
 {
-    const oid ${i}_oid[] = {$i.commaoid};
-    const size_t ${i}_oid_len   = OID_LENGTH(${i}_oid);
+    static oid ${i}_oid[] = {$i.commaoid};
+    size_t ${i}_oid_len   = OID_LENGTH(${i}_oid);
     netsnmp_handler_registration    *reg;
     netsnmp_tdata                   *table_data;
     netsnmp_table_registration_info *table_info;
- at if "$cache" == 1 @
+ at if "$cache" ne "" @
     netsnmp_cache                   *cache;
 @end@
 
-    DEBUGMSGTL(("${name}:init", "initializing table $i\n"));
-
     reg = netsnmp_create_handler_registration(
               "$i",     ${i}_handler,
               ${i}_oid, ${i}_oid_len,
@@ -120,25 +90,7 @@ initialize_table_$i(void)
               );
 
     table_data = netsnmp_tdata_create_table( "$i", 0 );
-    if (NULL == table_data) {
-        snmp_log(LOG_ERR,"error creating tdata table for $i\n");
-        return;
-    }
- at 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;
- at 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 */
@@ -149,10 +101,12 @@ initialize_table_$i(void)
     table_info->max_column = COLUMN_$last_column.uc;
     
     netsnmp_tdata_register( reg, table_data, table_info );
- at if "$cache" == 1 @
-    if (cache) 
-        netsnmp_inject_handler_before( reg, netsnmp_cache_handler_GET(cache),
-                                       TABLE_TDATA_NAME);
+ at 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);
 @end@
 
     /* Initialise the contents of the table here */
@@ -220,8 +174,6 @@ ${i}_createEntry(netsnmp_tdata *table_data
         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);
@@ -235,8 +187,7 @@ ${i}_createEntry(netsnmp_tdata *table_data
                                  sizeof(entry->$idx));
    @end@
   @end@
-    if (table_data)
-        netsnmp_tdata_add_row( table_data, row );
+    netsnmp_tdata_add_row( table_data, row );
     return row;
 }
 
@@ -248,53 +199,34 @@ ${i}_removeEntry(netsnmp_tdata     *table_data,
 
     if (!row)
         return;    /* Nothing to remove */
-
-    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)
+    entry = (struct ${i}_entry *)
         netsnmp_tdata_remove_and_delete_row( table_data, row );
-    else
-        netsnmp_tdata_delete_row( row );    
+    if (entry)
+        SNMP_FREE( entry );   /* XXX - release any other internal resources */
 }
 
- at if "$cache" == 1 @
+ at if "$cache" ne "" @
 /* Example cache handling - set up table_data list from a suitable file */
 int
 ${i}_load( netsnmp_cache *cache, void *vmagic ) {
     netsnmp_tdata     *table = (netsnmp_tdata *)vmagic;
     netsnmp_tdata_row *row;
-    struct ${i}_entry *this;
     FILE *fp;
     char buf[STRMAX];
-  @foreach $idx index@
     @if $idx.needlength@
     $idx.decl* $idx;
     size_t ${idx}_len;
     @else@
     $idx.decl  $idx;
     @end@
-  @end@
-
-    /* The basic load routine template assumes that the data to
-       be reported is held in a file - with one row of the file
-       for each row of the table.
-          If your data is available via a different API, you
-       should amend this initial block (and the control of the
-       'while' loop) accordingly.
-          'XXX' marks places where the template is incomplete and
-       code will definitely need to be added. */
 
     fp = fopen( "/data/for/${i}", "r" );
     if ( !fp ) {
         return -1;
     }
     while ( fgets( buf, STRMAX, fp )) {
-        /* XXX - Unpick 'buf' to extract the individual field values
-                 (or at least the index values for this row) ... */
-        row = ${i}_createEntry(table
+        /* Unpick 'buf' to extract the index values... */
+        this = ${i}_createEntry(table
   @foreach $idx index@
     @if $idx.needlength@
                          , $idx
@@ -304,11 +236,7 @@ ${i}_load( netsnmp_cache *cache, void *vmagic ) {
     @end@
   @end@
                         );
-        if (row == NULL)
-            continue;
-        this = (struct ${i}_entry *)row->entry;
-        /* XXX - ... and then populate the 'this' data structure with
-                 column values (typically) extracted from 'buf' above */
+        /* ... and then populate 'this' with the column values */
     }
     fclose(fp);
     return 0;  /* OK */
@@ -340,17 +268,12 @@ ${i}_handler(
     struct ${i}_entry          *table_entry;
     int                         ret;
 
-    DEBUGMSGTL(("${name}:handler", "Processing request (%d)\n", reqinfo->mode));
-
     switch (reqinfo->mode) {
         /*
          * Read-support (also covers GetNext requests)
          */
     case MODE_GET:
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-                continue;
-
             table_entry = (struct ${i}_entry *)
                               netsnmp_tdata_extract_entry(request);
             table_info  =     netsnmp_extract_table_info( request);
@@ -366,7 +289,7 @@ ${i}_handler(
                 }
             @if $c.needlength@
                 snmp_set_var_typed_value( request->requestvb, $c.type,
-                                          table_entry->$c,
+                                 (u_char*)table_entry->$c,
                                           table_entry->${c}_len);
             @else@
                 snmp_set_var_typed_integer( request->requestvb, $c.type,
@@ -389,9 +312,6 @@ ${i}_handler(
          */
     case MODE_SET_RESERVE1:
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-                continue;
-
             table_entry = (struct ${i}_entry *)
                               netsnmp_tdata_extract_entry(request);
             table_info  =     netsnmp_extract_table_info( request);
@@ -405,7 +325,7 @@ ${i}_handler(
                          (table_entry ? RS_ACTIVE : RS_NONEXISTENT ));
             @else@
             @if $c.needlength@
-	        /* or possibly 'netsnmp_check_vb_type_and_size' */
+	        /* or possiblc 'netsnmp_check_vb_type_and_size' */
                 ret = netsnmp_check_vb_type_and_max_size(
                           request->requestvb, $c.type, sizeof(table_entry->$c));
             @else@
@@ -431,9 +351,6 @@ ${i}_handler(
     case MODE_SET_RESERVE2:
 @if $i.creatable@
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-                continue;
-
             table_row  = netsnmp_tdata_extract_row(  request);
             table_data = netsnmp_tdata_extract_table(request);
             table_info = netsnmp_extract_table_info( request);
@@ -501,9 +418,6 @@ ${i}_handler(
     case MODE_SET_FREE:
 @if $i.creatable@
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-                continue;
-
             table_entry = (struct ${i}_entry *)
                               netsnmp_tdata_extract_entry(request);
             table_row   =     netsnmp_tdata_extract_row(  request);
@@ -542,9 +456,6 @@ ${i}_handler(
 
     case MODE_SET_ACTION:
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-                continue;
-
             table_entry = (struct ${i}_entry *)
                               netsnmp_tdata_extract_entry(request);
             table_info  =     netsnmp_extract_table_info( request);
@@ -606,9 +517,6 @@ ${i}_handler(
 
     case MODE_SET_UNDO:
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-                continue;
-
             table_entry = (struct ${i}_entry *)
                               netsnmp_tdata_extract_entry(request);
             table_row   =     netsnmp_tdata_extract_row(  request);
@@ -685,9 +593,6 @@ ${i}_handler(
     case MODE_SET_COMMIT:
 @if $i.creatable@
         for (request=requests; request; request=request->next) {
-            if (request->processed)
-                continue;
-
             table_entry = (struct ${i}_entry *)
                               netsnmp_tdata_extract_entry(request);
 @if $i.rowstatus@
diff --git a/local/minimalist/feature-check b/local/minimalist/feature-check
deleted file mode 100755
index aa4987e..0000000
--- a/local/minimalist/feature-check
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/bin/sh
-
-#
-# feature-check: This script looks for feature statements in a file by
-# executing a compiler under CPP and extracting lines of the following
-# form:
-#
-# netsnmp_feature_provides(foo): used to indicate it provides feature "foo"
-# netsnmp_feature_require(bar): used to indicate it requires feature "bar"
-# netsnmp_feature_want(bar): used to indicate it wants feature "bar"
-#                    (but can live without it)
-#
-# Using these lines it then generates a list of feature requirement
-# defines in "include/net-snmp/net-snmp-features.h" which can then be
-# loaded in later passes at compile time.
-#
-# Defines produced when netsnmp_featre_require(bar) is present:
-#   #define NETSNMP_FEATURE_REQUIRE_BAR 1
-#
-# Defines produced when netsnmp_feature_want(bar) is present:
-#   #define NETSNMP_FEATURE_WANT_BAR 1
-#
-# And when all the features have been collected, they are also inverted via
-# the feature-post-check script:
-#
-#   #define NETSNMP_FEATURE_REMOVE_BARX 1  /* never required */
-#   #undef  NETSNMP_FEATURE_REMOVE_BAR      /* required */
-
-# Usage:
-
-# feature-check NORMAL-COMPILE-LINE
-
-SED=sed
-GREP=grep
-CC=gcc
-RM=rm
-
-if test "x$1" = "x--feature-global" ; then
-    # a global file should be included
-    shift
-    global=$1
-    shift
-fi
-
-sourcedir=$1
-shift
-
-source=$1
-shift
-
-destination=$1
-shift
-
-tmpf="$destination.1"
-
-compileline="$@"
-$compileline '-DNETSNMP_FEATURE_CHECKING=1' \
-             '-DNETSNMP_MINIMAL_CODE=1' \
-             '-Dnetsnmp_feature_require(X)=X NSF_RR' \
-             '-Dnetsnmp_feature_provide(X)=X NSF_PP' \
-             '-Dnetsnmp_feature_child_of(X,Y)=X,Y NSF_CO' \
-             '-Dnetsnmp_feature_want(X)=X NSF_WW' $source | \
-    $GREP NSF_ | $GREP -v '^#define' > $tmpf
-
-$RM -f $destination;
-touch $destination;
-
-# process requires
-firstrequire=1
-for i in `grep NSF_RR $tmpf | sed 's/ NSF_RR//'` ; do
-    if test $firstrequire = 1 ; then
-	echo "" >> $destination
-	echo "/* required by $sourcedir/$source */" >> $destination
-	firstrequire=0
-    fi
-    upper=`echo $i | tr a-z A-Z`
-    echo "#define NETSNMP_FEATURE_REQUIRE_$upper 1" >> $destination
-done
-
-# process provides
-firstfeature=1
-for i in `grep NSF_PP $tmpf | sed 's/ NSF_PP//'` ; do
-    if test $firstfeature = 1 ; then
-	echo "" >> $destination
-	echo "/* features provided by $sourcedir/$source */" >> $destination
-	firstfeature=0
-    fi
-    upper=`echo $i | tr a-z A-Z`
-    echo "#define NETSNMP_FEATURE_PROVIDE_$upper 1" >> $destination
-done
-
-# process children
-firstfeature=1
-for i in `grep NSF_CO $tmpf | sed 's/ NSF_CO//'` ; do
-    parent=`echo $i | sed 's/.*,//'`
-    child=`echo $i | sed 's/,.*//'`
-    if test $firstfeature = 1 ; then
-	echo "" >> $destination
-	echo "/* features provided by $sourcedir/$source */" >> $destination
-	firstfeature=0
-    fi
-    upperchild=`echo $child | tr a-z A-Z`
-    upperparent=`echo $parent | tr a-z A-Z`
-    echo "#define NETSNMP_FEATURE_${upperchild}_CHILD_OF_${upperparent} 1" >> $destination
-    echo "#define NETSNMP_FEATURE_PROVIDE_$upperchild 1" >> $destination
-done
-
-# process wants
-firstfeature=1
-for i in `grep NSF_WW $tmpf | sed 's/ NSF_WW//'` ; do
-    if test $firstfeature = 1 ; then
-	echo "" >> $destination
-	echo "/* features wanted by $sourcedir/$source */" >> $destination
-	firstfeature=0
-    fi
-    upper=`echo $i | tr a-z A-Z`
-    echo "#define NETSNMP_FEATURE_WANT_$upper 1" >> $destination
-done
-
-if test "x$global" != "x" ; then
-    cat $destination >> $global
-fi
-
-
-# clean up
-#$RM -f $tmpf
diff --git a/local/minimalist/feature-makedocs b/local/minimalist/feature-makedocs
deleted file mode 100644
index f960191..0000000
--- a/local/minimalist/feature-makedocs
+++ /dev/null
@@ -1,221 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use IO::File;
-use Getopt::Std;
-our %opts = (W => 2);
-
-getopts('ohwW:', \%opts) || usage();
-
-usage() if ($opts{'h'});
-
-usage() if ($#ARGV != 1);
-
-# should be the feature-details.h file
-my $inputfile = shift @ARGV;
-my $outputfile = shift @ARGV;
-
-my %features;
-my %top;
-my %files;
-my $reqfile;
-
-gather_data($inputfile);
-if ($opts{'w'}) {
-    print_wiki_mode($outputfile);
-} else {
-    print_org_mode($outputfile);
-}
-
-sub gather_data {
-    my ($inputfile) = @_;
-
-    open(I, $inputfile);
-    while(<I>) {
-	if (/(required|provided|wanted) by (.*) \*/) {
-	    $reqfile = $2;
-	} elsif (/define NETSNMP_FEATURE_PROVIDE_(.*) 1/) {
-	    my $lc = lc($1);
-	    die "no reqfile currently set; bug!" if (!defined($reqfile));
-
-	    add($lc);
-
-	    push @{$files{$reqfile}{'provides'}}, $lc;
-	    push @{$features{$lc}{'providedby'}}, $reqfile;
-
-	} elsif (/define NETSNMP_FEATURE_REQUIRE_(.*) 1/) {
-	    my $lc = lc($1);
-	    die "no reqfile currently set; bug!" if (!defined($reqfile));
-
-	    add($lc);
-
-	    push @{$files{$reqfile}{'requires'}}, $lc;
-	    push @{$features{$lc}{'requiredby'}}, $reqfile;
-
-	} elsif (/define NETSNMP_FEATURE_WANT_(.*) 1/) {
-	    my $lc = lc($1);
-	    die "no reqfile currently set; bug!" if (!defined($reqfile));
-
-	    add($lc);
-
-	    push @{$files{$reqfile}{'wants'}}, $lc;
-	    push @{$features{$lc}{'wantedby'}}, $reqfile;
-	} elsif (/define NETSNMP_FEATURE_(.*)_CHILD_OF_(.*) 1/) {
-	    my $child = lc($1);
-	    my $parent = lc($2);
-
-	    add_child($child, $parent);
-	}
-    }
-}
-
-sub add {
-    my ($name) = @_;
-    if (!exists($features{$name})) {
-	# new feature entirely, mark it as a top node
-	$top{$name} = 1;
-    }
-}
-
-sub add_child {
-    my ($child, $parent) = @_;
-
-    add($parent);
-
-    if (exists($top{$child})) {
-	# it's no longer a top node if it's a child of something else
-	delete $top{$child};
-    }
-    $features{$parent}{'children'}{$child}++;
-
-    $features{$child}{'providedby'}, $reqfile;
-}
-
-######################################################################
-# org-mode output
-#
-sub print_org_mode {
-    my ($outputfile) = @_;
-
-    my $fh = new IO::File;
-
-    if (!$fh->open("> $outputfile")) {
-	die "error!\n";
-    }
-
-    foreach my $node (sort keys(%top)) {
-	print_org_node($fh, $node, "*");
-    }
-}
-
-sub print_org_node {
-    my ($fh, $node, $prefix) = @_;
-
-    my $spaces = $prefix;
-    $spaces =~ s/./ /g;
-
-    print $fh "$prefix $node\n";
-    if (exists($features{$node}{'providedby'})) {
-	print $fh "$spaces + provided in file: " .
-	    join(", ", org_link_files(@{$features{$node}{'providedby'}})) . "\n";
-    }
-    if (exists($features{$node}{'requiredby'})) {
-	print $fh "$spaces + required in file: " .
-	    join(", ", org_link_files(@{$features{$node}{'requiredby'}})) . "\n";
-    }
-    if (exists($features{$node}{'wantedby'})) {
-	print $fh "$spaces + wanted in file: " .
-	    join(", ", org_link_files(@{$features{$node}{'wantedby'}})) . "\n";
-    }
-    if (exists($features{$node}{'children'})) {
-	foreach my $child (sort keys(%{$features{$node}{'children'}})) {
-	    print_org_node($fh, $child, $prefix . "*");
-	}
-    }
-}
-
-sub org_link_files {
-    my @files = @_;
-    map { $_ = "[[file:$_][$_]]"; } @files;
-    return @files;
-}
-
-######################################################################
-# wiki output
-#
-sub print_wiki_mode {
-    my ($outputfile) = @_;
-
-    my $fh = new IO::File;
-    my $depth = 0;
-
-    if (!$fh->open("> $outputfile")) {
-	die "error!\n";
-    }
-
-    print $fh "'''The contents of this page is auto-generated from local/minimalist/feature-makedocs; do not edit by hand (changes will be lost)'''\n\n";
-    print $fh "Details of the feature marking system and how it is used can be found at [[Feature Marking and Selection]]\n\n";
-
-    foreach my $node (sort keys(%top)) {
-	print_wiki_node($fh, $node, $depth+1);
-    }
-}
-
-sub print_wiki_node {
-    my ($fh, $node, $depth) = @_;
-
-    my $dataheader;
-    my $depthincrease = 1;
-
-    if ($depth > $opts{'W'}) {
-	print $fh "*" x ($depth - $opts{'W'} + 1) . " $node\n";
-	$dataheader = "*" x ($depth - $opts{'W'} + 2);
-	$depthincrease++;
-    } else {
-	print $fh "=" x $depth . " $node " . "=" x $depth . "\n";
-	$dataheader = "*";
-    }
-
-    if (exists($features{$node}{'providedby'})) {
-	print $fh "$dataheader provided in file: " .
-	    join(", ", wiki_link_files(@{$features{$node}{'providedby'}})) ."\n";
-    }
-    if (exists($features{$node}{'requiredby'})) {
-	print $fh "$dataheader required in file: " .
-	    join(", ", wiki_link_files(@{$features{$node}{'requiredby'}})) ."\n";
-    }
-    if (exists($features{$node}{'wantedby'})) {
-	print $fh "$dataheader wanted in file: " .
-	    join(", ", wiki_link_files(@{$features{$node}{'wantedby'}})) . "\n";
-    }
-    if (exists($features{$node}{'children'})) {
-	if ($depth >= $opts{'W'}) {
-	    print $fh "$dataheader Children:\n";
-	}
-	foreach my $child (sort keys(%{$features{$node}{'children'}})) {
-	    print_wiki_node($fh, $child, $depth + $depthincrease);
-	}
-    }
-}
-
-sub wiki_link_files {
-    my @files = @_;
-    map { $_ = "[http://net-snmp.svn.sourceforge.net/viewvc/net-snmp/trunk/net-snmp/$_?view=markup $_]"; } @files;
-    return @files;
-}
-
-######################################################################
-# help output
-#
-sub usage {
-    print "Usage: $0 [FLAGS] INPUTFILE OUTPUTFILE\n\n";
-    print "FLAGS:\n";
-    print "\t-h\thelp\n";
-    print "\t-o\tOutput style: Org-Mode [default]\n";
-    print "\t-w\tOutput style: wiki\n";
-    print "\t-W DEPTH\tWiki header to bullet list depth (default 2)\n";
-    print "\nINPUT/OUTPUT\n";
-    print "\tINPUTFILE:\tlocation of the include/net-snmp/feature-details.h file\n";
-    print "\tOUTPUTFILE:\tthe file to write the results to\n";
-    exit;
-}
diff --git a/local/minimalist/feature-remove b/local/minimalist/feature-remove
deleted file mode 100755
index aae340d..0000000
--- a/local/minimalist/feature-remove
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/bin/sh
-
-#
-# feature-remove: removes features by defining special variables
-# indicating particular code segments are unneeded.  This is done by
-# examining the list of provided features and defining a REMOVE
-# equivalent if no other module required it.
-#
-# Arguments:
-#   feature-remove mainheader.h globalheader.h THEREST
-#
-# Where THEREST are a list of features to remove (default) or add.
-#
-#   --add switches to "adding" and --remove switches back.
-#
-# E.G.
-#   feature-remove mainheader.h globalheader.h oid_stash --add container_null
-#
-CP=cp
-
-featureheader="$1"
-featureheaderin="$1.in"
-featureheaderglobal="$2"
-shift
-shift
-
-argumenttype="--remove"
-removethese=""
-addthese=""
-
-while test "x$1" != "x" ; do
-    uc=`echo $1 | tr a-z A-Z`
-    case $1 in
-	--*)
-	    argumenttype="$1"
-	    ;;
-
-	*)
-	    if test "x$argumenttype" = "x--remove" ; then
-		removethese="$removethese $uc"
-	    else
-		addthese="$addthese $uc"
-	    fi
-	    ;;
-    esac
-    shift
-done
-
-echo "" > $featureheader
-echo "/* The following defines features that Net-SNMP HAS or has REMOVEd */" >> $featureheader
-
-haslist=" "
-
-for i in `grep NETSNMP_FEATURE_PROVIDE_ $featureheaderin | sed 's/.*FEATURE_PROVIDE_//;s/ .*//'` ; do
-    #
-    # If we were specifically asked to include it, then do so
-    #
-    if echo " $addthese " | grep " ${i} " > /dev/null ; then
-       # The user required it ; report we're using it
-	echo "#define NETSNMP_FEATURE_HAS_$i 1" >> $featureheader
-	haslist="${haslist}${i} "
-
-    #
-    # check to see if something requried it
-    #
-    elif grep "NETSNMP_FEATURE_REQUIRE_${i} " $featureheaderglobal > /dev/null ; then
-	# if so, make sure we weren't asked to remove it
-       	if echo  " $removethese "| grep " $i " > /dev/null ; then
-       	   # Uh oh; they specifically wanted it removed but it was required
-	   echo "Feature Error:"
-       	   echo " Feature '$i' was asked to be removed but something required it"
-       	   echo " See the $featureheaderglobal file for dependency details"
-	   echo ""
-           rm -f $featureheader
-       	   exit 1
-       	fi
-
-       	# something required it ; report we're using it
-       	echo "#define NETSNMP_FEATURE_HAS_$i 1" >> $featureheader
-	haslist="${haslist}${i} "
-
-    #
-    # check to see if something "wanted" it
-    #
-    elif grep "NETSNMP_FEATURE_WANT_${i} " $featureheaderglobal > /dev/null ; then
-	   # nothing required it, but something "wanted" it
-
-	   # check to make sure we weren't asked to exclude it
-           if echo " $removethese " | grep " $i " > /dev/null ; then
-               # we were specifically asked *not* to use this feature
-               echo "#define NETSNMP_FEATURE_REMOVE_$i 1" >> $featureheader
-           else
-	       # something wanted it, so we'll include it
-	       echo "#define NETSNMP_FEATURE_HAS_$i 1" >> $featureheader
-	       haslist="${haslist}${i} "
-           fi
-
-
-    #
-    # check to see if something required a parent
-    #
-    elif egrep NETSNMP_FEATURE_${i}_CHILD_OF $featureheaderglobal > /dev/null ; then
-	parentnames=`egrep NETSNMP_FEATURE_${i}_CHILD_OF $featureheaderglobal | sed 's/.*CHILD_OF_//;s/ .*//;'`
-
-	foundone=0
-	for parentname in $parentnames ; do
-   	    # if the parent was desired, then we are too:
-	    
-	    if test $foundone = 0 ; then
-		if egrep "NETSNMP_FEATURE_HAS_${parentname} " $featureheader > /dev/null ; then
-       		    echo "#define NETSNMP_FEATURE_HAS_$i 1" >> $featureheader
-		    haslist="${haslist}${i} "
-		    foundone=1
-		fi
-	    fi
-        done
-	if test $foundone = 0 ; then
-    	    echo "#define NETSNMP_FEATURE_REMOVE_$i 1" >> $featureheader
-	fi
-
-    #
-    # no one required or wanted it -- it is safe to remove it
-    #
-    else
-    	 echo "#define NETSNMP_FEATURE_REMOVE_$i 1" >> $featureheader
-    fi
-done
-
diff --git a/local/minimalist/find-unused-code b/local/minimalist/find-unused-code
deleted file mode 100755
index 89e3c8c..0000000
--- a/local/minimalist/find-unused-code
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/usr/bin/perl
-
-# searches for .o files in the current directory and examines each for
-# defined functions (T) and undefined references (U) and lists
-# anything that isn't required by something else or itself
-
-# useful calling sorted by file:
-#   perl minimal/find-unused-code | sort 
-
-use File::Find;
-use Data::Dumper;
-use strict;
-use Getopt::GUI::Long;
-
-my %opts;
-
-LocalGetOptions(\%opts,
-		['g|grep',      "run find/grep to look for string usages"],
-    );
-
-my (@files, %defined, %lookingfor);
-
-find(\&dot_os, ".");
-
-foreach my $file (@files) {
-    collect_from_file($file);
-}
-
-
-if ($#ARGV > -1) {
-    print "Dumping found symbol usages:\n\n";
-    foreach my $arg (@ARGV) {
-	print "$arg:\n";
-	print "  ", join("\n  ", @{$defined{$arg}{'usages'}}),"\n\n";
-    }
-    exit;
-}
-
-foreach my $function (sort { $defined{$a}{'source'} cmp $defined{$b}{'source'} } keys(%defined)) {
-    if (exists($defined{$function}{'source'}) &&
-	!exists($defined{$function}{'usages'})) {
-	if (check_for_once_only($defined{$function}{'source'}, $function)) {
-	    printf("%-38s %-38s\n", $defined{$function}{'source'}, $function);
-	    if ($opts{'g'}) {
-		open(P,"find . -regex '.*.\\(c\\|xs\\)' | xargs grep -n $function|");
-		while(<P>) {
-		    print "  $_";
-		}
-		close(P);
-		print "\n";
-	    }
-	}
-    }
-}
-
-sub dot_os {
-    return if (!/\.o$/);
-    return if ($File::Find::name =~ /\/.libs\//);
-#    return if ($File::Find::name =~ /\/(perl|python)\//);
-    push @files, $File::Find::name;
-}
-
-sub collect_from_file {
-    my $file = shift;
-#    print "searching $file\n";
-    open(I,"nm $file|");
-    while(<I>) {
-	$defined{$1}{'source'} = $file if (/ T (.*)/);
-	push @{$defined{$1}{'usages'}}, $file if (/ U (.*)/);
-    }
-    close(I);
-}
-	
-sub check_for_once_only {
-    my ($file, $function) = @_;
-    $file =~ s/\.o/.c/;
-    open(I, $file);
-    my $usages = 0;
-    while(<I>) {
-	if (/$function/) {
-	    $usages++;
-	}
-	if ($usages > 1) {
-	    close(I);
-	    return 0;
-	}
-    }
-    return 1;
-}
-
-
-sub LocalGetOptions {
-    if (eval {require Getopt::GUI::Long;}) {
-        import Getopt::GUI::Long;
-        # optional configure call
-        Getopt::GUI::Long::Configure(qw(display_help no_ignore_case capture_output no_gui allow_zero));
-        return GetOptions(@_);
-    }
-    require Getopt::Long;
-    import Getopt::Long;
-    # optional configure call
-    Getopt::Long::Configure(qw(display_help no_ignore_case capture_output));
-    GetOptions(LocalOptionsMap(@_));
-}
-
-sub LocalOptionsMap {
-    my ($st, $cb, @opts) = ((ref($_[0]) eq 'HASH') 
-                            ? (1, 1, $_[0]) : (0, 2));
-    for (my $i = $st; $i <= $#_; $i += $cb) {
-        if ($_[$i]) {
-            next if (ref($_[$i]) eq 'ARRAY' && $_[$i][0] =~ /^GUI:/);
-            push @opts, ((ref($_[$i]) eq 'ARRAY') ? $_[$i][0] : $_[$i]);
-            push @opts, $_[$i+1] if ($cb == 2);
-        }
-    }
-    return @opts;
-}
diff --git a/local/minimalist/ignore.regexp b/local/minimalist/ignore.regexp
deleted file mode 100644
index e09b99c..0000000
--- a/local/minimalist/ignore.regexp
+++ /dev/null
@@ -1,4 +0,0 @@
-~$
-#$
-\/.#
-\/.svn\/
diff --git a/local/minimalist/remove-unneeded-modules b/local/minimalist/remove-unneeded-modules
deleted file mode 100755
index ad45954..0000000
--- a/local/minimalist/remove-unneeded-modules
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/bin/perl
-
-# steps:
-# 1) run configure
-# 2) perl local/minimalist/remove-unneeded-modules
-# 3) make depend
-# 4) make
-
-use File::Find;
-use Data::Dumper;
-use strict;
-
-my %exceptions = qw(
-   agent/mibgroup/mibdefs.h              	              1
-   agent/mibgroup/struct.h               	              1
-   agent/mibgroup/agentx/protocol.h      	              1
-   agent/mibgroup/agentx/agentx_config.h 	              1
-   agent/mibgroup/agentx/subagent.h      	              1
-   agent/mibgroup/mib_module_includes.h  	              1
-   agent/mibgroup/mib_module_inits.h     	              1
-   agent/mibgroup/mib_module_dot_conf.h  	              1
-   agent/mibgroup/mib_module_shutdown.h  	              1
-   agent/mibgroup/agent_module_includes.h	              1
-   agent/mibgroup/agent_module_inits.h   	              1
-   agent/mibgroup/agent_module_dot_conf.h	              1
-   agent/mibgroup/agent_module_shutdown.h	              1
-   agent/mibgroup/mibII/vacm_conf.c      	              1
-   agent/mibgroup/snmpv3/usmConf.c       	              1
-   agent/mibgroup/utilities/iquery.c     	              1
-   agent/mibgroup/mibII/vacm_conf.h      	              1
-   agent/mibgroup/snmpv3/usmConf.h       	              1
-   agent/mibgroup/utilities/iquery.h     	              1
-   agent/mibgroup/util_funcs/MIB_STATS_CACHE_TIMEOUT.h        1
-   agent/mibgroup/host_res.h                                  1
-   agent/mibgroup/hr_filesys.h                                1
-   agent/mibgroup/if-mib/ifTable/ifTable_defs.h               1
-   agent/mibgroup/ifTable_defs.h                              1
-   agent/mibgroup/mibII/mibII_common.h                        1
-   agent/mibgroup/mnttypes.h                                  1
-   agent/mibgroup/utilities/execute.h                         1
-);
-
-my %opts;
-
-LocalGetOptions(\%opts,
-		['n|dry-run',      "Dry-run, just say what you would do"],
-		['v|verbose',      "Show what files are being left too"],
-    );
-
-my $inputMakefile = $ARGV[0] || "agent/mibgroup/Makefile";
-my $inputDir = $ARGV[1] || "agent/mibgroup";
-
-my $collecting = 0;
-my (%files, @files);
-
-open(I, $inputMakefile);
-while(<I>) {
-    if (/mib_module_list_c=/) {
-	$collecting = 1;
-    } elsif ($collecting) {
-	if (! /\\\s*$/) {
-	    $collecting = 0;
-	}
-	chomp();
-	s/\\//;
-	s/\s*//g;
-	s/\.c//;
-	push @files, "agent/mibgroup/$_";
-	$files{"agent/mibgroup/$_.c"} = 1;
-	$files{"agent/mibgroup/$_.h"} = 1;
-    }
-}
-
-find(\&remove_files, $inputDir);
-
-sub remove_files {
-    return if (!/\.[ch]$/);
-    return if (/\.h$/); # XXX: we need to delete headers eventually too
-    return if (/_constants.h/);
-    return if (exists($exceptions{$File::Find::name}));
-
-    if (!exists($files{$File::Find::name})) {
-	Unlink($_, $File::Find::name);
-    } elsif ($opts{'v'}) {
-	print "Leaving $File::Find::name\n";
-    }
-}
-
-sub Unlink {
-    my ($file, $fullfile) = @_;
-    print "Removing $fullfile\n";
-    if (!$opts{'n'}) {
-	unlink($file);
-	if (-f "$file") {
-	    print "*** FAILED to remove $file\n"; 
-	}
-    }
-}
-
-
-sub LocalGetOptions {
-    if (eval {require Getopt::GUI::Long;}) {
-        import Getopt::GUI::Long;
-        # optional configure call
-	my @gopts = qw(no_ignore_case no_gui allow_zero);
-	if ($Getopt::GUI::Long::VERSION > 0.2) {
-	    push @gopts, qw(display_help capture_output);
-	}
-        Getopt::GUI::Long::Configure(@gopts);
-        return GetOptions(@_);
-    }
-    require Getopt::Long;
-    import Getopt::Long;
-    # optional configure call
-    Getopt::Long::Configure(qw(display_help no_ignore_case capture_output));
-    GetOptions(LocalOptionsMap(@_));
-}
-
-sub LocalOptionsMap {
-    my ($st, $cb, @opts) = ((ref($_[0]) eq 'HASH') 
-                            ? (1, 1, $_[0]) : (0, 2));
-    for (my $i = $st; $i <= $#_; $i += $cb) {
-        if ($_[$i]) {
-            next if (ref($_[$i]) eq 'ARRAY' && $_[$i][0] =~ /^GUI:/);
-            push @opts, ((ref($_[$i]) eq 'ARRAY') ? $_[$i][0] : $_[$i]);
-            push @opts, $_[$i+1] if ($cb == 2);
-        }
-    }
-    return @opts;
-}
diff --git a/local/minimalist/removeifdefcode.pl b/local/minimalist/removeifdefcode.pl
deleted file mode 100755
index 5a64c05..0000000
--- a/local/minimalist/removeifdefcode.pl
+++ /dev/null
@@ -1,333 +0,0 @@
-#! /usr/bin/perl
-
-use strict;
-use File::Copy;
-use File::Basename;
-use IO::File;
-use Getopt::Std;
-
-my $ID_NOREAD  = "NETSNMP_NO_READ_SUPPORT";
-my $ID_NOWRITE = "NETSNMP_NO_WRITE_SUPPORT";
-# my $ID_MIN     = "NETSNMP_MINIMAL_CODE";
-
-my($ST_OFF, $ST_IF, $ST_ELSE, $ST_IFN, $ST_ELSEN) =
-  ("off", "if", "else", "ifnot", "elsenot");
-
-my %opts    = ();
-my %thash   = ();
-my $canwrite = 1; # current write state
-
-my($appname,$apppath) = fileparse($0);
-
-my $minimal_include_path = "include/net-snmp/net-snmp-features.h";
-
-
-if ( (!getopts("rwmi:v",\%opts)) || (1 != $#ARGV) ) {
-  print "$appname [options] from-directory to-direpctory\n";
-  print "-r     parse out code unneeded by $ID_NOREAD ifdef\n";
-  print "-w     parse out code unneeded by $ID_NOWRITE ifdef (DEFAULT)\n";
-  print "-m     parse out code unneeded according minimalist ifdefs\n";
-  print "       requires from-directory to be the top of the net-snmp tree\n";
-  print "       (This is multiple ifdefs auto selected depending\n";
-  print "        on the net-snmp source configuration)\n\n";
-  print "-i 'ignore-file'  file of files to ignore (not copy)\n";
-  print "-v     print verbose info to standard out\n";
-  die "Error: two command line arguments required\n";
-}
-
-#default to everything
-if ( (!exists $opts{r}) && (!exists $opts{w}) && (!exists $opts{m}) ) {
-  $thash{"$ID_NOWRITE"} = "$ST_OFF";
-}
-else {
-  $thash{"$ID_NOREAD"}  = "$ST_OFF" if ( exists $opts{r} );
-  $thash{"$ID_NOWRITE"} = "$ST_OFF" if ( exists $opts{w} );
-}
-
-my $fromdir = $ARGV[0];
-my $todir   = $ARGV[1];
-
-if ( !(-e $fromdir) ) {
-  die "Error: $appname: from directory does not exist: '$fromdir'\n";
-}
-if ( !(-d $fromdir) ) {
-    die "Error: $appname: from directory, '$fromdir', must be a directory\n";
-}
-
-if ( exists $opts{m} ) {
-    load_minamal_ifdefs();
-}
-
-# create search string from tags
-# minimal must be done before this
-my $search = join "|", (keys %thash);
-
-
-# check for and load ignore file
-my $igstring = "";
-if ( exists $opts{i} ) {
-  open my($IH), "< $opts{i}" or
-    die "Could not open ignore-file '$opts{i}': $!";
-  my @iglist = <$IH>;
-  $IH->close();
-  chomp @iglist;
-  $igstring = join "|", @iglist;
-  $igstring = "(" . $igstring . ")";
-  print "ignore string: \'$igstring\'\n" if (exists $opts{v});
-}
-
-
-
-if ( -e $todir ) {
-  if ( ((-d $fromdir) && !(-d $todir)) ||
-	   (!(-d $fromdir) && (-d $todir)) ) {
-	die "Error: $appname: from-directory and to-directory must both either be a file or both be a directory\n";
-  }
-}
-else {
-  if (-d $fromdir) {
-	print "Warning: $appname: '$todir' does not exist, creating\n";
-	mkdir "$todir" or
-      die "Error: $appname: Unable to create to-directory '$todir': $!\n";
-  }
-}
-
-if (-d $fromdir) {
-  parsedirectory($fromdir, $todir);
-}
-else {
-  parsefile($fromdir, $todir);
-}
-
-
-
-exit(0);
-
-
-# PROCEDURES  PROCEDURES  PROCEDURES  PROCEDURES  PROCEDURES
-
-
-sub parsedirectory {
-  my($fdir, $tdir) = @_;
-
-  my @ldirs = ();
-  my $DH;
-  opendir my($DH), $fdir or die "Could not open directory '$fdir': $!";
-  if ( !(-e $tdir) || !(-d $tdir) ) {
-    mkdir $tdir or die "Could not create directory '$tdir': $!";
-  }
-  my @flist = readdir $DH;
-  closedir $DH;
-  # remove . and ..
-  @flist = grep (! /(^\.$|^\.\.$)/ , @flist);
-
-  while (my $name = shift @flist) {
-    if (-d "$fdir/$name") {
-      push @ldirs, "$name";
-    }
-    else {
-      parsefile("$fdir/$name", "$tdir/$name");
-    }
-  }
-
-  while (my $name = shift @ldirs) {
-    parsedirectory("$fdir/$name", "$tdir/$name")
-  }
-
-} # parsedirectory
-
-
-# returns 1 if current state for tag is write, 0 otherwise
-sub iswritestate {
-  my $tag = "";
-
-  foreach $tag (keys %thash) {
-	if ( ($thash{$tag} eq "$ST_ELSE") ||
-		 ($thash{$tag} eq "$ST_IFN") ) {
-	  return(0);
-    }
-  }
-
-  return(1);
-} # iswritestate
-
-
-# Check $line for ifdef state changes for all of the tags and change
-# state.
-# If there is a state change error return 0, otherwise return 1;
-
-sub checkifdef {
-  my($TF, $line, $fromfilename) = @_;
-
-  if ( $line =~ /(#ifdef|#ifndef|#else|#endif).*($search)(\s|$|\*)/ ) {
-    my $copt = $1;
-    my $tag  = $2;
-
-	if ( $copt eq "#ifdef" ) {
-      if ($thash{"$tag"} eq "$ST_OFF") {
-        $thash{"$tag"} = "$ST_IF";
-        print "state change $tag: $ST_OFF -> $ST_IF\n" if (exists $opts{v});
-        $canwrite = iswritestate();
-      }
-      else {
-        print "Error: $fromfilename: Found '#ifdef $tag' with state $thash{$tag}\n";
-        return 0;
-      }
-    }
-    elsif ( $copt eq "#ifndef" ) {
-      if ($thash{"$tag"} eq "$ST_OFF") {
-        # before changing to a non-write state (ifn) print #IFNDEF
-        # line, if current state is a write state.
-        print $TF "$line"  if ( $canwrite );
-        $thash{"$tag"} = "$ST_IFN";
-        print "state change $tag: $ST_OFF -> $ST_IFN\n" if (exists $opts{v});
-        $canwrite = iswritestate();
-      }
-      else {
-        print "Error: $fromfilename: Found '#ifndef $tag' with state $thash{$tag}\n";
-        return 0;
-      }
-    }
-    elsif ( $copt eq "#else" ) {
-      if ($thash{"$tag"} eq "$ST_IF") {
-        # before changing to a non-write state (else) print #else
-        # line, if current state is a write state.
-        print $TF "$line"  if ( $canwrite );
-        $thash{"$tag"} = "$ST_ELSE";
-        print "state change $tag: $ST_IF -> $ST_ELSE\n" if (exists $opts{v});
-        $canwrite = iswritestate();
-      }
-      elsif ($thash{"$tag"} eq "$ST_IFN") {
-        $thash{"$tag"} = "$ST_ELSEN";
-        print "state change $tag: $ST_IFN -> $ST_ELSEN\n" if (exists $opts{v});
-        $canwrite = iswritestate();
-      }
-      else {
-        print "Error: $fromfilename: Found '#else (...) $tag' with state $thash{$tag}\n";
-        return 0;
-      }
-    }
-    elsif ( $copt eq "#endif" ) {
-      if (($thash{"$tag"} eq "$ST_ELSE")  || ($thash{"$tag"} eq "$ST_IF") ||
-          ($thash{"$tag"} eq "$ST_ELSEN") || ($thash{"$tag"} eq "$ST_IFN"))
-      {
-        print "state change $tag: $thash{$tag} -> $ST_OFF\n"
-          if (exists $opts{v});
-        $thash{"$tag"} = "$ST_OFF";
-        $canwrite = iswritestate();
-      }
-      else {
-        print "Error: Found '#endif (...) $tag' with state $thash{$tag}\n";
-        return 0;
-      }
-    }
-
-  } # foreach tag
-
-  return 1;
-} # checkifdef
-
-
-sub parsefile {
-  my($fname, $tname) = @_;
-  my $FF; my $TF;
-  my @fromfile = ();
-  $canwrite = 1;
-
-  # ignore file for file names
-  if ( (exists $opts{i}) && ("$fname" =~  /$igstring/) ) {
-    print "IGNORING $fname\n"  if ( exists $opts{v} );
-    return 1;
-  }
-
-  print "Info: Opening '$fname'\n" if ( exists $opts{v} );
-  if ( !(open($FF, "< $fname")) ) {
-	print "Warning: unable to open input file, skipping: '$fname': $!\n";
-	return 0;
-  }
-
-  my @fromfile = <$FF>;
-  $FF->close();
-
-  if ( !(open($TF, "> $tname")) ) {
-	print "Warning: unable to open output file, skipping: '$tname': $!\n";
-	return 0;
-  }
-  my $mode = (stat("$fname"))[2];
-  if ($mode) { my $resp = chmod $mode, "$tname"; }
-
-  my $line   = "";
-  my @tout  = ();
-  my $retval = 1;
-
-  while ( $line = shift @fromfile ) {
-    # check for any ifdef state changes
-	if ( ! checkifdef($TF, $line, $fname) ) {
-      $FF->close();
-      $TF->close();
-      die "Error: tag error in file \'$fname\', exiting\n";
-    }
-
-    if ( $canwrite ) {
-	  print $TF "$line";
-	}
-	else {
-	  print "Info: not copying: $fname: $line" if ( exists $opts{v} );
-    }
-
-  }
-
-  if (! $canwrite) {
-      print "End of $fname reached and we're not reset into 'canwrite' state\n";
-  }
-  $TF->close();
-
-  return $retval;
-} # parsefile
-
-
-# note, fromdir should have already been checked to exist and be a
-# directory
-sub load_minamal_ifdefs {
-    my @filelist = ();
-    my $MF;
-    
-    if ( !(open($MF, "< $fromdir/$minimal_include_path")) ) {
-        die "Unable to open main minimal feature file: '$fromdir/$minimal_include_path'\n";
-    }
-    my $line;
-    # skip preceding lines
-    while ( ($line = <$MF>) &&
-            ($line !~ /^#else.*NETSNMP_FEATURE_CHECKING/ ) ) {
-    }
-    # grab the fetaure .h files
-    while ( ($line = <$MF>) &&
-            ($line !~ /^#endif.*NET_SNMP_FEATURE_CHECKING/) ) {
-        if ($line =~ /include.*<(.*.h)>/) {
-            push @filelist, $1;
-        }
-    }
-
-    close($MF);
-
-    while (my $fname = shift @filelist) {
-        if ( !( -e "$fromdir/include/$fname" ) )  {
-            print "Warn: feature file does not exist, skipping: '$fromdir/include/$fname'";
-            next;
-        }
-        if ( !(open($MF, "< $fromdir/include/$fname")) ) {
-            die "Unable to open minimal feature file: '$fromdir/include/$fname'\n";
-        }
-        while ( ($line = <$MF>) ) {
-            if ( $line =~ /^#define.*(NETSNMP_FEATURE_REMOVE[^ ]+) / ) {
-                $thash{"$1"} = $ST_OFF;
-            }
-        }
-        close($MF);
-    }
-        
-} # load_minamal_ifdefs
-
-
-
-
diff --git a/local/minimalist/sizetests b/local/minimalist/sizetests
deleted file mode 100644
index 4ecd654..0000000
--- a/local/minimalist/sizetests
+++ /dev/null
@@ -1,359 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use Data::Dumper;
-use Getopt::Std;
-use IO::File;
-our %opts = (d => 'size-tests');
-
-# default arguments go here
-my @sets =
-    ({
-	"with-defaults" => '',
-     });
-
-my %base_args = %{$sets[0]};
-my ($basename, $basenum);
-
-getopts('t:hlcD:nj:o:eb:T', \%opts) || usage();
-
-$opts{'j'} = "-j$opts{j}" if (exists($opts{'j'}));
-
-usage() if ($opts{'h'});
-
-my @argumentsets =
-    (
-     {
-	 title => 'security-types',
-	 arguments =>
-	 {
-	     usm => {
-		 'with-security-modules' => 'usm',
-	     },
-	     dtlsandtls => {
-		 'with-security-modules'     => 'tsm',
-		 'with-out-security-modules' => 'usm',
-		 'with-transports'           => 'DTLSUDP TLSTCP',
-		 'with-mib-modules'          => 'tlstm-mib tsm-mib'
-	     },
-	     usmanddtlsandtls => {
-		 'with-security-modules'     => 'tsm usm',
-		 'with-transports'           => 'DTLSUDP TLSTCP',
-		 'with-mib-modules'          => 'tlstm-mib tsm-mib'
-	     }
-	 }
-     },
-     {
-	 title => 'minimalist',
-	 arguments =>
-	 { 
-	     minimal => {
-		 'enable-minimalist'    => '',
-	     },
-	     'not-minimal' => {
-	     }
-	 }
-     },
-     {
-	 title => 'mib-loading',
-	 arguments =>
-	 { 
-	     'without-mib-loading' => {
-		 'disable-mib-loading'    => '',
-	     },
-	     'with-mib-loading' => {
-	     }
-	 }
-     },
-     {
-	 title => 'debugging',
-	 arguments =>
-	 { 
-	     'without-debugging' => {
-		 'disable-debugging'    => '',
-	     },
-	     'with-debugging' => {
-	     }
-	 }
-     },
-     {
-	 title => 'logging',
-	 arguments =>
-	 { 
-	     'without-logging' => {
-		 'with-out-features'    => 'logging',
-	     },
-	     'with-logging' => {
-	     }
-	 }
-     },
-     {
-	 title => 'agent-mibs',
-	 arguments =>
-	 { 
-	     'full-agent' => {
-	     },
-	     'mini-agent' => {
-		 'enable-mini-agent' => '',
-	     }
-	 }
-     },
-     {
-	 title => 'protocol-support',
-	 arguments =>
-	 {
-	     'everything' => {
-	     },
-	     'read-only' => {
-		 'enable-read-only' => '',
-	     },
-	     'notify-only' => {
-		 'enable-notify-only' => '',
-	     }
-	 }
-     },
-     {
-	 title => 'perl',
-	 arguments =>
-	 { 
-	     'without-perl-modules' => {
-		 'without-perl-modules'    => '',
-		 'disable-embedded-perl' => '',
-	     },
-	     'with-perl-no-embedding' => {
-		 'with-perl-modules'    => '',
-		 'disable-embedded-perl' => '',
-	     },
-	     'with-perl-and-embedding' => {
-		 'with-perl-modules'    => '',
-		 'enable-embedded-perl' => '',
-	     }
-	 }
-     },
-    );
-
-# map these to a referencable lookup hash
-my %argumentsets;
-foreach my $set (@argumentsets) {
-    $argumentsets{$set->{'title'}} = $set;
-}
-
-if ($opts{'l'}) {
-    print "Types available:\n";
-    printf("  %-40.40s %s\n", "Test Title", "Number of subtests");
-    printf("  %-40.40s %s\n", "-" x 39, "-" x length("Number of subtests"));
-    foreach my $type (@argumentsets) {
-	my @keys = keys(%{$type->{'arguments'}});
-	printf("  %-40.40s %s\n", $type->{'title'}, $#keys+1);
-    }
-    exit;
-}
-
-my %types;
-if ($opts{'t'}) {
-    my @types = split(/,\s*/, $opts{'t'});
-    foreach my $type (@types) {
-	$types{$type} = 1;
-    }
-}
-
-if ($opts{'b'}) {
-    # use this set as the base default set of arguments
-    ($basename, $basenum) = ($opts{'b'} =~ /(.*):(\d+)/);
-    if (!exists($argumentsets{$basename})) {
-	printf STDERR "failed to find set for -b argument: %s\n", $basename;
-	exit(1);
-    }
-    @sets = add_in_flags($argumentsets{$basename}, \%base_args, ());
-    @sets = @sets[$basenum];
-    %base_args = %{$sets[0]};
-}
-
-foreach my $set (@argumentsets) {
-    if (!$opts{'t'} || exists($types{$set->{'title'}})) {
-        if ($basename && $set->{'title'} eq $basename) {
-            next;
-        }
-	@sets = add_in_flags($set, \%base_args, @sets);
-    }
-}
-
-if ($opts{'c'}) {
-    # print the configure flags
-    foreach my $set (@sets) {
-	print "$set->{'title'}:\n";
-	print " ", generate_configure_flags($set), "\n";
-    }
-    exit;
-}
-
-my $summaryfile;
-if ($opts{'o'} && !$opts{'n'}) {
-    $summaryfile = new IO::File;
-    $summaryfile->open(">$opts{o}");
-}
-
-my $count = 0;
-foreach my $set (@sets) {
-    $count++;
-    build_set($count, $set);
-}
-
-sub add_in_flags {
-    my ($argumentset, $base_flags, @current_flags) = @_;
-
-    my @new_flags;
-
-    # do a linear search of the options
-    if (! $opts{'e'}) {
-	@new_flags = @current_flags;
-	foreach my $newargs (keys(%{$argumentset->{'arguments'}})) {
-	    my %flags = %$base_flags;
-
-	    $flags{'title'} = "$flags{'title'}:$newargs";
-
-	    foreach my $newflag (keys(%{$argumentset->{'arguments'}{$newargs}})) {
-
-		$flags{$newflag} .= " $argumentset->{'arguments'}{$newargs}{$newflag}";
-	    }
-	    push @new_flags, \%flags;
-	}
-	return @new_flags;
-    }
-
-    # or an exponential search
-    foreach my $flags (@current_flags) {
-	foreach my $newargs (keys(%{$argumentset->{'arguments'}})) {
-	    my %flags = %{$flags};  # copy the existing hash-set of flags
-	    
-	    if (exists($flags{'title'})) {
-		$flags{'title'} .= ", $newargs";
-	    } else {
-		$flags{'title'} .= "$newargs";
-	    }
-	    foreach my $newflag (keys(%{$argumentset->{'arguments'}{$newargs}})) {
-
-		$flags{$newflag} .= " $argumentset->{'arguments'}{$newargs}{$newflag}";
-	    }
-
-	    push @new_flags, \%flags;
-	}
-    }
-
-    return @new_flags;
-}
-
-sub generate_configure_flags {
-    my ($arguments) = @_;
-    my $line = "";
-    foreach my $arg (keys(%$arguments)) {
-	next if ($arg eq 'title');
-	if ($arguments->{$arg} =~ /^\s*$/) {
-	    $line .= " --$arg";
-	} else {
-	    $line .= " --$arg=\"$arguments->{$arg}\"";
-	}
-    }
-    return $line;
-}
-
-sub build_set {
-    my ($num, $arguments) = @_;
-
-    $num = sprintf("%03d", $num);
-
-    my $file;
-
-    if (!$opts{'n'}) {
-	mkdir $opts{'d'} if (! -d $opts{'d'});
-	die "failed to create the $opts{'d'} directory" if (! -d $opts{'d'});
-
-	$file = new IO::File;
-	$file->open(">$opts{'d'}/$num-0-cmd-summary");
-	$file->print("Creating output for: $arguments->{'title'}\n");
-    }
-
-    print "==================== $arguments->{'title'}\n";
-
-
-    System ($file, $num, "1-distclean", "make distclean");
-    System ($file, $num, "2-configure",
-	    "./configure " . generate_configure_flags($arguments));
-    System ($file, $num, "3-features", "make features");
-    System ($file, $num, "4-make", "make $opts{'j'}");
-    System ($file, $num, "5-unused-code", "perl local/minimalist/find-unused-code -g");
-    System ($file, $num, "6-testing", "make -C testing test") if ($opts{'T'});
-
-    if (!$opts{'n'}) {
-	analyze_size($arguments->{'title'}, "$opts{'d'}/$num-9-results");
-    }
-}
-
-sub analyze_size {
-    my ($title, $filename) = @_;
-
-    my $outfile = new IO::File;
-    $outfile->open(">$filename");
-
-    print "Results for: $title\n";
-    printf $outfile "Results for: $title\n";
-    printf ("%-50.50s %10s\n", "-" x 49, "-" x 10);
-    printf $outfile ("%-50.50s %10s\n", "-" x 49, "-" x 10);
-
-    my $totalsize = 0;
-    foreach my $buildfile (glob("snmplib/.libs/lib*.so.*.0.0"),
-			   glob("agent/.libs/lib*.so.*.0.0"),
-			   "agent/.libs/snmpd") {
-
-	my @info = stat($buildfile);
-	printf $outfile ("%-50.50s %10s\n", $buildfile, $info[7]);
-	printf("%-50.50s %10s\n", $buildfile, $info[7]);
-	$totalsize += $info[7];
-    }
-    printf $outfile ("%-50.50s %10s\n", "-" x 49, "-" x 10);
-    printf $outfile ("%-50.50s %10s bytes\n", "TOTAL", $totalsize);
-
-    printf("%-50.50s %10s\n", "-" x 49, "-" x 10);
-    printf("%-50.50s %10s bytes\n", "TOTAL", $totalsize);
-
-    if (defined($summaryfile)) {
-	my $restricted_title = $title;
-	$restricted_title =~ s/[^a-zA-Z]/_/g;
-	printf $summaryfile "%10s %s \n", $totalsize, $title;
-    }
-
-    return $totalsize;
-}
-
-sub usage {
-    print "Usage: $0 [FLAGS]\n\n";
-    print "FLAGS:\n";
-    print "  -h\t\thelp\n";
-    print "  -t TYPES\tSelect types to analyze (default = all)\n";
-    print "  -l\t\tList available types\n";
-    print "  -c\t\tPrint the configuration flags that would be used\n";
-    print "  -D DIR\tSave data results to this directory\n";
-    print "  -o FILE\tSave a complete summary chart to FILE\n"; 
-    print "  -n\t\tDry run -- only show the commands to execute\n";
-    print "  -j NUM\tExecute make with parallel building (-jNUM)\n";
-    print "  -e\t\tUse exponential expansion (all combos) of the requested options\n";
-    print "  -b NAME:NUM\tUse NAME and the NUM'th set as the base arguments to start from\n";
-    print "  -T\t\tRun 'make test' at each step as well\n";
-    exit;
-}
-
-sub System {
-    my $file  = shift;
-    my $num   = shift;
-    my $title = shift;
-    my $pipe = " 2>&1 | tee $opts{'d'}/$num-$title.out\n";
-
-    print "### ", join(" ", @_), $pipe;
-    if (!$opts{'n'} && $file) {
-	print $file "### ", join(" ", @_), "\n";
-    }
-
-    if (!$opts{'n'}) {
-	system(join(" ", @_) . $pipe);
-    }
-}
diff --git a/local/net-snmp-cert b/local/net-snmp-cert
deleted file mode 100755
index a45dc57..0000000
--- a/local/net-snmp-cert
+++ /dev/null
@@ -1,2690 +0,0 @@
-#!/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)(?:#(?:[ [...]
-}
-
-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 at 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);
-
- at 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 ($ssl_cfg_in): 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);
- at 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);
- at 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 at 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 at users.sourceforge.net)
-
-=cut
-
diff --git a/local/net-snmp-cert.conf b/local/net-snmp-cert.conf
deleted file mode 100644
index 7def1cc..0000000
--- a/local/net-snmp-cert.conf
+++ /dev/null
@@ -1,72 +0,0 @@
-#
-# 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 at 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 at net-snmp.org
-   subjectAltName = URI:http://net-snmp.org
-};
-
-identity = {
-   id = CA-identity
-   host = net-snmp.org
-   cn = CA-identity
-   email = ca-admin at 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/pass_persisttest b/local/pass_persisttest
old mode 100755
new mode 100644
index f4045cc..9fd1deb
--- a/local/pass_persisttest
+++ b/local/pass_persisttest
@@ -1,27 +1,18 @@
 #!/usr/bin/perl
 
-# Persistent perl script to respond to pass-through smnp requests
+# Persistant perl script to respond to pass-through smnp requests
 
 # put the following in your snmpd.conf file to call this script:
 #
-# Unix systems and Cygwin:
-# pass_persist .1.3.6.1.4.1.8072.2.255 /path/to/pass_persisttest
-# Windows systems except Cygwin:
-# pass_persist .1.3.6.1.4.1.8072.2.255 perl /path/to/pass_persisttest
+# pass_persist .1.3.6.1.4.1.2021.255 /path/to/pass_persisttest
 
 # Forces a buffer flush after every print
 $|=1;
 
-# Save my PID, to help kill this instance.
-$PIDFILE=$ENV{'PASS_PERSIST_PIDFILE'} || "/tmp/pass_persist.pid";
-open(PIDFILE, ">$PIDFILE");
-print PIDFILE "$$\n";
-close(PIDFILE);
-
 use strict;
 
 my $counter = 0;
-my $place = ".1.3.6.1.4.1.8072.2.255";
+my $place = ".1.3.6.1.4.1.2021.255";
 
 while (<>){
   if (m!^PING!){
@@ -36,33 +27,21 @@ while (<>){
   chomp($req);
 
   if ( $cmd eq "getnext" ) {
-     if (($req eq  "$place")         ||
-         ($req eq  "$place.0")       ||
-         ($req =~ m/$place\.0\..*/)  ||
-         ($req eq  "$place.1"))       { $ret = "$place.1.0";}       # netSnmpPassString.0
-  elsif (($req =~ m/$place\.1\..*/)  ||
-         ($req eq  "$place.2")       ||
-         ($req eq  "$place.2.0")     ||
-         ($req =~ m/$place\.2\.0\..*/)    ||
-         ($req eq  "$place.2.1")          ||
-         ($req eq  "$place.2.1.0")        ||
-         ($req =~ m/$place\.2\.1\.0\..*/) ||
-         ($req eq  "$place.2.1.1")        ||
-         ($req =~ m/$place\.2\.1\.1\..*/) ||
-         ($req eq  "$place.2.1.2")        ||
-         ($req eq  "$place.2.1.2.0")) { $ret = "$place.2.1.2.1";}   # netSnmpPassInteger.1
-  elsif (($req =~ m/$place\.2\.1\.2\..*/) ||
-         ($req eq  "$place.2.1.3")   ||
-         ($req eq  "$place.2.1.3.0")) { $ret = "$place.2.1.3.1";}   # netSnmpPassOID.1
-  elsif (($req =~ m/$place\.2\..*/)  ||
-         ($req eq  "$place.3"))       { $ret = "$place.3.0";}       # netSnmpPassTimeTicks.0
-  elsif (($req =~ m/$place\.3\..*/)  ||
-         ($req eq  "$place.4"))       { $ret = "$place.4.0";}       # netSnmpPassIpAddress.0
-  elsif (($req =~ m/$place\.4\..*/)  ||
-         ($req eq  "$place.5"))       { $ret = "$place.5.0";}       # netSnmpPassCounter.0
-  elsif (($req =~ m/$place\.5\..*/)  ||
-         ($req eq  "$place.6"))       { $ret = "$place.6.0";}       # netSnmpPassGauge.0
-  else   {
+    if ($req eq $place) {
+      $ret = "$place.1";
+    } elsif ($req eq "$place.1") {
+      $ret = "$place.2.1";
+    } elsif ($req eq "$place.2.1") {
+      $ret = "$place.2.2";
+    } elsif ($req eq "$place.2.2") {
+      $ret = "$place.3";
+    } elsif ($req eq "$place.3") {
+      $ret = "$place.4";
+    } elsif ($req eq "$place.4") {
+      $ret = "$place.5";
+    } elsif ($req eq "$place.5") {
+      $ret = "$place.6";
+    } else {
       print "NONE\n";
       next;
     }
@@ -77,20 +56,20 @@ while (<>){
 
   print "$ret\n";
 
-  if ($ret eq "$place.1.0") {
-    print "string\nLife, the Universe, and Everything\n";
-  } elsif ($ret eq "$place.2.1.2.1") {
-    print "integer\n42\n";
-  } elsif ($ret eq "$place.2.1.3.1") {
-    print "objectid\n$place.99\n";
-  } elsif ($ret eq "$place.3.0") {
+  if ($ret eq "$place.1") {
+    print "string\nlife the universe and everything\n";
+  } elsif ($ret eq "$place.2.1") {
+    print "integer\n423\n";
+  } elsif ($ret eq "$place.2.2") {
+    print "objectid\n.1.3.6.1.4.42.42.42\n";
+  } elsif ($ret eq "$place.3") {
     print "timeticks\n363136200\n";
-  } elsif ($ret eq "$place.4.0") {
+  } elsif ($ret eq "$place.4") {
     print "ipaddress\n127.0.0.1\n";
-  } elsif ($ret eq "$place.5.0") {
+  } elsif ($ret eq "$place.5") {
     $counter++;
     print "counter\n$counter\n";
-  } elsif ($ret eq "$place.6.0") {
+  } elsif ($ret eq "$place.6") {
     print "gauge\n42\n";
   } else {
     print  "string\nack... $ret $req\n";
diff --git a/local/passtest b/local/passtest
index 40209c9..9ff65cf 100755
--- a/local/passtest
+++ b/local/passtest
@@ -1,82 +1,41 @@
 #!/bin/sh -f
 
-PLACE=".1.3.6.1.4.1.8072.2.255"  # NET-SNMP-PASS-MIB::netSnmpPassExamples
-REQ="$2"                         # Requested OID
+PATH=$path:/bin:/usr/bin:/usr/ucb
+
+PLACE=".1.3.6.1.4.1.2021.255"
+REQ="$2"
 
-#
-#  Process SET requests by simply logging the assigned value
-#      Note that such "assignments" are not persistent,
-#      nor is the syntax or requested value validated
-#  
 if [ "$1" = "-s" ]; then
   echo $* >> /tmp/passtest.log
   exit 0
 fi
 
-#
-#  GETNEXT requests - determine next valid instance
-#
 if [ "$1" = "-n" ]; then
   case "$REQ" in
-    $PLACE|		\
-    $PLACE.0|		\
-    $PLACE.0.*|		\
-    $PLACE.1)       RET=$PLACE.1.0 ;;     # netSnmpPassString.0
-
-    $PLACE.1.*|		\
-    $PLACE.2|		\
-    $PLACE.2.0|		\
-    $PLACE.2.0.*|	\
-    $PLACE.2.1|		\
-    $PLACE.2.1.0|	\
-    $PLACE.2.1.0.*|	\
-    $PLACE.2.1.1|	\
-    $PLACE.2.1.1.*|	\
-    $PLACE.2.1.2|	\
-    $PLACE.2.1.2.0) RET=$PLACE.2.1.2.1 ;; # netSnmpPassInteger.1
-
-    $PLACE.2.1.2.*|	\
-    $PLACE.2.1.3|	\
-    $PLACE.2.1.3.0) RET=$PLACE.2.1.3.1 ;; # netSnmpPassOID.1
-
-    $PLACE.2.*|		\
-    $PLACE.3)       RET=$PLACE.3.0 ;;     # netSnmpPassTimeTicks.0
-    $PLACE.3.*|		\
-    $PLACE.4)       RET=$PLACE.4.0 ;;     # netSnmpPassIpAddress.0
-    $PLACE.4.*|		\
-    $PLACE.5)       RET=$PLACE.5.0 ;;     # netSnmpPassCounter.0
-    $PLACE.5.*|		\
-    $PLACE.6)       RET=$PLACE.6.0 ;;     # netSnmpPassGauge.0
-
-    *)         	    exit 0 ;;
+    $PLACE)      RET=$PLACE.1 ;;
+    $PLACE.1)    RET=$PLACE.2.1 ;;
+    $PLACE.2.1)  RET=$PLACE.2.2 ;;
+    $PLACE.2.2)	 RET=$PLACE.3 ;;
+    $PLACE.3)    RET=$PLACE.4 ;;
+    $PLACE.4)    RET=$PLACE.5 ;;
+    $PLACE.5)    RET=$PLACE.6 ;;
+    *)         	 exit 0 ;;
   esac
 else
-#
-#  GET requests - check for valid instance
-#
   case "$REQ" in
-    $PLACE.1.0|		\
-    $PLACE.2.1.2.1|	\
-    $PLACE.2.1.3.1|	\
-    $PLACE.3.0|		\
-    $PLACE.4.0|		\
-    $PLACE.5.0|		\
-    $PLACE.6.0)     RET=$REQ ;;
-    *)         	    exit 0 ;;
+    $PLACE)    exit 0 ;;
+    *)         RET=$REQ ;;
   esac
 fi
 
-#
-#  "Process" GET* requests - return hard-coded value
-#
 echo "$RET"
 case "$RET" in
-  $PLACE.1.0)     echo "string";    echo "Life, the Universe, and Everything"; exit 0 ;;
-  $PLACE.2.1.2.1) echo "integer";   echo "42";                                 exit 0 ;;
-  $PLACE.2.1.3.1) echo "objectid";  echo "$PLACE.99";                          exit 0 ;;
-  $PLACE.3.0)     echo "timeticks"; echo "363136200";                          exit 0 ;;
-  $PLACE.4.0)     echo "ipaddress"; echo "127.0.0.1";                          exit 0 ;;
-  $PLACE.5.0)     echo "counter";   echo "42";                                 exit 0 ;;
-  $PLACE.6.0)     echo "gauge";     echo "42";                                 exit 0 ;;
-  *)              echo "string";    echo "ack... $RET $REQ";                   exit 0 ;;  # Should not happen
+  $PLACE.1) echo "string"; echo "life the universe and everything"; exit 0 ;;
+  $PLACE.2.1) echo "integer"; echo "42"; exit 0 ;;
+  $PLACE.2.2) echo "objectid"; echo ".1.3.6.1.4.42.42.42"; exit 0 ;;
+  $PLACE.3) echo "timeticks"; echo "363136200"; exit 0 ;;
+  $PLACE.4) echo "ipaddress"; echo "127.0.0.1" ;;
+  $PLACE.5) echo "counter"; echo "42"; exit 0 ;;
+  $PLACE.6) echo "gauge"; echo "42"; exit 0 ;;
+  *) echo "string"; echo "ack... $RET $REQ"; exit 0 ;;
 esac
diff --git a/local/passtest.pl b/local/passtest.pl
index c87fe18..049cf45 100755
--- a/local/passtest.pl
+++ b/local/passtest.pl
@@ -66,7 +66,7 @@ else {
 print "$ret\n";
    if ($ret eq "$place.1.0")     { print "string\nLife, the Universe, and Everything\n"; exit 0;}
 elsif ($ret eq "$place.2.1.2.1") { print "integer\n42\n";                                exit 0;}
-elsif ($ret eq "$place.2.1.3.1") { print "objectid\n$place.99\n";                        exit 0;}
+elsif ($ret eq "$place.2.1.3.1") { print "objectid\n.1.3.6.1.4.42.42.42\n";              exit 0;}
 elsif ($ret eq "$place.3.0")     { print "timeticks\n363136200\n";                       exit 0;}
 elsif ($ret eq "$place.4.0")     { print "ipaddress\n127.0.0.1\n";                       exit 0;}
 elsif ($ret eq "$place.5.0")     { print "counter\n42\n";                                exit 0;}
diff --git a/local/snmp-bridge-mib b/local/snmp-bridge-mib
deleted file mode 100644
index 880ea6b..0000000
--- a/local/snmp-bridge-mib
+++ /dev/null
@@ -1,1170 +0,0 @@
-#!/usr/bin/perl
-#
-# Copyright (c) IBM Corp. 2009, 2010, All Rights Reserved
-#
-# Author(s):	Vasileios Pappas <vpappas at us.ibm.com>
-#		Jens Osterkamp <jens at 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 ad392ee..84997ef 100755
--- a/local/snmpcheck.def
+++ b/local/snmpcheck.def
@@ -32,7 +32,7 @@ $default_set_args = "-v 1 %s private";
 $andlog=0;
 $snmppath="BINDIR";
 $eraseline="                                                                           \r";
-$fixit=0;  # this should be 0 not -1, but is necessary till getc(STDIN) works
+$fixit=0;  # this should be 0 not -1, but is necissary till getc(STDIN) works
 $rescanWhen = 300;
 $display = $ENV{'DISPLAY'};
 $hidden = 0;
diff --git a/local/tkmib b/local/tkmib
index 560c64f..aea22f3 100755
--- a/local/tkmib
+++ b/local/tkmib
@@ -346,7 +346,7 @@ sub insertvar {
     my $var = shift;
     my $name = get_oid($var);
 
-    insertresult($name,SNMP::Varbind::val($var));
+    insertresult($name,"$var->[$SNMP::Varbind::val_f]");
 }
 
 sub snmpsetup {
@@ -531,7 +531,7 @@ sub snmptable {
 		 $sess->{ErrorStr} ||
 		 $val eq "ENDOFMIBVIEW" ||
 	         !is_in_subtree($oid, $var->tag . "." . $var->iid));
-	$newoid = SNMP::Varbind::tag($var).".".SNMP::Varbind::iid($var);
+	$newoid = "$var->[$SNMP::Varbind::tag_f].$var->[$SNMP::Varbind::iid_f]";
 	insertvar($var);
 	$top->update();
 	$newoid =~ /([^\.]+)\.([0-9\.]+)$/;
@@ -598,7 +598,7 @@ sub updateGraph() {
 	    SNMP::translateObj($var->tag) !~ /^$oid/) {
 	    last;
 	}
-	my $newoid = SNMP::translateObj(SNMP::Varbind::tag($var).".".SNMP::Varbind::iid($var));
+	my $newoid = SNMP::translateObj("$var->[$SNMP::Varbind::tag_f].$var->[$SNMP::Varbind::iid_f]");
 	$top->update();
 	$newoid =~ /$oid\.([0-9\.]+)$/;
 	if (defined($1)) {
@@ -667,7 +667,7 @@ sub showInfo {
 	$full = SNMP::translateObj("$oid");
     }
 
-    $tag =~ s/\.[.0-9]+$//;
+    $tag =~ s/[.0-9]+$//;
     $oid = SNMP::translateObj($tag);
 	
     if (!defined($last) || "$last" ne $oid) {
diff --git a/ltmain.sh b/ltmain.sh
old mode 100755
new mode 100644
index ed1814f..27d498a
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -1,89 +1,52 @@
-
-# libtool (GNU libtool) 2.4
-# Written by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
-
+# ltmain.sh - Provide generalized library-building support services.
+# NOTE: Changing this file will not affect anything until you rerun configure.
+#
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions.  There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# GNU Libtool is free software; you can redistribute it and/or modify
+# 2007, 2008  Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or
 # (at your option) any later version.
 #
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful, but
+# This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Usage: $progname [OPTION]... [MODE-ARG]...
-#
-# Provide generalized library-building support services.
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
-#       --config             show all configuration variables
-#       --debug              enable verbose shell tracing
-#   -n, --dry-run            display commands without modifying any files
-#       --features           display basic configuration information and exit
-#       --mode=MODE          use operation mode MODE
-#       --preserve-dup-deps  don't remove duplicate dependency libraries
-#       --quiet, --silent    don't print informational messages
-#       --no-quiet, --no-silent
-#                            print informational messages (default)
-#       --tag=TAG            use configuration variables from tag TAG
-#   -v, --verbose            print more informational messages than default
-#       --no-verbose         don't print the extra informational messages
-#       --version            print version information
-#   -h, --help, --help-all   print short, long, or detailed help message
-#
-# MODE must be one of the following:
-#
-#         clean              remove files from the build directory
-#         compile            compile a source file into a libtool object
-#         execute            automatically set library path, then run a program
-#         finish             complete the installation of libtool libraries
-#         install            install libraries or executables
-#         link               create a library or an executable
-#         uninstall          remove libraries from an installed directory
-#
-# MODE-ARGS vary depending on the MODE.  When passed as first option,
-# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
-# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
-#
-# When reporting a bug, please describe a test case to reproduce it and
-# include the following information:
-#
-#         host-triplet:	$host
-#         shell:		$SHELL
-#         compiler:		$LTCC
-#         compiler flags:		$LTCFLAGS
-#         linker:		$LD (gnu? $with_gnu_ld)
-#         $progname:	(GNU libtool) 2.4
-#         automake:	$automake_version
-#         autoconf:	$autoconf_version
-#
-# Report bugs to <bug-libtool at gnu.org>.
-# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-# General help using GNU software: <http://www.gnu.org/gethelp/>.
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+basename="s,^.*/,,g"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+progname=`echo "$progpath" | $SED $basename`
+modename="$progname"
 
-PROGRAM=libtool
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
+PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION=2.4
-TIMESTAMP=""
-package_revision=1.3293
+VERSION=1.5.26
+TIMESTAMP=" (1.1220.2.492 2008/01/30 06:40:56)"
 
-# Be Bourne compatible
+# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
@@ -97,462 +60,104 @@ fi
 BIN_SH=xpg4; export BIN_SH # for Tru64
 DUALCASE=1; export DUALCASE # for MKS sh
 
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell, and then maybe $echo will work.
+  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit $EXIT_SUCCESS
+fi
+
+default_mode=
+help="Try \`$progname --help' for more information."
+magic="%%%MAGIC variable%%%"
+mkdir="mkdir"
+mv="mv -f"
+rm="rm -f"
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  SP2NL='tr \040 \012'
+  NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  SP2NL='tr \100 \n'
+  NL2SP='tr \r\n \100\100'
+  ;;
+esac
 
-# NLS nuisances: We save the old values to restore during execute mode.
-lt_user_locale=
-lt_safe_locale=
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+# We save the old values to restore during execute mode.
+lt_env=
 for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 do
   eval "if test \"\${$lt_var+set}\" = set; then
-          save_$lt_var=\$$lt_var
-          $lt_var=C
+	  save_$lt_var=\$$lt_var
+	  lt_env=\"$lt_var=\$$lt_var \$lt_env\"
+	  $lt_var=C
 	  export $lt_var
-	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
-	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
 	fi"
 done
-LC_ALL=C
-LANGUAGE=C
-export LANGUAGE LC_ALL
-
-$lt_unset CDPATH
-
 
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-
-
-: ${CP="cp -f"}
-test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-: ${EGREP="grep -E"}
-: ${FGREP="grep -F"}
-: ${GREP="grep"}
-: ${LN_S="ln -s"}
-: ${MAKE="make"}
-: ${MKDIR="mkdir"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-: ${SED="sed"}
-: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-: ${Xsed="$SED -e 1s/^X//"}
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
-EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
-
-exit_status=$EXIT_SUCCESS
+if test -n "$lt_env"; then
+  lt_env="env $lt_env"
+fi
 
 # Make sure IFS has a sensible default
 lt_nl='
 '
 IFS=" 	$lt_nl"
 
-dirname="s,/[^/]*$,,"
-basename="s,^.*/,,"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
-    if test "X$func_dirname_result" = "X${1}"; then
-      func_dirname_result="${3}"
-    else
-      func_dirname_result="$func_dirname_result${2}"
-    fi
-} # func_dirname may be replaced by extended shell implementation
-
-
-# func_basename file
-func_basename ()
-{
-    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-} # func_basename may be replaced by extended shell implementation
-
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-    # Extract subdirectory from the argument.
-    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
-    if test "X$func_dirname_result" = "X${1}"; then
-      func_dirname_result="${3}"
-    else
-      func_dirname_result="$func_dirname_result${2}"
-    fi
-    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-} # func_dirname_and_basename may be replaced by extended shell implementation
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-    case ${2} in
-      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-    esac
-} # func_stripname may be replaced by extended shell implementation
-
-
-# These SED scripts presuppose an absolute path with a trailing slash.
-pathcar='s,^/\([^/]*\).*$,\1,'
-pathcdr='s,^/[^/]*,,'
-removedotparts=':dotsl
-		s@/\./@/@g
-		t dotsl
-		s,/\.$,/,'
-collapseslashes='s@/\{1,\}@/@g'
-finalslash='s,/*$,/,'
-
-# func_normal_abspath PATH
-# Remove doubled-up and trailing slashes, "." path components,
-# and cancel out any ".." path components in PATH after making
-# it an absolute path.
-#             value returned in "$func_normal_abspath_result"
-func_normal_abspath ()
-{
-  # Start from root dir and reassemble the path.
-  func_normal_abspath_result=
-  func_normal_abspath_tpath=$1
-  func_normal_abspath_altnamespace=
-  case $func_normal_abspath_tpath in
-    "")
-      # Empty path, that just means $cwd.
-      func_stripname '' '/' "`pwd`"
-      func_normal_abspath_result=$func_stripname_result
-      return
-    ;;
-    # The next three entries are used to spot a run of precisely
-    # two leading slashes without using negated character classes;
-    # we take advantage of case's first-match behaviour.
-    ///*)
-      # Unusual form of absolute path, do nothing.
-    ;;
-    //*)
-      # Not necessarily an ordinary path; POSIX reserves leading '//'
-      # and for example Cygwin uses it to access remote file shares
-      # over CIFS/SMB, so we conserve a leading double slash if found.
-      func_normal_abspath_altnamespace=/
-    ;;
-    /*)
-      # Absolute path, do nothing.
-    ;;
-    *)
-      # Relative path, prepend $cwd.
-      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
-    ;;
-  esac
-  # Cancel out all the simple stuff to save iterations.  We also want
-  # the path to end with a slash for ease of parsing, so make sure
-  # there is one (and only one) here.
-  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
-  while :; do
-    # Processed it all yet?
-    if test "$func_normal_abspath_tpath" = / ; then
-      # If we ascended to the root using ".." the result may be empty now.
-      if test -z "$func_normal_abspath_result" ; then
-        func_normal_abspath_result=/
-      fi
-      break
-    fi
-    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$pathcar"`
-    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$pathcdr"`
-    # Figure out what to do with it
-    case $func_normal_abspath_tcomponent in
-      "")
-        # Trailing empty path component, ignore it.
-      ;;
-      ..)
-        # Parent dir; strip last assembled component from result.
-        func_dirname "$func_normal_abspath_result"
-        func_normal_abspath_result=$func_dirname_result
-      ;;
-      *)
-        # Actual path component, append it.
-        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
-      ;;
-    esac
-  done
-  # Restore leading double-slash if one was found on entry.
-  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-}
-
-# func_relative_path SRCDIR DSTDIR
-# generates a relative path from SRCDIR to DSTDIR, with a trailing
-# slash if non-empty, suitable for immediately appending a filename
-# without needing to append a separator.
-#             value returned in "$func_relative_path_result"
-func_relative_path ()
-{
-  func_relative_path_result=
-  func_normal_abspath "$1"
-  func_relative_path_tlibdir=$func_normal_abspath_result
-  func_normal_abspath "$2"
-  func_relative_path_tbindir=$func_normal_abspath_result
-
-  # Ascend the tree starting from libdir
-  while :; do
-    # check if we have found a prefix of bindir
-    case $func_relative_path_tbindir in
-      $func_relative_path_tlibdir)
-        # found an exact match
-        func_relative_path_tcancelled=
-        break
-        ;;
-      $func_relative_path_tlibdir*)
-        # found a matching prefix
-        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
-        func_relative_path_tcancelled=$func_stripname_result
-        if test -z "$func_relative_path_result"; then
-          func_relative_path_result=.
-        fi
-        break
-        ;;
-      *)
-        func_dirname $func_relative_path_tlibdir
-        func_relative_path_tlibdir=${func_dirname_result}
-        if test "x$func_relative_path_tlibdir" = x ; then
-          # Have to descend all the way to the root!
-          func_relative_path_result=../$func_relative_path_result
-          func_relative_path_tcancelled=$func_relative_path_tbindir
-          break
-        fi
-        func_relative_path_result=../$func_relative_path_result
-        ;;
-    esac
-  done
-
-  # Now calculate path; take care to avoid doubling-up slashes.
-  func_stripname '' '/' "$func_relative_path_result"
-  func_relative_path_result=$func_stripname_result
-  func_stripname '/' '/' "$func_relative_path_tcancelled"
-  if test "x$func_stripname_result" != x ; then
-    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
-  fi
-
-  # Normalisation. If bindir is libdir, return empty string,
-  # else relative path ending with a slash; either way, target
-  # file name can be directly appended.
-  if test ! -z "$func_relative_path_result"; then
-    func_stripname './' '' "$func_relative_path_result/"
-    func_relative_path_result=$func_stripname_result
-  fi
-}
-
-# The name of this program:
-func_dirname_and_basename "$progpath"
-progname=$func_basename_result
-
-# Make sure we have an absolute path for reexecution:
-case $progpath in
-  [\\/]*|[A-Za-z]:\\*) ;;
-  *[\\/]*)
-     progdir=$func_dirname_result
-     progdir=`cd "$progdir" && pwd`
-     progpath="$progdir/$progname"
-     ;;
-  *)
-     save_IFS="$IFS"
-     IFS=:
-     for progdir in $PATH; do
-       IFS="$save_IFS"
-       test -x "$progdir/$progname" && break
-     done
-     IFS="$save_IFS"
-     test -n "$progdir" || progdir=`pwd`
-     progpath="$progdir/$progname"
-     ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution that turns a string into a regex matching for the
-# string literally.
-sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
-
-# Sed substitution that converts a w32 file name or path
-# which contains forward slashes, into one that contains
-# (escaped) backslashes.  A very naive implementation.
-lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-
-# Re-`\' parameter expansions in output of double_quote_subst that were
-# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
-# in input to double_quote_subst, that '$' was protected from expansion.
-# Since each input `\' is now two `\'s, look for any number of runs of
-# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
-bs='\\'
-bs2='\\\\'
-bs4='\\\\\\\\'
-dollar='\$'
-sed_double_backslash="\
-  s/$bs4/&\\
-/g
-  s/^$bs2$dollar/$bs&/
-  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
-  s/\n//g"
-
-# Standard options:
-opt_dry_run=false
-opt_help=false
-opt_quiet=false
-opt_verbose=false
-opt_warning=:
-
-# func_echo arg...
-# Echo program name prefixed message, along with the current mode
-# name if it has been set yet.
-func_echo ()
-{
-    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-}
-
-# func_verbose arg...
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
-    $opt_verbose && func_echo ${1+"$@"}
-
-    # A bug in bash halts the script if the last line of a function
-    # fails when set -e is in force, so we need another command to
-    # work around that:
-    :
-}
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO "$*"
-}
-
-# func_error arg...
-# Echo program name prefixed message to standard error.
-func_error ()
-{
-    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-}
-
-# func_warning arg...
-# Echo program name prefixed warning message to standard error.
-func_warning ()
-{
-    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-
-    # bash bug again:
-    :
-}
-
-# func_fatal_error arg...
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
-{
-    func_error ${1+"$@"}
-    exit $EXIT_FAILURE
-}
-
-# func_fatal_help arg...
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
-    func_error ${1+"$@"}
-    func_fatal_error "$help"
-}
-help="Try \`$progname --help' for more information."  ## default
-
-
-# func_grep expression filename
-# Check whether EXPRESSION matches any line of FILENAME, without output.
-func_grep ()
-{
-    $GREP "$1" "$2" >/dev/null 2>&1
-}
-
-
-# func_mkdir_p directory-path
-# Make sure the entire path to DIRECTORY-PATH is available.
-func_mkdir_p ()
-{
-    my_directory_path="$1"
-    my_dir_list=
-
-    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
-
-      # Protect directory names starting with `-'
-      case $my_directory_path in
-        -*) my_directory_path="./$my_directory_path" ;;
-      esac
-
-      # While some portion of DIR does not yet exist...
-      while test ! -d "$my_directory_path"; do
-        # ...make a list in topmost first order.  Use a colon delimited
-	# list incase some portion of path contains whitespace.
-        my_dir_list="$my_directory_path:$my_dir_list"
-
-        # If the last portion added has no slash in it, the list is done
-        case $my_directory_path in */*) ;; *) break ;; esac
-
-        # ...otherwise throw away the child directory and loop
-        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
-      done
-      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
-
-      save_mkdir_p_IFS="$IFS"; IFS=':'
-      for my_dir in $my_dir_list; do
-	IFS="$save_mkdir_p_IFS"
-        # mkdir can fail with a `File exist' error if two processes
-        # try to create one of the directories concurrently.  Don't
-        # stop in that case!
-        $MKDIR "$my_dir" 2>/dev/null || :
-      done
-      IFS="$save_mkdir_p_IFS"
+if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+  $echo "$modename: not configured to build any kind of library" 1>&2
+  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+  exit $EXIT_FAILURE
+fi
 
-      # Bail out if we (or some other process) failed to create a directory.
-      test -d "$my_directory_path" || \
-        func_fatal_error "Failed to create \`$1'"
-    fi
-}
+# Global variables.
+mode=$default_mode
+nonopt=
+prev=
+prevopt=
+run=
+show="$echo"
+show_help=
+execute_dlfiles=
+duplicate_deps=no
+preserve_args=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+extracted_archives=
+extracted_serial=0
 
+#####################################
+# Shell function definitions:
+# This seems to be the best place for them
 
 # func_mktempdir [string]
 # Make a temporary directory that won't clash with other running
@@ -562,7 +167,7 @@ func_mktempdir ()
 {
     my_template="${TMPDIR-/tmp}/${1-$progname}"
 
-    if test "$opt_dry_run" = ":"; then
+    if test "$run" = ":"; then
       # Return a directory name, but don't create it in dry-run mode
       my_tmpdir="${my_template}-$$"
     else
@@ -571,8860 +176,6358 @@ func_mktempdir ()
       my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
 
       if test ! -d "$my_tmpdir"; then
-        # Failing that, at least try and use $RANDOM to avoid a race
-        my_tmpdir="${my_template}-${RANDOM-0}$$"
+	# Failing that, at least try and use $RANDOM to avoid a race
+	my_tmpdir="${my_template}-${RANDOM-0}$$"
 
-        save_mktempdir_umask=`umask`
-        umask 0077
-        $MKDIR "$my_tmpdir"
-        umask $save_mktempdir_umask
+	save_mktempdir_umask=`umask`
+	umask 0077
+	$mkdir "$my_tmpdir"
+	umask $save_mktempdir_umask
       fi
 
       # If we're not in dry-run mode, bomb out on failure
-      test -d "$my_tmpdir" || \
-        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+      test -d "$my_tmpdir" || {
+        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
+	exit $EXIT_FAILURE
+      }
     fi
 
-    $ECHO "$my_tmpdir"
-}
-
-
-# func_quote_for_eval arg
-# Aesthetically quote ARG to be evaled later.
-# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
-# is double-quoted, suitable for a subsequent eval, whereas
-# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
-# which are still active within double quotes backslashified.
-func_quote_for_eval ()
-{
-    case $1 in
-      *[\\\`\"\$]*)
-	func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
-      *)
-        func_quote_for_eval_unquoted_result="$1" ;;
-    esac
-
-    case $func_quote_for_eval_unquoted_result in
-      # Double-quote args containing shell metacharacters to delay
-      # word splitting, command substitution and and variable
-      # expansion for a subsequent eval.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
-        ;;
-      *)
-        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
-    esac
-}
-
-
-# func_quote_for_expand arg
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
-{
-    case $1 in
-      *[\\\`\"]*)
-	my_arg=`$ECHO "$1" | $SED \
-	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
-      *)
-        my_arg="$1" ;;
-    esac
-
-    case $my_arg in
-      # Double-quote args containing shell metacharacters to delay
-      # word splitting and command substitution for a subsequent eval.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-        my_arg="\"$my_arg\""
-        ;;
-    esac
-
-    func_quote_for_expand_result="$my_arg"
-}
-
-
-# func_show_eval cmd [fail_exp]
-# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
-# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.
-func_show_eval ()
-{
-    my_cmd="$1"
-    my_fail_exp="${2-:}"
-
-    ${opt_silent-false} || {
-      func_quote_for_expand "$my_cmd"
-      eval "func_echo $func_quote_for_expand_result"
-    }
-
-    if ${opt_dry_run-false}; then :; else
-      eval "$my_cmd"
-      my_status=$?
-      if test "$my_status" -eq 0; then :; else
-	eval "(exit $my_status); $my_fail_exp"
-      fi
-    fi
+    $echo "X$my_tmpdir" | $Xsed
 }
 
 
-# func_show_eval_locale cmd [fail_exp]
-# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
-# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.  Use the saved locale for evaluation.
-func_show_eval_locale ()
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
 {
-    my_cmd="$1"
-    my_fail_exp="${2-:}"
-
-    ${opt_silent-false} || {
-      func_quote_for_expand "$my_cmd"
-      eval "func_echo $func_quote_for_expand_result"
-    }
-
-    if ${opt_dry_run-false}; then :; else
-      eval "$lt_user_locale
-	    $my_cmd"
-      my_status=$?
-      eval "$lt_safe_locale"
-      if test "$my_status" -eq 0; then :; else
-	eval "(exit $my_status); $my_fail_exp"
-      fi
+  win32_libid_type="unknown"
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
+      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+      win32_nmres=`eval $NM -f posix -A $1 | \
+	$SED -n -e '1,100{
+		/ I /{
+			s,.*,import,
+			p
+			q
+			}
+		}'`
+      case $win32_nmres in
+      import*)  win32_libid_type="x86 archive import";;
+      *)        win32_libid_type="x86 archive static";;
+      esac
     fi
-}
-
-# func_tr_sh
-# Turn $1 into a string suitable for a shell variable name.
-# Result is stored in $func_tr_sh_result.  All characters
-# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
-# if $1 begins with a digit, a '_' is prepended as well.
-func_tr_sh ()
-{
-  case $1 in
-  [0-9]* | *[!a-zA-Z0-9_]*)
-    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
     ;;
-  * )
-    func_tr_sh_result=$1
+  *DLL*)
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
     ;;
   esac
+  $echo $win32_libid_type
 }
 
 
-# func_version
-# Echo version message to standard output and exit.
-func_version ()
-{
-    $opt_debug
-
-    $SED -n '/(C)/!b go
-	:more
-	/\./!{
-	  N
-	  s/\n# / /
-	  b more
-	}
-	:go
-	/^# '$PROGRAM' (GNU /,/# warranty; / {
-        s/^# //
-	s/^# *$//
-        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
-        p
-     }' < "$progpath"
-     exit $?
-}
-
-# func_usage
-# Echo short help message to standard output and exit.
-func_usage ()
-{
-    $opt_debug
-
-    $SED -n '/^# Usage:/,/^#  *.*--help/ {
-        s/^# //
-	s/^# *$//
-	s/\$progname/'$progname'/
-	p
-    }' < "$progpath"
-    echo
-    $ECHO "run \`$progname --help | more' for full usage"
-    exit $?
-}
-
-# func_help [NOEXIT]
-# Echo long help message to standard output and exit,
-# unless 'noexit' is passed as argument.
-func_help ()
-{
-    $opt_debug
-
-    $SED -n '/^# Usage:/,/# Report bugs to/ {
-	:print
-        s/^# //
-	s/^# *$//
-	s*\$progname*'$progname'*
-	s*\$host*'"$host"'*
-	s*\$SHELL*'"$SHELL"'*
-	s*\$LTCC*'"$LTCC"'*
-	s*\$LTCFLAGS*'"$LTCFLAGS"'*
-	s*\$LD*'"$LD"'*
-	s/\$with_gnu_ld/'"$with_gnu_ld"'/
-	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
-	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
-	p
-	d
-     }
-     /^# .* home page:/b print
-     /^# General help using/b print
-     ' < "$progpath"
-    ret=$?
-    if test -z "$1"; then
-      exit $ret
-    fi
-}
-
-# func_missing_arg argname
-# Echo program name prefixed message to standard error and set global
-# exit_cmd.
-func_missing_arg ()
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
 {
-    $opt_debug
-
-    func_error "missing argument for $1."
-    exit_cmd=exit
+    if test -n "$available_tags" && test -z "$tagname"; then
+      CC_quoted=
+      for arg in $CC; do
+	case $arg in
+	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	CC_quoted="$CC_quoted $arg"
+      done
+      case $@ in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+	    CC_quoted=
+	    for arg in $CC; do
+	    # Double-quote args containing other shell metacharacters.
+	    case $arg in
+	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	      arg="\"$arg\""
+	      ;;
+	    esac
+	    CC_quoted="$CC_quoted $arg"
+	  done
+	    case "$@ " in
+	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
+	      # The compiler in the base compile command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  $echo "$modename: unable to infer tagged configuration"
+	  $echo "$modename: specify a tag with \`--tag'" 1>&2
+	  exit $EXIT_FAILURE
+#        else
+#          $echo "$modename: using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
 }
 
 
-# func_split_short_opt shortopt
-# Set func_split_short_opt_name and func_split_short_opt_arg shell
-# variables after splitting SHORTOPT after the 2nd character.
-func_split_short_opt ()
-{
-    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
-    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
-
-    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
-    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
-} # func_split_short_opt may be replaced by extended shell implementation
-
-
-# func_split_long_opt longopt
-# Set func_split_long_opt_name and func_split_long_opt_arg shell
-# variables after splitting LONGOPT at the `=' sign.
-func_split_long_opt ()
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
 {
-    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
-    my_sed_long_arg='1s/^--[^=]*=//'
-
-    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
-    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
-} # func_split_long_opt may be replaced by extended shell implementation
-
-exit_cmd=:
-
-
-
-
-
-magic="%%%MAGIC variable%%%"
-magic_exe="%%%MAGIC EXE variable%%%"
-
-# Global variables.
-nonopt=
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end.  This prevents here-documents from being
-# left over by shells.
-exec_cmd=
+    f_ex_an_ar_dir="$1"; shift
+    f_ex_an_ar_oldlib="$1"
 
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-    eval "${1}=\$${1}\${2}"
-} # func_append may be replaced by extended shell implementation
+    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
+    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+     :
+    else
+      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
+      exit $EXIT_FAILURE
+    fi
+}
 
-# func_append_quoted var value
-# Quote VALUE and append to the end of shell variable VAR, separated
-# by a space.
-func_append_quoted ()
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
 {
-    func_quote_for_eval "${2}"
-    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
-} # func_append_quoted may be replaced by extended shell implementation
-
+    my_gentop="$1"; shift
+    my_oldlibs=${1+"$@"}
+    my_oldobjs=""
+    my_xlib=""
+    my_xabs=""
+    my_xdir=""
+    my_status=""
+
+    $show "${rm}r $my_gentop"
+    $run ${rm}r "$my_gentop"
+    $show "$mkdir $my_gentop"
+    $run $mkdir "$my_gentop"
+    my_status=$?
+    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
+      exit $my_status
+    fi
 
-# func_arith arithmetic-term...
-func_arith ()
-{
-    func_arith_result=`expr "${@}"`
-} # func_arith may be replaced by extended shell implementation
+    for my_xlib in $my_oldlibs; do
+      # Extract the objects.
+      case $my_xlib in
+	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+	*) my_xabs=`pwd`"/$my_xlib" ;;
+      esac
+      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
+      my_xlib_u=$my_xlib
+      while :; do
+        case " $extracted_archives " in
+	*" $my_xlib_u "*)
+	  extracted_serial=`expr $extracted_serial + 1`
+	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
+	*) break ;;
+	esac
+      done
+      extracted_archives="$extracted_archives $my_xlib_u"
+      my_xdir="$my_gentop/$my_xlib_u"
 
+      $show "${rm}r $my_xdir"
+      $run ${rm}r "$my_xdir"
+      $show "$mkdir $my_xdir"
+      $run $mkdir "$my_xdir"
+      exit_status=$?
+      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
+	exit $exit_status
+      fi
+      case $host in
+      *-darwin*)
+	$show "Extracting $my_xabs"
+	# Do not bother doing anything if just a dry run
+	if test -z "$run"; then
+	  darwin_orig_dir=`pwd`
+	  cd $my_xdir || exit $?
+	  darwin_archive=$my_xabs
+	  darwin_curdir=`pwd`
+	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
+	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
+	  if test -n "$darwin_arches"; then 
+	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
+	    darwin_arch=
+	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
+	    for darwin_arch in  $darwin_arches ; do
+	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+	      cd "$darwin_curdir"
+	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+	    done # $darwin_arches
+      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
+	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
+	    darwin_file=
+	    darwin_files=
+	    for darwin_file in $darwin_filelist; do
+	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+	      lipo -create -output "$darwin_file" $darwin_files
+	    done # $darwin_filelist
+	    ${rm}r unfat-$$
+	    cd "$darwin_orig_dir"
+	  else
+	    cd "$darwin_orig_dir"
+ 	    func_extract_an_archive "$my_xdir" "$my_xabs"
+	  fi # $darwin_arches
+	fi # $run
+	;;
+      *)
+        func_extract_an_archive "$my_xdir" "$my_xabs"
+        ;;
+      esac
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+    done
+    func_extract_archives_result="$my_oldobjs"
+}
+# End of Shell function definitions
+#####################################
 
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
-} # func_len may be replaced by extended shell implementation
+# Darwin sucks
+eval std_shrext=\"$shrext_cmds\"
 
+disable_libs=no
 
-# func_lo2o object
-func_lo2o ()
-{
-    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-} # func_lo2o may be replaced by extended shell implementation
+# Parse our command line options once, thoroughly.
+while test "$#" -gt 0
+do
+  arg="$1"
+  shift
 
+  case $arg in
+  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) optarg= ;;
+  esac
 
-# func_xform libobj-or-source
-func_xform ()
-{
-    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-} # func_xform may be replaced by extended shell implementation
+  # If the previous option needs an argument, assign it.
+  if test -n "$prev"; then
+    case $prev in
+    execute_dlfiles)
+      execute_dlfiles="$execute_dlfiles $arg"
+      ;;
+    tag)
+      tagname="$arg"
+      preserve_args="${preserve_args}=$arg"
+
+      # Check whether tagname contains only valid characters
+      case $tagname in
+      *[!-_A-Za-z0-9,/]*)
+	$echo "$progname: invalid tag name: $tagname" 1>&2
+	exit $EXIT_FAILURE
+	;;
+      esac
 
+      case $tagname in
+      CC)
+	# Don't test for the "default" C tag, as we know, it's there, but
+	# not specially marked.
+	;;
+      *)
+	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
+	  taglist="$taglist $tagname"
+	  # Evaluate the configuration.
+	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
+	else
+	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
+	fi
+	;;
+      esac
+      ;;
+    *)
+      eval "$prev=\$arg"
+      ;;
+    esac
 
-# func_fatal_configuration arg...
-# Echo program name prefixed message to standard error, followed by
-# a configuration failure hint, and exit.
-func_fatal_configuration ()
-{
-    func_error ${1+"$@"}
-    func_error "See the $PACKAGE documentation for more information."
-    func_fatal_error "Fatal configuration error."
-}
+    prev=
+    prevopt=
+    continue
+  fi
 
+  # Have we seen a non-optional argument yet?
+  case $arg in
+  --help)
+    show_help=yes
+    ;;
 
-# func_config
-# Display the configuration for all the tags in this script.
-func_config ()
-{
-    re_begincf='^# ### BEGIN LIBTOOL'
-    re_endcf='^# ### END LIBTOOL'
+  --version)
+    echo "\
+$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
 
-    # Default configuration.
-    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
+Copyright (C) 2008  Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+    exit $?
+    ;;
 
+  --config)
+    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
     # Now print the configurations for the tags.
     for tagname in $taglist; do
-      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
+      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
     done
-
     exit $?
-}
+    ;;
 
-# func_features
-# Display the features supported by this script.
-func_features ()
-{
-    echo "host: $host"
+  --debug)
+    $echo "$progname: enabling shell trace mode"
+    set -x
+    preserve_args="$preserve_args $arg"
+    ;;
+
+  --dry-run | -n)
+    run=:
+    ;;
+
+  --features)
+    $echo "host: $host"
     if test "$build_libtool_libs" = yes; then
-      echo "enable shared libraries"
+      $echo "enable shared libraries"
     else
-      echo "disable shared libraries"
+      $echo "disable shared libraries"
     fi
     if test "$build_old_libs" = yes; then
-      echo "enable static libraries"
+      $echo "enable static libraries"
     else
-      echo "disable static libraries"
+      $echo "disable static libraries"
     fi
-
     exit $?
-}
+    ;;
 
-# func_enable_tag tagname
-# Verify that TAGNAME is valid, and either flag an error and exit, or
-# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
-# variable here.
-func_enable_tag ()
-{
-  # Global variable:
-  tagname="$1"
+  --finish) mode="finish" ;;
 
-  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
-  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
-  sed_extractcf="/$re_begincf/,/$re_endcf/p"
+  --mode) prevopt="--mode" prev=mode ;;
+  --mode=*) mode="$optarg" ;;
 
-  # Validate tagname.
-  case $tagname in
-    *[!-_A-Za-z0-9,/]*)
-      func_fatal_error "invalid tag name: $tagname"
-      ;;
-  esac
+  --preserve-dup-deps) duplicate_deps="yes" ;;
 
-  # Don't test for the "default" C tag, as we know it's
-  # there but not specially marked.
-  case $tagname in
-    CC) ;;
-    *)
-      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
-	taglist="$taglist $tagname"
-
-	# Evaluate the configuration.  Be careful to quote the path
-	# and the sed script, to avoid splitting on whitespace, but
-	# also don't use non-portable quotes within backquotes within
-	# quotes we have to do it in 2 steps:
-	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
-	eval "$extractedcf"
-      else
-	func_error "ignoring unknown tag $tagname"
-      fi
-      ;;
-  esac
-}
+  --quiet | --silent)
+    show=:
+    preserve_args="$preserve_args $arg"
+    ;;
 
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
-  if test "$package_revision" != "$macro_revision"; then
-    if test "$VERSION" != "$macro_version"; then
-      if test -z "$macro_version"; then
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      else
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      fi
-    else
-      cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
-    fi
+  --tag)
+    prevopt="--tag"
+    prev=tag
+    preserve_args="$preserve_args --tag"
+    ;;
+  --tag=*)
+    set tag "$optarg" ${1+"$@"}
+    shift
+    prev=tag
+    preserve_args="$preserve_args --tag"
+    ;;
 
-    exit $EXIT_MISMATCH
-  fi
-}
+  -dlopen)
+    prevopt="-dlopen"
+    prev=execute_dlfiles
+    ;;
 
+  -*)
+    $echo "$modename: unrecognized option \`$arg'" 1>&2
+    $echo "$help" 1>&2
+    exit $EXIT_FAILURE
+    ;;
 
-# Shorthand for --mode=foo, only valid as the first argument
-case $1 in
-clean|clea|cle|cl)
-  shift; set dummy --mode clean ${1+"$@"}; shift
-  ;;
-compile|compil|compi|comp|com|co|c)
-  shift; set dummy --mode compile ${1+"$@"}; shift
-  ;;
-execute|execut|execu|exec|exe|ex|e)
-  shift; set dummy --mode execute ${1+"$@"}; shift
-  ;;
-finish|finis|fini|fin|fi|f)
-  shift; set dummy --mode finish ${1+"$@"}; shift
-  ;;
-install|instal|insta|inst|ins|in|i)
-  shift; set dummy --mode install ${1+"$@"}; shift
+  *)
+    nonopt="$arg"
+    break
+    ;;
+  esac
+done
+
+if test -n "$prevopt"; then
+  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+  $echo "$help" 1>&2
+  exit $EXIT_FAILURE
+fi
+
+case $disable_libs in
+no) 
   ;;
-link|lin|li|l)
-  shift; set dummy --mode link ${1+"$@"}; shift
+shared)
+  build_libtool_libs=no
+  build_old_libs=yes
   ;;
-uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-  shift; set dummy --mode uninstall ${1+"$@"}; shift
+static)
+  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
   ;;
 esac
 
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
 
+if test -z "$show_help"; then
 
-# Option defaults:
-opt_debug=:
-opt_dry_run=false
-opt_config=false
-opt_preserve_dup_deps=false
-opt_features=false
-opt_finish=false
-opt_help=false
-opt_help_all=false
-opt_silent=:
-opt_verbose=:
-opt_silent=false
-opt_verbose=false
-
-
-# Parse options once, thoroughly.  This comes as soon as possible in the
-# script to make things like `--version' happen as quickly as we can.
-{
-  # this just eases exit handling
-  while test $# -gt 0; do
-    opt="$1"
-    shift
-    case $opt in
-      --debug|-x)	opt_debug='set -x'
-			func_echo "enabling shell trace mode"
-			$opt_debug
-			;;
-      --dry-run|--dryrun|-n)
-			opt_dry_run=:
-			;;
-      --config)
-			opt_config=:
-func_config
-			;;
-      --dlopen|-dlopen)
-			optarg="$1"
-			opt_dlopen="${opt_dlopen+$opt_dlopen
-}$optarg"
-			shift
-			;;
-      --preserve-dup-deps)
-			opt_preserve_dup_deps=:
-			;;
-      --features)
-			opt_features=:
-func_features
-			;;
-      --finish)
-			opt_finish=:
-set dummy --mode finish ${1+"$@"}; shift
-			;;
-      --help)
-			opt_help=:
-			;;
-      --help-all)
-			opt_help_all=:
-opt_help=': help-all'
-			;;
-      --mode)
-			test $# = 0 && func_missing_arg $opt && break
-			optarg="$1"
-			opt_mode="$optarg"
-case $optarg in
-  # Valid mode arguments:
-  clean|compile|execute|finish|install|link|relink|uninstall) ;;
-
-  # Catch anything else as an error
-  *) func_error "invalid argument for $opt"
-     exit_cmd=exit
-     break
-     ;;
-esac
-			shift
-			;;
-      --no-silent|--no-quiet)
-			opt_silent=false
-func_append preserve_args " $opt"
-			;;
-      --no-verbose)
-			opt_verbose=false
-func_append preserve_args " $opt"
-			;;
-      --silent|--quiet)
-			opt_silent=:
-func_append preserve_args " $opt"
-        opt_verbose=false
-			;;
-      --verbose|-v)
-			opt_verbose=:
-func_append preserve_args " $opt"
-opt_silent=false
-			;;
-      --tag)
-			test $# = 0 && func_missing_arg $opt && break
-			optarg="$1"
-			opt_tag="$optarg"
-func_append preserve_args " $opt $optarg"
-func_enable_tag "$optarg"
-			shift
-			;;
-
-      -\?|-h)		func_usage				;;
-      --help)		func_help				;;
-      --version)	func_version				;;
-
-      # Separate optargs to long options:
-      --*=*)
-			func_split_long_opt "$opt"
-			set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
-			shift
-			;;
-
-      # Separate non-argument short options:
-      -\?*|-h*|-n*|-v*)
-			func_split_short_opt "$opt"
-			set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
-			shift
-			;;
+  # Infer the operation mode.
+  if test -z "$mode"; then
+    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
+    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
+    case $nonopt in
+    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
+      mode=link
+      for arg
+      do
+	case $arg in
+	-c)
+	   mode=compile
+	   break
+	   ;;
+	esac
+      done
+      ;;
+    *db | *dbx | *strace | *truss)
+      mode=execute
+      ;;
+    *install*|cp|mv)
+      mode=install
+      ;;
+    *rm)
+      mode=uninstall
+      ;;
+    *)
+      # If we have no mode, but dlfiles were specified, then do execute mode.
+      test -n "$execute_dlfiles" && mode=execute
 
-      --)		break					;;
-      -*)		func_fatal_help "unrecognized option \`$opt'" ;;
-      *)		set dummy "$opt" ${1+"$@"};	shift; break  ;;
+      # Just use the default operation mode.
+      if test -z "$mode"; then
+	if test -n "$nonopt"; then
+	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+	else
+	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+	fi
+      fi
+      ;;
     esac
-  done
-
-  # Validate options:
+  fi
 
-  # save first non-option argument
-  if test "$#" -gt 0; then
-    nonopt="$opt"
-    shift
+  # Only execute mode is allowed to have -dlopen flags.
+  if test -n "$execute_dlfiles" && test "$mode" != execute; then
+    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
+    $echo "$help" 1>&2
+    exit $EXIT_FAILURE
   fi
 
-  # preserve --debug
-  test "$opt_debug" = : || func_append preserve_args " --debug"
+  # Change the help message to a mode-specific one.
+  generic_help="$help"
+  help="Try \`$modename --help --mode=$mode' for more information."
 
-  case $host in
-    *cygwin* | *mingw* | *pw32* | *cegcc*)
-      # don't eliminate duplications in $postdeps and $predeps
-      opt_duplicate_compiler_generated_deps=:
-      ;;
-    *)
-      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
-      ;;
-  esac
+  # These modes are in order of execution frequency so that they run quickly.
+  case $mode in
+  # libtool compile mode
+  compile)
+    modename="$modename: compile"
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
+    suppress_output=
+    arg_mode=normal
+    libobj=
+    later=
 
-  $opt_help || {
-    # Sanity checks first:
-    func_check_version_match
+    for arg
+    do
+      case $arg_mode in
+      arg  )
+	# do not "continue".  Instead, add this to base_compile
+	lastarg="$arg"
+	arg_mode=normal
+	;;
 
-    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-      func_fatal_configuration "not configured to build any kind of library"
-    fi
+      target )
+	libobj="$arg"
+	arg_mode=normal
+	continue
+	;;
 
-    # Darwin sucks
-    eval std_shrext=\"$shrext_cmds\"
+      normal )
+	# Accept any command-line options.
+	case $arg in
+	-o)
+	  if test -n "$libobj" ; then
+	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  arg_mode=target
+	  continue
+	  ;;
 
-    # Only execute mode is allowed to have -dlopen flags.
-    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
-      func_error "unrecognized option \`-dlopen'"
-      $ECHO "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
+	-static | -prefer-pic | -prefer-non-pic)
+	  later="$later $arg"
+	  continue
+	  ;;
 
-    # Change the help message to a mode-specific one.
-    generic_help="$help"
-    help="Try \`$progname --help --mode=$opt_mode' for more information."
-  }
+	-no-suppress)
+	  suppress_opt=no
+	  continue
+	  ;;
 
+	-Xcompiler)
+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
+	  continue      #  The current "srcfile" will either be retained or
+	  ;;            #  replaced later.  I would guess that would be a bug.
 
-  # Bail if the options were screwed
-  $exit_cmd $EXIT_FAILURE
-}
+	-Wc,*)
+	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
+	  lastarg=
+	  save_ifs="$IFS"; IFS=','
+ 	  for arg in $args; do
+	    IFS="$save_ifs"
 
+	    # Double-quote args containing other shell metacharacters.
+	    # Many Bourne shells cannot handle close brackets correctly
+	    # in scan sets, so we specify it separately.
+	    case $arg in
+	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	      arg="\"$arg\""
+	      ;;
+	    esac
+	    lastarg="$lastarg $arg"
+	  done
+	  IFS="$save_ifs"
+	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
 
+	  # Add the arguments to base_compile.
+	  base_compile="$base_compile $lastarg"
+	  continue
+	  ;;
 
+	* )
+	  # Accept the current argument as the source file.
+	  # The previous "srcfile" becomes the current argument.
+	  #
+	  lastarg="$srcfile"
+	  srcfile="$arg"
+	  ;;
+	esac  #  case $arg
+	;;
+      esac    #  case $arg_mode
 
-## ----------- ##
-##    Main.    ##
-## ----------- ##
+      # Aesthetically quote the previous argument.
+      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
 
-# func_lalib_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_lalib_p ()
-{
-    test -f "$1" &&
-      $SED -e 4q "$1" 2>/dev/null \
-        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
-}
+      case $lastarg in
+      # Double-quote args containing other shell metacharacters.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, and some SunOS ksh mistreat backslash-escaping
+      # in scan sets (worked around with variable expansion),
+      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
+      # at all, so we specify them separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	lastarg="\"$lastarg\""
+	;;
+      esac
 
-# func_lalib_unsafe_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function implements the same check as func_lalib_p without
-# resorting to external programs.  To this end, it redirects stdin and
-# closes it afterwards, without saving the original file descriptor.
-# As a safety measure, use it only where a negative result would be
-# fatal anyway.  Works if `file' does not exist.
-func_lalib_unsafe_p ()
-{
-    lalib_p=no
-    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
-	for lalib_p_l in 1 2 3 4
-	do
-	    read lalib_p_line
-	    case "$lalib_p_line" in
-		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
-	    esac
-	done
-	exec 0<&5 5<&-
-    fi
-    test "$lalib_p" = yes
-}
+      base_compile="$base_compile $lastarg"
+    done # for arg
 
-# func_ltwrapper_script_p file
-# True iff FILE is a libtool wrapper script
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_script_p ()
-{
-    func_lalib_p "$1"
-}
+    case $arg_mode in
+    arg)
+      $echo "$modename: you must specify an argument for -Xcompile"
+      exit $EXIT_FAILURE
+      ;;
+    target)
+      $echo "$modename: you must specify a target with \`-o'" 1>&2
+      exit $EXIT_FAILURE
+      ;;
+    *)
+      # Get the name of the library object.
+      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+      ;;
+    esac
 
-# func_ltwrapper_executable_p file
-# True iff FILE is a libtool wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_executable_p ()
-{
-    func_ltwrapper_exec_suffix=
-    case $1 in
-    *.exe) ;;
-    *) func_ltwrapper_exec_suffix=.exe ;;
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    xform='[cCFSifmso]'
+    case $libobj in
+    *.ada) xform=ada ;;
+    *.adb) xform=adb ;;
+    *.ads) xform=ads ;;
+    *.asm) xform=asm ;;
+    *.c++) xform=c++ ;;
+    *.cc) xform=cc ;;
+    *.ii) xform=ii ;;
+    *.class) xform=class ;;
+    *.cpp) xform=cpp ;;
+    *.cxx) xform=cxx ;;
+    *.[fF][09]?) xform=[fF][09]. ;;
+    *.for) xform=for ;;
+    *.java) xform=java ;;
+    *.obj) xform=obj ;;
+    *.sx) xform=sx ;;
     esac
-    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
-}
 
-# func_ltwrapper_scriptname file
-# Assumes file is an ltwrapper_executable
-# uses $file to determine the appropriate filename for a
-# temporary ltwrapper_script.
-func_ltwrapper_scriptname ()
-{
-    func_dirname_and_basename "$1" "" "."
-    func_stripname '' '.exe' "$func_basename_result"
-    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-}
+    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
 
-# func_ltwrapper_p file
-# True iff FILE is a libtool wrapper script or wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_p ()
-{
-    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
-}
+    case $libobj in
+    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
+    *)
+      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
+      exit $EXIT_FAILURE
+      ;;
+    esac
 
+    func_infer_tag $base_compile
 
-# func_execute_cmds commands fail_cmd
-# Execute tilde-delimited COMMANDS.
-# If FAIL_CMD is given, eval that upon failure.
-# FAIL_CMD may read-access the current command in variable CMD!
-func_execute_cmds ()
-{
-    $opt_debug
-    save_ifs=$IFS; IFS='~'
-    for cmd in $1; do
-      IFS=$save_ifs
-      eval cmd=\"$cmd\"
-      func_show_eval "$cmd" "${2-:}"
-    done
-    IFS=$save_ifs
-}
+    for arg in $later; do
+      case $arg in
+      -static)
+	build_old_libs=yes
+	continue
+	;;
 
+      -prefer-pic)
+	pic_mode=yes
+	continue
+	;;
 
-# func_source file
-# Source FILE, adding directory component if necessary.
-# Note that it is not necessary on cygwin/mingw to append a dot to
-# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
-# behavior happens only for exec(3), not for open(2)!  Also, sourcing
-# `FILE.' does not work on cygwin managed mounts.
-func_source ()
-{
-    $opt_debug
-    case $1 in
-    */* | *\\*)	. "$1" ;;
-    *)		. "./$1" ;;
+      -prefer-non-pic)
+	pic_mode=no
+	continue
+	;;
+      esac
+    done
+
+    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
+    case $qlibobj in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	qlibobj="\"$qlibobj\"" ;;
     esac
-}
+    test "X$libobj" != "X$qlibobj" \
+	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
+	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
+    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+    if test "X$xdir" = "X$obj"; then
+      xdir=
+    else
+      xdir=$xdir/
+    fi
+    lobj=${xdir}$objdir/$objname
 
+    if test -z "$base_compile"; then
+      $echo "$modename: you must specify a compilation command" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
 
-# func_resolve_sysroot PATH
-# Replace a leading = in PATH with a sysroot.  Store the result into
-# func_resolve_sysroot_result
-func_resolve_sysroot ()
-{
-  func_resolve_sysroot_result=$1
-  case $func_resolve_sysroot_result in
-  =*)
-    func_stripname '=' '' "$func_resolve_sysroot_result"
-    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
-    ;;
-  esac
-}
+    # Delete any leftover library objects.
+    if test "$build_old_libs" = yes; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
 
-# func_replace_sysroot PATH
-# If PATH begins with the sysroot, replace it with = and
-# store the result into func_replace_sysroot_result.
-func_replace_sysroot ()
-{
-  case "$lt_sysroot:$1" in
-  ?*:"$lt_sysroot"*)
-    func_stripname "$lt_sysroot" '' "$1"
-    func_replace_sysroot_result="=$func_stripname_result"
-    ;;
-  *)
-    # Including no sysroot.
-    func_replace_sysroot_result=$1
-    ;;
-  esac
-}
+    $run $rm $removelist
+    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
 
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag ()
-{
-    $opt_debug
-    if test -n "$available_tags" && test -z "$tagname"; then
-      CC_quoted=
-      for arg in $CC; do
-	func_append_quoted CC_quoted "$arg"
-      done
-      CC_expanded=`func_echo_all $CC`
-      CC_quoted_expanded=`func_echo_all $CC_quoted`
-      case $@ in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
-      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
-      # Blanks at the start of $base_compile will cause this to fail
-      # if we don't check for them as well.
-      *)
-	for z in $available_tags; do
-	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
-	    # Evaluate the configuration.
-	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
-	    CC_quoted=
-	    for arg in $CC; do
-	      # Double-quote args containing other shell metacharacters.
-	      func_append_quoted CC_quoted "$arg"
-	    done
-	    CC_expanded=`func_echo_all $CC`
-	    CC_quoted_expanded=`func_echo_all $CC_quoted`
-	    case "$@ " in
-	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
-	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
-	      # The compiler in the base compile command matches
-	      # the one in the tagged configuration.
-	      # Assume this is the tagged configuration we want.
-	      tagname=$z
-	      break
-	      ;;
-	    esac
-	  fi
-	done
-	# If $tagname still isn't set, then no tagged configuration
-	# was found and let the user know that the "--tag" command
-	# line option must be used.
-	if test -z "$tagname"; then
-	  func_echo "unable to infer tagged configuration"
-	  func_fatal_error "specify a tag with \`--tag'"
-#	else
-#	  func_verbose "using $tagname tagged configuration"
-	fi
-	;;
-      esac
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2*)
+      pic_mode=default
+      ;;
+    esac
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
     fi
-}
 
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test "$compiler_c_o" = no; then
+      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      lockfile="$output_obj.lock"
+      removelist="$removelist $output_obj $lockfile"
+      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
 
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test "$need_locks" = yes; then
+      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
+	$show "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    elif test "$need_locks" = warn; then
+      if test -f "$lockfile"; then
+	$echo "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
 
-# func_write_libtool_object output_name pic_name nonpic_name
-# Create a libtool object file (analogous to a ".la" file),
-# but don't create it if we're doing a dry run.
-func_write_libtool_object ()
-{
-    write_libobj=${1}
-    if test "$build_libtool_libs" = yes; then
-      write_lobj=\'${2}\'
-    else
-      write_lobj=none
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+      $echo "$srcfile" > "$lockfile"
     fi
 
-    if test "$build_old_libs" = yes; then
-      write_oldobj=\'${3}\'
-    else
-      write_oldobj=none
+    if test -n "$fix_srcfile_path"; then
+      eval srcfile=\"$fix_srcfile_path\"
     fi
+    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
+    case $qsrcfile in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+      qsrcfile="\"$qsrcfile\"" ;;
+    esac
 
-    $opt_dry_run || {
-      cat >${write_libobj}T <<EOF
-# $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+    $run $rm "$libobj" "${libobj}T"
+
+    # Create a libtool object file (analogous to a ".la" file),
+    # but don't create it if we're doing a dry run.
+    test -z "$run" && cat > ${libobj}T <<EOF
+# $libobj - a libtool object file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
 #
 # Please DO NOT delete this file!
 # It is necessary for linking the library.
 
 # Name of the PIC object.
-pic_object=$write_lobj
-
-# Name of the non-PIC object
-non_pic_object=$write_oldobj
-
 EOF
-      $MV "${write_libobj}T" "${write_libobj}"
-    }
-}
 
+    # Only build a PIC object if we are building libtool libraries.
+    if test "$build_libtool_libs" = yes; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
 
-##################################################
-# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
-##################################################
-
-# func_convert_core_file_wine_to_w32 ARG
-# Helper function used by file name conversion functions when $build is *nix,
-# and $host is mingw, cygwin, or some other w32 environment. Relies on a
-# correctly configured wine environment available, with the winepath program
-# in $build's $PATH.
-#
-# ARG is the $build file name to be converted to w32 format.
-# Result is available in $func_convert_core_file_wine_to_w32_result, and will
-# be empty on error (or when ARG is empty)
-func_convert_core_file_wine_to_w32 ()
-{
-  $opt_debug
-  func_convert_core_file_wine_to_w32_result="$1"
-  if test -n "$1"; then
-    # Unfortunately, winepath does not exit with a non-zero error code, so we
-    # are forced to check the contents of stdout. On the other hand, if the
-    # command is not found, the shell will set an exit code of 127 and print
-    # *an error message* to stdout. So we must check for both error code of
-    # zero AND non-empty stdout, which explains the odd construction:
-    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
-    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
-      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
-        $SED -e "$lt_sed_naive_backslashify"`
-    else
-      func_convert_core_file_wine_to_w32_result=
-    fi
-  fi
-}
-# end: func_convert_core_file_wine_to_w32
+      if test "$pic_mode" != no; then
+	command="$base_compile $qsrcfile $pic_flag"
+      else
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      fi
 
+      if test ! -d "${xdir}$objdir"; then
+	$show "$mkdir ${xdir}$objdir"
+	$run $mkdir ${xdir}$objdir
+	exit_status=$?
+	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
+	  exit $exit_status
+	fi
+      fi
 
-# func_convert_core_path_wine_to_w32 ARG
-# Helper function used by path conversion functions when $build is *nix, and
-# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
-# configured wine environment available, with the winepath program in $build's
-# $PATH. Assumes ARG has no leading or trailing path separator characters.
-#
-# ARG is path to be converted from $build format to win32.
-# Result is available in $func_convert_core_path_wine_to_w32_result.
-# Unconvertible file (directory) names in ARG are skipped; if no directory names
-# are convertible, then the result may be empty.
-func_convert_core_path_wine_to_w32 ()
-{
-  $opt_debug
-  # unfortunately, winepath doesn't convert paths, only file names
-  func_convert_core_path_wine_to_w32_result=""
-  if test -n "$1"; then
-    oldIFS=$IFS
-    IFS=:
-    for func_convert_core_path_wine_to_w32_f in $1; do
-      IFS=$oldIFS
-      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
-      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
-        if test -z "$func_convert_core_path_wine_to_w32_result"; then
-          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
-        else
-          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
-        fi
+      if test -z "$output_obj"; then
+	# Place PIC objects in $objdir
+	command="$command -o $lobj"
       fi
-    done
-    IFS=$oldIFS
-  fi
-}
-# end: func_convert_core_path_wine_to_w32
-
-
-# func_cygpath ARGS...
-# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
-# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
-# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
-# (2), returns the Cygwin file name or path in func_cygpath_result (input
-# file name or path is assumed to be in w32 format, as previously converted
-# from $build's *nix or MSYS format). In case (3), returns the w32 file name
-# or path in func_cygpath_result (input file name or path is assumed to be in
-# Cygwin format). Returns an empty string on error.
-#
-# ARGS are passed to cygpath, with the last one being the file name or path to
-# be converted.
-#
-# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
-# environment variable; do not put it in $PATH.
-func_cygpath ()
-{
-  $opt_debug
-  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
-    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
-    if test "$?" -ne 0; then
-      # on failure, ensure result is empty
-      func_cygpath_result=
-    fi
-  else
-    func_cygpath_result=
-    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
-  fi
-}
-#end: func_cygpath
 
+      $run $rm "$lobj" "$output_obj"
 
-# func_convert_core_msys_to_w32 ARG
-# Convert file name or path ARG from MSYS format to w32 format.  Return
-# result in func_convert_core_msys_to_w32_result.
-func_convert_core_msys_to_w32 ()
-{
-  $opt_debug
-  # awkward: cmd appends spaces to result
-  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
-    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-}
-#end: func_convert_core_msys_to_w32
+      $show "$command"
+      if $run eval $lt_env "$command"; then :
+      else
+	test -n "$output_obj" && $run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
 
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
 
-# func_convert_file_check ARG1 ARG2
-# Verify that ARG1 (a file name in $build format) was converted to $host
-# format in ARG2. Otherwise, emit an error message, but continue (resetting
-# func_to_host_file_result to ARG1).
-func_convert_file_check ()
-{
-  $opt_debug
-  if test -z "$2" && test -n "$1" ; then
-    func_error "Could not determine host file name corresponding to"
-    func_error "  \`$1'"
-    func_error "Continuing, but uninstalled executables may not work."
-    # Fallback:
-    func_to_host_file_result="$1"
-  fi
-}
-# end func_convert_file_check
+but it should contain:
+$srcfile
 
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
 
-# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
-# Verify that FROM_PATH (a path in $build format) was converted to $host
-# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
-# func_to_host_file_result to a simplistic fallback value (see below).
-func_convert_path_check ()
-{
-  $opt_debug
-  if test -z "$4" && test -n "$3"; then
-    func_error "Could not determine the host path corresponding to"
-    func_error "  \`$3'"
-    func_error "Continuing, but uninstalled executables may not work."
-    # Fallback.  This is a deliberately simplistic "conversion" and
-    # should not be "improved".  See libtool.info.
-    if test "x$1" != "x$2"; then
-      lt_replace_pathsep_chars="s|$1|$2|g"
-      func_to_host_path_result=`echo "$3" |
-        $SED -e "$lt_replace_pathsep_chars"`
-    else
-      func_to_host_path_result="$3"
-    fi
-  fi
-}
-# end func_convert_path_check
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
 
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+	$show "$mv $output_obj $lobj"
+	if $run $mv $output_obj $lobj; then :
+	else
+	  error=$?
+	  $run $rm $removelist
+	  exit $error
+	fi
+      fi
 
-# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
-# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
-# and appending REPL if ORIG matches BACKPAT.
-func_convert_path_front_back_pathsep ()
-{
-  $opt_debug
-  case $4 in
-  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
-    ;;
-  esac
-  case $4 in
-  $2 ) func_append func_to_host_path_result "$3"
-    ;;
-  esac
-}
-# end func_convert_path_front_back_pathsep
+      # Append the name of the PIC object to the libtool object file.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object='$objdir/$objname'
 
+EOF
 
-##################################################
-# $build to $host FILE NAME CONVERSION FUNCTIONS #
-##################################################
-# invoked via `$to_host_file_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# Result will be available in $func_to_host_file_result.
+      # Allow error messages only from the first compilation.
+      if test "$suppress_opt" = yes; then
+        suppress_output=' >/dev/null 2>&1'
+      fi
+    else
+      # No PIC object so indicate it doesn't exist in the libtool
+      # object file.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object=none
 
+EOF
+    fi
 
-# func_to_host_file ARG
-# Converts the file name ARG from $build format to $host format. Return result
-# in func_to_host_file_result.
-func_to_host_file ()
-{
-  $opt_debug
-  $to_host_file_cmd "$1"
-}
-# end func_to_host_file
+    # Only build a position-dependent object if we build old libraries.
+    if test "$build_old_libs" = yes; then
+      if test "$pic_mode" != yes; then
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      else
+	command="$base_compile $qsrcfile $pic_flag"
+      fi
+      if test "$compiler_c_o" = yes; then
+	command="$command -o $obj"
+      fi
 
+      # Suppress compiler output if we already did a PIC compilation.
+      command="$command$suppress_output"
+      $run $rm "$obj" "$output_obj"
+      $show "$command"
+      if $run eval $lt_env "$command"; then :
+      else
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
 
-# func_to_tool_file ARG LAZY
-# converts the file name ARG from $build format to toolchain format. Return
-# result in func_to_tool_file_result.  If the conversion in use is listed
-# in (the comma separated) LAZY, no conversion takes place.
-func_to_tool_file ()
-{
-  $opt_debug
-  case ,$2, in
-    *,"$to_tool_file_cmd",*)
-      func_to_tool_file_result=$1
-      ;;
-    *)
-      $to_tool_file_cmd "$1"
-      func_to_tool_file_result=$func_to_host_file_result
-      ;;
-  esac
-}
-# end func_to_tool_file
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
 
+but it should contain:
+$srcfile
 
-# func_convert_file_noop ARG
-# Copy ARG to func_to_host_file_result.
-func_convert_file_noop ()
-{
-  func_to_host_file_result="$1"
-}
-# end func_convert_file_noop
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
 
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
 
-# func_convert_file_msys_to_w32 ARG
-# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper.  Returns result in
-# func_to_host_file_result.
-func_convert_file_msys_to_w32 ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    func_convert_core_msys_to_w32 "$1"
-    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_w32
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+	$show "$mv $output_obj $obj"
+	if $run $mv $output_obj $obj; then :
+	else
+	  error=$?
+	  $run $rm $removelist
+	  exit $error
+	fi
+      fi
 
+      # Append the name of the non-PIC object the libtool object file.
+      # Only append if the libtool object file exists.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object='$objname'
 
-# func_convert_file_cygwin_to_w32 ARG
-# Convert file name ARG from Cygwin to w32 format.  Returns result in
-# func_to_host_file_result.
-func_convert_file_cygwin_to_w32 ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
-    # LT_CYGPATH in this case.
-    func_to_host_file_result=`cygpath -m "$1"`
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_cygwin_to_w32
+EOF
+    else
+      # Append the name of the non-PIC object the libtool object file.
+      # Only append if the libtool object file exists.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object=none
 
+EOF
+    fi
 
-# func_convert_file_nix_to_w32 ARG
-# Convert file name ARG from *nix to w32 format.  Requires a wine environment
-# and a working winepath. Returns result in func_to_host_file_result.
-func_convert_file_nix_to_w32 ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    func_convert_core_file_wine_to_w32 "$1"
-    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_w32
+    $run $mv "${libobj}T" "${libobj}"
 
+    # Unlock the critical section if it was locked
+    if test "$need_locks" != no; then
+      $run $rm "$lockfile"
+    fi
 
-# func_convert_file_msys_to_cygwin ARG
-# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_file_msys_to_cygwin ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    func_convert_core_msys_to_w32 "$1"
-    func_cygpath -u "$func_convert_core_msys_to_w32_result"
-    func_to_host_file_result="$func_cygpath_result"
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_cygwin
+    exit $EXIT_SUCCESS
+    ;;
 
+  # libtool link mode
+  link | relink)
+    modename="$modename: link"
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # which system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
 
-# func_convert_file_nix_to_cygwin ARG
-# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
-# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
-# in func_to_host_file_result.
-func_convert_file_nix_to_cygwin ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
-    func_convert_core_file_wine_to_w32 "$1"
-    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
-    func_to_host_file_result="$func_cygpath_result"
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_cygwin
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll which has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args="$nonopt"
+    base_compile="$nonopt $@"
+    compile_command="$nonopt"
+    finalize_command="$nonopt"
 
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
 
-#############################################
-# $build to $host PATH CONVERSION FUNCTIONS #
-#############################################
-# invoked via `$to_host_path_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# The result will be available in $func_to_host_path_result.
-#
-# Path separators are also converted from $build format to $host format.  If
-# ARG begins or ends with a path separator character, it is preserved (but
-# converted to $host format) on output.
-#
-# All path conversion functions are named using the following convention:
-#   file name conversion function    : func_convert_file_X_to_Y ()
-#   path conversion function         : func_convert_path_X_to_Y ()
-# where, for any given $build/$host combination the 'X_to_Y' value is the
-# same.  If conversion functions are added for new $build/$host combinations,
-# the two new functions must follow this pattern, or func_init_to_host_path_cmd
-# will break.
-
-
-# func_init_to_host_path_cmd
-# Ensures that function "pointer" variable $to_host_path_cmd is set to the
-# appropriate value, based on the value of $to_host_file_cmd.
-to_host_path_cmd=
-func_init_to_host_path_cmd ()
-{
-  $opt_debug
-  if test -z "$to_host_path_cmd"; then
-    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
-    to_host_path_cmd="func_convert_path_${func_stripname_result}"
-  fi
-}
+    avoid_version=no
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    non_pic_objects=
+    notinst_path= # paths that contain not-installed libtool libraries
+    precious_files_regex=
+    prefer_static_libs=no
+    preload=no
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+    single_module="${wl}-single_module"
 
+    func_infer_tag $base_compile
 
-# func_to_host_path ARG
-# Converts the path ARG from $build format to $host format. Return result
-# in func_to_host_path_result.
-func_to_host_path ()
-{
-  $opt_debug
-  func_init_to_host_path_cmd
-  $to_host_path_cmd "$1"
-}
-# end func_to_host_path
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -all-static | -static | -static-libtool-libs)
+	case $arg in
+	-all-static)
+	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
+	  fi
+	  if test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	-static)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=built
+	  ;;
+	-static-libtool-libs)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	esac
+	build_libtool_libs=no
+	build_old_libs=yes
+	break
+	;;
+      esac
+    done
 
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
 
-# func_convert_path_noop ARG
-# Copy ARG to func_to_host_path_result.
-func_convert_path_noop ()
-{
-  func_to_host_path_result="$1"
-}
-# end func_convert_path_noop
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg="$1"
+      shift
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
+	;;
+      *) qarg=$arg ;;
+      esac
+      libtool_args="$libtool_args $qarg"
 
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+	case $prev in
+	output)
+	  compile_command="$compile_command @OUTPUT@"
+	  finalize_command="$finalize_command @OUTPUT@"
+	  ;;
+	esac
 
-# func_convert_path_msys_to_w32 ARG
-# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper.  Returns result in
-# func_to_host_path_result.
-func_convert_path_msys_to_w32 ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # Remove leading and trailing path separator characters from ARG.  MSYS
-    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
-    # and winepath ignores them completely.
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
-    func_convert_path_check : ";" \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-  fi
-}
-# end func_convert_path_msys_to_w32
-
+	case $prev in
+	dlfiles|dlprefiles)
+	  if test "$preload" = no; then
+	    # Add the symbol object into the linking commands.
+	    compile_command="$compile_command @SYMFILE@"
+	    finalize_command="$finalize_command @SYMFILE@"
+	    preload=yes
+	  fi
+	  case $arg in
+	  *.la | *.lo) ;;  # We handle these cases below.
+	  force)
+	    if test "$dlself" = no; then
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  self)
+	    if test "$prev" = dlprefiles; then
+	      dlself=yes
+	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+	      dlself=yes
+	    else
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  *)
+	    if test "$prev" = dlfiles; then
+	      dlfiles="$dlfiles $arg"
+	    else
+	      dlprefiles="$dlprefiles $arg"
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  esac
+	  ;;
+	expsyms)
+	  export_symbols="$arg"
+	  if test ! -f "$arg"; then
+	    $echo "$modename: symbol file \`$arg' does not exist"
+	    exit $EXIT_FAILURE
+	  fi
+	  prev=
+	  continue
+	  ;;
+	expsyms_regex)
+	  export_symbols_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	inst_prefix)
+	  inst_prefix_dir="$arg"
+	  prev=
+	  continue
+	  ;;
+	precious_regex)
+	  precious_files_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	release)
+	  release="-$arg"
+	  prev=
+	  continue
+	  ;;
+	objectlist)
+	  if test -f "$arg"; then
+	    save_arg=$arg
+	    moreargs=
+	    for fil in `cat $save_arg`
+	    do
+#	      moreargs="$moreargs $fil"
+	      arg=$fil
+	      # A libtool-controlled object.
 
-# func_convert_path_cygwin_to_w32 ARG
-# Convert path ARG from Cygwin to w32 format.  Returns result in
-# func_to_host_file_result.
-func_convert_path_cygwin_to_w32 ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # See func_convert_path_msys_to_w32:
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
-    func_convert_path_check : ";" \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-  fi
-}
-# end func_convert_path_cygwin_to_w32
+	      # Check to see that this really is a libtool object.
+	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+		pic_object=
+		non_pic_object=
 
+		# Read the .lo file
+		# If there is no directory component, then add one.
+		case $arg in
+		*/* | *\\*) . $arg ;;
+		*) . ./$arg ;;
+		esac
 
-# func_convert_path_nix_to_w32 ARG
-# Convert path ARG from *nix to w32 format.  Requires a wine environment and
-# a working winepath.  Returns result in func_to_host_file_result.
-func_convert_path_nix_to_w32 ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # See func_convert_path_msys_to_w32:
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
-    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
-    func_convert_path_check : ";" \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-  fi
-}
-# end func_convert_path_nix_to_w32
+		if test -z "$pic_object" || \
+		   test -z "$non_pic_object" ||
+		   test "$pic_object" = none && \
+		   test "$non_pic_object" = none; then
+		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+		  exit $EXIT_FAILURE
+		fi
 
+		# Extract subdirectory from the argument.
+		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+		if test "X$xdir" = "X$arg"; then
+		  xdir=
+		else
+		  xdir="$xdir/"
+		fi
 
-# func_convert_path_msys_to_cygwin ARG
-# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_path_msys_to_cygwin ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # See func_convert_path_msys_to_w32:
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
-    func_to_host_path_result="$func_cygpath_result"
-    func_convert_path_check : : \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
-  fi
-}
-# end func_convert_path_msys_to_cygwin
+		if test "$pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  pic_object="$xdir$pic_object"
 
+		  if test "$prev" = dlfiles; then
+		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		      dlfiles="$dlfiles $pic_object"
+		      prev=
+		      continue
+		    else
+		      # If libtool objects are unsupported, then we need to preload.
+		      prev=dlprefiles
+		    fi
+		  fi
 
-# func_convert_path_nix_to_cygwin ARG
-# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
-# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
-# func_to_host_file_result.
-func_convert_path_nix_to_cygwin ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # Remove leading and trailing path separator characters from
-    # ARG. msys behavior is inconsistent here, cygpath turns them
-    # into '.;' and ';.', and winepath ignores them completely.
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
-    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
-    func_to_host_path_result="$func_cygpath_result"
-    func_convert_path_check : : \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
-  fi
-}
-# end func_convert_path_nix_to_cygwin
+		  # CHECK ME:  I think I busted this.  -Ossama
+		  if test "$prev" = dlprefiles; then
+		    # Preload the old-style object.
+		    dlprefiles="$dlprefiles $pic_object"
+		    prev=
+		  fi
 
+		  # A PIC object.
+		  libobjs="$libobjs $pic_object"
+		  arg="$pic_object"
+		fi
 
-# func_mode_compile arg...
-func_mode_compile ()
-{
-    $opt_debug
-    # Get the compilation command and the source file.
-    base_compile=
-    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
-    suppress_opt=yes
-    suppress_output=
-    arg_mode=normal
-    libobj=
-    later=
-    pie_flag=
+		# Non-PIC object.
+		if test "$non_pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  non_pic_object="$xdir$non_pic_object"
 
-    for arg
-    do
-      case $arg_mode in
-      arg  )
-	# do not "continue".  Instead, add this to base_compile
-	lastarg="$arg"
-	arg_mode=normal
-	;;
+		  # A standard non-PIC object
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		  if test -z "$pic_object" || test "$pic_object" = none ; then
+		    arg="$non_pic_object"
+		  fi
+		else
+		  # If the PIC object exists, use it instead.
+		  # $xdir was prepended to $pic_object above.
+		  non_pic_object="$pic_object"
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		fi
+	      else
+		# Only an error if not doing a dry-run.
+		if test -z "$run"; then
+		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+		  exit $EXIT_FAILURE
+		else
+		  # Dry-run case.
 
-      target )
-	libobj="$arg"
-	arg_mode=normal
-	continue
-	;;
+		  # Extract subdirectory from the argument.
+		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+		  if test "X$xdir" = "X$arg"; then
+		    xdir=
+		  else
+		    xdir="$xdir/"
+		  fi
 
-      normal )
-	# Accept any command-line options.
-	case $arg in
-	-o)
-	  test -n "$libobj" && \
-	    func_fatal_error "you cannot specify \`-o' more than once"
-	  arg_mode=target
+		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+		  libobjs="$libobjs $pic_object"
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		fi
+	      fi
+	    done
+	  else
+	    $echo "$modename: link input file \`$save_arg' does not exist"
+	    exit $EXIT_FAILURE
+	  fi
+	  arg=$save_arg
+	  prev=
 	  continue
 	  ;;
-
-	-pie | -fpie | -fPIE)
-          func_append pie_flag " $arg"
+	rpath | xrpath)
+	  # We need an absolute path.
+	  case $arg in
+	  [\\/]* | [A-Za-z]:[\\/]*) ;;
+	  *)
+	    $echo "$modename: only absolute run-paths are allowed" 1>&2
+	    exit $EXIT_FAILURE
+	    ;;
+	  esac
+	  if test "$prev" = rpath; then
+	    case "$rpath " in
+	    *" $arg "*) ;;
+	    *) rpath="$rpath $arg" ;;
+	    esac
+	  else
+	    case "$xrpath " in
+	    *" $arg "*) ;;
+	    *) xrpath="$xrpath $arg" ;;
+	    esac
+	  fi
+	  prev=
 	  continue
 	  ;;
-
-	-shared | -static | -prefer-pic | -prefer-non-pic)
-	  func_append later " $arg"
+	xcompiler)
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  compile_command="$compile_command $qarg"
+	  finalize_command="$finalize_command $qarg"
 	  continue
 	  ;;
-
-	-no-suppress)
-	  suppress_opt=no
+	xlinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $wl$qarg"
+	  prev=
+	  compile_command="$compile_command $wl$qarg"
+	  finalize_command="$finalize_command $wl$qarg"
 	  continue
 	  ;;
-
-	-Xcompiler)
-	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
-	  continue      #  The current "srcfile" will either be retained or
-	  ;;            #  replaced later.  I would guess that would be a bug.
-
-	-Wc,*)
-	  func_stripname '-Wc,' '' "$arg"
-	  args=$func_stripname_result
-	  lastarg=
-	  save_ifs="$IFS"; IFS=','
-	  for arg in $args; do
-	    IFS="$save_ifs"
-	    func_append_quoted lastarg "$arg"
-	  done
-	  IFS="$save_ifs"
-	  func_stripname ' ' '' "$lastarg"
-	  lastarg=$func_stripname_result
-
-	  # Add the arguments to base_compile.
-	  func_append base_compile " $lastarg"
+	xcclinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  compile_command="$compile_command $qarg"
+	  finalize_command="$finalize_command $qarg"
+	  continue
+	  ;;
+	shrext)
+  	  shrext_cmds="$arg"
+	  prev=
+	  continue
+	  ;;
+	darwin_framework|darwin_framework_skip)
+	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
+	  compile_command="$compile_command $arg"
+	  finalize_command="$finalize_command $arg"
+	  prev=
 	  continue
 	  ;;
-
 	*)
-	  # Accept the current argument as the source file.
-	  # The previous "srcfile" becomes the current argument.
-	  #
-	  lastarg="$srcfile"
-	  srcfile="$arg"
+	  eval "$prev=\"\$arg\""
+	  prev=
+	  continue
 	  ;;
-	esac  #  case $arg
-	;;
-      esac    #  case $arg_mode
-
-      # Aesthetically quote the previous argument.
-      func_append_quoted base_compile "$lastarg"
-    done # for arg
+	esac
+      fi # test -n "$prev"
 
-    case $arg_mode in
-    arg)
-      func_fatal_error "you must specify an argument for -Xcompile"
-      ;;
-    target)
-      func_fatal_error "you must specify a target with \`-o'"
-      ;;
-    *)
-      # Get the name of the library object.
-      test -z "$libobj" && {
-	func_basename "$srcfile"
-	libobj="$func_basename_result"
-      }
-      ;;
-    esac
+      prevarg="$arg"
 
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    case $libobj in
-    *.[cCFSifmso] | \
-    *.ada | *.adb | *.ads | *.asm | \
-    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
-    *.[fF][09]? | *.for | *.java | *.obj | *.sx | *.cu | *.cup)
-      func_xform "$libobj"
-      libobj=$func_xform_result
-      ;;
-    esac
+      case $arg in
+      -all-static)
+	if test -n "$link_static_flag"; then
+	  compile_command="$compile_command $link_static_flag"
+	  finalize_command="$finalize_command $link_static_flag"
+	fi
+	continue
+	;;
 
-    case $libobj in
-    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
-    *)
-      func_fatal_error "cannot determine name of library object from \`$libobj'"
-      ;;
-    esac
-
-    func_infer_tag $base_compile
+      -allow-undefined)
+	# FIXME: remove this flag sometime in the future.
+	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
+	continue
+	;;
 
-    for arg in $later; do
-      case $arg in
-      -shared)
-	test "$build_libtool_libs" != yes && \
-	  func_fatal_configuration "can not build a shared library"
-	build_old_libs=no
+      -avoid-version)
+	avoid_version=yes
 	continue
 	;;
 
-      -static)
-	build_libtool_libs=no
-	build_old_libs=yes
+      -dlopen)
+	prev=dlfiles
 	continue
 	;;
 
-      -prefer-pic)
-	pic_mode=yes
+      -dlpreopen)
+	prev=dlprefiles
 	continue
 	;;
 
-      -prefer-non-pic)
-	pic_mode=no
+      -export-dynamic)
+	export_dynamic=yes
 	continue
 	;;
-      esac
-    done
 
-    func_quote_for_eval "$libobj"
-    test "X$libobj" != "X$func_quote_for_eval_result" \
-      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
-      && func_warning "libobj name \`$libobj' may not contain shell special characters."
-    func_dirname_and_basename "$obj" "/" ""
-    objname="$func_basename_result"
-    xdir="$func_dirname_result"
-    lobj=${xdir}$objdir/$objname
+      -export-symbols | -export-symbols-regex)
+	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	  $echo "$modename: more than one -exported-symbols argument is not allowed"
+	  exit $EXIT_FAILURE
+	fi
+	if test "X$arg" = "X-export-symbols"; then
+	  prev=expsyms
+	else
+	  prev=expsyms_regex
+	fi
+	continue
+	;;
 
-    test -z "$base_compile" && \
-      func_fatal_help "you must specify a compilation command"
+      -framework|-arch|-isysroot)
+	case " $CC " in
+	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
+		prev=darwin_framework_skip ;;
+	  *) compiler_flags="$compiler_flags $arg"
+	     prev=darwin_framework ;;
+	esac
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+	continue
+	;;
 
-    # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
-      removelist="$obj $lobj $libobj ${libobj}T"
-    else
-      removelist="$lobj $libobj ${libobj}T"
-    fi
+      -inst-prefix-dir)
+	prev=inst_prefix
+	continue
+	;;
 
-    # On Cygwin there's no "real" PIC flag so we must build both object types
-    case $host_os in
-    cygwin* | mingw* | pw32* | os2* | cegcc*)
-      pic_mode=default
-      ;;
-    esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
-      # non-PIC code in shared libraries is not supported
-      pic_mode=default
-    fi
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+	case $with_gcc/$host in
+	no/*-*-irix* | /*-*-irix*)
+	  compile_command="$compile_command $arg"
+	  finalize_command="$finalize_command $arg"
+	  ;;
+	esac
+	continue
+	;;
 
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-    else
-      output_obj=
-      need_locks=no
-      lockfile=
-    fi
+      -L*)
+	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  absdir=`cd "$dir" && pwd`
+	  if test -z "$absdir"; then
+	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+	    absdir="$dir"
+	    notinst_path="$notinst_path $dir"
+	  fi
+	  dir="$absdir"
+	  ;;
+	esac
+	case "$deplibs " in
+	*" -L$dir "*) ;;
+	*)
+	  deplibs="$deplibs -L$dir"
+	  lib_search_path="$lib_search_path $dir"
+	  ;;
+	esac
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$dir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$dir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
+	  esac
+	  ;;
+	esac
+	continue
+	;;
 
-    # Lock this critical section if it is needed
-    # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
-      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
-	func_echo "Waiting for $lockfile to be removed"
-	sleep 2
-      done
-    elif test "$need_locks" = warn; then
-      if test -f "$lockfile"; then
-	$ECHO "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
+      -l*)
+	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
+	    # These systems don't actually have a C or math library (as such)
+	    continue
+	    ;;
+	  *-*-os2*)
+	    # These systems don't actually have a C library (as such)
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C and math libraries are in the System framework
+	    deplibs="$deplibs -framework System"
+	    continue
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  esac
+	elif test "X$arg" = "X-lc_r"; then
+	 case $host in
+	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	   # Do not include libc_r directly, use -pthread flag.
+	   continue
+	   ;;
+	 esac
+	fi
+	deplibs="$deplibs $arg"
+	continue
+	;;
 
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
+      # classes, name mangling, and exception handling.
+      -model)
+	compile_command="$compile_command $arg"
+	compiler_flags="$compiler_flags $arg"
+	finalize_command="$finalize_command $arg"
+	prev=xcompiler
+	continue
+	;;
 
-	$opt_dry_run || $RM $removelist
-	exit $EXIT_FAILURE
-      fi
-      func_append removelist " $output_obj"
-      $ECHO "$srcfile" > "$lockfile"
-    fi
+     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+	compiler_flags="$compiler_flags $arg"
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+	continue
+	;;
 
-    $opt_dry_run || $RM $removelist
-    func_append removelist " $lockfile"
-    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+      -multi_module)
+	single_module="${wl}-multi_module"
+	continue
+	;;
 
-    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
-    srcfile=$func_to_tool_file_result
-    func_quote_for_eval "$srcfile"
-    qsrcfile=$func_quote_for_eval_result
+      -module)
+	module=yes
+	continue
+	;;
 
-    # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
-      # Without this assignment, base_compile gets emptied.
-      fbsd_hideous_sh_bug=$base_compile
+      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+      # -r[0-9][0-9]* specifies the processor on the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+      # +DA*, +DD* enable 64-bit mode on the HP compiler
+      # -q* pass through compiler args for the IBM compiler
+      # -m* pass through architecture-specific compiler args for GCC
+      # -m*, -t[45]*, -txscale* pass through architecture-specific
+      # compiler args for GCC
+      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
+      # -F/path gives path to uninstalled frameworks, gcc on darwin
+      # @file GCC response files
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
 
-      if test "$pic_mode" != no; then
-	command="$base_compile $qsrcfile $pic_flag"
-      else
-	# Don't build PIC code
-	command="$base_compile $qsrcfile"
-      fi
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+        compile_command="$compile_command $arg"
+        finalize_command="$finalize_command $arg"
+        compiler_flags="$compiler_flags $arg"
+        continue
+        ;;
 
-      func_mkdir_p "$xdir$objdir"
+      -shrext)
+	prev=shrext
+	continue
+	;;
 
-      if test -z "$output_obj"; then
-	# Place PIC objects in $objdir
-	func_append command " -o $lobj"
-      fi
+      -no-fast-install)
+	fast_install=no
+	continue
+	;;
 
-      func_show_eval_locale "$command"	\
-          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+      -no-install)
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
+	  # The PATH hackery in wrapper scripts is required on Windows
+	  # and Darwin in order for the loader to find any dlls it needs.
+	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
+	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
+	  fast_install=no
+	  ;;
+	*) no_install=yes ;;
+	esac
+	continue
+	;;
 
-      if test "$need_locks" = warn &&
-	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-	$ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
+      -no-undefined)
+	allow_undefined=no
+	continue
+	;;
 
-but it should contain:
-$srcfile
+      -objectlist)
+	prev=objectlist
+	continue
+	;;
 
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
+      -o) prev=output ;;
 
-	$opt_dry_run || $RM $removelist
-	exit $EXIT_FAILURE
-      fi
+      -precious-files-regex)
+	prev=precious_regex
+	continue
+	;;
 
-      # Just move the object if needed, then go on to compile the next one
-      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
-	func_show_eval '$MV "$output_obj" "$lobj"' \
-	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
-      fi
+      -release)
+	prev=release
+	continue
+	;;
 
-      # Allow error messages only from the first compilation.
-      if test "$suppress_opt" = yes; then
-	suppress_output=' >/dev/null 2>&1'
-      fi
-    fi
+      -rpath)
+	prev=rpath
+	continue
+	;;
 
-    # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      if test "$pic_mode" != yes; then
-	# Don't build PIC code
-	command="$base_compile $qsrcfile$pie_flag"
-      else
-	command="$base_compile $qsrcfile $pic_flag"
-      fi
-      if test "$compiler_c_o" = yes; then
-	func_append command " -o $obj"
-      fi
-
-      # Suppress compiler output if we already did a PIC compilation.
-      func_append command "$suppress_output"
-      func_show_eval_locale "$command" \
-        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
-
-      if test "$need_locks" = warn &&
-	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-	$ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
+      -R)
+	prev=xrpath
+	continue
+	;;
 
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
+      -R*)
+	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  $echo "$modename: only absolute run-paths are allowed" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+	case "$xrpath " in
+	*" $dir "*) ;;
+	*) xrpath="$xrpath $dir" ;;
+	esac
+	continue
+	;;
 
-	$opt_dry_run || $RM $removelist
-	exit $EXIT_FAILURE
-      fi
+      -static | -static-libtool-libs)
+	# The effects of -static are defined in a previous loop.
+	# We used to do the same as -all-static on platforms that
+	# didn't have a PIC flag, but the assumption that the effects
+	# would be equivalent was wrong.  It would break on at least
+	# Digital Unix and AIX.
+	continue
+	;;
 
-      # Just move the object if needed
-      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
-	func_show_eval '$MV "$output_obj" "$obj"' \
-	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
-      fi
-    fi
+      -thread-safe)
+	thread_safe=yes
+	continue
+	;;
 
-    $opt_dry_run || {
-      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+      -version-info)
+	prev=vinfo
+	continue
+	;;
+      -version-number)
+	prev=vinfo
+	vinfo_number=yes
+	continue
+	;;
 
-      # Unlock the critical section if it was locked
-      if test "$need_locks" != no; then
-	removelist=$lockfile
-        $RM "$lockfile"
-      fi
-    }
+      -Wc,*)
+	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+	  case $flag in
+	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	    flag="\"$flag\""
+	    ;;
+	  esac
+	  arg="$arg $wl$flag"
+	  compiler_flags="$compiler_flags $flag"
+	done
+	IFS="$save_ifs"
+	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+	;;
 
-    exit $EXIT_SUCCESS
-}
+      -Wl,*)
+	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+	  case $flag in
+	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	    flag="\"$flag\""
+	    ;;
+	  esac
+	  arg="$arg $wl$flag"
+	  compiler_flags="$compiler_flags $wl$flag"
+	  linker_flags="$linker_flags $flag"
+	done
+	IFS="$save_ifs"
+	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+	;;
 
-$opt_help || {
-  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
-}
+      -Xcompiler)
+	prev=xcompiler
+	continue
+	;;
 
-func_mode_help ()
-{
-    # We need to display help for each of the modes.
-    case $opt_mode in
-      "")
-        # Generic help is extracted from the usage comments
-        # at the start of this file.
-        func_help
-        ;;
+      -Xlinker)
+	prev=xlinker
+	continue
+	;;
 
-      clean)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+      -XCClinker)
+	prev=xcclinker
+	continue
+	;;
 
-Remove files from the build directory.
+      # Some other compiler flag.
+      -* | +*)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	;;
 
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
+      *.$objext)
+	# A standard object.
+	objs="$objs $arg"
+	;;
 
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
-        ;;
+      *.lo)
+	# A libtool-controlled object.
 
-      compile)
-      $ECHO \
-"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+	# Check to see that this really is a libtool object.
+	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  pic_object=
+	  non_pic_object=
 
-Compile a source file into a libtool library object.
+	  # Read the .lo file
+	  # If there is no directory component, then add one.
+	  case $arg in
+	  */* | *\\*) . $arg ;;
+	  *) . ./$arg ;;
+	  esac
 
-This mode accepts the following additional options:
+	  if test -z "$pic_object" || \
+	     test -z "$non_pic_object" ||
+	     test "$pic_object" = none && \
+	     test "$non_pic_object" = none; then
+	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
 
-  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
-  -no-suppress      do not suppress compiler output for multiple passes
-  -prefer-pic       try to build PIC objects only
-  -prefer-non-pic   try to build non-PIC objects only
-  -shared           do not build a \`.o' file suitable for static linking
-  -static           only build a \`.o' file suitable for static linking
-  -Wc,FLAG          pass FLAG directly to the compiler
+	  # Extract subdirectory from the argument.
+	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+	  if test "X$xdir" = "X$arg"; then
+	    xdir=
+ 	  else
+	    xdir="$xdir/"
+	  fi
 
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
+	  if test "$pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    pic_object="$xdir$pic_object"
 
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-        ;;
+	    if test "$prev" = dlfiles; then
+	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		dlfiles="$dlfiles $pic_object"
+		prev=
+		continue
+	      else
+		# If libtool objects are unsupported, then we need to preload.
+		prev=dlprefiles
+	      fi
+	    fi
 
-      execute)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+	    # CHECK ME:  I think I busted this.  -Ossama
+	    if test "$prev" = dlprefiles; then
+	      # Preload the old-style object.
+	      dlprefiles="$dlprefiles $pic_object"
+	      prev=
+	    fi
 
-Automatically set library path, then run a program.
+	    # A PIC object.
+	    libobjs="$libobjs $pic_object"
+	    arg="$pic_object"
+	  fi
 
-This mode accepts the following additional options:
+	  # Non-PIC object.
+	  if test "$non_pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    non_pic_object="$xdir$non_pic_object"
 
-  -dlopen FILE      add the directory containing FILE to the library path
+	    # A standard non-PIC object
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	    if test -z "$pic_object" || test "$pic_object" = none ; then
+	      arg="$non_pic_object"
+	    fi
+	  else
+	    # If the PIC object exists, use it instead.
+	    # $xdir was prepended to $pic_object above.
+	    non_pic_object="$pic_object"
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	  fi
+	else
+	  # Only an error if not doing a dry-run.
+	  if test -z "$run"; then
+	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+	    exit $EXIT_FAILURE
+	  else
+	    # Dry-run case.
 
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
+	    # Extract subdirectory from the argument.
+	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+	    if test "X$xdir" = "X$arg"; then
+	      xdir=
+	    else
+	      xdir="$xdir/"
+	    fi
 
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
+	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+	    libobjs="$libobjs $pic_object"
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	  fi
+	fi
+	;;
 
-Then, COMMAND is executed, with ARGS as arguments."
-        ;;
+      *.$libext)
+	# An archive.
+	deplibs="$deplibs $arg"
+	old_deplibs="$old_deplibs $arg"
+	continue
+	;;
 
-      finish)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+      *.la)
+	# A libtool-controlled library.
 
-Complete the installation of libtool libraries.
+	if test "$prev" = dlfiles; then
+	  # This library was specified with -dlopen.
+	  dlfiles="$dlfiles $arg"
+	  prev=
+	elif test "$prev" = dlprefiles; then
+	  # The library was specified with -dlpreopen.
+	  dlprefiles="$dlprefiles $arg"
+	  prev=
+	else
+	  deplibs="$deplibs $arg"
+	fi
+	continue
+	;;
 
-Each LIBDIR is a directory that contains libtool libraries.
+      # Some other compiler argument.
+      *)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	;;
+      esac # arg
 
-The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
-        ;;
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+      fi
+    done # argument parsing loop
 
-      install)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+    if test -n "$prev"; then
+      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
 
-Install executables or libraries.
+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      compile_command="$compile_command $arg"
+      finalize_command="$finalize_command $arg"
+    fi
 
-INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
+    oldlibs=
+    # calculate the name of the file, without its directory
+    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+    libobjs_save="$libobjs"
 
-The following components of INSTALL-COMMAND are treated specially:
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
 
-  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
+    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+    if test "X$output_objdir" = "X$output"; then
+      output_objdir="$objdir"
+    else
+      output_objdir="$output_objdir/$objdir"
+    fi
+    # Create the object directory.
+    if test ! -d "$output_objdir"; then
+      $show "$mkdir $output_objdir"
+      $run $mkdir $output_objdir
+      exit_status=$?
+      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
+	exit $exit_status
+      fi
+    fi
 
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-        ;;
-
-      link)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -bindir BINDIR    specify path to binaries directory (for systems where
-                    libraries must be found in the PATH setting at runtime)
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-                    try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-                    try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-fast-install  disable the fast-install mode
-  -no-install       link a not-installable executable
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
-  -precious-files-regex REGEX
-                    don't remove output files matching REGEX
-  -release RELEASE  specify package release information
-  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
-  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
-  -shared           only do dynamic linking of libtool libraries
-  -shrext SUFFIX    override the standard shared library file extension
-  -static           do not do any dynamic linking of uninstalled libtool libraries
-  -static-libtool-libs
-                    do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-                    specify library version info [each variable defaults to 0]
-  -weak LIBNAME     declare that the target provides the LIBNAME interface
-  -Wc,FLAG
-  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
-  -Wl,FLAG
-  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
-  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename.  Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
-        ;;
-
-      uninstall)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
-        ;;
-
-      *)
-        func_fatal_help "invalid operation mode \`$opt_mode'"
-        ;;
+    # Determine the type of output
+    case $output in
+    "")
+      $echo "$modename: you must specify an output file" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
     esac
 
-    echo
-    $ECHO "Try \`$progname --help' for more information about other modes."
-}
-
-# Now that we've collected a possible --mode arg, show help if necessary
-if $opt_help; then
-  if test "$opt_help" = :; then
-    func_mode_help
-  else
-    {
-      func_help noexit
-      for opt_mode in compile link execute install finish uninstall clean; do
-	func_mode_help
-      done
-    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
-    {
-      func_help noexit
-      for opt_mode in compile link execute install finish uninstall clean; do
-	echo
-	func_mode_help
-      done
-    } |
-    sed '1d
-      /^When reporting/,/^Report/{
-	H
-	d
-      }
-      $x
-      /information about other modes/d
-      /more detailed .*MODE/d
-      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
-  fi
-  exit $?
-fi
-
-
-# func_mode_execute arg...
-func_mode_execute ()
-{
-    $opt_debug
-    # The first argument is the command name.
-    cmd="$nonopt"
-    test -z "$cmd" && \
-      func_fatal_help "you must specify a COMMAND"
-
-    # Handle -dlopen flags immediately.
-    for file in $opt_dlopen; do
-      test -f "$file" \
-	|| func_fatal_help "\`$file' is not a file"
-
-      dir=
-      case $file in
-      *.la)
-	func_resolve_sysroot "$file"
-	file=$func_resolve_sysroot_result
-
-	# Check to see that this really is a libtool archive.
-	func_lalib_unsafe_p "$file" \
-	  || func_fatal_help "\`$lib' is not a valid libtool archive"
-
-	# Read the libtool library.
-	dlname=
-	library_names=
-	func_source "$file"
-
-	# Skip this library if it cannot be dlopened.
-	if test -z "$dlname"; then
-	  # Warn if it was a shared library.
-	  test -n "$library_names" && \
-	    func_warning "\`$file' was not linked with \`-export-dynamic'"
-	  continue
-	fi
-
-	func_dirname "$file" "" "."
-	dir="$func_dirname_result"
-
-	if test -f "$dir/$objdir/$dlname"; then
-	  func_append dir "/$objdir"
-	else
-	  if test ! -f "$dir/$dlname"; then
-	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
-	  fi
-	fi
-	;;
-
-      *.lo)
-	# Just add the directory containing the .lo file.
-	func_dirname "$file" "" "."
-	dir="$func_dirname_result"
-	;;
-
-      *)
-	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
-	continue
-	;;
-      esac
-
-      # Get the absolute pathname.
-      absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
-
-      # Now add the directory to shlibpath_var.
-      if eval "test -z \"\$$shlibpath_var\""; then
-	eval "$shlibpath_var=\"\$dir\""
-      else
-	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-      fi
-    done
-
-    # This variable tells wrapper scripts just to set shlibpath_var
-    # rather than running their programs.
-    libtool_execute_magic="$magic"
-
-    # Check if any of the arguments is a wrapper script.
-    args=
-    for file
-    do
-      case $file in
-      -* | *.la | *.lo ) ;;
-      *)
-	# Do a test to see if this is really a libtool program.
-	if func_ltwrapper_script_p "$file"; then
-	  func_source "$file"
-	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
-	elif func_ltwrapper_executable_p "$file"; then
-	  func_ltwrapper_scriptname "$file"
-	  func_source "$func_ltwrapper_scriptname_result"
-	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
-	fi
-	;;
-      esac
-      # Quote arguments (to preserve shell metacharacters).
-      func_append_quoted args "$file"
-    done
-
-    if test "X$opt_dry_run" = Xfalse; then
-      if test -n "$shlibpath_var"; then
-	# Export the shlibpath_var.
-	eval "export $shlibpath_var"
-      fi
-
-      # Restore saved environment variables
-      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-      do
-	eval "if test \"\${save_$lt_var+set}\" = set; then
-                $lt_var=\$save_$lt_var; export $lt_var
-	      else
-		$lt_unset $lt_var
-	      fi"
-      done
-
-      # Now prepare to actually exec the command.
-      exec_cmd="\$cmd$args"
-    else
-      # Display what would be done.
-      if test -n "$shlibpath_var"; then
-	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
-	echo "export $shlibpath_var"
-      fi
-      $ECHO "$cmd$args"
-      exit $EXIT_SUCCESS
-    fi
-}
-
-test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
-
+    case $host in
+    *cygwin* | *mingw* | *pw32*)
+      # don't eliminate duplications in $postdeps and $predeps
+      duplicate_compiler_generated_deps=yes
+      ;;
+    *)
+      duplicate_compiler_generated_deps=$duplicate_deps
+      ;;
+    esac
+    specialdeplibs=
 
-# func_mode_finish arg...
-func_mode_finish ()
-{
-    $opt_debug
     libs=
-    libdirs=
-    admincmds=
-
-    for opt in "$nonopt" ${1+"$@"}
-    do
-      if test -d "$opt"; then
-	func_append libdirs " $opt"
-
-      elif test -f "$opt"; then
-	if func_lalib_unsafe_p "$opt"; then
-	  func_append libs " $opt"
-	else
-	  func_warning "\`$opt' is not a valid libtool archive"
-	fi
-
-      else
-	func_fatal_error "invalid argument \`$opt'"
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if test "X$duplicate_deps" = "Xyes" ; then
+	case "$libs " in
+	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	esac
       fi
+      libs="$libs $deplib"
     done
 
-    if test -n "$libs"; then
-      if test -n "$lt_sysroot"; then
-        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
-        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
-      else
-        sysroot_cmd=
-      fi
+    if test "$linkmode" = lib; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
 
-      # Remove sysroot references
-      if $opt_dry_run; then
-        for lib in $libs; do
-          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
-        done
-      else
-        tmpdir=`func_mktempdir`
-        for lib in $libs; do
-	  sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
-	    > $tmpdir/tmp-la
-	  mv -f $tmpdir/tmp-la $lib
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
+	for pre_post_dep in $predeps $postdeps; do
+	  case "$pre_post_deps " in
+	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+	  esac
+	  pre_post_deps="$pre_post_deps $pre_post_dep"
 	done
-        ${RM}r "$tmpdir"
       fi
+      pre_post_deps=
     fi
 
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for libdir in $libdirs; do
-	if test -n "$finish_cmds"; then
-	  # Do each command in the finish commands.
-	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
-'"$cmd"'"'
-	fi
-	if test -n "$finish_eval"; then
-	  # Do the single finish_eval.
-	  eval cmds=\"$finish_eval\"
-	  $opt_dry_run || eval "$cmds" || func_append admincmds "
-       $cmds"
-	fi
-      done
-    fi
-
-    # Exit here if they wanted silent mode.
-    $opt_silent && exit $EXIT_SUCCESS
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      echo "----------------------------------------------------------------------"
-      echo "Libraries have been installed in:"
-      for libdir in $libdirs; do
-	$ECHO "   $libdir"
-      done
-      echo
-      echo "If you ever happen to want to link against installed libraries"
-      echo "in a given directory, LIBDIR, you must either use libtool, and"
-      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-      echo "flag during linking and do at least one of the following:"
-      if test -n "$shlibpath_var"; then
-	echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-	echo "     during execution"
-      fi
-      if test -n "$runpath_var"; then
-	echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-	echo "     during linking"
-      fi
-      if test -n "$hardcode_libdir_flag_spec"; then
-	libdir=LIBDIR
-	eval flag=\"$hardcode_libdir_flag_spec\"
-
-	$ECHO "   - use the \`$flag' linker flag"
-      fi
-      if test -n "$admincmds"; then
-	$ECHO "   - have your system administrator run these commands:$admincmds"
-      fi
-      if test -f /etc/ld.so.conf; then
-	echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-      fi
-      echo
-
-      echo "See any operating system documentation about shared libraries for"
-      case $host in
-	solaris2.[6789]|solaris2.1[0-9])
-	  echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
-	  echo "pages."
-	  ;;
-	*)
-	  echo "more information, such as the ld(1) and ld.so(8) manual pages."
-	  ;;
-      esac
-      echo "----------------------------------------------------------------------"
-    fi
-    exit $EXIT_SUCCESS
-}
-
-test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
-
-
-# func_mode_install arg...
-func_mode_install ()
-{
-    $opt_debug
-    # There may be an optional sh(1) argument at the beginning of
-    # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
-       # Allow the use of GNU shtool's install command.
-       case $nonopt in *shtool*) :;; *) false;; esac; then
-      # Aesthetically quote it.
-      func_quote_for_eval "$nonopt"
-      install_prog="$func_quote_for_eval_result "
-      arg=$1
-      shift
-    else
-      install_prog=
-      arg=$nonopt
-    fi
-
-    # The real first argument should be the name of the installation program.
-    # Aesthetically quote it.
-    func_quote_for_eval "$arg"
-    func_append install_prog "$func_quote_for_eval_result"
-    install_shared_prog=$install_prog
-    case " $install_prog " in
-      *[\\\ /]cp\ *) install_cp=: ;;
-      *) install_cp=false ;;
-    esac
-
-    # We need to accept at least all the BSD install flags.
-    dest=
-    files=
-    opts=
-    prev=
-    install_type=
-    isdir=no
-    stripme=
-    no_mode=:
-    for arg
-    do
-      arg2=
-      if test -n "$dest"; then
-	func_append files " $dest"
-	dest=$arg
-	continue
-      fi
-
-      case $arg in
-      -d) isdir=yes ;;
-      -f)
-	if $install_cp; then :; else
-	  prev=$arg
-	fi
-	;;
-      -g | -m | -o)
-	prev=$arg
-	;;
-      -s)
-	stripme=" -s"
-	continue
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    case $linkmode in
+    lib)
+	passes="conv link"
+	for file in $dlfiles $dlprefiles; do
+	  case $file in
+	  *.la) ;;
+	  *)
+	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
+	    exit $EXIT_FAILURE
+	    ;;
+	  esac
+	done
 	;;
-      -*)
+    prog)
+	compile_deplibs=
+	finalize_deplibs=
+	alldeplibs=no
+	newdlfiles=
+	newdlprefiles=
+	passes="conv scan dlopen dlpreopen link"
 	;;
-      *)
-	# If the previous option needed an argument, then skip it.
-	if test -n "$prev"; then
-	  if test "x$prev" = x-m && test -n "$install_override_mode"; then
-	    arg2=$install_override_mode
-	    no_mode=false
-	  fi
-	  prev=
-	else
-	  dest=$arg
-	  continue
-	fi
+    *)  passes="conv"
 	;;
-      esac
-
-      # Aesthetically quote the argument.
-      func_quote_for_eval "$arg"
-      func_append install_prog " $func_quote_for_eval_result"
-      if test -n "$arg2"; then
-	func_quote_for_eval "$arg2"
+    esac
+    for pass in $passes; do
+      if test "$linkmode,$pass" = "lib,link" ||
+	 test "$linkmode,$pass" = "prog,scan"; then
+	libs="$deplibs"
+	deplibs=
       fi
-      func_append install_shared_prog " $func_quote_for_eval_result"
-    done
-
-    test -z "$install_prog" && \
-      func_fatal_help "you must specify an install program"
-
-    test -n "$prev" && \
-      func_fatal_help "the \`$prev' option requires an argument"
-
-    if test -n "$install_override_mode" && $no_mode; then
-      if $install_cp; then :; else
-	func_quote_for_eval "$install_override_mode"
-	func_append install_shared_prog " -m $func_quote_for_eval_result"
+      if test "$linkmode" = prog; then
+	case $pass in
+	dlopen) libs="$dlfiles" ;;
+	dlpreopen) libs="$dlprefiles" ;;
+	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+	esac
       fi
-    fi
-
-    if test -z "$files"; then
-      if test -z "$dest"; then
-	func_fatal_help "no file or destination specified"
-      else
-	func_fatal_help "you must specify a destination"
+      if test "$pass" = dlopen; then
+	# Collect dlpreopened libraries
+	save_deplibs="$deplibs"
+	deplibs=
       fi
-    fi
-
-    # Strip any trailing slash from the destination.
-    func_stripname '' '/' "$dest"
-    dest=$func_stripname_result
-
-    # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
-      destname=
-    else
-      func_dirname_and_basename "$dest" "" "."
-      destdir="$func_dirname_result"
-      destname="$func_basename_result"
-
-      # Not a directory, so check to see that there is only one file specified.
-      set dummy $files; shift
-      test "$#" -gt 1 && \
-	func_fatal_help "\`$dest' is not a directory"
-    fi
-    case $destdir in
-    [\\/]* | [A-Za-z]:[\\/]*) ;;
-    *)
-      for file in $files; do
-	case $file in
-	*.lo) ;;
-	*)
-	  func_fatal_help "\`$destdir' must be an absolute directory name"
-	  ;;
-	esac
-      done
-      ;;
-    esac
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    staticlibs=
-    future_libdirs=
-    current_libdirs=
-    for file in $files; do
-
-      # Do each installation.
-      case $file in
-      *.$libext)
-	# Do the static libraries later.
-	func_append staticlibs " $file"
-	;;
-
-      *.la)
-	func_resolve_sysroot "$file"
-	file=$func_resolve_sysroot_result
-
-	# Check to see that this really is a libtool archive.
-	func_lalib_unsafe_p "$file" \
-	  || func_fatal_help "\`$file' is not a valid libtool archive"
-
-	library_names=
-	old_library=
-	relink_command=
-	func_source "$file"
-
-	# Add the libdir to current_libdirs if it is the destination.
-	if test "X$destdir" = "X$libdir"; then
-	  case "$current_libdirs " in
-	  *" $libdir "*) ;;
-	  *) func_append current_libdirs " $libdir" ;;
-	  esac
-	else
-	  # Note the libdir as a future libdir.
-	  case "$future_libdirs " in
-	  *" $libdir "*) ;;
-	  *) func_append future_libdirs " $libdir" ;;
-	  esac
-	fi
-
-	func_dirname "$file" "/" ""
-	dir="$func_dirname_result"
-	func_append dir "$objdir"
-
-	if test -n "$relink_command"; then
-	  # Determine the prefix the user has applied to our future dir.
-	  inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
-
-	  # Don't allow the user to place us outside of our expected
-	  # location b/c this prevents finding dependent libraries that
-	  # are installed to the same prefix.
-	  # At present, this check doesn't affect windows .dll's that
-	  # are installed into $libdir/../bin (currently, that works fine)
-	  # but it's something to keep an eye on.
-	  test "$inst_prefix_dir" = "$destdir" && \
-	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
-
-	  if test -n "$inst_prefix_dir"; then
-	    # Stick the inst_prefix_dir data into the link command.
-	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+      for deplib in $libs; do
+	lib=
+	found=no
+	case $deplib in
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+	  if test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
 	  else
-	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+	    compiler_flags="$compiler_flags $deplib"
 	  fi
-
-	  func_warning "relinking \`$file'"
-	  func_show_eval "$relink_command" \
-	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
-	fi
-
-	# See the names of the shared library.
-	set dummy $library_names; shift
-	if test -n "$1"; then
-	  realname="$1"
-	  shift
-
-	  srcname="$realname"
-	  test -n "$relink_command" && srcname="$realname"T
-
-	  # Install the shared library and build the symlinks.
-	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
-	      'exit $?'
-	  tstripme="$stripme"
-	  case $host_os in
-	  cygwin* | mingw* | pw32* | cegcc*)
-	    case $realname in
-	    *.dll.a)
-	      tstripme=""
-	      ;;
-	    esac
-	    ;;
-	  esac
-	  if test -n "$tstripme" && test -n "$striplib"; then
-	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
+	  continue
+	  ;;
+	-l*)
+	  if test "$linkmode" != lib && test "$linkmode" != prog; then
+	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
+	    continue
 	  fi
-
-	  if test "$#" -gt 0; then
-	    # Delete the old symlinks, and create new ones.
-	    # Try `ln -sf' first, because the `ln' binary might depend on
-	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
-	    # so we also need to try rm && ln -s.
-	    for linkname
-	    do
-	      test "$linkname" != "$realname" \
-		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
-	    done
+	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
+	  if test "$linkmode" = lib; then
+	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+	  else
+	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
 	  fi
-
-	  # Do each command in the postinstall commands.
-	  lib="$destdir/$realname"
-	  func_execute_cmds "$postinstall_cmds" 'exit $?'
-	fi
-
-	# Install the pseudo-library for information purposes.
-	func_basename "$file"
-	name="$func_basename_result"
-	instname="$dir/$name"i
-	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
-
-	# Maybe install the static library, too.
-	test -n "$old_library" && func_append staticlibs " $dir/$old_library"
-	;;
-
-      *.lo)
-	# Install (i.e. copy) a libtool object.
-
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  func_basename "$file"
-	  destfile="$func_basename_result"
-	  destfile="$destdir/$destfile"
-	fi
-
-	# Deduce the name of the destination old-style object file.
-	case $destfile in
-	*.lo)
-	  func_lo2o "$destfile"
-	  staticdest=$func_lo2o_result
-	  ;;
-	*.$objext)
-	  staticdest="$destfile"
-	  destfile=
-	  ;;
-	*)
-	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
-	  ;;
-	esac
-
-	# Install the libtool object if requested.
-	test -n "$destfile" && \
-	  func_show_eval "$install_prog $file $destfile" 'exit $?'
-
-	# Install the old object if enabled.
-	if test "$build_old_libs" = yes; then
-	  # Deduce the name of the old-style object file.
-	  func_lo2o "$file"
-	  staticobj=$func_lo2o_result
-	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
-	fi
-	exit $EXIT_SUCCESS
-	;;
-
-      *)
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  func_basename "$file"
-	  destfile="$func_basename_result"
-	  destfile="$destdir/$destfile"
-	fi
-
-	# If the file is missing, and there is a .exe on the end, strip it
-	# because it is most likely a libtool script we actually want to
-	# install
-	stripped_ext=""
-	case $file in
-	  *.exe)
-	    if test ! -f "$file"; then
-	      func_stripname '' '.exe' "$file"
-	      file=$func_stripname_result
-	      stripped_ext=".exe"
+	  for searchdir in $searchdirs; do
+	    for search_ext in .la $std_shrext .so .a; do
+	      # Search the libtool library
+	      lib="$searchdir/lib${name}${search_ext}"
+	      if test -f "$lib"; then
+		if test "$search_ext" = ".la"; then
+		  found=yes
+		else
+		  found=no
+		fi
+		break 2
+	      fi
+	    done
+	  done
+	  if test "$found" != yes; then
+	    # deplib doesn't seem to be a libtool library
+	    if test "$linkmode,$pass" = "prog,link"; then
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      deplibs="$deplib $deplibs"
+	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    continue
+	  else # deplib is a libtool library
+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+	    # We need to do some special things here, and not later.
+	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	      case " $predeps $postdeps " in
+	      *" $deplib "*)
+		if (${SED} -e '2q' $lib |
+                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+		  library_names=
+		  old_library=
+		  case $lib in
+		  */* | *\\*) . $lib ;;
+		  *) . ./$lib ;;
+		  esac
+		  for l in $old_library $library_names; do
+		    ll="$l"
+		  done
+		  if test "X$ll" = "X$old_library" ; then # only static version available
+		    found=no
+		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+		    test "X$ladir" = "X$lib" && ladir="."
+		    lib=$ladir/$old_library
+		    if test "$linkmode,$pass" = "prog,link"; then
+		      compile_deplibs="$deplib $compile_deplibs"
+		      finalize_deplibs="$deplib $finalize_deplibs"
+		    else
+		      deplibs="$deplib $deplibs"
+		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+		    fi
+		    continue
+		  fi
+		fi
+	        ;;
+	      *) ;;
+	      esac
 	    fi
+	  fi
+	  ;; # -l
+	-L*)
+	  case $linkmode in
+	  lib)
+	    deplibs="$deplib $deplibs"
+	    test "$pass" = conv && continue
+	    newdependency_libs="$deplib $newdependency_libs"
+	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
 	    ;;
-	esac
-
-	# Do a test to see if this is really a libtool program.
-	case $host in
-	*cygwin* | *mingw*)
-	    if func_ltwrapper_executable_p "$file"; then
-	      func_ltwrapper_scriptname "$file"
-	      wrapper=$func_ltwrapper_scriptname_result
+	  prog)
+	    if test "$pass" = conv; then
+	      deplibs="$deplib $deplibs"
+	      continue
+	    fi
+	    if test "$pass" = scan; then
+	      deplibs="$deplib $deplibs"
 	    else
-	      func_stripname '' '.exe' "$file"
-	      wrapper=$func_stripname_result
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
 	    fi
+	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
 	    ;;
-	*)
-	    wrapper=$file
+	  *)
+	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
 	    ;;
-	esac
-	if func_ltwrapper_script_p "$wrapper"; then
-	  notinst_deplibs=
-	  relink_command=
-
-	  func_source "$wrapper"
-
-	  # Check the variables that should have been set.
-	  test -z "$generated_by_libtool_version" && \
-	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
-
-	  finalize=yes
-	  for lib in $notinst_deplibs; do
-	    # Check to see that each library is installed.
-	    libdir=
-	    if test -f "$lib"; then
-	      func_source "$lib"
-	    fi
-	    libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
-	    if test -n "$libdir" && test ! -f "$libfile"; then
-	      func_warning "\`$lib' has not been installed in \`$libdir'"
-	      finalize=no
-	    fi
-	  done
-
-	  relink_command=
-	  func_source "$wrapper"
-
-	  outputname=
-	  if test "$fast_install" = no && test -n "$relink_command"; then
-	    $opt_dry_run || {
-	      if test "$finalize" = yes; then
-	        tmpdir=`func_mktempdir`
-		func_basename "$file$stripped_ext"
-		file="$func_basename_result"
-	        outputname="$tmpdir/$file"
-	        # Replace the output file specification.
-	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
-
-	        $opt_silent || {
-	          func_quote_for_expand "$relink_command"
-		  eval "func_echo $func_quote_for_expand_result"
-	        }
-	        if eval "$relink_command"; then :
-	          else
-		  func_error "error: relink \`$file' with the above command before installing it"
-		  $opt_dry_run || ${RM}r "$tmpdir"
-		  continue
-	        fi
-	        file="$outputname"
-	      else
-	        func_warning "cannot relink \`$file'"
-	      fi
-	    }
-	  else
-	    # Install the binary that we compiled earlier.
-	    file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
+	  esac # linkmode
+	  continue
+	  ;; # -L
+	-R*)
+	  if test "$pass" = link; then
+	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+	    # Make sure the xrpath contains only unique directories.
+	    case "$xrpath " in
+	    *" $dir "*) ;;
+	    *) xrpath="$xrpath $dir" ;;
+	    esac
 	  fi
-	fi
-
-	# remove .exe since cygwin /usr/bin/install will append another
-	# one anyway
-	case $install_prog,$host in
-	*/usr/bin/install*,*cygwin*)
-	  case $file:$destfile in
-	  *.exe:*.exe)
-	    # this is ok
-	    ;;
-	  *.exe:*)
-	    destfile=$destfile.exe
+	  deplibs="$deplib $deplibs"
+	  continue
+	  ;;
+	*.la) lib="$deplib" ;;
+	*.$libext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  case $linkmode in
+	  lib)
+	    valid_a_lib=no
+	    case $deplibs_check_method in
+	      match_pattern*)
+		set dummy $deplibs_check_method
+	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+		if eval $echo \"$deplib\" 2>/dev/null \
+		    | $SED 10q \
+		    | $EGREP "$match_pattern_regex" > /dev/null; then
+		  valid_a_lib=yes
+		fi
+		;;
+	      pass_all)
+		valid_a_lib=yes
+		;;
+            esac
+	    if test "$valid_a_lib" != yes; then
+	      $echo
+	      $echo "*** Warning: Trying to link with static lib archive $deplib."
+	      $echo "*** I have the capability to make that library automatically link in when"
+	      $echo "*** you link to this library.  But I can only do this if you have a"
+	      $echo "*** shared version of the library, which you do not appear to have"
+	      $echo "*** because the file extensions .$libext of this argument makes me believe"
+	      $echo "*** that it is just a static archive that I should not used here."
+	    else
+	      $echo
+	      $echo "*** Warning: Linking the shared library $output against the"
+	      $echo "*** static library $deplib is not portable!"
+	      deplibs="$deplib $deplibs"
+	    fi
+	    continue
 	    ;;
-	  *:*.exe)
-	    func_stripname '' '.exe' "$destfile"
-	    destfile=$func_stripname_result
+	  prog)
+	    if test "$pass" != link; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    continue
 	    ;;
-	  esac
+	  esac # linkmode
+	  ;; # *.$libext
+	*.lo | *.$objext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	  elif test "$linkmode" = prog; then
+	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+	      # If there is no dlopen support or we're linking statically,
+	      # we need to preload.
+	      newdlprefiles="$newdlprefiles $deplib"
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      newdlfiles="$newdlfiles $deplib"
+	    fi
+	  fi
+	  continue
 	  ;;
-	esac
-	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
-	$opt_dry_run || if test -n "$outputname"; then
-	  ${RM}r "$tmpdir"
+	%DEPLIBS%)
+	  alldeplibs=yes
+	  continue
+	  ;;
+	esac # case $deplib
+	if test "$found" = yes || test -f "$lib"; then :
+	else
+	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
+	  exit $EXIT_FAILURE
 	fi
-	;;
-      esac
-    done
 
-    for file in $staticlibs; do
-      func_basename "$file"
-      name="$func_basename_result"
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+	  exit $EXIT_FAILURE
+	fi
 
-      # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
+	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$ladir" = "X$lib" && ladir="."
 
-      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
+	dlname=
+	dlopen=
+	dlpreopen=
+	libdir=
+	library_names=
+	old_library=
+	# If the library was installed with an old release of libtool,
+	# it will not redefine variables installed, or shouldnotlink
+	installed=yes
+	shouldnotlink=no
+	avoidtemprpath=
 
-      if test -n "$stripme" && test -n "$old_striplib"; then
-	func_show_eval "$old_striplib $oldlib" 'exit $?'
-      fi
 
-      # Do each command in the postinstall commands.
-      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
-    done
+	# Read the .la file
+	case $lib in
+	*/* | *\\*) . $lib ;;
+	*) . ./$lib ;;
+	esac
 
-    test -n "$future_libdirs" && \
-      func_warning "remember to run \`$progname --finish$future_libdirs'"
+	if test "$linkmode,$pass" = "lib,link" ||
+	   test "$linkmode,$pass" = "prog,scan" ||
+	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+	fi
 
-    if test -n "$current_libdirs"; then
-      # Maybe just do a dry run.
-      $opt_dry_run && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
-    else
-      exit $EXIT_SUCCESS
-    fi
-}
+	if test "$pass" = conv; then
+	  # Only check for convenience libraries
+	  deplibs="$lib $deplibs"
+	  if test -z "$libdir"; then
+	    if test -z "$old_library"; then
+	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+	      exit $EXIT_FAILURE
+	    fi
+	    # It is a libtool convenience library, so add in its objects.
+	    convenience="$convenience $ladir/$objdir/$old_library"
+	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
+	    tmp_libs=
+	    for deplib in $dependency_libs; do
+	      deplibs="$deplib $deplibs"
+              if test "X$duplicate_deps" = "Xyes" ; then
+	        case "$tmp_libs " in
+	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	        esac
+              fi
+	      tmp_libs="$tmp_libs $deplib"
+	    done
+	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
+	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  continue
+	fi # $pass = conv
 
-test "$opt_mode" = install && func_mode_install ${1+"$@"}
 
+	# Get the name of the library we link against.
+	linklib=
+	for l in $old_library $library_names; do
+	  linklib="$l"
+	done
+	if test -z "$linklib"; then
+	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+	  exit $EXIT_FAILURE
+	fi
 
-# func_generate_dlsyms outputname originator pic_p
-# Extract symbols from dlprefiles and create ${outputname}S.o with
-# a dlpreopen symbol table.
-func_generate_dlsyms ()
-{
-    $opt_debug
-    my_outputname="$1"
-    my_originator="$2"
-    my_pic_p="${3-no}"
-    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
-    my_dlsyms=
-
-    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-      if test -n "$NM" && test -n "$global_symbol_pipe"; then
-	my_dlsyms="${my_outputname}S.c"
-      else
-	func_error "not configured to extract global symbols from dlpreopened files"
-      fi
-    fi
-
-    if test -n "$my_dlsyms"; then
-      case $my_dlsyms in
-      "") ;;
-      *.c)
-	# Discover the nlist of each of the dlfiles.
-	nlist="$output_objdir/${my_outputname}.nm"
-
-	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
-
-	# Parse the name list into a source file.
-	func_verbose "creating $output_objdir/$my_dlsyms"
-
-	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
-#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
-#endif
-
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
-   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data.  */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-/* External symbol declarations for the compiler. */\
-"
-
-	if test "$dlself" = yes; then
-	  func_verbose "generating symbol list for \`$output'"
-
-	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
-
-	  # Add our own program objects to the symbol list.
-	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
-	  for progfile in $progfiles; do
-	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
-	    func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
-	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
-	  done
-
-	  if test -n "$exclude_expsyms"; then
-	    $opt_dry_run || {
-	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-	      eval '$MV "$nlist"T "$nlist"'
-	    }
+	# This library was specified with -dlopen.
+	if test "$pass" = dlopen; then
+	  if test -z "$libdir"; then
+	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  if test -z "$dlname" ||
+	     test "$dlopen_support" != yes ||
+	     test "$build_libtool_libs" = no; then
+	    # If there is no dlname, no dlopen support or we're linking
+	    # statically, we need to preload.  We also need to preload any
+	    # dependent libraries so libltdl's deplib preloader doesn't
+	    # bomb out in the load deplibs phase.
+	    dlprefiles="$dlprefiles $lib $dependency_libs"
+	  else
+	    newdlfiles="$newdlfiles $lib"
 	  fi
+	  continue
+	fi # $pass = dlopen
 
-	  if test -n "$export_symbols_regex"; then
-	    $opt_dry_run || {
-	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-	      eval '$MV "$nlist"T "$nlist"'
-	    }
+	# We need an absolute path.
+	case $ladir in
+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+	*)
+	  abs_ladir=`cd "$ladir" && pwd`
+	  if test -z "$abs_ladir"; then
+	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
+	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+	    abs_ladir="$ladir"
 	  fi
+	  ;;
+	esac
+	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
 
-	  # Prepare the list of exported symbols
-	  if test -z "$export_symbols"; then
-	    export_symbols="$output_objdir/$outputname.exp"
-	    $opt_dry_run || {
-	      $RM $export_symbols
-	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-	      case $host in
-	      *cygwin* | *mingw* | *cegcc* )
-                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
-	        ;;
-	      esac
-	    }
+	# Find the relevant object directory and library name.
+	if test "X$installed" = Xyes; then
+	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    libdir="$abs_ladir"
 	  else
-	    $opt_dry_run || {
-	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
-	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
-	      eval '$MV "$nlist"T "$nlist"'
-	      case $host in
-	        *cygwin* | *mingw* | *cegcc* )
-	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
-	          ;;
-	      esac
-	    }
+	    dir="$libdir"
+	    absdir="$libdir"
 	  fi
-	fi
-
-	for dlprefile in $dlprefiles; do
-	  func_verbose "extracting global C symbols from \`$dlprefile'"
-	  func_basename "$dlprefile"
-	  name="$func_basename_result"
-          case $host in
-	    *cygwin* | *mingw* | *cegcc* )
-	      # if an import library, we need to obtain dlname
-	      if func_win32_import_lib_p "$dlprefile"; then
-	        func_tr_sh "$dlprefile"
-	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
-	        dlprefile_dlbasename=""
-	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
-	          # Use subshell, to avoid clobbering current variable values
-	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
-	          if test -n "$dlprefile_dlname" ; then
-	            func_basename "$dlprefile_dlname"
-	            dlprefile_dlbasename="$func_basename_result"
-	          else
-	            # no lafile. user explicitly requested -dlpreopen <import library>.
-	            $sharedlib_from_linklib_cmd "$dlprefile"
-	            dlprefile_dlbasename=$sharedlib_from_linklib_result
-	          fi
-	        fi
-	        $opt_dry_run || {
-	          if test -n "$dlprefile_dlbasename" ; then
-	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
-	          else
-	            func_warning "Could not compute DLL name from $name"
-	            eval '$ECHO ": $name " >> "$nlist"'
-	          fi
-	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
-	            $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
-	        }
-	      else # not an import lib
-	        $opt_dry_run || {
-	          eval '$ECHO ": $name " >> "$nlist"'
-	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-	        }
-	      fi
-	    ;;
-	    *)
-	      $opt_dry_run || {
-	        eval '$ECHO ": $name " >> "$nlist"'
-	        func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-	        eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-	      }
-	    ;;
-          esac
-	done
-
-	$opt_dry_run || {
-	  # Make sure we have at least an empty file.
-	  test -f "$nlist" || : > "$nlist"
-
-	  if test -n "$exclude_expsyms"; then
-	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
-	    $MV "$nlist"T "$nlist"
+	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+	else
+	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  else
+	    dir="$ladir/$objdir"
+	    absdir="$abs_ladir/$objdir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
 	  fi
+	fi # $installed = yes
+	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
 
-	  # Try sorting and uniquifying the output.
-	  if $GREP -v "^: " < "$nlist" |
-	      if sort -k 3 </dev/null >/dev/null 2>&1; then
-		sort -k 3
-	      else
-		sort +2
-	      fi |
-	      uniq > "$nlist"S; then
-	    :
+	# This library was specified with -dlpreopen.
+	if test "$pass" = dlpreopen; then
+	  if test -z "$libdir"; then
+	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  # Prefer using a static library (so that no silly _DYNAMIC symbols
+	  # are required to link).
+	  if test -n "$old_library"; then
+	    newdlprefiles="$newdlprefiles $dir/$old_library"
+	  # Otherwise, use the dlname, so that lt_dlopen finds it.
+	  elif test -n "$dlname"; then
+	    newdlprefiles="$newdlprefiles $dir/$dlname"
 	  else
-	    $GREP -v "^: " < "$nlist" > "$nlist"S
+	    newdlprefiles="$newdlprefiles $dir/$linklib"
 	  fi
+	fi # $pass = dlpreopen
 
-	  if test -f "$nlist"S; then
-	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
+	if test -z "$libdir"; then
+	  # Link the convenience library
+	  if test "$linkmode" = lib; then
+	    deplibs="$dir/$old_library $deplibs"
+	  elif test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$dir/$old_library $compile_deplibs"
+	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
 	  else
-	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
+	    deplibs="$lib $deplibs" # used for prog,scan pass
 	  fi
+	  continue
+	fi
 
-	  echo >> "$output_objdir/$my_dlsyms" "\
-
-/* The mapping between symbol names and symbols.  */
-typedef struct {
-  const char *name;
-  void *address;
-} lt_dlsymlist;
-extern LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
-LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
-  { \"$my_originator\", (void *) 0 },"
 
-	  case $need_lib_prefix in
-	  no)
-	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
-	    ;;
-	  *)
-	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
-	    ;;
-	  esac
-	  echo >> "$output_objdir/$my_dlsyms" "\
-  {0, (void *) 0}
-};
+	if test "$linkmode" = prog && test "$pass" != link; then
+	  newlib_search_path="$newlib_search_path $ladir"
+	  deplibs="$lib $deplibs"
 
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_${my_prefix}_LTX_preloaded_symbols;
-}
-#endif
+	  linkalldeplibs=no
+	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
+	     test "$build_libtool_libs" = no; then
+	    linkalldeplibs=yes
+	  fi
 
-#ifdef __cplusplus
-}
-#endif\
-"
-	} # !$opt_dry_run
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    case $deplib in
+	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
+	    esac
+	    # Need to link against all dependency_libs?
+	    if test "$linkalldeplibs" = yes; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      # Need to hardcode shared library paths
+	      # or/and link against static libraries
+	      newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done # for deplib
+	  continue
+	fi # $linkmode = prog...
 
-	pic_flag_for_symtable=
-	case "$compile_command " in
-	*" -static "*) ;;
-	*)
-	  case $host in
-	  # compiling the symbol table file with pic_flag works around
-	  # a FreeBSD bug that causes programs to crash when -lm is
-	  # linked before any other PIC object.  But we must not use
-	  # pic_flag when linking with -static.  The problem exists in
-	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
-	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
-	  *-*-hpux*)
-	    pic_flag_for_symtable=" $pic_flag"  ;;
-	  *)
-	    if test "X$my_pic_p" != Xno; then
-	      pic_flag_for_symtable=" $pic_flag"
+	if test "$linkmode,$pass" = "prog,link"; then
+	  if test -n "$library_names" &&
+	     { { test "$prefer_static_libs" = no ||
+		 test "$prefer_static_libs,$installed" = "built,yes"; } ||
+	       test -z "$old_library"; }; then
+	    # We need to hardcode the library path
+	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+	      # Make sure the rpath contains only unique directories.
+	      case "$temp_rpath " in
+	      *" $dir "*) ;;
+	      *" $absdir "*) ;;
+	      *) temp_rpath="$temp_rpath $absdir" ;;
+	      esac
 	    fi
-	    ;;
-	  esac
-	  ;;
-	esac
-	symtab_cflags=
-	for arg in $LTCFLAGS; do
-	  case $arg in
-	  -pie | -fpie | -fPIE) ;;
-	  *) func_append symtab_cflags " $arg" ;;
-	  esac
-	done
 
-	# Now compile the dynamic symbol file.
-	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi # $linkmode,$pass = prog,link...
 
-	# Clean up the generated files.
-	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+	  if test "$alldeplibs" = yes &&
+	     { test "$deplibs_check_method" = pass_all ||
+	       { test "$build_libtool_libs" = yes &&
+		 test -n "$library_names"; }; }; then
+	    # We only need to search for static libraries
+	    continue
+	  fi
+	fi
 
-	# Transform the symbol file into the correct name.
-	symfileobj="$output_objdir/${my_outputname}S.$objext"
-	case $host in
-	*cygwin* | *mingw* | *cegcc* )
-	  if test -f "$output_objdir/$my_outputname.def"; then
-	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-	  else
-	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+	link_static=no # Whether the deplib will be linked statically
+	use_static_libs=$prefer_static_libs
+	if test "$use_static_libs" = built && test "$installed" = yes ; then
+	  use_static_libs=no
+	fi
+	if test -n "$library_names" &&
+	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
+	  if test "$installed" = no; then
+	    notinst_deplibs="$notinst_deplibs $lib"
+	    need_relink=yes
 	  fi
-	  ;;
-	*)
-	  compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-	  finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-	  ;;
-	esac
-	;;
-      *)
-	func_fatal_error "unknown suffix for \`$my_dlsyms'"
-	;;
-      esac
-    else
-      # We keep going just in case the user didn't refer to
-      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-      # really was required.
+	  # This is a shared library
 
-      # Nullify the symbol file.
-      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
-      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
-    fi
-}
+	  # Warn about portability, can't link against -module's on
+	  # some systems (darwin)
+	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
+	    $echo
+	    if test "$linkmode" = prog; then
+	      $echo "*** Warning: Linking the executable $output against the loadable module"
+	    else
+	      $echo "*** Warning: Linking the shared library $output against the loadable module"
+	    fi
+	    $echo "*** $linklib is not portable!"
+	  fi
+	  if test "$linkmode" = lib &&
+	     test "$hardcode_into_libs" = yes; then
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi
 
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-# Despite the name, also deal with 64 bit binaries.
-func_win32_libid ()
-{
-  $opt_debug
-  win32_libid_type="unknown"
-  win32_fileres=`file -L $1 2>/dev/null`
-  case $win32_fileres in
-  *ar\ archive\ import\ library*) # definitely import
-    win32_libid_type="x86 archive import"
-    ;;
-  *ar\ archive*) # could be an import, or static
-    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
-    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
-       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
-      func_to_tool_file "$1" func_convert_file_msys_to_w32
-      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
-	$SED -n -e '
-	    1,100{
-		/ I /{
-		    s,.*,import,
-		    p
-		    q
-		}
-	    }'`
-      case $win32_nmres in
-      import*)  win32_libid_type="x86 archive import";;
-      *)        win32_libid_type="x86 archive static";;
-      esac
-    fi
-    ;;
-  *DLL*)
-    win32_libid_type="x86 DLL"
-    ;;
-  *executable*) # but shell scripts are "executable" too...
-    case $win32_fileres in
-    *MS\ Windows\ PE\ Intel*)
-      win32_libid_type="x86 DLL"
-      ;;
-    esac
-    ;;
-  esac
-  $ECHO "$win32_libid_type"
-}
-
-# func_cygming_dll_for_implib ARG
-#
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-# Invoked by eval'ing the libtool variable
-#    $sharedlib_from_linklib_cmd
-# Result is available in the variable
-#    $sharedlib_from_linklib_result
-func_cygming_dll_for_implib ()
-{
-  $opt_debug
-  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
-}
-
-# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
-#
-# The is the core of a fallback implementation of a
-# platform-specific function to extract the name of the
-# DLL associated with the specified import library LIBNAME.
-#
-# SECTION_NAME is either .idata$6 or .idata$7, depending
-# on the platform and compiler that created the implib.
-#
-# Echos the name of the DLL associated with the
-# specified import library.
-func_cygming_dll_for_implib_fallback_core ()
-{
-  $opt_debug
-  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
-  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
-    $SED '/^Contents of section '"$match_literal"':/{
-      # Place marker at beginning of archive member dllname section
-      s/.*/====MARK====/
-      p
-      d
-    }
-    # These lines can sometimes be longer than 43 characters, but
-    # are always uninteresting
-    /:[	 ]*file format pe[i]\{,1\}-/d
-    /^In archive [^:]*:/d
-    # Ensure marker is printed
-    /^====MARK====/p
-    # Remove all lines with less than 43 characters
-    /^.\{43\}/!d
-    # From remaining lines, remove first 43 characters
-    s/^.\{43\}//' |
-    $SED -n '
-      # Join marker and all lines until next marker into a single line
-      /^====MARK====/ b para
-      H
-      $ b para
-      b
-      :para
-      x
-      s/\n//g
-      # Remove the marker
-      s/^====MARK====//
-      # Remove trailing dots and whitespace
-      s/[\. \t]*$//
-      # Print
-      /./p' |
-    # we now have a list, one entry per line, of the stringified
-    # contents of the appropriate section of all members of the
-    # archive which possess that section. Heuristic: eliminate
-    # all those which have a first or second character that is
-    # a '.' (that is, objdump's representation of an unprintable
-    # character.) This should work for all archives with less than
-    # 0x302f exports -- but will fail for DLLs whose name actually
-    # begins with a literal '.' or a single character followed by
-    # a '.'.
-    #
-    # Of those that remain, print the first one.
-    $SED -e '/^\./d;/^.\./d;q'
-}
+	  if test -n "$old_archive_from_expsyms_cmds"; then
+	    # figure out the soname
+	    set dummy $library_names
+	    realname="$2"
+	    shift; shift
+	    libname=`eval \\$echo \"$libname_spec\"`
+	    # use dlname if we got it. it's perfectly good, no?
+	    if test -n "$dlname"; then
+	      soname="$dlname"
+	    elif test -n "$soname_spec"; then
+	      # bleh windows
+	      case $host in
+	      *cygwin* | mingw*)
+		major=`expr $current - $age`
+		versuffix="-$major"
+		;;
+	      esac
+	      eval soname=\"$soname_spec\"
+	    else
+	      soname="$realname"
+	    fi
 
-# func_cygming_gnu_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is a GNU/binutils-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_gnu_implib_p ()
-{
-  $opt_debug
-  func_to_tool_file "$1" func_convert_file_msys_to_w32
-  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
-  test -n "$func_cygming_gnu_implib_tmp"
-}
+	    # Make a new name for the extract_expsyms_cmds to use
+	    soroot="$soname"
+	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
+	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
 
-# func_cygming_ms_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is an MS-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_ms_implib_p ()
-{
-  $opt_debug
-  func_to_tool_file "$1" func_convert_file_msys_to_w32
-  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
-  test -n "$func_cygming_ms_implib_tmp"
-}
+	    # If the library has no export list, then create one now
+	    if test -f "$output_objdir/$soname-def"; then :
+	    else
+	      $show "extracting exported symbol list from \`$soname'"
+	      save_ifs="$IFS"; IFS='~'
+	      cmds=$extract_expsyms_cmds
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd" || exit $?
+	      done
+	      IFS="$save_ifs"
+	    fi
 
-# func_cygming_dll_for_implib_fallback ARG
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-#
-# This fallback implementation is for use when $DLLTOOL
-# does not support the --identify-strict option.
-# Invoked by eval'ing the libtool variable
-#    $sharedlib_from_linklib_cmd
-# Result is available in the variable
-#    $sharedlib_from_linklib_result
-func_cygming_dll_for_implib_fallback ()
-{
-  $opt_debug
-  if func_cygming_gnu_implib_p "$1" ; then
-    # binutils import library
-    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
-  elif func_cygming_ms_implib_p "$1" ; then
-    # ms-generated import library
-    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
-  else
-    # unknown
-    sharedlib_from_linklib_result=""
-  fi
-}
+	    # Create $newlib
+	    if test -f "$output_objdir/$newlib"; then :; else
+	      $show "generating import library for \`$soname'"
+	      save_ifs="$IFS"; IFS='~'
+	      cmds=$old_archive_from_expsyms_cmds
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd" || exit $?
+	      done
+	      IFS="$save_ifs"
+	    fi
+	    # make sure the library variables are pointing to the new library
+	    dir=$output_objdir
+	    linklib=$newlib
+	  fi # test -n "$old_archive_from_expsyms_cmds"
 
+	  if test "$linkmode" = prog || test "$mode" != relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    lib_linked=yes
+	    case $hardcode_action in
+	    immediate | unsupported)
+	      if test "$hardcode_direct" = no; then
+		add="$dir/$linklib"
+		case $host in
+		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+		    *-*-unixware7*) add_dir="-L$dir" ;;
+		  *-*-darwin* )
+		    # if the lib is a module then we can not link against
+		    # it, someone is ignoring the new warnings I added
+		    if /usr/bin/file -L $add 2> /dev/null |
+                      $EGREP ": [^:]* bundle" >/dev/null ; then
+		      $echo "** Warning, lib $linklib is a module, not a shared library"
+		      if test -z "$old_library" ; then
+		        $echo
+		        $echo "** And there doesn't seem to be a static archive available"
+		        $echo "** The link will probably fail, sorry"
+		      else
+		        add="$dir/$old_library"
+		      fi
+		    fi
+		esac
+	      elif test "$hardcode_minus_L" = no; then
+		case $host in
+		*-*-sunos*) add_shlibpath="$dir" ;;
+		esac
+		add_dir="-L$dir"
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = no; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    relink)
+	      if test "$hardcode_direct" = yes; then
+		add="$dir/$linklib"
+	      elif test "$hardcode_minus_L" = yes; then
+		add_dir="-L$dir"
+		# Try looking first in the location we're being installed to.
+		if test -n "$inst_prefix_dir"; then
+		  case $libdir in
+		    [\\/]*)
+		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		      ;;
+		  esac
+		fi
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = yes; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    *) lib_linked=no ;;
+	    esac
 
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
-    $opt_debug
-    f_ex_an_ar_dir="$1"; shift
-    f_ex_an_ar_oldlib="$1"
-    if test "$lock_old_archive_extraction" = yes; then
-      lockfile=$f_ex_an_ar_oldlib.lock
-      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
-	func_echo "Waiting for $lockfile to be removed"
-	sleep 2
-      done
-    fi
-    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
-		   'stat=$?; rm -f "$lockfile"; exit $stat'
-    if test "$lock_old_archive_extraction" = yes; then
-      $opt_dry_run || rm -f "$lockfile"
-    fi
-    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
-     :
-    else
-      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
-    fi
-}
+	    if test "$lib_linked" != yes; then
+	      $echo "$modename: configuration error: unsupported hardcode properties"
+	      exit $EXIT_FAILURE
+	    fi
 
+	    if test -n "$add_shlibpath"; then
+	      case :$compile_shlibpath: in
+	      *":$add_shlibpath:"*) ;;
+	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+	      esac
+	    fi
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	      if test "$hardcode_direct" != yes && \
+		 test "$hardcode_minus_L" != yes && \
+		 test "$hardcode_shlibpath_var" = yes; then
+		case :$finalize_shlibpath: in
+		*":$libdir:"*) ;;
+		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+		esac
+	      fi
+	    fi
+	  fi
 
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
-    $opt_debug
-    my_gentop="$1"; shift
-    my_oldlibs=${1+"$@"}
-    my_oldobjs=""
-    my_xlib=""
-    my_xabs=""
-    my_xdir=""
+	  if test "$linkmode" = prog || test "$mode" = relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    # Finalize command for both is simple: just hardcode it.
+	    if test "$hardcode_direct" = yes; then
+	      add="$libdir/$linklib"
+	    elif test "$hardcode_minus_L" = yes; then
+	      add_dir="-L$libdir"
+	      add="-l$name"
+	    elif test "$hardcode_shlibpath_var" = yes; then
+	      case :$finalize_shlibpath: in
+	      *":$libdir:"*) ;;
+	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+	      esac
+	      add="-l$name"
+	    elif test "$hardcode_automatic" = yes; then
+	      if test -n "$inst_prefix_dir" &&
+		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
+	        add="$inst_prefix_dir$libdir/$linklib"
+	      else
+	        add="$libdir/$linklib"
+	      fi
+	    else
+	      # We cannot seem to hardcode it, guess we'll fake it.
+	      add_dir="-L$libdir"
+	      # Try looking first in the location we're being installed to.
+	      if test -n "$inst_prefix_dir"; then
+		case $libdir in
+		  [\\/]*)
+		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		    ;;
+		esac
+	      fi
+	      add="-l$name"
+	    fi
 
-    for my_xlib in $my_oldlibs; do
-      # Extract the objects.
-      case $my_xlib in
-	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
-	*) my_xabs=`pwd`"/$my_xlib" ;;
-      esac
-      func_basename "$my_xlib"
-      my_xlib="$func_basename_result"
-      my_xlib_u=$my_xlib
-      while :; do
-        case " $extracted_archives " in
-	*" $my_xlib_u "*)
-	  func_arith $extracted_serial + 1
-	  extracted_serial=$func_arith_result
-	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
-	*) break ;;
-	esac
-      done
-      extracted_archives="$extracted_archives $my_xlib_u"
-      my_xdir="$my_gentop/$my_xlib_u"
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	    fi
+	  fi
+	elif test "$linkmode" = prog; then
+	  # Here we assume that one of hardcode_direct or hardcode_minus_L
+	  # is not unsupported.  This is valid on all known static and
+	  # shared platforms.
+	  if test "$hardcode_direct" != unsupported; then
+	    test -n "$old_library" && linklib="$old_library"
+	    compile_deplibs="$dir/$linklib $compile_deplibs"
+	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
+	  else
+	    compile_deplibs="-l$name -L$dir $compile_deplibs"
+	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+	  fi
+	elif test "$build_libtool_libs" = yes; then
+	  # Not a shared library
+	  if test "$deplibs_check_method" != pass_all; then
+	    # We're trying link a shared library against a static one
+	    # but the system doesn't support it.
 
-      func_mkdir_p "$my_xdir"
+	    # Just print a warning and add the library to dependency_libs so
+	    # that the program can be linked against the static library.
+	    $echo
+	    $echo "*** Warning: This system can not link to static lib archive $lib."
+	    $echo "*** I have the capability to make that library automatically link in when"
+	    $echo "*** you link to this library.  But I can only do this if you have a"
+	    $echo "*** shared version of the library, which you do not appear to have."
+	    if test "$module" = yes; then
+	      $echo "*** But as you try to build a module library, libtool will still create "
+	      $echo "*** a static module, that should work as long as the dlopening application"
+	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      if test -z "$global_symbol_pipe"; then
+		$echo
+		$echo "*** However, this would only work if libtool was able to extract symbol"
+		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+		$echo "*** not find such a program.  So, this module is probably useless."
+		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
+	      fi
+	      if test "$build_old_libs" = no; then
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  else
+	    deplibs="$dir/$old_library $deplibs"
+	    link_static=yes
+	  fi
+	fi # link shared/static library?
 
-      case $host in
-      *-darwin*)
-	func_verbose "Extracting $my_xabs"
-	# Do not bother doing anything if just a dry run
-	$opt_dry_run || {
-	  darwin_orig_dir=`pwd`
-	  cd $my_xdir || exit $?
-	  darwin_archive=$my_xabs
-	  darwin_curdir=`pwd`
-	  darwin_base_archive=`basename "$darwin_archive"`
-	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
-	  if test -n "$darwin_arches"; then
-	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
-	    darwin_arch=
-	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
-	    for darwin_arch in  $darwin_arches ; do
-	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
-	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
-	      cd "$darwin_curdir"
-	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
-	    done # $darwin_arches
-            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
-	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
-	    darwin_file=
-	    darwin_files=
-	    for darwin_file in $darwin_filelist; do
-	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
-	      $LIPO -create -output "$darwin_file" $darwin_files
-	    done # $darwin_filelist
-	    $RM -rf unfat-$$
-	    cd "$darwin_orig_dir"
-	  else
-	    cd $darwin_orig_dir
-	    func_extract_an_archive "$my_xdir" "$my_xabs"
-	  fi # $darwin_arches
-	} # !$opt_dry_run
-	;;
-      *)
-        func_extract_an_archive "$my_xdir" "$my_xabs"
-	;;
-      esac
-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
-    done
+	if test "$linkmode" = lib; then
+	  if test -n "$dependency_libs" &&
+	     { test "$hardcode_into_libs" != yes ||
+	       test "$build_old_libs" = yes ||
+	       test "$link_static" = yes; }; then
+	    # Extract -R from dependency_libs
+	    temp_deplibs=
+	    for libdir in $dependency_libs; do
+	      case $libdir in
+	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
+		   case " $xrpath " in
+		   *" $temp_xrpath "*) ;;
+		   *) xrpath="$xrpath $temp_xrpath";;
+		   esac;;
+	      *) temp_deplibs="$temp_deplibs $libdir";;
+	      esac
+	    done
+	    dependency_libs="$temp_deplibs"
+	  fi
 
-    func_extract_archives_result="$my_oldobjs"
-}
+	  newlib_search_path="$newlib_search_path $absdir"
+	  # Link against this library
+	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+	  # ... and its dependency_libs
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    newdependency_libs="$deplib $newdependency_libs"
+	    if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
 
+	  if test "$link_all_deplibs" != no; then
+	    # Add the search paths of all dependency libraries
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      -L*) path="$deplib" ;;
+	      *.la)
+		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
+		test "X$dir" = "X$deplib" && dir="."
+		# We need an absolute path.
+		case $dir in
+		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+		*)
+		  absdir=`cd "$dir" && pwd`
+		  if test -z "$absdir"; then
+		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+		    absdir="$dir"
+		  fi
+		  ;;
+		esac
+		if grep "^installed=no" $deplib > /dev/null; then
+		  path="$absdir/$objdir"
+		else
+		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  if test -z "$libdir"; then
+		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+		    exit $EXIT_FAILURE
+		  fi
+		  if test "$absdir" != "$libdir"; then
+		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+		  fi
+		  path="$absdir"
+		fi
+		depdepl=
+		case $host in
+		*-*-darwin*)
+		  # we do not want to link against static libs,
+		  # but need to link against shared
+		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  if test -n "$deplibrary_names" ; then
+		    for tmp in $deplibrary_names ; do
+		      depdepl=$tmp
+		    done
+		    if test -f "$deplibdir/$depdepl" ; then
+		      depdepl="$deplibdir/$depdepl"
+	      	    elif test -f "$path/$depdepl" ; then
+		      depdepl="$path/$depdepl"
+		    else
+		      # Can't find it, oh well...
+		      depdepl=
+		    fi
+		    # do not add paths which are already there
+		    case " $newlib_search_path " in
+		    *" $path "*) ;;
+		    *) newlib_search_path="$newlib_search_path $path";;
+		    esac
+		  fi
+		  path=""
+		  ;;
+		*)
+		  path="-L$path"
+		  ;;
+		esac
+		;;
+	      -l*)
+		case $host in
+		*-*-darwin*)
+		  # Again, we only want to link against shared libraries
+		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
+		  for tmp in $newlib_search_path ; do
+		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
+		      eval depdepl="$tmp/lib$tmp_libs.dylib"
+		      break
+		    fi
+		  done
+		  path=""
+		  ;;
+		*) continue ;;
+		esac
+		;;
+	      *) continue ;;
+	      esac
+	      case " $deplibs " in
+	      *" $path "*) ;;
+	      *) deplibs="$path $deplibs" ;;
+	      esac
+	      case " $deplibs " in
+	      *" $depdepl "*) ;;
+	      *) deplibs="$depdepl $deplibs" ;;
+	      esac
+	    done
+	  fi # link_all_deplibs != no
+	fi # linkmode = lib
+      done # for deplib in $libs
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
+	# Link the dlpreopened libraries before other libraries
+	for deplib in $save_deplibs; do
+	  deplibs="$deplib $deplibs"
+	done
+      fi
+      if test "$pass" != dlopen; then
+	if test "$pass" != conv; then
+	  # Make sure lib_search_path contains only unique directories.
+	  lib_search_path=
+	  for dir in $newlib_search_path; do
+	    case "$lib_search_path " in
+	    *" $dir "*) ;;
+	    *) lib_search_path="$lib_search_path $dir" ;;
+	    esac
+	  done
+	  newlib_search_path=
+	fi
 
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable.  Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take.  If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory.  This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
-	func_emit_wrapper_arg1=${1-no}
+	if test "$linkmode,$pass" != "prog,link"; then
+	  vars="deplibs"
+	else
+	  vars="compile_deplibs finalize_deplibs"
+	fi
+	for var in $vars dependency_libs; do
+	  # Add libraries to $var in reverse order
+	  eval tmp_libs=\"\$$var\"
+	  new_libs=
+	  for deplib in $tmp_libs; do
+	    # FIXME: Pedantically, this is the right thing to do, so
+	    #        that some nasty dependency loop isn't accidentally
+	    #        broken:
+	    #new_libs="$deplib $new_libs"
+	    # Pragmatically, this seems to cause very few problems in
+	    # practice:
+	    case $deplib in
+	    -L*) new_libs="$deplib $new_libs" ;;
+	    -R*) ;;
+	    *)
+	      # And here is the reason: when a library appears more
+	      # than once as an explicit dependence of a library, or
+	      # is implicitly linked in more than once by the
+	      # compiler, it is considered special, and multiple
+	      # occurrences thereof are not removed.  Compare this
+	      # with having the same library being listed as a
+	      # dependency of multiple other libraries: in this case,
+	      # we know (pedantically, we assume) the library does not
+	      # need to be listed more than once, so we keep only the
+	      # last copy.  This is not always right, but it is rare
+	      # enough that we require users that really mean to play
+	      # such unportable linking tricks to link the library
+	      # using -Wl,-lname, so that libtool does not consider it
+	      # for duplicate removal.
+	      case " $specialdeplibs " in
+	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
+	      *)
+		case " $new_libs " in
+		*" $deplib "*) ;;
+		*) new_libs="$deplib $new_libs" ;;
+		esac
+		;;
+	      esac
+	      ;;
+	    esac
+	  done
+	  tmp_libs=
+	  for deplib in $new_libs; do
+	    case $deplib in
+	    -L*)
+	      case " $tmp_libs " in
+	      *" $deplib "*) ;;
+	      *) tmp_libs="$tmp_libs $deplib" ;;
+	      esac
+	      ;;
+	    *) tmp_libs="$tmp_libs $deplib" ;;
+	    esac
+	  done
+	  eval $var=\"$tmp_libs\"
+	done # for var
+      fi
+      # Last step: remove runtime libs from dependency_libs
+      # (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs ; do
+	case " $predeps $postdeps $compiler_lib_search_path " in
+	*" $i "*)
+	  i=""
+	  ;;
+	esac
+	if test -n "$i" ; then
+	  tmp_libs="$tmp_libs $i"
+	fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test "$linkmode" = prog; then
+      dlfiles="$newdlfiles"
+      dlprefiles="$newdlprefiles"
+    fi
 
-	$ECHO "\
-#! $SHELL
+    case $linkmode in
+    oldlib)
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;;
+      esac
 
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+      fi
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='$sed_quote_subst'
+      if test -n "$rpath"; then
+	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+      fi
 
-# Be Bourne compatible
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
+      if test -n "$xrpath"; then
+	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
+      fi
 
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
+      fi
 
-relink_command=\"$relink_command\"
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+      fi
 
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
-  # install mode needs the following variables:
-  generated_by_libtool_version='$macro_version'
-  notinst_deplibs='$notinst_deplibs'
-else
-  # When we are sourced in execute mode, \$file and \$ECHO are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    file=\"\$0\""
+      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
+      fi
 
-    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
-    $ECHO "\
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs="$output"
+      objs="$objs$old_deplibs"
+      ;;
 
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-    ECHO=\"$qECHO\"
-  fi
-
-# Very basic option parsing. These options are (a) specific to
-# the libtool wrapper, (b) are identical between the wrapper
-# /script/ and the wrapper /executable/ which is used only on
-# windows platforms, and (c) all begin with the string "--lt-"
-# (application programs are unlikely to have options which match
-# this pattern).
-#
-# There are only two supported options: --lt-debug and
-# --lt-dump-script. There is, deliberately, no --lt-help.
-#
-# The first argument to this parsing function should be the
-# script's $0 value, followed by "$@".
-lt_option_debug=
-func_parse_lt_options ()
-{
-  lt_script_arg0=\$0
-  shift
-  for lt_opt
-  do
-    case \"\$lt_opt\" in
-    --lt-debug) lt_option_debug=1 ;;
-    --lt-dump-script)
-        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
-        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
-        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
-        cat \"\$lt_dump_D/\$lt_dump_F\"
-        exit 0
-      ;;
-    --lt-*)
-        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
-        exit 1
-      ;;
-    esac
-  done
-
-  # Print the debug banner immediately:
-  if test -n \"\$lt_option_debug\"; then
-    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
-  fi
-}
+    lib)
+      # Make sure we only generate libraries of the form `libNAME.la'.
+      case $outputname in
+      lib*)
+	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+	eval shared_ext=\"$shrext_cmds\"
+	eval libname=\"$libname_spec\"
+	;;
+      *)
+	if test "$module" = no; then
+	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+	if test "$need_lib_prefix" != no; then
+	  # Add the "lib" prefix for modules if required
+	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+	  eval shared_ext=\"$shrext_cmds\"
+	  eval libname=\"$libname_spec\"
+	else
+	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+	fi
+	;;
+      esac
 
-# Used when --lt-debug. Prints its arguments to stdout
-# (redirection is the responsibility of the caller)
-func_lt_dump_args ()
-{
-  lt_dump_args_N=1;
-  for lt_arg
-  do
-    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
-    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
-  done
-}
+      if test -n "$objs"; then
+	if test "$deplibs_check_method" != pass_all; then
+	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
+	  exit $EXIT_FAILURE
+	else
+	  $echo
+	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
+	  $echo "*** objects $objs is not portable!"
+	  libobjs="$libobjs $objs"
+	fi
+      fi
 
-# Core function for launching the target application
-func_exec_program_core ()
-{
-"
-  case $host in
-  # Backslashes separate directories on plain windows
-  *-*-mingw | *-*-os2* | *-cegcc*)
-    $ECHO "\
-      if test -n \"\$lt_option_debug\"; then
-        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
-        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      if test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
       fi
-      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
-    ;;
 
-  *)
-    $ECHO "\
-      if test -n \"\$lt_option_debug\"; then
-        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
-        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      set dummy $rpath
+      if test "$#" -gt 2; then
+	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
       fi
-      exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
-    ;;
-  esac
-  $ECHO "\
-      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
-      exit 1
-}
+      install_libdir="$2"
 
-# A function to encapsulate launching the target application
-# Strips options in the --lt-* namespace from \$@ and
-# launches target application with the remaining arguments.
-func_exec_program ()
-{
-  for lt_wr_arg
-  do
-    case \$lt_wr_arg in
-    --lt-*) ;;
-    *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
-    esac
-    shift
-  done
-  func_exec_program_core \${1+\"\$@\"}
-}
+      oldlibs=
+      if test -z "$rpath"; then
+	if test "$build_libtool_libs" = yes; then
+	  # Building a libtool convenience library.
+	  # Some compilers have problems with a `.al' extension so
+	  # convenience libraries should have the same extension an
+	  # archive normally would.
+	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
+	  build_libtool_libs=convenience
+	  build_old_libs=yes
+	fi
 
-  # Parse options
-  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
+	if test -n "$vinfo"; then
+	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
+	fi
 
-  # Find the directory that this script lives in.
-  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+	if test -n "$release"; then
+	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+	fi
+      else
 
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
+	# Parse the version information argument.
+	save_ifs="$IFS"; IFS=':'
+	set dummy $vinfo 0 0 0
+	IFS="$save_ifs"
 
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
-      esac
-    fi
+	if test -n "$8"; then
+	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
 
-    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
-  done
+	# convert absolute version numbers to libtool ages
+	# this retains compatibility with .la files and attempts
+	# to make the code below a bit more comprehensible
 
-  # Usually 'no', except on cygwin/mingw when embedded into
-  # the cwrapper.
-  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
-  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
-    # special case for '.'
-    if test \"\$thisdir\" = \".\"; then
-      thisdir=\`pwd\`
-    fi
-    # remove .libs from thisdir
-    case \"\$thisdir\" in
-    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
-    $objdir )   thisdir=. ;;
-    esac
-  fi
+	case $vinfo_number in
+	yes)
+	  number_major="$2"
+	  number_minor="$3"
+	  number_revision="$4"
+	  #
+	  # There are really only two kinds -- those that
+	  # use the current revision as the major version
+	  # and those that subtract age and use age as
+	  # a minor version.  But, then there is irix
+	  # which has an extra 1 added just for fun
+	  #
+	  case $version_type in
+	  darwin|linux|osf|windows|none)
+	    current=`expr $number_major + $number_minor`
+	    age="$number_minor"
+	    revision="$number_revision"
+	    ;;
+	  freebsd-aout|freebsd-elf|sunos)
+	    current="$number_major"
+	    revision="$number_minor"
+	    age="0"
+	    ;;
+	  irix|nonstopux)
+	    current=`expr $number_major + $number_minor`
+	    age="$number_minor"
+	    revision="$number_minor"
+	    lt_irix_increment=no
+	    ;;
+	  esac
+	  ;;
+	no)
+	  current="$2"
+	  revision="$3"
+	  age="$4"
+	  ;;
+	esac
 
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
+	# Check that each of the things are valid numbers.
+	case $current in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
 
-	if test "$fast_install" = yes; then
-	  $ECHO "\
-  program=lt-'$outputname'$exeext
-  progdir=\"\$thisdir/$objdir\"
+	case $revision in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
 
-  if test ! -f \"\$progdir/\$program\" ||
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
-       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+	case $age in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
 
-    file=\"\$\$-\$program\"
+	if test "$age" -gt "$current"; then
+	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	fi
 
-    if test ! -d \"\$progdir\"; then
-      $MKDIR \"\$progdir\"
-    else
-      $RM \"\$progdir/\$file\"
-    fi"
+	# Calculate the version variables.
+	major=
+	versuffix=
+	verstring=
+	case $version_type in
+	none) ;;
 
-	  $ECHO "\
+	darwin)
+	  # Like Linux, but with the current version available in
+	  # verstring for coding it into the library header
+	  major=.`expr $current - $age`
+	  versuffix="$major.$age.$revision"
+	  # Darwin ld doesn't like 0 for these options...
+	  minor_current=`expr $current + 1`
+	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+	  ;;
 
-    # relink executable if necessary
-    if test -n \"\$relink_command\"; then
-      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
-      else
-	$ECHO \"\$relink_command_output\" >&2
-	$RM \"\$progdir/\$file\"
-	exit 1
-      fi
-    fi
+	freebsd-aout)
+	  major=".$current"
+	  versuffix=".$current.$revision";
+	  ;;
 
-    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
-    { $RM \"\$progdir/\$program\";
-      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
-    $RM \"\$progdir/\$file\"
-  fi"
-	else
-	  $ECHO "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
-	fi
+	freebsd-elf)
+	  major=".$current"
+	  versuffix=".$current";
+	  ;;
 
-	$ECHO "\
+	irix | nonstopux)
+	  if test "X$lt_irix_increment" = "Xno"; then
+	    major=`expr $current - $age`
+	  else
+	    major=`expr $current - $age + 1`
+	  fi
+	  case $version_type in
+	    nonstopux) verstring_prefix=nonstopux ;;
+	    *)         verstring_prefix=sgi ;;
+	  esac
+	  verstring="$verstring_prefix$major.$revision"
 
-  if test -f \"\$progdir/\$program\"; then"
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$revision
+	  while test "$loop" -ne 0; do
+	    iface=`expr $revision - $loop`
+	    loop=`expr $loop - 1`
+	    verstring="$verstring_prefix$major.$iface:$verstring"
+	  done
 
-	# fixup the dll searchpath if we need to.
-	#
-	# Fix the DLL searchpath if we need to.  Do this before prepending
-	# to shlibpath, because on Windows, both are PATH and uninstalled
-	# libraries must come first.
-	if test -n "$dllsearchpath"; then
-	  $ECHO "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-	fi
+	  # Before this point, $major must not contain `.'.
+	  major=.$major
+	  versuffix="$major.$revision"
+	  ;;
 
-	# Export our shlibpath_var if we have one.
-	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-	  $ECHO "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+	linux)
+	  major=.`expr $current - $age`
+	  versuffix="$major.$age.$revision"
+	  ;;
 
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
+	osf)
+	  major=.`expr $current - $age`
+	  versuffix=".$current.$age.$revision"
+	  verstring="$current.$age.$revision"
 
-    export $shlibpath_var
-"
-	fi
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$age
+	  while test "$loop" -ne 0; do
+	    iface=`expr $current - $loop`
+	    loop=`expr $loop - 1`
+	    verstring="$verstring:${iface}.0"
+	  done
 
-	$ECHO "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-      func_exec_program \${1+\"\$@\"}
-    fi
-  else
-    # The program doesn't exist.
-    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
-    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
-    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit 1
-  fi
-fi\
-"
-}
+	  # Make executables depend on our current version.
+	  verstring="$verstring:${current}.0"
+	  ;;
 
+	sunos)
+	  major=".$current"
+	  versuffix=".$current.$revision"
+	  ;;
 
-# func_emit_cwrapperexe_src
-# emit the source code for a wrapper executable on stdout
-# Must ONLY be called from within func_mode_link because
-# it depends on a number of variable set therein.
-func_emit_cwrapperexe_src ()
-{
-	cat <<EOF
+	windows)
+	  # Use '-' rather than '.', since we only want one
+	  # extension on DOS 8.3 filesystems.
+	  major=`expr $current - $age`
+	  versuffix="-$major"
+	  ;;
 
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+	*)
+	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
+	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
 
-   The $output program cannot be directly executed until all the libtool
-   libraries that it depends on are installed.
-
-   This wrapper executable should never be moved out of the build directory.
-   If it is, it will not operate correctly.
-*/
-EOF
-	    cat <<"EOF"
-#ifdef _MSC_VER
-# define _CRT_SECURE_NO_DEPRECATE 1
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef _MSC_VER
-# include <direct.h>
-# include <process.h>
-# include <io.h>
-#else
-# include <unistd.h>
-# include <stdint.h>
-# ifdef __CYGWIN__
-#  include <io.h>
-# endif
-#endif
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-/* declarations of non-ANSI functions */
-#if defined(__MINGW32__)
-# ifdef __STRICT_ANSI__
-int _putenv (const char *);
-# endif
-#elif defined(__CYGWIN__)
-# ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-# endif
-/* #elif defined (other platforms) ... */
-#endif
-
-/* portability defines, excluding path handling macros */
-#if defined(_MSC_VER)
-# define setmode _setmode
-# define stat    _stat
-# define chmod   _chmod
-# define getcwd  _getcwd
-# define putenv  _putenv
-# define S_IXUSR _S_IEXEC
-# ifndef _INTPTR_T_DEFINED
-#  define _INTPTR_T_DEFINED
-#  define intptr_t int
-# endif
-#elif defined(__MINGW32__)
-# define setmode _setmode
-# define stat    _stat
-# define chmod   _chmod
-# define getcwd  _getcwd
-# define putenv  _putenv
-#elif defined(__CYGWIN__)
-# define HAVE_SETENV
-# define FOPEN_WB "wb"
-/* #elif defined (other platforms) ... */
-#endif
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef S_IXOTH
-# define S_IXOTH 0
-#endif
-#ifndef S_IXGRP
-# define S_IXGRP 0
-#endif
-
-/* path handling portability macros */
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# define FOPEN_WB "wb"
-# ifndef DIR_SEPARATOR_2
-#  define DIR_SEPARATOR_2 '\\'
-# endif
-# ifndef PATH_SEPARATOR_2
-#  define PATH_SEPARATOR_2 ';'
-# endif
-#endif
+	# Clear the version info if we defaulted, and they specified a release.
+	if test -z "$vinfo" && test -n "$release"; then
+	  major=
+	  case $version_type in
+	  darwin)
+	    # we can't check for "0.0" in archive_cmds due to quoting
+	    # problems, so we reset it completely
+	    verstring=
+	    ;;
+	  *)
+	    verstring="0.0"
+	    ;;
+	  esac
+	  if test "$need_version" = no; then
+	    versuffix=
+	  else
+	    versuffix=".0.0"
+	  fi
+	fi
 
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
-	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
+	# Remove version info from name if versioning should be avoided
+	if test "$avoid_version" = yes && test "$need_version" = no; then
+	  major=
+	  versuffix=
+	  verstring=""
+	fi
 
-#ifndef PATH_SEPARATOR_2
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-#else /* PATH_SEPARATOR_2 */
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-#endif /* PATH_SEPARATOR_2 */
+	# Check to see if the archive will have undefined symbols.
+	if test "$allow_undefined" = yes; then
+	  if test "$allow_undefined_flag" = unsupported; then
+	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+	    build_libtool_libs=no
+	    build_old_libs=yes
+	  fi
+	else
+	  # Don't allow undefined symbols.
+	  allow_undefined_flag="$no_undefined_flag"
+	fi
+      fi
 
-#ifndef FOPEN_WB
-# define FOPEN_WB "w"
-#endif
-#ifndef _O_BINARY
-# define _O_BINARY 0
-#endif
+      if test "$mode" != relink; then
+	# Remove our outputs, but don't remove object files since they
+	# may have been created when compiling PIC objects.
+	removelist=
+	tempremovelist=`$echo "$output_objdir/*"`
+	for p in $tempremovelist; do
+	  case $p in
+	    *.$objext)
+	       ;;
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+	       if test "X$precious_files_regex" != "X"; then
+	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+	         then
+		   continue
+		 fi
+	       fi
+	       removelist="$removelist $p"
+	       ;;
+	    *) ;;
+	  esac
+	done
+	if test -n "$removelist"; then
+	  $show "${rm}r $removelist"
+	  $run ${rm}r $removelist
+	fi
+      fi
 
-#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
+      # Now set the variables for building old libraries.
+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+	oldlibs="$oldlibs $output_objdir/$libname.$libext"
 
-#if defined(LT_DEBUGWRAPPER)
-static int lt_debug = 1;
-#else
-static int lt_debug = 0;
-#endif
+	# Transform .lo files to .o files.
+	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+      fi
 
-const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
-
-void *xmalloc (size_t num);
-char *xstrdup (const char *string);
-const char *base_name (const char *name);
-char *find_executable (const char *wrapper);
-char *chase_symlinks (const char *pathspec);
-int make_executable (const char *path);
-int check_executable (const char *path);
-char *strendzap (char *str, const char *pat);
-void lt_debugprintf (const char *file, int line, const char *fmt, ...);
-void lt_fatal (const char *file, int line, const char *message, ...);
-static const char *nonnull (const char *s);
-static const char *nonempty (const char *s);
-void lt_setenv (const char *name, const char *value);
-char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_update_exe_path (const char *name, const char *value);
-void lt_update_lib_path (const char *name, const char *value);
-char **prepare_spawn (char **argv);
-void lt_dump_script (FILE *f);
-EOF
+      # Eliminate all temporary directories.
+      #for path in $notinst_path; do
+      #	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
+      #	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
+      #	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
+      #done
 
-	    cat <<EOF
-volatile const char * MAGIC_EXE = "$magic_exe";
-const char * LIB_PATH_VARNAME = "$shlibpath_var";
-EOF
+      if test -n "$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	temp_xrpath=
+	for libdir in $xrpath; do
+	  temp_xrpath="$temp_xrpath -R$libdir"
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+	  dependency_libs="$temp_xrpath $dependency_libs"
+	fi
+      fi
 
-	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-              func_to_host_path "$temp_rpath"
-	      cat <<EOF
-const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
-EOF
-	    else
-	      cat <<"EOF"
-const char * LIB_PATH_VALUE   = "";
-EOF
-	    fi
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles="$dlfiles"
+      dlfiles=
+      for lib in $old_dlfiles; do
+	case " $dlprefiles $dlfiles " in
+	*" $lib "*) ;;
+	*) dlfiles="$dlfiles $lib" ;;
+	esac
+      done
 
-	    if test -n "$dllsearchpath"; then
-              func_to_host_path "$dllsearchpath:"
-	      cat <<EOF
-const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
-EOF
-	    else
-	      cat <<"EOF"
-const char * EXE_PATH_VARNAME = "";
-const char * EXE_PATH_VALUE   = "";
-EOF
-	    fi
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles="$dlprefiles"
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+	case "$dlprefiles " in
+	*" $lib "*) ;;
+	*) dlprefiles="$dlprefiles $lib" ;;
+	esac
+      done
 
-	    if test "$fast_install" = yes; then
-	      cat <<EOF
-const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
-EOF
-	    else
-	      cat <<EOF
-const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
-EOF
+      if test "$build_libtool_libs" = yes; then
+	if test -n "$rpath"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+	    # these systems don't actually have a c library (as such)!
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C library is in the System framework
+	    deplibs="$deplibs -framework System"
+	    ;;
+	  *-*-netbsd*)
+	    # Don't link with libc until the a.out ld.so is fixed.
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    ;;
+ 	  *)
+	    # Add libc to deplibs on all other systems if necessary.
+	    if test "$build_libtool_need_lc" = "yes"; then
+	      deplibs="$deplibs -lc"
 	    fi
-
-
-	    cat <<"EOF"
-
-#define LTWRAPPER_OPTION_PREFIX         "--lt-"
-
-static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
-static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
-
-int
-main (int argc, char *argv[])
-{
-  char **newargz;
-  int  newargc;
-  char *tmp_pathspec;
-  char *actual_cwrapper_path;
-  char *actual_cwrapper_name;
-  char *target_name;
-  char *lt_argv_zero;
-  intptr_t rval = 127;
-
-  int i;
-
-  program_name = (char *) xstrdup (base_name (argv[0]));
-  newargz = XMALLOC (char *, argc + 1);
-
-  /* very simple arg parsing; don't want to rely on getopt
-   * also, copy all non cwrapper options to newargz, except
-   * argz[0], which is handled differently
-   */
-  newargc=0;
-  for (i = 1; i < argc; i++)
-    {
-      if (strcmp (argv[i], dumpscript_opt) == 0)
-	{
-EOF
-	    case "$host" in
-	      *mingw* | *cygwin* )
-		# make stdout use "unix" line endings
-		echo "          setmode(1,_O_BINARY);"
-		;;
-	      esac
-
-	    cat <<"EOF"
-	  lt_dump_script (stdout);
-	  return 0;
-	}
-      if (strcmp (argv[i], debug_opt) == 0)
-	{
-          lt_debug = 1;
-          continue;
-	}
-      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
-        {
-          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
-             namespace, but it is not one of the ones we know about and
-             have already dealt with, above (inluding dump-script), then
-             report an error. Otherwise, targets might begin to believe
-             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
-             namespace. The first time any user complains about this, we'll
-             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
-             or a configure.ac-settable value.
-           */
-          lt_fatal (__FILE__, __LINE__,
-		    "unrecognized %s option: '%s'",
-                    ltwrapper_option_prefix, argv[i]);
-        }
-      /* otherwise ... */
-      newargz[++newargc] = xstrdup (argv[i]);
-    }
-  newargz[++newargc] = NULL;
-
-EOF
-	    cat <<EOF
-  /* The GNU banner must be the first non-error debug message */
-  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
-EOF
-	    cat <<"EOF"
-  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
-  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
-
-  tmp_pathspec = find_executable (argv[0]);
-  if (tmp_pathspec == NULL)
-    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
-  lt_debugprintf (__FILE__, __LINE__,
-                  "(main) found exe (before symlink chase) at: %s\n",
-		  tmp_pathspec);
-
-  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
-  lt_debugprintf (__FILE__, __LINE__,
-                  "(main) found exe (after symlink chase) at: %s\n",
-		  actual_cwrapper_path);
-  XFREE (tmp_pathspec);
-
-  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
-  strendzap (actual_cwrapper_path, actual_cwrapper_name);
-
-  /* wrapper name transforms */
-  strendzap (actual_cwrapper_name, ".exe");
-  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
-  XFREE (actual_cwrapper_name);
-  actual_cwrapper_name = tmp_pathspec;
-  tmp_pathspec = 0;
-
-  /* target_name transforms -- use actual target program name; might have lt- prefix */
-  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
-  strendzap (target_name, ".exe");
-  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
-  XFREE (target_name);
-  target_name = tmp_pathspec;
-  tmp_pathspec = 0;
-
-  lt_debugprintf (__FILE__, __LINE__,
-		  "(main) libtool target name: %s\n",
-		  target_name);
-EOF
-
-	    cat <<EOF
-  newargz[0] =
-    XMALLOC (char, (strlen (actual_cwrapper_path) +
-		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
-  strcpy (newargz[0], actual_cwrapper_path);
-  strcat (newargz[0], "$objdir");
-  strcat (newargz[0], "/");
-EOF
-
-	    cat <<"EOF"
-  /* stop here, and copy so we don't have to do this twice */
-  tmp_pathspec = xstrdup (newargz[0]);
-
-  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
-  strcat (newargz[0], actual_cwrapper_name);
-
-  /* DO want the lt- prefix here if it exists, so use target_name */
-  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
-  XFREE (tmp_pathspec);
-  tmp_pathspec = NULL;
-EOF
-
-	    case $host_os in
-	      mingw*)
-	    cat <<"EOF"
-  {
-    char* p;
-    while ((p = strchr (newargz[0], '\\')) != NULL)
-      {
-	*p = '/';
-      }
-    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
-      {
-	*p = '/';
-      }
-  }
-EOF
 	    ;;
-	    esac
-
-	    cat <<"EOF"
-  XFREE (target_name);
-  XFREE (actual_cwrapper_path);
-  XFREE (actual_cwrapper_name);
-
-  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
-  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
-  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
-     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
-     because on Windows, both *_VARNAMEs are PATH but uninstalled
-     libraries must come first. */
-  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
-  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
-
-  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
-		  nonnull (lt_argv_zero));
-  for (i = 0; i < newargc; i++)
-    {
-      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
-		      i, nonnull (newargz[i]));
-    }
-
-EOF
-
-	    case $host_os in
-	      mingw*)
-		cat <<"EOF"
-  /* execv doesn't actually work on mingw as expected on unix */
-  newargz = prepare_spawn (newargz);
-  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
-  if (rval == -1)
-    {
-      /* failed to start process */
-      lt_debugprintf (__FILE__, __LINE__,
-		      "(main) failed to launch target \"%s\": %s\n",
-		      lt_argv_zero, nonnull (strerror (errno)));
-      return 127;
-    }
-  return rval;
-EOF
-		;;
-	      *)
-		cat <<"EOF"
-  execv (lt_argv_zero, newargz);
-  return rval; /* =127, but avoids unused variable warning */
-EOF
-		;;
-	    esac
-
-	    cat <<"EOF"
-}
+	  esac
+	fi
 
-void *
-xmalloc (size_t num)
-{
-  void *p = (void *) malloc (num);
-  if (!p)
-    lt_fatal (__FILE__, __LINE__, "memory exhausted");
+	# Transform deplibs into only deplibs that can be linked in shared.
+	name_save=$name
+	libname_save=$libname
+	release_save=$release
+	versuffix_save=$versuffix
+	major_save=$major
+	# I'm not sure if I'm treating the release correctly.  I think
+	# release should show up in the -l (ie -lgmp5) so we don't want to
+	# add it in twice.  Is that correct?
+	release=""
+	versuffix=""
+	major=""
+	newdeplibs=
+	droppeddeps=no
+	case $deplibs_check_method in
+	pass_all)
+	  # Don't check for shared/static.  Everything works.
+	  # This might be a little naive.  We might want to check
+	  # whether the library exists or not.  But this is on
+	  # osf3 & osf4 and I'm not really sure... Just
+	  # implementing what was already the behavior.
+	  newdeplibs=$deplibs
+	  ;;
+	test_compile)
+	  # This code stresses the "libraries are programs" paradigm to its
+	  # limits. Maybe even breaks it.  We compile a program, linking it
+	  # against the deplibs as a proxy for the library.  Then we can check
+	  # whether they linked in statically or dynamically with ldd.
+	  $rm conftest.c
+	  cat > conftest.c <<EOF
+	  int main() { return 0; }
+EOF
+	  $rm conftest
+	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+	    ldd_output=`ldd conftest`
+	    for i in $deplibs; do
+	      name=`expr $i : '-l\(.*\)'`
+	      # If $name is empty we are operating on a -L argument.
+              if test "$name" != "" && test "$name" != "0"; then
+		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		  case " $predeps $postdeps " in
+		  *" $i "*)
+		    newdeplibs="$newdeplibs $i"
+		    i=""
+		    ;;
+		  esac
+	        fi
+		if test -n "$i" ; then
+		  libname=`eval \\$echo \"$libname_spec\"`
+		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
+		  set dummy $deplib_matches
+		  deplib_match=$2
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		    newdeplibs="$newdeplibs $i"
+		  else
+		    droppeddeps=yes
+		    $echo
+		    $echo "*** Warning: dynamic linker does not accept needed library $i."
+		    $echo "*** I have the capability to make that library automatically link in when"
+		    $echo "*** you link to this library.  But I can only do this if you have a"
+		    $echo "*** shared version of the library, which I believe you do not have"
+		    $echo "*** because a test_compile did reveal that the linker did not use it for"
+		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
+		  fi
+		fi
+	      else
+		newdeplibs="$newdeplibs $i"
+	      fi
+	    done
+	  else
+	    # Error occurred in the first compile.  Let's try to salvage
+	    # the situation: Compile a separate program for each library.
+	    for i in $deplibs; do
+	      name=`expr $i : '-l\(.*\)'`
+	      # If $name is empty we are operating on a -L argument.
+              if test "$name" != "" && test "$name" != "0"; then
+		$rm conftest
+		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+		  ldd_output=`ldd conftest`
+		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		    case " $predeps $postdeps " in
+		    *" $i "*)
+		      newdeplibs="$newdeplibs $i"
+		      i=""
+		      ;;
+		    esac
+		  fi
+		  if test -n "$i" ; then
+		    libname=`eval \\$echo \"$libname_spec\"`
+		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
+		    set dummy $deplib_matches
+		    deplib_match=$2
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		      newdeplibs="$newdeplibs $i"
+		    else
+		      droppeddeps=yes
+		      $echo
+		      $echo "*** Warning: dynamic linker does not accept needed library $i."
+		      $echo "*** I have the capability to make that library automatically link in when"
+		      $echo "*** you link to this library.  But I can only do this if you have a"
+		      $echo "*** shared version of the library, which you do not appear to have"
+		      $echo "*** because a test_compile did reveal that the linker did not use this one"
+		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+		    fi
+		  fi
+		else
+		  droppeddeps=yes
+		  $echo
+		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
+		  $echo "*** make it link in!  You will probably need to install it or some"
+		  $echo "*** library that it depends on before this library will be fully"
+		  $echo "*** functional.  Installing it before continuing would be even better."
+		fi
+	      else
+		newdeplibs="$newdeplibs $i"
+	      fi
+	    done
+	  fi
+	  ;;
+	file_magic*)
+	  set dummy $deplibs_check_method
+	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    name=`expr $a_deplib : '-l\(.*\)'`
+	    # If $name is empty we are operating on a -L argument.
+            if test "$name" != "" && test  "$name" != "0"; then
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval \\$echo \"$libname_spec\"`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		      # Follow soft links.
+		      if ls -lLd "$potent_lib" 2>/dev/null \
+			 | grep " -> " >/dev/null; then
+			continue
+		      fi
+		      # The statement above tries to avoid entering an
+		      # endless loop below, in case of cyclic links.
+		      # We might still enter an endless loop, since a link
+		      # loop can be closed while we follow links,
+		      # but so what?
+		      potlib="$potent_lib"
+		      while test -h "$potlib" 2>/dev/null; do
+			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+			case $potliblink in
+			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+			esac
+		      done
+		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+			 | ${SED} 10q \
+			 | $EGREP "$file_magic_regex" > /dev/null; then
+			newdeplibs="$newdeplibs $a_deplib"
+			a_deplib=""
+			break 2
+		      fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$echo
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
+		$echo "*** I have the capability to make that library automatically link in when"
+		$echo "*** you link to this library.  But I can only do this if you have a"
+		$echo "*** shared version of the library, which you do not appear to have"
+		$echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
+		else
+		  $echo "*** with $libname and none of the candidates passed a file format test"
+		  $echo "*** using a file magic. Last file checked: $potlib"
+		fi
+	      fi
+	    else
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	    fi
+	  done # Gone through all deplibs.
+	  ;;
+	match_pattern*)
+	  set dummy $deplibs_check_method
+	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    name=`expr $a_deplib : '-l\(.*\)'`
+	    # If $name is empty we are operating on a -L argument.
+	    if test -n "$name" && test "$name" != "0"; then
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval \\$echo \"$libname_spec\"`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		    potlib="$potent_lib" # see symlink-check above in file_magic test
+		    if eval $echo \"$potent_lib\" 2>/dev/null \
+		        | ${SED} 10q \
+		        | $EGREP "$match_pattern_regex" > /dev/null; then
+		      newdeplibs="$newdeplibs $a_deplib"
+		      a_deplib=""
+		      break 2
+		    fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$echo
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
+		$echo "*** I have the capability to make that library automatically link in when"
+		$echo "*** you link to this library.  But I can only do this if you have a"
+		$echo "*** shared version of the library, which you do not appear to have"
+		$echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
+		else
+		  $echo "*** with $libname and none of the candidates passed a file format test"
+		  $echo "*** using a regex pattern. Last file checked: $potlib"
+		fi
+	      fi
+	    else
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	    fi
+	  done # Gone through all deplibs.
+	  ;;
+	none | unknown | *)
+	  newdeplibs=""
+	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+	    -e 's/ -[LR][^ ]*//g'`
+	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	    for i in $predeps $postdeps ; do
+	      # can't use Xsed below, because $i might contain '/'
+	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
+	    done
+	  fi
+	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
+	    | grep . >/dev/null; then
+	    $echo
+	    if test "X$deplibs_check_method" = "Xnone"; then
+	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
+	    else
+	      $echo "*** Warning: inter-library dependencies are not known to be supported."
+	    fi
+	    $echo "*** All declared inter-library dependencies are being dropped."
+	    droppeddeps=yes
+	  fi
+	  ;;
+	esac
+	versuffix=$versuffix_save
+	major=$major_save
+	release=$release_save
+	libname=$libname_save
+	name=$name_save
 
-  return p;
-}
+	case $host in
+	*-*-rhapsody* | *-*-darwin1.[012])
+	  # On Rhapsody replace the C library is the System framework
+	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	  ;;
+	esac
 
-char *
-xstrdup (const char *string)
-{
-  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
-			  string) : NULL;
-}
+	if test "$droppeddeps" = yes; then
+	  if test "$module" = yes; then
+	    $echo
+	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
+	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
+	    $echo "*** a static module, that should work as long as the dlopening"
+	    $echo "*** application is linked with the -dlopen flag."
+	    if test -z "$global_symbol_pipe"; then
+	      $echo
+	      $echo "*** However, this would only work if libtool was able to extract symbol"
+	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+	      $echo "*** not find such a program.  So, this module is probably useless."
+	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+	    fi
+	    if test "$build_old_libs" = no; then
+	      oldlibs="$output_objdir/$libname.$libext"
+	      build_libtool_libs=module
+	      build_old_libs=yes
+	    else
+	      build_libtool_libs=no
+	    fi
+	  else
+	    $echo "*** The inter-library dependencies that have been dropped here will be"
+	    $echo "*** automatically added whenever a program is linked with this library"
+	    $echo "*** or is declared to -dlopen it."
 
-const char *
-base_name (const char *name)
-{
-  const char *base;
+	    if test "$allow_undefined" = no; then
+	      $echo
+	      $echo "*** Since this library must not contain undefined symbols,"
+	      $echo "*** because either the platform does not support them or"
+	      $echo "*** it was explicitly requested with -no-undefined,"
+	      $echo "*** libtool will only create a static version of it."
+	      if test "$build_old_libs" = no; then
+		oldlibs="$output_objdir/$libname.$libext"
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  fi
+	fi
+	# Done checking deplibs!
+	deplibs=$newdeplibs
+      fi
 
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
-    name += 2;
-#endif
 
-  for (base = name; *name; name++)
-    if (IS_DIR_SEPARATOR (*name))
-      base = name + 1;
-  return base;
-}
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
+	  ;;
+	*) new_libs="$new_libs $deplib" ;;
+	esac
+      done
+      deplibs="$new_libs"
 
-int
-check_executable (const char *path)
-{
-  struct stat st;
 
-  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
-                  nonempty (path));
-  if ((!path) || (!*path))
-    return 0;
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
 
-  if ((stat (path, &st) >= 0)
-      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
-    return 1;
-  else
-    return 0;
-}
-
-int
-make_executable (const char *path)
-{
-  int rval = 0;
-  struct stat st;
-
-  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
-                  nonempty (path));
-  if ((!path) || (!*path))
-    return 0;
+      # Test again, we may have decided not to build it any more
+      if test "$build_libtool_libs" = yes; then
+	if test "$hardcode_into_libs" = yes; then
+	  # Hardcode the library paths
+	  hardcode_libdirs=
+	  dep_rpath=
+	  rpath="$finalize_rpath"
+	  test "$mode" != relink && rpath="$compile_rpath$rpath"
+	  for libdir in $rpath; do
+	    if test -n "$hardcode_libdir_flag_spec"; then
+	      if test -n "$hardcode_libdir_separator"; then
+		if test -z "$hardcode_libdirs"; then
+		  hardcode_libdirs="$libdir"
+		else
+		  # Just accumulate the unique libdirs.
+		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		    ;;
+		  *)
+		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		    ;;
+		  esac
+		fi
+	      else
+		eval flag=\"$hardcode_libdir_flag_spec\"
+		dep_rpath="$dep_rpath $flag"
+	      fi
+	    elif test -n "$runpath_var"; then
+	      case "$perm_rpath " in
+	      *" $libdir "*) ;;
+	      *) perm_rpath="$perm_rpath $libdir" ;;
+	      esac
+	    fi
+	  done
+	  # Substitute the hardcoded libdirs into the rpath.
+	  if test -n "$hardcode_libdir_separator" &&
+	     test -n "$hardcode_libdirs"; then
+	    libdir="$hardcode_libdirs"
+	    if test -n "$hardcode_libdir_flag_spec_ld"; then
+	      case $archive_cmds in
+	      *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
+	      *)      eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
+	      esac
+	    else
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+	    fi
+	  fi
+	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
+	    # We should set the runpath_var.
+	    rpath=
+	    for dir in $perm_rpath; do
+	      rpath="$rpath$dir:"
+	    done
+	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+	  fi
+	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+	fi
 
-  if (stat (path, &st) >= 0)
-    {
-      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
-    }
-  return rval;
-}
+	shlibpath="$finalize_shlibpath"
+	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+	if test -n "$shlibpath"; then
+	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+	fi
 
-/* Searches for the full path of the wrapper.  Returns
-   newly allocated full path name if found, NULL otherwise
-   Does not chase symlinks, even on platforms that support them.
-*/
-char *
-find_executable (const char *wrapper)
-{
-  int has_slash = 0;
-  const char *p;
-  const char *p_next;
-  /* static buffer for getcwd */
-  char tmp[LT_PATHMAX + 1];
-  int tmp_len;
-  char *concat_name;
+	# Get the real and link names of the library.
+	eval shared_ext=\"$shrext_cmds\"
+	eval library_names=\"$library_names_spec\"
+	set dummy $library_names
+	realname="$2"
+	shift; shift
 
-  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
-                  nonempty (wrapper));
+	if test -n "$soname_spec"; then
+	  eval soname=\"$soname_spec\"
+	else
+	  soname="$realname"
+	fi
+	if test -z "$dlname"; then
+	  dlname=$soname
+	fi
 
-  if ((wrapper == NULL) || (*wrapper == '\0'))
-    return NULL;
+	lib="$output_objdir/$realname"
+	linknames=
+	for link
+	do
+	  linknames="$linknames $link"
+	done
 
-  /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
-    {
-      concat_name = xstrdup (wrapper);
-      if (check_executable (concat_name))
-	return concat_name;
-      XFREE (concat_name);
-    }
-  else
-    {
-#endif
-      if (IS_DIR_SEPARATOR (wrapper[0]))
-	{
-	  concat_name = xstrdup (wrapper);
-	  if (check_executable (concat_name))
-	    return concat_name;
-	  XFREE (concat_name);
-	}
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-    }
-#endif
+	# Use standard objects if they are pic
+	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
-  for (p = wrapper; *p; p++)
-    if (*p == '/')
-      {
-	has_slash = 1;
-	break;
-      }
-  if (!has_slash)
-    {
-      /* no slashes; search PATH */
-      const char *path = getenv ("PATH");
-      if (path != NULL)
-	{
-	  for (p = path; *p; p = p_next)
-	    {
-	      const char *q;
-	      size_t p_len;
-	      for (q = p; *q; q++)
-		if (IS_PATH_SEPARATOR (*q))
-		  break;
-	      p_len = q - p;
-	      p_next = (*q == '\0' ? q : q + 1);
-	      if (p_len == 0)
-		{
-		  /* empty path: current directory */
-		  if (getcwd (tmp, LT_PATHMAX) == NULL)
-		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
-                              nonnull (strerror (errno)));
-		  tmp_len = strlen (tmp);
-		  concat_name =
-		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
-		  memcpy (concat_name, tmp, tmp_len);
-		  concat_name[tmp_len] = '/';
-		  strcpy (concat_name + tmp_len + 1, wrapper);
-		}
+	# Prepare the list of exported symbols
+	if test -z "$export_symbols"; then
+	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+	    $show "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $run $rm $export_symbols
+	    cmds=$export_symbols_cmds
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $cmds; do
+	      IFS="$save_ifs"
+	      eval cmd=\"$cmd\"
+	      if len=`expr "X$cmd" : ".*"` &&
+	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	        $show "$cmd"
+	        $run eval "$cmd" || exit $?
+	        skipped_export=false
 	      else
-		{
-		  concat_name =
-		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
-		  memcpy (concat_name, p, p_len);
-		  concat_name[p_len] = '/';
-		  strcpy (concat_name + p_len + 1, wrapper);
-		}
-	      if (check_executable (concat_name))
-		return concat_name;
-	      XFREE (concat_name);
-	    }
-	}
-      /* not found in PATH; assume curdir */
-    }
-  /* Relative path | not found in path: prepend cwd */
-  if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
-              nonnull (strerror (errno)));
-  tmp_len = strlen (tmp);
-  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
-  memcpy (concat_name, tmp, tmp_len);
-  concat_name[tmp_len] = '/';
-  strcpy (concat_name + tmp_len + 1, wrapper);
+	        # The command line is too long to execute in one step.
+	        $show "using reloadable object file for export list..."
+	        skipped_export=:
+		# Break out early, otherwise skipped_export may be
+		# set to false by a later but shorter cmd.
+		break
+	      fi
+	    done
+	    IFS="$save_ifs"
+	    if test -n "$export_symbols_regex"; then
+	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+	fi
 
-  if (check_executable (concat_name))
-    return concat_name;
-  XFREE (concat_name);
-  return NULL;
-}
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+	fi
 
-char *
-chase_symlinks (const char *pathspec)
-{
-#ifndef S_ISLNK
-  return xstrdup (pathspec);
-#else
-  char buf[LT_PATHMAX];
-  struct stat s;
-  char *tmp_pathspec = xstrdup (pathspec);
-  char *p;
-  int has_symlinks = 0;
-  while (strlen (tmp_pathspec) && !has_symlinks)
-    {
-      lt_debugprintf (__FILE__, __LINE__,
-		      "checking path component for symlinks: %s\n",
-		      tmp_pathspec);
-      if (lstat (tmp_pathspec, &s) == 0)
-	{
-	  if (S_ISLNK (s.st_mode) != 0)
-	    {
-	      has_symlinks = 1;
-	      break;
-	    }
+	tmp_deplibs=
+	for test_deplib in $deplibs; do
+		case " $convenience " in
+		*" $test_deplib "*) ;;
+		*)
+			tmp_deplibs="$tmp_deplibs $test_deplib"
+			;;
+		esac
+	done
+	deplibs="$tmp_deplibs"
 
-	  /* search backwards for last DIR_SEPARATOR */
-	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
-	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
-	    p--;
-	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
-	    {
-	      /* no more DIR_SEPARATORS left */
-	      break;
-	    }
-	  *p = '\0';
-	}
-      else
-	{
-	  lt_fatal (__FILE__, __LINE__,
-		    "error accessing file \"%s\": %s",
-		    tmp_pathspec, nonnull (strerror (errno)));
-	}
-    }
-  XFREE (tmp_pathspec);
+	if test -n "$convenience"; then
+	  if test -n "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	  else
+	    gentop="$output_objdir/${outputname}x"
+	    generated="$generated $gentop"
 
-  if (!has_symlinks)
-    {
-      return xstrdup (pathspec);
-    }
+	    func_extract_archives $gentop $convenience
+	    libobjs="$libobjs $func_extract_archives_result"
+	  fi
+	fi
+	
+	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+	  eval flag=\"$thread_safe_flag_spec\"
+	  linker_flags="$linker_flags $flag"
+	fi
 
-  tmp_pathspec = realpath (pathspec, buf);
-  if (tmp_pathspec == 0)
-    {
-      lt_fatal (__FILE__, __LINE__,
-		"could not follow symlinks for %s", pathspec);
-    }
-  return xstrdup (tmp_pathspec);
-#endif
-}
+	# Make a backup of the uninstalled library when relinking
+	if test "$mode" = relink; then
+	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+	fi
 
-char *
-strendzap (char *str, const char *pat)
-{
-  size_t len, patlen;
+	# Do each of the archive commands.
+	if test "$module" = yes && test -n "$module_cmds" ; then
+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	    eval test_cmds=\"$module_expsym_cmds\"
+	    cmds=$module_expsym_cmds
+	  else
+	    eval test_cmds=\"$module_cmds\"
+	    cmds=$module_cmds
+	  fi
+	else
+	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	  eval test_cmds=\"$archive_expsym_cmds\"
+	  cmds=$archive_expsym_cmds
+	else
+	  eval test_cmds=\"$archive_cmds\"
+	  cmds=$archive_cmds
+	  fi
+	fi
 
-  assert (str != NULL);
-  assert (pat != NULL);
+	if test "X$skipped_export" != "X:" &&
+	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # The command line is too long to link in one step, link piecewise.
+	  $echo "creating reloadable object files..."
 
-  len = strlen (str);
-  patlen = strlen (pat);
+	  # Save the value of $output and $libobjs because we want to
+	  # use them later.  If we have whole_archive_flag_spec, we
+	  # want to use save_libobjs as it was before
+	  # whole_archive_flag_spec was expanded, because we can't
+	  # assume the linker understands whole_archive_flag_spec.
+	  # This may have to be revisited, in case too many
+	  # convenience libraries get linked in and end up exceeding
+	  # the spec.
+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	  fi
+	  save_output=$output
+	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
 
-  if (patlen <= len)
-    {
-      str += len - patlen;
-      if (strcmp (str, pat) == 0)
-	*str = '\0';
-    }
-  return str;
-}
+	  # Clear the reloadable object creation command queue and
+	  # initialize k to one.
+	  test_cmds=
+	  concat_cmds=
+	  objlist=
+	  delfiles=
+	  last_robj=
+	  k=1
+	  output=$output_objdir/$output_la-${k}.$objext
+	  # Loop over the list of objects to be linked.
+	  for obj in $save_libobjs
+	  do
+	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
+	    if test "X$objlist" = X ||
+	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+		 test "$len" -le "$max_cmd_len"; }; then
+	      objlist="$objlist $obj"
+	    else
+	      # The command $test_cmds is almost too long, add a
+	      # command to the queue.
+	      if test "$k" -eq 1 ; then
+		# The first file doesn't have a previous command to add.
+		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+	      else
+		# All subsequent reloadable object files will link in
+		# the last one created.
+		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+	      fi
+	      last_robj=$output_objdir/$output_la-${k}.$objext
+	      k=`expr $k + 1`
+	      output=$output_objdir/$output_la-${k}.$objext
+	      objlist=$obj
+	      len=1
+	    fi
+	  done
+	  # Handle the remaining objects by creating one last
+	  # reloadable object file.  All subsequent reloadable object
+	  # files will link in the last one created.
+	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+
+	  if ${skipped_export-false}; then
+	    $show "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $run $rm $export_symbols
+	    libobjs=$output
+	    # Append the command to create the export file.
+	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
+          fi
+
+	  # Set up a command to remove the reloadable object files
+	  # after they are used.
+	  i=0
+	  while test "$i" -lt "$k"
+	  do
+	    i=`expr $i + 1`
+	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
+	  done
 
-void
-lt_debugprintf (const char *file, int line, const char *fmt, ...)
-{
-  va_list args;
-  if (lt_debug)
-    {
-      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
-      va_start (args, fmt);
-      (void) vfprintf (stderr, fmt, args);
-      va_end (args);
-    }
-}
+	  $echo "creating a temporary reloadable object file: $output"
 
-static void
-lt_error_core (int exit_status, const char *file,
-	       int line, const char *mode,
-	       const char *message, va_list ap)
-{
-  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
-  vfprintf (stderr, message, ap);
-  fprintf (stderr, ".\n");
+	  # Loop through the commands generated above and execute them.
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $concat_cmds; do
+	    IFS="$save_ifs"
+	    $show "$cmd"
+	    $run eval "$cmd" || exit $?
+	  done
+	  IFS="$save_ifs"
 
-  if (exit_status >= 0)
-    exit (exit_status);
-}
+	  libobjs=$output
+	  # Restore the value of output.
+	  output=$save_output
 
-void
-lt_fatal (const char *file, int line, const char *message, ...)
-{
-  va_list ap;
-  va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
-  va_end (ap);
-}
+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	  fi
+	  # Expand the library linking commands again to reset the
+	  # value of $libobjs for piecewise linking.
 
-static const char *
-nonnull (const char *s)
-{
-  return s ? s : "(null)";
-}
+	  # Do each of the archive commands.
+	  if test "$module" = yes && test -n "$module_cmds" ; then
+	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	      cmds=$module_expsym_cmds
+	    else
+	      cmds=$module_cmds
+	    fi
+	  else
+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	    cmds=$archive_expsym_cmds
+	  else
+	    cmds=$archive_cmds
+	    fi
+	  fi
 
-static const char *
-nonempty (const char *s)
-{
-  return (s && !*s) ? "(empty)" : nonnull (s);
-}
+	  # Append the command to remove the reloadable object files
+	  # to the just-reset $cmds.
+	  eval cmds=\"\$cmds~\$rm $delfiles\"
+	fi
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  eval cmd=\"$cmd\"
+	  $show "$cmd"
+	  $run eval "$cmd" || {
+	    lt_exit=$?
 
-void
-lt_setenv (const char *name, const char *value)
-{
-  lt_debugprintf (__FILE__, __LINE__,
-		  "(lt_setenv) setting '%s' to '%s'\n",
-                  nonnull (name), nonnull (value));
-  {
-#ifdef HAVE_SETENV
-    /* always make a copy, for consistency with !HAVE_SETENV */
-    char *str = xstrdup (value);
-    setenv (name, str, 1);
-#else
-    int len = strlen (name) + 1 + strlen (value) + 1;
-    char *str = XMALLOC (char, len);
-    sprintf (str, "%s=%s", name, value);
-    if (putenv (str) != EXIT_SUCCESS)
-      {
-        XFREE (str);
-      }
-#endif
-  }
-}
+	    # Restore the uninstalled library and exit
+	    if test "$mode" = relink; then
+	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
+	    fi
 
-char *
-lt_extend_str (const char *orig_value, const char *add, int to_end)
-{
-  char *new_value;
-  if (orig_value && *orig_value)
-    {
-      int orig_value_len = strlen (orig_value);
-      int add_len = strlen (add);
-      new_value = XMALLOC (char, add_len + orig_value_len + 1);
-      if (to_end)
-        {
-          strcpy (new_value, orig_value);
-          strcpy (new_value + orig_value_len, add);
-        }
-      else
-        {
-          strcpy (new_value, add);
-          strcpy (new_value + add_len, orig_value);
-        }
-    }
-  else
-    {
-      new_value = xstrdup (add);
-    }
-  return new_value;
-}
+	    exit $lt_exit
+	  }
+	done
+	IFS="$save_ifs"
 
-void
-lt_update_exe_path (const char *name, const char *value)
-{
-  lt_debugprintf (__FILE__, __LINE__,
-		  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
-                  nonnull (name), nonnull (value));
+	# Restore the uninstalled library and exit
+	if test "$mode" = relink; then
+	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
 
-  if (name && *name && value && *value)
-    {
-      char *new_value = lt_extend_str (getenv (name), value, 0);
-      /* some systems can't cope with a ':'-terminated path #' */
-      int len = strlen (new_value);
-      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
-        {
-          new_value[len-1] = '\0';
-        }
-      lt_setenv (name, new_value);
-      XFREE (new_value);
-    }
-}
+	  if test -n "$convenience"; then
+	    if test -z "$whole_archive_flag_spec"; then
+	      $show "${rm}r $gentop"
+	      $run ${rm}r "$gentop"
+	    fi
+	  fi
 
-void
-lt_update_lib_path (const char *name, const char *value)
-{
-  lt_debugprintf (__FILE__, __LINE__,
-		  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
-                  nonnull (name), nonnull (value));
+	  exit $EXIT_SUCCESS
+	fi
 
-  if (name && *name && value && *value)
-    {
-      char *new_value = lt_extend_str (getenv (name), value, 0);
-      lt_setenv (name, new_value);
-      XFREE (new_value);
-    }
-}
+	# Create links to the real library.
+	for linkname in $linknames; do
+	  if test "$realname" != "$linkname"; then
+	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
+	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
+	  fi
+	done
 
-EOF
-	    case $host_os in
-	      mingw*)
-		cat <<"EOF"
-
-/* Prepares an argument vector before calling spawn().
-   Note that spawn() does not by itself call the command interpreter
-     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
-      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-         GetVersionEx(&v);
-         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
-      }) ? "cmd.exe" : "command.com").
-   Instead it simply concatenates the arguments, separated by ' ', and calls
-   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
-   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
-   special way:
-   - Space and tab are interpreted as delimiters. They are not treated as
-     delimiters if they are surrounded by double quotes: "...".
-   - Unescaped double quotes are removed from the input. Their only effect is
-     that within double quotes, space and tab are treated like normal
-     characters.
-   - Backslashes not followed by double quotes are not special.
-   - But 2*n+1 backslashes followed by a double quote become
-     n backslashes followed by a double quote (n >= 0):
-       \" -> "
-       \\\" -> \"
-       \\\\\" -> \\"
- */
-#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-char **
-prepare_spawn (char **argv)
-{
-  size_t argc;
-  char **new_argv;
-  size_t i;
+	# If -module or -export-dynamic was specified, set the dlname.
+	if test "$module" = yes || test "$export_dynamic" = yes; then
+	  # On all known operating systems, these are identical.
+	  dlname="$soname"
+	fi
+      fi
+      ;;
 
-  /* Count number of arguments.  */
-  for (argc = 0; argv[argc] != NULL; argc++)
-    ;
+    obj)
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;;
+      esac
 
-  /* Allocate new argument vector.  */
-  new_argv = XMALLOC (char *, argc + 1);
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
+      fi
 
-  /* Put quoted arguments into the new argument vector.  */
-  for (i = 0; i < argc; i++)
-    {
-      const char *string = argv[i];
-
-      if (string[0] == '\0')
-	new_argv[i] = xstrdup ("\"\"");
-      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
-	{
-	  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
-	  size_t length;
-	  unsigned int backslashes;
-	  const char *s;
-	  char *quoted_string;
-	  char *p;
-
-	  length = 0;
-	  backslashes = 0;
-	  if (quote_around)
-	    length++;
-	  for (s = string; *s != '\0'; s++)
-	    {
-	      char c = *s;
-	      if (c == '"')
-		length += backslashes + 1;
-	      length++;
-	      if (c == '\\')
-		backslashes++;
-	      else
-		backslashes = 0;
-	    }
-	  if (quote_around)
-	    length += backslashes + 1;
-
-	  quoted_string = XMALLOC (char, length + 1);
-
-	  p = quoted_string;
-	  backslashes = 0;
-	  if (quote_around)
-	    *p++ = '"';
-	  for (s = string; *s != '\0'; s++)
-	    {
-	      char c = *s;
-	      if (c == '"')
-		{
-		  unsigned int j;
-		  for (j = backslashes + 1; j > 0; j--)
-		    *p++ = '\\';
-		}
-	      *p++ = c;
-	      if (c == '\\')
-		backslashes++;
-	      else
-		backslashes = 0;
-	    }
-	  if (quote_around)
-	    {
-	      unsigned int j;
-	      for (j = backslashes; j > 0; j--)
-		*p++ = '\\';
-	      *p++ = '"';
-	    }
-	  *p = '\0';
+      if test -n "$rpath"; then
+	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+      fi
 
-	  new_argv[i] = quoted_string;
-	}
-      else
-	new_argv[i] = (char *) string;
-    }
-  new_argv[argc] = NULL;
+      if test -n "$xrpath"; then
+	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
+      fi
 
-  return new_argv;
-}
-EOF
-		;;
-	    esac
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
+      fi
 
-            cat <<"EOF"
-void lt_dump_script (FILE* f)
-{
-EOF
-	    func_emit_wrapper yes |
-              $SED -e 's/\([\\"]\)/\\\1/g' \
-	           -e 's/^/  fputs ("/' -e 's/$/\\n", f);/'
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+      fi
 
-            cat <<"EOF"
-}
-EOF
-}
-# end: func_emit_cwrapperexe_src
+      case $output in
+      *.lo)
+	if test -n "$objs$old_deplibs"; then
+	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+	libobj="$output"
+	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+	;;
+      *)
+	libobj=
+	obj="$output"
+	;;
+      esac
 
-# func_win32_import_lib_p ARG
-# True if ARG is an import lib, as indicated by $file_magic_cmd
-func_win32_import_lib_p ()
-{
-    $opt_debug
-    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
-    *import*) : ;;
-    *) false ;;
-    esac
-}
+      # Delete the old objects.
+      $run $rm $obj $libobj
 
-# func_mode_link arg...
-func_mode_link ()
-{
-    $opt_debug
-    case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-      # It is impossible to link a dll without this setting, and
-      # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
-      # flag for every libtool invocation.
-      # allow_undefined=no
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # reload_cmds runs $LD directly, so let us get rid of
+      # -Wl from whole_archive_flag_spec and hope we can get by with
+      # turning comma into space..
+      wl=
 
-      # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
-      # even a static library is built.  For now, we need to specify
-      # -no-undefined on the libtool link line when we can be certain
-      # that all symbols are satisfied, otherwise we get a static library.
-      allow_undefined=yes
-      ;;
-    *)
-      allow_undefined=yes
-      ;;
-    esac
-    libtool_args=$nonopt
-    base_compile="$nonopt $@"
-    compile_command=$nonopt
-    finalize_command=$nonopt
+      if test -n "$convenience"; then
+	if test -n "$whole_archive_flag_spec"; then
+	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+	  reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+	else
+	  gentop="$output_objdir/${obj}x"
+	  generated="$generated $gentop"
 
-    compile_rpath=
-    finalize_rpath=
-    compile_shlibpath=
-    finalize_shlibpath=
-    convenience=
-    old_convenience=
-    deplibs=
-    old_deplibs=
-    compiler_flags=
-    linker_flags=
-    dllsearchpath=
-    lib_search_path=`pwd`
-    inst_prefix_dir=
-    new_inherited_linker_flags=
+	  func_extract_archives $gentop $convenience
+	  reload_conv_objs="$reload_objs $func_extract_archives_result"
+	fi
+      fi
 
-    avoid_version=no
-    bindir=
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    ltlibs=
-    module=no
-    no_install=no
-    objs=
-    non_pic_objects=
-    precious_files_regex=
-    prefer_static_libs=no
-    preload=no
-    prev=
-    prevarg=
-    release=
-    rpath=
-    xrpath=
-    perm_rpath=
-    temp_rpath=
-    thread_safe=no
-    vinfo=
-    vinfo_number=no
-    weak_libs=
-    single_module="${wl}-single_module"
-    func_infer_tag $base_compile
+      # Create the old-style object.
+      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case $arg in
-      -shared)
-	test "$build_libtool_libs" != yes && \
-	  func_fatal_configuration "can not build a shared library"
-	build_old_libs=no
-	break
-	;;
-      -all-static | -static | -static-libtool-libs)
-	case $arg in
-	-all-static)
-	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-	    func_warning "complete static linking is impossible in this configuration"
-	  fi
-	  if test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	  prefer_static_libs=yes
-	  ;;
-	-static)
-	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	  prefer_static_libs=built
-	  ;;
-	-static-libtool-libs)
-	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	  prefer_static_libs=yes
-	  ;;
-	esac
-	build_libtool_libs=no
-	build_old_libs=yes
-	break
-	;;
-      esac
-    done
+      output="$obj"
+      cmds=$reload_cmds
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	eval cmd=\"$cmd\"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
 
-    # See if our shared archives depend on static archives.
-    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+	if test -n "$gentop"; then
+	  $show "${rm}r $gentop"
+	  $run ${rm}r $gentop
+	fi
 
-    # Go through the arguments, transforming them on the way.
-    while test "$#" -gt 0; do
-      arg="$1"
-      shift
-      func_quote_for_eval "$arg"
-      qarg=$func_quote_for_eval_unquoted_result
-      func_append libtool_args " $func_quote_for_eval_result"
+	exit $EXIT_SUCCESS
+      fi
 
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-	case $prev in
-	output)
-	  func_append compile_command " @OUTPUT@"
-	  func_append finalize_command " @OUTPUT@"
-	  ;;
-	esac
+      if test "$build_libtool_libs" != yes; then
+	if test -n "$gentop"; then
+	  $show "${rm}r $gentop"
+	  $run ${rm}r $gentop
+	fi
 
-	case $prev in
-	bindir)
-	  bindir="$arg"
-	  prev=
-	  continue
-	  ;;
-	dlfiles|dlprefiles)
-	  if test "$preload" = no; then
-	    # Add the symbol object into the linking commands.
-	    func_append compile_command " @SYMFILE@"
-	    func_append finalize_command " @SYMFILE@"
-	    preload=yes
-	  fi
-	  case $arg in
-	  *.la | *.lo) ;;  # We handle these cases below.
-	  force)
-	    if test "$dlself" = no; then
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  self)
-	    if test "$prev" = dlprefiles; then
-	      dlself=yes
-	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-	      dlself=yes
-	    else
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  *)
-	    if test "$prev" = dlfiles; then
-	      func_append dlfiles " $arg"
-	    else
-	      func_append dlprefiles " $arg"
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  esac
-	  ;;
-	expsyms)
-	  export_symbols="$arg"
-	  test -f "$arg" \
-	    || func_fatal_error "symbol file \`$arg' does not exist"
-	  prev=
-	  continue
-	  ;;
-	expsyms_regex)
-	  export_symbols_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	framework)
-	  case $host in
-	    *-*-darwin*)
-	      case "$deplibs " in
-		*" $qarg.ltframework "*) ;;
-		*) func_append deplibs " $qarg.ltframework" # this is fixed later
-		   ;;
-	      esac
-	      ;;
-	  esac
-	  prev=
-	  continue
-	  ;;
-	inst_prefix)
-	  inst_prefix_dir="$arg"
-	  prev=
-	  continue
-	  ;;
-	objectlist)
-	  if test -f "$arg"; then
-	    save_arg=$arg
-	    moreargs=
-	    for fil in `cat "$save_arg"`
-	    do
-#	      func_append moreargs " $fil"
-	      arg=$fil
-	      # A libtool-controlled object.
+	# Create an invalid libtool object if no PIC, so that we don't
+	# accidentally link it into a program.
+	# $show "echo timestamp > $libobj"
+	# $run eval "echo timestamp > $libobj" || exit $?
+	exit $EXIT_SUCCESS
+      fi
 
-	      # Check to see that this really is a libtool object.
-	      if func_lalib_unsafe_p "$arg"; then
-		pic_object=
-		non_pic_object=
+      if test -n "$pic_flag" || test "$pic_mode" != default; then
+	# Only do commands if we really have different PIC objects.
+	reload_objs="$libobjs $reload_conv_objs"
+	output="$libobj"
+	cmds=$reload_cmds
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  eval cmd=\"$cmd\"
+	  $show "$cmd"
+	  $run eval "$cmd" || exit $?
+	done
+	IFS="$save_ifs"
+      fi
 
-		# Read the .lo file
-		func_source "$arg"
+      if test -n "$gentop"; then
+	$show "${rm}r $gentop"
+	$run ${rm}r $gentop
+      fi
 
-		if test -z "$pic_object" ||
-		   test -z "$non_pic_object" ||
-		   test "$pic_object" = none &&
-		   test "$non_pic_object" = none; then
-		  func_fatal_error "cannot find name of object for \`$arg'"
-		fi
+      exit $EXIT_SUCCESS
+      ;;
 
-		# Extract subdirectory from the argument.
-		func_dirname "$arg" "/" ""
-		xdir="$func_dirname_result"
+    prog)
+      case $host in
+	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
+      esac
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+      fi
 
-		if test "$pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  pic_object="$xdir$pic_object"
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
+      fi
 
-		  if test "$prev" = dlfiles; then
-		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		      func_append dlfiles " $pic_object"
-		      prev=
-		      continue
-		    else
-		      # If libtool objects are unsupported, then we need to preload.
-		      prev=dlprefiles
-		    fi
-		  fi
+      if test "$preload" = yes; then
+	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
+	   test "$dlopen_self_static" = unknown; then
+	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+	fi
+      fi
 
-		  # CHECK ME:  I think I busted this.  -Ossama
-		  if test "$prev" = dlprefiles; then
-		    # Preload the old-style object.
-		    func_append dlprefiles " $pic_object"
-		    prev=
-		  fi
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+	# On Rhapsody replace the C library is the System framework
+	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	;;
+      esac
 
-		  # A PIC object.
-		  func_append libobjs " $pic_object"
-		  arg="$pic_object"
-		fi
+      case $host in
+      *darwin*)
+        # Don't allow lazy linking, it breaks C++ global constructors
+        if test "$tagname" = CXX ; then
+        compile_command="$compile_command ${wl}-bind_at_load"
+        finalize_command="$finalize_command ${wl}-bind_at_load"
+        fi
+        ;;
+      esac
 
-		# Non-PIC object.
-		if test "$non_pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  non_pic_object="$xdir$non_pic_object"
 
-		  # A standard non-PIC object
-		  func_append non_pic_objects " $non_pic_object"
-		  if test -z "$pic_object" || test "$pic_object" = none ; then
-		    arg="$non_pic_object"
-		  fi
-		else
-		  # If the PIC object exists, use it instead.
-		  # $xdir was prepended to $pic_object above.
-		  non_pic_object="$pic_object"
-		  func_append non_pic_objects " $non_pic_object"
-		fi
-	      else
-		# Only an error if not doing a dry-run.
-		if $opt_dry_run; then
-		  # Extract subdirectory from the argument.
-		  func_dirname "$arg" "/" ""
-		  xdir="$func_dirname_result"
-
-		  func_lo2o "$arg"
-		  pic_object=$xdir$objdir/$func_lo2o_result
-		  non_pic_object=$xdir$func_lo2o_result
-		  func_append libobjs " $pic_object"
-		  func_append non_pic_objects " $non_pic_object"
-	        else
-		  func_fatal_error "\`$arg' is not a valid libtool object"
-		fi
-	      fi
-	    done
-	  else
-	    func_fatal_error "link input file \`$arg' does not exist"
-	  fi
-	  arg=$save_arg
-	  prev=
-	  continue
-	  ;;
-	precious_regex)
-	  precious_files_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	release)
-	  release="-$arg"
-	  prev=
-	  continue
-	  ;;
-	rpath | xrpath)
-	  # We need an absolute path.
-	  case $arg in
-	  [\\/]* | [A-Za-z]:[\\/]*) ;;
-	  *)
-	    func_fatal_error "only absolute run-paths are allowed"
-	    ;;
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $compile_deplibs " in
+	  *" -L$path/$objdir "*)
+	    new_libs="$new_libs -L$path/$objdir" ;;
 	  esac
-	  if test "$prev" = rpath; then
-	    case "$rpath " in
-	    *" $arg "*) ;;
-	    *) func_append rpath " $arg" ;;
-	    esac
-	  else
-	    case "$xrpath " in
-	    *" $arg "*) ;;
-	    *) func_append xrpath " $arg" ;;
-	    esac
-	  fi
-	  prev=
-	  continue
-	  ;;
-	shrext)
-	  shrext_cmds="$arg"
-	  prev=
-	  continue
-	  ;;
-	weak)
-	  func_append weak_libs " $arg"
-	  prev=
-	  continue
-	  ;;
-	xcclinker)
-	  func_append linker_flags " $qarg"
-	  func_append compiler_flags " $qarg"
-	  prev=
-	  func_append compile_command " $qarg"
-	  func_append finalize_command " $qarg"
-	  continue
-	  ;;
-	xcompiler)
-	  func_append compiler_flags " $qarg"
-	  prev=
-	  func_append compile_command " $qarg"
-	  func_append finalize_command " $qarg"
-	  continue
-	  ;;
-	xlinker)
-	  func_append linker_flags " $qarg"
-	  func_append compiler_flags " $wl$qarg"
-	  prev=
-	  func_append compile_command " $wl$qarg"
-	  func_append finalize_command " $wl$qarg"
-	  continue
 	  ;;
-	*)
-	  eval "$prev=\"\$arg\""
-	  prev=
-	  continue
+	esac
+      done
+      for deplib in $compile_deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) new_libs="$new_libs $deplib" ;;
+	  esac
 	  ;;
+	*) new_libs="$new_libs $deplib" ;;
 	esac
-      fi # test -n "$prev"
+      done
+      compile_deplibs="$new_libs"
 
-      prevarg="$arg"
 
-      case $arg in
-      -all-static)
-	if test -n "$link_static_flag"; then
-	  # See comment for -static flag below, for more details.
-	  func_append compile_command " $link_static_flag"
-	  func_append finalize_command " $link_static_flag"
-	fi
-	continue
-	;;
+      compile_command="$compile_command $compile_deplibs"
+      finalize_command="$finalize_command $finalize_deplibs"
 
-      -allow-undefined)
-	# FIXME: remove this flag sometime in the future.
-	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
-	;;
+      if test -n "$rpath$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	for libdir in $rpath $xrpath; do
+	  # This is the magic to use -rpath.
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+      fi
 
-      -avoid-version)
-	avoid_version=yes
-	continue
-	;;
-
-      -bindir)
-	prev=bindir
-	continue
-	;;
-
-      -dlopen)
-	prev=dlfiles
-	continue
-	;;
-
-      -dlpreopen)
-	prev=dlprefiles
-	continue
-	;;
-
-      -export-dynamic)
-	export_dynamic=yes
-	continue
-	;;
-
-      -export-symbols | -export-symbols-regex)
-	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	  func_fatal_error "more than one -exported-symbols argument is not allowed"
-	fi
-	if test "X$arg" = "X-export-symbols"; then
-	  prev=expsyms
-	else
-	  prev=expsyms_regex
-	fi
-	continue
-	;;
-
-      -framework)
-	prev=framework
-	continue
-	;;
-
-      -inst-prefix-dir)
-	prev=inst_prefix
-	continue
-	;;
-
-      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
-      # so, if we see these flags be careful not to treat them like -L
-      -L[A-Z][A-Z]*:*)
-	case $with_gcc/$host in
-	no/*-*-irix* | /*-*-irix*)
-	  func_append compile_command " $arg"
-	  func_append finalize_command " $arg"
-	  ;;
-	esac
-	continue
-	;;
-
-      -L*)
-	func_stripname "-L" '' "$arg"
-	if test -z "$func_stripname_result"; then
-	  if test "$#" -gt 0; then
-	    func_fatal_error "require no space between \`-L' and \`$1'"
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
 	  else
-	    func_fatal_error "need path for \`-L' option"
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
 	  fi
-	fi
-	func_resolve_sysroot "$func_stripname_result"
-	dir=$func_resolve_sysroot_result
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  absdir=`cd "$dir" && pwd`
-	  test -z "$absdir" && \
-	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
-	  dir="$absdir"
-	  ;;
-	esac
-	case "$deplibs " in
-	*" -L$dir "* | *" $arg "*)
-	  # Will only happen for absolute or sysroot arguments
-	  ;;
-	*)
-	  # Preserve sysroot, but never include relative directories
-	  case $dir in
-	    [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
-	    *) func_append deplibs " -L$dir" ;;
+	elif test -n "$runpath_var"; then
+	  case "$perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) perm_rpath="$perm_rpath $libdir" ;;
 	  esac
-	  func_append lib_search_path " $dir"
-	  ;;
-	esac
+	fi
 	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-	  testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
 	  case :$dllsearchpath: in
-	  *":$dir:"*) ;;
-	  ::) dllsearchpath=$dir;;
-	  *) func_append dllsearchpath ":$dir";;
+	  *":$libdir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$libdir";;
 	  esac
 	  case :$dllsearchpath: in
 	  *":$testbindir:"*) ;;
-	  ::) dllsearchpath=$testbindir;;
-	  *) func_append dllsearchpath ":$testbindir";;
+	  *) dllsearchpath="$dllsearchpath:$testbindir";;
 	  esac
 	  ;;
 	esac
-	continue
-	;;
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath="$rpath"
 
-      -l*)
-	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
-	    # These systems don't actually have a C or math library (as such)
-	    continue
-	    ;;
-	  *-*-os2*)
-	    # These systems don't actually have a C library (as such)
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C and math libraries are in the System framework
-	    func_append deplibs " System.ltframework"
-	    continue
-	    ;;
-	  *-*-sco3.2v5* | *-*-sco5v6*)
-	    # Causes problems with __ctype
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-	    # Compiler inserts libc in the correct place for threads to work
-	    test "X$arg" = "X-lc" && continue
-	    ;;
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$finalize_perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
 	  esac
-	elif test "X$arg" = "X-lc_r"; then
-	 case $host in
-	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	   # Do not include libc_r directly, use -pthread flag.
-	   continue
-	   ;;
-	 esac
 	fi
-	func_append deplibs " $arg"
-	continue
-	;;
-
-      -module)
-	module=yes
-	continue
-	;;
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath="$rpath"
 
-      # Tru64 UNIX uses -model [arg] to determine the layout of C++
-      # classes, name mangling, and exception handling.
-      # Darwin uses the -arch flag to determine output architecture.
-      -model|-arch|-isysroot|--sysroot)
-	func_append compiler_flags " $arg"
-	func_append compile_command " $arg"
-	func_append finalize_command " $arg"
-	prev=xcompiler
-	continue
-	;;
+      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+	# Transform all the library objects into standard objects.
+	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+      fi
 
-      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-	func_append compiler_flags " $arg"
-	func_append compile_command " $arg"
-	func_append finalize_command " $arg"
-	case "$new_inherited_linker_flags " in
-	    *" $arg "*) ;;
-	    * ) func_append new_inherited_linker_flags " $arg" ;;
-	esac
-	continue
-	;;
+      dlsyms=
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	if test -n "$NM" && test -n "$global_symbol_pipe"; then
+	  dlsyms="${outputname}S.c"
+	else
+	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
+	fi
+      fi
 
-      -multi_module)
-	single_module="${wl}-multi_module"
-	continue
-	;;
+      if test -n "$dlsyms"; then
+	case $dlsyms in
+	"") ;;
+	*.c)
+	  # Discover the nlist of each of the dlfiles.
+	  nlist="$output_objdir/${outputname}.nm"
 
-      -no-fast-install)
-	fast_install=no
-	continue
-	;;
+	  $show "$rm $nlist ${nlist}S ${nlist}T"
+	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
 
-      -no-install)
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
-	  # The PATH hackery in wrapper scripts is required on Windows
-	  # and Darwin in order for the loader to find any dlls it needs.
-	  func_warning "\`-no-install' is ignored for $host"
-	  func_warning "assuming \`-no-fast-install' instead"
-	  fast_install=no
-	  ;;
-	*) no_install=yes ;;
-	esac
-	continue
-	;;
+	  # Parse the name list into a source file.
+	  $show "creating $output_objdir/$dlsyms"
 
-      -no-undefined)
-	allow_undefined=no
-	continue
-	;;
+	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
+/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
+/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
 
-      -objectlist)
-	prev=objectlist
-	continue
-	;;
+#ifdef __cplusplus
+extern \"C\" {
+#endif
 
-      -o) prev=output ;;
+/* Prevent the only kind of declaration conflicts we can make. */
+#define lt_preloaded_symbols some_other_symbol
 
-      -precious-files-regex)
-	prev=precious_regex
-	continue
-	;;
+/* External symbol declarations for the compiler. */\
+"
 
-      -release)
-	prev=release
-	continue
-	;;
+	  if test "$dlself" = yes; then
+	    $show "generating symbol list for \`$output'"
 
-      -rpath)
-	prev=rpath
-	continue
-	;;
+	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
 
-      -R)
-	prev=xrpath
-	continue
-	;;
+	    # Add our own program objects to the symbol list.
+	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	    for arg in $progfiles; do
+	      $show "extracting global C symbols from \`$arg'"
+	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+	    done
 
-      -R*)
-	func_stripname '-R' '' "$arg"
-	dir=$func_stripname_result
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	=*)
-	  func_stripname '=' '' "$dir"
-	  dir=$lt_sysroot$func_stripname_result
-	  ;;
-	*)
-	  func_fatal_error "only absolute run-paths are allowed"
-	  ;;
-	esac
-	case "$xrpath " in
-	*" $dir "*) ;;
-	*) func_append xrpath " $dir" ;;
-	esac
-	continue
-	;;
+	    if test -n "$exclude_expsyms"; then
+	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+	      $run eval '$mv "$nlist"T "$nlist"'
+	    fi
 
-      -shared)
-	# The effects of -shared are defined in a previous loop.
-	continue
-	;;
+	    if test -n "$export_symbols_regex"; then
+	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+	      $run eval '$mv "$nlist"T "$nlist"'
+	    fi
 
-      -shrext)
-	prev=shrext
-	continue
-	;;
+	    # Prepare the list of exported symbols
+	    if test -z "$export_symbols"; then
+	      export_symbols="$output_objdir/$outputname.exp"
+	      $run $rm $export_symbols
+	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+              case $host in
+              *cygwin* | *mingw* )
+	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+                ;;
+              esac
+	    else
+	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+	      $run eval 'mv "$nlist"T "$nlist"'
+              case $host in
+              *cygwin* | *mingw* )
+	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+                ;;
+              esac
+	    fi
+	  fi
 
-      -static | -static-libtool-libs)
-	# The effects of -static are defined in a previous loop.
-	# We used to do the same as -all-static on platforms that
-	# didn't have a PIC flag, but the assumption that the effects
-	# would be equivalent was wrong.  It would break on at least
-	# Digital Unix and AIX.
-	continue
-	;;
+	  for arg in $dlprefiles; do
+	    $show "extracting global C symbols from \`$arg'"
+	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
+	    $run eval '$echo ": $name " >> "$nlist"'
+	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+	  done
 
-      -thread-safe)
-	thread_safe=yes
-	continue
-	;;
+	  if test -z "$run"; then
+	    # Make sure we have at least an empty file.
+	    test -f "$nlist" || : > "$nlist"
 
-      -version-info)
-	prev=vinfo
-	continue
-	;;
+	    if test -n "$exclude_expsyms"; then
+	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+	      $mv "$nlist"T "$nlist"
+	    fi
 
-      -version-number)
-	prev=vinfo
-	vinfo_number=yes
-	continue
-	;;
+	    # Try sorting and uniquifying the output.
+	    if grep -v "^: " < "$nlist" |
+		if sort -k 3 </dev/null >/dev/null 2>&1; then
+		  sort -k 3
+		else
+		  sort +2
+		fi |
+		uniq > "$nlist"S; then
+	      :
+	    else
+	      grep -v "^: " < "$nlist" > "$nlist"S
+	    fi
 
-      -weak)
-        prev=weak
-	continue
-	;;
+	    if test -f "$nlist"S; then
+	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+	    else
+	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
+	    fi
 
-      -Wc,*)
-	func_stripname '-Wc,' '' "$arg"
-	args=$func_stripname_result
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-          func_quote_for_eval "$flag"
-	  func_append arg " $func_quote_for_eval_result"
-	  func_append compiler_flags " $func_quote_for_eval_result"
-	done
-	IFS="$save_ifs"
-	func_stripname ' ' '' "$arg"
-	arg=$func_stripname_result
-	;;
+	    $echo >> "$output_objdir/$dlsyms" "\
 
-      -Wl,*)
-	func_stripname '-Wl,' '' "$arg"
-	args=$func_stripname_result
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-          func_quote_for_eval "$flag"
-	  func_append arg " $wl$func_quote_for_eval_result"
-	  func_append compiler_flags " $wl$func_quote_for_eval_result"
-	  func_append linker_flags " $func_quote_for_eval_result"
-	done
-	IFS="$save_ifs"
-	func_stripname ' ' '' "$arg"
-	arg=$func_stripname_result
-	;;
+#undef lt_preloaded_symbols
 
-      -Xcompiler)
-	prev=xcompiler
-	continue
-	;;
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
 
-      -Xlinker)
-	prev=xlinker
-	continue
-	;;
+/* The mapping between symbol names and symbols. */
+"
 
-      -XCClinker)
-	prev=xcclinker
-	continue
-	;;
+	    case $host in
+	    *cygwin* | *mingw* )
+	  $echo >> "$output_objdir/$dlsyms" "\
+/* DATA imports from DLLs on WIN32 can't be const, because
+   runtime relocations are performed -- see ld's documentation
+   on pseudo-relocs */
+struct {
+"
+	      ;;
+	    * )
+	  $echo >> "$output_objdir/$dlsyms" "\
+const struct {
+"
+	      ;;
+	    esac
 
-      # -msg_* for osf cc
-      -msg_*)
-	func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
-	;;
 
-      # Flags to be passed through unchanged, with rationale:
-      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
-      # -r[0-9][0-9]*        specify processor for the SGI compiler
-      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
-      # +DA*, +DD*           enable 64-bit mode for the HP compiler
-      # -q*                  compiler args for the IBM compiler
-      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
-      # -F/path              path to uninstalled frameworks, gcc on darwin
-      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
-      # -fstack-protector*   stack protector flags for GCC
-      # @file                GCC response files
-      # -tp=*                Portland pgcc target processor selection
-      # --sysroot=*          for sysroot support
-      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
-      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
-      -O*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*)
-        func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
-        func_append compile_command " $arg"
-        func_append finalize_command " $arg"
-        func_append compiler_flags " $arg"
-        continue
-        ;;
+	  $echo >> "$output_objdir/$dlsyms" "\
+  const char *name;
+  lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{\
+"
 
-      # Some other compiler flag.
-      -* | +*)
-        func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
-	;;
+	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
 
-      *.$objext)
-	# A standard object.
-	func_append objs " $arg"
-	;;
+	    $echo >> "$output_objdir/$dlsyms" "\
+  {0, (lt_ptr) 0}
+};
 
-      *.lo)
-	# A libtool-controlled object.
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_preloaded_symbols;
+}
+#endif
 
-	# Check to see that this really is a libtool object.
-	if func_lalib_unsafe_p "$arg"; then
-	  pic_object=
-	  non_pic_object=
+#ifdef __cplusplus
+}
+#endif\
+"
+	  fi
 
-	  # Read the .lo file
-	  func_source "$arg"
+	  pic_flag_for_symtable=
+	  case $host in
+	  # compiling the symbol table file with pic_flag works around
+	  # a FreeBSD bug that causes programs to crash when -lm is
+	  # linked before any other PIC object.  But we must not use
+	  # pic_flag when linking with -static.  The problem exists in
+	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	    case "$compile_command " in
+	    *" -static "*) ;;
+	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
+	    esac;;
+	  *-*-hpux*)
+	    case "$compile_command " in
+	    *" -static "*) ;;
+	    *) pic_flag_for_symtable=" $pic_flag";;
+	    esac
+	  esac
 
-	  if test -z "$pic_object" ||
-	     test -z "$non_pic_object" ||
-	     test "$pic_object" = none &&
-	     test "$non_pic_object" = none; then
-	    func_fatal_error "cannot find name of object for \`$arg'"
-	  fi
+	  # Now compile the dynamic symbol file.
+	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
 
-	  # Extract subdirectory from the argument.
-	  func_dirname "$arg" "/" ""
-	  xdir="$func_dirname_result"
+	  # Clean up the generated files.
+	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
 
-	  if test "$pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    pic_object="$xdir$pic_object"
+	  # Transform the symbol file into the correct name.
+          case $host in
+          *cygwin* | *mingw* )
+            if test -f "$output_objdir/${outputname}.def" ; then
+              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
+              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
+            else
+              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+             fi
+            ;;
+          * )
+            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+            ;;
+          esac
+	  ;;
+	*)
+	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+      else
+	# We keep going just in case the user didn't refer to
+	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+	# really was required.
 
-	    if test "$prev" = dlfiles; then
-	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		func_append dlfiles " $pic_object"
-		prev=
-		continue
-	      else
-		# If libtool objects are unsupported, then we need to preload.
-		prev=dlprefiles
-	      fi
-	    fi
+	# Nullify the symbol file.
+	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
+	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
+      fi
 
-	    # CHECK ME:  I think I busted this.  -Ossama
-	    if test "$prev" = dlprefiles; then
-	      # Preload the old-style object.
-	      func_append dlprefiles " $pic_object"
-	      prev=
-	    fi
+      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+	# Replace the output file specification.
+	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
+	link_command="$compile_command$compile_rpath"
 
-	    # A PIC object.
-	    func_append libobjs " $pic_object"
-	    arg="$pic_object"
-	  fi
+	# We have no uninstalled library dependencies, so finalize right now.
+	$show "$link_command"
+	$run eval "$link_command"
+	exit_status=$?
 
-	  # Non-PIC object.
-	  if test "$non_pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    non_pic_object="$xdir$non_pic_object"
+	# Delete the generated files.
+	if test -n "$dlsyms"; then
+	  $show "$rm $output_objdir/${outputname}S.${objext}"
+	  $run $rm "$output_objdir/${outputname}S.${objext}"
+	fi
 
-	    # A standard non-PIC object
-	    func_append non_pic_objects " $non_pic_object"
-	    if test -z "$pic_object" || test "$pic_object" = none ; then
-	      arg="$non_pic_object"
-	    fi
-	  else
-	    # If the PIC object exists, use it instead.
-	    # $xdir was prepended to $pic_object above.
-	    non_pic_object="$pic_object"
-	    func_append non_pic_objects " $non_pic_object"
-	  fi
-	else
-	  # Only an error if not doing a dry-run.
-	  if $opt_dry_run; then
-	    # Extract subdirectory from the argument.
-	    func_dirname "$arg" "/" ""
-	    xdir="$func_dirname_result"
-
-	    func_lo2o "$arg"
-	    pic_object=$xdir$objdir/$func_lo2o_result
-	    non_pic_object=$xdir$func_lo2o_result
-	    func_append libobjs " $pic_object"
-	    func_append non_pic_objects " $non_pic_object"
-	  else
-	    func_fatal_error "\`$arg' is not a valid libtool object"
-	  fi
+	exit $exit_status
+      fi
+
+      if test -n "$shlibpath_var"; then
+	# We should set the shlibpath_var
+	rpath=
+	for dir in $temp_rpath; do
+	  case $dir in
+	  [\\/]* | [A-Za-z]:[\\/]*)
+	    # Absolute path.
+	    rpath="$rpath$dir:"
+	    ;;
+	  *)
+	    # Relative path: add a thisdir entry.
+	    rpath="$rpath\$thisdir/$dir:"
+	    ;;
+	  esac
+	done
+	temp_rpath="$rpath"
+      fi
+
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
+
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+	if test -n "$perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
 	fi
-	;;
+	if test -n "$finalize_perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $finalize_perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+      fi
 
-      *.$libext)
-	# An archive.
-	func_append deplibs " $arg"
-	func_append old_deplibs " $arg"
-	continue
-	;;
+      if test "$no_install" = yes; then
+	# We don't need to create a wrapper script.
+	link_command="$compile_var$compile_command$compile_rpath"
+	# Replace the output file specification.
+	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	# Delete the old output file.
+	$run $rm $output
+	# Link the executable and exit
+	$show "$link_command"
+	$run eval "$link_command" || exit $?
+	exit $EXIT_SUCCESS
+      fi
 
-      *.la)
-	# A libtool-controlled library.
+      if test "$hardcode_action" = relink; then
+	# Fast installation is not supported
+	link_command="$compile_var$compile_command$compile_rpath"
+	relink_command="$finalize_var$finalize_command$finalize_rpath"
 
-	func_resolve_sysroot "$arg"
-	if test "$prev" = dlfiles; then
-	  # This library was specified with -dlopen.
-	  func_append dlfiles " $func_resolve_sysroot_result"
-	  prev=
-	elif test "$prev" = dlprefiles; then
-	  # The library was specified with -dlpreopen.
-	  func_append dlprefiles " $func_resolve_sysroot_result"
-	  prev=
+	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+	$echo "$modename: \`$output' will be relinked during installation" 1>&2
+      else
+	if test "$fast_install" != no; then
+	  link_command="$finalize_var$compile_command$finalize_rpath"
+	  if test "$fast_install" = yes; then
+	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
+	  else
+	    # fast_install is set to needless
+	    relink_command=
+	  fi
 	else
-	  func_append deplibs " $func_resolve_sysroot_result"
+	  link_command="$compile_var$compile_command$compile_rpath"
+	  relink_command="$finalize_var$finalize_command$finalize_rpath"
 	fi
-	continue
-	;;
+      fi
 
-      # Some other compiler argument.
-      *)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
-	;;
-      esac # arg
+      # Replace the output file specification.
+      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-	func_append compile_command " $arg"
-	func_append finalize_command " $arg"
-      fi
-    done # argument parsing loop
+      # Delete the old output files.
+      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
 
-    test -n "$prev" && \
-      func_fatal_help "the \`$prevarg' option requires an argument"
+      $show "$link_command"
+      $run eval "$link_command" || exit $?
 
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      func_append compile_command " $arg"
-      func_append finalize_command " $arg"
-    fi
+      # Now create the wrapper script.
+      $show "creating $output"
 
-    oldlibs=
-    # calculate the name of the file, without its directory
-    func_basename "$output"
-    outputname="$func_basename_result"
-    libobjs_save="$libobjs"
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+	# Preserve any variables that may affect compiler behavior
+	for var in $variables_saved_for_relink; do
+	  if eval test -z \"\${$var+set}\"; then
+	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+	  elif eval var_value=\$$var; test -z "$var_value"; then
+	    relink_command="$var=; export $var; $relink_command"
+	  else
+	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
+	  fi
+	done
+	relink_command="(cd `pwd`; $relink_command)"
+	relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
+      fi
 
-    if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
-    else
-      shlib_search_path=
-    fi
-    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+      # Quote $echo for shipping.
+      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
+	case $progpath in
+	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+	esac
+	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+      else
+	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+      fi
 
-    func_dirname "$output" "/" ""
-    output_objdir="$func_dirname_result$objdir"
-    func_to_tool_file "$output_objdir/"
-    tool_output_objdir=$func_to_tool_file_result
-    # Create the object directory.
-    func_mkdir_p "$output_objdir"
+      # Only actually do things if our run command is non-null.
+      if test -z "$run"; then
+	# win32 will think the script is a binary if it has
+	# a .exe suffix, so we strip it off here.
+	case $output in
+	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
+	esac
+	# test for cygwin because mv fails w/o .exe extensions
+	case $host in
+	  *cygwin*)
+	    exeext=.exe
+	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
+	  *) exeext= ;;
+	esac
+	case $host in
+	  *cygwin* | *mingw* )
+            output_name=`basename $output`
+            output_path=`dirname $output`
+            cwrappersource="$output_path/$objdir/lt-$output_name.c"
+            cwrapper="$output_path/$output_name.exe"
+            $rm $cwrappersource $cwrapper
+            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
 
-    # Determine the type of output
-    case $output in
-    "")
-      func_fatal_help "you must specify an output file"
-      ;;
-    *.$libext) linkmode=oldlib ;;
-    *.lo | *.$objext) linkmode=obj ;;
-    *.la) linkmode=lib ;;
-    *) linkmode=prog ;; # Anything else should be a program.
-    esac
+	    cat > $cwrappersource <<EOF
 
-    specialdeplibs=
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
 
-    libs=
-    # Find all interdependent deplibs by searching for libraries
-    # that are linked more than once (e.g. -la -lb -la)
-    for deplib in $deplibs; do
-      if $opt_preserve_dup_deps ; then
-	case "$libs " in
-	*" $deplib "*) func_append specialdeplibs " $deplib" ;;
-	esac
-      fi
-      func_append libs " $deplib"
-    done
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
 
-    if test "$linkmode" = lib; then
-      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
 
-      # Compute libraries that are listed more than once in $predeps
-      # $postdeps and mark them as special (i.e., whose duplicates are
-      # not to be eliminated).
-      pre_post_deps=
-      if $opt_duplicate_compiler_generated_deps; then
-	for pre_post_dep in $predeps $postdeps; do
-	  case "$pre_post_deps " in
-	  *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
-	  esac
-	  func_append pre_post_deps " $pre_post_dep"
-	done
-      fi
-      pre_post_deps=
-    fi
+   Currently, it simply execs the wrapper *script* "/bin/sh $output",
+   but could eventually absorb all of the scripts functionality and
+   exec $objdir/$outputname directly.
+*/
+EOF
+	    cat >> $cwrappersource<<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <sys/stat.h>
 
-    deplibs=
-    newdependency_libs=
-    newlib_search_path=
-    need_relink=no # whether we're linking any uninstalled libtool libraries
-    notinst_deplibs= # not-installed libtool libraries
-    notinst_path= # paths that contain not-installed libtool libraries
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
 
-    case $linkmode in
-    lib)
-	passes="conv dlpreopen link"
-	for file in $dlfiles $dlprefiles; do
-	  case $file in
-	  *.la) ;;
-	  *)
-	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
-	    ;;
-	  esac
-	done
-	;;
-    prog)
-	compile_deplibs=
-	finalize_deplibs=
-	alldeplibs=no
-	newdlfiles=
-	newdlprefiles=
-	passes="conv scan dlopen dlpreopen link"
-	;;
-    *)  passes="conv"
-	;;
-    esac
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
 
-    for pass in $passes; do
-      # The preopen pass in lib mode reverses $deplibs; put it back here
-      # so that -L comes before libs that need it for instance...
-      if test "$linkmode,$pass" = "lib,link"; then
-	## FIXME: Find the place where the list is rebuilt in the wrong
-	##        order, and fix it there properly
-        tmp_deplibs=
-	for deplib in $deplibs; do
-	  tmp_deplibs="$deplib $tmp_deplibs"
-	done
-	deplibs="$tmp_deplibs"
-      fi
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+  defined (__OS2__)
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# ifndef DIR_SEPARATOR_2
+#  define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+#  define PATH_SEPARATOR_2 ';'
+# endif
+#endif
 
-      if test "$linkmode,$pass" = "lib,link" ||
-	 test "$linkmode,$pass" = "prog,scan"; then
-	libs="$deplibs"
-	deplibs=
-      fi
-      if test "$linkmode" = prog; then
-	case $pass in
-	dlopen) libs="$dlfiles" ;;
-	dlpreopen) libs="$dlprefiles" ;;
-	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
-	esac
-      fi
-      if test "$linkmode,$pass" = "lib,dlpreopen"; then
-	# Collect and forward deplibs of preopened libtool libs
-	for lib in $dlprefiles; do
-	  # Ignore non-libtool-libs
-	  dependency_libs=
-	  func_resolve_sysroot "$lib"
-	  case $lib in
-	  *.la)	func_source "$func_resolve_sysroot_result" ;;
-	  esac
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
 
-	  # Collect preopened libtool deplibs, except any this library
-	  # has declared as weak libs
-	  for deplib in $dependency_libs; do
-	    func_basename "$deplib"
-            deplib_base=$func_basename_result
-	    case " $weak_libs " in
-	    *" $deplib_base "*) ;;
-	    *) func_append deplibs " $deplib" ;;
-	    esac
-	  done
-	done
-	libs="$dlprefiles"
-      fi
-      if test "$pass" = dlopen; then
-	# Collect dlpreopened libraries
-	save_deplibs="$deplibs"
-	deplibs=
-      fi
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
 
-      for deplib in $libs; do
-	lib=
-	found=no
-	case $deplib in
-	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
-	  if test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$deplib $compile_deplibs"
-	    finalize_deplibs="$deplib $finalize_deplibs"
-	  else
-	    func_append compiler_flags " $deplib"
-	    if test "$linkmode" = lib ; then
-		case "$new_inherited_linker_flags " in
-		    *" $deplib "*) ;;
-		    * ) func_append new_inherited_linker_flags " $deplib" ;;
-		esac
-	    fi
-	  fi
-	  continue
-	  ;;
-	-l*)
-	  if test "$linkmode" != lib && test "$linkmode" != prog; then
-	    func_warning "\`-l' is ignored for archives/objects"
-	    continue
-	  fi
-	  func_stripname '-l' '' "$deplib"
-	  name=$func_stripname_result
-	  if test "$linkmode" = lib; then
-	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
-	  else
-	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
-	  fi
-	  for searchdir in $searchdirs; do
-	    for search_ext in .la $std_shrext .so .a; do
-	      # Search the libtool library
-	      lib="$searchdir/lib${name}${search_ext}"
-	      if test -f "$lib"; then
-		if test "$search_ext" = ".la"; then
-		  found=yes
-		else
-		  found=no
-		fi
-		break 2
-	      fi
-	    done
-	  done
-	  if test "$found" != yes; then
-	    # deplib doesn't seem to be a libtool library
-	    if test "$linkmode,$pass" = "prog,link"; then
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      deplibs="$deplib $deplibs"
-	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-	    fi
-	    continue
-	  else # deplib is a libtool library
-	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
-	    # We need to do some special things here, and not later.
-	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	      case " $predeps $postdeps " in
-	      *" $deplib "*)
-		if func_lalib_p "$lib"; then
-		  library_names=
-		  old_library=
-		  func_source "$lib"
-		  for l in $old_library $library_names; do
-		    ll="$l"
-		  done
-		  if test "X$ll" = "X$old_library" ; then # only static version available
-		    found=no
-		    func_dirname "$lib" "" "."
-		    ladir="$func_dirname_result"
-		    lib=$ladir/$old_library
-		    if test "$linkmode,$pass" = "prog,link"; then
-		      compile_deplibs="$deplib $compile_deplibs"
-		      finalize_deplibs="$deplib $finalize_deplibs"
-		    else
-		      deplibs="$deplib $deplibs"
-		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-		    fi
-		    continue
-		  fi
-		fi
-		;;
-	      *) ;;
-	      esac
-	    fi
-	  fi
-	  ;; # -l
-	*.ltframework)
-	  if test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$deplib $compile_deplibs"
-	    finalize_deplibs="$deplib $finalize_deplibs"
-	  else
-	    deplibs="$deplib $deplibs"
-	    if test "$linkmode" = lib ; then
-		case "$new_inherited_linker_flags " in
-		    *" $deplib "*) ;;
-		    * ) func_append new_inherited_linker_flags " $deplib" ;;
-		esac
-	    fi
-	  fi
-	  continue
-	  ;;
-	-L*)
-	  case $linkmode in
-	  lib)
-	    deplibs="$deplib $deplibs"
-	    test "$pass" = conv && continue
-	    newdependency_libs="$deplib $newdependency_libs"
-	    func_stripname '-L' '' "$deplib"
-	    func_resolve_sysroot "$func_stripname_result"
-	    func_append newlib_search_path " $func_resolve_sysroot_result"
-	    ;;
-	  prog)
-	    if test "$pass" = conv; then
-	      deplibs="$deplib $deplibs"
-	      continue
-	    fi
-	    if test "$pass" = scan; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    func_stripname '-L' '' "$deplib"
-	    func_resolve_sysroot "$func_stripname_result"
-	    func_append newlib_search_path " $func_resolve_sysroot_result"
-	    ;;
-	  *)
-	    func_warning "\`-L' is ignored for archives/objects"
-	    ;;
-	  esac # linkmode
-	  continue
-	  ;; # -L
-	-R*)
-	  if test "$pass" = link; then
-	    func_stripname '-R' '' "$deplib"
-	    func_resolve_sysroot "$func_stripname_result"
-	    dir=$func_resolve_sysroot_result
-	    # Make sure the xrpath contains only unique directories.
-	    case "$xrpath " in
-	    *" $dir "*) ;;
-	    *) func_append xrpath " $dir" ;;
-	    esac
-	  fi
-	  deplibs="$deplib $deplibs"
-	  continue
-	  ;;
-	*.la)
-	  func_resolve_sysroot "$deplib"
-	  lib=$func_resolve_sysroot_result
-	  ;;
-	*.$libext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	    continue
-	  fi
-	  case $linkmode in
-	  lib)
-	    # Linking convenience modules into shared libraries is allowed,
-	    # but linking other static libraries is non-portable.
-	    case " $dlpreconveniencelibs " in
-	    *" $deplib "*) ;;
-	    *)
-	      valid_a_lib=no
-	      case $deplibs_check_method in
-		match_pattern*)
-		  set dummy $deplibs_check_method; shift
-		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
-		    | $EGREP "$match_pattern_regex" > /dev/null; then
-		    valid_a_lib=yes
-		  fi
-		;;
-		pass_all)
-		  valid_a_lib=yes
-		;;
-	      esac
-	      if test "$valid_a_lib" != yes; then
-		echo
-		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
-		echo "*** I have the capability to make that library automatically link in when"
-		echo "*** you link to this library.  But I can only do this if you have a"
-		echo "*** shared version of the library, which you do not appear to have"
-		echo "*** because the file extensions .$libext of this argument makes me believe"
-		echo "*** that it is just a static archive that I should not use here."
-	      else
-		echo
-		$ECHO "*** Warning: Linking the shared library $output against the"
-		$ECHO "*** static library $deplib is not portable!"
-		deplibs="$deplib $deplibs"
-	      fi
-	      ;;
-	    esac
-	    continue
-	    ;;
-	  prog)
-	    if test "$pass" != link; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    continue
-	    ;;
-	  esac # linkmode
-	  ;; # *.$libext
-	*.lo | *.$objext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	  elif test "$linkmode" = prog; then
-	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-	      # If there is no dlopen support or we're linking statically,
-	      # we need to preload.
-	      func_append newdlprefiles " $deplib"
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      func_append newdlfiles " $deplib"
-	    fi
-	  fi
-	  continue
-	  ;;
-	%DEPLIBS%)
-	  alldeplibs=yes
-	  continue
-	  ;;
-	esac # case $deplib
-
-	if test "$found" = yes || test -f "$lib"; then :
-	else
-	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
-	fi
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
 
-	# Check to see that this really is a libtool archive.
-	func_lalib_unsafe_p "$lib" \
-	  || func_fatal_error "\`$lib' is not a valid libtool archive"
+/* -DDEBUG is fairly common in CFLAGS.  */
+#undef DEBUG
+#if defined DEBUGWRAPPER
+# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
+#else
+# define DEBUG(format, ...)
+#endif
 
-	func_dirname "$lib" "" "."
-	ladir="$func_dirname_result"
+const char *program_name = NULL;
 
-	dlname=
-	dlopen=
-	dlpreopen=
-	libdir=
-	library_names=
-	old_library=
-	inherited_linker_flags=
-	# If the library was installed with an old release of libtool,
-	# it will not redefine variables installed, or shouldnotlink
-	installed=yes
-	shouldnotlink=no
-	avoidtemprpath=
+void * xmalloc (size_t num);
+char * xstrdup (const char *string);
+const char * base_name (const char *name);
+char * find_executable(const char *wrapper);
+int    check_executable(const char *path);
+char * strendzap(char *str, const char *pat);
+void lt_fatal (const char *message, ...);
 
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int i;
 
-	# Read the .la file
-	func_source "$lib"
-
-	# Convert "-framework foo" to "foo.ltframework"
-	if test -n "$inherited_linker_flags"; then
-	  tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
-	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
-	    case " $new_inherited_linker_flags " in
-	      *" $tmp_inherited_linker_flag "*) ;;
-	      *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
-	    esac
-	  done
-	fi
-	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	if test "$linkmode,$pass" = "lib,link" ||
-	   test "$linkmode,$pass" = "prog,scan" ||
-	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-	  test -n "$dlopen" && func_append dlfiles " $dlopen"
-	  test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
-	fi
+  program_name = (char *) xstrdup (base_name (argv[0]));
+  DEBUG("(main) argv[0]      : %s\n",argv[0]);
+  DEBUG("(main) program_name : %s\n",program_name);
+  newargz = XMALLOC(char *, argc+2);
+EOF
 
-	if test "$pass" = conv; then
-	  # Only check for convenience libraries
-	  deplibs="$lib $deplibs"
-	  if test -z "$libdir"; then
-	    if test -z "$old_library"; then
-	      func_fatal_error "cannot find name of link library for \`$lib'"
-	    fi
-	    # It is a libtool convenience library, so add in its objects.
-	    func_append convenience " $ladir/$objdir/$old_library"
-	    func_append old_convenience " $ladir/$objdir/$old_library"
-	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
-	    func_fatal_error "\`$lib' is not a convenience library"
-	  fi
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    deplibs="$deplib $deplibs"
-	    if $opt_preserve_dup_deps ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
-	      esac
-	    fi
-	    func_append tmp_libs " $deplib"
-	  done
-	  continue
-	fi # $pass = conv
+            cat >> $cwrappersource <<EOF
+  newargz[0] = (char *) xstrdup("$SHELL");
+EOF
 
+            cat >> $cwrappersource <<"EOF"
+  newargz[1] = find_executable(argv[0]);
+  if (newargz[1] == NULL)
+    lt_fatal("Couldn't find %s", argv[0]);
+  DEBUG("(main) found exe at : %s\n",newargz[1]);
+  /* we know the script has the same name, without the .exe */
+  /* so make sure newargz[1] doesn't end in .exe */
+  strendzap(newargz[1],".exe");
+  for (i = 1; i < argc; i++)
+    newargz[i+1] = xstrdup(argv[i]);
+  newargz[argc+1] = NULL;
 
-	# Get the name of the library we link against.
-	linklib=
-	if test -n "$old_library" &&
-	   { test "$prefer_static_libs" = yes ||
-	     test "$prefer_static_libs,$installed" = "built,no"; }; then
-	  linklib=$old_library
-	else
-	  for l in $old_library $library_names; do
-	    linklib="$l"
-	  done
-	fi
-	if test -z "$linklib"; then
-	  func_fatal_error "cannot find name of link library for \`$lib'"
-	fi
+  for (i=0; i<argc+1; i++)
+  {
+    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
+    ;
+  }
 
-	# This library was specified with -dlopen.
-	if test "$pass" = dlopen; then
-	  if test -z "$libdir"; then
-	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
-	  fi
-	  if test -z "$dlname" ||
-	     test "$dlopen_support" != yes ||
-	     test "$build_libtool_libs" = no; then
-	    # If there is no dlname, no dlopen support or we're linking
-	    # statically, we need to preload.  We also need to preload any
-	    # dependent libraries so libltdl's deplib preloader doesn't
-	    # bomb out in the load deplibs phase.
-	    func_append dlprefiles " $lib $dependency_libs"
-	  else
-	    func_append newdlfiles " $lib"
-	  fi
-	  continue
-	fi # $pass = dlopen
+EOF
 
-	# We need an absolute path.
-	case $ladir in
-	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
-	*)
-	  abs_ladir=`cd "$ladir" && pwd`
-	  if test -z "$abs_ladir"; then
-	    func_warning "cannot determine absolute directory name of \`$ladir'"
-	    func_warning "passing it literally to the linker, although it might fail"
-	    abs_ladir="$ladir"
-	  fi
-	  ;;
-	esac
-	func_basename "$lib"
-	laname="$func_basename_result"
+            case $host_os in
+              mingw*)
+                cat >> $cwrappersource <<EOF
+  execv("$SHELL",(char const **)newargz);
+EOF
+              ;;
+              *)
+                cat >> $cwrappersource <<EOF
+  execv("$SHELL",newargz);
+EOF
+              ;;
+            esac
 
-	# Find the relevant object directory and library name.
-	if test "X$installed" = Xyes; then
-	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    func_warning "library \`$lib' was moved."
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    libdir="$abs_ladir"
-	  else
-	    dir="$lt_sysroot$libdir"
-	    absdir="$lt_sysroot$libdir"
-	  fi
-	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
-	else
-	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    # Remove this search path later
-	    func_append notinst_path " $abs_ladir"
-	  else
-	    dir="$ladir/$objdir"
-	    absdir="$abs_ladir/$objdir"
-	    # Remove this search path later
-	    func_append notinst_path " $abs_ladir"
-	  fi
-	fi # $installed = yes
-	func_stripname 'lib' '.la' "$laname"
-	name=$func_stripname_result
+            cat >> $cwrappersource <<"EOF"
+  return 127;
+}
 
-	# This library was specified with -dlpreopen.
-	if test "$pass" = dlpreopen; then
-	  if test -z "$libdir" && test "$linkmode" = prog; then
-	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
-	  fi
-	  case "$host" in
-	    # special handling for platforms with PE-DLLs.
-	    *cygwin* | *mingw* | *cegcc* )
-	      # Linker will automatically link against shared library if both
-	      # static and shared are present.  Therefore, ensure we extract
-	      # symbols from the import library if a shared library is present
-	      # (otherwise, the dlopen module name will be incorrect).  We do
-	      # this by putting the import library name into $newdlprefiles.
-	      # We recover the dlopen module name by 'saving' the la file
-	      # name in a special purpose variable, and (later) extracting the
-	      # dlname from the la file.
-	      if test -n "$dlname"; then
-	        func_tr_sh "$dir/$linklib"
-	        eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
-	        func_append newdlprefiles " $dir/$linklib"
-	      else
-	        func_append newdlprefiles " $dir/$old_library"
-	        # Keep a list of preopened convenience libraries to check
-	        # that they are being used correctly in the link pass.
-	        test -z "$libdir" && \
-	          func_append dlpreconveniencelibs " $dir/$old_library"
-	      fi
-	    ;;
-	    * )
-	      # Prefer using a static library (so that no silly _DYNAMIC symbols
-	      # are required to link).
-	      if test -n "$old_library"; then
-	        func_append newdlprefiles " $dir/$old_library"
-	        # Keep a list of preopened convenience libraries to check
-	        # that they are being used correctly in the link pass.
-	        test -z "$libdir" && \
-	          func_append dlpreconveniencelibs " $dir/$old_library"
-	      # Otherwise, use the dlname, so that lt_dlopen finds it.
-	      elif test -n "$dlname"; then
-	        func_append newdlprefiles " $dir/$dlname"
-	      else
-	        func_append newdlprefiles " $dir/$linklib"
-	      fi
-	    ;;
-	  esac
-	fi # $pass = dlpreopen
+void *
+xmalloc (size_t num)
+{
+  void * p = (void *) malloc (num);
+  if (!p)
+    lt_fatal ("Memory exhausted");
 
-	if test -z "$libdir"; then
-	  # Link the convenience library
-	  if test "$linkmode" = lib; then
-	    deplibs="$dir/$old_library $deplibs"
-	  elif test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$dir/$old_library $compile_deplibs"
-	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
-	  else
-	    deplibs="$lib $deplibs" # used for prog,scan pass
-	  fi
-	  continue
-	fi
+  return p;
+}
 
+char *
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
+;
+}
 
-	if test "$linkmode" = prog && test "$pass" != link; then
-	  func_append newlib_search_path " $ladir"
-	  deplibs="$lib $deplibs"
+const char *
+base_name (const char *name)
+{
+  const char *base;
 
-	  linkalldeplibs=no
-	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
-	     test "$build_libtool_libs" = no; then
-	    linkalldeplibs=yes
-	  fi
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
+    name += 2;
+#endif
 
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    case $deplib in
-	    -L*) func_stripname '-L' '' "$deplib"
-	         func_resolve_sysroot "$func_stripname_result"
-	         func_append newlib_search_path " $func_resolve_sysroot_result"
-		 ;;
-	    esac
-	    # Need to link against all dependency_libs?
-	    if test "$linkalldeplibs" = yes; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      # Need to hardcode shared library paths
-	      # or/and link against static libraries
-	      newdependency_libs="$deplib $newdependency_libs"
-	    fi
-	    if $opt_preserve_dup_deps ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
-	      esac
-	    fi
-	    func_append tmp_libs " $deplib"
-	  done # for deplib
-	  continue
-	fi # $linkmode = prog...
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return base;
+}
 
-	if test "$linkmode,$pass" = "prog,link"; then
-	  if test -n "$library_names" &&
-	     { { test "$prefer_static_libs" = no ||
-	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
-	       test -z "$old_library"; }; then
-	    # We need to hardcode the library path
-	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
-	      # Make sure the rpath contains only unique directories.
-	      case "$temp_rpath:" in
-	      *"$absdir:"*) ;;
-	      *) func_append temp_rpath "$absdir:" ;;
-	      esac
-	    fi
+int
+check_executable(const char * path)
+{
+  struct stat st;
 
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) func_append compile_rpath " $absdir" ;;
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) func_append finalize_rpath " $libdir" ;;
-	      esac
-	      ;;
-	    esac
-	  fi # $linkmode,$pass = prog,link...
+  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
+  if ((!path) || (!*path))
+    return 0;
 
-	  if test "$alldeplibs" = yes &&
-	     { test "$deplibs_check_method" = pass_all ||
-	       { test "$build_libtool_libs" = yes &&
-		 test -n "$library_names"; }; }; then
-	    # We only need to search for static libraries
-	    continue
-	  fi
-	fi
+  if ((stat (path, &st) >= 0) &&
+      (
+        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
+#if defined (S_IXOTH)
+       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
+#endif
+#if defined (S_IXGRP)
+       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
+#endif
+       ((st.st_mode & S_IXUSR) == S_IXUSR))
+      )
+    return 1;
+  else
+    return 0;
+}
 
-	link_static=no # Whether the deplib will be linked statically
-	use_static_libs=$prefer_static_libs
-	if test "$use_static_libs" = built && test "$installed" = yes; then
-	  use_static_libs=no
-	fi
-	if test -n "$library_names" &&
-	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
-	  case $host in
-	  *cygwin* | *mingw* | *cegcc*)
-	      # No point in relinking DLLs because paths are not encoded
-	      func_append notinst_deplibs " $lib"
-	      need_relink=no
-	    ;;
-	  *)
-	    if test "$installed" = no; then
-	      func_append notinst_deplibs " $lib"
-	      need_relink=yes
-	    fi
-	    ;;
-	  esac
-	  # This is a shared library
+/* Searches for the full path of the wrapper.  Returns
+   newly allocated full path name if found, NULL otherwise */
+char *
+find_executable (const char* wrapper)
+{
+  int has_slash = 0;
+  const char* p;
+  const char* p_next;
+  /* static buffer for getcwd */
+  char tmp[LT_PATHMAX + 1];
+  int tmp_len;
+  char* concat_name;
 
-	  # Warn about portability, can't link against -module's on some
-	  # systems (darwin).  Don't bleat about dlopened modules though!
-	  dlopenmodule=""
-	  for dlpremoduletest in $dlprefiles; do
-	    if test "X$dlpremoduletest" = "X$lib"; then
-	      dlopenmodule="$dlpremoduletest"
-	      break
-	    fi
-	  done
-	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
-	    echo
-	    if test "$linkmode" = prog; then
-	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
-	    else
-	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
-	    fi
-	    $ECHO "*** $linklib is not portable!"
-	  fi
-	  if test "$linkmode" = lib &&
-	     test "$hardcode_into_libs" = yes; then
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) func_append compile_rpath " $absdir" ;;
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) func_append finalize_rpath " $libdir" ;;
-	      esac
-	      ;;
-	    esac
-	  fi
+  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
 
-	  if test -n "$old_archive_from_expsyms_cmds"; then
-	    # figure out the soname
-	    set dummy $library_names
-	    shift
-	    realname="$1"
-	    shift
-	    libname=`eval "\\$ECHO \"$libname_spec\""`
-	    # use dlname if we got it. it's perfectly good, no?
-	    if test -n "$dlname"; then
-	      soname="$dlname"
-	    elif test -n "$soname_spec"; then
-	      # bleh windows
-	      case $host in
-	      *cygwin* | mingw* | *cegcc*)
-	        func_arith $current - $age
-		major=$func_arith_result
-		versuffix="-$major"
-		;;
-	      esac
-	      eval soname=\"$soname_spec\"
-	    else
-	      soname="$realname"
-	    fi
+  if ((wrapper == NULL) || (*wrapper == '\0'))
+    return NULL;
 
-	    # Make a new name for the extract_expsyms_cmds to use
-	    soroot="$soname"
-	    func_basename "$soroot"
-	    soname="$func_basename_result"
-	    func_stripname 'lib' '.dll' "$soname"
-	    newlib=libimp-$func_stripname_result.a
+  /* Absolute path? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
+  {
+    concat_name = xstrdup (wrapper);
+    if (check_executable(concat_name))
+      return concat_name;
+    XFREE(concat_name);
+  }
+  else
+  {
+#endif
+    if (IS_DIR_SEPARATOR (wrapper[0]))
+    {
+      concat_name = xstrdup (wrapper);
+      if (check_executable(concat_name))
+        return concat_name;
+      XFREE(concat_name);
+    }
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  }
+#endif
 
-	    # If the library has no export list, then create one now
-	    if test -f "$output_objdir/$soname-def"; then :
-	    else
-	      func_verbose "extracting exported symbol list from \`$soname'"
-	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
-	    fi
+  for (p = wrapper; *p; p++)
+    if (*p == '/')
+    {
+      has_slash = 1;
+      break;
+    }
+  if (!has_slash)
+  {
+    /* no slashes; search PATH */
+    const char* path = getenv ("PATH");
+    if (path != NULL)
+    {
+      for (p = path; *p; p = p_next)
+      {
+        const char* q;
+        size_t p_len;
+        for (q = p; *q; q++)
+          if (IS_PATH_SEPARATOR(*q))
+            break;
+        p_len = q - p;
+        p_next = (*q == '\0' ? q : q + 1);
+        if (p_len == 0)
+        {
+          /* empty path: current directory */
+          if (getcwd (tmp, LT_PATHMAX) == NULL)
+            lt_fatal ("getcwd failed");
+          tmp_len = strlen(tmp);
+          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
+          memcpy (concat_name, tmp, tmp_len);
+          concat_name[tmp_len] = '/';
+          strcpy (concat_name + tmp_len + 1, wrapper);
+        }
+        else
+        {
+          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
+          memcpy (concat_name, p, p_len);
+          concat_name[p_len] = '/';
+          strcpy (concat_name + p_len + 1, wrapper);
+        }
+        if (check_executable(concat_name))
+          return concat_name;
+        XFREE(concat_name);
+      }
+    }
+    /* not found in PATH; assume curdir */
+  }
+  /* Relative path | not found in path: prepend cwd */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal ("getcwd failed");
+  tmp_len = strlen(tmp);
+  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
+  memcpy (concat_name, tmp, tmp_len);
+  concat_name[tmp_len] = '/';
+  strcpy (concat_name + tmp_len + 1, wrapper);
 
-	    # Create $newlib
-	    if test -f "$output_objdir/$newlib"; then :; else
-	      func_verbose "generating import library for \`$soname'"
-	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
-	    fi
-	    # make sure the library variables are pointing to the new library
-	    dir=$output_objdir
-	    linklib=$newlib
-	  fi # test -n "$old_archive_from_expsyms_cmds"
+  if (check_executable(concat_name))
+    return concat_name;
+  XFREE(concat_name);
+  return NULL;
+}
 
-	  if test "$linkmode" = prog || test "$opt_mode" != relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    lib_linked=yes
-	    case $hardcode_action in
-	    immediate | unsupported)
-	      if test "$hardcode_direct" = no; then
-		add="$dir/$linklib"
-		case $host in
-		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
-		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
-		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
-		    *-*-unixware7*) add_dir="-L$dir" ;;
-		  *-*-darwin* )
-		    # if the lib is a (non-dlopened) module then we can not
-		    # link against it, someone is ignoring the earlier warnings
-		    if /usr/bin/file -L $add 2> /dev/null |
-			 $GREP ": [^:]* bundle" >/dev/null ; then
-		      if test "X$dlopenmodule" != "X$lib"; then
-			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
-			if test -z "$old_library" ; then
-			  echo
-			  echo "*** And there doesn't seem to be a static archive available"
-			  echo "*** The link will probably fail, sorry"
-			else
-			  add="$dir/$old_library"
-			fi
-		      elif test -n "$old_library"; then
-			add="$dir/$old_library"
-		      fi
-		    fi
-		esac
-	      elif test "$hardcode_minus_L" = no; then
-		case $host in
-		*-*-sunos*) add_shlibpath="$dir" ;;
-		esac
-		add_dir="-L$dir"
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = no; then
-		add_shlibpath="$dir"
-		add="-l$name"
-	      else
-		lib_linked=no
-	      fi
-	      ;;
-	    relink)
-	      if test "$hardcode_direct" = yes &&
-	         test "$hardcode_direct_absolute" = no; then
-		add="$dir/$linklib"
-	      elif test "$hardcode_minus_L" = yes; then
-		add_dir="-L$dir"
-		# Try looking first in the location we're being installed to.
-		if test -n "$inst_prefix_dir"; then
-		  case $libdir in
-		    [\\/]*)
-		      func_append add_dir " -L$inst_prefix_dir$libdir"
-		      ;;
-		  esac
-		fi
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = yes; then
-		add_shlibpath="$dir"
-		add="-l$name"
-	      else
-		lib_linked=no
-	      fi
-	      ;;
-	    *) lib_linked=no ;;
-	    esac
+char *
+strendzap(char *str, const char *pat)
+{
+  size_t len, patlen;
 
-	    if test "$lib_linked" != yes; then
-	      func_fatal_configuration "unsupported hardcode properties"
-	    fi
+  assert(str != NULL);
+  assert(pat != NULL);
 
-	    if test -n "$add_shlibpath"; then
-	      case :$compile_shlibpath: in
-	      *":$add_shlibpath:"*) ;;
-	      *) func_append compile_shlibpath "$add_shlibpath:" ;;
-	      esac
-	    fi
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	      if test "$hardcode_direct" != yes &&
-		 test "$hardcode_minus_L" != yes &&
-		 test "$hardcode_shlibpath_var" = yes; then
-		case :$finalize_shlibpath: in
-		*":$libdir:"*) ;;
-		*) func_append finalize_shlibpath "$libdir:" ;;
-		esac
-	      fi
-	    fi
-	  fi
-
-	  if test "$linkmode" = prog || test "$opt_mode" = relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    # Finalize command for both is simple: just hardcode it.
-	    if test "$hardcode_direct" = yes &&
-	       test "$hardcode_direct_absolute" = no; then
-	      add="$libdir/$linklib"
-	    elif test "$hardcode_minus_L" = yes; then
-	      add_dir="-L$libdir"
-	      add="-l$name"
-	    elif test "$hardcode_shlibpath_var" = yes; then
-	      case :$finalize_shlibpath: in
-	      *":$libdir:"*) ;;
-	      *) func_append finalize_shlibpath "$libdir:" ;;
-	      esac
-	      add="-l$name"
-	    elif test "$hardcode_automatic" = yes; then
-	      if test -n "$inst_prefix_dir" &&
-		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
-		add="$inst_prefix_dir$libdir/$linklib"
-	      else
-		add="$libdir/$linklib"
-	      fi
-	    else
-	      # We cannot seem to hardcode it, guess we'll fake it.
-	      add_dir="-L$libdir"
-	      # Try looking first in the location we're being installed to.
-	      if test -n "$inst_prefix_dir"; then
-		case $libdir in
-		  [\\/]*)
-		    func_append add_dir " -L$inst_prefix_dir$libdir"
-		    ;;
-		esac
-	      fi
-	      add="-l$name"
-	    fi
-
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
-	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	    fi
-	  fi
-	elif test "$linkmode" = prog; then
-	  # Here we assume that one of hardcode_direct or hardcode_minus_L
-	  # is not unsupported.  This is valid on all known static and
-	  # shared platforms.
-	  if test "$hardcode_direct" != unsupported; then
-	    test -n "$old_library" && linklib="$old_library"
-	    compile_deplibs="$dir/$linklib $compile_deplibs"
-	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
-	  else
-	    compile_deplibs="-l$name -L$dir $compile_deplibs"
-	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
-	  fi
-	elif test "$build_libtool_libs" = yes; then
-	  # Not a shared library
-	  if test "$deplibs_check_method" != pass_all; then
-	    # We're trying link a shared library against a static one
-	    # but the system doesn't support it.
-
-	    # Just print a warning and add the library to dependency_libs so
-	    # that the program can be linked against the static library.
-	    echo
-	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
-	    echo "*** I have the capability to make that library automatically link in when"
-	    echo "*** you link to this library.  But I can only do this if you have a"
-	    echo "*** shared version of the library, which you do not appear to have."
-	    if test "$module" = yes; then
-	      echo "*** But as you try to build a module library, libtool will still create "
-	      echo "*** a static module, that should work as long as the dlopening application"
-	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
-	      if test -z "$global_symbol_pipe"; then
-		echo
-		echo "*** However, this would only work if libtool was able to extract symbol"
-		echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-		echo "*** not find such a program.  So, this module is probably useless."
-		echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	      fi
-	      if test "$build_old_libs" = no; then
-		build_libtool_libs=module
-		build_old_libs=yes
-	      else
-		build_libtool_libs=no
-	      fi
-	    fi
-	  else
-	    deplibs="$dir/$old_library $deplibs"
-	    link_static=yes
-	  fi
-	fi # link shared/static library?
-
-	if test "$linkmode" = lib; then
-	  if test -n "$dependency_libs" &&
-	     { test "$hardcode_into_libs" != yes ||
-	       test "$build_old_libs" = yes ||
-	       test "$link_static" = yes; }; then
-	    # Extract -R from dependency_libs
-	    temp_deplibs=
-	    for libdir in $dependency_libs; do
-	      case $libdir in
-	      -R*) func_stripname '-R' '' "$libdir"
-	           temp_xrpath=$func_stripname_result
-		   case " $xrpath " in
-		   *" $temp_xrpath "*) ;;
-		   *) func_append xrpath " $temp_xrpath";;
-		   esac;;
-	      *) func_append temp_deplibs " $libdir";;
-	      esac
-	    done
-	    dependency_libs="$temp_deplibs"
-	  fi
-
-	  func_append newlib_search_path " $absdir"
-	  # Link against this library
-	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-	  # ... and its dependency_libs
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    newdependency_libs="$deplib $newdependency_libs"
-	    case $deplib in
-              -L*) func_stripname '-L' '' "$deplib"
-                   func_resolve_sysroot "$func_stripname_result";;
-              *) func_resolve_sysroot "$deplib" ;;
-            esac
-	    if $opt_preserve_dup_deps ; then
-	      case "$tmp_libs " in
-	      *" $func_resolve_sysroot_result "*)
-                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
-	      esac
-	    fi
-	    func_append tmp_libs " $func_resolve_sysroot_result"
-	  done
-
-	  if test "$link_all_deplibs" != no; then
-	    # Add the search paths of all dependency libraries
-	    for deplib in $dependency_libs; do
-	      path=
-	      case $deplib in
-	      -L*) path="$deplib" ;;
-	      *.la)
-	        func_resolve_sysroot "$deplib"
-	        deplib=$func_resolve_sysroot_result
-	        func_dirname "$deplib" "" "."
-		dir=$func_dirname_result
-		# We need an absolute path.
-		case $dir in
-		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-		*)
-		  absdir=`cd "$dir" && pwd`
-		  if test -z "$absdir"; then
-		    func_warning "cannot determine absolute directory name of \`$dir'"
-		    absdir="$dir"
-		  fi
-		  ;;
-		esac
-		if $GREP "^installed=no" $deplib > /dev/null; then
-		case $host in
-		*-*-darwin*)
-		  depdepl=
-		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-		  if test -n "$deplibrary_names" ; then
-		    for tmp in $deplibrary_names ; do
-		      depdepl=$tmp
-		    done
-		    if test -f "$absdir/$objdir/$depdepl" ; then
-		      depdepl="$absdir/$objdir/$depdepl"
-		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
-                      if test -z "$darwin_install_name"; then
-                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
-                      fi
-		      func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-		      func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
-		      path=
-		    fi
-		  fi
-		  ;;
-		*)
-		  path="-L$absdir/$objdir"
-		  ;;
-		esac
-		else
-		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		  test -z "$libdir" && \
-		    func_fatal_error "\`$deplib' is not a valid libtool archive"
-		  test "$absdir" != "$libdir" && \
-		    func_warning "\`$deplib' seems to be moved"
-
-		  path="-L$absdir"
-		fi
-		;;
-	      esac
-	      case " $deplibs " in
-	      *" $path "*) ;;
-	      *) deplibs="$path $deplibs" ;;
-	      esac
-	    done
-	  fi # link_all_deplibs != no
-	fi # linkmode = lib
-      done # for deplib in $libs
-      if test "$pass" = link; then
-	if test "$linkmode" = "prog"; then
-	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
-	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
-	else
-	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	fi
-      fi
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
-	# Link the dlpreopened libraries before other libraries
-	for deplib in $save_deplibs; do
-	  deplibs="$deplib $deplibs"
-	done
-      fi
-      if test "$pass" != dlopen; then
-	if test "$pass" != conv; then
-	  # Make sure lib_search_path contains only unique directories.
-	  lib_search_path=
-	  for dir in $newlib_search_path; do
-	    case "$lib_search_path " in
-	    *" $dir "*) ;;
-	    *) func_append lib_search_path " $dir" ;;
-	    esac
-	  done
-	  newlib_search_path=
-	fi
-
-	if test "$linkmode,$pass" != "prog,link"; then
-	  vars="deplibs"
-	else
-	  vars="compile_deplibs finalize_deplibs"
-	fi
-	for var in $vars dependency_libs; do
-	  # Add libraries to $var in reverse order
-	  eval tmp_libs=\"\$$var\"
-	  new_libs=
-	  for deplib in $tmp_libs; do
-	    # FIXME: Pedantically, this is the right thing to do, so
-	    #        that some nasty dependency loop isn't accidentally
-	    #        broken:
-	    #new_libs="$deplib $new_libs"
-	    # Pragmatically, this seems to cause very few problems in
-	    # practice:
-	    case $deplib in
-	    -L*) new_libs="$deplib $new_libs" ;;
-	    -R*) ;;
-	    *)
-	      # And here is the reason: when a library appears more
-	      # than once as an explicit dependence of a library, or
-	      # is implicitly linked in more than once by the
-	      # compiler, it is considered special, and multiple
-	      # occurrences thereof are not removed.  Compare this
-	      # with having the same library being listed as a
-	      # dependency of multiple other libraries: in this case,
-	      # we know (pedantically, we assume) the library does not
-	      # need to be listed more than once, so we keep only the
-	      # last copy.  This is not always right, but it is rare
-	      # enough that we require users that really mean to play
-	      # such unportable linking tricks to link the library
-	      # using -Wl,-lname, so that libtool does not consider it
-	      # for duplicate removal.
-	      case " $specialdeplibs " in
-	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
-	      *)
-		case " $new_libs " in
-		*" $deplib "*) ;;
-		*) new_libs="$deplib $new_libs" ;;
-		esac
-		;;
-	      esac
-	      ;;
-	    esac
-	  done
-	  tmp_libs=
-	  for deplib in $new_libs; do
-	    case $deplib in
-	    -L*)
-	      case " $tmp_libs " in
-	      *" $deplib "*) ;;
-	      *) func_append tmp_libs " $deplib" ;;
-	      esac
-	      ;;
-	    *) func_append tmp_libs " $deplib" ;;
-	    esac
-	  done
-	  eval $var=\"$tmp_libs\"
-	done # for var
-      fi
-      # Last step: remove runtime libs from dependency_libs
-      # (they stay in deplibs)
-      tmp_libs=
-      for i in $dependency_libs ; do
-	case " $predeps $postdeps $compiler_lib_search_path " in
-	*" $i "*)
-	  i=""
-	  ;;
-	esac
-	if test -n "$i" ; then
-	  func_append tmp_libs " $i"
-	fi
-      done
-      dependency_libs=$tmp_libs
-    done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
-    fi
-    if test "$linkmode" = prog || test "$linkmode" = lib; then
-      dlprefiles="$newdlprefiles"
-    fi
-
-    case $linkmode in
-    oldlib)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	func_warning "\`-dlopen' is ignored for archives"
-      fi
-
-      case " $deplibs" in
-      *\ -l* | *\ -L*)
-	func_warning "\`-l' and \`-L' are ignored for archives" ;;
-      esac
-
-      test -n "$rpath" && \
-	func_warning "\`-rpath' is ignored for archives"
-
-      test -n "$xrpath" && \
-	func_warning "\`-R' is ignored for archives"
-
-      test -n "$vinfo" && \
-	func_warning "\`-version-info/-version-number' is ignored for archives"
-
-      test -n "$release" && \
-	func_warning "\`-release' is ignored for archives"
-
-      test -n "$export_symbols$export_symbols_regex" && \
-	func_warning "\`-export-symbols' is ignored for archives"
-
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      func_append objs "$old_deplibs"
-      ;;
-
-    lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case $outputname in
-      lib*)
-	func_stripname 'lib' '.la' "$outputname"
-	name=$func_stripname_result
-	eval shared_ext=\"$shrext_cmds\"
-	eval libname=\"$libname_spec\"
-	;;
-      *)
-	test "$module" = no && \
-	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
-
-	if test "$need_lib_prefix" != no; then
-	  # Add the "lib" prefix for modules if required
-	  func_stripname '' '.la' "$outputname"
-	  name=$func_stripname_result
-	  eval shared_ext=\"$shrext_cmds\"
-	  eval libname=\"$libname_spec\"
-	else
-	  func_stripname '' '.la' "$outputname"
-	  libname=$func_stripname_result
-	fi
-	;;
-      esac
-
-      if test -n "$objs"; then
-	if test "$deplibs_check_method" != pass_all; then
-	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
-	else
-	  echo
-	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
-	  $ECHO "*** objects $objs is not portable!"
-	  func_append libobjs " $objs"
-	fi
-      fi
-
-      test "$dlself" != no && \
-	func_warning "\`-dlopen self' is ignored for libtool libraries"
-
-      set dummy $rpath
-      shift
-      test "$#" -gt 1 && \
-	func_warning "ignoring multiple \`-rpath's for a libtool library"
-
-      install_libdir="$1"
-
-      oldlibs=
-      if test -z "$rpath"; then
-	if test "$build_libtool_libs" = yes; then
-	  # Building a libtool convenience library.
-	  # Some compilers have problems with a `.al' extension so
-	  # convenience libraries should have the same extension an
-	  # archive normally would.
-	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
-	  build_libtool_libs=convenience
-	  build_old_libs=yes
-	fi
-
-	test -n "$vinfo" && \
-	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
-
-	test -n "$release" && \
-	  func_warning "\`-release' is ignored for convenience libraries"
-      else
-
-	# Parse the version information argument.
-	save_ifs="$IFS"; IFS=':'
-	set dummy $vinfo 0 0 0
-	shift
-	IFS="$save_ifs"
-
-	test -n "$7" && \
-	  func_fatal_help "too many parameters to \`-version-info'"
-
-	# convert absolute version numbers to libtool ages
-	# this retains compatibility with .la files and attempts
-	# to make the code below a bit more comprehensible
-
-	case $vinfo_number in
-	yes)
-	  number_major="$1"
-	  number_minor="$2"
-	  number_revision="$3"
-	  #
-	  # There are really only two kinds -- those that
-	  # use the current revision as the major version
-	  # and those that subtract age and use age as
-	  # a minor version.  But, then there is irix
-	  # which has an extra 1 added just for fun
-	  #
-	  case $version_type in
-	  darwin|linux|osf|windows|none)
-	    func_arith $number_major + $number_minor
-	    current=$func_arith_result
-	    age="$number_minor"
-	    revision="$number_revision"
-	    ;;
-	  freebsd-aout|freebsd-elf|qnx|sunos)
-	    current="$number_major"
-	    revision="$number_minor"
-	    age="0"
-	    ;;
-	  irix|nonstopux)
-	    func_arith $number_major + $number_minor
-	    current=$func_arith_result
-	    age="$number_minor"
-	    revision="$number_minor"
-	    lt_irix_increment=no
-	    ;;
-	  esac
-	  ;;
-	no)
-	  current="$1"
-	  revision="$2"
-	  age="$3"
-	  ;;
-	esac
-
-	# Check that each of the things are valid numbers.
-	case $current in
-	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-	*)
-	  func_error "CURRENT \`$current' must be a nonnegative integer"
-	  func_fatal_error "\`$vinfo' is not valid version information"
-	  ;;
-	esac
-
-	case $revision in
-	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-	*)
-	  func_error "REVISION \`$revision' must be a nonnegative integer"
-	  func_fatal_error "\`$vinfo' is not valid version information"
-	  ;;
-	esac
-
-	case $age in
-	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-	*)
-	  func_error "AGE \`$age' must be a nonnegative integer"
-	  func_fatal_error "\`$vinfo' is not valid version information"
-	  ;;
-	esac
-
-	if test "$age" -gt "$current"; then
-	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
-	  func_fatal_error "\`$vinfo' is not valid version information"
-	fi
-
-	# Calculate the version variables.
-	major=
-	versuffix=
-	verstring=
-	case $version_type in
-	none) ;;
-
-	darwin)
-	  # Like Linux, but with the current version available in
-	  # verstring for coding it into the library header
-	  func_arith $current - $age
-	  major=.$func_arith_result
-	  versuffix="$major.$age.$revision"
-	  # Darwin ld doesn't like 0 for these options...
-	  func_arith $current + 1
-	  minor_current=$func_arith_result
-	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
-	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
-	  ;;
-
-	freebsd-aout)
-	  major=".$current"
-	  versuffix=".$current.$revision";
-	  ;;
-
-	freebsd-elf)
-	  major=".$current"
-	  versuffix=".$current"
-	  ;;
-
-	irix | nonstopux)
-	  if test "X$lt_irix_increment" = "Xno"; then
-	    func_arith $current - $age
-	  else
-	    func_arith $current - $age + 1
-	  fi
-	  major=$func_arith_result
-
-	  case $version_type in
-	    nonstopux) verstring_prefix=nonstopux ;;
-	    *)         verstring_prefix=sgi ;;
-	  esac
-	  verstring="$verstring_prefix$major.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$revision
-	  while test "$loop" -ne 0; do
-	    func_arith $revision - $loop
-	    iface=$func_arith_result
-	    func_arith $loop - 1
-	    loop=$func_arith_result
-	    verstring="$verstring_prefix$major.$iface:$verstring"
-	  done
-
-	  # Before this point, $major must not contain `.'.
-	  major=.$major
-	  versuffix="$major.$revision"
-	  ;;
-
-	linux)
-	  func_arith $current - $age
-	  major=.$func_arith_result
-	  versuffix="$major.$age.$revision"
-	  ;;
-
-	osf)
-	  func_arith $current - $age
-	  major=.$func_arith_result
-	  versuffix=".$current.$age.$revision"
-	  verstring="$current.$age.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$age
-	  while test "$loop" -ne 0; do
-	    func_arith $current - $loop
-	    iface=$func_arith_result
-	    func_arith $loop - 1
-	    loop=$func_arith_result
-	    verstring="$verstring:${iface}.0"
-	  done
-
-	  # Make executables depend on our current version.
-	  func_append verstring ":${current}.0"
-	  ;;
-
-	qnx)
-	  major=".$current"
-	  versuffix=".$current"
-	  ;;
-
-	sunos)
-	  major=".$current"
-	  versuffix=".$current.$revision"
-	  ;;
-
-	windows)
-	  # Use '-' rather than '.', since we only want one
-	  # extension on DOS 8.3 filesystems.
-	  func_arith $current - $age
-	  major=$func_arith_result
-	  versuffix="-$major"
-	  ;;
-
-	*)
-	  func_fatal_configuration "unknown library version type \`$version_type'"
-	  ;;
-	esac
-
-	# Clear the version info if we defaulted, and they specified a release.
-	if test -z "$vinfo" && test -n "$release"; then
-	  major=
-	  case $version_type in
-	  darwin)
-	    # we can't check for "0.0" in archive_cmds due to quoting
-	    # problems, so we reset it completely
-	    verstring=
-	    ;;
-	  *)
-	    verstring="0.0"
-	    ;;
-	  esac
-	  if test "$need_version" = no; then
-	    versuffix=
-	  else
-	    versuffix=".0.0"
-	  fi
-	fi
-
-	# Remove version info from name if versioning should be avoided
-	if test "$avoid_version" = yes && test "$need_version" = no; then
-	  major=
-	  versuffix=
-	  verstring=""
-	fi
-
-	# Check to see if the archive will have undefined symbols.
-	if test "$allow_undefined" = yes; then
-	  if test "$allow_undefined_flag" = unsupported; then
-	    func_warning "undefined symbols not allowed in $host shared libraries"
-	    build_libtool_libs=no
-	    build_old_libs=yes
-	  fi
-	else
-	  # Don't allow undefined symbols.
-	  allow_undefined_flag="$no_undefined_flag"
-	fi
-
-      fi
-
-      func_generate_dlsyms "$libname" "$libname" "yes"
-      func_append libobjs " $symfileobj"
-      test "X$libobjs" = "X " && libobjs=
-
-      if test "$opt_mode" != relink; then
-	# Remove our outputs, but don't remove object files since they
-	# may have been created when compiling PIC objects.
-	removelist=
-	tempremovelist=`$ECHO "$output_objdir/*"`
-	for p in $tempremovelist; do
-	  case $p in
-	    *.$objext | *.gcno)
-	       ;;
-	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-	       if test "X$precious_files_regex" != "X"; then
-		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
-		 then
-		   continue
-		 fi
-	       fi
-	       func_append removelist " $p"
-	       ;;
-	    *) ;;
-	  esac
-	done
-	test -n "$removelist" && \
-	  func_show_eval "${RM}r \$removelist"
-      fi
-
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-	func_append oldlibs " $output_objdir/$libname.$libext"
-
-	# Transform .lo files to .o files.
-	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
-      fi
-
-      # Eliminate all temporary directories.
-      #for path in $notinst_path; do
-      #	lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
-      #	deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
-      #	dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
-      #done
-
-      if test -n "$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	temp_xrpath=
-	for libdir in $xrpath; do
-	  func_replace_sysroot "$libdir"
-	  func_append temp_xrpath " -R$func_replace_sysroot_result"
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) func_append finalize_rpath " $libdir" ;;
-	  esac
-	done
-	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-	  dependency_libs="$temp_xrpath $dependency_libs"
-	fi
-      fi
-
-      # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
-      dlfiles=
-      for lib in $old_dlfiles; do
-	case " $dlprefiles $dlfiles " in
-	*" $lib "*) ;;
-	*) func_append dlfiles " $lib" ;;
-	esac
-      done
-
-      # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
-      dlprefiles=
-      for lib in $old_dlprefiles; do
-	case "$dlprefiles " in
-	*" $lib "*) ;;
-	*) func_append dlprefiles " $lib" ;;
-	esac
-      done
-
-      if test "$build_libtool_libs" = yes; then
-	if test -n "$rpath"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
-	    # these systems don't actually have a c library (as such)!
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C library is in the System framework
-	    func_append deplibs " System.ltframework"
-	    ;;
-	  *-*-netbsd*)
-	    # Don't link with libc until the a.out ld.so is fixed.
-	    ;;
-	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	    # Do not include libc due to us having libc/libc_r.
-	    ;;
-	  *-*-sco3.2v5* | *-*-sco5v6*)
-	    # Causes problems with __ctype
-	    ;;
-	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-	    # Compiler inserts libc in the correct place for threads to work
-	    ;;
-	  *)
-	    # Add libc to deplibs on all other systems if necessary.
-	    if test "$build_libtool_need_lc" = "yes"; then
-	      func_append deplibs " -lc"
-	    fi
-	    ;;
-	  esac
-	fi
-
-	# Transform deplibs into only deplibs that can be linked in shared.
-	name_save=$name
-	libname_save=$libname
-	release_save=$release
-	versuffix_save=$versuffix
-	major_save=$major
-	# I'm not sure if I'm treating the release correctly.  I think
-	# release should show up in the -l (ie -lgmp5) so we don't want to
-	# add it in twice.  Is that correct?
-	release=""
-	versuffix=""
-	major=""
-	newdeplibs=
-	droppeddeps=no
-	case $deplibs_check_method in
-	pass_all)
-	  # Don't check for shared/static.  Everything works.
-	  # This might be a little naive.  We might want to check
-	  # whether the library exists or not.  But this is on
-	  # osf3 & osf4 and I'm not really sure... Just
-	  # implementing what was already the behavior.
-	  newdeplibs=$deplibs
-	  ;;
-	test_compile)
-	  # This code stresses the "libraries are programs" paradigm to its
-	  # limits. Maybe even breaks it.  We compile a program, linking it
-	  # against the deplibs as a proxy for the library.  Then we can check
-	  # whether they linked in statically or dynamically with ldd.
-	  $opt_dry_run || $RM conftest.c
-	  cat > conftest.c <<EOF
-	  int main() { return 0; }
-EOF
-	  $opt_dry_run || $RM conftest
-	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
-	    ldd_output=`ldd conftest`
-	    for i in $deplibs; do
-	      case $i in
-	      -l*)
-		func_stripname -l '' "$i"
-		name=$func_stripname_result
-		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		  case " $predeps $postdeps " in
-		  *" $i "*)
-		    func_append newdeplibs " $i"
-		    i=""
-		    ;;
-		  esac
-		fi
-		if test -n "$i" ; then
-		  libname=`eval "\\$ECHO \"$libname_spec\""`
-		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
-		  set dummy $deplib_matches; shift
-		  deplib_match=$1
-		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		    func_append newdeplibs " $i"
-		  else
-		    droppeddeps=yes
-		    echo
-		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-		    echo "*** I have the capability to make that library automatically link in when"
-		    echo "*** you link to this library.  But I can only do this if you have a"
-		    echo "*** shared version of the library, which I believe you do not have"
-		    echo "*** because a test_compile did reveal that the linker did not use it for"
-		    echo "*** its dynamic dependency list that programs get resolved with at runtime."
-		  fi
-		fi
-		;;
-	      *)
-		func_append newdeplibs " $i"
-		;;
-	      esac
-	    done
-	  else
-	    # Error occurred in the first compile.  Let's try to salvage
-	    # the situation: Compile a separate program for each library.
-	    for i in $deplibs; do
-	      case $i in
-	      -l*)
-		func_stripname -l '' "$i"
-		name=$func_stripname_result
-		$opt_dry_run || $RM conftest
-		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
-		  ldd_output=`ldd conftest`
-		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		    case " $predeps $postdeps " in
-		    *" $i "*)
-		      func_append newdeplibs " $i"
-		      i=""
-		      ;;
-		    esac
-		  fi
-		  if test -n "$i" ; then
-		    libname=`eval "\\$ECHO \"$libname_spec\""`
-		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
-		    set dummy $deplib_matches; shift
-		    deplib_match=$1
-		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		      func_append newdeplibs " $i"
-		    else
-		      droppeddeps=yes
-		      echo
-		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-		      echo "*** I have the capability to make that library automatically link in when"
-		      echo "*** you link to this library.  But I can only do this if you have a"
-		      echo "*** shared version of the library, which you do not appear to have"
-		      echo "*** because a test_compile did reveal that the linker did not use this one"
-		      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
-		    fi
-		  fi
-		else
-		  droppeddeps=yes
-		  echo
-		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
-		  echo "*** make it link in!  You will probably need to install it or some"
-		  echo "*** library that it depends on before this library will be fully"
-		  echo "*** functional.  Installing it before continuing would be even better."
-		fi
-		;;
-	      *)
-		func_append newdeplibs " $i"
-		;;
-	      esac
-	    done
-	  fi
-	  ;;
-	file_magic*)
-	  set dummy $deplibs_check_method; shift
-	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    case $a_deplib in
-	    -l*)
-	      func_stripname -l '' "$a_deplib"
-	      name=$func_stripname_result
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  func_append newdeplibs " $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval "\\$ECHO \"$libname_spec\""`
-		if test -n "$file_magic_glob"; then
-		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
-		else
-		  libnameglob=$libname
-		fi
-		test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  if test "$want_nocaseglob" = yes; then
-		    shopt -s nocaseglob
-		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
-		    $nocaseglob
-		  else
-		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
-		  fi
-		  for potent_lib in $potential_libs; do
-		      # Follow soft links.
-		      if ls -lLd "$potent_lib" 2>/dev/null |
-			 $GREP " -> " >/dev/null; then
-			continue
-		      fi
-		      # The statement above tries to avoid entering an
-		      # endless loop below, in case of cyclic links.
-		      # We might still enter an endless loop, since a link
-		      # loop can be closed while we follow links,
-		      # but so what?
-		      potlib="$potent_lib"
-		      while test -h "$potlib" 2>/dev/null; do
-			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
-			case $potliblink in
-			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-			*) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
-			esac
-		      done
-		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
-			 $SED -e 10q |
-			 $EGREP "$file_magic_regex" > /dev/null; then
-			func_append newdeplibs " $a_deplib"
-			a_deplib=""
-			break 2
-		      fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		echo
-		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-		echo "*** I have the capability to make that library automatically link in when"
-		echo "*** you link to this library.  But I can only do this if you have a"
-		echo "*** shared version of the library, which you do not appear to have"
-		echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
-		else
-		  $ECHO "*** with $libname and none of the candidates passed a file format test"
-		  $ECHO "*** using a file magic. Last file checked: $potlib"
-		fi
-	      fi
-	      ;;
-	    *)
-	      # Add a -L argument.
-	      func_append newdeplibs " $a_deplib"
-	      ;;
-	    esac
-	  done # Gone through all deplibs.
-	  ;;
-	match_pattern*)
-	  set dummy $deplibs_check_method; shift
-	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    case $a_deplib in
-	    -l*)
-	      func_stripname -l '' "$a_deplib"
-	      name=$func_stripname_result
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  func_append newdeplibs " $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval "\\$ECHO \"$libname_spec\""`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		    potlib="$potent_lib" # see symlink-check above in file_magic test
-		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
-		       $EGREP "$match_pattern_regex" > /dev/null; then
-		      func_append newdeplibs " $a_deplib"
-		      a_deplib=""
-		      break 2
-		    fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		echo
-		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-		echo "*** I have the capability to make that library automatically link in when"
-		echo "*** you link to this library.  But I can only do this if you have a"
-		echo "*** shared version of the library, which you do not appear to have"
-		echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
-		else
-		  $ECHO "*** with $libname and none of the candidates passed a file format test"
-		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
-		fi
-	      fi
-	      ;;
-	    *)
-	      # Add a -L argument.
-	      func_append newdeplibs " $a_deplib"
-	      ;;
-	    esac
-	  done # Gone through all deplibs.
-	  ;;
-	none | unknown | *)
-	  newdeplibs=""
-	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
-	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	    for i in $predeps $postdeps ; do
-	      # can't use Xsed below, because $i might contain '/'
-	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
-	    done
-	  fi
-	  case $tmp_deplibs in
-	  *[!\	\ ]*)
-	    echo
-	    if test "X$deplibs_check_method" = "Xnone"; then
-	      echo "*** Warning: inter-library dependencies are not supported in this platform."
-	    else
-	      echo "*** Warning: inter-library dependencies are not known to be supported."
-	    fi
-	    echo "*** All declared inter-library dependencies are being dropped."
-	    droppeddeps=yes
-	    ;;
-	  esac
-	  ;;
-	esac
-	versuffix=$versuffix_save
-	major=$major_save
-	release=$release_save
-	libname=$libname_save
-	name=$name_save
+  len = strlen(str);
+  patlen = strlen(pat);
 
-	case $host in
-	*-*-rhapsody* | *-*-darwin1.[012])
-	  # On Rhapsody replace the C library with the System framework
-	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
-	  ;;
-	esac
+  if (patlen <= len)
+  {
+    str += len - patlen;
+    if (strcmp(str, pat) == 0)
+      *str = '\0';
+  }
+  return str;
+}
 
-	if test "$droppeddeps" = yes; then
-	  if test "$module" = yes; then
-	    echo
-	    echo "*** Warning: libtool could not satisfy all declared inter-library"
-	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
-	    echo "*** a static module, that should work as long as the dlopening"
-	    echo "*** application is linked with the -dlopen flag."
-	    if test -z "$global_symbol_pipe"; then
-	      echo
-	      echo "*** However, this would only work if libtool was able to extract symbol"
-	      echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-	      echo "*** not find such a program.  So, this module is probably useless."
-	      echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	    fi
-	    if test "$build_old_libs" = no; then
-	      oldlibs="$output_objdir/$libname.$libext"
-	      build_libtool_libs=module
-	      build_old_libs=yes
-	    else
-	      build_libtool_libs=no
-	    fi
-	  else
-	    echo "*** The inter-library dependencies that have been dropped here will be"
-	    echo "*** automatically added whenever a program is linked with this library"
-	    echo "*** or is declared to -dlopen it."
+static void
+lt_error_core (int exit_status, const char * mode,
+          const char * message, va_list ap)
+{
+  fprintf (stderr, "%s: %s: ", program_name, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
 
-	    if test "$allow_undefined" = no; then
-	      echo
-	      echo "*** Since this library must not contain undefined symbols,"
-	      echo "*** because either the platform does not support them or"
-	      echo "*** it was explicitly requested with -no-undefined,"
-	      echo "*** libtool will only create a static version of it."
-	      if test "$build_old_libs" = no; then
-		oldlibs="$output_objdir/$libname.$libext"
-		build_libtool_libs=module
-		build_old_libs=yes
-	      else
-		build_libtool_libs=no
-	      fi
-	    fi
-	  fi
-	fi
-	# Done checking deplibs!
-	deplibs=$newdeplibs
-      fi
-      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
-      case $host in
-	*-*-darwin*)
-	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	  new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	  deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	  ;;
-      esac
+  if (exit_status >= 0)
+    exit (exit_status);
+}
 
-      # move library search paths that coincide with paths to not yet
-      # installed libraries to the beginning of the library search list
-      new_libs=
-      for path in $notinst_path; do
-	case " $new_libs " in
-	*" -L$path/$objdir "*) ;;
-	*)
-	  case " $deplibs " in
-	  *" -L$path/$objdir "*)
-	    func_append new_libs " -L$path/$objdir" ;;
-	  esac
-	  ;;
-	esac
-      done
-      for deplib in $deplibs; do
-	case $deplib in
-	-L*)
-	  case " $new_libs " in
-	  *" $deplib "*) ;;
-	  *) func_append new_libs " $deplib" ;;
-	  esac
-	  ;;
-	*) func_append new_libs " $deplib" ;;
-	esac
-      done
-      deplibs="$new_libs"
+void
+lt_fatal (const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  va_end (ap);
+}
+EOF
+          # we should really use a build-platform specific compiler
+          # here, but OTOH, the wrappers (shell script and this C one)
+          # are only useful if you want to execute the "real" binary.
+          # Since the "real" binary is built for $host, then this
+          # wrapper might as well be built for $host, too.
+          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
+          ;;
+        esac
+        $rm $output
+        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
+
+	$echo > $output "\
+#! $SHELL
 
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
 
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-	if test "$hardcode_into_libs" = yes; then
-	  # Hardcode the library paths
-	  hardcode_libdirs=
-	  dep_rpath=
-	  rpath="$finalize_rpath"
-	  test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
-	  for libdir in $rpath; do
-	    if test -n "$hardcode_libdir_flag_spec"; then
-	      if test -n "$hardcode_libdir_separator"; then
-		func_replace_sysroot "$libdir"
-		libdir=$func_replace_sysroot_result
-		if test -z "$hardcode_libdirs"; then
-		  hardcode_libdirs="$libdir"
-		else
-		  # Just accumulate the unique libdirs.
-		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		    ;;
-		  *)
-		    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
-		    ;;
-		  esac
-		fi
-	      else
-		eval flag=\"$hardcode_libdir_flag_spec\"
-		func_append dep_rpath " $flag"
-	      fi
-	    elif test -n "$runpath_var"; then
-	      case "$perm_rpath " in
-	      *" $libdir "*) ;;
-	      *) func_append perm_rpath " $libdir" ;;
-	      esac
-	    fi
-	  done
-	  # Substitute the hardcoded libdirs into the rpath.
-	  if test -n "$hardcode_libdir_separator" &&
-	     test -n "$hardcode_libdirs"; then
-	    libdir="$hardcode_libdirs"
-	    if test -n "$hardcode_libdir_flag_spec_ld"; then
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
-	    else
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-	    fi
-	  fi
-	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
-	    # We should set the runpath_var.
-	    rpath=
-	    for dir in $perm_rpath; do
-	      func_append rpath "$dir:"
-	    done
-	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
-	  fi
-	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-	fi
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
 
-	shlibpath="$finalize_shlibpath"
-	test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-	if test -n "$shlibpath"; then
-	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-	fi
+# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
 
-	# Get the real and link names of the library.
-	eval shared_ext=\"$shrext_cmds\"
-	eval library_names=\"$library_names_spec\"
-	set dummy $library_names
-	shift
-	realname="$1"
-	shift
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
-	if test -n "$soname_spec"; then
-	  eval soname=\"$soname_spec\"
-	else
-	  soname="$realname"
-	fi
-	if test -z "$dlname"; then
-	  dlname=$soname
-	fi
+relink_command=\"$relink_command\"
 
-	lib="$output_objdir/$realname"
-	linknames=
-	for link
-	do
-	  func_append linknames " $link"
-	done
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variable:
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$echo are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    echo=\"$qecho\"
+    file=\"\$0\"
+    # Make sure echo works.
+    if test \"X\$1\" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+      # Yippee, \$echo works!
+      :
+    else
+      # Restart under the correct shell, and then maybe \$echo will work.
+      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+    fi
+  fi\
+"
+	$echo >> $output "\
 
-	# Use standard objects if they are pic
-	test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
-	test "X$libobjs" = "X " && libobjs=
+  # Find the directory that this script lives in.
+  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 
-	delfiles=
-	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
-	  export_symbols="$output_objdir/$libname.uexp"
-	  func_append delfiles " $export_symbols"
-	fi
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
 
-	orig_export_symbols=
-	case $host_os in
-	cygwin* | mingw* | cegcc*)
-	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
-	    # exporting using user supplied symfile
-	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
-	      # and it's NOT already a .def file. Must figure out
-	      # which of the given symbols are data symbols and tag
-	      # them as such. So, trigger use of export_symbols_cmds.
-	      # export_symbols gets reassigned inside the "prepare
-	      # the list of exported symbols" if statement, so the
-	      # include_expsyms logic still works.
-	      orig_export_symbols="$export_symbols"
-	      export_symbols=
-	      always_export_symbols=yes
-	    fi
-	  fi
-	  ;;
-	esac
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
 
-	# Prepare the list of exported symbols
-	if test -z "$export_symbols"; then
-	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-	    func_verbose "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $opt_dry_run || $RM $export_symbols
-	    cmds=$export_symbols_cmds
-	    save_ifs="$IFS"; IFS='~'
-	    for cmd1 in $cmds; do
-	      IFS="$save_ifs"
-	      # Take the normal branch if the nm_file_list_spec branch
-	      # doesn't work or if tool conversion is not needed.
-	      case $nm_file_list_spec~$to_tool_file_cmd in
-		*~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
-		  try_normal_branch=yes
-		  eval cmd=\"$cmd1\"
-		  func_len " $cmd"
-		  len=$func_len_result
-		  ;;
-		*)
-		  try_normal_branch=no
-		  ;;
-	      esac
-	      if test "$try_normal_branch" = yes \
-		 && { test "$len" -lt "$max_cmd_len" \
-		      || test "$max_cmd_len" -le -1; }
-	      then
-		func_show_eval "$cmd" 'exit $?'
-		skipped_export=false
-	      elif test -n "$nm_file_list_spec"; then
-		func_basename "$output"
-		output_la=$func_basename_result
-		save_libobjs=$libobjs
-		save_output=$output
-		output=${output_objdir}/${output_la}.nm
-		func_to_tool_file "$output"
-		libobjs=$nm_file_list_spec$func_to_tool_file_result
-		func_append delfiles " $output"
-		func_verbose "creating $NM input file list: $output"
-		for obj in $save_libobjs; do
-		  func_to_tool_file "$obj"
-		  $ECHO "$func_to_tool_file_result"
-		done > "$output"
-		eval cmd=\"$cmd1\"
-		func_show_eval "$cmd" 'exit $?'
-		output=$save_output
-		libobjs=$save_libobjs
-		skipped_export=false
-	      else
-		# The command line is too long to execute in one step.
-		func_verbose "using reloadable object file for export list..."
-		skipped_export=:
-		# Break out early, otherwise skipped_export may be
-		# set to false by a later but shorter cmd.
-		break
-	      fi
-	    done
-	    IFS="$save_ifs"
-	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
-	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
-	    fi
-	  fi
-	fi
+    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+  done
 
-	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  tmp_export_symbols="$export_symbols"
-	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
-	fi
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
 
-	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
-	  # The given exports_symbols file has to be filtered, so filter it.
-	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
-	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
-	  # 's' commands which not all seds can handle. GNU sed should be fine
-	  # though. Also, the filter scales superlinearly with the number of
-	  # global variables. join(1) would be nice here, but unfortunately
-	  # isn't a blessed tool.
-	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-	  func_append delfiles " $export_symbols $output_objdir/$libname.filter"
-	  export_symbols=$output_objdir/$libname.def
-	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
-	fi
+	if test "$fast_install" = yes; then
+	  $echo >> $output "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
 
-	tmp_deplibs=
-	for test_deplib in $deplibs; do
-	  case " $convenience " in
-	  *" $test_deplib "*) ;;
-	  *)
-	    func_append tmp_deplibs " $test_deplib"
-	    ;;
-	  esac
-	done
-	deplibs="$tmp_deplibs"
+  if test ! -f \"\$progdir/\$program\" || \\
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
 
-	if test -n "$convenience"; then
-	  if test -n "$whole_archive_flag_spec" &&
-	    test "$compiler_needs_object" = yes &&
-	    test -z "$libobjs"; then
-	    # extract the archives, so we have objects to list.
-	    # TODO: could optimize this to just extract one archive.
-	    whole_archive_flag_spec=
-	  fi
-	  if test -n "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	    test "X$libobjs" = "X " && libobjs=
-	  else
-	    gentop="$output_objdir/${outputname}x"
-	    func_append generated " $gentop"
+    file=\"\$\$-\$program\"
 
-	    func_extract_archives $gentop $convenience
-	    func_append libobjs " $func_extract_archives_result"
-	    test "X$libobjs" = "X " && libobjs=
-	  fi
-	fi
+    if test ! -d \"\$progdir\"; then
+      $mkdir \"\$progdir\"
+    else
+      $rm \"\$progdir/\$file\"
+    fi"
 
-	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-	  eval flag=\"$thread_safe_flag_spec\"
-	  func_append linker_flags " $flag"
-	fi
+	  $echo >> $output "\
 
-	# Make a backup of the uninstalled library when relinking
-	if test "$opt_mode" = relink; then
-	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
-	fi
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+	$echo \"\$relink_command_output\" >&2
+	$rm \"\$progdir/\$file\"
+	exit $EXIT_FAILURE
+      fi
+    fi
 
-	# Do each of the archive commands.
-	if test "$module" = yes && test -n "$module_cmds" ; then
-	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-	    eval test_cmds=\"$module_expsym_cmds\"
-	    cmds=$module_expsym_cmds
-	  else
-	    eval test_cmds=\"$module_cmds\"
-	    cmds=$module_cmds
-	  fi
+    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $rm \"\$progdir/\$program\";
+      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $rm \"\$progdir/\$file\"
+  fi"
 	else
-	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	    eval test_cmds=\"$archive_expsym_cmds\"
-	    cmds=$archive_expsym_cmds
-	  else
-	    eval test_cmds=\"$archive_cmds\"
-	    cmds=$archive_cmds
-	  fi
+	  $echo >> $output "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
 	fi
 
-	if test "X$skipped_export" != "X:" &&
-	   func_len " $test_cmds" &&
-	   len=$func_len_result &&
-	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  :
-	else
-	  # The command line is too long to link in one step, link piecewise
-	  # or, if using GNU ld and skipped_export is not :, use a linker
-	  # script.
+	$echo >> $output "\
 
-	  # Save the value of $output and $libobjs because we want to
-	  # use them later.  If we have whole_archive_flag_spec, we
-	  # want to use save_libobjs as it was before
-	  # whole_archive_flag_spec was expanded, because we can't
-	  # assume the linker understands whole_archive_flag_spec.
-	  # This may have to be revisited, in case too many
-	  # convenience libraries get linked in and end up exceeding
-	  # the spec.
-	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	  fi
-	  save_output=$output
-	  func_basename "$output"
-	  output_la=$func_basename_result
+  if test -f \"\$progdir/\$program\"; then"
 
-	  # Clear the reloadable object creation command queue and
-	  # initialize k to one.
-	  test_cmds=
-	  concat_cmds=
-	  objlist=
-	  last_robj=
-	  k=1
+	# Export our shlibpath_var if we have one.
+	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	  $echo >> $output "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
 
-	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
-	    output=${output_objdir}/${output_la}.lnkscript
-	    func_verbose "creating GNU ld script: $output"
-	    echo 'INPUT (' > $output
-	    for obj in $save_libobjs
-	    do
-	      func_to_tool_file "$obj"
-	      $ECHO "$func_to_tool_file_result" >> $output
-	    done
-	    echo ')' >> $output
-	    func_append delfiles " $output"
-	    func_to_tool_file "$output"
-	    output=$func_to_tool_file_result
-	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
-	    output=${output_objdir}/${output_la}.lnk
-	    func_verbose "creating linker input file list: $output"
-	    : > $output
-	    set x $save_libobjs
-	    shift
-	    firstobj=
-	    if test "$compiler_needs_object" = yes; then
-	      firstobj="$1 "
-	      shift
-	    fi
-	    for obj
-	    do
-	      func_to_tool_file "$obj"
-	      $ECHO "$func_to_tool_file_result" >> $output
-	    done
-	    func_append delfiles " $output"
-	    func_to_tool_file "$output"
-	    output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
-	  else
-	    if test -n "$save_libobjs"; then
-	      func_verbose "creating reloadable object files..."
-	      output=$output_objdir/$output_la-${k}.$objext
-	      eval test_cmds=\"$reload_cmds\"
-	      func_len " $test_cmds"
-	      len0=$func_len_result
-	      len=$len0
-
-	      # Loop over the list of objects to be linked.
-	      for obj in $save_libobjs
-	      do
-		func_len " $obj"
-		func_arith $len + $func_len_result
-		len=$func_arith_result
-		if test "X$objlist" = X ||
-		   test "$len" -lt "$max_cmd_len"; then
-		  func_append objlist " $obj"
-		else
-		  # The command $test_cmds is almost too long, add a
-		  # command to the queue.
-		  if test "$k" -eq 1 ; then
-		    # The first file doesn't have a previous command to add.
-		    reload_objs=$objlist
-		    eval concat_cmds=\"$reload_cmds\"
-		  else
-		    # All subsequent reloadable object files will link in
-		    # the last one created.
-		    reload_objs="$objlist $last_robj"
-		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
-		  fi
-		  last_robj=$output_objdir/$output_la-${k}.$objext
-		  func_arith $k + 1
-		  k=$func_arith_result
-		  output=$output_objdir/$output_la-${k}.$objext
-		  objlist=" $obj"
-		  func_len " $last_robj"
-		  func_arith $len0 + $func_len_result
-		  len=$func_arith_result
-		fi
-	      done
-	      # Handle the remaining objects by creating one last
-	      # reloadable object file.  All subsequent reloadable object
-	      # files will link in the last one created.
-	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      reload_objs="$objlist $last_robj"
-	      eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
-	      if test -n "$last_robj"; then
-	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
-	      fi
-	      func_append delfiles " $output"
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
 
-	    else
-	      output=
-	    fi
+    export $shlibpath_var
+"
+	fi
+
+	# fixup the dll searchpath if we need to.
+	if test -n "$dllsearchpath"; then
+	  $echo >> $output "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
+	$echo >> $output "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+"
+	case $host in
+	# Backslashes separate directories on plain windows
+	*-*-mingw | *-*-os2*)
+	  $echo >> $output "\
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+	  ;;
 
-	    if ${skipped_export-false}; then
-	      func_verbose "generating symbol list for \`$libname.la'"
-	      export_symbols="$output_objdir/$libname.exp"
-	      $opt_dry_run || $RM $export_symbols
-	      libobjs=$output
-	      # Append the command to create the export file.
-	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
-	      if test -n "$last_robj"; then
-		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
-	      fi
-	    fi
+	*)
+	  $echo >> $output "\
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+	  ;;
+	esac
+	$echo >> $output "\
+      \$echo \"\$0: cannot exec \$program \$*\"
+      exit $EXIT_FAILURE
+    fi
+  else
+    # The program doesn't exist.
+    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$echo \"This script is just a wrapper for \$program.\" 1>&2
+    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit $EXIT_FAILURE
+  fi
+fi\
+"
+	chmod +x $output
+      fi
+      exit $EXIT_SUCCESS
+      ;;
+    esac
 
-	    test -n "$save_libobjs" &&
-	      func_verbose "creating a temporary reloadable object file: $output"
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
 
-	    # Loop through the commands generated above and execute them.
-	    save_ifs="$IFS"; IFS='~'
-	    for cmd in $concat_cmds; do
-	      IFS="$save_ifs"
-	      $opt_silent || {
-		  func_quote_for_expand "$cmd"
-		  eval "func_echo $func_quote_for_expand_result"
-	      }
-	      $opt_dry_run || eval "$cmd" || {
-		lt_exit=$?
-
-		# Restore the uninstalled library and exit
-		if test "$opt_mode" = relink; then
-		  ( cd "$output_objdir" && \
-		    $RM "${realname}T" && \
-		    $MV "${realname}U" "$realname" )
-		fi
+      if test "$build_libtool_libs" = convenience; then
+	oldobjs="$libobjs_save"
+	addlibs="$convenience"
+	build_libtool_libs=no
+      else
+	if test "$build_libtool_libs" = module; then
+	  oldobjs="$libobjs_save"
+	  build_libtool_libs=no
+	else
+	  oldobjs="$old_deplibs $non_pic_objects"
+	fi
+	addlibs="$old_convenience"
+      fi
 
-		exit $lt_exit
-	      }
-	    done
-	    IFS="$save_ifs"
+      if test -n "$addlibs"; then
+	gentop="$output_objdir/${outputname}x"
+	generated="$generated $gentop"
 
-	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
-	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
-	    fi
-	  fi
+	func_extract_archives $gentop $addlibs
+	oldobjs="$oldobjs $func_extract_archives_result"
+      fi
 
-          if ${skipped_export-false}; then
-	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	      tmp_export_symbols="$export_symbols"
-	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
-	    fi
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+       cmds=$old_archive_from_new_cmds
+      else
+	# POSIX demands no paths to be encoded in archives.  We have
+	# to avoid creating archives with duplicate basenames if we
+	# might have to extract them afterwards, e.g., when creating a
+	# static archive out of a convenience library, or when linking
+	# the entirety of a libtool archive into another (currently
+	# not supported by libtool).
+	if (for obj in $oldobjs
+	    do
+	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
+	    done | sort | sort -uc >/dev/null 2>&1); then
+	  :
+	else
+	  $echo "copying selected object files to avoid basename conflicts..."
 
-	    if test -n "$orig_export_symbols"; then
-	      # The given exports_symbols file has to be filtered, so filter it.
-	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
-	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
-	      # 's' commands which not all seds can handle. GNU sed should be fine
-	      # though. Also, the filter scales superlinearly with the number of
-	      # global variables. join(1) would be nice here, but unfortunately
-	      # isn't a blessed tool.
-	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-	      func_append delfiles " $export_symbols $output_objdir/$libname.filter"
-	      export_symbols=$output_objdir/$libname.def
-	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+	  if test -z "$gentop"; then
+	    gentop="$output_objdir/${outputname}x"
+	    generated="$generated $gentop"
+
+	    $show "${rm}r $gentop"
+	    $run ${rm}r "$gentop"
+	    $show "$mkdir $gentop"
+	    $run $mkdir "$gentop"
+	    exit_status=$?
+	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
+	      exit $exit_status
 	    fi
 	  fi
 
-	  libobjs=$output
-	  # Restore the value of output.
-	  output=$save_output
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  counter=1
+	  for obj in $save_oldobjs
+	  do
+	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+	    case " $oldobjs " in
+	    " ") oldobjs=$obj ;;
+	    *[\ /]"$objbase "*)
+	      while :; do
+		# Make sure we don't pick an alternate name that also
+		# overlaps.
+		newobj=lt$counter-$objbase
+		counter=`expr $counter + 1`
+		case " $oldobjs " in
+		*[\ /]"$newobj "*) ;;
+		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
+		esac
+	      done
+	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+	      $run ln "$obj" "$gentop/$newobj" ||
+	      $run cp "$obj" "$gentop/$newobj"
+	      oldobjs="$oldobjs $gentop/$newobj"
+	      ;;
+	    *) oldobjs="$oldobjs $obj" ;;
+	    esac
+	  done
+	fi
 
-	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	    test "X$libobjs" = "X " && libobjs=
-	  fi
-	  # Expand the library linking commands again to reset the
-	  # value of $libobjs for piecewise linking.
+	eval cmds=\"$old_archive_cmds\"
 
-	  # Do each of the archive commands.
-	  if test "$module" = yes && test -n "$module_cmds" ; then
-	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-	      cmds=$module_expsym_cmds
+	if len=`expr "X$cmds" : ".*"` &&
+	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  cmds=$old_archive_cmds
+	else
+	  # the command line is too long to link in one step, link in parts
+	  $echo "using piecewise archive linking..."
+	  save_RANLIB=$RANLIB
+	  RANLIB=:
+	  objlist=
+	  concat_cmds=
+	  save_oldobjs=$oldobjs
+
+	  # Is there a better way of finding the last object in the list?
+	  for obj in $save_oldobjs
+	  do
+	    last_oldobj=$obj
+	  done
+	  for obj in $save_oldobjs
+	  do
+	    oldobjs="$objlist $obj"
+	    objlist="$objlist $obj"
+	    eval test_cmds=\"$old_archive_cmds\"
+	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+	       test "$len" -le "$max_cmd_len"; then
+	      :
 	    else
-	      cmds=$module_cmds
+	      # the above command should be used before it gets too long
+	      oldobjs=$objlist
+	      if test "$obj" = "$last_oldobj" ; then
+	        RANLIB=$save_RANLIB
+	      fi
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+	      objlist=
 	    fi
+	  done
+	  RANLIB=$save_RANLIB
+	  oldobjs=$objlist
+	  if test "X$oldobjs" = "X" ; then
+	    eval cmds=\"\$concat_cmds\"
 	  else
-	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	      cmds=$archive_expsym_cmds
-	    else
-	      cmds=$archive_cmds
-	    fi
+	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
 	  fi
 	fi
+      fi
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+        eval cmd=\"$cmd\"
+	IFS="$save_ifs"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+    done
 
-	if test -n "$delfiles"; then
-	  # Append the command to remove temporary files to $cmds.
-	  eval cmds=\"\$cmds~\$RM $delfiles\"
-	fi
+    if test -n "$generated"; then
+      $show "${rm}r$generated"
+      $run ${rm}r$generated
+    fi
 
-	# Add any objects from preloaded convenience libraries
-	if test -n "$dlprefiles"; then
-	  gentop="$output_objdir/${outputname}x"
-	  func_append generated " $gentop"
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      $show "creating $output"
 
-	  func_extract_archives $gentop $dlprefiles
-	  func_append libobjs " $func_extract_archives_result"
-	  test "X$libobjs" = "X " && libobjs=
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+	if eval test -z \"\${$var+set}\"; then
+	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+	elif eval var_value=\$$var; test -z "$var_value"; then
+	  relink_command="$var=; export $var; $relink_command"
+	else
+	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
 	fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
+      if test "$hardcode_automatic" = yes ; then
+	relink_command=
+      fi
 
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  eval cmd=\"$cmd\"
-	  $opt_silent || {
-	    func_quote_for_expand "$cmd"
-	    eval "func_echo $func_quote_for_expand_result"
-	  }
-	  $opt_dry_run || eval "$cmd" || {
-	    lt_exit=$?
-
-	    # Restore the uninstalled library and exit
-	    if test "$opt_mode" = relink; then
-	      ( cd "$output_objdir" && \
-	        $RM "${realname}T" && \
-		$MV "${realname}U" "$realname" )
-	    fi
-
-	    exit $lt_exit
-	  }
-	done
-	IFS="$save_ifs"
-
-	# Restore the uninstalled library and exit
-	if test "$opt_mode" = relink; then
-	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 
-	  if test -n "$convenience"; then
-	    if test -z "$whole_archive_flag_spec"; then
-	      func_show_eval '${RM}r "$gentop"'
+      # Only create the output if not a dry run.
+      if test -z "$run"; then
+	for installed in no yes; do
+	  if test "$installed" = yes; then
+	    if test -z "$install_libdir"; then
+	      break
 	    fi
+	    output="$output_objdir/$outputname"i
+	    # Replace all uninstalled libtool libraries with the installed ones
+	    newdependency_libs=
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      *.la)
+		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		if test -z "$libdir"; then
+		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+		  exit $EXIT_FAILURE
+		fi
+		newdependency_libs="$newdependency_libs $libdir/$name"
+		;;
+	      *) newdependency_libs="$newdependency_libs $deplib" ;;
+	      esac
+	    done
+	    dependency_libs="$newdependency_libs"
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+	      if test -z "$libdir"; then
+		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+		exit $EXIT_FAILURE
+	      fi
+	      newdlfiles="$newdlfiles $libdir/$name"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+	      if test -z "$libdir"; then
+		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+		exit $EXIT_FAILURE
+	      fi
+	      newdlprefiles="$newdlprefiles $libdir/$name"
+	    done
+	    dlprefiles="$newdlprefiles"
+	  else
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlfiles="$newdlfiles $abs"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlprefiles="$newdlprefiles $abs"
+	    done
+	    dlprefiles="$newdlprefiles"
 	  fi
+	  $rm $output
+	  # place dlname in correct position for cygwin
+	  tdlname=$dlname
+	  case $host,$output,$installed,$module,$dlname in
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	  esac
+	  $echo > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
 
-	  exit $EXIT_SUCCESS
-	fi
+# The name that we can dlopen(3).
+dlname='$tdlname'
 
-	# Create links to the real library.
-	for linkname in $linknames; do
-	  if test "$realname" != "$linkname"; then
-	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
-	  fi
-	done
+# Names of this library.
+library_names='$library_names'
 
-	# If -module or -export-dynamic was specified, set the dlname.
-	if test "$module" = yes || test "$export_dynamic" = yes; then
-	  # On all known operating systems, these are identical.
-	  dlname="$soname"
-	fi
-      fi
-      ;;
+# The name of the static archive.
+old_library='$old_library'
 
-    obj)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	func_warning "\`-dlopen' is ignored for objects"
-      fi
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
 
-      case " $deplibs" in
-      *\ -l* | *\ -L*)
-	func_warning "\`-l' and \`-L' are ignored for objects" ;;
-      esac
+# Is this an already installed library?
+installed=$installed
 
-      test -n "$rpath" && \
-	func_warning "\`-rpath' is ignored for objects"
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
 
-      test -n "$xrpath" && \
-	func_warning "\`-R' is ignored for objects"
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
 
-      test -n "$vinfo" && \
-	func_warning "\`-version-info' is ignored for objects"
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+	  if test "$installed" = no && test "$need_relink" = yes; then
+	    $echo >> $output "\
+relink_command=\"$relink_command\""
+	  fi
+	done
+      fi
 
-      test -n "$release" && \
-	func_warning "\`-release' is ignored for objects"
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
+      ;;
+    esac
+    exit $EXIT_SUCCESS
+    ;;
 
-      case $output in
-      *.lo)
-	test -n "$objs$old_deplibs" && \
-	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
+  # libtool install mode
+  install)
+    modename="$modename: install"
 
-	libobj=$output
-	func_lo2o "$libobj"
-	obj=$func_lo2o_result
-	;;
-      *)
-	libobj=
-	obj="$output"
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+       # Allow the use of GNU shtool's install command.
+       $echo "X$nonopt" | grep shtool > /dev/null; then
+      # Aesthetically quote it.
+      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	arg="\"$arg\""
 	;;
       esac
+      install_prog="$arg "
+      arg="$1"
+      shift
+    else
+      install_prog=
+      arg=$nonopt
+    fi
 
-      # Delete the old objects.
-      $opt_dry_run || $RM $obj $libobj
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+    case $arg in
+    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+      arg="\"$arg\""
+      ;;
+    esac
+    install_prog="$install_prog$arg"
 
-      # Objects from convenience libraries.  This assumes
-      # single-version convenience libraries.  Whenever we create
-      # different ones for PIC/non-PIC, this we'll have to duplicate
-      # the extraction.
-      reload_conv_objs=
-      gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec and hope we can get by with
-      # turning comma into space..
-      wl=
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=no
+    stripme=
+    for arg
+    do
+      if test -n "$dest"; then
+	files="$files $dest"
+	dest=$arg
+	continue
+      fi
 
-      if test -n "$convenience"; then
-	if test -n "$whole_archive_flag_spec"; then
-	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-	  reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+      case $arg in
+      -d) isdir=yes ;;
+      -f) 
+      	case " $install_prog " in
+	*[\\\ /]cp\ *) ;;
+	*) prev=$arg ;;
+	esac
+	;;
+      -g | -m | -o) prev=$arg ;;
+      -s)
+	stripme=" -s"
+	continue
+	;;
+      -*)
+	;;
+      *)
+	# If the previous option needed an argument, then skip it.
+	if test -n "$prev"; then
+	  prev=
 	else
-	  gentop="$output_objdir/${obj}x"
-	  func_append generated " $gentop"
-
-	  func_extract_archives $gentop $convenience
-	  reload_conv_objs="$reload_objs $func_extract_archives_result"
+	  dest=$arg
+	  continue
 	fi
-      fi
-
-      # If we're not building shared, we need to use non_pic_objs
-      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
+	;;
+      esac
 
-      # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+      # Aesthetically quote the argument.
+      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	arg="\"$arg\""
+	;;
+      esac
+      install_prog="$install_prog $arg"
+    done
 
-      output="$obj"
-      func_execute_cmds "$reload_cmds" 'exit $?'
+    if test -z "$install_prog"; then
+      $echo "$modename: you must specify an install program" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
 
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-	if test -n "$gentop"; then
-	  func_show_eval '${RM}r "$gentop"'
-	fi
+    if test -n "$prev"; then
+      $echo "$modename: the \`$prev' option requires an argument" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
 
-	exit $EXIT_SUCCESS
+    if test -z "$files"; then
+      if test -z "$dest"; then
+	$echo "$modename: no file or destination specified" 1>&2
+      else
+	$echo "$modename: you must specify a destination" 1>&2
       fi
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
 
-      if test "$build_libtool_libs" != yes; then
-	if test -n "$gentop"; then
-	  func_show_eval '${RM}r "$gentop"'
-	fi
-
-	# Create an invalid libtool object if no PIC, so that we don't
-	# accidentally link it into a program.
-	# $show "echo timestamp > $libobj"
-	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
-	exit $EXIT_SUCCESS
-      fi
+    # Strip any trailing slash from the destination.
+    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
 
-      if test -n "$pic_flag" || test "$pic_mode" != default; then
-	# Only do commands if we really have different PIC objects.
-	reload_objs="$libobjs $reload_conv_objs"
-	output="$libobj"
-	func_execute_cmds "$reload_cmds" 'exit $?'
-      fi
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=yes
+    if test "$isdir" = yes; then
+      destdir="$dest"
+      destname=
+    else
+      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
+      test "X$destdir" = "X$dest" && destdir=.
+      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
 
-      if test -n "$gentop"; then
-	func_show_eval '${RM}r "$gentop"'
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files
+      if test "$#" -gt 2; then
+	$echo "$modename: \`$dest' is not a directory" 1>&2
+	$echo "$help" 1>&2
+	exit $EXIT_FAILURE
       fi
-
-      exit $EXIT_SUCCESS
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+	case $file in
+	*.lo) ;;
+	*)
+	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+      done
       ;;
+    esac
 
-    prog)
-      case $host in
-	*cygwin*) func_stripname '' '.exe' "$output"
-	          output=$func_stripname_result.exe;;
-      esac
-      test -n "$vinfo" && \
-	func_warning "\`-version-info' is ignored for programs"
-
-      test -n "$release" && \
-	func_warning "\`-release' is ignored for programs"
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
 
-      test "$preload" = yes \
-        && test "$dlopen_support" = unknown \
-	&& test "$dlopen_self" = unknown \
-	&& test "$dlopen_self_static" = unknown && \
-	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
 
-      case $host in
-      *-*-rhapsody* | *-*-darwin1.[012])
-	# On Rhapsody replace the C library is the System framework
-	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
-	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
+      # Do each installation.
+      case $file in
+      *.$libext)
+	# Do the static libraries later.
+	staticlibs="$staticlibs $file"
 	;;
-      esac
 
-      case $host in
-      *-*-darwin*)
-	# Don't allow lazy linking, it breaks C++ global constructors
-	# But is supposedly fixed on 10.4 or later (yay!).
-	if test "$tagname" = CXX ; then
-	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
-	    10.[0123])
-	      func_append compile_command " ${wl}-bind_at_load"
-	      func_append finalize_command " ${wl}-bind_at_load"
-	    ;;
-	  esac
+      *.la)
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
 	fi
-	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
-	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	;;
-      esac
 
+	library_names=
+	old_library=
+	relink_command=
+	# If there is no directory component, then add one.
+	case $file in
+	*/* | *\\*) . $file ;;
+	*) . ./$file ;;
+	esac
 
-      # move library search paths that coincide with paths to not yet
-      # installed libraries to the beginning of the library search list
-      new_libs=
-      for path in $notinst_path; do
-	case " $new_libs " in
-	*" -L$path/$objdir "*) ;;
-	*)
-	  case " $compile_deplibs " in
-	  *" -L$path/$objdir "*)
-	    func_append new_libs " -L$path/$objdir" ;;
+	# Add the libdir to current_libdirs if it is the destination.
+	if test "X$destdir" = "X$libdir"; then
+	  case "$current_libdirs " in
+	  *" $libdir "*) ;;
+	  *) current_libdirs="$current_libdirs $libdir" ;;
 	  esac
-	  ;;
-	esac
-      done
-      for deplib in $compile_deplibs; do
-	case $deplib in
-	-L*)
-	  case " $new_libs " in
-	  *" $deplib "*) ;;
-	  *) func_append new_libs " $deplib" ;;
+	else
+	  # Note the libdir as a future libdir.
+	  case "$future_libdirs " in
+	  *" $libdir "*) ;;
+	  *) future_libdirs="$future_libdirs $libdir" ;;
 	  esac
-	  ;;
-	*) func_append new_libs " $deplib" ;;
-	esac
-      done
-      compile_deplibs="$new_libs"
-
+	fi
 
-      func_append compile_command " $compile_deplibs"
-      func_append finalize_command " $finalize_deplibs"
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
+	test "X$dir" = "X$file/" && dir=
+	dir="$dir$objdir"
 
-      if test -n "$rpath$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	for libdir in $rpath $xrpath; do
-	  # This is the magic to use -rpath.
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) func_append finalize_rpath " $libdir" ;;
-	  esac
-	done
-      fi
+	if test -n "$relink_command"; then
+	  # Determine the prefix the user has applied to our future dir.
+	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
 
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
+	  # Don't allow the user to place us outside of our expected
+	  # location b/c this prevents finding dependent libraries that
+	  # are installed to the same prefix.
+	  # At present, this check doesn't affect windows .dll's that
+	  # are installed into $libdir/../bin (currently, that works fine)
+	  # but it's something to keep an eye on.
+	  if test "$inst_prefix_dir" = "$destdir"; then
+	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+
+	  if test -n "$inst_prefix_dir"; then
+	    # Stick the inst_prefix_dir data into the link command.
+	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
 	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    func_append rpath " $flag"
+	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
 	  fi
-	elif test -n "$runpath_var"; then
-	  case "$perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) func_append perm_rpath " $libdir" ;;
-	  esac
-	fi
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
-	  case :$dllsearchpath: in
-	  *":$libdir:"*) ;;
-	  ::) dllsearchpath=$libdir;;
-	  *) func_append dllsearchpath ":$libdir";;
-	  esac
-	  case :$dllsearchpath: in
-	  *":$testbindir:"*) ;;
-	  ::) dllsearchpath=$testbindir;;
-	  *) func_append dllsearchpath ":$testbindir";;
-	  esac
-	  ;;
-	esac
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
 
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
+	  $echo "$modename: warning: relinking \`$file'" 1>&2
+	  $show "$relink_command"
+	  if $run eval "$relink_command"; then :
 	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    func_append rpath " $flag"
+	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+	    exit $EXIT_FAILURE
 	  fi
-	elif test -n "$runpath_var"; then
-	  case "$finalize_perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) func_append finalize_perm_rpath " $libdir" ;;
-	  esac
 	fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
 
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
-	# Transform all the library objects into standard objects.
-	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
-	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
-      fi
+	# See the names of the shared library.
+	set dummy $library_names
+	if test -n "$2"; then
+	  realname="$2"
+	  shift
+	  shift
 
-      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
+	  srcname="$realname"
+	  test -n "$relink_command" && srcname="$realname"T
 
-      # template prelinking step
-      if test -n "$prelink_cmds"; then
-	func_execute_cmds "$prelink_cmds" 'exit $?'
-      fi
+	  # Install the shared library and build the symlinks.
+	  $show "$install_prog $dir/$srcname $destdir/$realname"
+	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
+	  if test -n "$stripme" && test -n "$striplib"; then
+	    $show "$striplib $destdir/$realname"
+	    $run eval "$striplib $destdir/$realname" || exit $?
+	  fi
 
-      wrappers_required=yes
-      case $host in
-      *cegcc* | *mingw32ce*)
-        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
-        wrappers_required=no
-        ;;
-      *cygwin* | *mingw* )
-        if test "$build_libtool_libs" != yes; then
-          wrappers_required=no
-        fi
-        ;;
-      *)
-        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-          wrappers_required=no
-        fi
-        ;;
-      esac
-      if test "$wrappers_required" = no; then
-	# Replace the output file specification.
-	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
-	link_command="$compile_command$compile_rpath"
+	  if test "$#" -gt 0; then
+	    # Delete the old symlinks, and create new ones.
+	    # Try `ln -sf' first, because the `ln' binary might depend on
+	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
+	    # so we also need to try rm && ln -s.
+	    for linkname
+	    do
+	      if test "$linkname" != "$realname"; then
+                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
+                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
+	      fi
+	    done
+	  fi
 
-	# We have no uninstalled library dependencies, so finalize right now.
-	exit_status=0
-	func_show_eval "$link_command" 'exit_status=$?'
+	  # Do each command in the postinstall commands.
+	  lib="$destdir/$realname"
+	  cmds=$postinstall_cmds
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $cmds; do
+	    IFS="$save_ifs"
+	    eval cmd=\"$cmd\"
+	    $show "$cmd"
+	    $run eval "$cmd" || {
+	      lt_exit=$?
+
+	      # Restore the uninstalled library and exit
+	      if test "$mode" = relink; then
+		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
+	      fi
 
-	if test -n "$postlink_cmds"; then
-	  func_to_tool_file "$output"
-	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-	  func_execute_cmds "$postlink_cmds" 'exit $?'
+	      exit $lt_exit
+	    }
+	  done
+	  IFS="$save_ifs"
 	fi
 
-	# Delete the generated files.
-	if test -f "$output_objdir/${outputname}S.${objext}"; then
-	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
-	fi
+	# Install the pseudo-library for information purposes.
+	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	instname="$dir/$name"i
+	$show "$install_prog $instname $destdir/$name"
+	$run eval "$install_prog $instname $destdir/$name" || exit $?
 
-	exit $exit_status
-      fi
+	# Maybe install the static library, too.
+	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+	;;
 
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
+      *.lo)
+	# Install (i.e. copy) a libtool object.
 
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-	if test -n "$perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $perm_rpath; do
-	    func_append rpath "$dir:"
-	  done
-	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-	if test -n "$finalize_perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $finalize_perm_rpath; do
-	    func_append rpath "$dir:"
-	  done
-	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	  destfile="$destdir/$destfile"
 	fi
-      fi
 
-      if test "$no_install" = yes; then
-	# We don't need to create a wrapper script.
-	link_command="$compile_var$compile_command$compile_rpath"
-	# Replace the output file specification.
-	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
-	# Delete the old output file.
-	$opt_dry_run || $RM $output
-	# Link the executable and exit
-	func_show_eval "$link_command" 'exit $?'
+	# Deduce the name of the destination old-style object file.
+	case $destfile in
+	*.lo)
+	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+	  ;;
+	*.$objext)
+	  staticdest="$destfile"
+	  destfile=
+	  ;;
+	*)
+	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
 
-	if test -n "$postlink_cmds"; then
-	  func_to_tool_file "$output"
-	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-	  func_execute_cmds "$postlink_cmds" 'exit $?'
+	# Install the libtool object if requested.
+	if test -n "$destfile"; then
+	  $show "$install_prog $file $destfile"
+	  $run eval "$install_prog $file $destfile" || exit $?
 	fi
 
-	exit $EXIT_SUCCESS
-      fi
+	# Install the old object if enabled.
+	if test "$build_old_libs" = yes; then
+	  # Deduce the name of the old-style object file.
+	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
 
-      if test "$hardcode_action" = relink; then
-	# Fast installation is not supported
-	link_command="$compile_var$compile_command$compile_rpath"
-	relink_command="$finalize_var$finalize_command$finalize_rpath"
+	  $show "$install_prog $staticobj $staticdest"
+	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+	fi
+	exit $EXIT_SUCCESS
+	;;
 
-	func_warning "this platform does not like uninstalled shared libraries"
-	func_warning "\`$output' will be relinked during installation"
-      else
-	if test "$fast_install" != no; then
-	  link_command="$finalize_var$compile_command$finalize_rpath"
-	  if test "$fast_install" = yes; then
-	    relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
-	  else
-	    # fast_install is set to needless
-	    relink_command=
-	  fi
+      *)
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
 	else
-	  link_command="$compile_var$compile_command$compile_rpath"
-	  relink_command="$finalize_var$finalize_command$finalize_rpath"
+	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	  destfile="$destdir/$destfile"
 	fi
-      fi
-
-      # Replace the output file specification.
-      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
-      # Delete the old output files.
-      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
 
-      func_show_eval "$link_command" 'exit $?'
+	# If the file is missing, and there is a .exe on the end, strip it
+	# because it is most likely a libtool script we actually want to
+	# install
+	stripped_ext=""
+	case $file in
+	  *.exe)
+	    if test ! -f "$file"; then
+	      file=`$echo $file|${SED} 's,.exe$,,'`
+	      stripped_ext=".exe"
+	    fi
+	    ;;
+	esac
 
-      if test -n "$postlink_cmds"; then
-	func_to_tool_file "$output_objdir/$outputname"
-	postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-	func_execute_cmds "$postlink_cmds" 'exit $?'
-      fi
+	# Do a test to see if this is really a libtool program.
+	case $host in
+	*cygwin*|*mingw*)
+	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
+	    ;;
+	*)
+	    wrapper=$file
+	    ;;
+	esac
+	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
+	  notinst_deplibs=
+	  relink_command=
 
-      # Now create the wrapper script.
-      func_verbose "creating $output"
+	  # Note that it is not necessary on cygwin/mingw to append a dot to
+	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
+	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
+	  # `FILE.' does not work on cygwin managed mounts.
+	  #
+	  # If there is no directory component, then add one.
+	  case $wrapper in
+	  */* | *\\*) . ${wrapper} ;;
+	  *) . ./${wrapper} ;;
+	  esac
 
-      # Quote the relink command for shipping.
-      if test -n "$relink_command"; then
-	# Preserve any variables that may affect compiler behavior
-	for var in $variables_saved_for_relink; do
-	  if eval test -z \"\${$var+set}\"; then
-	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
-	  elif eval var_value=\$$var; test -z "$var_value"; then
-	    relink_command="$var=; export $var; $relink_command"
-	  else
-	    func_quote_for_eval "$var_value"
-	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+	  # Check the variables that should have been set.
+	  if test -z "$notinst_deplibs"; then
+	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
+	    exit $EXIT_FAILURE
 	  fi
-	done
-	relink_command="(cd `pwd`; $relink_command)"
-	relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
-      fi
 
-      # Only actually do things if not in dry run mode.
-      $opt_dry_run || {
-	# win32 will think the script is a binary if it has
-	# a .exe suffix, so we strip it off here.
-	case $output in
-	  *.exe) func_stripname '' '.exe' "$output"
-	         output=$func_stripname_result ;;
-	esac
-	# test for cygwin because mv fails w/o .exe extensions
-	case $host in
-	  *cygwin*)
-	    exeext=.exe
-	    func_stripname '' '.exe' "$outputname"
-	    outputname=$func_stripname_result ;;
-	  *) exeext= ;;
-	esac
-	case $host in
-	  *cygwin* | *mingw* )
-	    func_dirname_and_basename "$output" "" "."
-	    output_name=$func_basename_result
-	    output_path=$func_dirname_result
-	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
-	    cwrapper="$output_path/$output_name.exe"
-	    $RM $cwrappersource $cwrapper
-	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
-	    func_emit_cwrapperexe_src > $cwrappersource
-
-	    # The wrapper executable is built using the $host compiler,
-	    # because it contains $host paths and files. If cross-
-	    # compiling, it, like the target executable, must be
-	    # executed on the $host or under an emulation environment.
-	    $opt_dry_run || {
-	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
-	      $STRIP $cwrapper
-	    }
+	  finalize=yes
+	  for lib in $notinst_deplibs; do
+	    # Check to see that each library is installed.
+	    libdir=
+	    if test -f "$lib"; then
+	      # If there is no directory component, then add one.
+	      case $lib in
+	      */* | *\\*) . $lib ;;
+	      *) . ./$lib ;;
+	      esac
+	    fi
+	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+	    if test -n "$libdir" && test ! -f "$libfile"; then
+	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+	      finalize=no
+	    fi
+	  done
+
+	  relink_command=
+	  # Note that it is not necessary on cygwin/mingw to append a dot to
+	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
+	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
+	  # `FILE.' does not work on cygwin managed mounts.
+	  #
+	  # If there is no directory component, then add one.
+	  case $wrapper in
+	  */* | *\\*) . ${wrapper} ;;
+	  *) . ./${wrapper} ;;
+	  esac
 
-	    # Now, create the wrapper script for func_source use:
-	    func_ltwrapper_scriptname $cwrapper
-	    $RM $func_ltwrapper_scriptname_result
-	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
-	    $opt_dry_run || {
-	      # note: this script will not be executed, so do not chmod.
-	      if test "x$build" = "x$host" ; then
-		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+	  outputname=
+	  if test "$fast_install" = no && test -n "$relink_command"; then
+	    if test "$finalize" = yes && test -z "$run"; then
+	      tmpdir=`func_mktempdir`
+	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
+	      outputname="$tmpdir/$file"
+	      # Replace the output file specification.
+	      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
+
+	      $show "$relink_command"
+	      if $run eval "$relink_command"; then :
 	      else
-		func_emit_wrapper no > $func_ltwrapper_scriptname_result
+		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+		${rm}r "$tmpdir"
+		continue
 	      fi
-	    }
-	  ;;
-	  * )
-	    $RM $output
-	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
+	      file="$outputname"
+	    else
+	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
+	    fi
+	  else
+	    # Install the binary that we compiled earlier.
+	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+	  fi
+	fi
 
-	    func_emit_wrapper no > $output
-	    chmod +x $output
+	# remove .exe since cygwin /usr/bin/install will append another
+	# one anyway 
+	case $install_prog,$host in
+	*/usr/bin/install*,*cygwin*)
+	  case $file:$destfile in
+	  *.exe:*.exe)
+	    # this is ok
+	    ;;
+	  *.exe:*)
+	    destfile=$destfile.exe
+	    ;;
+	  *:*.exe)
+	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
+	    ;;
+	  esac
 	  ;;
 	esac
-      }
-      exit $EXIT_SUCCESS
-      ;;
-    esac
+	$show "$install_prog$stripme $file $destfile"
+	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+	test -n "$outputname" && ${rm}r "$tmpdir"
+	;;
+      esac
+    done
 
-    # See if we need to build an old-fashioned archive.
-    for oldlib in $oldlibs; do
+    for file in $staticlibs; do
+      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
 
-      if test "$build_libtool_libs" = convenience; then
-	oldobjs="$libobjs_save $symfileobj"
-	addlibs="$convenience"
-	build_libtool_libs=no
-      else
-	if test "$build_libtool_libs" = module; then
-	  oldobjs="$libobjs_save"
-	  build_libtool_libs=no
-	else
-	  oldobjs="$old_deplibs $non_pic_objects"
-	  if test "$preload" = yes && test -f "$symfileobj"; then
-	    func_append oldobjs " $symfileobj"
-	  fi
-	fi
-	addlibs="$old_convenience"
-      fi
+      # Set up the ranlib parameters.
+      oldlib="$destdir/$name"
 
-      if test -n "$addlibs"; then
-	gentop="$output_objdir/${outputname}x"
-	func_append generated " $gentop"
+      $show "$install_prog $file $oldlib"
+      $run eval "$install_prog \$file \$oldlib" || exit $?
 
-	func_extract_archives $gentop $addlibs
-	func_append oldobjs " $func_extract_archives_result"
+      if test -n "$stripme" && test -n "$old_striplib"; then
+	$show "$old_striplib $oldlib"
+	$run eval "$old_striplib $oldlib" || exit $?
       fi
 
-      # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-	cmds=$old_archive_from_new_cmds
-      else
+      # Do each command in the postinstall commands.
+      cmds=$old_postinstall_cmds
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	eval cmd=\"$cmd\"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+    done
 
-	# Add any objects from preloaded convenience libraries
-	if test -n "$dlprefiles"; then
-	  gentop="$output_objdir/${outputname}x"
-	  func_append generated " $gentop"
+    if test -n "$future_libdirs"; then
+      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+    fi
 
-	  func_extract_archives $gentop $dlprefiles
-	  func_append oldobjs " $func_extract_archives_result"
-	fi
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      test -n "$run" && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+    else
+      exit $EXIT_SUCCESS
+    fi
+    ;;
 
-	# POSIX demands no paths to be encoded in archives.  We have
-	# to avoid creating archives with duplicate basenames if we
-	# might have to extract them afterwards, e.g., when creating a
-	# static archive out of a convenience library, or when linking
-	# the entirety of a libtool archive into another (currently
-	# not supported by libtool).
-	if (for obj in $oldobjs
-	    do
-	      func_basename "$obj"
-	      $ECHO "$func_basename_result"
-	    done | sort | sort -uc >/dev/null 2>&1); then
-	  :
-	else
-	  echo "copying selected object files to avoid basename conflicts..."
-	  gentop="$output_objdir/${outputname}x"
-	  func_append generated " $gentop"
-	  func_mkdir_p "$gentop"
-	  save_oldobjs=$oldobjs
-	  oldobjs=
-	  counter=1
-	  for obj in $save_oldobjs
-	  do
-	    func_basename "$obj"
-	    objbase="$func_basename_result"
-	    case " $oldobjs " in
-	    " ") oldobjs=$obj ;;
-	    *[\ /]"$objbase "*)
-	      while :; do
-		# Make sure we don't pick an alternate name that also
-		# overlaps.
-		newobj=lt$counter-$objbase
-		func_arith $counter + 1
-		counter=$func_arith_result
-		case " $oldobjs " in
-		*[\ /]"$newobj "*) ;;
-		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
-		esac
-	      done
-	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-	      func_append oldobjs " $gentop/$newobj"
-	      ;;
-	    *) func_append oldobjs " $obj" ;;
-	    esac
-	  done
-	fi
-	eval cmds=\"$old_archive_cmds\"
+  # libtool finish mode
+  finish)
+    modename="$modename: finish"
+    libdirs="$nonopt"
+    admincmds=
 
-	func_len " $cmds"
-	len=$func_len_result
-	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  cmds=$old_archive_cmds
-	elif test -n "$archiver_list_spec"; then
-	  func_verbose "using command file archive linking..."
-	  for obj in $oldobjs
-	  do
-	    func_to_tool_file "$obj"
-	    $ECHO "$func_to_tool_file_result"
-	  done > $output_objdir/$libname.libcmd
-	  func_to_tool_file "$output_objdir/$libname.libcmd"
-	  oldobjs=" $archiver_list_spec$func_to_tool_file_result"
-	  cmds=$old_archive_cmds
-	else
-	  # the command line is too long to link in one step, link in parts
-	  func_verbose "using piecewise archive linking..."
-	  save_RANLIB=$RANLIB
-	  RANLIB=:
-	  objlist=
-	  concat_cmds=
-	  save_oldobjs=$oldobjs
-	  oldobjs=
-	  # Is there a better way of finding the last object in the list?
-	  for obj in $save_oldobjs
-	  do
-	    last_oldobj=$obj
-	  done
-	  eval test_cmds=\"$old_archive_cmds\"
-	  func_len " $test_cmds"
-	  len0=$func_len_result
-	  len=$len0
-	  for obj in $save_oldobjs
-	  do
-	    func_len " $obj"
-	    func_arith $len + $func_len_result
-	    len=$func_arith_result
-	    func_append objlist " $obj"
-	    if test "$len" -lt "$max_cmd_len"; then
-	      :
-	    else
-	      # the above command should be used before it gets too long
-	      oldobjs=$objlist
-	      if test "$obj" = "$last_oldobj" ; then
-		RANLIB=$save_RANLIB
-	      fi
-	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
-	      objlist=
-	      len=$len0
-	    fi
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for dir
+      do
+	libdirs="$libdirs $dir"
+      done
+
+      for libdir in $libdirs; do
+	if test -n "$finish_cmds"; then
+	  # Do each command in the finish commands.
+	  cmds=$finish_cmds
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $cmds; do
+	    IFS="$save_ifs"
+	    eval cmd=\"$cmd\"
+	    $show "$cmd"
+	    $run eval "$cmd" || admincmds="$admincmds
+       $cmd"
 	  done
-	  RANLIB=$save_RANLIB
-	  oldobjs=$objlist
-	  if test "X$oldobjs" = "X" ; then
-	    eval cmds=\"\$concat_cmds\"
-	  else
-	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
-	  fi
+	  IFS="$save_ifs"
 	fi
-      fi
-      func_execute_cmds "$cmds" 'exit $?'
+	if test -n "$finish_eval"; then
+	  # Do the single finish_eval.
+	  eval cmds=\"$finish_eval\"
+	  $run eval "$cmds" || admincmds="$admincmds
+       $cmds"
+	fi
+      done
+    fi
+
+    # Exit here if they wanted silent mode.
+    test "$show" = : && exit $EXIT_SUCCESS
+
+    $echo "X----------------------------------------------------------------------" | $Xsed
+    $echo "Libraries have been installed in:"
+    for libdir in $libdirs; do
+      $echo "   $libdir"
     done
+    $echo
+    $echo "If you ever happen to want to link against installed libraries"
+    $echo "in a given directory, LIBDIR, you must either use libtool, and"
+    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+    $echo "flag during linking and do at least one of the following:"
+    if test -n "$shlibpath_var"; then
+      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+      $echo "     during execution"
+    fi
+    if test -n "$runpath_var"; then
+      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+      $echo "     during linking"
+    fi
+    if test -n "$hardcode_libdir_flag_spec"; then
+      libdir=LIBDIR
+      eval flag=\"$hardcode_libdir_flag_spec\"
+
+      $echo "   - use the \`$flag' linker flag"
+    fi
+    if test -n "$admincmds"; then
+      $echo "   - have your system administrator run these commands:$admincmds"
+    fi
+    if test -f /etc/ld.so.conf; then
+      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+    fi
+    $echo
+    $echo "See any operating system documentation about shared libraries for"
+    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
+    $echo "X----------------------------------------------------------------------" | $Xsed
+    exit $EXIT_SUCCESS
+    ;;
 
-    test -n "$generated" && \
-      func_show_eval "${RM}r$generated"
+  # libtool execute mode
+  execute)
+    modename="$modename: execute"
 
-    # Now create the libtool archive.
-    case $output in
-    *.la)
-      old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
-      func_verbose "creating $output"
+    # The first argument is the command name.
+    cmd="$nonopt"
+    if test -z "$cmd"; then
+      $echo "$modename: you must specify a COMMAND" 1>&2
+      $echo "$help"
+      exit $EXIT_FAILURE
+    fi
 
-      # Preserve any variables that may affect compiler behavior
-      for var in $variables_saved_for_relink; do
-	if eval test -z \"\${$var+set}\"; then
-	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
-	elif eval var_value=\$$var; test -z "$var_value"; then
-	  relink_command="$var=; export $var; $relink_command"
-	else
-	  func_quote_for_eval "$var_value"
-	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
-	fi
-      done
-      # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
-      if test "$hardcode_automatic" = yes ; then
-	relink_command=
+    # Handle -dlopen flags immediately.
+    for file in $execute_dlfiles; do
+      if test ! -f "$file"; then
+	$echo "$modename: \`$file' is not a file" 1>&2
+	$echo "$help" 1>&2
+	exit $EXIT_FAILURE
       fi
 
-      # Only create the output if not a dry run.
-      $opt_dry_run || {
-	for installed in no yes; do
-	  if test "$installed" = yes; then
-	    if test -z "$install_libdir"; then
-	      break
-	    fi
-	    output="$output_objdir/$outputname"i
-	    # Replace all uninstalled libtool libraries with the installed ones
-	    newdependency_libs=
-	    for deplib in $dependency_libs; do
-	      case $deplib in
-	      *.la)
-		func_basename "$deplib"
-		name="$func_basename_result"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		test -z "$libdir" && \
-		  func_fatal_error "\`$deplib' is not a valid libtool archive"
-		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
-		;;
-	      -L*)
-		func_stripname -L '' "$deplib"
-		func_replace_sysroot "$func_stripname_result"
-		func_append newdependency_libs " -L$func_replace_sysroot_result"
-		;;
-	      -R*)
-		func_stripname -R '' "$deplib"
-		func_replace_sysroot "$func_stripname_result"
-		func_append newdependency_libs " -R$func_replace_sysroot_result"
-		;;
-	      *) func_append newdependency_libs " $deplib" ;;
-	      esac
-	    done
-	    dependency_libs="$newdependency_libs"
-	    newdlfiles=
+      dir=
+      case $file in
+      *.la)
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
 
-	    for lib in $dlfiles; do
-	      case $lib in
-	      *.la)
-	        func_basename "$lib"
-		name="$func_basename_result"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-		test -z "$libdir" && \
-		  func_fatal_error "\`$lib' is not a valid libtool archive"
-		func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
-		;;
-	      *) func_append newdlfiles " $lib" ;;
-	      esac
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      case $lib in
-	      *.la)
-		# Only pass preopened files to the pseudo-archive (for
-		# eventual linking with the app. that links it) if we
-		# didn't already link the preopened objects directly into
-		# the library:
-		func_basename "$lib"
-		name="$func_basename_result"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-		test -z "$libdir" && \
-		  func_fatal_error "\`$lib' is not a valid libtool archive"
-		func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
-		;;
-	      esac
-	    done
-	    dlprefiles="$newdlprefiles"
-	  else
-	    newdlfiles=
-	    for lib in $dlfiles; do
-	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-		*) abs=`pwd`"/$lib" ;;
-	      esac
-	      func_append newdlfiles " $abs"
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-		*) abs=`pwd`"/$lib" ;;
-	      esac
-	      func_append newdlprefiles " $abs"
-	    done
-	    dlprefiles="$newdlprefiles"
-	  fi
-	  $RM $output
-	  # place dlname in correct position for cygwin
-	  # In fact, it would be nice if we could use this code for all target
-	  # systems that can't hard-code library paths into their executables
-	  # and that have no shared library path variable independent of PATH,
-	  # but it turns out we can't easily determine that from inspecting
-	  # libtool variables, so we have to hard-code the OSs to which it
-	  # applies here; at the moment, that means platforms that use the PE
-	  # object format with DLL files.  See the long comment at the top of
-	  # tests/bindir.at for full details.
-	  tdlname=$dlname
-	  case $host,$output,$installed,$module,$dlname in
-	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
-	      # If a -bindir argument was supplied, place the dll there.
-	      if test "x$bindir" != x ;
-	      then
-		func_relative_path "$install_libdir" "$bindir"
-		tdlname=$func_relative_path_result$dlname
-	      else
-		# Otherwise fall back on heuristic.
-		tdlname=../bin/$dlname
-	      fi
-	      ;;
-	  esac
-	  $ECHO > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
+	# Read the libtool library.
+	dlname=
+	library_names=
 
-# The name that we can dlopen(3).
-dlname='$tdlname'
+	# If there is no directory component, then add one.
+	case $file in
+	*/* | *\\*) . $file ;;
+	*) . ./$file ;;
+	esac
 
-# Names of this library.
-library_names='$library_names'
+	# Skip this library if it cannot be dlopened.
+	if test -z "$dlname"; then
+	  # Warn if it was a shared library.
+	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
+	  continue
+	fi
 
-# The name of the static archive.
-old_library='$old_library'
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$dir" = "X$file" && dir=.
 
-# Linker flags that can not go in dependency_libs.
-inherited_linker_flags='$new_inherited_linker_flags'
+	if test -f "$dir/$objdir/$dlname"; then
+	  dir="$dir/$objdir"
+	else
+	  if test ! -f "$dir/$dlname"; then
+	    $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	fi
+	;;
 
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
+      *.lo)
+	# Just add the directory containing the .lo file.
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$dir" = "X$file" && dir=.
+	;;
 
-# Names of additional weak libraries provided by this library
-weak_library_names='$weak_libs'
+      *)
+	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+	continue
+	;;
+      esac
 
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir="$absdir"
 
-# Is this an already installed library?
-installed=$installed
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+	eval "$shlibpath_var=\"\$dir\""
+      else
+	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+      fi
+    done
 
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic="$magic"
 
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -*) ;;
+      *)
+	# Do a test to see if this is really a libtool program.
+	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  # If there is no directory component, then add one.
+	  case $file in
+	  */* | *\\*) . $file ;;
+	  *) . ./$file ;;
+	  esac
 
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
-	  if test "$installed" = no && test "$need_relink" = yes; then
-	    $ECHO >> $output "\
-relink_command=\"$relink_command\""
-	  fi
-	done
-      }
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	fi
+	;;
+      esac
+      # Quote arguments (to preserve shell metacharacters).
+      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
+      args="$args \"$file\""
+    done
 
-      # Do a symbolic link so that the libtool archive can be found in
-      # LD_LIBRARY_PATH before the program is installed.
-      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
-      ;;
-    esac
-    exit $EXIT_SUCCESS
-}
+    if test -z "$run"; then
+      if test -n "$shlibpath_var"; then
+	# Export the shlibpath_var.
+	eval "export $shlibpath_var"
+      fi
 
-{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
-    func_mode_link ${1+"$@"}
+      # Restore saved environment variables
+      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      do
+	eval "if test \"\${save_$lt_var+set}\" = set; then
+		$lt_var=\$save_$lt_var; export $lt_var
+	      fi"
+      done
 
+      # Now prepare to actually exec the command.
+      exec_cmd="\$cmd$args"
+    else
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+	$echo "export $shlibpath_var"
+      fi
+      $echo "$cmd$args"
+      exit $EXIT_SUCCESS
+    fi
+    ;;
 
-# func_mode_uninstall arg...
-func_mode_uninstall ()
-{
-    $opt_debug
-    RM="$nonopt"
+  # libtool clean and uninstall mode
+  clean | uninstall)
+    modename="$modename: $mode"
+    rm="$nonopt"
     files=
     rmforce=
     exit_status=0
@@ -9436,41 +6539,44 @@ func_mode_uninstall ()
     for arg
     do
       case $arg in
-      -f) func_append RM " $arg"; rmforce=yes ;;
-      -*) func_append RM " $arg" ;;
-      *) func_append files " $arg" ;;
+      -f) rm="$rm $arg"; rmforce=yes ;;
+      -*) rm="$rm $arg" ;;
+      *) files="$files $arg" ;;
       esac
     done
 
-    test -z "$RM" && \
-      func_fatal_help "you must specify an RM program"
+    if test -z "$rm"; then
+      $echo "$modename: you must specify an RM program" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
 
     rmdirs=
 
+    origobjdir="$objdir"
     for file in $files; do
-      func_dirname "$file" "" "."
-      dir="$func_dirname_result"
-      if test "X$dir" = X.; then
-	odir="$objdir"
+      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+      if test "X$dir" = "X$file"; then
+	dir=.
+	objdir="$origobjdir"
       else
-	odir="$dir/$objdir"
+	objdir="$dir/$origobjdir"
       fi
-      func_basename "$file"
-      name="$func_basename_result"
-      test "$opt_mode" = uninstall && odir="$dir"
+      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+      test "$mode" = uninstall && objdir="$dir"
 
-      # Remember odir for removal later, being careful to avoid duplicates
-      if test "$opt_mode" = clean; then
+      # Remember objdir for removal later, being careful to avoid duplicates
+      if test "$mode" = clean; then
 	case " $rmdirs " in
-	  *" $odir "*) ;;
-	  *) func_append rmdirs " $odir" ;;
+	  *" $objdir "*) ;;
+	  *) rmdirs="$rmdirs $objdir" ;;
 	esac
       fi
 
       # Don't error if the file doesn't exist and rm -f was used.
-      if { test -L "$file"; } >/dev/null 2>&1 ||
-	 { test -h "$file"; } >/dev/null 2>&1 ||
-	 test -f "$file"; then
+      if (test -L "$file") >/dev/null 2>&1 \
+	|| (test -h "$file") >/dev/null 2>&1 \
+	|| test -f "$file"; then
 	:
       elif test -d "$file"; then
 	exit_status=1
@@ -9484,32 +6590,55 @@ func_mode_uninstall ()
       case $name in
       *.la)
 	# Possibly a libtool archive, so verify it.
-	if func_lalib_p "$file"; then
-	  func_source $dir/$name
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  . $dir/$name
 
 	  # Delete the libtool libraries and symlinks.
 	  for n in $library_names; do
-	    func_append rmfiles " $odir/$n"
+	    rmfiles="$rmfiles $objdir/$n"
 	  done
-	  test -n "$old_library" && func_append rmfiles " $odir/$old_library"
+	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
 
-	  case "$opt_mode" in
+	  case "$mode" in
 	  clean)
-	    case " $library_names " in
+	    case "  $library_names " in
+	    # "  " in the beginning catches empty $dlname
 	    *" $dlname "*) ;;
-	    *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
+	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
 	    esac
-	    test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
+	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
 	    ;;
 	  uninstall)
 	    if test -n "$library_names"; then
 	      # Do each command in the postuninstall commands.
-	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+	      cmds=$postuninstall_cmds
+	      save_ifs="$IFS"; IFS='~'
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd"
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
+		  exit_status=1
+		fi
+	      done
+	      IFS="$save_ifs"
 	    fi
 
 	    if test -n "$old_library"; then
 	      # Do each command in the old_postuninstall commands.
-	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
+	      cmds=$old_postuninstall_cmds
+	      save_ifs="$IFS"; IFS='~'
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd"
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
+		  exit_status=1
+		fi
+	      done
+	      IFS="$save_ifs"
 	    fi
 	    # FIXME: should reinstall the best remaining shared library.
 	    ;;
@@ -9519,95 +6648,288 @@ func_mode_uninstall ()
 
       *.lo)
 	# Possibly a libtool object, so verify it.
-	if func_lalib_p "$file"; then
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
 
 	  # Read the .lo file
-	  func_source $dir/$name
+	  . $dir/$name
 
 	  # Add PIC object to the list of files to remove.
-	  if test -n "$pic_object" &&
-	     test "$pic_object" != none; then
-	    func_append rmfiles " $dir/$pic_object"
+	  if test -n "$pic_object" \
+	     && test "$pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$pic_object"
 	  fi
 
 	  # Add non-PIC object to the list of files to remove.
-	  if test -n "$non_pic_object" &&
-	     test "$non_pic_object" != none; then
-	    func_append rmfiles " $dir/$non_pic_object"
+	  if test -n "$non_pic_object" \
+	     && test "$non_pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$non_pic_object"
 	  fi
 	fi
 	;;
 
       *)
-	if test "$opt_mode" = clean ; then
+	if test "$mode" = clean ; then
 	  noexename=$name
 	  case $file in
 	  *.exe)
-	    func_stripname '' '.exe' "$file"
-	    file=$func_stripname_result
-	    func_stripname '' '.exe' "$name"
-	    noexename=$func_stripname_result
+	    file=`$echo $file|${SED} 's,.exe$,,'`
+	    noexename=`$echo $name|${SED} 's,.exe$,,'`
 	    # $file with .exe has already been added to rmfiles,
 	    # add $file without .exe
-	    func_append rmfiles " $file"
+	    rmfiles="$rmfiles $file"
 	    ;;
 	  esac
 	  # Do a test to see if this is a libtool program.
-	  if func_ltwrapper_p "$file"; then
-	    if func_ltwrapper_executable_p "$file"; then
-	      func_ltwrapper_scriptname "$file"
-	      relink_command=
-	      func_source $func_ltwrapper_scriptname_result
-	      func_append rmfiles " $func_ltwrapper_scriptname_result"
-	    else
-	      relink_command=
-	      func_source $dir/$noexename
-	    fi
+	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	    relink_command=
+	    . $dir/$noexename
 
 	    # note $name still contains .exe if it was in $file originally
 	    # as does the version of $file that was added into $rmfiles
-	    func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
+	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
 	    if test "$fast_install" = yes && test -n "$relink_command"; then
-	      func_append rmfiles " $odir/lt-$name"
+	      rmfiles="$rmfiles $objdir/lt-$name"
 	    fi
 	    if test "X$noexename" != "X$name" ; then
-	      func_append rmfiles " $odir/lt-${noexename}.c"
+	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
 	    fi
 	  fi
 	fi
 	;;
       esac
-      func_show_eval "$RM $rmfiles" 'exit_status=1'
+      $show "$rm $rmfiles"
+      $run $rm $rmfiles || exit_status=1
     done
+    objdir="$origobjdir"
 
     # Try to remove the ${objdir}s in the directories where we deleted files
     for dir in $rmdirs; do
       if test -d "$dir"; then
-	func_show_eval "rmdir $dir >/dev/null 2>&1"
+	$show "rmdir $dir"
+	$run rmdir $dir >/dev/null 2>&1
       fi
     done
 
     exit $exit_status
-}
-
-{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
-    func_mode_uninstall ${1+"$@"}
+    ;;
 
-test -z "$opt_mode" && {
-  help="$generic_help"
-  func_fatal_help "you must specify a MODE"
-}
+  "")
+    $echo "$modename: you must specify a MODE" 1>&2
+    $echo "$generic_help" 1>&2
+    exit $EXIT_FAILURE
+    ;;
+  esac
 
-test -z "$exec_cmd" && \
-  func_fatal_help "invalid operation mode \`$opt_mode'"
+  if test -z "$exec_cmd"; then
+    $echo "$modename: invalid operation mode \`$mode'" 1>&2
+    $echo "$generic_help" 1>&2
+    exit $EXIT_FAILURE
+  fi
+fi # test -z "$show_help"
 
 if test -n "$exec_cmd"; then
-  eval exec "$exec_cmd"
+  eval exec $exec_cmd
   exit $EXIT_FAILURE
 fi
 
-exit $exit_status
+# We need to display help for each of the modes.
+case $mode in
+"") $echo \
+"Usage: $modename [OPTION]... [MODE-ARG]...
+
+Provide generalized library-building support services.
+
+    --config          show all configuration variables
+    --debug           enable verbose shell tracing
+-n, --dry-run         display commands without modifying any files
+    --features        display basic configuration information and exit
+    --finish          same as \`--mode=finish'
+    --help            display this help message and exit
+    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
+    --quiet           same as \`--silent'
+    --silent          don't print informational messages
+    --tag=TAG         use configuration variables from tag TAG
+    --version         print version information
+
+MODE must be one of the following:
+
+      clean           remove files from the build directory
+      compile         compile a source file into a libtool object
+      execute         automatically set library path, then run a program
+      finish          complete the installation of libtool libraries
+      install         install libraries or executables
+      link            create a library or an executable
+      uninstall       remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
+a more detailed description of MODE.
+
+Report bugs to <bug-libtool at gnu.org>."
+  exit $EXIT_SUCCESS
+  ;;
+
+clean)
+  $echo \
+"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+  ;;
+
+compile)
+  $echo \
+"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -prefer-pic       try to building PIC objects only
+  -prefer-non-pic   try to building non-PIC objects only
+  -static           always build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+  ;;
+
+execute)
+  $echo \
+"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+  -dlopen FILE      add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+  ;;
+
+finish)
+  $echo \
+"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges.  Use
+the \`--dry-run' option if you just want to see what would be executed."
+  ;;
+
+install)
+  $echo \
+"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command.  The first component should be
+either the \`install' or \`cp' program.
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+  ;;
+
+link)
+  $echo \
+"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+                    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+                    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -static           do not do any dynamic linking of uninstalled libtool libraries
+  -static-libtool-libs
+                    do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+                    specify library version info [each variable defaults to 0]
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename.  Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+  ;;
+
+uninstall)
+  $echo \
+"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
 
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+  ;;
+
+*)
+  $echo "$modename: invalid operation mode \`$mode'" 1>&2
+  $echo "$help" 1>&2
+  exit $EXIT_FAILURE
+  ;;
+esac
+
+$echo
+$echo "Try \`$modename --help' for more information about other modes."
+
+exit $?
 
 # The TAGs below are defined such that we never get into a situation
 # in which we disable both kinds of libraries.  Given conflicting
@@ -9621,17 +6943,14 @@ exit $exit_status
 # configuration.  But we'll never go from static-only to shared-only.
 
 # ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
+disable_libs=shared
 # ### END LIBTOOL TAG CONFIG: disable-shared
 
 # ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+disable_libs=static
 # ### END LIBTOOL TAG CONFIG: disable-static
 
 # Local Variables:
 # mode:shell-script
 # sh-indentation:2
 # End:
-# vi:sw=2
-
diff --git a/m4/ac_add_search_path.m4 b/m4/ac_add_search_path.m4
deleted file mode 100644
index b1ffc5d..0000000
--- a/m4/ac_add_search_path.m4
+++ /dev/null
@@ -1,13 +0,0 @@
-dnl
-dnl Add a search path to the LIBS and CFLAGS variables
-dnl
-AC_DEFUN([AC_ADD_SEARCH_PATH],[
-  if test "x$1" != x -a -d $1; then
-     if test -d $1/lib; then
-       LDFLAGS="-L$1/lib $LDFLAGS"
-     fi
-     if test -d $1/include; then
-	CPPFLAGS="-I$1/include $CPPFLAGS"
-     fi
-  fi
-])
diff --git a/m4/ac_msg_cache.m4 b/m4/ac_msg_cache.m4
deleted file mode 100644
index f7d7cda..0000000
--- a/m4/ac_msg_cache.m4
+++ /dev/null
@@ -1,24 +0,0 @@
-dnl
-dnl Store information for displaying later.
-dnl
-AC_DEFUN([AC_MSG_CACHE_INIT],[
-  rm -f configure-summary
-])
-
-AC_DEFUN([AC_MSG_CACHE_ADD],[
-  cat >> configure-summary << EOF
-  $1
-EOF
-])
-
-AC_DEFUN([AC_MSG_CACHE_DISPLAY],[
-  echo ""
-  echo "---------------------------------------------------------"
-  echo "            Net-SNMP configuration summary:"
-  echo "---------------------------------------------------------"
-  echo ""
-  cat configure-summary
-  echo ""
-  echo "---------------------------------------------------------"
-  echo ""
-])
diff --git a/m4/ac_msg_module_dbg.m4 b/m4/ac_msg_module_dbg.m4
deleted file mode 100644
index d2cb317..0000000
--- a/m4/ac_msg_module_dbg.m4
+++ /dev/null
@@ -1,7 +0,0 @@
-AC_DEFUN([AC_MSG_MODULE_DBG],
-[
-  if test $module_debug = 1; then
-    echo $1 $2 $3 $4
-  fi
-]
-)
diff --git a/m4/ac_prompt_user.m4 b/m4/ac_prompt_user.m4
deleted file mode 100644
index 6b2dd9a..0000000
--- a/m4/ac_prompt_user.m4
+++ /dev/null
@@ -1,52 +0,0 @@
-dnl @synopsis AC_PROMPT_USER_NO_DEFINE(VARIABLENAME,QUESTION,[DEFAULT])
-dnl
-dnl Asks a QUESTION and puts the results in VARIABLENAME with an optional
-dnl DEFAULT value if the user merely hits return.
-dnl
-dnl @version 1.15
-dnl @author Wes Hardaker <hardaker at users.sourceforge.net>
-dnl
-AC_DEFUN([AC_PROMPT_USER_NO_DEFINE],
-[
-if test "x$defaults" = "xno"; then
-echo $ECHO_N "$2 ($3): $ECHO_C"
-read tmpinput <&AS_ORIGINAL_STDIN_FD
-if test "$tmpinput" = "" -a "$3" != ""; then
-  tmpinput="$3"
-fi
-eval $1=\"$tmpinput\"
-else
-tmpinput="$3"
-eval $1=\"$tmpinput\"
-fi
-]) dnl done AC_PROMPT_USER
-
-dnl @synopsis AC_PROMPT_USER(VARIABLENAME,QUESTION,[DEFAULT],QUOTED)
-dnl
-dnl Asks a QUESTION and puts the results in VARIABLENAME with an optional
-dnl DEFAULT value if the user merely hits return.  Also calls
-dnl AC_DEFINE_UNQUOTED() on the VARIABLENAME for VARIABLENAMEs that should
-dnl be entered into the config.h file as well.  If QUOTED is "quoted" then
-dnl the result will be defined within quotes.
-dnl
-dnl @version 1.15
-dnl @author Wes Hardaker <hardaker at users.sourceforge.net>
-dnl
-AC_DEFUN([AC_PROMPT_USER],
-[
-MSG_CHECK="patsubst([$2], [.*
-], [])"
-AC_CACHE_CHECK($MSG_CHECK, ac_cv_user_prompt_$1,
-[echo "" >&AS_MESSAGE_FD
-AC_PROMPT_USER_NO_DEFINE($1,[$2],$3)
-eval ac_cv_user_prompt_$1=\$$1
-echo $ECHO_N "setting $MSG_CHECK to...  $ECHO_C" >&AS_MESSAGE_FD
-])
-if test "$ac_cv_user_prompt_$1" != "none"; then
-  if test "x$4" = "xquoted" -o "x$4" = "xQUOTED"; then
-    AC_DEFINE_UNQUOTED($1,"$ac_cv_user_prompt_$1")
-  else
-    AC_DEFINE_UNQUOTED($1,$ac_cv_user_prompt_$1)
-  fi
-fi
-]) dnl
diff --git a/m4/libtool.m4 b/m4/libtool.m4
deleted file mode 100644
index d812584..0000000
--- a/m4/libtool.m4
+++ /dev/null
@@ -1,7831 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-#                 Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-# 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.
-
-m4_define([_LT_COPYING], [dnl
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-#                 Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-])
-
-# serial 57 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
-       [m4_default([$3],
-		   [m4_fatal([Libtool version $1 or higher is required],
-		             63)])],
-       [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
-  *\ * | *\	*)
-    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
-m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
-  case $cc_temp in
-    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
-    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_WITH_SYSROOT])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    _LT_PATH_MAGIC
-  fi
-  ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PREPARE_SED_QUOTE_VARS
-# --------------------------
-# Define a few sed substitution that help us do robust quoting.
-m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-[# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-])
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from `configure', and `config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
-])# _LT_PROG_LTMAIN
-
-
-## ------------------------------------- ##
-## Accumulate code for creating libtool. ##
-## ------------------------------------- ##
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
-          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
-                     [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
-          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
-                     [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
-              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-## ------------------------ ##
-## FIXME: Eliminate VARNAME ##
-## ------------------------ ##
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME.  Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
-    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
-	[m4_ifval([$1], [$1], [$2])])
-    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
-    m4_ifval([$4],
-	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
-    lt_dict_add_subkey([lt_decl_dict], [$2],
-	[tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
-  [0], [m4_fatal([$0: too few arguments: $#])],
-  [1], [m4_fatal([$0: too few arguments: $#: $1])],
-  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
-  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
-  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
-    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
-    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
-     m4_if([$2], [],
-	   m4_quote(lt_decl_varnames),
-	m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
-			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'.  VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly.  In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
-    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-#    # Some comment about what VAR is for.
-#    visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
-					   [description])))[]dnl
-m4_pushdef([_libtool_name],
-    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
-    [0], [_libtool_name=[$]$1],
-    [1], [_libtool_name=$lt_[]$1],
-    [2], [_libtool_name=$lt_[]$1],
-    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
-# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
-    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'.  Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
-	dnl If the libtool generation code has been placed in $CONFIG_LT,
-	dnl instead of duplicating it all over again into config.status,
-	dnl then we will have config.status run $CONFIG_LT later, so it
-	dnl needs to know what name is stored there:
-        [AC_CONFIG_COMMANDS([libtool],
-            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
-    dnl If the libtool generation code is destined for config.status,
-    dnl expand the accumulated commands and init code now:
-    [AC_CONFIG_COMMANDS([libtool],
-        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-\$[]1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-# ------------------------------------
-# Generate a child script FILE with all initialization necessary to
-# reuse the environment learned by the parent script, and make the
-# file executable.  If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins.  After this
-# macro, additional text can be appended to FILE to form the body of
-# the child script.  The macro ends with non-zero status if the
-# file could not be fully written (such as if the disk is full).
-m4_ifdef([AS_INIT_GENERATED],
-[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-[m4_defun([_LT_GENERATED_FILE_INIT],
-[m4_require([AS_PREPARE])]dnl
-[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-[lt_write_fail=0
-cat >$1 <<_ASEOF || lt_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-$2
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$1 <<\_ASEOF || lt_write_fail=1
-AS_SHELL_SANITIZE
-_AS_PREPARE
-exec AS_MESSAGE_FD>&1
-_ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
-m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-[# Run this file to recreate a libtool stub with the current configuration.])
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec AS_MESSAGE_LOG_FD>>config.log
-{
-  echo
-  AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
-  -h, --help      print this help, then exit
-  -V, --version   print version number, then exit
-  -q, --quiet     do not print progress messages
-  -d, --debug     don't remove temporary files
-
-Report bugs to <bug-libtool at gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2010 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test $[#] != 0
-do
-  case $[1] in
-    --version | --v* | -V )
-      echo "$lt_cl_version"; exit 0 ;;
-    --help | --h* | -h )
-      echo "$lt_cl_help"; exit 0 ;;
-    --debug | --d* | -d )
-      debug=: ;;
-    --quiet | --q* | --silent | --s* | -q )
-      lt_cl_silent=: ;;
-
-    -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
-
-    *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
-  esac
-  shift
-done
-
-if $lt_cl_silent; then
-  exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure.  Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test "$silent" = yes &&
-  lt_config_lt_args="$lt_config_lt_args --quiet"
-exec AS_MESSAGE_LOG_FD>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec AS_MESSAGE_LOG_FD>>config.log
-$lt_cl_success || AS_EXIT(1)
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars.  Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
-  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
-  m4_if(_LT_TAG, [C], [
-    # See if we are running on zsh, and set the options which allow our
-    # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
-      setopt NO_GLOB_SUBST
-    fi
-
-    cfgfile="${ofile}T"
-    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-    $RM "$cfgfile"
-
-    cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
-  case $host_os in
-  aix3*)
-    cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-_LT_EOF
-    ;;
-  esac
-
-  _LT_PROG_LTMAIN
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" \
-     || (rm -f "$cfgfile"; exit 1)
-
-  _LT_PROG_REPLACE_SHELLFNS
-
-   mv -f "$cfgfile" "$ofile" ||
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
-    PACKAGE='$PACKAGE'
-    VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
-    RM='$RM'
-    ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
-  [C],			[_LT_LANG(C)],
-  [C++],		[_LT_LANG(CXX)],
-  [Java],		[_LT_LANG(GCJ)],
-  [Fortran 77],		[_LT_LANG(F77)],
-  [Fortran],		[_LT_LANG(FC)],
-  [Windows Resource],	[_LT_LANG(RC)],
-  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
-    [_LT_LANG($1)],
-    [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
-  [LT_SUPPORTED_TAG([$1])dnl
-  m4_append([_LT_TAGS], [$1 ])dnl
-  m4_define([_LT_LANG_]$1[_enabled], [])dnl
-  _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
-  [LT_LANG(CXX)],
-  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
-  [LT_LANG(F77)],
-  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
-  [LT_LANG(FC)],
-  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-  [LT_LANG(GCJ)],
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-    [LT_LANG(GCJ)],
-    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
-      [LT_LANG(GCJ)],
-      [m4_ifdef([AC_PROG_GCJ],
-	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
-       m4_ifdef([A][M_PROG_GCJ],
-	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
-       m4_ifdef([LT_PROG_GCJ],
-	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
-  [LT_LANG(RC)],
-  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
-  case $host_os in
-    rhapsody* | darwin*)
-    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
-    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
-    AC_CHECK_TOOL([LIPO], [lipo], [:])
-    AC_CHECK_TOOL([OTOOL], [otool], [:])
-    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
-    _LT_DECL([], [DSYMUTIL], [1],
-      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
-    _LT_DECL([], [NMEDIT], [1],
-      [Tool to change global to local symbols on Mac OS X])
-    _LT_DECL([], [LIPO], [1],
-      [Tool to manipulate fat objects and archives on Mac OS X])
-    _LT_DECL([], [OTOOL], [1],
-      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
-    _LT_DECL([], [OTOOL64], [1],
-      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
-    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
-      [lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
-	# By default we will add the -single_module flag. You can override
-	# by either setting the environment variable LT_MULTI_MODULE
-	# non-empty at configure time, or by adding -multi_module to the
-	# link flags.
-	rm -rf libconftest.dylib*
-	echo "int foo(void){return 1;}" > conftest.c
-	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
-	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-        _lt_result=$?
-	if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
-	  lt_cv_apple_cc_single_mod=yes
-	else
-	  cat conftest.err >&AS_MESSAGE_LOG_FD
-	fi
-	rm -rf libconftest.dylib*
-	rm -f conftest.*
-      fi])
-    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
-      [lt_cv_ld_exported_symbols_list],
-      [lt_cv_ld_exported_symbols_list=no
-      save_LDFLAGS=$LDFLAGS
-      echo "_main" > conftest.sym
-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-	[lt_cv_ld_exported_symbols_list=yes],
-	[lt_cv_ld_exported_symbols_list=no])
-	LDFLAGS="$save_LDFLAGS"
-    ])
-    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
-      [lt_cv_ld_force_load=no
-      cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
-      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
-      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
-      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
-      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
-      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
-      cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
-      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
-      _lt_result=$?
-      if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
-	lt_cv_ld_force_load=yes
-      else
-	cat conftest.err >&AS_MESSAGE_LOG_FD
-      fi
-        rm -f conftest.err libconftest.a conftest conftest.c
-        rm -rf conftest.dSYM
-    ])
-    case $host_os in
-    rhapsody* | darwin1.[[012]])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-    darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-    darwin*) # darwin 5.x on
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[[012]]*)
-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-	10.*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-      esac
-    ;;
-  esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-    else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES
-# --------------------------
-# Checks for linker and compiler features on darwin
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
-  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
-  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-  _LT_TAGVAR(hardcode_direct, $1)=no
-  _LT_TAGVAR(hardcode_automatic, $1)=yes
-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-  else
-    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
-  fi
-  _LT_TAGVAR(link_all_deplibs, $1)=yes
-  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=func_echo_all
-    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-    m4_if([$1], [CXX],
-[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
-    fi
-],[])
-  else
-  _LT_TAGVAR(ld_shlibs, $1)=no
-  fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
-# ----------------------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-# Store the results from the different compilers for each TAGNAME.
-# Allow to override them for all tags through lt_cv_aix_libpath.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
-  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
-  lt_aix_libpath_sed='[
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }]'
-  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi],[])
-  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
-  fi
-  ])
-  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
-fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[m4_divert_text([M4SH-INIT], [$1
-])])# _LT_SHELL_INIT
-
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Find how we can fake an echo command that does not interpret backslash.
-# In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-AC_MSG_CHECKING([how to print strings])
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
-   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='printf %s\n'
-else
-  # Use this function as a fallback that always works.
-  func_fallback_echo ()
-  {
-    eval 'cat <<_LTECHO_EOF
-$[]1
-_LTECHO_EOF'
-  }
-  ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO "$*" 
-}
-
-case "$ECHO" in
-  printf*) AC_MSG_RESULT([printf]) ;;
-  print*) AC_MSG_RESULT([print -r]) ;;
-  *) AC_MSG_RESULT([cat]) ;;
-esac
-
-m4_ifdef([_AS_DETECT_SUGGESTED],
-[_AS_DETECT_SUGGESTED([
-  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
-    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-    PATH=/empty FPATH=/empty; export PATH FPATH
-    test "X`printf %s $ECHO`" = "X$ECHO" \
-      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_WITH_SYSROOT
-# ----------------
-AC_DEFUN([_LT_WITH_SYSROOT],
-[AC_MSG_CHECKING([for sysroot])
-AC_ARG_WITH([sysroot],
-[  --with-sysroot[=DIR] Search for dependent libraries within DIR
-                        (or the compiler's sysroot if not specified).],
-[], [with_sysroot=no])
-
-dnl lt_sysroot will always be passed unquoted.  We quote it here
-dnl in case the user passed a directory name.
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
-   if test "$GCC" = yes; then
-     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
-   fi
-   ;; #(
- /*)
-   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-   ;; #(
- no|'')
-   ;; #(
- *)
-   AC_MSG_RESULT([${with_sysroot}])
-   AC_MSG_ERROR([The sysroot must be an absolute path.])
-   ;;
-esac
-
- AC_MSG_RESULT([${lt_sysroot:-no}])
-_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and in which our libraries should be installed.])])
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
-  [AS_HELP_STRING([--disable-libtool-lock],
-    [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-	HPUX_IA64_MODE="32"
-	;;
-      *ELF-64*)
-	HPUX_IA64_MODE="64"
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -melf32bsmip"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -melf32bmipn32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -melf64bmip"
-	;;
-      esac
-    else
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -32"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -n32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -64"
-	  ;;
-      esac
-    fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-      *32-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_i386_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
-	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
-	    LD="${LD-ld} -m elf32ppclinux"
-	    ;;
-	  s390x-*linux*)
-	    LD="${LD-ld} -m elf_s390"
-	    ;;
-	  sparc64-*linux*)
-	    LD="${LD-ld} -m elf32_sparc"
-	    ;;
-	esac
-	;;
-      *64-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_x86_64_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_x86_64"
-	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
-	    LD="${LD-ld} -m elf64ppc"
-	    ;;
-	  s390*-*linux*|s390*-*tpf*)
-	    LD="${LD-ld} -m elf64_s390"
-	    ;;
-	  sparc*-*linux*)
-	    LD="${LD-ld} -m elf64_sparc"
-	    ;;
-	esac
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_PUSH(C)
-     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-sparc*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)
-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-	  LD="${LD-ld} -64"
-	fi
-	;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-esac
-
-need_locks="$enable_libtool_lock"
-])# _LT_ENABLE_LOCK
-
-
-# _LT_PROG_AR
-# -----------
-m4_defun([_LT_PROG_AR],
-[AC_CHECK_TOOLS(AR, [ar], false)
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-
-AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
-  [lt_cv_ar_at_file=no
-   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
-     [echo conftest.$ac_objext > conftest.lst
-      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
-      AC_TRY_EVAL([lt_ar_try])
-      if test "$ac_status" -eq 0; then
-	# Ensure the archiver fails upon bogus file names.
-	rm -f conftest.$ac_objext libconftest.a
-	AC_TRY_EVAL([lt_ar_try])
-	if test "$ac_status" -ne 0; then
-          lt_cv_ar_at_file=@
-        fi
-      fi
-      rm -f conftest.* libconftest.a
-     ])
-  ])
-
-if test "x$lt_cv_ar_at_file" = xno; then
-  archiver_list_spec=
-else
-  archiver_list_spec=$lt_cv_ar_at_file
-fi
-_LT_DECL([], [archiver_list_spec], [1],
-  [How to feed a file listing to the archiver])
-])# _LT_PROG_AR
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[_LT_PROG_AR
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
-    [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-case $host_os in
-  darwin*)
-    lock_old_archive_extraction=yes ;;
-  *)
-    lock_old_archive_extraction=no ;;
-esac
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
-    [Commands used to build an old-style archive])
-_LT_DECL([], [lock_old_archive_extraction], [0],
-    [Whether to use a lock for old archive extraction])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       $2=yes
-     fi
-   fi
-   $RM conftest*
-])
-
-if test x"[$]$2" = xyes; then
-    m4_if([$5], , :, [$5])
-else
-    m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#                  [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $3"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         $2=yes
-       fi
-     else
-       $2=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
-    m4_if([$4], , :, [$4])
-else
-    m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw* | cegcc*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  mint*)
-    # On MiNT this can take a long time and run out of memory.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      # Make teststring a little bigger before we do anything with it.
-      # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
-        teststring=$teststring$teststring
-      done
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      # If test is not a shell built-in, we'll probably end up computing a
-      # maximum length that is only half of the actual maximum length, but
-      # we can't tell.
-      while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
-	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      # Only check the string length outside the loop.
-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on
-      # massive amounts of additional arguments before passing them to the
-      # linker.  It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
-    [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
-  [$4]
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-[#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else
-        {
-	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-          else puts (dlerror ());
-	}
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}]
-_LT_EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) $1 ;;
-      x$lt_dlneed_uscore) $2 ;;
-      x$lt_dlunknown|x*) $3 ;;
-    esac
-  else :
-    # compilation failed
-    $3
-  fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-    ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-    ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-    ;;
-
-  *)
-    AC_CHECK_FUNC([shl_load],
-	  [lt_cv_dlopen="shl_load"],
-      [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
-	[AC_CHECK_FUNC([dlopen],
-	      [lt_cv_dlopen="dlopen"],
-	  [AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-	    [AC_CHECK_LIB([svld], [dlopen],
-		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
-	      ])
-	    ])
-	  ])
-	])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-	  lt_cv_dlopen_self, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-	  lt_cv_dlopen_self_static, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
-	 [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
-	 [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
-	 [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-     fi
-   fi
-   chmod u+w . 2>&AS_MESSAGE_LOG_FD
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
-	[Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
-         [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
-  [Define to the sub-directory in which libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
-   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
-   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
-    # Linking always hardcodes the temporary library directory.
-    _LT_TAGVAR(hardcode_action, $1)=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    _LT_TAGVAR(hardcode_action, $1)=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
-   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
-    [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP" ; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      AC_MSG_RESULT([yes])
-    else
-      AC_MSG_RESULT([no])
-    fi
-    ;;
-  *)
-    AC_MSG_RESULT([no])
-    ;;
-  esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
-	[], [
-if test "$GCC" = yes; then
-  case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
-  esac
-  case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
-    *) lt_sed_strip_eq="s,=/,/,g" ;;
-  esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
-  case $lt_search_path_spec in
-  *\;*)
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
-    ;;
-  *)
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
-    ;;
-  esac
-  # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
-  lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-  for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
-      test -d "$lt_sys_path" && \
-	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-    fi
-  done
-  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
-  for (lt_i = NF; lt_i > 0; lt_i--) {
-    if ($lt_i != "" && $lt_i != ".") {
-      if ($lt_i == "..") {
-        lt_count++;
-      } else {
-        if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
-        } else {
-          lt_count--;
-        }
-      }
-    }
-  }
-  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
-  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
-  # AWK program above erroneously prepends '/' to C:/dos/paths
-  # for these hosts.
-  case $host_os in
-    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
-  esac
-  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[[4-9]]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[[01]] | aix4.[[01]].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[[45]]*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$cc_basename in
-  yes,*)
-    # gcc
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-m4_if([$1], [],[
-      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    dynamic_linker='Win32 ld.exe'
-    ;;
-
-  *,cl*)
-    # Native MSVC
-    libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
-
-    case $build_os in
-    mingw*)
-      sys_lib_search_path_spec=
-      lt_save_ifs=$IFS
-      IFS=';'
-      for lt_path in $LIB
-      do
-        IFS=$lt_save_ifs
-        # Let DOS variable expansion print the short 8.3 style file name.
-        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-      done
-      IFS=$lt_save_ifs
-      # Convert to MSYS style.
-      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
-      ;;
-    cygwin*)
-      # Convert to unix form, then to dos form, then back to unix form
-      # but this time dos style (no spaces!) so that the unix form looks
-      # like /cygdrive/c/PROGRA~1:/cygdr...
-      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      ;;
-    *)
-      sys_lib_search_path_spec="$LIB"
-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      # FIXME: find the short name or the path components, as spaces are
-      # common. (e.g. "Program Files" -> "PROGRA~1")
-      ;;
-    esac
-
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-    dynamic_linker='Win32 link.exe'
-    ;;
-
-  *)
-    # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    dynamic_linker='Win32 ld.exe'
-    ;;
-  esac
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[[123]]*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
-  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-haiku*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
-  postinstall_cmds='chmod 555 $lib'
-  # or fails outright, so override atomically:
-  install_override_mode=555
-  ;;
-
-interix[[3-9]]*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-
-  # Some binutils ld are patched to set DT_RUNPATH
-  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
-    [lt_cv_shlibpath_overrides_runpath=no
-    save_LDFLAGS=$LDFLAGS
-    save_libdir=$libdir
-    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
-	 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
-    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
-	 [lt_cv_shlibpath_overrides_runpath=yes])])
-    LDFLAGS=$save_LDFLAGS
-    libdir=$save_libdir
-    ])
-  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-_LT_DECL([], [variables_saved_for_relink], [1],
-    [Variables whose values should be saved in libtool wrapper scripts and
-    restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
-    [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
-    [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
-    [[List of archive names.  First name is the real one, the rest are links.
-    The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
-    [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [install_override_mode], [1],
-    [Permission mode override for installation of shared libraries])
-_LT_DECL([], [postinstall_cmds], [2],
-    [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
-    [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
-    [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
-    [[As "finish_cmds", except a single script fragment to be evaled but
-    not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
-    [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
-    [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
-    [Run-time system search path for libraries])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program which can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="m4_if([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
-	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program which can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-
-AC_ARG_WITH([gnu-ld],
-    [AS_HELP_STRING([--with-gnu-ld],
-	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
-    [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
-  lt_cv_ld_reload_flag,
-  [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    if test "$GCC" != yes; then
-      reload_cmds=false
-    fi
-    ;;
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_TAGDECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi[[45]]*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-  # unless we find 'file', for example because we are cross-compiling.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-    lt_cv_file_magic_cmd='func_win32_libid'
-  else
-    # Keep this pattern in sync with the one in func_win32_libid.
-    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
-    lt_cv_file_magic_cmd='$OBJDUMP -f'
-  fi
-  ;;
-
-cegcc*)
-  # use the weaker test based on 'objdump'. See mingw*.
-  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | dragonfly*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-haiku*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix[[3-9]]*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-*nto* | *qnx*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-tpf*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-])
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
-  case $host_os in
-  mingw* | pw32*)
-    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
-      want_nocaseglob=yes
-    else
-      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
-    fi
-    ;;
-  esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
-    [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
-    [Command to use when deplibs_check_method = "file_magic"])
-_LT_DECL([], [file_magic_glob], [1],
-    [How to find potential files when deplibs_check_method = "file_magic"])
-_LT_DECL([], [want_nocaseglob], [1],
-    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
-	  lt_cv_path_NM="$tmp_nm -B"
-	  break
-	  ;;
-	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	  */dev/null*)
-	    lt_cv_path_NM="$tmp_nm -p"
-	    break
-	    ;;
-	  *)
-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	    continue # so that we can try to find one that supports BSD flags
-	    ;;
-	  esac
-	  ;;
-	esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  : ${lt_cv_path_NM=no}
-fi])
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$DUMPBIN"; then :
-    # Let the user override the test.
-  else
-    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
-    *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
-      ;;
-    *)
-      DUMPBIN=:
-      ;;
-    esac
-  fi
-  AC_SUBST([DUMPBIN])
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
-  fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
-  [lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
-  cat conftest.out >&AS_MESSAGE_LOG_FD
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-# --------------------------------
-# how to determine the name of the shared library
-# associated with a specific link library.
-#  -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-m4_require([_LT_DECL_DLLTOOL])
-AC_CACHE_CHECK([how to associate runtime and link libraries],
-lt_cv_sharedlib_from_linklib_cmd,
-[lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh
-  # decide which to use based on capabilities of $DLLTOOL
-  case `$DLLTOOL --help 2>&1` in
-  *--identify-strict*)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
-    ;;
-  *)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
-    ;;
-  esac
-  ;;
-*)
-  # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
-  ;;
-esac
-])
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
-    [Command to associate shared and link libraries])
-])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-
-
-# _LT_PATH_MANIFEST_TOOL
-# ----------------------
-# locate the manifest tool
-m4_defun([_LT_PATH_MANIFEST_TOOL],
-[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
-  [lt_cv_path_mainfest_tool=no
-  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
-  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
-    lt_cv_path_mainfest_tool=yes
-  fi
-  rm -f conftest*])
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
-  MANIFEST_TOOL=:
-fi
-_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
-])# _LT_PATH_MANIFEST_TOOL
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
-  ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
-  case $cc_basename in
-  nvcc*)
-    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
-  *)
-    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
-  esac
-
-  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-    lt_cv_prog_compiler_rtti_exceptions,
-    [-fno-rtti -fno-exceptions], [],
-    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
-	[Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[[BCDT]]'
-  ;;
-cygwin* | mingw* | pw32* | cegcc*)
-  symcode='[[ABCDGISTW]]'
-  ;;
-hpux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDEGRST]]'
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[[BCDEGRST]]'
-  ;;
-osf*)
-  symcode='[[BCDEGQRST]]'
-  ;;
-solaris*)
-  symcode='[[BDRT]]'
-  ;;
-sco3.2v5*)
-  symcode='[[DT]]'
-  ;;
-sysv4.2uw2*)
-  symcode='[[DT]]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[[ABDT]]'
-  ;;
-sysv4)
-  symcode='[[DFNSTU]]'
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
-
-  # Write the raw and C identifiers.
-  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK ['"\
-"     {last_section=section; section=\$ 3};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-"     ' prfx=^$ac_symprfx]"
-  else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-  fi
-  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
-   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-# define LT@&t at _DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data.  */
-# define LT@&t at _DLSYM_CONST
-#else
-# define LT@&t at _DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
-	  cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols.  */
-LT@&t at _DLSYM_CONST struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-	  cat <<\_LT_EOF >> conftest.$ac_ext
-  {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_globsym_save_LIBS=$LIBS
-	  lt_globsym_save_CFLAGS=$CFLAGS
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS=$lt_globsym_save_LIBS
-	  CFLAGS=$lt_globsym_save_CFLAGS
-	else
-	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-  nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
-  nm_file_list_spec='@'
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
-    [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
-    [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_c_name_address],
-    [lt_cv_sys_global_symbol_to_c_name_address], [1],
-    [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
-    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
-    [Transform the output of nm in a C name address pair when lib prefix is needed])
-_LT_DECL([], [nm_file_list_spec], [1],
-    [Specify filename containing input files for $NM])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-m4_if([$1], [CXX], [
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | cygwin* | os2* | pw32* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-      ;;
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)=
-      ;;
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-    *qnx* | *nto*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-    *)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix[[4-9]]*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	else
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68*)
-	  # Green Hills C++ Compiler
-	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      mingw* | cygwin* | os2* | pw32* | cegcc*)
-	# This hack is so that the source file can tell whether it is being
-	# built for inclusion in a dll (and should export symbols for example).
-	m4_if([$1], [GCJ], [],
-	  [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++*)
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  ghcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | dragonfly*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-	    if test "$host_cpu" != ia64; then
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	    fi
-	    ;;
-	  aCC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-	    case $host_cpu in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      interix*)
-	# This is c89, which is MS Visual C++ (no shared libs)
-	# Anyone wants to do a port?
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  ecpc* )
-	    # old Intel C++ for x86_64 which still supported -KPIC.
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  icpc* )
-	    # Intel C++, used to be incompatible with GCC.
-	    # ICC 10 doesn't accept -KPIC any more.
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  pgCC* | pgcpp*)
-	    # Portland Group C++ compiler
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  cxx*)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
-	    # IBM XL 8.0, 9.0 on PPC and BlueGene
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd*)
-	;;
-      *qnx* | *nto*)
-        # QNX uses GNU C++, but need to define -shared option too, otherwise
-        # it will coredump.
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-        ;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    ;;
-	  RCC*)
-	    # Rational C++ 2.4.1
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  cxx*)
-	    # Digital/Compaq C++
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	    ;;
-	  gcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.x
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  lcc*)
-	    # Lucid
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      vxworks*)
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-	;;
-    esac
-  fi
-],
-[
-  if test "$GCC" = yes; then
-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)=
-      ;;
-
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	# +Z the default
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      enable_shared=no
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-
-    *)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-
-    case $cc_basename in
-    nvcc*) # Cuda Compiler Driver 2.2
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      else
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC (with -KPIC) is the default.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-      case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
-      ecc*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      # icc used to be incompatible with GCC.
-      # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      # Lahey Fortran 8.1.
-      lf95*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
-	;;
-      nagfor*)
-	# NAG Fortran compiler
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	;;
-      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-        ;;
-      ccc*)
-        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-        # All Alpha code is PIC.
-        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-        ;;
-      xl* | bgxl* | bgf* | mpixl*)
-	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-	;;
-      *)
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ F* | *Sun*Fortran*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
-	  ;;
-	*Sun\ C*)
-	  # Sun C 5.9
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  ;;
-	esac
-	;;
-      esac
-      ;;
-
-    newsos6)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # All OSF/1 code is PIC.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    rdos*)
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    solaris*)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    unicos*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-
-    uts4*)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *)
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-    esac
-  fi
-])
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-    ;;
-  *)
-    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
-    ;;
-esac
-
-AC_CACHE_CHECK([for $compiler option to produce PIC],
-  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
-  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
-  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
-    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
-    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
-    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
-     "" | " "*) ;;
-     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-     esac],
-    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
-	[Additional compiler flags for building library objects])
-
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-	[How to pass a linker flag through the compiler])
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
-  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
-  $lt_tmp_static_flag,
-  [],
-  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
-	[Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-  case $host_os in
-  aix[[4-9]]*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    # Also, AIX nm treats weak defined symbols like other global defined
-    # symbols, whereas GNU nm marks them as "W".
-    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    else
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-    ;;
-  cygwin* | mingw* | cegcc*)
-    case $cc_basename in
-    cl*) ;;
-    *)
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-      ;;
-    esac
-    ;;
-  *)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-    ;;
-  esac
-], [
-  runpath_var=
-  _LT_TAGVAR(allow_undefined_flag, $1)=
-  _LT_TAGVAR(always_export_symbols, $1)=no
-  _LT_TAGVAR(archive_cmds, $1)=
-  _LT_TAGVAR(archive_expsym_cmds, $1)=
-  _LT_TAGVAR(compiler_needs_object, $1)=no
-  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  _LT_TAGVAR(hardcode_automatic, $1)=no
-  _LT_TAGVAR(hardcode_direct, $1)=no
-  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
-  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-  _LT_TAGVAR(hardcode_minus_L, $1)=no
-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(inherit_rpath, $1)=no
-  _LT_TAGVAR(link_all_deplibs, $1)=unknown
-  _LT_TAGVAR(module_cmds, $1)=
-  _LT_TAGVAR(module_expsym_cmds, $1)=
-  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
-  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-  _LT_TAGVAR(thread_safe_flag_spec, $1)=
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  _LT_TAGVAR(include_expsyms, $1)=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  _LT_TAGVAR(ld_shlibs, $1)=yes
-
-  # On some targets, GNU ld is compatible enough with the native linker
-  # that we're better off using the native interface for both.
-  lt_use_gnu_ld_interface=no
-  if test "$with_gnu_ld" = yes; then
-    case $host_os in
-      aix*)
-	# The AIX port of GNU ld has always aspired to compatibility
-	# with the native linker.  However, as the warning in the GNU ld
-	# block says, versions before 2.19.5* couldn't really create working
-	# shared libraries, regardless of the interface used.
-	case `$LD -v 2>&1` in
-	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
-	  *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
-	  *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
-	  *)
-	    lt_use_gnu_ld_interface=yes
-	    ;;
-	esac
-	;;
-      *)
-	lt_use_gnu_ld_interface=yes
-	;;
-    esac
-  fi
-
-  if test "$lt_use_gnu_ld_interface" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>&1` in
-      *GNU\ gold*) supports_anon_versioning=yes ;;
-      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-      *\ 2.11.*) ;; # other 2.11 versions
-      *) supports_anon_versioning=yes ;;
-    esac
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix[[3-9]]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-        ;;
-      m68k)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-        ;;
-      esac
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-      # as there is no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(always_export_symbols, $1)=no
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-
-      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    haiku*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    interix[[3-9]]*)
-      _LT_TAGVAR(hardcode_direct, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-      # Instead, shared libraries are loaded at an image base (0x10000000 by
-      # default) and relocated if they conflict, which is a slow very memory
-      # consuming and fragmenting process.  To avoid this, we pick a random,
-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      ;;
-
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-      tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
-	case $cc_basename in
-	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-	esac
-      fi
-      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test "$tmp_diet" = no
-      then
-	tmp_addflag=' $pic_flag'
-	tmp_sharedflag='-shared'
-	case $cc_basename,$host_cpu in
-        pgcc*)				# Portland Group C compiler
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95* | pgfortran*)
-					# Portland Group f77 and f90 compilers
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	lf95*)				# Lahey Fortran 8.1
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-	  tmp_sharedflag='--shared' ;;
-	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
-	  tmp_sharedflag='-qmkshrobj'
-	  tmp_addflag= ;;
-	nvcc*)	# Cuda Compiler Driver 2.2
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
-	  ;;
-	esac
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)			# Sun C 5.9
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
-	  tmp_sharedflag='-G' ;;
-	*Sun\ F*)			# Sun Fortran 8.3
-	  tmp_sharedflag='-G' ;;
-	esac
-	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-        if test "x$supports_anon_versioning" = xyes; then
-          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	    echo "local: *; };" >> $output_objdir/$libname.ver~
-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-        fi
-
-	case $cc_basename in
-	xlf* | bgf* | bgxlf* | mpixlf*)
-	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-	  _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-	  if test "x$supports_anon_versioning" = xyes; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-	  fi
-	  ;;
-	esac
-      else
-        _LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-	;;
-	*)
-	  # For security reasons, it is highly recommended that you always
-	  # use absolute paths for naming shared libraries, and exclude the
-	  # DT_RUNPATH tag from executables and libraries.  But doing so
-	  # requires that you compile everything twice, which is a pain.
-	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	  else
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-
-    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
-      runpath_var=
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(always_export_symbols, $1)=yes
-      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	_LT_TAGVAR(hardcode_direct, $1)=unsupported
-      fi
-      ;;
-
-    aix[[4-9]]*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	# Also, AIX nm treats weak defined symbols like other global
-	# defined symbols, whereas GNU nm marks them as "W".
-	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	else
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-	  for ld_flag in $LDFLAGS; do
-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-	    aix_use_runtimelinking=yes
-	    break
-	  fi
-	  done
-	  ;;
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      _LT_TAGVAR(archive_cmds, $1)=''
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[[012]]|aix4.[[012]].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	  # We have reworked collect2
-	  :
-	  else
-	  # We have old collect2
-	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-	  ;;
-	esac
-	shared_flag='-shared'
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag="$shared_flag "'${wl}-G'
-	fi
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-	  fi
-	fi
-      fi
-
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      _LT_TAGVAR(always_export_symbols, $1)=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
-        # Determine the default libpath from the value encoded in an
-        # empty executable.
-        _LT_SYS_MODULE_PATH_AIX([$1])
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-      else
-	if test "$host_cpu" = ia64; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an
-	 # empty executable.
-	 _LT_SYS_MODULE_PATH_AIX([$1])
-	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  if test "$with_gnu_ld" = yes; then
-	    # We only use this code for GNU lds that support --whole-archive.
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	  else
-	    # Exported symbols can be pulled into shared objects from archives
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	  fi
-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-        ;;
-      m68k)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-        ;;
-      esac
-      ;;
-
-    bsdi[[45]]*)
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      case $cc_basename in
-      cl*)
-	# Native MSVC
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	_LT_TAGVAR(always_export_symbols, $1)=yes
-	_LT_TAGVAR(file_list_spec, $1)='@'
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	  else
-	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	  fi~
-	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	  linknames='
-	# The linker will not automatically build a static lib if we build a DLL.
-	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
-	# Don't use ranlib
-	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-	_LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-	  lt_tool_outputfile="@TOOL_OUTPUT@"~
-	  case $lt_outputfile in
-	    *.exe|*.EXE) ;;
-	    *)
-	      lt_outputfile="$lt_outputfile.exe"
-	      lt_tool_outputfile="$lt_tool_outputfile.exe"
-	      ;;
-	  esac~
-	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	    $RM "$lt_outputfile.manifest";
-	  fi'
-	;;
-      *)
-	# Assume MSVC wrapper
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-	# The linker will automatically build a .lib file if we build a DLL.
-	_LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	# FIXME: Should let the user specify the lib program.
-	_LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	;;
-      esac
-      ;;
-
-    darwin* | rhapsody*)
-      _LT_DARWIN_LINKER_FEATURES($1)
-      ;;
-
-    dgux*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    freebsd1*)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-	_LT_TAGVAR(hardcode_direct, $1)=yes
-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	_LT_TAGVAR(hardcode_minus_L, $1)=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	m4_if($1, [], [
-	  # Older versions of the 11.00 compiler do not understand -b yet
-	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
-	  _LT_LINKER_OPTION([if $CC understands -b],
-	    _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
-	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
-	    [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
-	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  _LT_TAGVAR(hardcode_direct, $1)=no
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  ;;
-	*)
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	# Try to use the -exported_symbol ld option, if it does not
-	# work, assume that -exports_file does not work either and
-	# implicitly export all symbols.
-	# This should be the same for all languages, so no per-tag cache variable.
-	AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
-	  [lt_cv_irix_exported_symbol],
-	  [save_LDFLAGS="$LDFLAGS"
-	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-	   AC_LINK_IFELSE(
-	     [AC_LANG_SOURCE(
-	        [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
-			      [C++], [[int foo (void) { return 0; }]],
-			      [Fortran 77], [[
-      subroutine foo
-      end]],
-			      [Fortran], [[
-      subroutine foo
-      end]])])],
-	      [lt_cv_irix_exported_symbol=yes],
-	      [lt_cv_irix_exported_symbol=no])
-           LDFLAGS="$save_LDFLAGS"])
-	if test "$lt_cv_irix_exported_symbol" = yes; then
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-	fi
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(inherit_rpath, $1)=yes
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    newsos6)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *nto* | *qnx*)
-      ;;
-
-    openbsd*)
-      if test -f /usr/libexec/ld.so; then
-	_LT_TAGVAR(hardcode_direct, $1)=yes
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	else
-	  case $host_os in
-	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	     ;;
-	   *)
-	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	     ;;
-	  esac
-	fi
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    os2*)
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      else
-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    solaris*)
-      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-      else
-	case `$CC -V 2>&1` in
-	*"Compilers 5.0"*)
-	  wlarc=''
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
-	  ;;
-	*)
-	  wlarc='${wl}'
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-	  ;;
-	esac
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      case $host_os in
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-      *)
-	# The compiler driver will combine and reorder linker options,
-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
-	# but is careful enough not to reorder.
-	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test "$GCC" = yes; then
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	else
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-	fi
-	;;
-      esac
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-	  _LT_TAGVAR(hardcode_direct, $1)=no
-        ;;
-	motorola)
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4.3*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	_LT_TAGVAR(ld_shlibs, $1)=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
-      # link with -lc, and that would cause any symbols used from libc to
-      # always be unresolved, which means just about no library would
-      # ever link correctly.  If we're not using GNU ld we use -z text
-      # though, which does catch some bad symbols but isn't as heavy-handed
-      # as -z defs.
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    esac
-
-    if test x$host_vendor = xsni; then
-      case $host in
-      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
-	;;
-      esac
-    fi
-  fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
-    [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
-  # Assume -lc should be added
-  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $_LT_TAGVAR(archive_cmds, $1) in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
-	[lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
-	[$RM conftest*
-	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-	if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-	  soname=conftest
-	  lib=conftest
-	  libobjs=conftest.$ac_objext
-	  deplibs=
-	  wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
-	  pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
-	  compiler_flags=-v
-	  linker_flags=-v
-	  verstring=
-	  output_objdir=.
-	  libname=conftest
-	  lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
-	  _LT_TAGVAR(allow_undefined_flag, $1)=
-	  if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
-	  then
-	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	  else
-	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  fi
-	  _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-	else
-	  cat conftest.err 1>&5
-	fi
-	$RM conftest*
-	])
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
-    [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
-    [enable_shared_with_static_runtimes], [0],
-    [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
-    [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
-    [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
-    [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
-    [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
-    [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
-    [Commands used to build a loadable module if different from building
-    a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
-    [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
-    [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
-    [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
-    [Flag to hardcode $libdir into a binary during linking.
-    This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1],
-    [[If ld is used when linking, flag to hardcode $libdir into a binary
-    during linking.  This must work even if $libdir does not exist]])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
-    [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
-    DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
-    DIR into the resulting binary and the resulting library dependency is
-    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
-    library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
-    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-    into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
-    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-    into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
-    [Set to "yes" if building a shared library automatically hardcodes DIR
-    into the library and all subsequent libraries and executables linked
-    against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
-    [Set to yes if linker adds runtime paths of dependent libraries
-    to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
-    [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [always_export_symbols], [0],
-    [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
-    [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
-    [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
-    [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
-    [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [postlink_cmds], [2],
-    [Commands necessary for finishing linking programs])
-_LT_TAGDECL([], [file_list_spec], [1],
-    [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl    [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_SYS_DYNAMIC_LINKER($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-  LT_SYS_DLOPEN_SELF
-  _LT_CMD_STRIPLIB
-
-  # Report which library types will actually be built
-  AC_MSG_CHECKING([if libtool supports shared libraries])
-  AC_MSG_RESULT([$can_build_shared])
-
-  AC_MSG_CHECKING([whether to build shared libraries])
-  test "$can_build_shared" = "no" && enable_shared=no
-
-  # On AIX, shared libraries and static libraries use the same namespace, and
-  # are all built from PIC.
-  case $host_os in
-  aix3*)
-    test "$enable_shared" = yes && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
-    fi
-    ;;
-
-  aix[[4-9]]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
-    fi
-    ;;
-  esac
-  AC_MSG_RESULT([$enable_shared])
-
-  AC_MSG_CHECKING([whether to build static libraries])
-  # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
-  AC_MSG_RESULT([$enable_static])
-
-  _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC="$lt_save_CC"
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  AC_PROG_CXXCPP
-else
-  _lt_caught_CXX_error=yes
-fi
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="int some_variable = 0;"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_CFLAGS=$CFLAGS
-  lt_save_LD=$LD
-  lt_save_GCC=$GCC
-  GCC=$GXX
-  lt_save_with_gnu_ld=$with_gnu_ld
-  lt_save_path_LD=$lt_cv_path_LD
-  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-  else
-    $as_unset lt_cv_prog_gnu_ld
-  fi
-  if test -n "${lt_cv_path_LDCXX+set}"; then
-    lt_cv_path_LD=$lt_cv_path_LDCXX
-  else
-    $as_unset lt_cv_path_LD
-  fi
-  test -z "${LDCXX+set}" || LD=$LDCXX
-  CC=${CXX-"c++"}
-  CFLAGS=$CXXFLAGS
-  compiler=$CC
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test "$GXX" = yes; then
-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-    else
-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-    fi
-
-    if test "$GXX" = yes; then
-      # Set up default GNU C++ configuration
-
-      LT_PATH_LD
-
-      # Check if GNU C++ uses GNU ld as the underlying linker, since the
-      # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-        # If archive_cmds runs LD, not CC, wlarc should be empty
-        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-        #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
-
-        # ancient GNU ld didn't support --whole-archive et. al.
-        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
-	  $GREP 'no-whole-archive' > /dev/null; then
-          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-        else
-          _LT_TAGVAR(whole_archive_flag_spec, $1)=
-        fi
-      else
-        with_gnu_ld=no
-        wlarc=
-
-        # A generic and very simple default shared library creation
-        # command for GNU C++ for the case where it uses the native
-        # linker, instead of GNU ld.  If possible, this setting should
-        # overridden to take advantage of the native linker features on
-        # the platform it is being used on.
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-      fi
-
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-    else
-      GXX=no
-      with_gnu_ld=no
-      wlarc=
-    fi
-
-    # PORTME: fill in a description of your system's C++ link characteristics
-    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-    _LT_TAGVAR(ld_shlibs, $1)=yes
-    case $host_os in
-      aix3*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-      aix[[4-9]]*)
-        if test "$host_cpu" = ia64; then
-          # On IA64, the linker does run time linking by default, so we don't
-          # have to do anything special.
-          aix_use_runtimelinking=no
-          exp_sym_flag='-Bexport'
-          no_entry_flag=""
-        else
-          aix_use_runtimelinking=no
-
-          # Test if we are trying to use run time linking or normal
-          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
-          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-	    for ld_flag in $LDFLAGS; do
-	      case $ld_flag in
-	      *-brtl*)
-	        aix_use_runtimelinking=yes
-	        break
-	        ;;
-	      esac
-	    done
-	    ;;
-          esac
-
-          exp_sym_flag='-bexport'
-          no_entry_flag='-bnoentry'
-        fi
-
-        # When large executables or shared objects are built, AIX ld can
-        # have problems creating the table of contents.  If linking a library
-        # or program results in "error TOC overflow" add -mminimal-toc to
-        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-        _LT_TAGVAR(archive_cmds, $1)=''
-        _LT_TAGVAR(hardcode_direct, $1)=yes
-        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-        _LT_TAGVAR(link_all_deplibs, $1)=yes
-        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
-        if test "$GXX" = yes; then
-          case $host_os in aix4.[[012]]|aix4.[[012]].*)
-          # We only want to do this on AIX 4.2 and lower, the check
-          # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	    # We have reworked collect2
-	    :
-	  else
-	    # We have old collect2
-	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
-	    # It fails to find uninstalled libraries when the uninstalled
-	    # path is not listed in the libpath.  Setting hardcode_minus_L
-	    # to unsupported forces relinking
-	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-          esac
-          shared_flag='-shared'
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag="$shared_flag "'${wl}-G'
-	  fi
-        else
-          # not using gcc
-          if test "$host_cpu" = ia64; then
-	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	  # chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-          else
-	    if test "$aix_use_runtimelinking" = yes; then
-	      shared_flag='${wl}-G'
-	    else
-	      shared_flag='${wl}-bM:SRE'
-	    fi
-          fi
-        fi
-
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
-        # It seems that -bexpall does not export symbols beginning with
-        # underscore (_), so it is better to generate a list of symbols to
-	# export.
-        _LT_TAGVAR(always_export_symbols, $1)=yes
-        if test "$aix_use_runtimelinking" = yes; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          _LT_SYS_MODULE_PATH_AIX([$1])
-          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-        else
-          if test "$host_cpu" = ia64; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-          else
-	    # Determine the default libpath from the value encoded in an
-	    # empty executable.
-	    _LT_SYS_MODULE_PATH_AIX([$1])
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	    # Warning - without using the other run time loading flags,
-	    # -berok will link without error, but may produce a broken library.
-	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	    if test "$with_gnu_ld" = yes; then
-	      # We only use this code for GNU lds that support --whole-archive.
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    else
-	      # Exported symbols can be pulled into shared objects from archives
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	    fi
-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	    # This is similar to how AIX traditionally builds its shared
-	    # libraries.
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-          fi
-        fi
-        ;;
-
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	else
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-
-      chorus*)
-        case $cc_basename in
-          *)
-	  # FIXME: insert proper C++ library support
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	  ;;
-        esac
-        ;;
-
-      cygwin* | mingw* | pw32* | cegcc*)
-	case $GXX,$cc_basename in
-	,cl* | no,cl*)
-	  # Native MSVC
-	  # hardcode_libdir_flag_spec is actually meaningless, as there is
-	  # no search path for DLLs.
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  _LT_TAGVAR(always_export_symbols, $1)=yes
-	  _LT_TAGVAR(file_list_spec, $1)='@'
-	  # Tell ltmain to make .lib files, not .a files.
-	  libext=lib
-	  # Tell ltmain to make .dll files, not .so files.
-	  shrext_cmds=".dll"
-	  # FIXME: Setting linknames here is a bad hack.
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	    else
-	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	    fi~
-	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	    linknames='
-	  # The linker will not automatically build a static lib if we build a DLL.
-	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	  # Don't use ranlib
-	  _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-	  _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-	    lt_tool_outputfile="@TOOL_OUTPUT@"~
-	    case $lt_outputfile in
-	      *.exe|*.EXE) ;;
-	      *)
-		lt_outputfile="$lt_outputfile.exe"
-		lt_tool_outputfile="$lt_tool_outputfile.exe"
-		;;
-	    esac~
-	    func_to_tool_file "$lt_outputfile"~
-	    if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	      $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	      $RM "$lt_outputfile.manifest";
-	    fi'
-	  ;;
-	*)
-	  # g++
-	  # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-	  # as there is no search path for DLLs.
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  _LT_TAGVAR(always_export_symbols, $1)=no
-	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	    # If the export-symbols file already is a .def file (1st line
-	    # is EXPORTS), use it as is; otherwise, prepend...
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      cp $export_symbols $output_objdir/$soname.def;
-	    else
-	      echo EXPORTS > $output_objdir/$soname.def;
-	      cat $export_symbols >> $output_objdir/$soname.def;
-	    fi~
-	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	  else
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	  fi
-	  ;;
-	esac
-	;;
-      darwin* | rhapsody*)
-        _LT_DARWIN_LINKER_FEATURES($1)
-	;;
-
-      dgux*)
-        case $cc_basename in
-          ec++*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          ghcx*)
-	    # Green Hills C++ Compiler
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      freebsd[[12]]*)
-        # C++ shared libraries reported to be fairly broken before
-	# switch to ELF
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      freebsd-elf*)
-        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-        ;;
-
-      freebsd* | dragonfly*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        _LT_TAGVAR(ld_shlibs, $1)=yes
-        ;;
-
-      gnu*)
-        ;;
-
-      haiku*)
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(link_all_deplibs, $1)=yes
-        ;;
-
-      hpux9*)
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-        _LT_TAGVAR(hardcode_direct, $1)=yes
-        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-				             # but as the default
-				             # location of the library.
-
-        case $cc_basename in
-          CC*)
-            # FIXME: insert proper C++ library support
-            _LT_TAGVAR(ld_shlibs, $1)=no
-            ;;
-          aCC*)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            # Commands to make compiler produce verbose output that lists
-            # what "hidden" libraries, object files and flags are used when
-            # linking a shared library.
-            #
-            # There doesn't appear to be a way to prevent this compiler from
-            # explicitly linking system object files so we need to strip them
-            # from the output so that they don't get included in the library
-            # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-            ;;
-          *)
-            if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              _LT_TAGVAR(ld_shlibs, $1)=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-          case $host_cpu in
-            hppa*64*|ia64*)
-              ;;
-            *)
-	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-              ;;
-          esac
-        fi
-        case $host_cpu in
-          hppa*64*|ia64*)
-            _LT_TAGVAR(hardcode_direct, $1)=no
-            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-            ;;
-          *)
-            _LT_TAGVAR(hardcode_direct, $1)=yes
-            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					         # but as the default
-					         # location of the library.
-            ;;
-        esac
-
-        case $cc_basename in
-          CC*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          aCC*)
-	    case $host_cpu in
-	      hppa*64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      ia64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      *)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	    esac
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test $with_gnu_ld = no; then
-	        case $host_cpu in
-	          hppa*64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          ia64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          *)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	        esac
-	      fi
-	    else
-	      # FIXME: insert proper C++ library support
-	      _LT_TAGVAR(ld_shlibs, $1)=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      interix[[3-9]]*)
-	_LT_TAGVAR(hardcode_direct, $1)=no
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-	# Instead, shared libraries are loaded at an image base (0x10000000 by
-	# default) and relocated if they conflict, which is a slow very memory
-	# consuming and fragmenting process.  To avoid this, we pick a random,
-	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	;;
-      irix5* | irix6*)
-        case $cc_basename in
-          CC*)
-	    # SGI C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test "$with_gnu_ld" = no; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	      else
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
-	      fi
-	    fi
-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-	    ;;
-        esac
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(inherit_rpath, $1)=yes
-        ;;
-
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-	    ;;
-	  icpc* | ecpc* )
-	    # Intel C++
-	    with_gnu_ld=yes
-	    # version 8.0 and above of icpc choke on multiply defined symbols
-	    # if we add $predep_objects and $postdep_objects, however 7.1 and
-	    # earlier do not add the objects themselves.
-	    case `$CC -V 2>&1` in
-	      *"Version 7."*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	      *)  # Version 8.0 or newer
-	        tmp_idyn=
-	        case $host_cpu in
-		  ia64*) tmp_idyn=' -i_dynamic';;
-		esac
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	    esac
-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    ;;
-          pgCC* | pgcpp*)
-            # Portland Group C++ compiler
-	    case `$CC -V` in
-	    *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
-	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
-	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
-		$RANLIB $oldlib'
-	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    *) # Version 6 and above use weak symbols
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    esac
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-            ;;
-	  cxx*)
-	    # Compaq C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	    runpath_var=LD_RUN_PATH
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
-	    ;;
-	  xl* | mpixl* | bgxl*)
-	    # IBM XL 8.0 on PPC, with GNU ld
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    if test "x$supports_anon_versioning" = xyes; then
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-		echo "local: *; };" >> $output_objdir/$libname.ver~
-		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	    fi
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	      _LT_TAGVAR(compiler_needs_object, $1)=yes
-
-	      # Not sure whether something based on
-	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-	      # would be better.
-	      output_verbose_link_cmd='func_echo_all'
-
-	      # Archives containing C++ object files must be created using
-	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	      # necessary to make sure instantiated templates are included
-	      # in the archive.
-	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-
-      lynxos*)
-        # FIXME: insert proper C++ library support
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      m88k*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      mvs*)
-        case $cc_basename in
-          cxx*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-	  *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-	esac
-	;;
-
-      netbsd*)
-        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-	  wlarc=
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	fi
-	# Workaround some broken pre-1.5 toolchains
-	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-	;;
-
-      *nto* | *qnx*)
-        _LT_TAGVAR(ld_shlibs, $1)=yes
-	;;
-
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      openbsd*)
-	if test -f /usr/libexec/ld.so; then
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-	  fi
-	  output_verbose_link_cmd=func_echo_all
-	else
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-
-      osf3* | osf4* | osf5*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Archives containing C++ object files must be created using
-	    # the KAI C++ compiler.
-	    case $host in
-	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
-	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
-	    esac
-	    ;;
-          RCC*)
-	    # Rational C++ 2.4.1
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          cxx*)
-	    case $host in
-	      osf3*)
-	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-		;;
-	      *)
-	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
-	          $RM $lib.exp'
-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-		;;
-	    esac
-
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-	  *)
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	      case $host in
-	        osf3*)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	        *)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	      esac
-
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	      # Commands to make compiler produce verbose output that lists
-	      # what "hidden" libraries, object files and flags are used when
-	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-	    else
-	      # FIXME: insert proper C++ library support
-	      _LT_TAGVAR(ld_shlibs, $1)=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      psos*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      sunos4*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.x
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          lcc*)
-	    # Lucid
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      solaris*)
-        case $cc_basename in
-          CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
-	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	    case $host_os in
-	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-	      *)
-		# The compiler driver will combine and reorder linker options,
-		# but understands `-z linker_flag'.
-	        # Supported since Solaris 2.6 (maybe 2.5.1?)
-		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-	        ;;
-	    esac
-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-
-	    output_verbose_link_cmd='func_echo_all'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	    ;;
-          gcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	    # The C++ compiler must be used to create the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    # GNU C++ compiler with Solaris linker
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
-	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      else
-	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	        # platform.
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      fi
-
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
-	      case $host_os in
-		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-		*)
-		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-		  ;;
-	      esac
-	    fi
-	    ;;
-        esac
-        ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      case $cc_basename in
-        CC*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-      esac
-      ;;
-
-      sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We can NOT use -z defs as we might desire, because we do not
-	# link with -lc, and that would cause any symbols used from libc to
-	# always be unresolved, which means just about no library would
-	# ever link correctly.  If we're not using GNU ld we use -z text
-	# though, which does catch some bad symbols but isn't as heavy-handed
-	# as -z defs.
-	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-	_LT_TAGVAR(link_all_deplibs, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-	runpath_var='LD_RUN_PATH'
-
-	case $cc_basename in
-          CC*)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
-	      '"$_LT_TAGVAR(old_archive_cmds, $1)"
-	    _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
-	      '"$_LT_TAGVAR(reload_cmds, $1)"
-	    ;;
-	  *)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	esac
-      ;;
-
-      tandem*)
-        case $cc_basename in
-          NCC*)
-	    # NonStop-UX NCC 3.20
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      vxworks*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      *)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-    esac
-
-    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-    _LT_TAGVAR(GCC, $1)="$GXX"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_SYS_HIDDEN_LIBDEPS($1)
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-  LDCXX=$LD
-  LD=$lt_save_LD
-  GCC=$lt_save_GCC
-  with_gnu_ld=$lt_save_with_gnu_ld
-  lt_cv_path_LDCXX=$lt_cv_path_LD
-  lt_cv_path_LD=$lt_save_path_LD
-  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_FUNC_STRIPNAME_CNF
-# ----------------------
-# func_stripname_cnf prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-#
-# This function is identical to the (non-XSI) version of func_stripname,
-# except this one can be used by m4 code that may be executed by configure,
-# rather than the libtool script.
-m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
-AC_REQUIRE([_LT_DECL_SED])
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
-func_stripname_cnf ()
-{
-  case ${2} in
-  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-  esac
-} # func_stripname_cnf
-])# _LT_FUNC_STRIPNAME_CNF
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library.  It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
-      subroutine foo
-      implicit none
-      integer*4 a
-      a=0
-      return
-      end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
-      subroutine foo
-      implicit none
-      integer a
-      a=0
-      return
-      end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
-  private int a;
-  public void bar (void) {
-    a = 0;
-  }
-};
-_LT_EOF
-])
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-esac
-
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  for p in `eval "$output_verbose_link_cmd"`; do
-    case ${prev}${p} in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
-	 prev=$p
-	 continue
-       fi
-
-       # Expand the sysroot to ease extracting the directories later.
-       if test -z "$prev"; then
-         case $p in
-         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
-         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
-         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
-         esac
-       fi
-       case $p in
-       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
-       esac
-       if test "$pre_test_object_deps_done" = no; then
-	 case ${prev} in
-	 -L | -R)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
-	   else
-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
-	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
-	 else
-	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
-	 fi
-       fi
-       prev=
-       ;;
-
-    *.lto.$objext) ;; # Ignore GCC LTO objects
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
-	   _LT_TAGVAR(predep_objects, $1)="$p"
-	 else
-	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
-	 fi
-       else
-	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
-	   _LT_TAGVAR(postdep_objects, $1)="$p"
-	 else
-	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-  # hack all around it, let's just trust "g++" to DTRT.
-  _LT_TAGVAR(predep_objects,$1)=
-  _LT_TAGVAR(postdep_objects,$1)=
-  _LT_TAGVAR(postdeps,$1)=
-  ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC* | sunCC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
-    [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
-    [Dependencies to place before and after the objects being linked to
-    create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
-    [The library search path used internally by the compiler when linking
-    a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
-  _lt_disable_F77=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="\
-      subroutine t
-      return
-      end
-"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code="\
-      program t
-      end
-"
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
-  lt_save_GCC=$GCC
-  lt_save_CFLAGS=$CFLAGS
-  CC=${F77-"f77"}
-  CFLAGS=$FFLAGS
-  compiler=$CC
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-  GCC=$G77
-  if test -n "$compiler"; then
-    AC_MSG_CHECKING([if libtool supports shared libraries])
-    AC_MSG_RESULT([$can_build_shared])
-
-    AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
-
-    # On AIX, shared libraries and static libraries use the same namespace, and
-    # are all built from PIC.
-    case $host_os in
-      aix3*)
-        test "$enable_shared" = yes && enable_static=no
-        if test -n "$RANLIB"; then
-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-          postinstall_cmds='$RANLIB $lib'
-        fi
-        ;;
-      aix[[4-9]]*)
-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-	  test "$enable_shared" = yes && enable_static=no
-	fi
-        ;;
-    esac
-    AC_MSG_RESULT([$enable_shared])
-
-    AC_MSG_CHECKING([whether to build static libraries])
-    # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
-    AC_MSG_RESULT([$enable_static])
-
-    _LT_TAGVAR(GCC, $1)="$G77"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  GCC=$lt_save_GCC
-  CC="$lt_save_CC"
-  CFLAGS="$lt_save_CFLAGS"
-fi # test "$_lt_disable_F77" != yes
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_LANG_PUSH(Fortran)
-
-if test -z "$FC" || test "X$FC" = "Xno"; then
-  _lt_disable_FC=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="\
-      subroutine t
-      return
-      end
-"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code="\
-      program t
-      end
-"
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
-  lt_save_GCC=$GCC
-  lt_save_CFLAGS=$CFLAGS
-  CC=${FC-"f95"}
-  CFLAGS=$FCFLAGS
-  compiler=$CC
-  GCC=$ac_cv_fc_compiler_gnu
-
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-
-  if test -n "$compiler"; then
-    AC_MSG_CHECKING([if libtool supports shared libraries])
-    AC_MSG_RESULT([$can_build_shared])
-
-    AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
-
-    # On AIX, shared libraries and static libraries use the same namespace, and
-    # are all built from PIC.
-    case $host_os in
-      aix3*)
-        test "$enable_shared" = yes && enable_static=no
-        if test -n "$RANLIB"; then
-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-          postinstall_cmds='$RANLIB $lib'
-        fi
-        ;;
-      aix[[4-9]]*)
-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-	  test "$enable_shared" = yes && enable_static=no
-	fi
-        ;;
-    esac
-    AC_MSG_RESULT([$enable_shared])
-
-    AC_MSG_CHECKING([whether to build static libraries])
-    # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
-    AC_MSG_RESULT([$enable_static])
-
-    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_SYS_HIDDEN_LIBDEPS($1)
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  GCC=$lt_save_GCC
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-fi # test "$_lt_disable_FC" != yes
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-CFLAGS=$GCJFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-
-  _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-CFLAGS=
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
-  :
-  _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
-  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
-    [AC_CHECK_TOOL(GCJ, gcj,)
-      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-      AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-# _LT_DECL_DLLTOOL
-# ----------------
-# Ensure DLLTOOL variable is set.
-m4_defun([_LT_DECL_DLLTOOL],
-[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
-AC_SUBST([DLLTOOL])
-])
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible.  Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
-    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-############################################################
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && continue
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,b/c, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  lt_unset=unset
-else
-  lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  lt_SP2NL='tr \040 \012'
-  lt_NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  lt_SP2NL='tr \100 \n'
-  lt_NL2SP='tr \r\n \100\100'
-  ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-# ------------------------------------------------------
-# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-m4_defun([_LT_PROG_FUNCTION_REPLACE],
-[dnl {
-sed -e '/^$1 ()$/,/^} # $1 /c\
-$1 ()\
-{\
-m4_bpatsubsts([$2], [$], [\\], [^\([	 ]\)], [\\\1])
-} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-])
-
-
-# _LT_PROG_REPLACE_SHELLFNS
-# -------------------------
-# Replace existing portable implementations of several shell functions with
-# equivalent extended shell implementations where those features are available..
-m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-[if test x"$xsi_shell" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
-    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-    # positional parameters, so assign one to ordinary parameter first.
-    func_stripname_result=${3}
-    func_stripname_result=${func_stripname_result#"${1}"}
-    func_stripname_result=${func_stripname_result%"${2}"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
-    func_split_long_opt_name=${1%%=*}
-    func_split_long_opt_arg=${1#*=}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
-    func_split_short_opt_arg=${1#??}
-    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
-    case ${1} in
-      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-      *)    func_lo2o_result=${1} ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
-
-  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
-
-  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
-fi
-
-if test x"$lt_shell_append" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
-    func_quote_for_eval "${2}"
-dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
-    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-
-  # Save a `func_append' function call where possible by direct use of '+='
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-else
-  # Save a `func_append' function call even when '+=' is not available
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
-  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-fi
-])
-
-# _LT_PATH_CONVERSION_FUNCTIONS
-# -----------------------------
-# Determine which file name conversion functions should be used by
-# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
-# for certain cross-compile configurations and native mingw.
-m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_MSG_CHECKING([how to convert $build file names to $host format])
-AC_CACHE_VAL(lt_cv_to_host_file_cmd,
-[case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
-        ;;
-    esac
-    ;;
-  *-*-cygwin* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_noop
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
-        ;;
-    esac
-    ;;
-  * ) # unhandled hosts (and "normal" native builds)
-    lt_cv_to_host_file_cmd=func_convert_file_noop
-    ;;
-esac
-])
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
-_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
-         [0], [convert $build file names to $host format])dnl
-
-AC_MSG_CHECKING([how to convert $build file names to toolchain format])
-AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
-[#assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
-        ;;
-    esac
-    ;;
-esac
-])
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
-_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
-         [0], [convert $build files to toolchain format])dnl
-])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
deleted file mode 100644
index 17cfd51..0000000
--- a/m4/ltoptions.m4
+++ /dev/null
@@ -1,369 +0,0 @@
-# Helper functions for option handling.                    -*- Autoconf -*-
-#
-#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-#   Inc.
-#   Written by Gary V. Vaughan, 2004
-#
-# 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.
-
-# serial 7 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
-        _LT_MANGLE_DEFUN([$1], [$2]),
-    [m4_warning([Unknown $1 option `$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
-		      [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME.  If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-    [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
-  dnl
-  dnl Simply set some default values (i.e off) if boolean options were not
-  dnl specified:
-  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
-  ])
-  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
-  ])
-  dnl
-  dnl If no reference was made to various pairs of opposing options, then
-  dnl we run the default mode handler for the pair.  For example, if neither
-  dnl `shared' nor `disable-shared' was passed, we enable building of shared
-  dnl archives by default:
-  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
-  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
-  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
-  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
-  		   [_LT_ENABLE_FAST_INSTALL])
-  ])
-])# _LT_SET_OPTIONS
-
-
-## --------------------------------- ##
-## Macros to handle LT_INIT options. ##
-## --------------------------------- ##
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS],      [1], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
-    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
-	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
-    _LT_DECL([build_libtool_libs], [enable_shared], [0],
-	[Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
-    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
-	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
-    _LT_DECL([build_old_libs], [enable_static], [0],
-	[Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
-    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
-    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
-	 [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
-# LT_INIT options.
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic],
-	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
-    [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-## ----------------- ##
-## LTDL_INIT Options ##
-## ----------------- ##
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
-		 [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
-		 [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
-		 [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
-		 [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
-		 [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4
deleted file mode 100644
index 9000a05..0000000
--- a/m4/ltsugar.m4
+++ /dev/null
@@ -1,123 +0,0 @@
-# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# 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.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
-       [$#], [2], [[$2]],
-       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
-       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
-       [$#], 1, [],
-       [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
-	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
-       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
-	     [m4_foreach([_Lt_suffix],
-		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
-	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
-	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
-		 [lt_append([$1], [$2], [$3])$4],
-		 [$5])],
-	  [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
-	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
-    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
-	[$5],
-    [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
-  [lt_join(m4_quote(m4_default([$4], [[, ]])),
-           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
-		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
deleted file mode 100644
index 9c7b5d4..0000000
--- a/m4/ltversion.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# ltversion.m4 -- version numbers			-*- Autoconf -*-
-#
-#   Copyright (C) 2004 Free Software Foundation, Inc.
-#   Written by Scott James Remnant, 2004
-#
-# 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.
-
-# @configure_input@
-
-# serial 3293 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.4])
-m4_define([LT_PACKAGE_REVISION], [1.3293])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4'
-macro_revision='1.3293'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
deleted file mode 100644
index c573da9..0000000
--- a/m4/lt~obsolete.m4
+++ /dev/null
@@ -1,98 +0,0 @@
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
-#
-#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-#   Written by Scott James Remnant, 2004.
-#
-# 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.
-
-# serial 5 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else.  This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],	[AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP],		[AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],	[AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77],		[AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])])
diff --git a/m4/netsnmp_arg.m4 b/m4/netsnmp_arg.m4
deleted file mode 100644
index c32330b..0000000
--- a/m4/netsnmp_arg.m4
+++ /dev/null
@@ -1,27 +0,0 @@
-dnl Reports an invalid option and suggests --enable-<ARGUMENT 1> instead
-AC_DEFUN([NETSNMP_INVALID_ENABLE],
-  [AC_MSG_ERROR([Invalid option. Use --enable-$1/--disable-$1 instead])])
-
-dnl Reports an invalid option and suggests --with-<ARGUMENT 1> instead
-AC_DEFUN([NETSNMP_INVALID_WITH],
-  [AC_MSG_ERROR([Invalid option. Use --with-$1/--without-$1 instead])])
-
-dnl Similar to AC_ARG_ENABLE but also defines a matching WITH option that
-dnl suggests the use of the ENABLE option if called
-AC_DEFUN([NETSNMP_ARG_ENABLE],
-  [AC_ARG_ENABLE([$1],[$2]dnl
-     m4_if(m4_eval($# < 3),1,[],[,[$3]])dnl
-     m4_if(m4_eval($# < 4),1,[],[,[$4]]))
-   AC_ARG_WITH(
-     [$1],,
-     [NETSNMP_INVALID_ENABLE([$1])])])
-
-dnl Similar to AC_ARG_WITH but also defines a matching ENABLE option that
-dnl suggests the use of the WITH option if called
-AC_DEFUN([NETSNMP_ARG_WITH],
-  [AC_ARG_WITH([$1],[$2]dnl
-     m4_if(m4_eval($# < 3),1,[],[,[$3]])dnl
-     m4_if(m4_eval($# < 4),1,[],[,[$4]]))
-   AC_ARG_ENABLE(
-     [$1],,
-     [NETSNMP_INVALID_WITH([$1])])])
diff --git a/m4/netsnmp_search_libs.m4 b/m4/netsnmp_search_libs.m4
deleted file mode 100644
index bdd8a12..0000000
--- a/m4/netsnmp_search_libs.m4
+++ /dev/null
@@ -1,35 +0,0 @@
-dnl @synopsis NETSNMP_SEARCH_LIBS(FUNCTION, SEARCH-LIBS, [ACTION-IF-FOUND],
-dnl             [ACTION-IF-NOT-FOUND], [OTHER-LIBRARIES], [TARGET-VARIABLE])
-dnl Similar to AC_SEARCH_LIBS but changes TARGET-VARIABLE instead of LIBS
-dnl If TARGET-VARIABLE is unset then LIBS is used
-AC_DEFUN([NETSNMP_SEARCH_LIBS],
-[m4_pushdef([netsnmp_target],m4_ifval([$6],[$6],[LIBS]))
- AC_CACHE_CHECK([for library containing $1],
-    [netsnmp_cv_func_$1_]netsnmp_target,
-    [netsnmp_func_search_save_LIBS="$LIBS"
-     m4_if(netsnmp_target, [LIBS],
-         [netsnmp_target_val="$LIBS"
-          netsnmp_temp_LIBS="$5 ${LIBS}"],
-         [netsnmp_target_val="$netsnmp_target"
-          netsnmp_temp_LIBS="${netsnmp_target_val} $5 ${LIBS}"])
-     netsnmp_result=no
-     LIBS="${netsnmp_temp_LIBS}"
-     AC_LINK_IFELSE([AC_LANG_CALL([],[$1])],
-         [netsnmp_result="none required"],
-         [for netsnmp_cur_lib in $2 ; do
-              LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
-              AC_LINK_IFELSE([AC_LANG_CALL([],[$1])],
-                  [netsnmp_result=-l${netsnmp_cur_lib}
-                   break])
-          done])
-     LIBS="${netsnmp_func_search_save_LIBS}"
-     [netsnmp_cv_func_$1_]netsnmp_target="${netsnmp_result}"])
- if test "${[netsnmp_cv_func_$1_]netsnmp_target}" != "no" ; then
-    if test "${[netsnmp_cv_func_$1_]netsnmp_target}" != "none required" ; then
-       netsnmp_target="${netsnmp_result} ${netsnmp_target_val}"
-    fi
-    $3
- m4_ifval([$4], [else
-    $4])
- fi
- m4_popdef([netsnmp_target])])
diff --git a/man/Makefile.in b/man/Makefile.in
index 5627cc0..123bc21 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -14,66 +14,70 @@ OTHERUNINSTALL=manuninstall
 # local stuff
 #
 
-MAN1  = snmpinform.1 snmp-bridge-mib.1
-
- at NETSNMP_HAVE_AGENTX_LIBS_TRUE@AGENTXTRAP = agentxtrap.1
- at NETSNMP_HAVE_AGENTX_LIBS_FALSE@AGENTXTRAP =
-
-MAN1G = $(AGENTXTRAP) snmpbulkget.1 snmpcmd.1 snmpget.1 snmpset.1 snmpwalk.1 \
+MAN1  = snmpinform.1
+MAN1G = 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
-
-# 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)
+	net-snmp-config.1 mib2c-update.1 tkmib.1 traptoemail.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
+
+MAN3G = default_store.3 mib_api.3 read_config.3 snmp_agent_api.3 snmp_alarm.3 \
+	snmp_api.3 snmp_sess_api.3 snmp_trap_api.3
 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
 
-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			 	    \
+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
-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=$(MIB_ALIASES) $(CONFIG_ALIASES) $(ALARM_ALIASES) $(SESSION_ALIASES) \
-	$(SSESS_ALIASES) $(TRAP_ALIASES) $(VARBIND_ALIASES) $(PDU_ALIASES)
+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
+
+
+
+MANALIASES=$(DEFAULT_STORE_ALIASES) $(READ_CONFIG_ALIASES) 		\
+	$(SNMP_ALARM_ALIASES) $(SNMP_SET_SAVE_DESCRIPTIONS_ALIASES) 	\
+	$(SNMP_TRAP_API_ALIASES)
 MANALL = $(MAN1) $(MAN1G) $(MAN3) $(MAN3G) $(MAN5G) $(MAN8G) $(MANALIASES)
 
 TARGETS = $(MAN5G) $(MAN1G) $(MAN3G) $(MAN8G)
@@ -83,15 +87,26 @@ all: $(TARGETS) standardall manaliases
 
 manaliases: Makefile
 	touch manaliases
-	@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                                                  \
+	@for i in $(DEFAULT_STORE_ALIASES) ; do				\
+		echo "making man page alias $$i -> default_store APIs" ; \
+		echo ".so man3/default_store.3" > $$i ; 		\
+	done
+	@for i in $(READ_CONFIG_ALIASES) ; do				\
+		echo "making man page alias $$i -> read_config APIs" ;	\
+		echo ".so man3/read_config.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
-
-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
@@ -165,65 +180,56 @@ fixproc.1: $(srcdir)/fixproc.1.def ../sedscript
 net-snmp-config.1: $(srcdir)/net-snmp-config.1.def ../sedscript
 	$(SED) -f ../sedscript < $(srcdir)/net-snmp-config.1.def > net-snmp-config.1
 
-net-snmp-create-v3-user.1: $(srcdir)/net-snmp-create-v3-user.1.def ../sedscript
-	$(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 > $@
+	$(SED) -f ../sedscript < $(srcdir)/tkmib.1.def > tkmib.1
 
 traptoemail.1: $(srcdir)/traptoemail.1.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/traptoemail.1.def > $@
-
-netsnmp_varbind_api.3: $(srcdir)/netsnmp_varbind_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/netsnmp_varbind_api.3.def > $@
-
-netsnmp_pdu_api.3: $(srcdir)/netsnmp_pdu_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/netsnmp_pdu_api.3.def > $@
+	$(SED) -f ../sedscript < $(srcdir)/traptoemail.1.def > traptoemail.1
 
-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 > $@
+read_config.3: $(srcdir)/read_config.3.def ../sedscript
+	$(SED) -f ../sedscript < $(srcdir)/read_config.3.def > read_config.3
 
-netsnmp_config_api.3: $(srcdir)/netsnmp_config_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/netsnmp_config_api.3.def > $@
+snmp_agent_api.3: $(srcdir)/snmp_agent_api.3.def ../sedscript
+	$(SED) -f ../sedscript < $(srcdir)/snmp_agent_api.3.def > snmp_agent_api.3
 
 snmp_alarm.3: $(srcdir)/snmp_alarm.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmp_alarm.3.def > $@
+	$(SED) -f ../sedscript < $(srcdir)/snmp_alarm.3.def > snmp_alarm.3
 
-netsnmp_sess_api.3: $(srcdir)/netsnmp_sess_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/netsnmp_sess_api.3.def > $@
+snmp_api.3: $(srcdir)/snmp_api.3.def ../sedscript
+	$(SED) -f ../sedscript < $(srcdir)/snmp_api.3.def > snmp_api.3
 
-netsnmp_agent_api.3: $(srcdir)/netsnmp_agent_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/netsnmp_agent_api.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_trap_api.3: $(srcdir)/netsnmp_trap_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/netsnmp_trap_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
 
 snmp.conf.5: $(srcdir)/snmp.conf.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmp.conf.5.def > $@
+	$(SED) -f ../sedscript < $(srcdir)/snmp.conf.5.def > snmp.conf.5
 
 snmp_config.5: $(srcdir)/snmp_config.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmp_config.5.def > $@
+	$(SED) -f ../sedscript < $(srcdir)/snmp_config.5.def > snmp_config.5
 
 snmpd.conf.5: $(srcdir)/snmpd.conf.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmpd.conf.5.def > $@
+	$(SED) -f ../sedscript < $(srcdir)/snmpd.conf.5.def > snmpd.conf.5
 
 snmpd.examples.5: $(srcdir)/snmpd.examples.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmpd.examples.5.def > $@
+	$(SED) -f ../sedscript < $(srcdir)/snmpd.examples.5.def > snmpd.examples.5
 
 snmpd.internal.5: $(srcdir)/snmpd.internal.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmpd.internal.5.def > $@
+	$(SED) -f ../sedscript < $(srcdir)/snmpd.internal.5.def > snmpd.internal.5
 
 snmptrapd.conf.5: $(srcdir)/snmptrapd.conf.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmptrapd.conf.5.def > $@
+	$(SED) -f ../sedscript < $(srcdir)/snmptrapd.conf.5.def > snmptrapd.conf.5
 
 variables.5: $(srcdir)/variables.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/variables.5.def > $@
+	$(SED) -f ../sedscript < $(srcdir)/variables.5.def > variables.5
 
 snmptrapd.8: $(srcdir)/snmptrapd.8.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmptrapd.8.def > $@
+	$(SED) -f ../sedscript < $(srcdir)/snmptrapd.8.def > snmptrapd.8
 
 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
@@ -243,7 +249,7 @@ maninstall:  maninstalldirs $(MAN1) $(MAN1G) $(MAN3) $(MAN5G) $(MAN8) $(MANALIAS
 	@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
-	#EMPTY LIST#@for i in $(MAN3) ; do $(INSTALL_DATA) $(srcdir)/$$i $(INSTALL_PREFIX)$(man3dir) ; echo "install:  installed $$i in $(INSTALL_PREFIX)$(man3dir)" ; done
+	@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)
@@ -268,11 +274,11 @@ maninstalldirs:
 #
 html: $(MANALL)
 	for i in $(MANALL); do \
-#	   if test `wc -l $$i | awk '{print $$1}'` != 1 ; then \
+	   if test `wc -l $$i | awk '{print $$1}'` != 1 ; then \
 		   base=`echo $$i | sed 's/.[0-9]$$//;'` ; \
 		   echo "<HTML><BODY bgcolor=\"#ffffff\" background=\"../ucd-snmp-bg3.gif\"><PRE>" > $$base.html; \
 		   man2html -r ./$$i | $(PERL) -p -e 's/HREF=\"..\/man.\//HREF=\"/g;s/\.[1-9]\.html/.html/g;' | grep -v 'Content-type:' >> $$base.html; \
 		   a="$$a $$i"; \
-#	   fi ; \
+	   fi ; \
 	done ;\
 	$(PERL) make_index.pl man_sections.txt $$a > index.html
diff --git a/man/add_mibdir.3 b/man/add_mibdir.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/add_mibdir.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/add_module_replacement.3 b/man/add_module_replacement.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/add_module_replacement.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/agentxtrap.1.def b/man/agentxtrap.1.def
deleted file mode 100644
index 331325f..0000000
--- a/man/agentxtrap.1.def
+++ /dev/null
@@ -1,110 +0,0 @@
-.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 ebd2bf6..56a3678 100644
--- a/man/default_store.3.bot
+++ b/man/default_store.3.bot
@@ -111,10 +111,10 @@ parameters do not correspond to a valid slot, or because of a memory
 allocation failure).
 .TP
 .BI "int netsnmp_ds_register_premib(u_char " type ", const char *" ftype ", const char *" token ", int " store ", int " which ");"
-Analogous to the preceding function, but the
+Analogous to the preceeding function, but the
 .I token
 is processed before MIBs are read (this is therefore useful for controlling
 MIB processing options).
 .SH "SEE ALSO"
-.BR snmp_config "(5), " netsnmp_config_api "(3)"
+.BR snmp_config "(5), " read_config "(3)"
 
diff --git a/man/default_store.3.top b/man/default_store.3.top
index cc04822..ec526bb 100644
--- a/man/default_store.3.top
+++ b/man/default_store.3.top
@@ -1,4 +1,5 @@
 .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/encode_keychange.1.def b/man/encode_keychange.1.def
index 20f5cc3..f82d67a 100644
--- a/man/encode_keychange.1.def
+++ b/man/encode_keychange.1.def
@@ -1,15 +1,16 @@
-.TH encode_keychange 1 "16 Nov 2006" VVERSIONINFO "Net-SNMP"
+.TH encode_keychange "1" "16 Nov 2006" VVERSIONINFO "Net-SNMP"
+.UC 5
 .SH NAME
 encode_keychange - produce the KeyChange string for SNMPv3
 .SH SYNOPSIS
 .B encode_keychange 
-\-t md5|sha1
+-t md5|sha1
 [\fIOPTIONS\fR]
 .SH DESCRIPTION
 .B encode_keychange
 produces a KeyChange string using the old and new passphrases 
 as described in Section 5 of RFC 2274 "User-based Security Model (USM) for 
-version 3 of the Simple Network Management Protocol (SNMPv3)". \fB\-t\fR
+version 3 of the Simple Network Management Protocol (SNMPv3)". \fB-t\fR
 option is mandatory and specifies the hash transform type to use.
 
 The transform is used to convert passphrase to master key for a given
@@ -20,9 +21,9 @@ Passphrases are obtained by examining a number of sources until success
 (in order listed):
 .IP
 command line options (see 
-.B \-N
+.B -N
 and
-.B \-O
+.B -O
 options below);
 .IP
 the file 
@@ -35,7 +36,7 @@ standard input \fB\-or\-\fR  user input from the terminal.
 .SH OPTIONS
 .TP
 \fB\-E\fR [0x]<\fIengineID\fR> EngineID used for Kul generation.
-<\fIengineID\fR> is intepreted as a hex string when preceded by 0x,
+<\fIengineID\fR> is intepreted as a hex string when preceeded by 0x,
 otherwise it is treated as a text string. If no <\fIengineID\fR> is
 specified, it is constructed from the first IP address for the local
 host.
diff --git a/man/fixproc.1.def b/man/fixproc.1.def
index ae88a3d..71868d5 100644
--- a/man/fixproc.1.def
+++ b/man/fixproc.1.def
@@ -1,4 +1,5 @@
-.TH fixproc 1 "16 Nov 2006" VVERSIONINFO "Net-SNMP"
+.TH fixproc "1" "16 Nov 2006" VVERSIONINFO "Net-SNMP"
+.UC 5
 .SH NAME
 fixproc - Fixes a process by performing the specified action.
 .SH SYNOPSIS
@@ -27,10 +28,10 @@ maximum number of processes that should be running, defaults to 1
 check process against database /local/etc/fixproc.conf.
 .TP
 .B \-kill
-kill process, wait 5 seconds, kill \-9 if still exist
+kill process, wait 5 seconds, kill -9 if still exist
 .TP
 .B \-restart
-kill process, wait 5 seconds, kill \-9 if still exist, then start again
+kill process, wait 5 seconds, kill -9 if still exist, then start again
 .TP
 .B \-exist
 checks if proc exists in ps && (min <= num. of processes <= max)
diff --git a/man/get_module_node.3 b/man/get_module_node.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/get_module_node.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/init_mib.3 b/man/init_mib.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/init_mib.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/init_mib_internals.3 b/man/init_mib_internals.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/init_mib_internals.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/make_index.pl b/man/make_index.pl
index 37566ba..7ab1dd2 100644
--- a/man/make_index.pl
+++ b/man/make_index.pl
@@ -25,7 +25,6 @@ while (<I>) {
 	chomp($name);
 	if (!exists($pages{$name})) {
 	    print STDERR "$name is in $infile, but not in the rest of the args.\n";
-	    print STDERR "Make sure it's not listed twice in $infile!\n";
 	}
 	open(H,"$name.html");
 	while (<H>) {
diff --git a/man/man_sections.txt b/man/man_sections.txt
index fcce8f9..b818b0d 100644
--- a/man/man_sections.txt
+++ b/man/man_sections.txt
@@ -1,5 +1,4 @@
 # SNMP basic applications
-encode_keychange
 snmpcmd
 snmptranslate
 snmpget
@@ -9,7 +8,6 @@ snmpwalk
 snmpbulkwalk
 snmpset
 snmptest
-tkmib
 # SNMP "second-level" applications
 snmptable
 snmpdelta
@@ -19,25 +17,18 @@ snmpstatus
 snmpnetstat
 snmpdf
 # Notification manual pages
-snmpinform
 snmptrap
 snmptrapd
 snmptrapd.conf
-traptoemail
 # SNMP application configuration manual pages
-net-snmp-config
 snmpconf
 snmp_config
 snmp.conf
 # Agent manual pages
-fixproc
 snmpd
 snmpd.conf
-snmpd.examples
-snmpd.internal
 mib2c
 mib2c.conf
-mib2c-update
 # SNMP base library APIs
 netsnmp_library
 read_config
@@ -50,109 +41,33 @@ default_store
 netsnmp_mib_utilities
 netsnmp_debug
 # Agent API manuals
-add_mibdir
-add_module_replacement
-config_perror
-config_pwarn
-fprint_description
-fprint_objid
-fprint_value
-fprint_variable
-get_module_node
-init_mib
-init_mib_internals
 netsnmp_agent
+snmp_agent_api
+snmp_trap_api
+netsnmp_mib_handler_methods
+netsnmp_utilities
+netsnmp_handler
+netsnmp_scalar
 netsnmp_baby_steps
 netsnmp_bulk_to_next
-netsnmp_cache_handler
-netsnmp_container
-netsnmp_Container_iterator
-netsnmp_ds_get_boolean
-netsnmp_ds_get_int
-netsnmp_ds_get_string
-netsnmp_ds_register_config
-netsnmp_ds_register_premib
-netsnmp_ds_set_boolean
-netsnmp_ds_set_int
-netsnmp_ds_set_string
-netsnmp_ds_shutdown
+netsnmp_scalar_group_group
 netsnmp_example_scalar_int
-netsnmp_handler
-netsnmp_instance
+netsnmp_table_dataset
 netsnmp_iterator_info_s
-netsnmp_leaf
-netsnmp_mib_handler_methods
-netsnmp_mode_end_call
-netsnmp_multiplexer
 netsnmp_old_api
-netsnmp_read_only
-netsnmp_row_merge
-netsnmp_scalar
-netsnmp_scalar_group_group
+netsnmp_watcher
+netsnmp_table_array
+netsnmp_multiplexer
 netsnmp_serialize
-netsnmp_stash_cache
+netsnmp_cache_handler
+netsnmp_Container_iterator
+netsnmp_table_iterator
 netsnmp_table
-netsnmp_table_array
 netsnmp_table_data
-netsnmp_table_dataset
-netsnmp_table_iterator
-netsnmp_utilities
-netsnmp_watcher
-print_description
-print_mib
-print_objid
-print_value
-print_variable
-read_all_mibs
-read_config_print_usage
-read_configs
-read_mib
-read_module
-read_module_node
-read_objid
-read_premib_configs
-register_app_config_handler
-register_app_premib_handler
-register_config_handler
-register_mib_handlers
-register_premib_handler
-send_easy_trap
-send_trap_vars
-send_v2trap
-shutdown_mib
-snmp_agent_api
-snmp_alarm_register
-snmp_alarm_register_hr
-snmp_alarm_unregister
-snmp_api_errstring
-snmp_close
-snmp_error
-snmp_free_pdu
-snmp_open
-snmp_perror
-snmp_read
-snmp_select_info
-snmp_send
-snmp_sess_async_send
-snmp_sess_close
-snmp_sess_error
-snmp_sess_init
-snmp_sess_open
-snmp_sess_perror
-snmp_sess_read
-snmp_sess_select_info
-snmp_sess_send
-snmp_sess_session
-snmp_sess_timeout
-snmp_set_mib_warnings
-snmp_set_save_descriptions
-snmp_timeout
-snmp_trap_api
-snprint_objid
-snprint_value
-snprint_variable
-sprint_realloc_objid
-sprint_realloc_value
-sprint_realloc_variable
-unregister_app_config_handler
-unregister_config_handler
\ No newline at end of file
+netsnmp_stash_cache
+netsnmp_row_merge
+netsnmp_read_only
+netsnmp_leaf
+netsnmp_instance
+netsnmp_container
+netsnmp_mode_end_call
diff --git a/man/mib2c-update.1.def b/man/mib2c-update.1.def
index 52ece8a..7364490 100644
--- a/man/mib2c-update.1.def
+++ b/man/mib2c-update.1.def
@@ -1,4 +1,5 @@
-.TH mib2c-update 1 "07 Apr 2010" VVERSIONINFO "Net-SNMP"
+.TH mib2c-update "1" "16 Nov 2006" VVERSIONINFO "Net-SNMP"
+.UC 5
 .SH NAME
 mib2c-update - script to merge custom code into updated mib2c code
 .SH SYNOPSIS
@@ -6,23 +7,4 @@ mib2c-update - script to merge custom code into updated mib2c code
 .B mib2c-update
 .SH DESCRIPTION
 .PP
-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.
+merges custom code into updated mib2c code
diff --git a/man/mib2c.1.def b/man/mib2c.1.def
index b9c1134..c6de8d4 100644
--- a/man/mib2c.1.def
+++ b/man/mib2c.1.def
@@ -7,12 +7,13 @@
 .\" Use is subject to license terms specified in the COPYING file
 .\" distributed with the Net-SNMP package.
 .\" ******************************************************************/
-.TH MIB2C 1 "05 Apr 2010" VVERSIONINFO "Net-SNMP"
+.TH MIB2C 1 "25 Jul 2003" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 mib2c -- generate template code for extending the agent
 .SH SYNOPSIS
 .B mib2c
-[-h] -c CONFIGFILE [-I PATH] [-f OUTNAME] [-i][-s][-q][-S VAR=VAL] MIBNODE
+[-h] -c CONFIGFILE [-I PATH] [-f OUTNAME] [-i][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,10 +176,6 @@ names it is generating code for, which is probably what you want anyway.
 .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 3692a65..9bef875 100644
--- a/man/mib2c.conf.5.in
+++ b/man/mib2c.conf.5.in
@@ -1,6 +1,7 @@
-.TH MIB2C.CONF 5 "28 Apr 2004" VVERSIONINFO "Net-SNMP"
+.TH MIB2C.CONF 5 "28 Apr 2004" V5.2 "Net-SNMP"
+.UC 4
 .SH NAME
-mib2c.conf \[em] How to write mib2c.conf files to do ANYTHING based on MIB input.
+mib2c.conf -- How to write mib2c.conf files to do ANYTHING based on MIB input.
 .SH SYNOPSIS
 % cat > mib2c.test.conf  << EOF
 @foreach $t table@
@@ -12,7 +13,7 @@ mib2c.conf \[em] How to write mib2c.conf files to do ANYTHING based on MIB input
 @end@
 EOF
 
-% mib2c \-c mib2c.test.conf internet
+% mib2c -c mib2c.test.conf internet
 .SH DESCRIPTION
 The mib2c.conf script language is a MIB-particular language designed
 to easily process MIB nodes in ways that you want.  mib2c is a
diff --git a/man/mib_api.3.def b/man/mib_api.3.def
new file mode 100644
index 0000000..2818273
--- /dev/null
+++ b/man/mib_api.3.def
@@ -0,0 +1,322 @@
+.TH MIB_API 3 "06 Mar 2002" VVERSIONINFO "Net-SNMP"
+.UC 5
+.SH NAME
+init_mib, add_mibdir, init_mib_internals,
+add_module_replacement,
+read_module, read_mib, read_all_mibs,
+read_objid, read_module_node, get_module_node,
+snmp_set_mib_warnings, snmp_set_save_descriptions,
+shutdown_mib,
+print_mib,
+print_variable, fprint_variable, snprint_variable, sprint_realloc_variable,
+print_value, fprint_value, snprint_value, sprint_realloc_value,
+print_objid, fprint_objid, snprint_objid, sprint_realloc_objid,
+print_description, fprint_description - mib_api functions
+.SH SYNOPSIS
+.B #include <net-snmp/mib_api.h>
+.PP
+.B "void init_mib(void);
+.br
+.BI "int add_mibdir(const char *" "dirname" );
+.br
+.BI "int add_module_replacement(const char *" "old_module" ", const char *" "new_module" ", const char *" "tag" ", int " "len" );
+.br
+.B "void init_mib_internals(void);
+.br
+.BI "struct tree *read_module(const char *" "name" );
+.br
+.BI "struct tree *read_mib(const char *" "filename" );
+.br
+.B "struct tree *read_all_mibs(void);
+.PP
+.B "void shutdown_mib(void);
+.PP
+.BI "void print_mib(FILE *" "fp" );
+.PP
+.BI "int read_objid(const char *" "input" ", oid *" "output" ", size_t *" "out_len" );
+.br
+.BI "int get_module_node(const char *" "name" ", const char *" "module" ", oid *" "objid" ", size_t *" "objidlen" );
+.PP
+.BI "void print_variable(const oid *" "objid" ", size_t " "objidlen" ", const netsnmp_variable_list *" "variable" );
+.br
+.BI "void fprint_variable(FILE *" fp ", const oid *" objid ", size_t " objidlen ", const netsnmp_variable_list *" variable );
+.br
+.BI "int snprint_variable(char *" "buf" ", size_t " "len" ", const oid *" "objid" ", size_t " "objidlen" ", const netsnmp_variable_list *" "variable" );
+.br
+.BI "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 );
+.PP
+.BI "void print_value(oid *objid, size_t objidlen, const netsnmp_variable_list *variable)
+.br
+.BI "void fprint_value(FILE *" fp ", const oid *" objid ", size_t " objidlen ", const netsnmp_variable_list *" variable );
+.br
+.BI "int snprint_value(char *" buf ", size_t " "len" ", const oid *" objid ", size_t " objidlen ", const netsnmp_variable_list *" variable );
+.br
+.BI "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 );
+.PP
+.BI "void print_objid(const oid *" objid ", size_t " objidlen );
+.br
+.BI "void fprint_objid(FILE *" fp ", const oid *" objid ", size_t " objidlen );
+.br
+.BI "int snprint_objid(char *" buf ", size_t " "len" ", const oid *" objid ", size_t " objidlen );
+.br
+.BI "int sprint_realloc_objid(u_char **" buf ", size_t *" buf_len ", size_t *" out_len ", int "allow_realloc ", const oid *" objid ", size_t " objidlen );
+.PP
+.BI "void print_description(oid *" objid ", size_t " objidlen ", int " width );
+.br
+.BI "void fprint_description(FILE *" fp ", const oid *" objid ", size_t " objidlen ", int " width );
+.PP
+.BI "void snmp_set_mib_warnings(int " level );
+.br
+.BI "void snmp_set_save_descriptions(int " save ");"
+.PP
+.SH DESCRIPTION
+The functions dealing with MIB modules fall into four groups.  Those
+dealing with initialisation and shutdown, those that read in and
+parse MIB files, those that search the MIB tree, and various output
+routines.
+.SS Initialisation and Shutdown
+.B init_mib
+is a convenience function that handles all calls to
+.BR add_mibdir ", " read_module " and " read_mib
+for standard applications.  It should be called before any other
+routine that manipulates or accesses the MIB tree.  This routine sets
+up various internal structures, as well as reading in the default MIB
+modules, as detailed below.
+.PP
+.B add_mibdir
+is used to define the range of directory locations which are searched
+for files containing MIB modules (one module per file).  By default,
+this will be set to the directory
+.I DATADIR/mibs
+but this can be overridden by setting the environment variable
+.I MIBDIRS
+to a (colon-separated) list of directories to search.
+Note that this does not actually load the MIB modules located
+in that directory, but is an initialisation step to make them available.
+This function returns a count of files found in the directory, or a -1
+if there is an error.  
+.PP
+.B init_mib_internals
+sets up the internal structures, preparatory to reading in MIB
+modules.  It should be called after all calls to
+.BR add_mibdir ,
+and before and calls to
+.BR read_module .
+This is called automatically if
+.B init_mib
+is used.
+.PP
+.B shutdown_mib
+will clear the information that was gathered by 
+.BR read_module ", " add_mibdir " and " add_module_replacement .
+It is strongly recommended that one does not invoke
+.BR shutdown_mib
+while there are SNMP sessions being actively managed.
+.SS Reading and Parsing MIBs
+.B add_module_replacement
+can be used to allow new MIB modules to obsolete older ones, without
+needing to amend the imports clauses of other modules.  It takes the
+names of the old and new modules, together with an indication of which
+portions of the old module are affected.
+.RS
+.TS
+tab(+);
+lb lb lb
+l  l  l.
+tag + len + load the new module when:
+NULL + 0 + always (the old module is a strict subset of the new)
+name + 0 + for the given tag only
+name + non-0 + for any identifier with this prefix
+.TE
+.RE
+It can also be used to handle errors in the module identifiers used
+in MIB import clauses (such as referring to
+.I RFC1213
+instead of
+.IR RFC1213-MIB ).
+.PP
+.B read_module
+locates and parses the module specified, together with any modules
+that it imports from, and adds the contents of these modules to the
+active MIB tree.  Note that
+.B add_mibdir
+must first be called to add the directory containing the file with the
+module definition, if this is not in the standard path.
+.br
+By default, the following MIB modules will be loaded:  IP-MIB, IF-MIB,
+TCP-MIB, UDP-MIB, SNMPv2-MIB, RFC1213-MIB, UCD-SNMP-MIB.
+This can be overridden by setting the environment variable
+.I MIBS
+to a (colon-separated) list of modules to load.
+If this variable starts with a plus character, then the specified modules
+are added to the default list.  Otherwise only those modules listed are
+loaded (together with any others they import from).
+If
+.I MIBS
+is set to
+.IR ALL ,
+.B read_all_mibs
+is called to load all the MIB files found in all the specified
+.IR MIBDIRS .
+.PP
+.B read_mib
+parses the file specified, together with any modules that it imports
+from, and adds the contents to the active MIB tree.  Such a file can
+contain more then one module, though care must be taken that any
+imports occur earlier in the file, if they are not to be read from the
+installed modules.  Note that the file specified does not need to be
+in any of the directories initialised by
+.B add_mibdir
+(or the default setup), though any imported modules do.
+.br
+The environment variable
+.I MIBFILES
+can be set to a (colon-separated) list of files containing MIBs to load.
+.PP
+.B read_objid
+takes a string containing a textual version of an object identifier
+(in either numeric or descriptor form), and transforms this into the
+corresponding list of sub-identifiers.  This is returned in the
+.I output
+parameter, with the number of sub-identifiers returned via
+.IR out_len .
+When called, 
+.I out_len
+must hold the maximum length of the
+.I output
+array.
+If multiple object identifiers are being processed, then this
+length should be reset before each call.
+This function returns a value of 1 if it succeeds in parsing the string
+and 0 otherwise.
+.SS Searching the MIB Tree
+.B get_module_node
+takes a descriptor and the name of a module, and returns the corresponding
+oid list, in the same way as
+.B read_objid
+above.
+.br
+If the module name is specified as "ANY", then this routine will
+assume that the descriptor given is unique within the tree, and will
+return the matching entry.  If this assumption is invalid, then the
+behaviour as to which variable is returned is implementation
+dependent.
+.SS Output
+.B print_mib
+will print out a representation of the currently active MIB tree to
+the specified FILE pointer.
+.PP
+.B print_variable
+will take an object identifier (as returned by
+.B read_objid
+or
+.BR get_module_node )
+and an instance of such a variable, and prints to the standard output
+the textual form of the object identifier together with the value
+of the variable.
+.B fprint_variable
+does the same, but prints to the FILE pointer specified by the initial
+parameter.
+.br
+.B snprint_variable
+prints the same information into the buffer pointed to by
+.I buf
+which is of length
+.IR len 
+and returns either the number of characters printed, or -1 if the
+buffer was not large enough.  In the latter case,
+.I buf
+will typically contained a truncated version of the information (but
+this behaviour is not guaranteed).  This function replaces the
+obsolete function
+.BR sprint_variable .
+.br
+.B sprint_realloc_variable
+is the low-level function used to implement all these functions.  It
+prints to a specified offset in a string buffer.  The
+.I buf
+parameter points to a pointer to that buffer;
+.I buf_len
+points to a variable holding the current size of that buffer, and
+.I out_len
+points to a variable holding the offset to which to print.
+.I out_len
+will be updated to hold the offset of the character following the last
+one added to the buffer.  If
+.I allow_realloc
+is 1, the buffer will be dynamically expanded, as necessary, to hold
+the output; the variables pointed to by
+.I buf
+and
+.I buf_len
+will be updated.  If
+.I allow_realloc
+is 0, the buffer will not be dynamically expanded.
+.B sprint_realloc_variable
+returns 0 if
+.I allow_realloc
+is 1 and an attempt to allocate memory to expand the buffer fails, or
+if
+.I allow_realloc
+is 0 and the output wouldn't fit in the buffer.  Otherwise it returns
+1.  When using this function you should be careful to call
+.BR free (3)
+on
+.I *buf
+when you have finished with it.
+.PP
+.BR print_value ,
+.BR fprint_value ,
+.BR snprint_value
+and
+.B sprint_realloc_value
+do the same as the equivalent
+.B print_variable
+routines, but only displaying the value of the variable, without the
+corresponding object identifier.
+.PP
+.BR print_objid ,
+.BR fprint_objid ,
+.BR snprint_objid ,
+and
+.B sprint_realloc_objid
+take an object identifier (without an accompanying variable instance)
+and print out the textual representation.
+.PP
+.BI print_description ,
+.BI fprint_description ,
+.BI snprint_description ,
+and
+.B sprint_realloc_description
+take an object identifier (as for
+.B print_objid
+above) and print out a version of the MIB definition for that object,
+together with the full OID. The
+.I width
+argument controls how the OID is layed out.
+.PP
+By default the parser does not save descriptions since they may be
+huge.  In order to be able to print them, you must call
+.BR snmp_set_save_descriptions(1) .
+.PP
+In general the parser is silent about what strangenesses it sees in
+the MIB files. To get warnings reported, call
+.B snmp_set_mib_warnings
+with a
+.I level
+of 1 (or 2 for even more warnings).
+.SH "ENVIRONMENT VARIABLES"
+.TP 10
+MIBDIRS
+A colon separated list of directories to search for MIB modules.
+Default: DATADIR/snmp/mibs
+.TP 10
+MIBFILES
+A colon separated list of files to load.
+Default: (none)
+.TP 10
+MIBS
+A colon separated list of MIB modules to load.
+Default: IP-MIB:IF-MIB:TCP-MIB:UDP-MIB:SNMPv2-MIB:RFC1213-MIB:UCD-SNMP-MIB.
+.SH "SEE ALSO"
+.BR snmp_api "(3)"
diff --git a/man/net-snmp-config.1.def b/man/net-snmp-config.1.def
index 3a0fa2b..b87fdb0 100644
--- a/man/net-snmp-config.1.def
+++ b/man/net-snmp-config.1.def
@@ -1,17 +1,18 @@
-.TH net-snmp-config 1 "16 Nov 2006" VVERSIONINFO "Net-SNMP"
+.TH net-snmp-config "1" "16 Nov 2006" VVERSIONINFO "Net-SNMP"
+.UC 5
 .SH NAME
-net\-snmp\-config - returns information about installed net-snmp libraries and binaries 
+net-snmp-config \- returns information about installed net-snmp libraries and binaries 
 .SH SYNOPSIS
 .PP
-.B net\-snmp\-config
+.B net-snmp-config
 [OPTIONS]
 .SH DESCRIPTION
 .PP
-The \fInet\-snmp\-config\fP shell script is designed to retrieve the
+The \fInet-snmp-config\fP shell script is designed to retrieve the
 configuration information about the libraries and binaries dealing with
 the Simple Network Management Protocol (SNMP), built from the 
 .B net-snmp 
-source package. The information is particularly useful for
+source package. The information is particularily useful for
 applications that need to link against the SNMP libraries and hence
 must know about any other libraries that must be linked in as well.
 
@@ -29,8 +30,8 @@ code for a list of available debug tokens
 .PP
 SNMP Setup commands:
 .TP
-\fB\-\-create\-snmpv3\-user\fR [\-ro] [\-a authpass] [\-x privpass]
-[\-X DES|AES] [\-A MD5|SHA] [username]
+\fB\-\-create\-snmpv3\-user\fR [-ro] [-a authpass] [-x privpass] [-X DES|AES]
+[-A MD5|SHA] [username]
 .PP
 These options produce the various compilation flags needed when
 building external SNMP applications:
@@ -63,8 +64,8 @@ lists netsnmp specific agent libraries
 Automated subagent building (produces an OUTPUTNAME binary file):
 [This feature has not been extensively tested,  use at your own risk.]
 .TP
-\fB\-\-compile\-subagent\fR OUTPUTNAME [\-\-norm] [\-\-cflags flags]
-[\-\-ldflags flags] mibmodule1.c [...]]
+\fB\-\-compile\-subagent\fR OUTPUTNAME [--norm] [--cflags flags]
+[--ldflags flags] mibmodule1.c [...]]
 .TP
 \fB\-\-norm\fR
 leave the generated .c file around to read.
diff --git a/man/net-snmp-create-v3-user.1.def b/man/net-snmp-create-v3-user.1.def
deleted file mode 100644
index da6944c..0000000
--- a/man/net-snmp-create-v3-user.1.def
+++ /dev/null
@@ -1,28 +0,0 @@
-.TH net-snmp-create-v3-user 1 "17 Sep 2008" VVERSIONINFO "Net-SNMP"
-.SH NAME
-net-snmp-create-v3-user \- create a SNMPv3 user in net-snmp configuration file
-.SH SYNOPSIS
-.PP
-.B net-snmp-create-v3-user [-ro] [-a authpass] [-x privpass] [-X DES|AES]
-.B [username]
-.SH DESCRIPTION
-.PP
-The \fInet-snmp-create-v3-user\fP shell script is designed to create a
-new user in net-snmp configuration file (/var/net-snmp/snmpd.conf by default).
-
-.SH OPTIONS
-.TP
-\fB\-\-version\fR
-displays the net-snmp version number
-.TP
-\fB\-ro\fR
-create an user with read-only permissions
-.TP
-\fB\-a authpass\fR
-specify authentication password
-.TP
-\fB\-x privpass\fR
-specify encryption password
-.TP
-\fB\-X DES|AES\fR
-specify encryption algorithm
diff --git a/man/netsnmp_agent.3 b/man/netsnmp_agent.3
new file mode 100644
index 0000000..815680e
--- /dev/null
+++ b/man/netsnmp_agent.3
@@ -0,0 +1,33 @@
+.TH "The Net-SNMP agent" 3 "23 May 2010" "Version 5.4.3.pre1" "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/netsnmp_agent_api.3.def b/man/netsnmp_agent_api.3.def
deleted file mode 100644
index 19efd00..0000000
--- a/man/netsnmp_agent_api.3.def
+++ /dev/null
@@ -1,132 +0,0 @@
-.TH NETSNMP_AGENT_API 3 "13 Aug 2010" VVERSIONINFO "Net-SNMP"
-.SH NAME
-netsnmp_agent_api - embedding an agent into a external application
-.SH SYNOPSIS
-.nf
-#include <net\-snmp/net\-snmp\-config.h>
-#include <net\-snmp/net\-snmp\-includes.h>
-#include <net\-snmp/agent/net\-snmp\-agent\-includes.h>
-
-int
-main (int argc, char *argv[])
-{
-  int agentx_subagent = 1;  /* Change this if you're a master agent.  */
-
-  snmp_enable_stderrlog();
-
-  /*  If we're an AgentX subagent...  */
-  if (agentx_subagent) {
-      /* ...make us an AgentX client.  */
-      netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
-                             NETSNMP_DS_AGENT_ROLE, 1);
-  }
-
-  init_agent("yourappname");
-
-  /*  Initialize your MIB code here.  */
-  init_my_mib_code();
-
-  /*  `yourappname' will be used to read yourappname.conf files.  */
-  init_snmp("yourappname");
-
-  /*  If we're going to be a SNMP master agent...  */
-  if (!agentx_subagent)
-      init_master_agent();  /*  Listen on default port (161).  */
-
-  /*  Your main loop here...  */
-  while (whatever) {
-      /* if you use select(), see snmp_api(3) */
-      /*     --- OR ---  */
-      agent_check_and_process(0); /* 0 == don't block */
-  }
-
-  /*  At shutdown time:  */
-  snmp_shutdown("yourappname");
-}
-
-Then:
-$(CC) ... `net\-snmp\-config \-\-agent\-libs`
-
-.fi
-.SH DESCRIPTION
-.PP
-Our goal is to create a easy to use interface to the Net-SNMP package
-such that you can take code that you have written that has been
-designed to be a Net-SNMP MIB module and embed it into an external
-application where you can either chose to be a SNMP master agent or an
-AgentX sub-agent using the same MIB module code.  Our suggestion is
-that you use our (or another) SNMP agent as the AgentX master agent
-and chose to become an AgentX subagent which then attaches to the
-master.
-.PP
-The Net-SNMP package provides a pair of libraries that enables easy
-embedding of an SNMP or AgentX agent into an external software
-package. AgentX is an extensible protocol designed to allow multiple
-SNMP sub-agents all run on one machine under a single SNMP master
-agent.  It is defined in RFC 2741.
-.PP
-You will need to perform a few tasks in order to accomplish
-this. First off, you will need to initialize both the SNMP library and
-the SNMP agent library. As indicated above, this is done slightly
-differently depending on whether or not you are going to perform as a
-master agent or an AgentX sub-agent.
-.SH CONFIGURATION
-.PP
-If you intend to operate as an AgentX sub-agent, you will have to
-configured the Net-SNMP package with agentx support (which is turned
-on by default, so just don't turn it off)
-.PP
-Additionally, you will need to link against the Net-SNMP libraries
-(use the output of "net\-snmp\-config \-\-agent\-libs" to get a library
-list) and call subagent_pre_init() as indicated above.
-.SH COMPILING
-.PP
-In order to make use of any of the above API, you will need to link
-against at least the four libraries listed above.
-.SH FUNCTIONS
-.PP This is a brief description of the functions called above and
-where to find out more information on them.  It is certainly not a
-complete list of what is available within all the Net-SNMP libraries. 
-.IP "snmp_enable_stderrlog()"
-Logs error output from the SNMP agent to the standard error stream.
-.IP "netsnmp_ds_set_boolean()"
-Please see the
-.IR default_store(3)
-manual page for more information
-about this API.
-.IP "init_agent(char *name)"
-Initializes the embedded agent.  This should be called before the
-.BR "init_snmp()"
-call.  
-.I name
-is used to dictate what .conf file to read when
-.BR "init_snmp()"
-is called later.
-.IP "init_snmp(char *name)"
-Initializes the SNMP library.  Note that one of the things this will
-do will be to read configuration files in an effort to configure your
-application. It will attempt to read the configuration files named by
-the
-.I name
-string that you passed in.  It can be used to configure access
-control, for instance.   Please see the
-.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 
-on its default UDP port of 161.
-.IP "agent_check_and_process(int block)"
-This checks for packets arriving on the SNMP port and processes them
-if some are found.  If 
-.I block
-is non-zero, the function call will block until a packet arrives or an 
-alarm must be run (see
-.IR snmp_alarm(3) ).
-The return value from this function is a positive integer if packets
-were processed, zero if an alarm occurred and \-1 if an error occured.
-.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), netsnmp_config_api(3), snmp_config(5),
-snmpd.conf(5)
diff --git a/man/netsnmp_agent_registry.3 b/man/netsnmp_agent_registry.3
new file mode 100644
index 0000000..ec52c84
--- /dev/null
+++ b/man/netsnmp_agent_registry.3
@@ -0,0 +1,278 @@
+.TH "Maintain a registry of MIB subtrees, together with related information regarding mibmodule, sessions, etc" 3 "23 May 2010" "Version 5.4.3.pre1" "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 "NETSNMP_STATIC_INLINE void \fBinvalidate_lookup_cache\fP (const char *context)"
+.br
+.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 "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 "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 "\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 "\fBsubtree_context_cache\fP * \fBcontext_subtrees\fP = NULL"
+.br
+.ti -1c
+.RI "int \fBlookup_cache_size\fP = 0"
+.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 1323 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 1396 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 be [...]
+.RE
+.PP
+
+.PP
+Definition at line 1383 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 969 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
new file mode 100644
index 0000000..3efee32
--- /dev/null
+++ b/man/netsnmp_agent_trap.3
@@ -0,0 +1,317 @@
+.TH "Trap generation routines for mib modules to use" 3 "23 May 2010" "Version 5.4.3.pre1" "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_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_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 "int \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 850 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 specifc 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 629 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 [...]
+.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 978 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 1007 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 99 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
new file mode 100644
index 0000000..f3fb8fb
--- /dev/null
+++ b/man/netsnmp_asn1_packet_parse.3
@@ -0,0 +1,265 @@
+.TH "asn1 parsing and datatype manipulation routines." 3 "23 May 2010" "Version 5.4.3.pre1" "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 { int trunc = 0;                     \
+        if (x > INT32_MAX) {                                            \
+            trunc = 1;                                                  \
+            x &= 0xffffffff;                                            \
+        } else if (x < INT32_MIN) {                                     \
+            trunc = 1;                                                  \
+            x = 0 - (x & 0xffffffff);                                   \
+        }                                                               \
+        if (trunc)                                                      \
+            DEBUGMSG(('asn','truncating signed value to 32 bits (%d)\n',y)); \
+    } while(0)
+.fi
+.PP
+Definition at line 214 of file asn1.c.
+.SS "#define CHECK_OVERFLOW_U(x, y)"\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 226 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
new file mode 100644
index 0000000..1087300
--- /dev/null
+++ b/man/netsnmp_baby_steps.3
@@ -0,0 +1,45 @@
+.TH "baby_steps" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..2c9bb5b
--- /dev/null
+++ b/man/netsnmp_bulk_to_next.3
@@ -0,0 +1,52 @@
+.TH "bulk_to_next" 3 "23 May 2010" "Version 5.4.3.pre1" "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 42 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 27 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 139 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
new file mode 100644
index 0000000..a29bbda
--- /dev/null
+++ b/man/netsnmp_cache_handler.3
@@ -0,0 +1,225 @@
+.TH "cache_handler" 3 "23 May 2010" "Version 5.4.3.pre1" "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 (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, oid *rootoid, int rootoid_len)"
+.br
+.RI "\fIreturns 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, 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 route 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  [...]
+.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 385 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 370 of file cache_handler.c.
+.SS "\fBnetsnmp_cache\fP* netsnmp_cache_create (int timeout, NetsnmpCacheLoad * load_hook, NetsnmpCacheFree * free_hook, oid * rootoid, int rootoid_len)"
+.PP
+returns a cache 
+.PP
+Definition at line 136 of file cache_handler.c.
+.SS "\fBnetsnmp_cache\fP* netsnmp_cache_find_by_oid (oid * rootoid, int rootoid_len)"
+.PP
+find existing cache 
+.PP
+Definition at line 120 of file cache_handler.c.
+.SS "\fBnetsnmp_cache\fP* netsnmp_cache_get_head (void)"
+.PP
+get cache head 
+.PP
+Definition at line 112 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 247 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 295 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 420 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 402 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 350 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 333 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 191 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 226 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 362 of file cache_handler.c.
+.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_cache_handler (int timeout, NetsnmpCacheLoad * load_hook, NetsnmpCacheFree * free_hook, oid * rootoid, int rootoid_len)"
+.PP
+returns a cache handler that can be injected into a given handler chain. 
+.PP
+Definition at line 276 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 413 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 308 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 575 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
new file mode 100644
index 0000000..21371ec
--- /dev/null
+++ b/man/netsnmp_callback.3
@@ -0,0 +1,205 @@
+.TH "A generic callback mechanism" 3 "23 May 2010" "Version 5.4.3.pre1" "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 474 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 298 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 230 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 418 of file callback.c.
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_config_api.3.def b/man/netsnmp_config_api.3.def
deleted file mode 100644
index 68049df..0000000
--- a/man/netsnmp_config_api.3.def
+++ /dev/null
@@ -1,373 +0,0 @@
-.TH NETSNMP_CONFIG_API 3 "13 Aug 2010" VVERSIONINFO "Net-SNMP"
-.SH NAME
-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
-.BI "  register_config_handler(const char *" filePrefix ",
-.br
-.BI "                     const char *" token ,
-.br
-.BI "                     void (*" parser ")(const char *, char *),"
-.br
-.BI "                     void (*" releaser ")(void),"
-.br
-.BI "                     const char *"usageLine ");"
-.PP
-.B struct config_line *
-.br
-.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
-.BI "                     void (*" parser ")(const char *, char *),"
-.br
-.BI "                     void (*" releaser ")(void),"
-.br
-.BI "                     const char *" usageLine ");"
-.PP
-.BI "void unregister_config_handler(const char *" filePrefix ","
-.br
-.BI "                     const char *" token ");"
-.PP
-.\" 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
-.B struct config_line *
-.br
-.BI "  register_app_config_handler(const char *" token ,
-.br
-.BI "                     void (*" parser ")(const char *, char *),"
-.br
-.BI "                     void (*" releaser ")(void),"
-.br
-.BI "                     const char *"usageLine ");"
-.PP
-.B struct config_line *
-.br
-.BI "  register_app_prenetsnmp_mib_handler(const char *" token ,
-.br
-.BI "                     void (*" parser ")(const char *, char *),"
-.br
-.BI "                     void (*" releaser ")(void),"
-.br
-.BI "                     const char *" usageLine ");"
-.PP
-.BI "void unregister_app_config_handler(const char *" token ");"
-.br
-.SS Reading Configuration Files
-.PP
-.B "void read_premib_configs(void);"
-.br
-.B "void read_configs(void);"
-.br
-.SS Help Strings and Errors
-.PP
-.BI "void read_config_print_usage(char *" lead ");"
-.br
-.BI "void config_pwarn(const char *" string ");"
-.br
-.BI "void config_perror(const char *" string ");"
-
-.SH DESCRIPTION
-The functions are a fairly extensible system of parsing various
-configuration files at the run time of an application.  The
-configuration file flow is broken into the following phases:
-.RS 4
-.TP 4
-1.
-Registration of handlers.
-.TP
-2.
-Reading of the configuration files for pre-MIB parsing requirements.
-.TP
-3.
-Reading and parsing of the textual MIB files.
-.TP
-4.
-Reading of the configuration files for configuration directives.
-.TP
-5.
-Optionally re-reading the configuration files at a future date.
-.RE
-.PP
-The idea is that the calling application is able to register
-.I handlers
-for certain
-.I tokens
-specified in certain named
-.I "configuration files."
-The 
-.B read_configs()
-function can then be called to look for all relevant configuration files,
-match the first word on each line against the list of registered tokens
-and pass the remainder of the line to the appropriate registered handler.
-.SH REGISTERING A HANDLER
-.TP
-.B register_config_handler()
-Registers a configuration handler routine, which should be called
-to process configuration directives starting with the specified token.
-For example:
-.PP
-.RS
-.RS
-register_config_handler("snmp", "exampleToken", example_handler, NULL, "ARG1 [ARG2]");
-.RE
-.RE
-.IP
-would register the
-.B example_handler()
-function so that it will get called every time the first word of a
-line in the 
-.I snmp.conf
-configuration file(s) matches "exampleToken".
-.br
-Calling the appropriate handlers to process the configuration file directives
-is the responsibility of 
-.B read_configs() 
-(see below).
-.TP
-.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
-\fIbefore\fP the textual MIBs are read in.
-This is typically used for tokens that will affect the configuration of
-the MIB parser, and will normally only be used within the SNMP library itself.
-.TP
-.B register_mib_handlers()
-Initialisation routine to register the internal SNMP library configuration handlers.
-.TP
-.B unregister_config_handler()
-Removes the registered configuration handler for the specified
-.I filePrefix
-and
-.IR token .
-.TP
-.B unregister_all_config_handlers()
-Removes all registered configuration handlers.
-
-.SS Token Handlers
-.PP
-Handler functions should have the following signature:
-.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
-token that triggered the call to this function (i.e. the token used
-when registering the handler), and the second
-being the remainder of the configuration file line (i.e. everything
-following the white space following the matched token).
-
-.SS Freeing Handlers
-.PP
-If the token handler function dynamically allocates resources when
-processing a configuration entry, then these may need to be released
-before re-reading the configuration files.
-If the fourth parameter (
-.I releaser
-) passed to
-.B register_config_handler
-is non-NULL, then this specifies a function to be called before
-re-reading the configuration files.  This function should free any
-resources allocated by the token handler function and reset its notion
-of the configuration to its default.  The token handler function can
-then safely be called again.
-No arguments are passed to the resource freeing handler.
-.br
-Note that this function is not called when the handler is
-unregistered individually (but \fIis\fP called as part of
-.B unregister_all_config_handlers()
-).
-
-.SS Application Handlers
-.TP
-.B register_app_config_handler()
-.TP
-.B register_app_prenetsnmp_mib_handler()
-.TP
-.B unregister_app_config_handler()
-These functions are analagous to 
-.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
-use these functions to allow the agent to have more control over which
-configuration files are read (typically the
-.I snmpd.conf
-files).
-.SH READING CONFIGURATION FILES
-.TP
-.B read_premib_configs()
-.TP
-.B read_configs()
-These routines process the configuration files found in the
-configuration search path (see below).  For each entry, the
-handler registered for that configuration token is called.
-.PP
-.B read_premib_configs()
-is run before the MIB files are read in, and processes those
-configuration tokens registered using
-.B register_prenetsnmp_mib_handler()
-(or
-.B register_app_prenetsnmp_mib_handler()
-).
-All other entries are ignored.
-.PP
-.B read_configs()
-is run after the MIB files have been read in, and processes those
-configuration tokens registered using
-.B register_config_handler()
-(or
-.B register_app_config_handler()
-).
-If it encounters a configuration token for which no handler has
-been registered (either pre- or post-mib), then it will display
-a warning message, and continue processing with the next line
-of the configuration file.
-.SS Configuration Search Path
-.PP
-The configuration files to be read are found by searching a list
-of configuration directories for appropriately named files.
-In each such directory, the library will look for files named
-\fC snmp.conf\fP,
-\fC snmp.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
-in each directory.  Missing files will be silently skipped.
-.br
-The idea behind the two different suffixes is that the first file can
-be shared (via rdist or an NFS mount) across a large number of
-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 \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.
-.br
-.SS init_snmp()
-.PP
-The normal mode of operation would be to register the application-specific
-configuration handlers, and then invoke
-.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_prenetsnmp_mib_handler(),
-read in the textual MIB files using
-.B init_mib(),
-and finally parse the configuration file tokens registered with 
-.BR register_config_handler() .
-.PP
-If the 
-.B init_snmp()
-function is used, none of these functions need to be explicitly
-called by the application.
-.SH HELP STRINGS AND ERRORS
-.PP
-The
-.I usageLine
-parameter passed to
-.B register_config_handler()
-and similar calls, is used to display help information when the
-.B read_config_print_usage()
-function is called.  This function is used by all of the applications
-when the 
-.B -H
-flag is passed on the command line.  It prints a summary of all of the
-configuration file lines, and the associated files, that the
-configuration system understands.  The
-.I usageLine
-parameter should be a list of arguments expected after the token, and
-not a lengthy description (which should go into a manual page
-instead).  The
-.I lead
-prefix will be prepended to each line that the function prints to
-stderr, where it displays its output.
-.PP
-The
-.B init_snmp()
-function should be called before the
-.B read_config_print_usage()
-function is called, so that the library can register its configuration 
-file directives as well for the 
-.B read_config_print_usage()
-function to display.
-.SS Error Handling Functions
-.PP
-The two functions
-.B config_pwarn()
-and
-.B config_perror()
-both take an error string as an argument and print it to stderr along
-with the file and line number that caused the error.  A call to the
-second function will also force 
-.B read_configs() 
-to eventually return with an error code indicating to it's calling
-function that it should abort the operation of the application.
-.SH "ENVIRONMENT VARIABLES"
-.TP 10
-SNMPCONFPATH
-A colon separated list of directories to search for configuration
-files in.
-Default: SYSCONFDIR/snmp:DATADIR/snmp:LIBDIR/snmp:$HOME/.snmp
-.SH "SEE ALSO"
-.BR mib_api "(3), " snmp_api (3)
-.\" Local Variables:
-.\"  mode: nroff
-.\" End:
diff --git a/man/netsnmp_container.3 b/man/netsnmp_container.3
new file mode 100644
index 0000000..b1c130d
--- /dev/null
+++ b/man/netsnmp_container.3
@@ -0,0 +1,18 @@
+.TH "container" 3 "23 May 2010" "Version 5.4.3.pre1" "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_data_list.3 b/man/netsnmp_data_list.3
new file mode 100644
index 0000000..da38b5c
--- /dev/null
+++ b/man/netsnmp_data_list.3
@@ -0,0 +1,269 @@
+.TH "generic linked-list data handling with a string as a key." 3 "23 May 2010" "Version 5.4.3.pre1" "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_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 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 \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 83 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 60 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 137 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 93 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 42 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 26 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 162 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 180 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 333 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 231 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 198 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 297 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 280 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
new file mode 100644
index 0000000..3090945
--- /dev/null
+++ b/man/netsnmp_debug.3
@@ -0,0 +1,106 @@
+.TH "debug" 3 "23 May 2010" "Version 5.4.3.pre1" "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
+.SS "handler"
+ 
+.in +1c
+.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"
+.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"
+.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"
+.ti -1c
+.RI "void \fBnetsnmp_init_table_dataset\fP (void)"
+.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"
+.ti -1c
+.RI "void \fBnetsnmp_init_helpers\fP (void)"
+.br
+.RI "\fIcall the initialization sequence for all handlers with init_ routines. \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 51 of file debug_handler.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 139 of file bulk_to_next.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 155 of file debug_handler.c.
+.SS "void netsnmp_init_helpers (void)"
+.PP
+call the initialization sequence for all handlers with init_ routines. 
+.PP
+Definition at line 36 of file all_helpers.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 81 of file read_only.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 93 of file serialize.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 238 of file stash_cache.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
new file mode 100644
index 0000000..66b6a94
--- /dev/null
+++ b/man/netsnmp_default_store.3
@@ -0,0 +1,250 @@
+.TH "storage space for defaults" 3 "23 May 2010" "Version 5.4.3.pre1" "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 ()"
+.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 197 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
new file mode 100644
index 0000000..6023e27
--- /dev/null
+++ b/man/netsnmp_example_scalar_int.3
@@ -0,0 +1,26 @@
+.TH "example_scalar_int: instantiates a few example scalars." 3 "6 Mar 2002" "net-snmp" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+example_scalar_int: instantiates a few example scalars. \- 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 
\ No newline at end of file
diff --git a/man/netsnmp_handler.3 b/man/netsnmp_handler.3
new file mode 100644
index 0000000..489a6b8
--- /dev/null
+++ b/man/netsnmp_handler.3
@@ -0,0 +1,517 @@
+.TH "Net-SNMP Agent handler and extensibility API" 3 "23 May 2010" "Version 5.4.3.pre1" "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, 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, 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 definedy 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 definedy 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 "\fIfree's the resourceses associated with a given handler \fP"
+.ti -1c
+.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_handler_dup\fP (\fBnetsnmp_mib_handler\fP *handler)"
+.br
+.RI "\fIdulpicates 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 *free)"
+.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, \fBta [...]
+.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 tak [...]
+.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
+dulpicates a handler and all subsequent handlers see also _clone_handler 
+.SS "void netsnmp_handler_free (\fBnetsnmp_mib_handler\fP * handler)"
+.PP
+free's the resourceses associated with a given handler 
+.PP
+make sure we aren't pointing to ourselves.
+.PP
+XXX : segv here at shutdown if SHUTDOWN_AGENT_CLEANLY defined. About 30 functions down the stack, starting in clear_context() -> clear_subtree()
+.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, 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 definedy by the netsnmp_handler_registration pointer. The new handler is injected at the top of the list and hence will be the new handler to be called first. 
+.SS "int netsnmp_inject_handler_before (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_mib_handler\fP * handler, const char * before_what)"
+.PP
+inject a new handler into the calling chain of the handlers definedy by the netsnmp_handler_registration pointer. The new handler is injected after the before_what handler, or if NULL at the top of the list and hence will be the new handler to be called first. 
+.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
new file mode 100644
index 0000000..9977edc
--- /dev/null
+++ b/man/netsnmp_instance.3
@@ -0,0 +1,191 @@
+.TH "instance" 3 "23 May 2010" "Version 5.4.3.pre1" "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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, oid *reg_oid, size_t reg_oid_len, long *it, Netsnmp_Node_Handler *subhandler, const char *contextName)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_int_instance_context\fP (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler, const char *contextName)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_read_only_int_instance_context\fP (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler, const char *contextName)"
+.br
+.ti -1c
+.RI "int \fBregister_read_only_int_instance_context\fP (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler, const char *contextName)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_num_file_instance\fP (const char *name, oid *reg_oid, size_t reg_oid_len, char *file_name, int asn_type, int mode, Netsnmp_Node_Handler *subhandler, const char *contextName)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_int_instance\fP (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.RI "\fIThis function registers an int helper handler to a specified OID. \fP"
+.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 48 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 741 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 73 of file instance.c.
+.SS "int netsnmp_register_int_instance (const char * name, 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
+\fBExamples: \fP
+.in +1c
+\fBscalar_int.c\fP.
+.PP
+Definition at line 460 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 100 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
new file mode 100644
index 0000000..6500ed3
--- /dev/null
+++ b/man/netsnmp_iterator_info_s.3
@@ -0,0 +1,76 @@
+.TH "iterator_info_s" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..f0b3cd6
--- /dev/null
+++ b/man/netsnmp_leaf.3
@@ -0,0 +1,44 @@
+.TH "leaf_handlers" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..a5d5a54
--- /dev/null
+++ b/man/netsnmp_library.3
@@ -0,0 +1,646 @@
+.TH "The Net-SNMP library" 3 "23 May 2010" "Version 5.4.3.pre1" "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
+.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(*fch [...]
+.br
+.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 *,  [...]
+.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 **, siz [...]
+.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\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 "int \fB_sess_read\fP (void *sessp, fd_set *fdset)"
+.br
+.ti -1c
+.RI "int \fBsnmp_sess_read\fP (void *sessp, fd_set *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_sess_select_info\fP (void *sessp, int *numfds, fd_set *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 u_char *value, size_t len)"
+.br
+.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 u_char *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_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 148 of file snmp_api.c.
+.SH "Function Documentation"
+.PP 
+.SS "int _sess_read (void * sessp, fd_set * fdset)"
+.PP
+XXX-rks: why no SNMP_FREE(isp->packet); ??
+.PP
+XXX-rks: why no SNMP_FREE(isp->packet); ?? 
+.PP
+Definition at line 5412 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 270 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 787 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 6350 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 6431 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 largest common index of commonality. 1 = first, 0 if none * or -1 on error. 
+.RE
+.PP
+
+.PP
+Definition at line 6487 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 6467 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 6301 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 6403 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 853 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 1276 of file snmp_api.c.
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_mib_api.3.def b/man/netsnmp_mib_api.3.def
deleted file mode 100644
index c253047..0000000
--- a/man/netsnmp_mib_api.3.def
+++ /dev/null
@@ -1,310 +0,0 @@
-.TH NETSNMP_MIB_API 3 "13 Aug 2010" VVERSIONINFO "Net-SNMP"
-.SH NAME
-add_mibdir,
-netsnmp_init_mib,
-shutdown_mib,
-netsnmp_read_module,
-read_mib,
-read_all_mibs,
-add_module_replacement,
-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 - netsnmp_mib_api functions
-.SH SYNOPSIS
-.B #include <net\-snmp/mib_api.h>
-.PP
-.SS Initialisation and Shutdown
-.BI "int add_mibdir(const char *" "dirname" );
-.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
-.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);
-.PP
-.BI "int add_module_replacement(const char *" "old_module" ","
-.br
-.BI "                           const char *" "new_module" ","
-.br
-.BI "                           const char *" "tag" ", int " "len" );
-.PP
-.BI "void snmp_set_mib_warnings(int " level );
-.br
-.BI "void snmp_set_mib_errors(int " level );
-.br
-.BI "void snmp_set_save_descriptions(int " save ");"
-.SS Searching the MIB Tree
-.PP
-.BI "int  read_objid(const char *" "input" ","
-.br
-.BI "                oid *" "objid" ", size_t *" "objidlen" );
-.br
-.BI "oid *snmp_parse_oid(const char *" "input" ","
-.br
-.BI "                oid *" "objid" ", size_t *" "objidlen" );
-.br
-.BI "int  get_module_node(const char *" "name" ", const char *" "module" ","
-.br
-.BI "                oid *" "objid" ", size_t *" "objidlen" );
-.SS Output
-.PP
-.BI "void  print_mib(FILE *" "fp" );
-.PP
-.BI "void  print_objid(const oid *" objid ", size_t " objidlen );
-.br
-.BI "void fprint_objid(FILE *" fp ","
-.br
-.BI "                  const oid *" objid ", size_t " objidlen ");"
-.br
-.BI "int snprint_objid(char *" buf ", size_t " "len" ","
-.br
-.BI "                  const oid *" objid ", size_t " objidlen ");"
-.PP
-.BI "void  print_description(const oid *" objid ", size_t " objidlen ", int " width );
-.br
-.BI "void fprint_description(FILE *" fp ","
-.br
-.BI "                        const oid *" objid ", size_t " objidlen ", int " width );
-.br
-.BI "int snprint_description(char *" buf ", size_t " "len" ","
-.br
-.BI "                        const oid *" objid ", size_t " objidlen ", int " width );
-.br
-.PP
-.SH DESCRIPTION
-The functions dealing with MIB modules fall into four groups - those
-dealing with initialisation and shutdown, with reading in and parsing
-MIB files, with searching the MIB tree, and output routines.
-.SS Initialisation and Shutdown
-.PP
-.B add_mibdir
-is used to add the specified directory to the path of locations which are
-searched for files containing MIB modules.
-Note that this does not actually load the MIB modules located
-in that directory, but is simply an initialisation step to make
-them available to
-.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 netsnmp_init_mib
-configures the MIB directory search path (using
-.B add_mibdir
-), 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
-(but after any additional
-.B add_mibdir
-calls).
-.PP
-.B shutdown_mib
-will clear the information that was gathered by 
-.BR netsnmp_read_module ", " add_mibdir " and " add_module_replacement .
-It is strongly recommended that one does not invoke
-.BR shutdown_mib
-while there are SNMP sessions being actively managed.
-.SS Reading and Parsing MIBs
-.PP
-.B netsnmp_read_module
-takes the name of a MIB module (which need not be the same as the
-name of the file that contains the module), locates this within the
-configured list of MIB directories, and loads the definitions from
-the module into the active MIB tree.
-It also loads any MIB modules listed in the IMPORTS clause of this module.
-.PP
-.B read_mib
-is similar, but takes the name of the file containing the MIB module.
-Note that this file need not be located within the MIB directory
-search list (although any modules listed in the IMPORTS clause do).
-.PP
-.B read_all_mibs
-will read in all the MIB modules found on the MIB directory search list.
-.PP
-In general the parser is silent about what strangenesses it sees in
-the MIB files. To get warnings reported, call
-.B snmp_set_mib_warnings
-with a
-.I level
-of 1 (or 2 for even more warnings).
-.PP
-.B add_module_replacement
-can be used to allow new MIB modules to obsolete older ones, without
-needing to amend the IMPORTS clauses of other modules.  It takes the
-names of the old and new modules, together with an indication of which
-portions of the old module are affected.
-.RS
-.TS
-tab(+);
-lb lb lb
-l  l  l.
-tag + len + load the new module when:
-NULL + 0 + always (the old module is a strict subset of
- + + the new)
-name + 0 + for the given tag only
-name + non-0 + for any identifier with this prefix
-.TE
-.RE
-It can also be used to handle errors in the module identifiers used
-in MIB IMPORTS clauses (such as referring to
-.I RFC1213
-instead of
-.IR RFC1213\-MIB ).
-.SS Searching the MIB Tree
-.PP
-.B read_objid
-takes a string containing a textual version of an object identifier
-(in either numeric or descriptor form), and transforms this into the
-corresponding list of sub-identifiers.  This is returned in the
-.I output
-parameter, with the number of sub-identifiers returned via
-.IR out_len .
-When called, 
-.I out_len
-must hold the maximum length of the
-.I output
-array.
-If multiple object identifiers are being processed, then this
-length should be reset before each call.
-This function returns a value of 1 if it succeeds in parsing the string
-and 0 otherwise.
-.PP
-.B snmp_parse_oid
-is similar, but returns a pointer to the parsed OID buffer (or NULL).
-.PP
-.B get_module_node
-takes a descriptor and the name of a module, and returns the corresponding
-oid list, in the same way as
-.B read_objid
-above.
-.br
-If the module name is specified as "ANY", then this routine will
-assume that the descriptor given is unique within the tree, and will
-return the matching entry.  If this assumption is invalid, then the
-behaviour as to which variable is returned is implementation
-dependent.
-.br
-.SS Output
-.B print_mib
-will print out a representation of the currently active MIB tree to
-the specified FILE pointer.
-.PP
-.B print_objid
-will take an object identifier (as returned by
-.BR read_objid ", " snmp_parse_oid " or " get_module_node "),"
-and prints the textual form of this OID to the standard output.
-.PP
-.B fprint_objid
-does the same, but prints to the FILE pointer specified by the initial
-parameter.
-.PP
-.B snprint_objid
-prints the same information into the buffer pointed to by
-.I buf
-which is of length
-.IR len .
-It returns the number of characters printed, or \-1 if the
-buffer was not large enough.  In the latter case,
-.I buf
-will typically contain a truncated version of the information (but
-this behaviour is not guaranteed).
-.PP
-.BR print_description ,
-.BR fprint_description ,
-and
-.B snprint_description
-take a similar object identifier
-and print out a version of the MIB definition for that object,
-together with the full OID. The
-.I width
-argument controls how the OID is layed out.
-.PP
-By default the parser does not save descriptions since they may be
-huge.  In order to be able to print them, it is necessary to invoke
-.BI snmp_set_save_descriptions(1) before
-calling
-.B init_mib
-(or similar).
-.SH "ENVIRONMENT VARIABLES"
-.PP
-The main use of environmental variables with respect to these API calls
-is to configure which MIB modules should be loaded, and where they are
-located.
-.TP 10
-MIBDIRS
-A colon separated list of directories to search for MIB modules.
-.br
-Default: DATADIR/snmp/mibs
-.br
-Used by
-.BR init_mib ", " netsnmp_read_module ", " read_all_mibs
-and (implicitly) by
-.BR read_mib .
-.TP 10
-MIBS
-A colon separated list of MIB modules to load.
-.br
-The default list of modules will depend on how the Net-SNMP software
-was originally compiled, but is typically:
-IP\-MIB:IF\-MIB:TCP\-MIB:UDP\-MIB:SNMPv2\-MIB:RFC1213\-MIB: UCD\-SNMP\-MIB:HOST\-RESOURCES\-MIB
-.IP
-If the value of the
-.B MIBS
-environmental variable starts with a '+' character,
-then these MIB modules will be added to the default list.
-Otherwise these modules (plus any that they IMPORT from) will be loaded
-.I instead
-of the default list.
-.IP
-If the 
-.B MIBS
-environmental variable has the value
-.BR ALL " then " read_all_mibs
-will be called to load the full collection of all available MIB modules.
-.IP
-Used by
-.B init_mib
-only.
-.TP 10
-MIBFILES
-A colon separated list of files to load.
-.br
-Default: (none)
-.br
-Used by
-.B init_mib
-only.
-.SH "SEE ALSO"
-.BR snmp_api "(3),"
-.BR output_api "(3)"
diff --git a/man/netsnmp_mib_handler_methods.3 b/man/netsnmp_mib_handler_methods.3
new file mode 100644
index 0000000..24d7dcc
--- /dev/null
+++ b/man/netsnmp_mib_handler_methods.3
@@ -0,0 +1,19 @@
+.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
new file mode 100644
index 0000000..b5b382b
--- /dev/null
+++ b/man/netsnmp_mib_maintenance.3
@@ -0,0 +1,85 @@
+.TH "mib_maintenance" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..56d4434
--- /dev/null
+++ b/man/netsnmp_mib_utilities.3
@@ -0,0 +1,1283 @@
+.TH "mib parsing and datatype manipulation routines." 3 "23 May 2010" "Version 5.4.3.pre1" "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 "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
+.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 271 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 3581 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 3445 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 4451 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 3164 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 3318 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 2017 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 5490 of file mib.c.
+.SS "void netsnmp_fixup_mib_directory (void)"
+.PP
+swap in the new value and repeat 
+.PP
+Definition at line 2480 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 2433 of file mib.c.
+.SS "void netsnmp_init_mib (void)"
+.PP
+Initialises the mib reader. Reads in all settings from the environment. 
+.PP
+Definition at line 2527 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 6277 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 6305 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 2378 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 6242 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 4435 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 2742 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 3150 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 3302 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 2840 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 2763 of file mib.c.
+.SS "void shutdown_mib (void)"
+.PP
+Unloads all mibs. 
+.PP
+Definition at line 2717 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 2290 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 5848 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 367 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 1902 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 1763 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 1937 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 1530 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 846 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 1457 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 1183 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 1257 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 1659 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 1593 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 1719 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 1039 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 427 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 949 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 1109 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 1360 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 5813 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 160 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
new file mode 100644
index 0000000..c601a02
--- /dev/null
+++ b/man/netsnmp_mode_end_call.3
@@ -0,0 +1,69 @@
+.TH "mode_end_call" 3 "23 May 2010" "Version 5.4.3.pre1" "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 [...]
+.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
new file mode 100644
index 0000000..ee5be1c
--- /dev/null
+++ b/man/netsnmp_multiplexer.3
@@ -0,0 +1,53 @@
+.TH "multiplexer" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..616a318
--- /dev/null
+++ b/man/netsnmp_netsnmp_agent_request_info_s.3
@@ -0,0 +1,48 @@
+.TH "netsnmp_agent_request_info_s" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..d9d81e2
--- /dev/null
+++ b/man/netsnmp_netsnmp_column_info_t.3
@@ -0,0 +1,57 @@
+.TH "netsnmp_column_info_t" 3 "23 May 2010" "Version 5.4.3.pre1" "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 52 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 55 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
new file mode 100644
index 0000000..fd02db0
--- /dev/null
+++ b/man/netsnmp_netsnmp_data_list_s.3
@@ -0,0 +1,52 @@
+.TH "netsnmp_data_list_s" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..ad23d38
--- /dev/null
+++ b/man/netsnmp_netsnmp_handler_registration_s.3
@@ -0,0 +1,107 @@
+.TH "netsnmp_handler_registration_s" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..b4fb5cc
--- /dev/null
+++ b/man/netsnmp_netsnmp_iterator_info_s.3
@@ -0,0 +1,111 @@
+.TH "netsnmp_iterator_info_s" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..6641f11
--- /dev/null
+++ b/man/netsnmp_netsnmp_mib_handler_access_methods.3
@@ -0,0 +1,20 @@
+.TH "netsnmp_mib_handler_access_methods" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..cc8e105
--- /dev/null
+++ b/man/netsnmp_netsnmp_mib_handler_methods.3
@@ -0,0 +1,20 @@
+.TH "netsnmp_mib_handler_methods" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..774f404
--- /dev/null
+++ b/man/netsnmp_netsnmp_mib_handler_s.3
@@ -0,0 +1,74 @@
+.TH "netsnmp_mib_handler_s" 3 "23 May 2010" "Version 5.4.3.pre1" "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_request_info_s.3 b/man/netsnmp_netsnmp_request_info_s.3
new file mode 100644
index 0000000..043e558
--- /dev/null
+++ b/man/netsnmp_netsnmp_request_info_s.3
@@ -0,0 +1,115 @@
+.TH "netsnmp_request_info_s" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..fc7e913
--- /dev/null
+++ b/man/netsnmp_netsnmp_table_registration_info_s.3
@@ -0,0 +1,73 @@
+.TH "netsnmp_table_registration_info_s" 3 "23 May 2010" "Version 5.4.3.pre1" "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 74 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 76 of file table.h.
+.SS "unsigned int \fBnetsnmp_table_registration_info_s::max_column\fP"
+.PP
+the maximum columns number 
+.PP
+Definition at line 87 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 85 of file table.h.
+.SS "unsigned int \fBnetsnmp_table_registration_info_s::number_indexes\fP"
+.PP
+calculated automatically 
+.PP
+Definition at line 78 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 90 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
new file mode 100644
index 0000000..ac0c135
--- /dev/null
+++ b/man/netsnmp_netsnmp_table_request_info_s.3
@@ -0,0 +1,64 @@
+.TH "netsnmp_table_request_info_s" 3 "23 May 2010" "Version 5.4.3.pre1" "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 102 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 104 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 108 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 106 of file table.h.
+
+.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
new file mode 100644
index 0000000..45ab2e2
--- /dev/null
+++ b/man/netsnmp_oid_stash.3
@@ -0,0 +1,210 @@
+.TH "Store and retrieve data referenced by an OID." 3 "23 May 2010" "Version 5.4.3.pre1" "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, 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, 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, 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, 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, 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, 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
new file mode 100644
index 0000000..d641796
--- /dev/null
+++ b/man/netsnmp_old_api.3
@@ -0,0 +1,60 @@
+.TH "old_api" 3 "23 May 2010" "Version 5.4.3.pre1" "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 37 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 226 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 107 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 48 of file old_api.c.
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_pdu_api.3.def b/man/netsnmp_pdu_api.3.def
deleted file mode 100644
index 0b94e9e..0000000
--- a/man/netsnmp_pdu_api.3.def
+++ /dev/null
@@ -1,30 +0,0 @@
-.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 - netsnmp_pdu_api functions
-.SH SYNOPSIS
-.B #include <net-snmp/pdu_api.h>
-.PP
-.BI "netsnmp_pdu *snmp_pdu_create( int" "type" ");"
-.PP
-.BI "netsnmp_pdu *snmp_clone_pdu( netsnmp_pdu*" "pdu" ");"
-.PP
-.BI "netsnmp_pdu *snmp_fix_pdu( netsnmp_pdu*" "pdu" ", int " "idx" ");"
-.PP
-.BI "netsnmp_pdu *snmp_free_pdu( netsnmp_pdu*" "pdu" ");"
-.PP
-.SH DESCRIPTION
-These functions deal with SNMP request structures.
-.PP
-.B snmp_pdu_create
-.PP
-.B snmp_clone_pdu
-.PP
-.B snmp_fix_pdu
-.PP
-.B snmp_free_pdu
-.SH "SEE ALSO"
-.BR varbind_api "(3)"
-.BR session_api "(3)"
diff --git a/man/netsnmp_read_config.3 b/man/netsnmp_read_config.3
new file mode 100644
index 0000000..e6fbf3d
--- /dev/null
+++ b/man/netsnmp_read_config.3
@@ -0,0 +1,356 @@
+.TH "parsing various configuration files at run time" 3 "23 May 2010" "Version 5.4.3.pre1" "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 ()"
+.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 ()"
+.br
+.ti -1c
+.RI "void \fBset_persistent_directory\fP (const char *dir)"
+.br
+.ti -1c
+.RI "const char * \fBget_persistent_directory\fP ()"
+.br
+.ti -1c
+.RI "void \fBset_temp_file_pattern\fP (const char *pattern)"
+.br
+.ti -1c
+.RI "const char * \fBget_temp_file_pattern\fP ()"
+.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 \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 1836 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 1272 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 1995 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. 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
new file mode 100644
index 0000000..8905760
--- /dev/null
+++ b/man/netsnmp_read_only.3
@@ -0,0 +1,43 @@
+.TH "read_only" 3 "23 May 2010" "Version 5.4.3.pre1" "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 29 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 81 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
new file mode 100644
index 0000000..33ccc3e
--- /dev/null
+++ b/man/netsnmp_row_merge.3
@@ -0,0 +1,101 @@
+.TH "row_merge" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..cb3b6d1
--- /dev/null
+++ b/man/netsnmp_scalar.3
@@ -0,0 +1,102 @@
+.TH "scalar" 3 "23 May 2010" "Version 5.4.3.pre1" "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 46 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 109 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 74 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
new file mode 100644
index 0000000..f16bf6e
--- /dev/null
+++ b/man/netsnmp_scalar_group_group.3
@@ -0,0 +1,27 @@
+.TH "scalar_group" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..a5f754e
--- /dev/null
+++ b/man/netsnmp_serialize.3
@@ -0,0 +1,58 @@
+.TH "serialize" 3 "23 May 2010" "Version 5.4.3.pre1" "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 31 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 93 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 40 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 48 of file serialize.c.
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_sess_api.3.def b/man/netsnmp_sess_api.3.def
deleted file mode 100644
index 36b4159..0000000
--- a/man/netsnmp_sess_api.3.def
+++ /dev/null
@@ -1,235 +0,0 @@
-.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
-.SH SYNOPSIS
-.B #include <net-snmp/session_api.h>
-.PP
-.BI "void snmp_sess_init(struct snmp_session *" session ");"
-.PP
-.BI "void *snmp_sess_open(struct snmp_session *" session ");"
-.PP
-.BI "struct snmp_session *snmp_sess_session(void *" handle ");"
-.PP
-.BI "int snmp_sess_send(void *" handle ", struct snmp_pdu *" pdu ");"
-.PP
-.BI "int snmp_sess_async_send(void *" handle ","
-.br
-.BI "                         struct snmp_pdu *" pdu ", "
-.br
-.BI "                         snmp_callback " callback ", "
-.br
-.BI "                         void *" callbackData ");"
-.PP
-.BI "int snmp_sess_select_info(void *" handle ","
-.br
-.BI "                          int *" numfds ", fd_set *" fdset ", "
-.br
-.BI "                          struct timeval *" timeout ", "
-.br
-.BI "                          int *" block ");"
-.PP
-.BI "int snmp_sess_read(void *" handle ", fd_set *" fdset ");"
-.PP
-.BI "void snmp_sess_timeout(void *" handle ");"
-.PP
-.BI "int snmp_sess_synch_response ( void *" "handle,"
-.RS
-.BI "netsnmp_pdu *" "pdu" ", "
-.br
-.BI "netsnmp_pdu **" "response" );
-.RE
-.PP
-.BI "int snmp_sess_close(void *" handle ");"
-.PP
-.BI "void snmp_sess_error(void *" handle ", int *" pcliberr ", "
-.br
-.BI "                    int *" psnmperr ", char **" pperrstring ");"
-.SH DESCRIPTION
-These functions define a subset of the API that can be used
-to manage single SNMP sessions in a multi-threaded application.
-Except for
-.BR snmp_sess_session() ,
-these functions are single session versions of the traditional
-SNMP library API.
-.PP
-Note that these functions use an opaque pointer
-.RI ( handle
-in the above prototypes) to identify a single session in lieu of a
-.I session
-pointer (as in the traditional API).
-.PP
-.B snmp_sess_init()
-prepares a struct snmp_session that sources transport characteristics
-and common information that will be used for a set of SNMP transactions.
-After this structure is passed to
-.B snmp_sess_open()
-to create an SNMP session, the structure is no longer used.  Instead
-the opaque pointer returned by
-.B snmp_sess_open()
-is used to refer to that session henceforth.
-.PP
-SNMP sessions that are created with
-.B snmp_sess_open()
-are not affected by, and SHOULD NOT BE USED WITH,
-.BR snmp_select_info() ", " snmp_read() ", " snmp_timeout() " nor"
-.BR snmp_close() .
-Rather the equivalent single session functions described here should
-be used.
-.PP
-.B snmp_sess_init()
-and
-.B snmp_sess_open()
-each take as input a pointer to a struct snmp_session object.
-This structure contains information for a set of transactions that
-will share similar transport characteristics.
-.B snmp_sess_session()
-takes the opaque session handle and returns a pointer to
-its associated struct snmp_session.
-.PP
-.B snmp_sess_send()
-and
-.B snmp_sess_async_send()
-each take a
-.I pdu
-parameter, which points to a struct snmp_pdu object containing
-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_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)
-system call so that SNMP transactions for a single session can occur
-asynchronously.
-.PP
-.B snmp_sess_select_info()
-is passed the information that would have been passed to
-.BR select (2)
-in the absence of SNMP.  For example, this might include file
-descriptors associated with the main loop of a graphical
-application. This information is modified so that SNMP will get the
-service it requires from the call to
-.BR select (2).
-In this case,
-.IR numfds ", " fdset " and " timeout
-correspond to the
-.IR nfds ", " readfds " and " timeout
-arguments to
-.BR select (2)
-respectively.  The only exception is that timeout must ALWAYS point to
-an allocated (but perhaps uninitialized)
-.I struct timeval
-(it cannot be NULL as for
-.BR select (2)).
-If
-.I timeout
-would have been passed as NULL,
-.I block
-is instead set to true, and
-.I timeout
-is treated as undefined.  This same rule applies upon return from
-.BR snmp_select_info() .
-.PP
-After calling
-.B snmp_sess_select_info() ,
-.BR select (2)
-should be called with the returned data.  When it returns,
-.B snmp_sess_read()
-should then be called with the
-.I fd_set
-returned from
-.BR select (2).
-This will read any input from this session's SNMP socket.  If
-.BR select (2)
-times out (that is, it returns zero),
-.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 
-.B snmp_sess_open()
-is indicated by return of a NULL pointer.
-Error return status from 
-.B snmp_sess_close()
-and
-.B snmp_sess_send()
-is indicated by a return value of 0.  A successful status will return
-1.
-.PP
-Further information can be obtained by using
-.B snmp_sess_error()
-to see what type of error has occurred.  This function returns the
-SNMP
-.I snmp_errno
-variable, the value of the system
-.I errno
-variable, and a string interpretation of both variables.  The string
-must be freed after use by the caller.
-.PP
-For errors returned by
-.BR snmp_sess_open() ,
-use the corresponding function
-.B snmp_error()
-instead of
-.BR snmp_sess_error() .
-.PP
-Consult snmp_api.h for the complete set of SNMP library
-error values.
-The SNMP library error value
-.IR snmperr
-can be one of the following values:
-.RS 2n
-.IP SNMPERR_GENERR \w'SNMPERR_BAD_REPETITIONS'u+2n
-A generic error occurred.
-.IP SNMPERR_BAD_LOCPORT \w'SNMPERR_BAD_REPETITIONS'u+2n
-The local port was bad because it had already been
-allocated or permission was denied.
-.IP SNMPERR_BAD_ADDRESS \w'SNMPERR_BAD_REPETITIONS'u+2n
-The host name or address given was not useable.
-.IP SNMPERR_BAD_SESSION \w'SNMPERR_BAD_REPETITIONS'u+2n
-The specified session was not open.
-.IP SNMPERR_TOO_LONG \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_NO_SOCKET \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_V2_IN_V1 \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_V1_IN_V2 \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_REPEATERS \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_REPETITIONS \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_ASN1_BUILD \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_SENDTO \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_RCVFROM \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_PARSE \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_VERSION \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_COMMUNITY \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_NOAUTH_DESPRIV \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_ABORT \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_UNKNOWN_PDU \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_TIMEOUT \w'SNMPERR_BAD_REPETITIONS'u+2n
-.RE
-.PP
-.SH "SEE ALSO"
-.BR select "(2), " snmp_api "(3), " snmp_api.h
diff --git a/man/netsnmp_session_api.3.def b/man/netsnmp_session_api.3.def
deleted file mode 100644
index 7164d36..0000000
--- a/man/netsnmp_session_api.3.def
+++ /dev/null
@@ -1,281 +0,0 @@
-.\" -*- 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:
-.\" /***********************************************************
-.\" 	Copyright 1989 by Carnegie Mellon University
-.\" 
-.\"                       All Rights Reserved
-.\" 
-.\" Permission to use, copy, modify, and distribute this software and its 
-.\" documentation for any purpose and without fee is hereby granted, 
-.\" provided that the above copyright notice appear in all copies and that
-.\" both that copyright notice and this permission notice appear in 
-.\" supporting documentation, and that the name of CMU not be
-.\" used in advertising or publicity pertaining to distribution of the
-.\" software without specific, written prior permission.  
-.\" 
-.\" CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-.\" ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-.\" CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-.\" ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-.\" WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-.\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-.\" SOFTWARE.
-.\" ******************************************************************/
-.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 \- netsnmp_session_api functions
-.SH SYNOPSIS
-.B #include <net-snmp/session_api.h>
-.PP
-.BI "void snmp_sess_init ( netsnmp_session*" "sess" );
-.PP
-.BI "netsnmp_session* snmp_open ( netsnmp_session *" "sess");
-.RS
-.I /* Input parameter not used in active sessions */
-.RE
-.PP
-.BI "int snmp_send ( netsnmp_session *" "session,"
-.RS
-.BI "netsnmp_pdu *" "pdu" );
-.RE
-.PP
-.BI "int snmp_async_send ( netsnmp_session *" "session,"
-.RS
-.BI "                         netsnmp_pdu *" pdu ", "
-.br
-.BI "                         snmp_callback " callback ", "
-.br
-.BI "                         void *" callbackData ");"
-.RE
-.PP
-.BI "int snmp_select_info ( int * " numfds, "fd_set *" fdset,
-.RS
-.BI "struct timeval *" timeout, "int *" block );
-.RE
-.PP
-.BI "void snmp_read ( fd_set *" fdset );
-.PP
-.B  void snmp_timeout ( void );
-.PP
-.BI "int snmp_synch_response ( netsnmp_session *" "session,"
-.RS
-.BI "netsnmp_pdu *" "pdu" ", "
-.br
-.BI "netsnmp_pdu **" "response" );
-.RE
-.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
-.BI "int *" pcliberr, "int *" psnmperr, "char **" pperrstring );
-.RE
-.PP
-.BI "char *snmp_api_errstring ( int" snmperr );
-.PP
-.BI "void snmp_perror ( char *" msg );
-.RS
-.I /* for parsing errors only */
-.RE
-.PP
-.BI "void snmp_sess_perror (char *" msg, "netsnmp_session *" sess );
-.RS
-.I /* all other SNMP library errors */
-.RE
-.PP
-.SH DESCRIPTION
-.I Snmp_sess_init
-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
-to create an SNMP session, the structure is not used.
-.PP
-.I Snmp_open
-returns a pointer to a newly-formed
-.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 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
-provide an interface for the use of the
-.IR select(2)
-system call so that SNMP transactions can occur asynchronously.
-.PP
-.I Snmp_select_info
-is given the information that would have been passed to
-.I select
-in the absence of SNMP.  For example, this might include window update information.
-This information is modified so that SNMP will get the service it requires from the
-call to
-.I select.
-In this case,
-.I numfds, fdset,
-and
-.I timeout
-correspond to the
-.I nfds, readfds,
-and
-.I timeout
-arguments to
-.I select,
-respectively.  The only exception is that timeout must always point to an allocated (but perhaps uninitialized)
-.I struct timeval.
-If
-.I timeout
-would have been passed as NULL,
-.I block
-is set to true, and
-.I timeout
-is treated as undefined.  This same rule applies upon return from
-.I snmp_select_info.
-.PP
-After calling
-.I snmp_select_info, select
-is called with the returned data.  When select returns,
-.I snmp_read
-should be called with the
-.I fd_set
-returned from
-.I select
-to read each SNMP socket that has input.
-If
-.I select
-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
-.IR snmp_get_errno
-to read the global variable
-.I snmp_errno
-which may have held the error status within the SNMP library.
-The existing method
-.I snmp_perror
-should be used to log ASN.1 coding errors only.
-.PP
-The new method
-.I snmp_sess_perror
-is provided to capture errors that occur during the processing
-of a particular SNMP session.
-.I Snmp_sess_perror
-calls
-.IR snmp_error
-function to obtain the "C" library error
-.I errno
-, the SNMP library error
-.I snmperr
-, and the SNMP library detailed error message
-that is associated with an error that occurred during a given session.
-.PP
-Note that in all cases except one,
-.IR snmp_sess_perror
-should be handed the
-.I netsnmp_session *
-pointer returned from
-.IR snmp_open.
-If
-.IR snmp_open
-returns a null pointer, pass the INPUT
-.I netsnmp_session *
-pointer used to call
-.IR snmp_open.
-.PP
-Error return status from 
-.I snmp_close
-and
-.I snmp_send
-is indicated by return of 0.  A successful status will return a 1 for
-.I snmp_close
-and the request id of the packet for
-.I snmp_send.
-Upon successful return from
-.I snmp_send
-the pdu will be freed by the library.
-.PP
-Consult snmp_api.h for the complete set of SNMP library
-error values.
-The SNMP library error value
-.IR snmperr
-can be one of the following values:
-.RS 2n
-.IP SNMPERR_GENERR \w'SNMPERR_BAD_REPETITIONS'u+2n
-A generic error occurred.
-.IP SNMPERR_BAD_LOCPORT \w'SNMPERR_BAD_REPETITIONS'u+2n
-The local port was bad because it had already been
-allocated or permission was denied.
-.IP SNMPERR_BAD_ADDRESS \w'SNMPERR_BAD_REPETITIONS'u+2n
-The host name or address given was not useable.
-.IP SNMPERR_BAD_SESSION \w'SNMPERR_BAD_REPETITIONS'u+2n
-The specified session was not open.
-.IP SNMPERR_TOO_LONG \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_NO_SOCKET \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_V2_IN_V1 \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_V1_IN_V2 \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_REPEATERS \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_REPETITIONS \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_ASN1_BUILD \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_SENDTO \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_PARSE \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_BAD_VERSION \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_NOAUTH_DESPRIV \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_ABORT \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_UNKNOWN_PDU \w'SNMPERR_BAD_REPETITIONS'u+2n
-.IP SNMPERR_TIMEOUT \w'SNMPERR_BAD_REPETITIONS'u+2n
-.RE
-.PP
-A string representation of the error code can be obtained with
-.IR snmp_api_errstring ,
-and a standard error message may be printed using
-.I snmp_perror
-that functions like the
-.I perror
-standard routine.
-.SH "SEE ALSO"
-select(2), snmp_api.h
diff --git a/man/netsnmp_set_data.3 b/man/netsnmp_set_data.3
new file mode 100644
index 0000000..6ab42a4
--- /dev/null
+++ b/man/netsnmp_set_data.3
@@ -0,0 +1,61 @@
+.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
new file mode 100644
index 0000000..7b44110
--- /dev/null
+++ b/man/netsnmp_snmp_agent.3
@@ -0,0 +1,571 @@
+.TH "net-snmp agent related processing" 3 "23 May 2010" "Version 5.4.3.pre1" "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 "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
+.RI "\fIThis function calls into netsnmp_set_mode_request_error, sets error_value given a reqinfo->mode value. \fP"
+.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 ()"
+.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 "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_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 3414 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 566 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 2815 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 2932 of file snmp_agent.c.
+.SS "int handle_pdu (\fBnetsnmp_agent_session\fP * asp)"
+.PP
+This function calls into netsnmp_set_mode_request_error, sets error_value given a reqinfo->mode value. It's used to send specific errors back to the agent to process accordingly.
+.PP
+If error_value is set to SNMP_NOSUCHOBJECT, SNMP_NOSUCHINSTANCE, or SNMP_ENDOFMIBVIEW the following is applicable: Sets the error_value to request->requestvb->type if reqinfo->mode value is set to MODE_GET. If the reqinfo->mode value is set to MODE_GETNEXT or MODE_GETBULK the code calls snmp_log logging an error message.
+.PP
+Otherwise, the request->status value is checked, if it's < 0 snmp_log is called with an error message and SNMP_ERR_GENERR is assigned to request->status. If the request->status value is >= 0 the error_value is set to request->status.
+.PP
+\fBParameters:\fP
+.RS 4
+\fIreqinfo\fP is a pointer to the netsnmp_agent_request_info struct. It contains the reqinfo->mode which is required to set error_value or log error messages.
+.br
+\fIrequest\fP is a pointer to the netsnmp_request_info struct. The error_value is set to request->requestvb->type
+.br
+\fIerror_value\fP is the exception value you want to set, below are possible values.
+.IP "\(bu" 2
+SNMP_NOSUCHOBJECT
+.IP "\(bu" 2
+SNMP_NOSUCHINSTANCE
+.IP "\(bu" 2
+SNMP_ENDOFMIBVIEW
+.IP "\(bu" 2
+SNMP_ERR_NOERROR
+.IP "\(bu" 2
+SNMP_ERR_TOOBIG
+.IP "\(bu" 2
+SNMP_ERR_NOSUCHNAME
+.IP "\(bu" 2
+SNMP_ERR_BADVALUE
+.IP "\(bu" 2
+SNMP_ERR_READONLY
+.IP "\(bu" 2
+SNMP_ERR_GENERR
+.IP "\(bu" 2
+SNMP_ERR_NOACCESS
+.IP "\(bu" 2
+SNMP_ERR_WRONGTYPE
+.IP "\(bu" 2
+SNMP_ERR_WRONGLENGTH
+.IP "\(bu" 2
+SNMP_ERR_WRONGENCODING
+.IP "\(bu" 2
+SNMP_ERR_WRONGVALUE
+.IP "\(bu" 2
+SNMP_ERR_NOCREATION
+.IP "\(bu" 2
+SNMP_ERR_INCONSISTENTVALUE
+.IP "\(bu" 2
+SNMP_ERR_RESOURCEUNAVAILABLE
+.IP "\(bu" 2
+SNMP_ERR_COMMITFAILED
+.IP "\(bu" 2
+SNMP_ERR_UNDOFAILED
+.IP "\(bu" 2
+SNMP_ERR_AUTHORIZATIONERROR
+.IP "\(bu" 2
+SNMP_ERR_NOTWRITABLE
+.IP "\(bu" 2
+SNMP_ERR_INCONSISTENTNAME
+.PP
+.RE
+.PP
+\fBReturns:\fP
+.RS 4
+Returns error_value under all conditions. 
+.RE
+.PP
+
+.PP
+Definition at line 3226 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 1771 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 1880 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 2718 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 3482 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 3525 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 3497 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 3699 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 3683 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 3664 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 1518 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
new file mode 100644
index 0000000..26b305c
--- /dev/null
+++ b/man/netsnmp_snmp_alarm.3
@@ -0,0 +1,43 @@
+.TH "snmp_alarm" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..ba15a00
--- /dev/null
+++ b/man/netsnmp_snmp_client.3
@@ -0,0 +1,137 @@
+.TH "various PDU processing routines" 3 "23 May 2010" "Version 5.4.3.pre1" "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
+.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, 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 u_char *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 u_char *value, size_t len)"
+.br
+.ti -1c
+.RI "void \fBsnmp_replace_var_types\fP (\fBnetsnmp_variable_list\fP *vbl, u_char old_type, u_char new_type)"
+.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\fP (void)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_query_get\fP (\fBnetsnmp_variable_list\fP *list, \fBnetsnmp_session\fP *session)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_query_getnext\fP (\fBnetsnmp_variable_list\fP *list, \fBnetsnmp_session\fP *session)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_query_set\fP (\fBnetsnmp_variable_list\fP *list, \fBnetsnmp_session\fP *session)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_query_walk\fP (\fBnetsnmp_variable_list\fP *list, \fBnetsnmp_session\fP *session)"
+.br
+.in -1c
+.SH "Function Documentation"
+.PP 
+.SS "int snmp_set_var_typed_value (\fBnetsnmp_variable_list\fP * newvar, u_char type, const u_char * 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 687 of file snmp_client.c.
+.SS "int snmp_set_var_value (\fBnetsnmp_variable_list\fP * vars, const u_char * value, size_t len)"
+.PP
+FALL THROUGH 
+.PP
+Definition at line 754 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
new file mode 100644
index 0000000..9c26645
--- /dev/null
+++ b/man/netsnmp_snmp_logging.3
@@ -0,0 +1,246 @@
+.TH "generic logging for net-snmp" 3 "23 May 2010" "Version 5.4.3.pre1" "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 "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 636 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 493 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 1275 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 1214 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
new file mode 100644
index 0000000..cd33efd
--- /dev/null
+++ b/man/netsnmp_snmp_pdu.3
@@ -0,0 +1,292 @@
+.TH "snmp_pdu" 3 "23 May 2010" "Version 5.4.3.pre1" "net-snmp" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+snmp_pdu \- 
+.PP
+The snmp protocol data unit.  
+
+.SH SYNOPSIS
+.br
+.PP
+.PP
+\fC#include <snmp_api.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 75 of file snmp_api.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 142 of file snmp_api.h.
+.SS "int \fBsnmp_pdu::command\fP"
+.PP
+Type of this PDU. 
+.PP
+Definition at line 83 of file snmp_api.h.
+.SS "u_char* \fBsnmp_pdu::community\fP"
+.PP
+community for outgoing requests. 
+.PP
+Definition at line 127 of file snmp_api.h.
+.SS "size_t \fBsnmp_pdu::community_len\fP"
+.PP
+length of community name. 
+.PP
+Definition at line 129 of file snmp_api.h.
+.SS "u_char* \fBsnmp_pdu::contextEngineID\fP"
+.PP
+context snmpEngineID 
+.PP
+Definition at line 148 of file snmp_api.h.
+.SS "size_t \fBsnmp_pdu::contextEngineIDLen\fP"
+.PP
+Length of contextEngineID. 
+.PP
+Definition at line 150 of file snmp_api.h.
+.SS "char* \fBsnmp_pdu::contextName\fP"
+.PP
+authoritative contextName 
+.PP
+Definition at line 152 of file snmp_api.h.
+.SS "size_t \fBsnmp_pdu::contextNameLen\fP"
+.PP
+Length of contextName. 
+.PP
+Definition at line 154 of file snmp_api.h.
+.SS "oid* \fBsnmp_pdu::enterprise\fP"
+.PP
+System OID. 
+.PP
+Definition at line 135 of file snmp_api.h.
+.SS "long \fBsnmp_pdu::errindex\fP"
+.PP
+Error index (max_repetitions in GetBulk). 
+.PP
+Definition at line 95 of file snmp_api.h.
+.SS "long \fBsnmp_pdu::errstat\fP"
+.PP
+Error status (non_repeaters in GetBulk). 
+.PP
+Definition at line 93 of file snmp_api.h.
+.SS "long \fBsnmp_pdu::msgid\fP"
+.PP
+Message id for V3 messages note: incremented for each retry. 
+.PP
+Definition at line 87 of file snmp_api.h.
+.SS "long \fBsnmp_pdu::reqid\fP"
+.PP
+Request id - note: not incremented on retries. 
+.PP
+Definition at line 85 of file snmp_api.h.
+.SS "u_char* \fBsnmp_pdu::securityEngineID\fP"
+.PP
+authoritative snmpEngineID for security 
+.PP
+Definition at line 156 of file snmp_api.h.
+.SS "size_t \fBsnmp_pdu::securityEngineIDLen\fP"
+.PP
+Length of securityEngineID. 
+.PP
+Definition at line 158 of file snmp_api.h.
+.SS "int \fBsnmp_pdu::securityLevel\fP"
+.PP
+noAuthNoPriv, authNoPriv, authPriv 
+.PP
+Definition at line 102 of file snmp_api.h.
+.SS "char* \fBsnmp_pdu::securityName\fP"
+.PP
+on behalf of this principal 
+.PP
+Definition at line 160 of file snmp_api.h.
+.SS "size_t \fBsnmp_pdu::securityNameLen\fP"
+.PP
+Length of securityName. 
+.PP
+Definition at line 162 of file snmp_api.h.
+.SS "long \fBsnmp_pdu::sessid\fP"
+.PP
+Session id for AgentX messages. 
+.PP
+Definition at line 91 of file snmp_api.h.
+.SS "long \fBsnmp_pdu::specific_type\fP"
+.PP
+specific type 
+.PP
+Definition at line 140 of file snmp_api.h.
+.SS "const oid* \fBsnmp_pdu::tDomain\fP"
+.PP
+The actual transport domain. This SHOULD NOT BE FREE()D. 
+.PP
+Definition at line 117 of file snmp_api.h.
+.SS "u_long \fBsnmp_pdu::time\fP"
+.PP
+Uptime. 
+.PP
+Definition at line 97 of file snmp_api.h.
+.SS "long \fBsnmp_pdu::transid\fP"
+.PP
+Unique ID for incoming transactions. 
+.PP
+Definition at line 89 of file snmp_api.h.
+.SS "void* \fBsnmp_pdu::transport_data\fP"
+.PP
+Transport-specific opaque data. This replaces the IP-centric address field. 
+.PP
+Definition at line 110 of file snmp_api.h.
+.SS "long \fBsnmp_pdu::trap_type\fP"
+.PP
+trap type 
+.PP
+Definition at line 138 of file snmp_api.h.
+.SS "long \fBsnmp_pdu::version\fP"
+.PP
+snmp version 
+.PP
+Definition at line 81 of file snmp_api.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
new file mode 100644
index 0000000..bab5e6e
--- /dev/null
+++ b/man/netsnmp_snmp_session.3
@@ -0,0 +1,440 @@
+.TH "snmp_session" 3 "23 May 2010" "Version 5.4.3.pre1" "net-snmp" \" -*- nroff -*-
+.ad l
+.nh
+.SH NAME
+snmp_session \- 
+.PP
+The snmp session structure.  
+
+.SH SYNOPSIS
+.br
+.PP
+.PP
+\fC#include <snmp_api.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 187 of file snmp_api.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 214 of file snmp_api.h.
+.SS "void* \fBsnmp_session::callback_magic\fP"
+.PP
+Pointer to data that the callback function may consider important. 
+.PP
+Definition at line 218 of file snmp_api.h.
+.SS "u_char* \fBsnmp_session::community\fP"
+.PP
+community for outgoing requests. 
+.PP
+Definition at line 230 of file snmp_api.h.
+.SS "size_t \fBsnmp_session::community_len\fP"
+.PP
+Length of community name. 
+.PP
+Definition at line 232 of file snmp_api.h.
+.SS "u_char* \fBsnmp_session::contextEngineID\fP"
+.PP
+authoritative snmpEngineID 
+.PP
+Definition at line 244 of file snmp_api.h.
+.SS "size_t \fBsnmp_session::contextEngineIDLen\fP"
+.PP
+Length of contextEngineID. 
+.PP
+Definition at line 246 of file snmp_api.h.
+.SS "char* \fBsnmp_session::contextName\fP"
+.PP
+authoritative contextName 
+.PP
+Definition at line 252 of file snmp_api.h.
+.SS "size_t \fBsnmp_session::contextNameLen\fP"
+.PP
+Length of contextName. 
+.PP
+Definition at line 254 of file snmp_api.h.
+.SS "u_int \fBsnmp_session::engineBoots\fP"
+.PP
+initial engineBoots for remote engine 
+.PP
+Definition at line 248 of file snmp_api.h.
+.SS "u_int \fBsnmp_session::engineTime\fP"
+.PP
+initial engineTime for remote engine 
+.PP
+Definition at line 250 of file snmp_api.h.
+.SS "u_char \fBsnmp_session::isAuthoritative\fP"
+.PP
+are we the authoritative engine? 
+.PP
+Definition at line 242 of file snmp_api.h.
+.SS "u_short \fBsnmp_session::local_port\fP"
+.PP
+My UDP port number, 0 for default, picked randomly. 
+.PP
+Definition at line 208 of file snmp_api.h.
+.SS "char* \fBsnmp_session::localname\fP"
+.PP
+My Domain name or dotted IP address, 0 for default. 
+.PP
+Definition at line 206 of file snmp_api.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 308 of file snmp_api.h.
+.SS "char* \fBsnmp_session::paramName\fP"
+.PP
+target param name 
+.PP
+Definition at line 295 of file snmp_api.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 202 of file snmp_api.h.
+.SS "size_t \fBsnmp_session::rcvMsgMaxSize\fP"
+.PP
+Largest message to try to receive. 
+.PP
+Definition at line 234 of file snmp_api.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 204 of file snmp_api.h.
+.SS "int \fBsnmp_session::retries\fP"
+.PP
+Number of retries before timeout. 
+.PP
+Definition at line 194 of file snmp_api.h.
+.SS "int \fBsnmp_session::s_errno\fP"
+.PP
+copy of system errno 
+.PP
+Definition at line 220 of file snmp_api.h.
+.SS "int \fBsnmp_session::s_snmp_errno\fP"
+.PP
+copy of library errno 
+.PP
+Definition at line 222 of file snmp_api.h.
+.SS "u_char \fBsnmp_session::securityAuthKey\fP[USM_AUTH_KU_LEN]"
+.PP
+Ku for auth protocol XXX. 
+.PP
+Definition at line 269 of file snmp_api.h.
+.SS "size_t \fBsnmp_session::securityAuthKeyLen\fP"
+.PP
+Length of Ku for auth protocol. 
+.PP
+Definition at line 271 of file snmp_api.h.
+.SS "u_char* \fBsnmp_session::securityAuthLocalKey\fP"
+.PP
+Kul for auth protocol. 
+.PP
+Definition at line 273 of file snmp_api.h.
+.SS "size_t \fBsnmp_session::securityAuthLocalKeyLen\fP"
+.PP
+Length of Kul for auth protocol XXX. 
+.PP
+Definition at line 275 of file snmp_api.h.
+.SS "oid* \fBsnmp_session::securityAuthProto\fP"
+.PP
+auth protocol oid 
+.PP
+Definition at line 265 of file snmp_api.h.
+.SS "size_t \fBsnmp_session::securityAuthProtoLen\fP"
+.PP
+Length of auth protocol oid. 
+.PP
+Definition at line 267 of file snmp_api.h.
+.SS "u_char* \fBsnmp_session::securityEngineID\fP"
+.PP
+authoritative snmpEngineID 
+.PP
+Definition at line 256 of file snmp_api.h.
+.SS "size_t \fBsnmp_session::securityEngineIDLen\fP"
+.PP
+Length of contextEngineID. 
+.PP
+Definition at line 258 of file snmp_api.h.
+.SS "void* \fBsnmp_session::securityInfo\fP"
+.PP
+security \fBmodule\fP specific 
+.PP
+Definition at line 300 of file snmp_api.h.
+.SS "int \fBsnmp_session::securityLevel\fP"
+.PP
+noAuthNoPriv, authNoPriv, authPriv 
+.PP
+Definition at line 293 of file snmp_api.h.
+.SS "int \fBsnmp_session::securityModel\fP"
+.PP
+snmp security model, v1, v2c, usm 
+.PP
+Definition at line 291 of file snmp_api.h.
+.SS "char* \fBsnmp_session::securityName\fP"
+.PP
+on behalf of this principal 
+.PP
+Definition at line 260 of file snmp_api.h.
+.SS "size_t \fBsnmp_session::securityNameLen\fP"
+.PP
+Length of securityName. 
+.PP
+Definition at line 262 of file snmp_api.h.
+.SS "u_char \fBsnmp_session::securityPrivKey\fP[USM_PRIV_KU_LEN]"
+.PP
+Ku for privacy protocol XXX. 
+.PP
+Definition at line 282 of file snmp_api.h.
+.SS "size_t \fBsnmp_session::securityPrivKeyLen\fP"
+.PP
+Length of Ku for priv protocol. 
+.PP
+Definition at line 284 of file snmp_api.h.
+.SS "u_char* \fBsnmp_session::securityPrivLocalKey\fP"
+.PP
+Kul for priv protocol. 
+.PP
+Definition at line 286 of file snmp_api.h.
+.SS "size_t \fBsnmp_session::securityPrivLocalKeyLen\fP"
+.PP
+Length of Kul for priv protocol XXX. 
+.PP
+Definition at line 288 of file snmp_api.h.
+.SS "oid* \fBsnmp_session::securityPrivProto\fP"
+.PP
+priv protocol oid 
+.PP
+Definition at line 278 of file snmp_api.h.
+.SS "size_t \fBsnmp_session::securityPrivProtoLen\fP"
+.PP
+Length of priv protocol oid. 
+.PP
+Definition at line 280 of file snmp_api.h.
+.SS "long \fBsnmp_session::sessid\fP"
+.PP
+Session id - AgentX only. 
+.PP
+Definition at line 224 of file snmp_api.h.
+.SS "size_t \fBsnmp_session::sndMsgMaxSize\fP"
+.PP
+Largest message to try to send. 
+.PP
+Definition at line 236 of file snmp_api.h.
+.SS "long \fBsnmp_session::timeout\fP"
+.PP
+Number of uS until first timeout, then exponential backoff. 
+.PP
+Definition at line 196 of file snmp_api.h.
+.SS "long \fBsnmp_session::version\fP"
+.PP
+snmp version 
+.PP
+Definition at line 192 of file snmp_api.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
new file mode 100644
index 0000000..512cc07
--- /dev/null
+++ b/man/netsnmp_stash_cache.3
@@ -0,0 +1,94 @@
+.TH "stash_cache" 3 "23 May 2010" "Version 5.4.3.pre1" "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 aleviate the need for the lower level handlers to perform as much optimization. Specifically, somewhere in the lower level handlers must be a handler that supports the MODE_GET_STASH operation. Note that the table_iterator helper supports this. 
+.SH "Function Documentation"
+.PP 
+.SS "int _netsnmp_stash_cache_load (\fBnetsnmp_cache\fP * cache, void * magic)"
+.PP
+updates a given cache depending on whether it needs to or not. 
+.PP
+Definition at line 195 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 113 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 79 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 88 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 44 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 101 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 238 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
new file mode 100644
index 0000000..a8100a2
--- /dev/null
+++ b/man/netsnmp_stash_to_next.3
@@ -0,0 +1,34 @@
+.TH "stash_to_next" 3 "23 May 2010" "Version 5.4.3.pre1" "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 28 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
new file mode 100644
index 0000000..5e4a902
--- /dev/null
+++ b/man/netsnmp_table.3
@@ -0,0 +1,234 @@
+.TH "table" 3 "23 May 2010" "Version 5.4.3.pre1" "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 "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"
+.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 881 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 125 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 134 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 85 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 108 of file table.c.
+.SS "\fBnetsnmp_mib_handler\fP* netsnmp_sparse_table_handler_get (void)"
+.PP
+create sparse table handler 
+.PP
+Definition at line 722 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
+Definition at line 733 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 784 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 821 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 751 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 863 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 847 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 142 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
new file mode 100644
index 0000000..0f26a65
--- /dev/null
+++ b/man/netsnmp_table_array.3
@@ -0,0 +1,85 @@
+.TH "table_array" 3 "23 May 2010" "Version 5.4.3.pre1" "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 229 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 212 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 236 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 149 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
new file mode 100644
index 0000000..df93e2e
--- /dev/null
+++ b/man/netsnmp_table_container.3
@@ -0,0 +1,117 @@
+.TH "table_container" 3 "23 May 2010" "Version 5.4.3.pre1" "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 "\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 320 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 254 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 351 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 721 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
new file mode 100644
index 0000000..65f7ae3
--- /dev/null
+++ b/man/netsnmp_table_data.3
@@ -0,0 +1,283 @@
+.TH "table_data" 3 "23 May 2010" "Version 5.4.3.pre1" "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 "NETSNMP_INLINE 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_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 "NETSNMP_INLINE 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 52 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 62 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 653 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 661 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 670 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 375 of file table_data.c.
+.SS "NETSNMP_INLINE 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 682 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 409 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 398 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 70 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 808 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 789 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 822 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 798 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 "NETSNMP_INLINE 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
new file mode 100644
index 0000000..9ae1763
--- /dev/null
+++ b/man/netsnmp_table_dataset.3
@@ -0,0 +1,299 @@
+.TH "table_dataset" 3 "23 May 2010" "Version 5.4.3.pre1" "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 "\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 "\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 "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_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 char *value, size_t value_len)"
+.br
+.RI "\fIsets a given column in a row with data given a type, value, and length. \fP"
+.ti -1c
+.RI "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 externa [...]
+.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 77 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 813 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 823 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 353 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 1189 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 850 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 379 of file table_dataset.c.
+.SS "int netsnmp_set_row_column (\fBnetsnmp_table_row\fP * row, unsigned int column, int type, const char * 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 1224 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 89 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 223 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 1177 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 1146 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 1153 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 1278 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 168 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 145 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 132 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 155 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 200 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 189 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 178 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 249 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 1289 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 310 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
new file mode 100644
index 0000000..641b1b0
--- /dev/null
+++ b/man/netsnmp_table_generic.3
@@ -0,0 +1,44 @@
+.TH "generic_table_API" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..9890fe1
--- /dev/null
+++ b/man/netsnmp_table_indexes.3
@@ -0,0 +1,83 @@
+.TH "table_indexes" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..364c2c3
--- /dev/null
+++ b/man/netsnmp_table_iterator.3
@@ -0,0 +1,192 @@
+.TH "table_iterator" 3 "23 May 2010" "Version 5.4.3.pre1" "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 externa [...]
+.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 allocate [...]
+.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 [...]
+.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
new file mode 100644
index 0000000..4c0b2aa
--- /dev/null
+++ b/man/netsnmp_table_iterator.h.3
@@ -0,0 +1,111 @@
+.TH "table_iterator.h" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..410e816
--- /dev/null
+++ b/man/netsnmp_table_maintenance.3
@@ -0,0 +1,116 @@
+.TH "table_maintenance" 3 "23 May 2010" "Version 5.4.3.pre1" "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_rows.3 b/man/netsnmp_table_rows.3
new file mode 100644
index 0000000..1b15655
--- /dev/null
+++ b/man/netsnmp_table_rows.3
@@ -0,0 +1,94 @@
+.TH "table_rows" 3 "23 May 2010" "Version 5.4.3.pre1" "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
new file mode 100644
index 0000000..f0ae7dd
--- /dev/null
+++ b/man/netsnmp_tdata.3
@@ -0,0 +1,287 @@
+.TH "tdata" 3 "23 May 2010" "Version 5.4.3.pre1" "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 "\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 284 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 399 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 186 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 92 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 518 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 531 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 84 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 54 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 157 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 68 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 370 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 387 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 379 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 362 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 351 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 260 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 242 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 227 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 414 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 424 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 431 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 447 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 460 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 439 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 475 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 489 of file table_tdata.c.
+.SH "Author"
+.PP 
+Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_trap_api.3.def b/man/netsnmp_trap_api.3.def
deleted file mode 100644
index 424eb6d..0000000
--- a/man/netsnmp_trap_api.3.def
+++ /dev/null
@@ -1,58 +0,0 @@
-.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
-.SH SYNOPSIS
-.B #include <net-snmp/agent/agent_trap.h>
-.PP
-.BI "void send_easy_trap(int " trap ", int " specific ");"
-.PP
-.BI "void send_trap_vars(int " trap ", int " specific ", struct variable_list *" vars ");"
-.PP
-.BI "void send_v2trap(struct variable_list *" vars ");"
-.SH DESCRIPTION
-These three routines may be used to send traps from a MIB module
-within the Net-SNMP agent (including an AgentX subagent).
-.PP
-.B send_easy_trap()
-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.
-.PP
-.B send_trap_vars()
-is similar, but appends the supplied list of variable bindings to the
-traps that are sent.
-.PP
-.B send_v2trap()
-uses the supplied list of variable bindings to form an SNMPv2 trap,
-which is sent to SNMPv2-capable sinks on the configured list.  An
-equivalent INFORM is sent to the configuredq list of inform sinks.
-Sinks that can only handle SNMPv1 traps are skipped.
-.PP
-The various "send_trap()" calls allow you to specify traps in different
-formats.  And the various "trapsink" directives allow you to specify
-destinations to receive different formats.
-But *all* traps are sent to *all* destinations, regardless of how they
-were specified.
-.nf
-I.e. it's
-                                         ___  trapsink
-                                        /
-    send_easy_trap \___  [  Trap      ] ____  trap2sink
-                    ___  [ Generator  ]
-    send_v2trap    /     [            ] ----- informsink
-                                        \____
-                                              trapsess
-
-*Not*
-     send_easy_trap  ------------------->  trapsink
-     send_v2trap     ------------------->  trap2sink
-     ????            ------------------->  informsink
-     ????            ------------------->  trapsess
-.fi
-.SH WARNINGS
-These routines are used to send the traps immediately they are called.
-Invoking them at the appropriate time is left to the MIB module programmer.
-.SH "SEE ALSO"
-.BR snmpd.conf "(5), " snmptrapd "(8)"
diff --git a/man/netsnmp_util.3 b/man/netsnmp_util.3
new file mode 100644
index 0000000..f1dc928
--- /dev/null
+++ b/man/netsnmp_util.3
@@ -0,0 +1,503 @@
+.TH "Memory Utility Routines" 3 "23 May 2010" "Version 5.4.3.pre1" "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 \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 u_char *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 "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 "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 131 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 150 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 118 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 53 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 99 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 64 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 68 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 85 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 89 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 57 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 72 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 795 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 771 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 850 of file tools.c.
+.SS "void atime_setMarker (marker_t pm)"
+.PP
+set a time marker. 
+.PP
+Definition at line 782 of file tools.c.
+.SS "u_int binary_to_hex (const u_char * input, size_t len, char ** output)"
+.PP
+converts binary to hexidecimal \fBParameters:\fP
+.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 287 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 185 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 324 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 205 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 898 of file tools.c.
+.SS "int memdup (u_char ** to, const u_char * 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 236 of file tools.c.
+.SS "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 926 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 425 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 255 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 485 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 121 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 812 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 830 of file tools.c.
+.SS "int uatime_ready (marker_t pm, unsigned int deltaT)"
+.PP
+Test: Has (marked time plus delta) exceeded current time (in msec) ? Returns 0 if test fails or cannot be tested (no marker). 
+.PP
+Definition at line 872 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
new file mode 100644
index 0000000..c690451
--- /dev/null
+++ b/man/netsnmp_utilities.3
@@ -0,0 +1,74 @@
+.TH "utility_handlers" 3 "23 May 2010" "Version 5.4.3.pre1" "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/netsnmp_varbind_api.3.def b/man/netsnmp_varbind_api.3.def
deleted file mode 100644
index d950adb..0000000
--- a/man/netsnmp_varbind_api.3.def
+++ /dev/null
@@ -1,216 +0,0 @@
-.TH NETSNMP_VARBIND_API 3 "13 Aug 2010" VVERSIONINFO "Net-SNMP"
-.SH NAME
-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 ","
-.br
-.BI "                     const oid *" objid ", size_t " objidlen ","
-.br
-.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 ","
-.br
-.BI "                     const oid *" objid ", size_t " objidlen ","
-.br
-.BI "                     u_char " type ", const void *" value ", size_t " len ");"
-.br
-.B "netsnmp_variable_list *snmp_add_null_var("
-.br
-.BI "                     netsnmp_pdu *" pdu ","
-.br
-.BI "                     const oid *" objid ", size_t " objidlen ");"
-.PP
-.B "netsnmp_variable_list *snmp_clone_varbind("
-.br
-.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 ");"
-.br
-.BI "int  snmp_set_var_value( netsnmp_variable_list* " variable ","
-.br
-.BI "                     const void * " value ", size_t " vallen ");"
-.br
-.BI "int  snmp_set_var_typed_value( netsnmp_variable_list* " variable ","
-.br
-.BI "                     u_char " type ","
-.br
-.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 ");"
-.br
-.SS Output
-.PP
-.BI "void  print_variable(const oid *" "objid" ", size_t " "objidlen" ","
-.br
-.BI "                     const netsnmp_variable_list *" variable ");"
-.br
-.BI "void fprint_variable(FILE *" fp ","
-.br
-.BI "                     const oid *" objid ", size_t " objidlen ","
-.br
-.BI "                     const netsnmp_variable_list *" variable ");"
-.br
-.BI "int snprint_variable(char *" "buf" ", size_t " "len" ","
-.br
-.BI "                     const oid *" objid ", size_t " objidlen ","
-.br
-.BI "                     const netsnmp_variable_list *" variable ");"
-.PP
-.BI "void  print_value(const oid *" objid ", size_t " objidlen ","
-.br
-.BI "                     const netsnmp_variable_list *" variable ");"
-.br
-.BI "void fprint_value(FILE *" fp ","
-.br
-.BI "                     const oid *" objid ", size_t " objidlen ","
-.br
-.BI "                     const netsnmp_variable_list *" variable ");"
-.br
-.BI "int snprint_value(char *" buf ", size_t " "len" ","
-.br
-.BI "                     const oid *" objid ", size_t " objidlen ","
-.br
-.BI "                     const netsnmp_variable_list *" variable ");"
-.br
-.br
-.SS Deletion
-.PP
-.BI "void snmp_free_var(       netsnmp_variable_list *" variable ");"
-.br
-.BI "void snmp_free_varbind( netsnmp_variable_list *" variables ");"
-.br
-.PP
-.SH DESCRIPTION
-The functions dealing with variable bindings fall into four groups - 
-dealing with the creation, setting of values, output and deletion of varbinds.
-.SS Creation
-.B snmp_pdu_add_variable
-will create a new varbind structure, initialised with the name (
-.IR objid ", " objidlen
-), syntax (
-.I type
-) and value (
-.I value ", " len
-) provided.
-This varbind is then added to the end of the varbind list in
-the given PDU.
-.PP
-.B snmp_varlist_add_variable
-is similar, but appends the new varbind to the end of the
-varbind list provided.
-When adding the first varbind to an empty list, simply
-pass the address of the head of the list:
-.IP
-  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).
-.PP
-.B snmp_add_null_var
-is a convenience function to add an empty varbind to the PDU.
-without needing to specify the NULL value explicitly.
-This is the normal mechanism for constructing a GET (or similar)
-information retrieval request.
-.br
-Again, this returns a pointer to the new varbind, or NULL.
-.PP
-.B snmp_clone_varbind
-creates a copy of each varbind in the specified list,
-returning a pointer to the head of the new list
-(or NULL if the cloning fails).
-.br
-.SS Setting of values
-.B snmp_set_var_objid
-sets the name of the varbind structure to the specified OID.
-.br
-.B snmp_set_var_typed_value
-sets the syntax type and value of the varbind structure.
-.br
-.B snmp_set_var_value
-sets the value of the varbind structure, leaving the syntax type unchanged.
-.br
-.B snmp_set_var_typed_integer
-is a convenience function to set the syntax type and value for
-a 32-bit integer-based varbind.
-.PP
-All four of these return 0 if the assignment is successful,
-or 1 if it is not.
-.SS Output
-.B print_variable
-will take an object identifier (as returned by
-.BR read_objid ", " snmp_parse_oid " or " get_module_node )
-and an instance of such a variable, and prints to the standard output
-the textual form of the object identifier together with the value
-of the variable.
-.PP
-.B fprint_variable
-does the same, but prints to the FILE pointer specified by the initial
-parameter.
-.PP
-.B snprint_variable
-prints the same information into the buffer pointed to by
-.I buf
-which is of length
-.IR len .
-It returns the number of characters printed, or -1 if the
-buffer was not large enough.  In the latter case,
-.I buf
-will typically contained a truncated version of the information (but
-this behaviour is not guaranteed).  This function replaces the
-obsolete function
-.BR sprint_variable .
-.PP
-.BR print_value ,
-.BR fprint_value ,
-and
-.B snprint_value
-do the same as the equivalent
-.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 \fBmin_api\fP(3).
-.br
-.SS Deletion
-.B snmp_free_var
-releases all memory used by the given varbind structure.
-.br
-.B snmp_free_varbind
-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)"
diff --git a/man/netsnmp_variable_list.3 b/man/netsnmp_variable_list.3
new file mode 100644
index 0000000..91b9d0a
--- /dev/null
+++ b/man/netsnmp_variable_list.3
@@ -0,0 +1,132 @@
+.TH "variable_list" 3 "23 May 2010" "Version 5.4.3.pre1" "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 <snmp_api.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 522 of file snmp_api.h.
+.SH "Field Documentation"
+.PP 
+.SS "u_char \fBvariable_list::buf\fP[40]"
+.PP
+90 percentile < 40. 
+.PP
+Definition at line 538 of file snmp_api.h.
+.SS "void* \fBvariable_list::data\fP"
+.PP
+(Opaque) hook for additional data 
+.PP
+Definition at line 540 of file snmp_api.h.
+.SS "void(* \fBvariable_list::dataFreeHook\fP)(void *)"
+.PP
+callback to free above 
+.SS "oid* \fBvariable_list::name\fP"
+.PP
+Object identifier of \fBvariable\fP. 
+.PP
+Definition at line 526 of file snmp_api.h.
+.SS "size_t \fBvariable_list::name_length\fP"
+.PP
+number of subid's in name 
+.PP
+Definition at line 528 of file snmp_api.h.
+.SS "oid \fBvariable_list::name_loc\fP[MAX_OID_LEN]"
+.PP
+buffer to hold the OID 
+.PP
+Definition at line 536 of file snmp_api.h.
+.SS "struct \fBvariable_list\fP* \fBvariable_list::next_variable\fP\fC [read]\fP"
+.PP
+NULL for last \fBvariable\fP. 
+.PP
+Definition at line 524 of file snmp_api.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 530 of file snmp_api.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 532 of file snmp_api.h.
+.SS "size_t \fBvariable_list::val_len\fP"
+.PP
+the length of the value to be copied into buf 
+.PP
+Definition at line 534 of file snmp_api.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
new file mode 100644
index 0000000..2920940
--- /dev/null
+++ b/man/netsnmp_watcher.3
@@ -0,0 +1,75 @@
+.TH "watcher" 3 "23 May 2010" "Version 5.4.3.pre1" "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_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, oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_read_only_ulong_scalar\fP (const char *name, oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_long_scalar\fP (const char *name, oid *reg_oid, size_t reg_oid_len, long *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_read_only_long_scalar\fP (const char *name, oid *reg_oid, size_t reg_oid_len, long *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_int_scalar\fP (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_read_only_int_scalar\fP (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_read_only_counter32_scalar\fP (const char *name, oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.in -1c
+.SH "Detailed Description"
+.PP 
+Watch a specified \fBvariable\fP and process it as an instance or scalar object. 
+.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
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/print_description.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/print_mib.3 b/man/print_mib.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/print_mib.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/print_objid.3 b/man/print_objid.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/print_objid.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/print_value.3 b/man/print_value.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/print_value.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/print_variable.3 b/man/print_variable.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/print_variable.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/read_all_mibs.3 b/man/read_all_mibs.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/read_all_mibs.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/read_config.3.def b/man/read_config.3.def
new file mode 100644
index 0000000..f1df3b4
--- /dev/null
+++ b/man/read_config.3.def
@@ -0,0 +1,293 @@
+.TH READ_CONFIG 3 "07 Mar 2002" "" "Net-SNMP"
+.UC 5
+.SH NAME
+register_config_handler, register_premib_handler
+unregister_config_handler, register_mib_handlers, read_configs,
+read_premib_configs, config_perror, config_pwarn - read_config functions
+.SH SYNOPSIS
+.B #include <net-snmp/config_api.h>
+.PP
+.B struct config_line *
+.br
+.BI "  register_config_handler(const char *" filePrefix ",
+.br
+.BI "                     const char *" token ,
+.br
+.BI "                     void (*" parser ")(const char *, char *),"
+.br
+.BI "                     void (*" releaser ")(void),"
+.br
+.BI "                     const char *"usageLine ");"
+.PP
+.B struct config_line *
+.br
+.BI "  register_premib_handler(const char *" filePrefix ", 
+.br
+.BI "                     const char *" token ,
+.br
+.BI "                     void (*" parser ")(const char *, char *),"
+.br
+.BI "                     void (*" releaser ")(void),"
+.br
+.BI "                     const char *" usageLine ");"
+.PP
+.BI "void unregister_config_handler(const char *" filePrefix ","
+.br
+.BI "                     const char *" token ");"
+.PP
+.B struct config_line *
+.br
+.BI "  register_app_config_handler(const char *" token ,
+.br
+.BI "                     void (*" parser ")(const char *, char *),"
+.br
+.BI "                     void (*" releaser ")(void),"
+.br
+.BI "                     const char *"usageLine ");"
+.PP
+.B struct config_line *
+.br
+.BI "  register_app_premib_handler(const char *" token ,
+.br
+.BI "                     void (*" parser ")(const char *, char *),"
+.br
+.BI "                     void (*" releaser ")(void),"
+.br
+.BI "                     const char *" usageLine ");"
+.PP
+.BI "void unregister_app_config_handler(const char *" token ");"
+.PP
+.BI "void read_config_print_usage(char *" lead ");"
+.PP
+.B "void read_configs(void);"
+.PP
+.B "void read_premib_configs(void);"
+.PP
+.BI "void config_pwarn(const char *" string ");"
+.br
+.BI "void config_perror(const char *" string ");"
+
+.SH DESCRIPTION
+The functions are a fairly extensible system of parsing various
+configuration files at the run time of an application.  The
+configuration file flow is broken into the following phases:
+.RS 4
+.TP 4
+1.
+Registration of handlers.
+.TP
+2.
+Reading of the configuration files for pre-MIB parsing requirements.
+.TP
+3.
+Reading and parsing of the textual MIB files.
+.TP
+4.
+Reading of the configuration files for configuration directives.
+.TP
+5.
+Optionally re-reading the configuration files at a future date.
+.RE
+.PP
+The idea is that the calling application is able to register
+.I handlers
+for certain
+.I tokens
+specified in certain types of
+.I files.
+The 
+.B 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.
+.SH TOKEN HANDLERS
+.PP
+Handler functions should have the following signature:
+.PP
+.RS
+.BI "void handler(const char *" token ", char *" line ");"
+.RE
+.PP
+The function will be called with two arguments, the first being the
+token that triggered the call to this function (which would be one of
+the tokens that the function had been registered for), and the second
+being the remainder of the configuration file line beyond the white
+space following the token.
+.SH RESOURCE FREEING HANDLERS
+.PP
+If the parameter
+.I releaser
+passed to
+.B register_config_handler
+is non-NULL, then 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 and reset its notion
+of the configuration to its default.  The token handler function will
+then be called again.  No arguments are passed to the resource freeing
+handler.
+.SH REGISTERING A HANDLER
+.TP
+.B register_config_handler()
+The
+.B handler()
+function above could be registered for the configuration file
+.I snmp.conf,
+with the token
+.I genericToken
+and the help string (discussed later)
+.I """ARG1 [ARG2]"""
+using the following call to the 
+.B register_config_handler()
+function:
+.PP
+.RS
+.RS
+register_config_handler("snmp", "genericToken", handler, NULL, "ARG1 [ARG2]");
+.RE
+.RE
+.IP
+This would register the
+.B handler()
+function so that it will get called every time the first word of a
+line in the 
+.I snmp.conf
+configuration file(s) matches "genericToken" (see 
+.B read_configs() 
+below).
+.TP
+.B register_premib_handler()
+The 
+.B register_premib_handler()
+function works identically to the 
+.B register_config_handler()
+function but is intended for config file tokens that need to be read
+in before the textual MIBs are read in, probably because they will be
+used to configure the MIB parser.  It is rarely the case that anything 
+but the SNMP library itself should need to use this function.
+.TP
+.B unregister_config_handler()
+Removes the registered configuration handler for the
+.I filePrefix
+and
+.IR token .
+
+.TP
+.B register_app_config_handler()
+.TP
+.B register_app_premib_handler()
+.TP
+.B unregister_app_config_handler()
+These functions are analagous to 
+.BR register_config_handler() ", " register_premib_handler() " and "
+.B unregister_config_handler()
+but don't require the file type argument (which is filled in by the
+application).  It is intended that MIB modules written for the agent
+use these functions to allow the agent to have more control over which
+configuration files are read (typically the
+.I snmpd.conf
+files).
+.SH HELP STRINGS
+.PP
+The
+.I usageLine
+parameter passed to
+.B register_config_handler()
+and similar calls, is used to display help information when the
+.B read_config_print_usage()
+function is called.  This function is used by all of the applications
+when the 
+.B -H
+flag is passed on the command line.  It prints a summary of all of the
+configuration file lines, and the associated files, that the
+configuration system understands.  The
+.I usageLine
+parameter should be a list of arguments expected after the token, and
+not a lengthy description (which should go into a manual page
+instead).  The
+.I lead
+prefix will be prepended to each line that the function prints to
+stderr, where it displays its output.
+.PP
+The
+.B init_snmp()
+function should be called before the
+.B read_config_print_usage()
+function is called, so that the library can register its configuration 
+file directives as well for the 
+.B read_config_print_usage()
+function to display.
+.SH READING CONFIGURATION FILES
+.TP
+.B init_snmp()
+Once the relevant configuration token parsers have been registered,
+.B init_snmp()
+should be called.  It will parse the configuration file tokens
+registered with
+.B register_premib_handler(),
+read in the textual MIB files using
+.B init_mib(),
+and finally parse the configuration file tokens registered with 
+.BR register_config_handler() .
+.PP
+If the 
+.B init_snmp()
+function is used, none of the following functions need to be called by 
+the application:
+.TP
+.B register_mib_handlers()
+The SNMP library's routine to register its configuration file
+handlers.
+.TP
+.B read_premib_configs()
+The routine that parses the configuration files for tokens registered
+to be dealt with before the textual MIBs are read in.  See 
+.B read_configs()
+below.
+.TP
+.B read_configs()
+Reads all the configuration files it can find in the 
+.I SNMPCONFPATH
+environment variable (or its default value) for tokens and
+appropriately calls the handlers registered to it, or prints a
+"Unknown token" warning message.  It looks for any file that it has
+previously received a registration request for.
+.SH CONFIGURATION FILES READ
+.PP
+The configuration files read are found by using the colon separated
+.I SNMPCONFPATH
+environment variable (or its default value, which will be
+SYSCONFDIR/snmp, followed by
+DATADIR/snmp, followed by LIBDIR/snmp, followed by $HOME/.snmp) and
+reading in the files found that match both the prefix registered and
+the two suffixes
+.I .conf
+and
+.I .local.conf.
+The idea behind the two different suffixes is that the first file can
+be shared (via rdist or an NFS mount) across a large number of
+machines and the second file can be used to configure local settings
+for one particular machine.  They do not need to be present, and will
+only be read if found.
+.SH ERROR HANDLING FUNCTIONS
+.PP
+The two functions
+.B config_pwarn()
+and
+.B config_perror()
+both take an error string as an argument and print it to stderr along
+with the file and line number that caused the error.  A call to the
+second function will also force 
+.B read_configs() 
+to eventually return with an error code indicating to it's calling
+function that it should abort the operation of the application.
+.SH "ENVIRONMENT VARIABLES"
+.TP 10
+SNMPCONFPATH
+A colon separated list of directories to search for configuration
+files in.
+Default: SYSCONFDIR/snmp:DATADIR/snmp:LIBDIR/snmp:$HOME/.snmp
+.SH "SEE ALSO"
+.BR mib_api "(3), " snmp_api (3)
+.\" Local Variables:
+.\"  mode: nroff
+.\" End:
diff --git a/man/read_mib.3 b/man/read_mib.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/read_mib.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/read_module.3 b/man/read_module.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/read_module.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/read_module_node.3 b/man/read_module_node.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/read_module_node.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/read_objid.3 b/man/read_objid.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/read_objid.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/shutdown_mib.3 b/man/shutdown_mib.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/shutdown_mib.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/snmp-bridge-mib.1 b/man/snmp-bridge-mib.1
deleted file mode 100644
index 80f2b5e..0000000
--- a/man/snmp-bridge-mib.1
+++ /dev/null
@@ -1,208 +0,0 @@
-'\" t
-.\"     Title: snmp-bridge-mib
-.\"    Author: Jens Osterkamp <jens at 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 at 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 46203d0..812a56c 100644
--- a/man/snmp.conf.5.def
+++ b/man/snmp.conf.5.def
@@ -1,4 +1,5 @@
-.TH SNMP.CONF 5 "21 Apr 2010" VVERSIONINFO "Net-SNMP"
+.TH SNMP.CONF 5 "29 Jun 2005" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmp.conf - configuration files for the Net-SNMP applications
 .SH DESCRIPTION
@@ -12,32 +13,6 @@ In particular, \fCSYSCONFDIR/snmp/snmp.conf\fR is a common file,
 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
@@ -64,40 +39,17 @@ including a port number in the \fIAGENT\fR specification.
 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.
+This can be overridden using the \fB-v\fR option.
 .IP "defCommunity STRING"
 defines the default community to use for SNMPv1 and SNMPv2c requests.
-This can be overridden using the \fB\-c\fR option.
+This can be overridden using the \fB-c\fR option.
 .\".IP "dumpPacket (1|yes|true|0|no|false)"
-.IP "alias NAME DEFINITION"
-Creates an aliased tied to NAME for a given transport definition.  The
-alias can the be referred to using an alias: prefix.  Eg, a line of
-"alias here udp:127.0.0.1:6161" would allow you to use a destination
-host of "alias:here" instead of "udp:127.0.0.1:6161".  This becomes
-more useful with complex transport addresses involving IPv6 addresses,
-etc.
 .IP "dumpPacket yes"
 defines whether to display a hexadecimal dump of the raw SNMP requests
 sent and received by the application.
-This is equivalent to the \fB\-d\fR option.
+This is equivalent to the \fB-d\fR option.
 .IP "doDebugging (1|0)"
 turns on debugging for all applications run if set to 1.
 .\"
@@ -107,7 +59,7 @@ turns on debugging for all applications run if set to 1.
 .IP "debugTokens TOKEN[,TOKEN...]"
 defines the debugging tokens that should be turned on when
 \fIdoDebugging\fR is set.
-This is equivalent to the \fB\-D\fR option.
+This is equivalent to the \fB-D\fR option.
 .\".IP "16bitIDs (1|yes|true|0|no|false)"
 .IP "16bitIDs yes"
 restricts requestIDs, etc to 16-bit values.
@@ -143,7 +95,7 @@ of the buffer used when sending SNMP requests.
 .IP "noRangeCheck yes"
 disables the validation of varbind values against the MIB definition
 for the relevant OID.
-This is equivalent to the \fB\-Ir\fR option.
+This is equivalent to the \fB-Ir\fR option.
 .IP
 This directive is primarily relevant to the \fBsnmpset\fR command,
 but will also apply to any application that calls \fIsnmp_add_var()\fR
@@ -166,24 +118,16 @@ It should not normally be necessary to change this setting, as
 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.
-.IP "retries INTEGER"
-Specifies the number of retries to be used in the requests.
-.IP "timeout INTEGER"
-Specifies the timeout in seconds between retries.
 .\"
 .\" XXX - It is probably about time to remove this choice!
 .\"
 .SH SNMPv3 SETTINGS
 .IP "defSecurityName STRING"
 defines the default security name to use for SNMPv3 requests.
-This can be overridden using the \fB\-u\fR option.
+This can be overridden using the \fB-u\fR option.
 .IP "defSecurityLevel noAuthNoPriv|authNoPriv|authPriv"
 defines the default security level to use for SNMPv3 requests.
-This can be overridden using the \fB\-l\fR option.
+This can be overridden using the \fB-l\fR option.
 .IP
 If not specified, the default value for this token is \fInoAuthNoPriv\fR.
 .\"
@@ -199,7 +143,7 @@ to use the OpenSSL libraries.
 .IP "defPrivPassphrase STRING"
 define the default authentication and privacy pass phrases to use
 for SNMPv3 requests.
-These can be overridden using the \fB\-A\fR and \fB\-X\fR options respectively.
+These can be overridden using the \fB-A\fR and \fB-X\fR options respectively.
 .IP
 The 
 .B defPassphrase
@@ -209,7 +153,7 @@ if either of the other directives are not specified.
 .IP "defPrivType DES|AES"
 define the default authentication and privacy protocols to use for
 SNMPv3 requests.
-These can be overridden using the \fB\-a\fR and \fB\-x\fR options respectively.
+These can be overridden using the \fB-a\fR and \fB-x\fR options respectively.
 .IP
 If not specified, SNMPv3 requests will default to MD5 authentication
 and DES encryption.
@@ -221,7 +165,7 @@ Neither SHA authentication nor any form of encryption will be available.
 .RE
 .IP "defContext STRING"
 defines the default context to use for SNMPv3 requests.
-This can be overridden using the \fB\-n\fR option.
+This can be overridden using the \fB-n\fR option.
 .IP
 If not specified, the default value for this token is the default context
 (i.e. the empty string "").
@@ -240,7 +184,7 @@ truely random key can be generated and used instead (which would
 normally has better entropy than a password unless it is
 amazingly long).
 The directives are equivalent to the short-form
-command line options \fB\-3m\fR, \fB\-3M\fR, \fB\-3k\fR, and \fB\-3K\fR.
+command line options \fB-3m\fR, \fB-3M\fR, \fB-3k\fR, and \fB-3K\fR.
 .IP
 Localized keys are
 master keys which have been converted to a unique key which is only
@@ -249,23 +193,6 @@ needs to be appropriate for the authentication or encryption type
 being used (auth keys: MD5=16 bytes, SHA1=20 bytes;
 priv keys: DES=16 bytes (8
 bytes of which is used as an IV and not a key), and AES=16 bytes).
-.IP "sshtosnmpsocket PATH"
-Sets the path of the \fBsshtosnmp\fR socket created by an application
-(e.g. snmpd) listening for incoming ssh connections through the
-\fBsshtosnmp\fR unix socket.
-.IP "sshtosnmpsocketperms MODE [OWNER [GROUP]]"
-Sets the mode, owner and group of the \fBsshtosnmp\fR socket created by
-an application (e.g. \fBsnmpd\fR) listening for incoming ssh connections
-through the \fBsshtosnmp\fR unix socket.  The socket needs to be read/write
-privileged for SSH users that are allowed to connect to the SNMP
-service (VACM access still needs to be granted as well, most likely
-through the TSM security model).
-.IP "sshusername NAME"
-Sets the SSH user name for logging into the remote system.
-.IP "sshpubkey FILE"
-Set the public key file to use when connecting to a remote system.
-.IP "sshprivkey FILE"
-Set the private key file to use when connecting to a remote system.
 .\"
 .\" XXX - are these lengths still correct ?
 .\"
@@ -289,7 +216,7 @@ defines a filename template for creating temporary files,
 for handling input to and output from external shell commands.
 Used by the \fImkstemp()\fR and \fImktemp()\fR functions.
 .IP
-If not specified, the default pattern is \fCNETSNMP_TEMP_FILE_PATTERN\fR.
+If not specified, the default pattern is \fC/tmp/snmpdXXXXXX\fR.
 .IP "serverRecvBuf INTEGER"
 specifies the desired size of the buffer to be used when receiving
 incoming SNMP requests.
@@ -306,18 +233,18 @@ of the buffer used when sending SNMP responses.
 .SH MIB HANDLING
 .IP "mibdirs DIRLIST"
 specifies a list of directories to search for MIB files.
-This operates in the same way as the \fB\-M\fR option -
+This operates in the same way as the \fB-M\fR option -
 see \fIsnmpcmd(1)\fR for details.
 Note that this value can be overridden by the
 .B MIBDIRS
-environment variable, and the \fB\-M\fR option.
+environment variable, and the \fB-M\fR option.
 .IP "mibs MIBLIST"
 specifies a list of MIB modules (not files) that should be loaded.
-This operates in the same way as the \fB\-m\fR option -
+This operates in the same way as the \fB-m\fR option -
 see \fIsnmpcmd(1)\fR for details.
 Note that this list can be overridden by the
 .B MIBS
-environment variable, and the \fB\-m\fR option.
+environment variable, and the \fB-m\fR option.
 .IP "mibfile FILE"
 specifies a (single) MIB file to load, in addition to the
 list read from the \fImibs\fR token (or equivalent configuration).
@@ -326,15 +253,14 @@ Note that this value can be overridden by the
 environment variable.
 .IP "showMibErrors (1|yes|true|0|no|false)"
 whether to display MIB parsing errors.
-.IP "commentToEOL (1|yes|true|0|no|false)"
+.IP "strictCommentTerm (1|yes|true|0|no|false)"
 whether MIB parsing should be strict about comment termination.
 Many MIB writers assume that ASN.1 comments extend to the end of
-the text line, rather than being terminated by the next "\-\-" token.
+the text line, rather than being terminated by the next "--" token.
 This token can be used to accept such (strictly incorrect) MIBs.
 .br
-Note that this directive was previous (mis-)named \fIstrictCommentTerm\fR,
-but with the reverse behaviour from that implied by the name.
-This earlier token is still accepted for backwards compatibility.
+Note that this directive is poorly named, since a value of "true"
+will turn \fIoff\fP the strict interpretation of MIB comments.
 .IP "mibAllowUnderline (1|yes|true|0|no|false)"
 whether to allow underline characters in MIB object names and
 enumeration values.
@@ -350,65 +276,56 @@ incremental logging of messages that are not line buffered before
 being passed to the logging routines.  This option is only used when file logging is active. 
 .IP "printNumericEnums (1|yes|true|0|no|false)"
 Equivalent to
-.BR \-Oe .
+.BR -Oe .
 .IP "printNumericOids (1|yes|true|0|no|false)"
 Equivalent to
-.BR \-On .
+.BR -On .
 .IP "dontBreakdownOids (1|yes|true|0|no|false)"
 Equivalent to
-.BR \-Ob .
+.BR -Ob .
 .IP "escapeQuotes (1|yes|true|0|no|false)"
 Equivalent to
-.BR \-OE .
+.BR -OE .
 .IP "quickPrinting (1|yes|true|0|no|false)"
 Equivalent to
-.BR \-Oq .
+.BR -Oq .
 .IP "printValueOnly (1|yes|true|0|no|false)"
 Equivalent to
-.BR \-Ov .
+.BR -Ov .
 .IP "dontPrintUnits (1|yes|true|0|no|false)"
 Equivalent to
-.BR \-OU .
+.BR -OU .
 .IP "numericTimeticks (1|yes|true|0|no|false)"
 Equivalent to
-.BR \-Ot .
+.BR -Ot .
 .IP "printHexText (1|yes|true|0|no|false)"
 Equivalent to
-.BR \-OT .
+.BR -OT .
 .IP "hexOutputLength integer"
 Specifies where to break up the output of hexadecimal strings.  
 Set to 0 to disable line breaks.  Defaults to 16.
 .IP "suffixPrinting (0|1|2)"
 The value 1 is equivalent to
-.B \-Os
+.B -Os
 and the value 2 is equivalent to
-.BR \-OS .
+.BR -OS .
 .IP "oidOutputFormat (1|2|3|4|5|6)"
-Maps \-O options as follow: \-Os=1, \-OS=2, \-Of=3, \-On=4, \-Ou=5.
-The value 6 has no matching \-O option. It suppresses output.
+Maps -O options as follow: -Os=1, -OS=2, -Of=3, -On=4, -Ou=5.
+The value 6 has no matching -O option. It suppresses output.
 .IP "extendedIndex (1|yes|true|0|no|false)"
 Equivalent to
-.BR \-OX .
+.BR -OX .
 .IP "noDisplayHint (1|yes|true|0|no|false)"
 Disables the use of DISPLAY-HINT information when parsing indices and
 values to set. Equivalent to
-.BR \-Ih .
+.BR -Ih .
 .SH FILES
-.IP "System-wide configuration files:"
-SYSCONFDIR/snmp/snmp.conf
-.br
-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
+SYSCONFDIR/snmp/snmp.conf,
+SYSCONFDIR/snmp/snmp.local.conf - common configuration settings
 .br
-$HOME/.snmp/hosts/HOSTNAME.conf
-
+~/.snmp/snmp.conf - user-specific configuration settings
 .SH "SEE ALSO"
-snmp_config(5), netsnmp_config_api(3), snmpcmd(1).
+snmp_config(5), read_config(3), snmpcmd(1).
 .\" Local Variables:
 .\"  mode: nroff
 .\" End:
diff --git a/man/snmp_agent_api.3.def b/man/snmp_agent_api.3.def
new file mode 100644
index 0000000..24d7aa1
--- /dev/null
+++ b/man/snmp_agent_api.3.def
@@ -0,0 +1,133 @@
+.TH SNMP_AGENT_API 3 "02 Apr 2001" VVERSIONINFO "Net-SNMP"
+.UC 5
+.SH NAME
+snmp_agent_api \- embedding an agent into a external application
+.SH SYNOPSIS
+.nf
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+
+int
+main (int argc, char *argv[])
+{
+  int agentx_subagent = 1;  /* Change this if you're a master agent.  */
+
+  snmp_enable_stderrlog();
+
+  /*  If we're an AgentX subagent...  */
+  if (agentx_subagent) {
+      /* ...make us an AgentX client.  */
+      netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
+                             NETSNMP_DS_AGENT_ROLE, 1);
+  }
+
+  init_agent("yourappname");
+
+  /*  Initialize your MIB code here.  */
+  init_my_mib_code();
+
+  /*  `yourappname' will be used to read yourappname.conf files.  */
+  init_snmp("yourappname");
+
+  /*  If we're going to be a SNMP master agent...  */
+  if (!agentx_subagent)
+      init_master_agent();  /*  Listen on default port (161).  */
+
+  /*  Your main loop here...  */
+  while (whatever) {
+      /* if you use select(), see snmp_api(3) */
+      /*     --- OR ---  */
+      agent_check_and_process(0); /* 0 == don't block */
+  }
+
+  /*  At shutdown time:  */
+  snmp_shutdown("yourappname");
+}
+
+Then:
+$(CC) ... `net-snmp-config --agent-libs`
+
+.fi
+.SH DESCRIPTION
+.PP
+Our goal is to create a easy to use interface to the Net-SNMP package
+such that you can take code that you have written that has been
+designed to be a Net-SNMP MIB module and embed it into an external
+application where you can either chose to be a SNMP master agent or an
+AgentX sub-agent using the same MIB module code.  Our suggestion is
+that you use our (or another) SNMP agent as the AgentX master agent
+and chose to become an AgentX subagent which then attaches to the
+master.
+.PP
+The Net-SNMP package provides a pair of libraries that enables easy
+embedding of an SNMP or AgentX agent into an external software
+package. AgentX is an extensible protocol designed to allow multiple
+SNMP sub-agents all run on one machine under a single SNMP master
+agent.  It is defined in RFC 2741.
+.PP
+You will need to perform a few tasks in order to accomplish
+this. First off, you will need to initialize both the SNMP library and
+the SNMP agent library. As indicated above, this is done slightly
+differently depending on whether or not you are going to perform as a
+master agent or an AgentX sub-agent.
+.SH CONFIGURATION
+.PP
+If you intend to operate as an AgentX sub-agent, you will have to
+configured the Net-SNMP package with agentx support (which is turned
+on by default, so just don't turn it off)
+.PP
+Additionally, you will need to link against the net-snmp libraries
+(use the output of "net-snmp-config --agent-libs" to get a library
+list) and call subagent_pre_init() as indicated above.
+.SH COMPILING
+.PP
+In order to make use of any of the above API, you will need to link
+against at least the four libraries listed above.
+.SH FUNCTIONS
+.PP This is a brief description of the functions called above and
+where to find out more information on them.  It is certainly not a
+complete list of what is available within all the net-snmp libraries. 
+.IP "snmp_enable_stderrlog()"
+Logs error output from the SNMP agent to the standard error stream.
+.IP "netsnmp_ds_set_boolean()"
+Please see the
+.IR default_store(3)
+manual page for more information
+about this API.
+.IP "init_agent(char *name)"
+Initializes the embedded agent.  This should be called before the
+.BR "init_snmp()"
+call.  
+.I name
+is used to dictate what .conf file to read when
+.BR "init_snmp()"
+is called later.
+.IP "init_snmp(char *name)"
+Initializes the SNMP library.  Note that one of the things this will
+do will be to read configuration files in an effort to configure your
+application. It will attempt to read the configuration files named by
+the
+.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)
+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 
+on its default UDP port of 161.
+.IP "agent_check_and_process(int block)"
+This checks for packets arriving on the SNMP port and processes them
+if some are found.  If 
+.I block
+is non-zero, the function call will block until a packet arrives or an 
+alarm must be run (see
+.IR snmp_alarm(3) ).
+The return value from this function is a positive integer if packets
+were processed, zero if an alarm occurred and -1 if an error occured.
+.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),
+snmpd.conf(5)
diff --git a/man/snmp_alarm.3.def b/man/snmp_alarm.3.def
index 6c79a20..e4f6f79 100644
--- a/man/snmp_alarm.3.def
+++ b/man/snmp_alarm.3.def
@@ -1,8 +1,7 @@
-.TH SNMP_ALARM 3 "01 Aug 2002" VVERSIONINFO "Net-SNMP"
+.TH SNMP_ALARM 3 "07 Mar 2002" VVERSIONINFO "Net-SNMP"
+.UC 5
 .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
@@ -163,7 +162,7 @@ depend on the presence of the
 system call, although overall precision is of course still determined
 by the underlying operating system.  Recommended.
 .SH "SEE ALSO"
-.BR netsnmp_session_api "(3), " default_store "(3), "
+.BR snmp_api "(3), " default_store "(3), " snmp_select_info "(3), "
 .BR alarm "(2), " setitimer "(2), " select "(2)"
 .\" Local Variables:
 .\"  mode: nroff
diff --git a/man/snmp_api.3.def b/man/snmp_api.3.def
new file mode 100644
index 0000000..8c1d8cc
--- /dev/null
+++ b/man/snmp_api.3.def
@@ -0,0 +1,238 @@
+.\" /***********************************************************
+.\" 	Copyright 1989 by Carnegie Mellon University
+.\" 
+.\"                       All Rights Reserved
+.\" 
+.\" Permission to use, copy, modify, and distribute this software and its 
+.\" documentation for any purpose and without fee is hereby granted, 
+.\" provided that the above copyright notice appear in all copies and that
+.\" both that copyright notice and this permission notice appear in 
+.\" supporting documentation, and that the name of CMU not be
+.\" used in advertising or publicity pertaining to distribution of the
+.\" software without specific, written prior permission.  
+.\" 
+.\" CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+.\" ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+.\" CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+.\" ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+.\" WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+.\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+.\" SOFTWARE.
+.\" ******************************************************************/
+.TH SNMP_API 3 "21 Oct 1999" VVERSIONINFO "Net-SNMP"
+.UC 5
+.SH NAME
+snmp_sess_init, snmp_open, snmp_send, snmp_free_pdu, snmp_select_info, snmp_read, snmp_timeout, snmp_close, snmp_perror, snmp_sess_perror, snmp_error, snmp_api_errstring \- send and receive SNMP messages
+.SH SYNOPSIS
+#include <net-snmp/session_api.h>
+.PP
+void snmp_sess_init ( struct snmp_session * );
+.PP
+struct snmp_session * snmp_open ( struct snmp_session *);
+.RS
+.B /* Input parameter not used in active sessions */
+.RE
+.PP
+int snmp_send ( struct snmp_session *session,
+.RS
+struct snmp_pdu *pdu );
+.RE
+.PP
+int snmp_select_info ( int *numfds, fd_set *fdset,
+.RS
+struct timeval *timeout, int *block );
+.RE
+.PP
+void snmp_read ( fd_set *fdset );
+.PP
+void snmp_timeout ( void );
+.PP
+int snmp_close ( struct snmp_session *session );
+.PP
+void snmp_free_pdu (
+struct snmp_pdu *pdu );
+.PP
+void snmp_error (
+struct snmp_session *session,
+.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 */
+.RE
+.PP
+.SH DESCRIPTION
+.I Snmp_sess_init
+prepares a struct snmp_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
+to create an SNMP session, the structure is not used.
+.PP
+.I Snmp_open
+returns a pointer to a newly-formed
+.I struct snmp_session
+object, which the application must use to reference the
+active SNMP session.
+.PP
+.I Snmp_send
+and
+.I snmp_free_pdu
+each take as input a pointer to a
+.I struct snmp_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
+.I Snmp_read, snmp_select_info,
+and
+.I snmp_timeout
+provide an interface for the use of the
+.IR select(2)
+system call so that SNMP transactions can occur asynchronously.
+.PP
+.I Snmp_select_info
+is given the information that would have been passed to
+.I select
+in the absence of SNMP.  For example, this might include window update information.
+This information is modified so that SNMP will get the service it requires from the
+call to
+.I select.
+In this case,
+.I numfds, fdset,
+and
+.I timeout
+correspond to the
+.I nfds, readfds,
+and
+.I timeout
+arguments to
+.I select,
+respectively.  The only exception is that timeout must always point to an allocated (but perhaps uninitialized)
+.I struct timeval.
+If
+.I timeout
+would have been passed as NULL,
+.I block
+is set to true, and
+.I timeout
+is treated as undefined.  This same rule applies upon return from
+.I snmp_select_info.
+.PP
+After calling
+.I snmp_select_info, select
+is called with the returned data.  When select returns,
+.I snmp_read
+should be called with the
+.I fd_set
+returned from
+.I select
+to read each SNMP socket that has input.
+If
+.I select
+times out,
+.I snmp_timeout
+should be called to see if the timeout was intended for SNMP.
+.SH DIAGNOSTICS
+.PP
+Previous versions of the library used
+.IR snmp_get_errno
+to read the global variable
+.I snmp_errno
+which may have held the error status within the SNMP library.
+The existing method
+.I snmp_perror
+should be used to log ASN.1 coding errors only.
+.PP
+The new method
+.I snmp_sess_perror
+is provided to capture errors that occur during the processing
+of a particular SNMP session.
+.I Snmp_sess_perror
+calls
+.IR snmp_error
+function to obtain the "C" library error
+.I errno
+, the SNMP library error
+.I snmperr
+, and the SNMP library detailed error message
+that is associated with an error that occurred during a given session.
+.PP
+Note that in all cases except one,
+.IR snmp_sess_perror
+should be handed the
+.I struct snmp_session *
+pointer returned from
+.IR snmp_open.
+If
+.IR snmp_open
+returns a null pointer, pass the INPUT
+.I struct snmp_session *
+pointer used to call
+.IR snmp_open.
+.PP
+Error return status from 
+.I snmp_close
+and
+.I snmp_send
+is indicated by return of 0.  A successful status will return a 1 for
+.I snmp_close
+and the request id of the packet for
+.I snmp_send.
+Upon successful return from
+.I snmp_send
+the pdu will be freed by the library.
+.PP
+Consult snmp_api.h for the complete set of SNMP library
+error values.
+The SNMP library error value
+.IR snmperr
+can be one of the following values:
+.RS 2n
+.IP SNMPERR_GENERR \w'SNMPERR_BAD_REPETITIONS'u+2n
+A generic error occurred.
+.IP SNMPERR_BAD_LOCPORT \w'SNMPERR_BAD_REPETITIONS'u+2n
+The local port was bad because it had already been
+allocated or permission was denied.
+.IP SNMPERR_BAD_ADDRESS \w'SNMPERR_BAD_REPETITIONS'u+2n
+The host name or address given was not useable.
+.IP SNMPERR_BAD_SESSION \w'SNMPERR_BAD_REPETITIONS'u+2n
+The specified session was not open.
+.IP SNMPERR_TOO_LONG \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_NO_SOCKET \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_V2_IN_V1 \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_V1_IN_V2 \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_REPEATERS \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_REPETITIONS \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_ASN1_BUILD \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_SENDTO \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_PARSE \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_VERSION \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_NOAUTH_DESPRIV \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_ABORT \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_UNKNOWN_PDU \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_TIMEOUT \w'SNMPERR_BAD_REPETITIONS'u+2n
+.RE
+.PP
+A string representation of the error code can be obtained with
+.IR snmp_api_errstring ,
+and a standard error message may be printed using
+.I snmp_perror
+that functions like the
+.I perror
+standard routine.
+.SH "SEE ALSO"
+select(2), snmp_api.h
diff --git a/man/snmp_api_errstring.3 b/man/snmp_api_errstring.3
new file mode 100644
index 0000000..4c16baf
--- /dev/null
+++ b/man/snmp_api_errstring.3
@@ -0,0 +1 @@
+.so man3/snmp_api.3
diff --git a/man/snmp_async_send.3 b/man/snmp_async_send.3
deleted file mode 100644
index 2cc05ec..0000000
--- a/man/snmp_async_send.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/netsnmp_session_api.3
diff --git a/man/snmp_close.3 b/man/snmp_close.3
new file mode 100644
index 0000000..4c16baf
--- /dev/null
+++ b/man/snmp_close.3
@@ -0,0 +1 @@
+.so man3/snmp_api.3
diff --git a/man/snmp_config.5.def b/man/snmp_config.5.def
index 413a334..446fc11 100644
--- a/man/snmp_config.5.def
+++ b/man/snmp_config.5.def
@@ -1,4 +1,5 @@
-.TH SNMP_CONFIG 5 "08 Mar 2010" VVERSIONINFO "Net-SNMP"
+.TH SNMP_CONFIG 5 "5 May 2005" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmp_config - handling of Net-SNMP configuration files
 .SH DESCRIPTION
@@ -30,21 +31,21 @@ in the following order of preference:
 file in 
 .B SNMP_PERSISTENT_FILE
 environment variable
-.br
+.PP
 directories in 
 .B SNMPCONFPATH
 environment variable
-.br
+.PP
 directory defined by 
 .B
 persistentDir 
 snmp.conf variable
-.br
+.PP
 directory in 
 .B
 SNMP_PERSISTENT_DIR 
 environment variable
-.br
+.PP
 default 
 .B
 PERSISTENT_DIRECTORY 
@@ -58,17 +59,17 @@ in the following order of preference:
 file in 
 .B SNMP_PERSISTENT_FILE
 environment variable
-.br
+.PP
 directory defined by 
 .B
 persistentDir 
 snmp.conf variable
-.br
+.PP
 directory in 
 .B
 SNMP_PERSISTENT_DIR 
 environment variable
-.br
+.PP
 default 
 .B
 PERSISTENT_DIRECTORY 
@@ -137,64 +138,20 @@ logTimestamp true
 # return to our original snmpd.conf tokens:
 [snmpd]
 rocommunity mypublic
-.fi
-.RE
-.PP
-The same approach can be used to set configuration directives for a
-particular client application (or group of applications).  For example,
-any program that uses the 'snmp_parse_args()' call to handle command-line
-arguments (including the standard command-line tools shipped as part of the
-Net-SNMP distributions) will automatically read the config file 'snmpapp.conf'.
-To set library-level settings for these applications (but not other
-more-specific tools), use configuration such as the following:
-.PP
-.RS
-[snmp] defCommunity myCommunity
-.RE
-.PP
-for a single directive, or
-.PP
-.RS
-.nf
-# make this file handle snmp.conf tokens:
-[snmp]
-defCommunity myCommunity
-defVersion   2c
-# return to our original snmpapp.conf tokens:
-[snmpapp]
-.fi
 .RE
-.PP
-for multiple settings.
-Similarly for any other application token (as passed to init_snmp()).
 .SH COMMENTS
 .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
-include site.conf
-.RE
-.PP
-This will search every directory in the configuration path for files
-named site.conf, and will process those files before returning to the
-processing of the original file. Note that if '.conf' is omitted,
-it will be appended. That is, all configuration files must end
-in '.conf'.
 .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 netsnmp_config_api(3)
+.I read_config(3)
 manual page.
 .SH "SEE ALSO"
 snmpconf(1),
-netsnmp_config_api(3),
+read_config(3),
 snmp.conf(5),
 snmpd.conf(5)
 .\" Local Variables:
diff --git a/man/snmp_error.3 b/man/snmp_error.3
new file mode 100644
index 0000000..4c16baf
--- /dev/null
+++ b/man/snmp_error.3
@@ -0,0 +1 @@
+.so man3/snmp_api.3
diff --git a/man/snmp_free_pdu.3 b/man/snmp_free_pdu.3
new file mode 100644
index 0000000..4c16baf
--- /dev/null
+++ b/man/snmp_free_pdu.3
@@ -0,0 +1 @@
+.so man3/snmp_api.3
diff --git a/man/snmp_open.3 b/man/snmp_open.3
new file mode 100644
index 0000000..4c16baf
--- /dev/null
+++ b/man/snmp_open.3
@@ -0,0 +1 @@
+.so man3/snmp_api.3
diff --git a/man/snmp_perror.3 b/man/snmp_perror.3
new file mode 100644
index 0000000..4c16baf
--- /dev/null
+++ b/man/snmp_perror.3
@@ -0,0 +1 @@
+.so man3/snmp_api.3
diff --git a/man/snmp_read.3 b/man/snmp_read.3
new file mode 100644
index 0000000..4c16baf
--- /dev/null
+++ b/man/snmp_read.3
@@ -0,0 +1 @@
+.so man3/snmp_api.3
diff --git a/man/snmp_select_info.3 b/man/snmp_select_info.3
new file mode 100644
index 0000000..4c16baf
--- /dev/null
+++ b/man/snmp_select_info.3
@@ -0,0 +1 @@
+.so man3/snmp_api.3
diff --git a/man/snmp_send.3 b/man/snmp_send.3
new file mode 100644
index 0000000..4c16baf
--- /dev/null
+++ b/man/snmp_send.3
@@ -0,0 +1 @@
+.so man3/snmp_api.3
diff --git a/man/snmp_sess_api.3.def b/man/snmp_sess_api.3.def
new file mode 100644
index 0000000..a24788d
--- /dev/null
+++ b/man/snmp_sess_api.3.def
@@ -0,0 +1,230 @@
+.\" /***********************************************************
+.\" 	Copyright 1989 by Carnegie Mellon University
+.\" 
+.\"                       All Rights Reserved
+.\" 
+.\" Permission to use, copy, modify, and distribute this software and its 
+.\" documentation for any purpose and without fee is hereby granted, 
+.\" provided that the above copyright notice appear in all copies and that
+.\" both that copyright notice and this permission notice appear in 
+.\" supporting documentation, and that the name of CMU not be
+.\" used in advertising or publicity pertaining to distribution of the
+.\" software without specific, written prior permission.  
+.\" 
+.\" CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+.\" ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+.\" CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+.\" ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+.\" WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+.\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+.\" SOFTWARE.
+.\" ******************************************************************/
+.TH SNMP_SESS_API 3 "07 Mar 2002" VVERSIONINFO "Net-SNMP"
+.UC 5
+.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_close, snmp_sess_error - session functions
+.SH SYNOPSIS
+.B #include <net-snmp/session_api.h>
+.PP
+.BI "void snmp_sess_init(struct snmp_session *" session ");"
+.PP
+.BI "void *snmp_sess_open(struct snmp_session *" session ");"
+.PP
+.BI "struct snmp_session *snmp_sess_session(void *" handle ");"
+.PP
+.BI "int snmp_sess_send(void *" handle ", struct snmp_pdu *" pdu ");"
+.PP
+.BI "int snmp_sess_async_send(void *" handle ","
+.br
+.BI "                         struct snmp_pdu *" pdu ", "
+.br
+.BI "                         snmp_callback " callback ", "
+.br
+.BI "                         void *" callbackData ");"
+.PP
+.BI "int snmp_sess_select_info(void *" handle ","
+.br
+.BI "                          int *" numfds ", fd_set *" fdset ", "
+.br
+.BI "                          struct timeval *" timeout ", "
+.br
+.BI "                          int *" block ");"
+.PP
+.BI "int snmp_sess_read(void *" handle ", fd_set *" fdset ");"
+.PP
+.BI "void snmp_sess_timeout(void *" handle ");"
+.PP
+.BI "int snmp_sess_close(void *" handle ");"
+.PP
+.BI "void snmp_sess_error(void *" handle ", int *" pcliberr ", "
+.br
+.BI "                    int *" psnmperr ", char **" pperrstring ");"
+.SH DESCRIPTION
+These functions define a subset of the API that can be used
+to manage single SNMP sessions in a multi-threaded application.
+Except for
+.BR snmp_sess_session() ,
+these functions are single session versions of the traditional
+SNMP library API.
+.PP
+Note that these functions use an opaque pointer
+.RI ( handle
+in the above prototypes) to identify a single session in lieu of a
+.I session
+pointer (as in the traditional API).
+.PP
+.B snmp_sess_init()
+prepares a struct snmp_session that sources transport characteristics
+and common information that will be used for a set of SNMP transactions.
+After this structure is passed to
+.B snmp_sess_open()
+to create an SNMP session, the structure is no longer used.  Instead
+the opaque pointer returned by
+.B snmp_sess_open()
+is used to refer to that session henceforth.
+.PP
+SNMP sessions that are created with
+.B snmp_sess_open()
+are not affected by, and SHOULD NOT BE USED WITH,
+.BR snmp_select_info() ", " snmp_read() ", " snmp_timeout() " nor"
+.BR snmp_close() .
+Rather the equivalent single session functions described here should
+be used.
+.PP
+.B snmp_sess_init()
+and
+.B snmp_sess_open()
+each take as input a pointer to a struct snmp_session object.
+This structure contains information for a set of transactions that
+will share similar transport characteristics.
+.B snmp_sess_session()
+takes the opaque session handle and returns a pointer to
+its associated struct snmp_session.
+.PP
+.B snmp_sess_send()
+and
+.B snmp_sess_async_send()
+each take a
+.I pdu
+parameter, which points to a struct snmp_pdu object containing
+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
+.BR snmp_sess_select_info() ", " snmp_sess_read() " and " snmp_sess_timeout()
+provide an interface for the use of the
+.BR select (2)
+system call so that SNMP transactions for a single session can occur
+asynchronously.
+.PP
+.B snmp_sess_select_info()
+is passed the information that would have been passed to
+.BR select (2)
+in the absence of SNMP.  For example, this might include file
+descriptors associated with the main loop of a graphical
+application. This information is modified so that SNMP will get the
+service it requires from the call to
+.BR select (2).
+In this case,
+.IR numfds ", " fdset " and " timeout
+correspond to the
+.IR nfds ", " readfds " and " timeout
+arguments to
+.BR select (2)
+respectively.  The only exception is that timeout must ALWAYS point to
+an allocated (but perhaps uninitialized)
+.I struct timeval
+(it cannot be NULL as for
+.BR select (2)).
+If
+.I timeout
+would have been passed as NULL,
+.I block
+is instead set to true, and
+.I timeout
+is treated as undefined.  This same rule applies upon return from
+.BR snmp_select_info() .
+.PP
+After calling
+.B snmp_sess_select_info() ,
+.BR select (2)
+should be called with the returned data.  When it returns,
+.B snmp_sess_read()
+should then be called with the
+.I fd_set
+returned from
+.BR select (2).
+This will read any input from this session's SNMP socket.  If
+.BR select (2)
+times out (that is, it returns zero),
+.B snmp_sess_timeout()
+should be called to see if a timeout has occurred on the SNMP
+session.
+.SH DIAGNOSTICS
+.PP
+Error return status from 
+.B snmp_sess_open()
+is indicated by return of a NULL pointer.
+Error return status from 
+.B snmp_sess_close()
+and
+.B snmp_sess_send()
+is indicated by a return value of 0.  A successful status will return
+1.
+.PP
+Further information can be obtained by using
+.B snmp_sess_error()
+to see what type of error has occurred.  This function returns the
+SNMP
+.I snmp_errno
+variable, the value of the system
+.I errno
+variable, and a string interpretation of both variables.  The string
+must be freed after use by the caller.
+.PP
+For errors returned by
+.BR snmp_sess_open() ,
+use the corresponding function
+.B snmp_error()
+instead of
+.BR snmp_sess_error() .
+.PP
+Consult snmp_api.h for the complete set of SNMP library
+error values.
+The SNMP library error value
+.IR snmperr
+can be one of the following values:
+.RS 2n
+.IP SNMPERR_GENERR \w'SNMPERR_BAD_REPETITIONS'u+2n
+A generic error occurred.
+.IP SNMPERR_BAD_LOCPORT \w'SNMPERR_BAD_REPETITIONS'u+2n
+The local port was bad because it had already been
+allocated or permission was denied.
+.IP SNMPERR_BAD_ADDRESS \w'SNMPERR_BAD_REPETITIONS'u+2n
+The host name or address given was not useable.
+.IP SNMPERR_BAD_SESSION \w'SNMPERR_BAD_REPETITIONS'u+2n
+The specified session was not open.
+.IP SNMPERR_TOO_LONG \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_NO_SOCKET \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_V2_IN_V1 \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_V1_IN_V2 \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_REPEATERS \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_REPETITIONS \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_ASN1_BUILD \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_SENDTO \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_RCVFROM \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_PARSE \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_VERSION \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_BAD_COMMUNITY \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_NOAUTH_DESPRIV \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_ABORT \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_UNKNOWN_PDU \w'SNMPERR_BAD_REPETITIONS'u+2n
+.IP SNMPERR_TIMEOUT \w'SNMPERR_BAD_REPETITIONS'u+2n
+.RE
+.PP
+.SH "SEE ALSO"
+.BR select "(2), " snmp_api "(3), " snmp_api.h
diff --git a/man/snmp_sess_async_send.3 b/man/snmp_sess_async_send.3
new file mode 100644
index 0000000..d1e6bc0
--- /dev/null
+++ b/man/snmp_sess_async_send.3
@@ -0,0 +1 @@
+.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_close.3 b/man/snmp_sess_close.3
new file mode 100644
index 0000000..d1e6bc0
--- /dev/null
+++ b/man/snmp_sess_close.3
@@ -0,0 +1 @@
+.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_error.3 b/man/snmp_sess_error.3
new file mode 100644
index 0000000..d1e6bc0
--- /dev/null
+++ b/man/snmp_sess_error.3
@@ -0,0 +1 @@
+.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_init.3 b/man/snmp_sess_init.3
new file mode 100644
index 0000000..d1e6bc0
--- /dev/null
+++ b/man/snmp_sess_init.3
@@ -0,0 +1 @@
+.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_open.3 b/man/snmp_sess_open.3
new file mode 100644
index 0000000..d1e6bc0
--- /dev/null
+++ b/man/snmp_sess_open.3
@@ -0,0 +1 @@
+.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_perror.3 b/man/snmp_sess_perror.3
new file mode 100644
index 0000000..4c16baf
--- /dev/null
+++ b/man/snmp_sess_perror.3
@@ -0,0 +1 @@
+.so man3/snmp_api.3
diff --git a/man/snmp_sess_read.3 b/man/snmp_sess_read.3
new file mode 100644
index 0000000..d1e6bc0
--- /dev/null
+++ b/man/snmp_sess_read.3
@@ -0,0 +1 @@
+.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_select_info.3 b/man/snmp_sess_select_info.3
new file mode 100644
index 0000000..d1e6bc0
--- /dev/null
+++ b/man/snmp_sess_select_info.3
@@ -0,0 +1 @@
+.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_send.3 b/man/snmp_sess_send.3
new file mode 100644
index 0000000..d1e6bc0
--- /dev/null
+++ b/man/snmp_sess_send.3
@@ -0,0 +1 @@
+.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_session.3 b/man/snmp_sess_session.3
new file mode 100644
index 0000000..d1e6bc0
--- /dev/null
+++ b/man/snmp_sess_session.3
@@ -0,0 +1 @@
+.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_synch_response.3 b/man/snmp_sess_synch_response.3
deleted file mode 100644
index 5ead05d..0000000
--- a/man/snmp_sess_synch_response.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/netsnmp_sess_api.3
diff --git a/man/snmp_sess_timeout.3 b/man/snmp_sess_timeout.3
new file mode 100644
index 0000000..d1e6bc0
--- /dev/null
+++ b/man/snmp_sess_timeout.3
@@ -0,0 +1 @@
+.so man3/snmp_sess_api.3
diff --git a/man/snmp_set_mib_warnings.3 b/man/snmp_set_mib_warnings.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/snmp_set_mib_warnings.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/snmp_set_save_descriptions.3 b/man/snmp_set_save_descriptions.3
new file mode 100644
index 0000000..80f348b
--- /dev/null
+++ b/man/snmp_set_save_descriptions.3
@@ -0,0 +1 @@
+.so man3/mib_api.3
diff --git a/man/snmp_synch_response.3 b/man/snmp_synch_response.3
deleted file mode 100644
index 2cc05ec..0000000
--- a/man/snmp_synch_response.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/netsnmp_session_api.3
diff --git a/man/snmp_timeout.3 b/man/snmp_timeout.3
new file mode 100644
index 0000000..4c16baf
--- /dev/null
+++ b/man/snmp_timeout.3
@@ -0,0 +1 @@
+.so man3/snmp_api.3
diff --git a/man/snmp_trap_api.3.def b/man/snmp_trap_api.3.def
new file mode 100644
index 0000000..975daea
--- /dev/null
+++ b/man/snmp_trap_api.3.def
@@ -0,0 +1,57 @@
+.TH SNMP_TRAP_API 3 "7 Mar 2002" VVERSIONINFO "Net-SNMP"
+.UC 5
+.SH NAME
+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
+.BI "void send_easy_trap(int " trap ", int " specific ");"
+.PP
+.BI "void send_trap_vars(int " trap ", int " specific ", struct variable_list *" vars ");"
+.PP
+.BI "void send_v2trap(struct variable_list *" vars ");"
+.SH DESCRIPTION
+These three routines may be used to send traps from a MIB module
+within the Net-SNMP agent (including an AgentX subagent).
+.PP
+.B send_easy_trap()
+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.
+.PP
+.B send_trap_vars()
+is similar, but appends the supplied list of variable bindings to the
+traps that are sent.
+.PP
+.B send_v2trap()
+uses the supplied list of variable bindings to form an SNMPv2 trap,
+which is sent to SNMPv2-capable sinks on the configured list.  An
+equivalent INFORM is sent to the configuredq list of inform sinks.
+Sinks that can only handle SNMPv1 traps are skipped.
+.PP
+The various "send_trap()" calls allow you to specify traps in different
+formats.  And the various "trapsink" directives allow you to specify
+destinations to receive different formats.
+But *all* traps are sent to *all* destinations, regardless of how they
+were specified.
+.nf
+I.e. it's
+                                         ___  trapsink
+                                        /
+    send_easy_trap \___  [  Trap      ] ____  trap2sink
+                    ___  [ Generator  ]
+    send_v2trap    /     [            ] ----- informsink
+                                        \____
+                                              trapsess
+
+*Not*
+     send_easy_trap  ------------------->  trapsink
+     send_v2trap     ------------------->  trap2sink
+     ????            ------------------->  informsink
+     ????            ------------------->  trapsess
+.fi
+.SH WARNINGS
+These routines are used to send the traps immediately they are called.
+Invoking them at the appropriate time is left to the MIB module programmer.
+.SH "SEE ALSO"
+.BR snmpd.conf "(5), " snmptrapd "(8)"
diff --git a/man/snmpbulkget.1.def b/man/snmpbulkget.1.def
index 25210f3..8e200c1 100644
--- a/man/snmpbulkget.1.def
+++ b/man/snmpbulkget.1.def
@@ -1,9 +1,31 @@
-.TH SNMPBULKGET 1 "01 May 2002" VVERSIONINFO "Net-SNMP"
+.\" /***********************************************************
+.\" 	Copyright 1988, 1989 by Carnegie Mellon University
+.\" 
+.\"                       All Rights Reserved
+.\" 
+.\" Permission to use, copy, modify, and distribute this software and its 
+.\" documentation for any purpose and without fee is hereby granted, 
+.\" provided that the above copyright notice appear in all copies and that
+.\" both that copyright notice and this permission notice appear in 
+.\" supporting documentation, and that the name of CMU not be
+.\" used in advertising or publicity pertaining to distribution of the
+.\" software without specific, written prior permission.  
+.\" 
+.\" CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+.\" ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+.\" CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+.\" ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+.\" WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+.\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+.\" SOFTWARE.
+.\" ******************************************************************/
+.TH SNMPBULKGET 1 "08 Feb 2002" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpbulkget - communicates with a network entity using SNMP GETBULK requests.
 .SH SYNOPSIS
 .B snmpbulkget
-[COMMON OPTIONS] [-Cn <num>] [-Cr <NUM>] AGENT OID [OID]...
+[APPLICATION OPTIONS] [COMMON OPTIONS] OID [OID]...
 .SH DESCRIPTION
 .B snmpbulkget
 is an SNMP application that uses the SNMP GETBULK request to query a
@@ -17,13 +39,13 @@ error packet will be returned and a message will be shown, helping to
 pinpoint why the request was malformed.
 .SH OPTIONS
 .TP 8
-.BI \-Cn <NUM>
+.BI -Cn <NUM>
 Set the
 .I non-repeaters
 field in the GETBULK PDU.  This specifies the number of supplied
 variables that should not be iterated over.  The default is 0.
 .TP
-.BI \-Cr <NUM>
+.BI -Cr <NUM>
 Set the
 .I max-repetitions
 field in the GETBULK PDU.  This specifies the maximum number of
@@ -34,14 +56,10 @@ In addition to these options,
 takes the common options described in the 
 .I snmpcmd(1)
 manual page.
-Note that
-.B snmpbulkget
-REQUIRES  an argument specifying the agent to query
-and at least one OID argument, as described there.
 .SH EXAMPLE
 The command:
 .PP
-snmpbulkget \-v2c \-Cn1 \-Cr5 \-Os \-c public zeus system ifTable
+snmpbulkget -v2c -Cn1 -Cr5 -Os -c public zeus system ifTable
 .PP
 will retrieve the variable system.sysDescr.0 (which is the
 lexicographically next object to system) and the first 5 objects in
diff --git a/man/snmpbulkwalk.1.def b/man/snmpbulkwalk.1.def
index c5f4a06..b291a10 100644
--- a/man/snmpbulkwalk.1.def
+++ b/man/snmpbulkwalk.1.def
@@ -1,7 +1,3 @@
-.\" -*- 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:
 .\" /***********************************************************
 .\" 	Copyright 1988, 1989 by Carnegie Mellon University
 .\" 
@@ -23,12 +19,13 @@
 .\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 .\" SOFTWARE.
 .\" ******************************************************************/
-.TH SNMPBULKWALK 1 "01 May 2002" VVERSIONINFO "Net-SNMP"
+.TH SNMPBULKWALK 1 "17 Jun 1998" "" "Net-SNMP"
+.UC 4
 .SH NAME
 snmpbulkwalk - retrieve a subtree of management values using SNMP GETBULK requests
 .SH SYNOPSIS
 .B snmpbulkwalk
-[APPLICATION OPTIONS] [COMMON OPTIONS] AGENT [OID]
+[APPLICATION OPTIONS] [COMMON OPTIONS] [OID]
 .SH DESCRIPTION
 .B snmpbulkwalk
 is an SNMP application that uses SNMP GETBULK requests to query a
@@ -42,7 +39,7 @@ Each variable name is given in the format specified in
 .IR variables(5) .
 If no OID argument is present,
 .B snmpbulkwalk
-will search MIB\-2.
+will search MIB-2.
 .PP
 If the network entity has an error processing the request packet, an
 error packet will be returned and a message will be shown, helping to
@@ -52,7 +49,7 @@ If the tree search causes attempts to search beyond the end of the
 MIB, the message "End of MIB" will be displayed.
 .SH OPTIONS
 .TP 8
-.B \-Cc
+.B -Cc
 Do not check whether the returned OIDs are increasing.  Some agents
 (LaserJets are an example) return OIDs out of order, but can
 complete the walk anyway.  Other agents return OIDs that are out of
@@ -62,10 +59,10 @@ to loop indefinitely.  By default,
 .B snmpbulkwalk
 tries to detect this behavior and warns you when it hits an agent
 acting illegally.  Use
-.B \-Cc
+.B -Cc
 to turn off this behaviour.
 .TP
-.B \-Ci
+.B -Ci
 Include the given OID in the search range.  Normally
 .B snmpbulkwalk
 uses GETBULK requests starting with the OID you specified and returns
@@ -74,16 +71,16 @@ to include the OID specified on the command line in the printed
 results if it is a valid OID in the tree itself.  This option lets you
 do this.
 .TP
-.BI \-Cn <NUM>
+.BI -Cn <NUM>
 Set the
 .I non-repeaters
 field in the GETBULK PDUs.  This specifies the number of supplied
 variables that should not be iterated over.  The default is 0.
 .TP
-.B \-Cp
+.B -Cp
 Upon completion of the walk, print the number of variables found.
 .TP
-.BI \-Cr <NUM>
+.BI -Cr <NUM>
 Set the
 .I max-repetitions
 field in the GETBULK PDUs.  This specifies the maximum number of
@@ -94,14 +91,10 @@ In addition to these options,
 takes the common options described in the 
 .I snmpcmd(1)
 manual page.
-Note that
-.B snmpbulkget
-REQUIRES an argument specifying the agent to query
-and at most one OID argument, as described above.
 .SH EXAMPLE
 The command:
 .PP
-snmpbulkwalk \-v2c \-Os \-c public zeus system
+snmpbulkwalk -v2c -Os -c public zeus system
 .PP
 will retrieve all of the variables under system:
 .PP
diff --git a/man/snmpcmd.1.def b/man/snmpcmd.1.def
index bb4ed96..4ea3068 100644
--- a/man/snmpcmd.1.def
+++ b/man/snmpcmd.1.def
@@ -1,4 +1,3 @@
-.\" -*- 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:
@@ -28,7 +27,8 @@
 .\" Use is subject to license terms specified in the COPYING file
 .\" distributed with the Net-SNMP package.
 .\" ******************************************************************/
-.TH SNMPCMD 1 "20 Jul 2010" VVERSIONINFO "Net-SNMP"
+.TH SNMPCMD 1 "29 Jun 2005" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpcmd - options and behaviour common to most of the Net-SNMP command-line tools
 .SH SYNOPSIS
@@ -45,54 +45,92 @@ with an SNMP capable network entity, an agent.  Individual
 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 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
+
+.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.
+.TP
+.B -d
 Dump (in hexadecimal) the raw SNMP packets sent and received.
 .TP
-.B \-D\fI[TOKEN[,...]]
+.B -D \fITOKEN[,...]
 Turn on debugging output for the given
 .IR "TOKEN" "(s)."
 Try
 .IR ALL
 for extremely verbose output.
 .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
-.B \-h, \-\-help
+.B -h, --help
 Display a brief usage message and then exit.
 .TP
-.B \-H
+.B -H
 Display a list of configuration file directives understood by the
 command and then exit.
 .TP
-.BI \-I " [brRhu]"
+.BI -I " [brRhu]"
 Specifies input parsing options. See 
 .B INPUT OPTIONS 
 below.
 .TP
-.BI \-L " [eEfFoOsS]"
+.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 
 below.
 .TP
-.BI \-m " MIBLIST"
+.BI -m " MIBLIST"
 Specifies a colon separated list of MIB modules (not files) to load for
 this application.  This overrides (or augments) the environment variable
 MIBS, the \fIsnmp.conf\fR directive \fImibs\fR, and the list of MIBs
@@ -100,7 +138,7 @@ hardcoded into the Net-SNMP library.
 .IP
 If 
 .I MIBLIST
-has a leading '\-' or '+' character, then the MIB modules listed are
+has a leading '-' or '+' character, then the MIB modules listed are
 loaded in addition to the default list, coming before or after
 this list respectively.
 Otherwise, the specified MIBs are loaded \fIinstead\fR of this
@@ -112,7 +150,7 @@ is used to load all MIB modules in the MIB directory search list.
 Every file whose name does not begin with "." will be parsed as
 if it were a MIB file.
 .TP
-.BI \-M " DIRLIST"
+.BI -M " DIRLIST"
 Specifies a colon separated list of directories to search for MIBs.
 This overrides (or augments) the environment variable MIBDIRS,
 the \fIsnmp.conf\fR directive \fImibdirs\fR, and the default
@@ -121,7 +159,7 @@ directory hardcoded into the Net-SNMP library
 .IP
 If 
 .I DIRLIST
-has a leading '\-' or '+' character, then the given directories are
+has a leading '-' or '+' character, then the given directories are
 added to the default list, being searched before or after the
 directories on this list respectively.
 Otherwise, the specified directories are searched \fIinstead\fR
@@ -135,188 +173,63 @@ have precedence over earlier ones.
 To avoid searching any MIB directories, set the MIBDIRS
 environment variable to the empty string ("").
 .\"
-.\" XXX - or     \-M ""    ??
+.\" XXX - or     -M ""    ??
 .\"
 
-Note that MIBs specified using the \-m option or the \fImibs\fR
+Note that MIBs specified using the -m option or the \fImibs\fR
 configuration directive will be loaded from one of the directories
-listed by the \-M option (or equivalents).
+listed by the -M option (or equivalents).
 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
-.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
+.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.
-.BI \-O " [abeEfnqQsStTuUvxX]"
+file. 
+.TP
+.BI -O " [abeEfnqQsStTuUvxX]"
 Specifies output printing options. See 
 .B OUTPUT OPTIONS
 below.
 .TP
-.BI \-P " [cdeRuwW]"
+.BI -P " [cdeRuwW]"
 Specifies MIB parsing options.  See
 .B MIB PARSING OPTIONS
 below.
 .TP
-.BI \-r " retries"
+.BI -r " retries"
 Specifies the number of retries to be used in the requests. The default
 is 5.
 .TP
-.BI \-t " timeout"
+.BI -t " timeout"
 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 one 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
+.BI -u " secName"
+Set the securityName used for authenticated SNMPv3 messages.
+Overrides the \fIdefSecurityName\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 localCert=<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 certificate fingerprint, 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
-localCert specifier in a snmp.conf configuration file.
-.TP
-.BI "\-T peerCert=<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 peerCert 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
+.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
-.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.
+.B -V, --version
+Display version information for the application and then exit.
 .TP
-.BI \-x " privProtocol"
+.BI -x " privProtocol"
 Set the privacy protocol (DES or AES) used for encrypted SNMPv3 messages. 
 Overrides the \fIdefPrivType\fR token in the
 .I snmp.conf
 file. This option is only valid if the Net-SNMP software was build
 to use OpenSSL.
 .TP
-.BI \-X " privPassword"
+.BI -X " privPassword"
 Set the privacy pass phrase used for encrypted SNMPv3 messages.
 Overrides the \fIdefPrivPassphrase\fR token in the
 .I snmp.conf
@@ -324,21 +237,23 @@ file.
 It is insecure to specify pass phrases on the command line, see
 .I snmp.conf(5).
 .TP
-.BI \-Z " boots,time"
+.BI -Z " boots,time"
 Set the engineBoots and engineTime used for authenticated SNMPv3
 messages.  This will initialize the local notion of the agents
 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 \-c " community"
-Set the community string for SNMPv1/v2c transactions.
-Overrides the \fIdefCommunity\fR token in the
+.BI -Y "name"="value"
+.TP
+.BI -- "name"="value"
+Allows to specify any token ("name") supported in the
 .I snmp.conf
-file.
+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 AGENT SPECIFICATION
 .PP
@@ -413,35 +328,6 @@ connect to
 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 
@@ -457,26 +343,16 @@ on node number
 on network number
 .IR 0AE43409 .
 .TP 24
-.IR "unix:/tmp/local\-agent"
+.IR "unix:/tmp/local-agent"
 connect to the Unix domain socket 
-.IR /tmp/local\-agent ,
+.IR /tmp/local-agent ,
 and perform the query over that connection.
 .TP 24
-.IR "/tmp/local\-agent"
+.IR "/tmp/local-agent"
 identical to the previous specification, since the Unix domain is the
 default transport iff the first character of the <transport-address>
 is a '/'.
 .TP 24
-.IR "alias:myname"
-perform a connection to the
-.I myname
-alias which needs to be defined in the snmp.conf file using a line
-like "
-.I "alias myname udp:127.0.0.1:9161"
-".  Any type of transport definition can be used as the alias expansion
-parameter.  Aliases are particularly useful for using repeated complex
-transport strings.
-.TP 24
 .IR "AAL5PVC:100"
 perform the query using AAL5 PDUs sent on the permanent virtual
 circuit with VPI=0 and VCI=100 (decimal) on the first ATM adapter in the
@@ -486,6 +362,22 @@ machine.
 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.
 .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
@@ -493,32 +385,33 @@ to use udp6 transport addresses, and attempts to do so will result in
 the error "Unknown host".  Likewise, since AAL5 PVC support is only
 currently available on Linux, it will fail with the same error on
 other platforms.
+
 .SH "MIB PARSING OPTIONS"
 The Net-SNMP MIB parser mostly adheres to the Structure of Management
 Information (SMI).  As that specification has changed through time, and
 in recognition of the (ahem) diversity in compliance expressed in MIB
 files, additional options provide more flexibility in reading MIB files.
 .TP
-.B "\-Pc"
+.B "-Pc"
 Toggles whether ASN.1 comments should extend to the end of the MIB
 source line.
-Strictly speaking, a second appearance of "\-\-" should terminate the
+Strictly speaking, a second appearance of "--" should terminate the
 comment, but this breaks some MIB files.
 The default behaviour (to interpret comments correctly) can also
-be set with the configuration token \fIcommentToEOL\fR.
+be set with the (misnamed) configuration token \fIstrictCommentTerm\fR.
 .TP
-.B "\-Pd"
+.B "-Pd"
 Disables the loading of MIB object DESCRIPTIONs when parsing MIB files.
 This reduces the amount of memory used by the running application.
 .TP
-.B "\-Pe"
+.B "-Pe"
 Toggles whether to show errors encountered when parsing MIB files.
 These include
 references to IMPORTed modules and MIB objects that cannot be
 located in the MIB directory search list.
 The default behaviour can also be set with the configuration token \fIshowMibErrors\fR.
 .TP
-.B "\-PR"
+.B "-PR"
 If the same MIB object (parent name and sub-identifier) appears multiple
 times in the list of MIB definitions loaded, use the last version to be
 read in.  By default, the first version will be used, and any duplicates
@@ -532,20 +425,20 @@ of the same basic MIB object).
 .\" Setting this option may result in an incorrect hierarchy.
 .\" XXX - Why?
 .TP
-.B "\-Pu"
+.B "-Pu"
 Toggles whether to allow the underline character in MIB object names
 and other symbols.
 Strictly speaking, this is not valid SMI syntax, but some vendor MIB
 files define such names.
 The default behaviour can also be set with the configuration token \fImibAllowUnderline\fR.
 .TP
-.B "\-Pw"
+.B "-Pw"
 Show various warning messages in parsing MIB files and building
 the overall OID tree.
 This can also be set with the configuration directive
 \fImibWarningLevel 1\fR
 .TP
-.B "\-PW"
+.B "-PW"
 Show some additional warning messages, mostly relating to parsing
 individual MIB objects.
 This can also be set with the configuration directive
@@ -553,107 +446,107 @@ This can also be set with the configuration directive
 
 .SH "OUTPUT OPTIONS"
 The format of the output from SNMP commands can be controlled using
-various parameters of the \fB\-O\fR flag.
+various parameters of the \fB-O\fR flag.
 The effects of these sub-options can be seen by comparison with
 the following default output (unless otherwise specified):
 .RS
 .nf
-\fC$ snmpget \-c public \-v 1 localhost sysUpTime.0
-SNMPv2\-MIB::sysUpTime.0 = Timeticks: (14096763) 1 day, 15:09:27.63\fR
+\fC$ snmpget -c public -v 1 localhost sysUpTime.0
+SNMPv2-MIB::sysUpTime.0 = Timeticks: (14096763) 1 day, 15:09:27.63\fR
 .fi
 .RE
 
 .TP
-.B \-Oa
+.B -Oa
 Display string values as ASCII strings (unless there is a 
-\fCDISPLAY\-HINT\fR defined for the corresponding MIB object).
+\fCDISPLAY-HINT\fR defined for the corresponding MIB object).
 By default, the library attempts to determine whether the value is
 a printable or binary string, and displays it accordingly.
 
 This option does not affect objects that \fIdo\fR have a Display Hint.
 .TP
-.B \-Ob
+.B -Ob
 Display table indexes numerically, rather than trying to interpret
 the instance subidentifiers as string or OID values:
 .RS
 .nf
-\fC    $ snmpgetnext \-c public \-v 1 localhost vacmSecurityModel
-    SNMP\-VIEW\-BASED\-ACM\-MIB::vacmSecurityModel.0."wes" = xxx
-    $ snmpgetnext \-c public \-v 1 \fB\-Ob\fP localhost vacmSecurityModel
-    SNMP\-VIEW\-BASED\-ACM\-MIB::vacmSecurityModel.0.3.119.101.115 = xxx\fR
+\fC    $ snmpgetnext -c public -v 1 localhost vacmSecurityModel
+    SNMP-VIEW-BASED-ACM-MIB::vacmSecurityModel.0."wes" = xxx
+    $ snmpgetnext -c public -v 1 \fB-Ob\fP localhost vacmSecurityModel
+    SNMP-VIEW-BASED-ACM-MIB::vacmSecurityModel.0.3.119.101.115 = xxx\fR
 .fi
 .RE
 .TP
-.B \-Oe
+.B -Oe
 Removes the symbolic labels from enumeration values:
 .RS
 .nf
-\fC    $ snmpget \-c public \-v 1 localhost ipForwarding.0
-    IP\-MIB::ipForwarding.0 = INTEGER: forwarding(1)
-\fC    $ snmpget \-c public \-v 1 \fB\-Oe\fP localhost ipForwarding.0
-    IP\-MIB::ipForwarding.0 = INTEGER: 1\fR
+\fC    $ snmpget -c public -v 1 localhost ipForwarding.0
+    IP-MIB::ipForwarding.0 = INTEGER: forwarding(1)
+\fC    $ snmpget -c public -v 1 \fB-Oe\fP localhost ipForwarding.0
+    IP-MIB::ipForwarding.0 = INTEGER: 1\fR
 .fi
 .RE
 .TP
-.B \-OE
+.B -OE
 Modifies index strings to escape the quote characters:
 .RS
 .nf
-\fC    $ snmpgetnext \-c public \-v 1 localhost vacmSecurityModel
-    SNMP\-VIEW\-BASED\-ACM\-MIB::vacmSecurityModel.0."wes" = xxx
-    $ snmpgetnext \-c public \-v 1 \fB\-OE\fP localhost vacmSecurityModel
-    SNMP\-VIEW\-BASED\-ACM\-MIB::vacmSecurityModel.0.\\"wes\\" = xxx\fR
+\fC    $ snmpgetnext -c public -v 1 localhost vacmSecurityModel
+    SNMP-VIEW-BASED-ACM-MIB::vacmSecurityModel.0."wes" = xxx
+    $ snmpgetnext -c public -v 1 \fB-OE\fP localhost vacmSecurityModel
+    SNMP-VIEW-BASED-ACM-MIB::vacmSecurityModel.0.\\"wes\\" = xxx\fR
 .fi
 .RE
 .IP
 This allows the output to be reused in shell commands.
 .TP
-.B \-Of
+.B -Of
 Include the full list of MIB objects when displaying an OID:
 .RS
-\fC    .iso.org.dod.internet.mgmt.mib\-2.system.sysUpTime.0 =\fR
+\fC    .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.0 =\fR
 .RS
 \fC        Timeticks: (14096763) 1 day, 15:09:27.63\fR
 .RE
 .RE
 .TP
-.B \-On
+.B -On
 Displays the OID numerically:
 .br
 \fC    .1.3.6.1.2.1.1.3.0 = Timeticks: (14096763) 1 day, 15:09:27.63\fR
 .TP
-.B \-Oq
+.B -Oq
 Removes the equal sign and type information when displaying varbind values:
 .br
-\fC    SNMPv2\-MIB::sysUpTime.0 1:15:09:27.63\fR
+\fC    SNMPv2-MIB::sysUpTime.0 1:15:09:27.63\fR
 .TP
-.B \-OQ
+.B -OQ
 Removes the type information when displaying varbind values:
 .br
-\fC    SNMPv2\-MIB::sysUpTime.0 = 1:15:09:27.63\fR
+\fC    SNMPv2-MIB::sysUpTime.0 = 1:15:09:27.63\fR
 .TP
-.B \-Os
+.B -Os
 Display the MIB object name (plus any instance or other subidentifiers):
 .br
 \fC    sysUpTime.0 = Timeticks: (14096763) 1 day, 15:09:27.63\fR
 .TP
-.B \-OS
+.B -OS
 Display the name of the MIB, as well as the object name:
 .br
-\fC    SNMPv2\-MIB::sysUpTime.0 = Timeticks: (14096763) 1 day, 15:09:27.63\fR
+\fC    SNMPv2-MIB::sysUpTime.0 = Timeticks: (14096763) 1 day, 15:09:27.63\fR
 .IP
 This is the default OID output format.
 .TP
-.B \-Ot
+.B -Ot
 Display \fCTimeTicks\fR values as raw numbers:
 .br
-\fC    SNMPv2\-MIB::sysUpTime.0 = 14096763\fR
+\fC    SNMPv2-MIB::sysUpTime.0 = 14096763\fR
 .TP
-.B \-OT
+.B -OT
 If values are printed as Hex strings,
 display a printable version as well.
 .TP
-.B \-Ou
+.B -Ou
 Display the OID in the traditional UCD-style (inherited from the original
 CMU code).
 That means removing a series of "standard" prefixes from the OID,
@@ -662,35 +555,35 @@ and displaying the remaining list of MIB object names
 .br
 \fC    system.sysUpTime.0 = Timeticks: (14096763) 1 day, 15:09:27.63\fR
 .TP
-.B \-OU
+.B -OU
 Do not print the UNITS suffix at the end of the value.
 .TP
-.B \-Ov
+.B -Ov
 Display the varbind value only, not the OID:
 .RS
 .nf
-\fC    $ snmpget \-c public \-v 1 \fB\-Ov\fP localhost ipForwarding.0
+\fC    $ snmpget -c public -v 1 \fB-Oe\fP localhost ipForwarding.0
     INTEGER: forwarding(1)\fR
 .fi
 .RE
 .TP
-.B \-Ox
+.B -Ox
 Display string values as Hex strings (unless there is a 
-\fCDISPLAY\-HINT\fR defined for the corresponding MIB object).
+\fCDISPLAY-HINT\fR defined for the corresponding MIB object).
 By default, the library attempts to determine whether the value is
 a printable or binary string, and displays it accordingly.
 
 This option does not affect objects that \fIdo\fR have a Display Hint.
 .TP
-.B \-OX
+.B -OX
 Display table indexes in a more "program like" output, imitating
 a traditional array-style index format:
 .RS
 .nf
-\fC    $ snmpgetnext \-c public \-v 1 localhost ipv6RouteTable
-    IPv6\-MIB::ipv6RouteIfIndex.63.254.1.0.255.0.0.0.0.0.0.0.0.0.0.0.64.1 = INTEGER: 2
-    $ snmpgetnext \-c public \-v 1 \fB\-OX\fP localhost ipv6RouteTable
-    IPv6\-MIB::ipv6RouteIfIndex[3ffe:100:ff00:0:0:0:0:0][64][1] = INTEGER: 2
+\fC    $ snmpgetnext -c public -v 1 localhost ipv6RouteTable
+    IPv6-MIB::ipv6RouteIfIndex.63.254.1.0.255.0.0.0.0.0.0.0.0.0.0.0.64.1 = INTEGER: 2
+    $ snmpgetnext -c public -v 1 \fB-OE\fP localhost ipv6RouteTable
+    IPv6-MIB::ipv6RouteIfIndex[3ffe:100:ff00:0:0:0:0:0][64][1] = INTEGER: 2
 .fi
 .RE
 .PP
@@ -702,19 +595,19 @@ manual page for details.
 .SH "LOGGING OPTIONS"
 The mechanism and destination to use for logging of warning and error
 messages can be controlled by passing various parameters to the
-.B \-L
+.B -L
 flag.
 .TP
-.B \-Le
+.B -Le
 Log messages to the standard error stream.
 .TP
-.B \-Lf FILE
+.B -Lf FILE
 Log messages to the specified file.
 .TP
-.B \-Lo
+.B -Lo
 Log messages to the standard output stream.
 .TP
-.B \-Ls FACILITY
+.B -Ls FACILITY
 Log messages via syslog, using the specified facility
 ('d' for LOG_DAEMON, 'u' for LOG_USER,
 or '0'-'7' for LOG_LOCAL0 through LOG_LOCAL7).
@@ -724,17 +617,17 @@ There are also "upper case" versions of each of these options, which
 allow the corresponding logging mechanism to be restricted to certain
 priorities of message.  Using standard error logging as an example:
 .TP
-.B \-LE pri
+.B -LE pri
 will log messages of priority 'pri' and above to standard error.
 .TP
-.B \-LE p1\-p2
+.B -LE p1-p2
 will log messages with priority between 'p1' and 'p2' (inclusive) to
 standard error.
 .PP
 For
-.B \-LF
+.B -LF
 and
-.B \-LS
+.B -LS
 the priority specification comes before the file or facility token.
 The priorities recognised are:
 .IP
@@ -783,10 +676,10 @@ Normal output is (or will be!) logged at a priority level of
 
 .SH "INPUT OPTIONS"
 The interpretation of input object names and the values to be assigned
-can be controlled using various parameters of the \fB\-I\fR flag.
+can be controlled using various parameters of the \fB-I\fR flag.
 The default behaviour will be described at the end of this section.
 .TP
-.B \-Ib
+.B -Ib
 specifies that the given name should be regarded as a regular expression,
 to match (case-insensitively) against object names in the MIB tree.
 The "best" match will be used - calculated as the one that matches the
@@ -807,23 +700,23 @@ For example, the expression \fIsys*ontact.0\fR would not match the
 instance \fCsysContact.0\fR (although \fIsys*ontact\fR would match
 \fCsysContact\fR).
 Similarly, specifying a MIB module name will not succeed
-(so \fISNMPv2\-MIB::sys.*ontact\fR would not match either).
+(so \fISNMPv2-MIB::sys.*ontact\fR would not match either).
 .TP
-.B \-Ih
-disables the use of DISPLAY\-HINT information when assigning values.
+.B -Ih
+disables the use of DISPLAY-HINT information when assigning values.
 This would then require providing the raw value:
 .br
-\fC    snmpset ... HOST\-RESOURCES\-MIB::hrSystemDate.0
+\fC    snmpset ... HOST-RESOURCES-MIB::hrSystemDate.0
 .br
                     x "07 D2 0C 0A 02 04 06 08"\fR
 .br
 instead of a formatted version:
 .br
-\fC    snmpset ... HOST\-RESOURCES\-MIB::hrSystemDate.0
+\fC    snmpset ... HOST-RESOURCES-MIB::hrSystemDate.0
 .br
-                    = 2002\-12\-10,2:4:6.8\fR
+                    = 2002-12-10,2:4:6.8\fR
 .TP
-.B \-Ir
+.B -Ir
 disables checking table indexes and the value to be assigned against the
 relevant MIB definitions.  This will (hopefully) result in the remote
 agent reporting an invalid request, rather than checking (and rejecting)
@@ -833,13 +726,13 @@ Local checks are more efficient (and the diagnostics provided also
 tend to be more precise), but disabling this behaviour is particularly
 useful when testing the remote agent.
 .TP
-.B \-IR
+.B -IR
 enables "random access" lookup of MIB names.
 Rather than providing a full OID path to the desired MIB object
 (or qualifying this object with an explicit MIB module name),
 the MIB tree will be searched for the matching object name.
-Thus \fC.iso.org.dod.internet.mib\-2.system.sysDescr.0\fR
-(or \fCSNMPv2\-MIB::sysDescr.0\fR) can be specified simply
+Thus \fC.iso.org.dod.internet.mib-2.system.sysDescr.0\fR
+(or \fCSNMPv2-MIB::sysDescr.0\fR) can be specified simply
 as \fCsysDescr.0\fR.
 .RS
 .IP "Warning:"
@@ -848,24 +741,24 @@ may return a different MIB object depending on which MIB files
 have been loaded.
 .RE
 .IP
-The \fIMIB\-MODULE::objectName\fR syntax has
+The \fIMIB-MODULE::objectName\fR syntax has
 the advantage of uniquely identifying a particular MIB object,
 as well as being slightly more efficient (and automatically
 loading the necessary MIB file if necessary).
 .TP
-.B \-Is SUFFIX
+.B -Is SUFFIX
 adds the specified suffix to each textual OID given on the command line.
 This can be used to retrieve multiple objects from the same row of
 a table, by specifying a common index value.
 .TP
-.B \-IS PREFIX
+.B -IS PREFIX
 adds the specified prefix to each textual OID given on the command line.
 This can be used to specify an explicit MIB module name for all objects
 being retrieved (or for incurably lazy typists).
 .TP
-.B \-Iu
+.B -Iu
 enables the traditional UCD-style approach to interpreting input OIDs.
-This assumes that OIDs are rooted at the 'mib\-2' point in the tree
+This assumes that OIDs are rooted at the 'mib-2' point in the tree
 (unless they start with an explicit '.' or include a MIB module name).
 So the \fCsysDescr\fR instance above would be referenced as
 \fCsystem.sysDescr.0\fR. 
@@ -874,28 +767,28 @@ So the \fCsysDescr\fR instance above would be referenced as
 Object names specified with a leading '.' are always interpreted as
 "fully qualified" OIDs, listing the sequence of MIB objects from the
 root of the MIB tree.  Such objects and those qualified by an explicit
-MIB module name are unaffected by the \fB\-Ib\fR, \fB\-IR\fR and \fB\-Iu\fR flags.
+MIB module name are unaffected by the \fB-Ib\fR, \fB-IR\fR and \fB-Iu\fR flags.
 
 Otherwise, if none of the above input options are specified, the
 default behaviour for a "relative" OID is to try and interpret it
 as an (implicitly) fully qualified OID,
-then apply "random access" lookup (\fB\-IR\fR),
-followed by "best match" pattern matching (\fB\-Ib\fR).
+then apply "random access" lookup (\fB-IR\fR),
+followed by "best match" pattern matching (\fB-Ib\fR).
 
 .SH "ENVIRONMENT VARIABLES"
 .IP PREFIX
 The standard prefix for object identifiers (when using UCD-style output).
-Defaults to .iso.org.dod.internet.mgmt.mib\-2
+Defaults to .iso.org.dod.internet.mgmt.mib-2
 .IP MIBS
 The list of MIBs to load. Defaults to
-SNMPv2\-TC:SNMPv2\-MIB:IF\-MIB:IP\-MIB:TCP\-MIB:UDP\-MIB:SNMP\-VACM\-MIB.
+SNMPv2-TC:SNMPv2-MIB:IF-MIB:IP-MIB:TCP-MIB:UDP-MIB:SNMP-VACM-MIB.
 Overridden by the
-.B \-m
+.B -m
 option.
 .IP MIBDIRS
 The list of directories to search for MIBs. Defaults to DATADIR/snmp/mibs.
 Overridden by the
-.B \-M
+.B -M
 option.
 
 .SH FILES
diff --git a/man/snmpconf.1.def b/man/snmpconf.1.def
index cd0c104..b380f03 100644
--- a/man/snmpconf.1.def
+++ b/man/snmpconf.1.def
@@ -1,4 +1,5 @@
-.TH SNMPCONF 1 "25 Feb 2003" VVERSIONINFO "Net-SNMP"
+.TH SNMPCONF 1 "08 Feb 2002" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpconf - creates and modifies SNMP configuration files
 .SH SYNOPSIS
@@ -6,7 +7,7 @@ snmpconf - creates and modifies SNMP configuration files
 [OPTIONS] [fileToCreate]
 .IP "Start with:"
 .B snmpconf
-\-g basic_setup
+-g basic_setup
 .IP "Or even just:"
 .B snmpconf
 .SH DESCRIPTION
@@ -27,35 +28,35 @@ have been edited by the user are saved to the local directory, fully
 commented.
 .PP
 A particularly useful option is the
-.B \-g
+.B -g
 switch, which walks a user through a specific set of configuration
 questions.  Run:
 .RS
 .PP
-snmpconf \-g basic_setup
+snmpconf -g basic_setup
 .RE
 .PP
 for an example.
 .SH "OPTIONS"
 .TP 8
-.B \-f
+.B -f
 Force overwriting existing files in the current directory without
 prompting the user if this is a desired thing to do.
 .TP 
-.B \-i
+.B -i
 When finished, install the files into the location where the global
 system commands expect to find them.
 .TP
-.B \-p
+.B -p
 When finished, install the files into the users home directory's .snmp
 subdirectory (where the applications will also search for
 configuration files).
 .TP
-.BI \-I " DIRECTORY"
+.BI -I " DIRECTORY"
 When finished, install the files into the directory 
 .IR DIRECTORY .
 .TP
-.B \-a
+.B -a
 Don't ask any questions.  Simply read in the various known
 configuration files and write them back out again.  This has the
 effect of "auto-commenting" the configuration files for you.  See
@@ -63,17 +64,17 @@ the
 .B NEAT TRICKS
 section below.
 .TP
-.BI \-r all|none
+.BI -r all|none
 Read in either all or none of the found configuration files.  Normally
 .B snmpconf
 prompts you for which files you wish to read in.  Reading in
 these configuration files will merge these files with the results of
 the questions that it asks of you.
 .TP
-.BI \-R " FILE,..."
+.BI -R " FILE,..."
 Read in a specific list of configuration files.
 .TP
-.BI \-g " GROUPNAME"
+.BI -g " GROUPNAME"
 Groups of configuration entries can be created that can be used to
 walk a user through a series of questions to create an initial
 configuration file.  There are no menus to navigate, just a list of
@@ -81,44 +82,44 @@ questions.  Run:
 .RS
 .RS
 .PP
-snmpconf \-g basic_setup
+snmpconf -g basic_setup
 .RE
 .PP
 for a good example.
 .RE
 .TP
-.B \-G
+.B -G
 List all the known groups.
 .TP
-.BI \-c " CONFIGDIR"
+.BI -c " CONFIGDIR"
 .B snmpconf
 uses a directory of configuration information to learn about
 the files and questions that it should be asking.  This option tells
 .B snmpconf
 to use a different location for configuring itself.
 .TP
-.B \-q
+.B -q
 Run slightly more quietly.  Since this is an interactive program, I
 don't recommend this option since it only removes information from the
 output that is designed to help you.
 .TP
-.B \-d
+.B -d
 Turn on 
 .B lots
 of debugging output.
 .TP
-.B \-D
+.B -D
 Add 
 .B even more
 debugging output in the form of Perl variable dumps.
 .IP
 .SH "NEAT TRICKS"
-.IP "snmpconf \-g basic_setup"
+.IP "snmpconf -g basic_setup"
 Have I mentioned this command enough yet?  It's designed to walk
 someone through an initial setup for the
 .I snmpd(8)
 daemon.  Really, you should try it.
-.IP "snmpconf \-R /usr/local/snmp/snmpd.conf \-a \-f snmpd.conf"
+.IP "snmpconf -R /usr/local/snmp/snmpd.conf -a -f snmpd.conf"
 Automatically reads in an snmpd.conf file (for example) and adds
 comments to them describing what each token does.  Try it.  It's cool.
 .SH "NOTES"
diff --git a/man/snmpd.8.def b/man/snmpd.8.def
index f173396..d28bb83 100644
--- a/man/snmpd.8.def
+++ b/man/snmpd.8.def
@@ -1,4 +1,5 @@
-.TH SNMPD 8 "30 Jun 2010" VVERSIONINFO "Net-SNMP"
+.TH SNMPD 8 "23 Jun 2005" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpd - daemon to respond to SNMP request packets.
 .SH SYNOPSIS
@@ -12,13 +13,13 @@ request(s), collects the requested information and/or performs the
 requested operation(s) and returns the information to the sender.
 .SH OPTIONS
 .TP 8
-.B \-a
+.B -a
 Log the source addresses of incoming requests.
 .TP
-.B \-A
+.B -A
 Append to the log file rather than truncating it.
 .TP
-.B "\-c" \fIFILE
+.B "-c" \fIFILE
 Read 
 .I FILE
 as a configuration file
@@ -27,21 +28,21 @@ file will only understand snmpd.conf tokens, unless the configuration type
 is specified in the file as described in the snmp_config man page under
 SWITCHING CONFIGURATION TYPES IN MID-FILE.
 .TP
-.B \-C
+.B -C
 Do not read any configuration files except the ones optionally specified by the 
-.B \-c 
+.B -c 
 option.
 Note that this behaviour also covers the persistent configuration files.
 This may result in dynamically-assigned values being reset following an
 agent restart, unless the relevant persistent config files are
 explicitly loaded using the
-.B \-c 
+.B -c 
 option.
 .TP
-.B \-d
+.B -d
 Dump (in hexadecimal) the sent and received SNMP packets.
 .TP
-.B \-D\fI[TOKEN[,...]]
+.B -D\fI[TOKEN[,...]]
 Turn on debugging output for the given
 .IR "TOKEN" "(s)."
 Without any tokens specified, it defaults to printing all the tokens
@@ -49,99 +50,99 @@ Without any tokens specified, it defaults to printing all the tokens
 You might want to try
 .IR ALL
 for extremely verbose output.  Note: You can not put a space between
-the \-D flag and the listed TOKENs.
+the -D flag and the listed TOKENs.
 .TP
-.B \-f
+.B -f
 Do not fork() from the calling shell.
 .TP
-.B \-g \fIGID
+.B -g \fIGID
 Change to the numerical group ID
 .I GID
 after opening listening sockets.
 .TP
-.B \-h, \-\-help
+.B -h, --help
 Display a brief usage message and then exit.
 .TP
-.B \-H
+.B -H
 Display a list of configuration file directives understood by the
 agent and then exit.
 .TP
-.B \-I \fI[\-]INITLIST
+.B -I \fI[-]INITLIST
 Specifies which modules should (or should not) be initialized
 when the agent starts up.  If the comma-separated
 .I INITLIST
 is preceded
-with a '\-', it is the list of modules that should \fInot\fR be started.
+with a '-', it is the list of modules that should \fInot\fR be started.
 Otherwise this is the list of the \fIonly\fR modules that should be started.
 
 To get a list of compiled modules, run the agent with the arguments
-.I "\-Dmib_init \-H"
+.I "-Dmib_init -H"
 (assuming debugging support has been compiled in).
 .TP
-.B \-L[efos]
+.B -L[efos]
 Specify where logging output should be directed (standard error or output,
 to a file or via syslog).  See LOGGING OPTIONS in snmpcmd(5) for details.
 .TP
-.BR \-m " \fIMIBLIST"
+.BR -m " \fIMIBLIST"
 Specifies a colon separated list of MIB modules to load for this
 application.  This overrides the environment variable MIBS.
 See \fIsnmpcmd(1)\fR for details.
 .TP
-.BR \-M " \fIDIRLIST"
+.BR -M " \fIDIRLIST"
 Specifies a colon separated list of directories to search for MIBs.
 This overrides the environment variable MIBDIRS.
 See \fIsnmpcmd(1)\fR for details.
 .TP
-.B \-n \fINAME
+.B -n \fINAME
 Set an alternative application name (which will affect the
 configuration files loaded).
 By default this will be \fIsnmpd\fR, regardless of the name
 of the actual binary.
 .TP
-.B \-p \fIFILE
+.B -p \fIFILE
 Save the process ID of the daemon in
 .IR FILE "."
 .TP 
-.B \-q
+.B -q
 Print simpler output for easier automated parsing.
 .TP
-.B \-r
+.B -r
 Do not require root access to run the daemon.  Specifically, do not exit
 if files only accessible to root (such as /dev/kmem etc.) cannot be
 opened.
 .TP
-.B \-u \fIUID
+.B -u \fIUID
 Change to the user ID
 .I UID
 (which can be given in numerical or textual form) after opening
 listening sockets.
 .TP
-.B \-U
+.B -U
 Instructs the agent to not remove its pid file (see the
-.B \-p
+.B -p
 option) on shutdown. Overrides the leave_pidfile token in the
 .I snmpd.conf
 file, see
 .I snmpd.conf(5).
 .TP
-.B \-v, \-\-version
+.B -v, --version
 Print version information for the agent and then exit.
 .TP
-.B \-V
+.B -V
 Symbolically dump SNMP transactions.
 .TP
-.B \-x \fIADDRESS
+.B -x \fIADDRESS
 Listens for AgentX connections on the specified address
 rather than the default AGENTX_SOCKET.
 The address can either be a Unix domain socket path,
 or the address of a network interface.  The format is the same as the
 format of listening addresses described below.
 .TP
-.B \-X
+.B -X
 Run as an AgentX subagent rather than as an SNMP master agent.
 .TP
-.BI \-\- "name"="value"
-Allows one to specify any token ("name") supported in the
+.BI -- "name"="value"
+Allows to specify any token ("name") supported in the
 .I snmpd.conf
 file and sets its value to "value". Overrides the corresponding token in the
 .I snmpd.conf
@@ -193,12 +194,6 @@ IPv6-address[:port]
 hostname[:port]
 .I or
 IPv6-address[:port]
-.TP 28
-.IR "" "ssh"
-hostname:port
-.TP 28
-.IR "" "dtlsudp"
-hostname:port
 .RE
 .PP
 Note that <transport-specifier> strings are case-insensitive so that,
@@ -218,10 +213,10 @@ listen on TCP port 1161 on all IPv4 interfaces.
 .IR "ipx:/40000"
 listen on IPX port 40000 on all IPX interfaces.
 .TP 24
-.IR "unix:/tmp/local\-agent"
-listen on the Unix domain socket \fI/tmp/local\-agent\fR.
+.IR "unix:/tmp/local-agent"
+listen on the Unix domain socket \fI/tmp/local-agent\fR.
 .TP 24
-.IR "/tmp/local\-agent"
+.IR "/tmp/local-agent"
 is identical to the previous specification, since the Unix domain is
 assumed if the first character of the <transport-address> is '/'.
 .TP 24
@@ -231,16 +226,6 @@ listen on the AAL5 permanent virtual circuit with VPI=0 and VCI=161
 .TP 24
 .IR "udp6:10161"
 listen on port 10161 on all IPv6 interfaces.
-.TP 24
-.IR "ssh:127.0.0.1:22"
-Allows connections from the snmp subsystem on the ssh server on port
-22.  The details of using SNMP over SSH are defined below.
-.TP 24
-.IR "dtlsudp:127.0.0.1:9161"
-Listen for connections over DTLS on UDP port 9161.  The snmp.conf file
-must have the
-.IR serverCert,
-configuration tokens defined.
 .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
@@ -248,71 +233,6 @@ to use udp6 transport addresses, and attempts to do so will result in
 the error "Error opening specified endpoint".  Likewise, since AAL5
 PVC support is only currently available on Linux, it will fail with
 the same error on other platforms.
-.SH Transport Specific Notes
-.RS 0
-.TP 8
-ssh
-The SSH transport, on the server side, is actually just a unix
-named pipe that can be connected to via a ssh subsystem configured in
-the main ssh server.  The pipe location (configurable with the
-sshtosnmpsocket token in snmp.conf) is
-.I /var/net\-snmp/sshtosnmp.
-Packets should be submitted to it via the sshtosnmp application, which
-also sends the user ID as well when starting the connection.  The TSM
-security model should be used when packets should process it.
-.IP
-The
-.I sshtosnmp
-command knows how to connect to this pipe and talk to
-it.  It should be configured in the
-.IR "OpenSSH sshd"
-configuration file (which is normally
-.IR "/etc/ssh/sshd_config"
-using the following configuration line:
-.TP 8
-.IP
-Subsystem snmp /usr/local/bin/sshtosnmp
-.IP
-The
-.I sshtosnmp
-command will need read/write access to the 
-.I /var/net\-snmp/sshtosnmp
-pipe.  Although it should be fairly safe to grant access to the
-average user since it still requires modifications to the ACM settings
-before the user can perform operations, paranoid administrators may
-want to make the /var/net\-snmp directory accessible only by users in a
-particular group.  Use the
-.I sshtosnmpsocketperms
-snmp.conf configure option to set the permissions, owner and group of
-the created socket.
-.IP
-Access control can be granted to the user "foo" using the following
-style of simple snmpd.conf settings:
-.TP 8
-.IP
-rouser \-s tsm foo authpriv
-.IP
-Note that "authpriv" is acceptable assuming as SSH protects everything
-that way (assuming you have a non-insane setup).
-snmpd has no notion of how SSH has actually protected a packet and
-thus the snmp agent assumes all packets passed through the SSH
-transport have been protected at the authpriv level.
-.TP 8
-dtlsudp
-The DTLS protocol, which is based off of TLS, requires both client and
-server certificates to establish the connection and authenticate both
-sides.  In order to do this, the client will need to configure the
-snmp.conf file
-with the
-.IR clientCert
-configuration tokens.  The server will need to configure the snmp.conf
-file with the
-.IR serverCert
-configuration tokens defined.
-.IP
-Access control setup is similar to the ssh transport as the TSM
-security model should be used to protect the packet.
-.RE
 .SH CONFIGURATION FILES
 .PP
 .B snmpd
diff --git a/man/snmpd.conf.5.def b/man/snmpd.conf.5.def
index 5f85f72..1d96657 100644
--- a/man/snmpd.conf.5.def
+++ b/man/snmpd.conf.5.def
@@ -1,4 +1,5 @@
-.TH SNMPD.CONF 5 "30 Jun 2010" VVERSIONINFO "Net-SNMP"
+.TH SNMPD.CONF 5 "08 Feb 2002" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpd.conf - configuration file for the Net-SNMP SNMP agent
 .SH DESCRIPTION
@@ -18,7 +19,7 @@ most common agent requirements.  See the
 manual page for more information, or try running the
 command:
 .RS
-.IP "snmpconf \-g basic_setup"
+.IP "snmpconf -g basic_setup"
 .RE
 .PP
 There are a large number of directives that can be specified,
@@ -40,7 +41,7 @@ file.
 A full list of recognised directives can be obtained by running
 the command:
 .RS
-.IP "snmpd \-H"
+.IP "snmpd -H"
 .RE
 .SH AGENT BEHAVIOUR
 Although most configuration directives are concerned with the MIB
@@ -69,10 +70,10 @@ This may refer to a user by name (USER), or a numeric user ID
 starting with '#' (#UID).
 .IP "leave_pidfile yes"
 instructs the agent to not remove its pid file on shutdown. Equivalent to
-specifying "\-U" on the command line.
+specifying "-U" on the command line.
 .IP "maxGetbulkRepeats NUM"
 Sets the maximum number of responses allowed for a single variable in
-a getbulk request.  Set to 0 to enable the default and set it to \-1 to
+a getbulk request.  Set to 0 to enable the default and set it to -1 to
 enable unlimited.  Because memory is allocated ahead of time, sitting
 this to unlimited is not considered safe if your user population can
 not be trusted.  A repeat number greater than this will be truncated
@@ -82,7 +83,7 @@ This is set by default to -1.
 .IP "maxGetbulkResponses NUM"
 Sets the maximum number of responses allowed for a getbulk request.
 This is set by default to 100.  Set to 0 to enable the default and set
-it to \-1 to enable unlimited.  Because memory is allocated ahead of
+it to -1 to enable unlimited.  Because memory is allocated ahead of
 time, sitting this to unlimited is not considered safe if your user
 population can not be trusted.
 .IP
@@ -92,42 +93,13 @@ will be an integer multiple of the number of variables requested times
 the calculated number of repeats allow to fit below this number.
 .IP
 Also not that processing of maxGetbulkRepeats is handled first.
-.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
-Hopefully 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 USM users.  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:
+.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
+uptime in seconds. This is the recommended approach. However the
+capacity exists to define the engineID in other ways:
 .IP "engineID STRING"
 specifies that the engineID should be built from the given text STRING.
 .IP "engineIDType 1|2|3"
@@ -143,126 +115,14 @@ The default is to use eth0.
 .\"
 .\" What if this doesn't exist ?
 .\"
-.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] localCert <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] 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 at 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 at 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
-pain to manipulate yet another database and would prefer to use
-existing infrastructure.  To that end the IETF created the ISMS
-working group to battle that problem, and the ISMS working group
-decided to tunnel SNMP over SSH and DTLS to make use existing user and
-authentication infrastructures.
-.SS SNMPv3 USM Users
-To use the USM based SNMPv3-specific users, you'll need to create
-them.  It is recommended you
-.B "use the net\-snmp\-config command"
-to do this, but you can also do it by directly specifying createUser
-directives yourself instead:
-.IP "createUser [\-e ENGINEID] username (MD5|SHA) authpassphrase [DES|AES] [privpassphrase]"
+.SH ACCESS CONTROL
+.B snmpd
+supports the View-Based Access Control Model (VACM) as defined in RFC
+2575, to control who can retrieve or update information.  To this end,
+it recognizes various directives relating to access control.
+These fall into four basic groups.
+.SS SNMPv3 Users
+.IP "createUser [-e ENGINEID] username (MD5|SHA) authpassphrase [DES|AES] [privpassphrase]"
 .IP
 MD5 and SHA are the authentication types to use.  DES and AES are the
 privacy protocols to use.  If the privacy
@@ -282,7 +142,7 @@ SNMPv3 users can be created at runtime using the
 command.
 .IP
 Instead of figuring out how to use this directive and where to put it
-(see below), just run "net\-snmp\-config \-\-create\-snmpv3\-user" instead,
+(see below), just run "net-snmp-config --create-snmpv3-user" instead,
 which will add one of these lines to the right place.
 .IP
 This directive should be placed into the
@@ -295,12 +155,12 @@ be used to access other agents.  If the password is stolen, however,
 it can be.
 .IP
 If you need to localize the user to a particular EngineID (this is
-useful mostly in the similar snmptrapd.conf file), you can use the \-e
+useful mostly in the similar snmptrapd.conf file), you can use the -e
 argument to specify an EngineID as a hex value (EG, "0x01020304").
 .IP
 If you want to generate either your master or localized keys directly,
-replace the given password with a hexstring (preceded by a "0x") and
-precede the hex string by a \-m or \-l token (respectively).  EGs:
+replace the given password with a hexstring (preceeded by a "0x") and
+precede the hex string by a -m or -l token (respectively).  EGs:
 .IP
 .RS
 .nf
@@ -308,8 +168,8 @@ precede the hex string by a \-m or \-l token (respectively).  EGs:
 counting purposes.  Please generate random keys instead of using
 these examples]
 
-createUser myuser SHA \-l 0x0001020304050607080900010203040506070809 AES \-l 0x00010203040506070809000102030405
-createUser myuser SHA \-m 0x0001020304050607080900010203040506070809 AES \-m 0x0001020304050607080900010203040506070809
+createUser myuser SHA -l 0x0001020304050607080900010203040506070809 AES -l 0x00010203040506070809000102030405
+createUser myuser SHA -m 0x0001020304050607080900010203040506070809 AES -m 0x0001020304050607080900010203040506070809
 .fi
 .RE
 .IP
@@ -318,17 +178,12 @@ expected to be the length needed by the algorithm (128 bits for all
 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).
-.SH ACCESS CONTROL
-.B snmpd
-supports the View-Based Access Control Model (VACM) as defined in RFC
-2575, to control who can retrieve or update information.  To this end,
-it recognizes various directives relating to access control.
 .SS Traditional Access Control
 Most simple access control requirements can be specified using the
 directives \fIrouser\fR/\fIrwuser\fR (for SNMPv3) or
 \fIrocommunity\fR/\fIrwcommunity\fR (for SNMPv1 or SNMPv2c).
-.IP "rouser [\-s SECMODEL] USER [noauth|auth|priv [OID | \-V VIEW [CONTEXT]]]"
-.IP "rwuser [\-s SECMODEL]  USER [noauth|auth|priv [OID | \-V VIEW [CONTEXT]]]"
+.IP "rouser USER [noauth|auth|priv [OID | -V VIEW [CONTEXT]]]"
+.IP "rwuser USER [noauth|auth|priv [OID | -V VIEW [CONTEXT]]]"
 specify an SNMPv3 user that will be allowed read-only (GET and GETNEXT)
 or read-write (GET, GETNEXT and SET) access respectively.
 By default, this will provide access to the full OID tree for authenticated
@@ -340,15 +195,8 @@ user to the subtree rooted at the given OID, or the named view.
 An optional context can also be specified, or "context*" to denote a context
 prefix.  If no context field is specified (or the token "*" is used), the
 directive will match all possible contexts.
-.IP
-If SECMODEL is specified then it will be the security model required
-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 (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]]]"
+.IP "rocommunity COMMUNITY [SOURCE [OID | -V VIEW [CONTEXT]]]"
+.IP "rwcommunity COMMUNITY [SOURCE [OID | -V VIEW [CONTEXT]]]"
 specify an SNMPv1 or SNMPv2c community that will be allowed read-only
 (GET and GETNEXT) or read-write (GET, GETNEXT and SET) access respectively.
 By default, this will provide access to the full OID tree for such requests,
@@ -358,8 +206,8 @@ restrict access to requests from the specified system(s) - see
 that community to the subtree rooted at the given OID, or named view.
 Contexts are typically less relevant to community-based SNMP versions,
 but the same behaviour applies here.
-.IP "rocommunity6 COMMUNITY [SOURCE [OID | \-V VIEW [CONTEXT]]]"
-.IP "rwcommunity6 COMMUNITY [SOURCE [OID | \-V VIEW [CONTEXT]]]"
+.IP "rocommunity6 COMMUNITY [SOURCE [OID | -V VIEW [CONTEXT]]]"
+.IP "rwcommunity6 COMMUNITY [SOURCE [OID | -V VIEW [CONTEXT]]]"
 are directives relating to requests received using IPv6
 (if the agent supports such transport domains).
 The interpretation of the SOURCE, OID, VIEW and CONTEXT tokens are exactly
@@ -381,10 +229,10 @@ the same level of access, it would also be more efficient to use the main VACM
 configuration directives.
 .SS VACM Configuration
 The full flexibility of the VACM is available using four configuration
-directives \- \fIcom2sec\fR, \fIgroup\fR, \fIview\fR and \fIaccess\fR.
+directives - \fIcom2sec\fR, \fIgroup\fR, \fIview\fR and \fIaccess\fR.
 These provide direct configuration of the underlying VACM tables.
-.IP "com2sec  [\-Cn CONTEXT] SECNAME SOURCE COMMUNITY"
-.IP "com2sec6 [\-Cn CONTEXT] SECNAME SOURCE COMMUNITY"
+.IP "com2sec  [-Cn CONTEXT] SECNAME SOURCE COMMUNITY"
+.IP "com2sec6 [-Cn CONTEXT] SECNAME SOURCE COMMUNITY"
 map an SNMPv1 or SNMPv2c community string to a security name - either from
 a particular range of source addresses, or globally (\fI"default"\fR).
 A restricted source can either be a specific hostname (or address), or
@@ -396,12 +244,12 @@ The same community string can be specified in several separate directives
 combination that matches the incoming request will be selected.
 Various source/community combinations can also map to the same security name.
 .IP
-If a CONTEXT is specified (using \fI\-Cn\fR), the community string will be
+If a CONTEXT is specified (using \fI-Cn\fR), the community string will be
 mapped to a security name in the named SNMPv3 context. Otherwise the
 default context ("") will be used.
-.IP "com2secunix [\-Cn CONTEXT] SECNAME SOCKPATH COMMUNITY"
+.IP "com2secunix [-Cn CONTEXT] SECNAME SOCKPATH COMMUNITY"
 is the Unix domain sockets version of \fIcom2sec\fR.
-.IP "group GROUP {v1|v2c|usm|tsm|ksm} SECNAME"
+.IP "group GROUP {v1|v2c|usm} SECNAME"
 maps a security name (in the specified security model) into
 a named group.  Several \fIgroup\fR directives can specify the
 same group name, allowing a single access setting to apply to several 
@@ -446,7 +294,7 @@ value, but skipping the column subidentifier:
 .IP
 Note that a mask longer than 8 bits must use ':' to separate the individual
 octets.
-.IP "access GROUP CONTEXT {any|v1|v2c|usm|tsm|ksm} LEVEL PREFX READ WRITE NOTIFY"
+.IP "access GROUP CONTEXT {any|v1|v2c|usm} LEVEL PREFX READ WRITE NOTIFY"
 maps from a group of users/communities (with a particular security model
 and minimum security level, and in a specific context) to one of three views,
 depending on the request being processed.
@@ -465,7 +313,7 @@ configure various different view types.  As far as the main SNMP agent is
 concerned, the two main view types are \fIread\fR and \fIwrite\fR,
 corresponding to the READ and WRITE views of the main \fIaccess\fR directive.
 See the 'snmptrapd.conf(5)' man page for discussion of other view types.
-.IP "authcommunity TYPES  COMMUNITY   [SOURCE [OID | \-V VIEW [CONTEXT]]]"
+.IP "authcommunity TYPES  COMMUNITY   [SOURCE [OID | -V VIEW [CONTEXT]]]"
 is an alternative to the \fIrocommunity\fR/\fIrwcommunity\fR directives.
 TYPES will usually be \fIread\fR or \fIread,write\fR respectively.
 The view specification can either be an OID subtree (as before),
@@ -474,20 +322,20 @@ or a named view (defined using the
 then access will be allowed to the full OID tree.
 If CONTEXT is specified, access is configured within this SNMPv3 context.
 Otherwise the default context ("") is used.
-.IP "authuser   TYPES [\-s MODEL] USER  [LEVEL [OID | \-V VIEW [CONTEXT]]]"
+.IP "authuser   TYPES [-s MODEL] USER  [LEVEL [OID | -V VIEW [CONTEXT]]]"
 is an alternative to the \fIrouser\fR/\fIrwuser\fR directives.
 The fields TYPES, OID, VIEW and CONTEXT have the same meaning as for
 \fIauthcommunity\fR.
-.IP "authgroup  TYPES [\-s MODEL] GROUP [LEVEL [OID | \-V VIEW [CONTEXT]]]"
+.IP "authgroup  TYPES [-s MODEL] GROUP [LEVEL [OID | -V VIEW [CONTEXT]]]"
 is a companion to the \fIauthuser\fR directive, specifying access
 for a particular group (defined using the \fIgroup\fR directive as usual).
 Both \fIauthuser\fR and \fIauthgroup\fR default to authenticated requests -
 LEVEL can also be specified as \fInoauth\fR or \fIpriv\fR to allow
 unauthenticated requests, or require encryption respectively.
 Both \fIauthuser\fR and \fIauthgroup\fR directives also default to configuring
-access for SNMPv3/USM requests - use the '\-s' flag to specify an alternative
+access for SNMPv3/USM requests - use the '-s' flag to specify an alternative
 security model (using the same values as for \fIaccess\fR above).
-.IP "authaccess TYPES [\-s MODEL] GROUP VIEW [LEVEL [CONTEXT]]"
+.IP "authaccess TYPES [-s MODEL] GROUP VIEW [LEVEL [CONTEXT]]"
 also configures the access for a particular group,
 specifying the name and type of view to apply. The MODEL and LEVEL fields
 are interpreted in the same way as for \fIauthgroup\fR.
@@ -513,7 +361,7 @@ in this way:
 .IP "sysName STRING"
 set the system location, system contact or system name
 (\fCsysLocation.0\fR, \fCsysContact.0\fR and \fCsysName.0\fR) for the agent respectively.
-Ordinarily these objects are writable via suitably authorized SNMP SET
+Ordinarily these objects are writeable via suitably authorized SNMP SET
 requests.  However, specifying one of these directives makes the
 corresponding object read-only, and attempts to SET it will result in
 a \fInotWritable\fR error response.
@@ -531,20 +379,8 @@ used by a network administrator to configure suitable values for them.
 .IP "interface NAME TYPE SPEED"
 can be used to provide appropriate type and speed settings for
 interfaces where the agent fails to determine this information correctly.
-TYPE is a type value as given in the IANAifType\-MIB,
+TYPE is a type value as given in the IANAifType-MIB,
 and can be specified numerically or by name (assuming this MIB is loaded).
-.IP "interface_fadeout TIMEOUT"
-specifies, for how long the agent keeps entries in \fCifTable\fR after
-appropriate interfaces have been removed from system (typically various ppp,
-tap or tun interfaces). Timeout value is in seconds. Default value is 300
-(=5 minutes).
-.IP "interface_replace_old yes"
-can be used to remove already existing entries in \fCifTable\fR when an
-interface with the same name appears on the system. E.g. when ppp0 interface
-is removed, it is still listed in the table for \fIinterface_fadeout\fR
-seconds. This option ensures, that the old ppp0 interface is removed even
-before the \fIinterface_fadeout\fR timeour when new ppp0 (with different
-\fCifIndex\fR) shows up.
 .SS Host Resources Group
 This requires that the agent was built with support for the
 \fIhost\fR module (which is now included as part of the default build 
@@ -583,33 +419,14 @@ as 'Network Disks' (1) or 'Fixed Disks' (2)
 Historically, the Net-SNMP agent has reported such file systems
 as 'Fixed Disks', and this is still the default behaviour.
 Setting this directive to '1' reports such file systems as
-\'Network Disks', as required by the Host Resources MIB.
-.IP "realStorageUnits"
-controlls how the agent reports hrStorageAllocationUnits, hrStorageSize and
-hrStorageUsed in hrStorageTable.
-For big storage drives with small allocation units the agent re-calculates
-these values so they all fit Integer32 and
-hrStorageAllocationUnits x hrStorageSize
-gives real size of the storage.
-.RS
-.IP "Example:"
-Linux xfs 16TB filesystem with 4096 bytes large blocks will be
-reported as  hrStorageAllocationUnits = 8192 and hrStorageSize = 2147483647,
-so 8192 x 2147483647 gives real size of the filesystem (=16 TB).
-.RE
-.IP
-Setting this directive to '1' turns off
-this calculation and the agent reports real hrStorageAllocationUnits, but it
-might report wrong hrStorageSize for big drives because the value won't fit into
-Integer32. In this case, hrStorageAllocationUnits x hrStorageSize won't give
-real size of the storage.
+'Network Disks', as required by the Host Resources MIB.
 .SS Process Monitoring 
 The \fChrSWRun\fR group of the Host Resources MIB provides
 information about individual processes running on the local system.
-The \fCprTable\fR of the UCD\-SNMP\-MIB complements this by reporting
+The \fCprTable\fR of the UCD-SNMP-MIB complements this by reporting
 on selected services (which may involve multiple processes).
 This requires that the agent was built with support for the
-\fIucd\-snmp/proc\fR module (which is included as part of the
+\fIucd-snmp/proc\fR module (which is included as part of the
 default build configuration).
 .IP "proc NAME [MAX [MIN]]"
 monitors the number of processes called NAME (as reported by PSCMD)
@@ -625,12 +442,9 @@ This situation will \fBnot\fR automatically trigger a trap to report
 the problem - see the DisMan Event MIB section later.
 .RE
 .IP
-If neither MAX nor MIN are specified, they will
+If neither MAX nor MIN are specified (or are both 0), 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
@@ -648,7 +462,7 @@ If no \fIproc\fR directives are defined, then walking the
 \fCprTable\fR will fail (\fInoSuchObject\fI).
 .SS Disk Usage Monitoring
 This requires that the agent was built with support for the
-\fIucd\-snmp/disk\fR module (which is included as part of the
+\fIucd-snmp/disk\fR module (which is included as part of the
 default build configuration).
 .IP "disk PATH [ MINSPACE | MINPERCENT% ]"
 monitors the disk mounted at PATH for available disk space.
@@ -692,31 +506,9 @@ Disks mounted after the agent has started will not be monitored.
 .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
+\fIucd-snmp/loadave\fR module or the \fIucd-snmp/memory\fR module
 respectively (both of which are included as part of the
 default build configuration).
 .IP "load MAX1 [MAX5 [MAX15]]"
@@ -743,7 +535,7 @@ regardless of the current load.
 .PP
 Unlike the \fIproc\fR and \fIdisk\fR directives, walking the
 walking the \fClaTable\fR will succeed (assuming the
-\fIucd\-snmp/loadave\fR module was configured into the agent),
+\fIucd-snmp/loadave\fR module was configured into the agent),
 even if the \fIload\fR directive is not present.
 .IP "swap MIN "
 monitors the amount of swap space available on the local system.
@@ -758,7 +550,7 @@ the problem - see the DisMan Event MIB section later.
 If this directive is not specified, the default threshold is 16 MB.
 .SS Log File Monitoring
 This requires that the agent was built with support for either the
-\fIucd\-snmp/file\fR or \fIucd\-snmp/logmatch\fR modules respectively
+\fIucd-snmp/file\fR or \fIucd-snmp/logmatch\fR modules respectively
 (both of which are included as part of the
 default build configuration).
 .IP "file FILE [MAXSIZE]"
@@ -785,7 +577,7 @@ added to the file since the last read.
 .RS
 .IP NAME
 name of the logmatch instance (will appear as logMatchName under
-logMatch/logMatchTable/logMatchEntry/logMatchName in the ucd\-snmp MIB tree)
+logMatch/logMatchTable/logMatchEntry/logMatchName in the ucd-snmp MIB tree)
 .IP FILE
 absolute path to the logfile to be monitored. Note that this path
 can contain date/time directives (like in the UNIX 'date' command). See the
@@ -803,12 +595,12 @@ become part of the pattern to be matched!
 Example:
 .RS
 .IP
-logmatch apache\-GETs /usr/local/apache/logs/access.log\-%Y\-%m\-%d 60 GET.*HTTP.*
+logmatch apache-GETs /usr/local/apache/logs/access.log-%Y-%m-%d 60 GET.*HTTP.*
 .IP
-This logmatch instance is named 'apache\-GETs', uses 'GET.*HTTP.*' as its
+This logmatch instance is named 'apache-GETs', uses 'GET.*HTTP.*' as its
 regular expression and it will monitor the file named
-(assuming today is May 6th 2009): '/usr/local/apache/logs/access.log\-2009\-05\-06',
-tomorrow it will look for 'access.log\-2009\-05\-07'. The logfile is read every 60
+(assuming today is May 6th 2009): '/usr/local/apache/logs/access.log-2009-05-06',
+tomorrow it will look for 'access.log-2009-05-07'. The logfile is read every 60
 seconds.
 .RE
 .IP
@@ -863,12 +655,12 @@ provides a more generic mechanism for defining notification destinations.
 .I "SNMPCMD_ARGS"
 should be the command-line options required for an equivalent
 \fIsnmptrap\fR (or \fIsnmpinform\fR) command to send the desired notification.
-The option \fI\-Ci\fR can be used (with \fI\-v2c\fR or \fI\-v3\fR) to generate
+The option \fI-Ci\fR can be used (with \fI-v2c\fR or \fI-v3\fR) to generate
 an INFORM notification rather than an unacknowledged TRAP.
 .IP
 This is the appropriate directive for defining SNMPv3 trap receivers.
 See
-http://www.net\-snmp.org/tutorial/tutorial\-5/commands/snmptrap\-v3.html
+http://www.net-snmp.org/tutorial/tutorial-5/commands/snmptrap-v3.html
 for more information about SNMPv3 notification behaviour.
 .IP "authtrapenable {1|2}"
 determines whether to generate authentication failure traps
@@ -877,12 +669,6 @@ Ordinarily the corresponding MIB
 object (\fCsnmpEnableAuthenTraps.0\fR) is read-write, but specifying
 this directive makes this object read-only, and attempts to set the
 value via SET requests will result in a \fInotWritable\fR error response.
-.RE
-.IP "v1trapaddress HOST"
-defines the agent address, which is inserted into SNMPv1 TRAPs. Arbitrary local 
-IPv4 address is chosen if this option is ommited. This option is useful mainly 
-when the agent is visible from outside world by specific address only (e.g. 
-because of network address translation or firewall).
 .SS "DisMan Event MIB"
 The previous directives can be used to configure where traps should
 be sent, but are not concerned with \fIwhen\fR to send such traps
@@ -970,49 +756,47 @@ differences between successive sample values.
 There are various options to control the behaviour of the monitored
 expression.  These include:
 .RS
-.IP "\-D"
+.IP "-D"
 indicates that the expression should be evaluated using delta differences
 between sample values (rather than the values themselves).
-.IP "\-d OID"
-.IP "\-di OID"
+.IP "-d OID"
+.IP "-di OID"
 specifies a discontinuity marker for validating delta differences.
-A \fI\-di\fR object instance will be used exactly as given.
-A \fI\-d\fR object will have the instance subidentifiers from the
+A \fI-di\fR object instance will be used exactly as given.
+A \fI-d\fR object will have the instance subidentifiers from the
 corresponding (wildcarded) expression object appended.
-If the \fI\-I\fR flag is specified, then there is no difference
+If the \fI-I\fR flag is specified, then there is no difference
 between these two options.
 .IP
-This option also implies \fI\-D\fR.
-.IP "\-e EVENT"
+This option also implies \fI-D\fR.
+.IP "-e EVENT"
 specifies the event to be invoked when this monitor entry is triggered.
 If this option is not given, the monitor entry will generate one
-of the standard notifications defined in the DISMAN\-EVENT\-MIB.
-.IP "\-I"
+of the standard notifications defined in the DISMAN-EVENT-MIB.
+.IP "-I"
 indicates that the monitored expression should be applied to the
 specified OID as a single instance.  By default, the OID will
 be treated as a wildcarded object, and the monitor expanded
 to cover all matching instances.
-.IP "\-i OID"
-.IP "\-o OID"
+.IP "-i OID"
+.IP "-o OID"
 define additional varbinds to be added to the notification payload
 when this monitor trigger fires.
 For a wildcarded expression, the suffix of the matched instance
-will be added to any OIDs specified using \fI\-o\fR, while OIDs
-specified using \fI\-i\fR will be treated as exact instances.
-If the \fI\-I\fR flag is specified, then there is no difference
+will be added to any OIDs specified using \fI-o\fR, while OIDs
+specified using \fI-i\fR will be treated as exact instances.
+If the \fI-I\fR flag is specified, then there is no difference
 between these two options.
 .IP
 See \fIstrictDisman\fR for details of the ordering of notification payloads.
-.IP "\-r FREQUENCY"
-monitors the given expression every FREQUENCY, where FREQUENCY is in
-seconds or optionally suffixed by one of s (for seconds), m (for
-minutes), h (for hours), d (for days), or w (for weeks).  By default,
-the expression will be evaluated every 600s (10 minutes).
-.IP "\-S"
+.IP "-r FREQUENCY"
+monitors the given expression every FREQUENCY seconds.
+By default, the expression will be evaluated every 600s (10 minutes). 
+.IP "-S"
 indicates that the monitor expression should \fInot\fR be evaluated
 when the agent first starts up.  The first evaluation will be done
 once the first repeat interval has expired.
-.IP "\-s"
+.IP "-s"
 indicates that the monitor expression \fIshould\fR be evaluated when the
 agent first starts up.  This is the default behaviour.
 .RS
@@ -1020,20 +804,20 @@ agent first starts up.  This is the default behaviour.
 Notifications triggered by this initial evaluation will be sent
 \fIbefore\fR the \fCcoldStart\fR trap.
 .RE
-.IP "\-u SECNAME"
+.IP "-u SECNAME"
 specifies a security name to use for scanning the local host,
 instead of the default \fIiquerySecName\fR.
 Once again, this user must be explicitly created and given
 suitable access rights.
 .RE
-.IP "notificationEvent ENAME NOTIFICATION [\-m] [\-i OID | \-o OID ]*"
+.IP "notificationEvent ENAME NOTIFICATION [-m] [-i OID | -o OID ]*"
 defines a notification event named ENAME.
 This can be triggered from a given \fImonitor\fR entry by specifying
-the option \fI\-e ENAME\fR (see above).
-NOTIFICATION should be the OID of the NOTIFICATION\-TYPE definition
+the option \fI-e ENAME\fR (see above).
+NOTIFICATION should be the OID of the NOTIFICATION-TYPE definition
 for the notification to be generated.
 .IP
-If the \fI\-m\fR option is given, the notification payload will
+If the \fI-m\fR option is given, the notification payload will
 include the standard varbinds as specified in the OBJECTS clause
 of the notification MIB definition.
 This option must come \fBafter\fR the NOTIFICATION OID
@@ -1042,25 +826,25 @@ Otherwise, these varbinds must
 be listed explicitly (either here or in the corresponding
 \fImonitor\fR directive).
 .IP
-The \fI\-i OID\fR and \fI\-o OID\fR options specify additional
+The \fI-i OID\fR and \fI-o OID\fR options specify additional
 varbinds to be appended to the notification payload, after the
 standard list.
 If the monitor entry that triggered this event involved a
 wildcarded expression, the suffix of the matched instance
-will be added to any OIDs specified using \fI\-o\fR, while OIDs
-specified using \fI\-i\fR will be treated as exact instances.
-If the \fI\-I\fR flag was specified to the \fImonitor\fR directive,
+will be added to any OIDs specified using \fI-o\fR, while OIDs
+specified using \fI-i\fR will be treated as exact instances.
+If the \fI-I\fR flag was specified to the \fImonitor\fR directive,
 then there is no difference between these two options.
-.IP "setEvent ENAME [\-I] OID = VALUE "
+.IP "setEvent ENAME [-I] OID = VALUE "
 defines a set event named ENAME, assigning the (integer) VALUE
 to the specified OID.
 This can be triggered from a given \fImonitor\fR entry by specifying
-the option \fI\-e ENAME\fR (see above).
+the option \fI-e ENAME\fR (see above).
 .IP
 If the monitor entry that triggered this event involved a
 wildcarded expression, the suffix of the matched instance
 will normally be added to the OID.
-If the \fI\-I\fR flag was specified to either of the
+If the \fI-I\fR flag was specified to either of the
 \fImonitor\fR or \fIsetEvent\fR directives, the
 specified OID will be regarded as an exact single instance.
 .IP "strictDisman yes"
@@ -1081,8 +865,8 @@ restore this strictly-correct (but inappropriate) behaviour.
 .RS
 .IP "Note:"
 Strict DisMan ordering may result in generating invalid notifications
-payload lists if the \fInotificationEvent \-n\fR flag is used together
-with \fImonitor \-o\fR (or \fI\-i\fR) varbind options.
+payload lists if the \fInotificationEvent -n\fR flag is used together
+with \fImonitor -o\fR (or \fI-i\fR) varbind options.
 .RE
 .IP
 If no \fImonitor\fR entries specify payload varbinds,
@@ -1099,25 +883,25 @@ This is exactly equivalent to the configuration:
 notificationEvent  linkUpTrap    linkUp   ifIndex ifAdminStatus ifOperStatus
 notificationEvent  linkDownTrap  linkDown ifIndex ifAdminStatus ifOperStatus
 
-monitor  \-r 60 \-e linkUpTrap   "Generate linkUp" ifOperStatus != 2
-monitor  \-r 60 \-e linkDownTrap "Generate linkDown" ifOperStatus == 2
+monitor  -r 60 -e linkUpTrap   "Generate linkUp" ifOperStatus != 2
+monitor  -r 60 -e linkDownTrap "Generate linkDown" ifOperStatus == 2
 .fi
 .RE
 .IP "defaultMonitors yes"
 will configure the Event MIB tables to monitor the various
-\fCUCD\-SNMP\-MIB\fR tables for problems (as indicated by
+\fCUCD-SNMP-MIB\fR tables for problems (as indicated by
 the appropriate \fCxxErrFlag\fR column objects).
 .IP
 This is exactly equivalent to the configuration:
 .RS
 .IP
 .nf
-monitor	\-o prNames \-o prErrMessage "process table" prErrorFlag != 0
-monitor	\-o memErrorName \-o memSwapErrorMsg "memory" memSwapError != 0
-monitor	\-o extNames \-o extOutput "extTable" extResult != 0
-monitor	\-o dskPath \-o dskErrorMsg "dskTable" dskErrorFlag != 0
-monitor	\-o laNames \-o laErrMessage  "laTable" laErrorFlag != 0
-monitor	\-o fileName \-o fileErrorMsg  "fileTable" fileErrorFlag != 0
+monitor	-o prNames -o prErrMessage "process table" prErrorFlag != 0
+monitor	-o memErrorName -o memSwapErrorMsg "memory" memSwapError != 0
+monitor	-o extNames -o extOutput "extTable" extResult != 0
+monitor	-o dskPath -o dskErrorMsg "dskTable" dskErrorFlag != 0
+monitor	-o laNames -o laErrMessage  "laTable" laErrorFlag != 0
+monitor	-o fileName -o fileErrorMsg  "fileTable" fileErrorFlag != 0
 .fi
 .RE
 .PP
@@ -1134,9 +918,7 @@ default build configuration for the most recent distribution).
 There are three ways of specifying the scheduled action:
 .IP "repeat FREQUENCY OID = VALUE"
 configures a SET assignment of the (integer) VALUE to the MIB instance
-OID, to be run every FREQUENCY seconds, where FREQUENCY is in
-seconds or optionally suffixed by one of s (for seconds), m (for
-minutes), h (for hours), d (for days), or w (for weeks).
+OID, to be run every FREQUENCY seconds.
 .IP "cron MINUTE HOUR DAY MONTH WEEKDAY  OID = VALUE"
 configures a SET assignment of the (integer) VALUE to the MIB instance
 OID, to be run at the times specified by the fields MINUTE to WEEKDAY.
@@ -1154,70 +936,6 @@ backwards from the end of the month.
 configures a one-shot SET assignment, to be run at the first matching
 time as specified by the fields MINUTE to WEEKDAY.  The interpretation
 of these fields is exactly the same as for the \fIcron\fR directive.
-.SS "Data Delivery via Notfiications"
-Note: this functionality is only available if the
-\fIdeliver/deliverByNotify\fR mib module was complied in to the agent
-.PP
-In some situations it may be advantageous to deliver SNMP data over
-SNMP Notifications (TRAPs and INFORMs) rather than the typical process
-of having the manager issue requests for the data (via GETs and
-GETNEXTs).  Reasons for doing this are numerous, but frequently corner
-cases.  The most common reason for wanting this behaviour might be to
-monitor devices that reside behind NATs or Firewalls that prevent
-incoming SNMP traffic.
-.PP
-It should be noted that although most management software is capable
-of logging notifications, very little (if any) management software
-will updated their "knowledge database" based on the contents of SNMP
-notifications.  IE, it won't (for example) update the interface
-traffic counter history that is used to produce graphs.  Most larger
-network management packages have a separate database for storing data
-received via SNMP requests (GETs and GETNEXTs) vs those received from
-notifications.  Researching the capabilities of your management
-station software is required before assuming this functionality will
-solve your data delivery requirements.
-.PP
-Notifications generated via this mechanism will be sent to the
-standard set of configured notification targets.  See the
-"Notification Handling" section of this document for further
-information.
-.IP "deliverByNotify [\-p] [\-m] [\-s MAXSIZE] FREQUENCY OID"
-This directive tells the SNMP agent to self-walk the \fIOID\fR,
-collect all the data and send it out every \fIFREQUENCY\fR seconds,
-where FREQUENCY is in seconds or optionally suffixed by one of s (for
-seconds), m (for minutes), h (for hours), d (for days), or w (for
-weeks).  By default scalars are included in the notification that
-specify the how often the notification will be sent (unless the
-\fI\-p\fR option is specified) and which message number of how many
-messages a particular notification is (unless \fI\-m\fR is specified).
-To break the notifications into manageable packet sizes, use the
-\fI\-s\fR flag to specify the approximate maximum number of bytes that
-a notification message should be limited to.  If more than
-\fIMAXSIZE\fR of bytes is needed then multiple notifications will be
-sent to deliver the data.  Note that the calculations for ensuring the
-maximum size is met are approximations and thus it can be absolutely
-guaranteed they'll be under that size, so leave a padding buffer if it
-is critical that you avoid fragmentation.  A value of \-1 indicates
-force everything into a single message no matter how big it is.
-.IP
-Example usage: the following will deliver the contents of the ifTable
-once an hour and the contents of the system group once every 2 hours:
-.RS
-.nf
-
-deliverByNotify 3600 ifTable
-deliverByNotify 7200 system
-.fi
-.RE
-.IP "deliverByNotifyMaxPacketSize SIZEINBYTES"
-Sets the default notification size limit (see the \fI\-s\fR flag above).
-.IP "deliverByNotifyOid OID"
-.IP "deliverByNotifyFrequencyOid OID"
-.IP "deliverByNotifyMessageNumberOid OID"
-.IP "deliverByNotifyMaxMessageNumberOid OID"
-These set the data OID that the notification will be sent under, the
-scalar OID, the message number OID, and the maximum message number
-OID.  These default to objects in the NET\-SNMP\-PERIODIC\-NOTIFY\-MIB.
 .SH "EXTENDING AGENT FUNCTIONALITY"
 One of the first distinguishing features of the original UCD suite was
 the ability to extend the functionality of the agent - not just by
@@ -1236,7 +954,7 @@ commands or shell scripts. Such commands do not need to be aware of
 SNMP operations, or conform to any particular behaviour - the MIB
 structures are designed to accommodate any form of command output.
 Use of this mechanism requires that the agent was built with support for the
-\fIucd\-snmp/extensible\fR and/or \fIagent/extend\fR modules (which
+\fIucd-snmp/extensible\fR and/or \fIagent/extend\fR modules (which
 are both included as part of the default build configuration).
 .IP "exec [MIBOID] NAME PROG ARGS"
 .IP "sh [MIBOID] NAME PROG ARGS"
@@ -1310,7 +1028,7 @@ this directive does not need to be paired with a corresponding
 \fIextend\fR entry, and can appear on its own.
 .PP
 Both \fIextend\fR and \fIextendfix\fR directives can be configured
-dynamically, using SNMP SET requests to the NET\-SNMP\-EXTEND\-MIB.
+dynamically, using SNMP SET requests to the NET-SNMP-EXTEND-MIB.
 .SS "MIB-Specific Extension Commands"
 The first group of extension directives invoke arbitrary commands,
 and rely on the MIB structure (and management applications) having
@@ -1321,17 +1039,17 @@ must conform to the structure of the MIB (rather than vice versa).
 The remaining extension mechanisms are all concerned with such
 MIB-specific situations - starting with "pass-through" scripts.
 Use of this mechanism requires that the agent was built with support for the
-\fIucd\-snmp/pass\fR and \fIucd\-snmp/pass_persist\fR modules (which
+\fIucd-snmp/pass\fR and \fIucd-snmp/pass_persist\fR modules (which
 are both included as part of the default build configuration).
-.IP "pass [\-p priority] MIBOID PROG"
+.IP "pass [-p priority] MIBOID PROG"
 will pass control of the subtree rooted at MIBOID to the specified
 PROG command.  GET and GETNEXT requests for OIDs within this tree will
 trigger this command, called as:
 .RS
 .IP
-PROG \-g OID
+PROG -g OID
 .IP
-PROG \-n OID
+PROG -n OID
 .RE
 .IP
 respectively, where OID is the requested OID.
@@ -1359,7 +1077,7 @@ and SNMPv2 \fInoSuchObject\fR exception are not supported.
 A SET request will result in the command being called as:
 .RS
 .IP
-PROG \-s OID TYPE VALUE
+PROG -s OID TYPE VALUE
 .RE
 .IP
 where TYPE is one of the tokens listed above, indicating the type of the
@@ -1393,9 +1111,9 @@ Each request (and each varbind within a single request) will trigger
 a separate invocation of the command.
 .IP
 The default registration priority is 127.  This can be
-changed by supplying the optional \-p flag, with lower priority
+changed by supplying the optional -p flag, with lower priority
 registrations being used in preference to higher priority values.
-.IP "pass_persist [\-p priority] MIBOID PROG"
+.IP "pass_persist [-p priority] MIBOID PROG"
 will also pass control of the subtree rooted at MIBOID to the specified
 PROG command.  However this command will continue to run after the initial
 request has been answered, so subsequent requests can be processed without
@@ -1418,18 +1136,18 @@ followed by the type and value (both on the same line).
 If the assignment is successful, the command should print
 "DONE\\n" to stdout.
 Errors should be indicated by writing one of the strings
-.B not\-writable, 
-.B wrong\-type,
-.B wrong\-length,
-.B wrong\-value
+.B not-writable, 
+.B wrong-type,
+.B wrong-length,
+.B wrong-value
 or
-.B inconsistent\-value
+.B inconsistent-value
 to stdout,
 and the agent will generate the appropriate error response.
 In either case, the command should continue running.
 .IP
 The registration priority can be changed using the optional
-\-p flag, just as for the \fIpass\fR directive.
+-p flag, just as for the \fIpass\fR directive.
 .PP
 \fIpass\fR and \fIpass_persist\fR extensions can only be configured via the
 snmpd.conf file.  They cannot be set up via SNMP SET requests.
@@ -1447,7 +1165,7 @@ spawning processes and initializing the perl system when a request is received.
 .PP
 Use of this mechanism requires that the agent was built with support for the embedded
 perl mechanism, which is not part of the default build environment. It
-must be explicitly included by specifying the '\-\-enable\-embedded\-perl'
+must be explicitly included by specifying the '--enable-embedded-perl'
 option to the configure script when the package is first built.
 .PP
 If enabled, the following directives will be recognised:
@@ -1472,7 +1190,7 @@ requested:
 .nf
 \fCperl use Data::Dumper;
 perl sub myroutine  { print "got called: ",Dumper(@_),"\\n"; }
-perl $agent\->register('mylink', '.1.3.6.1.8765', \\&myroutine);\fR
+perl $agent->register('mylink', '.1.3.6.1.8765', \\&myroutine);\fR
 .fi
 .RE
 .RE
@@ -1494,7 +1212,7 @@ C code modules, which were compiled and linked into the agent libraries
 when the suite was first built.  Such implementation modules can also be
 compiled independently and loaded into the running agent once it has
 started.  Use of this mechanism requires that the agent was built with support for the
-\fIucd\-snmp/dlmod\fR module (which is included as part of the default
+\fIucd-snmp/dlmod\fR module (which is included as part of the default
 build configuration).
 .IP "dlmod NAME PATH"
 will load the shared object module from the file PATH (an absolute
@@ -1507,7 +1225,7 @@ will be appended to the filename.
 .RE
 .PP
 This functionality can also be configured using SNMP SET requests
-to the UCD\-DLMOD\-MIB.
+to the UCD-DLMOD-MIB.
 .SS "Proxy Support"
 Another mechanism for extending the functionality of the agent
 is to pass selected requests (or selected varbinds) to another
@@ -1516,9 +1234,9 @@ listening on a different port), or on a remote system.
 This can be viewed either as the main agent delegating requests to
 the remote one, or acting as a proxy for it.
 Use of this mechanism requires that the agent was built with support for the
-\fIucd\-snmp/proxy\fR module (which is included as part of the
+\fIucd-snmp/proxy\fR module (which is included as part of the
 default build configuration).
-.IP "proxy [\-Cn CONTEXTNAME] [SNMPCMD_ARGS] HOST OID [REMOTEOID]"
+.IP "proxy [-Cn CONTEXTNAME] [SNMPCMD_ARGS] HOST OID [REMOTEOID]"
 will pass any incoming requests under OID to the agent listening
 on the port specified by the transport address HOST.
 See the section 
@@ -1557,7 +1275,7 @@ The Net-SNMP agent supports the SMUX protocol (RFC 1227) to communicate
 with SMUX-based subagents (such as \fIgated\fR, \fIzebra\fR or \fIquagga\fR).
 Use of this mechanism requires that the agent was built with support for the
 \fIsmux\fR module, which is not part of the default build environment, and
-must be explicitly included by specifying the '\-\-with\-mib\-modules=smux'
+must be explicitly included by specifying the '--with-mib-modules=smux'
 option to the configure script when the package is first built.
 .RS
 .IP "Note:"
@@ -1584,7 +1302,7 @@ A suitable entry for an OSPF routing daemon (such as \fIgated\fR,
 .IP "smuxsocket <IPv4-address>"
 defines the IPv4 address for SMUX peers to communicate with the Net-SNMP agent.
 The default is to listen on all IPv4 interfaces ("0.0.0.0"), unless the 
-package has been configured with "\-\-enable\-local\-smux" at build time, which 
+package has been configured with "--enable-local-smux" at build time, which 
 causes it to only listen on 127.0.0.1 by default. SMUX uses the well-known
 TCP port 199.
 .PP
@@ -1603,7 +1321,7 @@ an AgentX master agent:
 .IP "master agentx"
 will enable the AgentX functionality and cause the agent to
 start listening for incoming AgentX registrations.
-This can also be activated by specifying the '\-x' command-line
+This can also be activated by specifying the '-x' command-line
 option (to specify an alternative listening socket).
 .IP "agentXPerms SOCKPERMS [DIRPERMS [USER|UID [GROUP|GID]]]"
 Defines the permissions and ownership of the AgentX Unix Domain socket,
@@ -1634,13 +1352,11 @@ manual page for more information about the format of addresses.
 .RS
 .IP "Note:"
 Specifying an AgentX socket does \fBnot\fR automatically enable
-AgentX functionality (unlike the '\-x' command-line option).
+AgentX functionality (unlike the '-x' command-line option).
 .RE
 .IP "agentXTimeout NUM"
 defines the timeout period (NUM seconds) for an AgentX request.
-Default is 1 second.  NUM also be specified with a suffix of one of s
-(for seconds), m (for minutes), h (for hours), d (for days), or w (for
-weeks).
+Default is 1 second.
 .IP "agentXRetries NUM"
 defines the number of retries for an AgentX request.
 Default is 5 retries.
@@ -1648,9 +1364,9 @@ Default is 5 retries.
 net-snmp ships with both C and Perl APIs to develop your own AgentX
 subagent.
 .SH "OTHER CONFIGURATION"
-.IP "override [\-rw] OID TYPE VALUE"
+.IP "override [-rw] OID TYPE VALUE"
 This directive allows you to override a particular OID with a
-different value (and possibly a different type of value).  The \-rw
+different value (and possibly a different type of value).  The -rw
 flag will allow snmp SETs to modify it's value as well. (note that if
 you're overriding original functionality, that functionality will be
 entirely lost.  Thus SETS will do nothing more than modify the
@@ -1682,16 +1398,13 @@ More types should be available in the future.
 If you're trying to figure out aspects of the various mib modules
 (possibly some that you've added yourself), the following may help you
 spit out some useful debugging information.  First off, please read
-the snmpd manual page on the \-D flag.  Then the following
-configuration snmpd.conf token, combined with the \-D flag, can produce
+the snmpd manual page on the -D flag.  Then the following
+configuration snmpd.conf token, combined with the -D flag, can produce
 useful output:
-.IP "injectHandler HANDLER modulename [beforeThis]"
+.IP "injectHandler HANDLER modulename"
 This will insert new handlers into the section of the mib tree
-referenced by "modulename".  If "beforeThis" is specified then the
-module will be injected before the named module.  This is useful for
-getting a handler into the exact right position in the chain.
-.IP
-The types of handlers available for insertion are:
+referenced by "modulename".  The types of handlers available for
+insertion are:
 .RS
 .IP stash_cache
 Caches information returned from the lower level.  This
@@ -1705,14 +1418,14 @@ support, which is only a few mib tables.  To use it,
 you need to make sure to install it before the
 table_iterator point in the chain, so to do this:
 
-  \fCinjectHandler stash_cache NAME table_iterator\fR
+                  \fCinjectHandler stash_cache NAME table_iterator\fR
 
 If you want a table to play with, try walking the
 \fCnsModuleTable\fR with and without this injected.
 
 .IP debug
 Prints out lots of debugging information when
-the \-Dhelper:debug flag is passed to the snmpd
+the -Dhelper:debug flag is passed to the snmpd
 application.
 
 .IP read_only
@@ -1747,8 +1460,8 @@ a list of all named modules registered within the agent.
 .IP o
 The Net-SNMP agent can be instructed to re-read the various configuration files,
 either via an \fBsnmpset\fR assignment of integer(1) to
-\fCUCD\-SNMP\-MIB::versionUpdateConfig.0\fR (.1.3.6.1.4.1.2021.100.11.0),
-or by sending a \fBkill \-HUP\fR signal to the agent process.
+\fCUCD-SNMP-MIB::versionUpdateConfig.0\fR (.1.3.6.1.4.1.2021.100.11.0),
+or by sending a \fBkill -HUP\fR signal to the agent process.
 .IP o
 All directives listed with a value of "yes" actually accept a range
 of boolean values.  These will accept any of \fI1\fR, \fIyes\fR or
@@ -1763,7 +1476,7 @@ examples.
 .SH "FILES"
 SYSCONFDIR/snmp/snmpd.conf
 .SH "SEE ALSO"
-snmpconf(1), snmpusm(1), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, netsnmp_config_api(3).
+snmpconf(1), snmpusm(1), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, read_config(3).
 .\" Local Variables:
 .\"  mode: nroff
 .\" End:
diff --git a/man/snmpd.examples.5.def b/man/snmpd.examples.5.def
index b4125d6..71cbd70 100644
--- a/man/snmpd.examples.5.def
+++ b/man/snmpd.examples.5.def
@@ -1,4 +1,5 @@
-.TH SNMPD.EXAMPLES 5 "13 Oct 2006" VVERSIONINFO "Net-SNMP"
+.TH SNMPD.EXAMPLES 5 "05 Dec 2005" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpd.examples - example configuration for the Net-SNMP agent
 .SH DESCRIPTION
@@ -104,7 +105,7 @@ Remember that these \fIcreateUser\fR directives should be defined in the
 PERSISTENT_DIRECTORY/snmpd.conf file, rather than the usual location.
 .RE
 .\"
-.\"  ??? Illustrate "\-e", "\-l" and "\-m" forms ??
+.\"  ??? Illustrate "-e", "-l" and "-m" forms ??
 .\"
 .SS Traditional Access Control
 The SNMPv3 users defined above can be granted access to the full
@@ -219,7 +220,7 @@ A similar configuration could also be configured as follows:
 view   sys2View included    system
 view   sys2View included    .1.3.6.1.2.1.25.1
 
-authcommunity read       public  default      \-v sys2View
+authcommunity read       public  default      -v sys2View
 authcommunity read,write private 10.10.10.0/8
 .fi
 .RE
@@ -238,12 +239,12 @@ The full contents of the 'system' group (with the exception of \fCsysUpTime\fR)
 can be explicitly configured using:
 .RS
 .nf
-\fI# Override 'uname \-a' and hardcoded system OID - inherently read-only values\fR
+\fI# Override 'uname -a' and hardcoded system OID - inherently read-only values\fR
 sysDescr     Universal Turing Machine mk I
 sysObjectID  .1.3.6.1.4.1.8072.3.2.1066
 
 \fI# Override default values from 'configure' - makes these objects read-only\fR
-sysContact   Alan.Turing at pre\-cs.man.ac.uk
+sysContact   Alan.Turing at pre-cs.man.ac.uk
 sysName      tortoise.turing.com
 sysLocation  An idea in the mind of AT
 
@@ -262,7 +263,7 @@ which prevents the device \fI/dev/rdsk/c0t2d0\fR from being scanned,
 .RS
 .nf
 ignoredisk /dev/rdsk/c0t[!6]d0
-ignoredisk /dev/rdsk/c0t[0\-57\-9a\-f]d0
+ignoredisk /dev/rdsk/c0t[0-57-9a-f]d0
 .fi
 .RE
 either of which prevents all devices \fI/dev/rdsk/c0t\fRX\fId0\fR
@@ -388,7 +389,7 @@ destination configured to actually send the resulting notifications to.
 .PP
 A more detailed monitor example is given by:
 .RS
-monitor \-u me \-o hrSWRunName "high process memory" hrSWRunPerfMem > 10000
+monitor -u me -o hrSWRunName "high process memory" hrSWRunPerfMem > 10000
 .RE
 .PP
 This defines an explicit boolean monitor entry, looking for any process
@@ -402,7 +403,7 @@ earlier) for retrieving the monitored values, and building the trap.
 Objects that could potentially fluctuate around the specified level
 are better monitored using a threshold monitor entry: 
 .RS
-monitor \-D \-r 10 "network traffic" ifInOctets 1000000 5000000
+monitor -D -r 10 "network traffic" ifInOctets 1000000 5000000
 .RE
 .PP
 This will send a \fCmteTriggerRising\fR trap whenever the incoming
@@ -410,11 +411,11 @@ traffic rises above (roughly) 500 kB/s on any network interface,
 and a corresponding \fCmteTriggerFalling\fR trap when it falls below
 100 kB/s again.
 .PP
-Note that this monitors the deltas between successive samples (\fI\-D\fR)
+Note that this monitors the deltas between successive samples (\fI-D\fR)
 rather than the actual sample values themselves.  The same effect
 could be obtained using:
 .RS
-monitor \-r 10 "network traffic" ifInOctets \- \- 1000000 5000000
+monitor -r 10 "network traffic" ifInOctets - - 1000000 5000000
 .RE
 .PP
 The \fIlinkUpDownNotifications\fR directive above is broadly
@@ -424,8 +425,8 @@ equivalent to:
 notificationEvent  linkUpTrap    linkUp   ifIndex ifAdminStatus ifOperStatus
 notificationEvent  linkDownTrap  linkDown ifIndex ifAdminStatus ifOperStatus
 
-monitor  \-r 60 \-e linkUpTrap   "Generate linkUp"   ifOperStatus != 2
-monitor  \-r 60 \-e linkDownTrap "Generate linkDown" ifOperStatus == 2
+monitor  -r 60 -e linkUpTrap   "Generate linkUp"   ifOperStatus != 2
+monitor  -r 60 -e linkDownTrap "Generate linkDown" ifOperStatus == 2
 .fi
 .RE
 .PP
@@ -437,12 +438,12 @@ The \fIdefaultMonitors\fR directive above is equivalent to a series
 of (boolean) monitor entries:
 .RS
 .nf
-monitor	\-o prNames      \-o prErrMessage  "procTable" prErrorFlag   != 0
-monitor	\-o memErrorName \-o memSwapErrorMsg "memory"  memSwapError  != 0
-monitor	\-o extNames     \-o extOutput     "extTable"  extResult     != 0
-monitor	\-o dskPath      \-o dskErrorMsg   "dskTable"  dskErrorFlag  != 0
-monitor	\-o laNames      \-o laErrMessage  "laTable"   laErrorFlag   != 0
-monitor	\-o fileName     \-o fileErrorMsg  "fileTable" fileErrorFlag != 0
+monitor	-o prNames      -o prErrMessage  "procTable" prErrorFlag   != 0
+monitor	-o memErrorName -o memSwapErrorMsg "memory"  memSwapError  != 0
+monitor	-o extNames     -o extOutput     "extTable"  extResult     != 0
+monitor	-o dskPath      -o dskErrorMsg   "dskTable"  dskErrorFlag  != 0
+monitor	-o laNames      -o laErrMessage  "laTable"   laErrorFlag   != 0
+monitor	-o fileName     -o fileErrorMsg  "fileTable" fileErrorFlag != 0
 .fi
 .RE
 and will send a trap whenever any of these entries indicate a problem.
@@ -452,7 +453,7 @@ An alternative approach would be to automatically invoke the corresponding
 .RS
 .nf
 setEvent   prFixIt  prErrFix = 1
-monitor \-e prFixIt "procTable" prErrorFlag   != 0
+monitor -e prFixIt "procTable" prErrorFlag   != 0
 .fi
 .RE
 (and similarly for any of the other \fIdefaultMonitor\fR entries).
@@ -494,12 +495,12 @@ extendfix [MIBOID] NAME PROG ARGS"
 .SS "MIB-Specific Extension Commands"
 .I One-Shot
 .RS
-"pass [\-p priority] MIBOID PROG"
+"pass [-p priority] MIBOID PROG"
 .RE
 .IP
 .I Persistent
 .RS
-"pass_persist [\-p priority] MIBOID PROG"
+"pass_persist [-p priority] MIBOID PROG"
 .RE
 .SS "Embedded Perl Support"
 If embedded perl support is enabled in the agent, the default
@@ -517,7 +518,7 @@ MIB handler could be registered using:
 .nf
 perl use Data::Dumper;
 perl sub myroutine  { print "got called: ",Dumper(@_),"\\n"; }
-perl $agent\->register('mylink', '.1.3.6.1.8765', \\&myroutine);
+perl $agent->register('mylink', '.1.3.6.1.8765', \\&myroutine);
 .fi
 .RE
 .PP
@@ -548,11 +549,11 @@ A configuration for acting as a simple proxy for two other
 SNMP agents (running on remote systems) might be:
 .RS
 .nf
-com2sec \-Cn rem1context  rem1user default  remotehost1
-com2sec \-Cn rem2context  rem2user default  remotehost2
+com2sec -Cn rem1context  rem1user default  remotehost1
+com2sec -Cn rem2context  rem2user default  remotehost2
 
-proxy \-Cn rem1context  \-v 1 -c public  remotehost1  .1.3
-proxy \-Cn rem2context  \-v 1 -c public  remotehost2  .1.3
+proxy -Cn rem1context  -v 1 -c public  remotehost1  .1.3
+proxy -Cn rem2context  -v 1 -c public  remotehost2  .1.3
 .fi
 .RE
 (plus suitable access control entries).
@@ -572,7 +573,7 @@ part of the OID tree to another agent (either on a remote host
 or listening on a different port on the same system),
 while handling the rest internally:
 .RS
-proxy \-v 1 \-c public  localhost:6161  .1.3.6.1.4.1.99
+proxy -v 1 -c public  localhost:6161  .1.3.6.1.4.1.99
 .RE
 This mechanism can be used to link together two separate SNMP agents.
 .PP
@@ -582,7 +583,7 @@ of the overall MIB tree (either locally or on a remote system):
 .nf
 \fI# uses SNMPv3 to access the MIB tree .1.3.6.1.2.1.1 on 'remotehost'
 # and maps this to the local tree .1.3.6.1.3.10\fR
-proxy \-v 3 \-l noAuthNoPriv \-u user remotehost .1.3.6.1.3.10 .1.3.6.1.2.1.1
+proxy -v 3 -l noAuthNoPriv -u user remotehost .1.3.6.1.3.10 .1.3.6.1.2.1.1
 .fi
 .RE
 .SS SMUX Sub-Agents
@@ -649,7 +650,7 @@ injectHandler stash_cache NAME table_iterator
 .SH "FILES"
 SYSCONFDIR/snmp/snmpd.conf
 .SH "SEE ALSO"
-snmpconf(1), snmpd.conf(5), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, netsnmp_config_api(3).
+snmpconf(1), snmpd.conf(5), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, read_config(3).
 .\" Local Variables:
 .\"  mode: nroff
 .\" End:
diff --git a/man/snmpd.internal.5.def b/man/snmpd.internal.5.def
index 81147c7..ec18680 100644
--- a/man/snmpd.internal.5.def
+++ b/man/snmpd.internal.5.def
@@ -1,4 +1,5 @@
-.TH SNMPD.INTERNAL 5 "06 Dec 2005" VVERSIONINFO "Net-SNMP"
+.TH SNMPD.INTERNAL 5 "08 Feb 2002" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpd.internal - internal configuration of the Net-SNMP agent
 .SH DESCRIPTION
@@ -86,7 +87,7 @@ They are deprecated, and should not be used.
 .SH "FILES"
 SYSCONFDIR/snmp/snmpd.conf
 .SH "SEE ALSO"
-snmpconf(1), snmpd.conf(5), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, netsnmp_config_api(3).
+snmpconf(1), snmpd.conf(5), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, read_config(3).
 .\" Local Variables:
 .\"  mode: nroff
 .\" End:
diff --git a/man/snmpdelta.1.def b/man/snmpdelta.1.def
index fe80b57..b308f19 100644
--- a/man/snmpdelta.1.def
+++ b/man/snmpdelta.1.def
@@ -8,11 +8,12 @@
 .\" distributed with the Net-SNMP package.
 .\" ******************************************************************/
 .TH SNMPDELTA 1 "25 Jul 2003" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpdelta \- Monitor delta differences in SNMP Counter values
 .SH SYNOPSIS
 .B snmpdelta
-[ COMMON OPTIONS ] [\-Cf] [ \-Ct ] [ \-Cs ] [ \-CS ] [ \-Cm ] [ \-CF configfile ] [ \-Cl ] [ \-Cp period ] [ \-CP Peaks ] [ \-Ck ] [ \-CT ] AGENT OID [ OID ... ]
+[ common options ] [-Cf] [ -Ct ] [ -Cs ] [ -CS ] [ -Cm ] [ -CF configfile ] [ -Cl ] [ -Cp period ] [ -CP Peaks ] [ -Ck ] [ -CT ] AGENT OID [ OID ... ]
 .SH "DESCRIPTION"
 .B snmpdelta
 will monitor the specified integer valued OIDs, and report changes
@@ -38,51 +39,51 @@ Please see
 for a list of possible values for COMMON OPTIONS
 as well as their descriptions.
 .TP
-.B \-Cf
+.B -Cf
 Don't fix errors and retry the request.
 Without this option, if multiple oids have been specified for
 a single request and if the request for one or more of the
 oids fails, snmpdelta will retry the request so that data for
 oids apart from the ones that failed will still be returned. 
-Specifying \-Cf tells
+Specifying -Cf tells
 .I  snmpdelta
 not to retry a request, even
 if there are multiple oids specified.
 .TP
-.B \-Ct
+.B -Ct
 Flag will determine time interval from the monitored entity.
 .TP
-.B \-Cs
+.B -Cs
 Flag will display a timestamp.
 .TP
-.B \-CS
+.B -CS
 Generates a "sum count" in addition to the individual instance
 counts.  The "sum count" is the total of all the individual
 deltas for each time period.
 .TP
-.B \-Cm
+.B -Cm
 Prints the max value ever attained.
 .TP
-.B \-CF configfile
+.B -CF configfile
 Tells
 .B snmpdelta
 to read it's configuration from the specified file.
 This options allows the input to be set up in advance rather
 than having to be specified on the command line.
 .TP
-.B \-Cl
+.B -Cl
 Tells
 .B snmpdelta
 to write it's configuration to files whose names correspond to the MIB
-instances monitored.  For example, snmpdelta \-Cl localhost ifInOctets.1
-will create a file "localhost\-ifInOctets.1".
+instances monitored.  For example, snmpdelta -Cl localhost ifInOctets.1
+will create a file "localhost-ifInOctets.1".
 .TP
-.B \-Cp
+.B -Cp
 Specifies the number of seconds between polling periods.
 Polling constitutes sending a request to the agent. The
 default polling period is one second.
 .TP
-.B \-CP peaks
+.B -CP peaks
 Specifies the reporting period in number of polling periods.
 If this option is specified, snmpdelta polls the agent
 .I peaks
@@ -91,34 +92,27 @@ The result reported includes the average value over
 the reporting period. In addition, the highest polled
 value within the reporting period is shown.
 .TP
-.B \-Ck
-When the polling period (\-Cp) is an increment of 60 seconds
-and the timestamp is displayed in the output (\-Cs), then
+.B -Ck
+When the polling period (-Cp) is an increment of 60 seconds
+and the timestamp is displayed in the output (-Cs), then
 the default display shows the timestamp in the format
 hh:mm mm/dd. This option causes the timestamp format
 to be hh:mm:ss mm/dd.
 .TP
-.B \-CT
+.B -CT
 Makes 
 .B snmpdelta
 print its output in tabular form.
 .TP
-.B \-Cv vars/pkt
+.B -Cv vars/pkt
 Specifies the maximum number of oids allowed to be packaged
 in a single PDU. Multiple PDUs can be created in a single
 request. The default value of variables per packet is 60.
 This option is useful if a request response results in an
 error becaues the packet is too big.
-.PP
-Note that
-.B snmpdelta
-REQUIRES  an argument specifying the agent to query
-and at least one OID argument, as described in the 
-.I snmpcmd(1)
-manual page.
 .SH EXAMPLES
 .nf
-$ snmpdelta \-c public \-v 1 \-Cs localhost IF\-MIB::ifInUcastPkts.3 IF\-MIB::ifOutUcastPkts.3
+$ snmpdelta -c public -v 1 -Cs localhost IF-MIB::ifInUcastPkts.3 IF-MIB::ifOutUcastPkts.3
 [20:15:43 6/14] ifInUcastPkts.3 /1 sec: 158
 [20:15:43 6/14] ifOutUcastPkts.3 /1 sec: 158
 [20:15:44 6/14] ifInUcastPkts.3 /1 sec: 184
@@ -134,7 +128,7 @@ $ snmpdelta \-c public \-v 1 \-Cs localhost IF\-MIB::ifInUcastPkts.3 IF\-MIB::if
 [20:15:49 6/14] ifInUcastPkts.3 /1 sec: 158
 [20:15:49 6/14] ifOutUcastPkts.3 /1 sec: 158
 ^C
-$ snmpdelta \-c public \-v 1 \-Cs \-CT localhost IF\-MIB:ifInUcastPkts.3 IF\-MIB:ifOutcastPkts.3
+$ snmpdelta -c public -v 1 -Cs -CT localhost IF-MIB:ifInUcastPkts.3 IF-MIB:ifOutcastPkts.3
 localhost	ifInUcastPkts.3	ifOutUcastPkts.3
 [20:15:59 6/14]	184.00	184.00
 [20:16:00 6/14]	158.00	158.00
@@ -153,8 +147,8 @@ option is specified, the output is sent to a file and not to the
 screen.
 .PP
 .nf
-$ snmpdelta \-c public \-v 1 \-Ct \-Cs \-CS \-Cm \-Cl \-Cp 60 \-CP 60
+$ 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/snmpdf.1.def b/man/snmpdf.1.def
index 75ebaf8..51e3728 100644
--- a/man/snmpdf.1.def
+++ b/man/snmpdf.1.def
@@ -8,18 +8,19 @@
 .\" distributed with the Net-SNMP package.
 .\" ******************************************************************/
 .TH SNMPDF 1 "25 Jul 2003" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpdf - display disk space usage on a network entity via SNMP
 .SH SYNOPSIS
 .B snmpdf
-[COMMON OPTIONS] [\-Cu] AGENT
+[COMMON OPTIONS] [-Cu] AGENT
 .SH DESCRIPTION
 .B snmpdf
-is simply a networked version of the typical df command.  It
+is simply a networked verison of the typical df command.  It
 checks the disk space on the remote machine by examining the
-HOST\-RESOURCES\-MIB's hrStorageTable or the UCD\-SNMP\-MIB's dskTable.
+HOST-RESOURCES-MIB's hrStorageTable or the UCD-SNMP-MIB's dskTable.
 By default, the hrStorageTable is preferred as it typically contains
-more information.  However, the \-Cu argument can be passed to snmpdf
+more information.  However, the -Cu argument can be passed to snmpdf
 to force the usage of the dskTable.
 .PP
 AGENT identifies a target SNMP agent, which is instrumented
@@ -44,16 +45,16 @@ Please see
 for a list of possible values for COMMON OPTIONS
 as well as their descriptions.
 .TP
-.B \-Cu
+.B -Cu
 Forces the command to use dskTable in mib
-UCD\-SNMP\-MIB instead of the default to determine
+UCD-SNMP-MIB instead of the default to determine
 the storage information. Generally, the default
-use of hrStorageTable in mib HOST\-RESOURCES\-MIB
+use of hrStorageTable in mib HOST-RESOURCES-MIB
 is preferred because it typically contains
 more information.
 .SH "EXAMPLES"
 .PP
-% snmpdf \-v 2c \-c public localhost
+% snmpdf -v 2c -c public localhost
 .PP
 .nf
 Description       size (kB)         Used    Available Used%
diff --git a/man/snmpget.1.def b/man/snmpget.1.def
index 0ecac19..f3e55cf 100644
--- a/man/snmpget.1.def
+++ b/man/snmpget.1.def
@@ -1,7 +1,3 @@
-.\" -*- 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:
 .\" /***********************************************************
 .\" 	Copyright 1988, 1989 by Carnegie Mellon University
 .\" 
@@ -23,12 +19,13 @@
 .\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 .\" SOFTWARE.
 .\" ******************************************************************/
-.TH SNMPGET 1 "18 Jun 2007" VVERSIONINFO "Net-SNMP"
+.TH SNMPGET 1 "08 Feb 2002" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpget - communicates with a network entity using SNMP GET requests
 .SH SYNOPSIS
 .B snmpget
-[COMMON OPTIONS] [\-Cf] AGENT OID [OID]...
+[COMMON OPTIONS] [-Cf] OID [OID]...
 .SH DESCRIPTION
 .B snmpget
 is an SNMP application that uses the SNMP GET request to query for
@@ -38,9 +35,9 @@ name is given in the format specified in
 .IR variables(5) .
 .SH "OPTIONS"
 .TP 8
-.B \-Cf
+.B -Cf
 If
-.B \-Cf
+.B -Cf
 is
 .I not
 specified, some applications
@@ -52,17 +49,13 @@ SNMPv1 which requires "all or nothing" kinds of requests.
 .PP
 In addition to this option,
 .B snmpget
-takes the common options described in the
+REQUIRES options and agent arguments, as described in the 
 .I snmpcmd(1)
-manual page.  
-Note that 
-.B snmpget
-REQUIRES an argument specifying the agent to query
-and at least one OID argument, as described there. 
+manual page.
 .SH "EXAMPLES"
 The command:
 .PP
-    snmpget \-c public zeus system.sysDescr.0
+    snmpget -c public zeus system.sysDescr.0
 .PP
 will retrieve the variable system.sysDescr.0 from the host 
 .B zeus 
@@ -78,13 +71,13 @@ pinpoint in what way the request was malformed.  If there were other
 variables in the request, the request will be resent without the bad
 variable.
 .PP
-Here is another example. The \-c and \-v options are defined in the 
+Here is another example. The -c and -v options are defined in the 
 .I snmpcmd(1)
 manual page. (Note that system.sysUpTime is an incomplete
 OID, as it needs the .0 index appended to it):
 .PP
 .nf
-    snmpget \-v1 \-Cf \-c public localhost system.sysUpTime system.sysContact.0
+    snmpget -v1 -Cf -c public localhost system.sysUpTime system.sysContact.0
 .fi
 .PP
 This example will return the following:
@@ -97,7 +90,7 @@ This example will return the following:
 .PP
 Similarly, the command:
 .nf
-    snmpget \-v1 \-c public localhost system.sysUpTime system.sysContact.0
+    snmpget -v1 -c public localhost system.sysUpTime system.sysContact.0
 .fi
 .PP
 Will return:
@@ -112,7 +105,7 @@ Will return:
 .PP
 With the
 .B
-\-Cf
+-Cf
 flag specified the application will not try to fix the PDU for you.
 .SH "SEE ALSO"
 snmpcmd(1), snmpwalk(1), variables(5).
diff --git a/man/snmpgetnext.1.def b/man/snmpgetnext.1.def
index 5e99a18..9111319 100644
--- a/man/snmpgetnext.1.def
+++ b/man/snmpgetnext.1.def
@@ -1,7 +1,3 @@
-.\" -*- 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:
 .\" /***********************************************************
 .\" 	Copyright 1988, 1989 by Carnegie Mellon University
 .\" 
@@ -23,12 +19,13 @@
 .\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 .\" SOFTWARE.
 .\" ******************************************************************/
-.TH SNMPGETNEXT 1 "04 Mar 2002" VVERSIONINFO "Net-SNMP"
+.TH SNMPGETNEXT 1 "08 Feb 2002" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpgetnext - communicates with a network entity using SNMP GETNEXT requests
 .SH SYNOPSIS
 .B snmpgetnext
-[COMMON OPTIONS] [\-Cf] AGENT OID [OID]...
+[COMMON OPTIONS] [-Cf] OID [OID]...
 .SH DESCRIPTION
 .B snmpget
 is an SNMP application that uses the SNMP GETNEXT request to query for
@@ -41,7 +38,7 @@ remote entity's MIB will be returned.
 .PP
 For example:
 .PP
-snmpgetnext \-c public zeus interfaces.ifTable.ifEntry.ifType.1
+snmpgetnext -c public zeus interfaces.ifTable.ifEntry.ifType.1
 .PP
 will retrieve the variable interfaces.ifTable.ifEntry.ifType.2:
 .PP
@@ -50,28 +47,14 @@ interfaces.ifTable.ifEntry.ifType.2 = softwareLoopback(24)
 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"
-.TP 8
-.B \-Cf
-If
-.B \-Cf
-is
-.I not
-specified, some applications
-.RB ( snmpdelta ", " snmpget ", " snmpgetnext " and " snmpstatus )
-will try to fix errors returned by the agent that you were talking to
-and resend the request.  The only time this is really useful is if you
-specified a OID that didn't exist in your request and you're using
-SNMPv1 which requires "all or nothing" kinds of requests.
-.PP
-In addition to this option,
+.SH OPTIONS
 .B snmpgetnext
 takes the common options described in the
 .I snmpcmd(1)
+manual page and also the
+.B -Cf
+option described in the
+.I snmpget(1)
 manual page.
-Note that 
-.B snmpgetnext
-REQUIRES an argument specifying the agent to query
-and at least one OID argument, as described there.
 .SH "SEE ALSO"
 snmpcmd(1), snmpget(1), variables(5).
diff --git a/man/snmpnetstat.1.def b/man/snmpnetstat.1.def
index e3aa634..82e731e 100644
--- a/man/snmpnetstat.1.def
+++ b/man/snmpnetstat.1.def
@@ -58,21 +58,22 @@
 .\" Use is subject to license terms specified in the COPYING file
 .\" distributed with the Net-SNMP package.
 .\" ******************************************************************/
-.TH SNMPNETSTAT 1 "20 Jan 2010" VVERSIONINFO "Net-SNMP"
+.TH SNMPNETSTAT 1 "16 Nov 2006" VVERSIONINFO "Net-SNMP"
+.UC 5
 .SH NAME
 snmpnetstat \- display networking status and configuration information from a network entity via SNMP
 .SH SYNOPSIS
 .B snmpnetstat
-[COMMON OPTIONS] [\-Ca] [\-Cn] AGENT
+[common options] [-Ca] [-Cn] AGENT
 .br
 .B snmpnetstat
-[COMMON OPTIONS] [\-Ci] [\-Co] [\-Cr] [\-Cn] [\-Cs] AGENT
+[common options] [-Ci] [-Co] [-Cr] [-Cn] [-Cs] AGENT
 .br
 .B snmpnetstat
-[COMMON OPTIONS] [\-Ci] [\-Cn] [\-CI interface] AGENT [interval]
+[common options] [-Ci] [-Cn] [-CI interface] AGENT [interval]
 .br
 .B snmpnetstat
-[COMMON OPTIONS] [\-Ca] [\-Cn] [\-Cs] [\-Cp protocol] AGENT
+[common options] [-Ca] [-Cn] [-Cs] [-Cp protocol] AGENT
 .SH DESCRIPTION
 The
 .B snmpnetstat 
@@ -91,12 +92,6 @@ will continuously display the information regarding packet
 traffic on the configured network interfaces.
 The fourth form displays statistics about the named protocol.
 .PP
-.B snmpnetstat
-will issue GETBULK requests to query for information
-if at least protocol version
-.I v2
-is used.
-.PP
 AGENT identifies a target SNMP agent, which is
 instrumented to monitor the given objects.
 At its simplest, the AGENT specification will
@@ -109,7 +104,7 @@ the possible formats for AGENT.
 .SH OPTIONS
 The options have the following meaning:
 .PP
-.B COMMON OPTIONS
+.B common options
  Please see
 .I snmpcmd(1)
 for a list of possible values for common options
@@ -169,11 +164,6 @@ When
 is also present, show per-protocol routing statistics instead of 
 the routing tables.
 .PP
-.BI \-CR " repeaters"
-For GETBULK requests,
-.I repeaters
-specifies the max-repeaters value to use.
-.PP
 When  snmpnetstat is invoked with an interval argument, it
 displays a running count of statistics related to  network
 interfaces.
@@ -254,7 +244,7 @@ display is limited to the given protocol.
 .SH EXAMPLES
 Example of using snmpnetstat to display active sockets (default):
 .PP
-% snmpnetstat \-v 2c \-c public \-Ca testhost
+% snmpnetstat -v 2c -c public -Ca testhost
 .PP
 .nf
 Active Internet (tcp) Connections (including servers)
@@ -278,7 +268,7 @@ udp    *.time
 \&...
 .fi
 .PP
-% snmpnetstat \-v 2c \-c public \-Ci testhost
+% snmpnetstat -v 2c -c public -Ci testhost
 .PP
 .nf
 Name     Mtu Network    Address          Ipkts   Ierrs    Opkts Oerrs Queue
@@ -289,7 +279,7 @@ lo0     8232 127        localhost      7530982       0  7530982     0    0
 Example of using snmpnetstat to show statistics about a specific protocol:
 .PP
 .nf
-% snmpnetstat \-v 2c \-c public \-Cp tcp testhost
+% snmpnetstat -v 2c -c public -Cp tcp testhost
 
 Active Internet (tcp) Connections
 Proto Local Address                Foreign Address                 (state)
diff --git a/man/snmpset.1.def b/man/snmpset.1.def
index b0c4e07..fbbbc94 100644
--- a/man/snmpset.1.def
+++ b/man/snmpset.1.def
@@ -1,7 +1,3 @@
-.\" -*- 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:
 .\" /***********************************************************
 .\" 	Copyright 1988, 1989 by Carnegie Mellon University
 .\" 
@@ -23,12 +19,13 @@
 .\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 .\" SOFTWARE.
 .\" ******************************************************************/
-.TH SNMPSET 1 "19 Jun 2003" VVERSIONINFO "Net-SNMP"
+.TH SNMPSET 1 "08 Feb 2002" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpset - communicates with a network entity using SNMP SET requests
 .SH SYNOPSIS
 .B snmpset
-[COMMON OPTIONS] AGENT OID TYPE VALUE [OID TYPE VALUE]...
+[COMMON OPTIONS] OID TYPE VALUE [OID TYPE VALUE]...
 .SH DESCRIPTION
 .B snmpset
 is an SNMP application that uses the SNMP SET request to set
@@ -86,13 +83,13 @@ Right Thing".
 .PP
 For example:
 .PP
-snmpset \-c private \-v 1 test\-hub system.sysContact.0 s dpz at noc.rutgers.edu ip.ipforwarding.0 = 2
+snmpset -c private -v 1 test-hub system.sysContact.0 s dpz at noc.rutgers.edu ip.ipforwarding.0 = 2
 .PP
 will set the variables sysContact.0 and ipForwarding.0:
 .PP
 system.sysContact.0 = STRING: "dpz at noc.rutgers.edu"
 .br
-ip.ipForwarding.0 = INTEGER: not\-forwarding(2)
+ip.ipForwarding.0 = INTEGER: not-forwarding(2)
 .PP
 If the network entity has an error processing the request packet, an
 error packet will be returned and a message will be shown, helping to
@@ -102,9 +99,5 @@ pinpoint in what way the request was malformed.
 takes the common options described in the
 .I snmpcmd(1)
 manual page.
-Note that
-.B snmpset
-REQUIRES  an argument specifying the agent to query
-and at least one set of OID/type/value arguments, as described in there.
 .SH "SEE ALSO"
 snmpcmd(1), variables(5).
diff --git a/man/snmpstatus.1.def b/man/snmpstatus.1.def
index df7824f..35b7d56 100644
--- a/man/snmpstatus.1.def
+++ b/man/snmpstatus.1.def
@@ -28,11 +28,12 @@
 .\" distributed with the Net-SNMP package.
 .\" ******************************************************************/
 .TH SNMPSTATUS 1 "25 Jul 2003" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpstatus - retrieves a fixed set of management information from a network entity
 .SH SYNOPSIS
 .B snmpstatus
-[COMMON OPTIONS] [\-Cf] AGENT
+[COMMON OPTIONS] [-Cf] AGENT
 .SH DESCRIPTION
 .B snmpstatus
 is an SNMP application that retrieves several important statistics
@@ -68,7 +69,7 @@ The number of IP output packets (ipOutRequests.0)
 .PP
 For example:
 .PP
-snmpstatus \-c public \-v 1 netdev\-kbox.cc.cmu.edu
+snmpstatus -c public -v 1 netdev-kbox.cc.cmu.edu
 .PP
 will produce output similar to the following:
 .PP
@@ -90,7 +91,7 @@ pinpoint in what way the request was malformed.
 .B snmpstatus
 will attempt to reform its request to eliminate the malformed
 variable (unless the
-.B \-Cf
+.B -Cf
 option is given, see below), but this variable will then be missing
 from the displayed data.
 .PP
@@ -102,10 +103,10 @@ Please see
 for a list of possible values for COMMON OPTIONS
 as well as their descriptions.
 .TP
-.B \-Cf
+.B -Cf
 By default, snmpstatus will try to fix errors returned
 by the agent and retry a request. In this situation,
-the command will display the data that it can. If the \-Cf option
+the command will display the data that it can. If the -Cf option
 is specified, then snmpstatus will not try to fix
 errors, and the error will cause the command to terminate.
 .SH "SEE ALSO"
diff --git a/man/snmptable.1.def b/man/snmptable.1.def
index 743da1b..b6321ee 100644
--- a/man/snmptable.1.def
+++ b/man/snmptable.1.def
@@ -21,23 +21,24 @@
 .\" distributed with the Net-SNMP package.
 .\" ******************************************************************/
 .TH SNMPTABLE 1 "25 Jul 2003" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmptable - retrieve an SNMP table and display it in tabular form
 .SH SYNOPSIS
 .B snmptable
-[COMMON OPTIONS] [\-Cb] [\-CB] [\-Ch] [\-CH] [\-Ci] [\-Cf STRING] [\-Cw WIDTH]
-AGENT TABLE\-OID
+[COMMON OPTIONS] [-Cb] [-CB] [-Ch] [-CH] [-Ci] [-Cf STRING] [-Cw WIDTH]
+AGENT TABLE-OID
 .SH DESCRIPTION
 .B snmptable
 is an SNMP application that repeatedly uses the SNMP GETNEXT or
 GETBULK requests to query for information on a network entity.  The
 parameter
-.I TABLE\-OID
+.I TABLE-OID
 must specify an SNMP table.
 .PP
 snmptable is an SNMP application that repeatedly uses the
 SNMP GETNEXT or GETBULK requests to query for  information
-on a network entity.  The parameter TABLE\-OID must specify
+on a network entity.  The parameter TABLE-OID must specify
 an SNMP table.
 
 AGENT identifies a target SNMP agent, which is instrumented
@@ -57,19 +58,19 @@ Please see
 for a list of possible values for COMMON OPTIONS
 as well as their descriptions.
 .TP
-.B \-Cb
+.B -Cb
 Display only a brief heading. Any common prefix of the table field
 names will be deleted.
 .TP 
-.B \-CB
+.B -CB
 Do not use GETBULK requests to retrieve data, only GETNEXT.
 .TP 
-.BI \-Cc " CHARS"
+.BI -Cc " CHARS"
 Print table in columns of
 .I CHARS
 characters width.
 .TP
-.BI \-Cf " STRING"
+.BI -Cf " STRING"
 The string
 .I STRING
 is used to separate table columns.  With this option, each table entry
@@ -77,28 +78,28 @@ will be printed in compact form, just with the string given to
 separate the columns (useful if you want to import it into a
 database).  Otherwise it is printed in nicely aligned columns.
 .TP
-.B \-Ch
+.B -Ch
 Display
 .I only
 the column headings.
 .TP
-.B \-CH
+.B -CH
 Do not display the column headings.
 .TP
-.B \-Ci
+.B -Ci
 This option prepends the index of the entry to all printed lines.
 .TP
-.B \-Cl
+.B -Cl
 Left justify the data in each column.
 .TP 
-.BI \-Cr " REPEATERS"
+.BI -Cr " REPEATERS"
 For GETBULK requests, 
 .I REPEATERS
 specifies the max-repeaters value to use.  For GETNEXT requests,
 .I REPEATERS
 specifies the number of entries to retrieve at a time.
 .TP 
-.BI \-Cw " WIDTH"
+.BI -Cw " WIDTH"
 Specifies the width of the lines when the table is printed.
 If the lines will be longer, the table will be printed in sections of
 at most 
@@ -108,21 +109,15 @@ characters.  If
 is less than the length of the contents of
 a single column, then that single column will still be printed.
 .PP
-Note that
-.B snmptable
-REQUIRES  an argument specifying the agent to query
-and exactly one OID argument, as described in the 
-.I snmpcmd(1)
-manual page.  This OID \fBmust\fP be that of a MIB table object.
 .SH EXAMPLES
-$ snmptable \-v 2c \-c public localhost at.atTable
+$ snmptable -v 2c -c public localhost at.atTable
 
-SNMP table: at.atTable RFC1213\-MIB::atTable
+SNMP table: at.atTable RFC1213-MIB::atTable
 
 atIfIndex   atPhysAddress   atNetAddress
         1  8:0:20:20:0:ab 130.225.243.33
 .PP
-$ snmptable \-v 2c \-c public \-Cf + localhost at.atTable
+$ snmptable -v 2c -c public -Cf + localhost at.atTable
 
 SNMP table: at.atTable
 
@@ -130,7 +125,7 @@ atIfIndex+atPhysAddress+atNetAddress
 1+8:0:20:20:0:ab+130.225.243.33
 .PP
 .nf
-$ snmptable localhost \-Cl \-CB \-Ci \-OX \-Cb \-Cc 16 \-Cw 64 ifTable
+$ snmptable localhost -Cl -CB -Ci -OX -Cb -Cc 16 -Cw 64 ifTable
 
 SNMP table: ifTable
 
@@ -159,7 +154,7 @@ index: [2]
 .PP
 .SH "BUGS"
 The test for
-.I TABLE\-OID
+.I TABLE-OID
 actually specifying a table is rather heuristic.  Note also that the
 test requires the defining MIB file to be loaded.
 .PP
diff --git a/man/snmptest.1.def b/man/snmptest.1.def
index 7874196..0092a7e 100644
--- a/man/snmptest.1.def
+++ b/man/snmptest.1.def
@@ -28,6 +28,7 @@
 .\" distributed with the Net-SNMP package.
 .\" ******************************************************************/
 .TH SNMPTEST 1 "25 Jul 2003" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmptest - communicates with a network entity using SNMP requests
 .SH SYNOPSIS
@@ -62,7 +63,7 @@ in the format specified in
 .IR variables(5) .
 For example:
 .PP
-snmptest \-c public \-v 1 zeus
+snmptest -c public -v 1 zeus
 .br
 .BR Variable: " system.sysDescr.0"
 .br
@@ -175,7 +176,7 @@ manual page.
 .PP
 The following is an example of sending a GET request for two OIDs:
 .PP
-% snmptest \-v 2c \-c public testhost:9999
+% snmptest -v 2c -c public testhost:9999
 .PP
 .nf
 Variable: system.sysDescr.0
@@ -183,18 +184,18 @@ Variable: system.sysContact.0
 Variable:
 Received Get Response from 128.2.56.220
 requestid 0x7D9FCD63 errstat 0x0 errindex 0x0
-SNMPv2\-MIB::sysDescr.0 = STRING: SunOS testhost 5.9 Generic_112233\-02 sun4u
-SNMPv2\-MIB::sysContact.0 = STRING: x1111
+SNMPv2-MIB::sysDescr.0 = STRING: SunOS testhost 5.9 Generic_112233-02 sun4u
+SNMPv2-MIB::sysContact.0 = STRING: x1111
 .fi
 .PP
 The following is an example of sending a GETNEXT request:
 .PP
 .nf
-Variable: SNMPv2\-MIB::sysORUpTime
+Variable: SNMPv2-MIB::sysORUpTime
 Variable:
 Received Get Response from 128.2.56.220
 requestid 0x7D9FCD64 errstat 0x0 errindex 0x0
-SNMPv2\-MIB::sysORUpTime.1 = Timeticks: (6) 0:00:00.06
+SNMPv2-MIB::sysORUpTime.1 = Timeticks: (6) 0:00:00.06
 Variable:
 .fi
 .PP
@@ -209,7 +210,7 @@ Value: building 17
 Variable:
 Received Get Response from 128.2.56.220
 requestid 0x7D9FCD65 errstat 0x0 errindex 0x0
-SNMPv2\-MIB::sysLocation.0 = STRING: building A
+SNMPv2-MIB::sysLocation.0 = STRING: building A
 Variable:
 .fi
 .PP
@@ -228,17 +229,17 @@ Variable:
 What repeat count? 2
 Received Get Response from 128.2.56.220
 requestid 0x2EA7942A errstat 0x0 errindex 0x0
-SNMPv2\-MIB::sysName.0 = STRING: testhost
-SNMPv2\-MIB::sysORLastChange.0 = Timeticks: (58) 0:00:00.58
-SNMPv2\-MIB::sysLocation.0 = STRING: bldg A
-SNMPv2\-MIB::sysORID.1 = OID: IF\-MIB::ifMIB
+SNMPv2-MIB::sysName.0 = STRING: testhost
+SNMPv2-MIB::sysORLastChange.0 = Timeticks: (58) 0:00:00.58
+SNMPv2-MIB::sysLocation.0 = STRING: bldg A
+SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB
 Variable:
 .fi
 .PP
 The following is an example of sending an Inform request:
 .PP
 .nf
-snmptest \-v 2c \-c public snmptrapd_host
+snmptest -v 2c -c public snmptrapd_host
 Variable: $I
 Request type is Inform Request
 (Are you sending to the right port?)
@@ -252,13 +253,13 @@ Variable:
 .PP
 The snmptrapd_host will show:
 .PP
-snmptrapd_host [<ip address>]: Trap SNMPv2\-MIB::sysContact.0 = STRING:
+snmptrapd_host [<ip address>]: Trap SNMPv2-MIB::sysContact.0 = STRING:
 x12345
 .PP
 The following is an example of sending an SNMPv2 Trap request:
 .PP
 .nf
-snmptest \-v 2c \-c public snmptrapd_host
+snmptest -v 2c -c public snmptrapd_host
 Variable: $T
 Request type is SNMPv2 Trap Request
 (Are you sending to the right port?)
@@ -271,7 +272,7 @@ Variable:
 The snmptrapd_host will show:
 .PP
 .nf
-snmptrapd_host [<ip address>]: Trap SNMPv2\-MIB::sys.0 = STRING:
+snmptrapd_host [<ip address>]: Trap SNMPv2-MIB::sys.0 = STRING:
 building a
 .fi
 .SH "SEE ALSO"
diff --git a/man/snmptranslate.1.def b/man/snmptranslate.1.def
index 288218b..cfbbe35 100644
--- a/man/snmptranslate.1.def
+++ b/man/snmptranslate.1.def
@@ -27,7 +27,8 @@
 .\" Use is subject to license terms specified in the COPYING file
 .\" distributed with the Net-SNMP package.
 .\" ******************************************************************/
-.TH SNMPTRANSLATE 1 "20 Jul 2010" VVERSIONINFO "Net-SNMP"
+.TH SNMPTRANSLATE 1 "25 Jul 2003" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmptranslate - translate MIB OID names between numeric and textual forms
 .SH SYNOPSIS
@@ -42,17 +43,17 @@ values from their symbolic (textual) forms into their numerical forms
 OID is either a numeric or textual object identifier.
 .SH OPTIONS
 .TP 8
-.B \-D\fI[TOKEN[,...]]
+.B -D \fITOKEN[,...]
 Turn on debugging output for the given
 .IR "TOKEN" "(s)."
 Try
 .IR ALL
 for extremely verbose output.
 .TP
-.B \-h
+.B -h
 Display a brief usage message and then exit.
 .TP
-.BI \-m " MIBLIST"
+.BI -m " MIBLIST"
 Specifies a colon separated list of MIB modules to load for this
 application.  This overrides the environment variable MIBS.
 .IP
@@ -62,11 +63,11 @@ is used to specify all modules in all directories when searching for MIB
 files.  Every file whose name does not begin with "." will be parsed as
 if it were a MIB file.
 .TP
-.BI \-M " DIRLIST"
+.BI -M " DIRLIST"
 Specifies a colon separated list of directories to search for MIBs.
 This overrides the environment variable MIBDIRS.
 .TP
-.BI \-T " TRANSOPTS"
+.BI -T " TRANSOPTS"
 Provides control over the translation of the OID values.  The
 following
 .I TRANSOPTS
@@ -98,24 +99,24 @@ Dump a tree form of the loaded MIBs (mostly useful for debugging).
 Dump a numeric and labeled form of all objects (compatible with MIB2SCHEMA format).
 .RE
 .TP
-.B \-V
+.B -V
 Display version information for the application and then exit.
 .TP
-.BI \-w " WIDTH"
+.BI -w " WIDTH"
 Specifies the width of
-.B \-Tp
+.B -Tp
 and
-.B \-Td
+.B -Td
 output. The default is very large.
 .PP
 In addition to the above options, 
 .B snmptranslate
 takes the OID input 
-.RB ( \-I ),
+.RB ( -I ),
 MIB parsing
-.RB ( \-M )
+.RB ( -M )
 and OID output
-.RB ( \-O )
+.RB ( -O )
 options described in the 
 .BR "INPUT OPTIONS" ", " "MIB PARSING OPTIONS" " and " "OUTPUT OPTIONS"
 sections of the
@@ -123,40 +124,40 @@ sections of the
 manual page.
 .SH EXAMPLES
 .IP \(bu 4
-snmptranslate \-On \-IR sysDescr
+snmptranslate -On -IR sysDescr
 .br
 will translate "sysDescr" to a more qualified form:
 .IP
 system.sysDescr
 .IP \(bu 4
-snmptranslate \-Onf \-IR sysDescr
+snmptranslate -Onf -IR sysDescr
 .br
 will translate "sysDecr" to:
 .IP
-.RI .iso.org.dod.internet.mgmt.mib\-2.system.sysDescr
+.RI .iso.org.dod.internet.mgmt.mib-2.system.sysDescr
 .IP \(bu 4 
-snmptranslate \-Td \-OS system.sysDescr
+snmptranslate -Td -OS system.sysDescr
 .br
 will translate "sysDecr" into:
 .IP
 .nf
-SNMPv2\-MIB::sysDescr
-sysDescr OBJECT\-TYPE
-  \-\- FROM SNMPv2\-MIB
-  \-\- TEXTUAL CONVENTION DisplayString
+SNMPv2-MIB::sysDescr
+sysDescr OBJECT-TYPE
+  -- FROM SNMPv2-MIB
+  -- TEXTUAL CONVENTION DisplayString
   SYNTAX OCTET STRING (0..255)
-  DISPLAY\-HINT "255a"
-  MAX\-ACCESS read\-only
+  DISPLAY-HINT "255a"
+  MAX-ACCESS read-only
   STATUS current
   DESCRIPTION "A textual description of the entity. This
                value should include the full name and
                version identification of the system's
-               hardware type, software operating\-system,
+               hardware type, software operating-system,
                and networking software."
-::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib\-2(1) system(1) 1 }
+::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) 1 }
 .fi
 .IP \(bu 4 
-snmptranslate \-Tp \-OS system
+snmptranslate -Tp -OS system
 .br
 will print the following tree:
 .IP
@@ -196,7 +197,7 @@ will print the following tree:
 .fi
 .PP
 .IP \(bu 4
-snmptranslate \-Ta | head
+snmptranslate -Ta | head
 .br
 will produce the following dump:
 .IP
@@ -214,7 +215,7 @@ snmpV2 ::= { internet 6 }
 .fi
 .PP
 .IP \(bu 4
-snmptranslate \-Tl | head
+snmptranslate -Tl | head
 .br
 will produce the following dump:
 .IP
@@ -224,15 +225,15 @@ will produce the following dump:
 .RI .iso(1).org(3).dod(6).internet(1)
 .RI .iso(1).org(3).dod(6).internet(1).directory(1)
 .RI .iso(1).org(3).dod(6).internet(1).mgmt(2)
-.RI .iso(1).org(3).dod(6).internet(1).mgmt(2).mib\-2(1)
-.RI .iso(1).org(3).dod(6).internet(1).mgmt(2).mib\-2(1).system(1)
-.RI .iso(1).org(3).dod(6).internet(1).mgmt(2).mib\-2(1).system(1).sysDescr(1)
-.RI .iso(1).org(3).dod(6).internet(1).mgmt(2).mib\-2(1).system(1).sysObjectID(2)
-.RI .iso(1).org(3).dod(6).internet(1).mgmt(2).mib\-2(1).system(1).sysUpTime(3)
+.RI .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1)
+.RI .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1)
+.RI .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysDescr(1)
+.RI .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysObjectID(2)
+.RI .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysUpTime(3)
 .fi
 .PP
 .IP \(bu 4
-snmptranslate \-To | head
+snmptranslate -To | head
 .br
 will produce the following dump
 .IP
@@ -250,7 +251,7 @@ will produce the following dump
 .fi
 .PP
 .IP \(bu 4
-snmptranslate \-Ts | head
+snmptranslate -Ts | head
 .br
 will produce the following dump
 .IP
@@ -260,15 +261,15 @@ will produce the following dump
 .RI .iso.org.dod.internet
 .RI .iso.org.dod.internet.directory
 .RI .iso.org.dod.internet.mgmt
-.RI .iso.org.dod.internet.mgmt.mib\-2
-.RI .iso.org.dod.internet.mgmt.mib\-2.system
-.RI .iso.org.dod.internet.mgmt.mib\-2.system.sysDescr
-.RI .iso.org.dod.internet.mgmt.mib\-2.system.sysObjectID
-.RI .iso.org.dod.internet.mgmt.mib\-2.system.sysUpTime
+.RI .iso.org.dod.internet.mgmt.mib-2
+.RI .iso.org.dod.internet.mgmt.mib-2.system
+.RI .iso.org.dod.internet.mgmt.mib-2.system.sysDescr
+.RI .iso.org.dod.internet.mgmt.mib-2.system.sysObjectID
+.RI .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime
 .fi
 .PP
 .IP \(bu 4
-snmptranslate \-Tt | head
+snmptranslate -Tt | head
 .br
 will produce the following dump
 .IP
@@ -278,7 +279,7 @@ will produce the following dump
       internet(1) type=0
         directory(1) type=0
         mgmt(2) type=0
-          mib\-2(1) type=0
+          mib-2(1) type=0
             system(1) type=0
               sysDescr(1) type=2 tc=4 hint=255a
               sysObjectID(2) type=1
diff --git a/man/snmptrap.1.def b/man/snmptrap.1.def
index 55c19d1..f0f3434 100644
--- a/man/snmptrap.1.def
+++ b/man/snmptrap.1.def
@@ -1,7 +1,3 @@
-.\" -*- 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:
 .\" /***********************************************************
 .\" 	Copyright 1988, 1989 by Carnegie Mellon University
 .\" 
@@ -23,18 +19,19 @@
 .\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 .\" SOFTWARE.
 .\" ******************************************************************/
-.TH SNMPTRAP 1 "19 Jun 2003" VVERSIONINFO "Net-SNMP"
+.TH SNMPTRAP 1 "08 Feb 2002" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmptrap, snmpinform - sends an SNMP notification to a manager
 .SH SYNOPSIS
-.B snmptrap \-v 1
-[COMMON OPTIONS] AGENT enterprise-oid agent generic-trap specific-trap uptime [OID TYPE VALUE]...
+.B snmptrap -v 1
+[COMMON OPTIONS] [-Ci] enterprise-oid agent generic-trap specific-trap uptime [OID TYPE VALUE]...
 .PP
-.B snmptrap \-v [2c|3]
-[COMMON OPTIONS] [\-Ci] AGENT uptime trap-oid [OID TYPE VALUE]...
+.B snmptrap -v [2c|3]
+[COMMON OPTIONS] [-Ci] uptime trap-oid [OID TYPE VALUE]...
 .PP
-.B snmpinform \-v [2c|3]
-[COMMON OPTIONS] AGENT uptime trap-oid [OID TYPE VALUE]...
+.B snmpinform -v [2c|3]
+[COMMON OPTIONS] uptime trap-oid [OID TYPE VALUE]...
 .SH DESCRIPTION
 .B snmptrap
 is an SNMP application that uses the SNMP TRAP operation to send
@@ -47,7 +44,7 @@ given in the format specified in
 When invoked as
 .B snmpinform,
 or when
-.B \-Ci
+.B -Ci
 is added to the command line flags of snmptrap, it sends an
 INFORM-PDU, expecting a response from the trap receiver,
 retransmitting if required.  Otherwise it sends an TRAP-PDU or
@@ -111,7 +108,7 @@ command.
 .PP
 For example:
 .PP
-snmptrap \-v 1 \-c public manager enterprises.spider test\-hub 3 0 '' interfaces.iftable.ifentry.ifindex.1 i 1
+snmptrap -v 1 -c public manager enterprises.spider test-hub 3 0 '' interfaces.iftable.ifentry.ifindex.1 i 1
 .PP
 will send a generic linkUp trap to manager, for interface 1.
 .SH OPTIONS
@@ -120,11 +117,7 @@ takes the common options described in the
 .I snmpcmd(1) 
 manual page in
 addition to the 
-.B \-Ci
+.B -Ci
 option described above.
-Note that
-.B snmptrap
-REQUIRES  an argument specifying the agent to query
-as described there.
 .SH SEE ALSO
 snmpcmd(1), snmpset(1), variables(5).
diff --git a/man/snmptrapd.8.def b/man/snmptrapd.8.def
index 12421a8..18de3f9 100644
--- a/man/snmptrapd.8.def
+++ b/man/snmptrapd.8.def
@@ -1,7 +1,3 @@
-.\" -*- 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:
 .\" /***********************************************************
 .\" 	Copyright 1989 by Carnegie Mellon University
 .\" 
@@ -23,7 +19,8 @@
 .\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 .\" SOFTWARE.
 .\" ******************************************************************/
-.TH SNMPTRAPD 8 "30 Mar 2011" VVERSIONINFO "Net-SNMP"
+.TH SNMPTRAPD 8 "15 Jan 2004" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmptrapd - Receive and log SNMP trap messages.
 .SH SYNOPSIS
@@ -39,88 +36,92 @@ Since 162 is a privileged port,
 must typically be run as root.
 .SH OPTIONS
 .TP 8
-.B \-a
+.B -a
 Ignore authenticationFailure traps.
 .TP
-.B \-A
+.B -A
 Append to the log file rather than truncating it.
 
-Note that this needs to come \fIbefore\fP any \-Lf options
+Note that this needs to come \fIbefore\fP any -Lf options
 that it should apply to.
 .TP
-.BI "\-c" " FILE"
+.BI "-c" " FILE"
 Read 
 .I FILE
-as a configuration file
-(or a comma-separated list of configuration files).
+as a configuration file.
 .TP
-.B \-C
+.B -C
 Do not read any configuration files except the one optionally specified by the 
-.B \-c 
+.B -c 
 option.
 .TP
-.B \-d
+.B -d
 Dump (in hexadecimal) the sent and received SNMP packets.
 .TP
-.BI \-D[TOKEN[,...]]
+.BI -D " TOKEN[,...]"
 Turn on debugging output for the given
 .IR "TOKEN" "(s)."
 Try
 .IR ALL
 for extremely verbose output.
 .TP
-.B \-f
+.B -e
+Print event numbers (rising/falling alarm etc.) from the (obsolete) M2M-MIB.
+.br
+This functionality is being deprecated and will be removed in due course.
+.TP
+.B -f
 Do not fork() from the calling shell.
 .TP
-.BI \-F " FORMAT"
+.BI -F " FORMAT"
 When logging to standard output, use the format in the string
 .IR FORMAT .
 See the section
 .B FORMAT SPECIFICATIONS
 below for more details.
 .TP
-.B \-h, \-\-help
+.B -h, --help
 Display a brief usage message and then exit.
 .TP
-.B \-H
+.B -H
 Display a list of configuration file directives understood by the
 trap daemon and then exit.
 .TP
-.B \-I \fI[\-]INITLIST
+.B -I \fI[-]INITLIST
 Specifies which modules should (or should not) be initialized
 when snmptrapd starts up.  If the comma-separated
 .I INITLIST
 is preceded
-with a '\-', it is the list of modules that should \fInot\fR be started.
+with a '-', it is the list of modules that should \fInot\fR be started.
 Otherwise this is the list of the \fIonly\fR modules that should be started.
 
 To get a list of compiled modules, run snmptrapd with the arguments
-.I "\-Dmib_init \-H"
+.I "-Dmib_init -H"
 (assuming debugging support has been compiled in).
 .TP
-.B \-L[efos]
+.B -L[efos]
 Specify where logging output should be directed (standard error or output,
 to a file or via syslog).  See LOGGING OPTIONS in \fIsnmpcmd(1)\fR for details.
 .TP
-.BR \-m " \fIMIBLIST"
+.BR -m " \fIMIBLIST"
 Specifies a colon separated list of MIB modules to load for this
 application.  This overrides the environment variable MIBS.
 See \fIsnmpcmd(1)\fR for details.
 .TP
-.BR \-M " \fIDIRLIST"
+.BR -M " \fIDIRLIST"
 Specifies a colon separated list of directories to search for MIBs.
 This overrides the environment variable MIBDIRS.
 See \fIsnmpcmd(1)\fR for details.
 .TP
-.BR \-n
+.BR -n
 Do not attempt to translate source addresses of incoming packets into
 hostnames.
 .TP
-.BI \-p " FILE"
+.BI -p " FILE"
 Save the process ID of the trap daemon in
 .IR FILE "."
 .TP
-.BI \-O " [abeEfnqQsStTuUvxX]"
+.BI -O " [abeEfnqQsStTuUvxX]"
 Specifies how MIB objects and other output should be displayed.
 See the section
 .B OUTPUT OPTIONS
@@ -128,22 +129,22 @@ in the
 .I snmpcmd(1)
 manual page for details.
 .TP
-.BI \-t
+.BI -t
 Do not log traps to syslog.  This disables logging to syslog.  This is
 useful if you want the snmptrapd application to
 .B only
 run traphandle hooks and not to log any traps to any location.
 .TP
-.B \-v, \-\-version
+.B -v, --version
 Print version information for the trap daemon and then exit.
 .TP
-.B \-x \fIADDRESS
+.B -x \fIADDRESS
 Connect to the AgentX master agent on the specified address,
 rather than the default AGENTX_SOCKET.
 See \fIsnmpd(8)\fR for details of the format of such addresses.
 .TP
-.BI \-\- "name"="value"
-Allows one to specify any token ("name") supported in the
+.BI -- "name"="value"
+Allows to specify any token ("name") supported in the
 .I snmptrapd.conf
 file and sets its value to "value". Overrides the corresponding token in the
 .I snmptrapd.conf
@@ -162,11 +163,11 @@ It understands the following formatting sequences:
 a literal %
 .TP
 .B %a
-the contents of the agent\-addr field of the PDU (v1 TRAPs only)
+the contents of the agent-addr field of the PDU (v1 TRAPs only)
 .TP
 .B %A
-the hostname corresponding to the contents of the agent\-addr field of
-the PDU, if available, otherwise the contents of the agent\-addr field
+the hostname corresponding to the contents of the agent-addr field of
+the PDU, if available, otherwise the contents of the agent-addr field
 of the PDU (v1 TRAPs only).
 .TP
 .B %b
@@ -254,7 +255,7 @@ width and precision may also be specified , just as in
 and a flag value. The following flags are supported:
 .RS 4 
 .TP 4
-.B \-
+.B -
 left justify
 .TP
 .B 0
@@ -279,7 +280,7 @@ could use something like this:
 .PP
 .RS
 .nf
-snmptrapd \-P \-F "%02.2h:%02.2j TRAP%w.%q from %A\en"
+snmptrapd -P -F "%02.2h:%02.2j TRAP%w.%q from %A\en"
 .fi
 .RE
 .PP
@@ -287,7 +288,7 @@ If you want the same thing but in GMT rather than local time, use
 .PP
 .RS
 .nf
-snmptrapd \-P \-F "%#02.2h:%#02.2j TRAP%w.%q from %A\en"
+snmptrapd -P -F "%#02.2h:%#02.2j TRAP%w.%q from %A\en"
 .fi
 .RE
 .SH LISTENING ADDRESSES
@@ -301,16 +302,15 @@ See the
 .I snmpd(8)
 manual page for more information about the format of listening
 addresses.
-.SH NOTIFICATION\-LOG\-MIB SUPPORT
+.SH NOTIFICATION-LOG-MIB SUPPORT
 As of net-snmp 5.0, the snmptrapd application supports the
-NOTIFICATION\-LOG\-MIB.  It does this by opening an AgentX subagent
+NOTIFICATION-LOG-MIB.  It does this by opening an AgentX subagent
 connection to the master snmpd agent and registering the notification
 log tables.  As long as the snmpd application is started first, it
 will attach itself to it and thus you should be able to view the last
 recorded notifications via the nlmLogTable and nlmLogVariableTable.
-See the snmptrapd.conf file and the "doNotRetainNotificationLogs" token
-for turning
-off this support.  See the NOTIFICATION\-LOG\-MIB for more details about
+See the snmptrapd.conf file and the "dontRetainLogs" token for turning
+off this support.  See the NOTIFICATION-LOG-MIB for more details about
 the MIB itself.
 .SH EXTENSIBILITY AND CONFIGURATION
 See the
diff --git a/man/snmptrapd.conf.5.def b/man/snmptrapd.conf.5.def
index 9242b28..afed2b3 100644
--- a/man/snmptrapd.conf.5.def
+++ b/man/snmptrapd.conf.5.def
@@ -1,4 +1,5 @@
-.TH SNMPTRAPD.CONF 5 "19 Feb 2009" VVERSIONINFO "Net-SNMP"
+.TH SNMPTRAPD.CONF 5 "29 Jun 2005" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmptrapd.conf - configuration file for the Net-SNMP notification receiver
 .SH DESCRIPTION
@@ -39,7 +40,7 @@ addresses.
 The default behaviour is to
 listen on UDP port 162 on all IPv4 interfaces.
 .IP "doNotRetainNotificationLogs yes"
-disables support for the NOTIFICATION\-LOG\-MIB.
+disables support for the NOTIFICATION-LOG-MIB.
 Normally the snmptrapd program keeps a record of the traps
 received, which can be retrieved by querying
 the \fCnlmLogTable\fR and \fCnlmLogvariableTable\fR tables.  
@@ -47,7 +48,7 @@ This directive can be used to suppress this behaviour.
 .IP
 See the 
 .I snmptrapd(8) 
-manual page and the NOTIFICATION\-LOG\-MIB for details.
+manual page and the NOTIFICATION-LOG-MIB for details.
 .IP "doNotLogTraps yes"
 disables the logging of notifications altogether.
 This is useful if the \fBsnmptrapd\fR application should
@@ -81,14 +82,14 @@ typically be \fIlog,execute,net\fR to cover any style of processing
 for a particular category of notification. But it is perfectly
 possible (even desirable) to limit certain notification sources to
 selected processing only.
-.IP "authCommunity   TYPES COMMUNITY  [SOURCE [OID | \-v VIEW ]]"
+.IP "authCommunity   TYPES COMMUNITY  [SOURCE [OID | -v VIEW ]]"
 authorises traps (and SNMPv2c INFORM requests) with the specified
 community to trigger the types of processing listed.
 By default, this will allow any notification using this community
 to be processed.  The SOURCE field can be used to specify that the
 configuration should only apply to notifications received from
 particular sources - see \fIsnmpd.conf(5)\fR for more details.
-.IP "authUser   TYPES [\-s MODEL] USER  [LEVEL [OID | \-v VIEW ]]"
+.IP "authUser   TYPES [-s MODEL] USER  [LEVEL [OID | -v VIEW ]]"
 authorises SNMPv3 notifications with the specified
 user to trigger the types of processing listed.
 By default, this will accept authenticated requests.
@@ -96,7 +97,7 @@ By default, this will accept authenticated requests.
 be used to allow unauthenticated notifications (\fInoauth\fR),
 or to require encryption (\fIpriv\fR), just as for the SNMP agent.
 .IP
-With both of these directives, the OID (or \fI\-v VIEW\fR) field
+With both of these directives, the OID (or \fI-v VIEW\fR) field
 can be used to retrict this configuration to the processing of
 particular notifications.
 .RS
@@ -106,14 +107,14 @@ Unlike the VACM processing described in RFC 3415, this view is
 incoming notification.  It is not applied to the payload varbinds
 held within that notification.
 .RE
-.IP "authGroup  TYPES [\-s MODEL] GROUP  [LEVEL [OID | \-v VIEW ]]"
-.IP "authAccess TYPES [\-s MODEL] GROUP VIEW  [LEVEL [CONTEXT]]"
+.IP "authGroup  TYPES [-s MODEL] GROUP  [LEVEL [OID | -v VIEW ]]"
+.IP "authAccess TYPES [-s MODEL] GROUP VIEW  [LEVEL [CONTEXT]]"
 .IP "setAccess GROUP CONTEXT MODEL LEVEL PREFIX VIEW TYPES"
 authorise notifications in the specified GROUP
 (configured using the \fIgroup\fR directive)
 to trigger the types of processing listed.
 See \fIsnmpd.conf(5)\fR for more details.
-.IP "createUser [-e  ENGINEID] username (MD5|SHA) authpassphrase [DES|AES]"
+.IP "createUser username (MD5|SHA) authpassphrase [DES|AES]"
 See the 
 .I snmpd.conf(5)
 manual page for a description of how to create SNMPv3 users.  This
@@ -155,18 +156,13 @@ specifies various characteristics of how OIDs and other values
 should be displayed.
 See the section OUTPUT OPTIONS in the
 \fIsnmpcmd(1)\fR manual page for details.
-.SH MySQL Logging
-There are two configuration variables that work together to control
-when queued traps are logged to the MySQL database. A non-zero
-value must be specified for sqlSaveInterval to enable MySQL logging.
-.RE
-.IP "sqlMaxQueue max"
-specifies the maximum number of traps to queue before a forced flush
-to the MySQL database.
-.RE
-.IP "sqlSaveInterval seconds"
-specified the number of seconds between periodic queue flushes.
-A value of 0 for will disable MySQL logging.
+.IP "printEventNumbers yes"
+enables specialised logging of event-related notifications from
+the (long obsolete) M2M-MIB.
+.\"
+.\" XXX - CHECK EXACTLY WHICH TRAPS
+.\" XXX - THIS FEELS OBSOLETE TO ME!
+.\"
 .SH NOTIFICATION PROCESSING
 As well as logging incoming notifications, they can also
 be forwarded on to another notification receiver, or passed
@@ -183,7 +179,7 @@ Typically, the OID token will be the name (or numeric OID) of a
 NOTIFICATION-TYPE object, and the specified program will be invoked for
 notifications that match this OID exactly.  However this token also
 supports a simple form of wildcard suffixing.  By appending the character
-\'*' to the OID token, the corresponding program will be invoked for any
+'*' to the OID token, the corresponding program will be invoked for any
 notification based within subtree rooted at the specified OID.
 For example, an OID token of \fC.1.3.6.1.4.1*\fP would match any enterprise
 specific notification (including the specified OID itself).
@@ -219,10 +215,10 @@ OID of the varind, and the remainder of the line is its value.
 The format of both of these are controlled by the \fIoutputOption\fR
 directive (or similar configuration).
 .IP
-The first OID should always be \fCSNMPv2\-MIB::sysUpTime.0\fR,
-and the second should be \fCSNMPv2\-MIB::snmpTrapOID.0\fR.
+The first OID should always be \fCSNMPv2-MIB::sysUpTime.0\fR,
+and the second should be \fCSNMPv2-MIB::snmpTrapOID.0\fR.
 The remaining lines will contain the payload varbind list.
-For SNMPv1 traps, the final OID will be \fCSNMPv2\-MIB::snmpTrapEnterprise.0\fR.
+For SNMPv1 traps, the final OID will be \fCSNMPv2-MIB::snmpTrapEnterprise.0\fR.
 .br
 .IP Example:
 A \fBtraptoemail\fR script has been included in the Net-SNMP package that
@@ -230,7 +226,7 @@ can be used within a \fItraphandle\fR directive:
 .br
 .RS
 .P
-traphandle default /usr/bin/perl BINDIR/traptoemail \-s mysmtp.somewhere.com \-f admin at somewhere.com me at somewhere.com
+traphandle default /usr/bin/perl BINDIR/traptoemail -s mysmtp.somewhere.com -f admin at somewhere.com me at somewhere.com
 .RE
 .RE
 .IP "forward OID|default DESTINATION"
@@ -262,5 +258,5 @@ directives are typically only used to enable the appropriate behaviour.
 .SH FILES
 SYSCONFDIR/snmp/snmptrapd.conf
 .SH "SEE ALSO"
-snmp_config(5), snmptrapd(8), syslog(8), variables(5), snmpd.conf(5), netsnmp_config_api(3).
+snmp_config(5), snmptrapd(8), syslog(8), variables(5), snmpd.conf(5), read_config(3).
 
diff --git a/man/snmpusm.1.def b/man/snmpusm.1.def
index 9061213..5b6045b 100644
--- a/man/snmpusm.1.def
+++ b/man/snmpusm.1.def
@@ -1,34 +1,35 @@
-.TH SNMPUSM 1 "11 Dec 2009" VVERSIONINFO "Net-SNMP"
+.TH SNMPUSM 1 "22 Oct 2005" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpusm - creates and maintains SNMPv3 users on a network entity
 .SH SYNOPSIS
 .B snmpusm
-[COMMON OPTIONS] [\-Cw] AGENT
+[COMMON OPTIONS]
 .B create
 USER [CLONEFROM-USER]
 .br
 .B snmpusm
-[COMMON OPTIONS] AGENT
+[COMMON OPTIONS]
 .B delete
 USER
 .br
 .B snmpusm
-[COMMON OPTIONS] AGENT
+[COMMON OPTIONS]
 .B cloneFrom
 USER CLONEFROM-USER
 .br
 .B snmpusm
-[COMMON OPTIONS] [\-Ca] [\-Cx] AGENT
+[COMMON OPTIONS] [-Ca] [-Cx]
 .B passwd
 OLD-PASSPHRASE NEW-PASSPHRASE [USER]
 .br
 .B snmpusm
-[COMMON OPTIONS] <\-Ca | \-Cx> \-Ck AGENT
+[COMMON OPTIONS] <-Ca | -Cx> -Ck
 .B passwd
 OLD-KEY-OR-PASSPHRASE NEW-KEY-OR-PASSPHRASE [USER]
 .br
 .B snmpusm
-[COMMON OPTIONS] [\-Ca] [\-Cx] AGENT
+[COMMON OPTIONS] [-Ca] [-Cx]
 .B changekey
 [USER]
 
@@ -46,12 +47,12 @@ Common options for all
 .B snmpusm
 commands:
 .TP
-.BI \-CE " ENGINE-ID"
+.BI -CE " ENGINE-ID"
 Set usmUserEngineID to be used as part of the index of the usmUserTable.
-Default is to use the contextEngineID (set via \-E or probed) as the 
+Default is to use the contextEngineID (set via -E or probed) as the 
 usmUserEngineID.
 .TP
-.BI \-Cp " STRING"
+.BI -Cp " STRING"
 Set the usmUserPublic value of the (new) user to the specified STRING.
 .PP
 Options for the
@@ -60,15 +61,15 @@ and
 .B changekey
 commands:
 .TP
-.BI \-Ca
+.BI -Ca
 Change the authentication key.
 .TP
-.BI \-Cx
+.BI -Cx
 Change the privacy key.
 .TP
-.BI \-Ck
-Allows one to use localized key (must start with 0x) instead of passphrase.
-When this option is used, either the \-Ca or \-Cx option (but not both) must also
+.BI -Ck
+Allows to use localized key (must start with 0x) instead of passphrase.
+When this option is used, either the -Ca or -Cx option (but not both) must also
 be used.
 
 .SH CREATING USERS
@@ -76,23 +77,20 @@ be used.
 An unauthenticated SNMPv3 user can be created using the command
 .IP
 .B snmpusm
-[COMMON OPTIONS] AGENT create USER
+[OPTIONS] create USER
 .PP
 This constructs an (inactive) entry in the usmUserTable,
 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.  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.
+to be made active.
 
 .PP
 In order to activate this entry, it is necessary to "clone" an existing
 user, using the command
 .IP
 .B snmpusm
-[COMMON OPTIONS] AGENT cloneFrom USER CLONEFROM-USER
+[OPTIONS] cloneFrom USER CLONEFROM-USER
 .PP
 The USER entry then inherits the same authentication and privacy
 settings (including pass phrases) as the CLONEFROM user.
@@ -101,7 +99,7 @@ settings (including pass phrases) as the CLONEFROM user.
 These two steps can be combined into one, by using the command
 .IP
 .B snmpusm
-[COMMON OPTIONS] AGENT create USER CLONEFROM-USER
+[OPTIONS] create USER CLONEFROM-USER
 
 .PP
 The two forms of the
@@ -137,7 +135,7 @@ configuration directive.
 A user can be deleted from the usmUserTable using the command
 .IP
 .B snmpusm
-[COMMON OPTIONS] AGENT delete USER
+[OPTIONS] delete USER
 
 .SH CHANGING PASS PHRASES
 User profiles contain private keys that are never
@@ -148,7 +146,7 @@ user's old passphrase as well as the new one.
 This uses the command
 .IP
 .B snmpusm
-[COMMON OPTIONS] [\-Ca] [\-Cx] AGENT passwd OLD-PASSPHRASE NEW-PASSPHRASE [USER]
+[OPTIONS] [-Ca] [-Cx] passwd OLD-PASSPHRASE NEW-PASSPHRASE [USER]
 
 .PP
 After cloning a new user entry from the appropriate template,
@@ -156,21 +154,21 @@ you should immediately change the new user's passphrase.
 
 .PP
 If USER is not specified, this command will change the passphrase
-of the (SNMPv3) user issuing the command.  If the \-Ca or \-Cx options
+of the (SNMPv3) user issuing the command.  If the -Ca or -Cx options
 are specified, then only the authentication or privacy keys are changed.  If
 these options are not specified, then both the authentication and privacy keys
 are changed.
 
 .IP
 .B snmpusm
-[COMMON OPTIONS] [\-Ca] [\-Cx] AGENT changekey [USER]
+[OPTIONS] [-Ca] [-Cx] changekey [USER]
 
 .PP
 This command changes the key in a perfect-forward-secrecy compliant
 way through a diffie-helman exchange.  The remote agent must support
-the SNMP\-USM\-DH\-OBJECTS\-MIB for this command to work.  The resulting
+the SNMP-USM-DH-OBJECTS-MIB for this command to work.  The resulting
 keys are printed to the console and may be then set in future command
-invocations using the \-\-defAuthLocalizedKey and \-\-defPrivLocalizedKey
+invocations using the --defAuthLocalizedKey and --defPrivLocalizedKey
 options or in your snmp.conf file using the defAuthLocalizedKey and
 defPrivLocalizedKey keywords.
 
@@ -187,20 +185,15 @@ sub-command is used:
 
 .IP
 .B snmpusm
-[COMMON OPTIONS] <\-Ca | \-Cx> \-Ck AGENT passwd OLD-KEY-OR-PASSPHRASE NEW-KEY-OR-PASSPHRASE [USER]
+[OPTIONS] <-Ca | -Cx> -Ck passwd OLD-KEY-OR-PASSPHRASE NEW-KEY-OR-PASSPHRASE [USER]
 
 .PP
-Either the \-Ca or the \-Cx option must be specified.  The OLD-KEY-OR-PASSPHRASE
+Either the -Ca or the -Cx option must be specified.  The OLD-KEY-OR-PASSPHRASE
 and/or NEW-KEY-OR-PASSPHRASE arguments can either be a passphrase or a
 localized key starting with "0x", e.g. as printed out by the
 .B changekey
 sub-command.
 
-.PP
-Note that
-.B snmpusm
-REQUIRES  an argument specifying the agent to query
-as described in the .I snmpcmd(1) manual page.
 .SH EXAMPLES
 .PP
 Let's assume for our examples that the following VACM and USM
@@ -229,7 +222,7 @@ Note: passphrases must be 8 characters
 in length.
 .SS Create a new user
 .PP
-snmpusm \-v3 \-u initial \-n "" \-l authNoPriv \-a MD5 \-A setup_passphrase
+snmpusm -v3 -u initial -n "" -l authNoPriv -a MD5 -A setup_passphrase
 localhost create wes initial
 .IP
 Creates a new user, here named "wes" using the user "initial" to do
@@ -237,7 +230,7 @@ it.  "wes" is cloned from "initial" in the process, so he inherits
 that user's passphrase ("setup_passphrase").
 .SS Change the user's passphrase
 .PP
-snmpusm \-v 3 \-u wes \-n "" \-l authNoPriv \-a MD5 \-A setup_passphrase
+snmpusm -v 3 -u wes -n "" -l authNoPriv -a MD5 -A setup_passphrase
 localhost passwd setup_passphrase new_passphrase
 .IP
 After creating the user "wes" with the same passphrase as the
@@ -246,7 +239,7 @@ command changes it from "setup_passphrase", which was inherited from
 the initial user, to "new_passphrase".
 .SS Test the new user
 .PP
-snmpget \-v 3 \-u wes \-n "" \-l authNoPriv \-a MD5 \-A new_passphrase
+snmpget -v 3 -u wes -n "" -l authNoPriv -a MD5 -A new_passphrase
 localhost sysUpTime.0
 .IP
 If the above commands were successful, this command should have
diff --git a/man/snmpvacm.1.def b/man/snmpvacm.1.def
index 70b089e..a854fd5 100644
--- a/man/snmpvacm.1.def
+++ b/man/snmpvacm.1.def
@@ -1,44 +1,45 @@
-.TH SNMPVACM 1 "05 Sep 2006" VVERSIONINFO "Net-SNMP"
+.TH SNMPVACM 1 "30 May 2003" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpvacm - creates and maintains SNMPv3 View-based Access Control entries on a network entity
 .SH SYNOPSIS
 .B snmpvacm
-[COMMON OPTIONS] AGENT
+[COMMON OPTIONS]
 .B createSec2Group
 MODEL SECURITYNAME  GROUPNAME
 .br
 .B snmpvacm
-[COMMON OPTIONS] AGENT
+[COMMON OPTIONS]
 .B deleteSec2Group
 MODEL SECURITYNAME
 .br
 .B snmpvacm
-[COMMON OPTIONS] AGENT
+[COMMON OPTIONS]
 .B createView
-[\-Ce] NAME SUBTREE MASK
+[-Ce] NAME SUBTREE MASK
 .br
 .B snmpvacm
-[COMMON OPTIONS] AGENT
+[COMMON OPTIONS]
 .B deleteView
 NAME SUBTREE
 .br
 .B snmpvacm
-[COMMON OPTIONS]  AGENT
+[COMMON OPTIONS] 
 .B createAccess
 GROUPNAME [CONTEXTPREFIX] MODEL LEVEL CONTEXTMATCH READVIEW WRITEVIEW NOTIFYVIEW
 .br
 .B snmpvacm
-[COMMON OPTIONS]  AGENT
+[COMMON OPTIONS] 
 .B deleteAccess
 GROUPNAME [CONTEXTPREFIX] MODEL LEVEL
 .br
 .B snmpvacm
-[COMMON OPTIONS]  AGENT
+[COMMON OPTIONS] 
 .B createAuth
 GROUPNAME [CONTEXTPREFIX] MODEL LEVEL AUTHTYPE CONTEXTMATCH VIEW 
 .br
 .B snmpvacm
-[COMMON OPTIONS]  AGENT
+[COMMON OPTIONS] 
 .B deleteAuth
 GROUPNAME [CONTEXTPREFIX] MODEL LEVEL AUTHTYPE
 
@@ -102,7 +103,7 @@ in the corresponding
 .B createSec2Group
 command (or equivalent).
 
-.SS createView \fR[\-Ce] NAME SUBTREE MASK\fP
+.SS createView \fR[-Ce] NAME SUBTREE MASK\fP
 .PP
 Create an entry in the SNMPv3 MIB view table.
 A MIB view consists of a family of view subtrees which may be individually
@@ -110,7 +111,7 @@ included in or (occasionally) excluded from the view.  Each view subtree is
 defined by a combination of an OID subtree together with a bit string mask.
 The view table is indexed by the view name and subtree OID values.
 .PP
-[\-Ce]
+[-Ce]
 .IP
 An optional flag to indicate that this view subtree should be excluded
 from the named view.
@@ -283,12 +284,6 @@ which should match those used in the corresponding
 .B createAuth
 command (or equivalent).
 
-.PP
-Note that
-.B snmpget
-REQUIRES  an argument specifying the agent to query
-as described in the .I snmpcmd(1) manual page.
-
 .SH EXAMPLES
 .PP
 Given a pre-existing user
@@ -327,7 +322,7 @@ snmpvacm localhost createAccess  ROGroup 3 0 1 sysView none none
 .PP
 This creates a new security group named "ROGroup" containing the (pre-existing)
 user "wes", a new view "sysView" containing just the OID tree based on
-.I .iso(1).org(3).dod(6).inet(1).mgmt(2).mib\-2(1).system(1)
+.I .iso(1).org(3).dod(6).inet(1).mgmt(2).mib-2(1).system(1)
 , and then allows those users in the group "ROGroup" (i.e. "wes")
 read-access, but not write-access to the view "sysView" (i.e. the system group).
 
diff --git a/man/snmpwalk.1.def b/man/snmpwalk.1.def
index ef78660..8bd5623 100644
--- a/man/snmpwalk.1.def
+++ b/man/snmpwalk.1.def
@@ -1,7 +1,3 @@
-.\" -*- 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:
 .\" /***********************************************************
 .\" 	Copyright 1988, 1989 by Carnegie Mellon University
 .\" 
@@ -23,12 +19,13 @@
 .\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 .\" SOFTWARE.
 .\" ******************************************************************/
-.TH SNMPWALK 1 "28 May 2007" VVERSIONINFO "Net-SNMP"
+.TH SNMPWALK 1 "08 Feb 2002" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
 snmpwalk - retrieve a subtree of management values using SNMP GETNEXT requests
 .SH SYNOPSIS
 .B snmpwalk
-[APPLICATION OPTIONS] [COMMON OPTIONS] AGENT [OID]
+[APPLICATION OPTIONS] [COMMON OPTIONS] [OID]
 .SH DESCRIPTION
 .B snmpwalk
 is an SNMP application that uses SNMP GETNEXT requests to query a
@@ -43,7 +40,7 @@ Each variable name is given in the format specified in
 .PP
 If no OID argument is present,
 .B snmpwalk
-will search the subtree rooted at SNMPv2\-SMI::mib\-2
+will search the subtree rooted at SNMPv2-SMI::mib-2
 (including any MIB object values from other MIB modules,
 that are defined as lying within this subtree).
 If the network entity has an error processing the request packet, an
@@ -54,7 +51,7 @@ If the tree search causes attempts to search beyond the end of the
 MIB, the message "End of MIB" will be displayed.
 .SH OPTIONS
 .TP 8
-.B \-Cc
+.B -Cc
 Do not check whether the returned OIDs are increasing.  Some agents
 (LaserJets are an example) return OIDs out of order, but can
 complete the walk anyway.  Other agents return OIDs that are out of
@@ -64,15 +61,10 @@ to loop indefinitely.  By default,
 .B snmpwalk
 tries to detect this behavior and warns you when it hits an agent
 acting illegally.  Use
-.B \-Cc
+.B -Cc
 to turn off this check.
 .TP
-.B \-CE {OID}
-End the walk at the specified OID, rather than a simple subtree.
-This can be used to walk a partial subtree, selected columns of
-a table, or even two or more tables within a single command.
-.TP
-.B \-Ci
+.B -Ci
 Include the given OID in the search range.  Normally
 .B snmpwalk
 uses GETNEXT requests starting with the OID you specified and returns
@@ -81,7 +73,7 @@ wish to include the OID specified on the command line in the printed
 results if it is a valid OID in the tree itself.  This option lets you
 do this explicitly.
 .TP
-.B \-CI
+.B -CI
 In fact, the given OID will be retrieved automatically if the main
 subtree walk returns no useable values.  This allows a walk of a
 single instance to behave as generally expected, and return the
@@ -89,10 +81,10 @@ specified instance value.
 This option turns off this final GET request, so a walk of a
 single instance will return nothing.
 .TP
-.B \-Cp
+.B -Cp
 Upon completion of the walk, print the number of variables found.
 .TP
-.B \-Ct
+.B -Ct
 Upon completion of the walk, print the total wall-clock time it took
 to collect the data (in seconds).  Note that the timer is started just
 before the beginning of the data request series and stopped just after
@@ -105,15 +97,10 @@ In addition to these options,
 takes the common options described in the 
 .I snmpcmd(1)
 manual page.
-.SH EXAMPLES
-.br
-Note that
-.B snmpbulkget
-REQUIRES  an argument specifying the agent to query
-and at most one OID argument, as described there.
+.SH EXAMPLE
 The command:
 .PP
-snmpwalk \-Os \-c public \-v 1 zeus system
+snmpwalk -Os -c public -v 1 zeus system
 .PP
 will retrieve all of the variables under system:
 .PP
@@ -130,13 +117,5 @@ sysName.0 = STRING: "zeus.net.cmu.edu"
 sysLocation.0 = STRING: ""
 .br
 sysServices.0 = INTEGER: 72
-.br
-(plus the contents of the sysORTable).
-
-The command:
-.PP
-snmpwalk \-Os \-c public \-v 1 \-CE sysORTable zeus system
-.PP
-will retrieve the scalar values, but omit the sysORTable.
 .SH "SEE ALSO"
 snmpcmd(1), snmpbulkwalk(1), variables(5).
diff --git a/man/tkmib.1.def b/man/tkmib.1.def
index f0253b9..da03c76 100644
--- a/man/tkmib.1.def
+++ b/man/tkmib.1.def
@@ -1,4 +1,5 @@
 .TH tkmib "1" "16 Nov 2006" VVERSIONINFO "Net-SNMP"
+.UC 5
 .SH NAME
 tkmib - an interactive graphical MIB browser for SNMP
 .SH SYNOPSIS
diff --git a/man/traptoemail.1.def b/man/traptoemail.1.def
index 4080f36..a6e8944 100644
--- a/man/traptoemail.1.def
+++ b/man/traptoemail.1.def
@@ -1,4 +1,5 @@
 .TH traptoemail "1" "16 Nov 2006" VVERSIONINFO "Net-SNMP"
+.UC 5
 .SH NAME
 traptoemail - snmptrapd handler script to convert snmp traps into emails
 .SH SYNOPSIS
diff --git a/man/variables.5.def b/man/variables.5.def
index 14ee5e2..241431e 100644
--- a/man/variables.5.def
+++ b/man/variables.5.def
@@ -1,7 +1,3 @@
-.\" -*- 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:
 .\" /***********************************************************
 .\" 	Copyright 1988, 1989 by Carnegie Mellon University
 .\" 
@@ -23,154 +19,38 @@
 .\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 .\" SOFTWARE.
 .\" ******************************************************************/
-.TH VARIABLES 5 "01 Oct 2010" VVERSIONINFO "Net-SNMP"
+.TH VARIABLES 5 "02 Mar 1999" VVERSIONINFO "Net-SNMP"
+.UC 4
 .SH NAME
     variables - Format of specifying variable names to SNMP tools.
+.SH SYNOPSIS
+    system.sysdescr.0
 .SH DESCRIPTION
-The syntax and semantics of management information in SNMP is
-given by the definitions of MIB objects, loaded from one or more
-MIB files (or "MIB modules").  These definitions are not strictly
-required for the SNMP protocol to operate correctly, but are typically
-needed by SNMP client applications to display information in a
-meaningful manner.
-
-The MIB file also serves as a design document when developing an SNMP
-agent (or sub-agent) that provides this information, and ensures that
-client and server share a common understanding about what management
-information represents.
-
-.SH OIDs
-MIB objects are specified using Object Identifiers (OIDs), which can
-take a number of forms.   Note that all of the examples in this section
-refer to the same MIB object.
-.SS Numeric OIDs
-The fundamental format of an OID is a sequence of integer values
-(or "subidentifiers"), typically written using dots to separate
-the individual subidentifiers.
-.RS
- .1.3.6.1.2.1.1.1
-.RE
-This is the format that is used within the SNMP protocol itself,
-in the packets that are sent over the network.
+Variable names are in the format of Object Identifiers (ASN.1).  There are
+several methods of representation. Each variable name is given in the format of A.B.C.D...,
+where A, B, C, and D are subidentifiers in one of two forms of notation.
+Each subidentifier may be encoded as a decimal integer, or a symbol as found in
+the RFC1066 MIB.  The case of the symbols is not significant.
+.br
+If there is no leading "." in the variable name, the name will be formed
+as if having been preceded with "iso.org.dod.internet.mgmt.mib.".  A "." must
+be placed before the first variable if the user is to fully specify the name.
+For example:
 .PP
-This form of representing an OID does not require MIB files or MIB
-object definitions to be available.  However it does rely on the
-client application and/or network administrator knowing what a
-given numeric OID refers to.  As such, it is not a particularly
-helpful representation to anyone just starting out with SNMP.
+.I 1.1.0  system.sysDescr.0 and 1.sysDescr.0
 .PP
-This format can be obtained by giving the command-line option
--On
-to most Net-SNMP commands.
-
-.SS Full OID path
-A similar (but somewhat more informative) format uses the same
-dotted list representation, but with the numeric subidentifiers
-replaced by names, taken from the relevant MIB file(s).
-.RS
- .iso.org.dod.internet.mgmt.mib-2.system.sysDescr
-.RE
-This uniquely identifies a particular MIB object (as with the numeric
-OID), but the list of names should hopefully give some indication as
-to what information this object represents.  However it does rely on
-the relevant MIB files being available (as do all formats other than
-the purely numeric OID).  Such OIDs also tend to be fairly long!
+all refer to the same variable name.  Likewise:
 .PP
-This format can be obtained by giving the command-line option
--Of
-to most Net-SNMP commands.
-.PP
-A variant of this (typically used when writing OIDs in descriptive
-text, rather than running programs), is to combine the name and
-numeric subidentifier:
-.RS
- .iso(1).org(3).dod(6).internet(1).mgmt(2).mib-2(1).system(1).sysDescr(1)
-.RE
-
-.SS Module-qualified OIDs
-An alternative way to (more-or-less) uniquely specify an OID,
-is to give the name of the MIB object, together with the MIB
-module where it is defined.
-.RS
-SNMPv2-MIB::sysDescr
-.RE
-MIB object names are unique within a given module, so as long
-as there are not two MIB modules with the same name (which is
-unusual, though not unheard of), this format specifies the
-desired object in a reasonably compact form.  It also makes
-it relatively easy to find the definition of the MIB object.
-.PP
-This is the default format for displaying OIDs in Net-SNMP applications.
-It can also be specified explicitly by giving the command-line option
--OS
-to most Net-SNMP commands.
-
-.SS Object name
-Possibly the most common form for specifying MIB objects is
-using the name of the object alone - without the full path or
-the name of the module that defines it.
-.RS
-sysDescr
-.RE
-This is by far the shortest and most convenient way to refer to
-a MIB object.  However the danger is that if two MIB modules each
-define a MIB object with the same name (which is perfectly legal
-in some circumstances), then it's not necessarily clear which MIB
-object is actually meant.
-For day-to-day use, particularly when using standard MIB objects,
-this is \fIprobaby\fP safe.
-But it's important to be aware of the potential ambiguities.
-.PP
-This format can be obtained by giving the command-line option
--Os
-to most Net-SNMP commands.
-
-.SS UCD-format
-Previous versions of the code (UCD v4.x and earlier) used a
-simple approach to shortening the way OIDs were specified.
-If the full path of the OID began with
-\fC.iso.org.dod.internet.mgmt.mib-2\fP
-then this prefix was removed from the OID before displaying it.
-All other OIDs were displayed in full.
+.I .1.3.6.1.2.1.1.1.0 .iso.org.dod.internet.mgmt.mib.system.sysdescr.0 .1.3.6.1.2.1.1.sysdescr.0
 .PP
-Similarly, if an OID was passed to the UCD library that did
-not begin with a dot (and wasn't in the module::name format),
-then the same prefix was prepended.   The example OID from the
-formats listed above would therefore be given or displayed as
-.RS
-system.sysDescr
-.RE
-The inconsistent handling of OIDs, depending on their location
-within the OID tree, proved to be more trouble than it was worth,
-and this format is no longer recommended.
+All refer to the same variable name.
 .PP
-The previous behaviour can be obtained by giving the command-line
-option
--Ou
-(for displaying output), or
--Iu
-(for interpreting input OIDs without a leading dot)
-to most Net-SNMP commands.
-.\"
-.\" ====================================
-.\"
-.\" ToDo:
-.\"   Instances:
-.\"      Scalars
-.\"      Tables & indexing
-.\"         string indexes - 'abc' vs "abc"
-'\"      Internal objects
-.\"
-.\"  ? Syntax types
-.\"
-.\" ====================================
-.\".PP
-.\"The description of the variables in the MIB is given in the set of MIB
-.\"files defined by the MIBS environment variable (or the default list
-.\"defined at compilation time) and the MIB files in the
-.\"DATADIR/snmp/mibs directory (or the MIBDIRS environment variable).
+The description of the variables in the MIB is given in the set of MIB
+files defined by the MIBS environment variable (or the default list
+defined at compilation time) and the MIB files in the
+DATADIR/snmp/mibs directory (or the MIBDIRS environment variable).
 .SH "SEE ALSO"
-snmpcmd(1)
+RFC 1065, RFC 1066, RFC 1067, ISO IS 8824(ASN.1)
 .SH BUGS
 The parser of the MIB files file is not expected to handle bizarre
 (although correct) interpretations of the ASN.1 notation.
diff --git a/mibs/AGENTX-MIB.txt b/mibs/AGENTX-MIB.txt
deleted file mode 100644
index f9e5acd..0000000
--- a/mibs/AGENTX-MIB.txt
+++ /dev/null
@@ -1,527 +0,0 @@
-AGENTX-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
- MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, mib-2
-    FROM SNMPv2-SMI
- SnmpAdminString
-    FROM SNMP-FRAMEWORK-MIB
- MODULE-COMPLIANCE, OBJECT-GROUP
-    FROM SNMPv2-CONF
- TEXTUAL-CONVENTION, TimeStamp, TruthValue, TDomain
-    FROM SNMPv2-TC;
-agentxMIB MODULE-IDENTITY
- LAST-UPDATED "200001100000Z" -- Midnight 10 January 2000
- ORGANIZATION "AgentX Working Group"
- CONTACT-INFO "WG-email:   agentx at dorothy.bmc.com
-               Subscribe:  agentx-request at dorothy.bmc.com
-               WG-email Archive:  ftp://ftp.peer.com/pub/agentx/archives
-               FTP repository:  ftp://ftp.peer.com/pub/agentx
-               http://www.ietf.org/html.charters/agentx-charter.html
-
-               Chair:      Bob Natale
-                           ACE*COMM Corporation
-               Email:      bnatale at acecomm.com
-
-               WG editor:  Mark Ellison
-                           Ellison Software Consulting, Inc.
-               Email:      ellison at world.std.com
-
-               Co-author:  Lauren Heintz
-                           Cisco Systems,
-               EMail:      lheintz at cisco.com
-
-               Co-author:  Smitha Gudur
-                           Independent Consultant
-               Email:      sgudur at hotmail.com
-              "
- DESCRIPTION    "This is the MIB module for the SNMP Agent Extensibility
-     Protocol (AgentX).  This MIB module will be implemented by
-     the master agent.
-    "
-
-  REVISION     "200001100000Z" -- Midnight 10 January 2000
- DESCRIPTION
-    "Initial version published as RFC 2742."
-  ::= { mib-2  74 }
-
- -- Textual Conventions
-
- AgentxTAddress ::= TEXTUAL-CONVENTION
-   STATUS       current
-   DESCRIPTION
-     "Denotes a transport service address.  This is identical to
-      the TAddress textual convention (SNMPv2-SMI) except that
-      zero-length values are permitted.
-     "
-   SYNTAX       OCTET STRING (SIZE (0..255))
-
- -- Administrative assignments
-
- agentxObjects OBJECT IDENTIFIER      ::= { agentxMIB 1 }
- agentxGeneral OBJECT IDENTIFIER      ::= { agentxObjects 1 }
- agentxConnection OBJECT IDENTIFIER   ::= { agentxObjects 2 }
- agentxSession OBJECT IDENTIFIER      ::= { agentxObjects 3 }
- agentxRegistration OBJECT IDENTIFIER ::= { agentxObjects 4 }
-
- agentxDefaultTimeout OBJECT-TYPE
-  SYNTAX      INTEGER (0..255)
-  UNITS       "seconds"
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "The default length of time, in seconds, that the master
-      agent should allow to elapse after dispatching a message
-      to a session before it regards the subagent as not
-      responding.  This is a system-wide value that may
-      override the timeout value associated with a particular
-      session (agentxSessionTimeout) or a particular registered
-      MIB region (agentxRegTimeout).  If the associated value of
-      agentxSessionTimeout and agentxRegTimeout are zero, or
-      impractical in accordance with implementation-specific
-      procedure of the master agent, the value represented by
-      this object will be the effective timeout value for the
-
-      master agent to await a response to a dispatch from a
-      given subagent.
-     "
-  DEFVAL      { 5 }
-  ::= { agentxGeneral 1 }
-
- agentxMasterAgentXVer OBJECT-TYPE
-  SYNTAX      INTEGER (1..255)
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "The AgentX protocol version supported by this master agent.
-      The current protocol version is 1.  Note that the master agent
-      must also allow interaction with earlier version subagents.
-     "
-  ::= { agentxGeneral 2 }
-
- --      The AgentX Subagent Connection Group
-
- agentxConnTableLastChange OBJECT-TYPE
-  SYNTAX      TimeStamp
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "The value of sysUpTime when the last row creation or deletion
-      occurred in the agentxConnectionTable.
-     "
-  ::= { agentxConnection 1 }
-
- agentxConnectionTable OBJECT-TYPE
-   SYNTAX      SEQUENCE OF AgentxConnectionEntry
-   MAX-ACCESS  not-accessible
-   STATUS      current
-   DESCRIPTION
-     "The agentxConnectionTable tracks all current AgentX transport
-      connections.  There may be zero, one, or more AgentX sessions
-      carried on a given AgentX connection.
-     "
-   ::= { agentxConnection 2 }
-
- agentxConnectionEntry OBJECT-TYPE
-   SYNTAX      AgentxConnectionEntry
-   MAX-ACCESS  not-accessible
-   STATUS      current
-   DESCRIPTION
-     "An agentxConnectionEntry contains information describing a
-      single AgentX transport connection.  A connection may be
-
-      used to support zero or more AgentX sessions.  An entry is
-      created when a new transport connection is established,
-      and is destroyed when the transport connection is terminated.
-     "
-   INDEX { agentxConnIndex }
-   ::= { agentxConnectionTable 1 }
-
- AgentxConnectionEntry ::= SEQUENCE {
-          agentxConnIndex            Unsigned32,
-          agentxConnOpenTime         TimeStamp,
-          agentxConnTransportDomain  TDomain,
-          agentxConnTransportAddress AgentxTAddress }
-
- agentxConnIndex OBJECT-TYPE
-   SYNTAX       Unsigned32 (1..4294967295)
-   MAX-ACCESS   not-accessible
-   STATUS       current
-   DESCRIPTION
-     "agentxConnIndex contains the value that uniquely identifies
-      an open transport connection used by this master agent
-      to provide AgentX service.  Values of this index should
-      not be re-used.  The value assigned to a given transport
-      connection is constant for the lifetime of that connection.
-     "
-   ::= { agentxConnectionEntry 1 }
-
- agentxConnOpenTime OBJECT-TYPE
-   SYNTAX       TimeStamp
-   MAX-ACCESS   read-only
-   STATUS       current
-   DESCRIPTION
-     "The value of sysUpTime when this connection was established
-      and, therefore, its value when this entry was added to the table.
-     "
-   ::= { agentxConnectionEntry 2 }
-
- agentxConnTransportDomain OBJECT-TYPE
-   SYNTAX       TDomain
-   MAX-ACCESS   read-only
-   STATUS       current
-   DESCRIPTION
-     "The transport protocol in use for this connection to the
-      subagent.
-     "
-   ::= { agentxConnectionEntry 3 }
-
- agentxConnTransportAddress OBJECT-TYPE
-   SYNTAX       AgentxTAddress
-   MAX-ACCESS   read-only
-   STATUS       current
-   DESCRIPTION
-     "The transport address of the remote (subagent) end of this
-      connection to the master agent.  This object may be zero-length
-      for unix-domain sockets (and possibly other types of transport
-      addresses) since the subagent need not bind a filename to its
-      local socket.
-     "
-   ::= { agentxConnectionEntry 4 }
-
- -- The AgentX Subagent Session Group
-
- agentxSessionTableLastChange OBJECT-TYPE
-  SYNTAX      TimeStamp
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "The value of sysUpTime when the last row creation or deletion
-      occurred in the agentxSessionTable.
-     "
-  ::= { agentxSession 1 }
-
- agentxSessionTable OBJECT-TYPE
-  SYNTAX      SEQUENCE OF AgentxSessionEntry
-  MAX-ACCESS  not-accessible
-  STATUS      current
-  DESCRIPTION
-     "A table of AgentX subagent sessions currently in effect.
-     "
-  ::= { agentxSession 2 }
-
- agentxSessionEntry OBJECT-TYPE
-  SYNTAX      AgentxSessionEntry
-  MAX-ACCESS  not-accessible
-  STATUS      current
-  DESCRIPTION
-     "Information about a single open session between the AgentX
-      master agent and a subagent is contained in this entry.  An
-      entry is created when a new session is successfully established
-      and is destroyed either when the subagent transport connection
-      has terminated or when the subagent session is closed.
-     "
-  INDEX       { agentxConnIndex, agentxSessionIndex }
-  ::= { agentxSessionTable 1 }
-
- AgentxSessionEntry ::= SEQUENCE {
-  agentxSessionIndex         Unsigned32,
-  agentxSessionObjectID      OBJECT IDENTIFIER,
-  agentxSessionDescr         SnmpAdminString,
-  agentxSessionAdminStatus   INTEGER,
-  agentxSessionOpenTime      TimeStamp,
-  agentxSessionAgentXVer     INTEGER,
-  agentxSessionTimeout       INTEGER
- }
-
- agentxSessionIndex OBJECT-TYPE
-  SYNTAX      Unsigned32 (0..4294967295)
-  MAX-ACCESS  not-accessible
-  STATUS      current
-  DESCRIPTION
-     "A unique index for the subagent session.  It is the same as
-      h.sessionID defined in the agentx header.  Note that if
-      a subagent's session with the master agent is closed for
-      any reason its index should not be re-used.
-      A value of zero(0) is specifically allowed in order
-      to be compatible with the definition of h.sessionId.
-     "
-  ::= { agentxSessionEntry 1 }
-
- agentxSessionObjectID OBJECT-TYPE
-  SYNTAX      OBJECT IDENTIFIER
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "This is taken from the o.id field of the agentx-Open-PDU.
-      This attribute will report a value of '0.0' for subagents
-      not supporting the notion of an AgentX session object
-      identifier.
-     "
-  ::= { agentxSessionEntry 2 }
-
- agentxSessionDescr OBJECT-TYPE
-  SYNTAX      SnmpAdminString
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "A textual description of the session.  This is analogous to
-      sysDescr defined in the SNMPv2-MIB in RFC 1907 [19] and is
-      taken from the o.descr field of the agentx-Open-PDU.
-      This attribute will report a zero-length string value for
-      subagents not supporting the notion of a session description.
-     "
-  ::= { agentxSessionEntry 3 }
-
- agentxSessionAdminStatus OBJECT-TYPE
-  SYNTAX      INTEGER {
-                 up(1),
-                 down(2)
-              }
-  MAX-ACCESS  read-write
-  STATUS      current
-  DESCRIPTION
-     "The administrative (desired) status of the session.  Setting
-      the value to 'down(2)' closes the subagent session (with c.reason
-      set to 'reasonByManager').
-     "
-  ::= { agentxSessionEntry 4 }
-
- agentxSessionOpenTime OBJECT-TYPE
-  SYNTAX      TimeStamp
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "The value of sysUpTime when this session was opened and,
-      therefore, its value when this entry was added to the table.
-     "
-  ::= { agentxSessionEntry 5 }
-
- agentxSessionAgentXVer OBJECT-TYPE
-  SYNTAX      INTEGER (1..255)
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "The version of the AgentX protocol supported by the
-      session.  This must be less than or equal to the value of
-      agentxMasterAgentXVer.
-     "
-  ::= { agentxSessionEntry 6 }
-
- agentxSessionTimeout OBJECT-TYPE
-  SYNTAX     INTEGER (0..255)
-  UNITS      "seconds"
-  MAX-ACCESS read-only
-  STATUS     current
-  DESCRIPTION
-     "The length of time, in seconds, that a master agent should
-      allow to elapse after dispatching a message to this session
-      before it regards the subagent as not responding.  This value
-      is taken from the o.timeout field of the agentx-Open-PDU.
-      This is a session-specific value that may be overridden by
-      values associated with the specific registered MIB regions
-      (see agentxRegTimeout). A value of zero(0) indicates that
-      the master agent's default timeout value should be used
-
-      (see agentxDefaultTimeout).
-     "
-  ::= { agentxSessionEntry 7 }
-
- -- The AgentX Registration Group
-
- agentxRegistrationTableLastChange OBJECT-TYPE
-  SYNTAX      TimeStamp
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "The value of sysUpTime when the last row creation or deletion
-      occurred in the agentxRegistrationTable.
-     "
-  ::= { agentxRegistration 1 }
-
- agentxRegistrationTable OBJECT-TYPE
-  SYNTAX      SEQUENCE OF AgentxRegistrationEntry
-  MAX-ACCESS  not-accessible
-  STATUS      current
-  DESCRIPTION
-     "A table of registered regions.
-     "
-  ::= { agentxRegistration 2 }
-
- agentxRegistrationEntry OBJECT-TYPE
-  SYNTAX      AgentxRegistrationEntry
-  MAX-ACCESS  not-accessible
-  STATUS      current
-  DESCRIPTION
-     "Contains information for a single registered region.  An
-      entry is created when a session  successfully registers a
-      region and is destroyed for any of three reasons: this region
-      is unregistered by the session, the session is closed,
-      or the subagent connection is closed.
-     "
-  INDEX       { agentxConnIndex, agentxSessionIndex, agentxRegIndex }
-  ::= { agentxRegistrationTable 1 }
-
- AgentxRegistrationEntry ::= SEQUENCE {
-  agentxRegIndex           Unsigned32,
-  agentxRegContext         OCTET STRING,
-  agentxRegStart           OBJECT IDENTIFIER,
-  agentxRegRangeSubId      Unsigned32,
-  agentxRegUpperBound      Unsigned32,
-  agentxRegPriority        Unsigned32,
-  agentxRegTimeout         INTEGER,
-  agentxRegInstance        TruthValue }
-
- agentxRegIndex OBJECT-TYPE
-  SYNTAX      Unsigned32 (1..4294967295)
-  MAX-ACCESS  not-accessible
-  STATUS      current
-  DESCRIPTION
-     "agentxRegIndex uniquely identifies a registration entry.
-      This value is constant for the lifetime of an entry.
-     "
-  ::= { agentxRegistrationEntry 1 }
-
- agentxRegContext OBJECT-TYPE
-  SYNTAX      OCTET STRING
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "The context in which the session supports the objects in this
-      region.  A zero-length context indicates the default context.
-     "
-  ::= { agentxRegistrationEntry 2 }
-
- agentxRegStart OBJECT-TYPE
-  SYNTAX      OBJECT IDENTIFIER
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "The starting OBJECT IDENTIFIER of this registration entry.  The
-      session identified by agentxSessionIndex implements objects
-      starting at this value (inclusive).  Note that this value could
-      identify an object type, an object instance, or a partial object
-      instance.
-     "
-  ::= { agentxRegistrationEntry 3 }
-
- agentxRegRangeSubId OBJECT-TYPE
-  SYNTAX      Unsigned32
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "agentxRegRangeSubId is used to specify the range.  This is
-      taken from r.region_subid in the registration PDU.  If the value
-      of this object is zero, no range is specified.  If it is non-zero,
-      it identifies the `nth' sub-identifier in r.region for which
-      this entry's agentxRegUpperBound value is substituted in the
-      OID for purposes of defining the region's upper bound.
-     "
-  ::= { agentxRegistrationEntry 4 }
-
- agentxRegUpperBound OBJECT-TYPE
-  SYNTAX      Unsigned32
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-    "agentxRegUpperBound represents the upper-bound sub-identifier in
-     a registration.  This is taken from the r.upper_bound in the
-     registration PDU.  If agentxRegRangeSubid (r.region_subid) is
-     zero, this value is also zero and is not used to define an upper
-     bound for this registration.
-    "
-  ::= { agentxRegistrationEntry 5 }
-
- agentxRegPriority OBJECT-TYPE
-  SYNTAX      Unsigned32
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "The registration priority.  Lower values have higher priority.
-      This value is taken from r.priority in the register PDU.
-      Sessions should use the value of 127 for r.priority if a
-      default value is desired.
-     "
-  ::= { agentxRegistrationEntry 6 }
-
- agentxRegTimeout OBJECT-TYPE
-  SYNTAX      INTEGER (0..255)
-  UNITS       "seconds"
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "The timeout value, in seconds, for responses to
-      requests associated with this registered MIB region.
-      A value of zero(0) indicates the default value (indicated
-      by by agentxSessionTimeout or agentxDefaultTimeout) is to
-      be used.  This value is taken from the r.timeout field of
-      the agentx-Register-PDU.
-     "
-  ::= { agentxRegistrationEntry 7 }
-
- agentxRegInstance OBJECT-TYPE
-  SYNTAX      TruthValue
-  MAX-ACCESS  read-only
-  STATUS      current
-  DESCRIPTION
-     "The value of agentxRegInstance is `true' for
-      registrations for which the INSTANCE_REGISTRATION
-      was set, and is `false' for all other registrations.
-     "
-  ::= { agentxRegistrationEntry 8 }
-
- -- Conformance Statements for AgentX
-
- agentxConformance     OBJECT IDENTIFIER ::= { agentxMIB 2 }
- agentxMIBGroups       OBJECT IDENTIFIER ::= { agentxConformance 1 }
- agentxMIBCompliances  OBJECT IDENTIFIER ::= { agentxConformance 2 }
-
- -- Compliance Statements for AgentX
-
- agentxMIBCompliance MODULE-COMPLIANCE
-  STATUS      current
-  DESCRIPTION
-     "The compliance statement for SNMP entities that implement the
-      AgentX protocol.  Note that a compliant agent can implement all
-      objects in this MIB module as read-only.
-     "
-  MODULE -- this module
-     MANDATORY-GROUPS  { agentxMIBGroup }
-
-     OBJECT agentxSessionAdminStatus
-        MIN-ACCESS read-only
-        DESCRIPTION
-           "Write access is not required.
-           "
-  ::= { agentxMIBCompliances 1 }
-
- agentxMIBGroup OBJECT-GROUP
-  OBJECTS {
-     agentxDefaultTimeout,
-     agentxMasterAgentXVer,
-     agentxConnTableLastChange,
-     agentxConnOpenTime,
-     agentxConnTransportDomain,
-     agentxConnTransportAddress,
-     agentxSessionTableLastChange,
-     agentxSessionTimeout,
-     agentxSessionObjectID,
-     agentxSessionDescr,
-     agentxSessionAdminStatus,
-     agentxSessionOpenTime,
-     agentxSessionAgentXVer,
-     agentxRegistrationTableLastChange,
-     agentxRegContext,
-     agentxRegStart,
-     agentxRegRangeSubId,
-     agentxRegUpperBound,
-     agentxRegPriority,
-     agentxRegTimeout,
-     agentxRegInstance
-    }
-  STATUS      current
-  DESCRIPTION
-     "All accessible objects in the AgentX MIB.
-     "
-  ::= { agentxMIBGroups 1 }
-
- END
diff --git a/mibs/BRIDGE-MIB.txt b/mibs/BRIDGE-MIB.txt
deleted file mode 100644
index 1e77a19..0000000
--- a/mibs/BRIDGE-MIB.txt
+++ /dev/null
@@ -1,1472 +0,0 @@
-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 at ietf.org
-
-                 K.C. Norseth (Editor)
-                 L-3 Communications
-            Tel: +1 801-594-2809
-          Email: kenyon.c.norseth at 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 at ntlworld.com
-         Postal: 3Com Centre, Boundary Way
-                 Hemel Hempstead
-                 Herts.  HP2 7YU
-                 UK
-
-         Send comments to <bridge-mib at 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/DISMAN-EVENT-MIB.txt b/mibs/DISMAN-EVENT-MIB.txt
deleted file mode 100644
index f00c7cc..0000000
--- a/mibs/DISMAN-EVENT-MIB.txt
+++ /dev/null
@@ -1,1882 +0,0 @@
-DISMAN-EVENT-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE,
-    Integer32, Unsigned32,
-    NOTIFICATION-TYPE, Counter32,
-    Gauge32, mib-2, zeroDotZero         FROM SNMPv2-SMI
-    TEXTUAL-CONVENTION, RowStatus,
-    TruthValue                FROM SNMPv2-TC
-
-    MODULE-COMPLIANCE, OBJECT-GROUP,
-    NOTIFICATION-GROUP             FROM SNMPv2-CONF
-    sysUpTime                 FROM SNMPv2-MIB
-    SnmpTagValue              FROM SNMP-TARGET-MIB
-    SnmpAdminString           FROM SNMP-FRAMEWORK-MIB;
-
-dismanEventMIB MODULE-IDENTITY
-    LAST-UPDATED "200010160000Z"            -- 16 October 2000
-    ORGANIZATION "IETF Distributed Management Working Group"
-    CONTACT-INFO "Ramanathan Kavasseri
-                  Cisco Systems, Inc.
-                  170 West Tasman Drive,
-                  San Jose CA 95134-1706.
-                  Phone: +1 408 526 4527
-                  Email: ramk at cisco.com"
-    DESCRIPTION
-     "The MIB module for defining event triggers and actions
-     for network management purposes."
--- Revision History
-
-       REVISION     "200010160000Z"            -- 16 October 2000
-       DESCRIPTION  "This is the initial version of this MIB.
-                    Published as RFC 2981"
-    ::= { mib-2 88 }
-
-dismanEventMIBObjects OBJECT IDENTIFIER ::= { dismanEventMIB 1 }
-
--- Management Triggered Event (MTE) objects
-
-mteResource           OBJECT IDENTIFIER ::= { dismanEventMIBObjects 1 }
-mteTrigger            OBJECT IDENTIFIER ::= { dismanEventMIBObjects 2 }
-mteObjects            OBJECT IDENTIFIER ::= { dismanEventMIBObjects 3 }
-mteEvent              OBJECT IDENTIFIER ::= { dismanEventMIBObjects 4 }
-
---
--- Textual Conventions
---
-
-FailureReason ::= TEXTUAL-CONVENTION
-    STATUS      current
-    DESCRIPTION
-        "Reasons for failures in an attempt to perform a management
-        request.
-
-        The first group of errors, numbered less than 0, are related
-        to problems in sending the request.  The existence of a
-        particular error code here does not imply that all
-        implementations are capable of sensing that error and
-
-        returning that code.
-
-        The second group, numbered greater than 0, are copied
-        directly from SNMP protocol operations and are intended to
-        carry exactly the meanings defined for the protocol as returned
-        in an SNMP response.
-
-        localResourceLack       some local resource such as memory
-                                lacking or
-                                mteResourceSampleInstanceMaximum
-                                exceeded
-        badDestination          unrecognized domain name or otherwise
-                                invalid destination address
-        destinationUnreachable  can't get to destination address
-        noResponse              no response to SNMP request
-        badType                 the data syntax of a retrieved object
-                                as not as expected
-        sampleOverrun           another sample attempt occurred before
-                                the previous one completed"
-    SYNTAX      INTEGER { localResourceLack(-1),
-                          badDestination(-2),
-                          destinationUnreachable(-3),
-                          noResponse(-4),
-                          badType(-5),
-                          sampleOverrun(-6),
-                          noError(0),
-                          tooBig(1),
-                          noSuchName(2),
-                          badValue(3),
-                          readOnly(4),
-                          genErr(5),
-                          noAccess(6),
-                          wrongType(7),
-                          wrongLength(8),
-                          wrongEncoding(9),
-                          wrongValue(10),
-                          noCreation(11),
-                          inconsistentValue(12),
-                          resourceUnavailable(13),
-                          commitFailed(14),
-                          undoFailed(15),
-                          authorizationError(16),
-                          notWritable(17),
-                          inconsistentName(18) }
---
-
--- Resource Control Section
---
-
-mteResourceSampleMinimum OBJECT-TYPE
-    SYNTAX      Integer32 (1..2147483647)
-    UNITS       "seconds"
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The minimum mteTriggerFrequency this system will
-        accept.  A system may use the larger values of this minimum to
-        lessen the impact of constant sampling.  For larger
-        sampling intervals the system samples less often and
-        suffers less overhead.  This object provides a way to enforce
-        such lower overhead for all triggers created after it is
-        set.
-
-        Unless explicitly resource limited, a system's value for
-        this object SHOULD be 1, allowing as small as a 1 second
-        interval for ongoing trigger sampling.
-
-        Changing this value will not invalidate an existing setting
-        of mteTriggerFrequency."
-    ::= { mteResource 1 }
-
-mteResourceSampleInstanceMaximum OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "instances"
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The maximum number of instance entries this system will
-        support for sampling.
-
-        These are the entries that maintain state, one for each
-        instance of each sampled object as selected by
-        mteTriggerValueID.  Note that wildcarded objects result
-        in multiple instances of this state.
-
-        A value of 0 indicates no preset limit, that is, the limit
-        is dynamic based on system operation and resources.
-
-        Unless explicitly resource limited, a system's value for
-        this object SHOULD be 0.
-
-        Changing this value will not eliminate or inhibit existing
-        sample state but could prevent allocation of additional state
-        information."
-    ::= { mteResource 2 }
-
-mteResourceSampleInstances OBJECT-TYPE
-    SYNTAX      Gauge32
-    UNITS       "instances"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The number of currently active instance entries as
-        defined for mteResourceSampleInstanceMaximum."
-    ::= { mteResource 3 }
-
-mteResourceSampleInstancesHigh OBJECT-TYPE
-    SYNTAX      Gauge32
-    UNITS       "instances"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The highest value of mteResourceSampleInstances that has
-        occurred since initialization of the management system."
-    ::= { mteResource 4 }
-
-mteResourceSampleInstanceLacks OBJECT-TYPE
-    SYNTAX      Counter32
-    UNITS       "instances"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The number of times this system could not take a new sample
-        because that allocation would have exceeded the limit set by
-        mteResourceSampleInstanceMaximum."
-    ::= { mteResource 5 }
-
---
--- Trigger Section
---
-
--- Counters
-
-mteTriggerFailures OBJECT-TYPE
-    SYNTAX      Counter32
-    UNITS       "failures"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The number of times an attempt to check for a trigger
-        condition has failed.  This counts individually for each
-        attempt in a group of targets or each attempt for a
-
-        wildcarded object."
-    ::= { mteTrigger 1 }
-
---
--- Trigger Table
---
-
-mteTriggerTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF MteTriggerEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A table of management event trigger information."
-    ::= { mteTrigger 2 }
-
-mteTriggerEntry OBJECT-TYPE
-    SYNTAX      MteTriggerEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Information about a single trigger.  Applications create and
-        delete entries using mteTriggerEntryStatus."
-    INDEX       { mteOwner, IMPLIED mteTriggerName }
-    ::= { mteTriggerTable 1 }
-
-MteTriggerEntry ::= SEQUENCE {
-    mteOwner                            SnmpAdminString,
-    mteTriggerName                      SnmpAdminString,
-    mteTriggerComment                   SnmpAdminString,
-    mteTriggerTest                      BITS,
-    mteTriggerSampleType                INTEGER,
-    mteTriggerValueID                   OBJECT IDENTIFIER,
-    mteTriggerValueIDWildcard           TruthValue,
-    mteTriggerTargetTag                 SnmpTagValue,
-    mteTriggerContextName               SnmpAdminString,
-    mteTriggerContextNameWildcard       TruthValue,
-    mteTriggerFrequency                 Unsigned32,
-    mteTriggerObjectsOwner              SnmpAdminString,
-    mteTriggerObjects                   SnmpAdminString,
-    mteTriggerEnabled                   TruthValue,
-    mteTriggerEntryStatus               RowStatus
-}
-
-mteOwner OBJECT-TYPE
-   SYNTAX      SnmpAdminString (SIZE(0..32))
-   MAX-ACCESS  not-accessible
-   STATUS      current
-   DESCRIPTION
-        "The owner of this entry. The exact semantics of this
-        string are subject to the security policy defined by the
-        security administrator."
-    ::= { mteTriggerEntry 1 }
-
-mteTriggerName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (1..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A locally-unique, administratively assigned name for the
-        trigger within the scope of mteOwner."
-    ::= { mteTriggerEntry 2 }
-
-mteTriggerComment OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "A description of the trigger's function and use."
-    DEFVAL { ''H }
-    ::= { mteTriggerEntry 3 }
-
-mteTriggerTest OBJECT-TYPE
-    SYNTAX      BITS { existence(0), boolean(1), threshold(2) }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The type of trigger test to perform.  For 'boolean' and
-        'threshold'  tests, the object at mteTriggerValueID MUST
-        evaluate to an integer, that is, anything that ends up encoded
-        for transmission (that is, in BER, not ASN.1) as an integer.
-
-        For 'existence', the specific test is as selected by
-        mteTriggerExistenceTest.  When an object appears, vanishes
-        or changes value, the trigger fires. If the object's
-        appearance caused the trigger firing, the object MUST
-        vanish before the trigger can be fired again for it, and
-        vice versa. If the trigger fired due to a change in the
-        object's value, it will be fired again on every successive
-        value change for that object.
-
-        For 'boolean', the specific test is as selected by
-        mteTriggerBooleanTest.  If the test result is true the trigger
-        fires.  The trigger will not fire again until the value has
-        become false and come back to true.
-
-        For 'threshold' the test works as described below for
-
-        mteTriggerThresholdStartup, mteTriggerThresholdRising, and
-        mteTriggerThresholdFalling.
-
-        Note that combining 'boolean' and 'threshold' tests on the
-        same object may be somewhat redundant."
-    DEFVAL { { boolean } }
-    ::= { mteTriggerEntry 4 }
-
-mteTriggerSampleType OBJECT-TYPE
-    SYNTAX      INTEGER { absoluteValue(1), deltaValue(2) }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The type of sampling to perform.
-
-        An 'absoluteValue' sample requires only a single sample to be
-        meaningful, and is exactly the value of the object at
-        mteTriggerValueID at the sample time.
-
-        A 'deltaValue' requires two samples to be meaningful and is
-        thus not available for testing until the second and subsequent
-        samples after the object at mteTriggerValueID is first found
-        to exist.  It is the difference between the two samples.  For
-        unsigned values it is always positive, based on unsigned
-        arithmetic.  For signed values it can be positive or negative.
-
-        For SNMP counters to be meaningful they should be sampled as a
-        'deltaValue'.
-
-        For 'deltaValue' mteTriggerDeltaTable contains further
-        parameters.
-
-        If only 'existence' is set in mteTriggerTest this object has
-        no meaning."
-    DEFVAL { absoluteValue }
-    ::= { mteTriggerEntry 5 }
-
-mteTriggerValueID OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The object identifier of the MIB object to sample to see
-        if the trigger should fire.
-
-        This may be wildcarded by truncating all or part of the
-        instance portion, in which case the value is obtained
-        as if with a GetNext function, checking multiple values
-
-        if they exist.  If such wildcarding is applied,
-        mteTriggerValueIDWildcard must be 'true' and if not it must
-        be 'false'.
-
-        Bad object identifiers or a mismatch between truncating the
-        identifier and the value of mteTriggerValueIDWildcard result
-        in operation as one would expect when providing the wrong
-        identifier to a Get or GetNext operation.  The Get will fail
-        or get the wrong object.  The GetNext will indeed get whatever
-        is next, proceeding until it runs past the initial part of the
-        identifier and perhaps many unintended objects for confusing
-        results.  If the value syntax of those objects is not usable,
-        that results in a 'badType' error that terminates the scan.
-
-        Each instance that fills the wildcard is independent of any
-        additional instances, that is, wildcarded objects operate
-        as if there were a separate table entry for each instance
-        that fills the wildcard without having to actually predict
-        all possible instances ahead of time."
-    DEFVAL { zeroDotZero }
-    ::= { mteTriggerEntry 6 }
-
-mteTriggerValueIDWildcard OBJECT-TYPE
-    SYNTAX      TruthValue
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Control for whether mteTriggerValueID is to be treated as
-        fully-specified or wildcarded, with 'true' indicating wildcard."
-    DEFVAL { false }
-    ::= { mteTriggerEntry 7 }
-
-mteTriggerTargetTag OBJECT-TYPE
-    SYNTAX      SnmpTagValue
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The tag for the target(s) from which to obtain the condition
-        for a trigger check.
-
-        A length of 0 indicates the local system.  In this case,
-        access to the objects indicated by mteTriggerValueID is under
-        the security credentials of the requester that set
-        mteTriggerEntryStatus to 'active'.  Those credentials are the
-        input parameters for isAccessAllowed from the Architecture for
-        Describing SNMP Management Frameworks.
-
-        Otherwise access rights are checked according to the security
-
-        parameters resulting from the tag."
-    DEFVAL { ''H }
-    ::= { mteTriggerEntry 8 }
-
-mteTriggerContextName OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The management context from which to obtain mteTriggerValueID.
-
-        This may be wildcarded by leaving characters off the end.  For
-        example use 'Repeater' to wildcard to 'Repeater1',
-        'Repeater2', 'Repeater-999.87b', and so on.  To indicate such
-        wildcarding is intended, mteTriggerContextNameWildcard must
-        be 'true'.
-
-        Each instance that fills the wildcard is independent of any
-        additional instances, that is, wildcarded objects operate
-        as if there were a separate table entry for each instance
-        that fills the wildcard without having to actually predict
-        all possible instances ahead of time.
-
-        Operation of this feature assumes that the local system has a
-        list of available contexts against which to apply the
-        wildcard.  If the objects are being read from the local
-        system, this is clearly the system's own list of contexts.
-        For a remote system a local version of such a list is not
-        defined by any current standard and may not be available, so
-        this function MAY not be supported."
-    DEFVAL { ''H }
-    ::= { mteTriggerEntry 9 }
-
-mteTriggerContextNameWildcard OBJECT-TYPE
-    SYNTAX      TruthValue
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Control for whether mteTriggerContextName is to be treated as
-        fully-specified or wildcarded, with 'true' indicating wildcard."
-    DEFVAL { false }
-    ::= { mteTriggerEntry 10 }
-
-mteTriggerFrequency OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "seconds"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The number of seconds to wait between trigger samples.  To
-        encourage consistency in sampling, the interval is measured
-        from the beginning of one check to the beginning of the next
-        and the timer is restarted immediately when it expires, not
-        when the check completes.
-
-        If the next sample begins before the previous one completed the
-        system may either attempt to make the check or treat this as an
-        error condition with the error 'sampleOverrun'.
-
-        A frequency of 0 indicates instantaneous recognition of the
-        condition.  This is not possible in many cases, but may
-        be supported in cases where it makes sense and the system is
-        able to do so.  This feature allows the MIB to be used in
-        implementations where such interrupt-driven behavior is
-        possible and is not likely to be supported for all MIB objects
-        even then since such sampling generally has to be tightly
-        integrated into low-level code.
-
-        Systems that can support this SHOULD document those cases
-        where it can be used.  In cases where it can not, setting this
-        object to 0 should be disallowed."
-    DEFVAL { 600 }
-    ::= { mteTriggerEntry 11 }
-
-mteTriggerObjectsOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "To go with mteTriggerObjects, the mteOwner of a group of
-        objects from mteObjectsTable."
-    DEFVAL { ''H }
-    ::= { mteTriggerEntry 12 }
-
-mteTriggerObjects OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The mteObjectsName of a group of objects from
-        mteObjectsTable.  These objects are to be added to any
-        Notification resulting from the firing of this trigger.
-
-        A list of objects may also be added based on the event or on
-        the value of mteTriggerTest.
-
-        A length of 0 indicates no additional objects."
-    DEFVAL { ''H }
-    ::= { mteTriggerEntry 13 }
-
-mteTriggerEnabled OBJECT-TYPE
-    SYNTAX      TruthValue
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "A control to allow a trigger to be configured but not used.
-        When the value is 'false' the trigger is not sampled."
-    DEFVAL { false }
-    ::= { mteTriggerEntry 14 }
-
-mteTriggerEntryStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The control that allows creation and deletion of entries.
-        Once made active an entry may not be modified except to
-        delete it."
-    ::= { mteTriggerEntry 15 }
-
---
--- Trigger Delta Table
---
-
-mteTriggerDeltaTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF MteTriggerDeltaEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A table of management event trigger information for delta
-        sampling."
-    ::= { mteTrigger 3 }
-
-mteTriggerDeltaEntry OBJECT-TYPE
-    SYNTAX      MteTriggerDeltaEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Information about a single trigger's delta sampling.  Entries
-        automatically exist in this this table for each mteTriggerEntry
-        that has mteTriggerSampleType set to 'deltaValue'."
-    INDEX       { mteOwner, IMPLIED mteTriggerName }
-    ::= { mteTriggerDeltaTable 1 }
-
-MteTriggerDeltaEntry ::= SEQUENCE {
-    mteTriggerDeltaDiscontinuityID                OBJECT IDENTIFIER,
-    mteTriggerDeltaDiscontinuityIDWildcard        TruthValue,
-    mteTriggerDeltaDiscontinuityIDType            INTEGER
-}
-
-sysUpTimeInstance OBJECT IDENTIFIER ::= { sysUpTime 0 }
-
-mteTriggerDeltaDiscontinuityID OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The OBJECT IDENTIFIER (OID) of a TimeTicks, TimeStamp, or
-        DateAndTime object that indicates a discontinuity in the value
-        at mteTriggerValueID.
-
-        The OID may be for a leaf object (e.g. sysUpTime.0) or may
-        be wildcarded to match mteTriggerValueID.
-
-        This object supports normal checking for a discontinuity in a
-        counter.  Note that if this object does not point to sysUpTime
-        discontinuity checking MUST still check sysUpTime for an overall
-        discontinuity.
-
-        If the object identified is not accessible the sample attempt
-        is in error, with the error code as from an SNMP request.
-
-        Bad object identifiers or a mismatch between truncating the
-        identifier and the value of mteDeltaDiscontinuityIDWildcard
-        result in operation as one would expect when providing the
-        wrong identifier to a Get operation.  The Get will fail or get
-        the wrong object.  If the value syntax of those objects is not
-        usable, that results in an error that terminates the sample
-        with a 'badType' error code."
-    DEFVAL { sysUpTimeInstance }
-    ::= { mteTriggerDeltaEntry 1 }
-
-mteTriggerDeltaDiscontinuityIDWildcard OBJECT-TYPE
-     SYNTAX      TruthValue
-     MAX-ACCESS  read-write
-     STATUS      current
-     DESCRIPTION
-        "Control for whether mteTriggerDeltaDiscontinuityID is to be
-        treated as fully-specified or wildcarded, with 'true'
-        indicating wildcard. Note that the value of this object will
-        be the same as that of the corresponding instance of
-        mteTriggerValueIDWildcard when the corresponding
-
-        mteTriggerSampleType is 'deltaValue'."
-    DEFVAL { false }
-    ::= { mteTriggerDeltaEntry 2 }
-
-mteTriggerDeltaDiscontinuityIDType OBJECT-TYPE
-    SYNTAX      INTEGER { timeTicks(1), timeStamp(2), dateAndTime(3) }
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The value 'timeTicks' indicates the
-        mteTriggerDeltaDiscontinuityID of this row is of syntax
-        TimeTicks.  The value 'timeStamp' indicates syntax TimeStamp.
-        The value 'dateAndTime' indicates syntax DateAndTime."
-    DEFVAL { timeTicks }
-    ::= { mteTriggerDeltaEntry 3 }
-
---
--- Trigger Existence Table
---
-
-mteTriggerExistenceTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF MteTriggerExistenceEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A table of management event trigger information for existence
-        triggers."
-    ::= { mteTrigger 4 }
-
-mteTriggerExistenceEntry OBJECT-TYPE
-    SYNTAX      MteTriggerExistenceEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Information about a single existence trigger.  Entries
-        automatically exist in this this table for each mteTriggerEntry
-        that has 'existence' set in mteTriggerTest."
-    INDEX       { mteOwner, IMPLIED mteTriggerName }
-    ::= { mteTriggerExistenceTable 1 }
-
-MteTriggerExistenceEntry ::= SEQUENCE {
-    mteTriggerExistenceTest              BITS,
-    mteTriggerExistenceStartup           BITS,
-    mteTriggerExistenceObjectsOwner      SnmpAdminString,
-    mteTriggerExistenceObjects           SnmpAdminString,
-    mteTriggerExistenceEventOwner        SnmpAdminString,
-    mteTriggerExistenceEvent             SnmpAdminString
-}
-
-mteTriggerExistenceTest OBJECT-TYPE
-    SYNTAX      BITS { present(0), absent(1), changed(2) }
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The type of existence test to perform.  The trigger fires
-        when the object at mteTriggerValueID is seen to go from
-        present to absent, from absent to present, or to have it's
-        value changed, depending on which tests are selected:
-
-        present(0) - when this test is selected, the trigger fires
-        when the mteTriggerValueID object goes from absent to present.
-
-        absent(1)  - when this test is selected, the trigger fires
-        when the mteTriggerValueID object goes from present to absent.
-        changed(2) - when this test is selected, the trigger fires
-        the mteTriggerValueID object value changes.
-
-        Once the trigger has fired for either presence or absence it
-        will not fire again for that state until the object has been
-        to the other state. "
-    DEFVAL { { present, absent } }
-    ::= { mteTriggerExistenceEntry 1 }
-
-mteTriggerExistenceStartup OBJECT-TYPE
-    SYNTAX      BITS { present(0), absent(1) }
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "Control for whether an event may be triggered when this entry
-        is first set to 'active' and the test specified by
-        mteTriggerExistenceTest is true.  Setting an option causes
-        that trigger to fire when its test is true."
-    DEFVAL { { present, absent } }
-    ::= { mteTriggerExistenceEntry 2 }
-
-mteTriggerExistenceObjectsOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "To go with mteTriggerExistenceObjects, the mteOwner of a
-        group of objects from mteObjectsTable."
-    DEFVAL { ''H }
-    ::= { mteTriggerExistenceEntry 3 }
-
-mteTriggerExistenceObjects OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The mteObjectsName of a group of objects from
-        mteObjectsTable.  These objects are to be added to any
-        Notification resulting from the firing of this trigger for
-        this test.
-
-        A list of objects may also be added based on the overall
-        trigger, the event or other settings in mteTriggerTest.
-
-        A length of 0 indicates no additional objects."
-    DEFVAL { ''H }
-    ::= { mteTriggerExistenceEntry 4 }
-
-mteTriggerExistenceEventOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "To go with mteTriggerExistenceEvent, the mteOwner of an event
-        entry from the mteEventTable."
-    DEFVAL { ''H }
-    ::= { mteTriggerExistenceEntry 5 }
-
-mteTriggerExistenceEvent OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The mteEventName of the event to invoke when mteTriggerType is
-        'existence' and this trigger fires.  A length of 0 indicates no
-        event."
-    DEFVAL { ''H }
-    ::= { mteTriggerExistenceEntry 6 }
-
---
--- Trigger Boolean Table
---
-
-mteTriggerBooleanTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF MteTriggerBooleanEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A table of management event trigger information for boolean
-        triggers."
-    ::= { mteTrigger 5 }
-
-mteTriggerBooleanEntry OBJECT-TYPE
-    SYNTAX      MteTriggerBooleanEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Information about a single boolean trigger.  Entries
-        automatically exist in this this table for each mteTriggerEntry
-        that has 'boolean' set in mteTriggerTest."
-    INDEX       { mteOwner, IMPLIED mteTriggerName }
-    ::= { mteTriggerBooleanTable 1 }
-
-MteTriggerBooleanEntry ::= SEQUENCE {
-    mteTriggerBooleanComparison          INTEGER,
-    mteTriggerBooleanValue               Integer32,
-    mteTriggerBooleanStartup             TruthValue,
-    mteTriggerBooleanObjectsOwner        SnmpAdminString,
-    mteTriggerBooleanObjects             SnmpAdminString,
-    mteTriggerBooleanEventOwner          SnmpAdminString,
-    mteTriggerBooleanEvent               SnmpAdminString
-}
-
-mteTriggerBooleanComparison OBJECT-TYPE
-    SYNTAX      INTEGER { unequal(1), equal(2),
-                 less(3), lessOrEqual(4),
-                 greater(5), greaterOrEqual(6) }
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The type of boolean comparison to perform.
-
-        The value at mteTriggerValueID is compared to
-        mteTriggerBooleanValue, so for example if
-        mteTriggerBooleanComparison is 'less' the result would be true
-        if the value at mteTriggerValueID is less than the value of
-        mteTriggerBooleanValue."
-    DEFVAL { unequal }
-    ::= { mteTriggerBooleanEntry 1 }
-
-mteTriggerBooleanValue OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The value to use for the test specified by
-        mteTriggerBooleanTest."
-    DEFVAL { 0 }
-    ::= { mteTriggerBooleanEntry 2 }
-
-mteTriggerBooleanStartup OBJECT-TYPE
-    SYNTAX      TruthValue
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "Control for whether an event may be triggered when this entry
-        is first set to 'active' or a new instance of the object at
-        mteTriggerValueID is found and the test specified by
-        mteTriggerBooleanComparison is true.  In that case an event is
-        triggered if mteTriggerBooleanStartup is 'true'."
-    DEFVAL { true }
-    ::= { mteTriggerBooleanEntry 3 }
-
-mteTriggerBooleanObjectsOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "To go with mteTriggerBooleanObjects, the mteOwner of a group
-        of objects from mteObjectsTable."
-    DEFVAL { ''H }
-    ::= { mteTriggerBooleanEntry 4 }
-
-mteTriggerBooleanObjects OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The mteObjectsName of a group of objects from
-        mteObjectsTable.  These objects are to be added to any
-        Notification resulting from the firing of this trigger for
-        this test.
-
-        A list of objects may also be added based on the overall
-        trigger, the event or other settings in mteTriggerTest.
-
-        A length of 0 indicates no additional objects."
-    DEFVAL { ''H }
-    ::= { mteTriggerBooleanEntry 5 }
-
-mteTriggerBooleanEventOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "To go with mteTriggerBooleanEvent, the mteOwner of an event
-        entry from mteEventTable."
-    DEFVAL { ''H }
-    ::= { mteTriggerBooleanEntry 6 }
-
-mteTriggerBooleanEvent OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The mteEventName of the event to invoke when mteTriggerType is
-        'boolean' and this trigger fires.  A length of 0 indicates no
-        event."
-    DEFVAL { ''H }
-    ::= { mteTriggerBooleanEntry 7 }
-
---
--- Trigger Threshold Table
---
-
-mteTriggerThresholdTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF MteTriggerThresholdEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A table of management event trigger information for threshold
-        triggers."
-    ::= { mteTrigger 6 }
-
-mteTriggerThresholdEntry OBJECT-TYPE
-    SYNTAX      MteTriggerThresholdEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Information about a single threshold trigger.  Entries
-        automatically exist in this table for each mteTriggerEntry
-        that has 'threshold' set in mteTriggerTest."
-    INDEX       { mteOwner, IMPLIED mteTriggerName }
-    ::= { mteTriggerThresholdTable 1 }
-
-MteTriggerThresholdEntry ::= SEQUENCE {
-    mteTriggerThresholdStartup                  INTEGER,
-    mteTriggerThresholdRising                   Integer32,
-    mteTriggerThresholdFalling                  Integer32,
-    mteTriggerThresholdDeltaRising              Integer32,
-    mteTriggerThresholdDeltaFalling             Integer32,
-    mteTriggerThresholdObjectsOwner             SnmpAdminString,
-    mteTriggerThresholdObjects                  SnmpAdminString,
-    mteTriggerThresholdRisingEventOwner         SnmpAdminString,
-    mteTriggerThresholdRisingEvent              SnmpAdminString,
-    mteTriggerThresholdFallingEventOwner        SnmpAdminString,
-    mteTriggerThresholdFallingEvent             SnmpAdminString,
-    mteTriggerThresholdDeltaRisingEventOwner    SnmpAdminString,
-    mteTriggerThresholdDeltaRisingEvent         SnmpAdminString,
-    mteTriggerThresholdDeltaFallingEventOwner   SnmpAdminString,
-    mteTriggerThresholdDeltaFallingEvent        SnmpAdminString
-}
-
-mteTriggerThresholdStartup OBJECT-TYPE
-    SYNTAX      INTEGER { rising(1), falling(2), risingOrFalling(3) }
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The event that may be triggered when this entry is first
-        set to 'active' and a new instance of the object at
-        mteTriggerValueID is found.  If the first sample after this
-        instance becomes active is greater than or equal to
-        mteTriggerThresholdRising and mteTriggerThresholdStartup is
-        equal to 'rising' or 'risingOrFalling', then one
-        mteTriggerThresholdRisingEvent is triggered for that instance.
-        If the first sample after this entry becomes active is less
-        than or equal to mteTriggerThresholdFalling and
-        mteTriggerThresholdStartup is equal to 'falling' or
-        'risingOrFalling', then one mteTriggerThresholdRisingEvent is
-        triggered for that instance."
-    DEFVAL { risingOrFalling }
-    ::= { mteTriggerThresholdEntry 1 }
-
-mteTriggerThresholdRising OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "A threshold value to check against if mteTriggerType is
-        'threshold'.
-
-        When the current sampled value is greater than or equal to
-        this threshold, and the value at the last sampling interval
-        was less than this threshold, one
-        mteTriggerThresholdRisingEvent is triggered.  That event is
-        also triggered if the first sample after this entry becomes
-        active is greater than or equal to this threshold and
-        mteTriggerThresholdStartup is equal to 'rising' or
-        'risingOrFalling'.
-
-        After a rising event is generated, another such event is not
-        triggered until the sampled value falls below this threshold
-        and reaches mteTriggerThresholdFalling."
-    DEFVAL { 0 }
-    ::= { mteTriggerThresholdEntry 2 }
-
-mteTriggerThresholdFalling OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "A threshold value to check against if mteTriggerType is
-        'threshold'.
-
-        When the current sampled value is less than or equal to this
-        threshold, and the value at the last sampling interval was
-        greater than this threshold, one
-        mteTriggerThresholdFallingEvent is triggered.  That event is
-        also triggered if the first sample after this entry becomes
-        active is less than or equal to this threshold and
-        mteTriggerThresholdStartup is equal to 'falling' or
-        'risingOrFalling'.
-
-        After a falling event is generated, another such event is not
-        triggered until the sampled value rises above this threshold
-        and reaches mteTriggerThresholdRising."
-    DEFVAL { 0 }
-    ::= { mteTriggerThresholdEntry 3 }
-
-mteTriggerThresholdDeltaRising OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "A threshold value to check against if mteTriggerType is
-        'threshold'.
-
-        When the delta value (difference) between the current sampled
-        value (value(n)) and the previous sampled value (value(n-1))
-        is greater than or equal to this threshold,
-        and the delta value calculated at the last sampling interval
-        (i.e. value(n-1) - value(n-2)) was less than this threshold,
-        one mteTriggerThresholdDeltaRisingEvent is triggered. That event
-        is also triggered if the first delta value calculated after this
-        entry becomes active, i.e. value(2) - value(1), where value(1)
-        is the first sample taken of that instance, is greater than or
-        equal to this threshold.
-
-        After a rising event is generated, another such event is not
-        triggered until the delta value falls below this threshold and
-        reaches mteTriggerThresholdDeltaFalling."
-    DEFVAL { 0 }
-    ::= { mteTriggerThresholdEntry 4 }
-
-mteTriggerThresholdDeltaFalling OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "A threshold value to check against if mteTriggerType is
-        'threshold'.
-
-        When the delta value (difference) between the current sampled
-        value (value(n)) and the previous sampled value (value(n-1))
-        is less than or equal to this threshold,
-        and the delta value calculated at the last sampling interval
-        (i.e. value(n-1) - value(n-2)) was greater than this threshold,
-        one mteTriggerThresholdDeltaFallingEvent is triggered. That event
-        is also triggered if the first delta value calculated after this
-        entry becomes active, i.e. value(2) - value(1), where value(1)
-        is the first sample taken of that instance, is less than or
-        equal to this threshold.
-
-        After a falling event is generated, another such event is not
-        triggered until the delta value falls below this threshold and
-        reaches mteTriggerThresholdDeltaRising."
-    DEFVAL { 0 }
-    ::= { mteTriggerThresholdEntry 5 }
-
-mteTriggerThresholdObjectsOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "To go with mteTriggerThresholdObjects, the mteOwner of a group
-        of objects from mteObjectsTable."
-    DEFVAL { ''H }
-    ::= { mteTriggerThresholdEntry 6 }
-
-mteTriggerThresholdObjects OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The mteObjectsName of a group of objects from
-        mteObjectsTable.  These objects are to be added to any
-        Notification resulting from the firing of this trigger for
-        this test.
-
-        A list of objects may also be added based on the overall
-
-        trigger, the event or other settings in mteTriggerTest.
-
-        A length of 0 indicates no additional objects."
-    DEFVAL { ''H }
-    ::= { mteTriggerThresholdEntry 7 }
-
-mteTriggerThresholdRisingEventOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "To go with mteTriggerThresholdRisingEvent, the mteOwner of an
-        event entry from mteEventTable."
-    DEFVAL { ''H }
-    ::= { mteTriggerThresholdEntry 8 }
-
-mteTriggerThresholdRisingEvent OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The mteEventName of the event to invoke when mteTriggerType is
-        'threshold' and this trigger fires based on
-        mteTriggerThresholdRising.  A length of 0 indicates no event."
-    DEFVAL { ''H }
-    ::= { mteTriggerThresholdEntry 9 }
-
-mteTriggerThresholdFallingEventOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "To go with mteTriggerThresholdFallingEvent, the mteOwner of an
-        event entry from mteEventTable."
-    DEFVAL { ''H }
-    ::= { mteTriggerThresholdEntry 10 }
-
-mteTriggerThresholdFallingEvent OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The mteEventName of the event to invoke when mteTriggerType is
-        'threshold' and this trigger fires based on
-        mteTriggerThresholdFalling.  A length of 0 indicates no event."
-    DEFVAL { ''H }
-    ::= { mteTriggerThresholdEntry 11 }
-
-mteTriggerThresholdDeltaRisingEventOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "To go with mteTriggerThresholdDeltaRisingEvent, the mteOwner
-        of an event entry from mteEventTable."
-    DEFVAL { ''H }
-    ::= { mteTriggerThresholdEntry 12 }
-
-mteTriggerThresholdDeltaRisingEvent OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The mteEventName of the event to invoke when mteTriggerType is
-        'threshold' and this trigger fires based on
-        mteTriggerThresholdDeltaRising. A length of 0 indicates
-        no event."
-    DEFVAL { ''H }
-    ::= { mteTriggerThresholdEntry 13 }
-
-mteTriggerThresholdDeltaFallingEventOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "To go with mteTriggerThresholdDeltaFallingEvent, the mteOwner
-        of an event entry from mteEventTable."
-    DEFVAL { ''H }
-    ::= { mteTriggerThresholdEntry 14 }
-
-mteTriggerThresholdDeltaFallingEvent OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The mteEventName of the event to invoke when mteTriggerType is
-        'threshold' and this trigger fires based on
-        mteTriggerThresholdDeltaFalling.  A length of 0 indicates
-        no event."
-    DEFVAL { ''H }
-    ::= { mteTriggerThresholdEntry 15 }
-
---
--- Objects Table
---
-
-mteObjectsTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF MteObjectsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A table of objects that can be added to notifications based
-        on the trigger, trigger test, or event, as pointed to by
-        entries in those tables."
-    ::= { mteObjects 1 }
-
-mteObjectsEntry OBJECT-TYPE
-    SYNTAX      MteObjectsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A group of objects.  Applications create and delete entries
-        using mteObjectsEntryStatus.
-
-        When adding objects to a notification they are added in the
-        lexical order of their index in this table.  Those associated
-        with a trigger come first, then trigger test, then event."
-    INDEX       { mteOwner, mteObjectsName, mteObjectsIndex }
-    ::= { mteObjectsTable 1 }
-
-MteObjectsEntry ::= SEQUENCE {
-    mteObjectsName                      SnmpAdminString,
-    mteObjectsIndex                     Unsigned32,
-    mteObjectsID                        OBJECT IDENTIFIER,
-    mteObjectsIDWildcard                TruthValue,
-    mteObjectsEntryStatus               RowStatus
-    }
-
-mteObjectsName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (1..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A locally-unique, administratively assigned name for a group
-        of objects."
-    ::= { mteObjectsEntry 1 }
-
-mteObjectsIndex OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..4294967295)
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An arbitrary integer for the purpose of identifying
-        individual objects within a mteObjectsName group.
-
-        Objects within a group are placed in the notification in the
-        numerical order of this index.
-
-        Groups are placed in the notification in the order of the
-        selections for overall trigger, trigger test, and event.
-        Within trigger test they are in the same order as the
-        numerical values of the bits defined for mteTriggerTest.
-
-        Bad object identifiers or a mismatch between truncating the
-        identifier and the value of mteDeltaDiscontinuityIDWildcard
-        result in operation as one would expect when providing the
-        wrong identifier to a Get operation.  The Get will fail or get
-        the wrong object.  If the object is not available it is omitted
-        from the notification."
-    ::= { mteObjectsEntry 2 }
-
-mteObjectsID OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The object identifier of a MIB object to add to a
-        Notification that results from the firing of a trigger.
-
-        This may be wildcarded by truncating all or part of the
-        instance portion, in which case the instance portion of the
-        OID for obtaining this object will be the same as that used
-        in obtaining the mteTriggerValueID that fired.  If such
-        wildcarding is applied, mteObjectsIDWildcard must be
-        'true' and if not it must be 'false'.
-
-        Each instance that fills the wildcard is independent of any
-        additional instances, that is, wildcarded objects operate
-        as if there were a separate table entry for each instance
-        that fills the wildcard without having to actually predict
-        all possible instances ahead of time."
-    DEFVAL { zeroDotZero }
-    ::= { mteObjectsEntry 3 }
-
-mteObjectsIDWildcard OBJECT-TYPE
-    SYNTAX      TruthValue
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Control for whether mteObjectsID is to be treated as
-        fully-specified or wildcarded, with 'true' indicating wildcard."
-    DEFVAL { false }
-    ::= { mteObjectsEntry 4 }
-
-mteObjectsEntryStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The control that allows creation and deletion of entries.
-        Once made active an entry MAY not be modified except to
-        delete it."
-    ::= { mteObjectsEntry 5 }
-
---
--- Event Section
---
-
--- Counters
-
-mteEventFailures OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The number of times an attempt to invoke an event
-        has failed.  This counts individually for each
-        attempt in a group of targets or each attempt for a
-        wildcarded trigger object."
-    ::= { mteEvent 1 }
-
---
--- Event Table
---
-
-mteEventTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF MteEventEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A table of management event action information."
-    ::= { mteEvent 2 }
-
-mteEventEntry OBJECT-TYPE
-    SYNTAX      MteEventEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Information about a single event.  Applications create and
-        delete entries using mteEventEntryStatus."
-    INDEX       { mteOwner, IMPLIED mteEventName }
-    ::= { mteEventTable 1 }
-
-MteEventEntry ::= SEQUENCE {
-    mteEventName                        SnmpAdminString,
-    mteEventComment                     SnmpAdminString,
-    mteEventActions                     BITS,
-    mteEventEnabled                     TruthValue,
-    mteEventEntryStatus                 RowStatus
-    }
-
-mteEventName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (1..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A locally-unique, administratively assigned name for the
-        event."
-    ::= { mteEventEntry 1 }
-
-mteEventComment OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "A description of the event's function and use."
-    DEFVAL { ''H }
-    ::= { mteEventEntry 2 }
-
-mteEventActions OBJECT-TYPE
-    SYNTAX      BITS { notification(0), set(1) }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The actions to perform when this event occurs.
-
-        For 'notification', Traps and/or Informs are sent according
-        to the configuration in the SNMP Notification MIB.
-
-        For 'set', an SNMP Set operation is performed according to
-        control values in this entry."
-    DEFVAL { {} }  -- No bits set.
-    ::= { mteEventEntry 3 }
-
-mteEventEnabled OBJECT-TYPE
-    SYNTAX      TruthValue
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "A control to allow an event to be configured but not used.
-        When the value is 'false' the event does not execute even if
-
-        triggered."
-    DEFVAL { false }
-    ::= { mteEventEntry 4 }
-
-mteEventEntryStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The control that allows creation and deletion of entries.
-        Once made active an entry MAY not be modified except to
-        delete it."
-    ::= { mteEventEntry 5 }
-
---
--- Event Notification Table
---
-
-mteEventNotificationTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF MteEventNotificationEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A table of information about notifications to be sent as a
-        consequence of management events."
-    ::= { mteEvent 3 }
-
-mteEventNotificationEntry OBJECT-TYPE
-    SYNTAX      MteEventNotificationEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Information about a single event's notification.  Entries
-        automatically exist in this this table for each mteEventEntry
-        that has 'notification' set in mteEventActions."
-    INDEX       { mteOwner, IMPLIED mteEventName }
-    ::= { mteEventNotificationTable 1 }
-
-MteEventNotificationEntry ::= SEQUENCE {
-    mteEventNotification                OBJECT IDENTIFIER,
-    mteEventNotificationObjectsOwner    SnmpAdminString,
-    mteEventNotificationObjects         SnmpAdminString
-    }
-
-mteEventNotification OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The object identifier from the NOTIFICATION-TYPE for the
-        notification to use if metEventActions has 'notification' set."
-    DEFVAL { zeroDotZero }
-    ::= { mteEventNotificationEntry 1 }
-
-mteEventNotificationObjectsOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "To go with mteEventNotificationObjects, the mteOwner of a
-        group of objects from mteObjectsTable."
-    DEFVAL { ''H }
-    ::= { mteEventNotificationEntry 2 }
-
-mteEventNotificationObjects OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The mteObjectsName of a group of objects from
-        mteObjectsTable if mteEventActions has 'notification' set.
-        These objects are to be added to any Notification generated by
-        this event.
-
-        Objects may also be added based on the trigger that stimulated
-        the event.
-
-        A length of 0 indicates no additional objects."
-    DEFVAL { ''H }
-    ::= { mteEventNotificationEntry 3 }
-
---
--- Event Set Table
---
-
-mteEventSetTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF MteEventSetEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A table of management event action information."
-    ::= { mteEvent 4 }
-
-mteEventSetEntry OBJECT-TYPE
-    SYNTAX      MteEventSetEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Information about a single event's set option.  Entries
-        automatically exist in this this table for each mteEventEntry
-        that has 'set' set in mteEventActions."
-    INDEX       { mteOwner, IMPLIED mteEventName }
-    ::= { mteEventSetTable 1 }
-
-MteEventSetEntry ::= SEQUENCE {
-    mteEventSetObject                   OBJECT IDENTIFIER,
-    mteEventSetObjectWildcard           TruthValue,
-    mteEventSetValue                    Integer32,
-    mteEventSetTargetTag                SnmpTagValue,
-    mteEventSetContextName              SnmpAdminString,
-    mteEventSetContextNameWildcard      TruthValue
-    }
-
-mteEventSetObject OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The object identifier from the MIB object to set if
-        mteEventActions has 'set' set.
-
-        This object identifier may be wildcarded by leaving
-        sub-identifiers off the end, in which case
-        nteEventSetObjectWildCard must be 'true'.
-
-        If mteEventSetObject is wildcarded the instance used to set the
-        object to which it points is the same as the instance from the
-        value of mteTriggerValueID that triggered the event.
-
-        Each instance that fills the wildcard is independent of any
-        additional instances, that is, wildcarded objects operate
-        as if there were a separate table entry for each instance
-        that fills the wildcard without having to actually predict
-        all possible instances ahead of time.
-
-        Bad object identifiers or a mismatch between truncating the
-        identifier and the value of mteSetObjectWildcard
-        result in operation as one would expect when providing the
-        wrong identifier to a Set operation.  The Set will fail or set
-        the wrong object.  If the value syntax of the destination
-        object is not correct, the Set fails with the normal SNMP
-        error code."
-    DEFVAL { zeroDotZero }
-    ::= { mteEventSetEntry 1 }
-
-mteEventSetObjectWildcard OBJECT-TYPE
-    SYNTAX      TruthValue
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "Control over whether mteEventSetObject is to be treated as
-        fully-specified or wildcarded, with 'true' indicating wildcard
-        if mteEventActions has 'set' set."
-    DEFVAL { false }
-    ::= { mteEventSetEntry 2 }
-
-mteEventSetValue OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The value to which to set the object at mteEventSetObject
-        if mteEventActions has 'set' set."
-    DEFVAL { 0 }
-    ::= { mteEventSetEntry 3 }
-
-mteEventSetTargetTag OBJECT-TYPE
-    SYNTAX      SnmpTagValue
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The tag for the target(s) at which to set the object at
-        mteEventSetObject to mteEventSetValue if mteEventActions
-        has 'set' set.
-
-        Systems limited to self management MAY reject a non-zero
-        length for the value of this object.
-
-        A length of 0 indicates the local system.  In this case,
-        access to the objects indicated by mteEventSetObject is under
-        the security credentials of the requester that set
-        mteTriggerEntryStatus to 'active'.  Those credentials are the
-        input parameters for isAccessAllowed from the Architecture for
-        Describing SNMP Management Frameworks.
-
-        Otherwise access rights are checked according to the security
-        parameters resulting from the tag."
-    DEFVAL { ''H }
-    ::= { mteEventSetEntry 4 }
-
-mteEventSetContextName OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The management context in which to set mteEventObjectID.
-        if mteEventActions has 'set' set.
-
-        This may be wildcarded by leaving characters off the end.  To
-        indicate such wildcarding mteEventSetContextNameWildcard must
-        be 'true'.
-
-        If this context name is wildcarded the value used to complete
-        the wildcarding of mteTriggerContextName will be appended."
-    DEFVAL { ''H }
-    ::= { mteEventSetEntry 5 }
-
-mteEventSetContextNameWildcard OBJECT-TYPE
-    SYNTAX      TruthValue
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "Control for whether mteEventSetContextName is to be treated as
-        fully-specified or wildcarded, with 'true' indicating wildcard
-        if mteEventActions has 'set' set."
-    DEFVAL { false }
-    ::= { mteEventSetEntry 6 }
-
---
--- Notifications
---
-
-dismanEventMIBNotificationPrefix OBJECT IDENTIFIER ::=
-    { dismanEventMIB 2 }
-dismanEventMIBNotifications OBJECT IDENTIFIER ::=
-    { dismanEventMIBNotificationPrefix 0 }
-dismanEventMIBNotificationObjects OBJECT IDENTIFIER
-   ::= { dismanEventMIBNotificationPrefix 1 }
-
---
--- Notification Objects
---
-
-mteHotTrigger OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  accessible-for-notify
-    STATUS      current
-    DESCRIPTION
-        "The name of the trigger causing the notification."
-    ::= { dismanEventMIBNotificationObjects 1 }
-
-mteHotTargetName OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  accessible-for-notify
-    STATUS      current
-    DESCRIPTION
-        "The SNMP Target MIB's snmpTargetAddrName related to the
-        notification."
-    ::= { dismanEventMIBNotificationObjects 2 }
-
-mteHotContextName OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  accessible-for-notify
-    STATUS      current
-    DESCRIPTION
-        "The context name related to the notification.  This MUST be as
-        fully-qualified as possible, including filling in wildcard
-        information determined in processing."
-    ::= { dismanEventMIBNotificationObjects 3 }
-
-mteHotOID OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  accessible-for-notify
-    STATUS      current
-    DESCRIPTION
-        "The object identifier of the destination object related to the
-        notification.  This MUST be as fully-qualified as possible,
-        including filling in wildcard information determined in
-        processing.
-
-        For a trigger-related notification this is from
-        mteTriggerValueID.
-
-        For a set failure this is from mteEventSetObject."
-    ::= { dismanEventMIBNotificationObjects 4 }
-
-mteHotValue OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  accessible-for-notify
-    STATUS      current
-    DESCRIPTION
-        "The value of the object at mteTriggerValueID when a
-        trigger fired."
-    ::= { dismanEventMIBNotificationObjects 5 }
-
-mteFailedReason OBJECT-TYPE
-    SYNTAX      FailureReason
-    MAX-ACCESS  accessible-for-notify
-    STATUS      current
-    DESCRIPTION
-        "The reason for the failure of an attempt to check for a
-        trigger condition or set an object in response to an event."
-    ::= { dismanEventMIBNotificationObjects 6 }
-
---
--- Notifications
---
-
-mteTriggerFired NOTIFICATION-TYPE
-    OBJECTS { mteHotTrigger,
-              mteHotTargetName,
-              mteHotContextName,
-              mteHotOID,
-              mteHotValue }
-    STATUS  current
-    DESCRIPTION
-        "Notification that the trigger indicated by the object
-        instances has fired, for triggers with mteTriggerType
-        'boolean' or 'existence'."
-    ::= { dismanEventMIBNotifications 1 }
-
-mteTriggerRising NOTIFICATION-TYPE
-    OBJECTS { mteHotTrigger,
-              mteHotTargetName,
-              mteHotContextName,
-              mteHotOID,
-              mteHotValue }
-    STATUS  current
-    DESCRIPTION
-        "Notification that the rising threshold was met for triggers
-        with mteTriggerType 'threshold'."
-    ::= { dismanEventMIBNotifications 2 }
-
-mteTriggerFalling NOTIFICATION-TYPE
-    OBJECTS { mteHotTrigger,
-              mteHotTargetName,
-              mteHotContextName,
-              mteHotOID,
-              mteHotValue }
-    STATUS  current
-    DESCRIPTION
-        "Notification that the falling threshold was met for triggers
-        with mteTriggerType 'threshold'."
-    ::= { dismanEventMIBNotifications 3 }
-
-mteTriggerFailure NOTIFICATION-TYPE
-    OBJECTS { mteHotTrigger,
-              mteHotTargetName,
-              mteHotContextName,
-              mteHotOID,
-              mteFailedReason }
-    STATUS  current
-    DESCRIPTION
-        "Notification that an attempt to check a trigger has failed.
-
-        The network manager must enable this notification only with
-        a certain fear and trembling, as it can easily crowd out more
-        important information.  It should be used only to help diagnose
-        a problem that has appeared in the error counters and can not
-        be found otherwise."
-    ::= { dismanEventMIBNotifications 4 }
-
-mteEventSetFailure NOTIFICATION-TYPE
-    OBJECTS { mteHotTrigger,
-              mteHotTargetName,
-              mteHotContextName,
-              mteHotOID,
-              mteFailedReason }
-    STATUS  current
-    DESCRIPTION
-        "Notification that an attempt to do a set in response to an
-        event has failed.
-
-        The network manager must enable this notification only with
-        a certain fear and trembling, as it can easily crowd out more
-        important information.  It should be used only to help diagnose
-        a problem that has appeared in the error counters and can not
-        be found otherwise."
-    ::= { dismanEventMIBNotifications 5 }
-
---
--- Conformance
---
-
-dismanEventMIBConformance OBJECT IDENTIFIER ::= { dismanEventMIB 3 }
-dismanEventMIBCompliances OBJECT IDENTIFIER ::=
-    { dismanEventMIBConformance 1 }
-dismanEventMIBGroups      OBJECT IDENTIFIER ::=
-    { dismanEventMIBConformance 2 }
-
--- Compliance
-
-dismanEventMIBCompliance MODULE-COMPLIANCE
-        STATUS current
-        DESCRIPTION
-                "The compliance statement for entities which implement
-                the Event MIB."
-        MODULE  -- this module
-                MANDATORY-GROUPS {
-                        dismanEventResourceGroup,
-                        dismanEventTriggerGroup,
-                        dismanEventObjectsGroup,
-                        dismanEventEventGroup,
-                        dismanEventNotificationObjectGroup,
-                        dismanEventNotificationGroup
-                }
-
-                OBJECT mteTriggerTargetTag
-                MIN-ACCESS  read-only
-                DESCRIPTION
-                        "Write access is not required, thus limiting
-                        monitoring to the local system or pre-configured
-                        remote systems."
-
-                OBJECT mteEventSetTargetTag
-                MIN-ACCESS  read-only
-                DESCRIPTION
-                        "Write access is not required, thus limiting
-                        setting to the local system or pre-configured
-                        remote systems."
-
-                OBJECT mteTriggerValueIDWildcard
-                MIN-ACCESS  read-only
-                DESCRIPTION
-                        "Write access is not required, thus allowing
-                        the system not to implement wildcarding."
-
-                OBJECT mteTriggerContextNameWildcard
-                MIN-ACCESS  read-only
-                DESCRIPTION
-                        "Write access is not required, thus allowing
-                        the system not to implement wildcarding."
-
-                OBJECT mteObjectsIDWildcard
-                MIN-ACCESS  read-only
-                DESCRIPTION
-                        "Write access is not required, thus allowing
-                        the system not to implement wildcarding."
-
-                OBJECT mteEventSetContextNameWildcard
-                MIN-ACCESS  read-only
-                DESCRIPTION
-                        "Write access is not required, thus allowing
-                        the system not to implement wildcarding."
-        ::= { dismanEventMIBCompliances 1 }
-
--- Units of Conformance
-
-dismanEventResourceGroup OBJECT-GROUP
-        OBJECTS {
-                mteResourceSampleMinimum,
-                mteResourceSampleInstanceMaximum,
-                mteResourceSampleInstances,
-                mteResourceSampleInstancesHigh,
-                mteResourceSampleInstanceLacks
-        }
-        STATUS current
-        DESCRIPTION
-                "Event resource status and control objects."
-        ::= { dismanEventMIBGroups 1 }
-
-dismanEventTriggerGroup OBJECT-GROUP
-        OBJECTS {
-                mteTriggerFailures,
-                mteTriggerComment,
-                mteTriggerTest,
-                mteTriggerSampleType,
-                mteTriggerValueID,
-                mteTriggerValueIDWildcard,
-                mteTriggerTargetTag,
-                mteTriggerContextName,
-                mteTriggerContextNameWildcard,
-                mteTriggerFrequency,
-                mteTriggerObjectsOwner,
-                mteTriggerObjects,
-                mteTriggerEnabled,
-                mteTriggerEntryStatus,
-                mteTriggerDeltaDiscontinuityID,
-                mteTriggerDeltaDiscontinuityIDWildcard,
-                mteTriggerDeltaDiscontinuityIDType,
-                mteTriggerExistenceTest,
-                mteTriggerExistenceStartup,
-                mteTriggerExistenceObjectsOwner,
-                mteTriggerExistenceObjects,
-                mteTriggerExistenceEventOwner,
-                mteTriggerExistenceEvent,
-                mteTriggerBooleanComparison,
-                mteTriggerBooleanValue,
-                mteTriggerBooleanStartup,
-                mteTriggerBooleanObjectsOwner,
-                mteTriggerBooleanObjects,
-                mteTriggerBooleanEventOwner,
-                mteTriggerBooleanEvent,
-                mteTriggerThresholdStartup,
-                mteTriggerThresholdObjectsOwner,
-                mteTriggerThresholdObjects,
-                mteTriggerThresholdRising,
-                mteTriggerThresholdFalling,
-                mteTriggerThresholdDeltaRising,
-                mteTriggerThresholdDeltaFalling,
-                mteTriggerThresholdRisingEventOwner,
-                mteTriggerThresholdRisingEvent,
-                mteTriggerThresholdFallingEventOwner,
-                mteTriggerThresholdFallingEvent,
-                mteTriggerThresholdDeltaRisingEventOwner,
-                mteTriggerThresholdDeltaRisingEvent,
-                mteTriggerThresholdDeltaFallingEventOwner,
-                mteTriggerThresholdDeltaFallingEvent
-        }
-        STATUS current
-        DESCRIPTION
-                "Event triggers."
-        ::= { dismanEventMIBGroups 2 }
-
-dismanEventObjectsGroup OBJECT-GROUP
-        OBJECTS {
-                mteObjectsID,
-                mteObjectsIDWildcard,
-                mteObjectsEntryStatus
-        }
-        STATUS current
-        DESCRIPTION
-                "Supplemental objects."
-        ::= { dismanEventMIBGroups 3 }
-
-dismanEventEventGroup OBJECT-GROUP
-        OBJECTS {
-                mteEventFailures,
-                mteEventComment,
-                mteEventActions,
-                mteEventEnabled,
-                mteEventEntryStatus,
-                mteEventNotification,
-                mteEventNotificationObjectsOwner,
-                mteEventNotificationObjects,
-                mteEventSetObject,
-                mteEventSetObjectWildcard,
-                mteEventSetValue,
-                mteEventSetTargetTag,
-                mteEventSetContextName,
-                mteEventSetContextNameWildcard
-        }
-        STATUS current
-        DESCRIPTION
-                "Events."
-        ::= { dismanEventMIBGroups 4 }
-
-dismanEventNotificationObjectGroup OBJECT-GROUP
-        OBJECTS {
-                mteHotTrigger,
-                mteHotTargetName,
-                mteHotContextName,
-                mteHotOID,
-                mteHotValue,
-                mteFailedReason
-        }
-        STATUS current
-        DESCRIPTION
-                "Notification objects."
-        ::= { dismanEventMIBGroups 5 }
-
-dismanEventNotificationGroup NOTIFICATION-GROUP
-        NOTIFICATIONS {
-                mteTriggerFired,
-                mteTriggerRising,
-                mteTriggerFalling,
-                mteTriggerFailure,
-                mteEventSetFailure
-        }
-        STATUS current
-        DESCRIPTION
-                "Notifications."
-        ::= { dismanEventMIBGroups 6 }
-
-END
diff --git a/mibs/DISMAN-EXPRESSION-MIB.txt b/mibs/DISMAN-EXPRESSION-MIB.txt
deleted file mode 100644
index f73e5bf..0000000
--- a/mibs/DISMAN-EXPRESSION-MIB.txt
+++ /dev/null
@@ -1,1182 +0,0 @@
-DISMAN-EXPRESSION-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE,
-    Integer32, Gauge32, Unsigned32,
-    Counter32, Counter64, IpAddress,
-    TimeTicks, mib-2, zeroDotZero  FROM SNMPv2-SMI
-    RowStatus, TruthValue, TimeStamp    FROM SNMPv2-TC
-    sysUpTime                 FROM SNMPv2-MIB
-    SnmpAdminString           FROM SNMP-FRAMEWORK-MIB
-    MODULE-COMPLIANCE, OBJECT-GROUP     FROM SNMPv2-CONF;
-
-dismanExpressionMIB MODULE-IDENTITY
-    LAST-UPDATED "200010160000Z" -- 16 October 2000
-    ORGANIZATION "IETF Distributed Management Working Group"
-    CONTACT-INFO "Ramanathan Kavasseri
-                  Cisco Systems, Inc.
-                  170 West Tasman Drive,
-                  San Jose CA 95134-1706.
-                  Phone: +1 408 527 2446
-                  Email: ramk at cisco.com"
-    DESCRIPTION
-     "The MIB module for defining expressions of MIB objects for
-     management purposes."
--- Revision History
-
-       REVISION     "200010160000Z" -- 16 October 2000
-       DESCRIPTION  "This is the initial version of this MIB.
-                    Published as RFC 2982"
-    ::= { mib-2 90 }
-
-dismanExpressionMIBObjects OBJECT IDENTIFIER ::=
-                                            { dismanExpressionMIB 1 }
-
-expResource    OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 1 }
-expDefine OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 2 }
-expValue  OBJECT IDENTIFIER ::= { dismanExpressionMIBObjects 3 }
-
---
--- Resource Control
---
-
-expResourceDeltaMinimum OBJECT-TYPE
-    SYNTAX      Integer32 (-1 | 1..600)
-    UNITS       "seconds"
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-     "The minimum expExpressionDeltaInterval this system will
-     accept.  A system may use the larger values of this minimum to
-     lessen the impact of constantly computing deltas.  For larger
-     delta sampling intervals the system samples less often and
-     suffers less overhead.  This object provides a way to enforce
-     such lower overhead for all expressions created after it is
-     set.
-
-     The value -1 indicates that expResourceDeltaMinimum is
-     irrelevant as the system will not accept 'deltaValue' as a
-     value for expObjectSampleType.
-
-     Unless explicitly resource limited, a system's value for
-     this object should be 1, allowing as small as a 1 second
-     interval for ongoing delta sampling.
-
-     Changing this value will not invalidate an existing setting
-     of expObjectSampleType."
-    ::= { expResource 1 }
-
-expResourceDeltaWildcardInstanceMaximum OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "instances"
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-     "For every instance of a deltaValue object, one dynamic instance
-     entry is needed for holding the instance value from the previous
-     sample, i.e. to maintain state.
-
-     This object limits maximum number of dynamic instance entries
-     this system will support for wildcarded delta objects in
-     expressions. For a given delta expression, the number of
-     dynamic instances is the number of values that meet all criteria
-     to exist times the number of delta values in the expression.
-
-     A value of 0 indicates no preset limit, that is, the limit
-     is dynamic based on system operation and resources.
-
-     Unless explicitly resource limited, a system's value for
-     this object should be 0.
-
-     Changing this value will not eliminate or inhibit existing delta
-     wildcard instance objects but will prevent the creation of more
-     such objects.
-
-     An attempt to allocate beyond the limit results in expErrorCode
-     being tooManyWildcardValues for that evaluation attempt."
-    ::= { expResource 2 }
-
-expResourceDeltaWildcardInstances OBJECT-TYPE
-    SYNTAX      Gauge32
-    UNITS       "instances"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The number of currently active instance entries as
-     defined for expResourceDeltaWildcardInstanceMaximum."
-    ::= { expResource 3 }
-
-expResourceDeltaWildcardInstancesHigh OBJECT-TYPE
-    SYNTAX      Gauge32
-    UNITS       "instances"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The highest value of expResourceDeltaWildcardInstances
-     that has occurred since initialization of the managed
-     system."
-    ::= { expResource 4 }
-
-expResourceDeltaWildcardInstanceResourceLacks OBJECT-TYPE
-    SYNTAX      Counter32
-    UNITS       "instances"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The number of times this system could not evaluate an
-     expression because that would have created a value instance in
-     excess of expResourceDeltaWildcardInstanceMaximum."
-    ::= { expResource 5 }
-
---
-
--- Definition
---
--- Expression Definition Table
---
-
-expExpressionTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF ExpExpressionEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "A table of expression definitions."
-    ::= { expDefine 1 }
-
-expExpressionEntry OBJECT-TYPE
-    SYNTAX      ExpExpressionEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "Information about a single expression.  New expressions
-     can be created using expExpressionRowStatus.
-
-     To create an expression first create the named entry in this
-     table.  Then use expExpressionName to populate expObjectTable.
-     For expression evaluation to succeed all related entries in
-     expExpressionTable and expObjectTable must be 'active'.  If
-     these conditions are not met the corresponding values in
-     expValue simply are not instantiated.
-
-     Deleting an entry deletes all related entries in expObjectTable
-     and expErrorTable.
-
-     Because of the relationships among the multiple tables for an
-     expression (expExpressionTable, expObjectTable, and
-     expValueTable) and the SNMP rules for independence in setting
-     object values, it is necessary to do final error checking when
-     an expression is evaluated, that is, when one of its instances
-     in expValueTable is read or a delta interval expires.  Earlier
-     checking need not be done and an implementation may not impose
-     any ordering on the creation of objects related to an
-     expression.
-
-     To maintain security of MIB information, when creating a new row in
-     this table, the managed system must record the security credentials
-     of the requester.  These security credentials are the parameters
-     necessary as inputs to isAccessAllowed from the Architecture for
-
-     Describing SNMP Management Frameworks.  When obtaining the objects
-     that make up the expression, the system must (conceptually) use
-     isAccessAllowed to ensure that it does not violate security.
-
-     The evaluation of the expression takes place under the
-     security credentials of the creator of its expExpressionEntry.
-
-     Values of read-write objects in this table may be changed
-
-     at any time."
-    INDEX       { expExpressionOwner, expExpressionName }
-    ::= { expExpressionTable 1 }
-
-ExpExpressionEntry ::= SEQUENCE {
-    expExpressionOwner           SnmpAdminString,
-    expExpressionName             SnmpAdminString,
-    expExpression                OCTET STRING,
-    expExpressionValueType       INTEGER,
-    expExpressionComment         SnmpAdminString,
-    expExpressionDeltaInterval   Integer32,
-    expExpressionPrefix           OBJECT IDENTIFIER,
-    expExpressionErrors          Counter32,
-    expExpressionEntryStatus     RowStatus
-}
-
-expExpressionOwner OBJECT-TYPE
-   SYNTAX      SnmpAdminString (SIZE(0..32))
-   MAX-ACCESS  not-accessible
-   STATUS      current
-   DESCRIPTION
-     "The owner of this entry. The exact semantics of this
-     string are subject to the security policy defined by the
-     security administrator."
-    ::= { expExpressionEntry 1 }
-
-expExpressionName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (1..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "The name of the expression.  This is locally unique, within
-     the scope of an expExpressionOwner."
-    ::= { expExpressionEntry 2 }
-
-expExpression OBJECT-TYPE
-    SYNTAX      OCTET STRING (SIZE (1..1024))
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-     "The expression to be evaluated.  This object is the same
-     as a DisplayString (RFC 1903) except for its maximum length.
-
-     Except for the variable names the expression is in ANSI C
-     syntax.  Only the subset of ANSI C operators and functions
-     listed here is allowed.
-
-     Variables are expressed as a dollar sign ('$') and an
-
-     integer that corresponds to an expObjectIndex.  An
-     example of a valid expression is:
-
-          ($1-$5)*100
-
-     Expressions must not be recursive, that is although an expression
-     may use the results of another expression, it must not contain
-     any variable that is directly or indirectly a result of its own
-     evaluation. The managed system must check for recursive
-     expressions.
-
-     The only allowed operators are:
-
-          ( )
-          - (unary)
-          + - * / %
-          & | ^ << >> ~
-          ! && || == != > >= < <=
-
-     Note the parentheses are included for parenthesizing the
-     expression, not for casting data types.
-
-     The only constant types defined are:
-
-          int (32-bit signed)
-          long (64-bit signed)
-          unsigned int
-          unsigned long
-          hexadecimal
-          character
-          string
-          oid
-
-     The default type for a positive integer is int unless it is too
-     large in which case it is long.
-
-     All but oid are as defined for ANSI C.  Note that a
-     hexadecimal constant may end up as a scalar or an array of
-     8-bit integers.  A string constant is enclosed in double
-     quotes and may contain back-slashed individual characters
-     as in ANSI C.
-
-     An oid constant comprises 32-bit, unsigned integers and at
-     least one period, for example:
-
-          0.
-          .0
-          1.3.6.1
-
-     No additional leading or trailing subidentifiers are automatically
-     added to an OID constant.  The constant is taken as expressed.
-
-     Integer-typed objects are treated as 32- or 64-bit, signed
-     or unsigned integers, as appropriate.  The results of
-     mixing them are as for ANSI C, including the type of the
-     result.  Note that a 32-bit value is thus promoted to 64 bits
-     only in an operation with a 64-bit value.  There is no
-     provision for larger values to handle overflow.
-
-     Relative to SNMP data types, a resulting value becomes
-     unsigned when calculating it uses any unsigned value,
-     including a counter.  To force the final value to be of
-     data type counter the expression must explicitly use the
-     counter32() or counter64() function (defined below).
-
-     OCTET STRINGS and OBJECT IDENTIFIERs are treated as
-     one-dimensioned arrays of unsigned 8-bit integers and
-     unsigned 32-bit integers, respectively.
-
-     IpAddresses are treated as 32-bit, unsigned integers in
-     network byte order, that is, the hex version of 255.0.0.0 is
-     0xff000000.
-
-     Conditional expressions result in a 32-bit, unsigned integer
-     of value 0 for false or 1 for true. When an arbitrary value
-     is used as a boolean 0 is false and non-zero is true.
-
-     Rules for the resulting data type from an operation, based on
-     the operator:
-
-     For << and >> the result is the same as the left hand operand.
-
-     For &&, ||, ==, !=, <, <=, >, and >= the result is always
-     Unsigned32.
-
-     For unary - the result is always Integer32.
-
-     For +, -, *, /, %, &, |, and ^ the result is promoted according
-     to the following rules, in order from most to least preferred:
-
-          If left hand and right hand operands are the same type,
-          use that.
-
-          If either side is Counter64, use that.
-
-          If either side is IpAddress, use that.
-
-          If either side is TimeTicks, use that.
-
-          If either side is Counter32, use that.
-
-          Otherwise use Unsigned32.
-
-     The following rules say what operators apply with what data
-     types.  Any combination not explicitly defined does not work.
-
-     For all operators any of the following can be the left hand or
-     right hand operand: Integer32, Counter32, Unsigned32, Counter64.
-
-     The operators +, -, *, /, %, <, <=, >, and >= work with
-     TimeTicks.
-
-     The operators &, |, and ^ work with IpAddress.
-
-     The operators << and >> work with IpAddress but only as the
-     left hand operand.
-
-     The + operator performs a concatenation of two OCTET STRINGs or
-     two OBJECT IDENTIFIERs.
-
-     The operators &, | perform bitwise operations on OCTET STRINGs.
-     If the OCTET STRING happens to be a DisplayString the results
-     may be meaningless, but the agent system does not check this as
-     some such systems do not have this information.
-
-     The operators << and >> perform bitwise operations on OCTET
-     STRINGs appearing as the left hand operand.
-
-     The only functions defined are:
-
-          counter32
-          counter64
-          arraySection
-          stringBegins
-          stringEnds
-          stringContains
-          oidBegins
-          oidEnds
-          oidContains
-          average
-          maximum
-          minimum
-          sum
-          exists
-
-     The following function definitions indicate their parameters by
-     naming the data type of the parameter in the parameter's position
-     in the parameter list.  The parameter must be of the type indicated
-     and generally may be a constant, a MIB object, a function, or an
-     expression.
-
-     counter32(integer) - wrapped around an integer value counter32
-     forces Counter32 as a data type.
-
-     counter64(integer) - similar to counter32 except that the
-     resulting data type is 'counter64'.
-
-     arraySection(array, integer, integer) - selects a piece of an
-     array (i.e. part of an OCTET STRING or OBJECT IDENTIFIER).  The
-     integer arguments are in the range 0 to 4,294,967,295.  The
-     first is an initial array index (one-dimensioned) and the second
-     is an ending array index.  A value of 0 indicates first or last
-     element, respectively.  If the first element is larger than the
-     array length the result is 0 length.  If the second integer is
-     less than or equal to the first, the result is 0 length.  If the
-     second is larger than the array length it indicates last
-     element.
-
-     stringBegins/Ends/Contains(octetString, octetString) - looks for
-     the second string (which can be a string constant) in the first
-     and returns the one-dimensioned arrayindex where the match began.
-     A return value of 0 indicates no match (i.e. boolean false).
-
-     oidBegins/Ends/Contains(oid, oid) - looks for the second OID
-     (which can be an OID constant) in the first and returns the
-     the one-dimensioned index where the match began. A return value
-     of 0 indicates no match (i.e. boolean false).
-
-     average/maximum/minimum(integer) - calculates the average,
-     minimum, or maximum value of the integer valued object over
-     multiple sample times.  If the object disappears for any
-     sample period, the accumulation and the resulting value object
-     cease to exist until the object reappears at which point the
-     calculation starts over.
-
-     sum(integerObject*) - sums all available values of the
-     wildcarded integer object, resulting in an integer scalar.  Must
-     be used with caution as it wraps on overflow with no
-     notification.
-
-     exists(anyTypeObject) - verifies the object instance exists. A
-     return value of 0 indicates NoSuchInstance (i.e. boolean
-     false)."
-    ::= { expExpressionEntry 3 }
-
-expExpressionValueType OBJECT-TYPE
-    SYNTAX      INTEGER { counter32(1), unsigned32(2), timeTicks(3),
-                 integer32(4), ipAddress(5), octetString(6),
-                 objectId(7), counter64(8) }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-     "The type of the expression value.  One and only one of the
-     value objects in expValueTable will be instantiated to match
-     this type.
-
-     If the result of the expression can not be made into this type,
-     an invalidOperandType error will occur."
-    DEFVAL      { counter32 }
-    ::= { expExpressionEntry 4 }
-
-expExpressionComment OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-     "A comment to explain the use or meaning of the expression."
-    DEFVAL      { ''H }
-    ::= { expExpressionEntry 5 }
-
-expExpressionDeltaInterval OBJECT-TYPE
-    SYNTAX      Integer32 (0..86400)
-    UNITS       "seconds"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-     "Sampling interval for objects in this expression with
-     expObjectSampleType 'deltaValue'.
-
-     This object has no effect if the the expression has no
-     deltaValue objects.
-
-     A value of 0 indicates no automated sampling.  In this case
-     the delta is the difference from the last time the expression
-     was evaluated.  Note that this is subject to unpredictable
-     delta times in the face of retries or multiple managers.
-
-     A value greater than zero is the number of seconds between
-     automated samples.
-
-     Until the delta interval has expired once the delta for the
-
-     object is effectively not instantiated and evaluating
-     the expression has results as if the object itself were not
-     instantiated.
-
-     Note that delta values potentially consume large amounts of
-     system CPU and memory.  Delta state and processing must
-     continue constantly even if the expression is not being used.
-     That is, the expression is being evaluated every delta interval,
-     even if no application is reading those values.  For wildcarded
-     objects this can be substantial overhead.
-
-     Note that delta intervals, external expression value sampling
-     intervals and delta intervals for expressions within other
-     expressions can have unusual interactions as they are impossible
-     to synchronize accurately.  In general one interval embedded
-     below another must be enough shorter that the higher sample
-     sees relatively smooth, predictable behavior.  So, for example,
-     to avoid the higher level getting the same sample twice, the
-     lower level should sample at least twice as fast as the higher
-     level does."
-    DEFVAL      { 0 }
-    ::= { expExpressionEntry 6 }
-
-expExpressionPrefix OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "An object prefix to assist an application in determining
-     the instance indexing to use in expValueTable, relieving the
-     application of the need to scan the expObjectTable to
-     determine such a prefix.
-
-     See expObjectTable for information on wildcarded objects.
-
-     If the expValueInstance portion of the value OID may
-     be treated as a scalar (that is, normally, 0) the value of
-     expExpressionPrefix is zero length, that is, no OID at all.
-     Note that zero length implies a null OID, not the OID 0.0.
-
-     Otherwise, the value of expExpressionPrefix is the expObjectID
-     value of any one of the wildcarded objects for the expression.
-     This is sufficient, as the remainder, that is, the instance
-     fragment relevant to instancing the values, must be the same for
-     all wildcarded objects in the expression."
-    ::= { expExpressionEntry 7 }
-
-expExpressionErrors OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The number of errors encountered while evaluating this
-     expression.
-
-     Note that an object in the expression not being accessible,
-     is not considered an error. An example of an inaccessible
-     object is when the object is excluded from the view of the
-     user whose security credentials are used in the expression
-     evaluation. In such cases, it is a legitimate condition
-     that causes the corresponding expression value not to be
-     instantiated."
-    ::= { expExpressionEntry 8 }
-
-expExpressionEntryStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-     "The control that allows creation and deletion of entries."
-    ::= { expExpressionEntry 9 }
-
---
--- Expression Error Table
---
-
-expErrorTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF ExpErrorEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "A table of expression errors."
-    ::= { expDefine 2 }
-
-expErrorEntry OBJECT-TYPE
-    SYNTAX      ExpErrorEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "Information about errors in processing an expression.
-
-     Entries appear in this table only when there is a matching
-     expExpressionEntry and then only when there has been an
-     error for that expression as reflected by the error codes
-     defined for expErrorCode."
-    INDEX       { expExpressionOwner, expExpressionName }
-    ::= { expErrorTable 1 }
-
-ExpErrorEntry ::= SEQUENCE {
-    expErrorTime       TimeStamp,
-    expErrorIndex      Integer32,
-    expErrorCode       INTEGER,
-    expErrorInstance   OBJECT IDENTIFIER
-}
-
-expErrorTime OBJECT-TYPE
-    SYNTAX      TimeStamp
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value of sysUpTime the last time an error caused a
-     failure to evaluate this expression."
-    ::= { expErrorEntry 1 }
-
-expErrorIndex OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The one-dimensioned character array index into
-     expExpression for where the error occurred.  The value
-     zero indicates irrelevance."
-    ::= { expErrorEntry 2 }
-
-expErrorCode OBJECT-TYPE
-    SYNTAX      INTEGER {
-          invalidSyntax(1),
-          undefinedObjectIndex(2),
-          unrecognizedOperator(3),
-          unrecognizedFunction(4),
-          invalidOperandType(5),
-          unmatchedParenthesis(6),
-          tooManyWildcardValues(7),
-          recursion(8),
-          deltaTooShort(9),
-          resourceUnavailable(10),
-          divideByZero(11)
-          }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The error that occurred.  In the following explanations the
-     expected timing of the error is in parentheses.  'S' means
-     the error occurs on a Set request.  'E' means the error
-
-     occurs on the attempt to evaluate the expression either due to
-     Get from expValueTable or in ongoing delta processing.
-
-     invalidSyntax       the value sent for expExpression is not
-                    valid Expression MIB expression syntax
-                    (S)
-     undefinedObjectIndex     an object reference ($n) in
-                    expExpression does not have a matching
-                    instance in expObjectTable (E)
-     unrecognizedOperator     the value sent for expExpression held an
-                    unrecognized operator (S)
-     unrecognizedFunction     the value sent for expExpression held an
-                    unrecognized function name (S)
-     invalidOperandType  an operand in expExpression is not the
-                    right type for the associated operator
-                    or result (SE)
-     unmatchedParenthesis     the value sent for expExpression is not
-                    correctly parenthesized (S)
-     tooManyWildcardValues    evaluating the expression exceeded the
-                    limit set by
-                    expResourceDeltaWildcardInstanceMaximum
-                    (E)
-     recursion      through some chain of embedded
-                    expressions the expression invokes itself
-                    (E)
-     deltaTooShort       the delta for the next evaluation passed
-                    before the system could evaluate the
-                    present sample (E)
-     resourceUnavailable some resource, typically dynamic memory,
-                    was unavailable (SE)
-     divideByZero        an attempt to divide by zero occurred
-                    (E)
-
-     For the errors that occur when the attempt is made to set
-     expExpression Set request fails with the SNMP error code
-     'wrongValue'.  Such failures refer to the most recent failure to
-     Set expExpression, not to the present value of expExpression
-     which must be either unset or syntactically correct.
-
-     Errors that occur during evaluation for a Get* operation return
-     the SNMP error code 'genErr' except for 'tooManyWildcardValues'
-     and 'resourceUnavailable' which return the SNMP error code
-     'resourceUnavailable'."
-    ::= { expErrorEntry 3 }
-
-expErrorInstance OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The expValueInstance being evaluated when the error
-     occurred.  A zero-length indicates irrelevance."
-    ::= { expErrorEntry 4 }
-
---
--- Object Table
---
-
-expObjectTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF ExpObjectEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "A table of object definitions for each expExpression.
-
-     Wildcarding instance IDs:
-
-     It is legal to omit all or part of the instance portion for
-     some or all of the objects in an expression. (See the
-     DESCRIPTION of expObjectID for details.  However, note that
-     if more than one object in the same expression is wildcarded
-     in this way, they all must be objects where that portion of
-     the instance is the same.  In other words, all objects may be
-     in the same SEQUENCE or in different SEQUENCEs but with the
-     same semantic index value (e.g., a value of ifIndex)
-     for the wildcarded portion."
-    ::= { expDefine 3 }
-
-expObjectEntry OBJECT-TYPE
-    SYNTAX      ExpObjectEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "Information about an object.  An application uses
-     expObjectEntryStatus to create entries in this table while
-     in the process of defining an expression.
-
-     Values of read-create objects in this table may be
-     changed at any time."
-    INDEX       { expExpressionOwner, expExpressionName, expObjectIndex }
-    ::= { expObjectTable 1 }
-
-ExpObjectEntry ::= SEQUENCE {
-    expObjectIndex                     Unsigned32,
-    expObjectID                        OBJECT IDENTIFIER,
-    expObjectIDWildcard                TruthValue,
-    expObjectSampleType                INTEGER,
-    expObjectDeltaDiscontinuityID      OBJECT IDENTIFIER,
-    expObjectDiscontinuityIDWildcard   TruthValue,
-    expObjectDiscontinuityIDType       INTEGER,
-    expObjectConditional               OBJECT IDENTIFIER,
-    expObjectConditionalWildcard       TruthValue,
-    expObjectEntryStatus               RowStatus
-}
-
-expObjectIndex OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..4294967295)
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "Within an expression, a unique, numeric identification for an
-     object.  Prefixed with a dollar sign ('$') this is used to
-     reference the object in the corresponding expExpression."
-    ::= { expObjectEntry 1 }
-
-expObjectID OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-     "The OBJECT IDENTIFIER (OID) of this object.  The OID may be
-     fully qualified, meaning it includes a complete instance
-     identifier part (e.g., ifInOctets.1 or sysUpTime.0), or it
-     may not be fully qualified, meaning it may lack all or part
-     of the instance identifier.  If the expObjectID is not fully
-     qualified, then expObjectWildcard must be set to true(1).
-     The value of the expression will be multiple
-     values, as if done for a GetNext sweep of the object.
-
-     An object here may itself be the result of an expression but
-     recursion is not allowed.
-
-     NOTE:  The simplest implementations of this MIB may not allow
-     wildcards."
-    ::= { expObjectEntry 2 }
-
-expObjectIDWildcard  OBJECT-TYPE
-    SYNTAX      TruthValue
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "A true value indicates the expObjecID of this row is a wildcard
-        object. False indicates that expObjectID is fully instanced.
-        If all expObjectWildcard values for a given expression are FALSE,
-        expExpressionPrefix will reflect a scalar object (i.e. will
-        be 0.0).
-
-        NOTE:  The simplest implementations of this MIB may not allow
-        wildcards."
-    DEFVAL      { false }
-    ::= { expObjectEntry 3 }
-
-expObjectSampleType OBJECT-TYPE
-    SYNTAX      INTEGER { absoluteValue(1), deltaValue(2),
-                          changedValue(3) }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-     "The method of sampling the selected variable.
-
-     An 'absoluteValue' is simply the present value of the object.
-
-     A 'deltaValue' is the present value minus the previous value,
-     which was sampled expExpressionDeltaInterval seconds ago.
-     This is intended primarily for use with SNMP counters, which are
-     meaningless as an 'absoluteValue', but may be used with any
-     integer-based value.
-
-     A 'changedValue' is a boolean for whether the present value is
-     different from the previous value.  It is applicable to any data
-     type and results in an Unsigned32 with value 1 if the object's
-     value is changed and 0 if not.  In all other respects it is as a
-     'deltaValue' and all statements and operation regarding delta
-     values apply to changed values.
-
-     When an expression contains both delta and absolute values
-     the absolute values are obtained at the end of the delta
-     period."
-    DEFVAL      { absoluteValue }
-    ::= { expObjectEntry 4 }
-
-sysUpTimeInstance OBJECT IDENTIFIER ::= { sysUpTime 0 }
-
-expObjectDeltaDiscontinuityID OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-     "The OBJECT IDENTIFIER (OID) of a TimeTicks, TimeStamp, or
-     DateAndTime object that indicates a discontinuity in the value
-     at expObjectID.
-
-     This object is instantiated only if expObjectSampleType is
-     'deltaValue' or 'changedValue'.
-
-     The OID may be for a leaf object (e.g. sysUpTime.0) or may
-     be wildcarded to match expObjectID.
-
-     This object supports normal checking for a discontinuity in a
-     counter.  Note that if this object does not point to sysUpTime
-     discontinuity checking must still check sysUpTime for an overall
-     discontinuity.
-
-     If the object identified is not accessible no discontinuity
-     check will be made."
-    DEFVAL      { sysUpTimeInstance }
-    ::= { expObjectEntry 5 }
-
-expObjectDiscontinuityIDWildcard OBJECT-TYPE
-     SYNTAX      TruthValue
-     MAX-ACCESS  read-create
-     STATUS      current
-     DESCRIPTION
-     "A true value indicates the expObjectDeltaDiscontinuityID of
-     this row is a wildcard object.  False indicates that
-     expObjectDeltaDiscontinuityID is fully instanced.
-
-     This object is instantiated only if expObjectSampleType is
-     'deltaValue' or 'changedValue'.
-
-     NOTE:  The simplest implementations of this MIB may not allow
-     wildcards."
-    DEFVAL      { false }
-     ::= { expObjectEntry 6 }
-
-expObjectDiscontinuityIDType OBJECT-TYPE
-     SYNTAX      INTEGER { timeTicks(1), timeStamp(2), dateAndTime(3) }
-     MAX-ACCESS  read-create
-     STATUS      current
-     DESCRIPTION
-     "The value 'timeTicks' indicates the expObjectDeltaDiscontinuityID
-     of this row is of syntax TimeTicks.  The value 'timeStamp' indicates
-     syntax TimeStamp.  The value 'dateAndTime indicates syntax
-     DateAndTime.
-
-     This object is instantiated only if expObjectSampleType is
-     'deltaValue' or 'changedValue'."
-    DEFVAL      { timeTicks }
-     ::= { expObjectEntry 7 }
-
-expObjectConditional OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-     "The OBJECT IDENTIFIER (OID) of an object that overrides
-     whether the instance of expObjectID is to be considered
-     usable.  If the value of the object at expObjectConditional
-     is 0 or not instantiated, the object at expObjectID is
-     treated as if it is not instantiated.  In other words,
-     expObjectConditional is a filter that controls whether or
-     not to use the value at expObjectID.
-
-     The OID may be for a leaf object (e.g. sysObjectID.0) or may be
-     wildcarded to match expObjectID.  If expObject is wildcarded and
-     expObjectID in the same row is not, the wild portion of
-     expObjectConditional must match the wildcarding of the rest of
-     the expression.  If no object in the expression is wildcarded
-     but expObjectConditional is, use the lexically first instance
-     (if any) of expObjectConditional.
-
-     If the value of expObjectConditional is 0.0 operation is
-     as if the value pointed to by expObjectConditional is a
-     non-zero (true) value.
-
-     Note that expObjectConditional can not trivially use an object
-     of syntax TruthValue, since the underlying value is not 0 or 1."
-    DEFVAL      { zeroDotZero }
-    ::= { expObjectEntry 8 }
-
- expObjectConditionalWildcard  OBJECT-TYPE
-     SYNTAX      TruthValue
-     MAX-ACCESS  read-create
-     STATUS      current
-     DESCRIPTION
-     "A true value indicates the expObjectConditional of this row is
-     a wildcard object. False indicates that expObjectConditional is
-     fully instanced.
-
-     NOTE: The simplest implementations of this MIB may not allow
-     wildcards."
-    DEFVAL      { false }
-     ::= { expObjectEntry 9 }
-
-expObjectEntryStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-     "The control that allows creation/deletion of entries.
-
-     Objects in this table may be changed while
-     expObjectEntryStatus is in any state."
-    ::= { expObjectEntry 10 }
-
---
--- Expression Value Table
---
-
-expValueTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF ExpValueEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "A table of values from evaluated expressions."
-    ::= { expValue 1 }
-
-expValueEntry OBJECT-TYPE
-    SYNTAX      ExpValueEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "A single value from an evaluated expression.  For a given
-     instance, only one 'Val' object in the conceptual row will be
-     instantiated, that is, the one with the appropriate type for
-     the value.  For values that contain no objects of
-     expObjectSampleType 'deltaValue' or 'changedValue', reading a
-     value from the table causes the evaluation of the expression
-     for that value.  For those that contain a 'deltaValue' or
-     'changedValue' the value read is as of the last sampling
-     interval.
-
-     If in the attempt to evaluate the expression one or more
-     of the necessary objects is not available, the corresponding
-     entry in this table is effectively not instantiated.
-
-     To maintain security of MIB information, when creating a new
-     row in this table, the managed system must record the security
-     credentials of the requester.  These security credentials are
-     the parameters necessary as inputs to isAccessAllowed from
-     [RFC2571]. When obtaining the objects that make up the
-     expression, the system must (conceptually) use isAccessAllowed to
-     ensure that it does not violate security.
-
-     The evaluation of that expression takes place under the
-
-     security credentials of the creator of its expExpressionEntry.
-
-     To maintain security of MIB information, expression evaluation must
-     take place using security credentials for the implied Gets of the
-     objects in the expression as inputs (conceptually) to
-     isAccessAllowed from the Architecture for Describing SNMP
-     Management Frameworks.  These are the security credentials of the
-     creator of the corresponding expExpressionEntry."
-    INDEX       { expExpressionOwner, expExpressionName,
-                  IMPLIED expValueInstance }
-    ::= { expValueTable 1 }
-
-ExpValueEntry ::= SEQUENCE {
-    expValueInstance          OBJECT IDENTIFIER,
-    expValueCounter32Val      Counter32,
-    expValueUnsigned32Val     Unsigned32,
-    expValueTimeTicksVal      TimeTicks,
-    expValueInteger32Val      Integer32,
-    expValueIpAddressVal      IpAddress,
-    expValueOctetStringVal    OCTET STRING,
-    expValueOidVal            OBJECT IDENTIFIER,
-    expValueCounter64Val      Counter64
-}
-
-expValueInstance OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "The final instance portion of a value's OID according to
-     the wildcarding in instances of expObjectID for the
-     expression.  The prefix of this OID fragment is 0.0,
-     leading to the following behavior.
-
-     If there is no wildcarding, the value is 0.0.0.  In other
-     words, there is one value which standing alone would have
-     been a scalar with a 0 at the end of its OID.
-
-     If there is wildcarding, the value is 0.0 followed by
-     a value that the wildcard can take, thus defining one value
-     instance for each real, possible value of the wildcard.
-     So, for example, if the wildcard worked out to be an ifIndex,
-     there is an expValueInstance for each applicable ifIndex."
-    ::= { expValueEntry 1 }
-
-expValueCounter32Val OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when expExpressionValueType is 'counter32'."
-    ::= { expValueEntry 2 }
-
-expValueUnsigned32Val OBJECT-TYPE
-    SYNTAX      Unsigned32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when expExpressionValueType is 'unsigned32'."
-    ::= { expValueEntry 3 }
-
-expValueTimeTicksVal OBJECT-TYPE
-    SYNTAX      TimeTicks
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when expExpressionValueType is 'timeTicks'."
-    ::= { expValueEntry 4 }
-
-expValueInteger32Val OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when expExpressionValueType is 'integer32'."
-    ::= { expValueEntry 5 }
-
-expValueIpAddressVal OBJECT-TYPE
-    SYNTAX      IpAddress
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when expExpressionValueType is 'ipAddress'."
-    ::= { expValueEntry 6 }
-
-expValueOctetStringVal OBJECT-TYPE
-    SYNTAX      OCTET STRING (SIZE (0..65536))
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when expExpressionValueType is 'octetString'."
-    ::= { expValueEntry 7 }
-
-expValueOidVal OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when expExpressionValueType is 'objectId'."
-    ::= { expValueEntry 8 }
-
-expValueCounter64Val OBJECT-TYPE
-    SYNTAX      Counter64
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when expExpressionValueType is 'counter64'."
-    ::= { expValueEntry 9 }
-
---
--- Conformance
---
-
-dismanExpressionMIBConformance OBJECT IDENTIFIER ::=
-    { dismanExpressionMIB 3 }
-dismanExpressionMIBCompliances OBJECT IDENTIFIER ::=
-    { dismanExpressionMIBConformance 1 }
-dismanExpressionMIBGroups      OBJECT IDENTIFIER ::=
-    { dismanExpressionMIBConformance 2 }
-
--- Compliance
-
-dismanExpressionMIBCompliance MODULE-COMPLIANCE
-     STATUS current
-     DESCRIPTION
-          "The compliance statement for entities which implement
-          the Expression MIB."
-     MODULE    -- this module
-          MANDATORY-GROUPS {
-               dismanExpressionResourceGroup,
-               dismanExpressionDefinitionGroup,
-               dismanExpressionValueGroup
-          }
-
-     OBJECT         expResourceDeltaMinimum
-     SYNTAX         Integer32 (-1 | 60..600)
-     DESCRIPTION
-          "Implementation need not allow deltas or it may
-          implement them and restrict them to higher values."
-
-     OBJECT         expObjectSampleType
-     WRITE-SYNTAX   INTEGER { absoluteValue(1) }
-     DESCRIPTION
-          "Implementation may disallow deltas calculation or
-
-          change detection."
-
-     OBJECT         expObjectIDWildcard
-     WRITE-SYNTAX   INTEGER { false(2) }
-     DESCRIPTION
-          "Implementation may allow wildcards."
-
-     OBJECT         expObjectDiscontinuityIDWildcard
-     WRITE-SYNTAX   INTEGER { false(2) }
-     DESCRIPTION
-          "Implementation need not allow wildcards."
-
-     OBJECT          expObjectConditionalWildcard
-     WRITE-SYNTAX   INTEGER { false(2) }
-     DESCRIPTION
-          "Implementation need not allow deltas wildcards."
-     ::= { dismanExpressionMIBCompliances 1 }
-
--- Units of Conformance
-
-dismanExpressionResourceGroup OBJECT-GROUP
-     OBJECTS {
-          expResourceDeltaMinimum,
-          expResourceDeltaWildcardInstanceMaximum,
-          expResourceDeltaWildcardInstances,
-          expResourceDeltaWildcardInstancesHigh,
-          expResourceDeltaWildcardInstanceResourceLacks
-     }
-     STATUS current
-     DESCRIPTION
-          "Expression definition resource management."
-     ::= { dismanExpressionMIBGroups 1 }
-
-dismanExpressionDefinitionGroup OBJECT-GROUP
-     OBJECTS {
-          expExpression,
-          expExpressionValueType,
-          expExpressionComment,
-          expExpressionDeltaInterval,
-          expExpressionPrefix,
-          expExpressionErrors,
-          expExpressionEntryStatus,
-          expErrorTime,
-          expErrorIndex,
-          expErrorCode,
-          expErrorInstance,
-          expObjectID,
-          expObjectIDWildcard,
-          expObjectSampleType,
-          expObjectDeltaDiscontinuityID,
-          expObjectDiscontinuityIDWildcard,
-          expObjectDiscontinuityIDType,
-          expObjectConditional,
-          expObjectConditionalWildcard,
-          expObjectEntryStatus
-     }
-     STATUS current
-     DESCRIPTION
-          "Expression definition."
-     ::= { dismanExpressionMIBGroups 2 }
-
-dismanExpressionValueGroup OBJECT-GROUP
-     OBJECTS {
-          expValueCounter32Val,
-          expValueUnsigned32Val,
-          expValueTimeTicksVal,
-          expValueInteger32Val,
-          expValueIpAddressVal,
-          expValueOctetStringVal,
-          expValueOidVal,
-          expValueCounter64Val
-     }
-     STATUS current
-     DESCRIPTION
-          "Expression value."
-     ::= { dismanExpressionMIBGroups 3 }
-
-END
diff --git a/mibs/DISMAN-NSLOOKUP-MIB.txt b/mibs/DISMAN-NSLOOKUP-MIB.txt
deleted file mode 100644
index b12ca53..0000000
--- a/mibs/DISMAN-NSLOOKUP-MIB.txt
+++ /dev/null
@@ -1,509 +0,0 @@
-DISMAN-NSLOOKUP-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE,
-    Unsigned32, mib-2, Integer32
-        FROM SNMPv2-SMI                  -- RFC2578
-    RowStatus
-        FROM SNMPv2-TC                   -- RFC2579
-    MODULE-COMPLIANCE, OBJECT-GROUP
-        FROM SNMPv2-CONF                 -- RFC2580
-    SnmpAdminString
-        FROM SNMP-FRAMEWORK-MIB          -- RFC3411
-    InetAddressType, InetAddress
-        FROM INET-ADDRESS-MIB;           -- RFC4001
-
- lookupMIB MODULE-IDENTITY
-    LAST-UPDATED "200606130000Z"         -- 13 June 2006
-    ORGANIZATION "IETF Distributed Management Working Group"
-    CONTACT-INFO
-        "Juergen Quittek
-
-        NEC Europe Ltd.
-        Network Laboratories
-        Kurfuersten-Anlage 36
-        69115 Heidelberg
-        Germany
-
-        Phone: +49 6221 4342-115
-        Email: quittek at netlab.nec.de"
-    DESCRIPTION
-        "The Lookup MIB (DISMAN-NSLOOKUP-MIB) enables determination
-        of either the name(s) corresponding to a host address or of
-        the address(es) associated with a host name at a remote
-        host.
-
-        Copyright (C) The Internet Society (2006).  This version of
-        this MIB module is part of RFC 4560; see the RFC itself for
-        full legal notices."
-
-     --  Revision history
-
-     REVISION     "200606130000Z"         -- 13 June 2006
-     DESCRIPTION
-         "Updated version, published as RFC 4560.
-             - Replaced references to RFC 2575 by RFC 3415
-             - Replaced references to RFC 2571 by RFC 3411
-             - Replaced references to RFC 2851 by RFC 4001
-             - Added value enabled(1) to SYNTAX clause of
-               lookupCtlOperStatus
-             - Added lookupMinimumCompliance
-             - Defined semantics of value 0 for object
-               lookupPurgeTime
-             - Added DEFVAL { unknown } to object
-               lookupCtlTargetAddressType OBJECT-TYPE"
-
-     REVISION     "200009210000Z"         -- 21 September 2000
-     DESCRIPTION
-         "Initial version, published as RFC 2925."
-    ::= { mib-2 82 }
-
- -- Top level structure of the MIB
-
- lookupObjects        OBJECT IDENTIFIER ::= { lookupMIB 1 }
- lookupConformance    OBJECT IDENTIFIER ::= { lookupMIB 2 }
-
- -- Simple Object Definitions
-
- lookupMaxConcurrentRequests OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "requests"
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-       "The maximum number of concurrent active lookup requests
-       that are allowed within an agent implementation.  A value
-       of 0 for this object implies that there is no limit for
-       the number of concurrent active requests in effect.
-
-       The limit applies only to new requests being activated.
-       When a new value is set, the agent will continue processing
-       all the requests already active, even if their number
-       exceed the limit just imposed."
-    DEFVAL { 10 }
-    ::= { lookupObjects 1 }
-
- lookupPurgeTime OBJECT-TYPE
-    SYNTAX      Unsigned32 (0..86400)
-    UNITS       "seconds"
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-       "The amount of time to wait before automatically
-       deleting an entry in the lookupCtlTable and any
-       dependent lookupResultsTable entries
-       after the lookup operation represented by a
-       lookupCtlEntry has been completed.
-       A lookupCtEntry is considered complete
-       when its lookupCtlOperStatus object has a
-       value of completed(3).
-
-       A value of 0 indicates that automatic deletion
-       of entries is disabled."
-    DEFVAL { 900 }  -- 15 minutes as default
-    ::= { lookupObjects 2 }
-
- -- Lookup Control Table
-
- lookupCtlTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF LookupCtlEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines the Lookup Control Table for providing
-        the capability of performing a lookup operation
-        for a symbolic host name or for a host address
-        from a remote host."
-   ::= { lookupObjects 3 }
-
- lookupCtlEntry OBJECT-TYPE
-    SYNTAX      LookupCtlEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines an entry in the lookupCtlTable.  A
-        lookupCtlEntry is initially indexed by
-        lookupCtlOwnerIndex, which is a type of SnmpAdminString,
-        a textual convention that allows for the use of the SNMPv3
-        View-Based Access Control Model (RFC 3415, VACM)
-        and that also allows a management application to identify
-        its entries.  The second index element,
-        lookupCtlOperationName, enables the same
-        lookupCtlOwnerIndex entity to have multiple outstanding
-        requests.  The value of lookupCtlTargetAddressType
-        determines which lookup function to perform."
-    INDEX {
-             lookupCtlOwnerIndex,
-             lookupCtlOperationName
-          }
-    ::= { lookupCtlTable 1 }
-
- LookupCtlEntry ::=
-    SEQUENCE {
-        lookupCtlOwnerIndex         SnmpAdminString,
-        lookupCtlOperationName      SnmpAdminString,
-        lookupCtlTargetAddressType  InetAddressType,
-        lookupCtlTargetAddress      InetAddress,
-        lookupCtlOperStatus         INTEGER,
-        lookupCtlTime               Unsigned32,
-        lookupCtlRc                 Integer32,
-        lookupCtlRowStatus          RowStatus
-    }
-
- lookupCtlOwnerIndex OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-       "To facilitate the provisioning of access control by a
-       security administrator using the View-Based Access
-       Control Model (RFC 2575, VACM) for tables in which
-       multiple users may need to create or
-       modify entries independently, the initial index is used as
-       an 'owner index'.  Such an initial index has a syntax of
-       SnmpAdminString and can thus be trivially mapped to a
-
-       securityName or groupName defined in VACM, in
-       accordance with a security policy.
-
-       When used in conjunction with such a security policy all
-       entries in the table belonging to a particular user (or
-       group) will have the same value for this initial index.
-       For a given user's entries in a particular table, the
-       object identifiers for the information in these entries
-       will have the same subidentifiers (except for the
-       'column' subidentifier) up to the end of the encoded
-       owner index.  To configure VACM to permit access to this
-       portion of the table, one would create
-       vacmViewTreeFamilyTable entries with the value of
-       vacmViewTreeFamilySubtree including the owner index
-       portion, and vacmViewTreeFamilyMask 'wildcarding' the
-       column subidentifier.  More elaborate configurations
-       are possible."
-    ::= { lookupCtlEntry 1 }
-
- lookupCtlOperationName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The name of a lookup operation.  This is locally unique,
-        within the scope of an lookupCtlOwnerIndex."
-    ::= { lookupCtlEntry 2 }
-
- lookupCtlTargetAddressType OBJECT-TYPE
-    SYNTAX      InetAddressType
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the type of address for performing a
-        lookup operation for a symbolic host name or for a host
-        address from a remote host.
-
-        Specification of dns(16) as the value for this object
-        means that a function such as, for example, getaddrinfo()
-        or gethostbyname() should be performed to return one or
-        more numeric addresses.  Use of a value of either ipv4(1)
-        or ipv6(2) means that a functions such as, for example,
-        getnameinfo() or gethostbyaddr() should be used to return
-        the symbolic names associated with a host."
-    DEFVAL { unknown }
-    ::= { lookupCtlEntry 3 }
-
- lookupCtlTargetAddress OBJECT-TYPE
-    SYNTAX      InetAddress
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the address used for a resolver lookup at a
-        remote host.  The corresponding lookupCtlTargetAddressType
-        objects determines its type, as well as the function
-        that can be requested.
-
-        A value for this object MUST be set prior to
-        transitioning its corresponding lookupCtlEntry to
-        active(1) via lookupCtlRowStatus."
-    ::= { lookupCtlEntry 4 }
-
- lookupCtlOperStatus OBJECT-TYPE
-    SYNTAX      INTEGER {
-                   enabled(1),    -- operation is active
-                   notStarted(2), -- operation has not started
-                   completed(3)   -- operation is done
-                }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Reflects the operational state of an lookupCtlEntry:
-
-           enabled(1)    - Operation is active.
-           notStarted(2) - Operation has not been enabled.
-           completed(3)  - Operation has been completed.
-
-         An operation is automatically enabled(1) when its
-         lookupCtlRowStatus object is transitioned to active(1)
-         status.  Until this occurs, lookupCtlOperStatus MUST
-         report a value of notStarted(2).  After the lookup
-         operation is completed (success or failure), the value
-         for lookupCtlOperStatus MUST be transitioned to
-         completed(3)."
-    ::= { lookupCtlEntry 5 }
-
- lookupCtlTime OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "milliseconds"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Reports the number of milliseconds that a lookup
-        operation required to be completed at a remote host.
-        Completed means operation failure as well as
-
-        success."
-    ::= { lookupCtlEntry 6 }
-
- lookupCtlRc OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The system-specific return code from a lookup
-        operation.  All implementations MUST return a value
-        of 0 for this object when the remote lookup
-        operation succeeds.  A non-zero value for this
-        objects indicates failure.  It is recommended that
-        implementations return the error codes that are
-        generated by the lookup function used."
-    ::= { lookupCtlEntry 7 }
-
- lookupCtlRowStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object allows entries to be created and deleted
-        in the lookupCtlTable.
-
-        A remote lookup operation is started when an
-        entry in this table is created via an SNMP set
-        request and the entry is activated.  This
-        occurs by setting the value of this object
-        to CreateAndGo(4) during row creation or
-        by setting this object to active(1) after
-        the row is created.
-
-        A value MUST be specified for lookupCtlTargetAddress
-        prior to the acceptance of a transition to active(1) state.
-        A remote lookup operation starts when its entry
-        first becomes active(1).  Transitions in and
-        out of active(1) state have no effect on the
-        operational behavior of a remote lookup
-        operation, with the exception that deletion of
-        an entry in this table by setting its RowStatus
-        object to destroy(6) will stop an active
-        remote lookup operation.
-
-        The operational state of a remote lookup operation
-        can be determined by examination of its
-        lookupCtlOperStatus object."
-    REFERENCE
-        "See definition of RowStatus in RFC 2579,
-        'Textual Conventions for SMIv2.'"
-    ::= { lookupCtlEntry 8 }
-
--- Lookup Results Table
-
- lookupResultsTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF LookupResultsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines the Lookup Results Table for providing
-        the capability of determining the results of a
-        operation at a remote host.
-
-        One or more entries are added to the
-        lookupResultsTable when a lookup operation,
-        as reflected by an lookupCtlEntry, is completed
-        successfully.  All entries related to a
-        successful lookup operation MUST be added
-        to the lookupResultsTable at the same time
-        that the associating lookupCtlOperStatus
-        object is transitioned to completed(2).
-
-        The number of entries added depends on the
-        results determined for a particular lookup
-        operation.  All entries associated with an
-        lookupCtlEntry are removed when the
-        lookupCtlEntry is deleted.
-
-        A remote host can be multi-homed and have more than one IP
-        address associated with it (returned by lookup function),
-        or it can have more than one symbolic name (returned
-        by lookup function).
-
-        A function such as, for example, getnameinfo() or
-        gethostbyaddr() is called with a host address as its
-        parameter and is used primarily to determine a symbolic
-        name to associate with the host address.  Entries in the
-        lookupResultsTable MUST be made for each host name
-        returned.  If the function identifies an 'official host
-        name,' then this symbolic name MUST be assigned a
-        lookupResultsIndex of 1.
-
-        A function such as, for example, getaddrinfo() or
-        gethostbyname() is called with a symbolic host name and is
-        used primarily to retrieve a host address.  The entries
-
-        MUST be stored in the order that they are retrieved from
-        the lookup function.  lookupResultsIndex 1 MUST be
-        assigned to the first entry."
-   ::= { lookupObjects 4 }
-
- lookupResultsEntry OBJECT-TYPE
-    SYNTAX      LookupResultsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines an entry in the lookupResultsTable.  The
-        first two index elements identify the
-        lookupCtlEntry that a lookupResultsEntry belongs
-        to.  The third index element selects a single
-        lookup operation result."
-    INDEX {
-             lookupCtlOwnerIndex,
-             lookupCtlOperationName,
-             lookupResultsIndex
-          }
-    ::= { lookupResultsTable 1 }
-
- LookupResultsEntry ::=
-    SEQUENCE {
-        lookupResultsIndex        Unsigned32,
-        lookupResultsAddressType  InetAddressType,
-        lookupResultsAddress      InetAddress
-     }
-
- lookupResultsIndex OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..'ffffffff'h)
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Entries in the lookupResultsTable are created when
-        the result of a lookup operation is determined.
-
-        Entries MUST be stored in the lookupResultsTable in
-        the order that they are retrieved.  Values assigned
-        to lookupResultsIndex MUST start at 1 and increase
-        consecutively."
-    ::= { lookupResultsEntry 1 }
-
- lookupResultsAddressType OBJECT-TYPE
-    SYNTAX      InetAddressType
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Indicates the type of result of a remote lookup
-        operation.  A value of unknown(0) implies either that
-        the operation hasn't been started or that
-        it has failed."
-    ::= { lookupResultsEntry 2 }
-
- lookupResultsAddress OBJECT-TYPE
-    SYNTAX      InetAddress
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Reflects a result for a remote lookup operation
-        as per the value of lookupResultsAddressType.
-
-        The address type (InetAddressType) that relates to
-        this object is specified by the corresponding value
-        of lookupResultsAddress."
-    ::= { lookupResultsEntry 3 }
-
- -- Conformance information
- -- Compliance statements
-
- lookupCompliances OBJECT IDENTIFIER ::= { lookupConformance 1 }
- lookupGroups      OBJECT IDENTIFIER ::= { lookupConformance 2 }
-
- -- Compliance statements
-
- lookupCompliance MODULE-COMPLIANCE
-    STATUS  current
-    DESCRIPTION
-            "The compliance statement for SNMP entities that
-            fully implement the DISMAN-NSLOOKUP-MIB."
-    MODULE  -- this module
-        MANDATORY-GROUPS { lookupGroup }
-
-        OBJECT lookupMaxConcurrentRequests
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "The agent is not required to support set
-            operations to this object."
-
-        OBJECT lookupPurgeTime
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "The agent is not required to support a set
-            operation to this object."
-    ::= { lookupCompliances 1 }
-
- lookupMinimumCompliance MODULE-COMPLIANCE
-    STATUS  current
-    DESCRIPTION
-            "The minimum compliance statement for SNMP entities
-            that implement the minimal subset of the
-            DISMAN-NSLOOKUP-MIB.  Implementors might choose this
-            subset for small devices with limited resources."
-    MODULE  -- this module
-        MANDATORY-GROUPS { lookupGroup }
-
-        OBJECT lookupMaxConcurrentRequests
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "The agent is not required to support set
-            operations to this object."
-
-        OBJECT lookupPurgeTime
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "The agent is not required to support a set
-            operation to this object."
-
-        OBJECT lookupCtlRowStatus
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-            not supported, then at least one entry in the
-            lookupCtlTable MUST be established already when the SNMP
-            agent starts offering access to the NSLOOKUP-MIB module.
-            If, in such a case, only a single entry is offered, then
-            it is RECOMMENDED that this entry use strings with a
-            length of 0 for both of its two index objects."
-    ::= { lookupCompliances 2 }
-
- -- MIB groupings
-
- lookupGroup OBJECT-GROUP
-   OBJECTS {
-             lookupMaxConcurrentRequests,
-             lookupPurgeTime,
-             lookupCtlOperStatus,
-             lookupCtlTargetAddressType,
-             lookupCtlTargetAddress,
-             lookupCtlTime,
-             lookupCtlRc,
-             lookupCtlRowStatus,
-             lookupResultsAddressType,
-             lookupResultsAddress
-           }
-   STATUS  current
-   DESCRIPTION
-       "The group of objects that constitute the remote
-       Lookup operation."
-    ::= { lookupGroups 1 }
-
-END
diff --git a/mibs/DISMAN-PING-MIB.txt b/mibs/DISMAN-PING-MIB.txt
deleted file mode 100644
index 645ff8c..0000000
--- a/mibs/DISMAN-PING-MIB.txt
+++ /dev/null
@@ -1,1561 +0,0 @@
-DISMAN-PING-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE, Integer32,
-    Unsigned32, Gauge32, mib-2,
-    NOTIFICATION-TYPE, OBJECT-IDENTITY
-        FROM SNMPv2-SMI                  -- RFC2578
-    TEXTUAL-CONVENTION, RowStatus,
-    StorageType, DateAndTime, TruthValue
-        FROM SNMPv2-TC                   -- RFC2579
-    MODULE-COMPLIANCE, OBJECT-GROUP,
-    NOTIFICATION-GROUP
-        FROM SNMPv2-CONF                 -- RFC2580
-    InterfaceIndexOrZero                 -- RFC2863
-        FROM IF-MIB
-    SnmpAdminString
-        FROM SNMP-FRAMEWORK-MIB          -- RFC3411
-    InetAddressType, InetAddress
-        FROM INET-ADDRESS-MIB;           -- RFC4001
-
- pingMIB MODULE-IDENTITY
-    LAST-UPDATED "200606130000Z"         -- 13 June 2006
-    ORGANIZATION "IETF Distributed Management Working Group"
-    CONTACT-INFO
-        "Juergen Quittek
-
-        NEC Europe Ltd.
-        Network Laboratories
-        Kurfuersten-Anlage 36
-        69115 Heidelberg
-        Germany
-
-        Phone: +49 6221 4342-115
-
-        Email: quittek at netlab.nec.de"
-    DESCRIPTION
-        "The Ping MIB (DISMAN-PING-MIB) provides the capability of
-        controlling the use of the ping function at a remote
-        host.
-
-        Copyright (C) The Internet Society (2006).  This version of
-        this MIB module is part of RFC 4560; see the RFC itself for
-        full legal notices."
-
-     --  Revision history
-
-     REVISION     "200606130000Z"         -- 13 June 2006
-     DESCRIPTION
-         "Updated version, published as RFC 4560.
-             - Correctly considered IPv6 in DESCRIPTION
-               clause of pingCtlDataSize
-             - Replaced references to RFC 2575 by RFC 3415
-             - Replaced references to RFC 2571 by RFC 3411
-             - Replaced references to RFC 2851 by RFC 4001
-             - Added DEFVAL { {} } to definition of
-               pingCtlTrapGeneration
-             - Changed DEFVAL of object pingCtlDescr from
-               DEFVAL { '00'H } to DEFVAL { ''H }
-             - Changed DEFVAL of object pingCtlSourceAddressType
-               from DEFVAL { ipv4 } to DEFVAL { unknown }
-             - Extended DESCRIPTION clause of pingResultsTable
-               describing re-initialization of entries
-             - Changed SYNTAX of pingResultsProbeResponses and
-               pingResultsSentProbes from Unsigned32 to Gauge32
-             - Changed status of pingCompliance to deprecated
-             - Added pingFullCompliance and pingMinimumCompliance
-             - Changed status of pingGroup and pingTimeStampGroup
-               to deprecated
-             - Added pingMinimumGroup, pingCtlRowStatusGroup,
-               and pingHistoryGroup"
-
-     REVISION     "200009210000Z"         -- 21 September 2000
-     DESCRIPTION
-         "Initial version, published as RFC 2925."
-    ::= { mib-2 80 }
-
- -- Textual Conventions
-
-  OperationResponseStatus ::= TEXTUAL-CONVENTION
-    STATUS  current
-    DESCRIPTION
-        "Used to report the result of an operation:
-
-         responseReceived(1) - Operation is completed successfully.
-         unknown(2) - Operation failed due to unknown error.
-         internalError(3) - An implementation detected an error
-              in its own processing that caused an operation
-              to fail.
-         requestTimedOut(4) - Operation failed to receive a
-              valid reply within the time limit imposed on it.
-         unknownDestinationAddress(5) - Invalid destination
-              address.
-         noRouteToTarget(6) - Could not find a route to target.
-         interfaceInactiveToTarget(7) - The interface to be
-              used in sending a probe is inactive, and an
-              alternate route does not exist.
-         arpFailure(8) - Unable to resolve a target address to a
-              media-specific address.
-         maxConcurrentLimitReached(9) - The maximum number of
-              concurrent active operations would have been exceeded
-              if the corresponding operation was allowed.
-         unableToResolveDnsName(10) - The DNS name specified was
-              unable to be mapped to an IP address.
-         invalidHostAddress(11) - The IP address for a host
-              has been determined to be invalid.  Examples of this
-              are broadcast or multicast addresses."
-    SYNTAX INTEGER {
-                 responseReceived(1),
-                 unknown(2),
-                 internalError(3),
-                 requestTimedOut(4),
-                 unknownDestinationAddress(5),
-                 noRouteToTarget(6),
-                 interfaceInactiveToTarget(7),
-                 arpFailure(8),
-                 maxConcurrentLimitReached(9),
-                 unableToResolveDnsName(10),
-                 invalidHostAddress(11)
-              }
-
- -- Top level structure of the MIB
-
- pingNotifications              OBJECT IDENTIFIER ::= { pingMIB 0 }
- pingObjects                    OBJECT IDENTIFIER ::= { pingMIB 1 }
- pingConformance                OBJECT IDENTIFIER ::= { pingMIB 2 }
-
- -- The registration node (point) for ping implementation types
-
- pingImplementationTypeDomains  OBJECT IDENTIFIER ::= { pingMIB 3 }
-
- pingIcmpEcho OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "Indicates that an implementation is using the Internet
-        Control Message Protocol (ICMP) 'ECHO' facility."
-    ::= { pingImplementationTypeDomains 1 }
-
- pingUdpEcho OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "Indicates that an implementation is using the UDP echo
-        port (7)."
-    REFERENCE
-        "RFC 862, 'Echo Protocol'."
-    ::= { pingImplementationTypeDomains 2 }
-
- pingSnmpQuery OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "Indicates that an implementation is using an SNMP query
-         to calculate a round trip time."
-    ::= { pingImplementationTypeDomains 3 }
-
- pingTcpConnectionAttempt OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "Indicates that an implementation is attempting to
-        connect to a TCP port in order to calculate a round
-        trip time."
-    ::= { pingImplementationTypeDomains 4 }
-
- -- Simple Object Definitions
-
- pingMaxConcurrentRequests OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "requests"
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-       "The maximum number of concurrent active ping requests
-       that are allowed within an agent implementation.  A value
-       of 0 for this object implies that there is no limit for
-       the number of concurrent active requests in effect.
-
-       The limit applies only to new requests being activated.
-       When a new value is set, the agent will continue processing
-       all the requests already active, even if their number
-       exceeds the limit just imposed."
-    DEFVAL { 10 }
-    ::= { pingObjects 1 }
-
- -- Ping Control Table
-
- pingCtlTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF PingCtlEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines the ping Control Table for providing, via SNMP,
-        the capability of performing ping operations at
-        a remote host.  The results of these operations are
-        stored in the pingResultsTable and the
-        pingProbeHistoryTable."
-   ::= { pingObjects 2 }
-
- pingCtlEntry OBJECT-TYPE
-    SYNTAX      PingCtlEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines an entry in the pingCtlTable.  The first index
-        element, pingCtlOwnerIndex, is of type SnmpAdminString,
-        a textual convention that allows for use of the SNMPv3
-        View-Based Access Control Model (RFC 3415, VACM)
-        and that allows a management application to identify its
-        entries.  The second index, pingCtlTestName (also an
-        SnmpAdminString), enables the same management
-        application to have multiple outstanding requests."
-    INDEX {
-             pingCtlOwnerIndex,
-             pingCtlTestName
-          }
-    ::= { pingCtlTable 1 }
-
- PingCtlEntry ::=
-    SEQUENCE {
-        pingCtlOwnerIndex             SnmpAdminString,
-        pingCtlTestName               SnmpAdminString,
-        pingCtlTargetAddressType      InetAddressType,
-        pingCtlTargetAddress          InetAddress,
-        pingCtlDataSize               Unsigned32,
-        pingCtlTimeOut                Unsigned32,
-        pingCtlProbeCount             Unsigned32,
-        pingCtlAdminStatus            INTEGER,
-        pingCtlDataFill               OCTET STRING,
-        pingCtlFrequency              Unsigned32,
-        pingCtlMaxRows                Unsigned32,
-        pingCtlStorageType            StorageType,
-        pingCtlTrapGeneration         BITS,
-        pingCtlTrapProbeFailureFilter Unsigned32,
-        pingCtlTrapTestFailureFilter  Unsigned32,
-        pingCtlType                   OBJECT IDENTIFIER,
-        pingCtlDescr                  SnmpAdminString,
-        pingCtlSourceAddressType      InetAddressType,
-        pingCtlSourceAddress          InetAddress,
-        pingCtlIfIndex                InterfaceIndexOrZero,
-        pingCtlByPassRouteTable       TruthValue,
-        pingCtlDSField                Unsigned32,
-        pingCtlRowStatus              RowStatus
-    }
-
- pingCtlOwnerIndex OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-       "To facilitate the provisioning of access control by a
-       security administrator using the View-Based Access
-       Control Model (RFC 2575, VACM) for tables in which
-       multiple users may need to create or
-       modify entries independently, the initial index is used
-       as an 'owner index'.  Such an initial index has a syntax
-       of SnmpAdminString and can thus be trivially mapped to a
-       securityName or groupName defined in VACM, in
-       accordance with a security policy.
-
-       When used in conjunction with such a security policy, all
-       entries in the table belonging to a particular user (or
-       group) will have the same value for this initial index.
-       For a given user's entries in a particular table, the
-       object identifiers for the information in these entries
-       will have the same subidentifiers (except for the 'column'
-       subidentifier) up to the end of the encoded owner index.
-       To configure VACM to permit access to this portion of the
-       table, one would create vacmViewTreeFamilyTable entries
-       with the value of vacmViewTreeFamilySubtree including
-       the owner index portion, and vacmViewTreeFamilyMask
-       'wildcarding' the column subidentifier.  More elaborate
-       configurations are possible."
-    ::= { pingCtlEntry 1 }
-
- pingCtlTestName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The name of the ping test.  This is locally unique, within
-        the scope of a pingCtlOwnerIndex."
-    ::= { pingCtlEntry 2 }
-
- pingCtlTargetAddressType OBJECT-TYPE
-    SYNTAX      InetAddressType
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the type of host address to be used at a remote
-        host for performing a ping operation."
-    DEFVAL { unknown }
-    ::= { pingCtlEntry 3 }
-
- pingCtlTargetAddress OBJECT-TYPE
-    SYNTAX      InetAddress
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the host address to be used at a remote host for
-        performing a ping operation.  The host address type is
-        determined by the value of the corresponding
-        pingCtlTargetAddressType.
-
-        A value for this object MUST be set prior to transitioning
-        its corresponding pingCtlEntry to active(1) via
-        pingCtlRowStatus."
-    DEFVAL { ''H }
-    ::= { pingCtlEntry 4 }
-
- pingCtlDataSize OBJECT-TYPE
-    SYNTAX      Unsigned32 (0..65507)
-    UNITS       "octets"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the size of the data portion to be
-        transmitted in a ping operation, in octets.  Whether this
-        value can be applied depends on the selected
-        implementation method for performing a ping operation,
-        indicated by pingCtlType in the same conceptual row.
-        If the method used allows applying the value contained
-
-        in this object, then it MUST be applied.  If the specified
-        size is not appropriate for the chosen ping method, the
-        implementation SHOULD use whatever size (appropriate to
-        the method) is closest to the specified size.
-
-        The maximum value for this object was computed by
-        subtracting the smallest possible IP header size of
-        20 octets (IPv4 header with no options) and the UDP
-        header size of 8 octets from the maximum IP packet size.
-        An IP packet has a maximum size of 65535 octets
-        (excluding IPv6 Jumbograms)."
-    DEFVAL { 0 }
-    ::= { pingCtlEntry 5 }
-
- pingCtlTimeOut OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..60)
-    UNITS       "seconds"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the time-out value, in seconds, for a
-        remote ping operation."
-    DEFVAL { 3 }
-    ::= { pingCtlEntry 6 }
-
- pingCtlProbeCount OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..15)
-    UNITS       "probes"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the number of times to perform a ping
-        operation at a remote host as part of a single ping test."
-    DEFVAL { 1 }
-    ::= { pingCtlEntry 7 }
-
- pingCtlAdminStatus OBJECT-TYPE
-    SYNTAX      INTEGER {
-                          enabled(1), -- test should be started
-                          disabled(2) -- test should be stopped
-                        }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Reflects the desired state that a pingCtlEntry should be
-        in:
-
-           enabled(1)  - Attempt to activate the test as defined by
-                         this pingCtlEntry.
-           disabled(2) - Deactivate the test as defined by this
-                         pingCtlEntry.
-
-        Refer to the corresponding pingResultsOperStatus to
-        determine the operational state of the test defined by
-        this entry."
-     DEFVAL { disabled }
-    ::= { pingCtlEntry 8 }
-
- pingCtlDataFill  OBJECT-TYPE
-    SYNTAX      OCTET STRING (SIZE(0..1024))
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The content of this object is used together with the
-        corresponding pingCtlDataSize value to determine how to
-        fill the data portion of a probe packet.  The option of
-        selecting a data fill pattern can be useful when links
-        are compressed or have data pattern sensitivities.  The
-        contents of pingCtlDataFill should be repeated in a ping
-        packet when the size of the data portion of the ping
-        packet is greater than the size of pingCtlDataFill."
-    DEFVAL { '00'H }
-    ::= { pingCtlEntry 9 }
-
- pingCtlFrequency  OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "seconds"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The number of seconds to wait before repeating a ping test
-        as defined by the value of the various objects in the
-        corresponding row.
-
-        A single ping test consists of a series of ping probes.
-        The number of probes is determined by the value of the
-        corresponding pingCtlProbeCount object.  After a single
-        test is completed the number of seconds as defined by the
-        value of pingCtlFrequency MUST elapse before the
-        next ping test is started.
-
-        A value of 0 for this object implies that the test
-        as defined by the corresponding entry will not be
-        repeated."
-    DEFVAL { 0 }
-    ::= { pingCtlEntry 10 }
-
- pingCtlMaxRows OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "rows"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The maximum number of corresponding entries allowed
-        in the pingProbeHistoryTable.  An implementation of this
-        MIB will remove the oldest corresponding entry in the
-        pingProbeHistoryTable to allow the addition of an
-        new entry once the number of corresponding rows in the
-        pingProbeHistoryTable reaches this value.
-
-        Old entries are not removed when a new test is
-        started.  Entries are added to the pingProbeHistoryTable
-        until pingCtlMaxRows is reached before entries begin to
-        be removed.
-
-        A value of 0 for this object disables creation of
-        pingProbeHistoryTable entries."
-    DEFVAL      { 50 }
-    ::= { pingCtlEntry 11 }
-
- pingCtlStorageType 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 }
-    ::= { pingCtlEntry 12 }
-
- pingCtlTrapGeneration OBJECT-TYPE
-    SYNTAX      BITS {
-                   probeFailure(0),
-                   testFailure(1),
-                   testCompletion(2)
-                  }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object determines when and whether
-        to generate a notification for this entry:
-
-        probeFailure(0)   - Generate a pingProbeFailed
-            notification subject to the value of
-            pingCtlTrapProbeFailureFilter.  The object
-            pingCtlTrapProbeFailureFilter can be used
-            to specify the number of consecutive probe
-            failures that are required before a
-            pingProbeFailed notification can be generated.
-        testFailure(1)    - Generate a pingTestFailed
-            notification.  In this instance the object
-            pingCtlTrapTestFailureFilter can be used to
-            determine the number of probe failures that
-            signal when a test fails.
-        testCompletion(2) - Generate a pingTestCompleted
-            notification.
-
-        By default, no bits are set, indicating that
-        none of the above options is selected."
-    DEFVAL { {} }  -- no bits set.
-    ::= { pingCtlEntry 13 }
-
- pingCtlTrapProbeFailureFilter OBJECT-TYPE
-    SYNTAX      Unsigned32 (0..15)
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object is used to determine when
-        to generate a pingProbeFailed NOTIFICATION.
-
-        Setting BIT probeFailure(0) of object
-        pingCtlTrapGeneration to '1' implies that a
-        pingProbeFailed NOTIFICATION is generated only when
-
-        a number of consecutive ping probes equal to the
-        value of pingCtlTrapProbeFailureFilter fail within
-        a given ping test.  After triggering the notification,
-        the probe failure counter is reset to zero."
-    DEFVAL { 1 }
-    ::= { pingCtlEntry 14 }
-
- pingCtlTrapTestFailureFilter OBJECT-TYPE
-    SYNTAX      Unsigned32 (0..15)
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object is used to determine when
-        to generate a pingTestFailed NOTIFICATION.
-
-        Setting BIT testFailure(1) of object
-
-        pingCtlTrapGeneration to '1' implies that a
-        pingTestFailed NOTIFICATION is generated only when
-        a number of consecutive ping tests equal to the
-        value of pingCtlTrapProbeFailureFilter fail.
-        After triggering the notification, the test failure
-        counter is reset to zero."
-    DEFVAL { 1 }
-    ::= { pingCtlEntry 15 }
-
- pingCtlType OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object is used either to report or
-        to select the implementation method to be used for
-        calculating a ping response time.  The value of this
-        object MAY be selected from pingImplementationTypeDomains.
-
-        Additional implementation types SHOULD be allocated as
-        required by implementers of the DISMAN-PING-MIB under
-        their enterprise-specific registration point and not
-        beneath pingImplementationTypeDomains."
-    DEFVAL { pingIcmpEcho }
-    ::= { pingCtlEntry 16 }
-
- pingCtlDescr OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The purpose of this object is to provide a
-        descriptive name of the remote ping test."
-    DEFVAL { ''H }
-    ::= { pingCtlEntry 17 }
-
- pingCtlSourceAddressType OBJECT-TYPE
-    SYNTAX      InetAddressType
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the type of the source address,
-        pingCtlSourceAddress, to be used at a remote host
-        when a ping operation is performed."
-    DEFVAL { unknown }
-    ::= { pingCtlEntry 18 }
-
-  pingCtlSourceAddress OBJECT-TYPE
-    SYNTAX      InetAddress
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Use the specified IP address (which must be given in
-        numeric form, not as a hostname) as the source address
-        in outgoing probe packets.  On hosts with more than one
-        IP address, this option can be used to select the address
-        to be used.  If the IP address is not one of this
-        machine's interface addresses, an error is returned and
-        nothing is sent.  A zero-length octet string value for
-        this object disables source address specification.
-
-        The address type (InetAddressType) that relates to
-        this object is specified by the corresponding value
-        of pingCtlSourceAddressType."
-    DEFVAL { ''H }
-    ::= { pingCtlEntry 19 }
-
- pingCtlIfIndex OBJECT-TYPE
-    SYNTAX      InterfaceIndexOrZero
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Setting this object to an interface's ifIndex prior
-        to starting a remote ping operation directs
-        the ping probes to be transmitted over the
-        specified interface.  A value of zero for this object
-        means that this option is not enabled."
-    DEFVAL { 0 }
-    ::= { pingCtlEntry 20 }
-
- pingCtlByPassRouteTable OBJECT-TYPE
-    SYNTAX      TruthValue
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-       "The purpose of this object is to enable optional
-       bypassing the route table.  If enabled, the remote
-       host will bypass the normal routing tables and send
-       directly to a host on an attached network.  If the
-       host is not on a directly attached network, an
-       error is returned.  This option can be used to perform
-       the ping operation to a local host through an
-       interface that has no route defined (e.g., after the
-       interface was dropped by the routing daemon at the host)."
-    DEFVAL { false }
-    ::= { pingCtlEntry 21 }
-
- pingCtlDSField OBJECT-TYPE
-    SYNTAX      Unsigned32 (0..255)
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the value to store in the Type of Service
-        (TOS) octet in the IPv4 header or in the Traffic
-        Class octet in the IPv6 header, respectively, of the
-        IP packet used to encapsulate the ping probe.
-
-        The octet to be set in the IP header contains the
-        Differentiated Services (DS) Field in the six most
-        significant bits.
-
-        This option can be used to determine what effect an
-        explicit DS Field setting has on a ping response.
-        Not all values are legal or meaningful.  A value of 0
-        means that the function represented by this option is
-        not supported.  DS Field usage is often not supported
-        by IP implementations, and not all values are supported.
-        Refer to RFC 2474 and RFC 3260 for guidance on usage of
-        this field."
-    REFERENCE
-        "Refer to RFC 1812 for the definition of the IPv4 TOS
-        octet and to RFC 2460 for the definition of the IPv6
-        Traffic Class octet.  Refer to RFC 2474 and RFC 3260
-        for the definition of the Differentiated Services Field."
-    DEFVAL { 0 }
-    ::= { pingCtlEntry 22 }
-
- pingCtlRowStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object allows entries to be created and deleted
-        in the pingCtlTable.  Deletion of an entry in this
-        table results in the deletion of all corresponding (same
-        pingCtlOwnerIndex and pingCtlTestName index values)
-        pingResultsTable and pingProbeHistoryTable entries.
-
-        A value MUST be specified for pingCtlTargetAddress
-        prior to acceptance of a transition to active(1) state.
-
-        When a value for pingCtlTargetAddress is set,
-        the value of object pingCtlRowStatus changes
-        from notReady(3) to notInService(2).
-
-        Activation of a remote ping operation is controlled
-        via pingCtlAdminStatus, not by changing
-        this object's value to active(1).
-
-        Transitions in and out of active(1) state are not
-        allowed while an entry's pingResultsOperStatus is
-        active(1), with the exception that deletion of
-        an entry in this table by setting its RowStatus
-        object to destroy(6) will stop an active
-        ping operation.
-
-        The operational state of a ping operation
-        can be determined by examination of its
-        pingResultsOperStatus object."
-    REFERENCE
-        "See definition of RowStatus in RFC 2579, 'Textual
-        Conventions for SMIv2.'"
-    ::= { pingCtlEntry 23 }
-
--- Ping Results Table
-
- pingResultsTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF PingResultsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines the Ping Results Table for providing
-        the capability of performing ping operations at
-        a remote host.  The results of these operations are
-        stored in the pingResultsTable and the pingProbeHistoryTable.
-
-        An entry is added to the pingResultsTable when an
-        pingCtlEntry is started by successful transition
-        of its pingCtlAdminStatus object to enabled(1).
-
-        If the object pingCtlAdminStatus already has the value
-        enabled(1), and if the corresponding pingResultsOperStatus
-        object has the value completed(3), then successfully writing
-        enabled(1) to object pingCtlAdminStatus re-initializes the
-        already existing entry in the pingResultsTable.  The values
-        of objects in the re-initialized entry are the same as the
-        values of objects in a new entry would be.
-
-        An entry is removed from the pingResultsTable when
-        its corresponding pingCtlEntry is deleted."
-   ::= { pingObjects 3 }
-
- pingResultsEntry OBJECT-TYPE
-    SYNTAX      PingResultsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines an entry in the pingResultsTable.  The
-        pingResultsTable has the same indexing as the
-        pingCtlTable so that a pingResultsEntry
-        corresponds to the pingCtlEntry that caused it to
-        be created."
-    INDEX {
-             pingCtlOwnerIndex,
-             pingCtlTestName
-          }
-    ::= { pingResultsTable 1 }
-
- PingResultsEntry ::=
-    SEQUENCE {
-        pingResultsOperStatus          INTEGER,
-        pingResultsIpTargetAddressType InetAddressType,
-        pingResultsIpTargetAddress     InetAddress,
-        pingResultsMinRtt              Unsigned32,
-        pingResultsMaxRtt              Unsigned32,
-        pingResultsAverageRtt          Unsigned32,
-        pingResultsProbeResponses      Gauge32,
-        pingResultsSentProbes          Gauge32,
-        pingResultsRttSumOfSquares     Unsigned32,
-        pingResultsLastGoodProbe       DateAndTime
-     }
-
- pingResultsOperStatus OBJECT-TYPE
-    SYNTAX      INTEGER {
-                          enabled(1),   -- test is in progress
-                          disabled(2),  -- test has stopped
-                          completed(3)  -- test is completed
-                        }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Reflects the operational state of a pingCtlEntry:
-
-           enabled(1)    - Test is active.
-           disabled(2)   - Test has stopped.
-           completed(3)  - Test is completed."
-    ::= { pingResultsEntry 1 }
-
- pingResultsIpTargetAddressType OBJECT-TYPE
-    SYNTAX      InetAddressType
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This object indicates the type of address stored
-        in the corresponding pingResultsIpTargetAddress
-        object."
-    DEFVAL { unknown }
-    ::= { pingResultsEntry 2 }
-
- pingResultsIpTargetAddress OBJECT-TYPE
-    SYNTAX      InetAddress
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This object reports the IP address associated
-        with a pingCtlTargetAddress value when the destination
-        address is specified as a DNS name.  The value of
-        this object should be a zero-length octet string
-        when a DNS name is not specified or when a
-        specified DNS name fails to resolve.
-
-        The address type (InetAddressType) that relates to
-        this object is specified by the corresponding value
-        of pingResultsIpTargetAddressType."
-    DEFVAL { ''H }
-    ::= { pingResultsEntry 3 }
-
- pingResultsMinRtt OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "milliseconds"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The minimum ping round-trip-time (RTT) received.  A value
-        of 0 for this object implies that no RTT has been received."
-    ::= { pingResultsEntry 4 }
-
- pingResultsMaxRtt OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "milliseconds"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The maximum ping round-trip-time (RTT) received.  A value
-        of 0 for this object implies that no RTT has been received."
-    ::= { pingResultsEntry 5 }
-
-  pingResultsAverageRtt OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "milliseconds"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The current average ping round-trip-time (RTT)."
-    ::= { pingResultsEntry 6 }
-
-  pingResultsProbeResponses OBJECT-TYPE
-    SYNTAX      Gauge32
-    UNITS       "responses"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Number of responses received for the corresponding
-        pingCtlEntry and pingResultsEntry.  The value of this object
-        MUST be reported as 0 when no probe responses have been
-        received."
-    ::= { pingResultsEntry 7 }
-
-  pingResultsSentProbes OBJECT-TYPE
-    SYNTAX      Gauge32
-    UNITS       "probes"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The value of this object reflects the number of probes sent
-        for the corresponding pingCtlEntry and pingResultsEntry.
-        The value of this object MUST be reported as 0 when no probes
-        have been sent."
-    ::= { pingResultsEntry 8 }
-
-  pingResultsRttSumOfSquares OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "milliseconds"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This object contains the sum of the squares for all ping
-        responses received.  Its purpose is to enable standard
-        deviation calculation.  The value of this object MUST
-        be reported as 0 when no ping responses have been
-        received."
-    ::= { pingResultsEntry 9 }
-
- pingResultsLastGoodProbe OBJECT-TYPE
-    SYNTAX      DateAndTime
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Date and time when the last response was received for
-        a probe."
-    ::= { pingResultsEntry 10 }
-
- -- Ping Probe History Table
-
- pingProbeHistoryTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF PingProbeHistoryEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines a table for storing the results of ping
-        operations.  The number of entries in this table is
-        limited per entry in the pingCtlTable by the value
-        of the corresponding pingCtlMaxRows object.
-
-        An entry in this table is created when the result of
-        a ping probe is determined.  The initial 2 instance
-        identifier index values identify the pingCtlEntry
-        that a probe result (pingProbeHistoryEntry) belongs
-        to.  An entry is removed from this table when
-        its corresponding pingCtlEntry is deleted.
-
-        An implementation of this MIB will remove the oldest
-        entry in the pingProbeHistoryTable of the
-        corresponding entry in the pingCtlTable to allow
-        the addition of an new entry once the number of rows
-        in the pingProbeHistoryTable reaches the value
-        specified by pingCtlMaxRows for the corresponding
-        entry in the pingCtlTable."
-   ::= { pingObjects 4 }
-
- pingProbeHistoryEntry OBJECT-TYPE
-    SYNTAX      PingProbeHistoryEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines an entry in the pingProbeHistoryTable.
-        The first two index elements identify the
-        pingCtlEntry that a pingProbeHistoryEntry belongs
-        to.  The third index element selects a single
-        probe result."
-    INDEX {
-
-             pingCtlOwnerIndex,
-             pingCtlTestName,
-             pingProbeHistoryIndex
-           }
-    ::= { pingProbeHistoryTable 1 }
-
- PingProbeHistoryEntry ::=
-    SEQUENCE {
-        pingProbeHistoryIndex         Unsigned32,
-        pingProbeHistoryResponse      Unsigned32,
-        pingProbeHistoryStatus        OperationResponseStatus,
-        pingProbeHistoryLastRC        Integer32,
-        pingProbeHistoryTime          DateAndTime
-    }
-
- pingProbeHistoryIndex OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..'ffffffff'h)
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An entry in this table is created when the result of
-        a ping probe is determined.  The initial 2 instance
-        identifier index values identify the pingCtlEntry
-        that a probe result (pingProbeHistoryEntry) belongs
-        to.
-
-        An implementation MUST start assigning
-        pingProbeHistoryIndex values at 1 and wrap after
-        exceeding the maximum possible value as defined by
-        the limit of this object ('ffffffff'h)."
-    ::= { pingProbeHistoryEntry 1 }
-
- pingProbeHistoryResponse OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "milliseconds"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The amount of time measured in milliseconds from when
-        a probe was sent to when its response was received or
-        when it timed out.  The value of this object is reported
-        as 0 when it is not possible to transmit a probe."
-    ::= { pingProbeHistoryEntry 2 }
-
- pingProbeHistoryStatus OBJECT-TYPE
-    SYNTAX      OperationResponseStatus
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The result of a particular probe done by a remote host."
-    ::= { pingProbeHistoryEntry 3 }
-
- pingProbeHistoryLastRC        OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The last implementation-method-specific reply code received.
-        If the ICMP Echo capability is being used, then a successful
-        probe ends when an ICMP response is received that contains
-        the code ICMP_ECHOREPLY(0).  The ICMP codes are maintained
-        by IANA.  Standardized ICMP codes are listed at
-        http://www.iana.org/assignments/icmp-parameters.
-        The ICMPv6 codes are listed at
-        http://www.iana.org/assignments/icmpv6-parameters."
-    ::= { pingProbeHistoryEntry 4 }
-
- pingProbeHistoryTime OBJECT-TYPE
-    SYNTAX      DateAndTime
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Timestamp for when this probe result was determined."
-    ::= { pingProbeHistoryEntry 5 }
-
- -- Notification Definition section
-
- pingProbeFailed NOTIFICATION-TYPE
-      OBJECTS {
-        pingCtlTargetAddressType,
-        pingCtlTargetAddress,
-        pingResultsOperStatus,
-        pingResultsIpTargetAddressType,
-        pingResultsIpTargetAddress,
-        pingResultsMinRtt,
-        pingResultsMaxRtt,
-        pingResultsAverageRtt,
-        pingResultsProbeResponses,
-        pingResultsSentProbes,
-        pingResultsRttSumOfSquares,
-        pingResultsLastGoodProbe
-      }
-      STATUS  current
-      DESCRIPTION
-          "Generated when a probe failure is detected, when the
-
-          corresponding pingCtlTrapGeneration object is set to
-          probeFailure(0), subject to the value of
-          pingCtlTrapProbeFailureFilter.  The object
-          pingCtlTrapProbeFailureFilter can be used to specify the
-          number of consecutive probe failures that are required
-          before this notification can be generated."
-      ::= { pingNotifications 1 }
-
- pingTestFailed NOTIFICATION-TYPE
-      OBJECTS {
-        pingCtlTargetAddressType,
-        pingCtlTargetAddress,
-        pingResultsOperStatus,
-        pingResultsIpTargetAddressType,
-        pingResultsIpTargetAddress,
-        pingResultsMinRtt,
-        pingResultsMaxRtt,
-        pingResultsAverageRtt,
-        pingResultsProbeResponses,
-        pingResultsSentProbes,
-        pingResultsRttSumOfSquares,
-        pingResultsLastGoodProbe
-      }
-      STATUS  current
-      DESCRIPTION
-          "Generated when a ping test is determined to have failed,
-          when the corresponding pingCtlTrapGeneration object is
-          set to testFailure(1).  In this instance,
-          pingCtlTrapTestFailureFilter should specify the number of
-          probes in a test required to have failed in order to
-          consider the test failed."
-      ::= { pingNotifications 2 }
-
- pingTestCompleted NOTIFICATION-TYPE
-      OBJECTS {
-        pingCtlTargetAddressType,
-        pingCtlTargetAddress,
-        pingResultsOperStatus,
-        pingResultsIpTargetAddressType,
-        pingResultsIpTargetAddress,
-        pingResultsMinRtt,
-        pingResultsMaxRtt,
-        pingResultsAverageRtt,
-        pingResultsProbeResponses,
-        pingResultsSentProbes,
-        pingResultsRttSumOfSquares,
-        pingResultsLastGoodProbe
-
-      }
-      STATUS  current
-      DESCRIPTION
-          "Generated at the completion of a ping test when the
-          corresponding pingCtlTrapGeneration object has the
-          testCompletion(2) bit set."
-      ::= { pingNotifications 3 }
-
- -- Conformance information
-
- -- Compliance statements
-
- pingCompliances OBJECT IDENTIFIER ::= { pingConformance 1 }
- pingGroups      OBJECT IDENTIFIER ::= { pingConformance 2 }
-
- -- Compliance statements
-
- pingFullCompliance MODULE-COMPLIANCE
-    STATUS  current
-    DESCRIPTION
-            "The compliance statement for SNMP entities that
-            fully implement the DISMAN-PING-MIB."
-    MODULE  -- this module
-        MANDATORY-GROUPS {
-                            pingMinimumGroup,
-                            pingCtlRowStatusGroup,
-                            pingHistoryGroup,
-                            pingNotificationsGroup
-                          }
-
-        OBJECT pingMaxConcurrentRequests
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "The agent is not required to support set
-            operations to this object."
-
-        OBJECT pingCtlStorageType
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT pingCtlType
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  In addition, the only
-            value that MUST be supported by an implementation is
-            pingIcmpEcho."
-
-        OBJECT pingCtlSourceAddressType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access to this object is not required by
-            implementations that are not capable of binding the
-            send socket with a source address.  An implementation
-            is only required to support IPv4 and IPv6 addresses."
-
-        OBJECT pingCtlSourceAddress
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access to this object is not required by
-            implementations that are not capable of binding the
-            send socket with a source address.  An implementation
-            is only required to support IPv4 and IPv6 addresses."
-
-        OBJECT pingCtlIfIndex
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-            not supported, return a 0 as the value of this object.
-            A value of 0 means that the function represented by
-            this option is not supported."
-
-        OBJECT pingCtlByPassRouteTable
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access to this object is not required by
-            implementations that are not capable of its
-            implementation.  The function represented by this
-            object is implementable if the setsockopt
-            SOL_SOCKET SO_DONTROUTE option is supported."
-
-        OBJECT pingCtlDSField
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-            not supported, return a 0 as the value of this object.
-            A value of 0 means that the function represented by
-            this option is not supported."
-
-        OBJECT pingResultsIpTargetAddressType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        DESCRIPTION
-            "An implementation is only required to
-
-            support IPv4 and IPv6 addresses."
-
-        OBJECT pingResultsIpTargetAddress
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        DESCRIPTION
-            "An implementation is only required to
-            support IPv4 and globally unique IPv6 addresses."
-
-        OBJECT pingResultsLastGoodProbe
-        DESCRIPTION
-            "This object is mandatory for implementations that have
-            access to a system clock and that are capable of setting
-            the values for DateAndTime objects.  It is RECOMMENDED
-            that when this object is not supported its values
-            be reported as '0000000000000000'H."
-
-        OBJECT pingProbeHistoryTime
-        DESCRIPTION
-            "This object is mandatory for implementations that have
-            access to a system clock and that are capable of setting
-            the values for DateAndTime objects.  It is RECOMMENDED
-            that when this object is not supported its values
-            be reported as '0000000000000000'H."
-    ::= { pingCompliances 2 }
-
- pingMinimumCompliance MODULE-COMPLIANCE
-    STATUS  current
-    DESCRIPTION
-            "The minimum compliance statement for SNMP entities
-            that implement the minimal subset of the
-            DISMAN-PING-MIB.  Implementors might choose this
-            subset for small devices with limited resources."
-    MODULE  -- this module
-        MANDATORY-GROUPS { pingMinimumGroup }
-
-        GROUP pingCtlRowStatusGroup
-        DESCRIPTION
-            "A compliant implementation does not have to implement
-            the pingCtlRowStatusGroup."
-
-        GROUP pingHistoryGroup
-        DESCRIPTION
-            "A compliant implementation does not have to implement
-            the pingHistoryGroup."
-
-        GROUP pingNotificationsGroup
-        DESCRIPTION
-            "A compliant implementation does not have to implement
-
-            the pingNotificationsGroup."
-
-        OBJECT pingMaxConcurrentRequests
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "The agent is not required to support set
-            operations to this object."
-
-        OBJECT pingCtlDataFill
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "The agent is not required to support set
-            operations to this object."
-
-        OBJECT pingCtlFrequency
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-            not supported, return a 0 as the value of this object.
-            A value of 0 means that the function represented by
-            this option is not supported."
-
-        OBJECT pingCtlMaxRows
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If the
-            pingHistoryGroup is not implemented, then write
-            access to this object MUST be disabled, and the object
-            MUST return a value of 0 when retrieved."
-
-        OBJECT pingCtlStorageType
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT pingCtlTrapGeneration
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If the
-            pingNotificationsGroup is not implemented, then write
-            access to this object MUST be disabled, and the object
-            MUST return a value with no bit set when retrieved.
-            No bit set indicates that not notification is
-            generated."
-
-        OBJECT pingCtlTrapProbeFailureFilter
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "If write access to pingCtlTrapGeneration is not
-            supported, then write access to this object must also
-            not be supported.  In this case, return 0 as the value
-            of this object."
-
-        OBJECT pingCtlTrapTestFailureFilter
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "If write access to pingCtlTrapGeneration is not
-            supported, then write access to this object must also
-            not be supported.  In this case, return 0 as the value
-            of this object."
-
-        OBJECT pingCtlType
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  In addition, the only
-            value that MUST be supported by an implementation is
-            pingIcmpEcho."
-
-        OBJECT pingCtlDescr
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "The agent is not required to support set
-            operations to this object."
-
-        OBJECT pingCtlSourceAddressType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access to this object is not required by
-            implementations that are not capable of binding the
-            send socket with a source address.  An implementation
-            is only required to support IPv4 and IPv6 addresses."
-
-        OBJECT pingCtlSourceAddress
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access to this object is not required by
-            implementations that are not capable of binding the
-            send socket with a source address.  An implementation
-            is only required to support IPv4 and IPv6 addresses."
-
-        OBJECT pingCtlIfIndex
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-
-            not supported, return a 0 as the value of this object.
-            A value of 0 means that the function represented by
-            this option is not supported."
-
-        OBJECT pingCtlByPassRouteTable
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-            not supported, return false(2) as the value of this
-            object.  A value of false(2) means that the function
-            represented by this option is not supported."
-
-        OBJECT pingCtlDSField
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-            not supported, return a 0 as the value of this object.
-            A value of 0 means that the function represented by
-            this option is not supported."
-
-        OBJECT pingResultsIpTargetAddressType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        DESCRIPTION
-            "An implementation is only required to
-            support IPv4 and IPv6 addresses."
-
-        OBJECT pingResultsIpTargetAddress
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        DESCRIPTION
-            "An implementation is only required to
-            support IPv4 and globally unique IPv6 addresses."
-
-        OBJECT pingResultsLastGoodProbe
-        DESCRIPTION
-            "This object is mandatory for implementations that have
-            access to a system clock and that are capable of setting
-            the values for DateAndTime objects.  It is RECOMMENDED
-            that when this object is not supported its values
-            be reported as '0000000000000000'H."
-
-        OBJECT pingProbeHistoryTime
-        DESCRIPTION
-            "If the pingHistoryGroup is implemented, then this
-            object is mandatory for implementations that have
-            access to a system clock and that are capable of setting
-            the values for DateAndTime objects.  It is RECOMMENDED
-            that when this object is not supported its values
-
-            be reported as '0000000000000000'H."
-    ::= { pingCompliances 3 }
-
- pingCompliance MODULE-COMPLIANCE
-    STATUS  deprecated
-    DESCRIPTION
-            "The compliance statement for the DISMAN-PING-MIB.  This
-            compliance statement has been deprecated because the
-            group pingGroup and the pingTimeStampGroup have been
-            split and deprecated.  The pingFullCompliance statement
-            is semantically identical to the deprecated
-            pingCompliance statement."
-
-    MODULE  -- this module
-        MANDATORY-GROUPS {
-                            pingGroup,
-                            pingNotificationsGroup
-                          }
-        GROUP pingTimeStampGroup
-        DESCRIPTION
-            "This group is mandatory for implementations that have
-            access to a system clock and that are capable of setting
-            the values for DateAndTime objects.  It is RECOMMENDED
-            that when this group is not supported the values
-            for the objects in this group be reported as
-            '0000000000000000'H."
-
-        OBJECT pingMaxConcurrentRequests
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "The agent is not required to support set
-            operations to this object."
-
-        OBJECT pingCtlStorageType
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  It is also allowed
-            that implementations support only the volatile
-            StorageType enumeration."
-
-        OBJECT pingCtlType
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  In addition, the only
-            value that MUST be supported by an implementation is
-            pingIcmpEcho."
-
-        OBJECT pingCtlByPassRouteTable
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "This object is not required by implementations that
-            are not capable of its implementation.  The function
-            represented by this object is implementable if the
-            setsockopt SOL_SOCKET SO_DONTROUTE option is
-            supported."
-
-        OBJECT pingCtlSourceAddressType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "This object is not required by implementations that
-            are not capable of binding the send socket with a
-            source address.  An implementation is only required to
-            support IPv4 and IPv6 addresses."
-
-        OBJECT pingCtlSourceAddress
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "This object is not required by implementations that
-            are not capable of binding the send socket with a
-            source address.  An implementation is only required to
-            support IPv4 and globally unique IPv6 addresses."
-
-        OBJECT pingCtlIfIndex
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  When write access is
-            not supported, return a 0 as the value of this object.
-            A value of 0 means that the function represented by
-            this option is not supported."
-
-        OBJECT pingCtlDSField
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  When write access is
-            not supported, return a 0 as the value of this object.
-            A value of 0 means that the function represented by
-            this option is not supported."
-
-        OBJECT pingResultsIpTargetAddressType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        DESCRIPTION
-            "An implementation is only required to
-            support IPv4 and IPv6 addresses."
-
-        OBJECT pingResultsIpTargetAddress
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        DESCRIPTION
-            "An implementation is only required to
-            support IPv4 and globally unique IPv6 addresses."
-    ::= { pingCompliances 1 }
-
- -- MIB groupings
-
- pingMinimumGroup OBJECT-GROUP
-   OBJECTS {
-             pingMaxConcurrentRequests,
-             pingCtlTargetAddressType,
-             pingCtlTargetAddress,
-             pingCtlDataSize,
-             pingCtlTimeOut,
-             pingCtlProbeCount,
-             pingCtlAdminStatus,
-             pingCtlDataFill,
-             pingCtlFrequency,
-             pingCtlMaxRows,
-             pingCtlStorageType,
-             pingCtlTrapGeneration,
-             pingCtlTrapProbeFailureFilter,
-             pingCtlTrapTestFailureFilter,
-             pingCtlType,
-             pingCtlDescr,
-             pingCtlByPassRouteTable,
-             pingCtlSourceAddressType,
-             pingCtlSourceAddress,
-             pingCtlIfIndex,
-             pingCtlDSField,
-             pingResultsOperStatus,
-             pingResultsIpTargetAddressType,
-             pingResultsIpTargetAddress,
-             pingResultsMinRtt,
-             pingResultsMaxRtt,
-             pingResultsAverageRtt,
-             pingResultsProbeResponses,
-             pingResultsSentProbes,
-             pingResultsRttSumOfSquares,
-             pingResultsLastGoodProbe
-           }
-   STATUS  current
-   DESCRIPTION
-       "The group of objects that constitute the remote ping
-       capability."
-    ::= { pingGroups 4 }
-
- pingCtlRowStatusGroup OBJECT-GROUP
-   OBJECTS {
-             pingCtlRowStatus
-           }
-   STATUS  current
-   DESCRIPTION
-       "The RowStatus object of the pingCtlTable."
-    ::= { pingGroups 5 }
-
- pingHistoryGroup OBJECT-GROUP
-   OBJECTS {
-             pingProbeHistoryResponse,
-             pingProbeHistoryStatus,
-             pingProbeHistoryLastRC,
-             pingProbeHistoryTime
-           }
-   STATUS  current
-   DESCRIPTION
-       "The group of objects that constitute the history
-       capability."
-    ::= { pingGroups 6 }
-
- pingNotificationsGroup NOTIFICATION-GROUP
-   NOTIFICATIONS {
-             pingProbeFailed,
-             pingTestFailed,
-             pingTestCompleted
-          }
-   STATUS        current
-   DESCRIPTION
-       "The notification that are required to be supported by
-       implementations of this MIB."
-   ::= { pingGroups 3 }
-
- pingGroup OBJECT-GROUP
-   OBJECTS {
-             pingMaxConcurrentRequests,
-             pingCtlTargetAddressType,
-             pingCtlTargetAddress,
-             pingCtlDataSize,
-             pingCtlTimeOut,
-             pingCtlProbeCount,
-             pingCtlAdminStatus,
-             pingCtlDataFill,
-             pingCtlFrequency,
-             pingCtlMaxRows,
-             pingCtlStorageType,
-             pingCtlTrapGeneration,
-             pingCtlTrapProbeFailureFilter,
-             pingCtlTrapTestFailureFilter,
-             pingCtlType,
-             pingCtlDescr,
-             pingCtlByPassRouteTable,
-             pingCtlSourceAddressType,
-             pingCtlSourceAddress,
-             pingCtlIfIndex,
-             pingCtlDSField,
-             pingCtlRowStatus,
-             pingResultsOperStatus,
-             pingResultsIpTargetAddressType,
-             pingResultsIpTargetAddress,
-             pingResultsMinRtt,
-             pingResultsMaxRtt,
-             pingResultsAverageRtt,
-             pingResultsProbeResponses,
-             pingResultsSentProbes,
-             pingResultsRttSumOfSquares,
-             pingProbeHistoryResponse,
-             pingProbeHistoryStatus,
-             pingProbeHistoryLastRC
-           }
-   STATUS  deprecated
-   DESCRIPTION
-       "The group of objects that constitute the remote ping
-       capability."
-    ::= { pingGroups 1 }
-
- pingTimeStampGroup OBJECT-GROUP
-
-   OBJECTS {
-             pingResultsLastGoodProbe,
-             pingProbeHistoryTime
-           }
-   STATUS  deprecated
-   DESCRIPTION
-       "The group of DateAndTime objects."
-    ::= { pingGroups 2 }
-
-END
diff --git a/mibs/DISMAN-SCHEDULE-MIB.txt b/mibs/DISMAN-SCHEDULE-MIB.txt
deleted file mode 100644
index 239595e..0000000
--- a/mibs/DISMAN-SCHEDULE-MIB.txt
+++ /dev/null
@@ -1,699 +0,0 @@
-DISMAN-SCHEDULE-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
-    Integer32, Unsigned32, Counter32, mib-2, zeroDotZero
-        FROM SNMPv2-SMI
-
-    TEXTUAL-CONVENTION,
-    DateAndTime, RowStatus, StorageType, VariablePointer
-        FROM SNMPv2-TC
-
-    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
-        FROM SNMPv2-CONF
-
-    SnmpAdminString
-        FROM SNMP-FRAMEWORK-MIB;
-
-schedMIB MODULE-IDENTITY
-    LAST-UPDATED "200201070000Z"
-    ORGANIZATION "IETF Distributed Management Working Group"
-    CONTACT-INFO
-        "WG EMail:  disman at dorothy.bmc.com
-         Subscribe: disman-request at dorothy.bmc.com
-
-         Chair:     Randy Presuhn
-                    BMC Software, Inc.
-         Postal:    Office 1-3141
-                    2141 North First Street
-                    San Jose,  California 95131
-                    USA
-         EMail:     rpresuhn at bmc.com
-         Phone:     +1 408 546-1006
-
-         Editor:    David B. Levi
-                    Nortel Networks
-         Postal:    4401 Great America Parkway
-                    Santa Clara, CA 95052-8185
-                    USA
-         EMail:     dlevi at nortelnetworks.com
-         Phone:     +1 865 686 0432
-
-         Editor:    Juergen Schoenwaelder
-                    TU Braunschweig
-         Postal:    Bueltenweg 74/75
-                    38106 Braunschweig
-                    Germany
-         EMail:     schoenw at ibr.cs.tu-bs.de
-         Phone:     +49 531 391-3283"
-    DESCRIPTION
-        "This MIB module defines a MIB which provides mechanisms to
-         schedule SNMP set operations periodically or at specific
-         points in time."
-    REVISION    "200201070000Z"
-    DESCRIPTION
-        "Revised version, published as RFC 3231.
-
-         This revision introduces a new object type called
-         schedTriggers.  Created new conformance and compliance
-         statements that take care of the new schedTriggers object.
-
-         Several clarifications have been added to remove ambiguities
-         that were discovered and reported by implementors."
-    REVISION    "199811171800Z"
-    DESCRIPTION
-        "Initial version, published as RFC 2591."
-    ::= { mib-2 63 }
-
---
--- The various groups defined within this MIB definition:
---
-
-schedObjects       OBJECT IDENTIFIER ::= { schedMIB 1 }
-schedNotifications OBJECT IDENTIFIER ::= { schedMIB 2 }
-schedConformance   OBJECT IDENTIFIER ::= { schedMIB 3 }
-
---
--- Textual Conventions:
---
-
-SnmpPduErrorStatus ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-        "This TC enumerates the SNMPv1 and SNMPv2 PDU error status
-         codes as defined in RFC 1157 and RFC 1905.  It also adds a
-         pseudo error status code `noResponse' which indicates a
-         timeout condition."
-    SYNTAX      INTEGER {
-                    noResponse(-1),
-                    noError(0),
-                    tooBig(1),
-                    noSuchName(2),
-                    badValue(3),
-                    readOnly(4),
-                    genErr(5),
-                    noAccess(6),
-                    wrongType(7),
-                    wrongLength(8),
-                    wrongEncoding(9),
-                    wrongValue(10),
-                    noCreation(11),
-                    inconsistentValue(12),
-                    resourceUnavailable(13),
-                    commitFailed(14),
-                    undoFailed(15),
-                    authorizationError(16),
-                    notWritable(17),
-                    inconsistentName(18)
-                }
-
---
--- Some scalars which provide information about the local time zone.
---
-
-schedLocalTime OBJECT-TYPE
-    SYNTAX      DateAndTime (SIZE (11))
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The local time used by the scheduler.  Schedules which
-         refer to calendar time will use the local time indicated
-         by this object.  An implementation MUST return all 11 bytes
-         of the DateAndTime textual-convention so that a manager
-         may retrieve the offset from GMT time."
-    ::= { schedObjects 1 }
-
---
--- The schedule table which controls the scheduler.
---
-
-schedTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF SchedEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "This table defines scheduled actions triggered by
-         SNMP set operations."
-    ::= { schedObjects 2 }
-
-schedEntry OBJECT-TYPE
-    SYNTAX      SchedEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An entry describing a particular scheduled action.
-
-         Unless noted otherwise, writable objects of this row
-         can be modified independent of the current value of
-         schedRowStatus, schedAdminStatus and schedOperStatus.
-         In particular, it is legal to modify schedInterval
-         and the objects in the schedCalendarGroup when
-         schedRowStatus is active and schedAdminStatus and
-         schedOperStatus are both enabled."
-    INDEX { schedOwner, schedName }
-    ::= { schedTable 1 }
-
-SchedEntry ::= SEQUENCE {
-    schedOwner          SnmpAdminString,
-    schedName           SnmpAdminString,
-    schedDescr          SnmpAdminString,
-    schedInterval       Unsigned32,
-    schedWeekDay        BITS,
-    schedMonth          BITS,
-    schedDay            BITS,
-    schedHour           BITS,
-    schedMinute         BITS,
-    schedContextName    SnmpAdminString,
-    schedVariable       VariablePointer,
-    schedValue          Integer32,
-    schedType           INTEGER,
-    schedAdminStatus    INTEGER,
-    schedOperStatus     INTEGER,
-    schedFailures       Counter32,
-    schedLastFailure    SnmpPduErrorStatus,
-    schedLastFailed     DateAndTime,
-    schedStorageType    StorageType,
-    schedRowStatus      RowStatus,
-    schedTriggers       Counter32
-}
-
-schedOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The owner of this scheduling entry.  The exact semantics of
-         this string are subject to the security policy defined by
-
-         the security administrator."
-    ::= { schedEntry 1 }
-
-schedName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(1..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The locally-unique, administratively assigned name for this
-         scheduling entry.  This object allows a schedOwner to have
-         multiple entries in the schedTable."
-    ::= { schedEntry 2 }
-
-schedDescr OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The human readable description of the purpose of this
-         scheduling entry."
-    DEFVAL      { "" }
-    ::= { schedEntry 3 }
-
-schedInterval OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "seconds"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The number of seconds between two action invocations of
-         a periodic scheduler.  Implementations must guarantee
-         that action invocations will not occur before at least
-         schedInterval seconds have passed.
-
-         The scheduler must ignore all periodic schedules that
-         have a schedInterval value of 0.  A periodic schedule
-         with a scheduling interval of 0 seconds will therefore
-         never invoke an action.
-
-         Implementations may be forced to delay invocations in the
-         face of local constraints.  A scheduled management function
-         should therefore not rely on the accuracy provided by the
-         scheduler implementation.
-
-         Note that implementations which maintain a list of pending
-         activations must re-calculate them when this object is
-         changed."
-    DEFVAL      { 0 }
-    ::= { schedEntry 4 }
-
-schedWeekDay OBJECT-TYPE
-    SYNTAX      BITS {
-                    sunday(0),
-                    monday(1),
-                    tuesday(2),
-                    wednesday(3),
-                    thursday(4),
-                    friday(5),
-                    saturday(6)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The set of weekdays on which the scheduled action should
-         take place.  Setting multiple bits will include several
-         weekdays in the set of possible weekdays for this schedule.
-         Setting all bits will cause the scheduler to ignore the
-         weekday.
-
-         Note that implementations which maintain a list of pending
-         activations must re-calculate them when this object is
-         changed."
-    DEFVAL      { {} }
-    ::= { schedEntry 5 }
-
-schedMonth OBJECT-TYPE
-    SYNTAX      BITS {
-                    january(0),
-                    february(1),
-                    march(2),
-                    april(3),
-                    may(4),
-                    june(5),
-                    july(6),
-                    august(7),
-                    september(8),
-                    october(9),
-                    november(10),
-                    december(11)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The set of months during which the scheduled action should
-         take place.  Setting multiple bits will include several
-         months in the set of possible months for this schedule.
-
-         Setting all bits will cause the scheduler to ignore the
-         month.
-
-         Note that implementations which maintain a list of pending
-         activations must re-calculate them when this object is
-         changed."
-    DEFVAL      { {} }
-    ::= { schedEntry 6 }
-
-schedDay OBJECT-TYPE
-    SYNTAX      BITS {
-                    d1(0),   d2(1),   d3(2),   d4(3),   d5(4),
-                    d6(5),   d7(6),   d8(7),   d9(8),   d10(9),
-                    d11(10), d12(11), d13(12), d14(13), d15(14),
-                    d16(15), d17(16), d18(17), d19(18), d20(19),
-                    d21(20), d22(21), d23(22), d24(23), d25(24),
-                    d26(25), d27(26), d28(27), d29(28), d30(29),
-                    d31(30),
-                    r1(31),  r2(32),  r3(33),  r4(34),  r5(35),
-                    r6(36),  r7(37),  r8(38),  r9(39),  r10(40),
-                    r11(41), r12(42), r13(43), r14(44), r15(45),
-                    r16(46), r17(47), r18(48), r19(49), r20(50),
-                    r21(51), r22(52), r23(53), r24(54), r25(55),
-                    r26(56), r27(57), r28(58), r29(59), r30(60),
-                    r31(61)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The set of days in a month on which a scheduled action
-         should take place.  There are two sets of bits one can
-         use to define the day within a month:
-
-         Enumerations starting with the letter 'd' indicate a
-         day in a month relative to the first day of a month.
-         The first day of the month can therefore be specified
-         by setting the bit d1(0) and d31(30) means the last
-         day of a month with 31 days.
-
-         Enumerations starting with the letter 'r' indicate a
-         day in a month in reverse order, relative to the last
-         day of a month.  The last day in the month can therefore
-         be specified by setting the bit r1(31) and r31(61) means
-         the first day of a month with 31 days.
-
-         Setting multiple bits will include several days in the set
-         of possible days for this schedule.  Setting all bits will
-         cause the scheduler to ignore the day within a month.
-
-         Setting all bits starting with the letter 'd' or the
-         letter 'r' will also cause the scheduler to ignore the
-         day within a month.
-
-         Note that implementations which maintain a list of pending
-         activations must re-calculate them when this object is
-         changed."
-    DEFVAL      { {} }
-    ::= { schedEntry 7 }
-
-schedHour OBJECT-TYPE
-    SYNTAX      BITS {
-                    h0(0),   h1(1),   h2(2),   h3(3),   h4(4),
-                    h5(5),   h6(6),   h7(7),   h8(8),   h9(9),
-                    h10(10), h11(11), h12(12), h13(13), h14(14),
-                    h15(15), h16(16), h17(17), h18(18), h19(19),
-                    h20(20), h21(21), h22(22), h23(23)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The set of hours within a day during which the scheduled
-         action should take place.
-
-         Note that implementations which maintain a list of pending
-         activations must re-calculate them when this object is
-         changed."
-    DEFVAL      { {} }
-    ::= { schedEntry 8 }
-
-schedMinute OBJECT-TYPE
-    SYNTAX      BITS {
-                    m0(0),   m1(1),   m2(2),   m3(3),   m4(4),
-                    m5(5),   m6(6),   m7(7),   m8(8),   m9(9),
-                    m10(10), m11(11), m12(12), m13(13), m14(14),
-                    m15(15), m16(16), m17(17), m18(18), m19(19),
-                    m20(20), m21(21), m22(22), m23(23), m24(24),
-                    m25(25), m26(26), m27(27), m28(28), m29(29),
-                    m30(30), m31(31), m32(32), m33(33), m34(34),
-                    m35(35), m36(36), m37(37), m38(38), m39(39),
-                    m40(40), m41(41), m42(42), m43(43), m44(44),
-                    m45(45), m46(46), m47(47), m48(48), m49(49),
-                    m50(50), m51(51), m52(52), m53(53), m54(54),
-                    m55(55), m56(56), m57(57), m58(58), m59(59)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The set of minutes within an hour when the scheduled action
-         should take place.
-
-         Note that implementations which maintain a list of pending
-         activations must re-calculate them when this object is
-         changed."
-    DEFVAL      { {} }
-    ::= { schedEntry 9 }
-
-schedContextName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The context which contains the local MIB variable pointed
-         to by schedVariable."
-    DEFVAL      { "" }
-    ::= { schedEntry 10 }
-
-schedVariable OBJECT-TYPE
-    SYNTAX      VariablePointer
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "An object identifier pointing to a local MIB variable
-         which resolves to an ASN.1 primitive type of INTEGER."
-    DEFVAL      { zeroDotZero }
-    ::= { schedEntry 11 }
-
-schedValue OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value which is written to the MIB object pointed to by
-         schedVariable when the scheduler invokes an action.  The
-         implementation shall enforce the use of access control
-         rules when performing the set operation on schedVariable.
-         This is accomplished by calling the isAccessAllowed abstract
-         service interface as defined in RFC 2571.
-
-         Note that an implementation may choose to issue an SNMP Set
-         message to the SNMP engine and leave the access control
-         decision to the normal message processing procedure."
-    DEFVAL      { 0 }
-    ::= { schedEntry 12 }
-
-schedType OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    periodic(1),
-                    calendar(2),
-                    oneshot(3)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The type of this schedule.  The value periodic(1) indicates
-         that this entry specifies a periodic schedule.  A periodic
-         schedule is defined by the value of schedInterval.  The
-         values of schedWeekDay, schedMonth, schedDay, schedHour
-         and schedMinute are ignored.
-
-         The value calendar(2) indicates that this entry describes a
-         calendar schedule.  A calendar schedule is defined by the
-         values of schedWeekDay, schedMonth, schedDay, schedHour and
-         schedMinute.  The value of schedInterval is ignored.  A
-         calendar schedule will trigger on all local times that
-         satisfy the bits set in schedWeekDay, schedMonth, schedDay,
-         schedHour and schedMinute.
-
-         The value oneshot(3) indicates that this entry describes a
-         one-shot schedule.  A one-shot schedule is similar to a
-         calendar schedule with the additional feature that it
-         disables itself by changing in the `finished'
-         schedOperStatus once the schedule triggers an action.
-
-         Note that implementations which maintain a list of pending
-         activations must re-calculate them when this object is
-         changed."
-    DEFVAL      { periodic }
-    ::= { schedEntry 13 }
-
-schedAdminStatus OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    enabled(1),
-                    disabled(2)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The desired state of the schedule."
-    DEFVAL      { disabled }
-    ::= { schedEntry 14 }
-
-schedOperStatus OBJECT-TYPE
-    SYNTAX      INTEGER {
-
-                    enabled(1),
-                    disabled(2),
-                    finished(3)
-                }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The current operational state of this schedule.  The state
-         enabled(1) indicates this entry is active and that the
-         scheduler will invoke actions at appropriate times.  The
-         disabled(2) state indicates that this entry is currently
-         inactive and ignored by the scheduler.  The finished(3)
-         state indicates that the schedule has ended.  Schedules
-         in the finished(3) state are ignored by the scheduler.
-         A one-shot schedule enters the finished(3) state when it
-         deactivates itself.
-
-         Note that the operational state must not be enabled(1)
-         when the schedRowStatus is not active."
-    ::= { schedEntry 15 }
-
-schedFailures OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This variable counts the number of failures while invoking
-         the scheduled action.  This counter at most increments once
-         for a triggered action."
-    ::= { schedEntry 16 }
-
-schedLastFailure OBJECT-TYPE
-    SYNTAX      SnmpPduErrorStatus
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The most recent error that occurred during the invocation of
-         a scheduled action.  The value noError(0) is returned
-         if no errors have occurred yet."
-    DEFVAL      { noError }
-    ::= { schedEntry 17 }
-
-schedLastFailed OBJECT-TYPE
-    SYNTAX      DateAndTime
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The date and time when the most recent failure occurred.
-
-         The value '0000000000000000'H is returned if no failure
-         occurred since the last re-initialization of the scheduler."
-    DEFVAL      { '0000000000000000'H }
-    ::= { schedEntry 18 }
-
-schedStorageType OBJECT-TYPE
-    SYNTAX      StorageType
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object defines whether this scheduled action is kept
-         in volatile storage and lost upon reboot or if this row is
-         backed up by non-volatile or permanent storage.
-
-         Conceptual rows having the value `permanent' must allow
-         write access to the columnar objects schedDescr,
-         schedInterval, schedContextName, schedVariable, schedValue,
-         and schedAdminStatus.  If an implementation supports the
-         schedCalendarGroup, write access must be also allowed to
-         the columnar objects schedWeekDay, schedMonth, schedDay,
-         schedHour, schedMinute."
-    DEFVAL      { volatile }
-    ::= { schedEntry 19 }
-
-schedRowStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The status of this scheduled action.  A control that allows
-         entries to be added and removed from this table.
-
-         Note that the operational state must change to enabled
-         when the administrative state is enabled and the row
-         status changes to active(1).
-
-         Attempts to destroy(6) a row or to set a row
-         notInService(2) while the operational state is enabled
-         result in inconsistentValue errors.
-
-         The value of this object has no effect on whether other
-         objects in this conceptual row can be modified."
-    ::= { schedEntry 20 }
-
-schedTriggers OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This variable counts the number of attempts (either
-         successful or failed) to invoke the scheduled action."
-    ::= { schedEntry 21 }
-
---
--- Notifications that are emitted to indicate failures.  The
--- definition of schedTraps makes notification registrations
--- reversible (see STD 58, RFC 2578).
---
-
-schedTraps OBJECT IDENTIFIER ::= { schedNotifications 0 }
-
-schedActionFailure NOTIFICATION-TYPE
-    OBJECTS     { schedLastFailure, schedLastFailed }
-    STATUS      current
-    DESCRIPTION
-        "This notification is generated whenever the invocation of a
-         scheduled action fails."
-    ::= { schedTraps 1 }
-
--- conformance information
-
-schedCompliances OBJECT IDENTIFIER ::= { schedConformance 1 }
-schedGroups      OBJECT IDENTIFIER ::= { schedConformance 2 }
-
--- compliance statements
-
-schedCompliance2 MODULE-COMPLIANCE
-    STATUS      current
-    DESCRIPTION
-        "The compliance statement for SNMP entities which implement
-         the scheduling MIB."
-    MODULE      -- this module
-    MANDATORY-GROUPS {
-           schedGroup2, schedNotificationsGroup
-    }
-    GROUP  schedCalendarGroup
-    DESCRIPTION
-        "The schedCalendarGroup is mandatory only for those
-         implementations that support calendar based schedules."
-    OBJECT schedType
-    DESCRIPTION
-        "The values calendar(2) or oneshot(3) are not valid for
-         implementations that do not implement the
-         schedCalendarGroup.  Such an implementation must return
-         inconsistentValue error responses for attempts to set
-         schedAdminStatus to calendar(2) or oneshot(3)."
-    ::= { schedCompliances 2 }
-
-schedGroup2 OBJECT-GROUP
-    OBJECTS {
-        schedDescr, schedInterval, schedContextName,
-        schedVariable, schedValue, schedType,
-        schedAdminStatus, schedOperStatus, schedFailures,
-        schedLastFailure, schedLastFailed, schedStorageType,
-        schedRowStatus, schedTriggers
-    }
-    STATUS      current
-    DESCRIPTION
-        "A collection of objects providing scheduling capabilities."
-    ::= { schedGroups 4 }
-
-schedCalendarGroup OBJECT-GROUP
-    OBJECTS {
-        schedLocalTime, schedWeekDay, schedMonth,
-        schedDay, schedHour, schedMinute
-    }
-    STATUS      current
-    DESCRIPTION
-        "A collection of objects providing calendar based schedules."
-    ::= { schedGroups 2 }
-
-schedNotificationsGroup NOTIFICATION-GROUP
-    NOTIFICATIONS {
-        schedActionFailure
-    }
-    STATUS      current
-    DESCRIPTION
-        "The notifications emitted by the scheduler."
-    ::= { schedGroups 3 }
-
---
--- Deprecated compliance and conformance group definitions
--- from RFC 2591.
---
-
-schedCompliance MODULE-COMPLIANCE
-    STATUS      deprecated
-    DESCRIPTION
-        "The compliance statement for SNMP entities which implement
-         the scheduling MIB."
-    MODULE      -- this module
-    MANDATORY-GROUPS {
-           schedGroup, schedNotificationsGroup
-    }
-
-    GROUP  schedCalendarGroup
-    DESCRIPTION
-        "The schedCalendarGroup is mandatory only for those
-         implementations that support calendar based schedules."
-    OBJECT schedType
-    DESCRIPTION
-        "The values calendar(2) or oneshot(3) are not valid for
-         implementations that do not implement the
-         schedCalendarGroup.  Such an implementation must return
-         inconsistentValue error responses for attempts to set
-         schedAdminStatus to calendar(2) or oneshot(3)."
-    ::= { schedCompliances 1 }
-
-schedGroup OBJECT-GROUP
-    OBJECTS {
-        schedDescr, schedInterval, schedContextName,
-        schedVariable, schedValue, schedType,
-        schedAdminStatus, schedOperStatus, schedFailures,
-        schedLastFailure, schedLastFailed, schedStorageType,
-        schedRowStatus
-    }
-    STATUS      deprecated
-    DESCRIPTION
-        "A collection of objects providing scheduling capabilities."
-    ::= { schedGroups 1 }
-
-END
diff --git a/mibs/DISMAN-SCRIPT-MIB.txt b/mibs/DISMAN-SCRIPT-MIB.txt
deleted file mode 100644
index 834f304..0000000
--- a/mibs/DISMAN-SCRIPT-MIB.txt
+++ /dev/null
@@ -1,1764 +0,0 @@
-DISMAN-SCRIPT-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
-    Integer32, Unsigned32, mib-2
-        FROM SNMPv2-SMI
-
-    RowStatus, TimeInterval, DateAndTime, StorageType, DisplayString
-        FROM SNMPv2-TC
-
-    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
-        FROM SNMPv2-CONF
-
-    SnmpAdminString
-        FROM SNMP-FRAMEWORK-MIB;
-
-scriptMIB MODULE-IDENTITY
-    LAST-UPDATED "200108210000Z"
-    ORGANIZATION "IETF Distributed Management Working Group"
-    CONTACT-INFO
-        "WG EMail:  disman at dorothy.bmc.com
-         Subscribe: disman-request at dorothy.bmc.com
-
-         Chair:     Randy Presuhn
-                    BMC Software, Inc.
-
-         Postal:    Office 1-3141
-                    2141 North First Street
-                    San Jose,  California 95131
-                    USA
-         EMail:     rpresuhn at bmc.com
-         Phone:     +1 408 546-1006
-
-         Editor:    David B. Levi
-                    Nortel Networks
-         Postal:    4401 Great America Parkway
-                    Santa Clara, CA 95052-8185
-                    USA
-         EMail:     dlevi at nortelnetworks.com
-         Phone:     +1 423 686 0432
-
-         Editor:    Juergen Schoenwaelder
-                    TU Braunschweig
-         Postal:    Bueltenweg 74/75
-                    38106 Braunschweig
-                    Germany
-         EMail:     schoenw at ibr.cs.tu-bs.de
-         Phone:     +49 531 391-3283"
-    DESCRIPTION
-        "This MIB module defines a set of objects that allow to
-         delegate management scripts to distributed managers."
-    REVISION    "200108210000Z"
-    DESCRIPTION
-        "Revised version, published as RFC 3165.
-
-         This revision introduces several new objects: smScriptError,
-         smScriptLastChange, smLaunchError, smLaunchLastChange,
-         smLaunchRowExpireTime, smRunResultTime, and smRunErrorTime.
-
-         The following existing objects were updated: the maximum
-         value of smRunLifeTime now disables the timer, an
-         autostart value was added to the smLaunchAdminStatus
-         object, and a new expired state was added to the
-         smLaunchOperStatus object.
-
-         A new smScriptException notification has been added to
-         support runtime error notifications.
-
-         Created new conformance and compliance statements that
-         take care of the new objects and notifications.
-
-         Clarifications have been added in several places to remove
-         ambiguities or contradictions that were discovered and
-         reported by implementors."
-
-    REVISION    "199902221800Z"
-    DESCRIPTION
-        "Initial version, published as RFC 2592."
-    ::= { mib-2 64 }
-
---
--- The groups defined within this MIB module:
---
-
-smObjects       OBJECT IDENTIFIER ::= { scriptMIB 1 }
-smNotifications OBJECT IDENTIFIER ::= { scriptMIB 2 }
-smConformance   OBJECT IDENTIFIER ::= { scriptMIB 3 }
-
---
--- Script language and language extensions.
---
--- This group defines tables which list the languages and the
--- language extensions supported by a Script MIB implementation.
--- Languages are uniquely identified by object identifier values.
---
-
-smLangTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF SmLangEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "This table lists supported script languages."
-    ::= { smObjects 1 }
-
-smLangEntry OBJECT-TYPE
-    SYNTAX      SmLangEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An entry describing a particular language."
-    INDEX { smLangIndex }
-    ::= { smLangTable 1 }
-
-SmLangEntry ::= SEQUENCE {
-    smLangIndex         Integer32,
-    smLangLanguage      OBJECT IDENTIFIER,
-    smLangVersion       SnmpAdminString,
-    smLangVendor        OBJECT IDENTIFIER,
-    smLangRevision      SnmpAdminString,
-    smLangDescr         SnmpAdminString
-}
-
-smLangIndex OBJECT-TYPE
-    SYNTAX      Integer32 (1..2147483647)
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The locally arbitrary, but unique identifier associated
-         with this language entry.
-
-         The value is expected to remain constant at least from one
-         re-initialization of the entity's network management system
-         to the next re-initialization.
-
-         Note that the data type and the range of this object must
-         be consistent with the definition of smScriptLanguage."
-    ::= { smLangEntry 1 }
-
-smLangLanguage OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The globally unique identification of the language."
-    ::= { smLangEntry 2 }
-
-smLangVersion OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The version number of the language. The zero-length string
-         shall be used if the language does not have a version
-         number.
-
-         It is suggested that the version number consist of one or
-         more decimal numbers separated by dots, where the first
-         number is called the major version number."
-    ::= { smLangEntry 3 }
-
-smLangVendor OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "An object identifier which identifies the vendor who
-         provides the implementation of the language. This object
-         identifier SHALL point to the object identifier directly
-         below the enterprise object identifier {1 3 6 1 4 1}
-         allocated for the vendor. The value must be the object
-         identifier {0 0} if the vendor is not known."
-    ::= { smLangEntry 4 }
-
-smLangRevision OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The version number of the language implementation.
-         The value of this object must be an empty string if
-         version number of the implementation is unknown.
-
-         It is suggested that the value consist of one or more
-         decimal numbers separated by dots, where the first
-         number is called the major version number."
-    ::= { smLangEntry 5 }
-
-smLangDescr OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "A textual description of the language."
-    ::= { smLangEntry 6 }
-
-smExtsnTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF SmExtsnEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "This table lists supported language extensions."
-    ::= { smObjects 2 }
-
-smExtsnEntry OBJECT-TYPE
-    SYNTAX      SmExtsnEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An entry describing a particular language extension."
-    INDEX { smLangIndex, smExtsnIndex }
-    ::= { smExtsnTable 1 }
-
-SmExtsnEntry ::= SEQUENCE {
-    smExtsnIndex        Integer32,
-    smExtsnExtension    OBJECT IDENTIFIER,
-    smExtsnVersion      SnmpAdminString,
-    smExtsnVendor       OBJECT IDENTIFIER,
-    smExtsnRevision     SnmpAdminString,
-    smExtsnDescr        SnmpAdminString
-}
-
-smExtsnIndex OBJECT-TYPE
-    SYNTAX      Integer32 (1..2147483647)
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The locally arbitrary, but unique identifier associated
-         with this language extension entry.
-
-         The value is expected to remain constant at least from one
-         re-initialization of the entity's network management system
-         to the next re-initialization."
-    ::= { smExtsnEntry 1}
-
-smExtsnExtension OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The globally unique identification of the language
-         extension."
-    ::= { smExtsnEntry 2 }
-
-smExtsnVersion OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The version number of the language extension.
-         It is suggested that the version number consist of one or
-         more decimal numbers separated by dots, where the first
-         number is called the major version number."
-    ::= { smExtsnEntry 3 }
-
-smExtsnVendor OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "An object identifier which identifies the vendor who
-         provides the implementation of the extension. The
-         object identifier value should point to the OID node
-         directly below the enterprise OID {1 3 6 1 4 1}
-         allocated for the vendor. The value must by the object
-         identifier {0 0} if the vendor is not known."
-    ::= { smExtsnEntry 4 }
-
-smExtsnRevision OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The version number of the extension implementation.
-         The value of this object must be an empty string if
-         version number of the implementation is unknown.
-
-         It is suggested that the value consist of one or more
-         decimal numbers separated by dots, where the first
-         number is called the major version number."
-    ::= { smExtsnEntry 5 }
-
-smExtsnDescr OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "A textual description of the language extension."
-    ::= { smExtsnEntry 6 }
-
---
--- Scripts known by the Script MIB implementation.
---
--- This group defines a table which lists all known scripts.
--- Scripts can be added and removed through manipulation of the
--- smScriptTable.
---
-
-smScriptObjects OBJECT IDENTIFIER ::= { smObjects 3 }
-
-smScriptTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF SmScriptEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "This table lists and describes locally known scripts."
-    ::= { smScriptObjects 1 }
-
-smScriptEntry OBJECT-TYPE
-    SYNTAX      SmScriptEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An entry describing a particular script. Every script that
-         is stored in non-volatile memory is required to appear in
-         this script table."
-    INDEX { smScriptOwner, smScriptName }
-    ::= { smScriptTable 1 }
-
-SmScriptEntry ::= SEQUENCE {
-    smScriptOwner       SnmpAdminString,
-    smScriptName        SnmpAdminString,
-    smScriptDescr       SnmpAdminString,
-    smScriptLanguage    Integer32,
-    smScriptSource      DisplayString,
-    smScriptAdminStatus INTEGER,
-    smScriptOperStatus  INTEGER,
-    smScriptStorageType StorageType,
-    smScriptRowStatus   RowStatus,
-    smScriptError       SnmpAdminString,
-    smScriptLastChange  DateAndTime
-}
-
-smScriptOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The manager who owns this row in the smScriptTable."
-    ::= { smScriptEntry 1 }
-
-smScriptName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (1..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The locally-unique, administratively assigned name for this
-         script. This object allows an smScriptOwner to have multiple
-         entries in the smScriptTable.
-
-         This value of this object may be used to derive the name
-         (e.g. a file name) which is used by the Script MIB
-         implementation to access the script in non-volatile
-         storage. The details of this mapping are implementation
-         specific. However, the mapping needs to ensure that scripts
-         created by different owners with the same script name do not
-         map to the same name in non-volatile storage."
-    ::= { smScriptEntry 2 }
-
-smScriptDescr OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "A description of the purpose of the script."
-    ::= { smScriptEntry 3 }
-
-smScriptLanguage OBJECT-TYPE
-    SYNTAX      Integer32 (0..2147483647)
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object type identifies an entry in the
-         smLangTable which is used to execute this script.
-         The special value 0 may be used by hard-wired scripts
-         that can not be modified and that are executed by
-         internal functions.
-
-         Set requests to change this object are invalid if the
-         value of smScriptOperStatus is `enabled' or `compiling'
-         and will result in an inconsistentValue error.
-
-         Note that the data type and the range of this object must
-         be consistent with the definition of smLangIndex."
-    ::= { smScriptEntry 4 }
-
-smScriptSource OBJECT-TYPE
-    SYNTAX      DisplayString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object either contains a reference to the script
-         source or an empty string. A reference must be given
-         in the form of a Uniform Resource Locator (URL) as
-         defined in RFC 2396. The allowed character sets and the
-         encoding rules defined in RFC 2396 section 2 apply.
-
-         When the smScriptAdminStatus object is set to `enabled',
-         the Script MIB implementation will `pull' the script
-         source from the URL contained in this object if the URL
-         is not empty.
-
-         An empty URL indicates that the script source is loaded
-         from local storage. The script is read from the smCodeTable
-         if the value of smScriptStorageType is volatile. Otherwise,
-         the script is read from non-volatile storage.
-
-         Note: This document does not mandate implementation of any
-         specific URL scheme. An attempt to load a script from a
-         nonsupported URL scheme will cause the smScriptOperStatus
-         to report an `unknownProtocol' error.
-
-         Set requests to change this object are invalid if the
-         value of smScriptOperStatus is `enabled', `editing',
-         `retrieving' or `compiling' and will result in an
-         inconsistentValue error."
-    DEFVAL { ''H }
-    ::= { smScriptEntry 5 }
-
-smScriptAdminStatus OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    enabled(1),
-                    disabled(2),
-                    editing(3)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object indicates the desired status of
-         the script. See the definition of smScriptOperStatus for
-         a description of the values.
-
-         When the smScriptAdminStatus object is set to `enabled' and
-         the smScriptOperStatus is `disabled' or one of the error
-         states, the Script MIB implementation will `pull' the script
-         source from the URL contained in the smScriptSource object
-         if the URL is not empty."
-    DEFVAL { disabled }
-    ::= { smScriptEntry 6 }
-
-smScriptOperStatus OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    enabled(1),
-                    disabled(2),
-                    editing(3),
-                    retrieving(4),
-                    compiling(5),
-                    noSuchScript(6),
-                    accessDenied(7),
-                    wrongLanguage(8),
-                    wrongVersion(9),
-                    compilationFailed(10),
-                    noResourcesLeft(11),
-                    unknownProtocol(12),
-                    protocolFailure(13),
-                    genericError(14)
-                }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The actual status of the script in the runtime system. The
-         value of this object is only meaningful when the value of
-         the smScriptRowStatus object is `active'.
-
-         The smScriptOperStatus object may have the following values:
-
-         - `enabled' indicates that the script is available and can
-            be started by a launch table entry.
-
-         - `disabled' indicates that the script can not be used.
-
-         - `editing' indicates that the script can be modified in the
-           smCodeTable.
-
-         - `retrieving' indicates that the script is currently being
-           loaded from non-volatile storage or a remote system.
-
-         - `compiling' indicates that the script is currently being
-           compiled by the runtime system.
-
-         - `noSuchScript' indicates that the script does not exist
-           at the smScriptSource.
-
-         - `accessDenied' indicates that the script can not be loaded
-           from the smScriptSource due to a lack of permissions.
-
-         - `wrongLanguage' indicates that the script can not be
-            loaded from the smScriptSource because of a language
-            mismatch.
-
-         - `wrongVersion' indicates that the script can not be loaded
-           from the smScriptSource because of a language version
-           mismatch.
-
-         - `compilationFailed' indicates that the compilation failed.
-
-         - `noResourcesLeft' indicates that the runtime system does
-           not have enough resources to load the script.
-
-         - `unknownProtocol' indicates that the script could not be
-           loaded from the smScriptSource because the requested
-           protocol is not supported.
-
-         - `protocolFailure' indicates that the script could not be
-           loaded from the smScriptSource because of a protocol
-           failure.
-
-         - `genericError' indicates that the script could not be
-
-           loaded due to an error condition not listed above.
-
-         The `retrieving' and `compiling' states are transient states
-         which will either lead to one of the error states or the
-         `enabled' state. The `disabled' and `editing' states are
-         administrative states which are only reached by explicit
-         management operations.
-
-         All launch table entries that refer to this script table
-         entry shall have an smLaunchOperStatus value of `disabled'
-         when the value of this object is not `enabled'."
-    DEFVAL { disabled }
-    ::= { smScriptEntry 7 }
-
-smScriptStorageType OBJECT-TYPE
-    SYNTAX      StorageType
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object defines whether this row and the script
-         controlled by this row are kept in volatile storage and
-         lost upon reboot or if this row is backed up by
-         non-volatile or permanent storage.
-
-         The storage type of this row always complies with the value
-         of this entry if the value of the corresponding RowStatus
-         object is `active'.
-
-         However, the storage type of the script controlled by this
-         row may be different, if the value of this entry is
-         `non-volatile'. The script controlled by this row is written
-         into local non-volatile storage if the following condition
-         becomes true:
-
-         (a) the URL contained in the smScriptSource object is empty
-             and
-         (b) the smScriptStorageType is `nonVolatile'
-             and
-         (c) the smScriptOperStatus is `enabled'
-
-         Setting this object to `volatile' removes a script from
-         non-volatile storage if the script controlled by this row
-         has been in non-volatile storage before. Attempts to set
-         this object to permanent will always fail with an
-         inconsistentValue error.
-
-         The value of smScriptStorageType is only meaningful if the
-         value of the corresponding RowStatus object is `active'.
-
-         If smScriptStorageType has the value permanent(4), then all
-         objects whose MAX-ACCESS value is read-create must be
-         writable, with the exception of the smScriptStorageType and
-         smScriptRowStatus objects, which shall be read-only."
-    DEFVAL { volatile }
-    ::= { smScriptEntry 8 }
-
-smScriptRowStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "A control that allows entries to be added and removed from
-         this table.
-
-         Changing the smScriptRowStatus from `active' to
-         `notInService' will remove the associated script from the
-         runtime system.
-
-         Deleting conceptual rows from this table may affect the
-         deletion of other resources associated with this row. For
-         example, a script stored in non-volatile storage may be
-         removed from non-volatile storage.
-
-         An entry may not exist in the `active' state unless all
-         required objects in the entry have appropriate values. Rows
-         that are not complete or not in service are not known by the
-         script runtime system.
-
-         Attempts to `destroy' a row or to set a row `notInService'
-         while the smScriptOperStatus is `enabled' will result in an
-         inconsistentValue error.
-
-         Attempts to `destroy' a row or to set a row `notInService'
-         where the value of the smScriptStorageType object is
-         `permanent' or `readOnly' will result in an
-         inconsistentValue error.
-
-         The value of this object has no effect on whether other
-         objects in this conceptual row can be modified."
-    ::= { smScriptEntry 9 }
-
-smScriptError OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This object contains a descriptive error message if the
-
-         transition into the operational status `enabled' failed.
-         Implementations must reset the error message to a
-         zero-length string when a new attempt to change the
-         script status to `enabled' is started."
-    DEFVAL { ''H }
-    ::= { smScriptEntry 10 }
-
-smScriptLastChange OBJECT-TYPE
-    SYNTAX      DateAndTime
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The date and time when this script table entry was last
-         modified. The value '0000000000000000'H is returned if
-         the script table entry has not yet been modified.
-
-         Note that the resetting of smScriptError is not considered
-         a change of the script table entry."
-    DEFVAL { '0000000000000000'H }
-    ::= { smScriptEntry 11 }
-
---
--- Access to script code via SNMP
---
--- The smCodeTable allows script code to be read and modified
--- via SNMP.
---
-
-smCodeTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF SmCodeEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "This table contains the script code for scripts that are
-         written via SNMP write operations."
-    ::= { smScriptObjects 2 }
-
-smCodeEntry OBJECT-TYPE
-    SYNTAX      SmCodeEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An entry describing a particular fragment of a script."
-    INDEX { smScriptOwner, smScriptName, smCodeIndex }
-    ::= { smCodeTable 1 }
-
-SmCodeEntry ::= SEQUENCE {
-    smCodeIndex         Unsigned32,
-    smCodeText          OCTET STRING,
-    smCodeRowStatus     RowStatus
-}
-
-smCodeIndex OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..4294967295)
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The index value identifying this code fragment."
-    ::= { smCodeEntry 1 }
-
-smCodeText OBJECT-TYPE
-    SYNTAX      OCTET STRING (SIZE (1..1024))
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The code that makes up a fragment of a script. The format
-         of this code fragment depends on the script language which
-         is identified by the associated smScriptLanguage object."
-    ::= { smCodeEntry 2 }
-
-smCodeRowStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "A control that allows entries to be added and removed from
-         this table.
-
-         The value of this object has no effect on whether other
-         objects in this conceptual row can be modified."
-    ::= { smCodeEntry 3 }
-
---
--- Script execution.
---
--- This group defines tables which allow script execution to be
--- initiated, suspended, resumed, and terminated.  It also provides
--- a mechanism for keeping a history of recent script executions
--- and their results.
---
-
-smRunObjects OBJECT IDENTIFIER ::= { smObjects 4 }
-
-smLaunchTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF SmLaunchEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "This table lists and describes scripts that are ready
-         to be executed together with their parameters."
-    ::= { smRunObjects 1 }
-
-smLaunchEntry OBJECT-TYPE
-    SYNTAX      SmLaunchEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An entry describing a particular executable script."
-    INDEX { smLaunchOwner, smLaunchName }
-    ::= { smLaunchTable 1 }
-
-SmLaunchEntry ::= SEQUENCE {
-    smLaunchOwner               SnmpAdminString,
-    smLaunchName                SnmpAdminString,
-    smLaunchScriptOwner         SnmpAdminString,
-    smLaunchScriptName          SnmpAdminString,
-    smLaunchArgument            OCTET STRING,
-    smLaunchMaxRunning          Unsigned32,
-    smLaunchMaxCompleted        Unsigned32,
-    smLaunchLifeTime            TimeInterval,
-    smLaunchExpireTime          TimeInterval,
-    smLaunchStart               Integer32,
-    smLaunchControl             INTEGER,
-    smLaunchAdminStatus         INTEGER,
-    smLaunchOperStatus          INTEGER,
-    smLaunchRunIndexNext        Integer32,
-    smLaunchStorageType         StorageType,
-    smLaunchRowStatus           RowStatus,
-    smLaunchError               SnmpAdminString,
-    smLaunchLastChange          DateAndTime,
-    smLaunchRowExpireTime       TimeInterval
-}
-
-smLaunchOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The manager who owns this row in the smLaunchTable. Every
-         instance of a running script started from a particular entry
-         in the smLaunchTable (i.e. entries in the smRunTable) will
-         be owned by the same smLaunchOwner used to index the entry
-         in the smLaunchTable. This owner is not necessarily the same
-         as the owner of the script itself (smLaunchScriptOwner)."
-    ::= { smLaunchEntry 1 }
-
-smLaunchName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (1..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The locally-unique, administratively assigned name for this
-         launch table entry. This object allows an smLaunchOwner to
-         have multiple entries in the smLaunchTable. The smLaunchName
-         is an arbitrary name that must be different from any other
-         smLaunchTable entries with the same smLaunchOwner but can be
-         the same as other entries in the smLaunchTable with
-         different smLaunchOwner values. Note that the value of
-         smLaunchName is not related in any way to the name of the
-         script being launched."
-    ::= { smLaunchEntry 2 }
-
-smLaunchScriptOwner OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object in combination with the value of
-         smLaunchScriptName identifies the script that can be
-         launched from this smLaunchTable entry. Attempts to write
-         this object will fail with an inconsistentValue error if
-         the value of smLaunchOperStatus is `enabled'."
-    ::= { smLaunchEntry 3 }
-
-smLaunchScriptName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE (0..32))
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object in combination with the value of
-         the smLaunchScriptOwner identifies the script that can be
-         launched from this smLaunchTable entry. The zero-length
-         string may be used to point to a non-existing script.
-
-         Attempts to write this object will fail with an
-         inconsistentValue error if the value of smLaunchOperStatus
-         is `enabled'."
-    DEFVAL { ''H }
-    ::= { smLaunchEntry 4 }
-
-smLaunchArgument OBJECT-TYPE
-    SYNTAX      OCTET STRING
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The argument supplied to the script. When a script is
-         invoked, the value of this object is used to initialize
-         the smRunArgument object."
-    DEFVAL { ''H }
-    ::= { smLaunchEntry 5 }
-
-smLaunchMaxRunning OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..4294967295)
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The maximum number of concurrently running scripts that may
-         be invoked from this entry in the smLaunchTable. Lowering
-         the current value of this object does not affect any scripts
-         that are already executing."
-    DEFVAL { 1 }
-    ::= { smLaunchEntry 6 }
-
-smLaunchMaxCompleted OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..4294967295)
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The maximum number of finished scripts invoked from this
-         entry in the smLaunchTable allowed to be retained in the
-         smRunTable. Whenever the value of this object is changed
-         and whenever a script terminates, entries in the smRunTable
-         are deleted if necessary until the number of completed
-         scripts is smaller than the value of this object. Scripts
-         whose smRunEndTime value indicates the oldest completion
-         time are deleted first."
-    DEFVAL { 1 }
-    ::= { smLaunchEntry 7 }
-
-smLaunchLifeTime OBJECT-TYPE
-    SYNTAX      TimeInterval
-    UNITS       "centi-seconds"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The default maximum amount of time a script launched
-         from this entry may run. The value of this object is used
-         to initialize the smRunLifeTime object when a script is
-         launched. Changing the value of an smLaunchLifeTime
-         instance does not affect scripts previously launched from
-
-         this entry."
-    DEFVAL { 360000 }
-    ::= { smLaunchEntry 8 }
-
-smLaunchExpireTime OBJECT-TYPE
-    SYNTAX      TimeInterval
-    UNITS       "centi-seconds"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The default maximum amount of time information about a
-         script launched from this entry is kept in the smRunTable
-         after the script has completed execution.  The value of
-         this object is used to initialize the smRunExpireTime
-         object when a script is launched. Changing the value of an
-         smLaunchExpireTime instance does not affect scripts
-         previously launched from this entry."
-    DEFVAL { 360000 }
-    ::= { smLaunchEntry 9 }
-
-smLaunchStart OBJECT-TYPE
-    SYNTAX      Integer32 (0..2147483647)
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object is used to start the execution of scripts.
-         When retrieved, the value will be the value of smRunIndex
-         for the last script that started execution by manipulating
-         this object. The value will be zero if no script started
-         execution yet.
-
-         A script is started by setting this object to an unused
-         smRunIndex value. A new row in the smRunTable will be
-         created which is indexed by the value supplied by the
-         set-request in addition to the value of smLaunchOwner and
-         smLaunchName. An unused value can be obtained by reading
-         the smLaunchRunIndexNext object.
-
-         Setting this object to the special value 0 will start
-         the script with a self-generated smRunIndex value. The
-         consequence is that the script invoker has no reliable
-         way to determine the smRunIndex value for this script
-         invocation and that the invoker has therefore no way
-         to obtain the results from this script invocation. The
-         special value 0 is however useful for scheduled script
-         invocations.
-
-         If this object is set, the following checks must be
-
-         performed:
-
-         1) The value of the smLaunchOperStatus object in this
-            entry of the smLaunchTable must be `enabled'.
-         2) The values of smLaunchScriptOwner and
-            smLaunchScriptName of this row must identify an
-            existing entry in the smScriptTable.
-         3) The value of smScriptOperStatus of this entry must
-            be `enabled'.
-         4) The principal performing the set operation must have
-            read access to the script. This must be checked by
-            calling the isAccessAllowed abstract service interface
-            defined in RFC 2271 on the row in the smScriptTable
-            identified by smLaunchScriptOwner and smLaunchScriptName.
-            The isAccessAllowed abstract service interface must be
-            called on all columnar objects in the smScriptTable with
-            a MAX-ACCESS value different than `not-accessible'. The
-            test fails as soon as a call indicates that access is
-            not allowed.
-         5) If the value provided by the set operation is not 0,
-            a check must be made that the value is currently not
-            in use. Otherwise, if the value provided by the set
-            operation is 0, a suitable unused value must be
-            generated.
-         6) The number of currently executing scripts invoked
-            from this smLaunchTable entry must be less than
-            smLaunchMaxRunning.
-
-         Attempts to start a script will fail with an
-         inconsistentValue error if one of the checks described
-         above fails.
-
-         Otherwise, if all checks have been passed, a new entry
-         in the smRunTable will be created indexed by smLaunchOwner,
-         smLaunchName and the new value for smRunIndex. The value
-         of smLaunchArgument will be copied into smRunArgument,
-         the value of smLaunchLifeTime will be copied to
-         smRunLifeTime, and the value of smLaunchExpireTime
-         will be copied to smRunExpireTime.
-
-         The smRunStartTime will be set to the current time and
-         the smRunState will be set to `initializing' before the
-         script execution is initiated in the appropriate runtime
-         system.
-
-         Note that the data type and the range of this object must
-         be consistent with the smRunIndex object. Since this
-         object might be written from the scheduling MIB, the
-
-         data type Integer32 rather than Unsigned32 is used."
-    DEFVAL { 0 }
-    ::= { smLaunchEntry 10 }
-
-smLaunchControl OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    abort(1),
-                    suspend(2),
-                    resume(3),
-                    nop(4)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object is used to request a state change for all
-         running scripts in the smRunTable that were started from
-         this row in the smLaunchTable.
-
-         Setting this object to abort(1), suspend(2) or resume(3)
-         will set the smRunControl object of all applicable rows
-         in the smRunTable to abort(1), suspend(2) or resume(3)
-         respectively. The phrase `applicable rows' means the set of
-         rows which were created from this entry in the smLaunchTable
-         and whose value of smRunState allows the corresponding
-         state change as described in the definition of the
-         smRunControl object. Setting this object to nop(4) has no
-         effect.
-
-         Attempts to set this object lead to an inconsistentValue
-         error only if all implicated sets on all the applicable
-         rows lead to inconsistentValue errors. It is not allowed
-         to return an inconsistentValue error if at least one state
-         change on one of the applicable rows was successful."
-    DEFVAL { nop }
-    ::= { smLaunchEntry 11 }
-
-smLaunchAdminStatus OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    enabled(1),
-                    disabled(2),
-                    autostart(3)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object indicates the desired status of
-         this launch table entry. The values enabled(1) and
-         autostart(3) both indicate that the launch table entry
-
-         should transition into the operational enabled(1) state as
-         soon as the associated script table entry is enabled(1).
-
-         The value autostart(3) further indicates that the script
-         is started automatically by conceptually writing the
-         value 0 into the associated smLaunchStart object during
-         the transition from the `disabled' into the `enabled'
-         operational state. This is useful for scripts that are
-         to be launched on system start-up."
-    DEFVAL { disabled }
-    ::= { smLaunchEntry 12 }
-
-smLaunchOperStatus OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    enabled(1),
-                    disabled(2),
-                    expired(3)
-                }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The value of this object indicates the actual status of
-         this launch table entry.  The smLaunchOperStatus object
-         may have the following values:
-
-         - `enabled' indicates that the launch table entry is
-           available and can be used to start scripts.
-
-         - `disabled' indicates that the launch table entry can
-           not be used to start scripts.
-
-         - `expired' indicates that the launch table entry can
-           not be used to start scripts and will disappear as
-           soon as all smRunTable entries associated with this
-           launch table entry have disappeared.
-
-         The value `enabled' requires that the smLaunchRowStatus
-         object is active. The value `disabled' requires that there
-         are no entries in the smRunTable associated with this
-         smLaunchTable entry."
-    DEFVAL { disabled }
-    ::= { smLaunchEntry 13 }
-
-smLaunchRunIndexNext OBJECT-TYPE
-    SYNTAX      Integer32 (1..2147483647)
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This variable is used for creating rows in the smRunTable.
-         The value of this variable is a currently unused value
-         for smRunIndex, which can be written into the smLaunchStart
-         object associated with this row to launch a script.
-
-         The value returned when reading this variable must be unique
-         for the smLaunchOwner and smLaunchName associated with this
-         row. Subsequent attempts to read this variable must return
-         different values.
-
-         This variable will return the special value 0 if no new rows
-         can be created.
-
-         Note that the data type and the range of this object must be
-         consistent with the definition of smRunIndex."
-    ::= { smLaunchEntry 14 }
-
-smLaunchStorageType OBJECT-TYPE
-    SYNTAX      StorageType
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object defines if this row is kept in volatile storage
-         and lost upon reboot or if this row is backed up by stable
-         storage.
-
-         The value of smLaunchStorageType is only meaningful if the
-         value of the corresponding RowStatus object is active.
-
-         If smLaunchStorageType has the value permanent(4), then all
-         objects whose MAX-ACCESS value is read-create must be
-         writable, with the exception of the smLaunchStorageType and
-         smLaunchRowStatus objects, which shall be read-only."
-    DEFVAL { volatile }
-    ::= { smLaunchEntry 15 }
-
-smLaunchRowStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "A control that allows entries to be added and removed from
-         this table.
-
-         Attempts to `destroy' a row or to set a row `notInService'
-         while the smLaunchOperStatus is `enabled' will result in
-         an inconsistentValue error.
-
-         Attempts to `destroy' a row or to set a row `notInService'
-         where the value of the smLaunchStorageType object is
-         `permanent' or `readOnly' will result in an
-         inconsistentValue error.
-
-         The value of this object has no effect on whether other
-         objects in this conceptual row can be modified."
-    ::= { smLaunchEntry 16 }
-
-smLaunchError OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This object contains a descriptive error message if an
-         attempt to launch a script fails. Implementations must reset
-         the error message to a zero-length string when a new attempt
-         to launch a script is started."
-    DEFVAL { ''H }
-    ::= { smLaunchEntry 17 }
-
-smLaunchLastChange OBJECT-TYPE
-    SYNTAX      DateAndTime
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The date and time when this launch table entry was last
-         modified. The value '0000000000000000'H is returned if
-         the launch table entry has not yet been modified.
-
-         Note that a change of smLaunchStart, smLaunchControl,
-         smLaunchRunIndexNext, smLaunchRowExpireTime, or the
-         resetting of smLaunchError is not considered a change
-         of this launch table entry."
-    DEFVAL { '0000000000000000'H }
-    ::= { smLaunchEntry 18 }
-
-smLaunchRowExpireTime OBJECT-TYPE
-    SYNTAX      TimeInterval
-    UNITS       "centi-seconds"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object specifies how long this row remains
-         in the `enabled' or `disabled' operational state. The value
-         reported by this object ticks backwards. When the value
-         reaches 0, it stops ticking backward and the row is
-         deleted if there are no smRunTable entries associated with
-
-         this smLaunchTable entry. Otherwise, the smLaunchOperStatus
-         changes to `expired' and the row deletion is deferred
-         until there are no smRunTable entries associated with this
-         smLaunchTable entry.
-
-         The smLaunchRowExpireTime will not tick backwards if it is
-         set to its maximum value (2147483647). In other words,
-         setting this object to its maximum value turns the timer
-         off.
-
-         The value of this object may be set in order to increase
-         or reduce the remaining time that the launch table entry
-         may be used. Setting the value to 0 will cause an immediate
-         row deletion or transition into the `expired' operational
-         state.
-
-         It is not possible to set this object while the operational
-         status is `expired'. Attempts to modify this object while
-         the operational status is `expired' leads to an
-         inconsistentValue error.
-
-         Note that the timer ticks backwards independent of the
-         operational state of the launch table entry."
-    DEFVAL { 2147483647 }
-    ::= { smLaunchEntry 19 }
-
-smRunTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF SmRunEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "This table lists and describes scripts that are currently
-         running or have been running in the past."
-    ::= { smRunObjects 2 }
-
-smRunEntry OBJECT-TYPE
-    SYNTAX      SmRunEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An entry describing a particular running or finished
-         script."
-    INDEX { smLaunchOwner, smLaunchName, smRunIndex }
-    ::= { smRunTable 1 }
-
-SmRunEntry ::= SEQUENCE {
-    smRunIndex          Integer32,
-    smRunArgument       OCTET STRING,
-    smRunStartTime      DateAndTime,
-    smRunEndTime        DateAndTime,
-    smRunLifeTime       TimeInterval,
-    smRunExpireTime     TimeInterval,
-    smRunExitCode       INTEGER,
-    smRunResult         OCTET STRING,
-    smRunControl        INTEGER,
-    smRunState          INTEGER,
-    smRunError          SnmpAdminString,
-    smRunResultTime     DateAndTime,
-    smRunErrorTime      DateAndTime
-}
-
-smRunIndex OBJECT-TYPE
-    SYNTAX      Integer32 (1..2147483647)
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The locally arbitrary, but unique identifier associated
-         with this running or finished script. This value must be
-         unique for all rows in the smRunTable with the same
-         smLaunchOwner and smLaunchName.
-
-         Note that the data type and the range of this object must
-         be consistent with the definition of smLaunchRunIndexNext
-         and smLaunchStart."
-    ::= { smRunEntry 1 }
-
-smRunArgument OBJECT-TYPE
-    SYNTAX      OCTET STRING
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The argument supplied to the script when it started."
-    DEFVAL { ''H }
-    ::= { smRunEntry 2 }
-
-smRunStartTime OBJECT-TYPE
-    SYNTAX      DateAndTime
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The date and time when the execution started. The value
-         '0000000000000000'H is returned if the script has not
-         started yet."
-    DEFVAL { '0000000000000000'H }
-    ::= { smRunEntry 3 }
-
-smRunEndTime OBJECT-TYPE
-    SYNTAX      DateAndTime
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The date and time when the execution terminated. The value
-         '0000000000000000'H is returned if the script has not
-         terminated yet."
-    DEFVAL { '0000000000000000'H }
-    ::= { smRunEntry 4 }
-
-smRunLifeTime OBJECT-TYPE
-    SYNTAX      TimeInterval
-    UNITS       "centi-seconds"
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "This object specifies how long the script can execute.
-         This object returns the remaining time that the script
-         may run. The object is initialized with the value of the
-         associated smLaunchLifeTime object and ticks backwards.
-         The script is aborted immediately when the value reaches 0.
-
-         The value of this object may be set in order to increase or
-         reduce the remaining time that the script may run. Setting
-         this value to 0 will abort script execution immediately,
-         and, if the value of smRunExpireTime is also 0, will remove
-         this entry from the smRunTable once it has terminated.
-
-         If smRunLifeTime is set to its maximum value (2147483647),
-         either by a set operation or by its initialization from the
-         smLaunchLifeTime object, then it will not tick backwards.
-         A running script with a maximum smRunLifeTime value will
-         thus never be terminated with a `lifeTimeExceeded' exit
-         code.
-
-         The value of smRunLifeTime reflects the real-time execution
-         time as seen by the outside world. The value of this object
-         will always be 0 for a script that finished execution, that
-         is smRunState has the value `terminated'.
-
-         The value of smRunLifeTime does not change while a script
-         is suspended, that is smRunState has the value `suspended'.
-         Note that this does not affect set operations. It is legal
-         to modify smRunLifeTime via set operations while a script
-         is suspended."
-    ::= { smRunEntry 5 }
-
-smRunExpireTime OBJECT-TYPE
-    SYNTAX      TimeInterval
-    UNITS       "centi-seconds"
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The value of this object specifies how long this row can
-         exist in the smRunTable after the script has terminated.
-         This object returns the remaining time that the row may
-         exist before it is aged out. The object is initialized with
-         the value of the associated smLaunchExpireTime object and
-         ticks backwards. The entry in the smRunTable is destroyed
-         when the value reaches 0 and the smRunState has the value
-         `terminated'.
-
-         The value of this object may be set in order to increase or
-         reduce the remaining time that the row may exist.  Setting
-         the value to 0 will destroy this entry as soon as the
-         smRunState has the value `terminated'."
-    ::= { smRunEntry 6 }
-
-smRunExitCode OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    noError(1),
-                    halted(2),
-                    lifeTimeExceeded(3),
-                    noResourcesLeft(4),
-                    languageError(5),
-                    runtimeError(6),
-                    invalidArgument(7),
-                    securityViolation(8),
-                    genericError(9)
-                }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The value of this object indicates the reason why a
-         script finished execution. The smRunExitCode code may have
-         one of the following values:
-
-         - `noError', which indicates that the script completed
-            successfully without errors;
-
-         - `halted', which indicates that the script was halted
-            by a request from an authorized manager;
-
-         - `lifeTimeExceeded', which indicates that the script
-            exited because a time limit was exceeded;
-
-         - `noResourcesLeft', which indicates that the script
-            exited because it ran out of resources (e.g. memory);
-
-         - `languageError', which indicates that the script exited
-            because of a language error (e.g. a syntax error in an
-            interpreted language);
-
-         - `runtimeError', which indicates that the script exited
-            due to a runtime error (e.g. a division by zero);
-
-         - `invalidArgument', which indicates that the script could
-            not be run because of invalid script arguments;
-
-         - `securityViolation', which indicates that the script
-            exited due to a security violation;
-
-         - `genericError', which indicates that the script exited
-            for an unspecified reason.
-
-         If the script has not yet begun running, or is currently
-         running, the value will be `noError'."
-    DEFVAL { noError }
-    ::= { smRunEntry 7 }
-
-smRunResult OBJECT-TYPE
-    SYNTAX      OCTET STRING
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The result value produced by the running script. Note that
-         the result may change while the script is executing."
-    DEFVAL { ''H }
-    ::= { smRunEntry 8 }
-
-smRunControl OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    abort(1),
-                    suspend(2),
-                    resume(3),
-                    nop(4)
-                }
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "The value of this object indicates the desired status of the
-         script execution defined by this row.
-
-         Setting this object to `abort' will abort execution if the
-
-         value of smRunState is `initializing', `executing',
-         `suspending', `suspended' or `resuming'. Setting this object
-         to `abort' when the value of smRunState is `aborting' or
-         `terminated', or if the implementation can determine that
-         the attempt to abort the execution would fail, will result
-         in an inconsistentValue error.
-
-         Setting this object to `suspend' will suspend execution
-         if the value of smRunState is `executing'. Setting this
-         object to `suspend' will cause an inconsistentValue error
-         if the value of smRunState is not `executing' or if the
-         implementation can determine that the attempt to suspend
-         the execution would fail.
-
-         Setting this object to `resume' will resume execution
-         if the value of smRunState is `suspending' or
-         `suspended'. Setting this object to `resume' will cause an
-         inconsistentValue error if the value of smRunState is
-         not `suspended' or if the implementation can determine
-         that the attempt to resume the execution would fail.
-
-         Setting this object to nop(4) has no effect."
-    DEFVAL { nop }
-    ::= { smRunEntry 9 }
-
-smRunState OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    initializing(1),
-                    executing(2),
-                    suspending(3),
-                    suspended(4),
-                    resuming(5),
-                    aborting(6),
-                    terminated(7)
-                }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The value of this object indicates the script's execution
-         state. If the script has been invoked but has not yet
-         begun execution, the value will be `initializing'. If the
-         script is running, the value will be `executing'.
-
-         A running script which received a request to suspend
-         execution first transitions into a temporary `suspending'
-         state.  The temporary `suspending' state changes to
-         `suspended' when the script has actually been suspended. The
-         temporary `suspending' state changes back to `executing' if
-
-         the attempt to suspend the running script fails.
-
-         A suspended script which received a request to resume
-         execution first transitions into a temporary `resuming'
-         state. The temporary `resuming' state changes to `running'
-         when the script has actually been resumed. The temporary
-         `resuming' state changes back to `suspended' if the attempt
-         to resume the suspended script fails.
-
-         A script which received a request to abort execution but
-         which is still running first transitions into a temporary
-         `aborting' state.
-
-         A script which has finished its execution is `terminated'."
-    ::= { smRunEntry 10 }
-
-smRunError OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This object contains a descriptive error message if the
-         script startup or execution raised an abnormal condition.
-         An implementation must store a descriptive error message
-         in this object if the script exits with the smRunExitCode
-         `genericError'."
-    DEFVAL { ''H }
-    ::= { smRunEntry 11 }
-
-smRunResultTime OBJECT-TYPE
-    SYNTAX      DateAndTime
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The date and time when the smRunResult was last updated.
-         The value '0000000000000000'H is returned if smRunResult
-         has not yet been updated after the creation of this
-         smRunTable entry."
-    DEFVAL { '0000000000000000'H }
-    ::= { smRunEntry 12 }
-
-smRunErrorTime OBJECT-TYPE
-    SYNTAX      DateAndTime
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The date and time when the smRunError was last updated.
-         The value '0000000000000000'H is returned if smRunError
-
-         has not yet been updated after the creation of this
-         smRunTable entry."
-    DEFVAL { '0000000000000000'H }
-    ::= { smRunEntry 13 }
-
---
--- Notifications. The definition of smTraps makes notification
--- registrations reversible (see STD 58, RFC 2578).
---
-
-smTraps OBJECT IDENTIFIER ::= { smNotifications 0 }
-
-smScriptAbort NOTIFICATION-TYPE
-    OBJECTS     { smRunExitCode, smRunEndTime, smRunError }
-    STATUS      current
-    DESCRIPTION
-        "This notification is generated whenever a running script
-         terminates with an smRunExitCode unequal to `noError'."
-    ::= { smTraps 1 }
-
-smScriptResult NOTIFICATION-TYPE
-    OBJECTS     { smRunResult }
-    STATUS      current
-    DESCRIPTION
-        "This notification can be used by scripts to notify other
-         management applications about results produced by the
-         script.
-
-         This notification is not automatically generated by the
-         Script MIB implementation. It is the responsibility of
-         the executing script to emit this notification where it
-         is appropriate to do so."
-    ::= { smTraps 2 }
-
-smScriptException NOTIFICATION-TYPE
-    OBJECTS     { smRunError }
-    STATUS      current
-    DESCRIPTION
-        "This notification can be used by scripts to notify other
-         management applications about script errors.
-
-         This notification is not automatically generated by the
-         Script MIB implementation. It is the responsibility of
-         the executing script or the runtime system to emit this
-         notification where it is appropriate to do so."
-    ::= { smTraps 3 }
-
--- conformance information
-
-smCompliances OBJECT IDENTIFIER ::= { smConformance 1 }
-smGroups      OBJECT IDENTIFIER ::= { smConformance 2 }
-
--- compliance statements
-
-smCompliance2 MODULE-COMPLIANCE
-    STATUS      current
-    DESCRIPTION
-        "The compliance statement for SNMP entities which implement
-         the Script MIB."
-    MODULE      -- this module
-    MANDATORY-GROUPS {
-            smLanguageGroup, smScriptGroup2, smLaunchGroup2,
-            smRunGroup2, smNotificationsGroup2
-    }
-    GROUP   smCodeGroup
-    DESCRIPTION
-        "The smCodeGroup is mandatory only for those implementations
-         that support the downloading of scripts via SNMP."
-    OBJECT  smScriptSource
-    MIN-ACCESS  read-only
-    DESCRIPTION
-        "The smScriptSource object is read-only for implementations
-         that are not able to download script code from a URL."
-    OBJECT smCodeText
-    DESCRIPTION
-        "A compliant implementation need only support write access to
-         the smCodeText object only during row creation."
-    OBJECT smLaunchArgument
-    DESCRIPTION
-        "A compliant implementation has to support a minimum size
-         for smLaunchArgument of 255 octets."
-    OBJECT smRunArgument
-    DESCRIPTION
-        "A compliant implementation has to support a minimum size
-         for smRunArgument of 255 octets."
-    OBJECT smRunResult
-    DESCRIPTION
-        "A compliant implementation has to support a minimum size
-         for smRunResult of 255 octets."
-    OBJECT smRunState
-    DESCRIPTION
-        "A compliant implementation does not have to support script
-         suspension and the smRunState `suspended'. Such an
-         implementation will change into the `suspending' state
-         when the smRunControl is set to `suspend' and remain in this
-         state until smRunControl is set to `resume' or the script
-         terminates."
-    ::= { smCompliances 2 }
-
-smLanguageGroup OBJECT-GROUP
-    OBJECTS {
-        smLangLanguage, smLangVersion,
-        smLangVendor, smLangRevision,
-        smLangDescr, smExtsnExtension,
-        smExtsnVersion, smExtsnVendor,
-        smExtsnRevision, smExtsnDescr
-    }
-    STATUS      current
-    DESCRIPTION
-        "A collection of objects providing information about the
-         capabilities of the scripting engine."
-    ::= { smGroups 1 }
-
-smScriptGroup2 OBJECT-GROUP
-    OBJECTS {
-        smScriptDescr, smScriptLanguage,
-        smScriptSource, smScriptAdminStatus,
-        smScriptOperStatus, smScriptStorageType,
-        smScriptRowStatus, smScriptError,
-        smScriptLastChange
-    }
-    STATUS      current
-    DESCRIPTION
-        "A collection of objects providing information about
-         installed scripts."
-    ::= { smGroups 7 }
-
-smCodeGroup OBJECT-GROUP
-    OBJECTS {
-        smCodeText, smCodeRowStatus
-    }
-    STATUS      current
-    DESCRIPTION
-        "A collection of objects used to download or modify scripts
-         by using SNMP set requests."
-    ::= { smGroups 3 }
-
-smLaunchGroup2 OBJECT-GROUP
-    OBJECTS {
-        smLaunchScriptOwner, smLaunchScriptName,
-        smLaunchArgument, smLaunchMaxRunning,
-        smLaunchMaxCompleted, smLaunchLifeTime,
-        smLaunchExpireTime, smLaunchStart,
-        smLaunchControl, smLaunchAdminStatus,
-        smLaunchOperStatus, smLaunchRunIndexNext,
-        smLaunchStorageType, smLaunchRowStatus,
-        smLaunchError, smLaunchLastChange,
-        smLaunchRowExpireTime
-    }
-    STATUS      current
-    DESCRIPTION
-        "A collection of objects providing information about scripts
-         that can be launched."
-    ::= { smGroups 8 }
-
-smRunGroup2 OBJECT-GROUP
-    OBJECTS {
-        smRunArgument, smRunStartTime,
-        smRunEndTime, smRunLifeTime,
-        smRunExpireTime, smRunExitCode,
-        smRunResult, smRunState,
-        smRunControl, smRunError,
-        smRunResultTime, smRunErrorTime
-    }
-    STATUS      current
-    DESCRIPTION
-        "A collection of objects providing information about running
-         scripts."
-    ::= { smGroups 9 }
-
-smNotificationsGroup2 NOTIFICATION-GROUP
-    NOTIFICATIONS {
-        smScriptAbort,
-        smScriptResult,
-        smScriptException
-    }
-    STATUS      current
-    DESCRIPTION
-        "The notifications emitted by the Script MIB."
-    ::= { smGroups 10 }
-
---
--- Deprecated compliance and conformance group definitions
--- from RFC 2592.
---
-
-smCompliance MODULE-COMPLIANCE
-    STATUS      deprecated
-    DESCRIPTION
-        "The compliance statement for SNMP entities which implement
-         the Script MIB."
-    MODULE      -- this module
-    MANDATORY-GROUPS {
-
-            smLanguageGroup, smScriptGroup, smLaunchGroup, smRunGroup
-    }
-    GROUP   smCodeGroup
-    DESCRIPTION
-        "The smCodeGroup is mandatory only for those implementations
-         that support the downloading of scripts via SNMP."
-    OBJECT  smScriptSource
-    MIN-ACCESS  read-only
-    DESCRIPTION
-        "The smScriptSource object is read-only for implementations
-         that are not able to download script code from a URL."
-    OBJECT smCodeText
-    DESCRIPTION
-        "A compliant implementation need only support write access
-         to the smCodeText object during row creation."
-    OBJECT smLaunchArgument
-    DESCRIPTION
-        "A compliant implementation has to support a minimum size
-         for smLaunchArgument of 255 octets."
-    OBJECT smRunArgument
-    DESCRIPTION
-        "A compliant implementation has to support a minimum size
-         for smRunArgument of 255 octets."
-    OBJECT smRunResult
-    DESCRIPTION
-        "A compliant implementation has to support a minimum size
-         for smRunResult of 255 octets."
-    OBJECT smRunState
-    DESCRIPTION
-        "A compliant implementation does not have to support script
-         suspension and the smRunState `suspended'. Such an
-         implementation will change into the `suspending' state
-         when the smRunControl is set to `suspend' and remain in this
-         state until smRunControl is set to `resume' or the script
-         terminates."
-    ::= { smCompliances 1 }
-
-smScriptGroup OBJECT-GROUP
-    OBJECTS {
-        smScriptDescr, smScriptLanguage,
-        smScriptSource, smScriptAdminStatus,
-        smScriptOperStatus, smScriptStorageType,
-        smScriptRowStatus
-    }
-    STATUS      deprecated
-    DESCRIPTION
-        "A collection of objects providing information about
-         installed scripts."
-    ::= { smGroups 2 }
-
-smLaunchGroup OBJECT-GROUP
-    OBJECTS {
-        smLaunchScriptOwner, smLaunchScriptName,
-        smLaunchArgument, smLaunchMaxRunning,
-        smLaunchMaxCompleted, smLaunchLifeTime,
-        smLaunchExpireTime, smLaunchStart,
-        smLaunchControl, smLaunchAdminStatus,
-        smLaunchOperStatus, smLaunchRunIndexNext,
-        smLaunchStorageType, smLaunchRowStatus
-    }
-    STATUS      deprecated
-    DESCRIPTION
-        "A collection of objects providing information about scripts
-         that can be launched."
-    ::= { smGroups 4 }
-
-smRunGroup OBJECT-GROUP
-    OBJECTS {
-        smRunArgument, smRunStartTime,
-        smRunEndTime, smRunLifeTime,
-        smRunExpireTime, smRunExitCode,
-        smRunResult, smRunState,
-        smRunControl, smRunError
-    }
-    STATUS      deprecated
-    DESCRIPTION
-        "A collection of objects providing information about running
-         scripts."
-    ::= { smGroups 5 }
-
-smNotificationsGroup NOTIFICATION-GROUP
-    NOTIFICATIONS {
-        smScriptAbort,
-        smScriptResult
-    }
-    STATUS      deprecated
-    DESCRIPTION
-        "The notifications emitted by the Script MIB."
-    ::= { smGroups 6 }
-
-END
diff --git a/mibs/DISMAN-TRACEROUTE-MIB.txt b/mibs/DISMAN-TRACEROUTE-MIB.txt
deleted file mode 100644
index d207b24..0000000
--- a/mibs/DISMAN-TRACEROUTE-MIB.txt
+++ /dev/null
@@ -1,1850 +0,0 @@
-DISMAN-TRACEROUTE-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE, Integer32,
-    Gauge32, Unsigned32, mib-2,
-    NOTIFICATION-TYPE,
-    OBJECT-IDENTITY
-        FROM SNMPv2-SMI                  -- RFC2578
-    RowStatus, StorageType,
-    TruthValue, DateAndTime
-        FROM SNMPv2-TC                   -- RFC2579
-    MODULE-COMPLIANCE, OBJECT-GROUP,
-    NOTIFICATION-GROUP
-        FROM SNMPv2-CONF                 -- RFC2580
-    SnmpAdminString
-        FROM SNMP-FRAMEWORK-MIB          -- RFC3411
-    InterfaceIndexOrZero                 -- RFC2863
-        FROM IF-MIB
-    InetAddressType, InetAddress
-        FROM INET-ADDRESS-MIB            -- RFC4001
-    OperationResponseStatus
-        FROM DISMAN-PING-MIB;            -- RFC4560
-
- traceRouteMIB MODULE-IDENTITY
-    LAST-UPDATED "200606130000Z"         -- 13 June 2006
-    ORGANIZATION "IETF Distributed Management Working Group"
-    CONTACT-INFO
-        "Juergen Quittek
-
-        NEC Europe Ltd.
-        Network Laboratories
-        Kurfuersten-Anlage 36
-        69115 Heidelberg
-        Germany
-
-        Phone: +49 6221 4342-115
-        Email: quittek at netlab.nec.de"
-    DESCRIPTION
-        "The Traceroute MIB (DISMAN-TRACEROUTE-MIB) provides
-        access to the traceroute capability at a remote host.
-
-        Copyright (C) The Internet Society (2006). This version of
-        this MIB module is part of RFC 4560; see the RFC itself for
-        full legal notices."
-
-     --  Revision history
-
-     REVISION     "200606130000Z"         -- 13 June 2006
-     DESCRIPTION
-         "Updated version, published as RFC 4560.
-             - Correctly considered IPv6 in DESCRIPTION clause of
-               object traceRouteCtlDataSize
-             - Replaced references to RFC 2575 by RFC 3415
-             - Replaced references to RFC 2571 by RFC 3411
-             - Replaced references to RFC 2851 by RFC 4001
-             - Clarified DESCRIPTION clause of object
-               traceRouteResultsLastGoodPath
-             - Changed range of object traceRouteCtlInitialTtl
-               from (0..255) to (1..255)
-             - Extended DESCRIPTION clause of traceRouteResultsTable
-               describing re-initialization of entries
-             - Changed SYNTAX of traceRouteResultsTestAttempts and
-               traceRouteResultsTestSuccesses from Unsigned32 to
-               Gauge32
-             - Changed status of traceRouteCompliance to deprecated
-             - Added traceRouteFullCompliance and
-               traceRouteMinimumCompliance
-             - Changed status of traceRouteGroup and
-               traceRouteTimeStampGroup to deprecated
-             - Added traceRouteMinimumGroup,
-               traceRouteCtlRowStatusGroup, and
-               traceRouteHistoryGroup
-             - Changed DEFVAL of object
-               traceRouteCtlTargetAddressType from { ipv4 }
-               to { unknown }
-             - Changed DEFVAL of object traceRouteCtlDescr
-               from { '00'H } to { ''H }
-             - Added DEFVAL for object traceRouteCtlTrapGeneration
-               of DEFVAL { { } }"
-     REVISION     "200009210000Z"         -- 21 September 2000
-     DESCRIPTION
-         "Initial version, published as RFC 2925."
-    ::= { mib-2 81 }
-
- -- Top level structure of the MIB
-
- traceRouteNotifications  OBJECT IDENTIFIER ::= { traceRouteMIB 0 }
- traceRouteObjects        OBJECT IDENTIFIER ::= { traceRouteMIB 1 }
- traceRouteConformance    OBJECT IDENTIFIER ::= { traceRouteMIB 2 }
-
- -- The registration node (point) for traceroute implementation types
-
- traceRouteImplementationTypeDomains OBJECT IDENTIFIER
- ::= { traceRouteMIB 3 }
-
- traceRouteUsingUdpProbes OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "Indicates that an implementation is using UDP probes to
-        perform the traceroute operation."
-    ::= { traceRouteImplementationTypeDomains 1 }
-
- -- Simple Object Definitions
-
- traceRouteMaxConcurrentRequests OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "requests"
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-       "The maximum number of concurrent active traceroute requests
-       that are allowed within an agent implementation.  A value
-       of 0 for this object implies that there is no limit for
-       the number of concurrent active requests in effect.
-
-       The limit applies only to new requests being activated.
-       When a new value is set, the agent will continue processing
-       all the requests already active, even if their number
-       exceeds the limit just imposed."
-    DEFVAL { 10 }
-    ::= { traceRouteObjects 1 }
-
-  -- Traceroute Control Table
-
- traceRouteCtlTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF TraceRouteCtlEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines the Remote Operations Traceroute Control Table for
-        providing the capability of invoking traceroute from a remote
-        host.  The results of traceroute operations can be stored in
-        the traceRouteResultsTable, traceRouteProbeHistoryTable, and
-        the traceRouteHopsTable."
-   ::= { traceRouteObjects 2 }
-
- traceRouteCtlEntry OBJECT-TYPE
-    SYNTAX      TraceRouteCtlEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines an entry in the traceRouteCtlTable.  The first
-        index element, traceRouteCtlOwnerIndex, is of type
-        SnmpAdminString, a textual convention that allows for
-        use of the SNMPv3 View-Based Access Control Model
-        (RFC 3415, VACM) and that allows a management
-        application to identify its entries.  The second index,
-        traceRouteCtlTestName (also an SnmpAdminString),
-        enables the same management application to have
-        multiple requests outstanding."
-    INDEX {
-            traceRouteCtlOwnerIndex,
-            traceRouteCtlTestName
-          }
-    ::= { traceRouteCtlTable 1 }
-
- TraceRouteCtlEntry ::=
-    SEQUENCE {
-      traceRouteCtlOwnerIndex         SnmpAdminString,
-      traceRouteCtlTestName           SnmpAdminString,
-      traceRouteCtlTargetAddressType  InetAddressType,
-      traceRouteCtlTargetAddress      InetAddress,
-      traceRouteCtlByPassRouteTable   TruthValue,
-      traceRouteCtlDataSize           Unsigned32,
-      traceRouteCtlTimeOut            Unsigned32,
-      traceRouteCtlProbesPerHop       Unsigned32,
-      traceRouteCtlPort               Unsigned32,
-      traceRouteCtlMaxTtl             Unsigned32,
-      traceRouteCtlDSField            Unsigned32,
-      traceRouteCtlSourceAddressType  InetAddressType,
-      traceRouteCtlSourceAddress      InetAddress,
-      traceRouteCtlIfIndex            InterfaceIndexOrZero,
-      traceRouteCtlMiscOptions        SnmpAdminString,
-      traceRouteCtlMaxFailures        Unsigned32,
-      traceRouteCtlDontFragment       TruthValue,
-      traceRouteCtlInitialTtl         Unsigned32,
-      traceRouteCtlFrequency          Unsigned32,
-      traceRouteCtlStorageType        StorageType,
-      traceRouteCtlAdminStatus        INTEGER,
-      traceRouteCtlDescr              SnmpAdminString,
-      traceRouteCtlMaxRows            Unsigned32,
-      traceRouteCtlTrapGeneration     BITS,
-      traceRouteCtlCreateHopsEntries  TruthValue,
-      traceRouteCtlType               OBJECT IDENTIFIER,
-      traceRouteCtlRowStatus          RowStatus
-    }
-
- traceRouteCtlOwnerIndex OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-       "To facilitate the provisioning of access control by a
-       security administrator using the View-Based Access
-       Control Model (RFC 3415, VACM) for tables in which
-       multiple users may need to create or
-       modify entries independently, the initial index is used as
-       an 'owner index'.  Such an initial index has a syntax of
-       SnmpAdminString and can thus be trivially mapped to a
-       securityName or groupName defined in VACM, in
-       accordance with a security policy.
-
-       When used in conjunction with such a security policy,
-       all entries in the table belonging to a particular user
-       (or group) will have the same value for this initial
-       index.  For a given user's entries in a particular
-       table, the object identifiers for the information in
-       these entries will have the same subidentifiers (except
-       for the 'column' subidentifier) up to the end of the
-       encoded owner index. To configure VACM to permit access
-       to this portion of the table, one would create
-       vacmViewTreeFamilyTable entries with the value of
-       vacmViewTreeFamilySubtree including the owner index
-       portion, and vacmViewTreeFamilyMask 'wildcarding' the
-       column subidentifier.  More elaborate configurations
-       are possible."
-    ::= { traceRouteCtlEntry 1 }
-
-  traceRouteCtlTestName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The name of a traceroute test.  This is locally unique,
-        within the scope of a traceRouteCtlOwnerIndex."
-    ::= { traceRouteCtlEntry 2 }
-
- traceRouteCtlTargetAddressType OBJECT-TYPE
-    SYNTAX      InetAddressType
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the type of host address to be used on the
-        traceroute request at the remote host."
-    DEFVAL { unknown }
-    ::= { traceRouteCtlEntry 3 }
-
- traceRouteCtlTargetAddress OBJECT-TYPE
-    SYNTAX      InetAddress
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the host address used on the
-        traceroute request at the remote host.  The
-        host address type can be determined by
-        examining the value of the corresponding
-        traceRouteCtlTargetAddressType.
-
-        A value for this object MUST be set prior to
-        transitioning its corresponding traceRouteCtlEntry to
-        active(1) via traceRouteCtlRowStatus."
-    ::= { traceRouteCtlEntry 4 }
-
- traceRouteCtlByPassRouteTable OBJECT-TYPE
-    SYNTAX TruthValue
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-       "The purpose of this object is to enable optional
-       bypassing the route table.  If enabled, the remote
-       host will bypass the normal routing tables and send
-       directly to a host on an attached network.  If the
-       host is not on a directly attached network, an
-       error is returned.  This option can be used to perform
-       the traceroute operation to a local host through an
-       interface that has no route defined (e.g., after the
-       interface was dropped by the routing daemon at the host)."
-    DEFVAL { false }
-    ::= { traceRouteCtlEntry 5 }
-
- traceRouteCtlDataSize OBJECT-TYPE
-    SYNTAX      Unsigned32 (0..65507)
-    UNITS       "octets"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the size of the data portion of a traceroute
-        request, in octets.  If the RECOMMENDED traceroute method
-        (UDP datagrams as probes) is used, then the value
-        contained in this object MUST be applied.  If another
-        traceroute method is used for which the specified size
-        is not appropriate, then the implementation SHOULD use
-        whatever size (appropriate to the method) is closest to
-        the specified size.
-
-        The maximum value for this object was computed by
-        subtracting the smallest possible IP header size of
-        20 octets (IPv4 header with no options) and the UDP
-        header size of 8 octets from the maximum IP packet size.
-        An IP packet has a maximum size of 65535 octets
-        (excluding IPv6 Jumbograms)."
-    DEFVAL { 0 }
-    ::= { traceRouteCtlEntry 6 }
-
- traceRouteCtlTimeOut OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..60)
-    UNITS       "seconds"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the time-out value, in seconds, for
-        a traceroute request."
-    DEFVAL { 3 }
-    ::= { traceRouteCtlEntry 7 }
-
- traceRouteCtlProbesPerHop OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..10)
-    UNITS       "probes"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the number of times to reissue a traceroute
-        request with the same time-to-live (TTL) value."
-    DEFVAL { 3 }
-    ::= { traceRouteCtlEntry 8 }
-
- traceRouteCtlPort OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..65535)
-    UNITS       "UDP Port"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the (initial) UDP port to send the traceroute
-        request to.  A port needs to be specified that is not in
-        use at the destination (target) host.  The default
-        value for this object is the IANA assigned port,
-        33434, for the traceroute function."
-    DEFVAL { 33434 }
-    ::= { traceRouteCtlEntry 9 }
-
- traceRouteCtlMaxTtl OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..255)
-    UNITS       "time-to-live value"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the maximum time-to-live value."
-    DEFVAL { 30 }
-    ::= { traceRouteCtlEntry 10 }
-
- traceRouteCtlDSField OBJECT-TYPE
-    SYNTAX      Unsigned32 (0..255)
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the value to store in the Type of Service
-        (TOS) octet in the IPv4 header or in the Traffic
-        Class octet in the IPv6 header, respectively, of the
-        IP packet used to encapsulate the traceroute probe.
-
-        The octet to be set in the IP header contains the
-        Differentiated Services (DS) Field in the six most
-        significant bits.
-
-        This option can be used to determine what effect an
-        explicit DS Field setting has on a traceroute response.
-        Not all values are legal or meaningful.  A value of 0
-        means that the function represented by this option is
-        not supported.  DS Field usage is often not supported
-        by IP implementations, and not all values are supported.
-        Refer to RFC 2474 and RFC 3260 for guidance on usage of
-        this field."
-    REFERENCE
-        "Refer to RFC 1812 for the definition of the IPv4 TOS
-        octet and to RFC 2460 for the definition of the IPv6
-        Traffic Class octet.  Refer to RFC 2474 and RFC 3260
-        for the definition of the Differentiated Services Field."
-    DEFVAL { 0 }
-    ::= { traceRouteCtlEntry 11 }
-
- traceRouteCtlSourceAddressType OBJECT-TYPE
-    SYNTAX      InetAddressType
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Specifies the type of the source address,
-        traceRouteCtlSourceAddress, to be used at a remote host
-        when a traceroute operation is performed."
-    DEFVAL { unknown }
-    ::= { traceRouteCtlEntry 12 }
-
- traceRouteCtlSourceAddress OBJECT-TYPE
-    SYNTAX      InetAddress
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Use the specified IP address (which must be given as an
-        IP number, not a hostname) as the source address in
-        outgoing probe packets.  On hosts with more than one IP
-        address, this option can be used to select the address
-        to be used.  If the IP address is not one of this
-        machine's interface addresses, an error is returned, and
-        nothing is sent.  A zero-length octet string value for
-        this object disables source address specification.
-        The address type (InetAddressType) that relates to
-        this object is specified by the corresponding value
-        of traceRouteCtlSourceAddressType."
-    DEFVAL { ''H }
-    ::= { traceRouteCtlEntry 13 }
-
- traceRouteCtlIfIndex OBJECT-TYPE
-    SYNTAX      InterfaceIndexOrZero
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Setting this object to an interface's ifIndex prior
-        to starting a remote traceroute operation directs
-        the traceroute probes to be transmitted over the
-        specified interface.  A value of zero for this object
-        implies that this option is not enabled."
-    DEFVAL { 0 }
-    ::= { traceRouteCtlEntry 14 }
-
- traceRouteCtlMiscOptions OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Enables an application to specify implementation-dependent
-        options."
-    DEFVAL { ''H }
-    ::= { traceRouteCtlEntry 15 }
-
- traceRouteCtlMaxFailures OBJECT-TYPE
-    SYNTAX      Unsigned32 (0..255)
-    UNITS       "timeouts"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object indicates the maximum number
-        of consecutive timeouts allowed before a remote traceroute
-        request is terminated.  A value of either 255 (maximum
-        hop count/possible TTL value) or 0 indicates that the
-        function of terminating a remote traceroute request when a
-        specific number of consecutive timeouts are detected is
-        disabled."
-    DEFVAL { 5 }
-    ::= { traceRouteCtlEntry 16 }
-
- traceRouteCtlDontFragment OBJECT-TYPE
-    SYNTAX         TruthValue
-    MAX-ACCESS     read-create
-    STATUS         current
-    DESCRIPTION
-        "This object enables setting of the don't fragment flag (DF)
-        in the IP header for a probe.  Use of this object enables
-        a manual PATH MTU test is performed."
-    DEFVAL  { false }
-    ::= { traceRouteCtlEntry 17 }
-
- traceRouteCtlInitialTtl OBJECT-TYPE
-    SYNTAX         Unsigned32 (1..255)
-    MAX-ACCESS     read-create
-    STATUS         current
-    DESCRIPTION
-        "The value of this object specifies the initial TTL value to
-        use.  This enables bypassing the initial (often well known)
-        portion of a path."
-    DEFVAL { 1 }
-    ::= { traceRouteCtlEntry 18 }
-
- traceRouteCtlFrequency  OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "seconds"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The number of seconds to wait before repeating a
-        traceroute test, as defined by the value of the
-        various objects in the corresponding row.
-
-        After a single test is completed the number of seconds
-        as defined by the value of traceRouteCtlFrequency MUST
-        elapse before the next traceroute test is started.
-
-        A value of 0 for this object implies that the test
-        as defined by the corresponding entry will not be
-
-        repeated."
-    DEFVAL { 0 }
-    ::= { traceRouteCtlEntry 19 }
-
- traceRouteCtlStorageType 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 }
-    ::= { traceRouteCtlEntry 20 }
-
- traceRouteCtlAdminStatus OBJECT-TYPE
-    SYNTAX      INTEGER {
-
-                          enabled(1), -- operation should be started
-                          disabled(2) -- operation should be stopped
-                        }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "Reflects the desired state that an traceRouteCtlEntry
-        should be in:
-
-           enabled(1)  - Attempt to activate the test as defined by
-                         this traceRouteCtlEntry.
-           disabled(2) - Deactivate the test as defined by this
-                         traceRouteCtlEntry.
-
-        Refer to the corresponding traceRouteResultsOperStatus to
-        determine the operational state of the test defined by
-        this entry."
-     DEFVAL { disabled }
-    ::= { traceRouteCtlEntry 21 }
-
- traceRouteCtlDescr OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The purpose of this object is to provide a
-        descriptive name of the remote traceroute
-        test."
-    DEFVAL { ''H }
-    ::= { traceRouteCtlEntry 22 }
-
- traceRouteCtlMaxRows OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "rows"
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The maximum number of corresponding entries allowed
-        in the traceRouteProbeHistoryTable.  An implementation
-        of this MIB will remove the oldest corresponding entry
-        in the traceRouteProbeHistoryTable to allow the
-        addition of an new entry once the number of
-        corresponding rows in the traceRouteProbeHistoryTable
-        reaches this value.
-
-        Old entries are not removed when a new test is
-        started.  Entries are added to the
-        traceRouteProbeHistoryTable until traceRouteCtlMaxRows
-        is reached before entries begin to be removed.
-        A value of 0 for this object disables creation of
-        traceRouteProbeHistoryTable entries."
-    DEFVAL      { 50 }
-    ::= { traceRouteCtlEntry 23 }
-
- traceRouteCtlTrapGeneration OBJECT-TYPE
-    SYNTAX      BITS {
-                  pathChange(0),
-                  testFailure(1),
-                  testCompletion(2)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object determines when and whether to
-        generate a notification for this entry:
-
-        pathChange(0)     - Generate a traceRoutePathChange
-            notification when the current path varies from a
-            previously determined path.
-        testFailure(1)    - Generate a traceRouteTestFailed
-            notification when the full path to a target
-            can't be determined.
-        testCompletion(2) - Generate a traceRouteTestCompleted
-            notification when the path to a target has been
-            determined.
-
-        The value of this object defaults to an empty set,
-        indicating that none of the above options has been
-        selected."
-    DEFVAL { { } }
-    ::= { traceRouteCtlEntry 24 }
-
- traceRouteCtlCreateHopsEntries OBJECT-TYPE
-    SYNTAX      TruthValue
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The current path for a traceroute test is kept in the
-        traceRouteHopsTable on a per-hop basis when the value of
-        this object is true(1)."
-    DEFVAL { false }
-    ::= { traceRouteCtlEntry 25 }
-
- traceRouteCtlType OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object is used either to report or to
-        select the implementation method to be used for
-        performing a traceroute operation.  The value of this
-        object may be selected from
-        traceRouteImplementationTypeDomains.
-
-        Additional implementation types should be allocated as
-        required by implementers of the DISMAN-TRACEROUTE-MIB
-        under their enterprise specific registration point,
-        not beneath traceRouteImplementationTypeDomains."
-    DEFVAL { traceRouteUsingUdpProbes }
-    ::= { traceRouteCtlEntry 26 }
-
- traceRouteCtlRowStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object allows entries to be created and deleted
-        in the traceRouteCtlTable.  Deletion of an entry in
-        this table results in a deletion of all corresponding (same
-        traceRouteCtlOwnerIndex and traceRouteCtlTestName
-        index values) traceRouteResultsTable,
-        traceRouteProbeHistoryTable, and traceRouteHopsTable
-        entries.
-
-        A value MUST be specified for traceRouteCtlTargetAddress
-        prior to acceptance of a transition to active(1) state.
-
-        When a value for pingCtlTargetAddress is set,
-        the value of object pingCtlRowStatus changes
-        from notReady(3) to notInService(2).
-
-        Activation of a remote traceroute operation is
-        controlled via traceRouteCtlAdminStatus, and not
-        by transitioning of this object's value to active(1).
-
-        Transitions in and out of active(1) state are not
-        allowed while an entry's traceRouteResultsOperStatus
-        is active(1), with the exception that deletion of
-        an entry in this table by setting its RowStatus
-        object to destroy(6) will stop an active
-        traceroute operation.
-
-        The operational state of an traceroute operation
-        can be determined by examination of the corresponding
-        traceRouteResultsOperStatus object."
-    REFERENCE
-        "See definition of RowStatus in RFC 2579, 'Textual
-        Conventions for SMIv2.'"
-    ::= { traceRouteCtlEntry 27 }
-
- -- Traceroute Results Table
-
- traceRouteResultsTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF TraceRouteResultsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines the Remote Operations Traceroute Results Table for
-        keeping track of the status of a traceRouteCtlEntry.
-
-        An entry is added to the traceRouteResultsTable when an
-        traceRouteCtlEntry is started by successful transition
-        of its traceRouteCtlAdminStatus object to enabled(1).
-
-        If the object traceRouteCtlAdminStatus already has the value
-        enabled(1), and if the corresponding
-        traceRouteResultsOperStatus object has the value
-        completed(3), then successfully writing enabled(1) to the
-        object traceRouteCtlAdminStatus re-initializes the already
-        existing entry in the traceRouteResultsTable.  The values of
-        objects in the re-initialized entry are the same as
-        the values of objects in a new entry would be.
-
-        An entry is removed from the traceRouteResultsTable when
-
-        its corresponding traceRouteCtlEntry is deleted."
-   ::= { traceRouteObjects 3 }
-
- traceRouteResultsEntry OBJECT-TYPE
-    SYNTAX      TraceRouteResultsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines an entry in the traceRouteResultsTable.  The
-        traceRouteResultsTable has the same indexing as the
-        traceRouteCtlTable so that a traceRouteResultsEntry
-        corresponds to the traceRouteCtlEntry that caused it to
-        be created."
-    INDEX {
-            traceRouteCtlOwnerIndex,
-            traceRouteCtlTestName
-          }
-    ::= { traceRouteResultsTable 1 }
-
- TraceRouteResultsEntry ::=
-    SEQUENCE {
-      traceRouteResultsOperStatus       INTEGER,
-      traceRouteResultsCurHopCount      Gauge32,
-      traceRouteResultsCurProbeCount    Gauge32,
-      traceRouteResultsIpTgtAddrType    InetAddressType,
-      traceRouteResultsIpTgtAddr        InetAddress,
-      traceRouteResultsTestAttempts     Gauge32,
-      traceRouteResultsTestSuccesses    Gauge32,
-      traceRouteResultsLastGoodPath     DateAndTime
-    }
-
- traceRouteResultsOperStatus OBJECT-TYPE
-    SYNTAX      INTEGER {
-                          enabled(1),  -- test is in progress
-                          disabled(2), -- test has stopped
-                          completed(3) -- test is completed
-                        }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Reflects the operational state of an traceRouteCtlEntry:
-
-           enabled(1)   - Test is active.
-           disabled(2)  - Test has stopped.
-           completed(3) - Test is completed."
-    ::= { traceRouteResultsEntry 1 }
-
- traceRouteResultsCurHopCount OBJECT-TYPE
-    SYNTAX      Gauge32
-    UNITS       "hops"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Reflects the current TTL value (from 1 to
-        255) for a remote traceroute operation.
-        Maximum TTL value is determined by
-        traceRouteCtlMaxTtl."
-    ::= { traceRouteResultsEntry 2 }
-
- traceRouteResultsCurProbeCount OBJECT-TYPE
-    SYNTAX      Gauge32
-    UNITS       "probes"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Reflects the current probe count (1..10) for
-        a remote traceroute operation.  The maximum
-        probe count is determined by
-        traceRouteCtlProbesPerHop."
-    ::= { traceRouteResultsEntry 3 }
-
- traceRouteResultsIpTgtAddrType OBJECT-TYPE
-    SYNTAX      InetAddressType
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This object indicates the type of address stored
-        in the corresponding traceRouteResultsIpTgtAddr
-        object."
-    ::= { traceRouteResultsEntry 4 }
-
- traceRouteResultsIpTgtAddr OBJECT-TYPE
-    SYNTAX      InetAddress
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This object reports the IP address associated
-        with a traceRouteCtlTargetAddress value when the
-        destination address is specified as a DNS name.
-        The value of this object should be a zero-length
-        octet string when a DNS name is not specified or
-        when a specified DNS name fails to resolve."
-    ::= { traceRouteResultsEntry 5 }
-
- traceRouteResultsTestAttempts OBJECT-TYPE
-    SYNTAX      Gauge32
-    UNITS       "tests"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The current number of attempts to determine a path
-        to a target.  The value of this object MUST be started
-        at 0."
-    ::= { traceRouteResultsEntry 6 }
-
- traceRouteResultsTestSuccesses OBJECT-TYPE
-    SYNTAX      Gauge32
-    UNITS       "tests"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The current number of attempts to determine a path
-        to a target that have succeeded.  The value of this
-        object MUST be reported as 0 when no attempts have
-        succeeded."
-    ::= { traceRouteResultsEntry 7 }
-
- traceRouteResultsLastGoodPath OBJECT-TYPE
-    SYNTAX      DateAndTime
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The date and time when the last complete path
-        was determined.  A path is complete if responses
-        were received or timeout occurred for each hop on
-        the path; i.e., for each TTL value from the value
-        of the corresponding traceRouteCtlInitialTtl object
-        up to the end of the path or (if no reply from the
-        target IP address was received) up to the value of
-        the corresponding traceRouteCtlMaxTtl object."
-    ::= { traceRouteResultsEntry 8 }
-
- -- Trace Route Probe History Table
-
- traceRouteProbeHistoryTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF TraceRouteProbeHistoryEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines the Remote Operations Traceroute Results Table
-        for storing the results of a traceroute operation.
-
-        An implementation of this MIB will remove the oldest
-
-        entry in the traceRouteProbeHistoryTable of the
-        corresponding entry in the traceRouteCtlTable to allow
-        the addition of a new entry once the number of rows in
-        the traceRouteProbeHistoryTable reaches the value specified
-        by traceRouteCtlMaxRows for the corresponding entry in the
-        traceRouteCtlTable."
-   ::= { traceRouteObjects 4 }
-
- traceRouteProbeHistoryEntry OBJECT-TYPE
-    SYNTAX      TraceRouteProbeHistoryEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines a table for storing the results of a traceroute
-        operation.  Entries in this table are limited by
-        the value of the corresponding traceRouteCtlMaxRows
-        object.
-
-        The first two index elements identify the
-        traceRouteCtlEntry that a traceRouteProbeHistoryEntry
-        belongs to.  The third index element selects a single
-        traceroute operation result.  The fourth and fifth indexes
-        select the hop and the probe for a particular
-        traceroute operation."
-    INDEX {
-             traceRouteCtlOwnerIndex,
-             traceRouteCtlTestName,
-             traceRouteProbeHistoryIndex,
-             traceRouteProbeHistoryHopIndex,
-             traceRouteProbeHistoryProbeIndex
-
-          }
-    ::= { traceRouteProbeHistoryTable 1 }
-
- TraceRouteProbeHistoryEntry ::=
-    SEQUENCE {
-      traceRouteProbeHistoryIndex         Unsigned32,
-      traceRouteProbeHistoryHopIndex      Unsigned32,
-      traceRouteProbeHistoryProbeIndex    Unsigned32,
-      traceRouteProbeHistoryHAddrType     InetAddressType,
-      traceRouteProbeHistoryHAddr         InetAddress,
-      traceRouteProbeHistoryResponse      Unsigned32,
-      traceRouteProbeHistoryStatus        OperationResponseStatus,
-      traceRouteProbeHistoryLastRC        Integer32,
-      traceRouteProbeHistoryTime          DateAndTime
-    }
-
- traceRouteProbeHistoryIndex OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..'ffffffff'h)
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An entry in this table is created when the result of
-        a traceroute probe is determined.  The initial 2 instance
-        identifier index values identify the traceRouteCtlEntry
-        that a probe result (traceRouteProbeHistoryEntry) belongs
-        to.  An entry is removed from this table when
-        its corresponding traceRouteCtlEntry is deleted.
-
-        An implementation MUST start assigning
-        traceRouteProbeHistoryIndex values at 1 and wrap after
-        exceeding the maximum possible value, as defined by the
-        limit of this object ('ffffffff'h)."
-    ::= { traceRouteProbeHistoryEntry 1 }
-
- traceRouteProbeHistoryHopIndex OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..255)
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-       "Indicates which hop in a traceroute path the probe's
-       results are for.  The value of this object is initially
-       determined by the value of traceRouteCtlInitialTtl."
-    ::= { traceRouteProbeHistoryEntry 2 }
-
- traceRouteProbeHistoryProbeIndex OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..10)
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-       "Indicates the index of a probe for a particular
-       hop in a traceroute path.  The number of probes per
-       hop is determined by the value of the corresponding
-       traceRouteCtlProbesPerHop object."
-    ::= { traceRouteProbeHistoryEntry 3 }
-
- traceRouteProbeHistoryHAddrType OBJECT-TYPE
-    SYNTAX      InetAddressType
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This objects indicates the type of address stored
-        in the corresponding traceRouteProbeHistoryHAddr
-        object."
-    ::= { traceRouteProbeHistoryEntry 4 }
-
- traceRouteProbeHistoryHAddr OBJECT-TYPE
-    SYNTAX      InetAddress
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-       "The address of a hop in a traceroute path.  This object
-       is not allowed to be a DNS name.  The value of the
-       corresponding object, traceRouteProbeHistoryHAddrType,
-       indicates this object's IP address type."
-    ::= { traceRouteProbeHistoryEntry 5 }
-
- traceRouteProbeHistoryResponse OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "milliseconds"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The amount of time measured in milliseconds from when
-        a probe was sent to when its response was received or
-        when it timed out.  The value of this object is reported
-        as 0 when it is not possible to transmit a probe."
-    ::= { traceRouteProbeHistoryEntry 6 }
-
- traceRouteProbeHistoryStatus OBJECT-TYPE
-    SYNTAX      OperationResponseStatus
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The result of a traceroute operation made by a remote
-        host for a particular probe."
-    ::= { traceRouteProbeHistoryEntry 7 }
-
- traceRouteProbeHistoryLastRC OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The last implementation-method-specific reply code received.
-
-        Traceroute is usually implemented by transmitting a series of
-        probe packets with increasing time-to-live values.  A probe
-        packet is a UDP datagram encapsulated into an IP packet.
-        Each hop in a path to the target (destination) host rejects
-        the probe packets (probe's TTL too small, ICMP reply) until
-        either the maximum TTL is exceeded or the target host is
-        received."
-    ::= { traceRouteProbeHistoryEntry 8 }
-
- traceRouteProbeHistoryTime OBJECT-TYPE
-    SYNTAX      DateAndTime
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Timestamp for when this probe's results were determined."
-    ::= { traceRouteProbeHistoryEntry 9 }
-
- -- Traceroute Hop Results Table
-
- traceRouteHopsTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF TraceRouteHopsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines the Remote Operations Traceroute Hop Table for
-        keeping track of the results of traceroute tests on a
-        per-hop basis."
-    ::= { traceRouteObjects 5 }
-
- traceRouteHopsEntry OBJECT-TYPE
-    SYNTAX      TraceRouteHopsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Defines an entry in the traceRouteHopsTable.
-        The first two index elements identify the
-        traceRouteCtlEntry that a traceRouteHopsEntry
-        belongs to.  The third index element,
-        traceRouteHopsHopIndex, selects a
-        hop in a traceroute path."
-    INDEX {
-            traceRouteCtlOwnerIndex,
-            traceRouteCtlTestName,
-            traceRouteHopsHopIndex
-          }
-    ::= { traceRouteHopsTable 1 }
-
- TraceRouteHopsEntry ::=
-    SEQUENCE {
-        traceRouteHopsHopIndex         Unsigned32,
-        traceRouteHopsIpTgtAddressType InetAddressType,
-        traceRouteHopsIpTgtAddress     InetAddress,
-        traceRouteHopsMinRtt           Unsigned32,
-        traceRouteHopsMaxRtt           Unsigned32,
-        traceRouteHopsAverageRtt       Unsigned32,
-        traceRouteHopsRttSumOfSquares  Unsigned32,
-        traceRouteHopsSentProbes       Unsigned32,
-        traceRouteHopsProbeResponses   Unsigned32,
-        traceRouteHopsLastGoodProbe    DateAndTime
-      }
-
- traceRouteHopsHopIndex OBJECT-TYPE
-    SYNTAX      Unsigned32 (1..'ffffffff'h)
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Specifies the hop index for a traceroute hop.  Values
-        for this object with respect to the same
-        traceRouteCtlOwnerIndex and traceRouteCtlTestName
-        MUST start at 1 and be given increasing values for
-        subsequent hops.  The value of traceRouteHopsHopIndex is not
-        necessarily the number of the hop on the traced path.
-
-        The traceRouteHopsTable keeps the current traceroute
-        path per traceRouteCtlEntry if enabled by
-        setting the corresponding traceRouteCtlCreateHopsEntries
-        to true(1).
-
-        All hops (traceRouteHopsTable entries) in a traceroute
-        path MUST be updated at the same time when a traceroute
-        operation is completed.  Care needs to be applied when a path
-        either changes or can't be determined.  The initial portion
-        of the path, up to the first hop change, MUST retain the
-        same traceRouteHopsHopIndex values.  The remaining portion
-        of the path SHOULD be assigned new traceRouteHopsHopIndex
-        values."
-    ::= { traceRouteHopsEntry 1 }
-
- traceRouteHopsIpTgtAddressType OBJECT-TYPE
-    SYNTAX      InetAddressType
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This object indicates the type of address stored
-        in the corresponding traceRouteHopsIpTgtAddress
-        object."
-    ::= { traceRouteHopsEntry 2 }
-
- traceRouteHopsIpTgtAddress OBJECT-TYPE
-    SYNTAX      InetAddress
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This object reports the IP address associated with
-
-        the hop.  A value for this object should be reported
-        as a numeric IP address, not as a DNS name.
-
-        The address type (InetAddressType) that relates to
-        this object is specified by the corresponding value
-        of pingCtlSourceAddressType."
-    ::= { traceRouteHopsEntry 3 }
-
- traceRouteHopsMinRtt OBJECT-TYPE
-    SYNTAX      Unsigned32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The minimum traceroute round-trip-time (RTT) received for
-        this hop.  A value of 0 for this object implies that no
-        RTT has been received."
-    ::= { traceRouteHopsEntry 4 }
-
- traceRouteHopsMaxRtt OBJECT-TYPE
-    SYNTAX      Unsigned32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The maximum traceroute round-trip-time (RTT) received for
-        this hop.  A value of 0 for this object implies that no
-        RTT has been received."
-    ::= { traceRouteHopsEntry 5 }
-
- traceRouteHopsAverageRtt OBJECT-TYPE
-    SYNTAX      Unsigned32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The current average traceroute round-trip-time (RTT) for
-        this hop."
-    ::= { traceRouteHopsEntry 6 }
-
- traceRouteHopsRttSumOfSquares OBJECT-TYPE
-    SYNTAX      Unsigned32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "This object contains the sum of the squares of all
-        round-trip-times received for this hop.  Its purpose is
-        to enable standard deviation calculation."
-    ::= { traceRouteHopsEntry 7 }
-
- traceRouteHopsSentProbes OBJECT-TYPE
-    SYNTAX      Unsigned32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The value of this object reflects the number of probes sent
-        for this hop during this traceroute test.  The value of this
-        object should start at 0."
-    ::= { traceRouteHopsEntry 8 }
-
- traceRouteHopsProbeResponses OBJECT-TYPE
-    SYNTAX      Unsigned32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Number of responses received for this hop during this
-        traceroute test.  This value of this object should start
-        at 0."
-    ::= { traceRouteHopsEntry 9 }
-
- traceRouteHopsLastGoodProbe OBJECT-TYPE
-    SYNTAX      DateAndTime
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "Date and time at which the last response was received for a
-         probe for this hop during this traceroute test."
-    ::= { traceRouteHopsEntry 10 }
-
- -- Notification Definition section
-
- traceRoutePathChange NOTIFICATION-TYPE
-      OBJECTS {
-        traceRouteCtlTargetAddressType,
-        traceRouteCtlTargetAddress,
-        traceRouteResultsIpTgtAddrType,
-        traceRouteResultsIpTgtAddr
-      }
-      STATUS  current
-      DESCRIPTION
-          "The path to a target has changed."
-      ::= { traceRouteNotifications 1 }
-
- traceRouteTestFailed NOTIFICATION-TYPE
-      OBJECTS {
-        traceRouteCtlTargetAddressType,
-        traceRouteCtlTargetAddress,
-        traceRouteResultsIpTgtAddrType,
-        traceRouteResultsIpTgtAddr
-
-      }
-      STATUS  current
-      DESCRIPTION
-          "Could not determine the path to a target."
-      ::= { traceRouteNotifications 2 }
-
- traceRouteTestCompleted NOTIFICATION-TYPE
-      OBJECTS {
-        traceRouteCtlTargetAddressType,
-        traceRouteCtlTargetAddress,
-        traceRouteResultsIpTgtAddrType,
-        traceRouteResultsIpTgtAddr
-      }
-      STATUS  current
-      DESCRIPTION
-          "The path to a target has just been determined."
-      ::= { traceRouteNotifications 3 }
-
- -- Conformance information
- -- Compliance statements
-
- traceRouteCompliances OBJECT IDENTIFIER
-      ::= { traceRouteConformance 1 }
- traceRouteGroups      OBJECT IDENTIFIER
-      ::= { traceRouteConformance 2 }
-
- -- Compliance statements
-
- traceRouteFullCompliance MODULE-COMPLIANCE
-    STATUS  current
-    DESCRIPTION
-            "The compliance statement for SNMP entities that
-            fully implement the DISMAN-TRACEROUTE-MIB."
-    MODULE  -- this module
-        MANDATORY-GROUPS {
-                            traceRouteMinimumGroup,
-                            traceRouteCtlRowStatusGroup,
-                            traceRouteHistoryGroup
-                         }
-
-        GROUP traceRouteHopsTableGroup
-        DESCRIPTION
-            "This group lists the objects that make up a
-            traceRouteHopsEntry.  Support of the traceRouteHopsTable
-            is optional."
-
-        GROUP traceRouteNotificationsGroup
-        DESCRIPTION
-            "This group defines a collection of optional
-            notifications."
-
-        OBJECT traceRouteMaxConcurrentRequests
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "The agent is not required to support SET
-            operations to this object."
-
-        OBJECT traceRouteCtlByPassRouteTable
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access to this object is not required by
-            implementations that are not capable of its
-            implementation.  The function represented by this
-            object is implementable if the setsockopt
-            SOL_SOCKET SO_DONTROUTE option is supported."
-
-        OBJECT traceRouteCtlDSField
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-            not supported, return a 0 as the value of this object.
-            A value of 0 implies that the function represented by
-            this option is not supported."
-
-        OBJECT traceRouteCtlSourceAddressType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access to this object is not required by
-            implementations that are not capable of binding the
-            send socket with a source address.  An implementation
-            is only required to support IPv4 and IPv6 addresses."
-
-        OBJECT traceRouteCtlSourceAddress
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access to this object is not required by
-            implementations that are not capable of binding the
-            send socket with a source address.  An implementation
-            is only required to support IPv4 and IPv6 addresses."
-
-        OBJECT traceRouteCtlIfIndex
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-
-            not supported, return a 0 as the value of this object.
-            A value of 0 implies that the function represented by
-            this option is not supported."
-
-        OBJECT traceRouteCtlMiscOptions
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Support of this object is optional.  If not
-            supporting, do not allow write access and return a
-            zero-length octet string as the value of the object."
-
-        OBJECT traceRouteCtlStorageType
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  It is also allowed
-            that implementations support only the volatile(2)
-            StorageType enumeration."
-
-        OBJECT traceRouteCtlType
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  In addition, the only
-            value that is RECOMMENDED to be supported by an
-            implementation is traceRouteUsingUdpProbes."
-
-        OBJECT traceRouteResultsIpTgtAddrType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteResultsIpTgtAddr
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteResultsLastGoodPath
-        DESCRIPTION
-            "If the traceRouteHopsTableGroup is implemented, then
-            this object is mandatory for implementations that have
-            access to a system clock and that are capable of setting
-            the values for DateAndTime objects.  It is RECOMMENDED
-            that when this object is not supported its values
-            be reported as '0000000000000000'H."
-
-        OBJECT traceRouteProbeHistoryHAddrType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteProbeHistoryHAddr
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteProbeHistoryTime
-        DESCRIPTION
-            "This object is mandatory for implementations that have
-            access to a system clock and that are capable of setting
-            the values for DateAndTime objects.  It is RECOMMENDED
-            that when this object is not supported its values
-            be reported as '0000000000000000'H."
-
-        OBJECT traceRouteHopsIpTgtAddressType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteHopsIpTgtAddress
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteHopsLastGoodProbe
-        DESCRIPTION
-            "This object is mandatory for implementations that have
-            access to a system clock and that are capable of setting
-            the values for DateAndTime objects.  It is RECOMMENDED
-            that when this object is not supported its values
-            be reported as '0000000000000000'H."
-    ::= { traceRouteCompliances 2 }
-
- traceRouteMinimumCompliance MODULE-COMPLIANCE
-    STATUS  current
-    DESCRIPTION
-            "The minimum compliance statement for SNMP entities
-            which implement the minimal subset of the
-            DISMAN-TRACEROUTE-MIB.  Implementors might choose this
-            subset for small devices with limited resources."
-    MODULE  -- this module
-
-        MANDATORY-GROUPS { traceRouteMinimumGroup }
-
-        GROUP traceRouteCtlRowStatusGroup
-        DESCRIPTION
-            "A compliant implementation does not have to implement
-            the traceRouteCtlRowStatusGroup."
-
-        GROUP traceRouteHistoryGroup
-        DESCRIPTION
-            "A compliant implementation does not have to implement
-            the traceRouteHistoryGroup."
-
-        GROUP traceRouteHopsTableGroup
-        DESCRIPTION
-            "This group lists the objects that make up a
-            traceRouteHopsEntry.  Support of the traceRouteHopsTable
-            is optional."
-
-        GROUP traceRouteNotificationsGroup
-        DESCRIPTION
-            "This group defines a collection of optional
-            notifications."
-
-        OBJECT traceRouteMaxConcurrentRequests
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "The agent is not required to support SET
-            operations to this object."
-
-        OBJECT traceRouteCtlByPassRouteTable
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-            not supported, return a false(2) as the value of this
-            object.  A value of false(2) means that the function
-            represented by this option is not supported."
-
-        OBJECT traceRouteCtlDSField
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-            not supported, return a 0 as the value of this object.
-            A value of 0 implies that the function represented by
-            this option is not supported."
-
-        OBJECT traceRouteCtlSourceAddressType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access to this object is not required by
-            implementations that are not capable of binding the
-            send socket with a source address.  An implementation
-            is only required to support IPv4 and IPv6 addresses."
-
-        OBJECT traceRouteCtlSourceAddress
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access to this object is not required by
-            implementations that are not capable of binding the
-            send socket with a source address.  An implementation
-            is only required to support IPv4 and IPv6 addresses."
-
-        OBJECT traceRouteCtlIfIndex
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-            not supported, return a 0 as the value of this object.
-            A value of 0 implies that the function represented by
-            this option is not supported."
-
-        OBJECT traceRouteCtlMiscOptions
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Support of this object is optional.  If not
-            supporting, do not allow write access, and return a
-            zero-length octet string as the value of the object."
-
-        OBJECT traceRouteCtlDontFragment
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-            not supported, return a false(2) as the value of this
-            object.  A value of false(2) means that the function
-            represented by this option is not supported."
-
-        OBJECT traceRouteCtlInitialTtl
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-            not supported, return a 1 as the value of this object."
-
-        OBJECT traceRouteCtlFrequency
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If write access is
-            not supported, return a 0 as the value of this object.
-            A value of 0 implies that the function represented by
-            this option is not supported."
-
-        OBJECT traceRouteCtlStorageType
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  It is also allowed
-            that implementations support only the volatile(2)
-            StorageType enumeration."
-
-        OBJECT traceRouteCtlDescr
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "The agent is not required to support set
-            operations to this object."
-
-        OBJECT traceRouteCtlMaxRows
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If the
-            traceRouteHistoryGroup is not implemented, then write
-            access to this object MUST be disabled, and the object
-            MUST return a value of 0 when retrieved."
-
-        OBJECT traceRouteCtlTrapGeneration
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If the
-            traceRouteNotificationsGroup is not implemented, then
-            write access to this object MUST be disabled, and the
-            object MUST return a value with no bit set when
-            retrieved.  No bit set indicates that no notification
-            is generated."
-
-        OBJECT traceRouteCtlCreateHopsEntries
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  If the
-            traceRouteHopsTableGroup is not implemented, then
-            write access to this object MUST be disabled, and the
-            object MUST return a value of false(2) when retrieved."
-
-        OBJECT traceRouteCtlType
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  In addition, the only
-
-            value that is RECOMMENDED to be supported by an
-            implementation is traceRouteUsingUdpProbes."
-
-        OBJECT traceRouteResultsIpTgtAddrType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteResultsIpTgtAddr
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteResultsLastGoodPath
-        DESCRIPTION
-            "This object is mandatory for implementations that have
-            access to a system clock and that are capable of setting
-            the values for DateAndTime objects.  It is RECOMMENDED
-            that when this object is not supported its values
-            be reported as '0000000000000000'H."
-
-        OBJECT traceRouteProbeHistoryHAddrType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteProbeHistoryHAddr
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteProbeHistoryTime
-        DESCRIPTION
-            "If the traceRouteHistoryGroup is implemented, then
-            this object is mandatory for implementations that have
-            access to a system clock and that are capable of setting
-            the values for DateAndTime objects.  It is RECOMMENDED
-            that when this object is not supported its values
-            be reported as '0000000000000000'H."
-
-        OBJECT traceRouteHopsIpTgtAddressType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteHopsIpTgtAddress
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteHopsLastGoodProbe
-        DESCRIPTION
-            "If the traceRouteHopsTableGroup is implemented, then
-            this object is mandatory for implementations that have
-            access to a system clock and that are capable of setting
-            the values for DateAndTime objects.  It is RECOMMENDED
-            that when this object is not supported its values
-            be reported as '0000000000000000'H."
-    ::= { traceRouteCompliances 3 }
-
- traceRouteCompliance MODULE-COMPLIANCE
-    STATUS  deprecated
-    DESCRIPTION
-            "The compliance statement for the DISMAN-TRACEROUTE-MIB.
-            This compliance statement has been deprecated because
-            the traceRouteGroup and the traceRouteTimeStampGroup
-            have been split and deprecated. The
-            traceRouteFullCompliance is semantically identical to the
-            deprecated traceRouteCompliance statement."
-    MODULE  -- this module
-        MANDATORY-GROUPS {
-                            traceRouteGroup
-                          }
-        GROUP traceRouteTimeStampGroup
-        DESCRIPTION
-            "This group is mandatory for implementations that have
-            access to a system clock and that are capable of setting
-            the values for DateAndTime objects."
-
-        GROUP traceRouteNotificationsGroup
-        DESCRIPTION
-            "This group defines a collection of optional
-            notifications."
-
-        GROUP traceRouteHopsTableGroup
-        DESCRIPTION
-            "This group lists the objects that make up a
-            traceRouteHopsEntry.  Support of the traceRouteHopsTable
-            is optional."
-
-        OBJECT traceRouteMaxConcurrentRequests
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "The agent is not required to support SET
-            operations to this object."
-
-        OBJECT traceRouteCtlByPassRouteTable
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "This object is not required by implementations that
-            are not capable of its implementation.  The function
-            represented by this object is implementable if the
-            setsockopt SOL_SOCKET SO_DONTROUTE option is
-            supported."
-
-        OBJECT traceRouteCtlSourceAddressType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "This object is not required by implementations that
-            are not capable of binding the send socket with a
-            source address.  An implementation is only required to
-            support IPv4 and IPv6 addresses."
-
-        OBJECT traceRouteCtlSourceAddress
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "This object is not required by implementations that
-            are not capable of binding the send socket with a
-            source address.  An implementation is only required to
-            support IPv4 and globally unique IPv6 addresses."
-
-        OBJECT traceRouteCtlIfIndex
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  When write access is
-            not supported, return a 0 as the value of this object.
-            A value of 0 implies that the function represented by
-            this option is not supported."
-
-        OBJECT traceRouteCtlMiscOptions
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Support of this object is optional.  When not
-            supporting, do not allow write access, and return a
-            zero-length octet string as the value of the object."
-
-        OBJECT traceRouteCtlStorageType
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  It is also allowed
-           that implementations support only the volatile
-            StorageType enumeration."
-
-        OBJECT traceRouteCtlDSField
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  When write access is
-            not supported, return a 0 as the value of this object.
-            A value of 0 implies that the function represented by
-            this option is not supported."
-
-        OBJECT traceRouteCtlType
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.  In addition, the only
-            value that is RECOMMENDED to be supported by an
-            implementation is traceRouteUsingUdpProbes."
-
-        OBJECT traceRouteResultsIpTgtAddrType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteResultsIpTgtAddr
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteProbeHistoryHAddrType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteProbeHistoryHAddr
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteHopsIpTgtAddressType
-        SYNTAX  InetAddressType { unknown(0), ipv4(1), ipv6(2) }
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-
-        OBJECT traceRouteHopsIpTgtAddress
-        SYNTAX  InetAddress (SIZE(0|4|16))
-        DESCRIPTION
-            "An implementation should only support IPv4 and
-            globally unique IPv6 address values for this object."
-    ::= { traceRouteCompliances 1 }
-
- -- MIB groupings
-
- traceRouteMinimumGroup OBJECT-GROUP
-   OBJECTS {
-             traceRouteMaxConcurrentRequests,
-             traceRouteCtlTargetAddressType,
-             traceRouteCtlTargetAddress,
-             traceRouteCtlByPassRouteTable,
-             traceRouteCtlDataSize,
-             traceRouteCtlTimeOut,
-             traceRouteCtlProbesPerHop,
-             traceRouteCtlPort,
-             traceRouteCtlMaxTtl,
-             traceRouteCtlDSField,
-             traceRouteCtlSourceAddressType,
-             traceRouteCtlSourceAddress,
-             traceRouteCtlIfIndex,
-             traceRouteCtlMiscOptions,
-             traceRouteCtlMaxFailures,
-             traceRouteCtlDontFragment,
-             traceRouteCtlInitialTtl,
-             traceRouteCtlFrequency,
-             traceRouteCtlStorageType,
-             traceRouteCtlAdminStatus,
-             traceRouteCtlMaxRows,
-             traceRouteCtlTrapGeneration,
-             traceRouteCtlDescr,
-             traceRouteCtlCreateHopsEntries,
-             traceRouteCtlType,
-             traceRouteResultsOperStatus,
-             traceRouteResultsCurHopCount,
-             traceRouteResultsCurProbeCount,
-             traceRouteResultsIpTgtAddrType,
-             traceRouteResultsIpTgtAddr,
-             traceRouteResultsTestAttempts,
-             traceRouteResultsTestSuccesses,
-             traceRouteResultsLastGoodPath
-
-          }
-   STATUS  current
-   DESCRIPTION
-       "The group of objects that constitute the remote traceroute
-       operation."
-   ::= { traceRouteGroups 5 }
-
- traceRouteCtlRowStatusGroup OBJECT-GROUP
-   OBJECTS {
-             traceRouteCtlRowStatus
-          }
-   STATUS  current
-   DESCRIPTION
-       "The RowStatus object of the traceRouteCtlTable."
-   ::= { traceRouteGroups 6 }
-
- traceRouteHistoryGroup OBJECT-GROUP
-   OBJECTS {
-             traceRouteProbeHistoryHAddrType,
-             traceRouteProbeHistoryHAddr,
-             traceRouteProbeHistoryResponse,
-             traceRouteProbeHistoryStatus,
-             traceRouteProbeHistoryLastRC,
-             traceRouteProbeHistoryTime
-           }
-   STATUS  current
-   DESCRIPTION
-       "The group of objects that constitute the history
-       capability."
-    ::= { traceRouteGroups 7 }
-
- traceRouteNotificationsGroup NOTIFICATION-GROUP
-   NOTIFICATIONS {
-             traceRoutePathChange,
-             traceRouteTestFailed,
-             traceRouteTestCompleted
-          }
-   STATUS   current
-   DESCRIPTION
-       "The notifications that are required to be supported by
-       implementations of this MIB."
-   ::= { traceRouteGroups 3 }
-
- traceRouteHopsTableGroup OBJECT-GROUP
-   OBJECTS {
-             traceRouteHopsIpTgtAddressType,
-             traceRouteHopsIpTgtAddress,
-             traceRouteHopsMinRtt,
-             traceRouteHopsMaxRtt,
-             traceRouteHopsAverageRtt,
-             traceRouteHopsRttSumOfSquares,
-             traceRouteHopsSentProbes,
-             traceRouteHopsProbeResponses,
-             traceRouteHopsLastGoodProbe
-           }
-    STATUS   current
-    DESCRIPTION
-        "The group of objects that constitute the
-        traceRouteHopsTable."
-  ::= { traceRouteGroups 4 }
-
- traceRouteGroup OBJECT-GROUP
-   OBJECTS {
-             traceRouteMaxConcurrentRequests,
-             traceRouteCtlTargetAddressType,
-             traceRouteCtlTargetAddress,
-             traceRouteCtlByPassRouteTable,
-             traceRouteCtlDataSize,
-             traceRouteCtlTimeOut,
-             traceRouteCtlProbesPerHop,
-             traceRouteCtlPort,
-             traceRouteCtlMaxTtl,
-             traceRouteCtlDSField,
-             traceRouteCtlSourceAddressType,
-             traceRouteCtlSourceAddress,
-             traceRouteCtlIfIndex,
-             traceRouteCtlMiscOptions,
-             traceRouteCtlMaxFailures,
-             traceRouteCtlDontFragment,
-             traceRouteCtlInitialTtl,
-             traceRouteCtlFrequency,
-             traceRouteCtlStorageType,
-             traceRouteCtlAdminStatus,
-             traceRouteCtlMaxRows,
-             traceRouteCtlTrapGeneration,
-             traceRouteCtlDescr,
-             traceRouteCtlCreateHopsEntries,
-             traceRouteCtlType,
-             traceRouteCtlRowStatus,
-             traceRouteResultsOperStatus,
-             traceRouteResultsCurHopCount,
-             traceRouteResultsCurProbeCount,
-             traceRouteResultsIpTgtAddrType,
-             traceRouteResultsIpTgtAddr,
-             traceRouteResultsTestAttempts,
-             traceRouteResultsTestSuccesses,
-             traceRouteProbeHistoryHAddrType,
-             traceRouteProbeHistoryHAddr,
-             traceRouteProbeHistoryResponse,
-             traceRouteProbeHistoryStatus,
-             traceRouteProbeHistoryLastRC
-          }
-   STATUS  deprecated
-   DESCRIPTION
-       "The group of objects that constitute the remote traceroute
-       operation."
-   ::= { traceRouteGroups 1 }
-
- traceRouteTimeStampGroup OBJECT-GROUP
-   OBJECTS {
-             traceRouteResultsLastGoodPath,
-             traceRouteProbeHistoryTime
-           }
-   STATUS  deprecated
-   DESCRIPTION
-       "The group of DateAndTime objects."
-    ::= { traceRouteGroups 2 }
-
-END
diff --git a/mibs/EtherLike-MIB.txt b/mibs/EtherLike-MIB.txt
deleted file mode 100644
index dcec7ce..0000000
--- a/mibs/EtherLike-MIB.txt
+++ /dev/null
@@ -1,1862 +0,0 @@
-EtherLike-MIB DEFINITIONS ::= BEGIN
-
-    IMPORTS
-        MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
-        Integer32, Counter32, Counter64, mib-2, transmission
-            FROM SNMPv2-SMI
-        MODULE-COMPLIANCE, OBJECT-GROUP
-            FROM SNMPv2-CONF
-        TruthValue
-            FROM SNMPv2-TC
-        ifIndex, InterfaceIndex
-            FROM IF-MIB;
-
-    etherMIB MODULE-IDENTITY
-        LAST-UPDATED "200309190000Z"  -- September 19, 2003
-        ORGANIZATION "IETF Ethernet Interfaces and Hub MIB
-                     Working Group"
-        CONTACT-INFO
-            "WG E-mail: hubmib at ietf.org
-          To subscribe: hubmib-request at ietf.org
-
-                 Chair: Dan Romascanu
-                Postal: Avaya Inc.
-                        Atidum Technology Park, Bldg. 3
-                        Tel Aviv 61131
-                        Israel
-                   Tel: +972 3 645 8414
-                E-mail: dromasca at avaya.com
-
-               Editor: John Flick
-               Postal: Hewlett-Packard Company
-                       8000 Foothills Blvd. M/S 5557
-                       Roseville, CA 95747-5557
-                       USA
-                  Tel: +1 916 785 4018
-                  Fax: +1 916 785 1199
-               E-mail: johnf at rose.hp.com"
-        DESCRIPTION "The MIB module to describe generic objects for
-                    ethernet-like network interfaces.
-
-                    The following reference is used throughout this
-                    MIB module:
-
-                    [IEEE 802.3 Std] refers to:
-                       IEEE Std 802.3, 2002 Edition: 'IEEE Standard
-
-                       for Information technology -
-                       Telecommunications and information exchange
-                       between systems - Local and metropolitan
-                       area networks - Specific requirements -
-                       Part 3: Carrier sense multiple access with
-                       collision detection (CSMA/CD) access method
-                       and physical layer specifications', as
-                       amended by IEEE Std 802.3ae-2002:
-                       'Amendment: Media Access Control (MAC)
-                       Parameters, Physical Layer, and Management
-                       Parameters for 10 Gb/s Operation', August,
-                       2002.
-
-                    Of particular interest is Clause 30, '10 Mb/s,
-                    100 Mb/s, 1000 Mb/s, and 10 Gb/s Management'.
-
-                    Copyright (C) The Internet Society (2003).  This
-                    version of this MIB module is part of RFC 3635;
-                    see the RFC itself for full legal notices."
-
-        REVISION    "200309190000Z"  -- September 19, 2003
-        DESCRIPTION "Updated to include support for 10 Gb/sec
-                     interfaces.  This resulted in the following
-                     revisions:
-
-                     - Updated dot3StatsAlignmentErrors and
-                       dot3StatsSymbolErrors DESCRIPTIONs to
-                       reflect behaviour at 10 Gb/s
-                     - Added dot3StatsRateControlAbility and
-                       dot3RateControlStatus for management
-                       of the Rate Control function in 10 Gb/s
-                       WAN applications
-                     - Added 64-bit versions of all counters
-                       that are used on high-speed ethernet
-                       interfaces
-                     - Added object groups to contain the new
-                       objects
-                     - Deprecated etherStatsBaseGroup and
-                       split into etherStatsBaseGroup2 and
-                       etherStatsHalfDuplexGroup, so that
-                       interfaces which can only operate at
-                       full-duplex do not need to implement
-                       half-duplex-only statistics
-                     - Deprecated dot3Compliance and replaced
-                       it with dot3Compliance2, which includes
-                       the compliance information for the new
-                       object groups
-
-                     In addition, the dot3Tests and dot3Errors
-                     object identities have been deprecated,
-                     since there is no longer a standard method
-                     for using them.
-
-                     This version published as RFC 3635."
-
-        REVISION    "199908240400Z"  -- August 24, 1999
-        DESCRIPTION "Updated to include support for 1000 Mb/sec
-                     interfaces and full-duplex interfaces.
-                     This version published as RFC 2665."
-
-        REVISION    "199806032150Z"  -- June 3, 1998
-        DESCRIPTION "Updated to include support for 100 Mb/sec
-                     interfaces.
-                     This version published as RFC 2358."
-
-        REVISION    "199402030400Z"  -- February 3, 1994
-        DESCRIPTION "Initial version, published as RFC 1650."
-        ::= { mib-2 35 }
-
-    etherMIBObjects OBJECT IDENTIFIER ::= { etherMIB 1 }
-
-    dot3    OBJECT IDENTIFIER ::= { transmission 7 }
-
-    -- the Ethernet-like Statistics group
-
-    dot3StatsTable OBJECT-TYPE
-        SYNTAX     SEQUENCE OF Dot3StatsEntry
-        MAX-ACCESS not-accessible
-        STATUS     current
-        DESCRIPTION "Statistics for a collection of ethernet-like
-                    interfaces attached to a particular system.
-                    There will be one row in this table for each
-                    ethernet-like interface in the system."
-        ::= { dot3 2 }
-
-    dot3StatsEntry OBJECT-TYPE
-        SYNTAX     Dot3StatsEntry
-        MAX-ACCESS not-accessible
-        STATUS     current
-        DESCRIPTION "Statistics for a particular interface to an
-                    ethernet-like medium."
-        INDEX       { dot3StatsIndex }
-        ::= { dot3StatsTable 1 }
-
-    Dot3StatsEntry ::=
-        SEQUENCE {
-
-            dot3StatsIndex                      InterfaceIndex,
-            dot3StatsAlignmentErrors            Counter32,
-            dot3StatsFCSErrors                  Counter32,
-            dot3StatsSingleCollisionFrames      Counter32,
-            dot3StatsMultipleCollisionFrames    Counter32,
-            dot3StatsSQETestErrors              Counter32,
-            dot3StatsDeferredTransmissions      Counter32,
-            dot3StatsLateCollisions             Counter32,
-            dot3StatsExcessiveCollisions        Counter32,
-            dot3StatsInternalMacTransmitErrors  Counter32,
-            dot3StatsCarrierSenseErrors         Counter32,
-            dot3StatsFrameTooLongs              Counter32,
-            dot3StatsInternalMacReceiveErrors   Counter32,
-            dot3StatsEtherChipSet               OBJECT IDENTIFIER,
-            dot3StatsSymbolErrors               Counter32,
-            dot3StatsDuplexStatus               INTEGER,
-            dot3StatsRateControlAbility         TruthValue,
-            dot3StatsRateControlStatus          INTEGER
-        }
-
-    dot3StatsIndex OBJECT-TYPE
-        SYNTAX      InterfaceIndex
-        MAX-ACCESS  read-only  -- read-only since originally an
-                               -- SMIv1 index
-        STATUS      current
-        DESCRIPTION "An index value that uniquely identifies an
-                    interface to an ethernet-like medium.  The
-                    interface identified by a particular value of
-                    this index is the same interface as identified
-                    by the same value of ifIndex."
-        REFERENCE   "RFC 2863, ifIndex"
-        ::= { dot3StatsEntry 1 }
-
-    dot3StatsAlignmentErrors OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames received on a particular
-                    interface that are not an integral number of
-                    octets in length and do not pass the FCS check.
-
-                    The count represented by an instance of this
-                    object is incremented when the alignmentError
-                    status is returned by the MAC service to the
-                    LLC (or other MAC user). Received frames for
-                    which multiple error conditions pertain are,
-                    according to the conventions of IEEE 802.3
-                    Layer Management, counted exclusively according
-
-                    to the error status presented to the LLC.
-
-                    This counter does not increment for group
-                    encoding schemes greater than 4 bits per group.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 5 minutes if
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCStatsAlignmentErrors object for 10 Gb/s
-                    or faster interfaces.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.7,
-                    aAlignmentErrors"
-        ::= { dot3StatsEntry 2 }
-
-    dot3StatsFCSErrors OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames received on a particular
-                    interface that are an integral number of octets
-                    in length but do not pass the FCS check.  This
-                    count does not include frames received with
-                    frame-too-long or frame-too-short error.
-
-                    The count represented by an instance of this
-                    object is incremented when the frameCheckError
-                    status is returned by the MAC service to the
-                    LLC (or other MAC user). Received frames for
-                    which multiple error conditions pertain are,
-                    according to the conventions of IEEE 802.3
-                    Layer Management, counted exclusively according
-                    to the error status presented to the LLC.
-
-                    Note:  Coding errors detected by the physical
-                    layer for speeds above 10 Mb/s will cause the
-                    frame to fail the FCS check.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 5 minutes if
-
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCStatsFCSErrors object for 10 Gb/s or
-                    faster interfaces.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.6,
-                    aFrameCheckSequenceErrors."
-        ::= { dot3StatsEntry 3 }
-
-    dot3StatsSingleCollisionFrames OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames that are involved in a single
-                    collision, and are subsequently transmitted
-                    successfully.
-
-                    A frame that is counted by an instance of this
-                    object is also counted by the corresponding
-                    instance of either the ifOutUcastPkts,
-                    ifOutMulticastPkts, or ifOutBroadcastPkts,
-                    and is not counted by the corresponding
-                    instance of the dot3StatsMultipleCollisionFrames
-                    object.
-
-                    This counter does not increment when the
-                    interface is operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.3,
-                    aSingleCollisionFrames."
-        ::= { dot3StatsEntry 4 }
-
-    dot3StatsMultipleCollisionFrames OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames that are involved in more
-
-                    than one collision and are subsequently
-                    transmitted successfully.
-
-                    A frame that is counted by an instance of this
-                    object is also counted by the corresponding
-                    instance of either the ifOutUcastPkts,
-                    ifOutMulticastPkts, or ifOutBroadcastPkts,
-                    and is not counted by the corresponding
-                    instance of the dot3StatsSingleCollisionFrames
-                    object.
-
-                    This counter does not increment when the
-                    interface is operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.4,
-                    aMultipleCollisionFrames."
-        ::= { dot3StatsEntry 5 }
-
-    dot3StatsSQETestErrors OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of times that the SQE TEST ERROR
-                    is received on a particular interface. The
-                    SQE TEST ERROR is set in accordance with the
-                    rules for verification of the SQE detection
-                    mechanism in the PLS Carrier Sense Function as
-                    described in IEEE Std. 802.3, 2000 Edition,
-                    section 7.2.4.6.
-
-                    This counter does not increment on interfaces
-                    operating at speeds greater than 10 Mb/s, or on
-                    interfaces operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 7.2.4.6, also 30.3.2.1.4,
-                    aSQETestErrors."
-        ::= { dot3StatsEntry 6 }
-
-    dot3StatsDeferredTransmissions OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames for which the first
-                    transmission attempt on a particular interface
-                    is delayed because the medium is busy.
-
-                    The count represented by an instance of this
-                    object does not include frames involved in
-                    collisions.
-
-                    This counter does not increment when the
-                    interface is operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.9,
-                    aFramesWithDeferredXmissions."
-        ::= { dot3StatsEntry 7 }
-
-    dot3StatsLateCollisions OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "The number of times that a collision is
-                    detected on a particular interface later than
-                    one slotTime into the transmission of a packet.
-
-                    A (late) collision included in a count
-                    represented by an instance of this object is
-                    also considered as a (generic) collision for
-                    purposes of other collision-related
-                    statistics.
-
-                    This counter does not increment when the
-                    interface is operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.10,
-                    aLateCollisions."
-        ::= { dot3StatsEntry 8 }
-
-    dot3StatsExcessiveCollisions OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames for which transmission on a
-                    particular interface fails due to excessive
-                    collisions.
-
-                    This counter does not increment when the
-                    interface is operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.11,
-                    aFramesAbortedDueToXSColls."
-        ::= { dot3StatsEntry 9 }
-
-    dot3StatsInternalMacTransmitErrors OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames for which transmission on a
-                    particular interface fails due to an internal
-                    MAC sublayer transmit error. A frame is only
-                    counted by an instance of this object if it is
-                    not counted by the corresponding instance of
-                    either the dot3StatsLateCollisions object, the
-                    dot3StatsExcessiveCollisions object, or the
-                    dot3StatsCarrierSenseErrors object.
-
-                    The precise meaning of the count represented by
-                    an instance of this object is implementation-
-                    specific.  In particular, an instance of this
-                    object may represent a count of transmission
-                    errors on a particular interface that are not
-                    otherwise counted.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 5 minutes if
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCStatsInternalMacTransmitErrors object for
-                    10 Gb/s or faster interfaces.
-
-                    Discontinuities in the value of this counter can
-
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.12,
-                    aFramesLostDueToIntMACXmitError."
-        ::= { dot3StatsEntry 10 }
-
-    dot3StatsCarrierSenseErrors OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "The number of times that the carrier sense
-                    condition was lost or never asserted when
-                    attempting to transmit a frame on a particular
-                    interface.
-
-                    The count represented by an instance of this
-                    object is incremented at most once per
-                    transmission attempt, even if the carrier sense
-                    condition fluctuates during a transmission
-                    attempt.
-
-                    This counter does not increment when the
-                    interface is operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.13,
-                    aCarrierSenseErrors."
-        ::= { dot3StatsEntry 11 }
-
-    -- { dot3StatsEntry 12 } is not assigned
-
-    dot3StatsFrameTooLongs OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames received on a particular
-                    interface that exceed the maximum permitted
-                    frame size.
-
-                    The count represented by an instance of this
-                    object is incremented when the frameTooLong
-                    status is returned by the MAC service to the
-                    LLC (or other MAC user). Received frames for
-                    which multiple error conditions pertain are,
-                    according to the conventions of IEEE 802.3
-                    Layer Management, counted exclusively according
-                    to the error status presented to the LLC.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 80 minutes if
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCStatsFrameTooLongs object for 10 Gb/s
-                    or faster interfaces.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.25,
-                    aFrameTooLongErrors."
-        ::= { dot3StatsEntry 13 }
-
-    -- { dot3StatsEntry 14 } is not assigned
-
-    -- { dot3StatsEntry 15 } is not assigned
-
-    dot3StatsInternalMacReceiveErrors OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames for which reception on a
-                    particular interface fails due to an internal
-                    MAC sublayer receive error. A frame is only
-                    counted by an instance of this object if it is
-                    not counted by the corresponding instance of
-                    either the dot3StatsFrameTooLongs object, the
-                    dot3StatsAlignmentErrors object, or the
-                    dot3StatsFCSErrors object.
-
-                    The precise meaning of the count represented by
-                    an instance of this object is implementation-
-                    specific.  In particular, an instance of this
-                    object may represent a count of receive errors
-                    on a particular interface that are not
-                    otherwise counted.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 5 minutes if
-
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCStatsInternalMacReceiveErrors object for
-                    10 Gb/s or faster interfaces.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.15,
-                    aFramesLostDueToIntMACRcvError."
-        ::= { dot3StatsEntry 16 }
-
-    dot3StatsEtherChipSet OBJECT-TYPE
-        SYNTAX      OBJECT IDENTIFIER
-        MAX-ACCESS  read-only
-        STATUS      deprecated
-        DESCRIPTION "******** THIS OBJECT IS DEPRECATED ********
-
-                    This object contains an OBJECT IDENTIFIER
-                    which identifies the chipset used to
-                    realize the interface. Ethernet-like
-                    interfaces are typically built out of
-                    several different chips. The MIB implementor
-                    is presented with a decision of which chip
-                    to identify via this object. The implementor
-                    should identify the chip which is usually
-                    called the Medium Access Control chip.
-                    If no such chip is easily identifiable,
-                    the implementor should identify the chip
-                    which actually gathers the transmit
-                    and receive statistics and error
-                    indications. This would allow a
-                    manager station to correlate the
-                    statistics and the chip generating
-                    them, giving it the ability to take
-                    into account any known anomalies
-                    in the chip.
-
-                    This object has been deprecated.  Implementation
-                    feedback indicates that it is of limited use for
-                    debugging network problems in the field, and
-                    the administrative overhead involved in
-                    maintaining a registry of chipset OIDs is not
-                    justified."
-        ::= { dot3StatsEntry 17 }
-
-    dot3StatsSymbolErrors OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "For an interface operating at 100 Mb/s, the
-                    number of times there was an invalid data symbol
-                    when a valid carrier was present.
-
-                    For an interface operating in half-duplex mode
-                    at 1000 Mb/s, the number of times the receiving
-                    media is non-idle (a carrier event) for a period
-                    of time equal to or greater than slotTime, and
-                    during which there was at least one occurrence
-                    of an event that causes the PHY to indicate
-                    'Data reception error' or 'carrier extend error'
-                    on the GMII.
-
-                    For an interface operating in full-duplex mode
-                    at 1000 Mb/s, the number of times the receiving
-                    media is non-idle (a carrier event) for a period
-                    of time equal to or greater than minFrameSize,
-                    and during which there was at least one
-                    occurrence of an event that causes the PHY to
-                    indicate 'Data reception error' on the GMII.
-
-                    For an interface operating at 10 Gb/s, the
-                    number of times the receiving media is non-idle
-                    (a carrier event) for a period of time equal to
-                    or greater than minFrameSize, and during which
-                    there was at least one occurrence of an event
-                    that causes the PHY to indicate 'Receive Error'
-                    on the XGMII.
-
-                    The count represented by an instance of this
-                    object is incremented at most once per carrier
-                    event, even if multiple symbol errors occur
-                    during the carrier event.  This count does
-                    not increment if a collision is present.
-
-                    This counter does not increment when the
-                    interface is operating at 10 Mb/s.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 5 minutes if
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCStatsSymbolErrors object for 10 Gb/s
-                    or faster interfaces.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.2.1.5,
-                    aSymbolErrorDuringCarrier."
-        ::= { dot3StatsEntry 18 }
-
-    dot3StatsDuplexStatus OBJECT-TYPE
-        SYNTAX      INTEGER {
-                        unknown(1),
-                        halfDuplex(2),
-                        fullDuplex(3)
-                    }
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "The current mode of operation of the MAC
-                    entity.  'unknown' indicates that the current
-                    duplex mode could not be determined.
-
-                    Management control of the duplex mode is
-                    accomplished through the MAU MIB.  When
-                    an interface does not support autonegotiation,
-                    or when autonegotiation is not enabled, the
-                    duplex mode is controlled using
-                    ifMauDefaultType.  When autonegotiation is
-                    supported and enabled, duplex mode is controlled
-                    using ifMauAutoNegAdvertisedBits.  In either
-                    case, the currently operating duplex mode is
-                    reflected both in this object and in ifMauType.
-
-                    Note that this object provides redundant
-                    information with ifMauType.  Normally, redundant
-                    objects are discouraged.  However, in this
-                    instance, it allows a management application to
-                    determine the duplex status of an interface
-                    without having to know every possible value of
-                    ifMauType.  This was felt to be sufficiently
-                    valuable to justify the redundancy."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.32,
-                    aDuplexStatus."
-        ::= { dot3StatsEntry 19 }
-
-    dot3StatsRateControlAbility OBJECT-TYPE
-        SYNTAX      TruthValue
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "'true' for interfaces operating at speeds above
-                    1000 Mb/s that support Rate Control through
-                    lowering the average data rate of the MAC
-                    sublayer, with frame granularity, and 'false'
-                    otherwise."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.33,
-                    aRateControlAbility."
-        ::= { dot3StatsEntry 20 }
-
-    dot3StatsRateControlStatus OBJECT-TYPE
-        SYNTAX      INTEGER {
-                        rateControlOff(1),
-                        rateControlOn(2),
-                        unknown(3)
-                    }
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "The current Rate Control mode of operation of
-                    the MAC sublayer of this interface."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.34,
-                    aRateControlStatus."
-        ::= { dot3StatsEntry 21 }
-
-    -- the Ethernet-like Collision Statistics group
-
-    -- Implementation of this group is optional; it is appropriate
-    -- for all systems which have the necessary metering
-
-    dot3CollTable OBJECT-TYPE
-        SYNTAX      SEQUENCE OF Dot3CollEntry
-        MAX-ACCESS  not-accessible
-        STATUS      current
-        DESCRIPTION "A collection of collision histograms for a
-                    particular set of interfaces."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.30,
-                    aCollisionFrames."
-        ::= { dot3 5 }
-
-    dot3CollEntry OBJECT-TYPE
-        SYNTAX      Dot3CollEntry
-        MAX-ACCESS  not-accessible
-        STATUS      current
-        DESCRIPTION "A cell in the histogram of per-frame
-                    collisions for a particular interface.  An
-
-                    instance of this object represents the
-                    frequency of individual MAC frames for which
-                    the transmission (successful or otherwise) on a
-                    particular interface is accompanied by a
-                    particular number of media collisions."
-        INDEX       { ifIndex, dot3CollCount }
-        ::= { dot3CollTable 1 }
-
-    Dot3CollEntry ::=
-        SEQUENCE {
-            dot3CollCount        Integer32,
-            dot3CollFrequencies  Counter32
-        }
-
-    -- { dot3CollEntry 1 } is no longer in use
-
-    dot3CollCount OBJECT-TYPE
-        SYNTAX      Integer32 (1..16)
-        MAX-ACCESS  not-accessible
-        STATUS      current
-        DESCRIPTION "The number of per-frame media collisions for
-                    which a particular collision histogram cell
-                    represents the frequency on a particular
-                    interface."
-        ::= { dot3CollEntry 2 }
-
-    dot3CollFrequencies OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of individual MAC frames for which the
-                    transmission (successful or otherwise) on a
-                    particular interface occurs after the
-                    frame has experienced exactly the number
-                    of collisions in the associated
-                    dot3CollCount object.
-
-                    For example, a frame which is transmitted
-                    on interface 77 after experiencing
-                    exactly 4 collisions would be indicated
-                    by incrementing only dot3CollFrequencies.77.4.
-                    No other instance of dot3CollFrequencies would
-                    be incremented in this example.
-
-                    This counter does not increment when the
-                    interface is operating in full-duplex mode.
-
-                    Discontinuities in the value of this counter can
-
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        ::= { dot3CollEntry 3 }
-
-    dot3ControlTable OBJECT-TYPE
-        SYNTAX      SEQUENCE OF Dot3ControlEntry
-        MAX-ACCESS  not-accessible
-        STATUS      current
-        DESCRIPTION "A table of descriptive and status information
-                    about the MAC Control sublayer on the
-                    ethernet-like interfaces attached to a
-                    particular system.  There will be one row in
-                    this table for each ethernet-like interface in
-                    the system which implements the MAC Control
-                    sublayer.  If some, but not all, of the
-                    ethernet-like interfaces in the system implement
-                    the MAC Control sublayer, there will be fewer
-                    rows in this table than in the dot3StatsTable."
-        ::= { dot3 9 }
-
-    dot3ControlEntry OBJECT-TYPE
-        SYNTAX      Dot3ControlEntry
-        MAX-ACCESS  not-accessible
-        STATUS      current
-        DESCRIPTION "An entry in the table, containing information
-                    about the MAC Control sublayer on a single
-                    ethernet-like interface."
-        INDEX       { dot3StatsIndex }
-        ::= { dot3ControlTable 1 }
-
-    Dot3ControlEntry ::=
-        SEQUENCE {
-            dot3ControlFunctionsSupported       BITS,
-            dot3ControlInUnknownOpcodes         Counter32,
-            dot3HCControlInUnknownOpcodes       Counter64
-        }
-
-    dot3ControlFunctionsSupported OBJECT-TYPE
-        SYNTAX      BITS {
-                        pause(0)   -- 802.3 flow control
-                    }
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A list of the possible MAC Control functions
-                    implemented for this interface."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.3.2,
-                    aMACControlFunctionsSupported."
-        ::= { dot3ControlEntry 1 }
-
-    dot3ControlInUnknownOpcodes OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of MAC Control frames received on this
-                    interface that contain an opcode that is not
-                    supported by this device.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 5 minutes if
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCControlInUnknownOpcodes object for 10 Gb/s
-                    or faster interfaces.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.3.5,
-                    aUnsupportedOpcodesReceived"
-        ::= { dot3ControlEntry 2 }
-
-    dot3HCControlInUnknownOpcodes OBJECT-TYPE
-        SYNTAX      Counter64
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of MAC Control frames received on this
-                    interface that contain an opcode that is not
-                    supported by this device.
-
-                    This counter is a 64 bit version of
-                    dot3ControlInUnknownOpcodes.  It should be used
-                    on interfaces operating at 10 Gb/s or faster.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.3.5,
-                    aUnsupportedOpcodesReceived"
-        ::= { dot3ControlEntry 3 }
-
-    dot3PauseTable OBJECT-TYPE
-        SYNTAX      SEQUENCE OF Dot3PauseEntry
-        MAX-ACCESS  not-accessible
-        STATUS      current
-        DESCRIPTION "A table of descriptive and status information
-                    about the MAC Control PAUSE function on the
-                    ethernet-like interfaces attached to a
-                    particular system. There will be one row in
-                    this table for each ethernet-like interface in
-                    the system which supports the MAC Control PAUSE
-                    function (i.e., the 'pause' bit in the
-                    corresponding instance of
-                    dot3ControlFunctionsSupported is set).  If some,
-                    but not all, of the ethernet-like interfaces in
-                    the system implement the MAC Control PAUSE
-                    function (for example, if some interfaces only
-                    support half-duplex), there will be fewer rows
-                    in this table than in the dot3StatsTable."
-        ::= { dot3 10 }
-
-    dot3PauseEntry OBJECT-TYPE
-        SYNTAX      Dot3PauseEntry
-        MAX-ACCESS  not-accessible
-        STATUS      current
-        DESCRIPTION "An entry in the table, containing information
-                    about the MAC Control PAUSE function on a single
-                    ethernet-like interface."
-        INDEX       { dot3StatsIndex }
-        ::= { dot3PauseTable 1 }
-
-    Dot3PauseEntry ::=
-
-        SEQUENCE {
-            dot3PauseAdminMode                  INTEGER,
-            dot3PauseOperMode                   INTEGER,
-            dot3InPauseFrames                   Counter32,
-            dot3OutPauseFrames                  Counter32,
-            dot3HCInPauseFrames                 Counter64,
-            dot3HCOutPauseFrames                Counter64
-        }
-
-    dot3PauseAdminMode OBJECT-TYPE
-        SYNTAX      INTEGER {
-                        disabled(1),
-                        enabledXmit(2),
-                        enabledRcv(3),
-                        enabledXmitAndRcv(4)
-                    }
-        MAX-ACCESS  read-write
-        STATUS      current
-        DESCRIPTION "This object is used to configure the default
-                    administrative PAUSE mode for this interface.
-
-                    This object represents the
-                    administratively-configured PAUSE mode for this
-                    interface.  If auto-negotiation is not enabled
-                    or is not implemented for the active MAU
-                    attached to this interface, the value of this
-                    object determines the operational PAUSE mode
-                    of the interface whenever it is operating in
-                    full-duplex mode.  In this case, a set to this
-                    object will force the interface into the
-                    specified mode.
-
-                    If auto-negotiation is implemented and enabled
-                    for the MAU attached to this interface, the
-                    PAUSE mode for this interface is determined by
-                    auto-negotiation, and the value of this object
-                    denotes the mode to which the interface will
-                    automatically revert if/when auto-negotiation is
-                    later disabled.  Note that when auto-negotiation
-                    is running, administrative control of the PAUSE
-                    mode may be accomplished using the
-                    ifMauAutoNegCapAdvertisedBits object in the
-                    MAU-MIB.
-
-                    Note that the value of this object is ignored
-                    when the interface is not operating in
-                    full-duplex mode.
-
-                    An attempt to set this object to
-                    'enabledXmit(2)' or 'enabledRcv(3)' will fail
-                    on interfaces that do not support operation
-                    at greater than 100 Mb/s."
-        ::= { dot3PauseEntry 1 }
-
-    dot3PauseOperMode OBJECT-TYPE
-        SYNTAX      INTEGER {
-                        disabled(1),
-                        enabledXmit(2),
-                        enabledRcv(3),
-                        enabledXmitAndRcv(4)
-                    }
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "This object reflects the PAUSE mode currently
-
-                    in use on this interface, as determined by
-                    either (1) the result of the auto-negotiation
-                    function or (2) if auto-negotiation is not
-                    enabled or is not implemented for the active MAU
-                    attached to this interface, by the value of
-                    dot3PauseAdminMode.  Interfaces operating at
-                    100 Mb/s or less will never return
-                    'enabledXmit(2)' or 'enabledRcv(3)'.  Interfaces
-                    operating in half-duplex mode will always return
-                    'disabled(1)'.  Interfaces on which
-                    auto-negotiation is enabled but not yet
-                    completed should return the value
-                    'disabled(1)'."
-        ::= { dot3PauseEntry 2 }
-
-    dot3InPauseFrames OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of MAC Control frames received on this
-                    interface with an opcode indicating the PAUSE
-                    operation.
-
-                    This counter does not increment when the
-                    interface is operating in half-duplex mode.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 5 minutes if
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCInPauseFrames object for 10 Gb/s or
-                    faster interfaces.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.4.3,
-                    aPAUSEMACCtrlFramesReceived."
-        ::= { dot3PauseEntry 3 }
-
-    dot3OutPauseFrames OBJECT-TYPE
-        SYNTAX      Counter32
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of MAC Control frames transmitted on
-                    this interface with an opcode indicating the
-                    PAUSE operation.
-
-                    This counter does not increment when the
-                    interface is operating in half-duplex mode.
-
-                    For interfaces operating at 10 Gb/s, this
-                    counter can roll over in less than 5 minutes if
-                    it is incrementing at its maximum rate.  Since
-                    that amount of time could be less than a
-                    management station's poll cycle time, in order
-                    to avoid a loss of information, a management
-                    station is advised to poll the
-                    dot3HCOutPauseFrames object for 10 Gb/s or
-                    faster interfaces.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.4.2,
-                    aPAUSEMACCtrlFramesTransmitted."
-        ::= { dot3PauseEntry 4 }
-
-    dot3HCInPauseFrames OBJECT-TYPE
-        SYNTAX      Counter64
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of MAC Control frames received on this
-                    interface with an opcode indicating the PAUSE
-                    operation.
-
-                    This counter does not increment when the
-                    interface is operating in half-duplex mode.
-
-                    This counter is a 64 bit version of
-                    dot3InPauseFrames.  It should be used on
-                    interfaces operating at 10 Gb/s or faster.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.4.3,
-                    aPAUSEMACCtrlFramesReceived."
-        ::= { dot3PauseEntry 5 }
-
-    dot3HCOutPauseFrames OBJECT-TYPE
-        SYNTAX      Counter64
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of MAC Control frames transmitted on
-                    this interface with an opcode indicating the
-                    PAUSE operation.
-
-                    This counter does not increment when the
-                    interface is operating in half-duplex mode.
-
-                    This counter is a 64 bit version of
-                    dot3OutPauseFrames.  It should be used on
-                    interfaces operating at 10 Gb/s or faster.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.4.2,
-                    aPAUSEMACCtrlFramesTransmitted."
-        ::= { dot3PauseEntry 6 }
-
-    dot3HCStatsTable OBJECT-TYPE
-        SYNTAX      SEQUENCE OF Dot3HCStatsEntry
-        MAX-ACCESS  not-accessible
-        STATUS      current
-        DESCRIPTION "A table containing 64-bit versions of error
-                    counters from the dot3StatsTable.  The 32-bit
-                    versions of these counters may roll over quite
-                    quickly on higher speed ethernet interfaces.
-                    The counters that have 64-bit versions in this
-                    table are the counters that apply to full-duplex
-                    interfaces, since 10 Gb/s and faster
-                    ethernet-like interfaces do not support
-                    half-duplex, and very few 1000 Mb/s
-                    ethernet-like interfaces support half-duplex.
-
-                    Entries in this table are recommended for
-                    interfaces capable of operating at 1000 Mb/s or
-                    faster, and are required for interfaces capable
-                    of operating at 10 Gb/s or faster.  Lower speed
-                    ethernet-like interfaces do not need entries in
-                    this table, in which case there may be fewer
-                    entries in this table than in the
-                    dot3StatsTable. However, implementations
-                    containing interfaces with a mix of speeds may
-                    choose to implement entries in this table for
-
-                    all ethernet-like interfaces."
-        ::= { dot3 11 }
-
-    dot3HCStatsEntry OBJECT-TYPE
-        SYNTAX      Dot3HCStatsEntry
-        MAX-ACCESS  not-accessible
-        STATUS      current
-        DESCRIPTION "An entry containing 64-bit statistics for a
-                    single ethernet-like interface."
-        INDEX       { dot3StatsIndex }
-        ::= { dot3HCStatsTable 1 }
-
-    Dot3HCStatsEntry ::=
-        SEQUENCE {
-            dot3HCStatsAlignmentErrors           Counter64,
-            dot3HCStatsFCSErrors                 Counter64,
-            dot3HCStatsInternalMacTransmitErrors Counter64,
-            dot3HCStatsFrameTooLongs             Counter64,
-            dot3HCStatsInternalMacReceiveErrors  Counter64,
-            dot3HCStatsSymbolErrors              Counter64
-        }
-
-    dot3HCStatsAlignmentErrors OBJECT-TYPE
-        SYNTAX      Counter64
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames received on a particular
-                    interface that are not an integral number of
-                    octets in length and do not pass the FCS check.
-
-                    The count represented by an instance of this
-                    object is incremented when the alignmentError
-                    status is returned by the MAC service to the
-                    LLC (or other MAC user). Received frames for
-                    which multiple error conditions pertain are,
-                    according to the conventions of IEEE 802.3
-                    Layer Management, counted exclusively according
-                    to the error status presented to the LLC.
-
-                    This counter does not increment for group
-                    encoding schemes greater than 4 bits per group.
-
-                    This counter is a 64 bit version of
-                    dot3StatsAlignmentErrors.  It should be used
-                    on interfaces operating at 10 Gb/s or faster.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.7,
-                    aAlignmentErrors"
-        ::= { dot3HCStatsEntry 1 }
-
-    dot3HCStatsFCSErrors OBJECT-TYPE
-        SYNTAX      Counter64
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames received on a particular
-                    interface that are an integral number of octets
-                    in length but do not pass the FCS check.  This
-                    count does not include frames received with
-                    frame-too-long or frame-too-short error.
-
-                    The count represented by an instance of this
-                    object is incremented when the frameCheckError
-                    status is returned by the MAC service to the
-                    LLC (or other MAC user). Received frames for
-                    which multiple error conditions pertain are,
-                    according to the conventions of IEEE 802.3
-                    Layer Management, counted exclusively according
-                    to the error status presented to the LLC.
-
-                    Note:  Coding errors detected by the physical
-                    layer for speeds above 10 Mb/s will cause the
-                    frame to fail the FCS check.
-
-                    This counter is a 64 bit version of
-                    dot3StatsFCSErrors.  It should be used on
-                    interfaces operating at 10 Gb/s or faster.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.6,
-                    aFrameCheckSequenceErrors."
-        ::= { dot3HCStatsEntry 2 }
-
-    dot3HCStatsInternalMacTransmitErrors OBJECT-TYPE
-        SYNTAX      Counter64
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames for which transmission on a
-                    particular interface fails due to an internal
-                    MAC sublayer transmit error. A frame is only
-
-                    counted by an instance of this object if it is
-                    not counted by the corresponding instance of
-                    either the dot3StatsLateCollisions object, the
-                    dot3StatsExcessiveCollisions object, or the
-                    dot3StatsCarrierSenseErrors object.
-
-                    The precise meaning of the count represented by
-                    an instance of this object is implementation-
-                    specific.  In particular, an instance of this
-                    object may represent a count of transmission
-                    errors on a particular interface that are not
-                    otherwise counted.
-
-                    This counter is a 64 bit version of
-                    dot3StatsInternalMacTransmitErrors.  It should
-                    be used on interfaces operating at 10 Gb/s or
-                    faster.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.12,
-                    aFramesLostDueToIntMACXmitError."
-        ::= { dot3HCStatsEntry 3 }
-
-    dot3HCStatsFrameTooLongs OBJECT-TYPE
-        SYNTAX      Counter64
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames received on a particular
-                    interface that exceed the maximum permitted
-                    frame size.
-
-                    The count represented by an instance of this
-                    object is incremented when the frameTooLong
-                    status is returned by the MAC service to the
-                    LLC (or other MAC user). Received frames for
-                    which multiple error conditions pertain are,
-                    according to the conventions of IEEE 802.3
-                    Layer Management, counted exclusively according
-                    to the error status presented to the LLC.
-
-                    This counter is a 64 bit version of
-                    dot3StatsFrameTooLongs.  It should be used on
-                    interfaces operating at 10 Gb/s or faster.
-
-                    Discontinuities in the value of this counter can
-
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.25,
-                    aFrameTooLongErrors."
-        ::= { dot3HCStatsEntry 4 }
-
-    dot3HCStatsInternalMacReceiveErrors OBJECT-TYPE
-        SYNTAX      Counter64
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "A count of frames for which reception on a
-                    particular interface fails due to an internal
-                    MAC sublayer receive error. A frame is only
-                    counted by an instance of this object if it is
-                    not counted by the corresponding instance of
-                    either the dot3StatsFrameTooLongs object, the
-                    dot3StatsAlignmentErrors object, or the
-                    dot3StatsFCSErrors object.
-
-                    The precise meaning of the count represented by
-                    an instance of this object is implementation-
-                    specific.  In particular, an instance of this
-                    object may represent a count of receive errors
-                    on a particular interface that are not
-                    otherwise counted.
-
-                    This counter is a 64 bit version of
-                    dot3StatsInternalMacReceiveErrors.  It should be
-                    used on interfaces operating at 10 Gb/s or
-                    faster.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.1.1.15,
-                    aFramesLostDueToIntMACRcvError."
-        ::= { dot3HCStatsEntry 5 }
-
-    dot3HCStatsSymbolErrors OBJECT-TYPE
-        SYNTAX      Counter64
-        MAX-ACCESS  read-only
-        STATUS      current
-        DESCRIPTION "For an interface operating at 100 Mb/s, the
-                    number of times there was an invalid data symbol
-                    when a valid carrier was present.
-
-                    For an interface operating in half-duplex mode
-                    at 1000 Mb/s, the number of times the receiving
-                    media is non-idle (a carrier event) for a period
-                    of time equal to or greater than slotTime, and
-                    during which there was at least one occurrence
-                    of an event that causes the PHY to indicate
-                    'Data reception error' or 'carrier extend error'
-                    on the GMII.
-
-                    For an interface operating in full-duplex mode
-                    at 1000 Mb/s, the number of times the receiving
-                    media is non-idle (a carrier event) for a period
-                    of time equal to or greater than minFrameSize,
-                    and during which there was at least one
-                    occurrence of an event that causes the PHY to
-                    indicate 'Data reception error' on the GMII.
-
-                    For an interface operating at 10 Gb/s, the
-                    number of times the receiving media is non-idle
-                    (a carrier event) for a period of time equal to
-                    or greater than minFrameSize, and during which
-                    there was at least one occurrence of an event
-                    that causes the PHY to indicate 'Receive Error'
-                    on the XGMII.
-
-                    The count represented by an instance of this
-                    object is incremented at most once per carrier
-                    event, even if multiple symbol errors occur
-                    during the carrier event.  This count does
-                    not increment if a collision is present.
-
-                    This counter is a 64 bit version of
-                    dot3StatsSymbolErrors.  It should be used on
-                    interfaces operating at 10 Gb/s or faster.
-
-                    Discontinuities in the value of this counter can
-                    occur at re-initialization of the management
-                    system, and at other times as indicated by the
-                    value of ifCounterDiscontinuityTime."
-        REFERENCE   "[IEEE 802.3 Std.], 30.3.2.1.5,
-                    aSymbolErrorDuringCarrier."
-        ::= { dot3HCStatsEntry 6 }
-
-    --  802.3 Tests
-
-    dot3Tests   OBJECT IDENTIFIER ::= { dot3 6 }
-
-    dot3Errors  OBJECT IDENTIFIER ::= { dot3 7 }
-
-    --  TDR Test
-
-    dot3TestTdr OBJECT-IDENTITY
-        STATUS      deprecated
-        DESCRIPTION "******** THIS IDENTITY IS DEPRECATED *******
-
-                    The Time-Domain Reflectometry (TDR) test is
-                    specific to ethernet-like interfaces of type
-                    10Base5 and 10Base2.  The TDR value may be
-                    useful in determining the approximate distance
-                    to a cable fault.  It is advisable to repeat
-                    this test to check for a consistent resulting
-                    TDR value, to verify that there is a fault.
-
-                    A TDR test returns as its result the time
-                    interval, measured in 10 MHz ticks or 100 nsec
-                    units, between the start of TDR test
-                    transmission and the subsequent detection of a
-                    collision or deassertion of carrier.  On
-                    successful completion of a TDR test, the result
-                    is stored as the value of an appropriate
-                    instance of an appropriate vendor specific MIB
-                    object, and the OBJECT IDENTIFIER of that
-                    instance is stored in the appropriate instance
-                    of the appropriate test result code object
-                    (thereby indicating where the result has been
-                    stored).
-
-                    This object identity has been deprecated, since
-                    the ifTestTable in the IF-MIB was deprecated,
-                    and there is no longer a standard mechanism for
-                    initiating an interface test.  This left no
-                    standard way of using this object identity."
-        ::= { dot3Tests 1 }
-
-    -- Loopback Test
-
-    dot3TestLoopBack OBJECT-IDENTITY
-        STATUS      deprecated
-        DESCRIPTION "******** THIS IDENTITY IS DEPRECATED *******
-
-                    This test configures the MAC chip and executes
-                    an internal loopback test of memory, data paths,
-                    and the MAC chip logic.  This loopback test can
-                    only be executed if the interface is offline.
-                    Once the test has completed, the MAC chip should
-
-                    be reinitialized for network operation, but it
-                    should remain offline.
-
-                    If an error occurs during a test, the
-                    appropriate test result object will be set
-                    to indicate a failure.  The two OBJECT
-                    IDENTIFIER values dot3ErrorInitError and
-                    dot3ErrorLoopbackError may be used to provided
-                    more information as values for an appropriate
-                    test result code object.
-
-                    This object identity has been deprecated, since
-                    the ifTestTable in the IF-MIB was deprecated,
-                    and there is no longer a standard mechanism for
-                    initiating an interface test.  This left no
-                    standard way of using this object identity."
-        ::= { dot3Tests 2 }
-
-    dot3ErrorInitError OBJECT-IDENTITY
-        STATUS      deprecated
-        DESCRIPTION "******** THIS IDENTITY IS DEPRECATED *******
-
-                    Couldn't initialize MAC chip for test.
-
-                    This object identity has been deprecated, since
-                    the ifTestTable in the IF-MIB was deprecated,
-                    and there is no longer a standard mechanism for
-                    initiating an interface test.  This left no
-                    standard way of using this object identity."
-        ::= { dot3Errors 1 }
-
-    dot3ErrorLoopbackError OBJECT-IDENTITY
-        STATUS      deprecated
-        DESCRIPTION "******** THIS IDENTITY IS DEPRECATED *******
-
-                    Expected data not received (or not received
-                    correctly) in loopback test.
-
-                    This object identity has been deprecated, since
-                    the ifTestTable in the IF-MIB was deprecated,
-                    and there is no longer a standard mechanism for
-                    initiating an interface test.  This left no
-                    standard way of using this object identity."
-        ::= { dot3Errors 2 }
-
-    -- { dot3 8 }, the dot3ChipSets tree, is defined in [RFC2666]
-
-    -- conformance information
-
-    etherConformance OBJECT IDENTIFIER ::= { etherMIB 2 }
-
-    etherGroups      OBJECT IDENTIFIER ::= { etherConformance 1 }
-    etherCompliances OBJECT IDENTIFIER ::= { etherConformance 2 }
-
-    -- compliance statements
-
-    etherCompliance MODULE-COMPLIANCE
-        STATUS      deprecated
-        DESCRIPTION "******** THIS COMPLIANCE IS DEPRECATED ********
-
-                    The compliance statement for managed network
-                    entities which have ethernet-like network
-                    interfaces.
-
-                    This compliance is deprecated and replaced by
-                    dot3Compliance."
-
-        MODULE  -- this module
-            MANDATORY-GROUPS { etherStatsGroup }
-
-            GROUP       etherCollisionTableGroup
-            DESCRIPTION "This group is optional. It is appropriate
-                        for all systems which have the necessary
-                        metering. Implementation in such systems is
-                        highly recommended."
-        ::= { etherCompliances 1 }
-
-    ether100MbsCompliance MODULE-COMPLIANCE
-        STATUS      deprecated
-        DESCRIPTION "******** THIS COMPLIANCE IS DEPRECATED ********
-
-                    The compliance statement for managed network
-                    entities which have 100 Mb/sec ethernet-like
-                    network interfaces.
-
-                    This compliance is deprecated and replaced by
-                    dot3Compliance."
-
-        MODULE  -- this module
-            MANDATORY-GROUPS { etherStats100MbsGroup }
-
-            GROUP       etherCollisionTableGroup
-            DESCRIPTION "This group is optional. It is appropriate
-                        for all systems which have the necessary
-                        metering. Implementation in such systems is
-                        highly recommended."
-        ::= { etherCompliances 2 }
-
-    dot3Compliance MODULE-COMPLIANCE
-        STATUS      deprecated
-        DESCRIPTION "******** THIS COMPLIANCE IS DEPRECATED ********
-
-                    The compliance statement for managed network
-                    entities which have ethernet-like network
-                    interfaces.
-
-                    This compliance is deprecated and replaced by
-                    dot3Compliance2."
-
-        MODULE  -- this module
-            MANDATORY-GROUPS { etherStatsBaseGroup }
-
-            GROUP       etherDuplexGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces which are
-                        capable of operating in full-duplex mode.
-                        It is highly recommended for all
-                        ethernet-like network interfaces."
-
-            GROUP       etherStatsLowSpeedGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces which are
-                        capable of operating at 10 Mb/s or slower in
-                        half-duplex mode."
-
-            GROUP       etherStatsHighSpeedGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces which are
-                        capable of operating at 100 Mb/s or faster."
-
-            GROUP       etherControlGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces that
-                        support the MAC Control sublayer."
-
-            GROUP       etherControlPauseGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces that
-                        support the MAC Control PAUSE function."
-
-            GROUP       etherCollisionTableGroup
-            DESCRIPTION "This group is optional. It is appropriate
-                        for all ethernet-like network interfaces
-                        which are capable of operating in
-                        half-duplex mode and have the necessary
-                        metering. Implementation in systems with
-
-                        such interfaces is highly recommended."
-        ::= { etherCompliances 3 }
-
-        dot3Compliance2 MODULE-COMPLIANCE
-            STATUS      current
-            DESCRIPTION "The compliance statement for managed network
-                        entities which have ethernet-like network
-                        interfaces.
-
-                        Note that compliance with this MIB module
-                        requires compliance with the ifCompliance3
-                        MODULE-COMPLIANCE statement of the IF-MIB
-                        (RFC2863).  In addition, compliance with this
-                        MIB module requires compliance  with the
-                        mauModIfCompl3 MODULE-COMPLIANCE statement of
-                        the MAU-MIB (RFC3636)."
-
-        MODULE  -- this module
-            MANDATORY-GROUPS { etherStatsBaseGroup2 }
-
-            GROUP       etherDuplexGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces which are
-                        capable of operating in full-duplex mode.
-                        It is highly recommended for all
-                        ethernet-like network interfaces."
-
-            GROUP       etherRateControlGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces which are
-                        capable of operating at speeds faster than
-                        1000 Mb/s. It is highly recommended for all
-                        ethernet-like network interfaces."
-
-            GROUP       etherStatsLowSpeedGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces which are
-                        capable of operating at 10 Mb/s or slower in
-                        half-duplex mode."
-
-            GROUP       etherStatsHighSpeedGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces which are
-                        capable of operating at 100 Mb/s or faster."
-
-            GROUP       etherStatsHalfDuplexGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces which are
-
-                        capable of operating in half-duplex mode."
-
-            GROUP       etherHCStatsGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces which are
-                        capable of operating at 10 Gb/s or faster.
-                        It is recommended for all ethernet-like
-                        network interfaces which are capable of
-                        operating at 1000 Mb/s or faster."
-
-            GROUP       etherControlGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces that
-                        support the MAC Control sublayer."
-
-            GROUP       etherHCControlGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces that
-                        support the MAC Control sublayer and are
-                        capable of operating at 10 Gb/s or faster."
-
-            GROUP       etherControlPauseGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces that
-                        support the MAC Control PAUSE function."
-
-            GROUP       etherHCControlPauseGroup
-            DESCRIPTION "This group is mandatory for all
-                        ethernet-like network interfaces that
-                        support the MAC Control PAUSE function and
-                        are capable of operating at 10 Gb/s or
-                        faster."
-
-            GROUP       etherCollisionTableGroup
-            DESCRIPTION "This group is optional. It is appropriate
-                        for all ethernet-like network interfaces
-                        which are capable of operating in
-                        half-duplex mode and have the necessary
-                        metering. Implementation in systems with
-                        such interfaces is highly recommended."
-        ::= { etherCompliances 4 }
-
-    -- units of conformance
-
-    etherStatsGroup OBJECT-GROUP
-        OBJECTS     { dot3StatsIndex,
-                      dot3StatsAlignmentErrors,
-                      dot3StatsFCSErrors,
-                      dot3StatsSingleCollisionFrames,
-                      dot3StatsMultipleCollisionFrames,
-                      dot3StatsSQETestErrors,
-                      dot3StatsDeferredTransmissions,
-                      dot3StatsLateCollisions,
-                      dot3StatsExcessiveCollisions,
-                      dot3StatsInternalMacTransmitErrors,
-                      dot3StatsCarrierSenseErrors,
-                      dot3StatsFrameTooLongs,
-                      dot3StatsInternalMacReceiveErrors,
-                      dot3StatsEtherChipSet
-                    }
-        STATUS      deprecated
-        DESCRIPTION "********* THIS GROUP IS DEPRECATED **********
-
-                    A collection of objects providing information
-                    applicable to all ethernet-like network
-                    interfaces.
-
-                    This object group has been deprecated and
-                    replaced by etherStatsBaseGroup and
-                    etherStatsLowSpeedGroup."
-        ::= { etherGroups 1 }
-
-    etherCollisionTableGroup OBJECT-GROUP
-        OBJECTS     { dot3CollFrequencies
-                    }
-        STATUS      current
-        DESCRIPTION "A collection of objects providing a histogram
-                    of packets successfully transmitted after
-                    experiencing exactly N collisions."
-        ::= { etherGroups 2 }
-
-    etherStats100MbsGroup OBJECT-GROUP
-        OBJECTS     { dot3StatsIndex,
-                      dot3StatsAlignmentErrors,
-                      dot3StatsFCSErrors,
-                      dot3StatsSingleCollisionFrames,
-                      dot3StatsMultipleCollisionFrames,
-                      dot3StatsDeferredTransmissions,
-                      dot3StatsLateCollisions,
-                      dot3StatsExcessiveCollisions,
-                      dot3StatsInternalMacTransmitErrors,
-                      dot3StatsCarrierSenseErrors,
-                      dot3StatsFrameTooLongs,
-                      dot3StatsInternalMacReceiveErrors,
-                      dot3StatsEtherChipSet,
-                      dot3StatsSymbolErrors
-
-                    }
-        STATUS      deprecated
-        DESCRIPTION "********* THIS GROUP IS DEPRECATED **********
-
-                    A collection of objects providing information
-                    applicable to 100 Mb/sec ethernet-like network
-                    interfaces.
-
-                    This object group has been deprecated and
-                    replaced by etherStatsBaseGroup and
-                    etherStatsHighSpeedGroup."
-        ::= { etherGroups 3 }
-
-    etherStatsBaseGroup OBJECT-GROUP
-        OBJECTS     { dot3StatsIndex,
-                      dot3StatsAlignmentErrors,
-                      dot3StatsFCSErrors,
-                      dot3StatsSingleCollisionFrames,
-                      dot3StatsMultipleCollisionFrames,
-                      dot3StatsDeferredTransmissions,
-                      dot3StatsLateCollisions,
-                      dot3StatsExcessiveCollisions,
-                      dot3StatsInternalMacTransmitErrors,
-                      dot3StatsCarrierSenseErrors,
-                      dot3StatsFrameTooLongs,
-                      dot3StatsInternalMacReceiveErrors
-                    }
-        STATUS      deprecated
-        DESCRIPTION "********* THIS GROUP IS DEPRECATED **********
-
-                    A collection of objects providing information
-                    applicable to all ethernet-like network
-                    interfaces.
-
-                    This object group has been deprecated and
-                    replaced by etherStatsBaseGroup2 and
-                    etherStatsHalfDuplexGroup, to separate
-                    objects which must be implemented by all
-                    ethernet-like network interfaces from
-                    objects that need only be implemented on
-                    ethernet-like network interfaces that are
-                    capable of half-duplex operation."
-        ::= { etherGroups 4 }
-
-    etherStatsLowSpeedGroup OBJECT-GROUP
-        OBJECTS     { dot3StatsSQETestErrors }
-        STATUS      current
-        DESCRIPTION "A collection of objects providing information
-
-                    applicable to ethernet-like network interfaces
-                    capable of operating at 10 Mb/s or slower in
-                    half-duplex mode."
-        ::= { etherGroups 5 }
-
-    etherStatsHighSpeedGroup OBJECT-GROUP
-        OBJECTS     { dot3StatsSymbolErrors }
-        STATUS      current
-        DESCRIPTION "A collection of objects providing information
-                    applicable to ethernet-like network interfaces
-                    capable of operating at 100 Mb/s or faster."
-        ::= { etherGroups 6 }
-
-    etherDuplexGroup OBJECT-GROUP
-        OBJECTS     { dot3StatsDuplexStatus }
-        STATUS      current
-        DESCRIPTION "A collection of objects providing information
-                    about the duplex mode of an ethernet-like
-                    network interface."
-        ::= { etherGroups 7 }
-
-    etherControlGroup OBJECT-GROUP
-        OBJECTS     { dot3ControlFunctionsSupported,
-                      dot3ControlInUnknownOpcodes
-                    }
-        STATUS      current
-        DESCRIPTION "A collection of objects providing information
-                    about the MAC Control sublayer on ethernet-like
-                    network interfaces."
-        ::= { etherGroups 8 }
-
-    etherControlPauseGroup OBJECT-GROUP
-        OBJECTS     { dot3PauseAdminMode,
-                      dot3PauseOperMode,
-                      dot3InPauseFrames,
-                      dot3OutPauseFrames
-                    }
-        STATUS      current
-        DESCRIPTION "A collection of objects providing information
-                    about and control of the MAC Control PAUSE
-                    function on ethernet-like network interfaces."
-        ::= { etherGroups 9 }
-
-    etherStatsBaseGroup2 OBJECT-GROUP
-        OBJECTS     { dot3StatsIndex,
-                      dot3StatsAlignmentErrors,
-                      dot3StatsFCSErrors,
-                      dot3StatsInternalMacTransmitErrors,
-                      dot3StatsFrameTooLongs,
-                      dot3StatsInternalMacReceiveErrors
-                    }
-        STATUS      current
-        DESCRIPTION "A collection of objects providing information
-                    applicable to all ethernet-like network
-                    interfaces."
-        ::= { etherGroups 10 }
-
-    etherStatsHalfDuplexGroup OBJECT-GROUP
-        OBJECTS     { dot3StatsSingleCollisionFrames,
-                      dot3StatsMultipleCollisionFrames,
-                      dot3StatsDeferredTransmissions,
-                      dot3StatsLateCollisions,
-                      dot3StatsExcessiveCollisions,
-                      dot3StatsCarrierSenseErrors
-                    }
-        STATUS      current
-        DESCRIPTION "A collection of objects providing information
-                    applicable only to half-duplex ethernet-like
-                    network interfaces."
-        ::= { etherGroups 11 }
-
-    etherHCStatsGroup OBJECT-GROUP
-        OBJECTS     { dot3HCStatsAlignmentErrors,
-                      dot3HCStatsFCSErrors,
-                      dot3HCStatsInternalMacTransmitErrors,
-                      dot3HCStatsFrameTooLongs,
-                      dot3HCStatsInternalMacReceiveErrors,
-                      dot3HCStatsSymbolErrors
-                    }
-        STATUS      current
-        DESCRIPTION "A collection of objects providing high-capacity
-                    statistics applicable to higher-speed
-                    ethernet-like network interfaces."
-        ::= { etherGroups 12 }
-
-    etherHCControlGroup OBJECT-GROUP
-        OBJECTS     { dot3HCControlInUnknownOpcodes }
-        STATUS      current
-        DESCRIPTION "A collection of objects providing high-capacity
-                    statistics for the MAC Control sublayer on
-                    higher-speed ethernet-like network interfaces."
-        ::= { etherGroups 13 }
-
-    etherHCControlPauseGroup OBJECT-GROUP
-        OBJECTS     { dot3HCInPauseFrames,
-                      dot3HCOutPauseFrames
-
-                    }
-        STATUS      current
-        DESCRIPTION "A collection of objects providing high-capacity
-                    statistics for the MAC Control PAUSE function on
-                    higher-speed ethernet-like network interfaces."
-        ::= { etherGroups 14 }
-
-    etherRateControlGroup OBJECT-GROUP
-        OBJECTS     { dot3StatsRateControlAbility,
-                      dot3StatsRateControlStatus
-                    }
-        STATUS      current
-        DESCRIPTION "A collection of objects providing information
-                    about the Rate Control function on ethernet-like
-                    interfaces."
-        ::= { etherGroups 15 }
-
-END
diff --git a/mibs/HCNUM-TC.txt b/mibs/HCNUM-TC.txt
deleted file mode 100644
index 4be3d54..0000000
--- a/mibs/HCNUM-TC.txt
+++ /dev/null
@@ -1,118 +0,0 @@
-HCNUM-TC DEFINITIONS ::= BEGIN
-
-IMPORTS
-  MODULE-IDENTITY, mib-2, Counter64
-      FROM SNMPv2-SMI
-  TEXTUAL-CONVENTION
-      FROM SNMPv2-TC;
-
-hcnumTC MODULE-IDENTITY
-  LAST-UPDATED "200006080000Z"
-
-  ORGANIZATION "IETF OPS Area"
-  CONTACT-INFO
-        "        E-mail: mibs at ops.ietf.org
-                 Subscribe: majordomo at psg.com
-                   with msg body: subscribe mibs
-
-                 Andy Bierman
-                 Cisco Systems Inc.
-                 170 West Tasman Drive
-                 San Jose, CA 95134 USA
-                 +1 408-527-3711
-                 abierman at cisco.com
-
-                 Keith McCloghrie
-                 Cisco Systems Inc.
-                 170 West Tasman Drive
-                 San Jose, CA 95134 USA
-                 +1 408-526-5260
-                 kzm at cisco.com
-
-                 Randy Presuhn
-                 BMC Software, Inc.
-                 Office 1-3141
-                 2141 North First Street
-                 San Jose,  California 95131 USA
-                 +1 408 546-1006
-                 rpresuhn at bmc.com"
-  DESCRIPTION
-        "A MIB module containing textual conventions
-         for high capacity data types. This module
-         addresses an immediate need for data types not directly
-         supported in the SMIv2. This short-term solution
-         is meant to be deprecated as a long-term solution
-         is deployed."
-  REVISION        "200006080000Z"
-  DESCRIPTION
-        "Initial Version of the High Capacity Numbers
-         MIB module, published as RFC 2856."
-  ::= { mib-2 78 }
-
-CounterBasedGauge64 ::= TEXTUAL-CONVENTION
-  STATUS       current
-  DESCRIPTION
-        "The CounterBasedGauge64 type represents a non-negative
-        integer, which may increase or decrease, but shall never
-        exceed a maximum value, nor fall below a minimum value. The
-        maximum value can not be greater than 2^64-1
-        (18446744073709551615 decimal), and the minimum value can
-
-        not be smaller than 0.  The value of a CounterBasedGauge64
-        has its maximum value whenever the information being modeled
-        is greater than or equal to its maximum value, and has its
-        minimum value whenever the information being modeled is
-        smaller than or equal to its minimum value.  If the
-        information being modeled subsequently decreases below
-        (increases above) the maximum (minimum) value, the
-        CounterBasedGauge64 also decreases (increases).
-
-        Note that this TC is not strictly supported in SMIv2,
-        because the 'always increasing' and 'counter wrap' semantics
-        associated with the Counter64 base type are not preserved.
-        It is possible that management applications which rely
-        solely upon the (Counter64) ASN.1 tag to determine object
-        semantics will mistakenly operate upon objects of this type
-        as they would for Counter64 objects.
-
-        This textual convention represents a limited and short-term
-        solution, and may be deprecated as a long term solution is
-        defined and deployed to replace it."
-  SYNTAX Counter64
-
-ZeroBasedCounter64 ::= TEXTUAL-CONVENTION
-  STATUS current
-  DESCRIPTION
-        "This TC describes an object which counts events with the
-        following semantics: objects of this type will be set to
-        zero(0) on creation and will thereafter count appropriate
-        events, wrapping back to zero(0) when the value 2^64 is
-        reached.
-
-        Provided that an application discovers the new object within
-        the minimum time to wrap it can use the initial value as a
-        delta since it last polled the table of which this object is
-        part.  It is important for a management station to be aware
-        of this minimum time and the actual time between polls, and
-        to discard data if the actual time is too long or there is
-        no defined minimum time.
-
-        Typically this TC is used in tables where the INDEX space is
-        constantly changing and/or the TimeFilter mechanism is in
-        use.
-
-        Note that this textual convention does not retain all the
-        semantics of the Counter64 base type. Specifically, a
-        Counter64 has an arbitrary initial value, but objects
-        defined with this TC are required to start at the value
-
-        zero.  This behavior is not likely to have any adverse
-        effects on management applications which are expecting
-        Counter64 semantics.
-
-        This textual convention represents a limited and short-term
-        solution, and may be deprecated as a long term solution is
-        defined and deployed to replace it."
-  SYNTAX Counter64
-
-END
diff --git a/mibs/HOST-RESOURCES-MIB.txt b/mibs/HOST-RESOURCES-MIB.txt
deleted file mode 100644
index 373b9b3..0000000
--- a/mibs/HOST-RESOURCES-MIB.txt
+++ /dev/null
@@ -1,1540 +0,0 @@
-HOST-RESOURCES-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-MODULE-IDENTITY, OBJECT-TYPE, mib-2,
-Integer32, Counter32, Gauge32, TimeTicks  FROM SNMPv2-SMI
-
-TEXTUAL-CONVENTION, DisplayString,
-TruthValue, DateAndTime, AutonomousType   FROM SNMPv2-TC
-
-MODULE-COMPLIANCE, OBJECT-GROUP           FROM SNMPv2-CONF
-
-InterfaceIndexOrZero                      FROM IF-MIB;
-
-hostResourcesMibModule MODULE-IDENTITY
-   LAST-UPDATED "200003060000Z"    -- 6 March 2000
-   ORGANIZATION "IETF Host Resources MIB Working Group"
-   CONTACT-INFO
-       "Steve Waldbusser
-       Postal: Lucent Technologies, Inc.
-               1213 Innsbruck Dr.
-               Sunnyvale, CA 94089
-               USA
-       Phone:  650-318-1251
-       Fax:    650-318-1633
-       Email:  waldbusser at lucent.com
-
-       In addition, the Host Resources MIB mailing list is
-       dedicated to discussion of this MIB. To join the
-       mailing list, send a request message to
-       hostmib-request at andrew.cmu.edu. The mailing list
-       address is hostmib at andrew.cmu.edu."
-   DESCRIPTION
-       "This MIB is for use in managing host systems. The term
-       `host' is construed to mean any computer that communicates
-       with other similar computers attached to the internet and
-       that is directly used by one or more human beings. Although
-       this MIB does not necessarily apply to devices whose primary
-       function is communications services (e.g., terminal servers,
-       routers, bridges, monitoring equipment), such relevance is
-       not explicitly precluded.  This MIB instruments attributes
-       common to all internet hosts including, for example, both
-       personal computers and systems that run variants of Unix."
-
-   REVISION "200003060000Z"        -- 6 March 2000
-   DESCRIPTION
-       "Clarifications and bug fixes based on implementation
-       experience.  This revision was also reformatted in the SMIv2
-       format. The revisions made were:
-
-       New RFC document standards:
-          Added Copyright notice, updated introduction to SNMP
-          Framework, updated references section, added reference to
-          RFC 2119, and added a meaningful Security Considerations
-          section.
-
-       New IANA considerations section for registration of new types
-
-       Conversion to new SMIv2 syntax for the following types and
-       macros:
-           Counter32, Integer32, Gauge32, MODULE-IDENTITY,
-           OBJECT-TYPE, TEXTUAL-CONVENTION, OBJECT-IDENTITY,
-           MODULE-COMPLIANCE, OBJECT-GROUP
-
-       Used new Textual Conventions:
-           TruthValue, DateAndTime, AutonomousType,
-           InterfaceIndexOrZero
-
-       Fixed typo in hrPrinterStatus.
-
-       Added missing error bits to hrPrinterDetectedErrorState and
-       clarified confusion resulting from suggested mappings to
-       hrPrinterStatus.
-
-       Clarified that size of objects of type
-       InternationalDisplayString is number of octets, not number
-       of encoded symbols.
-
-       Clarified the use of the following objects based on
-       implementation experience:
-           hrSystemInitialLoadDevice, hrSystemInitialLoadParameters,
-           hrMemorySize, hrStorageSize, hrStorageAllocationFailures,
-           hrDeviceErrors, hrProcessorLoad, hrNetworkIfIndex,
-           hrDiskStorageCapacity, hrSWRunStatus, hrSWRunPerfCPU,
-           and hrSWInstalledDate.
-
-       Clarified implementation technique for hrSWInstalledTable.
-
-       Used new AUGMENTS clause for hrSWRunPerfTable.
-
-       Added Internationalization Considerations section.
-
-This revision published as RFC2790."
-
-   REVISION "9910202200Z"    -- 20 October, 1999
-   DESCRIPTION
-       "The original version of this MIB, published as
-       RFC1514."
-   ::= { hrMIBAdminInfo 1 }
-
-host     OBJECT IDENTIFIER ::= { mib-2 25 }
-
-hrSystem        OBJECT IDENTIFIER ::= { host 1 }
-hrStorage       OBJECT IDENTIFIER ::= { host 2 }
-hrDevice        OBJECT IDENTIFIER ::= { host 3 }
-hrSWRun         OBJECT IDENTIFIER ::= { host 4 }
-hrSWRunPerf     OBJECT IDENTIFIER ::= { host 5 }
-hrSWInstalled   OBJECT IDENTIFIER ::= { host 6 }
-hrMIBAdminInfo  OBJECT IDENTIFIER ::= { host 7 }
-
--- textual conventions
-
-KBytes ::= TEXTUAL-CONVENTION
-    STATUS current
-    DESCRIPTION
-        "Storage size, expressed in units of 1024 bytes."
-    SYNTAX Integer32 (0..2147483647)
-
-ProductID ::= TEXTUAL-CONVENTION
-    STATUS current
-    DESCRIPTION
-        "This textual convention is intended to identify the
-
-        manufacturer, model, and version of a specific
-        hardware or software product.  It is suggested that
-        these OBJECT IDENTIFIERs are allocated such that all
-        products from a particular manufacturer are registered
-        under a subtree distinct to that manufacturer.  In
-        addition, all versions of a product should be
-        registered under a subtree distinct to that product.
-        With this strategy, a management station may uniquely
-        determine the manufacturer and/or model of a product
-        whose productID is unknown to the management station.
-        Objects of this type may be useful for inventory
-        purposes or for automatically detecting
-        incompatibilities or version mismatches between
-        various hardware and software components on a system.
-
-        For example, the product ID for the ACME 4860 66MHz
-        clock doubled processor might be:
-        enterprises.acme.acmeProcessors.a4860DX2.MHz66
-
-        A software product might be registered as:
-        enterprises.acme.acmeOperatingSystems.acmeDOS.six(6).one(1)
-        "
-    SYNTAX OBJECT IDENTIFIER
-
--- unknownProduct will be used for any unknown ProductID
--- unknownProduct OBJECT IDENTIFIER ::= { 0 0 }
-
-InternationalDisplayString ::= TEXTUAL-CONVENTION
-    STATUS current
-    DESCRIPTION
-        "This data type is used to model textual information
-        in some character set.  A network management station
-        should use a local algorithm to determine which
-        character set is in use and how it should be
-        displayed.  Note that this character set may be
-        encoded with more than one octet per symbol, but will
-        most often be NVT ASCII. When a size clause is
-        specified for an object of this type, the size refers
-        to the length in octets, not the number of symbols."
-    SYNTAX OCTET STRING
-
--- The Host Resources System Group
-
-hrSystemUptime OBJECT-TYPE
-    SYNTAX     TimeTicks
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The amount of time since this host was last
-        initialized.  Note that this is different from
-        sysUpTime in the SNMPv2-MIB [RFC1907] because
-        sysUpTime is the uptime of the network management
-        portion of the system."
-    ::= { hrSystem 1 }
-
-hrSystemDate OBJECT-TYPE
-    SYNTAX     DateAndTime
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-        "The host's notion of the local date and time of day."
-    ::= { hrSystem 2 }
-
-hrSystemInitialLoadDevice OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-        "The index of the hrDeviceEntry for the device from
-        which this host is configured to load its initial
-        operating system configuration (i.e., which operating
-        system code and/or boot parameters).
-
-        Note that writing to this object just changes the
-        configuration that will be used the next time the
-        operating system is loaded and does not actually cause
-        the reload to occur."
-    ::= { hrSystem 3 }
-
-hrSystemInitialLoadParameters OBJECT-TYPE
-    SYNTAX     InternationalDisplayString (SIZE (0..128))
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-        "This object contains the parameters (e.g. a pathname
-        and parameter) supplied to the load device when
-        requesting the initial operating system configuration
-        from that device.
-
-     Note that writing to this object just changes the
-     configuration that will be used the next time the
-     operating system is loaded and does not actually cause
-     the reload to occur."
-    ::= { hrSystem 4 }
-
-hrSystemNumUsers OBJECT-TYPE
-    SYNTAX     Gauge32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of user sessions for which this host is
-        storing state information.  A session is a collection
-        of processes requiring a single act of user
-        authentication and possibly subject to collective job
-        control."
-    ::= { hrSystem 5 }
-
-hrSystemProcesses OBJECT-TYPE
-    SYNTAX     Gauge32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of process contexts currently loaded or
-        running on this system."
-    ::= { hrSystem 6 }
-
-hrSystemMaxProcesses OBJECT-TYPE
-    SYNTAX     Integer32 (0..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The maximum number of process contexts this system
-        can support.  If there is no fixed maximum, the value
-        should be zero.  On systems that have a fixed maximum,
-        this object can help diagnose failures that occur when
-        this maximum is reached."
-    ::= { hrSystem 7 }
-
--- The Host Resources Storage Group
-
--- Registration point for storage types, for use with hrStorageType.
--- These are defined in the HOST-RESOURCES-TYPES module.
-hrStorageTypes          OBJECT IDENTIFIER ::= { hrStorage 1 }
-
-hrMemorySize OBJECT-TYPE
-    SYNTAX     KBytes
-    UNITS      "KBytes"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The amount of physical read-write main memory,
-        typically RAM, contained by the host."
-    ::= { hrStorage 2 }
-
-hrStorageTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HrStorageEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "The (conceptual) table of logical storage areas on
-        the host.
-
-        An entry shall be placed in the storage table for each
-        logical area of storage that is allocated and has
-        fixed resource limits.  The amount of storage
-        represented in an entity is the amount actually usable
-        by the requesting entity, and excludes loss due to
-        formatting or file system reference information.
-
-        These entries are associated with logical storage
-        areas, as might be seen by an application, rather than
-        physical storage entities which are typically seen by
-        an operating system.  Storage such as tapes and
-        floppies without file systems on them are typically
-        not allocated in chunks by the operating system to
-        requesting applications, and therefore shouldn't
-        appear in this table.  Examples of valid storage for
-        this table include disk partitions, file systems, ram
-        (for some architectures this is further segmented into
-        regular memory, extended memory, and so on), backing
-        store for virtual memory (`swap space').
-
-        This table is intended to be a useful diagnostic for
-        `out of memory' and `out of buffers' types of
-        failures.  In addition, it can be a useful performance
-        monitoring tool for tracking memory, disk, or buffer
-        usage."
-    ::= { hrStorage 3 }
-
-hrStorageEntry OBJECT-TYPE
-    SYNTAX     HrStorageEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A (conceptual) entry for one logical storage area on
-        the host.  As an example, an instance of the
-        hrStorageType object might be named hrStorageType.3"
-    INDEX { hrStorageIndex }
-    ::= { hrStorageTable 1 }
-
-HrStorageEntry ::= SEQUENCE {
-        hrStorageIndex               Integer32,
-        hrStorageType                AutonomousType,
-        hrStorageDescr               DisplayString,
-        hrStorageAllocationUnits     Integer32,
-        hrStorageSize                Integer32,
-        hrStorageUsed                Integer32,
-        hrStorageAllocationFailures  Counter32
-    }
-
-hrStorageIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A unique value for each logical storage area
-        contained by the host."
-    ::= { hrStorageEntry 1 }
-
-hrStorageType OBJECT-TYPE
-    SYNTAX     AutonomousType
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The type of storage represented by this entry."
-    ::= { hrStorageEntry 2 }
-
-hrStorageDescr OBJECT-TYPE
-    SYNTAX     DisplayString
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A description of the type and instance of the storage
-        described by this entry."
-    ::= { hrStorageEntry 3 }
-
-hrStorageAllocationUnits OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    UNITS      "Bytes"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The size, in bytes, of the data objects allocated
-        from this pool.  If this entry is monitoring sectors,
-        blocks, buffers, or packets, for example, this number
-        will commonly be greater than one.  Otherwise this
-        number will typically be one."
-    ::= { hrStorageEntry 4 }
-
-hrStorageSize OBJECT-TYPE
-    SYNTAX     Integer32 (0..2147483647)
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-        "The size of the storage represented by this entry, in
-        units of hrStorageAllocationUnits. This object is
-        writable to allow remote configuration of the size of
-        the storage area in those cases where such an
-        operation makes sense and is possible on the
-        underlying system. For example, the amount of main
-        memory allocated to a buffer pool might be modified or
-        the amount of disk space allocated to virtual memory
-        might be modified."
-    ::= { hrStorageEntry 5 }
-
-hrStorageUsed OBJECT-TYPE
-    SYNTAX     Integer32 (0..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The amount of the storage represented by this entry
-        that is allocated, in units of
-        hrStorageAllocationUnits."
-    ::= { hrStorageEntry 6 }
-
-hrStorageAllocationFailures OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of requests for storage represented by
-        this entry that could not be honored due to not enough
-        storage.  It should be noted that as this object has a
-        SYNTAX of Counter32, that it does not have a defined
-        initial value.  However, it is recommended that this
-        object be initialized to zero, even though management
-        stations must not depend on such an initialization."
-    ::= { hrStorageEntry 7 }
-
--- The Host Resources Device Group
---
--- The device group is useful for identifying and diagnosing the
--- devices on a system.  The hrDeviceTable contains common
--- information for any type of device.  In addition, some devices
--- have device-specific tables for more detailed information.  More
--- such tables may be defined in the future for other device types.
-
--- Registration point for device types, for use with hrDeviceType.
-
--- These are defined in the HOST-RESOURCES-TYPES module.
-hrDeviceTypes             OBJECT IDENTIFIER ::= { hrDevice 1 }
-
-hrDeviceTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HrDeviceEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "The (conceptual) table of devices contained by the
-        host."
-    ::= { hrDevice 2 }
-
-hrDeviceEntry OBJECT-TYPE
-    SYNTAX     HrDeviceEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A (conceptual) entry for one device contained by the
-        host.  As an example, an instance of the hrDeviceType
-        object might be named hrDeviceType.3"
-    INDEX { hrDeviceIndex }
-    ::= { hrDeviceTable 1 }
-
-HrDeviceEntry ::= SEQUENCE {
-        hrDeviceIndex           Integer32,
-        hrDeviceType            AutonomousType,
-        hrDeviceDescr           DisplayString,
-        hrDeviceID              ProductID,
-        hrDeviceStatus          INTEGER,
-        hrDeviceErrors          Counter32
-    }
-
-hrDeviceIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A unique value for each device contained by the host.
-        The value for each device must remain constant at
-        least from one re-initialization of the agent to the
-        next re-initialization."
-    ::= { hrDeviceEntry 1 }
-
-hrDeviceType OBJECT-TYPE
-    SYNTAX     AutonomousType
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An indication of the type of device.
-
-        If this value is
-        `hrDeviceProcessor { hrDeviceTypes 3 }' then an entry
-        exists in the hrProcessorTable which corresponds to
-        this device.
-
-        If this value is
-        `hrDeviceNetwork { hrDeviceTypes 4 }', then an entry
-        exists in the hrNetworkTable which corresponds to this
-        device.
-
-        If this value is
-        `hrDevicePrinter { hrDeviceTypes 5 }', then an entry
-        exists in the hrPrinterTable which corresponds to this
-        device.
-
-        If this value is
-        `hrDeviceDiskStorage { hrDeviceTypes 6 }', then an
-        entry exists in the hrDiskStorageTable which
-        corresponds to this device."
-    ::= { hrDeviceEntry 2 }
-
-hrDeviceDescr OBJECT-TYPE
-    SYNTAX     DisplayString (SIZE (0..64))
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A textual description of this device, including the
-        device's manufacturer and revision, and optionally,
-        its serial number."
-    ::= { hrDeviceEntry 3 }
-
-hrDeviceID OBJECT-TYPE
-    SYNTAX     ProductID
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The product ID for this device."
-    ::= { hrDeviceEntry 4 }
-
-hrDeviceStatus OBJECT-TYPE
-    SYNTAX     INTEGER {
-                   unknown(1),
-                   running(2),
-                   warning(3),
-                   testing(4),
-                   down(5)
-
-               }
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The current operational state of the device described
-        by this row of the table.  A value unknown(1)
-        indicates that the current state of the device is
-        unknown.  running(2) indicates that the device is up
-        and running and that no unusual error conditions are
-        known.  The warning(3) state indicates that agent has
-        been informed of an unusual error condition by the
-        operational software (e.g., a disk device driver) but
-        that the device is still 'operational'.  An example
-        would be a high number of soft errors on a disk.  A
-        value of testing(4), indicates that the device is not
-        available for use because it is in the testing state.
-        The state of down(5) is used only when the agent has
-        been informed that the device is not available for any
-        use."
-    ::= { hrDeviceEntry 5 }
-
-hrDeviceErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of errors detected on this device.  It
-        should be noted that as this object has a SYNTAX of
-        Counter32, that it does not have a defined initial
-        value.  However, it is recommended that this object be
-        initialized to zero, even though management stations
-        must not depend on such an initialization."
-    ::= { hrDeviceEntry 6 }
-
-hrProcessorTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HrProcessorEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "The (conceptual) table of processors contained by the
-        host.
-
-        Note that this table is potentially sparse: a
-        (conceptual) entry exists only if the correspondent
-        value of the hrDeviceType object is
-        `hrDeviceProcessor'."
-    ::= { hrDevice 3 }
-
-hrProcessorEntry OBJECT-TYPE
-    SYNTAX     HrProcessorEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A (conceptual) entry for one processor contained by
-        the host.  The hrDeviceIndex in the index represents
-        the entry in the hrDeviceTable that corresponds to the
-        hrProcessorEntry.
-
-        As an example of how objects in this table are named,
-        an instance of the hrProcessorFrwID object might be
-        named hrProcessorFrwID.3"
-    INDEX { hrDeviceIndex }
-    ::= { hrProcessorTable 1 }
-
-HrProcessorEntry ::= SEQUENCE {
-        hrProcessorFrwID            ProductID,
-        hrProcessorLoad             Integer32
-    }
-
-hrProcessorFrwID OBJECT-TYPE
-    SYNTAX     ProductID
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The product ID of the firmware associated with the
-        processor."
-    ::= { hrProcessorEntry 1 }
-
-hrProcessorLoad OBJECT-TYPE
-    SYNTAX     Integer32 (0..100)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The average, over the last minute, of the percentage
-        of time that this processor was not idle.
-        Implementations may approximate this one minute
-        smoothing period if necessary."
-    ::= { hrProcessorEntry 2 }
-
-hrNetworkTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HrNetworkEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "The (conceptual) table of network devices contained
-        by the host.
-
-        Note that this table is potentially sparse: a
-        (conceptual) entry exists only if the correspondent
-        value of the hrDeviceType object is
-        `hrDeviceNetwork'."
-    ::= { hrDevice 4 }
-
-hrNetworkEntry OBJECT-TYPE
-    SYNTAX     HrNetworkEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A (conceptual) entry for one network device contained
-        by the host.  The hrDeviceIndex in the index
-        represents the entry in the hrDeviceTable that
-        corresponds to the hrNetworkEntry.
-
-        As an example of how objects in this table are named,
-        an instance of the hrNetworkIfIndex object might be
-        named hrNetworkIfIndex.3"
-    INDEX { hrDeviceIndex }
-    ::= { hrNetworkTable 1 }
-
-HrNetworkEntry ::= SEQUENCE {
-        hrNetworkIfIndex    InterfaceIndexOrZero
-    }
-
-hrNetworkIfIndex OBJECT-TYPE
-    SYNTAX     InterfaceIndexOrZero
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of ifIndex which corresponds to this
-        network device. If this device is not represented in
-        the ifTable, then this value shall be zero."
-    ::= { hrNetworkEntry 1 }
-
-hrPrinterTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HrPrinterEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "The (conceptual) table of printers local to the host.
-
-        Note that this table is potentially sparse: a
-        (conceptual) entry exists only if the correspondent
-        value of the hrDeviceType object is
-        `hrDevicePrinter'."
-    ::= { hrDevice 5 }
-
-hrPrinterEntry OBJECT-TYPE
-    SYNTAX     HrPrinterEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A (conceptual) entry for one printer local to the
-        host.  The hrDeviceIndex in the index represents the
-        entry in the hrDeviceTable that corresponds to the
-        hrPrinterEntry.
-
-        As an example of how objects in this table are named,
-        an instance of the hrPrinterStatus object might be
-        named hrPrinterStatus.3"
-    INDEX { hrDeviceIndex }
-    ::= { hrPrinterTable 1 }
-
-HrPrinterEntry ::= SEQUENCE {
-        hrPrinterStatus             INTEGER,
-        hrPrinterDetectedErrorState OCTET STRING
-    }
-
-hrPrinterStatus OBJECT-TYPE
-    SYNTAX     INTEGER {
-                   other(1),
-                   unknown(2),
-                   idle(3),
-                   printing(4),
-                   warmup(5)
-               }
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The current status of this printer device."
-    ::= { hrPrinterEntry 1 }
-
-hrPrinterDetectedErrorState OBJECT-TYPE
-    SYNTAX     OCTET STRING
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "This object represents any error conditions detected
-        by the printer.  The error conditions are encoded as
-        bits in an octet string, with the following
-        definitions:
-
-             Condition         Bit #
-
-             lowPaper              0
-
-             noPaper               1
-             lowToner              2
-             noToner               3
-             doorOpen              4
-             jammed                5
-             offline               6
-             serviceRequested      7
-             inputTrayMissing      8
-             outputTrayMissing     9
-             markerSupplyMissing  10
-             outputNearFull       11
-             outputFull           12
-             inputTrayEmpty       13
-             overduePreventMaint  14
-
-        Bits are numbered starting with the most significant
-        bit of the first byte being bit 0, the least
-        significant bit of the first byte being bit 7, the
-        most significant bit of the second byte being bit 8,
-        and so on.  A one bit encodes that the condition was
-        detected, while a zero bit encodes that the condition
-        was not detected.
-
-        This object is useful for alerting an operator to
-        specific warning or error conditions that may occur,
-        especially those requiring human intervention."
-    ::= { hrPrinterEntry 2 }
-
-hrDiskStorageTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HrDiskStorageEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "The (conceptual) table of long-term storage devices
-        contained by the host.  In particular, disk devices
-        accessed remotely over a network are not included
-        here.
-
-        Note that this table is potentially sparse: a
-        (conceptual) entry exists only if the correspondent
-        value of the hrDeviceType object is
-        `hrDeviceDiskStorage'."
-    ::= { hrDevice 6 }
-
-hrDiskStorageEntry OBJECT-TYPE
-    SYNTAX     HrDiskStorageEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A (conceptual) entry for one long-term storage device
-        contained by the host.  The hrDeviceIndex in the index
-        represents the entry in the hrDeviceTable that
-        corresponds to the hrDiskStorageEntry. As an example,
-        an instance of the hrDiskStorageCapacity object might
-        be named hrDiskStorageCapacity.3"
-    INDEX { hrDeviceIndex }
-    ::= { hrDiskStorageTable 1 }
-
-HrDiskStorageEntry ::= SEQUENCE {
-        hrDiskStorageAccess         INTEGER,
-        hrDiskStorageMedia          INTEGER,
-        hrDiskStorageRemoveble      TruthValue,
-        hrDiskStorageCapacity       KBytes
-    }
-
-hrDiskStorageAccess OBJECT-TYPE
-    SYNTAX     INTEGER {
-                   readWrite(1),
-                   readOnly(2)
-               }
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An indication if this long-term storage device is
-        readable and writable or only readable.  This should
-        reflect the media type, any write-protect mechanism,
-        and any device configuration that affects the entire
-        device."
-    ::= { hrDiskStorageEntry 1 }
-
-hrDiskStorageMedia OBJECT-TYPE
-    SYNTAX     INTEGER {
-                   other(1),
-                   unknown(2),
-                   hardDisk(3),
-                   floppyDisk(4),
-                   opticalDiskROM(5),
-                   opticalDiskWORM(6),     -- Write Once Read Many
-                   opticalDiskRW(7),
-                   ramDisk(8)
-               }
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An indication of the type of media used in this long-
-        term storage device."
-    ::= { hrDiskStorageEntry 2 }
-
-hrDiskStorageRemoveble OBJECT-TYPE
-    SYNTAX     TruthValue
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "Denotes whether or not the disk media may be removed
-        from the drive."
-    ::= { hrDiskStorageEntry 3 }
-
-hrDiskStorageCapacity OBJECT-TYPE
-    SYNTAX     KBytes
-    UNITS      "KBytes"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total size for this long-term storage device. If
-        the media is removable and is currently removed, this
-        value should be zero."
-    ::= { hrDiskStorageEntry 4 }
-
-hrPartitionTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HrPartitionEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "The (conceptual) table of partitions for long-term
-        storage devices contained by the host.  In particular,
-        partitions accessed remotely over a network are not
-        included here."
-    ::= { hrDevice 7 }
-
-hrPartitionEntry OBJECT-TYPE
-    SYNTAX     HrPartitionEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A (conceptual) entry for one partition.  The
-        hrDeviceIndex in the index represents the entry in the
-        hrDeviceTable that corresponds to the
-        hrPartitionEntry.
-
-        As an example of how objects in this table are named,
-        an instance of the hrPartitionSize object might be
-        named hrPartitionSize.3.1"
-    INDEX { hrDeviceIndex, hrPartitionIndex }
-    ::= { hrPartitionTable 1 }
-
-HrPartitionEntry ::= SEQUENCE {
-        hrPartitionIndex                Integer32,
-        hrPartitionLabel                InternationalDisplayString,
-        hrPartitionID                   OCTET STRING,
-        hrPartitionSize                 KBytes,
-        hrPartitionFSIndex              Integer32
-    }
-
-hrPartitionIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A unique value for each partition on this long-term
-        storage device.  The value for each long-term storage
-        device must remain constant at least from one re-
-        initialization of the agent to the next re-
-        initialization."
-    ::= { hrPartitionEntry 1 }
-
-hrPartitionLabel OBJECT-TYPE
-    SYNTAX     InternationalDisplayString (SIZE (0..128))
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A textual description of this partition."
-    ::= { hrPartitionEntry 2 }
-
-hrPartitionID OBJECT-TYPE
-    SYNTAX     OCTET STRING
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A descriptor which uniquely represents this partition
-        to the responsible operating system.  On some systems,
-        this might take on a binary representation."
-    ::= { hrPartitionEntry 3 }
-
-hrPartitionSize OBJECT-TYPE
-    SYNTAX     KBytes
-    UNITS      "KBytes"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The size of this partition."
-    ::= { hrPartitionEntry 4 }
-
-hrPartitionFSIndex OBJECT-TYPE
-    SYNTAX     Integer32 (0..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The index of the file system mounted on this
-        partition.  If no file system is mounted on this
-        partition, then this value shall be zero.  Note that
-        multiple partitions may point to one file system,
-        denoting that that file system resides on those
-        partitions.  Multiple file systems may not reside on
-        one partition."
-    ::= { hrPartitionEntry 5 }
-
--- The File System Table
-
--- Registration point for popular File System types,
--- for use with hrFSType. These are defined in the
--- HOST-RESOURCES-TYPES module.
-hrFSTypes               OBJECT IDENTIFIER ::= { hrDevice 9 }
-
-hrFSTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HrFSEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "The (conceptual) table of file systems local to this
-        host or remotely mounted from a file server.  File
-        systems that are in only one user's environment on a
-        multi-user system will not be included in this table."
-    ::= { hrDevice 8 }
-
-hrFSEntry OBJECT-TYPE
-    SYNTAX     HrFSEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A (conceptual) entry for one file system local to
-        this host or remotely mounted from a file server.
-        File systems that are in only one user's environment
-        on a multi-user system will not be included in this
-        table.
-
-        As an example of how objects in this table are named,
-        an instance of the hrFSMountPoint object might be
-        named hrFSMountPoint.3"
-    INDEX { hrFSIndex }
-    ::= { hrFSTable 1 }
-
-HrFSEntry ::= SEQUENCE {
-        hrFSIndex                   Integer32,
-        hrFSMountPoint              InternationalDisplayString,
-        hrFSRemoteMountPoint        InternationalDisplayString,
-        hrFSType                    AutonomousType,
-        hrFSAccess                  INTEGER,
-        hrFSBootable                TruthValue,
-        hrFSStorageIndex            Integer32,
-        hrFSLastFullBackupDate      DateAndTime,
-        hrFSLastPartialBackupDate   DateAndTime
-    }
-
-hrFSIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A unique value for each file system local to this
-        host.  The value for each file system must remain
-        constant at least from one re-initialization of the
-        agent to the next re-initialization."
-    ::= { hrFSEntry 1 }
-
-hrFSMountPoint OBJECT-TYPE
-    SYNTAX     InternationalDisplayString (SIZE(0..128))
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The path name of the root of this file system."
-    ::= { hrFSEntry 2 }
-
-hrFSRemoteMountPoint OBJECT-TYPE
-    SYNTAX     InternationalDisplayString (SIZE(0..128))
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A description of the name and/or address of the
-        server that this file system is mounted from.  This
-        may also include parameters such as the mount point on
-        the remote file system.  If this is not a remote file
-        system, this string should have a length of zero."
-    ::= { hrFSEntry 3 }
-
-hrFSType OBJECT-TYPE
-    SYNTAX     AutonomousType
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of this object identifies the type of this
-        file system."
-    ::= { hrFSEntry 4 }
-
-hrFSAccess OBJECT-TYPE
-    SYNTAX     INTEGER {
-                   readWrite(1),
-                   readOnly(2)
-               }
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An indication if this file system is logically
-        configured by the operating system to be readable and
-        writable or only readable.  This does not represent
-        any local access-control policy, except one that is
-        applied to the file system as a whole."
-    ::= { hrFSEntry 5 }
-
-hrFSBootable OBJECT-TYPE
-    SYNTAX     TruthValue
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A flag indicating whether this file system is
-        bootable."
-    ::= { hrFSEntry 6 }
-
-hrFSStorageIndex OBJECT-TYPE
-    SYNTAX     Integer32 (0..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The index of the hrStorageEntry that represents
-        information about this file system.  If there is no
-        such information available, then this value shall be
-        zero.  The relevant storage entry will be useful in
-        tracking the percent usage of this file system and
-        diagnosing errors that may occur when it runs out of
-        space."
-    ::= { hrFSEntry 7 }
-
-hrFSLastFullBackupDate OBJECT-TYPE
-    SYNTAX     DateAndTime
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-        "The last date at which this complete file system was
-
-        copied to another storage device for backup.  This
-        information is useful for ensuring that backups are
-        being performed regularly.
-
-        If this information is not known, then this variable
-        shall have the value corresponding to January 1, year
-        0000, 00:00:00.0, which is encoded as
-        (hex)'00 00 01 01 00 00 00 00'."
-    ::= { hrFSEntry 8 }
-
-hrFSLastPartialBackupDate OBJECT-TYPE
-    SYNTAX     DateAndTime
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-        "The last date at which a portion of this file system
-        was copied to another storage device for backup.  This
-        information is useful for ensuring that backups are
-        being performed regularly.
-
-        If this information is not known, then this variable
-        shall have the value corresponding to January 1, year
-        0000, 00:00:00.0, which is encoded as
-        (hex)'00 00 01 01 00 00 00 00'."
-    ::= { hrFSEntry 9 }
-
--- The Host Resources Running Software Group
---
--- The hrSWRunTable contains an entry for each distinct piece of
--- software that is running or loaded into physical or virtual
--- memory in preparation for running.  This includes the host's
--- operating system, device drivers, and applications.
-
-hrSWOSIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of the hrSWRunIndex for the hrSWRunEntry
-        that represents the primary operating system running
-        on this host.  This object is useful for quickly and
-        uniquely identifying that primary operating system."
-    ::= { hrSWRun 1 }
-
-hrSWRunTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HrSWRunEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "The (conceptual) table of software running on the
-        host."
-    ::= { hrSWRun 2 }
-
-hrSWRunEntry OBJECT-TYPE
-    SYNTAX     HrSWRunEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A (conceptual) entry for one piece of software
-        running on the host Note that because the installed
-        software table only contains information for software
-        stored locally on this host, not every piece of
-        running software will be found in the installed
-        software table.  This is true of software that was
-        loaded and run from a non-local source, such as a
-        network-mounted file system.
-
-        As an example of how objects in this table are named,
-        an instance of the hrSWRunName object might be named
-        hrSWRunName.1287"
-    INDEX { hrSWRunIndex }
-    ::= { hrSWRunTable 1 }
-
-HrSWRunEntry ::= SEQUENCE {
-        hrSWRunIndex       Integer32,
-        hrSWRunName        InternationalDisplayString,
-        hrSWRunID          ProductID,
-        hrSWRunPath        InternationalDisplayString,
-        hrSWRunParameters  InternationalDisplayString,
-        hrSWRunType        INTEGER,
-        hrSWRunStatus      INTEGER
-    }
-
-hrSWRunIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A unique value for each piece of software running on
-        the host.  Wherever possible, this should be the
-        system's native, unique identification number."
-    ::= { hrSWRunEntry 1 }
-
-hrSWRunName OBJECT-TYPE
-    SYNTAX     InternationalDisplayString (SIZE (0..64))
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A textual description of this running piece of
-        software, including the manufacturer, revision,  and
-        the name by which it is commonly known.  If this
-        software was installed locally, this should be the
-        same string as used in the corresponding
-        hrSWInstalledName."
-    ::= { hrSWRunEntry 2 }
-
-hrSWRunID OBJECT-TYPE
-    SYNTAX     ProductID
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The product ID of this running piece of software."
-    ::= { hrSWRunEntry 3 }
-
-hrSWRunPath OBJECT-TYPE
-    SYNTAX     InternationalDisplayString (SIZE(0..128))
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A description of the location on long-term storage
-        (e.g. a disk drive) from which this software was
-        loaded."
-    ::= { hrSWRunEntry 4 }
-
-hrSWRunParameters OBJECT-TYPE
-    SYNTAX     InternationalDisplayString (SIZE(0..128))
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A description of the parameters supplied to this
-        software when it was initially loaded."
-    ::= { hrSWRunEntry 5 }
-
-hrSWRunType OBJECT-TYPE
-    SYNTAX     INTEGER {
-                   unknown(1),
-                   operatingSystem(2),
-                   deviceDriver(3),
-                   application(4)
-               }
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The type of this software."
-    ::= { hrSWRunEntry 6 }
-
-hrSWRunStatus OBJECT-TYPE
-    SYNTAX     INTEGER {
-                   running(1),
-                   runnable(2),    -- waiting for resource
-                                   -- (i.e., CPU, memory, IO)
-                   notRunnable(3), -- loaded but waiting for event
-                   invalid(4)      -- not loaded
-               }
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-        "The status of this running piece of software.
-        Setting this value to invalid(4) shall cause this
-        software to stop running and to be unloaded. Sets to
-        other values are not valid."
-    ::= { hrSWRunEntry 7 }
-
--- The Host Resources Running Software Performance Group
---
--- The hrSWRunPerfTable contains an entry corresponding to
--- each entry in the hrSWRunTable.
-
-hrSWRunPerfTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HrSWRunPerfEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "The (conceptual) table of running software
-        performance metrics."
-    ::= { hrSWRunPerf 1 }
-
-hrSWRunPerfEntry OBJECT-TYPE
-    SYNTAX     HrSWRunPerfEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A (conceptual) entry containing software performance
-        metrics.  As an example, an instance of the
-        hrSWRunPerfCPU object might be named
-        hrSWRunPerfCPU.1287"
-    AUGMENTS { hrSWRunEntry }  -- This table augments information in
-                               -- the hrSWRunTable.
-    ::= { hrSWRunPerfTable 1 }
-
-HrSWRunPerfEntry ::= SEQUENCE {
-        hrSWRunPerfCPU          Integer32,
-        hrSWRunPerfMem          KBytes
-}
-
-hrSWRunPerfCPU OBJECT-TYPE
-    SYNTAX     Integer32 (0..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of centi-seconds of the total system's CPU
-        resources consumed by this process.  Note that on a
-        multi-processor system, this value may increment by
-        more than one centi-second in one centi-second of real
-        (wall clock) time."
-    ::= { hrSWRunPerfEntry 1 }
-
-hrSWRunPerfMem OBJECT-TYPE
-    SYNTAX     KBytes
-    UNITS      "KBytes"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total amount of real system memory allocated to
-        this process."
-    ::= { hrSWRunPerfEntry 2 }
-
--- The Host Resources Installed Software Group
---
--- The hrSWInstalledTable contains an entry for each piece
--- of software installed in long-term storage (e.g. a disk
--- drive) locally on this host.  Note that this does not
--- include software loadable remotely from a network
--- server.
---
--- Different implementations may track software in varying
--- ways. For example, while some implementations may track
--- executable files as distinct pieces of software, other
--- implementations may use other strategies such as keeping
--- track of software "packages" (e.g., related groups of files)
--- or keeping track of system or application "patches".
---
--- This table is useful for identifying and inventorying
--- software on a host and for diagnosing incompatibility
--- and version mismatch problems between various pieces
--- of hardware and software.
-
-hrSWInstalledLastChange OBJECT-TYPE
-    SYNTAX     TimeTicks
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of sysUpTime when an entry in the
-        hrSWInstalledTable was last added, renamed, or
-        deleted.  Because this table is likely to contain many
-        entries, polling of this object allows a management
-        station to determine when re-downloading of the table
-        might be useful."
-    ::= { hrSWInstalled 1 }
-
-hrSWInstalledLastUpdateTime OBJECT-TYPE
-    SYNTAX     TimeTicks
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of sysUpTime when the hrSWInstalledTable
-        was last completely updated.  Because caching of this
-        data will be a popular implementation strategy,
-        retrieval of this object allows a management station
-        to obtain a guarantee that no data in this table is
-        older than the indicated time."
-    ::= { hrSWInstalled 2 }
-
-hrSWInstalledTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HrSWInstalledEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "The (conceptual) table of software installed on this
-        host."
-    ::= { hrSWInstalled 3 }
-
-hrSWInstalledEntry OBJECT-TYPE
-    SYNTAX     HrSWInstalledEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A (conceptual) entry for a piece of software
-        installed on this host.
-
-        As an example of how objects in this table are named,
-        an instance of the hrSWInstalledName object might be
-        named hrSWInstalledName.96"
-    INDEX { hrSWInstalledIndex }
-    ::= { hrSWInstalledTable 1 }
-
-HrSWInstalledEntry ::= SEQUENCE {
-        hrSWInstalledIndex       Integer32,
-        hrSWInstalledName        InternationalDisplayString,
-        hrSWInstalledID          ProductID,
-        hrSWInstalledType        INTEGER,
-        hrSWInstalledDate        DateAndTime
-}
-
-hrSWInstalledIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A unique value for each piece of software installed
-        on the host.  This value shall be in the range from 1
-        to the number of pieces of software installed on the
-        host."
-    ::= { hrSWInstalledEntry 1 }
-
-hrSWInstalledName OBJECT-TYPE
-    SYNTAX     InternationalDisplayString (SIZE (0..64))
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A textual description of this installed piece of
-        software, including the manufacturer, revision, the
-        name by which it is commonly known, and optionally,
-        its serial number."
-    ::= { hrSWInstalledEntry 2 }
-
-hrSWInstalledID OBJECT-TYPE
-    SYNTAX     ProductID
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The product ID of this installed piece of software."
-    ::= { hrSWInstalledEntry 3 }
-
-hrSWInstalledType OBJECT-TYPE
-    SYNTAX     INTEGER {
-                   unknown(1),
-                   operatingSystem(2),
-                   deviceDriver(3),
-                   application(4)
-               }
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The type of this software."
-    ::= { hrSWInstalledEntry 4 }
-
-hrSWInstalledDate OBJECT-TYPE
-    SYNTAX     DateAndTime
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The last-modification date of this application as it
-        would appear in a directory listing.
-
-        If this information is not known, then this variable
-        shall have the value corresponding to January 1, year
-        0000, 00:00:00.0, which is encoded as
-        (hex)'00 00 01 01 00 00 00 00'."
-    ::= { hrSWInstalledEntry 5 }
-
--- Conformance information
-
-hrMIBCompliances OBJECT IDENTIFIER ::= { hrMIBAdminInfo 2 }
-hrMIBGroups      OBJECT IDENTIFIER ::= { hrMIBAdminInfo 3 }
-
--- Compliance Statements
-hrMIBCompliance MODULE-COMPLIANCE
-    STATUS current
-    DESCRIPTION
-        "The requirements for conformance to the Host Resources MIB."
-    MODULE -- this module
-      MANDATORY-GROUPS { hrSystemGroup, hrStorageGroup,
-                         hrDeviceGroup }
-
-      OBJECT hrSystemDate
-          MIN-ACCESS read-only
-          DESCRIPTION
-              "Write access is not required."
-
-      OBJECT hrSystemInitialLoadDevice
-          MIN-ACCESS read-only
-          DESCRIPTION
-              "Write access is not required."
-
-      OBJECT hrSystemInitialLoadParameters
-          MIN-ACCESS read-only
-          DESCRIPTION
-              "Write access is not required."
-
-      OBJECT hrStorageSize
-          MIN-ACCESS read-only
-          DESCRIPTION
-              "Write access is not required."
-
-      OBJECT hrFSLastFullBackupDate
-          MIN-ACCESS read-only
-          DESCRIPTION
-              "Write access is not required."
-
-      OBJECT hrFSLastPartialBackupDate
-          MIN-ACCESS read-only
-          DESCRIPTION
-              "Write access is not required."
-
-      GROUP hrSWRunGroup
-          DESCRIPTION
-              "The Running Software Group. Implementation
-              of this group is mandatory only when the
-              hrSWRunPerfGroup is implemented."
-
-      OBJECT hrSWRunStatus
-          MIN-ACCESS read-only
-          DESCRIPTION
-              "Write access is not required."
-
-      GROUP hrSWRunPerfGroup
-          DESCRIPTION
-              "The Running Software Performance Group.
-              Implementation of this group is at the discretion
-              of the implementor."
-
-      GROUP hrSWInstalledGroup
-          DESCRIPTION
-              "The Installed Software Group.
-              Implementation of this group is at the discretion
-              of the implementor."
-    ::= { hrMIBCompliances 1 }
-
-    hrSystemGroup OBJECT-GROUP
-        OBJECTS {
-            hrSystemUptime, hrSystemDate,
-            hrSystemInitialLoadDevice,
-            hrSystemInitialLoadParameters,
-            hrSystemNumUsers, hrSystemProcesses,
-            hrSystemMaxProcesses
-        }
-        STATUS current
-        DESCRIPTION
-            "The Host Resources System Group."
-        ::= { hrMIBGroups 1 }
-
-    hrStorageGroup OBJECT-GROUP
-        OBJECTS {
-            hrMemorySize, hrStorageIndex, hrStorageType,
-            hrStorageDescr, hrStorageAllocationUnits,
-            hrStorageSize, hrStorageUsed,
-            hrStorageAllocationFailures
-        }
-        STATUS current
-        DESCRIPTION
-            "The Host Resources Storage Group."
-        ::= { hrMIBGroups 2 }
-
-    hrDeviceGroup OBJECT-GROUP
-        OBJECTS {
-            hrDeviceIndex, hrDeviceType, hrDeviceDescr,
-            hrDeviceID, hrDeviceStatus, hrDeviceErrors,
-            hrProcessorFrwID, hrProcessorLoad,
-            hrNetworkIfIndex, hrPrinterStatus,
-            hrPrinterDetectedErrorState,
-            hrDiskStorageAccess, hrDiskStorageMedia,
-            hrDiskStorageRemoveble, hrDiskStorageCapacity,
-            hrPartitionIndex, hrPartitionLabel,
-            hrPartitionID, hrPartitionSize,
-            hrPartitionFSIndex, hrFSIndex, hrFSMountPoint,
-            hrFSRemoteMountPoint, hrFSType, hrFSAccess,
-            hrFSBootable, hrFSStorageIndex,
-            hrFSLastFullBackupDate,
-            hrFSLastPartialBackupDate
-        }
-        STATUS current
-        DESCRIPTION
-            "The Host Resources Device Group."
-        ::= { hrMIBGroups 3 }
-
-    hrSWRunGroup OBJECT-GROUP
-        OBJECTS {
-            hrSWOSIndex, hrSWRunIndex, hrSWRunName,
-            hrSWRunID, hrSWRunPath, hrSWRunParameters,
-            hrSWRunType, hrSWRunStatus
-        }
-        STATUS current
-        DESCRIPTION
-            "The Host Resources Running Software Group."
-        ::= { hrMIBGroups 4 }
-
-    hrSWRunPerfGroup OBJECT-GROUP
-        OBJECTS { hrSWRunPerfCPU, hrSWRunPerfMem }
-        STATUS current
-        DESCRIPTION
-            "The Host Resources Running Software
-            Performance Group."
-        ::= { hrMIBGroups 5 }
-
-    hrSWInstalledGroup OBJECT-GROUP
-        OBJECTS {
-            hrSWInstalledLastChange,
-            hrSWInstalledLastUpdateTime,
-            hrSWInstalledIndex, hrSWInstalledName,
-            hrSWInstalledID, hrSWInstalledType,
-            hrSWInstalledDate
-        }
-        STATUS current
-        DESCRIPTION
-            "The Host Resources Installed Software Group."
-        ::= { hrMIBGroups 6 }
-
-END
diff --git a/mibs/HOST-RESOURCES-TYPES.txt b/mibs/HOST-RESOURCES-TYPES.txt
deleted file mode 100644
index d25bb40..0000000
--- a/mibs/HOST-RESOURCES-TYPES.txt
+++ /dev/null
@@ -1,389 +0,0 @@
-HOST-RESOURCES-TYPES DEFINITIONS ::= BEGIN
-
-IMPORTS
-  MODULE-IDENTITY, OBJECT-IDENTITY        FROM SNMPv2-SMI
-  hrMIBAdminInfo, hrStorage, hrDevice     FROM HOST-RESOURCES-MIB;
-
-hostResourcesTypesModule MODULE-IDENTITY
-  LAST-UPDATED "200003060000Z"    -- 6 March, 2000
-  ORGANIZATION "IETF Host Resources MIB Working Group"
-  CONTACT-INFO
-      "Steve Waldbusser
-      Postal: Lucent Technologies, Inc.
-              1213 Innsbruck Dr.
-              Sunnyvale, CA 94089
-              USA
-      Phone: 650-318-1251
-      Fax:   650-318-1633
-      Email: waldbusser at ins.com
-
-      In addition, the Host Resources MIB mailing list is dedicated
-      to discussion of this MIB. To join the mailing list, send a
-      request message to hostmib-request at andrew.cmu.edu. The mailing
-      list address is hostmib at andrew.cmu.edu."
-  DESCRIPTION
-      "This MIB module registers type definitions for
-      storage types, device types, and file system types.
-
-      After the initial revision, this module will be
-      maintained by IANA."
-  REVISION "200003060000Z"    -- 6 March 2000
-  DESCRIPTION
-      "The original version of this module, published as RFC
-      2790."
-  ::= { hrMIBAdminInfo 4 }
-
--- Registrations for some storage types, for use with hrStorageType
-hrStorageTypes          OBJECT IDENTIFIER ::= { hrStorage 1 }
-
-hrStorageOther OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The storage type identifier used when no other defined
-        type is appropriate."
-    ::= { hrStorageTypes 1 }
-
-hrStorageRam OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The storage type identifier used for RAM."
-    ::= { hrStorageTypes 2 }
-
-hrStorageVirtualMemory OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The storage type identifier used for virtual memory,
-        temporary storage of swapped or paged memory."
-    ::= { hrStorageTypes 3 }
-
-hrStorageFixedDisk OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The storage type identifier used for non-removable
-        rigid rotating magnetic storage devices."
-    ::= { hrStorageTypes 4 }
-
-hrStorageRemovableDisk OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The storage type identifier used for removable rigid
-        rotating magnetic storage devices."
-    ::= { hrStorageTypes 5 }
-
-hrStorageFloppyDisk OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The storage type identifier used for non-rigid rotating
-        magnetic storage devices."
-    ::= { hrStorageTypes 6 }
-
-hrStorageCompactDisc OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The storage type identifier used for read-only rotating
-        optical storage devices."
-    ::= { hrStorageTypes 7 }
-
-hrStorageRamDisk OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The storage type identifier used for a file system that
-        is stored in RAM."
-    ::= { hrStorageTypes 8 }
-
-hrStorageFlashMemory OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The storage type identifier used for flash memory."
-    ::= { hrStorageTypes 9 }
-
-hrStorageNetworkDisk OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The storage type identifier used for a
-        networked file system."
-    ::= { hrStorageTypes 10 }
-
--- Registrations for some device types, for use with hrDeviceType
-hrDeviceTypes             OBJECT IDENTIFIER ::= { hrDevice 1 }
-
-hrDeviceOther OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used when no other defined
-        type is appropriate."
-    ::= { hrDeviceTypes 1 }
-
-hrDeviceUnknown OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used when the device type is
-        unknown."
-    ::= { hrDeviceTypes 2 }
-
-hrDeviceProcessor OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a CPU."
-    ::= { hrDeviceTypes 3 }
-
-hrDeviceNetwork OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a network interface."
-    ::= { hrDeviceTypes 4 }
-
-hrDevicePrinter OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a printer."
-    ::= { hrDeviceTypes 5 }
-
-hrDeviceDiskStorage OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a disk drive."
-    ::= { hrDeviceTypes 6 }
-
-hrDeviceVideo OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a video device."
-    ::= { hrDeviceTypes 10 }
-
-hrDeviceAudio OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for an audio device."
-    ::= { hrDeviceTypes 11 }
-
-hrDeviceCoprocessor OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a co-processor."
-    ::= { hrDeviceTypes 12 }
-
-hrDeviceKeyboard OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a keyboard device."
-    ::= { hrDeviceTypes 13 }
-
-hrDeviceModem OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a modem."
-    ::= { hrDeviceTypes 14 }
-
-hrDeviceParallelPort OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a parallel port."
-    ::= { hrDeviceTypes 15 }
-
-hrDevicePointing OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a pointing device
-        (e.g., a mouse)."
-    ::= { hrDeviceTypes 16 }
-
-hrDeviceSerialPort OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a serial port."
-    ::= { hrDeviceTypes 17 }
-
-hrDeviceTape OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a tape storage device."
-    ::= { hrDeviceTypes 18 }
-
-hrDeviceClock OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a clock device."
-    ::= { hrDeviceTypes 19 }
-
-hrDeviceVolatileMemory OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a volatile memory
-        storage device."
-    ::= { hrDeviceTypes 20 }
-
-hrDeviceNonVolatileMemory OBJECT-IDENTITY
-    STATUS current
-    DESCRIPTION
-        "The device type identifier used for a non-volatile memory
-
-        storage device."
-    ::= { hrDeviceTypes 21 }
-
--- Registrations for some popular File System types,
--- for use with hrFSType.
-hrFSTypes               OBJECT IDENTIFIER ::= { hrDevice 9 }
-
-hrFSOther OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used when no other
-        defined type is appropriate."
-    ::= { hrFSTypes 1 }
-
-hrFSUnknown OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used when the type of
-        file system is unknown."
-    ::= { hrFSTypes 2 }
-
-hrFSBerkeleyFFS OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        Berkeley Fast File System."
-    ::= { hrFSTypes 3 }
-
-hrFSSys5FS OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        System V File System."
-    ::= { hrFSTypes 4 }
-
-hrFSFat OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for
-        DOS's FAT file system."
-    ::= { hrFSTypes 5 }
-
-hrFSHPFS OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for OS/2's
-        High Performance File System."
-    ::= { hrFSTypes 6 }
-
-hrFSHFS OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        Macintosh Hierarchical File System."
-    ::= { hrFSTypes 7 }
-
-hrFSMFS OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        Macintosh File System."
-    ::= { hrFSTypes 8 }
-
-hrFSNTFS OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        Windows NT File System."
-    ::= { hrFSTypes 9 }
-
-hrFSVNode OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        VNode File System."
-    ::= { hrFSTypes 10 }
-
-hrFSJournaled OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        Journaled File System."
-    ::= { hrFSTypes 11 }
-
-hrFSiso9660 OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        ISO 9660 File System for CD's."
-    ::= { hrFSTypes 12 }
-
-hrFSRockRidge OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        RockRidge File System for CD's."
-    ::= { hrFSTypes 13 }
-
-hrFSNFS OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        NFS File System."
-    ::= { hrFSTypes 14 }
-
-hrFSNetware OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        Netware File System."
-    ::= { hrFSTypes 15 }
-
-hrFSAFS OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        Andrew File System."
-    ::= { hrFSTypes 16 }
-
-hrFSDFS OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        OSF DCE Distributed File System."
-    ::= { hrFSTypes 17 }
-
-hrFSAppleshare OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        AppleShare File System."
-    ::= { hrFSTypes 18 }
-
-hrFSRFS OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        RFS File System."
-    ::= { hrFSTypes 19 }
-
-hrFSDGCFS OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        Data General DGCFS."
-    ::= { hrFSTypes 20 }
-
-hrFSBFS OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        SVR4 Boot File System."
-    ::= { hrFSTypes 21 }
-
-hrFSFAT32 OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        Windows FAT32 File System."
-    ::= { hrFSTypes 22 }
-
-hrFSLinuxExt2 OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The file system type identifier used for the
-        Linux EXT2 File System."
-    ::= { hrFSTypes 23 }
-
-END
diff --git a/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt b/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt
deleted file mode 100644
index 73322dd..0000000
--- a/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt
+++ /dev/null
@@ -1,123 +0,0 @@
-  IANA-ADDRESS-FAMILY-NUMBERS-MIB DEFINITIONS ::= BEGIN
-
-  IMPORTS
-      MODULE-IDENTITY,
-      mib-2                               FROM SNMPv2-SMI
-      TEXTUAL-CONVENTION                  FROM SNMPv2-TC;
-
-  ianaAddressFamilyNumbers MODULE-IDENTITY
-      LAST-UPDATED "200203140000Z"  -- March 14, 2002
-      ORGANIZATION "IANA"
-      CONTACT-INFO
-          "Postal:    Internet Assigned Numbers Authority
-                      Internet Corporation for Assigned Names
-		      and Numbers
-                      4676 Admiralty Way, Suite 330
-                      Marina del Rey, CA 90292-6601
-                      USA
-
-          Tel:    +1  310-823-9358
-          E-Mail: iana at iana.org"
-      DESCRIPTION
-          "The MIB module defines the AddressFamilyNumbers
-          textual convention."
-
-      -- revision history
-
-      REVISION     "200203140000Z"  -- March 14, 2002
-      DESCRIPTION  "AddressFamilyNumbers assignment 22 to 
-                   fibreChannelWWPN. AddressFamilyNumbers 
-                   assignment 23 to fibreChannelWWNN.
-                   AddressFamilyNumers assignment 24 to gwid."
-
-      REVISION     "200009080000Z"  -- September 8, 2000
-      DESCRIPTION  "AddressFamilyNumbers assignment 19 to xtpOverIpv4.  
-                   AddressFamilyNumbers assignment 20 to xtpOverIpv6.  
-                   AddressFamilyNumbers assignment 21 to xtpNativeModeXTP."
-
-      REVISION     "200003010000Z"  -- March 1, 2000
-      DESCRIPTION  "AddressFamilyNumbers assignment 17 to distinguishedName. 
-                   AddressFamilyNumbers assignment 18 to asNumber."
-
-      REVISION     "200002040000Z"  -- February 4, 2000
-      DESCRIPTION  "AddressFamilyNumbers assignment 16 to dns."
-
-      REVISION     "9908260000Z"  -- August 26, 1999
-      DESCRIPTION  "Initial version, published as RFC 2677."
-      ::= { mib-2 72 }
-
-  AddressFamilyNumbers ::= TEXTUAL-CONVENTION
-      STATUS       current
-      DESCRIPTION
-          "The definition of this textual convention with the
-          addition of newly assigned values is published
-          periodically by the IANA, in either the Assigned
-          Numbers RFC, or some derivative of it specific to
-          Internet Network Management number assignments.
-          (The latest arrangements can be obtained by
-          contacting the IANA.)
-
-          The enumerations are described as:
-
-          other(0),    -- none of the following
-          ipV4(1),     -- IP Version 4
-          ipV6(2),     -- IP Version 6
-          nsap(3),     -- NSAP
-          hdlc(4),     -- (8-bit multidrop)
-          bbn1822(5),
-          all802(6),   -- (includes all 802 media
-                       --   plus Ethernet 'canonical format')
-          e163(7),
-          e164(8),     -- (SMDS, Frame Relay, ATM)
-          f69(9),      -- (Telex)
-          x121(10),    -- (X.25, Frame Relay)
-          ipx(11),     -- IPX (Internet Protocol Exchange)
-          appleTalk(12),  -- Apple Talk
-          decnetIV(13),   -- DEC Net Phase IV
-          banyanVines(14),  -- Banyan Vines
-          e164withNsap(15),
-                       -- (E.164 with NSAP format subaddress)
-          dns(16),     -- (Domain Name System)
-          distinguishedName(17), -- (Distinguished Name, per X.500)
-          asNumber(18), -- (16-bit quantity, per the AS number space)
-          xtpOverIpv4(19),  -- XTP over IP version 4
-          xtpOverIpv6(20),  -- XTP over IP version 6
-          xtpNativeModeXTP(21),  -- XTP native mode XTP
-          fibreChannelWWPN(22),  -- Fibre Channel World-Wide Port Name 
-          fibreChannelWWNN(23),  -- Fibre Channel World-Wide Node Name
-          gwid(24),    -- Gateway Identifier 
-          afi(25),  -- AFI for L2VPN information
-          reserved(65535)
-
-          Requests for new values should be made to IANA via
-          email (iana at iana.org)."
-      SYNTAX  INTEGER {
-                  other(0),
-                  ipV4(1),
-                  ipV6(2),
-                  nsap(3),
-                  hdlc(4),
-                  bbn1822(5),
-                  all802(6),
-                  e163(7),
-                  e164(8),
-                  f69(9),
-                  x121(10),
-                  ipx(11),
-                  appleTalk(12),
-                  decnetIV(13),
-                  banyanVines(14),
-                  e164withNsap(15),
-                  dns(16),
-                  distinguishedName(17), -- (Distinguished Name, per X.500)
-                  asNumber(18), -- (16-bit quantity, per the AS number space)
-                  xtpOverIpv4(19),
-                  xtpOverIpv6(20),
-                  xtpNativeModeXTP(21),
-                  fibreChannelWWPN(22),
-                  fibreChannelWWNN(23),
-                  gwid(24),
-                  afi(25),
-                  reserved(65535)
-              }
-      END
diff --git a/mibs/IANA-LANGUAGE-MIB.txt b/mibs/IANA-LANGUAGE-MIB.txt
deleted file mode 100644
index b0ad3ed..0000000
--- a/mibs/IANA-LANGUAGE-MIB.txt
+++ /dev/null
@@ -1,123 +0,0 @@
-IANA-LANGUAGE-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-IDENTITY, mib-2
-        FROM SNMPv2-SMI;
-
-ianaLanguages MODULE-IDENTITY
-    LAST-UPDATED "200005100000Z"  -- May 10, 2000
-    ORGANIZATION "IANA"
-    CONTACT-INFO
-        "Internet Assigned Numbers Authority (IANA)
-
-         Postal: ICANN
-                 4676 Admiralty Way, Suite 330
-                 Marina del Rey, CA 90292
-
-         Tel:    +1 310 823 9358 x20
-         E-Mail: iana at iana.org"
-    DESCRIPTION
-        "The MIB module registers object identifier values for
-         well-known programming and scripting languages. Every
-         language registration MUST describe the format used
-         when transferring scripts written in this language.
-
-         Any additions or changes to the contents of this MIB
-         module require Designated Expert Review as defined in
-         the Guidelines for Writing IANA Considerations Section
-         document. The Designated Expert will be selected by
-         the IESG Area Director of the OPS Area.
-
-         Note, this module does not have to register all possible
-         languages since languages are identified by object
-         identifier values. It is therefore possible to registered 
-         languages in private OID trees. The references given below are not
-         normative with regard to the language version. Other
-         references might be better suited to describe some newer 
-         versions of this language. The references are only
-         provided as `a pointer into the right direction'."
-
- -- Revision log, in reverse chronological order
-
-    REVISION    "200005100000Z" -- May 10, 2000
-    DESCRIPTION "Import mib-2 instead of experimental, so that
-                 this module compiles"
-
-    REVISION    "199909090900Z" -- September 9, 1999
-    DESCRIPTION "Initial version as published at time of
-                 publication of RFC 2591."
-    ::= { mib-2 73 }
-
-ianaLangJavaByteCode OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "Java byte code to be processed by a Java virtual machine.
-         A script written in Java byte code is transferred by using
-         the Java archive file format (JAR)."
-    REFERENCE
-        "The Java Virtual Machine Specification.
-         ISBN 0-201-63452-X"
-    ::= { ianaLanguages 1 }
-
-ianaLangTcl OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The Tool Command Language (Tcl). A script written in the
-         Tcl language is transferred in Tcl source code format."
-    REFERENCE
-        "Tcl and the Tk Toolkit.
-         ISBN 0-201-63337-X"
-    ::= { ianaLanguages 2 }
-
-ianaLangPerl OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The Perl language. A script written in the Perl language
-         is transferred in Perl source code format."
-    REFERENCE
-        "Programming Perl.
-         ISBN 1-56592-149-6"
-    ::= { ianaLanguages 3 }
-
-ianaLangScheme OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The Scheme language. A script written in the Scheme
-         language is transferred in Scheme source code format."
-    REFERENCE
-        "The Revised^4 Report on the Algorithmic Language Scheme.
-         MIT Press"
-    ::= { ianaLanguages 4 }
-
-ianaLangSRSL OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The SNMP Script Language defined by SNMP Research. A
-         script written in the SNMP Script Language is transferred
-         in the SNMP Script Language source code format."
-    ::= { ianaLanguages 5 }
-
-ianaLangPSL OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The Patrol Script Language defined by BMC Software. A script
-         written in the Patrol Script Language is transferred in the
-         Patrol Script Language source code format."
-    REFERENCE
-        "PATROL Script Language Reference Manual, Version 3.0,
-         November 30, 1995. BMC Software, Inc. 2101 City West Blvd.,
-         Houston, Texas 77042."
-    ::= { ianaLanguages 6 }
-
-ianaLangSMSL OBJECT-IDENTITY
-    STATUS  current
-    DESCRIPTION
-        "The Systems Management Scripting Language. A script written
-         in the SMSL language is transferred in the SMSL source code
-         format."
-    REFERENCE
-        "ISO/ITU Command Sequencer.
-         ISO 10164-21 or ITU X.753"
-    ::= { ianaLanguages 7 }
-
-END
diff --git a/mibs/IANA-RTPROTO-MIB.txt b/mibs/IANA-RTPROTO-MIB.txt
deleted file mode 100644
index f50992e..0000000
--- a/mibs/IANA-RTPROTO-MIB.txt
+++ /dev/null
@@ -1,91 +0,0 @@
-IANA-RTPROTO-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, mib-2           FROM SNMPv2-SMI
-    TEXTUAL-CONVENTION               FROM SNMPv2-TC;
-
-ianaRtProtoMIB  MODULE-IDENTITY
-    LAST-UPDATED "201107220000Z" -- July 22, 2011
-    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
-
-              Phone: +1 310 823 9358
-              EMail: iana&iana.org"
-    DESCRIPTION
-            "This MIB module defines the IANAipRouteProtocol and
-            IANAipMRouteProtocol textual conventions for use in MIBs
-            which need to identify unicast or multicast routing
-            mechanisms.
-
-            Any additions or changes to the contents of this MIB module
-            require either publication of an RFC, or Designated Expert
-            Review as defined in RFC 2434, Guidelines for Writing an
-            IANA Considerations Section in RFCs.  The Designated Expert 
-            will be selected by the IESG Area Director(s) of the Routing
-            Area."
-
-    REVISION     "201107220000Z"  -- July 22, 2011 
-    DESCRIPTION  "Added rpl(18) ."
-
-    REVISION     "200009260000Z"  -- September 26, 2000 
-    DESCRIPTION  "Original version, published in coordination
-                 with RFC 2932."
-    ::= { mib-2 84 }
-
-IANAipRouteProtocol ::= TEXTUAL-CONVENTION
-   STATUS      current
-   DESCRIPTION
-            "A mechanism for learning routes.  Inclusion of values for
-            routing protocols is not intended to imply that those
-            protocols need be supported."
-   SYNTAX      INTEGER {
-                other     (1),  -- not specified
-                local     (2),  -- local interface
-                netmgmt   (3),  -- static route
-                icmp      (4),  -- result of ICMP Redirect
-
-                        -- the following are all dynamic
-                        -- routing protocols
-
-                egp        (5),  -- Exterior Gateway Protocol
-                ggp        (6),  -- Gateway-Gateway Protocol
-                hello      (7),  -- FuzzBall HelloSpeak
-                rip        (8),  -- Berkeley RIP or RIP-II
-                isIs       (9),  -- Dual IS-IS
-                esIs       (10), -- ISO 9542
-                ciscoIgrp  (11), -- Cisco IGRP
-                bbnSpfIgp  (12), -- BBN SPF IGP
-                ospf       (13), -- Open Shortest Path First
-                bgp        (14), -- Border Gateway Protocol
-                idpr       (15), -- InterDomain Policy Routing
-                ciscoEigrp (16), -- Cisco EIGRP
-                dvmrp      (17), -- DVMRP
-                rpl        (18)  -- RPL [RFC-ietf-roll-rpl-19]
-               }
-
-IANAipMRouteProtocol ::= TEXTUAL-CONVENTION
-   STATUS      current
-   DESCRIPTION
-            "The multicast routing protocol.  Inclusion of values for
-            multicast routing protocols is not intended to imply that
-            those protocols need be supported."
-   SYNTAX      INTEGER {
-                   other(1),          -- none of the following
-                   local(2),          -- e.g., manually configured
-                   netmgmt(3),        -- set via net.mgmt protocol
-                   dvmrp(4),
-                   mospf(5),
-                   pimSparseDense(6), -- PIMv1, both DM and SM
-                   cbt(7),
-                   pimSparseMode(8),  -- PIM-SM
-                   pimDenseMode(9),   -- PIM-DM
-                   igmpOnly(10),
-                   bgmp(11),
-                   msdp(12)
-               }
-
-END
diff --git a/mibs/IANAifType-MIB.txt b/mibs/IANAifType-MIB.txt
deleted file mode 100644
index df59fa9..0000000
--- a/mibs/IANAifType-MIB.txt
+++ /dev/null
@@ -1,638 +0,0 @@
-   IANAifType-MIB DEFINITIONS ::= BEGIN
-
-   IMPORTS
-       MODULE-IDENTITY, mib-2      FROM SNMPv2-SMI
-       TEXTUAL-CONVENTION          FROM SNMPv2-TC;
-
-   ianaifType MODULE-IDENTITY
-       LAST-UPDATED "201205170000Z"  -- May 17, 2012
-       ORGANIZATION "IANA"
-       CONTACT-INFO "        Internet Assigned Numbers Authority
-
-                     Postal: ICANN
-                             4676 Admiralty Way, Suite 330
-                             Marina del Rey, CA 90292
-
-                     Tel:    +1 310 823 9358
-                     E-Mail: iana&iana.org"
-       DESCRIPTION  "This MIB module defines the IANAifType Textual
-                     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."
-
-       REVISION     "200902060000Z"  -- February 06, 2009
-       DESCRIPTION  "Registration of new IANAtunnelType 15."
-
-       REVISION     "200810090000Z"  -- October 09, 2008
-       DESCRIPTION  "Registration of new IANAifType 250."
-
-       REVISION     "200808120000Z"  -- August 12, 2008
-       DESCRIPTION  "Registration of new IANAifType 249."
-
-       REVISION     "200807220000Z"  -- July 22, 2008
-       DESCRIPTION  "Registration of new IANAifTypes 247 and 248."
-
-       REVISION     "200806240000Z"  -- June 24, 2008
-       DESCRIPTION  "Registration of new IANAifType 246."
-
-       REVISION     "200805290000Z"  -- May 29, 2008
-       DESCRIPTION  "Registration of new IANAifType 245."
-
-       REVISION     "200709130000Z"  -- September 13, 2007
-       DESCRIPTION  "Registration of new IANAifTypes 243 and 244."
-
-       REVISION     "200705290000Z"  -- May 29, 2007
-       DESCRIPTION  "Changed the description for IANAifType 228."
-
-       REVISION     "200703080000Z"  -- March 08, 2007
-       DESCRIPTION  "Registration of new IANAifType 242."
-
-       REVISION     "200701230000Z"  -- January 23, 2007
-       DESCRIPTION  "Registration of new IANAifTypes 239, 240, and 241." 
-
-       REVISION     "200610170000Z"  -- October 17, 2006
-       DESCRIPTION  "Deprecated/Obsoleted IANAifType 230.  Registration of 
-                     IANAifType 238." 
-
-       REVISION     "200609250000Z"  -- September 25, 2006
-       DESCRIPTION  "Changed the description for IANA ifType 
-                     184 and added new IANA ifType 237."  
-
-       REVISION     "200608170000Z"  -- August 17, 2006
-       DESCRIPTION  "Changed the descriptions for IANAifTypes
-                     20 and 21."   
-
-       REVISION     "200608110000Z"  -- August 11, 2006
-       DESCRIPTION  "Changed the descriptions for IANAifTypes
-                     7, 11, 62, 69, and 117."   
-
-       REVISION     "200607250000Z"  -- July 25, 2006
-       DESCRIPTION  "Registration of new IANA ifType 236."
-
-       REVISION     "200606140000Z"  -- June 14, 2006
-       DESCRIPTION  "Registration of new IANA ifType 235."
-
-       REVISION     "200603310000Z"  -- March 31, 2006
-       DESCRIPTION  "Registration of new IANA ifType 234."
-
-       REVISION     "200603300000Z"  -- March 30, 2006
-       DESCRIPTION  "Registration of new IANA ifType 233."
-
-       REVISION     "200512220000Z"  -- December 22, 2005
-       DESCRIPTION  "Registration of new IANA ifTypes 231 and 232."
-
-       REVISION     "200510100000Z"  -- October 10, 2005
-       DESCRIPTION  "Registration of new IANA ifType 230."
-
-       REVISION     "200509090000Z"  -- September 09, 2005
-       DESCRIPTION  "Registration of new IANA ifType 229."
-
-       REVISION     "200505270000Z"  -- May 27, 2005
-       DESCRIPTION  "Registration of new IANA ifType 228."
-
-       REVISION     "200503030000Z"  -- March 3, 2005
-       DESCRIPTION  "Added the IANAtunnelType TC and deprecated
-	                 IANAifType sixToFour (215) per RFC4087."
-
-       REVISION     "200411220000Z"  -- November 22, 2004
-       DESCRIPTION  "Registration of new IANA ifType 227 per RFC4631."
-
-       REVISION     "200406170000Z"  -- June 17, 2004
-       DESCRIPTION  "Registration of new IANA ifType 226."
-
-       REVISION     "200405120000Z"  -- May 12, 2004
-       DESCRIPTION  "Added description for IANAifType 6, and 
-	                 changed the descriptions for IANAifTypes
-                     180, 181, and 182."
-
-       REVISION     "200405070000Z"  -- May 7, 2004
-       DESCRIPTION  "Registration of new IANAifType 225."
-
-       REVISION     "200308250000Z"  -- Aug 25, 2003
-       DESCRIPTION  "Deprecated IANAifTypes 7 and 11. Obsoleted
-                     IANAifTypes 62, 69, and 117.  ethernetCsmacd (6)
-                     should be used instead of these values"
-
-       REVISION     "200308180000Z"  -- Aug 18, 2003
-       DESCRIPTION  "Registration of new IANAifType
-                     224."
-
-       REVISION     "200308070000Z"  -- Aug 7, 2003
-       DESCRIPTION  "Registration of new IANAifTypes
-                     222 and 223."
-
-       REVISION     "200303180000Z"  -- Mar 18, 2003
-       DESCRIPTION  "Registration of new IANAifType
-                     221."
-
-       REVISION     "200301130000Z"  -- Jan 13, 2003
-       DESCRIPTION  "Registration of new IANAifType
-                     220."
-
-       REVISION     "200210170000Z"  -- Oct 17, 2002
-       DESCRIPTION  "Registration of new IANAifType
-                     219."
-
-       REVISION     "200207160000Z"  -- Jul 16, 2002
-       DESCRIPTION  "Registration of new IANAifTypes
-                     217 and 218."
-
-       REVISION     "200207100000Z"  -- Jul 10, 2002
-       DESCRIPTION  "Registration of new IANAifTypes
-                     215 and 216."
-
-       REVISION     "200206190000Z"  -- Jun 19, 2002
-       DESCRIPTION  "Registration of new IANAifType
-                     214."
-
-       REVISION     "200201040000Z"  -- Jan 4, 2002
-       DESCRIPTION  "Registration of new IANAifTypes
-                     211, 212 and 213."
-
-       REVISION     "200112200000Z"  -- Dec 20, 2001
-       DESCRIPTION  "Registration of new IANAifTypes
-                     209 and 210."
-
-       REVISION     "200111150000Z"  -- Nov 15, 2001
-       DESCRIPTION  "Registration of new IANAifTypes
-                     207 and 208."
-
-       REVISION     "200111060000Z"  -- Nov 6, 2001
-       DESCRIPTION  "Registration of new IANAifType
-                     206."
-
-       REVISION     "200111020000Z"  -- Nov 2, 2001
-       DESCRIPTION  "Registration of new IANAifType
-                     205."
-
-       REVISION     "200110160000Z"  -- Oct 16, 2001
-       DESCRIPTION  "Registration of new IANAifTypes
-                     199, 200, 201, 202, 203, and 204."
-
-       REVISION     "200109190000Z"  -- Sept 19, 2001
-       DESCRIPTION  "Registration of new IANAifType
-                     198."
-
-       REVISION     "200105110000Z"  -- May 11, 2001
-       DESCRIPTION  "Registration of new IANAifType
-                     197."
-
-       REVISION     "200101120000Z"  -- Jan 12, 2001
-       DESCRIPTION  "Registration of new IANAifTypes
-                     195 and 196."
-
-       REVISION     "200012190000Z"  -- Dec 19, 2000
-       DESCRIPTION  "Registration of new IANAifTypes
-                     193 and 194."
-
-       REVISION     "200012070000Z"  -- Dec 07, 2000
-       DESCRIPTION  "Registration of new IANAifTypes
-                     191 and 192."
-
-       REVISION     "200012040000Z"  -- Dec 04, 2000
-       DESCRIPTION  "Registration of new IANAifType
-                     190."
-
-       REVISION     "200010170000Z"  -- Oct 17, 2000
-       DESCRIPTION  "Registration of new IANAifTypes
-                     188 and 189."  
-
-       REVISION     "200010020000Z"  -- Oct 02, 2000
-       DESCRIPTION  "Registration of new IANAifType 187." 
-
-       REVISION     "200009010000Z"  -- Sept 01, 2000
-       DESCRIPTION  "Registration of new IANAifTypes
-                     184, 185, and 186."			
-
-       REVISION     "200008240000Z"  -- Aug 24, 2000
-       DESCRIPTION  "Registration of new IANAifType 183." 
-
-       REVISION     "200008230000Z"  -- Aug 23, 2000
-       DESCRIPTION  "Registration of new IANAifTypes
-                     174-182."
-
-       REVISION     "200008220000Z"  -- Aug 22, 2000
-       DESCRIPTION  "Registration of new IANAifTypes 170,
-                     171, 172 and 173."
-
-       REVISION     "200004250000Z"  -- Apr 25, 2000
-       DESCRIPTION  "Registration of new IANAifTypes 168 and 169."       
-
-       REVISION     "200003060000Z"  -- Mar 6, 2000
-       DESCRIPTION  "Fixed a missing semi-colon in the IMPORT.
-                     Also cleaned up the REVISION log a bit.
-                     It is not complete, but from now on it will
-                     be maintained and kept up to date with each
-                     change to this MIB module."
-
-       REVISION     "199910081430Z"  -- Oct 08, 1999
-       DESCRIPTION  "Include new name assignments up to cnr(85).
-                     This is the first version available via the WWW
-                     at: ftp://ftp.isi.edu/mib/ianaiftype.mib"
-
-       REVISION     "199401310000Z"  -- Jan 31, 1994
-       DESCRIPTION  "Initial version of this MIB as published in
-                     RFC 1573."
-       ::= { mib-2 30 }
-
-   IANAifType ::= TEXTUAL-CONVENTION
-       STATUS       current
-       DESCRIPTION
-               "This data type is used as the syntax of the ifType
-               object in the (updated) definition of MIB-II's
-               ifTable.
-
-               The definition of this textual convention with the
-               addition of newly assigned values is published
-               periodically by the IANA, in either the Assigned
-               Numbers RFC, or some derivative of it specific to
-               Internet Network Management number assignments.  (The
-               latest arrangements can be obtained by contacting the
-               IANA.)
-
-               Requests for new values should be made to IANA via
-               email (iana&iana.org).
-
-               The relationship between the assignment of ifType
-               values and of OIDs to particular media-specific MIBs
-               is solely the purview of IANA and is subject to change
-               without notice.  Quite often, a media-specific MIB's
-               OID-subtree assignment within MIB-II's 'transmission'
-               subtree will be the same as its ifType value.
-               However, in some circumstances this will not be the
-               case, and implementors must not pre-assume any
-               specific relationship between ifType values and
-               transmission subtree OIDs."
-       SYNTAX  INTEGER {
-                   other(1),          -- none of the following
-                   regular1822(2),
-                   hdh1822(3),
-                   ddnX25(4),
-                   rfc877x25(5),
-                   ethernetCsmacd(6), -- for all ethernet-like interfaces,
-                                      -- regardless of speed, as per RFC3635
-                   iso88023Csmacd(7), -- Deprecated via RFC3635
-                                      -- ethernetCsmacd (6) should be used instead
-                   iso88024TokenBus(8),
-                   iso88025TokenRing(9),
-                   iso88026Man(10),
-                   starLan(11), -- Deprecated via RFC3635
-                                -- ethernetCsmacd (6) should be used instead
-                   proteon10Mbit(12),
-                   proteon80Mbit(13),
-                   hyperchannel(14),
-                   fddi(15),
-                   lapb(16),
-                   sdlc(17),
-                   ds1(18),            -- DS1-MIB
-                   e1(19),             -- Obsolete see DS1-MIB
-                   basicISDN(20),              -- no longer used
-                                               -- see also RFC2127
-                   primaryISDN(21),            -- no longer used
-                                               -- see also RFC2127
-                   propPointToPointSerial(22), -- proprietary serial
-                   ppp(23),
-                   softwareLoopback(24),
-                   eon(25),            -- CLNP over IP 
-                   ethernet3Mbit(26),
-                   nsip(27),           -- XNS over IP
-                   slip(28),           -- generic SLIP
-                   ultra(29),          -- ULTRA technologies
-                   ds3(30),            -- DS3-MIB
-                   sip(31),            -- SMDS, coffee
-                   frameRelay(32),     -- DTE only. 
-                   rs232(33),
-                   para(34),           -- parallel-port
-                   arcnet(35),         -- arcnet
-                   arcnetPlus(36),     -- arcnet plus
-                   atm(37),            -- ATM cells
-                   miox25(38),
-                   sonet(39),          -- SONET or SDH 
-                   x25ple(40),
-                   iso88022llc(41),
-                   localTalk(42),
-                   smdsDxi(43),
-                   frameRelayService(44),  -- FRNETSERV-MIB
-                   v35(45),
-                   hssi(46),
-                   hippi(47),
-                   modem(48),          -- Generic modem
-                   aal5(49),           -- AAL5 over ATM
-                   sonetPath(50),
-                   sonetVT(51),
-                   smdsIcip(52),       -- SMDS InterCarrier Interface
-                   propVirtual(53),    -- proprietary virtual/internal
-                   propMultiplexor(54),-- proprietary multiplexing
-                   ieee80212(55),      -- 100BaseVG
-                   fibreChannel(56),   -- Fibre Channel
-                   hippiInterface(57), -- HIPPI interfaces     
-                   frameRelayInterconnect(58), -- Obsolete, use either
-                                       -- frameRelay(32) or 
-                                       -- frameRelayService(44).
-                   aflane8023(59),     -- ATM Emulated LAN for 802.3
-                   aflane8025(60),     -- ATM Emulated LAN for 802.5
-                   cctEmul(61),        -- ATM Emulated circuit          
-                   fastEther(62),      -- Obsoleted via RFC3635
-                                       -- ethernetCsmacd (6) should be used instead
-                   isdn(63),           -- ISDN and X.25           
-                   v11(64),            -- CCITT V.11/X.21             
-                   v36(65),            -- CCITT V.36                  
-                   g703at64k(66),      -- CCITT G703 at 64Kbps
-                   g703at2mb(67),      -- Obsolete see DS1-MIB
-                   qllc(68),           -- SNA QLLC                    
-                   fastEtherFX(69),    -- Obsoleted via RFC3635
-                                       -- ethernetCsmacd (6) should be used instead
-                   channel(70),        -- channel                     
-                   ieee80211(71),      -- radio spread spectrum       
-                   ibm370parChan(72),  -- IBM System 360/370 OEMI Channel
-                   escon(73),          -- IBM Enterprise Systems Connection
-                   dlsw(74),           -- Data Link Switching
-                   isdns(75),          -- ISDN S/T interface
-                   isdnu(76),          -- ISDN U interface
-                   lapd(77),           -- Link Access Protocol D
-                   ipSwitch(78),       -- IP Switching Objects
-                   rsrb(79),           -- Remote Source Route Bridging
-                   atmLogical(80),     -- ATM Logical Port
-                   ds0(81),            -- Digital Signal Level 0
-                   ds0Bundle(82),      -- group of ds0s on the same ds1
-                   bsc(83),            -- Bisynchronous Protocol
-                   async(84),          -- Asynchronous Protocol
-                   cnr(85),            -- Combat Net Radio
-                   iso88025Dtr(86),    -- ISO 802.5r DTR
-                   eplrs(87),          -- Ext Pos Loc Report Sys
-                   arap(88),           -- Appletalk Remote Access Protocol
-                   propCnls(89),       -- Proprietary Connectionless Protocol
-                   hostPad(90),        -- CCITT-ITU X.29 PAD Protocol
-                   termPad(91),        -- CCITT-ITU X.3 PAD Facility
-                   frameRelayMPI(92),  -- Multiproto Interconnect over FR
-                   x213(93),           -- CCITT-ITU X213
-                   adsl(94),           -- Asymmetric Digital Subscriber Loop
-                   radsl(95),          -- Rate-Adapt. Digital Subscriber Loop
-                   sdsl(96),           -- Symmetric Digital Subscriber Loop
-                   vdsl(97),           -- Very H-Speed Digital Subscrib. Loop
-                   iso88025CRFPInt(98), -- ISO 802.5 CRFP
-                   myrinet(99),        -- Myricom Myrinet
-                   voiceEM(100),       -- voice recEive and transMit
-                   voiceFXO(101),      -- voice Foreign Exchange Office
-                   voiceFXS(102),      -- voice Foreign Exchange Station
-                   voiceEncap(103),    -- voice encapsulation
-                   voiceOverIp(104),   -- voice over IP encapsulation
-                   atmDxi(105),        -- ATM DXI
-                   atmFuni(106),       -- ATM FUNI
-                   atmIma (107),       -- ATM IMA		   
-                   pppMultilinkBundle(108), -- PPP Multilink Bundle
-                   ipOverCdlc (109),   -- IBM ipOverCdlc
-                   ipOverClaw (110),   -- IBM Common Link Access to Workstn
-                   stackToStack (111), -- IBM stackToStack
-                   virtualIpAddress (112), -- IBM VIPA
-                   mpc (113),          -- IBM multi-protocol channel support
-                   ipOverAtm (114),    -- IBM ipOverAtm
-                   iso88025Fiber (115), -- ISO 802.5j Fiber Token Ring
-                   tdlc (116),	       -- IBM twinaxial data link control
-                   gigabitEthernet (117), -- Obsoleted via RFC3635
-                                          -- ethernetCsmacd (6) should be used instead
-                   hdlc (118),         -- HDLC
-                   lapf (119),	       -- LAP F
-                   v37 (120),	       -- V.37
-                   x25mlp (121),       -- Multi-Link Protocol
-                   x25huntGroup (122), -- X25 Hunt Group
-                   transpHdlc (123),   -- Transp HDLC
-                   interleave (124),   -- Interleave channel
-                   fast (125),         -- Fast channel
-                   ip (126),	       -- IP (for APPN HPR in IP networks)
-                   docsCableMaclayer (127),  -- CATV Mac Layer
-                   docsCableDownstream (128), -- CATV Downstream interface
-                   docsCableUpstream (129),  -- CATV Upstream interface
-                   a12MppSwitch (130), -- Avalon Parallel Processor
-                   tunnel (131),       -- Encapsulation interface
-                   coffee (132),       -- coffee pot
-                   ces (133),          -- Circuit Emulation Service
-                   atmSubInterface (134), -- ATM Sub Interface
-                   l2vlan (135),       -- Layer 2 Virtual LAN using 802.1Q
-                   l3ipvlan (136),     -- Layer 3 Virtual LAN using IP
-                   l3ipxvlan (137),    -- Layer 3 Virtual LAN using IPX
-                   digitalPowerline (138), -- IP over Power Lines	
-                   mediaMailOverIp (139), -- Multimedia Mail over IP
-                   dtm (140),        -- Dynamic syncronous Transfer Mode
-                   dcn (141),    -- Data Communications Network
-                   ipForward (142),    -- IP Forwarding Interface
-                   msdsl (143),       -- Multi-rate Symmetric DSL
-                   ieee1394 (144), -- IEEE1394 High Performance Serial Bus
-                   if-gsn (145),       --   HIPPI-6400 
-                   dvbRccMacLayer (146), -- DVB-RCC MAC Layer
-                   dvbRccDownstream (147),  -- DVB-RCC Downstream Channel
-                   dvbRccUpstream (148),  -- DVB-RCC Upstream Channel
-                   atmVirtual (149),   -- ATM Virtual Interface
-                   mplsTunnel (150),   -- MPLS Tunnel Virtual Interface
-                   srp (151),	-- Spatial Reuse Protocol	
-                   voiceOverAtm (152),  -- Voice Over ATM
-                   voiceOverFrameRelay (153),   -- Voice Over Frame Relay 
-                   idsl (154),		-- Digital Subscriber Loop over ISDN
-                   compositeLink (155),  -- Avici Composite Link Interface
-                   ss7SigLink (156),     -- SS7 Signaling Link 
-                   propWirelessP2P (157),  --  Prop. P2P wireless interface
-                   frForward (158),    -- Frame Forward Interface
-                   rfc1483 (159),	-- Multiprotocol over ATM AAL5
-                   usb (160),		-- USB Interface
-                   ieee8023adLag (161),  -- IEEE 802.3ad Link Aggregate
-                   bgppolicyaccounting (162), -- BGP Policy Accounting
-                   frf16MfrBundle (163), -- FRF .16 Multilink Frame Relay 
-                   h323Gatekeeper (164), -- H323 Gatekeeper
-                   h323Proxy (165), -- H323 Voice and Video Proxy
-                   mpls (166), -- MPLS                   
-                   mfSigLink (167), -- Multi-frequency signaling link
-                   hdsl2 (168), -- High Bit-Rate DSL - 2nd generation
-                   shdsl (169), -- Multirate HDSL2
-                   ds1FDL (170), -- Facility Data Link 4Kbps on a DS1
-                   pos (171), -- Packet over SONET/SDH Interface
-                   dvbAsiIn (172), -- DVB-ASI Input
-                   dvbAsiOut (173), -- DVB-ASI Output 
-                   plc (174), -- Power Line Communtications
-                   nfas (175), -- Non Facility Associated Signaling
-                   tr008 (176), -- TR008
-                   gr303RDT (177), -- Remote Digital Terminal
-                   gr303IDT (178), -- Integrated Digital Terminal
-                   isup (179), -- ISUP
-                   propDocsWirelessMaclayer (180), -- Cisco proprietary Maclayer
-                   propDocsWirelessDownstream (181), -- Cisco proprietary Downstream
-                   propDocsWirelessUpstream (182), -- Cisco proprietary Upstream
-                   hiperlan2 (183), -- HIPERLAN Type 2 Radio Interface
-                   propBWAp2Mp (184), -- PropBroadbandWirelessAccesspt2multipt
-                             -- use of this iftype for IEEE 802.16 WMAN
-                             -- interfaces as per IEEE Std 802.16f is
-                             -- deprecated and ifType 237 should be used instead.
-                   sonetOverheadChannel (185), -- SONET Overhead Channel
-                   digitalWrapperOverheadChannel (186), -- Digital Wrapper
-                   aal2 (187), -- ATM adaptation layer 2
-                   radioMAC (188), -- MAC layer over radio links
-                   atmRadio (189), -- ATM over radio links   
-                   imt (190), -- Inter Machine Trunks
-                   mvl (191), -- Multiple Virtual Lines DSL
-                   reachDSL (192), -- Long Reach DSL
-                   frDlciEndPt (193), -- Frame Relay DLCI End Point
-                   atmVciEndPt (194), -- ATM VCI End Point
-                   opticalChannel (195), -- Optical Channel
-                   opticalTransport (196), -- Optical Transport
-                   propAtm (197), --  Proprietary ATM       
-                   voiceOverCable (198), -- Voice Over Cable Interface
-                   infiniband (199), -- Infiniband
-                   teLink (200), -- TE Link
-                   q2931 (201), -- Q.2931
-                   virtualTg (202), -- Virtual Trunk Group
-                   sipTg (203), -- SIP Trunk Group
-                   sipSig (204), -- SIP Signaling   
-                   docsCableUpstreamChannel (205), -- CATV Upstream Channel
-                   econet (206), -- Acorn Econet
-                   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   
-                   voiceEMFGD (211), -- voice E&M Feature Group D
-                   voiceFGDEANA (212), -- voice FGD Exchange Access North American
-                   voiceDID (213), -- voice Direct Inward Dialing
-                   mpegTransport (214), -- MPEG transport interface
-                   sixToFour (215), -- 6to4 interface (DEPRECATED)
-                   gtp (216), -- GTP (GPRS Tunneling Protocol)
-                   pdnEtherLoop1 (217), -- Paradyne EtherLoop 1
-                   pdnEtherLoop2 (218), -- Paradyne EtherLoop 2
-                   opticalChannelGroup (219), -- Optical Channel Group
-                   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 
-                   fcipLink (224), -- FCIP Link 
-                   rpr (225), -- Resilient Packet Ring Interface Type
-                   qam (226), -- RF Qam Interface
-                   lmp (227), -- Link Management Protocol
-                   cblVectaStar (228), -- Cambridge Broadband Networks Limited VectaStar
-                   docsCableMCmtsDownstream (229), -- CATV Modular CMTS Downstream Interface
-                   adsl2 (230), -- Asymmetric Digital Subscriber Loop Version 2 
-                                -- (DEPRECATED/OBSOLETED - please use adsl2plus 238 instead)
-                   macSecControlledIF (231), -- MACSecControlled 
-                   macSecUncontrolledIF (232), -- MACSecUncontrolled
-                   aviciOpticalEther (233), -- Avici Optical Ethernet Aggregate
-                   atmbond (234), -- atmbond
-                   voiceFGDOS (235), -- voice FGD Operator Services
-                   mocaVersion1 (236), -- MultiMedia over Coax Alliance (MoCA) Interface
-                             -- as documented in information provided privately to IANA
-                   ieee80216WMAN (237), -- IEEE 802.16 WMAN interface
-                   adsl2plus (238), -- Asymmetric Digital Subscriber Loop Version 2, 
-                                   -- Version 2 Plus and all variants
-                   dvbRcsMacLayer (239), -- DVB-RCS MAC Layer
-                   dvbTdm (240), -- DVB Satellite TDM
-                   dvbRcsTdma (241), -- DVB-RCS TDMA
-                   x86Laps (242), -- LAPS based on ITU-T X.86/Y.1323
-                   wwanPP (243), -- 3GPP WWAN
-                   wwanPP2 (244), -- 3GPP2 WWAN
-                   voiceEBS (245), -- voice P-phone EBS physical interface
-                   ifPwType (246), -- Pseudowire interface type
-                   ilan (247), -- Internal LAN on a bridge per IEEE 802.1ap
-                   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)
-                   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
-    STATUS     current
-    DESCRIPTION
-            "The encapsulation method used by a tunnel. The value
-            direct indicates that a packet is encapsulated
-            directly within a normal IP header, with no
-            intermediate header, and unicast to the remote tunnel
-            endpoint (e.g., an RFC 2003 IP-in-IP tunnel, or an RFC
-            1933 IPv6-in-IPv4 tunnel). The value minimal indicates
-            that a Minimal Forwarding Header (RFC 2004) is
-            inserted between the outer header and the payload
-            packet. The value UDP indicates that the payload
-            packet is encapsulated within a normal UDP packet
-            (e.g., RFC 1234).
-
-            The values sixToFour, sixOverFour, and isatap
-            indicates that an IPv6 packet is encapsulated directly
-            within an IPv4 header, with no intermediate header,
-            and unicast to the destination determined by the 6to4,
-            6over4, or ISATAP protocol.
-
-            The remaining protocol-specific values indicate that a
-            header of the protocol of that name is inserted
-            between the outer header and the payload header.
-
-            The assignment policy for IANAtunnelType values is
-            identical to the policy for assigning IANAifType
-            values."
-    SYNTAX     INTEGER {
-                   other(1),        -- none of the following
-                   direct(2),       -- no intermediate header
-                   gre(3),          -- GRE encapsulation
-                   minimal(4),      -- Minimal encapsulation
-                   l2tp(5),         -- L2TP encapsulation
-                   pptp(6),         -- PPTP encapsulation
-                   l2f(7),          -- L2F encapsulation
-                   udp(8),          -- UDP encapsulation
-                   atmp(9),         -- ATMP encapsulation
-                   msdp(10),        -- MSDP encapsulation
-                   sixToFour(11),   -- 6to4 encapsulation
-                   sixOverFour(12), -- 6over4 encapsulation
-                   isatap(13),      -- ISATAP encapsulation
-                   teredo(14),      -- Teredo encapsulation
-                   ipHttps(15)      -- IPHTTPS
-               }
-
-   END
diff --git a/mibs/IF-INVERTED-STACK-MIB.txt b/mibs/IF-INVERTED-STACK-MIB.txt
deleted file mode 100644
index eb8797b..0000000
--- a/mibs/IF-INVERTED-STACK-MIB.txt
+++ /dev/null
@@ -1,149 +0,0 @@
-IF-INVERTED-STACK-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-  MODULE-IDENTITY, OBJECT-TYPE, mib-2      FROM SNMPv2-SMI
-  RowStatus                                FROM SNMPv2-TC
-  MODULE-COMPLIANCE, OBJECT-GROUP          FROM SNMPv2-CONF
-  ifStackGroup2,
-  ifStackHigherLayer, ifStackLowerLayer    FROM IF-MIB;
-
-ifInvertedStackMIB MODULE-IDENTITY
-  LAST-UPDATED "200006140000Z"
-  ORGANIZATION "IETF Interfaces MIB Working Group"
-  CONTACT-INFO
-          "   Keith McCloghrie
-              Cisco Systems, Inc.
-              170 West Tasman Drive
-              San Jose, CA  95134-1706
-              US
-
-              408-526-5260
-              kzm at cisco.com"
-  DESCRIPTION
-          "The MIB module which provides the Inverted Stack Table for
-          interface sub-layers."
-  REVISION      "200006140000Z"
-  DESCRIPTION
-          "Initial revision, published as RFC 2864"
-  ::= { mib-2 77 }
-
-ifInvMIBObjects OBJECT IDENTIFIER ::= { ifInvertedStackMIB 1 }
-
---
---           The Inverted Interface Stack Group
---
-
-ifInvStackTable  OBJECT-TYPE
-   SYNTAX        SEQUENCE OF IfInvStackEntry
-   MAX-ACCESS    not-accessible
-   STATUS        current
-   DESCRIPTION
-          "A table containing information on the relationships between
-
-          the multiple sub-layers of network interfaces.  In
-          particular, it contains information on which sub-layers run
-          'underneath' which other sub-layers, where each sub-layer
-          corresponds to a conceptual row in the ifTable.  For
-          example, when the sub-layer with ifIndex value x runs
-          underneath the sub-layer with ifIndex value y, then this
-          table contains:
-
-            ifInvStackStatus.x.y=active
-
-          For each ifIndex value, z, which identifies an active
-          interface, there are always at least two instantiated rows
-          in this table associated with z.  For one of these rows, z
-          is the value of ifStackHigherLayer; for the other, z is the
-          value of ifStackLowerLayer.  (If z is not involved in
-          multiplexing, then these are the only two rows associated
-          with z.)
-
-          For example, two rows exist even for an interface which has
-          no others stacked on top or below it:
-
-            ifInvStackStatus.z.0=active
-            ifInvStackStatus.0.z=active
-
-          This table contains exactly the same number of rows as the
-          ifStackTable, but the rows appear in a different order."
-   REFERENCE
-          "ifStackTable of RFC 2863"
-   ::= { ifInvMIBObjects 1 }
-
-ifInvStackEntry  OBJECT-TYPE
-   SYNTAX        IfInvStackEntry
-   MAX-ACCESS    not-accessible
-   STATUS        current
-   DESCRIPTION
-          "Information on a particular relationship between two sub-
-          layers, specifying that one sub-layer runs underneath the
-          other sub-layer.  Each sub-layer corresponds to a conceptual
-          row in the ifTable."
-   INDEX { ifStackLowerLayer, ifStackHigherLayer }
-   ::= { ifInvStackTable 1 }
-
-IfInvStackEntry ::=
-  SEQUENCE {
-      ifInvStackStatus       RowStatus
-   }
-
-ifInvStackStatus  OBJECT-TYPE
-  SYNTAX         RowStatus
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-          "The status of the relationship between two sub-layers.
-
-          An instance of this object exists for each instance of the
-          ifStackStatus object, and vice versa.  For example, if the
-          variable ifStackStatus.H.L exists, then the variable
-          ifInvStackStatus.L.H must also exist, and vice versa.  In
-          addition, the two variables always have the same value.
-
-          However, unlike ifStackStatus, the ifInvStackStatus object
-          is NOT write-able.  A network management application wishing
-          to change a relationship between sub-layers H and L cannot
-          do so by modifying the value of ifInvStackStatus.L.H, but
-          must instead modify the value of ifStackStatus.H.L.  After
-          the ifStackTable is modified, the change will be reflected
-          in this table."
-  ::= { ifInvStackEntry 1 }
-
--- conformance information
-
-ifInvConformance OBJECT IDENTIFIER ::= { ifInvMIBObjects 2 }
-
-ifInvGroups      OBJECT IDENTIFIER ::= { ifInvConformance 1 }
-ifInvCompliances OBJECT IDENTIFIER ::= { ifInvConformance 2 }
-
--- compliance statements
-
-ifInvCompliance MODULE-COMPLIANCE
-  STATUS  current
-  DESCRIPTION
-          "The compliance statement for SNMP entities which provide
-          inverted information on the layering of network interfaces."
-
-  MODULE  -- this module
-      MANDATORY-GROUPS { ifInvStackGroup }
-
-      OBJECT       ifInvStackStatus
-      SYNTAX       INTEGER { active(1) }
-      DESCRIPTION
-          "Support is only required for 'active'."
-
-  MODULE  IF-MIB
-      MANDATORY-GROUPS { ifStackGroup2 }
-  ::= { ifInvCompliances 1 }
-
--- units of conformance
-
-ifInvStackGroup    OBJECT-GROUP
-  OBJECTS { ifInvStackStatus }
-  STATUS  current
-  DESCRIPTION
-          "A collection of objects providing inverted information on
-          the layering of MIB-II interfaces."
-  ::= { ifInvGroups 1 }
-
-END
diff --git a/mibs/IF-MIB.txt b/mibs/IF-MIB.txt
deleted file mode 100644
index 7704f0c..0000000
--- a/mibs/IF-MIB.txt
+++ /dev/null
@@ -1,1814 +0,0 @@
-IF-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32, Counter64,
-    Integer32, TimeTicks, mib-2,
-    NOTIFICATION-TYPE                        FROM SNMPv2-SMI
-    TEXTUAL-CONVENTION, DisplayString,
-    PhysAddress, TruthValue, RowStatus,
-    TimeStamp, AutonomousType, TestAndIncr   FROM SNMPv2-TC
-    MODULE-COMPLIANCE, OBJECT-GROUP,
-    NOTIFICATION-GROUP                       FROM SNMPv2-CONF
-    snmpTraps                                FROM SNMPv2-MIB
-    IANAifType                               FROM IANAifType-MIB;
-
-ifMIB MODULE-IDENTITY
-    LAST-UPDATED "200006140000Z"
-    ORGANIZATION "IETF Interfaces MIB Working Group"
-    CONTACT-INFO
-            "   Keith McCloghrie
-                Cisco Systems, Inc.
-                170 West Tasman Drive
-                San Jose, CA  95134-1706
-                US
-
-                408-526-5260
-                kzm at cisco.com"
-    DESCRIPTION
-            "The MIB module to describe generic objects for network
-            interface sub-layers.  This MIB is an updated version of
-            MIB-II's ifTable, and incorporates the extensions defined in
-            RFC 1229."
-
-    REVISION      "200006140000Z"
-    DESCRIPTION
-            "Clarifications agreed upon by the Interfaces MIB WG, and
-            published as RFC 2863."
-    REVISION      "199602282155Z"
-    DESCRIPTION
-            "Revisions made by the Interfaces MIB WG, and published in
-            RFC 2233."
-    REVISION      "199311082155Z"
-    DESCRIPTION
-            "Initial revision, published as part of RFC 1573."
-    ::= { mib-2 31 }
-
-ifMIBObjects OBJECT IDENTIFIER ::= { ifMIB 1 }
-
-interfaces   OBJECT IDENTIFIER ::= { mib-2 2 }
-
---
--- Textual Conventions
---
-
--- OwnerString has the same semantics as used in RFC 1271
-
-OwnerString ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "255a"
-    STATUS       deprecated
-    DESCRIPTION
-            "This data type is used to model an administratively
-            assigned name of the owner of a resource.  This information
-            is taken from the NVT ASCII character set.  It is suggested
-            that this name contain one or more of the following: ASCII
-            form of the manager station's transport address, management
-            station name (e.g., domain name), network management
-            personnel's name, location, or phone number.  In some cases
-            the agent itself will be the owner of an entry.  In these
-            cases, this string shall be set to a string starting with
-            'agent'."
-    SYNTAX       OCTET STRING (SIZE(0..255))
-
--- InterfaceIndex contains the semantics of ifIndex and should be used
--- for any objects defined in other MIB modules that need these semantics.
-
-InterfaceIndex ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "d"
-    STATUS       current
-    DESCRIPTION
-            "A unique value, greater than zero, for each interface or
-            interface sub-layer in the managed system.  It is
-            recommended that values are assigned contiguously starting
-            from 1.  The value for each interface sub-layer must remain
-            constant at least from one re-initialization of the entity's
-            network management system to the next re-initialization."
-    SYNTAX       Integer32 (1..2147483647)
-
-InterfaceIndexOrZero ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "d"
-    STATUS       current
-    DESCRIPTION
-            "This textual convention is an extension of the
-            InterfaceIndex convention.  The latter defines a greater
-            than zero value used to identify an interface or interface
-            sub-layer in the managed system.  This extension permits the
-            additional value of zero.  the value zero is object-specific
-            and must therefore be defined as part of the description of
-            any object which uses this syntax.  Examples of the usage of
-            zero might include situations where interface was unknown,
-            or when none or all interfaces need to be referenced."
-    SYNTAX       Integer32 (0..2147483647)
-
-ifNumber  OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The number of network interfaces (regardless of their
-            current state) present on this system."
-    ::= { interfaces 1 }
-
-ifTableLastChange  OBJECT-TYPE
-    SYNTAX      TimeTicks
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The value of sysUpTime at the time of the last creation or
-            deletion of an entry in the ifTable.  If the number of
-            entries has been unchanged since the last re-initialization
-            of the local network management subsystem, then this object
-            contains a zero value."
-    ::= { ifMIBObjects 5 }
-
--- the Interfaces table
-
--- The Interfaces table contains information on the entity's
-
--- interfaces.  Each sub-layer below the internetwork-layer
--- of a network interface is considered to be an interface.
-
-ifTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF IfEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-            "A list of interface entries.  The number of entries is
-            given by the value of ifNumber."
-    ::= { interfaces 2 }
-
-ifEntry OBJECT-TYPE
-    SYNTAX      IfEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-            "An entry containing management information applicable to a
-            particular interface."
-    INDEX   { ifIndex }
-    ::= { ifTable 1 }
-
-IfEntry ::=
-    SEQUENCE {
-        ifIndex                 InterfaceIndex,
-        ifDescr                 DisplayString,
-        ifType                  IANAifType,
-        ifMtu                   Integer32,
-        ifSpeed                 Gauge32,
-        ifPhysAddress           PhysAddress,
-        ifAdminStatus           INTEGER,
-        ifOperStatus            INTEGER,
-        ifLastChange            TimeTicks,
-        ifInOctets              Counter32,
-        ifInUcastPkts           Counter32,
-        ifInNUcastPkts          Counter32,  -- deprecated
-        ifInDiscards            Counter32,
-        ifInErrors              Counter32,
-        ifInUnknownProtos       Counter32,
-        ifOutOctets             Counter32,
-        ifOutUcastPkts          Counter32,
-        ifOutNUcastPkts         Counter32,  -- deprecated
-        ifOutDiscards           Counter32,
-        ifOutErrors             Counter32,
-        ifOutQLen               Gauge32,    -- deprecated
-        ifSpecific              OBJECT IDENTIFIER -- deprecated
-    }
-
-ifIndex OBJECT-TYPE
-    SYNTAX      InterfaceIndex
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "A unique value, greater than zero, for each interface.  It
-            is recommended that values are assigned contiguously
-            starting from 1.  The value for each interface sub-layer
-            must remain constant at least from one re-initialization of
-            the entity's network management system to the next re-
-            initialization."
-    ::= { ifEntry 1 }
-
-ifDescr OBJECT-TYPE
-    SYNTAX      DisplayString (SIZE (0..255))
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "A textual string containing information about the
-            interface.  This string should include the name of the
-            manufacturer, the product name and the version of the
-            interface hardware/software."
-    ::= { ifEntry 2 }
-
-ifType OBJECT-TYPE
-    SYNTAX      IANAifType
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The type of interface.  Additional values for ifType are
-            assigned by the Internet Assigned Numbers Authority (IANA),
-            through updating the syntax of the IANAifType textual
-            convention."
-    ::= { ifEntry 3 }
-
-ifMtu OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The size of the largest packet which can be sent/received
-            on the interface, specified in octets.  For interfaces that
-            are used for transmitting network datagrams, this is the
-            size of the largest network datagram that can be sent on the
-            interface."
-    ::= { ifEntry 4 }
-
-ifSpeed OBJECT-TYPE
-    SYNTAX      Gauge32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "An estimate of the interface's current bandwidth in bits
-            per second.  For interfaces which do not vary in bandwidth
-            or for those where no accurate estimation can be made, this
-            object should contain the nominal bandwidth.  If the
-            bandwidth of the interface is greater than the maximum value
-            reportable by this object then this object should report its
-            maximum value (4,294,967,295) and ifHighSpeed must be used
-            to report the interace's speed.  For a sub-layer which has
-            no concept of bandwidth, this object should be zero."
-    ::= { ifEntry 5 }
-
-ifPhysAddress OBJECT-TYPE
-    SYNTAX      PhysAddress
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The interface's address at its protocol sub-layer.  For
-            example, for an 802.x interface, this object normally
-            contains a MAC address.  The interface's media-specific MIB
-            must define the bit and byte ordering and the format of the
-            value of this object.  For interfaces which do not have such
-            an address (e.g., a serial line), this object should contain
-            an octet string of zero length."
-    ::= { ifEntry 6 }
-
-ifAdminStatus OBJECT-TYPE
-    SYNTAX  INTEGER {
-                up(1),       -- ready to pass packets
-                down(2),
-                testing(3)   -- in some test mode
-            }
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-            "The desired state of the interface.  The testing(3) state
-            indicates that no operational packets can be passed.  When a
-            managed system initializes, all interfaces start with
-            ifAdminStatus in the down(2) state.  As a result of either
-            explicit management action or per configuration information
-            retained by the managed system, ifAdminStatus is then
-            changed to either the up(1) or testing(3) states (or remains
-            in the down(2) state)."
-    ::= { ifEntry 7 }
-
-ifOperStatus OBJECT-TYPE
-    SYNTAX  INTEGER {
-                up(1),        -- ready to pass packets
-                down(2),
-                testing(3),   -- in some test mode
-                unknown(4),   -- status can not be determined
-                              -- for some reason.
-                dormant(5),
-                notPresent(6),    -- some component is missing
-                lowerLayerDown(7) -- down due to state of
-                                  -- lower-layer interface(s)
-            }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The current operational state of the interface.  The
-            testing(3) state indicates that no operational packets can
-            be passed.  If ifAdminStatus is down(2) then ifOperStatus
-            should be down(2).  If ifAdminStatus is changed to up(1)
-            then ifOperStatus should change to up(1) if the interface is
-            ready to transmit and receive network traffic; it should
-            change to dormant(5) if the interface is waiting for
-            external actions (such as a serial line waiting for an
-            incoming connection); it should remain in the down(2) state
-            if and only if there is a fault that prevents it from going
-            to the up(1) state; it should remain in the notPresent(6)
-            state if the interface has missing (typically, hardware)
-            components."
-    ::= { ifEntry 8 }
-
-ifLastChange OBJECT-TYPE
-    SYNTAX      TimeTicks
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The value of sysUpTime at the time the interface entered
-            its current operational state.  If the current state was
-            entered prior to the last re-initialization of the local
-            network management subsystem, then this object contains a
-            zero value."
-    ::= { ifEntry 9 }
-
-ifInOctets OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The total number of octets received on the interface,
-            including framing characters.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifEntry 10 }
-
-ifInUcastPkts OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The number of packets, delivered by this sub-layer to a
-            higher (sub-)layer, which were not addressed to a multicast
-            or broadcast address at this sub-layer.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifEntry 11 }
-
-ifInNUcastPkts OBJECT-TYPE
-    SYNTAX  Counter32
-    MAX-ACCESS  read-only
-    STATUS      deprecated
-    DESCRIPTION
-            "The number of packets, delivered by this sub-layer to a
-            higher (sub-)layer, which were addressed to a multicast or
-            broadcast address at this sub-layer.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime.
-
-            This object is deprecated in favour of ifInMulticastPkts and
-            ifInBroadcastPkts."
-    ::= { ifEntry 12 }
-
-ifInDiscards OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The number of inbound packets which were chosen to be
-            discarded even though no errors had been detected to prevent
-
-            their being deliverable to a higher-layer protocol.  One
-            possible reason for discarding such a packet could be to
-            free up buffer space.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifEntry 13 }
-
-ifInErrors OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "For packet-oriented interfaces, the number of inbound
-            packets that contained errors preventing them from being
-            deliverable to a higher-layer protocol.  For character-
-            oriented or fixed-length interfaces, the number of inbound
-            transmission units that contained errors preventing them
-            from being deliverable to a higher-layer protocol.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifEntry 14 }
-
-ifInUnknownProtos OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "For packet-oriented interfaces, the number of packets
-            received via the interface which were discarded because of
-            an unknown or unsupported protocol.  For character-oriented
-            or fixed-length interfaces that support protocol
-            multiplexing the number of transmission units received via
-            the interface which were discarded because of an unknown or
-            unsupported protocol.  For any interface that does not
-            support protocol multiplexing, this counter will always be
-            0.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifEntry 15 }
-
-ifOutOctets OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The total number of octets transmitted out of the
-            interface, including framing characters.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifEntry 16 }
-
-ifOutUcastPkts OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The total number of packets that higher-level protocols
-            requested be transmitted, and which were not addressed to a
-            multicast or broadcast address at this sub-layer, including
-            those that were discarded or not sent.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifEntry 17 }
-
-ifOutNUcastPkts OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      deprecated
-    DESCRIPTION
-            "The total number of packets that higher-level protocols
-            requested be transmitted, and which were addressed to a
-            multicast or broadcast address at this sub-layer, including
-            those that were discarded or not sent.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime.
-
-            This object is deprecated in favour of ifOutMulticastPkts
-            and ifOutBroadcastPkts."
-    ::= { ifEntry 18 }
-
-ifOutDiscards OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The number of outbound packets which were chosen to be
-            discarded even though no errors had been detected to prevent
-            their being transmitted.  One possible reason for discarding
-            such a packet could be to free up buffer space.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifEntry 19 }
-
-ifOutErrors OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "For packet-oriented interfaces, the number of outbound
-            packets that could not be transmitted because of errors.
-            For character-oriented or fixed-length interfaces, the
-            number of outbound transmission units that could not be
-            transmitted because of errors.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifEntry 20 }
-
-ifOutQLen OBJECT-TYPE
-    SYNTAX      Gauge32
-    MAX-ACCESS  read-only
-    STATUS      deprecated
-    DESCRIPTION
-            "The length of the output packet queue (in packets)."
-    ::= { ifEntry 21 }
-
-ifSpecific OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-only
-    STATUS      deprecated
-    DESCRIPTION
-            "A reference to MIB definitions specific to the particular
-            media being used to realize the interface.  It is
-
-            recommended that this value point to an instance of a MIB
-            object in the media-specific MIB, i.e., that this object
-            have the semantics associated with the InstancePointer
-            textual convention defined in RFC 2579.  In fact, it is
-            recommended that the media-specific MIB specify what value
-            ifSpecific should/can take for values of ifType.  If no MIB
-            definitions specific to the particular media are available,
-            the value should be set to the OBJECT IDENTIFIER { 0 0 }."
-    ::= { ifEntry 22 }
-
---
---   Extension to the interface table
---
--- This table replaces the ifExtnsTable table.
---
-
-ifXTable        OBJECT-TYPE
-    SYNTAX      SEQUENCE OF IfXEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-            "A list of interface entries.  The number of entries is
-            given by the value of ifNumber.  This table contains
-            additional objects for the interface table."
-    ::= { ifMIBObjects 1 }
-
-ifXEntry        OBJECT-TYPE
-    SYNTAX      IfXEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-            "An entry containing additional management information
-            applicable to a particular interface."
-    AUGMENTS    { ifEntry }
-    ::= { ifXTable 1 }
-
-IfXEntry ::=
-    SEQUENCE {
-        ifName                  DisplayString,
-        ifInMulticastPkts       Counter32,
-        ifInBroadcastPkts       Counter32,
-        ifOutMulticastPkts      Counter32,
-        ifOutBroadcastPkts      Counter32,
-        ifHCInOctets            Counter64,
-        ifHCInUcastPkts         Counter64,
-        ifHCInMulticastPkts     Counter64,
-        ifHCInBroadcastPkts     Counter64,
-        ifHCOutOctets           Counter64,
-        ifHCOutUcastPkts        Counter64,
-        ifHCOutMulticastPkts    Counter64,
-        ifHCOutBroadcastPkts    Counter64,
-        ifLinkUpDownTrapEnable  INTEGER,
-        ifHighSpeed             Gauge32,
-        ifPromiscuousMode       TruthValue,
-        ifConnectorPresent      TruthValue,
-        ifAlias                 DisplayString,
-        ifCounterDiscontinuityTime TimeStamp
-    }
-
-ifName OBJECT-TYPE
-    SYNTAX      DisplayString
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The textual name of the interface.  The value of this
-            object should be the name of the interface as assigned by
-            the local device and should be suitable for use in commands
-            entered at the device's `console'.  This might be a text
-            name, such as `le0' or a simple port number, such as `1',
-            depending on the interface naming syntax of the device.  If
-            several entries in the ifTable together represent a single
-            interface as named by the device, then each will have the
-            same value of ifName.  Note that for an agent which responds
-            to SNMP queries concerning an interface on some other
-            (proxied) device, then the value of ifName for such an
-            interface is the proxied device's local name for it.
-
-            If there is no local name, or this object is otherwise not
-            applicable, then this object contains a zero-length string."
-    ::= { ifXEntry 1 }
-
-ifInMulticastPkts OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The number of packets, delivered by this sub-layer to a
-            higher (sub-)layer, which were addressed to a multicast
-            address at this sub-layer.  For a MAC layer protocol, this
-            includes both Group and Functional addresses.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifXEntry 2 }
-
-ifInBroadcastPkts OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The number of packets, delivered by this sub-layer to a
-            higher (sub-)layer, which were addressed to a broadcast
-            address at this sub-layer.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifXEntry 3 }
-
-ifOutMulticastPkts OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The total number of packets that higher-level protocols
-            requested be transmitted, and which were addressed to a
-            multicast address at this sub-layer, including those that
-            were discarded or not sent.  For a MAC layer protocol, this
-            includes both Group and Functional addresses.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifXEntry 4 }
-
-ifOutBroadcastPkts OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The total number of packets that higher-level protocols
-            requested be transmitted, and which were addressed to a
-            broadcast address at this sub-layer, including those that
-            were discarded or not sent.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifXEntry 5 }
-
---
--- High Capacity Counter objects.  These objects are all
--- 64 bit versions of the "basic" ifTable counters.  These
--- objects all have the same basic semantics as their 32-bit
--- counterparts, however, their syntax has been extended
--- to 64 bits.
---
-
-ifHCInOctets OBJECT-TYPE
-    SYNTAX      Counter64
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The total number of octets received on the interface,
-            including framing characters.  This object is a 64-bit
-            version of ifInOctets.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifXEntry 6 }
-
-ifHCInUcastPkts OBJECT-TYPE
-    SYNTAX      Counter64
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The number of packets, delivered by this sub-layer to a
-            higher (sub-)layer, which were not addressed to a multicast
-            or broadcast address at this sub-layer.  This object is a
-            64-bit version of ifInUcastPkts.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifXEntry 7 }
-
-ifHCInMulticastPkts OBJECT-TYPE
-    SYNTAX      Counter64
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The number of packets, delivered by this sub-layer to a
-            higher (sub-)layer, which were addressed to a multicast
-            address at this sub-layer.  For a MAC layer protocol, this
-            includes both Group and Functional addresses.  This object
-            is a 64-bit version of ifInMulticastPkts.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifXEntry 8 }
-
-ifHCInBroadcastPkts OBJECT-TYPE
-    SYNTAX      Counter64
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The number of packets, delivered by this sub-layer to a
-            higher (sub-)layer, which were addressed to a broadcast
-            address at this sub-layer.  This object is a 64-bit version
-            of ifInBroadcastPkts.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifXEntry 9 }
-
-ifHCOutOctets OBJECT-TYPE
-    SYNTAX      Counter64
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The total number of octets transmitted out of the
-            interface, including framing characters.  This object is a
-            64-bit version of ifOutOctets.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifXEntry 10 }
-
-ifHCOutUcastPkts OBJECT-TYPE
-    SYNTAX      Counter64
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The total number of packets that higher-level protocols
-            requested be transmitted, and which were not addressed to a
-            multicast or broadcast address at this sub-layer, including
-            those that were discarded or not sent.  This object is a
-            64-bit version of ifOutUcastPkts.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifXEntry 11 }
-
-ifHCOutMulticastPkts OBJECT-TYPE
-    SYNTAX      Counter64
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The total number of packets that higher-level protocols
-            requested be transmitted, and which were addressed to a
-            multicast address at this sub-layer, including those that
-            were discarded or not sent.  For a MAC layer protocol, this
-            includes both Group and Functional addresses.  This object
-            is a 64-bit version of ifOutMulticastPkts.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifXEntry 12 }
-
-ifHCOutBroadcastPkts OBJECT-TYPE
-    SYNTAX      Counter64
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The total number of packets that higher-level protocols
-            requested be transmitted, and which were addressed to a
-            broadcast address at this sub-layer, including those that
-            were discarded or not sent.  This object is a 64-bit version
-            of ifOutBroadcastPkts.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ifCounterDiscontinuityTime."
-    ::= { ifXEntry 13 }
-
-ifLinkUpDownTrapEnable  OBJECT-TYPE
-    SYNTAX      INTEGER { enabled(1), disabled(2) }
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-            "Indicates whether linkUp/linkDown traps should be generated
-            for this interface.
-
-            By default, this object should have the value enabled(1) for
-            interfaces which do not operate on 'top' of any other
-            interface (as defined in the ifStackTable), and disabled(2)
-            otherwise."
-    ::= { ifXEntry 14 }
-
-ifHighSpeed OBJECT-TYPE
-    SYNTAX      Gauge32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "An estimate of the interface's current bandwidth in units
-            of 1,000,000 bits per second.  If this object reports a
-            value of `n' then the speed of the interface is somewhere in
-            the range of `n-500,000' to `n+499,999'.  For interfaces
-            which do not vary in bandwidth or for those where no
-            accurate estimation can be made, this object should contain
-            the nominal bandwidth.  For a sub-layer which has no concept
-            of bandwidth, this object should be zero."
-    ::= { ifXEntry 15 }
-
-ifPromiscuousMode  OBJECT-TYPE
-    SYNTAX      TruthValue
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-            "This object has a value of false(2) if this interface only
-            accepts packets/frames that are addressed to this station.
-            This object has a value of true(1) when the station accepts
-            all packets/frames transmitted on the media.  The value
-            true(1) is only legal on certain types of media.  If legal,
-            setting this object to a value of true(1) may require the
-            interface to be reset before becoming effective.
-
-            The value of ifPromiscuousMode does not affect the reception
-            of broadcast and multicast packets/frames by the interface."
-    ::= { ifXEntry 16 }
-
-ifConnectorPresent   OBJECT-TYPE
-    SYNTAX      TruthValue
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "This object has the value 'true(1)' if the interface
-            sublayer has a physical connector and the value 'false(2)'
-            otherwise."
-    ::= { ifXEntry 17 }
-
-ifAlias   OBJECT-TYPE
-    SYNTAX      DisplayString (SIZE(0..64))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-            "This object is an 'alias' name for the interface as
-            specified by a network manager, and provides a non-volatile
-            'handle' for the interface.
-
-            On the first instantiation of an interface, the value of
-            ifAlias associated with that interface is the zero-length
-            string.  As and when a value is written into an instance of
-            ifAlias through a network management set operation, then the
-            agent must retain the supplied value in the ifAlias instance
-            associated with the same interface for as long as that
-            interface remains instantiated, including across all re-
-            initializations/reboots of the network management system,
-            including those which result in a change of the interface's
-            ifIndex value.
-
-            An example of the value which a network manager might store
-            in this object for a WAN interface is the (Telco's) circuit
-            number/identifier of the interface.
-
-            Some agents may support write-access only for interfaces
-            having particular values of ifType.  An agent which supports
-            write access to this object is required to keep the value in
-            non-volatile storage, but it may limit the length of new
-            values depending on how much storage is already occupied by
-            the current values for other interfaces."
-    ::= { ifXEntry 18 }
-
-ifCounterDiscontinuityTime OBJECT-TYPE
-    SYNTAX      TimeStamp
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The value of sysUpTime on the most recent occasion at which
-            any one or more of this interface's counters suffered a
-            discontinuity.  The relevant counters are the specific
-            instances associated with this interface of any Counter32 or
-
-            Counter64 object contained in the ifTable or ifXTable.  If
-            no such discontinuities have occurred since the last re-
-            initialization of the local management subsystem, then this
-            object contains a zero value."
-    ::= { ifXEntry 19 }
-
---           The Interface Stack Group
---
--- Implementation of this group is optional, but strongly recommended
--- for all systems
---
-
-ifStackTable  OBJECT-TYPE
-     SYNTAX        SEQUENCE OF IfStackEntry
-     MAX-ACCESS    not-accessible
-     STATUS        current
-     DESCRIPTION
-            "The table containing information on the relationships
-            between the multiple sub-layers of network interfaces.  In
-            particular, it contains information on which sub-layers run
-            'on top of' which other sub-layers, where each sub-layer
-            corresponds to a conceptual row in the ifTable.  For
-            example, when the sub-layer with ifIndex value x runs over
-            the sub-layer with ifIndex value y, then this table
-            contains:
-
-              ifStackStatus.x.y=active
-
-            For each ifIndex value, I, which identifies an active
-            interface, there are always at least two instantiated rows
-            in this table associated with I.  For one of these rows, I
-            is the value of ifStackHigherLayer; for the other, I is the
-            value of ifStackLowerLayer.  (If I is not involved in
-            multiplexing, then these are the only two rows associated
-            with I.)
-
-            For example, two rows exist even for an interface which has
-            no others stacked on top or below it:
-
-              ifStackStatus.0.x=active
-              ifStackStatus.x.0=active "
-     ::= { ifMIBObjects 2 }
-
-ifStackEntry  OBJECT-TYPE
-     SYNTAX        IfStackEntry
-     MAX-ACCESS    not-accessible
-     STATUS        current
-     DESCRIPTION
-            "Information on a particular relationship between two sub-
-            layers, specifying that one sub-layer runs on 'top' of the
-            other sub-layer.  Each sub-layer corresponds to a conceptual
-            row in the ifTable."
-     INDEX { ifStackHigherLayer, ifStackLowerLayer }
-     ::= { ifStackTable 1 }
-
-IfStackEntry ::=
-    SEQUENCE {
-        ifStackHigherLayer  InterfaceIndexOrZero,
-        ifStackLowerLayer   InterfaceIndexOrZero,
-        ifStackStatus       RowStatus
-     }
-
-ifStackHigherLayer  OBJECT-TYPE
-     SYNTAX        InterfaceIndexOrZero
-     MAX-ACCESS    not-accessible
-     STATUS        current
-     DESCRIPTION
-            "The value of ifIndex corresponding to the higher sub-layer
-            of the relationship, i.e., the sub-layer which runs on 'top'
-            of the sub-layer identified by the corresponding instance of
-            ifStackLowerLayer.  If there is no higher sub-layer (below
-            the internetwork layer), then this object has the value 0."
-     ::= { ifStackEntry 1 }
-
-ifStackLowerLayer  OBJECT-TYPE
-     SYNTAX        InterfaceIndexOrZero
-     MAX-ACCESS    not-accessible
-     STATUS        current
-     DESCRIPTION
-            "The value of ifIndex corresponding to the lower sub-layer
-            of the relationship, i.e., the sub-layer which runs 'below'
-            the sub-layer identified by the corresponding instance of
-            ifStackHigherLayer.  If there is no lower sub-layer, then
-            this object has the value 0."
-     ::= { ifStackEntry 2 }
-
-ifStackStatus  OBJECT-TYPE
-    SYNTAX         RowStatus
-    MAX-ACCESS     read-create
-    STATUS         current
-    DESCRIPTION
-            "The status of the relationship between two sub-layers.
-
-            Changing the value of this object from 'active' to
-            'notInService' or 'destroy' will likely have consequences up
-            and down the interface stack.  Thus, write access to this
-            object is likely to be inappropriate for some types of
-            interfaces, and many implementations will choose not to
-            support write-access for any type of interface."
-    ::= { ifStackEntry 3 }
-
-ifStackLastChange OBJECT-TYPE
-    SYNTAX         TimeTicks
-    MAX-ACCESS     read-only
-    STATUS         current
-    DESCRIPTION
-            "The value of sysUpTime at the time of the last change of
-            the (whole) interface stack.  A change of the interface
-            stack is defined to be any creation, deletion, or change in
-            value of any instance of ifStackStatus.  If the interface
-            stack has been unchanged since the last re-initialization of
-            the local network management subsystem, then this object
-            contains a zero value."
-    ::= { ifMIBObjects 6 }
-
---   Generic Receive Address Table
---
--- This group of objects is mandatory for all types of
--- interfaces which can receive packets/frames addressed to
--- more than one address.
---
--- This table replaces the ifExtnsRcvAddr table.  The main
--- difference is that this table makes use of the RowStatus
--- textual convention, while ifExtnsRcvAddr did not.
-
-ifRcvAddressTable  OBJECT-TYPE
-    SYNTAX      SEQUENCE OF IfRcvAddressEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-            "This table contains an entry for each address (broadcast,
-            multicast, or uni-cast) for which the system will receive
-            packets/frames on a particular interface, except as follows:
-
-            - for an interface operating in promiscuous mode, entries
-            are only required for those addresses for which the system
-            would receive frames were it not operating in promiscuous
-            mode.
-
-            - for 802.5 functional addresses, only one entry is
-            required, for the address which has the functional address
-            bit ANDed with the bit mask of all functional addresses for
-            which the interface will accept frames.
-
-            A system is normally able to use any unicast address which
-            corresponds to an entry in this table as a source address."
-    ::= { ifMIBObjects 4 }
-
-ifRcvAddressEntry  OBJECT-TYPE
-    SYNTAX      IfRcvAddressEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-            "A list of objects identifying an address for which the
-            system will accept packets/frames on the particular
-            interface identified by the index value ifIndex."
-    INDEX  { ifIndex, ifRcvAddressAddress }
-    ::= { ifRcvAddressTable 1 }
-
-IfRcvAddressEntry ::=
-    SEQUENCE {
-        ifRcvAddressAddress   PhysAddress,
-        ifRcvAddressStatus    RowStatus,
-        ifRcvAddressType      INTEGER
-    }
-
-ifRcvAddressAddress OBJECT-TYPE
-    SYNTAX      PhysAddress
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-            "An address for which the system will accept packets/frames
-            on this entry's interface."
-    ::= { ifRcvAddressEntry 1 }
-
-ifRcvAddressStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-            "This object is used to create and delete rows in the
-            ifRcvAddressTable."
-    ::= { ifRcvAddressEntry 2 }
-
-ifRcvAddressType OBJECT-TYPE
-    SYNTAX      INTEGER {
-
-                    other(1),
-                    volatile(2),
-                    nonVolatile(3)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-            "This object has the value nonVolatile(3) for those entries
-            in the table which are valid and will not be deleted by the
-            next restart of the managed system.  Entries having the
-            value volatile(2) are valid and exist, but have not been
-            saved, so that will not exist after the next restart of the
-            managed system.  Entries having the value other(1) are valid
-            and exist but are not classified as to whether they will
-            continue to exist after the next restart."
-    DEFVAL  { volatile }
-    ::= { ifRcvAddressEntry 3 }
-
--- definition of interface-related traps.
-
-linkDown NOTIFICATION-TYPE
-    OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
-    STATUS  current
-    DESCRIPTION
-            "A linkDown trap signifies that the SNMP entity, acting in
-            an agent role, has detected that the ifOperStatus object for
-            one of its communication links is about to enter the down
-            state from some other state (but not from the notPresent
-            state).  This other state is indicated by the included value
-            of ifOperStatus."
-    ::= { snmpTraps 3 }
-
-linkUp NOTIFICATION-TYPE
-    OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
-    STATUS  current
-    DESCRIPTION
-            "A linkUp trap signifies that the SNMP entity, acting in an
-            agent role, has detected that the ifOperStatus object for
-            one of its communication links left the down state and
-            transitioned into some other state (but not into the
-            notPresent state).  This other state is indicated by the
-            included value of ifOperStatus."
-    ::= { snmpTraps 4 }
-
--- conformance information
-
-ifConformance OBJECT IDENTIFIER ::= { ifMIB 2 }
-
-ifGroups      OBJECT IDENTIFIER ::= { ifConformance 1 }
-ifCompliances OBJECT IDENTIFIER ::= { ifConformance 2 }
-
--- compliance statements
-
-ifCompliance3 MODULE-COMPLIANCE
-    STATUS  current
-    DESCRIPTION
-            "The compliance statement for SNMP entities which have
-            network interfaces."
-
-    MODULE  -- this module
-        MANDATORY-GROUPS { ifGeneralInformationGroup,
-                           linkUpDownNotificationsGroup }
-
--- The groups:
---        ifFixedLengthGroup
---        ifHCFixedLengthGroup
---        ifPacketGroup
---        ifHCPacketGroup
---        ifVHCPacketGroup
--- are mutually exclusive; at most one of these groups is implemented
--- for a particular interface.  When any of these groups is implemented
--- for a particular interface, then ifCounterDiscontinuityGroup must
--- also be implemented for that interface.
-
-        GROUP       ifFixedLengthGroup
-        DESCRIPTION
-            "This group is mandatory for those network interfaces which
-            are character-oriented or transmit data in fixed-length
-            transmission units, and for which the value of the
-            corresponding instance of ifSpeed is less than or equal to
-            20,000,000 bits/second."
-
-        GROUP       ifHCFixedLengthGroup
-        DESCRIPTION
-            "This group is mandatory for those network interfaces which
-            are character-oriented or transmit data in fixed-length
-            transmission units, and for which the value of the
-            corresponding instance of ifSpeed is greater than 20,000,000
-            bits/second."
-
-        GROUP       ifPacketGroup
-        DESCRIPTION
-            "This group is mandatory for those network interfaces which
-            are packet-oriented, and for which the value of the
-            corresponding instance of ifSpeed is less than or equal to
-            20,000,000 bits/second."
-
-        GROUP       ifHCPacketGroup
-        DESCRIPTION
-            "This group is mandatory only for those network interfaces
-            which are packet-oriented and for which the value of the
-            corresponding instance of ifSpeed is greater than 20,000,000
-            bits/second but less than or equal to 650,000,000
-            bits/second."
-
-        GROUP       ifVHCPacketGroup
-        DESCRIPTION
-            "This group is mandatory only for those network interfaces
-            which are packet-oriented and for which the value of the
-            corresponding instance of ifSpeed is greater than
-            650,000,000 bits/second."
-
-        GROUP       ifCounterDiscontinuityGroup
-        DESCRIPTION
-            "This group is mandatory for those network interfaces that
-            are required to maintain counters (i.e., those for which one
-            of the ifFixedLengthGroup, ifHCFixedLengthGroup,
-            ifPacketGroup, ifHCPacketGroup, or ifVHCPacketGroup is
-            mandatory)."
-
-        GROUP       ifRcvAddressGroup
-        DESCRIPTION
-            "The applicability of this group MUST be defined by the
-            media-specific MIBs.  Media-specific MIBs must define the
-            exact meaning, use, and semantics of the addresses in this
-            group."
-
-        OBJECT      ifLinkUpDownTrapEnable
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT      ifPromiscuousMode
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT       ifAdminStatus
-        SYNTAX       INTEGER { up(1), down(2) }
-        MIN-ACCESS   read-only
-        DESCRIPTION
-            "Write access is not required, nor is support for the value
-            testing(3)."
-
-        OBJECT       ifAlias
-        MIN-ACCESS   read-only
-        DESCRIPTION
-            "Write access is not required."
-    ::= { ifCompliances 3 }
-
--- units of conformance
-
-ifGeneralInformationGroup    OBJECT-GROUP
-    OBJECTS { ifIndex, ifDescr, ifType, ifSpeed, ifPhysAddress,
-              ifAdminStatus, ifOperStatus, ifLastChange,
-              ifLinkUpDownTrapEnable, ifConnectorPresent,
-              ifHighSpeed, ifName, ifNumber, ifAlias,
-              ifTableLastChange }
-    STATUS  current
-    DESCRIPTION
-            "A collection of objects providing information applicable to
-            all network interfaces."
-    ::= { ifGroups 10 }
-
--- the following five groups are mutually exclusive; at most
--- one of these groups is implemented for any interface
-
-ifFixedLengthGroup    OBJECT-GROUP
-    OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
-              ifInErrors, ifOutErrors }
-    STATUS  current
-    DESCRIPTION
-            "A collection of objects providing information specific to
-            non-high speed (non-high speed interfaces transmit and
-            receive at speeds less than or equal to 20,000,000
-            bits/second) character-oriented or fixed-length-transmission
-            network interfaces."
-    ::= { ifGroups 2 }
-
-ifHCFixedLengthGroup    OBJECT-GROUP
-    OBJECTS { ifHCInOctets, ifHCOutOctets,
-              ifInOctets, ifOutOctets, ifInUnknownProtos,
-              ifInErrors, ifOutErrors }
-    STATUS  current
-    DESCRIPTION
-            "A collection of objects providing information specific to
-            high speed (greater than 20,000,000 bits/second) character-
-            oriented or fixed-length-transmission network interfaces."
-    ::= { ifGroups 3 }
-
-ifPacketGroup    OBJECT-GROUP
-    OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
-              ifInErrors, ifOutErrors,
-              ifMtu, ifInUcastPkts, ifInMulticastPkts,
-              ifInBroadcastPkts, ifInDiscards,
-              ifOutUcastPkts, ifOutMulticastPkts,
-              ifOutBroadcastPkts, ifOutDiscards,
-              ifPromiscuousMode }
-    STATUS  current
-    DESCRIPTION
-            "A collection of objects providing information specific to
-            non-high speed (non-high speed interfaces transmit and
-            receive at speeds less than or equal to 20,000,000
-            bits/second) packet-oriented network interfaces."
-    ::= { ifGroups 4 }
-
-ifHCPacketGroup    OBJECT-GROUP
-    OBJECTS { ifHCInOctets, ifHCOutOctets,
-              ifInOctets, ifOutOctets, ifInUnknownProtos,
-              ifInErrors, ifOutErrors,
-              ifMtu, ifInUcastPkts, ifInMulticastPkts,
-              ifInBroadcastPkts, ifInDiscards,
-              ifOutUcastPkts, ifOutMulticastPkts,
-              ifOutBroadcastPkts, ifOutDiscards,
-              ifPromiscuousMode }
-    STATUS  current
-    DESCRIPTION
-            "A collection of objects providing information specific to
-            high speed (greater than 20,000,000 bits/second but less
-            than or equal to 650,000,000 bits/second) packet-oriented
-            network interfaces."
-    ::= { ifGroups 5 }
-
-ifVHCPacketGroup    OBJECT-GROUP
-    OBJECTS { ifHCInUcastPkts, ifHCInMulticastPkts,
-              ifHCInBroadcastPkts, ifHCOutUcastPkts,
-              ifHCOutMulticastPkts, ifHCOutBroadcastPkts,
-              ifHCInOctets, ifHCOutOctets,
-              ifInOctets, ifOutOctets, ifInUnknownProtos,
-              ifInErrors, ifOutErrors,
-              ifMtu, ifInUcastPkts, ifInMulticastPkts,
-              ifInBroadcastPkts, ifInDiscards,
-              ifOutUcastPkts, ifOutMulticastPkts,
-              ifOutBroadcastPkts, ifOutDiscards,
-              ifPromiscuousMode }
-    STATUS  current
-    DESCRIPTION
-            "A collection of objects providing information specific to
-            higher speed (greater than 650,000,000 bits/second) packet-
-            oriented network interfaces."
-    ::= { ifGroups 6 }
-
-ifRcvAddressGroup    OBJECT-GROUP
-    OBJECTS { ifRcvAddressStatus, ifRcvAddressType }
-    STATUS  current
-    DESCRIPTION
-            "A collection of objects providing information on the
-            multiple addresses which an interface receives."
-    ::= { ifGroups 7 }
-
-ifStackGroup2    OBJECT-GROUP
-    OBJECTS { ifStackStatus, ifStackLastChange }
-    STATUS  current
-    DESCRIPTION
-            "A collection of objects providing information on the
-            layering of MIB-II interfaces."
-    ::= { ifGroups 11 }
-
-ifCounterDiscontinuityGroup  OBJECT-GROUP
-    OBJECTS { ifCounterDiscontinuityTime }
-    STATUS  current
-    DESCRIPTION
-            "A collection of objects providing information specific to
-            interface counter discontinuities."
-    ::= { ifGroups 13 }
-
-linkUpDownNotificationsGroup  NOTIFICATION-GROUP
-    NOTIFICATIONS { linkUp, linkDown }
-    STATUS  current
-    DESCRIPTION
-            "The notifications which indicate specific changes in the
-            value of ifOperStatus."
-    ::= { ifGroups 14 }
-
--- Deprecated Definitions - Objects
-
---
---    The Interface Test Table
---
--- This group of objects is optional.  However, a media-specific
-
--- MIB may make implementation of this group mandatory.
---
--- This table replaces the ifExtnsTestTable
---
-
-ifTestTable   OBJECT-TYPE
-    SYNTAX      SEQUENCE OF IfTestEntry
-    MAX-ACCESS  not-accessible
-    STATUS      deprecated
-    DESCRIPTION
-            "This table contains one entry per interface.  It defines
-            objects which allow a network manager to instruct an agent
-            to test an interface for various faults.  Tests for an
-            interface are defined in the media-specific MIB for that
-            interface.  After invoking a test, the object ifTestResult
-            can be read to determine the outcome.  If an agent can not
-            perform the test, ifTestResult is set to so indicate.  The
-            object ifTestCode can be used to provide further test-
-            specific or interface-specific (or even enterprise-specific)
-            information concerning the outcome of the test.  Only one
-            test can be in progress on each interface at any one time.
-            If one test is in progress when another test is invoked, the
-            second test is rejected.  Some agents may reject a test when
-            a prior test is active on another interface.
-
-            Before starting a test, a manager-station must first obtain
-            'ownership' of the entry in the ifTestTable for the
-            interface to be tested.  This is accomplished with the
-            ifTestId and ifTestStatus objects as follows:
-
-          try_again:
-              get (ifTestId, ifTestStatus)
-              while (ifTestStatus != notInUse)
-                  /*
-                   * Loop while a test is running or some other
-                   * manager is configuring a test.
-                   */
-                  short delay
-                  get (ifTestId, ifTestStatus)
-              }
-
-              /*
-               * Is not being used right now -- let's compete
-               * to see who gets it.
-               */
-              lock_value = ifTestId
-
-              if ( set(ifTestId = lock_value, ifTestStatus = inUse,
-                       ifTestOwner = 'my-IP-address') == FAILURE)
-                  /*
-                   * Another manager got the ifTestEntry -- go
-                   * try again
-                   */
-                  goto try_again;
-
-              /*
-               * I have the lock
-               */
-              set up any test parameters.
-
-              /*
-               * This starts the test
-               */
-              set(ifTestType = test_to_run);
-
-              wait for test completion by polling ifTestResult
-
-              when test completes, agent sets ifTestResult
-                   agent also sets ifTestStatus = 'notInUse'
-
-              retrieve any additional test results, and ifTestId
-
-              if (ifTestId == lock_value+1) results are valid
-
-            A manager station first retrieves the value of the
-            appropriate ifTestId and ifTestStatus objects, periodically
-            repeating the retrieval if necessary, until the value of
-            ifTestStatus is 'notInUse'.  The manager station then tries
-            to set the same ifTestId object to the value it just
-            retrieved, the same ifTestStatus object to 'inUse', and the
-            corresponding ifTestOwner object to a value indicating
-            itself.  If the set operation succeeds then the manager has
-            obtained ownership of the ifTestEntry, and the value of the
-            ifTestId object is incremented by the agent (per the
-            semantics of TestAndIncr).  Failure of the set operation
-            indicates that some other manager has obtained ownership of
-            the ifTestEntry.
-
-            Once ownership is obtained, any test parameters can be
-            setup, and then the test is initiated by setting ifTestType.
-            On completion of the test, the agent sets ifTestStatus to
-            'notInUse'.  Once this occurs, the manager can retrieve the
-            results.  In the (rare) event that the invocation of tests
-            by two network managers were to overlap, then there would be
-            a possibility that the first test's results might be
-            overwritten by the second test's results prior to the first
-
-            results being read.  This unlikely circumstance can be
-            detected by a network manager retrieving ifTestId at the
-            same time as retrieving the test results, and ensuring that
-            the results are for the desired request.
-
-            If ifTestType is not set within an abnormally long period of
-            time after ownership is obtained, the agent should time-out
-            the manager, and reset the value of the ifTestStatus object
-            back to 'notInUse'.  It is suggested that this time-out
-            period be 5 minutes.
-
-            In general, a management station must not retransmit a
-            request to invoke a test for which it does not receive a
-            response; instead, it properly inspects an agent's MIB to
-            determine if the invocation was successful.  Only if the
-            invocation was unsuccessful, is the invocation request
-            retransmitted.
-
-            Some tests may require the interface to be taken off-line in
-            order to execute them, or may even require the agent to
-            reboot after completion of the test.  In these
-            circumstances, communication with the management station
-            invoking the test may be lost until after completion of the
-            test.  An agent is not required to support such tests.
-            However, if such tests are supported, then the agent should
-            make every effort to transmit a response to the request
-            which invoked the test prior to losing communication.  When
-            the agent is restored to normal service, the results of the
-            test are properly made available in the appropriate objects.
-            Note that this requires that the ifIndex value assigned to
-            an interface must be unchanged even if the test causes a
-            reboot.  An agent must reject any test for which it cannot,
-            perhaps due to resource constraints, make available at least
-            the minimum amount of information after that test
-            completes."
-    ::= { ifMIBObjects 3 }
-
-ifTestEntry OBJECT-TYPE
-    SYNTAX       IfTestEntry
-    MAX-ACCESS   not-accessible
-    STATUS       deprecated
-    DESCRIPTION
-            "An entry containing objects for invoking tests on an
-            interface."
-    AUGMENTS  { ifEntry }
-    ::= { ifTestTable 1 }
-
-IfTestEntry ::=
-
-    SEQUENCE {
-        ifTestId           TestAndIncr,
-        ifTestStatus       INTEGER,
-        ifTestType         AutonomousType,
-        ifTestResult       INTEGER,
-        ifTestCode         OBJECT IDENTIFIER,
-        ifTestOwner        OwnerString
-    }
-
-ifTestId         OBJECT-TYPE
-    SYNTAX       TestAndIncr
-    MAX-ACCESS   read-write
-    STATUS       deprecated
-    DESCRIPTION
-            "This object identifies the current invocation of the
-            interface's test."
-    ::= { ifTestEntry 1 }
-
-ifTestStatus     OBJECT-TYPE
-    SYNTAX       INTEGER { notInUse(1), inUse(2) }
-    MAX-ACCESS   read-write
-    STATUS       deprecated
-    DESCRIPTION
-            "This object indicates whether or not some manager currently
-            has the necessary 'ownership' required to invoke a test on
-            this interface.  A write to this object is only successful
-            when it changes its value from 'notInUse(1)' to 'inUse(2)'.
-            After completion of a test, the agent resets the value back
-            to 'notInUse(1)'."
-    ::= { ifTestEntry 2 }
-
-ifTestType       OBJECT-TYPE
-    SYNTAX       AutonomousType
-    MAX-ACCESS   read-write
-    STATUS       deprecated
-    DESCRIPTION
-            "A control variable used to start and stop operator-
-            initiated interface tests.  Most OBJECT IDENTIFIER values
-            assigned to tests are defined elsewhere, in association with
-            specific types of interface.  However, this document assigns
-            a value for a full-duplex loopback test, and defines the
-            special meanings of the subject identifier:
-
-                noTest  OBJECT IDENTIFIER ::= { 0 0 }
-
-            When the value noTest is written to this object, no action
-            is taken unless a test is in progress, in which case the
-            test is aborted.  Writing any other value to this object is
-
-            only valid when no test is currently in progress, in which
-            case the indicated test is initiated.
-
-            When read, this object always returns the most recent value
-            that ifTestType was set to.  If it has not been set since
-            the last initialization of the network management subsystem
-            on the agent, a value of noTest is returned."
-    ::= { ifTestEntry 3 }
-
-ifTestResult  OBJECT-TYPE
-    SYNTAX       INTEGER {
-                     none(1),          -- no test yet requested
-                     success(2),
-                     inProgress(3),
-                     notSupported(4),
-                     unAbleToRun(5),   -- due to state of system
-                     aborted(6),
-                     failed(7)
-                 }
-    MAX-ACCESS   read-only
-    STATUS       deprecated
-    DESCRIPTION
-            "This object contains the result of the most recently
-            requested test, or the value none(1) if no tests have been
-            requested since the last reset.  Note that this facility
-            provides no provision for saving the results of one test
-            when starting another, as could be required if used by
-            multiple managers concurrently."
-    ::= { ifTestEntry 4 }
-
-ifTestCode  OBJECT-TYPE
-    SYNTAX       OBJECT IDENTIFIER
-    MAX-ACCESS   read-only
-    STATUS       deprecated
-    DESCRIPTION
-            "This object contains a code which contains more specific
-            information on the test result, for example an error-code
-            after a failed test.  Error codes and other values this
-            object may take are specific to the type of interface and/or
-            test.  The value may have the semantics of either the
-            AutonomousType or InstancePointer textual conventions as
-            defined in RFC 2579.  The identifier:
-
-                testCodeUnknown  OBJECT IDENTIFIER ::= { 0 0 }
-
-            is defined for use if no additional result code is
-            available."
-    ::= { ifTestEntry 5 }
-
-ifTestOwner      OBJECT-TYPE
-    SYNTAX       OwnerString
-    MAX-ACCESS   read-write
-    STATUS       deprecated
-    DESCRIPTION
-            "The entity which currently has the 'ownership' required to
-            invoke a test on this interface."
-    ::= { ifTestEntry 6 }
-
--- Deprecated Definitions - Groups
-
-ifGeneralGroup    OBJECT-GROUP
-    OBJECTS { ifDescr, ifType, ifSpeed, ifPhysAddress,
-              ifAdminStatus, ifOperStatus, ifLastChange,
-              ifLinkUpDownTrapEnable, ifConnectorPresent,
-              ifHighSpeed, ifName }
-    STATUS  deprecated
-    DESCRIPTION
-            "A collection of objects deprecated in favour of
-            ifGeneralInformationGroup."
-    ::= { ifGroups 1 }
-
-ifTestGroup    OBJECT-GROUP
-    OBJECTS { ifTestId, ifTestStatus, ifTestType,
-              ifTestResult, ifTestCode, ifTestOwner }
-    STATUS  deprecated
-    DESCRIPTION
-            "A collection of objects providing the ability to invoke
-            tests on an interface."
-    ::= { ifGroups 8 }
-
-ifStackGroup    OBJECT-GROUP
-    OBJECTS { ifStackStatus }
-    STATUS  deprecated
-    DESCRIPTION
-            "The previous collection of objects providing information on
-            the layering of MIB-II interfaces."
-    ::= { ifGroups 9 }
-
-ifOldObjectsGroup    OBJECT-GROUP
-    OBJECTS { ifInNUcastPkts, ifOutNUcastPkts,
-              ifOutQLen, ifSpecific }
-    STATUS  deprecated
-    DESCRIPTION
-            "The collection of objects deprecated from the original MIB-
-            II interfaces group."
-    ::= { ifGroups 12 }
-
--- Deprecated Definitions - Compliance
-
-ifCompliance MODULE-COMPLIANCE
-    STATUS  deprecated
-    DESCRIPTION
-            "A compliance statement defined in a previous version of
-            this MIB module, for SNMP entities which have network
-            interfaces."
-
-    MODULE  -- this module
-        MANDATORY-GROUPS { ifGeneralGroup, ifStackGroup }
-
-        GROUP       ifFixedLengthGroup
-        DESCRIPTION
-            "This group is mandatory for all network interfaces which
-            are character-oriented or transmit data in fixed-length
-            transmission units."
-
-        GROUP       ifHCFixedLengthGroup
-        DESCRIPTION
-            "This group is mandatory only for those network interfaces
-            which are character-oriented or transmit data in fixed-
-            length transmission units, and for which the value of the
-            corresponding instance of ifSpeed is greater than 20,000,000
-            bits/second."
-
-        GROUP       ifPacketGroup
-        DESCRIPTION
-            "This group is mandatory for all network interfaces which
-            are packet-oriented."
-
-        GROUP       ifHCPacketGroup
-        DESCRIPTION
-            "This group is mandatory only for those network interfaces
-            which are packet-oriented and for which the value of the
-            corresponding instance of ifSpeed is greater than
-            650,000,000 bits/second."
-
-        GROUP       ifTestGroup
-        DESCRIPTION
-            "This group is optional.  Media-specific MIBs which require
-            interface tests are strongly encouraged to use this group
-            for invoking tests and reporting results.  A medium specific
-            MIB which has mandatory tests may make implementation of
-
-            this group mandatory."
-
-        GROUP       ifRcvAddressGroup
-        DESCRIPTION
-            "The applicability of this group MUST be defined by the
-            media-specific MIBs.  Media-specific MIBs must define the
-            exact meaning, use, and semantics of the addresses in this
-            group."
-
-        OBJECT      ifLinkUpDownTrapEnable
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT      ifPromiscuousMode
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT      ifStackStatus
-        SYNTAX      INTEGER { active(1) } -- subset of RowStatus
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required, and only one of the six
-            enumerated values for the RowStatus textual convention need
-            be supported, specifically: active(1)."
-
-        OBJECT       ifAdminStatus
-        SYNTAX       INTEGER { up(1), down(2) }
-        MIN-ACCESS   read-only
-        DESCRIPTION
-            "Write access is not required, nor is support for the value
-            testing(3)."
-    ::= { ifCompliances 1 }
-
-ifCompliance2 MODULE-COMPLIANCE
-    STATUS      deprecated
-    DESCRIPTION
-            "A compliance statement defined in a previous version of
-            this MIB module, for SNMP entities which have network
-            interfaces."
-
-    MODULE  -- this module
-        MANDATORY-GROUPS { ifGeneralInformationGroup, ifStackGroup2,
-                           ifCounterDiscontinuityGroup }
-
-        GROUP       ifFixedLengthGroup
-        DESCRIPTION
-            "This group is mandatory for all network interfaces which
-            are character-oriented or transmit data in fixed-length
-            transmission units."
-
-        GROUP       ifHCFixedLengthGroup
-        DESCRIPTION
-            "This group is mandatory only for those network interfaces
-            which are character-oriented or transmit data in fixed-
-            length transmission units, and for which the value of the
-            corresponding instance of ifSpeed is greater than 20,000,000
-            bits/second."
-
-        GROUP       ifPacketGroup
-        DESCRIPTION
-            "This group is mandatory for all network interfaces which
-            are packet-oriented."
-
-        GROUP       ifHCPacketGroup
-        DESCRIPTION
-            "This group is mandatory only for those network interfaces
-            which are packet-oriented and for which the value of the
-            corresponding instance of ifSpeed is greater than
-            650,000,000 bits/second."
-
-        GROUP       ifRcvAddressGroup
-        DESCRIPTION
-            "The applicability of this group MUST be defined by the
-            media-specific MIBs.  Media-specific MIBs must define the
-            exact meaning, use, and semantics of the addresses in this
-            group."
-
-        OBJECT      ifLinkUpDownTrapEnable
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT      ifPromiscuousMode
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT      ifStackStatus
-        SYNTAX      INTEGER { active(1) } -- subset of RowStatus
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required, and only one of the six
-            enumerated values for the RowStatus textual convention need
-            be supported, specifically: active(1)."
-
-        OBJECT       ifAdminStatus
-        SYNTAX       INTEGER { up(1), down(2) }
-        MIN-ACCESS   read-only
-        DESCRIPTION
-            "Write access is not required, nor is support for the value
-            testing(3)."
-
-        OBJECT       ifAlias
-        MIN-ACCESS   read-only
-        DESCRIPTION
-            "Write access is not required."
-    ::= { ifCompliances 2 }
-
-END
diff --git a/mibs/INET-ADDRESS-MIB.txt b/mibs/INET-ADDRESS-MIB.txt
deleted file mode 100644
index a778cba..0000000
--- a/mibs/INET-ADDRESS-MIB.txt
+++ /dev/null
@@ -1,402 +0,0 @@
-INET-ADDRESS-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, mib-2, Unsigned32 FROM SNMPv2-SMI
-    TEXTUAL-CONVENTION                 FROM SNMPv2-TC;
-
-inetAddressMIB MODULE-IDENTITY
-    LAST-UPDATED "200502040000Z"
-    ORGANIZATION
-        "IETF Operations and Management Area"
-    CONTACT-INFO
-        "Juergen Schoenwaelder (Editor)
-         International University Bremen
-         P.O. Box 750 561
-         28725 Bremen, Germany
-
-         Phone: +49 421 200-3587
-         EMail: j.schoenwaelder at iu-bremen.de
-
-         Send comments to <ietfmibs at ops.ietf.org>."
-    DESCRIPTION
-        "This MIB module defines textual conventions for
-         representing Internet addresses.  An Internet
-         address can be an IPv4 address, an IPv6 address,
-         or a DNS domain name.  This module also defines
-         textual conventions for Internet port numbers,
-         autonomous system numbers, and the length of an
-         Internet address prefix.
-
-         Copyright (C) The Internet Society (2005).  This version
-         of this MIB module is part of RFC 4001, see the RFC
-         itself for full legal notices."
-    REVISION     "200502040000Z"
-    DESCRIPTION
-        "Third version, published as RFC 4001.  This revision
-         introduces the InetZoneIndex, InetScopeType, and
-         InetVersion textual conventions."
-    REVISION     "200205090000Z"
-    DESCRIPTION
-        "Second version, published as RFC 3291.  This
-         revision contains several clarifications and
-         introduces several new textual conventions:
-         InetAddressPrefixLength, InetPortNumber,
-         InetAutonomousSystemNumber, InetAddressIPv4z,
-         and InetAddressIPv6z."
-    REVISION     "200006080000Z"
-    DESCRIPTION
-        "Initial version, published as RFC 2851."
-    ::= { mib-2 76 }
-
-InetAddressType ::= TEXTUAL-CONVENTION
-    STATUS      current
-    DESCRIPTION
-        "A value that represents a type of Internet address.
-
-         unknown(0)  An unknown address type.  This value MUST
-                     be used if the value of the corresponding
-                     InetAddress object is a zero-length string.
-                     It may also be used to indicate an IP address
-                     that is not in one of the formats defined
-                     below.
-
-         ipv4(1)     An IPv4 address as defined by the
-                     InetAddressIPv4 textual convention.
-
-         ipv6(2)     An IPv6 address as defined by the
-                     InetAddressIPv6 textual convention.
-
-         ipv4z(3)    A non-global IPv4 address including a zone
-                     index as defined by the InetAddressIPv4z
-                     textual convention.
-
-         ipv6z(4)    A non-global IPv6 address including a zone
-                     index as defined by the InetAddressIPv6z
-                     textual convention.
-
-         dns(16)     A DNS domain name as defined by the
-                     InetAddressDNS textual convention.
-
-         Each definition of a concrete InetAddressType value must be
-         accompanied by a definition of a textual convention for use
-         with that InetAddressType.
-
-         To support future extensions, the InetAddressType textual
-         convention SHOULD NOT be sub-typed in object type definitions.
-         It MAY be sub-typed in compliance statements in order to
-         require only a subset of these address types for a compliant
-         implementation.
-
-         Implementations must ensure that InetAddressType objects
-         and any dependent objects (e.g., InetAddress objects) are
-         consistent.  An inconsistentValue error must be generated
-         if an attempt to change an InetAddressType object would,
-         for example, lead to an undefined InetAddress value.  In
-
-         particular, InetAddressType/InetAddress pairs must be
-         changed together if the address type changes (e.g., from
-         ipv6(2) to ipv4(1))."
-    SYNTAX       INTEGER {
-                     unknown(0),
-                     ipv4(1),
-                     ipv6(2),
-                     ipv4z(3),
-                     ipv6z(4),
-                     dns(16)
-                 }
-
-InetAddress ::= TEXTUAL-CONVENTION
-    STATUS      current
-    DESCRIPTION
-        "Denotes a generic Internet address.
-
-         An InetAddress value is always interpreted within the context
-         of an InetAddressType value.  Every usage of the InetAddress
-         textual convention is required to specify the InetAddressType
-         object that provides the context.  It is suggested that the
-         InetAddressType object be logically registered before the
-         object(s) that use the InetAddress textual convention, if
-         they appear in the same logical row.
-
-         The value of an InetAddress object must always be
-         consistent with the value of the associated InetAddressType
-         object.  Attempts to set an InetAddress object to a value
-         inconsistent with the associated InetAddressType
-         must fail with an inconsistentValue error.
-
-         When this textual convention is used as the syntax of an
-         index object, there may be issues with the limit of 128
-         sub-identifiers specified in SMIv2, STD 58.  In this case,
-         the object definition MUST include a 'SIZE' clause to
-         limit the number of potential instance sub-identifiers;
-         otherwise the applicable constraints MUST be stated in
-         the appropriate conceptual row DESCRIPTION clauses, or
-         in the surrounding documentation if there is no single
-         DESCRIPTION clause that is appropriate."
-    SYNTAX       OCTET STRING (SIZE (0..255))
-
-InetAddressIPv4 ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "1d.1d.1d.1d"
-    STATUS       current
-    DESCRIPTION
-        "Represents an IPv4 network address:
-
-           Octets   Contents         Encoding
-            1-4     IPv4 address     network-byte order
-
-         The corresponding InetAddressType value is ipv4(1).
-
-         This textual convention SHOULD NOT be used directly in object
-         definitions, as it restricts addresses to a specific format.
-         However, if it is used, it MAY be used either on its own or in
-         conjunction with InetAddressType, as a pair."
-    SYNTAX       OCTET STRING (SIZE (4))
-
-InetAddressIPv6 ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x"
-    STATUS       current
-    DESCRIPTION
-        "Represents an IPv6 network address:
-
-           Octets   Contents         Encoding
-            1-16    IPv6 address     network-byte order
-
-         The corresponding InetAddressType value is ipv6(2).
-
-         This textual convention SHOULD NOT be used directly in object
-         definitions, as it restricts addresses to a specific format.
-         However, if it is used, it MAY be used either on its own or in
-         conjunction with InetAddressType, as a pair."
-    SYNTAX       OCTET STRING (SIZE (16))
-
-InetAddressIPv4z ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "1d.1d.1d.1d%4d"
-    STATUS       current
-    DESCRIPTION
-        "Represents a non-global IPv4 network address, together
-         with its zone index:
-
-           Octets   Contents         Encoding
-            1-4     IPv4 address     network-byte order
-            5-8     zone index       network-byte order
-
-         The corresponding InetAddressType value is ipv4z(3).
-
-         The zone index (bytes 5-8) is used to disambiguate identical
-         address values on nodes that have interfaces attached to
-         different zones of the same scope.  The zone index may contain
-         the special value 0, which refers to the default zone for each
-         scope.
-
-         This textual convention SHOULD NOT be used directly in object
-
-         definitions, as it restricts addresses to a specific format.
-         However, if it is used, it MAY be used either on its own or in
-         conjunction with InetAddressType, as a pair."
-    SYNTAX       OCTET STRING (SIZE (8))
-
-InetAddressIPv6z ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x%4d"
-    STATUS       current
-    DESCRIPTION
-        "Represents a non-global IPv6 network address, together
-         with its zone index:
-
-           Octets   Contents         Encoding
-            1-16    IPv6 address     network-byte order
-           17-20    zone index       network-byte order
-
-         The corresponding InetAddressType value is ipv6z(4).
-
-         The zone index (bytes 17-20) is used to disambiguate
-         identical address values on nodes that have interfaces
-         attached to different zones of the same scope.  The zone index
-         may contain the special value 0, which refers to the default
-         zone for each scope.
-
-         This textual convention SHOULD NOT be used directly in object
-         definitions, as it restricts addresses to a specific format.
-         However, if it is used, it MAY be used either on its own or in
-         conjunction with InetAddressType, as a pair."
-    SYNTAX       OCTET STRING (SIZE (20))
-
-InetAddressDNS ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "255a"
-    STATUS       current
-    DESCRIPTION
-        "Represents a DNS domain name.  The name SHOULD be fully
-         qualified whenever possible.
-
-         The corresponding InetAddressType is dns(16).
-
-         The DESCRIPTION clause of InetAddress objects that may have
-         InetAddressDNS values MUST fully describe how (and when)
-         these names are to be resolved to IP addresses.
-
-         The resolution of an InetAddressDNS value may require to
-         query multiple DNS records (e.g., A for IPv4 and AAAA for
-         IPv6).  The order of the resolution process and which DNS
-         record takes precedence depends on the configuration of the
-         resolver.
-
-         This textual convention SHOULD NOT be used directly in object
-         definitions, as it restricts addresses to a specific format.
-         However, if it is used, it MAY be used either on its own or in
-         conjunction with InetAddressType, as a pair."
-    SYNTAX       OCTET STRING (SIZE (1..255))
-
-InetAddressPrefixLength ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "d"
-    STATUS       current
-    DESCRIPTION
-        "Denotes the length of a generic Internet network address
-         prefix.  A value of n corresponds to an IP address mask
-         that has n contiguous 1-bits from the most significant
-         bit (MSB), with all other bits set to 0.
-
-         An InetAddressPrefixLength value is always interpreted within
-         the context of an InetAddressType value.  Every usage of the
-         InetAddressPrefixLength textual convention is required to
-         specify the InetAddressType object that provides the
-         context.  It is suggested that the InetAddressType object be
-         logically registered before the object(s) that use the
-         InetAddressPrefixLength textual convention, if they appear
-         in the same logical row.
-
-         InetAddressPrefixLength values larger than
-         the maximum length of an IP address for a specific
-         InetAddressType are treated as the maximum significant
-         value applicable for the InetAddressType.  The maximum
-         significant value is 32 for the InetAddressType
-         'ipv4(1)' and 'ipv4z(3)' and 128 for the InetAddressType
-         'ipv6(2)' and 'ipv6z(4)'.  The maximum significant value
-         for the InetAddressType 'dns(16)' is 0.
-
-         The value zero is object-specific and must be defined as
-         part of the description of any object that uses this
-         syntax.  Examples of the usage of zero might include
-         situations where the Internet network address prefix
-         is unknown or does not apply.
-
-         The upper bound of the prefix length has been chosen to
-         be consistent with the maximum size of an InetAddress."
-    SYNTAX       Unsigned32 (0..2040)
-
-InetPortNumber ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "d"
-    STATUS       current
-    DESCRIPTION
-        "Represents a 16 bit port number of an Internet transport
-
-         layer protocol.  Port numbers are assigned by IANA.  A
-         current list of all assignments is available from
-         <http://www.iana.org/>.
-
-         The value zero is object-specific and must be defined as
-         part of the description of any object that uses this
-         syntax.  Examples of the usage of zero might include
-         situations where a port number is unknown, or when the
-         value zero is used as a wildcard in a filter."
-    REFERENCE   "STD 6 (RFC 768), STD 7 (RFC 793) and RFC 2960"
-    SYNTAX       Unsigned32 (0..65535)
-
-InetAutonomousSystemNumber ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "d"
-    STATUS       current
-    DESCRIPTION
-        "Represents an autonomous system number that identifies an
-         Autonomous System (AS).  An AS is a set of routers under a
-         single technical administration, using an interior gateway
-         protocol and common metrics to route packets within the AS,
-         and using an exterior gateway protocol to route packets to
-         other ASes'.  IANA maintains the AS number space and has
-         delegated large parts to the regional registries.
-
-         Autonomous system numbers are currently limited to 16 bits
-         (0..65535).  There is, however, work in progress to enlarge the
-         autonomous system number space to 32 bits.  Therefore, this
-         textual convention uses an Unsigned32 value without a
-         range restriction in order to support a larger autonomous
-         system number space."
-    REFERENCE   "RFC 1771, RFC 1930"
-    SYNTAX       Unsigned32
-
-InetScopeType ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-        "Represents a scope type.  This textual convention can be used
-         in cases where a MIB has to represent different scope types
-         and there is no context information, such as an InetAddress
-         object, that implicitly defines the scope type.
-
-         Note that not all possible values have been assigned yet, but
-         they may be assigned in future revisions of this specification.
-         Applications should therefore be able to deal with values
-         not yet assigned."
-    REFERENCE   "RFC 3513"
-    SYNTAX       INTEGER {
-                     -- reserved(0),
-                     interfaceLocal(1),
-                     linkLocal(2),
-                     subnetLocal(3),
-                     adminLocal(4),
-                     siteLocal(5), -- site-local unicast addresses
-                                   -- have been deprecated by RFC 3879
-                     -- unassigned(6),
-                     -- unassigned(7),
-                     organizationLocal(8),
-                     -- unassigned(9),
-                     -- unassigned(10),
-                     -- unassigned(11),
-                     -- unassigned(12),
-                     -- unassigned(13),
-                     global(14)
-                     -- reserved(15)
-                 }
-
-InetZoneIndex ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "d"
-    STATUS       current
-    DESCRIPTION
-        "A zone index identifies an instance of a zone of a
-         specific scope.
-
-         The zone index MUST disambiguate identical address
-         values.  For link-local addresses, the zone index will
-         typically be the interface index (ifIndex as defined in the
-         IF-MIB) of the interface on which the address is configured.
-
-         The zone index may contain the special value 0, which refers
-         to the default zone.  The default zone may be used in cases
-         where the valid zone index is not known (e.g., when a
-         management application has to write a link-local IPv6
-         address without knowing the interface index value).  The
-         default zone SHOULD NOT be used as an easy way out in
-         cases where the zone index for a non-global IPv6 address
-         is known."
-    REFERENCE   "RFC4007"
-    SYNTAX       Unsigned32
-
-InetVersion ::= TEXTUAL-CONVENTION
-    STATUS  current
-    DESCRIPTION
-        "A value representing a version of the IP protocol.
-
-         unknown(0)  An unknown or unspecified version of the IP
-                     protocol.
-
-         ipv4(1)     The IPv4 protocol as defined in RFC 791 (STD 5).
-
-         ipv6(2)     The IPv6 protocol as defined in RFC 2460.
-
-         Note that this textual convention SHOULD NOT be used to
-         distinguish different address types associated with IP
-         protocols.  The InetAddressType has been designed for this
-         purpose."
-    REFERENCE   "RFC 791, RFC 2460"
-    SYNTAX       INTEGER {
-                     unknown(0),
-                     ipv4(1),
-                     ipv6(2)
-                 }
-END
diff --git a/mibs/IP-FORWARD-MIB.txt b/mibs/IP-FORWARD-MIB.txt
deleted file mode 100644
index 347b5e0..0000000
--- a/mibs/IP-FORWARD-MIB.txt
+++ /dev/null
@@ -1,1277 +0,0 @@
-IP-FORWARD-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE,
-    IpAddress, Integer32, Gauge32,
-    Counter32                          FROM SNMPv2-SMI
-    RowStatus                          FROM SNMPv2-TC
-
-    MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF
-    InterfaceIndexOrZero               FROM IF-MIB
-    ip                                 FROM IP-MIB
-    IANAipRouteProtocol                FROM IANA-RTPROTO-MIB
-    InetAddress, InetAddressType,
-    InetAddressPrefixLength,
-    InetAutonomousSystemNumber         FROM INET-ADDRESS-MIB;
-
-ipForward MODULE-IDENTITY
-    LAST-UPDATED "200602010000Z"
-    ORGANIZATION
-           "IETF IPv6 Working Group
-            http://www.ietf.org/html.charters/ipv6-charter.html"
-    CONTACT-INFO
-           "Editor:
-            Brian Haberman
-            Johns Hopkins University - Applied Physics Laboratory
-            Mailstop 17-S442
-            11100 Johns Hopkins Road
-            Laurel MD,  20723-6099  USA
-
-            Phone: +1-443-778-1319
-            Email: brian at innovationslab.net
-
-            Send comments to <ipv6 at ietf.org>"
-    DESCRIPTION
-           "The MIB module for the management of CIDR multipath IP
-            Routes.
-
-            Copyright (C) The Internet Society (2006).  This version
-            of this MIB module is a part of RFC 4292; see the RFC
-            itself for full legal notices."
-
-    REVISION      "200602010000Z"
-    DESCRIPTION
-           "IPv4/v6 version-independent revision.  Minimal changes
-            were made to the original RFC 2096 MIB to allow easy
-            upgrade of existing IPv4 implementations to the
-            version-independent MIB.  These changes include:
-
-            Adding inetCidrRouteDiscards as a replacement for the
-            deprecated ipRoutingDiscards and ipv6DiscardedRoutes
-            objects.
-
-            Adding a new conformance statement to support the
-            implementation of the IP Forwarding MIB in a
-            read-only mode.
-
-            The inetCidrRouteTable replaces the IPv4-specific
-            ipCidrRouteTable, its related objects, and related
-            conformance statements.
-
-            Published as RFC 4292."
-
-    REVISION      "199609190000Z"
-    DESCRIPTION
-           "Revised to support CIDR routes.
-            Published as RFC 2096."
-
-    REVISION      "199207022156Z"
-    DESCRIPTION
-           "Initial version, published as RFC 1354."
-    ::= { ip 24 }
-
-inetCidrRouteNumber OBJECT-TYPE
-    SYNTAX     Gauge32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of current inetCidrRouteTable entries that
-            are not invalid."
-::= { ipForward 6 }
-
-inetCidrRouteDiscards OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of valid route entries discarded from the
-            inetCidrRouteTable.  Discarded route entries do not
-            appear in the inetCidrRouteTable.  One possible reason
-            for discarding an entry would be to free-up buffer space
-            for other route table entries."
-    ::= { ipForward 8 }
-
---  Inet CIDR Route Table
-
---  The Inet CIDR Route Table deprecates and replaces the
---  ipCidrRoute Table currently in the IP Forwarding Table MIB.
---  It adds IP protocol independence.
-
-inetCidrRouteTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF InetCidrRouteEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "This entity's IP Routing table."
-    REFERENCE
-           "RFC 1213 Section 6.6, The IP Group"
-    ::= { ipForward 7 }
-
-inetCidrRouteEntry OBJECT-TYPE
-    SYNTAX     InetCidrRouteEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "A particular route to a particular destination, under a
-            particular policy (as reflected in the
-            inetCidrRoutePolicy object).
-
-            Dynamically created rows will survive an agent reboot.
-
-            Implementers need to be aware that if the total number
-            of elements (octets or sub-identifiers) in
-            inetCidrRouteDest, inetCidrRoutePolicy, and
-            inetCidrRouteNextHop exceeds 111, then OIDs of column
-            instances in this table will have more than 128 sub-
-            identifiers and cannot be accessed using SNMPv1,
-            SNMPv2c, or SNMPv3."
-    INDEX {
-        inetCidrRouteDestType,
-        inetCidrRouteDest,
-        inetCidrRoutePfxLen,
-        inetCidrRoutePolicy,
-        inetCidrRouteNextHopType,
-        inetCidrRouteNextHop
-        }
-    ::= { inetCidrRouteTable 1 }
-
-InetCidrRouteEntry ::= SEQUENCE {
-        inetCidrRouteDestType     InetAddressType,
-        inetCidrRouteDest         InetAddress,
-        inetCidrRoutePfxLen       InetAddressPrefixLength,
-        inetCidrRoutePolicy       OBJECT IDENTIFIER,
-        inetCidrRouteNextHopType  InetAddressType,
-        inetCidrRouteNextHop      InetAddress,
-        inetCidrRouteIfIndex      InterfaceIndexOrZero,
-        inetCidrRouteType         INTEGER,
-        inetCidrRouteProto        IANAipRouteProtocol,
-        inetCidrRouteAge          Gauge32,
-        inetCidrRouteNextHopAS    InetAutonomousSystemNumber,
-        inetCidrRouteMetric1      Integer32,
-        inetCidrRouteMetric2      Integer32,
-        inetCidrRouteMetric3      Integer32,
-        inetCidrRouteMetric4      Integer32,
-        inetCidrRouteMetric5      Integer32,
-        inetCidrRouteStatus       RowStatus
-    }
-
-inetCidrRouteDestType OBJECT-TYPE
-    SYNTAX     InetAddressType
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The type of the inetCidrRouteDest address, as defined
-            in the InetAddress MIB.
-
-            Only those address types that may appear in an actual
-            routing table are allowed as values of this object."
-    REFERENCE "RFC 4001"
-    ::= { inetCidrRouteEntry 1 }
-
-inetCidrRouteDest OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The destination IP address of this route.
-
-            The type of this address is determined by the value of
-            the inetCidrRouteDestType object.
-
-            The values for the index objects inetCidrRouteDest and
-            inetCidrRoutePfxLen must be consistent.  When the value
-            of inetCidrRouteDest (excluding the zone index, if one
-            is present) is x, then the bitwise logical-AND
-            of x with the value of the mask formed from the
-            corresponding index object inetCidrRoutePfxLen MUST be
-            equal to x.  If not, then the index pair is not
-            consistent and an inconsistentName error must be
-            returned on SET or CREATE requests."
-    ::= { inetCidrRouteEntry 2 }
-
-inetCidrRoutePfxLen OBJECT-TYPE
-    SYNTAX     InetAddressPrefixLength
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "Indicates the number of leading one bits that form the
-            mask to be logical-ANDed with the destination address
-            before being compared to the value in the
-
-            inetCidrRouteDest field.
-
-            The values for the index objects inetCidrRouteDest and
-            inetCidrRoutePfxLen must be consistent.  When the value
-            of inetCidrRouteDest (excluding the zone index, if one
-            is present) is x, then the bitwise logical-AND
-            of x with the value of the mask formed from the
-            corresponding index object inetCidrRoutePfxLen MUST be
-            equal to x.  If not, then the index pair is not
-            consistent and an inconsistentName error must be
-            returned on SET or CREATE requests."
-    ::= { inetCidrRouteEntry 3 }
-
-inetCidrRoutePolicy OBJECT-TYPE
-    SYNTAX     OBJECT IDENTIFIER
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "This object is an opaque object without any defined
-            semantics.  Its purpose is to serve as an additional
-            index that may delineate between multiple entries to
-            the same destination.  The value { 0 0 } shall be used
-            as the default value for this object."
-    ::= { inetCidrRouteEntry 4 }
-
-inetCidrRouteNextHopType OBJECT-TYPE
-    SYNTAX     InetAddressType
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The type of the inetCidrRouteNextHop address, as
-            defined in the InetAddress MIB.
-
-            Value should be set to unknown(0) for non-remote
-            routes.
-
-            Only those address types that may appear in an actual
-            routing table are allowed as values of this object."
-    REFERENCE "RFC 4001"
-    ::= { inetCidrRouteEntry 5 }
-
-inetCidrRouteNextHop OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "On remote routes, the address of the next system en
-
-            route.  For non-remote routes, a zero length string.
-
-            The type of this address is determined by the value of
-            the inetCidrRouteNextHopType object."
-    ::= { inetCidrRouteEntry 6 }
-
-inetCidrRouteIfIndex OBJECT-TYPE
-    SYNTAX     InterfaceIndexOrZero
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The ifIndex value that identifies the local interface
-            through which the next hop of this route should be
-            reached.  A value of 0 is valid and represents the
-            scenario where no interface is specified."
-    ::= { inetCidrRouteEntry 7 }
-
-inetCidrRouteType OBJECT-TYPE
-    SYNTAX     INTEGER {
-                other    (1), -- not specified by this MIB
-                reject   (2), -- route that discards traffic and
-                              --   returns ICMP notification
-                local    (3), -- local interface
-                remote   (4), -- remote destination
-                blackhole(5)  -- route that discards traffic
-                              --   silently
-             }
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The type of route.  Note that local(3) refers to a
-            route for which the next hop is the final destination;
-            remote(4) refers to a route for which the next hop is
-            not the final destination.
-
-            Routes that do not result in traffic forwarding or
-            rejection should not be displayed, even if the
-            implementation keeps them stored internally.
-
-            reject(2) refers to a route that, if matched, discards
-            the message as unreachable and returns a notification
-            (e.g., ICMP error) to the message sender.  This is used
-            in some protocols as a means of correctly aggregating
-            routes.
-
-            blackhole(5) refers to a route that, if matched,
-            discards the message silently."
-    ::= { inetCidrRouteEntry 8 }
-
-inetCidrRouteProto OBJECT-TYPE
-    SYNTAX     IANAipRouteProtocol
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The routing mechanism via which this route was learned.
-            Inclusion of values for gateway routing protocols is
-            not intended to imply that hosts should support those
-            protocols."
-    ::= { inetCidrRouteEntry 9 }
-
-inetCidrRouteAge OBJECT-TYPE
-    SYNTAX     Gauge32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of seconds since this route was last updated
-            or otherwise determined to be correct.  Note that no
-            semantics of 'too old' can be implied, except through
-            knowledge of the routing protocol by which the route
-            was learned."
-    ::= { inetCidrRouteEntry 10 }
-
-inetCidrRouteNextHopAS OBJECT-TYPE
-    SYNTAX     InetAutonomousSystemNumber
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The Autonomous System Number of the Next Hop.  The
-            semantics of this object are determined by the routing-
-            protocol specified in the route's inetCidrRouteProto
-            value.  When this object is unknown or not relevant, its
-            value should be set to zero."
-    DEFVAL { 0 }
-    ::= { inetCidrRouteEntry 11 }
-
-inetCidrRouteMetric1 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The primary routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's inetCidrRouteProto
-            value.  If this metric is not used, its value should be
-            set to -1."
-    DEFVAL { -1 }
-    ::= { inetCidrRouteEntry 12 }
-
-inetCidrRouteMetric2 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's inetCidrRouteProto
-            value.  If this metric is not used, its value should be
-            set to -1."
-    DEFVAL { -1 }
-    ::= { inetCidrRouteEntry 13 }
-
-inetCidrRouteMetric3 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's inetCidrRouteProto
-            value.  If this metric is not used, its value should be
-            set to -1."
-    DEFVAL { -1 }
-    ::= { inetCidrRouteEntry 14 }
-
-inetCidrRouteMetric4 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's inetCidrRouteProto
-            value.  If this metric is not used, its value should be
-            set to -1."
-    DEFVAL { -1 }
-    ::= { inetCidrRouteEntry 15 }
-
-inetCidrRouteMetric5 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-
-            protocol specified in the route's inetCidrRouteProto
-            value.  If this metric is not used, its value should be
-            set to -1."
-    DEFVAL { -1 }
-    ::= { inetCidrRouteEntry 16 }
-
-inetCidrRouteStatus OBJECT-TYPE
-    SYNTAX     RowStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The row status variable, used according to row
-            installation and removal conventions.
-
-            A row entry cannot be modified when the status is
-            marked as active(1)."
-    ::= { inetCidrRouteEntry 17 }
-
---  Conformance information
-
-ipForwardConformance
-     OBJECT IDENTIFIER ::= { ipForward 5 }
-
-ipForwardGroups
-     OBJECT IDENTIFIER ::= { ipForwardConformance 1 }
-
-ipForwardCompliances
-     OBJECT IDENTIFIER ::= { ipForwardConformance 2 }
-
---  Compliance statements
-
-ipForwardFullCompliance MODULE-COMPLIANCE
-    STATUS     current
-    DESCRIPTION
-           "When this MIB is implemented for read-create, the
-            implementation can claim full compliance.
-
-            There are a number of INDEX objects that cannot be
-            represented in the form of OBJECT clauses in SMIv2,
-            but for which there are compliance requirements,
-            expressed in OBJECT clause form in this description:
-
-            -- OBJECT      inetCidrRouteDestType
-            -- SYNTAX      InetAddressType (ipv4(1), ipv6(2),
-            --                              ipv4z(3), ipv6z(4))
-            -- DESCRIPTION
-            --     This MIB requires support for global and
-            --     non-global ipv4 and ipv6 addresses.
-
-            --
-            -- OBJECT      inetCidrRouteDest
-            -- SYNTAX      InetAddress (SIZE (4 | 8 | 16 | 20))
-            -- DESCRIPTION
-            --     This MIB requires support for global and
-            --     non-global IPv4 and IPv6 addresses.
-            --
-            -- OBJECT      inetCidrRouteNextHopType
-            -- SYNTAX      InetAddressType (unknown(0), ipv4(1),
-            --                              ipv6(2), ipv4z(3)
-            --                              ipv6z(4))
-            -- DESCRIPTION
-            --     This MIB requires support for global and
-            --     non-global ipv4 and ipv6 addresses.
-            --
-            -- OBJECT      inetCidrRouteNextHop
-            -- SYNTAX      InetAddress (SIZE (0 | 4 | 8 | 16 | 20))
-            -- DESCRIPTION
-            --     This MIB requires support for global and
-            --     non-global IPv4 and IPv6 addresses.
-            "
-
-   MODULE -- this module
-   MANDATORY-GROUPS { inetForwardCidrRouteGroup }
-
-   OBJECT        inetCidrRouteStatus
-   SYNTAX        RowStatus { active(1), notInService (2) }
-   WRITE-SYNTAX  RowStatus { active(1), notInService (2),
-                             createAndGo(4), destroy(6) }
-   DESCRIPTION  "Support for createAndWait is not required."
-   ::= { ipForwardCompliances 3 }
-
-ipForwardReadOnlyCompliance MODULE-COMPLIANCE
-   STATUS     current
-   DESCRIPTION
-           "When this MIB is implemented without support for read-
-            create (i.e., in read-only mode), the implementation can
-            claim read-only compliance."
-   MODULE -- this module
-   MANDATORY-GROUPS { inetForwardCidrRouteGroup }
-
-   OBJECT      inetCidrRouteIfIndex
-   MIN-ACCESS  read-only
-   DESCRIPTION
-      "Write access is not required."
-
-   OBJECT      inetCidrRouteType
-   MIN-ACCESS  read-only
-   DESCRIPTION
-      "Write access is not required."
-
-   OBJECT      inetCidrRouteNextHopAS
-   MIN-ACCESS  read-only
-   DESCRIPTION
-      "Write access is not required."
-
-   OBJECT      inetCidrRouteMetric1
-   MIN-ACCESS  read-only
-   DESCRIPTION
-      "Write access is not required."
-
-   OBJECT      inetCidrRouteMetric2
-   MIN-ACCESS  read-only
-   DESCRIPTION
-      "Write access is not required."
-
-   OBJECT      inetCidrRouteMetric3
-   MIN-ACCESS  read-only
-   DESCRIPTION
-      "Write access is not required."
-
-   OBJECT      inetCidrRouteMetric4
-   MIN-ACCESS  read-only
-   DESCRIPTION
-      "Write access is not required."
-
-   OBJECT      inetCidrRouteMetric5
-   MIN-ACCESS  read-only
-   DESCRIPTION
-      "Write access is not required."
-
-   OBJECT      inetCidrRouteStatus
-   SYNTAX      RowStatus { active(1) }
-   MIN-ACCESS  read-only
-   DESCRIPTION
-      "Write access is not required."
-   ::= { ipForwardCompliances 4 }
-
--- units of conformance
-
-inetForwardCidrRouteGroup OBJECT-GROUP
-    OBJECTS { inetCidrRouteDiscards,
-              inetCidrRouteIfIndex, inetCidrRouteType,
-              inetCidrRouteProto, inetCidrRouteAge,
-              inetCidrRouteNextHopAS, inetCidrRouteMetric1,
-              inetCidrRouteMetric2, inetCidrRouteMetric3,
-              inetCidrRouteMetric4, inetCidrRouteMetric5,
-              inetCidrRouteStatus, inetCidrRouteNumber
-        }
-    STATUS     current
-    DESCRIPTION
-           "The IP version-independent CIDR Route Table."
-    ::= { ipForwardGroups 4 }
-
---  Deprecated Objects
-
-ipCidrRouteNumber OBJECT-TYPE
-    SYNTAX     Gauge32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of current ipCidrRouteTable entries that are
-            not invalid.  This object is deprecated in favor of
-            inetCidrRouteNumber and the inetCidrRouteTable."
-    ::= { ipForward 3 }
-
---  IP CIDR Route Table
-
---  The IP CIDR Route Table obsoletes and replaces the ipRoute
---  Table current in MIB-I and MIB-II and the IP Forwarding Table.
---  It adds knowledge of the autonomous system of the next hop,
---  multiple next hops, policy routing, and Classless
---  Inter-Domain Routing.
-
-ipCidrRouteTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF IpCidrRouteEntry
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-           "This entity's IP Routing table.  This table has been
-            deprecated in favor of the IP version neutral
-            inetCidrRouteTable."
-    REFERENCE
-           "RFC 1213 Section 6.6, The IP Group"
-    ::= { ipForward 4 }
-
-ipCidrRouteEntry OBJECT-TYPE
-    SYNTAX     IpCidrRouteEntry
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-           "A particular route to a particular destination, under a
-
-            particular policy."
-    INDEX {
-        ipCidrRouteDest,
-        ipCidrRouteMask,
-        ipCidrRouteTos,
-        ipCidrRouteNextHop
-        }
-       ::= { ipCidrRouteTable 1 }
-
-IpCidrRouteEntry ::= SEQUENCE {
-        ipCidrRouteDest       IpAddress,
-        ipCidrRouteMask       IpAddress,
-        ipCidrRouteTos        Integer32,
-        ipCidrRouteNextHop    IpAddress,
-        ipCidrRouteIfIndex    Integer32,
-        ipCidrRouteType       INTEGER,
-        ipCidrRouteProto      INTEGER,
-        ipCidrRouteAge        Integer32,
-        ipCidrRouteInfo       OBJECT IDENTIFIER,
-        ipCidrRouteNextHopAS  Integer32,
-        ipCidrRouteMetric1    Integer32,
-        ipCidrRouteMetric2    Integer32,
-        ipCidrRouteMetric3    Integer32,
-        ipCidrRouteMetric4    Integer32,
-        ipCidrRouteMetric5    Integer32,
-        ipCidrRouteStatus     RowStatus
-    }
-
-ipCidrRouteDest OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The destination IP address of this route.
-
-            This object may not take a Multicast (Class D) address
-            value.
-
-            Any assignment (implicit or otherwise) of an instance
-            of this object to a value x must be rejected if the
-            bitwise logical-AND of x with the value of the
-            corresponding instance of the ipCidrRouteMask object is
-            not equal to x."
-    ::= { ipCidrRouteEntry 1 }
-
-ipCidrRouteMask OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "Indicate the mask to be logical-ANDed with the
-            destination address before being compared to the value
-            in the ipCidrRouteDest field.  For those systems that
-            do not support arbitrary subnet masks, an agent
-            constructs the value of the ipCidrRouteMask by
-            reference to the IP Address Class.
-
-            Any assignment (implicit or otherwise) of an instance
-            of this object to a value x must be rejected if the
-            bitwise logical-AND of x with the value of the
-            corresponding instance of the ipCidrRouteDest object is
-            not equal to ipCidrRouteDest."
-    ::= { ipCidrRouteEntry 2 }
-
--- The following convention is included for specification
--- of TOS Field contents.  At this time, the Host Requirements
--- and the Router Requirements documents disagree on the width
--- of the TOS field.  This mapping describes the Router
--- Requirements mapping, and leaves room to widen the TOS field
--- without impact to fielded systems.
-
-ipCidrRouteTos OBJECT-TYPE
-    SYNTAX     Integer32 (0..2147483647)
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The policy specifier is the IP TOS Field.  The encoding
-            of IP TOS is as specified by the following convention.
-            Zero indicates the default path if no more specific
-            policy applies.
-
-            +-----+-----+-----+-----+-----+-----+-----+-----+
-            |                 |                       |     |
-            |   PRECEDENCE    |    TYPE OF SERVICE    |  0  |
-            |                 |                       |     |
-            +-----+-----+-----+-----+-----+-----+-----+-----+
-
-                         IP TOS                IP TOS
-               Field     Policy      Field     Policy
-               Contents    Code      Contents    Code
-               0 0 0 0  ==>   0      0 0 0 1  ==>   2
-               0 0 1 0  ==>   4      0 0 1 1  ==>   6
-               0 1 0 0  ==>   8      0 1 0 1  ==>  10
-               0 1 1 0  ==>  12      0 1 1 1  ==>  14
-               1 0 0 0  ==>  16      1 0 0 1  ==>  18
-               1 0 1 0  ==>  20      1 0 1 1  ==>  22
-
-               1 1 0 0  ==>  24      1 1 0 1  ==>  26
-               1 1 1 0  ==>  28      1 1 1 1  ==>  30"
-    ::= { ipCidrRouteEntry 3 }
-
-ipCidrRouteNextHop OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "On remote routes, the address of the next system en
-            route; Otherwise, 0.0.0.0."
-    ::= { ipCidrRouteEntry 4 }
-
-ipCidrRouteIfIndex OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "The ifIndex value that identifies the local interface
-            through which the next hop of this route should be
-            reached."
-    DEFVAL { 0 }
-    ::= { ipCidrRouteEntry 5 }
-
-ipCidrRouteType OBJECT-TYPE
-    SYNTAX     INTEGER {
-                other    (1), -- not specified by this MIB
-                reject   (2), -- route that discards traffic
-                local    (3), -- local interface
-                remote   (4)  -- remote destination
-             }
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "The type of route.  Note that local(3) refers to a
-            route for which the next hop is the final destination;
-            remote(4) refers to a route for which the next hop is
-            not the final destination.
-
-            Routes that do not result in traffic forwarding or
-            rejection should not be displayed, even if the
-            implementation keeps them stored internally.
-
-            reject (2) refers to a route that, if matched,
-            discards the message as unreachable.  This is used in
-            some protocols as a means of correctly aggregating
-            routes."
-    ::= { ipCidrRouteEntry 6 }
-
-ipCidrRouteProto OBJECT-TYPE
-    SYNTAX     INTEGER {
-                other     (1),  -- not specified
-                local     (2),  -- local interface
-                netmgmt   (3),  -- static route
-                icmp      (4),  -- result of ICMP Redirect
-
-                        -- the following are all dynamic
-                        -- routing protocols
-                egp        (5),  -- Exterior Gateway Protocol
-                ggp        (6),  -- Gateway-Gateway Protocol
-                hello      (7),  -- FuzzBall HelloSpeak
-                rip        (8),  -- Berkeley RIP or RIP-II
-                isIs       (9),  -- Dual IS-IS
-                esIs       (10), -- ISO 9542
-                ciscoIgrp  (11), -- Cisco IGRP
-                bbnSpfIgp  (12), -- BBN SPF IGP
-                ospf       (13), -- Open Shortest Path First
-                bgp        (14), -- Border Gateway Protocol
-                idpr       (15), -- InterDomain Policy Routing
-                ciscoEigrp (16)  -- Cisco EIGRP
-             }
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The routing mechanism via which this route was learned.
-            Inclusion of values for gateway routing protocols is
-            not intended to imply that hosts should support those
-            protocols."
-    ::= { ipCidrRouteEntry 7 }
-
-ipCidrRouteAge OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of seconds since this route was last updated
-            or otherwise determined to be correct.  Note that no
-            semantics of `too old' can be implied, except through
-            knowledge of the routing protocol by which the route
-            was learned."
-    DEFVAL  { 0 }
-    ::= { ipCidrRouteEntry 8 }
-
-ipCidrRouteInfo OBJECT-TYPE
-    SYNTAX     OBJECT IDENTIFIER
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "A reference to MIB definitions specific to the
-            particular routing protocol that is responsible for
-            this route, as determined by the value specified in the
-            route's ipCidrRouteProto value.  If this information is
-            not present, its value should be set to the OBJECT
-            IDENTIFIER { 0 0 }, which is a syntactically valid
-            object identifier, and any implementation conforming to
-            ASN.1 and the Basic Encoding Rules must be able to
-            generate and recognize this value."
-    ::= { ipCidrRouteEntry 9 }
-
-ipCidrRouteNextHopAS OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "The Autonomous System Number of the Next Hop.  The
-            semantics of this object are determined by the routing-
-            protocol specified in the route's ipCidrRouteProto
-            value.  When this object is unknown or not relevant, its
-            value should be set to zero."
-    DEFVAL { 0 }
-    ::= { ipCidrRouteEntry 10 }
-
-ipCidrRouteMetric1 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "The primary routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's ipCidrRouteProto
-            value.  If this metric is not used, its value should be
-            set to -1."
-    DEFVAL { -1 }
-    ::= { ipCidrRouteEntry 11 }
-
-ipCidrRouteMetric2 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's ipCidrRouteProto
-            value.  If this metric is not used, its value should be
-
-            set to -1."
-    DEFVAL { -1 }
-    ::= { ipCidrRouteEntry 12 }
-
-ipCidrRouteMetric3 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's ipCidrRouteProto
-            value.  If this metric is not used, its value should be
-            set to -1."
-    DEFVAL { -1 }
-    ::= { ipCidrRouteEntry 13 }
-
-ipCidrRouteMetric4 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's ipCidrRouteProto
-            value.  If this metric is not used, its value should be
-            set to -1."
-    DEFVAL { -1 }
-    ::= { ipCidrRouteEntry 14 }
-
-ipCidrRouteMetric5 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's ipCidrRouteProto
-            value.  If this metric is not used, its value should be
-            set to -1."
-    DEFVAL { -1 }
-    ::= { ipCidrRouteEntry 15 }
-
-ipCidrRouteStatus OBJECT-TYPE
-    SYNTAX     RowStatus
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "The row status variable, used according to row
-            installation and removal conventions."
-    ::= { ipCidrRouteEntry 16 }
-
--- compliance statements
-
-ipForwardCompliance MODULE-COMPLIANCE
-    STATUS     deprecated
-    DESCRIPTION
-           "The compliance statement for SNMPv2 entities that
-            implement the ipForward MIB.
-
-            This compliance statement has been deprecated and
-            replaced with ipForwardFullCompliance and
-            ipForwardReadOnlyCompliance."
-
-   MODULE  -- this module
-   MANDATORY-GROUPS { ipForwardCidrRouteGroup }
-   ::= { ipForwardCompliances 1 }
-
--- units of conformance
-
-ipForwardCidrRouteGroup OBJECT-GROUP
-    OBJECTS { ipCidrRouteNumber,
-              ipCidrRouteDest, ipCidrRouteMask, ipCidrRouteTos,
-              ipCidrRouteNextHop, ipCidrRouteIfIndex,
-              ipCidrRouteType, ipCidrRouteProto, ipCidrRouteAge,
-              ipCidrRouteInfo,ipCidrRouteNextHopAS,
-              ipCidrRouteMetric1, ipCidrRouteMetric2,
-              ipCidrRouteMetric3, ipCidrRouteMetric4,
-              ipCidrRouteMetric5, ipCidrRouteStatus
-        }
-    STATUS     deprecated
-    DESCRIPTION
-           "The CIDR Route Table.
-
-            This group has been deprecated and replaced with
-            inetForwardCidrRouteGroup."
-    ::= { ipForwardGroups 3 }
-
--- Obsoleted Definitions - Objects
-
-ipForwardNumber OBJECT-TYPE
-    SYNTAX     Gauge32
-    MAX-ACCESS read-only
-    STATUS     obsolete
-    DESCRIPTION
-           "The number of current ipForwardTable entries that are
-            not invalid."
-    ::= { ipForward 1 }
-
---  IP Forwarding Table
-
---  The IP Forwarding Table obsoletes and replaces the ipRoute
---  Table current in MIB-I and MIB-II.  It adds knowledge of
---  the autonomous system of the next hop, multiple next hop
---  support, and policy routing support.
-
-ipForwardTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF IpForwardEntry
-    MAX-ACCESS not-accessible
-    STATUS     obsolete
-    DESCRIPTION
-           "This entity's IP Routing table."
-    REFERENCE
-           "RFC 1213 Section 6.6, The IP Group"
-    ::= { ipForward 2 }
-
-ipForwardEntry OBJECT-TYPE
-    SYNTAX     IpForwardEntry
-    MAX-ACCESS not-accessible
-    STATUS     obsolete
-    DESCRIPTION
-           "A particular route to a particular destination, under a
-            particular policy."
-    INDEX {
-        ipForwardDest,
-        ipForwardProto,
-        ipForwardPolicy,
-        ipForwardNextHop
-        }
-    ::= { ipForwardTable 1 }
-
-IpForwardEntry ::= SEQUENCE {
-        ipForwardDest       IpAddress,
-        ipForwardMask       IpAddress,
-        ipForwardPolicy     Integer32,
-        ipForwardNextHop    IpAddress,
-        ipForwardIfIndex    Integer32,
-        ipForwardType       INTEGER,
-        ipForwardProto      INTEGER,
-        ipForwardAge        Integer32,
-        ipForwardInfo       OBJECT IDENTIFIER,
-        ipForwardNextHopAS  Integer32,
-        ipForwardMetric1    Integer32,
-        ipForwardMetric2    Integer32,
-        ipForwardMetric3    Integer32,
-        ipForwardMetric4    Integer32,
-        ipForwardMetric5    Integer32
-    }
-
-ipForwardDest OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-only
-    STATUS     obsolete
-    DESCRIPTION
-           "The destination IP address of this route.  An entry
-            with a value of 0.0.0.0 is considered a default route.
-
-            This object may not take a Multicast (Class D) address
-            value.
-
-            Any assignment (implicit or otherwise) of an instance
-            of this object to a value x must be rejected if the
-            bitwise logical-AND of x with the value of the
-            corresponding instance of the ipForwardMask object is
-            not equal to x."
-    ::= { ipForwardEntry 1 }
-
-ipForwardMask OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-create
-    STATUS     obsolete
-    DESCRIPTION
-           "Indicate the mask to be logical-ANDed with the
-            destination address before being compared to the value
-            in the ipForwardDest field.  For those systems that do
-            not support arbitrary subnet masks, an agent constructs
-            the value of the ipForwardMask by reference to the IP
-            Address Class.
-
-            Any assignment (implicit or otherwise) of an instance
-            of this object to a value x must be rejected if the
-            bitwise logical-AND of x with the value of the
-            corresponding instance of the ipForwardDest object is
-            not equal to ipForwardDest."
-    DEFVAL { '00000000'H }      -- 0.0.0.0
-    ::= { ipForwardEntry 2 }
-
--- The following convention is included for specification
--- of TOS Field contents.  At this time, the Host Requirements
--- and the Router Requirements documents disagree on the width
--- of the TOS field.  This mapping describes the Router
-
--- Requirements mapping, and leaves room to widen the TOS field
--- without impact to fielded systems.
-
-ipForwardPolicy OBJECT-TYPE
-    SYNTAX     Integer32 (0..2147483647)
-    MAX-ACCESS read-only
-    STATUS     obsolete
-    DESCRIPTION
-           "The general set of conditions that would cause
-            the selection of one multipath route (set of
-            next hops for a given destination) is referred
-            to as 'policy'.
-
-            Unless the mechanism indicated by ipForwardProto
-            specifies otherwise, the policy specifier is
-            the IP TOS Field.  The encoding of IP TOS is as
-            specified by the following convention.  Zero
-            indicates the default path if no more specific
-            policy applies.
-
-            +-----+-----+-----+-----+-----+-----+-----+-----+
-            |                 |                       |     |
-            |   PRECEDENCE    |    TYPE OF SERVICE    |  0  |
-            |                 |                       |     |
-            +-----+-----+-----+-----+-----+-----+-----+-----+
-
-                         IP TOS                IP TOS
-               Field     Policy      Field     Policy
-               Contents    Code      Contents    Code
-               0 0 0 0  ==>   0      0 0 0 1  ==>   2
-               0 0 1 0  ==>   4      0 0 1 1  ==>   6
-               0 1 0 0  ==>   8      0 1 0 1  ==>  10
-               0 1 1 0  ==>  12      0 1 1 1  ==>  14
-               1 0 0 0  ==>  16      1 0 0 1  ==>  18
-               1 0 1 0  ==>  20      1 0 1 1  ==>  22
-               1 1 0 0  ==>  24      1 1 0 1  ==>  26
-               1 1 1 0  ==>  28      1 1 1 1  ==>  30
-
-            Protocols defining 'policy' otherwise must either
-            define a set of values that are valid for
-            this object or must implement an integer-instanced
-            policy table for which this object's
-            value acts as an index."
-    ::= { ipForwardEntry 3 }
-
-ipForwardNextHop OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-only
-    STATUS     obsolete
-    DESCRIPTION
-           "On remote routes, the address of the next system en
-            route; otherwise, 0.0.0.0."
-    ::= { ipForwardEntry 4 }
-
-ipForwardIfIndex OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     obsolete
-    DESCRIPTION
-           "The ifIndex value that identifies the local interface
-            through which the next hop of this route should be
-            reached."
-    DEFVAL { 0 }
-    ::= { ipForwardEntry 5 }
-
-ipForwardType OBJECT-TYPE
-    SYNTAX     INTEGER {
-                other    (1), -- not specified by this MIB
-                invalid  (2), -- logically deleted
-                local    (3), -- local interface
-                remote   (4)  -- remote destination
-             }
-    MAX-ACCESS read-create
-    STATUS     obsolete
-    DESCRIPTION
-           "The type of route.  Note that local(3) refers to a
-            route for which the next hop is the final destination;
-            remote(4) refers to a route for which the next hop is
-            not the final destination.
-
-            Setting this object to the value invalid(2) has the
-            effect of invalidating the corresponding entry in the
-            ipForwardTable object.  That is, it effectively
-            disassociates the destination identified with said
-            entry from the route identified with said entry.  It is
-            an implementation-specific matter as to whether the
-            agent removes an invalidated entry from the table.
-            Accordingly, management stations must be prepared to
-            receive tabular information from agents that
-            corresponds to entries not currently in use.  Proper
-            interpretation of such entries requires examination of
-            the relevant ipForwardType object."
-    DEFVAL { invalid }
-    ::= { ipForwardEntry 6 }
-
-ipForwardProto OBJECT-TYPE
-    SYNTAX     INTEGER {
-                other     (1),  -- not specified
-                local     (2),  -- local interface
-                netmgmt   (3),  -- static route
-                icmp      (4),  -- result of ICMP Redirect
-
-                        -- the following are all dynamic
-                        -- routing protocols
-                egp       (5),  -- Exterior Gateway Protocol
-                ggp       (6),  -- Gateway-Gateway Protocol
-                hello     (7),  -- FuzzBall HelloSpeak
-                rip       (8),  -- Berkeley RIP or RIP-II
-                is-is     (9),  -- Dual IS-IS
-                es-is     (10), -- ISO 9542
-                ciscoIgrp (11), -- Cisco IGRP
-                bbnSpfIgp (12), -- BBN SPF IGP
-                ospf      (13), -- Open Shortest Path First
-                bgp       (14), -- Border Gateway Protocol
-                idpr      (15)  -- InterDomain Policy Routing
-             }
-    MAX-ACCESS read-only
-    STATUS     obsolete
-    DESCRIPTION
-           "The routing mechanism via which this route was learned.
-            Inclusion of values for gateway routing protocols is
-            not intended to imply that hosts should support those
-            protocols."
-    ::= { ipForwardEntry 7 }
-
-ipForwardAge OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-only
-    STATUS     obsolete
-    DESCRIPTION
-           "The number of seconds since this route was last updated
-            or otherwise determined to be correct.  Note that no
-            semantics of `too old' can be implied except through
-            knowledge of the routing protocol by which the route
-            was learned."
-    DEFVAL  { 0 }
-    ::= { ipForwardEntry 8 }
-
-ipForwardInfo OBJECT-TYPE
-    SYNTAX     OBJECT IDENTIFIER
-    MAX-ACCESS read-create
-    STATUS     obsolete
-    DESCRIPTION
-           "A reference to MIB definitions specific to the
-            particular routing protocol that is responsible for
-            this route, as determined by the value specified in the
-            route's ipForwardProto value.  If this information is
-            not present, its value should be set to the OBJECT
-            IDENTIFIER { 0 0 }, which is a syntactically valid
-            object identifier, and any implementation conforming to
-            ASN.1 and the Basic Encoding Rules must be able to
-            generate and recognize this value."
-    ::= { ipForwardEntry 9 }
-
-ipForwardNextHopAS OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     obsolete
-    DESCRIPTION
-           "The Autonomous System Number of the Next Hop.  When
-            this is unknown or not relevant to the protocol
-            indicated by ipForwardProto, zero."
-    DEFVAL { 0 }
-    ::= { ipForwardEntry 10 }
-
-ipForwardMetric1 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     obsolete
-    DESCRIPTION
-           "The primary routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's ipForwardProto value.
-            If this metric is not used, its value should be set to
-            -1."
-    DEFVAL { -1 }
-    ::= { ipForwardEntry 11 }
-
-ipForwardMetric2 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     obsolete
-    DESCRIPTION
-           "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's ipForwardProto value.
-            If this metric is not used, its value should be set to
-            -1."
-    DEFVAL { -1 }
-    ::= { ipForwardEntry 12 }
-
-ipForwardMetric3 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     obsolete
-    DESCRIPTION
-           "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's ipForwardProto value.
-            If this metric is not used, its value should be set to
-            -1."
-    DEFVAL { -1 }
-    ::= { ipForwardEntry 13 }
-
-ipForwardMetric4 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     obsolete
-    DESCRIPTION
-           "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's ipForwardProto value.
-            If this metric is not used, its value should be set to
-            -1."
-    DEFVAL { -1 }
-    ::= { ipForwardEntry 14 }
-
-ipForwardMetric5 OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     obsolete
-    DESCRIPTION
-           "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the routing-
-            protocol specified in the route's ipForwardProto value.
-            If this metric is not used, its value should be set to
-            -1."
-    DEFVAL { -1 }
-    ::= { ipForwardEntry 15 }
-
--- Obsoleted Definitions - Groups
--- compliance statements
-
-ipForwardOldCompliance MODULE-COMPLIANCE
-    STATUS     obsolete
-    DESCRIPTION
-           "The compliance statement for SNMP entities that
-            implement the ipForward MIB."
-
-   MODULE  -- this module
-   MANDATORY-GROUPS { ipForwardMultiPathGroup }
-   ::= { ipForwardCompliances 2 }
-
-ipForwardMultiPathGroup OBJECT-GROUP
-    OBJECTS { ipForwardNumber,
-              ipForwardDest, ipForwardMask, ipForwardPolicy,
-              ipForwardNextHop, ipForwardIfIndex, ipForwardType,
-              ipForwardProto, ipForwardAge, ipForwardInfo,
-              ipForwardNextHopAS,
-              ipForwardMetric1, ipForwardMetric2, ipForwardMetric3,
-              ipForwardMetric4, ipForwardMetric5
-        }
-    STATUS     obsolete
-    DESCRIPTION
-           "IP Multipath Route Table."
-    ::= { ipForwardGroups 2 }
-
-END
diff --git a/mibs/IP-MIB.txt b/mibs/IP-MIB.txt
deleted file mode 100644
index fe2db5f..0000000
--- a/mibs/IP-MIB.txt
+++ /dev/null
@@ -1,4993 +0,0 @@
-IP-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE,
-    Integer32, Counter32, IpAddress,
-    mib-2, Unsigned32, Counter64,
-    zeroDotZero                        FROM SNMPv2-SMI
-    PhysAddress, TruthValue,
-    TimeStamp, RowPointer,
-    TEXTUAL-CONVENTION, TestAndIncr,
-    RowStatus, StorageType             FROM SNMPv2-TC
-    MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF
-    InetAddress, InetAddressType,
-    InetAddressPrefixLength,
-    InetVersion, InetZoneIndex         FROM INET-ADDRESS-MIB
-    InterfaceIndex                     FROM IF-MIB;
-
-ipMIB MODULE-IDENTITY
-    LAST-UPDATED "200602020000Z"
-    ORGANIZATION "IETF IPv6 MIB Revision Team"
-    CONTACT-INFO
-           "Editor:
-
-            Shawn A. Routhier
-            Interworking Labs
-            108 Whispering Pines Dr. Suite 235
-            Scotts Valley, CA 95066
-            USA
-            EMail: <sar at iwl.com>"
-    DESCRIPTION
-           "The MIB module for managing IP and ICMP implementations, but
-            excluding their management of IP routes.
-
-            Copyright (C) The Internet Society (2006).  This version of
-            this MIB module is part of RFC 4293; see the RFC itself for
-            full legal notices."
-
-    REVISION      "200602020000Z"
-    DESCRIPTION
-           "The IP version neutral revision with added IPv6 objects for
-            ND, default routers, and router advertisements.  As well as
-            being the successor to RFC 2011, this MIB is also the
-            successor to RFCs 2465 and 2466.  Published as RFC 4293."
-
-    REVISION      "199411010000Z"
-    DESCRIPTION
-           "A separate MIB module (IP-MIB) for IP and ICMP management
-            objects.  Published as RFC 2011."
-
-    REVISION      "199103310000Z"
-    DESCRIPTION
-           "The initial revision of this MIB module was part of MIB-II,
-            which was published as RFC 1213."
-    ::= { mib-2 48}
-
---
--- The textual conventions we define and use in this MIB.
---
-
-IpAddressOriginTC ::= TEXTUAL-CONVENTION
-    STATUS     current
-    DESCRIPTION
-           "The origin of the address.
-
-            manual(2) indicates that the address was manually configured
-            to a specified address, e.g., by user configuration.
-
-            dhcp(4) indicates an address that was assigned to this
-            system by a DHCP server.
-
-            linklayer(5) indicates an address created by IPv6 stateless
-
-            auto-configuration.
-
-            random(6) indicates an address chosen by the system at
-            random, e.g., an IPv4 address within 169.254/16, or an RFC
-            3041 privacy address."
-    SYNTAX     INTEGER {
-        other(1),
-        manual(2),
-        dhcp(4),
-        linklayer(5),
-        random(6)
-    }
-
-IpAddressStatusTC ::= TEXTUAL-CONVENTION
-    STATUS     current
-    DESCRIPTION
-           "The status of an address.  Most of the states correspond to
-            states from the IPv6 Stateless Address Autoconfiguration
-            protocol.
-
-            The preferred(1) state indicates that this is a valid
-            address that can appear as the destination or source address
-            of a packet.
-
-            The deprecated(2) state indicates that this is a valid but
-            deprecated address that should no longer be used as a source
-            address in new communications, but packets addressed to such
-            an address are processed as expected.
-
-            The invalid(3) state indicates that this isn't a valid
-            address and it shouldn't appear as the destination or source
-            address of a packet.
-
-            The inaccessible(4) state indicates that the address is not
-            accessible because the interface to which this address is
-            assigned is not operational.
-
-            The unknown(5) state indicates that the status cannot be
-            determined for some reason.
-
-            The tentative(6) state indicates that the uniqueness of the
-            address on the link is being verified.  Addresses in this
-            state should not be used for general communication and
-            should only be used to determine the uniqueness of the
-            address.
-
-            The duplicate(7) state indicates the address has been
-            determined to be non-unique on the link and so must not be
-
-            used.
-
-            The optimistic(8) state indicates the address is available
-            for use, subject to restrictions, while its uniqueness on
-            a link is being verified.
-
-            In the absence of other information, an IPv4 address is
-            always preferred(1)."
-    REFERENCE "RFC 2462"
-    SYNTAX     INTEGER {
-        preferred(1),
-        deprecated(2),
-        invalid(3),
-        inaccessible(4),
-        unknown(5),
-        tentative(6),
-        duplicate(7),
-        optimistic(8)
-    }
-
-IpAddressPrefixOriginTC ::= TEXTUAL-CONVENTION
-    STATUS     current
-    DESCRIPTION
-           "The origin of this prefix.
-
-            manual(2) indicates a prefix that was manually configured.
-
-            wellknown(3) indicates a well-known prefix, e.g., 169.254/16
-            for IPv4 auto-configuration or fe80::/10 for IPv6 link-local
-            addresses.  Well known prefixes may be assigned by IANA,
-            the address registries, or by specification in a standards
-            track RFC.
-
-            dhcp(4) indicates a prefix that was assigned by a DHCP
-            server.
-
-            routeradv(5) indicates a prefix learned from a router
-            advertisement.
-
-            Note: while IpAddressOriginTC and IpAddressPrefixOriginTC
-            are similar, they are not identical.  The first defines how
-            an address was created, while the second defines how a
-            prefix was found."
-    SYNTAX     INTEGER {
-        other(1),
-        manual(2),
-        wellknown(3),
-        dhcp(4),
-        routeradv(5)
-    }
-
-Ipv6AddressIfIdentifierTC ::= TEXTUAL-CONVENTION
-     DISPLAY-HINT "2x:"
-     STATUS       current
-     DESCRIPTION
-       "This data type is used to model IPv6 address
-       interface identifiers.  This is a binary string
-       of up to 8 octets in network byte-order."
-     SYNTAX      OCTET STRING (SIZE (0..8))
-
---
--- the IP general group
--- some objects that affect all of IPv4
---
-
-ip       OBJECT IDENTIFIER ::= { mib-2 4 }
-
-ipForwarding OBJECT-TYPE
-    SYNTAX     INTEGER {
-                    forwarding(1),    -- acting as a router
-                    notForwarding(2)  -- NOT acting as a router
-               }
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-           "The indication of whether this entity is acting as an IPv4
-            router in respect to the forwarding of datagrams received
-            by, but not addressed to, this entity.  IPv4 routers forward
-            datagrams.  IPv4 hosts do not (except those source-routed
-            via the host).
-
-            When this object is written, the entity should save the
-            change to non-volatile storage and restore the object from
-            non-volatile storage upon re-initialization of the system.
-            Note: a stronger requirement is not used because this object
-            was previously defined."
-    ::= { ip 1 }
-
-ipDefaultTTL OBJECT-TYPE
-    SYNTAX     Integer32 (1..255)
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-           "The default value inserted into the Time-To-Live field of
-            the IPv4 header of datagrams originated at this entity,
-            whenever a TTL value is not supplied by the transport layer
-
-            protocol.
-
-            When this object is written, the entity should save the
-            change to non-volatile storage and restore the object from
-            non-volatile storage upon re-initialization of the system.
-            Note: a stronger requirement is not used because this object
-            was previously defined."
-    ::= { ip 2 }
-
-ipReasmTimeout OBJECT-TYPE
-    SYNTAX     Integer32
-    UNITS      "seconds"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The maximum number of seconds that received fragments are
-            held while they are awaiting reassembly at this entity."
-    ::= { ip 13 }
-
---
--- the IPv6 general group
--- Some objects that affect all of IPv6
---
-
-ipv6IpForwarding OBJECT-TYPE
-    SYNTAX     INTEGER {
-                    forwarding(1),    -- acting as a router
-                    notForwarding(2)  -- NOT acting as a router
-               }
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-           "The indication of whether this entity is acting as an IPv6
-            router on any interface in respect to the forwarding of
-            datagrams received by, but not addressed to, this entity.
-            IPv6 routers forward datagrams.  IPv6 hosts do not (except
-            those source-routed via the host).
-
-            When this object is written, the entity SHOULD save the
-            change to non-volatile storage and restore the object from
-            non-volatile storage upon re-initialization of the system."
-    ::= { ip 25 }
-
-ipv6IpDefaultHopLimit OBJECT-TYPE
-    SYNTAX     Integer32 (0..255)
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-           "The default value inserted into the Hop Limit field of the
-            IPv6 header of datagrams originated at this entity whenever
-            a Hop Limit value is not supplied by the transport layer
-            protocol.
-
-            When this object is written, the entity SHOULD save the
-            change to non-volatile storage and restore the object from
-            non-volatile storage upon re-initialization of the system."
-    REFERENCE "RFC 2461 Section 6.3.2"
-    ::= { ip 26 }
-
---
--- IPv4 Interface Table
---
-
-ipv4InterfaceTableLastChange OBJECT-TYPE
-    SYNTAX     TimeStamp
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The value of sysUpTime on the most recent occasion at which
-            a row in the ipv4InterfaceTable was added or deleted, or
-            when an ipv4InterfaceReasmMaxSize or an
-            ipv4InterfaceEnableStatus object was modified.
-
-            If new objects are added to the ipv4InterfaceTable that
-            require the ipv4InterfaceTableLastChange to be updated when
-            they are modified, they must specify that requirement in
-            their description clause."
-    ::= { ip 27 }
-
-ipv4InterfaceTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF Ipv4InterfaceEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The table containing per-interface IPv4-specific
-            information."
-    ::= { ip 28 }
-
-ipv4InterfaceEntry OBJECT-TYPE
-    SYNTAX     Ipv4InterfaceEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "An entry containing IPv4-specific information for a specific
-            interface."
-    INDEX { ipv4InterfaceIfIndex }
-    ::= { ipv4InterfaceTable 1 }
-
-Ipv4InterfaceEntry ::= SEQUENCE {
-        ipv4InterfaceIfIndex         InterfaceIndex,
-        ipv4InterfaceReasmMaxSize    Integer32,
-        ipv4InterfaceEnableStatus    INTEGER,
-        ipv4InterfaceRetransmitTime  Unsigned32
-    }
-
-ipv4InterfaceIfIndex OBJECT-TYPE
-    SYNTAX     InterfaceIndex
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The index value that uniquely identifies the interface to
-            which this entry is applicable.  The interface identified by
-            a particular value of this index is the same interface as
-            identified by the same value of the IF-MIB's ifIndex."
-    ::= { ipv4InterfaceEntry 1 }
-
-ipv4InterfaceReasmMaxSize OBJECT-TYPE
-    SYNTAX     Integer32 (0..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The size of the largest IPv4 datagram that this entity can
-            re-assemble from incoming IPv4 fragmented datagrams received
-            on this interface."
-    ::= { ipv4InterfaceEntry 2 }
-
-ipv4InterfaceEnableStatus OBJECT-TYPE
-    SYNTAX     INTEGER {
-                 up(1),
-                 down(2)
-    }
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-           "The indication of whether IPv4 is enabled (up) or disabled
-            (down) on this interface.  This object does not affect the
-            state of the interface itself, only its connection to an
-            IPv4 stack.  The IF-MIB should be used to control the state
-            of the interface."
-    ::= { ipv4InterfaceEntry 3 }
-
-ipv4InterfaceRetransmitTime OBJECT-TYPE
-    SYNTAX     Unsigned32
-    UNITS      "milliseconds"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The time between retransmissions of ARP requests to a
-            neighbor when resolving the address or when probing the
-            reachability of a neighbor."
-    REFERENCE "RFC 1122"
-    DEFVAL { 1000 }
-    ::= { ipv4InterfaceEntry 4 }
-
---
--- v6 interface table
---
-
-ipv6InterfaceTableLastChange OBJECT-TYPE
-    SYNTAX     TimeStamp
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The value of sysUpTime on the most recent occasion at which
-            a row in the ipv6InterfaceTable was added or deleted or when
-            an ipv6InterfaceReasmMaxSize, ipv6InterfaceIdentifier,
-            ipv6InterfaceEnableStatus, ipv6InterfaceReachableTime,
-            ipv6InterfaceRetransmitTime, or ipv6InterfaceForwarding
-            object was modified.
-
-            If new objects are added to the ipv6InterfaceTable that
-            require the ipv6InterfaceTableLastChange to be updated when
-            they are modified, they must specify that requirement in
-            their description clause."
-    ::= { ip 29 }
-
-ipv6InterfaceTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF Ipv6InterfaceEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The table containing per-interface IPv6-specific
-            information."
-    ::= { ip 30 }
-
-ipv6InterfaceEntry OBJECT-TYPE
-    SYNTAX     Ipv6InterfaceEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "An entry containing IPv6-specific information for a given
-            interface."
-    INDEX { ipv6InterfaceIfIndex }
-    ::= { ipv6InterfaceTable 1 }
-
-Ipv6InterfaceEntry ::= SEQUENCE {
-        ipv6InterfaceIfIndex         InterfaceIndex,
-        ipv6InterfaceReasmMaxSize    Unsigned32,
-        ipv6InterfaceIdentifier      Ipv6AddressIfIdentifierTC,
-        ipv6InterfaceEnableStatus    INTEGER,
-        ipv6InterfaceReachableTime   Unsigned32,
-        ipv6InterfaceRetransmitTime  Unsigned32,
-        ipv6InterfaceForwarding      INTEGER
-    }
-
-ipv6InterfaceIfIndex OBJECT-TYPE
-    SYNTAX     InterfaceIndex
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The index value that uniquely identifies the interface to
-            which this entry is applicable.  The interface identified by
-            a particular value of this index is the same interface as
-            identified by the same value of the IF-MIB's ifIndex."
-    ::= { ipv6InterfaceEntry 1 }
-
-ipv6InterfaceReasmMaxSize OBJECT-TYPE
-    SYNTAX     Unsigned32 (1500..65535)
-    UNITS      "octets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The size of the largest IPv6 datagram that this entity can
-            re-assemble from incoming IPv6 fragmented datagrams received
-            on this interface."
-    ::= { ipv6InterfaceEntry 2 }
-
-ipv6InterfaceIdentifier OBJECT-TYPE
-    SYNTAX     Ipv6AddressIfIdentifierTC
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The Interface Identifier for this interface.  The Interface
-            Identifier is combined with an address prefix to form an
-            interface address.
-
-            By default, the Interface Identifier is auto-configured
-            according to the rules of the link type to which this
-            interface is attached.
-
-            A zero length identifier may be used where appropriate.  One
-            possible example is a loopback interface."
-    ::= { ipv6InterfaceEntry 3 }
-
--- This object ID is reserved as it was used in earlier versions of
--- the MIB module.  In theory, OIDs are not assigned until the
--- specification is released as an RFC; however, as some companies
--- may have shipped code based on earlier versions of the MIB, it
--- seems best to reserve this OID.  This OID had been
--- ipv6InterfacePhysicalAddress.
--- ::= { ipv6InterfaceEntry 4}
-
-ipv6InterfaceEnableStatus OBJECT-TYPE
-    SYNTAX     INTEGER {
-                 up(1),
-                 down(2)
-    }
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-           "The indication of whether IPv6 is enabled (up) or disabled
-            (down) on this interface.  This object does not affect the
-            state of the interface itself, only its connection to an
-            IPv6 stack.  The IF-MIB should be used to control the state
-            of the interface.
-
-            When this object is written, the entity SHOULD save the
-            change to non-volatile storage and restore the object from
-            non-volatile storage upon re-initialization of the system."
-    ::= { ipv6InterfaceEntry 5 }
-
-ipv6InterfaceReachableTime OBJECT-TYPE
-    SYNTAX     Unsigned32
-    UNITS      "milliseconds"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The time a neighbor is considered reachable after receiving
-            a reachability confirmation."
-    REFERENCE "RFC 2461, Section 6.3.2"
-    ::= { ipv6InterfaceEntry 6 }
-
-ipv6InterfaceRetransmitTime OBJECT-TYPE
-    SYNTAX     Unsigned32
-    UNITS      "milliseconds"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The time between retransmissions of Neighbor Solicitation
-            messages to a neighbor when resolving the address or when
-            probing the reachability of a neighbor."
-    REFERENCE "RFC 2461, Section 6.3.2"
-    ::= { ipv6InterfaceEntry 7 }
-
-ipv6InterfaceForwarding OBJECT-TYPE
-    SYNTAX     INTEGER {
-                    forwarding(1),    -- acting as a router
-                    notForwarding(2)  -- NOT acting as a router
-               }
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-           "The indication of whether this entity is acting as an IPv6
-            router on this interface with respect to the forwarding of
-            datagrams received by, but not addressed to, this entity.
-            IPv6 routers forward datagrams.  IPv6 hosts do not (except
-            those source-routed via the host).
-
-            This object is constrained by ipv6IpForwarding and is
-            ignored if ipv6IpForwarding is set to notForwarding.  Those
-            systems that do not provide per-interface control of the
-            forwarding function should set this object to forwarding for
-            all interfaces and allow the ipv6IpForwarding object to
-            control the forwarding capability.
-
-            When this object is written, the entity SHOULD save the
-            change to non-volatile storage and restore the object from
-            non-volatile storage upon re-initialization of the system."
-    ::= { ipv6InterfaceEntry 8 }
-
---
--- Per-Interface or System-Wide IP statistics.
---
--- The following two tables, ipSystemStatsTable and ipIfStatsTable,
--- are intended to provide the same counters at different granularities.
--- The ipSystemStatsTable provides system wide counters aggregating
--- the traffic counters for all interfaces for a given address type.
--- The ipIfStatsTable provides the same counters but for specific
--- interfaces rather than as an aggregate.
---
--- Note well: If a system provides both system-wide and interface-
--- specific values, the system-wide value may not be equal to the sum
--- of the interface-specific values across all interfaces due to e.g.,
--- dynamic interface creation/deletion.
---
--- Note well: Both of these tables contain some items that are
-
--- represented by two objects, representing the value in either 32
--- or 64 bits.  For those objects, the 32-bit value MUST be the low
--- order 32 bits of the 64-bit value.  Also note that the 32-bit
--- counters must be included when the 64-bit counters are included.
-
-ipTrafficStats OBJECT IDENTIFIER ::= { ip 31 }
-
-ipSystemStatsTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF IpSystemStatsEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The table containing system wide, IP version specific
-            traffic statistics.  This table and the ipIfStatsTable
-            contain similar objects whose difference is in their
-            granularity.  Where this table contains system wide traffic
-            statistics, the ipIfStatsTable contains the same statistics
-            but counted on a per-interface basis."
-    ::= { ipTrafficStats 1 }
-
-ipSystemStatsEntry OBJECT-TYPE
-    SYNTAX     IpSystemStatsEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "A statistics entry containing system-wide objects for a
-            particular IP version."
-    INDEX { ipSystemStatsIPVersion }
-    ::= { ipSystemStatsTable 1 }
-
-IpSystemStatsEntry ::= SEQUENCE {
-        ipSystemStatsIPVersion           InetVersion,
-        ipSystemStatsInReceives          Counter32,
-        ipSystemStatsHCInReceives        Counter64,
-        ipSystemStatsInOctets            Counter32,
-        ipSystemStatsHCInOctets          Counter64,
-        ipSystemStatsInHdrErrors         Counter32,
-        ipSystemStatsInNoRoutes          Counter32,
-        ipSystemStatsInAddrErrors        Counter32,
-        ipSystemStatsInUnknownProtos     Counter32,
-        ipSystemStatsInTruncatedPkts     Counter32,
-        ipSystemStatsInForwDatagrams     Counter32,
-        ipSystemStatsHCInForwDatagrams   Counter64,
-        ipSystemStatsReasmReqds          Counter32,
-        ipSystemStatsReasmOKs            Counter32,
-        ipSystemStatsReasmFails          Counter32,
-        ipSystemStatsInDiscards          Counter32,
-        ipSystemStatsInDelivers          Counter32,
-        ipSystemStatsHCInDelivers        Counter64,
-        ipSystemStatsOutRequests         Counter32,
-        ipSystemStatsHCOutRequests       Counter64,
-        ipSystemStatsOutNoRoutes         Counter32,
-        ipSystemStatsOutForwDatagrams    Counter32,
-        ipSystemStatsHCOutForwDatagrams  Counter64,
-        ipSystemStatsOutDiscards         Counter32,
-        ipSystemStatsOutFragReqds        Counter32,
-        ipSystemStatsOutFragOKs          Counter32,
-        ipSystemStatsOutFragFails        Counter32,
-        ipSystemStatsOutFragCreates      Counter32,
-        ipSystemStatsOutTransmits        Counter32,
-        ipSystemStatsHCOutTransmits      Counter64,
-        ipSystemStatsOutOctets           Counter32,
-        ipSystemStatsHCOutOctets         Counter64,
-        ipSystemStatsInMcastPkts         Counter32,
-        ipSystemStatsHCInMcastPkts       Counter64,
-        ipSystemStatsInMcastOctets       Counter32,
-        ipSystemStatsHCInMcastOctets     Counter64,
-        ipSystemStatsOutMcastPkts        Counter32,
-        ipSystemStatsHCOutMcastPkts      Counter64,
-        ipSystemStatsOutMcastOctets      Counter32,
-        ipSystemStatsHCOutMcastOctets    Counter64,
-        ipSystemStatsInBcastPkts         Counter32,
-        ipSystemStatsHCInBcastPkts       Counter64,
-        ipSystemStatsOutBcastPkts        Counter32,
-        ipSystemStatsHCOutBcastPkts      Counter64,
-        ipSystemStatsDiscontinuityTime   TimeStamp,
-        ipSystemStatsRefreshRate         Unsigned32
-    }
-
-ipSystemStatsIPVersion OBJECT-TYPE
-    SYNTAX     InetVersion
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The IP version of this row."
-    ::= { ipSystemStatsEntry 1 }
-
--- This object ID is reserved to allow the IDs for this table's objects
--- to align with the objects in the ipIfStatsTable.
--- ::= { ipSystemStatsEntry 2 }
-
-ipSystemStatsInReceives OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of input IP datagrams received, including
-            those received in error.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 3 }
-
-ipSystemStatsHCInReceives OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of input IP datagrams received, including
-            those received in error.  This object counts the same
-            datagrams as ipSystemStatsInReceives, but allows for larger
-            values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 4 }
-
-ipSystemStatsInOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets received in input IP datagrams,
-            including those received in error.  Octets from datagrams
-            counted in ipSystemStatsInReceives MUST be counted here.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 5 }
-
-ipSystemStatsHCInOctets OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets received in input IP datagrams,
-            including those received in error.  This object counts the
-            same octets as ipSystemStatsInOctets, but allows for larger
-
-            values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 6 }
-
-ipSystemStatsInHdrErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input IP datagrams discarded due to errors in
-            their IP headers, including version number mismatch, other
-            format errors, hop count exceeded, errors discovered in
-            processing their IP options, etc.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 7 }
-
-ipSystemStatsInNoRoutes OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input IP datagrams discarded because no route
-            could be found to transmit them to their destination.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 8 }
-
-ipSystemStatsInAddrErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input IP datagrams discarded because the IP
-            address in their IP header's destination field was not a
-            valid address to be received at this entity.  This count
-            includes invalid addresses (e.g., ::0).  For entities
-            that are not IP routers and therefore do not forward
-
-            datagrams, this counter includes datagrams discarded
-            because the destination address was not a local address.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 9 }
-
-ipSystemStatsInUnknownProtos OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of locally-addressed IP datagrams received
-            successfully but discarded because of an unknown or
-            unsupported protocol.
-
-            When tracking interface statistics, the counter of the
-            interface to which these datagrams were addressed is
-            incremented.  This interface might not be the same as the
-            input interface for some of the datagrams.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 10 }
-
-ipSystemStatsInTruncatedPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input IP datagrams discarded because the
-            datagram frame didn't carry enough data.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 11 }
-
-ipSystemStatsInForwDatagrams OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input datagrams for which this entity was not
-            their final IP destination and for which this entity
-            attempted to find a route to forward them to that final
-            destination.  In entities that do not act as IP routers,
-            this counter will include only those datagrams that were
-            Source-Routed via this entity, and the Source-Route
-            processing was successful.
-
-            When tracking interface statistics, the counter of the
-            incoming interface is incremented for each datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 12 }
-
-ipSystemStatsHCInForwDatagrams OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input datagrams for which this entity was not
-            their final IP destination and for which this entity
-            attempted to find a route to forward them to that final
-            destination.  This object counts the same packets as
-            ipSystemStatsInForwDatagrams, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 13 }
-
-ipSystemStatsReasmReqds OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP fragments received that needed to be
-            reassembled at this interface.
-
-            When tracking interface statistics, the counter of the
-            interface to which these fragments were addressed is
-            incremented.  This interface might not be the same as the
-            input interface for some of the fragments.
-
-            Discontinuities in the value of this counter can occur at
-
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 14 }
-
-ipSystemStatsReasmOKs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP datagrams successfully reassembled.
-
-            When tracking interface statistics, the counter of the
-            interface to which these datagrams were addressed is
-            incremented.  This interface might not be the same as the
-            input interface for some of the datagrams.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 15 }
-
-ipSystemStatsReasmFails OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of failures detected by the IP re-assembly
-            algorithm (for whatever reason: timed out, errors, etc.).
-            Note that this is not necessarily a count of discarded IP
-            fragments since some algorithms (notably the algorithm in
-            RFC 815) can lose track of the number of fragments by
-            combining them as they are received.
-
-            When tracking interface statistics, the counter of the
-            interface to which these fragments were addressed is
-            incremented.  This interface might not be the same as the
-            input interface for some of the fragments.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 16 }
-
-ipSystemStatsInDiscards OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input IP datagrams for which no problems were
-            encountered to prevent their continued processing, but
-            were discarded (e.g., for lack of buffer space).  Note that
-            this counter does not include any datagrams discarded while
-            awaiting re-assembly.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 17 }
-
-ipSystemStatsInDelivers OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of datagrams successfully delivered to IP
-            user-protocols (including ICMP).
-
-            When tracking interface statistics, the counter of the
-            interface to which these datagrams were addressed is
-            incremented.  This interface might not be the same as the
-            input interface for some of the datagrams.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 18 }
-
-ipSystemStatsHCInDelivers OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of datagrams successfully delivered to IP
-            user-protocols (including ICMP).  This object counts the
-            same packets as ipSystemStatsInDelivers, but allows for
-            larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 19 }
-
-ipSystemStatsOutRequests OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of IP datagrams that local IP user-
-            protocols (including ICMP) supplied to IP in requests for
-            transmission.  Note that this counter does not include any
-            datagrams counted in ipSystemStatsOutForwDatagrams.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 20 }
-
-ipSystemStatsHCOutRequests OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of IP datagrams that local IP user-
-            protocols (including ICMP) supplied to IP in requests for
-            transmission.  This object counts the same packets as
-            ipSystemStatsOutRequests, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 21 }
-
-ipSystemStatsOutNoRoutes OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of locally generated IP datagrams discarded
-            because no route could be found to transmit them to their
-            destination.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 22 }
-
-ipSystemStatsOutForwDatagrams OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of datagrams for which this entity was not their
-            final IP destination and for which it was successful in
-            finding a path to their final destination.  In entities
-            that do not act as IP routers, this counter will include
-            only those datagrams that were Source-Routed via this
-            entity, and the Source-Route processing was successful.
-
-            When tracking interface statistics, the counter of the
-            outgoing interface is incremented for a successfully
-            forwarded datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 23 }
-
-ipSystemStatsHCOutForwDatagrams OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of datagrams for which this entity was not their
-            final IP destination and for which it was successful in
-            finding a path to their final destination.  This object
-            counts the same packets as ipSystemStatsOutForwDatagrams,
-            but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 24 }
-
-ipSystemStatsOutDiscards OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of output IP datagrams for which no problem was
-            encountered to prevent their transmission to their
-            destination, but were discarded (e.g., for lack of
-            buffer space).  Note that this counter would include
-
-            datagrams counted in ipSystemStatsOutForwDatagrams if any
-            such datagrams met this (discretionary) discard criterion.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 25 }
-
-ipSystemStatsOutFragReqds OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP datagrams that would require fragmentation
-            in order to be transmitted.
-
-            When tracking interface statistics, the counter of the
-            outgoing interface is incremented for a successfully
-            fragmented datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 26 }
-
-ipSystemStatsOutFragOKs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP datagrams that have been successfully
-            fragmented.
-
-            When tracking interface statistics, the counter of the
-            outgoing interface is incremented for a successfully
-            fragmented datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 27 }
-
-ipSystemStatsOutFragFails OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP datagrams that have been discarded because
-            they needed to be fragmented but could not be.  This
-            includes IPv4 packets that have the DF bit set and IPv6
-            packets that are being forwarded and exceed the outgoing
-            link MTU.
-
-            When tracking interface statistics, the counter of the
-            outgoing interface is incremented for an unsuccessfully
-            fragmented datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 28 }
-
-ipSystemStatsOutFragCreates OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of output datagram fragments that have been
-            generated as a result of IP fragmentation.
-
-            When tracking interface statistics, the counter of the
-            outgoing interface is incremented for a successfully
-            fragmented datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 29 }
-
-ipSystemStatsOutTransmits OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of IP datagrams that this entity supplied
-            to the lower layers for transmission.  This includes
-            datagrams generated locally and those forwarded by this
-            entity.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 30 }
-
-ipSystemStatsHCOutTransmits OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of IP datagrams that this entity supplied
-            to the lower layers for transmission.  This object counts
-            the same datagrams as ipSystemStatsOutTransmits, but allows
-            for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 31 }
-
-ipSystemStatsOutOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets in IP datagrams delivered to the
-            lower layers for transmission.  Octets from datagrams
-            counted in ipSystemStatsOutTransmits MUST be counted here.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 32 }
-
-ipSystemStatsHCOutOctets OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets in IP datagrams delivered to the
-            lower layers for transmission.  This objects counts the same
-            octets as ipSystemStatsOutOctets, but allows for larger
-            values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 33 }
-
-ipSystemStatsInMcastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP multicast datagrams received.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 34 }
-
-ipSystemStatsHCInMcastPkts OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP multicast datagrams received.  This object
-            counts the same datagrams as ipSystemStatsInMcastPkts but
-            allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 35 }
-
-ipSystemStatsInMcastOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets received in IP multicast
-            datagrams.  Octets from datagrams counted in
-            ipSystemStatsInMcastPkts MUST be counted here.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 36 }
-
-ipSystemStatsHCInMcastOctets OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets received in IP multicast
-            datagrams.  This object counts the same octets as
-            ipSystemStatsInMcastOctets, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 37 }
-
-ipSystemStatsOutMcastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP multicast datagrams transmitted.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 38 }
-
-ipSystemStatsHCOutMcastPkts OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP multicast datagrams transmitted.  This
-            object counts the same datagrams as
-            ipSystemStatsOutMcastPkts, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 39 }
-
-ipSystemStatsOutMcastOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets transmitted in IP multicast
-            datagrams.  Octets from datagrams counted in
-
-            ipSystemStatsOutMcastPkts MUST be counted here.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 40 }
-
-ipSystemStatsHCOutMcastOctets OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets transmitted in IP multicast
-            datagrams.  This object counts the same octets as
-            ipSystemStatsOutMcastOctets, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 41 }
-
-ipSystemStatsInBcastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP broadcast datagrams received.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 42 }
-
-ipSystemStatsHCInBcastPkts OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP broadcast datagrams received.  This object
-            counts the same datagrams as ipSystemStatsInBcastPkts but
-            allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 43 }
-
-ipSystemStatsOutBcastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP broadcast datagrams transmitted.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 44 }
-
-ipSystemStatsHCOutBcastPkts OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP broadcast datagrams transmitted.  This
-            object counts the same datagrams as
-            ipSystemStatsOutBcastPkts, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipSystemStatsDiscontinuityTime."
-    ::= { ipSystemStatsEntry 45 }
-
-ipSystemStatsDiscontinuityTime OBJECT-TYPE
-    SYNTAX     TimeStamp
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The value of sysUpTime on the most recent occasion at which
-            any one or more of this entry's counters suffered a
-            discontinuity.
-
-            If no such discontinuities have occurred since the last re-
-            initialization of the local management subsystem, then this
-            object contains a zero value."
-    ::= { ipSystemStatsEntry 46 }
-
-ipSystemStatsRefreshRate OBJECT-TYPE
-    SYNTAX     Unsigned32
-    UNITS      "milli-seconds"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The minimum reasonable polling interval for this entry.
-            This object provides an indication of the minimum amount of
-            time required to update the counters in this entry."
-    ::= { ipSystemStatsEntry 47 }
-
-ipIfStatsTableLastChange OBJECT-TYPE
-    SYNTAX     TimeStamp
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The value of sysUpTime on the most recent occasion at which
-            a row in the ipIfStatsTable was added or deleted.
-
-            If new objects are added to the ipIfStatsTable that require
-            the ipIfStatsTableLastChange to be updated when they are
-            modified, they must specify that requirement in their
-            description clause."
-    ::= { ipTrafficStats 2 }
-
-ipIfStatsTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF IpIfStatsEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The table containing per-interface traffic statistics.  This
-            table and the ipSystemStatsTable contain similar objects
-            whose difference is in their granularity.  Where this table
-            contains per-interface statistics, the ipSystemStatsTable
-            contains the same statistics, but counted on a system wide
-            basis."
-    ::= { ipTrafficStats 3 }
-
-ipIfStatsEntry OBJECT-TYPE
-    SYNTAX     IpIfStatsEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "An interface statistics entry containing objects for a
-            particular interface and version of IP."
-    INDEX { ipIfStatsIPVersion, ipIfStatsIfIndex }
-    ::= { ipIfStatsTable 1 }
-
-IpIfStatsEntry ::= SEQUENCE {
-        ipIfStatsIPVersion           InetVersion,
-        ipIfStatsIfIndex             InterfaceIndex,
-        ipIfStatsInReceives          Counter32,
-        ipIfStatsHCInReceives        Counter64,
-        ipIfStatsInOctets            Counter32,
-        ipIfStatsHCInOctets          Counter64,
-        ipIfStatsInHdrErrors         Counter32,
-        ipIfStatsInNoRoutes          Counter32,
-        ipIfStatsInAddrErrors        Counter32,
-        ipIfStatsInUnknownProtos     Counter32,
-        ipIfStatsInTruncatedPkts     Counter32,
-        ipIfStatsInForwDatagrams     Counter32,
-        ipIfStatsHCInForwDatagrams   Counter64,
-        ipIfStatsReasmReqds          Counter32,
-        ipIfStatsReasmOKs            Counter32,
-        ipIfStatsReasmFails          Counter32,
-        ipIfStatsInDiscards          Counter32,
-        ipIfStatsInDelivers          Counter32,
-        ipIfStatsHCInDelivers        Counter64,
-        ipIfStatsOutRequests         Counter32,
-        ipIfStatsHCOutRequests       Counter64,
-        ipIfStatsOutForwDatagrams    Counter32,
-        ipIfStatsHCOutForwDatagrams  Counter64,
-        ipIfStatsOutDiscards         Counter32,
-        ipIfStatsOutFragReqds        Counter32,
-        ipIfStatsOutFragOKs          Counter32,
-        ipIfStatsOutFragFails        Counter32,
-        ipIfStatsOutFragCreates      Counter32,
-        ipIfStatsOutTransmits        Counter32,
-        ipIfStatsHCOutTransmits      Counter64,
-        ipIfStatsOutOctets           Counter32,
-        ipIfStatsHCOutOctets         Counter64,
-        ipIfStatsInMcastPkts         Counter32,
-        ipIfStatsHCInMcastPkts       Counter64,
-        ipIfStatsInMcastOctets       Counter32,
-        ipIfStatsHCInMcastOctets     Counter64,
-        ipIfStatsOutMcastPkts        Counter32,
-        ipIfStatsHCOutMcastPkts      Counter64,
-        ipIfStatsOutMcastOctets      Counter32,
-        ipIfStatsHCOutMcastOctets    Counter64,
-        ipIfStatsInBcastPkts         Counter32,
-        ipIfStatsHCInBcastPkts       Counter64,
-        ipIfStatsOutBcastPkts        Counter32,
-        ipIfStatsHCOutBcastPkts      Counter64,
-        ipIfStatsDiscontinuityTime   TimeStamp,
-        ipIfStatsRefreshRate         Unsigned32
-    }
-
-ipIfStatsIPVersion OBJECT-TYPE
-    SYNTAX     InetVersion
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The IP version of this row."
-    ::= { ipIfStatsEntry 1 }
-
-ipIfStatsIfIndex OBJECT-TYPE
-    SYNTAX     InterfaceIndex
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The index value that uniquely identifies the interface to
-            which this entry is applicable.  The interface identified by
-            a particular value of this index is the same interface as
-            identified by the same value of the IF-MIB's ifIndex."
-    ::= { ipIfStatsEntry 2 }
-
-ipIfStatsInReceives OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of input IP datagrams received, including
-            those received in error.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 3 }
-
-ipIfStatsHCInReceives OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of input IP datagrams received, including
-            those received in error.  This object counts the same
-            datagrams as ipIfStatsInReceives, but allows for larger
-            values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 4 }
-
-ipIfStatsInOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets received in input IP datagrams,
-            including those received in error.  Octets from datagrams
-            counted in ipIfStatsInReceives MUST be counted here.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 5 }
-
-ipIfStatsHCInOctets OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets received in input IP datagrams,
-            including those received in error.  This object counts the
-            same octets as ipIfStatsInOctets, but allows for larger
-            values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 6 }
-
-ipIfStatsInHdrErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input IP datagrams discarded due to errors in
-            their IP headers, including version number mismatch, other
-            format errors, hop count exceeded, errors discovered in
-            processing their IP options, etc.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 7 }
-
-ipIfStatsInNoRoutes OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input IP datagrams discarded because no route
-            could be found to transmit them to their destination.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 8 }
-
-ipIfStatsInAddrErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input IP datagrams discarded because the IP
-            address in their IP header's destination field was not a
-            valid address to be received at this entity.  This count
-            includes invalid addresses (e.g., ::0).  For entities that
-            are not IP routers and therefore do not forward datagrams,
-            this counter includes datagrams discarded because the
-            destination address was not a local address.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 9 }
-
-ipIfStatsInUnknownProtos OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of locally-addressed IP datagrams received
-            successfully but discarded because of an unknown or
-            unsupported protocol.
-
-            When tracking interface statistics, the counter of the
-            interface to which these datagrams were addressed is
-            incremented.  This interface might not be the same as the
-            input interface for some of the datagrams.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 10 }
-
-ipIfStatsInTruncatedPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input IP datagrams discarded because the
-            datagram frame didn't carry enough data.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 11 }
-
-ipIfStatsInForwDatagrams OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input datagrams for which this entity was not
-            their final IP destination and for which this entity
-            attempted to find a route to forward them to that final
-            destination.  In entities that do not act as IP routers,
-            this counter will include only those datagrams that were
-            Source-Routed via this entity, and the Source-Route
-            processing was successful.
-
-            When tracking interface statistics, the counter of the
-            incoming interface is incremented for each datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 12 }
-
-ipIfStatsHCInForwDatagrams OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input datagrams for which this entity was not
-            their final IP destination and for which this entity
-            attempted to find a route to forward them to that final
-            destination.  This object counts the same packets as
-
-            ipIfStatsInForwDatagrams, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 13 }
-
-ipIfStatsReasmReqds OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP fragments received that needed to be
-            reassembled at this interface.
-
-            When tracking interface statistics, the counter of the
-            interface to which these fragments were addressed is
-            incremented.  This interface might not be the same as the
-            input interface for some of the fragments.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 14 }
-
-ipIfStatsReasmOKs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP datagrams successfully reassembled.
-
-            When tracking interface statistics, the counter of the
-            interface to which these datagrams were addressed is
-            incremented.  This interface might not be the same as the
-            input interface for some of the datagrams.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 15 }
-
-ipIfStatsReasmFails OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of failures detected by the IP re-assembly
-            algorithm (for whatever reason: timed out, errors, etc.).
-            Note that this is not necessarily a count of discarded IP
-            fragments since some algorithms (notably the algorithm in
-            RFC 815) can lose track of the number of fragments by
-            combining them as they are received.
-
-            When tracking interface statistics, the counter of the
-            interface to which these fragments were addressed is
-            incremented.  This interface might not be the same as the
-            input interface for some of the fragments.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 16 }
-
-ipIfStatsInDiscards OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input IP datagrams for which no problems were
-            encountered to prevent their continued processing, but
-            were discarded (e.g., for lack of buffer space).  Note that
-            this counter does not include any datagrams discarded while
-            awaiting re-assembly.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 17 }
-
-ipIfStatsInDelivers OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of datagrams successfully delivered to IP
-            user-protocols (including ICMP).
-
-            When tracking interface statistics, the counter of the
-            interface to which these datagrams were addressed is
-            incremented.  This interface might not be the same as the
-
-            input interface for some of the datagrams.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 18 }
-
-ipIfStatsHCInDelivers OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of datagrams successfully delivered to IP
-            user-protocols (including ICMP).  This object counts the
-            same packets as ipIfStatsInDelivers, but allows for larger
-            values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 19 }
-
-ipIfStatsOutRequests OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of IP datagrams that local IP user-
-            protocols (including ICMP) supplied to IP in requests for
-            transmission.  Note that this counter does not include any
-            datagrams counted in ipIfStatsOutForwDatagrams.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 20 }
-
-ipIfStatsHCOutRequests OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of IP datagrams that local IP user-
-            protocols (including ICMP) supplied to IP in requests for
-            transmission.  This object counts the same packets as
-
-            ipIfStatsOutRequests, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 21 }
-
--- This object ID is reserved to allow the IDs for this table's objects
--- to align with the objects in the ipSystemStatsTable.
--- ::= {ipIfStatsEntry 22}
-
-ipIfStatsOutForwDatagrams OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of datagrams for which this entity was not their
-            final IP destination and for which it was successful in
-            finding a path to their final destination.  In entities
-            that do not act as IP routers, this counter will include
-            only those datagrams that were Source-Routed via this
-            entity, and the Source-Route processing was successful.
-
-            When tracking interface statistics, the counter of the
-            outgoing interface is incremented for a successfully
-            forwarded datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 23 }
-
-ipIfStatsHCOutForwDatagrams OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of datagrams for which this entity was not their
-            final IP destination and for which it was successful in
-            finding a path to their final destination.  This object
-            counts the same packets as ipIfStatsOutForwDatagrams, but
-            allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 24 }
-
-ipIfStatsOutDiscards OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of output IP datagrams for which no problem was
-            encountered to prevent their transmission to their
-            destination, but were discarded (e.g., for lack of
-            buffer space).  Note that this counter would include
-            datagrams counted in ipIfStatsOutForwDatagrams if any such
-            datagrams met this (discretionary) discard criterion.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 25 }
-
-ipIfStatsOutFragReqds OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP datagrams that would require fragmentation
-            in order to be transmitted.
-
-            When tracking interface statistics, the counter of the
-            outgoing interface is incremented for a successfully
-            fragmented datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 26 }
-
-ipIfStatsOutFragOKs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP datagrams that have been successfully
-            fragmented.
-
-            When tracking interface statistics, the counter of the
-
-            outgoing interface is incremented for a successfully
-            fragmented datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 27 }
-
-ipIfStatsOutFragFails OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP datagrams that have been discarded because
-            they needed to be fragmented but could not be.  This
-            includes IPv4 packets that have the DF bit set and IPv6
-            packets that are being forwarded and exceed the outgoing
-            link MTU.
-
-            When tracking interface statistics, the counter of the
-            outgoing interface is incremented for an unsuccessfully
-            fragmented datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 28 }
-
-ipIfStatsOutFragCreates OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of output datagram fragments that have been
-            generated as a result of IP fragmentation.
-
-            When tracking interface statistics, the counter of the
-            outgoing interface is incremented for a successfully
-            fragmented datagram.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 29 }
-
-ipIfStatsOutTransmits OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of IP datagrams that this entity supplied
-            to the lower layers for transmission.  This includes
-            datagrams generated locally and those forwarded by this
-            entity.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 30 }
-
-ipIfStatsHCOutTransmits OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of IP datagrams that this entity supplied
-            to the lower layers for transmission.  This object counts
-            the same datagrams as ipIfStatsOutTransmits, but allows for
-            larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 31 }
-
-ipIfStatsOutOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets in IP datagrams delivered to the
-            lower layers for transmission.  Octets from datagrams
-            counted in ipIfStatsOutTransmits MUST be counted here.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 32 }
-
-ipIfStatsHCOutOctets OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets in IP datagrams delivered to the
-            lower layers for transmission.  This objects counts the same
-            octets as ipIfStatsOutOctets, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 33 }
-
-ipIfStatsInMcastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP multicast datagrams received.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 34 }
-
-ipIfStatsHCInMcastPkts OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP multicast datagrams received.  This object
-            counts the same datagrams as ipIfStatsInMcastPkts, but
-            allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 35 }
-
-ipIfStatsInMcastOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets received in IP multicast
-
-            datagrams.  Octets from datagrams counted in
-            ipIfStatsInMcastPkts MUST be counted here.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 36 }
-
-ipIfStatsHCInMcastOctets OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets received in IP multicast
-            datagrams.  This object counts the same octets as
-            ipIfStatsInMcastOctets, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 37 }
-
-ipIfStatsOutMcastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP multicast datagrams transmitted.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 38 }
-
-ipIfStatsHCOutMcastPkts OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP multicast datagrams transmitted.  This
-            object counts the same datagrams as ipIfStatsOutMcastPkts,
-            but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 39 }
-
-ipIfStatsOutMcastOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets transmitted in IP multicast
-            datagrams.  Octets from datagrams counted in
-            ipIfStatsOutMcastPkts MUST be counted here.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 40 }
-
-ipIfStatsHCOutMcastOctets OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of octets transmitted in IP multicast
-            datagrams.  This object counts the same octets as
-            ipIfStatsOutMcastOctets, but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 41 }
-
-ipIfStatsInBcastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP broadcast datagrams received.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 42 }
-
-ipIfStatsHCInBcastPkts OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP broadcast datagrams received.  This object
-            counts the same datagrams as ipIfStatsInBcastPkts, but
-            allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 43 }
-
-ipIfStatsOutBcastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP broadcast datagrams transmitted.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 44 }
-
-ipIfStatsHCOutBcastPkts OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of IP broadcast datagrams transmitted.  This
-            object counts the same datagrams as ipIfStatsOutBcastPkts,
-            but allows for larger values.
-
-            Discontinuities in the value of this counter can occur at
-            re-initialization of the management system, and at other
-            times as indicated by the value of
-            ipIfStatsDiscontinuityTime."
-    ::= { ipIfStatsEntry 45 }
-
-ipIfStatsDiscontinuityTime OBJECT-TYPE
-    SYNTAX     TimeStamp
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The value of sysUpTime on the most recent occasion at which
-
-            any one or more of this entry's counters suffered a
-            discontinuity.
-
-            If no such discontinuities have occurred since the last re-
-            initialization of the local management subsystem, then this
-            object contains a zero value."
-    ::= { ipIfStatsEntry 46 }
-
-ipIfStatsRefreshRate OBJECT-TYPE
-    SYNTAX     Unsigned32
-    UNITS "milli-seconds"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The minimum reasonable polling interval for this entry.
-            This object provides an indication of the minimum amount of
-            time required to update the counters in this entry."
-    ::= { ipIfStatsEntry 47 }
-
---
--- Internet Address Prefix table
---
-
-ipAddressPrefixTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF IpAddressPrefixEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "This table allows the user to determine the source of an IP
-            address or set of IP addresses, and allows other tables to
-            share the information via pointer rather than by copying.
-
-            For example, when the node configures both a unicast and
-            anycast address for a prefix, the ipAddressPrefix objects
-            for those addresses will point to a single row in this
-            table.
-
-            This table primarily provides support for IPv6 prefixes, and
-            several of the objects are less meaningful for IPv4.  The
-            table continues to allow IPv4 addresses to allow future
-            flexibility.  In order to promote a common configuration,
-            this document includes suggestions for default values for
-            IPv4 prefixes.  Each of these values may be overridden if an
-            object is meaningful to the node.
-
-            All prefixes used by this entity should be included in this
-            table independent of how the entity learned the prefix.
-            (This table isn't limited to prefixes learned from router
-
-            advertisements.)"
-    ::= { ip 32 }
-
-ipAddressPrefixEntry OBJECT-TYPE
-    SYNTAX     IpAddressPrefixEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "An entry in the ipAddressPrefixTable."
-    INDEX    { ipAddressPrefixIfIndex, ipAddressPrefixType,
-               ipAddressPrefixPrefix, ipAddressPrefixLength }
-    ::= { ipAddressPrefixTable 1 }
-
-IpAddressPrefixEntry ::= SEQUENCE {
-        ipAddressPrefixIfIndex               InterfaceIndex,
-        ipAddressPrefixType                  InetAddressType,
-        ipAddressPrefixPrefix                InetAddress,
-        ipAddressPrefixLength                InetAddressPrefixLength,
-        ipAddressPrefixOrigin                IpAddressPrefixOriginTC,
-        ipAddressPrefixOnLinkFlag            TruthValue,
-        ipAddressPrefixAutonomousFlag        TruthValue,
-        ipAddressPrefixAdvPreferredLifetime  Unsigned32,
-        ipAddressPrefixAdvValidLifetime      Unsigned32
-    }
-
-ipAddressPrefixIfIndex OBJECT-TYPE
-    SYNTAX     InterfaceIndex
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The index value that uniquely identifies the interface on
-            which this prefix is configured.  The interface identified
-            by a particular value of this index is the same interface as
-            identified by the same value of the IF-MIB's ifIndex."
-    ::= { ipAddressPrefixEntry 1 }
-
-ipAddressPrefixType OBJECT-TYPE
-    SYNTAX     InetAddressType
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The address type of ipAddressPrefix."
-    ::= { ipAddressPrefixEntry 2 }
-
-ipAddressPrefixPrefix OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The address prefix.  The address type of this object is
-            specified in ipAddressPrefixType.  The length of this object
-            is the standard length for objects of that type (4 or 16
-            bytes).  Any bits after ipAddressPrefixLength must be zero.
-
-            Implementors need to be aware that, if the size of
-            ipAddressPrefixPrefix exceeds 114 octets, then OIDS of
-            instances of columns in this row will have more than 128
-            sub-identifiers and cannot be accessed using SNMPv1,
-            SNMPv2c, or SNMPv3."
-    ::= { ipAddressPrefixEntry 3 }
-
-ipAddressPrefixLength OBJECT-TYPE
-    SYNTAX     InetAddressPrefixLength
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The prefix length associated with this prefix.
-
-            The value 0 has no special meaning for this object.  It
-            simply refers to address '::/0'."
-    ::= { ipAddressPrefixEntry 4 }
-
-ipAddressPrefixOrigin OBJECT-TYPE
-    SYNTAX     IpAddressPrefixOriginTC
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The origin of this prefix."
-    ::= { ipAddressPrefixEntry 5 }
-
-ipAddressPrefixOnLinkFlag OBJECT-TYPE
-    SYNTAX     TruthValue
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "This object has the value 'true(1)', if this prefix can be
-            used for on-link determination; otherwise, the value is
-            'false(2)'.
-
-            The default for IPv4 prefixes is 'true(1)'."
-    REFERENCE "For IPv6 RFC 2461, especially sections 2 and 4.6.2 and
-               RFC 2462"
-    ::= { ipAddressPrefixEntry 6 }
-
-ipAddressPrefixAutonomousFlag OBJECT-TYPE
-    SYNTAX     TruthValue
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "Autonomous address configuration flag.  When true(1),
-            indicates that this prefix can be used for autonomous
-            address configuration (i.e., can be used to form a local
-            interface address).  If false(2), it is not used to auto-
-            configure a local interface address.
-
-            The default for IPv4 prefixes is 'false(2)'."
-    REFERENCE "For IPv6 RFC 2461, especially sections 2 and 4.6.2 and
-               RFC 2462"
-    ::= { ipAddressPrefixEntry 7 }
-
-ipAddressPrefixAdvPreferredLifetime OBJECT-TYPE
-    SYNTAX     Unsigned32
-    UNITS      "seconds"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The remaining length of time, in seconds, that this prefix
-            will continue to be preferred, i.e., time until deprecation.
-
-            A value of 4,294,967,295 represents infinity.
-
-            The address generated from a deprecated prefix should no
-            longer be used as a source address in new communications,
-            but packets received on such an interface are processed as
-            expected.
-
-            The default for IPv4 prefixes is 4,294,967,295 (infinity)."
-    REFERENCE "For IPv6 RFC 2461, especially sections 2 and 4.6.2 and
-               RFC 2462"
-    ::= { ipAddressPrefixEntry 8 }
-
-ipAddressPrefixAdvValidLifetime OBJECT-TYPE
-    SYNTAX     Unsigned32
-    UNITS       "seconds"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The remaining length of time, in seconds, that this prefix
-            will continue to be valid, i.e., time until invalidation.  A
-            value of 4,294,967,295 represents infinity.
-
-            The address generated from an invalidated prefix should not
-            appear as the destination or source address of a packet.
-
-            The default for IPv4 prefixes is 4,294,967,295 (infinity)."
-    REFERENCE "For IPv6 RFC 2461, especially sections 2 and 4.6.2 and
-               RFC 2462"
-    ::= { ipAddressPrefixEntry 9 }
-
---
--- Internet Address Table
---
-
-ipAddressSpinLock OBJECT-TYPE
-    SYNTAX     TestAndIncr
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-           "An advisory lock used to allow cooperating SNMP managers to
-            coordinate their use of the set operation in creating or
-            modifying rows within this table.
-
-            In order to use this lock to coordinate the use of set
-            operations, managers should first retrieve
-            ipAddressTableSpinLock.  They should then determine the
-            appropriate row to create or modify.  Finally, they should
-            issue the appropriate set command, including the retrieved
-            value of ipAddressSpinLock.  If another manager has altered
-            the table in the meantime, then the value of
-            ipAddressSpinLock will have changed, and the creation will
-            fail as it will be specifying an incorrect value for
-            ipAddressSpinLock.  It is suggested, but not required, that
-            the ipAddressSpinLock be the first var bind for each set of
-            objects representing a 'row' in a PDU."
-    ::= { ip 33 }
-
-ipAddressTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF IpAddressEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "This table contains addressing information relevant to the
-            entity's interfaces.
-
-            This table does not contain multicast address information.
-            Tables for such information should be contained in multicast
-            specific MIBs, such as RFC 3019.
-
-            While this table is writable, the user will note that
-            several objects, such as ipAddressOrigin, are not.  The
-            intention in allowing a user to write to this table is to
-            allow them to add or remove any entry that isn't
-
-            permanent.  The user should be allowed to modify objects
-            and entries when that would not cause inconsistencies
-            within the table.  Allowing write access to objects, such
-            as ipAddressOrigin, could allow a user to insert an entry
-            and then label it incorrectly.
-
-            Note well: When including IPv6 link-local addresses in this
-            table, the entry must use an InetAddressType of 'ipv6z' in
-            order to differentiate between the possible interfaces."
-    ::= { ip 34 }
-
-ipAddressEntry OBJECT-TYPE
-    SYNTAX     IpAddressEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "An address mapping for a particular interface."
-    INDEX { ipAddressAddrType, ipAddressAddr }
-    ::= { ipAddressTable 1 }
-
-IpAddressEntry ::= SEQUENCE {
-        ipAddressAddrType     InetAddressType,
-        ipAddressAddr         InetAddress,
-        ipAddressIfIndex      InterfaceIndex,
-        ipAddressType         INTEGER,
-        ipAddressPrefix       RowPointer,
-        ipAddressOrigin       IpAddressOriginTC,
-        ipAddressStatus       IpAddressStatusTC,
-        ipAddressCreated      TimeStamp,
-        ipAddressLastChanged  TimeStamp,
-        ipAddressRowStatus    RowStatus,
-        ipAddressStorageType  StorageType
-    }
-
-ipAddressAddrType OBJECT-TYPE
-    SYNTAX     InetAddressType
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The address type of ipAddressAddr."
-    ::= { ipAddressEntry 1 }
-
-ipAddressAddr OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The IP address to which this entry's addressing information
-
-            pertains.  The address type of this object is specified in
-            ipAddressAddrType.
-
-            Implementors need to be aware that if the size of
-            ipAddressAddr exceeds 116 octets, then OIDS of instances of
-            columns in this row will have more than 128 sub-identifiers
-            and cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3."
-    ::= { ipAddressEntry 2 }
-
-ipAddressIfIndex OBJECT-TYPE
-    SYNTAX     InterfaceIndex
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The index value that uniquely identifies the interface to
-            which this entry is applicable.  The interface identified by
-            a particular value of this index is the same interface as
-            identified by the same value of the IF-MIB's ifIndex."
-    ::= { ipAddressEntry 3 }
-
-ipAddressType OBJECT-TYPE
-    SYNTAX     INTEGER {
-                 unicast(1),
-                 anycast(2),
-                 broadcast(3)
-    }
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The type of address.  broadcast(3) is not a valid value for
-            IPv6 addresses (RFC 3513)."
-    DEFVAL { unicast }
-    ::= { ipAddressEntry 4 }
-
-ipAddressPrefix OBJECT-TYPE
-    SYNTAX     RowPointer
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "A pointer to the row in the prefix table to which this
-            address belongs.  May be { 0 0 } if there is no such row."
-    DEFVAL { zeroDotZero }
-    ::= { ipAddressEntry 5 }
-
-ipAddressOrigin OBJECT-TYPE
-    SYNTAX     IpAddressOriginTC
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The origin of the address."
-    ::= { ipAddressEntry 6 }
-
-ipAddressStatus OBJECT-TYPE
-    SYNTAX     IpAddressStatusTC
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The status of the address, describing if the address can be
-            used for communication.
-
-            In the absence of other information, an IPv4 address is
-            always preferred(1)."
-    DEFVAL { preferred }
-    ::= { ipAddressEntry 7 }
-
-ipAddressCreated OBJECT-TYPE
-    SYNTAX     TimeStamp
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The value of sysUpTime at the time this entry was created.
-            If this entry was created prior to the last re-
-            initialization of the local network management subsystem,
-            then this object contains a zero value."
-    ::= { ipAddressEntry 8 }
-
-ipAddressLastChanged OBJECT-TYPE
-    SYNTAX     TimeStamp
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The value of sysUpTime at the time this entry was last
-            updated.  If this entry was updated prior to the last re-
-            initialization of the local network management subsystem,
-            then this object contains a zero value."
-    ::= { ipAddressEntry 9 }
-
-ipAddressRowStatus OBJECT-TYPE
-    SYNTAX     RowStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The status of this conceptual row.
-
-            The RowStatus TC requires that this DESCRIPTION clause
-            states under which circumstances other objects in this row
-
-            can be modified.  The value of this object has no effect on
-            whether other objects in this conceptual row can be
-            modified.
-
-            A conceptual row can not be made active until the
-            ipAddressIfIndex has been set to a valid index."
-    ::= { ipAddressEntry 10 }
-
-ipAddressStorageType OBJECT-TYPE
-    SYNTAX     StorageType
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The storage type for this conceptual row.  If this object
-            has a value of 'permanent', then no other objects are
-            required to be able to be modified."
-    DEFVAL { volatile }
-    ::= { ipAddressEntry 11 }
-
---
--- the Internet Address Translation table
---
-
-ipNetToPhysicalTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF IpNetToPhysicalEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The IP Address Translation table used for mapping from IP
-            addresses to physical addresses.
-
-            The Address Translation tables contain the IP address to
-            'physical' address equivalences.  Some interfaces do not use
-            translation tables for determining address equivalences
-            (e.g., DDN-X.25 has an algorithmic method); if all
-            interfaces are of this type, then the Address Translation
-            table is empty, i.e., has zero entries.
-
-            While many protocols may be used to populate this table, ARP
-            and Neighbor Discovery are the most likely
-            options."
-    REFERENCE "RFC 826 and RFC 2461"
-    ::= { ip 35 }
-
-ipNetToPhysicalEntry OBJECT-TYPE
-    SYNTAX     IpNetToPhysicalEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "Each entry contains one IP address to `physical' address
-            equivalence."
-    INDEX       { ipNetToPhysicalIfIndex,
-                  ipNetToPhysicalNetAddressType,
-                  ipNetToPhysicalNetAddress }
-    ::= { ipNetToPhysicalTable 1 }
-
-IpNetToPhysicalEntry ::= SEQUENCE {
-        ipNetToPhysicalIfIndex         InterfaceIndex,
-        ipNetToPhysicalNetAddressType  InetAddressType,
-        ipNetToPhysicalNetAddress      InetAddress,
-        ipNetToPhysicalPhysAddress     PhysAddress,
-        ipNetToPhysicalLastUpdated     TimeStamp,
-        ipNetToPhysicalType            INTEGER,
-        ipNetToPhysicalState           INTEGER,
-        ipNetToPhysicalRowStatus       RowStatus
-    }
-
-ipNetToPhysicalIfIndex OBJECT-TYPE
-    SYNTAX     InterfaceIndex
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The index value that uniquely identifies the interface to
-            which this entry is applicable.  The interface identified by
-            a particular value of this index is the same interface as
-            identified by the same value of the IF-MIB's ifIndex."
-    ::= { ipNetToPhysicalEntry 1 }
-
-ipNetToPhysicalNetAddressType OBJECT-TYPE
-    SYNTAX     InetAddressType
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The type of ipNetToPhysicalNetAddress."
-    ::= { ipNetToPhysicalEntry 2 }
-
-ipNetToPhysicalNetAddress OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The IP Address corresponding to the media-dependent
-            `physical' address.  The address type of this object is
-            specified in ipNetToPhysicalAddressType.
-
-            Implementors need to be aware that if the size of
-
-            ipNetToPhysicalNetAddress exceeds 115 octets, then OIDS of
-            instances of columns in this row will have more than 128
-            sub-identifiers and cannot be accessed using SNMPv1,
-            SNMPv2c, or SNMPv3."
-    ::= { ipNetToPhysicalEntry 3 }
-
-ipNetToPhysicalPhysAddress OBJECT-TYPE
-    SYNTAX     PhysAddress (SIZE(0..65535))
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The media-dependent `physical' address.
-
-            As the entries in this table are typically not persistent
-            when this object is written the entity SHOULD NOT save the
-            change to non-volatile storage."
-    ::= { ipNetToPhysicalEntry 4 }
-
-ipNetToPhysicalLastUpdated OBJECT-TYPE
-    SYNTAX     TimeStamp
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The value of sysUpTime at the time this entry was last
-            updated.  If this entry was updated prior to the last re-
-            initialization of the local network management subsystem,
-            then this object contains a zero value."
-    ::= { ipNetToPhysicalEntry 5 }
-
-ipNetToPhysicalType OBJECT-TYPE
-    SYNTAX     INTEGER {
-                other(1),        -- none of the following
-                invalid(2),      -- an invalidated mapping
-                dynamic(3),
-                static(4),
-                local(5)         -- local interface
-            }
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The type of mapping.
-
-            Setting this object to the value invalid(2) has the effect
-            of invalidating the corresponding entry in the
-            ipNetToPhysicalTable.  That is, it effectively dis-
-            associates the interface identified with said entry from the
-            mapping identified with said entry.  It is an
-            implementation-specific matter as to whether the agent
-
-            removes an invalidated entry from the table.  Accordingly,
-            management stations must be prepared to receive tabular
-            information from agents that corresponds to entries not
-            currently in use.  Proper interpretation of such entries
-            requires examination of the relevant ipNetToPhysicalType
-            object.
-
-            The 'dynamic(3)' type indicates that the IP address to
-            physical addresses mapping has been dynamically resolved
-            using e.g., IPv4 ARP or the IPv6 Neighbor Discovery
-            protocol.
-
-            The 'static(4)' type indicates that the mapping has been
-            statically configured.  Both of these refer to entries that
-            provide mappings for other entities addresses.
-
-            The 'local(5)' type indicates that the mapping is provided
-            for an entity's own interface address.
-
-            As the entries in this table are typically not persistent
-            when this object is written the entity SHOULD NOT save the
-            change to non-volatile storage."
-    DEFVAL { static }
-    ::= { ipNetToPhysicalEntry 6 }
-
-ipNetToPhysicalState OBJECT-TYPE
-    SYNTAX     INTEGER {
-                     reachable(1), -- confirmed reachability
-
-                     stale(2),     -- unconfirmed reachability
-
-                     delay(3),     -- waiting for reachability
-                                   -- confirmation before entering
-                                   -- the probe state
-
-                     probe(4),     -- actively probing
-
-                     invalid(5),   -- an invalidated mapping
-
-                     unknown(6),   -- state can not be determined
-                                   -- for some reason.
-
-                     incomplete(7) -- address resolution is being
-                                   -- performed.
-                    }
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The Neighbor Unreachability Detection state for the
-            interface when the address mapping in this entry is used.
-            If Neighbor Unreachability Detection is not in use (e.g. for
-            IPv4), this object is always unknown(6)."
-    REFERENCE "RFC 2461"
-    ::= { ipNetToPhysicalEntry 7 }
-
-ipNetToPhysicalRowStatus OBJECT-TYPE
-    SYNTAX     RowStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The status of this conceptual row.
-
-            The RowStatus TC requires that this DESCRIPTION clause
-            states under which circumstances other objects in this row
-            can be modified.  The value of this object has no effect on
-            whether other objects in this conceptual row can be
-            modified.
-
-            A conceptual row can not be made active until the
-            ipNetToPhysicalPhysAddress object has been set.
-
-            Note that if the ipNetToPhysicalType is set to 'invalid',
-            the managed node may delete the entry independent of the
-            state of this object."
-    ::= { ipNetToPhysicalEntry 8 }
-
---
--- The IPv6 Scope Zone Index Table.
---
-
-ipv6ScopeZoneIndexTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF Ipv6ScopeZoneIndexEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The table used to describe IPv6 unicast and multicast scope
-            zones.
-
-            For those objects that have names rather than numbers, the
-            names were chosen to coincide with the names used in the
-            IPv6 address architecture document. "
-    REFERENCE "Section 2.7 of RFC 4291"
-    ::= { ip 36 }
-
-ipv6ScopeZoneIndexEntry OBJECT-TYPE
-    SYNTAX     Ipv6ScopeZoneIndexEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "Each entry contains the list of scope identifiers on a given
-            interface."
-    INDEX { ipv6ScopeZoneIndexIfIndex }
-    ::= { ipv6ScopeZoneIndexTable 1 }
-
-Ipv6ScopeZoneIndexEntry ::= SEQUENCE {
-        ipv6ScopeZoneIndexIfIndex            InterfaceIndex,
-        ipv6ScopeZoneIndexLinkLocal          InetZoneIndex,
-        ipv6ScopeZoneIndex3                  InetZoneIndex,
-        ipv6ScopeZoneIndexAdminLocal         InetZoneIndex,
-        ipv6ScopeZoneIndexSiteLocal          InetZoneIndex,
-        ipv6ScopeZoneIndex6                  InetZoneIndex,
-        ipv6ScopeZoneIndex7                  InetZoneIndex,
-        ipv6ScopeZoneIndexOrganizationLocal  InetZoneIndex,
-        ipv6ScopeZoneIndex9                  InetZoneIndex,
-        ipv6ScopeZoneIndexA                  InetZoneIndex,
-        ipv6ScopeZoneIndexB                  InetZoneIndex,
-        ipv6ScopeZoneIndexC                  InetZoneIndex,
-        ipv6ScopeZoneIndexD                  InetZoneIndex
-    }
-
-ipv6ScopeZoneIndexIfIndex OBJECT-TYPE
-    SYNTAX     InterfaceIndex
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The index value that uniquely identifies the interface to
-            which these scopes belong.  The interface identified by a
-            particular value of this index is the same interface as
-            identified by the same value of the IF-MIB's ifIndex."
-    ::= { ipv6ScopeZoneIndexEntry 1 }
-
-ipv6ScopeZoneIndexLinkLocal OBJECT-TYPE
-    SYNTAX     InetZoneIndex
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The zone index for the link-local scope on this interface."
-    ::= { ipv6ScopeZoneIndexEntry 2 }
-
-ipv6ScopeZoneIndex3 OBJECT-TYPE
-    SYNTAX     InetZoneIndex
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The zone index for scope 3 on this interface."
-    ::= { ipv6ScopeZoneIndexEntry 3 }
-
-ipv6ScopeZoneIndexAdminLocal OBJECT-TYPE
-    SYNTAX     InetZoneIndex
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The zone index for the admin-local scope on this interface."
-    ::= { ipv6ScopeZoneIndexEntry 4 }
-
-ipv6ScopeZoneIndexSiteLocal OBJECT-TYPE
-    SYNTAX     InetZoneIndex
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The zone index for the site-local scope on this interface."
-    ::= { ipv6ScopeZoneIndexEntry 5 }
-
-ipv6ScopeZoneIndex6 OBJECT-TYPE
-    SYNTAX     InetZoneIndex
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The zone index for scope 6 on this interface."
-    ::= { ipv6ScopeZoneIndexEntry 6 }
-
-ipv6ScopeZoneIndex7 OBJECT-TYPE
-    SYNTAX     InetZoneIndex
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The zone index for scope 7 on this interface."
-    ::= { ipv6ScopeZoneIndexEntry 7 }
-
-ipv6ScopeZoneIndexOrganizationLocal OBJECT-TYPE
-    SYNTAX     InetZoneIndex
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The zone index for the organization-local scope on this
-            interface."
-    ::= { ipv6ScopeZoneIndexEntry 8 }
-
-ipv6ScopeZoneIndex9 OBJECT-TYPE
-    SYNTAX     InetZoneIndex
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The zone index for scope 9 on this interface."
-    ::= { ipv6ScopeZoneIndexEntry 9 }
-
-ipv6ScopeZoneIndexA OBJECT-TYPE
-    SYNTAX     InetZoneIndex
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The zone index for scope A on this interface."
-    ::= { ipv6ScopeZoneIndexEntry 10 }
-
-ipv6ScopeZoneIndexB OBJECT-TYPE
-    SYNTAX     InetZoneIndex
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The zone index for scope B on this interface."
-    ::= { ipv6ScopeZoneIndexEntry 11 }
-
-ipv6ScopeZoneIndexC OBJECT-TYPE
-    SYNTAX     InetZoneIndex
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The zone index for scope C on this interface."
-    ::= { ipv6ScopeZoneIndexEntry 12 }
-
-ipv6ScopeZoneIndexD OBJECT-TYPE
-    SYNTAX     InetZoneIndex
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The zone index for scope D on this interface."
-    ::= { ipv6ScopeZoneIndexEntry 13 }
-
---
--- The Default Router Table
--- This table simply lists the default routers; for more information
--- about routing tables, see the routing MIBs
---
-
-ipDefaultRouterTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF IpDefaultRouterEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The table used to describe the default routers known to this
-
-            entity."
-    ::= { ip 37 }
-
-ipDefaultRouterEntry OBJECT-TYPE
-    SYNTAX     IpDefaultRouterEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "Each entry contains information about a default router known
-            to this entity."
-    INDEX {ipDefaultRouterAddressType, ipDefaultRouterAddress,
-           ipDefaultRouterIfIndex}
-    ::= { ipDefaultRouterTable 1 }
-
-IpDefaultRouterEntry ::= SEQUENCE {
-        ipDefaultRouterAddressType  InetAddressType,
-        ipDefaultRouterAddress      InetAddress,
-        ipDefaultRouterIfIndex      InterfaceIndex,
-        ipDefaultRouterLifetime     Unsigned32,
-        ipDefaultRouterPreference   INTEGER
-    }
-
-ipDefaultRouterAddressType OBJECT-TYPE
-    SYNTAX     InetAddressType
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The address type for this row."
-    ::= { ipDefaultRouterEntry 1 }
-
-ipDefaultRouterAddress OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The IP address of the default router represented by this
-            row.  The address type of this object is specified in
-            ipDefaultRouterAddressType.
-
-            Implementers need to be aware that if the size of
-            ipDefaultRouterAddress exceeds 115 octets, then OIDS of
-            instances of columns in this row will have more than 128
-            sub-identifiers and cannot be accessed using SNMPv1,
-            SNMPv2c, or SNMPv3."
-    ::= { ipDefaultRouterEntry 2 }
-
-ipDefaultRouterIfIndex OBJECT-TYPE
-    SYNTAX     InterfaceIndex
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The index value that uniquely identifies the interface by
-            which the router can be reached.  The interface identified
-            by a particular value of this index is the same interface as
-            identified by the same value of the IF-MIB's ifIndex."
-    ::= { ipDefaultRouterEntry 3 }
-
-ipDefaultRouterLifetime OBJECT-TYPE
-    SYNTAX     Unsigned32 (0..65535)
-    UNITS      "seconds"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The remaining length of time, in seconds, that this router
-            will continue to be useful as a default router.  A value of
-            zero indicates that it is no longer useful as a default
-            router.  It is left to the implementer of the MIB as to
-            whether a router with a lifetime of zero is removed from the
-            list.
-
-            For IPv6, this value should be extracted from the router
-            advertisement messages."
-    REFERENCE "For IPv6 RFC 2462 sections 4.2 and 6.3.4"
-    ::= { ipDefaultRouterEntry 4 }
-
-ipDefaultRouterPreference OBJECT-TYPE
-    SYNTAX     INTEGER {
-                     reserved (-2),
-                     low (-1),
-                     medium (0),
-                     high (1)
-                    }
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "An indication of preference given to this router as a
-            default router as described in he Default Router
-            Preferences document.  Treating the value as a
-            2 bit signed integer allows for simple arithmetic
-            comparisons.
-
-            For IPv4 routers or IPv6 routers that are not using the
-            updated router advertisement format, this object is set to
-            medium (0)."
-    REFERENCE "RFC 4291, section 2.1"
-    ::= { ipDefaultRouterEntry 5 }
-
---
--- Configuration information for constructing router advertisements
---
-
-ipv6RouterAdvertSpinLock OBJECT-TYPE
-    SYNTAX     TestAndIncr
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-           "An advisory lock used to allow cooperating SNMP managers to
-            coordinate their use of the set operation in creating or
-            modifying rows within this table.
-
-            In order to use this lock to coordinate the use of set
-            operations, managers should first retrieve
-            ipv6RouterAdvertSpinLock.  They should then determine the
-            appropriate row to create or modify.  Finally, they should
-            issue the appropriate set command including the retrieved
-            value of ipv6RouterAdvertSpinLock.  If another manager has
-            altered the table in the meantime, then the value of
-            ipv6RouterAdvertSpinLock will have changed and the creation
-            will fail as it will be specifying an incorrect value for
-            ipv6RouterAdvertSpinLock.  It is suggested, but not
-            required, that the ipv6RouterAdvertSpinLock be the first var
-            bind for each set of objects representing a 'row' in a PDU."
-    ::= { ip 38 }
-
-ipv6RouterAdvertTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF Ipv6RouterAdvertEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The table containing information used to construct router
-            advertisements."
-    ::= { ip 39 }
-
-ipv6RouterAdvertEntry OBJECT-TYPE
-    SYNTAX     Ipv6RouterAdvertEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "An entry containing information used to construct router
-            advertisements.
-
-            Information in this table is persistent, and when this
-            object is written, the entity SHOULD save the change to
-            non-volatile storage."
-    INDEX { ipv6RouterAdvertIfIndex }
-    ::= { ipv6RouterAdvertTable 1 }
-
-Ipv6RouterAdvertEntry ::= SEQUENCE {
-        ipv6RouterAdvertIfIndex          InterfaceIndex,
-        ipv6RouterAdvertSendAdverts      TruthValue,
-        ipv6RouterAdvertMaxInterval      Unsigned32,
-        ipv6RouterAdvertMinInterval      Unsigned32,
-        ipv6RouterAdvertManagedFlag      TruthValue,
-        ipv6RouterAdvertOtherConfigFlag  TruthValue,
-        ipv6RouterAdvertLinkMTU          Unsigned32,
-        ipv6RouterAdvertReachableTime    Unsigned32,
-        ipv6RouterAdvertRetransmitTime   Unsigned32,
-        ipv6RouterAdvertCurHopLimit      Unsigned32,
-        ipv6RouterAdvertDefaultLifetime  Unsigned32,
-        ipv6RouterAdvertRowStatus        RowStatus
-    }
-
-ipv6RouterAdvertIfIndex OBJECT-TYPE
-    SYNTAX     InterfaceIndex
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The index value that uniquely identifies the interface on
-            which router advertisements constructed with this
-            information will be transmitted.  The interface identified
-            by a particular value of this index is the same interface as
-            identified by the same value of the IF-MIB's ifIndex."
-    ::= { ipv6RouterAdvertEntry 1 }
-
-ipv6RouterAdvertSendAdverts OBJECT-TYPE
-    SYNTAX     TruthValue
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "A flag indicating whether the router sends periodic
-            router advertisements and responds to router solicitations
-            on this interface."
-    REFERENCE "RFC 2461 Section 6.2.1"
-    DEFVAL { false }
-    ::= { ipv6RouterAdvertEntry 2 }
-
-ipv6RouterAdvertMaxInterval OBJECT-TYPE
-    SYNTAX     Unsigned32 (4..1800)
-    UNITS      "seconds"
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The maximum time allowed between sending unsolicited router
-
-            advertisements from this interface."
-    REFERENCE "RFC 2461 Section 6.2.1"
-    DEFVAL { 600 }
-    ::= { ipv6RouterAdvertEntry 3 }
-
-ipv6RouterAdvertMinInterval OBJECT-TYPE
-    SYNTAX     Unsigned32 (3..1350)
-    UNITS      "seconds"
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The minimum time allowed between sending unsolicited router
-            advertisements from this interface.
-
-            The default is 0.33 * ipv6RouterAdvertMaxInterval, however,
-            in the case of a low value for ipv6RouterAdvertMaxInterval,
-            the minimum value for this object is restricted to 3."
-    REFERENCE "RFC 2461 Section 6.2.1"
-    ::= { ipv6RouterAdvertEntry 4 }
-
-ipv6RouterAdvertManagedFlag OBJECT-TYPE
-    SYNTAX     TruthValue
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The true/false value to be placed into the 'managed address
-            configuration' flag field in router advertisements sent from
-            this interface."
-    REFERENCE "RFC 2461 Section 6.2.1"
-    DEFVAL { false }
-    ::= { ipv6RouterAdvertEntry 5 }
-
-ipv6RouterAdvertOtherConfigFlag OBJECT-TYPE
-    SYNTAX     TruthValue
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The true/false value to be placed into the 'other stateful
-            configuration' flag field in router advertisements sent from
-            this interface."
-    REFERENCE "RFC 2461 Section 6.2.1"
-    DEFVAL { false }
-    ::= { ipv6RouterAdvertEntry 6 }
-
-ipv6RouterAdvertLinkMTU OBJECT-TYPE
-    SYNTAX     Unsigned32
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The value to be placed in MTU options sent by the router on
-            this interface.
-
-            A value of zero indicates that no MTU options are sent."
-    REFERENCE "RFC 2461 Section 6.2.1"
-    DEFVAL { 0 }
-    ::= { ipv6RouterAdvertEntry 7 }
-
-ipv6RouterAdvertReachableTime OBJECT-TYPE
-    SYNTAX     Unsigned32 (0..3600000)
-    UNITS      "milliseconds"
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The value to be placed in the reachable time field in router
-            advertisement messages sent from this interface.
-
-            A value of zero in the router advertisement indicates that
-            the advertisement isn't specifying a value for reachable
-            time."
-    REFERENCE "RFC 2461 Section 6.2.1"
-    DEFVAL { 0 }
-    ::= { ipv6RouterAdvertEntry 8 }
-
-ipv6RouterAdvertRetransmitTime OBJECT-TYPE
-    SYNTAX     Unsigned32
-    UNITS      "milliseconds"
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The value to be placed in the retransmit timer field in
-            router advertisements sent from this interface.
-
-            A value of zero in the router advertisement indicates that
-            the advertisement isn't specifying a value for retrans
-            time."
-    REFERENCE "RFC 2461 Section 6.2.1"
-    DEFVAL { 0 }
-    ::= { ipv6RouterAdvertEntry 9 }
-
-ipv6RouterAdvertCurHopLimit OBJECT-TYPE
-    SYNTAX     Unsigned32 (0..255)
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The default value to be placed in the current hop limit
-            field in router advertisements sent from this interface.
-
-            The value should be set to the current diameter of the
-            Internet.
-
-            A value of zero in the router advertisement indicates that
-            the advertisement isn't specifying a value for curHopLimit.
-
-            The default should be set to the value specified in the IANA
-            web pages (www.iana.org) at the time of implementation."
-    REFERENCE "RFC 2461 Section 6.2.1"
-    ::= { ipv6RouterAdvertEntry 10 }
-
-ipv6RouterAdvertDefaultLifetime OBJECT-TYPE
-    SYNTAX     Unsigned32 (0|4..9000)
-    UNITS      "seconds"
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The value to be placed in the router lifetime field of
-            router advertisements sent from this interface.  This value
-            MUST be either 0 or between ipv6RouterAdvertMaxInterval and
-            9000 seconds.
-
-            A value of zero indicates that the router is not to be used
-            as a default router.
-
-            The default is 3 * ipv6RouterAdvertMaxInterval."
-    REFERENCE "RFC 2461 Section 6.2.1"
-    ::= { ipv6RouterAdvertEntry 11 }
-
-ipv6RouterAdvertRowStatus OBJECT-TYPE
-    SYNTAX     RowStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-           "The status of this conceptual row.
-
-            As all objects in this conceptual row have default values, a
-            row can be created and made active by setting this object
-            appropriately.
-
-            The RowStatus TC requires that this DESCRIPTION clause
-            states under which circumstances other objects in this row
-            can be modified.  The value of this object has no effect on
-            whether other objects in this conceptual row can be
-            modified."
-    ::= { ipv6RouterAdvertEntry 12 }
-
---
-
--- ICMP section
---
-
-icmp     OBJECT IDENTIFIER ::= { mib-2 5 }
-
---
--- ICMP non-message-specific counters
---
-
--- These object IDs are reserved, as they were used in earlier
--- versions of the MIB module.  In theory, OIDs are not assigned
--- until the specification is released as an RFC; however, as some
--- companies may have shipped code based on earlier versions of
--- the MIB, it seems best to reserve these OIDs.
--- ::= { icmp 27 }
--- ::= { icmp 28 }
-
-icmpStatsTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF IcmpStatsEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The table of generic system-wide ICMP counters."
-    ::= { icmp 29 }
-
-icmpStatsEntry OBJECT-TYPE
-    SYNTAX     IcmpStatsEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "A conceptual row in the icmpStatsTable."
-    INDEX    { icmpStatsIPVersion }
-    ::= { icmpStatsTable 1 }
-
-IcmpStatsEntry ::= SEQUENCE {
-        icmpStatsIPVersion  InetVersion,
-        icmpStatsInMsgs     Counter32,
-        icmpStatsInErrors   Counter32,
-        icmpStatsOutMsgs    Counter32,
-        icmpStatsOutErrors  Counter32
-    }
-
-icmpStatsIPVersion OBJECT-TYPE
-    SYNTAX     InetVersion
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The IP version of the statistics."
-    ::= { icmpStatsEntry 1 }
-
-icmpStatsInMsgs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of ICMP messages that the entity received.
-            Note that this counter includes all those counted by
-            icmpStatsInErrors."
-    ::= { icmpStatsEntry 2 }
-
-icmpStatsInErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of ICMP messages that the entity received but
-            determined as having ICMP-specific errors (bad ICMP
-            checksums, bad length, etc.)."
-    ::= { icmpStatsEntry 3 }
-
-icmpStatsOutMsgs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of ICMP messages that the entity attempted
-            to send.  Note that this counter includes all those counted
-            by icmpStatsOutErrors."
-    ::= { icmpStatsEntry 4 }
-
-icmpStatsOutErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of ICMP messages that this entity did not send
-            due to problems discovered within ICMP, such as a lack of
-            buffers.  This value should not include errors discovered
-            outside the ICMP layer, such as the inability of IP to route
-            the resultant datagram.  In some implementations, there may
-            be no types of error that contribute to this counter's
-            value."
-    ::= { icmpStatsEntry 5 }
-
---
--- per-version, per-message type ICMP counters
-
---
-
-icmpMsgStatsTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF IcmpMsgStatsEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The table of system-wide per-version, per-message type ICMP
-            counters."
-    ::= { icmp 30 }
-
-icmpMsgStatsEntry OBJECT-TYPE
-    SYNTAX     IcmpMsgStatsEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "A conceptual row in the icmpMsgStatsTable.
-
-            The system should track each ICMP type value, even if that
-            ICMP type is not supported by the system.  However, a
-            given row need not be instantiated unless a message of that
-            type has been processed, i.e., the row for
-            icmpMsgStatsType=X MAY be instantiated before but MUST be
-            instantiated after the first message with Type=X is
-            received or transmitted.  After receiving or transmitting
-            any succeeding messages with Type=X, the relevant counter
-            must be incremented."
-    INDEX { icmpMsgStatsIPVersion, icmpMsgStatsType }
-    ::= { icmpMsgStatsTable 1 }
-
-IcmpMsgStatsEntry ::= SEQUENCE {
-        icmpMsgStatsIPVersion  InetVersion,
-        icmpMsgStatsType       Integer32,
-        icmpMsgStatsInPkts     Counter32,
-        icmpMsgStatsOutPkts    Counter32
-    }
-
-icmpMsgStatsIPVersion OBJECT-TYPE
-    SYNTAX     InetVersion
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The IP version of the statistics."
-    ::= { icmpMsgStatsEntry 1 }
-
-icmpMsgStatsType OBJECT-TYPE
-    SYNTAX     Integer32 (0..255)
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The ICMP type field of the message type being counted by
-            this row.
-
-            Note that ICMP message types are scoped by the address type
-            in use."
-    REFERENCE "http://www.iana.org/assignments/icmp-parameters and
-               http://www.iana.org/assignments/icmpv6-parameters"
-    ::= { icmpMsgStatsEntry 2 }
-
-icmpMsgStatsInPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of input packets for this AF and type."
-    ::= { icmpMsgStatsEntry 3 }
-
-icmpMsgStatsOutPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of output packets for this AF and type."
-    ::= { icmpMsgStatsEntry 4 }
---
--- conformance information
---
-
-ipMIBConformance OBJECT IDENTIFIER ::= { ipMIB 2 }
-
-ipMIBCompliances OBJECT IDENTIFIER ::= { ipMIBConformance 1 }
-ipMIBGroups      OBJECT IDENTIFIER ::= { ipMIBConformance 2 }
-
--- compliance statements
-ipMIBCompliance2 MODULE-COMPLIANCE
-    STATUS     current
-    DESCRIPTION
-            "The compliance statement for systems that implement IP -
-             either IPv4 or IPv6.
-
-            There are a number of INDEX objects that cannot be
-            represented in the form of OBJECT clauses in SMIv2, but
-            for which we have the following compliance requirements,
-            expressed in OBJECT clause form in this description
-            clause:
-
-            -- OBJECT        ipSystemStatsIPVersion
-            -- SYNTAX        InetVersion {ipv4(1), ipv6(2)}
-            -- DESCRIPTION
-            --     This MIB requires support for only IPv4 and IPv6
-            --     versions.
-            --
-            -- OBJECT        ipIfStatsIPVersion
-            -- SYNTAX        InetVersion {ipv4(1), ipv6(2)}
-            -- DESCRIPTION
-            --     This MIB requires support for only IPv4 and IPv6
-            --     versions.
-            --
-            -- OBJECT        icmpStatsIPVersion
-            -- SYNTAX        InetVersion {ipv4(1), ipv6(2)}
-            -- DESCRIPTION
-            --     This MIB requires support for only IPv4 and IPv6
-            --     versions.
-            --
-            -- OBJECT        icmpMsgStatsIPVersion
-            -- SYNTAX        InetVersion {ipv4(1), ipv6(2)}
-            -- DESCRIPTION
-            --     This MIB requires support for only IPv4 and IPv6
-            --     versions.
-            --
-            -- OBJECT        ipAddressPrefixType
-            -- SYNTAX        InetAddressType {ipv4(1), ipv6(2)}
-            -- DESCRIPTION
-            --     This MIB requires support for only global IPv4 and
-            --     IPv6 address types.
-            --
-            -- OBJECT        ipAddressPrefixPrefix
-            -- SYNTAX        InetAddress (Size(4 | 16))
-            -- DESCRIPTION
-            --     This MIB requires support for only global IPv4 and
-            --     IPv6 addresses and so the size can be either 4 or
-            --     16 bytes.
-            --
-            -- OBJECT        ipAddressAddrType
-            -- SYNTAX        InetAddressType {ipv4(1), ipv6(2),
-            --                                ipv4z(3), ipv6z(4)}
-            -- DESCRIPTION
-            --     This MIB requires support for only global and
-            --     non-global IPv4 and IPv6 address types.
-            --
-            -- OBJECT        ipAddressAddr
-            -- SYNTAX        InetAddress (Size(4 | 8 | 16 | 20))
-            -- DESCRIPTION
-            --     This MIB requires support for only global and
-
-            --     non-global IPv4 and IPv6 addresses and so the size
-            --     can be 4, 8, 16, or 20 bytes.
-            --
-            -- OBJECT        ipNetToPhysicalNetAddressType
-            -- SYNTAX        InetAddressType {ipv4(1), ipv6(2),
-            --                                ipv4z(3), ipv6z(4)}
-            -- DESCRIPTION
-            --     This MIB requires support for only global and
-            --     non-global IPv4 and IPv6 address types.
-            --
-            -- OBJECT        ipNetToPhysicalNetAddress
-            -- SYNTAX        InetAddress (Size(4 | 8 | 16 | 20))
-            -- DESCRIPTION
-            --     This MIB requires support for only global and
-            --     non-global IPv4 and IPv6 addresses and so the size
-            --     can be 4, 8, 16, or 20 bytes.
-            --
-            -- OBJECT        ipDefaultRouterAddressType
-            -- SYNTAX        InetAddressType {ipv4(1), ipv6(2),
-            --                                ipv4z(3), ipv6z(4)}
-            -- DESCRIPTION
-            --     This MIB requires support for only global and
-            --     non-global IPv4 and IPv6 address types.
-            --
-            -- OBJECT        ipDefaultRouterAddress
-            -- SYNTAX        InetAddress (Size(4 | 8 | 16 | 20))
-            -- DESCRIPTION
-            --     This MIB requires support for only global and
-            --     non-global IPv4 and IPv6 addresses and so the size
-            --     can be 4, 8, 16, or 20 bytes."
-
-    MODULE -- this module
-
-    MANDATORY-GROUPS { ipSystemStatsGroup,   ipAddressGroup,
-                       ipNetToPhysicalGroup, ipDefaultRouterGroup,
-                       icmpStatsGroup }
-
-    GROUP ipSystemStatsHCOctetGroup
-    DESCRIPTION
-           "This group is mandatory for systems that have an aggregate
-            bandwidth of greater than 20MB.  Including this group does
-            not allow an entity to neglect the 32 bit versions of these
-            objects."
-
-    GROUP ipSystemStatsHCPacketGroup
-    DESCRIPTION
-           "This group is mandatory for systems that have an aggregate
-            bandwidth of greater than 650MB.  Including this group
-
-            does not allow an entity to neglect the 32 bit versions of
-            these objects."
-
-    GROUP ipIfStatsGroup
-    DESCRIPTION
-           "This group is optional for all systems."
-
-    GROUP ipIfStatsHCOctetGroup
-    DESCRIPTION
-           "This group is mandatory for systems that include the
-            ipIfStatsGroup and include links with bandwidths of greater
-            than 20MB.  Including this group does not allow an entity to
-            neglect the 32 bit versions of these objects."
-
-    GROUP ipIfStatsHCPacketGroup
-    DESCRIPTION
-           "This group is mandatory for systems that include the
-            ipIfStatsGroup and include links with bandwidths of greater
-            than 650MB.  Including this group does not allow an entity
-            to neglect the 32 bit versions of these objects."
-
-    GROUP ipv4GeneralGroup
-    DESCRIPTION
-           "This group is mandatory for all systems supporting IPv4."
-
-    GROUP ipv4IfGroup
-    DESCRIPTION
-           "This group is mandatory for all systems supporting IPv4."
-
-    GROUP ipv4SystemStatsGroup
-    DESCRIPTION
-           "This group is mandatory for all systems supporting IPv4."
-
-    GROUP ipv4SystemStatsHCPacketGroup
-    DESCRIPTION
-           "This group is mandatory for all systems supporting IPv4 and
-            that have an aggregate bandwidth of greater than 650MB.
-            Including this group does not allow an entity to neglect the
-            32 bit versions of these objects."
-
-    GROUP ipv4IfStatsGroup
-    DESCRIPTION
-           "This group is mandatory for all systems supporting IPv4 and
-            including the ipIfStatsGroup."
-
-    GROUP ipv4IfStatsHCPacketGroup
-    DESCRIPTION
-           "This group is mandatory for all systems supporting IPv4 and
-
-            including the ipIfStatsHCPacketGroup.  Including this group
-            does not allow an entity to neglect the 32 bit versions of
-            these objects."
-
-    GROUP ipv6GeneralGroup2
-    DESCRIPTION
-           "This group is mandatory for all systems supporting IPv6."
-
-    GROUP ipv6IfGroup
-    DESCRIPTION
-           "This group is mandatory for all systems supporting IPv6."
-
-    GROUP ipAddressPrefixGroup
-    DESCRIPTION
-           "This group is mandatory for all systems supporting IPv6."
-
-    GROUP ipv6ScopeGroup
-    DESCRIPTION
-           "This group is mandatory for all systems supporting IPv6."
-
-    GROUP ipv6RouterAdvertGroup
-    DESCRIPTION
-           "This group is mandatory for all IPv6 routers."
-
-    GROUP ipLastChangeGroup
-    DESCRIPTION
-           "This group is optional for all agents."
-
-    OBJECT     ipv6IpForwarding
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv6IpDefaultHopLimit
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv4InterfaceEnableStatus
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv6InterfaceEnableStatus
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv6InterfaceForwarding
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipAddressSpinLock
-    MIN-ACCESS not-accessible
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object.  However, if an agent provides write access to any
-            of the other objects in the ipAddressGroup, it SHOULD
-            provide write access to this object as well."
-
-    OBJECT     ipAddressIfIndex
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write or create access
-            to this object."
-
-    OBJECT     ipAddressType
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write or create access
-            to this object."
-
-    OBJECT     ipAddressStatus
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write or create access
-            to this object."
-
-    OBJECT     ipAddressRowStatus
-    SYNTAX     RowStatus { active(1) }
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write or create access
-            to this object."
-
-    OBJECT     ipAddressStorageType
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write or create access
-            to this object.
-
-            If an agent allows this object to be written or created, it
-            is not required to allow this object to be set to readOnly,
-            permanent, or nonVolatile."
-
-    OBJECT     ipNetToPhysicalPhysAddress
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write or create access
-            to this object."
-
-    OBJECT     ipNetToPhysicalType
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write or create access
-            to this object."
-
-    OBJECT     ipv6RouterAdvertSpinLock
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object.  However, if an agent provides write access to
-            any of the other objects in the ipv6RouterAdvertGroup, it
-            SHOULD provide write access to this object as well."
-
-    OBJECT     ipv6RouterAdvertSendAdverts
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv6RouterAdvertMaxInterval
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv6RouterAdvertMinInterval
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv6RouterAdvertManagedFlag
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv6RouterAdvertOtherConfigFlag
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv6RouterAdvertLinkMTU
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv6RouterAdvertReachableTime
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv6RouterAdvertRetransmitTime
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv6RouterAdvertCurHopLimit
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv6RouterAdvertDefaultLifetime
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write access to this
-            object."
-
-    OBJECT     ipv6RouterAdvertRowStatus
-    MIN-ACCESS read-only
-    DESCRIPTION
-           "An agent is not required to provide write or create access
-            to this object."
-    ::= { ipMIBCompliances 2 }
-
--- units of conformance
-
-ipv4GeneralGroup OBJECT-GROUP
-    OBJECTS   { ipForwarding, ipDefaultTTL, ipReasmTimeout }
-    STATUS     current
-    DESCRIPTION
-           "The group of IPv4-specific objects for basic management of
-            IPv4 entities."
-    ::= { ipMIBGroups 3 }
-
-ipv4IfGroup OBJECT-GROUP
-    OBJECTS   { ipv4InterfaceReasmMaxSize, ipv4InterfaceEnableStatus,
-                ipv4InterfaceRetransmitTime }
-    STATUS     current
-    DESCRIPTION
-           "The group of IPv4-specific objects for basic management of
-            IPv4 interfaces."
-    ::= { ipMIBGroups 4 }
-
-ipv6GeneralGroup2 OBJECT-GROUP
-    OBJECTS { ipv6IpForwarding, ipv6IpDefaultHopLimit }
-    STATUS     current
-    DESCRIPTION
-           "The IPv6 group of objects providing for basic management of
-            IPv6 entities."
-    ::= { ipMIBGroups 5 }
-
-ipv6IfGroup OBJECT-GROUP
-    OBJECTS   { ipv6InterfaceReasmMaxSize,   ipv6InterfaceIdentifier,
-                ipv6InterfaceEnableStatus,   ipv6InterfaceReachableTime,
-                ipv6InterfaceRetransmitTime, ipv6InterfaceForwarding }
-    STATUS     current
-    DESCRIPTION
-           "The group of IPv6-specific objects for basic management of
-            IPv6 interfaces."
-    ::= { ipMIBGroups 6 }
-
-ipLastChangeGroup OBJECT-GROUP
-    OBJECTS   { ipv4InterfaceTableLastChange,
-                ipv6InterfaceTableLastChange,
-                ipIfStatsTableLastChange }
-    STATUS     current
-    DESCRIPTION
-           "The last change objects associated with this MIB.  These
-            objects are optional for all agents.  They SHOULD be
-            implemented on agents where it is possible to determine the
-            proper values.  Where it is not possible to determine the
-            proper values, for example when the tables are split amongst
-            several sub-agents using AgentX, the agent MUST NOT
-            implement these objects to return an incorrect or static
-            value."
-    ::= { ipMIBGroups 7 }
-
-ipSystemStatsGroup OBJECT-GROUP
-    OBJECTS   { ipSystemStatsInReceives,
-                ipSystemStatsInOctets,
-                ipSystemStatsInHdrErrors,
-                ipSystemStatsInNoRoutes,
-                ipSystemStatsInAddrErrors,
-                ipSystemStatsInUnknownProtos,
-                ipSystemStatsInTruncatedPkts,
-                ipSystemStatsInForwDatagrams,
-                ipSystemStatsReasmReqds,
-                ipSystemStatsReasmOKs,
-                ipSystemStatsReasmFails,
-                ipSystemStatsInDiscards,
-                ipSystemStatsInDelivers,
-                ipSystemStatsOutRequests,
-                ipSystemStatsOutNoRoutes,
-                ipSystemStatsOutForwDatagrams,
-                ipSystemStatsOutDiscards,
-                ipSystemStatsOutFragReqds,
-                ipSystemStatsOutFragOKs,
-                ipSystemStatsOutFragFails,
-                ipSystemStatsOutFragCreates,
-                ipSystemStatsOutTransmits,
-                ipSystemStatsOutOctets,
-                ipSystemStatsInMcastPkts,
-                ipSystemStatsInMcastOctets,
-                ipSystemStatsOutMcastPkts,
-                ipSystemStatsOutMcastOctets,
-                ipSystemStatsDiscontinuityTime,
-                ipSystemStatsRefreshRate }
-    STATUS     current
-    DESCRIPTION
-           "IP system wide statistics."
-    ::= { ipMIBGroups 8 }
-
-ipv4SystemStatsGroup OBJECT-GROUP
-    OBJECTS   { ipSystemStatsInBcastPkts, ipSystemStatsOutBcastPkts }
-    STATUS     current
-    DESCRIPTION
-           "IPv4 only system wide statistics."
-    ::= { ipMIBGroups 9 }
-
-ipSystemStatsHCOctetGroup OBJECT-GROUP
-    OBJECTS   { ipSystemStatsHCInOctets,
-                ipSystemStatsHCOutOctets,
-                ipSystemStatsHCInMcastOctets,
-                ipSystemStatsHCOutMcastOctets
-}
-    STATUS     current
-    DESCRIPTION
-           "IP system wide statistics for systems that may overflow the
-            standard octet counters within 1 hour."
-    ::= { ipMIBGroups 10 }
-
-ipSystemStatsHCPacketGroup OBJECT-GROUP
-    OBJECTS   { ipSystemStatsHCInReceives,
-                ipSystemStatsHCInForwDatagrams,
-                ipSystemStatsHCInDelivers,
-                ipSystemStatsHCOutRequests,
-                ipSystemStatsHCOutForwDatagrams,
-                ipSystemStatsHCOutTransmits,
-                ipSystemStatsHCInMcastPkts,
-                ipSystemStatsHCOutMcastPkts
-}
-    STATUS     current
-    DESCRIPTION
-           "IP system wide statistics for systems that may overflow the
-            standard packet counters within 1 hour."
-    ::= { ipMIBGroups 11 }
-
-ipv4SystemStatsHCPacketGroup OBJECT-GROUP
-    OBJECTS   { ipSystemStatsHCInBcastPkts,
-                ipSystemStatsHCOutBcastPkts }
-    STATUS     current
-    DESCRIPTION
-           "IPv4 only system wide statistics for systems that may
-            overflow the standard packet counters within 1 hour."
-    ::= { ipMIBGroups 12 }
-
-ipIfStatsGroup OBJECT-GROUP
-    OBJECTS   { ipIfStatsInReceives,        ipIfStatsInOctets,
-                ipIfStatsInHdrErrors,       ipIfStatsInNoRoutes,
-                ipIfStatsInAddrErrors,      ipIfStatsInUnknownProtos,
-                ipIfStatsInTruncatedPkts,   ipIfStatsInForwDatagrams,
-                ipIfStatsReasmReqds,        ipIfStatsReasmOKs,
-                ipIfStatsReasmFails,        ipIfStatsInDiscards,
-                ipIfStatsInDelivers,        ipIfStatsOutRequests,
-                ipIfStatsOutForwDatagrams,  ipIfStatsOutDiscards,
-                ipIfStatsOutFragReqds,      ipIfStatsOutFragOKs,
-                ipIfStatsOutFragFails,      ipIfStatsOutFragCreates,
-                ipIfStatsOutTransmits,      ipIfStatsOutOctets,
-                ipIfStatsInMcastPkts,       ipIfStatsInMcastOctets,
-                ipIfStatsOutMcastPkts,      ipIfStatsOutMcastOctets,
-                ipIfStatsDiscontinuityTime, ipIfStatsRefreshRate }
-    STATUS     current
-    DESCRIPTION
-           "IP per-interface statistics."
-    ::= { ipMIBGroups 13 }
-
-ipv4IfStatsGroup OBJECT-GROUP
-    OBJECTS   { ipIfStatsInBcastPkts, ipIfStatsOutBcastPkts }
-    STATUS     current
-    DESCRIPTION
-           "IPv4 only per-interface statistics."
-    ::= { ipMIBGroups 14 }
-
-ipIfStatsHCOctetGroup OBJECT-GROUP
-    OBJECTS   { ipIfStatsHCInOctets,      ipIfStatsHCOutOctets,
-                ipIfStatsHCInMcastOctets, ipIfStatsHCOutMcastOctets }
-    STATUS     current
-    DESCRIPTION
-           "IP per-interfaces statistics for systems that include
-            interfaces that may overflow the standard octet
-            counters within 1 hour."
-    ::= { ipMIBGroups 15 }
-
-ipIfStatsHCPacketGroup OBJECT-GROUP
-    OBJECTS   { ipIfStatsHCInReceives,       ipIfStatsHCInForwDatagrams,
-                ipIfStatsHCInDelivers,       ipIfStatsHCOutRequests,
-                ipIfStatsHCOutForwDatagrams, ipIfStatsHCOutTransmits,
-                ipIfStatsHCInMcastPkts,      ipIfStatsHCOutMcastPkts }
-    STATUS     current
-    DESCRIPTION
-           "IP per-interfaces statistics for systems that include
-            interfaces that may overflow the standard packet counters
-            within 1 hour."
-    ::= { ipMIBGroups 16 }
-
-ipv4IfStatsHCPacketGroup OBJECT-GROUP
-    OBJECTS   { ipIfStatsHCInBcastPkts, ipIfStatsHCOutBcastPkts }
-    STATUS     current
-    DESCRIPTION
-           "IPv4 only per-interface statistics for systems that include
-            interfaces that may overflow the standard packet counters
-            within 1 hour."
-    ::= { ipMIBGroups 17 }
-
-ipAddressPrefixGroup OBJECT-GROUP
-    OBJECTS   { ipAddressPrefixOrigin,
-                ipAddressPrefixOnLinkFlag,
-                ipAddressPrefixAutonomousFlag,
-                ipAddressPrefixAdvPreferredLifetime,
-                ipAddressPrefixAdvValidLifetime }
-    STATUS     current
-    DESCRIPTION
-           "The group of objects for providing information about address
-            prefixes used by this node."
-    ::= { ipMIBGroups 18 }
-
-ipAddressGroup OBJECT-GROUP
-    OBJECTS   { ipAddressSpinLock,  ipAddressIfIndex,
-                ipAddressType,      ipAddressPrefix,
-                ipAddressOrigin,    ipAddressStatus,
-                ipAddressCreated,   ipAddressLastChanged,
-                ipAddressRowStatus, ipAddressStorageType }
-    STATUS     current
-    DESCRIPTION
-           "The group of objects for providing information about the
-            addresses relevant to this entity's interfaces."
-    ::= { ipMIBGroups 19 }
-
-ipNetToPhysicalGroup OBJECT-GROUP
-    OBJECTS   { ipNetToPhysicalPhysAddress, ipNetToPhysicalLastUpdated,
-                ipNetToPhysicalType,        ipNetToPhysicalState,
-                ipNetToPhysicalRowStatus }
-    STATUS     current
-    DESCRIPTION
-           "The group of objects for providing information about the
-            mappings of network address to physical address known to
-            this node."
-    ::= { ipMIBGroups 20 }
-
-ipv6ScopeGroup OBJECT-GROUP
-    OBJECTS   { ipv6ScopeZoneIndexLinkLocal,
-                ipv6ScopeZoneIndex3,
-                ipv6ScopeZoneIndexAdminLocal,
-                ipv6ScopeZoneIndexSiteLocal,
-                ipv6ScopeZoneIndex6,
-                ipv6ScopeZoneIndex7,
-                ipv6ScopeZoneIndexOrganizationLocal,
-                ipv6ScopeZoneIndex9,
-                ipv6ScopeZoneIndexA,
-                ipv6ScopeZoneIndexB,
-                ipv6ScopeZoneIndexC,
-                ipv6ScopeZoneIndexD }
-    STATUS     current
-    DESCRIPTION
-           "The group of objects for managing IPv6 scope zones."
-    ::= { ipMIBGroups 21 }
-
-ipDefaultRouterGroup OBJECT-GROUP
-    OBJECTS   { ipDefaultRouterLifetime, ipDefaultRouterPreference }
-    STATUS     current
-    DESCRIPTION
-           "The group of objects for providing information about default
-            routers known to this node."
-    ::= { ipMIBGroups 22 }
-
-ipv6RouterAdvertGroup OBJECT-GROUP
-    OBJECTS   { ipv6RouterAdvertSpinLock,
-                ipv6RouterAdvertSendAdverts,
-                ipv6RouterAdvertMaxInterval,
-                ipv6RouterAdvertMinInterval,
-                ipv6RouterAdvertManagedFlag,
-                ipv6RouterAdvertOtherConfigFlag,
-                ipv6RouterAdvertLinkMTU,
-                ipv6RouterAdvertReachableTime,
-                ipv6RouterAdvertRetransmitTime,
-                ipv6RouterAdvertCurHopLimit,
-                ipv6RouterAdvertDefaultLifetime,
-                ipv6RouterAdvertRowStatus
-}
-    STATUS     current
-    DESCRIPTION
-           "The group of objects for controlling information advertised
-            by IPv6 routers."
-    ::= { ipMIBGroups 23 }
-
-icmpStatsGroup OBJECT-GROUP
-    OBJECTS   {icmpStatsInMsgs,    icmpStatsInErrors,
-               icmpStatsOutMsgs,   icmpStatsOutErrors,
-               icmpMsgStatsInPkts, icmpMsgStatsOutPkts }
-    STATUS     current
-    DESCRIPTION
-           "The group of objects providing ICMP statistics."
-    ::= { ipMIBGroups 24 }
-
---
--- Deprecated objects
---
-
-ipInReceives OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The total number of input datagrams received from
-            interfaces, including those received in error.
-
-            This object has been deprecated, as a new IP version-neutral
-
-            table has been added.  It is loosely replaced by
-            ipSystemStatsInRecieves."
-    ::= { ip 3 }
-
-ipInHdrErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of input datagrams discarded due to errors in
-            their IPv4 headers, including bad checksums, version number
-            mismatch, other format errors, time-to-live exceeded, errors
-            discovered in processing their IPv4 options, etc.
-
-            This object has been deprecated as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            ipSystemStatsInHdrErrors."
-    ::= { ip 4 }
-
-ipInAddrErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of input datagrams discarded because the IPv4
-            address in their IPv4 header's destination field was not a
-            valid address to be received at this entity.  This count
-            includes invalid addresses (e.g., 0.0.0.0) and addresses of
-            unsupported Classes (e.g., Class E).  For entities which are
-            not IPv4 routers, and therefore do not forward datagrams,
-            this counter includes datagrams discarded because the
-            destination address was not a local address.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            ipSystemStatsInAddrErrors."
-    ::= { ip 5 }
-
-ipForwDatagrams OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of input datagrams for which this entity was not
-            their final IPv4 destination, as a result of which an
-            attempt was made to find a route to forward them to that
-            final destination.  In entities which do not act as IPv4
-            routers, this counter will include only those packets which
-
-            were Source-Routed via this entity, and the Source-Route
-            option processing was successful.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            ipSystemStatsInForwDatagrams."
-    ::= { ip 6 }
-
-ipInUnknownProtos OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of locally-addressed datagrams received
-            successfully but discarded because of an unknown or
-            unsupported protocol.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            ipSystemStatsInUnknownProtos."
-    ::= { ip 7 }
-
-ipInDiscards OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of input IPv4 datagrams for which no problems
-            were encountered to prevent their continued processing, but
-            which were discarded (e.g., for lack of buffer space).  Note
-            that this counter does not include any datagrams discarded
-            while awaiting re-assembly.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            ipSystemStatsInDiscards."
-    ::= { ip 8 }
-
-ipInDelivers OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The total number of input datagrams successfully delivered
-            to IPv4 user-protocols (including ICMP).
-
-            This object has been deprecated as a new IP version neutral
-            table has been added.  It is loosely replaced by
-
-            ipSystemStatsIndelivers."
-    ::= { ip 9 }
-
-ipOutRequests OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The total number of IPv4 datagrams which local IPv4 user
-            protocols (including ICMP) supplied to IPv4 in requests for
-            transmission.  Note that this counter does not include any
-            datagrams counted in ipForwDatagrams.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            ipSystemStatsOutRequests."
-    ::= { ip 10 }
-
-ipOutDiscards OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of output IPv4 datagrams for which no problem was
-            encountered to prevent their transmission to their
-            destination, but which were discarded (e.g., for lack of
-            buffer space).  Note that this counter would include
-            datagrams counted in ipForwDatagrams if any such packets met
-            this (discretionary) discard criterion.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            ipSystemStatsOutDiscards."
-    ::= { ip 11 }
-
-ipOutNoRoutes OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of IPv4 datagrams discarded because no route
-            could be found to transmit them to their destination.  Note
-            that this counter includes any packets counted in
-            ipForwDatagrams which meet this `no-route' criterion.  Note
-            that this includes any datagrams which a host cannot route
-            because all of its default routers are down.
-
-            This object has been deprecated, as a new IP version-neutral
-
-            table has been added.  It is loosely replaced by
-            ipSystemStatsOutNoRoutes."
-    ::= { ip 12 }
-
-ipReasmReqds OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of IPv4 fragments received which needed to be
-            reassembled at this entity.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            ipSystemStatsReasmReqds."
-    ::= { ip 14 }
-
-ipReasmOKs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of IPv4 datagrams successfully re-assembled.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            ipSystemStatsReasmOKs."
-    ::= { ip 15 }
-
-ipReasmFails OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of failures detected by the IPv4 re-assembly
-            algorithm (for whatever reason: timed out, errors, etc).
-            Note that this is not necessarily a count of discarded IPv4
-            fragments since some algorithms (notably the algorithm in
-            RFC 815) can lose track of the number of fragments by
-            combining them as they are received.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            ipSystemStatsReasmFails."
-    ::= { ip 16 }
-
-ipFragOKs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of IPv4 datagrams that have been successfully
-            fragmented at this entity.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            ipSystemStatsOutFragOKs."
-    ::= { ip 17 }
-
-ipFragFails OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of IPv4 datagrams that have been discarded
-            because they needed to be fragmented at this entity but
-            could not be, e.g., because their Don't Fragment flag was
-            set.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            ipSystemStatsOutFragFails."
-    ::= { ip 18 }
-
-ipFragCreates OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of IPv4 datagram fragments that have been
-            generated as a result of fragmentation at this entity.
-
-            This object has been deprecated as a new IP version neutral
-            table has been added.  It is loosely replaced by
-            ipSystemStatsOutFragCreates."
-    ::= { ip 19 }
-
-ipRoutingDiscards OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of routing entries which were chosen to be
-            discarded even though they are valid.  One possible reason
-            for discarding such an entry could be to free-up buffer
-            space for other routing entries.
-
-            This object was defined in pre-IPv6 versions of the IP MIB.
-            It was implicitly IPv4 only, but the original specifications
-            did not indicate this protocol restriction.  In order to
-            clarify the specifications, this object has been deprecated
-            and a similar, but more thoroughly clarified, object has
-            been added to the IP-FORWARD-MIB."
-    ::= { ip 23 }
-
--- the deprecated IPv4 address table
-
-ipAddrTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF IpAddrEntry
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-           "The table of addressing information relevant to this
-            entity's IPv4 addresses.
-
-            This table has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by the
-            ipAddressTable although several objects that weren't deemed
-            useful weren't carried forward while another
-            (ipAdEntReasmMaxSize) was moved to the ipv4InterfaceTable."
-    ::= { ip 20 }
-
-ipAddrEntry OBJECT-TYPE
-    SYNTAX     IpAddrEntry
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-           "The addressing information for one of this entity's IPv4
-            addresses."
-    INDEX      { ipAdEntAddr }
-    ::= { ipAddrTable 1 }
-
-IpAddrEntry ::= SEQUENCE {
-        ipAdEntAddr          IpAddress,
-        ipAdEntIfIndex       INTEGER,
-        ipAdEntNetMask       IpAddress,
-        ipAdEntBcastAddr     INTEGER,
-        ipAdEntReasmMaxSize  INTEGER
-    }
-
-ipAdEntAddr OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The IPv4 address to which this entry's addressing
-            information pertains."
-    ::= { ipAddrEntry 1 }
-
-ipAdEntIfIndex OBJECT-TYPE
-    SYNTAX     INTEGER (1..2147483647)
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The index value which uniquely identifies the interface to
-            which this entry is applicable.  The interface identified by
-            a particular value of this index is the same interface as
-            identified by the same value of the IF-MIB's ifIndex."
-    ::= { ipAddrEntry 2 }
-
-ipAdEntNetMask OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The subnet mask associated with the IPv4 address of this
-            entry.  The value of the mask is an IPv4 address with all
-            the network bits set to 1 and all the hosts bits set to 0."
-    ::= { ipAddrEntry 3 }
-
-ipAdEntBcastAddr OBJECT-TYPE
-    SYNTAX     INTEGER (0..1)
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The value of the least-significant bit in the IPv4 broadcast
-            address used for sending datagrams on the (logical)
-            interface associated with the IPv4 address of this entry.
-            For example, when the Internet standard all-ones broadcast
-            address is used, the value will be 1.  This value applies to
-            both the subnet and network broadcast addresses used by the
-            entity on this (logical) interface."
-    ::= { ipAddrEntry 4 }
-
-ipAdEntReasmMaxSize OBJECT-TYPE
-    SYNTAX     INTEGER (0..65535)
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The size of the largest IPv4 datagram which this entity can
-            re-assemble from incoming IPv4 fragmented datagrams received
-            on this interface."
-    ::= { ipAddrEntry 5 }
-
--- the deprecated IPv4 Address Translation table
-
--- The Address Translation tables contain the IpAddress to
--- "physical" address equivalences.  Some interfaces do not
--- use translation tables for determining address
--- equivalences (e.g., DDN-X.25 has an algorithmic method);
--- if all interfaces are of this type, then the Address
--- Translation table is empty, i.e., has zero entries.
-
-ipNetToMediaTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF IpNetToMediaEntry
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-           "The IPv4 Address Translation table used for mapping from
-            IPv4 addresses to physical addresses.
-
-            This table has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by the
-            ipNetToPhysicalTable."
-    ::= { ip 22 }
-
-ipNetToMediaEntry OBJECT-TYPE
-    SYNTAX     IpNetToMediaEntry
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-           "Each entry contains one IpAddress to `physical' address
-            equivalence."
-    INDEX       { ipNetToMediaIfIndex,
-                  ipNetToMediaNetAddress }
-    ::= { ipNetToMediaTable 1 }
-
-IpNetToMediaEntry ::= SEQUENCE {
-        ipNetToMediaIfIndex      INTEGER,
-        ipNetToMediaPhysAddress  PhysAddress,
-        ipNetToMediaNetAddress   IpAddress,
-        ipNetToMediaType         INTEGER
-    }
-
-ipNetToMediaIfIndex OBJECT-TYPE
-    SYNTAX     INTEGER (1..2147483647)
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "The interface on which this entry's equivalence is
-            effective.  The interface identified by a particular value
-            of this index is the same interface as identified by the
-
-            same value of the IF-MIB's ifIndex.
-
-            This object predates the rule limiting index objects to a
-            max access value of 'not-accessible' and so continues to use
-            a value of 'read-create'."
-    ::= { ipNetToMediaEntry 1 }
-
-ipNetToMediaPhysAddress OBJECT-TYPE
-    SYNTAX     PhysAddress (SIZE(0..65535))
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "The media-dependent `physical' address.  This object should
-            return 0 when this entry is in the 'incomplete' state.
-
-            As the entries in this table are typically not persistent
-            when this object is written the entity should not save the
-            change to non-volatile storage.  Note: a stronger
-            requirement is not used because this object was previously
-            defined."
-    ::= { ipNetToMediaEntry 2 }
-
-ipNetToMediaNetAddress OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "The IpAddress corresponding to the media-dependent
-            `physical' address.
-
-            This object predates the rule limiting index objects to a
-            max access value of 'not-accessible' and so continues to use
-            a value of 'read-create'."
-    ::= { ipNetToMediaEntry 3 }
-
-ipNetToMediaType OBJECT-TYPE
-    SYNTAX     INTEGER {
-                other(1),        -- none of the following
-                invalid(2),      -- an invalidated mapping
-                dynamic(3),
-                static(4)
-            }
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-           "The type of mapping.
-
-            Setting this object to the value invalid(2) has the effect
-
-            of invalidating the corresponding entry in the
-            ipNetToMediaTable.  That is, it effectively dis-associates
-            the interface identified with said entry from the mapping
-            identified with said entry.  It is an implementation-
-            specific matter as to whether the agent removes an
-            invalidated entry from the table.  Accordingly, management
-            stations must be prepared to receive tabular information
-            from agents that corresponds to entries not currently in
-            use.  Proper interpretation of such entries requires
-            examination of the relevant ipNetToMediaType object.
-
-            As the entries in this table are typically not persistent
-            when this object is written the entity should not save the
-            change to non-volatile storage.  Note: a stronger
-            requirement is not used because this object was previously
-            defined."
-    ::= { ipNetToMediaEntry 4 }
-
--- the deprecated ICMP group
-
-icmpInMsgs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The total number of ICMP messages which the entity received.
-            Note that this counter includes all those counted by
-            icmpInErrors.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            icmpStatsInMsgs."
-    ::= { icmp 1 }
-
-icmpInErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP messages which the entity received but
-            determined as having ICMP-specific errors (bad ICMP
-            checksums, bad length, etc.).
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            icmpStatsInErrors."
-    ::= { icmp 2 }
-
-icmpInDestUnreachs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Destination Unreachable messages
-            received.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 3 }
-
-icmpInTimeExcds OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Time Exceeded messages received.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 4 }
-
-icmpInParmProbs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Parameter Problem messages received.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 5 }
-
-icmpInSrcQuenchs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Source Quench messages received.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 6 }
-
-icmpInRedirects OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Redirect messages received.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 7 }
-
-icmpInEchos OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Echo (request) messages received.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 8 }
-
-icmpInEchoReps OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Echo Reply messages received.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 9 }
-
-icmpInTimestamps OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Timestamp (request) messages received.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 10 }
-
-icmpInTimestampReps OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Timestamp Reply messages received.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 11 }
-
-icmpInAddrMasks OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Address Mask Request messages received.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 12 }
-
-icmpInAddrMaskReps OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Address Mask Reply messages received.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 13 }
-
-icmpOutMsgs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The total number of ICMP messages which this entity
-            attempted to send.  Note that this counter includes all
-            those counted by icmpOutErrors.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            icmpStatsOutMsgs."
-    ::= { icmp 14 }
-
-icmpOutErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP messages which this entity did not send
-            due to problems discovered within ICMP, such as a lack of
-            buffers.  This value should not include errors discovered
-            outside the ICMP layer, such as the inability of IP to route
-            the resultant datagram.  In some implementations, there may
-            be no types of error which contribute to this counter's
-            value.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by
-            icmpStatsOutErrors."
-    ::= { icmp 15 }
-
-icmpOutDestUnreachs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Destination Unreachable messages sent.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 16 }
-
-icmpOutTimeExcds OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Time Exceeded messages sent.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 17 }
-
-icmpOutParmProbs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Parameter Problem messages sent.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 18 }
-
-icmpOutSrcQuenchs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Source Quench messages sent.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 19 }
-
-icmpOutRedirects OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Redirect messages sent.  For a host, this
-            object will always be zero, since hosts do not send
-            redirects.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 20 }
-
-icmpOutEchos OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Echo (request) messages sent.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 21 }
-
-icmpOutEchoReps OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Echo Reply messages sent.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 22 }
-
-icmpOutTimestamps OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Timestamp (request) messages sent.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 23 }
-
-icmpOutTimestampReps OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Timestamp Reply messages sent.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 24 }
-
-icmpOutAddrMasks OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Address Mask Request messages sent.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 25 }
-
-icmpOutAddrMaskReps OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The number of ICMP Address Mask Reply messages sent.
-
-            This object has been deprecated, as a new IP version-neutral
-            table has been added.  It is loosely replaced by a column in
-            the icmpMsgStatsTable."
-    ::= { icmp 26 }
-
--- deprecated conformance information
--- deprecated compliance statements
-
-ipMIBCompliance MODULE-COMPLIANCE
-    STATUS     deprecated
-    DESCRIPTION
-           "The compliance statement for systems that implement only
-            IPv4.  For version-independence, this compliance statement
-            is deprecated in favor of ipMIBCompliance2."
-    MODULE  -- this module
-        MANDATORY-GROUPS { ipGroup,
-                           icmpGroup }
-    ::= { ipMIBCompliances 1 }
-
--- deprecated units of conformance
-
-ipGroup OBJECT-GROUP
-    OBJECTS   { ipForwarding,           ipDefaultTTL,
-                ipInReceives,           ipInHdrErrors,
-                ipInAddrErrors,         ipForwDatagrams,
-                ipInUnknownProtos,      ipInDiscards,
-                ipInDelivers,           ipOutRequests,
-                ipOutDiscards,          ipOutNoRoutes,
-                ipReasmTimeout,         ipReasmReqds,
-                ipReasmOKs,             ipReasmFails,
-                ipFragOKs,              ipFragFails,
-                ipFragCreates,          ipAdEntAddr,
-                ipAdEntIfIndex,         ipAdEntNetMask,
-                ipAdEntBcastAddr,       ipAdEntReasmMaxSize,
-                ipNetToMediaIfIndex,    ipNetToMediaPhysAddress,
-                ipNetToMediaNetAddress, ipNetToMediaType,
-                ipRoutingDiscards
-}
-    STATUS     deprecated
-    DESCRIPTION
-           "The ip group of objects providing for basic management of IP
-            entities, exclusive of the management of IP routes.
-
-            As part of the version independence, this group has been
-            deprecated.  "
-    ::= { ipMIBGroups 1 }
-
-icmpGroup OBJECT-GROUP
-    OBJECTS   { icmpInMsgs,          icmpInErrors,
-                icmpInDestUnreachs,  icmpInTimeExcds,
-                icmpInParmProbs,     icmpInSrcQuenchs,
-                icmpInRedirects,     icmpInEchos,
-                icmpInEchoReps,      icmpInTimestamps,
-                icmpInTimestampReps, icmpInAddrMasks,
-                icmpInAddrMaskReps,  icmpOutMsgs,
-                icmpOutErrors,       icmpOutDestUnreachs,
-                icmpOutTimeExcds,    icmpOutParmProbs,
-                icmpOutSrcQuenchs,   icmpOutRedirects,
-                icmpOutEchos,        icmpOutEchoReps,
-                icmpOutTimestamps,   icmpOutTimestampReps,
-                icmpOutAddrMasks,    icmpOutAddrMaskReps }
-    STATUS     deprecated
-    DESCRIPTION
-           "The icmp group of objects providing ICMP statistics.
-
-            As part of the version independence, this group has been
-            deprecated.  "
-    ::= { ipMIBGroups 2 }
-
-END
diff --git a/mibs/IPV6-FLOW-LABEL-MIB.txt b/mibs/IPV6-FLOW-LABEL-MIB.txt
deleted file mode 100644
index 6fb3659..0000000
--- a/mibs/IPV6-FLOW-LABEL-MIB.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-IPV6-FLOW-LABEL-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-
-    MODULE-IDENTITY, mib-2, Integer32           FROM SNMPv2-SMI
-    TEXTUAL-CONVENTION                          FROM SNMPv2-TC;
-
-ipv6FlowLabelMIB   MODULE-IDENTITY
-
-    LAST-UPDATED  "200308280000Z"  -- 28 August 2003
-    ORGANIZATION  "IETF Operations and Management Area"
-    CONTACT-INFO  "Bert Wijnen (Editor)
-                   Lucent Technologies
-                   Schagen 33
-                   3461 GL Linschoten
-                   Netherlands
-
-                   Phone: +31 348-407-775
-                   EMail: bwijnen at lucent.com
-
-                   Send comments to <mibs at ops.ietf.org>.
-                  "
-    DESCRIPTION   "This MIB module provides commonly used textual
-                   conventions for IPv6 Flow Labels.
-
-                   Copyright (C) The Internet Society (2003).  This
-                   version of this MIB module is part of RFC 3595,
-                   see the RFC itself for full legal notices.
-                  "
-    -- Revision History
-
-    REVISION      "200308280000Z"  -- 28 August 2003
-    DESCRIPTION   "Initial version, published as RFC 3595."
-    ::= { mib-2 103 }
-
-IPv6FlowLabel      ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT  "d"
-    STATUS         current
-    DESCRIPTION   "The flow identifier or Flow Label in an IPv6
-                   packet header that may be used to discriminate
-                   traffic flows.
-                  "
-    REFERENCE     "Internet Protocol, Version 6 (IPv6) specification,
-                   section 6.  RFC 2460.
-                  "
-    SYNTAX         Integer32 (0..1048575)
-
-IPv6FlowLabelOrAny ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT  "d"
-    STATUS         current
-    DESCRIPTION   "The flow identifier or Flow Label in an IPv6
-                   packet header that may be used to discriminate
-                   traffic flows.  The value of -1 is used to
-                   indicate a wildcard, i.e. any value.
-                  "
-    SYNTAX         Integer32 (-1 | 0..1048575)
-
-END
diff --git a/mibs/IPV6-ICMP-MIB.txt b/mibs/IPV6-ICMP-MIB.txt
deleted file mode 100644
index bb66da5..0000000
--- a/mibs/IPV6-ICMP-MIB.txt
+++ /dev/null
@@ -1,529 +0,0 @@
- IPV6-ICMP-MIB DEFINITIONS ::= BEGIN
-
- IMPORTS
-     MODULE-IDENTITY, OBJECT-TYPE,
-     Counter32, mib-2                 FROM SNMPv2-SMI
-     MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF
-     ipv6IfEntry                      FROM IPV6-MIB;
-
- ipv6IcmpMIB MODULE-IDENTITY
-     LAST-UPDATED "9801082155Z"
-     ORGANIZATION "IETF IPv6 Working Group"
-     CONTACT-INFO
-       "           Dimitry Haskin
-
-           Postal: Bay Networks, Inc.
-                   660 Techology Park Drive.
-                   Billerica, MA  01821
-                   US
-
-              Tel: +1-978-916-8124
-           E-mail: dhaskin at baynetworks.com
-
-                   Steve Onishi
-
-           Postal: Bay Networks, Inc.
-                   3 Federal Street
-                   Billerica, MA 01821
-                   US
-
-              Tel: +1-978-916-3816
-           E-mail: sonishi at baynetworks.com"
-     DESCRIPTION
-       "The MIB module for entities implementing
-        the ICMPv6."
-     ::= { mib-2 56 }
-
- -- the ICMPv6 group
-
- ipv6IcmpMIBObjects OBJECT IDENTIFIER ::= { ipv6IcmpMIB  1 }
-
- -- Per-interface ICMPv6 statistics table
-
- ipv6IfIcmpTable OBJECT-TYPE
-     SYNTAX     SEQUENCE OF Ipv6IfIcmpEntry
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-      "IPv6 ICMP statistics. This table contains statistics
-      of ICMPv6 messages that are received and sourced by
-      the entity."
-     ::= { ipv6IcmpMIBObjects 1 }
-
- ipv6IfIcmpEntry OBJECT-TYPE
-     SYNTAX     Ipv6IfIcmpEntry
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-      "An ICMPv6 statistics entry containing
-      objects at a particular IPv6 interface.
-
-      Note that a receiving interface is
-      the interface to which a given ICMPv6 message
-      is addressed which may not be necessarily
-      the input interface for the message.
-
-      Similarly,  the sending interface is
-      the interface that sources a given
-      ICMP message which is usually but not
-      necessarily the output interface for the message."
-     AUGMENTS { ipv6IfEntry }
-     ::= { ipv6IfIcmpTable 1 }
-
- Ipv6IfIcmpEntry ::= SEQUENCE {
-         ipv6IfIcmpInMsgs
-               Counter32      ,
-         ipv6IfIcmpInErrors
-               Counter32      ,
-         ipv6IfIcmpInDestUnreachs
-               Counter32      ,
-         ipv6IfIcmpInAdminProhibs
-               Counter32      ,
-         ipv6IfIcmpInTimeExcds
-               Counter32      ,
-         ipv6IfIcmpInParmProblems
-               Counter32      ,
-         ipv6IfIcmpInPktTooBigs
-               Counter32      ,
-         ipv6IfIcmpInEchos
-               Counter32      ,
-         ipv6IfIcmpInEchoReplies
-               Counter32      ,
-         ipv6IfIcmpInRouterSolicits
-               Counter32      ,
-         ipv6IfIcmpInRouterAdvertisements
-               Counter32      ,
-         ipv6IfIcmpInNeighborSolicits
-               Counter32      ,
-         ipv6IfIcmpInNeighborAdvertisements
-               Counter32      ,
-         ipv6IfIcmpInRedirects
-               Counter32      ,
-         ipv6IfIcmpInGroupMembQueries
-               Counter32      ,
-         ipv6IfIcmpInGroupMembResponses
-               Counter32      ,
-         ipv6IfIcmpInGroupMembReductions
-               Counter32      ,
-         ipv6IfIcmpOutMsgs
-               Counter32      ,
-         ipv6IfIcmpOutErrors
-               Counter32      ,
-         ipv6IfIcmpOutDestUnreachs
-               Counter32      ,
-         ipv6IfIcmpOutAdminProhibs
-               Counter32      ,
-         ipv6IfIcmpOutTimeExcds
-               Counter32      ,
-         ipv6IfIcmpOutParmProblems
-               Counter32      ,
-         ipv6IfIcmpOutPktTooBigs
-               Counter32      ,
-         ipv6IfIcmpOutEchos
-               Counter32      ,
-         ipv6IfIcmpOutEchoReplies
-               Counter32      ,
-         ipv6IfIcmpOutRouterSolicits
-               Counter32      ,
-         ipv6IfIcmpOutRouterAdvertisements
-               Counter32      ,
-         ipv6IfIcmpOutNeighborSolicits
-               Counter32      ,
-         ipv6IfIcmpOutNeighborAdvertisements
-               Counter32      ,
-         ipv6IfIcmpOutRedirects
-               Counter32      ,
-         ipv6IfIcmpOutGroupMembQueries
-               Counter32      ,
-         ipv6IfIcmpOutGroupMembResponses
-               Counter32      ,
-         ipv6IfIcmpOutGroupMembReductions
-               Counter32
-
-     }
-
- ipv6IfIcmpInMsgs OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The total number of ICMP messages received
-      by the interface which includes all those
-      counted by ipv6IfIcmpInErrors. Note that this
-      interface is the interface to which the
-      ICMP messages were addressed which may not be
-      necessarily the input interface for the messages."
-     ::= { ipv6IfIcmpEntry 1 }
-
- ipv6IfIcmpInErrors OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP messages which the interface
-      received but determined as having ICMP-specific
-      errors (bad ICMP checksums, bad length, etc.)."
-     ::= { ipv6IfIcmpEntry 2 }
-
- ipv6IfIcmpInDestUnreachs OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Destination Unreachable
-      messages received by the interface."
-     ::= { ipv6IfIcmpEntry 3 }
-
- ipv6IfIcmpInAdminProhibs OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP destination
-      unreachable/communication administratively
-      prohibited messages received by the interface."
-     ::= { ipv6IfIcmpEntry 4 }
-
- ipv6IfIcmpInTimeExcds OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Time Exceeded messages
-       received by the interface."
-     ::= { ipv6IfIcmpEntry 5 }
-
- ipv6IfIcmpInParmProblems OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Parameter Problem messages
-       received by the interface."
-     ::= { ipv6IfIcmpEntry 6 }
-
- ipv6IfIcmpInPktTooBigs OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Packet Too Big messages
-      received by the interface."
-     ::= { ipv6IfIcmpEntry 7 }
-
- ipv6IfIcmpInEchos OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Echo (request) messages
-       received by the interface."
-     ::= { ipv6IfIcmpEntry 8 }
-
- ipv6IfIcmpInEchoReplies OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Echo Reply messages received
-      by the interface."
-     ::= { ipv6IfIcmpEntry 9 }
-
- ipv6IfIcmpInRouterSolicits OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Router Solicit messages
-       received by the interface."
-     ::= { ipv6IfIcmpEntry 10 }
-
- ipv6IfIcmpInRouterAdvertisements OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Router Advertisement messages
-      received by the interface."
-     ::= { ipv6IfIcmpEntry 11 }
-
- ipv6IfIcmpInNeighborSolicits OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Neighbor Solicit messages
-       received by the interface."
-     ::= { ipv6IfIcmpEntry 12 }
-
- ipv6IfIcmpInNeighborAdvertisements OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Neighbor Advertisement
-      messages received by the interface."
-     ::= { ipv6IfIcmpEntry 13 }
-
- ipv6IfIcmpInRedirects OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of Redirect messages received
-      by the interface."
-     ::= { ipv6IfIcmpEntry 14 }
-
- ipv6IfIcmpInGroupMembQueries OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMPv6 Group Membership Query
-      messages received by the interface."
-     ::= { ipv6IfIcmpEntry 15}
-
- ipv6IfIcmpInGroupMembResponses OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMPv6 Group Membership Response messages
-      received by the interface."
-     ::= { ipv6IfIcmpEntry 16}
-
-  ipv6IfIcmpInGroupMembReductions OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMPv6 Group Membership Reduction messages
-      received by the interface."
-     ::= { ipv6IfIcmpEntry 17}
-
- ipv6IfIcmpOutMsgs OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The total number of ICMP messages which this
-      interface attempted to send.  Note that this counter
-      includes all those counted by icmpOutErrors."
-     ::= { ipv6IfIcmpEntry 18 }
-
- ipv6IfIcmpOutErrors OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP messages which this interface did
-      not send due to problems discovered within ICMP
-      such as a lack of buffers.  This value should not
-      include errors discovered outside the ICMP layer
-      such as the inability of IPv6 to route the resultant
-      datagram.  In some implementations there may be no
-      types of error which contribute to this counter's
-      value."
-     ::= { ipv6IfIcmpEntry 19 }
-
- ipv6IfIcmpOutDestUnreachs OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Destination Unreachable
-
-      messages sent by the interface."
-     ::= { ipv6IfIcmpEntry 20 }
-
- ipv6IfIcmpOutAdminProhibs OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-       "Number of ICMP dest unreachable/communication
-       administratively prohibited messages sent."
-     ::= { ipv6IfIcmpEntry 21 }
-
- ipv6IfIcmpOutTimeExcds OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Time Exceeded messages sent
-      by the interface."
-     ::= { ipv6IfIcmpEntry 22 }
-
- ipv6IfIcmpOutParmProblems OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Parameter Problem messages
-      sent by the interface."
-     ::= { ipv6IfIcmpEntry 23 }
-
- ipv6IfIcmpOutPktTooBigs OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Packet Too Big messages sent
-      by the interface."
-     ::= { ipv6IfIcmpEntry 24 }
-
- ipv6IfIcmpOutEchos OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Echo (request) messages sent
-      by the interface."
-     ::= { ipv6IfIcmpEntry 25 }
-
- ipv6IfIcmpOutEchoReplies OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Echo Reply messages sent
-      by the interface."
-     ::= { ipv6IfIcmpEntry 26 }
-
- ipv6IfIcmpOutRouterSolicits OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Router Solicitation messages
-       sent by the interface."
-     ::= { ipv6IfIcmpEntry 27 }
-
- ipv6IfIcmpOutRouterAdvertisements OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Router Advertisement messages
-      sent by the interface."
-     ::= { ipv6IfIcmpEntry 28 }
-
- ipv6IfIcmpOutNeighborSolicits OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Neighbor Solicitation
-       messages sent by the interface."
-     ::= { ipv6IfIcmpEntry 29 }
-
- ipv6IfIcmpOutNeighborAdvertisements OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMP Neighbor Advertisement
-      messages sent by the interface."
-     ::= { ipv6IfIcmpEntry 30 }
-
- ipv6IfIcmpOutRedirects OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of Redirect messages sent. For
-      a host, this object will always be zero,
-      since hosts do not send redirects."
-     ::= { ipv6IfIcmpEntry 31 }
-
- ipv6IfIcmpOutGroupMembQueries OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMPv6 Group Membership Query
-      messages sent."
-     ::= { ipv6IfIcmpEntry 32}
-
- ipv6IfIcmpOutGroupMembResponses OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMPv6 Group Membership Response
-      messages sent."
-     ::= { ipv6IfIcmpEntry 33}
-
- ipv6IfIcmpOutGroupMembReductions OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The number of ICMPv6 Group Membership Reduction
-      messages sent."
-     ::= { ipv6IfIcmpEntry 34}
-
--- conformance information
-
-ipv6IcmpConformance OBJECT IDENTIFIER ::= { ipv6IcmpMIB 2 }
-
-ipv6IcmpCompliances
-        OBJECT IDENTIFIER ::= { ipv6IcmpConformance 1 }
-ipv6IcmpGroups
-        OBJECT IDENTIFIER ::= { ipv6IcmpConformance 2 }
-
--- compliance statements
-
-ipv6IcmpCompliance MODULE-COMPLIANCE
-    STATUS  current
-    DESCRIPTION
-      "The compliance statement for SNMPv2 entities which
-      implement ICMPv6."
-    MODULE  -- this module
-        MANDATORY-GROUPS { ipv6IcmpGroup }
-    ::= { ipv6IcmpCompliances 1 }
-
-ipv6IcmpGroup OBJECT-GROUP
-    OBJECTS   {
-                ipv6IfIcmpInMsgs,
-                ipv6IfIcmpInErrors,
-                ipv6IfIcmpInDestUnreachs,
-                ipv6IfIcmpInAdminProhibs,
-                ipv6IfIcmpInTimeExcds,
-                ipv6IfIcmpInParmProblems,
-                ipv6IfIcmpInPktTooBigs,
-                ipv6IfIcmpInEchos,
-                ipv6IfIcmpInEchoReplies,
-                ipv6IfIcmpInRouterSolicits,
-                ipv6IfIcmpInRouterAdvertisements,
-                ipv6IfIcmpInNeighborSolicits,
-                ipv6IfIcmpInNeighborAdvertisements,
-                ipv6IfIcmpInRedirects,
-                ipv6IfIcmpInGroupMembQueries,
-                ipv6IfIcmpInGroupMembResponses,
-                ipv6IfIcmpInGroupMembReductions,
-                ipv6IfIcmpOutMsgs,
-                ipv6IfIcmpOutErrors,
-                ipv6IfIcmpOutDestUnreachs,
-                ipv6IfIcmpOutAdminProhibs,
-                ipv6IfIcmpOutTimeExcds,
-                ipv6IfIcmpOutParmProblems,
-                ipv6IfIcmpOutPktTooBigs,
-                ipv6IfIcmpOutEchos,
-                ipv6IfIcmpOutEchoReplies,
-                ipv6IfIcmpOutRouterSolicits,
-                ipv6IfIcmpOutRouterAdvertisements,
-                ipv6IfIcmpOutNeighborSolicits,
-                ipv6IfIcmpOutNeighborAdvertisements,
-                ipv6IfIcmpOutRedirects,
-                ipv6IfIcmpOutGroupMembQueries,
-                ipv6IfIcmpOutGroupMembResponses,
-                ipv6IfIcmpOutGroupMembReductions
-              }
-    STATUS    current
-    DESCRIPTION
-         "The ICMPv6 group of objects providing information
-          specific to ICMPv6."
-    ::= { ipv6IcmpGroups 1 }
-
- END
diff --git a/mibs/IPV6-MIB.txt b/mibs/IPV6-MIB.txt
deleted file mode 100644
index 6957af2..0000000
--- a/mibs/IPV6-MIB.txt
+++ /dev/null
@@ -1,1443 +0,0 @@
- IPV6-MIB DEFINITIONS ::= BEGIN
-
- IMPORTS
-     MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
-     mib-2, Counter32, Unsigned32, Integer32,
-     Gauge32                               FROM SNMPv2-SMI
-     DisplayString, PhysAddress, TruthValue, TimeStamp,
-     VariablePointer, RowPointer           FROM SNMPv2-TC
-     MODULE-COMPLIANCE, OBJECT-GROUP,
-     NOTIFICATION-GROUP                    FROM SNMPv2-CONF
-     Ipv6IfIndex, Ipv6Address, Ipv6AddressPrefix,
-     Ipv6AddressIfIdentifier,
-     Ipv6IfIndexOrZero                     FROM IPV6-TC;
-
- ipv6MIB MODULE-IDENTITY
-     LAST-UPDATED "9802052155Z"
-     ORGANIZATION "IETF IPv6 Working Group"
-     CONTACT-INFO
-       "           Dimitry Haskin
-
-           Postal: Bay Networks, Inc.
-                   660 Techology Park Drive.
-                   Billerica, MA  01821
-
-                   US
-
-              Tel: +1-978-916-8124
-           E-mail: dhaskin at baynetworks.com
-
-                   Steve Onishi
-
-           Postal: Bay Networks, Inc.
-                   3 Federal Street
-                   Billerica, MA 01821
-                   US
-
-              Tel: +1-978-916-3816
-           E-mail: sonishi at baynetworks.com"
-     DESCRIPTION
-       "The MIB module for entities implementing the IPv6
-        protocol."
-     ::= { mib-2 55 }
-
- -- the IPv6 general group
-
- ipv6MIBObjects OBJECT IDENTIFIER   ::= { ipv6MIB 1 }
-
- ipv6Forwarding OBJECT-TYPE
-     SYNTAX      INTEGER {
-                  forwarding(1),    -- acting as a router
-
-                                    -- NOT acting as
-                  notForwarding(2)  -- a router
-                 }
-      MAX-ACCESS read-write
-      STATUS     current
-      DESCRIPTION
-        "The indication of whether this entity is acting
-        as an IPv6 router in respect to the forwarding of
-        datagrams received by, but not addressed to, this
-        entity.  IPv6 routers forward datagrams.  IPv6
-        hosts do not (except those source-routed via the
-        host).
-
-        Note that for some managed nodes, this object may
-        take on only a subset of the values possible.
-        Accordingly, it is appropriate for an agent to
-        return a `wrongValue' response if a management
-        station attempts to change this object to an
-        inappropriate value."
-      ::= { ipv6MIBObjects 1 }
-
- ipv6DefaultHopLimit OBJECT-TYPE
-     SYNTAX      INTEGER(0..255)
-     MAX-ACCESS  read-write
-      STATUS     current
-     DESCRIPTION
-        "The default value inserted into the Hop Limit
-        field of the IPv6 header of datagrams originated
-        at this entity, whenever a Hop Limit value is not
-        supplied by the transport layer protocol."
-     DEFVAL  { 64 }
-     ::= { ipv6MIBObjects 2 }
-
-ipv6Interfaces OBJECT-TYPE
-     SYNTAX      Unsigned32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-       "The number of IPv6 interfaces (regardless of
-        their current state) present on this system."
-     ::= { ipv6MIBObjects 3 }
-
-ipv6IfTableLastChange OBJECT-TYPE
-     SYNTAX      TimeStamp
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-       "The value of sysUpTime at the time of the last
-       insertion or removal of an entry in the
-       ipv6IfTable. If the number of entries has been
-       unchanged since the last re-initialization of
-       the local network management subsystem, then this
-       object contains a zero value."
-     ::= { ipv6MIBObjects 4 }
-
--- the IPv6 Interfaces table
-
-ipv6IfTable OBJECT-TYPE
-     SYNTAX     SEQUENCE OF Ipv6IfEntry
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-       "The IPv6 Interfaces table contains information
-       on the entity's internetwork-layer interfaces.
-       An IPv6 interface constitutes a logical network
-       layer attachment to the layer immediately below
-
-       IPv6 including internet layer 'tunnels', such as
-       tunnels over IPv4 or IPv6 itself."
-     ::= { ipv6MIBObjects 5 }
-
- ipv6IfEntry OBJECT-TYPE
-     SYNTAX     Ipv6IfEntry
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-       "An interface entry containing objects
-        about a particular IPv6 interface."
-     INDEX   { ipv6IfIndex }
-     ::= { ipv6IfTable 1 }
-
- Ipv6IfEntry ::= SEQUENCE {
-         ipv6IfIndex              Ipv6IfIndex,
-         ipv6IfDescr              DisplayString,
-         ipv6IfLowerLayer         VariablePointer,
-         ipv6IfEffectiveMtu       Unsigned32,
-         ipv6IfReasmMaxSize       Unsigned32,
-         ipv6IfIdentifier         Ipv6AddressIfIdentifier,
-         ipv6IfIdentifierLength   INTEGER,
-         ipv6IfPhysicalAddress    PhysAddress,
-         ipv6IfAdminStatus        INTEGER,
-         ipv6IfOperStatus         INTEGER,
-         ipv6IfLastChange         TimeStamp
-     }
-
- ipv6IfIndex OBJECT-TYPE
-     SYNTAX     Ipv6IfIndex
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-       "A unique non-zero value identifying
-        the particular IPv6 interface."
-     ::= { ipv6IfEntry 1 }
-
- ipv6IfDescr OBJECT-TYPE
-     SYNTAX     DisplayString
-     MAX-ACCESS read-write
-     STATUS     current
-     DESCRIPTION
-       "A textual string containing information about the
-       interface.  This string may be set by the network
-       management system."
-     ::= { ipv6IfEntry 2 }
-
- ipv6IfLowerLayer OBJECT-TYPE
-    SYNTAX      VariablePointer
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-      "This object identifies the protocol layer over
-       which this network interface operates.  If this
-       network interface operates over the data-link
-       layer, then the value of this object refers to an
-       instance of ifIndex [6]. If this network interface
-       operates over an IPv4 interface, the value of this
-       object refers to an instance of ipAdEntAddr [3].
-
-       If this network interface operates over another
-       IPv6 interface, the value of this object refers to
-       an instance of ipv6IfIndex.  If this network
-       interface is not currently operating over an active
-       protocol layer, then the value of this object
-       should be set to the OBJECT ID { 0 0 }."
-    ::= { ipv6IfEntry 3 }
-
- ipv6IfEffectiveMtu OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "octets"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-      "The size of the largest IPv6 packet which can be
-      sent/received on the interface, specified in
-      octets."
- ::= { ipv6IfEntry 4 }
-
- ipv6IfReasmMaxSize OBJECT-TYPE
-    SYNTAX      Unsigned32 (0..65535)
-    UNITS       "octets"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-      "The size of the largest IPv6 datagram which this
-      entity can re-assemble from incoming IPv6 fragmented
-      datagrams received on this interface."
- ::= { ipv6IfEntry 5 }
-
- ipv6IfIdentifier OBJECT-TYPE
-     SYNTAX      Ipv6AddressIfIdentifier
-     MAX-ACCESS  read-write
-     STATUS      current
-     DESCRIPTION
-        "The Interface Identifier for this interface that
-
-        is (at least) unique on the link this interface is
-        attached to. The Interface Identifier is combined
-        with an address prefix to form an interface address.
-
-        By default, the Interface Identifier is autoconfigured
-        according to the rules of the link type this
-        interface is attached to."
-     ::= { ipv6IfEntry 6 }
-
- ipv6IfIdentifierLength OBJECT-TYPE
-     SYNTAX      INTEGER (0..64)
-     UNITS       "bits"
-     MAX-ACCESS  read-write
-     STATUS      current
-     DESCRIPTION
-       "The length of the Interface Identifier in bits."
-     ::= { ipv6IfEntry 7 }
-
- ipv6IfPhysicalAddress OBJECT-TYPE
-     SYNTAX      PhysAddress
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-       "The interface's physical address. For example, for
-       an IPv6 interface attached to an 802.x link, this
-       object normally contains a MAC address. Note that
-       in some cases this address may differ from the
-       address of the interface's protocol sub-layer.  The
-       interface's media-specific MIB must define the bit
-       and byte ordering and the format of the value of
-       this object. For interfaces which do not have such
-       an address (e.g., a serial line), this object should
-       contain an octet string of zero length."
-     ::= { ipv6IfEntry 8 }
-
-ipv6IfAdminStatus OBJECT-TYPE
-    SYNTAX  INTEGER {
-             up(1),       -- ready to pass packets
-             down(2)
-            }
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-      "The desired state of the interface.  When a managed
-      system initializes,  all IPv6 interfaces start with
-      ipv6IfAdminStatus in the down(2) state.  As a result
-      of either explicit management action or per
-      configuration information retained by the managed
-
-      system,  ipv6IfAdminStatus is then changed to
-      the up(1) state (or remains in the down(2) state)."
-    ::= { ipv6IfEntry 9 }
-
-ipv6IfOperStatus OBJECT-TYPE
-    SYNTAX  INTEGER {
-             up(1),             -- ready to pass packets
-
-             down(2),
-             noIfIdentifier(3), -- no interface identifier
-
-                                -- status can not be
-                                -- determined for some
-             unknown(4),        -- reason
-
-                                -- some component is
-             notPresent(5)      -- missing
-            }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-      "The current operational state of the interface.
-      The noIfIdentifier(3) state indicates that no valid
-      Interface Identifier is assigned to the interface.
-      This state usually indicates that the link-local
-      interface address failed Duplicate Address Detection.
-      If ipv6IfAdminStatus is down(2) then ipv6IfOperStatus
-      should be down(2).  If ipv6IfAdminStatus is changed
-      to up(1) then ipv6IfOperStatus should change to up(1)
-      if the interface is ready to transmit and receive
-      network traffic; it should remain in the down(2) or
-      noIfIdentifier(3) state if and only if there is a
-      fault that prevents it from going to the up(1) state;
-      it should remain in the notPresent(5) state if
-      the interface has missing (typically, lower layer)
-      components."
-    ::= { ipv6IfEntry 10 }
-
-ipv6IfLastChange OBJECT-TYPE
-    SYNTAX      TimeStamp
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The value of sysUpTime at the time the interface
-        entered its current operational state.  If the
-        current state was entered prior to the last
-        re-initialization of the local network management
-
-        subsystem, then this object contains a zero
-        value."
-    ::= { ipv6IfEntry 11 }
-
- --  IPv6 Interface Statistics table
-
- ipv6IfStatsTable OBJECT-TYPE
-     SYNTAX     SEQUENCE OF Ipv6IfStatsEntry
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-         "IPv6 interface traffic statistics."
-     ::= { ipv6MIBObjects 6 }
-
- ipv6IfStatsEntry OBJECT-TYPE
-     SYNTAX     Ipv6IfStatsEntry
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-         "An interface statistics entry containing objects
-         at a particular IPv6 interface."
-     AUGMENTS { ipv6IfEntry }
-     ::= { ipv6IfStatsTable 1 }
-
- Ipv6IfStatsEntry ::= SEQUENCE {
-         ipv6IfStatsInReceives
-             Counter32,
-         ipv6IfStatsInHdrErrors
-             Counter32,
-         ipv6IfStatsInTooBigErrors
-             Counter32,
-         ipv6IfStatsInNoRoutes
-             Counter32,
-         ipv6IfStatsInAddrErrors
-             Counter32,
-         ipv6IfStatsInUnknownProtos
-             Counter32,
-         ipv6IfStatsInTruncatedPkts
-             Counter32,
-         ipv6IfStatsInDiscards
-             Counter32,
-         ipv6IfStatsInDelivers
-             Counter32,
-         ipv6IfStatsOutForwDatagrams
-             Counter32,
-         ipv6IfStatsOutRequests
-             Counter32,
-         ipv6IfStatsOutDiscards
-
-             Counter32,
-         ipv6IfStatsOutFragOKs
-             Counter32,
-         ipv6IfStatsOutFragFails
-             Counter32,
-         ipv6IfStatsOutFragCreates
-             Counter32,
-         ipv6IfStatsReasmReqds
-             Counter32,
-         ipv6IfStatsReasmOKs
-             Counter32,
-         ipv6IfStatsReasmFails
-             Counter32,
-         ipv6IfStatsInMcastPkts
-             Counter32,
-         ipv6IfStatsOutMcastPkts
-             Counter32
-     }
-
- ipv6IfStatsInReceives OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "The total number of input datagrams received by
-        the interface, including those received in error."
-     ::= { ipv6IfStatsEntry 1 }
-
- ipv6IfStatsInHdrErrors OBJECT-TYPE
-     SYNTAX     Counter32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-        "The number of input datagrams discarded due to
-        errors in their IPv6 headers, including version
-        number mismatch, other format errors, hop count
-        exceeded, errors discovered in processing their
-        IPv6 options, etc."
-     ::= { ipv6IfStatsEntry 2 }
-
- ipv6IfStatsInTooBigErrors OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-       "The number of input datagrams that could not be
-       forwarded because their size exceeded the link MTU
-       of outgoing interface."
-     ::= { ipv6IfStatsEntry 3 }
-
- ipv6IfStatsInNoRoutes OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "The number of input datagrams discarded because no
-         route could be found to transmit them to their
-         destination."
-     ::= { ipv6IfStatsEntry 4 }
-
- ipv6IfStatsInAddrErrors OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "The number of input datagrams discarded because
-        the IPv6 address in their IPv6 header's destination
-        field was not a valid address to be received at
-        this entity.  This count includes invalid
-        addresses (e.g., ::0) and unsupported addresses
-        (e.g., addresses with unallocated prefixes).  For
-        entities which are not IPv6 routers and therefore
-        do not forward datagrams, this counter includes
-        datagrams discarded because the destination address
-        was not a local address."
-     ::= { ipv6IfStatsEntry 5 }
-
- ipv6IfStatsInUnknownProtos OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "The number of locally-addressed datagrams
-        received successfully but discarded because of an
-        unknown or unsupported protocol. This counter is
-        incremented at the interface to which these
-        datagrams were addressed which might not be
-        necessarily the input interface for some of
-        the datagrams."
-     ::= { ipv6IfStatsEntry 6 }
-
- ipv6IfStatsInTruncatedPkts OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "The number of input datagrams discarded because
-         datagram frame didn't carry enough data."
-     ::= { ipv6IfStatsEntry 7 }
-
- ipv6IfStatsInDiscards OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "The number of input IPv6 datagrams for which no
-        problems were encountered to prevent their
-        continued processing, but which were discarded
-        (e.g., for lack of buffer space).  Note that this
-        counter does not include any datagrams discarded
-        while awaiting re-assembly."
-     ::= { ipv6IfStatsEntry 8 }
-
- ipv6IfStatsInDelivers OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-      "The total number of datagrams successfully
-      delivered to IPv6 user-protocols (including ICMP).
-      This counter is incremented at the interface to
-      which these datagrams were addressed which might
-      not be necessarily the input interface for some of
-      the datagrams."
-     ::= { ipv6IfStatsEntry 9 }
-
- ipv6IfStatsOutForwDatagrams OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "The number of output datagrams which this
-        entity received and forwarded to their final
-        destinations.  In entities which do not act
-        as IPv6 routers, this counter will include
-        only those packets which were Source-Routed
-        via this entity, and the Source-Route
-        processing was successful.  Note that for
-        a successfully forwarded datagram the counter
-        of the outgoing interface is incremented."
-     ::= { ipv6IfStatsEntry 10 }
-
- ipv6IfStatsOutRequests OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-      "The total number of IPv6 datagrams which local IPv6
-      user-protocols (including ICMP) supplied to IPv6 in
-      requests for transmission.  Note that this counter
-      does not include any datagrams counted in
-      ipv6IfStatsOutForwDatagrams."
-     ::= { ipv6IfStatsEntry 11 }
-
- ipv6IfStatsOutDiscards OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-         "The number of output IPv6 datagrams for which no
-         problem was encountered to prevent their
-         transmission to their destination, but which were
-         discarded (e.g., for lack of buffer space).  Note
-         that this counter would include datagrams counted
-         in ipv6IfStatsOutForwDatagrams if any such packets
-         met this (discretionary) discard criterion."
-     ::= { ipv6IfStatsEntry 12 }
-
- ipv6IfStatsOutFragOKs OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "The number of IPv6 datagrams that have been
-         successfully fragmented at this output interface."
-     ::= { ipv6IfStatsEntry 13 }
-
- ipv6IfStatsOutFragFails OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "The number of IPv6 datagrams that have been
-         discarded because they needed to be fragmented
-         at this output interface but could not be."
-     ::= { ipv6IfStatsEntry 14 }
-
- ipv6IfStatsOutFragCreates OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "The number of output datagram fragments that have
-         been generated as a result of fragmentation at
-         this output interface."
-     ::= { ipv6IfStatsEntry 15 }
-
- ipv6IfStatsReasmReqds OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "The number of IPv6 fragments received which needed
-         to be reassembled at this interface.  Note that this
-         counter is incremented at the interface to which
-         these fragments were addressed which might not
-         be necessarily the input interface for some of
-         the fragments."
-     ::= { ipv6IfStatsEntry 16 }
-
- ipv6IfStatsReasmOKs OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-       "The number of IPv6 datagrams successfully
-       reassembled.  Note that this counter is incremented
-       at the interface to which these datagrams were
-       addressed which might not be necessarily the input
-       interface for some of the fragments."
-     ::= { ipv6IfStatsEntry 17 }
-
- ipv6IfStatsReasmFails OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "The number of failures detected by the IPv6 re-
-        assembly algorithm (for whatever reason: timed
-        out, errors, etc.).  Note that this is not
-        necessarily a count of discarded IPv6 fragments
-        since some algorithms (notably the algorithm in
-        RFC 815) can lose track of the number of fragments
-        by combining them as they are received.
-        This counter is incremented at the interface to which
-        these fragments were addressed which might not be
-        necessarily the input interface for some of the
-        fragments."
-     ::= { ipv6IfStatsEntry 18 }
-
- ipv6IfStatsInMcastPkts OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS     current
-     DESCRIPTION
-        "The number of multicast packets received
-         by the interface"
-     ::= { ipv6IfStatsEntry 19 }
-
- ipv6IfStatsOutMcastPkts OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "The number of multicast packets transmitted
-         by the interface"
-     ::= { ipv6IfStatsEntry 20 }
-
- -- Address Prefix table
-
- -- The IPv6 Address Prefix table contains information on
- -- the entity's IPv6 Address Prefixes that are associated
- -- with IPv6 interfaces.
-
- ipv6AddrPrefixTable OBJECT-TYPE
-     SYNTAX  SEQUENCE OF Ipv6AddrPrefixEntry
-     MAX-ACCESS  not-accessible
-     STATUS      current
-     DESCRIPTION
-         "The list of IPv6 address prefixes of
-         IPv6 interfaces."
-     ::= { ipv6MIBObjects 7 }
-
- ipv6AddrPrefixEntry OBJECT-TYPE
-     SYNTAX  Ipv6AddrPrefixEntry
-     MAX-ACCESS  not-accessible
-     STATUS      current
-     DESCRIPTION
-         "An interface entry containing objects of
-         a particular IPv6 address prefix."
-     INDEX   { ipv6IfIndex,
-               ipv6AddrPrefix,
-               ipv6AddrPrefixLength }
-     ::= { ipv6AddrPrefixTable 1 }
-
- Ipv6AddrPrefixEntry ::= SEQUENCE {
-
-      ipv6AddrPrefix                     Ipv6AddressPrefix,
-      ipv6AddrPrefixLength               INTEGER (0..128),
-      ipv6AddrPrefixOnLinkFlag           TruthValue,
-      ipv6AddrPrefixAutonomousFlag       TruthValue,
-      ipv6AddrPrefixAdvPreferredLifetime Unsigned32,
-      ipv6AddrPrefixAdvValidLifetime     Unsigned32
-     }
-
- ipv6AddrPrefix OBJECT-TYPE
-     SYNTAX      Ipv6AddressPrefix
-     MAX-ACCESS  not-accessible
-     STATUS      current
-     DESCRIPTION
-       "The prefix associated with the this interface."
-     ::= { ipv6AddrPrefixEntry 1 }
-
- ipv6AddrPrefixLength OBJECT-TYPE
-     SYNTAX      INTEGER (0..128)
-     UNITS       "bits"
-     MAX-ACCESS  not-accessible
-     STATUS      current
-     DESCRIPTION
-       "The length of the prefix (in bits)."
-     ::= { ipv6AddrPrefixEntry 2 }
-
- ipv6AddrPrefixOnLinkFlag OBJECT-TYPE
-     SYNTAX      TruthValue
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-       "This object has the value 'true(1)', if this
-       prefix can be used  for on-link determination
-       and the value 'false(2)' otherwise."
-     ::= { ipv6AddrPrefixEntry 3 }
-
- ipv6AddrPrefixAutonomousFlag OBJECT-TYPE
-     SYNTAX      TruthValue
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-       "Autonomous address configuration flag. When
-       true(1), indicates that this prefix can be used
-       for autonomous address configuration (i.e. can
-       be used to form a local interface address).
-       If false(2), it is not used to autoconfigure
-       a local interface address."
-     ::= { ipv6AddrPrefixEntry 4 }
-
- ipv6AddrPrefixAdvPreferredLifetime OBJECT-TYPE
-     SYNTAX      Unsigned32
-     UNITS       "seconds"
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-        "It is the length of time in seconds that this
-        prefix will remain preferred, i.e. time until
-        deprecation.  A value of 4,294,967,295 represents
-        infinity.
-
-        The address generated from a deprecated prefix
-        should no longer be used as a source address in
-        new communications, but packets received on such
-        an interface are processed as expected."
-     ::= { ipv6AddrPrefixEntry 5 }
-
- ipv6AddrPrefixAdvValidLifetime OBJECT-TYPE
-     SYNTAX      Unsigned32
-     UNITS       "seconds"
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-       "It is the length of time in seconds that this
-       prefix will remain valid, i.e. time until
-       invalidation.  A value of 4,294,967,295 represents
-       infinity.
-
-       The address generated from an invalidated prefix
-       should not appear as the destination or source
-       address of a packet."
-     ::= { ipv6AddrPrefixEntry 6 }
-
- -- the IPv6 Address table
-
- -- The IPv6 address table contains this node's IPv6
- -- addressing information.
-
- ipv6AddrTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF Ipv6AddrEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-      "The table of addressing information relevant to
-      this node's interface addresses."
-    ::= { ipv6MIBObjects 8 }
-
- ipv6AddrEntry OBJECT-TYPE
-    SYNTAX      Ipv6AddrEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The addressing information for one of this
-        node's interface addresses."
-    INDEX   { ipv6IfIndex, ipv6AddrAddress }
-    ::= { ipv6AddrTable 1 }
-
- Ipv6AddrEntry ::=
-    SEQUENCE {
-         ipv6AddrAddress        Ipv6Address,
-         ipv6AddrPfxLength      INTEGER,
-         ipv6AddrType           INTEGER,
-         ipv6AddrAnycastFlag    TruthValue,
-         ipv6AddrStatus         INTEGER
-        }
-
- ipv6AddrAddress OBJECT-TYPE
-    SYNTAX      Ipv6Address
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-      "The IPv6 address to which this entry's addressing
-      information pertains."
-    ::= { ipv6AddrEntry 1 }
-
- ipv6AddrPfxLength OBJECT-TYPE
-    SYNTAX      INTEGER(0..128)
-    UNITS       "bits"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-      "The length of the prefix (in bits) associated with
-      the IPv6 address of this entry."
-    ::= { ipv6AddrEntry 2 }
-
- ipv6AddrType OBJECT-TYPE
-    SYNTAX      INTEGER {
-                        -- address has been formed
-                        -- using stateless
-         stateless(1),  -- autoconfiguration
-
-                        -- address has been acquired
-                        -- by stateful means
-                        -- (e.g. DHCPv6, manual
-         stateful(2),   -- configuration)
-
-                        -- type can not be determined
-         unknown(3)     -- for some reason.
-       }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-       "The type of address. Note that 'stateless(1)'
-       refers to an address that was statelessly
-       autoconfigured; 'stateful(2)' refers to a address
-       which was acquired by via a stateful protocol
-       (e.g. DHCPv6, manual configuration)."
-    ::= { ipv6AddrEntry 3 }
-
- ipv6AddrAnycastFlag OBJECT-TYPE
-     SYNTAX      TruthValue
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-       "This object has the value 'true(1)', if this
-       address is an anycast address and the value
-       'false(2)' otherwise."
-     ::= { ipv6AddrEntry 4 }
-
- ipv6AddrStatus OBJECT-TYPE
-    SYNTAX      INTEGER {
-             preferred(1),
-             deprecated(2),
-             invalid(3),
-             inaccessible(4),
-             unknown(5)   -- status can not be determined
-                          -- for some reason.
-            }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-      "Address status.  The preferred(1) state indicates
-      that this is a valid address that can appear as
-      the destination or source address of a packet.
-      The deprecated(2) state indicates that this is
-      a valid but deprecated address that should no longer
-      be used as a source address in new communications,
-      but packets addressed to such an address are
-      processed as expected. The invalid(3) state indicates
-      that this is not valid address which should not
-
-      appear as the destination or source address of
-      a packet. The inaccessible(4) state indicates that
-      the address is not accessible because the interface
-      to which this address is assigned is not operational."
-    ::= { ipv6AddrEntry 5 }
-
- -- IPv6 Routing objects
-
- ipv6RouteNumber OBJECT-TYPE
-     SYNTAX      Gauge32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-       "The number of current ipv6RouteTable entries.
-       This is primarily to avoid having to read
-       the table in order to determine this number."
-     ::= { ipv6MIBObjects 9 }
-
- ipv6DiscardedRoutes OBJECT-TYPE
-     SYNTAX      Counter32
-     MAX-ACCESS  read-only
-     STATUS      current
-     DESCRIPTION
-       "The number of routing entries which were chosen
-        to be discarded even though they are valid.  One
-        possible reason for discarding such an entry could
-        be to free-up buffer space for other routing
-        entries."
-     ::= { ipv6MIBObjects 10 }
-
- -- IPv6 Routing table
-
- ipv6RouteTable OBJECT-TYPE
-     SYNTAX     SEQUENCE OF Ipv6RouteEntry
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-       "IPv6 Routing table. This table contains
-       an entry for each valid IPv6 unicast route
-       that can be used for packet forwarding
-       determination."
-     ::= { ipv6MIBObjects 11 }
-
- ipv6RouteEntry OBJECT-TYPE
-     SYNTAX     Ipv6RouteEntry
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-             "A routing entry."
-     INDEX   { ipv6RouteDest,
-               ipv6RoutePfxLength,
-               ipv6RouteIndex }
-     ::= { ipv6RouteTable 1 }
-
- Ipv6RouteEntry ::= SEQUENCE {
-         ipv6RouteDest           Ipv6Address,
-         ipv6RoutePfxLength      INTEGER,
-         ipv6RouteIndex          Unsigned32,
-         ipv6RouteIfIndex        Ipv6IfIndexOrZero,
-         ipv6RouteNextHop        Ipv6Address,
-         ipv6RouteType           INTEGER,
-         ipv6RouteProtocol       INTEGER,
-         ipv6RoutePolicy         Integer32,
-         ipv6RouteAge            Unsigned32,
-         ipv6RouteNextHopRDI     Unsigned32,
-         ipv6RouteMetric         Unsigned32,
-         ipv6RouteWeight         Unsigned32,
-         ipv6RouteInfo           RowPointer,
-         ipv6RouteValid          TruthValue
-     }
-
- ipv6RouteDest OBJECT-TYPE
-     SYNTAX     Ipv6Address
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-       "The destination IPv6 address of this route.
-       This object may not take a Multicast address
-       value."
-     ::= { ipv6RouteEntry 1 }
-
- ipv6RoutePfxLength OBJECT-TYPE
-     SYNTAX     INTEGER(0..128)
-     UNITS      "bits"
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-       "Indicates the prefix length of the destination
-       address."
-     ::= { ipv6RouteEntry 2 }
-
- ipv6RouteIndex OBJECT-TYPE
-     SYNTAX     Unsigned32
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-       "The value which uniquely identifies the route
-       among the routes to the same network layer
-       destination.  The way this value is chosen is
-       implementation specific but it must be unique for
-       ipv6RouteDest/ipv6RoutePfxLength pair and remain
-       constant for the life of the route."
-     ::= { ipv6RouteEntry 3 }
-
- ipv6RouteIfIndex OBJECT-TYPE
-     SYNTAX     Ipv6IfIndexOrZero
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-       "The index value which uniquely identifies the local
-       interface through which the next hop of this
-       route should be reached.  The interface identified
-       by a particular value of this index is the same
-       interface as identified by the same value of
-       ipv6IfIndex.  For routes of the discard type this
-       value can be zero."
-     ::= { ipv6RouteEntry 4 }
-
- ipv6RouteNextHop OBJECT-TYPE
-     SYNTAX     Ipv6Address
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-       "On remote routes, the address of the next
-       system en route;  otherwise, ::0
-       ('00000000000000000000000000000000'H in ASN.1
-       string representation)."
-     ::= { ipv6RouteEntry 5 }
-
- ipv6RouteType OBJECT-TYPE
-     SYNTAX     INTEGER {
-        other(1),     -- none of the following
-
-                      -- an route indicating that
-                      -- packets to destinations
-                      -- matching this route are
-        discard(2),   -- to be discarded
-
-                      -- route to directly
-        local(3),     -- connected (sub-)network
-
-                      -- route to a remote
-
-        remote(4)     -- destination
-
-     }
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-        "The type of route. Note that 'local(3)' refers
-        to a route for which the next hop is the final
-        destination; 'remote(4)' refers to a route for
-        which  the  next  hop is not the final
-        destination; 'discard(2)' refers to a route
-        indicating that packets to destinations matching
-        this route are to be discarded (sometimes called
-        black-hole route)."
-     ::= { ipv6RouteEntry 6 }
-
- ipv6RouteProtocol OBJECT-TYPE
-     SYNTAX     INTEGER {
-       other(1),   -- none of the following
-
-                   -- non-protocol information,
-                   -- e.g., manually configured
-       local(2),   -- entries
-
-       netmgmt(3), -- static route
-
-                   -- obtained via Neighbor
-                   -- Discovery protocol,
-       ndisc(4),   -- e.g., result of Redirect
-
-                   -- the following are all
-                   -- dynamic routing protocols
-       rip(5),     -- RIPng
-       ospf(6),    -- Open Shortest Path First
-       bgp(7),     -- Border Gateway Protocol
-       idrp(8),    -- InterDomain Routing Protocol
-       igrp(9)     -- InterGateway Routing Protocol
-     }
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-       "The routing mechanism via which this route was
-       learned."
-     ::= { ipv6RouteEntry 7 }
-
- ipv6RoutePolicy OBJECT-TYPE
-     SYNTAX     Integer32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-      "The general set of conditions that would cause the
-      selection of one multipath route (set of next hops
-      for a given destination) is referred to as 'policy'.
-      Unless the mechanism indicated by ipv6RouteProtocol
-      specified otherwise, the policy specifier is the
-      8-bit Traffic Class field of the IPv6 packet header
-      that is zero extended at the left to a 32-bit value.
-
-      Protocols defining 'policy' otherwise must either
-      define a set of values which are valid for
-      this object or must implement an integer-
-      instanced  policy table for which this object's
-      value acts as an index."
-     ::= { ipv6RouteEntry 8 }
-
- ipv6RouteAge OBJECT-TYPE
-     SYNTAX     Unsigned32
-     UNITS      "seconds"
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-        "The number of seconds since this route was last
-        updated or otherwise determined to be correct.
-        Note that no semantics of `too old' can be implied
-        except through knowledge of the routing protocol
-        by which the route was learned."
-     ::= { ipv6RouteEntry 9 }
-
- ipv6RouteNextHopRDI OBJECT-TYPE
-     SYNTAX     Unsigned32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-        "The Routing Domain ID of the Next Hop.
-        The  semantics of this object are determined by
-        the routing-protocol specified in  the  route's
-        ipv6RouteProtocol value.   When  this object is
-        unknown or not relevant its value should be set
-        to zero."
-     ::= { ipv6RouteEntry 10 }
-
- ipv6RouteMetric OBJECT-TYPE
-     SYNTAX     Unsigned32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-        "The routing metric for this route. The
-        semantics of this metric are determined by the
-        routing protocol specified in the route's
-        ipv6RouteProtocol value.  When this is unknown
-        or not relevant to the protocol indicated by
-        ipv6RouteProtocol, the object value should be
-        set to its maximum value (4,294,967,295)."
-     ::= { ipv6RouteEntry 11 }
-
- ipv6RouteWeight OBJECT-TYPE
-     SYNTAX     Unsigned32
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-        "The system internal weight value for this route.
-        The semantics of this value are determined by
-        the implementation specific rules. Generally,
-        within routes with the same ipv6RoutePolicy value,
-        the lower the weight value the more preferred is
-        the route."
-     ::= { ipv6RouteEntry 12 }
-
- ipv6RouteInfo OBJECT-TYPE
-     SYNTAX     RowPointer
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-        "A reference to MIB definitions specific to the
-        particular routing protocol which is responsible
-        for this route, as determined by the  value
-        specified  in the route's ipv6RouteProto value.
-        If this information is not present,  its  value
-        should be set to the OBJECT ID { 0 0 },
-        which is a syntactically valid object  identifier,
-        and any implementation conforming to ASN.1
-        and the Basic Encoding Rules must  be  able  to
-        generate and recognize this value."
-     ::= { ipv6RouteEntry 13 }
-
- ipv6RouteValid OBJECT-TYPE
-     SYNTAX     TruthValue
-     MAX-ACCESS read-write
-     STATUS     current
-     DESCRIPTION
-        "Setting this object to the value 'false(2)' has
-        the effect of invalidating the corresponding entry
-        in the ipv6RouteTable object.  That is, it
-        effectively disassociates the destination
-
-        identified with said entry from the route
-        identified with said entry.  It is an
-        implementation-specific matter as to whether the
-        agent removes an invalidated entry from the table.
-        Accordingly, management stations must be prepared
-        to receive tabular information from agents that
-        corresponds to entries not currently in use.
-        Proper interpretation of such entries requires
-        examination of the relevant ipv6RouteValid
-        object."
-     DEFVAL  { true }
-     ::= { ipv6RouteEntry 14 }
-
- -- IPv6 Address Translation table
-
- ipv6NetToMediaTable OBJECT-TYPE
-     SYNTAX      SEQUENCE OF Ipv6NetToMediaEntry
-     MAX-ACCESS  not-accessible
-     STATUS      current
-     DESCRIPTION
-       "The IPv6 Address Translation table used for
-       mapping from IPv6 addresses to physical addresses.
-
-       The IPv6 address translation table contain the
-       Ipv6Address to `physical' address equivalencies.
-       Some interfaces do not use translation tables
-       for determining address equivalencies; if all
-       interfaces are of this type, then the Address
-       Translation table is empty, i.e., has zero
-       entries."
-     ::= { ipv6MIBObjects 12 }
-
- ipv6NetToMediaEntry OBJECT-TYPE
-     SYNTAX     Ipv6NetToMediaEntry
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-       "Each entry contains one IPv6 address to `physical'
-       address equivalence."
-     INDEX   { ipv6IfIndex,
-               ipv6NetToMediaNetAddress }
-     ::= { ipv6NetToMediaTable 1 }
-
- Ipv6NetToMediaEntry ::= SEQUENCE {
-         ipv6NetToMediaNetAddress
-             Ipv6Address,
-         ipv6NetToMediaPhysAddress
-
-             PhysAddress,
-         ipv6NetToMediaType
-             INTEGER,
-         ipv6IfNetToMediaState
-             INTEGER,
-         ipv6IfNetToMediaLastUpdated
-             TimeStamp,
-         ipv6NetToMediaValid
-             TruthValue
-     }
-
- ipv6NetToMediaNetAddress OBJECT-TYPE
-     SYNTAX     Ipv6Address
-     MAX-ACCESS not-accessible
-     STATUS     current
-     DESCRIPTION
-        "The IPv6 Address corresponding to
-        the media-dependent `physical' address."
-     ::= { ipv6NetToMediaEntry 1 }
-
- ipv6NetToMediaPhysAddress OBJECT-TYPE
-     SYNTAX     PhysAddress
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-       "The media-dependent `physical' address."
-     ::= { ipv6NetToMediaEntry 2 }
-
- ipv6NetToMediaType OBJECT-TYPE
-     SYNTAX     INTEGER {
-                 other(1),    -- none of the following
-                 dynamic(2),  -- dynamically resolved
-                 static(3),   -- statically configured
-                 local(4)     -- local interface
-                }
-     MAX-ACCESS read-only
-     STATUS     current
-     DESCRIPTION
-             "The type of the mapping. The 'dynamic(2)' type
-             indicates that the IPv6 address to physical
-             addresses mapping has been dynamically
-             resolved using the IPv6 Neighbor Discovery
-             protocol. The static(3)' types indicates that
-             the mapping has been statically configured.
-             The local(4) indicates that the mapping is
-             provided for an entity's own interface address."
-     ::= { ipv6NetToMediaEntry 3 }
-
-ipv6IfNetToMediaState OBJECT-TYPE
-    SYNTAX      INTEGER {
-             reachable(1), -- confirmed reachability
-
-             stale(2),     -- unconfirmed reachability
-
-             delay(3),     -- waiting for reachability
-                           -- confirmation before entering
-                           -- the probe state
-
-             probe(4),     -- actively probing
-
-             invalid(5),   -- an invalidated mapping
-
-             unknown(6)    -- state can not be determined
-                           -- for some reason.
-            }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The Neighbor Unreachability Detection [8] state
-        for the interface when the address mapping in
-        this entry is used."
-    ::= { ipv6NetToMediaEntry 4 }
-
-ipv6IfNetToMediaLastUpdated OBJECT-TYPE
-    SYNTAX      TimeStamp
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The value of sysUpTime at the time this entry
-        was last updated.  If this entry was updated prior
-        to the last re-initialization of the local network
-        management subsystem, then this object contains
-        a zero value."
-    ::= { ipv6NetToMediaEntry 5 }
-
- ipv6NetToMediaValid OBJECT-TYPE
-     SYNTAX     TruthValue
-     MAX-ACCESS read-write
-     STATUS     current
-     DESCRIPTION
-      "Setting this object to the value 'false(2)' has
-      the effect of invalidating the corresponding entry
-      in the ipv6NetToMediaTable.  That is, it effectively
-      disassociates the interface identified with said
-      entry from the mapping identified with said entry.
-      It is an implementation-specific matter as to
-
-      whether the agent removes an invalidated entry
-      from the table.  Accordingly, management stations
-      must be prepared to receive tabular information
-      from agents that corresponds to entries not
-      currently in use.  Proper interpretation of such
-      entries requires examination of the relevant
-      ipv6NetToMediaValid object."
-     DEFVAL  { true }
-     ::= { ipv6NetToMediaEntry 6 }
-
--- definition of IPv6-related notifications.
--- Note that we need ipv6NotificationPrefix with the 0
--- sub-identifier to make this MIB to translate to
--- an SNMPv1 format in a reversible way. For example
--- it is needed for proxies that convert SNMPv1 traps
--- to SNMPv2 notifications without MIB knowledge.
-
-ipv6Notifications      OBJECT IDENTIFIER
-     ::= { ipv6MIB 2 }
-ipv6NotificationPrefix OBJECT IDENTIFIER
-     ::= { ipv6Notifications 0 }
-
-ipv6IfStateChange NOTIFICATION-TYPE
-     OBJECTS {
-              ipv6IfDescr,
-              ipv6IfOperStatus -- the new state of the If.
-             }
-     STATUS             current
-     DESCRIPTION
-        "An ipv6IfStateChange notification signifies
-        that there has been a change in the state of
-        an ipv6 interface.  This notification should
-        be generated when the interface's operational
-        status transitions to or from the up(1) state."
-     ::= { ipv6NotificationPrefix 1 }
-
--- conformance information
-
-ipv6Conformance OBJECT IDENTIFIER ::= { ipv6MIB 3 }
-
-ipv6Compliances OBJECT IDENTIFIER ::= { ipv6Conformance 1 }
-ipv6Groups      OBJECT IDENTIFIER ::= { ipv6Conformance 2 }
-
--- compliance statements
-
-ipv6Compliance MODULE-COMPLIANCE
-    STATUS  current
-    DESCRIPTION
-      "The compliance statement for SNMPv2 entities which
-      implement ipv6 MIB."
-    MODULE  -- this module
-        MANDATORY-GROUPS { ipv6GeneralGroup,
-                           ipv6NotificationGroup }
-          OBJECT    ipv6Forwarding
-            MIN-ACCESS  read-only
-            DESCRIPTION
-               "An agent is not required to provide write
-                access to this object"
-          OBJECT    ipv6DefaultHopLimit
-            MIN-ACCESS  read-only
-            DESCRIPTION
-               "An agent is not required to provide write
-                access to this object"
-          OBJECT    ipv6IfDescr
-            MIN-ACCESS  read-only
-            DESCRIPTION
-               "An agent is not required to provide write
-                access to this object"
-          OBJECT    ipv6IfIdentifier
-            MIN-ACCESS  read-only
-            DESCRIPTION
-               "An agent is not required to provide write
-                access to this object"
-          OBJECT    ipv6IfIdentifierLength
-            MIN-ACCESS  read-only
-            DESCRIPTION
-               "An agent is not required to provide write
-                access to this object"
-
-          OBJECT    ipv6IfAdminStatus
-            MIN-ACCESS  read-only
-            DESCRIPTION
-               "An agent is not required to provide write
-                access to this object"
-          OBJECT    ipv6RouteValid
-            MIN-ACCESS  read-only
-            DESCRIPTION
-               "An agent is not required to provide write
-                access to this object"
-          OBJECT    ipv6NetToMediaValid
-            MIN-ACCESS  read-only
-            DESCRIPTION
-               "An agent is not required to provide write
-
-                access to this object"
-    ::= { ipv6Compliances 1 }
-
-ipv6GeneralGroup OBJECT-GROUP
-    OBJECTS { ipv6Forwarding,
-              ipv6DefaultHopLimit,
-              ipv6Interfaces,
-              ipv6IfTableLastChange,
-              ipv6IfDescr,
-              ipv6IfLowerLayer,
-              ipv6IfEffectiveMtu,
-              ipv6IfReasmMaxSize,
-              ipv6IfIdentifier,
-              ipv6IfIdentifierLength,
-              ipv6IfPhysicalAddress,
-              ipv6IfAdminStatus,
-              ipv6IfOperStatus,
-              ipv6IfLastChange,
-              ipv6IfStatsInReceives,
-              ipv6IfStatsInHdrErrors,
-              ipv6IfStatsInTooBigErrors,
-              ipv6IfStatsInNoRoutes,
-              ipv6IfStatsInAddrErrors,
-              ipv6IfStatsInUnknownProtos,
-              ipv6IfStatsInTruncatedPkts,
-              ipv6IfStatsInDiscards,
-              ipv6IfStatsInDelivers,
-              ipv6IfStatsOutForwDatagrams,
-              ipv6IfStatsOutRequests,
-              ipv6IfStatsOutDiscards,
-              ipv6IfStatsOutFragOKs,
-              ipv6IfStatsOutFragFails,
-              ipv6IfStatsOutFragCreates,
-              ipv6IfStatsReasmReqds,
-              ipv6IfStatsReasmOKs,
-              ipv6IfStatsReasmFails,
-              ipv6IfStatsInMcastPkts,
-              ipv6IfStatsOutMcastPkts,
-              ipv6AddrPrefixOnLinkFlag,
-              ipv6AddrPrefixAutonomousFlag,
-              ipv6AddrPrefixAdvPreferredLifetime,
-              ipv6AddrPrefixAdvValidLifetime,
-              ipv6AddrPfxLength,
-              ipv6AddrType,
-              ipv6AddrAnycastFlag,
-              ipv6AddrStatus,
-              ipv6RouteNumber,
-              ipv6DiscardedRoutes,
-              ipv6RouteIfIndex,
-              ipv6RouteNextHop,
-              ipv6RouteType,
-              ipv6RouteProtocol,
-              ipv6RoutePolicy,
-              ipv6RouteAge,
-              ipv6RouteNextHopRDI,
-              ipv6RouteMetric,
-              ipv6RouteWeight,
-              ipv6RouteInfo,
-              ipv6RouteValid,
-              ipv6NetToMediaPhysAddress,
-              ipv6NetToMediaType,
-              ipv6IfNetToMediaState,
-              ipv6IfNetToMediaLastUpdated,
-              ipv6NetToMediaValid }
-    STATUS    current
-    DESCRIPTION
-         "The IPv6 group of objects providing for basic
-          management of IPv6 entities."
-    ::= { ipv6Groups 1 }
-
-ipv6NotificationGroup NOTIFICATION-GROUP
-    NOTIFICATIONS { ipv6IfStateChange }
-    STATUS    current
-    DESCRIPTION
-         "The notification that an IPv6 entity is required
-          to implement."
-    ::= { ipv6Groups 2 }
-
- END
diff --git a/mibs/IPV6-TC.txt b/mibs/IPV6-TC.txt
deleted file mode 100644
index 05e1e7d..0000000
--- a/mibs/IPV6-TC.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-IPV6-TC DEFINITIONS ::= BEGIN
-
-IMPORTS
-     Integer32                FROM SNMPv2-SMI
-     TEXTUAL-CONVENTION       FROM SNMPv2-TC;
-
--- definition of textual conventions
-Ipv6Address ::= TEXTUAL-CONVENTION
-     DISPLAY-HINT "2x:"
-     STATUS       current
-     DESCRIPTION
-       "This data type is used to model IPv6 addresses.
-        This is a binary string of 16 octets in network
-        byte-order."
-     SYNTAX       OCTET STRING (SIZE (16))
-
-Ipv6AddressPrefix ::= TEXTUAL-CONVENTION
-     DISPLAY-HINT "2x:"
-     STATUS       current
-     DESCRIPTION
-       "This data type is used to model IPv6 address
-       prefixes. This is a binary string of up to 16
-       octets in network byte-order."
-     SYNTAX       OCTET STRING (SIZE (0..16))
-
-Ipv6AddressIfIdentifier ::= TEXTUAL-CONVENTION
-     DISPLAY-HINT "2x:"
-     STATUS       current
-     DESCRIPTION
-       "This data type is used to model IPv6 address
-       interface identifiers. This is a binary string
-        of up to 8 octets in network byte-order."
-     SYNTAX      OCTET STRING (SIZE (0..8))
-
-Ipv6IfIndex ::= TEXTUAL-CONVENTION
-     DISPLAY-HINT "d"
-     STATUS       current
-     DESCRIPTION
-       "A unique value, greater than zero for each
-       internetwork-layer interface in the managed
-       system. It is recommended that values are assigned
-       contiguously starting from 1. The value for each
-       internetwork-layer interface must remain constant
-       at least from one re-initialization of the entity's
-       network management system to the next
-
-       re-initialization."
-     SYNTAX       Integer32 (1..2147483647)
-
-Ipv6IfIndexOrZero ::= TEXTUAL-CONVENTION
-     DISPLAY-HINT "d"
-     STATUS       current
-     DESCRIPTION
-         "This textual convention is an extension of the
-         Ipv6IfIndex convention.  The latter defines
-         a greater than zero value used to identify an IPv6
-         interface in the managed system.  This extension
-         permits the additional value of zero.  The value
-         zero is object-specific and must therefore be
-         defined as part of the description of any object
-         which uses this syntax.  Examples of the usage of
-         zero might include situations where interface was
-         unknown, or when none or all interfaces need to be
-         referenced."
-     SYNTAX       Integer32 (0..2147483647)
-
-END
diff --git a/mibs/IPV6-TCP-MIB.txt b/mibs/IPV6-TCP-MIB.txt
deleted file mode 100644
index a2fb857..0000000
--- a/mibs/IPV6-TCP-MIB.txt
+++ /dev/null
@@ -1,211 +0,0 @@
-IPV6-TCP-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-   MODULE-COMPLIANCE, OBJECT-GROUP      FROM SNMPv2-CONF
-   MODULE-IDENTITY, OBJECT-TYPE,
-   mib-2, experimental                  FROM SNMPv2-SMI
-   Ipv6Address, Ipv6IfIndexOrZero       FROM IPV6-TC;
-
-ipv6TcpMIB MODULE-IDENTITY
-   LAST-UPDATED "9801290000Z"
-   ORGANIZATION "IETF IPv6 MIB Working Group"
-   CONTACT-INFO
-        "       Mike Daniele
-
-                Postal: Compaq Computer Corporation
-                        110 Spitbrook Rd
-                        Nashua, NH 03062.
-                        US
-
-                Phone:  +1 603 884 1423
-                Email:  daniele at zk3.dec.com"
-   DESCRIPTION
-        "The MIB module for entities implementing TCP over IPv6."
-   ::= { experimental 86 }
-
--- objects specific to TCP for IPv6
-
-tcp      OBJECT IDENTIFIER ::= { mib-2 6 }
-
--- the TCP over IPv6 Connection table
-
--- This connection table contains information about this
--- entity's existing TCP connections between IPv6 endpoints.
--- Only connections between IPv6 addresses are contained in
--- this table.  This entity's connections between IPv4
--- endpoints are contained in tcpConnTable.
-
-ipv6TcpConnTable OBJECT-TYPE
-   SYNTAX      SEQUENCE OF Ipv6TcpConnEntry
-   MAX-ACCESS  not-accessible
-   STATUS      current
-   DESCRIPTION
-        "A table containing TCP connection-specific information,
-         for only those connections whose endpoints are IPv6 addresses."
-   ::= { tcp 16 }
-
-ipv6TcpConnEntry OBJECT-TYPE
-   SYNTAX      Ipv6TcpConnEntry
-   MAX-ACCESS  not-accessible
-   STATUS      current
-   DESCRIPTION
-        "A conceptual row of the ipv6TcpConnTable containing
-         information about a particular current TCP connection.
-         Each row of this table is transient, in that it ceases to
-         exist when (or soon after) the connection makes the transition
-         to the CLOSED state.
-
-         Note that conceptual rows in this table require an additional
-         index object compared to tcpConnTable, since IPv6 addresses
-         are not guaranteed to be unique on the managed node."
-   INDEX   { ipv6TcpConnLocalAddress,
-             ipv6TcpConnLocalPort,
-             ipv6TcpConnRemAddress,
-             ipv6TcpConnRemPort,
-             ipv6TcpConnIfIndex }
-   ::= { ipv6TcpConnTable 1 }
-
-Ipv6TcpConnEntry ::=
-   SEQUENCE { ipv6TcpConnLocalAddress    Ipv6Address,
-              ipv6TcpConnLocalPort       INTEGER (0..65535),
-              ipv6TcpConnRemAddress      Ipv6Address,
-              ipv6TcpConnRemPort         INTEGER (0..65535),
-              ipv6TcpConnIfIndex         Ipv6IfIndexOrZero,
-              ipv6TcpConnState           INTEGER }
-
-ipv6TcpConnLocalAddress OBJECT-TYPE
-   SYNTAX     Ipv6Address
-   MAX-ACCESS not-accessible
-   STATUS     current
-   DESCRIPTION
-        "The local IPv6 address for this TCP connection. In
-         the case of a connection in the listen state which
-         is willing to accept connections for any IPv6
-         address associated with the managed node, the value
-         ::0 is used."
-   ::= { ipv6TcpConnEntry 1 }
-
-ipv6TcpConnLocalPort OBJECT-TYPE
-   SYNTAX     INTEGER (0..65535)
-   MAX-ACCESS not-accessible
-   STATUS     current
-   DESCRIPTION
-        "The local port number for this TCP connection."
-   ::= { ipv6TcpConnEntry 2 }
-
-ipv6TcpConnRemAddress OBJECT-TYPE
-   SYNTAX     Ipv6Address
-   MAX-ACCESS not-accessible
-   STATUS     current
-   DESCRIPTION
-        "The remote IPv6 address for this TCP connection."
-   ::= { ipv6TcpConnEntry 3 }
-
-ipv6TcpConnRemPort OBJECT-TYPE
-   SYNTAX     INTEGER (0..65535)
-   MAX-ACCESS not-accessible
-   STATUS     current
-   DESCRIPTION
-        "The remote port number for this TCP connection."
-   ::= { ipv6TcpConnEntry 4 }
-
-ipv6TcpConnIfIndex OBJECT-TYPE
-   SYNTAX     Ipv6IfIndexOrZero
-   MAX-ACCESS not-accessible
-   STATUS     current
-   DESCRIPTION
-        "An index object used to disambiguate conceptual rows in
-         the table, since the connection 4-tuple may not be unique.
-
-         If the connection's remote address (ipv6TcpConnRemAddress)
-         is a link-local address and the connection's local address
-
-         (ipv6TcpConnLocalAddress) is not a link-local address, this
-         object identifies a local interface on the same link as
-         the connection's remote link-local address.
-
-         Otherwise, this object identifies the local interface that
-         is associated with the ipv6TcpConnLocalAddress for this
-         TCP connection.  If such a local interface cannot be determined,
-         this object should take on the value 0.  (A possible example
-         of this would be if the value of ipv6TcpConnLocalAddress is ::0.)
-
-         The interface identified by a particular non-0 value of this
-         index is the same interface as identified by the same value
-         of ipv6IfIndex.
-
-         The value of this object must remain constant during the life
-         of the TCP connection."
-   ::= { ipv6TcpConnEntry 5 }
-
-ipv6TcpConnState OBJECT-TYPE
-   SYNTAX     INTEGER {
-        closed(1),
-        listen(2),
-        synSent(3),
-        synReceived(4),
-        established(5),
-        finWait1(6),
-        finWait2(7),
-        closeWait(8),
-        lastAck(9),
-        closing(10),
-        timeWait(11),
-        deleteTCB(12) }
-   MAX-ACCESS read-write
-   STATUS     current
-   DESCRIPTION
-        "The state of this TCP connection.
-
-         The only value which may be set by a management station is
-         deleteTCB(12).  Accordingly, it is appropriate for an agent
-         to return an error response (`badValue' for SNMPv1, 'wrongValue'
-         for SNMPv2) if a management station attempts to set this
-         object to any other value.
-
-         If a management station sets this object to the value
-         deleteTCB(12), then this has the effect of deleting the TCB
-         (as defined in RFC 793) of the corresponding connection on
-         the managed node, resulting in immediate termination of the
-         connection.
-
-         As an implementation-specific option, a RST segment may be
-         sent from the managed node to the other TCP endpoint (note
-         however that RST segments are not sent reliably)."
-   ::= { ipv6TcpConnEntry 6 }
-
---
--- conformance information
---
-
-ipv6TcpConformance OBJECT IDENTIFIER ::= { ipv6TcpMIB 2 }
-
-ipv6TcpCompliances OBJECT IDENTIFIER ::= { ipv6TcpConformance 1 }
-ipv6TcpGroups      OBJECT IDENTIFIER ::= { ipv6TcpConformance 2 }
-
--- compliance statements
-
-ipv6TcpCompliance MODULE-COMPLIANCE
-   STATUS  current
-   DESCRIPTION
-        "The compliance statement for SNMPv2 entities which
-         implement TCP over IPv6."
-   MODULE  -- this module
-   MANDATORY-GROUPS { ipv6TcpGroup }
-   ::= { ipv6TcpCompliances 1 }
-
-ipv6TcpGroup OBJECT-GROUP
-   OBJECTS   { -- these are defined in this module
-               -- ipv6TcpConnLocalAddress (not-accessible)
-               -- ipv6TcpConnLocalPort (not-accessible)
-               -- ipv6TcpConnRemAddress (not-accessible)
-               -- ipv6TcpConnRemPort (not-accessible)
-               -- ipv6TcpConnIfIndex (not-accessible)
-               ipv6TcpConnState }
-   STATUS    current
-   DESCRIPTION
-        "The group of objects providing management of
-         TCP over IPv6."
-   ::= { ipv6TcpGroups 1 }
-
-END
diff --git a/mibs/IPV6-UDP-MIB.txt b/mibs/IPV6-UDP-MIB.txt
deleted file mode 100644
index 6c929eb..0000000
--- a/mibs/IPV6-UDP-MIB.txt
+++ /dev/null
@@ -1,141 +0,0 @@
-IPV6-UDP-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-   MODULE-COMPLIANCE, OBJECT-GROUP      FROM SNMPv2-CONF
-   MODULE-IDENTITY, OBJECT-TYPE,
-   mib-2, experimental                  FROM SNMPv2-SMI
-   Ipv6Address, Ipv6IfIndexOrZero       FROM IPV6-TC;
-
-ipv6UdpMIB MODULE-IDENTITY
-   LAST-UPDATED "9801290000Z"
-   ORGANIZATION "IETF IPv6 MIB Working Group"
-   CONTACT-INFO
-        "               Mike Daniele
-
-                Postal: Compaq Computer Corporation
-                        110 Spitbrook Rd
-                        Nashua, NH 03062.
-                        US
-
-                Phone:  +1 603 884 1423
-                Email:  daniele at zk3.dec.com"
-   DESCRIPTION
-        "The MIB module for entities implementing UDP over IPv6."
-   ::= { experimental 87 }
-
--- objects specific to UDP for IPv6
-
-udp      OBJECT IDENTIFIER ::= { mib-2 7 }
-
--- the UDP over IPv6 Listener table
-
--- This table contains information about this entity's
--- UDP/IPv6 endpoints.  Only endpoints utilizing IPv6 addresses
--- are contained in this table.  This entity's UDP/IPv4 endpoints
--- are contained in udpTable.
-
-ipv6UdpTable OBJECT-TYPE
-   SYNTAX      SEQUENCE OF Ipv6UdpEntry
-   MAX-ACCESS  not-accessible
-   STATUS      current
-   DESCRIPTION
-        "A table containing UDP listener information for
-         UDP/IPv6 endpoints."
-   ::= { udp 6 }
-
-ipv6UdpEntry OBJECT-TYPE
-   SYNTAX      Ipv6UdpEntry
-   MAX-ACCESS  not-accessible
-   STATUS      current
-   DESCRIPTION
-        "Information about a particular current UDP listener.
-
-         Note that conceptual rows in this table require an
-         additional index object compared to udpTable, since
-         IPv6 addresses are not guaranteed to be unique on the
-         managed node."
-   INDEX   { ipv6UdpLocalAddress,
-             ipv6UdpLocalPort,
-             ipv6UdpIfIndex }
-   ::= { ipv6UdpTable 1 }
-
-Ipv6UdpEntry ::= SEQUENCE {
-   ipv6UdpLocalAddress    Ipv6Address,
-   ipv6UdpLocalPort       INTEGER (0..65535),
-   ipv6UdpIfIndex         Ipv6IfIndexOrZero }
-
-ipv6UdpLocalAddress OBJECT-TYPE
-   SYNTAX       Ipv6Address
-   MAX-ACCESS   not-accessible
-   STATUS       current
-   DESCRIPTION
-        "The local IPv6 address for this UDP listener.
-         In the case of a UDP listener which is willing
-         to accept datagrams for any IPv6 address
-         associated with the managed node, the value ::0
-         is used."
-   ::= { ipv6UdpEntry 1 }
-
-ipv6UdpLocalPort OBJECT-TYPE
-    SYNTAX     INTEGER (0..65535)
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "The local port number for this UDP listener."
-    ::= { ipv6UdpEntry 2 }
-
-ipv6UdpIfIndex OBJECT-TYPE
-   SYNTAX     Ipv6IfIndexOrZero
-   MAX-ACCESS   read-only
-   STATUS     current
-   DESCRIPTION
-        "An index object used to disambiguate conceptual rows in
-         the table, since the ipv6UdpLocalAddress/ipv6UdpLocalPort
-         pair may not be unique.
-
-         This object identifies the local interface that is
-         associated with ipv6UdpLocalAddress for this UDP listener.
-         If such a local interface cannot be determined, this object
-         should take on the value 0.  (A possible example of this
-         would be if the value of ipv6UdpLocalAddress is ::0.)
-
-         The interface identified by a particular non-0 value of
-         this index is the same interface as identified by the same
-         value of ipv6IfIndex.
-
-         The value of this object must remain constant during
-         the life of this UDP endpoint."
-   ::= { ipv6UdpEntry 3 }
-
---
--- conformance information
---
-
-ipv6UdpConformance OBJECT IDENTIFIER ::= { ipv6UdpMIB 2 }
-
-ipv6UdpCompliances OBJECT IDENTIFIER ::= { ipv6UdpConformance 1 }
-ipv6UdpGroups      OBJECT IDENTIFIER ::= { ipv6UdpConformance 2 }
-
--- compliance statements
-
-ipv6UdpCompliance MODULE-COMPLIANCE
-   STATUS  current
-   DESCRIPTION
-        "The compliance statement for SNMPv2 entities which
-         implement UDP over IPv6."
-   MODULE  -- this module
-   MANDATORY-GROUPS { ipv6UdpGroup }
-   ::= { ipv6UdpCompliances 1 }
-
-ipv6UdpGroup OBJECT-GROUP
-   OBJECTS   { -- these are defined in this module
-               -- ipv6UdpLocalAddress (not-accessible)
-               -- ipv6UdpLocalPort (not-accessible)
-               ipv6UdpIfIndex }
-   STATUS    current
-   DESCRIPTION
-        "The group of objects providing management of
-         UDP over IPv6."
-   ::= { ipv6UdpGroups 1 }
-
-END
diff --git a/mibs/MTA-MIB.txt b/mibs/MTA-MIB.txt
deleted file mode 100644
index 29618ad..0000000
--- a/mibs/MTA-MIB.txt
+++ /dev/null
@@ -1,1226 +0,0 @@
-MTA-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-   OBJECT-TYPE, Counter32, Gauge32, MODULE-IDENTITY, mib-2
-     FROM SNMPv2-SMI
-   TimeInterval
-     FROM SNMPv2-TC
-   MODULE-COMPLIANCE, OBJECT-GROUP
-     FROM SNMPv2-CONF
-   SnmpAdminString
-       FROM SNMP-FRAMEWORK-MIB
-   applIndex, URLString
-     FROM NETWORK-SERVICES-MIB;
-
-mta MODULE-IDENTITY
-   LAST-UPDATED "200003030000Z"
-   ORGANIZATION "IETF Mail and Directory Management Working Group"
-   CONTACT-INFO
-     "        Ned Freed
-
-      Postal: Innosoft International, Inc.
-              1050 Lakes Drive
-              West Covina, CA 91790
-              US
-
-      Tel: +1 626 919 3600
-      Fax: +1 626 919 3614
-
-      E-Mail: ned.freed at innosoft.com"
-   DESCRIPTION
-     "The MIB module describing Message Transfer Agents (MTAs)"
-   REVISION "200003030000Z"
-   DESCRIPTION
-     "This revision, published in RFC 2789, changes a number of
-      DisplayStrings to SnmpAdminStrings. Note that this change
-
-      is not strictly supported by SMIv2.  However, the alternative
-      of deprecating the old objects and defining new objects
-      would have a more adverse impact on backward compatibility
-      and interoperability, given the particular semantics of
-      these objects.  The defining reference for distinguished
-      names has also been updated from RFC 1779 to RFC 2253."
-   REVISION "199905120000Z"
-   DESCRIPTION
-     "This revision fixes a number of technical problems found in
-      previous versions: The conformance groups for different
-      versions of this MIB have been corrected, the recommendation
-      that an empty string be returned if the last operation was
-      successful has been removed from
-      mtaGroupInboundRejectionReason and
-      mtaGroupOutboundConnectFailureReason as it conflicts
-      with the stated purpose of these variables, and the
-      required mtaStatusCode entry has been added to
-      MtaGroupErrorEntry.  It should be noted that this last
-      change in no way affects the bits on the wire."
-   REVISION "199708170000Z"
-   DESCRIPTION
-     "This revision, published in RFC 2249, adds the
-      mtaGroupDescription and mtaGroupURL fields, conversion
-      operation counters, a group hierarchy description mechanism,
-      counters for specific errors, oldest message IDs, per-MTA
-      and per-group loop counters, and a new table for tracking
-      any errors an MTA encounters."
-   REVISION "199311280000Z"
-   DESCRIPTION
-     "The original version of this MIB was published in RFC 1566"
-   ::= {mib-2 28}
-
-mtaTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF MtaEntry
-   MAX-ACCESS not-accessible
-   STATUS current
-   DESCRIPTION
-     "The table holding information specific to an MTA."
-   ::= {mta 1}
-
-mtaEntry OBJECT-TYPE
-   SYNTAX MtaEntry
-   MAX-ACCESS not-accessible
-   STATUS current
-   DESCRIPTION
-     "The entry associated with each MTA."
-   INDEX {applIndex}
-   ::= {mtaTable 1}
-
-MtaEntry ::= SEQUENCE {
-   mtaReceivedMessages
-     Counter32,
-   mtaStoredMessages
-     Gauge32,
-   mtaTransmittedMessages
-     Counter32,
-   mtaReceivedVolume
-     Counter32,
-   mtaStoredVolume
-     Gauge32,
-   mtaTransmittedVolume
-     Counter32,
-   mtaReceivedRecipients
-     Counter32,
-   mtaStoredRecipients
-     Gauge32,
-   mtaTransmittedRecipients
-     Counter32,
-   mtaSuccessfulConvertedMessages
-     Counter32,
-   mtaFailedConvertedMessages
-     Counter32,
-   mtaLoopsDetected
-     Counter32
-}
-
-mtaReceivedMessages OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The number of messages received since MTA initialization.
-      This includes messages transmitted to this MTA from other
-      MTAs as well as messages that have been submitted to the
-      MTA directly by end-users or applications."
-   ::= {mtaEntry 1}
-
-mtaStoredMessages OBJECT-TYPE
-   SYNTAX Gauge32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total number of messages currently stored in the MTA.
-      This includes messages that are awaiting transmission to
-      some other MTA or are waiting for delivery to an end-user
-      or application."
-   ::= {mtaEntry 2}
-
-mtaTransmittedMessages OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The number of messages transmitted since MTA initialization.
-      This includes messages that were transmitted to some other
-      MTA or are waiting for delivery to an end-user or
-      application."
-   ::= {mtaEntry 3}
-
-mtaReceivedVolume OBJECT-TYPE
-   SYNTAX Counter32
-   UNITS "K-octets"
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total volume of messages received since MTA
-      initialization, measured in kilo-octets.  This volume should
-      include all transferred data that is logically above the mail
-      transport protocol level.  For example, an SMTP-based MTA
-      should use the number of kilo-octets in the message header
-      and body, while an X.400-based MTA should use the number of
-      kilo-octets of P2 data.  This includes messages transmitted
-      to this MTA from other MTAs as well as messages that have
-      been submitted to the MTA directly by end-users or
-      applications."
-   ::= {mtaEntry 4}
-
-mtaStoredVolume OBJECT-TYPE
-   SYNTAX Gauge32
-   UNITS "K-octets"
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total volume of messages currently stored in the MTA,
-      measured in kilo-octets.  This volume should include all
-      stored data that is logically above the mail transport
-      protocol level.  For example, an SMTP-based MTA should
-      use the number of kilo-octets in the message header and
-      body, while an X.400-based MTA would use the number of
-      kilo-octets of P2 data.  This includes messages that are
-      awaiting transmission to some other MTA or are waiting
-      for delivery to an end-user or application."
-   ::= {mtaEntry 5}
-
-mtaTransmittedVolume OBJECT-TYPE
-   SYNTAX Counter32
-   UNITS "K-octets"
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total volume of messages transmitted since MTA
-      initialization, measured in kilo-octets.  This volume should
-      include all transferred data that is logically above the mail
-      transport protocol level.  For example, an SMTP-based MTA
-      should use the number of kilo-octets in the message header
-      and body, while an X.400-based MTA should use the number of
-      kilo-octets of P2 data.  This includes messages that were
-      transmitted to some other MTA or are waiting for delivery
-      to an end-user or application."
-   ::= {mtaEntry 6}
-
-mtaReceivedRecipients OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total number of recipients specified in all messages
-      received since MTA initialization.  Recipients this MTA
-      has no responsibility for, i.e. inactive envelope
-      recipients or ones referred to in message headers,
-      should not be counted even if information about such
-      recipients is available.  This includes messages
-      transmitted to this MTA from other MTAs as well as
-      messages that have been submitted to the MTA directly
-      by end-users or applications."
-   ::= {mtaEntry 7}
-
-mtaStoredRecipients OBJECT-TYPE
-   SYNTAX Gauge32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total number of recipients specified in all messages
-      currently stored in the MTA.  Recipients this MTA has no
-      responsibility for, i.e. inactive envelope recipients or
-      ones referred to in message headers, should not be
-      counted.  This includes messages that are awaiting
-      transmission to some other MTA or are waiting for
-      delivery to an end-user or application."
-   ::= {mtaEntry 8}
-
-mtaTransmittedRecipients OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total number of recipients specified in all messages
-      transmitted since MTA initialization.  Recipients this
-      MTA had no responsibility for, i.e. inactive envelope
-      recipients or ones referred to in message headers,
-      should not be counted.  This includes messages that were
-      transmitted to some other MTA or are waiting for
-      delivery to an end-user or application."
-   ::= {mtaEntry 9}
-
-mtaSuccessfulConvertedMessages OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The number of messages that have been successfully
-      converted from one form to another since MTA
-      initialization."
-   ::= {mtaEntry 10}
-
-mtaFailedConvertedMessages OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The number of messages for which an unsuccessful
-      attempt was made to convert them from one form to
-      another since MTA initialization."
-   ::= {mtaEntry 11}
-
-mtaLoopsDetected OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "A message loop is defined as a situation where the MTA
-      decides that a given message will never be delivered to
-      one or more recipients and instead will continue to
-      loop endlessly through one or more MTAs.  This variable
-      counts the number of times the MTA has detected such a
-      situation since MTA initialization. Note that the
-      mechanism MTAs use to detect loops (e.g., trace field
-      counting, count of references to this MTA in a trace
-      field, examination of DNS or other directory information,
-      etc.), the level at which loops are detected (e.g., per
-      message, per recipient, per directory entry, etc.), and
-      the handling of a loop once it is detected (e.g., looping
-
-      messages are held, looping messages are bounced or sent
-      to the postmaster, messages that the MTA knows will loop
-      won't be accepted, etc.) vary widely from one MTA to the
-      next and cannot be inferred from this variable."
-   ::= {mtaEntry 12}
-
--- MTAs typically group inbound reception, queue storage, and
--- outbound transmission in some way, rather than accounting for
--- such operations only across the MTA as a whole. In the most
--- extreme case separate information will be maintained for each
--- different entity that receives messages and for each entity
--- the MTA stores messages for and delivers messages to.  Other
--- MTAs may elect to treat all reception equally, all queue
--- storage equally, all deliveries equally, or some combination
--- of this. Overlapped groupings are also possible, where an MTA
--- decomposes its traffic in different ways for different
--- purposes.
-
--- In any case, a grouping abstraction is an extremely useful for
--- breaking down the activities of an MTA. For purposes of
--- labelling this will be called a "group" in this MIB.
-
--- Each group contains all the variables needed to monitor all
--- aspects of an MTA's operation.  However, the fact that all
--- groups contain all possible variables does not imply that all
--- groups must use all possible variables. For example, a single
--- group might be used to monitor only one kind of event (inbound
--- processing, outbound processing, or storage). In this sort of
--- configuration any counters that are unused as a result of a
--- given MTA's use of the group construct must be inaccessible;
--- e.g., returning either a noSuchName error (for an SNMPv1 get),
--- or a noSuchInstance exception (for an SNMPv2 get).
-
--- Groups can be created at any time after MTA initialization. Once
--- a group is created it should not be deleted or its mtaGroupIndex
--- changed unless the MTA is reinitialized.
-
--- Groups are not necessarily mutually exclusive. A given event may
--- be recorded by more than one group, a message may be seen as
--- stored by more than one group, and so on.  Groups should be all
--- inclusive, however: if groups are implemented all aspects of an
--- MTA's operation should be registered in at least one group.
--- This freedom lets implementors use different sets of groups to
--- provide different "views" of an MTA.
-
--- The possibility of overlap between groups means that summing
--- variables across groups may not produce values equal to those in
--- the mtaTable. mtaTable should always provide accurate information
-
--- about the MTA as a whole.
-
--- The term "channel" is often used in MTA implementations; channels
--- are usually, but not always, equivalent to a group. However,
--- this MIB does not use the term "channel" because there is no
--- requirement that an MTA supporting this MIB has to map its
--- "channel" abstraction one-to-one onto the MIB's group abstraction.
-
--- An MTA may create a group or group of groups at any time. Once
--- created, however, an MTA cannot delete an entry for a group from
--- the group table.  Deletion is only allowed when the MTA is
--- reinitialized, and is not required even then.  This restriction
--- is imposed so that monitoring agents can rely on group
--- assignments being consistent across multiple query operations.
-
--- Groups may be laid out so as to form a hierarchical arrangement,
--- with some groups acting as subgroups for other groups.
--- Alternately, disjoint groups of groups may be used to provide
--- different sorts of "snapshots" of MTA operation.  The
--- mtaGroupHierarchy variable provides an indication of how each
--- group fits into the overall arrangement being used.
-
--- Note that SNMP also defines and uses term "group". MTA groups are
--- NOT the same as SNMP groups.
-
-mtaGroupTable OBJECT-TYPE
-    SYNTAX SEQUENCE OF MtaGroupEntry
-    MAX-ACCESS not-accessible
-    STATUS current
-    DESCRIPTION
-      "The table holding information specific to each MTA group."
-    ::= {mta 2}
-
-mtaGroupEntry OBJECT-TYPE
-    SYNTAX MtaGroupEntry
-    MAX-ACCESS not-accessible
-    STATUS current
-    DESCRIPTION
-      "The entry associated with each MTA group."
-    INDEX {applIndex, mtaGroupIndex}
-    ::= {mtaGroupTable 1}
-
-MtaGroupEntry ::= SEQUENCE {
-   mtaGroupIndex
-       INTEGER,
-   mtaGroupReceivedMessages
-       Counter32,
-   mtaGroupRejectedMessages
-
-       Counter32,
-   mtaGroupStoredMessages
-       Gauge32,
-   mtaGroupTransmittedMessages
-       Counter32,
-   mtaGroupReceivedVolume
-       Counter32,
-   mtaGroupStoredVolume
-       Gauge32,
-   mtaGroupTransmittedVolume
-       Counter32,
-   mtaGroupReceivedRecipients
-       Counter32,
-   mtaGroupStoredRecipients
-       Gauge32,
-   mtaGroupTransmittedRecipients
-       Counter32,
-   mtaGroupOldestMessageStored
-       TimeInterval,
-   mtaGroupInboundAssociations
-       Gauge32,
-   mtaGroupOutboundAssociations
-       Gauge32,
-   mtaGroupAccumulatedInboundAssociations
-       Counter32,
-   mtaGroupAccumulatedOutboundAssociations
-       Counter32,
-   mtaGroupLastInboundActivity
-       TimeInterval,
-   mtaGroupLastOutboundActivity
-       TimeInterval,
-   mtaGroupLastOutboundAssociationAttempt
-       TimeInterval,
-   mtaGroupRejectedInboundAssociations
-       Counter32,
-   mtaGroupFailedOutboundAssociations
-       Counter32,
-   mtaGroupInboundRejectionReason
-       SnmpAdminString,
-   mtaGroupOutboundConnectFailureReason
-       SnmpAdminString,
-   mtaGroupScheduledRetry
-       TimeInterval,
-   mtaGroupMailProtocol
-       OBJECT IDENTIFIER,
-   mtaGroupName
-       SnmpAdminString,
-   mtaGroupSuccessfulConvertedMessages
-
-       Counter32,
-   mtaGroupFailedConvertedMessages
-       Counter32,
-   mtaGroupDescription
-       SnmpAdminString,
-   mtaGroupURL
-       URLString,
-   mtaGroupCreationTime
-       TimeInterval,
-   mtaGroupHierarchy
-       INTEGER,
-   mtaGroupOldestMessageId
-       SnmpAdminString,
-   mtaGroupLoopsDetected
-       Counter32
-}
-
-mtaGroupIndex OBJECT-TYPE
-   SYNTAX INTEGER (1..2147483647)
-   MAX-ACCESS not-accessible
-   STATUS current
-   DESCRIPTION
-     "The index associated with a group for a given MTA."
-   ::= {mtaGroupEntry 1}
-
-mtaGroupReceivedMessages OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The number of messages received to this group since
-      group creation."
-   ::= {mtaGroupEntry 2}
-
-mtaGroupRejectedMessages OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The number of messages rejected by this group since
-      group creation."
-   ::= {mtaGroupEntry 3}
-
-mtaGroupStoredMessages OBJECT-TYPE
-   SYNTAX Gauge32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total number of messages currently stored in this
-      group's queue."
-   ::= {mtaGroupEntry 4}
-
-mtaGroupTransmittedMessages OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The number of messages transmitted by this group since
-      group creation."
-   ::= {mtaGroupEntry 5}
-
-mtaGroupReceivedVolume OBJECT-TYPE
-   SYNTAX Counter32
-   UNITS "K-octets"
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total volume of messages received to this group since
-      group creation, measured in kilo-octets.  This volume
-      should include all transferred data that is logically above
-      the mail transport protocol level.  For example, an
-      SMTP-based MTA should use the number of kilo-octets in the
-      message header and body, while an X.400-based MTA should use
-      the number of kilo-octets of P2 data."
-   ::= {mtaGroupEntry 6}
-
-mtaGroupStoredVolume OBJECT-TYPE
-   SYNTAX Gauge32
-   UNITS "K-octets"
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total volume of messages currently stored in this
-      group's queue, measured in kilo-octets.  This volume should
-      include all stored data that is logically above the mail
-      transport protocol level.  For example, an SMTP-based
-      MTA should use the number of kilo-octets in the message
-      header and body, while an X.400-based MTA would use the
-      number of kilo-octets of P2 data."
-   ::= {mtaGroupEntry 7}
-
-mtaGroupTransmittedVolume OBJECT-TYPE
-   SYNTAX Counter32
-   UNITS "K-octets"
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total volume of messages transmitted by this group
-      since group creation, measured in kilo-octets.  This
-      volume should include all transferred data that is logically
-      above the mail transport protocol level.  For example, an
-      SMTP-based MTA should use the number of kilo-octets in the
-      message header and body, while an X.400-based MTA should use
-      the number of kilo-octets of P2 data."
-   ::= {mtaGroupEntry 8}
-
-mtaGroupReceivedRecipients OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total number of recipients specified in all messages
-      received to this group since group creation.
-      Recipients this MTA has no responsibility for should not
-      be counted."
-   ::= {mtaGroupEntry 9}
-
-mtaGroupStoredRecipients OBJECT-TYPE
-   SYNTAX Gauge32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total number of recipients specified in all messages
-      currently stored in this group's queue.  Recipients this
-      MTA has no responsibility for should not be counted."
-   ::= {mtaGroupEntry 10}
-
-mtaGroupTransmittedRecipients OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total number of recipients specified in all messages
-      transmitted by this group since group creation.
-      Recipients this MTA had no responsibility for should not
-      be counted."
-   ::= {mtaGroupEntry 11}
-
-mtaGroupOldestMessageStored OBJECT-TYPE
-   SYNTAX TimeInterval
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "Time since the oldest message in this group's queue was
-
-      placed in the queue."
-   ::= {mtaGroupEntry 12}
-
-mtaGroupInboundAssociations OBJECT-TYPE
-   SYNTAX Gauge32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The number of current associations to the group, where the
-      group is the responder."
-   ::= {mtaGroupEntry 13}
-
-mtaGroupOutboundAssociations OBJECT-TYPE
-   SYNTAX Gauge32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The number of current associations to the group, where the
-     group is the initiator."
-   ::= {mtaGroupEntry 14}
-
-mtaGroupAccumulatedInboundAssociations OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total number of associations to the group since
-     group creation, where the MTA was the responder."
-   ::= {mtaGroupEntry 15}
-
-mtaGroupAccumulatedOutboundAssociations OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total number of associations from the group since
-      group creation, where the MTA was the initiator."
-   ::= {mtaGroupEntry 16}
-
-mtaGroupLastInboundActivity OBJECT-TYPE
-   SYNTAX TimeInterval
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "Time since the last time that this group had an active
-     inbound association for purposes of message reception."
-   ::= {mtaGroupEntry 17}
-
-mtaGroupLastOutboundActivity OBJECT-TYPE
-   SYNTAX TimeInterval
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "Time since the last time that this group had a
-      successful outbound association for purposes of
-      message delivery."
-   ::= {mtaGroupEntry 18}
-
-mtaGroupLastOutboundAssociationAttempt OBJECT-TYPE
-   SYNTAX TimeInterval
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "Time since the last time that this group attempted
-      to make an outbound association for purposes of
-      message delivery."
-   ::= {mtaGroupEntry 34}
-
-mtaGroupRejectedInboundAssociations OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total number of inbound associations the group has
-     rejected, since group creation.  Rejected associations
-     are not counted in the accumulated association totals."
-   ::= {mtaGroupEntry 19}
-
-mtaGroupFailedOutboundAssociations OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The total number associations where the group was the
-     initiator and association establishment has failed,
-     since group creation.  Failed associations are
-     not counted in the accumulated association totals."
-   ::= {mtaGroupEntry 20}
-
-mtaGroupInboundRejectionReason OBJECT-TYPE
-   SYNTAX SnmpAdminString
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The failure reason, if any, for the last association this
-     group refused to respond to. If no association attempt
-
-     has been made since the MTA was initialized the value
-     should be 'never'."
-   ::= {mtaGroupEntry 21}
-
-mtaGroupOutboundConnectFailureReason OBJECT-TYPE
-   SYNTAX SnmpAdminString
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The failure reason, if any, for the last association attempt
-     this group initiated. If no association attempt has been
-     made since the MTA was initialized the value should be
-     'never'."
-   ::= {mtaGroupEntry 22}
-
-mtaGroupScheduledRetry OBJECT-TYPE
-   SYNTAX TimeInterval
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The amount of time until this group is next scheduled to
-      attempt to make an association."
-   ::= {mtaGroupEntry 23}
-
-mtaGroupMailProtocol OBJECT-TYPE
-   SYNTAX OBJECT IDENTIFIER
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "An identification of the protocol being used by this group.
-      For an group employing OSI protocols, this will be the
-      Application Context.    For Internet applications, OID
-      values of the form {applTCPProtoID port} or {applUDPProtoID
-      port} are used for TCP-based and UDP-based protocols,
-      respectively. In either case 'port' corresponds to the
-      primary port number being used by the protocol. The
-      usual IANA procedures may be used to register ports for
-      new protocols. applTCPProtoID and applUDPProtoID are
-      defined in the NETWORK-SERVICES-MIB, RFC 2788."
-   ::= {mtaGroupEntry 24}
-
-mtaGroupName OBJECT-TYPE
-   SYNTAX SnmpAdminString
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "A descriptive name for the group. If this group connects to
-      a single remote MTA this should be the name of that MTA. If
-
-      this in turn is an Internet MTA this should be the domain
-      name.  For an OSI MTA it should be the string encoded
-      distinguished name of the managed object using the format
-      defined in RFC 2253.  For X.400(1984) MTAs which do not
-      have a Distinguished Name, the RFC 2156 syntax
-      'mta in globalid' used in X400-Received: fields can be
-      used."
-   ::= {mtaGroupEntry 25}
-
-mtaGroupSuccessfulConvertedMessages OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The number of messages that have been successfully
-      converted from one form to another in this group
-      since group creation."
-   ::= {mtaGroupEntry 26}
-
-mtaGroupFailedConvertedMessages OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "The number of messages for which an unsuccessful
-      attempt was made to convert them from one form to
-      another in this group since group creation."
-   ::= {mtaGroupEntry 27}
-
-mtaGroupDescription OBJECT-TYPE
-   SYNTAX SnmpAdminString
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "A description of the group's purpose.  This information is
-      intended to identify the group in a status display."
-   ::= {mtaGroupEntry 28}
-
-mtaGroupURL OBJECT-TYPE
-   SYNTAX URLString
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "A URL pointing to a description of the group.  This
-      information is intended to identify and briefly describe
-      the group in a status display."
-   ::= {mtaGroupEntry 29}
-
-mtaGroupCreationTime OBJECT-TYPE
-   SYNTAX TimeInterval
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "Time since this group was first created."
-   ::= {mtaGroupEntry 30}
-
-mtaGroupHierarchy OBJECT-TYPE
-   SYNTAX INTEGER (-2147483648..2147483647)
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "Describes how this group fits into the hierarchy. A
-      positive value is interpreted as an mtaGroupIndex
-      value for some other group whose variables include
-      those of this group (and usually others). A negative
-      value is interpreted as a group collection code: Groups
-      with common negative hierarchy values comprise one
-      particular breakdown of MTA activity as a whole. A
-      zero value means that this MIB implementation doesn't
-      implement hierarchy indicators and thus the overall
-      group hierarchy cannot be determined."
-   ::= {mtaGroupEntry 31}
-
-mtaGroupOldestMessageId OBJECT-TYPE
-   SYNTAX SnmpAdminString
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "Message ID of the oldest message in the group's queue.
-      Whenever possible this should be in the form of an
-      RFC 822 msg-id; X.400 may convert X.400 message
-      identifiers to this form by following the rules laid
-      out in RFC2156."
-   ::= {mtaGroupEntry 32}
-
-mtaGroupLoopsDetected OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "A message loop is defined as a situation where the MTA
-      decides that a given message will never be delivered to
-      one or more recipients and instead will continue to
-      loop endlessly through one or more MTAs.  This variable
-      counts the number of times the MTA has detected such a
-      situation in conjunction with something associated with
-
-      this group since group creation.  Note that the
-      mechanism MTAs use to detect loops (e.g., trace field
-      counting, count of references to this MTA in a trace
-      field, examination of DNS or other directory information,
-      etc.), the level at which loops are detected (e.g., per
-      message, per recipient, per directory entry, etc.), and
-      the handling of a loop once it is detected (e.g., looping
-      messages are held, looping messages are bounced or sent
-      to the postmaster, messages that the MTA knows will loop
-      won't be accepted, etc.) vary widely from one MTA to the
-      next and cannot be inferred from this variable."
-   ::= {mtaGroupEntry 33}
-
--- The mtaGroupAssociationTable provides a means of correlating
--- entries in the network services association table with the
--- MTA group responsible for the association.
-
-mtaGroupAssociationTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF MtaGroupAssociationEntry
-   MAX-ACCESS not-accessible
-   STATUS current
-   DESCRIPTION
-     "The table holding information regarding the associations
-      for each MTA group."
-   ::= {mta 3}
-
-mtaGroupAssociationEntry OBJECT-TYPE
-   SYNTAX MtaGroupAssociationEntry
-   MAX-ACCESS not-accessible
-   STATUS current
-   DESCRIPTION
-     "The entry holding information regarding the associations
-      for each MTA group."
-   INDEX {applIndex, mtaGroupIndex, mtaGroupAssociationIndex}
-   ::= {mtaGroupAssociationTable 1}
-
-MtaGroupAssociationEntry ::= SEQUENCE {
-   mtaGroupAssociationIndex
-       INTEGER
-}
-
-mtaGroupAssociationIndex OBJECT-TYPE
-   SYNTAX INTEGER (1..2147483647)
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "Reference into association table to allow correlation of
-      this group's active associations with the association table."
-   ::= {mtaGroupAssociationEntry 1}
-
--- The mtaGroupErrorTable gives each group a way of tallying
--- the specific errors it has encountered.  The mechanism
--- defined here uses RFC 1893 status codes to identify
--- various specific errors.  There are also classes for generic
--- errors of various sorts, and the entire mechanism is also
--- extensible, in that new error codes can be defined at any
--- time.
-
-mtaGroupErrorTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF MtaGroupErrorEntry
-   MAX-ACCESS not-accessible
-   STATUS current
-   DESCRIPTION
-     "The table holding information regarding accumulated errors
-      for each MTA group."
-   ::= {mta 5}
-
-mtaGroupErrorEntry OBJECT-TYPE
-   SYNTAX MtaGroupErrorEntry
-   MAX-ACCESS not-accessible
-   STATUS current
-   DESCRIPTION
-     "The entry holding information regarding accumulated
-      errors for each MTA group."
-   INDEX {applIndex, mtaGroupIndex, mtaStatusCode}
-   ::= {mtaGroupErrorTable 1}
-
-MtaGroupErrorEntry ::= SEQUENCE {
-   mtaStatusCode
-       INTEGER (4000000..5999999),
-   mtaGroupInboundErrorCount
-       Counter32,
-   mtaGroupInternalErrorCount
-       Counter32,
-   mtaGroupOutboundErrorCount
-       Counter32
-}
-
-mtaGroupInboundErrorCount OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "Count of the number of errors of a given type that have
-      been accumulated in association with a particular group
-      while processing incoming messages. In the case of SMTP
-
-      these will typically be errors reporting by an SMTP
-      server to the remote client; in the case of X.400
-      these will typically be errors encountered while
-      processing an incoming message."
-   ::= {mtaGroupErrorEntry 1}
-
-mtaGroupInternalErrorCount OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "Count of the number of errors of a given type that have
-      been accumulated in association with a particular group
-      during internal MTA processing."
-   ::= {mtaGroupErrorEntry 2}
-
-mtaGroupOutboundErrorCount OBJECT-TYPE
-   SYNTAX Counter32
-   MAX-ACCESS read-only
-   STATUS current
-   DESCRIPTION
-     "Count of the number of errors of a given type that have
-      been accumulated in association with a particular group's
-      outbound connection activities. In the case of an SMTP
-      client these will typically be errors reported while
-      attempting to contact or while communicating with the
-      remote SMTP server. In the case of X.400 these will
-      typically be errors encountered while constructing
-      or attempting to deliver an outgoing message."
-   ::= {mtaGroupErrorEntry 3}
-
-mtaStatusCode OBJECT-TYPE
-   SYNTAX INTEGER (4000000..5999999)
-   MAX-ACCESS not-accessible
-   STATUS current
-   DESCRIPTION
-     "An index capable of representing an Enhanced Mail System
-      Status Code.  Enhanced Mail System Status Codes are
-      defined in RFC 1893.  These codes have the form
-
-          class.subject.detail
-
-      Here 'class' is either 2, 4, or 5 and both 'subject' and
-      'detail'  are integers in the range 0..999. Given a status
-      code the corresponding index value is defined to be
-      ((class * 1000) + subject) * 1000 + detail.  Both SMTP
-      error response codes and X.400 reason and diagnostic codes
-      can be mapped into these codes, resulting in a namespace
-
-      capable of describing most error conditions a mail system
-      encounters in a generic yet detailed way."
-   ::= {mtaGroupErrorEntry 4}
-
--- Conformance information
-
-mtaConformance OBJECT IDENTIFIER ::= {mta 4}
-
-mtaGroups      OBJECT IDENTIFIER ::= {mtaConformance 1}
-mtaCompliances OBJECT IDENTIFIER ::= {mtaConformance 2}
-
--- Compliance statements
-
-mtaCompliance MODULE-COMPLIANCE
-   STATUS current
-   DESCRIPTION
-     "The compliance statement for RFC 1566 implementations
-      which support the Mail Monitoring MIB for basic
-      monitoring of MTAs."
-   MODULE  -- this module
-     MANDATORY-GROUPS {mtaRFC1566Group}
-   ::= {mtaCompliances 1}
-
-mtaAssocCompliance MODULE-COMPLIANCE
-   STATUS current
-   DESCRIPTION
-     "The compliance statement for RFC 1566 implementations
-      which support the Mail Monitoring MIB for monitoring
-      of MTAs and their associations."
-   MODULE  -- this module
-     MANDATORY-GROUPS {mtaRFC1566Group, mtaRFC1566AssocGroup}
-   ::= {mtaCompliances 2}
-
-mtaRFC2249Compliance MODULE-COMPLIANCE
-   STATUS current
-   DESCRIPTION
-     "The compliance statement for RFC 2249 implementations
-      which support the Mail Monitoring MIB for basic
-      monitoring of MTAs."
-   MODULE  -- this module
-     MANDATORY-GROUPS {mtaRFC2249Group}
-   ::= {mtaCompliances 5}
-
-mtaRFC2249AssocCompliance MODULE-COMPLIANCE
-   STATUS current
-   DESCRIPTION
-     "The compliance statement for RFC 2249 implementations
-
-      which support the Mail Monitoring MIB for monitoring of
-      MTAs and their associations."
-   MODULE  -- this module
-     MANDATORY-GROUPS {mtaRFC2249Group, mtaRFC2249AssocGroup}
-   ::= {mtaCompliances 6}
-
-mtaRFC2249ErrorCompliance MODULE-COMPLIANCE
-   STATUS current
-   DESCRIPTION
-     "The compliance statement for RFC 2249 implementations
-      which support the Mail Monitoring MIB for monitoring of
-      MTAs and detailed errors."
-   MODULE  -- this module
-     MANDATORY-GROUPS {mtaRFC2249Group, mtaRFC2249ErrorGroup}
-   ::= {mtaCompliances 7}
-
-mtaRFC2249FullCompliance MODULE-COMPLIANCE
-   STATUS current
-   DESCRIPTION
-     "The compliance statement for RFC 2249 implementations
-      which support the full Mail Monitoring MIB for
-      monitoring of MTAs, associations, and detailed errors."
-   MODULE  -- this module
-     MANDATORY-GROUPS {mtaRFC2249Group, mtaRFC2249AssocGroup,
-                       mtaRFC2249ErrorGroup}
-   ::= {mtaCompliances 8}
-
-mtaRFC2789Compliance MODULE-COMPLIANCE
-   STATUS current
-   DESCRIPTION
-     "The compliance statement for RFC 2789 implementations
-      which support the Mail Monitoring MIB for basic
-      monitoring of MTAs."
-   MODULE  -- this module
-     MANDATORY-GROUPS {mtaRFC2789Group}
-   ::= {mtaCompliances 9}
-
-mtaRFC2789AssocCompliance MODULE-COMPLIANCE
-   STATUS current
-   DESCRIPTION
-     "The compliance statement for RFC 2789 implementations
-      which support the Mail Monitoring MIB for monitoring of
-      MTAs and their associations."
-   MODULE  -- this module
-     MANDATORY-GROUPS {mtaRFC2789Group, mtaRFC2789AssocGroup}
-   ::= {mtaCompliances 10}
-
-mtaRFC2789ErrorCompliance MODULE-COMPLIANCE
-   STATUS current
-   DESCRIPTION
-     "The compliance statement for RFC 2789 implementations
-      which support the Mail Monitoring MIB for monitoring of
-      MTAs and detailed errors."
-   MODULE  -- this module
-     MANDATORY-GROUPS {mtaRFC2789Group, mtaRFC2789ErrorGroup}
-   ::= {mtaCompliances 11}
-
-mtaRFC2789FullCompliance MODULE-COMPLIANCE
-   STATUS current
-   DESCRIPTION
-     "The compliance statement for RFC 2789 implementations
-      which support the full Mail Monitoring MIB for
-      monitoring of MTAs, associations, and detailed errors."
-   MODULE  -- this module
-     MANDATORY-GROUPS {mtaRFC2789Group, mtaRFC2789AssocGroup,
-                       mtaRFC2789ErrorGroup}
-   ::= {mtaCompliances 12}
-
--- Units of conformance
-
-mtaRFC1566Group OBJECT-GROUP
-   OBJECTS {
-     mtaReceivedMessages, mtaStoredMessages,
-     mtaTransmittedMessages, mtaReceivedVolume, mtaStoredVolume,
-     mtaTransmittedVolume, mtaReceivedRecipients,
-     mtaStoredRecipients, mtaTransmittedRecipients,
-     mtaGroupReceivedMessages, mtaGroupRejectedMessages,
-     mtaGroupStoredMessages, mtaGroupTransmittedMessages,
-     mtaGroupReceivedVolume, mtaGroupStoredVolume,
-     mtaGroupTransmittedVolume, mtaGroupReceivedRecipients,
-     mtaGroupStoredRecipients, mtaGroupTransmittedRecipients,
-     mtaGroupOldestMessageStored, mtaGroupInboundAssociations,
-     mtaGroupOutboundAssociations,
-     mtaGroupAccumulatedInboundAssociations,
-     mtaGroupAccumulatedOutboundAssociations,
-     mtaGroupLastInboundActivity, mtaGroupLastOutboundActivity,
-     mtaGroupRejectedInboundAssociations,
-     mtaGroupFailedOutboundAssociations,
-     mtaGroupInboundRejectionReason,
-     mtaGroupOutboundConnectFailureReason,
-     mtaGroupScheduledRetry, mtaGroupMailProtocol, mtaGroupName}
-   STATUS current
-   DESCRIPTION
-     "A collection of objects providing basic monitoring of MTAs.
-      This is the original set of such objects defined in RFC
-      1566."
-   ::= {mtaGroups 10}
-
-mtaRFC1566AssocGroup OBJECT-GROUP
-   OBJECTS {
-     mtaGroupAssociationIndex}
-   STATUS current
-   DESCRIPTION
-     "A collection of objects providing monitoring of MTA
-      associations.  This is the original set of such objects
-      defined in RFC 1566."
-   ::= {mtaGroups 11}
-
-mtaRFC2249Group OBJECT-GROUP
-   OBJECTS {
-     mtaReceivedMessages, mtaStoredMessages,
-     mtaTransmittedMessages, mtaReceivedVolume, mtaStoredVolume,
-     mtaTransmittedVolume, mtaReceivedRecipients,
-     mtaStoredRecipients, mtaTransmittedRecipients,
-     mtaSuccessfulConvertedMessages, mtaFailedConvertedMessages,
-     mtaGroupReceivedMessages, mtaGroupRejectedMessages,
-     mtaGroupStoredMessages, mtaGroupTransmittedMessages,
-     mtaGroupReceivedVolume, mtaGroupStoredVolume,
-     mtaGroupTransmittedVolume, mtaGroupReceivedRecipients,
-     mtaGroupStoredRecipients, mtaGroupTransmittedRecipients,
-     mtaGroupOldestMessageStored, mtaGroupInboundAssociations,
-     mtaGroupOutboundAssociations, mtaLoopsDetected,
-     mtaGroupAccumulatedInboundAssociations,
-     mtaGroupAccumulatedOutboundAssociations,
-     mtaGroupLastInboundActivity, mtaGroupLastOutboundActivity,
-     mtaGroupLastOutboundAssociationAttempt,
-     mtaGroupRejectedInboundAssociations,
-     mtaGroupFailedOutboundAssociations,
-     mtaGroupInboundRejectionReason,
-     mtaGroupOutboundConnectFailureReason,
-     mtaGroupScheduledRetry, mtaGroupMailProtocol, mtaGroupName,
-     mtaGroupSuccessfulConvertedMessages,
-     mtaGroupFailedConvertedMessages, mtaGroupDescription,
-     mtaGroupURL, mtaGroupCreationTime, mtaGroupHierarchy,
-     mtaGroupOldestMessageId, mtaGroupLoopsDetected}
-   STATUS current
-   DESCRIPTION
-     "A collection of objects providing basic monitoring of MTAs.
-      This group was originally defined in RFC 2249."
-   ::= {mtaGroups 4}
-
-mtaRFC2249AssocGroup OBJECT-GROUP
-   OBJECTS {
-     mtaGroupAssociationIndex}
-   STATUS current
-   DESCRIPTION
-     "A collection of objects providing monitoring of MTA
-      associations.  This group was originally defined in RFC
-      2249."
-   ::= {mtaGroups 5}
-
-mtaRFC2249ErrorGroup OBJECT-GROUP
-   OBJECTS {
-     mtaGroupInboundErrorCount, mtaGroupInternalErrorCount,
-     mtaGroupOutboundErrorCount}
-   STATUS current
-   DESCRIPTION
-     "A collection of objects providing monitoring of
-      detailed MTA errors.  This group was originally defined
-      in RFC 2249."
-   ::= {mtaGroups 6}
-
-mtaRFC2789Group OBJECT-GROUP
-   OBJECTS {
-     mtaReceivedMessages, mtaStoredMessages,
-     mtaTransmittedMessages, mtaReceivedVolume, mtaStoredVolume,
-     mtaTransmittedVolume, mtaReceivedRecipients,
-     mtaStoredRecipients, mtaTransmittedRecipients,
-     mtaSuccessfulConvertedMessages, mtaFailedConvertedMessages,
-     mtaGroupReceivedMessages, mtaGroupRejectedMessages,
-     mtaGroupStoredMessages, mtaGroupTransmittedMessages,
-     mtaGroupReceivedVolume, mtaGroupStoredVolume,
-     mtaGroupTransmittedVolume, mtaGroupReceivedRecipients,
-     mtaGroupStoredRecipients, mtaGroupTransmittedRecipients,
-     mtaGroupOldestMessageStored, mtaGroupInboundAssociations,
-     mtaGroupOutboundAssociations, mtaLoopsDetected,
-     mtaGroupAccumulatedInboundAssociations,
-     mtaGroupAccumulatedOutboundAssociations,
-     mtaGroupLastInboundActivity, mtaGroupLastOutboundActivity,
-     mtaGroupLastOutboundAssociationAttempt,
-     mtaGroupRejectedInboundAssociations,
-     mtaGroupFailedOutboundAssociations,
-     mtaGroupInboundRejectionReason,
-     mtaGroupOutboundConnectFailureReason,
-     mtaGroupScheduledRetry, mtaGroupMailProtocol, mtaGroupName,
-     mtaGroupSuccessfulConvertedMessages,
-     mtaGroupFailedConvertedMessages, mtaGroupDescription,
-     mtaGroupURL, mtaGroupCreationTime, mtaGroupHierarchy,
-     mtaGroupOldestMessageId, mtaGroupLoopsDetected}
-   STATUS current
-   DESCRIPTION
-     "A collection of objects providing basic monitoring of MTAs.
-
-      This is the appropriate group for RFC 2789."
-   ::= {mtaGroups 7}
-
-mtaRFC2789AssocGroup OBJECT-GROUP
-   OBJECTS {
-     mtaGroupAssociationIndex}
-   STATUS current
-   DESCRIPTION
-     "A collection of objects providing monitoring of MTA
-      associations.  This is the appropriate group for RFC
-      2789 association monitoring."
-   ::= {mtaGroups 8}
-
-mtaRFC2789ErrorGroup OBJECT-GROUP
-   OBJECTS {
-     mtaGroupInboundErrorCount, mtaGroupInternalErrorCount,
-     mtaGroupOutboundErrorCount}
-   STATUS current
-   DESCRIPTION
-     "A collection of objects providing monitoring of
-      detailed MTA errors.  This is the appropriate group
-      for RFC 2789 error monitoring."
-   ::= {mtaGroups 9}
-
-END
diff --git a/mibs/Makefile.in b/mibs/Makefile.in
index 0d8e71f..ea97e67 100644
--- a/mibs/Makefile.in
+++ b/mibs/Makefile.in
@@ -36,11 +36,11 @@ RFCMIBS	= IF-MIB.txt IF-INVERTED-STACK-MIB.txt \
 	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-FLOW-LABEL-MIB.txt TUNNEL-MIB.txt \
+	IPV6-UDP-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 BRIDGE-MIB.txt
+	SCTP-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 6d31242..136199c 100644
--- a/mibs/Makefile.mib
+++ b/mibs/Makefile.mib
@@ -14,26 +14,19 @@ MIBS =	SNMPv2-TC.txt SNMPv2-TM.txt SNMPv2-SMI.txt SNMPv2-MIB.txt \
 	SNMP-FRAMEWORK-MIB.txt SNMP-MPD-MIB.txt SNMP-USER-BASED-SM-MIB.txt \
 	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 \
-	DISMAN-NSLOOKUP-MIB.txt DISMAN-EVENT-MIB.txt \
-	DISMAN-EXPRESSION-MIB.txt NOTIFICATION-LOG-MIB.txt \
+	DISMAN-SCRIPT-MIB.txt  DISMAN-SCHEDULE-MIB.txt \
 	IANA-LANGUAGE-MIB.txt IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt \
 	IF-MIB.txt IF-INVERTED-STACK-MIB.txt \
 	IP-MIB.txt IP-FORWARD-MIB.txt TCP-MIB.txt UDP-MIB.txt \
-	IANAifType-MIB.txt IANA-RTPROTO-MIB.txt EtherLike-MIB.txt \
+	IANAifType-MIB.txt EtherLike-MIB.txt \
 	IPV6-TC.txt IPV6-MIB.txt IPV6-ICMP-MIB.txt \
-	IPV6-TCP-MIB.txt IPV6-UDP-MIB.txt IPV6-FLOW-LABEL-MIB.txt \
+	IPV6-TCP-MIB.txt IPV6-UDP-MIB.txt \
 	HOST-RESOURCES-MIB.txt HOST-RESOURCES-TYPES.txt \
 	NETWORK-SERVICES-MIB.txt MTA-MIB.txt \
 	RMON-MIB.txt \
-	TUNNEL-MIB.txt \
-	TRANSPORT-ADDRESS-MIB.txt \
-	RFC1155-SMI.txt RFC1213-MIB.txt\
-	SCTP-MIB.txt BRIDGE-MIB.txt
+	RFC1155-SMI.txt RFC1213-MIB.txt \
+	SCTP-MIB.txt
 
 MIBDEPS = Makefile.mib mibfetch smistrip
 
@@ -72,15 +65,6 @@ SNMP-VIEW-BASED-ACM-MIB.txt:	$(MIBDEPS)
 SNMP-COMMUNITY-MIB.txt:	$(MIBDEPS)
 	./mibfetch $(RFCHOST) $(RFCDIR) 2576
 
-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
-
 SNMPv2-SMI.txt:	$(MIBDEPS)
 	./mibfetch $(RFCHOST) $(RFCDIR) 2578 SNMPv2-SMI
 
@@ -108,18 +92,6 @@ DISMAN-SCHEDULE-MIB.txt:	$(MIBDEPS)
 DISMAN-SCRIPT-MIB.txt:	$(MIBDEPS)
 	./mibfetch $(RFCHOST) $(RFCDIR) 3165
 
-DISMAN-EXPRESSION-MIB.txt:	$(MIBDEPS)
-	./mibfetch $(RFCHOST) $(RFCDIR) 2982
-
-DISMAN-EVENT-MIB.txt:	$(MIBDEPS)
-	./mibfetch $(RFCHOST) $(RFCDIR) 2981
-
-DISMAN-NSLOOKUP-MIB.txt DISMAN-TRACEROUTE-MIB.txt DISMAN-PING-MIB.txt:	$(MIBDEPS)
-	./mibfetch $(RFCHOST) $(RFCDIR) 4560
-
-NOTIFICATION-LOG-MIB.txt:	$(MIBDEPS)
-	./mibfetch $(RFCHOST) $(RFCDIR) 3014
-
 IF-MIB.txt:	$(MIBDEPS)
 	./mibfetch $(RFCHOST) $(RFCDIR) 2863
 
@@ -138,9 +110,6 @@ EtherLike-MIB.txt:	$(MIBDEPS)
 IANAifType-MIB.txt:	$(MIBDEPS)
 	./mibfetch -x $(IANAHOST) $(IANADIR) ianaiftype-mib
 
-IANA-RTPROTO-MIB.txt:	$(MIBDEPS)
-	./mibfetch -x $(IANAHOST) $(IANADIR) ianaiprouteprotocol-mib
-
 IANA-LANGUAGE-MIB.txt:	$(MIBDEPS)
 	./mibfetch -x $(IANAHOST) $(IANADIR) ianalanguage-mib
 
@@ -148,22 +117,16 @@ IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt:	$(MIBDEPS)
 	./mibfetch -x $(IANAHOST) $(IANADIR) ianaaddressfamilynumbers-mib
 
 IP-MIB.txt:	$(MIBDEPS)
-	./mibfetch $(RFCHOST) $(RFCDIR) 4293
+	./mibfetch $(RFCHOST) $(RFCDIR) 2011
 
 IP-FORWARD-MIB.txt:	$(MIBDEPS)
-	./mibfetch $(RFCHOST) $(RFCDIR) 4292
+	./mibfetch $(RFCHOST) $(RFCDIR) 2096
 
 TCP-MIB.txt:	$(MIBDEPS)
 	./mibfetch $(RFCHOST) $(RFCDIR) 4022
 
 UDP-MIB.txt:	$(MIBDEPS)
-	./mibfetch $(RFCHOST) $(RFCDIR) 4113
-
-TUNNEL-MIB.txt:	$(MIBDEPS)
-	./mibfetch $(RFCHOST) $(RFCDIR) 4087
-
-TRANSPORT-ADDRESS-MIB.txt:	$(MIBDEPS)
-	./mibfetch $(RFCHOST) $(RFCDIR) 3419
+	./mibfetch $(RFCHOST) $(RFCDIR) 2013
 
 IPV6-TC.txt IPV6-MIB.txt:	$(MIBDEPS)
 	./mibfetch $(RFCHOST) $(RFCDIR) 2465
@@ -177,9 +140,6 @@ IPV6-TCP-MIB.txt:	$(MIBDEPS)
 IPV6-UDP-MIB.txt:	$(MIBDEPS)
 	./mibfetch $(RFCHOST) $(RFCDIR) 2454
 
-IPV6-FLOW-LABEL-MIB.txt:	$(MIBDEPS)
-	./mibfetch $(RFCHOST) $(RFCDIR) 3595
-
 HOST-RESOURCES-MIB.txt HOST-RESOURCES-TYPES.txt:	$(MIBDEPS)
 	./mibfetch $(RFCHOST) $(RFCDIR) 2790
 
@@ -198,12 +158,9 @@ RFC1155-SMI.txt:	$(MIBDEPS)
 RFC1213-MIB.txt:	$(MIBDEPS)
 	./mibfetch $(RFCHOST) $(RFCDIR) 1213
 
-SCTP-MIB.txt:	$(MIBDEPS)
+SCTP.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-PERIODIC-NOTIFY-MIB.txt b/mibs/NET-SNMP-PERIODIC-NOTIFY-MIB.txt
deleted file mode 100644
index 83eacad..0000000
--- a/mibs/NET-SNMP-PERIODIC-NOTIFY-MIB.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-NET-SNMP-PERIODIC-NOTIFY-MIB DEFINITIONS ::= BEGIN
-
---
--- Objects for periodic notifications containing data payloads
---
-
-IMPORTS
-    netSnmpModuleIDs, netSnmpObjects, netSnmpNotifications FROM NET-SNMP-MIB
-
-    OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY, Integer32, Unsigned32
-        FROM SNMPv2-SMI
-
-    DisplayString FROM SNMPv2-TC;
-
-
-netSnmpPeriodicNotifyMib MODULE-IDENTITY
-    LAST-UPDATED "201104200000Z"
-    ORGANIZATION "www.net-snmp.org"
-    CONTACT-INFO    
-	 "postal:   Wes Hardaker
-                    P.O. Box 382
-                    Davis CA  95617
-
-          email:    net-snmp-coders at lists.sourceforge.net"
-    DESCRIPTION
-	"Objects for periodic notifications containing data payloads"
-    REVISION     "201104200000Z"
-    DESCRIPTION
-	"First revision."
-    ::= { netSnmpModuleIDs 5 }
-
-nsPNScalars                 OBJECT IDENTIFIER ::= {netSnmpPeriodicNotifyMib 1}
-nsPNTables                  OBJECT IDENTIFIER ::= {netSnmpPeriodicNotifyMib 2}
-nsPNotifyObjects            OBJECT IDENTIFIER ::= {netSnmpPeriodicNotifyMib 3}
-nsPNotificationPrefix       OBJECT IDENTIFIER ::= {netSnmpPeriodicNotifyMib 4}
-nsPNotifications            OBJECT IDENTIFIER ::= {nsPNotificationPrefix 0}
-nsPNotificationObjects      OBJECT IDENTIFIER ::= {nsPNotificationPrefix 1}
-
---
--- Notification Definitions
---
-
-nsNotifyPeriodicNotification        NOTIFICATION-TYPE
-    STATUS	current
-    DESCRIPTION
-	"Data delivery notification from a configured list of periodic
-	data sets to deliver.  See the snmpd.conf manual page for
-	details about configuring Net-SNMP agents for sending these
-	notifications out on a regular basis."
-    ::= { nsPNotifications 1 }
-
---
--- Objects that can be put into the notifications
---
-
-nsPNPeriodicTime OBJECT-TYPE
-     SYNTAX      Unsigned32
-     MAX-ACCESS  accessible-for-notify
-     STATUS      current
-     DESCRIPTION
-         "The number of seconds between notifications containing this data set."
-     ::= { nsPNotifyObjects 1 }
-
-nsPNotifyMessageNumber OBJECT-TYPE
-    SYNTAX      Unsigned32
-    MAX-ACCESS  accessible-for-notify
-    STATUS      current
-    DESCRIPTION
-        "Indicates this is the Nth notification in a longer sequence
-        of notifications"
-    ::= { nsPNotifyObjects 2 }
-
-nsPNotifyMaxMessageNumber OBJECT-TYPE
-    SYNTAX      Unsigned32
-    MAX-ACCESS  accessible-for-notify
-    STATUS      current
-    DESCRIPTION
-        "The maximum number of messages this notification sequence
-        will contain."
-    ::= { nsPNotifyObjects 3 }
-
-
-END
diff --git a/mibs/NET-SNMP-TC.txt b/mibs/NET-SNMP-TC.txt
index 46f7302..a9dc0a1 100644
--- a/mibs/NET-SNMP-TC.txt
+++ b/mibs/NET-SNMP-TC.txt
@@ -93,7 +93,6 @@ win32		  OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 13 } -- unlucky
 hpux11            OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 14 }
 aix               OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 15 }
 macosx            OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 16 }
-dragonfly         OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 17 }
 unknown           OBJECT IDENTIFIER ::= { netSnmpAgentOIDs 255 }
 
 
@@ -120,9 +119,5 @@ netSnmpAAL5PVCDomain	OBJECT IDENTIFIER ::= { netSnmpDomains 3 }
 netSnmpUDPIPv6Domain	OBJECT IDENTIFIER ::= { netSnmpDomains 4 } -- obsolete
 netSnmpTCPIPv6Domain	OBJECT IDENTIFIER ::= { netSnmpDomains 5 } -- obsolete
 netSnmpCallbackDomain	OBJECT IDENTIFIER ::= { netSnmpDomains 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/NETWORK-SERVICES-MIB.txt b/mibs/NETWORK-SERVICES-MIB.txt
deleted file mode 100644
index 0f2cabe..0000000
--- a/mibs/NETWORK-SERVICES-MIB.txt
+++ /dev/null
@@ -1,626 +0,0 @@
-NETWORK-SERVICES-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    OBJECT-TYPE, Counter32, Gauge32, MODULE-IDENTITY, mib-2
-      FROM SNMPv2-SMI
-    TimeStamp, TEXTUAL-CONVENTION
-      FROM SNMPv2-TC
-    MODULE-COMPLIANCE, OBJECT-GROUP
-      FROM SNMPv2-CONF
-    SnmpAdminString
-        FROM SNMP-FRAMEWORK-MIB;
-
-application MODULE-IDENTITY
-    LAST-UPDATED "200003030000Z"
-    ORGANIZATION "IETF Mail and Directory Management Working Group"
-
-    CONTACT-INFO
-      "        Ned Freed
-
-       Postal: Innosoft International, Inc.
-               1050 Lakes Drive
-               West Covina, CA 91790
-               US
-
-          Tel: +1 626 919 3600
-          Fax: +1 626 919 3614
-
-       E-Mail: ned.freed at innosoft.com"
-    DESCRIPTION
-      "The MIB module describing network service applications"
-    REVISION "200003030000Z"
-    DESCRIPTION
-      "This revision, published in RFC 2788, changes a number of
-       DisplayStrings to SnmpAdminStrings. Note that this change
-       is not strictly supported by SMIv2.  However, the alternative
-       of deprecating the old objects and defining new objects
-       would have a more adverse impact on backward compatibility
-       and interoperability, given the particular semantics of
-       these objects. The defining reference for distinguished
-       names has also been updated from RFC 1779 to RFC 2253."
-    REVISION "199905120000Z"
-    DESCRIPTION
-      "This revision fixes a few small technical problems found
-       in previous versions, mostly in regards to the conformance
-       groups for different versions of this MIB.  No changes have
-       been made to the objects this MIB defines since RFC 2248."
-    REVISION "199708170000Z"
-    DESCRIPTION
-      "This revision, published in RFC 2248, adds the
-       applDescription and applURL objects, adds the quiescing
-       state to the applOperStatus object and renames the MIB
-       from the APPLICATION-MIB to the NETWORK-SERVICE-MIB."
-    REVISION "199311280000Z"
-    DESCRIPTION
-      "The original version of this MIB was published in RFC 1565"
-    ::= {mib-2 27}
-
--- Textual conventions
-
--- DistinguishedName is used to refer to objects in the
--- directory.
-
-DistinguishedName ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "255a"
-    STATUS current
-    DESCRIPTION
-        "A Distinguished Name represented in accordance with
-         RFC 2253, presented in the UTF-8 charset defined in
-         RFC 2279."
-    SYNTAX OCTET STRING (SIZE (0..255))
-
--- Uniform Resource Locators are stored in URLStrings.
-
-URLString ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "255a"
-    STATUS current
-    DESCRIPTION
-        "A Uniform Resource Locator represented in accordance
-         with RFCs 1738 and 2368, presented in the NVT ASCII
-         charset defined in RFC 854."
-    SYNTAX OCTET STRING (SIZE (0..255))
-
--- The basic applTable contains a list of the application
--- entities.
-
-applTable OBJECT-TYPE
-    SYNTAX SEQUENCE OF ApplEntry
-    MAX-ACCESS not-accessible
-    STATUS current
-    DESCRIPTION
-        "The table holding objects which apply to all different
-         kinds of applications providing network services.
-         Each network service application capable of being
-         monitored should have a single entry in this table."
-    ::= {application 1}
-
-applEntry OBJECT-TYPE
-    SYNTAX ApplEntry
-    MAX-ACCESS not-accessible
-    STATUS current
-    DESCRIPTION
-      "An entry associated with a single network service
-       application."
-    INDEX {applIndex}
-    ::= {applTable 1}
-
-ApplEntry ::= SEQUENCE {
-    applIndex
-        INTEGER,
-    applName
-        SnmpAdminString,
-    applDirectoryName
-
-        DistinguishedName,
-    applVersion
-        SnmpAdminString,
-    applUptime
-        TimeStamp,
-    applOperStatus
-        INTEGER,
-    applLastChange
-        TimeStamp,
-    applInboundAssociations
-        Gauge32,
-    applOutboundAssociations
-        Gauge32,
-    applAccumulatedInboundAssociations
-        Counter32,
-    applAccumulatedOutboundAssociations
-        Counter32,
-    applLastInboundActivity
-        TimeStamp,
-    applLastOutboundActivity
-        TimeStamp,
-    applRejectedInboundAssociations
-        Counter32,
-    applFailedOutboundAssociations
-        Counter32,
-    applDescription
-        SnmpAdminString,
-    applURL
-        URLString
-}
-
-applIndex OBJECT-TYPE
-    SYNTAX INTEGER (1..2147483647)
-    MAX-ACCESS not-accessible
-    STATUS current
-    DESCRIPTION
-      "An index to uniquely identify the network service
-       application. This attribute is the index used for
-       lexicographic ordering of the table."
-    ::= {applEntry 1}
-
-applName OBJECT-TYPE
-    SYNTAX SnmpAdminString
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The name the network service application chooses to be
-       known by."
-    ::= {applEntry 2}
-
-applDirectoryName OBJECT-TYPE
-    SYNTAX DistinguishedName
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The Distinguished Name of the directory entry where
-       static information about this application is stored.
-       An empty string indicates that no information about
-       the application is available in the directory."
-    ::= {applEntry 3}
-
-applVersion OBJECT-TYPE
-    SYNTAX SnmpAdminString
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The version of network service application software.
-       This field is usually defined by the vendor of the
-       network service application software."
-    ::= {applEntry 4}
-applUptime OBJECT-TYPE
-    SYNTAX TimeStamp
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The value of sysUpTime at the time the network service
-       application was last initialized.  If the application was
-       last initialized prior to the last initialization of the
-       network management subsystem, then this object contains
-       a zero value."
-    ::= {applEntry 5}
-
-applOperStatus OBJECT-TYPE
-    SYNTAX INTEGER {
-      up(1),
-      down(2),
-      halted(3),
-      congested(4),
-      restarting(5),
-      quiescing(6)
-    }
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "Indicates the operational status of the network service
-       application. 'down' indicates that the network service is
-
-       not available. 'up' indicates that the network service
-       is operational and available.  'halted' indicates that the
-       service is operational but not available.  'congested'
-       indicates that the service is operational but no additional
-       inbound associations can be accommodated.  'restarting'
-       indicates that the service is currently unavailable but is
-       in the process of restarting and will be available soon.
-       'quiescing' indicates that service is currently operational
-       but is in the process of shutting down. Additional inbound
-       associations may be rejected by applications in the
-       'quiescing' state."
-    ::= {applEntry 6}
-
-applLastChange OBJECT-TYPE
-    SYNTAX TimeStamp
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The value of sysUpTime at the time the network service
-       application entered its current operational state.  If
-       the current state was entered prior to the last
-       initialization of the local network management subsystem,
-       then this object contains a zero value."
-    ::= {applEntry 7}
-
-applInboundAssociations OBJECT-TYPE
-    SYNTAX Gauge32
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The number of current associations to the network service
-       application, where it is the responder.  An inbound
-       association occurs when another application successfully
-       connects to this one."
-    ::= {applEntry 8}
-
-applOutboundAssociations OBJECT-TYPE
-    SYNTAX Gauge32
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The number of current associations to the network service
-       application, where it is the initiator.  An outbound
-       association occurs when this application successfully
-       connects to another one."
-    ::= {applEntry 9}
-
-applAccumulatedInboundAssociations OBJECT-TYPE
-    SYNTAX Counter32
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The total number of associations to the application entity
-       since application initialization, where it was the responder."
-    ::= {applEntry 10}
-
-applAccumulatedOutboundAssociations OBJECT-TYPE
-    SYNTAX Counter32
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The total number of associations to the application entity
-       since application initialization, where it was the initiator."
-    ::= {applEntry 11}
-
-applLastInboundActivity OBJECT-TYPE
-    SYNTAX TimeStamp
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The value of sysUpTime at the time this application last
-       had an inbound association.  If the last association
-       occurred prior to the last initialization of the network
-       subsystem, then this object contains a zero value."
-    ::= {applEntry 12}
-
-applLastOutboundActivity OBJECT-TYPE
-    SYNTAX TimeStamp
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The value of sysUpTime at the time this application last
-       had an outbound association.  If the last association
-       occurred prior to the last initialization of the network
-       subsystem, then this object contains a zero value."
-    ::= {applEntry 13}
-
-applRejectedInboundAssociations OBJECT-TYPE
-    SYNTAX Counter32
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The total number of inbound associations the application
-       entity has rejected, since application initialization.
-       Rejected associations are not counted in the accumulated
-       association totals.  Note that this only counts
-
-       associations the application entity has rejected itself;
-       it does not count rejections that occur at lower layers
-       of the network.  Thus, this counter may not reflect the
-       true number of failed inbound associations."
-    ::= {applEntry 14}
-
-applFailedOutboundAssociations OBJECT-TYPE
-    SYNTAX Counter32
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The total number associations where the application entity
-       is initiator and association establishment has failed,
-       since application initialization.  Failed associations are
-       not counted in the accumulated association totals."
-    ::= {applEntry 15}
-
-applDescription OBJECT-TYPE
-    SYNTAX SnmpAdminString
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "A text description of the application.  This information
-       is intended to identify and briefly describe the
-       application in a status display."
-    ::= {applEntry 16}
-
-applURL OBJECT-TYPE
-    SYNTAX URLString
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "A URL pointing to a description of the application.
-       This information is intended to identify and describe
-       the application in a status display."
-    ::= {applEntry 17}
-
--- The assocTable augments the information in the applTable
--- with information about associations.  Note that two levels
--- of compliance are specified below, depending on whether
--- association monitoring is mandated.
-
-assocTable OBJECT-TYPE
-    SYNTAX SEQUENCE OF AssocEntry
-    MAX-ACCESS not-accessible
-    STATUS current
-    DESCRIPTION
-        "The table holding a set of all active application
-
-         associations."
-    ::= {application 2}
-
-assocEntry OBJECT-TYPE
-    SYNTAX AssocEntry
-    MAX-ACCESS not-accessible
-    STATUS current
-    DESCRIPTION
-      "An entry associated with an association for a network
-       service application."
-    INDEX {applIndex, assocIndex}
-    ::= {assocTable 1}
-
-AssocEntry ::= SEQUENCE {
-    assocIndex
-        INTEGER,
-    assocRemoteApplication
-        SnmpAdminString,
-    assocApplicationProtocol
-        OBJECT IDENTIFIER,
-    assocApplicationType
-        INTEGER,
-    assocDuration
-        TimeStamp
-}
-
-assocIndex OBJECT-TYPE
-    SYNTAX INTEGER (1..2147483647)
-    MAX-ACCESS not-accessible
-    STATUS current
-    DESCRIPTION
-      "An index to uniquely identify each association for a network
-       service application.  This attribute is the index that is
-       used for lexicographic ordering of the table.  Note that the
-       table is also indexed by the applIndex."
-    ::= {assocEntry 1}
-
-assocRemoteApplication OBJECT-TYPE
-    SYNTAX SnmpAdminString
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The name of the system running remote network service
-       application.  For an IP-based application this should be
-       either a domain name or IP address.  For an OSI application
-       it should be the string encoded distinguished name of the
-       managed object.  For X.400(1984) MTAs which do not have a
-       Distinguished Name, the RFC 2156 syntax 'mta in
-
-       globalid' used in X400-Received: fields can be used. Note,
-       however, that not all connections an MTA makes are
-       necessarily to another MTA."
-    ::= {assocEntry 2}
-
-assocApplicationProtocol OBJECT-TYPE
-    SYNTAX OBJECT IDENTIFIER
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "An identification of the protocol being used for the
-       application.  For an OSI Application, this will be the
-       Application Context.  For Internet applications, OID
-       values of the form {applTCPProtoID port} or {applUDPProtoID
-       port} are used for TCP-based and UDP-based protocols,
-       respectively. In either case 'port' corresponds to the
-       primary port number being used by the protocol. The
-       usual IANA procedures may be used to register ports for
-       new protocols."
-    ::= {assocEntry 3}
-
-assocApplicationType OBJECT-TYPE
-    SYNTAX INTEGER {
-        uainitiator(1),
-        uaresponder(2),
-        peerinitiator(3),
-        peerresponder(4)}
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "This indicates whether the remote application is some type of
-       client making use of this network service (e.g., a Mail User
-       Agent) or a server acting as a peer. Also indicated is whether
-       the remote end initiated an incoming connection to the network
-       service or responded to an outgoing connection made by the
-       local application.  MTAs and messaging gateways are
-       considered to be peers for the purposes of this variable."
-    ::= {assocEntry 4}
-
-assocDuration OBJECT-TYPE
-    SYNTAX TimeStamp
-    MAX-ACCESS read-only
-    STATUS current
-    DESCRIPTION
-      "The value of sysUpTime at the time this association was
-       started.  If this association started prior to the last
-       initialization of the network subsystem, then this
-       object contains a zero value."
-    ::= {assocEntry 5}
-
--- Conformance information
-
-applConformance OBJECT IDENTIFIER ::= {application 3}
-
-applGroups      OBJECT IDENTIFIER ::= {applConformance 1}
-applCompliances OBJECT IDENTIFIER ::= {applConformance 2}
-
--- Compliance statements
-
-applCompliance MODULE-COMPLIANCE
-    STATUS obsolete
-    DESCRIPTION
-      "The compliance statement for RFC 1565 implementations
-       which support the Network Services Monitoring MIB
-       for basic monitoring of network service applications.
-       This is the basic compliance statement for RFC 1565."
-    MODULE
-      MANDATORY-GROUPS {applRFC1565Group}
-    ::= {applCompliances 1}
-
-assocCompliance MODULE-COMPLIANCE
-    STATUS obsolete
-    DESCRIPTION
-      "The compliance statement for RFC 1565 implementations
-       which support the Network Services Monitoring MIB
-       for basic monitoring of network service applications
-       and their associations."
-    MODULE
-      MANDATORY-GROUPS {applRFC1565Group, assocRFC1565Group}
-    ::= {applCompliances 2}
-
-applRFC2248Compliance MODULE-COMPLIANCE
-    STATUS deprecated
-    DESCRIPTION
-      "The compliance statement for RFC 2248 implementations
-       which support the Network Services Monitoring MIB
-       for basic monitoring of network service applications."
-    MODULE
-      MANDATORY-GROUPS {applRFC2248Group}
-    ::= {applCompliances 3}
-
-assocRFC2248Compliance MODULE-COMPLIANCE
-    STATUS deprecated
-    DESCRIPTION
-      "The compliance statement for RFC 2248 implementations
-
-       which support the Network Services Monitoring MIB for
-       basic monitoring of network service applications and
-       their associations."
-    MODULE
-      MANDATORY-GROUPS {applRFC2248Group, assocRFC2248Group}
-    ::= {applCompliances 4}
-
-applRFC2788Compliance MODULE-COMPLIANCE
-    STATUS current
-    DESCRIPTION
-      "The compliance statement for RFC 2788 implementations
-       which support the Network Services Monitoring MIB
-       for basic monitoring of network service applications."
-    MODULE
-      MANDATORY-GROUPS {applRFC2788Group}
-    ::= {applCompliances 5}
-
-assocRFC2788Compliance MODULE-COMPLIANCE
-    STATUS current
-    DESCRIPTION
-      "The compliance statement for RFC 2788 implementations
-       which support the Network Services Monitoring MIB for
-       basic monitoring of network service applications and
-       their associations."
-    MODULE
-      MANDATORY-GROUPS {applRFC2788Group, assocRFC2788Group}
-    ::= {applCompliances 6}
-
--- Units of conformance
-
-applRFC1565Group OBJECT-GROUP
-    OBJECTS {
-      applName, applVersion, applUptime, applOperStatus,
-      applLastChange, applInboundAssociations,
-      applOutboundAssociations, applAccumulatedInboundAssociations,
-      applAccumulatedOutboundAssociations, applLastInboundActivity,
-      applLastOutboundActivity, applRejectedInboundAssociations,
-      applFailedOutboundAssociations}
-    STATUS obsolete
-    DESCRIPTION
-      "A collection of objects providing basic monitoring of
-       network service applications.  This is the original set
-       of such objects defined in RFC 1565."
-    ::= {applGroups 7}
-
-assocRFC1565Group OBJECT-GROUP
-    OBJECTS {
-
-      assocRemoteApplication, assocApplicationProtocol,
-      assocApplicationType, assocDuration}
-    STATUS obsolete
-    DESCRIPTION
-      "A collection of objects providing basic monitoring of
-       network service applications' associations.  This is the
-       original set of such objects defined in RFC 1565."
-    ::= {applGroups 2}
-
-applRFC2248Group OBJECT-GROUP
-    OBJECTS {
-      applName, applVersion, applUptime, applOperStatus,
-      applLastChange, applInboundAssociations,
-      applOutboundAssociations, applAccumulatedInboundAssociations,
-      applAccumulatedOutboundAssociations, applLastInboundActivity,
-      applLastOutboundActivity, applRejectedInboundAssociations,
-      applFailedOutboundAssociations, applDescription, applURL}
-    STATUS deprecated
-    DESCRIPTION
-      "A collection of objects providing basic monitoring of
-       network service applications.  This group was originally
-       defined in RFC 2248; note that applDirectoryName is
-       missing."
-    ::= {applGroups 3}
-
-assocRFC2248Group OBJECT-GROUP
-    OBJECTS {
-      assocRemoteApplication, assocApplicationProtocol,
-      assocApplicationType, assocDuration}
-    STATUS deprecated
-    DESCRIPTION
-      "A collection of objects providing basic monitoring of
-       network service applications' associations.  This group
-       was originally defined by RFC 2248."
-    ::= {applGroups 4}
-
-applRFC2788Group OBJECT-GROUP
-    OBJECTS {
-      applName, applDirectoryName, applVersion, applUptime,
-      applOperStatus, applLastChange, applInboundAssociations,
-      applOutboundAssociations, applAccumulatedInboundAssociations,
-      applAccumulatedOutboundAssociations, applLastInboundActivity,
-      applLastOutboundActivity, applRejectedInboundAssociations,
-      applFailedOutboundAssociations, applDescription, applURL}
-    STATUS current
-    DESCRIPTION
-      "A collection of objects providing basic monitoring of
-       network service applications.  This is the appropriate
-
-       group for RFC 2788 -- it adds the applDirectoryName object
-       missing in RFC 2248."
-    ::= {applGroups 5}
-
-assocRFC2788Group OBJECT-GROUP
-    OBJECTS {
-      assocRemoteApplication, assocApplicationProtocol,
-      assocApplicationType, assocDuration}
-    STATUS current
-    DESCRIPTION
-      "A collection of objects providing basic monitoring of
-       network service applications' associations.  This is
-       the appropriate group for RFC 2788."
-    ::= {applGroups 6}
-
--- OIDs of the form {applTCPProtoID port} are intended to be used
--- for TCP-based protocols that don't have OIDs assigned by other
--- means. {applUDPProtoID port} serves the same purpose for
--- UDP-based protocols. In either case 'port' corresponds to
--- the primary port number being used by the protocol. For example,
--- assuming no other OID is assigned for SMTP, an OID of
--- {applTCPProtoID 25} could be used, since SMTP is a TCP-based
--- protocol that uses port 25 as its primary port.
-
-applTCPProtoID OBJECT IDENTIFIER ::= {application 4}
-applUDPProtoID OBJECT IDENTIFIER ::= {application 5}
-
-END
diff --git a/mibs/NOTIFICATION-LOG-MIB.txt b/mibs/NOTIFICATION-LOG-MIB.txt
deleted file mode 100644
index c7da934..0000000
--- a/mibs/NOTIFICATION-LOG-MIB.txt
+++ /dev/null
@@ -1,753 +0,0 @@
-NOTIFICATION-LOG-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE,
-    Integer32, Unsigned32,
-    TimeTicks, Counter32, Counter64,
-    IpAddress, Opaque, mib-2       FROM SNMPv2-SMI
-    TimeStamp, DateAndTime,
-    StorageType, RowStatus,
-    TAddress, TDomain              FROM SNMPv2-TC
-    SnmpAdminString, SnmpEngineID  FROM SNMP-FRAMEWORK-MIB
-    MODULE-COMPLIANCE, OBJECT-GROUP     FROM SNMPv2-CONF;
-
-notificationLogMIB MODULE-IDENTITY
-    LAST-UPDATED "200011270000Z"            -- 27 November 2000
-    ORGANIZATION "IETF Distributed Management Working Group"
-    CONTACT-INFO "Ramanathan Kavasseri
-                  Cisco Systems, Inc.
-                  170 West Tasman Drive,
-                  San Jose CA 95134-1706.
-                  Phone: +1 408 527 2446
-                  Email: ramk at cisco.com"
-    DESCRIPTION
-     "The MIB module for logging SNMP Notifications, that is, Traps
-
-     and Informs."
--- Revision History
-
-       REVISION     "200011270000Z"            -- 27 November 2000
-       DESCRIPTION  "This is the initial version of this MIB.
-               Published as RFC 3014"
-    ::= { mib-2 92 }
-
-notificationLogMIBObjects OBJECT IDENTIFIER ::= { notificationLogMIB 1 }
-
-nlmConfig OBJECT IDENTIFIER ::= { notificationLogMIBObjects 1 }
-nlmStats  OBJECT IDENTIFIER ::= { notificationLogMIBObjects 2 }
-nlmLog         OBJECT IDENTIFIER ::= { notificationLogMIBObjects 3 }
-
---
--- Configuration Section
---
-
-nlmConfigGlobalEntryLimit OBJECT-TYPE
-    SYNTAX      Unsigned32
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-     "The maximum number of notification entries that may be held
-     in nlmLogTable for all nlmLogNames added together.  A particular
-     setting does not guarantee that much data can be held.
-
-     If an application changes the limit while there are
-     Notifications in the log, the oldest Notifications MUST be
-     discarded to bring the log down to the new limit - thus the
-     value of nlmConfigGlobalEntryLimit MUST take precedence over
-     the values of nlmConfigGlobalAgeOut and nlmConfigLogEntryLimit,
-     even if the Notification being discarded has been present for
-     fewer minutes than the value of nlmConfigGlobalAgeOut, or if
-     the named log has fewer entries than that specified in
-     nlmConfigLogEntryLimit.
-
-     A value of 0 means no limit.
-
-     Please be aware that contention between multiple managers
-     trying to set this object to different values MAY affect the
-     reliability and completeness of data seen by each manager."
-    DEFVAL { 0 }
-    ::= { nlmConfig 1 }
-
-nlmConfigGlobalAgeOut OBJECT-TYPE
-    SYNTAX      Unsigned32
-    UNITS       "minutes"
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-     "The number of minutes a Notification SHOULD be kept in a log
-     before it is automatically removed.
-
-     If an application changes the value of nlmConfigGlobalAgeOut,
-     Notifications older than the new time MAY be discarded to meet the
-     new time.
-
-     A value of 0 means no age out.
-
-     Please be aware that contention between multiple managers
-     trying to set this object to different values MAY affect the
-     reliability and completeness of data seen by each manager."
-    DEFVAL { 1440 }  -- 24 hours
-    ::= { nlmConfig 2 }
-
---
--- Basic Log Configuration Table
---
-
-nlmConfigLogTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF NlmConfigLogEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "A table of logging control entries."
-    ::= { nlmConfig 3 }
-
-nlmConfigLogEntry OBJECT-TYPE
-    SYNTAX      NlmConfigLogEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "A logging control entry.  Depending on the entry's storage type
-     entries may be supplied by the system or created and deleted by
-     applications using nlmConfigLogEntryStatus."
-    INDEX      { nlmLogName }
-    ::= { nlmConfigLogTable 1 }
-
-NlmConfigLogEntry ::= SEQUENCE {
-    nlmLogName           SnmpAdminString,
-    nlmConfigLogFilterName    SnmpAdminString,
-    nlmConfigLogEntryLimit    Unsigned32,
-    nlmConfigLogAdminStatus   INTEGER,
-    nlmConfigLogOperStatus    INTEGER,
-    nlmConfigLogStorageType   StorageType,
-    nlmConfigLogEntryStatus   RowStatus
-    }
-
-nlmLogName OBJECT-TYPE
-    SYNTAX     SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-     "The name of the log.
-
-     An implementation may allow multiple named logs, up to some
-     implementation-specific limit (which may be none).  A
-     zero-length log name is reserved for creation and deletion by
-     the managed system, and MUST be used as the default log name by
-     systems that do not support named logs."
-    ::= { nlmConfigLogEntry 1 }
-
-nlmConfigLogFilterName OBJECT-TYPE
-    SYNTAX     SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-     "A value of snmpNotifyFilterProfileName as used as an index
-     into the snmpNotifyFilterTable in the SNMP Notification MIB,
-     specifying the locally or remotely originated Notifications
-     to be filtered out and not logged in this log.
-
-     A zero-length value or a name that does not identify an
-     existing entry in snmpNotifyFilterTable indicate no
-     Notifications are to be logged in this log."
-    DEFVAL { ''H }
-    ::= { nlmConfigLogEntry 2 }
-
-nlmConfigLogEntryLimit OBJECT-TYPE
-    SYNTAX     Unsigned32
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-     "The maximum number of notification entries that can be held in
-     nlmLogTable for this named log.  A particular setting does not
-     guarantee that that much data can be held.
-
-     If an application changes the limit while there are
-     Notifications in the log, the oldest Notifications are discarded
-     to bring the log down to the new limit.
-
-     A value of 0 indicates no limit.
-
-     Please be aware that contention between multiple managers
-     trying to set this object to different values MAY affect the
-     reliability and completeness of data seen by each manager."
-    DEFVAL { 0 }
-    ::= { nlmConfigLogEntry 3 }
-
-nlmConfigLogAdminStatus OBJECT-TYPE
-    SYNTAX     INTEGER { enabled(1), disabled(2) }
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-     "Control to enable or disable the log without otherwise
-     disturbing the log's entry.
-
-     Please be aware that contention between multiple managers
-     trying to set this object to different values MAY affect the
-     reliability and completeness of data seen by each manager."
-    DEFVAL { enabled }
-    ::= { nlmConfigLogEntry 4 }
-
-nlmConfigLogOperStatus OBJECT-TYPE
-    SYNTAX     INTEGER { disabled(1), operational(2), noFilter(3) }
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-     "The operational status of this log:
-
-          disabled  administratively disabled
-
-          operational    administratively enabled and working
-
-          noFilter  administratively enabled but either
-                    nlmConfigLogFilterName is zero length
-                    or does not name an existing entry in
-                    snmpNotifyFilterTable"
-    ::= { nlmConfigLogEntry 5 }
-
-nlmConfigLogStorageType OBJECT-TYPE
-    SYNTAX     StorageType
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-     "The storage type of this conceptual row."
-    ::= { nlmConfigLogEntry 6 }
-
-nlmConfigLogEntryStatus OBJECT-TYPE
-    SYNTAX     RowStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-     "Control for creating and deleting entries.  Entries may be
-     modified while active.
-
-     For non-null-named logs, the managed system records the security
-     credentials from the request that sets nlmConfigLogStatus
-     to 'active' and uses that identity to apply access control to
-     the objects in the Notification to decide if that Notification
-     may be logged."
-    ::= { nlmConfigLogEntry 7 }
-
---
--- Statistics Section
---
-
-nlmStatsGlobalNotificationsLogged OBJECT-TYPE
-    SYNTAX      Counter32
-    UNITS       "notifications"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The number of Notifications put into the nlmLogTable.  This
-     counts a Notification once for each log entry, so a Notification
-      put into multiple logs is counted multiple times."
-    ::= { nlmStats 1 }
-
-nlmStatsGlobalNotificationsBumped OBJECT-TYPE
-    SYNTAX      Counter32
-    UNITS       "notifications"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The number of log entries discarded to make room for a new entry
-     due to lack of resources or the value of nlmConfigGlobalEntryLimit
-     or nlmConfigLogEntryLimit.  This does not include entries discarded
-     due to the value of nlmConfigGlobalAgeOut."
-    ::= { nlmStats 2 }
-
---
--- Log Statistics Table
---
-
-nlmStatsLogTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF NlmStatsLogEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "A table of Notification log statistics entries."
-    ::= { nlmStats 3 }
-
-nlmStatsLogEntry OBJECT-TYPE
-    SYNTAX      NlmStatsLogEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "A Notification log statistics entry."
-    AUGMENTS { nlmConfigLogEntry }
-    ::= { nlmStatsLogTable 1 }
-
-NlmStatsLogEntry ::= SEQUENCE {
-    nlmStatsLogNotificationsLogged Counter32,
-    nlmStatsLogNotificationsBumped Counter32
-}
-
-nlmStatsLogNotificationsLogged OBJECT-TYPE
-    SYNTAX      Counter32
-    UNITS       "notifications"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The number of Notifications put in this named log."
-    ::= { nlmStatsLogEntry 1 }
-
-nlmStatsLogNotificationsBumped OBJECT-TYPE
-    SYNTAX      Counter32
-    UNITS       "notifications"
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The number of log entries discarded from this named log to make
-     room for a new entry due to lack of resources or the value of
-     nlmConfigGlobalEntryLimit or nlmConfigLogEntryLimit.  This does not
-     include entries discarded due to the value of
-     nlmConfigGlobalAgeOut."
-    ::= { nlmStatsLogEntry 2 }
-
---
--- Log Section
---
-
---
--- Log Table
-
---
-
-nlmLogTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF NlmLogEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "A table of Notification log entries.
-
-     It is an implementation-specific matter whether entries in this
-     table are preserved across initializations of the management
-     system.  In general one would expect that they are not.
-
-     Note that keeping entries across initializations of the
-     management system leads to some confusion with counters and
-     TimeStamps, since both of those are based on sysUpTime, which
-     resets on management initialization.  In this situation,
-     counters apply only after the reset and nlmLogTime for entries
-     made before the reset MUST be set to 0."
-    ::= { nlmLog 1 }
-
-nlmLogEntry OBJECT-TYPE
-    SYNTAX      NlmLogEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "A Notification log entry.
-
-     Entries appear in this table when Notifications occur and pass
-     filtering by nlmConfigLogFilterName and access control.  They are
-     removed to make way for new entries due to lack of resources or
-     the values of nlmConfigGlobalEntryLimit, nlmConfigGlobalAgeOut, or
-     nlmConfigLogEntryLimit.
-
-     If adding an entry would exceed nlmConfigGlobalEntryLimit or system
-     resources in general, the oldest entry in any log SHOULD be removed
-     to make room for the new one.
-
-     If adding an entry would exceed nlmConfigLogEntryLimit the oldest
-     entry in that log SHOULD be removed to make room for the new one.
-
-     Before the managed system puts a locally-generated Notification
-     into a non-null-named log it assures that the creator of the log
-     has access to the information in the Notification.  If not it
-     does not log that Notification in that log."
-    INDEX       { nlmLogName, nlmLogIndex }
-    ::= { nlmLogTable 1 }
-
-NlmLogEntry ::= SEQUENCE {
-    nlmLogIndex                Unsigned32,
-    nlmLogTime                 TimeStamp,
-    nlmLogDateAndTime          DateAndTime,
-    nlmLogEngineID             SnmpEngineID,
-    nlmLogEngineTAddress       TAddress,
-    nlmLogEngineTDomain        TDomain,
-    nlmLogContextEngineID      SnmpEngineID,
-    nlmLogContextName          SnmpAdminString,
-    nlmLogNotificationID       OBJECT IDENTIFIER
-}
-
-nlmLogIndex OBJECT-TYPE
-    SYNTAX     Unsigned32 (1..4294967295)
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-     "A monotonically increasing integer for the sole purpose of
-     indexing entries within the named log.  When it reaches the
-     maximum value, an extremely unlikely event, the agent wraps the
-     value back to 1."
-    ::= { nlmLogEntry 1 }
-
-nlmLogTime OBJECT-TYPE
-    SYNTAX      TimeStamp
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value of sysUpTime when the entry was placed in the log. If
-     the entry occurred before the most recent management system
-     initialization this object value MUST be set to zero."
-    ::= { nlmLogEntry 2 }
-
-nlmLogDateAndTime OBJECT-TYPE
-    SYNTAX      DateAndTime
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The local date and time when the entry was logged, instantiated
-     only by systems that have date and time capability."
-    ::= { nlmLogEntry 3 }
-
-nlmLogEngineID OBJECT-TYPE
-    SYNTAX      SnmpEngineID
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The identification of the SNMP engine at which the Notification
-
-     originated.
-
-     If the log can contain Notifications from only one engine
-     or the Trap is in SNMPv1 format, this object is a zero-length
-     string."
-    ::= { nlmLogEntry 4 }
-
-nlmLogEngineTAddress OBJECT-TYPE
-    SYNTAX      TAddress
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The transport service address of the SNMP engine from which the
-     Notification was received, formatted according to the corresponding
-     value of nlmLogEngineTDomain. This is used to identify the source
-     of an SNMPv1 trap, since an nlmLogEngineId cannot be extracted
-     from the SNMPv1 trap pdu.
-
-     This object MUST always be instantiated, even if the log
-     can contain Notifications from only one engine.
-
-     Please be aware that the nlmLogEngineTAddress may not uniquely
-     identify the SNMP engine from which the Notification was received.
-     For example, if an SNMP engine uses DHCP or NAT to obtain
-     ip addresses, the address it uses may be shared with other
-     network devices, and hence will not uniquely identify the
-     SNMP engine."
-    ::= { nlmLogEntry 5 }
-
-nlmLogEngineTDomain OBJECT-TYPE
-    SYNTAX      TDomain
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "Indicates the kind of transport service by which a Notification
-     was received from an SNMP engine. nlmLogEngineTAddress contains
-     the transport service address of the SNMP engine from which
-     this Notification was received.
-
-     Possible values for this object are presently found in the
-     Transport Mappings for SNMPv2 document (RFC 1906 [8])."
-    ::= { nlmLogEntry 6 }
-
-nlmLogContextEngineID OBJECT-TYPE
-    SYNTAX      SnmpEngineID
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "If the Notification was received in a protocol which has a
-      contextEngineID element like SNMPv3, this object has that value.
-      Otherwise its value is a zero-length string."
-     ::= { nlmLogEntry 7 }
-
-nlmLogContextName OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The name of the SNMP MIB context from which the Notification came.
-     For SNMPv1 Traps this is the community string from the Trap."
-    ::= { nlmLogEntry 8 }
-
-nlmLogNotificationID OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The NOTIFICATION-TYPE object identifier of the Notification that
-     occurred."
-    ::= { nlmLogEntry 9 }
-
---
--- Log Variable Table
---
-
-nlmLogVariableTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF NlmLogVariableEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "A table of variables to go with Notification log entries."
-    ::= { nlmLog 2 }
-
-nlmLogVariableEntry OBJECT-TYPE
-    SYNTAX      NlmLogVariableEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-     "A Notification log entry variable.
-
-     Entries appear in this table when there are variables in
-     the varbind list of a Notification in nlmLogTable."
-    INDEX       { nlmLogName, nlmLogIndex, nlmLogVariableIndex }
-    ::= { nlmLogVariableTable 1 }
-
-NlmLogVariableEntry ::= SEQUENCE {
-
-    nlmLogVariableIndex              Unsigned32,
-    nlmLogVariableID                 OBJECT IDENTIFIER,
-    nlmLogVariableValueType          INTEGER,
-    nlmLogVariableCounter32Val       Counter32,
-    nlmLogVariableUnsigned32Val      Unsigned32,
-    nlmLogVariableTimeTicksVal       TimeTicks,
-    nlmLogVariableInteger32Val       Integer32,
-    nlmLogVariableOctetStringVal     OCTET STRING,
-    nlmLogVariableIpAddressVal       IpAddress,
-    nlmLogVariableOidVal             OBJECT IDENTIFIER,
-    nlmLogVariableCounter64Val       Counter64,
-    nlmLogVariableOpaqueVal          Opaque
-}
-
-nlmLogVariableIndex OBJECT-TYPE
-    SYNTAX     Unsigned32 (1..4294967295)
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-     "A monotonically increasing integer, starting at 1 for a given
-     nlmLogIndex, for indexing variables within the logged
-     Notification."
-    ::= { nlmLogVariableEntry 1 }
-
-nlmLogVariableID OBJECT-TYPE
-    SYNTAX     OBJECT IDENTIFIER
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-     "The variable's object identifier."
-    ::= { nlmLogVariableEntry 2 }
-
-nlmLogVariableValueType OBJECT-TYPE
-    SYNTAX      INTEGER { counter32(1), unsigned32(2), timeTicks(3),
-                 integer32(4), ipAddress(5), octetString(6),
-                 objectId(7), counter64(8), opaque(9) }
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The type of the value.  One and only one of the value
-     objects that follow must be instantiated, based on this type."
-    ::= { nlmLogVariableEntry 3 }
-
-nlmLogVariableCounter32Val OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when nlmLogVariableType is 'counter32'."
-    ::= { nlmLogVariableEntry 4 }
-
-nlmLogVariableUnsigned32Val OBJECT-TYPE
-    SYNTAX      Unsigned32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when nlmLogVariableType is 'unsigned32'."
-    ::= { nlmLogVariableEntry 5 }
-
-nlmLogVariableTimeTicksVal OBJECT-TYPE
-    SYNTAX      TimeTicks
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when nlmLogVariableType is 'timeTicks'."
-    ::= { nlmLogVariableEntry 6 }
-
-nlmLogVariableInteger32Val OBJECT-TYPE
-    SYNTAX      Integer32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when nlmLogVariableType is 'integer32'."
-    ::= { nlmLogVariableEntry 7 }
-
-nlmLogVariableOctetStringVal OBJECT-TYPE
-    SYNTAX      OCTET STRING
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when nlmLogVariableType is 'octetString'."
-    ::= { nlmLogVariableEntry 8 }
-
-nlmLogVariableIpAddressVal OBJECT-TYPE
-    SYNTAX      IpAddress
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when nlmLogVariableType is 'ipAddress'.
-     Although this seems to be unfriendly for IPv6, we
-     have to recognize that there are a number of older
-     MIBs that do contain an IPv4 format address, known
-     as IpAddress.
-
-     IPv6 addresses are represented using TAddress or
-     InetAddress, and so the underlying datatype is
-
-     OCTET STRING, and their value would be stored in
-     the nlmLogVariableOctetStringVal column."
-    ::= { nlmLogVariableEntry 9 }
-
-nlmLogVariableOidVal OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when nlmLogVariableType is 'objectId'."
-    ::= { nlmLogVariableEntry 10 }
-
-nlmLogVariableCounter64Val OBJECT-TYPE
-    SYNTAX      Counter64
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when nlmLogVariableType is 'counter64'."
-    ::= { nlmLogVariableEntry 11 }
-
-nlmLogVariableOpaqueVal OBJECT-TYPE
-    SYNTAX      Opaque
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-     "The value when nlmLogVariableType is 'opaque'."
-    ::= { nlmLogVariableEntry 12 }
-
---
--- Conformance
---
-
-notificationLogMIBConformance OBJECT IDENTIFIER ::=
-    { notificationLogMIB 3 }
-notificationLogMIBCompliances OBJECT IDENTIFIER ::=
-    { notificationLogMIBConformance 1 }
-notificationLogMIBGroups      OBJECT IDENTIFIER ::=
-    { notificationLogMIBConformance 2 }
-
--- Compliance
-
-notificationLogMIBCompliance MODULE-COMPLIANCE
-     STATUS current
-     DESCRIPTION
-          "The compliance statement for entities which implement
-          the Notification Log MIB."
-     MODULE    -- this module
-
-          MANDATORY-GROUPS {
-               notificationLogConfigGroup,
-               notificationLogStatsGroup,
-               notificationLogLogGroup
-          }
-
-     OBJECT nlmConfigGlobalEntryLimit
-         SYNTAX Unsigned32 (0..4294967295)
-         MIN-ACCESS read-only
-         DESCRIPTION
-          "Implementations may choose a limit and not allow it to be
-          changed or may enforce an upper or lower bound on the
-          limit."
-
-     OBJECT nlmConfigLogEntryLimit
-         SYNTAX Unsigned32 (0..4294967295)
-         MIN-ACCESS read-only
-         DESCRIPTION
-          "Implementations may choose a limit and not allow it to be
-          changed or may enforce an upper or lower bound on the
-          limit."
-
-     OBJECT nlmConfigLogEntryStatus
-         MIN-ACCESS read-only
-         DESCRIPTION
-          "Implementations may disallow the creation of named logs."
-
-     GROUP notificationLogDateGroup
-         DESCRIPTION
-          "This group is mandatory on systems that keep wall clock
-          date and time and should not be implemented on systems that
-          do not have a wall clock date."
-     ::= { notificationLogMIBCompliances 1 }
-
--- Units of Conformance
-
-notificationLogConfigGroup OBJECT-GROUP
-     OBJECTS {
-          nlmConfigGlobalEntryLimit,
-          nlmConfigGlobalAgeOut,
-          nlmConfigLogFilterName,
-          nlmConfigLogEntryLimit,
-          nlmConfigLogAdminStatus,
-          nlmConfigLogOperStatus,
-          nlmConfigLogStorageType,
-          nlmConfigLogEntryStatus
-     }
-     STATUS current
-     DESCRIPTION
-          "Notification log configuration management."
-     ::= { notificationLogMIBGroups 1 }
-
-notificationLogStatsGroup OBJECT-GROUP
-     OBJECTS {
-          nlmStatsGlobalNotificationsLogged,
-          nlmStatsGlobalNotificationsBumped,
-          nlmStatsLogNotificationsLogged,
-          nlmStatsLogNotificationsBumped
-     }
-     STATUS current
-     DESCRIPTION
-          "Notification log statistics."
-     ::= { notificationLogMIBGroups 2 }
-
-notificationLogLogGroup OBJECT-GROUP
-     OBJECTS {
-          nlmLogTime,
-          nlmLogEngineID,
-          nlmLogEngineTAddress,
-          nlmLogEngineTDomain,
-          nlmLogContextEngineID,
-          nlmLogContextName,
-          nlmLogNotificationID,
-          nlmLogVariableID,
-          nlmLogVariableValueType,
-          nlmLogVariableCounter32Val,
-          nlmLogVariableUnsigned32Val,
-          nlmLogVariableTimeTicksVal,
-          nlmLogVariableInteger32Val,
-          nlmLogVariableOctetStringVal,
-          nlmLogVariableIpAddressVal,
-          nlmLogVariableOidVal,
-          nlmLogVariableCounter64Val,
-          nlmLogVariableOpaqueVal
-     }
-     STATUS current
-     DESCRIPTION
-          "Notification log data."
-     ::= { notificationLogMIBGroups 3 }
-
-notificationLogDateGroup OBJECT-GROUP
-     OBJECTS {
-          nlmLogDateAndTime
-     }
-     STATUS current
-     DESCRIPTION
-          "Conditionally mandatory notification log data.
-          This group is mandatory on systems that keep wall
-          clock date and time and should not be implemented
-          on systems that do not have a wall clock date."
-     ::= { notificationLogMIBGroups 4 }
-
-END
diff --git a/mibs/RFC1155-SMI.txt b/mibs/RFC1155-SMI.txt
deleted file mode 100644
index 3abc7ff..0000000
--- a/mibs/RFC1155-SMI.txt
+++ /dev/null
@@ -1,119 +0,0 @@
-RFC1155-SMI DEFINITIONS ::= BEGIN
-
-EXPORTS -- EVERYTHING
-        internet, directory, mgmt,
-        experimental, private, enterprises,
-        OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax,
-        ApplicationSyntax, NetworkAddress, IpAddress,
-        Counter, Gauge, TimeTicks, Opaque;
-
- -- the path to the root
-
- internet      OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
-
- directory     OBJECT IDENTIFIER ::= { internet 1 }
-
- mgmt          OBJECT IDENTIFIER ::= { internet 2 }
-
- experimental  OBJECT IDENTIFIER ::= { internet 3 }
-
- private       OBJECT IDENTIFIER ::= { internet 4 }
- enterprises   OBJECT IDENTIFIER ::= { private 1 }
-
- -- definition of object types
-
- OBJECT-TYPE MACRO ::=
- BEGIN
-     TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax)
-                       "ACCESS" Access
-                       "STATUS" Status
-     VALUE NOTATION ::= value (VALUE ObjectName)
-
-     Access ::= "read-only"
-                     | "read-write"
-                     | "write-only"
-                     | "not-accessible"
-     Status ::= "mandatory"
-                     | "optional"
-                     | "obsolete"
- END
-
-    -- names of objects in the MIB
-
-    ObjectName ::=
-        OBJECT IDENTIFIER
-
-    -- syntax of objects in the MIB
-
-    ObjectSyntax ::=
-        CHOICE {
-            simple
-                SimpleSyntax,
-    -- note that simple SEQUENCEs are not directly
-    -- mentioned here to keep things simple (i.e.,
-    -- prevent mis-use).  However, application-wide
-    -- types which are IMPLICITly encoded simple
-    -- SEQUENCEs may appear in the following CHOICE
-
-            application-wide
-                ApplicationSyntax
-        }
-
-       SimpleSyntax ::=
-           CHOICE {
-               number
-                   INTEGER,
-               string
-                   OCTET STRING,
-               object
-                   OBJECT IDENTIFIER,
-               empty
-                   NULL
-           }
-
-       ApplicationSyntax ::=
-           CHOICE {
-               address
-                   NetworkAddress,
-               counter
-                   Counter,
-               gauge
-                   Gauge,
-               ticks
-                   TimeTicks,
-               arbitrary
-                   Opaque
-
-       -- other application-wide types, as they are
-       -- defined, will be added here
-           }
-
-       -- application-wide types
-
-       NetworkAddress ::=
-           CHOICE {
-               internet
-                   IpAddress
-           }
-
-       IpAddress ::=
-           [APPLICATION 0]          -- in network-byte order
-               IMPLICIT OCTET STRING (SIZE (4))
-
-       Counter ::=
-           [APPLICATION 1]
-               IMPLICIT INTEGER (0..4294967295)
-
-       Gauge ::=
-           [APPLICATION 2]
-               IMPLICIT INTEGER (0..4294967295)
-
-       TimeTicks ::=
-           [APPLICATION 3]
-               IMPLICIT INTEGER (0..4294967295)
-
-       Opaque ::=
-           [APPLICATION 4]          -- arbitrary ASN.1 value,
-               IMPLICIT OCTET STRING   --   "double-wrapped"
-
-       END
diff --git a/mibs/RFC1213-MIB.txt b/mibs/RFC1213-MIB.txt
deleted file mode 100644
index 408ccd7..0000000
--- a/mibs/RFC1213-MIB.txt
+++ /dev/null
@@ -1,2613 +0,0 @@
-RFC1213-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-        mgmt, NetworkAddress, IpAddress, Counter, Gauge,
-                TimeTicks
-            FROM RFC1155-SMI
-        OBJECT-TYPE
-                FROM RFC-1212;
-
---  This MIB module uses the extended OBJECT-TYPE macro as
---  defined in [14];
-
---  MIB-II (same prefix as MIB-I)
-
-mib-2      OBJECT IDENTIFIER ::= { mgmt 1 }
-
--- textual conventions
-
-DisplayString ::=
-    OCTET STRING
--- This data type is used to model textual information taken
--- from the NVT ASCII character set.  By convention, objects
--- with this syntax are declared as having
-
---
---      SIZE (0..255)
-
-PhysAddress ::=
-    OCTET STRING
--- This data type is used to model media addresses.  For many
--- types of media, this will be in a binary representation.
--- For example, an ethernet address would be represented as
--- a string of 6 octets.
-
--- groups in MIB-II
-
-system       OBJECT IDENTIFIER ::= { mib-2 1 }
-
-interfaces   OBJECT IDENTIFIER ::= { mib-2 2 }
-
-at           OBJECT IDENTIFIER ::= { mib-2 3 }
-
-ip           OBJECT IDENTIFIER ::= { mib-2 4 }
-
-icmp         OBJECT IDENTIFIER ::= { mib-2 5 }
-
-tcp          OBJECT IDENTIFIER ::= { mib-2 6 }
-
-udp          OBJECT IDENTIFIER ::= { mib-2 7 }
-
-egp          OBJECT IDENTIFIER ::= { mib-2 8 }
-
--- historical (some say hysterical)
--- cmot      OBJECT IDENTIFIER ::= { mib-2 9 }
-
-transmission OBJECT IDENTIFIER ::= { mib-2 10 }
-
-snmp         OBJECT IDENTIFIER ::= { mib-2 11 }
-
--- the System group
-
--- Implementation of the System group is mandatory for all
--- systems.  If an agent is not configured to have a value
--- for any of these variables, a string of length 0 is
--- returned.
-
-sysDescr OBJECT-TYPE
-    SYNTAX  DisplayString (SIZE (0..255))
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "A textual description of the entity.  This value
-            should include the full name and version
-            identification of the system's hardware type,
-            software operating-system, and networking
-            software.  It is mandatory that this only contain
-            printable ASCII characters."
-    ::= { system 1 }
-
-sysObjectID OBJECT-TYPE
-    SYNTAX  OBJECT IDENTIFIER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The vendor's authoritative identification of the
-            network management subsystem contained in the
-            entity.  This value is allocated within the SMI
-            enterprises subtree (1.3.6.1.4.1) and provides an
-            easy and unambiguous means for determining `what
-            kind of box' is being managed.  For example, if
-            vendor `Flintstones, Inc.' was assigned the
-            subtree 1.3.6.1.4.1.4242, it could assign the
-            identifier 1.3.6.1.4.1.4242.1.1 to its `Fred
-            Router'."
-    ::= { system 2 }
-
-sysUpTime OBJECT-TYPE
-    SYNTAX  TimeTicks
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The time (in hundredths of a second) since the
-            network management portion of the system was last
-            re-initialized."
-    ::= { system 3 }
-
-sysContact OBJECT-TYPE
-    SYNTAX  DisplayString (SIZE (0..255))
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The textual identification of the contact person
-            for this managed node, together with information
-            on how to contact this person."
-    ::= { system 4 }
-
-sysName OBJECT-TYPE
-    SYNTAX  DisplayString (SIZE (0..255))
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "An administratively-assigned name for this
-            managed node.  By convention, this is the node's
-            fully-qualified domain name."
-    ::= { system 5 }
-
-sysLocation OBJECT-TYPE
-    SYNTAX  DisplayString (SIZE (0..255))
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The physical location of this node (e.g.,
-            `telephone closet, 3rd floor')."
-    ::= { system 6 }
-
-sysServices OBJECT-TYPE
-    SYNTAX  INTEGER (0..127)
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "A value which indicates the set of services that
-            this entity primarily offers.
-
-            The value is a sum.  This sum initially takes the
-            value zero, Then, for each layer, L, in the range
-            1 through 7, that this node performs transactions
-            for, 2 raised to (L - 1) is added to the sum.  For
-            example, a node which performs primarily routing
-            functions would have a value of 4 (2^(3-1)).  In
-            contrast, a node which is a host offering
-            application services would have a value of 72
-            (2^(4-1) + 2^(7-1)).  Note that in the context of
-            the Internet suite of protocols, values should be
-            calculated accordingly:
-
-                 layer  functionality
-                     1  physical (e.g., repeaters)
-                     2  datalink/subnetwork (e.g., bridges)
-                     3  internet (e.g., IP gateways)
-                     4  end-to-end  (e.g., IP hosts)
-                     7  applications (e.g., mail relays)
-
-            For systems including OSI protocols, layers 5 and
-            6 may also be counted."
-    ::= { system 7 }
-
--- the Interfaces group
-
--- Implementation of the Interfaces group is mandatory for
--- all systems.
-
-ifNumber OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of network interfaces (regardless of
-            their current state) present on this system."
-    ::= { interfaces 1 }
-
--- the Interfaces table
-
--- The Interfaces table contains information on the entity's
--- interfaces.  Each interface is thought of as being
--- attached to a `subnetwork'.  Note that this term should
--- not be confused with `subnet' which refers to an
--- addressing partitioning scheme used in the Internet suite
--- of protocols.
-
-ifTable OBJECT-TYPE
-    SYNTAX  SEQUENCE OF IfEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "A list of interface entries.  The number of
-            entries is given by the value of ifNumber."
-    ::= { interfaces 2 }
-
-ifEntry OBJECT-TYPE
-    SYNTAX  IfEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "An interface entry containing objects at the
-            subnetwork layer and below for a particular
-            interface."
-    INDEX   { ifIndex }
-    ::= { ifTable 1 }
-
-IfEntry ::=
-    SEQUENCE {
-        ifIndex
-            INTEGER,
-        ifDescr
-            DisplayString,
-        ifType
-            INTEGER,
-        ifMtu
-            INTEGER,
-        ifSpeed
-            Gauge,
-        ifPhysAddress
-            PhysAddress,
-        ifAdminStatus
-            INTEGER,
-        ifOperStatus
-            INTEGER,
-        ifLastChange
-            TimeTicks,
-        ifInOctets
-            Counter,
-        ifInUcastPkts
-            Counter,
-        ifInNUcastPkts
-            Counter,
-        ifInDiscards
-            Counter,
-        ifInErrors
-            Counter,
-        ifInUnknownProtos
-            Counter,
-        ifOutOctets
-            Counter,
-        ifOutUcastPkts
-            Counter,
-        ifOutNUcastPkts
-            Counter,
-        ifOutDiscards
-            Counter,
-        ifOutErrors
-            Counter,
-        ifOutQLen
-            Gauge,
-        ifSpecific
-            OBJECT IDENTIFIER
-    }
-
-ifIndex OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "A unique value for each interface.  Its value
-            ranges between 1 and the value of ifNumber.  The
-            value for each interface must remain constant at
-            least from one re-initialization of the entity's
-            network management system to the next re-
-            initialization."
-    ::= { ifEntry 1 }
-
-ifDescr OBJECT-TYPE
-    SYNTAX  DisplayString (SIZE (0..255))
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "A textual string containing information about the
-            interface.  This string should include the name of
-            the manufacturer, the product name and the version
-            of the hardware interface."
-    ::= { ifEntry 2 }
-
-ifType OBJECT-TYPE
-    SYNTAX  INTEGER {
-                other(1),          -- none of the following
-                regular1822(2),
-                hdh1822(3),
-                ddn-x25(4),
-                rfc877-x25(5),
-                ethernet-csmacd(6),
-                iso88023-csmacd(7),
-                iso88024-tokenBus(8),
-                iso88025-tokenRing(9),
-                iso88026-man(10),
-                starLan(11),
-                proteon-10Mbit(12),
-                proteon-80Mbit(13),
-                hyperchannel(14),
-                fddi(15),
-                lapb(16),
-                sdlc(17),
-                ds1(18),           -- T-1
-                e1(19),            -- european equiv. of T-1
-                basicISDN(20),
-                primaryISDN(21),   -- proprietary serial
-                propPointToPointSerial(22),
-                ppp(23),
-                softwareLoopback(24),
-                eon(25),            -- CLNP over IP [11]
-                ethernet-3Mbit(26),
-                nsip(27),           -- XNS over IP
-                slip(28),           -- generic SLIP
-                ultra(29),          -- ULTRA technologies
-                ds3(30),            -- T-3
-                sip(31),            -- SMDS
-                frame-relay(32)
-            }
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The type of interface, distinguished according to
-            the physical/link protocol(s) immediately `below'
-            the network layer in the protocol stack."
-    ::= { ifEntry 3 }
-
-ifMtu OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The size of the largest datagram which can be
-            sent/received on the interface, specified in
-            octets.  For interfaces that are used for
-            transmitting network datagrams, this is the size
-            of the largest network datagram that can be sent
-            on the interface."
-    ::= { ifEntry 4 }
-
-ifSpeed OBJECT-TYPE
-    SYNTAX  Gauge
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "An estimate of the interface's current bandwidth
-            in bits per second.  For interfaces which do not
-            vary in bandwidth or for those where no accurate
-            estimation can be made, this object should contain
-            the nominal bandwidth."
-    ::= { ifEntry 5 }
-
-ifPhysAddress OBJECT-TYPE
-    SYNTAX  PhysAddress
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The interface's address at the protocol layer
-            immediately `below' the network layer in the
-            protocol stack.  For interfaces which do not have
-
-            such an address (e.g., a serial line), this object
-            should contain an octet string of zero length."
-    ::= { ifEntry 6 }
-
-ifAdminStatus OBJECT-TYPE
-    SYNTAX  INTEGER {
-                up(1),       -- ready to pass packets
-                down(2),
-                testing(3)   -- in some test mode
-            }
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The desired state of the interface.  The
-            testing(3) state indicates that no operational
-            packets can be passed."
-    ::= { ifEntry 7 }
-
-ifOperStatus OBJECT-TYPE
-    SYNTAX  INTEGER {
-                up(1),       -- ready to pass packets
-                down(2),
-                testing(3)   -- in some test mode
-            }
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The current operational state of the interface.
-            The testing(3) state indicates that no operational
-            packets can be passed."
-    ::= { ifEntry 8 }
-
-ifLastChange OBJECT-TYPE
-    SYNTAX  TimeTicks
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The value of sysUpTime at the time the interface
-            entered its current operational state.  If the
-            current state was entered prior to the last re-
-            initialization of the local network management
-            subsystem, then this object contains a zero
-            value."
-    ::= { ifEntry 9 }
-
-ifInOctets OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of octets received on the
-            interface, including framing characters."
-    ::= { ifEntry 10 }
-
-ifInUcastPkts OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of subnetwork-unicast packets
-            delivered to a higher-layer protocol."
-    ::= { ifEntry 11 }
-
-ifInNUcastPkts OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of non-unicast (i.e., subnetwork-
-            broadcast or subnetwork-multicast) packets
-            delivered to a higher-layer protocol."
-    ::= { ifEntry 12 }
-
-ifInDiscards OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of inbound packets which were chosen
-            to be discarded even though no errors had been
-            detected to prevent their being deliverable to a
-            higher-layer protocol.  One possible reason for
-            discarding such a packet could be to free up
-            buffer space."
-    ::= { ifEntry 13 }
-
-ifInErrors OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of inbound packets that contained
-            errors preventing them from being deliverable to a
-            higher-layer protocol."
-    ::= { ifEntry 14 }
-
-ifInUnknownProtos OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of packets received via the interface
-            which were discarded because of an unknown or
-            unsupported protocol."
-    ::= { ifEntry 15 }
-
-ifOutOctets OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of octets transmitted out of the
-            interface, including framing characters."
-    ::= { ifEntry 16 }
-
-ifOutUcastPkts OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of packets that higher-level
-            protocols requested be transmitted to a
-            subnetwork-unicast address, including those that
-            were discarded or not sent."
-    ::= { ifEntry 17 }
-
-ifOutNUcastPkts OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of packets that higher-level
-            protocols requested be transmitted to a non-
-            unicast (i.e., a subnetwork-broadcast or
-            subnetwork-multicast) address, including those
-            that were discarded or not sent."
-    ::= { ifEntry 18 }
-
-ifOutDiscards OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of outbound packets which were chosen
-
-            to be discarded even though no errors had been
-            detected to prevent their being transmitted.  One
-            possible reason for discarding such a packet could
-            be to free up buffer space."
-    ::= { ifEntry 19 }
-
-ifOutErrors OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of outbound packets that could not be
-            transmitted because of errors."
-    ::= { ifEntry 20 }
-
-ifOutQLen OBJECT-TYPE
-    SYNTAX  Gauge
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The length of the output packet queue (in
-            packets)."
-    ::= { ifEntry 21 }
-
-ifSpecific OBJECT-TYPE
-    SYNTAX  OBJECT IDENTIFIER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "A reference to MIB definitions specific to the
-            particular media being used to realize the
-            interface.  For example, if the interface is
-            realized by an ethernet, then the value of this
-            object refers to a document defining objects
-            specific to ethernet.  If this information is not
-            present, its value should be set to the OBJECT
-            IDENTIFIER { 0 0 }, which is a syntatically valid
-            object identifier, and any conformant
-            implementation of ASN.1 and BER must be able to
-            generate and recognize this value."
-    ::= { ifEntry 22 }
-
--- the Address Translation group
-
--- Implementation of the Address Translation group is
--- mandatory for all systems.  Note however that this group
--- is deprecated by MIB-II. That is, it is being included
-
--- solely for compatibility with MIB-I nodes, and will most
--- likely be excluded from MIB-III nodes.  From MIB-II and
--- onwards, each network protocol group contains its own
--- address translation tables.
-
--- The Address Translation group contains one table which is
--- the union across all interfaces of the translation tables
--- for converting a NetworkAddress (e.g., an IP address) into
--- a subnetwork-specific address.  For lack of a better term,
--- this document refers to such a subnetwork-specific address
--- as a `physical' address.
-
--- Examples of such translation tables are: for broadcast
--- media where ARP is in use, the translation table is
--- equivalent to the ARP cache; or, on an X.25 network where
--- non-algorithmic translation to X.121 addresses is
--- required, the translation table contains the
--- NetworkAddress to X.121 address equivalences.
-
-atTable OBJECT-TYPE
-    SYNTAX  SEQUENCE OF AtEntry
-    ACCESS  not-accessible
-    STATUS  deprecated
-    DESCRIPTION
-            "The Address Translation tables contain the
-            NetworkAddress to `physical' address equivalences.
-            Some interfaces do not use translation tables for
-            determining address equivalences (e.g., DDN-X.25
-            has an algorithmic method); if all interfaces are
-            of this type, then the Address Translation table
-            is empty, i.e., has zero entries."
-    ::= { at 1 }
-
-atEntry OBJECT-TYPE
-    SYNTAX  AtEntry
-    ACCESS  not-accessible
-    STATUS  deprecated
-    DESCRIPTION
-            "Each entry contains one NetworkAddress to
-            `physical' address equivalence."
-    INDEX   { atIfIndex,
-              atNetAddress }
-    ::= { atTable 1 }
-
-AtEntry ::=
-    SEQUENCE {
-        atIfIndex
-            INTEGER,
-        atPhysAddress
-            PhysAddress,
-        atNetAddress
-            NetworkAddress
-    }
-
-atIfIndex OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-write
-    STATUS  deprecated
-    DESCRIPTION
-            "The interface on which this entry's equivalence
-            is effective.  The interface identified by a
-            particular value of this index is the same
-            interface as identified by the same value of
-            ifIndex."
-    ::= { atEntry 1 }
-
-atPhysAddress OBJECT-TYPE
-    SYNTAX  PhysAddress
-    ACCESS  read-write
-    STATUS  deprecated
-    DESCRIPTION
-            "The media-dependent `physical' address.
-
-            Setting this object to a null string (one of zero
-            length) has the effect of invaliding the
-            corresponding entry in the atTable object.  That
-            is, it effectively dissasociates the interface
-            identified with said entry from the mapping
-            identified with said entry.  It is an
-            implementation-specific matter as to whether the
-            agent removes an invalidated entry from the table.
-            Accordingly, management stations must be prepared
-            to receive tabular information from agents that
-            corresponds to entries not currently in use.
-            Proper interpretation of such entries requires
-            examination of the relevant atPhysAddress object."
-    ::= { atEntry 2 }
-
-atNetAddress OBJECT-TYPE
-    SYNTAX  NetworkAddress
-    ACCESS  read-write
-    STATUS  deprecated
-    DESCRIPTION
-            "The NetworkAddress (e.g., the IP address)
-            corresponding to the media-dependent `physical'
-            address."
-    ::= { atEntry 3 }
-
--- the IP group
-
--- Implementation of the IP group is mandatory for all
--- systems.
-
-ipForwarding OBJECT-TYPE
-    SYNTAX  INTEGER {
-                forwarding(1),    -- acting as a gateway
-                not-forwarding(2) -- NOT acting as a gateway
-            }
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The indication of whether this entity is acting
-            as an IP gateway in respect to the forwarding of
-            datagrams received by, but not addressed to, this
-            entity.  IP gateways forward datagrams.  IP hosts
-            do not (except those source-routed via the host).
-
-            Note that for some managed nodes, this object may
-            take on only a subset of the values possible.
-            Accordingly, it is appropriate for an agent to
-            return a `badValue' response if a management
-            station attempts to change this object to an
-            inappropriate value."
-    ::= { ip 1 }
-
-ipDefaultTTL OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The default value inserted into the Time-To-Live
-            field of the IP header of datagrams originated at
-            this entity, whenever a TTL value is not supplied
-            by the transport layer protocol."
-    ::= { ip 2 }
-
-ipInReceives OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of input datagrams received from
-            interfaces, including those received in error."
-    ::= { ip 3 }
-
-ipInHdrErrors OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of input datagrams discarded due to
-            errors in their IP headers, including bad
-            checksums, version number mismatch, other format
-            errors, time-to-live exceeded, errors discovered
-            in processing their IP options, etc."
-    ::= { ip 4 }
-
-ipInAddrErrors OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of input datagrams discarded because
-            the IP address in their IP header's destination
-            field was not a valid address to be received at
-            this entity.  This count includes invalid
-            addresses (e.g., 0.0.0.0) and addresses of
-            unsupported Classes (e.g., Class E).  For entities
-            which are not IP Gateways and therefore do not
-            forward datagrams, this counter includes datagrams
-            discarded because the destination address was not
-            a local address."
-    ::= { ip 5 }
-
-ipForwDatagrams OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of input datagrams for which this
-            entity was not their final IP destination, as a
-            result of which an attempt was made to find a
-            route to forward them to that final destination.
-            In entities which do not act as IP Gateways, this
-            counter will include only those packets which were
-            Source-Routed via this entity, and the Source-
-            Route option processing was successful."
-    ::= { ip 6 }
-
-ipInUnknownProtos OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of locally-addressed datagrams
-            received successfully but discarded because of an
-            unknown or unsupported protocol."
-    ::= { ip 7 }
-
-ipInDiscards OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of input IP datagrams for which no
-            problems were encountered to prevent their
-            continued processing, but which were discarded
-            (e.g., for lack of buffer space).  Note that this
-            counter does not include any datagrams discarded
-            while awaiting re-assembly."
-    ::= { ip 8 }
-
-ipInDelivers OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of input datagrams successfully
-            delivered to IP user-protocols (including ICMP)."
-    ::= { ip 9 }
-
-ipOutRequests OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of IP datagrams which local IP
-            user-protocols (including ICMP) supplied to IP in
-            requests for transmission.  Note that this counter
-            does not include any datagrams counted in
-            ipForwDatagrams."
-    ::= { ip 10 }
-
-ipOutDiscards OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of output IP datagrams for which no
-
-            problem was encountered to prevent their
-            transmission to their destination, but which were
-            discarded (e.g., for lack of buffer space).  Note
-            that this counter would include datagrams counted
-            in ipForwDatagrams if any such packets met this
-            (discretionary) discard criterion."
-    ::= { ip 11 }
-
-ipOutNoRoutes OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of IP datagrams discarded because no
-            route could be found to transmit them to their
-            destination.  Note that this counter includes any
-            packets counted in ipForwDatagrams which meet this
-            `no-route' criterion.  Note that this includes any
-            datagarms which a host cannot route because all of
-            its default gateways are down."
-    ::= { ip 12 }
-
-ipReasmTimeout OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The maximum number of seconds which received
-            fragments are held while they are awaiting
-            reassembly at this entity."
-    ::= { ip 13 }
-
-ipReasmReqds OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of IP fragments received which needed
-            to be reassembled at this entity."
-    ::= { ip 14 }
-
-ipReasmOKs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of IP datagrams successfully re-
-            assembled."
-    ::= { ip 15 }
-
-ipReasmFails OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of failures detected by the IP re-
-            assembly algorithm (for whatever reason: timed
-            out, errors, etc).  Note that this is not
-            necessarily a count of discarded IP fragments
-            since some algorithms (notably the algorithm in
-            RFC 815) can lose track of the number of fragments
-            by combining them as they are received."
-    ::= { ip 16 }
-
-ipFragOKs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of IP datagrams that have been
-            successfully fragmented at this entity."
-    ::= { ip 17 }
-
-ipFragFails OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of IP datagrams that have been
-            discarded because they needed to be fragmented at
-            this entity but could not be, e.g., because their
-            Don't Fragment flag was set."
-    ::= { ip 18 }
-
-ipFragCreates OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of IP datagram fragments that have
-            been generated as a result of fragmentation at
-            this entity."
-    ::= { ip 19 }
-
--- the IP address table
-
--- The IP address table contains this entity's IP addressing
--- information.
-
-ipAddrTable OBJECT-TYPE
-    SYNTAX  SEQUENCE OF IpAddrEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "The table of addressing information relevant to
-            this entity's IP addresses."
-    ::= { ip 20 }
-
-ipAddrEntry OBJECT-TYPE
-    SYNTAX  IpAddrEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "The addressing information for one of this
-            entity's IP addresses."
-    INDEX   { ipAdEntAddr }
-    ::= { ipAddrTable 1 }
-
-IpAddrEntry ::=
-    SEQUENCE {
-        ipAdEntAddr
-            IpAddress,
-        ipAdEntIfIndex
-            INTEGER,
-        ipAdEntNetMask
-            IpAddress,
-        ipAdEntBcastAddr
-            INTEGER,
-        ipAdEntReasmMaxSize
-            INTEGER (0..65535)
-    }
-
-ipAdEntAddr OBJECT-TYPE
-    SYNTAX  IpAddress
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The IP address to which this entry's addressing
-            information pertains."
-    ::= { ipAddrEntry 1 }
-
-ipAdEntIfIndex OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The index value which uniquely identifies the
-            interface to which this entry is applicable.  The
-            interface identified by a particular value of this
-            index is the same interface as identified by the
-            same value of ifIndex."
-    ::= { ipAddrEntry 2 }
-
-ipAdEntNetMask OBJECT-TYPE
-    SYNTAX  IpAddress
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The subnet mask associated with the IP address of
-            this entry.  The value of the mask is an IP
-            address with all the network bits set to 1 and all
-            the hosts bits set to 0."
-    ::= { ipAddrEntry 3 }
-
-ipAdEntBcastAddr OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The value of the least-significant bit in the IP
-            broadcast address used for sending datagrams on
-            the (logical) interface associated with the IP
-            address of this entry.  For example, when the
-            Internet standard all-ones broadcast address is
-            used, the value will be 1.  This value applies to
-            both the subnet and network broadcasts addresses
-            used by the entity on this (logical) interface."
-    ::= { ipAddrEntry 4 }
-
-ipAdEntReasmMaxSize OBJECT-TYPE
-    SYNTAX  INTEGER (0..65535)
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The size of the largest IP datagram which this
-            entity can re-assemble from incoming IP fragmented
-            datagrams received on this interface."
-    ::= { ipAddrEntry 5 }
-
--- the IP routing table
-
--- The IP routing table contains an entry for each route
--- presently known to this entity.
-
-ipRouteTable OBJECT-TYPE
-    SYNTAX  SEQUENCE OF IpRouteEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "This entity's IP Routing table."
-    ::= { ip 21 }
-
-ipRouteEntry OBJECT-TYPE
-    SYNTAX  IpRouteEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "A route to a particular destination."
-    INDEX   { ipRouteDest }
-    ::= { ipRouteTable 1 }
-
-IpRouteEntry ::=
-    SEQUENCE {
-        ipRouteDest
-            IpAddress,
-        ipRouteIfIndex
-            INTEGER,
-        ipRouteMetric1
-            INTEGER,
-        ipRouteMetric2
-            INTEGER,
-        ipRouteMetric3
-            INTEGER,
-        ipRouteMetric4
-            INTEGER,
-        ipRouteNextHop
-            IpAddress,
-        ipRouteType
-            INTEGER,
-        ipRouteProto
-            INTEGER,
-        ipRouteAge
-            INTEGER,
-        ipRouteMask
-            IpAddress,
-        ipRouteMetric5
-            INTEGER,
-        ipRouteInfo
-            OBJECT IDENTIFIER
-    }
-
-ipRouteDest OBJECT-TYPE
-    SYNTAX  IpAddress
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The destination IP address of this route.  An
-            entry with a value of 0.0.0.0 is considered a
-            default route.  Multiple routes to a single
-            destination can appear in the table, but access to
-            such multiple entries is dependent on the table-
-            access mechanisms defined by the network
-            management protocol in use."
-    ::= { ipRouteEntry 1 }
-
-ipRouteIfIndex OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The index value which uniquely identifies the
-            local interface through which the next hop of this
-            route should be reached.  The interface identified
-            by a particular value of this index is the same
-            interface as identified by the same value of
-            ifIndex."
-    ::= { ipRouteEntry 2 }
-
-ipRouteMetric1 OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The primary routing metric for this route.  The
-            semantics of this metric are determined by the
-            routing-protocol specified in the route's
-            ipRouteProto value.  If this metric is not used,
-            its value should be set to -1."
-    ::= { ipRouteEntry 3 }
-
-ipRouteMetric2 OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the
-            routing-protocol specified in the route's
-            ipRouteProto value.  If this metric is not used,
-            its value should be set to -1."
-    ::= { ipRouteEntry 4 }
-
-ipRouteMetric3 OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the
-            routing-protocol specified in the route's
-            ipRouteProto value.  If this metric is not used,
-            its value should be set to -1."
-    ::= { ipRouteEntry 5 }
-
-ipRouteMetric4 OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the
-            routing-protocol specified in the route's
-            ipRouteProto value.  If this metric is not used,
-            its value should be set to -1."
-    ::= { ipRouteEntry 6 }
-
-ipRouteNextHop OBJECT-TYPE
-    SYNTAX  IpAddress
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The IP address of the next hop of this route.
-            (In the case of a route bound to an interface
-            which is realized via a broadcast media, the value
-            of this field is the agent's IP address on that
-            interface.)"
-    ::= { ipRouteEntry 7 }
-
-ipRouteType OBJECT-TYPE
-    SYNTAX  INTEGER {
-                other(1),        -- none of the following
-
-                invalid(2),      -- an invalidated route
-
-                                 -- route to directly
-                direct(3),       -- connected (sub-)network
-
-                                 -- route to a non-local
-                indirect(4)      -- host/network/sub-network
-            }
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The type of route.  Note that the values
-            direct(3) and indirect(4) refer to the notion of
-            direct and indirect routing in the IP
-            architecture.
-
-            Setting this object to the value invalid(2) has
-            the effect of invalidating the corresponding entry
-            in the ipRouteTable object.  That is, it
-            effectively dissasociates the destination
-            identified with said entry from the route
-            identified with said entry.  It is an
-            implementation-specific matter as to whether the
-            agent removes an invalidated entry from the table.
-            Accordingly, management stations must be prepared
-            to receive tabular information from agents that
-            corresponds to entries not currently in use.
-            Proper interpretation of such entries requires
-            examination of the relevant ipRouteType object."
-    ::= { ipRouteEntry 8 }
-
-ipRouteProto OBJECT-TYPE
-    SYNTAX  INTEGER {
-                other(1),       -- none of the following
-
-                                -- non-protocol information,
-                                -- e.g., manually configured
-                local(2),       -- entries
-
-                                -- set via a network
-                netmgmt(3),     -- management protocol
-
-                                -- obtained via ICMP,
-                icmp(4),        -- e.g., Redirect
-
-                                -- the remaining values are
-                                -- all gateway routing
-                                -- protocols
-                egp(5),
-                ggp(6),
-                hello(7),
-                rip(8),
-                is-is(9),
-                es-is(10),
-                ciscoIgrp(11),
-                bbnSpfIgp(12),
-                ospf(13),
-                bgp(14)
-            }
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The routing mechanism via which this route was
-            learned.  Inclusion of values for gateway routing
-            protocols is not intended to imply that hosts
-            should support those protocols."
-    ::= { ipRouteEntry 9 }
-
-ipRouteAge OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of seconds since this route was last
-            updated or otherwise determined to be correct.
-            Note that no semantics of `too old' can be implied
-            except through knowledge of the routing protocol
-            by which the route was learned."
-    ::= { ipRouteEntry 10 }
-
-ipRouteMask OBJECT-TYPE
-    SYNTAX  IpAddress
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "Indicate the mask to be logical-ANDed with the
-            destination address before being compared to the
-            value in the ipRouteDest field.  For those systems
-            that do not support arbitrary subnet masks, an
-            agent constructs the value of the ipRouteMask by
-            determining whether the value of the correspondent
-            ipRouteDest field belong to a class-A, B, or C
-            network, and then using one of:
-
-                 mask           network
-                 255.0.0.0      class-A
-                 255.255.0.0    class-B
-                 255.255.255.0  class-C
-
-            If the value of the ipRouteDest is 0.0.0.0 (a
-            default route), then the mask value is also
-            0.0.0.0.  It should be noted that all IP routing
-            subsystems implicitly use this mechanism."
-    ::= { ipRouteEntry 11 }
-
-ipRouteMetric5 OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "An alternate routing metric for this route.  The
-            semantics of this metric are determined by the
-            routing-protocol specified in the route's
-            ipRouteProto value.  If this metric is not used,
-            its value should be set to -1."
-    ::= { ipRouteEntry 12 }
-
-ipRouteInfo OBJECT-TYPE
-    SYNTAX  OBJECT IDENTIFIER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "A reference to MIB definitions specific to the
-            particular routing protocol which is responsible
-            for this route, as determined by the value
-            specified in the route's ipRouteProto value.  If
-            this information is not present, its value should
-            be set to the OBJECT IDENTIFIER { 0 0 }, which is
-            a syntatically valid object identifier, and any
-            conformant implementation of ASN.1 and BER must be
-            able to generate and recognize this value."
-    ::= { ipRouteEntry 13 }
-
--- the IP Address Translation table
-
--- The IP address translation table contain the IpAddress to
--- `physical' address equivalences.  Some interfaces do not
--- use translation tables for determining address
--- equivalences (e.g., DDN-X.25 has an algorithmic method);
--- if all interfaces are of this type, then the Address
--- Translation table is empty, i.e., has zero entries.
-
-ipNetToMediaTable OBJECT-TYPE
-    SYNTAX  SEQUENCE OF IpNetToMediaEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "The IP Address Translation table used for mapping
-            from IP addresses to physical addresses."
-    ::= { ip 22 }
-
-ipNetToMediaEntry OBJECT-TYPE
-    SYNTAX  IpNetToMediaEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "Each entry contains one IpAddress to `physical'
-            address equivalence."
-    INDEX   { ipNetToMediaIfIndex,
-              ipNetToMediaNetAddress }
-    ::= { ipNetToMediaTable 1 }
-
-IpNetToMediaEntry ::=
-    SEQUENCE {
-        ipNetToMediaIfIndex
-            INTEGER,
-        ipNetToMediaPhysAddress
-            PhysAddress,
-        ipNetToMediaNetAddress
-            IpAddress,
-        ipNetToMediaType
-            INTEGER
-    }
-
-ipNetToMediaIfIndex OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The interface on which this entry's equivalence
-            is effective.  The interface identified by a
-            particular value of this index is the same
-            interface as identified by the same value of
-            ifIndex."
-    ::= { ipNetToMediaEntry 1 }
-
-ipNetToMediaPhysAddress OBJECT-TYPE
-    SYNTAX  PhysAddress
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The media-dependent `physical' address."
-    ::= { ipNetToMediaEntry 2 }
-
-ipNetToMediaNetAddress OBJECT-TYPE
-    SYNTAX  IpAddress
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The IpAddress corresponding to the media-
-            dependent `physical' address."
-    ::= { ipNetToMediaEntry 3 }
-
-ipNetToMediaType OBJECT-TYPE
-    SYNTAX  INTEGER {
-                other(1),        -- none of the following
-                invalid(2),      -- an invalidated mapping
-                dynamic(3),
-                static(4)
-            }
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The type of mapping.
-
-            Setting this object to the value invalid(2) has
-            the effect of invalidating the corresponding entry
-            in the ipNetToMediaTable.  That is, it effectively
-            dissasociates the interface identified with said
-            entry from the mapping identified with said entry.
-            It is an implementation-specific matter as to
-            whether the agent removes an invalidated entry
-            from the table.  Accordingly, management stations
-            must be prepared to receive tabular information
-            from agents that corresponds to entries not
-            currently in use.  Proper interpretation of such
-            entries requires examination of the relevant
-            ipNetToMediaType object."
-    ::= { ipNetToMediaEntry 4 }
-
--- additional IP objects
-
-ipRoutingDiscards OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of routing entries which were chosen
-            to be discarded even though they are valid.  One
-            possible reason for discarding such an entry could
-            be to free-up buffer space for other routing
-
-            entries."
-    ::= { ip 23 }
-
--- the ICMP group
-
--- Implementation of the ICMP group is mandatory for all
--- systems.
-
-icmpInMsgs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of ICMP messages which the
-            entity received.  Note that this counter includes
-            all those counted by icmpInErrors."
-    ::= { icmp 1 }
-
-icmpInErrors OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP messages which the entity
-            received but determined as having ICMP-specific
-            errors (bad ICMP checksums, bad length, etc.)."
-    ::= { icmp 2 }
-
-icmpInDestUnreachs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Destination Unreachable
-            messages received."
-    ::= { icmp 3 }
-
-icmpInTimeExcds OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Time Exceeded messages
-            received."
-    ::= { icmp 4 }
-
-icmpInParmProbs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Parameter Problem messages
-            received."
-    ::= { icmp 5 }
-
-icmpInSrcQuenchs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Source Quench messages
-            received."
-    ::= { icmp 6 }
-
-icmpInRedirects OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Redirect messages received."
-    ::= { icmp 7 }
-
-icmpInEchos OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Echo (request) messages
-            received."
-    ::= { icmp 8 }
-
-icmpInEchoReps OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Echo Reply messages received."
-    ::= { icmp 9 }
-
-icmpInTimestamps OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Timestamp (request) messages
-            received."
-    ::= { icmp 10 }
-
-icmpInTimestampReps OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Timestamp Reply messages
-            received."
-    ::= { icmp 11 }
-
-icmpInAddrMasks OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Address Mask Request messages
-            received."
-    ::= { icmp 12 }
-
-icmpInAddrMaskReps OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Address Mask Reply messages
-            received."
-    ::= { icmp 13 }
-
-icmpOutMsgs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of ICMP messages which this
-            entity attempted to send.  Note that this counter
-            includes all those counted by icmpOutErrors."
-    ::= { icmp 14 }
-
-icmpOutErrors OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP messages which this entity did
-            not send due to problems discovered within ICMP
-
-            such as a lack of buffers.  This value should not
-            include errors discovered outside the ICMP layer
-            such as the inability of IP to route the resultant
-            datagram.  In some implementations there may be no
-            types of error which contribute to this counter's
-            value."
-    ::= { icmp 15 }
-
-icmpOutDestUnreachs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Destination Unreachable
-            messages sent."
-    ::= { icmp 16 }
-
-icmpOutTimeExcds OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Time Exceeded messages sent."
-    ::= { icmp 17 }
-
-icmpOutParmProbs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Parameter Problem messages
-            sent."
-    ::= { icmp 18 }
-
-icmpOutSrcQuenchs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Source Quench messages sent."
-    ::= { icmp 19 }
-
-icmpOutRedirects OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Redirect messages sent.  For a
-
-            host, this object will always be zero, since hosts
-            do not send redirects."
-    ::= { icmp 20 }
-
-icmpOutEchos OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Echo (request) messages sent."
-    ::= { icmp 21 }
-
-icmpOutEchoReps OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Echo Reply messages sent."
-    ::= { icmp 22 }
-
-icmpOutTimestamps OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Timestamp (request) messages
-            sent."
-    ::= { icmp 23 }
-
-icmpOutTimestampReps OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Timestamp Reply messages
-            sent."
-    ::= { icmp 24 }
-
-icmpOutAddrMasks OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Address Mask Request messages
-            sent."
-    ::= { icmp 25 }
-
-icmpOutAddrMaskReps OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of ICMP Address Mask Reply messages
-            sent."
-    ::= { icmp 26 }
-
--- the TCP group
-
--- Implementation of the TCP group is mandatory for all
--- systems that implement the TCP.
-
--- Note that instances of object types that represent
--- information about a particular TCP connection are
--- transient; they persist only as long as the connection
--- in question.
-
-tcpRtoAlgorithm OBJECT-TYPE
-    SYNTAX  INTEGER {
-                other(1),    -- none of the following
-
-                constant(2), -- a constant rto
-                rsre(3),     -- MIL-STD-1778, Appendix B
-                vanj(4)      -- Van Jacobson's algorithm [10]
-            }
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The algorithm used to determine the timeout value
-            used for retransmitting unacknowledged octets."
-    ::= { tcp 1 }
-
-tcpRtoMin OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The minimum value permitted by a TCP
-            implementation for the retransmission timeout,
-            measured in milliseconds.  More refined semantics
-            for objects of this type depend upon the algorithm
-            used to determine the retransmission timeout.  In
-            particular, when the timeout algorithm is rsre(3),
-            an object of this type has the semantics of the
-            LBOUND quantity described in RFC 793."
-    ::= { tcp 2 }
-
-tcpRtoMax OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The maximum value permitted by a TCP
-            implementation for the retransmission timeout,
-            measured in milliseconds.  More refined semantics
-            for objects of this type depend upon the algorithm
-            used to determine the retransmission timeout.  In
-            particular, when the timeout algorithm is rsre(3),
-            an object of this type has the semantics of the
-            UBOUND quantity described in RFC 793."
-    ::= { tcp 3 }
-
-tcpMaxConn OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The limit on the total number of TCP connections
-            the entity can support.  In entities where the
-            maximum number of connections is dynamic, this
-            object should contain the value -1."
-    ::= { tcp 4 }
-
-tcpActiveOpens OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of times TCP connections have made a
-            direct transition to the SYN-SENT state from the
-            CLOSED state."
-    ::= { tcp 5 }
-
-tcpPassiveOpens OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of times TCP connections have made a
-            direct transition to the SYN-RCVD state from the
-            LISTEN state."
-    ::= { tcp 6 }
-
-tcpAttemptFails OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of times TCP connections have made a
-            direct transition to the CLOSED state from either
-            the SYN-SENT state or the SYN-RCVD state, plus the
-            number of times TCP connections have made a direct
-            transition to the LISTEN state from the SYN-RCVD
-            state."
-    ::= { tcp 7 }
-
-tcpEstabResets OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of times TCP connections have made a
-            direct transition to the CLOSED state from either
-            the ESTABLISHED state or the CLOSE-WAIT state."
-    ::= { tcp 8 }
-
-tcpCurrEstab OBJECT-TYPE
-    SYNTAX  Gauge
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of TCP connections for which the
-            current state is either ESTABLISHED or CLOSE-
-            WAIT."
-    ::= { tcp 9 }
-
-tcpInSegs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of segments received, including
-            those received in error.  This count includes
-            segments received on currently established
-            connections."
-    ::= { tcp 10 }
-
-tcpOutSegs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of segments sent, including
-            those on current connections but excluding those
-            containing only retransmitted octets."
-    ::= { tcp 11 }
-
-tcpRetransSegs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of segments retransmitted - that
-            is, the number of TCP segments transmitted
-            containing one or more previously transmitted
-            octets."
-    ::= { tcp 12 }
-
--- the TCP Connection table
-
--- The TCP connection table contains information about this
--- entity's existing TCP connections.
-
-tcpConnTable OBJECT-TYPE
-    SYNTAX  SEQUENCE OF TcpConnEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "A table containing TCP connection-specific
-            information."
-    ::= { tcp 13 }
-
-tcpConnEntry OBJECT-TYPE
-    SYNTAX  TcpConnEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "Information about a particular current TCP
-            connection.  An object of this type is transient,
-            in that it ceases to exist when (or soon after)
-            the connection makes the transition to the CLOSED
-            state."
-    INDEX   { tcpConnLocalAddress,
-              tcpConnLocalPort,
-              tcpConnRemAddress,
-              tcpConnRemPort }
-    ::= { tcpConnTable 1 }
-
-TcpConnEntry ::=
-    SEQUENCE {
-        tcpConnState
-            INTEGER,
-        tcpConnLocalAddress
-            IpAddress,
-        tcpConnLocalPort
-            INTEGER (0..65535),
-        tcpConnRemAddress
-            IpAddress,
-        tcpConnRemPort
-            INTEGER (0..65535)
-    }
-
-tcpConnState OBJECT-TYPE
-    SYNTAX  INTEGER {
-                closed(1),
-                listen(2),
-                synSent(3),
-                synReceived(4),
-                established(5),
-                finWait1(6),
-                finWait2(7),
-                closeWait(8),
-                lastAck(9),
-                closing(10),
-                timeWait(11),
-                deleteTCB(12)
-            }
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "The state of this TCP connection.
-
-            The only value which may be set by a management
-            station is deleteTCB(12).  Accordingly, it is
-            appropriate for an agent to return a `badValue'
-            response if a management station attempts to set
-            this object to any other value.
-
-            If a management station sets this object to the
-            value deleteTCB(12), then this has the effect of
-            deleting the TCB (as defined in RFC 793) of the
-            corresponding connection on the managed node,
-            resulting in immediate termination of the
-            connection.
-
-            As an implementation-specific option, a RST
-
-            segment may be sent from the managed node to the
-            other TCP endpoint (note however that RST segments
-            are not sent reliably)."
-    ::= { tcpConnEntry 1 }
-
-tcpConnLocalAddress OBJECT-TYPE
-    SYNTAX  IpAddress
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The local IP address for this TCP connection.  In
-            the case of a connection in the listen state which
-            is willing to accept connections for any IP
-            interface associated with the node, the value
-            0.0.0.0 is used."
-    ::= { tcpConnEntry 2 }
-
-tcpConnLocalPort OBJECT-TYPE
-    SYNTAX  INTEGER (0..65535)
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The local port number for this TCP connection."
-    ::= { tcpConnEntry 3 }
-
-tcpConnRemAddress OBJECT-TYPE
-    SYNTAX  IpAddress
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The remote IP address for this TCP connection."
-    ::= { tcpConnEntry 4 }
-
-tcpConnRemPort OBJECT-TYPE
-    SYNTAX  INTEGER (0..65535)
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The remote port number for this TCP connection."
-    ::= { tcpConnEntry 5 }
-
--- additional TCP objects
-
-tcpInErrs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of segments received in error
-            (e.g., bad TCP checksums)."
-    ::= { tcp 14 }
-
-tcpOutRsts OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of TCP segments sent containing the
-            RST flag."
-    ::= { tcp 15 }
-
--- the UDP group
-
--- Implementation of the UDP group is mandatory for all
--- systems which implement the UDP.
-
-udpInDatagrams OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of UDP datagrams delivered to
-            UDP users."
-    ::= { udp 1 }
-
-udpNoPorts OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of received UDP datagrams for
-            which there was no application at the destination
-            port."
-    ::= { udp 2 }
-
-udpInErrors OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of received UDP datagrams that could
-            not be delivered for reasons other than the lack
-            of an application at the destination port."
-    ::= { udp 3 }
-
-udpOutDatagrams OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of UDP datagrams sent from this
-            entity."
-    ::= { udp 4 }
-
--- the UDP Listener table
-
--- The UDP listener table contains information about this
--- entity's UDP end-points on which a local application is
--- currently accepting datagrams.
-
-udpTable OBJECT-TYPE
-    SYNTAX  SEQUENCE OF UdpEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "A table containing UDP listener information."
-    ::= { udp 5 }
-
-udpEntry OBJECT-TYPE
-    SYNTAX  UdpEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "Information about a particular current UDP
-            listener."
-    INDEX   { udpLocalAddress, udpLocalPort }
-    ::= { udpTable 1 }
-
-UdpEntry ::=
-    SEQUENCE {
-        udpLocalAddress
-            IpAddress,
-        udpLocalPort
-            INTEGER (0..65535)
-    }
-
-udpLocalAddress OBJECT-TYPE
-    SYNTAX  IpAddress
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The local IP address for this UDP listener.  In
-
-            the case of a UDP listener which is willing to
-            accept datagrams for any IP interface associated
-            with the node, the value 0.0.0.0 is used."
-    ::= { udpEntry 1 }
-
-udpLocalPort OBJECT-TYPE
-    SYNTAX  INTEGER (0..65535)
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The local port number for this UDP listener."
-    ::= { udpEntry 2 }
-
--- the EGP group
-
--- Implementation of the EGP group is mandatory for all
--- systems which implement the EGP.
-
-egpInMsgs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of EGP messages received without
-            error."
-    ::= { egp 1 }
-
-egpInErrors OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of EGP messages received that proved
-            to be in error."
-    ::= { egp 2 }
-
-egpOutMsgs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of locally generated EGP
-            messages."
-    ::= { egp 3 }
-
-egpOutErrors OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of locally generated EGP messages not
-            sent due to resource limitations within an EGP
-            entity."
-    ::= { egp 4 }
-
--- the EGP Neighbor table
-
--- The EGP neighbor table contains information about this
--- entity's EGP neighbors.
-
-egpNeighTable OBJECT-TYPE
-    SYNTAX  SEQUENCE OF EgpNeighEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "The EGP neighbor table."
-    ::= { egp 5 }
-
-egpNeighEntry OBJECT-TYPE
-    SYNTAX  EgpNeighEntry
-    ACCESS  not-accessible
-    STATUS  mandatory
-    DESCRIPTION
-            "Information about this entity's relationship with
-            a particular EGP neighbor."
-    INDEX   { egpNeighAddr }
-    ::= { egpNeighTable 1 }
-
-EgpNeighEntry ::=
-    SEQUENCE {
-        egpNeighState
-            INTEGER,
-        egpNeighAddr
-            IpAddress,
-        egpNeighAs
-            INTEGER,
-        egpNeighInMsgs
-            Counter,
-        egpNeighInErrs
-            Counter,
-        egpNeighOutMsgs
-            Counter,
-        egpNeighOutErrs
-            Counter,
-        egpNeighInErrMsgs
-            Counter,
-        egpNeighOutErrMsgs
-            Counter,
-        egpNeighStateUps
-            Counter,
-        egpNeighStateDowns
-            Counter,
-        egpNeighIntervalHello
-            INTEGER,
-        egpNeighIntervalPoll
-            INTEGER,
-        egpNeighMode
-            INTEGER,
-        egpNeighEventTrigger
-            INTEGER
-    }
-
-egpNeighState OBJECT-TYPE
-    SYNTAX  INTEGER {
-                idle(1),
-                acquisition(2),
-                down(3),
-                up(4),
-                cease(5)
-            }
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The EGP state of the local system with respect to
-            this entry's EGP neighbor.  Each EGP state is
-            represented by a value that is one greater than
-            the numerical value associated with said state in
-            RFC 904."
-    ::= { egpNeighEntry 1 }
-
-egpNeighAddr OBJECT-TYPE
-    SYNTAX  IpAddress
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The IP address of this entry's EGP neighbor."
-    ::= { egpNeighEntry 2 }
-
-egpNeighAs OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The autonomous system of this EGP peer.  Zero
-            should be specified if the autonomous system
-            number of the neighbor is not yet known."
-    ::= { egpNeighEntry 3 }
-
-egpNeighInMsgs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of EGP messages received without error
-            from this EGP peer."
-    ::= { egpNeighEntry 4 }
-
-egpNeighInErrs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of EGP messages received from this EGP
-            peer that proved to be in error (e.g., bad EGP
-            checksum)."
-    ::= { egpNeighEntry 5 }
-
-egpNeighOutMsgs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of locally generated EGP messages to
-            this EGP peer."
-    ::= { egpNeighEntry 6 }
-
-egpNeighOutErrs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of locally generated EGP messages not
-            sent to this EGP peer due to resource limitations
-            within an EGP entity."
-    ::= { egpNeighEntry 7 }
-
-egpNeighInErrMsgs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of EGP-defined error messages received
-            from this EGP peer."
-    ::= { egpNeighEntry 8 }
-
-egpNeighOutErrMsgs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of EGP-defined error messages sent to
-            this EGP peer."
-    ::= { egpNeighEntry 9 }
-
-egpNeighStateUps OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of EGP state transitions to the UP
-            state with this EGP peer."
-    ::= { egpNeighEntry 10 }
-
-egpNeighStateDowns OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The number of EGP state transitions from the UP
-            state to any other state with this EGP peer."
-    ::= { egpNeighEntry 11 }
-
-egpNeighIntervalHello OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The interval between EGP Hello command
-            retransmissions (in hundredths of a second).  This
-            represents the t1 timer as defined in RFC 904."
-    ::= { egpNeighEntry 12 }
-
-egpNeighIntervalPoll OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The interval between EGP poll command
-
-            retransmissions (in hundredths of a second).  This
-            represents the t3 timer as defined in RFC 904."
-    ::= { egpNeighEntry 13 }
-
-egpNeighMode OBJECT-TYPE
-    SYNTAX  INTEGER { active(1), passive(2) }
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The polling mode of this EGP entity, either
-            passive or active."
-    ::= { egpNeighEntry 14 }
-
-egpNeighEventTrigger OBJECT-TYPE
-    SYNTAX  INTEGER { start(1), stop(2) }
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "A control variable used to trigger operator-
-            initiated Start and Stop events.  When read, this
-            variable always returns the most recent value that
-            egpNeighEventTrigger was set to.  If it has not
-            been set since the last initialization of the
-            network management subsystem on the node, it
-            returns a value of `stop'.
-
-            When set, this variable causes a Start or Stop
-            event on the specified neighbor, as specified on
-            pages 8-10 of RFC 904.  Briefly, a Start event
-            causes an Idle peer to begin neighbor acquisition
-            and a non-Idle peer to reinitiate neighbor
-            acquisition.  A stop event causes a non-Idle peer
-            to return to the Idle state until a Start event
-            occurs, either via egpNeighEventTrigger or
-            otherwise."
-    ::= { egpNeighEntry 15 }
-
--- additional EGP objects
-
-egpAs OBJECT-TYPE
-    SYNTAX  INTEGER
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The autonomous system number of this EGP entity."
-    ::= { egp 6 }
-
--- the Transmission group
-
--- Based on the transmission media underlying each interface
--- on a system, the corresponding portion of the Transmission
--- group is mandatory for that system.
-
--- When Internet-standard definitions for managing
--- transmission media are defined, the transmission group is
--- used to provide a prefix for the names of those objects.
-
--- Typically, such definitions reside in the experimental
--- portion of the MIB until they are "proven", then as a
--- part of the Internet standardization process, the
--- definitions are accordingly elevated and a new object
--- identifier, under the transmission group is defined. By
--- convention, the name assigned is:
---
---     type OBJECT IDENTIFIER    ::= { transmission number }
---
--- where "type" is the symbolic value used for the media in
--- the ifType column of the ifTable object, and "number" is
--- the actual integer value corresponding to the symbol.
-
--- the SNMP group
-
--- Implementation of the SNMP group is mandatory for all
--- systems which support an SNMP protocol entity.  Some of
--- the objects defined below will be zero-valued in those
--- SNMP implementations that are optimized to support only
--- those functions specific to either a management agent or
--- a management station.  In particular, it should be
--- observed that the objects below refer to an SNMP entity,
--- and there may be several SNMP entities residing on a
--- managed node (e.g., if the node is hosting acting as
--- a management station).
-
-snmpInPkts OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of Messages delivered to the
-            SNMP entity from the transport service."
-    ::= { snmp 1 }
-
-snmpOutPkts OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Messages which were
-            passed from the SNMP protocol entity to the
-            transport service."
-    ::= { snmp 2 }
-
-snmpInBadVersions OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Messages which were
-            delivered to the SNMP protocol entity and were for
-            an unsupported SNMP version."
-    ::= { snmp 3 }
-
-snmpInBadCommunityNames OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Messages delivered to
-            the SNMP protocol entity which used a SNMP
-            community name not known to said entity."
-    ::= { snmp 4 }
-
-snmpInBadCommunityUses OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Messages delivered to
-            the SNMP protocol entity which represented an SNMP
-            operation which was not allowed by the SNMP
-            community named in the Message."
-    ::= { snmp 5 }
-
-snmpInASNParseErrs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of ASN.1 or BER errors
-            encountered by the SNMP protocol entity when
-            decoding received SNMP Messages."
-    ::= { snmp 6 }
-
--- { snmp 7 } is not used
-
-snmpInTooBigs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP PDUs which were
-            delivered to the SNMP protocol entity and for
-            which the value of the error-status field is
-            `tooBig'."
-    ::= { snmp 8 }
-
-snmpInNoSuchNames OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP PDUs which were
-            delivered to the SNMP protocol entity and for
-            which the value of the error-status field is
-            `noSuchName'."
-    ::= { snmp 9 }
-
-snmpInBadValues OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP PDUs which were
-            delivered to the SNMP protocol entity and for
-            which the value of the error-status field is
-            `badValue'."
-    ::= { snmp 10 }
-
-snmpInReadOnlys OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number valid SNMP PDUs which were
-            delivered to the SNMP protocol entity and for
-            which the value of the error-status field is
-            `readOnly'.  It should be noted that it is a
-            protocol error to generate an SNMP PDU which
-            contains the value `readOnly' in the error-status
-            field, as such this object is provided as a means
-            of detecting incorrect implementations of the
-
-            SNMP."
-    ::= { snmp 11 }
-
-snmpInGenErrs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP PDUs which were
-            delivered to the SNMP protocol entity and for
-            which the value of the error-status field is
-            `genErr'."
-    ::= { snmp 12 }
-
-snmpInTotalReqVars OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of MIB objects which have been
-            retrieved successfully by the SNMP protocol entity
-            as the result of receiving valid SNMP Get-Request
-            and Get-Next PDUs."
-    ::= { snmp 13 }
-
-snmpInTotalSetVars OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of MIB objects which have been
-            altered successfully by the SNMP protocol entity
-            as the result of receiving valid SNMP Set-Request
-            PDUs."
-    ::= { snmp 14 }
-
-snmpInGetRequests OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Get-Request PDUs which
-            have been accepted and processed by the SNMP
-            protocol entity."
-    ::= { snmp 15 }
-
-snmpInGetNexts OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Get-Next PDUs which have
-            been accepted and processed by the SNMP protocol
-            entity."
-    ::= { snmp 16 }
-
-snmpInSetRequests OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Set-Request PDUs which
-            have been accepted and processed by the SNMP
-            protocol entity."
-    ::= { snmp 17 }
-
-snmpInGetResponses OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Get-Response PDUs which
-            have been accepted and processed by the SNMP
-            protocol entity."
-    ::= { snmp 18 }
-
-snmpInTraps OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Trap PDUs which have
-            been accepted and processed by the SNMP protocol
-            entity."
-    ::= { snmp 19 }
-
-snmpOutTooBigs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP PDUs which were
-            generated by the SNMP protocol entity and for
-            which the value of the error-status field is
-            `tooBig.'"
-    ::= { snmp 20 }
-
-snmpOutNoSuchNames OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP PDUs which were
-            generated by the SNMP protocol entity and for
-            which the value of the error-status is
-            `noSuchName'."
-    ::= { snmp 21 }
-
-snmpOutBadValues OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP PDUs which were
-            generated by the SNMP protocol entity and for
-            which the value of the error-status field is
-            `badValue'."
-    ::= { snmp 22 }
-
--- { snmp 23 } is not used
-
-snmpOutGenErrs OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP PDUs which were
-            generated by the SNMP protocol entity and for
-            which the value of the error-status field is
-            `genErr'."
-    ::= { snmp 24 }
-
-snmpOutGetRequests OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Get-Request PDUs which
-            have been generated by the SNMP protocol entity."
-    ::= { snmp 25 }
-
-snmpOutGetNexts OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Get-Next PDUs which have
-            been generated by the SNMP protocol entity."
-    ::= { snmp 26 }
-
-snmpOutSetRequests OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Set-Request PDUs which
-            have been generated by the SNMP protocol entity."
-    ::= { snmp 27 }
-
-snmpOutGetResponses OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Get-Response PDUs which
-            have been generated by the SNMP protocol entity."
-    ::= { snmp 28 }
-
-snmpOutTraps OBJECT-TYPE
-    SYNTAX  Counter
-    ACCESS  read-only
-    STATUS  mandatory
-    DESCRIPTION
-            "The total number of SNMP Trap PDUs which have
-            been generated by the SNMP protocol entity."
-    ::= { snmp 29 }
-
-snmpEnableAuthenTraps OBJECT-TYPE
-    SYNTAX  INTEGER { enabled(1), disabled(2) }
-    ACCESS  read-write
-    STATUS  mandatory
-    DESCRIPTION
-            "Indicates whether the SNMP agent process is
-            permitted to generate authentication-failure
-            traps.  The value of this object overrides any
-            configuration information; as such, it provides a
-            means whereby all authentication-failure traps may
-            be disabled.
-
-            Note that it is strongly recommended that this
-            object be stored in non-volatile memory so that it
-            remains constant between re-initializations of the
-            network management system."
-    ::= { snmp 30 }
-
-END
diff --git a/mibs/RMON-MIB.txt b/mibs/RMON-MIB.txt
deleted file mode 100644
index 983c22e..0000000
--- a/mibs/RMON-MIB.txt
+++ /dev/null
@@ -1,3980 +0,0 @@
-RMON-MIB DEFINITIONS ::= BEGIN
-
-    IMPORTS
-        MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY,
-        NOTIFICATION-TYPE, mib-2, Counter32,
-        Integer32, TimeTicks                   FROM SNMPv2-SMI
-
-        TEXTUAL-CONVENTION, DisplayString      FROM SNMPv2-TC
-
-        MODULE-COMPLIANCE, OBJECT-GROUP,
-        NOTIFICATION-GROUP                     FROM SNMPv2-CONF;
-
---  Remote Network Monitoring MIB
-
-rmonMibModule MODULE-IDENTITY
-    LAST-UPDATED "200005110000Z"  -- 11 May, 2000
-    ORGANIZATION "IETF RMON MIB Working Group"
-    CONTACT-INFO
-        "Steve Waldbusser
-        Phone: +1-650-948-6500
-        Fax:   +1-650-745-0671
-        Email: waldbusser at nextbeacon.com"
-    DESCRIPTION
-        "Remote network monitoring devices, often called
-        monitors or probes, are instruments that exist for
-        the purpose of managing a network. This MIB defines
-        objects for managing remote network monitoring devices."
-
-    REVISION "200005110000Z"    -- 11 May, 2000
-    DESCRIPTION
-        "Reformatted into SMIv2 format.
-
-        This version published as RFC 2819."
-
-    REVISION "199502010000Z" -- 1 Feb, 1995
-    DESCRIPTION
-        "Bug fixes, clarifications and minor changes based on
-        implementation experience, published as RFC1757 [18].
-
-        Two changes were made to object definitions:
-
-        1) A new status bit has been defined for the
-        captureBufferPacketStatus object, indicating that the
-        packet order within the capture buffer may not be identical to
-        the packet order as received off the wire.  This bit may only
-
-        be used for packets transmitted by the probe.  Older NMS
-        applications can safely ignore this status bit, which might be
-        used by newer agents.
-
-        2) The packetMatch trap has been removed.  This trap was never
-        actually 'approved' and was not added to this document along
-        with the risingAlarm and fallingAlarm traps. The packetMatch
-        trap could not be throttled, which could cause disruption of
-        normal network traffic under some circumstances. An NMS should
-        configure a risingAlarm threshold on the appropriate
-        channelMatches instance if a trap is desired for a packetMatch
-        event. Note that logging of packetMatch events is still
-        supported--only trap generation for such events has been
-        removed.
-
-        In addition, several clarifications to individual object
-        definitions have been added to assist agent and NMS
-        implementors:
-
-        - global definition of 'good packets' and 'bad packets'
-
-        - more detailed text governing conceptual row creation and
-          modification
-
-        - instructions for probes relating to interface changes and
-          disruptions
-
-        - clarification of some ethernet counter definitions
-
-        - recommended formula for calculating network utilization
-
-        - clarification of channel and captureBuffer behavior for some
-          unusual conditions
-
-        - examples of proper instance naming for each table"
-
-    REVISION "199111010000Z"    -- 1 Nov, 1991
-    DESCRIPTION
-        "The original version of this MIB, published as RFC1271."
-    ::= { rmonConformance 8 }
-
-    rmon    OBJECT IDENTIFIER ::= { mib-2 16 }
-
-    -- textual conventions
-
-OwnerString ::= TEXTUAL-CONVENTION
-    STATUS current
-    DESCRIPTION
-        "This data type is used to model an administratively
-        assigned name of the owner of a resource. Implementations
-        must accept values composed of well-formed NVT ASCII
-        sequences. In addition, implementations should accept
-        values composed of well-formed UTF-8 sequences.
-
-        It is suggested that this name contain one or more of
-        the following: IP address, management station name,
-        network manager's name, location, or phone number.
-        In some cases the agent itself will be the owner of
-        an entry.  In these cases, this string shall be set
-        to a string starting with 'monitor'.
-
-        SNMP access control is articulated entirely in terms
-        of the contents of MIB views; access to a particular
-        SNMP object instance depends only upon its presence
-        or absence in a particular MIB view and never upon
-        its value or the value of related object instances.
-        Thus, objects of this type afford resolution of
-        resource contention only among cooperating
-        managers; they realize no access control function
-        with respect to uncooperative parties."
-    SYNTAX OCTET STRING (SIZE (0..127))
-
-EntryStatus ::= TEXTUAL-CONVENTION
-    STATUS current
-    DESCRIPTION
-        "The status of a table entry.
-
-        Setting this object to the value invalid(4) has the
-        effect of invalidating the corresponding entry.
-        That is, it effectively disassociates the mapping
-        identified with said entry.
-        It is an implementation-specific matter as to whether
-        the agent removes an invalidated entry from the table.
-        Accordingly, management stations must be prepared to
-        receive tabular information from agents that corresponds
-        to entries currently not in use.  Proper
-        interpretation of such entries requires examination
-        of the relevant EntryStatus object.
-
-        An existing instance of this object cannot be set to
-        createRequest(2).  This object may only be set to
-        createRequest(2) when this instance is created.  When
-        this object is created, the agent may wish to create
-        supplemental object instances with default values
-        to complete a conceptual row in this table.  Because the
-
-        creation of these default objects is entirely at the option
-        of the agent, the manager must not assume that any will be
-        created, but may make use of any that are created.
-        Immediately after completing the create operation, the agent
-        must set this object to underCreation(3).
-
-        When in the underCreation(3) state, an entry is allowed to
-        exist in a possibly incomplete, possibly inconsistent state,
-        usually to allow it to be modified in multiple PDUs.  When in
-        this state, an entry is not fully active.
-        Entries shall exist in the underCreation(3) state until
-        the management station is finished configuring the entry
-        and sets this object to valid(1) or aborts, setting this
-        object to invalid(4).  If the agent determines that an
-        entry has been in the underCreation(3) state for an
-        abnormally long time, it may decide that the management
-        station has crashed.  If the agent makes this decision,
-        it may set this object to invalid(4) to reclaim the
-        entry.  A prudent agent will understand that the
-        management station may need to wait for human input
-        and will allow for that possibility in its
-        determination of this abnormally long period.
-
-        An entry in the valid(1) state is fully configured and
-        consistent and fully represents the configuration or
-        operation such a row is intended to represent.  For
-        example, it could be a statistical function that is
-        configured and active, or a filter that is available
-        in the list of filters processed by the packet capture
-        process.
-
-        A manager is restricted to changing the state of an entry in
-        the following ways:
-
-             To:       valid  createRequest  underCreation  invalid
-        From:
-        valid             OK             NO             OK       OK
-        createRequest    N/A            N/A            N/A      N/A
-        underCreation     OK             NO             OK       OK
-        invalid           NO             NO             NO       OK
-        nonExistent       NO             OK             NO       OK
-
-        In the table above, it is not applicable to move the state
-        from the createRequest state to any other state because the
-        manager will never find the variable in that state.  The
-        nonExistent state is not a value of the enumeration, rather
-        it means that the entryStatus variable does not exist at all.
-
-        An agent may allow an entryStatus variable to change state in
-        additional ways, so long as the semantics of the states are
-        followed.  This allowance is made to ease the implementation of
-        the agent and is made despite the fact that managers should
-        never exercise these additional state transitions."
-    SYNTAX INTEGER {
-               valid(1),
-               createRequest(2),
-               underCreation(3),
-               invalid(4)
-           }
-
-    statistics        OBJECT IDENTIFIER ::= { rmon 1 }
-    history           OBJECT IDENTIFIER ::= { rmon 2 }
-    alarm             OBJECT IDENTIFIER ::= { rmon 3 }
-    hosts             OBJECT IDENTIFIER ::= { rmon 4 }
-    hostTopN          OBJECT IDENTIFIER ::= { rmon 5 }
-    matrix            OBJECT IDENTIFIER ::= { rmon 6 }
-    filter            OBJECT IDENTIFIER ::= { rmon 7 }
-    capture           OBJECT IDENTIFIER ::= { rmon 8 }
-    event             OBJECT IDENTIFIER ::= { rmon 9 }
-    rmonConformance   OBJECT IDENTIFIER ::= { rmon 20 }
-
--- The Ethernet Statistics Group
---
--- Implementation of the Ethernet Statistics group is optional.
--- Consult the MODULE-COMPLIANCE macro for the authoritative
--- conformance information for this MIB.
---
--- The ethernet statistics group contains statistics measured by the
--- probe for each monitored interface on this device.  These
--- statistics take the form of free running counters that start from
--- zero when a valid entry is created.
---
--- This group currently has statistics defined only for
--- Ethernet interfaces.  Each etherStatsEntry contains statistics
--- for one Ethernet interface.  The probe must create one
--- etherStats entry for each monitored Ethernet interface
--- on the device.
-
-etherStatsTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF EtherStatsEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of Ethernet statistics entries."
-    ::= { statistics 1 }
-
-etherStatsEntry OBJECT-TYPE
-    SYNTAX     EtherStatsEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A collection of statistics kept for a particular
-        Ethernet interface.  As an example, an instance of the
-        etherStatsPkts object might be named etherStatsPkts.1"
-    INDEX { etherStatsIndex }
-    ::= { etherStatsTable 1 }
-
-EtherStatsEntry ::= SEQUENCE {
-    etherStatsIndex                    Integer32,
-    etherStatsDataSource               OBJECT IDENTIFIER,
-    etherStatsDropEvents               Counter32,
-    etherStatsOctets                   Counter32,
-    etherStatsPkts                     Counter32,
-    etherStatsBroadcastPkts            Counter32,
-    etherStatsMulticastPkts            Counter32,
-    etherStatsCRCAlignErrors           Counter32,
-    etherStatsUndersizePkts            Counter32,
-    etherStatsOversizePkts             Counter32,
-    etherStatsFragments                Counter32,
-    etherStatsJabbers                  Counter32,
-    etherStatsCollisions               Counter32,
-    etherStatsPkts64Octets             Counter32,
-    etherStatsPkts65to127Octets        Counter32,
-    etherStatsPkts128to255Octets       Counter32,
-    etherStatsPkts256to511Octets       Counter32,
-    etherStatsPkts512to1023Octets      Counter32,
-    etherStatsPkts1024to1518Octets     Counter32,
-    etherStatsOwner                    OwnerString,
-    etherStatsStatus                   EntryStatus
-}
-
-etherStatsIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of this object uniquely identifies this
-        etherStats entry."
-    ::= { etherStatsEntry 1 }
-
-etherStatsDataSource OBJECT-TYPE
-    SYNTAX     OBJECT IDENTIFIER
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "This object identifies the source of the data that
-        this etherStats entry is configured to analyze.  This
-        source can be any ethernet interface on this device.
-        In order to identify a particular interface, this object
-        shall identify the instance of the ifIndex object,
-        defined in RFC 2233 [17], for the desired interface.
-        For example, if an entry were to receive data from
-        interface #1, this object would be set to ifIndex.1.
-
-        The statistics in this group reflect all packets
-        on the local network segment attached to the identified
-        interface.
-
-        An agent may or may not be able to tell if fundamental
-        changes to the media of the interface have occurred and
-        necessitate an invalidation of this entry.  For example, a
-        hot-pluggable ethernet card could be pulled out and replaced
-        by a token-ring card.  In such a case, if the agent has such
-        knowledge of the change, it is recommended that it
-        invalidate this entry.
-
-        This object may not be modified if the associated
-        etherStatsStatus object is equal to valid(1)."
-    ::= { etherStatsEntry 2 }
-
-etherStatsDropEvents OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of events in which packets
-        were dropped by the probe due to lack of resources.
-        Note that this number is not necessarily the number of
-        packets dropped; it is just the number of times this
-        condition has been detected."
-    ::= { etherStatsEntry 3 }
-
-etherStatsOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Octets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of octets of data (including
-        those in bad packets) received on the
-        network (excluding framing bits but including
-        FCS octets).
-
-        This object can be used as a reasonable estimate of
-        10-Megabit ethernet utilization.  If greater precision is
-        desired, the etherStatsPkts and etherStatsOctets objects
-        should be sampled before and after a common interval.  The
-        differences in the sampled values are Pkts and Octets,
-        respectively, and the number of seconds in the interval is
-        Interval.  These values are used to calculate the Utilization
-        as follows:
-
-                         Pkts * (9.6 + 6.4) + (Octets * .8)
-         Utilization = -------------------------------------
-                                 Interval * 10,000
-
-        The result of this equation is the value Utilization which
-        is the percent utilization of the ethernet segment on a
-        scale of 0 to 100 percent."
-    ::= { etherStatsEntry 4 }
-
-etherStatsPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of packets (including bad packets,
-        broadcast packets, and multicast packets) received."
-    ::= { etherStatsEntry 5 }
-
-etherStatsBroadcastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of good packets received that were
-        directed to the broadcast address.  Note that this
-        does not include multicast packets."
-    ::= { etherStatsEntry 6 }
-
-etherStatsMulticastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of good packets received that were
-        directed to a multicast address.  Note that this number
-        does not include packets directed to the broadcast
-
-        address."
-    ::= { etherStatsEntry 7 }
-
-etherStatsCRCAlignErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of packets received that
-        had a length (excluding framing bits, but
-        including FCS octets) of between 64 and 1518
-        octets, inclusive, but had either a bad
-        Frame Check Sequence (FCS) with an integral
-        number of octets (FCS Error) or a bad FCS with
-        a non-integral number of octets (Alignment Error)."
-    ::= { etherStatsEntry 8 }
-
-etherStatsUndersizePkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of packets received that were
-        less than 64 octets long (excluding framing bits,
-        but including FCS octets) and were otherwise well
-        formed."
-    ::= { etherStatsEntry 9 }
-
-etherStatsOversizePkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of packets received that were
-        longer than 1518 octets (excluding framing bits,
-        but including FCS octets) and were otherwise
-        well formed."
-    ::= { etherStatsEntry 10 }
-
-etherStatsFragments OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of packets received that were less than
-        64 octets in length (excluding framing bits but including
-        FCS octets) and had either a bad Frame Check Sequence
-        (FCS) with an integral number of octets (FCS Error) or a
-        bad FCS with a non-integral number of octets (Alignment
-        Error).
-
-        Note that it is entirely normal for etherStatsFragments to
-        increment.  This is because it counts both runts (which are
-        normal occurrences due to collisions) and noise hits."
-    ::= { etherStatsEntry 11 }
-
-etherStatsJabbers OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of packets received that were
-        longer than 1518 octets (excluding framing bits,
-        but including FCS octets), and had either a bad
-        Frame Check Sequence (FCS) with an integral number
-        of octets (FCS Error) or a bad FCS with a non-integral
-        number of octets (Alignment Error).
-
-        Note that this definition of jabber is different
-        than the definition in IEEE-802.3 section 8.2.1.5
-        (10BASE5) and section 10.3.1.4 (10BASE2).  These
-        documents define jabber as the condition where any
-        packet exceeds 20 ms.  The allowed range to detect
-        jabber is between 20 ms and 150 ms."
-    ::= { etherStatsEntry 12 }
-
-etherStatsCollisions OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Collisions"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The best estimate of the total number of collisions
-        on this Ethernet segment.
-
-        The value returned will depend on the location of the
-        RMON probe. Section 8.2.1.3 (10BASE-5) and section
-        10.3.1.3 (10BASE-2) of IEEE standard 802.3 states that a
-        station must detect a collision, in the receive mode, if
-        three or more stations are transmitting simultaneously.  A
-        repeater port must detect a collision when two or more
-
-        stations are transmitting simultaneously.  Thus a probe
-        placed on a repeater port could record more collisions
-        than a probe connected to a station on the same segment
-        would.
-
-        Probe location plays a much smaller role when considering
-        10BASE-T.  14.2.1.4 (10BASE-T) of IEEE standard 802.3
-        defines a collision as the simultaneous presence of signals
-        on the DO and RD circuits (transmitting and receiving
-        at the same time).  A 10BASE-T station can only detect
-        collisions when it is transmitting.  Thus probes placed on
-        a station and a repeater, should report the same number of
-        collisions.
-
-        Note also that an RMON probe inside a repeater should
-        ideally report collisions between the repeater and one or
-        more other hosts (transmit collisions as defined by IEEE
-        802.3k) plus receiver collisions observed on any coax
-        segments to which the repeater is connected."
-    ::= { etherStatsEntry 13 }
-
-etherStatsPkts64Octets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of packets (including bad
-        packets) received that were 64 octets in length
-        (excluding framing bits but including FCS octets)."
-    ::= { etherStatsEntry 14 }
-
-etherStatsPkts65to127Octets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of packets (including bad
-        packets) received that were between
-        65 and 127 octets in length inclusive
-        (excluding framing bits but including FCS octets)."
-    ::= { etherStatsEntry 15 }
-
-etherStatsPkts128to255Octets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of packets (including bad
-        packets) received that were between
-        128 and 255 octets in length inclusive
-        (excluding framing bits but including FCS octets)."
-    ::= { etherStatsEntry 16 }
-
-etherStatsPkts256to511Octets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of packets (including bad
-        packets) received that were between
-        256 and 511 octets in length inclusive
-        (excluding framing bits but including FCS octets)."
-    ::= { etherStatsEntry 17 }
-
-etherStatsPkts512to1023Octets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of packets (including bad
-        packets) received that were between
-        512 and 1023 octets in length inclusive
-        (excluding framing bits but including FCS octets)."
-    ::= { etherStatsEntry 18 }
-
-etherStatsPkts1024to1518Octets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of packets (including bad
-        packets) received that were between
-        1024 and 1518 octets in length inclusive
-        (excluding framing bits but including FCS octets)."
-    ::= { etherStatsEntry 19 }
-
-etherStatsOwner OBJECT-TYPE
-    SYNTAX     OwnerString
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The entity that configured this entry and is therefore
-        using the resources assigned to it."
-    ::= { etherStatsEntry 20 }
-
-etherStatsStatus OBJECT-TYPE
-    SYNTAX     EntryStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The status of this etherStats entry."
-    ::= { etherStatsEntry 21 }
-
--- The History Control Group
-
--- Implementation of the History Control group is optional.
--- Consult the MODULE-COMPLIANCE macro for the authoritative
--- conformance information for this MIB.
---
--- The history control group controls the periodic statistical
--- sampling of data from various types of networks.  The
--- historyControlTable stores configuration entries that each
--- define an interface, polling period, and other parameters.
--- Once samples are taken, their data is stored in an entry
--- in a media-specific table.  Each such entry defines one
--- sample, and is associated with the historyControlEntry that
--- caused the sample to be taken.  Each counter in the
--- etherHistoryEntry counts the same event as its similarly-named
--- counterpart in the etherStatsEntry, except that each value here
--- is a cumulative sum during a sampling period.
---
--- If the probe keeps track of the time of day, it should start
--- the first sample of the history at a time such that
--- when the next hour of the day begins, a sample is
--- started at that instant.  This tends to make more
--- user-friendly reports, and enables comparison of reports
--- from different probes that have relatively accurate time
--- of day.
---
--- The probe is encouraged to add two history control entries
--- per monitored interface upon initialization that describe a short
--- term and a long term polling period.  Suggested parameters are 30
--- seconds for the short term polling period and 30 minutes for
--- the long term period.
-
-historyControlTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HistoryControlEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of history control entries."
-    ::= { history 1 }
-
-historyControlEntry OBJECT-TYPE
-    SYNTAX     HistoryControlEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of parameters that set up a periodic sampling of
-        statistics.  As an example, an instance of the
-        historyControlInterval object might be named
-        historyControlInterval.2"
-    INDEX { historyControlIndex }
-    ::= { historyControlTable 1 }
-
-HistoryControlEntry ::= SEQUENCE {
-    historyControlIndex             Integer32,
-    historyControlDataSource        OBJECT IDENTIFIER,
-    historyControlBucketsRequested  Integer32,
-    historyControlBucketsGranted    Integer32,
-    historyControlInterval          Integer32,
-    historyControlOwner             OwnerString,
-    historyControlStatus            EntryStatus
-}
-
-historyControlIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies an entry in the
-        historyControl table.  Each such entry defines a
-        set of samples at a particular interval for an
-        interface on the device."
-    ::= { historyControlEntry 1 }
-
-historyControlDataSource OBJECT-TYPE
-    SYNTAX     OBJECT IDENTIFIER
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "This object identifies the source of the data for
-        which historical data was collected and
-        placed in a media-specific table on behalf of this
-        historyControlEntry.  This source can be any
-        interface on this device.  In order to identify
-
-        a particular interface, this object shall identify
-        the instance of the ifIndex object, defined
-        in  RFC 2233 [17], for the desired interface.
-        For example, if an entry were to receive data from
-        interface #1, this object would be set to ifIndex.1.
-
-        The statistics in this group reflect all packets
-        on the local network segment attached to the identified
-        interface.
-
-        An agent may or may not be able to tell if fundamental
-        changes to the media of the interface have occurred and
-        necessitate an invalidation of this entry.  For example, a
-        hot-pluggable ethernet card could be pulled out and replaced
-        by a token-ring card.  In such a case, if the agent has such
-        knowledge of the change, it is recommended that it
-        invalidate this entry.
-
-        This object may not be modified if the associated
-        historyControlStatus object is equal to valid(1)."
-    ::= { historyControlEntry 2 }
-
-historyControlBucketsRequested OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The requested number of discrete time intervals
-        over which data is to be saved in the part of the
-        media-specific table associated with this
-        historyControlEntry.
-
-        When this object is created or modified, the probe
-        should set historyControlBucketsGranted as closely to
-        this object as is possible for the particular probe
-        implementation and available resources."
-    DEFVAL { 50 }
-    ::= { historyControlEntry 3 }
-
-historyControlBucketsGranted OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of discrete sampling intervals
-        over which data shall be saved in the part of
-        the media-specific table associated with this
-        historyControlEntry.
-
-        When the associated historyControlBucketsRequested
-        object is created or modified, the probe
-        should set this object as closely to the requested
-        value as is possible for the particular
-        probe implementation and available resources.  The
-        probe must not lower this value except as a result
-        of a modification to the associated
-        historyControlBucketsRequested object.
-
-        There will be times when the actual number of
-        buckets associated with this entry is less than
-        the value of this object.  In this case, at the
-        end of each sampling interval, a new bucket will
-        be added to the media-specific table.
-
-        When the number of buckets reaches the value of
-        this object and a new bucket is to be added to the
-        media-specific table, the oldest bucket associated
-        with this historyControlEntry shall be deleted by
-        the agent so that the new bucket can be added.
-
-        When the value of this object changes to a value less
-        than the current value, entries are deleted
-        from the media-specific table associated with this
-        historyControlEntry.  Enough of the oldest of these
-        entries shall be deleted by the agent so that their
-        number remains less than or equal to the new value of
-        this object.
-
-        When the value of this object changes to a value greater
-        than the current value, the number of associated media-
-        specific entries may be allowed to grow."
-    ::= { historyControlEntry 4 }
-
-historyControlInterval OBJECT-TYPE
-    SYNTAX     Integer32 (1..3600)
-    UNITS      "Seconds"
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The interval in seconds over which the data is
-        sampled for each bucket in the part of the
-        media-specific table associated with this
-        historyControlEntry.  This interval can
-        be set to any number of seconds between 1 and
-        3600 (1 hour).
-
-        Because the counters in a bucket may overflow at their
-
-        maximum value with no indication, a prudent manager will
-        take into account the possibility of overflow in any of
-        the associated counters.  It is important to consider the
-        minimum time in which any counter could overflow on a
-        particular media type and set the historyControlInterval
-        object to a value less than this interval.  This is
-        typically most important for the 'octets' counter in any
-        media-specific table.  For example, on an Ethernet
-        network, the etherHistoryOctets counter could overflow
-        in about one hour at the Ethernet's maximum
-        utilization.
-
-        This object may not be modified if the associated
-        historyControlStatus object is equal to valid(1)."
-    DEFVAL { 1800 }
-    ::= { historyControlEntry 5 }
-
-historyControlOwner OBJECT-TYPE
-    SYNTAX     OwnerString
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The entity that configured this entry and is therefore
-        using the resources assigned to it."
-    ::= { historyControlEntry 6 }
-
-historyControlStatus OBJECT-TYPE
-    SYNTAX     EntryStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The status of this historyControl entry.
-
-        Each instance of the media-specific table associated
-        with this historyControlEntry will be deleted by the agent
-        if this historyControlEntry is not equal to valid(1)."
-    ::= { historyControlEntry 7 }
-
--- The Ethernet History Group
-
--- Implementation of the Ethernet History group is optional.
--- Consult the MODULE-COMPLIANCE macro for the authoritative
--- conformance information for this MIB.
---
--- The Ethernet History group records periodic statistical samples
--- from a network and stores them for later retrieval.
--- Once samples are taken, their data is stored in an entry
--- in a media-specific table.  Each such entry defines one
-
--- sample, and is associated with the historyControlEntry that
--- caused the sample to be taken.  This group defines the
--- etherHistoryTable, for Ethernet networks.
---
-
-etherHistoryTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF EtherHistoryEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of Ethernet history entries."
-    ::= { history 2 }
-
-etherHistoryEntry OBJECT-TYPE
-    SYNTAX     EtherHistoryEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "An historical sample of Ethernet statistics on a particular
-        Ethernet interface.  This sample is associated with the
-        historyControlEntry which set up the parameters for
-        a regular collection of these samples.  As an example, an
-        instance of the etherHistoryPkts object might be named
-        etherHistoryPkts.2.89"
-    INDEX { etherHistoryIndex , etherHistorySampleIndex }
-    ::= { etherHistoryTable 1 }
-
-EtherHistoryEntry ::= SEQUENCE {
-    etherHistoryIndex                 Integer32,
-    etherHistorySampleIndex           Integer32,
-    etherHistoryIntervalStart         TimeTicks,
-    etherHistoryDropEvents            Counter32,
-    etherHistoryOctets                Counter32,
-    etherHistoryPkts                  Counter32,
-    etherHistoryBroadcastPkts         Counter32,
-    etherHistoryMulticastPkts         Counter32,
-    etherHistoryCRCAlignErrors        Counter32,
-    etherHistoryUndersizePkts         Counter32,
-    etherHistoryOversizePkts          Counter32,
-    etherHistoryFragments             Counter32,
-    etherHistoryJabbers               Counter32,
-    etherHistoryCollisions            Counter32,
-    etherHistoryUtilization           Integer32
-}
-
-etherHistoryIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The history of which this entry is a part.  The
-        history identified by a particular value of this
-        index is the same history as identified
-        by the same value of historyControlIndex."
-    ::= { etherHistoryEntry 1 }
-
-etherHistorySampleIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies the particular
-        sample this entry represents among all samples
-        associated with the same historyControlEntry.
-        This index starts at 1 and increases by one
-        as each new sample is taken."
-    ::= { etherHistoryEntry 2 }
-
-etherHistoryIntervalStart OBJECT-TYPE
-    SYNTAX     TimeTicks
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of sysUpTime at the start of the interval
-        over which this sample was measured.  If the probe
-        keeps track of the time of day, it should start
-        the first sample of the history at a time such that
-        when the next hour of the day begins, a sample is
-        started at that instant.  Note that following this
-        rule may require the probe to delay collecting the
-        first sample of the history, as each sample must be
-        of the same interval.  Also note that the sample which
-        is currently being collected is not accessible in this
-        table until the end of its interval."
-    ::= { etherHistoryEntry 3 }
-
-etherHistoryDropEvents OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of events in which packets
-        were dropped by the probe due to lack of resources
-        during this sampling interval.  Note that this number
-        is not necessarily the number of packets dropped, it
-        is just the number of times this condition has been
-
-        detected."
-    ::= { etherHistoryEntry 4 }
-
-etherHistoryOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Octets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of octets of data (including
-        those in bad packets) received on the
-        network (excluding framing bits but including
-        FCS octets)."
-    ::= { etherHistoryEntry 5 }
-
-etherHistoryPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of packets (including bad packets)
-        received during this sampling interval."
-    ::= { etherHistoryEntry 6 }
-
-etherHistoryBroadcastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of good packets received during this
-        sampling interval that were directed to the
-        broadcast address."
-    ::= { etherHistoryEntry 7 }
-
-etherHistoryMulticastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of good packets received during this
-        sampling interval that were directed to a
-        multicast address.  Note that this number does not
-        include packets addressed to the broadcast address."
-    ::= { etherHistoryEntry 8 }
-
-etherHistoryCRCAlignErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of packets received during this
-        sampling interval that had a length (excluding
-        framing bits but including FCS octets) between
-        64 and 1518 octets, inclusive, but had either a bad Frame
-        Check Sequence (FCS) with an integral number of octets
-        (FCS Error) or a bad FCS with a non-integral number
-        of octets (Alignment Error)."
-    ::= { etherHistoryEntry 9 }
-
-etherHistoryUndersizePkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of packets received during this
-        sampling interval that were less than 64 octets
-        long (excluding framing bits but including FCS
-        octets) and were otherwise well formed."
-    ::= { etherHistoryEntry 10 }
-
-etherHistoryOversizePkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of packets received during this
-        sampling interval that were longer than 1518
-        octets (excluding framing bits but including
-        FCS octets) but were otherwise well formed."
-    ::= { etherHistoryEntry 11 }
-
-etherHistoryFragments OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The total number of packets received during this
-        sampling interval that were less than 64 octets in
-        length (excluding framing bits but including FCS
-
-        octets) had either a bad Frame Check Sequence (FCS)
-        with an integral number of octets (FCS Error) or a bad
-        FCS with a non-integral number of octets (Alignment
-        Error).
-
-        Note that it is entirely normal for etherHistoryFragments to
-        increment.  This is because it counts both runts (which are
-        normal occurrences due to collisions) and noise hits."
-    ::= { etherHistoryEntry 12 }
-
-etherHistoryJabbers OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of packets received during this
-        sampling interval that were longer than 1518 octets
-        (excluding framing bits but including FCS octets),
-        and  had either a bad Frame Check Sequence (FCS)
-        with an integral number of octets (FCS Error) or
-        a bad FCS with a non-integral number of octets
-        (Alignment Error).
-
-        Note that this definition of jabber is different
-        than the definition in IEEE-802.3 section 8.2.1.5
-        (10BASE5) and section 10.3.1.4 (10BASE2).  These
-        documents define jabber as the condition where any
-        packet exceeds 20 ms.  The allowed range to detect
-        jabber is between 20 ms and 150 ms."
-    ::= { etherHistoryEntry 13 }
-
-etherHistoryCollisions OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Collisions"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The best estimate of the total number of collisions
-        on this Ethernet segment during this sampling
-        interval.
-
-        The value returned will depend on the location of the
-        RMON probe. Section 8.2.1.3 (10BASE-5) and section
-        10.3.1.3 (10BASE-2) of IEEE standard 802.3 states that a
-        station must detect a collision, in the receive mode, if
-        three or more stations are transmitting simultaneously.  A
-        repeater port must detect a collision when two or more
-
-        stations are transmitting simultaneously.  Thus a probe
-        placed on a repeater port could record more collisions
-        than a probe connected to a station on the same segment
-        would.
-
-        Probe location plays a much smaller role when considering
-        10BASE-T.  14.2.1.4 (10BASE-T) of IEEE standard 802.3
-        defines a collision as the simultaneous presence of signals
-        on the DO and RD circuits (transmitting and receiving
-        at the same time).  A 10BASE-T station can only detect
-        collisions when it is transmitting.  Thus probes placed on
-        a station and a repeater, should report the same number of
-        collisions.
-
-        Note also that an RMON probe inside a repeater should
-        ideally report collisions between the repeater and one or
-        more other hosts (transmit collisions as defined by IEEE
-        802.3k) plus receiver collisions observed on any coax
-        segments to which the repeater is connected."
-    ::= { etherHistoryEntry 14 }
-
-etherHistoryUtilization OBJECT-TYPE
-    SYNTAX     Integer32 (0..10000)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The best estimate of the mean physical layer
-        network utilization on this interface during this
-        sampling interval, in hundredths of a percent."
-    ::= { etherHistoryEntry 15 }
-
--- The Alarm Group
-
--- Implementation of the Alarm group is optional. The Alarm Group
--- requires the implementation of the Event group.
--- Consult the MODULE-COMPLIANCE macro for the authoritative
--- conformance information for this MIB.
---
--- The Alarm group periodically takes statistical samples from
--- variables in the probe and compares them to thresholds that have
--- been configured.  The alarm table stores configuration
--- entries that each define a variable, polling period, and
--- threshold parameters.  If a sample is found to cross the
--- threshold values, an event is generated.  Only variables that
--- resolve to an ASN.1 primitive type of INTEGER (INTEGER, Integer32,
--- Counter32, Counter64, Gauge32, or TimeTicks) may be monitored in
--- this way.
---
-
--- This function has a hysteresis mechanism to limit the generation
--- of events.  This mechanism generates one event as a threshold
--- is crossed in the appropriate direction.  No more events are
--- generated for that threshold until the opposite threshold is
--- crossed.
---
--- In the case of a sampling a deltaValue, a probe may implement
--- this mechanism with more precision if it takes a delta sample
--- twice per period, each time comparing the sum of the latest two
--- samples to the threshold.  This allows the detection of threshold
--- crossings that span the sampling boundary.  Note that this does
--- not require any special configuration of the threshold value.
--- It is suggested that probes implement this more precise algorithm.
-
-alarmTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF AlarmEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of alarm entries."
-    ::= { alarm 1 }
-
-alarmEntry OBJECT-TYPE
-    SYNTAX     AlarmEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of parameters that set up a periodic checking
-        for alarm conditions.  For example, an instance of the
-        alarmValue object might be named alarmValue.8"
-    INDEX { alarmIndex }
-    ::= { alarmTable 1 }
-
-AlarmEntry ::= SEQUENCE {
-    alarmIndex                    Integer32,
-    alarmInterval                 Integer32,
-    alarmVariable                 OBJECT IDENTIFIER,
-    alarmSampleType               INTEGER,
-    alarmValue                    Integer32,
-    alarmStartupAlarm             INTEGER,
-    alarmRisingThreshold          Integer32,
-    alarmFallingThreshold         Integer32,
-    alarmRisingEventIndex         Integer32,
-    alarmFallingEventIndex        Integer32,
-    alarmOwner                    OwnerString,
-    alarmStatus                   EntryStatus
-}
-
-alarmIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies an entry in the
-        alarm table.  Each such entry defines a
-        diagnostic sample at a particular interval
-        for an object on the device."
-    ::= { alarmEntry 1 }
-
-alarmInterval OBJECT-TYPE
-    SYNTAX     Integer32
-    UNITS      "Seconds"
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The interval in seconds over which the data is
-        sampled and compared with the rising and falling
-        thresholds.  When setting this variable, care
-        should be taken in the case of deltaValue
-        sampling - the interval should be set short enough
-        that the sampled variable is very unlikely to
-        increase or decrease by more than 2^31 - 1 during
-        a single sampling interval.
-
-        This object may not be modified if the associated
-        alarmStatus object is equal to valid(1)."
-    ::= { alarmEntry 2 }
-
-alarmVariable OBJECT-TYPE
-    SYNTAX     OBJECT IDENTIFIER
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The object identifier of the particular variable to be
-        sampled.  Only variables that resolve to an ASN.1 primitive
-        type of INTEGER (INTEGER, Integer32, Counter32, Counter64,
-        Gauge, or TimeTicks) may be sampled.
-
-        Because SNMP access control is articulated entirely
-        in terms of the contents of MIB views, no access
-        control mechanism exists that can restrict the value of
-        this object to identify only those objects that exist
-        in a particular MIB view.  Because there is thus no
-        acceptable means of restricting the read access that
-        could be obtained through the alarm mechanism, the
-        probe must only grant write access to this object in
-
-        those views that have read access to all objects on
-        the probe.
-
-        During a set operation, if the supplied variable name is
-        not available in the selected MIB view, a badValue error
-        must be returned.  If at any time the variable name of
-        an established alarmEntry is no longer available in the
-        selected MIB view, the probe must change the status of
-        this alarmEntry to invalid(4).
-
-        This object may not be modified if the associated
-        alarmStatus object is equal to valid(1)."
-    ::= { alarmEntry 3 }
-
-alarmSampleType OBJECT-TYPE
-    SYNTAX     INTEGER {
-                 absoluteValue(1),
-                 deltaValue(2)
-               }
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The method of sampling the selected variable and
-        calculating the value to be compared against the
-        thresholds.  If the value of this object is
-        absoluteValue(1), the value of the selected variable
-        will be compared directly with the thresholds at the
-        end of the sampling interval.  If the value of this
-        object is deltaValue(2), the value of the selected
-        variable at the last sample will be subtracted from
-        the current value, and the difference compared with
-        the thresholds.
-
-        This object may not be modified if the associated
-        alarmStatus object is equal to valid(1)."
-    ::= { alarmEntry 4 }
-
-alarmValue OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of the statistic during the last sampling
-        period.  For example, if the sample type is deltaValue,
-        this value will be the difference between the samples
-        at the beginning and end of the period.  If the sample
-        type is absoluteValue, this value will be the sampled
-        value at the end of the period.
-
-        This is the value that is compared with the rising and
-        falling thresholds.
-
-        The value during the current sampling period is not
-        made available until the period is completed and will
-        remain available until the next period completes."
-    ::= { alarmEntry 5 }
-
-alarmStartupAlarm OBJECT-TYPE
-    SYNTAX     INTEGER {
-                 risingAlarm(1),
-                 fallingAlarm(2),
-                 risingOrFallingAlarm(3)
-               }
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The alarm that may be sent when this entry is first
-        set to valid.  If the first sample after this entry
-        becomes valid is greater than or equal to the
-        risingThreshold and alarmStartupAlarm is equal to
-        risingAlarm(1) or risingOrFallingAlarm(3), then a single
-        rising alarm will be generated.  If the first sample
-        after this entry becomes valid is less than or equal
-        to the fallingThreshold and alarmStartupAlarm is equal
-        to fallingAlarm(2) or risingOrFallingAlarm(3), then a
-        single falling alarm will be generated.
-
-        This object may not be modified if the associated
-        alarmStatus object is equal to valid(1)."
-    ::= { alarmEntry 6 }
-
-alarmRisingThreshold OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "A threshold for the sampled statistic.  When the current
-        sampled value is greater than or equal to this threshold,
-        and the value at the last sampling interval was less than
-        this threshold, a single event will be generated.
-        A single event will also be generated if the first
-        sample after this entry becomes valid is greater than or
-        equal to this threshold and the associated
-        alarmStartupAlarm is equal to risingAlarm(1) or
-        risingOrFallingAlarm(3).
-
-        After a rising event is generated, another such event
-
-        will not be generated until the sampled value
-        falls below this threshold and reaches the
-        alarmFallingThreshold.
-
-        This object may not be modified if the associated
-        alarmStatus object is equal to valid(1)."
-    ::= { alarmEntry 7 }
-
-alarmFallingThreshold OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "A threshold for the sampled statistic.  When the current
-        sampled value is less than or equal to this threshold,
-        and the value at the last sampling interval was greater than
-        this threshold, a single event will be generated.
-        A single event will also be generated if the first
-        sample after this entry becomes valid is less than or
-        equal to this threshold and the associated
-        alarmStartupAlarm is equal to fallingAlarm(2) or
-        risingOrFallingAlarm(3).
-
-        After a falling event is generated, another such event
-        will not be generated until the sampled value
-        rises above this threshold and reaches the
-        alarmRisingThreshold.
-
-        This object may not be modified if the associated
-        alarmStatus object is equal to valid(1)."
-    ::= { alarmEntry 8 }
-
-alarmRisingEventIndex OBJECT-TYPE
-    SYNTAX     Integer32 (0..65535)
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The index of the eventEntry that is
-        used when a rising threshold is crossed.  The
-        eventEntry identified by a particular value of
-        this index is the same as identified by the same value
-        of the eventIndex object.  If there is no
-        corresponding entry in the eventTable, then
-        no association exists.  In particular, if this value
-        is zero, no associated event will be generated, as
-        zero is not a valid event index.
-
-        This object may not be modified if the associated
-
-        alarmStatus object is equal to valid(1)."
-    ::= { alarmEntry 9 }
-
-alarmFallingEventIndex OBJECT-TYPE
-    SYNTAX     Integer32 (0..65535)
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The index of the eventEntry that is
-        used when a falling threshold is crossed.  The
-        eventEntry identified by a particular value of
-        this index is the same as identified by the same value
-        of the eventIndex object.  If there is no
-        corresponding entry in the eventTable, then
-        no association exists.  In particular, if this value
-        is zero, no associated event will be generated, as
-        zero is not a valid event index.
-
-        This object may not be modified if the associated
-        alarmStatus object is equal to valid(1)."
-    ::= { alarmEntry 10 }
-
-alarmOwner OBJECT-TYPE
-    SYNTAX     OwnerString
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The entity that configured this entry and is therefore
-        using the resources assigned to it."
-    ::= { alarmEntry 11 }
-
-alarmStatus OBJECT-TYPE
-    SYNTAX     EntryStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The status of this alarm entry."
-    ::= { alarmEntry 12 }
-
--- The Host Group
-
--- Implementation of the Host group is optional.
--- Consult the MODULE-COMPLIANCE macro for the authoritative
--- conformance information for this MIB.
---
--- The host group discovers new hosts on the network by
--- keeping a list of source and destination MAC Addresses seen
--- in good packets.  For each of these addresses, the host group
-
--- keeps a set of statistics.  The hostControlTable controls
--- which interfaces this function is performed on, and contains
--- some information about the process.  On behalf of each
--- hostControlEntry, data is collected on an interface and placed
--- in both the hostTable and the hostTimeTable.  If the
--- monitoring device finds itself short of resources, it may
--- delete entries as needed.  It is suggested that the device
--- delete the least recently used entries first.
-
--- The hostTable contains entries for each address discovered on
--- a particular interface.  Each entry contains statistical
--- data about that host.  This table is indexed by the
--- MAC address of the host, through which a random access
--- may be achieved.
-
--- The hostTimeTable contains data in the same format as the
--- hostTable, and must contain the same set of hosts, but is
--- indexed using hostTimeCreationOrder rather than hostAddress.
--- The hostTimeCreationOrder is an integer which reflects
--- the relative order in which a particular entry was discovered
--- and thus inserted into the table.  As this order, and thus
--- the index, is among those entries currently in the table,
--- the index for a particular entry may change if an
--- (earlier) entry is deleted.  Thus the association between
--- hostTimeCreationOrder and hostTimeEntry may be broken at
--- any time.
-
--- The hostTimeTable has two important uses.  The first is the
--- fast download of this potentially large table.  Because the
--- index of this table runs from 1 to the size of the table,
--- inclusive, its values are predictable.  This allows very
--- efficient packing of variables into SNMP PDU's and allows
--- a table transfer to have multiple packets outstanding.
--- These benefits increase transfer rates tremendously.
-
--- The second use of the hostTimeTable is the efficient discovery
--- by the management station of new entries added to the table.
--- After the management station has downloaded the entire table,
--- it knows that new entries will be added immediately after the
--- end of the current table.  It can thus detect new entries there
--- and retrieve them easily.
-
--- Because the association between hostTimeCreationOrder and
--- hostTimeEntry may be broken at any time, the management
--- station must monitor the related hostControlLastDeleteTime
--- object.  When the management station thus detects a deletion,
--- it must assume that any such associations have been broken,
--- and invalidate any it has stored locally.  This includes
-
--- restarting any download of the hostTimeTable that may have been
--- in progress, as well as rediscovering the end of the
--- hostTimeTable so that it may detect new entries.  If the
--- management station does not detect the broken association,
--- it may continue to refer to a particular host by its
--- creationOrder while unwittingly retrieving the data associated
--- with another host entirely.  If this happens while downloading
--- the host table, the management station may fail to download
--- all of the entries in the table.
-
-hostControlTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HostControlEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of host table control entries."
-    ::= { hosts 1 }
-
-hostControlEntry OBJECT-TYPE
-    SYNTAX     HostControlEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of parameters that set up the discovery of hosts
-        on a particular interface and the collection of statistics
-        about these hosts.  For example, an instance of the
-        hostControlTableSize object might be named
-        hostControlTableSize.1"
-    INDEX { hostControlIndex }
-    ::= { hostControlTable 1 }
-
-HostControlEntry ::= SEQUENCE {
-
-    hostControlIndex            Integer32,
-    hostControlDataSource       OBJECT IDENTIFIER,
-    hostControlTableSize        Integer32,
-    hostControlLastDeleteTime   TimeTicks,
-    hostControlOwner            OwnerString,
-    hostControlStatus           EntryStatus
-}
-
-hostControlIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies an entry in the
-
-        hostControl table.  Each such entry defines
-        a function that discovers hosts on a particular interface
-        and places statistics about them in the hostTable and
-        the hostTimeTable on behalf of this hostControlEntry."
-    ::= { hostControlEntry 1 }
-
-hostControlDataSource OBJECT-TYPE
-    SYNTAX     OBJECT IDENTIFIER
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "This object identifies the source of the data for
-        this instance of the host function.  This source
-        can be any interface on this device.  In order
-        to identify a particular interface, this object shall
-        identify the instance of the ifIndex object, defined
-        in RFC 2233 [17], for the desired interface.
-        For example, if an entry were to receive data from
-        interface #1, this object would be set to ifIndex.1.
-
-        The statistics in this group reflect all packets
-        on the local network segment attached to the identified
-        interface.
-
-        An agent may or may not be able to tell if fundamental
-        changes to the media of the interface have occurred and
-        necessitate an invalidation of this entry.  For example, a
-        hot-pluggable ethernet card could be pulled out and replaced
-        by a token-ring card.  In such a case, if the agent has such
-        knowledge of the change, it is recommended that it
-        invalidate this entry.
-
-        This object may not be modified if the associated
-        hostControlStatus object is equal to valid(1)."
-    ::= { hostControlEntry 2 }
-
-hostControlTableSize OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of hostEntries in the hostTable and the
-        hostTimeTable associated with this hostControlEntry."
-    ::= { hostControlEntry 3 }
-
-hostControlLastDeleteTime OBJECT-TYPE
-    SYNTAX     TimeTicks
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of sysUpTime when the last entry
-        was deleted from the portion of the hostTable
-        associated with this hostControlEntry.  If no
-        deletions have occurred, this value shall be zero."
-    ::= { hostControlEntry 4 }
-
-hostControlOwner OBJECT-TYPE
-    SYNTAX     OwnerString
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The entity that configured this entry and is therefore
-        using the resources assigned to it."
-    ::= { hostControlEntry 5 }
-
-hostControlStatus OBJECT-TYPE
-    SYNTAX     EntryStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The status of this hostControl entry.
-
-        If this object is not equal to valid(1), all associated
-        entries in the hostTable, hostTimeTable, and the
-        hostTopNTable shall be deleted by the agent."
-    ::= { hostControlEntry 6 }
-
-hostTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HostEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of host entries."
-    ::= { hosts 2 }
-
-hostEntry OBJECT-TYPE
-    SYNTAX     HostEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A collection of statistics for a particular host that has
-        been discovered on an interface of this device.  For example,
-        an instance of the hostOutBroadcastPkts object might be
-        named hostOutBroadcastPkts.1.6.8.0.32.27.3.176"
-    INDEX { hostIndex, hostAddress }
-    ::= { hostTable 1 }
-
-HostEntry ::= SEQUENCE {
-    hostAddress             OCTET STRING,
-    hostCreationOrder       Integer32,
-    hostIndex               Integer32,
-    hostInPkts              Counter32,
-    hostOutPkts             Counter32,
-    hostInOctets            Counter32,
-    hostOutOctets           Counter32,
-    hostOutErrors           Counter32,
-    hostOutBroadcastPkts    Counter32,
-    hostOutMulticastPkts    Counter32
-}
-
-hostAddress OBJECT-TYPE
-    SYNTAX     OCTET STRING
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The physical address of this host."
-    ::= { hostEntry 1 }
-
-hostCreationOrder OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that defines the relative ordering of
-        the creation time of hosts captured for a
-        particular hostControlEntry.  This index shall
-        be between 1 and N, where N is the value of
-        the associated hostControlTableSize.  The ordering
-        of the indexes is based on the order of each entry's
-        insertion into the table, in which entries added earlier
-        have a lower index value than entries added later.
-
-        It is important to note that the order for a
-        particular entry may change as an (earlier) entry
-        is deleted from the table.  Because this order may
-        change, management stations should make use of the
-        hostControlLastDeleteTime variable in the
-        hostControlEntry associated with the relevant
-        portion of the hostTable.  By observing
-        this variable, the management station may detect
-        the circumstances where a previous association
-        between a value of hostCreationOrder
-        and a hostEntry may no longer hold."
-    ::= { hostEntry 2 }
-
-hostIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The set of collected host statistics of which
-        this entry is a part.  The set of hosts
-        identified by a particular value of this
-        index is associated with the hostControlEntry
-        as identified by the same value of hostControlIndex."
-    ::= { hostEntry 3 }
-
-hostInPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of good packets transmitted to this
-        address since it was added to the hostTable."
-    ::= { hostEntry 4 }
-
-hostOutPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of packets, including bad packets, transmitted
-        by this address since it was added to the hostTable."
-    ::= { hostEntry 5 }
-
-hostInOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Octets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of octets transmitted to this address since
-        it was added to the hostTable (excluding framing
-        bits but including FCS octets), except for those
-        octets in bad packets."
-    ::= { hostEntry 6 }
-
-hostOutOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Octets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of octets transmitted by this address since
-        it was added to the hostTable (excluding framing
-        bits but including FCS octets), including those
-        octets in bad packets."
-    ::= { hostEntry 7 }
-
-hostOutErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of bad packets transmitted by this address
-        since this host was added to the hostTable."
-    ::= { hostEntry 8 }
-
-hostOutBroadcastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of good packets transmitted by this
-        address that were directed to the broadcast address
-        since this host was added to the hostTable."
-    ::= { hostEntry 9 }
-
-hostOutMulticastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of good packets transmitted by this
-        address that were directed to a multicast address
-        since this host was added to the hostTable.
-        Note that this number does not include packets
-        directed to the broadcast address."
-    ::= { hostEntry 10 }
-
--- host Time Table
-
-hostTimeTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HostTimeEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of time-ordered host table entries."
-    ::= { hosts 3 }
-
-hostTimeEntry OBJECT-TYPE
-    SYNTAX     HostTimeEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A collection of statistics for a particular host that has
-        been discovered on an interface of this device.  This
-        collection includes the relative ordering of the creation
-        time of this object.  For example, an instance of the
-        hostTimeOutBroadcastPkts object might be named
-        hostTimeOutBroadcastPkts.1.687"
-    INDEX { hostTimeIndex, hostTimeCreationOrder }
-    ::= { hostTimeTable 1 }
-
-HostTimeEntry ::= SEQUENCE {
-    hostTimeAddress              OCTET STRING,
-    hostTimeCreationOrder        Integer32,
-    hostTimeIndex                Integer32,
-    hostTimeInPkts               Counter32,
-    hostTimeOutPkts              Counter32,
-    hostTimeInOctets             Counter32,
-    hostTimeOutOctets            Counter32,
-    hostTimeOutErrors            Counter32,
-    hostTimeOutBroadcastPkts     Counter32,
-    hostTimeOutMulticastPkts     Counter32
-}
-
-hostTimeAddress OBJECT-TYPE
-    SYNTAX     OCTET STRING
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The physical address of this host."
-    ::= { hostTimeEntry 1 }
-
-hostTimeCreationOrder OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies an entry in
-        the hostTime table among those entries associated
-        with the same hostControlEntry.  This index shall
-        be between 1 and N, where N is the value of
-
-        the associated hostControlTableSize.  The ordering
-        of the indexes is based on the order of each entry's
-        insertion into the table, in which entries added earlier
-        have a lower index value than entries added later.
-        Thus the management station has the ability to
-        learn of new entries added to this table without
-        downloading the entire table.
-
-        It is important to note that the index for a
-        particular entry may change as an (earlier) entry
-        is deleted from the table.  Because this order may
-        change, management stations should make use of the
-        hostControlLastDeleteTime variable in the
-        hostControlEntry associated with the relevant
-        portion of the hostTimeTable.  By observing
-        this variable, the management station may detect
-        the circumstances where a download of the table
-        may have missed entries, and where a previous
-        association between a value of hostTimeCreationOrder
-        and a hostTimeEntry may no longer hold."
-    ::= { hostTimeEntry 2 }
-
-hostTimeIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The set of collected host statistics of which
-        this entry is a part.  The set of hosts
-        identified by a particular value of this
-        index is associated with the hostControlEntry
-        as identified by the same value of hostControlIndex."
-    ::= { hostTimeEntry 3 }
-
-hostTimeInPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of good packets transmitted to this
-        address since it was added to the hostTimeTable."
-    ::= { hostTimeEntry 4 }
-
-hostTimeOutPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of packets, including bad packets, transmitted
-        by this address since it was added to the hostTimeTable."
-    ::= { hostTimeEntry 5 }
-
-hostTimeInOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Octets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of octets transmitted to this address since
-        it was added to the hostTimeTable (excluding framing
-        bits but including FCS octets), except for those
-        octets in bad packets."
-    ::= { hostTimeEntry 6 }
-
-hostTimeOutOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Octets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of octets transmitted by this address since
-        it was added to the hostTimeTable (excluding framing
-        bits but including FCS octets), including those
-        octets in bad packets."
-    ::= { hostTimeEntry 7 }
-
-hostTimeOutErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of bad packets transmitted by this address
-        since this host was added to the hostTimeTable."
-    ::= { hostTimeEntry 8 }
-
-hostTimeOutBroadcastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of good packets transmitted by this
-        address that were directed to the broadcast address
-
-        since this host was added to the hostTimeTable."
-    ::= { hostTimeEntry 9 }
-
-hostTimeOutMulticastPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of good packets transmitted by this
-        address that were directed to a multicast address
-        since this host was added to the hostTimeTable.
-        Note that this number does not include packets directed
-        to the broadcast address."
-    ::= { hostTimeEntry 10 }
-
--- The Host Top "N" Group
-
--- Implementation of the Host Top N group is optional. The Host Top N
--- group requires the implementation of the host group.
--- Consult the MODULE-COMPLIANCE macro for the authoritative
--- conformance information for this MIB.
---
--- The Host Top N group is used to prepare reports that describe
--- the hosts that top a list ordered by one of their statistics.
--- The available statistics are samples of one of their
--- base statistics, over an interval specified by the management
--- station.  Thus, these statistics are rate based.  The management
--- station also selects how many such hosts are reported.
-
--- The hostTopNControlTable is used to initiate the generation of
--- such a report.  The management station may select the parameters
--- of such a report, such as which interface, which statistic,
--- how many hosts, and the start and stop times of the sampling.
--- When the report is prepared, entries are created in the
--- hostTopNTable associated with the relevant hostTopNControlEntry.
--- These entries are static for each report after it has been
--- prepared.
-
-hostTopNControlTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HostTopNControlEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of top N host control entries."
-    ::= { hostTopN 1 }
-
-hostTopNControlEntry OBJECT-TYPE
-    SYNTAX     HostTopNControlEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A set of parameters that control the creation of a report
-        of the top N hosts according to several metrics.  For
-        example, an instance of the hostTopNDuration object might
-        be named hostTopNDuration.3"
-    INDEX { hostTopNControlIndex }
-    ::= { hostTopNControlTable 1 }
-
-HostTopNControlEntry ::= SEQUENCE {
-    hostTopNControlIndex    Integer32,
-    hostTopNHostIndex       Integer32,
-    hostTopNRateBase        INTEGER,
-    hostTopNTimeRemaining   Integer32,
-    hostTopNDuration        Integer32,
-    hostTopNRequestedSize   Integer32,
-    hostTopNGrantedSize     Integer32,
-    hostTopNStartTime       TimeTicks,
-    hostTopNOwner           OwnerString,
-    hostTopNStatus          EntryStatus
-}
-
-hostTopNControlIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies an entry
-        in the hostTopNControl table.  Each such
-        entry defines one top N report prepared for
-        one interface."
-    ::= { hostTopNControlEntry 1 }
-
-hostTopNHostIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The host table for which a top N report will be prepared
-        on behalf of this entry.  The host table identified by a
-        particular value of this index is associated with the same
-        host table as identified by the same value of
-        hostIndex.
-
-        This object may not be modified if the associated
-        hostTopNStatus object is equal to valid(1)."
-    ::= { hostTopNControlEntry 2 }
-
-hostTopNRateBase OBJECT-TYPE
-    SYNTAX     INTEGER {
-                 hostTopNInPkts(1),
-                 hostTopNOutPkts(2),
-                 hostTopNInOctets(3),
-                 hostTopNOutOctets(4),
-                 hostTopNOutErrors(5),
-                 hostTopNOutBroadcastPkts(6),
-                 hostTopNOutMulticastPkts(7)
-               }
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The variable for each host that the hostTopNRate
-        variable is based upon.
-
-        This object may not be modified if the associated
-        hostTopNStatus object is equal to valid(1)."
-    ::= { hostTopNControlEntry 3 }
-
-hostTopNTimeRemaining OBJECT-TYPE
-    SYNTAX     Integer32
-    UNITS      "Seconds"
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The number of seconds left in the report currently being
-        collected.  When this object is modified by the management
-        station, a new collection is started, possibly aborting
-        a currently running report.  The new value is used
-        as the requested duration of this report, which is
-        loaded into the associated hostTopNDuration object.
-
-        When this object is set to a non-zero value, any
-        associated hostTopNEntries shall be made
-        inaccessible by the monitor.  While the value of this
-        object is non-zero, it decrements by one per second until
-        it reaches zero.  During this time, all associated
-        hostTopNEntries shall remain inaccessible.  At the time
-        that this object decrements to zero, the report is made
-        accessible in the hostTopNTable.  Thus, the hostTopN
-        table needs to be created only at the end of the collection
-        interval."
-    DEFVAL { 0 }
-    ::= { hostTopNControlEntry 4 }
-
-hostTopNDuration OBJECT-TYPE
-    SYNTAX     Integer32
-    UNITS      "Seconds"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of seconds that this report has collected
-        during the last sampling interval, or if this
-        report is currently being collected, the number
-        of seconds that this report is being collected
-        during this sampling interval.
-
-        When the associated hostTopNTimeRemaining object is set,
-        this object shall be set by the probe to the same value
-        and shall not be modified until the next time
-        the hostTopNTimeRemaining is set.
-
-        This value shall be zero if no reports have been
-        requested for this hostTopNControlEntry."
-    DEFVAL { 0 }
-    ::= { hostTopNControlEntry 5 }
-
-hostTopNRequestedSize OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The maximum number of hosts requested for the top N
-        table.
-
-        When this object is created or modified, the probe
-        should set hostTopNGrantedSize as closely to this
-        object as is possible for the particular probe
-        implementation and available resources."
-    DEFVAL { 10 }
-    ::= { hostTopNControlEntry 6 }
-
-hostTopNGrantedSize OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The maximum number of hosts in the top N table.
-
-        When the associated hostTopNRequestedSize object is
-        created or modified, the probe should set this
-        object as closely to the requested value as is possible
-        for the particular implementation and available
-
-        resources. The probe must not lower this value except
-        as a result of a set to the associated
-        hostTopNRequestedSize object.
-
-        Hosts with the highest value of hostTopNRate shall be
-        placed in this table in decreasing order of this rate
-        until there is no more room or until there are no more
-        hosts."
-    ::= { hostTopNControlEntry 7 }
-
-hostTopNStartTime OBJECT-TYPE
-    SYNTAX     TimeTicks
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of sysUpTime when this top N report was
-        last started.  In other words, this is the time that
-        the associated hostTopNTimeRemaining object was
-        modified to start the requested report."
-    ::= { hostTopNControlEntry 8 }
-
-hostTopNOwner OBJECT-TYPE
-    SYNTAX     OwnerString
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The entity that configured this entry and is therefore
-        using the resources assigned to it."
-    ::= { hostTopNControlEntry 9 }
-
-hostTopNStatus OBJECT-TYPE
-    SYNTAX     EntryStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The status of this hostTopNControl entry.
-
-        If this object is not equal to valid(1), all associated
-        hostTopNEntries shall be deleted by the agent."
-    ::= { hostTopNControlEntry 10 }
-
-hostTopNTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF HostTopNEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of top N host entries."
-    ::= { hostTopN 2 }
-
-hostTopNEntry OBJECT-TYPE
-    SYNTAX     HostTopNEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A set of statistics for a host that is part of a top N
-        report.  For example, an instance of the hostTopNRate
-        object might be named hostTopNRate.3.10"
-    INDEX { hostTopNReport, hostTopNIndex }
-    ::= { hostTopNTable 1 }
-
-HostTopNEntry ::= SEQUENCE {
-    hostTopNReport                Integer32,
-    hostTopNIndex                 Integer32,
-    hostTopNAddress               OCTET STRING,
-    hostTopNRate                  Integer32
-}
-
-hostTopNReport OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "This object identifies the top N report of which
-        this entry is a part.  The set of hosts
-        identified by a particular value of this
-        object is part of the same report as identified
-        by the same value of the hostTopNControlIndex object."
-    ::= { hostTopNEntry 1 }
-
-hostTopNIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies an entry in
-        the hostTopN table among those in the same report.
-        This index is between 1 and N, where N is the
-        number of entries in this table.  Increasing values
-        of hostTopNIndex shall be assigned to entries with
-        decreasing values of hostTopNRate until index N
-        is assigned to the entry with the lowest value of
-        hostTopNRate or there are no more hostTopNEntries."
-    ::= { hostTopNEntry 2 }
-
-hostTopNAddress OBJECT-TYPE
-    SYNTAX     OCTET STRING
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The physical address of this host."
-    ::= { hostTopNEntry 3 }
-
-hostTopNRate OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The amount of change in the selected variable
-        during this sampling interval.  The selected
-        variable is this host's instance of the object
-        selected by hostTopNRateBase."
-    ::= { hostTopNEntry 4 }
-
--- The Matrix Group
-
--- Implementation of the Matrix group is optional.
--- Consult the MODULE-COMPLIANCE macro for the authoritative
--- conformance information for this MIB.
---
--- The Matrix group consists of the matrixControlTable, matrixSDTable
--- and the matrixDSTable.  These tables store statistics for a
--- particular conversation between two addresses.  As the device
--- detects a new conversation, including those to a non-unicast
--- address, it creates a new entry in both of the matrix tables.
--- It must only create new entries based on information
--- received in good packets.  If the monitoring device finds
--- itself short of resources, it may delete entries as needed.
--- It is suggested that the device delete the least recently used
--- entries first.
-
-matrixControlTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF MatrixControlEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of information entries for the
-        traffic matrix on each interface."
-    ::= { matrix 1 }
-
-matrixControlEntry OBJECT-TYPE
-    SYNTAX     MatrixControlEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "Information about a traffic matrix on a particular
-
-        interface.  For example, an instance of the
-        matrixControlLastDeleteTime object might be named
-        matrixControlLastDeleteTime.1"
-    INDEX { matrixControlIndex }
-    ::= { matrixControlTable 1 }
-
-MatrixControlEntry ::= SEQUENCE {
-    matrixControlIndex           Integer32,
-    matrixControlDataSource      OBJECT IDENTIFIER,
-    matrixControlTableSize       Integer32,
-    matrixControlLastDeleteTime  TimeTicks,
-    matrixControlOwner           OwnerString,
-    matrixControlStatus          EntryStatus
-}
-
-matrixControlIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies an entry in the
-        matrixControl table.  Each such entry defines
-        a function that discovers conversations on a particular
-        interface and places statistics about them in the
-        matrixSDTable and the matrixDSTable on behalf of this
-        matrixControlEntry."
-    ::= { matrixControlEntry 1 }
-
-matrixControlDataSource OBJECT-TYPE
-    SYNTAX     OBJECT IDENTIFIER
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "This object identifies the source of
-        the data from which this entry creates a traffic matrix.
-        This source can be any interface on this device.  In
-        order to identify a particular interface, this object
-        shall identify the instance of the ifIndex object,
-        defined in RFC 2233 [17], for the desired
-        interface.  For example, if an entry were to receive data
-        from interface #1, this object would be set to ifIndex.1.
-
-        The statistics in this group reflect all packets
-        on the local network segment attached to the identified
-        interface.
-
-        An agent may or may not be able to tell if fundamental
-        changes to the media of the interface have occurred and
-
-        necessitate an invalidation of this entry.  For example, a
-        hot-pluggable ethernet card could be pulled out and replaced
-        by a token-ring card.  In such a case, if the agent has such
-        knowledge of the change, it is recommended that it
-        invalidate this entry.
-
-        This object may not be modified if the associated
-        matrixControlStatus object is equal to valid(1)."
-    ::= { matrixControlEntry 2 }
-
-matrixControlTableSize OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of matrixSDEntries in the matrixSDTable
-        for this interface.  This must also be the value of
-        the number of entries in the matrixDSTable for this
-        interface."
-    ::= { matrixControlEntry 3 }
-
-matrixControlLastDeleteTime OBJECT-TYPE
-    SYNTAX     TimeTicks
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of sysUpTime when the last entry
-        was deleted from the portion of the matrixSDTable
-        or matrixDSTable associated with this matrixControlEntry.
-        If no deletions have occurred, this value shall be
-        zero."
-    ::= { matrixControlEntry 4 }
-
-matrixControlOwner OBJECT-TYPE
-    SYNTAX     OwnerString
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The entity that configured this entry and is therefore
-        using the resources assigned to it."
-    ::= { matrixControlEntry 5 }
-
-matrixControlStatus OBJECT-TYPE
-    SYNTAX     EntryStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The status of this matrixControl entry.
-
-        If this object is not equal to valid(1), all associated
-        entries in the matrixSDTable and the matrixDSTable
-        shall be deleted by the agent."
-    ::= { matrixControlEntry 6 }
-
-matrixSDTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF MatrixSDEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of traffic matrix entries indexed by
-        source and destination MAC address."
-    ::= { matrix 2 }
-
-matrixSDEntry OBJECT-TYPE
-    SYNTAX     MatrixSDEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A collection of statistics for communications between
-        two addresses on a particular interface.  For example,
-        an instance of the matrixSDPkts object might be named
-        matrixSDPkts.1.6.8.0.32.27.3.176.6.8.0.32.10.8.113"
-    INDEX { matrixSDIndex,
-            matrixSDSourceAddress, matrixSDDestAddress }
-    ::= { matrixSDTable 1 }
-
-MatrixSDEntry ::= SEQUENCE {
-    matrixSDSourceAddress       OCTET STRING,
-    matrixSDDestAddress         OCTET STRING,
-    matrixSDIndex               Integer32,
-    matrixSDPkts                Counter32,
-    matrixSDOctets              Counter32,
-    matrixSDErrors              Counter32
-}
-
-matrixSDSourceAddress OBJECT-TYPE
-    SYNTAX     OCTET STRING
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The source physical address."
-    ::= { matrixSDEntry 1 }
-
-matrixSDDestAddress OBJECT-TYPE
-    SYNTAX     OCTET STRING
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The destination physical address."
-    ::= { matrixSDEntry 2 }
-
-matrixSDIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The set of collected matrix statistics of which
-        this entry is a part.  The set of matrix statistics
-        identified by a particular value of this index
-        is associated with the same matrixControlEntry
-        as identified by the same value of matrixControlIndex."
-    ::= { matrixSDEntry 3 }
-
-matrixSDPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of packets transmitted from the source
-        address to the destination address (this number includes
-        bad packets)."
-    ::= { matrixSDEntry 4 }
-
-matrixSDOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Octets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of octets (excluding framing bits but
-        including FCS octets) contained in all packets
-        transmitted from the source address to the
-        destination address."
-    ::= { matrixSDEntry 5 }
-
-matrixSDErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of bad packets transmitted from
-        the source address to the destination address."
-    ::= { matrixSDEntry 6 }
-
--- Traffic matrix tables from destination to source
-
-matrixDSTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF MatrixDSEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of traffic matrix entries indexed by
-        destination and source MAC address."
-    ::= { matrix 3 }
-
-matrixDSEntry OBJECT-TYPE
-    SYNTAX     MatrixDSEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A collection of statistics for communications between
-        two addresses on a particular interface.  For example,
-        an instance of the matrixSDPkts object might be named
-        matrixSDPkts.1.6.8.0.32.10.8.113.6.8.0.32.27.3.176"
-    INDEX { matrixDSIndex,
-            matrixDSDestAddress, matrixDSSourceAddress }
-    ::= { matrixDSTable 1 }
-
-MatrixDSEntry ::= SEQUENCE {
-    matrixDSSourceAddress       OCTET STRING,
-    matrixDSDestAddress         OCTET STRING,
-    matrixDSIndex               Integer32,
-    matrixDSPkts                Counter32,
-    matrixDSOctets              Counter32,
-    matrixDSErrors              Counter32
-}
-
-matrixDSSourceAddress OBJECT-TYPE
-    SYNTAX     OCTET STRING
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The source physical address."
-    ::= { matrixDSEntry 1 }
-
-matrixDSDestAddress OBJECT-TYPE
-    SYNTAX     OCTET STRING
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The destination physical address."
-    ::= { matrixDSEntry 2 }
-
-matrixDSIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The set of collected matrix statistics of which
-        this entry is a part.  The set of matrix statistics
-        identified by a particular value of this index
-        is associated with the same matrixControlEntry
-        as identified by the same value of matrixControlIndex."
-    ::= { matrixDSEntry 3 }
-
-matrixDSPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of packets transmitted from the source
-        address to the destination address (this number includes
-        bad packets)."
-    ::= { matrixDSEntry 4 }
-
-matrixDSOctets OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Octets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of octets (excluding framing bits
-        but including FCS octets) contained in all packets
-        transmitted from the source address to the
-        destination address."
-    ::= { matrixDSEntry 5 }
-
-matrixDSErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of bad packets transmitted from
-        the source address to the destination address."
-    ::= { matrixDSEntry 6 }
-
--- The Filter Group
-
--- Implementation of the Filter group is optional.
-
--- Consult the MODULE-COMPLIANCE macro for the authoritative
--- conformance information for this MIB.
---
--- The Filter group allows packets to be captured with an
--- arbitrary filter expression.  A logical data and
--- event stream or "channel" is formed by the packets
--- that match the filter expression.
---
--- This filter mechanism allows the creation of an arbitrary
--- logical expression with which to filter packets.  Each
--- filter associated with a channel is OR'ed with the others.
--- Within a filter, any bits checked in the data and status are
--- AND'ed with respect to other bits in the same filter.  The
--- NotMask also allows for checking for inequality.  Finally,
--- the channelAcceptType object allows for inversion of the
--- whole equation.
---
--- If a management station wishes to receive a trap to alert it
--- that new packets have been captured and are available for
--- download, it is recommended that it set up an alarm entry that
--- monitors the value of the relevant channelMatches instance.
---
--- The channel can be turned on or off, and can also
--- generate events when packets pass through it.
-
-filterTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF FilterEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of packet filter entries."
-    ::= { filter 1 }
-
-filterEntry OBJECT-TYPE
-    SYNTAX     FilterEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A set of parameters for a packet filter applied on a
-        particular interface.  As an example, an instance of the
-        filterPktData object might be named filterPktData.12"
-    INDEX { filterIndex }
-    ::= { filterTable 1 }
-
-FilterEntry ::= SEQUENCE {
-    filterIndex                 Integer32,
-    filterChannelIndex          Integer32,
-    filterPktDataOffset         Integer32,
-    filterPktData               OCTET STRING,
-    filterPktDataMask           OCTET STRING,
-    filterPktDataNotMask        OCTET STRING,
-    filterPktStatus             Integer32,
-    filterPktStatusMask         Integer32,
-    filterPktStatusNotMask      Integer32,
-    filterOwner                 OwnerString,
-    filterStatus                EntryStatus
-}
-
-filterIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies an entry
-        in the filter table.  Each such entry defines
-        one filter that is to be applied to every packet
-        received on an interface."
-    ::= { filterEntry 1 }
-
-filterChannelIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "This object identifies the channel of which this filter
-        is a part.  The filters identified by a particular value
-        of this object are associated with the same channel as
-        identified by the same value of the channelIndex object."
-    ::= { filterEntry 2 }
-
-filterPktDataOffset OBJECT-TYPE
-    SYNTAX     Integer32
-    UNITS      "Octets"
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The offset from the beginning of each packet where
-        a match of packet data will be attempted.  This offset
-        is measured from the point in the physical layer
-        packet after the framing bits, if any.  For example,
-        in an Ethernet frame, this point is at the beginning of
-        the destination MAC address.
-
-        This object may not be modified if the associated
-        filterStatus object is equal to valid(1)."
-    DEFVAL { 0 }
-    ::= { filterEntry 3 }
-
-filterPktData OBJECT-TYPE
-    SYNTAX     OCTET STRING
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The data that is to be matched with the input packet.
-        For each packet received, this filter and the accompanying
-        filterPktDataMask and filterPktDataNotMask will be
-        adjusted for the offset.  The only bits relevant to this
-        match algorithm are those that have the corresponding
-        filterPktDataMask bit equal to one.  The following three
-        rules are then applied to every packet:
-
-        (1) If the packet is too short and does not have data
-            corresponding to part of the filterPktData, the packet
-            will fail this data match.
-
-        (2) For each relevant bit from the packet with the
-            corresponding filterPktDataNotMask bit set to zero, if
-            the bit from the packet is not equal to the corresponding
-            bit from the filterPktData, then the packet will fail
-            this data match.
-
-        (3) If for every relevant bit from the packet with the
-            corresponding filterPktDataNotMask bit set to one, the
-            bit from the packet is equal to the corresponding bit
-            from the filterPktData, then the packet will fail this
-            data match.
-
-        Any packets that have not failed any of the three matches
-        above have passed this data match.  In particular, a zero
-        length filter will match any packet.
-
-        This object may not be modified if the associated
-        filterStatus object is equal to valid(1)."
-    ::= { filterEntry 4 }
-
-filterPktDataMask OBJECT-TYPE
-    SYNTAX     OCTET STRING
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The mask that is applied to the match process.
-        After adjusting this mask for the offset, only those
-        bits in the received packet that correspond to bits set
-        in this mask are relevant for further processing by the
-
-        match algorithm.  The offset is applied to filterPktDataMask
-        in the same way it is applied to the filter.  For the
-        purposes of the matching algorithm, if the associated
-        filterPktData object is longer than this mask, this mask is
-        conceptually extended with '1' bits until it reaches the
-        length of the filterPktData object.
-
-        This object may not be modified if the associated
-        filterStatus object is equal to valid(1)."
-    ::= { filterEntry 5 }
-
-filterPktDataNotMask OBJECT-TYPE
-    SYNTAX     OCTET STRING
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The inversion mask that is applied to the match
-        process.  After adjusting this mask for the offset,
-        those relevant bits in the received packet that correspond
-        to bits cleared in this mask must all be equal to their
-        corresponding bits in the filterPktData object for the packet
-        to be accepted.  In addition, at least one of those relevant
-        bits in the received packet that correspond to bits set in
-        this mask must be different to its corresponding bit in the
-        filterPktData object.
-
-        For the purposes of the matching algorithm, if the associated
-        filterPktData object is longer than this mask, this mask is
-        conceptually extended with '0' bits until it reaches the
-        length of the filterPktData object.
-
-        This object may not be modified if the associated
-        filterStatus object is equal to valid(1)."
-    ::= { filterEntry 6 }
-
-filterPktStatus OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The status that is to be matched with the input packet.
-        The only bits relevant to this match algorithm are those that
-        have the corresponding filterPktStatusMask bit equal to one.
-        The following two rules are then applied to every packet:
-
-        (1) For each relevant bit from the packet status with the
-            corresponding filterPktStatusNotMask bit set to zero, if
-            the bit from the packet status is not equal to the
-
-            corresponding bit from the filterPktStatus, then the
-            packet will fail this status match.
-
-        (2) If for every relevant bit from the packet status with the
-            corresponding filterPktStatusNotMask bit set to one, the
-            bit from the packet status is equal to the corresponding
-            bit from the filterPktStatus, then the packet will fail
-            this status match.
-
-        Any packets that have not failed either of the two matches
-        above have passed this status match.  In particular, a zero
-        length status filter will match any packet's status.
-
-        The value of the packet status is a sum.  This sum
-        initially takes the value zero.  Then, for each
-        error, E, that has been discovered in this packet,
-        2 raised to a value representing E is added to the sum.
-        The errors and the bits that represent them are dependent
-        on the media type of the interface that this channel
-        is receiving packets from.
-
-        The errors defined for a packet captured off of an
-        Ethernet interface are as follows:
-
-            bit #    Error
-                0    Packet is longer than 1518 octets
-                1    Packet is shorter than 64 octets
-                2    Packet experienced a CRC or Alignment error
-
-        For example, an Ethernet fragment would have a
-        value of 6 (2^1 + 2^2).
-
-        As this MIB is expanded to new media types, this object
-        will have other media-specific errors defined.
-
-        For the purposes of this status matching algorithm, if the
-        packet status is longer than this filterPktStatus object,
-        this object is conceptually extended with '0' bits until it
-        reaches the size of the packet status.
-
-        This object may not be modified if the associated
-        filterStatus object is equal to valid(1)."
-    ::= { filterEntry 7 }
-
-filterPktStatusMask OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The mask that is applied to the status match process.
-        Only those bits in the received packet that correspond to
-        bits set in this mask are relevant for further processing
-        by the status match algorithm.  For the purposes
-        of the matching algorithm, if the associated filterPktStatus
-        object is longer than this mask, this mask is conceptually
-        extended with '1' bits until it reaches the size of the
-        filterPktStatus.  In addition, if a packet status is longer
-        than this mask, this mask is conceptually extended with '0'
-        bits until it reaches the size of the packet status.
-
-        This object may not be modified if the associated
-        filterStatus object is equal to valid(1)."
-    ::= { filterEntry 8 }
-
-filterPktStatusNotMask OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The inversion mask that is applied to the status match
-        process.  Those relevant bits in the received packet status
-        that correspond to bits cleared in this mask must all be
-        equal to their corresponding bits in the filterPktStatus
-        object for the packet to be accepted.  In addition, at least
-        one of those relevant bits in the received packet status
-        that correspond to bits set in this mask must be different
-        to its corresponding bit in the filterPktStatus object for
-        the packet to be accepted.
-
-        For the purposes of the matching algorithm, if the associated
-        filterPktStatus object or a packet status is longer than this
-        mask, this mask is conceptually extended with '0' bits until
-        it reaches the longer of the lengths of the filterPktStatus
-        object and the packet status.
-
-        This object may not be modified if the associated
-        filterStatus object is equal to valid(1)."
-    ::= { filterEntry 9 }
-
-filterOwner OBJECT-TYPE
-    SYNTAX     OwnerString
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The entity that configured this entry and is therefore
-        using the resources assigned to it."
-    ::= { filterEntry 10 }
-
-filterStatus OBJECT-TYPE
-    SYNTAX     EntryStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The status of this filter entry."
-    ::= { filterEntry 11 }
-
-channelTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF ChannelEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of packet channel entries."
-    ::= { filter 2 }
-
-channelEntry OBJECT-TYPE
-    SYNTAX     ChannelEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A set of parameters for a packet channel applied on a
-        particular interface.  As an example, an instance of the
-        channelMatches object might be named channelMatches.3"
-    INDEX { channelIndex }
-    ::= { channelTable 1 }
-
-ChannelEntry ::= SEQUENCE {
-    channelIndex                 Integer32,
-    channelIfIndex               Integer32,
-    channelAcceptType            INTEGER,
-    channelDataControl           INTEGER,
-    channelTurnOnEventIndex      Integer32,
-    channelTurnOffEventIndex     Integer32,
-    channelEventIndex            Integer32,
-    channelEventStatus           INTEGER,
-    channelMatches               Counter32,
-    channelDescription           DisplayString,
-    channelOwner                 OwnerString,
-    channelStatus                EntryStatus
-}
-
-channelIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies an entry in the channel
-        table.  Each such entry defines one channel, a logical
-        data and event stream.
-
-        It is suggested that before creating a channel, an
-        application should scan all instances of the
-        filterChannelIndex object to make sure that there are no
-        pre-existing filters that would be inadvertently be linked
-        to the channel."
-    ::= { channelEntry 1 }
-
-channelIfIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The value of this object uniquely identifies the
-        interface on this remote network monitoring device to which
-        the associated filters are applied to allow data into this
-        channel.  The interface identified by a particular value
-        of this object is the same interface as identified by the
-        same value of the ifIndex object, defined in RFC 2233 [17].
-
-        The filters in this group are applied to all packets on
-        the local network segment attached to the identified
-        interface.
-
-        An agent may or may not be able to tell if fundamental
-        changes to the media of the interface have occurred and
-        necessitate an invalidation of this entry.  For example, a
-        hot-pluggable ethernet card could be pulled out and replaced
-        by a token-ring card.  In such a case, if the agent has such
-        knowledge of the change, it is recommended that it
-        invalidate this entry.
-
-        This object may not be modified if the associated
-        channelStatus object is equal to valid(1)."
-    ::= { channelEntry 2 }
-
-channelAcceptType OBJECT-TYPE
-    SYNTAX     INTEGER {
-                 acceptMatched(1),
-                 acceptFailed(2)
-               }
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "This object controls the action of the filters
-        associated with this channel.  If this object is equal
-        to acceptMatched(1), packets will be accepted to this
-        channel if they are accepted by both the packet data and
-        packet status matches of an associated filter.  If
-        this object is equal to acceptFailed(2), packets will
-        be accepted to this channel only if they fail either
-        the packet data match or the packet status match of
-        each of the associated filters.
-
-        In particular, a channel with no associated filters will
-        match no packets if set to acceptMatched(1) case and will
-        match all packets in the acceptFailed(2) case.
-
-        This object may not be modified if the associated
-        channelStatus object is equal to valid(1)."
-    ::= { channelEntry 3 }
-
-channelDataControl OBJECT-TYPE
-    SYNTAX     INTEGER {
-                 on(1),
-                 off(2)
-               }
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "This object controls the flow of data through this channel.
-        If this object is on(1), data, status and events flow
-        through this channel.  If this object is off(2), data,
-        status and events will not flow through this channel."
-    DEFVAL { off }
-    ::= { channelEntry 4 }
-
-channelTurnOnEventIndex OBJECT-TYPE
-    SYNTAX     Integer32 (0..65535)
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The value of this object identifies the event
-        that is configured to turn the associated
-        channelDataControl from off to on when the event is
-        generated.  The event identified by a particular value
-        of this object is the same event as identified by the
-        same value of the eventIndex object.  If there is no
-        corresponding entry in the eventTable, then no
-        association exists.  In fact, if no event is intended
-        for this channel, channelTurnOnEventIndex must be
-        set to zero, a non-existent event index.
-
-        This object may not be modified if the associated
-        channelStatus object is equal to valid(1)."
-    ::= { channelEntry 5 }
-
-channelTurnOffEventIndex OBJECT-TYPE
-    SYNTAX     Integer32 (0..65535)
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The value of this object identifies the event
-        that is configured to turn the associated
-        channelDataControl from on to off when the event is
-        generated.  The event identified by a particular value
-        of this object is the same event as identified by the
-        same value of the eventIndex object.  If there is no
-        corresponding entry in the eventTable, then no
-        association exists.  In fact, if no event is intended
-        for this channel, channelTurnOffEventIndex must be
-        set to zero, a non-existent event index.
-
-        This object may not be modified if the associated
-        channelStatus object is equal to valid(1)."
-    ::= { channelEntry 6 }
-
-channelEventIndex OBJECT-TYPE
-    SYNTAX     Integer32 (0..65535)
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The value of this object identifies the event
-        that is configured to be generated when the
-        associated channelDataControl is on and a packet
-        is matched.  The event identified by a particular value
-        of this object is the same event as identified by the
-        same value of the eventIndex object.  If there is no
-        corresponding entry in the eventTable, then no
-        association exists.  In fact, if no event is intended
-        for this channel, channelEventIndex must be
-        set to zero, a non-existent event index.
-
-        This object may not be modified if the associated
-        channelStatus object is equal to valid(1)."
-    ::= { channelEntry 7 }
-
-channelEventStatus OBJECT-TYPE
-    SYNTAX     INTEGER {
-                 eventReady(1),
-                 eventFired(2),
-                 eventAlwaysReady(3)
-               }
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The event status of this channel.
-
-        If this channel is configured to generate events
-        when packets are matched, a means of controlling
-        the flow of those events is often needed.  When
-        this object is equal to eventReady(1), a single
-        event may be generated, after which this object
-        will be set by the probe to eventFired(2).  While
-        in the eventFired(2) state, no events will be
-        generated until the object is modified to
-        eventReady(1) (or eventAlwaysReady(3)).  The
-        management station can thus easily respond to a
-        notification of an event by re-enabling this object.
-
-        If the management station wishes to disable this
-        flow control and allow events to be generated
-        at will, this object may be set to
-        eventAlwaysReady(3).  Disabling the flow control
-        is discouraged as it can result in high network
-        traffic or other performance problems."
-    DEFVAL { eventReady }
-    ::= { channelEntry 8 }
-
-channelMatches OBJECT-TYPE
-    SYNTAX     Counter32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of times this channel has matched a packet.
-        Note that this object is updated even when
-        channelDataControl is set to off."
-    ::= { channelEntry 9 }
-
-channelDescription OBJECT-TYPE
-    SYNTAX     DisplayString (SIZE (0..127))
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "A comment describing this channel."
-    ::= { channelEntry 10 }
-
-channelOwner OBJECT-TYPE
-    SYNTAX     OwnerString
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The entity that configured this entry and is therefore
-        using the resources assigned to it."
-    ::= { channelEntry 11 }
-
-channelStatus OBJECT-TYPE
-    SYNTAX     EntryStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The status of this channel entry."
-    ::= { channelEntry 12 }
-
--- The Packet Capture Group
-
--- Implementation of the Packet Capture group is optional. The Packet
--- Capture Group requires implementation of the Filter Group.
--- Consult the MODULE-COMPLIANCE macro for the authoritative
--- conformance information for this MIB.
---
--- The Packet Capture group allows packets to be captured
--- upon a filter match.  The bufferControlTable controls
--- the captured packets output from a channel that is
--- associated with it.  The captured packets are placed
--- in entries in the captureBufferTable.  These entries are
--- associated with the bufferControlEntry on whose behalf they
--- were stored.
-
-bufferControlTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF BufferControlEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of buffers control entries."
-    ::= { capture 1 }
-
-bufferControlEntry OBJECT-TYPE
-    SYNTAX     BufferControlEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A set of parameters that control the collection of a stream
-        of packets that have matched filters.  As an example, an
-        instance of the bufferControlCaptureSliceSize object might
-        be named bufferControlCaptureSliceSize.3"
-    INDEX { bufferControlIndex }
-    ::= { bufferControlTable 1 }
-
-BufferControlEntry ::= SEQUENCE {
-    bufferControlIndex                Integer32,
-    bufferControlChannelIndex         Integer32,
-    bufferControlFullStatus           INTEGER,
-    bufferControlFullAction           INTEGER,
-    bufferControlCaptureSliceSize     Integer32,
-    bufferControlDownloadSliceSize    Integer32,
-    bufferControlDownloadOffset       Integer32,
-    bufferControlMaxOctetsRequested   Integer32,
-    bufferControlMaxOctetsGranted     Integer32,
-    bufferControlCapturedPackets      Integer32,
-    bufferControlTurnOnTime           TimeTicks,
-    bufferControlOwner                OwnerString,
-    bufferControlStatus               EntryStatus
-}
-
-bufferControlIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies an entry
-        in the bufferControl table.  The value of this
-        index shall never be zero.  Each such
-        entry defines one set of packets that is
-        captured and controlled by one or more filters."
-    ::= { bufferControlEntry 1 }
-
-bufferControlChannelIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "An index that identifies the channel that is the
-        source of packets for this bufferControl table.
-        The channel identified by a particular value of this
-        index is the same as identified by the same value of
-        the channelIndex object.
-
-        This object may not be modified if the associated
-        bufferControlStatus object is equal to valid(1)."
-    ::= { bufferControlEntry 2 }
-
-bufferControlFullStatus OBJECT-TYPE
-    SYNTAX     INTEGER {
-
-                 spaceAvailable(1),
-                 full(2)
-               }
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "This object shows whether the buffer has room to
-        accept new packets or if it is full.
-
-        If the status is spaceAvailable(1), the buffer is
-        accepting new packets normally.  If the status is
-        full(2) and the associated bufferControlFullAction
-        object is wrapWhenFull, the buffer is accepting new
-        packets by deleting enough of the oldest packets
-        to make room for new ones as they arrive.  Otherwise,
-        if the status is full(2) and the
-        bufferControlFullAction object is lockWhenFull,
-        then the buffer has stopped collecting packets.
-
-        When this object is set to full(2) the probe must
-        not later set it to spaceAvailable(1) except in the
-        case of a significant gain in resources such as
-        an increase of bufferControlOctetsGranted.  In
-        particular, the wrap-mode action of deleting old
-        packets to make room for newly arrived packets
-        must not affect the value of this object."
-    ::= { bufferControlEntry 3 }
-
-bufferControlFullAction OBJECT-TYPE
-    SYNTAX     INTEGER {
-                 lockWhenFull(1),
-                 wrapWhenFull(2)    -- FIFO
-               }
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "Controls the action of the buffer when it
-        reaches the full status.  When in the lockWhenFull(1)
-        state and a packet is added to the buffer that
-        fills the buffer, the bufferControlFullStatus will
-        be set to full(2) and this buffer will stop capturing
-        packets."
-    ::= { bufferControlEntry 4 }
-
-bufferControlCaptureSliceSize OBJECT-TYPE
-    SYNTAX     Integer32
-    UNITS      "Octets"
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The maximum number of octets of each packet
-        that will be saved in this capture buffer.
-        For example, if a 1500 octet packet is received by
-        the probe and this object is set to 500, then only
-        500 octets of the packet will be stored in the
-        associated capture buffer.  If this variable is set
-        to 0, the capture buffer will save as many octets
-        as is possible.
-
-        This object may not be modified if the associated
-        bufferControlStatus object is equal to valid(1)."
-    DEFVAL { 100 }
-    ::= { bufferControlEntry 5 }
-
-bufferControlDownloadSliceSize OBJECT-TYPE
-    SYNTAX     Integer32
-    UNITS      "Octets"
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The maximum number of octets of each packet
-        in this capture buffer that will be returned in
-        an SNMP retrieval of that packet.  For example,
-        if 500 octets of a packet have been stored in the
-        associated capture buffer, the associated
-        bufferControlDownloadOffset is 0, and this
-        object is set to 100, then the captureBufferPacket
-        object that contains the packet will contain only
-        the first 100 octets of the packet.
-
-        A prudent manager will take into account possible
-        interoperability or fragmentation problems that may
-        occur if the download slice size is set too large.
-        In particular, conformant SNMP implementations are not
-        required to accept messages whose length exceeds 484
-        octets, although they are encouraged to support larger
-        datagrams whenever feasible."
-    DEFVAL { 100 }
-    ::= { bufferControlEntry 6 }
-
-bufferControlDownloadOffset OBJECT-TYPE
-    SYNTAX     Integer32
-    UNITS      "Octets"
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The offset of the first octet of each packet
-        in this capture buffer that will be returned in
-        an SNMP retrieval of that packet.  For example,
-        if 500 octets of a packet have been stored in the
-        associated capture buffer and this object is set to
-        100, then the captureBufferPacket object that
-        contains the packet will contain bytes starting
-        100 octets into the packet."
-    DEFVAL { 0 }
-    ::= { bufferControlEntry 7 }
-
-bufferControlMaxOctetsRequested OBJECT-TYPE
-    SYNTAX     Integer32
-    UNITS      "Octets"
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The requested maximum number of octets to be
-        saved in this captureBuffer, including any
-        implementation-specific overhead. If this variable
-        is set to -1, the capture buffer will save as many
-        octets as is possible.
-
-        When this object is created or modified, the probe
-        should set bufferControlMaxOctetsGranted as closely
-        to this object as is possible for the particular probe
-        implementation and available resources.  However, if
-        the object has the special value of -1, the probe
-        must set bufferControlMaxOctetsGranted to -1."
-    DEFVAL { -1 }
-    ::= { bufferControlEntry 8 }
-
-bufferControlMaxOctetsGranted OBJECT-TYPE
-    SYNTAX     Integer32
-    UNITS      "Octets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The maximum number of octets that can be
-        saved in this captureBuffer, including overhead.
-        If this variable is -1, the capture buffer will save
-        as many octets as possible.
-
-        When the bufferControlMaxOctetsRequested object is
-        created or modified, the probe should set this object
-        as closely to the requested value as is possible for the
-        particular probe implementation and available resources.
-        However, if the request object has the special value
-
-        of -1, the probe must set this object to -1.
-
-        The probe must not lower this value except as a result of
-        a modification to the associated
-        bufferControlMaxOctetsRequested object.
-
-        When this maximum number of octets is reached
-        and a new packet is to be added to this
-        capture buffer and the corresponding
-        bufferControlFullAction is set to wrapWhenFull(2),
-        enough of the oldest packets associated with this
-        capture buffer shall be deleted by the agent so
-        that the new packet can be added.  If the corresponding
-        bufferControlFullAction is set to lockWhenFull(1),
-        the new packet shall be discarded.  In either case,
-        the probe must set bufferControlFullStatus to
-        full(2).
-
-        When the value of this object changes to a value less
-        than the current value, entries are deleted from
-        the captureBufferTable associated with this
-        bufferControlEntry.  Enough of the
-        oldest of these captureBufferEntries shall be
-        deleted by the agent so that the number of octets
-        used remains less than or equal to the new value of
-        this object.
-
-        When the value of this object changes to a value greater
-        than the current value, the number of associated
-        captureBufferEntries may be allowed to grow."
-    ::= { bufferControlEntry 9 }
-
-bufferControlCapturedPackets OBJECT-TYPE
-    SYNTAX     Integer32
-    UNITS      "Packets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of packets currently in this captureBuffer."
-    ::= { bufferControlEntry 10 }
-
-bufferControlTurnOnTime OBJECT-TYPE
-    SYNTAX     TimeTicks
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of sysUpTime when this capture buffer was
-        first turned on."
-    ::= { bufferControlEntry 11 }
-
-bufferControlOwner OBJECT-TYPE
-    SYNTAX     OwnerString
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The entity that configured this entry and is therefore
-        using the resources assigned to it."
-    ::= { bufferControlEntry 12 }
-
-bufferControlStatus OBJECT-TYPE
-    SYNTAX     EntryStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The status of this buffer Control Entry."
-    ::= { bufferControlEntry 13 }
-
-captureBufferTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF CaptureBufferEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of packets captured off of a channel."
-    ::= { capture 2 }
-
-captureBufferEntry OBJECT-TYPE
-    SYNTAX     CaptureBufferEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A packet captured off of an attached network.  As an
-        example, an instance of the captureBufferPacketData
-        object might be named captureBufferPacketData.3.1783"
-    INDEX { captureBufferControlIndex, captureBufferIndex }
-    ::= { captureBufferTable 1 }
-
-CaptureBufferEntry ::= SEQUENCE {
-    captureBufferControlIndex   Integer32,
-    captureBufferIndex          Integer32,
-    captureBufferPacketID       Integer32,
-    captureBufferPacketData     OCTET STRING,
-    captureBufferPacketLength   Integer32,
-    captureBufferPacketTime     Integer32,
-    captureBufferPacketStatus   Integer32
-}
-
-captureBufferControlIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The index of the bufferControlEntry with which
-        this packet is associated."
-    ::= { captureBufferEntry 1 }
-
-captureBufferIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies an entry
-        in the captureBuffer table associated with a
-        particular bufferControlEntry.  This index will
-        start at 1 and increase by one for each new packet
-        added with the same captureBufferControlIndex.
-
-        Should this value reach 2147483647, the next packet
-        added with the same captureBufferControlIndex shall
-        cause this value to wrap around to 1."
-    ::= { captureBufferEntry 2 }
-
-captureBufferPacketID OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that describes the order of packets
-        that are received on a particular interface.
-        The packetID of a packet captured on an
-        interface is defined to be greater than the
-        packetID's of all packets captured previously on
-        the same interface.  As the captureBufferPacketID
-        object has a maximum positive value of 2^31 - 1,
-        any captureBufferPacketID object shall have the
-        value of the associated packet's packetID mod 2^31."
-    ::= { captureBufferEntry 3 }
-
-captureBufferPacketData OBJECT-TYPE
-    SYNTAX     OCTET STRING
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The data inside the packet, starting at the beginning
-        of the packet plus any offset specified in the
-
-        associated bufferControlDownloadOffset, including any
-        link level headers.  The length of the data in this object
-        is the minimum of the length of the captured packet minus
-        the offset, the length of the associated
-        bufferControlCaptureSliceSize minus the offset, and the
-        associated bufferControlDownloadSliceSize.  If this minimum
-        is less than zero, this object shall have a length of zero."
-    ::= { captureBufferEntry 4 }
-
-captureBufferPacketLength OBJECT-TYPE
-    SYNTAX     Integer32
-    UNITS      "Octets"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The actual length (off the wire) of the packet stored
-        in this entry, including FCS octets."
-    ::= { captureBufferEntry 5 }
-
-captureBufferPacketTime OBJECT-TYPE
-    SYNTAX     Integer32
-    UNITS      "Milliseconds"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The number of milliseconds that had passed since
-        this capture buffer was first turned on when this
-        packet was captured."
-    ::= { captureBufferEntry 6 }
-
-captureBufferPacketStatus OBJECT-TYPE
-    SYNTAX     Integer32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "A value which indicates the error status of this packet.
-
-        The value of this object is defined in the same way as
-        filterPktStatus.  The value is a sum.  This sum
-        initially takes the value zero.  Then, for each
-        error, E, that has been discovered in this packet,
-        2 raised to a value representing E is added to the sum.
-
-        The errors defined for a packet captured off of an
-        Ethernet interface are as follows:
-
-            bit #    Error
-                0    Packet is longer than 1518 octets
-
-                1    Packet is shorter than 64 octets
-                2    Packet experienced a CRC or Alignment error
-                3    First packet in this capture buffer after
-                     it was detected that some packets were
-                     not processed correctly.
-                4    Packet's order in buffer is only approximate
-                     (May only be set for packets sent from
-                     the probe)
-
-        For example, an Ethernet fragment would have a
-        value of 6 (2^1 + 2^2).
-
-        As this MIB is expanded to new media types, this object
-        will have other media-specific errors defined."
-    ::= { captureBufferEntry 7 }
-
--- The Event Group
-
--- Implementation of the Event group is optional.
--- Consult the MODULE-COMPLIANCE macro for the authoritative
--- conformance information for this MIB.
---
--- The Event group controls the generation and notification
--- of events from this device.  Each entry in the eventTable
--- describes the parameters of the event that can be triggered.
--- Each event entry is fired by an associated condition located
--- elsewhere in the MIB.  An event entry may also be associated
--- with a function elsewhere in the MIB that will be executed
--- when the event is generated.  For example, a channel may
--- be turned on or off by the firing of an event.
---
--- Each eventEntry may optionally specify that a log entry
--- be created on its behalf whenever the event occurs.
--- Each entry may also specify that notification should
--- occur by way of SNMP trap messages.  In this case, the
--- community for the trap message is given in the associated
--- eventCommunity object.  The enterprise and specific trap
--- fields of the trap are determined by the condition that
--- triggered the event.  Two traps are defined: risingAlarm and
--- fallingAlarm.  If the eventTable is triggered by a condition
--- specified elsewhere, the enterprise and specific trap fields
--- must be specified for traps generated for that condition.
-
-eventTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF EventEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of events to be generated."
-    ::= { event 1 }
-
-eventEntry OBJECT-TYPE
-    SYNTAX     EventEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A set of parameters that describe an event to be generated
-        when certain conditions are met.  As an example, an instance
-        of the eventLastTimeSent object might be named
-        eventLastTimeSent.6"
-    INDEX { eventIndex }
-    ::= { eventTable 1 }
-
-EventEntry ::= SEQUENCE {
-    eventIndex          Integer32,
-    eventDescription    DisplayString,
-    eventType           INTEGER,
-    eventCommunity      OCTET STRING,
-    eventLastTimeSent   TimeTicks,
-    eventOwner          OwnerString,
-    eventStatus         EntryStatus
-}
-
-eventIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies an entry in the
-        event table.  Each such entry defines one event that
-        is to be generated when the appropriate conditions
-        occur."
-    ::= { eventEntry 1 }
-
-eventDescription OBJECT-TYPE
-    SYNTAX     DisplayString (SIZE (0..127))
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "A comment describing this event entry."
-    ::= { eventEntry 2 }
-
-eventType OBJECT-TYPE
-    SYNTAX     INTEGER {
-                 none(1),
-                 log(2),
-                 snmptrap(3),    -- send an SNMP trap
-                 logandtrap(4)
-               }
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The type of notification that the probe will make
-        about this event.  In the case of log, an entry is
-        made in the log table for each event.  In the case of
-        snmp-trap, an SNMP trap is sent to one or more
-        management stations."
-    ::= { eventEntry 3 }
-
-eventCommunity OBJECT-TYPE
-    SYNTAX     OCTET STRING (SIZE (0..127))
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "If an SNMP trap is to be sent, it will be sent to
-        the SNMP community specified by this octet string."
-    ::= { eventEntry 4 }
-
-eventLastTimeSent OBJECT-TYPE
-    SYNTAX     TimeTicks
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of sysUpTime at the time this event
-        entry last generated an event.  If this entry has
-        not generated any events, this value will be
-        zero."
-    ::= { eventEntry 5 }
-
-eventOwner OBJECT-TYPE
-    SYNTAX     OwnerString
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The entity that configured this entry and is therefore
-        using the resources assigned to it.
-
-        If this object contains a string starting with 'monitor'
-        and has associated entries in the log table, all connected
-        management stations should retrieve those log entries,
-        as they may have significance to all management stations
-        connected to this device"
-    ::= { eventEntry 6 }
-
-eventStatus OBJECT-TYPE
-    SYNTAX     EntryStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-        "The status of this event entry.
-
-        If this object is not equal to valid(1), all associated
-        log entries shall be deleted by the agent."
-    ::= { eventEntry 7 }
-
---
-logTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF LogEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A list of events that have been logged."
-    ::= { event 2 }
-
-logEntry OBJECT-TYPE
-    SYNTAX     LogEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-        "A set of data describing an event that has been
-        logged.  For example, an instance of the logDescription
-        object might be named logDescription.6.47"
-    INDEX { logEventIndex, logIndex }
-    ::= { logTable 1 }
-
-LogEntry ::= SEQUENCE {
-    logEventIndex           Integer32,
-    logIndex                Integer32,
-    logTime                 TimeTicks,
-    logDescription          DisplayString
-}
-
-logEventIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..65535)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The event entry that generated this log
-        entry.  The log identified by a particular
-        value of this index is associated with the same
-        eventEntry as identified by the same value
-        of eventIndex."
-    ::= { logEntry 1 }
-
-logIndex OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An index that uniquely identifies an entry
-        in the log table amongst those generated by the
-        same eventEntries.  These indexes are
-        assigned beginning with 1 and increase by one
-        with each new log entry.  The association
-        between values of logIndex and logEntries
-        is fixed for the lifetime of each logEntry.
-        The agent may choose to delete the oldest
-        instances of logEntry as required because of
-        lack of memory.  It is an implementation-specific
-        matter as to when this deletion may occur."
-    ::= { logEntry 2 }
-
-logTime OBJECT-TYPE
-    SYNTAX     TimeTicks
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "The value of sysUpTime when this log entry was created."
-    ::= { logEntry 3 }
-
-logDescription OBJECT-TYPE
-    SYNTAX     DisplayString (SIZE (0..255))
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-        "An implementation dependent description of the
-        event that activated this log entry."
-    ::= { logEntry 4 }
-
---  Remote Network Monitoring Traps
-
-rmonEventsV2 OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION "Definition point for RMON notifications."
-    ::= { rmon 0 }
-
-risingAlarm NOTIFICATION-TYPE
-    OBJECTS  { alarmIndex, alarmVariable, alarmSampleType,
-               alarmValue, alarmRisingThreshold }
-    STATUS   current
-    DESCRIPTION
-        "The SNMP trap that is generated when an alarm
-        entry crosses its rising threshold and generates
-        an event that is configured for sending SNMP
-        traps."
-    ::= { rmonEventsV2 1 }
-
-fallingAlarm NOTIFICATION-TYPE
-    OBJECTS { alarmIndex, alarmVariable, alarmSampleType,
-              alarmValue, alarmFallingThreshold }
-    STATUS    current
-    DESCRIPTION
-        "The SNMP trap that is generated when an alarm
-        entry crosses its falling threshold and generates
-        an event that is configured for sending SNMP
-        traps."
-    ::= { rmonEventsV2 2 }
-
--- Conformance information
-
-rmonCompliances OBJECT IDENTIFIER ::= { rmonConformance 9 }
-rmonGroups      OBJECT IDENTIFIER ::= { rmonConformance 10 }
-
--- Compliance Statements
-rmonCompliance MODULE-COMPLIANCE
-    STATUS current
-    DESCRIPTION
-        "The requirements for conformance to the RMON MIB. At least
-        one of the groups in this module must be implemented to
-        conform to the RMON MIB. Implementations of this MIB
-        must also implement the system group of MIB-II [16] and the
-        IF-MIB [17]."
-    MODULE -- this module
-
-      GROUP rmonEtherStatsGroup
-          DESCRIPTION
-              "The RMON Ethernet Statistics Group is optional."
-
-      GROUP rmonHistoryControlGroup
-          DESCRIPTION
-              "The RMON History Control Group is optional."
-
-      GROUP rmonEthernetHistoryGroup
-          DESCRIPTION
-              "The RMON Ethernet History Group is optional."
-
-      GROUP rmonAlarmGroup
-          DESCRIPTION
-              "The RMON Alarm Group is optional."
-
-      GROUP rmonHostGroup
-          DESCRIPTION
-              "The RMON Host Group is mandatory when the
-              rmonHostTopNGroup is implemented."
-
-      GROUP rmonHostTopNGroup
-          DESCRIPTION
-              "The RMON Host Top N Group is optional."
-
-      GROUP rmonMatrixGroup
-          DESCRIPTION
-              "The RMON Matrix Group is optional."
-
-      GROUP rmonFilterGroup
-          DESCRIPTION
-              "The RMON Filter Group is mandatory when the
-              rmonPacketCaptureGroup is implemented."
-
-      GROUP rmonPacketCaptureGroup
-          DESCRIPTION
-              "The RMON Packet Capture Group is optional."
-
-      GROUP rmonEventGroup
-          DESCRIPTION
-              "The RMON Event Group is mandatory when the
-              rmonAlarmGroup is implemented."
-    ::= { rmonCompliances 1 }
-
-    rmonEtherStatsGroup OBJECT-GROUP
-        OBJECTS {
-            etherStatsIndex, etherStatsDataSource,
-            etherStatsDropEvents, etherStatsOctets, etherStatsPkts,
-            etherStatsBroadcastPkts, etherStatsMulticastPkts,
-            etherStatsCRCAlignErrors, etherStatsUndersizePkts,
-            etherStatsOversizePkts, etherStatsFragments,
-            etherStatsJabbers, etherStatsCollisions,
-            etherStatsPkts64Octets, etherStatsPkts65to127Octets,
-            etherStatsPkts128to255Octets,
-            etherStatsPkts256to511Octets,
-            etherStatsPkts512to1023Octets,
-            etherStatsPkts1024to1518Octets,
-            etherStatsOwner, etherStatsStatus
-        }
-        STATUS current
-        DESCRIPTION
-            "The RMON Ethernet Statistics Group."
-        ::= { rmonGroups 1 }
-
-    rmonHistoryControlGroup OBJECT-GROUP
-        OBJECTS {
-            historyControlIndex, historyControlDataSource,
-            historyControlBucketsRequested,
-            historyControlBucketsGranted, historyControlInterval,
-            historyControlOwner, historyControlStatus
-        }
-        STATUS current
-        DESCRIPTION
-            "The RMON History Control Group."
-        ::= { rmonGroups 2 }
-
-    rmonEthernetHistoryGroup OBJECT-GROUP
-        OBJECTS {
-            etherHistoryIndex, etherHistorySampleIndex,
-            etherHistoryIntervalStart, etherHistoryDropEvents,
-            etherHistoryOctets, etherHistoryPkts,
-            etherHistoryBroadcastPkts, etherHistoryMulticastPkts,
-            etherHistoryCRCAlignErrors, etherHistoryUndersizePkts,
-            etherHistoryOversizePkts, etherHistoryFragments,
-            etherHistoryJabbers, etherHistoryCollisions,
-            etherHistoryUtilization
-        }
-        STATUS current
-        DESCRIPTION
-            "The RMON Ethernet History Group."
-        ::= { rmonGroups 3 }
-
-    rmonAlarmGroup OBJECT-GROUP
-        OBJECTS {
-            alarmIndex, alarmInterval, alarmVariable,
-            alarmSampleType, alarmValue, alarmStartupAlarm,
-            alarmRisingThreshold, alarmFallingThreshold,
-            alarmRisingEventIndex, alarmFallingEventIndex,
-            alarmOwner, alarmStatus
-        }
-        STATUS current
-        DESCRIPTION
-            "The RMON Alarm Group."
-        ::= { rmonGroups 4 }
-
-    rmonHostGroup OBJECT-GROUP
-        OBJECTS {
-            hostControlIndex, hostControlDataSource,
-            hostControlTableSize, hostControlLastDeleteTime,
-            hostControlOwner, hostControlStatus,
-            hostAddress, hostCreationOrder, hostIndex,
-            hostInPkts, hostOutPkts, hostInOctets,
-            hostOutOctets, hostOutErrors, hostOutBroadcastPkts,
-            hostOutMulticastPkts, hostTimeAddress,
-            hostTimeCreationOrder, hostTimeIndex,
-            hostTimeInPkts, hostTimeOutPkts, hostTimeInOctets,
-            hostTimeOutOctets, hostTimeOutErrors,
-            hostTimeOutBroadcastPkts, hostTimeOutMulticastPkts
-        }
-        STATUS current
-        DESCRIPTION
-            "The RMON Host Group."
-        ::= { rmonGroups 5 }
-
-    rmonHostTopNGroup OBJECT-GROUP
-        OBJECTS {
-            hostTopNControlIndex, hostTopNHostIndex,
-            hostTopNRateBase, hostTopNTimeRemaining,
-            hostTopNDuration, hostTopNRequestedSize,
-            hostTopNGrantedSize, hostTopNStartTime,
-            hostTopNOwner, hostTopNStatus,
-            hostTopNReport, hostTopNIndex,
-            hostTopNAddress, hostTopNRate
-        }
-        STATUS current
-        DESCRIPTION
-            "The RMON Host Top 'N' Group."
-        ::= { rmonGroups 6 }
-
-    rmonMatrixGroup OBJECT-GROUP
-        OBJECTS {
-            matrixControlIndex, matrixControlDataSource,
-            matrixControlTableSize, matrixControlLastDeleteTime,
-            matrixControlOwner, matrixControlStatus,
-            matrixSDSourceAddress, matrixSDDestAddress,
-            matrixSDIndex, matrixSDPkts,
-            matrixSDOctets, matrixSDErrors,
-            matrixDSSourceAddress, matrixDSDestAddress,
-            matrixDSIndex, matrixDSPkts,
-            matrixDSOctets, matrixDSErrors
-        }
-        STATUS current
-        DESCRIPTION
-            "The RMON Matrix Group."
-        ::= { rmonGroups 7 }
-
-    rmonFilterGroup OBJECT-GROUP
-        OBJECTS {
-
-            filterIndex, filterChannelIndex, filterPktDataOffset,
-            filterPktData, filterPktDataMask,
-            filterPktDataNotMask, filterPktStatus,
-            filterPktStatusMask, filterPktStatusNotMask,
-            filterOwner, filterStatus,
-            channelIndex, channelIfIndex, channelAcceptType,
-            channelDataControl, channelTurnOnEventIndex,
-            channelTurnOffEventIndex, channelEventIndex,
-            channelEventStatus, channelMatches,
-            channelDescription, channelOwner, channelStatus
-        }
-        STATUS current
-        DESCRIPTION
-            "The RMON Filter Group."
-        ::= { rmonGroups 8 }
-
-    rmonPacketCaptureGroup OBJECT-GROUP
-        OBJECTS {
-            bufferControlIndex, bufferControlChannelIndex,
-            bufferControlFullStatus, bufferControlFullAction,
-            bufferControlCaptureSliceSize,
-            bufferControlDownloadSliceSize,
-            bufferControlDownloadOffset,
-            bufferControlMaxOctetsRequested,
-            bufferControlMaxOctetsGranted,
-            bufferControlCapturedPackets,
-            bufferControlTurnOnTime,
-            bufferControlOwner, bufferControlStatus,
-            captureBufferControlIndex, captureBufferIndex,
-            captureBufferPacketID, captureBufferPacketData,
-            captureBufferPacketLength, captureBufferPacketTime,
-            captureBufferPacketStatus
-        }
-        STATUS current
-        DESCRIPTION
-            "The RMON Packet Capture Group."
-        ::= { rmonGroups 9 }
-
-    rmonEventGroup OBJECT-GROUP
-        OBJECTS {
-            eventIndex, eventDescription, eventType,
-            eventCommunity, eventLastTimeSent,
-            eventOwner, eventStatus,
-            logEventIndex, logIndex, logTime,
-            logDescription
-        }
-        STATUS current
-        DESCRIPTION
-            "The RMON Event Group."
-        ::= { rmonGroups 10 }
-
-    rmonNotificationGroup NOTIFICATION-GROUP
-        NOTIFICATIONS { risingAlarm, fallingAlarm }
-        STATUS        current
-        DESCRIPTION
-            "The RMON Notification Group."
-        ::= { rmonGroups 11 }
-END
diff --git a/mibs/SCTP-MIB.txt b/mibs/SCTP-MIB.txt
deleted file mode 100644
index 9d809d2..0000000
--- a/mibs/SCTP-MIB.txt
+++ /dev/null
@@ -1,1342 +0,0 @@
-SCTP-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-  MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32, Gauge32,
-  Counter32, Counter64, mib-2
-       FROM SNMPv2-SMI                        -- [RFC2578]
-  TimeStamp, TruthValue
-       FROM SNMPv2-TC                         -- [RFC2579]
-  MODULE-COMPLIANCE, OBJECT-GROUP
-       FROM SNMPv2-CONF                       -- [RFC2580]
-  InetAddressType, InetAddress, InetPortNumber
-       FROM INET-ADDRESS-MIB;                 -- [RFC3291]
-
-sctpMIB MODULE-IDENTITY
-  LAST-UPDATED "200409020000Z"       -- 2nd September 2004
-  ORGANIZATION "IETF SIGTRAN Working Group"
-  CONTACT-INFO
-       "
-        WG EMail: sigtran at ietf.org
-
-        Web Page:
-              http://www.ietf.org/html.charters/sigtran-charter.html
-
-        Chair:     Lyndon Ong
-                   Ciena Corporation
-                   0480 Ridgeview Drive
-                   Cupertino, CA  95014
-                   USA
-                   Tel:
-                   Email: lyong at ciena.com
-
-        Editors:   Maria-Carmen Belinchon
-                   R&D Department
-                   Ericsson Espana S. A.
-                   Via de los Poblados, 13
-                   28033 Madrid
-                   Spain
-                   Tel:   +34 91 339 3535
-                   Email: Maria.C.Belinchon at ericsson.com
-
-                   Jose-Javier Pastor-Balbas
-                   R&D Department
-                   Ericsson Espana S. A.
-                   Via de los Poblados, 13
-                   28033 Madrid
-                   Spain
-                   Tel:   +34 91 339 1397
-            Email: J.Javier.Pastor at ericsson.com
-       "
-  DESCRIPTION
-       "The MIB module for managing SCTP implementations.
-
-       Copyright (C) The Internet Society (2004).  This version of
-       this MIB module is part of RFC 3873; see the RFC itself for
-       full legal notices. "
-
-  REVISION "200409020000Z"       -- 2nd September 2004
-  DESCRIPTION " Initial version, published as RFC 3873"
-  ::= {  mib-2 104 }
-
--- the SCTP base variables group
-
-sctpObjects OBJECT IDENTIFIER ::= { sctpMIB 1 }
-
-sctpStats   OBJECT IDENTIFIER ::= { sctpObjects 1 }
-sctpParams  OBJECT IDENTIFIER ::= { sctpObjects 2 }
-
--- STATISTICS
--- **********
-
--- STATE-RELATED STATISTICS
-
-sctpCurrEstab OBJECT-TYPE
-  SYNTAX         Gauge32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of associations for which the current state is
-       either ESTABLISHED, SHUTDOWN-RECEIVED or SHUTDOWN-PENDING."
-  REFERENCE
-       "Section 4 in RFC2960 covers the SCTP   Association state
-       diagram."
-  ::= { sctpStats 1 }
-
-sctpActiveEstabs OBJECT-TYPE
-  SYNTAX         Counter32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of times that associations have made a direct
-       transition to the ESTABLISHED state from the COOKIE-ECHOED
-       state: COOKIE-ECHOED -> ESTABLISHED. The upper layer initiated
-       the association attempt."
-  REFERENCE
-       "Section 4 in RFC2960 covers the SCTP   Association state
-       diagram."
-  ::= { sctpStats  2 }
-
-sctpPassiveEstabs OBJECT-TYPE
-  SYNTAX         Counter32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of times that associations have made a direct
-       transition to the ESTABLISHED state from the CLOSED state:
-       CLOSED -> ESTABLISHED. The remote endpoint initiated the
-       association attempt."
-  REFERENCE
-       "Section 4 in RFC2960 covers the SCTP   Association state
-       diagram."
-  ::= { sctpStats  3 }
-
-sctpAborteds OBJECT-TYPE
-  SYNTAX         Counter32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of times that associations have made a direct
-       transition to the CLOSED state from any state using the
-       primitive 'ABORT': AnyState --Abort--> CLOSED. Ungraceful
-       termination of the association."
-  REFERENCE
-       "Section 4 in RFC2960 covers the SCTP   Association state
-       diagram."
-  ::= { sctpStats  4 }
-
-sctpShutdowns OBJECT-TYPE
-  SYNTAX         Counter32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of times that associations have made a direct
-       transition to the CLOSED state from either the SHUTDOWN-SENT
-       state or the SHUTDOWN-ACK-SENT state. Graceful termination of
-       the association."
-  REFERENCE
-       "Section 4 in RFC2960 covers the SCTP   Association state
-       diagram."
-  ::= { sctpStats  5 }
-
--- OTHER LAYER STATISTICS
-
-sctpOutOfBlues OBJECT-TYPE
-  SYNTAX         Counter32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of out of the blue packets received by the host.
-       An out of the blue packet is an SCTP packet correctly formed,
-       including the proper checksum, but for which the receiver was
-       unable to identify an appropriate association."
-  REFERENCE
-       "Section 8.4 in RFC2960 deals with the Out-Of-The-Blue
-        (OOTB) packet definition and procedures."
-  ::= { sctpStats  6 }
-
-sctpChecksumErrors OBJECT-TYPE
-  SYNTAX         Counter32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of SCTP packets received with an invalid
-       checksum."
-  REFERENCE
-       "The checksum is located at the end of the SCTP packet as per
-       Section 3.1 in RFC2960. RFC3309 updates SCTP to use a 32 bit
-       CRC checksum."
-::= { sctpStats  7 }
-
-sctpOutCtrlChunks OBJECT-TYPE
-  SYNTAX         Counter64
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of SCTP control chunks sent (retransmissions are
-       not included). Control chunks are those chunks different from
-       DATA."
-  REFERENCE
-       "Sections 1.3.5 and 1.4 in RFC2960 refer to control chunk as
-       those chunks different from those that contain user
-       information, i.e., DATA chunks."
-  ::= { sctpStats  8 }
-
-sctpOutOrderChunks OBJECT-TYPE
-  SYNTAX         Counter64
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of SCTP ordered data chunks sent (retransmissions
-       are not included)."
-  REFERENCE
-       "Section 3.3.1 in RFC2960 defines the ordered data chunk."
-  ::= { sctpStats  9 }
-
-sctpOutUnorderChunks OBJECT-TYPE
-  SYNTAX         Counter64
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of SCTP unordered chunks (data chunks in which the
-       U bit is set to 1) sent (retransmissions are not included)."
-  REFERENCE
-       "Section 3.3.1 in RFC2960 defines the unordered data chunk."
-  ::= { sctpStats  10 }
-
-sctpInCtrlChunks OBJECT-TYPE
-  SYNTAX         Counter64
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of SCTP control chunks received (no duplicate
-       chunks included)."
-  REFERENCE
-       "Sections 1.3.5 and 1.4 in RFC2960 refer to control chunk as
-       those chunks different from those that contain user
-       information, i.e., DATA chunks."
-  ::= { sctpStats  11 }
-
-sctpInOrderChunks OBJECT-TYPE
-  SYNTAX         Counter64
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of SCTP ordered data chunks received (no duplicate
-       chunks included)."
-  REFERENCE
-       "Section 3.3.1 in RFC2960 defines the ordered data chunk."
-  ::= { sctpStats  12 }
-
-sctpInUnorderChunks OBJECT-TYPE
-  SYNTAX         Counter64
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of SCTP unordered chunks (data chunks in which the
-       U bit is set to 1) received (no duplicate chunks included)."
-  REFERENCE
-       "Section 3.3.1 in RFC2960 defines the unordered data chunk."
-  ::= { sctpStats  13 }
-
-sctpFragUsrMsgs OBJECT-TYPE
-  SYNTAX         Counter64
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of user messages that have to be fragmented
-       because of the MTU."
-  ::= { sctpStats  14 }
-
-sctpReasmUsrMsgs OBJECT-TYPE
-  SYNTAX         Counter64
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of user messages reassembled, after conversion
-       into DATA chunks."
-  REFERENCE
-       "Section 6.9 in RFC2960 includes a description of the
-       reassembly process."
-  ::= { sctpStats  15 }
-
-sctpOutSCTPPacks OBJECT-TYPE
-  SYNTAX         Counter64
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of SCTP packets sent. Retransmitted DATA chunks
-       are included."
-  ::= { sctpStats  16 }
-
-sctpInSCTPPacks OBJECT-TYPE
-  SYNTAX         Counter64
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The number of SCTP packets received. Duplicates are
-       included."
-  ::= { sctpStats  17 }
-
-sctpDiscontinuityTime OBJECT-TYPE
-  SYNTAX         TimeStamp
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The value of sysUpTime on the most recent occasion at which
-       any one or more of this general statistics counters suffered a
-       discontinuity.  The relevant counters are the specific
-       instances associated with this interface of any Counter32 or
-       Counter64 object contained in the SCTP layer statistics
-       (defined below sctpStats branch).  If no such discontinuities
-       have occurred since the last re-initialization of the local
-       management subsystem, then this object contains a zero value."
-  REFERENCE
-       "The inclusion of this object is recommended by RFC2578."
-  ::= { sctpStats 18 }
-
--- PROTOCOL GENERAL VARIABLES
--- **************************
-
-sctpRtoAlgorithm OBJECT-TYPE
-  SYNTAX         INTEGER {
-                      other(1),      -- Other new one. Future use
-                      vanj(2)        -- Van Jacobson's algorithm
-                 }
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The algorithm used to determine the timeout value (T3-rtx)
-       used for re-transmitting unacknowledged chunks."
-  REFERENCE
-       "Section 6.3.1 and 6.3.2 in RFC2960 cover the RTO calculation
-       and retransmission timer rules."
-  DEFVAL {vanj} -- vanj(2)
-  ::= { sctpParams 1 }
-
-sctpRtoMin OBJECT-TYPE
-  SYNTAX         Unsigned32
-  UNITS          "milliseconds"
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The minimum value permitted by a SCTP implementation for the
-       retransmission timeout value, measured in milliseconds.  More
-       refined semantics for objects of this type depend upon the
-       algorithm used to determine the retransmission timeout value.
-
-       A retransmission time value of zero means immediate
-       retransmission.
-
-       The value of this object has to be lower than or equal to
-       stcpRtoMax's value."
-  DEFVAL {1000} -- milliseconds
-  ::= { sctpParams 2 }
-
-sctpRtoMax OBJECT-TYPE
-  SYNTAX         Unsigned32
-  UNITS          "milliseconds"
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The maximum value permitted by a SCTP implementation for the
-       retransmission timeout value, measured in milliseconds.  More
-       refined semantics for objects of this type depend upon the
-       algorithm used to determine the retransmission timeout value.
-
-       A retransmission time value of zero means immediate re-
-       transmission.
-
-       The value of this object has to be greater than or equal to
-       stcpRtoMin's value."
-  DEFVAL {60000} -- milliseconds
-    ::= { sctpParams 3 }
-
-sctpRtoInitial OBJECT-TYPE
-  SYNTAX         Unsigned32
-  UNITS          "milliseconds"
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The initial value for the retransmission timer.
-
-       A retransmission time value of zero means immediate re-
-       transmission."
-  DEFVAL {3000} -- milliseconds
-  ::= { sctpParams 4 }
-
-sctpMaxAssocs OBJECT-TYPE
-  SYNTAX         Integer32 (-1 | 0..2147483647)
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The limit on the total number of associations the entity can
-       support. In entities where the maximum number of associations
-       is dynamic, this object should contain the value -1."
-  ::= { sctpParams 5 }
-
-sctpValCookieLife OBJECT-TYPE
-  SYNTAX         Unsigned32
-  UNITS          "milliseconds"
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "Valid cookie life in the 4-way start-up handshake procedure."
-  REFERENCE
-       "Section 5.1.3 in RFC2960 explains the cookie generation
-       process. Recommended value is per section 14 in RFC2960."
-  DEFVAL {60000} -- milliseconds
-  ::= { sctpParams 6 }
-
-sctpMaxInitRetr OBJECT-TYPE
-  SYNTAX         Unsigned32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The maximum number of retransmissions at the start-up phase
-       (INIT and COOKIE ECHO chunks). "
-  REFERENCE
-       "Section 5.1.4, 5.1.6 in RFC2960 refers to Max.Init.Retransmit
-       parameter. Recommended value is per section 14 in RFC2960."
-  DEFVAL {8} -- number of attempts
-  ::= { sctpParams 7 }
-
--- TABLES
--- ******
-
--- the SCTP Association TABLE
-
--- The SCTP association table contains information about each
--- association in which the local endpoint is involved.
-
-sctpAssocTable OBJECT-TYPE
-  SYNTAX         SEQUENCE OF SctpAssocEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "A table containing SCTP association-specific information."
-  ::= { sctpObjects 3 }
-
-sctpAssocEntry OBJECT-TYPE
-  SYNTAX         SctpAssocEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "General common variables and statistics for the whole
-       association."
-  INDEX          { sctpAssocId }
-  ::= { sctpAssocTable 1 }
-
-SctpAssocEntry ::= SEQUENCE {
-  sctpAssocId                        Unsigned32,
-  sctpAssocRemHostName               OCTET STRING,
-  sctpAssocLocalPort                 InetPortNumber,
-  sctpAssocRemPort                   InetPortNumber,
-  sctpAssocRemPrimAddrType           InetAddressType,
-  sctpAssocRemPrimAddr               InetAddress,
-  sctpAssocHeartBeatInterval         Unsigned32,
-  sctpAssocState                     INTEGER,
-  sctpAssocInStreams                 Unsigned32,
-  sctpAssocOutStreams                Unsigned32,
-  sctpAssocMaxRetr                   Unsigned32,
-  sctpAssocPrimProcess               Unsigned32,
-  sctpAssocT1expireds                Counter32,     -- Statistic
-  sctpAssocT2expireds                Counter32,     -- Statistic
-  sctpAssocRtxChunks                 Counter32,     -- Statistic
-  sctpAssocStartTime                 TimeStamp,
-  sctpAssocDiscontinuityTime         TimeStamp
-  }
-
-sctpAssocId OBJECT-TYPE
-  SYNTAX         Unsigned32 (1..4294967295)
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "Association Identification. Value identifying the
-       association. "
-  ::= { sctpAssocEntry 1 }
-
-sctpAssocRemHostName OBJECT-TYPE
-  SYNTAX         OCTET STRING (SIZE(0..255))
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The peer's DNS name. This object needs to have the same
-       format as the encoding in the DNS protocol.  This implies that
-       the domain name can be up to 255 octets long, each octet being
-       0<=x<=255 as value with US-ASCII A-Z having a case insensitive
-       matching.
-
-       If no DNS domain name was received from the peer at init time
-       (embedded in the INIT or INIT-ACK chunk), this object is
-       meaningless. In such cases the object MUST contain a zero-
-       length string value. Otherwise, it contains the remote host
-       name received at init time."
-  ::= { sctpAssocEntry 2 }
-
-sctpAssocLocalPort OBJECT-TYPE
-  SYNTAX         InetPortNumber (1..65535)
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The local SCTP port number used for this association."
-  ::= { sctpAssocEntry 3 }
-
-sctpAssocRemPort OBJECT-TYPE
-  SYNTAX         InetPortNumber (1..65535)
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The remote SCTP port number used for this association."
-  ::= { sctpAssocEntry 4 }
-
-sctpAssocRemPrimAddrType OBJECT-TYPE
-  SYNTAX         InetAddressType
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The internet type of primary remote IP address. "
-  ::= { sctpAssocEntry 5 }
-
-sctpAssocRemPrimAddr OBJECT-TYPE
-  SYNTAX         InetAddress
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The primary remote IP address. The type of this address is
-       determined by the value of sctpAssocRemPrimAddrType.
-
-       The client side will know this value after INIT_ACK message
-       reception, the server side will know this value when sending
-       INIT_ACK message. However, values will be filled in at
-       established(4) state."
-  ::= { sctpAssocEntry 6 }
-
-sctpAssocHeartBeatInterval OBJECT-TYPE
-  SYNTAX         Unsigned32
-  UNITS          "milliseconds"
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The current heartbeat interval..
-
-       Zero value means no HeartBeat, even when the concerned
-       sctpAssocRemAddrHBFlag object is true."
-  DEFVAL {30000} -- milliseconds
-  ::= { sctpAssocEntry 7 }
-
-sctpAssocState OBJECT-TYPE
-  SYNTAX         INTEGER {
-                      closed(1),
-                      cookieWait(2),
-                      cookieEchoed(3),
-                      established(4),
-                      shutdownPending(5),
-                      shutdownSent(6),
-                      shutdownReceived(7),
-                      shutdownAckSent(8),
-                      deleteTCB(9)
-                      }
-  MAX-ACCESS     read-write
-  STATUS         current
-  DESCRIPTION
-       "The state of this SCTP association.
-
-       As in TCP, deleteTCB(9) is the only value that may be set by a
-       management station. If any other value is received, then the
-       agent must return a wrongValue error.
-
-       If a management station sets this object to the value
-       deleteTCB(9), then this has the effect of deleting the TCB (as
-       defined in SCTP) of the corresponding association on the
-       managed node, resulting in immediate termination of the
-       association.
-
-       As an implementation-specific option, an ABORT chunk may be
-       sent from the managed node to the other SCTP endpoint as a
-       result of setting the deleteTCB(9) value. The ABORT chunk
-       implies an ungraceful association shutdown."
-  REFERENCE
-       "Section 4 in RFC2960 covers the SCTP Association state
-       diagram."
-  ::= { sctpAssocEntry 8 }
-
-sctpAssocInStreams OBJECT-TYPE
-  SYNTAX         Unsigned32 (1..65535)
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "Inbound Streams according to the negotiation at association
-       start up."
-  REFERENCE
-       "Section 1.3 in RFC2960 includes a definition of stream.
-       Section 5.1.1 in RFC2960 covers the streams negotiation
-       process."
-  ::= { sctpAssocEntry 9 }
-
-sctpAssocOutStreams OBJECT-TYPE
-  SYNTAX         Unsigned32 (1..65535)
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "Outbound Streams according to the negotiation at association
-       start up. "
-  REFERENCE
-       "Section 1.3 in RFC2960 includes a definition of stream.
-       Section 5.1.1 in RFC2960 covers the streams negotiation
-       process."
-  ::= { sctpAssocEntry 10 }
-
-sctpAssocMaxRetr OBJECT-TYPE
-  SYNTAX         Unsigned32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The maximum number of data retransmissions in the association
-       context. This value is specific for each association and the
-       upper layer can change it by calling the appropriate
-       primitives. This value has to be smaller than the addition of
-       all the maximum number for all the paths
-       (sctpAssocRemAddrMaxPathRtx).
-
-       A value of zero value means no retransmissions."
-  DEFVAL {10} -- number of attempts
-  ::= { sctpAssocEntry 11 }
-
-sctpAssocPrimProcess OBJECT-TYPE
-      SYNTAX      Unsigned32
-      MAX-ACCESS read-only
-      STATUS      current
-      DESCRIPTION
-       "This object identifies the system level process which holds
-       primary responsibility for the SCTP association.
-       Wherever possible, this should be the system's native unique
-       identification number. The special value 0 can be used to
-       indicate that no primary process is known.
-
-       Note that the value of this object can be used as a pointer
-       into the swRunTable of the HOST-RESOURCES-MIB(if the value is
-       smaller than 2147483647) or into the sysApplElmtRunTable of
-       the SYSAPPL-MIB."
-  ::= { sctpAssocEntry 12 }
-
--- Association Statistics
-
-sctpAssocT1expireds OBJECT-TYPE
-  SYNTAX         Counter32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The T1 timer determines how long to wait for an
-       acknowledgement after sending an INIT or COOKIE-ECHO chunk.
-       This object reflects the number of times the T1 timer expires
-       without having received the acknowledgement.
-
-       Discontinuities in the value of this counter can occur at re-
-       initialization of the management system, and at other times as
-       indicated by the value of sctpAssocDiscontinuityTime."
-  REFERENCE
-       "Section 5 in RFC2960."
-  ::= { sctpAssocEntry 13 }
-
-sctpAssocT2expireds OBJECT-TYPE
-  SYNTAX         Counter32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The T2 timer determines how long to wait for an
-       acknowledgement after sending a SHUTDOWN or SHUTDOWN-ACK
-       chunk. This object reflects the number of times that T2- timer
-       expired.
-
-       Discontinuities in the value of this counter can occur at re-
-       initialization of the management system, and at other times as
-       indicated by the value of sctpAssocDiscontinuityTime."
-REFERENCE
-       "Section 9.2 in RFC2960."
-  ::= { sctpAssocEntry 14 }
-
-sctpAssocRtxChunks OBJECT-TYPE
-  SYNTAX         Counter32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "When T3-rtx expires, the DATA chunks that triggered the T3
-       timer will be re-sent according with the retransmissions
-       rules. Every DATA chunk that was included in the SCTP packet
-       that triggered the T3-rtx timer must be added to the value of
-       this counter.
-
-       Discontinuities in the value of this counter can occur at re-
-       initialization of the management system, and at other times as
-       indicated by the value of sctpAssocDiscontinuityTime."
-  REFERENCE
-       "Section 6 in RFC2960 covers the retransmission process and
-       rules."
-  ::= { sctpAssocEntry 15 }
-
-sctpAssocStartTime OBJECT-TYPE
-  SYNTAX         TimeStamp
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The value of sysUpTime at the time that the association
-       represented by this row enters the ESTABLISHED state, i.e.,
-       the sctpAssocState object is set to established(4). The
-       value of this object will be zero:
-       - before the association enters the established(4)
-         state, or
-
-       - if the established(4) state was entered prior to
-         the last re-initialization of the local network management
-         subsystem."
-  ::= { sctpAssocEntry 16 }
-
-sctpAssocDiscontinuityTime OBJECT-TYPE
-  SYNTAX         TimeStamp
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The value of sysUpTime on the most recent occasion at which
-       any one or more of this SCTP association counters suffered a
-       discontinuity.  The relevant counters are the specific
-       instances associated with this interface of any Counter32 or
-       Counter64 object contained in the sctpAssocTable or
-       sctpLocalAddrTable or sctpRemAddrTable.  If no such
-       discontinuities have occurred since the last re-initialization
-       of the local management subsystem, then this object contains a
-       zero value. "
-  REFERENCE
-       "The inclusion of this object is recommended by RFC2578."
-  ::= { sctpAssocEntry 17 }
-
--- Expanded tables: Including Multi-home feature
-
--- Local Address TABLE
--- *******************
-
-sctpAssocLocalAddrTable OBJECT-TYPE
-  SYNTAX         SEQUENCE OF SctpAssocLocalAddrEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "Expanded table of sctpAssocTable based on the AssocId index.
-       This table shows data related to each local IP address which
-       is used by this association."
-  ::= { sctpObjects  4 }
-
-sctpAssocLocalAddrEntry OBJECT-TYPE
-  SYNTAX         SctpAssocLocalAddrEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "Local information about the available addresses. There will
-       be an entry for every local IP address defined for this
-
-       association.
-       Implementors need to be aware that if the size of
-       sctpAssocLocalAddr exceeds 114 octets then OIDs of column
-       instances in this table will have more than 128 sub-
-       identifiers and cannot be accessed using SNMPv1, SNMPv2c, or
-       SNMPv3."
-  INDEX     {    sctpAssocId,   -- shared index
-                 sctpAssocLocalAddrType,
-                 sctpAssocLocalAddr }
-  ::= { sctpAssocLocalAddrTable 1 }
-
-SctpAssocLocalAddrEntry ::= SEQUENCE {
-  sctpAssocLocalAddrType        InetAddressType,
-  sctpAssocLocalAddr            InetAddress,
-  sctpAssocLocalAddrStartTime   TimeStamp
-  }
-
-sctpAssocLocalAddrType OBJECT-TYPE
-  SYNTAX         InetAddressType
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "Internet type of local IP address used for this association."
-  ::= { sctpAssocLocalAddrEntry 1 }
-
-sctpAssocLocalAddr OBJECT-TYPE
-  SYNTAX         InetAddress
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "The value of a local IP address available for this
-       association. The type of this address is determined by the
-       value of sctpAssocLocalAddrType."
-  ::= { sctpAssocLocalAddrEntry 2 }
-
-sctpAssocLocalAddrStartTime OBJECT-TYPE
-  SYNTAX         TimeStamp
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The value of sysUpTime at the time that this row was
-       created."
-  ::= { sctpAssocLocalAddrEntry 3 }
-
--- Remote Addresses TABLE
--- **********************
-
-sctpAssocRemAddrTable OBJECT-TYPE
-  SYNTAX         SEQUENCE OF SctpAssocRemAddrEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "Expanded table of sctpAssocTable based on the AssocId index.
-       This table shows data related to each remote peer IP address
-       which is used by this association."
-  ::= { sctpObjects  5 }
-
-sctpAssocRemAddrEntry OBJECT-TYPE
-  SYNTAX         SctpAssocRemAddrEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "Information about the most important variables for every
-       remote IP address. There will be an entry for every remote IP
-       address defined for this association.
-
-       Implementors need to be aware that if the size of
-       sctpAssocRemAddr exceeds 114 octets then OIDs of column
-       instances in this table will have more than 128 sub-
-       identifiers and cannot be accessed using SNMPv1, SNMPv2c, or
-       SNMPv3."
-  INDEX   { sctpAssocId,   -- shared index
-            sctpAssocRemAddrType,
-            sctpAssocRemAddr }
-  ::= { sctpAssocRemAddrTable 1 }
-
-SctpAssocRemAddrEntry ::= SEQUENCE {
-  sctpAssocRemAddrType               InetAddressType,
-  sctpAssocRemAddr                   InetAddress,
-  sctpAssocRemAddrActive             TruthValue,
-  sctpAssocRemAddrHBActive           TruthValue,
-  sctpAssocRemAddrRTO                Unsigned32,
-  sctpAssocRemAddrMaxPathRtx         Unsigned32,
-  sctpAssocRemAddrRtx                Counter32,     -- Statistic
-  sctpAssocRemAddrStartTime          TimeStamp
-  }
-
-sctpAssocRemAddrType OBJECT-TYPE
-  SYNTAX         InetAddressType
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "Internet type of a remote IP address available for this
-       association."
-  ::= { sctpAssocRemAddrEntry 1 }
-
-sctpAssocRemAddr OBJECT-TYPE
-  SYNTAX         InetAddress
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "The value of a remote IP address available for this
-       association. The type of this address is determined by the
-       value of sctpAssocLocalAddrType."
-  ::= { sctpAssocRemAddrEntry 2 }
-
-sctpAssocRemAddrActive OBJECT-TYPE
-  SYNTAX         TruthValue
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "This object gives information about the reachability of this
-       specific remote IP address.
-
-       When the object is set to 'true' (1), the remote IP address is
-       understood as Active. Active means that the threshold of no
-       answers received from this IP address has not been reached.
-
-       When the object is set to 'false' (2), the remote IP address
-       is understood as Inactive. Inactive means that either no
-       heartbeat or any other message was received from this address,
-       reaching the threshold defined by the protocol."
-  REFERENCE
-       "The remote transport states are defined as Active and
-       Inactive in the SCTP, RFC2960."
-  ::= { sctpAssocRemAddrEntry 3 }
-
-sctpAssocRemAddrHBActive OBJECT-TYPE
-  SYNTAX         TruthValue
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "This object indicates whether the optional Heartbeat check
-       associated to one destination transport address is activated
-       or not (value equal to true or false, respectively). "
-  ::= { sctpAssocRemAddrEntry 4 }
-
-sctpAssocRemAddrRTO OBJECT-TYPE -- T3-rtx- Timer
-  SYNTAX         Unsigned32
-  UNITS          "milliseconds"
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The current Retransmission Timeout. T3-rtx timer as defined
-       in the protocol SCTP."
-  REFERENCE
-       "Section 6.3 in RFC2960 deals with the Retransmission Timer
-       Management."
-  ::= { sctpAssocRemAddrEntry 5 }
-
-sctpAssocRemAddrMaxPathRtx OBJECT-TYPE
-  SYNTAX         Unsigned32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "Maximum number of DATA chunks retransmissions allowed to a
-       remote IP address before it is considered inactive, as defined
-       in RFC2960."
-  REFERENCE
-       "Section 8.2, 8.3 and 14 in RFC2960."
-  DEFVAL {5} -- number of attempts
-  ::= { sctpAssocRemAddrEntry 6 }
-
--- Remote Address Statistic
-
-sctpAssocRemAddrRtx OBJECT-TYPE
-  SYNTAX         Counter32
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "Number of DATA chunks retransmissions to this specific IP
-       address. When T3-rtx expires, the DATA chunk that triggered
-       the T3 timer will be re-sent according to the retransmissions
-       rules. Every DATA chunk that is included in a SCTP packet and
-       was transmitted to this specific IP address before, will be
-       included in this counter.
-
-       Discontinuities in the value of this counter can occur at re-
-       initialization of the management system, and at other times as
-       indicated by the value of sctpAssocDiscontinuityTime."
-  ::= { sctpAssocRemAddrEntry 7 }
-
-sctpAssocRemAddrStartTime OBJECT-TYPE
-  SYNTAX         TimeStamp
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The value of sysUpTime at the time that this row was
-       created."
-  ::= { sctpAssocRemAddrEntry 8 }
-
--- ASSOCIATION INVERSE TABLE
--- *************************
-
--- BY LOCAL PORT
-
-sctpLookupLocalPortTable OBJECT-TYPE
-  SYNTAX         SEQUENCE OF SctpLookupLocalPortEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "With the use of this table, a list of associations which are
-
-       using the specified local port can be retrieved."
-  ::= { sctpObjects  6 }
-
-sctpLookupLocalPortEntry OBJECT-TYPE
-  SYNTAX         SctpLookupLocalPortEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "This table is indexed by local port and association ID.
-       Specifying a local port, we would get a list of the
-       associations whose local port is the one specified."
-  INDEX         { sctpAssocLocalPort,
-                 sctpAssocId }
-  ::= { sctpLookupLocalPortTable 1 }
-
-SctpLookupLocalPortEntry::= SEQUENCE {
-  sctpLookupLocalPortStartTime            TimeStamp
-  }
-
-sctpLookupLocalPortStartTime OBJECT-TYPE
-  SYNTAX         TimeStamp
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The value of sysUpTime at the time that this row was created.
-
-       As the table will be created after the sctpAssocTable
-       creation, this value could be equal to the sctpAssocStartTime
-       object from the main table."
-  ::= { sctpLookupLocalPortEntry 1 }
-
--- BY REMOTE PORT
-
-sctpLookupRemPortTable OBJECT-TYPE
-  SYNTAX         SEQUENCE OF SctpLookupRemPortEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "With the use of this table, a list of associations which are
-       using the specified remote port can be got"
-  ::= { sctpObjects  7 }
-
-sctpLookupRemPortEntry OBJECT-TYPE
-  SYNTAX         SctpLookupRemPortEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "This table is indexed by remote port and association ID.
-       Specifying a remote port we would get a list of the
-       associations whose local port is the one specified "
-  INDEX         { sctpAssocRemPort,
-                 sctpAssocId }
-  ::= { sctpLookupRemPortTable 1 }
-
-SctpLookupRemPortEntry::= SEQUENCE {
-  sctpLookupRemPortStartTime              TimeStamp
-  }
-
-sctpLookupRemPortStartTime OBJECT-TYPE
-  SYNTAX         TimeStamp
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The value of sysUpTime at the time that this row was created.
-
-       As the table will be created after the sctpAssocTable
-       creation, this value could be equal to the sctpAssocStartTime
-       object from the main table."
-  ::= { sctpLookupRemPortEntry 1 }
-
--- BY REMOTE HOST NAME
-
-sctpLookupRemHostNameTable OBJECT-TYPE
-  SYNTAX         SEQUENCE OF SctpLookupRemHostNameEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "With the use of this table, a list of associations with that
-       particular host can be retrieved."
-  ::= { sctpObjects  8 }
-
-sctpLookupRemHostNameEntry OBJECT-TYPE
-  SYNTAX         SctpLookupRemHostNameEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "This table is indexed by remote host name and association ID.
-       Specifying a host name we would get a list of the associations
-       specifying that host name as the remote one.
-
-       Implementors need to be aware that if the size of
-       sctpAssocRemHostName exceeds 115 octets then OIDs of column
-       instances in this table will have more than 128 sub-
-       identifiers and cannot be accessed using SNMPv1, SNMPv2c, or
-       SNMPv3."
-  INDEX         { sctpAssocRemHostName,
-                 sctpAssocId }
-  ::= { sctpLookupRemHostNameTable 1 }
-
-SctpLookupRemHostNameEntry::= SEQUENCE {
-  sctpLookupRemHostNameStartTime               TimeStamp
-  }
-
-sctpLookupRemHostNameStartTime OBJECT-TYPE
-  SYNTAX         TimeStamp
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The value of sysUpTime at the time that this row was created.
-
-       As the table will be created after the sctpAssocTable
-       creation, this value could be equal to the sctpAssocStartTime
-       object from the main table."
-  ::= { sctpLookupRemHostNameEntry 1 }
-
--- BY REMOTE PRIMARY IP ADDRESS
-
-sctpLookupRemPrimIPAddrTable OBJECT-TYPE
-  SYNTAX         SEQUENCE OF SctpLookupRemPrimIPAddrEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "With the use of this table, a list of associations that have
-       the specified IP address as primary within the remote set of
-       active addresses can be retrieved."
-  ::= { sctpObjects  9 }
-
-sctpLookupRemPrimIPAddrEntry OBJECT-TYPE
-  SYNTAX         SctpLookupRemPrimIPAddrEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "This table is indexed by primary address and association ID.
-       Specifying a primary address, we would get a list of the
-       associations that have the specified remote IP address marked
-       as primary.
-       Implementors need to be aware that if the size of
-       sctpAssocRemPrimAddr exceeds 114 octets then OIDs of column
-       instances in this table will have more than 128 sub-
-       identifiers and cannot be accessed using SNMPv1, SNMPv2c, or
-       SNMPv3."
-  INDEX         { sctpAssocRemPrimAddrType,
-                 sctpAssocRemPrimAddr,
-                 sctpAssocId }
-  ::= { sctpLookupRemPrimIPAddrTable 1 }
-
-SctpLookupRemPrimIPAddrEntry::= SEQUENCE {
-  sctpLookupRemPrimIPAddrStartTime             TimeStamp
-  }
-
-sctpLookupRemPrimIPAddrStartTime OBJECT-TYPE
-  SYNTAX         TimeStamp
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The value of SysUpTime at the time that this row was created.
-
-       As the table will be created after the sctpAssocTable
-       creation, this value could be equal to the sctpAssocStartTime
-       object from the main table."
-  ::= { sctpLookupRemPrimIPAddrEntry 1 }
-
--- BY REMOTE IP ADDRESS
-
-sctpLookupRemIPAddrTable OBJECT-TYPE
-  SYNTAX         SEQUENCE OF SctpLookupRemIPAddrEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "With the use of this table, a list of associations that have
-       the specified IP address as one of the remote ones can be
-       retrieved. "
-  ::= { sctpObjects  10 }
-
-sctpLookupRemIPAddrEntry OBJECT-TYPE
-  SYNTAX         SctpLookupRemIPAddrEntry
-  MAX-ACCESS     not-accessible
-  STATUS         current
-  DESCRIPTION
-       "This table is indexed by a remote IP address and association
-       ID. Specifying an IP address we would get a list of the
-       associations that have the specified IP address included
-       within the set of remote IP addresses."
-  INDEX         { sctpAssocRemAddrType,
-                 sctpAssocRemAddr,
-                 sctpAssocId }
-  ::= { sctpLookupRemIPAddrTable 1 }
-
-SctpLookupRemIPAddrEntry::= SEQUENCE {
-
-  sctpLookupRemIPAddrStartTime            TimeStamp
-  }
-
-sctpLookupRemIPAddrStartTime OBJECT-TYPE
-  SYNTAX         TimeStamp
-  MAX-ACCESS     read-only
-  STATUS         current
-  DESCRIPTION
-       "The value of SysUpTime at the time that this row was created.
-
-       As the table will be created after the sctpAssocTable
-       creation, this value could be equal to the sctpAssocStartTime
-       object from the main table."
-  ::= { sctpLookupRemIPAddrEntry 1 }
-
--- 4.1 Conformance Information
-
-sctpMibConformance    OBJECT IDENTIFIER ::= { sctpMIB 2 }
-sctpMibCompliances    OBJECT IDENTIFIER ::= { sctpMibConformance 1 }
-sctpMibGroups         OBJECT IDENTIFIER ::= { sctpMibConformance 2 }
-
--- 4.1.1 Units of conformance
-
---
--- MODULE GROUPS
---
-
-sctpLayerParamsGroup OBJECT-GROUP
-  OBJECTS   { sctpRtoAlgorithm,
-              sctpRtoMin,
-              sctpRtoMax,
-              sctpRtoInitial,
-              sctpMaxAssocs,
-              sctpValCookieLife,
-              sctpMaxInitRetr
-            }
-  STATUS    current
-  DESCRIPTION
-       "Common parameters for the SCTP layer, i.e., for all the
-       associations. They can usually be referred to as configuration
-       parameters."
-  ::= { sctpMibGroups 1 }
-
-sctpStatsGroup OBJECT-GROUP
-  OBJECTS   { sctpCurrEstab,
-              sctpActiveEstabs,
-              sctpPassiveEstabs,
-              sctpAborteds,
-              sctpShutdowns,
-              sctpOutOfBlues,
-              sctpChecksumErrors,
-              sctpOutCtrlChunks,
-              sctpOutOrderChunks,
-              sctpOutUnorderChunks,
-              sctpInCtrlChunks,
-              sctpInOrderChunks,
-              sctpInUnorderChunks,
-              sctpFragUsrMsgs,
-              sctpReasmUsrMsgs,
-              sctpOutSCTPPacks,
-              sctpInSCTPPacks,
-              sctpDiscontinuityTime,
-              sctpAssocT1expireds,
-              sctpAssocT2expireds,
-              sctpAssocRtxChunks,
-              sctpAssocRemAddrRtx
-            }
-  STATUS    current
-  DESCRIPTION
-       "Statistics group. It includes the objects to collect state
-       changes in the SCTP protocol local layer and flow control
-       statistics."
-  ::= { sctpMibGroups 2 }
-
-sctpPerAssocParamsGroup OBJECT-GROUP
-  OBJECTS   { sctpAssocRemHostName,
-              sctpAssocLocalPort,
-              sctpAssocRemPort,
-              sctpAssocRemPrimAddrType,
-              sctpAssocRemPrimAddr,
-              sctpAssocHeartBeatInterval,
-              sctpAssocState,
-              sctpAssocInStreams,
-              sctpAssocOutStreams,
-              sctpAssocMaxRetr,
-              sctpAssocPrimProcess,
-              sctpAssocStartTime,
-              sctpAssocDiscontinuityTime,
-              sctpAssocLocalAddrStartTime,
-              sctpAssocRemAddrActive,
-              sctpAssocRemAddrHBActive,
-              sctpAssocRemAddrRTO,
-              sctpAssocRemAddrMaxPathRtx,
-              sctpAssocRemAddrStartTime
-            }
-  STATUS    current
-  DESCRIPTION
-       "The SCTP group of objects to manage per-association
-       parameters. These variables include all the SCTP basic
-       features."
-  ::= { sctpMibGroups 3 }
-
-sctpPerAssocStatsGroup OBJECT-GROUP
-              OBJECTS
-            { sctpAssocT1expireds,
-              sctpAssocT2expireds,
-              sctpAssocRtxChunks,
-              sctpAssocRemAddrRtx
-            }
-  STATUS    current
-  DESCRIPTION
-       "Per Association Statistics group. It includes the objects to
-       collect flow control statistics per association."
-  ::= { sctpMibGroups 4 }
-
-sctpInverseGroup OBJECT-GROUP
-  OBJECTS   { sctpLookupLocalPortStartTime,
-             sctpLookupRemPortStartTime,
-             sctpLookupRemHostNameStartTime,
-             sctpLookupRemPrimIPAddrStartTime,
-             sctpLookupRemIPAddrStartTime
-            }
-  STATUS    current
-  DESCRIPTION
-       "Objects used in the inverse lookup tables."
-  ::= { sctpMibGroups 5 }
-
--- 4.1.2 Compliance Statements
-
---
--- MODULE COMPLIANCES
---
-
-sctpMibCompliance MODULE-COMPLIANCE
-  STATUS  current
-  DESCRIPTION
-       "The compliance statement for SNMP entities which implement
-       this SCTP MIB Module.
-
-       There are a number of INDEX objects that cannot be represented
-       in the form of OBJECT clauses in SMIv2, but for which we have
-       the following compliance requirements, expressed in OBJECT
-       clause form in this description clause:
-
--- OBJECT        sctpAssocLocalAddrType
--- SYNTAX        InetAddressType {ipv4(1), ipv6(2)}
--- DESCRIPTION
---       It is only required to have IPv4 and IPv6 addresses without
---       zone indices.
---       The address with zone indices is required if an
---       implementation can connect multiple zones.
---
--- OBJECT        sctpAssocLocalAddr
--- SYNTAX        InetAddress (SIZE(4|16))
--- DESCRIPTION
---       An implementation is only required to support globally
---       unique IPv4 and IPv6 addresses.
---
--- OBJECT        sctpAssocRemAddrType
--- SYNTAX        InetAddressType {ipv4(1), ipv6(2)}
--- DESCRIPTION
---       It is only required to have IPv4 and IPv6 addresses without
---       zone indices.
---       The address with zone indices is required if an
---       implementation can connect multiple zones.
---
--- OBJECT        sctpAssocRemAddr
--- SYNTAX        InetAddress (SIZE(4|16))
--- DESCRIPTION
---       An implementation is only required to support globally
---       unique IPv4 and IPv6 addresses.
---
-       "  -- closes DESCRIPTION clause of MODULE-COMPLIANCE
-
-  MODULE  -- this module
-
-       MANDATORY-GROUPS    {  sctpLayerParamsGroup,
-                              sctpPerAssocParamsGroup,
-                              sctpStatsGroup,
-                              sctpPerAssocStatsGroup
-                           }
-
-       OBJECT  sctpAssocRemPrimAddrType
-       SYNTAX  InetAddressType { ipv4(1),
-                                 ipv6(2)
-                               }
-       DESCRIPTION
-            "It is only required to have IPv4 and IPv6 addresses
-            without zone indices.
-
-            The address with zone indices is required if an
-            implementation can connect multiple zones."
-
-       OBJECT  sctpAssocRemPrimAddr
-       SYNTAX  InetAddress (SIZE(4|16))
-       DESCRIPTION
-            "An implementation is only required to support globally
-            unique IPv4 and globally unique IPv6 addresses."
-
-       OBJECT sctpAssocState
-       WRITE-SYNTAX  INTEGER { deleteTCB(9) }
-       MIN-ACCESS read-only
-       DESCRIPTION
-            "Only the deleteTCB(9) value MAY be set by a management
-            station at most. A read-only option is also considered to
-            be compliant with this MIB module description."
-
-       GROUP sctpInverseGroup
-       DESCRIPTION
-            "Objects used in inverse lookup tables. This should be
-            implemented, at the discretion of the implementers, for
-            easier lookups in the association tables"
-  ::= { sctpMibCompliances 1 }
-
-END
diff --git a/mibs/SMUX-MIB.txt b/mibs/SMUX-MIB.txt
deleted file mode 100644
index 1fe3455..0000000
--- a/mibs/SMUX-MIB.txt
+++ /dev/null
@@ -1,160 +0,0 @@
-SMUX-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-        enterprises
-                FROM RFC1155-SMI
-        DisplayString
-                FROM SNMPv2-TC
-        OBJECT-TYPE
-                FROM RFC-1212;
-
-unix    OBJECT IDENTIFIER ::= { enterprises 4 }
-
-smux    OBJECT IDENTIFIER ::= { unix 4 }
-
-smuxPeerTable   OBJECT-TYPE
-        SYNTAX  SEQUENCE OF SmuxPeerEntry
-        ACCESS  not-accessible
-        STATUS  mandatory
-        DESCRIPTION
-            "The SMUX peer table."
-        ::= { smux 1 }
-
-smuxPeerEntry   OBJECT-TYPE
-        SYNTAX  SmuxPeerEntry
-        ACCESS  not-accessible
-        STATUS  mandatory
-        DESCRIPTION
-            "An entry in the SMUX peer table."
-        INDEX   { smuxPindex }
-        ::= { smuxPeerTable 1}
-
-SmuxPeerEntry ::=
-    SEQUENCE {
-        smuxPindex
-            INTEGER,
-        smuxPidentity
-            OBJECT IDENTIFIER,
-        smuxPdescription
-            DisplayString,
-        smuxPstatus
-            INTEGER
-    }
-
-smuxPindex      OBJECT-TYPE
-        SYNTAX  INTEGER
-        ACCESS  read-only
-        STATUS  mandatory
-        DESCRIPTION
-            "An index which uniquely identifies a SMUX peer."
-        ::= { smuxPeerEntry 1 }
-
-smuxPidentity   OBJECT-TYPE
-        SYNTAX  OBJECT IDENTIFIER
-        ACCESS  read-only
-        STATUS  mandatory
-        DESCRIPTION
-            "The authoritative designation for a SMUX peer."
-        ::= { smuxPeerEntry 2 }
-
-smuxPdescription OBJECT-TYPE
-        SYNTAX  DisplayString (SIZE (0..255))
-        ACCESS  read-only
-        STATUS  mandatory
-        DESCRIPTION
-            "A human-readable description of a SMUX peer."
-        ::= { smuxPeerEntry 3 }
-
-smuxPstatus     OBJECT-TYPE
-        SYNTAX  INTEGER { valid(1), invalid(2), connecting(3) }
-        ACCESS  read-write
-        STATUS  mandatory
-        DESCRIPTION
-            "The type of SMUX peer.
-
-            Setting this object to the value invalid(2) has
-            the effect of invaliding the corresponding entry
-            in the smuxPeerTable.  It is an implementation-
-            specific matter as to whether the agent removes an
-            invalidated entry from the table.  Accordingly,
-            management stations must be prepared to receive
-            tabular information from agents that correspond to
-            entries not currently in use.  Proper
-            interpretation of such entries requires
-            examination of the relative smuxPstatus object."
-        ::= { smuxPeerEntry 4 }
-
-smuxTreeTable   OBJECT-TYPE
-        SYNTAX  SEQUENCE OF SmuxTreeEntry
-        ACCESS  not-accessible
-        STATUS  mandatory
-        DESCRIPTION
-            "The SMUX tree table."
-        ::= { smux 2 }
-
-smuxTreeEntry   OBJECT-TYPE
-        SYNTAX  SmuxTreeEntry
-        ACCESS  not-accessible
-        STATUS  mandatory
-        DESCRIPTION
-            "An entry in the SMUX tree table."
-        INDEX   { smuxTsubtree, smuxTpriority }
-        ::= { smuxTreeTable 1}
-
-SmuxTreeEntry ::=
-    SEQUENCE {
-        smuxTsubtree
-            OBJECT IDENTIFIER,
-        smuxTpriority
-            INTEGER,
-        smuxTindex
-            INTEGER,
-        smuxTstatus
-            INTEGER
-    }
-
-smuxTsubtree    OBJECT-TYPE
-        SYNTAX  OBJECT IDENTIFIER
-        ACCESS  read-only
-        STATUS  mandatory
-        DESCRIPTION
-            "The MIB subtree being exported by a SMUX peer."
-        ::= { smuxTreeEntry 1 }
-
-smuxTpriority OBJECT-TYPE
-        SYNTAX  INTEGER (0..'07fffffff'h)
-        ACCESS  read-only
-        STATUS  mandatory
-        DESCRIPTION
-            "The SMUX peer's priority when exporting the MIB
-            subtree."
-        ::= { smuxTreeEntry 2 }
-
-smuxTindex OBJECT-TYPE
-        SYNTAX  INTEGER
-        ACCESS  read-only
-        STATUS  mandatory
-        DESCRIPTION
-            "The SMUX peer's identity."
-        ::= { smuxTreeEntry 3 }
-
-smuxTstatus     OBJECT-TYPE
-        SYNTAX  INTEGER { valid(1), invalid(2) }
-        ACCESS  read-write
-        STATUS  mandatory
-        DESCRIPTION
-            "The type of SMUX tree.
-
-            Setting this object to the value invalid(2) has
-            the effect of invaliding the corresponding entry
-            in the smuxTreeTable.  It is an implementation-
-            specific matter as to whether the agent removes an
-            invalidated entry from the table.  Accordingly,
-            management stations must be prepared to receive
-            tabular information from agents that correspond to
-            entries not currently in use.  Proper
-            interpretation of such entries requires
-            examination of the relative smuxTstatus object."
-        ::= { smuxTreeEntry 4 }
-
-END
diff --git a/mibs/SNMP-COMMUNITY-MIB.txt b/mibs/SNMP-COMMUNITY-MIB.txt
deleted file mode 100644
index bc3d4d2..0000000
--- a/mibs/SNMP-COMMUNITY-MIB.txt
+++ /dev/null
@@ -1,429 +0,0 @@
-SNMP-COMMUNITY-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    IpAddress,
-    MODULE-IDENTITY,
-    OBJECT-TYPE,
-    Integer32,
-    snmpModules
-        FROM SNMPv2-SMI
-    RowStatus,
-    StorageType
-        FROM SNMPv2-TC
-    SnmpAdminString,
-    SnmpEngineID
-        FROM SNMP-FRAMEWORK-MIB
-    SnmpTagValue,
-    snmpTargetAddrEntry
-        FROM SNMP-TARGET-MIB
-    MODULE-COMPLIANCE,
-    OBJECT-GROUP
-        FROM SNMPv2-CONF;
-
-snmpCommunityMIB MODULE-IDENTITY
-    LAST-UPDATED "200003060000Z"          -- 6 Mar 2000, midnight
-    ORGANIZATION "SNMPv3 Working Group"
-    CONTACT-INFO "WG-email:   snmpv3 at lists.tislabs.com
-                  Subscribe:  majordomo at lists.tislabs.com
-                              In msg body:  subscribe snmpv3
-
-                  Chair:      Russ Mundy
-                              TIS Labs at Network Associates
-                  Postal:     3060 Washington Rd
-                              Glenwood MD 21738
-                              USA
-                  Email:      mundy at tislabs.com
-                  Phone:      +1-301-854-6889
-
-                  Co-editor:  Rob Frye
-                              CoSine Communications
-                  Postal:     1200 Bridge Parkway
-                              Redwood City, CA 94065
-                              USA
-                  E-mail:     rfrye at cosinecom.com
-                  Phone:      +1 703 725 1130
-
-                  Co-editor:  David B. Levi
-                              Nortel Networks
-                  Postal:     3505 Kesterwood Drive
-                              Knoxville, TN 37918
-                  E-mail:     dlevi at nortelnetworks.com
-                  Phone:      +1 423 686 0432
-
-                  Co-editor:  Shawn A. Routhier
-                              Integrated Systems Inc.
-                  Postal:     333 North Ave 4th Floor
-                              Wakefield, MA 01880
-                  E-mail:     sar at epilogue.com
-                  Phone:      +1 781 245 0804
-
-                  Co-editor:  Bert Wijnen
-                              Lucent Technologies
-                  Postal:     Schagen 33
-                              3461 GL Linschoten
-                              Netherlands
-                  Email:      bwijnen at lucent.com
-                  Phone:      +31-348-407-775
-                 "
-        DESCRIPTION
-            "This MIB module defines objects to help support coexistence
-             between SNMPv1, SNMPv2c, and SNMPv3."
-        REVISION "200003060000Z" -- 6 Mar 2000
-        DESCRIPTION "This version published as RFC 2576."
-        REVISION "199905130000Z" -- 13 May 1999
-        DESCRIPTION "The Initial Revision"
-    ::= { snmpModules 18 }
-
--- Administrative assignments ****************************************
-
-snmpCommunityMIBObjects     OBJECT IDENTIFIER ::= { snmpCommunityMIB 1 }
-snmpCommunityMIBConformance OBJECT IDENTIFIER ::= { snmpCommunityMIB 2 }
-
---
--- The snmpCommunityTable contains a database of community strings.
--- This table provides mappings between community strings, and the
-
--- parameters required for View-based Access Control.
---
-
-snmpCommunityTable OBJECT-TYPE
-    SYNTAX       SEQUENCE OF SnmpCommunityEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION
-        "The table of community strings configured in the SNMP
-         engine's Local Configuration Datastore (LCD)."
-    ::= { snmpCommunityMIBObjects 1 }
-
-snmpCommunityEntry OBJECT-TYPE
-    SYNTAX       SnmpCommunityEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION
-        "Information about a particular community string."
-    INDEX       { IMPLIED snmpCommunityIndex }
-    ::= { snmpCommunityTable 1 }
-
-SnmpCommunityEntry ::= SEQUENCE {
-    snmpCommunityIndex               SnmpAdminString,
-    snmpCommunityName                OCTET STRING,
-    snmpCommunitySecurityName        SnmpAdminString,
-    snmpCommunityContextEngineID     SnmpEngineID,
-    snmpCommunityContextName         SnmpAdminString,
-    snmpCommunityTransportTag        SnmpTagValue,
-    snmpCommunityStorageType         StorageType,
-    snmpCommunityStatus              RowStatus
-}
-
-snmpCommunityIndex OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(1..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The unique index value of a row in this table."
-    ::= { snmpCommunityEntry 1 }
-
-snmpCommunityName OBJECT-TYPE
-    SYNTAX       OCTET STRING
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION
-        "The community string for which a row in this table
-         represents a configuration."
-    ::= { snmpCommunityEntry 2 }
-
-snmpCommunitySecurityName OBJECT-TYPE
-    SYNTAX       SnmpAdminString (SIZE(1..32))
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION
-        "A human readable string representing the corresponding
-         value of snmpCommunityName in a Security Model
-         independent format."
-    ::= { snmpCommunityEntry 3 }
-
-snmpCommunityContextEngineID OBJECT-TYPE
-    SYNTAX       SnmpEngineID
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION
-        "The contextEngineID indicating the location of the
-         context in which management information is accessed
-         when using the community string specified by the
-         corresponding instance of snmpCommunityName.
-
-         The default value is the snmpEngineID of the entity in
-         which this object is instantiated."
-    ::= { snmpCommunityEntry 4 }
-
-snmpCommunityContextName OBJECT-TYPE
-    SYNTAX       SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION
-        "The context in which management information is accessed
-         when using the community string specified by the corresponding
-         instance of snmpCommunityName."
-    DEFVAL      { ''H }   -- the empty string
-    ::= { snmpCommunityEntry 5 }
-
-snmpCommunityTransportTag OBJECT-TYPE
-    SYNTAX       SnmpTagValue
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION
-        "This object specifies a set of transport endpoints
-         from which a command responder application will accept
-         management requests.  If a management request containing
-         this community is received on a transport endpoint other
-         than the transport endpoints identified by this object,
-         the request is deemed unauthentic.
-
-         The transports identified by this object are specified
-
-         in the snmpTargetAddrTable.  Entries in that table
-         whose snmpTargetAddrTagList contains this tag value
-         are identified.
-
-         If the value of this object has zero-length, transport
-         endpoints are not checked when authenticating messages
-         containing this community string."
-    DEFVAL      { ''H }   -- the empty string
-    ::= { snmpCommunityEntry 6 }
-
-snmpCommunityStorageType OBJECT-TYPE
-    SYNTAX       StorageType
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION
-        "The storage type for this conceptual row in the
-         snmpCommunityTable.  Conceptual rows having the value
-         'permanent' need not allow write-access to any
-         columnar object in the row."
-    ::= { snmpCommunityEntry 7 }
-
-snmpCommunityStatus OBJECT-TYPE
-    SYNTAX       RowStatus
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION
-        "The status of this conceptual row in the snmpCommunityTable.
-
-         An entry in this table is not qualified for activation
-         until instances of all corresponding columns have been
-         initialized, either through default values, or through
-         Set operations.  The snmpCommunityName and
-         snmpCommunitySecurityName objects must be explicitly set.
-
-         There is no restriction on setting columns in this table
-         when the value of snmpCommunityStatus is active(1)."
-    ::= { snmpCommunityEntry 8 }
-
---
--- The snmpTargetAddrExtTable
---
-
-snmpTargetAddrExtTable OBJECT-TYPE
-    SYNTAX       SEQUENCE OF SnmpTargetAddrExtEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION
-        "The table of mask and mms values associated with the
-
-         snmpTargetAddrTable.
-
-         The snmpTargetAddrExtTable augments the
-         snmpTargetAddrTable with a transport address mask value
-         and a maximum message size value.  The transport address
-         mask allows entries in the snmpTargetAddrTable to define
-         a set of addresses instead of just a single address.
-         The maximum message size value allows the maximum
-         message size of another SNMP entity to be configured for
-         use in SNMPv1 (and SNMPv2c) transactions, where the
-         message format does not specify a maximum message size."
-    ::= { snmpCommunityMIBObjects 2 }
-
-snmpTargetAddrExtEntry OBJECT-TYPE
-    SYNTAX       SnmpTargetAddrExtEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION
-        "Information about a particular mask and mms value."
-    AUGMENTS       { snmpTargetAddrEntry }
-    ::= { snmpTargetAddrExtTable 1 }
-
-SnmpTargetAddrExtEntry ::= SEQUENCE {
-    snmpTargetAddrTMask              OCTET STRING,
-    snmpTargetAddrMMS                Integer32
-}
-
-snmpTargetAddrTMask OBJECT-TYPE
-    SYNTAX      OCTET STRING (SIZE (0..255))
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The mask value associated with an entry in the
-         snmpTargetAddrTable.  The value of this object must
-         have the same length as the corresponding instance of
-         snmpTargetAddrTAddress, or must have length 0.  An
-         attempt to set it to any other value will result in
-         an inconsistentValue error.
-
-         The value of this object allows an entry in the
-         snmpTargetAddrTable to specify multiple addresses.
-         The mask value is used to select which bits of
-         a transport address must match bits of the corresponding
-         instance of snmpTargetAddrTAddress, in order for the
-         transport address to match a particular entry in the
-         snmpTargetAddrTable.  Bits which are 1 in the mask
-         value indicate bits in the transport address which
-         must match bits in the snmpTargetAddrTAddress value.
-
-         Bits which are 0 in the mask indicate bits in the
-         transport address which need not match.  If the
-         length of the mask is 0, the mask should be treated
-         as if all its bits were 1 and its length were equal
-         to the length of the corresponding value of
-         snmpTargetAddrTable.
-
-         This object may not be modified while the value of the
-         corresponding instance of snmpTargetAddrRowStatus is
-         active(1).  An attempt to set this object in this case
-         will result in an inconsistentValue error."
-    DEFVAL { ''H }
-    ::= { snmpTargetAddrExtEntry 1 }
-
-snmpTargetAddrMMS OBJECT-TYPE
-    SYNTAX      Integer32 (0|484..2147483647)
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The maximum message size value associated with an entry
-         in the snmpTargetAddrTable."
-    DEFVAL { 484 }
-    ::= { snmpTargetAddrExtEntry 2 }
-
---
--- The snmpTrapAddress and snmpTrapCommunity objects are included
--- in notifications that are forwarded by a proxy, which were
--- originally received as SNMPv1 Trap messages.
---
-
-snmpTrapAddress OBJECT-TYPE
-    SYNTAX      IpAddress
-    MAX-ACCESS  accessible-for-notify
-    STATUS      current
-    DESCRIPTION
-        "The value of the agent-addr field of a Trap PDU which
-         is forwarded by a proxy forwarder application using
-         an SNMP version other than SNMPv1.  The value of this
-         object SHOULD contain the value of the agent-addr field
-         from the original Trap PDU as generated by an SNMPv1
-         agent."
-    ::= { snmpCommunityMIBObjects 3 }
-
-snmpTrapCommunity OBJECT-TYPE
-    SYNTAX      OCTET STRING
-    MAX-ACCESS  accessible-for-notify
-    STATUS      current
-    DESCRIPTION
-        "The value of the community string field of an SNMPv1
-         message containing a Trap PDU which is forwarded by a
-         a proxy forwarder application using an SNMP version
-         other than SNMPv1.  The value of this object SHOULD
-         contain the value of the community string field from
-         the original SNMPv1 message containing a Trap PDU as
-         generated by an SNMPv1 agent."
-    ::= { snmpCommunityMIBObjects 4 }
-
--- Conformance Information *******************************************
-
-snmpCommunityMIBCompliances OBJECT IDENTIFIER
-                            ::= { snmpCommunityMIBConformance 1 }
-snmpCommunityMIBGroups      OBJECT IDENTIFIER
-                            ::= { snmpCommunityMIBConformance 2 }
-
--- Compliance statements
-
-snmpCommunityMIBCompliance MODULE-COMPLIANCE
-    STATUS       current
-    DESCRIPTION
-        "The compliance statement for SNMP engines which
-         implement the SNMP-COMMUNITY-MIB."
-
-    MODULE       -- this module
-        MANDATORY-GROUPS { snmpCommunityGroup }
-
-        OBJECT           snmpCommunityName
-        MIN-ACCESS       read-only
-        DESCRIPTION     "Write access is not required."
-
-        OBJECT           snmpCommunitySecurityName
-        MIN-ACCESS       read-only
-        DESCRIPTION     "Write access is not required."
-
-        OBJECT           snmpCommunityContextEngineID
-        MIN-ACCESS       read-only
-        DESCRIPTION     "Write access is not required."
-
-        OBJECT           snmpCommunityContextName
-        MIN-ACCESS       read-only
-        DESCRIPTION     "Write access is not required."
-
-        OBJECT           snmpCommunityTransportTag
-        MIN-ACCESS       read-only
-        DESCRIPTION     "Write access is not required."
-
-        OBJECT           snmpCommunityStorageType
-        MIN-ACCESS       read-only
-        DESCRIPTION     "Write access is not required."
-
-        OBJECT           snmpCommunityStatus
-        MIN-ACCESS       read-only
-        DESCRIPTION     "Write access is not required."
-    ::= { snmpCommunityMIBCompliances 1 }
-
-snmpProxyTrapForwardCompliance MODULE-COMPLIANCE
-    STATUS       current
-    DESCRIPTION
-        "The compliance statement for SNMP engines which
-         contain a proxy forwarding application which is
-         capable of forwarding SNMPv1 traps using SNMPv2c
-         or SNMPv3."
-    MODULE       -- this module
-        MANDATORY-GROUPS { snmpProxyTrapForwardGroup }
-    ::= { snmpCommunityMIBCompliances 2 }
-
-snmpCommunityGroup OBJECT-GROUP
-    OBJECTS {
-        snmpCommunityName,
-        snmpCommunitySecurityName,
-        snmpCommunityContextEngineID,
-        snmpCommunityContextName,
-        snmpCommunityTransportTag,
-        snmpCommunityStorageType,
-        snmpCommunityStatus,
-        snmpTargetAddrTMask,
-        snmpTargetAddrMMS
-    }
-    STATUS       current
-    DESCRIPTION
-        "A collection of objects providing for configuration
-         of community strings for SNMPv1 (and SNMPv2c) usage."
-    ::= { snmpCommunityMIBGroups 1 }
-
-snmpProxyTrapForwardGroup OBJECT-GROUP
-    OBJECTS {
-        snmpTrapAddress,
-        snmpTrapCommunity
-    }
-    STATUS       current
-    DESCRIPTION
-        "Objects which are used by proxy forwarding applications
-         when translating traps between SNMP versions.  These are
-         used to preserve SNMPv1-specific information when
-
-         translating to SNMPv2c or SNMPv3."
-    ::= { snmpCommunityMIBGroups 3 }
-
-END
diff --git a/mibs/SNMP-FRAMEWORK-MIB.txt b/mibs/SNMP-FRAMEWORK-MIB.txt
deleted file mode 100644
index aa273c2..0000000
--- a/mibs/SNMP-FRAMEWORK-MIB.txt
+++ /dev/null
@@ -1,526 +0,0 @@
-SNMP-FRAMEWORK-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE,
-    OBJECT-IDENTITY,
-    snmpModules                           FROM SNMPv2-SMI
-    TEXTUAL-CONVENTION                    FROM SNMPv2-TC
-    MODULE-COMPLIANCE, OBJECT-GROUP       FROM SNMPv2-CONF;
-
-snmpFrameworkMIB MODULE-IDENTITY
-    LAST-UPDATED "200210140000Z"
-    ORGANIZATION "SNMPv3 Working Group"
-    CONTACT-INFO "WG-EMail:   snmpv3 at lists.tislabs.com
-                  Subscribe:  snmpv3-request at lists.tislabs.com
-
-                  Co-Chair:   Russ Mundy
-                              Network Associates Laboratories
-                  postal:     15204 Omega Drive, Suite 300
-                              Rockville, MD 20850-4601
-                              USA
-                  EMail:      mundy at tislabs.com
-                  phone:      +1 301-947-7107
-
-                  Co-Chair &
-                  Co-editor:  David Harrington
-                              Enterasys Networks
-                  postal:     35 Industrial Way
-                              P. O. Box 5005
-                              Rochester, New Hampshire 03866-5005
-                              USA
-                  EMail:      dbh at enterasys.com
-                  phone:      +1 603-337-2614
-
-                  Co-editor:  Randy Presuhn
-                              BMC Software, Inc.
-                  postal:     2141 North First Street
-                              San Jose, California 95131
-                              USA
-                  EMail:      randy_presuhn at bmc.com
-                  phone:      +1 408-546-1006
-
-                  Co-editor:  Bert Wijnen
-                              Lucent Technologies
-                  postal:     Schagen 33
-                              3461 GL Linschoten
-                              Netherlands
-
-                  EMail:      bwijnen at lucent.com
-                  phone:      +31 348-680-485
-                    "
-       DESCRIPTION  "The SNMP Management Architecture MIB
-
-                     Copyright (C) The Internet Society (2002). This
-                     version of this MIB module is part of RFC 3411;
-                     see the RFC itself for full legal notices.
-                    "
-
-       REVISION     "200210140000Z"         -- 14 October 2002
-       DESCRIPTION  "Changes in this revision:
-                     - Updated various administrative information.
-                     - Corrected some typos.
-                     - Corrected typo in description of SnmpEngineID
-                       that led to range overlap for 127.
-                     - Changed '255a' to '255t' in definition of
-                       SnmpAdminString to align with current SMI.
-                     - Reworded 'reserved' for value zero in
-                       DESCRIPTION of SnmpSecurityModel.
-                     - The algorithm for allocating security models
-                       should give 256 per enterprise block, rather
-                       than 255.
-                     - The example engine ID of 'abcd' is not
-                       legal. Replaced with '800002b804616263'H based
-                       on example enterprise 696, string 'abc'.
-                     - Added clarification that engineID should
-                       persist across re-initializations.
-                     This revision published as RFC 3411.
-                    "
-       REVISION     "199901190000Z"         -- 19 January 1999
-       DESCRIPTION  "Updated editors' addresses, fixed typos.
-                     Published as RFC 2571.
-                    "
-       REVISION     "199711200000Z"         -- 20 November 1997
-       DESCRIPTION  "The initial version, published in RFC 2271.
-                    "
-       ::= { snmpModules 10 }
-
-   -- Textual Conventions used in the SNMP Management Architecture ***
-
-SnmpEngineID ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION "An SNMP engine's administratively-unique identifier.
-                 Objects of this type are for identification, not for
-                 addressing, even though it is possible that an
-                 address may have been used in the generation of
-                 a specific value.
-
-                 The value for this object may not be all zeros or
-                 all 'ff'H or the empty (zero length) string.
-
-                 The initial value for this object may be configured
-                 via an operator console entry or via an algorithmic
-                 function.  In the latter case, the following
-                 example algorithm is recommended.
-
-                 In cases where there are multiple engines on the
-                 same system, the use of this algorithm is NOT
-                 appropriate, as it would result in all of those
-                 engines ending up with the same ID value.
-
-                 1) The very first bit is used to indicate how the
-                    rest of the data is composed.
-
-                    0 - as defined by enterprise using former methods
-                        that existed before SNMPv3. See item 2 below.
-
-                    1 - as defined by this architecture, see item 3
-                        below.
-
-                    Note that this allows existing uses of the
-                    engineID (also known as AgentID [RFC1910]) to
-                    co-exist with any new uses.
-
-                 2) The snmpEngineID has a length of 12 octets.
-
-                    The first four octets are set to the binary
-                    equivalent of the agent's SNMP management
-                    private enterprise number as assigned by the
-                    Internet Assigned Numbers Authority (IANA).
-                    For example, if Acme Networks has been assigned
-                    { enterprises 696 }, the first four octets would
-                    be assigned '000002b8'H.
-
-                    The remaining eight octets are determined via
-                    one or more enterprise-specific methods. Such
-                    methods must be designed so as to maximize the
-                    possibility that the value of this object will
-                    be unique in the agent's administrative domain.
-                    For example, it may be the IP address of the SNMP
-                    entity, or the MAC address of one of the
-                    interfaces, with each address suitably padded
-                    with random octets.  If multiple methods are
-                    defined, then it is recommended that the first
-                    octet indicate the method being used and the
-                    remaining octets be a function of the method.
-
-                 3) The length of the octet string varies.
-
-                    The first four octets are set to the binary
-                    equivalent of the agent's SNMP management
-                    private enterprise number as assigned by the
-                    Internet Assigned Numbers Authority (IANA).
-                    For example, if Acme Networks has been assigned
-                    { enterprises 696 }, the first four octets would
-                    be assigned '000002b8'H.
-
-                    The very first bit is set to 1. For example, the
-                    above value for Acme Networks now changes to be
-                    '800002b8'H.
-
-                    The fifth octet indicates how the rest (6th and
-                    following octets) are formatted. The values for
-                    the fifth octet are:
-
-                      0     - reserved, unused.
-
-                      1     - IPv4 address (4 octets)
-                              lowest non-special IP address
-
-                      2     - IPv6 address (16 octets)
-                              lowest non-special IP address
-
-                      3     - MAC address (6 octets)
-                              lowest IEEE MAC address, canonical
-                              order
-
-                      4     - Text, administratively assigned
-                              Maximum remaining length 27
-
-                      5     - Octets, administratively assigned
-                              Maximum remaining length 27
-
-                      6-127 - reserved, unused
-
-                    128-255 - as defined by the enterprise
-                              Maximum remaining length 27
-                "
-    SYNTAX       OCTET STRING (SIZE(5..32))
-
-SnmpSecurityModel ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION "An identifier that uniquely identifies a
-                 Security Model of the Security Subsystem within
-                 this SNMP Management Architecture.
-
-                 The values for securityModel are allocated as
-                 follows:
-
-                 - The zero value does not identify any particular
-                   security model.
-
-                 - Values between 1 and 255, inclusive, are reserved
-                   for standards-track Security Models and are
-                   managed by the Internet Assigned Numbers Authority
-                   (IANA).
-                 - Values greater than 255 are allocated to
-                   enterprise-specific Security Models.  An
-                   enterprise-specific securityModel value is defined
-                   to be:
-
-                   enterpriseID * 256 + security model within
-                   enterprise
-
-                   For example, the fourth Security Model defined by
-                   the enterprise whose enterpriseID is 1 would be
-                   259.
-
-                 This scheme for allocation of securityModel
-                 values allows for a maximum of 255 standards-
-                 based Security Models, and for a maximum of
-                 256 Security Models per enterprise.
-
-                 It is believed that the assignment of new
-                 securityModel values will be rare in practice
-                 because the larger the number of simultaneously
-                 utilized Security Models, the larger the
-                 chance that interoperability will suffer.
-                 Consequently, it is believed that such a range
-                 will be sufficient.  In the unlikely event that
-                 the standards committee finds this number to be
-                 insufficient over time, an enterprise number
-                 can be allocated to obtain an additional 256
-                 possible values.
-
-                 Note that the most significant bit must be zero;
-                 hence, there are 23 bits allocated for various
-                 organizations to design and define non-standard
-
-                 securityModels.  This limits the ability to
-                 define new proprietary implementations of Security
-                 Models to the first 8,388,608 enterprises.
-
-                 It is worthwhile to note that, in its encoded
-                 form, the securityModel value will normally
-                 require only a single byte since, in practice,
-                 the leftmost bits will be zero for most messages
-                 and sign extension is suppressed by the encoding
-                 rules.
-
-                 As of this writing, there are several values
-                 of securityModel defined for use with SNMP or
-                 reserved for use with supporting MIB objects.
-                 They are as follows:
-
-                     0  reserved for 'any'
-                     1  reserved for SNMPv1
-                     2  reserved for SNMPv2c
-                     3  User-Based Security Model (USM)
-                "
-    SYNTAX       INTEGER(0 .. 2147483647)
-
-SnmpMessageProcessingModel ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION "An identifier that uniquely identifies a Message
-                 Processing Model of the Message Processing
-                 Subsystem within this SNMP Management Architecture.
-
-                 The values for messageProcessingModel are
-                 allocated as follows:
-
-                 - Values between 0 and 255, inclusive, are
-                   reserved for standards-track Message Processing
-                   Models and are managed by the Internet Assigned
-                   Numbers Authority (IANA).
-
-                 - Values greater than 255 are allocated to
-                   enterprise-specific Message Processing Models.
-                   An enterprise messageProcessingModel value is
-                   defined to be:
-
-                   enterpriseID * 256 +
-                        messageProcessingModel within enterprise
-
-                   For example, the fourth Message Processing Model
-                   defined by the enterprise whose enterpriseID
-
-                   is 1 would be 259.
-
-                 This scheme for allocating messageProcessingModel
-                 values allows for a maximum of 255 standards-
-                 based Message Processing Models, and for a
-                 maximum of 256 Message Processing Models per
-                 enterprise.
-
-                 It is believed that the assignment of new
-                 messageProcessingModel values will be rare
-                 in practice because the larger the number of
-                 simultaneously utilized Message Processing Models,
-                 the larger the chance that interoperability
-                 will suffer. It is believed that such a range
-                 will be sufficient.  In the unlikely event that
-                 the standards committee finds this number to be
-                 insufficient over time, an enterprise number
-                 can be allocated to obtain an additional 256
-                 possible values.
-
-                 Note that the most significant bit must be zero;
-                 hence, there are 23 bits allocated for various
-                 organizations to design and define non-standard
-                 messageProcessingModels.  This limits the ability
-                 to define new proprietary implementations of
-                 Message Processing Models to the first 8,388,608
-                 enterprises.
-
-                 It is worthwhile to note that, in its encoded
-                 form, the messageProcessingModel value will
-                 normally require only a single byte since, in
-                 practice, the leftmost bits will be zero for
-                 most messages and sign extension is suppressed
-                 by the encoding rules.
-
-                 As of this writing, there are several values of
-                 messageProcessingModel defined for use with SNMP.
-                 They are as follows:
-
-                     0  reserved for SNMPv1
-                     1  reserved for SNMPv2c
-                     2  reserved for SNMPv2u and SNMPv2*
-                     3  reserved for SNMPv3
-                "
-    SYNTAX       INTEGER(0 .. 2147483647)
-
-SnmpSecurityLevel ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION "A Level of Security at which SNMP messages can be
-                 sent or with which operations are being processed;
-                 in particular, one of:
-
-                   noAuthNoPriv - without authentication and
-                                  without privacy,
-                   authNoPriv   - with authentication but
-                                  without privacy,
-                   authPriv     - with authentication and
-                                  with privacy.
-
-                 These three values are ordered such that
-                 noAuthNoPriv is less than authNoPriv and
-                 authNoPriv is less than authPriv.
-                "
-    SYNTAX       INTEGER { noAuthNoPriv(1),
-                           authNoPriv(2),
-                           authPriv(3)
-                         }
-
-SnmpAdminString ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "255t"
-    STATUS       current
-    DESCRIPTION "An octet string containing administrative
-                 information, preferably in human-readable form.
-
-                 To facilitate internationalization, this
-                 information is represented using the ISO/IEC
-                 IS 10646-1 character set, encoded as an octet
-                 string using the UTF-8 transformation format
-                 described in [RFC2279].
-
-                 Since additional code points are added by
-                 amendments to the 10646 standard from time
-                 to time, implementations must be prepared to
-                 encounter any code point from 0x00000000 to
-                 0x7fffffff.  Byte sequences that do not
-                 correspond to the valid UTF-8 encoding of a
-                 code point or are outside this range are
-                 prohibited.
-
-                 The use of control codes should be avoided.
-
-                 When it is necessary to represent a newline,
-                 the control code sequence CR LF should be used.
-
-                 The use of leading or trailing white space should
-                 be avoided.
-
-                 For code points not directly supported by user
-                 interface hardware or software, an alternative
-                 means of entry and display, such as hexadecimal,
-                 may be provided.
-
-                 For information encoded in 7-bit US-ASCII,
-                 the UTF-8 encoding is identical to the
-                 US-ASCII encoding.
-
-                 UTF-8 may require multiple bytes to represent a
-                 single character / code point; thus the length
-                 of this object in octets may be different from
-                 the number of characters encoded.  Similarly,
-                 size constraints refer to the number of encoded
-                 octets, not the number of characters represented
-                 by an encoding.
-
-                 Note that when this TC is used for an object that
-                 is used or envisioned to be used as an index, then
-                 a SIZE restriction MUST be specified so that the
-                 number of sub-identifiers for any object instance
-                 does not exceed the limit of 128, as defined by
-                 [RFC3416].
-
-                 Note that the size of an SnmpAdminString object is
-                 measured in octets, not characters.
-                "
-    SYNTAX       OCTET STRING (SIZE (0..255))
-
--- Administrative assignments ***************************************
-
-snmpFrameworkAdmin
-    OBJECT IDENTIFIER ::= { snmpFrameworkMIB 1 }
-snmpFrameworkMIBObjects
-    OBJECT IDENTIFIER ::= { snmpFrameworkMIB 2 }
-snmpFrameworkMIBConformance
-    OBJECT IDENTIFIER ::= { snmpFrameworkMIB 3 }
-
--- the snmpEngine Group ********************************************
-
-snmpEngine OBJECT IDENTIFIER ::= { snmpFrameworkMIBObjects 1 }
-
-snmpEngineID     OBJECT-TYPE
-    SYNTAX       SnmpEngineID
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "An SNMP engine's administratively-unique identifier.
-
-                 This information SHOULD be stored in non-volatile
-                 storage so that it remains constant across
-                 re-initializations of the SNMP engine.
-                "
-    ::= { snmpEngine 1 }
-
-snmpEngineBoots  OBJECT-TYPE
-    SYNTAX       INTEGER (1..2147483647)
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "The number of times that the SNMP engine has
-                 (re-)initialized itself since snmpEngineID
-                 was last configured.
-                "
-    ::= { snmpEngine 2 }
-
-snmpEngineTime   OBJECT-TYPE
-    SYNTAX       INTEGER (0..2147483647)
-    UNITS        "seconds"
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "The number of seconds since the value of
-                 the snmpEngineBoots object last changed.
-                 When incrementing this object's value would
-                 cause it to exceed its maximum,
-                 snmpEngineBoots is incremented as if a
-                 re-initialization had occurred, and this
-                 object's value consequently reverts to zero.
-                "
-    ::= { snmpEngine 3 }
-
-snmpEngineMaxMessageSize OBJECT-TYPE
-    SYNTAX       INTEGER (484..2147483647)
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "The maximum length in octets of an SNMP message
-                 which this SNMP engine can send or receive and
-                 process, determined as the minimum of the maximum
-                 message size values supported among all of the
-                 transports available to and supported by the engine.
-                "
-    ::= { snmpEngine 4 }
-
--- Registration Points for Authentication and Privacy Protocols **
-
-snmpAuthProtocols OBJECT-IDENTITY
-    STATUS        current
-    DESCRIPTION  "Registration point for standards-track
-                  authentication protocols used in SNMP Management
-                  Frameworks.
-                 "
-    ::= { snmpFrameworkAdmin 1 }
-
-snmpPrivProtocols OBJECT-IDENTITY
-    STATUS        current
-    DESCRIPTION  "Registration point for standards-track privacy
-                  protocols used in SNMP Management Frameworks.
-                 "
-    ::= { snmpFrameworkAdmin 2 }
-
--- Conformance information ******************************************
-
-snmpFrameworkMIBCompliances
-               OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 1}
-snmpFrameworkMIBGroups
-               OBJECT IDENTIFIER ::= {snmpFrameworkMIBConformance 2}
-
--- compliance statements
-
-snmpFrameworkMIBCompliance MODULE-COMPLIANCE
-    STATUS       current
-    DESCRIPTION "The compliance statement for SNMP engines which
-                 implement the SNMP Management Framework MIB.
-                "
-    MODULE    -- this module
-        MANDATORY-GROUPS { snmpEngineGroup }
-    ::= { snmpFrameworkMIBCompliances 1 }
-
--- units of conformance
-
-snmpEngineGroup OBJECT-GROUP
-    OBJECTS {
-              snmpEngineID,
-              snmpEngineBoots,
-              snmpEngineTime,
-              snmpEngineMaxMessageSize
-            }
-    STATUS       current
-    DESCRIPTION "A collection of objects for identifying and
-                 determining the configuration and current timeliness
-
-                 values of an SNMP engine.
-                "
-    ::= { snmpFrameworkMIBGroups 1 }
-
-END
diff --git a/mibs/SNMP-MPD-MIB.txt b/mibs/SNMP-MPD-MIB.txt
deleted file mode 100644
index d4c605b..0000000
--- a/mibs/SNMP-MPD-MIB.txt
+++ /dev/null
@@ -1,145 +0,0 @@
-SNMP-MPD-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-COMPLIANCE, OBJECT-GROUP         FROM SNMPv2-CONF
-    MODULE-IDENTITY, OBJECT-TYPE,
-    snmpModules, Counter32                  FROM SNMPv2-SMI;
-
-snmpMPDMIB MODULE-IDENTITY
-    LAST-UPDATED "200210140000Z"
-    ORGANIZATION "SNMPv3 Working Group"
-    CONTACT-INFO "WG-EMail:   snmpv3 at lists.tislabs.com
-                  Subscribe:  snmpv3-request at lists.tislabs.com
-
-                  Co-Chair:   Russ Mundy
-                              Network Associates Laboratories
-                  postal:     15204 Omega Drive, Suite 300
-                              Rockville, MD 20850-4601
-                              USA
-
-                  EMail:      mundy at tislabs.com
-                  phone:      +1 301-947-7107
-
-                  Co-Chair &
-                  Co-editor:  David Harrington
-                              Enterasys Networks
-                  postal:     35 Industrial Way
-                              P. O. Box 5005
-                              Rochester NH 03866-5005
-                              USA
-                  EMail:      dbh at enterasys.com
-                  phone:      +1 603-337-2614
-
-                  Co-editor:  Jeffrey Case
-                              SNMP Research, Inc.
-                  postal:     3001 Kimberlin Heights Road
-                              Knoxville, TN 37920-9716
-                              USA
-                  EMail:      case at snmp.com
-                  phone:      +1 423-573-1434
-
-                  Co-editor:  Randy Presuhn
-                              BMC Software, Inc.
-                  postal:     2141 North First Street
-                              San Jose, CA 95131
-                              USA
-                  EMail:      randy_presuhn at bmc.com
-                  phone:      +1 408-546-1006
-
-                  Co-editor:  Bert Wijnen
-                              Lucent Technologies
-                  postal:     Schagen 33
-                              3461 GL Linschoten
-                              Netherlands
-                  EMail:      bwijnen at lucent.com
-                  phone:      +31 348-680-485
-                 "
-    DESCRIPTION  "The MIB for Message Processing and Dispatching
-
-                  Copyright (C) The Internet Society (2002). This
-                  version of this MIB module is part of RFC 3412;
-                  see the RFC itself for full legal notices.
-                 "
-    REVISION     "200210140000Z"            -- 14 October 2002
-    DESCRIPTION  "Updated addresses, published as RFC 3412."
-    REVISION     "199905041636Z"            -- 4 May 1999
-    DESCRIPTION  "Updated addresses, published as RFC 2572."
-
-    REVISION     "199709300000Z"            -- 30 September 1997
-    DESCRIPTION  "Original version, published as RFC 2272."
-    ::= { snmpModules 11 }
-
--- Administrative assignments ***************************************
-
-snmpMPDAdmin           OBJECT IDENTIFIER ::= { snmpMPDMIB 1 }
-snmpMPDMIBObjects      OBJECT IDENTIFIER ::= { snmpMPDMIB 2 }
-snmpMPDMIBConformance  OBJECT IDENTIFIER ::= { snmpMPDMIB 3 }
-
--- Statistics for SNMP Messages *************************************
-
-snmpMPDStats           OBJECT IDENTIFIER ::= { snmpMPDMIBObjects 1 }
-
-snmpUnknownSecurityModels OBJECT-TYPE
-    SYNTAX       Counter32
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "The total number of packets received by the SNMP
-                 engine which were dropped because they referenced a
-                 securityModel that was not known to or supported by
-                 the SNMP engine.
-                "
-    ::= { snmpMPDStats 1 }
-
-snmpInvalidMsgs OBJECT-TYPE
-    SYNTAX       Counter32
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "The total number of packets received by the SNMP
-                 engine which were dropped because there were invalid
-                 or inconsistent components in the SNMP message.
-                "
-    ::= { snmpMPDStats 2 }
-
-snmpUnknownPDUHandlers OBJECT-TYPE
-    SYNTAX       Counter32
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "The total number of packets received by the SNMP
-                 engine which were dropped because the PDU contained
-                 in the packet could not be passed to an application
-                 responsible for handling the pduType, e.g. no SNMP
-                 application had registered for the proper
-                 combination of the contextEngineID and the pduType.
-                "
-    ::= { snmpMPDStats 3 }
-
--- Conformance information ******************************************
-
-snmpMPDMIBCompliances OBJECT IDENTIFIER ::= {snmpMPDMIBConformance 1}
-snmpMPDMIBGroups      OBJECT IDENTIFIER ::= {snmpMPDMIBConformance 2}
-
--- Compliance statements
-
-snmpMPDCompliance MODULE-COMPLIANCE
-    STATUS       current
-    DESCRIPTION "The compliance statement for SNMP entities which
-                 implement the SNMP-MPD-MIB.
-                "
-    MODULE    -- this module
-        MANDATORY-GROUPS { snmpMPDGroup }
-    ::= { snmpMPDMIBCompliances 1 }
-
-snmpMPDGroup OBJECT-GROUP
-    OBJECTS {
-              snmpUnknownSecurityModels,
-              snmpInvalidMsgs,
-              snmpUnknownPDUHandlers
-            }
-    STATUS       current
-    DESCRIPTION "A collection of objects providing for remote
-                 monitoring of the SNMP Message Processing and
-                 Dispatching process.
-                "
-    ::= { snmpMPDMIBGroups 1 }
-
-END
diff --git a/mibs/SNMP-NOTIFICATION-MIB.txt b/mibs/SNMP-NOTIFICATION-MIB.txt
deleted file mode 100644
index 0ef06b6..0000000
--- a/mibs/SNMP-NOTIFICATION-MIB.txt
+++ /dev/null
@@ -1,589 +0,0 @@
-SNMP-NOTIFICATION-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY,
-    OBJECT-TYPE,
-    snmpModules
-        FROM SNMPv2-SMI
-
-    RowStatus,
-    StorageType
-        FROM SNMPv2-TC
-
-    SnmpAdminString
-        FROM SNMP-FRAMEWORK-MIB
-
-    SnmpTagValue,
-    snmpTargetParamsName
-        FROM SNMP-TARGET-MIB
-
-    MODULE-COMPLIANCE,
-    OBJECT-GROUP
-        FROM SNMPv2-CONF;
-
-snmpNotificationMIB MODULE-IDENTITY
-    LAST-UPDATED "200210140000Z"
-    ORGANIZATION "IETF SNMPv3 Working Group"
-    CONTACT-INFO
-        "WG-email:   snmpv3 at lists.tislabs.com
-         Subscribe:  majordomo at lists.tislabs.com
-                     In message body:  subscribe snmpv3
-
-         Co-Chair:   Russ Mundy
-                     Network Associates Laboratories
-         Postal:     15204 Omega Drive, Suite 300
-                     Rockville, MD 20850-4601
-                     USA
-         EMail:      mundy at tislabs.com
-         Phone:      +1 301-947-7107
-
-         Co-Chair:   David Harrington
-                     Enterasys Networks
-         Postal:     35 Industrial Way
-                     P. O. Box 5004
-                     Rochester, New Hampshire 03866-5005
-                     USA
-         EMail:      dbh at enterasys.com
-         Phone:      +1 603-337-2614
-
-         Co-editor:  David B. Levi
-                     Nortel Networks
-         Postal:     3505 Kesterwood Drive
-                     Knoxville, Tennessee 37918
-         EMail:      dlevi at nortelnetworks.com
-         Phone:      +1 865 686 0432
-
-         Co-editor:  Paul Meyer
-                     Secure Computing Corporation
-         Postal:     2675 Long Lake Road
-                     Roseville, Minnesota 55113
-         EMail:      paul_meyer at securecomputing.com
-         Phone:      +1 651 628 1592
-
-         Co-editor:  Bob Stewart
-                     Retired"
-    DESCRIPTION
-        "This MIB module defines MIB objects which provide
-         mechanisms to remotely configure the parameters
-         used by an SNMP entity for the generation of
-         notifications.
-
-         Copyright (C) The Internet Society (2002). This
-         version of this MIB module is part of RFC 3413;
-         see the RFC itself for full legal notices.
-        "
-    REVISION    "200210140000Z"             -- 14 October 2002
-    DESCRIPTION "Clarifications, published as
-                 RFC 3413."
-    REVISION    "199808040000Z"             -- 4 August 1998
-    DESCRIPTION "Clarifications, published as
-                 RFC 2573."
-    REVISION    "199707140000Z"             -- 14 July 1997
-    DESCRIPTION "The initial revision, published as RFC2273."
-    ::= { snmpModules 13 }
-
-snmpNotifyObjects       OBJECT IDENTIFIER ::=
-                                          { snmpNotificationMIB 1 }
-snmpNotifyConformance   OBJECT IDENTIFIER ::=
-                                          { snmpNotificationMIB 3 }
-
---
---
--- The snmpNotifyObjects group
---
---
-
-snmpNotifyTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF SnmpNotifyEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "This table is used to select management targets which should
-         receive notifications, as well as the type of notification
-         which should be sent to each selected management target."
-    ::= { snmpNotifyObjects 1 }
-
-snmpNotifyEntry OBJECT-TYPE
-    SYNTAX      SnmpNotifyEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An entry in this table selects a set of management targets
-         which should receive notifications, as well as the type of
-
-         notification which should be sent to each selected
-         management target.
-
-         Entries in the snmpNotifyTable are created and
-         deleted using the snmpNotifyRowStatus object."
-    INDEX { IMPLIED snmpNotifyName }
-    ::= { snmpNotifyTable 1 }
-
-SnmpNotifyEntry ::= SEQUENCE {
-    snmpNotifyName         SnmpAdminString,
-    snmpNotifyTag          SnmpTagValue,
-    snmpNotifyType         INTEGER,
-    snmpNotifyStorageType  StorageType,
-    snmpNotifyRowStatus    RowStatus
-}
-
-snmpNotifyName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(1..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The locally arbitrary, but unique identifier associated
-         with this snmpNotifyEntry."
-    ::= { snmpNotifyEntry 1 }
-
-snmpNotifyTag OBJECT-TYPE
-    SYNTAX      SnmpTagValue
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object contains a single tag value which is used
-         to select entries in the snmpTargetAddrTable.  Any entry
-         in the snmpTargetAddrTable which contains a tag value
-         which is equal to the value of an instance of this
-         object is selected.  If this object contains a value
-         of zero length, no entries are selected."
-    DEFVAL { "" }
-    ::= { snmpNotifyEntry 2 }
-
-snmpNotifyType OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    trap(1),
-                    inform(2)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object determines the type of notification to
-
-         be generated for entries in the snmpTargetAddrTable
-         selected by the corresponding instance of
-         snmpNotifyTag.  This value is only used when
-         generating notifications, and is ignored when
-         using the snmpTargetAddrTable for other purposes.
-
-         If the value of this object is trap(1), then any
-         messages generated for selected rows will contain
-         Unconfirmed-Class PDUs.
-
-         If the value of this object is inform(2), then any
-         messages generated for selected rows will contain
-         Confirmed-Class PDUs.
-
-         Note that if an SNMP entity only supports
-         generation of Unconfirmed-Class PDUs (and not
-         Confirmed-Class PDUs), then this object may be
-         read-only."
-    DEFVAL { trap }
-    ::= { snmpNotifyEntry 3 }
-
-snmpNotifyStorageType 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 }
-    ::= { snmpNotifyEntry 4 }
-
-snmpNotifyRowStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The status of this conceptual row.
-
-         To create a row in this table, a manager must
-         set this object to either createAndGo(4) or
-         createAndWait(5)."
-    ::= { snmpNotifyEntry 5 }
-
-snmpNotifyFilterProfileTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF SnmpNotifyFilterProfileEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "This table is used to associate a notification filter
-         profile with a particular set of target parameters."
-    ::= { snmpNotifyObjects 2 }
-
-snmpNotifyFilterProfileEntry OBJECT-TYPE
-    SYNTAX      SnmpNotifyFilterProfileEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An entry in this table indicates the name of the filter
-         profile to be used when generating notifications using
-         the corresponding entry in the snmpTargetParamsTable.
-
-         Entries in the snmpNotifyFilterProfileTable are created
-         and deleted using the snmpNotifyFilterProfileRowStatus
-         object."
-    INDEX { IMPLIED snmpTargetParamsName }
-    ::= { snmpNotifyFilterProfileTable 1 }
-
-SnmpNotifyFilterProfileEntry ::= SEQUENCE {
-    snmpNotifyFilterProfileName         SnmpAdminString,
-    snmpNotifyFilterProfileStorType     StorageType,
-    snmpNotifyFilterProfileRowStatus    RowStatus
-}
-
-snmpNotifyFilterProfileName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(1..32))
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The name of the filter profile to be used when generating
-         notifications using the corresponding entry in the
-         snmpTargetAddrTable."
-    ::= { snmpNotifyFilterProfileEntry 1 }
-
-snmpNotifyFilterProfileStorType 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 }
-    ::= { snmpNotifyFilterProfileEntry 2 }
-
-snmpNotifyFilterProfileRowStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The status of this conceptual row.
-
-         To create a row in this table, a manager 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
-         snmpNotifyFilterProfileRowStatus column is 'notReady'.
-
-         In particular, a newly created row cannot be made
-         active until the corresponding instance of
-         snmpNotifyFilterProfileName has been set."
-    ::= { snmpNotifyFilterProfileEntry 3 }
-
-snmpNotifyFilterTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF SnmpNotifyFilterEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The table of filter profiles.  Filter profiles are used
-         to determine whether particular management targets should
-         receive particular notifications.
-
-         When a notification is generated, it must be compared
-         with the filters associated with each management target
-         which is configured to receive notifications, in order to
-         determine whether it may be sent to each such management
-         target.
-
-         A more complete discussion of notification filtering
-         can be found in section 6. of [SNMP-APPL]."
-    ::= { snmpNotifyObjects 3 }
-
-snmpNotifyFilterEntry OBJECT-TYPE
-    SYNTAX      SnmpNotifyFilterEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An element of a filter profile.
-
-         Entries in the snmpNotifyFilterTable are created and
-         deleted using the snmpNotifyFilterRowStatus object."
-    INDEX {         snmpNotifyFilterProfileName,
-            IMPLIED snmpNotifyFilterSubtree }
-    ::= { snmpNotifyFilterTable 1 }
-
-SnmpNotifyFilterEntry ::= SEQUENCE {
-    snmpNotifyFilterSubtree           OBJECT IDENTIFIER,
-    snmpNotifyFilterMask              OCTET STRING,
-    snmpNotifyFilterType              INTEGER,
-    snmpNotifyFilterStorageType       StorageType,
-    snmpNotifyFilterRowStatus         RowStatus
-}
-
-snmpNotifyFilterSubtree OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The MIB subtree which, when combined with the corresponding
-         instance of snmpNotifyFilterMask, defines a family of
-         subtrees which are included in or excluded from the
-         filter profile."
-    ::= { snmpNotifyFilterEntry 1 }
-
-snmpNotifyFilterMask OBJECT-TYPE
-    SYNTAX      OCTET STRING (SIZE(0..16))
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The bit mask which, in combination with the corresponding
-         instance of snmpNotifyFilterSubtree, defines a family of
-         subtrees which are included in or excluded from the
-         filter profile.
-
-         Each bit of this bit mask corresponds to a
-         sub-identifier of snmpNotifyFilterSubtree, with the
-         most significant bit of the i-th octet of this octet
-         string value (extended if necessary, see below)
-         corresponding to the (8*i - 7)-th sub-identifier, and
-         the least significant bit of the i-th octet of this
-         octet string corresponding to the (8*i)-th
-         sub-identifier, where i is in the range 1 through 16.
-
-         Each bit of this bit mask specifies whether or not
-         the corresponding sub-identifiers must match when
-         determining if an OBJECT IDENTIFIER matches this
-         family of filter subtrees; a '1' indicates that an
-         exact match must occur; a '0' indicates 'wild card',
-         i.e., any sub-identifier value matches.
-
-         Thus, the OBJECT IDENTIFIER X of an object instance
-         is contained in a family of filter subtrees if, for
-         each sub-identifier of the value of
-         snmpNotifyFilterSubtree, either:
-
-           the i-th bit of snmpNotifyFilterMask is 0, or
-
-           the i-th sub-identifier of X is equal to the i-th
-           sub-identifier of the value of
-           snmpNotifyFilterSubtree.
-
-         If the value of this bit mask is M bits long and
-         there are more than M sub-identifiers in the
-         corresponding instance of snmpNotifyFilterSubtree,
-         then the bit mask is extended with 1's to be the
-         required length.
-
-         Note that when the value of this object is the
-         zero-length string, this extension rule results in
-         a mask of all-1's being used (i.e., no 'wild card'),
-         and the family of filter subtrees is the one
-         subtree uniquely identified by the corresponding
-         instance of snmpNotifyFilterSubtree."
-    DEFVAL { ''H }
-    ::= { snmpNotifyFilterEntry 2 }
-
-snmpNotifyFilterType OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    included(1),
-                    excluded(2)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object indicates whether the family of filter subtrees
-         defined by this entry are included in or excluded from a
-         filter.  A more detailed discussion of the use of this
-         object can be found in section 6. of [SNMP-APPL]."
-    DEFVAL { included }
-    ::= { snmpNotifyFilterEntry 3 }
-
-snmpNotifyFilterStorageType 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 }
-    ::= { snmpNotifyFilterEntry 4 }
-
-snmpNotifyFilterRowStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The status of this conceptual row.
-
-         To create a row in this table, a manager must
-         set this object to either createAndGo(4) or
-         createAndWait(5)."
-    ::= { snmpNotifyFilterEntry 5 }
-
---
---
--- Conformance information
---
---
-
-snmpNotifyCompliances OBJECT IDENTIFIER ::=
-                                        { snmpNotifyConformance 1 }
-snmpNotifyGroups      OBJECT IDENTIFIER ::=
-                                        { snmpNotifyConformance 2 }
-
---
---
--- Compliance statements
---
---
-
-snmpNotifyBasicCompliance MODULE-COMPLIANCE
-    STATUS      current
-    DESCRIPTION
-        "The compliance statement for minimal SNMP entities which
-         implement only SNMP Unconfirmed-Class notifications and
-         read-create operations on only the snmpTargetAddrTable."
-    MODULE SNMP-TARGET-MIB
-        MANDATORY-GROUPS { snmpTargetBasicGroup }
-
-        OBJECT snmpTargetParamsMPModel
-        MIN-ACCESS    read-only
-        DESCRIPTION
-            "Create/delete/modify access is not required."
-
-        OBJECT snmpTargetParamsSecurityModel
-        MIN-ACCESS    read-only
-        DESCRIPTION
-            "Create/delete/modify access is not required."
-
-        OBJECT snmpTargetParamsSecurityName
-        MIN-ACCESS    read-only
-        DESCRIPTION
-            "Create/delete/modify access is not required."
-
-        OBJECT snmpTargetParamsSecurityLevel
-        MIN-ACCESS    read-only
-        DESCRIPTION
-            "Create/delete/modify access is not required."
-
-        OBJECT snmpTargetParamsStorageType
-        SYNTAX INTEGER {
-            readOnly(5)
-        }
-        MIN-ACCESS    read-only
-        DESCRIPTION
-            "Create/delete/modify access is not required.
-             Support of the values other(1), volatile(2),
-             nonVolatile(3), and permanent(4) is not required."
-
-        OBJECT snmpTargetParamsRowStatus
-        SYNTAX INTEGER {
-            active(1)
-        }
-        MIN-ACCESS    read-only
-        DESCRIPTION
-            "Create/delete/modify access to the
-             snmpTargetParamsTable is not required.
-             Support of the values notInService(2), notReady(3),
-             createAndGo(4), createAndWait(5), and destroy(6) is
-             not required."
-
-    MODULE -- This Module
-        MANDATORY-GROUPS { snmpNotifyGroup }
-
-        OBJECT snmpNotifyTag
-        MIN-ACCESS    read-only
-        DESCRIPTION
-            "Create/delete/modify access is not required."
-
-        OBJECT snmpNotifyType
-        SYNTAX INTEGER {
-            trap(1)
-        }
-        MIN-ACCESS    read-only
-        DESCRIPTION
-            "Create/delete/modify access is not required.
-             Support of the value notify(2) is not required."
-
-        OBJECT snmpNotifyStorageType
-        SYNTAX INTEGER {
-            readOnly(5)
-        }
-        MIN-ACCESS    read-only
-        DESCRIPTION
-            "Create/delete/modify access is not required.
-             Support of the values other(1), volatile(2),
-             nonVolatile(3), and permanent(4) is not required."
-
-        OBJECT snmpNotifyRowStatus
-        SYNTAX INTEGER {
-            active(1)
-        }
-        MIN-ACCESS    read-only
-        DESCRIPTION
-            "Create/delete/modify access to the
-             snmpNotifyTable is not required.
-             Support of the values notInService(2), notReady(3),
-             createAndGo(4), createAndWait(5), and destroy(6) is
-             not required."
-    ::= { snmpNotifyCompliances 1 }
-
-snmpNotifyBasicFiltersCompliance MODULE-COMPLIANCE
-    STATUS      current
-    DESCRIPTION
-        "The compliance statement for SNMP entities which implement
-         SNMP Unconfirmed-Class notifications with filtering, and
-         read-create operations on all related tables."
-    MODULE SNMP-TARGET-MIB
-        MANDATORY-GROUPS { snmpTargetBasicGroup }
-    MODULE -- This Module
-        MANDATORY-GROUPS { snmpNotifyGroup,
-                           snmpNotifyFilterGroup }
-    ::= { snmpNotifyCompliances 2 }
-
-snmpNotifyFullCompliance MODULE-COMPLIANCE
-    STATUS      current
-    DESCRIPTION
-        "The compliance statement for SNMP entities which either
-         implement only SNMP Confirmed-Class notifications, or both
-         SNMP Unconfirmed-Class and Confirmed-Class notifications,
-         plus filtering and read-create operations on all related
-         tables."
-    MODULE SNMP-TARGET-MIB
-        MANDATORY-GROUPS { snmpTargetBasicGroup,
-                           snmpTargetResponseGroup }
-    MODULE -- This Module
-        MANDATORY-GROUPS { snmpNotifyGroup,
-                           snmpNotifyFilterGroup }
-    ::= { snmpNotifyCompliances 3 }
-
-snmpNotifyGroup OBJECT-GROUP
-    OBJECTS {
-        snmpNotifyTag,
-        snmpNotifyType,
-        snmpNotifyStorageType,
-        snmpNotifyRowStatus
-    }
-    STATUS      current
-    DESCRIPTION
-        "A collection of objects for selecting which management
-         targets are used for generating notifications, and the
-         type of notification to be generated for each selected
-         management target."
-    ::= { snmpNotifyGroups 1 }
-
-snmpNotifyFilterGroup OBJECT-GROUP
-    OBJECTS {
-        snmpNotifyFilterProfileName,
-        snmpNotifyFilterProfileStorType,
-        snmpNotifyFilterProfileRowStatus,
-        snmpNotifyFilterMask,
-        snmpNotifyFilterType,
-        snmpNotifyFilterStorageType,
-        snmpNotifyFilterRowStatus
-    }
-    STATUS      current
-    DESCRIPTION
-        "A collection of objects providing remote configuration
-         of notification filters."
-    ::= { snmpNotifyGroups 2 }
-
-END
diff --git a/mibs/SNMP-PROXY-MIB.txt b/mibs/SNMP-PROXY-MIB.txt
deleted file mode 100644
index 4a72e86..0000000
--- a/mibs/SNMP-PROXY-MIB.txt
+++ /dev/null
@@ -1,294 +0,0 @@
-SNMP-PROXY-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY,
-    OBJECT-TYPE,
-    snmpModules
-        FROM SNMPv2-SMI
-
-    RowStatus,
-    StorageType
-        FROM SNMPv2-TC
-
-    SnmpEngineID,
-    SnmpAdminString
-        FROM SNMP-FRAMEWORK-MIB
-
-    SnmpTagValue
-        FROM SNMP-TARGET-MIB
-
-    MODULE-COMPLIANCE,
-    OBJECT-GROUP
-        FROM SNMPv2-CONF;
-
-snmpProxyMIB MODULE-IDENTITY
-    LAST-UPDATED "200210140000Z"
-    ORGANIZATION "IETF SNMPv3 Working Group"
-    CONTACT-INFO
-        "WG-email:   snmpv3 at lists.tislabs.com
-         Subscribe:  majordomo at lists.tislabs.com
-                     In message body:  subscribe snmpv3
-
-         Co-Chair:   Russ Mundy
-                     Network Associates Laboratories
-         Postal:     15204 Omega Drive, Suite 300
-                     Rockville, MD 20850-4601
-                     USA
-         EMail:      mundy at tislabs.com
-         Phone:      +1 301-947-7107
-
-         Co-Chair:   David Harrington
-                     Enterasys Networks
-         Postal:     35 Industrial Way
-                     P. O. Box 5004
-                     Rochester, New Hampshire 03866-5005
-                     USA
-         EMail:      dbh at enterasys.com
-         Phone:      +1 603-337-2614
-
-         Co-editor:  David B. Levi
-                     Nortel Networks
-         Postal:     3505 Kesterwood Drive
-                     Knoxville, Tennessee 37918
-         EMail:      dlevi at nortelnetworks.com
-         Phone:      +1 865 686 0432
-
-         Co-editor:  Paul Meyer
-                     Secure Computing Corporation
-         Postal:     2675 Long Lake Road
-                     Roseville, Minnesota 55113
-         EMail:      paul_meyer at securecomputing.com
-         Phone:      +1 651 628 1592
-
-         Co-editor:  Bob Stewart
-                     Retired"
-    DESCRIPTION
-        "This MIB module defines MIB objects which provide
-         mechanisms to remotely configure the parameters
-         used by a proxy forwarding application.
-
-         Copyright (C) The Internet Society (2002). This
-         version of this MIB module is part of RFC 3413;
-         see the RFC itself for full legal notices.
-        "
-    REVISION    "200210140000Z"             -- 14 October 2002
-    DESCRIPTION "Clarifications, published as
-                 RFC 3413."
-    REVISION    "199808040000Z"             -- 4 August 1998
-    DESCRIPTION "Clarifications, published as
-                 RFC 2573."
-    REVISION    "199707140000Z"             -- 14 July 1997
-    DESCRIPTION "The initial revision, published as RFC2273."
-    ::= { snmpModules 14 }
-
-snmpProxyObjects        OBJECT IDENTIFIER ::= { snmpProxyMIB 1 }
-snmpProxyConformance    OBJECT IDENTIFIER ::= { snmpProxyMIB 3 }
-
---
-
---
--- The snmpProxyObjects group
---
---
-
-snmpProxyTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF SnmpProxyEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The table of translation parameters used by proxy forwarder
-         applications for forwarding SNMP messages."
-    ::= { snmpProxyObjects 2 }
-
-snmpProxyEntry OBJECT-TYPE
-    SYNTAX      SnmpProxyEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A set of translation parameters used by a proxy forwarder
-         application for forwarding SNMP messages.
-
-         Entries in the snmpProxyTable are created and deleted
-         using the snmpProxyRowStatus object."
-    INDEX { IMPLIED snmpProxyName }
-    ::= { snmpProxyTable 1 }
-
-SnmpProxyEntry ::= SEQUENCE {
-    snmpProxyName               SnmpAdminString,
-    snmpProxyType               INTEGER,
-    snmpProxyContextEngineID    SnmpEngineID,
-    snmpProxyContextName        SnmpAdminString,
-    snmpProxyTargetParamsIn     SnmpAdminString,
-    snmpProxySingleTargetOut    SnmpAdminString,
-    snmpProxyMultipleTargetOut  SnmpTagValue,
-    snmpProxyStorageType        StorageType,
-    snmpProxyRowStatus          RowStatus
-}
-
-snmpProxyName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(1..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The locally arbitrary, but unique identifier associated
-         with this snmpProxyEntry."
-    ::= { snmpProxyEntry 1 }
-
-snmpProxyType OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    read(1),
-                    write(2),
-                    trap(3),
-                    inform(4)
-                }
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The type of message that may be forwarded using
-         the translation parameters defined by this entry."
-    ::= { snmpProxyEntry 2 }
-
-snmpProxyContextEngineID OBJECT-TYPE
-    SYNTAX      SnmpEngineID
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The contextEngineID contained in messages that
-         may be forwarded using the translation parameters
-         defined by this entry."
-    ::= { snmpProxyEntry 3 }
-
-snmpProxyContextName OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The contextName contained in messages that may be
-         forwarded using the translation parameters defined
-         by this entry.
-
-         This object is optional, and if not supported, the
-         contextName contained in a message is ignored when
-         selecting an entry in the snmpProxyTable."
-    ::= { snmpProxyEntry 4 }
-
-snmpProxyTargetParamsIn OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object selects an entry in the snmpTargetParamsTable.
-         The selected entry is used to determine which row of the
-         snmpProxyTable to use for forwarding received messages."
-    ::= { snmpProxyEntry 5 }
-
-snmpProxySingleTargetOut OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object selects a management target defined in the
-         snmpTargetAddrTable (in the SNMP-TARGET-MIB).  The
-         selected target is defined by an entry in the
-         snmpTargetAddrTable whose index value (snmpTargetAddrName)
-         is equal to this object.
-
-         This object is only used when selection of a single
-         target is required (i.e. when forwarding an incoming
-         read or write request)."
-    ::= { snmpProxyEntry 6 }
-
-snmpProxyMultipleTargetOut OBJECT-TYPE
-    SYNTAX      SnmpTagValue
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object selects a set of management targets defined
-         in the snmpTargetAddrTable (in the SNMP-TARGET-MIB).
-
-         This object is only used when selection of multiple
-         targets is required (i.e. when forwarding an incoming
-         notification)."
-    ::= { snmpProxyEntry 7 }
-
-snmpProxyStorageType OBJECT-TYPE
-    SYNTAX      StorageType
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The storage type of this conceptual row.
-         Conceptual rows having the value 'permanent' need not
-         allow write-access to any columnar objects in the row."
-    DEFVAL { nonVolatile }
-    ::= { snmpProxyEntry 8 }
-
-snmpProxyRowStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The status of this conceptual row.
-
-         To create a row in this table, a manager must
-
-         set this object to either createAndGo(4) or
-         createAndWait(5).
-
-         The following objects may not be modified while the
-         value of this object is active(1):
-             - snmpProxyType
-             - snmpProxyContextEngineID
-             - snmpProxyContextName
-             - snmpProxyTargetParamsIn
-             - snmpProxySingleTargetOut
-             - snmpProxyMultipleTargetOut"
-    ::= { snmpProxyEntry 9 }
-
---
---
--- Conformance information
---
---
-
-snmpProxyCompliances OBJECT IDENTIFIER ::=
-                                         { snmpProxyConformance 1 }
-snmpProxyGroups      OBJECT IDENTIFIER ::=
-                                         { snmpProxyConformance 2 }
-
---
---
--- Compliance statements
---
---
-
-snmpProxyCompliance MODULE-COMPLIANCE
-    STATUS      current
-    DESCRIPTION
-        "The compliance statement for SNMP entities which include
-         a proxy forwarding application."
-    MODULE SNMP-TARGET-MIB
-        MANDATORY-GROUPS { snmpTargetBasicGroup,
-                           snmpTargetResponseGroup }
-    MODULE -- This Module
-        MANDATORY-GROUPS { snmpProxyGroup }
-    ::= { snmpProxyCompliances 1 }
-
-snmpProxyGroup OBJECT-GROUP
-    OBJECTS {
-        snmpProxyType,
-        snmpProxyContextEngineID,
-        snmpProxyContextName,
-        snmpProxyTargetParamsIn,
-        snmpProxySingleTargetOut,
-        snmpProxyMultipleTargetOut,
-        snmpProxyStorageType,
-        snmpProxyRowStatus
-    }
-    STATUS      current
-    DESCRIPTION
-        "A collection of objects providing remote configuration of
-         management target translation parameters for use by
-         proxy forwarder applications."
-    ::= { snmpProxyGroups 3 }
-
-END
diff --git a/mibs/SNMP-TARGET-MIB.txt b/mibs/SNMP-TARGET-MIB.txt
deleted file mode 100644
index 654afdd..0000000
--- a/mibs/SNMP-TARGET-MIB.txt
+++ /dev/null
@@ -1,660 +0,0 @@
-SNMP-TARGET-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY,
-    OBJECT-TYPE,
-    snmpModules,
-    Counter32,
-    Integer32
-        FROM SNMPv2-SMI
-
-    TEXTUAL-CONVENTION,
-    TDomain,
-    TAddress,
-    TimeInterval,
-    RowStatus,
-    StorageType,
-    TestAndIncr
-        FROM SNMPv2-TC
-
-    SnmpSecurityModel,
-    SnmpMessageProcessingModel,
-    SnmpSecurityLevel,
-    SnmpAdminString
-        FROM SNMP-FRAMEWORK-MIB
-
-    MODULE-COMPLIANCE,
-    OBJECT-GROUP
-        FROM SNMPv2-CONF;
-
-snmpTargetMIB MODULE-IDENTITY
-    LAST-UPDATED "200210140000Z"
-    ORGANIZATION "IETF SNMPv3 Working Group"
-    CONTACT-INFO
-        "WG-email:   snmpv3 at lists.tislabs.com
-         Subscribe:  majordomo at lists.tislabs.com
-                     In message body:  subscribe snmpv3
-
-         Co-Chair:   Russ Mundy
-                     Network Associates Laboratories
-         Postal:     15204 Omega Drive, Suite 300
-                     Rockville, MD 20850-4601
-                     USA
-         EMail:      mundy at tislabs.com
-         Phone:      +1 301-947-7107
-
-         Co-Chair:   David Harrington
-                     Enterasys Networks
-         Postal:     35 Industrial Way
-                     P. O. Box 5004
-                     Rochester, New Hampshire 03866-5005
-                     USA
-         EMail:      dbh at enterasys.com
-         Phone:      +1 603-337-2614
-
-         Co-editor:  David B. Levi
-                     Nortel Networks
-         Postal:     3505 Kesterwood Drive
-                     Knoxville, Tennessee 37918
-         EMail:      dlevi at nortelnetworks.com
-         Phone:      +1 865 686 0432
-
-         Co-editor:  Paul Meyer
-                     Secure Computing Corporation
-         Postal:     2675 Long Lake Road
-
-                     Roseville, Minnesota 55113
-         EMail:      paul_meyer at securecomputing.com
-         Phone:      +1 651 628 1592
-
-         Co-editor:  Bob Stewart
-                     Retired"
-    DESCRIPTION
-        "This MIB module defines MIB objects which provide
-         mechanisms to remotely configure the parameters used
-         by an SNMP entity for the generation of SNMP messages.
-
-         Copyright (C) The Internet Society (2002). This
-         version of this MIB module is part of RFC 3413;
-         see the RFC itself for full legal notices.
-        "
-    REVISION    "200210140000Z"             -- 14 October 2002
-    DESCRIPTION "Fixed DISPLAY-HINTS for UTF-8 strings, fixed hex
-                 value of LF characters, clarified meaning of zero
-                 length tag values, improved tag list examples.
-                 Published as RFC 3413."
-    REVISION    "199808040000Z"             -- 4 August 1998
-    DESCRIPTION "Clarifications, published as
-                 RFC 2573."
-    REVISION    "199707140000Z"             -- 14 July 1997
-    DESCRIPTION "The initial revision, published as RFC2273."
-    ::= { snmpModules 12 }
-
-snmpTargetObjects       OBJECT IDENTIFIER ::= { snmpTargetMIB 1 }
-snmpTargetConformance   OBJECT IDENTIFIER ::= { snmpTargetMIB 3 }
-
-SnmpTagValue ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "255t"
-    STATUS       current
-    DESCRIPTION
-        "An octet string containing a tag value.
-         Tag values are preferably in human-readable form.
-
-         To facilitate internationalization, this information
-         is represented using the ISO/IEC IS 10646-1 character
-         set, encoded as an octet string using the UTF-8
-         character encoding scheme described in RFC 2279.
-
-         Since additional code points are added by amendments
-         to the 10646 standard from time to time,
-         implementations must be prepared to encounter any code
-         point from 0x00000000 to 0x7fffffff.
-
-         The use of control codes should be avoided, and certain
-
-         control codes are not allowed as described below.
-
-         For code points not directly supported by user
-         interface hardware or software, an alternative means
-         of entry and display, such as hexadecimal, may be
-         provided.
-
-         For information encoded in 7-bit US-ASCII, the UTF-8
-         representation is identical to the US-ASCII encoding.
-
-         Note that when this TC is used for an object that
-         is used or envisioned to be used as an index, then a
-         SIZE restriction must be specified so that the number
-         of sub-identifiers for any object instance does not
-         exceed the limit of 128, as defined by [RFC1905].
-
-         An object of this type contains a single tag value
-         which is used to select a set of entries in a table.
-
-         A tag value is an arbitrary string of octets, but
-         may not contain a delimiter character.  Delimiter
-         characters are defined to be one of the following:
-
-             -  An ASCII space character (0x20).
-
-             -  An ASCII TAB character (0x09).
-
-             -  An ASCII carriage return (CR) character (0x0D).
-
-             -  An ASCII line feed (LF) character (0x0A).
-
-         Delimiter characters are used to separate tag values
-         in a tag list.  An object of this type may only
-         contain a single tag value, and so delimiter
-         characters are not allowed in a value of this type.
-
-         Note that a tag value of 0 length means that no tag is
-         defined.  In other words, a tag value of 0 length would
-         never match anything in a tag list, and would never
-         select any table entries.
-
-         Some examples of valid tag values are:
-
-             - 'acme'
-
-             - 'router'
-
-             - 'host'
-
-         The use of a tag value to select table entries is
-         application and MIB specific."
-    SYNTAX       OCTET STRING (SIZE (0..255))
-
-SnmpTagList ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "255t"
-    STATUS       current
-    DESCRIPTION
-        "An octet string containing a list of tag values.
-         Tag values are preferably in human-readable form.
-
-         To facilitate internationalization, this information
-         is represented using the ISO/IEC IS 10646-1 character
-         set, encoded as an octet string using the UTF-8
-         character encoding scheme described in RFC 2279.
-
-         Since additional code points are added by amendments
-         to the 10646 standard from time to time,
-         implementations must be prepared to encounter any code
-         point from 0x00000000 to 0x7fffffff.
-
-         The use of control codes should be avoided, except as
-         described below.
-
-         For code points not directly supported by user
-         interface hardware or software, an alternative means
-         of entry and display, such as hexadecimal, may be
-         provided.
-
-         For information encoded in 7-bit US-ASCII, the UTF-8
-         representation is identical to the US-ASCII encoding.
-
-         An object of this type contains a list of tag values
-         which are used to select a set of entries in a table.
-
-         A tag value is an arbitrary string of octets, but
-         may not contain a delimiter character.  Delimiter
-         characters are defined to be one of the following:
-
-             -  An ASCII space character (0x20).
-
-             -  An ASCII TAB character (0x09).
-
-             -  An ASCII carriage return (CR) character (0x0D).
-
-             -  An ASCII line feed (LF) character (0x0A).
-
-         Delimiter characters are used to separate tag values
-
-         in a tag list.  Only a single delimiter character may
-         occur between two tag values.  A tag value may not
-         have a zero length.  These constraints imply certain
-         restrictions on the contents of this object:
-
-             - There cannot be a leading or trailing delimiter
-               character.
-
-             - There cannot be multiple adjacent delimiter
-               characters.
-
-         Some examples of valid tag lists are:
-
-             - ''                        -- an empty list
-
-             - 'acme'                    -- list of one tag
-
-             - 'host router bridge'      -- list of several tags
-
-         Note that although a tag value may not have a length of
-         zero, an empty string is still valid.  This indicates
-         an empty list (i.e. there are no tag values in the list).
-
-         The use of the tag list to select table entries is
-         application and MIB specific.  Typically, an application
-         will provide one or more tag values, and any entry
-         which contains some combination of these tag values
-         will be selected."
-    SYNTAX       OCTET STRING (SIZE (0..255))
-
---
---
--- The snmpTargetObjects group
---
---
-
-snmpTargetSpinLock OBJECT-TYPE
-    SYNTAX      TestAndIncr
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-        "This object is used to facilitate modification of table
-         entries in the SNMP-TARGET-MIB module by multiple
-         managers.  In particular, it is useful when modifying
-         the value of the snmpTargetAddrTagList object.
-
-         The procedure for modifying the snmpTargetAddrTagList
-         object is as follows:
-
-             1.  Retrieve the value of snmpTargetSpinLock and
-                 of snmpTargetAddrTagList.
-
-             2.  Generate a new value for snmpTargetAddrTagList.
-
-             3.  Set the value of snmpTargetSpinLock to the
-                 retrieved value, and the value of
-                 snmpTargetAddrTagList to the new value.  If
-                 the set fails for the snmpTargetSpinLock
-                 object, go back to step 1."
-    ::= { snmpTargetObjects 1 }
-
-snmpTargetAddrTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF SnmpTargetAddrEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A table of transport addresses to be used in the generation
-         of SNMP messages."
-    ::= { snmpTargetObjects 2 }
-
-snmpTargetAddrEntry OBJECT-TYPE
-    SYNTAX      SnmpTargetAddrEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A transport address to be used in the generation
-         of SNMP operations.
-
-         Entries in the snmpTargetAddrTable are created and
-         deleted using the snmpTargetAddrRowStatus object."
-    INDEX { IMPLIED snmpTargetAddrName }
-    ::= { snmpTargetAddrTable 1 }
-
-SnmpTargetAddrEntry ::= SEQUENCE {
-    snmpTargetAddrName         SnmpAdminString,
-    snmpTargetAddrTDomain      TDomain,
-    snmpTargetAddrTAddress     TAddress,
-    snmpTargetAddrTimeout      TimeInterval,
-    snmpTargetAddrRetryCount   Integer32,
-    snmpTargetAddrTagList      SnmpTagList,
-    snmpTargetAddrParams       SnmpAdminString,
-    snmpTargetAddrStorageType  StorageType,
-    snmpTargetAddrRowStatus    RowStatus
-}
-
-snmpTargetAddrName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(1..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The locally arbitrary, but unique identifier associated
-         with this snmpTargetAddrEntry."
-    ::= { snmpTargetAddrEntry 1 }
-
-snmpTargetAddrTDomain OBJECT-TYPE
-    SYNTAX      TDomain
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object indicates the transport type of the address
-         contained in the snmpTargetAddrTAddress object."
-    ::= { snmpTargetAddrEntry 2 }
-
-snmpTargetAddrTAddress OBJECT-TYPE
-    SYNTAX      TAddress
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object contains a transport address.  The format of
-         this address depends on the value of the
-         snmpTargetAddrTDomain object."
-    ::= { snmpTargetAddrEntry 3 }
-
-snmpTargetAddrTimeout OBJECT-TYPE
-    SYNTAX      TimeInterval
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object should reflect the expected maximum round
-         trip time for communicating with the transport address
-         defined by this row.  When a message is sent to this
-         address, and a response (if one is expected) is not
-         received within this time period, an implementation
-         may assume that the response will not be delivered.
-
-         Note that the time interval that an application waits
-         for a response may actually be derived from the value
-         of this object.  The method for deriving the actual time
-         interval is implementation dependent.  One such method
-         is to derive the expected round trip time based on a
-         particular retransmission algorithm and on the number
-         of timeouts which have occurred.  The type of message may
-         also be considered when deriving expected round trip
-         times for retransmissions.  For example, if a message is
-         being sent with a securityLevel that indicates both
-
-         authentication and privacy, the derived value may be
-         increased to compensate for extra processing time spent
-         during authentication and encryption processing."
-    DEFVAL { 1500 }
-    ::= { snmpTargetAddrEntry 4 }
-
-snmpTargetAddrRetryCount OBJECT-TYPE
-    SYNTAX      Integer32 (0..255)
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object specifies a default number of retries to be
-         attempted when a response is not received for a generated
-         message.  An application may provide its own retry count,
-         in which case the value of this object is ignored."
-    DEFVAL { 3 }
-    ::= { snmpTargetAddrEntry 5 }
-
-snmpTargetAddrTagList OBJECT-TYPE
-    SYNTAX      SnmpTagList
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "This object contains a list of tag values which are
-         used to select target addresses for a particular
-         operation."
-    DEFVAL { "" }
-    ::= { snmpTargetAddrEntry 6 }
-
-snmpTargetAddrParams OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(1..32))
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The value of this object identifies an entry in the
-         snmpTargetParamsTable.  The identified entry
-         contains SNMP parameters to be used when generating
-         messages to be sent to this transport address."
-    ::= { snmpTargetAddrEntry 7 }
-
-snmpTargetAddrStorageType 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 }
-    ::= { snmpTargetAddrEntry 8 }
-
-snmpTargetAddrRowStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The status of this conceptual row.
-
-         To create a row in this table, a manager 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 snmpTargetAddrRowStatus
-         column is 'notReady'.
-
-         In particular, a newly created row cannot be made
-         active until the corresponding instances of
-         snmpTargetAddrTDomain, snmpTargetAddrTAddress, and
-         snmpTargetAddrParams have all been set.
-
-         The following objects may not be modified while the
-         value of this object is active(1):
-             - snmpTargetAddrTDomain
-             - snmpTargetAddrTAddress
-         An attempt to set these objects while the value of
-         snmpTargetAddrRowStatus is active(1) will result in
-         an inconsistentValue error."
-    ::= { snmpTargetAddrEntry 9 }
-
-snmpTargetParamsTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF SnmpTargetParamsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A table of SNMP target information to be used
-         in the generation of SNMP messages."
-    ::= { snmpTargetObjects 3 }
-
-snmpTargetParamsEntry OBJECT-TYPE
-    SYNTAX      SnmpTargetParamsEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A set of SNMP target information.
-
-         Entries in the snmpTargetParamsTable are created and
-         deleted using the snmpTargetParamsRowStatus object."
-    INDEX { IMPLIED snmpTargetParamsName }
-    ::= { snmpTargetParamsTable 1 }
-
-SnmpTargetParamsEntry ::= SEQUENCE {
-    snmpTargetParamsName           SnmpAdminString,
-    snmpTargetParamsMPModel        SnmpMessageProcessingModel,
-    snmpTargetParamsSecurityModel  SnmpSecurityModel,
-    snmpTargetParamsSecurityName   SnmpAdminString,
-    snmpTargetParamsSecurityLevel  SnmpSecurityLevel,
-    snmpTargetParamsStorageType    StorageType,
-    snmpTargetParamsRowStatus      RowStatus
-}
-
-snmpTargetParamsName OBJECT-TYPE
-    SYNTAX      SnmpAdminString (SIZE(1..32))
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "The locally arbitrary, but unique identifier associated
-         with this snmpTargetParamsEntry."
-    ::= { snmpTargetParamsEntry 1 }
-
-snmpTargetParamsMPModel OBJECT-TYPE
-    SYNTAX      SnmpMessageProcessingModel
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The Message Processing Model to be used when generating
-         SNMP messages using this entry."
-    ::= { snmpTargetParamsEntry 2 }
-
-snmpTargetParamsSecurityModel OBJECT-TYPE
-    SYNTAX      SnmpSecurityModel (1..2147483647)
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The Security Model to be used when generating SNMP
-          messages using this entry.  An implementation may
-          choose to return an inconsistentValue error if an
-          attempt is made to set this variable to a value
-          for a security model which the implementation does
-          not support."
-    ::= { snmpTargetParamsEntry 3 }
-
-snmpTargetParamsSecurityName OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The securityName which identifies the Principal on
-         whose behalf SNMP messages will be generated using
-         this entry."
-    ::= { snmpTargetParamsEntry 4 }
-
-snmpTargetParamsSecurityLevel OBJECT-TYPE
-    SYNTAX      SnmpSecurityLevel
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The Level of Security to be used when generating
-         SNMP messages using this entry."
-    ::= { snmpTargetParamsEntry 5 }
-
-snmpTargetParamsStorageType 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 }
-    ::= { snmpTargetParamsEntry 6 }
-
-snmpTargetParamsRowStatus OBJECT-TYPE
-    SYNTAX      RowStatus
-    MAX-ACCESS  read-create
-    STATUS      current
-    DESCRIPTION
-        "The status of this conceptual row.
-
-         To create a row in this table, a manager 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 snmpTargetParamsRowStatus
-         column is 'notReady'.
-
-         In particular, a newly created row cannot be made
-         active until the corresponding
-         snmpTargetParamsMPModel,
-         snmpTargetParamsSecurityModel,
-         snmpTargetParamsSecurityName,
-         and snmpTargetParamsSecurityLevel have all been set.
-
-         The following objects may not be modified while the
-         value of this object is active(1):
-             - snmpTargetParamsMPModel
-             - snmpTargetParamsSecurityModel
-             - snmpTargetParamsSecurityName
-             - snmpTargetParamsSecurityLevel
-         An attempt to set these objects while the value of
-         snmpTargetParamsRowStatus is active(1) will result in
-         an inconsistentValue error."
-    ::= { snmpTargetParamsEntry 7 }
-
-snmpUnavailableContexts OBJECT-TYPE
-    SYNTAX       Counter32
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION
-        "The total number of packets received by the SNMP
-         engine which were dropped because the context
-         contained in the message was unavailable."
-    ::= { snmpTargetObjects 4 }
-
-snmpUnknownContexts OBJECT-TYPE
-    SYNTAX       Counter32
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION
-        "The total number of packets received by the SNMP
-         engine which were dropped because the context
-         contained in the message was unknown."
-    ::= { snmpTargetObjects 5 }
-
---
---
--- Conformance information
---
---
-
-snmpTargetCompliances OBJECT IDENTIFIER ::=
-                                        { snmpTargetConformance 1 }
-snmpTargetGroups      OBJECT IDENTIFIER ::=
-                                        { snmpTargetConformance 2 }
-
---
---
--- Compliance statements
-
---
---
-
-snmpTargetCommandResponderCompliance MODULE-COMPLIANCE
-    STATUS      current
-    DESCRIPTION
-        "The compliance statement for SNMP entities which include
-         a command responder application."
-    MODULE -- This Module
-        MANDATORY-GROUPS { snmpTargetCommandResponderGroup }
-    ::= { snmpTargetCompliances 1 }
-
-snmpTargetBasicGroup OBJECT-GROUP
-    OBJECTS {
-        snmpTargetSpinLock,
-        snmpTargetAddrTDomain,
-        snmpTargetAddrTAddress,
-        snmpTargetAddrTagList,
-        snmpTargetAddrParams,
-        snmpTargetAddrStorageType,
-        snmpTargetAddrRowStatus,
-        snmpTargetParamsMPModel,
-        snmpTargetParamsSecurityModel,
-        snmpTargetParamsSecurityName,
-        snmpTargetParamsSecurityLevel,
-        snmpTargetParamsStorageType,
-        snmpTargetParamsRowStatus
-    }
-    STATUS      current
-    DESCRIPTION
-        "A collection of objects providing basic remote
-         configuration of management targets."
-    ::= { snmpTargetGroups 1 }
-
-snmpTargetResponseGroup OBJECT-GROUP
-    OBJECTS {
-        snmpTargetAddrTimeout,
-        snmpTargetAddrRetryCount
-    }
-    STATUS      current
-    DESCRIPTION
-        "A collection of objects providing remote configuration
-         of management targets for applications which generate
-         SNMP messages for which a response message would be
-         expected."
-    ::= { snmpTargetGroups 2 }
-
-snmpTargetCommandResponderGroup OBJECT-GROUP
-
-    OBJECTS {
-        snmpUnavailableContexts,
-        snmpUnknownContexts
-    }
-    STATUS      current
-    DESCRIPTION
-        "A collection of objects required for command responder
-         applications, used for counting error conditions."
-    ::= { snmpTargetGroups 3 }
-
-END
diff --git a/mibs/SNMP-TLS-TM-MIB.txt b/mibs/SNMP-TLS-TM-MIB.txt
deleted file mode 100644
index 848dff1..0000000
--- a/mibs/SNMP-TLS-TM-MIB.txt
+++ /dev/null
@@ -1,1065 +0,0 @@
-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 at lists.ietf.org
-                  Subscribe:  isms-request at lists.ietf.org
-
-                  Chairs:
-                     Juergen Schoenwaelder
-                     Jacobs University Bremen
-                     Campus Ring 1
-                     28725 Bremen
-                     Germany
-                     +49 421 200-3587
-                     j.schoenwaelder at 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 at 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 at Example.COM
-                  is mapped to tmSecurityName: FooBar at 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
deleted file mode 100644
index 4ccf09b..0000000
--- a/mibs/SNMP-TSM-MIB.txt
+++ /dev/null
@@ -1,234 +0,0 @@
-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 at lists.ietf.org
-                  Subscribe:  isms-request at lists.ietf.org
-
-                  Chairs:
-                    Juergen Quittek
-                    NEC Europe Ltd.
-                    Network Laboratories
-                    Kurfuersten-Anlage 36
-                    69115 Heidelberg
-                    Germany
-                    +49 6221 90511-15
-                    quittek at netlab.nec.de
-
-                    Juergen Schoenwaelder
-                    Jacobs University Bremen
-                    Campus Ring 1
-                    28725 Bremen
-                    Germany
-                    +49 421 200-3587
-                    j.schoenwaelder at jacobs-university.de
-
-                  Editor:
-                    David Harrington
-                    Huawei Technologies USA
-                    1700 Alma Dr.
-                    Plano TX 75075
-                    USA
-                    +1 603-436-8634
-                    ietfdbh at comcast.net
-
-                    Wes Hardaker
-                    Cobham Analytic Solutions
-                    P.O. Box 382
-                    Davis, CA  95617
-                    USA
-                    +1 530 792 1913
-                    ietf at 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/SNMP-USER-BASED-SM-MIB.txt b/mibs/SNMP-USER-BASED-SM-MIB.txt
deleted file mode 100644
index 3b71403..0000000
--- a/mibs/SNMP-USER-BASED-SM-MIB.txt
+++ /dev/null
@@ -1,912 +0,0 @@
-SNMP-USER-BASED-SM-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE,
-    OBJECT-IDENTITY,
-    snmpModules, Counter32                FROM SNMPv2-SMI
-    TEXTUAL-CONVENTION, TestAndIncr,
-    RowStatus, RowPointer,
-    StorageType, AutonomousType           FROM SNMPv2-TC
-    MODULE-COMPLIANCE, OBJECT-GROUP       FROM SNMPv2-CONF
-    SnmpAdminString, SnmpEngineID,
-    snmpAuthProtocols, snmpPrivProtocols  FROM SNMP-FRAMEWORK-MIB;
-
-snmpUsmMIB MODULE-IDENTITY
-    LAST-UPDATED "200210160000Z"            -- 16 Oct 2002, midnight
-    ORGANIZATION "SNMPv3 Working Group"
-    CONTACT-INFO "WG-email:   snmpv3 at lists.tislabs.com
-                  Subscribe:  majordomo at lists.tislabs.com
-                              In msg body:  subscribe snmpv3
-
-                  Chair:      Russ Mundy
-                              Network Associates Laboratories
-                  postal:     15204 Omega Drive, Suite 300
-                              Rockville, MD 20850-4601
-                              USA
-                  email:      mundy at tislabs.com
-
-                  phone:      +1 301-947-7107
-
-                  Co-Chair:   David Harrington
-                              Enterasys Networks
-                  Postal:     35 Industrial Way
-                              P. O. Box 5004
-                              Rochester, New Hampshire 03866-5005
-                              USA
-                  EMail:      dbh at enterasys.com
-                  Phone:      +1 603-337-2614
-
-                  Co-editor   Uri Blumenthal
-                              Lucent Technologies
-                  postal:     67 Whippany Rd.
-                              Whippany, NJ 07981
-                              USA
-                  email:      uri at lucent.com
-                  phone:      +1-973-386-2163
-
-                  Co-editor:  Bert Wijnen
-                              Lucent Technologies
-                  postal:     Schagen 33
-                              3461 GL Linschoten
-                              Netherlands
-                  email:      bwijnen at lucent.com
-                  phone:      +31-348-480-685
-                 "
-    DESCRIPTION  "The management information definitions for the
-                  SNMP User-based Security Model.
-
-                  Copyright (C) The Internet Society (2002). This
-                  version of this MIB module is part of RFC 3414;
-                  see the RFC itself for full legal notices.
-                 "
---  Revision history
-
-    REVISION     "200210160000Z"          -- 16 Oct 2002, midnight
-    DESCRIPTION  "Changes in this revision:
-                  - Updated references and contact info.
-                  - Clarification to usmUserCloneFrom DESCRIPTION
-                    clause
-                  - Fixed 'command responder' into 'command generator'
-                    in last para of DESCRIPTION clause of
-                    usmUserTable.
-                  This revision published as RFC3414.
-                 "
-    REVISION     "199901200000Z"          -- 20 Jan 1999, midnight
-    DESCRIPTION  "Clarifications, published as RFC2574"
-
-    REVISION     "199711200000Z"          -- 20 Nov 1997, midnight
-    DESCRIPTION  "Initial version, published as RFC2274"
-    ::= { snmpModules 15 }
-
--- Administrative assignments ****************************************
-
-usmMIBObjects     OBJECT IDENTIFIER ::= { snmpUsmMIB 1 }
-usmMIBConformance OBJECT IDENTIFIER ::= { snmpUsmMIB 2 }
-
--- Identification of Authentication and Privacy Protocols ************
-
-usmNoAuthProtocol OBJECT-IDENTITY
-    STATUS        current
-    DESCRIPTION  "No Authentication Protocol."
-    ::= { snmpAuthProtocols 1 }
-
-usmHMACMD5AuthProtocol OBJECT-IDENTITY
-    STATUS        current
-    DESCRIPTION  "The HMAC-MD5-96 Digest Authentication Protocol."
-    REFERENCE    "- H. Krawczyk, M. Bellare, R. Canetti HMAC:
-                    Keyed-Hashing for Message Authentication,
-                    RFC2104, Feb 1997.
-                  - Rivest, R., Message Digest Algorithm MD5, RFC1321.
-                 "
-    ::= { snmpAuthProtocols 2 }
-
-usmHMACSHAAuthProtocol OBJECT-IDENTITY
-    STATUS        current
-    DESCRIPTION  "The HMAC-SHA-96 Digest Authentication Protocol."
-    REFERENCE    "- H. Krawczyk, M. Bellare, R. Canetti, HMAC:
-                    Keyed-Hashing for Message Authentication,
-                    RFC2104, Feb 1997.
-                  - Secure Hash Algorithm. NIST FIPS 180-1.
-                 "
-    ::= { snmpAuthProtocols 3 }
-
-usmNoPrivProtocol OBJECT-IDENTITY
-    STATUS        current
-    DESCRIPTION  "No Privacy Protocol."
-    ::= { snmpPrivProtocols 1 }
-
-usmDESPrivProtocol OBJECT-IDENTITY
-    STATUS        current
-    DESCRIPTION  "The CBC-DES Symmetric Encryption Protocol."
-    REFERENCE    "- Data Encryption Standard, National Institute of
-                    Standards and Technology.  Federal Information
-                    Processing Standard (FIPS) Publication 46-1.
-
-                    Supersedes FIPS Publication 46,
-                    (January, 1977; reaffirmed January, 1988).
-
-                  - Data Encryption Algorithm, American National
-                    Standards Institute.  ANSI X3.92-1981,
-                    (December, 1980).
-
-                  - DES Modes of Operation, National Institute of
-                    Standards and Technology.  Federal Information
-                    Processing Standard (FIPS) Publication 81,
-                    (December, 1980).
-
-                  - Data Encryption Algorithm - Modes of Operation,
-                    American National Standards Institute.
-                    ANSI X3.106-1983, (May 1983).
-                 "
-    ::= { snmpPrivProtocols 2 }
-
--- Textual Conventions ***********************************************
-
-KeyChange ::=     TEXTUAL-CONVENTION
-   STATUS         current
-   DESCRIPTION
-         "Every definition of an object with this syntax must identify
-          a protocol P, a secret key K, and a hash algorithm H
-          that produces output of L octets.
-
-          The object's value is a manager-generated, partially-random
-          value which, when modified, causes the value of the secret
-          key K, to be modified via a one-way function.
-
-          The value of an instance of this object is the concatenation
-          of two components: first a 'random' component and then a
-          'delta' component.
-
-          The lengths of the random and delta components
-          are given by the corresponding value of the protocol P;
-          if P requires K to be a fixed length, the length of both the
-          random and delta components is that fixed length; if P
-          allows the length of K to be variable up to a particular
-          maximum length, the length of the random component is that
-          maximum length and the length of the delta component is any
-          length less than or equal to that maximum length.
-          For example, usmHMACMD5AuthProtocol requires K to be a fixed
-          length of 16 octets and L - of 16 octets.
-          usmHMACSHAAuthProtocol requires K to be a fixed length of
-          20 octets and L - of 20 octets. Other protocols may define
-          other sizes, as deemed appropriate.
-
-          When a requester wants to change the old key K to a new
-          key keyNew on a remote entity, the 'random' component is
-          obtained from either a true random generator, or from a
-          pseudorandom generator, and the 'delta' component is
-          computed as follows:
-
-           - a temporary variable is initialized to the existing value
-             of K;
-           - if the length of the keyNew is greater than L octets,
-             then:
-              - the random component is appended to the value of the
-                temporary variable, and the result is input to the
-                the hash algorithm H to produce a digest value, and
-                the temporary variable is set to this digest value;
-              - the value of the temporary variable is XOR-ed with
-                the first (next) L-octets (16 octets in case of MD5)
-                of the keyNew to produce the first (next) L-octets
-                (16 octets in case of MD5) of the 'delta' component.
-              - the above two steps are repeated until the unused
-                portion of the keyNew component is L octets or less,
-           - the random component is appended to the value of the
-             temporary variable, and the result is input to the
-             hash algorithm H to produce a digest value;
-           - this digest value, truncated if necessary to be the same
-             length as the unused portion of the keyNew, is XOR-ed
-             with the unused portion of the keyNew to produce the
-             (final portion of the) 'delta' component.
-
-           For example, using MD5 as the hash algorithm H:
-
-              iterations = (lenOfDelta - 1)/16; /* integer division */
-              temp = keyOld;
-              for (i = 0; i < iterations; i++) {
-                  temp = MD5 (temp || random);
-                  delta[i*16 .. (i*16)+15] =
-                         temp XOR keyNew[i*16 .. (i*16)+15];
-              }
-              temp = MD5 (temp || random);
-              delta[i*16 .. lenOfDelta-1] =
-                     temp XOR keyNew[i*16 .. lenOfDelta-1];
-
-          The 'random' and 'delta' components are then concatenated as
-          described above, and the resulting octet string is sent to
-          the recipient as the new value of an instance of this object.
-
-          At the receiver side, when an instance of this object is set
-          to a new value, then a new value of K is computed as follows:
-
-           - a temporary variable is initialized to the existing value
-             of K;
-           - if the length of the delta component is greater than L
-             octets, then:
-              - the random component is appended to the value of the
-                temporary variable, and the result is input to the
-                hash algorithm H to produce a digest value, and the
-                temporary variable is set to this digest value;
-              - the value of the temporary variable is XOR-ed with
-                the first (next) L-octets (16 octets in case of MD5)
-                of the delta component to produce the first (next)
-                L-octets (16 octets in case of MD5) of the new value
-                of K.
-              - the above two steps are repeated until the unused
-                portion of the delta component is L octets or less,
-           - the random component is appended to the value of the
-             temporary variable, and the result is input to the
-             hash algorithm H to produce a digest value;
-           - this digest value, truncated if necessary to be the same
-             length as the unused portion of the delta component, is
-             XOR-ed with the unused portion of the delta component to
-             produce the (final portion of the) new value of K.
-
-           For example, using MD5 as the hash algorithm H:
-
-              iterations = (lenOfDelta - 1)/16; /* integer division */
-              temp = keyOld;
-              for (i = 0; i < iterations; i++) {
-                  temp = MD5 (temp || random);
-                  keyNew[i*16 .. (i*16)+15] =
-                         temp XOR delta[i*16 .. (i*16)+15];
-              }
-              temp = MD5 (temp || random);
-              keyNew[i*16 .. lenOfDelta-1] =
-                     temp XOR delta[i*16 .. lenOfDelta-1];
-
-          The value of an object with this syntax, whenever it is
-          retrieved by the management protocol, is always the zero
-          length string.
-
-          Note that the keyOld and keyNew are the localized keys.
-
-          Note that it is probably wise that when an SNMP entity sends
-          a SetRequest to change a key, that it keeps a copy of the old
-          key until it has confirmed that the key change actually
-          succeeded.
-         "
-    SYNTAX       OCTET STRING
-
--- Statistics for the User-based Security Model **********************
-
-usmStats         OBJECT IDENTIFIER ::= { usmMIBObjects 1 }
-
-usmStatsUnsupportedSecLevels OBJECT-TYPE
-    SYNTAX       Counter32
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "The total number of packets received by the SNMP
-                 engine which were dropped because they requested a
-                 securityLevel that was unknown to the SNMP engine
-                 or otherwise unavailable.
-                "
-    ::= { usmStats 1 }
-
-usmStatsNotInTimeWindows OBJECT-TYPE
-    SYNTAX       Counter32
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "The total number of packets received by the SNMP
-                 engine which were dropped because they appeared
-                 outside of the authoritative SNMP engine's window.
-                "
-    ::= { usmStats 2 }
-
-usmStatsUnknownUserNames OBJECT-TYPE
-    SYNTAX       Counter32
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "The total number of packets received by the SNMP
-                 engine which were dropped because they referenced a
-                 user that was not known to the SNMP engine.
-                "
-    ::= { usmStats 3 }
-
-usmStatsUnknownEngineIDs OBJECT-TYPE
-    SYNTAX       Counter32
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "The total number of packets received by the SNMP
-                 engine which were dropped because they referenced an
-                 snmpEngineID that was not known to the SNMP engine.
-                "
-    ::= { usmStats 4 }
-
-usmStatsWrongDigests OBJECT-TYPE
-    SYNTAX       Counter32
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "The total number of packets received by the SNMP
-                 engine which were dropped because they didn't
-                 contain the expected digest value.
-                "
-    ::= { usmStats 5 }
-
-usmStatsDecryptionErrors OBJECT-TYPE
-    SYNTAX       Counter32
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "The total number of packets received by the SNMP
-                 engine which were dropped because they could not be
-                 decrypted.
-                "
-    ::= { usmStats 6 }
-
--- The usmUser Group ************************************************
-
-usmUser          OBJECT IDENTIFIER ::= { usmMIBObjects 2 }
-
-usmUserSpinLock  OBJECT-TYPE
-    SYNTAX       TestAndIncr
-    MAX-ACCESS   read-write
-    STATUS       current
-    DESCRIPTION "An advisory lock used to allow several cooperating
-                 Command Generator Applications to coordinate their
-                 use of facilities to alter secrets in the
-                 usmUserTable.
-                "
-    ::= { usmUser 1 }
-
--- The table of valid users for the User-based Security Model ********
-
-usmUserTable     OBJECT-TYPE
-    SYNTAX       SEQUENCE OF UsmUserEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "The table of users configured in the SNMP engine's
-                 Local Configuration Datastore (LCD).
-
-                 To create a new user (i.e., to instantiate a new
-                 conceptual row in this table), it is recommended to
-                 follow this procedure:
-
-                   1)  GET(usmUserSpinLock.0) and save in sValue.
-
-                   2)  SET(usmUserSpinLock.0=sValue,
-                           usmUserCloneFrom=templateUser,
-                           usmUserStatus=createAndWait)
-                       You should use a template user to clone from
-                       which has the proper auth/priv protocol defined.
-
-                 If the new user is to use privacy:
-
-                   3)  generate the keyChange value based on the secret
-                       privKey of the clone-from user and the secret key
-                       to be used for the new user. Let us call this
-                       pkcValue.
-                   4)  GET(usmUserSpinLock.0) and save in sValue.
-                   5)  SET(usmUserSpinLock.0=sValue,
-                           usmUserPrivKeyChange=pkcValue
-                           usmUserPublic=randomValue1)
-                   6)  GET(usmUserPulic) and check it has randomValue1.
-                       If not, repeat steps 4-6.
-
-                 If the new user will never use privacy:
-
-                   7)  SET(usmUserPrivProtocol=usmNoPrivProtocol)
-
-                 If the new user is to use authentication:
-
-                   8)  generate the keyChange value based on the secret
-                       authKey of the clone-from user and the secret key
-                       to be used for the new user. Let us call this
-                       akcValue.
-                   9)  GET(usmUserSpinLock.0) and save in sValue.
-                   10) SET(usmUserSpinLock.0=sValue,
-                           usmUserAuthKeyChange=akcValue
-                           usmUserPublic=randomValue2)
-                   11) GET(usmUserPulic) and check it has randomValue2.
-                       If not, repeat steps 9-11.
-
-                 If the new user will never use authentication:
-
-                   12) SET(usmUserAuthProtocol=usmNoAuthProtocol)
-
-                 Finally, activate the new user:
-
-                   13) SET(usmUserStatus=active)
-
-                 The new user should now be available and ready to be
-                 used for SNMPv3 communication. Note however that access
-                 to MIB data must be provided via configuration of the
-                 SNMP-VIEW-BASED-ACM-MIB.
-
-                 The use of usmUserSpinlock is to avoid conflicts with
-                 another SNMP command generator application which may
-                 also be acting on the usmUserTable.
-                "
-    ::= { usmUser 2 }
-
-usmUserEntry     OBJECT-TYPE
-    SYNTAX       UsmUserEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "A user configured in the SNMP engine's Local
-                 Configuration Datastore (LCD) for the User-based
-                 Security Model.
-                "
-    INDEX       { usmUserEngineID,
-                  usmUserName
-                }
-    ::= { usmUserTable 1 }
-
-UsmUserEntry ::= SEQUENCE
-    {
-        usmUserEngineID         SnmpEngineID,
-        usmUserName             SnmpAdminString,
-        usmUserSecurityName     SnmpAdminString,
-        usmUserCloneFrom        RowPointer,
-        usmUserAuthProtocol     AutonomousType,
-        usmUserAuthKeyChange    KeyChange,
-        usmUserOwnAuthKeyChange KeyChange,
-        usmUserPrivProtocol     AutonomousType,
-        usmUserPrivKeyChange    KeyChange,
-        usmUserOwnPrivKeyChange KeyChange,
-        usmUserPublic           OCTET STRING,
-        usmUserStorageType      StorageType,
-        usmUserStatus           RowStatus
-    }
-
-usmUserEngineID  OBJECT-TYPE
-    SYNTAX       SnmpEngineID
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "An SNMP engine's administratively-unique identifier.
-
-                 In a simple agent, this value is always that agent's
-                 own snmpEngineID value.
-
-                 The value can also take the value of the snmpEngineID
-                 of a remote SNMP engine with which this user can
-                 communicate.
-                "
-    ::= { usmUserEntry 1 }
-
-usmUserName      OBJECT-TYPE
-    SYNTAX       SnmpAdminString (SIZE(1..32))
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "A human readable string representing the name of
-                 the user.
-
-                 This is the (User-based Security) Model dependent
-                 security ID.
-                "
-    ::= { usmUserEntry 2 }
-
-usmUserSecurityName OBJECT-TYPE
-    SYNTAX       SnmpAdminString
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "A human readable string representing the user in
-                 Security Model independent format.
-
-                 The default transformation of the User-based Security
-                 Model dependent security ID to the securityName and
-                 vice versa is the identity function so that the
-                 securityName is the same as the userName.
-                "
-    ::= { usmUserEntry 3 }
-
-usmUserCloneFrom OBJECT-TYPE
-    SYNTAX       RowPointer
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "A pointer to another conceptual row in this
-                 usmUserTable.  The user in this other conceptual
-                 row is called the clone-from user.
-
-                 When a new user is created (i.e., a new conceptual
-                 row is instantiated in this table), the privacy and
-                 authentication parameters of the new user must be
-                 cloned from its clone-from user. These parameters are:
-                   - authentication protocol (usmUserAuthProtocol)
-                   - privacy protocol (usmUserPrivProtocol)
-                 They will be copied regardless of what the current
-                 value is.
-
-                 Cloning also causes the initial values of the secret
-                 authentication key (authKey) and the secret encryption
-
-                 key (privKey) of the new user to be set to the same
-                 values as the corresponding secrets of the clone-from
-                 user to allow the KeyChange process to occur as
-                 required during user creation.
-
-                 The first time an instance of this object is set by
-                 a management operation (either at or after its
-                 instantiation), the cloning process is invoked.
-                 Subsequent writes are successful but invoke no
-                 action to be taken by the receiver.
-                 The cloning process fails with an 'inconsistentName'
-                 error if the conceptual row representing the
-                 clone-from user does not exist or is not in an active
-                 state when the cloning process is invoked.
-
-                 When this object is read, the ZeroDotZero OID
-                 is returned.
-                "
-    ::= { usmUserEntry 4 }
-
-usmUserAuthProtocol OBJECT-TYPE
-    SYNTAX       AutonomousType
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "An indication of whether messages sent on behalf of
-                 this user to/from the SNMP engine identified by
-                 usmUserEngineID, can be authenticated, and if so,
-                 the type of authentication protocol which is used.
-
-                 An instance of this object is created concurrently
-                 with the creation of any other object instance for
-                 the same user (i.e., as part of the processing of
-                 the set operation which creates the first object
-                 instance in the same conceptual row).
-
-                 If an initial set operation (i.e. at row creation time)
-                 tries to set a value for an unknown or unsupported
-                 protocol, then a 'wrongValue' error must be returned.
-
-                 The value will be overwritten/set when a set operation
-                 is performed on the corresponding instance of
-                 usmUserCloneFrom.
-
-                 Once instantiated, the value of such an instance of
-                 this object can only be changed via a set operation to
-                 the value of the usmNoAuthProtocol.
-
-                 If a set operation tries to change the value of an
-
-                 existing instance of this object to any value other
-                 than usmNoAuthProtocol, then an 'inconsistentValue'
-                 error must be returned.
-
-                 If a set operation tries to set the value to the
-                 usmNoAuthProtocol while the usmUserPrivProtocol value
-                 in the same row is not equal to usmNoPrivProtocol,
-                 then an 'inconsistentValue' error must be returned.
-                 That means that an SNMP command generator application
-                 must first ensure that the usmUserPrivProtocol is set
-                 to the usmNoPrivProtocol value before it can set
-                 the usmUserAuthProtocol value to usmNoAuthProtocol.
-                "
-    DEFVAL      { usmNoAuthProtocol }
-    ::= { usmUserEntry 5 }
-
-usmUserAuthKeyChange OBJECT-TYPE
-    SYNTAX       KeyChange   -- typically (SIZE (0 | 32)) for HMACMD5
-                             -- typically (SIZE (0 | 40)) for HMACSHA
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "An object, which when modified, causes the secret
-                 authentication key used for messages sent on behalf
-                 of this user to/from the SNMP engine identified by
-                 usmUserEngineID, to be modified via a one-way
-                 function.
-
-                 The associated protocol is the usmUserAuthProtocol.
-                 The associated secret key is the user's secret
-                 authentication key (authKey). The associated hash
-                 algorithm is the algorithm used by the user's
-                 usmUserAuthProtocol.
-
-                 When creating a new user, it is an 'inconsistentName'
-                 error for a set operation to refer to this object
-                 unless it is previously or concurrently initialized
-                 through a set operation on the corresponding instance
-                 of usmUserCloneFrom.
-
-                 When the value of the corresponding usmUserAuthProtocol
-                 is usmNoAuthProtocol, then a set is successful, but
-                 effectively is a no-op.
-
-                 When this object is read, the zero-length (empty)
-                 string is returned.
-
-                 The recommended way to do a key change is as follows:
-
-                   1) GET(usmUserSpinLock.0) and save in sValue.
-                   2) generate the keyChange value based on the old
-                      (existing) secret key and the new secret key,
-                      let us call this kcValue.
-
-                 If you do the key change on behalf of another user:
-
-                   3) SET(usmUserSpinLock.0=sValue,
-                          usmUserAuthKeyChange=kcValue
-                          usmUserPublic=randomValue)
-
-                 If you do the key change for yourself:
-
-                   4) SET(usmUserSpinLock.0=sValue,
-                          usmUserOwnAuthKeyChange=kcValue
-                          usmUserPublic=randomValue)
-
-                 If you get a response with error-status of noError,
-                 then the SET succeeded and the new key is active.
-                 If you do not get a response, then you can issue a
-                 GET(usmUserPublic) and check if the value is equal
-                 to the randomValue you did send in the SET. If so, then
-                 the key change succeeded and the new key is active
-                 (probably the response got lost). If not, then the SET
-                 request probably never reached the target and so you
-                 can start over with the procedure above.
-                "
-    DEFVAL      { ''H }    -- the empty string
-    ::= { usmUserEntry 6 }
-
-usmUserOwnAuthKeyChange OBJECT-TYPE
-    SYNTAX       KeyChange   -- typically (SIZE (0 | 32)) for HMACMD5
-                             -- typically (SIZE (0 | 40)) for HMACSHA
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "Behaves exactly as usmUserAuthKeyChange, with one
-                 notable difference: in order for the set operation
-                 to succeed, the usmUserName of the operation
-                 requester must match the usmUserName that
-                 indexes the row which is targeted by this
-                 operation.
-                 In addition, the USM security model must be
-                 used for this operation.
-
-                 The idea here is that access to this column can be
-                 public, since it will only allow a user to change
-                 his own secret authentication key (authKey).
-                 Note that this can only be done once the row is active.
-
-                 When a set is received and the usmUserName of the
-                 requester is not the same as the umsUserName that
-                 indexes the row which is targeted by this operation,
-                 then a 'noAccess' error must be returned.
-
-                 When a set is received and the security model in use
-                 is not USM, then a 'noAccess' error must be returned.
-                "
-    DEFVAL      { ''H }    -- the empty string
-    ::= { usmUserEntry 7 }
-
-usmUserPrivProtocol OBJECT-TYPE
-    SYNTAX       AutonomousType
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "An indication of whether messages sent on behalf of
-                 this user to/from the SNMP engine identified by
-                 usmUserEngineID, can be protected from disclosure,
-                 and if so, the type of privacy protocol which is used.
-
-                 An instance of this object is created concurrently
-                 with the creation of any other object instance for
-                 the same user (i.e., as part of the processing of
-                 the set operation which creates the first object
-                 instance in the same conceptual row).
-
-                 If an initial set operation (i.e. at row creation time)
-                 tries to set a value for an unknown or unsupported
-                 protocol, then a 'wrongValue' error must be returned.
-
-                 The value will be overwritten/set when a set operation
-                 is performed on the corresponding instance of
-                 usmUserCloneFrom.
-
-                 Once instantiated, the value of such an instance of
-                 this object can only be changed via a set operation to
-                 the value of the usmNoPrivProtocol.
-
-                 If a set operation tries to change the value of an
-                 existing instance of this object to any value other
-                 than usmNoPrivProtocol, then an 'inconsistentValue'
-                 error must be returned.
-
-                 Note that if any privacy protocol is used, then you
-                 must also use an authentication protocol. In other
-                 words, if usmUserPrivProtocol is set to anything else
-                 than usmNoPrivProtocol, then the corresponding instance
-                 of usmUserAuthProtocol cannot have a value of
-
-                 usmNoAuthProtocol. If it does, then an
-                 'inconsistentValue' error must be returned.
-                "
-    DEFVAL      { usmNoPrivProtocol }
-    ::= { usmUserEntry 8 }
-
-usmUserPrivKeyChange OBJECT-TYPE
-    SYNTAX       KeyChange  -- typically (SIZE (0 | 32)) for DES
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "An object, which when modified, causes the secret
-                 encryption key used for messages sent on behalf
-                 of this user to/from the SNMP engine identified by
-                 usmUserEngineID, to be modified via a one-way
-                 function.
-
-                 The associated protocol is the usmUserPrivProtocol.
-                 The associated secret key is the user's secret
-                 privacy key (privKey). The associated hash
-                 algorithm is the algorithm used by the user's
-                 usmUserAuthProtocol.
-
-                 When creating a new user, it is an 'inconsistentName'
-                 error for a set operation to refer to this object
-                 unless it is previously or concurrently initialized
-                 through a set operation on the corresponding instance
-                 of usmUserCloneFrom.
-
-                 When the value of the corresponding usmUserPrivProtocol
-                 is usmNoPrivProtocol, then a set is successful, but
-                 effectively is a no-op.
-
-                 When this object is read, the zero-length (empty)
-                 string is returned.
-                 See the description clause of usmUserAuthKeyChange for
-                 a recommended procedure to do a key change.
-                "
-    DEFVAL      { ''H }    -- the empty string
-    ::= { usmUserEntry 9 }
-
-usmUserOwnPrivKeyChange OBJECT-TYPE
-    SYNTAX       KeyChange  -- typically (SIZE (0 | 32)) for DES
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "Behaves exactly as usmUserPrivKeyChange, with one
-                 notable difference: in order for the Set operation
-                 to succeed, the usmUserName of the operation
-                 requester must match the usmUserName that indexes
-
-                 the row which is targeted by this operation.
-                 In addition, the USM security model must be
-                 used for this operation.
-
-                 The idea here is that access to this column can be
-                 public, since it will only allow a user to change
-                 his own secret privacy key (privKey).
-                 Note that this can only be done once the row is active.
-
-                 When a set is received and the usmUserName of the
-                 requester is not the same as the umsUserName that
-                 indexes the row which is targeted by this operation,
-                 then a 'noAccess' error must be returned.
-
-                 When a set is received and the security model in use
-                 is not USM, then a 'noAccess' error must be returned.
-                "
-    DEFVAL      { ''H }    -- the empty string
-    ::= { usmUserEntry 10 }
-
-usmUserPublic    OBJECT-TYPE
-    SYNTAX       OCTET STRING (SIZE(0..32))
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "A publicly-readable value which can be written as part
-                 of the procedure for changing a user's secret
-                 authentication and/or privacy key, and later read to
-                 determine whether the change of the secret was
-                 effected.
-                "
-    DEFVAL      { ''H }  -- the empty string
-    ::= { usmUserEntry 11 }
-
-usmUserStorageType OBJECT-TYPE
-    SYNTAX       StorageType
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "The storage type for this conceptual row.
-
-                 Conceptual rows having the value 'permanent' must
-                 allow write-access at a minimum to:
-
-                 - usmUserAuthKeyChange, usmUserOwnAuthKeyChange
-                   and usmUserPublic for a user who employs
-                   authentication, and
-                 - usmUserPrivKeyChange, usmUserOwnPrivKeyChange
-                   and usmUserPublic for a user who employs
-                   privacy.
-
-                 Note that any user who employs authentication or
-                 privacy must allow its secret(s) to be updated and
-                 thus cannot be 'readOnly'.
-
-                 If an initial set operation tries to set the value to
-                 'readOnly' for a user who employs authentication or
-                 privacy, then an 'inconsistentValue' error must be
-                 returned.  Note that if the value has been previously
-                 set (implicit or explicit) to any value, then the rules
-                 as defined in the StorageType Textual Convention apply.
-
-                 It is an implementation issue to decide if a SET for
-                 a readOnly or permanent row is accepted at all. In some
-                 contexts this may make sense, in others it may not. If
-                 a SET for a readOnly or permanent row is not accepted
-                 at all, then a 'wrongValue' error must be returned.
-                "
-    DEFVAL      { nonVolatile }
-    ::= { usmUserEntry 12 }
-
-usmUserStatus    OBJECT-TYPE
-    SYNTAX       RowStatus
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "The status of this conceptual row.
-
-                 Until instances of all corresponding columns are
-                 appropriately configured, the value of the
-                 corresponding instance of the usmUserStatus column
-                 is 'notReady'.
-
-                 In particular, a newly created row for a user who
-                 employs authentication, cannot be made active until the
-                 corresponding usmUserCloneFrom and usmUserAuthKeyChange
-                 have been set.
-
-                 Further, a newly created row for a user who also
-                 employs privacy, cannot be made active until the
-                 usmUserPrivKeyChange has been set.
-
-                 The RowStatus TC [RFC2579] requires that this
-                 DESCRIPTION clause states under which circumstances
-                 other objects in this row can be modified:
-
-                 The value of this object has no effect on whether
-                 other objects in this conceptual row can be modified,
-                 except for usmUserOwnAuthKeyChange and
-                 usmUserOwnPrivKeyChange. For these 2 objects, the
-
-                 value of usmUserStatus MUST be active.
-                "
-    ::= { usmUserEntry 13 }
-
--- Conformance Information *******************************************
-
-usmMIBCompliances OBJECT IDENTIFIER ::= { usmMIBConformance 1 }
-usmMIBGroups      OBJECT IDENTIFIER ::= { usmMIBConformance 2 }
-
--- Compliance statements
-
-usmMIBCompliance MODULE-COMPLIANCE
-    STATUS       current
-    DESCRIPTION "The compliance statement for SNMP engines which
-                 implement the SNMP-USER-BASED-SM-MIB.
-                "
-
-    MODULE       -- this module
-        MANDATORY-GROUPS { usmMIBBasicGroup }
-
-        OBJECT           usmUserAuthProtocol
-        MIN-ACCESS       read-only
-        DESCRIPTION     "Write access is not required."
-
-        OBJECT           usmUserPrivProtocol
-        MIN-ACCESS       read-only
-        DESCRIPTION     "Write access is not required."
-    ::= { usmMIBCompliances 1 }
-
--- Units of compliance
-usmMIBBasicGroup OBJECT-GROUP
-    OBJECTS     {
-                  usmStatsUnsupportedSecLevels,
-                  usmStatsNotInTimeWindows,
-                  usmStatsUnknownUserNames,
-                  usmStatsUnknownEngineIDs,
-                  usmStatsWrongDigests,
-                  usmStatsDecryptionErrors,
-                  usmUserSpinLock,
-                  usmUserSecurityName,
-                  usmUserCloneFrom,
-                  usmUserAuthProtocol,
-                  usmUserAuthKeyChange,
-                  usmUserOwnAuthKeyChange,
-                  usmUserPrivProtocol,
-                  usmUserPrivKeyChange,
-                  usmUserOwnPrivKeyChange,
-                  usmUserPublic,
-                  usmUserStorageType,
-                  usmUserStatus
-                }
-    STATUS       current
-    DESCRIPTION "A collection of objects providing for configuration
-                 of an SNMP engine which implements the SNMP
-                 User-based Security Model.
-                "
-    ::= { usmMIBGroups 1 }
-
-END
diff --git a/mibs/SNMP-USM-AES-MIB.txt b/mibs/SNMP-USM-AES-MIB.txt
deleted file mode 100644
index 4c17302..0000000
--- a/mibs/SNMP-USM-AES-MIB.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-SNMP-USM-AES-MIB DEFINITIONS ::= BEGIN
-    IMPORTS
-        MODULE-IDENTITY, OBJECT-IDENTITY,
-        snmpModules             FROM SNMPv2-SMI          -- [RFC2578]
-        snmpPrivProtocols       FROM SNMP-FRAMEWORK-MIB; -- [RFC3411]
-
-snmpUsmAesMIB  MODULE-IDENTITY
-    LAST-UPDATED "200406140000Z"
-    ORGANIZATION "IETF"
-    CONTACT-INFO "Uri Blumenthal
-                  Lucent Technologies / Bell Labs
-                  67 Whippany Rd.
-                  14D-318
-                  Whippany, NJ  07981, USA
-                  973-386-2163
-                  uri at bell-labs.com
-
-                  Fabio Maino
-                  Andiamo Systems, Inc.
-                  375 East Tasman Drive
-                  San Jose, CA  95134, USA
-                  408-853-7530
-                  fmaino at andiamo.com
-
-                  Keith McCloghrie
-                  Cisco Systems, Inc.
-                  170 West Tasman Drive
-                  San Jose, CA  95134-1706, USA
-
-                  408-526-5260
-                  kzm at cisco.com"
-    DESCRIPTION  "Definitions of Object Identities needed for
-                  the use of AES by SNMP's User-based Security
-                  Model.
-
-                  Copyright (C) The Internet Society (2004).
-
-            This version of this MIB module is part of RFC 3826;
-            see the RFC itself for full legal notices.
-            Supplementary information may be available on
-            http://www.ietf.org/copyrights/ianamib.html."
-
-    REVISION     "200406140000Z"
-    DESCRIPTION  "Initial version, published as RFC3826"
-    ::= { snmpModules 20 }
-
-usmAesCfb128Protocol OBJECT-IDENTITY
-    STATUS        current
-    DESCRIPTION  "The CFB128-AES-128 Privacy Protocol."
-    REFERENCE    "- Specification for the ADVANCED ENCRYPTION
-                    STANDARD. Federal Information Processing
-                    Standard (FIPS) Publication 197.
-                    (November 2001).
-
-                  - Dworkin, M., NIST Recommendation for Block
-                    Cipher Modes of Operation, Methods and
-                    Techniques. NIST Special Publication 800-38A
-                    (December 2001).
-                 "
-    ::= { snmpPrivProtocols 4 }
-
-END
diff --git a/mibs/SNMP-USM-DH-OBJECTS-MIB.txt b/mibs/SNMP-USM-DH-OBJECTS-MIB.txt
deleted file mode 100644
index 7377425..0000000
--- a/mibs/SNMP-USM-DH-OBJECTS-MIB.txt
+++ /dev/null
@@ -1,532 +0,0 @@
-SNMP-USM-DH-OBJECTS-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE,
-    -- OBJECT-IDENTITY,
-    experimental, Integer32
-        FROM SNMPv2-SMI
-    TEXTUAL-CONVENTION
-        FROM SNMPv2-TC
-    MODULE-COMPLIANCE, OBJECT-GROUP
-        FROM SNMPv2-CONF
-    usmUserEntry
-        FROM SNMP-USER-BASED-SM-MIB
-    SnmpAdminString
-        FROM SNMP-FRAMEWORK-MIB;
-
-snmpUsmDHObjectsMIB MODULE-IDENTITY
-    LAST-UPDATED "200003060000Z"  -- 6 March 2000, Midnight
-    ORGANIZATION "Excite at Home"
-    CONTACT-INFO "Author: Mike StJohns
-                  Postal: Excite at Home
-                          450 Broadway
-                          Redwood City, CA 94063
-                  Email:  stjohns at corp.home.net
-                  Phone:  +1-650-556-5368"
-    DESCRIPTION
-        "The management information definitions for providing forward
-    secrecy for key changes for the usmUserTable, and for providing a
-    method for 'kickstarting' access to the agent via a Diffie-Helman
-    key agreement."
-
-    REVISION     "200003060000Z"
-    DESCRIPTION
-       "Initial version published as RFC 2786."
-    ::= { experimental 101 }  -- IANA DHKEY-CHANGE 101
-
--- Administrative assignments
-
-usmDHKeyObjects OBJECT IDENTIFIER ::= { snmpUsmDHObjectsMIB 1 }
-usmDHKeyConformance OBJECT IDENTIFIER ::= { snmpUsmDHObjectsMIB 2 }
-
--- Textual conventions
-
-DHKeyChange ::=         TEXTUAL-CONVENTION
-    STATUS              current
-    DESCRIPTION
-        "Upon initialization, or upon creation of a row containing an
-    object of this type, and after any successful SET of this value, a
-    GET of this value returns 'y' where y = g^xa MOD p, and where g is
-    the base from usmDHParameters, p is the prime from
-    usmDHParameters, and xa is a new random integer selected by the
-    agent in the interval 2^(l-1) <= xa < 2^l < p-1.  'l' is the
-    optional privateValueLength from usmDHParameters in bits.  If 'l'
-    is omitted, then xa (and xr below) is selected in the interval 0
-    <= xa < p-1.  y is expressed as an OCTET STRING 'PV' of length 'k'
-    which satisfies
-
-              k
-        y =  SUM   2^(8(k-i)) PV'i
-             i=1
-
-        where PV1,...,PVk are the octets of PV from first to last, and
-        where PV1 <> 0.
-
-    A successful SET consists of the value 'y' expressed as an OCTET
-    STRING as above concatenated with the value 'z'(expressed as an
-    OCTET STRING in the same manner as y) where z = g^xr MOD p, where
-    g, p and l are as above, and where xr is a new random integer
-    selected by the manager in the interval 2^(l-1) <= xr < 2^l <
-    p-1. A SET to an object of this type will fail with the error
-    wrongValue if the current 'y' does not match the 'y' portion of
-    the value of the varbind for the object. (E.g. GET yout, SET
-    concat(yin, z), yout <> yin).
-
-    Note that the private values xa and xr are never transmitted from
-    manager to device or vice versa, only the values y and z.
-    Obviously, these values must be retained until a successful SET on
-    the associated object.
-
-    The shared secret 'sk' is calculated at the agent as sk = z^xa MOD
-    p, and at the manager as sk = y^xr MOD p.
-
-    Each object definition of this type MUST describe how to map from
-    the shared secret 'sk' to the operational key value used by the
-    protocols and operations related to the object.  In general, if n
-    bits of key are required, the author suggests using the n
-    right-most bits of the shared secret as the operational key value."
-    REFERENCE
-        "-- Diffie-Hellman Key-Agreement Standard, PKCS #3;
-            RSA Laboratories, November 1993"
-    SYNTAX              OCTET STRING
-
--- Diffie Hellman public values
-
-usmDHPublicObjects      OBJECT IDENTIFIER ::= { usmDHKeyObjects 1 }
-
-usmDHParameters OBJECT-TYPE
-    SYNTAX  OCTET STRING
-    MAX-ACCESS read-write
-    STATUS  current
-    DESCRIPTION
-        "The public Diffie-Hellman parameters for doing a Diffie-Hellman
-    key agreement for this device.  This is encoded as an ASN.1
-    DHParameter per PKCS #3, section 9.  E.g.
-
-        DHParameter ::= SEQUENCE {
-           prime   INTEGER,   -- p
-           base    INTEGER,   -- g
-           privateValueLength  INTEGER OPTIONAL }
-
-    Implementors are encouraged to use either the values from
-    Oakley Group 1  or the values of from Oakley Group 2 as specified
-    in RFC-2409, The Internet Key Exchange, Section 6.1, 6.2 as the
-    default for this object.  Other values may be used, but the
-    security properties of those values MUST be well understood and
-    MUST meet the requirements of PKCS #3 for the selection of
-    Diffie-Hellman primes.
-
-        In addition, any time usmDHParameters changes, all values of
-    type DHKeyChange will change and new random numbers MUST be
-    generated by the agent for each DHKeyChange object."
-    REFERENCE
-        "-- Diffie-Hellman Key-Agreement Standard, PKCS #3,
-            RSA Laboratories, November 1993
-         -- The Internet Key Exchange, RFC 2409, November 1998,
-            Sec 6.1, 6.2"
-    ::= { usmDHPublicObjects 1 }
-
-usmDHUserKeyTable OBJECT-TYPE
-    SYNTAX  SEQUENCE OF UsmDHUserKeyEntry
-    MAX-ACCESS not-accessible
-    STATUS  current
-    DESCRIPTION
-        "This table augments and extends the usmUserTable and provides
-    4 objects which exactly mirror the objects in that table with the
-    textual convention of 'KeyChange'.  This extension allows key
-    changes to be done in a manner where the knowledge of the current
-    secret plus knowledge of the key change data exchanges (e.g. via
-    wiretapping)  will not reveal the new key."
-    ::= { usmDHPublicObjects 2 }
-
-usmDHUserKeyEntry OBJECT-TYPE
-    SYNTAX  UsmDHUserKeyEntry
-    MAX-ACCESS not-accessible
-    STATUS  current
-    DESCRIPTION
-        "A row of DHKeyChange objects which augment or replace the
-    functionality of the KeyChange objects in the base table row."
-    AUGMENTS { usmUserEntry }
-    ::= {usmDHUserKeyTable 1 }
-
-UsmDHUserKeyEntry ::= SEQUENCE {
-        usmDHUserAuthKeyChange          DHKeyChange,
-    usmDHUserOwnAuthKeyChange   DHKeyChange,
-        usmDHUserPrivKeyChange          DHKeyChange,
-        usmDHUserOwnPrivKeyChange       DHKeyChange
-        }
-
-usmDHUserAuthKeyChange OBJECT-TYPE
-    SYNTAX  DHKeyChange
-    MAX-ACCESS read-create
-    STATUS  current
-    DESCRIPTION
-        "The object used to change any given user's Authentication Key
-    using a Diffie-Hellman key exchange.
-
-    The right-most n bits of the shared secret 'sk', where 'n' is the
-    number of bits required for the protocol defined by
-    usmUserAuthProtocol, are installed as the operational
-    authentication key for this row after a successful SET."
-    ::= { usmDHUserKeyEntry 1 }
-
-usmDHUserOwnAuthKeyChange OBJECT-TYPE
-    SYNTAX  DHKeyChange
-    MAX-ACCESS read-create
-    STATUS  current
-    DESCRIPTION
-        "The object used to change the agents own Authentication Key
-    using a Diffie-Hellman key exchange.
-
-    The right-most n bits of the shared secret 'sk', where 'n' is the
-    number of bits required for the protocol defined by
-    usmUserAuthProtocol, are installed as the operational
-    authentication key for this row after a successful SET."
-    ::= { usmDHUserKeyEntry 2 }
-
-usmDHUserPrivKeyChange OBJECT-TYPE
-    SYNTAX  DHKeyChange
-    MAX-ACCESS read-create
-    STATUS  current
-    DESCRIPTION
-        "The object used to change any given user's Privacy Key using
-    a Diffie-Hellman key exchange.
-
-    The right-most n bits of the shared secret 'sk', where 'n' is the
-    number of bits required for the protocol defined by
-    usmUserPrivProtocol, are installed as the operational privacy key
-    for this row after a successful SET."
-    ::= { usmDHUserKeyEntry 3 }
-
-usmDHUserOwnPrivKeyChange OBJECT-TYPE
-    SYNTAX  DHKeyChange
-    MAX-ACCESS read-create
-    STATUS  current
-    DESCRIPTION
-        "The object used to change the agent's own Privacy Key using a
-    Diffie-Hellman key exchange.
-
-    The right-most n bits of the shared secret 'sk', where 'n' is the
-    number of bits required for the protocol defined by
-    usmUserPrivProtocol, are installed as the operational privacy key
-    for this row after a successful SET."
-    ::= { usmDHUserKeyEntry 4 }
-
-usmDHKickstartGroup OBJECT IDENTIFIER ::= { usmDHKeyObjects 2 }
-
-usmDHKickstartTable OBJECT-TYPE
-    SYNTAX      SEQUENCE OF UsmDHKickstartEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "A table of mappings between zero or more Diffie-Helman key
-    agreement values and entries in the usmUserTable.  Entries in this
-    table are created by providing the associated device with a
-    Diffie-Helman public value and a usmUserName/usmUserSecurityName
-    pair during initialization. How these values are provided is
-    outside the scope of this MIB, but could be provided manually, or
-    through a configuration file.  Valid public value/name pairs
-    result in the creation of a row in this table as well as the
-    creation of an associated row (with keys derived as indicated) in
-    the usmUserTable.  The actual access the related usmSecurityName
-    has is dependent on the entries in the VACM tables.  In general,
-    an implementor will specify one or more standard security names
-    and will provide entries in the VACM tables granting various
-    levels of access to those names.  The actual content of the VACM
-
-    table is beyond the scope of this MIB.
-
-    Note: This table is expected to be readable without authentication
-    using the usmUserSecurityName 'dhKickstart'.  See the conformance
-    statements for details."
-    ::= { usmDHKickstartGroup 1 }
-
-usmDHKickstartEntry OBJECT-TYPE
-    SYNTAX      UsmDHKickstartEntry
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "An entry in the usmDHKickstartTable.  The agent SHOULD either
-    delete this entry or mark it as inactive upon a successful SET of
-    any of the KeyChange-typed objects in the usmUserEntry or upon a
-    successful SET of any of the DHKeyChange-typed objects in the
-    usmDhKeyChangeEntry where the related usmSecurityName (e.g. row of
-    usmUserTable or row of ushDhKeyChangeTable) equals this entry's
-    usmDhKickstartSecurityName.  In otherwords, once you've changed
-    one or more of the keys for a row in usmUserTable with a
-    particular security name, the row in this table with that same
-    security name is no longer useful or meaningful."
-    INDEX   { usmDHKickstartIndex }
-    ::= {usmDHKickstartTable 1 }
-
-UsmDHKickstartEntry ::= SEQUENCE  {
-        usmDHKickstartIndex     Integer32,
-        usmDHKickstartMyPublic  OCTET STRING,
-        usmDHKickstartMgrPublic OCTET STRING,
-        usmDHKickstartSecurityName      SnmpAdminString
-        }
-
-usmDHKickstartIndex OBJECT-TYPE
-    SYNTAX      Integer32  (1..2147483647)
-    MAX-ACCESS  not-accessible
-    STATUS      current
-    DESCRIPTION
-        "Index value for this row."
-    ::= { usmDHKickstartEntry 1 }
-
-usmDHKickstartMyPublic OBJECT-TYPE
-    SYNTAX      OCTET STRING
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The agent's Diffie-Hellman public value for this row.  At
-
-    initialization, the agent generates a random number and derives
-    its public value from that number.  This public value is published
-    here.  This public value 'y' equals g^r MOD p where g is the from
-    the set of Diffie-Hellman parameters, p is the prime from those
-    parameters, and r is a random integer selected by the agent in the
-    interval 2^(l-1) <= r < p-1 < 2^l.  If l is unspecified, then r is
-    a random integer selected in the interval 0 <= r < p-1
-
-    The public value is expressed as an OCTET STRING 'PV' of length
-    'k' which satisfies
-
-              k
-        y =  SUM   2^(8(k-i)) PV'i
-             i = 1
-
-        where PV1,...,PVk are the octets of PV from first to last, and
-        where PV1 != 0.
-
-    The following DH parameters (Oakley group #2, RFC 2409, sec 6.1,
-    6.2) are used for this object:
-
-    g = 2
-    p = FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1
-        29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD
-        EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245
-        E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED
-        EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381
-        FFFFFFFF FFFFFFFF
-    l=1024
-    "
-    REFERENCE
-        "-- Diffie-Hellman Key-Agreement Standard, PKCS#3v1.4;
-            RSA Laboratories, November 1993
-         -- The Internet Key Exchange, RFC2409;
-            Harkins, D., Carrel, D.; November 1998"
-    ::= { usmDHKickstartEntry 2 }
-
-usmDHKickstartMgrPublic OBJECT-TYPE
-    SYNTAX      OCTET STRING
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The manager's Diffie-Hellman public value for this row.  Note
-    that this value is not set via the SNMP agent, but may be set via
-    some out of band method, such as the device's configuration file.
-
-    The manager calculates this value in the same manner and using the
-    same parameter set as the agent does.  E.g. it selects a random
-    number 'r', calculates y = g^r mod p and provides 'y' as the
-    public number expressed as an OCTET STRING.  See
-    usmDHKickstartMyPublic for details.
-
-    When this object is set with a valid value during initialization,
-    a row is created in the usmUserTable with the following values:
-
-    usmUserEngineID             localEngineID
-    usmUserName                 [value of usmDHKickstartSecurityName]
-    usmUserSecurityName         [value of usmDHKickstartSecurityName]
-    usmUserCloneFrom            ZeroDotZero
-    usmUserAuthProtocol         usmHMACMD5AuthProtocol
-    usmUserAuthKeyChange        -- derived from set value
-    usmUserOwnAuthKeyChange     -- derived from set value
-    usmUserPrivProtocol         usmDESPrivProtocol
-    usmUserPrivKeyChange        -- derived from set value
-    usmUserOwnPrivKeyChange     -- derived from set value
-    usmUserPublic               ''
-    usmUserStorageType          permanent
-    usmUserStatus               active
-
-    A shared secret 'sk' is calculated at the agent as sk =
-    mgrPublic^r mod p where r is the agents random number and p is the
-    DH prime from the common parameters.  The underlying privacy key
-    for this row is derived from sk by applying the key derivation
-    function PBKDF2 defined in PKCS#5v2.0 with a salt of 0xd1310ba6,
-    and iterationCount of 500, a keyLength of 16 (for
-    usmDESPrivProtocol), and a prf (pseudo random function) of
-    'id-hmacWithSHA1'.  The underlying authentication key for this row
-    is derived from sk by applying the key derivation function PBKDF2
-    with a salt of 0x98dfb5ac , an interation count of 500, a
-    keyLength of 16 (for usmHMAC5AuthProtocol), and a prf of
-    'id-hmacWithSHA1'.  Note: The salts are the first two words in the
-    ks0 [key schedule 0] of the BLOWFISH cipher from 'Applied
-    Cryptography' by Bruce Schnier - they could be any relatively
-    random string of bits.
-
-    The manager can use its knowledge of its own random number and the
-    agent's public value to kickstart its access to the agent in a
-    secure manner.  Note that the security of this approach is
-    directly related to the strength of the authorization security of
-    the out of band provisioning of the managers public value
-    (e.g. the configuration file), but is not dependent at all on the
-    strength of the confidentiality of the out of band provisioning
-    data."
-    REFERENCE
-        "-- Password-Based Cryptography Standard, PKCS#5v2.0;
-            RSA Laboratories, March 1999
-         -- Applied Cryptography, 2nd Ed.; B. Schneier,
-            Counterpane Systems; John Wiley & Sons, 1996"
-    ::= { usmDHKickstartEntry 3 }
-
-usmDHKickstartSecurityName OBJECT-TYPE
-    SYNTAX      SnmpAdminString
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The usmUserName and usmUserSecurityName in the usmUserTable
-    associated with this row.  This is provided in the same manner and
-    at the same time as the usmDHKickstartMgrPublic value -
-    e.g. possibly manually, or via the device's configuration file."
-    ::= { usmDHKickstartEntry 4 }
-
--- Conformance Information
-
-usmDHKeyMIBCompliances  OBJECT IDENTIFIER ::= { usmDHKeyConformance 1 }
-usmDHKeyMIBGroups       OBJECT IDENTIFIER ::= { usmDHKeyConformance 2 }
-
--- Compliance statements
-
-usmDHKeyMIBCompliance   MODULE-COMPLIANCE
-    STATUS      current
-    DESCRIPTION
-        "The compliance statement for this module."
-    MODULE
-        GROUP usmDHKeyMIBBasicGroup
-        DESCRIPTION
-        "This group MAY be implemented by any agent which
-        implements the usmUserTable and which wishes to provide the
-        ability to change user and agent authentication and privacy
-        keys via Diffie-Hellman key exchanges."
-
-        GROUP usmDHKeyParamGroup
-        DESCRIPTION
-            "This group MUST be implemented by any agent which
-        implements a MIB containing the DHKeyChange Textual
-        Convention defined in this module."
-
-        GROUP usmDHKeyKickstartGroup
-        DESCRIPTION
-            "This group MAY be implemented by any agent which
-        implements the usmUserTable and which wishes the ability to
-        populate the USM table based on out-of-band provided DH
-        ignition values.
-
-             Any agent implementing this group is expected to provide
-        preinstalled entries in the vacm tables as follows:
-
-             In the usmUserTable: This entry allows access to the
-        system and dhKickstart groups
-
-        usmUserEngineID         localEngineID
-        usmUserName             'dhKickstart'
-        usmUserSecurityName     'dhKickstart'
-        usmUserCloneFrom        ZeroDotZero
-        usmUserAuthProtocol     none
-        usmUserAuthKeyChange    ''
-        usmUserOwnAuthKeyChange ''
-        usmUserPrivProtocol     none
-        usmUserPrivKeyChange    ''
-        usmUserOwnPrivKeyChange ''
-        usmUserPublic           ''
-        usmUserStorageType      permanent
-        usmUserStatus           active
-
-            In the vacmSecurityToGroupTable: This maps the initial
-        user into the accessible objects.
-
-        vacmSecurityModel               3 (USM)
-        vacmSecurityName                'dhKickstart'
-        vacmGroupName                   'dhKickstart'
-        vacmSecurityToGroupStorageType  permanent
-        vacmSecurityToGroupStatus       active
-
-            In the vacmAccessTable: Group name to view name translation.
-
-        vacmGroupName                   'dhKickstart'
-    vacmAccessContextPrefix             ''
-        vacmAccessSecurityModel         3 (USM)
-        vacmAccessSecurityLevel         noAuthNoPriv
-        vacmAccessContextMatch          exact
-        vacmAccessReadViewName          'dhKickRestricted'
-        vacmAccessWriteViewName         ''
-        vacmAccessNotifyViewName        'dhKickRestricted'
-        vacmAccessStorageType           permanent
-        vacmAccessStatus                active
-
-            In the vacmViewTreeFamilyTable: Two entries to allow the
-        initial entry to access the system and kickstart groups.
-
-        vacmViewTreeFamilyViewName      'dhKickRestricted'
-        vacmViewTreeFamilySubtree       1.3.6.1.2.1.1  (system)
-        vacmViewTreeFamilyMask          ''
-
-        vacmViewTreeFamilyType          1
-        vacmViewTreeFamilyStorageType   permanent
-        vacmViewTreeFamilyStatus        active
-
-        vacmViewTreeFamilyViewName      'dhKickRestricted'
-        vacmViewTreeFamilySubtree         (usmDHKickstartTable OID)
-        vacmViewTreeFamilyMask          ''
-        vacmViewTreeFamilyType          1
-        vacmViewTreeFamilyStorageType   permanent
-        vacmViewTreeFamilyStatus        active
-        "
-
-        OBJECT usmDHParameters
-        MIN-ACCESS      read-only
-        DESCRIPTION
-            "It is compliant to implement this object as read-only for
-        any device."
-    ::= { usmDHKeyMIBCompliances 1 }
-
--- Units of Compliance
-
-usmDHKeyMIBBasicGroup OBJECT-GROUP
-    OBJECTS     {
-                  usmDHUserAuthKeyChange,
-                  usmDHUserOwnAuthKeyChange,
-                  usmDHUserPrivKeyChange,
-                  usmDHUserOwnPrivKeyChange
-                }
-    STATUS      current
-    DESCRIPTION
-        ""
-    ::= { usmDHKeyMIBGroups 1 }
-
-usmDHKeyParamGroup OBJECT-GROUP
-    OBJECTS     {
-                  usmDHParameters
-                }
-    STATUS      current
-    DESCRIPTION
-        "The mandatory object for all MIBs which use the DHKeyChange
-    textual convention."
-    ::= { usmDHKeyMIBGroups 2 }
-
-usmDHKeyKickstartGroup OBJECT-GROUP
-    OBJECTS     {
-                  usmDHKickstartMyPublic,
-                  usmDHKickstartMgrPublic,
-                  usmDHKickstartSecurityName
-                }
-    STATUS      current
-    DESCRIPTION
-        "The objects used for kickstarting one or more SNMPv3 USM
-    associations via a configuration file or other out of band,
-    non-confidential access."
-    ::= { usmDHKeyMIBGroups 3 }
-
-END
diff --git a/mibs/SNMP-VIEW-BASED-ACM-MIB.txt b/mibs/SNMP-VIEW-BASED-ACM-MIB.txt
deleted file mode 100644
index 7244ad0..0000000
--- a/mibs/SNMP-VIEW-BASED-ACM-MIB.txt
+++ /dev/null
@@ -1,830 +0,0 @@
-SNMP-VIEW-BASED-ACM-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-COMPLIANCE, OBJECT-GROUP       FROM SNMPv2-CONF
-    MODULE-IDENTITY, OBJECT-TYPE,
-    snmpModules                           FROM SNMPv2-SMI
-    TestAndIncr,
-    RowStatus, StorageType                FROM SNMPv2-TC
-    SnmpAdminString,
-    SnmpSecurityLevel,
-    SnmpSecurityModel                     FROM SNMP-FRAMEWORK-MIB;
-
-snmpVacmMIB       MODULE-IDENTITY
-    LAST-UPDATED "200210160000Z"          -- 16 Oct 2002, midnight
-    ORGANIZATION "SNMPv3 Working Group"
-    CONTACT-INFO "WG-email:   snmpv3 at lists.tislabs.com
-                  Subscribe:  majordomo at lists.tislabs.com
-                              In message body:  subscribe snmpv3
-
-                  Co-Chair:   Russ Mundy
-                              Network Associates Laboratories
-                  postal:     15204 Omega Drive, Suite 300
-                              Rockville, MD 20850-4601
-                              USA
-                  email:      mundy at tislabs.com
-                  phone:      +1 301-947-7107
-
-                  Co-Chair:   David Harrington
-                              Enterasys Networks
-                  Postal:     35 Industrial Way
-                              P. O. Box 5004
-                              Rochester, New Hampshire 03866-5005
-                              USA
-                  EMail:      dbh at enterasys.com
-                  Phone:      +1 603-337-2614
-
-                  Co-editor:  Bert Wijnen
-                              Lucent Technologies
-                  postal:     Schagen 33
-                              3461 GL Linschoten
-                              Netherlands
-                  email:      bwijnen at lucent.com
-                  phone:      +31-348-480-685
-
-                  Co-editor:  Randy Presuhn
-                              BMC Software, Inc.
-
-                  postal:     2141 North First Street
-                              San Jose, CA 95131
-                              USA
-                  email:      randy_presuhn at bmc.com
-                  phone:      +1 408-546-1006
-
-                  Co-editor:  Keith McCloghrie
-                              Cisco Systems, Inc.
-                  postal:     170 West Tasman Drive
-                              San Jose, CA  95134-1706
-                              USA
-                  email:      kzm at cisco.com
-                  phone:      +1-408-526-5260
-                 "
-    DESCRIPTION  "The management information definitions for the
-                  View-based Access Control Model for SNMP.
-
-                  Copyright (C) The Internet Society (2002). This
-                  version of this MIB module is part of RFC 3415;
-                  see the RFC itself for full legal notices.
-                 "
---  Revision history
-
-    REVISION     "200210160000Z"          -- 16 Oct 2002, midnight
-    DESCRIPTION  "Clarifications, published as RFC3415"
-
-    REVISION     "199901200000Z"          -- 20 Jan 1999, midnight
-    DESCRIPTION  "Clarifications, published as RFC2575"
-
-    REVISION     "199711200000Z"          -- 20 Nov 1997, midnight
-    DESCRIPTION  "Initial version, published as RFC2275"
-    ::= { snmpModules 16 }
-
--- Administrative assignments ****************************************
-
-vacmMIBObjects      OBJECT IDENTIFIER ::= { snmpVacmMIB 1 }
-vacmMIBConformance  OBJECT IDENTIFIER ::= { snmpVacmMIB 2 }
-
--- Information about Local Contexts **********************************
-
-vacmContextTable OBJECT-TYPE
-    SYNTAX       SEQUENCE OF VacmContextEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "The table of locally available contexts.
-
-                 This table provides information to SNMP Command
-
-                 Generator applications so that they can properly
-                 configure the vacmAccessTable to control access to
-                 all contexts at the SNMP entity.
-
-                 This table may change dynamically if the SNMP entity
-                 allows that contexts are added/deleted dynamically
-                 (for instance when its configuration changes).  Such
-                 changes would happen only if the management
-                 instrumentation at that SNMP entity recognizes more
-                 (or fewer) contexts.
-
-                 The presence of entries in this table and of entries
-                 in the vacmAccessTable are independent.  That is, a
-                 context identified by an entry in this table is not
-                 necessarily referenced by any entries in the
-                 vacmAccessTable; and the context(s) referenced by an
-                 entry in the vacmAccessTable does not necessarily
-                 currently exist and thus need not be identified by an
-                 entry in this table.
-
-                 This table must be made accessible via the default
-                 context so that Command Responder applications have
-                 a standard way of retrieving the information.
-
-                 This table is read-only.  It cannot be configured via
-                 SNMP.
-                "
-    ::= { vacmMIBObjects 1 }
-
-vacmContextEntry OBJECT-TYPE
-    SYNTAX       VacmContextEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "Information about a particular context."
-    INDEX       {
-                  vacmContextName
-                }
-    ::= { vacmContextTable 1 }
-
-VacmContextEntry ::= SEQUENCE
-    {
-        vacmContextName SnmpAdminString
-    }
-
-vacmContextName  OBJECT-TYPE
-    SYNTAX       SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS   read-only
-    STATUS       current
-    DESCRIPTION "A human readable name identifying a particular
-                 context at a particular SNMP entity.
-
-                 The empty contextName (zero length) represents the
-                 default context.
-                "
-    ::= { vacmContextEntry 1 }
-
--- Information about Groups ******************************************
-
-vacmSecurityToGroupTable OBJECT-TYPE
-    SYNTAX       SEQUENCE OF VacmSecurityToGroupEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "This table maps a combination of securityModel and
-                 securityName into a groupName which is used to define
-                 an access control policy for a group of principals.
-                "
-    ::= { vacmMIBObjects 2 }
-
-vacmSecurityToGroupEntry OBJECT-TYPE
-    SYNTAX       VacmSecurityToGroupEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "An entry in this table maps the combination of a
-                 securityModel and securityName into a groupName.
-                "
-    INDEX       {
-                  vacmSecurityModel,
-                  vacmSecurityName
-                }
-    ::= { vacmSecurityToGroupTable 1 }
-
-VacmSecurityToGroupEntry ::= SEQUENCE
-    {
-        vacmSecurityModel               SnmpSecurityModel,
-        vacmSecurityName                SnmpAdminString,
-        vacmGroupName                   SnmpAdminString,
-        vacmSecurityToGroupStorageType  StorageType,
-        vacmSecurityToGroupStatus       RowStatus
-    }
-
-vacmSecurityModel OBJECT-TYPE
-    SYNTAX       SnmpSecurityModel(1..2147483647)
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "The Security Model, by which the vacmSecurityName
-                 referenced by this entry is provided.
-
-                 Note, this object may not take the 'any' (0) value.
-                "
-    ::= { vacmSecurityToGroupEntry 1 }
-
-vacmSecurityName OBJECT-TYPE
-    SYNTAX       SnmpAdminString (SIZE(1..32))
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "The securityName for the principal, represented in a
-                 Security Model independent format, which is mapped by
-                 this entry to a groupName.
-                "
-    ::= { vacmSecurityToGroupEntry 2 }
-
-vacmGroupName    OBJECT-TYPE
-    SYNTAX       SnmpAdminString (SIZE(1..32))
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "The name of the group to which this entry (e.g., the
-                 combination of securityModel and securityName)
-                 belongs.
-
-                 This groupName is used as index into the
-                 vacmAccessTable to select an access control policy.
-                 However, a value in this table does not imply that an
-                 instance with the value exists in table vacmAccesTable.
-                "
-    ::= { vacmSecurityToGroupEntry 3 }
-
-vacmSecurityToGroupStorageType 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 }
-    ::= { vacmSecurityToGroupEntry 4 }
-
-vacmSecurityToGroupStatus OBJECT-TYPE
-    SYNTAX       RowStatus
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "The status of this conceptual row.
-
-                 Until instances of all corresponding columns are
-                 appropriately configured, the value of the
-
-                 corresponding instance of the vacmSecurityToGroupStatus
-                 column is 'notReady'.
-
-                 In particular, a newly created row cannot be made
-                 active until a value has been set for vacmGroupName.
-
-                 The  RowStatus TC [RFC2579] requires that this
-                 DESCRIPTION clause states under which circumstances
-                 other objects in this row can be modified:
-
-                 The value of this object has no effect on whether
-                 other objects in this conceptual row can be modified.
-                "
-    ::= { vacmSecurityToGroupEntry 5 }
-
--- Information about Access Rights ***********************************
-
-vacmAccessTable  OBJECT-TYPE
-    SYNTAX       SEQUENCE OF VacmAccessEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "The table of access rights for groups.
-
-                 Each entry is indexed by a groupName, a contextPrefix,
-                 a securityModel and a securityLevel.  To determine
-                 whether access is allowed, one entry from this table
-                 needs to be selected and the proper viewName from that
-                 entry must be used for access control checking.
-
-                 To select the proper entry, follow these steps:
-
-                 1) the set of possible matches is formed by the
-                    intersection of the following sets of entries:
-
-                      the set of entries with identical vacmGroupName
-                      the union of these two sets:
-                       - the set with identical vacmAccessContextPrefix
-                       - the set of entries with vacmAccessContextMatch
-                         value of 'prefix' and matching
-                         vacmAccessContextPrefix
-                      intersected with the union of these two sets:
-                       - the set of entries with identical
-                         vacmSecurityModel
-                       - the set of entries with vacmSecurityModel
-                         value of 'any'
-                      intersected with the set of entries with
-                      vacmAccessSecurityLevel value less than or equal
-                      to the requested securityLevel
-
-                 2) if this set has only one member, we're done
-                    otherwise, it comes down to deciding how to weight
-                    the preferences between ContextPrefixes,
-                    SecurityModels, and SecurityLevels as follows:
-                    a) if the subset of entries with securityModel
-                       matching the securityModel in the message is
-                       not empty, then discard the rest.
-                    b) if the subset of entries with
-                       vacmAccessContextPrefix matching the contextName
-                       in the message is not empty,
-                       then discard the rest
-                    c) discard all entries with ContextPrefixes shorter
-                       than the longest one remaining in the set
-                    d) select the entry with the highest securityLevel
-
-                 Please note that for securityLevel noAuthNoPriv, all
-                 groups are really equivalent since the assumption that
-                 the securityName has been authenticated does not hold.
-                "
-    ::= { vacmMIBObjects 4 }
-
-vacmAccessEntry  OBJECT-TYPE
-    SYNTAX       VacmAccessEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "An access right configured in the Local Configuration
-                 Datastore (LCD) authorizing access to an SNMP context.
-
-                 Entries in this table can use an instance value for
-                 object vacmGroupName even if no entry in table
-                 vacmAccessSecurityToGroupTable has a corresponding
-                 value for object vacmGroupName.
-                "
-    INDEX       { vacmGroupName,
-                  vacmAccessContextPrefix,
-                  vacmAccessSecurityModel,
-                  vacmAccessSecurityLevel
-                }
-    ::= { vacmAccessTable 1 }
-
-VacmAccessEntry ::= SEQUENCE
-    {
-        vacmAccessContextPrefix    SnmpAdminString,
-        vacmAccessSecurityModel    SnmpSecurityModel,
-        vacmAccessSecurityLevel    SnmpSecurityLevel,
-        vacmAccessContextMatch     INTEGER,
-        vacmAccessReadViewName     SnmpAdminString,
-        vacmAccessWriteViewName    SnmpAdminString,
-        vacmAccessNotifyViewName   SnmpAdminString,
-        vacmAccessStorageType      StorageType,
-        vacmAccessStatus           RowStatus
-    }
-
-vacmAccessContextPrefix OBJECT-TYPE
-    SYNTAX       SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "In order to gain the access rights allowed by this
-                 conceptual row, a contextName must match exactly
-                 (if the value of vacmAccessContextMatch is 'exact')
-                 or partially (if the value of vacmAccessContextMatch
-                 is 'prefix') to the value of the instance of this
-                 object.
-                "
-    ::= { vacmAccessEntry 1 }
-
-vacmAccessSecurityModel OBJECT-TYPE
-    SYNTAX       SnmpSecurityModel
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "In order to gain the access rights allowed by this
-                 conceptual row, this securityModel must be in use.
-                "
-    ::= { vacmAccessEntry 2 }
-
-vacmAccessSecurityLevel OBJECT-TYPE
-    SYNTAX       SnmpSecurityLevel
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "The minimum level of security required in order to
-                 gain the access rights allowed by this conceptual
-                 row.  A securityLevel of noAuthNoPriv is less than
-                 authNoPriv which in turn is less than authPriv.
-
-                 If multiple entries are equally indexed except for
-                 this vacmAccessSecurityLevel index, then the entry
-                 which has the highest value for
-                 vacmAccessSecurityLevel is selected.
-                "
-    ::= { vacmAccessEntry 3 }
-
-vacmAccessContextMatch OBJECT-TYPE
-    SYNTAX       INTEGER
-                { exact (1), -- exact match of prefix and contextName
-                  prefix (2) -- Only match to the prefix
-                }
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "If the value of this object is exact(1), then all
-                 rows where the contextName exactly matches
-                 vacmAccessContextPrefix are selected.
-
-                 If the value of this object is prefix(2), then all
-                 rows where the contextName whose starting octets
-                 exactly match vacmAccessContextPrefix are selected.
-                 This allows for a simple form of wildcarding.
-                "
-    DEFVAL      { exact }
-    ::= { vacmAccessEntry 4 }
-
-vacmAccessReadViewName OBJECT-TYPE
-    SYNTAX       SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "The value of an instance of this object identifies
-                 the MIB view of the SNMP context to which this
-                 conceptual row authorizes read access.
-
-                 The identified MIB view is that one for which the
-                 vacmViewTreeFamilyViewName has the same value as the
-                 instance of this object; if the value is the empty
-                 string or if there is no active MIB view having this
-                 value of vacmViewTreeFamilyViewName, then no access
-                 is granted.
-                "
-    DEFVAL      { ''H }   -- the empty string
-    ::= { vacmAccessEntry 5 }
-
-vacmAccessWriteViewName OBJECT-TYPE
-    SYNTAX       SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "The value of an instance of this object identifies
-                 the MIB view of the SNMP context to which this
-                 conceptual row authorizes write access.
-
-                 The identified MIB view is that one for which the
-                 vacmViewTreeFamilyViewName has the same value as the
-                 instance of this object; if the value is the empty
-                 string or if there is no active MIB view having this
-                 value of vacmViewTreeFamilyViewName, then no access
-                 is granted.
-                "
-    DEFVAL      { ''H }   -- the empty string
-    ::= { vacmAccessEntry 6 }
-
-vacmAccessNotifyViewName OBJECT-TYPE
-    SYNTAX       SnmpAdminString (SIZE(0..32))
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "The value of an instance of this object identifies
-                 the MIB view of the SNMP context to which this
-                 conceptual row authorizes access for notifications.
-
-                 The identified MIB view is that one for which the
-                 vacmViewTreeFamilyViewName has the same value as the
-                 instance of this object; if the value is the empty
-                 string or if there is no active MIB view having this
-                 value of vacmViewTreeFamilyViewName, then no access
-                 is granted.
-                "
-    DEFVAL      { ''H }   -- the empty string
-    ::= { vacmAccessEntry 7 }
-
-vacmAccessStorageType 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 }
-    ::= { vacmAccessEntry 8 }
-
-vacmAccessStatus OBJECT-TYPE
-    SYNTAX       RowStatus
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "The status of this conceptual row.
-
-                 The  RowStatus TC [RFC2579] requires that this
-                 DESCRIPTION clause states under which circumstances
-                 other objects in this row can be modified:
-
-                 The value of this object has no effect on whether
-                 other objects in this conceptual row can be modified.
-                "
-    ::= { vacmAccessEntry 9 }
-
--- Information about MIB views ***************************************
-
--- Support for instance-level granularity is optional.
---
--- In some implementations, instance-level access control
--- granularity may come at a high performance cost.  Managers
--- should avoid requesting such configurations unnecessarily.
-
-vacmMIBViews     OBJECT IDENTIFIER ::= { vacmMIBObjects 5 }
-
-vacmViewSpinLock OBJECT-TYPE
-    SYNTAX       TestAndIncr
-    MAX-ACCESS   read-write
-    STATUS       current
-    DESCRIPTION "An advisory lock used to allow cooperating SNMP
-                 Command Generator applications to coordinate their
-                 use of the Set operation in creating or modifying
-                 views.
-
-                 When creating a new view or altering an existing
-                 view, it is important to understand the potential
-                 interactions with other uses of the view.  The
-                 vacmViewSpinLock should be retrieved.  The name of
-                 the view to be created should be determined to be
-                 unique by the SNMP Command Generator application by
-                 consulting the vacmViewTreeFamilyTable.  Finally,
-                 the named view may be created (Set), including the
-                 advisory lock.
-                 If another SNMP Command Generator application has
-                 altered the views in the meantime, then the spin
-                 lock's value will have changed, and so this creation
-                 will fail because it will specify the wrong value for
-                 the spin lock.
-
-                 Since this is an advisory lock, the use of this lock
-                 is not enforced.
-                "
-    ::= { vacmMIBViews 1 }
-
-vacmViewTreeFamilyTable OBJECT-TYPE
-    SYNTAX       SEQUENCE OF VacmViewTreeFamilyEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "Locally held information about families of subtrees
-                 within MIB views.
-
-                 Each MIB view is defined by two sets of view subtrees:
-                   - the included view subtrees, and
-                   - the excluded view subtrees.
-                 Every such view subtree, both the included and the
-
-                 excluded ones, is defined in this table.
-
-                 To determine if a particular object instance is in
-                 a particular MIB view, compare the object instance's
-                 OBJECT IDENTIFIER with each of the MIB view's active
-                 entries in this table.  If none match, then the
-                 object instance is not in the MIB view.  If one or
-                 more match, then the object instance is included in,
-                 or excluded from, the MIB view according to the
-                 value of vacmViewTreeFamilyType in the entry whose
-                 value of vacmViewTreeFamilySubtree has the most
-                 sub-identifiers.  If multiple entries match and have
-                 the same number of sub-identifiers (when wildcarding
-                 is specified with the value of vacmViewTreeFamilyMask),
-                 then the lexicographically greatest instance of
-                 vacmViewTreeFamilyType determines the inclusion or
-                 exclusion.
-
-                 An object instance's OBJECT IDENTIFIER X matches an
-                 active entry in this table when the number of
-                 sub-identifiers in X is at least as many as in the
-                 value of vacmViewTreeFamilySubtree for the entry,
-                 and each sub-identifier in the value of
-                 vacmViewTreeFamilySubtree matches its corresponding
-                 sub-identifier in X.  Two sub-identifiers match
-                 either if the corresponding bit of the value of
-                 vacmViewTreeFamilyMask for the entry is zero (the
-                 'wild card' value), or if they are equal.
-
-                 A 'family' of subtrees is the set of subtrees defined
-                 by a particular combination of values of
-                 vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask.
-
-                 In the case where no 'wild card' is defined in the
-                 vacmViewTreeFamilyMask, the family of subtrees reduces
-                 to a single subtree.
-
-                 When creating or changing MIB views, an SNMP Command
-                 Generator application should utilize the
-                 vacmViewSpinLock to try to avoid collisions.  See
-                 DESCRIPTION clause of vacmViewSpinLock.
-
-                 When creating MIB views, it is strongly advised that
-                 first the 'excluded' vacmViewTreeFamilyEntries are
-                 created and then the 'included' entries.
-
-                 When deleting MIB views, it is strongly advised that
-                 first the 'included' vacmViewTreeFamilyEntries are
-
-                 deleted and then the 'excluded' entries.
-
-                 If a create for an entry for instance-level access
-                 control is received and the implementation does not
-                 support instance-level granularity, then an
-                 inconsistentName error must be returned.
-                "
-    ::= { vacmMIBViews 2 }
-
-vacmViewTreeFamilyEntry OBJECT-TYPE
-    SYNTAX       VacmViewTreeFamilyEntry
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "Information on a particular family of view subtrees
-                 included in or excluded from a particular SNMP
-                 context's MIB view.
-
-                 Implementations must not restrict the number of
-                 families of view subtrees for a given MIB view,
-                 except as dictated by resource constraints on the
-                 overall number of entries in the
-                 vacmViewTreeFamilyTable.
-
-                 If no conceptual rows exist in this table for a given
-                 MIB view (viewName), that view may be thought of as
-                 consisting of the empty set of view subtrees.
-                "
-    INDEX       { vacmViewTreeFamilyViewName,
-                  vacmViewTreeFamilySubtree
-                }
-    ::= { vacmViewTreeFamilyTable 1 }
-
-VacmViewTreeFamilyEntry ::= SEQUENCE
-    {
-        vacmViewTreeFamilyViewName     SnmpAdminString,
-        vacmViewTreeFamilySubtree      OBJECT IDENTIFIER,
-        vacmViewTreeFamilyMask         OCTET STRING,
-        vacmViewTreeFamilyType         INTEGER,
-        vacmViewTreeFamilyStorageType  StorageType,
-        vacmViewTreeFamilyStatus       RowStatus
-    }
-
-vacmViewTreeFamilyViewName OBJECT-TYPE
-    SYNTAX       SnmpAdminString (SIZE(1..32))
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "The human readable name for a family of view subtrees.
-                "
-    ::= { vacmViewTreeFamilyEntry 1 }
-
-vacmViewTreeFamilySubtree OBJECT-TYPE
-    SYNTAX       OBJECT IDENTIFIER
-    MAX-ACCESS   not-accessible
-    STATUS       current
-    DESCRIPTION "The MIB subtree which when combined with the
-                 corresponding instance of vacmViewTreeFamilyMask
-                 defines a family of view subtrees.
-                "
-    ::= { vacmViewTreeFamilyEntry 2 }
-
-vacmViewTreeFamilyMask OBJECT-TYPE
-    SYNTAX       OCTET STRING (SIZE (0..16))
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "The bit mask which, in combination with the
-                 corresponding instance of vacmViewTreeFamilySubtree,
-                 defines a family of view subtrees.
-
-                 Each bit of this bit mask corresponds to a
-                 sub-identifier of vacmViewTreeFamilySubtree, with the
-                 most significant bit of the i-th octet of this octet
-                 string value (extended if necessary, see below)
-                 corresponding to the (8*i - 7)-th sub-identifier, and
-                 the least significant bit of the i-th octet of this
-                 octet string corresponding to the (8*i)-th
-                 sub-identifier, where i is in the range 1 through 16.
-
-                 Each bit of this bit mask specifies whether or not
-                 the corresponding sub-identifiers must match when
-                 determining if an OBJECT IDENTIFIER is in this
-                 family of view subtrees; a '1' indicates that an
-                 exact match must occur; a '0' indicates 'wild card',
-                 i.e., any sub-identifier value matches.
-
-                 Thus, the OBJECT IDENTIFIER X of an object instance
-                 is contained in a family of view subtrees if, for
-                 each sub-identifier of the value of
-                 vacmViewTreeFamilySubtree, either:
-
-                   the i-th bit of vacmViewTreeFamilyMask is 0, or
-
-                   the i-th sub-identifier of X is equal to the i-th
-                   sub-identifier of the value of
-                   vacmViewTreeFamilySubtree.
-
-                 If the value of this bit mask is M bits long and
-
-                 there are more than M sub-identifiers in the
-                 corresponding instance of vacmViewTreeFamilySubtree,
-                 then the bit mask is extended with 1's to be the
-                 required length.
-
-                 Note that when the value of this object is the
-                 zero-length string, this extension rule results in
-                 a mask of all-1's being used (i.e., no 'wild card'),
-                 and the family of view subtrees is the one view
-                 subtree uniquely identified by the corresponding
-                 instance of vacmViewTreeFamilySubtree.
-
-                 Note that masks of length greater than zero length
-                 do not need to be supported.  In this case this
-                 object is made read-only.
-                "
-    DEFVAL      { ''H }
-    ::= { vacmViewTreeFamilyEntry 3 }
-
-vacmViewTreeFamilyType OBJECT-TYPE
-    SYNTAX       INTEGER  { included(1), excluded(2) }
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "Indicates whether the corresponding instances of
-                 vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask
-                 define a family of view subtrees which is included in
-                 or excluded from the MIB view.
-                "
-    DEFVAL      { included }
-    ::= { vacmViewTreeFamilyEntry 4 }
-
-vacmViewTreeFamilyStorageType 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 }
-    ::= { vacmViewTreeFamilyEntry 5 }
-
-vacmViewTreeFamilyStatus OBJECT-TYPE
-    SYNTAX       RowStatus
-    MAX-ACCESS   read-create
-    STATUS       current
-    DESCRIPTION "The status of this conceptual row.
-
-                 The  RowStatus TC [RFC2579] requires that this
-                 DESCRIPTION clause states under which circumstances
-                 other objects in this row can be modified:
-
-                 The value of this object has no effect on whether
-                 other objects in this conceptual row can be modified.
-                "
-    ::= { vacmViewTreeFamilyEntry 6 }
-
--- Conformance information *******************************************
-
-vacmMIBCompliances  OBJECT IDENTIFIER ::= { vacmMIBConformance 1 }
-vacmMIBGroups       OBJECT IDENTIFIER ::= { vacmMIBConformance 2 }
-
--- Compliance statements *********************************************
-
-vacmMIBCompliance MODULE-COMPLIANCE
-    STATUS       current
-    DESCRIPTION "The compliance statement for SNMP engines which
-                 implement the SNMP View-based Access Control Model
-                 configuration MIB.
-                "
-    MODULE -- this module
-        MANDATORY-GROUPS { vacmBasicGroup }
-
-        OBJECT        vacmAccessContextMatch
-        MIN-ACCESS    read-only
-        DESCRIPTION  "Write access is not required."
-
-        OBJECT        vacmAccessReadViewName
-        MIN-ACCESS    read-only
-        DESCRIPTION  "Write access is not required."
-
-        OBJECT        vacmAccessWriteViewName
-        MIN-ACCESS    read-only
-        DESCRIPTION  "Write access is not required."
-
-        OBJECT        vacmAccessNotifyViewName
-        MIN-ACCESS    read-only
-        DESCRIPTION  "Write access is not required."
-
-        OBJECT        vacmAccessStorageType
-        MIN-ACCESS    read-only
-        DESCRIPTION  "Write access is not required."
-
-        OBJECT        vacmAccessStatus
-        MIN-ACCESS    read-only
-        DESCRIPTION  "Create/delete/modify access to the
-
-                      vacmAccessTable is not required.
-                     "
-
-        OBJECT        vacmViewTreeFamilyMask
-        WRITE-SYNTAX  OCTET STRING (SIZE (0))
-        MIN-ACCESS    read-only
-        DESCRIPTION  "Support for configuration via SNMP of subtree
-                      families using wild-cards is not required.
-                     "
-
-        OBJECT        vacmViewTreeFamilyType
-        MIN-ACCESS    read-only
-        DESCRIPTION  "Write access is not required."
-
-        OBJECT        vacmViewTreeFamilyStorageType
-        MIN-ACCESS    read-only
-        DESCRIPTION  "Write access is not required."
-
-        OBJECT        vacmViewTreeFamilyStatus
-        MIN-ACCESS    read-only
-        DESCRIPTION  "Create/delete/modify access to the
-                      vacmViewTreeFamilyTable is not required.
-                     "
-    ::= { vacmMIBCompliances 1 }
-
--- Units of conformance **********************************************
-
-vacmBasicGroup OBJECT-GROUP
-    OBJECTS {
-              vacmContextName,
-              vacmGroupName,
-              vacmSecurityToGroupStorageType,
-              vacmSecurityToGroupStatus,
-              vacmAccessContextMatch,
-              vacmAccessReadViewName,
-              vacmAccessWriteViewName,
-              vacmAccessNotifyViewName,
-              vacmAccessStorageType,
-              vacmAccessStatus,
-              vacmViewSpinLock,
-              vacmViewTreeFamilyMask,
-              vacmViewTreeFamilyType,
-              vacmViewTreeFamilyStorageType,
-              vacmViewTreeFamilyStatus
-            }
-    STATUS       current
-    DESCRIPTION "A collection of objects providing for remote
-                 configuration of an SNMP engine which implements
-
-                 the SNMP View-based Access Control Model.
-                "
-    ::= { vacmMIBGroups 1 }
-
-END
diff --git a/mibs/SNMPv2-CONF.txt b/mibs/SNMPv2-CONF.txt
deleted file mode 100644
index 24a1eed..0000000
--- a/mibs/SNMPv2-CONF.txt
+++ /dev/null
@@ -1,322 +0,0 @@
-SNMPv2-CONF DEFINITIONS ::= BEGIN
-
-IMPORTS ObjectName, NotificationName, ObjectSyntax
-                                               FROM SNMPv2-SMI;
-
--- definitions for conformance groups
-
-OBJECT-GROUP MACRO ::=
-BEGIN
-    TYPE NOTATION ::=
-                  ObjectsPart
-                  "STATUS" Status
-                  "DESCRIPTION" Text
-                  ReferPart
-
-    VALUE NOTATION ::=
-                  value(VALUE OBJECT IDENTIFIER)
-
-    ObjectsPart ::=
-                  "OBJECTS" "{" Objects "}"
-    Objects ::=
-                  Object
-                | Objects "," Object
-    Object ::=
-
-                  value(ObjectName)
-
-    Status ::=
-                  "current"
-                | "deprecated"
-                | "obsolete"
-
-    ReferPart ::=
-                  "REFERENCE" Text
-                | empty
-
-    -- a character string as defined in [2]
-    Text ::= value(IA5String)
-END
-
--- more definitions for conformance groups
-
-NOTIFICATION-GROUP MACRO ::=
-BEGIN
-    TYPE NOTATION ::=
-                  NotificationsPart
-                  "STATUS" Status
-                  "DESCRIPTION" Text
-                  ReferPart
-
-    VALUE NOTATION ::=
-                  value(VALUE OBJECT IDENTIFIER)
-
-    NotificationsPart ::=
-                  "NOTIFICATIONS" "{" Notifications "}"
-    Notifications ::=
-                  Notification
-                | Notifications "," Notification
-    Notification ::=
-                  value(NotificationName)
-
-    Status ::=
-                  "current"
-                | "deprecated"
-                | "obsolete"
-
-    ReferPart ::=
-                  "REFERENCE" Text
-                | empty
-
-    -- a character string as defined in [2]
-    Text ::= value(IA5String)
-END
-
--- definitions for compliance statements
-
-MODULE-COMPLIANCE MACRO ::=
-BEGIN
-    TYPE NOTATION ::=
-                  "STATUS" Status
-                  "DESCRIPTION" Text
-                  ReferPart
-                  ModulePart
-
-    VALUE NOTATION ::=
-                  value(VALUE OBJECT IDENTIFIER)
-
-    Status ::=
-                  "current"
-                | "deprecated"
-                | "obsolete"
-
-    ReferPart ::=
-                  "REFERENCE" Text
-                | empty
-
-    ModulePart ::=
-                  Modules
-    Modules ::=
-                  Module
-                | Modules Module
-    Module ::=
-                  -- name of module --
-                  "MODULE" ModuleName
-                  MandatoryPart
-                  CompliancePart
-
-    ModuleName ::=
-                  -- identifier must start with uppercase letter
-                  identifier ModuleIdentifier
-                  -- must not be empty unless contained
-                  -- in MIB Module
-                | empty
-    ModuleIdentifier ::=
-                  value(OBJECT IDENTIFIER)
-                | empty
-
-    MandatoryPart ::=
-                  "MANDATORY-GROUPS" "{" Groups "}"
-                | empty
-
-    Groups ::=
-
-                  Group
-                | Groups "," Group
-    Group ::=
-                  value(OBJECT IDENTIFIER)
-
-    CompliancePart ::=
-                  Compliances
-                | empty
-
-    Compliances ::=
-                  Compliance
-                | Compliances Compliance
-    Compliance ::=
-                  ComplianceGroup
-                | Object
-
-    ComplianceGroup ::=
-                  "GROUP" value(OBJECT IDENTIFIER)
-                  "DESCRIPTION" Text
-
-    Object ::=
-                  "OBJECT" value(ObjectName)
-                  SyntaxPart
-                  WriteSyntaxPart
-                  AccessPart
-                  "DESCRIPTION" Text
-
-    -- must be a refinement for object's SYNTAX clause
-    SyntaxPart ::= "SYNTAX" Syntax
-                | empty
-
-    -- must be a refinement for object's SYNTAX clause
-    WriteSyntaxPart ::= "WRITE-SYNTAX" Syntax
-                | empty
-
-    Syntax ::=    -- Must be one of the following:
-                       -- a base type (or its refinement),
-                       -- a textual convention (or its refinement), or
-                       -- a BITS pseudo-type
-                  type
-                | "BITS" "{" NamedBits "}"
-
-    NamedBits ::= NamedBit
-                | NamedBits "," NamedBit
-
-    NamedBit ::= identifier "(" number ")" -- number is nonnegative
-
-    AccessPart ::=
-                  "MIN-ACCESS" Access
-                | empty
-    Access ::=
-                  "not-accessible"
-                | "accessible-for-notify"
-                | "read-only"
-                | "read-write"
-                | "read-create"
-
-    -- a character string as defined in [2]
-    Text ::= value(IA5String)
-END
-
--- definitions for capabilities statements
-
-AGENT-CAPABILITIES MACRO ::=
-BEGIN
-    TYPE NOTATION ::=
-                  "PRODUCT-RELEASE" Text
-                  "STATUS" Status
-                  "DESCRIPTION" Text
-                  ReferPart
-                  ModulePart
-
-    VALUE NOTATION ::=
-                  value(VALUE OBJECT IDENTIFIER)
-
-    Status ::=
-                  "current"
-                | "obsolete"
-
-    ReferPart ::=
-                  "REFERENCE" Text
-                | empty
-
-    ModulePart ::=
-                  Modules
-                | empty
-    Modules ::=
-                  Module
-                | Modules Module
-    Module ::=
-                  -- name of module --
-                  "SUPPORTS" ModuleName
-                  "INCLUDES" "{" Groups "}"
-                  VariationPart
-
-    ModuleName ::=
-
-                  -- identifier must start with uppercase letter
-                  identifier ModuleIdentifier
-    ModuleIdentifier ::=
-                  value(OBJECT IDENTIFIER)
-                | empty
-
-    Groups ::=
-                  Group
-                | Groups "," Group
-    Group ::=
-                  value(OBJECT IDENTIFIER)
-
-    VariationPart ::=
-                  Variations
-                | empty
-    Variations ::=
-                  Variation
-                | Variations Variation
-
-    Variation ::=
-                  ObjectVariation
-                | NotificationVariation
-
-    NotificationVariation ::=
-                  "VARIATION" value(NotificationName)
-                  AccessPart
-                  "DESCRIPTION" Text
-
-    ObjectVariation ::=
-                  "VARIATION" value(ObjectName)
-                  SyntaxPart
-                  WriteSyntaxPart
-                  AccessPart
-                  CreationPart
-                  DefValPart
-                  "DESCRIPTION" Text
-
-    -- must be a refinement for object's SYNTAX clause
-    SyntaxPart ::= "SYNTAX" Syntax
-                | empty
-
-    WriteSyntaxPart ::= "WRITE-SYNTAX" Syntax
-                | empty
-
-    Syntax ::=    -- Must be one of the following:
-                       -- a base type (or its refinement),
-                       -- a textual convention (or its refinement), or
-                       -- a BITS pseudo-type
-
-                  type
-                | "BITS" "{" NamedBits "}"
-
-    NamedBits ::= NamedBit
-                | NamedBits "," NamedBit
-
-    NamedBit ::= identifier "(" number ")" -- number is nonnegative
-
-    AccessPart ::=
-                  "ACCESS" Access
-                | empty
-
-    Access ::=
-                  "not-implemented"
-                -- only "not-implemented" for notifications
-                | "accessible-for-notify"
-                | "read-only"
-                | "read-write"
-                | "read-create"
-                -- following is for backward-compatibility only
-                | "write-only"
-
-    CreationPart ::=
-                  "CREATION-REQUIRES" "{" Cells "}"
-                | empty
-    Cells ::=
-                  Cell
-                | Cells "," Cell
-    Cell ::=
-                  value(ObjectName)
-
-    DefValPart ::= "DEFVAL" "{" Defvalue "}"
-                | empty
-
-    Defvalue ::=  -- must be valid for the object's syntax
-                  -- in this macro's SYNTAX clause, if present,
-                  -- or if not, in object's OBJECT-TYPE macro
-                  value(ObjectSyntax)
-                | "{" BitsValue "}"
-
-    BitsValue ::= BitNames
-                | empty
-
-    BitNames ::=  BitName
-                | BitNames "," BitName
-
-    BitName ::= identifier
-
-    -- a character string as defined in [2]
-    Text ::= value(IA5String)
-END
-
-END
diff --git a/mibs/SNMPv2-MIB.txt b/mibs/SNMPv2-MIB.txt
deleted file mode 100644
index 8c82830..0000000
--- a/mibs/SNMPv2-MIB.txt
+++ /dev/null
@@ -1,854 +0,0 @@
-SNMPv2-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
-    TimeTicks, Counter32, snmpModules, mib-2
-        FROM SNMPv2-SMI
-    DisplayString, TestAndIncr, TimeStamp
-
-        FROM SNMPv2-TC
-    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
-        FROM SNMPv2-CONF;
-
-snmpMIB MODULE-IDENTITY
-    LAST-UPDATED "200210160000Z"
-    ORGANIZATION "IETF SNMPv3 Working Group"
-    CONTACT-INFO
-            "WG-EMail:   snmpv3 at lists.tislabs.com
-             Subscribe:  snmpv3-request at lists.tislabs.com
-
-             Co-Chair:   Russ Mundy
-                         Network Associates Laboratories
-             postal:     15204 Omega Drive, Suite 300
-                         Rockville, MD 20850-4601
-                         USA
-             EMail:      mundy at tislabs.com
-             phone:      +1 301 947-7107
-
-             Co-Chair:   David Harrington
-                         Enterasys Networks
-             postal:     35 Industrial Way
-                         P. O. Box 5005
-                         Rochester, NH 03866-5005
-                         USA
-             EMail:      dbh at enterasys.com
-             phone:      +1 603 337-2614
-
-             Editor:     Randy Presuhn
-                         BMC Software, Inc.
-             postal:     2141 North First Street
-                         San Jose, CA 95131
-                         USA
-             EMail:      randy_presuhn at bmc.com
-             phone:      +1 408 546-1006"
-    DESCRIPTION
-            "The MIB module for SNMP entities.
-
-             Copyright (C) The Internet Society (2002). This
-             version of this MIB module is part of RFC 3418;
-             see the RFC itself for full legal notices.
-            "
-    REVISION      "200210160000Z"
-    DESCRIPTION
-            "This revision of this MIB module was published as
-             RFC 3418."
-    REVISION      "199511090000Z"
-    DESCRIPTION
-            "This revision of this MIB module was published as
-             RFC 1907."
-    REVISION      "199304010000Z"
-    DESCRIPTION
-            "The initial revision of this MIB module was published
-            as RFC 1450."
-    ::= { snmpModules 1 }
-
-snmpMIBObjects OBJECT IDENTIFIER ::= { snmpMIB 1 }
-
---  ::= { snmpMIBObjects 1 }        this OID is obsolete
---  ::= { snmpMIBObjects 2 }        this OID is obsolete
---  ::= { snmpMIBObjects 3 }        this OID is obsolete
-
--- the System group
---
--- a collection of objects common to all managed systems.
-
-system   OBJECT IDENTIFIER ::= { mib-2 1 }
-
-sysDescr OBJECT-TYPE
-    SYNTAX      DisplayString (SIZE (0..255))
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "A textual description of the entity.  This value should
-            include the full name and version identification of
-            the system's hardware type, software operating-system,
-            and networking software."
-    ::= { system 1 }
-
-sysObjectID OBJECT-TYPE
-    SYNTAX      OBJECT IDENTIFIER
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The vendor's authoritative identification of the
-            network management subsystem contained in the entity.
-            This value is allocated within the SMI enterprises
-            subtree (1.3.6.1.4.1) and provides an easy and
-            unambiguous means for determining `what kind of box' is
-            being managed.  For example, if vendor `Flintstones,
-            Inc.' was assigned the subtree 1.3.6.1.4.1.424242,
-            it could assign the identifier 1.3.6.1.4.1.424242.1.1
-            to its `Fred Router'."
-    ::= { system 2 }
-
-sysUpTime OBJECT-TYPE
-    SYNTAX      TimeTicks
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "The time (in hundredths of a second) since the
-            network management portion of the system was last
-            re-initialized."
-    ::= { system 3 }
-
-sysContact OBJECT-TYPE
-    SYNTAX      DisplayString (SIZE (0..255))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-            "The textual identification of the contact person for
-            this managed node, together with information on how
-            to contact this person.  If no contact information is
-            known, the value is the zero-length string."
-    ::= { system 4 }
-
-sysName OBJECT-TYPE
-    SYNTAX      DisplayString (SIZE (0..255))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-            "An administratively-assigned name for this managed
-            node.  By convention, this is the node's fully-qualified
-            domain name.  If the name is unknown, the value is
-            the zero-length string."
-    ::= { system 5 }
-
-sysLocation OBJECT-TYPE
-    SYNTAX      DisplayString (SIZE (0..255))
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-            "The physical location of this node (e.g., 'telephone
-            closet, 3rd floor').  If the location is unknown, the
-            value is the zero-length string."
-    ::= { system 6 }
-
-sysServices OBJECT-TYPE
-    SYNTAX      INTEGER (0..127)
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-            "A value which indicates the set of services that this
-            entity may potentially offer.  The value is a sum.
-
-            This sum initially takes the value zero. Then, for
-            each layer, L, in the range 1 through 7, that this node
-            performs transactions for, 2 raised to (L - 1) is added
-            to the sum.  For example, a node which performs only
-            routing functions would have a value of 4 (2^(3-1)).
-            In contrast, a node which is a host offering application
-            services would have a value of 72 (2^(4-1) + 2^(7-1)).
-            Note that in the context of the Internet suite of
-            protocols, values should be calculated accordingly:
-
-                 layer      functionality
-                   1        physical (e.g., repeaters)
-                   2        datalink/subnetwork (e.g., bridges)
-                   3        internet (e.g., supports the IP)
-                   4        end-to-end  (e.g., supports the TCP)
-                   7        applications (e.g., supports the SMTP)
-
-            For systems including OSI protocols, layers 5 and 6
-            may also be counted."
-    ::= { system 7 }
-
--- object resource information
---
--- a collection of objects which describe the SNMP entity's
--- (statically and dynamically configurable) support of
--- various MIB modules.
-
-sysORLastChange OBJECT-TYPE
-    SYNTAX     TimeStamp
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-            "The value of sysUpTime at the time of the most recent
-            change in state or value of any instance of sysORID."
-    ::= { system 8 }
-
-sysORTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF SysOREntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-            "The (conceptual) table listing the capabilities of
-            the local SNMP application acting as a command
-            responder with respect to various MIB modules.
-            SNMP entities having dynamically-configurable support
-            of MIB modules will have a dynamically-varying number
-            of conceptual rows."
-    ::= { system 9 }
-
-sysOREntry OBJECT-TYPE
-    SYNTAX     SysOREntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-            "An entry (conceptual row) in the sysORTable."
-    INDEX      { sysORIndex }
-    ::= { sysORTable 1 }
-
-SysOREntry ::= SEQUENCE {
-    sysORIndex     INTEGER,
-    sysORID        OBJECT IDENTIFIER,
-    sysORDescr     DisplayString,
-    sysORUpTime    TimeStamp
-}
-
-sysORIndex OBJECT-TYPE
-    SYNTAX     INTEGER (1..2147483647)
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-            "The auxiliary variable used for identifying instances
-            of the columnar objects in the sysORTable."
-    ::= { sysOREntry 1 }
-
-sysORID OBJECT-TYPE
-    SYNTAX     OBJECT IDENTIFIER
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-            "An authoritative identification of a capabilities
-            statement with respect to various MIB modules supported
-            by the local SNMP application acting as a command
-            responder."
-    ::= { sysOREntry 2 }
-
-sysORDescr OBJECT-TYPE
-    SYNTAX     DisplayString
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-            "A textual description of the capabilities identified
-            by the corresponding instance of sysORID."
-    ::= { sysOREntry 3 }
-
-sysORUpTime OBJECT-TYPE
-    SYNTAX     TimeStamp
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-            "The value of sysUpTime at the time this conceptual
-            row was last instantiated."
-    ::= { sysOREntry 4 }
-
--- the SNMP group
---
--- a collection of objects providing basic instrumentation and
--- control of an SNMP entity.
-
-snmp     OBJECT IDENTIFIER ::= { mib-2 11 }
-
-snmpInPkts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-            "The total number of messages delivered to the SNMP
-            entity from the transport service."
-    ::= { snmp 1 }
-
-snmpInBadVersions OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-            "The total number of SNMP messages which were delivered
-            to the SNMP entity and were for an unsupported SNMP
-            version."
-    ::= { snmp 3 }
-
-snmpInBadCommunityNames OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of community-based SNMP messages (for
-           example,  SNMPv1) delivered to the SNMP entity which
-           used an SNMP community name not known to said entity.
-           Also, implementations which authenticate community-based
-           SNMP messages using check(s) in addition to matching
-           the community name (for example, by also checking
-           whether the message originated from a transport address
-           allowed to use a specified community name) MAY include
-           in this value the number of messages which failed the
-           additional check(s).  It is strongly RECOMMENDED that
-
-           the documentation for any security model which is used
-           to authenticate community-based SNMP messages specify
-           the precise conditions that contribute to this value."
-    ::= { snmp 4 }
-
-snmpInBadCommunityUses OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of community-based SNMP messages (for
-           example, SNMPv1) delivered to the SNMP entity which
-           represented an SNMP operation that was not allowed for
-           the SNMP community named in the message.  The precise
-           conditions under which this counter is incremented
-           (if at all) depend on how the SNMP entity implements
-           its access control mechanism and how its applications
-           interact with that access control mechanism.  It is
-           strongly RECOMMENDED that the documentation for any
-           access control mechanism which is used to control access
-           to and visibility of MIB instrumentation specify the
-           precise conditions that contribute to this value."
-    ::= { snmp 5 }
-
-snmpInASNParseErrs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-            "The total number of ASN.1 or BER errors encountered by
-            the SNMP entity when decoding received SNMP messages."
-    ::= { snmp 6 }
-
-snmpEnableAuthenTraps OBJECT-TYPE
-    SYNTAX      INTEGER { enabled(1), disabled(2) }
-    MAX-ACCESS  read-write
-    STATUS      current
-    DESCRIPTION
-            "Indicates whether the SNMP entity is permitted to
-            generate authenticationFailure traps.  The value of this
-            object overrides any configuration information; as such,
-            it provides a means whereby all authenticationFailure
-            traps may be disabled.
-
-            Note that it is strongly recommended that this object
-            be stored in non-volatile memory so that it remains
-            constant across re-initializations of the network
-            management system."
-    ::= { snmp 30 }
-
-snmpSilentDrops OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of Confirmed Class PDUs (such as
-           GetRequest-PDUs, GetNextRequest-PDUs,
-           GetBulkRequest-PDUs, SetRequest-PDUs, and
-           InformRequest-PDUs) delivered to the SNMP entity which
-           were silently dropped because the size of a reply
-           containing an alternate Response Class PDU (such as a
-           Response-PDU) with an empty variable-bindings field
-           was greater than either a local constraint or the
-           maximum message size associated with the originator of
-           the request."
-    ::= { snmp 31 }
-
-snmpProxyDrops OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-            "The total number of Confirmed Class PDUs
-            (such as GetRequest-PDUs, GetNextRequest-PDUs,
-            GetBulkRequest-PDUs, SetRequest-PDUs, and
-            InformRequest-PDUs) delivered to the SNMP entity which
-            were silently dropped because the transmission of
-            the (possibly translated) message to a proxy target
-            failed in a manner (other than a time-out) such that
-            no Response Class PDU (such as a Response-PDU) could
-            be returned."
-    ::= { snmp 32 }
-
--- information for notifications
---
--- a collection of objects which allow the SNMP entity, when
--- supporting a notification originator application,
--- to be configured to generate SNMPv2-Trap-PDUs.
-
-snmpTrap       OBJECT IDENTIFIER ::= { snmpMIBObjects 4 }
-
-snmpTrapOID OBJECT-TYPE
-    SYNTAX     OBJECT IDENTIFIER
-    MAX-ACCESS accessible-for-notify
-    STATUS     current
-    DESCRIPTION
-            "The authoritative identification of the notification
-            currently being sent.  This variable occurs as
-            the second varbind in every SNMPv2-Trap-PDU and
-            InformRequest-PDU."
-    ::= { snmpTrap 1 }
-
---  ::= { snmpTrap 2 }   this OID is obsolete
-
-snmpTrapEnterprise OBJECT-TYPE
-    SYNTAX     OBJECT IDENTIFIER
-    MAX-ACCESS accessible-for-notify
-    STATUS     current
-    DESCRIPTION
-            "The authoritative identification of the enterprise
-            associated with the trap currently being sent.  When an
-            SNMP proxy agent is mapping an RFC1157 Trap-PDU
-            into a SNMPv2-Trap-PDU, this variable occurs as the
-            last varbind."
-    ::= { snmpTrap 3 }
-
---  ::= { snmpTrap 4 }   this OID is obsolete
-
--- well-known traps
-
-snmpTraps      OBJECT IDENTIFIER ::= { snmpMIBObjects 5 }
-
-coldStart NOTIFICATION-TYPE
-    STATUS  current
-    DESCRIPTION
-            "A coldStart trap signifies that the SNMP entity,
-            supporting a notification originator application, is
-            reinitializing itself and that its configuration may
-            have been altered."
-    ::= { snmpTraps 1 }
-
-warmStart NOTIFICATION-TYPE
-    STATUS  current
-    DESCRIPTION
-            "A warmStart trap signifies that the SNMP entity,
-            supporting a notification originator application,
-            is reinitializing itself such that its configuration
-            is unaltered."
-    ::= { snmpTraps 2 }
-
--- Note the linkDown NOTIFICATION-TYPE ::= { snmpTraps 3 }
--- and the linkUp NOTIFICATION-TYPE ::= { snmpTraps 4 }
--- are defined in RFC 2863 [RFC2863]
-
-authenticationFailure NOTIFICATION-TYPE
-    STATUS  current
-    DESCRIPTION
-            "An authenticationFailure trap signifies that the SNMP
-             entity has received a protocol message that is not
-             properly authenticated.  While all implementations
-             of SNMP entities MAY be capable of generating this
-             trap, the snmpEnableAuthenTraps object indicates
-             whether this trap will be generated."
-    ::= { snmpTraps 5 }
-
--- Note the egpNeighborLoss notification is defined
--- as { snmpTraps 6 } in RFC 1213
-
--- the set group
---
--- a collection of objects which allow several cooperating
--- command generator applications to coordinate their use of the
--- set operation.
-
-snmpSet        OBJECT IDENTIFIER ::= { snmpMIBObjects 6 }
-
-snmpSetSerialNo OBJECT-TYPE
-    SYNTAX     TestAndIncr
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-            "An advisory lock used to allow several cooperating
-            command generator applications to coordinate their
-            use of the SNMP set operation.
-
-            This object is used for coarse-grain coordination.
-            To achieve fine-grain coordination, one or more similar
-            objects might be defined within each MIB group, as
-            appropriate."
-    ::= { snmpSet 1 }
-
--- conformance information
-
-snmpMIBConformance
-               OBJECT IDENTIFIER ::= { snmpMIB 2 }
-
-snmpMIBCompliances
-               OBJECT IDENTIFIER ::= { snmpMIBConformance 1 }
-snmpMIBGroups  OBJECT IDENTIFIER ::= { snmpMIBConformance 2 }
-
--- compliance statements
-
---    ::= { snmpMIBCompliances 1 }      this OID is obsolete
-snmpBasicCompliance MODULE-COMPLIANCE
-    STATUS  deprecated
-    DESCRIPTION
-            "The compliance statement for SNMPv2 entities which
-            implement the SNMPv2 MIB.
-
-            This compliance statement is replaced by
-            snmpBasicComplianceRev2."
-    MODULE  -- this module
-        MANDATORY-GROUPS { snmpGroup, snmpSetGroup, systemGroup,
-                           snmpBasicNotificationsGroup }
-
-        GROUP   snmpCommunityGroup
-        DESCRIPTION
-            "This group is mandatory for SNMPv2 entities which
-            support community-based authentication."
-    ::= { snmpMIBCompliances 2 }
-
-snmpBasicComplianceRev2 MODULE-COMPLIANCE
-    STATUS  current
-    DESCRIPTION
-            "The compliance statement for SNMP entities which
-            implement this MIB module."
-    MODULE  -- this module
-        MANDATORY-GROUPS { snmpGroup, snmpSetGroup, systemGroup,
-                           snmpBasicNotificationsGroup }
-
-        GROUP   snmpCommunityGroup
-        DESCRIPTION
-            "This group is mandatory for SNMP entities which
-            support community-based authentication."
-
-        GROUP   snmpWarmStartNotificationGroup
-        DESCRIPTION
-            "This group is mandatory for an SNMP entity which
-            supports command responder applications, and is
-            able to reinitialize itself such that its
-            configuration is unaltered."
-    ::= { snmpMIBCompliances 3 }
-
--- units of conformance
-
---  ::= { snmpMIBGroups 1 }           this OID is obsolete
---  ::= { snmpMIBGroups 2 }           this OID is obsolete
---  ::= { snmpMIBGroups 3 }           this OID is obsolete
-
---  ::= { snmpMIBGroups 4 }           this OID is obsolete
-
-snmpGroup OBJECT-GROUP
-    OBJECTS { snmpInPkts,
-              snmpInBadVersions,
-              snmpInASNParseErrs,
-              snmpSilentDrops,
-              snmpProxyDrops,
-              snmpEnableAuthenTraps }
-    STATUS  current
-    DESCRIPTION
-            "A collection of objects providing basic instrumentation
-            and control of an SNMP entity."
-    ::= { snmpMIBGroups 8 }
-
-snmpCommunityGroup OBJECT-GROUP
-    OBJECTS { snmpInBadCommunityNames,
-              snmpInBadCommunityUses }
-    STATUS  current
-    DESCRIPTION
-            "A collection of objects providing basic instrumentation
-            of a SNMP entity which supports community-based
-            authentication."
-    ::= { snmpMIBGroups 9 }
-
-snmpSetGroup OBJECT-GROUP
-    OBJECTS { snmpSetSerialNo }
-    STATUS  current
-    DESCRIPTION
-            "A collection of objects which allow several cooperating
-            command generator applications to coordinate their
-            use of the set operation."
-    ::= { snmpMIBGroups 5 }
-
-systemGroup OBJECT-GROUP
-    OBJECTS { sysDescr, sysObjectID, sysUpTime,
-              sysContact, sysName, sysLocation,
-              sysServices,
-              sysORLastChange, sysORID,
-              sysORUpTime, sysORDescr }
-    STATUS  current
-    DESCRIPTION
-            "The system group defines objects which are common to all
-            managed systems."
-    ::= { snmpMIBGroups 6 }
-
-snmpBasicNotificationsGroup NOTIFICATION-GROUP
-    NOTIFICATIONS { coldStart, authenticationFailure }
-    STATUS        current
-    DESCRIPTION
-       "The basic notifications implemented by an SNMP entity
-        supporting command responder applications."
-    ::= { snmpMIBGroups 7 }
-
-snmpWarmStartNotificationGroup NOTIFICATION-GROUP
-   NOTIFICATIONS { warmStart }
-   STATUS        current
-   DESCRIPTION
-     "An additional notification for an SNMP entity supporting
-     command responder applications, if it is able to reinitialize
-     itself such that its configuration is unaltered."
-  ::= { snmpMIBGroups 11 }
-
-snmpNotificationGroup OBJECT-GROUP
-    OBJECTS { snmpTrapOID, snmpTrapEnterprise }
-    STATUS  current
-    DESCRIPTION
-            "These objects are required for entities
-            which support notification originator applications."
-    ::= { snmpMIBGroups 12 }
-
--- definitions in RFC 1213 made obsolete by the inclusion of a
--- subset of the snmp group in this MIB
-
-snmpOutPkts OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP Messages which were
-            passed from the SNMP protocol entity to the
-            transport service."
-    ::= { snmp 2 }
-
--- { snmp 7 } is not used
-
-snmpInTooBigs OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP PDUs which were
-            delivered to the SNMP protocol entity and for
-            which the value of the error-status field was
-            `tooBig'."
-    ::= { snmp 8 }
-
-snmpInNoSuchNames OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP PDUs which were
-            delivered to the SNMP protocol entity and for
-            which the value of the error-status field was
-            `noSuchName'."
-    ::= { snmp 9 }
-
-snmpInBadValues OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP PDUs which were
-            delivered to the SNMP protocol entity and for
-            which the value of the error-status field was
-            `badValue'."
-    ::= { snmp 10 }
-
-snmpInReadOnlys OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number valid SNMP PDUs which were delivered
-            to the SNMP protocol entity and for which the value
-            of the error-status field was `readOnly'.  It should
-            be noted that it is a protocol error to generate an
-            SNMP PDU which contains the value `readOnly' in the
-            error-status field, as such this object is provided
-            as a means of detecting incorrect implementations of
-            the SNMP."
-    ::= { snmp 11 }
-
-snmpInGenErrs OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP PDUs which were delivered
-            to the SNMP protocol entity and for which the value
-            of the error-status field was `genErr'."
-    ::= { snmp 12 }
-
-snmpInTotalReqVars OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of MIB objects which have been
-            retrieved successfully by the SNMP protocol entity
-            as the result of receiving valid SNMP Get-Request
-            and Get-Next PDUs."
-    ::= { snmp 13 }
-
-snmpInTotalSetVars OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of MIB objects which have been
-            altered successfully by the SNMP protocol entity as
-            the result of receiving valid SNMP Set-Request PDUs."
-    ::= { snmp 14 }
-
-snmpInGetRequests OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP Get-Request PDUs which
-            have been accepted and processed by the SNMP
-            protocol entity."
-    ::= { snmp 15 }
-
-snmpInGetNexts OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP Get-Next PDUs which have been
-            accepted and processed by the SNMP protocol entity."
-    ::= { snmp 16 }
-
-snmpInSetRequests OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP Set-Request PDUs which
-            have been accepted and processed by the SNMP protocol
-            entity."
-    ::= { snmp 17 }
-
-snmpInGetResponses OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP Get-Response PDUs which
-            have been accepted and processed by the SNMP protocol
-            entity."
-    ::= { snmp 18 }
-
-snmpInTraps OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP Trap PDUs which have been
-            accepted and processed by the SNMP protocol entity."
-    ::= { snmp 19 }
-
-snmpOutTooBigs OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP PDUs which were generated
-            by the SNMP protocol entity and for which the value
-            of the error-status field was `tooBig.'"
-    ::= { snmp 20 }
-
-snmpOutNoSuchNames OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP PDUs which were generated
-            by the SNMP protocol entity and for which the value
-            of the error-status was `noSuchName'."
-    ::= { snmp 21 }
-
-snmpOutBadValues OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP PDUs which were generated
-            by the SNMP protocol entity and for which the value
-            of the error-status field was `badValue'."
-    ::= { snmp 22 }
-
--- { snmp 23 } is not used
-
-snmpOutGenErrs OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP PDUs which were generated
-            by the SNMP protocol entity and for which the value
-            of the error-status field was `genErr'."
-    ::= { snmp 24 }
-
-snmpOutGetRequests OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP Get-Request PDUs which
-            have been generated by the SNMP protocol entity."
-    ::= { snmp 25 }
-
-snmpOutGetNexts OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP Get-Next PDUs which have
-            been generated by the SNMP protocol entity."
-    ::= { snmp 26 }
-
-snmpOutSetRequests OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP Set-Request PDUs which
-            have been generated by the SNMP protocol entity."
-    ::= { snmp 27 }
-
-snmpOutGetResponses OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP Get-Response PDUs which
-            have been generated by the SNMP protocol entity."
-    ::= { snmp 28 }
-
-snmpOutTraps OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      obsolete
-    DESCRIPTION
-            "The total number of SNMP Trap PDUs which have
-            been generated by the SNMP protocol entity."
-    ::= { snmp 29 }
-
-snmpObsoleteGroup OBJECT-GROUP
-    OBJECTS { snmpOutPkts, snmpInTooBigs, snmpInNoSuchNames,
-              snmpInBadValues, snmpInReadOnlys, snmpInGenErrs,
-              snmpInTotalReqVars, snmpInTotalSetVars,
-              snmpInGetRequests, snmpInGetNexts, snmpInSetRequests,
-              snmpInGetResponses, snmpInTraps, snmpOutTooBigs,
-              snmpOutNoSuchNames, snmpOutBadValues,
-              snmpOutGenErrs, snmpOutGetRequests, snmpOutGetNexts,
-              snmpOutSetRequests, snmpOutGetResponses, snmpOutTraps
-              }
-    STATUS  obsolete
-    DESCRIPTION
-            "A collection of objects from RFC 1213 made obsolete
-            by this MIB module."
-    ::= { snmpMIBGroups 10 }
-
-END
diff --git a/mibs/SNMPv2-SMI.txt b/mibs/SNMPv2-SMI.txt
deleted file mode 100644
index 1c01e1d..0000000
--- a/mibs/SNMPv2-SMI.txt
+++ /dev/null
@@ -1,344 +0,0 @@
-SNMPv2-SMI DEFINITIONS ::= BEGIN
-
--- the path to the root
-
-org            OBJECT IDENTIFIER ::= { iso 3 }  --  "iso" = 1
-dod            OBJECT IDENTIFIER ::= { org 6 }
-internet       OBJECT IDENTIFIER ::= { dod 1 }
-
-directory      OBJECT IDENTIFIER ::= { internet 1 }
-
-mgmt           OBJECT IDENTIFIER ::= { internet 2 }
-mib-2          OBJECT IDENTIFIER ::= { mgmt 1 }
-transmission   OBJECT IDENTIFIER ::= { mib-2 10 }
-
-experimental   OBJECT IDENTIFIER ::= { internet 3 }
-
-private        OBJECT IDENTIFIER ::= { internet 4 }
-enterprises    OBJECT IDENTIFIER ::= { private 1 }
-
-security       OBJECT IDENTIFIER ::= { internet 5 }
-
-snmpV2         OBJECT IDENTIFIER ::= { internet 6 }
-
--- transport domains
-snmpDomains    OBJECT IDENTIFIER ::= { snmpV2 1 }
-
--- transport proxies
-snmpProxys     OBJECT IDENTIFIER ::= { snmpV2 2 }
-
--- module identities
-snmpModules    OBJECT IDENTIFIER ::= { snmpV2 3 }
-
--- Extended UTCTime, to allow dates with four-digit years
--- (Note that this definition of ExtUTCTime is not to be IMPORTed
---  by MIB modules.)
-ExtUTCTime ::= OCTET STRING(SIZE(11 | 13))
-    -- format is YYMMDDHHMMZ or YYYYMMDDHHMMZ
-
-    --   where: YY   - last two digits of year (only years
-    --                 between 1900-1999)
-    --          YYYY - last four digits of the year (any year)
-    --          MM   - month (01 through 12)
-    --          DD   - day of month (01 through 31)
-    --          HH   - hours (00 through 23)
-    --          MM   - minutes (00 through 59)
-    --          Z    - denotes GMT (the ASCII character Z)
-    --
-    -- For example, "9502192015Z" and "199502192015Z" represent
-    -- 8:15pm GMT on 19 February 1995. Years after 1999 must use
-    -- the four digit year format. Years 1900-1999 may use the
-    -- two or four digit format.
-
--- definitions for information modules
-
-MODULE-IDENTITY MACRO ::=
-BEGIN
-    TYPE NOTATION ::=
-                  "LAST-UPDATED" value(Update ExtUTCTime)
-                  "ORGANIZATION" Text
-                  "CONTACT-INFO" Text
-                  "DESCRIPTION" Text
-                  RevisionPart
-
-    VALUE NOTATION ::=
-                  value(VALUE OBJECT IDENTIFIER)
-
-    RevisionPart ::=
-                  Revisions
-                | empty
-    Revisions ::=
-                  Revision
-                | Revisions Revision
-    Revision ::=
-                  "REVISION" value(Update ExtUTCTime)
-                  "DESCRIPTION" Text
-
-    -- a character string as defined in section 3.1.1
-    Text ::= value(IA5String)
-END
-
-OBJECT-IDENTITY MACRO ::=
-BEGIN
-    TYPE NOTATION ::=
-                  "STATUS" Status
-                  "DESCRIPTION" Text
-
-                  ReferPart
-
-    VALUE NOTATION ::=
-                  value(VALUE OBJECT IDENTIFIER)
-
-    Status ::=
-                  "current"
-                | "deprecated"
-                | "obsolete"
-
-    ReferPart ::=
-                  "REFERENCE" Text
-                | empty
-
-    -- a character string as defined in section 3.1.1
-    Text ::= value(IA5String)
-END
-
--- names of objects
--- (Note that these definitions of ObjectName and NotificationName
---  are not to be IMPORTed by MIB modules.)
-
-ObjectName ::=
-    OBJECT IDENTIFIER
-
-NotificationName ::=
-    OBJECT IDENTIFIER
-
--- syntax of objects
-
--- the "base types" defined here are:
---   3 built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER
---   8 application-defined types: Integer32, IpAddress, Counter32,
---              Gauge32, Unsigned32, TimeTicks, Opaque, and Counter64
-
-ObjectSyntax ::=
-    CHOICE {
-        simple
-            SimpleSyntax,
-          -- note that SEQUENCEs for conceptual tables and
-          -- rows are not mentioned here...
-
-        application-wide
-            ApplicationSyntax
-    }
-
--- built-in ASN.1 types
-
-SimpleSyntax ::=
-    CHOICE {
-        -- INTEGERs with a more restrictive range
-        -- may also be used
-        integer-value               -- includes Integer32
-            INTEGER (-2147483648..2147483647),
-        -- OCTET STRINGs with a more restrictive size
-        -- may also be used
-        string-value
-            OCTET STRING (SIZE (0..65535)),
-        objectID-value
-            OBJECT IDENTIFIER
-    }
-
--- indistinguishable from INTEGER, but never needs more than
--- 32-bits for a two's complement representation
-Integer32 ::=
-        INTEGER (-2147483648..2147483647)
-
--- application-wide types
-
-ApplicationSyntax ::=
-    CHOICE {
-        ipAddress-value
-            IpAddress,
-        counter-value
-            Counter32,
-        timeticks-value
-            TimeTicks,
-        arbitrary-value
-            Opaque,
-        big-counter-value
-            Counter64,
-        unsigned-integer-value  -- includes Gauge32
-            Unsigned32
-    }
-
--- in network-byte order
-
--- (this is a tagged type for historical reasons)
-IpAddress ::=
-    [APPLICATION 0]
-        IMPLICIT OCTET STRING (SIZE (4))
-
--- this wraps
-Counter32 ::=
-    [APPLICATION 1]
-        IMPLICIT INTEGER (0..4294967295)
-
--- this doesn't wrap
-Gauge32 ::=
-    [APPLICATION 2]
-        IMPLICIT INTEGER (0..4294967295)
-
--- an unsigned 32-bit quantity
--- indistinguishable from Gauge32
-Unsigned32 ::=
-    [APPLICATION 2]
-        IMPLICIT INTEGER (0..4294967295)
-
--- hundredths of seconds since an epoch
-TimeTicks ::=
-    [APPLICATION 3]
-        IMPLICIT INTEGER (0..4294967295)
-
--- for backward-compatibility only
-Opaque ::=
-    [APPLICATION 4]
-        IMPLICIT OCTET STRING
-
--- for counters that wrap in less than one hour with only 32 bits
-Counter64 ::=
-    [APPLICATION 6]
-        IMPLICIT INTEGER (0..18446744073709551615)
-
--- definition for objects
-
-OBJECT-TYPE MACRO ::=
-BEGIN
-    TYPE NOTATION ::=
-                  "SYNTAX" Syntax
-                  UnitsPart
-                  "MAX-ACCESS" Access
-                  "STATUS" Status
-                  "DESCRIPTION" Text
-                  ReferPart
-
-                  IndexPart
-                  DefValPart
-
-    VALUE NOTATION ::=
-                  value(VALUE ObjectName)
-
-    Syntax ::=   -- Must be one of the following:
-                       -- a base type (or its refinement),
-                       -- a textual convention (or its refinement), or
-                       -- a BITS pseudo-type
-                   type
-                | "BITS" "{" NamedBits "}"
-
-    NamedBits ::= NamedBit
-                | NamedBits "," NamedBit
-
-    NamedBit ::=  identifier "(" number ")" -- number is nonnegative
-
-    UnitsPart ::=
-                  "UNITS" Text
-                | empty
-
-    Access ::=
-                  "not-accessible"
-                | "accessible-for-notify"
-                | "read-only"
-                | "read-write"
-                | "read-create"
-
-    Status ::=
-                  "current"
-                | "deprecated"
-                | "obsolete"
-
-    ReferPart ::=
-                  "REFERENCE" Text
-                | empty
-
-    IndexPart ::=
-                  "INDEX"    "{" IndexTypes "}"
-                | "AUGMENTS" "{" Entry      "}"
-                | empty
-    IndexTypes ::=
-                  IndexType
-                | IndexTypes "," IndexType
-    IndexType ::=
-                  "IMPLIED" Index
-                | Index
-
-    Index ::=
-                    -- use the SYNTAX value of the
-                    -- correspondent OBJECT-TYPE invocation
-                  value(ObjectName)
-    Entry ::=
-                    -- use the INDEX value of the
-                    -- correspondent OBJECT-TYPE invocation
-                  value(ObjectName)
-
-    DefValPart ::= "DEFVAL" "{" Defvalue "}"
-                | empty
-
-    Defvalue ::=  -- must be valid for the type specified in
-                  -- SYNTAX clause of same OBJECT-TYPE macro
-                  value(ObjectSyntax)
-                | "{" BitsValue "}"
-
-    BitsValue ::= BitNames
-                | empty
-
-    BitNames ::=  BitName
-                | BitNames "," BitName
-
-    BitName ::= identifier
-
-    -- a character string as defined in section 3.1.1
-    Text ::= value(IA5String)
-END
-
--- definitions for notifications
-
-NOTIFICATION-TYPE MACRO ::=
-BEGIN
-    TYPE NOTATION ::=
-                  ObjectsPart
-                  "STATUS" Status
-                  "DESCRIPTION" Text
-                  ReferPart
-
-    VALUE NOTATION ::=
-                  value(VALUE NotificationName)
-
-    ObjectsPart ::=
-                  "OBJECTS" "{" Objects "}"
-                | empty
-    Objects ::=
-                  Object
-
-                | Objects "," Object
-    Object ::=
-                  value(ObjectName)
-
-    Status ::=
-                  "current"
-                | "deprecated"
-                | "obsolete"
-
-    ReferPart ::=
-                  "REFERENCE" Text
-                | empty
-
-    -- a character string as defined in section 3.1.1
-    Text ::= value(IA5String)
-END
-
--- definitions of administrative identifiers
-
-zeroDotZero    OBJECT-IDENTITY
-    STATUS     current
-    DESCRIPTION
-            "A value used for null identifiers."
-    ::= { 0 0 }
-
-END
diff --git a/mibs/SNMPv2-TC.txt b/mibs/SNMPv2-TC.txt
deleted file mode 100644
index 860bf71..0000000
--- a/mibs/SNMPv2-TC.txt
+++ /dev/null
@@ -1,772 +0,0 @@
-SNMPv2-TC DEFINITIONS ::= BEGIN
-
-IMPORTS
-    TimeTicks         FROM SNMPv2-SMI;
-
--- definition of textual conventions
-
-TEXTUAL-CONVENTION MACRO ::=
-
-BEGIN
-    TYPE NOTATION ::=
-                  DisplayPart
-                  "STATUS" Status
-                  "DESCRIPTION" Text
-                  ReferPart
-                  "SYNTAX" Syntax
-
-    VALUE NOTATION ::=
-                   value(VALUE Syntax)      -- adapted ASN.1
-
-    DisplayPart ::=
-                  "DISPLAY-HINT" Text
-                | empty
-
-    Status ::=
-                  "current"
-                | "deprecated"
-                | "obsolete"
-
-    ReferPart ::=
-                  "REFERENCE" Text
-                | empty
-
-    -- a character string as defined in [2]
-    Text ::= value(IA5String)
-
-    Syntax ::=   -- Must be one of the following:
-                       -- a base type (or its refinement), or
-                       -- a BITS pseudo-type
-                  type
-                | "BITS" "{" NamedBits "}"
-
-    NamedBits ::= NamedBit
-                | NamedBits "," NamedBit
-
-    NamedBit ::=  identifier "(" number ")" -- number is nonnegative
-
-END
-
-DisplayString ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "255a"
-    STATUS       current
-    DESCRIPTION
-            "Represents textual information taken from the NVT ASCII
-
-            character set, as defined in pages 4, 10-11 of RFC 854.
-
-            To summarize RFC 854, the NVT ASCII repertoire specifies:
-
-              - the use of character codes 0-127 (decimal)
-
-              - the graphics characters (32-126) are interpreted as
-                US ASCII
-
-              - NUL, LF, CR, BEL, BS, HT, VT and FF have the special
-                meanings specified in RFC 854
-
-              - the other 25 codes have no standard interpretation
-
-              - the sequence 'CR LF' means newline
-
-              - the sequence 'CR NUL' means carriage-return
-
-              - an 'LF' not preceded by a 'CR' means moving to the
-                same column on the next line.
-
-              - the sequence 'CR x' for any x other than LF or NUL is
-                illegal.  (Note that this also means that a string may
-                end with either 'CR LF' or 'CR NUL', but not with CR.)
-
-            Any object defined using this syntax may not exceed 255
-            characters in length."
-    SYNTAX       OCTET STRING (SIZE (0..255))
-
-PhysAddress ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "1x:"
-    STATUS       current
-    DESCRIPTION
-            "Represents media- or physical-level addresses."
-    SYNTAX       OCTET STRING
-
-MacAddress ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "1x:"
-    STATUS       current
-    DESCRIPTION
-            "Represents an 802 MAC address represented in the
-            `canonical' order defined by IEEE 802.1a, i.e., as if it
-            were transmitted least significant bit first, even though
-            802.5 (in contrast to other 802.x protocols) requires MAC
-            addresses to be transmitted most significant bit first."
-    SYNTAX       OCTET STRING (SIZE (6))
-
-TruthValue ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-            "Represents a boolean value."
-    SYNTAX       INTEGER { true(1), false(2) }
-
-TestAndIncr ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-            "Represents integer-valued information used for atomic
-            operations.  When the management protocol is used to specify
-            that an object instance having this syntax is to be
-            modified, the new value supplied via the management protocol
-            must precisely match the value presently held by the
-            instance.  If not, the management protocol set operation
-            fails with an error of `inconsistentValue'.  Otherwise, if
-            the current value is the maximum value of 2^31-1 (2147483647
-            decimal), then the value held by the instance is wrapped to
-            zero; otherwise, the value held by the instance is
-            incremented by one.  (Note that regardless of whether the
-            management protocol set operation succeeds, the variable-
-            binding in the request and response PDUs are identical.)
-
-            The value of the ACCESS clause for objects having this
-            syntax is either `read-write' or `read-create'.  When an
-            instance of a columnar object having this syntax is created,
-            any value may be supplied via the management protocol.
-
-            When the network management portion of the system is re-
-            initialized, the value of every object instance having this
-            syntax must either be incremented from its value prior to
-            the re-initialization, or (if the value prior to the re-
-            initialization is unknown) be set to a pseudo-randomly
-            generated value."
-    SYNTAX       INTEGER (0..2147483647)
-
-AutonomousType ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-            "Represents an independently extensible type identification
-            value.  It may, for example, indicate a particular sub-tree
-            with further MIB definitions, or define a particular type of
-            protocol or hardware."
-    SYNTAX       OBJECT IDENTIFIER
-
-InstancePointer ::= TEXTUAL-CONVENTION
-    STATUS       obsolete
-    DESCRIPTION
-            "A pointer to either a specific instance of a MIB object or
-            a conceptual row of a MIB table in the managed device.  In
-            the latter case, by convention, it is the name of the
-            particular instance of the first accessible columnar object
-            in the conceptual row.
-
-            The two uses of this textual convention are replaced by
-            VariablePointer and RowPointer, respectively."
-    SYNTAX       OBJECT IDENTIFIER
-
-VariablePointer ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-            "A pointer to a specific object instance.  For example,
-            sysContact.0 or ifInOctets.3."
-    SYNTAX       OBJECT IDENTIFIER
-
-RowPointer ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-            "Represents a pointer to a conceptual row.  The value is the
-            name of the instance of the first accessible columnar object
-            in the conceptual row.
-
-            For example, ifIndex.3 would point to the 3rd row in the
-            ifTable (note that if ifIndex were not-accessible, then
-            ifDescr.3 would be used instead)."
-    SYNTAX       OBJECT IDENTIFIER
-
-RowStatus ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-            "The RowStatus textual convention is used to manage the
-            creation and deletion of conceptual rows, and is used as the
-            value of the SYNTAX clause for the status column of a
-            conceptual row (as described in Section 7.7.1 of [2].)
-
-            The status column has six defined values:
-
-                 - `active', which indicates that the conceptual row is
-                 available for use by the managed device;
-
-                 - `notInService', which indicates that the conceptual
-                 row exists in the agent, but is unavailable for use by
-                 the managed device (see NOTE below); 'notInService' has
-                 no implication regarding the internal consistency of
-                 the row, availability of resources, or consistency with
-                 the current state of the managed device;
-
-                 - `notReady', which indicates that the conceptual row
-                 exists in the agent, but is missing information
-                 necessary in order to be available for use by the
-                 managed device (i.e., one or more required columns in
-                 the conceptual row have not been instanciated);
-
-                 - `createAndGo', which is supplied by a management
-                 station wishing to create a new instance of a
-                 conceptual row and to have its status automatically set
-                 to active, making it available for use by the managed
-                 device;
-
-                 - `createAndWait', which is supplied by a management
-                 station wishing to create a new instance of a
-                 conceptual row (but not make it available for use by
-                 the managed device); and,
-                 - `destroy', which is supplied by a management station
-                 wishing to delete all of the instances associated with
-                 an existing conceptual row.
-
-            Whereas five of the six values (all except `notReady') may
-            be specified in a management protocol set operation, only
-            three values will be returned in response to a management
-            protocol retrieval operation:  `notReady', `notInService' or
-            `active'.  That is, when queried, an existing conceptual row
-            has only three states:  it is either available for use by
-            the managed device (the status column has value `active');
-            it is not available for use by the managed device, though
-            the agent has sufficient information to attempt to make it
-            so (the status column has value `notInService'); or, it is
-            not available for use by the managed device, and an attempt
-            to make it so would fail because the agent has insufficient
-            information (the state column has value `notReady').
-
-                                     NOTE WELL
-
-                 This textual convention may be used for a MIB table,
-                 irrespective of whether the values of that table's
-                 conceptual rows are able to be modified while it is
-                 active, or whether its conceptual rows must be taken
-                 out of service in order to be modified.  That is, it is
-                 the responsibility of the DESCRIPTION clause of the
-                 status column to specify whether the status column must
-                 not be `active' in order for the value of some other
-                 column of the same conceptual row to be modified.  If
-                 such a specification is made, affected columns may be
-                 changed by an SNMP set PDU if the RowStatus would not
-                 be equal to `active' either immediately before or after
-                 processing the PDU.  In other words, if the PDU also
-                 contained a varbind that would change the RowStatus
-                 value, the column in question may be changed if the
-                 RowStatus was not equal to `active' as the PDU was
-                 received, or if the varbind sets the status to a value
-                 other than 'active'.
-
-            Also note that whenever any elements of a row exist, the
-            RowStatus column must also exist.
-
-            To summarize the effect of having a conceptual row with a
-            status column having a SYNTAX clause value of RowStatus,
-            consider the following state diagram:
-
-                                         STATE
-              +--------------+-----------+-------------+-------------
-              |      A       |     B     |      C      |      D
-              |              |status col.|status column|
-              |status column |    is     |      is     |status column
-    ACTION    |does not exist|  notReady | notInService|  is active
---------------+--------------+-----------+-------------+-------------
-set status    |noError    ->D|inconsist- |inconsistent-|inconsistent-
-column to     |       or     |   entValue|        Value|        Value
-createAndGo   |inconsistent- |           |             |
-              |         Value|           |             |
---------------+--------------+-----------+-------------+-------------
-set status    |noError  see 1|inconsist- |inconsistent-|inconsistent-
-column to     |       or     |   entValue|        Value|        Value
-createAndWait |wrongValue    |           |             |
---------------+--------------+-----------+-------------+-------------
-set status    |inconsistent- |inconsist- |noError      |noError
-column to     |         Value|   entValue|             |
-active        |              |           |             |
-              |              |     or    |             |
-              |              |           |             |
-              |              |see 2   ->D|see 8     ->D|          ->D
---------------+--------------+-----------+-------------+-------------
-set status    |inconsistent- |inconsist- |noError      |noError   ->C
-column to     |         Value|   entValue|             |
-notInService  |              |           |             |
-              |              |     or    |             |      or
-              |              |           |             |
-              |              |see 3   ->C|          ->C|see 6
---------------+--------------+-----------+-------------+-------------
-set status    |noError       |noError    |noError      |noError   ->A
-column to     |              |           |             |      or
-destroy       |           ->A|        ->A|          ->A|see 7
---------------+--------------+-----------+-------------+-------------
-set any other |see 4         |noError    |noError      |see 5
-column to some|              |           |             |
-value         |              |      see 1|          ->C|          ->D
---------------+--------------+-----------+-------------+-------------
-
-            (1) goto B or C, depending on information available to the
-            agent.
-
-            (2) if other variable bindings included in the same PDU,
-            provide values for all columns which are missing but
-            required, and all columns have acceptable values, then
-            return noError and goto D.
-
-            (3) if other variable bindings included in the same PDU,
-            provide legal values for all columns which are missing but
-            required, then return noError and goto C.
-
-            (4) at the discretion of the agent, the return value may be
-            either:
-
-                 inconsistentName:  because the agent does not choose to
-                 create such an instance when the corresponding
-                 RowStatus instance does not exist, or
-
-                 inconsistentValue:  if the supplied value is
-                 inconsistent with the state of some other MIB object's
-                 value, or
-
-                 noError: because the agent chooses to create the
-                 instance.
-
-            If noError is returned, then the instance of the status
-            column must also be created, and the new state is B or C,
-            depending on the information available to the agent.  If
-            inconsistentName or inconsistentValue is returned, the row
-            remains in state A.
-
-            (5) depending on the MIB definition for the column/table,
-            either noError or inconsistentValue may be returned.
-
-            (6) the return value can indicate one of the following
-            errors:
-
-                 wrongValue: because the agent does not support
-                 notInService (e.g., an agent which does not support
-                 createAndWait), or
-
-                 inconsistentValue: because the agent is unable to take
-                 the row out of service at this time, perhaps because it
-                 is in use and cannot be de-activated.
-
-            (7) the return value can indicate the following error:
-
-                 inconsistentValue: because the agent is unable to
-                 remove the row at this time, perhaps because it is in
-                 use and cannot be de-activated.
-
-            (8) the transition to D can fail, e.g., if the values of the
-            conceptual row are inconsistent, then the error code would
-            be inconsistentValue.
-
-            NOTE: Other processing of (this and other varbinds of) the
-            set request may result in a response other than noError
-            being returned, e.g., wrongValue, noCreation, etc.
-
-                              Conceptual Row Creation
-
-            There are four potential interactions when creating a
-            conceptual row:  selecting an instance-identifier which is
-            not in use; creating the conceptual row; initializing any
-            objects for which the agent does not supply a default; and,
-            making the conceptual row available for use by the managed
-            device.
-
-            Interaction 1: Selecting an Instance-Identifier
-
-            The algorithm used to select an instance-identifier varies
-            for each conceptual row.  In some cases, the instance-
-            identifier is semantically significant, e.g., the
-            destination address of a route, and a management station
-            selects the instance-identifier according to the semantics.
-
-            In other cases, the instance-identifier is used solely to
-            distinguish conceptual rows, and a management station
-            without specific knowledge of the conceptual row might
-            examine the instances present in order to determine an
-            unused instance-identifier.  (This approach may be used, but
-            it is often highly sub-optimal; however, it is also a
-            questionable practice for a naive management station to
-            attempt conceptual row creation.)
-
-            Alternately, the MIB module which defines the conceptual row
-            might provide one or more objects which provide assistance
-            in determining an unused instance-identifier.  For example,
-            if the conceptual row is indexed by an integer-value, then
-            an object having an integer-valued SYNTAX clause might be
-            defined for such a purpose, allowing a management station to
-            issue a management protocol retrieval operation.  In order
-            to avoid unnecessary collisions between competing management
-            stations, `adjacent' retrievals of this object should be
-            different.
-
-            Finally, the management station could select a pseudo-random
-            number to use as the index.  In the event that this index
-
-            was already in use and an inconsistentValue was returned in
-            response to the management protocol set operation, the
-            management station should simply select a new pseudo-random
-            number and retry the operation.
-
-            A MIB designer should choose between the two latter
-            algorithms based on the size of the table (and therefore the
-            efficiency of each algorithm).  For tables in which a large
-            number of entries are expected, it is recommended that a MIB
-            object be defined that returns an acceptable index for
-            creation.  For tables with small numbers of entries, it is
-            recommended that the latter pseudo-random index mechanism be
-            used.
-
-            Interaction 2: Creating the Conceptual Row
-
-            Once an unused instance-identifier has been selected, the
-            management station determines if it wishes to create and
-            activate the conceptual row in one transaction or in a
-            negotiated set of interactions.
-
-            Interaction 2a: Creating and Activating the Conceptual Row
-
-            The management station must first determine the column
-            requirements, i.e., it must determine those columns for
-            which it must or must not provide values.  Depending on the
-            complexity of the table and the management station's
-            knowledge of the agent's capabilities, this determination
-            can be made locally by the management station.  Alternately,
-            the management station issues a management protocol get
-            operation to examine all columns in the conceptual row that
-            it wishes to create.  In response, for each column, there
-            are three possible outcomes:
-
-                 - a value is returned, indicating that some other
-                 management station has already created this conceptual
-                 row.  We return to interaction 1.
-
-                 - the exception `noSuchInstance' is returned,
-                 indicating that the agent implements the object-type
-                 associated with this column, and that this column in at
-                 least one conceptual row would be accessible in the MIB
-                 view used by the retrieval were it to exist. For those
-                 columns to which the agent provides read-create access,
-                 the `noSuchInstance' exception tells the management
-                 station that it should supply a value for this column
-                 when the conceptual row is to be created.
-
-                 - the exception `noSuchObject' is returned, indicating
-                 that the agent does not implement the object-type
-                 associated with this column or that there is no
-                 conceptual row for which this column would be
-                 accessible in the MIB view used by the retrieval.  As
-                 such, the management station can not issue any
-                 management protocol set operations to create an
-                 instance of this column.
-
-            Once the column requirements have been determined, a
-            management protocol set operation is accordingly issued.
-            This operation also sets the new instance of the status
-            column to `createAndGo'.
-
-            When the agent processes the set operation, it verifies that
-            it has sufficient information to make the conceptual row
-            available for use by the managed device.  The information
-            available to the agent is provided by two sources:  the
-            management protocol set operation which creates the
-            conceptual row, and, implementation-specific defaults
-            supplied by the agent (note that an agent must provide
-            implementation-specific defaults for at least those objects
-            which it implements as read-only).  If there is sufficient
-            information available, then the conceptual row is created, a
-            `noError' response is returned, the status column is set to
-            `active', and no further interactions are necessary (i.e.,
-            interactions 3 and 4 are skipped).  If there is insufficient
-            information, then the conceptual row is not created, and the
-            set operation fails with an error of `inconsistentValue'.
-            On this error, the management station can issue a management
-            protocol retrieval operation to determine if this was
-            because it failed to specify a value for a required column,
-            or, because the selected instance of the status column
-            already existed.  In the latter case, we return to
-            interaction 1.  In the former case, the management station
-            can re-issue the set operation with the additional
-            information, or begin interaction 2 again using
-            `createAndWait' in order to negotiate creation of the
-            conceptual row.
-
-                                     NOTE WELL
-
-                 Regardless of the method used to determine the column
-                 requirements, it is possible that the management
-                 station might deem a column necessary when, in fact,
-                 the agent will not allow that particular columnar
-                 instance to be created or written.  In this case, the
-                 management protocol set operation will fail with an
-                 error such as `noCreation' or `notWritable'.  In this
-                 case, the management station decides whether it needs
-                 to be able to set a value for that particular columnar
-                 instance.  If not, the management station re-issues the
-                 management protocol set operation, but without setting
-                 a value for that particular columnar instance;
-                 otherwise, the management station aborts the row
-                 creation algorithm.
-
-            Interaction 2b: Negotiating the Creation of the Conceptual
-            Row
-
-            The management station issues a management protocol set
-            operation which sets the desired instance of the status
-            column to `createAndWait'.  If the agent is unwilling to
-            process a request of this sort, the set operation fails with
-            an error of `wrongValue'.  (As a consequence, such an agent
-            must be prepared to accept a single management protocol set
-            operation, i.e., interaction 2a above, containing all of the
-            columns indicated by its column requirements.)  Otherwise,
-            the conceptual row is created, a `noError' response is
-            returned, and the status column is immediately set to either
-            `notInService' or `notReady', depending on whether it has
-            sufficient information to (attempt to) make the conceptual
-            row available for use by the managed device.  If there is
-            sufficient information available, then the status column is
-            set to `notInService'; otherwise, if there is insufficient
-            information, then the status column is set to `notReady'.
-            Regardless, we proceed to interaction 3.
-
-            Interaction 3: Initializing non-defaulted Objects
-
-            The management station must now determine the column
-            requirements.  It issues a management protocol get operation
-            to examine all columns in the created conceptual row.  In
-            the response, for each column, there are three possible
-            outcomes:
-
-                 - a value is returned, indicating that the agent
-                 implements the object-type associated with this column
-                 and had sufficient information to provide a value.  For
-                 those columns to which the agent provides read-create
-                 access (and for which the agent allows their values to
-                 be changed after their creation), a value return tells
-                 the management station that it may issue additional
-                 management protocol set operations, if it desires, in
-                 order to change the value associated with this column.
-
-                 - the exception `noSuchInstance' is returned,
-                 indicating that the agent implements the object-type
-                 associated with this column, and that this column in at
-                 least one conceptual row would be accessible in the MIB
-                 view used by the retrieval were it to exist. However,
-                 the agent does not have sufficient information to
-                 provide a value, and until a value is provided, the
-                 conceptual row may not be made available for use by the
-                 managed device.  For those columns to which the agent
-                 provides read-create access, the `noSuchInstance'
-                 exception tells the management station that it must
-                 issue additional management protocol set operations, in
-                 order to provide a value associated with this column.
-
-                 - the exception `noSuchObject' is returned, indicating
-                 that the agent does not implement the object-type
-                 associated with this column or that there is no
-                 conceptual row for which this column would be
-                 accessible in the MIB view used by the retrieval.  As
-                 such, the management station can not issue any
-                 management protocol set operations to create an
-                 instance of this column.
-
-            If the value associated with the status column is
-            `notReady', then the management station must first deal with
-            all `noSuchInstance' columns, if any.  Having done so, the
-            value of the status column becomes `notInService', and we
-            proceed to interaction 4.
-
-            Interaction 4: Making the Conceptual Row Available
-
-            Once the management station is satisfied with the values
-            associated with the columns of the conceptual row, it issues
-            a management protocol set operation to set the status column
-            to `active'.  If the agent has sufficient information to
-            make the conceptual row available for use by the managed
-            device, the management protocol set operation succeeds (a
-            `noError' response is returned).  Otherwise, the management
-            protocol set operation fails with an error of
-            `inconsistentValue'.
-
-                                     NOTE WELL
-
-                 A conceptual row having a status column with value
-                 `notInService' or `notReady' is unavailable to the
-                 managed device.  As such, it is possible for the
-                 managed device to create its own instances during the
-                 time between the management protocol set operation
-                 which sets the status column to `createAndWait' and the
-                 management protocol set operation which sets the status
-                 column to `active'.  In this case, when the management
-                 protocol set operation is issued to set the status
-                 column to `active', the values held in the agent
-                 supersede those used by the managed device.
-
-            If the management station is prevented from setting the
-            status column to `active' (e.g., due to management station
-            or network failure) the conceptual row will be left in the
-            `notInService' or `notReady' state, consuming resources
-            indefinitely.  The agent must detect conceptual rows that
-            have been in either state for an abnormally long period of
-            time and remove them.  It is the responsibility of the
-            DESCRIPTION clause of the status column to indicate what an
-            abnormally long period of time would be.  This period of
-            time should be long enough to allow for human response time
-            (including `think time') between the creation of the
-            conceptual row and the setting of the status to `active'.
-            In the absence of such information in the DESCRIPTION
-            clause, it is suggested that this period be approximately 5
-            minutes in length.  This removal action applies not only to
-            newly-created rows, but also to previously active rows which
-            are set to, and left in, the notInService state for a
-            prolonged period exceeding that which is considered normal
-            for such a conceptual row.
-
-                             Conceptual Row Suspension
-
-            When a conceptual row is `active', the management station
-            may issue a management protocol set operation which sets the
-            instance of the status column to `notInService'.  If the
-            agent is unwilling to do so, the set operation fails with an
-            error of `wrongValue' or `inconsistentValue'.  Otherwise,
-            the conceptual row is taken out of service, and a `noError'
-            response is returned.  It is the responsibility of the
-            DESCRIPTION clause of the status column to indicate under
-            what circumstances the status column should be taken out of
-            service (e.g., in order for the value of some other column
-            of the same conceptual row to be modified).
-
-                              Conceptual Row Deletion
-
-            For deletion of conceptual rows, a management protocol set
-            operation is issued which sets the instance of the status
-            column to `destroy'.  This request may be made regardless of
-            the current value of the status column (e.g., it is possible
-            to delete conceptual rows which are either `notReady',
-            `notInService' or `active'.)  If the operation succeeds,
-            then all instances associated with the conceptual row are
-            immediately removed."
-    SYNTAX       INTEGER {
-                     -- the following two values are states:
-                     -- these values may be read or written
-                     active(1),
-                     notInService(2),
-                     -- the following value is a state:
-                     -- this value may be read, but not written
-                     notReady(3),
-                     -- the following three values are
-                     -- actions: these values may be written,
-                     --   but are never read
-                     createAndGo(4),
-                     createAndWait(5),
-                     destroy(6)
-                 }
-
-TimeStamp ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-            "The value of the sysUpTime object at which a specific
-            occurrence happened.  The specific occurrence must be
-
-            defined in the description of any object defined using this
-            type.
-
-            If sysUpTime is reset to zero as a result of a re-
-            initialization of the network management (sub)system, then
-            the values of all TimeStamp objects are also reset.
-            However, after approximately 497 days without a re-
-            initialization, the sysUpTime object will reach 2^^32-1 and
-            then increment around to zero; in this case, existing values
-            of TimeStamp objects do not change.  This can lead to
-            ambiguities in the value of TimeStamp objects."
-    SYNTAX       TimeTicks
-
-TimeInterval ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-            "A period of time, measured in units of 0.01 seconds."
-    SYNTAX       INTEGER (0..2147483647)
-
-DateAndTime ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "2d-1d-1d,1d:1d:1d.1d,1a1d:1d"
-    STATUS       current
-    DESCRIPTION
-            "A date-time specification.
-
-            field  octets  contents                  range
-            -----  ------  --------                  -----
-              1      1-2   year*                     0..65536
-              2       3    month                     1..12
-              3       4    day                       1..31
-              4       5    hour                      0..23
-              5       6    minutes                   0..59
-              6       7    seconds                   0..60
-                           (use 60 for leap-second)
-              7       8    deci-seconds              0..9
-              8       9    direction from UTC        '+' / '-'
-              9      10    hours from UTC*           0..13
-             10      11    minutes from UTC          0..59
-
-            * Notes:
-            - the value of year is in network-byte order
-            - daylight saving time in New Zealand is +13
-
-            For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be
-            displayed as:
-
-                             1992-5-26,13:30:15.0,-4:0
-
-            Note that if only local time is known, then timezone
-            information (fields 8-10) is not present."
-    SYNTAX       OCTET STRING (SIZE (8 | 11))
-
-StorageType ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-            "Describes the memory realization of a conceptual row.  A
-            row which is volatile(2) is lost upon reboot.  A row which
-            is either nonVolatile(3), permanent(4) or readOnly(5), is
-            backed up by stable storage.  A row which is permanent(4)
-            can be changed but not deleted.  A row which is readOnly(5)
-            cannot be changed nor deleted.
-
-            If the value of an object with this syntax is either
-            permanent(4) or readOnly(5), it cannot be written.
-            Conversely, if the value is either other(1), volatile(2) or
-            nonVolatile(3), it cannot be modified to be permanent(4) or
-            readOnly(5).  (All illegal modifications result in a
-            'wrongValue' error.)
-
-            Every usage of this textual convention is required to
-            specify the columnar objects which a permanent(4) row must
-            at a minimum allow to be writable."
-    SYNTAX       INTEGER {
-                     other(1),       -- eh?
-                     volatile(2),    -- e.g., in RAM
-                     nonVolatile(3), -- e.g., in NVRAM
-                     permanent(4),   -- e.g., partially in ROM
-                     readOnly(5)     -- e.g., completely in ROM
-                 }
-
-TDomain ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-          "Denotes a kind of transport service.
-
-          Some possible values, such as snmpUDPDomain, are defined in
-          the SNMPv2-TM MIB module.  Other possible values are defined
-          in other MIB modules."
-    REFERENCE    "The SNMPv2-TM MIB module is defined in RFC 1906."
-    SYNTAX       OBJECT IDENTIFIER
-
-TAddress ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-          "Denotes a transport service address.
-
-          A TAddress value is always interpreted within the context of a
-          TDomain value.  Thus, each definition of a TDomain value must
-          be accompanied by a definition of a textual convention for use
-          with that TDomain.  Some possible textual conventions, such as
-          SnmpUDPAddress for snmpUDPDomain, are defined in the SNMPv2-TM
-          MIB module.  Other possible textual conventions are defined in
-          other MIB modules."
-    REFERENCE    "The SNMPv2-TM MIB module is defined in RFC 1906."
-    SYNTAX       OCTET STRING (SIZE (1..255))
-
-END
diff --git a/mibs/SNMPv2-TM.txt b/mibs/SNMPv2-TM.txt
deleted file mode 100644
index 949f99c..0000000
--- a/mibs/SNMPv2-TM.txt
+++ /dev/null
@@ -1,176 +0,0 @@
-SNMPv2-TM DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-IDENTITY,
-    snmpModules, snmpDomains, snmpProxys
-        FROM SNMPv2-SMI
-    TEXTUAL-CONVENTION
-        FROM SNMPv2-TC;
-
-snmpv2tm MODULE-IDENTITY
-    LAST-UPDATED "200210160000Z"
-    ORGANIZATION "IETF SNMPv3 Working Group"
-    CONTACT-INFO
-            "WG-EMail:   snmpv3 at lists.tislabs.com
-             Subscribe:  snmpv3-request at lists.tislabs.com
-
-             Co-Chair:   Russ Mundy
-                         Network Associates Laboratories
-             postal:     15204 Omega Drive, Suite 300
-                         Rockville, MD 20850-4601
-                         USA
-             EMail:      mundy at tislabs.com
-             phone:      +1 301 947-7107
-
-             Co-Chair:   David Harrington
-                         Enterasys Networks
-             postal:     35 Industrial Way
-                         P. O. Box 5005
-                         Rochester, NH 03866-5005
-                         USA
-             EMail:      dbh at enterasys.com
-             phone:      +1 603 337-2614
-
-             Editor:     Randy Presuhn
-                         BMC Software, Inc.
-             postal:     2141 North First Street
-                         San Jose, CA 95131
-                         USA
-             EMail:      randy_presuhn at bmc.com
-             phone:      +1 408 546-1006"
-    DESCRIPTION
-            "The MIB module for SNMP transport mappings.
-
-             Copyright (C) The Internet Society (2002). This
-             version of this MIB module is part of RFC 3417;
-             see the RFC itself for full legal notices.
-            "
-    REVISION     "200210160000Z"
-    DESCRIPTION
-            "Clarifications, published as RFC 3417."
-    REVISION    "199601010000Z"
-    DESCRIPTION
-            "Clarifications, published as RFC 1906."
-    REVISION    "199304010000Z"
-    DESCRIPTION
-            "The initial version, published as RFC 1449."
-    ::= { snmpModules 19 }
-
--- SNMP over UDP over IPv4
-
-snmpUDPDomain  OBJECT-IDENTITY
-    STATUS     current
-    DESCRIPTION
-            "The SNMP over UDP over IPv4 transport domain.
-            The corresponding transport address is of type
-            SnmpUDPAddress."
-    ::= { snmpDomains 1 }
-
-SnmpUDPAddress ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "1d.1d.1d.1d/2d"
-    STATUS       current
-    DESCRIPTION
-            "Represents a UDP over IPv4 address:
-
-               octets   contents        encoding
-                1-4     IP-address      network-byte order
-                5-6     UDP-port        network-byte order
-            "
-    SYNTAX       OCTET STRING (SIZE (6))
-
--- SNMP over OSI
-
-snmpCLNSDomain OBJECT-IDENTITY
-    STATUS     current
-    DESCRIPTION
-            "The SNMP over CLNS transport domain.
-            The corresponding transport address is of type
-            SnmpOSIAddress."
-    ::= { snmpDomains 2 }
-
-snmpCONSDomain OBJECT-IDENTITY
-    STATUS     current
-    DESCRIPTION
-            "The SNMP over CONS transport domain.
-            The corresponding transport address is of type
-            SnmpOSIAddress."
-    ::= { snmpDomains 3 }
-
-SnmpOSIAddress ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "*1x:/1x:"
-    STATUS       current
-    DESCRIPTION
-            "Represents an OSI transport-address:
-
-          octets   contents           encoding
-             1     length of NSAP     'n' as an unsigned-integer
-                                         (either 0 or from 3 to 20)
-          2..(n+1) NSAP                concrete binary representation
-          (n+2)..m TSEL                string of (up to 64) octets
-            "
-    SYNTAX       OCTET STRING (SIZE (1 | 4..85))
-
--- SNMP over DDP
-
-snmpDDPDomain  OBJECT-IDENTITY
-    STATUS     current
-    DESCRIPTION
-            "The SNMP over DDP transport domain.  The corresponding
-            transport address is of type SnmpNBPAddress."
-    ::= { snmpDomains 4 }
-
-SnmpNBPAddress ::= TEXTUAL-CONVENTION
-    STATUS       current
-    DESCRIPTION
-            "Represents an NBP name:
-
-         octets        contents          encoding
-            1          length of object  'n' as an unsigned integer
-          2..(n+1)     object            string of (up to 32) octets
-           n+2         length of type    'p' as an unsigned integer
-      (n+3)..(n+2+p)   type              string of (up to 32) octets
-          n+3+p        length of zone    'q' as an unsigned integer
-    (n+4+p)..(n+3+p+q) zone              string of (up to 32) octets
-
-            For comparison purposes, strings are
-            case-insensitive. All strings may contain any octet
-            other than 255 (hex ff)."
-    SYNTAX       OCTET STRING (SIZE (3..99))
-
--- SNMP over IPX
-
-snmpIPXDomain  OBJECT-IDENTITY
-    STATUS     current
-    DESCRIPTION
-            "The SNMP over IPX transport domain.  The corresponding
-            transport address is of type SnmpIPXAddress."
-    ::= { snmpDomains 5 }
-
-SnmpIPXAddress ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "4x.1x:1x:1x:1x:1x:1x.2d"
-    STATUS       current
-    DESCRIPTION
-            "Represents an IPX address:
-
-               octets   contents            encoding
-                1-4     network-number      network-byte order
-                5-10    physical-address    network-byte order
-               11-12    socket-number       network-byte order
-            "
-    SYNTAX       OCTET STRING (SIZE (12))
-
--- for proxy to SNMPv1 (RFC 1157)
-
-rfc1157Proxy   OBJECT IDENTIFIER ::= { snmpProxys 1 }
-
-rfc1157Domain  OBJECT-IDENTITY
-    STATUS     deprecated
-    DESCRIPTION
-            "The transport domain for SNMPv1 over UDP over IPv4.
-            The corresponding transport address is of type
-            SnmpUDPAddress."
-    ::= { rfc1157Proxy 1 }
-
---  ::= { rfc1157Proxy 2 }            this OID is obsolete
-
-END
diff --git a/mibs/TCP-MIB.txt b/mibs/TCP-MIB.txt
deleted file mode 100644
index 50e7f57..0000000
--- a/mibs/TCP-MIB.txt
+++ /dev/null
@@ -1,785 +0,0 @@
-TCP-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Unsigned32,
-    Gauge32, Counter32, Counter64, IpAddress, mib-2
-                                       FROM SNMPv2-SMI
-    MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF
-    InetAddress, InetAddressType,
-    InetPortNumber                     FROM INET-ADDRESS-MIB;
-
-tcpMIB MODULE-IDENTITY
-    LAST-UPDATED "200502180000Z"  -- 18 February 2005
-    ORGANIZATION
-           "IETF IPv6 MIB Revision Team
-            http://www.ietf.org/html.charters/ipv6-charter.html"
-    CONTACT-INFO
-           "Rajiv Raghunarayan (editor)
-
-            Cisco Systems Inc.
-            170 West Tasman Drive
-            San Jose, CA 95134
-
-            Phone: +1 408 853 9612
-            Email: <raraghun at cisco.com>
-
-            Send comments to <ipv6 at ietf.org>"
-    DESCRIPTION
-           "The MIB module for managing TCP implementations.
-
-            Copyright (C) The Internet Society (2005). This version
-            of this MIB module is a part of RFC 4022; see the RFC
-            itself for full legal notices."
-    REVISION      "200502180000Z"  -- 18 February 2005
-    DESCRIPTION
-           "IP version neutral revision, published as RFC 4022."
-    REVISION      "9411010000Z"
-    DESCRIPTION
-           "Initial SMIv2 version, published as RFC 2012."
-    REVISION      "9103310000Z"
-    DESCRIPTION
-           "The initial revision of this MIB module was part of
-            MIB-II."
-    ::= { mib-2 49 }
-
--- the TCP base variables group
-
-tcp      OBJECT IDENTIFIER ::= { mib-2 6 }
-
--- Scalars
-
-tcpRtoAlgorithm OBJECT-TYPE
-    SYNTAX      INTEGER {
-                    other(1),    -- none of the following
-                    constant(2), -- a constant rto
-                    rsre(3),     -- MIL-STD-1778, Appendix B
-                    vanj(4),     -- Van Jacobson's algorithm
-                    rfc2988(5)   -- RFC 2988
-                }
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The algorithm used to determine the timeout value used for
-            retransmitting unacknowledged octets."
-    ::= { tcp 1 }
-
-tcpRtoMin OBJECT-TYPE
-    SYNTAX     Integer32 (0..2147483647)
-    UNITS      "milliseconds"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The minimum value permitted by a TCP implementation for
-            the retransmission timeout, measured in milliseconds.
-            More refined semantics for objects of this type depend
-            on the algorithm used to determine the retransmission
-            timeout; in particular, the IETF standard algorithm
-            rfc2988(5) provides a minimum value."
-    ::= { tcp 2 }
-
-tcpRtoMax OBJECT-TYPE
-    SYNTAX     Integer32 (0..2147483647)
-    UNITS      "milliseconds"
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The maximum value permitted by a TCP implementation for
-            the retransmission timeout, measured in milliseconds.
-            More refined semantics for objects of this type depend
-            on the algorithm used to determine the retransmission
-            timeout; in particular, the IETF standard algorithm
-            rfc2988(5) provides an upper bound (as part of an
-            adaptive backoff algorithm)."
-    ::= { tcp 3 }
-
-tcpMaxConn OBJECT-TYPE
-    SYNTAX     Integer32 (-1 | 0..2147483647)
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The limit on the total number of TCP connections the entity
-            can support.  In entities where the maximum number of
-            connections is dynamic, this object should contain the
-            value -1."
-    ::= { tcp 4 }
-
-tcpActiveOpens OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of times that TCP connections have made a direct
-            transition to the SYN-SENT state from the CLOSED state.
-
-            Discontinuities in the value of this counter are
-            indicated via discontinuities in the value of sysUpTime."
-    ::= { tcp 5 }
-
-tcpPassiveOpens OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of times TCP connections have made a direct
-            transition to the SYN-RCVD state from the LISTEN state.
-
-            Discontinuities in the value of this counter are
-            indicated via discontinuities in the value of sysUpTime."
-    ::= { tcp 6 }
-
-tcpAttemptFails OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of times that TCP connections have made a direct
-            transition to the CLOSED state from either the SYN-SENT
-            state or the SYN-RCVD state, plus the number of times that
-            TCP connections have made a direct transition to the
-            LISTEN state from the SYN-RCVD state.
-
-            Discontinuities in the value of this counter are
-            indicated via discontinuities in the value of sysUpTime."
-    ::= { tcp 7 }
-
-tcpEstabResets OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of times that TCP connections have made a direct
-            transition to the CLOSED state from either the ESTABLISHED
-            state or the CLOSE-WAIT state.
-
-            Discontinuities in the value of this counter are
-            indicated via discontinuities in the value of sysUpTime."
-    ::= { tcp 8 }
-
-tcpCurrEstab OBJECT-TYPE
-    SYNTAX     Gauge32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of TCP connections for which the current state
-            is either ESTABLISHED or CLOSE-WAIT."
-    ::= { tcp 9 }
-
-tcpInSegs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of segments received, including those
-            received in error.  This count includes segments received
-            on currently established connections.
-
-            Discontinuities in the value of this counter are
-            indicated via discontinuities in the value of sysUpTime."
-    ::= { tcp 10 }
-
-tcpOutSegs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of segments sent, including those on
-            current connections but excluding those containing only
-            retransmitted octets.
-
-            Discontinuities in the value of this counter are
-            indicated via discontinuities in the value of sysUpTime."
-    ::= { tcp 11 }
-
-tcpRetransSegs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of segments retransmitted; that is, the
-            number of TCP segments transmitted containing one or more
-            previously transmitted octets.
-
-            Discontinuities in the value of this counter are
-            indicated via discontinuities in the value of sysUpTime."
-    ::= { tcp 12 }
-
-tcpInErrs OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of segments received in error (e.g., bad
-            TCP checksums).
-
-            Discontinuities in the value of this counter are
-            indicated via discontinuities in the value of sysUpTime."
-    ::= { tcp 14 }
-
-tcpOutRsts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of TCP segments sent containing the RST flag.
-
-            Discontinuities in the value of this counter are
-            indicated via discontinuities in the value of sysUpTime."
-    ::= { tcp 15 }
-
--- { tcp 16 } was used to represent the ipv6TcpConnTable in RFC 2452,
--- which has since been obsoleted.  It MUST not be used.
-
-tcpHCInSegs OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of segments received, including those
-            received in error.  This count includes segments received
-
-            on currently established connections.  This object is
-            the 64-bit equivalent of tcpInSegs.
-
-            Discontinuities in the value of this counter are
-            indicated via discontinuities in the value of sysUpTime."
-    ::= { tcp 17 }
-
-tcpHCOutSegs OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of segments sent, including those on
-            current connections but excluding those containing only
-            retransmitted octets.  This object is the 64-bit
-            equivalent of tcpOutSegs.
-
-            Discontinuities in the value of this counter are
-            indicated via discontinuities in the value of sysUpTime."
-    ::= { tcp 18 }
-
--- The TCP Connection table
-
-tcpConnectionTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF TcpConnectionEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "A table containing information about existing TCP
-            connections.  Note that unlike earlier TCP MIBs, there
-            is a separate table for connections in the LISTEN state."
-    ::= { tcp 19 }
-
-tcpConnectionEntry OBJECT-TYPE
-    SYNTAX     TcpConnectionEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "A conceptual row of the tcpConnectionTable containing
-            information about a particular current TCP connection.
-            Each row of this table is transient in that it ceases to
-            exist when (or soon after) the connection makes the
-            transition to the CLOSED state."
-    INDEX   { tcpConnectionLocalAddressType,
-              tcpConnectionLocalAddress,
-              tcpConnectionLocalPort,
-              tcpConnectionRemAddressType,
-              tcpConnectionRemAddress,
-              tcpConnectionRemPort }
-    ::= { tcpConnectionTable 1 }
-
-TcpConnectionEntry ::= SEQUENCE {
-        tcpConnectionLocalAddressType   InetAddressType,
-        tcpConnectionLocalAddress       InetAddress,
-        tcpConnectionLocalPort          InetPortNumber,
-        tcpConnectionRemAddressType     InetAddressType,
-        tcpConnectionRemAddress         InetAddress,
-        tcpConnectionRemPort            InetPortNumber,
-        tcpConnectionState              INTEGER,
-        tcpConnectionProcess            Unsigned32
-    }
-
-tcpConnectionLocalAddressType OBJECT-TYPE
-    SYNTAX     InetAddressType
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The address type of tcpConnectionLocalAddress."
-    ::= { tcpConnectionEntry 1 }
-
-tcpConnectionLocalAddress OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The local IP address for this TCP connection.  The type
-            of this address is determined by the value of
-            tcpConnectionLocalAddressType.
-
-            As this object is used in the index for the
-            tcpConnectionTable, implementors should be
-            careful not to create entries that would result in OIDs
-            with more than 128 subidentifiers; otherwise the information
-            cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."
-    ::= { tcpConnectionEntry 2 }
-
-tcpConnectionLocalPort OBJECT-TYPE
-    SYNTAX     InetPortNumber
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The local port number for this TCP connection."
-    ::= { tcpConnectionEntry 3 }
-
-tcpConnectionRemAddressType OBJECT-TYPE
-    SYNTAX     InetAddressType
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The address type of tcpConnectionRemAddress."
-    ::= { tcpConnectionEntry 4 }
-
-tcpConnectionRemAddress OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The remote IP address for this TCP connection.  The type
-            of this address is determined by the value of
-            tcpConnectionRemAddressType.
-
-            As this object is used in the index for the
-            tcpConnectionTable, implementors should be
-            careful not to create entries that would result in OIDs
-            with more than 128 subidentifiers; otherwise the information
-            cannot be accessed by using SNMPv1, SNMPv2c, or SNMPv3."
-    ::= { tcpConnectionEntry 5 }
-
-tcpConnectionRemPort OBJECT-TYPE
-    SYNTAX     InetPortNumber
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The remote port number for this TCP connection."
-    ::= { tcpConnectionEntry 6 }
-
-tcpConnectionState OBJECT-TYPE
-    SYNTAX     INTEGER {
-                    closed(1),
-                    listen(2),
-                    synSent(3),
-                    synReceived(4),
-                    established(5),
-                    finWait1(6),
-                    finWait2(7),
-                    closeWait(8),
-                    lastAck(9),
-                    closing(10),
-                    timeWait(11),
-                    deleteTCB(12)
-                }
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-           "The state of this TCP connection.
-
-            The value listen(2) is included only for parallelism to the
-            old tcpConnTable and should not be used.  A connection in
-            LISTEN state should be present in the tcpListenerTable.
-
-            The only value that may be set by a management station is
-            deleteTCB(12).  Accordingly, it is appropriate for an agent
-            to return a `badValue' response if a management station
-            attempts to set this object to any other value.
-
-            If a management station sets this object to the value
-            deleteTCB(12), then the TCB (as defined in [RFC793]) of
-            the corresponding connection on the managed node is
-            deleted, resulting in immediate termination of the
-            connection.
-
-            As an implementation-specific option, a RST segment may be
-            sent from the managed node to the other TCP endpoint (note,
-            however, that RST segments are not sent reliably)."
-    ::= { tcpConnectionEntry 7 }
-
-tcpConnectionProcess OBJECT-TYPE
-    SYNTAX     Unsigned32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The system's process ID for the process associated with
-            this connection, or zero if there is no such process.  This
-            value is expected to be the same as HOST-RESOURCES-MIB::
-            hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
-            row in the appropriate tables."
-    ::= { tcpConnectionEntry 8 }
-
--- The TCP Listener table
-
-tcpListenerTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF TcpListenerEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "A table containing information about TCP listeners.  A
-            listening application can be represented in three
-            possible ways:
-
-            1. An application that is willing to accept both IPv4 and
-               IPv6 datagrams is represented by
-
-               a tcpListenerLocalAddressType of unknown (0) and
-               a tcpListenerLocalAddress of ''h (a zero-length
-               octet-string).
-
-            2. An application that is willing to accept only IPv4 or
-               IPv6 datagrams is represented by a
-               tcpListenerLocalAddressType of the appropriate address
-               type and a tcpListenerLocalAddress of '0.0.0.0' or '::'
-               respectively.
-
-            3. An application that is listening for data destined
-               only to a specific IP address, but from any remote
-               system, is represented by a tcpListenerLocalAddressType
-               of an appropriate address type, with
-               tcpListenerLocalAddress as the specific local address.
-
-            NOTE: The address type in this table represents the
-            address type used for the communication, irrespective
-            of the higher-layer abstraction.  For example, an
-            application using IPv6 'sockets' to communicate via
-            IPv4 between ::ffff:10.0.0.1 and ::ffff:10.0.0.2 would
-            use InetAddressType ipv4(1))."
-    ::= { tcp 20 }
-
-tcpListenerEntry OBJECT-TYPE
-    SYNTAX     TcpListenerEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "A conceptual row of the tcpListenerTable containing
-            information about a particular TCP listener."
-    INDEX   { tcpListenerLocalAddressType,
-              tcpListenerLocalAddress,
-              tcpListenerLocalPort }
-    ::= { tcpListenerTable 1 }
-
-TcpListenerEntry ::= SEQUENCE {
-        tcpListenerLocalAddressType       InetAddressType,
-        tcpListenerLocalAddress           InetAddress,
-        tcpListenerLocalPort              InetPortNumber,
-        tcpListenerProcess                Unsigned32
-    }
-
-tcpListenerLocalAddressType OBJECT-TYPE
-    SYNTAX     InetAddressType
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The address type of tcpListenerLocalAddress.  The value
-            should be unknown (0) if connection initiations to all
-            local IP addresses are accepted."
-    ::= { tcpListenerEntry 1 }
-
-tcpListenerLocalAddress OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The local IP address for this TCP connection.
-
-            The value of this object can be represented in three
-            possible ways, depending on the characteristics of the
-            listening application:
-
-            1. For an application willing to accept both IPv4 and
-               IPv6 datagrams, the value of this object must be
-               ''h (a zero-length octet-string), with the value
-               of the corresponding tcpListenerLocalAddressType
-               object being unknown (0).
-
-            2. For an application willing to accept only IPv4 or
-               IPv6 datagrams, the value of this object must be
-               '0.0.0.0' or '::' respectively, with
-               tcpListenerLocalAddressType representing the
-               appropriate address type.
-
-            3. For an application which is listening for data
-               destined only to a specific IP address, the value
-               of this object is the specific local address, with
-               tcpListenerLocalAddressType representing the
-               appropriate address type.
-
-            As this object is used in the index for the
-            tcpListenerTable, implementors should be
-            careful not to create entries that would result in OIDs
-            with more than 128 subidentifiers; otherwise the information
-            cannot be accessed, using SNMPv1, SNMPv2c, or SNMPv3."
-    ::= { tcpListenerEntry 2 }
-
-tcpListenerLocalPort OBJECT-TYPE
-    SYNTAX     InetPortNumber
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The local port number for this TCP connection."
-    ::= { tcpListenerEntry 3 }
-
-tcpListenerProcess OBJECT-TYPE
-    SYNTAX     Unsigned32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The system's process ID for the process associated with
-            this listener, or zero if there is no such process.  This
-            value is expected to be the same as HOST-RESOURCES-MIB::
-            hrSWRunIndex or SYSAPPL-MIB::sysApplElmtRunIndex for some
-            row in the appropriate tables."
-    ::= { tcpListenerEntry 4 }
-
--- The deprecated TCP Connection table
-
-tcpConnTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF TcpConnEntry
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-           "A table containing information about existing IPv4-specific
-            TCP connections or listeners.  This table has been
-            deprecated in favor of the version neutral
-            tcpConnectionTable."
-    ::= { tcp 13 }
-
-tcpConnEntry OBJECT-TYPE
-    SYNTAX     TcpConnEntry
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-           "A conceptual row of the tcpConnTable containing information
-            about a particular current IPv4 TCP connection.  Each row
-            of this table is transient in that it ceases to exist when
-            (or soon after) the connection makes the transition to the
-            CLOSED state."
-    INDEX   { tcpConnLocalAddress,
-              tcpConnLocalPort,
-              tcpConnRemAddress,
-              tcpConnRemPort }
-    ::= { tcpConnTable 1 }
-
-TcpConnEntry ::= SEQUENCE {
-        tcpConnState         INTEGER,
-        tcpConnLocalAddress  IpAddress,
-        tcpConnLocalPort     Integer32,
-        tcpConnRemAddress    IpAddress,
-        tcpConnRemPort       Integer32
-
-    }
-
-tcpConnState OBJECT-TYPE
-    SYNTAX     INTEGER {
-                    closed(1),
-                    listen(2),
-                    synSent(3),
-                    synReceived(4),
-                    established(5),
-                    finWait1(6),
-                    finWait2(7),
-                    closeWait(8),
-                    lastAck(9),
-                    closing(10),
-                    timeWait(11),
-                    deleteTCB(12)
-                }
-    MAX-ACCESS read-write
-    STATUS     deprecated
-    DESCRIPTION
-           "The state of this TCP connection.
-
-            The only value that may be set by a management station is
-            deleteTCB(12).  Accordingly, it is appropriate for an agent
-            to return a `badValue' response if a management station
-            attempts to set this object to any other value.
-
-            If a management station sets this object to the value
-            deleteTCB(12), then the TCB (as defined in [RFC793]) of
-            the corresponding connection on the managed node is
-            deleted, resulting in immediate termination of the
-            connection.
-
-            As an implementation-specific option, a RST segment may be
-            sent from the managed node to the other TCP endpoint (note,
-            however, that RST segments are not sent reliably)."
-    ::= { tcpConnEntry 1 }
-
-tcpConnLocalAddress OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The local IP address for this TCP connection.  In the case
-            of a connection in the listen state willing to
-            accept connections for any IP interface associated with the
-            node, the value 0.0.0.0 is used."
-    ::= { tcpConnEntry 2 }
-
-tcpConnLocalPort OBJECT-TYPE
-    SYNTAX     Integer32 (0..65535)
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The local port number for this TCP connection."
-    ::= { tcpConnEntry 3 }
-
-tcpConnRemAddress OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The remote IP address for this TCP connection."
-    ::= { tcpConnEntry 4 }
-
-tcpConnRemPort OBJECT-TYPE
-    SYNTAX     Integer32 (0..65535)
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The remote port number for this TCP connection."
-    ::= { tcpConnEntry 5 }
-
--- conformance information
-
-tcpMIBConformance OBJECT IDENTIFIER ::= { tcpMIB 2 }
-
-tcpMIBCompliances OBJECT IDENTIFIER ::= { tcpMIBConformance 1 }
-tcpMIBGroups      OBJECT IDENTIFIER ::= { tcpMIBConformance 2 }
-
--- compliance statements
-
-tcpMIBCompliance2 MODULE-COMPLIANCE
-    STATUS     current
-    DESCRIPTION
-           "The compliance statement for systems that implement TCP.
-
-            A number of INDEX objects cannot be
-            represented in the form of OBJECT clauses in SMIv2 but
-            have the following compliance requirements,
-            expressed in OBJECT clause form in this description
-            clause:
-
-            -- OBJECT      tcpConnectionLocalAddressType
-            -- SYNTAX      InetAddressType { ipv4(1), ipv6(2) }
-            -- DESCRIPTION
-            --     This MIB requires support for only global IPv4
-
-            --     and IPv6 address types.
-            --
-            -- OBJECT      tcpConnectionRemAddressType
-            -- SYNTAX      InetAddressType { ipv4(1), ipv6(2) }
-            -- DESCRIPTION
-            --     This MIB requires support for only global IPv4
-            --     and IPv6 address types.
-            --
-            -- OBJECT      tcpListenerLocalAddressType
-            -- SYNTAX      InetAddressType { unknown(0), ipv4(1),
-            --                               ipv6(2) }
-            -- DESCRIPTION
-            --     This MIB requires support for only global IPv4
-            --     and IPv6 address types.  The type unknown also
-            --     needs to be supported to identify a special
-            --     case in the listener table: a listen using
-            --     both IPv4 and IPv6 addresses on the device.
-            --
-           "
-    MODULE  -- this module
-        MANDATORY-GROUPS { tcpBaseGroup, tcpConnectionGroup,
-                           tcpListenerGroup }
-        GROUP       tcpHCGroup
-        DESCRIPTION
-           "This group is mandatory for systems that are capable
-            of receiving or transmitting more than 1 million TCP
-            segments per second.  1 million segments per second will
-            cause a Counter32 to wrap in just over an hour."
-        OBJECT      tcpConnectionState
-        SYNTAX      INTEGER { closed(1), listen(2), synSent(3),
-                              synReceived(4), established(5),
-                              finWait1(6), finWait2(7), closeWait(8),
-                              lastAck(9), closing(10), timeWait(11) }
-        MIN-ACCESS  read-only
-        DESCRIPTION
-           "Write access is not required, nor is support for the value
-            deleteTCB (12)."
-    ::= { tcpMIBCompliances 2 }
-
-tcpMIBCompliance MODULE-COMPLIANCE
-    STATUS     deprecated
-    DESCRIPTION
-           "The compliance statement for IPv4-only systems that
-            implement TCP.  In order to be IP version independent, this
-            compliance statement is deprecated in favor of
-            tcpMIBCompliance2.  However, agents are still encouraged
-            to implement these objects in order to interoperate with
-            the deployed base of managers."
-
-    MODULE  -- this module
-        MANDATORY-GROUPS { tcpGroup }
-        OBJECT      tcpConnState
-        MIN-ACCESS  read-only
-        DESCRIPTION
-           "Write access is not required."
-    ::= { tcpMIBCompliances 1 }
-
--- units of conformance
-
-tcpGroup OBJECT-GROUP
-    OBJECTS   { tcpRtoAlgorithm, tcpRtoMin, tcpRtoMax,
-                tcpMaxConn, tcpActiveOpens,
-                tcpPassiveOpens, tcpAttemptFails,
-                tcpEstabResets, tcpCurrEstab, tcpInSegs,
-                tcpOutSegs, tcpRetransSegs, tcpConnState,
-                tcpConnLocalAddress, tcpConnLocalPort,
-                tcpConnRemAddress, tcpConnRemPort,
-                tcpInErrs, tcpOutRsts }
-    STATUS     deprecated
-    DESCRIPTION
-           "The tcp group of objects providing for management of TCP
-            entities."
-    ::= { tcpMIBGroups 1 }
-
-tcpBaseGroup OBJECT-GROUP
-    OBJECTS   { tcpRtoAlgorithm, tcpRtoMin, tcpRtoMax,
-                tcpMaxConn, tcpActiveOpens,
-                tcpPassiveOpens, tcpAttemptFails,
-                tcpEstabResets, tcpCurrEstab, tcpInSegs,
-                tcpOutSegs, tcpRetransSegs,
-                tcpInErrs, tcpOutRsts }
-    STATUS     current
-    DESCRIPTION
-           "The group of counters common to TCP entities."
-    ::= { tcpMIBGroups 2 }
-
-tcpConnectionGroup OBJECT-GROUP
-    OBJECTS    { tcpConnectionState, tcpConnectionProcess }
-    STATUS     current
-    DESCRIPTION
-           "The group provides general information about TCP
-            connections."
-    ::= { tcpMIBGroups 3 }
-
-tcpListenerGroup OBJECT-GROUP
-    OBJECTS    { tcpListenerProcess }
-    STATUS     current
-    DESCRIPTION
-           "This group has objects providing general information about
-            TCP listeners."
-    ::= { tcpMIBGroups 4 }
-
-tcpHCGroup OBJECT-GROUP
-    OBJECTS    { tcpHCInSegs, tcpHCOutSegs }
-    STATUS     current
-    DESCRIPTION
-           "The group of objects providing for counters of high speed
-            TCP implementations."
-    ::= { tcpMIBGroups 5 }
-
-END
diff --git a/mibs/TRANSPORT-ADDRESS-MIB.txt b/mibs/TRANSPORT-ADDRESS-MIB.txt
deleted file mode 100644
index 227886e..0000000
--- a/mibs/TRANSPORT-ADDRESS-MIB.txt
+++ /dev/null
@@ -1,421 +0,0 @@
-TRANSPORT-ADDRESS-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-IDENTITY, mib-2     FROM SNMPv2-SMI
-    TEXTUAL-CONVENTION                          FROM SNMPv2-TC;
-
-transportAddressMIB MODULE-IDENTITY
-    LAST-UPDATED "200211010000Z"
-    ORGANIZATION
-        "IETF Operations and Management Area"
-    CONTACT-INFO
-        "Juergen Schoenwaelder (Editor)
-         TU Braunschweig
-         Bueltenweg 74/75
-         38106 Braunschweig, Germany
-
-         Phone: +49 531 391-3289
-         EMail: schoenw at ibr.cs.tu-bs.de
-
-         Send comments to <mibs at ops.ietf.org>."
-    DESCRIPTION
-        "This MIB module provides commonly used transport
-         address definitions.
-
-         Copyright (C) The Internet Society (2002). This version of
-         this MIB module is part of RFC 3419; see the RFC itself for
-         full legal notices."
-
-    -- Revision log
-
-    REVISION    "200211010000Z"
-    DESCRIPTION
-        "Initial version, published as RFC 3419."
-    ::= { mib-2 100 }
-
-transportDomains OBJECT IDENTIFIER ::= { transportAddressMIB 1 }
-
-transportDomainUdpIpv4 OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The UDP over IPv4 transport domain.  The corresponding
-         transport address is of type TransportAddressIPv4 for
-         global IPv4 addresses."
-    ::= { transportDomains 1 }
-
-transportDomainUdpIpv6 OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The UDP over IPv6 transport domain.  The corresponding
-         transport address is of type TransportAddressIPv6 for
-         global IPv6 addresses."
-    ::= { transportDomains 2 }
-
-transportDomainUdpIpv4z OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The UDP over IPv4 transport domain.  The corresponding
-         transport address is of type TransportAddressIPv4z for
-         scoped IPv4 addresses with a zone index."
-    ::= { transportDomains 3 }
-
-transportDomainUdpIpv6z OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The UDP over IPv6 transport domain.  The corresponding
-         transport address is of type TransportAddressIPv6z for
-         scoped IPv6 addresses with a zone index."
-    ::= { transportDomains 4 }
-
-transportDomainTcpIpv4 OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The TCP over IPv4 transport domain.  The corresponding
-         transport address is of type TransportAddressIPv4 for
-         global IPv4 addresses."
-    ::= { transportDomains 5 }
-
-transportDomainTcpIpv6 OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The TCP over IPv6 transport domain.  The corresponding
-         transport address is of type TransportAddressIPv6 for
-         global IPv6 addresses."
-    ::= { transportDomains 6 }
-
-transportDomainTcpIpv4z OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The TCP over IPv4 transport domain.  The corresponding
-         transport address is of type TransportAddressIPv4z for
-         scoped IPv4 addresses with a zone index."
-    ::= { transportDomains 7 }
-
-transportDomainTcpIpv6z OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The TCP over IPv6 transport domain.  The corresponding
-         transport address is of type TransportAddressIPv6z for
-         scoped IPv6 addresses with a zone index."
-    ::= { transportDomains 8 }
-
-transportDomainSctpIpv4 OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The SCTP over IPv4 transport domain.  The corresponding
-         transport address is of type TransportAddressIPv4 for
-         global IPv4 addresses. This transport domain usually
-         represents the primary address on multihomed SCTP
-         endpoints."
-    ::= { transportDomains 9 }
-
-transportDomainSctpIpv6 OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The SCTP over IPv6 transport domain.  The corresponding
-         transport address is of type TransportAddressIPv6 for
-         global IPv6 addresses. This transport domain usually
-         represents the primary address on multihomed SCTP
-         endpoints."
-    ::= { transportDomains 10 }
-
-transportDomainSctpIpv4z OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The SCTP over IPv4 transport domain.  The corresponding
-         transport address is of type TransportAddressIPv4z for
-         scoped IPv4 addresses with a zone index. This transport
-         domain usually represents the primary address on
-         multihomed SCTP endpoints."
-    ::= { transportDomains 11 }
-
-transportDomainSctpIpv6z OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The SCTP over IPv6 transport domain.  The corresponding
-         transport address is of type TransportAddressIPv6z for
-         scoped IPv6 addresses with a zone index. This transport
-         domain usually represents the primary address on
-         multihomed SCTP endpoints."
-    ::= { transportDomains 12 }
-
-transportDomainLocal OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The Posix Local IPC transport domain. The corresponding
-         transport address is of type TransportAddressLocal.
-
-         The Posix Local IPC transport domain incorporates the
-         well-known UNIX domain sockets."
-    ::= { transportDomains 13 }
-
-transportDomainUdpDns OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The UDP transport domain using fully qualified domain
-         names. The corresponding transport address is of type
-         TransportAddressDns."
-    ::= { transportDomains 14 }
-
-transportDomainTcpDns OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The TCP transport domain using fully qualified domain
-         names. The corresponding transport address is of type
-         TransportAddressDns."
-    ::= { transportDomains 15 }
-
-transportDomainSctpDns OBJECT-IDENTITY
-    STATUS      current
-    DESCRIPTION
-        "The SCTP transport domain using fully qualified domain
-         names. The corresponding transport address is of type
-         TransportAddressDns."
-    ::= { transportDomains 16 }
-
-TransportDomain ::= TEXTUAL-CONVENTION
-    STATUS      current
-    DESCRIPTION
-        "A value that represents a transport domain.
-
-         Some possible values, such as transportDomainUdpIpv4, are
-         defined in this module.  Other possible values can be
-         defined in other MIB modules."
-    SYNTAX      OBJECT IDENTIFIER
-
---
--- The enumerated values of the textual convention below should
--- be identical to the last sub-identifier of the OID registered
--- for the same domain.
---
-
-TransportAddressType ::= TEXTUAL-CONVENTION
-    STATUS      current
-    DESCRIPTION
-        "A value that represents a transport domain. This is the
-         enumerated version of the transport domain registrations
-         in this MIB module. The enumerated values have the
-         following meaning:
-
-         unknown(0)     unknown transport address type
-         udpIpv4(1)     transportDomainUdpIpv4
-         udpIpv6(2)     transportDomainUdpIpv6
-         udpIpv4z(3)    transportDomainUdpIpv4z
-         udpIpv6z(4)    transportDomainUdpIpv6z
-         tcpIpv4(5)     transportDomainTcpIpv4
-         tcpIpv6(6)     transportDomainTcpIpv6
-         tcpIpv4z(7)    transportDomainTcpIpv4z
-
-         tcpIpv6z(8)    transportDomainTcpIpv6z
-         sctpIpv4(9)    transportDomainSctpIpv4
-         sctpIpv6(10)   transportDomainSctpIpv6
-         sctpIpv4z(11)  transportDomainSctpIpv4z
-         sctpIpv6z(12)  transportDomainSctpIpv6z
-         local(13)      transportDomainLocal
-         udpDns(14)     transportDomainUdpDns
-         tcpDns(15)     transportDomainTcpDns
-         sctpDns(16)    transportDomainSctpDns
-
-         This textual convention can be used to represent transport
-         domains in situations where a syntax of TransportDomain is
-         unwieldy (for example, when used as an index).
-
-         The usage of this textual convention implies that additional
-         transport domains can only be supported by updating this MIB
-         module. This extensibility restriction does not apply for the
-         TransportDomain textual convention which allows MIB authors
-         to define additional transport domains independently in
-         other MIB modules."
-    SYNTAX      INTEGER {
-                    unknown(0),
-                    udpIpv4(1),
-                    udpIpv6(2),
-                    udpIpv4z(3),
-                    udpIpv6z(4),
-                    tcpIpv4(5),
-                    tcpIpv6(6),
-                    tcpIpv4z(7),
-                    tcpIpv6z(8),
-                    sctpIpv4(9),
-                    sctpIpv6(10),
-                    sctpIpv4z(11),
-                    sctpIpv6z(12),
-                    local(13),
-                    udpDns(14),
-                    tcpDns(15),
-                    sctpDns(16)
-                }
-
-TransportAddress ::= TEXTUAL-CONVENTION
-    STATUS      current
-    DESCRIPTION
-        "Denotes a generic transport address.
-
-         A TransportAddress value is always interpreted within the
-         context of a TransportAddressType or TransportDomain value.
-         Every usage of the TransportAddress textual convention MUST
-
-         specify the TransportAddressType or TransportDomain object
-         which provides the context. Furthermore, MIB authors SHOULD
-         define a separate TransportAddressType or TransportDomain
-         object for each TransportAddress object. It is suggested that
-         the TransportAddressType or TransportDomain is logically
-         registered before the object(s) which use the
-         TransportAddress textual convention if they appear in the
-         same logical row.
-
-         The value of a TransportAddress object must always be
-         consistent with the value of the associated
-         TransportAddressType or TransportDomain object. Attempts
-         to set a TransportAddress object to a value which is
-         inconsistent with the associated TransportAddressType or
-         TransportDomain must fail with an inconsistentValue error.
-
-         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. In this case,
-         the OBJECT-TYPE declaration MUST include a 'SIZE' clause
-         to limit the number of potential instance sub-identifiers."
-    SYNTAX      OCTET STRING (SIZE (0..255))
-
-TransportAddressIPv4 ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "1d.1d.1d.1d:2d"
-    STATUS      current
-    DESCRIPTION
-        "Represents a transport address consisting of an IPv4
-         address and a port number (as used for example by UDP,
-         TCP and SCTP):
-
-          octets       contents         encoding
-           1-4         IPv4 address     network-byte order
-           5-6         port number      network-byte order
-
-         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."
-    SYNTAX      OCTET STRING (SIZE (6))
-
-TransportAddressIPv6 ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "0a[2x:2x:2x:2x:2x:2x:2x:2x]0a:2d"
-    STATUS      current
-    DESCRIPTION
-        "Represents a transport address consisting of an IPv6
-         address and a port number (as used for example by UDP,
-         TCP and SCTP):
-
-          octets       contents         encoding
-           1-16        IPv6 address     network-byte order
-          17-18        port number      network-byte order
-
-         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."
-    SYNTAX      OCTET STRING (SIZE (18))
-
-TransportAddressIPv4z ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "1d.1d.1d.1d%4d:2d"
-    STATUS      current
-    DESCRIPTION
-        "Represents a transport address consisting of an IPv4
-         address, a zone index and a port number (as used for
-         example by UDP, TCP and SCTP):
-
-          octets       contents         encoding
-           1-4         IPv4 address     network-byte order
-           5-8         zone index       network-byte order
-           9-10        port number      network-byte order
-
-         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."
-    SYNTAX      OCTET STRING (SIZE (10))
-
-TransportAddressIPv6z ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "0a[2x:2x:2x:2x:2x:2x:2x:2x%4d]0a:2d"
-    STATUS      current
-    DESCRIPTION
-        "Represents a transport address consisting of an IPv6
-         address, a zone index and a port number (as used for
-         example by UDP, TCP and SCTP):
-
-          octets       contents         encoding
-           1-16        IPv6 address     network-byte order
-          17-20        zone index       network-byte order
-          21-22        port number      network-byte order
-
-         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."
-    SYNTAX      OCTET STRING (SIZE (22))
-
-TransportAddressLocal ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "1a"
-    STATUS      current
-    DESCRIPTION
-        "Represents a POSIX Local IPC transport address:
-
-          octets       contents                   encoding
-           all         POSIX Local IPC address    string
-
-         The Posix Local IPC transport domain subsumes UNIX domain
-         sockets.
-
-         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. In this case,
-         the OBJECT-TYPE declaration MUST include a 'SIZE' clause
-         to limit the number of potential instance sub-identifiers."
-    REFERENCE
-        "Protocol Independent Interfaces (IEEE POSIX 1003.1g)"
-    SYNTAX      OCTET STRING (SIZE (1..255))
-
-TransportAddressDns ::= TEXTUAL-CONVENTION
-    DISPLAY-HINT "1a"
-    STATUS      current
-    DESCRIPTION
-        "Represents a DNS domain name followed by a colon ':'
-         (ASCII character 0x3A) and a port number in ASCII.
-         The name SHOULD be fully qualified whenever possible.
-
-         Values of this textual convention are not directly useable as
-         transport-layer addressing information, and require runtime
-         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 TransportAddressDns 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. In this case,
-         the OBJECT-TYPE declaration MUST include a 'SIZE' clause
-         to limit the number of potential instance sub-identifiers."
-    SYNTAX      OCTET STRING (SIZE (1..255))
-
-END
diff --git a/mibs/TUNNEL-MIB.txt b/mibs/TUNNEL-MIB.txt
deleted file mode 100644
index 5f9596b..0000000
--- a/mibs/TUNNEL-MIB.txt
+++ /dev/null
@@ -1,738 +0,0 @@
-TUNNEL-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE, transmission,
-    Integer32, IpAddress    FROM SNMPv2-SMI          -- [RFC2578]
-
-    RowStatus, StorageType  FROM SNMPv2-TC           -- [RFC2579]
-
-    MODULE-COMPLIANCE,
-    OBJECT-GROUP            FROM SNMPv2-CONF         -- [RFC2580]
-
-    InetAddressType,
-    InetAddress             FROM INET-ADDRESS-MIB    -- [RFC4001]
-
-    IPv6FlowLabelOrAny      FROM IPV6-FLOW-LABEL-MIB -- [RFC3595]
-
-    ifIndex,
-    InterfaceIndexOrZero    FROM IF-MIB              -- [RFC2863]
-
-    IANAtunnelType          FROM IANAifType-MIB;     -- [IFTYPE]
-
-tunnelMIB MODULE-IDENTITY
-    LAST-UPDATED "200505160000Z" -- May 16, 2005
-    ORGANIZATION "IETF IP Version 6 (IPv6) Working Group"
-    CONTACT-INFO
-            " Dave Thaler
-              Microsoft Corporation
-              One Microsoft Way
-              Redmond, WA  98052-6399
-              EMail: dthaler at microsoft.com"
-    DESCRIPTION
-            "The MIB module for management of IP Tunnels,
-            independent of the specific encapsulation scheme in
-            use.
-
-            Copyright (C) The Internet Society (2005).  This
-            version of this MIB module is part of RFC 4087;  see
-            the RFC itself for full legal notices."
-
-    REVISION     "200505160000Z" -- May 16, 2005
-    DESCRIPTION
-            "IPv4-specific objects were deprecated, including
-            tunnelIfLocalAddress, tunnelIfRemoteAddress, the
-            tunnelConfigTable, and the tunnelMIBBasicGroup.
-
-            Added IP version-agnostic objects that should be used
-            instead, including tunnelIfAddressType,
-            tunnelIfLocalInetAddress, tunnelIfRemoteInetAddress,
-            the tunnelInetConfigTable, and the
-            tunnelIMIBInetGroup.
-
-            The new tunnelIfLocalInetAddress and
-            tunnelIfRemoteInetAddress objects are read-write,
-            rather than read-only.
-
-            Updated DESCRIPTION clauses of existing version-
-            agnostic objects (e.g., tunnelIfTOS) that contained
-            IPv4-specific text to cover IPv6 as well.
-
-            Added tunnelIfFlowLabel for tunnels over IPv6.
-
-            The encapsulation method was previously an INTEGER
-            type, and is now an IANA-maintained textual
-            convention.
-
-            Published as RFC 4087."
-    REVISION     "199908241200Z" -- August 24, 1999
-    DESCRIPTION
-            "Initial version, published as RFC 2667."
-    ::= { transmission 131 }
-
-tunnelMIBObjects OBJECT IDENTIFIER ::= { tunnelMIB 1 }
-
-tunnel      OBJECT IDENTIFIER ::= { tunnelMIBObjects 1 }
-
--- the IP Tunnel MIB-Group
---
--- a collection of objects providing information about
--- IP Tunnels
-
-tunnelIfTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF TunnelIfEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-            "The (conceptual) table containing information on
-            configured tunnels."
-    ::= { tunnel 1 }
-
-tunnelIfEntry OBJECT-TYPE
-    SYNTAX     TunnelIfEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-            "An entry (conceptual row) containing the information
-            on a particular configured tunnel."
-    INDEX      { ifIndex }
-    ::= { tunnelIfTable 1 }
-
-TunnelIfEntry ::= SEQUENCE {
-    tunnelIfLocalAddress            IpAddress,   -- deprecated
-    tunnelIfRemoteAddress           IpAddress,   -- deprecated
-    tunnelIfEncapsMethod            IANAtunnelType,
-    tunnelIfHopLimit                Integer32,
-    tunnelIfSecurity                INTEGER,
-    tunnelIfTOS                     Integer32,
-    tunnelIfFlowLabel               IPv6FlowLabelOrAny,
-    tunnelIfAddressType             InetAddressType,
-    tunnelIfLocalInetAddress        InetAddress,
-    tunnelIfRemoteInetAddress       InetAddress,
-    tunnelIfEncapsLimit             Integer32
-}
-
-tunnelIfLocalAddress OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-            "The address of the local endpoint of the tunnel
-            (i.e., the source address used in the outer IP
-            header), or 0.0.0.0 if unknown or if the tunnel is
-            over IPv6.
-
-            Since this object does not support IPv6, it is
-            deprecated in favor of tunnelIfLocalInetAddress."
-    ::= { tunnelIfEntry 1 }
-
-tunnelIfRemoteAddress OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-            "The address of the remote endpoint of the tunnel
-            (i.e., the destination address used in the outer IP
-            header), or 0.0.0.0 if unknown, or an IPv6 address, or
-
-            the tunnel is not a point-to-point link (e.g., if it
-            is a 6to4 tunnel).
-
-            Since this object does not support IPv6, it is
-            deprecated in favor of tunnelIfRemoteInetAddress."
-    ::= { tunnelIfEntry 2 }
-
-tunnelIfEncapsMethod OBJECT-TYPE
-    SYNTAX     IANAtunnelType
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-            "The encapsulation method used by the tunnel."
-    ::= { tunnelIfEntry 3 }
-
-tunnelIfHopLimit OBJECT-TYPE
-    SYNTAX     Integer32 (0 | 1..255)
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-            "The IPv4 TTL or IPv6 Hop Limit to use in the outer IP
-            header.  A value of 0 indicates that the value is
-            copied from the payload's header."
-    ::= { tunnelIfEntry 4 }
-
-tunnelIfSecurity OBJECT-TYPE
-    SYNTAX     INTEGER {
-                   none(1),   -- no security
-                   ipsec(2),  -- IPsec security
-                   other(3)
-               }
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-            "The method used by the tunnel to secure the outer IP
-            header.  The value ipsec indicates that IPsec is used
-            between the tunnel endpoints for authentication or
-            encryption or both.  More specific security-related
-            information may be available in a MIB module for the
-            security protocol in use."
-    ::= { tunnelIfEntry 5 }
-
-tunnelIfTOS OBJECT-TYPE
-    SYNTAX     Integer32 (-2..63)
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-            "The method used to set the high 6 bits (the
-
-            differentiated services codepoint) of the IPv4 TOS or
-            IPv6 Traffic Class in the outer IP header.  A value of
-            -1 indicates that the bits are copied from the
-            payload's header.  A value of -2 indicates that a
-            traffic conditioner is invoked and more information
-            may be available in a traffic conditioner MIB module.
-            A value between 0 and 63 inclusive indicates that the
-            bit field is set to the indicated value.
-
-            Note: instead of the name tunnelIfTOS, a better name
-            would have been tunnelIfDSCPMethod, but the existing
-            name appeared in RFC 2667 and existing objects cannot
-            be renamed."
-    ::= { tunnelIfEntry 6 }
-
-tunnelIfFlowLabel OBJECT-TYPE
-    SYNTAX     IPv6FlowLabelOrAny
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-            "The method used to set the IPv6 Flow Label value.
-            This object need not be present in rows where
-            tunnelIfAddressType indicates the tunnel is not over
-            IPv6.  A value of -1 indicates that a traffic
-            conditioner is invoked and more information may be
-            available in a traffic conditioner MIB.  Any other
-            value indicates that the Flow Label field is set to
-            the indicated value."
-    ::= { tunnelIfEntry 7 }
-
-tunnelIfAddressType OBJECT-TYPE
-    SYNTAX     InetAddressType
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-            "The type of address in the corresponding
-            tunnelIfLocalInetAddress and tunnelIfRemoteInetAddress
-            objects."
-    ::= { tunnelIfEntry 8 }
-
-tunnelIfLocalInetAddress OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-            "The address of the local endpoint of the tunnel
-            (i.e., the source address used in the outer IP
-            header).  If the address is unknown, the value is
-
-            0.0.0.0 for IPv4 or :: for IPv6.  The type of this
-            object is given by tunnelIfAddressType."
-    ::= { tunnelIfEntry 9 }
-
-tunnelIfRemoteInetAddress OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-            "The address of the remote endpoint of the tunnel
-            (i.e., the destination address used in the outer IP
-            header).  If the address is unknown or the tunnel is
-            not a point-to-point link (e.g., if it is a 6to4
-            tunnel), the value is 0.0.0.0 for tunnels over IPv4 or
-            :: for tunnels over IPv6.  The type of this object is
-            given by tunnelIfAddressType."
-    ::= { tunnelIfEntry 10 }
-
-tunnelIfEncapsLimit OBJECT-TYPE
-    SYNTAX     Integer32 (-1 | 0..255)
-    MAX-ACCESS read-write
-    STATUS     current
-    DESCRIPTION
-            "The maximum number of additional encapsulations
-            permitted for packets undergoing encapsulation at this
-            node.  A value of -1 indicates that no limit is
-            present (except as a result of the packet size)."
-    REFERENCE  "RFC 2473, section 4.1.1"
-    ::= { tunnelIfEntry 11 }
-
-tunnelConfigTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF TunnelConfigEntry
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-            "The (conceptual) table containing information on
-            configured tunnels.  This table can be used to map a
-            set of tunnel endpoints to the associated ifIndex
-            value.  It can also be used for row creation.  Note
-            that every row in the tunnelIfTable with a fixed IPv4
-            destination address should have a corresponding row in
-            the tunnelConfigTable, regardless of whether it was
-            created via SNMP.
-
-            Since this table does not support IPv6, it is
-            deprecated in favor of tunnelInetConfigTable."
-    ::= { tunnel 2 }
-
-tunnelConfigEntry OBJECT-TYPE
-    SYNTAX     TunnelConfigEntry
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-            "An entry (conceptual row) containing the information
-            on a particular configured tunnel.
-
-            Since this entry does not support IPv6, it is
-            deprecated in favor of tunnelInetConfigEntry."
-    INDEX      { tunnelConfigLocalAddress,
-                 tunnelConfigRemoteAddress,
-                 tunnelConfigEncapsMethod,
-                 tunnelConfigID }
-    ::= { tunnelConfigTable 1 }
-
-TunnelConfigEntry ::= SEQUENCE {
-    tunnelConfigLocalAddress            IpAddress,
-    tunnelConfigRemoteAddress           IpAddress,
-    tunnelConfigEncapsMethod            IANAtunnelType,
-    tunnelConfigID                      Integer32,
-    tunnelConfigIfIndex                 InterfaceIndexOrZero,
-    tunnelConfigStatus                  RowStatus
-}
-
-tunnelConfigLocalAddress OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-            "The address of the local endpoint of the tunnel, or
-            0.0.0.0 if the device is free to choose any of its
-            addresses at tunnel establishment time.
-
-            Since this object does not support IPv6, it is
-            deprecated in favor of tunnelInetConfigLocalAddress."
-    ::= { tunnelConfigEntry 1 }
-
-tunnelConfigRemoteAddress OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-            "The address of the remote endpoint of the tunnel.
-
-            Since this object does not support IPv6, it is
-            deprecated in favor of tunnelInetConfigRemoteAddress."
-    ::= { tunnelConfigEntry 2 }
-
-tunnelConfigEncapsMethod OBJECT-TYPE
-    SYNTAX     IANAtunnelType
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-            "The encapsulation method used by the tunnel.
-
-            Since this object does not support IPv6, it is
-            deprecated in favor of tunnelInetConfigEncapsMethod."
-    ::= { tunnelConfigEntry 3 }
-
-tunnelConfigID OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-            "An identifier used to distinguish between multiple
-            tunnels of the same encapsulation method, with the
-            same endpoints.  If the encapsulation protocol only
-            allows one tunnel per set of endpoint addresses (such
-            as for GRE or IP-in-IP), the value of this object is
-            1.  For encapsulation methods (such as L2F) which
-            allow multiple parallel tunnels, the manager is
-            responsible for choosing any ID which does not
-            conflict with an existing row, such as choosing a
-            random number.
-
-            Since this object does not support IPv6, it is
-            deprecated in favor of tunnelInetConfigID."
-    ::= { tunnelConfigEntry 4 }
-
-tunnelConfigIfIndex OBJECT-TYPE
-    SYNTAX     InterfaceIndexOrZero
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-            "If the value of tunnelConfigStatus for this row is
-            active, then this object contains the value of ifIndex
-            corresponding to the tunnel interface.  A value of 0
-            is not legal in the active state, and means that the
-            interface index has not yet been assigned.
-
-            Since this object does not support IPv6, it is
-            deprecated in favor of tunnelInetConfigIfIndex."
-    ::= { tunnelConfigEntry 5 }
-
-tunnelConfigStatus OBJECT-TYPE
-    SYNTAX     RowStatus
-    MAX-ACCESS read-create
-    STATUS     deprecated
-    DESCRIPTION
-            "The status of this row, by which new entries may be
-            created, or old entries deleted from this table.  The
-            agent need not support setting this object to
-            createAndWait or notInService since there are no other
-            writable objects in this table, and writable objects
-            in rows of corresponding tables such as the
-            tunnelIfTable may be modified while this row is
-            active.
-
-            To create a row in this table for an encapsulation
-            method which does not support multiple parallel
-            tunnels with the same endpoints, the management
-            station should simply use a tunnelConfigID of 1, and
-            set tunnelConfigStatus to createAndGo.  For
-            encapsulation methods such as L2F which allow multiple
-            parallel tunnels, the management station may select a
-            pseudo-random number to use as the tunnelConfigID and
-            set tunnelConfigStatus to createAndGo.  In the event
-            that this ID is already in use and an
-            inconsistentValue is returned in response to the set
-            operation, the management station should simply select
-            a new pseudo-random number and retry the operation.
-
-            Creating a row in this table will cause an interface
-            index to be assigned by the agent in an
-            implementation-dependent manner, and corresponding
-            rows will be instantiated in the ifTable and the
-            tunnelIfTable.  The status of this row will become
-            active as soon as the agent assigns the interface
-            index, regardless of whether the interface is
-            operationally up.
-
-            Deleting a row in this table will likewise delete the
-            corresponding row in the ifTable and in the
-            tunnelIfTable.
-
-            Since this object does not support IPv6, it is
-            deprecated in favor of tunnelInetConfigStatus."
-    ::= { tunnelConfigEntry 6 }
-
-tunnelInetConfigTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF TunnelInetConfigEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-            "The (conceptual) table containing information on
-            configured tunnels.  This table can be used to map a
-            set of tunnel endpoints to the associated ifIndex
-            value.  It can also be used for row creation.  Note
-            that every row in the tunnelIfTable with a fixed
-            destination address should have a corresponding row in
-            the tunnelInetConfigTable, regardless of whether it
-            was created via SNMP."
-    ::= { tunnel 3 }
-
-tunnelInetConfigEntry OBJECT-TYPE
-    SYNTAX     TunnelInetConfigEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-            "An entry (conceptual row) containing the information
-            on a particular configured tunnel.  Note that there is
-            a 128 subid maximum for object OIDs.  Implementers
-            need to be aware that if the total number of octets in
-            tunnelInetConfigLocalAddress and
-            tunnelInetConfigRemoteAddress exceeds 110 then OIDs of
-            column instances in this table will have more than 128
-            sub-identifiers and cannot be accessed using SNMPv1,
-            SNMPv2c, or SNMPv3.  In practice this is not expected
-            to be a problem since IPv4 and IPv6 addresses will not
-            cause the limit to be reached, but if other types are
-            supported by an agent, care must be taken to ensure
-            that the sum of the lengths do not cause the limit to
-            be exceeded."
-    INDEX      { tunnelInetConfigAddressType,
-                 tunnelInetConfigLocalAddress,
-                 tunnelInetConfigRemoteAddress,
-                 tunnelInetConfigEncapsMethod,
-                 tunnelInetConfigID }
-    ::= { tunnelInetConfigTable 1 }
-
-TunnelInetConfigEntry ::= SEQUENCE {
-    tunnelInetConfigAddressType         InetAddressType,
-    tunnelInetConfigLocalAddress        InetAddress,
-    tunnelInetConfigRemoteAddress       InetAddress,
-    tunnelInetConfigEncapsMethod        IANAtunnelType,
-    tunnelInetConfigID                  Integer32,
-    tunnelInetConfigIfIndex             InterfaceIndexOrZero,
-    tunnelInetConfigStatus              RowStatus,
-    tunnelInetConfigStorageType         StorageType
-}
-
-tunnelInetConfigAddressType OBJECT-TYPE
-    SYNTAX     InetAddressType
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-            "The address type over which the tunnel encapsulates
-            packets."
-    ::= { tunnelInetConfigEntry 1 }
-
-tunnelInetConfigLocalAddress OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-            "The address of the local endpoint of the tunnel, or
-            0.0.0.0 (for IPv4) or :: (for IPv6) if the device is
-            free to choose any of its addresses at tunnel
-            establishment time."
-    ::= { tunnelInetConfigEntry 2 }
-
-tunnelInetConfigRemoteAddress OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-            "The address of the remote endpoint of the tunnel."
-    ::= { tunnelInetConfigEntry 3 }
-
-tunnelInetConfigEncapsMethod OBJECT-TYPE
-    SYNTAX     IANAtunnelType
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-            "The encapsulation method used by the tunnel."
-    ::= { tunnelInetConfigEntry 4 }
-
-tunnelInetConfigID OBJECT-TYPE
-    SYNTAX     Integer32 (1..2147483647)
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-            "An identifier used to distinguish between multiple
-            tunnels of the same encapsulation method, with the
-            same endpoints.  If the encapsulation protocol only
-            allows one tunnel per set of endpoint addresses (such
-            as for GRE or IP-in-IP), the value of this object is
-            1.  For encapsulation methods (such as L2F) which
-            allow multiple parallel tunnels, the manager is
-            responsible for choosing any ID which does not
-
-            conflict with an existing row, such as choosing a
-            random number."
-    ::= { tunnelInetConfigEntry 5 }
-
-tunnelInetConfigIfIndex OBJECT-TYPE
-    SYNTAX     InterfaceIndexOrZero
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-            "If the value of tunnelInetConfigStatus for this row
-            is active, then this object contains the value of
-            ifIndex corresponding to the tunnel interface.  A
-            value of 0 is not legal in the active state, and means
-            that the interface index has not yet been assigned."
-    ::= { tunnelInetConfigEntry 6 }
-
-tunnelInetConfigStatus OBJECT-TYPE
-    SYNTAX     RowStatus
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-            "The status of this row, by which new entries may be
-            created, or old entries deleted from this table.  The
-            agent need not support setting this object to
-            createAndWait or notInService since there are no other
-            writable objects in this table, and writable objects
-            in rows of corresponding tables such as the
-            tunnelIfTable may be modified while this row is
-            active.
-
-            To create a row in this table for an encapsulation
-            method which does not support multiple parallel
-            tunnels with the same endpoints, the management
-            station should simply use a tunnelInetConfigID of 1,
-            and set tunnelInetConfigStatus to createAndGo.  For
-            encapsulation methods such as L2F which allow multiple
-            parallel tunnels, the management station may select a
-            pseudo-random number to use as the tunnelInetConfigID
-            and set tunnelInetConfigStatus to createAndGo.  In the
-            event that this ID is already in use and an
-            inconsistentValue is returned in response to the set
-            operation, the management station should simply select
-            a new pseudo-random number and retry the operation.
-
-            Creating a row in this table will cause an interface
-            index to be assigned by the agent in an
-            implementation-dependent manner, and corresponding
-            rows will be instantiated in the ifTable and the
-
-            tunnelIfTable.  The status of this row will become
-            active as soon as the agent assigns the interface
-            index, regardless of whether the interface is
-            operationally up.
-
-            Deleting a row in this table will likewise delete the
-            corresponding row in the ifTable and in the
-            tunnelIfTable."
-    ::= { tunnelInetConfigEntry 7 }
-
-tunnelInetConfigStorageType OBJECT-TYPE
-    SYNTAX     StorageType
-    MAX-ACCESS read-create
-    STATUS     current
-    DESCRIPTION
-            "The storage type of this row.  If the row is
-            permanent(4), no objects in the row need be writable."
-    ::= { tunnelInetConfigEntry 8 }
-
--- conformance information
-
-tunnelMIBConformance
-                  OBJECT IDENTIFIER ::= { tunnelMIB 2 }
-tunnelMIBCompliances
-                  OBJECT IDENTIFIER ::= { tunnelMIBConformance 1 }
-tunnelMIBGroups  OBJECT IDENTIFIER ::= { tunnelMIBConformance 2 }
-
--- compliance statements
-
-tunnelMIBCompliance MODULE-COMPLIANCE
-    STATUS  deprecated
-    DESCRIPTION
-            "The (deprecated) IPv4-only compliance statement for
-            the IP Tunnel MIB.
-
-            This is deprecated in favor of
-            tunnelMIBInetFullCompliance and
-            tunnelMIBInetReadOnlyCompliance."
-    MODULE  -- this module
-    MANDATORY-GROUPS { tunnelMIBBasicGroup }
-
-        OBJECT      tunnelIfHopLimit
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT      tunnelIfTOS
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT      tunnelConfigStatus
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-   ::= { tunnelMIBCompliances 1 }
-
-tunnelMIBInetFullCompliance MODULE-COMPLIANCE
-    STATUS  current
-    DESCRIPTION
-            "The full compliance statement for the IP Tunnel MIB."
-    MODULE  -- this module
-    MANDATORY-GROUPS { tunnelMIBInetGroup }
-
-        OBJECT      tunnelIfAddressType
-        SYNTAX      InetAddressType { ipv4(1), ipv6(2),
-                                      ipv4z(3), ipv6z(4) }
-        DESCRIPTION
-            "An implementation is only required to support IPv4
-            and/or IPv6 addresses.  An implementation only needs to
-            support the addresses it actually supports on the
-            device."
-   ::= { tunnelMIBCompliances 2 }
-
-tunnelMIBInetReadOnlyCompliance MODULE-COMPLIANCE
-    STATUS  current
-    DESCRIPTION
-            "The read-only compliance statement for the IP Tunnel
-            MIB."
-    MODULE  -- this module
-    MANDATORY-GROUPS { tunnelMIBInetGroup }
-
-        OBJECT      tunnelIfHopLimit
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT      tunnelIfTOS
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT      tunnelIfFlowLabel
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT      tunnelIfAddressType
-        SYNTAX      InetAddressType { ipv4(1), ipv6(2),
-                                      ipv4z(3), ipv6z(4) }
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required.
-
-            An implementation is only required to support IPv4
-            and/or IPv6 addresses.  An implementation only needs to
-            support the addresses it actually supports on the
-            device."
-
-        OBJECT      tunnelIfLocalInetAddress
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT      tunnelIfRemoteInetAddress
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT      tunnelIfEncapsLimit
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-
-        OBJECT      tunnelInetConfigStatus
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required, and active is the only
-            status that needs to be supported."
-
-        OBJECT      tunnelInetConfigStorageType
-        MIN-ACCESS  read-only
-        DESCRIPTION
-            "Write access is not required."
-   ::= { tunnelMIBCompliances 3 }
-
--- units of conformance
-
-tunnelMIBBasicGroup OBJECT-GROUP
-    OBJECTS { tunnelIfLocalAddress, tunnelIfRemoteAddress,
-       tunnelIfEncapsMethod, tunnelIfHopLimit, tunnelIfTOS,
-       tunnelIfSecurity, tunnelConfigIfIndex, tunnelConfigStatus }
-    STATUS  deprecated
-    DESCRIPTION
-            "A collection of objects to support basic management
-
-            of IPv4 Tunnels.  Since this group cannot support
-            IPv6, it is deprecated in favor of
-            tunnelMIBInetGroup."
-    ::= { tunnelMIBGroups 1 }
-
-tunnelMIBInetGroup OBJECT-GROUP
-    OBJECTS { tunnelIfAddressType, tunnelIfLocalInetAddress,
-       tunnelIfRemoteInetAddress, tunnelIfEncapsMethod,
-       tunnelIfEncapsLimit,
-       tunnelIfHopLimit, tunnelIfTOS, tunnelIfFlowLabel,
-       tunnelIfSecurity, tunnelInetConfigIfIndex,
-       tunnelInetConfigStatus, tunnelInetConfigStorageType }
-    STATUS  current
-    DESCRIPTION
-            "A collection of objects to support basic management
-            of IPv4 and IPv6 Tunnels."
-    ::= { tunnelMIBGroups 2 }
-
-END
diff --git a/mibs/UCD-SNMP-MIB.txt b/mibs/UCD-SNMP-MIB.txt
index 3bf4913..90ac6ba 100644
--- a/mibs/UCD-SNMP-MIB.txt
+++ b/mibs/UCD-SNMP-MIB.txt
@@ -30,14 +30,14 @@ UCD-SNMP-MIB DEFINITIONS ::= BEGIN
 
 IMPORTS
     OBJECT-TYPE, NOTIFICATION-TYPE, MODULE-IDENTITY,
-    Integer32, Opaque, enterprises, Counter32, Unsigned32
+    Integer32, Opaque, enterprises, Counter32
         FROM SNMPv2-SMI
 
     TEXTUAL-CONVENTION, DisplayString, TruthValue
 	FROM SNMPv2-TC;
 
 ucdavis MODULE-IDENTITY
-    LAST-UPDATED "200901190000Z"
+    LAST-UPDATED "200611220000Z"
     ORGANIZATION "University of California, Davis"
     CONTACT-INFO    
 	"This mib is no longer being maintained by the University of
@@ -55,14 +55,6 @@ ucdavis MODULE-IDENTITY
     DESCRIPTION
 	"This file defines the private UCD SNMP MIB extensions."
 
-    REVISION	 "201105140000Z"
-    DESCRIPTION
-	"New objects for monitoring CPU Steal, Guest and Nice values"
-
-    REVISION	 "200901190000Z"
-    DESCRIPTION
-	"New 64-bit objects for monitoring large disk usage"
-
     REVISION	 "200611220000Z"
     DESCRIPTION
 	"Clarify behaviour of objects in the memory & systemStats groups
@@ -126,10 +118,8 @@ ucdExperimental       OBJECT IDENTIFIER ::= { ucdavis 13 }
 --   lmSensors        OBJECT IDENTIFIER ::= { ucdExperimental 16 } - LM-SENSORS-MIB
 
 
--- These are the old returned values of the agent type.
--- originally returned to:  .iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0 
--- Current versions of the agent return an equivalent OID from the netSnmpAgentOIDs
--- tree (defined in NET-SNMP-TC), which includes values for some additional O/Ss
+-- These are the returned values of the agent type.
+-- returned to:  .iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0 
 
 ucdSnmpAgent      OBJECT IDENTIFIER ::= { ucdavis 250 }
 hpux9             OBJECT IDENTIFIER ::= { ucdSnmpAgent 1 }
@@ -146,9 +136,6 @@ bsdi              OBJECT IDENTIFIER ::= { ucdSnmpAgent 11 }
 openbsd           OBJECT IDENTIFIER ::= { ucdSnmpAgent 12 }
 win32		  OBJECT IDENTIFIER ::= { ucdSnmpAgent 13 } -- unlucky
 hpux11            OBJECT IDENTIFIER ::= { ucdSnmpAgent 14 }
-aix               OBJECT IDENTIFIER ::= { ucdSnmpAgent 15 }
-macosx            OBJECT IDENTIFIER ::= { ucdSnmpAgent 16 }
-dragonfly         OBJECT IDENTIFIER ::= { ucdSnmpAgent 17 }
 unknown           OBJECT IDENTIFIER ::= { ucdSnmpAgent 255 }
 
 
@@ -680,13 +667,7 @@ DskEntry ::= SEQUENCE {
     dskPercent		Integer32,
     dskPercentNode	Integer32,
     dskErrorFlag	UCDErrorFlag,
-    dskErrorMsg		DisplayString,
-    dskTotalLow		Unsigned32,
-    dskTotalHigh	Unsigned32,
-    dskAvailLow		Unsigned32,
-    dskAvailHigh	Unsigned32,
-    dskUsedLow		Unsigned32,
-    dskUsedHigh		Unsigned32
+    dskErrorMsg		DisplayString
 }
 
 dskIndex OBJECT-TYPE
@@ -779,60 +760,6 @@ dskPercentNode OBJECT-TYPE
 	"Percentage of inodes used on disk"
     ::= { dskEntry 10 } 
 
-dskTotalLow OBJECT-TYPE
-    SYNTAX	Unsigned32
-    MAX-ACCESS	read-only
-    STATUS	current
-    DESCRIPTION  
-	"Total size of the disk/partion (kBytes).
-	Together with dskTotalHigh composes 64-bit number."
-    ::= { dskEntry 11 }
-
-dskTotalHigh OBJECT-TYPE
-    SYNTAX	Unsigned32
-    MAX-ACCESS	read-only
-    STATUS	current
-    DESCRIPTION  
-	"Total size of the disk/partion (kBytes).
-	Together with dskTotalLow composes 64-bit number."
-    ::= { dskEntry 12 }
-
-dskAvailLow OBJECT-TYPE
-    SYNTAX	Unsigned32
-    MAX-ACCESS	read-only
-    STATUS	current
-    DESCRIPTION  
-	"Available space on the disk (kBytes).
-	Together with dskAvailHigh composes 64-bit number."
-    ::= { dskEntry 13 }
-
-dskAvailHigh OBJECT-TYPE
-    SYNTAX	Unsigned32
-    MAX-ACCESS	read-only
-    STATUS	current
-    DESCRIPTION  
-	"Available space on the disk (kBytes).
-	Together with dskAvailLow composes 64-bit number."
-    ::= { dskEntry 14 }
-
-dskUsedLow OBJECT-TYPE
-    SYNTAX	Unsigned32
-    MAX-ACCESS	read-only
-    STATUS	current
-    DESCRIPTION  
-	"Used space on the disk (kBytes).
-	Together with dskUsedHigh composes 64-bit number."
-    ::= { dskEntry 15 }
-
-dskUsedHigh OBJECT-TYPE
-    SYNTAX	Unsigned32
-    MAX-ACCESS	read-only
-    STATUS	current
-    DESCRIPTION  
-	"Used space on the disk (kBytes).
-	Together with dskUsedLow composes 64-bit number."
-    ::= { dskEntry 16 }
-
 dskErrorFlag OBJECT-TYPE
     SYNTAX	UCDErrorFlag
     MAX-ACCESS	read-only
@@ -905,7 +832,7 @@ laLoad OBJECT-TYPE
 
 laConfig OBJECT-TYPE
     SYNTAX	DisplayString
-    MAX-ACCESS	read-write
+    MAX-ACCESS	read-only
     STATUS	current
     DESCRIPTION
 	"The watch point for load-averages to signal an
@@ -1436,58 +1363,6 @@ ssRawSwapOut OBJECT-TYPE
         "Number of blocks swapped out"
     ::= { systemStats 63 }
 
-ssCpuRawSteal OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The number of 'ticks' (typically 1/100s) spent
-         by the hypervisor code to run other VMs even
-         though the CPU in the current VM had something runnable.
-
-         This object will not be implemented on hosts where
-         the underlying operating system does not measure
-         this particular CPU metric.
-
-         On a multi-processor system, the 'ssCpuRaw*'
-         counters are cumulative over all CPUs, so their
-         sum will typically be N*100 (for N processors)."
-    ::= { systemStats 64 }
-
-ssCpuRawGuest OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The number of 'ticks' (typically 1/100s) spent
-         by the CPU to run a virtual CPU (guest).
-
-         This object will not be implemented on hosts where
-         the underlying operating system does not measure
-         this particular CPU metric.
-
-         On a multi-processor system, the 'ssCpuRaw*'
-         counters are cumulative over all CPUs, so their
-         sum will typically be N*100 (for N processors)."
-    ::= { systemStats 65 }
-
-ssCpuRawGuestNice OBJECT-TYPE
-    SYNTAX      Counter32
-    MAX-ACCESS  read-only
-    STATUS      current
-    DESCRIPTION
-        "The number of 'ticks' (typically 1/100s) spent
-         by the CPU to run a niced virtual CPU (guest).
-
-         This object will not be implemented on hosts where
-         the underlying operating system does not measure
-         this particular CPU metric.
-
-         On a multi-processor system, the 'ssCpuRaw*'
-         counters are cumulative over all CPUs, so their
-         sum will typically be N*100 (for N processors)."
-    ::= { systemStats 66 }
-
 -- possibly used in the future:
 --
 -- ssErrorFlag OBJECT-TYPE
diff --git a/mibs/UDP-MIB.txt b/mibs/UDP-MIB.txt
deleted file mode 100644
index eec9dba..0000000
--- a/mibs/UDP-MIB.txt
+++ /dev/null
@@ -1,549 +0,0 @@
-UDP-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-    MODULE-IDENTITY, OBJECT-TYPE, Integer32, Counter32, Counter64,
-    Unsigned32, IpAddress, mib-2       FROM SNMPv2-SMI
-    MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF
-    InetAddress, InetAddressType,
-    InetPortNumber                     FROM INET-ADDRESS-MIB;
-
-udpMIB MODULE-IDENTITY
-    LAST-UPDATED "200505200000Z"  -- May 20, 2005
-    ORGANIZATION
-           "IETF IPv6 Working Group
-            http://www.ietf.org/html.charters/ipv6-charter.html"
-    CONTACT-INFO
-           "Bill Fenner (editor)
-
-            AT&T Labs -- Research
-            75 Willow Rd.
-            Menlo Park, CA 94025
-
-            Phone: +1 650 330-7893
-            Email: <fenner at research.att.com>
-
-            John Flick (editor)
-
-            Hewlett-Packard Company
-            8000 Foothills Blvd. M/S 5557
-            Roseville, CA 95747
-
-            Phone: +1 916 785 4018
-            Email: <john.flick at hp.com>
-
-            Send comments to <ipv6 at ietf.org>"
-    DESCRIPTION
-           "The MIB module for managing UDP implementations.
-            Copyright (C) The Internet Society (2005).  This
-            version of this MIB module is part of RFC 4113;
-            see the RFC itself for full legal notices."
-    REVISION      "200505200000Z"  -- May 20, 2005
-    DESCRIPTION
-           "IP version neutral revision, incorporating the
-            following revisions:
-
-            - Added udpHCInDatagrams and udpHCOutDatagrams in order
-              to provide high-capacity counters for fast networks.
-            - Added text to the descriptions of all counter objects
-              to indicate how discontinuities are detected.
-            - Deprecated the IPv4-specific udpTable and replaced it
-              with the version neutral udpEndpointTable.  This
-              table includes support for connected UDP endpoints
-              and support for identification of the operating
-              system process associated with a UDP endpoint.
-            - Deprecated the udpGroup and replaced it with object
-              groups representing the current set of objects.
-            - Deprecated udpMIBCompliance and replaced it with
-              udpMIBCompliance2, which includes the compliance
-              information for the new object groups.
-
-            This version published as RFC 4113."
-    REVISION      "199411010000Z"    -- November 1, 1994
-    DESCRIPTION
-           "Initial SMIv2 version, published as RFC 2013."
-    REVISION      "199103310000Z"    -- March 31, 1991
-    DESCRIPTION
-           "The initial revision of this MIB module was part of
-            MIB-II, published as RFC 1213."
-    ::= { mib-2 50 }
-
--- the UDP group
-
-udp      OBJECT IDENTIFIER ::= { mib-2 7 }
-
-udpInDatagrams OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of UDP datagrams delivered to UDP
-            users.
-
-            Discontinuities in the value of this counter can occur
-            at re-initialization of the management system, and at
-            other times as indicated by discontinuities in the
-            value of sysUpTime."
-    ::= { udp 1 }
-
-udpNoPorts OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of received UDP datagrams for which
-            there was no application at the destination port.
-
-            Discontinuities in the value of this counter can occur
-            at re-initialization of the management system, and at
-            other times as indicated by discontinuities in the
-            value of sysUpTime."
-    ::= { udp 2 }
-
-udpInErrors OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The number of received UDP datagrams that could not be
-            delivered for reasons other than the lack of an
-            application at the destination port.
-
-            Discontinuities in the value of this counter can occur
-            at re-initialization of the management system, and at
-            other times as indicated by discontinuities in the
-            value of sysUpTime."
-    ::= { udp 3 }
-
-udpOutDatagrams OBJECT-TYPE
-    SYNTAX     Counter32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of UDP datagrams sent from this
-            entity.
-
-            Discontinuities in the value of this counter can occur
-            at re-initialization of the management system, and at
-            other times as indicated by discontinuities in the
-            value of sysUpTime."
-    ::= { udp 4 }
-
-udpHCInDatagrams OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of UDP datagrams delivered to UDP
-            users, for devices that can receive more than 1
-            million UDP datagrams per second.
-
-            Discontinuities in the value of this counter can occur
-            at re-initialization of the management system, and at
-            other times as indicated by discontinuities in the
-            value of sysUpTime."
-    ::= { udp 8 }
-
-udpHCOutDatagrams OBJECT-TYPE
-    SYNTAX     Counter64
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The total number of UDP datagrams sent from this
-            entity, for devices that can transmit more than 1
-            million UDP datagrams per second.
-
-            Discontinuities in the value of this counter can occur
-            at re-initialization of the management system, and at
-            other times as indicated by discontinuities in the
-            value of sysUpTime."
-    ::= { udp 9 }
-
---
--- { udp 6 } was defined as the ipv6UdpTable in RFC2454's
--- IPV6-UDP-MIB.  This RFC obsoletes RFC 2454, so { udp 6 } is
--- obsoleted.
---
-
--- The UDP "Endpoint" table.
-
-udpEndpointTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF UdpEndpointEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "A table containing information about this entity's UDP
-            endpoints on which a local application is currently
-            accepting or sending datagrams.
-
-            The address type in this table represents the address
-            type used for the communication, irrespective of the
-            higher-layer abstraction.  For example, an application
-            using IPv6 'sockets' to communicate via IPv4 between
-            ::ffff:10.0.0.1 and ::ffff:10.0.0.2 would use
-            InetAddressType ipv4(1).
-
-            Unlike the udpTable in RFC 2013, this table also allows
-            the representation of an application that completely
-            specifies both local and remote addresses and ports.  A
-            listening application is represented in three possible
-            ways:
-
-            1) An application that is willing to accept both IPv4
-               and IPv6 datagrams is represented by a
-               udpEndpointLocalAddressType of unknown(0) and a
-               udpEndpointLocalAddress of ''h (a zero-length
-               octet-string).
-
-            2) An application that is willing to accept only IPv4
-               or only IPv6 datagrams is represented by a
-               udpEndpointLocalAddressType of the appropriate
-               address type and a udpEndpointLocalAddress of
-               '0.0.0.0' or '::' respectively.
-
-            3) An application that is listening for datagrams only
-               for a specific IP address but from any remote
-               system is represented by a
-               udpEndpointLocalAddressType of the appropriate
-               address type, with udpEndpointLocalAddress
-               specifying the local address.
-
-            In all cases where the remote is a wildcard, the
-            udpEndpointRemoteAddressType is unknown(0), the
-            udpEndpointRemoteAddress is ''h (a zero-length
-            octet-string), and the udpEndpointRemotePort is 0.
-
-            If the operating system is demultiplexing UDP packets
-            by remote address and port, or if the application has
-            'connected' the socket specifying a default remote
-            address and port, the udpEndpointRemote* values should
-            be used to reflect this."
-    ::= { udp 7 }
-
-udpEndpointEntry OBJECT-TYPE
-    SYNTAX     UdpEndpointEntry
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "Information about a particular current UDP endpoint.
-
-            Implementers need to be aware that if the total number
-            of elements (octets or sub-identifiers) in
-            udpEndpointLocalAddress and udpEndpointRemoteAddress
-            exceeds 111, then OIDs of column instances in this table
-            will have more than 128 sub-identifiers and cannot be
-            accessed using SNMPv1, SNMPv2c, or SNMPv3."
-    INDEX   { udpEndpointLocalAddressType,
-              udpEndpointLocalAddress,
-              udpEndpointLocalPort,
-              udpEndpointRemoteAddressType,
-              udpEndpointRemoteAddress,
-              udpEndpointRemotePort,
-              udpEndpointInstance }
-    ::= { udpEndpointTable 1 }
-
-UdpEndpointEntry ::= SEQUENCE {
-        udpEndpointLocalAddressType   InetAddressType,
-        udpEndpointLocalAddress       InetAddress,
-        udpEndpointLocalPort          InetPortNumber,
-        udpEndpointRemoteAddressType  InetAddressType,
-        udpEndpointRemoteAddress      InetAddress,
-        udpEndpointRemotePort         InetPortNumber,
-        udpEndpointInstance           Unsigned32,
-        udpEndpointProcess            Unsigned32
-    }
-
-udpEndpointLocalAddressType OBJECT-TYPE
-    SYNTAX     InetAddressType
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The address type of udpEndpointLocalAddress.  Only
-            IPv4, IPv4z, IPv6, and IPv6z addresses are expected, or
-            unknown(0) if datagrams for all local IP addresses are
-            accepted."
-    ::= { udpEndpointEntry 1 }
-
-udpEndpointLocalAddress OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The local IP address for this UDP endpoint.
-
-            The value of this object can be represented in three
-
-            possible ways, depending on the characteristics of the
-            listening application:
-
-            1. For an application that is willing to accept both
-               IPv4 and IPv6 datagrams, the value of this object
-               must be ''h (a zero-length octet-string), with
-               the value of the corresponding instance of the
-               udpEndpointLocalAddressType object being unknown(0).
-
-            2. For an application that is willing to accept only IPv4
-               or only IPv6 datagrams, the value of this object
-               must be '0.0.0.0' or '::', respectively, while the
-               corresponding instance of the
-               udpEndpointLocalAddressType object represents the
-               appropriate address type.
-
-            3. For an application that is listening for data
-               destined only to a specific IP address, the value
-               of this object is the specific IP address for which
-               this node is receiving packets, with the
-               corresponding instance of the
-               udpEndpointLocalAddressType object representing the
-               appropriate address type.
-
-            As this object is used in the index for the
-            udpEndpointTable, implementors of this table should be
-            careful not to create entries that would result in OIDs
-            with more than 128 subidentifiers; else the information
-            cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3."
-    ::= { udpEndpointEntry 2 }
-
-udpEndpointLocalPort OBJECT-TYPE
-    SYNTAX     InetPortNumber
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The local port number for this UDP endpoint."
-    ::= { udpEndpointEntry 3 }
-
-udpEndpointRemoteAddressType OBJECT-TYPE
-    SYNTAX     InetAddressType
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The address type of udpEndpointRemoteAddress.  Only
-            IPv4, IPv4z, IPv6, and IPv6z addresses are expected, or
-            unknown(0) if datagrams for all remote IP addresses are
-            accepted.  Also, note that some combinations of
-
-            udpEndpointLocalAdressType and
-            udpEndpointRemoteAddressType are not supported.  In
-            particular, if the value of this object is not
-            unknown(0), it is expected to always refer to the
-            same IP version as udpEndpointLocalAddressType."
-    ::= { udpEndpointEntry 4 }
-
-udpEndpointRemoteAddress OBJECT-TYPE
-    SYNTAX     InetAddress
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The remote IP address for this UDP endpoint.  If
-            datagrams from any remote system are to be accepted,
-            this value is ''h (a zero-length octet-string).
-            Otherwise, it has the type described by
-            udpEndpointRemoteAddressType and is the address of the
-            remote system from which datagrams are to be accepted
-            (or to which all datagrams will be sent).
-
-            As this object is used in the index for the
-            udpEndpointTable, implementors of this table should be
-            careful not to create entries that would result in OIDs
-            with more than 128 subidentifiers; else the information
-            cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3."
-    ::= { udpEndpointEntry 5 }
-
-udpEndpointRemotePort OBJECT-TYPE
-    SYNTAX     InetPortNumber
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The remote port number for this UDP endpoint.  If
-            datagrams from any remote system are to be accepted,
-            this value is zero."
-    ::= { udpEndpointEntry 6 }
-
-udpEndpointInstance OBJECT-TYPE
-    SYNTAX     Unsigned32 (1..'ffffffff'h)
-    MAX-ACCESS not-accessible
-    STATUS     current
-    DESCRIPTION
-           "The instance of this tuple.  This object is used to
-            distinguish among multiple processes 'connected' to
-            the same UDP endpoint.  For example, on a system
-            implementing the BSD sockets interface, this would be
-            used to support the SO_REUSEADDR and SO_REUSEPORT
-            socket options."
-    ::= { udpEndpointEntry 7 }
-
-udpEndpointProcess OBJECT-TYPE
-    SYNTAX     Unsigned32
-    MAX-ACCESS read-only
-    STATUS     current
-    DESCRIPTION
-           "The system's process ID for the process associated with
-            this endpoint, or zero if there is no such process.
-            This value is expected to be the same as
-            HOST-RESOURCES-MIB::hrSWRunIndex or SYSAPPL-MIB::
-            sysApplElmtRunIndex for some row in the appropriate
-            tables."
-    ::= { udpEndpointEntry 8 }
-
--- The deprecated UDP Listener table
-
--- The deprecated UDP listener table only contains information
--- about this entity's IPv4 UDP end-points on which a local
--- application is currently accepting datagrams.  It does not
--- provide more detailed connection information, or information
--- about IPv6 endpoints.
-
-udpTable OBJECT-TYPE
-    SYNTAX     SEQUENCE OF UdpEntry
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-           "A table containing IPv4-specific UDP listener
-            information.  It contains information about all local
-            IPv4 UDP end-points on which an application is
-            currently accepting datagrams.  This table has been
-            deprecated in favor of the version neutral
-            udpEndpointTable."
-    ::= { udp 5 }
-
-udpEntry OBJECT-TYPE
-    SYNTAX     UdpEntry
-    MAX-ACCESS not-accessible
-    STATUS     deprecated
-    DESCRIPTION
-           "Information about a particular current UDP listener."
-    INDEX   { udpLocalAddress, udpLocalPort }
-    ::= { udpTable 1 }
-
-UdpEntry ::= SEQUENCE {
-    udpLocalAddress   IpAddress,
-    udpLocalPort      Integer32
-
-}
-
-udpLocalAddress OBJECT-TYPE
-    SYNTAX     IpAddress
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The local IP address for this UDP listener.  In the
-            case of a UDP listener that is willing to accept
-            datagrams for any IP interface associated with the
-            node, the value 0.0.0.0 is used."
-    ::= { udpEntry 1 }
-
-udpLocalPort OBJECT-TYPE
-    SYNTAX     Integer32 (0..65535)
-    MAX-ACCESS read-only
-    STATUS     deprecated
-    DESCRIPTION
-           "The local port number for this UDP listener."
-    ::= { udpEntry 2 }
-
--- conformance information
-
-udpMIBConformance OBJECT IDENTIFIER ::= { udpMIB 2 }
-udpMIBCompliances OBJECT IDENTIFIER ::= { udpMIBConformance 1 }
-udpMIBGroups      OBJECT IDENTIFIER ::= { udpMIBConformance 2 }
-
--- compliance statements
-
-udpMIBCompliance2 MODULE-COMPLIANCE
-    STATUS     current
-    DESCRIPTION
-           "The compliance statement for systems that implement
-            UDP.
-
-            There are a number of INDEX objects that cannot be
-            represented in the form of OBJECT clauses in SMIv2, but
-            for which we have the following compliance
-            requirements, expressed in OBJECT clause form in this
-            description clause:
-
-            -- OBJECT      udpEndpointLocalAddressType
-            -- SYNTAX      InetAddressType { unknown(0), ipv4(1),
-            --                               ipv6(2), ipv4z(3),
-            --                               ipv6z(4) }
-            -- DESCRIPTION
-            --     Support for dns(5) is not required.
-            -- OBJECT      udpEndpointLocalAddress
-
-            -- SYNTAX      InetAddress (SIZE(0|4|8|16|20))
-            -- DESCRIPTION
-            --     Support is only required for zero-length
-            --     octet-strings, and for scoped and unscoped
-            --     IPv4 and IPv6 addresses.
-            -- OBJECT      udpEndpointRemoteAddressType
-            -- SYNTAX      InetAddressType { unknown(0), ipv4(1),
-            --                               ipv6(2), ipv4z(3),
-            --                               ipv6z(4) }
-            -- DESCRIPTION
-            --     Support for dns(5) is not required.
-            -- OBJECT      udpEndpointRemoteAddress
-            -- SYNTAX      InetAddress (SIZE(0|4|8|16|20))
-            -- DESCRIPTION
-            --     Support is only required for zero-length
-            --     octet-strings, and for scoped and unscoped
-            --     IPv4 and IPv6 addresses.
-           "
-    MODULE  -- this module
-         MANDATORY-GROUPS { udpBaseGroup, udpEndpointGroup }
-         GROUP       udpHCGroup
-         DESCRIPTION
-                "This group is mandatory for systems that
-                 are capable of receiving or transmitting more than
-                 1 million UDP datagrams per second.  1 million
-                 datagrams per second will cause a Counter32 to
-                 wrap in just over an hour."
-    ::= { udpMIBCompliances 2 }
-
-udpMIBCompliance MODULE-COMPLIANCE
-    STATUS     deprecated
-    DESCRIPTION
-           "The compliance statement for IPv4-only systems that
-            implement UDP.  For IP version independence, this
-            compliance statement is deprecated in favor of
-            udpMIBCompliance2.  However, agents are still
-            encouraged to implement these objects in order to
-            interoperate with the deployed base of managers."
-    MODULE  -- this module
-        MANDATORY-GROUPS { udpGroup }
-    ::= { udpMIBCompliances 1 }
-
--- units of conformance
-
-udpGroup OBJECT-GROUP
-    OBJECTS   { udpInDatagrams, udpNoPorts,
-                udpInErrors, udpOutDatagrams,
-                udpLocalAddress, udpLocalPort }
-    STATUS     deprecated
-    DESCRIPTION
-           "The deprecated group of objects providing for
-            management of UDP over IPv4."
-    ::= { udpMIBGroups 1 }
-
-udpBaseGroup OBJECT-GROUP
-    OBJECTS   { udpInDatagrams, udpNoPorts, udpInErrors,
-                udpOutDatagrams }
-    STATUS     current
-    DESCRIPTION
-           "The group of objects providing for counters of UDP
-            statistics."
-    ::= { udpMIBGroups 2 }
-
-udpHCGroup OBJECT-GROUP
-    OBJECTS   { udpHCInDatagrams, udpHCOutDatagrams }
-    STATUS     current
-    DESCRIPTION
-           "The group of objects providing for counters of high
-            speed UDP implementations."
-    ::= { udpMIBGroups 3 }
-
-udpEndpointGroup OBJECT-GROUP
-    OBJECTS    { udpEndpointProcess }
-    STATUS     current
-    DESCRIPTION
-           "The group of objects providing for the IP version
-            independent management of UDP 'endpoints'."
-    ::= { udpMIBGroups 4 }
-
-END
diff --git a/mibs/ianalist b/mibs/ianalist
index 0edb3a0..c3f0575 100644
--- a/mibs/ianalist
+++ b/mibs/ianalist
@@ -1,15 +1,11 @@
-# updated 2010-04-21
-ianaaddressfamilynumbers-mib	IANA-ADDRESS-FAMILY-NUMBERS-MIB
-ianacharset-mib			IANA-CHARSET-MIB
-ianafinisher-mib		IANA-FINISHER-MIB
-ianagmplstc-mib			IANA-GMPLS-TC-MIB
+# updated 2005-01-06
 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
+ianaaddressfamilynumbers-mib	IANA-ADDRESS-FAMILY-NUMBERS-MIB
+ianaiprouteprotocol-mib		IANA-RTPROTO-MIB
+ianatn3270etc-mib		IANATn3270eTC-MIB
 ianamalloc-mib			IANA-MALLOC-MIB
-ianamau-mib			IANA-MAU-MIB
+ianacharset-mib			IANA-CHARSET-MIB
 ianaprinter-mib			IANA-PRINTER-MIB
-ianatn3270etc-mib		IANATn3270eTC-MIB
+ianafinisher-mib		IANA-FINISHER-MIB
+ianaitualarmtc-mib		IANA-ITU-ALARM-TC-MIB
diff --git a/mibs/rfclist b/mibs/rfclist
index df93d8d..4d03434 100644
--- a/mibs/rfclist
+++ b/mibs/rfclist
@@ -1,4 +1,4 @@
-# updated 2012-06-13
+# updated 2005-03-14
 1155	RFC1155-SMI
 1213	RFC1213-MIB
 1227	SMUX-MIB
@@ -19,6 +19,7 @@
 1611	DNS-SERVER-MIB
 1612	DNS-RESOLVER-MIB
 1628	UPS-MIB
+1657	BGP4-MIB
 1658	CHARACTER-MIB
 1659	RS-232-MIB
 1660	PARALLEL-MIB
@@ -35,6 +36,7 @@
 1850	OSPF-MIB:OSPF-TRAP-MIB
 2006	MIP-MIB
 2020	DOT12-IF-MIB
+2021	RMON2-MIB
 2024	DLSW-MIB
 2051	APPC-MIB
 2108	SNMP-REPEATER-MIB
@@ -75,9 +77,15 @@
 2594	WWW-MIB
 2605	DIRECTORY-SERVER-MIB
 2613	SMON-MIB
+2618	RADIUS-AUTH-CLIENT-MIB
+2619	RADIUS-AUTH-SERVER-MIB
+2620	RADIUS-ACC-CLIENT-MIB
+2621	RADIUS-ACC-SERVER-MIB
 2662	ADSL-TC-MIB:ADSL-LINE-MIB
 2666	ETHER-CHIPSET-MIB
+2669	DOCS-CABLE-DEVICE-MIB
 2670	DOCS-IF-MIB
+2674	P-BRIDGE-MIB:Q-BRIDGE-MIB
 2677	NHRP-MIB
 2707	Job-Monitoring-MIB
 2720	FLOW-METER-MIB
@@ -94,6 +102,7 @@
 2863	IF-MIB
 2864	IF-INVERTED-STACK-MIB
 2922	PTOPO-MIB
+2925	DISMAN-PING-MIB:DISMAN-TRACEROUTE-MIB:DISMAN-NSLOOKUP-MIB
 2932	IPMROUTE-STD-MIB
 2933	IGMP-STD-MIB
 2934	PIM-MIB
@@ -138,6 +147,7 @@
 3606	ATM2-MIB
 3621	POWER-ETHERNET-MIB
 3635	EtherLike-MIB
+3636	MAU-MIB
 3637	ETHER-WIS
 3705	HC-PerfHist-TC-MIB
 3728	VDSL-LINE-MIB
@@ -174,92 +184,5 @@
 4220	TE-LINK-STD-MIB
 4265	VPN-TC-STD-MIB
 4268	ENTITY-STATE-TC-MIB:ENTITY-STATE-MIB
-4273	BGP4-MIB
 4292	IP-FORWARD-MIB
 4293	IP-MIB
-4295	MOBILEIPV6-MIB
-4318	RSTP-MIB
-4319	HDSL2-SHDSL-LINE-MIB
-4323	DOCS-IETF-QOS-MIB
-4363	P-BRIDGE-MIB:Q-BRIDGE-MIB
-4368	MPLS-LC-ATM-STD-MIB:MPLS-LC-FR-STD-MIB
-4382	MPLS-L3VPN-STD-MIB
-4404	FCIP-MGMT-MIB
-4438	T11-FC-NAME-SERVER-MIB
-4439	T11-TC-MIB:T11-FC-FABRIC-ADDR-MGR-MIB
-4444	ISIS-MIB
-4455	SCSI-MIB
-4498	AGGREGATE-MIB:TIME-AGGREGATE-MIB
-4502	RMON2-MIB
-4544	ISCSI-MIB
-4545	IPS-AUTH-MIB
-4560	DISMAN-PING-MIB:DISMAN-TRACEROUTE-MIB:DISMAN-NSLOOKUP-MIB
-4624	MSDP-MIB
-4625	T11-FC-ROUTE-MIB
-4626	T11-FC-FSPF-MIB
-4631	LMP-MIB
-4639	DOCS-CABLE-DEVICE-MIB
-4668	RADIUS-AUTH-CLIENT-MIB
-4669	RADIUS-AUTH-SERVER-MIB
-4670	RADIUS-ACC-CLIENT-MIB
-4671	RADIUS-ACC-SERVER-MIB
-4672	RADIUS-DYNAUTH-CLIENT-MIB
-4673	RADIUS-DYNAUTH-SERVER-MIB
-4682	PKTC-IETF-MTA-MIB
-4706	ADSL2-LINE-TC-MIB:ADSL2-LINE-MIB
-4711	RAQMON-MIB
-4747	T11-FC-VIRTUAL-FABRIC-MIB
-4780	SIP-TC-MIB:SIP-COMMON-MIB:SIP-UA-MIB:SIP-SERVER-MIB
-4789	SNMP-IEEE802-TM-MIB
-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
-4898	TCP-ESTATS-MIB
-4935	T11-FC-FABRIC-CONFIG-SERVER-MIB
-4936	T11-FC-FABRIC-LOCK-MIB:T11-FC-ZONE-SERVER-MIB
-4939	ISNS-MIB
-4983	T11-FC-RSCN-MIB
-5017	URI-TC-MIB
-5060	PIM-STD-MIB
-5066	IF-CAP-STACK-MIB:EFM-CU-MIB
-5097	UDPLITE-MIB
-5098	PKTC-IETF-SIG-MIB
-5131	LANGTAG-TC-MIB
-5132	IPMCAST-MIB
-5190	MIDCOM-MIB
-5240	PIM-BSR-MIB
-5324	T11-FC-SP-TC-MIB:T11-FC-SP-AUTHENTICATION-MIB:T11-FC-SP-ZONING-MIB:T11-FC-SP-POLICY-MIB:T11-FC-SP-SA-MIB
-5427	SYSLOG-TC-MIB
-5428	PKTC-IETF-EVENT-MIB
-5488	NEMO-MIB
-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
diff --git a/mibs/smistrip b/mibs/smistrip
index b5fc8f2..773d4fd 100755
--- a/mibs/smistrip
+++ b/mibs/smistrip
@@ -13,7 +13,7 @@
 # See the file "COPYING" for information on usage and redistribution
 # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
 #
-# $Id$
+# $Id: smistrip 11912 2005-02-08 20:08:10Z nba $
 #
 # NOTE, that this script relies on awk (tested with GNU awk) and getopts
 # (shell builtin like in bash or standalone).
@@ -66,7 +66,7 @@ do_strip () {
     }
 
     # start of module
-    /^[ \t]*[A-Za-z0-9-]* *DEFINITIONS( +IMPLICIT +TAGS)? *::= *BEGIN/ {
+    /^[ \t]*[A-Za-z0-9-]* *DEFINITIONS *::= *BEGIN/ {
 	module = $1
 	collect = 1
 	macro = 0
diff --git a/mkinstalldirs b/mkinstalldirs
index 6b3b5fc..52aeb73 100755
--- a/mkinstalldirs
+++ b/mkinstalldirs
@@ -4,7 +4,7 @@
 # Created: 1993-05-16
 # Public domain
 
-# $Id$
+# $Id: mkinstalldirs 7747 2002-11-05 16:56:57Z rstory $
 
 errstatus=0
 
diff --git a/net-snmp-config.in b/net-snmp-config.in
old mode 100644
new mode 100755
index 2300fe1..6163490
--- a/net-snmp-config.in
+++ b/net-snmp-config.in
@@ -1,10 +1,10 @@
 #!/bin/sh
 #
-# $Id$
+# $Id: net-snmp-config.in 18651 2010-05-06 06:33:37Z bvassche $
 #
 # this shell script is designed to merely dump the configuration
 # information about how the net-snmp package was compiled.  The
-# information is particularly useful for applications that need to
+# information is particularily useful for applications that need to
 # link against the net-snmp libraries and hence must know about any
 # other libraries that must be linked in as well.
 
@@ -27,50 +27,23 @@ check_build_dir()
       fi
 }
 
-# usage: index n arguments
-# effect: returns the (n+1)th argument
-index()
-{
-    eval echo \$`expr $1 + 1`
-}
-
-# usage: count arguments
-# effect: returns the number of arguments
-count()
-{
-    echo $#
-}
-
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 includedir=@includedir@
 libdir=@libdir@
-datarootdir=@datarootdir@
 NSC_LDFLAGS="@LDFLAGS@"
-
-NSC_LIBS="@LIBS@"
-NSC_LNETSNMPLIBS="@LNETSNMPLIBS@"
-NSC_LAGENTLIBS="@LAGENTLIBS@ @PERLLDOPTS_FOR_APPS@"
-NSC_LMIBLIBS="@LMIBLIBS@"
-
 NSC_INCLUDEDIR=${includedir}
 NSC_LIBDIR=-L${libdir}
-
-NSC_SNMPLIBS="-lnetsnmp ${NSC_LNETSNMPLIBS}"
-NSC_SUBAGENTLIBS="-lnetsnmpagent ${NSC_LAGENTLIBS} ${NSC_SNMPLIBS}"
-NSC_AGENTLIBS="-lnetsnmpmibs ${NSC_LMIBLIBS} ${NSC_SUBAGENTLIBS}"
-
+NSC_LIBS="@LIBS@"
+NSC_AGENTLIBS="@AGENTLIBS@ @PERLLDOPTS_FOR_APPS@"
 NSC_PREFIX=$prefix
 NSC_EXEC_PREFIX=$exec_prefix
 NSC_SRCDIR=@srcdir@
 NSC_INCDIR=${NSC_PREFIX}/include
-
-NSC_BASE_SNMP_LIBS="-lnetsnmp"
-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"
-NSC_SRC_LIBDEPS="agent/.libs/libnetsnmpmibs.a agent/.libs/libnetsnmpagent.a snmplib/.libs/libnetsnmp.a"
+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"
 
 if test "x$NSC_SRCDIR" = "x." ; then
    NSC_SRCDIR="NET-SNMP-SOURCE-DIR"
@@ -124,9 +97,6 @@ else
     --env-separator)
       echo "@ENV_SEPARATOR@"
       ;;
-    --exeext)
-      echo "@EXEEXT@"
-      ;;
     --snmpconfpath|--SNMPCONFPATH)
       echo "@SNMPCONFPATH@@ENV_SEPARATOR@@SNMPSHAREPATH@@ENV_SEPARATOR@@SNMPLIBPATH@@ENV_SEPARATOR@$HOME/.snmp at ENV_SEPARATOR@@PERSISTENT_DIRECTORY@"
       ;;
@@ -182,19 +152,16 @@ else
       fi
       echo $result
       ;;
-    --build-command)
-      echo "@CC@ @CFLAGS@ @DEVFLAGS@"
-      ;;
     #################################################### client lib
     --libs)
       # use this one == --netsnmp-libs + --external-libs
-      echo $NSC_LDFLAGS $NSC_LIBDIR $NSC_SNMPLIBS $NSC_LIBS
+      echo $NSC_LDFLAGS $NSC_LIBDIR -lnetsnmp $NSC_LIBS
       ;;
     --netsnmp-libs)
-      echo $NSC_LIBDIR $NSC_BASE_SNMP_LIBS
+      echo $NSC_LIBDIR -lnetsnmp
       ;;
     --external-libs)
-      echo $NSC_LDFLAGS $NSC_LNETSNMPLIBS $NSC_LIBS @PERLLDOPTS_FOR_APPS@
+      echo $NSC_LDFLAGS $NSC_LIBS
       ;;
     #################################################### agent lib
     --base-agent-libs)
@@ -205,13 +172,13 @@ else
       ;;
     --agent-libs)
       # use this one == --netsnmp-agent-libs + --external-libs
-      echo $NSC_LDFLAGS $NSC_LIBDIR $NSC_AGENTLIBS $NSC_LIBS
+      echo $NSC_LDFLAGS $NSC_LIBDIR $NSC_BASE_AGENT_LIBS $NSC_AGENTLIBS
       ;;
     --netsnmp-agent-libs)
       echo $NSC_LIBDIR $NSC_BASE_AGENT_LIBS
       ;;
     --external-agent-libs)
-      echo $NSC_LDFLAGS $NSC_LMIBLIBS $NSC_LAGENTLIBS $NSC_LNETSNMPLIBS $NSC_LIBS
+      echo $NSC_LDFLAGS $NSC_AGENTLIBS
       ;;
     ####################################################
     --version|--ver*)
@@ -228,10 +195,126 @@ else
       ;;
     ####################################################
     --create-snmpv3-user)
-      done=1
+      if @PSCMD@ | egrep ' snmpd *$' > /dev/null 2>&1 ; then
+         echo "Apparently at least one snmpd demon is already running."
+         echo "You must stop them in order to use this command."
+         exit 1
+      fi
+
+      Aalgorithm="MD5"
+      Xalgorithm="DES"
+      token=rwuser
       shift
-      net-snmp-create-v3-user $*
-      exit $?
+      shifted=1
+      while test "x$done" = "x" -a "x$1" != "x" ; do
+	case $1 in
+	    -A|-a)
+		shift
+		if test "x$1" = "x" ; then
+		    echo "You must specify an authentication algorithm or pass phrase"
+		    exit 1
+		fi
+	        case $1 in
+                MD5|SHA)
+		    Aalgorithm=$1
+		    shift
+		    ;;
+                md5|sha)
+		    Aalgorithm=`echo $1 | tr a-z A-Z`
+		    shift
+		    ;;
+                *)
+		    apassphrase=$1
+		    shift
+		    ;;
+		esac
+		;;
+	    -X|-x)
+		shift
+		if test "x$1" = "x" ; then
+		    echo "You must specify an encryption algorithm or pass phrase"
+		    exit 1
+		fi
+	        case $1 in
+                DES|AES|AES128)
+		    Xalgorithm=$1
+		    shift
+		    ;;
+                des|aes|aes128)
+		    Xalgorithm=`echo $1 | tr a-z A-Z`
+		    shift
+		    ;;
+                *)
+		    xpassphrase=$1
+		    shift
+		    ;;
+		esac
+		;;
+	    -ro)
+	        token="rouser"
+		shift
+		;;
+ 	    -*)
+		echo "unknown suboption to --create-snmpv3-user: $1"
+		exit 1
+		;;
+	    *)
+	        done=1
+		;;
+	esac
+      done
+      
+      if test "x$1" = "x" ; then
+          prompt=yes
+	  echo "Enter a SNMPv3 user name to create: "
+	  read user
+      else
+          user=$1
+          shift
+      fi
+      if test "x$user" = "x" ; then
+          echo "You must specify a user name"
+	  exit 1
+      fi
+
+      if test "x$apassphrase" = "x" ; then
+          prompt=yes
+	  echo "Enter authentication pass-phrase: "
+	  read apassphrase
+      fi
+      if test "x$apassphrase" = "x" ; then
+          echo "You must specify an authentication pass-phrase"
+	  exit 1
+      fi
+
+      if test "x$prompt" = "xyes" -a "x$xpassphrase" = "x" ; then
+	  echo "Enter encryption pass-phrase: "
+	  echo "  [press return to reuse the authentication pass-phrase]"
+	  read xpassphrase
+      fi
+
+      outdir="@PERSISTENT_DIRECTORY@"
+      outfile="$outdir/snmpd.conf"
+      line="createUser $user $Aalgorithm \"$apassphrase\" $Xalgorithm $xpassphrase"
+      echo "adding the following line to $outfile:"
+      echo "  " $line
+      # in case it hasn't ever been started yet, start it.
+      if test ! -d $outdir ; then
+          mkdir $outdir
+      fi
+      if test ! -d $outfile ; then
+          touch $outfile
+      fi
+      echo $line >> $outfile
+
+      outfile="@datadir@/snmp/snmpd.conf"
+      line="$token $user"
+      echo "adding the following line to $outfile:"
+      echo "  " $line
+      if test ! -d $outfile ; then
+          touch $outfile
+      fi
+      echo $line >> $outfile
       ;;
 
     ####################################################
@@ -283,7 +366,7 @@ else
 	echo "Ack.  Can't create $tmpfile: already exists"
 	exit 1
       fi
-      echo "generating the temporary code file: $tmpfile"
+      echo "generating the tmporary code file: $tmpfile"
       rm -f $tmpfile
       cat > $tmpfile <<EOF
 /* generated from net-snmp-config */
@@ -330,7 +413,6 @@ EOF
 
       cat >> $tmpfile <<EOF
 const char *app_name = "$outname";
-static int reconfig = 0;
 
 extern int netsnmp_running;
 
@@ -345,15 +427,6 @@ stop_server(UNUSED int a) {
     netsnmp_running = 0;
 }
 
-#ifdef SIGHUP
-RETSIGTYPE
-hup_handler(int sig)
-{
-    reconfig = 1;
-    signal(SIGHUP, hup_handler);
-}
-#endif
-
 static void
 usage(const char *prog)
 {
@@ -530,9 +603,10 @@ EOF
       if grep "init_$name" $i ; then
         echo "  init_${name}();" >> $tmpfile
       fi
+      shift
     done
 
-    # handle the main loop
+    # finish file
     cat >> $tmpfile <<EOF
 
   /* $outname will be used to read $outname.conf files. */
@@ -552,47 +626,18 @@ EOF
 #ifdef SIGINT
   signal(SIGINT, stop_server);
 #endif
-#ifdef SIGHUP
-  signal(SIGHUP, hup_handler);
-#endif
 
   /* main loop here... */
   while(netsnmp_running) {
-    if (reconfig) {
-      free_config();
-      read_configs();
-      reconfig = 0;
-    }
     agent_check_and_process(1);
   }
 
   /* at shutdown time */
   snmp_shutdown(app_name);
-
-  /* deinitialize your mib code here */
-EOF
-
-    # add shutdown routines
-
-    i=`count $cfiles`
-    while [ $i -gt 0 ] ; do
-      fullname=`index $i $cfiles`
-      name=`basename $fullname | sed 's/\.[co]$//'`
-      echo checking for shutdown_$name in $fullname
-      if grep "shutdown_$name" $fullname ; then
-        echo "  shutdown_${name}();" >> $tmpfile
-      fi
-      i=`expr $i - 1`
-    done
-
-    # finish file
-    cat >> $tmpfile <<EOF
-
-  /* shutdown the agent library */
-  shutdown_agent();
   SOCK_CLEANUP;
   exit(0);
 }
+
 EOF
       if test "$?" != 0 -o ! -f "$tmpfile" ; then
         echo "Ack.  Can't create $tmpfile."
@@ -602,10 +647,10 @@ EOF
       echo "running: $cmd"
       `$cmd`
       if test "x$norm" != "x1" ; then
-        echo "removing the temporary code file: $tmpfile"
+        echo "removing the tmporary code file: $tmpfile"
         rm -f $tmpfile
       else
-        echo "leaving the temporary code file: $tmpfile"
+        echo "leaving the tmporary code file: $tmpfile"
       fi
       if test -f $outname ; then
         echo "subagent program $outname created"
@@ -636,9 +681,8 @@ if test "x$usage" = "xyes"; then
   echo ""
   echo "  SNMP Setup commands:"
   echo ""
-  echo "    --create-snmpv3-user creates a SNMPv3 user in Net-SNMP config file."
-  echo "                         See net-snmp-create-v3-user --help for list of"
-  echo "                         accepted options."
+  echo "    --create-snmpv3-user [-ro] [-A authpass] [-X privpass]"
+  echo "                         [-a MD5|SHA] [-x DES|AES] [username]"
   echo ""
   echo "  These options produce the various compilation flags needed when"
   echo "  building external SNMP applications:"
@@ -673,9 +717,8 @@ if test "x$usage" = "xyes"; then
   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 "  Automatted subagent building (produces an OUTPUTNAME binary file):"
   echo "  [this feature has not been tested very well yet.  use at your risk.]"
   echo ""
   echo "    --compile-subagent OUTPUTNAME [--norm] [--cflags flags]"
diff --git a/net-snmp-create-v3-user.in b/net-snmp-create-v3-user.in
deleted file mode 100644
index 5288f3b..0000000
--- a/net-snmp-create-v3-user.in
+++ /dev/null
@@ -1,168 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-#
-# this shell script is designed to add new SNMPv3 users
-# to Net-SNMP config file.
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-includedir=@includedir@
-libdir=@libdir@
-datarootdir=@datarootdir@
-NSC_LDFLAGS="@LDFLAGS@"
-NSC_INCLUDEDIR=${includedir}
-NSC_LIBDIR=-L${libdir}
-NSC_LIBS="@LIBS@"
-NSC_AGENTLIBS="@AGENTLIBS@ @PERLLDOPTS_FOR_APPS@"
-NSC_PREFIX=$prefix
-NSC_EXEC_PREFIX=$exec_prefix
-NSC_SRCDIR=@srcdir@
-NSC_INCDIR=${NSC_PREFIX}/include
-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"
-fi
-
-if @PSCMD@ | egrep ' snmpd *$' > /dev/null 2>&1 ; then
-    echo "Apparently at least one snmpd demon is already running."
-    echo "You must stop them in order to use this command."
-    exit 1
-fi
-
-Aalgorithm="MD5"
-Xalgorithm="DES"
-token=rwuser
-
-while test "x$done" = "x" -a "x$1" != "x" -a "x$usage" != "xyes"; do
-case "$1" in
-    -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-    *) optarg= ;;
-esac
-
-unset shifted
-case $1 in
-    --version|--ver*)
-      echo @VERSION@
-      ;;
-    --help)
-      usage="yes"
-      ;;
-
-    -A|-a)
-	shift
-	if test "x$1" = "x" ; then
-	    echo "You must specify an authentication algorithm or pass phrase"
-	    exit 1
-	fi
-        case $1 in
-            MD5|SHA)
-	    Aalgorithm=$1
-	    shift
-	    ;;
-            md5|sha)
-	    Aalgorithm=`echo $1 | tr a-z A-Z`
-	    shift
-	    ;;
-            *)
-	    apassphrase=$1
-	    shift
-	    ;;
-        esac
-        ;;
-    -X|-x)
-	shift
-	if test "x$1" = "x" ; then
-	    echo "You must specify an encryption algorithm or pass phrase"
-	    exit 1
-	fi
-        case $1 in
-            DES|AES|AES128)
-	    Xalgorithm=$1
-	    shift
-	    ;;
-            des|aes|aes128)
-	    Xalgorithm=`echo $1 | tr a-z A-Z`
-	    shift
-	    ;;
-            *)
-	    xpassphrase=$1
-	    shift
-	    ;;
-	esac
-	;;
-    -ro)
-        token="rouser"
-	shift
-	;;
-    -*)
-	echo "unknown suboption to $0: $1"
-	usage=yes
-	done=1
-	;;
-    *)
-        done=1
-        ;;
-    esac
-done
-
-if test "x$usage" = "xyes"; then
-    echo ""
-    echo "Usage:"
-    echo "  net-snmp-create-v3-user [-ro] [-A authpass] [-X privpass]"
-    echo "                          [-a MD5|SHA] [-x DES|AES] [username]"
-    echo ""
-    exit
-fi
-
-if test "x$1" = "x" ; then
-    prompt=yes
-    echo "Enter a SNMPv3 user name to create: "
-    read user
-else
-    user=$1
-    shift
-fi
-if test "x$user" = "x" ; then
-    echo "You must specify a user name"
-    exit 1
-fi
-if test "x$apassphrase" = "x" ; then
-    prompt=yes
-    echo "Enter authentication pass-phrase: "
-    read apassphrase
-fi
-if test "x$apassphrase" = "x" ; then
-    echo "You must specify an authentication pass-phrase"
-    exit 1
-fi
-    if test "x$prompt" = "xyes" -a "x$xpassphrase" = "x" ; then
-    echo "Enter encryption pass-phrase: "
-    echo "  [press return to reuse the authentication pass-phrase]"
-    read xpassphrase
-fi
-outdir="@PERSISTENT_DIRECTORY@"
-outfile="$outdir/snmpd.conf"
-line="createUser $user $Aalgorithm \"$apassphrase\" $Xalgorithm $xpassphrase"
-echo "adding the following line to $outfile:"
-echo "  " $line
-# in case it hasn't ever been started yet, start it.
-if test ! -d $outdir ; then
-    mkdir $outdir
-fi
-if test ! -d $outfile ; then
-    touch $outfile
-fi
-echo $line >> $outfile
-outfile="@datadir@/snmp/snmpd.conf"
-line="$token $user"
-echo "adding the following line to $outfile:"
-echo "  " $line
-if test ! -d $outfile ; then
-    touch $outfile
-fi
-echo $line >> $outfile
diff --git a/ov/UCD-fields b/ov/UCD-fields
index 5e0be0c..f74615e 100644
--- a/ov/UCD-fields
+++ b/ov/UCD-fields
@@ -14,12 +14,6 @@ Field "SNMPAgent" {
 		"UCD IRIX",
 		"UCD Linux",
 		"UCD BSD/OS",
-		"UCD OpenBSD",
-		"UCD Win32",
-		"UCD HP-UX 11",
-		"UCD AIX",
-		"UCD Mac OS X",
-		"UCD Dragonfly",
 		"UCD Unknown",
 		"UCDavis Agent";
 }
diff --git a/ov/oid_to_sym.in b/ov/oid_to_sym.in
index 3fcc073..95ce399 100644
--- a/ov/oid_to_sym.in
+++ b/ov/oid_to_sym.in
@@ -14,5 +14,4 @@ EXTENSIBLEDOTMIB.AGENTID.WIN32ID:Computer:UCD # UCD Win32
 EXTENSIBLEDOTMIB.AGENTID.HPUX11ID:Computer:UCD # UCD HP-UX 11
 EXTENSIBLEDOTMIB.AGENTID.AIXID:Computer:UCD # UCD AIX
 EXTENSIBLEDOTMIB.AGENTID.MACOSXID:Computer:UCD # UCD Mac OS X
-EXTENSIBLEDOTMIB.AGENTID.DRAGONFLYID:Computer:UCD # UCD DragonFly
 EXTENSIBLEDOTMIB.AGENTID.UNKNOWNID:Computer:UCD # UCD Unknown
diff --git a/ov/oid_to_type.in b/ov/oid_to_type.in
index 84743a6..a9e7219 100644
--- a/ov/oid_to_type.in
+++ b/ov/oid_to_type.in
@@ -14,5 +14,4 @@ EXTENSIBLEDOTMIB.AGENTID.WIN32ID:Microsoft:UCD Win32
 EXTENSIBLEDOTMIB.AGENTID.HPUX11ID:Hewlett-Packard:UCD HP-UX 11
 EXTENSIBLEDOTMIB.AGENTID.AIXID:IBM:UCD AIX
 EXTENSIBLEDOTMIB.AGENTID.MACOSXID:Apple:UCD Mac OS X
-EXTENSIBLEDOTMIB.AGENTID.DRAGONFLYID:Computer:UCD # UCD DragonFly
 EXTENSIBLEDOTMIB.AGENTID.UNKNOWNID:Unset:UCD Unknown
diff --git a/perl/ASN/ASN.pm b/perl/ASN/ASN.pm
index 28768ab..0ab095f 100644
--- a/perl/ASN/ASN.pm
+++ b/perl/ASN/ASN.pm
@@ -66,7 +66,7 @@ use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK @EXPORT $VERSION $AUTOLOAD);
 	ASN_UNSIGNED
 	ASN_UNSIGNED64
 );
-$VERSION = '5.07021';
+$VERSION = '5.0403';
 
 sub AUTOLOAD {
     # This AUTOLOAD is used to 'autoload' constants from the constant()
@@ -76,8 +76,7 @@ sub AUTOLOAD {
     my $constname;
     ($constname = $AUTOLOAD) =~ s/.*:://;
     croak "& not defined" if $constname eq 'constant';
-    my $val;
-    ($!, $val) = constant($constname);
+    my $val = constant($constname, @_ ? $_[0] : 0);
     if ($! != 0) {
 	if ($! =~ /Invalid/ || $!{EINVAL}) {
 	    $AutoLoader::AUTOLOAD = $AUTOLOAD;
diff --git a/perl/ASN/ASN.xs b/perl/ASN/ASN.xs
index e3f6181..4c9342c 100644
--- a/perl/ASN/ASN.xs
+++ b/perl/ASN/ASN.xs
@@ -1,8 +1,4 @@
 /* -*- C -*- */
-#if defined(_WIN32) && !defined(_WIN32_WINNT)
-#define _WIN32_WINNT 0x501
-#endif
-
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
@@ -11,167 +7,338 @@
 #include <net-snmp/library/asn1.h>
 #include <net-snmp/library/snmp_impl.h>
 
-#define TEST_CONSTANT(value, name, C)           \
-    if (strEQ(name, #C)) {                      \
-        *value = C;                             \
-        return 0;                               \
-    }
+static int
+not_here(char *s)
+{
+    croak("%s not implemented on this architecture", s);
+    return -1;
+}
 
-static int constant_ASN_O(double *value, const char *name, const int len)
+static double
+constant_ASN_O(char *name, int len, int arg)
 {
-    switch (len >= 5 ? name[5] : -1) {
+    switch (name[5 + 0]) {
     case 'B':
-        TEST_CONSTANT(value, name, ASN_OBJECT_ID);
-        break;
+	if (strEQ(name + 5, "BJECT_ID")) {	/* ASN_O removed */
+#ifdef ASN_OBJECT_ID
+	    return ASN_OBJECT_ID;
+#else
+	    goto not_there;
+#endif
+	}
     case 'C':
-        TEST_CONSTANT(value, name, ASN_OCTET_STR);
-        break;
+	if (strEQ(name + 5, "CTET_STR")) {	/* ASN_O removed */
+#ifdef ASN_OCTET_STR
+	    return ASN_OCTET_STR;
+#else
+	    goto not_there;
+#endif
+	}
     case 'P':
-        TEST_CONSTANT(value, name, ASN_OPAQUE);
-        break;
+	if (strEQ(name + 5, "PAQUE")) {	/* ASN_O removed */
+#ifdef ASN_OPAQUE
+	    return ASN_OPAQUE;
+#else
+	    goto not_there;
+#endif
+	}
     }
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
+
+not_there:
+    errno = ENOENT;
+    return 0;
 }
 
-static int constant_ASN_B(double *value, const char *name, const int len)
+static double
+constant_ASN_B(char *name, int len, int arg)
 {
-    switch (len >= 5 ? name[5] : -1) {
+    switch (name[5 + 0]) {
     case 'I':
-        TEST_CONSTANT(value, name, ASN_BIT_STR);
-        break;
+	if (strEQ(name + 5, "IT_STR")) {	/* ASN_B removed */
+#ifdef ASN_BIT_STR
+	    return ASN_BIT_STR;
+#else
+	    goto not_there;
+#endif
+	}
     case 'O':
-        TEST_CONSTANT(value, name, ASN_BOOLEAN);
-        break;
+	if (strEQ(name + 5, "OOLEAN")) {	/* ASN_B removed */
+#ifdef ASN_BOOLEAN
+	    return ASN_BOOLEAN;
+#else
+	    goto not_there;
+#endif
+	}
     }
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
+
+not_there:
+    errno = ENOENT;
+    return 0;
 }
 
-static int constant_ASN_S(double *value, const char *name, const int len)
+static double
+constant_ASN_S(char *name, int len, int arg)
 {
-    switch (len >= 6 ? name[6] : -1) {
+    if (5 + 1 >= len ) {
+	errno = EINVAL;
+	return 0;
+    }
+    switch (name[5 + 1]) {
     case 'Q':
-        TEST_CONSTANT(value, name, ASN_SEQUENCE);
-        break;
+	if (strEQ(name + 5, "EQUENCE")) {	/* ASN_S removed */
+#ifdef ASN_SEQUENCE
+	    return ASN_SEQUENCE;
+#else
+	    goto not_there;
+#endif
+	}
     case 'T':
-        TEST_CONSTANT(value, name, ASN_SET);
-        break;
+	if (strEQ(name + 5, "ET")) {	/* ASN_S removed */
+#ifdef ASN_SET
+	    return ASN_SET;
+#else
+	    goto not_there;
+#endif
+	}
     }
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
+
+not_there:
+    errno = ENOENT;
+    return 0;
 }
 
-static int constant_ASN_C(double *value, const char *name, const int len)
+static double
+constant_ASN_C(char *name, int len, int arg)
 {
-    switch (len >= 11 ? name[11] : -1) {
+    if (5 + 6 > len ) {
+	errno = EINVAL;
+	return 0;
+    }
+    switch (name[5 + 6]) {
     case '\0':
-        TEST_CONSTANT(value, name, ASN_COUNTER);
-        break;
+	if (strEQ(name + 5, "OUNTER")) {	/* ASN_C removed */
+#ifdef ASN_COUNTER
+	    return ASN_COUNTER;
+#else
+	    goto not_there;
+#endif
+	}
     case '6':
-        TEST_CONSTANT(value, name, ASN_COUNTER64);
-        break;
+	if (strEQ(name + 5, "OUNTER64")) {	/* ASN_C removed */
+#ifdef ASN_COUNTER64
+	    return ASN_COUNTER64;
+#else
+	    goto not_there;
+#endif
+	}
     }
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
+
+not_there:
+    errno = ENOENT;
+    return 0;
 }
 
-static int constant_ASN_U(double *value, const char *name, const int len)
+static double
+constant_ASN_U(char *name, int len, int arg)
 {
-    switch (len >= 12 ? name[12] : -1) {
+    if (5 + 7 > len ) {
+	errno = EINVAL;
+	return 0;
+    }
+    switch (name[5 + 7]) {
     case '\0':
-	TEST_CONSTANT(value, name, ASN_UNSIGNED);
-        break;
-#ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
+	if (strEQ(name + 5, "NSIGNED")) {	/* ASN_U removed */
+#ifdef ASN_UNSIGNED
+	    return ASN_UNSIGNED;
+#else
+	    goto not_there;
+#endif
+	}
     case '6':
-	TEST_CONSTANT(value, name, ASN_UNSIGNED64);
-        break;
+	if (strEQ(name + 5, "NSIGNED64")) {	/* ASN_U removed */
+#ifdef ASN_UNSIGNED64
+	    return ASN_UNSIGNED64;
+#else
+	    goto not_there;
 #endif
+	}
     }
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
+
+not_there:
+    errno = ENOENT;
+    return 0;
 }
 
-static int constant_ASN_IN(double *value, const char *name, const int len)
+static double
+constant_ASN_IN(char *name, int len, int arg)
 {
-    switch (len >= 11 ? name[11] : -1) {
+    if (6 + 5 > len ) {
+	errno = EINVAL;
+	return 0;
+    }
+    switch (name[6 + 5]) {
     case '\0':
-        TEST_CONSTANT(value, name, ASN_INTEGER);
-        break;
-#ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
+	if (strEQ(name + 6, "TEGER")) {	/* ASN_IN removed */
+#ifdef ASN_INTEGER
+	    return ASN_INTEGER;
+#else
+	    goto not_there;
+#endif
+	}
     case '6':
-        TEST_CONSTANT(value, name, ASN_INTEGER64);
-        break;
+	if (strEQ(name + 6, "TEGER64")) {	/* ASN_IN removed */
+#ifdef ASN_INTEGER64
+	    return ASN_INTEGER64;
+#else
+	    goto not_there;
 #endif
+	}
     }
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
+
+not_there:
+    errno = ENOENT;
+    return 0;
 }
 
-static int constant_ASN_I(double* value, const char *name, const int len)
+static double
+constant_ASN_I(char *name, int len, int arg)
 {
-    switch (len >= 5 ? name[5] : -1) {
+    switch (name[5 + 0]) {
     case 'N':
-	return constant_ASN_IN(value, name, len);
+	return constant_ASN_IN(name, len, arg);
     case 'P':
-        TEST_CONSTANT(value, name, ASN_IPADDRESS);
-        break;
+	if (strEQ(name + 5, "PADDRESS")) {	/* ASN_I removed */
+#ifdef ASN_IPADDRESS
+	    return ASN_IPADDRESS;
+#else
+	    goto not_there;
+#endif
+	}
     }
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
+
+not_there:
+    errno = ENOENT;
+    return 0;
 }
 
-static int constant(double *value, const char *const name, const int len)
+static double
+constant(char *name, int len, int arg)
 {
-    if (!strnEQ(name, "ASN_", 4))
-        return EINVAL;
-
-    switch (name[4]) {
+    errno = 0;
+    if (0 + 4 >= len ) {
+	errno = EINVAL;
+	return 0;
+    }
+    switch (name[0 + 4]) {
     case 'A':
-	TEST_CONSTANT(value, name, ASN_APPLICATION);
-        break;
+	if (strEQ(name + 0, "ASN_APPLICATION")) {	/*  removed */
+#ifdef ASN_APPLICATION
+	    return ASN_APPLICATION;
+#else
+	    goto not_there;
+#endif
+	}
     case 'B':
-	return constant_ASN_B(value, name, len);
+	if (!strnEQ(name + 0,"ASN_", 4))
+	    break;
+	return constant_ASN_B(name, len, arg);
     case 'C':
-	return constant_ASN_C(value, name, len);
-#ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
+	if (!strnEQ(name + 0,"ASN_", 4))
+	    break;
+	return constant_ASN_C(name, len, arg);
     case 'D':
-        TEST_CONSTANT(value, name, ASN_DOUBLE);
-        break;
+	if (strEQ(name + 0, "ASN_DOUBLE")) {	/*  removed */
+#ifdef ASN_DOUBLE
+	    return ASN_DOUBLE;
+#else
+	    goto not_there;
+#endif
+	}
     case 'F':
-        TEST_CONSTANT(value, name, ASN_FLOAT);
-        break;
+	if (strEQ(name + 0, "ASN_FLOAT")) {	/*  removed */
+#ifdef ASN_FLOAT
+	    return ASN_FLOAT;
+#else
+	    goto not_there;
 #endif
+	}
     case 'G':
-        TEST_CONSTANT(value, name, ASN_GAUGE);
-        break;
+	if (strEQ(name + 0, "ASN_GAUGE")) {	/*  removed */
+#ifdef ASN_GAUGE
+	    return ASN_GAUGE;
+#else
+	    goto not_there;
+#endif
+	}
     case 'I':
-	return constant_ASN_I(value, name, len);
+	if (!strnEQ(name + 0,"ASN_", 4))
+	    break;
+	return constant_ASN_I(name, len, arg);
     case 'N':
-        TEST_CONSTANT(value, name, ASN_NULL);
-        break;
+	if (strEQ(name + 0, "ASN_NULL")) {	/*  removed */
+#ifdef ASN_NULL
+	    return ASN_NULL;
+#else
+	    goto not_there;
+#endif
+	}
     case 'O':
-	return constant_ASN_O(value, name, len);
+	if (!strnEQ(name + 0,"ASN_", 4))
+	    break;
+	return constant_ASN_O(name, len, arg);
     case 'S':
-	return constant_ASN_S(value, name, len);
+	if (!strnEQ(name + 0,"ASN_", 4))
+	    break;
+	return constant_ASN_S(name, len, arg);
     case 'T':
-        TEST_CONSTANT(value, name, ASN_TIMETICKS);
-        break;
+	if (strEQ(name + 0, "ASN_TIMETICKS")) {	/*  removed */
+#ifdef ASN_TIMETICKS
+	    return ASN_TIMETICKS;
+#else
+	    goto not_there;
+#endif
+	}
     case 'U':
-	return constant_ASN_U(value, name, len);
+	if (!strnEQ(name + 0,"ASN_", 4))
+	    break;
+	return constant_ASN_U(name, len, arg);
     }
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
+
+not_there:
+    errno = ENOENT;
+    return 0;
 }
 
 
 MODULE = NetSNMP::ASN		PACKAGE = NetSNMP::ASN		
 
 
-void
-constant(sv)
+double
+constant(sv,arg)
     PREINIT:
 	STRLEN		len;
     INPUT:
 	SV *		sv
 	char *		s = SvPV(sv, len);
-    INIT:
-        int status;
-        double value;
-    PPCODE:
-        value = 0;
-        status = constant(&value, s, len);
-        XPUSHs(sv_2mortal(newSVuv(status)));
-        XPUSHs(sv_2mortal(newSVnv(value)));
+	int		arg
+    CODE:
+	RETVAL = constant(s,len,arg);
+    OUTPUT:
+	RETVAL
+
diff --git a/perl/ASN/Makefile.PL b/perl/ASN/Makefile.PL
index 4576781..f895a41 100644
--- a/perl/ASN/Makefile.PL
+++ b/perl/ASN/Makefile.PL
@@ -28,9 +28,9 @@ sub InitMakeParams {
                   
     my ($snmp_lib, $snmp_llib, $sep);
 
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
       $opts = NetSNMPGetOpts();	
-      $Params{'DEFINE'} = "-DMSVC_PERL -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS";
+      $Params{'DEFINE'} = "-DMSVC_PERL";
       $sep = '\\';
       $snmp_lib_file = 'netsnmp.lib';
       $snmp_link_lib = 'netsnmp';
@@ -101,7 +101,7 @@ sub NetSNMPGetOpts {
     $rootpath = "../" if (!$rootpath);
     $rootpath .= '/' if ($rootpath !~ /\/$/);
     
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
 
       # Grab command line options first.  Only used if environment variables are not set
       GetOptions("NET-SNMP-IN-SOURCE=s" => \$ret{'insource'},
@@ -184,7 +184,7 @@ sub find_files {
 
 
 sub Check_Version {
-  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} ne '')) {
+  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} eq 'msys')) {
     my $foundversion = 0;
     return if ($ENV{'NETSNMP_DONT_CHECK_VERSION'});
     open(I,"<Makefile");
diff --git a/perl/ASN/netsnmp-feature-definitions.h b/perl/ASN/netsnmp-feature-definitions.h
deleted file mode 100644
index e69de29..0000000
diff --git a/perl/AnyData_SNMP/Storage.pm b/perl/AnyData_SNMP/Storage.pm
index 196946f..dd2fd93 100644
--- a/perl/AnyData_SNMP/Storage.pm
+++ b/perl/AnyData_SNMP/Storage.pm
@@ -6,7 +6,7 @@ package AnyData::Storage::SNMP;
 ##   scalar sets?
 ##   multi-hosts
 
-$AnyData::Storage::VERSION = '5.07021';
+$AnyData::Storage::VERSION = '5.0403';
 use strict;
 use warnings;
 
diff --git a/perl/Makefile.PL b/perl/Makefile.PL
index 31fdc40..f70f991 100644
--- a/perl/Makefile.PL
+++ b/perl/Makefile.PL
@@ -11,7 +11,7 @@ sub InitMakeParams {
     $nsconfig="net-snmp-config"; # in path by default
     my %Params = (
 		  'NAME' => 'Bundle::NetSNMP',
-		  'DIR' => [qw(default_store ASN OID agent SNMP TrapReceiver)],
+		  'DIR' => [qw(default_store ASN OID agent SNMP TrapReceiver)]
 		  );
 
     # bogus, but these options need to be passed to the lower levels
@@ -28,7 +28,7 @@ sub NetSNMPGetOpts {
     $rootpath = "../" if (!$rootpath);
     $rootpath .= '/' if ($rootpath !~ /\/$/);
     
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
 
       # Grab command line options first.  Only used if environment variables are not set
       GetOptions("NET-SNMP-IN-SOURCE=s" => \$ret{'insource'},
@@ -111,7 +111,7 @@ sub find_files {
 
 
 sub Check_Version {
-  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} ne '')) {
+  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} eq 'msys')) {
     my $foundversion = 0;
     return if ($ENV{'NETSNMP_DONT_CHECK_VERSION'});
     open(I,"<Makefile");
diff --git a/perl/Makefile.subs.pl b/perl/Makefile.subs.pl
index e3c25ef..817fb55 100644
--- a/perl/Makefile.subs.pl
+++ b/perl/Makefile.subs.pl
@@ -4,7 +4,7 @@ sub NetSNMPGetOpts {
     $rootpath = "../" if (!$rootpath);
     $rootpath .= '/' if ($rootpath !~ /\/$/);
     
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
 
       # Grab command line options first.  Only used if environment variables are not set
       GetOptions("NET-SNMP-IN-SOURCE=s" => \$ret{'insource'},
@@ -87,7 +87,7 @@ sub find_files {
 
 
 sub Check_Version {
-  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} ne '')) {
+  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} eq 'msys')) {
     my $foundversion = 0;
     return if ($ENV{'NETSNMP_DONT_CHECK_VERSION'});
     open(I,"<Makefile");
diff --git a/perl/OID/Makefile.PL b/perl/OID/Makefile.PL
index 6bb1616..5d94338 100644
--- a/perl/OID/Makefile.PL
+++ b/perl/OID/Makefile.PL
@@ -28,9 +28,9 @@ sub InitMakeParams {
     }
                   
     my ($snmp_lib, $snmp_llib, $sep);
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
       $opts = NetSNMPGetOpts();	
-      $Params{'DEFINE'} = "-DMSVC_PERL -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS";
+      $Params{'DEFINE'} = "-DMSVC_PERL";
       $sep = '\\';
       $snmp_lib_file = 'netsnmp.lib';
       $snmp_link_lib = 'netsnmp';
@@ -102,7 +102,7 @@ sub NetSNMPGetOpts {
     $rootpath = "../" if (!$rootpath);
     $rootpath .= '/' if ($rootpath !~ /\/$/);
     
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
 
       # Grab command line options first.  Only used if environment variables are not set
       GetOptions("NET-SNMP-IN-SOURCE=s" => \$ret{'insource'},
@@ -185,7 +185,7 @@ sub find_files {
 
 
 sub Check_Version {
-  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} ne '')) {
+  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} eq 'msys')) {
     my $foundversion = 0;
     return if ($ENV{'NETSNMP_DONT_CHECK_VERSION'});
     open(I,"<Makefile");
diff --git a/perl/OID/OID.pm b/perl/OID/OID.pm
index e3e942b..5107a4f 100644
--- a/perl/OID/OID.pm
+++ b/perl/OID/OID.pm
@@ -92,7 +92,7 @@ use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK @EXPORT $VERSION $AUTOLOAD);
 	snmp_oid_compare
         compare
 );
-$VERSION = '5.07021';
+$VERSION = '5.0403';
 
 sub new {
     my $type = shift;
@@ -152,8 +152,7 @@ sub AUTOLOAD {
     my $constname;
     ($constname = $AUTOLOAD) =~ s/.*:://;
     croak "& not defined" if $constname eq 'constant';
-    my $val;
-    ($!, $val) = constant($constname);
+    my $val = constant($constname, @_ ? $_[0] : 0);
     if ($! != 0) {
 	if ($! =~ /Invalid/ || $!{EINVAL}) {
 	    $AutoLoader::AUTOLOAD = $AUTOLOAD;
diff --git a/perl/OID/OID.xs b/perl/OID/OID.xs
index 10485f9..76456fc 100644
--- a/perl/OID/OID.xs
+++ b/perl/OID/OID.xs
@@ -1,8 +1,4 @@
 /* -*- C -*- */
-#if defined(_WIN32) && !defined(_WIN32_WINNT)
-#define _WIN32_WINNT 0x501
-#endif
-
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
@@ -19,16 +15,25 @@ typedef struct netsnmp_oid_s {
     oid                  namebuf[ MAX_OID_LEN ];
 } netsnmp_oid;
 
-static int constant(double *value, const char *name, const int len)
+static int
+not_here(char *s)
+{
+    croak("%s not implemented on this architecture", s);
+    return -1;
+}
+
+static double
+constant(char *name, int len, int arg)
 {
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
 }
 
 netsnmp_oid *
 nso_newarrayptr(oid *name, size_t name_len) 
 {
     netsnmp_oid *RETVAL;
-    RETVAL = malloc(sizeof(netsnmp_oid));
+    RETVAL = SNMP_MALLOC_TYPEDEF(netsnmp_oid);
     RETVAL->name = RETVAL->namebuf;
     RETVAL->len = name_len;
     memcpy(RETVAL->name, name, name_len * sizeof(oid));
@@ -125,7 +130,7 @@ int flag;
           break;
 
         case ASN_BIT_STR:
-            snprint_bitstring(buf, buf_len, var, NULL, NULL, NULL);
+            snprint_bitstring(buf, sizeof(buf), var, NULL, NULL, NULL);
             len = strlen(buf);
             break;
 
@@ -146,12 +151,27 @@ int len;
    int i;
    buf[0] = '\0';
    for (i=0; i < len; i++) {
-	sprintf(buf,".%" NETSNMP_PRIo "u",*objid++);
+	sprintf(buf,".%lu",*objid++);
 	buf += strlen(buf);
    }
    return SNMPERR_SUCCESS;
 }
 
+static int
+__tp_sprint_num_objid (buf, tp)
+char *buf;
+struct tree *tp;
+{
+   oid newname[MAX_OID_LEN], *op;
+   /* code taken from get_node in snmp_client.c */
+   for (op = newname + MAX_OID_LEN - 1; op >= newname; op--) {
+      *op = tp->subid;
+      tp = tp->parent;
+      if (tp == NULL) break;
+   }
+   return __sprint_num_objid(buf, op, newname + MAX_OID_LEN - op);
+}
+
 MODULE = NetSNMP::OID		PACKAGE = NetSNMP::OID		PREFIX=nso_
 
 netsnmp_oid *
@@ -160,33 +180,29 @@ nso_newptr(initstring)
     CODE:
         if (get_tree_head() == NULL)
             netsnmp_init_mib();
-        RETVAL = malloc(sizeof(netsnmp_oid));
+        RETVAL = SNMP_MALLOC_TYPEDEF(netsnmp_oid);
         RETVAL->name = RETVAL->namebuf;
         RETVAL->len = sizeof(RETVAL->namebuf)/sizeof(RETVAL->namebuf[0]);
         if (!snmp_parse_oid(initstring, (oid *) RETVAL->name, &RETVAL->len)) {
             snmp_log(LOG_ERR, "Can't parse: %s\n", initstring);
             RETVAL->len = 0;
-            free(RETVAL);
             RETVAL = NULL;
         }
     OUTPUT:
         RETVAL
 
-void
-constant(sv)
+double
+constant(sv,arg)
     PREINIT:
 	STRLEN		len;
     INPUT:
 	SV *		sv
 	char *		s = SvPV(sv, len);
-    INIT:
-        int status;
-        double value;
-    PPCODE:
-        value = 0;
-        status = constant(&value, s, len);
-        XPUSHs(sv_2mortal(newSVuv(status)));
-        XPUSHs(sv_2mortal(newSVnv(value)));
+	int		arg
+    CODE:
+	RETVAL = constant(s,len,arg);
+    OUTPUT:
+	RETVAL
 
 int
 _snmp_oid_compare(oid1, oid2)
@@ -267,12 +283,11 @@ nsop_get_indexes(oid1)
                 return;
             }
                 
-            if ((buf = netsnmp_malloc(buf_len)) == NULL) {
+            if ((buf = (u_char *) calloc(buf_len, 1)) == NULL) {
                 RETVAL = NULL;
                 return;
             }
 
-            tpe = NULL;
             nodecount = 0;
             for(tpnode = tp; tpnode; tpnode = tpnode->parent) {
                 nodecount++;
@@ -283,25 +298,17 @@ nsop_get_indexes(oid1)
                      strcmp(tpnode->label + strlen(tpnode->label) - 5,
                             "Table"))) {
                     /* we're not within a table.  bad logic, little choice */
-                    netsnmp_free(buf);
                     RETVAL = NULL;
                     return;
                 }
             }
 
-            if (!tpe) {
-                netsnmp_free(buf);
-                RETVAL = NULL;
-                return;
-            }
-
             if (tpe->augments && strlen(tpe->augments) > 0) {
                 /* we're augmenting another table, so use that entry instead */
                 if (!snmp_parse_oid(tpe->augments, name, &name_len) ||
                     (NULL ==
                      (tpe = get_tree(name, name_len,
                                      get_tree_head())))) {
-                    netsnmp_free(buf);
                     RETVAL = NULL;
                     return; /* XXX: better error recovery needed? */
                 }
@@ -324,14 +331,12 @@ nsop_get_indexes(oid1)
                     (NULL ==
                      (indexnode = get_tree(name, name_len,
                                            get_tree_head())))) {
-                    netsnmp_free(buf);
                     RETVAL = NULL;
                     return;             /* xxx mem leak */
                 }
                 vbdata.type = mib_to_asn_type(indexnode->type);
 
                 if (vbdata.type == (u_char) -1) {
-                    netsnmp_free(buf);
                     RETVAL = NULL;
                     return; /* XXX: not good.  half populated stack? */
                 }
@@ -353,9 +358,9 @@ nsop_get_indexes(oid1)
                     }
                 }
 
+                /* possible memory leak: vbdata.data should be freed later */
                 if (parse_one_oid_index(&oidp, &oidp_len, &vbdata, 0)
                     != SNMPERR_SUCCESS) {
-                    netsnmp_free(buf);
                     RETVAL = NULL;
                     return;
                 }
@@ -369,10 +374,9 @@ nsop_get_indexes(oid1)
                 sprint_realloc_value(&buf, &buf_len, &out_len,
                                      1, name, name_len, &vbdata);
 */
-                snmp_free_var_internals(&vbdata);
-                av_push(myret, newSVpv((char *)buf, out_len));
+
+                av_push(myret, newSVpv(buf, out_len));
             }
-            netsnmp_free(buf);
             RETVAL = newRV((SV *)myret);
         }
     OUTPUT:
diff --git a/perl/OID/netsnmp-feature-definitions.h b/perl/OID/netsnmp-feature-definitions.h
deleted file mode 100644
index fb4ccdb..0000000
--- a/perl/OID/netsnmp-feature-definitions.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-netsnmp_feature_require(snprint_objid)
-netsnmp_feature_require(snprint_value)
-
diff --git a/perl/SNMP/Makefile.PL b/perl/SNMP/Makefile.PL
index e617cb7..928cb67 100644
--- a/perl/SNMP/Makefile.PL
+++ b/perl/SNMP/Makefile.PL
@@ -32,9 +32,9 @@ sub InitMakeParams {
     }
                                     
     my ($snmp_lib, $snmp_llib, $sep);
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
       $opts = NetSNMPGetOpts();	
-      $Params{'DEFINE'} = "-DMSVC_PERL -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS";
+      $Params{'DEFINE'} = "-DMSVC_PERL";
       $sep = '\\';
       $snmp_lib_file = 'netsnmp.lib';
       $snmp_link_lib = 'netsnmp';
@@ -128,7 +128,7 @@ sub GetTestInfo {
     my ($mibdir, $snmpd, $snmptrapd);
 
         # Windows
-        if ($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '') {
+        if ($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys') {
           if (lc ($opts->{'insource'}) eq "true") {
             $mibdir = "../../mibs";
             if (lc($opts->{'debug'}) eq "true") {
@@ -169,7 +169,7 @@ sub GetTestInfo {
 	    prompt("Unable to locate \"snmptrapd\". Please enter the path: ",
 		   $snmpd_path1);
 
-        if ($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '') {
+        if ($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys') {
           $snmpd = $snmpd . $sep . "snmpd.exe";
           $snmptrapd = $snmptrapd . $sep . "snmptrapd.exe";
         }
@@ -231,7 +231,7 @@ sub NetSNMPGetOpts {
     $rootpath = "../" if (!$rootpath);
     $rootpath .= '/' if ($rootpath !~ /\/$/);
     
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
 
       # Grab command line options first.  Only used if environment variables are not set
       GetOptions("NET-SNMP-IN-SOURCE=s" => \$ret{'insource'},
@@ -314,7 +314,7 @@ sub find_files {
 
 
 sub Check_Version {
-  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} ne '')) {
+  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} eq 'msys')) {
     my $foundversion = 0;
     return if ($ENV{'NETSNMP_DONT_CHECK_VERSION'});
     open(I,"<Makefile");
diff --git a/perl/SNMP/SNMP.pm b/perl/SNMP/SNMP.pm
index 6c80468..13b4d8e 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.07021';   # current release version number
+$VERSION = '5.0403';   # current release version number
 
 use strict;
 use warnings;
@@ -46,8 +46,6 @@ use NetSNMP::default_store (':all');
         snmp_getnext
         snmp_set
         snmp_trap
-	SNMP_API_TRADITIONAL
-	SNMP_API_SINGLE
 );
 
 sub AUTOLOAD {
@@ -59,7 +57,7 @@ sub AUTOLOAD {
     my $constname;
     ($constname = $AUTOLOAD) =~ s/.*:://;
     # croak "&$module::constant not defined" if $constname eq 'constant';
-    ($!, $val) = constant($constname, @_ ? $_[0] : 0);
+    $val = constant($constname, @_ ? $_[0] : 0);
     if ($! != 0) {
 	if ($! =~ /Invalid/) {
 	    $AutoLoader::AUTOLOAD = $AUTOLOAD;
@@ -135,26 +133,6 @@ $replace_newer = 0; # determine whether or not to tell the parser to replace
                     # older MIB modules with newer ones when loading MIBs.
                     # WARNING: This can cause an incorrect hierarchy.
 
-sub register_debug_tokens {
-    my $tokens = shift;
-
-    SNMP::_register_debug_tokens($tokens);
-}
-
-sub getenv {
-    my $name = shift;
-
-    return SNMP::_getenv($name);
-}
-
-sub setenv {
-    my $envname = shift;
-    my $envval = shift;
-    my $overwrite = shift;
-
-    return SNMP::_setenv($envname, $envval, $overwrite);
-}
-
 sub setMib {
 # loads mib from file name provided
 # setting second arg to true causes currently loaded mib to be replaced
@@ -167,10 +145,10 @@ sub setMib {
 }
 
 sub initMib {
-# equivalent to calling the snmp library init_mib if Mib is NULL
+# eqivalent to calling the snmp library init_mib if Mib is NULL
 # if Mib is already loaded this function does nothing
-# Pass a zero valued argument to get minimal mib tree initialization
-# If non zero argument or no argument then full mib initialization
+# Pass a zero valued argument to get minimal mib tree initialzation
+# If non zero agrgument or no argument then full mib initialization
 
   SNMP::init_snmp("perl");
   return;
@@ -267,8 +245,8 @@ sub mapEnum {
   my $var = shift;
   my ($tag, $val, $update);
   if (ref($var) =~ /ARRAY/ or ref($var) =~ /Varbind/) {
-      $tag = SNMP::Varbind::tag($var);
-      $val = SNMP::Varbind::val($var);
+      $tag = $var->[$SNMP::Varbind::tag_f];
+      $val = $var->[$SNMP::Varbind::val_f];
       $update = 1;
   } else {
       $tag = $var;
@@ -276,7 +254,7 @@ sub mapEnum {
   }
   my $iflag = $val =~ /^\d+$/;
   my $res = SNMP::_map_enum($tag, $val, $iflag, $SNMP::best_guess);
-  if ($update and defined $res) { SNMP::Varbind::val($var) = $res; }
+  if ($update and defined $res) { $var->[$SNMP::Varbind::val_f] = $res; }
   return($res);
 }
 
@@ -350,24 +328,12 @@ sub snmp_trap {
     $sess->trap(@_);
 }
 
-#--------------------------------------------------------------------- 
-# Preserves the ability to call MainLoop() with no args so we don't 
-# break old code
-#
-# Alternately, MainLoop() could be called as an object method, 
-# ( $sess->MainLoop() ) , so that $self winds up in @_.  Then it would 
-# be more like :
-# my $self = shift;
-# .... 
-# SNMP::_main_loop(......, $self->{SessPtr});
-#--------------------------------------------------------------------- 
 sub MainLoop {
-    my $ss = shift if(&SNMP::_api_mode() == SNMP::SNMP_API_SINGLE());
     my $time = shift;
     my $callback = shift;
     my $time_sec = ($time ? int $time : 0);
     my $time_usec = ($time ? int(($time-$time_sec)*1000000) : 0);
-    SNMP::_main_loop($time_sec,$time_usec,$callback,(defined($ss) ? $ss->{SessPtr} : ()));
+    SNMP::_main_loop($time_sec,$time_usec,$callback);
 }
 
 sub finish {
@@ -504,11 +470,6 @@ sub new {
        $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},
@@ -536,84 +497,51 @@ sub new {
        $this->{Context} ||= 
 	   NetSNMP::default_store::netsnmp_ds_get_string(NetSNMP::default_store::NETSNMP_DS_LIBRARY_ID(), 
 		         NetSNMP::default_store::NETSNMP_DS_LIB_CONTEXT()) || '';
-
-       if ($this->{DestHost} =~ /^(dtls|tls|ssh)/) {
-	   # this is a tunneled protocol
-
-	   $this->{'OurIdentity'} ||= '';
-	   $this->{'TheirIdentity'} ||= '';
-	   $this->{'TheirHostname'} ||= '';
-	   $this->{'TrustCert'} ||= '';
-
-	   $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}),
-				  );
-       }
+       $this->{AuthProto} ||= 'DEFAULT'; # defaults to 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';  # defaults to hte 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;
@@ -766,7 +694,7 @@ sub gettable {
 	    if ($parse_indexes) {
 		# get indexes
 		my @indexes =
-		  @{$SNMP::MIB{$textnode}{'children'}[0]{'indexes'} || []};
+		  @{$SNMP::MIB{$textnode}{'children'}[0]{'indexes'} || [] };
 		# quick translate into a hash
 		map { $indexes{$_} = 1; } @indexes;
 	    }
@@ -783,7 +711,7 @@ sub gettable {
 		# least one column.  We pick the last.
 		push @{$state->{'columns'}}, $root_oid . ".1." .
 		  $children->[$#$children]{'subID'}
-		  if ref($state) eq 'HASH' and ref($children) eq 'ARRAY';
+		  if ref($state) eq 'HASH' and ref($children) eq 'HASH';
 	    }
 	}
     } else {
@@ -827,10 +755,6 @@ sub gettable {
 	# varbinds.
 	$state->{'repeatcount'} = int(1000 / 36 / ($#{$state->{'varbinds'}} + 1));
     }
-    # Make sure we run at least once
-    if ($state->{'repeatcount'} < 1) {
-	$state->{'repeatcount'} = 1;
-    }
 
     #
     # if we've been configured with a callback, then call the
@@ -1020,10 +944,10 @@ sub fget {
    SNMP::_get($this, $this->{RetryNoSuch}, $varbind_list_ref, $cb);
 
    foreach my $varbind (@$varbind_list_ref) {
-     my $sub = $this->{VarFormats}{SNMP::Varbind::tag($varbind)} ||
-	      $this->{TypeFormats}{SNMP::Varbind::type($varbind)};
+     my $sub = $this->{VarFormats}{$varbind->[$SNMP::Varbind::tag_f]} ||
+	 $this->{TypeFormats}{$varbind->[$SNMP::Varbind::type_f]};
      &$sub($varbind) if defined $sub;
-     push(@res, SNMP::Varbind::val($varbind));
+     push(@res, $varbind->[$SNMP::Varbind::val_f]);
    }
 
    return(wantarray() ? @res : $res[0]);
@@ -1073,10 +997,10 @@ sub fgetnext {
    SNMP::_getnext($this, $varbind_list_ref, $cb);
 
    foreach my $varbind (@$varbind_list_ref) {
-     my $sub = $this->{VarFormats}{SNMP::Varbind::tag($varbind)} ||
-	      $this->{TypeFormats}{SNMP::Varbind::type($varbind)};
+     my $sub = $this->{VarFormats}{$varbind->[$SNMP::Varbind::tag_f]} ||
+	 $this->{TypeFormats}{$varbind->[$SNMP::Varbind::type_f]};
      &$sub($varbind) if defined $sub;
-     push(@res, SNMP::Varbind::val($varbind));
+     push(@res, $varbind->[$SNMP::Varbind::val_f]);
    }
 
    return(wantarray() ? @res : $res[0]);
@@ -1259,11 +1183,11 @@ sub new {
 
 package SNMP::Varbind;
 
-$SNMP::Varbind::tag_f = 0;
-$SNMP::Varbind::iid_f = 1;
-$SNMP::Varbind::val_f = 2;
-$SNMP::Varbind::type_f = 3;
-$SNMP::Varbind::time_f = 4;
+my $tag_f = 0;
+my $iid_f = 1;
+my $val_f = 2;
+my $type_f = 3;
+my $time_f = 4;
 
 sub new {
    my $type = shift;
@@ -1273,27 +1197,27 @@ sub new {
 }
 
 sub tag {
-  $_[0]->[$SNMP::Varbind::tag_f];
+  $_[0]->[$tag_f];
 }
 
 sub iid {
-  $_[0]->[$SNMP::Varbind::iid_f];
+  $_[0]->[$iid_f];
 }
 
 sub val {
-  $_[0]->[$SNMP::Varbind::val_f];
+  $_[0]->[$val_f];
 }
 
 sub type {
-  $_[0]->[$SNMP::Varbind::type_f];
+  $_[0]->[$type_f];
 }
 
 sub name {
-   if (defined($_[0]->[$SNMP::Varbind::iid_f]) && ($_[0]->[$SNMP::Varbind::iid_f] =~ m/^[0-9]+$/)) {
-      return $_[0]->[$SNMP::Varbind::tag_f] . "." . $_[0]->[$SNMP::Varbind::iid_f];
+   if (defined($_[0]->[$iid_f]) && ($_[0]->[$iid_f] =~ m/^[0-9]+$/)) {
+      return $_[0]->[$tag_f] . "." . $_[0]->[$iid_f];
    }
 
-   return $_[0]->[$SNMP::Varbind::tag_f];
+   return $_[0]->[$tag_f];
 }
 
 sub fmt {
@@ -1419,7 +1343,6 @@ my %node_elements =
      parent => 0,   # parent node
      children => 0, # array reference of children nodes
      indexes => 0,  # returns array of column labels
-     implied => 0,  # boolean: is the last index IMPLIED
      varbinds => 0, # returns array of trap/notification varbinds
      nextNode => 0, # next lexico node (BUG! does not return in lexico order)
      type => 0,     # returns simple type (see getType for values)
@@ -1539,7 +1462,7 @@ init_snmp properly, which means it will read configuration files and
 use those defaults where appropriate automatically parse MIB files,
 etc.  This will likely affect your perl applications if you have, for
 instance, default values set up in your snmp.conf file (as the perl
-module will now make use of those defaults).  The documentation,
+module will now make use of those defaults).  The docmuentation,
 however, has sadly not been updated yet (aside from this note), nor is
 the read_config default usage implementation fully complete.
 
@@ -1550,7 +1473,7 @@ aspects of a connection between the management application and the
 managed agent. Internally the class is implemented as a blessed hash
 reference. This class supplies 'get', 'getnext', 'set', 'fget', and
 'fgetnext' method calls. The methods take a variety of input argument
-formats and support both synchronous and asynchronous operation through
+formats and support both syncronous and asyncronous operation through
 a polymorphic API (i.e., method behaviour varies dependent on args
 passed - see below).
 
@@ -1560,148 +1483,77 @@ $sess = new SNMP::Session(DestHost => 'host', ...)
 
 The following arguments may be passed to new as a hash.
 
-=head2 Basic Options
-
 =over 4
 
 =item DestHost
 
-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:
+default 'localhost', hostname or ip addr of SNMP agent
 
-  localhost
-  tcp:localhost
-  tls:localhost
-  tls:localhost:9876
-  udp6:[::1]:9876
-  unix:/some/path/to/file/socket
+=item Community
 
-Defaults to 'localhost'.
+default 'public', SNMP community string (used for both R/W)
 
 =item Version
 
-SNMP version to use.
+default taken from library configuration - probably 3 [1, 2 (same as 2c), 2c, 3]
 
-The default is taken from library configuration - probably 3 [1, 2
-(same as 2c), 2c, 3].
+=item RemotePort
 
-=item Timeout
+default '161', allow remote UDP port to be overriden
 
-The number of micro-seconds to wait before resending a request.
+=item Timeout
 
-The default is '1000000'
+default '1000000', micro-seconds before retry
 
 =item Retries
 
-The number of times to retry a request.
-
-The default is '5'
+default '5', retries before failure
 
 =item RetryNoSuch
 
-If enabled NOSUCH errors in 'get' pdus will
+default '0', 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
 
-The SNMPv3 security name to use (most for SNMPv3 with USM).
-
-The default is 'initial'.
+default 'initial', security name (v3)
 
 =item SecLevel
 
-The SNMPv3 security level to use [noAuthNoPriv, authNoPriv, authPriv] (v3)
-
-The default is 'noAuthNoPriv'.
+default 'noAuthNoPriv', security level [noAuthNoPriv,
+authNoPriv, authPriv] (v3)
 
 =item SecEngineId
 
-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
+default <none>, security engineID, will be probed if not
 supplied (v3)
 
 =item ContextEngineId
 
-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).
+default <SecEngineId>, context engineID, will be
+probed if not supplied (v3)
 
 =item Context
 
-The SNMPv3 context name to use.
-
-The default is '' (an empty string)
+default '', context name (v3)
 
 =item AuthProto
 
-The SNMPv3/USM authentication protocol to use [MD5, SHA].
-
-The default is 'MD5'.
+default 'MD5', authentication protocol [MD5, SHA] (v3)
 
 =item AuthPass
 
-The SNMPv3/USM authentication passphrase to use.
-
 default <none>, authentication passphrase
 
 =item PrivProto
 
-The SNMPv3/USM privacy protocol to use [DES, AES].
-
-The default is 'DES'.
+default 'DES', privacy protocol [DES, AES] (v3)
 
 =item PrivPass
 
-The SNMPv3/USM privacy passphrase to use.
-
 default <none>, privacy passphrase (v3)
 
 =item AuthMasterKey
@@ -1715,20 +1567,6 @@ default <none>, privacy passphrase (v3)
 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
@@ -1822,11 +1660,6 @@ internal field used to hold the translated DestHost field
 
 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
@@ -1845,7 +1678,7 @@ do SNMP GET, multiple <vars> formats accepted.
 for syncronous operation <vars> will be updated
 with value(s) and type(s) and will also return
 retrieved value(s). If <callback> supplied method
-will operate asynchronously
+will operate asyncronously
 
 =item $sess->fget(E<lt>varsE<gt> [,E<lt>callbackE<gt>])
 
@@ -1862,7 +1695,7 @@ and <type>
 
 Note: simple string <vars>,(e.g., 'sysDescr.0')
 form is not updated. If <callback> supplied method
-will operate asynchronously
+will operate asyncronously
 
 =item $sess->fgetnext(E<lt>varsE<gt> [,E<lt>callbackE<gt>])
 
@@ -1878,7 +1711,7 @@ format (i.e., well known format) to ensure unambiguous
 translation to SNMP MIB data value (see discussion of
 canonical value format <vars> description section),
 returns snmp_errno. If <callback> supplied method
-will operate asynchronously
+will operate asyncronously
 
 =item $sess->getbulk(E<lt>non-repeatersE<gt>, E<lt>max-repeatersE<gt>, E<lt>varsE<gt>)
 
@@ -1995,7 +1828,7 @@ collect all the columns defined in the MIB table.
 Specifies a GETBULK repeat I<COUNT>.  IE, it will request this many
 varbinds back per column when using the GETBULK operation.  Shortening
 this will mean smaller packets which may help going through some
-systems.  By default, this value is calculated and attempts to guess
+systems.  By default, this value is calculated and attepmts to guess
 at what will fit all the results into 1000 bytes.  This calculation is
 fairly safe, hopefully, but you can either raise or lower the number
 using this option if desired.  In lossy networks, you want to make
@@ -2007,7 +1840,7 @@ one way to help that.
 Force the use of GETNEXT rather than GETBULK.  (always true for
 SNMPv1, as it doesn't have GETBULK anyway).  Some agents are great
 implementers of GETBULK and this allows you to force the use of
-GETNEXT operations instead.
+GETNEXT oprations instead.
 
 =item callback => \&subroutine
 
@@ -2025,7 +1858,7 @@ which are passed to getnext/getbulk as appropriate.
 
 Note 2: callback support is only available in the SNMP module version
 5.04 and above.  To test for this in code intending to support both
-versions prior to 5.04 and 5.04 and up, the following should work:
+versions prior to 5.04 and and 5.04 and up, the following should work:
 
   if ($response = $sess->gettable('ifTable', callback => \&my_sub)) {
       # got a response, gettable doesn't support callback
@@ -2033,7 +1866,7 @@ versions prior to 5.04 and 5.04 and up, the following should work:
       $no_mainloop = 1;
   }
 
-Deciding on whether to use SNMP::MainLoop is left as an exercise to
+Deciding on whether to use SNMP::MainLoop is left as an excersize to
 the reader since it depends on whether your code uses other callbacks
 as well.
 
@@ -2248,9 +2081,9 @@ will be undef.
 to be used with async SNMP::Session
 calls. MainLoop must be called after initial async calls
 so return packets from the agent will not be processed.
-If no args supplied this function enters an infinite loop
+If no args suplied this function enters an infinite loop
 so program must be exited in a callback or externally
-interrupted. If <timeout(sic)
+interupted. If <timeout(sic)
 
 =item &SNMP::finish()
 
@@ -2332,7 +2165,7 @@ initialization
 
 =item $SNMP::debugging
 
-default '0', controls debugging output level
+default '0', controlls debugging output level
 within SNMP module and libsnmp
 
 =over
@@ -2356,12 +2189,6 @@ level 2 plus snmp_set_dump_packet(1)
 default '0', set [non-]zero to independently set
 snmp_set_dump_packet()
 
-=item SNMP::register_debug_tokens()
-
-Allows to register one or more debug tokens, just like the -D option of snmpd.
-Each debug token enables a group of debug statements. An example:
-SNMP::register_debug_tokens("tdomain,netsnmp_unix");
-
 =back
 
 =head1 %SNMP::MIB
@@ -2458,14 +2285,6 @@ be set prior to MIB initialization/parsing)
 
 returns the REFERENCE clause
 
-=item indexes
-
-returns the objects in the INDEX clause
-
-=item implied
-
-returns true if the last object in the INDEX is IMPLIED
-
 =back
 
 =head1 MIB Functions
@@ -2475,7 +2294,7 @@ returns true if the last object in the INDEX is IMPLIED
 =item &SNMP::setMib(<file>)
 
 allows dynamic parsing of the mib and explicit
-specification of mib file independent of environment
+specification of mib file independent of enviroment
 variables. called with no args acts like initMib,
 loading MIBs indicated by environment variables (see
 Net-SNMP mib_api docs). passing non-zero second arg
diff --git a/perl/SNMP/SNMP.xs b/perl/SNMP/SNMP.xs
index b4f35c8..b27de2f 100644
--- a/perl/SNMP/SNMP.xs
+++ b/perl/SNMP/SNMP.xs
@@ -1,4 +1,4 @@
-/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*-
+/* -*- C -*-
      SNMP.xs -- Perl 5 interface to the Net-SNMP toolkit
 
      written by G. S. Marzot (marz at users.sourceforge.net)
@@ -8,10 +8,6 @@
      modify it under the same terms as Perl itself.
 */
 #define WIN32SCK_IS_STDSCK
-#if defined(_WIN32) && !defined(_WIN32_WINNT)
-#define _WIN32_WINNT 0x501
-#endif
-
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
@@ -59,6 +55,16 @@
 #define G_VOID G_DISCARD
 #endif
 
+#ifdef WIN32
+#define SOCK_STARTUP winsock_startup()
+#define SOCK_CLEANUP winsock_cleanup()
+#define strcasecmp _stricmp
+#define strncasecmp _strnicmp
+#else
+#define SOCK_STARTUP
+#define SOCK_CLEANUP
+#endif
+
 #include "perlsnmp.h"
 
 #define SUCCESS 1
@@ -66,9 +72,6 @@
 
 #define ZERO_BUT_TRUE "0 but true"
 
-#define SNMP_API_TRADITIONAL 0
-#define SNMP_API_SINGLE 1
-
 #define VARBIND_TAG_F 0
 #define VARBIND_IID_F 1
 #define VARBIND_VAL_F 2
@@ -88,9 +91,6 @@ static oid snmpTrapOID[SNMP_TRAP_OID_LEN] = {1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0};
 /* Internal flag to determine snmp_main_loop() should return after callback */
 static int mainloop_finish = 0;
 
-/* Internal flag to determine which API we're using */
-static int api_mode = SNMP_API_TRADITIONAL;
-
 /* these should be part of transform_oids.h ? */
 #define USM_AUTH_PROTO_MD5_LEN 10
 #define USM_AUTH_PROTO_SHA_LEN 10
@@ -108,6 +108,7 @@ typedef struct snmp_xs_cb_data {
 
 static void __recalc_timeout _((struct timeval*,struct timeval*,
                                 struct timeval*,struct timeval*, int* ));
+static in_addr_t __parse_address _((char*));
 static int __is_numeric_oid _((char*));
 static int __is_leaf _((struct tree*));
 static int __translate_appl_type _((char*));
@@ -122,6 +123,7 @@ static int __get_label_iid _((char *, char **, char **, int));
 static int __oid_cmp _((oid *, size_t, oid *, size_t));
 static int __tp_sprint_num_objid _((char*,SnmpMibNode *));
 static SnmpMibNode * __get_next_mib_node _((SnmpMibNode *));
+static struct tree * __oid2tp _((oid*, int, struct tree *, int*));
 static struct tree * __tag2oid _((char *, char *, oid  *, size_t *, int *, int));
 static int __concat_oid_str _((oid *, size_t *, char *));
 static int __add_var_val_str _((netsnmp_pdu *, oid *, size_t, char *,
@@ -181,9 +183,6 @@ static int _bulkwalk_finish   _((walk_context *context, int okay));
 static int _bulkwalk_async_cb _((int op, SnmpSession *ss, int reqid,
 				     netsnmp_pdu *pdu, void *context_ptr));
 
-/* Prototype for error handler */
-void snmp_return_err( struct snmp_session *ss, SV *err_str, SV *err_num, SV *err_ind );
-
 /* Structure to hold valid context sessions. */
 struct valid_contexts {
    walk_context	**valid;	/* Array of valid walk_context pointers.    */
@@ -207,6 +206,7 @@ static int _debug_level = 0;
 	} while (/*CONSTCOND*/0)
 
 char	_debugx[1024];	/* Space to sprintf() into - used by sprint_objid(). */
+#define DBDCL(x) x
 
 /* wrapper around snprint_objid to snprint_objid to return the pointer 
    instead of length */
@@ -217,19 +217,10 @@ __snprint_oid(const oid *objid, size_t objidlen) {
   return _debugx;
 }
  
-#define DBDCL(x) x
 #else	/* DEBUGGING */
 #define DBDCL(x) 
 #define DBOUT
-/* Do nothing but in such a way that the compiler sees "otherargs". */
-#define	DBPRT(severity, otherargs) \
-    do { if (0) printf otherargs; } while(0)
-
-static char *
-__snprint_oid(const oid *objid, size_t objidlen)
-{
-    return "(debugging is disabled)";
-}
+#define	DBPRT(severity, otherargs)	/* Ignore */
 
 #endif	/* DEBUGGING */
 
@@ -242,8 +233,8 @@ __libraries_init(char *appname)
             return;
         have_inited = 1;
 
-        netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
-                               NETSNMP_DS_LIB_QUICK_PRINT, 1);
+        snmp_set_quick_print(1);
+        snmp_enable_stderrlog();
         init_snmp(appname);
     
         netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_BREAKDOWN_OIDS, 1);
@@ -294,6 +285,26 @@ int *block;
    }
 }
 
+static in_addr_t
+__parse_address(address)
+char *address;
+{
+    in_addr_t addr;
+    struct sockaddr_in saddr;
+    struct hostent *hp;
+
+    if ((addr = inet_addr(address)) != -1)
+	return addr;
+    hp = gethostbyname(address);
+    if (hp == NULL){
+        return (-1); /* error value */
+    } else {
+	memcpy(&saddr.sin_addr, hp->h_addr, hp->h_length);
+	return saddr.sin_addr.s_addr;
+    }
+
+}
+
 static int
 __is_numeric_oid (oidstr)
 char* oidstr;
@@ -459,7 +470,8 @@ int flag;
            if (flag == USE_ENUMS) {
               for(ep = tp->enums; ep; ep = ep->next) {
                  if (ep->value == *var->val.integer) {
-                    strlcpy(buf, ep->label, buf_len);
+                    strncpy(buf, ep->label, buf_len);
+                    buf[buf_len-1] = '\0';
                     len = strlen(buf);
                     break;
                  }
@@ -564,7 +576,7 @@ int len;
    int i;
    buf[0] = '\0';
    for (i=0; i < len; i++) {
-	sprintf(buf,".%" NETSNMP_PRIo "u",*objid++);
+	sprintf(buf,".%lu",*objid++);
 	buf += strlen(buf);
    }
    return SUCCESS;
@@ -597,7 +609,7 @@ size_t *len;
    cp = buf;
    while (*buf) {
       if (*buf++ == '.') {
-         sscanf(cp, "%" NETSNMP_PRIo "u", objid++);
+         sscanf(cp, "%lu", objid++);
          /* *objid++ = atoi(cp); */
          (*len)++;
          cp = buf;
@@ -607,7 +619,7 @@ size_t *len;
          }
       }
    }
-   sscanf(cp, "%" NETSNMP_PRIo "u", objid++);
+   sscanf(cp, "%lu", objid++);
    /* *objid++ = atoi(cp); */
    (*len)++;
    return SUCCESS;
@@ -758,13 +770,11 @@ int flag;
            icp = lcp;
         }
       }
-      if (!found_label && isalpha((unsigned char)*lcp)) found_label = 1;
+      if (!found_label && isalpha((int)*lcp)) found_label = 1;
       lcp--;
    }
 
-   if (!found_label
-       || ((icp + 1 >= name + len || !isdigit((unsigned char)*(icp+1)))
-           && (flag & FAIL_ON_NULL_IID)))
+   if (!found_label || (!isdigit((int)*(icp+1)) && (flag & FAIL_ON_NULL_IID)))
       return(FAILURE);
 
    if (flag & NON_LEAF_NAME) { /* dont know where to start instance id */
@@ -833,6 +843,9 @@ int    best_guess;
    oid newname[MAX_OID_LEN], *op;
    size_t newname_len = 0;
 
+   char str_buf[STR_BUF_SIZE];
+   str_buf[0] = '\0';
+
    if (type) *type = TYPE_UNKNOWN;
    if (oid_arr_len) *oid_arr_len = 0;
    if (!tag) goto done;
@@ -921,6 +934,40 @@ int    best_guess;
    if (iid && *iid && oid_arr_len) __concat_oid_str(oid_arr, oid_arr_len, iid);
    return(rtp);
 }
+/* searches down the mib tree for the given oid
+   returns the last found tp and its index in lastind
+ */
+static struct tree *
+__oid2tp (oidp, len, subtree, lastind)
+oid* oidp;
+int len;
+struct tree * subtree;
+int* lastind;
+{
+    struct tree    *return_tree = NULL;
+
+
+    for (; subtree; subtree = subtree->next_peer) {
+	if (*oidp == subtree->subid){
+	    goto found;
+	}
+    }
+    *lastind=0;
+    return NULL;
+
+found:
+    if (len > 1){
+       return_tree =
+          __oid2tp(oidp + 1, len - 1, subtree->child_list, lastind);
+       (*lastind)++;
+    } else {
+       *lastind=1;
+    }
+    if (return_tree)
+	return return_tree;
+    else
+	return subtree;
+}
 
 /* function: __concat_oid_str
  *
@@ -936,22 +983,19 @@ oid *doid_arr;
 size_t *doid_arr_len;
 char * soid_str;
 {
-   char *soid_buf;
+   char soid_buf[STR_BUF_SIZE];
    char *cp;
    char *st;
 
    if (!soid_str || !*soid_str) return SUCCESS;/* successfully added nothing */
    if (*soid_str == '.') soid_str++;
-   soid_buf = strdup(soid_str);
-   if (!soid_buf)
-       return FAILURE;
+   strcpy(soid_buf, soid_str);
    cp = strtok_r(soid_buf,".",&st);
    while (cp) {
-     sscanf(cp, "%" NETSNMP_PRIo "u", &(doid_arr[(*doid_arr_len)++]));
+     sscanf(cp, "%lu", &(doid_arr[(*doid_arr_len)++]));
      /* doid_arr[(*doid_arr_len)++] =  atoi(cp); */
      cp = strtok_r(NULL,".",&st);
    }
-   free(soid_buf);
    return(SUCCESS);
 }
 
@@ -972,26 +1016,27 @@ __add_var_val_str(pdu, name, name_length, val, len, type)
     int ret = SUCCESS;
 
     if (pdu->variables == NULL){
-	pdu->variables = vars
-            = netsnmp_calloc(1, sizeof(netsnmp_variable_list));
+	pdu->variables = vars =
+           (netsnmp_variable_list *)calloc(1,sizeof(netsnmp_variable_list));
     } else {
 	for(vars = pdu->variables;
             vars->next_variable;
             vars = vars->next_variable)
 	    /*EXIT*/;
-	vars->next_variable = netsnmp_calloc(1, sizeof(netsnmp_variable_list));
+	vars->next_variable =
+           (netsnmp_variable_list *)calloc(1,sizeof(netsnmp_variable_list));
 	vars = vars->next_variable;
     }
 
     vars->next_variable = NULL;
-    vars->name = netsnmp_malloc(name_length * sizeof(oid));
+    vars->name = (oid *)malloc(name_length * sizeof(oid));
     memcpy((char *)vars->name, (char *)name, name_length * sizeof(oid));
     vars->name_length = name_length;
     switch (type) {
       case TYPE_INTEGER:
       case TYPE_INTEGER32:
         vars->type = ASN_INTEGER;
-        vars->val.integer = netsnmp_malloc(sizeof(long));
+        vars->val.integer = (long *)malloc(sizeof(long));
         if (val)
             *(vars->val.integer) = strtol(val,NULL,0);
         else {
@@ -1014,7 +1059,7 @@ __add_var_val_str(pdu, name, name_length, val, len, type)
       case TYPE_UINTEGER:
         vars->type = ASN_UINTEGER;
 UINT:
-        vars->val.integer = netsnmp_malloc(sizeof(long));
+        vars->val.integer = (long *)malloc(sizeof(long));
         if (val)
             sscanf(val,"%lu",vars->val.integer);
         else {
@@ -1035,22 +1080,22 @@ UINT:
       case TYPE_OPAQUE:
         vars->type = ASN_OCTET_STR;
 OCT:
-        vars->val.string = netsnmp_malloc(len);
+        vars->val.string = (u_char *)malloc(len);
         vars->val_len = len;
         if (val && len)
             memcpy((char *)vars->val.string, val, len);
         else {
             ret = FAILURE;
-            vars->val.string = (u_char *) netsnmp_strdup("");
+            vars->val.string = (u_char*)strdup("");
             vars->val_len = 0;
         }
         break;
 
       case TYPE_IPADDR:
         vars->type = ASN_IPADDRESS;
-        vars->val.integer = netsnmp_malloc(sizeof(in_addr_t));
+        vars->val.integer = (long *)malloc(sizeof(in_addr_t));
         if (val)
-            *((in_addr_t *)vars->val.integer) = inet_addr(val);
+            *(vars->val.integer) = inet_addr(val);
         else {
             ret = FAILURE;
             *(vars->val.integer) = 0;
@@ -1068,7 +1113,7 @@ OCT:
 	    ret = FAILURE;
         } else {
             vars->val_len *= sizeof(oid);
-            vars->val.objid = netsnmp_malloc(vars->val_len);
+            vars->val.objid = (oid *)malloc(vars->val_len);
             memcpy((char *)vars->val.objid, (char *)oidbuf, vars->val_len);
         }
         break;
@@ -1100,12 +1145,8 @@ SV * err_ind_sv;
    long command = pdu->command;
    *response = NULL;
 retry:
-	if(api_mode == SNMP_API_SINGLE)
-	{
-		status = snmp_sess_synch_response(ss, pdu, response);
-	} else {
-		status = snmp_synch_response(ss, pdu, response);
-	};
+
+   status = snmp_synch_response(ss, pdu, response);
 
    if ((*response == NULL) && (status == STAT_SUCCESS)) status = STAT_ERROR;
 
@@ -1142,10 +1183,10 @@ retry:
             /* in SNMPv2c, SNMPv2u, SNMPv2*, and SNMPv3 PDUs */
             case SNMP_ERR_INCONSISTENTNAME:
             default:
-				sv_catpv(err_str_sv,
-					(char*)snmp_errstring((*response)->errstat));
-				sv_setiv(err_num_sv, (*response)->errstat);
-				sv_setiv(err_ind_sv, (*response)->errindex);
+               sv_catpv(err_str_sv,
+                        (char*)snmp_errstring((*response)->errstat));
+               sv_setiv(err_num_sv, (*response)->errstat);
+	       sv_setiv(err_ind_sv, (*response)->errindex);
                status = (*response)->errstat;
                break;
 	 }
@@ -1153,12 +1194,13 @@ retry:
 
       case STAT_TIMEOUT:
       case STAT_ERROR:
-	     snmp_return_err(ss, err_str_sv, err_num_sv, err_ind_sv);
+          sv_catpv(err_str_sv, (char*)snmp_api_errstring(ss->s_snmp_errno));
+          sv_setiv(err_num_sv, ss->s_snmp_errno);
          break;
 
       default:
-	     snmp_return_err(ss, err_str_sv, err_num_sv, err_ind_sv);
          sv_catpv(err_str_sv, "send_sync_pdu: unknown status");
+         sv_setiv(err_num_sv, ss->s_snmp_errno);
          break;
    }
 
@@ -1231,12 +1273,7 @@ void *cb_data;
         reply_pdu->command = SNMP_MSG_RESPONSE;
         reply_pdu->reqid = pdu->reqid;
         reply_pdu->errstat = reply_pdu->errindex = 0;
-	if(api_mode == SNMP_API_SINGLE)
-	{
-        	snmp_sess_send(ss, reply_pdu);
-	} else {
-	        snmp_send(ss, reply_pdu);
-	}
+        snmp_send(ss, reply_pdu);
       } else {
         warn("Couldn't clone PDU for inform response");
       }
@@ -1254,7 +1291,7 @@ void *cb_data;
 	cp = transport->f_fmtaddr(transport, pdu->transport_data,
 				  pdu->transport_data_length);
 	av_push(traplist, newSVpv(cp, strlen(cp)));
-	netsnmp_free(cp);
+	free(cp);
       } else {
 	/*  This shouldn't ever happen; every session has a transport.  */
 	av_push(traplist, newSVpv("", 0));
@@ -1594,7 +1631,7 @@ _bulkwalk_done(walk_context *context)
  	** walks still in progress.
  	*/
  	DBPRT(1, (DBOUT "Ignoring %s request oid %s\n",
- 	      bt_entry->norepeat ? "nonrepeater" : "completed",
+ 	      bt_entry->norepeat? "nonrepeater" : "completed",
  	      __snprint_oid(bt_entry->req_oid, bt_entry->req_len)));
 
  	/* Ignore this OID in any further packets. */
@@ -1623,6 +1660,7 @@ _bulkwalk_async_cb(int		op,
 {
    walk_context *context;
    int	done = 0;
+   int	npushed;
    SV **err_str_svp;
    SV **err_num_svp;
 
@@ -1706,7 +1744,7 @@ _bulkwalk_async_cb(int		op,
 	 /* Timeout means something bad has happened.  Return a not-okay
 	 ** result to the async callback.
 	 */
-	 _bulkwalk_finish(context, 0 /* NOT OKAY */);
+	 npushed = _bulkwalk_finish(context, 0 /* NOT OKAY */);
 	 return 1;
       }
 
@@ -1715,7 +1753,7 @@ _bulkwalk_async_cb(int		op,
 	 DBPRT(1,(DBOUT "unexpected callback op %d\n", op));
          sv_setpv(*err_str_svp, (char*)snmp_api_errstring(SNMPERR_GENERR));
          sv_setiv(*err_num_svp, SNMPERR_GENERR);
-	 _bulkwalk_finish(context, 0 /* NOT OKAY */);
+	 npushed = _bulkwalk_finish(context, 0 /* NOT OKAY */);
 	 return 1;
       }
    }
@@ -1740,7 +1778,7 @@ _bulkwalk_async_cb(int		op,
    }
 
    /* Call the perl callback with the return values and we're done. */
-   _bulkwalk_finish(context, 1 /* OKAY */);
+   npushed = _bulkwalk_finish(context, 1 /* OKAY */);
 
    return 1;
 }
@@ -1821,17 +1859,13 @@ _bulkwalk_send_pdu(walk_context *context)
    ** snmp_async_send() function returns the reqid on success, 0 on failure.
    */
    if (SvTRUE(context->perl_cb)) {
-    if(api_mode == SNMP_API_SINGLE)
-    {
-     reqid = snmp_sess_async_send(ss, pdu, _bulkwalk_async_cb, (void *)context);
-    } else {
-     reqid = snmp_async_send(ss, pdu, _bulkwalk_async_cb, (void *)context);
-    }
+      reqid = snmp_async_send(ss, pdu, _bulkwalk_async_cb, (void *)context);
 
       DBPRT(2,(DBOUT "bulkwalk_send_pdu(): snmp_async_send => 0x%08X\n", reqid));
 
       if (reqid == 0) {
-	 snmp_return_err(ss, *err_num_svp, *err_ind_svp, *err_str_svp);
+	 sv_setpv(*err_str_svp, (char*)snmp_api_errstring(ss->s_snmp_errno));
+	 sv_setiv(*err_num_svp, ss->s_snmp_errno);
 	 goto err;
       }
 
@@ -1904,7 +1938,7 @@ _bulkwalk_recv_pdu(walk_context *context, netsnmp_pdu *pdu)
    int		i;
    AV		*varbind;
    SV		*rv;
-   SV **sess_ptr_sv = hv_fetch((HV*)SvRV(context->sess_ref), "SessPtr", 7, 1);
+   DBDCL(SV**sess_ptr_sv=hv_fetch((HV*)SvRV(context->sess_ref),"SessPtr",7,1);)
    SV **err_str_svp = hv_fetch((HV*)SvRV(context->sess_ref), "ErrorStr", 8, 1);
    SV **err_num_svp = hv_fetch((HV*)SvRV(context->sess_ref), "ErrorNum", 8, 1);
    SV **err_ind_svp = hv_fetch((HV*)SvRV(context->sess_ref), "ErrorInd", 8, 1);
@@ -2350,10 +2384,6 @@ _bulkwalk_finish(walk_context *context, int okay)
       if (!async) {
 	 XPUSHs(&sv_undef);
 	 npushed = 1;
-      } else {
-          for (i = 0; i < context->nreq_oids; i++) {
-              sv_2mortal((SV *) (context->req_oids[i].vars));
-          }
       }
    }
 
@@ -2406,51 +2436,143 @@ __av_elem_pv(AV *av, I32 key, char *dflt)
 }
 
 static int
-not_here(const char *s)
+not_here(s)
+char *s;
 {
     warn("%s not implemented on this architecture", s);
     return -1;
 }
 
-#define TEST_CONSTANT(value, name, C)           \
-    if (strEQ(name, #C)) {                      \
-        *value = C;                             \
-        return 0;                               \
-    }
-#define TEST_CONSTANT2(value, name, C, V)       \
-    if (strEQ(name, #C)) {                      \
-        *value = V;                             \
-        return 0;                               \
-    }
-
-static int constant(double *value, const char * const name, const int arg)
+static double
+constant(name, arg)
+char *name;
+int arg;
 {
+    errno = 0;
     switch (*name) {
-    case 'N':
-	TEST_CONSTANT(value, name, NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE);
-	TEST_CONSTANT(value, name, NETSNMP_CALLBACK_OP_TIMED_OUT);
+    case 'R':
+	if (strEQ(name, "NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE"))
+#ifdef NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE
+	    return NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE;
+#else
+	    goto not_there;
+#endif
 	break;
     case 'S':
-	TEST_CONSTANT(value, name, SNMPERR_BAD_ADDRESS);
-	TEST_CONSTANT(value, name, SNMPERR_BAD_LOCPORT);
-	TEST_CONSTANT(value, name, SNMPERR_BAD_SESSION);
-	TEST_CONSTANT(value, name, SNMPERR_GENERR);
-	TEST_CONSTANT(value, name, SNMPERR_TOO_LONG);
-	TEST_CONSTANT(value, name, SNMP_DEFAULT_ADDRESS);
-	TEST_CONSTANT(value, name, SNMP_DEFAULT_COMMUNITY_LEN);
-	TEST_CONSTANT(value, name, SNMP_DEFAULT_ENTERPRISE_LENGTH);
-	TEST_CONSTANT(value, name, SNMP_DEFAULT_ERRINDEX);
-	TEST_CONSTANT(value, name, SNMP_DEFAULT_ERRSTAT);
-	TEST_CONSTANT2(value, name, SNMP_DEFAULT_PEERNAME, 0);
-	TEST_CONSTANT(value, name, SNMP_DEFAULT_REMPORT);
-	TEST_CONSTANT(value, name, SNMP_DEFAULT_REQID);
-	TEST_CONSTANT(value, name, SNMP_DEFAULT_RETRIES);
-	TEST_CONSTANT(value, name, SNMP_DEFAULT_TIME);
-	TEST_CONSTANT(value, name, SNMP_DEFAULT_TIMEOUT);
-	TEST_CONSTANT2(value, name, SNMP_DEFAULT_VERSION,
-                       NETSNMP_DEFAULT_SNMP_VERSION);
-	TEST_CONSTANT(value, name, SNMP_API_SINGLE);
-	TEST_CONSTANT(value, name, SNMP_API_TRADITIONAL);
+	if (strEQ(name, "SNMPERR_BAD_ADDRESS"))
+#ifdef SNMPERR_BAD_ADDRESS
+	    return SNMPERR_BAD_ADDRESS;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMPERR_BAD_LOCPORT"))
+#ifdef SNMPERR_BAD_LOCPORT
+	    return SNMPERR_BAD_LOCPORT;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMPERR_BAD_SESSION"))
+#ifdef SNMPERR_BAD_SESSION
+	    return SNMPERR_BAD_SESSION;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMPERR_GENERR"))
+#ifdef SNMPERR_GENERR
+	    return SNMPERR_GENERR;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMPERR_TOO_LONG"))
+#ifdef SNMPERR_TOO_LONG
+	    return SNMPERR_TOO_LONG;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMP_DEFAULT_ADDRESS"))
+#ifdef SNMP_DEFAULT_ADDRESS
+	    return SNMP_DEFAULT_ADDRESS;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMP_DEFAULT_COMMUNITY_LEN"))
+#ifdef SNMP_DEFAULT_COMMUNITY_LEN
+	    return SNMP_DEFAULT_COMMUNITY_LEN;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMP_DEFAULT_ENTERPRISE_LENGTH"))
+#ifdef SNMP_DEFAULT_ENTERPRISE_LENGTH
+	    return SNMP_DEFAULT_ENTERPRISE_LENGTH;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMP_DEFAULT_ERRINDEX"))
+#ifdef SNMP_DEFAULT_ERRINDEX
+	    return SNMP_DEFAULT_ERRINDEX;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMP_DEFAULT_ERRSTAT"))
+#ifdef SNMP_DEFAULT_ERRSTAT
+	    return SNMP_DEFAULT_ERRSTAT;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMP_DEFAULT_PEERNAME"))
+#ifdef SNMP_DEFAULT_PEERNAME
+	    return 0;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMP_DEFAULT_REMPORT"))
+#ifdef SNMP_DEFAULT_REMPORT
+	    return SNMP_DEFAULT_REMPORT;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMP_DEFAULT_REQID"))
+#ifdef SNMP_DEFAULT_REQID
+	    return SNMP_DEFAULT_REQID;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMP_DEFAULT_RETRIES"))
+#ifdef SNMP_DEFAULT_RETRIES
+	    return SNMP_DEFAULT_RETRIES;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMP_DEFAULT_TIME"))
+#ifdef SNMP_DEFAULT_TIME
+	    return SNMP_DEFAULT_TIME;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMP_DEFAULT_TIMEOUT"))
+#ifdef SNMP_DEFAULT_TIMEOUT
+	    return SNMP_DEFAULT_TIMEOUT;
+#else
+	    goto not_there;
+#endif
+	if (strEQ(name, "SNMP_DEFAULT_VERSION"))
+#ifdef NETSNMP_DEFAULT_SNMP_VERSION
+	    return NETSNMP_DEFAULT_SNMP_VERSION;
+#else
+#ifdef SNMP_DEFAULT_VERSION
+	    return SNMP_DEFAULT_VERSION;
+#else
+	    goto not_there;
+#endif
+#endif
+	break;
+    case 'T':
+	if (strEQ(name, "NETSNMP_CALLBACK_OP_TIMED_OUT"))
+#ifdef NETSNMP_CALLBACK_OP_TIMED_OUT
+	    return NETSNMP_CALLBACK_OP_TIMED_OUT;
+#else
+	    goto not_there;
+#endif
 	break;
     case 'X':
             goto not_there;
@@ -2458,71 +2580,22 @@ static int constant(double *value, const char * const name, const int arg)
     default:
 	break;
     }
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
 
 not_there:
     not_here(name);
-    return ENOENT;
-}
-
-/* 
-  Since s_snmp_errno can't be trusted with Single Session, this calls either
-  snmp_error or snmp_sess_error to populate ErrorStr,ErrorNum, and ErrorInd
-  in SNMP::Session objects
-*/
-void snmp_return_err( struct snmp_session *ss, SV *err_str, SV *err_num, SV *err_ind )
-{
-	int err;
-	int liberr;
-	char *errstr;
-	if(ss == NULL)
-		return;
-	if(api_mode == SNMP_API_SINGLE)
-	{
-		snmp_sess_error(ss, &err, &liberr, &errstr);
-	} else {
-		snmp_error(ss, &err, &liberr, &errstr);
-	}
-	sv_catpv(err_str, errstr);
-	sv_setiv(err_num, liberr);
-	sv_setiv(err_ind, err);
-	netsnmp_free(errstr);
+    errno = ENOENT;
+    return 0;
 }
 
 
-/* 
-  int snmp_api_mode( int mode ) 
-  Returns or sets static int api_mode for reference by functions to determine
-  whether to use Traditional (non-threadsafe) or Single-Session (threadsafe)
-  SNMP API calls.
- 
-  Call with (int)NULL to return the current mode, or with SNMP_API_TRADITIONAL
-  or SNMP_API_SINGLE to set the current mode.  (defined above)
- 
-  pm side call defaults to (int)NULL
-*/
-int snmp_api_mode( int mode )
-{
-	if (mode == 0)
-		return api_mode;
-	api_mode = mode;
-	return api_mode;
-}
-
 MODULE = SNMP		PACKAGE = SNMP		PREFIX = snmp
 
-void
+double
 constant(name,arg)
 	char *		name
 	int		arg
-    INIT:
-        int status;
-        double value;
-    PPCODE:
-        value = 0;
-        status = constant(&value, name, arg);
-        XPUSHs(sv_2mortal(newSVuv(status)));
-        XPUSHs(sv_2mortal(newSVnv(value)));
 
 long
 snmp_sys_uptime()
@@ -2537,13 +2610,6 @@ init_snmp(appname)
     CODE:
         __libraries_init(appname);
 
-#---------------------------------------------------------------------- 
-# Perl call defaults to (int)NULL when given no args, so it will return
-# the current api_mode values
-#----------------------------------------------------------------------
-int 
-snmp_api_mode(mode=0)
-	int mode
 
 SnmpSession *
 snmp_new_session(version, community, peer, lport, retries, timeout)
@@ -2589,12 +2655,7 @@ snmp_new_session(version, community, peer, lport, retries, timeout)
            session.timeout = timeout; /* 1000000L */
            session.authenticator = NULL;
 
-	   if(api_mode == SNMP_API_SINGLE)
-	   {
-	           ss = snmp_sess_open(&session);
-	   } else {
-		   ss = snmp_open(&session);
-	   }
+           ss = snmp_open(&session);
 
            if (ss == NULL) {
 	      if (verbose) warn("error:snmp_new_session: Couldn't open SNMP session");
@@ -2646,7 +2707,7 @@ snmp_new_v3_session(version, peer, retries, timeout, sec_name, sec_level, sec_en
                 goto end;
 	   }
 
-	   session.peername = peer;
+	   session.peername = strdup(peer);
            session.retries = retries; /* 5 */
            session.timeout = timeout; /* 1000000L */
            session.authenticator = NULL;
@@ -2763,118 +2824,18 @@ snmp_new_v3_session(version, peer, retries, timeout, sec_name, sec_level, sec_en
                }
             }
 
-	   if(api_mode == SNMP_API_SINGLE)
-	   {
-	           ss = snmp_sess_open(&session);
-	   } else {
-		   ss = snmp_open(&session);
-	   }
+           ss = snmp_open(&session);
 
            if (ss == NULL) {
 	      if (verbose) warn("error:snmp_new_v3_session:Couldn't open SNMP session");
            }
         end:
            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);
+	   free (session.contextEngineID);
 	}
         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)
@@ -2917,8 +2878,8 @@ snmp_update_session(sess_ref, version, community, peer, lport, retries, timeout)
 	   }
            /* WARNING LEAKAGE but I cant free lib memory under win32 */
            ss->community_len = strlen((char *)community);
-           ss->community = (u_char *)netsnmp_strdup(community);
-	   ss->peername = netsnmp_strdup(peer);
+           ss->community = (u_char *)strdup(community);
+	   ss->peername = strdup(peer);
 	   ss->local_port = lport;
            ss->retries = retries; /* 5 */
            ss->timeout = timeout; /* 1000000L */
@@ -2939,8 +2900,6 @@ snmp_add_mib_dir(mib_dir,force=0)
 	int result = 0;      /* Avoid use of uninitialized variable below. */
         int verbose = SvIV(perl_get_sv("SNMP::verbose", 0x01 | 0x04));
 
-        DBPRT(999, (DBOUT "force=%d\n", force));
-
         if (mib_dir && *mib_dir) {
 	   result = add_mibdir(mib_dir);
         }
@@ -2964,24 +2923,6 @@ snmp_init_mib_internals()
         }
 
 
-char *
-snmp_getenv(name)
-     char *name;
-CODE:
-     RETVAL = netsnmp_getenv(name);
-OUTPUT:
-     RETVAL
-
-int
-snmp_setenv(envname, envval, overwrite)
-     char *envname;
-     char *envval;
-     int overwrite;
-CODE:
-     RETVAL = netsnmp_setenv(envname, envval, overwrite);
-OUTPUT:
-     RETVAL
-
 int
 snmp_read_mib(mib_file, force=0)
 	char *		mib_file
@@ -2990,8 +2931,6 @@ snmp_read_mib(mib_file, force=0)
         {
         int verbose = SvIV(perl_get_sv("SNMP::verbose", 0x01 | 0x04));
 
-        DBPRT(999, (DBOUT "force=%d\n", force));
-
         if ((mib_file == NULL) || (*mib_file == '\0')) {
            if (get_tree_head() == NULL) {
               if (verbose) warn("snmp_read_mib: initializing MIB\n");
@@ -3074,7 +3013,6 @@ snmp_set(sess_ref, varlist_ref, perl_callback)
            int use_enums;
            struct enum_list *ep;
            int best_guess;	   
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 
            New (0, oid_arr, MAX_OID_LEN, oid);
 
@@ -3161,19 +3099,15 @@ snmp_set(sess_ref, varlist_ref, perl_callback)
                  xs_cb_data->perl_cb = newSVsv(perl_callback);
                  xs_cb_data->sess_ref = newRV_inc(SvRV(sess_ref));
 
-		if(api_mode == SNMP_API_SINGLE)
-		{
-                 status = snmp_sess_async_send(ss, pdu, __snmp_xs_cb,
-                                          (void*)xs_cb_data);
-		} else {
                  status = snmp_async_send(ss, pdu, __snmp_xs_cb,
                                           (void*)xs_cb_data);
-		}
                  if (status != 0) {
                     XPUSHs(sv_2mortal(newSViv(status))); /* push the reqid?? */
                  } else {
                     snmp_free_pdu(pdu);
-					snmp_return_err(ss, *err_str_svp, *err_num_svp, *err_ind_svp);
+                    sv_catpv(*err_str_svp,
+                             (char*)snmp_api_errstring(ss->s_snmp_errno));
+                    sv_setiv(*err_num_svp, ss->s_snmp_errno);
                     XPUSHs(&sv_undef);
                  }
 		 goto done;
@@ -3196,9 +3130,6 @@ snmp_set(sess_ref, varlist_ref, perl_callback)
               /* BUG!!! need to return an error value */
               XPUSHs(&sv_undef); /* no mem or bad args */
            }
-#else  /* NETSNMP_NO_WRITE_SUPPORT */
-           warn("error: Net-SNMP was compiled using --enable-read-only, set() can not be used.");
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 done:
            Safefree(oid_arr);
         }
@@ -3351,19 +3282,15 @@ snmp_get(sess_ref, retry_nosuch, varlist_ref, perl_callback)
                  xs_cb_data->perl_cb = newSVsv(perl_callback);
                  xs_cb_data->sess_ref = newSVsv(sess_ref);
 
-		if(api_mode == SNMP_API_SINGLE)
-		{
-		 status = snmp_sess_async_send(ss, pdu, __snmp_xs_cb,
-					  (void*)xs_cb_data);
-		} else {
                  status = snmp_async_send(ss, pdu, __snmp_xs_cb,
                                           (void*)xs_cb_data);
-		}
                  if (status != 0) {
                     XPUSHs(sv_2mortal(newSViv(status))); /* push the reqid?? */
                  } else {
                     snmp_free_pdu(pdu);
-	  	    snmp_return_err(ss, *err_num_svp, *err_ind_svp, *err_str_svp);  
+                    sv_catpv(*err_str_svp,
+                             (char*)snmp_api_errstring(ss->s_snmp_errno));
+                    sv_setiv(*err_num_svp, ss->s_snmp_errno);
                     XPUSHs(&sv_undef);
                  }
 		 goto done;
@@ -3554,11 +3481,11 @@ snmp_getnext(sess_ref, varlist_ref, perl_callback)
                     varbind = (AV*) SvRV(*varbind_ref);
 
                     /* If the varbind includes the module prefix, capture it for use later */
-                    strlcpy(tmp_buf_prefix, __av_elem_pv(varbind, VARBIND_TAG_F, ".0"), STR_BUF_SIZE);
+                    strncpy(tmp_buf_prefix, __av_elem_pv(varbind, VARBIND_TAG_F, ".0"), STR_BUF_SIZE);
                     tmp_prefix_ptr = strstr(tmp_buf_prefix,"::");
                     if (tmp_prefix_ptr) {
                       tmp_prefix_ptr = strtok_r(tmp_buf_prefix, "::", &st);
-                      strlcpy(str_buf_prefix, tmp_prefix_ptr, STR_BUF_SIZE);
+                      strncpy(str_buf_prefix, tmp_prefix_ptr, STR_BUF_SIZE);
                     }
                     else {
                       *str_buf_prefix = '\0';
@@ -3592,19 +3519,15 @@ snmp_getnext(sess_ref, varlist_ref, perl_callback)
                  xs_cb_data->perl_cb = newSVsv(perl_callback);
                  xs_cb_data->sess_ref = newSVsv(sess_ref);
 
-		if(api_mode == SNMP_API_SINGLE)
-		{
-                 status = snmp_sess_async_send(ss, pdu, __snmp_xs_cb,
-                                          (void*)xs_cb_data);
-		} else {
                  status = snmp_async_send(ss, pdu, __snmp_xs_cb,
                                           (void*)xs_cb_data);
-		}
                  if (status != 0) {
                     XPUSHs(sv_2mortal(newSViv(status))); /* push the reqid?? */
                  } else {
                     snmp_free_pdu(pdu);
-					snmp_return_err(ss, *err_num_svp, *err_ind_svp, *err_str_svp);
+                    sv_catpv(*err_str_svp,
+                             (char*)snmp_api_errstring(ss->s_snmp_errno));
+                    sv_setiv(*err_num_svp, ss->s_snmp_errno);
                     XPUSHs(&sv_undef);
                  }
 		 goto done;
@@ -3670,9 +3593,9 @@ snmp_getnext(sess_ref, varlist_ref, perl_callback)
 
                     /* Prepend the module prefix to the next OID if needed */
                     if (*str_buf_prefix) {
-                      strlcat(str_buf_prefix, "::", STR_BUF_SIZE);
-                      strlcat(str_buf_prefix, str_buf, STR_BUF_SIZE);
-                      strlcpy(str_buf, str_buf_prefix, STR_BUF_SIZE);
+                      strncat(str_buf_prefix, "::", STR_BUF_SIZE - strlen(str_buf_prefix) - 2);
+                      strncat(str_buf_prefix, str_buf, STR_BUF_SIZE - strlen(str_buf_prefix));
+                      strncpy(str_buf, str_buf_prefix, STR_BUF_SIZE);
                     }
                     
                     if (__is_leaf(tp)) {
@@ -3834,19 +3757,15 @@ snmp_getbulk(sess_ref, nonrepeaters, maxrepetitions, varlist_ref, perl_callback)
                  xs_cb_data->perl_cb = newSVsv(perl_callback);
                  xs_cb_data->sess_ref = newSVsv(sess_ref);
 
-		if(api_mode == SNMP_API_SINGLE)
-		{
-                 status = snmp_sess_async_send(ss, pdu, __snmp_xs_cb,
-                                          (void*)xs_cb_data);
-		} else {
                  status = snmp_async_send(ss, pdu, __snmp_xs_cb,
                                           (void*)xs_cb_data);
-		}
                  if (status != 0) {
                     XPUSHs(sv_2mortal(newSViv(status))); /* push the reqid?? */
                  } else {
                     snmp_free_pdu(pdu);
-					snmp_return_err(ss, *err_num_svp, *err_ind_svp, *err_str_svp);
+                    sv_catpv(*err_str_svp,
+                             (char*)snmp_api_errstring(ss->s_snmp_errno));
+                    sv_setiv(*err_num_svp, ss->s_snmp_errno);
                     XPUSHs(&sv_undef);
                  }
 		 goto done;
@@ -4068,7 +3987,7 @@ snmp_bulkwalk(sess_ref, nonrepeaters, maxrepetitions, varlist_ref,perl_callback)
 	   if (context->req_oids == NULL) {
 	      sprintf(str_buf, "Newz(req_oids) failed (%s)", strerror(errno));
 	      if (verbose)
-	         warn("%s", str_buf);
+	         warn(str_buf);
 	      sv_setpv(*err_str_svp, str_buf);
 	      sv_setiv(*err_num_svp, SNMPERR_MALLOC);
 	      goto err;
@@ -4197,7 +4116,7 @@ snmp_bulkwalk(sess_ref, nonrepeaters, maxrepetitions, varlist_ref,perl_callback)
 	      }
 
 	      /* Sent okay...  Return the request ID in 'pdu' as an SvIV. */
-	      DBPRT(1,(DBOUT "Okay, request id is %ld\n", (long)(intptr_t)pdu));
+	      DBPRT(1,(DBOUT "Okay, request id is %d\n", (intptr_t) pdu));
 /*	      XSRETURN_IV((intptr_t)pdu); */
 	      XPUSHs(sv_2mortal(newSViv((IV)pdu)));
 	      XSRETURN(1);
@@ -4255,16 +4174,15 @@ snmp_bulkwalk(sess_ref, nonrepeaters, maxrepetitions, varlist_ref,perl_callback)
 
 	/* Handle error cases and clean up after ourselves. */
         err:
-	   if (context) {
-	      if (context->req_oids && context->nreq_oids) {
-	         bt_entry = context->req_oids;
-	         for (i = 0; i < context->nreq_oids; i++, bt_entry++)
-		    av_clear(bt_entry->vars);
-	      }
-	      if (context->req_oids)
-	         Safefree(context->req_oids);
-	      Safefree(context);
+	   if (context->req_oids && context->nreq_oids) {
+	      bt_entry = context->req_oids;
+	      for (i = 0; i < context->nreq_oids; i++, bt_entry++)
+		 av_clear(bt_entry->vars);
 	   }
+	   if (context->req_oids)
+	      Safefree(context->req_oids);
+	   if (context)
+	      Safefree(context);
 	   if (pdu)
 	      snmp_free_pdu(pdu);
 
@@ -4377,7 +4295,7 @@ snmp_trapV1(sess_ref,enterprise,agent,generic,specific,uptime,varlist_ref)
               } /* for all the vars */
               }
 
-	      pdu->enterprise = (oid *)netsnmp_malloc(MAX_OID_LEN * sizeof(oid));
+	      pdu->enterprise = (oid *)malloc( MAX_OID_LEN * sizeof(oid));
               tp = __tag2oid(enterprise,NULL, pdu->enterprise,
                              &pdu->enterprise_length, NULL, best_guess);
   	      if (pdu->enterprise_length == 0) {
@@ -4388,12 +4306,12 @@ snmp_trapV1(sess_ref,enterprise,agent,generic,specific,uptime,varlist_ref)
 		  agent-address field to that.  Otherwise set it to
 		  our address.  */
               if (agent && strlen(agent)) {
-                 if (0 > netsnmp_gethostbyname_v4(agent, 
-                                                 (in_addr_t *)pdu->agent_addr)){
-                     if (verbose)
-                         warn("error:trap:invalid agent address: %s", agent);
-                     goto err;
-                 } 
+                 if (__parse_address(agent) == -1 && verbose) {
+		   warn("error:trap:invalid agent address: %s", agent);
+		   goto err;
+                 } else {
+		   *((in_addr_t *)pdu->agent_addr) = __parse_address(agent);
+		 }
               } else {
                  *((in_addr_t *)pdu->agent_addr) = get_myaddr();
               }
@@ -4401,14 +4319,9 @@ snmp_trapV1(sess_ref,enterprise,agent,generic,specific,uptime,varlist_ref)
               pdu->specific_type = specific;
               pdu->time = uptime;
 
-	     if(api_mode == SNMP_API_SINGLE)
-	     {
-		if(snmp_sess_send(ss,pdu) == 0)
-			snmp_free_pdu(pdu);
-	     } else {
-              if (snmp_send(ss, pdu) == 0) 
+              if (snmp_send(ss, pdu) == 0) {
 	         snmp_free_pdu(pdu);
-             }
+              }
               XPUSHs(sv_2mortal(newSVpv(ZERO_BUT_TRUE,0)));
            } else {
 err:
@@ -4451,7 +4364,7 @@ snmp_trapV2(sess_ref,uptime,trap_oid,varlist_ref)
 	   
            New (0, oid_arr, MAX_OID_LEN, oid);
 
-           if (oid_arr && SvROK(sess_ref)) {
+           if (oid_arr && SvROK(sess_ref) && SvROK(varlist_ref)) {
 
               sess_ptr_sv = hv_fetch((HV*)SvRV(sess_ref), "SessPtr", 7, 1);
 	      ss = (SnmpSession *)SvIV((SV*)SvRV(*sess_ptr_sv));
@@ -4465,13 +4378,8 @@ snmp_trapV2(sess_ref,uptime,trap_oid,varlist_ref)
 	      
               pdu = snmp_pdu_create(SNMP_MSG_TRAP2);
 
-              if (SvROK(varlist_ref)) {
-                  varlist = (AV*) SvRV(varlist_ref);
-                  varlist_len = av_len(varlist);
-              } else {
-                  varlist = NULL;
-                  varlist_len = -1;
-              }
+              varlist = (AV*) SvRV(varlist_ref);
+              varlist_len = av_len(varlist);
 	      /************************************************/
               res = __add_var_val_str(pdu, sysUpTime, SYS_UPTIME_OID_LEN,
 				uptime, strlen(uptime), TYPE_TIMETICKS);
@@ -4544,14 +4452,9 @@ snmp_trapV2(sess_ref,uptime,trap_oid,varlist_ref)
                  } /* if var_ref is ok */
               } /* for all the vars */
 
-	     if(api_mode == SNMP_API_SINGLE)
-	     {
-              if (snmp_sess_send(ss, pdu) == 0)
-	         snmp_free_pdu(pdu);
-	     } else {
-              if (snmp_send(ss, pdu) == 0) 
+              if (snmp_send(ss, pdu) == 0) {
 	         snmp_free_pdu(pdu);
-             }
+              }
 
               XPUSHs(sv_2mortal(newSVpv(ZERO_BUT_TRUE,0)));
            } else {
@@ -4695,19 +4598,15 @@ snmp_inform(sess_ref,uptime,trap_oid,varlist_ref,perl_callback)
                  xs_cb_data->perl_cb = newSVsv(perl_callback);
                  xs_cb_data->sess_ref = newRV_inc(SvRV(sess_ref));
 
-		if(api_mode == SNMP_API_SINGLE)
-		{
-                 status = snmp_sess_async_send(ss, pdu, __snmp_xs_cb,
-                                          (void*)xs_cb_data);
-		} else {
                  status = snmp_async_send(ss, pdu, __snmp_xs_cb,
                                           (void*)xs_cb_data);
-		}
                  if (status != 0) {
                     XPUSHs(sv_2mortal(newSViv(status))); /* push the reqid?? */
                  } else {
                     snmp_free_pdu(pdu);
-					snmp_return_err(ss, *err_num_svp, *err_ind_svp, *err_str_svp);
+                    sv_catpv(*err_str_svp,
+                             (char*)snmp_api_errstring(ss->s_snmp_errno));
+                    sv_setiv(*err_num_svp, ss->s_snmp_errno);
                     XPUSHs(&sv_undef);
                  }
 		 goto done;
@@ -4759,8 +4658,7 @@ snmp_dump_packet(flag)
 	int		flag
 	CODE:
 	{
-            netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                   NETSNMP_DS_LIB_DUMP_PACKET, flag);
+	   snmp_set_dump_packet(flag);
 	}
 
 
@@ -4857,10 +4755,10 @@ snmp_translate_obj(var,mode,use_long,auto_init,best_guess,include_module_name)
 		  if (((status=__get_label_iid(str_buf_temp,
 		       &label, &iid, NO_FLAGS)) == SUCCESS)
 		      && label) {
-		     strlcpy(str_buf_temp, label, sizeof(str_buf_temp));
+		     strcpy(str_buf_temp, label);
 		     if (iid && *iid) {
-		       strlcat(str_buf_temp, ".", sizeof(str_buf_temp));
-		       strlcat(str_buf_temp, iid, sizeof(str_buf_temp));
+		       strcat(str_buf_temp, ".");
+		       strcat(str_buf_temp, iid);
 		     }
  	          }
 	        }
@@ -4882,7 +4780,7 @@ snmp_translate_obj(var,mode,use_long,auto_init,best_guess,include_module_name)
 
 		break;
              default:
-	       if (verbose) warn("snmp_translate_obj:unknown translation mode: %d\n", mode);
+	       if (verbose) warn("snmp_translate_obj:unknown translation mode: %s\n", mode);
            }
            if (*str_buf) {
               RETVAL = (char*)str_buf;
@@ -4908,8 +4806,7 @@ snmp_set_save_descriptions(val)
 	int	val
 	CODE:
 	{
-            netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                   NETSNMP_DS_LIB_SAVE_MIB_DESCRS, val);
+	   snmp_set_save_descriptions(val);
 	}
 
 void
@@ -4921,15 +4818,6 @@ snmp_set_debugging(val)
 	}
 
 void
-snmp_register_debug_tokens(tokens)
-	char *tokens
-	CODE:
-	{
-            debug_register_tokens(tokens);
-            snmp_set_do_debugging(1);
-	}
-
-void
 snmp_debug_internals(val)
 	int     val
 	CODE:
@@ -4965,18 +4853,11 @@ snmp_mainloop_finish()
 	}
 
 
-#-----------------------------------------------------------------------------
-# Note: ss=(SnmpSession*)NULL is so &SNMP::MainLoop() can still be called 
-# without a sess handler argument, this way I'm not breaking anyone's old code
-#
-# see MainLoop() in SNMP.pm for more details
-#-----------------------------------------------------------------------------
 void
-snmp_main_loop(timeout_sec,timeout_usec,perl_callback,ss=(SnmpSession*)NULL)
+snmp_main_loop(timeout_sec,timeout_usec,perl_callback)
 	int 	timeout_sec
 	int 	timeout_usec
 	SV *	perl_callback
-	SnmpSession *ss
 	CODE:
 	{
         int numfds, fd_count;
@@ -4988,6 +4869,7 @@ snmp_main_loop(timeout_sec,timeout_usec,perl_callback,ss=(SnmpSession*)NULL)
         int block;
 	SV *cb;
 
+
  	mainloop_finish = 0;
 
 	itvp = &interval;
@@ -5005,12 +4887,7 @@ snmp_main_loop(timeout_sec,timeout_usec,perl_callback,ss=(SnmpSession*)NULL)
            block = 1;
            tvp = &time_val;
            timerclear(tvp);
-	  if(api_mode == SNMP_API_SINGLE)
-	  {
-           snmp_sess_select_info(ss,&numfds, &fdset, tvp, &block);
-	  } else {
            snmp_select_info(&numfds, &fdset, tvp, &block);
-	  }
            __recalc_timeout(tvp,ctvp,ltvp,itvp,&block);
            # printf("pre-select: numfds = %ld, block = %ld\n", numfds, block);
            if (block == 1) tvp = NULL; /* block without timeout */
@@ -5019,12 +4896,7 @@ snmp_main_loop(timeout_sec,timeout_usec,perl_callback,ss=(SnmpSession*)NULL)
            if (fd_count > 0) {
                        ENTER;
                        SAVETMPS;
-		if(api_mode == SNMP_API_SINGLE)
-		{
-		  snmp_sess_read(ss, &fdset);
-		} else {
-              	  snmp_read(&fdset);
-		}
+              snmp_read(&fdset);
                        FREETMPS;
                        LEAVE;
 
@@ -5033,12 +4905,7 @@ snmp_main_loop(timeout_sec,timeout_usec,perl_callback,ss=(SnmpSession*)NULL)
 		 SPAGAIN;
 		 ENTER;
 		 SAVETMPS;
-		if(api_mode == SNMP_API_SINGLE)
-		{
-		snmp_sess_timeout( ss );
-		} else { 
                  snmp_timeout();
-		}
                  if (!timerisset(ctvp)) {
                     if (SvTRUE(perl_callback)) {
                        /* sv_2mortal(perl_callback); */
@@ -5256,7 +5123,9 @@ snmp_mib_node_FETCH(tp_ref, key)
 	          /* we must be looking at description */
                  sv_setpv(ret,tp->description);
                  break;
-              case 'i': /* indexes, implied */
+              case 'i': /* indexes */
+                 if (strncmp("indexes", key, strlen(key))) break;
+                 index_av = newAV();
                  if (tp->augments) {
  	             clear_tree_flags(get_tree_head()); 
                      tptmp = find_best_tree_node(tp->augments, get_tree_head(), NULL);
@@ -5266,19 +5135,6 @@ snmp_mib_node_FETCH(tp_ref, key)
                  } else {
                      tptmp = tp;
                  }
-                 if (strcmp("implied", key) == 0) {
-                     /* only the last index can be implied */
-                     int isimplied = 0;
-                     if (tptmp && tptmp->indexes) {
-                         for(ip=tptmp->indexes; ip->next; ip = ip->next) {
-                         }
-                         isimplied = ip->isimplied;
-                     }
-                     sv_setiv(ret, isimplied);
-                     break;
-                 }
-                 if (strncmp("indexes", key, strlen(key))) break;
-                 index_av = newAV();
                  if (tptmp)
                      for(ip=tptmp->indexes; ip != NULL; ip = ip->next) {
                          av_push(index_av,newSVpv((ip->ilabel),strlen(ip->ilabel)));
@@ -5373,8 +5229,8 @@ snmp_mib_node_FETCH(tp_ref, key)
                  ranges_av = newAV();
                  for(rp=tp->ranges; rp ; rp = rp->next) {
 		   range_hv = newHV();
-                   (void)hv_store(range_hv, "low", strlen("low"), newSViv(rp->low), 0);
-                   (void)hv_store(range_hv, "high", strlen("high"), newSViv(rp->high), 0);
+                   hv_store(range_hv, "low", strlen("low"), newSViv(rp->low), 0);
+                   hv_store(range_hv, "high", strlen("high"), newSViv(rp->high), 0);
 		   av_push(ranges_av, newRV((SV*)range_hv));
                  }
                  sv_setsv(ret, newRV((SV*)ranges_av));
@@ -5440,7 +5296,7 @@ snmp_mib_node_FETCH(tp_ref, key)
                  if (strncmp("enums", key, strlen(key))) break;
                  enum_hv = newHV();
                  for(ep=tp->enums; ep != NULL; ep = ep->next) {
-		    (void)hv_store(enum_hv, ep->label, strlen(ep->label),
+                   hv_store(enum_hv, ep->label, strlen(ep->label),
                                 newSViv(ep->value), 0);
                  }
                  sv_setsv(ret, newRV((SV*)enum_hv));
@@ -5460,14 +5316,6 @@ snmp_session_DESTROY(sess_ptr)
 	SnmpSession *sess_ptr
 	CODE:
 	{
-	if(sess_ptr != NULL)
-	{
- 	 if(api_mode == SNMP_API_SINGLE)
-	 {
-           snmp_sess_close( sess_ptr );
-	 } else { 
            snmp_close( sess_ptr );
-	 }
-	}
 	}
 
diff --git a/perl/SNMP/examples/mibwalk.pl b/perl/SNMP/examples/mibwalk.pl
index d62dc68..ae743d3 100644
--- a/perl/SNMP/examples/mibwalk.pl
+++ b/perl/SNMP/examples/mibwalk.pl
@@ -12,6 +12,6 @@ $var = new SNMP::Varbind([]);
 
 do {
   $val = $sess->getnext($var);
-  print SNMP::Varbind::tag($var).".".SNMP::Varbind::iid($var)." = ".
-        SNMP::Varbind::val($var)."\n";
+  print "$var->[$SNMP::Varbind::tag_f].$var->[$SNMP::Varbind::iid_f] = ",
+        "$var->[$SNMP::Varbind::val_f]\n";
 } until ($sess->{ErrorStr});
diff --git a/perl/SNMP/examples/pingmib.pl b/perl/SNMP/examples/pingmib.pl
old mode 100755
new mode 100644
index e6aa792..22dbe69
--- a/perl/SNMP/examples/pingmib.pl
+++ b/perl/SNMP/examples/pingmib.pl
@@ -1,9 +1,3 @@
-#!/usr/bin/env perl
-
-# Ping a host via the CISCO-PING-MIB. For more information about the
-# CISCO-PING-MIB, see also
-# http://tools.cisco.com/Support/SNMP/do/BrowseMIB.do?local=en&mibName=CISCO-PING-MIB.
-
 use strict;
 use SNMP;
 
@@ -19,9 +13,8 @@ my $community = shift || 'private';
         my $dec = pack("C*",split /\./, $target);
         my $oid = ".1.3.6.1.4.1.9.9.16.1.1.1";
         my $row = "300";
-        my $res;
 
-        $res = $sess->set([
+        $sess->set([
                 ["$oid.16", $row, 6, "INTEGER"],
                 ["$oid.16", $row, 5, "INTEGER"],
                 ["$oid.15", $row, "MoNDS", "OCTETSTR"],
@@ -29,11 +22,8 @@ my $community = shift || 'private';
                 ["$oid.4", $row, 20, "INTEGER"],
                 ["$oid.5", $row, 150, "INTEGER"],
                 ["$oid.3", $row, $dec, "OCTETSTR"]]);
-        defined($res) || die "row creation failed";
-                
-        $res = $sess->set([["$oid.16", $row, 1, "INTEGER"]]);
-        defined($res) || die "row activation failed";
 
+        $sess->set([["$oid.16", $row, 1, "INTEGER"]]);
         sleep 30;
         my ($sent, $received, $low, $avg, $high, $completed) = $sess->get([
                 ["$oid.9", $row], ["$oid.10", $row], ["$oid.11", $row],
diff --git a/perl/SNMP/netsnmp-feature-definitions.h b/perl/SNMP/netsnmp-feature-definitions.h
deleted file mode 100644
index adc642c..0000000
--- a/perl/SNMP/netsnmp-feature-definitions.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-netsnmp_feature_require(snprint_objid)
-netsnmp_feature_require(snprint_value)
-netsnmp_feature_require(find_module)
-netsnmp_feature_require(get_tc_description)
-
diff --git a/perl/SNMP/t/async.t b/perl/SNMP/t/async.t
index f3fb38d..ef46617 100644
--- a/perl/SNMP/t/async.t
+++ b/perl/SNMP/t/async.t
@@ -7,17 +7,18 @@ BEGIN {
     eval "use Cwd qw(abs_path)";
     $ENV{'SNMPCONFPATH'} = 'nopath';
     $ENV{'MIBDIRS'} = '+' . abs_path("../../mibs");
-
-    $skipped_tests = ($^O =~ /win32/i) ? 20 : 0;
 }
 
 use Test;
-BEGIN {plan tests => 20 - $skipped_tests}
+BEGIN {plan tests => 20}
 use SNMP;
 use vars qw($agent_port $comm $agent_host);
 
 if ($^O =~ /win32/i) {
-  warn "Win32/Win64 detected - skipping async calls\n";
+  warn "Win32 detected - skipping and failing async calls\n";
+  for (my $i=1;$i <= 20; $i++) {
+    ok(0);
+  }
   exit;
 }
 
@@ -51,10 +52,6 @@ ok($result);
 
 SNMP::MainLoop();
 
-snmptest_cleanup();
-
-exit 0;
-
 sub cb1{
     my $sess = shift;
     my $vlist = shift;
@@ -160,7 +157,9 @@ sub cb7{
 
     ok(@{$vlist} == 23);
 
-    SNMP::finish();
+    snmptest_cleanup();
+
+    exit(0);
 } # end of cb7
 
 sub cbDummy {
diff --git a/perl/SNMP/t/bulkwalk.t b/perl/SNMP/t/bulkwalk.t
index 2d13e7b..80acb10 100644
--- a/perl/SNMP/t/bulkwalk.t
+++ b/perl/SNMP/t/bulkwalk.t
@@ -1,6 +1,6 @@
 #!./perl
 #
-# $Id$
+# $Id: bulkwalk.t 17708 2009-07-27 12:06:25Z hardaker $
 #
 # Test bulkwalk functionality.
 
@@ -12,10 +12,9 @@ BEGIN {
     eval "use Cwd qw(abs_path)";
     $ENV{'SNMPCONFPATH'} = 'nopath';
     $ENV{'MIBDIRS'} = '+' . abs_path("../../mibs");
-    $skipped_tests = ($^O =~ /win32/i) ? 21 : 0;
 }
 use Test;
-BEGIN { $num = 62 - $skipped_tests; plan test => $num; }
+BEGIN { $num = 62; plan test => $num; }
 
 use SNMP;
 
@@ -326,7 +325,10 @@ $vars = new SNMP::VarList ( ['sysUpTime'], ['ifNumber'], # NON-repeaters
 			    ['ifSpeed'], ['ifDescr']);	 # Repeated variables.
 
 if ($^O =~ /win32/i) {
-  warn "Win32/Win64 detected - skipping async calls\n";
+  warn "Win32 detected - skipping and failing async calls\n";
+  for (my $i=1;$i <= 21; $i++) {
+    ok(0);
+  }
 }
 else {
   @list = $s1->bulkwalk(2, 16, $vars, [ \&async_cb1, $vars ] );
diff --git a/perl/SNMP/t/conf.t b/perl/SNMP/t/conf.t
index 9a37048..11ef8b4 100644
--- a/perl/SNMP/t/conf.t
+++ b/perl/SNMP/t/conf.t
@@ -16,9 +16,7 @@ BEGIN {
 use Test;
 BEGIN {plan tests => 3}
 
-my $envsep = ($^O =~ /win32/i) ? ';' : ':';
-
-SNMP::setenv('SNMPCONFPATH', '.' . $envsep . 't', 1);
+$ENV{'SNMPCONFPATH'} = ".:t";
 
 ok(1); # just start up
 
diff --git a/perl/SNMP/t/mib.t b/perl/SNMP/t/mib.t
index f4ba91a..18193d2 100644
--- a/perl/SNMP/t/mib.t
+++ b/perl/SNMP/t/mib.t
@@ -10,7 +10,6 @@ BEGIN {
     eval "use Cwd qw(abs_path)";
     $ENV{'SNMPCONFPATH'} = 'nopath';
     $ENV{'MIBDIRS'} = '+' . abs_path("../../mibs");
-    $ENV{'MIBS'} = 'ALL';
 }
 
 # to print the description...
@@ -25,6 +24,8 @@ $SNMP::best_guess = 2;
 
 use vars qw($bad_oid);
 require "t/startagent.pl";
+my $mib_file = 't/mib.txt';
+my $bad_mib_file = 'mib.txt';
 
 #############################  1  ######################################
 #check if
diff --git a/perl/SNMP/t/notify.t b/perl/SNMP/t/notify.t
index 72600fa..434237f 100644
--- a/perl/SNMP/t/notify.t
+++ b/perl/SNMP/t/notify.t
@@ -10,7 +10,7 @@ BEGIN {
     $ENV{'MIBDIRS'} = '+' . abs_path("../../mibs");
 }
 use Test;
-BEGIN { $n = 11; plan tests => $n }
+BEGIN { $n = 10; plan tests => $n }
 use SNMP;
 use vars qw($agent_port $comm $comm2 $trap_port $agent_host $sec_name $priv_pass $auth_pass $bad_name);
 require 't/startagent.pl';
@@ -21,20 +21,20 @@ my $enterprise = '.1.3.6.1.2.1.1.1.0';
 my $generic = 'specific';
 
 #                         V1 trap testing
-########################  1  ############################
+######################  1  #############################
 # Fire up a trap session.
 my $s1 =
     new SNMP::Session (DestHost=>$agent_host,Version=>1,Community=>$comm,RemotePort=>$trap_port);
 ok(defined($s1));
 
-########################  2  ############################
+##########################  2  ####################################
 # test v1 trap
 if (defined($s1)) {
   $res = $s1->trap(enterprise => $enterprise, agent=>$agent_host, generic=>$generic,[[sysContact, 0, 'root at localhost'], [sysLocation, 0, 'here']] );
 }
 ok($res =~ /^0 but true/);
 
-########################  3  ############################
+########################### 3 #############################
 # test with wrong varbind
 undef $res;
 if (defined($s1)) {
@@ -45,12 +45,12 @@ ok(!defined($res));
 #########################################################
 
 #                      V2 testing
-########################  4  ############################
+########################## 4 ############################
 # Fire up a v2 trap session.
 my $s2 =
     new SNMP::Session (Version=>2, DestHost=>$agent_host,Community=>$comm2,RemotePort=>$trap_port);
 ok(defined($s2));
-########################  5  ############################
+#########################  5  ###########################
 # test v2 trap
 undef $res;
 if (defined($s2)) {
@@ -58,7 +58,7 @@ if (defined($s2)) {
   #print("res is $res\n");
 }
 ok($res =~ /^0 but true/);
-########################  6  ############################
+##########################  6  ##########################
 # no trapoid and uptime given. Should take defaults...
 my $ret;
 if (defined($s2)) {
@@ -66,35 +66,27 @@ if (defined($s2)) {
   #print("res is $ret\n");
 }
 ok(defined($ret));
-########################  7  ############################
-# no varbind list given.
-undef $res;
-if (defined($s2)) {
-  $res = $s2->trap(trapoid=>'coldStart');
-  #print("res is $res\n");
-}
-ok(defined($res) && $res =~ /^0 but true/);
 
 #########################################################
 
 #                     v3 testing
-########################  8  ############################
+########################  7  ############################
 # Fire up a v3 trap session.
 my $s3 = new SNMP::Session(Version=>3, DestHost=> $agent_host, RemotePort=>$trap_port, SecName => $sec_name);
 ok(defined($s3));
 
-########################  9  ############################
+########################  8  ###########################
 if (defined($s3)) {
   $res = $s3->inform(uptime=>111, trapoid=>'coldStart', [[sysContact, 0, 'root at localhost'], [sysLocation, 0, 'here']] );
 }
 ok($res =~ /^0 but true/);
 
-######################## 10  ############################
+#################### 9 #####################
 # Fire up a v3 trap session.
 $s3 = new SNMP::Session(Version=>3, DestHost=> $agent_host, RemotePort=>$trap_port, SecName => $sec_name, SecLevel => authPriv, AuthPass => $auth_pass, PrivPass => $priv_pass);
 ok(defined($s3));
 
-######################## 11  ############################
+########################  10  ###########################
 undef $res;
 if (defined($s3)) {
     $res = $s3->inform(uptime=>111, trapoid=>'coldStart', [[sysContact, 0, 'root at localhost'], [sysLocation, 0, 'here']] );
diff --git a/perl/SNMP/t/snmptest.cmd b/perl/SNMP/t/snmptest.cmd
deleted file mode 100644
index 7225b7d..0000000
--- a/perl/SNMP/t/snmptest.cmd
+++ /dev/null
@@ -1,3 +0,0 @@
-SNMPD => ../../agent/snmpd
-SNMPTRAPD => ../../apps/snmptrapd
-MIBDIR => ../../mibs
diff --git a/perl/SNMP/t/startagent.pl b/perl/SNMP/t/startagent.pl
index 3e92c12..95cd38e 100644
--- a/perl/SNMP/t/startagent.pl
+++ b/perl/SNMP/t/startagent.pl
@@ -39,50 +39,43 @@ if ($^O =~ /win32/i) {
   require Win32::Process;
 }
 
-sub run_async {
-  my ($pidfile, $cmd, @args) = @_;
-  if (-r "$cmd" and -x "$cmd") {
-    if ($^O =~ /win32/i) {
-      $cmd =~ s/\//\\/g;
-      system "start \"$cmd\" /min cmd /c \"$cmd @args 2>&1\"";
-    } else {
-      system "$cmd @args 2>&1";
-    }
-    # Wait at most three seconds for the pid file to appear.
-    for ($i = 0; ($i < 3) && ! (-r "$pidfile"); ++$i) {
-      sleep 1;
-    }
-  } else {
-    warn "Couldn't run $cmd\n";
-  }
-}
-
 sub snmptest_cleanup {
-  kill_by_pid_file("t/snmpd.pid");
-  unlink("t/snmpd.pid");
-  kill_by_pid_file("t/snmptrapd.pid");
-  unlink("t/snmptrapd.pid");
-}
-
-sub kill_by_pid_file {
-  if ((-e "$_[0]") && (-r "$_[0]")) {
-    if ($^O !~ /win32/i) {
-      # Unix or Windows + Cygwin.
-      system "kill `cat $_[0]` > /dev/null 2>&1";
-    } else {
-      # Windows + MSVC or Windows + MinGW.
-      open(H, "<$_[0]");
-      my $pid = (<H>);
-      close (H);
-      if ($pid > 0) {
-        Win32::Process::KillProcess($pid, 0)
-      }
+    sleep 1; # strangely we need to wait for pid files to appear ??
+    if ((-e "t/snmpd.pid") && (-r "t/snmpd.pid")) {
+        #warn "\nStopping agents for test script $0\n";
+        # Making sure that any running agents are killed.
+	# warn "killing snmpd:", `cat t/snmpd.pid`, "\n";
+        if ($^O !~ /win32/i) {
+          system "kill `cat t/snmpd.pid` > /dev/null 2>&1";
+        }
+        else {
+          open(H, "<t/snmpd.pid");
+          my $pid = (<H>);
+          close (H);
+          if ($pid > 0) {
+            Win32::Process::KillProcess($pid, 0)
+          }
+        }
+	unlink "t/snmpd.pid";
+    }
+    if ((-e "t/snmptrapd.pid") && (-r "t/snmptrapd.pid")) {
+        # Making sure that any running agents are killed.
+	# warn "killing snmptrap:", `cat t/snmptrapd.pid`, "\n";
+        if ($^O !~ /win32/i) {
+          system "kill `cat t/snmptrapd.pid` > /dev/null 2>&1";
+        }
+        else {
+          open(H, "<t/snmptrapd.pid");
+          my $pid = (<H>);
+          close (H);
+          if ($pid > 0) {
+            Win32::Process::KillProcess($pid, 0)
+          }
+        }
+          
+	unlink "t/snmptrapd.pid";
     }
-  }
 }
-
-
-# Stop any processes started during a previous test.
 snmptest_cleanup();
 
 #Open the snmptest.cmd file and get the info
@@ -105,21 +98,48 @@ if (open(CMD, "<t/snmptest.cmd")) {
   die ("Could not start agent. Couldn't find snmptest.cmd file\n");
 }
 
-# Start snmpd and snmptrapd.
-
 #warn "\nStarting agents for test script $0\n";
 
-my $scriptname = "snmptest";
-if ($0 =~ /^t[\/\\](.*)\.t$/) {
-  $scriptname = $1;
+if ($^O !~ /win32/i) {
+  # Unix
+  if ($snmpd_cmd) {
+    if (-r $snmpd_cmd and -x $snmpd_cmd) {
+      $basedir = `pwd`;
+      chomp $basedir;
+      system "$snmpd_cmd -r -Lf t/snmptest.log -M+$mibdir -C -c $basedir/t/snmptest.conf -p $basedir/t/snmpd.pid ${agent_host}:${agent_port} > /dev/null 2>&1";
+    } else {
+      warn("Couldn't run snmpd\n");
+    }
+  }
+  if ($snmptrapd_cmd) {
+    if (-r $snmptrapd_cmd and -x $snmptrapd_cmd) {
+      system "$snmptrapd_cmd -p t/snmptrapd.pid -M+$mibdir -C -c t/snmptest.conf -C ${agent_host}:${trap_port} > /dev/null 2>&1";
+    } else {
+      warn("Couldn't run snmptrapd\n");
+    }
+  }
 }
+else {
+  # Windows
+  if ($snmpd_cmd) {
+      if (-r $snmpd_cmd) {
+        #print STDERR "start \"SNMPD\" /min \"$snmpd_cmd\" -r -Lf t/snmptest.log -C -c t/snmptest.conf -p t/snmpd.pid $agent_port > nul\n";
+      system "start \"SNMPD\" /min \"$snmpd_cmd\" -r -Lf t/snmptest.log -C -c t/snmptest.conf -p t/snmpd.pid $agent_port > nul";
+    } else {
+      warn("Couldn't run snmpd\n");
+    }
+  }
+  if ($snmptrapd_cmd) {
+    if (-r $snmptrapd_cmd) {
+      #print STDERR "start /min \"SNMPTRAPD\" \"$snmptrapd_cmd\" -Lf t/snmptrapdtest.log -p t/snmptrapd.pid -C -c t/snmptest.conf $trap_port > nul\n";
+      system "start /min \"SNMPTRAPD\" \"$snmptrapd_cmd\" -Lf t/snmptrapdtest.log -p t/snmptrapd.pid -C -c t/snmptest.conf $trap_port > nul";
+    } else {
+      warn("Couldn't run snmptrapd\n");
+    }
+  }
+  sleep 2; # Give programs time to start
 
-if ($snmpd_cmd) {
-  run_async("t/snmpd.pid", "$snmpd_cmd", "-r -d -Lf t/snmpd-$scriptname.log -M+$mibdir -C -c t/snmptest.conf -p t/snmpd.pid ${agent_host}:${agent_port} >t/snmpd-$scriptname.stderr");
-}
-if ($snmptrapd_cmd) {
-  run_async("t/snmptrapd.pid", "$snmptrapd_cmd", "-d -Lf t/snmptrapd-$scriptname.log -p t/snmptrapd.pid -M+$mibdir -C -c t/snmptest.conf -C ${agent_host}:${trap_port} >t/snmptrapd-$scriptname.stderr");
-}
+} 
 
 1;
 
diff --git a/perl/TrapReceiver/Makefile.PL b/perl/TrapReceiver/Makefile.PL
index 874ee21..5c9463a 100644
--- a/perl/TrapReceiver/Makefile.PL
+++ b/perl/TrapReceiver/Makefile.PL
@@ -57,13 +57,14 @@ sub InitMakeParams {
     }
 
     my ($snmp_lib, $snmp_llib, $sep);
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
       $opts = NetSNMPGetOpts();	
-      $Params{'DEFINE'} = "-DMSVC_PERL -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS";
+      $Params{'DEFINE'} = "-DMSVC_PERL";
       $sep = '\\';
       $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';
 
@@ -75,7 +76,7 @@ sub InitMakeParams {
       }
     
       if (lc($opts->{'insource'}) eq "true") {
-	$Params{'LIBS'} = "-L$basedir\\win32\\$lib_dir\\ -l$snmp_link_lib -l$agent_link_lib " .
+	$Params{'LIBS'} = "-L$basedir\\win32\\$lib_dir\\ -l$snmp_link_lib -l$agent_link_lib -l$helpers_link_lib " .
                 "-l$mibs_link_lib -l$trapd_link_lib ";
       }
       else {
@@ -99,7 +100,7 @@ sub InitMakeParams {
 	    $LibDirs[0] =~ s/\\$//;
 	  }
 	}
-	$Params{LIBS} = "-L$LibDir -l$snmp_link_lib -l$agent_link_lib -l$mibs_link_lib -l$trapd_link_lib ";
+	$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{'INC'} = "-I$basedir\\include\\ -I$basedir\\include\\net-snmp\\ -I$basedir\\win32\\ ";
@@ -107,7 +108,7 @@ sub InitMakeParams {
     else {
 	$opts = NetSNMPGetOpts();
 	$Params{'LDDLFLAGS'} = "$Config{lddlflags} " . `$opts->{'nsconfig'} --ldflags`;
-	$Params{'LIBS'} = '-lnetsnmptrapd ' . `$opts->{'nsconfig'} --base-agent-libs`;
+	$Params{'LIBS'} = '-lnetsnmptrapd -lnetsnmpagent -lnetsnmp';
 	chomp($Params{'LIBS'});
 	if (!$ENV{'NETSNMP_CCFLAGS'}) {
 	    $Params{'CCFLAGS'} = `$opts->{'nsconfig'} --cflags`;
@@ -118,7 +119,7 @@ sub InitMakeParams {
 	}
 
 	if (lc($opts->{'insource'}) eq "true") {
-            $Params{'LIBS'} = "-L../../apps/.libs -L../../apps -L../../agent/.libs -L../../agent -L../../snmplib/.libs -L../../snmplib " . $Params{'LIBS'};
+            $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{'CCFLAGS'} = "-I../../include " . $Params{'CCFLAGS'};
 	} else {
             $Params{'LIBS'} = `$opts->{'nsconfig'} --libdir` . " $Params{'LIBS'}";
@@ -141,7 +142,7 @@ sub NetSNMPGetOpts {
     $rootpath = "../" if (!$rootpath);
     $rootpath .= '/' if ($rootpath !~ /\/$/);
     
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
 
       # Grab command line options first.  Only used if environment variables are not set
       GetOptions("NET-SNMP-IN-SOURCE=s" => \$ret{'insource'},
@@ -224,7 +225,7 @@ sub find_files {
 
 
 sub Check_Version {
-  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} ne '')) {
+  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} eq 'msys')) {
     my $foundversion = 0;
     return if ($ENV{'NETSNMP_DONT_CHECK_VERSION'});
     open(I,"<Makefile");
diff --git a/perl/TrapReceiver/TrapReceiver.pm b/perl/TrapReceiver/TrapReceiver.pm
index 474be48..60af67f 100644
--- a/perl/TrapReceiver/TrapReceiver.pm
+++ b/perl/TrapReceiver/TrapReceiver.pm
@@ -47,7 +47,7 @@ require NetSNMP::OID;
 	NETSNMPTRAPD_PRE_HANDLER
 );
 
-$VERSION = '5.07021';
+$VERSION = '5.0403';
 
 # sub new {
 #     my $type = shift;
diff --git a/perl/TrapReceiver/TrapReceiver.xs b/perl/TrapReceiver/TrapReceiver.xs
index 531bfa4..470a38f 100644
--- a/perl/TrapReceiver/TrapReceiver.xs
+++ b/perl/TrapReceiver/TrapReceiver.xs
@@ -1,8 +1,4 @@
 /* -*- c -*- */
-#if defined(_WIN32) && !defined(_WIN32_WINNT)
-#define _WIN32_WINNT 0x501
-#endif
-
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
@@ -35,6 +31,8 @@ int   perl_trapd_handler( netsnmp_pdu           *pdu,
     SV *pcallback;
     netsnmp_variable_list *vb;
     netsnmp_oid *o;
+    SV *arg;
+    SV *rarg;
     SV **tmparray;
     int i, c = 0;
     u_char *outbuf;
@@ -44,7 +42,6 @@ int   perl_trapd_handler( netsnmp_pdu           *pdu,
     int noValuesReturned;
     int callingCFfailed = 0;
     int result = NETSNMPTRAPD_HANDLER_OK;
-    netsnmp_pdu * v2pdu = NULL;
 
     dSP;
     ENTER;
@@ -54,10 +51,8 @@ int   perl_trapd_handler( netsnmp_pdu           *pdu,
         return 0;
 
     /* nuke v1 PDUs */
-    if (pdu->command == SNMP_MSG_TRAP) {
-        v2pdu = convert_v1pdu_to_v2(pdu);
-        pdu = v2pdu;
-    }
+    if (pdu->command == SNMP_MSG_TRAP)
+        pdu = convert_v1pdu_to_v2(pdu);
 
     cb_data = handler->handler_data;
     if (!cb_data || !cb_data->perl_cb)
@@ -67,7 +62,7 @@ int   perl_trapd_handler( netsnmp_pdu           *pdu,
 
     /* get PDU related info */
     pduinfo = newHV();
-#define STOREPDU(n, v) (void)hv_store(pduinfo, n, strlen(n), v, 0)
+#define STOREPDU(n, v) hv_store(pduinfo, n, strlen(n), v, 0)
 #define STOREPDUi(n, v) STOREPDU(n, newSViv(v))
 #define STOREPDUs(n, v) STOREPDU(n, newSVpv(v, 0))
     STOREPDUi("version", pdu->version);
@@ -83,23 +78,23 @@ int   perl_trapd_handler( netsnmp_pdu           *pdu,
         STOREPDU("contextName",
                  newSVpv(pdu->contextName, pdu->contextNameLen));
         STOREPDU("contextEngineID",
-                 newSVpv((char *) pdu->contextEngineID,
+                 newSVpv(pdu->contextEngineID,
                                     pdu->contextEngineIDLen));
         STOREPDU("securityEngineID",
-                 newSVpv((char *) pdu->securityEngineID,
+                 newSVpv(pdu->securityEngineID,
                                     pdu->securityEngineIDLen));
         STOREPDU("securityName",
-                 newSVpv((char *) pdu->securityName, pdu->securityNameLen));
+                 newSVpv(pdu->securityName, pdu->securityNameLen));
     } else {
         STOREPDU("community",
-                 newSVpv((char *) pdu->community, pdu->community_len));
+                 newSVpv(pdu->community, pdu->community_len));
     }
 
     if (transport && transport->f_fmtaddr) {
         char *tstr = transport->f_fmtaddr(transport, pdu->transport_data,
                                           pdu->transport_data_length);
         STOREPDUs("receivedfrom", tstr);
-        netsnmp_free(tstr);
+        free(tstr);
     }
 
 
@@ -113,7 +108,7 @@ int   perl_trapd_handler( netsnmp_pdu           *pdu,
     for(vb = pdu->variables; vb; vb = vb->next_variable) {
 
         /* get the oid */
-        o = malloc(sizeof(netsnmp_oid));
+        o = SNMP_MALLOC_TYPEDEF(netsnmp_oid);
         o->name = o->namebuf;
         o->len = vb->name_length;
         memcpy(o->name, vb->name, vb->name_length * sizeof(oid));
@@ -121,10 +116,6 @@ int   perl_trapd_handler( netsnmp_pdu           *pdu,
 #undef CALL_EXTERNAL_OID_NEW
 
 #ifdef CALL_EXTERNAL_OID_NEW
-        {
-        SV *arg;
-        SV *rarg;
-
         PUSHMARK(sp);
 
         rarg = sv_2mortal(newSViv((IV) 0));
@@ -144,14 +135,14 @@ int   perl_trapd_handler( netsnmp_pdu           *pdu,
         tmparray[c++] = POPs;
         SvREFCNT_inc(tmparray[c-1]);
         PUTBACK;
-        }
 #else /* build it and bless ourselves */
         {
             HV *hv = newHV();
             SV *rv = newRV_noinc((SV *) hv);
             SV *rvsub = newRV_noinc((SV *) newSViv((UV) o));
+            SV *sv;
             rvsub = sv_bless(rvsub, gv_stashpv("netsnmp_oidPtr", 1));
-            (void)hv_store(hv, "oidptr", 6,  rvsub, 0);
+            hv_store(hv, "oidptr", 6,  rvsub, 0);
             rv = sv_bless(rv, gv_stashpv("NetSNMP::OID", 1));
             tmparray[c++] = rv;
         }
@@ -177,8 +168,8 @@ int   perl_trapd_handler( netsnmp_pdu           *pdu,
                                vb, 0, 0, 0);
 
         av_push(vba,tmparray[i]);
-        av_push(vba,newSVpvn((char *) outbuf, oo_len));
-        netsnmp_free(outbuf);
+        av_push(vba,newSVpvn(outbuf, oo_len));
+        free(outbuf);
         av_push(vba,newSViv(vb->type));
         av_push(varbinds, (SV *) newRV_noinc((SV *) vba));
     }
@@ -200,7 +191,7 @@ int   perl_trapd_handler( netsnmp_pdu           *pdu,
         /* reference to code */
         noValuesReturned = perl_call_sv(SvRV(pcallback), G_SCALAR);
     } else {
-        snmp_log(LOG_ERR, " tried to call a perl function but failed to understand its type: (ref = %p, svrok: %lu, SVTYPE: %lu)\n", pcallback, (unsigned long)SvROK(pcallback), (unsigned long)SvTYPE(pcallback));
+        snmp_log(LOG_ERR, " tried to call a perl function but failed to understand its type: (ref = %x, svrok: %lu, SVTYPE: %lu)\n", (uintptr_t)pcallback, SvROK(pcallback), SvTYPE(pcallback));
 	callingCFfailed = 1;
     }
 
@@ -208,23 +199,23 @@ int   perl_trapd_handler( netsnmp_pdu           *pdu,
       SPAGAIN;
 
       if ( noValuesReturned == 0 ) {
-        snmp_log(LOG_WARNING, " perl callback function %p did not return a scalar, assuming %d (NETSNMPTRAPD_HANDLER_OK)\n", pcallback, NETSNMPTRAPD_HANDLER_OK);
+        snmp_log(LOG_WARNING, " perl callback function %x did not return a scalar, assuming %d (NETSNMPTRAPD_HANDLER_OK)\n", (uintptr_t)pcallback, NETSNMPTRAPD_HANDLER_OK);
       }
       else {
 	SV *rv = POPs;
 
 	if (SvTYPE(rv) != SVt_IV) {
-	  snmp_log(LOG_WARNING, " perl callback function %p returned a scalar of type %lu instead of an integer, assuming %d (NETSNMPTRAPD_HANDLER_OK)\n", pcallback, (unsigned long)SvTYPE(rv), NETSNMPTRAPD_HANDLER_OK);
+	  snmp_log(LOG_WARNING, " perl callback function %x returned a scalar of type %d instead of an integer, assuming %d (NETSNMPTRAPD_HANDLER_OK)\n", (uintptr_t)pcallback, SvTYPE(rv), NETSNMPTRAPD_HANDLER_OK);
 	}
 	else {
 	  int rvi = (IV)SvIVx(rv);
 
 	  if ((NETSNMPTRAPD_HANDLER_OK <= rvi) && (rvi <= NETSNMPTRAPD_HANDLER_FINISH)) {
-	    snmp_log(LOG_DEBUG, " perl callback function %p returns %d\n", pcallback, rvi);
+	    snmp_log(LOG_DEBUG, " perl callback function %x returns %d\n", (uintptr_t)pcallback, rvi);
 	    result = rvi;
 	  }
 	  else {
-	    snmp_log(LOG_WARNING, " perl callback function %p returned an invalid scalar integer value (%d), assuming %d (NETSNMPTRAPD_HANDLER_OK)\n", pcallback, rvi, NETSNMPTRAPD_HANDLER_OK);
+	    snmp_log(LOG_WARNING, " perl callback function %x returned an invalid scalar integer value (%d), assuming %d (NETSNMPTRAPD_HANDLER_OK)\n", (uintptr_t)pcallback, rvi, NETSNMPTRAPD_HANDLER_OK);
 	  }
 	}
       }
@@ -251,10 +242,6 @@ int   perl_trapd_handler( netsnmp_pdu           *pdu,
 #endif    
     free(tmparray);
 
-      if (v2pdu) {
-              snmp_free_pdu(v2pdu);
-      }
-
     FREETMPS;
     LEAVE;
     return result;
@@ -273,6 +260,7 @@ trapd_register(regoid, perlcallback)
 	oid myoid[MAX_OID_LEN];
 	size_t myoid_len = MAX_OID_LEN;
         trapd_cb_data *cb_data;
+        int gotit=1;
         netsnmp_trapd_handler *handler = NULL;
     CODE:
         {
@@ -300,7 +288,7 @@ trapd_register(regoid, perlcallback)
             }
         
             if (handler) {
-                cb_data = malloc(sizeof(trapd_cb_data));
+                cb_data = SNMP_MALLOC_TYPEDEF(trapd_cb_data);
                 cb_data->perl_cb = newSVsv(perlcallback);
                 handler->handler_data = cb_data;
                 handler->authtypes = (1 << VACM_VIEW_EXECUTE);
diff --git a/perl/TrapReceiver/netsnmp-feature-definitions.h b/perl/TrapReceiver/netsnmp-feature-definitions.h
deleted file mode 100644
index bd331e3..0000000
--- a/perl/TrapReceiver/netsnmp-feature-definitions.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-netsnmp_feature_require(netsnmp_add_default_traphandler)
-netsnmp_feature_require(memory_free)
-
diff --git a/perl/TrapReceiver/ppport.h b/perl/TrapReceiver/ppport.h
index b2dbb6a..7a50852 100644
--- a/perl/TrapReceiver/ppport.h
+++ b/perl/TrapReceiver/ppport.h
@@ -217,7 +217,6 @@ __DATA__
 /* Replace: 0 */
 #endif
 
-#ifndef PERL_UNUSED_DECL
 #ifdef HASATTRIBUTE
 #  if defined(__GNUC__) && defined(__cplusplus)
 #    define PERL_UNUSED_DECL
@@ -227,7 +226,6 @@ __DATA__
 #else
 #  define PERL_UNUSED_DECL
 #endif
-#endif
 
 #ifndef dNOOP
 #  define NOOP (void)0
diff --git a/perl/agent/Makefile.PL b/perl/agent/Makefile.PL
index 4f7bee3..b4b358a 100644
--- a/perl/agent/Makefile.PL
+++ b/perl/agent/Makefile.PL
@@ -30,13 +30,14 @@ sub InitMakeParams {
     }
                                    
     my ($snmp_lib, $snmp_llib, $sep);
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
       $opts = NetSNMPGetOpts();	
-      $Params{'DEFINE'} = "-DMSVC_PERL -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS";
+      $Params{'DEFINE'} = "-DMSVC_PERL";
       $sep = '\\';
       $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") {
@@ -47,7 +48,7 @@ sub InitMakeParams {
       }
     
       if (lc($opts->{'insource'}) eq "true") {
-	$Params{'LIBS'} = "-L$basedir\\win32\\$lib_dir\\ -l$snmp_link_lib -l$agent_link_lib " .
+	$Params{'LIBS'} = "-L$basedir\\win32\\$lib_dir\\ -l$snmp_link_lib -l$agent_link_lib -l$helpers_link_lib " .
                 "-l$mibs_link_lib";
       }
       else {
@@ -71,7 +72,7 @@ sub InitMakeParams {
 	    $LibDirs[0] =~ s/\\$//;
 	  }
 	}
-	$Params{LIBS} = "-L$LibDir -l$snmp_link_lib -l$agent_link_lib -l$mibs_link_lib";
+	$Params{LIBS} = "-L$LibDir -l$snmp_link_lib -l$agent_link_lib -l$helpers_link_lib -l$mibs_link_lib";
       }
 
       $Params{'INC'} = "-I$basedir\\include\\ -I$basedir\\include\\net-snmp\\ -I$basedir\\win32\\ ";
@@ -86,7 +87,7 @@ sub InitMakeParams {
 	$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/ " . $Params{'LIBS'};
+	    $Params{'LIBS'} = "-L../../snmplib/.libs -L../../snmplib/ -L../../agent/.libs -L../../agent/ -L../../agent/helpers/.libs -L../../agent/helpers/ " . $Params{'LIBS'};
 	    $Params{'CCFLAGS'} = "-I../../include " . $Params{'CCFLAGS'};
 #	} else {
 	    $Params{'LIBS'} = `$opts->{'nsconfig'} --libdir` . $Params{'LIBS'};
@@ -108,7 +109,7 @@ sub NetSNMPGetOpts {
     $rootpath = "../" if (!$rootpath);
     $rootpath .= '/' if ($rootpath !~ /\/$/);
     
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
 
       # Grab command line options first.  Only used if environment variables are not set
       GetOptions("NET-SNMP-IN-SOURCE=s" => \$ret{'insource'},
@@ -191,7 +192,7 @@ sub find_files {
 
 
 sub Check_Version {
-  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} ne '')) {
+  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} eq 'msys')) {
     my $foundversion = 0;
     return if ($ENV{'NETSNMP_DONT_CHECK_VERSION'});
     open(I,"<Makefile");
diff --git a/perl/agent/Support/Makefile.PL b/perl/agent/Support/Makefile.PL
index 48815b6..3a4f200 100644
--- a/perl/agent/Support/Makefile.PL
+++ b/perl/agent/Support/Makefile.PL
@@ -29,9 +29,9 @@ sub InitMakeParams {
                   
     my ($snmp_lib, $snmp_llib, $sep);
 
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
       $opts = NetSNMPGetOpts();	
-      $Params{'DEFINE'} = "-DMSVC_PERL -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS";
+      $Params{'DEFINE'} = "-DMSVC_PERL";
       $sep = '\\';
       $snmp_lib_file = 'netsnmp.lib';
       $snmp_link_lib = 'netsnmp';
@@ -101,7 +101,7 @@ sub NetSNMPGetOpts {
     $rootpath = "../" if (!$rootpath);
     $rootpath .= '/' if ($rootpath !~ /\/$/);
     
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
 
       # Grab command line options first.  Only used if environment variables are not set
       GetOptions("NET-SNMP-IN-SOURCE=s" => \$ret{'insource'},
@@ -184,7 +184,7 @@ sub find_files {
 
 
 sub Check_Version {
-  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} ne '')) {
+  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} eq 'msys')) {
     my $foundversion = 0;
     return if ($ENV{'NETSNMP_DONT_CHECK_VERSION'});
     open(I,"<Makefile");
diff --git a/perl/agent/Support/Support.pm b/perl/agent/Support/Support.pm
index 79529db..e32946e 100644
--- a/perl/agent/Support/Support.pm
+++ b/perl/agent/Support/Support.pm
@@ -26,7 +26,7 @@ use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
 @ISA       = qw(Exporter getLeaf);
 @EXPORT    = qw(registerAgent getOidElement setOidElement);
 @EXPORT_OK = qw();
-$VERSION = '5.07021';
+$VERSION = '5.0403';
 
 use strict;
 use warnings;
diff --git a/perl/agent/agent.pm b/perl/agent/agent.pm
index 53c2756..82ddf20 100644
--- a/perl/agent/agent.pm
+++ b/perl/agent/agent.pm
@@ -87,7 +87,7 @@ use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK @EXPORT $VERSION $AUTOLOAD);
 	SNMP_ERR_AUTHORIZATIONERROR
 	SNMP_ERR_NOTWRITABLE
 );
-$VERSION = '5.07021';
+$VERSION = '5.0403';
 
 sub AUTOLOAD {
     # This AUTOLOAD is used to 'autoload' constants from the constant()
@@ -97,8 +97,7 @@ sub AUTOLOAD {
     my $constname;
     ($constname = $AUTOLOAD) =~ s/.*:://;
     croak "& not defined" if $constname eq 'constant';
-    my $val;
-    ($!, $val) = constant($constname);
+    my $val = constant($constname, @_ ? $_[0] : 0);
     if ($! != 0) {
 	if ($! =~ /Invalid/ || $!{EINVAL}) {
 	    $AutoLoader::AUTOLOAD = $AUTOLOAD;
@@ -132,6 +131,7 @@ sub AUTOLOAD {
 	return if ($haveinit);
 	$haveinit = 1;
 
+	snmp_enable_stderrlog();
 	my $flags = $_[0];
 	if ($flags->{'AgentX'}) {
 	    netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE, 1);
@@ -199,12 +199,6 @@ sub agent_check_and_process {
     __agent_check_and_process($blocking || 0);
 }
 
-sub uptime {
-    my $self = shift;
-    $self->maybe_init_lib();
-    return _uptime();
-}
-
 bootstrap NetSNMP::agent $VERSION;
 
 # Preloaded methods go here.
@@ -391,8 +385,6 @@ functional "enough" at this point in time.
 
 	$mode = $request->getMode();
 
-=head2 $registration_info object functions
-
     getRootOID ()
 	Returns a NetSNMP::OID object that describes the registration
 	point that the handler is getting called for (in case you
@@ -496,20 +488,6 @@ functional "enough" at this point in time.
 
 	$request->setRepeat(5);
 
-    getSourceIp ()
-
-	Gets the IPv4 address of the device making the request to the handler.
-
-	use Socket;
-	print "Source: ", inet_ntoa($request->getSourceIp()), "\n";
-
-    getDestIp ()
-
-	Gets the IPv4 address of the destination that the request was sent to.
-
-	use Socket;
-	print "Destination: ", inet_ntoa($request->getDestIp()), "\n";
-
 =head1 MODES
 
 	MODE_GET
diff --git a/perl/agent/agent.xs b/perl/agent/agent.xs
index c7b5d9a..0fa89f4 100644
--- a/perl/agent/agent.xs
+++ b/perl/agent/agent.xs
@@ -1,8 +1,4 @@
 /* -*- C -*- */
-#if defined(_WIN32) && !defined(_WIN32_WINNT)
-#define _WIN32_WINNT 0x501
-#endif
-
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
@@ -19,12 +15,6 @@
 
 typedef netsnmp_handler_registration *NetSNMP__agent__netsnmp_handler_registration;
 
-/*
- * 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;
 } handler_cb_data;
@@ -35,134 +25,356 @@ typedef struct netsnmp_oid_s {
     oid                  namebuf[ MAX_OID_LEN ];
 } netsnmp_oid;
 
-#define TEST_CONSTANT(value, name, C)           \
-    if (strEQ(name, #C)) {                      \
-        *value = C;                             \
-        return 0;                               \
-    }
+static int have_done_agent = 0;
+static int have_done_lib = 0;
 
-static int constant_MODE_G(double *value, const char *name, const int len)
+static int
+not_here(char *s)
 {
-    switch (len >= 8 ? name[8] : -1) {
+    croak("%s not implemented on this architecture", s);
+    return -1;
+}
+
+static double
+constant_MODE_G(char *name, int len, int arg)
+{
+    if (6 + 2 > len ) {
+	errno = EINVAL;
+	return 0;
+    }
+    switch (name[6 + 2]) {
     case '\0':
-        TEST_CONSTANT(value, name, MODE_GET);
-        break;
+	if (strEQ(name + 6, "ET")) {	/* MODE_G removed */
+#ifdef MODE_GET
+	    return MODE_GET;
+#else
+	    goto not_there;
+#endif
+	}
     case 'B':
-        TEST_CONSTANT(value, name, MODE_GETBULK);
-        break;
+	if (strEQ(name + 6, "ETBULK")) {	/* MODE_G removed */
+#ifdef MODE_GETBULK
+	    return MODE_GETBULK;
+#else
+	    goto not_there;
+#endif
+	}
     case 'N':
-        TEST_CONSTANT(value, name, MODE_GETNEXT);
-        break;
+	if (strEQ(name + 6, "ETNEXT")) {	/* MODE_G removed */
+#ifdef MODE_GETNEXT
+	    return MODE_GETNEXT;
+#else
+	    goto not_there;
+#endif
+	}
     }
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
+
+not_there:
+    errno = ENOENT;
+    return 0;
 }
 
-static int constant_MODE_SET_R(double *value, const char *name, const int len)
+static double
+constant_MODE_SET_R(char *name, int len, int arg)
 {
-    switch (len >= 16 ? name[16] : -1) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
+    if (10 + 6 >= len ) {
+	errno = EINVAL;
+	return 0;
+    }
+    switch (name[10 + 6]) {
     case '1':
-	TEST_CONSTANT(value, name, MODE_SET_RESERVE1);
-        break;
+	if (strEQ(name + 10, "ESERVE1")) {	/* MODE_SET_R removed */
+#ifdef MODE_SET_RESERVE1
+	    return MODE_SET_RESERVE1;
+#else
+	    goto not_there;
+#endif
+	}
     case '2':
-	TEST_CONSTANT(value, name, MODE_SET_RESERVE2);
-        break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
+	if (strEQ(name + 10, "ESERVE2")) {	/* MODE_SET_R removed */
+#ifdef MODE_SET_RESERVE2
+	    return MODE_SET_RESERVE2;
+#else
+	    goto not_there;
+#endif
+	}
     }
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
+
+not_there:
+    errno = ENOENT;
+    return 0;
 }
 
-static int constant_SNMP_ERR(double *value, char *name, int len)
+static double
+constant_SNMP_ERR(char *name, int len, int arg)
 {
-    switch (len >= 9 ? name[9] : -1) {
+    if (9 + 1 >= len ) {
+	errno = EINVAL;
+	return 0;
+    }
+    switch (name[9]) {
+
     case 'A':
-        TEST_CONSTANT(value, name, SNMP_ERR_AUTHORIZATIONERROR);
+	if (strEQ(name + 10, "UTHORIZATIONERROR")) {	/* SNMP_ERR_A removed */
+#ifdef SNMP_ERR_AUTHORIZATIONERROR
+	    return SNMP_ERR_AUTHORIZATIONERROR;
+#else
+	    goto not_there;
+#endif
+	}
         break;
+
     case 'B':
-        TEST_CONSTANT(value, name, SNMP_ERR_BADVALUE);
+	if (strEQ(name + 10, "ADVALUE")) {	/* SNMP_ERR_B removed */
+#ifdef SNMP_ERR_BADVALUE
+	    return SNMP_ERR_BADVALUE;
+#else
+	    goto not_there;
+#endif
+	}
         break;
+
     case 'C':
-        TEST_CONSTANT(value, name, SNMP_ERR_COMMITFAILED);
+	if (strEQ(name + 10, "OMMITFAILED")) {	/* SNMP_ERR_C removed */
+#ifdef SNMP_ERR_COMMITFAILED
+	    return SNMP_ERR_COMMITFAILED;
+#else
+	    goto not_there;
+#endif
+	}
         break;
+
     case 'G':
-	TEST_CONSTANT(value, name, SNMP_ERR_GENERR);
+	if (strEQ(name + 10, "ENERR")) {	/* SNMP_ERR_G removed */
+#ifdef SNMP_ERR_GENERR
+	    return SNMP_ERR_GENERR;
+#else
+	    goto not_there;
+#endif
+	}
         break;
+
     case 'I':
-	TEST_CONSTANT(value, name, SNMP_ERR_INCONSISTENTVALUE);
+	if (strEQ(name + 10, "NCONSISTENTVALUE")) {	/* SNMP_ERR_I removed */
+#ifdef SNMP_ERR_INCONSISTENTVALUE
+	    return SNMP_ERR_INCONSISTENTVALUE;
+#else
+	    goto not_there;
+#endif
+	}
         break;
+
     case 'N':
-        TEST_CONSTANT(value, name, SNMP_ERR_NOACCESS);
-        TEST_CONSTANT(value, name, SNMP_ERR_NOCREATION);
-        TEST_CONSTANT(value, name, SNMP_ERR_NOERROR);
-        TEST_CONSTANT(value, name, SNMP_ERR_NOSUCHNAME);
-        TEST_CONSTANT(value, name, SNMP_ERR_NOTWRITABLE);
+	if (strEQ(name + 10, "OACCESS")) {	/* SNMP_ERR_N removed */
+#ifdef SNMP_ERR_NOACCESS
+	    return SNMP_ERR_NOACCESS;
+#else
+	    goto not_there;
+#endif
+	}
+
+	if (strEQ(name + 10, "OCREATION")) {	/* SNMP_ERR_N removed */
+#ifdef SNMP_ERR_NOCREATION
+	    return SNMP_ERR_NOCREATION;
+#else
+	    goto not_there;
+#endif
+	}
+
+	if (strEQ(name + 10, "OERROR")) {	/* SNMP_ERR_N removed */
+#ifdef SNMP_ERR_NOERROR
+	    return SNMP_ERR_NOERROR;
+#else
+	    goto not_there;
+#endif
+	}
+
+	if (strEQ(name + 10, "OSUCHNAME")) {	/* SNMP_ERR_N removed */
+#ifdef SNMP_ERR_NOSUCHNAME
+	    return SNMP_ERR_NOSUCHNAME;
+#else
+	    goto not_there;
+#endif
+	}
+
+	if (strEQ(name + 10, "OTWRITABLE")) {	/* SNMP_ERR_N removed */
+#ifdef SNMP_ERR_NOTWRITABLE
+	    return SNMP_ERR_NOTWRITABLE;
+#else
+	    goto not_there;
+#endif
+	}
         break;
+
     case 'R':
-        TEST_CONSTANT(value, name, SNMP_ERR_READONLY);
-        TEST_CONSTANT(value, name, SNMP_ERR_RESOURCEUNAVAILABLE);
+	if (strEQ(name + 10, "EADONLY")) {	/* SNMP_ERR_R removed */
+#ifdef SNMP_ERR_READONLY
+	    return SNMP_ERR_READONLY;
+#else
+	    goto not_there;
+#endif
+	}
+
+	if (strEQ(name + 10, "ESOURCEUNAVAILABLE")) {	/* SNMP_ERR_R removed */
+#ifdef SNMP_ERR_RESOURCEUNAVAILABLE
+	    return SNMP_ERR_RESOURCEUNAVAILABLE;
+#else
+	    goto not_there;
+#endif
+	}
         break;
+
     case 'T':
-        TEST_CONSTANT(value, name, SNMP_ERR_TOOBIG);
+	if (strEQ(name + 10, "OOBIG")) {	/* SNMP_ERR_T removed */
+#ifdef SNMP_ERR_TOOBIG
+	    return SNMP_ERR_TOOBIG;
+#else
+	    goto not_there;
+#endif
+	}
         break;
+
     case 'U':
-        TEST_CONSTANT(value, name, SNMP_ERR_UNDOFAILED);
+	if (strEQ(name + 10, "NDOFAILED")) {	/* SNMP_ERR_U removed */
+#ifdef SNMP_ERR_UNDOFAILED
+	    return SNMP_ERR_UNDOFAILED;
+#else
+	    goto not_there;
+#endif
+	}
         break;
+
     case 'W':
-        TEST_CONSTANT(value, name, SNMP_ERR_WRONGENCODING);
-        TEST_CONSTANT(value, name, SNMP_ERR_WRONGLENGTH);
-        TEST_CONSTANT(value, name, SNMP_ERR_WRONGTYPE);
-        TEST_CONSTANT(value, name, SNMP_ERR_WRONGVALUE);
-        break;
+	if (strEQ(name + 10, "RONGENCODING")) {	/* SNMP_ERR_W removed */
+#ifdef SNMP_ERR_WRONGENCODING
+	    return SNMP_ERR_WRONGENCODING;
+#else
+	    goto not_there;
+#endif
+	}
+
+	if (strEQ(name + 10, "RONGLENGTH")) {	/* SNMP_ERR_W removed */
+#ifdef SNMP_ERR_WRONGLENGTH
+	    return SNMP_ERR_WRONGLENGTH;
+#else
+	    goto not_there;
+#endif
+	}
+
+	if (strEQ(name + 10, "RONGTYPE")) {	/* SNMP_ERR_W removed */
+#ifdef SNMP_ERR_WRONGTYPE
+	    return SNMP_ERR_WRONGTYPE;
+#else
+	    goto not_there;
+#endif
+	}
+
+	if (strEQ(name + 10, "RONGVALUE")) {	/* SNMP_ERR_W removed */
+#ifdef SNMP_ERR_WRONGVALUE
+	    return SNMP_ERR_WRONGVALUE;
+#else
+	    goto not_there;
+#endif
+	}
     }
-    return EINVAL;
+not_there:
+    errno = ENOENT;
+    return 0;
 }
     
-static int constant_MODE_S(double *value, char *name, int len)
+static double
+constant_MODE_S(char *name, int len, int arg)
 {
-    if (!strnEQ(name + 6, "ET_", 3))
-        return EINVAL;
-
-    switch (len >= 9 ? name[9] : -1) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
+    if (6 + 3 >= len ) {
+	errno = EINVAL;
+	return 0;
+    }
+    switch (name[6 + 3]) {
     case 'A':
-        TEST_CONSTANT(value, name, MODE_SET_ACTION);
-        break;
+	if (strEQ(name + 6, "ET_ACTION")) {	/* MODE_S removed */
+#ifdef MODE_SET_ACTION
+	    return MODE_SET_ACTION;
+#else
+	    goto not_there;
+#endif
+	}
     case 'B':
-        TEST_CONSTANT(value, name, MODE_SET_BEGIN);
-        break;
+	if (strEQ(name + 6, "ET_BEGIN")) {	/* MODE_S removed */
+#ifdef MODE_SET_BEGIN
+	    return MODE_SET_BEGIN;
+#else
+	    goto not_there;
+#endif
+	}
     case 'C':
-        TEST_CONSTANT(value, name, MODE_SET_COMMIT);
-        break;
+	if (strEQ(name + 6, "ET_COMMIT")) {	/* MODE_S removed */
+#ifdef MODE_SET_COMMIT
+	    return MODE_SET_COMMIT;
+#else
+	    goto not_there;
+#endif
+	}
     case 'F':
-        TEST_CONSTANT(value, name, MODE_SET_FREE);
-        break;
-    case 'U':
-        TEST_CONSTANT(value, name, MODE_SET_UNDO);
-        break;
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
+	if (strEQ(name + 6, "ET_FREE")) {	/* MODE_S removed */
+#ifdef MODE_SET_FREE
+	    return MODE_SET_FREE;
+#else
+	    goto not_there;
+#endif
+	}
     case 'R':
-        return constant_MODE_SET_R(value, name, len);
+	if (!strnEQ(name + 6,"ET_", 3))
+	    break;
+	return constant_MODE_SET_R(name, len, arg);
+    case 'U':
+	if (strEQ(name + 6, "ET_UNDO")) {	/* MODE_S removed */
+#ifdef MODE_SET_UNDO
+	    return MODE_SET_UNDO;
+#else
+	    goto not_there;
+#endif
+	}
     }
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
+
+not_there:
+    errno = ENOENT;
+    return 0;
 }
 
-static int constant(double *value, char *name, int len)
+static double
+constant(char *name, int len, int arg)
 {
-    switch (len >= 5 ? name[5] : -1) {
+    errno = 0;
+    if (0 + 5 >= len ) {
+	errno = EINVAL;
+	return 0;
+    }
+    switch (name[0 + 5]) {
     case 'G':
-	if (strnEQ(name + 0,"MODE_", 5))
-            return constant_MODE_G(value, name, len);
-        break;
+	if (!strnEQ(name + 0,"MODE_", 5))
+	    break;
+	return constant_MODE_G(name, len, arg);
     case 'S':
-	if (strnEQ(name + 0,"MODE_", 5))
-            return constant_MODE_S(value, name, len);
-        break;
+	if (!strnEQ(name + 0,"MODE_", 5))
+	    break;
+	return constant_MODE_S(name, len, arg);
     case 'E':
-	if (strnEQ(name + 0,"SNMP_ERR_", 9))
-            return constant_SNMP_ERR(value, name, len);
-        break;
+	if (!strnEQ(name + 0,"SNMP_ERR_", 9))
+	    break;
+	return constant_SNMP_ERR(name, len, arg);
     }
-    return EINVAL;
+    errno = EINVAL;
+    return 0;
+
+not_there:
+    errno = ENOENT;
+    return 0;
 }
 
 int
@@ -171,6 +383,7 @@ handler_wrapper(netsnmp_mib_handler          *handler,
                 netsnmp_agent_request_info   *reqinfo,
                 netsnmp_request_info         *requests) 
 {
+    u_long intret = 5;
     handler_cb_data *cb_data = (handler_cb_data *) handler->myvoid;
     SV *cb;
 
@@ -214,34 +427,24 @@ handler_wrapper(netsnmp_mib_handler          *handler,
 
 MODULE = NetSNMP::agent		PACKAGE = NetSNMP::agent		
 
-void
-constant(sv)
+double
+constant(sv,arg)
     PREINIT:
 	STRLEN		len;
     INPUT:
 	SV *		sv
 	char *		s = SvPV(sv, len);
-    INIT:
-        int status;
-        double value;
-    PPCODE:
-        value = 0;
-        status = constant(&value, s, len);
-        XPUSHs(sv_2mortal(newSVuv(status)));
-        XPUSHs(sv_2mortal(newSVnv(value)));
-
-int
-__agent_check_and_process(block = 1)
-	int block;
+	int		arg
     CODE:
-	RETVAL = agent_check_and_process(block);
+	RETVAL = constant(s,len,arg);
     OUTPUT:
 	RETVAL
 
 int
-_uptime()
+__agent_check_and_process(block = 1)
+	int block;
     CODE:
-        RETVAL = netsnmp_get_agent_uptime();
+	RETVAL = agent_check_and_process(block);
     OUTPUT:
 	RETVAL
 
@@ -255,11 +458,6 @@ init_mib()
 int
 init_agent(name)
         const char *name;
-    CODE:
-        SOCK_STARTUP;
-        RETVAL = init_agent(name);
-    OUTPUT:
-        RETVAL
 
 void
 init_snmp(name)
@@ -278,8 +476,6 @@ na_shutdown(me)
     SV *me;
     CODE:
     {
-        if (0)
-            printf("me = %p\n", me);
         snmp_shutdown("perl");
     }
 
@@ -292,10 +488,8 @@ na_errlog(me,value)
         char * stringptr;
     CODE:
     {
-        if (0)
-            printf("me = %p\n", me);
         stringptr = SvPV(value, stringlen);
-        snmp_log(LOG_ERR, "%s", stringptr );
+        snmp_log(LOG_ERR, stringptr );
     }
 
 
@@ -335,14 +529,7 @@ nsahr_new(name, regoid, perlcallback)
 void
 nsahr_DESTROY(reginfo)
 	netsnmp_handler_registration *reginfo
-    PREINIT:
-        handler_cb_data *cb_data;
     CODE:
-        if (reginfo && reginfo->handler && reginfo->handler->myvoid) {
-	    cb_data = (handler_cb_data *) (reginfo->handler->myvoid);
-	    SvREFCNT_dec(cb_data->perl_cb);
-	    free(cb_data);
-        }
 	netsnmp_handler_registration_free(reginfo);
 
 int
@@ -350,27 +537,13 @@ nsahr_register(me)
         SV *me;
         PREINIT:
         netsnmp_handler_registration *reginfo;
-        handler_cb_data *cb_data = NULL;
         CODE:
             {
                 reginfo = (netsnmp_handler_registration *) SvIV(SvRV(me));
-                if (reginfo && reginfo->handler && reginfo->handler->myvoid)
-                    cb_data = (handler_cb_data *) (reginfo->handler->myvoid);
                 RETVAL = netsnmp_register_handler(reginfo);
                 if (!RETVAL) {
                     /* the agent now has a "reference" to this reg pointer */
                     SvREFCNT_inc(me);
-                } else {
-                    /*
-                     * The reginfo was freed by netsnmp_register_handler,
-                     * don't touch it in nsahr_DESTROY!
-                     */
-                    sv_setiv(SvRV(me), 0);
-                    if (cb_data) {
-                        /* And just free the callback. */
-                        SvREFCNT_dec(cb_data->perl_cb);
-                        free(cb_data);
-                    }
                 }
             }
     OUTPUT:
@@ -393,7 +566,7 @@ nsahr_getRootOID(me)
         PUSHMARK(SP);
         reginfo = (netsnmp_handler_registration *) SvIV(SvRV(me));
 
-        o = malloc(sizeof(netsnmp_oid));
+        o = SNMP_MALLOC_TYPEDEF(netsnmp_oid);
         o->name = o->namebuf;
         o->len = reginfo->rootoid_len;
         memcpy(o->name, reginfo->rootoid,
@@ -432,7 +605,7 @@ getOID(me)
         PUSHMARK(SP);
         request = (netsnmp_request_info *) SvIV(SvRV(me));
 
-        o = malloc(sizeof(netsnmp_oid));
+        o = SNMP_MALLOC_TYPEDEF(netsnmp_oid);
         o->name = o->namebuf;
         o->len = request->requestvb->name_length;
         memcpy(o->name, request->requestvb->name,
@@ -462,7 +635,7 @@ nari_getOIDptr(me)
         netsnmp_request_info *request;
         CODE:
         request = (netsnmp_request_info *) SvIV(SvRV(me));
-        RETVAL = malloc(sizeof(netsnmp_oid));
+        RETVAL = SNMP_MALLOC_TYPEDEF(netsnmp_oid);
         RETVAL->name = RETVAL->namebuf;
         RETVAL->len = request->requestvb->name_length;
         memcpy(RETVAL->name, request->requestvb->name,
@@ -492,19 +665,19 @@ nari_setType(me, newvalue)
         request = (netsnmp_request_info *) SvIV(SvRV(me));
         request->requestvb->type=newvalue;
 
-SV *
+char *
 nari_getValue(me)
         SV *me;
     PREINIT:
-        char *outbuf = NULL;
-        size_t ob_len = 0, oo_len = 0;
+        u_char buf[1024] ;
+        u_char *oidbuf = buf ;
+        size_t ob_len = 1024, oo_len = 0;
         netsnmp_request_info *request;
     CODE:
         request = (netsnmp_request_info *) SvIV(SvRV(me));
-	sprint_realloc_by_type((u_char **) &outbuf, &ob_len, &oo_len, 1,
+	sprint_realloc_by_type(&oidbuf, &ob_len, &oo_len, 0,
                                request->requestvb, 0, 0, 0);
-        RETVAL = newSVpv(outbuf, 0);
-	netsnmp_free(outbuf);
+        RETVAL = oidbuf; /* mem leak */
     OUTPUT:
         RETVAL
 
@@ -598,6 +771,8 @@ nari_setValue(me, type, value)
         int type;
         SV *value;
     PREINIT:
+        u_char *oidbuf = NULL;
+        size_t ob_len = 0, oo_len = 0;
         netsnmp_request_info *request;
         u_long utmp;
         long ltmp;
@@ -649,8 +824,8 @@ nari_setValue(me, type, value)
 		  break;
 	      }
 	      else {
-		snmp_log(LOG_ERR, "Non-integer value passed to setValue with ASN_INTEGER: type was %lu\n",
-			(unsigned long)SvTYPE(value));
+		snmp_log(LOG_ERR, "Non-integer value passed to setValue with ASN_INTEGER: type was %d\n",
+			SvTYPE(value));
 		RETVAL = 0;
 		break;
 	      }
@@ -685,8 +860,8 @@ nari_setValue(me, type, value)
 		  break;
 	      }
 	      else {
-		snmp_log(LOG_ERR, "Non-unsigned-integer value passed to setValue with ASN_UNSIGNED/ASN_COUNTER/ASN_TIMETICKS: type was %lu\n",
-			(unsigned long)SvTYPE(value));
+		snmp_log(LOG_ERR, "Non-unsigned-integer value passed to setValue with ASN_UNSIGNED/ASN_COUNTER/ASN_TIMETICKS: type was %d\n",
+			SvTYPE(value));
 		RETVAL = 0;
 		break;
 	      }
@@ -696,40 +871,47 @@ nari_setValue(me, type, value)
 	      if ((SvTYPE(value) == SVt_IV) || (SvTYPE(value) == SVt_PVMG)) {
 		  /* Good - got a real one (or a blessed scalar which we have to hope will turn out OK) */
 		  ulltmp = SvIV(value);
+		  c64.high = (uint32_t)(ulltmp >> 32);
+		  c64.low  = (uint32_t)ulltmp;
+                  snmp_set_var_typed_value(request->requestvb, (u_char)type,
+                                       (u_char *) &c64, sizeof(struct counter64));
 		  RETVAL = 1;
+		  break;
 	      }
 	      else if (SvPOKp(value)) {
 	          /* Might be OK - got a string, so try to convert it, allowing base 10, octal, and hex forms */
 	          stringptr = SvPV(value, stringlen);
-	          errno = 0;
+#if defined(WIN32)
+		  ulltmp = strtoul(  stringptr, NULL, 0 );
+#else
 		  ulltmp = strtoull( stringptr, NULL, 0 );
-		  if (errno != 0) {
-		      snmp_log(LOG_ERR, "Could not convert string to number in setValue: '%s'", stringptr);
-		      RETVAL = 0;
-		  } else
+#endif
+		  if (errno == EINVAL) {
+		  	snmp_log(LOG_ERR, "Could not convert string to number in setValue: '%s'", stringptr);
+			RETVAL = 0;
+			break;
+		  }
 
-		      RETVAL = 1;
+		  c64.high = (uint32_t)(ulltmp >> 32);
+		  c64.low  = (uint32_t)ulltmp;
+                  snmp_set_var_typed_value(request->requestvb, (u_char)type,
+                                       (u_char *) &c64, sizeof(struct counter64));
+		  RETVAL = 1;
+		  break;
 	      }
 	      else {
-		snmp_log(LOG_ERR, "Non-unsigned-integer value passed to setValue with ASN_COUNTER64: type was %lu\n",
-			(unsigned long)SvTYPE(value));
+		snmp_log(LOG_ERR, "Non-unsigned-integer value passed to setValue with ASN_COUNTER64: type was %d\n",
+			SvTYPE(value));
 		RETVAL = 0;
+		break;
 	      }
-	      if (RETVAL) {
-		  c64.high = (uint32_t)(ulltmp >> 32);
-		  c64.low  = (uint32_t)(ulltmp >> 0);
-		  snmp_set_var_typed_value(request->requestvb, (u_char)type,
-				     (u_char *) &c64, sizeof(struct counter64));
-	      }
-	      break;
 
           case ASN_OCTET_STR:
           case ASN_BIT_STR:
-          case ASN_OPAQUE:
 	      /* Check that we have been passed something with a string value (or a blessed scalar) */
 	      if (!SvPOKp(value) && (SvTYPE(value) != SVt_PVMG)) {
-		snmp_log(LOG_ERR, "Non-string value passed to setValue with ASN_OCTET_STR/ASN_BIT_STR: type was %lu\n",
-			(unsigned long)SvTYPE(value));
+		snmp_log(LOG_ERR, "Non-string value passed to setValue with ASN_OCTET_STR/ASN_BIT_STR: type was %d\n",
+			SvTYPE(value));
 		RETVAL = 0;
 		break;
 	      }
@@ -755,8 +937,8 @@ nari_setValue(me, type, value)
 
 	      /* Check that we have been passed something with a string value (or a blessed scalar) */
 	      if (!SvPOKp(value) && (SvTYPE(value) != SVt_PVMG)) {
-		snmp_log(LOG_ERR, "Non-string value passed to setValue with ASN_IPADDRESS: type was %lu\n",
-			(unsigned long)SvTYPE(value));
+		snmp_log(LOG_ERR, "Non-string value passed to setValue with ASN_IPADDRESS: type was %d\n",
+			SvTYPE(value));
 		RETVAL = 0;
 		break;
 	      }
@@ -769,7 +951,7 @@ nari_setValue(me, type, value)
 
 	      # Sanity check on address length
 	      if ((stringlen != 4) && (stringlen != 16)) {
-	      		snmp_log(LOG_ERR, "IP address of %" NETSNMP_PRIz "d bytes passed to setValue with ASN_IPADDRESS\n", stringlen);
+	      		snmp_log(LOG_ERR, "IP address of %d bytes passed to setValue with ASN_IPADDRESS\n", stringlen);
 			RETVAL = 0;
 			break;
 	      }
@@ -782,8 +964,8 @@ nari_setValue(me, type, value)
           case ASN_OBJECT_ID:
 	      /* Check that we have been passed something with a string value (or a blessed scalar) */
 	      if (!SvPOKp(value) && (SvTYPE(value) != SVt_PVMG)) {
-		snmp_log(LOG_ERR, "Non-string value passed to setValue with ASN_OBJECT_ID: type was %lu\n",
-			(unsigned long)SvTYPE(value));
+		snmp_log(LOG_ERR, "Non-string value passed to setValue with ASN_OBJECT_ID: type was %d\n",
+			SvTYPE(value));
 		RETVAL = 0;
 		break;
 	      }
@@ -842,6 +1024,8 @@ nari_setError(me, rinfo, ecode)
         SV *rinfo;
         int ecode;
     PREINIT:
+	oid myoid[MAX_OID_LEN];
+	size_t myoid_len = MAX_OID_LEN;
         netsnmp_request_info *request;
         netsnmp_agent_request_info *reqinfo;
     CODE:
@@ -873,48 +1057,6 @@ nari_next(me)
 
 MODULE = NetSNMP::agent  PACKAGE = NetSNMP::agent::netsnmp_agent_request_info PREFIX = narqi_
 
-
-SV *
-narqi_getSourceIp(me)
-        SV *me;
-    PREINIT:
-        netsnmp_agent_request_info *reqinfo;
-	netsnmp_udp_addr_pair *addr_pair;
-	struct sockaddr_in *from;
-        SV *rarg;
-
-    CODE:
-        reqinfo = (netsnmp_agent_request_info *) SvIV(SvRV(me));
-
-        /* XXX: transport-specific: UDP/IPv4 only! */
-	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;
-    OUTPUT:
-        RETVAL
-
-
-SV *
-narqi_getDestIp(me)
-        SV *me;
-    PREINIT:
-        netsnmp_agent_request_info *reqinfo;
-	netsnmp_udp_addr_pair *addr_pair;
-	struct in_addr *to;
-        SV *rarg;
-
-    CODE:
-        reqinfo = (netsnmp_agent_request_info *) SvIV(SvRV(me));
-
-        /* XXX: transport-specific: UDP/IPv4 only! */
-	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;
-    OUTPUT:
-        RETVAL
-
 int
 narqi_getMode(me)
         SV *me;
diff --git a/perl/agent/default_store/Makefile.PL b/perl/agent/default_store/Makefile.PL
index ed6483a..67d5ff0 100644
--- a/perl/agent/default_store/Makefile.PL
+++ b/perl/agent/default_store/Makefile.PL
@@ -24,9 +24,9 @@ sub InitMakeParams {
     }
                                    
     my ($snmp_lib, $snmp_llib, $sep);
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
       $opts = NetSNMPGetOpts();	
-      $Params{'DEFINE'} = "-DMSVC_PERL -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS";
+      $Params{'DEFINE'} = "-DMSVC_PERL";
       $sep = '\\';
       $snmp_lib_file = 'netsnmp.lib';
       $snmp_link_lib = 'netsnmp';
@@ -96,7 +96,7 @@ sub NetSNMPGetOpts {
     $rootpath = "../" if (!$rootpath);
     $rootpath .= '/' if ($rootpath !~ /\/$/);
     
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
 
       # Grab command line options first.  Only used if environment variables are not set
       GetOptions("NET-SNMP-IN-SOURCE=s" => \$ret{'insource'},
@@ -179,7 +179,7 @@ sub find_files {
 
 
 sub Check_Version {
-  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} ne '')) {
+  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} eq 'msys')) {
     my $foundversion = 0;
     return if ($ENV{'NETSNMP_DONT_CHECK_VERSION'});
     open(I,"<Makefile");
diff --git a/perl/agent/default_store/default_store.pm b/perl/agent/default_store/default_store.pm
index afca604..addd24d 100644
--- a/perl/agent/default_store/default_store.pm
+++ b/perl/agent/default_store/default_store.pm
@@ -96,7 +96,7 @@ use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK @EXPORT $VERSION $AUTOLOAD);
 				   NETSNMP_DS_AGENT_MAX_GETBULKREPEATS
 				   NETSNMP_DS_AGENT_MAX_GETBULKRESPONSES
 );
-$VERSION = '5.07021';
+$VERSION = '5.0403';
 
 sub AUTOLOAD {
     # This AUTOLOAD is used to 'autoload' constants from the constant()
@@ -219,6 +219,43 @@ None by default.
 				   NETSNMP_DS_AGENT_CACHE_TIMEOUT
 				   NETSNMP_DS_AGENT_INTERNAL_VERSION
 				   NETSNMP_DS_AGENT_INTERNAL_SECLEVEL
+				   NETSNMP_DS_AGENT_MAX_GETBULKREPEATS
+				   NETSNMP_DS_AGENT_MAX_GETBULKRESPONSES
+
+
+				   NETSNMP_DS_AGENT_VERBOSE
+				   NETSNMP_DS_AGENT_ROLE
+				   NETSNMP_DS_AGENT_NO_ROOT_ACCESS
+				   NETSNMP_DS_AGENT_AGENTX_MASTER
+				   NETSNMP_DS_AGENT_QUIT_IMMEDIATELY
+				   NETSNMP_DS_AGENT_DISABLE_PERL
+				   NETSNMP_DS_AGENT_NO_CONNECTION_WARNINGS
+				   NETSNMP_DS_AGENT_LEAVE_PIDFILE
+				   NETSNMP_DS_AGENT_NO_CACHING
+				   NETSNMP_DS_AGENT_STRICT_DISMAN
+				   NETSNMP_DS_AGENT_DONT_RETAIN_NOTIFICATIONS
+				   NETSNMP_DS_AGENT_DONT_LOG_TCPWRAPPERS_CONNECTS
+				   NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES
+				   NETSNMP_DS_AGENT_PROGNAME
+				   NETSNMP_DS_AGENT_X_SOCKET
+				   NETSNMP_DS_AGENT_PORTS
+				   NETSNMP_DS_AGENT_INTERNAL_SECNAME
+				   NETSNMP_DS_AGENT_PERL_INIT_FILE
+				   NETSNMP_DS_SMUX_SOCKET
+				   NETSNMP_DS_NOTIF_LOG_CTX
+				   NETSNMP_DS_AGENT_FLAGS
+				   NETSNMP_DS_AGENT_USERID
+				   NETSNMP_DS_AGENT_GROUPID
+				   NETSNMP_DS_AGENT_AGENTX_PING_INTERVAL
+				   NETSNMP_DS_AGENT_AGENTX_TIMEOUT
+				   NETSNMP_DS_AGENT_AGENTX_RETRIES
+				   NETSNMP_DS_AGENT_X_SOCK_PERM
+				   NETSNMP_DS_AGENT_X_DIR_PERM
+				   NETSNMP_DS_AGENT_X_SOCK_USER
+				   NETSNMP_DS_AGENT_X_SOCK_GROUP
+				   NETSNMP_DS_AGENT_CACHE_TIMEOUT
+				   NETSNMP_DS_AGENT_INTERNAL_VERSION
+				   NETSNMP_DS_AGENT_INTERNAL_SECLEVEL
 
 
 				   NETSNMP_DS_AGENT_VERBOSE
diff --git a/perl/agent/default_store/default_store.xs b/perl/agent/default_store/default_store.xs
index bff1485..70d5b96 100644
--- a/perl/agent/default_store/default_store.xs
+++ b/perl/agent/default_store/default_store.xs
@@ -1,12 +1,7 @@
-#if defined(_WIN32) && !defined(_WIN32_WINNT)
-#define _WIN32_WINNT 0x501
-#endif
-
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
 
-#include <net-snmp/net-snmp-config.h>
 #include <net-snmp/agent/ds_agent.h>
 
 
@@ -622,7 +617,7 @@ constant(sv)
 #endif
 	STRLEN		len;
         int		type;
-	IV		iv = 0;
+	IV		iv;
 	/* NV		nv;	Uncomment this if you need to return NVs */
 	/* const char	*pv;	Uncomment this if you need to return PVs */
     INPUT:
diff --git a/perl/agent/netsnmp-feature-definitions.h b/perl/agent/netsnmp-feature-definitions.h
deleted file mode 100644
index 4f2630e..0000000
--- a/perl/agent/netsnmp-feature-definitions.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-netsnmp_feature_require(agent_check_and_process)
-netsnmp_feature_require(snmp_enable_stderrlog)
-
diff --git a/perl/agent/test.pl b/perl/agent/test.pl
index 88cba56..6189515 100644
--- a/perl/agent/test.pl
+++ b/perl/agent/test.pl
@@ -9,7 +9,7 @@
 BEGIN { $| = 1; 
         $ENV{'SNMPCONFPATH'} = 'nopath';
         $ENV{'MIBS'} = '';
-        print "1..6\n";
+        print "1..5\n";
       }
 END {print "not ok 1\n" unless $loaded;}
 use NetSNMP::agent (':all');
@@ -75,13 +75,7 @@ print it($agent, 3);
 $regitem = $agent->register("test_reg", ".1.3.6.1.8888", \&testsub);
 print it($regitem, 4);
 #print STDERR $regitem,":",ref($regitem),"\n";
-print it(ref($regitem) eq "NetSNMP::agent::netsnmp_handler_registration", 5);
-
-my $uptime1 = $agent->uptime();
-my $uptime2 = $agent->uptime(666);
-my $uptime3 = $agent->uptime(555, 444);
-print it($uptime1 <= $uptime2 && $uptime2 <= $uptime3, 6);
-
+print it(ref($regitem) eq "netsnmp_handler_registrationPtr", 5);
 exit;
 
 while(1) {
diff --git a/perl/default_store/Makefile.PL b/perl/default_store/Makefile.PL
index 7c671b8..54996ab 100644
--- a/perl/default_store/Makefile.PL
+++ b/perl/default_store/Makefile.PL
@@ -23,9 +23,9 @@ sub InitMakeParams {
     }                 
                   
     my ($snmp_lib, $snmp_llib, $sep);
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
       $opts = NetSNMPGetOpts();	
-      $Params{'DEFINE'} = "-DMSVC_PERL -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS";
+      $Params{'DEFINE'} = "-DMSVC_PERL";
       $sep = '\\';
       $snmp_lib_file = 'netsnmp.lib';
       $snmp_link_lib = 'netsnmp';
@@ -95,7 +95,7 @@ sub NetSNMPGetOpts {
     $rootpath = "../" if (!$rootpath);
     $rootpath .= '/' if ($rootpath !~ /\/$/);
     
-    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} eq '')) {
+    if (($Config{'osname'} eq 'MSWin32' && $ENV{'OSTYPE'} ne 'msys')) {
 
       # Grab command line options first.  Only used if environment variables are not set
       GetOptions("NET-SNMP-IN-SOURCE=s" => \$ret{'insource'},
@@ -178,7 +178,7 @@ sub find_files {
 
 
 sub Check_Version {
-  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} ne '')) {
+  if (($Config{'osname'} ne 'MSWin32' || $ENV{'OSTYPE'} eq 'msys')) {
     my $foundversion = 0;
     return if ($ENV{'NETSNMP_DONT_CHECK_VERSION'});
     open(I,"<Makefile");
diff --git a/perl/default_store/default_store.pm b/perl/default_store/default_store.pm
index d4499c1..6a3fc4e 100644
--- a/perl/default_store/default_store.pm
+++ b/perl/default_store/default_store.pm
@@ -200,7 +200,7 @@ use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK @EXPORT $VERSION $AUTOLOAD);
 				   NETSNMP_DS_LIB_KSM_SERVICE_NAME
 				   NETSNMP_DS_LIB_SBSM_LOCAL_PWD
 );
-$VERSION = '5.07021';
+$VERSION = '5.0403';
 
 sub AUTOLOAD {
     # This AUTOLOAD is used to 'autoload' constants from the constant()
diff --git a/perl/default_store/default_store.xs b/perl/default_store/default_store.xs
index ca252fb..446812d 100644
--- a/perl/default_store/default_store.xs
+++ b/perl/default_store/default_store.xs
@@ -1,12 +1,7 @@
-#if defined(_WIN32) && !defined(_WIN32_WINNT)
-#define _WIN32_WINNT 0x501
-#endif
-
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
 
-#include <net-snmp/net-snmp-config.h>
 #include <net-snmp/library/default_store.h>
 
 
@@ -1261,7 +1256,7 @@ constant(sv)
 #endif
 	STRLEN		len;
         int		type;
-	IV		iv = 0;
+	IV		iv;
 	/* NV		nv;	Uncomment this if you need to return NVs */
 	/* const char	*pv;	Uncomment this if you need to return PVs */
     INPUT:
diff --git a/perl/default_store/netsnmp-feature-definitions.h b/perl/default_store/netsnmp-feature-definitions.h
deleted file mode 100644
index e69de29..0000000
diff --git a/perl/default_store/test.pl b/perl/default_store/test.pl
index b429c6b..930ca8c 100644
--- a/perl/default_store/test.pl
+++ b/perl/default_store/test.pl
@@ -10,7 +10,7 @@ BEGIN { $| = 1;
 
 	%tests = ( 
                   "NETSNMP_DS_MAX_IDS"                     => 3,
-                  "NETSNMP_DS_MAX_SUBIDS"                  => 48,
+                  "NETSNMP_DS_MAX_SUBIDS"                  => 40,
                   "NETSNMP_DS_LIBRARY_ID"                  => 0,
                   "NETSNMP_DS_APPLICATION_ID"              => 1,
                   "NETSNMP_DS_TOKEN_ID"                    => 2,
diff --git a/perl/manager/snmptosql b/perl/manager/snmptosql
index ae51733..86bb768 100755
--- a/perl/manager/snmptosql
+++ b/perl/manager/snmptosql
@@ -182,11 +182,11 @@ nexthost: while (  $hostrow = $cursor->fetchrow_hashref ) {
 	print STDERR " starting $tablelist->{tablename}\n" if ($verbose);
 	my %tbl_ids;
 	while (1) {
-	    my $varlabel = SNMP::Varbind::tag($var);
+	    my $varlabel = $var->[$SNMP::Varbind::tag_f];
 	    print STDERR "last $host " . SNMP::translateObj($varlabel) . ": $void\n" if ($verbose && SNMP::translateObj($varlabel) !~ /^$void/);
 
 	    last if (SNMP::translateObj($varlabel) !~ /^$void/);
-	    $varlabel = SNMP::translateObj(SNMP::Varbind::tag($var)) if ($varlabel =~ /^[\.0-9]+$/);
+	    $varlabel = SNMP::translateObj($var->[$SNMP::Varbind::tag_f]) if ($varlabel =~ /^[\.0-9]+$/);
 	    $initlabel = $varlabel if ($initlabel eq "");
 
 	    my $val = $sess->getnext($var);
@@ -196,7 +196,7 @@ nexthost: while (  $hostrow = $cursor->fetchrow_hashref ) {
 		next nexthost;
 	    }
 	    last if ($sess->{'ErrorStr'});
-	    my $id = SNMP::Varbind::iid($var);
+	    my $id = $var->[$SNMP::Varbind::iid_f];
 	    print STDERR "$initlabel = $varlabel\n" if ($verbose);
 	    last if ($varlabel ne $initlabel);
 	    my %vals;
diff --git a/python/LICENSE b/python/LICENSE
index 4c7638f..ebebf4a 100644
--- a/python/LICENSE
+++ b/python/LICENSE
@@ -1,39 +1,3 @@
-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 f998f8b..ef5b477 100644
--- a/python/README
+++ b/python/README
@@ -89,6 +89,7 @@ Operational Description:
    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
@@ -98,6 +99,18 @@ Operational Description:
                   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)
@@ -123,40 +136,8 @@ Operational Description:
     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 6fc4b2e..5cc7811 100644
--- a/python/netsnmp/client.py
+++ b/python/netsnmp/client.py
@@ -2,7 +2,6 @@ import client_intf
 import string
 import re
 import types
-from sys import stderr
 
 # control verbosity of error output
 verbose = 1
@@ -30,17 +29,13 @@ def _parse_session_args(kargs):
         'Engineboots':0,
         'Enginetime':0,
         'UseNumeric':0,
-        'OurIdentity':'',
-        'TheirIdentity':'',
-        'TheirHostname':'',
-        'TrustCert':''
         }
     keys = kargs.keys()
     for key in keys:
         if sessArgs.has_key(key):
             sessArgs[key] = kargs[key]
         else:
-            print >>stderr, "ERROR: unknown key", key
+            print stderr, "ERROR: unknown key", key
     return sessArgs
 
 def STR(obj):
@@ -57,7 +52,7 @@ class Varbind(object):
         self.type = STR(type)
         # parse iid out of tag if needed
         if iid == None and tag != None:
-            regex = re.compile(r'^((?:\.\d+)+|(?:\w+(?:[-:]*\w+)+))\.?(.*)$')
+            regex = re.compile(r'^((?:\.\d+)+|(?:\w+(?:\-*\w+)+))\.?(.*)$')
             match = regex.match(tag)
             if match:
                 (self.tag, self.iid) = match.group(1,2)
@@ -130,28 +125,7 @@ class Session(object):
         for k,v in sess_args.items():
             self.__dict__[k] = v
 
-            
-        # 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:
+        if 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 0b74e0e..23c592b 100644
--- a/python/netsnmp/client_intf.c
+++ b/python/netsnmp/client_intf.c
@@ -1,11 +1,5 @@
 #include <Python.h>
 
-#if PY_VERSION_HEX < 0x02050000
-typedef int Py_ssize_t;
-#define PY_SSIZE_T_MAX INT_MAX
-#define PY_SSIZE_T_MIN INT_MIN
-#endif
-
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <sys/types.h>
@@ -73,6 +67,9 @@ typedef int Py_ssize_t;
 
 typedef netsnmp_session SnmpSession;
 typedef struct tree SnmpMibNode;
+static void __recalc_timeout (struct timeval*,struct timeval*,
+                                struct timeval*,struct timeval*, int* );
+static in_addr_t __parse_address (char*);
 static int __is_numeric_oid (char*);
 static int __is_leaf (struct tree*);
 static int __translate_appl_type (char*);
@@ -84,6 +81,10 @@ static int __sprint_num_objid (char *, oid *, int);
 static int __scan_num_objid (char *, oid *, size_t *);
 static int __get_type_str (int, char *);
 static int __get_label_iid (char *, char **, char **, int);
+static int __oid_cmp (oid *, int, oid *, int);
+static int __tp_sprint_num_objid (char*,SnmpMibNode *);
+static SnmpMibNode * __get_next_mib_node (SnmpMibNode *);
+static struct tree * __oid2tp (oid*, int, struct tree *, int*);
 static struct tree * __tag2oid (char *, char *, oid  *, int  *, int *, int);
 static int __concat_oid_str (oid *, int *, char *);
 static int __add_var_val_str (netsnmp_pdu *, oid *, int, char *,
@@ -129,6 +130,66 @@ __libraries_init(char *appname)
 		     NETSNMP_OID_OUTPUT_SUFFIX);
 }
 
+static void
+__recalc_timeout (tvp, ctvp, ltvp, itvp, block)
+struct timeval* tvp;
+struct timeval* ctvp;
+struct timeval* ltvp;
+struct timeval* itvp;
+int *block;
+{
+   struct timeval now;
+
+   if (!timerisset(itvp)) return;  /* interval zero means loop forever */
+   *block = 0;
+   gettimeofday(&now,(struct timezone *)0);
+
+   if (ctvp->tv_sec < 0) { /* first time or callback just fired */
+      timersub(&now,ltvp,ctvp);
+      timersub(ctvp,itvp,ctvp);
+      timersub(itvp,ctvp,ctvp);
+      timeradd(ltvp,itvp,ltvp);
+   } else {
+      timersub(&now,ltvp,ctvp);
+      timersub(itvp,ctvp,ctvp);
+   }
+
+   /* flag is set for callback but still hasnt fired so set to something
+    * small and we will service packets first if there are any ready
+    * (also guard against negative timeout - should never happen?)
+    */
+   if (!timerisset(ctvp) || ctvp->tv_sec < 0 || ctvp->tv_usec < 0) {
+      ctvp->tv_sec = 0;
+      ctvp->tv_usec = 10;
+   }
+
+   /* if snmp timeout > callback timeout or no more requests to process */
+   if (timercmp(tvp, ctvp, >) || !timerisset(tvp)) {
+      *tvp = *ctvp; /* use the smaller non-zero timeout */
+      timerclear(ctvp); /* used as a flag to let callback fire on timeout */
+   }
+}
+
+static in_addr_t
+__parse_address(address)
+char *address;
+{
+    in_addr_t addr;
+    struct sockaddr_in saddr;
+    struct hostent *hp;
+
+    if ((addr = inet_addr(address)) != -1)
+	return addr;
+    hp = gethostbyname(address);
+    if (hp == NULL){
+        return (-1); /* error value */
+    } else {
+	memcpy(&saddr.sin_addr, hp->h_addr, hp->h_length);
+	return saddr.sin_addr.s_addr;
+    }
+
+}
+
 static int
 __is_numeric_oid (oidstr)
 char* oidstr;
@@ -149,6 +210,21 @@ struct tree* tp;
 		  (tp->parent && __get_type_str(tp->parent->type,buf) )));
 }
 
+static SnmpMibNode*
+__get_next_mib_node (tp)
+SnmpMibNode* tp;
+{
+   /* printf("tp = %lX, parent = %lX, peer = %lX, child = %lX\n",
+              tp, tp->parent, tp->next_peer, tp->child_list); */
+   if (tp->child_list) return(tp->child_list);
+   if (tp->next_peer) return(tp->next_peer);
+   if (!tp->parent) return(NULL);
+   for (tp = tp->parent; !tp->next_peer; tp = tp->parent) {
+      if (!tp->parent) return(NULL);
+   }
+   return(tp->next_peer);
+}
+
 static int
 __translate_appl_type(typestr)
 char* typestr;
@@ -206,36 +282,50 @@ int type;
    switch (type) {
         case ASN_INTEGER:
             return(TYPE_INTEGER);
+	    break;
 	case ASN_OCTET_STR:
             return(TYPE_OCTETSTR);
+	    break;
 	case ASN_OPAQUE:
             return(TYPE_OPAQUE);
+	    break;
 	case ASN_OBJECT_ID:
             return(TYPE_OBJID);
+	    break;
 	case ASN_TIMETICKS:
             return(TYPE_TIMETICKS);
+	    break;
 	case ASN_GAUGE:
             return(TYPE_GAUGE);
+	    break;
 	case ASN_COUNTER:
             return(TYPE_COUNTER);
+	    break;
 	case ASN_IPADDRESS:
             return(TYPE_IPADDR);
+	    break;
 	case ASN_BIT_STR:
             return(TYPE_BITSTRING);
+	    break;
 	case ASN_NULL:
             return(TYPE_NULL);
+	    break;
 	/* no translation for these exception type values */
 	case SNMP_ENDOFMIBVIEW:
 	case SNMP_NOSUCHOBJECT:
 	case SNMP_NOSUCHINSTANCE:
 	    return(type);
+	    break;
 	case ASN_UINTEGER:
             return(TYPE_UINTEGER);
+	    break;
 	case ASN_COUNTER64:
             return(TYPE_COUNTER64);
+	    break;
 	default:
-            fprintf(stderr, "translate_asn_type: unhandled asn type (%d)\n",type);
             return(TYPE_OTHER);
+            fprintf(stderr, "translate_asn_type: unhandled asn type (%d)\n",type);
+            break;
         }
 }
 
@@ -266,7 +356,8 @@ int flag;
            if (flag == USE_ENUMS) {
               for(ep = tp->enums; ep; ep = ep->next) {
                  if (ep->value == *var->val.integer) {
-                    strlcpy(buf, ep->label, buf_len);
+                    strncpy(buf, ep->label, buf_len);
+                    buf[buf_len -1] = 0;
                     len = STRLEN(buf);
                     break;
                  }
@@ -375,6 +466,21 @@ int len;
 }
 
 static int
+__tp_sprint_num_objid (buf, tp)
+char *buf;
+SnmpMibNode *tp;
+{
+   oid newname[MAX_OID_LEN], *op;
+   /* code taken from get_node in snmp_client.c */
+   for (op = newname + MAX_OID_LEN - 1; op >= newname; op--) {
+      *op = tp->subid;
+      tp = tp->parent;
+      if (tp == NULL) break;
+   }
+   return __sprint_num_objid(buf, op, newname + MAX_OID_LEN - op);
+}
+
+static int
 __scan_num_objid (buf, objid, len)
 char *buf;
 oid *objid;
@@ -589,6 +695,24 @@ int flag;
    return(SUCCESS);
 }
 
+
+static int
+__oid_cmp(oida_arr, oida_arr_len, oidb_arr, oidb_arr_len)
+oid *oida_arr;
+int oida_arr_len;
+oid *oidb_arr;
+int oidb_arr_len;
+{
+   for (;oida_arr_len && oidb_arr_len;
+	oida_arr++, oida_arr_len--, oidb_arr++, oidb_arr_len--) {
+	if (*oida_arr == *oidb_arr) continue;
+	return(*oida_arr > *oidb_arr ? 1 : -1);
+   }
+   if (oida_arr_len == oidb_arr_len) return(0);
+   return(oida_arr_len > oidb_arr_len ? 1 : -1);
+}
+
+
 /* Convert a tag (string) to an OID array              */
 /* Tag can be either a symbolic name, or an OID string */
 static struct tree *
@@ -605,6 +729,9 @@ int    best_guess;
    oid newname[MAX_OID_LEN], *op;
    size_t newname_len = 0;
 
+   char str_buf[STR_BUF_SIZE];
+   str_buf[0] = '\0';
+
    if (type) *type = TYPE_UNKNOWN;
    if (oid_arr_len) *oid_arr_len = 0;
    if (!tag) goto done;
@@ -690,10 +817,43 @@ int    best_guess;
       }
    }
  done:
-   if (iid && *iid && oid_arr_len)
-       __concat_oid_str(oid_arr, oid_arr_len, iid);
+   if (iid && *iid) __concat_oid_str(oid_arr, oid_arr_len, iid);
    return(rtp);
 }
+/* searches down the mib tree for the given oid
+   returns the last found tp and its index in lastind
+ */
+static struct tree *
+__oid2tp (oidp, len, subtree, lastind)
+oid* oidp;
+int len;
+struct tree * subtree;
+int* lastind;
+{
+    struct tree    *return_tree = NULL;
+
+
+    for (; subtree; subtree = subtree->next_peer) {
+	if (*oidp == subtree->subid){
+	    goto found;
+	}
+    }
+    *lastind=0;
+    return NULL;
+
+found:
+    if (len > 1){
+       return_tree =
+          __oid2tp(oidp + 1, len - 1, subtree->child_list, lastind);
+       (*lastind)++;
+    } else {
+       *lastind=1;
+    }
+    if (return_tree)
+	return return_tree;
+    else
+	return subtree;
+}
 
 /* function: __concat_oid_str
  *
@@ -709,22 +869,19 @@ oid *doid_arr;
 int *doid_arr_len;
 char * soid_str;
 {
-   char *soid_buf;
+   char soid_buf[STR_BUF_SIZE];
    char *cp;
    char *st;
 
    if (!soid_str || !*soid_str) return SUCCESS;/* successfully added nothing */
    if (*soid_str == '.') soid_str++;
-   soid_buf = strdup(soid_str);
-   if (!soid_buf)
-       return FAILURE;
+   strcpy(soid_buf, soid_str);
    cp = strtok_r(soid_buf,".",&st);
    while (cp) {
      sscanf(cp, "%lu", &(doid_arr[(*doid_arr_len)++]));
      /* doid_arr[(*doid_arr_len)++] =  atoi(cp); */
      cp = strtok_r(NULL,".",&st);
    }
-   free(soid_buf);
    return(SUCCESS);
 }
 
@@ -758,7 +915,8 @@ __add_var_val_str(pdu, name, name_length, val, len, type)
     }
 
     vars->next_variable = NULL;
-    vars->name = snmp_duplicate_objid(name, name_length);
+    vars->name = (oid *)malloc(name_length * sizeof(oid));
+    memcpy((char *)vars->name, (char *)name, name_length * sizeof(oid));
     vars->name_length = name_length;
     switch (type) {
       case TYPE_INTEGER:
@@ -840,8 +998,9 @@ OCT:
             vars->val.objid = NULL;
 	    ret = FAILURE;
         } else {
-            vars->val.objid = snmp_duplicate_objid(oidbuf, vars->val_len);
             vars->val_len *= sizeof(oid);
+            vars->val.objid = (oid *)malloc(vars->val_len);
+            memcpy((char *)vars->val.objid, (char *)oidbuf, vars->val_len);
         }
         break;
 
@@ -868,28 +1027,12 @@ char *err_str;
 int *err_num;
 int *err_ind;
 {
-   int status = 0;
+   int status;
    long command = pdu->command;
-   char *tmp_err_str;
-
-   *err_num = 0;
-   *err_ind = 0;
    *response = NULL;
-   tmp_err_str = NULL;
-   memset(err_str, '\0', STR_BUF_SIZE);
-
-   if (ss == NULL) {
-       *err_num = 0;
-       *err_ind = SNMPERR_BAD_SESSION;
-       strlcpy(err_str, snmp_api_errstring(*err_ind), STR_BUF_SIZE);
-       goto done;
-   }
-
 retry:
 
-   Py_BEGIN_ALLOW_THREADS
-   status = snmp_sess_synch_response(ss, pdu, response);
-   Py_END_ALLOW_THREADS
+   status = snmp_synch_response(ss, pdu, response);
 
    if ((*response == NULL) && (status == STAT_SUCCESS)) status = STAT_ERROR;
 
@@ -926,8 +1069,7 @@ retry:
             /* in SNMPv2c, SNMPv2u, SNMPv2*, and SNMPv3 PDUs */
             case SNMP_ERR_INCONSISTENTNAME:
             default:
-               strlcpy(err_str, (char*)snmp_errstring((*response)->errstat),
-		       STR_BUF_SIZE);
+               strcat(err_str,(char*)snmp_errstring((*response)->errstat));
                *err_num = (int)(*response)->errstat;
 	       *err_ind = (*response)->errindex;
                status = (*response)->errstat;
@@ -937,8 +1079,8 @@ retry:
 
       case STAT_TIMEOUT:
       case STAT_ERROR:
-	  snmp_sess_error(ss, err_num, err_ind, &tmp_err_str);
-	  strlcpy(err_str, tmp_err_str, STR_BUF_SIZE);
+          strcat(err_str, (char*)snmp_api_errstring(ss->s_snmp_errno));
+          *err_num = ss->s_snmp_errno;
          break;
 
       default:
@@ -946,10 +1088,6 @@ retry:
          *err_num = ss->s_snmp_errno;
          break;
    }
-done:
-   if (tmp_err_str) {
-   	free(tmp_err_str);
-   }
    if (_debug_level && *err_num) printf("XXX sync PDU: %s\n", err_str);
    return(status);
 }
@@ -1003,22 +1141,6 @@ py_netsnmp_attr_long(PyObject *obj, char * attr_name)
   return val;
 }
 
-static void *
-py_netsnmp_attr_void_ptr(PyObject *obj, char * attr_name)
-{
-  void *val = NULL;
-
-  if (obj && attr_name  && PyObject_HasAttrString(obj, attr_name)) {
-    PyObject *attr = PyObject_GetAttrString(obj, attr_name);
-    if (attr) {
-      val = PyLong_AsVoidPtr(attr);
-      Py_DECREF(attr);
-    }
-  }
-
-  return val;
-}
-
 static int
 py_netsnmp_verbose(void)
 {
@@ -1047,46 +1169,6 @@ py_netsnmp_attr_set_string(PyObject *obj, char *attr_name,
   return ret;
 }
 
-/**
- * Update python session object error attributes.
- *
- * Copy the error info which may have been returned from __send_sync_pdu(...)
- * into the python object. This will allow the python code to determine if
- * an error occured during an snmp operation.
- *
- * Currently there are 3 attributes we care about
- *
- * ErrorNum - Copy of the value of netsnmp_session.s_errno. This is the system
- * errno that was generated during our last call into the net-snmp library.
- *
- * ErrorInd - Copy of the value of netsmp_session.s_snmp_errno. These error
- * numbers are separate from the system errno's and describe SNMP errors.
- *
- * ErrorStr - A string describing the ErrorInd that was returned during our last
- * operation.
- *
- * @param[in] session The python object that represents our current Session
- * @param[in|out] err_str A string describing err_ind
- * @param[in|out] err_num The system errno currently stored by our session
- * @param[in|out] err_ind The snmp errno currently stored by our session
- */
-static void
-__py_netsnmp_update_session_errors(PyObject *session, char *err_str,
-                                    int err_num, int err_ind)
-{
-    PyObject *tmp_for_conversion; 
-
-    py_netsnmp_attr_set_string(session, "ErrorStr", err_str, STRLEN(err_str));
-
-    tmp_for_conversion = PyInt_FromLong(err_num);
-    PyObject_SetAttrString(session, "ErrorNum", tmp_for_conversion);
-    Py_DECREF(tmp_for_conversion);
-
-    tmp_for_conversion = PyInt_FromLong(err_ind);
-    PyObject_SetAttrString(session, "ErrorInd", tmp_for_conversion);
-    Py_DECREF(tmp_for_conversion);
-}
-
 static PyObject *
 netsnmp_create_session(PyObject *self, PyObject *args)
 {
@@ -1107,8 +1189,6 @@ netsnmp_create_session(PyObject *self, PyObject *args)
 
   __libraries_init("python");
 
-  snmp_sess_init(&session);
-
   session.version = -1;
 #ifndef DISABLE_SNMPV1
   if (version == 1) {
@@ -1137,14 +1217,14 @@ netsnmp_create_session(PyObject *self, PyObject *args)
   session.timeout = timeout; /* 1000000L */
   session.authenticator = NULL;
 
-  ss = snmp_sess_open(&session);
+  ss = snmp_open(&session);
 
   if (ss == NULL) {
     if (verbose) 
       printf("error:snmp_new_session: Couldn't open SNMP session");
   }
  end:
-  return PyLong_FromVoidPtr((void *)ss);
+  return Py_BuildValue("L", (long long)ss);
 }
 
 static PyObject *
@@ -1223,9 +1303,8 @@ netsnmp_create_session_v3(PyObject *self, PyObject *args)
 			     USM_AUTH_PROTO_SHA_LEN);
       session.securityAuthProtoLen = USM_AUTH_PROTO_SHA_LEN;
     } else if (!strcmp(auth_proto, "DEFAULT")) {
-      const oid* a = get_default_authtype(&session.securityAuthProtoLen);
-      session.securityAuthProto
-        = snmp_duplicate_objid(a, session.securityAuthProtoLen);
+      session.securityAuthProto = 
+	get_default_authtype(&session.securityAuthProtoLen);
     } else {
       if (verbose)
 	printf("error:snmp_new_v3_session:Unsupported authentication protocol(%s)\n", auth_proto);
@@ -1259,9 +1338,8 @@ netsnmp_create_session_v3(PyObject *self, PyObject *args)
 			     USM_PRIV_PROTO_AES_LEN);
       session.securityPrivProtoLen = USM_PRIV_PROTO_AES_LEN;
     } else if (!strcmp(priv_proto, "DEFAULT")) {
-      const oid *p = get_default_privtype(&session.securityPrivProtoLen);
-      session.securityPrivProto
-        = snmp_duplicate_objid(p, session.securityPrivProtoLen);
+      session.securityPrivProto = 
+	get_default_privtype(&session.securityPrivProtoLen);
     } else {
       if (verbose)
 	printf("error:snmp_new_v3_session:Unsupported privacy protocol(%s)\n", priv_proto);
@@ -1292,100 +1370,7 @@ netsnmp_create_session_v3(PyObject *self, PyObject *args)
   free (session.securityEngineID);
   free (session.contextEngineID);
 
-  return PyLong_FromVoidPtr((void *)ss);
-}
-
-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("localCert",
-                                                       our_identity));
-
-  if (their_identity && their_identity[0] != '\0')
-      CONTAINER_INSERT(session.transport_configuration,
-                       netsnmp_transport_create_config("peerCert",
-                                                       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);
+  return Py_BuildValue("i", (int)ss);
 }
 
 static PyObject *
@@ -1398,9 +1383,9 @@ netsnmp_delete_session(PyObject *self, PyObject *args)
     return NULL;
   }
 
-  ss = (SnmpSession *)py_netsnmp_attr_void_ptr(session, "sess_ptr");
+  ss = (SnmpSession *)py_netsnmp_attr_long(session, "sess_ptr");
 
-  snmp_sess_close(ss);
+  snmp_close(ss);
   return (Py_BuildValue(""));
 }
 
@@ -1423,6 +1408,7 @@ netsnmp_get(PyObject *self, PyObject *args)
   int oid_arr_len = MAX_OID_LEN;
   int type;
   char type_str[MAX_TYPE_NAME_LEN];
+  int status;
   u_char str_buf[STR_BUF_SIZE], *str_bufp = str_buf;
   size_t str_buf_len = sizeof(str_buf);
   size_t out_len = 0;
@@ -1449,11 +1435,14 @@ netsnmp_get(PyObject *self, PyObject *args)
       goto done;
     }
 
-    ss = (SnmpSession *)py_netsnmp_attr_void_ptr(session, "sess_ptr");
+    ss = (SnmpSession *)py_netsnmp_attr_long(session, "sess_ptr");
 
     if (py_netsnmp_attr_string(session, "ErrorStr", &tmpstr, &tmplen) < 0) {
       goto done;
     }
+    memcpy(&err_str, tmpstr, tmplen);
+    err_num = py_netsnmp_attr_long(session, "ErrorNum");
+    err_ind = py_netsnmp_attr_long(session, "ErrorInd");
 
     if (py_netsnmp_attr_long(session, "UseLongNames"))
       getlabel_flag |= USE_LONG_NAMES;
@@ -1505,9 +1494,8 @@ netsnmp_get(PyObject *self, PyObject *args)
       }
     }
 
-    __send_sync_pdu(ss, pdu, &response, retry_nosuch, err_str, &err_num,
-                    &err_ind);
-    __py_netsnmp_update_session_errors(session, err_str, err_num, err_ind);
+    status = __send_sync_pdu(ss, pdu, &response, retry_nosuch, 
+			     err_str, &err_num, &err_ind);
 
     /*
     ** Set up for numeric or full OID's, if necessary.  Save the old
@@ -1557,8 +1545,8 @@ netsnmp_get(PyObject *self, PyObject *args)
 					       &out_len, 0, &buf_over,
 					       vars->name,vars->name_length);
 	if (_debug_level) 
-            printf("netsnmp_get:str_bufp:%s:%d:%d\n", str_bufp,
-                   (int)str_buf_len, (int)out_len);
+	  printf("netsnmp_get:str_bufp:%s:%d:%d\n",
+		 str_bufp,str_buf_len,out_len);
 
 	str_buf[sizeof(str_buf)-1] = '\0';
 
@@ -1574,19 +1562,20 @@ netsnmp_get(PyObject *self, PyObject *args)
 	
 	if (_debug_level) printf("netsnmp_get:str_buf:%s\n",str_buf);
 
-	__get_label_iid((char *) str_buf, &tag, &iid, getlabel_flag);
+	__get_label_iid(str_buf, &tag, &iid, getlabel_flag);
 
 	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));
+	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);
+	len = __snprint_value(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);
+	py_netsnmp_attr_set_string(varbind, "val", str_buf, len);
 
 	/* save in return tuple as well */
 	PyTuple_SetItem(val_tuple, varlist_ind, 
@@ -1630,12 +1619,13 @@ netsnmp_getnext(PyObject *self, PyObject *args)
   int oid_arr_len = MAX_OID_LEN;
   int type;
   char type_str[MAX_TYPE_NAME_LEN];
+  int status;
   u_char str_buf[STR_BUF_SIZE], *str_bufp = str_buf;
   size_t str_buf_len = sizeof(str_buf);
   size_t out_len = 0;
   int buf_over = 0;
   char *tag;
-  char *iid = NULL;
+  char *iid;
   int getlabel_flag = NO_FLAGS;
   int sprintval_flag = USE_BASIC;
   int verbose = py_netsnmp_verbose();
@@ -1656,7 +1646,7 @@ netsnmp_getnext(PyObject *self, PyObject *args)
       goto done;
     }
 
-    ss = (SnmpSession *)py_netsnmp_attr_void_ptr(session, "sess_ptr");
+    ss = (SnmpSession *)py_netsnmp_attr_long(session, "sess_ptr");
 
     if (py_netsnmp_attr_string(session, "ErrorStr", &tmpstr, &tmplen) < 0) {
       goto done;
@@ -1719,9 +1709,8 @@ netsnmp_getnext(PyObject *self, PyObject *args)
       }
     }
 
-    __send_sync_pdu(ss, pdu, &response, retry_nosuch, err_str, &err_num,
-                    &err_ind);
-    __py_netsnmp_update_session_errors(session, err_str, err_num, err_ind);
+    status = __send_sync_pdu(ss, pdu, &response, retry_nosuch, 
+			     err_str, &err_num, &err_ind);
 
     /*
     ** Set up for numeric or full OID's, if necessary.  Save the old
@@ -1781,7 +1770,7 @@ netsnmp_getnext(PyObject *self, PyObject *args)
 	  type = __translate_asn_type(vars->type);
 	}
 
-	__get_label_iid((char *) str_buf, &tag, &iid, getlabel_flag);
+	__get_label_iid(str_buf, &tag, &iid, getlabel_flag);
 
 	if (_debug_level) 
 	  printf("netsnmp_getnext: filling response: %s:%s\n", tag, iid);
@@ -1792,13 +1781,13 @@ netsnmp_getnext(PyObject *self, PyObject *args)
 	__get_type_str(type, type_str);
 
 	py_netsnmp_attr_set_string(varbind, "type", type_str, 
-				   strlen(type_str));
+				   STRLEN(type_str));
 
-	len = __snprint_value((char *) str_buf, sizeof(str_buf),
-                              vars, tp, type, sprintval_flag);
+	len = __snprint_value(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);
+	py_netsnmp_attr_set_string(varbind, "val", str_buf, len);
 
 	/* save in return tuple as well */
 	PyTuple_SetItem(val_tuple, varlist_ind, 
@@ -1837,14 +1826,11 @@ netsnmp_walk(PyObject *self, PyObject *args)
   int varlist_ind;
   netsnmp_session *ss;
   netsnmp_pdu *pdu, *response;
-  netsnmp_pdu *newpdu;
-  netsnmp_variable_list *vars, *oldvars;
+  netsnmp_variable_list *vars;
   struct tree *tp;
   int len;
-  oid **oid_arr = NULL;
-  int *oid_arr_len = NULL;
-  oid **oid_arr_broken_check = NULL;
-  int *oid_arr_broken_check_len = NULL;
+  oid *oid_arr;
+  int oid_arr_len = MAX_OID_LEN;
   int type;
   char type_str[MAX_TYPE_NAME_LEN];
   int status;
@@ -1853,7 +1839,7 @@ netsnmp_walk(PyObject *self, PyObject *args)
   size_t out_len = 0;
   int buf_over = 0;
   char *tag;
-  char *iid = NULL;
+  char *iid;
   int getlabel_flag = NO_FLAGS;
   int sprintval_flag = USE_BASIC;
   int verbose = py_netsnmp_verbose();
@@ -1868,7 +1854,9 @@ netsnmp_walk(PyObject *self, PyObject *args)
   char *tmpstr;
   Py_ssize_t tmplen;
 	   
-  if (args) {
+  oid_arr = calloc(MAX_OID_LEN, sizeof(oid));
+
+  if (oid_arr && args) {
 
     if (!PyArg_ParseTuple(args, "OO", &session, &varlist)) {
       goto done;
@@ -1881,7 +1869,7 @@ netsnmp_walk(PyObject *self, PyObject *args)
     if ((varbinds = PyObject_GetAttrString(varlist, "varbinds")) == NULL) {
       goto done;
     }
-    ss = (SnmpSession *)py_netsnmp_attr_void_ptr(session, "sess_ptr");
+    ss = (SnmpSession *)py_netsnmp_attr_long(session, "sess_ptr");
 
     if (py_netsnmp_attr_string(session, "ErrorStr", &tmpstr, &tmplen) < 0) {
       goto done;
@@ -1901,52 +1889,27 @@ netsnmp_walk(PyObject *self, PyObject *args)
     best_guess = py_netsnmp_attr_long(session, "BestGuess");
     retry_nosuch = py_netsnmp_attr_long(session, "RetryNoSuch");
         
-    pdu = snmp_pdu_create(SNMP_MSG_GETNEXT);
-    
-    /* 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;
-    }
 
+    pdu = snmp_pdu_create(SNMP_MSG_GETNEXT);
+    
     /* 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[varlist_ind] = 0;
+        oid_arr_len = 0;
       } else {
-        tp = __tag2oid(tag, iid,
-                       oid_arr[varlist_ind], &oid_arr_len[varlist_ind],
-                       NULL, best_guess);
+        tp = __tag2oid(tag, iid, oid_arr, &oid_arr_len, NULL, best_guess);
       }
 
       if (_debug_level) 
 	printf("netsnmp_walk: filling request: %s:%s:%d:%d\n", 
-	       tag, iid, oid_arr_len[varlist_ind],best_guess);
+	       tag, iid, oid_arr_len,best_guess);
 
-      if (oid_arr_len[varlist_ind]) {
-        snmp_add_null_var(pdu, oid_arr[varlist_ind], oid_arr_len[varlist_ind]);
+      if (oid_arr_len) {
+        snmp_add_null_var(pdu, oid_arr, oid_arr_len);
+        varlist_len++;
       } else {
         if (verbose)
           printf("error: walk: unknown object ID (%s)",
@@ -1956,11 +1919,9 @@ netsnmp_walk(PyObject *self, PyObject *args)
       }
       /* release reference when done */
       Py_DECREF(varbind);
-      varlist_ind++;
     }
 
-    if (varlist_iter)
-        Py_DECREF(varlist_iter);
+    Py_DECREF(varlist_iter);
 
     if (PyErr_Occurred()) {
       /* propagate error */
@@ -2021,135 +1982,90 @@ netsnmp_walk(PyObject *self, PyObject *args)
       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, 
                                err_str, &err_num, &err_ind);
-      __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 {
-          newpdu = snmp_pdu_create(SNMP_MSG_GETNEXT);
-
-          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)) {
-
-              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 ((vars->type == SNMP_ENDOFMIBVIEW) ||
-                  (vars->type == SNMP_NOSUCHOBJECT) ||
-                  (vars->type == SNMP_NOSUCHINSTANCE)) {
-                  notdone = 0;
-                  break;
-              }
-
-              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.
-
-                     XXX: this really should be an option to
-                     continue like the -Cc option to the snmpwalk
-                     application.
-                  */
-                  notdone = 0;
-                  break;
-              }
+        for(vars = (response ? response->variables : NULL), varlist_ind = 0;
+    	vars && (varlist_ind < varlist_len);
+    	vars = vars->next_variable, varlist_ind++) {
+
+          if ((vars->type == SNMP_ENDOFMIBVIEW) ||
+              (vars->type == SNMP_NOSUCHOBJECT) ||
+              (vars->type == SNMP_NOSUCHINSTANCE)) {
+              notdone = 0;
+              break;
+          }
 
-              varbind = py_netsnmp_construct_varbind();
+          varbind = py_netsnmp_construct_varbind();
 
-              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 (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 (__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 (__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);
+    	  }
 
-                  __get_label_iid((char *) str_buf, &tag, &iid, getlabel_flag);
+    	  __get_label_iid(str_buf, &tag, &iid, getlabel_flag);
 
-                  if (_debug_level) printf("netsnmp_walk: filling response: %s:%s\n", tag, iid);
+    	  if (_debug_level) printf("netsnmp_walk: filling response: %s:%s\n", tag, iid);
 
-                  py_netsnmp_attr_set_string(varbind, "tag", tag, STRLEN(tag));
-                  py_netsnmp_attr_set_string(varbind, "iid", iid, STRLEN(iid));
+	  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);
+    	  __get_type_str(type, type_str);
 
-                  py_netsnmp_attr_set_string(varbind, "type", type_str,
-                                             strlen(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';
+    	  len = __snprint_value(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);
+	  py_netsnmp_attr_set_string(varbind, "val", str_buf, len);
             
-                  /* 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++, 
-                                  (len ? Py_BuildValue("s#", str_buf, len) :
-                                   Py_BuildValue("")));
+	  /* 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++, 
+			  (len ? Py_BuildValue("s#", str_buf, len) :
+			   Py_BuildValue("")));
             
 
-              } 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;
+          } 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);
       }
       if (response)
 	snmp_free_pdu(response);
@@ -2171,14 +2087,7 @@ netsnmp_walk(PyObject *self, PyObject *args)
 
  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(""));
 }
 
@@ -2204,6 +2113,7 @@ netsnmp_getbulk(PyObject *self, PyObject *args)
   int oid_arr_len = MAX_OID_LEN;
   int type;
   char type_str[MAX_TYPE_NAME_LEN];
+  int status;
   u_char str_buf[STR_BUF_SIZE], *str_bufp = str_buf;
   size_t str_buf_len = sizeof(str_buf);
   size_t out_len = 0;
@@ -2233,7 +2143,7 @@ netsnmp_getbulk(PyObject *self, PyObject *args)
 
     if (varlist && (varbinds = PyObject_GetAttrString(varlist, "varbinds"))) {
       
-      ss = (SnmpSession *)py_netsnmp_attr_void_ptr(session, "sess_ptr");
+      ss = (SnmpSession *)py_netsnmp_attr_long(session, "sess_ptr");
 
       if (py_netsnmp_attr_string(session, "ErrorStr", &tmpstr, &tmplen) < 0) {
         goto done;
@@ -2292,9 +2202,8 @@ netsnmp_getbulk(PyObject *self, PyObject *args)
 	goto done;
       }
 
-      __send_sync_pdu(ss, pdu, &response, retry_nosuch, err_str, &err_num,
-                      &err_ind);
-      __py_netsnmp_update_session_errors(session, err_str, err_num, err_ind);
+      status = __send_sync_pdu(ss, pdu, &response, retry_nosuch, 
+			       err_str, &err_num, &err_ind);
 
       /*
       ** Set up for numeric or full OID's, if necessary.  Save the old
@@ -2363,7 +2272,7 @@ netsnmp_getbulk(PyObject *self, PyObject *args)
 	      type = __translate_asn_type(vars->type);
 	    }
 
-	    __get_label_iid((char *) str_buf, &tag, &iid, getlabel_flag);
+	    __get_label_iid(str_buf, &tag, &iid, getlabel_flag);
 
 	    py_netsnmp_attr_set_string(varbind, "tag", tag, STRLEN(tag));
 	    py_netsnmp_attr_set_string(varbind, "iid", iid, STRLEN(iid));
@@ -2371,13 +2280,13 @@ netsnmp_getbulk(PyObject *self, PyObject *args)
 	    __get_type_str(type, type_str);
 
 	    py_netsnmp_attr_set_string(varbind, "type", type_str, 
-				       strlen(type_str));
+				       STRLEN(type_str));
 
-	    len = __snprint_value((char *) str_buf, sizeof(str_buf),
-				  vars, tp, type, sprintval_flag);
+	    len = __snprint_value(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);
+	    py_netsnmp_attr_set_string(varbind, "val", str_buf, len);
 
 	    /* push varbind onto varbinds */
 	    PyList_Append(varbinds, varbind);
@@ -2414,8 +2323,7 @@ netsnmp_getbulk(PyObject *self, PyObject *args)
       /* propagate error */
       if (verbose)
 	printf("error: getbulk response processing: unknown python error");
-      if (val_tuple)
-          Py_DECREF(val_tuple);
+      Py_DECREF(val_tuple);
       val_tuple = NULL;
     }
   }
@@ -2463,12 +2371,15 @@ netsnmp_set(PyObject *self, PyObject *args)
       goto done;
     }
 
-    ss = (SnmpSession *)py_netsnmp_attr_void_ptr(session, "sess_ptr");
+    ss = (SnmpSession *)py_netsnmp_attr_long(session, "sess_ptr");
 
     /* PyObject_SetAttrString(); */
     if (py_netsnmp_attr_string(session, "ErrorStr", &tmpstr, &tmplen) < 0) {
       goto done;
     }
+    memcpy(&err_str, tmpstr, tmplen);
+    err_num = py_netsnmp_attr_long(session, "ErrorNum");
+    err_ind = py_netsnmp_attr_long(session, "ErrorInd");
 
     use_enums = py_netsnmp_attr_long(session, "UseEnums");
 	
@@ -2514,23 +2425,18 @@ netsnmp_set(PyObject *self, PyObject *args)
 	  snmp_free_pdu(pdu);
 	  goto done;
 	}
-	memset(tmp_val_str, 0, sizeof(tmp_val_str));
-        if ( tmplen >= sizeof(tmp_val_str)) {
-            tmplen = sizeof(tmp_val_str)-1;
-        }
 	memcpy(tmp_val_str, val, tmplen);
 	if (type==TYPE_INTEGER && use_enums && tp && tp->enums) {
 	  for(ep = tp->enums; ep; ep = ep->next) {
 	    if (val && !strcmp(ep->label, val)) {
-              snprintf((char *) tmp_val_str, sizeof(tmp_val_str), "%d",
-                      ep->value);
+	      strcpy(tmp_val_str, ep->value);
 	      break;
 	    }
 	  }
 	}
 	len = (int)tmplen;
 	status = __add_var_val_str(pdu, oid_arr, oid_arr_len,
-                                   (char *) tmp_val_str, len, type);
+				tmp_val_str, len, type);
 
 	if (verbose && status == FAILURE)
 	  printf("error: set: adding variable/value to PDU");
@@ -2552,14 +2458,13 @@ netsnmp_set(PyObject *self, PyObject *args)
 
     status = __send_sync_pdu(ss, pdu, &response, NO_RETRY_NOSUCH, 
 			     err_str, &err_num, &err_ind);
-    __py_netsnmp_update_session_errors(session, err_str, err_num, err_ind);
 
     if (response) snmp_free_pdu(response);
 
     if (status == STAT_SUCCESS)
       ret = Py_BuildValue("i",1); /* success, return True */
     else
-      ret = Py_BuildValue("i",0); /* fail, return False */
+      ret = Py_BuildValue("i",0); /* success, return False */
   } 
  done:
   SAFE_FREE(oid_arr);
@@ -2572,8 +2477,6 @@ static PyMethodDef ClientMethods[] = {
    "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/netsnmp-feature-definitions.h b/python/netsnmp/netsnmp-feature-definitions.h
deleted file mode 100644
index 389416a..0000000
--- a/python/netsnmp/netsnmp-feature-definitions.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-netsnmp_feature_require(snprint_value)
-netsnmp_feature_require(enable_stderrlog)
-
diff --git a/python/netsnmp/tests/snmpd.conf b/python/netsnmp/tests/snmpd.conf
index b62e4c7..16a0bf2 100644
--- a/python/netsnmp/tests/snmpd.conf
+++ b/python/netsnmp/tests/snmpd.conf
@@ -418,8 +418,3 @@ load 12 14 14
 #  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 at wjh.hardakers.net
-
-trustCert D020A78EAF99FCE276AA9F43063A69698E4F75D1
diff --git a/python/netsnmp/tests/test.py b/python/netsnmp/tests/test.py
index e3982f4..a3230b2 100644
--- a/python/netsnmp/tests/test.py
+++ b/python/netsnmp/tests/test.py
@@ -19,7 +19,7 @@ class BasicTests(unittest.TestCase):
 
         var = netsnmp.Varbind('.1.3.6.1.2.1.1.1','0')
 
-        print "---v1 GET tests -------------------------------------\n"
+        print "----------------------------------------\n"
         res = netsnmp.snmpget(var,
                               Version = 1,
                               DestHost='localhost',
@@ -29,7 +29,7 @@ class BasicTests(unittest.TestCase):
 
         print "v1 get var: ",  var.tag, var.iid, "=", var.val, '(',var.type,')'
         
-        print "---v1 GETNEXT tests-------------------------------------\n"
+        print "----------------------------------------\n"
         res = netsnmp.snmpgetnext(var,
                                   Version = 1,
                                   DestHost='localhost',
@@ -39,7 +39,7 @@ class BasicTests(unittest.TestCase):
                 
         print "v1 getnext var: ",  var.tag, var.iid, "=", var.val, '(',var.type,')'
         
-        print "---v1 SET tests-------------------------------------\n"
+        print "----------------------------------------\n"
         var = netsnmp.Varbind('sysLocation','0', 'my new location')
         res = netsnmp.snmpset(var,
                         Version = 1,
@@ -50,7 +50,7 @@ class BasicTests(unittest.TestCase):
 
         print "v1 set var: ",  var.tag, var.iid, "=", var.val, '(',var.type,')'
         
-        print "---v1 walk tests-------------------------------------\n"
+        print "----------------------------------------\n"
         vars = netsnmp.VarList(netsnmp.Varbind('system'))
 
         print "v1 varlist walk in: "
@@ -67,7 +67,7 @@ class BasicTests(unittest.TestCase):
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
        
         
-        print "---v1 walk 2-------------------------------------\n"
+        print "----------------------------------------\n"
 
         print "v1 varbind walk in: "
         var = netsnmp.Varbind('system')
@@ -79,7 +79,7 @@ class BasicTests(unittest.TestCase):
 
         print var.tag, var.iid, "=", var.val, '(',var.type,')'
         
-        print "---v1 multi-varbind test-------------------------------------\n"
+        print "----------------------------------------\n"
         sess = netsnmp.Session(Version=1,
                                DestHost='localhost',
                                Community='public')
@@ -111,14 +111,14 @@ class BasicTests(unittest.TestCase):
         for var in vars:
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
 
-        print "---v1 set2-------------------------------------\n"
+        print "----------------------------------------\n"
 
         vars = netsnmp.VarList(
             netsnmp.Varbind('sysLocation', '0', 'my newer location'))
         res = sess.set(vars)
         print "v1 sess.set result: ", res, "\n"
 
-        print "---v1 walk3-------------------------------------\n"
+        print "----------------------------------------\n"
         vars = netsnmp.VarList(netsnmp.Varbind('system'))
                 
         vals = sess.walk(vars)
@@ -127,7 +127,7 @@ class BasicTests(unittest.TestCase):
         for var in vars:
             print "  ",var.tag, var.iid, "=", var.val, '(',var.type,')'
             
-        print "---v2c get-------------------------------------\n"
+        print "----------------------------------------\n"
 
         sess = netsnmp.Session(Version=2,
                                DestHost='localhost',
@@ -142,7 +142,7 @@ class BasicTests(unittest.TestCase):
         vals = sess.get(vars)
         print "v2 sess.get result: ", vals, "\n"
 
-        print "---v2c getnext-------------------------------------\n"
+        print "----------------------------------------\n"
 
         for var in vars:
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
@@ -155,7 +155,7 @@ class BasicTests(unittest.TestCase):
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
         print "\n"
        
-        print "---v2c getbulk-------------------------------------\n"
+        print "----------------------------------------\n"
 
         vars = netsnmp.VarList(netsnmp.Varbind('sysUpTime'),
                                netsnmp.Varbind('sysORLastChange'),
@@ -170,7 +170,7 @@ class BasicTests(unittest.TestCase):
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
         print "\n"
 
-        print "---v2c set-------------------------------------\n"
+        print "----------------------------------------\n"
 
         vars = netsnmp.VarList(
             netsnmp.Varbind('sysLocation','0','my even newer location'))
@@ -178,7 +178,7 @@ class BasicTests(unittest.TestCase):
         res = sess.set(vars)
         print "v2 sess.set result: ", res, "\n"
 
-        print "---v2c walk-------------------------------------\n"
+        print "----------------------------------------\n"
         vars = netsnmp.VarList(netsnmp.Varbind('system'))
                 
         vals = sess.walk(vars)
@@ -187,7 +187,7 @@ class BasicTests(unittest.TestCase):
         for var in vars:
             print "  ",var.tag, var.iid, "=", var.val, '(',var.type,')'
             
-        print "---v3 setup-------------------------------------\n"
+        print "----------------------------------------\n"
         sess = netsnmp.Session(Version=3,
                                DestHost='localhost',
                                SecLevel='authPriv',
@@ -200,7 +200,7 @@ class BasicTests(unittest.TestCase):
         vars = netsnmp.VarList(netsnmp.Varbind('sysUpTime', 0),
                                netsnmp.Varbind('sysContact', 0),
                                netsnmp.Varbind('sysLocation', 0))
-        print "---v3 get-------------------------------------\n"
+        print "----------------------------------------\n"
         vals = sess.get(vars)
         print "v3 sess.get result: ", vals, "\n"
         
@@ -208,7 +208,7 @@ class BasicTests(unittest.TestCase):
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
         print "\n"
 
-        print "---v3 getnext-------------------------------------\n"
+        print "----------------------------------------\n"
        
         vals = sess.getnext(vars)
         print "v3 sess.getnext result: ", vals, "\n"
@@ -230,14 +230,14 @@ class BasicTests(unittest.TestCase):
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
         print "\n"
 
-        print "---v3 set-------------------------------------\n"
+        print "----------------------------------------\n"
 
         vars = netsnmp.VarList(
             netsnmp.Varbind('sysLocation','0', 'my final destination'))
         res = sess.set(vars)
         print "v3 sess.set result: ", res, "\n"
         
-        print "---v3 walk-------------------------------------\n"
+        print "----------------------------------------\n"
         vars = netsnmp.VarList(netsnmp.Varbind('system'))
                 
         vals = sess.walk(vars)
@@ -245,7 +245,7 @@ class BasicTests(unittest.TestCase):
         
         for var in vars:
             print "  ",var.tag, var.iid, "=", var.val, '(',var.type,')'
-
+            
 
 class SetTests(unittest.TestCase):
     def testFuncs(self):        
diff --git a/sedscript.in b/sedscript.in
index 7814ce9..fc03e89 100644
--- a/sedscript.in
+++ b/sedscript.in
@@ -87,7 +87,6 @@ s/EREMOVEMERRORTIMELENGTH/ERRORTIMELENGTH/g
 s/AREMOVEMEGENTID/AGENTID/g
 s/HREMOVEMEPUX9ID/HPUX9ID/g
 s/HREMOVEMEPUX10ID/HPUX10ID/g
-s/HREMOVEMEPUX11ID/HPUX11ID/g
 s/SREMOVEMEUNOS4ID/SUNOS4ID/g
 s/SREMOVEMEOLARISID/SOLARISID/g
 s/OREMOVEMESFID/OSFID/g
@@ -97,13 +96,8 @@ s/FREMOVEMEREEBSDID/FREEBSDID/g
 s/IREMOVEMERIXID/IRIXID/g
 s/LREMOVEMEINUXID/LINUXID/g
 s/BREMOVEMESDIID/BSDIID/g
-s/OREMOVEMEPENBSDID/OPENBSDID/g
-s/WREMOVEMEIN32ID/WIN32ID/g
-s/AREMOVEMEIXID/AIXID/g
-s/MREMOVEMEACOSXID/MACOSXID/g
-s/DREMOVEMERAGONFLYID/DRAGONFLYID/g
 s/UREMOVEMENKNOWNID/UNKNOWNID/g
 
 s#PREMOVEMESCMD#PSCMD#g
 s#AREMOVEMEGENTX_SOCKET#AGENTX_SOCKET#g
-s#NREMOVEMEETSNMP_TEMP_FILE_PATTERN#NETSNMP_TEMP_FILE_PATTERN#g
+s/VERSIONINFO/5.4.3.pre1/g
diff --git a/snmplib/Makefile.depend b/snmplib/Makefile.depend
index 8881276..e10b940 100644
--- a/snmplib/Makefile.depend
+++ b/snmplib/Makefile.depend
@@ -3,37 +3,17 @@
 ./asn1.lo: ../include/net-snmp/net-snmp-config.h
 ./asn1.lo: ../include/net-snmp/system/linux.h
 ./asn1.lo: ../include/net-snmp/system/sysv.h
-./asn1.lo: ../include/net-snmp/system/generic.h 
-./asn1.lo: ../include/net-snmp/output_api.h ../include/net-snmp/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/system/generic.h
+./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/definitions.h
 ./asn1.lo: ../include/net-snmp/library/snmp_api.h
-./asn1.lo: ../include/net-snmp/varbind_api.h
-./asn1.lo: ../include/net-snmp/library/snmp_client.h
-./asn1.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/library/asn1.h
-./asn1.lo: ../include/net-snmp/session_api.h
-./asn1.lo: ../include/net-snmp/library/callback.h
-./asn1.lo: ../include/net-snmp/library/snmp_transport.h
-./asn1.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./asn1.lo:  ../include/net-snmp/library/ucd_compat.h
-./asn1.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./asn1.lo: ../include/net-snmp/library/parse.h
-./asn1.lo: ../include/net-snmp/library/oid_stash.h
-./asn1.lo: ../include/net-snmp/net-snmp-features.h
+./asn1.lo: ../include/net-snmp/library/asn1.h
 ./asn1.lo: ../include/net-snmp/library/snmp_impl.h
 ./asn1.lo: ../include/net-snmp/library/snmp.h
 ./asn1.lo: ../include/net-snmp/library/snmp-tc.h
+./asn1.lo: ../include/net-snmp/library/snmp_client.h
 ./asn1.lo: ../include/net-snmp/library/snmp_debug.h
 ./asn1.lo: ../include/net-snmp/library/snmp_logging.h 
 ./asn1.lo: ../include/net-snmp/utilities.h 
@@ -42,7 +22,9 @@
 ./asn1.lo: ../include/net-snmp/library/int64.h
 ./asn1.lo: ../include/net-snmp/library/mt_support.h
 ./asn1.lo: ../include/net-snmp/library/snmp_alarm.h
+./asn1.lo: ../include/net-snmp/library/callback.h
 ./asn1.lo: ../include/net-snmp/library/data_list.h
+./asn1.lo: ../include/net-snmp/library/oid_stash.h
 ./asn1.lo: ../include/net-snmp/library/check_varbind.h
 ./asn1.lo: ../include/net-snmp/library/container.h
 ./asn1.lo: ../include/net-snmp/library/factory.h
@@ -51,53 +33,32 @@
 ./asn1.lo: ../include/net-snmp/library/container_iterator.h
 ./asn1.lo: ../include/net-snmp/library/container.h
 ./asn1.lo: ../include/net-snmp/library/snmp_assert.h
-./asn1.lo: ../include/net-snmp/version.h
+./asn1.lo: ../include/net-snmp/version.h ../include/net-snmp/library/mib.h
 ./callback.lo: ../include/net-snmp/net-snmp-config.h
 ./callback.lo: ../include/net-snmp/system/linux.h
 ./callback.lo: ../include/net-snmp/system/sysv.h
 ./callback.lo: ../include/net-snmp/system/generic.h
-./callback.lo: ../include/net-snmp/net-snmp-features.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/machine/generic.h 
+./callback.lo:  ../include/net-snmp/types.h
+./callback.lo:  ../include/net-snmp/definitions.h
 ./callback.lo: ../include/net-snmp/library/snmp_api.h
-./callback.lo: ../include/net-snmp/varbind_api.h
-./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
-./callback.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./callback.lo: ../include/net-snmp/library/ucd_compat.h
-./callback.lo: ../include/net-snmp/library/mib.h
-./callback.lo: ../include/net-snmp/mib_api.h
-./callback.lo: ../include/net-snmp/library/parse.h
-./callback.lo: ../include/net-snmp/library/oid_stash.h
 ./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/utilities.h
+./callback.lo: ../include/net-snmp/output_api.h
+./callback.lo: ../include/net-snmp/library/snmp_client.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
 ./callback.lo: ../include/net-snmp/library/int64.h
 ./callback.lo: ../include/net-snmp/library/mt_support.h
 ./callback.lo: ../include/net-snmp/library/snmp_alarm.h
+./callback.lo: ../include/net-snmp/library/callback.h
 ./callback.lo: ../include/net-snmp/library/data_list.h
+./callback.lo: ../include/net-snmp/library/oid_stash.h
 ./callback.lo: ../include/net-snmp/library/check_varbind.h
 ./callback.lo: ../include/net-snmp/library/container.h
 ./callback.lo: ../include/net-snmp/library/factory.h
@@ -107,122 +68,63 @@
 ./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/net-snmp-features.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/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/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
-./check_varbind.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./check_varbind.lo: ../include/net-snmp/library/ucd_compat.h
-./check_varbind.lo: ../include/net-snmp/library/mib.h
-./check_varbind.lo: ../include/net-snmp/mib_api.h
-./check_varbind.lo: ../include/net-snmp/library/parse.h
-./check_varbind.lo: ../include/net-snmp/library/oid_stash.h
-./check_varbind.lo: ../include/net-snmp/net-snmp-features.h
 ./check_varbind.lo: ../include/net-snmp/library/snmp_impl.h
 ./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/snmp_client.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
 ./check_varbind.lo: ../include/net-snmp/library/mt_support.h
 ./check_varbind.lo: ../include/net-snmp/library/snmp_alarm.h
+./check_varbind.lo: ../include/net-snmp/library/callback.h
 ./check_varbind.lo: ../include/net-snmp/library/data_list.h
+./check_varbind.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./check_varbind.lo: ../include/net-snmp/library/container.h
 ./check_varbind.lo: ../include/net-snmp/library/snmp_assert.h
 ./check_varbind.lo: ../include/net-snmp/version.h
+./check_varbind.lo: ../include/net-snmp/session_api.h
+./check_varbind.lo: ../include/net-snmp/library/snmp_transport.h
+./check_varbind.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./check_varbind.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./check_varbind.lo: ../include/net-snmp/pdu_api.h
+./check_varbind.lo: ../include/net-snmp/mib_api.h
+./check_varbind.lo: ../include/net-snmp/library/mib.h
+./check_varbind.lo: ../include/net-snmp/library/parse.h
+./check_varbind.lo: ../include/net-snmp/varbind_api.h
 ./check_varbind.lo: ../include/net-snmp/config_api.h
 ./check_varbind.lo: ../include/net-snmp/library/read_config.h
 ./check_varbind.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -231,105 +133,69 @@
 ./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/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/net-snmp-features.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
-./container_binary_array.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./container_binary_array.lo: ../include/net-snmp/library/ucd_compat.h
-./container_binary_array.lo: ../include/net-snmp/library/mib.h
-./container_binary_array.lo: ../include/net-snmp/mib_api.h
-./container_binary_array.lo: ../include/net-snmp/library/parse.h
-./container_binary_array.lo: ../include/net-snmp/library/oid_stash.h
-./container_binary_array.lo: ../include/net-snmp/net-snmp-features.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmp_impl.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmp.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmp-tc.h
-./container_binary_array.lo: ../include/net-snmp/library/getopt.h
 ./container_binary_array.lo: ../include/net-snmp/utilities.h
+./container_binary_array.lo: ../include/net-snmp/library/snmp_client.h
 ./container_binary_array.lo: ../include/net-snmp/library/system.h
 ./container_binary_array.lo: ../include/net-snmp/library/tools.h
 ./container_binary_array.lo: ../include/net-snmp/library/int64.h
 ./container_binary_array.lo: ../include/net-snmp/library/mt_support.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmp_alarm.h
+./container_binary_array.lo: ../include/net-snmp/library/callback.h
 ./container_binary_array.lo: ../include/net-snmp/library/data_list.h
+./container_binary_array.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./container_binary_array.lo: ../include/net-snmp/library/container.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmp_assert.h
 ./container_binary_array.lo: ../include/net-snmp/version.h
+./container_binary_array.lo: ../include/net-snmp/session_api.h
+./container_binary_array.lo: ../include/net-snmp/library/snmp_transport.h
+./container_binary_array.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./container_binary_array.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./container_binary_array.lo: ../include/net-snmp/pdu_api.h
+./container_binary_array.lo: ../include/net-snmp/mib_api.h
+./container_binary_array.lo: ../include/net-snmp/library/mib.h
+./container_binary_array.lo: ../include/net-snmp/library/parse.h
+./container_binary_array.lo: ../include/net-snmp/varbind_api.h
 ./container_binary_array.lo: ../include/net-snmp/config_api.h
 ./container_binary_array.lo: ../include/net-snmp/library/read_config.h
 ./container_binary_array.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -338,67 +204,63 @@
 ./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/net-snmp-features.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 ../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/definitions.h
+./container.lo: ../include/net-snmp/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
-./container.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./container.lo: ../include/net-snmp/library/ucd_compat.h
-./container.lo: ../include/net-snmp/library/mib.h
-./container.lo: ../include/net-snmp/mib_api.h
-./container.lo: ../include/net-snmp/library/parse.h
-./container.lo: ../include/net-snmp/library/oid_stash.h
 ./container.lo: ../include/net-snmp/library/snmp_impl.h
 ./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/snmp_client.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
 ./container.lo: ../include/net-snmp/library/mt_support.h
 ./container.lo: ../include/net-snmp/library/snmp_alarm.h
+./container.lo: ../include/net-snmp/library/callback.h
 ./container.lo: ../include/net-snmp/library/data_list.h
+./container.lo: ../include/net-snmp/library/oid_stash.h
 ./container.lo: ../include/net-snmp/library/check_varbind.h
-./container.lo: ../include/net-snmp/library/container.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_binary_array.h
 ./container.lo: ../include/net-snmp/library/container_list_ssll.h
 ./container.lo: ../include/net-snmp/library/container_iterator.h
 ./container.lo: ../include/net-snmp/library/container.h
 ./container.lo: ../include/net-snmp/library/snmp_assert.h
 ./container.lo: ../include/net-snmp/version.h
+./container.lo: ../include/net-snmp/session_api.h
+./container.lo: ../include/net-snmp/library/snmp_transport.h
+./container.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./container.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./container.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./container.lo: ../include/net-snmp/library/mib.h
+./container.lo: ../include/net-snmp/library/parse.h
+./container.lo: ../include/net-snmp/varbind_api.h
 ./container.lo: ../include/net-snmp/config_api.h
 ./container.lo: ../include/net-snmp/library/read_config.h
 ./container.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -407,69 +269,65 @@
 ./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/net-snmp-features.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
-./container_iterator.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./container_iterator.lo: ../include/net-snmp/library/ucd_compat.h
-./container_iterator.lo: ../include/net-snmp/library/mib.h
-./container_iterator.lo: ../include/net-snmp/mib_api.h
-./container_iterator.lo: ../include/net-snmp/library/parse.h
-./container_iterator.lo: ../include/net-snmp/library/oid_stash.h
 ./container_iterator.lo: ../include/net-snmp/library/snmp_impl.h
 ./container_iterator.lo: ../include/net-snmp/library/snmp.h
 ./container_iterator.lo: ../include/net-snmp/library/snmp-tc.h
-./container_iterator.lo: ../include/net-snmp/library/getopt.h
 ./container_iterator.lo: ../include/net-snmp/utilities.h
+./container_iterator.lo: ../include/net-snmp/library/snmp_client.h
 ./container_iterator.lo: ../include/net-snmp/library/system.h
 ./container_iterator.lo: ../include/net-snmp/library/tools.h
 ./container_iterator.lo: ../include/net-snmp/library/int64.h
 ./container_iterator.lo: ../include/net-snmp/library/mt_support.h
 ./container_iterator.lo: ../include/net-snmp/library/snmp_alarm.h
+./container_iterator.lo: ../include/net-snmp/library/callback.h
 ./container_iterator.lo: ../include/net-snmp/library/data_list.h
+./container_iterator.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./container_iterator.lo: ../include/net-snmp/library/container.h
 ./container_iterator.lo: ../include/net-snmp/library/snmp_assert.h
 ./container_iterator.lo: ../include/net-snmp/version.h
+./container_iterator.lo: ../include/net-snmp/session_api.h
+./container_iterator.lo: ../include/net-snmp/library/snmp_transport.h
+./container_iterator.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./container_iterator.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./container_iterator.lo: ../include/net-snmp/pdu_api.h
+./container_iterator.lo: ../include/net-snmp/mib_api.h
+./container_iterator.lo: ../include/net-snmp/library/mib.h
+./container_iterator.lo: ../include/net-snmp/library/parse.h
+./container_iterator.lo: ../include/net-snmp/varbind_api.h
 ./container_iterator.lo: ../include/net-snmp/config_api.h
 ./container_iterator.lo: ../include/net-snmp/library/read_config.h
 ./container_iterator.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -478,68 +336,64 @@
 ./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/net-snmp-features.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
-./container_list_ssll.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./container_list_ssll.lo: ../include/net-snmp/library/ucd_compat.h
-./container_list_ssll.lo: ../include/net-snmp/library/mib.h
-./container_list_ssll.lo: ../include/net-snmp/mib_api.h
-./container_list_ssll.lo: ../include/net-snmp/library/parse.h
-./container_list_ssll.lo: ../include/net-snmp/library/oid_stash.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmp_impl.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmp.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmp-tc.h
-./container_list_ssll.lo: ../include/net-snmp/library/getopt.h
 ./container_list_ssll.lo: ../include/net-snmp/utilities.h
+./container_list_ssll.lo: ../include/net-snmp/library/snmp_client.h
 ./container_list_ssll.lo: ../include/net-snmp/library/system.h
 ./container_list_ssll.lo: ../include/net-snmp/library/tools.h
 ./container_list_ssll.lo: ../include/net-snmp/library/int64.h
 ./container_list_ssll.lo: ../include/net-snmp/library/mt_support.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmp_alarm.h
+./container_list_ssll.lo: ../include/net-snmp/library/callback.h
 ./container_list_ssll.lo: ../include/net-snmp/library/data_list.h
+./container_list_ssll.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./container_list_ssll.lo: ../include/net-snmp/library/container.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmp_assert.h
 ./container_list_ssll.lo: ../include/net-snmp/version.h
+./container_list_ssll.lo: ../include/net-snmp/session_api.h
+./container_list_ssll.lo: ../include/net-snmp/library/snmp_transport.h
+./container_list_ssll.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./container_list_ssll.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./container_list_ssll.lo: ../include/net-snmp/pdu_api.h
+./container_list_ssll.lo: ../include/net-snmp/mib_api.h
+./container_list_ssll.lo: ../include/net-snmp/library/mib.h
+./container_list_ssll.lo: ../include/net-snmp/library/parse.h
+./container_list_ssll.lo: ../include/net-snmp/varbind_api.h
 ./container_list_ssll.lo: ../include/net-snmp/config_api.h
 ./container_list_ssll.lo: ../include/net-snmp/library/read_config.h
 ./container_list_ssll.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -548,68 +402,64 @@
 ./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/net-snmp-features.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
-./container_null.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./container_null.lo: ../include/net-snmp/library/ucd_compat.h
-./container_null.lo: ../include/net-snmp/library/mib.h
-./container_null.lo: ../include/net-snmp/mib_api.h
-./container_null.lo: ../include/net-snmp/library/parse.h
-./container_null.lo: ../include/net-snmp/library/oid_stash.h
 ./container_null.lo: ../include/net-snmp/library/snmp_impl.h
 ./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/snmp_client.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
 ./container_null.lo: ../include/net-snmp/library/mt_support.h
 ./container_null.lo: ../include/net-snmp/library/snmp_alarm.h
+./container_null.lo: ../include/net-snmp/library/callback.h
 ./container_null.lo: ../include/net-snmp/library/data_list.h
+./container_null.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./container_null.lo: ../include/net-snmp/library/container.h
 ./container_null.lo: ../include/net-snmp/library/snmp_assert.h
 ./container_null.lo: ../include/net-snmp/version.h
+./container_null.lo: ../include/net-snmp/session_api.h
+./container_null.lo: ../include/net-snmp/library/snmp_transport.h
+./container_null.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./container_null.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./container_null.lo: ../include/net-snmp/pdu_api.h
+./container_null.lo: ../include/net-snmp/mib_api.h
+./container_null.lo: ../include/net-snmp/library/mib.h
+./container_null.lo: ../include/net-snmp/library/parse.h
+./container_null.lo: ../include/net-snmp/varbind_api.h
 ./container_null.lo: ../include/net-snmp/config_api.h
 ./container_null.lo: ../include/net-snmp/library/read_config.h
 ./container_null.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -618,68 +468,64 @@
 ./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/net-snmp-features.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 ../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/definitions.h
+./data_list.lo: ../include/net-snmp/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
-./data_list.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./data_list.lo: ../include/net-snmp/library/ucd_compat.h
-./data_list.lo: ../include/net-snmp/library/mib.h
-./data_list.lo: ../include/net-snmp/mib_api.h
-./data_list.lo: ../include/net-snmp/library/parse.h
-./data_list.lo: ../include/net-snmp/library/oid_stash.h
 ./data_list.lo: ../include/net-snmp/library/snmp_impl.h
 ./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/snmp_client.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
 ./data_list.lo: ../include/net-snmp/library/mt_support.h
 ./data_list.lo: ../include/net-snmp/library/snmp_alarm.h
+./data_list.lo: ../include/net-snmp/library/callback.h
 ./data_list.lo: ../include/net-snmp/library/data_list.h
+./data_list.lo: ../include/net-snmp/library/oid_stash.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/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_binary_array.h
 ./data_list.lo: ../include/net-snmp/library/container_list_ssll.h
 ./data_list.lo: ../include/net-snmp/library/container_iterator.h
 ./data_list.lo: ../include/net-snmp/library/container.h
 ./data_list.lo: ../include/net-snmp/library/snmp_assert.h
 ./data_list.lo: ../include/net-snmp/version.h
+./data_list.lo: ../include/net-snmp/session_api.h
+./data_list.lo: ../include/net-snmp/library/snmp_transport.h
+./data_list.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./data_list.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./data_list.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./data_list.lo: ../include/net-snmp/library/mib.h
+./data_list.lo: ../include/net-snmp/library/parse.h
+./data_list.lo: ../include/net-snmp/varbind_api.h
 ./data_list.lo: ../include/net-snmp/config_api.h
 ./data_list.lo: ../include/net-snmp/library/read_config.h
 ./data_list.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -688,44 +534,23 @@
 ./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/net-snmp-features.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/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/definitions.h
 ./default_store.lo: ../include/net-snmp/library/snmp_api.h
-./default_store.lo: ../include/net-snmp/varbind_api.h
-./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
-./default_store.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./default_store.lo: ../include/net-snmp/library/ucd_compat.h
-./default_store.lo: ../include/net-snmp/library/mib.h
-./default_store.lo: ../include/net-snmp/mib_api.h
-./default_store.lo: ../include/net-snmp/library/parse.h
-./default_store.lo: ../include/net-snmp/library/oid_stash.h
 ./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_client.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
@@ -738,7 +563,9 @@
 ./default_store.lo: ../include/net-snmp/library/int64.h
 ./default_store.lo: ../include/net-snmp/library/mt_support.h
 ./default_store.lo: ../include/net-snmp/library/snmp_alarm.h
+./default_store.lo: ../include/net-snmp/library/callback.h
 ./default_store.lo: ../include/net-snmp/library/data_list.h
+./default_store.lo: ../include/net-snmp/library/oid_stash.h
 ./default_store.lo: ../include/net-snmp/library/check_varbind.h
 ./default_store.lo: ../include/net-snmp/library/container.h
 ./default_store.lo: ../include/net-snmp/library/factory.h
@@ -748,137 +575,63 @@
 ./default_store.lo: ../include/net-snmp/library/container.h
 ./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/net-snmp-features.h
-./dir_utils.lo: ../include/net-snmp/net-snmp-includes.h 
-./dir_utils.lo: ../include/net-snmp/definitions.h ../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
-./dir_utils.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./dir_utils.lo: ../include/net-snmp/library/ucd_compat.h
-./dir_utils.lo: ../include/net-snmp/library/mib.h
-./dir_utils.lo: ../include/net-snmp/mib_api.h
-./dir_utils.lo: ../include/net-snmp/library/parse.h
-./dir_utils.lo: ../include/net-snmp/library/oid_stash.h
-./dir_utils.lo: ../include/net-snmp/library/snmp_impl.h
-./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/library/system.h
-./dir_utils.lo: ../include/net-snmp/library/tools.h
-./dir_utils.lo: ../include/net-snmp/library/int64.h
-./dir_utils.lo: ../include/net-snmp/library/mt_support.h
-./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/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
-./dir_utils.lo: ../include/net-snmp/library/container.h
-./dir_utils.lo: ../include/net-snmp/library/snmp_assert.h
-./dir_utils.lo: ../include/net-snmp/version.h
-./dir_utils.lo: ../include/net-snmp/config_api.h
-./dir_utils.lo: ../include/net-snmp/library/read_config.h
-./dir_utils.lo: ../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./dir_utils.lo: ../include/net-snmp/library/snmpv3.h
-./dir_utils.lo: ../include/net-snmp/library/transform_oids.h
-./dir_utils.lo: ../include/net-snmp/library/keytools.h
-./dir_utils.lo: ../include/net-snmp/library/scapi.h
-./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
-./fd_event_manager.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./fd_event_manager.lo: ../include/net-snmp/library/ucd_compat.h
-./fd_event_manager.lo: ../include/net-snmp/library/mib.h
-./fd_event_manager.lo: ../include/net-snmp/mib_api.h
-./fd_event_manager.lo: ../include/net-snmp/library/parse.h
-./fd_event_manager.lo: ../include/net-snmp/library/oid_stash.h
-./fd_event_manager.lo: ../include/net-snmp/net-snmp-features.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmp_impl.h
 ./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/snmp_client.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
 ./fd_event_manager.lo: ../include/net-snmp/library/mt_support.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmp_alarm.h
+./fd_event_manager.lo: ../include/net-snmp/library/callback.h
 ./fd_event_manager.lo: ../include/net-snmp/library/data_list.h
+./fd_event_manager.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./fd_event_manager.lo: ../include/net-snmp/library/container.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmp_assert.h
 ./fd_event_manager.lo: ../include/net-snmp/version.h
+./fd_event_manager.lo: ../include/net-snmp/session_api.h
+./fd_event_manager.lo: ../include/net-snmp/library/snmp_transport.h
+./fd_event_manager.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./fd_event_manager.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./fd_event_manager.lo: ../include/net-snmp/pdu_api.h
+./fd_event_manager.lo: ../include/net-snmp/mib_api.h
+./fd_event_manager.lo: ../include/net-snmp/library/mib.h
+./fd_event_manager.lo: ../include/net-snmp/library/parse.h
+./fd_event_manager.lo: ../include/net-snmp/varbind_api.h
 ./fd_event_manager.lo: ../include/net-snmp/config_api.h
 ./fd_event_manager.lo: ../include/net-snmp/library/read_config.h
 ./fd_event_manager.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -887,70 +640,64 @@
 ./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
 ./file_utils.lo: ../include/net-snmp/net-snmp-config.h
-./file_utils.lo: ../include/net-snmp/net-snmp-features.h
+./file_utils.lo: ../include/net-snmp/system/linux.h
+./file_utils.lo: ../include/net-snmp/system/sysv.h
+./file_utils.lo: ../include/net-snmp/system/generic.h
+./file_utils.lo: ../include/net-snmp/machine/generic.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
-./file_utils.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./file_utils.lo: ../include/net-snmp/library/ucd_compat.h
-./file_utils.lo: ../include/net-snmp/library/mib.h
-./file_utils.lo: ../include/net-snmp/mib_api.h
-./file_utils.lo: ../include/net-snmp/library/parse.h
-./file_utils.lo: ../include/net-snmp/library/oid_stash.h
 ./file_utils.lo: ../include/net-snmp/library/snmp_impl.h
 ./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/snmp_client.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
 ./file_utils.lo: ../include/net-snmp/library/mt_support.h
 ./file_utils.lo: ../include/net-snmp/library/snmp_alarm.h
+./file_utils.lo: ../include/net-snmp/library/callback.h
 ./file_utils.lo: ../include/net-snmp/library/data_list.h
+./file_utils.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./file_utils.lo: ../include/net-snmp/library/container.h
 ./file_utils.lo: ../include/net-snmp/library/snmp_assert.h
 ./file_utils.lo: ../include/net-snmp/version.h
+./file_utils.lo: ../include/net-snmp/session_api.h
+./file_utils.lo: ../include/net-snmp/library/snmp_transport.h
+./file_utils.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./file_utils.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./file_utils.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./file_utils.lo: ../include/net-snmp/library/mib.h
+./file_utils.lo: ../include/net-snmp/library/parse.h
+./file_utils.lo: ../include/net-snmp/varbind_api.h
 ./file_utils.lo: ../include/net-snmp/config_api.h
 ./file_utils.lo: ../include/net-snmp/library/read_config.h
 ./file_utils.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -959,327 +706,112 @@
 ./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/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/net-snmp-features.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/net-snmp-config.h
+./inet_ntop.lo: ../include/net-snmp/system/linux.h
+./inet_ntop.lo: ../include/net-snmp/system/sysv.h
+./inet_ntop.lo: ../include/net-snmp/system/generic.h
+./inet_ntop.lo: ../include/net-snmp/machine/generic.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
-./inet_ntop.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./inet_ntop.lo: ../include/net-snmp/library/ucd_compat.h
-./inet_ntop.lo: ../include/net-snmp/library/mib.h
-./inet_ntop.lo: ../include/net-snmp/mib_api.h
-./inet_ntop.lo: ../include/net-snmp/library/parse.h
-./inet_ntop.lo: ../include/net-snmp/library/oid_stash.h
-./inet_ntop.lo: ../include/net-snmp/net-snmp-features.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.h
-./inet_pton.lo: ../include/net-snmp/net-snmp-config.h 
+./inet_ntop.lo: ../include/net-snmp/library/snmp-tc.h
+./inet_pton.lo: ../include/net-snmp/net-snmp-config.h
+./inet_pton.lo: ../include/net-snmp/system/linux.h
+./inet_pton.lo: ../include/net-snmp/system/sysv.h
+./inet_pton.lo: ../include/net-snmp/system/generic.h
+./inet_pton.lo: ../include/net-snmp/machine/generic.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
-./inet_pton.lo: ../include/net-snmp/varbind_api.h
-./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
-./inet_pton.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./inet_pton.lo: ../include/net-snmp/library/ucd_compat.h
-./inet_pton.lo: ../include/net-snmp/library/mib.h
-./inet_pton.lo: ../include/net-snmp/mib_api.h
-./inet_pton.lo: ../include/net-snmp/library/parse.h
-./inet_pton.lo: ../include/net-snmp/library/oid_stash.h
-./inet_pton.lo: ../include/net-snmp/net-snmp-features.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.h
-./int64.lo: ../include/net-snmp/net-snmp-config.h 
-./int64.lo: ../include/net-snmp/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
+./inet_pton.lo: ../include/net-snmp/library/snmp-tc.h
+./int64.lo: ../include/net-snmp/net-snmp-config.h
+./int64.lo: ../include/net-snmp/system/linux.h
+./int64.lo: ../include/net-snmp/system/sysv.h
+./int64.lo: ../include/net-snmp/system/generic.h
+./int64.lo: ../include/net-snmp/machine/generic.h 
+./int64.lo:  ../include/net-snmp/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
-./int64.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./int64.lo: ../include/net-snmp/library/ucd_compat.h
-./int64.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./int64.lo: ../include/net-snmp/library/parse.h
-./int64.lo: ../include/net-snmp/library/oid_stash.h
-./int64.lo: ../include/net-snmp/net-snmp-features.h
+./int64.lo: ../include/net-snmp/library/asn1.h
 ./int64.lo: ../include/net-snmp/library/snmp_impl.h
 ./int64.lo: ../include/net-snmp/library/snmp.h
 ./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/net-snmp-features.h 
+./keytools.lo: ../include/net-snmp/system/linux.h
+./keytools.lo: ../include/net-snmp/system/sysv.h
+./keytools.lo: ../include/net-snmp/system/generic.h
+./keytools.lo: ../include/net-snmp/machine/generic.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/definitions.h
 ./keytools.lo: ../include/net-snmp/library/snmp_api.h
-./keytools.lo: ../include/net-snmp/varbind_api.h
-./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
-./keytools.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./keytools.lo: ../include/net-snmp/library/ucd_compat.h
-./keytools.lo: ../include/net-snmp/library/mib.h
-./keytools.lo: ../include/net-snmp/mib_api.h
-./keytools.lo: ../include/net-snmp/library/parse.h
-./keytools.lo: ../include/net-snmp/library/oid_stash.h
 ./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_client.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
 ./keytools.lo: ../include/net-snmp/library/int64.h
 ./keytools.lo: ../include/net-snmp/library/mt_support.h
 ./keytools.lo: ../include/net-snmp/library/snmp_alarm.h
+./keytools.lo: ../include/net-snmp/library/callback.h
 ./keytools.lo: ../include/net-snmp/library/data_list.h
+./keytools.lo: ../include/net-snmp/library/oid_stash.h
 ./keytools.lo: ../include/net-snmp/library/check_varbind.h
-./keytools.lo: ../include/net-snmp/library/container.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
 ./keytools.lo: ../include/net-snmp/library/container.h
 ./keytools.lo: ../include/net-snmp/library/snmp_assert.h
-./keytools.lo: ../include/net-snmp/version.h
+./keytools.lo: ../include/net-snmp/version.h 
 ./keytools.lo: ../include/net-snmp/library/scapi.h
 ./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/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
-./large_fd_set.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./large_fd_set.lo: ../include/net-snmp/library/ucd_compat.h
-./large_fd_set.lo: ../include/net-snmp/library/mib.h
-./large_fd_set.lo: ../include/net-snmp/mib_api.h
-./large_fd_set.lo: ../include/net-snmp/library/parse.h
-./large_fd_set.lo: ../include/net-snmp/library/oid_stash.h
-./large_fd_set.lo: ../include/net-snmp/net-snmp-features.h
-./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/net-snmp-features.h
+./lcd_time.lo: ../include/net-snmp/system/linux.h
+./lcd_time.lo: ../include/net-snmp/system/sysv.h
+./lcd_time.lo: ../include/net-snmp/system/generic.h
+./lcd_time.lo: ../include/net-snmp/machine/generic.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/definitions.h
 ./lcd_time.lo: ../include/net-snmp/library/snmp_api.h
-./lcd_time.lo: ../include/net-snmp/varbind_api.h
-./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
-./lcd_time.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./lcd_time.lo: ../include/net-snmp/library/ucd_compat.h
-./lcd_time.lo: ../include/net-snmp/library/mib.h
-./lcd_time.lo: ../include/net-snmp/mib_api.h
-./lcd_time.lo: ../include/net-snmp/library/parse.h
-./lcd_time.lo: ../include/net-snmp/library/oid_stash.h
 ./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_client.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
 ./lcd_time.lo: ../include/net-snmp/library/int64.h
 ./lcd_time.lo: ../include/net-snmp/library/mt_support.h
 ./lcd_time.lo: ../include/net-snmp/library/snmp_alarm.h
+./lcd_time.lo: ../include/net-snmp/library/callback.h
 ./lcd_time.lo: ../include/net-snmp/library/data_list.h
+./lcd_time.lo: ../include/net-snmp/library/oid_stash.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/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
@@ -1288,111 +820,60 @@
 ./lcd_time.lo: ../include/net-snmp/library/snmp_assert.h
 ./lcd_time.lo: ../include/net-snmp/version.h
 ./lcd_time.lo: ../include/net-snmp/library/snmp_secmod.h
+./lcd_time.lo: ../include/net-snmp/library/snmp_transport.h
 ./lcd_time.lo: ../include/net-snmp/library/snmpusm.h
 ./lcd_time.lo: ../include/net-snmp/library/lcd_time.h
 ./lcd_time.lo: ../include/net-snmp/library/scapi.h
 ./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/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/net-snmp-config.h
+./md5.lo: ../include/net-snmp/system/linux.h
+./md5.lo: ../include/net-snmp/system/sysv.h
+./md5.lo: ../include/net-snmp/system/generic.h
+./md5.lo: ../include/net-snmp/machine/generic.h 
+./md5.lo:  ../include/net-snmp/utilities.h
+./md5.lo: ../include/net-snmp/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/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/snmpIPXDomain.h
-./md5.lo:  ../include/net-snmp/library/ucd_compat.h
-./md5.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./md5.lo: ../include/net-snmp/library/parse.h
-./md5.lo: ../include/net-snmp/library/oid_stash.h
-./md5.lo: ../include/net-snmp/net-snmp-features.h
+./md5.lo: ../include/net-snmp/library/asn1.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/getopt.h
-./md5.lo: ../include/net-snmp/utilities.h 
+./md5.lo: ../include/net-snmp/library/snmp_client.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
 ./md5.lo: ../include/net-snmp/library/mt_support.h
 ./md5.lo: ../include/net-snmp/library/snmp_alarm.h
+./md5.lo: ../include/net-snmp/library/callback.h
 ./md5.lo: ../include/net-snmp/library/data_list.h
+./md5.lo: ../include/net-snmp/library/oid_stash.h
 ./md5.lo: ../include/net-snmp/library/check_varbind.h
-./md5.lo: ../include/net-snmp/library/container.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_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/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
+./md5.lo: ../include/net-snmp/version.h ../include/net-snmp/library/md5.h
 ./mib.lo: ../include/net-snmp/net-snmp-config.h
-./mib.lo: ../include/net-snmp/net-snmp-features.h 
-./mib.lo:  ../include/net-snmp/types.h
-./mib.lo: ../include/net-snmp/library/oid.h
-./mib.lo: ../include/net-snmp/library/types.h
+./mib.lo: ../include/net-snmp/system/linux.h
+./mib.lo: ../include/net-snmp/system/sysv.h
+./mib.lo: ../include/net-snmp/system/generic.h
+./mib.lo: ../include/net-snmp/machine/generic.h 
+./mib.lo: ../include/net-snmp/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
-./mib.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./mib.lo:  ../include/net-snmp/library/ucd_compat.h
-./mib.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./mib.lo: ../include/net-snmp/library/parse.h
-./mib.lo: ../include/net-snmp/library/oid_stash.h
+./mib.lo: ../include/net-snmp/library/asn1.h
 ./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_client.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
@@ -1404,77 +885,80 @@
 ./mib.lo: ../include/net-snmp/library/int64.h
 ./mib.lo: ../include/net-snmp/library/mt_support.h
 ./mib.lo: ../include/net-snmp/library/snmp_alarm.h
+./mib.lo: ../include/net-snmp/library/callback.h
 ./mib.lo: ../include/net-snmp/library/data_list.h
+./mib.lo: ../include/net-snmp/library/oid_stash.h
 ./mib.lo: ../include/net-snmp/library/check_varbind.h
-./mib.lo: ../include/net-snmp/library/container.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
 ./mib.lo: ../include/net-snmp/library/container.h
 ./mib.lo: ../include/net-snmp/library/snmp_assert.h
-./mib.lo: ../include/net-snmp/version.h
-./mt_support.lo: ../include/net-snmp/net-snmp-config.h 
+./mib.lo: ../include/net-snmp/version.h ../include/net-snmp/library/mib.h
+./mib.lo: ../include/net-snmp/library/parse.h
+./mt_support.lo: ../include/net-snmp/net-snmp-config.h
+./mt_support.lo: ../include/net-snmp/system/linux.h
+./mt_support.lo: ../include/net-snmp/system/sysv.h
+./mt_support.lo: ../include/net-snmp/system/generic.h
+./mt_support.lo: ../include/net-snmp/machine/generic.h 
 ./mt_support.lo: ../include/net-snmp/library/mt_support.h
-./oid_stash.lo: ../include/net-snmp/net-snmp-config.h 
-./oid_stash.lo: ../include/net-snmp/net-snmp-features.h
-./oid_stash.lo: ../include/net-snmp/net-snmp-includes.h 
+./oid_stash.lo: ../include/net-snmp/net-snmp-config.h
+./oid_stash.lo: ../include/net-snmp/system/linux.h
+./oid_stash.lo: ../include/net-snmp/system/sysv.h
+./oid_stash.lo: ../include/net-snmp/system/generic.h
+./oid_stash.lo: ../include/net-snmp/machine/generic.h 
+./oid_stash.lo:  ../include/net-snmp/net-snmp-includes.h
 ./oid_stash.lo: ../include/net-snmp/definitions.h ../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
-./oid_stash.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./oid_stash.lo: ../include/net-snmp/library/ucd_compat.h
-./oid_stash.lo: ../include/net-snmp/library/mib.h
-./oid_stash.lo: ../include/net-snmp/mib_api.h
-./oid_stash.lo: ../include/net-snmp/library/parse.h
-./oid_stash.lo: ../include/net-snmp/library/oid_stash.h
 ./oid_stash.lo: ../include/net-snmp/library/snmp_impl.h
 ./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/snmp_client.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
 ./oid_stash.lo: ../include/net-snmp/library/mt_support.h
 ./oid_stash.lo: ../include/net-snmp/library/snmp_alarm.h
+./oid_stash.lo: ../include/net-snmp/library/callback.h
 ./oid_stash.lo: ../include/net-snmp/library/data_list.h
+./oid_stash.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./oid_stash.lo: ../include/net-snmp/library/container.h
 ./oid_stash.lo: ../include/net-snmp/library/snmp_assert.h
 ./oid_stash.lo: ../include/net-snmp/version.h
+./oid_stash.lo: ../include/net-snmp/session_api.h
+./oid_stash.lo: ../include/net-snmp/library/snmp_transport.h
+./oid_stash.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./oid_stash.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./oid_stash.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./oid_stash.lo: ../include/net-snmp/library/mib.h
+./oid_stash.lo: ../include/net-snmp/library/parse.h
+./oid_stash.lo: ../include/net-snmp/varbind_api.h
 ./oid_stash.lo: ../include/net-snmp/config_api.h
 ./oid_stash.lo: ../include/net-snmp/library/read_config.h
 ./oid_stash.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -1483,78 +967,23 @@
 ./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/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/net-snmp-features.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/net-snmp-features.h 
+./parse.lo: ../include/net-snmp/system/linux.h
+./parse.lo: ../include/net-snmp/system/sysv.h
+./parse.lo: ../include/net-snmp/system/generic.h
+./parse.lo: ../include/net-snmp/machine/generic.h 
 ./parse.lo:  ../include/net-snmp/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/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
-./parse.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./parse.lo: ../include/net-snmp/library/ucd_compat.h
-./parse.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./parse.lo: ../include/net-snmp/library/parse.h
-./parse.lo: ../include/net-snmp/library/oid_stash.h
+./parse.lo: ../include/net-snmp/library/asn1.h
 ./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_client.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
@@ -1567,66 +996,55 @@
 ./parse.lo: ../include/net-snmp/library/int64.h
 ./parse.lo: ../include/net-snmp/library/mt_support.h
 ./parse.lo: ../include/net-snmp/library/snmp_alarm.h
+./parse.lo: ../include/net-snmp/library/callback.h
 ./parse.lo: ../include/net-snmp/library/data_list.h
+./parse.lo: ../include/net-snmp/library/oid_stash.h
 ./parse.lo: ../include/net-snmp/library/check_varbind.h
-./parse.lo: ../include/net-snmp/library/container.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
 ./parse.lo: ../include/net-snmp/library/container.h
 ./parse.lo: ../include/net-snmp/library/snmp_assert.h
-./parse.lo: ../include/net-snmp/version.h
+./parse.lo: ../include/net-snmp/version.h ../include/net-snmp/library/parse.h
+./parse.lo: ../include/net-snmp/library/mib.h
 ./pkcs.lo: ../include/net-snmp/net-snmp-config.h
+./pkcs.lo: ../include/net-snmp/system/linux.h
+./pkcs.lo: ../include/net-snmp/system/sysv.h
+./pkcs.lo: ../include/net-snmp/system/generic.h
+./pkcs.lo: ../include/net-snmp/machine/generic.h
 ./read_config.lo: ../include/net-snmp/net-snmp-config.h
-./read_config.lo: ../include/net-snmp/net-snmp-features.h
+./read_config.lo: ../include/net-snmp/system/linux.h
+./read_config.lo: ../include/net-snmp/system/sysv.h
+./read_config.lo: ../include/net-snmp/system/generic.h
+./read_config.lo: ../include/net-snmp/machine/generic.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
-./read_config.lo: ../include/net-snmp/varbind_api.h
-./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
-./read_config.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./read_config.lo: ../include/net-snmp/library/ucd_compat.h
-./read_config.lo: ../include/net-snmp/library/mib.h
-./read_config.lo: ../include/net-snmp/mib_api.h
-./read_config.lo: ../include/net-snmp/library/parse.h
-./read_config.lo: ../include/net-snmp/library/oid_stash.h
 ./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_client.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
 ./read_config.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./read_config.lo: ../include/net-snmp/library/snmp_enum.h
 ./read_config.lo: ../include/net-snmp/library/vacm.h
-./read_config.lo: ../include/net-snmp/utilities.h 
+./read_config.lo: ../include/net-snmp/utilities.h
 ./read_config.lo: ../include/net-snmp/library/system.h
 ./read_config.lo: ../include/net-snmp/library/tools.h
 ./read_config.lo: ../include/net-snmp/library/int64.h
 ./read_config.lo: ../include/net-snmp/library/mt_support.h
 ./read_config.lo: ../include/net-snmp/library/snmp_alarm.h
+./read_config.lo: ../include/net-snmp/library/callback.h
 ./read_config.lo: ../include/net-snmp/library/data_list.h
+./read_config.lo: ../include/net-snmp/library/oid_stash.h
 ./read_config.lo: ../include/net-snmp/library/check_varbind.h
 ./read_config.lo: ../include/net-snmp/library/container.h
 ./read_config.lo: ../include/net-snmp/library/factory.h
@@ -1636,85 +1054,35 @@
 ./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/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/net-snmp-features.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
+./read_config.lo: ../include/net-snmp/library/mib.h
+./read_config.lo: ../include/net-snmp/library/parse.h
 ./scapi.lo: ../include/net-snmp/net-snmp-config.h
-./scapi.lo: ../include/net-snmp/net-snmp-features.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/system/linux.h
+./scapi.lo: ../include/net-snmp/system/sysv.h
+./scapi.lo: ../include/net-snmp/system/generic.h
+./scapi.lo: ../include/net-snmp/machine/generic.h 
+./scapi.lo:  ../include/net-snmp/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
-./scapi.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./scapi.lo: ../include/net-snmp/library/ucd_compat.h
-./scapi.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./scapi.lo: ../include/net-snmp/library/parse.h
-./scapi.lo: ../include/net-snmp/library/oid_stash.h
+./scapi.lo: ../include/net-snmp/library/asn1.h
 ./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_client.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
 ./scapi.lo: ../include/net-snmp/library/int64.h
 ./scapi.lo: ../include/net-snmp/library/mt_support.h
 ./scapi.lo: ../include/net-snmp/library/snmp_alarm.h
+./scapi.lo: ../include/net-snmp/library/callback.h
 ./scapi.lo: ../include/net-snmp/library/data_list.h
+./scapi.lo: ../include/net-snmp/library/oid_stash.h
 ./scapi.lo: ../include/net-snmp/library/check_varbind.h
-./scapi.lo: ../include/net-snmp/library/container.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
@@ -1723,59 +1091,67 @@
 ./scapi.lo: ../include/net-snmp/library/snmp_assert.h
 ./scapi.lo: ../include/net-snmp/version.h
 ./scapi.lo: ../include/net-snmp/library/snmp_secmod.h
+./scapi.lo: ../include/net-snmp/library/snmp_transport.h
 ./scapi.lo: ../include/net-snmp/library/snmpusm.h
 ./scapi.lo: ../include/net-snmp/library/keytools.h
 ./scapi.lo: ../include/net-snmp/library/scapi.h
+./scapi.lo: ../include/net-snmp/library/mib.h
 ./scapi.lo: ../include/net-snmp/library/transform_oids.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
+./snmpAAL5PVCDomain.lo: ../include/net-snmp/net-snmp-config.h
+./snmpAAL5PVCDomain.lo: ../include/net-snmp/system/linux.h
+./snmpAAL5PVCDomain.lo: ../include/net-snmp/system/sysv.h
+./snmpAAL5PVCDomain.lo: ../include/net-snmp/system/generic.h
+./snmpAAL5PVCDomain.lo: ../include/net-snmp/machine/generic.h
+./snmpAAL5PVCDomain.lo: ../include/net-snmp/types.h 
+./snmpAAL5PVCDomain.lo: ../include/net-snmp/definitions.h
+./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_api.h
+./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/asn1.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_client.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/snmp_transport.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/system/linux.h
+./snmp_alarm.lo: ../include/net-snmp/system/sysv.h
+./snmp_alarm.lo: ../include/net-snmp/system/generic.h
+./snmp_alarm.lo: ../include/net-snmp/machine/generic.h 
+./snmp_alarm.lo:  ../include/net-snmp/types.h
 ./snmp_alarm.lo: ../include/net-snmp/definitions.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmp_api.h
-./snmp_alarm.lo: ../include/net-snmp/varbind_api.h
-./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
-./snmp_alarm.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_alarm.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_alarm.lo: ../include/net-snmp/library/mib.h
-./snmp_alarm.lo: ../include/net-snmp/mib_api.h
-./snmp_alarm.lo: ../include/net-snmp/library/parse.h
-./snmp_alarm.lo: ../include/net-snmp/library/oid_stash.h
-./snmp_alarm.lo: ../include/net-snmp/net-snmp-features.h
 ./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_client.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
 ./snmp_alarm.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmp_alarm.lo: ../include/net-snmp/library/vacm.h
-./snmp_alarm.lo: ../include/net-snmp/utilities.h 
+./snmp_alarm.lo: ../include/net-snmp/utilities.h
 ./snmp_alarm.lo: ../include/net-snmp/library/system.h
 ./snmp_alarm.lo: ../include/net-snmp/library/tools.h
 ./snmp_alarm.lo: ../include/net-snmp/library/int64.h
 ./snmp_alarm.lo: ../include/net-snmp/library/mt_support.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmp_alarm.lo: ../include/net-snmp/library/callback.h
 ./snmp_alarm.lo: ../include/net-snmp/library/data_list.h
+./snmp_alarm.lo: ../include/net-snmp/library/oid_stash.h
 ./snmp_alarm.lo: ../include/net-snmp/library/check_varbind.h
 ./snmp_alarm.lo: ../include/net-snmp/library/container.h
 ./snmp_alarm.lo: ../include/net-snmp/library/factory.h
@@ -1786,56 +1162,38 @@
 ./snmp_alarm.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmp_alarm.lo: ../include/net-snmp/version.h
 ./snmp_api.lo: ../include/net-snmp/net-snmp-config.h
-./snmp_api.lo: ../include/net-snmp/net-snmp-features.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/system/linux.h
+./snmp_api.lo: ../include/net-snmp/system/sysv.h
+./snmp_api.lo: ../include/net-snmp/system/generic.h
+./snmp_api.lo: ../include/net-snmp/machine/generic.h 
+./snmp_api.lo:  ../include/net-snmp/types.h
+./snmp_api.lo:  ../include/net-snmp/definitions.h
 ./snmp_api.lo: ../include/net-snmp/library/snmp_api.h
-./snmp_api.lo: ../include/net-snmp/varbind_api.h
-./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
-./snmp_api.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_api.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_api.lo: ../include/net-snmp/library/mib.h
-./snmp_api.lo: ../include/net-snmp/mib_api.h
-./snmp_api.lo: ../include/net-snmp/library/parse.h
-./snmp_api.lo: ../include/net-snmp/library/oid_stash.h
 ./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_client.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
 ./snmp_api.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmp_api.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmp_api.lo: ../include/net-snmp/library/vacm.h
-./snmp_api.lo: ../include/net-snmp/utilities.h 
+./snmp_api.lo: ../include/net-snmp/utilities.h
 ./snmp_api.lo: ../include/net-snmp/library/system.h
 ./snmp_api.lo: ../include/net-snmp/library/tools.h
 ./snmp_api.lo: ../include/net-snmp/library/int64.h
 ./snmp_api.lo: ../include/net-snmp/library/mt_support.h
 ./snmp_api.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmp_api.lo: ../include/net-snmp/library/callback.h
 ./snmp_api.lo: ../include/net-snmp/library/data_list.h
+./snmp_api.lo: ../include/net-snmp/library/oid_stash.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/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
@@ -1843,58 +1201,44 @@
 ./snmp_api.lo: ../include/net-snmp/library/container.h
 ./snmp_api.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmp_api.lo: ../include/net-snmp/version.h
+./snmp_api.lo: ../include/net-snmp/library/parse.h
+./snmp_api.lo: ../include/net-snmp/library/mib.h
 ./snmp_api.lo: ../include/net-snmp/library/snmpv3.h
 ./snmp_api.lo: ../include/net-snmp/library/snmp_secmod.h
-./snmp_api.lo: ../include/net-snmp/library/large_fd_set.h
+./snmp_api.lo: ../include/net-snmp/library/snmp_transport.h
+./snmp_api.lo: ../include/net-snmp/library/snmpusm.h
 ./snmp_api.lo: ../include/net-snmp/library/keytools.h
 ./snmp_api.lo: ../include/net-snmp/library/lcd_time.h
+./snmp_api.lo: ../include/net-snmp/library/snmp_service.h
 ./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/net-snmp-config.h
+./snmp_auth.lo: ../include/net-snmp/system/linux.h
+./snmp_auth.lo: ../include/net-snmp/system/sysv.h
+./snmp_auth.lo: ../include/net-snmp/system/generic.h
+./snmp_auth.lo: ../include/net-snmp/machine/generic.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
-./snmp_auth.lo: ../include/net-snmp/varbind_api.h
-./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
-./snmp_auth.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_auth.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_auth.lo: ../include/net-snmp/library/mib.h
-./snmp_auth.lo: ../include/net-snmp/mib_api.h
-./snmp_auth.lo: ../include/net-snmp/library/parse.h
-./snmp_auth.lo: ../include/net-snmp/library/oid_stash.h
-./snmp_auth.lo: ../include/net-snmp/net-snmp-features.h
 ./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_client.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
 ./snmp_auth.lo: ../include/net-snmp/library/int64.h
 ./snmp_auth.lo: ../include/net-snmp/library/mt_support.h
 ./snmp_auth.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmp_auth.lo: ../include/net-snmp/library/callback.h
 ./snmp_auth.lo: ../include/net-snmp/library/data_list.h
+./snmp_auth.lo: ../include/net-snmp/library/oid_stash.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/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
@@ -1902,119 +1246,103 @@
 ./snmp_auth.lo: ../include/net-snmp/library/container.h
 ./snmp_auth.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmp_auth.lo: ../include/net-snmp/version.h
+./snmp_auth.lo: ../include/net-snmp/library/mib.h
 ./snmp_auth.lo: ../include/net-snmp/library/md5.h
 ./snmp_auth.lo: ../include/net-snmp/library/scapi.h
-./snmp.lo: ../include/net-snmp/net-snmp-config.h 
+./snmp.lo: ../include/net-snmp/net-snmp-config.h
+./snmp.lo: ../include/net-snmp/system/linux.h
+./snmp.lo: ../include/net-snmp/system/sysv.h
+./snmp.lo: ../include/net-snmp/system/generic.h
+./snmp.lo: ../include/net-snmp/machine/generic.h 
 ./snmp.lo:  ../include/net-snmp/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
-./snmp.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp.lo:  ../include/net-snmp/library/ucd_compat.h
-./snmp.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./snmp.lo: ../include/net-snmp/library/parse.h
-./snmp.lo: ../include/net-snmp/library/oid_stash.h
-./snmp.lo: ../include/net-snmp/net-snmp-features.h
+./snmp.lo: ../include/net-snmp/library/asn1.h
 ./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_client.h
+./snmp.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp.lo: ../include/net-snmp/library/snmp_logging.h 
+./snmp.lo: ../include/net-snmp/library/mib.h
+./snmpCallbackDomain.lo: ../include/net-snmp/net-snmp-config.h
+./snmpCallbackDomain.lo: ../include/net-snmp/system/linux.h
+./snmpCallbackDomain.lo: ../include/net-snmp/system/sysv.h
+./snmpCallbackDomain.lo: ../include/net-snmp/system/generic.h
+./snmpCallbackDomain.lo: ../include/net-snmp/machine/generic.h
+./snmpCallbackDomain.lo: ../include/net-snmp/types.h 
+./snmpCallbackDomain.lo: ../include/net-snmp/definitions.h
+./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_api.h
+./snmpCallbackDomain.lo: ../include/net-snmp/library/asn1.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_client.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/callback.h
+./snmpCallbackDomain.lo: ../include/net-snmp/library/data_list.h
+./snmpCallbackDomain.lo: ../include/net-snmp/library/oid_stash.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
+./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpCallbackDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./snmpCallbackDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_client.lo: ../include/net-snmp/net-snmp-config.h
-./snmp_client.lo: ../include/net-snmp/net-snmp-features.h
+./snmp_client.lo: ../include/net-snmp/system/linux.h
+./snmp_client.lo: ../include/net-snmp/system/sysv.h
+./snmp_client.lo: ../include/net-snmp/system/generic.h
+./snmp_client.lo: ../include/net-snmp/machine/generic.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
-./snmp_client.lo: ../include/net-snmp/varbind_api.h
-./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
-./snmp_client.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_client.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_client.lo: ../include/net-snmp/library/mib.h
-./snmp_client.lo: ../include/net-snmp/mib_api.h
-./snmp_client.lo: ../include/net-snmp/library/parse.h
-./snmp_client.lo: ../include/net-snmp/library/oid_stash.h
 ./snmp_client.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp_client.lo: ../include/net-snmp/library/snmp.h
 ./snmp_client.lo: ../include/net-snmp/library/snmp-tc.h
-./snmp_client.lo: ../include/net-snmp/agent/ds_agent.h
-./snmp_client.lo: ../include/net-snmp/library/default_store.h
+./snmp_client.lo: ../include/net-snmp/library/snmp_client.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_transport.h
+./snmp_client.lo: ../include/net-snmp/library/mib.h
+./snmp_client.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_client.lo: ../include/net-snmp/library/snmp_assert.h
-./snmp_debug.lo: ../include/net-snmp/net-snmp-config.h 
+./snmp_debug.lo: ../include/net-snmp/net-snmp-config.h
+./snmp_debug.lo: ../include/net-snmp/system/linux.h
+./snmp_debug.lo: ../include/net-snmp/system/sysv.h
+./snmp_debug.lo: ../include/net-snmp/system/generic.h
+./snmp_debug.lo: ../include/net-snmp/machine/generic.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
-./snmp_debug.lo: ../include/net-snmp/varbind_api.h
-./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
-./snmp_debug.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_debug.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_debug.lo: ../include/net-snmp/library/mib.h
-./snmp_debug.lo: ../include/net-snmp/mib_api.h
-./snmp_debug.lo: ../include/net-snmp/library/parse.h
-./snmp_debug.lo: ../include/net-snmp/library/oid_stash.h
-./snmp_debug.lo: ../include/net-snmp/net-snmp-features.h
+./snmp_debug.lo: ../include/net-snmp/definitions.h
+./snmp_debug.lo: ../include/net-snmp/library/snmp_api.h
+./snmp_debug.lo: ../include/net-snmp/library/asn1.h
 ./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_client.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
@@ -2027,7 +1355,9 @@
 ./snmp_debug.lo: ../include/net-snmp/library/int64.h
 ./snmp_debug.lo: ../include/net-snmp/library/mt_support.h
 ./snmp_debug.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmp_debug.lo: ../include/net-snmp/library/callback.h
 ./snmp_debug.lo: ../include/net-snmp/library/data_list.h
+./snmp_debug.lo: ../include/net-snmp/library/oid_stash.h
 ./snmp_debug.lo: ../include/net-snmp/library/check_varbind.h
 ./snmp_debug.lo: ../include/net-snmp/library/container.h
 ./snmp_debug.lo: ../include/net-snmp/library/factory.h
@@ -2037,39 +1367,16 @@
 ./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
+./snmp_debug.lo: ../include/net-snmp/library/mib.h
 ./snmp_enum.lo: ../include/net-snmp/net-snmp-config.h
-./snmp_enum.lo: ../include/net-snmp/net-snmp-features.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/system/linux.h
+./snmp_enum.lo: ../include/net-snmp/system/sysv.h
+./snmp_enum.lo: ../include/net-snmp/system/generic.h
+./snmp_enum.lo: ../include/net-snmp/machine/generic.h 
+./snmp_enum.lo:  ../include/net-snmp/types.h
+./snmp_enum.lo:  ../include/net-snmp/definitions.h
 ./snmp_enum.lo: ../include/net-snmp/library/snmp_api.h
-./snmp_enum.lo: ../include/net-snmp/varbind_api.h
-./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
-./snmp_enum.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_enum.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_enum.lo: ../include/net-snmp/library/mib.h
-./snmp_enum.lo: ../include/net-snmp/mib_api.h
-./snmp_enum.lo: ../include/net-snmp/library/parse.h
-./snmp_enum.lo: ../include/net-snmp/library/oid_stash.h
 ./snmp_enum.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp_enum.lo: ../include/net-snmp/library/snmp.h
 ./snmp_enum.lo: ../include/net-snmp/library/snmp-tc.h
@@ -2080,39 +1387,44 @@
 ./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
-./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 ../include/net-snmp/types.h
-./snmpksm.lo: ../include/net-snmp/library/oid.h
-./snmpksm.lo: ../include/net-snmp/library/types.h
+./snmpIPXDomain.lo: ../include/net-snmp/net-snmp-config.h
+./snmpIPXDomain.lo: ../include/net-snmp/system/linux.h
+./snmpIPXDomain.lo: ../include/net-snmp/system/sysv.h
+./snmpIPXDomain.lo: ../include/net-snmp/system/generic.h
+./snmpIPXDomain.lo: ../include/net-snmp/machine/generic.h
+./snmpIPXDomain.lo:  ../include/net-snmp/types.h
+./snmpIPXDomain.lo: ../include/net-snmp/definitions.h
+./snmpIPXDomain.lo: ../include/net-snmp/library/snmp_api.h
+./snmpIPXDomain.lo: ../include/net-snmp/library/asn1.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_client.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
+./snmpIPXDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpIPXDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./snmpksm.lo: ../include/net-snmp/net-snmp-config.h
+./snmpksm.lo: ../include/net-snmp/system/linux.h
+./snmpksm.lo: ../include/net-snmp/system/sysv.h
+./snmpksm.lo: ../include/net-snmp/system/generic.h
+./snmpksm.lo: ../include/net-snmp/machine/generic.h 
+./snmpksm.lo:  ../include/net-snmp/output_api.h
+./snmpksm.lo: ../include/net-snmp/types.h 
 ./snmpksm.lo: ../include/net-snmp/definitions.h
 ./snmpksm.lo: ../include/net-snmp/library/snmp_api.h
-./snmpksm.lo: ../include/net-snmp/varbind_api.h
-./snmpksm.lo: ../include/net-snmp/library/snmp_client.h
-./snmpksm.lo: ../include/net-snmp/pdu_api.h
 ./snmpksm.lo: ../include/net-snmp/library/asn1.h
-./snmpksm.lo: ../include/net-snmp/session_api.h
-./snmpksm.lo: ../include/net-snmp/library/callback.h
-./snmpksm.lo: ../include/net-snmp/library/snmp_transport.h
-./snmpksm.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpksm.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpksm.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./snmpksm.lo: ../include/net-snmp/library/parse.h
-./snmpksm.lo: ../include/net-snmp/library/oid_stash.h
-./snmpksm.lo: ../include/net-snmp/net-snmp-features.h
 ./snmpksm.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpksm.lo: ../include/net-snmp/library/snmp.h
 ./snmpksm.lo: ../include/net-snmp/library/snmp-tc.h
+./snmpksm.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpksm.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpksm.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpksm.lo: ../include/net-snmp/config_api.h
@@ -2127,7 +1439,9 @@
 ./snmpksm.lo: ../include/net-snmp/library/int64.h
 ./snmpksm.lo: ../include/net-snmp/library/mt_support.h
 ./snmpksm.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpksm.lo: ../include/net-snmp/library/callback.h
 ./snmpksm.lo: ../include/net-snmp/library/data_list.h
+./snmpksm.lo: ../include/net-snmp/library/oid_stash.h
 ./snmpksm.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpksm.lo: ../include/net-snmp/library/container.h
 ./snmpksm.lo: ../include/net-snmp/library/factory.h
@@ -2142,43 +1456,24 @@
 ./snmpksm.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpksm.lo: ../include/net-snmp/library/scapi.h
 ./snmpksm.lo: ../include/net-snmp/library/snmp_secmod.h
+./snmpksm.lo: ../include/net-snmp/library/snmp_transport.h
 ./snmpksm.lo: ../include/net-snmp/library/snmpksm.h
 ./snmp_logging.lo: ../include/net-snmp/net-snmp-config.h
-./snmp_logging.lo: ../include/net-snmp/net-snmp-features.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/system/linux.h
+./snmp_logging.lo: ../include/net-snmp/system/sysv.h
+./snmp_logging.lo: ../include/net-snmp/system/generic.h
+./snmp_logging.lo: ../include/net-snmp/machine/generic.h 
+./snmp_logging.lo:  ../include/net-snmp/types.h
+./snmp_logging.lo:  ../include/net-snmp/definitions.h
 ./snmp_logging.lo: ../include/net-snmp/library/snmp_api.h
-./snmp_logging.lo: ../include/net-snmp/varbind_api.h
-./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
-./snmp_logging.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_logging.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_logging.lo: ../include/net-snmp/library/mib.h
-./snmp_logging.lo: ../include/net-snmp/mib_api.h
-./snmp_logging.lo: ../include/net-snmp/library/parse.h
-./snmp_logging.lo: ../include/net-snmp/library/oid_stash.h
 ./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_client.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
@@ -2191,7 +1486,9 @@
 ./snmp_logging.lo: ../include/net-snmp/library/int64.h
 ./snmp_logging.lo: ../include/net-snmp/library/mt_support.h
 ./snmp_logging.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmp_logging.lo: ../include/net-snmp/library/callback.h
 ./snmp_logging.lo: ../include/net-snmp/library/data_list.h
+./snmp_logging.lo: ../include/net-snmp/library/oid_stash.h
 ./snmp_logging.lo: ../include/net-snmp/library/check_varbind.h
 ./snmp_logging.lo: ../include/net-snmp/library/container.h
 ./snmp_logging.lo: ../include/net-snmp/library/factory.h
@@ -2201,121 +1498,37 @@
 ./snmp_logging.lo: ../include/net-snmp/library/container.h
 ./snmp_logging.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmp_logging.lo: ../include/net-snmp/version.h
-./snmp_openssl.lo: ../include/net-snmp/net-snmp-config.h
-./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
-./snmp_openssl.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_openssl.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_openssl.lo: ../include/net-snmp/library/mib.h
-./snmp_openssl.lo: ../include/net-snmp/mib_api.h
-./snmp_openssl.lo: ../include/net-snmp/library/parse.h
-./snmp_openssl.lo: ../include/net-snmp/library/oid_stash.h
-./snmp_openssl.lo: ../include/net-snmp/net-snmp-features.h
-./snmp_openssl.lo: ../include/net-snmp/library/snmp_impl.h
-./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/library/system.h
-./snmp_openssl.lo: ../include/net-snmp/library/tools.h
-./snmp_openssl.lo: ../include/net-snmp/library/int64.h
-./snmp_openssl.lo: ../include/net-snmp/library/mt_support.h
-./snmp_openssl.lo: ../include/net-snmp/library/snmp_alarm.h
-./snmp_openssl.lo: ../include/net-snmp/library/data_list.h
-./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/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
-./snmp_openssl.lo: ../include/net-snmp/library/container.h
-./snmp_openssl.lo: ../include/net-snmp/library/snmp_assert.h
-./snmp_openssl.lo: ../include/net-snmp/version.h
-./snmp_openssl.lo: ../include/net-snmp/config_api.h
-./snmp_openssl.lo: ../include/net-snmp/library/read_config.h
-./snmp_openssl.lo: ../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./snmp_openssl.lo: ../include/net-snmp/library/snmpv3.h
-./snmp_openssl.lo: ../include/net-snmp/library/transform_oids.h
-./snmp_openssl.lo: ../include/net-snmp/library/keytools.h
-./snmp_openssl.lo: ../include/net-snmp/library/scapi.h
-./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_parse_args.lo: ../include/net-snmp/net-snmp-config.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/system/linux.h
+./snmp_parse_args.lo: ../include/net-snmp/system/sysv.h
+./snmp_parse_args.lo: ../include/net-snmp/system/generic.h
+./snmp_parse_args.lo: ../include/net-snmp/machine/generic.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/definitions.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
-./snmp_parse_args.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_parse_args.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_parse_args.lo: ../include/net-snmp/library/mib.h
-./snmp_parse_args.lo: ../include/net-snmp/mib_api.h
-./snmp_parse_args.lo: ../include/net-snmp/library/parse.h
-./snmp_parse_args.lo: ../include/net-snmp/library/oid_stash.h
-./snmp_parse_args.lo: ../include/net-snmp/net-snmp-features.h
 ./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/library/getopt.h
-./snmp_parse_args.lo: ../include/net-snmp/utilities.h 
+./snmp_parse_args.lo: ../include/net-snmp/output_api.h
+./snmp_parse_args.lo: ../include/net-snmp/library/snmp_client.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/utilities.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/system.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/tools.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/int64.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/mt_support.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmp_parse_args.lo: ../include/net-snmp/library/callback.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/data_list.h
+./snmp_parse_args.lo: ../include/net-snmp/library/oid_stash.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/check_varbind.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/container.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/factory.h
@@ -2325,71 +1538,43 @@
 ./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/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/mib.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/library/parse.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/net-snmp-config.h
+./snmp_secmod.lo: ../include/net-snmp/system/linux.h
+./snmp_secmod.lo: ../include/net-snmp/system/sysv.h
+./snmp_secmod.lo: ../include/net-snmp/system/generic.h
+./snmp_secmod.lo: ../include/net-snmp/machine/generic.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/definitions.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmp_api.h
-./snmp_secmod.lo: ../include/net-snmp/varbind_api.h
-./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
-./snmp_secmod.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_secmod.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_secmod.lo: ../include/net-snmp/library/mib.h
-./snmp_secmod.lo: ../include/net-snmp/mib_api.h
-./snmp_secmod.lo: ../include/net-snmp/library/parse.h
-./snmp_secmod.lo: ../include/net-snmp/library/oid_stash.h
-./snmp_secmod.lo: ../include/net-snmp/net-snmp-features.h
 ./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_client.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
 ./snmp_secmod.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmp_secmod.lo: ../include/net-snmp/library/vacm.h
-./snmp_secmod.lo: ../include/net-snmp/utilities.h 
+./snmp_secmod.lo: ../include/net-snmp/utilities.h
 ./snmp_secmod.lo: ../include/net-snmp/library/system.h
 ./snmp_secmod.lo: ../include/net-snmp/library/tools.h
 ./snmp_secmod.lo: ../include/net-snmp/library/int64.h
 ./snmp_secmod.lo: ../include/net-snmp/library/mt_support.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmp_secmod.lo: ../include/net-snmp/library/callback.h
 ./snmp_secmod.lo: ../include/net-snmp/library/data_list.h
+./snmp_secmod.lo: ../include/net-snmp/library/oid_stash.h
 ./snmp_secmod.lo: ../include/net-snmp/library/check_varbind.h
 ./snmp_secmod.lo: ../include/net-snmp/library/container.h
 ./snmp_secmod.lo: ../include/net-snmp/library/factory.h
@@ -2400,70 +1585,65 @@
 ./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/snmp_transport.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmpusm.h snmpsm_init.h
-./snmp_secmod.lo: snmpsm_shutdown.h
 ./snmp_service.lo: ../include/net-snmp/net-snmp-config.h
+./snmp_service.lo: ../include/net-snmp/system/linux.h
+./snmp_service.lo: ../include/net-snmp/system/sysv.h
+./snmp_service.lo: ../include/net-snmp/system/generic.h
+./snmp_service.lo: ../include/net-snmp/machine/generic.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
-./snmp_service.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_service.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_service.lo: ../include/net-snmp/library/mib.h
-./snmp_service.lo: ../include/net-snmp/mib_api.h
-./snmp_service.lo: ../include/net-snmp/library/parse.h
-./snmp_service.lo: ../include/net-snmp/library/oid_stash.h
-./snmp_service.lo: ../include/net-snmp/net-snmp-features.h
 ./snmp_service.lo: ../include/net-snmp/library/snmp_impl.h
 ./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/snmp_client.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
 ./snmp_service.lo: ../include/net-snmp/library/mt_support.h
 ./snmp_service.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmp_service.lo: ../include/net-snmp/library/callback.h
 ./snmp_service.lo: ../include/net-snmp/library/data_list.h
+./snmp_service.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./snmp_service.lo: ../include/net-snmp/library/container.h
 ./snmp_service.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmp_service.lo: ../include/net-snmp/version.h
+./snmp_service.lo: ../include/net-snmp/session_api.h
+./snmp_service.lo: ../include/net-snmp/library/snmp_transport.h
+./snmp_service.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./snmp_service.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./snmp_service.lo: ../include/net-snmp/pdu_api.h
+./snmp_service.lo: ../include/net-snmp/mib_api.h
+./snmp_service.lo: ../include/net-snmp/library/mib.h
+./snmp_service.lo: ../include/net-snmp/library/parse.h
+./snmp_service.lo: ../include/net-snmp/varbind_api.h
 ./snmp_service.lo: ../include/net-snmp/config_api.h
 ./snmp_service.lo: ../include/net-snmp/library/read_config.h
 ./snmp_service.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -2472,86 +1652,108 @@
 ./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
+./snmpSTDDomain.lo: ../include/net-snmp/net-snmp-config.h
+./snmpSTDDomain.lo: ../include/net-snmp/system/linux.h
+./snmpSTDDomain.lo: ../include/net-snmp/system/sysv.h
+./snmpSTDDomain.lo: ../include/net-snmp/system/generic.h
+./snmpSTDDomain.lo: ../include/net-snmp/machine/generic.h
+./snmpSTDDomain.lo: ../include/net-snmp/types.h 
+./snmpSTDDomain.lo: ../include/net-snmp/definitions.h
+./snmpSTDDomain.lo: ../include/net-snmp/library/snmp_api.h
+./snmpSTDDomain.lo: ../include/net-snmp/library/asn1.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_client.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/snmp_transport.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/net-snmp-features.h
-./snmp-tc.lo:  ../include/net-snmp/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/system/linux.h
+./snmp-tc.lo: ../include/net-snmp/system/sysv.h
+./snmp-tc.lo: ../include/net-snmp/system/generic.h
+./snmp-tc.lo: ../include/net-snmp/machine/generic.h 
+./snmp-tc.lo: ../include/net-snmp/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
-./snmp-tc.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp-tc.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp-tc.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./snmp-tc.lo: ../include/net-snmp/library/parse.h
-./snmp-tc.lo: ../include/net-snmp/library/oid_stash.h
 ./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/system/linux.h
+./snmpTCPDomain.lo: ../include/net-snmp/system/sysv.h
+./snmpTCPDomain.lo: ../include/net-snmp/system/generic.h
+./snmpTCPDomain.lo: ../include/net-snmp/machine/generic.h
+./snmpTCPDomain.lo: ../include/net-snmp/types.h 
+./snmpTCPDomain.lo:  ../include/net-snmp/definitions.h
+./snmpTCPDomain.lo: ../include/net-snmp/library/snmp_api.h
+./snmpTCPDomain.lo: ../include/net-snmp/library/asn1.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_client.h
+./snmpTCPDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpTCPDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./snmpTCPDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpTCPDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpTCPDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/net-snmp-config.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/system/linux.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/system/sysv.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/system/generic.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/machine/generic.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/types.h 
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/definitions.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/snmp_api.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/asn1.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/snmp_impl.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/snmp.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/snmp-tc.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/output_api.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/snmp_client.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/snmp_logging.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/config_api.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/read_config.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/default_store.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/snmp_parse_args.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/snmp_enum.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/vacm.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpTCPIPv6Domain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_transport.lo: ../include/net-snmp/net-snmp-config.h
-./snmp_transport.lo: ../include/net-snmp/net-snmp-features.h
+./snmp_transport.lo: ../include/net-snmp/system/linux.h
+./snmp_transport.lo: ../include/net-snmp/system/sysv.h
+./snmp_transport.lo: ../include/net-snmp/system/generic.h
+./snmp_transport.lo: ../include/net-snmp/machine/generic.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
-./snmp_transport.lo: ../include/net-snmp/varbind_api.h
-./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
-./snmp_transport.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmp_transport.lo: ../include/net-snmp/library/ucd_compat.h
-./snmp_transport.lo: ../include/net-snmp/library/mib.h
-./snmp_transport.lo: ../include/net-snmp/mib_api.h
-./snmp_transport.lo: ../include/net-snmp/library/parse.h
-./snmp_transport.lo: ../include/net-snmp/library/oid_stash.h
 ./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_client.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
 ./snmp_transport.lo: ../include/net-snmp/library/int64.h
 ./snmp_transport.lo: ../include/net-snmp/library/mt_support.h
 ./snmp_transport.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmp_transport.lo: ../include/net-snmp/library/callback.h
 ./snmp_transport.lo: ../include/net-snmp/library/data_list.h
+./snmp_transport.lo: ../include/net-snmp/library/oid_stash.h
 ./snmp_transport.lo: ../include/net-snmp/library/check_varbind.h
 ./snmp_transport.lo: ../include/net-snmp/library/container.h
 ./snmp_transport.lo: ../include/net-snmp/library/factory.h
@@ -2561,115 +1763,105 @@
 ./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-features.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/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
-./snmptsm.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmptsm.lo: ../include/net-snmp/library/ucd_compat.h
-./snmptsm.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./snmptsm.lo: ../include/net-snmp/library/parse.h
-./snmptsm.lo: ../include/net-snmp/library/oid_stash.h
-./snmptsm.lo: ../include/net-snmp/library/snmp_impl.h
-./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/library/system.h
-./snmptsm.lo: ../include/net-snmp/library/tools.h
-./snmptsm.lo: ../include/net-snmp/library/int64.h
-./snmptsm.lo: ../include/net-snmp/library/mt_support.h
-./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/container_binary_array.h
-./snmptsm.lo: ../include/net-snmp/library/container_list_ssll.h
-./snmptsm.lo: ../include/net-snmp/library/container_iterator.h
-./snmptsm.lo: ../include/net-snmp/library/container.h
-./snmptsm.lo: ../include/net-snmp/library/snmp_assert.h
-./snmptsm.lo: ../include/net-snmp/version.h ../include/net-snmp/config_api.h
-./snmptsm.lo: ../include/net-snmp/library/read_config.h
-./snmptsm.lo: ../include/net-snmp/library/default_store.h
-./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/snmpv3_api.h
-./snmptsm.lo: ../include/net-snmp/library/snmpv3.h
-./snmptsm.lo: ../include/net-snmp/library/transform_oids.h
-./snmptsm.lo: ../include/net-snmp/library/keytools.h
-./snmptsm.lo: ../include/net-snmp/library/scapi.h
-./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/snmptsm.h
-./snmptsm.lo: ../include/net-snmp/library/snmpusm.h 
+./snmp_transport.lo: ../include/net-snmp/library/snmp_transport.h
+./snmp_transport.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_transport.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./snmp_transport.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./snmp_transport.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./snmp_transport.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_transport.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./snmp_transport.lo: ../include/net-snmp/library/snmp_service.h
+./snmpUDPDomain.lo: ../include/net-snmp/net-snmp-config.h
+./snmpUDPDomain.lo: ../include/net-snmp/system/linux.h
+./snmpUDPDomain.lo: ../include/net-snmp/system/sysv.h
+./snmpUDPDomain.lo: ../include/net-snmp/system/generic.h
+./snmpUDPDomain.lo: ../include/net-snmp/machine/generic.h
+./snmpUDPDomain.lo:  ../include/net-snmp/types.h
+./snmpUDPDomain.lo: ../include/net-snmp/definitions.h
+./snmpUDPDomain.lo: ../include/net-snmp/library/snmp_api.h
+./snmpUDPDomain.lo: ../include/net-snmp/library/asn1.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_client.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/snmp_transport.h
+./snmpUDPDomain.lo: ../include/net-snmp/library/snmpUDPDomain.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
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/system/linux.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/system/sysv.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/system/generic.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/machine/generic.h
+./snmpUDPIPv6Domain.lo:  ../include/net-snmp/types.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/definitions.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_api.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/asn1.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_impl.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp-tc.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/output_api.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_client.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_logging.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/config_api.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/read_config.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/default_store.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_parse_args.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_enum.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/vacm.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_transport.h
+./snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpUnixDomain.lo: ../include/net-snmp/net-snmp-config.h
+./snmpUnixDomain.lo: ../include/net-snmp/system/linux.h
+./snmpUnixDomain.lo: ../include/net-snmp/system/sysv.h
+./snmpUnixDomain.lo: ../include/net-snmp/system/generic.h
+./snmpUnixDomain.lo: ../include/net-snmp/machine/generic.h
+./snmpUnixDomain.lo: ../include/net-snmp/types.h 
+./snmpUnixDomain.lo:  ../include/net-snmp/definitions.h
+./snmpUnixDomain.lo: ../include/net-snmp/library/snmp_api.h
+./snmpUnixDomain.lo: ../include/net-snmp/library/asn1.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_client.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/snmp_transport.h
+./snmpUnixDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpUnixDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpusm.lo: ../include/net-snmp/net-snmp-config.h
-./snmpusm.lo: ../include/net-snmp/net-snmp-features.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/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/definitions.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
-./snmpusm.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpusm.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpusm.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./snmpusm.lo: ../include/net-snmp/library/parse.h
-./snmpusm.lo: ../include/net-snmp/library/oid_stash.h
 ./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_client.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
@@ -2682,9 +1874,11 @@
 ./snmpusm.lo: ../include/net-snmp/library/int64.h
 ./snmpusm.lo: ../include/net-snmp/library/mt_support.h
 ./snmpusm.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpusm.lo: ../include/net-snmp/library/callback.h
 ./snmpusm.lo: ../include/net-snmp/library/data_list.h
+./snmpusm.lo: ../include/net-snmp/library/oid_stash.h
 ./snmpusm.lo: ../include/net-snmp/library/check_varbind.h
-./snmpusm.lo: ../include/net-snmp/library/container.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
@@ -2697,56 +1891,41 @@
 ./snmpusm.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpusm.lo: ../include/net-snmp/library/scapi.h
 ./snmpusm.lo: ../include/net-snmp/library/snmp_secmod.h
+./snmpusm.lo: ../include/net-snmp/library/snmp_transport.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpusm.h
-./snmpv3.lo: ../include/net-snmp/net-snmp-config.h 
+./snmpv3.lo: ../include/net-snmp/net-snmp-config.h
+./snmpv3.lo: ../include/net-snmp/system/linux.h
+./snmpv3.lo: ../include/net-snmp/system/sysv.h
+./snmpv3.lo: ../include/net-snmp/system/generic.h
+./snmpv3.lo: ../include/net-snmp/machine/generic.h 
 ./snmpv3.lo: ../include/net-snmp/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
-./snmpv3.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./snmpv3.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpv3.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./snmpv3.lo: ../include/net-snmp/library/parse.h
-./snmpv3.lo: ../include/net-snmp/library/oid_stash.h
-./snmpv3.lo: ../include/net-snmp/net-snmp-features.h
+./snmpv3.lo: ../include/net-snmp/library/asn1.h
 ./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_client.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
 ./snmpv3.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpv3.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpv3.lo: ../include/net-snmp/library/vacm.h
-./snmpv3.lo: ../include/net-snmp/utilities.h 
+./snmpv3.lo: ../include/net-snmp/utilities.h
 ./snmpv3.lo: ../include/net-snmp/library/system.h
 ./snmpv3.lo: ../include/net-snmp/library/tools.h
 ./snmpv3.lo: ../include/net-snmp/library/int64.h
 ./snmpv3.lo: ../include/net-snmp/library/mt_support.h
 ./snmpv3.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmpv3.lo: ../include/net-snmp/library/callback.h
 ./snmpv3.lo: ../include/net-snmp/library/data_list.h
+./snmpv3.lo: ../include/net-snmp/library/oid_stash.h
 ./snmpv3.lo: ../include/net-snmp/library/check_varbind.h
-./snmpv3.lo: ../include/net-snmp/library/container.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
@@ -2759,202 +1938,80 @@
 ./snmpv3.lo: ../include/net-snmp/library/scapi.h
 ./snmpv3.lo: ../include/net-snmp/library/keytools.h
 ./snmpv3.lo: ../include/net-snmp/library/snmp_secmod.h
+./snmpv3.lo: ../include/net-snmp/library/snmp_transport.h
 ./snmpv3.lo: ../include/net-snmp/library/snmpusm.h
 ./snmpv3.lo: ../include/net-snmp/library/transform_oids.h
 ./snmp_version.lo: ../include/net-snmp/net-snmp-config.h
+./snmp_version.lo: ../include/net-snmp/system/linux.h
+./snmp_version.lo: ../include/net-snmp/system/sysv.h
+./snmp_version.lo: ../include/net-snmp/system/generic.h
+./snmp_version.lo: ../include/net-snmp/machine/generic.h
 ./snmp_version.lo: ../include/net-snmp/version.h
-./snprintf.lo: ../include/net-snmp/net-snmp-config.h 
-./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
-./strlcat.lo: ../include/net-snmp/varbind_api.h
-./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
-./strlcat.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./strlcat.lo: ../include/net-snmp/library/ucd_compat.h
-./strlcat.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./strlcat.lo: ../include/net-snmp/library/parse.h
-./strlcat.lo: ../include/net-snmp/library/oid_stash.h
-./strlcat.lo: ../include/net-snmp/net-snmp-features.h
-./strlcat.lo: ../include/net-snmp/library/snmp_impl.h
-./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/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/net-snmp-features.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/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/net-snmp-features.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 
+./snprintf.lo: ../include/net-snmp/net-snmp-config.h
+./snprintf.lo: ../include/net-snmp/system/linux.h
+./snprintf.lo: ../include/net-snmp/system/sysv.h
+./snprintf.lo: ../include/net-snmp/system/generic.h
+./snprintf.lo: ../include/net-snmp/machine/generic.h
+./strlcpy.lo: ../include/net-snmp/net-snmp-config.h
+./strlcpy.lo: ../include/net-snmp/system/linux.h
+./strlcpy.lo: ../include/net-snmp/system/sysv.h
+./strlcpy.lo: ../include/net-snmp/system/generic.h
+./strlcpy.lo: ../include/net-snmp/machine/generic.h 
+./strtok_r.lo: ../include/net-snmp/net-snmp-config.h
+./strtok_r.lo: ../include/net-snmp/system/linux.h
+./strtok_r.lo: ../include/net-snmp/system/sysv.h
+./strtok_r.lo: ../include/net-snmp/system/generic.h
+./strtok_r.lo: ../include/net-snmp/machine/generic.h
+./strtol.lo: ../include/net-snmp/net-snmp-config.h
+./strtol.lo: ../include/net-snmp/system/linux.h
+./strtol.lo: ../include/net-snmp/system/sysv.h
+./strtol.lo: ../include/net-snmp/system/generic.h
+./strtol.lo: ../include/net-snmp/machine/generic.h
+./strtoul.lo: ../include/net-snmp/net-snmp-config.h
+./strtoul.lo: ../include/net-snmp/system/linux.h
+./strtoul.lo: ../include/net-snmp/system/sysv.h
+./strtoul.lo: ../include/net-snmp/system/generic.h
+./strtoul.lo: ../include/net-snmp/machine/generic.h
+./strtoull.lo: ../include/net-snmp/net-snmp-config.h
+./strtoull.lo: ../include/net-snmp/system/linux.h
+./strtoull.lo: ../include/net-snmp/system/sysv.h
+./strtoull.lo: ../include/net-snmp/system/generic.h
+./strtoull.lo: ../include/net-snmp/machine/generic.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/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/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/net-snmp-features.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/net-snmp-features.h 
+./system.lo: ../include/net-snmp/system/linux.h
+./system.lo: ../include/net-snmp/system/sysv.h
+./system.lo: ../include/net-snmp/system/generic.h
+./system.lo: ../include/net-snmp/machine/generic.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
-./system.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./system.lo: ../include/net-snmp/library/ucd_compat.h
-./system.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./system.lo: ../include/net-snmp/library/parse.h
-./system.lo: ../include/net-snmp/library/oid_stash.h
+./system.lo: ../include/net-snmp/library/asn1.h
 ./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/utilities.h 
+./system.lo: ../include/net-snmp/output_api.h
+./system.lo: ../include/net-snmp/library/snmp_client.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
 ./system.lo: ../include/net-snmp/library/int64.h
 ./system.lo: ../include/net-snmp/library/mt_support.h
 ./system.lo: ../include/net-snmp/library/snmp_alarm.h
+./system.lo: ../include/net-snmp/library/callback.h
 ./system.lo: ../include/net-snmp/library/data_list.h
+./system.lo: ../include/net-snmp/library/oid_stash.h
 ./system.lo: ../include/net-snmp/library/check_varbind.h
-./system.lo: ../include/net-snmp/library/container.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
@@ -2963,71 +2020,128 @@
 ./system.lo: ../include/net-snmp/library/snmp_assert.h
 ./system.lo: ../include/net-snmp/version.h
 ./system.lo: ../include/net-snmp/library/read_config.h
-./system.lo: ../include/net-snmp/config_api.h
-./system.lo: ../include/net-snmp/library/default_store.h
-./system.lo: ../include/net-snmp/library/snmp_parse_args.h
-./system.lo: ../include/net-snmp/library/snmp_enum.h
-./system.lo: ../include/net-snmp/library/vacm.h inet_ntop.h
+./test_binary_array.lo: ../include/net-snmp/net-snmp-config.h
+./test_binary_array.lo: ../include/net-snmp/system/linux.h
+./test_binary_array.lo: ../include/net-snmp/system/sysv.h
+./test_binary_array.lo: ../include/net-snmp/system/generic.h
+./test_binary_array.lo: ../include/net-snmp/machine/generic.h
+./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/snmp_api.h
+./test_binary_array.lo: ../include/net-snmp/library/asn1.h
+./test_binary_array.lo: ../include/net-snmp/library/snmp_impl.h
+./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/utilities.h
+./test_binary_array.lo: ../include/net-snmp/library/snmp_client.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
+./test_binary_array.lo: ../include/net-snmp/library/mt_support.h
+./test_binary_array.lo: ../include/net-snmp/library/snmp_alarm.h
+./test_binary_array.lo: ../include/net-snmp/library/callback.h
+./test_binary_array.lo: ../include/net-snmp/library/data_list.h
+./test_binary_array.lo: ../include/net-snmp/library/oid_stash.h
+./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
+./test_binary_array.lo: ../include/net-snmp/library/container.h
+./test_binary_array.lo: ../include/net-snmp/library/snmp_assert.h
+./test_binary_array.lo: ../include/net-snmp/version.h
+./test_binary_array.lo: ../include/net-snmp/session_api.h
+./test_binary_array.lo: ../include/net-snmp/library/snmp_transport.h
+./test_binary_array.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./test_binary_array.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./test_binary_array.lo: ../include/net-snmp/pdu_api.h
+./test_binary_array.lo: ../include/net-snmp/mib_api.h
+./test_binary_array.lo: ../include/net-snmp/library/mib.h
+./test_binary_array.lo: ../include/net-snmp/library/parse.h
+./test_binary_array.lo: ../include/net-snmp/varbind_api.h
+./test_binary_array.lo: ../include/net-snmp/config_api.h
+./test_binary_array.lo: ../include/net-snmp/library/read_config.h
+./test_binary_array.lo: ../include/net-snmp/library/default_store.h
+./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
+./test_binary_array.lo: ../include/net-snmp/library/keytools.h
+./test_binary_array.lo: ../include/net-snmp/library/scapi.h
+./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/snmpusm.h
 ./text_utils.lo: ../include/net-snmp/net-snmp-config.h
-./text_utils.lo: ../include/net-snmp/net-snmp-features.h
+./text_utils.lo: ../include/net-snmp/system/linux.h
+./text_utils.lo: ../include/net-snmp/system/sysv.h
+./text_utils.lo: ../include/net-snmp/system/generic.h
+./text_utils.lo: ../include/net-snmp/machine/generic.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
-./text_utils.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./text_utils.lo: ../include/net-snmp/library/ucd_compat.h
-./text_utils.lo: ../include/net-snmp/library/mib.h
-./text_utils.lo: ../include/net-snmp/mib_api.h
-./text_utils.lo: ../include/net-snmp/library/parse.h
-./text_utils.lo: ../include/net-snmp/library/oid_stash.h
 ./text_utils.lo: ../include/net-snmp/library/snmp_impl.h
 ./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/snmp_client.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
 ./text_utils.lo: ../include/net-snmp/library/mt_support.h
 ./text_utils.lo: ../include/net-snmp/library/snmp_alarm.h
+./text_utils.lo: ../include/net-snmp/library/callback.h
 ./text_utils.lo: ../include/net-snmp/library/data_list.h
+./text_utils.lo: ../include/net-snmp/library/oid_stash.h
 ./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
 ./text_utils.lo: ../include/net-snmp/library/container.h
 ./text_utils.lo: ../include/net-snmp/library/snmp_assert.h
 ./text_utils.lo: ../include/net-snmp/version.h
+./text_utils.lo: ../include/net-snmp/session_api.h
+./text_utils.lo: ../include/net-snmp/library/snmp_transport.h
+./text_utils.lo: ../include/net-snmp/library/snmp_service.h
+./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/snmpTCPDomain.h
+./text_utils.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.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
+./text_utils.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/mib_api.h
+./text_utils.lo: ../include/net-snmp/library/mib.h
+./text_utils.lo: ../include/net-snmp/library/parse.h
+./text_utils.lo: ../include/net-snmp/varbind_api.h
 ./text_utils.lo: ../include/net-snmp/config_api.h
 ./text_utils.lo: ../include/net-snmp/library/read_config.h
 ./text_utils.lo: ../include/net-snmp/library/default_store.h
 ./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
@@ -3036,932 +2150,95 @@
 ./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/net-snmp-features.h 
+./tools.lo: ../include/net-snmp/system/linux.h
+./tools.lo: ../include/net-snmp/system/sysv.h
+./tools.lo: ../include/net-snmp/system/generic.h
+./tools.lo: ../include/net-snmp/machine/generic.h 
 ./tools.lo:  ../include/net-snmp/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/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
-./tools.lo: ../include/net-snmp/library/snmp_service.h
-./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/snmpIPXDomain.h
-./tools.lo: ../include/net-snmp/library/ucd_compat.h
-./tools.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./tools.lo: ../include/net-snmp/library/parse.h
-./tools.lo: ../include/net-snmp/library/oid_stash.h
+./tools.lo: ../include/net-snmp/library/asn1.h
 ./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_client.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
 ./tools.lo: ../include/net-snmp/library/int64.h
 ./tools.lo: ../include/net-snmp/library/mt_support.h
 ./tools.lo: ../include/net-snmp/library/snmp_alarm.h
+./tools.lo: ../include/net-snmp/library/callback.h
 ./tools.lo: ../include/net-snmp/library/data_list.h
+./tools.lo: ../include/net-snmp/library/oid_stash.h
 ./tools.lo: ../include/net-snmp/library/check_varbind.h
-./tools.lo: ../include/net-snmp/library/container.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
 ./tools.lo: ../include/net-snmp/library/container.h
 ./tools.lo: ../include/net-snmp/library/snmp_assert.h
-./tools.lo: ../include/net-snmp/version.h ../include/net-snmp/library/scapi.h
+./tools.lo: ../include/net-snmp/version.h ../include/net-snmp/library/mib.h
+./tools.lo: ../include/net-snmp/library/scapi.h
 ./ucd_compat.lo: ../include/net-snmp/net-snmp-config.h
-./ucd_compat.lo: ../include/net-snmp/net-snmp-features.h
+./ucd_compat.lo: ../include/net-snmp/system/linux.h
+./ucd_compat.lo: ../include/net-snmp/system/sysv.h
+./ucd_compat.lo: ../include/net-snmp/system/generic.h
+./ucd_compat.lo: ../include/net-snmp/machine/generic.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
-./ucd_compat.lo: ../include/net-snmp/varbind_api.h
-./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/library/snmp_impl.h
+./ucd_compat.lo: ../include/net-snmp/library/snmp.h
+./ucd_compat.lo: ../include/net-snmp/library/snmp-tc.h
 ./ucd_compat.lo: ../include/net-snmp/session_api.h
+./ucd_compat.lo: ../include/net-snmp/library/snmp_client.h
 ./ucd_compat.lo: ../include/net-snmp/library/callback.h
 ./ucd_compat.lo: ../include/net-snmp/library/snmp_transport.h
 ./ucd_compat.lo: ../include/net-snmp/library/snmp_service.h
 ./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
-./ucd_compat.lo: ../include/net-snmp/library/mib.h
-./ucd_compat.lo: ../include/net-snmp/mib_api.h
-./ucd_compat.lo: ../include/net-snmp/library/parse.h
-./ucd_compat.lo: ../include/net-snmp/library/oid_stash.h
-./ucd_compat.lo: ../include/net-snmp/library/snmp_impl.h
-./ucd_compat.lo: ../include/net-snmp/library/snmp.h
-./ucd_compat.lo: ../include/net-snmp/library/snmp-tc.h
 ./ucd_compat.lo: ../include/net-snmp/config_api.h
 ./ucd_compat.lo: ../include/net-snmp/library/read_config.h
 ./ucd_compat.lo: ../include/net-snmp/library/default_store.h
 ./ucd_compat.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./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 
+./ucd_compat.lo: ../include/net-snmp/library/mib.h
+./vacm.lo: ../include/net-snmp/net-snmp-config.h
+./vacm.lo: ../include/net-snmp/system/linux.h
+./vacm.lo: ../include/net-snmp/system/sysv.h
+./vacm.lo: ../include/net-snmp/system/generic.h
+./vacm.lo: ../include/net-snmp/machine/generic.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/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/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/snmpIPXDomain.h
-./vacm.lo:  ../include/net-snmp/library/ucd_compat.h
-./vacm.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
-./vacm.lo: ../include/net-snmp/library/parse.h
-./vacm.lo: ../include/net-snmp/library/oid_stash.h
-./vacm.lo: ../include/net-snmp/net-snmp-features.h
+./vacm.lo: ../include/net-snmp/library/asn1.h
 ./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_client.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/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/net-snmp-features.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/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/tools.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/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/net-snmp-features.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/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/net-snmp-features.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/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/net-snmp-features.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/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/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/net-snmp-features.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/snmpIPXDomain.lo: ../include/net-snmp/library/tools.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/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/net-snmp-features.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/net-snmp-features.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/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/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/net-snmp-features.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/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/net-snmp-features.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/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/net-snmp-features.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/snmpTCPDomain.lo: ../include/net-snmp/library/tools.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/net-snmp-features.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/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/config_api.h
-./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/read_config.h
-./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/default_store.h
-./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
-./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp_enum.h
-./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/vacm.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/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/net-snmp-features.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/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/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/net-snmp-features.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/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/net-snmp-features.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/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/net-snmp-features.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/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/net-snmp-features.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/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
-./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/system.h
-./transports/snmpUnixDomain.lo: ../include/net-snmp/net-snmp-config.h
-./transports/snmpUnixDomain.lo: ../include/net-snmp/net-snmp-features.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/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
-./transports/snmpUnixDomain.lo: ../include/net-snmp/library/tools.h
diff --git a/snmplib/Makefile.in b/snmplib/Makefile.in
index 506b8d4..6e9acf0 100644
--- a/snmplib/Makefile.in
+++ b/snmplib/Makefile.in
@@ -13,7 +13,6 @@
 #
 
 top_builddir=..
-mysubdir=snmplib
 
 # use GNU vpath, if available, to only set a path for source and headers
 # VPATH will pick up objects too, which is bad if you are sharing a
@@ -48,7 +47,6 @@ INCLUDESUBDIR=library
 INCLUDESUBDIRHEADERS=README \
 	asn1.h \
 	callback.h \
-	cert_util.h \
 	container.h \
 	container_binary_array.h \
 	container_list_ssll.h \
@@ -57,7 +55,6 @@ INCLUDESUBDIRHEADERS=README \
 	factory.h \
 	data_list.h \
 	default_store.h \
-	dir_utils.h \
 	fd_event_manager.h \
 	file_utils.h \
 	int64.h \
@@ -70,7 +67,6 @@ INCLUDESUBDIRHEADERS=README \
 	snmp.h \
 	snmp_alarm.h \
 	snmp_api.h \
-	large_fd_set.h \
 	snmp_assert.h \
 	snmp_client.h \
 	snmp_debug.h \
@@ -84,11 +80,10 @@ INCLUDESUBDIRHEADERS=README \
 	text_utils.h \
 	tools.h \
 	transform_oids.h \
-	types.h \
+        cmu_compat.h \
         getopt.h \
         lcd_time.h \
         mt_support.h \
-        oid.h \
         oid_stash.h \
         snmp_enum.h \
         snmp_secmod.h \
@@ -116,7 +111,6 @@ INSTALLUCDHEADERS= asn1.h \
 	scapi.h		\
 	snmp_alarm.h	\
 	snmp_api.h	\
-	large_fd_set.h	\
 	snmp_client.h	\
 	snmp_debug.h	\
 	snmp.h		\
@@ -138,91 +132,55 @@ INSTALLUCDLIBS=libsnmp.$(LIB_EXTENSION)$(LIB_VERSION)
 
 #
 # Things to build
-#   - for the feature checking / removal / minimialist support these
-#     must be listed such that code requiring a feature must be listed
-#     *before* the code implementing the feature.
 #
 CSRCS=	snmp_client.c mib.c parse.c snmp_api.c snmp.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	\
-	large_fd_set.c cert_util.c snmp_openssl.c 		\
-	snmpv3.c lcd_time.c keytools.c                          \
+	snmpv3.c lcd_time.c keytools.c file_utils.c		\
 	scapi.c callback.c default_store.c snmp_alarm.c		\
 	data_list.c oid_stash.c fd_event_manager.c 		\
-	check_varbind.c 					\
 	mt_support.c snmp_enum.c snmp-tc.c snmp_service.c	\
-	snprintf.c						\
+	snprintf.c strlcpy.c strtol.c strtoul.c strtok_r.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 \
-	ucd_compat.c		                                \
-	@other_src_list@ @crypto_files_c@        		\
-	dir_utils.c file_utils.c 	                        \
-	container.c container_binary_array.c	
+	cmu_compat.c ucd_compat.c @other_src_list@
 
 OBJS=	snmp_client.o mib.o parse.o snmp_api.o snmp.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	\
-	large_fd_set.o cert_util.o snmp_openssl.o 		\
-	snmpv3.o lcd_time.o keytools.o                          \
+	snmpv3.o lcd_time.o keytools.o file_utils.o		\
 	scapi.o callback.o default_store.o snmp_alarm.o		\
 	data_list.o oid_stash.o fd_event_manager.o		\
-	check_varbind.o 					\
 	mt_support.o snmp_enum.o snmp-tc.o snmp_service.o	\
-	snprintf.o						\
+	snprintf.o strlcpy.o strtol.o strtoul.o strtok_r.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 \
-	ucd_compat.o                               		\
-        @crypto_files_o@ @other_objs_list@ @LIBOBJS@ 		\
-	dir_utils.o file_utils.o 	                        \
-	container.o container_binary_array.o	
+	cmu_compat.o ucd_compat.o @other_objs_list@
 
 LOBJS=	snmp_client.lo mib.lo parse.lo snmp_api.lo snmp.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	\
-	large_fd_set.lo cert_util.lo snmp_openssl.lo 		\
-	snmpv3.lo lcd_time.lo keytools.lo                       \
-	scapi.lo callback.lo default_store.lo snmp_alarm.lo	\
+	snmpv3.lo lcd_time.lo keytools.lo file_utils.lo		\
+	scapi.lo callback.lo default_store.lo snmp_alarm.lo		\
 	data_list.lo oid_stash.lo fd_event_manager.lo		\
-	check_varbind.lo 					\
 	mt_support.lo snmp_enum.lo snmp-tc.lo snmp_service.lo	\
-	snprintf.lo						\
-	snmp_transport.lo @transport_lobj_list@                 \
-	snmp_secmod.lo @security_lobj_list@ snmp_version.lo     \
-	container.lo container_binary_array.lo			\
-	ucd_compat.lo		                                \
-        @crypto_files_lo@ @other_lobjs_list@ @LTLIBOBJS@        \
-	dir_utils.lo file_utils.lo 	                        \
-	container_null.lo container_list_ssll.lo container_iterator.lo 
-
-FTOBJS=	snmp_client.ft mib.ft parse.ft snmp_api.ft snmp.ft 	\
-	snmp_auth.ft asn1.ft md5.ft snmp_parse_args.ft		\
-	system.ft vacm.ft int64.ft read_config.ft pkcs.ft	\
-	snmp_debug.ft tools.ft  snmp_logging.ft	 text_utils.ft	\
-	snmpv3.ft lcd_time.ft keytools.ft                       \
-	scapi.ft callback.ft default_store.ft snmp_alarm.ft	\
-	data_list.ft oid_stash.ft fd_event_manager.ft		\
-	check_varbind.ft 					\
-	mt_support.ft snmp_enum.ft snmp-tc.ft snmp_service.ft	\
-	snprintf.ft						\
-	snmp_transport.ft @transport_ftobj_list@                \
-	snmp_secmod.ft @security_ftobj_list@ snmp_version.ft    \
-	container.ft container_binary_array.ft	\
-	ucd_compat.ft		                             	\
-        @other_ftobjs_list@                     		\
-	large_fd_set.ft cert_util.ft snmp_openssl.ft 		\
-	dir_utils.ft file_utils.ft 	                        \
-	container_null.ft container_list_ssll.ft container_iterator.ft
+	snprintf.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       \
+	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 @other_lobjs_list@
 
 # just in case someone wants to remove libtool, change this to OBJS.
 TOBJS=$(LOBJS)
 
-FEATUREFILE     = $(top_builddir)/include/net-snmp/library/features.h
-
 # 
 CPPFLAGS = $(TOP_INCLUDES) -I. 	$(SNMPLIB_INCLUDES) @CPPFLAGS@
 
@@ -230,11 +188,11 @@ all: standardall
 
 # how to build the libraries.
 libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION):    $(TOBJS)
-	$(LIB_LD_CMD) $@ $(TOBJS) @LD_NO_UNDEFINED@ $(LDFLAGS) @LNETSNMPLIBS@
+	$(LIB_LD_CMD) $@ $(TOBJS) $(LDFLAGS) @LNETSNMPLIBS@
 	$(RANLIB) $@
 
 libsnmp.$(LIB_EXTENSION)$(LIB_VERSION):    $(TOBJS)
-	$(LIB_LD_CMD) $@ $(TOBJS) @LD_NO_UNDEFINED@ $(LDFLAGS) @LNETSNMPLIBS@
+	$(LIB_LD_CMD) $@ $(TOBJS) $(LDFLAGS) @LNETSNMPLIBS@
 	$(RANLIB) $@
 
 #
@@ -243,3 +201,7 @@ libsnmp.$(LIB_EXTENSION)$(LIB_VERSION):    $(TOBJS)
 parse:  mib.o parse.c
 	$(CC) $(CFLAGS) -DTEST parse.c -o $@ \
 		`$(top_srcdir)/net-snmp-config --libs`
+
+test_binary_array: test_binary_array.c
+	$(CC) $(CFLAGS) test_binary_array.c -o $@ \
+		`$(top_srcdir)/net-snmp-config --libs`
diff --git a/snmplib/asn1.c b/snmplib/asn1.c
index e4da6be..8522767 100644
--- a/snmplib/asn1.c
+++ b/snmplib/asn1.c
@@ -170,6 +170,9 @@ SOFTWARE.
 #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
@@ -208,14 +211,16 @@ SOFTWARE.
 #  define CHECK_OVERFLOW_S(x,y)
 #  define CHECK_OVERFLOW_U(x,y)
 #else
-#  define CHECK_OVERFLOW_S(x,y) do {                                    \
+#  define CHECK_OVERFLOW_S(x,y) do { int trunc = 0;                     \
         if (x > INT32_MAX) {                                            \
-            DEBUGMSG(("asn","truncating signed value %ld to 32 bits (%d)\n",(long)(x),y)); \
+            trunc = 1;                                                  \
             x &= 0xffffffff;                                            \
         } else if (x < INT32_MIN) {                                     \
-            DEBUGMSG(("asn","truncating signed value %ld to 32 bits (%d)\n",(long)(x),y)); \
+            trunc = 1;                                                  \
             x = 0 - (x & 0xffffffff);                                   \
         }                                                               \
+        if (trunc)                                                      \
+            DEBUGMSG(("asn","truncating signed value to 32 bits (%d)\n",y)); \
     } while(0)
 
 #  define CHECK_OVERFLOW_U(x,y) do {                                    \
@@ -248,24 +253,6 @@ _asn_size_err(const char *str, size_t wrongsize, size_t rightsize)
 }
 
 /**
- * @internal
- * output an error for a wrong type
- * 
- * @param str        error string
- * @param wrongtype  wrong type
- */
-static
-    void
-_asn_type_err(const char *str, int wrongtype)
-{
-    char            ebuf[128];
-
-    snprintf(ebuf, sizeof(ebuf), "%s type %d", str, wrongtype);
-    ebuf[ sizeof(ebuf)-1 ] = 0;
-    ERROR_MSG(ebuf);
-}
-
-/**
  * @internal 
  * output an error for a wrong length
  * 
@@ -497,11 +484,6 @@ asn_parse_int(u_char * data,
         return NULL;
     }
     *type = *bufp++;
-    if (*type != ASN_INTEGER) {
-        _asn_type_err(errpre, *type);
-        return NULL;
-    }
-
     bufp = asn_parse_length(bufp, &asn_length);
     if (_asn_parse_length_check
         (errpre, bufp, data, asn_length, *datalength))
@@ -523,7 +505,7 @@ asn_parse_int(u_char * data,
 
     CHECK_OVERFLOW_S(value,1);
 
-    DEBUGMSG(("dumpv_recv", "  Integer:\t%ld (0x%.2lX)\n", value, value));
+    DEBUGMSG(("dumpv_recv", "  Integer:\t%ld (0x%.2X)\n", value, value));
 
     *intp = value;
     return bufp;
@@ -569,18 +551,13 @@ asn_parse_unsigned_int(u_char * data,
         return NULL;
     }
     *type = *bufp++;
-    if (*type != ASN_COUNTER && *type != ASN_GAUGE && *type != ASN_TIMETICKS
-            && *type != ASN_UINTEGER) {
-        _asn_type_err(errpre, *type);
-        return NULL;
-    }
     bufp = asn_parse_length(bufp, &asn_length);
     if (_asn_parse_length_check
         (errpre, bufp, data, asn_length, *datalength))
         return NULL;
 
-    if ((asn_length > (intsize + 1)) ||
-        ((asn_length == intsize + 1) && *bufp != 0x00)) {
+    if (((int) asn_length > (intsize + 1)) ||
+        (((int) asn_length == intsize + 1) && *bufp != 0x00)) {
         _asn_length_err(errpre, (size_t) asn_length, intsize);
         return NULL;
     }
@@ -595,7 +572,7 @@ asn_parse_unsigned_int(u_char * data,
 
     CHECK_OVERFLOW_U(value,2);
 
-    DEBUGMSG(("dumpv_recv", "  UInteger:\t%ld (0x%.2lX)\n", value, value));
+    DEBUGMSG(("dumpv_recv", "  UInteger:\t%ld (0x%.2X)\n", value, value));
 
     *intp = value;
     return bufp;
@@ -674,7 +651,7 @@ asn_build_int(u_char * data,
         integer <<= 8;
     }
     DEBUGDUMPSETUP("send", initdatap, data - initdatap);
-    DEBUGMSG(("dumpv_send", "  Integer:\t%ld (0x%.2lX)\n", *intp, *intp));
+    DEBUGMSG(("dumpv_send", "  Integer:\t%ld (0x%.2X)\n", *intp, *intp));
     return data;
 }
 
@@ -770,7 +747,7 @@ asn_build_unsigned_int(u_char * data,
         integer <<= 8;
     }
     DEBUGDUMPSETUP("send", initdatap, data - initdatap);
-    DEBUGMSG(("dumpv_send", "  UInteger:\t%ld (0x%.2lX)\n", *intp, *intp));
+    DEBUGMSG(("dumpv_send", "  UInteger:\t%ld (0x%.2X)\n", *intp, *intp));
     return data;
 }
 
@@ -813,19 +790,13 @@ asn_parse_string(u_char * data,
     u_long          asn_length;
 
     *type = *bufp++;
-    if (*type != ASN_OCTET_STR && *type != ASN_IPADDRESS && *type != ASN_OPAQUE
-            && *type != ASN_NSAP) {
-        _asn_type_err(errpre, *type);
-        return NULL;
-    }
-
     bufp = asn_parse_length(bufp, &asn_length);
     if (_asn_parse_length_check
         (errpre, bufp, data, asn_length, *datalength)) {
         return NULL;
     }
 
-    if (asn_length > *strlength) {
+    if ((int) asn_length > *strlength) {
         _asn_length_err(errpre, (size_t) asn_length, *strlength);
         return NULL;
     }
@@ -833,10 +804,10 @@ asn_parse_string(u_char * data,
     DEBUGDUMPSETUP("recv", data, bufp - data + asn_length);
 
     memmove(str, bufp, asn_length);
-    if (*strlength > asn_length)
+    if (*strlength > (int) asn_length)
         str[asn_length] = 0;
-    *strlength = asn_length;
-    *datalength -= asn_length + (bufp - data);
+    *strlength = (int) asn_length;
+    *datalength -= (int) asn_length + (bufp - data);
 
     DEBUGIF("dumpv_recv") {
         u_char         *buf = (u_char *) malloc(1 + asn_length);
@@ -1317,7 +1288,6 @@ asn_parse_objid(u_char * data,
                 size_t * datalength,
                 u_char * type, oid * objid, size_t * objidlength)
 {
-    static const char *errpre = "parse objid";
     /*
      * ASN.1 objid ::= 0x06 asnlength subidentifier {subidentifier}*
      * subidentifier ::= {leadingbyte}* lastbyte
@@ -1332,10 +1302,6 @@ asn_parse_objid(u_char * data,
     size_t          original_length = *objidlength;
 
     *type = *bufp++;
-    if (*type != ASN_OBJECT_ID) {
-        _asn_type_err(errpre, *type);
-        return NULL;
-    }
     bufp = asn_parse_length(bufp, &asn_length);
     if (_asn_parse_length_check("parse objid", bufp, data,
                                 asn_length, *datalength))
@@ -1371,7 +1337,7 @@ asn_parse_objid(u_char * data,
             }
         }
 #if defined(EIGHTBIT_SUBIDS) || (SIZEOF_LONG != 4)
-        if (subidentifier > MAX_SUBID) {
+        if (subidentifier > (u_long) MAX_SUBID) {
             ERROR_MSG("subidentifier too large");
             return NULL;
         }
@@ -1540,8 +1506,13 @@ asn_build_objid(u_char * data,
      */
     for (i = 1, objid_val = first_objid_val, op = objid + 2;
          i < (int) objidlength; i++) {
-        if (i != 1)
-            objid_val = (uint32_t)(*op++); /* already logged warning above */
+        if (i != 1) {
+            objid_val = *op++;
+#if SIZEOF_LONG != 4
+            if (objid_val > 0xffffffff) /* already logged warning above */
+                objid_val &= 0xffffffff;
+#endif
+        }
         switch (objid_size[i]) {
         case 1:
             *data++ = (u_char) objid_val;
@@ -1705,10 +1676,6 @@ asn_parse_bitstring(u_char * data,
     u_long          asn_length;
 
     *type = *bufp++;
-    if (*type != ASN_BIT_STR) {
-        _asn_type_err(errpre, *type);
-        return NULL;
-    }
     bufp = asn_parse_length(bufp, &asn_length);
     if (_asn_parse_length_check(errpre, bufp, data,
                                 asn_length, *datalength))
@@ -1829,14 +1796,6 @@ asn_parse_unsigned_int64(u_char * data,
         return NULL;
     }
     *type = *bufp++;
-    if (*type != ASN_COUNTER64
-#ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
-            && *type != ASN_OPAQUE_COUNTER64 && *type != ASN_OPAQUE_U64
-#endif
-            ) {
-        _asn_type_err(errpre, *type);
-        return NULL;
-    }
     bufp = asn_parse_length(bufp, &asn_length);
     if (_asn_parse_length_check
         (errpre, bufp, data, asn_length, *datalength))
@@ -1871,8 +1830,13 @@ asn_parse_unsigned_int64(u_char * data,
         return NULL;
     }
     *datalength -= (int) asn_length + (bufp - data);
+    if (*bufp & 0x80) {
+        low = 0xFFFFFF;     /* first byte bit 1 means start the data with 1s */
+        high = 0xFFFFFF;
+    }
+
     while (asn_length--) {
-        high = ((0x00FFFFFF & high) << 8) | ((low & 0xFF000000U) >> 24);
+        high = ((0x00FFFFFF & high) << 8) | ((low & 0xFF000000) >> 24);
         low = ((low & 0x00FFFFFF) << 8) | *bufp++;
     }
 
@@ -1885,7 +1849,7 @@ asn_parse_unsigned_int64(u_char * data,
     DEBUGIF("dumpv_recv") {
         char            i64buf[I64CHARSZ + 1];
         printU64(i64buf, cp);
-        DEBUGMSG(("dumpv_recv", "Counter64: %s\n", i64buf));
+        DEBUGMSG(("dumpv_recv", "Counter64: %s", i64buf));
     }
 
     return bufp;
@@ -1943,8 +1907,11 @@ asn_build_unsigned_int64(u_char * data,
     CHECK_OVERFLOW_U(high,7);
     CHECK_OVERFLOW_U(low,7);
 
-    mask = 0xff000000U;
-    if (high & 0x80000000U) {
+    mask = ((u_long) 0xFF) << (8 * (sizeof(long) - 1));
+    /*
+     * mask is 0xFF000000 on a big-endian machine 
+     */
+    if ((u_char) ((high & mask) >> (8 * (sizeof(long) - 1))) & 0x80) {
         /*
          * if MSB is set 
          */
@@ -1957,12 +1924,16 @@ asn_build_unsigned_int64(u_char * data,
          * There should be no sequence of 9 consecutive 1's or 0's at the most
          * significant end of the integer.
          */
-        mask2 = 0xff800000U;
+        mask2 = ((u_long) 0x1FF) << ((8 * (sizeof(long) - 1)) - 1);
+        /*
+         * mask2 is 0xFF800000 on a big-endian machine 
+         */
         while ((((high & mask2) == 0) || ((high & mask2) == mask2))
                && intsize > 1) {
             intsize--;
-            high = ((high & 0x00ffffffu) << 8) | ((low & mask) >> 24);
-            low = (low & 0x00ffffffu) << 8;
+            high = (high << 8)
+                | ((low & mask) >> (8 * (sizeof(long) - 1)));
+            low <<= 8;
         }
     }
 #ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
@@ -2027,16 +1998,17 @@ asn_build_unsigned_int64(u_char * data,
         intsize--;
     }
     while (intsize--) {
-        *data++ = (u_char) (high >> 24);
-        high = ((high & 0x00ffffff) << 8) | ((low & mask) >> 24);
-        low = (low & 0x00ffffff) << 8;
+        *data++ = (u_char) ((high & mask) >> (8 * (sizeof(long) - 1)));
+        high = (high << 8)
+            | ((low & mask) >> (8 * (sizeof(long) - 1)));
+        low <<= 8;
 
     }
     DEBUGDUMPSETUP("send", initdatap, data - initdatap);
     DEBUGIF("dumpv_send") {
         char            i64buf[I64CHARSZ + 1];
         printU64(i64buf, cp);
-        DEBUGMSG(("dumpv_send", "%s", i64buf));
+        DEBUGMSG(("dumpv_send", i64buf));
     }
     return data;
 }
@@ -2124,12 +2096,12 @@ asn_parse_signed_int64(u_char * data,
     }
     *datalength -= (int) asn_length + (bufp - data);
     if (*bufp & 0x80) {
-        low = 0xFFFFFFFFU;   /* first byte bit 1 means start the data with 1s */
+        low = 0xFFFFFF;     /* first byte bit 1 means start the data with 1s */
         high = 0xFFFFFF;
     }
 
     while (asn_length--) {
-        high = ((0x00FFFFFF & high) << 8) | ((low & 0xFF000000U) >> 24);
+        high = ((0x00FFFFFF & high) << 8) | ((low & 0xFF000000) >> 24);
         low = ((low & 0x00FFFFFF) << 8) | *bufp++;
     }
 
@@ -2142,7 +2114,7 @@ asn_parse_signed_int64(u_char * data,
     DEBUGIF("dumpv_recv") {
         char            i64buf[I64CHARSZ + 1];
         printI64(i64buf, cp);
-        DEBUGMSG(("dumpv_recv", "Integer64: %s\n", i64buf));
+        DEBUGMSG(("dumpv_recv", "Integer64: %s", i64buf));
     }
 
     return bufp;
@@ -2181,9 +2153,9 @@ asn_build_signed_int64(u_char * data,
      * ASN.1 integer ::= 0x02 asnlength byte {byte}*
      */
 
+    struct counter64 c64;
     register u_int  mask, mask2;
-    u_long          low;
-    long            high; /* MUST be signed because of CHECK_OVERFLOW_S(). */
+    u_long          low, high;
     size_t          intsize;
 #ifndef NETSNMP_NO_DEBUGGING
     u_char         *initdatap = data;
@@ -2195,8 +2167,9 @@ asn_build_signed_int64(u_char * data,
         return NULL;
     }
     intsize = 8;
-    low = cp->low;
-    high = cp->high; /* unsigned to signed conversion */
+    memcpy(&c64, cp, sizeof(struct counter64)); /* we're may modify it */
+    low = c64.low;
+    high = c64.high;
 
     CHECK_OVERFLOW_S(high,9);
     CHECK_OVERFLOW_U(low,9);
@@ -2207,13 +2180,17 @@ asn_build_signed_int64(u_char * data,
      * consecutive 1's or 0's at the most significant end of the
      * integer.
      */
-    mask = 0xFF000000U;
-    mask2 = 0xFF800000U;
+    mask = ((u_int) 0xFF) << (8 * (sizeof(u_int) - 1));
+    mask2 = ((u_int) 0x1FF) << ((8 * (sizeof(u_int) - 1)) - 1);
+    /*
+     * mask is 0xFF800000 on a big-endian machine 
+     */
     while ((((high & mask2) == 0) || ((high & mask2) == mask2))
            && intsize > 1) {
         intsize--;
-        high = ((high & 0x00ffffff) << 8) | ((low & mask) >> 24);
-        low = (low & 0x00ffffff) << 8;
+        high = (high << 8)
+            | ((low & mask) >> (8 * (sizeof(u_int) - 1)));
+        low <<= 8;
     }
     /*
      * until a real int64 gets incorperated into SNMP, we are going to
@@ -2232,15 +2209,16 @@ asn_build_signed_int64(u_char * data,
     *datalength -= (3 + intsize);
 
     while (intsize--) {
-        *data++ = (u_char) (high >> 24);
-        high = ((high & 0x00ffffff) << 8) | ((low & mask) >> 24);
-        low = (low & 0x00ffffff) << 8;
+        *data++ = (u_char) ((high & mask) >> (8 * (sizeof(u_int) - 1)));
+        high = (high << 8)
+            | ((low & mask) >> (8 * (sizeof(u_int) - 1)));
+        low <<= 8;
     }
     DEBUGDUMPSETUP("send", initdatap, data - initdatap);
     DEBUGIF("dumpv_send") {
         char            i64buf[I64CHARSZ + 1];
         printU64(i64buf, cp);
-        DEBUGMSG(("dumpv_send", "%s\n", i64buf));
+        DEBUGMSG(("dumpv_send", i64buf));
     }
     return data;
 }
@@ -2272,7 +2250,6 @@ asn_parse_float(u_char * data,
                 size_t * datalength,
                 u_char * type, float *floatp, size_t floatsize)
 {
-    static const char *errpre = "parse float";
     register u_char *bufp = data;
     u_long          asn_length;
     union {
@@ -2313,11 +2290,6 @@ asn_parse_float(u_char * data,
         *type = ASN_OPAQUE_FLOAT;
     }
 
-    if (*type != ASN_OPAQUE_FLOAT) {
-        _asn_type_err(errpre, *type);
-        return NULL;
-    }
-
     if (asn_length != sizeof(float)) {
         _asn_size_err("parse seq float", asn_length, sizeof(float));
         return NULL;
@@ -2443,7 +2415,6 @@ asn_parse_double(u_char * data,
                  size_t * datalength,
                  u_char * type, double *doublep, size_t doublesize)
 {
-    static const char *errpre = "parse double";
     register u_char *bufp = data;
     u_long          asn_length;
     long            tmp;
@@ -2486,11 +2457,6 @@ asn_parse_double(u_char * data,
         *type = ASN_OPAQUE_DOUBLE;
     }
 
-    if (*type != ASN_OPAQUE_DOUBLE) {
-        _asn_type_err(errpre, *type);
-        return NULL;
-    }
-
     if (asn_length != sizeof(double)) {
         _asn_size_err("parse seq double", asn_length, sizeof(double));
         return NULL;
@@ -2590,7 +2556,7 @@ asn_build_double(u_char * data,
 
     data += doublesize;
     DEBUGDUMPSETUP("send", initdatap, data - initdatap);
-    DEBUGMSG(("dumpv_send", "  Opaque double: %f\n", *doublep));
+    DEBUGMSG(("dumpv_send", "  Opaque double: %f", *doublep));
     return data;
 }
 
@@ -2617,16 +2583,15 @@ asn_realloc(u_char ** pkt, size_t * pkt_len)
     if (pkt != NULL && pkt_len != NULL) {
         size_t          old_pkt_len = *pkt_len;
 
-        DEBUGMSGTL(("asn_realloc", " old_pkt %8p, old_pkt_len %lu\n",
-                    *pkt, (unsigned long)old_pkt_len));
+        DEBUGMSGTL(("asn_realloc", " old_pkt %08p, old_pkt_len %08x\n",
+                    *pkt, old_pkt_len));
 
         if (snmp_realloc(pkt, pkt_len)) {
-            DEBUGMSGTL(("asn_realloc", " new_pkt %8p, new_pkt_len %lu\n",
-                        *pkt, (unsigned long)*pkt_len));
+            DEBUGMSGTL(("asn_realloc", " new_pkt %08p, new_pkt_len %08x\n",
+                        *pkt, *pkt_len));
             DEBUGMSGTL(("asn_realloc",
-                        " memmove(%8p + %08x, %8p, %08x)\n",
-			*pkt, (unsigned)(*pkt_len - old_pkt_len),
-			*pkt, (unsigned)old_pkt_len));
+                        " memmove(%08p + %08x, %08p, %08x)\n", *pkt,
+                        (*pkt_len - old_pkt_len), *pkt, old_pkt_len));
             memmove(*pkt + (*pkt_len - old_pkt_len), *pkt, old_pkt_len);
             memset(*pkt, (int) ' ', *pkt_len - old_pkt_len);
             return 1;
@@ -2817,7 +2782,7 @@ asn_realloc_rbuild_int(u_char ** pkt, size_t * pkt_len,
         } else {
             DEBUGDUMPSETUP("send", (*pkt + *pkt_len - *offset),
                            (*offset - start_offset));
-            DEBUGMSG(("dumpv_send", "  Integer:\t%ld (0x%.2lX)\n", *intp,
+            DEBUGMSG(("dumpv_send", "  Integer:\t%ld (0x%.2X)\n", *intp,
                       *intp));
             return 1;
         }
@@ -2970,7 +2935,7 @@ asn_realloc_rbuild_unsigned_int(u_char ** pkt, size_t * pkt_len,
         } else {
             DEBUGDUMPSETUP("send", (*pkt + *pkt_len - *offset),
                            (*offset - start_offset));
-            DEBUGMSG(("dumpv_send", "  UInteger:\t%lu (0x%.2lX)\n", *intp,
+            DEBUGMSG(("dumpv_send", "  UInteger:\t%lu (0x%.2X)\n", *intp,
                       *intp));
             return 1;
         }
diff --git a/snmplib/callback.c b/snmplib/callback.c
index dfe537a..acbe7a8 100644
--- a/snmplib/callback.c
+++ b/snmplib/callback.c
@@ -17,12 +17,14 @@
  *  @{
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <sys/types.h>
 #include <stdio.h>
 #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
@@ -32,9 +34,6 @@
 #include <strings.h>
 #endif
 
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -53,11 +52,6 @@
 #include <net-snmp/library/callback.h>
 #include <net-snmp/library/snmp_api.h>
 
-netsnmp_feature_child_of(callbacks_all, libnetsnmp)
-
-netsnmp_feature_child_of(callback_count, callbacks_all)
-netsnmp_feature_child_of(callback_list, callbacks_all)
-
 /*
  * the inline callback methods use major/minor to index into arrays.
  * all users in this function do range checking before calling these
@@ -118,7 +112,7 @@ static int _lock;
 #endif
 
 NETSNMP_STATIC_INLINE int
-_callback_lock(int major, int minor, const char* warn, int do_assert)
+_callback_lock(int major, int minor, const char* warn, int assert)
 {
     int lock_holded=0;
     struct timeval lock_time = { 0, 1000 };
@@ -142,7 +136,7 @@ _callback_lock(int major, int minor, const char* warn, int do_assert)
         if (NULL != warn)
             snmp_log(LOG_WARNING,
                      "lock in _callback_lock sleeps more than 100 milliseconds in %s\n", warn);
-        if (do_assert)
+        if (assert)
             netsnmp_assert(lock_holded < 100);
         
         return 1;
@@ -220,9 +214,7 @@ init_callbacks(void)
  * @param new_callback is the callback function that is registered.
  *
  * @param arg when not NULL is a void pointer used whenever new_callback 
- *	function is exercised. Ownership is transferred to the twodimensional
- *      thecallbacks[][] array. The function clear_callback() will deallocate
- *      the memory pointed at by calling free().
+ *	function is exercised.
  *
  * @return 
  *	Returns SNMPERR_GENERR if major is >= MAX_CALLBACK_IDS or minor is >=
@@ -242,20 +234,6 @@ snmp_register_callback(int major, int minor, SNMPCallback * new_callback,
                                       NETSNMP_CALLBACK_DEFAULT_PRIORITY);
 }
 
-/**
- * Register a callback function.
- *
- * @param major        Major callback event type.
- * @param minor        Minor callback event type.
- * @param new_callback Callback function being registered.
- * @param arg          Argument that will be passed to the callback function.
- * @param priority     Handler invocation priority. When multiple handlers have
- *   been registered for the same (major, minor) callback event type, handlers
- *   with the numerically lowest priority will be invoked first. Handlers with
- *   identical priority are invoked in the order they have been registered.
- *
- * @see snmp_register_callback
- */
 int
 netsnmp_register_callback(int major, int minor, SNMPCallback * new_callback,
                           void *arg, int priority)
@@ -373,7 +351,6 @@ snmp_call_callbacks(int major, int minor, void *caller_arg)
     return SNMPERR_SUCCESS;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_CALLBACK_COUNT
 int
 snmp_count_callbacks(int major, int minor)
 {
@@ -393,7 +370,6 @@ snmp_count_callbacks(int major, int minor)
 
     return count;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CALLBACK_COUNT */
 
 int
 snmp_callback_available(int major, int minor)
@@ -572,7 +548,6 @@ clear_callback(void)
     }
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_CALLBACK_LIST
 struct snmp_gen_callback *
 snmp_callback_list(int major, int minor)
 {
@@ -581,5 +556,4 @@ snmp_callback_list(int major, int minor)
 
     return (thecallbacks[major][minor]);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CALLBACK_LIST */
 /**  @} */
diff --git a/snmplib/cert_util.c b/snmplib/cert_util.c
deleted file mode 100644
index 246a6c9..0000000
--- a/snmplib/cert_util.c
+++ /dev/null
@@ -1,3367 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL)
-netsnmp_feature_child_of(cert_util_all, libnetsnmp)
-netsnmp_feature_child_of(cert_util, cert_util_all)
-#ifdef NETSNMP_FEATURE_REQUIRE_CERT_UTIL
-netsnmp_feature_require(container_directory)
-netsnmp_feature_require(container_fifo)
-netsnmp_feature_require(container_dup)
-netsnmp_feature_require(container_free_all)
-netsnmp_feature_require(subcontainer_find)
-
-netsnmp_feature_child_of(cert_map_remove, netsnmp_unused)
-netsnmp_feature_child_of(cert_map_find, netsnmp_unused)
-netsnmp_feature_child_of(tlstmparams_external, cert_util_all)
-netsnmp_feature_child_of(tlstmparams_container, tlstmparams_external)
-netsnmp_feature_child_of(tlstmparams_remove, tlstmparams_external)
-netsnmp_feature_child_of(tlstmparams_find, tlstmparams_external)
-netsnmp_feature_child_of(tlstmAddr_remove, netsnmp_unused)
-netsnmp_feature_child_of(tlstmaddr_external, cert_util_all)
-netsnmp_feature_child_of(tlstmaddr_container, tlstmaddr_external)
-netsnmp_feature_child_of(tlstmAddr_get_serverId, tlstmaddr_external)
-
-netsnmp_feature_child_of(cert_fingerprints, cert_util_all)
-netsnmp_feature_child_of(tls_fingerprint_build, cert_util_all)
-
-#endif /* NETSNMP_FEATURE_REQUIRE_CERT_UTIL */
-
-#ifndef NETSNMP_FEATURE_REMOVE_CERT_UTIL
-
-#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_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 (_maps) {
-        CONTAINER_FREE_ALL(_maps, NULL);
-        CONTAINER_FREE(_maps);
-        _maps = NULL;
-    }
-    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 = NULL;
-    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_feature_require(cert_utils_dump_names) */
-        /* 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;
-    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 */
-                fp =
-                    netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                          NETSNMP_DS_LIB_TLS_LOCAL_CERT);
-                /** temp backwards compability; remove in 5.7 */
-                if (!fp) {
-                    int           tmp;
-                    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_TLS_PEER_CERT);
-                /** temp backwards compability; remove in 5.7 */
-                if (!fp)
-                    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;
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_CERT_FINGERPRINTS
-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;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_CERT_FINGERPRINTS */
-
-#ifndef NETSNMP_FEATURE_REMOVE_TLS_FINGERPRINT_BUILD
-/**
- * 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;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_TLS_FINGERPRINT_BUILD */
-
-/**
- * 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);
-        if (0 == matching->size) {
-            free(matching->array);
-            SNMP_FREE(matching);
-        }
-    }
-    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);
-        if (0 == matching->size) {
-            free(matching->array);
-            SNMP_FREE(matching);
-        }
-    }
-    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;
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_CERT_MAP_REMOVE
-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;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_CERT_MAP_REMOVE */
-
-#ifndef NETSNMP_FEATURE_REMOVE_CERT_MAP_FIND
-netsnmp_cert_map *
-netsnmp_cert_map_find(netsnmp_cert_map *map)
-{
-    if (NULL == map)
-        return NULL;
-
-    return CONTAINER_FIND(_maps, map);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_CERT_MAP_FIND */
-
-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, *fp;
-
-    chain_map = netsnmp_container_find("cert_map:stack:binary_array");
-    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);
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_TLSTMPARAMS_CONTAINER
-netsnmp_container *
-netsnmp_tlstmParams_container(void)
-{
-    return _tlstmParams;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_TLSTMPARAMS_CONTAINER */
-
-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;
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_TLSTMPARAMS_REMOVE
-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;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_TLSTMPARAMS_REMOVE */
-
-#ifndef NETSNMP_FEATURE_REMOVE_TLSTMPARAMS_FIND
-snmpTlstmParams *
-netsnmp_tlstmParams_find(snmpTlstmParams *stp)
-{
-    snmpTlstmParams *found;
-
-    if (NULL == stp)
-        return NULL;
-
-    found = CONTAINER_FIND(_tlstmParams, stp);
-    return found;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_TLSTMPARAMS_FIND */
-
-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);
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_TLSTMADDR_CONTAINER
-netsnmp_container *
-netsnmp_tlstmAddr_container(void)
-{
-    return _tlstmAddr;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_TLSTMADDR_CONTAINER */
-
-/*
- * 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;
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_TLSTMADDR_REMOVE
-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;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_TLSTMADDR_REMOVE */
-
-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;
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_TLSTMADDR_GET_SERVERID
-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;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_TLSTMADDR_GET_SERVERID */
-/*
- * END snmpTlstmAddrTable data
- * ***************************************************************************/
-
-#else
-netsnmp_feature_unused(cert_util);
-#endif /* NETSNMP_FEATURE_REMOVE_CERT_UTIL */
-netsnmp_feature_unused(cert_util);
-#endif /* defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL) */
diff --git a/snmplib/check_varbind.c b/snmplib/check_varbind.c
index 12b7a52..c66f073 100644
--- a/snmplib/check_varbind.c
+++ b/snmplib/check_varbind.c
@@ -1,27 +1,9 @@
 #include <net-snmp/net-snmp-config.h>
 
 #include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <net-snmp/library/check_varbind.h>
 
-netsnmp_feature_child_of(check_varbind_all, libnetsnmp)
-
-netsnmp_feature_child_of(check_vb_range, check_varbind_all)
-netsnmp_feature_child_of(check_vb_size_range, check_varbind_all)
-netsnmp_feature_child_of(check_vb_uint, check_varbind_all)
-netsnmp_feature_child_of(check_vb_storagetype, check_varbind_all)
-netsnmp_feature_child_of(check_vb_oid, check_varbind_all)
-netsnmp_feature_child_of(check_vb_type_and_max_size, check_varbind_all)
-netsnmp_feature_child_of(check_vb_type_and_max_size, check_varbind_all)
-netsnmp_feature_child_of(check_vb_rowstatus_with_storagetype, check_varbind_all)
-netsnmp_feature_child_of(check_vb_truthvalue, check_varbind_all)
-
-#ifdef NETSNMP_FEATURE_REQUIRE_CHECK_VB_ROWSTATUS_WITH_STORAGETYPE
-netsnmp_feature_require(check_rowstatus_with_storagetype_transition)
-#endif /* NETSNMP_FEATURE_REQUIRES_CHECK_VB_ROWSTATUS_WITH_STORAGETYPE */
-
-
 NETSNMP_INLINE int
 netsnmp_check_vb_type(const netsnmp_variable_list *var, int type )
 {
@@ -67,7 +49,6 @@ netsnmp_check_vb_max_size(const netsnmp_variable_list *var, size_t size )
     return rc;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_CHECK_VB_RANGE
 NETSNMP_INLINE int
 netsnmp_check_vb_range(const netsnmp_variable_list *var,
                        size_t low, size_t high )
@@ -77,15 +58,13 @@ netsnmp_check_vb_range(const netsnmp_variable_list *var,
     if (NULL == var)
         return SNMP_ERR_GENERR;
     
-    if (((size_t)*var->val.integer < low) || ((size_t)*var->val.integer > high)) {
+    if ((*var->val.integer < low) || (*var->val.integer > high)) {
         rc = SNMP_ERR_WRONGVALUE;
     }
 
     return rc;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CHECK_VB_RANGE */
 
-#ifndef NETSNMP_FEATURE_REMOVE_CHECK_VB_SIZE_RANGE
 NETSNMP_INLINE int
 netsnmp_check_vb_size_range(const netsnmp_variable_list *var,
                             size_t low, size_t high )
@@ -101,7 +80,6 @@ netsnmp_check_vb_size_range(const netsnmp_variable_list *var,
 
     return rc;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CHECK_VB_SIZE_RANGE */
 
 NETSNMP_INLINE int
 netsnmp_check_vb_type_and_size(const netsnmp_variable_list *var,
@@ -120,7 +98,6 @@ netsnmp_check_vb_type_and_size(const netsnmp_variable_list *var,
     return rc;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_CHECK_VB_TYPE_AND_MAX_SIZE
 NETSNMP_INLINE int
 netsnmp_check_vb_type_and_max_size(const netsnmp_variable_list *var,
                                int type, size_t size)
@@ -137,9 +114,7 @@ netsnmp_check_vb_type_and_max_size(const netsnmp_variable_list *var,
 
     return rc;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CHECK_VB_TYPE_AND_MAX_SIZE */
 
-#ifndef NETSNMP_FEATURE_REMOVE_CHECK_VB_OID
 NETSNMP_INLINE int
 netsnmp_check_vb_oid(const netsnmp_variable_list *var)
 {
@@ -155,7 +130,6 @@ netsnmp_check_vb_oid(const netsnmp_variable_list *var)
 
     return rc;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CHECK_VB_OID */
 
 NETSNMP_INLINE int
 netsnmp_check_vb_int(const netsnmp_variable_list *var)
@@ -166,7 +140,6 @@ netsnmp_check_vb_int(const netsnmp_variable_list *var)
     return netsnmp_check_vb_type_and_size(var, ASN_INTEGER, sizeof(long));
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_CHECK_VB_UINT
 NETSNMP_INLINE int
 netsnmp_check_vb_uint(const netsnmp_variable_list *var)
 {
@@ -175,7 +148,6 @@ netsnmp_check_vb_uint(const netsnmp_variable_list *var)
     
     return netsnmp_check_vb_type_and_size(var, ASN_UNSIGNED, sizeof(long));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CHECK_VB_UINT */
 
 NETSNMP_INLINE int
 netsnmp_check_vb_int_range(const netsnmp_variable_list *var, int low, int high)
@@ -195,7 +167,6 @@ netsnmp_check_vb_int_range(const netsnmp_variable_list *var, int low, int high)
     return rc;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_CHECK_VB_TRUTHVALUE
 int
 netsnmp_check_vb_truthvalue(const netsnmp_variable_list *var)
 {
@@ -209,7 +180,6 @@ netsnmp_check_vb_truthvalue(const netsnmp_variable_list *var)
     
     return netsnmp_check_vb_int_range(var, 1, 2);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CHECK_VB_TRUTHVALUE */
 
 NETSNMP_INLINE int
 netsnmp_check_vb_rowstatus_value(const netsnmp_variable_list *var)
@@ -243,26 +213,6 @@ netsnmp_check_vb_rowstatus(const netsnmp_variable_list *var, int old_value)
     return check_rowstatus_transition(old_value, *var->val.integer);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_CHECK_VB_ROWSTATUS_WITH_STORAGETYPE
-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);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_CHECK_VB_ROWSTATUS_WITH_STORAGETYPE */
-
-#ifndef NETSNMP_FEATURE_REMOVE_CHECK_VB_STORAGETYPE
 int
 netsnmp_check_vb_storagetype(const netsnmp_variable_list *var, int old_value)
 {
@@ -280,4 +230,3 @@ netsnmp_check_vb_storagetype(const netsnmp_variable_list *var, int old_value)
         
     return check_storage_transition(old_value, *var->val.integer);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CHECK_VB_STORAGETYPE */
diff --git a/snmplib/closedir.c b/snmplib/closedir.c
deleted file mode 100644
index 8c4c50e..0000000
--- a/snmplib/closedir.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * 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
new file mode 100644
index 0000000..bd45aba
--- /dev/null
+++ b/snmplib/cmu_compat.c
@@ -0,0 +1,91 @@
+#include <net-snmp/net-snmp-config.h>
+
+#ifdef CMU_COMPATIBLE
+
+#include <net-snmp/mib_api.h>
+#include <net-snmp/pdu_api.h>
+#include <net-snmp/session_api.h>
+
+int
+mib_TxtToOid(char *Buf, oid ** OidP, size_t * LenP)
+{
+    return read_objid(Buf, *OidP, LenP);
+}
+
+int
+mib_OidToTxt(oid * O, size_t OidLen, char *Buf, size_t BufLen)
+{
+    _sprint_objid(Buf, O, OidLen);
+    return 1;
+}
+
+
+/*
+ * cmu_snmp_parse - emulate CMU library's snmp_parse.
+ *
+ * Parse packet, storing results into PDU.
+ * Returns community string if success, NULL if fail.
+ * WARNING: may return a zero length community string.
+ *
+ * Note:
+ * Some CMU-aware apps call init_mib(), but do not
+ * initialize a session.
+ * Check Reqid to make sure that this module is initialized.
+ */
+
+u_char         *
+cmu_snmp_parse(netsnmp_session * session,
+               netsnmp_pdu *pdu, u_char * data, size_t length)
+{
+    u_char         *bufp = NULL;
+
+    snmp_sess_init(session);    /* gimme a break! */
+
+    switch (pdu->version) {
+    case SNMP_VERSION_1:
+    case SNMP_VERSION_2c:
+    case SNMP_DEFAULT_VERSION:
+        break;
+    default:
+        return NULL;
+    }
+#ifndef NO_INTERNAL_VARLIST
+    if (snmp_parse(0, session, pdu, data, length) != SNMP_ERR_NOERROR) {
+        return NULL;
+    }
+#else
+    /*
+     * while there are two versions of variable_list:
+     * use an internal variable list for snmp_parse;
+     * clone the result.
+     */
+    if (1) {
+        netsnmp_pdu    *snmp_clone_pdu(netsnmp_pdu *);
+        netsnmp_pdu    *snmp_2clone_pdu(netsnmp_pdu *from_pdu,
+                                        netsnmp_pdu *to_pdu);
+
+        netsnmp_pdu    *ipdu;
+        ipdu = snmp_clone_pdu(pdu);
+        if (snmp_parse(0, session, ipdu, data, length) != SNMP_ERR_NOERROR) {
+            snmp_free_internal_pdu(ipdu);
+            return NULL;
+        }
+        pdu = snmp_2clone_pdu(ipdu, pdu);
+        snmp_free_internal_pdu(ipdu);
+    }
+#endif                          /* NO_INTERNAL_VAR_LIST */
+
+    /*
+     * Add a null to meet the caller's expectations. 
+     */
+
+    bufp = (u_char *) malloc(1 + pdu->community_len);
+    if (bufp && pdu->community_len) {
+        memcpy(bufp, pdu->community, pdu->community_len);
+        bufp[pdu->community_len] = '\0';
+    }
+    return (bufp);
+}
+
+
+#endif                          /* CMU_COMPATIBLE */
diff --git a/snmplib/container.c b/snmplib/container.c
index b2ac97e..028e4cc 100644
--- a/snmplib/container.c
+++ b/snmplib/container.c
@@ -1,39 +1,10 @@
-/* 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.
- */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/library/container.h>
 #include <net-snmp/library/container_binary_array.h>
 #include <net-snmp/library/container_list_ssll.h>
 #include <net-snmp/library/container_null.h>
 
-netsnmp_feature_child_of(container_all, libnetsnmp)
-
-netsnmp_feature_child_of(container_factories, container_all)
-netsnmp_feature_child_of(container_types, container_all)
-netsnmp_feature_child_of(container_compare, container_all)
-netsnmp_feature_child_of(container_dup, container_all)
-netsnmp_feature_child_of(container_free_all, container_all)
-netsnmp_feature_child_of(subcontainer_find, container_all)
-
-netsnmp_feature_child_of(container_ncompare_cstring, container_compare)
-netsnmp_feature_child_of(container_compare_mem, container_compare)
-netsnmp_feature_child_of(container_compare_long, container_compare)
-netsnmp_feature_child_of(container_compare_ulong, container_compare)
-netsnmp_feature_child_of(container_compare_int32, container_compare)
-netsnmp_feature_child_of(container_compare_uint32, container_compare)
-
-netsnmp_feature_child_of(container_find_factory, container_factories)
-
 /** @defgroup container container
  */
 
@@ -62,7 +33,7 @@ _factory_free(void *dat, void *context)
     if (data->name != NULL) {
         DEBUGMSGTL(("container", "  _factory_free_list() called for %s\n",
                     data->name));
-	free(NETSNMP_REMOVE_CONST(void *, data->name)); /* SNMP_FREE wasted on object about to be freed */
+	free((void *)data->name); /* SNMP_FREE wasted on object about to be freed */
     }
     free(data); /* SNMP_FREE wasted on param */
 }
@@ -81,41 +52,29 @@ netsnmp_container_init_list(void)
      */
     containers = netsnmp_container_get_binary_array();
     containers->compare = netsnmp_compare_cstring;
-    containers->container_name = strdup("container list");
 
     /*
      * register containers
      */
     netsnmp_container_binary_array_init();
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_LINKED_LIST
     netsnmp_container_ssll_init();
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_LINKED_LIST */
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_NULL
     netsnmp_container_null_init();
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_NULL */
 
     /*
      * default aliases for some containers
      */
     netsnmp_container_register("table_container",
                                netsnmp_container_get_factory("binary_array"));
-
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_LINKED_LIST
     netsnmp_container_register("linked_list",
                                netsnmp_container_get_factory("sorted_singly_linked_list"));
     netsnmp_container_register("ssll_container",
                                netsnmp_container_get_factory("sorted_singly_linked_list"));
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_LINKED_LIST */
-
-    netsnmp_container_register_with_compare
-        ("cstring", netsnmp_container_get_factory("binary_array"),
-         netsnmp_compare_direct_cstring);
 
     netsnmp_container_register_with_compare
         ("string", netsnmp_container_get_factory("binary_array"),
          netsnmp_compare_cstring);
     netsnmp_container_register_with_compare
-        ("string_binary_array", netsnmp_container_get_factory("binary_array"),
+        ("string:binary_array", netsnmp_container_get_factory("binary_array"),
          netsnmp_compare_cstring);
 
 }
@@ -148,7 +107,7 @@ netsnmp_container_register_with_compare(const char* name, netsnmp_factory *f,
     if (NULL==containers)
         return -1;
 
-    tmp.name = NETSNMP_REMOVE_CONST(char *, name);
+    tmp.name = (char *)name;
     ct = (container_type *)CONTAINER_FIND(containers, &tmp);
     if (NULL!=ct) {
         DEBUGMSGT(("container_registry",
@@ -192,7 +151,6 @@ netsnmp_container_get_factory(const char *type)
     return found ? found->factory : NULL;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_FIND_FACTORY
 netsnmp_factory *
 netsnmp_container_find_factory(const char *type_list)
 {
@@ -215,7 +173,6 @@ netsnmp_container_find_factory(const char *type_list)
     free(list);
     return f;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_FIND_FACTORY */
 
 /*------------------------------------------------------------------
  */
@@ -314,6 +271,8 @@ netsnmp_container_add_index(netsnmp_container *primary,
     new_index->prev = curr;
 }
 
+#ifndef NETSNMP_USE_INLINE /* default is to inline */
+
 /*------------------------------------------------------------------
  * These functions should EXACTLY match the inline version in
  * container.h. If you change one, change them both.
@@ -364,8 +323,7 @@ int CONTAINER_REMOVE(netsnmp_container *x, const void *k)
         rc2 = x->remove(x,k);
         /** ignore remove errors if there is a filter in place */
         if ((rc2) && (NULL == x->insert_filter)) {
-            snmp_log(LOG_ERR,"error on subcontainer '%s' remove (%d)\n",
-                     x->container_name ? x->container_name : "", rc2);
+            snmp_log(LOG_ERR,"error on subcontainer remove (%d)\n", rc2);
             rc = rc2;
         }
         x = x->prev;
@@ -375,22 +333,6 @@ int CONTAINER_REMOVE(netsnmp_container *x, const void *k)
 }
 
 /*------------------------------------------------------------------
- * These functions should EXACTLY match the function version in
- * container.c. If you change one, change them both.
- */
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_DUP
-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);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_DUP */
-
-/*------------------------------------------------------------------
  * These functions should EXACTLY match the inline version in
  * container.h. If you change one, change them both.
  */
@@ -403,17 +345,14 @@ int CONTAINER_FREE(netsnmp_container *x)
         x = x->next;
     while(x) {
         netsnmp_container *tmp;
-        char *name;
         tmp = x->prev;
-        name = x->container_name;
-        x->container_name = NULL;
+        if (NULL != x->container_name)
+            SNMP_FREE(x->container_name);
         rc2 = x->cfree(x);
         if (rc2) {
-            snmp_log(LOG_ERR,"error on subcontainer '%s' cfree (%d)\n",
-                     name ? name : "", rc2);
+            snmp_log(LOG_ERR,"error on subcontainer cfree (%d)\n", rc2);
             rc = rc2;
         }
-        SNMP_FREE(name);
         x = tmp;
     }
     return rc;
@@ -441,19 +380,6 @@ void CONTAINER_CLEAR(netsnmp_container *x, netsnmp_container_obj_func *f,
     x->clear(x, f, c);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_FREE_ALL
-/*
- * 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);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_FREE_ALL */
-
-#ifndef NETSNMP_FEATURE_REMOVE_SUBCONTAINER_FIND
 /*------------------------------------------------------------------
  * These functions should EXACTLY match the function version in
  * container.c. If you change one, change them both.
@@ -477,7 +403,7 @@ netsnmp_container *SUBCONTAINER_FIND(netsnmp_container *x,
     }
     return x;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SUBCONTAINER_FIND */
+#endif
 
 
 /*------------------------------------------------------------------
@@ -502,26 +428,6 @@ netsnmp_init_container(netsnmp_container         *c,
     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;
 }
 
 /*------------------------------------------------------------------
@@ -581,7 +487,6 @@ netsnmp_compare_cstring(const void * lhs, const void * rhs)
                   ((const container_type*)rhs)->name);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_NCOMPARE_CSTRING
 int
 netsnmp_ncompare_cstring(const void * lhs, const void * rhs)
 {
@@ -589,13 +494,6 @@ netsnmp_ncompare_cstring(const void * lhs, const void * rhs)
                    ((const container_type*)rhs)->name,
                    strlen(((const container_type*)rhs)->name));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_NCOMPARE_CSTRING */
-
-int
-netsnmp_compare_direct_cstring(const void * lhs, const void * rhs)
-{
-    return strcmp((const char*)lhs, (const char*)rhs);
-}
 
 /*
  * compare two memory buffers
@@ -604,7 +502,6 @@ netsnmp_compare_direct_cstring(const void * lhs, const void * rhs)
  * compare up to the length of the smaller, and then use length to
  * break any ties.
  */
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_COMPARE_MEM
 int
 netsnmp_compare_mem(const char * lhs, size_t lhs_len,
                     const char * rhs, size_t rhs_len)
@@ -621,79 +518,6 @@ netsnmp_compare_mem(const char * lhs, size_t lhs_len,
 
     return rc;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_COMPARE_MEM */
-
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_COMPARE_LONG
-int
-netsnmp_compare_long(const void * lhs, const void * rhs)
-{
-    typedef struct { long index; } dummy;
-
-    const dummy *lhd = (const dummy*)lhs;
-    const dummy *rhd = (const dummy*)rhs;
-
-    if (lhd->index < rhd->index)
-        return -1;
-    else if (lhd->index > rhd->index)
-        return 1;
-
-    return 0;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_COMPARE_LONG */
-
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_COMPARE_ULONG
-int
-netsnmp_compare_ulong(const void * lhs, const void * rhs)
-{
-    typedef struct { u_long index; } dummy;
-
-    const dummy *lhd = (const dummy*)lhs;
-    const dummy *rhd = (const dummy*)rhs;
-
-    if (lhd->index < rhd->index)
-        return -1;
-    else if (lhd->index > rhd->index)
-        return 1;
-
-    return 0;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_COMPARE_ULONG */
-
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_COMPARE_INT32
-int
-netsnmp_compare_int32(const void * lhs, const void * rhs)
-{
-    typedef struct { int32_t index; } dummy;
-
-    const dummy *lhd = (const dummy*)lhs;
-    const dummy *rhd = (const dummy*)rhs;
-
-    if (lhd->index < rhd->index)
-        return -1;
-    else if (lhd->index > rhd->index)
-        return 1;
-
-    return 0;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_COMPARE_INT32 */
-
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_COMPARE_UINT32
-int
-netsnmp_compare_uint32(const void * lhs, const void * rhs)
-{
-    typedef struct { uint32_t index; } dummy;
-
-    const dummy *lhd = (const dummy*)lhs;
-    const dummy *rhd = (const dummy*)rhs;
-
-    if (lhd->index < rhd->index)
-        return -1;
-    else if (lhd->index > rhd->index)
-        return 1;
-
-    return 0;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_COMPARE_UINT32 */
 
 /*------------------------------------------------------------------
  * netsnmp_container_simple_free
diff --git a/snmplib/container_binary_array.c b/snmplib/container_binary_array.c
index 249a3a9..ca1361a 100644
--- a/snmplib/container_binary_array.c
+++ b/snmplib/container_binary_array.c
@@ -1,6 +1,6 @@
 /*
  * container_binary_array.c
- * $Id$
+ * $Id: container_binary_array.c 17543 2009-04-23 15:58:53Z hardaker $
  *
  * see comments in header file.
  *
@@ -36,7 +36,9 @@
 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 */
 } binary_array_table;
 
@@ -64,9 +66,9 @@ array_qsort(void **data, int first, int last, netsnmp_container_compare *f)
     mid = data[(first+last)/2];
     
     do {
-        while (i < last && (*f)(data[i], mid) < 0)
+        while ( ((*f)(data[i], mid) < 0) && (i < last))
             ++i;
-        while (j > first && (*f)(mid, data[j]) < 0)
+        while ( ((*f)(mid, data[j]) < 0) && (j > first))
             --j;
 
         if(i < j) {
@@ -97,7 +99,7 @@ Sort_Array(netsnmp_container *c)
     netsnmp_assert(t!=NULL);
     netsnmp_assert(c->compare!=NULL);
 
-    if (c->flags & CONTAINER_KEY_UNSORTED)
+    if (t->flags & CONTAINER_KEY_UNSORTED)
         return 0;
 
     if (t->dirty) {
@@ -108,9 +110,6 @@ Sort_Array(netsnmp_container *c)
             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;
     }
 
@@ -118,32 +117,6 @@ Sort_Array(netsnmp_container *c)
 }
 
 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;
@@ -156,15 +129,6 @@ binary_search(const void *val, netsnmp_container *c, int exact)
     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);
 
@@ -220,6 +184,7 @@ netsnmp_binary_array_initialize(void)
     t->max_size = 0;
     t->count = 0;
     t->dirty = 0;
+    t->data_size = sizeof(void*);
     t->data = NULL;
 
     return t;
@@ -229,7 +194,9 @@ void
 netsnmp_binary_array_release(netsnmp_container *c)
 {
     binary_array_table *t = (binary_array_table*)c->container_data;
-    SNMP_FREE(t->data);
+    if (t->data != NULL) {
+	SNMP_FREE(t->data);
+    }
     SNMP_FREE(t);
     SNMP_FREE(c);
 }
@@ -237,16 +204,11 @@ netsnmp_binary_array_release(netsnmp_container *c)
 int
 netsnmp_binary_array_options_set(netsnmp_container *c, int set, u_int 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 */
-    }
+    binary_array_table *t = (binary_array_table*)c->container_data;
+    if (set)
+        t->flags = flags;
     else
-        return ((c->flags & flags) == flags);
+        return ((t->flags & flags) == flags);
     return flags;
 }
 
@@ -270,7 +232,7 @@ netsnmp_binary_array_get(netsnmp_container *c, const void *key, int exact)
      * if there is no data, return NULL;
      */
     if (!t->count)
-        return NULL;
+        return 0;
 
     /*
      * if the table is dirty, sort it.
@@ -283,16 +245,17 @@ netsnmp_binary_array_get(netsnmp_container *c, const void *key, int exact)
      */
     if (key) {
         if ((index = binary_search(key, c, exact)) == -1)
-            return NULL;
+            return 0;
     }
 
     return t->data[index];
 }
 
 int
-netsnmp_binary_array_remove_at(netsnmp_container *c, size_t index, void **save)
+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;
 
     if (save)
         *save = NULL;
@@ -304,6 +267,18 @@ netsnmp_binary_array_remove_at(netsnmp_container *c, size_t index, void **save)
         return 0;
 
     /*
+     * if the table is dirty, sort it.
+     */
+    if (t->dirty)
+        Sort_Array(c);
+
+    /*
+     * search
+     */
+    if ((index = binary_search(key, c, 1)) == -1)
+        return -1;
+
+    /*
      * find old data and save it, if ptr provided
      */
     if (save)
@@ -317,43 +292,11 @@ netsnmp_binary_array_remove_at(netsnmp_container *c, size_t index, void **save)
         /*
          * otherwise, shift array down
          */
-        memmove(&t->data[index], &t->data[index+1],
-                sizeof(void*) * (t->count - index));
-
-        ++c->sync;
+        memmove(&t->data[index], &t->data[index+1], t->data_size * (t->count - index));
     }
 
     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;
-    int                index = 0;
-
-    if (save)
-        *save = NULL;
-    
-    /*
-     * if there is no data, return NULL;
-     */
-    if (!t->count)
-        return 0;
-
-    /*
-     * if the table is dirty, sort it.
-     */
-    if (t->dirty)
-        Sort_Array(c);
-
-    /*
-     * search
-     */
-    if ((index = binary_search(key, c, 1)) == -1)
-        return -1;
-
-    return netsnmp_binary_array_remove_at(c, (size_t)index, save);
-}
 
 NETSNMP_STATIC_INLINE void
 netsnmp_binary_array_for_each(netsnmp_container *c,
@@ -393,13 +336,15 @@ NETSNMP_STATIC_INLINE int
 netsnmp_binary_array_insert(netsnmp_container *c, const void *entry)
 {
     binary_array_table *t = (binary_array_table*)c->container_data;
-    int             was_dirty = 0;
+    int             new_max;
+    void           *new_data;   /* Used for * a) extending the data table
+                                 * * b) the next entry to use */
     /*
      * check for duplicates
      */
-    if (! (c->flags & CONTAINER_KEY_ALLOW_DUPLICATES)) {
-        was_dirty = t->dirty;
-        if (NULL != netsnmp_binary_array_get(c, entry, 1)) {
+    if (! (t->flags & CONTAINER_KEY_ALLOW_DUPLICATES)) {
+        new_data = netsnmp_binary_array_get(c, entry, 1);
+        if (NULL != new_data) {
             DEBUGMSGTL(("container","not inserting duplicate key\n"));
             return -1;
         }
@@ -410,37 +355,29 @@ netsnmp_binary_array_insert(netsnmp_container *c, const void *entry)
      */
     if (t->max_size <= t->count) {
         /*
-         * Table is full, so extend it to double the size, or use 10 elements
-         * if it is empty.
+         * Table is full, so extend it to double the size
          */
-        size_t const new_max = t->max_size > 0 ? 2 * t->max_size : 10;
-        void ** const new_data =
-            (void**) realloc(t->data, new_max * sizeof(void*));
+        new_max = 2 * t->max_size;
+        if (new_max == 0)
+            new_max = 10;       /* Start with 10 entries */
 
+        new_data = (void *) calloc(new_max, t->data_size);
         if (new_data == NULL)
             return -1;
 
-        memset(new_data + t->max_size, 0x0,
-               (new_max - t->max_size) * sizeof(void*));
-
-        t->data = new_data;
+        if (t->data) {
+            memcpy(new_data, t->data, t->max_size * t->data_size);
+            SNMP_FREE(t->data);
+        }
+        t->data = (void**)new_data;
         t->max_size = new_max;
     }
 
     /*
      * Insert the new entry into the data array
      */
-    t->data[t->count++] = NETSNMP_REMOVE_CONST(void *, entry);
+    t->data[t->count++] = (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;
 }
 
@@ -487,7 +424,7 @@ binary_search_for_start(netsnmp_index *val, netsnmp_container *c)
 void          **
 netsnmp_binary_array_get_subset(netsnmp_container *c, void *key, int *len)
 {
-    binary_array_table *t;
+    binary_array_table *t = (binary_array_table*)c->container_data;
     void          **subset;
     int             start, end;
     size_t          i;
@@ -495,13 +432,8 @@ netsnmp_binary_array_get_subset(netsnmp_container *c, void *key, int *len)
     /*
      * if there is no data, return NULL;
      */
-    if (!c || !key)
-        return NULL;
-
-    t = (binary_array_table*)c->container_data;
-    netsnmp_assert(c->ncompare);
-    if (!t->count | !c->ncompare)
-        return NULL;
+    if (!t->count || !key)
+        return 0;
 
     /*
      * if the table is dirty, sort it.
@@ -514,7 +446,7 @@ netsnmp_binary_array_get_subset(netsnmp_container *c, void *key, int *len)
      */
     start = end = binary_search_for_start((netsnmp_index *)key, c);
     if (start == -1)
-        return NULL;
+        return 0;
 
     for (i = start + 1; i < t->count; ++i) {
         if (0 != c->ncompare(t->data[i], key))
@@ -523,9 +455,9 @@ netsnmp_binary_array_get_subset(netsnmp_container *c, void *key, int *len)
     }
 
     *len = end - start + 1;
-    subset = (void **)malloc((*len) * sizeof(void*));
+    subset = (void **)malloc((*len) * t->data_size);
     if (subset)
-        memcpy(subset, &t->data[start], sizeof(void*) * (*len));
+        memcpy(subset, &t->data[start], t->data_size * (*len));
 
     return subset;
 }
@@ -610,60 +542,6 @@ _ba_get_subset(netsnmp_container *container, void *data)
     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;
-
-    /*
-     * shallow copy
-     */
-    dupt->data = (void**) malloc(dupt->max_size * sizeof(void*));
-    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 * sizeof(void*));
-
-    return dup;
-}
-
 netsnmp_container *
 netsnmp_container_get_binary_array(void)
 {
@@ -677,19 +555,18 @@ netsnmp_container_get_binary_array(void)
     }
 
     c->container_data = netsnmp_binary_array_initialize();
-
-    /*
-     * 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->get_size = _ba_size;
+    c->init = NULL;
+    c->cfree = _ba_free;
+    c->insert = _ba_insert;
+    c->remove = _ba_remove;
+    c->find = _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;
 }
@@ -752,7 +629,7 @@ _ba_iterator_position(binary_array_iterator *it, size_t pos)
         return NULL;
     }
     else if(pos >= t->count) {
-        DEBUGMSGTL(("container:iterator", "end of container\n"));
+        DEBUGMSGTL(("container:iterator", "end of containter\n"));
         return NULL;
     }
 
@@ -802,25 +679,6 @@ _ba_iterator_last(binary_array_iterator *it)
 }
 
 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);
@@ -869,7 +727,6 @@ _ba_iterator_get(netsnmp_container *c)
     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_iterator.c b/snmplib/container_iterator.c
index 41b14ff..fbe1913 100644
--- a/snmplib/container_iterator.c
+++ b/snmplib/container_iterator.c
@@ -1,10 +1,9 @@
 /*
- * $Id$
+ * $Id: container_iterator.c 16758 2007-12-19 22:39:31Z magfr $
  *
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <stdio.h>
 #if HAVE_STDLIB_H
@@ -29,9 +28,6 @@
 
 #include <net-snmp/library/container_iterator.h>
 
-netsnmp_feature_child_of(container_iterator, container_types)
-
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_ITERATOR
 /**
  *  Holds iterator information containing functions which should be called
  *  by the iterator_handler to loop over your data set and sort it in a
@@ -367,6 +363,7 @@ static size_t
 _iterator_size(iterator_info *ii)
 {
     size_t count = 0;
+    int rc = SNMP_ERR_NOERROR;
     netsnmp_ref_void loop_ctx = { NULL };
     netsnmp_ref_void tmp = { NULL };
 
@@ -384,9 +381,9 @@ _iterator_size(iterator_info *ii)
     if(ii->init_loop_ctx)
         ii->init_loop_ctx(ii->user_ctx, &loop_ctx);
     
-    for( ii->get_first(ii->user_ctx, &loop_ctx, &tmp);
+    for( rc = ii->get_first(ii->user_ctx, &loop_ctx, &tmp);
          NULL != tmp.val;
-         ii->get_next(ii->user_ctx, &loop_ctx, &tmp) )
+         rc = ii->get_next(ii->user_ctx, &loop_ctx, &tmp) )
         ++count;
 
     if(ii->cleanup_loop_ctx)
@@ -399,6 +396,7 @@ static void
 _iterator_for_each(iterator_info *ii, netsnmp_container_obj_func *f,
                    void *ctx)
 {
+    int rc = SNMP_ERR_NOERROR;
     netsnmp_ref_void loop_ctx = { NULL };
     netsnmp_ref_void tmp = { NULL };
 
@@ -410,9 +408,9 @@ _iterator_for_each(iterator_info *ii, netsnmp_container_obj_func *f,
     if(ii->init_loop_ctx)
         ii->init_loop_ctx(ii->user_ctx, &loop_ctx);
     
-    for( ii->get_first(ii->user_ctx, &loop_ctx, &tmp);
+    for( rc = ii->get_first(ii->user_ctx, &loop_ctx, &tmp);
          NULL != tmp.val;
-         ii->get_next(ii->user_ctx, &loop_ctx, &tmp) )
+         rc = ii->get_next(ii->user_ctx, &loop_ctx, &tmp) )
         (*f) (tmp.val, ctx);
 
     if(ii->cleanup_loop_ctx)
@@ -508,6 +506,3 @@ netsnmp_container_iterator_set_data_cb(netsnmp_container *c,
     ii->remove_data = remove_data;
     ii->get_size = get_size;
 }
-#else  /* NETSNMP_FEATURE_REMOVE_CONTAINER_ITERATOR */
-netsnmp_feature_unused(container_iterator);
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_ITERATOR */
diff --git a/snmplib/container_list_ssll.c b/snmplib/container_list_ssll.c
index 7ff01c4..39b0709 100644
--- a/snmplib/container_list_ssll.c
+++ b/snmplib/container_list_ssll.c
@@ -1,10 +1,9 @@
 /*
  * container_list_sl.c
- * $Id$
+ * $Id: container_list_ssll.c 11048 2004-09-09 10:43:40Z slif $
  *
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <stdio.h>
 #if HAVE_STDLIB_H
@@ -29,19 +28,6 @@
 
 #include <net-snmp/library/container_list_ssll.h>
 
-netsnmp_feature_child_of(container_linked_list, container_types)
-netsnmp_feature_child_of(container_fifo, container_types)
-netsnmp_feature_child_of(container_lifo, container_types)
-
-/* this is a fancy way of cleaning up ifdefs */
-#ifdef NETSNMP_FEATURE_REQUIRE_CONTAINER_FIFO
-netsnmp_feature_require(container_linked_list)
-#endif /* NETSNMP_FEATURE_REQUIRE_CONTAINER_FIFO */
-#ifdef NETSNMP_FEATURE_REQUIRE_CONTAINER_LIFO
-netsnmp_feature_require(container_linked_list)
-#endif /* NETSNMP_FEATURE_REQUIRE_CONTAINER_LIFO */
-
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_LINKED_LIST
 typedef struct sl_node {
    void           *data;
    struct sl_node *next;
@@ -58,15 +44,6 @@ typedef struct sl_container_s {
 
 } sl_container;
 
-typedef struct ssll_iterator_s {
-    netsnmp_iterator base;
- 
-    sl_node         *pos;
-    sl_node         *last;
-} ssll_iterator;
-
-static netsnmp_iterator *_ssll_iterator_get(netsnmp_container *c);
-
 
 static void *
 _get(netsnmp_container *c, const void *key, int exact)
@@ -108,13 +85,12 @@ _get(netsnmp_container *c, const void *key, int exact)
  *
  *
  **********************************************************************/
-static int
+static void
 _ssll_free(netsnmp_container *c)
 {
     if(c) {
         free(c);
     }
-    return 0;
 }
 
 static void *
@@ -147,9 +123,8 @@ _ssll_insert(netsnmp_container *c, const void *data)
     new_node = SNMP_MALLOC_TYPEDEF(sl_node);
     if(NULL == new_node)
         return -1;
-    new_node->data = NETSNMP_REMOVE_CONST(void *, data);
+    new_node->data = (void *)data;
     ++sl->count;
-    ++c->sync;
 
     /*
      * first node?
@@ -248,7 +223,6 @@ _ssll_remove(netsnmp_container *c, const void *data)
      */
     free(curr);
     --sl->count;
-    ++c->sync;
     
     return 0;
 }
@@ -304,7 +278,6 @@ _ssll_clear(netsnmp_container *c, netsnmp_container_obj_func *f,
     }
     sl->head = NULL;
     sl->count = 0;
-    ++c->sync;
 }
 
 /**********************************************************************
@@ -324,12 +297,16 @@ netsnmp_container_get_ssll(void)
         return NULL;
     }
 
-    netsnmp_init_container((netsnmp_container *)sl, NULL, _ssll_free,
-                           _ssll_size, NULL, _ssll_insert, _ssll_remove,
-                           _ssll_find);
+    sl->c.cfree = (netsnmp_container_rc*)_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;
     sl->c.find_next = _ssll_find_next;
     sl->c.get_subset = NULL;
-    sl->c.get_iterator =_ssll_iterator_get;
+    sl->c.get_iterator = NULL;
     sl->c.for_each = _ssll_for_each;
     sl->c.clear = _ssll_clear;
 
@@ -414,157 +391,3 @@ netsnmp_container_ssll_init(void)
                                netsnmp_container_get_fifo_factory());
 }
 
-
-/**********************************************************************
- *
- * iterator
- *
- */
-NETSNMP_STATIC_INLINE sl_container *
-_ssll_it2cont(ssll_iterator *it)
-{
-    if(NULL == it) {
-        netsnmp_assert(NULL != it);
-        return NULL;
-    }
-
-    if(NULL == it->base.container) {
-        netsnmp_assert(NULL != it->base.container);
-        return NULL;
-    }
-
-    if(it->base.container->sync != it->base.sync) {
-        DEBUGMSGTL(("container:iterator", "out of sync\n"));
-        return NULL;
-    }
-
-    return (sl_container *)it->base.container;
-}
-
-static void *
-_ssll_iterator_curr(ssll_iterator *it)
-{
-    sl_container *t = _ssll_it2cont(it);
-    if ((NULL == t) || (NULL == it->pos))
-        return NULL;
-
-    return it->pos->data;
-}
-
-static void *
-_ssll_iterator_first(ssll_iterator *it)
-{
-    sl_container *t = _ssll_it2cont(it);
-    if ((NULL == t) || (NULL == t->head))
-        return NULL;
-
-    return t->head->data;
-}
-
-static void *
-_ssll_iterator_next(ssll_iterator *it)
-{
-    sl_container *t = _ssll_it2cont(it);
-    if ((NULL == t) || (NULL == it->pos))
-        return NULL;
-
-    it->pos = it->pos->next;
-    if (NULL == it->pos)
-        return NULL;
-
-    return it->pos->data;
-}
-
-static void *
-_ssll_iterator_last(ssll_iterator *it)
-{
-    sl_node      *n;
-    sl_container *t = _ssll_it2cont(it);
-    if(NULL == t)
-        return NULL;
-    
-    if (it->last)
-        return it->last;
-
-    n = it->pos ? it->pos : t->head;
-    if (NULL == n)
-        return NULL;
-
-    while(n->next)
-        n = n->next;
-
-    if (NULL == n)
-        return NULL;
-
-    it->last = n;
-
-    return it->last->data;
-}
-
-static int
-_ssll_iterator_reset(ssll_iterator *it)
-{
-    sl_container *t;
-
-    /** can't use it2conf cuz we might be out of sync */
-    if(NULL == it) {
-        netsnmp_assert(NULL != it);
-        return 0;
-    }
-
-    if(NULL == it->base.container) {
-        netsnmp_assert(NULL != it->base.container);
-        return 0;
-    }
-    t = (sl_container *)it->base.container;
-    if(NULL == t)
-        return -1;
-
-    it->last = NULL;
-    it->pos = t->head;
-
-    /*
-     * save sync count, to make sure container doesn't change while
-     * iterator is in use.
-     */
-    it->base.sync = it->base.container->sync;
-
-    return 0;
-}
-
-static int
-_ssll_iterator_release(netsnmp_iterator *it)
-{
-    free(it);
-
-    return 0;
-}
-
-static netsnmp_iterator *
-_ssll_iterator_get(netsnmp_container *c)
-{
-    ssll_iterator* it;
-
-    if(NULL == c)
-        return NULL;
-
-    it = SNMP_MALLOC_TYPEDEF(ssll_iterator);
-    if(NULL == it)
-        return NULL;
-
-    it->base.container = c;
-    
-    it->base.first = (netsnmp_iterator_rtn*)_ssll_iterator_first;
-    it->base.next = (netsnmp_iterator_rtn*)_ssll_iterator_next;
-    it->base.curr = (netsnmp_iterator_rtn*)_ssll_iterator_curr;
-    it->base.last = (netsnmp_iterator_rtn*)_ssll_iterator_last;
-    it->base.reset = (netsnmp_iterator_rc*)_ssll_iterator_reset;
-    it->base.release = (netsnmp_iterator_rc*)_ssll_iterator_release;
-
-    (void)_ssll_iterator_reset(it);
-
-    return (netsnmp_iterator *)it;
-}
-#else /* NETSNMP_FEATURE_REMOVE_CONTAINER_LINKED_LIST */
-netsnmp_feature_unused(container_linked_list);
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_LINKED_LIST */
diff --git a/snmplib/container_null.c b/snmplib/container_null.c
index 1f4870e..baf5f19 100644
--- a/snmplib/container_null.c
+++ b/snmplib/container_null.c
@@ -1,13 +1,12 @@
 /*
  * container_null.c
- * $Id$
+ * $Id: container_null.c 16758 2007-12-19 22:39:31Z magfr $
  *
  * see comments in header file.
  *
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #if HAVE_IO_H
 #include <io.h>
@@ -34,8 +33,6 @@
 #include <net-snmp/library/tools.h>
 #include <net-snmp/library/snmp_assert.h>
 
-netsnmp_feature_child_of(container_null, container_types)
-
 /** @defgroup null_container null_container
  *  Helps you implement specialized containers.
  *  @ingroup container
@@ -53,7 +50,6 @@ netsnmp_feature_child_of(container_null, container_types)
  *  @{
  */
 
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_NULL
 /**********************************************************************
  *
  * container
@@ -160,7 +156,7 @@ netsnmp_container_get_null(void)
     c->find = _null_find;
     c->find_next = _null_find_next;
     c->get_subset = _null_get_subset;
-    c->get_iterator = NULL; /* _null_iterator; */
+    c->get_iterator = 0; /* _null_iterator; */
     c->for_each = _null_for_each;
     c->clear = _null_clear;
        
@@ -184,8 +180,5 @@ netsnmp_container_null_init(void)
     netsnmp_container_register("null",
                                netsnmp_container_get_null_factory());
 }
-#else  /* NETSNMP_FEATURE_REMOVE_CONTAINER_NULL */
-netsnmp_feature_unused(container_null);
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_NULL */
 /**  @} */
 
diff --git a/snmplib/data_list.c b/snmplib/data_list.c
index 505d4fc..244b4e6 100644
--- a/snmplib/data_list.c
+++ b/snmplib/data_list.c
@@ -1,16 +1,17 @@
 /*
  * netsnmp_data_list.c
  *
- * $Id$
+ * $Id: data_list.c 16758 2007-12-19 22:39:31Z magfr $
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 
-netsnmp_feature_child_of(data_list_all, libnetsnmp)
+/*
+ * prototypes
+ */
+NETSNMP_INLINE void
+netsnmp_data_list_add_node(netsnmp_data_list **head, netsnmp_data_list *node);
 
-netsnmp_feature_child_of(data_list_add_data, data_list_all)
-netsnmp_feature_child_of(data_list_get_list_node, data_list_all)
 
 /** @defgroup data_list generic linked-list data handling with a string as a key.
  * @ingroup library
@@ -67,16 +68,24 @@ netsnmp_create_data_list(const char *name, void *data,
     if (!node)
         return NULL;
     node->name = strdup(name);
-    if (!node->name) {
-        free(node);
-        return NULL;
-    }
     node->data = data;
     node->free_func = beer;
     return node;
 }
 
 /** adds data to a datalist
+ * @note netsnmp_data_list_add_node is preferred
+ * @param head a pointer to the head node of a data_list
+ * @param node a node to stash in the data_list
+ */
+/**  */
+NETSNMP_INLINE void
+netsnmp_add_list_data(netsnmp_data_list **head, netsnmp_data_list *node)
+{
+    netsnmp_data_list_add_node(head, node);
+}
+
+/** adds data to a datalist
  * @param head a pointer to the head node of a data_list
  * @param node a node to stash in the data_list
  */
@@ -89,13 +98,12 @@ netsnmp_data_list_add_node(netsnmp_data_list **head, netsnmp_data_list *node)
     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,
@@ -119,25 +127,12 @@ netsnmp_data_list_add_node(netsnmp_data_list **head, netsnmp_data_list *node)
 }
 
 /** adds data to a datalist
- * @note netsnmp_data_list_add_node is preferred
- * @param head a pointer to the head node of a data_list
- * @param node a node to stash in the data_list
- */
-/**  */
-NETSNMP_INLINE void
-netsnmp_add_list_data(netsnmp_data_list **head, netsnmp_data_list *node)
-{
-    netsnmp_data_list_add_node(head, node);
-}
-
-/** adds data to a datalist
  * @param head a pointer to the head node of a data_list
  * @param name the name of the node to cache the data.
  * @param data the data to be stored under that name
  * @param beer A function that can free the data pointer (in the future)
  * @return a newly created data_list node which was inserted in the list
  */
-#ifndef NETSNMP_FEATURE_REMOVE_DATA_LIST_ADD_DATA
 NETSNMP_INLINE netsnmp_data_list *
 netsnmp_data_list_add_data(netsnmp_data_list **head, const char *name,
                            void *data, Netsnmp_Free_List_Data * beer)
@@ -157,7 +152,6 @@ netsnmp_data_list_add_data(netsnmp_data_list **head, const char *name,
 
     return node;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_DATA_LIST_ADD_DATA */
 
 /** returns a data_list node's data for a given name within a data_list
  * @param head the head node of a data_list
@@ -182,7 +176,6 @@ netsnmp_get_list_data(netsnmp_data_list *head, const char *name)
  * @param name the name to find
  * @return a pointer to the data_list node
  */
-#ifndef NETSNMP_FEATURE_REMOVE_DATA_LIST_GET_LIST_NODE
 NETSNMP_INLINE netsnmp_data_list    *
 netsnmp_get_list_node(netsnmp_data_list *head, const char *name)
 {
@@ -195,7 +188,6 @@ netsnmp_get_list_node(netsnmp_data_list *head, const char *name)
         return head;
     return NULL;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_DATA_LIST_GET_LIST_NODE */
 
 /** Removes a named node from a data_list (and frees it)
  * @param realhead a pointer to the head node of a data_list
@@ -240,14 +232,9 @@ netsnmp_register_save_list(netsnmp_data_list **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)
-{
-    netsnmp_data_list_saveinfo *info;
-
-    if (!data_list_save_ptr && !data_list_read_ptr)
-        return;
-
-    info = SNMP_MALLOC_TYPEDEF(netsnmp_data_list_saveinfo);
+                           Netsnmp_Free_List_Data *data_list_free_ptr) {
+    netsnmp_data_list_saveinfo *info =
+        SNMP_MALLOC_TYPEDEF(netsnmp_data_list_saveinfo);
 
     if (!info) {
         snmp_log(LOG_ERR, "couldn't malloc a netsnmp_data_list_saveinfo typedef");
diff --git a/snmplib/default_store.c b/snmplib/default_store.c
index 8dbc9bc..9080e9e 100644
--- a/snmplib/default_store.c
+++ b/snmplib/default_store.c
@@ -126,7 +126,6 @@
  *  @{
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <sys/types.h>
 #if HAVE_STDLIB_H
 #include <stdlib.h>
@@ -142,10 +141,10 @@
 #else
 #include <strings.h>
 #endif
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
 #endif
+
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -158,14 +157,6 @@
 
 #include <net-snmp/library/snmp_api.h>
 
-netsnmp_feature_child_of(default_store_all, libnetsnmp)
-
-netsnmp_feature_child_of(default_store_void, default_store_all)
-
-#ifndef NETSNMP_FEATURE_REMOVE_DEFAULT_STORE_VOID
-#endif /* NETSNMP_FEATURE_REMOVE_DEFAULT_STORE_VOID */
-
-
 static const char * stores [NETSNMP_DS_MAX_IDS] = { "LIB", "APP", "TOK" };
 
 typedef struct netsnmp_ds_read_config_s {
@@ -182,9 +173,7 @@ static netsnmp_ds_read_config *netsnmp_ds_configs = NULL;
 static int   netsnmp_ds_integers[NETSNMP_DS_MAX_IDS][NETSNMP_DS_MAX_SUBIDS];
 static char  netsnmp_ds_booleans[NETSNMP_DS_MAX_IDS][NETSNMP_DS_MAX_SUBIDS/8];
 static char *netsnmp_ds_strings[NETSNMP_DS_MAX_IDS][NETSNMP_DS_MAX_SUBIDS];
-#ifndef NETSNMP_FEATURE_REMOVE_DEFAULT_STORE_VOID
 static void *netsnmp_ds_voids[NETSNMP_DS_MAX_IDS][NETSNMP_DS_MAX_SUBIDS];
-#endif /* NETSNMP_FEATURE_REMOVE_DEFAULT_STORE_VOID */
 
 /*
  * Prototype definitions 
@@ -324,7 +313,6 @@ netsnmp_ds_get_string(int storeid, int which)
     return netsnmp_ds_strings[storeid][which];
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_DEFAULT_STORE_VOID
 int
 netsnmp_ds_set_void(int storeid, int which, void *value)
 {
@@ -333,7 +321,7 @@ netsnmp_ds_set_void(int storeid, int which, void *value)
         return SNMPERR_GENERR;
     }
 
-    DEBUGMSGTL(("netsnmp_ds_set_void", "Setting %s:%d = %p\n",
+    DEBUGMSGTL(("netsnmp_ds_set_void", "Setting %s:%d = %x\n",
                 stores[storeid], which, value));
 
     netsnmp_ds_voids[storeid][which] = value;
@@ -351,7 +339,6 @@ netsnmp_ds_get_void(int storeid, int which)
 
     return netsnmp_ds_voids[storeid][which];
 }
-#endif /* NETSNMP_FEATURE_REMOVE_DEFAULT_STORE_VOID */
 
 int
 netsnmp_ds_parse_boolean(char *line)
@@ -452,14 +439,10 @@ netsnmp_ds_register_config(u_char type, const char *ftype, const char *token,
 
     if (netsnmp_ds_configs == NULL) {
         netsnmp_ds_configs = SNMP_MALLOC_TYPEDEF(netsnmp_ds_read_config);
-        if (netsnmp_ds_configs == NULL)
-            return SNMPERR_GENERR;
         drsp = netsnmp_ds_configs;
     } else {
         for (drsp = netsnmp_ds_configs; drsp->next != NULL; drsp = drsp->next);
         drsp->next = SNMP_MALLOC_TYPEDEF(netsnmp_ds_read_config);
-        if (drsp->next == NULL)
-            return SNMPERR_GENERR;
         drsp = drsp->next;
     }
 
@@ -502,14 +485,10 @@ netsnmp_ds_register_premib(u_char type, const char *ftype, const char *token,
 
     if (netsnmp_ds_configs == NULL) {
         netsnmp_ds_configs = SNMP_MALLOC_TYPEDEF(netsnmp_ds_read_config);
-        if (netsnmp_ds_configs == NULL)
-            return SNMPERR_GENERR;
         drsp = netsnmp_ds_configs;
     } else {
         for (drsp = netsnmp_ds_configs; drsp->next != NULL; drsp = drsp->next);
         drsp->next = SNMP_MALLOC_TYPEDEF(netsnmp_ds_read_config);
-        if (drsp->next == NULL)
-            return SNMPERR_GENERR;
         drsp = drsp->next;
     }
 
@@ -540,7 +519,7 @@ netsnmp_ds_register_premib(u_char type, const char *ftype, const char *token,
 }
 
 void
-netsnmp_ds_shutdown(void)
+netsnmp_ds_shutdown()
 {
     netsnmp_ds_read_config *drsp;
     int             i, j;
diff --git a/snmplib/dir_utils.c b/snmplib/dir_utils.c
deleted file mode 100644
index cbb6d00..0000000
--- a/snmplib/dir_utils.c
+++ /dev/null
@@ -1,256 +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 (C) 2007 Apple, 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 <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-
-#include <stdio.h>
-#include <ctype.h>
-#if HAVE_STDLIB_H
-#   include <stdlib.h>
-#endif
-#if HAVE_UNISTD_H
-#   include <unistd.h>
-#endif
-#if HAVE_STRING_H
-#   include <string.h>
-#else
-#  include <strings.h>
-#endif
-
-#include <sys/types.h>
-#if HAVE_LIMITS_H
-#include <limits.h>
-#endif
-#if HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-#ifdef HAVE_DIRENT_H
-#include <dirent.h>
-#endif
-
-#include <errno.h>
-
-#if HAVE_DMALLOC_H
-#  include <dmalloc.h>
-#endif
-
-#include <net-snmp/types.h>
-#include <net-snmp/library/container.h>
-#include <net-snmp/library/file_utils.h>
-#include <net-snmp/library/dir_utils.h>
-
-netsnmp_feature_child_of(container_directory, container_types)
-#ifdef NETSNMP_FEATURE_REQUIRE_CONTAINER_DIRECTORY
-netsnmp_feature_require(file_utils)
-netsnmp_feature_require(container_free_all)
-#endif /* NETSNMP_FEATURE_REQUIRE_CONTAINER_DIRECTORY */
-
-#ifndef NETSNMP_FEATURE_REMOVE_CONTAINER_DIRECTORY
-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_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[SNMP_MAXPATH];
-    size_t             dirname_len;
-    int                rc;
-    struct stat        statbuf;
-    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));
-
-    /*
-     * create the container, if needed
-     */
-    if (NULL == container) {
-        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(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 */
-    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';
-    }
-
-    /** iterate over dir */
-    while ((file = readdir(dir))) {
-
-        if ((file->d_name == NULL) || (file->d_name[0] == 0))
-            continue;
-
-        /** skip '.' and '..' */
-        if ((file->d_name[0] == '.') &&
-            ((file->d_name[1] == 0) ||
-             ((file->d_name[1] == '.') && ((file->d_name[2] == 0)))))
-            continue;
-
-        strlcpy(&path[dirname_len], file->d_name, sizeof(path) - dirname_len);
-        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)
-            && (file->d_type == DT_DIR)
-#elif defined(S_ISDIR)
-            && (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 while building directory container\n");
-                break;
-            }
-            rc = CONTAINER_INSERT(container, dup);
-            if (-1 == rc ) {
-                DEBUGMSGTL(("directory:container", "  err adding %s\n", path));
-                free(dup);
-            }
-        }
-    } /* while */
-
-    closedir(dir);
-
-    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;
-}
-
-void
-netsnmp_directory_container_free(netsnmp_container *container)
-{
-    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;
-}
-#else  /* NETSNMP_FEATURE_REMOVE_CONTAINER_DIRECTORY */
-netsnmp_feature_unused(container_directory);
-#endif /* NETSNMP_FEATURE_REMOVE_CONTAINER_DIRECTORY */
diff --git a/snmplib/fd_event_manager.c b/snmplib/fd_event_manager.c
index f9cf08e..c81cfde 100644
--- a/snmplib/fd_event_manager.c
+++ b/snmplib/fd_event_manager.c
@@ -4,15 +4,9 @@
 #include <sys/select.h>
 #endif
 #include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/library/snmp_api.h>
 #include <net-snmp/library/fd_event_manager.h>
 #include <net-snmp/library/snmp_logging.h>
-#include <net-snmp/library/large_fd_set.h>
-
-netsnmp_feature_child_of(fd_event_manager, libnetsnmp)
-
-#ifndef NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER
 int     external_readfd[NUM_EXTERNAL_FDS],   external_readfdlen   = 0;
 int     external_writefd[NUM_EXTERNAL_FDS],  external_writefdlen  = 0;
 int     external_exceptfd[NUM_EXTERNAL_FDS], external_exceptfdlen = 0;
@@ -165,55 +159,22 @@ unregister_exceptfd(int fd)
  */
 void netsnmp_external_event_info(int *numfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
 {
-  netsnmp_large_fd_set lreadfds;
-  netsnmp_large_fd_set lwritefds;
-  netsnmp_large_fd_set lexceptfds;
-
-  netsnmp_large_fd_set_init(&lreadfds, FD_SETSIZE);
-  netsnmp_large_fd_set_init(&lwritefds, FD_SETSIZE);
-  netsnmp_large_fd_set_init(&lexceptfds, FD_SETSIZE);
-
-  netsnmp_copy_fd_set_to_large_fd_set(&lreadfds, readfds);
-  netsnmp_copy_fd_set_to_large_fd_set(&lwritefds, writefds);
-  netsnmp_copy_fd_set_to_large_fd_set(&lexceptfds, exceptfds);
-
-  netsnmp_external_event_info2(numfds, &lreadfds, &lwritefds, &lexceptfds);
-
-  if (netsnmp_copy_large_fd_set_to_fd_set(readfds, &lreadfds) < 0
-      || netsnmp_copy_large_fd_set_to_fd_set(writefds, &lwritefds) < 0
-      || netsnmp_copy_large_fd_set_to_fd_set(exceptfds, &lexceptfds) < 0)
-  {
-    snmp_log(LOG_ERR,
-	     "Use netsnmp_external_event_info2() for processing"
-	     " large file descriptors\n");
-  }
-
-  netsnmp_large_fd_set_cleanup(&lreadfds);
-  netsnmp_large_fd_set_cleanup(&lwritefds);
-  netsnmp_large_fd_set_cleanup(&lexceptfds);
-}
-
-void netsnmp_external_event_info2(int *numfds,
-                                  netsnmp_large_fd_set *readfds,
-                                  netsnmp_large_fd_set *writefds,
-                                  netsnmp_large_fd_set *exceptfds)
-{
   int i;
 
   external_fd_unregistered = 0;
 
   for (i = 0; i < external_readfdlen; i++) {
-    NETSNMP_LARGE_FD_SET(external_readfd[i], readfds);
+    FD_SET(external_readfd[i], readfds);
     if (external_readfd[i] >= *numfds)
       *numfds = external_readfd[i] + 1;
   }
   for (i = 0; i < external_writefdlen; i++) {
-    NETSNMP_LARGE_FD_SET(external_writefd[i], writefds);
+    FD_SET(external_writefd[i], writefds);
     if (external_writefd[i] >= *numfds)
       *numfds = external_writefd[i] + 1;
   }
   for (i = 0; i < external_exceptfdlen; i++) {
-    NETSNMP_LARGE_FD_SET(external_exceptfd[i], exceptfds);
+    FD_SET(external_exceptfd[i], exceptfds);
     if (external_exceptfd[i] >= *numfds)
       *numfds = external_exceptfd[i] + 1;
   }
@@ -224,74 +185,38 @@ void netsnmp_external_event_info2(int *numfds,
  */
 void netsnmp_dispatch_external_events(int *count, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
 {
-  netsnmp_large_fd_set lreadfds;
-  netsnmp_large_fd_set lwritefds;
-  netsnmp_large_fd_set lexceptfds;
-
-  netsnmp_large_fd_set_init(&lreadfds, FD_SETSIZE);
-  netsnmp_large_fd_set_init(&lwritefds, FD_SETSIZE);
-  netsnmp_large_fd_set_init(&lexceptfds, FD_SETSIZE);
-
-  netsnmp_copy_fd_set_to_large_fd_set(&lreadfds, readfds);
-  netsnmp_copy_fd_set_to_large_fd_set(&lwritefds, writefds);
-  netsnmp_copy_fd_set_to_large_fd_set(&lexceptfds, exceptfds);
-
-  netsnmp_dispatch_external_events2(count, &lreadfds, &lwritefds, &lexceptfds);
-
-  if (netsnmp_copy_large_fd_set_to_fd_set(readfds, &lreadfds) < 0
-      || netsnmp_copy_large_fd_set_to_fd_set(writefds,  &lwritefds) < 0
-      || netsnmp_copy_large_fd_set_to_fd_set(exceptfds, &lexceptfds) < 0)
-  {
-    snmp_log(LOG_ERR,
-	     "Use netsnmp_dispatch_external_events2() for processing"
-	     " large file descriptors\n");
-  }
-
-  netsnmp_large_fd_set_cleanup(&lreadfds);
-  netsnmp_large_fd_set_cleanup(&lwritefds);
-  netsnmp_large_fd_set_cleanup(&lexceptfds);
-}
-
-void netsnmp_dispatch_external_events2(int *count,
-                                       netsnmp_large_fd_set *readfds,
-                                       netsnmp_large_fd_set *writefds,
-                                       netsnmp_large_fd_set *exceptfds)
-{
   int i;
   for (i = 0;
        *count && (i < external_readfdlen) && !external_fd_unregistered; i++) {
-      if (NETSNMP_LARGE_FD_ISSET(external_readfd[i], readfds)) {
+      if (FD_ISSET(external_readfd[i], readfds)) {
           DEBUGMSGTL(("fd_event_manager:netsnmp_dispatch_external_events", 
                      "readfd[%d] = %d\n", i, external_readfd[i]));
           external_readfdfunc[i] (external_readfd[i],
                                   external_readfd_data[i]);
-          NETSNMP_LARGE_FD_CLR(external_readfd[i], readfds);
+          FD_CLR(external_readfd[i], readfds);
           (*count)--;
       }
   }
   for (i = 0;
        *count && (i < external_writefdlen) && !external_fd_unregistered; i++) {
-      if (NETSNMP_LARGE_FD_ISSET(external_writefd[i], writefds)) {
+      if (FD_ISSET(external_writefd[i], writefds)) {
           DEBUGMSGTL(("fd_event_manager:netsnmp_dispatch_external_events", 
                      "writefd[%d] = %d\n", i, external_writefd[i]));
           external_writefdfunc[i] (external_writefd[i],
                                    external_writefd_data[i]);
-          NETSNMP_LARGE_FD_CLR(external_writefd[i], writefds);
+          FD_CLR(external_writefd[i], writefds);
           (*count)--;
       }
   }
   for (i = 0;
        *count && (i < external_exceptfdlen) && !external_fd_unregistered; i++) {
-      if (NETSNMP_LARGE_FD_ISSET(external_exceptfd[i], exceptfds)) {
+      if (FD_ISSET(external_exceptfd[i], exceptfds)) {
           DEBUGMSGTL(("fd_event_manager:netsnmp_dispatch_external_events", 
                      "exceptfd[%d] = %d\n", i, external_exceptfd[i]));
           external_exceptfdfunc[i] (external_exceptfd[i],
                                     external_exceptfd_data[i]);
-          NETSNMP_LARGE_FD_CLR(external_exceptfd[i], exceptfds);
+          FD_CLR(external_exceptfd[i], exceptfds);
           (*count)--;
       }
   }
 }
-#else  /*  !NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER */
-netsnmp_feature_unused(fd_event_manager);
-#endif /*  !NETSNMP_FEATURE_REMOVE_FD_EVENT_MANAGER */
diff --git a/snmplib/file_utils.c b/snmplib/file_utils.c
index 5261431..8f7fb6a 100644
--- a/snmplib/file_utils.c
+++ b/snmplib/file_utils.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 
 #include <stdio.h>
@@ -38,11 +37,7 @@
 #include <net-snmp/library/container.h>
 #include <net-snmp/library/file_utils.h>
 
-netsnmp_feature_child_of(file_utils_all, libnetsnmp)
-netsnmp_feature_child_of(file_utils, file_utils_all)
-netsnmp_feature_child_of(file_close, file_utils_all)
 
-#ifndef NETSNMP_FEATURE_REMOVE_FILE_UTILS
 /*------------------------------------------------------------------
  *
  * Prototypes
@@ -82,31 +77,6 @@ netsnmp_file_create(void)
 }
 
 /**
- * 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
@@ -130,7 +100,6 @@ netsnmp_file_fill(netsnmp_file * filei, const char* name,
 
     filei->fs_flags = fs_flags;
     filei->ns_flags = ns_flags;
-    filei->mode = mode;
 
     return filei;
 }
@@ -157,9 +126,6 @@ netsnmp_file_release(netsnmp_file * filei)
     if (NULL != filei->extras)
         netsnmp_free_all_list_data(filei->extras);
 
-    if (NULL != filei->stats)
-        free(filei->stats);
-
     SNMP_FREE(filei);
 
     return rc;
@@ -195,7 +161,7 @@ netsnmp_file_open(netsnmp_file * filei)
         filei->fd = open(filei->name, filei->fs_flags, filei->mode);
 
     if (filei->fd < 0) {
-        DEBUGMSGTL(("netsnmp_file", "error opening %s (%d)\n", filei->name, errno));
+        snmp_log(LOG_ERR, "error opening %s (%d)\n", filei->name, errno);
     }
 
     /*
@@ -211,7 +177,6 @@ netsnmp_file_open(netsnmp_file * filei)
  * @retval  0 : success
  * @retval -1 : error
  */
-#ifndef NETSNMP_FEATURE_REMOVE_FILE_CLOSE
 int
 netsnmp_file_close(netsnmp_file * filei)
 {
@@ -235,29 +200,11 @@ netsnmp_file_close(netsnmp_file * filei)
      */
     rc = close(filei->fd);
     if (rc < 0) {
-        DEBUGMSGTL(("netsnmp_file", "error closing %s (%d)\n", filei->name, errno));
+        snmp_log(LOG_ERR, "error closing %s (%d)\n", filei->name, errno);
     }
     else
         filei->fd = -1;
 
     return rc;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_FILE_CLOSE */
-
-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);
-}
-#else /* NETSNMP_FEATURE_REMOVE_FILE_UTILS */
-netsnmp_feature_unused(file_utils);
-#endif /* NETSNMP_FEATURE_REMOVE_FILE_UTILS */
diff --git a/snmplib/getopt.c b/snmplib/getopt.c
index 1e8e9c3..722a3a4 100644
--- a/snmplib/getopt.c
+++ b/snmplib/getopt.c
@@ -32,17 +32,13 @@
  * static char sccsid[] = "from: @(#)getopt.c   8.2 (Berkeley) 4/2/94"; 
  */
 static char    *rcsid =
-    "$Id$";
+    "$Id: getopt.c 13265 2005-10-27 09:43:13Z dts12 $";
 #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
deleted file mode 100644
index df5c0a0..0000000
--- a/snmplib/gettimeofday.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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 = (long)timebuffer.time;
-    return (0);
-}
diff --git a/snmplib/inet_ntop.c b/snmplib/inet_ntop.c
old mode 100644
new mode 100755
index 62dd36d..b688a33
--- a/snmplib/inet_ntop.c
+++ b/snmplib/inet_ntop.c
@@ -19,10 +19,16 @@
 
 #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
@@ -33,8 +39,6 @@
 
 #include <net-snmp/types.h>
 
-#include "inet_ntop.h"
-
 #ifndef EAFNOSUPPORT
 #define EAFNOSUPPORT            WSAEAFNOSUPPORT
 #endif
@@ -72,7 +76,11 @@ static const char *inet_ntop6(const u_char *src, char *dst, size_t size);
  *	Paul Vixie, 1996.
  */
 const char *
-inet_ntop(int af, const void *src, char *dst, size_t size)
+inet_ntop(af, src, dst, size)
+	int af;
+	const void *src;
+	char *dst;
+	size_t size;
 {
 
 	switch (af) {
@@ -101,7 +109,10 @@ inet_ntop(int af, const void *src, char *dst, size_t size)
  *	Paul Vixie, 1996.
  */
 static const char *
-inet_ntop4(const u_char *src, char *dst, size_t size)
+inet_ntop4(src, dst, size)
+	const u_char *src;
+	char *dst;
+	size_t size;
 {
 	static const char fmt[] = "%u.%u.%u.%u";
 	char tmp[sizeof "255.255.255.255"];
@@ -122,7 +133,10 @@ inet_ntop4(const u_char *src, char *dst, size_t size)
  *	Paul Vixie, 1996.
  */
 static const char *
-inet_ntop6(const u_char *src, char *dst, size_t size)
+inet_ntop6(src, dst, size)
+	const u_char *src;
+	char *dst;
+	size_t size;
 {
 	/*
 	 * Note that int32_t and int16_t need only be "at least" large enough
@@ -208,3 +222,5 @@ inet_ntop6(const u_char *src, char *dst, size_t size)
 	return (dst);
 }
 #endif
+
+#endif /* HAVE_INET_NTOP */
diff --git a/snmplib/inet_ntop.h b/snmplib/inet_ntop.h
deleted file mode 100644
index a73ba78..0000000
--- a/snmplib/inet_ntop.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _INET_NTOP_H
-#define _INET_NTOP_H
-
-#include <net-snmp/net-snmp-config.h>
-
-#ifndef HAVE_INET_NTOP
-const char     *inet_ntop(int af, const void *src, char *dst, size_t size);
-#endif /*HAVE_INET_NTOP */
-
-#endif /*_INET_NTOP_H*/
diff --git a/snmplib/inet_pton.c b/snmplib/inet_pton.c
old mode 100644
new mode 100755
index 0ac1d60..2e09f28
--- a/snmplib/inet_pton.c
+++ b/snmplib/inet_pton.c
@@ -19,12 +19,18 @@
 
 #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
@@ -34,7 +40,6 @@
 #endif
 
 #include <net-snmp/types.h>
-#include "inet_pton.h"
 
 #ifndef EAFNOSUPPORT
 #define EAFNOSUPPORT            WSAEAFNOSUPPORT
@@ -47,6 +52,9 @@
 #ifndef INT16SZ
 #define	INT16SZ		2
 #endif
+  /*
+   * End of Net-SNMP Win32 additions
+   */
 
 #ifndef INADDRSZ
 #define	INADDRSZ	4
@@ -74,7 +82,10 @@ static int	inet_pton6(const char *src, u_char *dst);
  *	Paul Vixie, 1996.
  */
 int
-inet_pton(int af, const char *src, void *dst)
+inet_pton(af, src, dst)
+	int af;
+	const char *src;
+	void *dst;
 {
 
 	switch (af) {
@@ -103,7 +114,10 @@ inet_pton(int af, const char *src, void *dst)
  *	Paul Vixie, 1996.
  */
 static int
-inet_pton4(const char *src, u_char *dst, int pton)
+inet_pton4(src, dst, pton)
+	const char *src;
+	u_char *dst;
+	int pton;
 {
 	u_int val;
 	u_int digit;
@@ -224,7 +238,9 @@ inet_pton4(const char *src, u_char *dst, int pton)
  *	Paul Vixie, 1996.
  */
 static int
-inet_pton6(const char *src, u_char *dst)
+inet_pton6(src, dst)
+	const char *src;
+	u_char *dst;
 {
 	static const char xdigits_l[] = "0123456789abcdef",
 			  xdigits_u[] = "0123456789ABCDEF";
@@ -309,3 +325,5 @@ inet_pton6(const char *src, u_char *dst)
 	return (1);
 }
 #endif
+
+#endif /* HAVE_INET_PTON */
diff --git a/snmplib/inet_pton.h b/snmplib/inet_pton.h
deleted file mode 100644
index c33f695..0000000
--- a/snmplib/inet_pton.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef _INET_PTON_H
-#define _INET_PTON_H
-
-#include <net-snmp/net-snmp-config.h>
-
-#ifndef HAVE_INET_PTON
-int             inet_pton(int af, const char *src, void *dst);
-#endif /*HAVE_INET_PTON */
-
-#endif /*_INET_PTON_H*/
diff --git a/snmplib/int64.c b/snmplib/int64.c
index 51f1f32..b766372 100644
--- a/snmplib/int64.c
+++ b/snmplib/int64.c
@@ -1,10 +1,9 @@
-/**
- * @file int64.c
- *
- * @brief Functions for 64-bit integer computations.
- *
- * 21-jan-1998: David Perkins <dperkins at dsperkins.com>
- */
+/** file: test.c - test of 64-bit integer stuff
+*
+*
+* 21-jan-1998: David Perkins <dperkins at dsperkins.com>
+*
+*/
 
 #include <net-snmp/net-snmp-config.h>
 #include <sys/types.h>
@@ -16,6 +15,9 @@
 #else
 #include <strings.h>
 #endif
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 
 #include <net-snmp/types.h>
 #include <net-snmp/library/int64.h>
@@ -23,15 +25,17 @@
 #include <net-snmp/library/snmp_debug.h>
 #include <net-snmp/library/snmp_logging.h>
 
-#include <net-snmp/net-snmp-features.h>
-
-/**
- * Divide an unsigned 64-bit integer by 10.
- *
- * @param[in]  u64   Number to be divided.
- * @param[out] pu64Q Quotient.
- * @param[out] puR   Remainder.
- */
+#define TRUE 1
+#define FALSE 0
+
+/** divBy10 - divide an unsigned 64-bit integer by 10
+*
+* call with:
+*   u64 - number to be divided
+*   pu64Q - location to store quotient
+*   puR - location to store remainder
+*
+*/
 void
 divBy10(U64 u64, U64 * pu64Q, unsigned int *puR)
 {
@@ -39,6 +43,7 @@ divBy10(U64 u64, U64 * pu64Q, unsigned int *puR)
     unsigned long   ulQ;
     unsigned long   ulR;
 
+
     /*
      * top 16 bits 
      */
@@ -74,14 +79,18 @@ divBy10(U64 u64, U64 * pu64Q, unsigned int *puR)
     pu64Q->low = pu64Q->low | ulQ;
 
     *puR = (unsigned int) (ulR);
-}
 
-/**
- * Multiply an unsigned 64-bit integer by 10.
- *
- * @param[in]  u64   Number to be multiplied.
- * @param[out] pu64P Product.
- */
+
+}                               /* divBy10 */
+
+
+/** multBy10 - multiply an unsigned 64-bit integer by 10
+*
+* call with:
+*   u64 - number to be multiplied
+*   pu64P - location to store product
+*
+*/
 void
 multBy10(U64 u64, U64 * pu64P)
 {
@@ -89,6 +98,7 @@ multBy10(U64 u64, U64 * pu64P)
     unsigned long   ulP;
     unsigned long   ulK;
 
+
     /*
      * lower 16 bits 
      */
@@ -120,122 +130,156 @@ multBy10(U64 u64, U64 * pu64P)
     ulP = (ulT * 10) + ulK;
     ulK = ulP >> 16;
     pu64P->high = (ulP & 0x0ffff) << 16 | pu64P->high;
-}
 
-/**
- * Add an unsigned 16-bit int to an unsigned 64-bit integer.
- *
- * @param[in,out] pu64 Number to be incremented.
- * @param[in]     u16  Amount to add.
- *
- */
+
+}                               /* multBy10 */
+
+
+/** incrByU16 - add an unsigned 16-bit int to an unsigned 64-bit integer
+*
+* call with:
+*   pu64 - number to be incremented
+*   u16 - amount to add
+*
+*/
 void
 incrByU16(U64 * pu64, unsigned int u16)
 {
-    incrByU32(pu64, u16);
-}
+    unsigned long   ulT1;
+    unsigned long   ulT2;
+    unsigned long   ulR;
+    unsigned long   ulK;
+
+
+    /*
+     * lower 16 bits 
+     */
+    ulT1 = pu64->low;
+    ulT2 = ulT1 & 0x0ffff;
+    ulR = ulT2 + u16;
+    ulK = ulR >> 16;
+    if (ulK == 0) {
+        pu64->low = ulT1 + u16;
+        return;
+    }
+
+    /*
+     * next 16 bits 
+     */
+    ulT2 = (ulT1 >> 16) & 0x0ffff;
+    ulR = ulT2 + 1;
+    ulK = ulR >> 16;
+    if (ulK == 0) {
+        pu64->low = ulT1 + u16;
+        return;
+    }
+
+    /*
+     * next 32 - ignore any overflow 
+     */
+    pu64->low = (ulT1 + u16) & 0x0FFFFFFFFL;
+    pu64->high++;
+#if SIZEOF_LONG != 4
+    pu64->high &= 0xffffffff;
+#endif
+}                               /* incrByV16 */
 
-/**
- * Add an unsigned 32-bit int to an unsigned 64-bit integer.
- *
- * @param[in,out] pu64 Number to be incremented.
- * @param[in]     u32  Amount to add.
- *
- */
 void
 incrByU32(U64 * pu64, unsigned int u32)
 {
-    uint32_t tmp;
-
+    unsigned int    tmp;
     tmp = pu64->low;
-    pu64->low = (uint32_t)(tmp + u32);
-    if (pu64->low < tmp)
-        pu64->high = (uint32_t)(pu64->high + 1);
+    pu64->low += u32;
+#if SIZEOF_LONG != 4
+    pu64->low &= 0xffffffff;
+#endif
+    if (pu64->low < tmp) {
+        pu64->high++;
+#if SIZEOF_LONG != 4
+        pu64->high &= 0xffffffff;
+#endif
+    }
 }
 
 /**
- * Subtract two 64-bit numbers.
- *
- * @param[in] pu64one Number to start from.
- * @param[in] pu64two Amount to subtract.
- * @param[out] pu64out pu64one - pu64two.
+ * pu64out = pu64one - pu64two 
  */
 void
 u64Subtract(const U64 * pu64one, const U64 * pu64two, U64 * pu64out)
 {
-    int carry;
-
-    carry = pu64one->low < pu64two->low;
-    pu64out->low = (uint32_t)(pu64one->low - pu64two->low);
-    pu64out->high = (uint32_t)(pu64one->high - pu64two->high - carry);
+    if (pu64one->low < pu64two->low) {
+        pu64out->low = 0xffffffff - pu64two->low + pu64one->low + 1;
+        pu64out->high = pu64one->high - pu64two->high - 1;
+    } else {
+        pu64out->low = pu64one->low - pu64two->low;
+        pu64out->high = pu64one->high - pu64two->high;
+    }
 }
 
 /**
- * Add two 64-bit numbers.
- *
- * @param[in] pu64one Amount to add.
- * @param[in,out] pu64out pu64out += pu64one.
+ * pu64out += pu64one
  */
 void
 u64Incr(U64 * pu64out, const U64 * pu64one)
 {
-    pu64out->high = (uint32_t)(pu64out->high + pu64one->high);
+    pu64out->high += pu64one->high;
+#if SIZEOF_LONG != 4
+    pu64out->high &= 0xffffffff;
+#endif
     incrByU32(pu64out, pu64one->low);
 }
 
 /**
- * Add the difference of two 64-bit numbers to a 64-bit counter.
- *
- * @param[in] pu64one
- * @param[in] pu64two
- * @param[out] pu64out pu64out += (pu64one - pu64two)
+ * pu64out += (pu64one - pu64two)
  */
 void
 u64UpdateCounter(U64 * pu64out, const U64 * pu64one, const U64 * pu64two)
 {
     U64 tmp;
-
     u64Subtract(pu64one, pu64two, &tmp);
     u64Incr(pu64out, &tmp);
 }
 
-netsnmp_feature_child_of(u64copy, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_U64COPY
 /**
- * Copy a 64-bit number.
- *
- * @param[in] pu64two Number to be copied.
- * @param[out] pu64one Where to store the copy - *pu64one = *pu64two.
+ * pu64one = pu64two 
  */
 void
 u64Copy(U64 * pu64one, const U64 * pu64two)
 {
-    *pu64one = *pu64two;
+    pu64one->high = pu64two->high;
+    pu64one->low =  pu64two->low;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_U64COPY */
 
-/**
- * Set an unsigned 64-bit number to zero.
- *
- * @param[in] pu64 Number to be zeroed.
- */
+/** zeroU64 - set an unsigned 64-bit number to zero
+*
+* call with:
+*   pu64 - number to be zero'ed
+*
+*/
 void
 zeroU64(U64 * pu64)
 {
     pu64->low = 0;
     pu64->high = 0;
-}
+}                               /* zeroU64 */
 
-/**
- * Check if an unsigned 64-bit number is zero.
- *
- * @param[in] pu64 Number to be checked.
- */
+
+/** isZeroU64 - check if an unsigned 64-bit number is
+*
+* call with:
+*   pu64 - number to be zero'ed
+*
+*/
 int
 isZeroU64(const U64 * pu64)
 {
-    return pu64->low == 0 && pu64->high == 0;
-}
+
+    if ((pu64->low == 0) && (pu64->high == 0))
+        return (TRUE);
+    else
+        return (FALSE);
+
+}                               /* isZeroU64 */
 
 /**
  * check the old and new values of a counter64 for 32bit wrapping
@@ -246,7 +290,7 @@ isZeroU64(const U64 * pu64)
  * @param old_val
  * @param new_val
  *
- * @note
+ *@Note:
  * The old and new values must be be from within a time period
  * which would only allow the 32bit portion of the counter to
  * wrap once. i.e. if the 32bit portion of the counter could
@@ -268,7 +312,7 @@ netsnmp_c64_check_for_32bit_wrap(struct counter64 *old_val,
     if( (NULL == old_val) || (NULL == new_val) )
         return -1;
 
-    DEBUGMSGTL(("9:c64:check_wrap", "check wrap 0x%0lx.0x%0lx 0x%0lx.0x%0lx\n",
+    DEBUGMSGTL(("9:c64:check_wrap", "check wrap 0x%0x.0x%0x 0x%0x.0x%0x\n",
                 old_val->high, old_val->low, new_val->high, new_val->low));
     
     /*
@@ -285,11 +329,16 @@ netsnmp_c64_check_for_32bit_wrap(struct counter64 *old_val,
      */
     if (new_val->high == old_val->high) {
         DEBUGMSGTL(("c64:check_wrap", "32 bit wrap\n"));
-        if (adjust)
-            new_val->high = (uint32_t)(new_val->high + 1);
+        if (adjust) {
+            ++new_val->high;
+#if SIZEOF_LONG != 4
+            new_val->high &= 0xffffffff;
+#endif
+        }
         return 32;
     }
-    else if (new_val->high == (uint32_t)(old_val->high + 1)) {
+    else if ((new_val->high == (old_val->high + 1)) ||
+             ((0 == new_val->high) && (0xffffffff == old_val->high))) {
         DEBUGMSGTL(("c64:check_wrap", "64 bit wrap\n"));
         return 64;
     }
@@ -306,7 +355,7 @@ netsnmp_c64_check_for_32bit_wrap(struct counter64 *old_val,
  * @param need_wrap_check: pointer to integer indicating if wrap check is needed
  *                         flag may be cleared if 64 bit counter is detected
  *
- * @note
+ *@Note:
  * The old_prev_val and new_val values must be be from within a time
  * period which would only allow the 32bit portion of the counter to
  * wrap once. i.e. if the 32bit portion of the counter could
@@ -347,7 +396,7 @@ netsnmp_c64_check32_and_update(struct counter64 *prev_val, struct counter64 *new
     if ((NULL == need_wrap_check) || (0 != *need_wrap_check)) {
         rc = netsnmp_c64_check_for_32bit_wrap(old_prev_val,new_val, 1);
         if (rc < 0) {
-            DEBUGMSGTL(("c64","32 bit check failed\n"));
+            snmp_log(LOG_ERR,"c64 32 bit check failed\n");
             return -1;
         }
     }
@@ -377,7 +426,7 @@ netsnmp_c64_check32_and_update(struct counter64 *prev_val, struct counter64 *new
          */
         if ((prev_val->low != new_val->low) ||
             (prev_val->high != new_val->high)) {
-            DEBUGMSGTL(("c64", "looks like a 64bit wrap, but prev!=new\n"));
+            snmp_log(LOG_ERR, "looks like a 64bit wrap, but prev!=new\n");
             return -2;
         }
         else if (NULL != need_wrap_check)
@@ -387,11 +436,9 @@ netsnmp_c64_check32_and_update(struct counter64 *prev_val, struct counter64 *new
     return 0;
 }
 
-/** Convert an unsigned 64-bit number to ASCII. */
 void
-printU64(char *buf, /* char [I64CHARSZ+1]; */
-         const U64 * pu64)
-{
+printU64(char *buf,     /* char [I64CHARSZ+1]; */
+                         const U64 * pu64) {
     U64             u64a;
     U64             u64b;
 
@@ -399,37 +446,57 @@ printU64(char *buf, /* char [I64CHARSZ+1]; */
     unsigned int    u;
     int             j;
 
-    u64a = *pu64;
+    u64a.high = pu64->high;
+    u64a.low = pu64->low;
     aRes[I64CHARSZ] = 0;
     for (j = 0; j < I64CHARSZ; j++) {
         divBy10(u64a, &u64b, &u);
         aRes[(I64CHARSZ - 1) - j] = (char) ('0' + u);
-        u64a = u64b;
+        u64a.high = u64b.high;
+        u64a.low = u64b.low;
         if (isZeroU64(&u64a))
             break;
     }
     strcpy(buf, &aRes[(I64CHARSZ - 1) - j]);
 }
 
-/** Convert a signed 64-bit number to ASCII. */
 void
-printI64(char *buf, /* char [I64CHARSZ+1]; */
-         const U64 * pu64)
-{
+printI64(char *buf,     /* char [I64CHARSZ+1]; */
+                         const U64 * pu64) {
     U64             u64a;
+    U64             u64b;
+
+    char            aRes[I64CHARSZ + 1];
+    unsigned int    u;
+    int             j, sign = 0;
 
     if (pu64->high & 0x80000000) {
-        u64a.high = (uint32_t) ~pu64->high;
-        u64a.low = (uint32_t) ~pu64->low;
+        u64a.high = ~pu64->high;
+        u64a.low = ~pu64->low;
+        sign = 1;
         incrByU32(&u64a, 1);    /* bit invert and incr by 1 to print 2s complement */
-        buf[0] = '-';
-        printU64(buf + 1, &u64a);
     } else {
-        printU64(buf, pu64);
+        u64a.high = pu64->high;
+        u64a.low = pu64->low;
     }
+
+    aRes[I64CHARSZ] = 0;
+    for (j = 0; j < I64CHARSZ; j++) {
+        divBy10(u64a, &u64b, &u);
+        aRes[(I64CHARSZ - 1) - j] = (char) ('0' + u);
+        u64a.high = u64b.high;
+        u64a.low = u64b.low;
+        if (isZeroU64(&u64a))
+            break;
+    }
+    if (sign == 1) {
+        aRes[(I64CHARSZ - 1) - j - 1] = '-';
+        strcpy(buf, &aRes[(I64CHARSZ - 1) - j - 1]);
+        return;
+    }
+    strcpy(buf, &aRes[(I64CHARSZ - 1) - j]);
 }
 
-/** Convert a signed 64-bit integer from ASCII to U64. */
 int
 read64(U64 * i64, const char *str)
 {
@@ -444,18 +511,79 @@ read64(U64 * i64, const char *str)
         str++;
     }
 
-    while (*str && isdigit((unsigned char)(*str))) {
+    while (*str && isdigit(*str)) {
         ok = 1;
         u = *str - '0';
         multBy10(*i64, &i64p);
-        *i64 = i64p;
+        memcpy(i64, &i64p, sizeof(i64p));
         incrByU16(i64, u);
         str++;
     }
     if (sign) {
-        i64->high = (uint32_t) ~i64->high;
-        i64->low = (uint32_t) ~i64->low;
+        i64->high = ~i64->high;
+        i64->low = ~i64->low;
         incrByU16(i64, 1);
     }
     return ok;
 }
+
+
+
+
+#ifdef TESTING
+void
+main(int argc, char *argv[])
+{
+    int             i;
+    int             j;
+    int             l;
+    unsigned int    u;
+    U64             u64a;
+    U64             u64b;
+#define MXSZ 20
+    char            aRes[MXSZ + 1];
+
+
+    if (argc < 2) {
+        printf("This program takes numbers from the command line\n"
+               "and prints them out.\n" "Usage: test <unsignedInt>...\n");
+        exit(1);
+    }
+
+    aRes[MXSZ] = 0;
+
+    for (i = 1; i < argc; i++) {
+        l = strlen(argv[i]);
+        zeroU64(&u64a);
+        for (j = 0; j < l; j++) {
+            if (!isdigit(argv[i][j])) {
+                printf("Argument is not a number \"%s\"\n", argv[i]);
+                exit(1);
+            }
+            u = argv[i][j] - '0';
+            multBy10(u64a, &u64b);
+            u64a = u64b;
+            incrByU16(&u64a, u);
+        }
+
+        printf("number \"%s\" in hex is '%08x%08x'h\n",
+               argv[i], u64a.high, u64a.low);
+
+        printf("number is \"%s\"\n", printU64(&u64a));
+        for (j = 0; j < MXSZ; j++) {
+            divBy10(u64a, &u64b, &u);
+            aRes[(MXSZ - 1) - j] = (char) ('0' + u);
+            u64a = u64b;
+            if (isZeroU64(&u64a))
+                break;
+        }
+
+        printf("number is \"%s\"\n", &aRes[(MXSZ - 1) - j]);
+    }
+    exit(0);
+}                               /* main */
+#endif                          /* TESTING */
+
+/*
+ * file: test.c 
+ */
diff --git a/snmplib/keytools.c b/snmplib/keytools.c
index 0faa0de..1589889 100644
--- a/snmplib/keytools.c
+++ b/snmplib/keytools.c
@@ -14,10 +14,12 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #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
@@ -30,9 +32,6 @@
 #include <strings.h>
 #endif
 
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -49,10 +48,6 @@
 #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>
@@ -63,11 +58,6 @@
 
 #include <net-snmp/library/transform_oids.h>
 
-netsnmp_feature_child_of(usm_support, libnetsnmp)
-netsnmp_feature_child_of(usm_keytools, usm_support)
-
-#ifndef NETSNMP_FEATURE_REMOVE_USM_KEYTOOLS
-
 /*******************************************************************-o-******
  * generate_Ku
  *
@@ -103,28 +93,19 @@ netsnmp_feature_child_of(usm_keytools, usm_support)
  */
 int
 generate_Ku(const oid * hashtype, u_int hashtype_len,
-            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)
+            u_char * P, size_t pplen, u_char * Ku, size_t * kulen)
+#if defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL)
 {
     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;
 
     u_char          buf[USM_LENGTH_KU_HASHBLOCK], *bufp;
 
 #ifdef NETSNMP_USE_OPENSSL
-    EVP_MD_CTX     *ctx = NULL;
-#elif NETSNMP_USE_INTERNAL_CRYPTO
-    SHA_CTX csha1;
-    MD5_CTX cmd5;
-    char    cryptotype = 0;
-#define TYPE_MD5  1
-#define TYPE_SHA1 2
+    EVP_MD_CTX     *ctx = (EVP_MD_CTX *)malloc(sizeof(EVP_MD_CTX));
+    unsigned int    tmp_len;
 #else
     MDstruct        MD;
 #endif
@@ -149,12 +130,6 @@ generate_Ku(const oid * hashtype, u_int hashtype_len,
      */
 #ifdef NETSNMP_USE_OPENSSL
 
-#ifdef HAVE_EVP_MD_CTX_CREATE
-    ctx = EVP_MD_CTX_create();
-#else
-    ctx = malloc(sizeof(*ctx));
-    EVP_MD_CTX_init(ctx);
-#endif
 #ifndef NETSNMP_DISABLE_MD5
     if (ISTRANSFORM(hashtype, HMACMD5Auth))
         EVP_DigestInit(ctx, EVP_md5());
@@ -162,19 +137,8 @@ generate_Ku(const oid * hashtype, u_int hashtype_len,
 #endif
         if (ISTRANSFORM(hashtype, HMACSHA1Auth))
         EVP_DigestInit(ctx, EVP_sha1());
-    else
-        QUITFUN(SNMPERR_GENERR, generate_Ku_quit);
-#elif NETSNMP_USE_INTERNAL_CRYPTO
-#ifndef NETSNMP_DISABLE_MD5
-    if (ISTRANSFORM(hashtype, HMACMD5Auth)) {
-        MD5_Init(&cmd5);
-        cryptotype = TYPE_MD5;
-    } else
-#endif
-           if (ISTRANSFORM(hashtype, HMACSHA1Auth)) {
-        SHA1_Init(&csha1);
-        cryptotype = TYPE_SHA1;
-    } else {
+    else {
+        free(ctx);
         return (SNMPERR_GENERR);
     }
 #else
@@ -188,54 +152,29 @@ generate_Ku(const oid * hashtype, u_int hashtype_len,
         }
 #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;
     }
-    ret = sc_get_properlength(hashtype, hashtype_len);
-    if (ret == SNMPERR_GENERR)
-        return SNMPERR_GENERR;
-    *kulen = ret;
+    *kulen = sc_get_properlength(hashtype, hashtype_len);
     MDget(&MD, Ku, *kulen);
   md5_fin:
     memset(&MD, 0, sizeof(MD));
@@ -253,14 +192,7 @@ generate_Ku(const oid * hashtype, u_int hashtype_len,
   generate_Ku_quit:
     memset(buf, 0, sizeof(buf));
 #ifdef NETSNMP_USE_OPENSSL
-    if (ctx) {
-#ifdef HAVE_EVP_MD_CTX_DESTROY
-        EVP_MD_CTX_destroy(ctx);
-#else
-        EVP_MD_CTX_cleanup(ctx);
-        free(ctx);
-#endif
-    }
+    free(ctx);
 #endif
     return rval;
 
@@ -346,10 +278,10 @@ _KEYTOOLS_NOT_AVAILABLE
  */
 int
 generate_kul(const oid * hashtype, u_int hashtype_len,
-             const u_char * engineID, size_t engineID_len,
-             const u_char * Ku, size_t ku_len,
+             u_char * engineID, size_t engineID_len,
+             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) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
+#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_PKCS11)
 {
     int             rval = SNMPERR_SUCCESS;
     u_int           nbytes = 0;
@@ -378,7 +310,7 @@ generate_kul(const oid * hashtype, u_int hashtype_len,
 
     properlength = (size_t) iproperlength;
 
-    if ((*kul_len < properlength) || (ku_len < properlength)) {
+    if (((int) *kul_len < properlength) || ((int) ku_len < properlength)) {
         QUITFUN(SNMPERR_GENERR, generate_kul_quit);
     }
 
@@ -457,10 +389,9 @@ 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)
-#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_PKCS11) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
+#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_PKCS11)
 {
     int             rval = SNMPERR_SUCCESS;
-    int             iproperlength;
     size_t          properlength;
     size_t          nbytes = 0;
 
@@ -482,15 +413,15 @@ encode_keychange(const oid * hashtype, u_int hashtype_len,
     /*
      * Setup for the transform type.
      */
-    iproperlength = sc_get_properlength(hashtype, hashtype_len);
-    if (iproperlength == SNMPERR_GENERR)
+    properlength = sc_get_properlength(hashtype, hashtype_len);
+    if (properlength == 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(oldkey_len, (size_t)iproperlength);
+    properlength = SNMP_MIN((int) oldkey_len, properlength);
 
     /*
      * Use the old key and some random bytes to encode the new key
@@ -511,7 +442,7 @@ encode_keychange(const oid * hashtype, u_int hashtype_len,
 #else                           /* !NETSNMP_ENABLE_TESTING_CODE */
     rval = sc_random(kcstring, &nbytes);
     QUITFUN(rval, encode_keychange_quit);
-    if (nbytes != properlength) {
+    if ((int) nbytes != properlength) {
         QUITFUN(SNMPERR_GENERR, encode_keychange_quit);
     }
 #endif                          /* !NETSNMP_ENABLE_TESTING_CODE */
@@ -531,7 +462,7 @@ encode_keychange(const oid * hashtype, u_int hashtype_len,
 
         kcstring += properlength;
         nbytes = 0;
-        while ((nbytes++) < properlength) {
+        while ((int) (nbytes++) < properlength) {
             *kcstring++ ^= *newkey++;
         }
     }
@@ -586,7 +517,7 @@ decode_keychange(const oid * hashtype, u_int hashtype_len,
                  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) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
+#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_PKCS11)
 {
     int             rval = SNMPERR_SUCCESS;
     size_t          properlength = 0;
@@ -643,18 +574,18 @@ decode_keychange(const oid * hashtype, u_int hashtype_len,
         memcpy(newkey, tmp_buf, properlength);
         bufp = kcstring + properlength;
         nbytes = 0;
-        while ((nbytes++) < properlength) {
+        while ((int) (nbytes++) < properlength) {
             *newkey++ ^= *bufp++;
         }
     }
 
   decode_keychange_quit:
     if (rval != SNMPERR_SUCCESS) {
-        if (newkey)
-            memset(newkey, 0, properlength);
+        memset(newkey, 0, properlength);
     }
     memset(tmp_buf, 0, SNMP_MAXBUF);
-    SNMP_FREE(tmpbuf);
+    if (tmpbuf != NULL)
+        SNMP_FREE(tmpbuf);
 
     return rval;
 
@@ -663,4 +594,3 @@ decode_keychange(const oid * hashtype, u_int hashtype_len,
 #else
 _KEYTOOLS_NOT_AVAILABLE
 #endif                          /* internal or openssl */
-#endif /* NETSNMP_FEATURE_REMOVE_USM_KEYTOOLS */
diff --git a/snmplib/large_fd_set.c b/snmplib/large_fd_set.c
deleted file mode 100644
index 32f57b3..0000000
--- a/snmplib/large_fd_set.c
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- * @file large_fd_set.c
- *
- * @brief Macro's and functions for manipulation of large file descriptor sets.
- */
-
-
-#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
-
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/library/snmp_assert.h>
-#include <net-snmp/library/large_fd_set.h>
-
-
-#if !defined(cygwin) && defined(HAVE_WINSOCK_H)
-
-void
-netsnmp_large_fd_setfd(SOCKET fd, netsnmp_large_fd_set * fdset)
-{
-    unsigned        i;
-
-    netsnmp_assert(fd != INVALID_SOCKET);
-
-    if (fdset->lfs_set.fd_count == fdset->lfs_setsize)
-        netsnmp_large_fd_set_resize(fdset, 2 * (fdset->lfs_setsize + 1));
-
-    for (i = 0; i < fdset->lfs_set.fd_count; i++) {
-        if (fdset->lfs_set.fd_array[i] == (SOCKET) (fd))
-            break;
-    }
-
-    if (i == fdset->lfs_set.fd_count
-        && fdset->lfs_set.fd_count < fdset->lfs_setsize) {
-        fdset->lfs_set.fd_count++;
-        fdset->lfs_set.fd_array[i] = fd;
-    }
-}
-
-void
-netsnmp_large_fd_clr(SOCKET fd, netsnmp_large_fd_set * fdset)
-{
-    unsigned        i;
-
-    netsnmp_assert(fd != INVALID_SOCKET);
-
-    for (i = 0; i < fdset->lfs_set.fd_count; i++) {
-        if (fdset->lfs_set.fd_array[i] == fd) {
-            while (i < fdset->lfs_set.fd_count - 1) {
-                fdset->lfs_set.fd_array[i] =
-                    fdset->lfs_set.fd_array[i + 1];
-                i++;
-            }
-            fdset->lfs_set.fd_count--;
-            break;
-        }
-    }
-}
-
-int
-netsnmp_large_fd_is_set(SOCKET fd, netsnmp_large_fd_set * fdset)
-{
-    unsigned int    i;
-
-    netsnmp_assert(fd != INVALID_SOCKET);
-
-    for (i = 0; i < fdset->lfs_set.fd_count; i++) {
-        if (fdset->lfs_set.fd_array[i] == fd)
-            return 1;
-    }
-    return 0;
-}
-
-#else
-
-void
-netsnmp_large_fd_setfd(int fd, netsnmp_large_fd_set * fdset)
-{
-    netsnmp_assert(fd >= 0);
-
-    while (fd >= (int)fdset->lfs_setsize)
-        netsnmp_large_fd_set_resize(fdset, 2 * (fdset->lfs_setsize + 1));
-
-    FD_SET(fd, fdset->lfs_setptr);
-}
-
-void
-netsnmp_large_fd_clr(int fd, netsnmp_large_fd_set * fdset)
-{
-    netsnmp_assert(fd >= 0);
-
-    if ((unsigned)fd < fdset->lfs_setsize)
-        FD_CLR(fd, fdset->lfs_setptr);
-}
-
-int
-netsnmp_large_fd_is_set(int fd, netsnmp_large_fd_set * fdset)
-{
-    netsnmp_assert(fd >= 0);
-
-    return (unsigned)fd < fdset->lfs_setsize && FD_ISSET(fd, fdset->lfs_setptr);
-}
-
-#endif
-
-void
-netsnmp_large_fd_set_init(netsnmp_large_fd_set * fdset, int setsize)
-{
-    fdset->lfs_setsize = 0;
-    fdset->lfs_setptr  = NULL;
-#if !defined(cygwin) && defined(HAVE_WINSOCK_H)
-    fdset->lfs_set.fd_count = 0;
-#endif
-    netsnmp_large_fd_set_resize(fdset, setsize);
-}
-
-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)
-{
-#if defined(cygwin) || !defined(HAVE_WINSOCK_H)
-    /* Bit-set representation: make sure all fds have at least size 'numfds'. */
-    if (readfds && readfds->lfs_setsize < numfds)
-        netsnmp_large_fd_set_resize(readfds, numfds);
-    if (writefds && writefds->lfs_setsize < numfds)
-        netsnmp_large_fd_set_resize(writefds, numfds);
-    if (exceptfds && exceptfds->lfs_setsize < numfds)
-        netsnmp_large_fd_set_resize(exceptfds, numfds);
-#else
-    /* Array representation: no resizing is necessary. */
-#endif
-
-    return select(numfds,
-            readfds ? readfds->lfs_setptr : NULL,
-            writefds ? writefds->lfs_setptr : NULL,
-            exceptfds ? exceptfds->lfs_setptr : NULL,
-            timeout);
-}
-
-int
-netsnmp_large_fd_set_resize(netsnmp_large_fd_set * fdset, int setsize)
-{
-    int             fd_set_bytes;
-
-    if (fdset->lfs_setsize == setsize)
-        goto success;
-
-    if (setsize > FD_SETSIZE) {
-        fd_set_bytes = NETSNMP_FD_SET_BYTES(setsize);
-        if (fdset->lfs_setsize > FD_SETSIZE) {
-            fdset->lfs_setptr = realloc(fdset->lfs_setptr, fd_set_bytes);
-            if (!fdset->lfs_setptr)
-                goto out_of_mem;
-        } else {
-            fdset->lfs_setptr = malloc(fd_set_bytes);
-            if (!fdset->lfs_setptr)
-                goto out_of_mem;
-            *fdset->lfs_setptr = fdset->lfs_set;
-        }
-    } else {
-        if (fdset->lfs_setsize > FD_SETSIZE) {
-            fdset->lfs_set = *fdset->lfs_setptr;
-            free(fdset->lfs_setptr);
-        }
-        fdset->lfs_setptr = &fdset->lfs_set;
-    }
-
-#if defined(cygwin) || !defined(HAVE_WINSOCK_H)
-    {
-        int             i;
-
-        /*
-         * Unix: when enlarging, clear the file descriptors defined in the
-         * resized *fdset but that were not defined in the original *fdset.
-         */
-        for (i = fdset->lfs_setsize; i < setsize; i++)
-            FD_CLR(i, fdset->lfs_setptr);
-    }
-#endif
-
-    fdset->lfs_setsize = setsize;
-#if !defined(cygwin) && defined(HAVE_WINSOCK_H)
-    if (setsize < fdset->lfs_set.fd_count)
-        fdset->lfs_set.fd_count = setsize;
-#endif
-success:
-    return 1;
-
-out_of_mem:
-    fdset->lfs_setsize = 0;
-#if !defined(cygwin) && defined(HAVE_WINSOCK_H)
-    fdset->lfs_set.fd_count = 0;
-#endif
-    return 0;
-}
-
-void
-netsnmp_large_fd_set_cleanup(netsnmp_large_fd_set * fdset)
-{
-    netsnmp_large_fd_set_resize(fdset, 0);
-    fdset->lfs_setsize = 0;
-    fdset->lfs_setptr  = NULL;
-}
-
-void
-netsnmp_copy_fd_set_to_large_fd_set(netsnmp_large_fd_set * dst,
-                                    const fd_set * src)
-{
-    netsnmp_large_fd_set_resize(dst, FD_SETSIZE);
-    *dst->lfs_setptr = *src;
-}
-
-int
-netsnmp_copy_large_fd_set_to_fd_set(fd_set * dst,
-                                    const netsnmp_large_fd_set * src)
-{
-    /* Report failure if *src is larger than FD_SETSIZE. */
-    if (src->lfs_setsize > FD_SETSIZE) {
-        FD_ZERO(dst);
-        return -1;
-    }
-
-    *dst = *src->lfs_setptr;
-
-#if !(!defined(cygwin) && defined(HAVE_WINSOCK_H))
-    {
-        int             i;
-
-        /* Unix: clear any file descriptors defined in *dst but not in *src. */
-        for (i = src->lfs_setsize; i < FD_SETSIZE; ++i)
-            FD_CLR(i, dst);
-    }
-#endif
-
-    return 0;
-}
diff --git a/snmplib/lcd_time.c b/snmplib/lcd_time.c
index a69c072..09b623e 100644
--- a/snmplib/lcd_time.c
+++ b/snmplib/lcd_time.c
@@ -6,9 +6,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <sys/types.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #include <stdio.h>
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
@@ -19,7 +21,11 @@
 #include <strings.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -32,9 +38,6 @@
 #include <netinet/in.h>
 #endif
 
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -53,11 +56,6 @@
 
 #include <net-snmp/library/transform_oids.h>
 
-netsnmp_feature_child_of(usm_support, libnetsnmp)
-netsnmp_feature_child_of(usm_lcd_time, usm_support)
-
-#ifndef NETSNMP_FEATURE_REMOVE_USM_LCD_TIME
-
 /*
  * Global static hashlist to contain Enginetime entries.
  *
@@ -94,13 +92,13 @@ static Enginetime etimelist[ETIMELIST_SIZE];
  *            this is another matter.
  */
 int
-get_enginetime(const u_char * engineID,
+get_enginetime(u_char * engineID,
                u_int engineID_len,
                u_int * engineboot,
                u_int * engine_time, u_int authenticated)
 {
     int             rval = SNMPERR_SUCCESS;
-    int             timediff = 0;
+    time_t          timediff = 0;
     Enginetime      e = NULL;
 
 
@@ -132,7 +130,7 @@ get_enginetime(const u_char * engineID,
         *engine_time = e->engineTime;
         *engineboot = e->engineBoot;
 
-       timediff = (int) (snmpv3_local_snmpEngineTime() - e->lastReceivedEngineTime);
+       timediff = snmpv3_local_snmpEngineTime() - e->lastReceivedEngineTime;
 
 #ifdef LCD_TIME_SYNC_OPT
     }
@@ -196,7 +194,7 @@ get_enginetime_ex(u_char * engineID,
                   u_int * last_engine_time, u_int authenticated)
 {
     int             rval = SNMPERR_SUCCESS;
-    int             timediff = 0;
+    time_t          timediff = 0;
     Enginetime      e = NULL;
 
 
@@ -228,7 +226,7 @@ get_enginetime_ex(u_char * engineID,
         *last_engine_time = *engine_time = e->engineTime;
         *engineboot = e->engineBoot;
 
-       timediff = (int) (snmpv3_local_snmpEngineTime() - e->lastReceivedEngineTime);
+       timediff = snmpv3_local_snmpEngineTime() - e->lastReceivedEngineTime;
 
 #ifdef LCD_TIME_SYNC_OPT
     }
@@ -297,14 +295,14 @@ void free_enginetime(unsigned char *engineID, size_t engineID_len)
 void free_etimelist(void)
 {
      int index = 0;
-     Enginetime e = NULL;
-     Enginetime nextE = NULL;
+     Enginetime e = 0;
+     Enginetime nextE = 0;
 
      for( ; index < ETIMELIST_SIZE; ++index)
      {
            e = etimelist[index];
 
-           while(e != NULL)
+           while(e != 0)
            {
                  nextE = e->next;
                  SNMP_FREE(e->engineID);
@@ -312,7 +310,7 @@ void free_etimelist(void)
                  e = nextE;
            }
 
-           etimelist[index] = NULL;
+           etimelist[index] = 0;
      }
      return;
 }
@@ -341,7 +339,7 @@ void free_etimelist(void)
  * XXX	"Current time within the local engine" == time(NULL)...
  */
 int
-set_enginetime(const u_char * engineID,
+set_enginetime(u_char * engineID,
                u_int engineID_len,
                u_int engineboot, u_int engine_time, u_int authenticated)
 {
@@ -422,7 +420,7 @@ set_enginetime(const u_char * engineID,
  * ASSUMES that no engineID will have more than one record in the list.
  */
 Enginetime
-search_enginetime_list(const u_char * engineID, u_int engineID_len)
+search_enginetime_list(u_char * engineID, u_int engineID_len)
 {
     int             rval = SNMPERR_SUCCESS;
     Enginetime      e = NULL;
@@ -480,7 +478,7 @@ search_enginetime_list(const u_char * engineID, u_int engineID_len)
  *
  */
 int
-hash_engineID(const u_char * engineID, u_int engineID_len)
+hash_engineID(u_char * engineID, u_int engineID_len)
 {
     int             rval = SNMPERR_GENERR;
     size_t          buf_len = SNMP_MAXBUF;
@@ -520,7 +518,7 @@ hash_engineID(const u_char * engineID, u_int engineID_len)
     SNMP_FREE(context);
     memset(buf, 0, SNMP_MAXBUF);
 
-    return (rval < 0) ? rval : (int)(additive % ETIMELIST_SIZE);
+    return (rval < 0) ? rval : (additive % ETIMELIST_SIZE);
 
 }                               /* end hash_engineID() */
 
@@ -605,4 +603,3 @@ dump_etimelist(void)
 
 }                               /* end dump_etimelist() */
 #endif                          /* NETSNMP_ENABLE_TESTING_CODE */
-#endif /* NETSNMP_FEATURE_REMOVE_USM_LCD_TIME */
diff --git a/snmplib/md5.c b/snmplib/md5.c
index fbfd43f..795942a 100644
--- a/snmplib/md5.c
+++ b/snmplib/md5.c
@@ -55,12 +55,14 @@
 #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>
 
@@ -112,7 +114,7 @@
 #endif                          /* STDC_HEADERS */
 
 void            MDreverse(unsigned int *);
-static void     MDblock(MDptr, const unsigned int *);
+static void     MDblock(MDptr, unsigned int *);
 
 #ifdef NETSNMP_ENABLE_TESTING_CODE
 /*
@@ -191,7 +193,7 @@ MDreverse(unsigned int *X)
  * ** This routine is not user-callable. 
  */
 static void
-MDblock(MDptr MDp, const unsigned int *X)
+MDblock(MDptr MDp, unsigned int *X)
 {
     register unsigned int tmp, A, B, C, D;      /* hpux sysv sun */
 #ifdef WORDS_BIGENDIAN
@@ -297,7 +299,7 @@ MDblock(MDptr MDp, const unsigned int *X)
  * **          -2 if count was too large
  */
 int
-MDupdate(MDptr MDp, const unsigned char *X, unsigned int count)
+MDupdate(MDptr MDp, unsigned char *X, unsigned int count)
 {
     unsigned int    i, tmp, bit, byte, mask;
     unsigned char   XX[64];
@@ -331,7 +333,7 @@ MDupdate(MDptr MDp, const unsigned char *X, unsigned int count)
      * Process data 
      */
     if (count == 512) {         /* Full block of data to handle */
-        MDblock(MDp, (const unsigned int *) X);
+        MDblock(MDp, (unsigned int *) X);
     } else if (count > 512)     /* Check for count too large */
         return -2;
     /*
@@ -387,7 +389,7 @@ MDupdate(MDptr MDp, const unsigned char *X, unsigned int count)
  * MDchecksum(data, len, MD5): do a checksum on an arbirtrary amount of data 
  */
 int
-MDchecksum(const u_char * data, size_t len, u_char * mac, size_t maclen)
+MDchecksum(u_char * data, size_t len, u_char * mac, size_t maclen)
 {
     MDstruct        md;
     MDstruct       *MD = &md;
@@ -421,8 +423,8 @@ MDchecksum(const u_char * data, size_t len, u_char * mac, size_t maclen)
  * of data, and prepended with a secret in the standard fashion 
  */
 int
-MDsign(const u_char * data, size_t len, u_char * mac, size_t maclen,
-       const u_char * secret, size_t secretlen)
+MDsign(u_char * data, size_t len, u_char * mac, size_t maclen,
+       u_char * secret, size_t secretlen)
 {
 #define HASHKEYLEN 64
 
@@ -432,8 +434,7 @@ MDsign(const u_char * data, size_t len, u_char * mac, size_t maclen,
     u_char          extendedAuthKey[HASHKEYLEN];
     u_char          buf[HASHKEYLEN];
     size_t          i;
-    const u_char   *cp;
-    u_char         *newdata = NULL;
+    u_char         *cp, *newdata = 0;
     int             rc = 0;
 
     /*
diff --git a/snmplib/mib.c b/snmplib/mib.c
index cbabf25..13b8e78 100644
--- a/snmplib/mib.c
+++ b/snmplib/mib.c
@@ -1,7 +1,7 @@
 /*
  * mib.c
  *
- * $Id$
+ * $Id: mib.c 18251 2010-03-11 11:43:31Z dts12 $
  *
  * Update: 1998-07-17 <jhy at gsu.edu>
  * Added print_oid_report* functions.
@@ -38,34 +38,19 @@ SOFTWARE.
  * distributed with the Net-SNMP package.
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <stdio.h>
 #include <ctype.h>
 #include <sys/types.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_NETINET_IN_H
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -86,9 +71,10 @@ SOFTWARE.
 #include <sys/select.h>
 #endif
 
-#if HAVE_UNISTD_H
-#include <unistd.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
 #endif
+
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -105,19 +91,6 @@ SOFTWARE.
 #include <net-snmp/library/int64.h>
 #include <net-snmp/library/snmp_client.h>
 
-netsnmp_feature_child_of(mib_api, libnetsnmp)
-netsnmp_feature_child_of(mib_strings_all, mib_api)
-
-netsnmp_feature_child_of(mib_snprint, mib_strings_all)
-netsnmp_feature_child_of(mib_snprint_description, mib_strings_all)
-netsnmp_feature_child_of(mib_snprint_variable, mib_strings_all)
-netsnmp_feature_child_of(mib_string_conversions, mib_strings_all)
-netsnmp_feature_child_of(print_mib, mib_strings_all)
-netsnmp_feature_child_of(snprint_objid, mib_strings_all)
-netsnmp_feature_child_of(snprint_value, mib_strings_all)
-
-netsnmp_feature_child_of(mib_to_asn_type, mib_api)
-
 /** @defgroup mib_utilities mib parsing and datatype manipulation routines.
  *  @ingroup library
  *
@@ -160,10 +133,9 @@ static int      _add_strings_to_oid(void *, char *,
 #endif /* NETSNMP_DISABLE_MIB_LOADING */
 
 #ifndef NETSNMP_DISABLE_MIB_LOADING
-NETSNMP_IMPORT struct tree *tree_head;
+extern struct tree *tree_head;
 static struct tree *tree_top;
 
-NETSNMP_IMPORT struct tree *Mib;
 struct tree    *Mib;            /* Backwards compatibility */
 #endif /* NETSNMP_DISABLE_MIB_LOADING */
 
@@ -462,7 +434,7 @@ sprint_realloc_octet_string(u_char ** buf, size_t * buf_len,
     const char     *saved_hint = hint;
     int             hex = 0, x = 0;
     u_char         *cp;
-    int             output_format, cnt;
+    int             output_format, len_needed;
 
     if ((var->type != ASN_OCTET_STR) && 
         (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICKE_PRINT))) {
@@ -481,9 +453,7 @@ sprint_realloc_octet_string(u_char ** buf, size_t * buf_len,
     if (hint) {
         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;
+        char            code = 'd', separ = 0, term = 0, ch, intbuf[16];
         u_char         *ecp;
 
         if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) {
@@ -530,22 +500,9 @@ sprint_realloc_octet_string(u_char ** buf, size_t * buf_len,
                 }
                 switch (code) {
                 case 'x':
-                    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)))) {
+                    if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
+                                               NETSNMP_DS_LIB_2DIGIT_HEX_OUTPUT)
+                                       && value < 16) {
                         sprintf(intbuf, "0%lx", value);
                     } else {
                         sprintf(intbuf, "%lx", value);
@@ -571,11 +528,18 @@ sprint_realloc_octet_string(u_char ** buf, size_t * buf_len,
                     break;
                 case 't': /* new in rfc 3411 */
                 case 'a':
-                    cnt = SNMP_MIN(width, ecp - cp);
-                    if (!sprint_realloc_asciistring(buf, buf_len, out_len,
-                                                    allow_realloc, cp, cnt))
-                        return 0;
-                    cp += cnt;
+                    /* A string hint gives the max size - we may not need this much */
+                    len_needed = SNMP_MIN( width, ecp-cp );
+                    while ((*out_len + len_needed + 1) >= *buf_len) {
+                        if (!(allow_realloc && snmp_realloc(buf, buf_len))) {
+                            return 0;
+                        }
+                    }
+                    for (x = 0; x < width && cp < ecp; x++) {
+                        *(*buf + *out_len) = *cp++;
+                        (*out_len)++;
+                    }
+                    *(*buf + *out_len) = '\0';
                     break;
                 default:
                     *out_len = saved_out_len;
@@ -1163,7 +1127,7 @@ sprint_realloc_timeticks(u_char ** buf, size_t * buf_len, size_t * out_len,
     }
 
     if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NUMERIC_TIMETICKS)) {
-        char            str[32];
+        char            str[16];
         sprintf(str, "%lu", *(u_long *) var->val.integer);
         if (!snmp_strcat
             (buf, buf_len, out_len, allow_realloc, (const u_char *) str)) {
@@ -1333,7 +1297,7 @@ sprint_realloc_integer(u_char ** buf, size_t * buf_len, size_t * out_len,
                 return 0;
             }
         } else {
-            char            str[32];
+            char            str[16];
             sprintf(str, "%ld", *var->val.integer);
             if (!snmp_strcat
                 (buf, buf_len, out_len, allow_realloc,
@@ -1348,7 +1312,7 @@ sprint_realloc_integer(u_char ** buf, size_t * buf_len, size_t * out_len,
             return 0;
         }
     } else {
-        char            str[32];
+        char            str[16];
         sprintf(str, "(%ld)", *var->val.integer);
         if (!snmp_strcat
             (buf, buf_len, out_len, allow_realloc,
@@ -1430,7 +1394,7 @@ sprint_realloc_uinteger(u_char ** buf, size_t * buf_len, size_t * out_len,
                 return 0;
             }
         } else {
-            char            str[32];
+            char            str[16];
             sprintf(str, "%lu", *var->val.integer);
             if (!snmp_strcat
                 (buf, buf_len, out_len, allow_realloc,
@@ -1445,7 +1409,7 @@ sprint_realloc_uinteger(u_char ** buf, size_t * buf_len, size_t * out_len,
             return 0;
         }
     } else {
-        char            str[32];
+        char            str[16];
         sprintf(str, "(%lu)", *var->val.integer);
         if (!snmp_strcat
             (buf, buf_len, out_len, allow_realloc,
@@ -1854,7 +1818,7 @@ sprint_realloc_bitstring(u_char ** buf, size_t * buf_len, size_t * out_len,
                     if (enum_string == NULL ||
                         netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
                                        NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM)) {
-                        char            str[32];
+                        char            str[16];
                         sprintf(str, "%d ", (len * 8) + bit);
                         if (!snmp_strcat
                             (buf, buf_len, out_len, allow_realloc,
@@ -1862,7 +1826,7 @@ sprint_realloc_bitstring(u_char ** buf, size_t * buf_len, size_t * out_len,
                             return 0;
                         }
                     } else {
-                        char            str[32];
+                        char            str[16];
                         sprintf(str, "(%d) ", (len * 8) + bit);
                         if (!snmp_strcat
                             (buf, buf_len, out_len, allow_realloc,
@@ -2361,9 +2325,7 @@ register_mib_handlers(void)
 
     netsnmp_ds_register_premib(ASN_BOOLEAN, "snmp", "showMibErrors",
                        NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_MIB_ERRORS);
-    netsnmp_ds_register_premib(ASN_BOOLEAN, "snmp", "commentToEOL",     /* Describes actual behaviour */
-                       NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_MIB_COMMENT_TERM);
-    netsnmp_ds_register_premib(ASN_BOOLEAN, "snmp", "strictCommentTerm",    /* Backward compatibility */
+    netsnmp_ds_register_premib(ASN_BOOLEAN, "snmp", "strictCommentTerm",
                        NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_MIB_COMMENT_TERM);
     netsnmp_ds_register_premib(ASN_BOOLEAN, "snmp", "mibAllowUnderline",
                        NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_MIB_PARSE_LABEL);
@@ -2578,7 +2540,6 @@ netsnmp_init_mib(void)
      */
     netsnmp_fixup_mib_directory();
     env_var = strdup(netsnmp_get_mib_directory());
-    netsnmp_mibindex_load();
 
     DEBUGMSGTL(("init_mib",
                 "Seen MIBDIRS: Looking in '%s' for mib dirs ...\n",
@@ -2644,7 +2605,7 @@ netsnmp_init_mib(void)
     while (entry) {
         if (strcasecmp(entry, DEBUG_ALWAYS_TOKEN) == 0) {
             read_all_mibs();
-        } else if (strstr(entry, "/") != NULL) {
+        } else if (strstr(entry, "/") != 0) {
             read_mib(entry);
         } else {
             netsnmp_read_module(entry);
@@ -2685,7 +2646,7 @@ netsnmp_init_mib(void)
 #endif
     }
 
-    if (env_var != NULL) {
+    if (env_var != 0) {
         DEBUGMSGTL(("init_mib",
                     "Seen MIBFILES: Looking in '%s' for mib files ...\n",
                     env_var));
@@ -2740,7 +2701,7 @@ netsnmp_init_mib(void)
     }
 }
 
-#ifndef NETSNMP_NO_LEGACY_DEFINITIONS
+#ifndef NETSNMP_CLEAN_NAMESPACE
 void
 init_mib(void)
 {
@@ -2749,139 +2710,6 @@ init_mib(void)
 #endif
 
 
-/*
- * Handle MIB indexes centrally
- */
-static int _mibindex     = 0;   /* Last index in use */
-static int _mibindex_max = 0;   /* Size of index array */
-char     **_mibindexes   = NULL;
-
-int _mibindex_add( const char *dirname, int i );
-void
-netsnmp_mibindex_load( void )
-{
-    DIR *dir;
-    struct dirent *file;
-    FILE *fp;
-    char tmpbuf[ 300];
-    char tmpbuf2[300];
-    int  i;
-    char *cp;
-
-    /*
-     * Open the MIB index directory, or create it (empty)
-     */
-    snprintf( tmpbuf, sizeof(tmpbuf), "%s/mib_indexes",
-              get_persistent_directory());
-    tmpbuf[sizeof(tmpbuf)-1] = 0;
-    dir = opendir( tmpbuf );
-    if ( dir == NULL ) {
-        DEBUGMSGTL(("mibindex", "load: (new)\n"));
-        mkdirhier( tmpbuf, NETSNMP_AGENT_DIRECTORY_MODE, 0);
-        return;
-    }
-
-    /*
-     * Create a list of which directory each file refers to
-     */
-    while ((file = readdir( dir ))) {
-        if ( !isdigit((unsigned char)(file->d_name[0])))
-            continue;
-        i = atoi( file->d_name );
-
-        snprintf( tmpbuf, sizeof(tmpbuf), "%s/mib_indexes/%d",
-              get_persistent_directory(), i );
-        tmpbuf[sizeof(tmpbuf)-1] = 0;
-        fp = fopen( tmpbuf, "r" );
-        if (!fp)
-            continue;
-        cp = fgets( tmpbuf2, sizeof(tmpbuf2), fp );
-        if ( !cp ) {
-            DEBUGMSGTL(("mibindex", "Empty MIB index (%d)\n", i));
-            fclose(fp);
-            continue;
-        }
-        tmpbuf2[strlen(tmpbuf2)-1] = 0;
-        DEBUGMSGTL(("mibindex", "load: (%d) %s\n", i, tmpbuf2));
-        (void)_mibindex_add( tmpbuf2+4, i );  /* Skip 'DIR ' */
-        fclose( fp );
-    }
-    closedir( dir );
-}
-
-char *
-netsnmp_mibindex_lookup( const char *dirname )
-{
-    int i;
-    static char tmpbuf[300];
-
-    for (i=0; i<_mibindex; i++) {
-        if ( _mibindexes[i] &&
-             strcmp( _mibindexes[i], dirname ) == 0) {
-             snprintf(tmpbuf, sizeof(tmpbuf), "%s/mib_indexes/%d",
-                      get_persistent_directory(), i);
-             tmpbuf[sizeof(tmpbuf)-1] = 0;
-             DEBUGMSGTL(("mibindex", "lookup: %s (%d) %s\n", dirname, i, tmpbuf ));
-             return tmpbuf;
-        }
-    }
-    DEBUGMSGTL(("mibindex", "lookup: (none)\n"));
-    return NULL;
-}
-
-int
-_mibindex_add( const char *dirname, int i )
-{
-    const int old_mibindex = _mibindex;
-
-    DEBUGMSGTL(("mibindex", "add: %s (%d)\n", dirname, i ));
-    if ( i == -1 )
-        i = _mibindex++;
-    if ( i >= _mibindex_max ) {
-        /*
-         * If the index array is full (or non-existent)
-         *   then expand (or create) it
-         */
-        _mibindex_max = i + 10;
-        _mibindexes = realloc(_mibindexes,
-                              _mibindex_max * sizeof(_mibindexes[0]));
-        netsnmp_assert(_mibindexes);
-        memset(_mibindexes + old_mibindex, 0,
-               (i - old_mibindex) * sizeof(_mibindexes[0]));
-    }
-    DEBUGMSGTL(("mibindex", "add: %d/%d/%d\n", i, _mibindex, _mibindex_max ));
-
-    _mibindexes[ i ] = strdup( dirname );
-    if ( i >= _mibindex )
-        _mibindex = i+1;
-
-    return i;
-}
-    
-FILE *
-netsnmp_mibindex_new( const char *dirname )
-{
-    FILE *fp;
-    char  tmpbuf[300];
-    char *cp;
-    int   i;
-
-    cp = netsnmp_mibindex_lookup( dirname );
-    if (!cp) {
-        i  = _mibindex_add( dirname, -1 );
-        snprintf( tmpbuf, sizeof(tmpbuf), "%s/mib_indexes/%d",
-                  get_persistent_directory(), i );
-        tmpbuf[sizeof(tmpbuf)-1] = 0;
-        cp = tmpbuf;
-    }
-    DEBUGMSGTL(("mibindex", "new: %s (%s)\n", dirname, cp ));
-    fp = fopen( cp, "w" );
-    if (fp)
-        fprintf( fp, "DIR %s\n", dirname );
-    return fp;
-}
-
-
 /**
  * Unloads all mibs.
  */
@@ -2893,18 +2721,10 @@ shutdown_mib(void)
         if (tree_top->label)
             SNMP_FREE(tree_top->label);
         SNMP_FREE(tree_top);
+        tree_top = NULL;
     }
     tree_head = NULL;
     Mib = NULL;
-    if (_mibindexes) {
-        int i;
-        for (i = 0; i < _mibindex; ++i)
-            SNMP_FREE(_mibindexes[i]);
-        free(_mibindexes);
-        _mibindex = 0;
-        _mibindex_max = 0;
-        _mibindexes = NULL;
-    }
     if (Prefix != NULL && Prefix != &Standard_Prefix[0])
         SNMP_FREE(Prefix);
     if (Prefix)
@@ -2918,13 +2738,11 @@ shutdown_mib(void)
  *
  * @param fp   The file descriptor to print to.
  */
-#ifndef NETSNMP_FEATURE_REMOVE_PRINT_MIB
 void
 print_mib(FILE * fp)
 {
     print_subtree(fp, tree_head, 0);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_PRINT_MIB */
 
 void
 print_ascii_dump(FILE * fp)
@@ -3052,11 +2870,14 @@ read_objid(const char *input, oid * output, size_t * out_len)
          * get past leading '.', append '.' to Prefix. 
          */
         if (*Prefix == '.')
-            strlcpy(buf, Prefix + 1, sizeof(buf));
+            strncpy(buf, Prefix + 1, sizeof(buf)-1);
         else
-            strlcpy(buf, Prefix, sizeof(buf));
-        strlcat(buf, ".", sizeof(buf));
-        strlcat(buf, input, sizeof(buf));
+            strncpy(buf, Prefix, sizeof(buf)-1);
+        buf[ sizeof(buf)-1 ] = 0;
+        strcat(buf, ".");
+        buf[ sizeof(buf)-1 ] = 0;
+        strncat(buf, input, sizeof(buf)-strlen(buf));
+        buf[ sizeof(buf)-1 ] = 0;
         input = buf;
     }
 #endif /* NETSNMP_DISABLE_MIB_LOADING */
@@ -3305,7 +3126,6 @@ sprint_realloc_objid(u_char ** buf, size_t * buf_len,
     return !buf_overflow;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_SPRINT_OBJID
 int
 snprint_objid(char *buf, size_t buf_len,
               const oid * objid, size_t objidlen)
@@ -3319,7 +3139,6 @@ snprint_objid(char *buf, size_t buf_len,
         return -1;
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SPRINT_OBJID */
 
 /**
  * Prints an oid to stdout.
@@ -3453,11 +3272,10 @@ sprint_realloc_variable(u_char ** buf, size_t * buf_len,
          * Handle rare case where tree is empty.  
          */
         return sprint_realloc_by_type(buf, buf_len, out_len, allow_realloc,
-                                      variable, NULL, NULL, NULL);
+                                      variable, 0, 0, 0);
     }
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_SNPRINT_VARABLE
 int
 snprint_variable(char *buf, size_t buf_len,
                  const oid * objid, size_t objidlen,
@@ -3472,7 +3290,6 @@ snprint_variable(char *buf, size_t buf_len,
         return -1;
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNPRINT_VARABLE */
 
 /**
  * Prints a variable to stdout.
@@ -3526,6 +3343,10 @@ sprint_realloc_value(u_char ** buf, size_t * buf_len,
                      const oid * objid, size_t objidlen,
                      const netsnmp_variable_list * variable)
 {
+#ifndef NETSNMP_DISABLE_MIB_LOADING
+    struct tree    *subtree = tree_head;
+#endif /* NETSNMP_DISABLE_MIB_LOADING */
+
     if (variable->type == SNMP_NOSUCHOBJECT) {
         return snmp_strcat(buf, buf_len, out_len, allow_realloc,
                            (const u_char *)
@@ -3541,18 +3362,17 @@ sprint_realloc_value(u_char ** buf, size_t * buf_len,
     } else {
 #ifndef NETSNMP_DISABLE_MIB_LOADING
         const char *units = NULL;
-        struct tree *subtree = tree_head;
-	subtree = get_tree(objid, objidlen, subtree);
+        subtree = get_tree(objid, objidlen, subtree);
         if (subtree && !netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
                                             NETSNMP_DS_LIB_DONT_PRINT_UNITS)) {
             units = subtree->units;
         }
         if (subtree) {
 	    if(subtree->printomat) {
-		return (*subtree->printomat) (buf, buf_len, out_len,
-					      allow_realloc, variable,
-					      subtree->enums, subtree->hint,
-					      units);
+            return (*subtree->printomat) (buf, buf_len, out_len,
+                                          allow_realloc, variable,
+                                          subtree->enums, subtree->hint,
+                                          units);
 	    } else {
 		return sprint_realloc_by_type(buf, buf_len, out_len,
 					      allow_realloc, variable,
@@ -3560,15 +3380,14 @@ sprint_realloc_value(u_char ** buf, size_t * buf_len,
 					      units);
 	    }
 	}
-#endif /* NETSNMP_DISABLE_MIB_LOADING */
+#else
         return sprint_realloc_by_type(buf, buf_len, out_len,
                                       allow_realloc, variable,
                                       NULL, NULL, NULL);
+#endif /* NETSNMP_DISABLE_MIB_LOADING */
     }
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_SNPRINT_VALUE
-/* used in the perl module */
 int
 snprint_value(char *buf, size_t buf_len,
               const oid * objid, size_t objidlen,
@@ -3583,7 +3402,6 @@ snprint_value(char *buf, size_t buf_len,
         return -1;
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNPRINT_VALUE */
 
 void
 print_value(const oid * objid,
@@ -3627,7 +3445,6 @@ int
 build_oid_segment(netsnmp_variable_list * var)
 {
     int             i;
-    uint32_t        ipaddr;
 
     if (var->name && var->name != var->name_loc)
         SNMP_FREE(var->name);
@@ -3644,11 +3461,14 @@ build_oid_segment(netsnmp_variable_list * var)
     case ASN_IPADDRESS:
         var->name_length = 4;
         var->name = var->name_loc;
-        memcpy(&ipaddr, var->val.string, sizeof(ipaddr));
-        var->name[0] = (ipaddr >> 24) & 0xff;
-        var->name[1] = (ipaddr >> 16) & 0xff;
-        var->name[2] = (ipaddr >>  8) & 0xff;
-        var->name[3] = (ipaddr >>  0) & 0xff;
+        var->name[0] =
+            (((unsigned int) *(var->val.integer)) & 0xff000000) >> 24;
+        var->name[1] =
+            (((unsigned int) *(var->val.integer)) & 0x00ff0000) >> 16;
+        var->name[2] =
+            (((unsigned int) *(var->val.integer)) & 0x0000ff00) >> 8;
+        var->name[3] =
+            (((unsigned int) *(var->val.integer)) & 0x000000ff);
         break;
         
     case ASN_PRIV_IMPLIED_OBJECT_ID:
@@ -3714,8 +3534,8 @@ build_oid_segment(netsnmp_variable_list * var)
 
     if (var->name_length > MAX_OID_LEN) {
         DEBUGMSGTL(("build_oid_segment",
-                    "Something terribly wrong, namelen = %lu\n",
-                    (unsigned long)var->name_length));
+                    "Something terribly wrong, namelen = %d\n",
+                    var->name_length));
         return SNMPERR_GENERR;
     }
 
@@ -3833,13 +3653,13 @@ parse_one_oid_index(oid ** oidStart, size_t * oidLen,
         case ASN_TIMETICKS:
             if (*oidLen) {
                 snmp_set_var_value(var, (u_char *) oidIndex++,
-                                   sizeof(oid));
+                                   sizeof(long));
                 --(*oidLen);
             } else {
                 snmp_set_var_value(var, (u_char *) oidLen, sizeof(long));
             }
             DEBUGMSGTL(("parse_oid_indexes",
-                        "Parsed int(%d): %ld\n", var->type,
+                        "Parsed int(%d): %d\n", var->type,
                         *var->val.integer));
             break;
 
@@ -3850,8 +3670,7 @@ parse_one_oid_index(oid ** oidStart, size_t * oidLen,
             for (i = 0; i < 4 && i < *oidLen; ++i) {
                 if (oidIndex[i] > 255) {
                     DEBUGMSGTL(("parse_oid_indexes",
-                                "illegal oid in index: %" NETSNMP_PRIo "d\n",
-                                oidIndex[0]));
+                                "illegal oid in index: %d\n", oidIndex[0]));
                         return SNMPERR_GENERR;  /* sub-identifier too large */
                     }
                     uitmp = uitmp + (oidIndex[i] << (8*(3-i)));
@@ -4024,9 +3843,7 @@ dump_realloc_oid_to_inetaddress(const int addr_type, const oid * objid, size_t o
                     (addr_type == IPV4Z && objidlen != 8))
                     return 2;
 
-                len = sprintf(p, "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u."
-                              "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u",
-                              objid[0], objid[1], objid[2], objid[3]);
+                len = sprintf(p, "%lu.%lu.%lu.%lu", objid[0], objid[1], objid[2], objid[3]);
                 p += len;
                 if (addr_type == IPV4Z) {
                     zc = (unsigned char*)&zone;
@@ -4049,7 +3866,7 @@ dump_realloc_oid_to_inetaddress(const int addr_type, const oid * objid, size_t o
 
                 len = 0;
                 for (i = 0; i < 16; i ++) {
-                    len = snprintf(p, 4, "%02" NETSNMP_PRIo "x:", objid[i]);
+                    len = snprintf(p, 4, "%02lx:", objid[i]);
                     p += len;
                 }
                 p-- ; /* do not include the last ':' */
@@ -4164,7 +3981,7 @@ _oid_finish_printing(const oid * objid, size_t objidlen,
     }
 
     while (objidlen-- > 0) {    /* output rest of name, uninterpreted */
-        sprintf(intbuf, "%" NETSNMP_PRIo "u.", *objid++);
+        sprintf(intbuf, "%lu.", *objid++);
         if (!*buf_overflow && !snmp_strcat(buf, buf_len, out_len,
                                            allow_realloc,
                                            (const u_char *) intbuf)) {
@@ -4452,7 +4269,7 @@ _get_realloc_symbol(const oid * objid, size_t objidlen,
                         *buf_overflow = 1;
                     }
                 } else {
-                    sprintf(intbuf, "%" NETSNMP_PRIo "u", *objid);
+                    sprintf(intbuf, "%lu", *objid);
                     if (!*buf_overflow
                         && !snmp_strcat(buf, buf_len, out_len,
                                         allow_realloc,
@@ -4461,7 +4278,7 @@ _get_realloc_symbol(const oid * objid, size_t objidlen,
                     }
                 }
             } else {
-                sprintf(intbuf, "%" NETSNMP_PRIo "u", *objid);
+                sprintf(intbuf, "%lu", *objid);
                 if (!*buf_overflow && !snmp_strcat(buf, buf_len, out_len,
                                                    allow_realloc,
                                                    (const u_char *)
@@ -4473,23 +4290,6 @@ _get_realloc_symbol(const oid * objid, size_t objidlen,
             objidlen--;
             break;
 
-        case TYPE_TIMETICKS:
-            /* In an index, this is probably a timefilter */
-            if (extended_index) {
-                uptimeString( *objid, intbuf, sizeof( intbuf ) );
-            } else {
-                sprintf(intbuf, "%" NETSNMP_PRIo "u", *objid);
-            }   
-            if (!*buf_overflow && !snmp_strcat(buf, buf_len, out_len,
-                                               allow_realloc,
-                                               (const u_char *)
-                                               intbuf)) {
-                *buf_overflow = 1;
-            }
-            objid++;
-            objidlen--;
-            break;
-
         case TYPE_OBJID:
             if (in_dices->isimplied) {
                 numids = objidlen;
@@ -4533,8 +4333,7 @@ _get_realloc_symbol(const oid * objid, size_t objidlen,
         case TYPE_IPADDR:
             if (objidlen < 4)
                 goto finish_it;
-            sprintf(intbuf, "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u."
-                    "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u",
+            sprintf(intbuf, "%lu.%lu.%lu.%lu",
                     objid[0], objid[1], objid[2], objid[3]);
             objid += 4;
             objidlen -= 4;
@@ -4549,7 +4348,7 @@ _get_realloc_symbol(const oid * objid, size_t objidlen,
                 oid             ntype = *objid++;
 
                 objidlen--;
-                sprintf(intbuf, "%" NETSNMP_PRIo "u.", ntype);
+                sprintf(intbuf, "%lu.", ntype);
                 if (!*buf_overflow && !snmp_strcat(buf, buf_len, out_len,
                                                    allow_realloc,
                                                    (const u_char *)
@@ -4558,8 +4357,7 @@ _get_realloc_symbol(const oid * objid, size_t objidlen,
                 }
 
                 if (ntype == 1 && objidlen >= 4) {
-                    sprintf(intbuf, "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u."
-                            "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u",
+                    sprintf(intbuf, "%lu.%lu.%lu.%lu",
                             objid[0], objid[1], objid[2], objid[3]);
                     if (!*buf_overflow
                         && !snmp_strcat(buf, buf_len, out_len,
@@ -4671,7 +4469,6 @@ fprint_description(FILE * f, oid * objid, size_t objidlen,
     SNMP_FREE(buf);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_MIB_SNPRINT_DESCRIPTION
 int
 snprint_description(char *buf, size_t buf_len,
                     oid * objid, size_t objidlen, int width)
@@ -4685,7 +4482,6 @@ snprint_description(char *buf, size_t buf_len,
         return -1;
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_MIB_SNPRINT_DESCRIPTION */
 
 int
 sprint_realloc_description(u_char ** buf, size_t * buf_len,
@@ -4772,7 +4568,7 @@ sprint_realloc_description(u_char ** buf, size_t * buf_len,
             break;
     }
     while (objidlen > 1) {
-        sprintf(tmpbuf, " %" NETSNMP_PRIo "u", *objid);
+        sprintf(tmpbuf, " %lu", *objid);
         len = strlen(tmpbuf);
         if (pos + len + 2 > width) {
             if (!snmp_cstrcat(buf, buf_len, out_len, allow_realloc, "\n     "))
@@ -4785,7 +4581,7 @@ sprint_realloc_description(u_char ** buf, size_t * buf_len,
         objid++;
         objidlen--;
     }
-    sprintf(tmpbuf, " %" NETSNMP_PRIo "u }", *objid);
+    sprintf(tmpbuf, " %lu }", *objid);
     len = strlen(tmpbuf);
     if (pos + len + 2 > width) {
         if (!snmp_cstrcat(buf, buf_len, out_len, allow_realloc, "\n     "))
@@ -5115,7 +4911,8 @@ print_tree_node(u_char ** buf, size_t * buf_len,
                 else
                     if (!snmp_cstrcat(buf, buf_len, out_len, allow_realloc, ", "))
                         return 0;
-                strlcpy(str, vp->vblabel, sizeof(str));
+                snprintf(str, sizeof(str), "%s", vp->vblabel);
+                str[ sizeof(str)-1 ] = 0;
                 len = strlen(str);
                 if (pos + len + 2 > width) {
                     if (!snmp_cstrcat(buf, buf_len, out_len, allow_realloc,
@@ -5319,7 +5116,7 @@ _add_strings_to_oid(void *tp, char *cp,
         /*
          * Search for the appropriate child 
          */
-        if (isdigit((unsigned char)(*cp))) {
+        if (isdigit(*cp)) {
             subid = strtoul(cp, &ecp, 0);
             if (*ecp)
                 goto bad_id;
@@ -5376,7 +5173,7 @@ _add_strings_to_oid(void *tp, char *cp,
             cp2 = strchr(cp, '.');
             if (cp2)
                 *cp2++ = '\0';
-            if (isdigit((unsigned char)(*cp))) {
+            if (isdigit(*cp)) {
                 subid = strtoul(cp, &ecp, 0);
                 if (*ecp)
                     goto bad_id;
@@ -5728,7 +5525,8 @@ get_node(const char *name, oid * objid, size_t * objidlen)
         module = (char *) malloc((size_t) (cp - name + 1));
         if (!module)
             return SNMPERR_GENERR;
-        sprintf(module, "%.*s", (int) (cp - name), name);
+        memcpy(module, name, (size_t) (cp - name));
+        module[cp - name] = 0;
         cp++;                   /* cp now point to the subidentifier */
         if (*cp == ':')
             cp++;
@@ -5948,7 +5746,7 @@ print_subtree_oid_report(FILE * f, struct tree *tree, int count)
     while (1) {
         register struct tree *ntp;
 
-        tp = NULL;
+        tp = 0;
         for (ntp = tree->child_list; ntp; ntp = ntp->next_peer) {
             if (ntp->reported)
                 continue;
@@ -6001,6 +5799,7 @@ print_subtree_oid_report(FILE * f, struct tree *tree, int count)
 
 /**
  * Converts timeticks to hours, minutes, seconds string.
+ * CMU compatible does not show centiseconds.
  *
  * @param timeticks    The timeticks to convert.
  * @param buf          Buffer to write to, has to be at 
@@ -6020,6 +5819,13 @@ char           *
 uptime_string_n(u_long timeticks, char *buf, size_t buflen)
 {
     uptimeString(timeticks, buf, buflen);
+#ifdef CMU_COMPATIBLE
+    {
+    char *cp = strrchr(buf, '.');
+    if (cp)
+        *cp = '\0';
+    }
+#endif
     return buf;
 }
 
@@ -6253,7 +6059,7 @@ const char *parse_octet_hint(const char *hint, const char *value, unsigned char
 	    if ('*' == *h) {
 		ph.repeat = 1;
 		state = HINT_2_3;
-	    } else if (isdigit((unsigned char)(*h))) {
+	    } else if (isdigit(*h)) {
 		parse_hints_length_add_digit(&ph, *h);
 		state = HINT_2_3;
 	    } else {
@@ -6262,7 +6068,7 @@ const char *parse_octet_hint(const char *hint, const char *value, unsigned char
 	    break;
 
 	case HINT_2_3:
-	    if (isdigit((unsigned char)(*h))) {
+	    if (isdigit(*h)) {
 		parse_hints_length_add_digit(&ph, *h);
 		/* state = HINT_2_3 */
 	    } else if ('x' == *h || 'd' == *h || 'o' == *h || 'a' == *h) {
@@ -6280,7 +6086,7 @@ const char *parse_octet_hint(const char *hint, const char *value, unsigned char
 		
 		ph.repeat = 1;
 		state = HINT_2_3;
-	    } else if (isdigit((unsigned char)(*h))) {
+	    } else if (isdigit(*h)) {
 		retval = parse_hints_parse(&ph, &v);
 		parse_hints_reset(&ph);
 		
@@ -6299,7 +6105,7 @@ const char *parse_octet_hint(const char *hint, const char *value, unsigned char
 		
 		ph.repeat = 1;
 		state = HINT_2_3;
-	    } else if (isdigit((unsigned char)(*h))) {
+	    } else if (isdigit(*h)) {
 		retval = parse_hints_parse(&ph, &v);
 		parse_hints_reset(&ph);
 		
@@ -6372,7 +6178,6 @@ int main(int argc, const char **argv)
 
 #endif /* test_display_hint */
 
-#ifndef NETSNMP_FEATURE_REMOVE_MIB_TO_ASN_TYPE
 u_char
 mib_to_asn_type(int mib_type)
 {
@@ -6422,7 +6227,6 @@ mib_to_asn_type(int mib_type)
     }
     return -1;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_MIB_TO_ASN_TYPE */
 
 /**
  * Converts a string to its OID form.
@@ -6434,7 +6238,6 @@ mib_to_asn_type(int mib_type)
  *
  * @return 0 on Sucess, 1 on failure.
  */
-#ifndef NETSNMP_FEATURE_REMOVE_MIB_STRING_CONVERSIONS
 int
 netsnmp_str2oid(const char *S, oid * O, int L)
 {
@@ -6514,10 +6317,7 @@ netsnmp_oid2str(char *S, int L, oid * O)
 
     return 0;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_MIB_STRING_CONVERSIONS */
-
 
-#ifndef NETSNMP_FEATURE_REMOVE_MIB_SNPRINT
 int
 snprint_by_type(char *buf, size_t buf_len,
                 netsnmp_variable_list * var,
@@ -6795,6 +6595,5 @@ snprint_double(char *buf, size_t buf_len,
         return -1;
 }
 #endif
-#endif /* NETSNMP_FEATURE_REMOVE_MIB_SNPRINT */
 /** @} */
 
diff --git a/snmplib/mt_support.c b/snmplib/mt_support.c
index d28ebe4..414c27a 100644
--- a/snmplib/mt_support.c
+++ b/snmplib/mt_support.c
@@ -44,11 +44,7 @@ snmp_res_init_mutex(mutex_type *mutex)
 {
     int rc = 0;
 #if HAVE_PTHREAD_H
-    pthread_mutexattr_t attr;
-    pthread_mutexattr_init(&attr);
-    pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
-    rc = pthread_mutex_init(mutex, &attr);
-    pthread_mutexattr_destroy(&attr);
+    rc = pthread_mutex_init(mutex, MT_MUTEX_INIT_DEFAULT);
 #elif defined(WIN32)
     InitializeCriticalSection(mutex);
 #endif
diff --git a/snmplib/oid_stash.c b/snmplib/oid_stash.c
index 8a79897..d7526de 100644
--- a/snmplib/oid_stash.c
+++ b/snmplib/oid_stash.c
@@ -5,15 +5,8 @@
 #include <stdlib.h>
 #include <sys/types.h>
 
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 
-netsnmp_feature_child_of(oid_stash_all, libnetsnmp)
-netsnmp_feature_child_of(oid_stash, oid_stash_all)
-netsnmp_feature_child_of(oid_stash_no_free, oid_stash_all)
-
-#ifndef NETSNMP_FEATURE_REMOVE_OID_STASH
-
 /** @defgroup oid_stash Store and retrieve data referenced by an OID.
     This is essentially a way of storing data associated with a given
     OID.  It stores a bunch of data pointers within a memory tree that
@@ -75,8 +68,6 @@ netsnmp_oid_stash_create_node(void)
     return netsnmp_oid_stash_create_sized_node(OID_STASH_CHILDREN_SIZE);
 }
 
-netsnmp_feature_child_of(oid_stash_add_data, oid_stash_all)
-#ifndef NETSNMP_FEATURE_REMOVE_OID_STASH_ADD_DATA
 /** adds data to the stash at a given oid.
 
  * @param root the top of the stash tree
@@ -90,7 +81,7 @@ netsnmp_feature_child_of(oid_stash_add_data, oid_stash_all)
  */
 int
 netsnmp_oid_stash_add_data(netsnmp_oid_stash_node **root,
-                           const oid * lookup, size_t lookup_len, void *mydata)
+                           oid * lookup, size_t lookup_len, void *mydata)
 {
     netsnmp_oid_stash_node *curnode, *tmpp, *loopp;
     unsigned int    i;
@@ -153,7 +144,6 @@ netsnmp_oid_stash_add_data(netsnmp_oid_stash_node **root,
     tmpp->thedata = mydata;
     return SNMPERR_SUCCESS;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_OID_STASH_ADD_DATA */
 
 /** returns a node associated with a given OID.
  * @param root the top of the stash tree
@@ -162,7 +152,7 @@ netsnmp_oid_stash_add_data(netsnmp_oid_stash_node **root,
  */
 netsnmp_oid_stash_node *
 netsnmp_oid_stash_get_node(netsnmp_oid_stash_node *root,
-                           const oid * lookup, size_t lookup_len)
+                           oid * lookup, size_t lookup_len)
 {
     netsnmp_oid_stash_node *curnode, *tmpp, *loopp;
     unsigned int    i;
@@ -197,8 +187,6 @@ netsnmp_oid_stash_get_node(netsnmp_oid_stash_node *root,
  * @param lookup the oid to look up a node for.
  * @param lookup_len the length of the lookup oid
  */
-netsnmp_feature_child_of(oid_stash_iterate, oid_stash_all)
-#ifndef NETSNMP_FEATURE_REMOVE_OID_STASH_ITERATE
 netsnmp_oid_stash_node *
 netsnmp_oid_stash_getnext_node(netsnmp_oid_stash_node *root,
                                oid * lookup, size_t lookup_len)
@@ -280,10 +268,7 @@ netsnmp_oid_stash_getnext_node(netsnmp_oid_stash_node *root,
     /* fell off the top */
     return NULL;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_OID_STASH_ITERATE */
 
-netsnmp_feature_child_of(oid_stash_get_data, oid_stash_all)
-#ifndef NETSNMP_FEATURE_REMOVE_OID_STASH_GET_DATA
 /** returns a data pointer associated with a given OID.
 
     This is equivelent to netsnmp_oid_stash_get_node, but returns only
@@ -295,7 +280,7 @@ netsnmp_feature_child_of(oid_stash_get_data, oid_stash_all)
  */
 void           *
 netsnmp_oid_stash_get_data(netsnmp_oid_stash_node *root,
-                           const oid * lookup, size_t lookup_len)
+                           oid * lookup, size_t lookup_len)
 {
     netsnmp_oid_stash_node *ret;
     ret = netsnmp_oid_stash_get_node(root, lookup, lookup_len);
@@ -303,10 +288,7 @@ netsnmp_oid_stash_get_data(netsnmp_oid_stash_node *root,
         return ret->thedata;
     return NULL;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_OID_STASH_GET_DATA */
 
-netsnmp_feature_child_of(oid_stash_store_all, oid_stash_all)
-#ifndef NETSNMP_FEATURE_REMOVE_OID_STASH_STORE_ALL
 /** a wrapper around netsnmp_oid_stash_store for use with a snmp_alarm.
  * when calling snmp_alarm, you can list this as a callback.  The
  * clientarg should be a pointer to a netsnmp_oid_stash_save_info
@@ -332,7 +314,6 @@ netsnmp_oid_stash_store_all(int majorID, int minorID,
                             oidbase,0);
     return SNMP_ERR_NOERROR;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_OID_STASH_STORE_ALL */
 
 /** stores data in a starsh tree to peristent storage.
 
@@ -403,7 +384,7 @@ oid_stash_dump(netsnmp_oid_stash_node *root, char *prefix)
     for (i = 0; i < root->children_size; i++) {
         if (root->children[i]) {
             for (tmpp = root->children[i]; tmpp; tmpp = tmpp->next_sibling) {
-                printf("%s%" NETSNMP_PRIo "d@%d: %s\n", prefix, tmpp->value, i,
+                printf("%s%ld@%d: %s\n", prefix, tmpp->value, i,
                        (tmpp->thedata) ? "DATA" : "");
                 oid_stash_dump(tmpp, myprefix);
             }
@@ -446,16 +427,10 @@ netsnmp_oid_stash_free(netsnmp_oid_stash_node **root,
     *root = NULL;
 }
 
-#else /* NETSNMP_FEATURE_REMOVE_OID_STASH */
-netsnmp_feature_unused(oid_stash);
-#endif/* NETSNMP_FEATURE_REMOVE_OID_STASH */
-
-#ifndef NETSNMP_FEATURE_REMOVE_OID_STASH_NO_FREE
 void
 netsnmp_oid_stash_no_free(void *bogus)
 {
     /* noop */
 }
-#endif /* NETSNMP_FEATURE_REMOVE_OID_STASH_NO_FREE */
 
 /** @} */
diff --git a/snmplib/opendir.c b/snmplib/opendir.c
deleted file mode 100644
index 6cb8e06..0000000
--- a/snmplib/opendir.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * 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
deleted file mode 100644
index a2c4adc..0000000
--- a/snmplib/openssl/OPENSSL-LICENSE
+++ /dev/null
@@ -1,127 +0,0 @@
-
-  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 at 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 at 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 at cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh at cryptsoft.com).
- *
- */
-
- Original SSLeay License
- -----------------------
-
-/* Copyright (C) 1995-1998 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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
deleted file mode 100644
index c84087b..0000000
--- a/snmplib/openssl/README
+++ /dev/null
@@ -1,19 +0,0 @@
-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
deleted file mode 100644
index 999e5a7..0000000
--- a/snmplib/openssl/openssl_aes_cfb.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* 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 at 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
deleted file mode 100644
index 56301b9..0000000
--- a/snmplib/openssl/openssl_aes_core.c
+++ /dev/null
@@ -1,1358 +0,0 @@
-/* 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 at esat.kuleuven.ac.be>
- * @author Antoon Bosselaers <antoon.bosselaers at esat.kuleuven.ac.be>
- * @author Paulo Barreto <paulo.barreto at 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
deleted file mode 100644
index 319832e..0000000
--- a/snmplib/openssl/openssl_aes_local.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* 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 at 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
deleted file mode 100644
index a91df83..0000000
--- a/snmplib/openssl/openssl_cbc_enc.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* crypto/des/cbc_enc.c */
-/* Copyright (C) 1995-1998 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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
deleted file mode 100644
index 5e0bc1e..0000000
--- a/snmplib/openssl/openssl_cfb128.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/* ====================================================================
- * 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 at 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
deleted file mode 100644
index ba70f9c..0000000
--- a/snmplib/openssl/openssl_des_enc.c
+++ /dev/null
@@ -1,400 +0,0 @@
-/* crypto/des/des_enc.c */
-/* Copyright (C) 1995-1998 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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 at 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 at 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
deleted file mode 100644
index f91d844..0000000
--- a/snmplib/openssl/openssl_des_local.h
+++ /dev/null
@@ -1,431 +0,0 @@
-/* crypto/des/des_locl.h */
-/* Copyright (C) 1995-1997 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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 at 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
deleted file mode 100644
index 279916f..0000000
--- a/snmplib/openssl/openssl_md32_common.h
+++ /dev/null
@@ -1,408 +0,0 @@
-/* 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 at 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 at 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 at 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 at 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 at 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 at 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 at fy.chalmers.se>
- */
-#endif
diff --git a/snmplib/openssl/openssl_md5.c b/snmplib/openssl/openssl_md5.c
deleted file mode 100644
index b87adb3..0000000
--- a/snmplib/openssl/openssl_md5.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/* crypto/md5/md5_dgst.c */
-/* Copyright (C) 1995-1998 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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
deleted file mode 100644
index 47ef374..0000000
--- a/snmplib/openssl/openssl_md5_local.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/* crypto/md5/md5_locl.h */
-/* Copyright (C) 1995-1998 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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 at 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
deleted file mode 100644
index af8d97d..0000000
--- a/snmplib/openssl/openssl_modes.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* ====================================================================
- * 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
deleted file mode 100644
index c38cb66..0000000
--- a/snmplib/openssl/openssl_ncbc_enc.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/* 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 at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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
deleted file mode 100644
index 2b26b9c..0000000
--- a/snmplib/openssl/openssl_set_key.c
+++ /dev/null
@@ -1,406 +0,0 @@
-/* crypto/des/set_key.c */
-/* Copyright (C) 1995-1998 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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 at 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 at 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 at 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
deleted file mode 100644
index ec2ff09..0000000
--- a/snmplib/openssl/openssl_sha.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/* crypto/sha/sha.h */
-/* Copyright (C) 1995-1998 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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
deleted file mode 100644
index 0d048db..0000000
--- a/snmplib/openssl/openssl_sha1.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* crypto/sha/sha1dgst.c */
-/* Copyright (C) 1995-1998 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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
deleted file mode 100644
index f7bc0dc..0000000
--- a/snmplib/openssl/openssl_sha_local.h
+++ /dev/null
@@ -1,436 +0,0 @@
-/* crypto/sha/sha_locl.h */
-/* Copyright (C) 1995-1998 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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 at 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 at 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 at 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
deleted file mode 100644
index 98ec61e..0000000
--- a/snmplib/openssl/openssl_spr.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/* crypto/des/spr.h */
-/* Copyright (C) 1995-1998 Eric Young (eay at cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay at 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 at 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 at 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 at 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 1114586..fd15044 100644
--- a/snmplib/parse.c
+++ b/snmplib/parse.c
@@ -33,7 +33,6 @@ SOFTWARE.
  * distributed with the Net-SNMP package.
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #ifndef NETSNMP_DISABLE_MIB_LOADING
 
@@ -75,7 +74,11 @@ SOFTWARE.
 # endif
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -84,15 +87,15 @@ SOFTWARE.
 #  include <time.h>
 # endif
 #endif
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
 #if defined(HAVE_REGEX_H) && defined(HAVE_REGCOMP)
 #include <regex.h>
 #endif
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -107,37 +110,6 @@ SOFTWARE.
 #include <net-snmp/library/parse.h>
 #include <net-snmp/library/mib.h>
 #include <net-snmp/library/snmp_api.h>
-#include <net-snmp/library/tools.h>
-
-netsnmp_feature_child_of(find_module, mib_api)
-netsnmp_feature_child_of(get_tc_description, mib_api)
-
-/*
- * A linked list of nodes.
- */
-struct node {
-    struct node    *next;
-    char           *label;  /* This node's (unique) textual name */
-    u_long          subid;  /* This node's integer subidentifier */
-    int             modid;  /* The module containing this node */
-    char           *parent; /* The parent's textual name */
-    int             tc_index; /* index into tclist (-1 if NA) */
-    int             type;   /* The type of object this represents */
-    int             access;
-    int             status;
-    struct enum_list *enums; /* (optional) list of enumerated integers */
-    struct range_list *ranges;
-    struct index_list *indexes;
-    char           *augments;
-    struct varbind_list *varbinds;
-    char           *hint;
-    char           *units;
-    char           *description; /* description (a quoted string) */
-    char           *reference; /* references (a quoted string) */
-    char           *defaultValue;
-    char           *filename;
-    int             lineno;
-};
 
 /*
  * This is one element of an object identifier with either an integer
@@ -534,11 +506,7 @@ static struct module_compatability module_map[] = {
  * #define MODULE_LOAD_FAILED   3       
  */
 #define MODULE_LOAD_FAILED	MODULE_NOT_FOUND
-#define MODULE_SYNTAX_ERROR     4
 
-int gMibError = 0,gLoop = 0;
-char *gpMibErrorString = NULL;
-char gMibNames[STRINGMAX];
 
 #define HASHSIZE        32
 #define BUCKET(x)       (x & (HASHSIZE-1))
@@ -552,9 +520,8 @@ static struct node *nbuckets[NHASHSIZE];
 static struct tree *tbuckets[NHASHSIZE];
 static struct module *module_head = NULL;
 
-static struct node *orphan_nodes = NULL;
-NETSNMP_IMPORT struct tree *tree_head;
-struct tree        *tree_head = NULL;
+struct node    *orphan_nodes = NULL;
+struct tree    *tree_head = NULL;
 
 #define	NUMBER_OF_ROOT_NODES	3
 static struct module_import root_imports[NUMBER_OF_ROOT_NODES];
@@ -562,7 +529,7 @@ static struct module_import root_imports[NUMBER_OF_ROOT_NODES];
 static int      current_module = 0;
 static int      max_module = 0;
 static int      first_err_module = 1;
-static char    *last_err_module = NULL; /* no repeats on "Cannot find module..." */
+static char    *last_err_module = 0;    /* no repeats on "Cannot find module..." */
 
 static void     tree_from_node(struct tree *tp, struct node *np);
 static void     do_subtree(struct tree *, struct node **);
@@ -711,7 +678,7 @@ name_hash(const char *name)
     if (!name)
         return 0;
     for (cp = name; *cp; cp++)
-        hash += tolower((unsigned char)(*cp));
+        hash += tolower(*cp);
     return (hash);
 }
 
@@ -757,7 +724,7 @@ netsnmp_init_mib_internals(void)
      */
 }
 
-#ifndef NETSNMP_NO_LEGACY_DEFINITIONS
+#ifndef NETSNMP_CLEAN_NAMESPACE
 void
 init_mib_internals(void)
 {
@@ -783,14 +750,11 @@ init_node_hash(struct node *nodes)
 
 static int      erroneousMibs = 0;
 
-netsnmp_feature_child_of(parse_get_error_count, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_PARSE_GET_ERROR_COUNT
 int
 get_mib_parse_error_count(void)
 {
     return erroneousMibs;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_PARSE_GET_ERROR_COUNT */
 
 
 static void
@@ -984,8 +948,10 @@ print_range_value(FILE * fp, int type, struct range_list * rp)
 static void
 print_nodes(FILE * fp, struct node *root)
 {
+    extern void     xmalloc_stats(FILE *);
     struct enum_list *ep;
     struct index_list *ip;
+    struct range_list *rp;
     struct varbind_list *vp;
     struct node    *np;
 
@@ -1001,7 +967,6 @@ print_nodes(FILE * fp, struct node *root)
             }
         }
         if (np->ranges) {
-            struct range_list *rp;
             fprintf(fp, "  Ranges: ");
             for (rp = np->ranges; rp; rp = rp->next) {
                 fprintf(fp, "\n    ");
@@ -1088,7 +1053,7 @@ print_ascii_dump_tree(FILE * f, struct tree *tree, int count)
 static int      translation_table[256];
 
 static void
-build_translation_table(void)
+build_translation_table()
 {
     int             count;
 
@@ -1174,7 +1139,7 @@ build_translation_table(void)
 }
 
 static void
-init_tree_roots(void)
+init_tree_roots()
 {
     struct tree    *tp, *lasttp;
     int             base_modid;
@@ -2021,19 +1986,11 @@ parse_objectid(FILE * fp, char *name)
                  * The name for this node is the label for this entry 
                  */
                 np->label = strdup(name);
-                if (np->label == NULL) {
-                    SNMP_FREE(np->parent);
-                    SNMP_FREE(np);
-                    return (NULL);
-                }
             } else {
                 if (!nop->label) {
                     nop->label = (char *) malloc(20 + ANON_LEN);
-                    if (nop->label == NULL) {
-                        SNMP_FREE(np->parent);
-                        SNMP_FREE(np);
+                    if (nop->label == NULL)
                         return (NULL);
-                    }
                     sprintf(nop->label, "%s%d", ANON, anonymous++);
                 }
                 np->label = strdup(nop->label);
@@ -2152,8 +2109,6 @@ get_tc_descriptor(int tc_index)
     return (tclist[tc_index].descriptor);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_GET_TC_DESCRIPTION
-/* used in the perl module */
 const char     *
 get_tc_description(int tc_index)
 {
@@ -2161,7 +2116,6 @@ get_tc_description(int tc_index)
         return NULL;
     return (tclist[tc_index].description);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_GET_TC_DESCRIPTION */
 
 
 /*
@@ -2702,12 +2656,29 @@ parse_objecttype(FILE * fp, char *name)
                         break;
                     else if (type == LEFTBRACKET)
                         level++;
-                    if (type == QUOTESTRING)
-                        strlcat(defbuf, "\\\"", sizeof(defbuf));
-                    strlcat(defbuf, quoted_string_buffer, sizeof(defbuf));
-                    if (type == QUOTESTRING)
-                        strlcat(defbuf, "\\\"", sizeof(defbuf));
-                    strlcat(defbuf, " ", sizeof(defbuf));
+                    if (type == QUOTESTRING) {
+                        if (strlen(defbuf)+2 < sizeof(defbuf)) {
+                            defbuf[ strlen(defbuf)+2 ] = 0;
+                            defbuf[ strlen(defbuf)+1 ] = '"';
+                            defbuf[ strlen(defbuf)   ] = '\\';
+                        }
+                        defbuf[ sizeof(defbuf)-1 ] = 0;
+                    }
+                    strncat(defbuf, quoted_string_buffer,
+                            sizeof(defbuf)-strlen(defbuf));
+                    defbuf[ sizeof(defbuf)-1 ] = 0;
+                    if (type == QUOTESTRING) {
+                        if (strlen(defbuf)+2 < sizeof(defbuf)) {
+                            defbuf[ strlen(defbuf)+2 ] = 0;
+                            defbuf[ strlen(defbuf)+1 ] = '"';
+                            defbuf[ strlen(defbuf)   ] = '\\';
+                        }
+                        defbuf[ sizeof(defbuf)-1 ] = 0;
+                    }
+                    if (strlen(defbuf)+1 < sizeof(defbuf)) {
+                        defbuf[ strlen(defbuf)+1 ] = 0;
+                        defbuf[ strlen(defbuf)   ] = ' ';
+                    }
                 }
 
                 if (type != RIGHTBRACKET) {
@@ -2990,15 +2961,6 @@ parse_trapDefinition(FILE * fp, char *name)
         free_node(np);
         return (NULL);
     }
-
-    /* Catch the syntax error */
-    if (np->parent == NULL) {
-        free_node(np->next);
-        free_node(np);
-        gMibError = MODULE_SYNTAX_ERROR;
-        return (NULL);
-    }
-
     np->next->parent = np->parent;
     np->parent = (char *) malloc(strlen(np->parent) + 2);
     if (np->parent == NULL) {
@@ -3009,6 +2971,7 @@ parse_trapDefinition(FILE * fp, char *name)
     strcpy(np->parent, np->next->parent);
     strcat(np->parent, "#");
     np->next->label = strdup(np->parent);
+    np->type = TRAPTYPE;
     return np;
 }
 
@@ -3778,8 +3741,6 @@ module_name(int modid, char *cp)
  *      or those relating to a specified identifier (read_import_replacements)
  *      plus an interface to add new replacement requirements
  */
-netsnmp_feature_child_of(parse_add_module_replacement, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_PARSE_ADD_MODULE_REPLACEMENT
 void
 add_module_replacement(const char *old_module,
                        const char *new_module_name,
@@ -3801,7 +3762,6 @@ add_module_replacement(const char *old_module,
     mcp->next = module_map_head;
     module_map_head = mcp;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_PARSE_ADD_MODULE_REPLACEMENT */
 
 static int
 read_module_replacements(const char *name)
@@ -3893,17 +3853,9 @@ read_module_internal(const char *name)
                 return MODULE_ALREADY_LOADED;
             }
             if ((fp = fopen(mp->file, "r")) == NULL) {
-                int rval;
-                if (errno == ENOTDIR || errno == ENOENT)
-                    rval = MODULE_NOT_FOUND;
-                else
-                    rval = MODULE_LOAD_FAILED;
                 snmp_log_perror(mp->file);
-                return rval;
+                return MODULE_LOAD_FAILED;
             }
-#ifdef HAVE_FLOCKFILE
-            flockfile(fp);
-#endif
             mp->no_imports = 0; /* Note that we've read the file */
             File = mp->file;
             mibLine = 1;
@@ -3912,15 +3864,10 @@ read_module_internal(const char *name)
              * Parse the file
              */
             np = parse(fp, NULL);
-#ifdef HAVE_FUNLOCKFILE
-            funlockfile(fp);
-#endif
             fclose(fp);
             File = oldFile;
             mibLine = oldLine;
             current_module = oldModule;
-            if ((np == NULL) && (gMibError == MODULE_SYNTAX_ERROR) )
-                return MODULE_SYNTAX_ERROR;
             return MODULE_LOADED_OK;
         }
 
@@ -3998,7 +3945,7 @@ adopt_orphans(void)
         }
 }
 
-#ifndef NETSNMP_NO_LEGACY_DEFINITIONS
+#ifndef NETSNMP_CLEAN_NAMESPACE
 struct tree    *
 read_module(const char *name)
 {
@@ -4009,20 +3956,9 @@ read_module(const char *name)
 struct tree    *
 netsnmp_read_module(const char *name)
 {
-    int status = 0;
-    status = read_module_internal(name);
-
-    if (status == MODULE_NOT_FOUND) {
+    if (read_module_internal(name) == MODULE_NOT_FOUND)
         if (!read_module_replacements(name))
-            print_module_not_found(name);
-    } else if (status == MODULE_SYNTAX_ERROR) {
-        gMibError = 0;
-        gLoop = 1;
-
-        strncat(gMibNames, " ", sizeof(gMibNames) - strlen(gMibNames) - 1);
-        strncat(gMibNames, name, sizeof(gMibNames) - strlen(gMibNames) - 1);
-    }
-
+	    print_module_not_found(name);
     return tree_head;
 }
 
@@ -4110,7 +4046,7 @@ unload_module_by_ID(int modID, struct tree *tree_top)
     }
 }
 
-#ifndef NETSNMP_NO_LEGACY_DEFINITIONS
+#ifndef NETSNMP_CLEAN_NAMESPACE
 int
 unload_module(const char *name)
 {
@@ -4144,27 +4080,27 @@ netsnmp_unload_module(const char *name)
  * Clear module map, tree nodes, textual convention table.
  */
 void
-unload_all_mibs(void)
+unload_all_mibs()
 {
     struct module  *mp;
     struct module_compatability *mcp;
     struct tc      *ptc;
-    unsigned int    i;
+    int             i;
 
     for (mcp = module_map_head; mcp; mcp = module_map_head) {
         if (mcp == module_map)
             break;
         module_map_head = mcp->next;
-        if (mcp->tag) free(NETSNMP_REMOVE_CONST(char *, mcp->tag));
-        free(NETSNMP_REMOVE_CONST(char *, mcp->old_module));
-        free(NETSNMP_REMOVE_CONST(char *, mcp->new_module));
+        if (mcp->tag) free((char *) mcp->tag);
+        free((char *) mcp->old_module);
+        free((char *) mcp->new_module);
         free(mcp);
     }
 
     for (mp = module_head; mp; mp = module_head) {
         struct module_import *mi = mp->imports;
         if (mi) {
-            for (i = 0; i < (unsigned int)mp->no_imports; ++i) {
+            for (i = 0; i < mp->no_imports; ++i) {
                 SNMP_FREE((mi + i)->label);
             }
             mp->no_imports = 0;
@@ -4261,7 +4197,7 @@ new_module(const char *name, const char *file)
 
 
 static void
-scan_objlist(struct node *root, struct module *mp, struct objgroup *list, const char *error)
+scan_objlist(struct node *root, struct objgroup *list, const char *error)
 {
     int             oLine = mibLine;
 
@@ -4276,16 +4212,8 @@ scan_objlist(struct node *root, struct module *mp, struct objgroup *list, const
             else
                 break;
         if (!np) {
-	    int i;
-	    struct module_import *mip;
-	    /* if not local, check if it was IMPORTed */
-	    for (i = 0, mip = mp->imports; i < mp->no_imports; i++, mip++)
-		if (strcmp(mip->label, gp->name) == 0)
-		    break;
-	    if (i == mp->no_imports) {
-		mibLine = gp->line;
-		print_error(error, gp->name, QUOTESTRING);
-	    }
+            mibLine = gp->line;
+            print_error(error, gp->name, QUOTESTRING);
         }
         free(gp->name);
         free(gp);
@@ -4300,9 +4228,6 @@ scan_objlist(struct node *root, struct module *mp, struct objgroup *list, const
 static struct node *
 parse(FILE * fp, struct node *root)
 {
-#ifdef TEST
-    extern void     xmalloc_stats(FILE *);
-#endif
     char            token[MAXTOKEN];
     char            name[MAXTOKEN+1];
     int             type = LABEL;
@@ -4319,7 +4244,7 @@ parse(FILE * fp, struct node *root)
 
     if (last_err_module)
         free(last_err_module);
-    last_err_module = NULL;
+    last_err_module = 0;
 
     np = root;
     if (np != NULL) {
@@ -4340,7 +4265,6 @@ parse(FILE * fp, struct node *root)
         case END:
             if (state != IN_MIB) {
                 print_error("Error, END before start of MIB", NULL, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             } else {
                 struct module  *mp;
@@ -4348,15 +4272,15 @@ parse(FILE * fp, struct node *root)
                 printf("\nNodes for Module %s:\n", name);
                 print_nodes(stdout, root);
 #endif
-                for (mp = module_head; mp; mp = mp->next)
-                    if (mp->modid == current_module)
-                        break;
-                scan_objlist(root, mp, objgroups, "Undefined OBJECT-GROUP");
-                scan_objlist(root, mp, objects, "Undefined OBJECT");
-                scan_objlist(root, mp, notifs, "Undefined NOTIFICATION");
+                scan_objlist(root, objgroups, "Undefined OBJECT-GROUP");
+                scan_objlist(root, objects, "Undefined OBJECT");
+                scan_objlist(root, notifs, "Undefined NOTIFICATION");
                 objgroups = oldgroups;
                 objects = oldobjects;
                 notifs = oldnotifs;
+                for (mp = module_head; mp; mp = mp->next)
+                    if (mp->modid == current_module)
+                        break;
                 do_linkup(mp, root);
                 np = root = NULL;
             }
@@ -4364,7 +4288,7 @@ parse(FILE * fp, struct node *root)
 #ifdef TEST
             if (netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, 
 				   NETSNMP_DS_LIB_MIB_WARNINGS)) {
-                /* xmalloc_stats(stderr); */
+                xmalloc_stats(stderr);
 	    }
 #endif
             continue;
@@ -4397,14 +4321,14 @@ parse(FILE * fp, struct node *root)
         case ENDOFFILE:
             continue;
         default:
-            strlcpy(name, token, sizeof(name));
+            strncpy(name, token, sizeof(name));
+            name[sizeof(name)-1] = '\0';
             type = get_token(fp, token, MAXTOKEN);
             nnp = NULL;
             if (type == MACRO) {
                 nnp = parse_macro(fp, name);
                 if (nnp == NULL) {
                     print_error("Bad parse of MACRO", NULL, type);
-                    gMibError = MODULE_SYNTAX_ERROR;
                     /*
                      * return NULL;
                      */
@@ -4415,7 +4339,8 @@ parse(FILE * fp, struct node *root)
                 print_error(name, "is a reserved word", lasttype);
             continue;           /* see if we can parse the rest of the file */
         }
-        strlcpy(name, token, sizeof(name));
+        strncpy(name, token, sizeof(name));
+        name[sizeof(name)-1] = '\0';
         type = get_token(fp, token, MAXTOKEN);
         nnp = NULL;
 
@@ -4428,7 +4353,6 @@ parse(FILE * fp, struct node *root)
                 type = get_token(fp, token, MAXTOKEN);
             if (type == ENDOFFILE) {
                 print_error("Expected \"}\"", token, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             type = get_token(fp, token, MAXTOKEN);
@@ -4438,7 +4362,6 @@ parse(FILE * fp, struct node *root)
         case DEFINITIONS:
             if (state != BETWEEN_MIBS) {
                 print_error("Error, nested MIBS", NULL, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             state = IN_MIB;
@@ -4463,7 +4386,6 @@ parse(FILE * fp, struct node *root)
             nnp = parse_objecttype(fp, name);
             if (nnp == NULL) {
                 print_error("Bad parse of OBJECT-TYPE", NULL, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             break;
@@ -4471,7 +4393,6 @@ parse(FILE * fp, struct node *root)
             nnp = parse_objectgroup(fp, name, OBJECTS, &objects);
             if (nnp == NULL) {
                 print_error("Bad parse of OBJECT-GROUP", NULL, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             break;
@@ -4479,7 +4400,6 @@ parse(FILE * fp, struct node *root)
             nnp = parse_objectgroup(fp, name, NOTIFICATIONS, &notifs);
             if (nnp == NULL) {
                 print_error("Bad parse of NOTIFICATION-GROUP", NULL, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             break;
@@ -4487,7 +4407,6 @@ parse(FILE * fp, struct node *root)
             nnp = parse_trapDefinition(fp, name);
             if (nnp == NULL) {
                 print_error("Bad parse of TRAP-TYPE", NULL, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             break;
@@ -4495,7 +4414,6 @@ parse(FILE * fp, struct node *root)
             nnp = parse_notificationDefinition(fp, name);
             if (nnp == NULL) {
                 print_error("Bad parse of NOTIFICATION-TYPE", NULL, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             break;
@@ -4503,7 +4421,6 @@ parse(FILE * fp, struct node *root)
             nnp = parse_compliance(fp, name);
             if (nnp == NULL) {
                 print_error("Bad parse of MODULE-COMPLIANCE", NULL, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             break;
@@ -4511,7 +4428,6 @@ parse(FILE * fp, struct node *root)
             nnp = parse_capabilities(fp, name);
             if (nnp == NULL) {
                 print_error("Bad parse of AGENT-CAPABILITIES", NULL, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             break;
@@ -4519,7 +4435,6 @@ parse(FILE * fp, struct node *root)
             nnp = parse_macro(fp, name);
             if (nnp == NULL) {
                 print_error("Bad parse of MACRO", NULL, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 /*
                  * return NULL;
                  */
@@ -4531,7 +4446,6 @@ parse(FILE * fp, struct node *root)
             nnp = parse_moduleIdentity(fp, name);
             if (nnp == NULL) {
                 print_error("Bad parse of MODULE-IDENTITY", NULL, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             break;
@@ -4539,7 +4453,6 @@ parse(FILE * fp, struct node *root)
             nnp = parse_objectgroup(fp, name, OBJECTS, &objects);
             if (nnp == NULL) {
                 print_error("Bad parse of OBJECT-IDENTITY", NULL, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             break;
@@ -4547,19 +4460,16 @@ parse(FILE * fp, struct node *root)
             type = get_token(fp, token, MAXTOKEN);
             if (type != IDENTIFIER) {
                 print_error("Expected IDENTIFIER", token, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             type = get_token(fp, token, MAXTOKEN);
             if (type != EQUALS) {
                 print_error("Expected \"::=\"", token, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             nnp = parse_objectid(fp, name);
             if (nnp == NULL) {
                 print_error("Bad parse of OBJECT IDENTIFIER", NULL, type);
-                gMibError = MODULE_SYNTAX_ERROR;
                 return NULL;
             }
             break;
@@ -4571,7 +4481,6 @@ parse(FILE * fp, struct node *root)
             break;
         default:
             print_error("Bad operator", token, type);
-            gMibError = MODULE_SYNTAX_ERROR;
             return NULL;
         }
         if (nnp) {
@@ -4605,21 +4514,6 @@ is_labelchar(int ich)
     return 0;
 }
 
-/**
- * Read a single character from a file. Assumes that the caller has invoked
- * flockfile(). Uses fgetc_unlocked() instead of getc() since the former is
- * implemented as an inline function in glibc. See also bug 3447196
- * (http://sourceforge.net/tracker/?func=detail&aid=3447196&group_id=12694&atid=112694).
- */
-static int netsnmp_getc(FILE *stream)
-{
-#ifdef HAVE_FGETC_UNLOCKED
-    return fgetc_unlocked(stream);
-#else
-    return getc(stream);
-#endif
-}
-
 /*
  * Parses a token from the file.  The type of the token parsed is returned,
  * and the text is placed in the string pointed to by token.
@@ -4633,13 +4527,12 @@ get_token(FILE * fp, char *token, int maxtlen)
     register int    hash = 0;
     register struct tok *tp;
     int             too_long = 0;
-    enum { bdigits, xdigits, other } seenSymbols;
 
     /*
      * skip all white space 
      */
     do {
-        ch = netsnmp_getc(fp);
+        ch = getc(fp);
         if (ch == '\n')
             mibLine++;
     }
@@ -4652,60 +4545,39 @@ get_token(FILE * fp, char *token, int maxtlen)
     case '"':
         return parseQuoteString(fp, token, maxtlen);
     case '\'':                 /* binary or hex constant */
-        seenSymbols = bdigits;
-        while ((ch = netsnmp_getc(fp)) != EOF && ch != '\'') {
-            switch (seenSymbols) {
-            case bdigits:
-                if (ch == '0' || ch == '1')
-                    break;
-                seenSymbols = xdigits;
-            case xdigits:
-                if (isxdigit(ch))
-                    break;
-                seenSymbols = other;
-            case other:
-                break;
-            }
-            if (cp - token < maxtlen - 2)
-                *cp++ = ch;
-        }
+        while ((ch = getc(fp)) != EOF && ch != '\''
+               && cp - token < maxtlen - 2)
+            *cp++ = ch;
         if (ch == '\'') {
             unsigned long   val = 0;
-            char           *run = token + 1;
-            ch = netsnmp_getc(fp);
+            *cp++ = '\'';
+            *cp++ = ch = getc(fp);
+            *cp = 0;
+            cp = token + 1;
             switch (ch) {
             case EOF:
                 return ENDOFFILE;
             case 'b':
             case 'B':
-                if (seenSymbols > bdigits) {
-                    *cp++ = '\'';
-                    *cp = 0;
-                    return LABEL;
-                }
-                while (run != cp)
-                    val = val * 2 + *run++ - '0';
+                while ((ch = *cp++) != '\'')
+                    if (ch != '0' && ch != '1')
+                        return LABEL;
+                    else
+                        val = val * 2 + ch - '0';
                 break;
             case 'h':
             case 'H':
-                if (seenSymbols > xdigits) {
-                    *cp++ = '\'';
-                    *cp = 0;
-                    return LABEL;
-                }
-                while (run != cp) {
-                    ch = *run++;
+                while ((ch = *cp++) != '\'')
                     if ('0' <= ch && ch <= '9')
                         val = val * 16 + ch - '0';
                     else if ('a' <= ch && ch <= 'f')
                         val = val * 16 + ch - 'a' + 10;
                     else if ('A' <= ch && ch <= 'F')
                         val = val * 16 + ch - 'A' + 10;
-                }
+                    else
+                        return LABEL;
                 break;
             default:
-                *cp++ = '\'';
-                *cp = 0;
                 return LABEL;
             }
             sprintf(token, "%ld", val);
@@ -4731,25 +4603,25 @@ get_token(FILE * fp, char *token, int maxtlen)
     case '|':
         return BAR;
     case '.':
-        ch_next = netsnmp_getc(fp);
+        ch_next = getc(fp);
         if (ch_next == '.')
             return RANGE;
         ungetc(ch_next, fp);
         return LABEL;
     case ':':
-        ch_next = netsnmp_getc(fp);
+        ch_next = getc(fp);
         if (ch_next != ':') {
             ungetc(ch_next, fp);
             return LABEL;
         }
-        ch_next = netsnmp_getc(fp);
+        ch_next = getc(fp);
         if (ch_next != '=') {
             ungetc(ch_next, fp);
             return LABEL;
         }
         return EQUALS;
     case '-':
-        ch_next = netsnmp_getc(fp);
+        ch_next = getc(fp);
         if (ch_next == '-') {
             if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
 				       NETSNMP_DS_LIB_MIB_COMMENT_TERM)) {
@@ -4757,7 +4629,7 @@ get_token(FILE * fp, char *token, int maxtlen)
                  * Treat the rest of this line as a comment. 
                  */
                 while ((ch_next != EOF) && (ch_next != '\n'))
-                    ch_next = netsnmp_getc(fp);
+                    ch_next = getc(fp);
             } else {
                 /*
                  * Treat the rest of the line or until another '--' as a comment 
@@ -4766,11 +4638,11 @@ get_token(FILE * fp, char *token, int maxtlen)
                  * (this is the "technically" correct way to parse comments) 
                  */
                 ch = ' ';
-                ch_next = netsnmp_getc(fp);
+                ch_next = getc(fp);
                 while (ch_next != EOF && ch_next != '\n' &&
                        (ch != '-' || ch_next != '-')) {
                     ch = ch_next;
-                    ch_next = netsnmp_getc(fp);
+                    ch_next = getc(fp);
                 }
             }
             if (ch_next == EOF)
@@ -4780,7 +4652,6 @@ get_token(FILE * fp, char *token, int maxtlen)
             return get_token(fp, token, maxtlen);
         }
         ungetc(ch_next, fp);
-	/* fallthrough */
     default:
         /*
          * Accumulate characters until end of token is found.  Then attempt to
@@ -4791,7 +4662,7 @@ get_token(FILE * fp, char *token, int maxtlen)
             return LABEL;
         hash += tolower(ch);
       more:
-        while (is_labelchar(ch_next = netsnmp_getc(fp))) {
+        while (is_labelchar(ch_next = getc(fp))) {
             hash += tolower(ch_next);
             if (cp - token < maxtlen - 1)
                 *cp++ = ch_next;
@@ -4810,7 +4681,7 @@ get_token(FILE * fp, char *token, int maxtlen)
         if (tp) {
             if (tp->token != CONTINUE)
                 return (tp->token);
-            while (isspace((ch_next = netsnmp_getc(fp))))
+            while (isspace((ch_next = getc(fp))))
                 if (ch_next == '\n')
                     mibLine++;
             if (ch_next == EOF)
@@ -4821,9 +4692,9 @@ get_token(FILE * fp, char *token, int maxtlen)
                 goto more;
             }
         }
-        if (token[0] == '-' || isdigit((unsigned char)(token[0]))) {
+        if (token[0] == '-' || isdigit(token[0])) {
             for (cp = token + 1; *cp; cp++)
-                if (!isdigit((unsigned char)(*cp)))
+                if (!isdigit(*cp))
                     return LABEL;
             return NUMBER;
         }
@@ -4831,14 +4702,11 @@ get_token(FILE * fp, char *token, int maxtlen)
     }
 }
 
-netsnmp_feature_child_of(parse_get_token, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_PARSE_GET_TOKEN
 int
 snmp_get_token(FILE * fp, char *token, int maxtlen)
 {
     return get_token(fp, token, maxtlen);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_PARSE_GET_TOKEN */
 
 int
 add_mibfile(const char* tmpstr, const char* d_name, FILE *ip )
@@ -4857,10 +4725,7 @@ add_mibfile(const char* tmpstr, const char* d_name, FILE *ip )
                 tmpstr));
     mibLine = 1;
     File = tmpstr;
-    if (get_token(fp, token, MAXTOKEN) != LABEL) {
-	    fclose(fp);
-	    return 1;
-    }
+    get_token(fp, token, MAXTOKEN);
     /*
      * simple test for this being a MIB 
      */
@@ -4893,24 +4758,26 @@ add_mibdir(const char *dirname)
     int             count = 0;
     int             fname_len = 0;
 #if !(defined(WIN32) || defined(cygwin))
-    char           *token;
+    char            token[MAXTOKEN];
     char space;
     char newline;
     struct stat     dir_stat, idx_stat;
     char            tmpstr1[300];
+    int empty = 1;
 #endif
 
     DEBUGMSGTL(("parse-mibs", "Scanning directory %s\n", dirname));
 #if !(defined(WIN32) || defined(cygwin))
-    token = netsnmp_mibindex_lookup( dirname );
-    if (token && stat(token, &idx_stat) == 0 && stat(dirname, &dir_stat) == 0) {
+    snprintf(token, sizeof(token), "%s/%s", dirname, ".index");
+    token[ sizeof(token)-1 ] = 0;
+    if (stat(token, &idx_stat) == 0 && stat(dirname, &dir_stat) == 0) {
         if (dir_stat.st_mtime < idx_stat.st_mtime) {
             DEBUGMSGTL(("parse-mibs", "The index is good\n"));
             if ((ip = fopen(token, "r")) != NULL) {
-                fgets(tmpstr, sizeof(tmpstr), ip); /* Skip dir line */
                 while (fscanf(ip, "%127s%c%299s%c", token, &space, tmpstr,
 		    &newline) == 4) {
 
+                    empty = 0;
 		    /*
 		     * If an overflow of the token or tmpstr buffers has been
 		     * found log a message and break out of the while loop,
@@ -4930,7 +4797,10 @@ add_mibdir(const char *dirname)
                     count++;
                 }
                 fclose(ip);
-                return count;
+                if ( !empty ) {
+                    return count;
+                }
+                DEBUGMSGTL(("parse-mibs", "Empty MIB index\n"));
             } else
                 DEBUGMSGTL(("parse-mibs", "Can't read index\n"));
         } else
@@ -4940,7 +4810,9 @@ add_mibdir(const char *dirname)
 #endif
 
     if ((dir = opendir(dirname))) {
-        ip = netsnmp_mibindex_new( dirname );
+        snprintf(tmpstr, sizeof(tmpstr), "%s/.index", dirname);
+        tmpstr[ sizeof(tmpstr)-1 ] = 0;
+        ip = fopen(tmpstr, "w");
         while ((file = readdir(dir))) {
             /*
              * Only parse file names that don't begin with a '.' 
@@ -4998,11 +4870,7 @@ read_mib(const char *filename)
     mibLine = 1;
     File = filename;
     DEBUGMSGTL(("parse-mibs", "Parsing file: %s...\n", filename));
-    if (get_token(fp, token, MAXTOKEN) != LABEL) {
-	    snmp_log(LOG_ERR, "Failed to parse MIB file %s\n", filename);
-	    fclose(fp);
-	    return NULL;
-    }
+    get_token(fp, token, MAXTOKEN);
     fclose(fp);
     new_module(token, filename);
     (void) netsnmp_read_module(token);
@@ -5012,7 +4880,7 @@ read_mib(const char *filename)
 
 
 struct tree    *
-read_all_mibs(void)
+read_all_mibs()
 {
     struct module  *mp;
 
@@ -5021,29 +4889,12 @@ read_all_mibs(void)
             netsnmp_read_module(mp->name);
     adopt_orphans();
 
-    /* If entered the syntax error loop in "read_module()" */
-    if (gLoop == 1) {
-        gLoop = 0;
-        if (gpMibErrorString != NULL) {
-            SNMP_FREE(gpMibErrorString);
-        }
-        gpMibErrorString = (char *) calloc(1, MAXQUOTESTR);
-        if (gpMibErrorString == NULL) {
-            snmp_log(LOG_CRIT, "failed to allocated memory for gpMibErrorString\n");
-        } else {
-            snprintf(gpMibErrorString, sizeof(gpMibErrorString)-1, "Error in parsing MIB module(s): %s ! Unable to load corresponding MIB(s)", gMibNames);
-        }
-    }
-
-    /* Caller's responsibility to free this memory */
-    tree_head->parseErrorString = gpMibErrorString;
-	
     return tree_head;
 }
 
 
 #ifdef TEST
-int main(int argc, char *argv[])
+main(int argc, char *argv[])
 {
     int             i;
     struct tree    *tp;
@@ -5073,7 +4924,7 @@ parseQuoteString(FILE * fp, char *token, int maxtlen)
     int             too_long = 0;
     char           *token_start = token;
 
-    for (ch = netsnmp_getc(fp); ch != EOF; ch = netsnmp_getc(fp)) {
+    for (ch = getc(fp); ch != EOF; ch = getc(fp)) {
         if (ch == '\r')
             continue;
         if (ch == '\n') {
@@ -5333,8 +5184,8 @@ find_node(const char *name, struct tree *subtree)
     return (find_tree_node(name, -1));
 }
 
-netsnmp_feature_child_of(parse_find_node2, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_PARSE_FIND_NODE2
+/* Find node in specific MIB module
+   Used by Perl modules		*/
 struct tree    *
 find_node2(const char *name, const char *module)
 {                               
@@ -5348,10 +5199,7 @@ find_node2(const char *name, const char *module)
   }
   return (find_tree_node(name, modid));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_PARSE_FIND_NODE2 */
 
-#ifndef NETSNMP_FEATURE_REMOVE_FIND_MODULE
-/* Used in the perl module */
 struct module  *
 find_module(int mid)
 {
@@ -5361,9 +5209,10 @@ find_module(int mid)
         if (mp->modid == mid)
             break;
     }
-    return mp;
+    if (mp != 0)
+        return mp;
+    return NULL;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_FIND_MODULE */
 
 
 static char     leave_indent[256];
diff --git a/snmplib/pkcs.c b/snmplib/pkcs.c
index 48e602a..ee4ed92 100644
--- a/snmplib/pkcs.c
+++ b/snmplib/pkcs.c
@@ -774,6 +774,4 @@ pkcserr_string(CK_RV rv)
         break;
     }
 }
-#else
-int pkcs_unused;	/* Suppress "empty translation unit" warning */
 #endif
diff --git a/snmplib/read_config.c b/snmplib/read_config.c
index d512c5d..6ba5e7e 100644
--- a/snmplib/read_config.c
+++ b/snmplib/read_config.c
@@ -65,7 +65,6 @@
  *  @{
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <stdio.h>
 #include <ctype.h>
@@ -85,7 +84,11 @@
 #include <sys/param.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -106,6 +109,9 @@
 #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
@@ -114,23 +120,6 @@
 #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
@@ -146,17 +135,10 @@
 #include <net-snmp/library/snmp_api.h>
 #include <net-snmp/library/callback.h>
 
-netsnmp_feature_child_of(read_config_all, libnetsnmp)
-
-netsnmp_feature_child_of(unregister_app_config_handler, read_config_all)
-netsnmp_feature_child_of(read_config_register_app_prenetsnmp_mib_handler, netsnmp_unused)
-netsnmp_feature_child_of(read_config_register_const_config_handler, netsnmp_unused)
-
 static int      config_errors;
 
 struct config_files *config_files = NULL;
 
-
 static struct config_line *
 internal_register_config_handler(const char *type_param,
 				 const char *token,
@@ -180,8 +162,8 @@ internal_register_config_handler(const char *type_param,
         struct config_line *ltmp2 = NULL;
         char                buf[STRINGMAX];
         char               *cptr = buf;
-
-        strlcpy(buf, type, STRINGMAX);
+        strncpy(buf, type, STRINGMAX - 1);
+        buf[STRINGMAX - 1] = '\0';
         while (cptr) {
             char* c = cptr;
             cptr = strchr(cptr, ':');
@@ -210,11 +192,8 @@ internal_register_config_handler(const char *type_param,
         }
 
         (*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.
@@ -259,7 +238,6 @@ register_prenetsnmp_mib_handler(const char *type,
 					    help, PREMIB_CONFIG);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_READ_CONFIG_REGISTER_APP_PRENETSNMP_MIB_HANDLER
 struct config_line *
 register_app_prenetsnmp_mib_handler(const char *token,
                                     void (*parser) (const char *, char *),
@@ -269,7 +247,6 @@ register_app_prenetsnmp_mib_handler(const char *token,
     return (register_prenetsnmp_mib_handler
             (NULL, token, parser, releaser, help));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_READ_CONFIG_REGISTER_APP_PRENETSNMP_MIB_HANDLER */
 
 /**
  * register_config_handler registers handlers for certain tokens specified in
@@ -293,11 +270,10 @@ register_app_prenetsnmp_mib_handler(const char *token,
  *                 token and the rest of the line to do whatever is required
  *                 Should be non-NULL in order to make use of this API.
  *
- * @param releaser if non-NULL, the function specified is called when
- *                 unregistering config handler or when configuration
- *                 files are re-read.
- *                 This function should free any resources allocated by
- *                 the token handler function.
+ * @param releaser 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.
  *
  * @param help     if non-NULL, used to display help information on the
  *                 expected arguments after the token.
@@ -314,20 +290,6 @@ register_config_handler(const char *type,
 					    help, NORMAL_CONFIG);
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_READ_CONFIG_REGISTER_CONST_CONFIG_HANDLER
-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);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_READ_CONFIG_REGISTER_CONST_CONFIG_HANDLER */
-
 struct config_line *
 register_app_config_handler(const char *token,
                             void (*parser) (const char *, char *),
@@ -367,8 +329,8 @@ unregister_config_handler(const char *type_param, const char *token)
     if (strchr(type, ':')) {
         char                buf[STRINGMAX];
         char               *cptr = buf;
-
-        strlcpy(buf, type, STRINGMAX);
+        strncpy(buf, type, STRINGMAX - 1);
+        buf[STRINGMAX - 1] = '\0';
         while (cptr) {
             char* c = cptr;
             cptr = strchr(cptr, ':');
@@ -407,8 +369,6 @@ unregister_config_handler(const char *type_param, const char *token)
          * found it at the top of the list 
          */
         struct config_line *ltmp2 = (*ltmp)->next;
-        if ((*ltmp)->free_func)
-            (*ltmp)->free_func();
         SNMP_FREE((*ltmp)->config_token);
         SNMP_FREE((*ltmp)->help);
         SNMP_FREE(*ltmp);
@@ -421,8 +381,6 @@ unregister_config_handler(const char *type_param, const char *token)
     }
     if ((*ltmp)->next != NULL) {
         struct config_line *ltmp2 = (*ltmp)->next->next;
-        if ((*ltmp)->next->free_func)
-            (*ltmp)->next->free_func();
         SNMP_FREE((*ltmp)->next->config_token);
         SNMP_FREE((*ltmp)->next->help);
         SNMP_FREE((*ltmp)->next);
@@ -430,20 +388,20 @@ unregister_config_handler(const char *type_param, const char *token)
     }
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_UNREGISTER_APP_CONFIG_HANDLER
 void
 unregister_app_config_handler(const char *token)
 {
     unregister_config_handler(NULL, token);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UNREGISTER_APP_CONFIG_HANDLER */
 
 void
-unregister_all_config_handlers(void)
+unregister_all_config_handlers()
 {
     struct config_files *ctmp, *save;
     struct config_line *ltmp;
 
+    free_config();
+
     /*
      * Keep using config_files until there are no more! 
      */
@@ -476,8 +434,8 @@ print_config_handlers(void)
 }
 #endif
 
-static unsigned int  linecount;
-static const char   *curfilename;
+int             linecount;
+const char     *curfilename;
 
 struct config_line *
 read_config_get_handlers(const char *type)
@@ -490,23 +448,22 @@ read_config_get_handlers(const char *type)
     return NULL;
 }
 
-int
+void
 read_config_with_type_when(const char *filename, const char *type, int when)
 {
     struct config_line *ctmp = read_config_get_handlers(type);
     if (ctmp)
-        return read_config(filename, ctmp, when);
+        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 */
 }
 
-int
+void
 read_config_with_type(const char *filename, const char *type)
 {
-    return read_config_with_type_when(filename, type, EITHER_CONFIG);
+    read_config_with_type_when(filename, type, EITHER_CONFIG);
 }
 
 
@@ -532,38 +489,29 @@ int
 run_config_handler(struct config_line *lptr,
                    const char *token, char *cptr, int when)
 {
+    char            tmpbuf[STRINGMAX];
     char           *cp;
     lptr = read_config_find_handler(lptr, token);
     if (lptr != NULL) {
         if (when == EITHER_CONFIG || lptr->config_time == when) {
-            DEBUGMSGTL(("read_config:parser",
+            DEBUGMSGTL(("read_config",
                         "Found a parser.  Calling it: %s / %s\n", token,
                         cptr));
             /*
-             * Make sure cptr is non-null
-             */
-            char tmpbuf[1];
-            if (!cptr) {
-                tmpbuf[0] = '\0';
-                cptr = tmpbuf;
-            }
-
-            /*
              * Stomp on any trailing whitespace
              */
             cp = &(cptr[strlen(cptr)-1]);
-            while ((cp > cptr) && isspace((unsigned char)(*cp))) {
+            while (isspace(*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)) {
-	netsnmp_config_warn("Unknown token: %s.", token);
+        snprintf(tmpbuf, sizeof(tmpbuf), "Unknown token: %s.", token);
+        tmpbuf[ sizeof(tmpbuf)-1 ] = 0;
+        config_pwarn(tmpbuf);
         return SNMPERR_GENERR;
     }
     return SNMPERR_SUCCESS;
@@ -584,7 +532,7 @@ run_config_handler(struct config_line *lptr,
 int
 snmp_config_when(char *line, int when)
 {
-    char           *cptr, buf[STRINGMAX];
+    char           *cptr, buf[STRINGMAX], tmpbuf[STRINGMAX];
     struct config_line *lptr = NULL;
     struct config_files *ctmp = config_files;
     char           *st;
@@ -594,22 +542,26 @@ snmp_config_when(char *line, int when)
         return SNMPERR_GENERR;
     }
 
-    strlcpy(buf, line, STRINGMAX);
+    strncpy(buf, line, STRINGMAX);
+    buf[STRINGMAX - 1] = '\0';
     cptr = strtok_r(buf, SNMP_CONFIG_DELIMETERS, &st);
-    if (!cptr) {
-        netsnmp_config_warn("Wrong format: %s", line);
-        return SNMPERR_GENERR;
-    }
-    if (cptr[0] == '[') {
+    if (cptr && cptr[0] == '[') {
         if (cptr[strlen(cptr) - 1] != ']') {
-	    netsnmp_config_error("no matching ']' for type %s.", cptr + 1);
+            snprintf(tmpbuf, sizeof(tmpbuf),
+                    "no matching ']' for type %s.",
+                    cptr + 1);
+            tmpbuf[ sizeof(tmpbuf)-1 ] = 0;
+            config_perror(tmpbuf);
             return SNMPERR_GENERR;
         }
         cptr[strlen(cptr) - 1] = '\0';
         lptr = read_config_get_handlers(cptr + 1);
         if (lptr == NULL) {
-	    netsnmp_config_error("No handlers regestered for type %s.",
-				 cptr + 1);
+            snprintf(tmpbuf,  sizeof(tmpbuf),
+                     "No handlers regestered for type %s.",
+                    cptr + 1);
+            tmpbuf[ sizeof(tmpbuf)-1 ] = 0;
+            config_perror(tmpbuf);
             return SNMPERR_GENERR;
         }
         cptr = strtok_r(NULL, SNMP_CONFIG_DELIMETERS, &st);
@@ -623,7 +575,9 @@ snmp_config_when(char *line, int when)
     }
     if (lptr == NULL && netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
 					  NETSNMP_DS_LIB_NO_TOKEN_WARNINGS)) {
-	netsnmp_config_warn("Unknown token: %s.", cptr);
+        snprintf(tmpbuf, sizeof(tmpbuf), "Unknown token: %s.", cptr);
+        tmpbuf[ sizeof(tmpbuf)-1 ] = 0;
+        config_pwarn(tmpbuf);
         return SNMPERR_GENERR;
     }
 
@@ -662,10 +616,8 @@ netsnmp_config_remember_in_list(char *line,
         mem = &((*mem)->next);
 
     *mem = SNMP_MALLOC_STRUCT(read_config_memory);
-    if (*mem != NULL) {
-        if (line)
-            (*mem)->line = strdup(line);
-    }
+    if (line)
+        (*mem)->line = strdup(line);
 }
 
 void
@@ -693,7 +645,7 @@ netsnmp_config_process_memory_list(struct read_config_memory **memp,
     mem = *memp;
 
     while (mem) {
-        DEBUGMSGTL(("read_config:mem", "processing memory: %s\n", mem->line));
+        DEBUGMSGTL(("read_config", "processing memory: %s\n", mem->line));
         snmp_config_when(mem->line, when);
         mem = mem->next;
     }
@@ -743,29 +695,20 @@ netsnmp_config_process_memories_when(int when, int clear)
  *
  * 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.
  */
-int
+void
 read_config(const char *filename,
             struct config_line *line_handler, int when)
 {
-    static int      depth = 0;
-    static int      files = 0;
-
-    const char * const prev_filename = curfilename;
-    const unsigned int prev_linecount = linecount;
 
     FILE           *ifile;
-    char           *line = NULL;  /* current line buffer */
-    size_t          linesize = 0; /* allocated size of line */
+    char            line[STRINGMAX], token[STRINGMAX], tmpbuf[STRINGMAX];
+    char           *cptr;
+    int             i;
+    struct config_line *lptr;
 
-    /* reset file counter when recursion depth is 0 */
-    if (depth == 0)
-        files = 0;
+    linecount = 0;
+    curfilename = filename;
 
     if ((ifile = fopen(filename, "r")) == NULL) {
 #ifdef ENOENT
@@ -780,93 +723,51 @@ read_config(const char *filename,
                         strerror(errno)));
         } else
 #endif                          /* EACCES */
+#if defined(ENOENT) || defined(EACCES)
         {
             snmp_log_perror(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;
+#else                           /* defined(ENOENT) || defined(EACCES) */
+            snmp_log_perror(filename);
+#endif                          /* ENOENT */
+        return;
+    } else {
+        DEBUGMSGTL(("read_config", "Reading configuration %s\n",
+                    filename));
     }
 
-    linecount = 0;
-    curfilename = filename;
-
-    ++files;
-    ++depth;
-
-    DEBUGMSGTL(("read_config:file", "Reading configuration %s (%d)\n",
-                filename, when));
-
-    while (ifile) {
-        size_t              linelen = 0; /* strlen of the current line */
-        char               *cptr;
-        struct config_line *lptr = line_handler;
-
-        for (;;) {
-            if (linesize <= linelen + 1) {
-                char *tmp = realloc(line, linesize + 256);
-                if (tmp) {
-                    line = tmp;
-                    linesize += 256;
-                } else {
-                    netsnmp_config_error("Failed to allocate memory\n");
-                    free(line);
-                    fclose(ifile);
-                    return SNMPERR_GENERR;
-                }
-            }
-            if (fgets(line + linelen, linesize - linelen, ifile) == NULL) {
-                line[linelen] = '\0';
-                fclose (ifile);
-                ifile = NULL;
-                break;
-            }
-
-            linelen += strlen(line + linelen);
-
-            if (line[linelen - 1] == '\n') {
-              line[linelen - 1] = '\0';
-              break;
-            }
-        }
-
-        ++linecount;
-        DEBUGMSGTL(("9:read_config:line", "%s:%d examining: %s\n",
-                    filename, linecount, line));
+    while (fgets(line, sizeof(line), ifile) != NULL) {
+        lptr = line_handler;
+        linecount++;
+        cptr = line;
+        i = strlen(line) - 1;
+        if (line[i] == '\n')
+            line[i] = 0;
         /*
          * check blank line or # comment 
          */
-        if ((cptr = skip_white(line))) {
-            char token[STRINGMAX];
-
+        if ((cptr = skip_white(cptr))) {
             cptr = copy_nword(cptr, token, sizeof(token));
             if (token[0] == '[') {
                 if (token[strlen(token) - 1] != ']') {
-		    netsnmp_config_error("no matching ']' for type %s.",
-					 &token[1]);
+                    snprintf(tmpbuf, sizeof(tmpbuf),
+                            "no matching ']' for type %s.",
+                            &token[1]);
+                    tmpbuf[ sizeof(tmpbuf)-1 ] = 0;
+                    config_perror(tmpbuf);
                     continue;
                 }
                 token[strlen(token) - 1] = '\0';
                 lptr = read_config_get_handlers(&token[1]);
                 if (lptr == NULL) {
-		    netsnmp_config_error("No handlers regestered for type %s.",
-					 &token[1]);
+                    snprintf(tmpbuf, sizeof(tmpbuf),
+                            "No handlers regestered for type %s.",
+                            &token[1]);
+                    tmpbuf[ sizeof(tmpbuf)-1 ] = 0;
+                    config_perror(tmpbuf);
                     continue;
                 }
-                DEBUGMSGTL(("read_config:context",
+                DEBUGMSGTL(("read_config",
                             "Switching to new context: %s%s\n",
                             ((cptr) ? "(this line only) " : ""),
                             &token[1]));
@@ -882,107 +783,23 @@ read_config(const char *filename,
                      */
                     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;
-                    }
-                    while ((entry = readdir( d )) != NULL ) {
-                        if ( entry->d_name && 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);
-                    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);
-                    }
-                    if (read_config(fname, line_handler, when) !=
-                        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, ret;
-
-                    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 */
-                    ret = read_config_files_of_type(when,&ctmp);
-                    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);
+                snprintf(tmpbuf, sizeof(tmpbuf),
+                        "Blank line following %s token.", token);
+                tmpbuf[ sizeof(tmpbuf)-1 ] = 0;
+                config_perror(tmpbuf);
             } else {
-                DEBUGMSGTL(("read_config:line", "%s:%d examining: %s\n",
+                DEBUGMSGTL(("read_config", "%s:%d examining: %s\n",
                             filename, linecount, line));
                 run_config_handler(lptr, token, cptr, when);
             }
         }
     }
-    free(line);
-    linecount = prev_linecount;
-    curfilename = prev_filename;
-    --depth;
-    return SNMPERR_SUCCESS;
+    fclose(ifile);
+    return;
 
 }                               /* end read_config() */
 
@@ -1000,21 +817,15 @@ free_config(void)
                 (*(ltmp->free_func)) ();
 }
 
-/*
- * 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
+void
 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 ret;
+        return;
 
     DEBUGMSGTL(("read_configs_optional",
                 "reading optional configuration tokens for %s\n", type));
@@ -1028,15 +839,14 @@ read_configs_optional(const char *optional_config, int when)
                         "Optional File \"%s\" does not exist.\n", cp));
             snmp_log_perror(cp);
         } else {
-            DEBUGMSGTL(("read_config:opt",
+            DEBUGMSGTL(("read_config",
                         "Reading optional config file: \"%s\"\n", cp));
-            if ( read_config_with_type_when(cp, type, when) == SNMPERR_SUCCESS )
-                ret = SNMPERR_SUCCESS;
+            read_config_with_type_when(cp, type, when);
         }
         cp = strtok_r(NULL, ",", &st);
     }
     free(newp);
-    return ret;
+    
 }
 
 void
@@ -1045,23 +855,20 @@ read_configs(void)
     char *optional_config = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
 					       NETSNMP_DS_LIB_OPTIONALCONFIG);
 
-    snmp_call_callbacks(SNMP_CALLBACK_LIBRARY,
-                        SNMP_CALLBACK_PRE_READ_CONFIG, NULL);
-
     DEBUGMSGTL(("read_config", "reading normal configuration tokens\n"));
 
     if ((NULL != optional_config) && (*optional_config == '-')) {
-        (void)read_configs_optional(++optional_config, NORMAL_CONFIG);
+        read_configs_optional(++optional_config, NORMAL_CONFIG);
         optional_config = NULL; /* clear, so we don't read them twice */
     }
 
-    (void)read_config_files(NORMAL_CONFIG);
+    read_config_files(NORMAL_CONFIG);
 
     /*
      * do this even when the normal above wasn't done 
      */
     if (NULL != optional_config)
-        (void)read_configs_optional(optional_config, NORMAL_CONFIG);
+        read_configs_optional(optional_config, NORMAL_CONFIG);
 
     netsnmp_config_process_memories_when(NORMAL_CONFIG, 1);
 
@@ -1077,20 +884,17 @@ read_premib_configs(void)
     char *optional_config = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
 					       NETSNMP_DS_LIB_OPTIONALCONFIG);
 
-    snmp_call_callbacks(SNMP_CALLBACK_LIBRARY,
-                        SNMP_CALLBACK_PRE_PREMIB_READ_CONFIG, NULL);
-
     DEBUGMSGTL(("read_config", "reading premib configuration tokens\n"));
 
     if ((NULL != optional_config) && (*optional_config == '-')) {
-        (void)read_configs_optional(++optional_config, PREMIB_CONFIG);
+        read_configs_optional(++optional_config, PREMIB_CONFIG);
         optional_config = NULL; /* clear, so we don't read them twice */
     }
 
-    (void)read_config_files(PREMIB_CONFIG);
+    read_config_files(PREMIB_CONFIG);
 
     if (NULL != optional_config)
-        (void)read_configs_optional(optional_config, PREMIB_CONFIG);
+        read_configs_optional(optional_config, PREMIB_CONFIG);
 
     netsnmp_config_process_memories_when(PREMIB_CONFIG, 0);
 
@@ -1128,7 +932,7 @@ set_configuration_directory(const char *dir)
  * We always retrieve it new, since we have to do it anyway if it is just set.
  */
 const char     *
-get_configuration_directory(void)
+get_configuration_directory()
 {
     char            defaultPath[SPRINT_MAX_LEN];
     char           *homepath;
@@ -1176,7 +980,7 @@ set_persistent_directory(const char *dir)
  * We always retrieve it new, since we have to do it anyway if it is just set.
  */
 const char     *
-get_persistent_directory(void)
+get_persistent_directory()
 {
     if (NULL == netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
 				      NETSNMP_DS_LIB_PERSISTENT_DIR)) {
@@ -1216,7 +1020,7 @@ set_temp_file_pattern(const char *pattern)
  * We always retrieve it new, since we have to do it anyway if it is just set.
  */
 const char     *
-get_temp_file_pattern(void)
+get_temp_file_pattern()
 {
     if (NULL == netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
 				      NETSNMP_DS_LIB_TEMP_FILE_PATTERN)) {
@@ -1228,12 +1032,8 @@ get_temp_file_pattern(void)
 
 /**
  * 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 int
+static void
 read_config_files_in_path(const char *path, struct config_files *ctmp,
                           int when, const char *perspath, const char *persfile)
 {
@@ -1241,14 +1041,13 @@ read_config_files_in_path(const char *path, struct config_files *ctmp,
     char            configfile[300];
     char           *cptr1, *cptr2, *envconfpath;
     struct stat     statbuf;
-    int             ret = SNMPERR_GENERR;
 
     if ((NULL == path) || (NULL == ctmp))
-        return SNMPERR_GENERR;
+        return;
 
     envconfpath = strdup(path);
 
-    DEBUGMSGTL(("read_config:path", " config path used for %s:%s (persistent path:%s)\n",
+    DEBUGMSGTL(("read_config", " config path used for %s:%s (persistent path:%s)\n",
                 ctmp->fileHeader, envconfpath, perspath));
     cptr1 = cptr2 = envconfpath;
     done = 0;
@@ -1260,12 +1059,12 @@ read_config_files_in_path(const char *path, struct config_files *ctmp,
         else
             *cptr1 = 0;
 
-        DEBUGMSGTL(("read_config:dir", " config dir: %s\n", cptr2 ));
+        DEBUGMSGTL(("read_config", " config dir: %s\n", cptr2 ));
         if (stat(cptr2, &statbuf) != 0) {
             /*
              * Directory not there, continue 
              */
-            DEBUGMSGTL(("read_config:dir", " Directory not present: %s\n", cptr2 ));
+            DEBUGMSGTL(("read_config", " Directory not present: %s\n", cptr2 ));
             cptr2 = ++cptr1;
             continue;
         }
@@ -1274,14 +1073,14 @@ read_config_files_in_path(const char *path, struct config_files *ctmp,
             /*
              * Not a directory, continue 
              */
-            DEBUGMSGTL(("read_config:dir", " Not a directory: %s\n", cptr2 ));
+            DEBUGMSGTL(("read_config", " Not a directory: %s\n", cptr2 ));
             cptr2 = ++cptr1;
             continue;
         }
 #endif
 
         /*
-         * for proper persistent storage retrieval, we need to read old backup
+         * for proper persistent storage retrival, 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
@@ -1290,7 +1089,6 @@ read_config_files_in_path(const char *path, struct config_files *ctmp,
         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 
              */
@@ -1311,21 +1109,18 @@ read_config_files_in_path(const char *path, struct config_files *ctmp,
                     DEBUGMSGTL(("read_config_files",
                                 "old config file found: %s, parsing\n",
                                 configfile));
-                    if (read_config(configfile, ctmp->start, when) == SNMPERR_SUCCESS)
-                        ret = SNMPERR_SUCCESS;
+                    read_config(configfile, ctmp->start, when);
                 }
             }
         }
         snprintf(configfile, sizeof(configfile),
                  "%s/%s.conf", cptr2, ctmp->fileHeader);
         configfile[ sizeof(configfile)-1 ] = 0;
-        if (read_config(configfile, ctmp->start, when) == SNMPERR_SUCCESS)
-            ret = SNMPERR_SUCCESS;
+        read_config(configfile, ctmp->start, when);
         snprintf(configfile, sizeof(configfile),
                  "%s/%s.local.conf", cptr2, ctmp->fileHeader);
         configfile[ sizeof(configfile)-1 ] = 0;
-        if (read_config(configfile, ctmp->start, when) == SNMPERR_SUCCESS)
-            ret = SNMPERR_SUCCESS;
+        read_config(configfile, ctmp->start, when);
 
         if(done)
             break;
@@ -1333,7 +1128,6 @@ read_config_files_in_path(const char *path, struct config_files *ctmp,
         cptr2 = ++cptr1;
     }
     SNMP_FREE(envconfpath);
-    return ret;
 }
 
 /*******************************************************************-o-******
@@ -1364,23 +1158,23 @@ read_config_files_in_path(const char *path, struct config_files *ctmp,
  *
  *
  * 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
  */
-int
-read_config_files_of_type(int when, struct config_files *ctmp)
+void
+read_config_files(int when)
 {
     const char     *confpath, *persfile, *envconfpath;
     char           *perspath;
-    int             ret = SNMPERR_GENERR;
+    struct config_files *ctmp = config_files;
 
     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)
-        || (NULL == ctmp)) return ret;
+     || netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
+                               NETSNMP_DS_LIB_DISABLE_CONFIG_LOAD)) return;
+
+    config_errors = 0;
+
+    if (when == PREMIB_CONFIG)
+        free_config();
 
     /*
      * these shouldn't change
@@ -1389,6 +1183,10 @@ read_config_files_of_type(int when, struct config_files *ctmp)
     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
@@ -1402,56 +1200,27 @@ read_config_files_of_type(int when, struct config_files *ctmp)
              * persistent path can change via conf file. Then get the
              * current persistent directory, and read files there.
              */
-            if ( read_config_files_in_path(confpath, ctmp, when, perspath,
-                                      persfile) == SNMPERR_SUCCESS )
-                ret = SNMPERR_SUCCESS;
+            read_config_files_in_path(confpath, ctmp, when, perspath,
+                                      persfile);
             free(perspath);
             perspath = strdup(get_persistent_directory());
-            if ( read_config_files_in_path(perspath, ctmp, when, perspath,
-                                      persfile) == SNMPERR_SUCCESS )
-                ret = SNMPERR_SUCCESS;
+            read_config_files_in_path(perspath, ctmp, when, perspath,
+                                      persfile);
         }
         else {
             /*
              * only read path specified by user
              */
-            if ( read_config_files_in_path(envconfpath, ctmp, when, perspath,
-                                      persfile) == SNMPERR_SUCCESS )
-                ret = SNMPERR_SUCCESS;
+            read_config_files_in_path(envconfpath, ctmp, when, perspath,
+                                      persfile);
         }
         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
@@ -1537,7 +1306,7 @@ read_config_store(const char *type, const char *line)
         fprintf(fout, "%s", line);
         if (line[strlen(line)] != '\n')
             fprintf(fout, "\n");
-        DEBUGMSGTL(("read_config:store", "storing: %s\n", line));
+        DEBUGMSGTL(("read_config", "storing: %s\n", line));
         fclose(fout);
     } else {
         snmp_log(LOG_ERR, "read_config_store open failure on %s\n", filep);
@@ -1618,11 +1387,8 @@ snmp_save_persistent(const char *type)
      * save a warning header to the top of the new file 
      */
     snprintf(fileold, sizeof(fileold),
-            "%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");
+            "#\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.\ [...]
+            type, type, type);
     fileold[ sizeof(fileold)-1 ] = 0;
     read_config_store(type, fileold);
 }
@@ -1683,52 +1449,19 @@ snmp_clean_persistent(const char *type)
  * config_perror: prints a warning string associated with a file and
  * line number of a .conf file and increments the error count. 
  */
-static void
-config_vlog(int level, const char *levelmsg, const char *str, va_list args)
-{
-    char tmpbuf[256];
-    char* buf = tmpbuf;
-    int len = snprintf(tmpbuf, sizeof(tmpbuf), "%s: line %d: %s: %s\n",
-		       curfilename, linecount, levelmsg, str);
-    if (len >= (int)sizeof(tmpbuf)) {
-	buf = (char*)malloc(len + 1);
-	sprintf(buf, "%s: line %d: %s: %s\n",
-		curfilename, linecount, levelmsg, str);
-    }
-    snmp_vlog(level, buf, args);
-    if (buf != tmpbuf)
-	free(buf);
-}
-
-void
-netsnmp_config_error(const char *str, ...)
-{
-    va_list args;
-    va_start(args, str);
-    config_vlog(LOG_ERR, "Error", str, args);
-    va_end(args);
-    config_errors++;
-}
-
-void
-netsnmp_config_warn(const char *str, ...)
-{
-    va_list args;
-    va_start(args, str);
-    config_vlog(LOG_WARNING, "Warning", str, args);
-    va_end(args);
-}
-
 void
 config_perror(const char *str)
 {
-    netsnmp_config_error("%s", str);
+    snmp_log(LOG_ERR, "%s: line %d: Error: %s\n", curfilename, linecount,
+             str);
+    config_errors++;
 }
 
 void
 config_pwarn(const char *str)
 {
-    netsnmp_config_warn("%s", str);
+    snmp_log(LOG_WARNING, "%s: line %d: Warning: %s\n", curfilename,
+             linecount, str);
 }
 
 /*
@@ -1738,12 +1471,6 @@ config_pwarn(const char *str)
 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))
@@ -1756,12 +1483,6 @@ skip_white_const(const char *ptr)
 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))
@@ -1774,15 +1495,9 @@ skip_not_white_const(const char *ptr)
 char           *
 skip_token(char *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);
+    ptr = skip_white(ptr);
+    ptr = skip_not_white(ptr);
+    ptr = skip_white(ptr);
     return (ptr);
 }
 
@@ -1803,12 +1518,6 @@ skip_token_const(const char *ptr)
 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;
@@ -1837,7 +1546,7 @@ copy_nword_const(const char *from, char *to, int len)
         } else
             from++;
     } else {
-        while (*from != 0 && !isspace((unsigned char)(*from))) {
+        while (*from != 0 && !isspace(*from)) {
             if ((*from == '\\') && (*(from + 1) != 0)) {
                 if (len > 0) {  /* don't copy beyond len bytes */
                     *to++ = *(from + 1);
@@ -1857,9 +1566,9 @@ copy_nword_const(const char *from, char *to, int len)
     }
     if (len > 0)
         *to = 0;
-    from = skip_white_const(from);
+    from = skip_white(from);
     return (from);
-}                               /* copy_nword */
+}                               /* copy_word */
 
 /*
  * copy_word
@@ -1923,42 +1632,20 @@ read_config_save_octet_string(char *saveto, u_char * str, size_t len)
     return saveto;
 }
 
-/**
- * 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.
+/*
+ * read_config_read_octet_string(): reads an octet string that was
+ * saved by the read_config_save_octet_string() function 
  */
 char           *
-read_config_read_octet_string(const char *readfrom, u_char ** str,
-                              size_t * len)
+read_config_read_octet_string(char *readfrom, u_char ** str, size_t * len)
 {
-    return NETSNMP_REMOVE_CONST(char *,
-               read_config_read_octet_string_const(readfrom, str, len));
-}
-
-const char     *
-read_config_read_octet_string_const(const char *readfrom, u_char ** str,
-                                    size_t * len)
-{
-    u_char         *cptr;
-    const char     *cptr1;
+    u_char         *cptr = NULL;
+    char           *cptr1;
     u_int           tmp;
-    size_t          i, ilen;
+    int             i;
+    size_t          ilen;
 
-    if (readfrom == NULL || str == NULL || len == NULL)
+    if (readfrom == NULL || str == NULL)
         return NULL;
 
     if (strncasecmp(readfrom, "0x", 2) == 0) {
@@ -1966,7 +1653,7 @@ read_config_read_octet_string_const(const char *readfrom, u_char ** str,
          * A hex string submitted. How long? 
          */
         readfrom += 2;
-        cptr1 = skip_not_white_const(readfrom);
+        cptr1 = skip_not_white(readfrom);
         if (cptr1)
             ilen = (cptr1 - readfrom);
         else
@@ -1984,29 +1671,31 @@ read_config_read_octet_string_const(const char *readfrom, u_char ** str,
          * malloc data space if needed (+1 for good measure) 
          */
         if (*str == NULL) {
-            *str = (u_char *) malloc(ilen + 1);
-            if (!*str)
+            if ((cptr = (u_char *) malloc(ilen + 1)) == NULL) {
                 return NULL;
+            }
+            *str = cptr;
         } else {
             /*
-             * require caller to have +1, and bail if not enough space.
+             * don't require caller to have +1 for good measure, and 
+             * bail if not enough space.
              */
-            if (ilen >= *len) {
-                snmp_log(LOG_WARNING,"buffer too small to read octet string (%lu < %lu)\n",
-                         (unsigned long)*len, (unsigned long)ilen);
+            if (ilen > *len) {
+                snmp_log(LOG_WARNING,"buffer too small to read octet string (%d < %d)\n",
+                         *len, ilen);
                 DEBUGMSGTL(("read_config_read_octet_string",
                             "buffer too small (%lu < %lu)", (unsigned long)*len, (unsigned long)ilen));
-                *len = 0;
-                cptr1 = skip_not_white_const(readfrom);
-                return skip_white_const(cptr1);
+                cptr1 = skip_not_white(readfrom);
+                return skip_white(cptr1);
             }
+            cptr = *str;
         }
+        *len = ilen;
 
         /*
          * copy validated data 
          */
-        cptr = *str;
-        for (i = 0; i < ilen; i++) {
+        for (i = 0; i < (int) *len; i++) {
             if (1 == sscanf(readfrom, "%2x", &tmp))
                 *cptr++ = (u_char) tmp;
             else {
@@ -2018,11 +1707,13 @@ read_config_read_octet_string_const(const char *readfrom, u_char ** str,
             readfrom += 2;
         }
         /*
-         * Terminate the output buffer.
+         * only null terminate if we have the space
          */
-        *cptr++ = '\0';
-        *len = ilen;
-        readfrom = skip_white_const(readfrom);
+        if (ilen > *len) {
+            ilen = *len-1;
+            *cptr++ = '\0';
+        }
+        readfrom = skip_white(readfrom);
     } else {
         /*
          * Normal string 
@@ -2033,23 +1724,25 @@ read_config_read_octet_string_const(const char *readfrom, u_char ** str,
          */
         if (*str == NULL) {
             char            buf[SNMP_MAXBUF];
-            readfrom = copy_nword_const(readfrom, buf, sizeof(buf));
+            readfrom = copy_nword(readfrom, buf, sizeof(buf));
 
             *len = strlen(buf);
-            *str = (u_char *) malloc(*len + 1);
-            if (*str == NULL)
+            if ((cptr = (u_char *) malloc(*len + 1)) == NULL)
                 return NULL;
-            memcpy(*str, buf, *len + 1);
+            *str = cptr;
+            if (cptr) {
+                memcpy(cptr, buf, *len + 1);
+            }
         } else {
-            readfrom = copy_nword_const(readfrom, (char *) *str, *len);
-            if (*len)
-                *len = strlen((char *) *str);
+            readfrom = copy_nword(readfrom, (char *) *str, *len);
+            *len = strlen((char *) *str);
         }
     }
 
     return readfrom;
 }
 
+
 /*
  * read_config_save_objid(): saves an objid as a numerical string 
  */
@@ -2068,7 +1761,7 @@ read_config_save_objid(char *saveto, oid * objid, size_t len)
      * in case len=0, this makes it easier to read it back in 
      */
     for (i = 0; i < (int) len; i++) {
-        sprintf(saveto, ".%" NETSNMP_PRIo "d", objid[i]);
+        sprintf(saveto, ".%ld", objid[i]);
         saveto += strlen(saveto);
     }
     return saveto;
@@ -2080,13 +1773,6 @@ read_config_save_objid(char *saveto, oid * objid, size_t len)
 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;
@@ -2108,7 +1794,7 @@ read_config_read_objid_const(const char *readfrom, oid ** objid, size_t * len)
          * qualify the string for read_objid 
          */
         char            buf[SPRINT_MAX_LEN];
-        copy_nword_const(readfrom, buf, sizeof(buf));
+        copy_nword(readfrom, buf, sizeof(buf));
 
         if (!read_objid(buf, *objid, len)) {
             DEBUGMSGTL(("read_config_read_objid", "Invalid OID"));
@@ -2117,7 +1803,7 @@ read_config_read_objid_const(const char *readfrom, oid ** objid, size_t * len)
         }
     }
 
-    readfrom = skip_token_const(readfrom);
+    readfrom = skip_token(readfrom);
     return readfrom;
 }
 
@@ -2261,6 +1947,7 @@ read_config_read_memory(int type, char *readfrom,
         return readfrom;
 
     case ASN_COUNTER64:
+    {
         if (*len < sizeof(U64))
             return NULL;
         *len = sizeof(U64);
@@ -2269,7 +1956,11 @@ read_config_read_memory(int type, char *readfrom,
         return readfrom;
     }
 
-    DEBUGMSGTL(("read_config_read_memory", "Fail: Unknown type: %d", type));
+    default:
+        DEBUGMSGTL(("read_config_read_memory", "Fail: Unknown type: %d",
+                    type));
+        return NULL;
+    }
     return NULL;
 }
 
@@ -2353,5 +2044,4 @@ read_config_store_data_prefix(char prefix, int type, char *storeto,
         }
     return NULL;
 }
-
 /** @} */
diff --git a/snmplib/readdir.c b/snmplib/readdir.c
deleted file mode 100644
index 33ff83d..0000000
--- a/snmplib/readdir.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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 fdd33ff..3e84654 100644
--- a/snmplib/scapi.c
+++ b/snmplib/scapi.c
@@ -15,9 +15,11 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <sys/types.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -27,7 +29,11 @@
 #include <strings.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -40,9 +46,6 @@
 #include <netinet/in.h>
 #endif
 
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -51,11 +54,6 @@
 #include <net-snmp/output_api.h>
 #include <net-snmp/utilities.h>
 
-netsnmp_feature_child_of(usm_support, libnetsnmp)
-netsnmp_feature_child_of(usm_scapi, usm_support)
-
-#ifndef NETSNMP_FEATURE_REMOVE_USM_SCAPI
-
 #ifdef NETSNMP_USE_INTERNAL_MD5
 #include <net-snmp/library/md5.h>
 #endif
@@ -68,13 +66,6 @@ netsnmp_feature_child_of(usm_scapi, usm_support)
 #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>
@@ -85,7 +76,7 @@ netsnmp_feature_child_of(usm_scapi, usm_support)
 #endif
 
 #ifndef NETSNMP_DISABLE_DES
-#ifdef HAVE_STRUCT_DES_KS_STRUCT_WEAK_KEY
+#ifdef STRUCT_DES_KS_STRUCT_HAS_WEAK_KEY
 /* these are older names for newer structures that exist in openssl .9.7 */
 #define DES_key_schedule    des_key_schedule 
 #define DES_cblock          des_cblock 
@@ -98,9 +89,6 @@ netsnmp_feature_child_of(usm_scapi, usm_support)
 
 #endif /* HAVE_OPENSSL */
 
-#ifdef NETSNMP_USE_INTERNAL_CRYPTO
-#endif
-
 #ifdef NETSNMP_USE_PKCS11
 #include <security/cryptoki.h>
 #endif
@@ -114,15 +102,6 @@ netsnmp_feature_child_of(usm_scapi, usm_support)
 	}
 #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):
@@ -150,8 +129,6 @@ sc_get_properlength(const oid * hashtype, u_int hashtype_len)
     return SNMPERR_GENERR;
 }
 
-netsnmp_feature_child_of(scapi_get_proper_priv_length, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_SCAPI_GET_PROPER_PRIV_LENGTH
 int
 sc_get_proper_priv_length(const oid * privtype, u_int privtype_len)
 {
@@ -168,7 +145,6 @@ sc_get_proper_priv_length(const oid * privtype, u_int privtype_len)
 #endif
     return properlength;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SCAPI_GET_PROPER_PRIV_LENGTH */
 
 
 /*******************************************************************-o-******
@@ -182,15 +158,15 @@ sc_init(void)
 {
     int             rval = SNMPERR_SUCCESS;
 
-#if !defined(NETSNMP_USE_OPENSSL)
-#if defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
+#ifndef NETSNMP_USE_OPENSSL
+#ifdef NETSNMP_USE_INTERNAL_MD5
     struct timeval  tv;
 
     DEBUGTRACE;
 
     gettimeofday(&tv, (struct timezone *) 0);
 
-    srandom((unsigned)(tv.tv_sec ^ tv.tv_usec));
+    srandom(tv.tv_sec ^ tv.tv_usec);
 #elif NETSNMP_USE_PKCS11
     DEBUGTRACE;
     rval = pkcs_init();
@@ -217,10 +193,10 @@ sc_init(void)
  */
 int
 sc_random(u_char * buf, size_t * buflen)
-#if defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
+#if defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11)
 {
     int             rval = SNMPERR_SUCCESS;
-#if !defined(NETSNMP_USE_OPENSSL) && !defined(NETSNMP_USE_PKCS11)
+#ifdef NETSNMP_USE_INTERNAL_MD5
     int             i;
     int             rndval;
     u_char         *ucp = buf;
@@ -286,18 +262,17 @@ _SCAPI_NOT_CONFIGURED
  */
 int
 sc_generate_keyed_hash(const oid * authtype, size_t authtypelen,
-                       const u_char * key, u_int keylen,
-                       const u_char * message, u_int msglen,
+                       u_char * key, u_int keylen,
+                       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) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
+#if  defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11)
 {
     int             rval = SNMPERR_SUCCESS;
-    int             iproperlength;
-    size_t          properlength;
+    int             properlength;
 
     u_char          buf[SNMP_MAXBUF_SMALL];
 #if  defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11)
-    unsigned int    buf_len = sizeof(buf);
+    size_t             buf_len = sizeof(buf);
 #endif
 
     DEBUGTRACE;
@@ -322,11 +297,11 @@ sc_generate_keyed_hash(const oid * authtype, size_t authtypelen,
         QUITFUN(SNMPERR_GENERR, sc_generate_keyed_hash_quit);
     }
 
-    iproperlength = sc_get_properlength(authtype, authtypelen);
-    if (iproperlength == SNMPERR_GENERR)
-        return SNMPERR_GENERR;
-    properlength = (size_t)iproperlength;
-    if (keylen < properlength) {
+    properlength = sc_get_properlength(authtype, authtypelen);
+    if (properlength == SNMPERR_GENERR)
+        return properlength;
+
+    if (((int) keylen < properlength)) {
         QUITFUN(SNMPERR_GENERR, sc_generate_keyed_hash_quit);
     }
 #ifdef NETSNMP_USE_OPENSSL
@@ -343,10 +318,10 @@ sc_generate_keyed_hash(const oid * authtype, size_t authtypelen,
     else {
         QUITFUN(SNMPERR_GENERR, sc_generate_keyed_hash_quit);
     }
-    if (buf_len != properlength) {
+    if ((int)buf_len != properlength) {
         QUITFUN(rval, sc_generate_keyed_hash_quit);
     }
-    if (*maclen > buf_len)
+    if ((int)*maclen > buf_len)
         *maclen = buf_len;
     memcpy(MAC, buf, *maclen);
 
@@ -376,25 +351,8 @@ sc_generate_keyed_hash(const oid * authtype, size_t authtypelen,
         *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 (*maclen > properlength)
+    if ((int) *maclen > properlength)
         *maclen = properlength;
     if (MDsign(message, msglen, MAC, *maclen, key, keylen)) {
         rval = SNMPERR_GENERR;
@@ -414,7 +372,7 @@ sc_generate_keyed_hash(const oid * authtype, size_t authtypelen,
 #endif                          /* NETSNMP_ENABLE_TESTING_CODE */
 
   sc_generate_keyed_hash_quit:
-    memset(buf, 0, SNMP_MAXBUF_SMALL);
+    SNMP_ZERO(buf, SNMP_MAXBUF_SMALL);
     return rval;
 }                               /* end sc_generate_keyed_hash() */
 
@@ -440,33 +398,28 @@ sc_generate_keyed_hash(const oid * authtype, size_t authtypelen,
  * SNMP_SC_GENERAL_FAILURE      Any error.
  */
 int
-sc_hash(const oid * hashtype, size_t hashtypelen, const u_char * buf,
+sc_hash(const oid * hashtype, size_t hashtypelen, 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) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
+#if defined(NETSNMP_USE_INTERNAL_MD5) || 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)
+    int            rval = SNMPERR_SUCCESS;
     unsigned int   tmp_len;
 #endif
     int            ret;
 
 #ifdef NETSNMP_USE_OPENSSL
     const EVP_MD   *hashfn;
-    EVP_MD_CTX     *cptr;
-#endif
-#ifdef NETSNMP_USE_INTERNAL_CRYPTO
-    MD5_CTX        cmd5;
-    SHA_CTX        csha1;
+    EVP_MD_CTX     ctx, *cptr;
 #endif
+
     DEBUGTRACE;
 
-    if (hashtype == NULL || buf == NULL || buf_len <= 0 ||
-        MAC == NULL || MAC_len == NULL )
+    if (hashtype == NULL || hashtypelen < 0 || buf == NULL ||
+        buf_len <= 0 || MAC == NULL || MAC_len == NULL )
         return (SNMPERR_GENERR);
     ret = sc_get_properlength(hashtype, hashtypelen);
-    if (( ret < 0 ) || (*MAC_len < (size_t)ret ))
+    if (( ret < 0 ) || (*MAC_len < ret ))
         return (SNMPERR_GENERR);
 
 #ifdef NETSNMP_USE_OPENSSL
@@ -485,56 +438,42 @@ sc_hash(const oid * hashtype, size_t hashtypelen, const u_char * buf,
     }
 
 /** initialize the pointer */
-#ifdef HAVE_EVP_MD_CTX_CREATE
-    cptr = EVP_MD_CTX_create();
-#else
-    cptr = malloc(sizeof(*cptr));
+    memset(&ctx, 0, sizeof(ctx));
+    cptr = &ctx;
 #if defined(OLD_DES)
-    memset(cptr, 0, sizeof(*cptr));
-#else
-    EVP_MD_CTX_init(cptr);
-#endif
-#endif
     EVP_DigestInit(cptr, hashfn);
+#else /* !OLD_DES */
+    /* this is needed if the runtime library is different than the compiled
+       library since the openssl versions are very different. */
+    if (SSLeay() < 0x907000) {
+        /* the old version of the struct was bigger and thus more
+           memory is needed. should be 152, but we use 256 for safety. */
+        cptr = (EVP_MD_CTX *)malloc(256);
+        EVP_DigestInit(cptr, hashfn);
+    } else {
+        EVP_MD_CTX_init(cptr);
+        EVP_DigestInit(cptr, hashfn);
+    }
+#endif
 
 /** pass the data */
     EVP_DigestUpdate(cptr, buf, buf_len);
 
 /** do the final pass */
+#if defined(OLD_DES)
     EVP_DigestFinal(cptr, MAC, &tmp_len);
     *MAC_len = tmp_len;
-#ifdef HAVE_EVP_MD_CTX_DESTROY
-    EVP_MD_CTX_destroy(cptr);
-#else
-#if !defined(OLD_DES)
-    EVP_MD_CTX_cleanup(cptr);
-#endif
-    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 /* !OLD_DES */
+    if (SSLeay() < 0x907000) {
+        EVP_DigestFinal(cptr, MAC, &tmp_len);
+        *MAC_len = tmp_len;
+        free(cptr);
     } else {
-        return (SNMPERR_GENERR);
+        EVP_DigestFinal_ex(cptr, MAC, &tmp_len);
+        *MAC_len = tmp_len;
+        EVP_MD_CTX_cleanup(cptr);
     }
+#endif                          /* OLD_DES */
     return (rval);
 #elif NETSNMP_USE_PKCS11                  /* NETSNMP_USE_PKCS11 */
 
@@ -592,10 +531,10 @@ _SCAPI_NOT_CONFIGURED
  */
 int
 sc_check_keyed_hash(const oid * authtype, size_t authtypelen,
-                    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)
+                    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)
 {
     int             rval = SNMPERR_SUCCESS;
     size_t          buf_len = SNMP_MAXBUF_SMALL;
@@ -623,11 +562,10 @@ sc_check_keyed_hash(const oid * authtype, size_t authtypelen,
         QUITFUN(SNMPERR_GENERR, sc_check_keyed_hash_quit);
     }
 
-
     if (maclen != USM_MD5_AND_SHA_AUTH_LEN) {
         QUITFUN(SNMPERR_GENERR, sc_check_keyed_hash_quit);
     }
-    
+
     /*
      * Generate a full hash of the message, then compare
      * the result with the given MAC which may shorter than
@@ -647,7 +585,7 @@ sc_check_keyed_hash(const oid * authtype, size_t authtypelen,
 
 
   sc_check_keyed_hash_quit:
-    memset(buf, 0, SNMP_MAXBUF_SMALL);
+    SNMP_ZERO(buf, SNMP_MAXBUF_SMALL);
 
     return rval;
 
@@ -685,9 +623,9 @@ int
 sc_encrypt(const oid * privtype, size_t privtypelen,
            u_char * key, u_int keylen,
            u_char * iv, u_int ivlen,
-           const u_char * plaintext, u_int ptlen,
+           u_char * plaintext, u_int ptlen,
            u_char * ciphertext, size_t * ctlen)
-#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
+#if defined(NETSNMP_USE_OPENSSL)
 {
     int             rval = SNMPERR_SUCCESS;
     u_int           properlength = 0, properlength_iv = 0;
@@ -960,7 +898,7 @@ sc_decrypt(const oid * privtype, size_t privtypelen,
            u_char * iv, u_int ivlen,
            u_char * ciphertext, u_int ctlen,
            u_char * plaintext, size_t * ptlen)
-#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
+#ifdef NETSNMP_USE_OPENSSL
 {
 
     int             rval = SNMPERR_SUCCESS;
@@ -1140,220 +1078,3 @@ sc_decrypt(const oid * privtype, size_t privtypelen,
 #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 */
-#endif /*  NETSNMP_FEATURE_REMOVE_USM_SCAPI  */
diff --git a/snmplib/snmp-tc.c b/snmplib/snmp-tc.c
index 891c3a0..9622e45 100644
--- a/snmplib/snmp-tc.c
+++ b/snmplib/snmp-tc.c
@@ -5,8 +5,10 @@
 
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <sys/types.h>
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -14,12 +16,16 @@
 #if HAVE_STRING_H
 #include <string.h>
 #endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
+#if 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 <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -33,14 +39,6 @@
 #include <net-snmp/library/snmp-tc.h>   /* for "internal" definitions */
 #include <net-snmp/library/snmp_api.h>
 
-netsnmp_feature_child_of(snmp_tc_all, libnetsnmp)
-
-netsnmp_feature_child_of(netsnmp_dateandtime_set_buf_from_vars, netsnmp_unused)
-netsnmp_feature_child_of(date_n_time, snmp_tc_all)
-netsnmp_feature_child_of(ctime_to_timet, snmp_tc_all)
-netsnmp_feature_child_of(check_rowstatus_with_storagetype_transition, snmp_tc_all)
-
-#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_DATEANDTIME_SET_BUF_FROM_VARS
 /*
   DateAndTime ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "2d-1d-1d,1d:1d:1d.1d,1a1d:1d"
@@ -121,11 +119,9 @@ netsnmp_dateandtime_set_buf_from_vars(u_char *buf, size_t *bufsize,
 
     return SNMPERR_SUCCESS;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_NETSNMP_DATEANDTIME_SET_BUF_FROM_VARS */
 
-#ifndef NETSNMP_FEATURE_REMOVE_DATE_N_TIME
 u_char         *
-date_n_time(const time_t * when, size_t * length)
+date_n_time(time_t * when, size_t * length)
 {
     struct tm      *tm_p;
     static u_char   string[11];
@@ -163,15 +159,15 @@ date_n_time(const time_t * when, size_t * length)
     string[7] = 0;
     *length = 8;
 
-#if defined(HAVE_STRUCT_TM_TM_GMTOFF) || defined(HAVE_TIMEZONE_VARIABLE)
+#ifndef cygwin
     /*
      * Timezone offset
      */
     {
-#ifdef HAVE_STRUCT_TM_TM_GMTOFF
-    const int tzoffset = -tm_p->tm_gmtoff;   /* Seconds east of UTC */
+#ifdef STRUCT_TM_HAS_TM_GMTOFF
+    const int tzoffset = tm_p->tm_gmtoff;
 #else
-    const int tzoffset = timezone;           /* Seconds west of UTC */
+    const int tzoffset = timezone;
 #endif
     if (tzoffset > 0)
         string[8] = '-';
@@ -183,7 +179,7 @@ date_n_time(const time_t * when, size_t * length)
     }
 #endif
 
-#if defined(SYSV) && !HAVE_STRUCT_TM_TM_GMTOFF
+#ifdef SYSV
     /*
      * Daylight saving time
      */
@@ -203,11 +199,10 @@ date_n_time(const time_t * when, size_t * length)
 
     return string;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_DATE_N_TIME */
 
-#ifndef NETSNMP_FEATURE_REMOVE_CTIME_TO_TIMET
+
 time_t
-ctime_to_timet(const char *str)
+ctime_to_timet(char *str)
 {
     struct tm       tm;
 
@@ -263,10 +258,9 @@ ctime_to_timet(const char *str)
 
     return (mktime(&tm));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CTIME_TO_TIMET */
 
 /*
- * blatantly lifted from opensnmp 
+ * blatantly lifted from opensmp 
  */
 char
 check_rowstatus_transition(int oldValue, int newValue)
@@ -376,13 +370,16 @@ check_rowstatus_transition(int oldValue, int newValue)
     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;
@@ -395,6 +392,13 @@ check_rowstatus_transition(int oldValue, int newValue)
         break;
 
     case RS_CREATEANDGO:
+        if (oldValue != RS_NONEXISTENT)
+            /*
+             * impossible, we already exist. 
+             */
+            return SNMP_ERR_INCONSISTENTVALUE;
+        break;
+
     case RS_CREATEANDWAIT:
         if (oldValue != RS_NONEXISTENT)
             /*
@@ -414,25 +418,6 @@ check_rowstatus_transition(int oldValue, int newValue)
     return SNMP_ERR_NOERROR;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_CHECK_ROWSTATUS_WITH_STORAGETYPE_TRANSITION
-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);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_CHECK_ROWSTATUS_WITH_STORAGETYPE_TRANSITION */
-
-netsnmp_feature_child_of(check_storage_transition, snmp_tc_all)
-#ifndef NETSNMP_FEATURE_REMOVE_CHECK_STORAGE_TRANSITION
 char
 check_storage_transition(int oldValue, int newValue)
 {
@@ -473,4 +458,3 @@ check_storage_transition(int oldValue, int newValue)
 
     return SNMP_ERR_NOERROR;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CHECK_STORAGE_TRANSITION */
diff --git a/snmplib/snmp.c b/snmplib/snmp.c
index c3763e9..020ec90 100644
--- a/snmplib/snmp.c
+++ b/snmplib/snmp.c
@@ -51,6 +51,9 @@ SOFTWARE.
 #ifdef HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #ifndef NULL
 #define NULL 0
 #endif
@@ -87,11 +90,10 @@ SOFTWARE.
 */
 
 void
-xdump(const void * data, size_t length, const char *prefix)
+xdump(const u_char * cp, size_t length, const char *prefix)
 {
-    const u_char * const cp = (const u_char*)data;
-    int                  col, count;
-    char                *buffer;
+    int             col, count;
+    char           *buffer;
 
     buffer = (char *) malloc(strlen(prefix) + 80);
     if (!buffer) {
diff --git a/snmplib/snmpAAL5PVCDomain.c b/snmplib/snmpAAL5PVCDomain.c
new file mode 100644
index 0000000..2243ad8
--- /dev/null
+++ b/snmplib/snmpAAL5PVCDomain.c
@@ -0,0 +1,357 @@
+#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
+#include <atm.h>
+
+#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/snmpAAL5PVCDomain.h>
+
+
+oid netsnmp_AAL5PVCDomain[10] = { NETSNMP_ENTERPRISE_MIB, 3, 3, 3 };
+static netsnmp_tdomain aal5pvcDomain;
+
+
+/*
+ * Return a string representing the address in data, or else the "far end"
+ * address if data is NULL.  
+ */
+
+static char *
+netsnmp_aal5pvc_fmtaddr(netsnmp_transport *t, void *data, int len)
+{
+    struct sockaddr_atmpvc *to = NULL;
+
+    if (data != NULL && len == sizeof(struct sockaddr_atmpvc)) {
+        to = (struct sockaddr_atmpvc *) data;
+    } else if (t != NULL && t->data != NULL &&
+               t->data_length == sizeof(struct sockaddr_atmpvc)) {
+        to = (struct sockaddr_atmpvc *) t->data;
+    }
+    if (to == NULL) {
+        return strdup("AAL5 PVC: unknown");
+    } else {
+        char tmp[64];
+        sprintf(tmp, "AAL5 PVC: %hd.%hd.%d", to->sap_addr.itf,
+                to->sap_addr.vpi, to->sap_addr.vci);
+        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_aal5pvc_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, 0);
+	    if (rc < 0 && errno != EINTR) {
+		break;
+	    }
+	}
+
+        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);
+        } else {
+            DEBUGMSGTL(("netsnmp_aal5pvc", "recv on fd %d err %d (\"%s\")\n", 
+			t->sock, errno, strerror(errno)));
+        }
+        *opaque = NULL;
+        *olength = 0;
+    }
+    return rc;
+}
+
+
+
+static int
+netsnmp_aal5pvc_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_atmpvc)) {
+        to = (struct sockaddr *) (*opaque);
+    } else if (t != NULL && t->data != NULL &&
+               t->data_length == sizeof(struct sockaddr_atmpvc)) {
+        to = (struct sockaddr *) (t->data);
+    }
+
+    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);
+	while (rc < 0) {
+	    rc = sendto(t->sock, buf, size, 0, NULL, 0);
+	    if (rc < 0 && errno != EINTR) {
+		break;
+	    }
+	}
+    }
+    return rc;
+}
+
+
+
+static int
+netsnmp_aal5pvc_close(netsnmp_transport *t)
+{
+    int rc = -1;
+
+    if (t->sock >= 0) {
+        DEBUGMSGTL(("netsnmp_aal5pvc", "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 an AAL5 PVC transport for SNMP.  Local is TRUE if addr is the local 
+ * NSAP to bind to (i.e. this is a server-type session); otherwise addr is 
+ * the remote NSAP to send things to.  
+ */
+
+netsnmp_transport *
+netsnmp_aal5pvc_transport(struct sockaddr_atmpvc *addr, int local)
+{
+    char           *str = NULL;
+    struct atm_qos  qos;
+    netsnmp_transport *t = NULL;
+
+    if (addr == NULL || addr->sap_family != AF_ATMPVC) {
+        return NULL;
+    }
+
+    t = (netsnmp_transport *) malloc(sizeof(netsnmp_transport));
+    if (t == NULL) {
+        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);
+
+    memset(t, 0, sizeof(netsnmp_transport));
+
+    t->domain = netsnmp_AAL5PVCDomain;
+    t->domain_length =
+        sizeof(netsnmp_AAL5PVCDomain) / sizeof(netsnmp_AAL5PVCDomain[0]);
+
+    t->sock = socket(PF_ATMPVC, SOCK_DGRAM, 0);
+    if (t->sock < 0) {
+        DEBUGMSGTL(("netsnmp_aal5pvc","socket failed (%s)\n",strerror(errno)));
+        netsnmp_transport_free(t);
+        return NULL;
+    }
+    DEBUGMSGTL(("netsnmp_aal5pvc", "fd %d opened\n", t->sock));
+
+    /*
+     * Set up the QOS parameters.  
+     */
+
+    memset(&qos, 0, sizeof(struct atm_qos));
+    qos.aal = ATM_AAL5;
+    qos.rxtp.traffic_class = ATM_UBR;
+    qos.rxtp.max_sdu = SNMP_MAX_LEN;    /*  Hmm -- this is a bit small?  */
+    qos.txtp = qos.rxtp;
+
+    if (setsockopt(t->sock, SOL_ATM, SO_ATMQOS, &qos, sizeof(qos)) < 0) {
+        DEBUGMSGTL(("netsnmp_aal5pvc", "setsockopt failed (%s)\n",
+                    strerror(errno)));
+        netsnmp_aal5pvc_close(t);
+        netsnmp_transport_free(t);
+        return NULL;
+    }
+
+    if (local) {
+        t->local = (unsigned char*)malloc(8);
+        if (t->local == NULL) {
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        t->local[0] = (addr->sap_addr.itf & 0xff00) >> 8;
+        t->local[1] = (addr->sap_addr.itf & 0x00ff) >> 0;
+        t->local[2] = (addr->sap_addr.vpi & 0xff00) >> 8;
+        t->local[3] = (addr->sap_addr.vpi & 0x00ff) >> 0;
+        t->local[4] = (addr->sap_addr.vci & 0xff000000) >> 24;
+        t->local[5] = (addr->sap_addr.vci & 0x00ff0000) >> 16;
+        t->local[6] = (addr->sap_addr.vci & 0x0000ff00) >> 8;
+        t->local[7] = (addr->sap_addr.vci & 0x000000ff) >> 0;
+        t->local_length = 8;
+
+        if (bind(t->sock, (struct sockaddr *) addr,
+                 sizeof(struct sockaddr_atmpvc)) < 0) {
+            DEBUGMSGTL(("netsnmp_aal5pvc", "bind failed (%s)\n",
+                        strerror(errno)));
+            netsnmp_aal5pvc_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+    } else {
+        t->remote = (unsigned char*)malloc(8);
+        if (t->remote == NULL) {
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        t->remote[0] = (addr->sap_addr.itf & 0xff00) >> 8;
+        t->remote[1] = (addr->sap_addr.itf & 0x00ff) >> 0;
+        t->remote[2] = (addr->sap_addr.vpi & 0xff00) >> 8;
+        t->remote[3] = (addr->sap_addr.vpi & 0x00ff) >> 0;
+        t->remote[4] = (addr->sap_addr.vci & 0xff000000) >> 24;
+        t->remote[5] = (addr->sap_addr.vci & 0x00ff0000) >> 16;
+        t->remote[6] = (addr->sap_addr.vci & 0x0000ff00) >> 8;
+        t->remote[7] = (addr->sap_addr.vci & 0x000000ff) >> 0;
+        t->remote_length = 8;
+
+        if (connect(t->sock, (struct sockaddr *) addr,
+                    sizeof(struct sockaddr_atmpvc)) < 0) {
+            DEBUGMSGTL(("netsnmp_aal5pvc", "connect failed (%s)\n",
+                        strerror(errno)));
+            netsnmp_aal5pvc_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+    }
+
+    t->data = malloc(sizeof(struct sockaddr_atmpvc));
+    if (t->data == NULL) {
+        netsnmp_transport_free(t);
+        return NULL;
+    }
+    memcpy(t->data, addr, sizeof(struct sockaddr_atmpvc));
+    t->data_length = sizeof(struct sockaddr_atmpvc);
+
+    /*
+     * 16-bit length field in the trailer, no headers.  
+     */
+
+    t->msgMaxSize = 0xffff;
+    t->f_recv     = netsnmp_aal5pvc_recv;
+    t->f_send     = netsnmp_aal5pvc_send;
+    t->f_close    = netsnmp_aal5pvc_close;
+    t->f_accept   = NULL;
+    t->f_fmtaddr  = netsnmp_aal5pvc_fmtaddr;
+
+    return t;
+}
+
+
+
+netsnmp_transport *
+netsnmp_aal5pvc_create_tstring(const char *str, int local,
+			       const char *default_target)
+{
+    struct sockaddr_atmpvc addr;
+
+    if (str == NULL || *str == '\0')
+	str = default_target;
+
+    if (str != NULL) {
+        addr.sap_family = AF_ATMPVC;
+
+        if (sscanf(str, "%hd.%hd.%d", &(addr.sap_addr.itf),
+                   &(addr.sap_addr.vpi), &(addr.sap_addr.vci)) == 3) {
+            return netsnmp_aal5pvc_transport(&addr, local);
+        } else if (sscanf(str, "%hd.%d", &(addr.sap_addr.vpi),
+                          &(addr.sap_addr.vci)) == 2) {
+            addr.sap_addr.itf = 0;
+            return netsnmp_aal5pvc_transport(&addr, local);
+        } else if (sscanf(str, "%d", &(addr.sap_addr.vci)) == 1) {
+            addr.sap_addr.itf = 0;
+            addr.sap_addr.vpi = 0;
+            return netsnmp_aal5pvc_transport(&addr, local);
+        } else {
+            return NULL;
+        }
+    } else {
+        return NULL;
+    }
+}
+
+
+
+netsnmp_transport *
+netsnmp_aal5pvc_create_ostring(const u_char * o, size_t o_len, int local)
+{
+    struct sockaddr_atmpvc addr;
+
+    if (o_len == 8) {
+        addr.sap_family = AF_ATMPVC;
+        addr.sap_addr.itf = (o[0] << 8) + (o[1] << 0);
+        addr.sap_addr.vpi = (o[2] << 8) + (o[3] << 0);
+        addr.sap_addr.vci =
+	    (o[4] << 24) + (o[5] << 16) + (o[6] << 8) + (o[7] << 0);
+        return netsnmp_aal5pvc_transport(&addr, local);
+    }
+
+    return NULL;
+}
+
+
+
+void
+netsnmp_aal5pvc_ctor(void)
+{
+    aal5pvcDomain.name = netsnmp_AAL5PVCDomain;
+    aal5pvcDomain.name_length = sizeof(netsnmp_AAL5PVCDomain) / sizeof(oid);
+    aal5pvcDomain.prefix = (const char**)calloc(3, sizeof(char *));
+    aal5pvcDomain.prefix[0] = "aal5pvc";
+    aal5pvcDomain.prefix[1] = "pvc";
+
+    aal5pvcDomain.f_create_from_tstring_new = netsnmp_aal5pvc_create_tstring;
+    aal5pvcDomain.f_create_from_ostring = netsnmp_aal5pvc_create_ostring;
+
+    netsnmp_tdomain_register(&aal5pvcDomain);
+}
diff --git a/snmplib/snmpCallbackDomain.c b/snmplib/snmpCallbackDomain.c
new file mode 100644
index 0000000..8ad5bf7
--- /dev/null
+++ b/snmplib/snmpCallbackDomain.c
@@ -0,0 +1,623 @@
+#include <net-snmp/net-snmp-config.h>
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <ctype.h>
+#include <errno.h>
+
+#ifdef WIN32
+#include <net-snmp/library/winpipe.h>
+#endif
+#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_SYS_UN_H
+#include <sys/un.h>
+#endif
+#if HAVE_IO_H
+#include <io.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/config_api.h>
+#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
+#endif
+
+#ifdef NETSNMP_TRANSPORT_CALLBACK_DOMAIN
+
+static netsnmp_transport_list *trlist = NULL;
+
+static int      callback_count = 0;
+
+typedef struct callback_hack_s {
+    void           *orig_transport_data;
+    netsnmp_pdu    *pdu;
+} callback_hack;
+
+typedef struct callback_queue_s {
+    int             callback_num;
+    netsnmp_callback_pass *item;
+    struct callback_queue_s *next, *prev;
+} callback_queue;
+
+callback_queue *thequeue;
+
+static netsnmp_transport *
+find_transport_from_callback_num(int num)
+{
+    static netsnmp_transport_list *ptr;
+    for (ptr = trlist; ptr; ptr = ptr->next)
+        if (((netsnmp_callback_info *) ptr->transport->data)->
+            callback_num == num)
+            return ptr->transport;
+    return NULL;
+}
+
+static void
+callback_debug_pdu(const char *ourstring, netsnmp_pdu *pdu)
+{
+    netsnmp_variable_list *vb;
+    int             i = 1;
+    DEBUGMSGTL((ourstring,
+                "PDU: command = %d, errstat = %d, errindex = %d\n",
+                pdu->command, pdu->errstat, pdu->errindex));
+    for (vb = pdu->variables; vb; vb = vb->next_variable) {
+        DEBUGMSGTL((ourstring, "  var %d:", i++));
+        DEBUGMSGVAR((ourstring, vb));
+        DEBUGMSG((ourstring, "\n"));
+    }
+}
+
+void
+callback_push_queue(int num, netsnmp_callback_pass *item)
+{
+    callback_queue *newitem = SNMP_MALLOC_TYPEDEF(callback_queue);
+    callback_queue *ptr;
+
+    newitem->callback_num = num;
+    newitem->item = item;
+    if (thequeue) {
+        for (ptr = thequeue; ptr && ptr->next; ptr = ptr->next) {
+        }
+        ptr->next = newitem;
+        newitem->prev = ptr;
+    } else {
+        thequeue = newitem;
+    }
+    DEBUGIF("dump_send_callback_transport") {
+        callback_debug_pdu("dump_send_callback_transport", item->pdu);
+    }
+}
+
+netsnmp_callback_pass *
+callback_pop_queue(int num)
+{
+    netsnmp_callback_pass *cp;
+    callback_queue *ptr;
+
+    for (ptr = thequeue; ptr; ptr = ptr->next) {
+        if (ptr->callback_num == num) {
+            if (ptr->prev) {
+                ptr->prev->next = ptr->next;
+            } else {
+                thequeue = ptr->next;
+            }
+            if (ptr->next) {
+                ptr->next->prev = ptr->prev;
+            }
+            cp = ptr->item;
+            SNMP_FREE(ptr);
+            DEBUGIF("dump_recv_callback_transport") {
+                callback_debug_pdu("dump_recv_callback_transport",
+                                   cp->pdu);
+            }
+            return cp;
+        }
+    }
+    return NULL;
+}
+
+/*
+ * Return a string representing the address in data, or else the "far end"
+ * address if data is NULL.  
+ */
+
+char *
+netsnmp_callback_fmtaddr(netsnmp_transport *t, void *data, int len)
+{
+    char buf[SPRINT_MAX_LEN];
+    netsnmp_callback_info *mystuff;
+
+    if (!t)
+        return strdup("callback: unknown");
+
+    mystuff = (netsnmp_callback_info *) t->data;
+
+    if (!mystuff)
+        return strdup("callback: unknown");
+
+    snprintf(buf, SPRINT_MAX_LEN, "callback: %d on fd %d",
+             mystuff->callback_num, mystuff->pipefds[0]);
+    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...  
+ */
+
+int
+netsnmp_callback_recv(netsnmp_transport *t, void *buf, int size,
+		      void **opaque, int *olength)
+{
+    int rc = -1;
+    char newbuf[1];
+    netsnmp_callback_info *mystuff = (netsnmp_callback_info *) t->data;
+
+    DEBUGMSGTL(("transport_callback", "hook_recv enter\n"));
+
+    while (rc < 0) {
+#ifdef WIN32
+	rc = recvfrom(mystuff->pipefds[0], newbuf, 1, 0, NULL, 0);
+#else
+	rc = read(mystuff->pipefds[0], newbuf, 1);
+#endif
+	if (rc < 0 && errno != EINTR) {
+	    break;
+	}
+    }
+
+    if (mystuff->linkedto) {
+        /*
+         * we're the client.  We don't need to do anything. 
+         */
+    } else {
+        /*
+         * malloc the space here, but it's filled in by
+         * snmp_callback_created_pdu() below 
+         */
+        int            *returnnum = (int *) calloc(1, sizeof(int));
+        *opaque = returnnum;
+        *olength = sizeof(int);
+    }
+    DEBUGMSGTL(("transport_callback", "hook_recv exit\n"));
+    return rc;
+}
+
+
+
+int
+netsnmp_callback_send(netsnmp_transport *t, void *buf, int size,
+		      void **opaque, int *olength)
+{
+    int from, rc = -1;
+    netsnmp_callback_info *mystuff = (netsnmp_callback_info *) t->data;
+    netsnmp_callback_pass *cp;
+
+    /*
+     * extract the pdu from the hacked buffer 
+     */
+    netsnmp_transport *other_side;
+    callback_hack  *ch = (callback_hack *) * opaque;
+    netsnmp_pdu    *pdu = ch->pdu;
+    *opaque = ch->orig_transport_data;
+    SNMP_FREE(ch);
+
+    DEBUGMSGTL(("transport_callback", "hook_send enter\n"));
+
+    cp = SNMP_MALLOC_TYPEDEF(netsnmp_callback_pass);
+    if (!cp)
+        return -1;
+
+    cp->pdu = snmp_clone_pdu(pdu);
+    if (cp->pdu->transport_data) {
+        /*
+         * not needed and not properly freed later 
+         */
+        SNMP_FREE(cp->pdu->transport_data);
+    }
+
+    if (cp->pdu->flags & UCD_MSG_FLAG_EXPECT_RESPONSE)
+        cp->pdu->flags ^= UCD_MSG_FLAG_EXPECT_RESPONSE;
+
+    /*
+     * push the sent pdu onto the stack 
+     */
+    /*
+     * AND send a bogus byte to the remote callback receiver's pipe 
+     */
+    if (mystuff->linkedto) {
+        /*
+         * we're the client, send it to the parent 
+         */
+        cp->return_transport_num = mystuff->callback_num;
+
+        other_side = find_transport_from_callback_num(mystuff->linkedto);
+        if (!other_side) {
+            snmp_free_pdu(cp->pdu);
+            SNMP_FREE(cp);
+            return -1;
+        }
+
+	while (rc < 0) {
+#ifdef WIN32
+	    rc = sendto(((netsnmp_callback_info*) other_side->data)->pipefds[1], " ", 1, 0, NULL, 0);
+#else
+	    rc = write(((netsnmp_callback_info *)other_side->data)->pipefds[1],
+		       " ", 1);
+#endif
+	    if (rc < 0 && errno != EINTR) {
+		break;
+	    }
+	}
+        callback_push_queue(mystuff->linkedto, cp);
+        /*
+         * we don't need the transport data any more 
+         */
+        if (*opaque) {
+            SNMP_FREE(*opaque);
+            *opaque = NULL;
+        }
+    } else {
+        /*
+         * we're the server, send it to the person that sent us the request 
+         */
+        from = **((int **) opaque);
+        /*
+         * we don't need the transport data any more 
+         */
+        if (*opaque) {
+            SNMP_FREE(*opaque);
+            *opaque = NULL;
+        }
+        other_side = find_transport_from_callback_num(from);
+        if (!other_side) {
+            snmp_free_pdu(cp->pdu);
+            SNMP_FREE(cp);
+            return -1;
+        }
+	while (rc < 0) {
+#ifdef WIN32
+	    rc = sendto(((netsnmp_callback_info*) other_side->data)->pipefds[1], " ", 1, 0, NULL, 0);
+#else
+	    rc = write(((netsnmp_callback_info *)other_side->data)->pipefds[1],
+		       " ", 1);
+#endif
+	    if (rc < 0 && errno != EINTR) {
+		break;
+	    }
+	}
+        callback_push_queue(from, cp);
+    }
+
+    DEBUGMSGTL(("transport_callback", "hook_send exit\n"));
+    return 0;
+}
+
+
+
+int
+netsnmp_callback_close(netsnmp_transport *t)
+{
+    int             rc;
+    netsnmp_callback_info *mystuff = (netsnmp_callback_info *) t->data;
+    DEBUGMSGTL(("transport_callback", "hook_close enter\n"));
+
+#ifdef WIN32
+    rc  = closesocket(mystuff->pipefds[0]);
+    rc |= closesocket(mystuff->pipefds[1]);
+#else
+    rc  = close(mystuff->pipefds[0]);
+    rc |= close(mystuff->pipefds[1]);
+#endif
+
+    rc |= netsnmp_transport_remove_from_list(&trlist, t);
+
+    DEBUGMSGTL(("transport_callback", "hook_close exit\n"));
+    return rc;
+}
+
+
+
+int
+netsnmp_callback_accept(netsnmp_transport *t)
+{
+    DEBUGMSGTL(("transport_callback", "hook_accept enter\n"));
+    DEBUGMSGTL(("transport_callback", "hook_accept exit\n"));
+    return 0;
+}
+
+
+
+/*
+ * Open a Callback-domain 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
+ * (and we make up a temporary name for the local end of the
+ * connection).  
+ */
+
+netsnmp_transport *
+netsnmp_callback_transport(int to)
+{
+
+    netsnmp_transport *t = NULL;
+    netsnmp_callback_info *mydata;
+    int             rc;
+
+    /*
+     * transport 
+     */
+    t = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
+    if (!t)
+        return NULL;
+
+    /*
+     * our stuff 
+     */
+    mydata = SNMP_MALLOC_TYPEDEF(netsnmp_callback_info);
+    mydata->linkedto = to;
+    mydata->callback_num = ++callback_count;
+    mydata->data = NULL;
+    t->data = mydata;
+
+#ifdef WIN32
+    rc = create_winpipe_transport(mydata->pipefds);
+#else
+    rc = pipe(mydata->pipefds);
+#endif
+    t->sock = mydata->pipefds[0];
+
+    if (rc) {
+        SNMP_FREE(mydata);
+        SNMP_FREE(t);
+        return NULL;
+    }
+
+    t->f_recv    = netsnmp_callback_recv;
+    t->f_send    = netsnmp_callback_send;
+    t->f_close   = netsnmp_callback_close;
+    t->f_accept  = netsnmp_callback_accept;
+    t->f_fmtaddr = netsnmp_callback_fmtaddr;
+
+    netsnmp_transport_add_to_list(&trlist, t);
+
+    if (to)
+        DEBUGMSGTL(("transport_callback", "initialized %d linked to %d\n",
+                    mydata->callback_num, to));
+    else
+        DEBUGMSGTL(("transport_callback",
+                    "initialized master listening on %d\n",
+                    mydata->callback_num));
+    return t;
+}
+
+int
+netsnmp_callback_hook_parse(netsnmp_session * sp,
+                            netsnmp_pdu *pdu,
+                            u_char * packetptr, size_t len)
+{
+    if (SNMP_MSG_RESPONSE == pdu->command ||
+        SNMP_MSG_REPORT == pdu->command)
+        pdu->flags |= UCD_MSG_FLAG_RESPONSE_PDU;
+    else
+        pdu->flags &= (~UCD_MSG_FLAG_RESPONSE_PDU);
+
+    return SNMP_ERR_NOERROR;
+}
+
+int
+netsnmp_callback_hook_build(netsnmp_session * sp,
+                            netsnmp_pdu *pdu, u_char * ptk, size_t * len)
+{
+    /*
+     * very gross hack, as this is passed later to the transport_send
+     * function 
+     */
+    callback_hack  *ch = SNMP_MALLOC_TYPEDEF(callback_hack);
+    DEBUGMSGTL(("transport_callback", "hook_build enter\n"));
+    ch->pdu = pdu;
+    ch->orig_transport_data = pdu->transport_data;
+    pdu->transport_data = ch;
+    switch (pdu->command) {
+    case SNMP_MSG_GETBULK:
+        if (pdu->max_repetitions < 0) {
+            sp->s_snmp_errno = SNMPERR_BAD_REPETITIONS;
+            return -1;
+        }
+        if (pdu->non_repeaters < 0) {
+            sp->s_snmp_errno = SNMPERR_BAD_REPEATERS;
+            return -1;
+        }
+        break;
+    case SNMP_MSG_RESPONSE:
+    case SNMP_MSG_TRAP:
+    case SNMP_MSG_TRAP2:
+        pdu->flags &= (~UCD_MSG_FLAG_EXPECT_RESPONSE);
+        /*
+         * Fallthrough
+         */
+    default:
+        if (pdu->errstat == SNMP_DEFAULT_ERRSTAT)
+            pdu->errstat = 0;
+        if (pdu->errindex == SNMP_DEFAULT_ERRINDEX)
+            pdu->errindex = 0;
+        break;
+    }
+
+    /*
+     * Copy missing values from session defaults
+     */
+    switch (pdu->version) {
+#ifndef NETSNMP_DISABLE_SNMPV1
+    case SNMP_VERSION_1:
+#endif
+#ifndef NETSNMP_DISABLE_SNMPV2C
+    case SNMP_VERSION_2c:
+#endif
+#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
+        if (pdu->community_len == 0) {
+            if (sp->community_len == 0) {
+                sp->s_snmp_errno = SNMPERR_BAD_COMMUNITY;
+                return -1;
+            }
+            pdu->community = (u_char *) malloc(sp->community_len);
+            if (pdu->community == NULL) {
+                sp->s_snmp_errno = SNMPERR_MALLOC;
+                return -1;
+            }
+            memmove(pdu->community,
+                    sp->community, sp->community_len);
+            pdu->community_len = sp->community_len;
+        }
+        break;
+#endif
+    case SNMP_VERSION_3:
+        if (pdu->securityNameLen == 0) {
+	  pdu->securityName = (char *)malloc(sp->securityNameLen);
+            if (pdu->securityName == NULL) {
+                sp->s_snmp_errno = SNMPERR_MALLOC;
+                return -1;
+            }
+            memmove(pdu->securityName,
+                     sp->securityName, sp->securityNameLen);
+            pdu->securityNameLen = sp->securityNameLen;
+        }
+        if (pdu->securityModel == -1)
+            pdu->securityModel = sp->securityModel;
+        if (pdu->securityLevel == 0)
+            pdu->securityLevel = sp->securityLevel;
+        /* WHAT ELSE ?? */
+    }
+    *len = 1;
+    DEBUGMSGTL(("transport_callback", "hook_build exit\n"));
+    return 1;
+}
+
+int
+netsnmp_callback_check_packet(u_char * pkt, size_t len)
+{
+    return 1;
+}
+
+netsnmp_pdu    *
+netsnmp_callback_create_pdu(netsnmp_transport *transport,
+                            void *opaque, size_t olength)
+{
+    netsnmp_pdu    *pdu;
+    netsnmp_callback_pass *cp =
+        callback_pop_queue(((netsnmp_callback_info *) transport->data)->
+                           callback_num);
+    if (!cp)
+        return NULL;
+    pdu = cp->pdu;
+    pdu->transport_data = opaque;
+    pdu->transport_data_length = olength;
+    if (opaque)                 /* if created, we're the server */
+        *((int *) opaque) = cp->return_transport_num;
+    SNMP_FREE(cp);
+    return pdu;
+}
+
+netsnmp_session *
+netsnmp_callback_open(int attach_to,
+                      int (*return_func) (int op,
+                                          netsnmp_session * session,
+                                          int reqid, netsnmp_pdu *pdu,
+                                          void *magic),
+                      int (*fpre_parse) (netsnmp_session *,
+                                         struct netsnmp_transport_s *,
+                                         void *, int),
+                      int (*fpost_parse) (netsnmp_session *, netsnmp_pdu *,
+                                          int))
+{
+    netsnmp_session callback_sess, *callback_ss;
+    netsnmp_transport *callback_tr;
+
+    callback_tr = netsnmp_callback_transport(attach_to);
+    snmp_sess_init(&callback_sess);
+    callback_sess.callback = return_func;
+    if (attach_to) {
+        /*
+         * client 
+         */
+        /*
+         * trysess.community = (u_char *) callback_ss; 
+         */
+    } else {
+        callback_sess.isAuthoritative = SNMP_SESS_AUTHORITATIVE;
+    }
+    callback_sess.remote_port = 0;
+    callback_sess.retries = 0;
+    callback_sess.timeout = 30000000;
+    callback_sess.version = SNMP_DEFAULT_VERSION;       /* (mostly) bogus */
+    callback_ss = snmp_add_full(&callback_sess, callback_tr,
+                                fpre_parse,
+                                netsnmp_callback_hook_parse, fpost_parse,
+                                netsnmp_callback_hook_build,
+                                NULL,
+                                netsnmp_callback_check_packet,
+                                netsnmp_callback_create_pdu);
+    if (callback_ss)
+        callback_ss->local_port =
+            ((netsnmp_callback_info *) callback_tr->data)->callback_num;
+    return callback_ss;
+}
+
+
+
+void
+netsnmp_clear_callback_list(void)
+{
+
+    netsnmp_transport_list *list = trlist, *next = NULL;
+    netsnmp_transport *tr = NULL;
+
+    DEBUGMSGTL(("callback_clear", "called netsnmp_callback_clear_list()\n"));
+    while (list != NULL) {
+	next = list->next;
+	tr = list->transport;
+
+	if (tr != NULL) {
+	    tr->f_close(tr);
+  	    netsnmp_transport_remove_from_list(&trlist, tr);
+	    netsnmp_transport_free(tr);
+	}
+	list = next;
+    }
+    trlist = NULL;
+
+}
+
+#endif /* NETSNMP_TRANSPORT_CALLBACK_DOMAIN */
diff --git a/snmplib/snmpIPXDomain.c b/snmplib/snmpIPXDomain.c
new file mode 100644
index 0000000..c51f107
--- /dev/null
+++ b/snmplib/snmpIPXDomain.c
@@ -0,0 +1,453 @@
+#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_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/snmpIPXDomain.h>
+
+#define SNMP_IPX_DEFAULT_PORT	36879   /*  Specified in RFC 1420.  */
+static netsnmp_tdomain ipxDomain;
+
+/*
+ * Return a string representing the address in data, or else the "far end"
+ * address if data is NULL.  
+ */
+
+static char *
+netsnmp_ipx_fmtaddr(netsnmp_transport *t, void *data, int len)
+{
+    struct sockaddr_ipx *to = NULL;
+
+    if (data != NULL && len == sizeof(struct sockaddr_ipx)) {
+        to = (struct sockaddr_ipx *) data;
+    } else if (t != NULL && t->data != NULL) {
+        to = (struct sockaddr_ipx *) t->data;
+    }
+    if (to == NULL) {
+        return strdup("IPX: unknown");
+    } else {
+        char tmp[64];
+        sprintf(tmp, "IPX: %08X:%02X%02X%02X%02X%02X%02X/%hu",
+                ntohl(to->sipx_network), to->sipx_node[0],
+                to->sipx_node[1], to->sipx_node[2], to->sipx_node[3],
+                to->sipx_node[4], to->sipx_node[5], ntohs(to->sipx_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_ipx_recv(netsnmp_transport *t, void *buf, int size,
+		 void **opaque, int *olength)
+{
+    int		     rc = -1;
+    socklen_t	     fromlen = sizeof(struct sockaddr);
+    struct sockaddr *from;
+
+    if (t != NULL && t->sock >= 0) {
+        from = (struct sockaddr *)malloc(sizeof(struct sockaddr_ipx));
+        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_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)));
+        }
+        *opaque = (void *) from;
+        *olength = sizeof(struct sockaddr_ipx);
+    }
+    return rc;
+}
+
+
+
+static int
+netsnmp_ipx_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_ipx)) {
+        to = (struct sockaddr *) (*opaque);
+    } else if (t != NULL && t->data != NULL &&
+               t->data_length == sizeof(struct sockaddr_ipx)) {
+        to = (struct sockaddr *) (t->data);
+    }
+
+    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);
+	while (rc < 0) {
+	    rc = sendto(t->sock, buf, size, 0, to, sizeof(struct sockaddr));
+	    if (rc < 0 && errno != EINTR) {
+		break;
+	    }
+	}
+    }
+    return rc;
+}
+
+
+
+static int
+netsnmp_ipx_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;
+}
+
+
+
+/*
+ * Open a IPX-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_ipx_transport(struct sockaddr_ipx *addr, int local)
+{
+    netsnmp_transport *t = NULL;
+    int             rc = 0;
+    char           *str = NULL;
+
+    if (addr == NULL || addr->sipx_family != AF_IPX) {
+        return NULL;
+    }
+
+    t = (netsnmp_transport *) malloc(sizeof(netsnmp_transport));
+    if (t == NULL) {
+        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);
+
+    memset(t, 0, sizeof(netsnmp_transport));
+
+    t->domain = netsnmpIPXDomain;
+    t->domain_length = netsnmpIPXDomain_len;
+
+    t->sock = socket(AF_IPX, SOCK_DGRAM, AF_IPX);
+    if (t->sock < 0) {
+        netsnmp_transport_free(t);
+        return NULL;
+    }
+
+    if (local) {
+        t->local = (unsigned char*)malloc(12);
+        if (t->local == NULL) {
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        memcpy(&(t->local[00]), (u_char *) & (addr->sipx_network), 4);
+        memcpy(&(t->local[04]), (u_char *) & (addr->sipx_node), 6);
+        memcpy(&(t->local[10]), (u_char *) & (addr->sipx_port), 2);
+        t->local_length = 12;
+
+        /*
+         * This session is inteneded as a server, so we must bind on to the
+         * given address (which may include a particular network and/or node
+         * address, but definitely includes a port number).
+         */
+
+        rc = bind(t->sock, (struct sockaddr *) addr,
+                  sizeof(struct sockaddr));
+        if (rc != 0) {
+            netsnmp_ipx_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        t->data = NULL;
+        t->data_length = 0;
+    } else {
+        t->remote = (unsigned char*)malloc(12);
+        if (t->remote == NULL) {
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        memcpy(&(t->remote[00]), (u_char *) & (addr->sipx_network), 4);
+        memcpy(&(t->remote[04]), (u_char *) & (addr->sipx_node), 6);
+        memcpy(&(t->remote[10]), (u_char *) & (addr->sipx_port), 2);
+        t->remote_length = 12;
+
+        /*
+         * This is a client session.  Save the address in the
+         * transport-specific data pointer for later use by snmp_ipx_send.
+         */
+
+        t->data = malloc(sizeof(struct sockaddr_ipx));
+        if (t->data == NULL) {
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        memcpy(t->data, addr, sizeof(struct sockaddr_ipx));
+        t->data_length = sizeof(struct sockaddr_ipx);
+    }
+
+    /*
+     * Maximum size of an IPX PDU is 576 bytes including a 30-byte header.
+     * Ridiculous!  
+     */
+
+    t->msgMaxSize = 576 - 30;
+    t->f_recv     = netsnmp_ipx_recv;
+    t->f_send     = netsnmp_ipx_send;
+    t->f_close    = netsnmp_ipx_close;
+    t->f_accept   = NULL;
+    t->f_fmtaddr  = netsnmp_ipx_fmtaddr;
+
+    return t;
+}
+
+
+
+/*
+ * Attempt to parse a string of the form [%08x]:%12x[/%d] where the parts
+ * are the network number, the node address and the port in that order.  
+ */
+
+int
+netsnmp_sockaddr_ipx2(struct sockaddr_ipx *addr, const char *peername,
+		      const char *default_target)
+{
+    char           *input = NULL, *def = NULL;
+    const char     *network, *node, *port;
+    char           *tmp;
+    unsigned long   i;
+
+    if (addr == NULL) {
+        return 0;
+    }
+    memset(addr, 0, sizeof(struct sockaddr_ipx));
+
+    DEBUGMSGTL(("netsnmp_sockaddr_ipx",
+		"addr %p, peername \"%s\" default_target \"%s\"\n",
+                addr, peername ? peername : "[NIL]",
+		default_target ? default_target : "[NIL]"));
+
+    addr->sipx_family = AF_IPX;
+    addr->sipx_type = 4;        /*  Specified in RFC 1420.  */
+
+    network = input = strdup(peername ? peername : "");
+    tmp = strchr(network, ':');
+    if (tmp != NULL) {
+        DEBUGMSGTL(("netsnmp_sockaddr_ipx", "Node identified\n"));
+        *tmp++ = '\0';
+	node = tmp;
+        tmp = strchr(tmp, '/');
+    } else {
+        node = NULL;
+        tmp = strchr(network, '/');
+    }
+    if (tmp != NULL) {
+        DEBUGMSGTL(("netsnmp_sockaddr_ipx", "Port identified\n"));
+        *tmp++ = '\0';
+        port = tmp;
+    } else
+        port = NULL;
+
+    DEBUGMSGTL(("netsnmp_sockaddr_ipx", "Address: %s:%s/%s\n",
+                network ? network : "[NIL]", node ? node : "[NIL]",
+                port ? port : "[NIL]"));
+
+    def = strdup(default_target ? default_target : "");
+    if (network == NULL || *network == '\0')
+        network = def;
+    tmp = strchr(def, ':');
+    if (tmp != NULL) {
+        *tmp++ = '\0';
+	if (node == NULL || *node == '\0')
+            node = tmp;
+        tmp = strchr(tmp, '/');
+    } else
+        tmp = strchr(def, '/');
+    if (tmp != NULL) {
+        *tmp++ = '\0';
+        if (port == NULL || *port == '\0')
+            port = tmp;
+    }
+
+    DEBUGMSGTL(("netsnmp_sockaddr_ipx", "Address: %s:%s/%s\n",
+                network ? network : "[NIL]", node ? node : "[NIL]",
+                port ? port : "[NIL]"));
+
+    if (network == NULL || *network == '\0')
+        network = "0";
+
+    if (node == NULL || *node == '\0')
+        node = "000000000000";
+
+    if (port == NULL || *port == '\0')
+#define val(x) __STRING(x)
+        port = val(SNMP_IPX_DEFAULT_PORT);
+#undef val
+
+    DEBUGMSGTL(("netsnmp_sockaddr_ipx", "Address: %s:%s/%s\n",
+                network ? network : "[NIL]", node ? node : "[NIL]",
+                port ? port : "[NIL]"));
+
+    if(sscanf(network, "%8lx%*c", &i) == 1) {
+        DEBUGMSGTL(("netsnmp_sockaddr_ipx", "network parsed okay\n"));
+        addr->sipx_network = htonl(i);
+    } else {
+        DEBUGMSGTL(("netsnmp_sockaddr_ipx",
+                    "failed to parse network part of address\n"));
+        free(def);
+        free(input);
+        return 0;
+    }
+
+    if(sscanf(node, "%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%*c",
+              &addr->sipx_node[0], &addr->sipx_node[1],
+              &addr->sipx_node[2], &addr->sipx_node[3],
+              &addr->sipx_node[4], &addr->sipx_node[5]) == 6) {
+        DEBUGMSGTL(("netsnmp_sockaddr_ipx", "node parsed okay\n"));
+    } else {
+        DEBUGMSGTL(("netsnmp_sockaddr_ipx",
+                    "failed to parse node part of address\n"));
+        free(def);
+        free(input);
+        return 0;
+    }
+
+    if(sscanf(port, "%lu%*c", &i) == 1) {
+        DEBUGMSGTL(("netsnmp_sockaddr_ipx", "port parsed okay\n"));
+        addr->sipx_port = htons(i);
+    } else {
+        DEBUGMSGTL(("netsnmp_sockaddr_ipx",
+                    "failed to parse port part of address\n"));
+        free(def);
+        free(input);
+        return 0;
+    }
+
+    free(def);
+    free(input);
+    return 1;
+}
+
+
+
+int
+netsnmp_sockaddr_ipx(struct sockaddr_ipx *addr, const char *peername)
+{
+    return netsnmp_sockaddr_ipx2(addr, peername, NULL);
+}
+
+
+
+netsnmp_transport *
+netsnmp_ipx_create_tstring(const char *str, int local,
+			   const char *default_target)
+{
+    struct sockaddr_ipx addr;
+
+    if (netsnmp_sockaddr_ipx2(&addr, str, default_target)) {
+        return netsnmp_ipx_transport(&addr, local);
+    } else {
+        return NULL;
+    }
+}
+
+
+
+netsnmp_transport *
+netsnmp_ipx_create_ostring(const u_char * o, size_t o_len, int local)
+{
+    struct sockaddr_ipx addr;
+
+    if (o_len == 12) {
+        addr.sipx_family = AF_IPX;
+        memcpy((u_char *) & (addr.sipx_network), &(o[00]), 4);
+        memcpy((u_char *) & (addr.sipx_node), &(o[04]), 6);
+        memcpy((u_char *) & (addr.sipx_port), &(o[10]), 2);
+        return netsnmp_ipx_transport(&addr, local);
+    }
+    return NULL;
+}
+
+
+
+void
+netsnmp_ipx_ctor(void)
+{
+    ipxDomain.name = netsnmpIPXDomain;
+    ipxDomain.name_length = netsnmpIPXDomain_len;
+    ipxDomain.prefix = (const char**)calloc(2, sizeof(char *));
+    ipxDomain.prefix[0] = "ipx";
+
+    ipxDomain.f_create_from_tstring_new = netsnmp_ipx_create_tstring;
+    ipxDomain.f_create_from_ostring = netsnmp_ipx_create_ostring;
+
+    netsnmp_tdomain_register(&ipxDomain);
+}
diff --git a/snmplib/snmpSTDDomain.c b/snmplib/snmpSTDDomain.c
new file mode 100644
index 0000000..8a2e6d7
--- /dev/null
+++ b/snmplib/snmpSTDDomain.c
@@ -0,0 +1,284 @@
+#include <net-snmp/net-snmp-config.h>
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <signal.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_DMALLOC_H
+#include <dmalloc.h>
+#endif
+
+#include <net-snmp/types.h>
+#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 };
+static netsnmp_tdomain stdDomain;
+
+/*
+ * Return a string representing the address in data, or else the "far end"
+ * address if data is NULL.  
+ */
+
+static char *
+netsnmp_std_fmtaddr(netsnmp_transport *t, void *data, int len)
+{
+    char *buf;
+    DEBUGMSGTL(("domain:std","formatting addr.  data=%x\n",t->data));
+    if (t->data) {
+        netsnmp_std_data *data = (netsnmp_std_data*)t->data;
+        buf = (char*)malloc(SNMP_MAXBUF_MEDIUM);
+        if (!buf)
+            return strdup("STDInOut");
+        snprintf(buf, SNMP_MAXBUF_MEDIUM, "STD:%s", data->prog);
+        DEBUGMSGTL(("domain:std","  formatted:=%s\n",buf));
+        return buf;
+    }
+    return strdup("STDInOut");
+}
+
+
+
+/*
+ * 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_std_recv(netsnmp_transport *t, void *buf, int size,
+		 void **opaque, int *olength)
+{
+    int rc = -1;
+
+    DEBUGMSGTL(("domain:std","recv on sock %d.  data=%x\n",t->sock, t->data));
+    while (rc < 0) {
+        rc = read(t->sock, buf, size);
+        DEBUGMSGTL(("domain:std","  bytes: %d.\n", rc));
+        if (rc < 0 && errno != EINTR) {
+            DEBUGMSGTL(("netsnmp_std", " read on fd %d failed: %d (\"%s\")\n",
+                        t->sock, errno, strerror(errno)));
+            break;
+        }
+        if (rc == 0) {
+            /* 0 input is probably bad since we selected on it */
+            return -1;
+        }
+        DEBUGMSGTL(("netsnmp_std", "read on stdin got %d bytes\n", rc));
+    }
+
+    return rc;
+}
+
+
+
+static int
+netsnmp_std_send(netsnmp_transport *t, void *buf, int size,
+		 void **opaque, int *olength)
+{
+    int rc = -1;
+
+    DEBUGMSGTL(("domain:std","send on sock.  data=%x\n", t->data));
+    while (rc < 0) {
+        if (t->data) {
+            netsnmp_std_data *data = (netsnmp_std_data*)t->data;
+            rc = write(data->outfd, buf, size);
+        } else {
+            /* straight to stdout */
+            rc = write(1, buf, size);
+        }
+        if (rc < 0 && errno != EINTR) {
+            break;
+        }
+    }
+    return rc;
+}
+
+static int
+netsnmp_std_close(netsnmp_transport *t)
+{
+    DEBUGMSGTL(("domain:std","close.  data=%x\n", t->data));
+    if (t->data) {
+        netsnmp_std_data *data = (netsnmp_std_data*)t->data;
+        close(data->outfd);
+        close(t->sock);
+
+        /* kill the child too */
+        DEBUGMSGTL(("domain:std"," killing %d\n", data->childpid));
+        kill(data->childpid, SIGTERM);
+        sleep(1);
+        kill(data->childpid, SIGKILL);
+        /* XXX: set an alarm to kill harder the child */
+    } else {
+        /* close stdout/in */
+        close(1);
+        close(0);
+    }
+    return 0;
+}
+
+
+
+static int
+netsnmp_std_accept(netsnmp_transport *t)
+{
+    DEBUGMSGTL(("domain:std"," accept data=%x\n", t->data));
+    /* nothing to do here */
+    return 0;
+}
+
+/*
+ * Open a STDIN/STDOUT -based transport for SNMP.
+ */
+
+netsnmp_transport *
+netsnmp_std_transport(const char *instring, size_t instring_len,
+		      const char *default_target)
+{
+    netsnmp_transport *t;
+
+    t = (netsnmp_transport *) malloc(sizeof(netsnmp_transport));
+    if (t == NULL) {
+        return NULL;
+    }
+    memset(t, 0, sizeof(netsnmp_transport));
+
+    t->domain = netsnmp_snmpSTDDomain;
+    t->domain_length =
+        sizeof(netsnmp_snmpSTDDomain) / sizeof(netsnmp_snmpSTDDomain[0]);
+
+    t->sock = 0;
+    t->flags = NETSNMP_TRANSPORT_FLAG_STREAM | NETSNMP_TRANSPORT_FLAG_TUNNELED;
+
+    /*
+     * Message size is not limited by this transport (hence msgMaxSize
+     * is equal to the maximum legal size of an SNMP message).  
+     */
+
+    t->msgMaxSize = 0x7fffffff;
+    t->f_recv     = netsnmp_std_recv;
+    t->f_send     = netsnmp_std_send;
+    t->f_close    = netsnmp_std_close;
+    t->f_accept   = netsnmp_std_accept;
+    t->f_fmtaddr  = netsnmp_std_fmtaddr;
+
+    /*
+     * if instring is not null length, it specifies a path to a prog
+     * XXX: plus args
+     */
+    if (instring_len == 0 && default_target != NULL) {
+	instring = default_target;
+	instring_len = strlen(default_target);
+    }
+
+    if (instring_len != 0) {
+        int infd[2], outfd[2];  /* sockets to and from the client */
+        int childpid;
+
+        if (pipe(infd) || pipe(outfd)) {
+            snmp_log(LOG_ERR,
+                     "Failed to create needed pipes for a STD transport");
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+
+        childpid = fork();
+        /* parentpid => childpid */
+        /* infd[1]   => infd[0] */
+        /* outfd[0]  <= outfd[1] */
+
+        if (childpid) {
+            netsnmp_std_data *data;
+            
+            /* we're in the parent */
+            close(infd[0]);
+            close(outfd[1]);
+
+            data = SNMP_MALLOC_TYPEDEF(netsnmp_std_data);
+            if (!data) {
+                snmp_log(LOG_ERR, "snmpSTDDomain: malloc failed");
+                netsnmp_transport_free(t);
+                return NULL;
+            }
+            t->data = data;
+            t->data_length = sizeof(netsnmp_std_data);
+            t->sock = outfd[0];
+            data->prog = strdup(instring);
+            data->outfd = infd[1];
+            data->childpid = childpid;
+            DEBUGMSGTL(("domain:std","parent.  data=%x\n", t->data));
+        } else {
+            /* we're in the child */
+
+            /* close stdin */
+            close(0);
+            /* copy pipe output to stdout */
+            dup(infd[0]);
+
+            /* close stdout */
+            close(1);
+            /* copy pipe output to stdin */
+            dup(outfd[1]);
+            
+            /* close all the pipes themselves */
+            close(infd[0]);
+            close(infd[1]);
+            close(outfd[0]);
+            close(outfd[1]);
+
+            /* call exec */
+            system(instring);
+            /* XXX: TODO: use exec form instead; needs args */
+            /* execv(instring, NULL); */
+            exit(0);
+
+            /* ack...  we should never ever get here */
+            snmp_log(LOG_ERR, "STD transport returned after execv()\n");
+        }
+    }            
+
+    return t;
+}
+
+netsnmp_transport *
+netsnmp_std_create_tstring(const char *instring, int local,
+			   const char *default_target)
+{
+    return netsnmp_std_transport(instring, strlen(instring), default_target);
+}
+
+netsnmp_transport *
+netsnmp_std_create_ostring(const u_char * o, size_t o_len, int local)
+{
+    return netsnmp_std_transport((const char*)o, o_len, NULL);
+}
+
+void
+netsnmp_std_ctor(void)
+{
+    stdDomain.name = netsnmp_snmpSTDDomain;
+    stdDomain.name_length = sizeof(netsnmp_snmpSTDDomain) / sizeof(oid);
+    stdDomain.prefix = (const char **)calloc(2, sizeof(char *));
+    stdDomain.prefix[0] = "std";
+
+    stdDomain.f_create_from_tstring_new = netsnmp_std_create_tstring;
+    stdDomain.f_create_from_ostring = netsnmp_std_create_ostring;
+
+    netsnmp_tdomain_register(&stdDomain);
+}
diff --git a/snmplib/snmpTCPDomain.c b/snmplib/snmpTCPDomain.c
new file mode 100644
index 0000000..bbdf07f
--- /dev/null
+++ b/snmplib/snmpTCPDomain.c
@@ -0,0 +1,461 @@
+#include <net-snmp/net-snmp-config.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_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/library/snmp_transport.h>
+#include <net-snmp/library/snmpUDPDomain.h>
+#include <net-snmp/library/snmpTCPDomain.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;
+
+oid netsnmp_snmpTCPDomain[] = { TRANSPORT_DOMAIN_TCP_IP };
+static netsnmp_tdomain tcpDomain;
+
+/*
+ * Not static since it is needed here as well as in snmpUDPDomain, but not
+ * public either
+ */
+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.  
+ */
+
+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);
+    }
+}
+
+
+
+/*
+ * 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, 0);
+	    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, sockflags = 0;
+    socklen_t       farendlen = sizeof(struct sockaddr_in);
+    char           *str = NULL;
+
+    addr_pair = (netsnmp_udp_addr_pair *)malloc(sizeof(netsnmp_udp_addr_pair));
+
+    if (addr_pair == NULL) {
+        /*
+         * Indicate that the acceptance of this socket failed.  
+         */
+        DEBUGMSGTL(("netsnmp_tcp", "accept: malloc failed\n"));
+        return -1;
+    }
+    farend = (struct sockaddr *) &(addr_pair->remote_addr);
+
+    if (t != NULL && t->sock >= 0) {
+        newsock = accept(t->sock, farend, &farendlen);
+
+        if (newsock < 0) {
+            DEBUGMSGTL(("netsnmp_tcp", "accept failed rc %d errno %d \"%s\"\n",
+			newsock, errno, strerror(errno)));
+            free(farend);
+            return newsock;
+        }
+
+        if (t->data != NULL) {
+            free(t->data);
+        }
+
+        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);
+
+        /*
+         * Try to make the new socket blocking.  
+         */
+
+#ifdef WIN32
+        ioctlsocket(newsock, FIONBIO, &sockflags);
+#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
+
+        /*
+         * Allow user to override the send and receive buffers. Default is
+         * to use os default.  Don't worry too much about errors --
+         * just plough on regardless.  
+         */
+        netsnmp_sock_buffer_set(newsock, SO_SNDBUF, 1, 0);
+        netsnmp_sock_buffer_set(newsock, SO_RCVBUF, 1, 0);
+
+        return newsock;
+    } else {
+        free(farend);
+        return -1;
+    }
+}
+
+
+
+/*
+ * Open a TCP-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_tcp_transport(struct sockaddr_in *addr, int local)
+{
+    netsnmp_transport *t = NULL;
+    netsnmp_udp_addr_pair *addr_pair = NULL;
+    int rc = 0;
+
+
+    if (addr == NULL || addr->sin_family != AF_INET) {
+        return NULL;
+    }
+
+    t = (netsnmp_transport *) malloc(sizeof(netsnmp_transport));
+    if (t == NULL) {
+        return NULL;
+    }
+    memset(t, 0, sizeof(netsnmp_transport));
+
+    addr_pair = (netsnmp_udp_addr_pair *)malloc(sizeof(netsnmp_udp_addr_pair));
+    if (addr_pair == NULL) {
+        netsnmp_transport_free(t);
+        return NULL;
+    }
+    t->data = addr_pair;
+    t->data_length = sizeof(netsnmp_udp_addr_pair);
+    memcpy(&(addr_pair->remote_addr), addr, sizeof(struct sockaddr_in));
+
+    t->domain = netsnmp_snmpTCPDomain;
+    t->domain_length =
+        sizeof(netsnmp_snmpTCPDomain) / sizeof(netsnmp_snmpTCPDomain[0]);
+
+    t->sock = socket(PF_INET, SOCK_STREAM, 0);
+    if (t->sock < 0) {
+        netsnmp_transport_free(t);
+        return NULL;
+    }
+
+    t->flags = NETSNMP_TRANSPORT_FLAG_STREAM;
+
+    if (local) {
+        int sockflags = 0, opt = 1;
+
+        /*
+         * This session is inteneded as a server, so we must bind to the given 
+         * IP address (which may include an interface address, or could be
+         * INADDR_ANY, but will always include a port number.  
+         */
+
+        t->flags |= NETSNMP_TRANSPORT_FLAG_LISTEN;
+        t->local = (u_char *)malloc(6);
+        if (t->local == NULL) {
+            netsnmp_tcp_close(t);
+            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;
+
+        /*
+         * We should set SO_REUSEADDR too.  
+         */
+
+        setsockopt(t->sock, SOL_SOCKET, SO_REUSEADDR, (void *)&opt,
+		   sizeof(opt));
+
+        rc = bind(t->sock, (struct sockaddr *)addr, sizeof(struct sockaddr));
+        if (rc != 0) {
+            netsnmp_tcp_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
+         * 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
+        opt = 1;
+        ioctlsocket(t->sock, FIONBIO, &opt);
+#else
+        sockflags = fcntl(t->sock, F_GETFL, 0);
+        fcntl(t->sock, F_SETFL, sockflags | O_NONBLOCK);
+#endif
+
+        /*
+         * Now sit here and wait for connections to arrive.  
+         */
+
+        rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
+        if (rc != 0) {
+            netsnmp_tcp_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        
+        /*
+         * no buffer size on listen socket - doesn't make sense
+         */
+
+    } else {
+      t->remote = (u_char *)malloc(6);
+        if (t->remote == NULL) {
+            netsnmp_tcp_close(t);
+            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;
+
+        /*
+         * This is a client-type session, so attempt to connect to the far
+         * end.  We don't go non-blocking here because it's not obvious what
+         * you'd then do if you tried to do snmp_sends before the connection
+         * had completed.  So this can block.
+         */
+
+        rc = connect(t->sock, (struct sockaddr *)addr,
+		     sizeof(struct sockaddr));
+
+        if (rc < 0) {
+            netsnmp_tcp_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+
+        /*
+         * Allow user to override the send and receive buffers. Default is
+         * to use os default.  Don't worry too much about errors --
+         * just plough on regardless.  
+         */
+        netsnmp_sock_buffer_set(t->sock, SO_SNDBUF, local, 0);
+        netsnmp_sock_buffer_set(t->sock, SO_RCVBUF, local, 0);
+    }
+
+    /*
+     * Message size is not limited by this transport (hence msgMaxSize
+     * is equal to the maximum legal size of an SNMP message).  
+     */
+
+    t->msgMaxSize = 0x7fffffff;
+    t->f_recv     = netsnmp_tcp_recv;
+    t->f_send     = netsnmp_tcp_send;
+    t->f_close    = netsnmp_tcp_close;
+    t->f_accept   = netsnmp_tcp_accept;
+    t->f_fmtaddr  = netsnmp_tcp_fmtaddr;
+
+    return t;
+}
+
+
+
+netsnmp_transport *
+netsnmp_tcp_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_tcp_transport(&addr, local);
+    } else {
+        return NULL;
+    }
+}
+
+
+
+netsnmp_transport *
+netsnmp_tcp_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_tcp_transport(&addr, local);
+    }
+    return NULL;
+}
+
+
+
+void
+netsnmp_tcp_ctor(void)
+{
+    tcpDomain.name = netsnmp_snmpTCPDomain;
+    tcpDomain.name_length = sizeof(netsnmp_snmpTCPDomain) / sizeof(oid);
+    tcpDomain.prefix = (const char **)calloc(2, sizeof(char *));
+    tcpDomain.prefix[0] = "tcp";
+
+    tcpDomain.f_create_from_tstring_new = netsnmp_tcp_create_tstring;
+    tcpDomain.f_create_from_ostring = netsnmp_tcp_create_ostring;
+
+    netsnmp_tdomain_register(&tcpDomain);
+}
diff --git a/snmplib/snmpTCPIPv6Domain.c b/snmplib/snmpTCPIPv6Domain.c
new file mode 100644
index 0000000..8a0ec52
--- /dev/null
+++ b/snmplib/snmpTCPIPv6Domain.c
@@ -0,0 +1,481 @@
+#include <net-snmp/net-snmp-config.h>
+
+#ifdef NETSNMP_TRANSPORT_TCPIPV6_DOMAIN
+
+#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 defined(HAVE_WINSOCK_H)
+    /*
+     * Windows IPv6 support is part of WinSock2 only
+     */
+#include <winsock2.h>
+#include <ws2tcpip.h>
+
+extern const char *inet_ntop(int, const void*, char*, size_t);
+
+#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_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/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>
+
+oid netsnmp_TCPIPv6Domain[] = { TRANSPORT_DOMAIN_TCP_IPV6 };
+static netsnmp_tdomain tcp6Domain;
+
+/*
+ * Return a string representing the address in data, or else the "far end"
+ * address if data is NULL.  
+ */
+
+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, 0);
+	    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;
+}
+
+static int
+netsnmp_tcp6_accept(netsnmp_transport *t)
+{
+    struct sockaddr_in6 *farend = NULL;
+    int             newsock = -1, sockflags = 0;
+    socklen_t       farendlen = sizeof(struct sockaddr_in6);
+    char           *str = NULL;
+
+    farend = (struct sockaddr_in6 *) malloc(sizeof(struct sockaddr_in6));
+
+    if (farend == NULL) {
+        /*
+         * Indicate that the acceptance of this socket failed.  
+         */
+        DEBUGMSGTL(("netsnmp_tcp6", "accept: malloc failed\n"));
+        return -1;
+    }
+
+    if (t != NULL && t->sock >= 0) {
+        newsock = accept(t->sock, (struct sockaddr *) farend, &farendlen);
+
+        if (newsock < 0) {
+            DEBUGMSGTL(("netsnmp_tcp6","accept failed rc %d errno %d \"%s\"\n",
+			newsock, errno, strerror(errno)));
+            free(farend);
+            return newsock;
+        }
+
+        if (t->data != NULL) {
+            free(t->data);
+        }
+
+        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);
+
+        /*
+         * Try to make the new socket blocking.  
+         */
+
+#ifdef WIN32
+        ioctlsocket(newsock, FIONBIO, &sockflags);
+#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
+
+        /*
+         * Allow user to override the send and receive buffers. Default is
+         * to use os default.  Don't worry too much about errors --
+         * just plough on regardless.  
+         */
+        netsnmp_sock_buffer_set(newsock, SO_SNDBUF, 1, 0);
+        netsnmp_sock_buffer_set(newsock, SO_RCVBUF, 1, 0);
+
+        return newsock;
+    } else {
+        free(farend);
+        return -1;
+    }
+}
+
+
+
+/*
+ * Open a TCP/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_tcp6_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;
+    }
+    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);
+
+    memset(t, 0, sizeof(netsnmp_transport));
+
+    t->data = malloc(sizeof(struct sockaddr_in6));
+    if (t->data == NULL) {
+        netsnmp_transport_free(t);
+        return NULL;
+    }
+    t->data_length = sizeof(struct sockaddr_in6);
+    memcpy(t->data, addr, sizeof(struct sockaddr_in6));
+
+    t->domain = netsnmp_TCPIPv6Domain;
+    t->domain_length = sizeof(netsnmp_TCPIPv6Domain) / sizeof(oid);
+
+    t->sock = socket(PF_INET6, SOCK_STREAM, 0);
+    if (t->sock < 0) {
+        netsnmp_transport_free(t);
+        return NULL;
+    }
+
+    t->flags = NETSNMP_TRANSPORT_FLAG_STREAM;
+
+    if (local) {
+        int sockflags = 0, opt = 1;
+
+        /*
+         * 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
+
+        t->flags |= NETSNMP_TRANSPORT_FLAG_LISTEN;
+        t->local = (unsigned char*)malloc(18);
+        if (t->local == NULL) {
+            netsnmp_tcp6_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;
+
+        /*
+         * We should set SO_REUSEADDR too.  
+         */
+
+        setsockopt(t->sock, SOL_SOCKET, SO_REUSEADDR, (void *)&opt, sizeof(opt));
+
+        rc = bind(t->sock, (struct sockaddr *) addr,
+		  sizeof(struct sockaddr_in6));
+        if (rc != 0) {
+            netsnmp_tcp6_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
+         * 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
+        opt = 1;
+        ioctlsocket(t->sock, FIONBIO, &opt);
+#else
+        sockflags = fcntl(t->sock, F_GETFL, 0);
+        fcntl(t->sock, F_SETFL, sockflags | O_NONBLOCK);
+#endif
+
+        /*
+         * Now sit here and wait for connections to arrive.  
+         */
+
+        rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
+        if (rc != 0) {
+            netsnmp_tcp6_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        
+        /*
+         * no buffer size on listen socket - doesn't make sense
+         */
+
+    } else {
+        t->remote = (unsigned char*)malloc(18);
+        if (t->remote == NULL) {
+            netsnmp_tcp6_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;
+
+        /*
+         * This is a client-type session, so attempt to connect to the far
+         * end.  We don't go non-blocking here because it's not obvious what
+         * you'd then do if you tried to do snmp_sends before the connection
+         * had completed.  So this can block.
+         */
+
+        rc = connect(t->sock, (struct sockaddr *) addr,
+                     sizeof(struct sockaddr_in6));
+
+        DEBUGMSGTL(("netsnmp_tcp6", "connect returns %d\n", rc));
+
+        if (rc < 0) {
+            netsnmp_tcp6_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+
+        /*
+         * Allow user to override the send and receive buffers. Default is
+         * to use os default.  Don't worry too much about errors --
+         * just plough on regardless.  
+         */
+        netsnmp_sock_buffer_set(t->sock, SO_SNDBUF, local, 0);
+        netsnmp_sock_buffer_set(t->sock, SO_RCVBUF, local, 0);
+    }
+
+    /*
+     * Message size is not limited by this transport (hence msgMaxSize
+     * is equal to the maximum legal size of an SNMP message).  
+     */
+
+    t->msgMaxSize = 0x7fffffff;
+    t->f_recv     = netsnmp_tcp6_recv;
+    t->f_send     = netsnmp_tcp6_send;
+    t->f_close    = netsnmp_tcp6_close;
+    t->f_accept   = netsnmp_tcp6_accept;
+    t->f_fmtaddr  = netsnmp_tcp6_fmtaddr;
+
+    return t;
+}
+
+/*
+ * Not extern but still defined in snmpUDPIPv6Domain.c
+ */
+extern int
+netsnmp_sockaddr_in6_2(struct sockaddr_in6*, const char*, const char*);
+
+netsnmp_transport *
+netsnmp_tcp6_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_tcp6_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_tcp6_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_tcp6_transport(&addr, local);
+    }
+    return NULL;
+}
+
+
+void
+netsnmp_tcp6_ctor(void)
+{
+    tcp6Domain.name = netsnmp_TCPIPv6Domain;
+    tcp6Domain.name_length = sizeof(netsnmp_TCPIPv6Domain) / sizeof(oid);
+    tcp6Domain.f_create_from_tstring_new = netsnmp_tcp6_create_tstring;
+    tcp6Domain.f_create_from_ostring = netsnmp_tcp6_create_ostring;
+    tcp6Domain.prefix = (const char**)calloc(4, sizeof(char *));
+    tcp6Domain.prefix[0] = "tcp6";
+    tcp6Domain.prefix[1] = "tcpv6";
+    tcp6Domain.prefix[2] = "tcpipv6";
+
+    netsnmp_tdomain_register(&tcp6Domain);
+}
+
+#endif /* NETSNMP_TRANSPORT_TCPIPV6_DOMAIN */
+
diff --git a/snmplib/snmpUDPDomain.c b/snmplib/snmpUDPDomain.c
new file mode 100644
index 0000000..7c8412d
--- /dev/null
+++ b/snmplib/snmpUDPDomain.c
@@ -0,0 +1,1333 @@
+/* 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.  
+ */
+
+static char *
+netsnmp_udp_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("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 {
+            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)
+
+# define netsnmp_dstaddr(x) (&(((struct in_pktinfo *)(CMSG_DATA(x)))->ipi_addr))
+
+static 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];
+    char cmsg[CMSG_SPACE(sizeof(struct in_pktinfo))];
+    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)));
+    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)));
+        }
+    }
+    return r;
+}
+
+static 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);
+}
+#endif /* linux && IP_PKTINFO */
+
+/*
+ * 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)
+            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;
+	    }
+	}
+
+        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)
+            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 */
+	    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;
+    size_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;
+    size_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"));
+        }
+#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)
+{
+#if HAVE_GETADDRINFO
+    struct addrinfo *addrs = NULL;
+    struct addrinfo hint;
+    int             err;
+#elif HAVE_GETIPNODEBYNAME
+    struct hostent *hp = NULL;
+    int             err;
+#elif HAVE_GETHOSTBYNAME
+    struct hostent *hp = NULL;
+#endif
+
+    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)"));
+                    host = port;
+                    port = NULL;
+                } else {
+                    DEBUGMSGTL(("netsnmp_sockaddr_in",
+                                "servname not numeric"));
+                    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 HAVE_GETADDRINFO
+            memset(&hint, 0, sizeof hint);
+            hint.ai_flags = 0;
+            hint.ai_family = PF_INET;
+            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 %s\n", peername,
+                         gai_strerror(err));
+#else
+                snmp_log(LOG_ERR, "getaddrinfo: %s (error %d)\n", peername,
+                         err);
+#endif
+                free(peername);
+                return 0;
+            }
+            if (addrs != NULL) {
+                DEBUGMSGTL(("netsnmp_sockaddr_in",
+                            "hostname (resolved okay)\n"));
+                memcpy(&addr->sin_addr,
+                       &((struct sockaddr_in *) addrs->ai_addr)->sin_addr,
+                       sizeof(struct in_addr));
+                freeaddrinfo(addrs);
+            }
+            else {
+                DEBUGMSGTL(("netsnmp_sockaddr_in",
+                            "Failed to resolve IPv4 hostname\n"));
+            }
+#elif HAVE_GETHOSTBYNAME
+            hp = gethostbyname(host);
+            if (hp == NULL) {
+                DEBUGMSGTL(("netsnmp_sockaddr_in",
+                            "hostname (couldn't resolve)\n"));
+                free(peername);
+                return 0;
+            } else if (hp->h_addrtype != AF_INET) {
+                DEBUGMSGTL(("netsnmp_sockaddr_in",
+                            "hostname (not AF_INET!)\n"));
+                free(peername);
+                return 0;
+            } else {
+                DEBUGMSGTL(("netsnmp_sockaddr_in",
+                            "hostname (resolved okay)\n"));
+                memcpy(&addr->sin_addr, hp->h_addr, hp->h_length);
+            }
+#elif HAVE_GETIPNODEBYNAME
+            hp = getipnodebyname(peername, AF_INET, 0, &err);
+            if (hp == NULL) {
+                DEBUGMSGTL(("netsnmp_sockaddr_in",
+                            "hostname (couldn't resolve = %d)\n", err));
+                free(peername);
+                return 0;
+            }
+            DEBUGMSGTL(("netsnmp_sockaddr_in",
+                        "hostname (resolved okay)\n"));
+            memcpy(&(addr->sin_addr), hp->h_addr, hp->h_length);
+#else /* HAVE_GETIPNODEBYNAME */
+            /*
+             * There is no name resolving function available.
+             */
+            DEBUGMSGTL(("netsnmp_sockaddr_in",
+                        "no getaddrinfo()/getipnodebyname()/gethostbyname()\n"));
+            free(peername);
+            return 0;
+#endif /* HAVE_GETHOSTBYNAME */
+        }
+	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.  
+             */
+#ifdef  HAVE_GETHOSTBYNAME
+            struct hostent *hp = gethostbyname(source);
+            if (hp == NULL) {
+                config_perror("bad source address");
+                return;
+            } else {
+                if (hp->h_addrtype != AF_INET) {
+                    config_perror("no IP address for source hostname");
+                    return;
+                }
+                network = *((in_addr_t *) hp->h_addr);
+            }
+#else                           /*HAVE_GETHOSTBYNAME */
+            /*
+             * Oh dear.  
+             */
+            config_perror("cannot resolve source hostname");
+            return;
+#endif                          /*HAVE_GETHOSTBYNAME */
+        }
+    }
+
+    /*
+     * 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.  
+     */
+
+    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%08x>\n",
+		    ztcommunity ? ztcommunity : "<malloc error>",
+		    from->sin_addr.s_addr));
+    }
+
+    for (c = com2SecList; c != NULL; c = c->next) {
+        DEBUGMSGTL(("netsnmp_udp_getSecName","compare <\"%s\", 0x%08x/0x%08x>",
+		    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_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
new file mode 100644
index 0000000..a3d6e5c
--- /dev/null
+++ b/snmplib/snmpUDPIPv6Domain.c
@@ -0,0 +1,1385 @@
+#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>
+#undef  HAVE_IF_NAMETOINDEX
+
+extern int         inet_pton(int, const char*, void*);
+extern const char *inet_ntop(int, const void*, char*, size_t);
+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 STRUCT_SOCKADDR_STORAGE_HAS_SS_FAMILY
+#define SS_FAMILY ss_family
+#elif STRUCT_SOCKADDR_STORAGE_HAS___SS_FAMILY
+#define SS_FAMILY __ss_family
+#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;
+    struct addrinfo hint;
+    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++);
+        if (!*cp && atoi(peername) != 0) {
+            /*
+             * Okay, it looks like JUST a port number.  
+             */
+            DEBUGMSGTL(("netsnmp_sockaddr_in6", "totally numeric: %d\n",
+                        atoi(peername)));
+            addr->sin6_port = htons(atoi(peername));
+            goto resolved;
+        }
+
+        /*
+         * See if it is an IPv6 address, which covered with square brankets
+         * with 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) == ':') {
+                    if (atoi(cp + 2) != 0 &&
+                        inet_pton(AF_INET6, peername + 1,
+                                  (void *) &(addr->sin6_addr))) {
+                        DEBUGMSGTL(("netsnmp_sockaddr_in6",
+                                    "IPv6 address with port suffix :%d\n",
+                                    atoi(cp + 2)));
+                        addr->sin6_port = htons(atoi(cp + 2));
+#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 brankets\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
+	    }
+            if (atoi(cp + 1) != 0 &&
+                inet_pton(AF_INET6, peername,
+                          (void *) &(addr->sin6_addr))) {
+                DEBUGMSGTL(("netsnmp_sockaddr_in6",
+                            "IPv6 address with port suffix :%d\n",
+                            atoi(cp + 1)));
+                addr->sin6_port = htons(atoi(cp + 1));
+#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';
+            if (atoi(cp + 1) != 0) {
+                DEBUGMSGTL(("netsnmp_sockaddr_in6",
+                            "hostname(?) with port suffix :%d\n",
+                            atoi(cp + 1)));
+                addr->sin6_port = htons(atoi(cp + 1));
+            } 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
+        memset(&hint, 0, sizeof hint);
+        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) {
+        DEBUGMSGTL(("netsnmp_udp6_getSecName",
+                    "compare <\"%s\", 0x%032x/0x%032x>", c->community,
+                    c->network, c->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_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/snmpUnixDomain.c
new file mode 100644
index 0000000..4bddb7f
--- /dev/null
+++ b/snmplib/snmpUnixDomain.c
@@ -0,0 +1,655 @@
+#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_SYS_UN_H
+#include <sys/un.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/snmpUnixDomain.h>
+
+
+#ifndef NETSNMP_STREAM_QUEUE_LEN
+#define NETSNMP_STREAM_QUEUE_LEN  5
+#endif
+
+#ifndef SUN_LEN
+/*
+ * Evaluate to actual length of the `sockaddr_un' structure.
+ */
+#define SUN_LEN(ptr) ((size_t) (((struct sockaddr_un *) 0)->sun_path)         \
+                      + strlen ((ptr)->sun_path))
+#endif
+
+oid netsnmp_UnixDomain[] = { TRANSPORT_DOMAIN_LOCAL };
+static netsnmp_tdomain unixDomain;
+
+
+/*
+ * This is the structure we use to hold transport-specific data.
+ */
+
+typedef struct _sockaddr_un_pair {
+    int             local;
+    struct sockaddr_un server;
+    struct sockaddr_un client;
+} sockaddr_un_pair;
+
+
+/*
+ * Return a string representing the address in data, or else the "far end"
+ * address if data is NULL.
+ */
+
+static char *
+netsnmp_unix_fmtaddr(netsnmp_transport *t, void *data, int len)
+{
+    struct sockaddr_un *to = NULL;
+
+    if (data != NULL) {
+        to = (struct sockaddr_un *) data;
+    } else if (t != NULL && t->data != NULL) {
+        to = &(((sockaddr_un_pair *) t->data)->server);
+        len = SUN_LEN(to);
+    }
+    if (to == NULL) {
+        /*
+         * "Local IPC" is the Posix.1g term for Unix domain protocols,
+         * according to W. R. Stevens, ``Unix Network Programming Volume I
+         * Second Edition'', p. 374.
+         */
+        return strdup("Local IPC: unknown");
+    } else if (to->sun_path[0] == 0) {
+        /*
+         * This is an abstract name.  We could render it as hex or something
+         * but let's not worry about that for now.
+         */
+        return strdup("Local IPC: abstract");
+    } else {
+        char           *tmp = (char *) malloc(16 + len);
+        if (tmp != NULL) {
+            sprintf(tmp, "Local IPC: %s", to->sun_path);
+        }
+        return 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_unix_recv(netsnmp_transport *t, void *buf, int size,
+                  void **opaque, int *olength)
+{
+    int rc = -1;
+    socklen_t       tolen = sizeof(struct sockaddr_un);
+    struct sockaddr *to;
+
+
+    if (t != NULL && t->sock >= 0) {
+        to = (struct sockaddr *) malloc(sizeof(struct sockaddr_un));
+        if (to == NULL) {
+            *opaque = NULL;
+            *olength = 0;
+            return -1;
+        } else {
+            memset(to, 0, tolen);
+        }
+        if(getsockname(t->sock, to, &tolen) != 0){
+            free(to);
+            *opaque = NULL;
+            *olength = 0;
+            return -1;
+        };
+        while (rc < 0) {
+            rc = recvfrom(t->sock, buf, size, 0, NULL, 0);
+            if (rc < 0 && errno != EINTR) {
+                DEBUGMSGTL(("netsnmp_unix", "recv fd %d err %d (\"%s\")\n",
+                            t->sock, errno, strerror(errno)));
+                return rc;
+            }
+            *opaque = (void*)to;
+            *olength = sizeof(struct sockaddr_un);
+        }
+        DEBUGMSGTL(("netsnmp_unix", "recv fd %d got %d bytes\n", t->sock, rc));
+    }
+    return rc;
+}
+
+
+
+static int
+netsnmp_unix_send(netsnmp_transport *t, void *buf, int size,
+                  void **opaque, int *olength)
+{
+    int rc = -1;
+
+    if (t != NULL && t->sock >= 0) {
+        DEBUGMSGTL(("netsnmp_unix", "send %d bytes to %p on fd %d\n",
+                    size, buf, t->sock));
+        while (rc < 0) {
+            rc = sendto(t->sock, buf, size, 0, NULL, 0);
+            if (rc < 0 && errno != EINTR) {
+                break;
+            }
+        }
+    }
+    return rc;
+}
+
+
+
+static int
+netsnmp_unix_close(netsnmp_transport *t)
+{
+    int rc = 0;
+    sockaddr_un_pair *sup = (sockaddr_un_pair *) t->data;
+
+    if (t->sock >= 0) {
+#ifndef HAVE_CLOSESOCKET
+        rc = close(t->sock);
+#else
+        rc = closesocket(t->sock);
+#endif
+        t->sock = -1;
+        if (sup != NULL) {
+            if (sup->local) {
+                if (sup->server.sun_path[0] != 0) {
+                  DEBUGMSGTL(("netsnmp_unix", "close: server unlink(\"%s\")\n",
+                              sup->server.sun_path));
+                  unlink(sup->server.sun_path);
+                }
+            } else {
+                if (sup->client.sun_path[0] != 0) {
+                  DEBUGMSGTL(("netsnmp_unix", "close: client unlink(\"%s\")\n",
+                              sup->client.sun_path));
+                  unlink(sup->client.sun_path);
+                }
+            }
+        }
+        return rc;
+    } else {
+        return -1;
+    }
+}
+
+
+
+static int
+netsnmp_unix_accept(netsnmp_transport *t)
+{
+    struct sockaddr *farend = NULL;
+    int             newsock = -1;
+    socklen_t       farendlen = sizeof(struct sockaddr_un);
+
+    farend = (struct sockaddr *) malloc(farendlen);
+
+    if (farend == NULL) {
+        /*
+         * Indicate that the acceptance of this socket failed.
+         */
+        DEBUGMSGTL(("netsnmp_unix", "accept: malloc failed\n"));
+        return -1;
+    }
+    memset(farend, 0, farendlen);
+
+    if (t != NULL && t->sock >= 0) {
+        newsock = accept(t->sock, farend, &farendlen);
+
+        if (newsock < 0) {
+            DEBUGMSGTL(("netsnmp_unix","accept failed rc %d errno %d \"%s\"\n",
+                        newsock, errno, strerror(errno)));
+            free(farend);
+            return newsock;
+        }
+
+        if (t->data != NULL) {
+            free(t->data);
+        }
+
+        DEBUGMSGTL(("netsnmp_unix", "accept succeeded (farend %p len %d)\n",
+                    farend, farendlen));
+        t->data = farend;
+        t->data_length = sizeof(struct sockaddr_un);
+       netsnmp_sock_buffer_set(newsock, SO_SNDBUF, 1, 0);
+       netsnmp_sock_buffer_set(newsock, SO_RCVBUF, 1, 0);
+        return newsock;
+    } else {
+        free(farend);
+        return -1;
+    }
+}
+
+
+
+/*
+ * Open a Unix-domain 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 (and we make up a temporary name for
+ * the local end of the connection).
+ */
+
+netsnmp_transport *
+netsnmp_unix_transport(struct sockaddr_un *addr, int local)
+{
+    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;
+    }
+
+    t = (netsnmp_transport *) malloc(sizeof(netsnmp_transport));
+    if (t == NULL) {
+        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);
+
+    memset(t, 0, sizeof(netsnmp_transport));
+
+    t->domain = netsnmp_UnixDomain;
+    t->domain_length =
+        sizeof(netsnmp_UnixDomain) / sizeof(netsnmp_UnixDomain[0]);
+
+    t->data = malloc(sizeof(sockaddr_un_pair));
+    if (t->data == NULL) {
+        netsnmp_transport_free(t);
+        return NULL;
+    }
+    memset(t->data, 0, sizeof(sockaddr_un_pair));
+    t->data_length = sizeof(sockaddr_un_pair);
+    sup = (sockaddr_un_pair *) t->data;
+
+    t->sock = socket(PF_UNIX, SOCK_STREAM, 0);
+    if (t->sock < 0) {
+        netsnmp_transport_free(t);
+        return NULL;
+    }
+
+    t->flags = NETSNMP_TRANSPORT_FLAG_STREAM;
+
+    if (local) {
+      t->local = (u_char *)malloc(strlen(addr->sun_path));
+        if (t->local == NULL) {
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        memcpy(t->local, addr->sun_path, strlen(addr->sun_path));
+        t->local_length = strlen(addr->sun_path);
+
+        /*
+         * This session is inteneded as a server, so we must bind to the given
+         * path (unlinking it first, to avoid errors).
+         */
+
+        t->flags |= NETSNMP_TRANSPORT_FLAG_LISTEN;
+
+        unlink(addr->sun_path);
+        rc = bind(t->sock, (struct sockaddr *) addr, SUN_LEN(addr));
+        if (rc != 0) {
+            DEBUGMSGTL(("netsnmp_unix_transport",
+                        "couldn't bind \"%s\", errno %d (%s)\n",
+                        addr->sun_path, errno, strerror(errno)));
+            netsnmp_unix_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+
+        /*
+         * Save the address in the transport-specific data pointer for later
+         * use by netsnmp_unix_close.
+         */
+
+        sup->server.sun_family = AF_UNIX;
+        strcpy(sup->server.sun_path, addr->sun_path);
+        sup->local = 1;
+
+        /*
+         * Now sit here and listen for connections to arrive.
+         */
+
+        rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
+        if (rc != 0) {
+            DEBUGMSGTL(("netsnmp_unix_transport",
+                        "couldn't listen to \"%s\", errno %d (%s)\n",
+                        addr->sun_path, errno, strerror(errno)));
+            netsnmp_unix_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+
+    } else {
+      t->remote = (u_char *)malloc(strlen(addr->sun_path));
+        if (t->remote == NULL) {
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        memcpy(t->remote, addr->sun_path, strlen(addr->sun_path));
+        t->remote_length = strlen(addr->sun_path);
+
+        rc = connect(t->sock, (struct sockaddr *) addr,
+                     sizeof(struct sockaddr_un));
+        if (rc != 0) {
+            DEBUGMSGTL(("netsnmp_unix_transport",
+                        "couldn't connect to \"%s\", errno %d (%s)\n",
+                        addr->sun_path, errno, strerror(errno)));
+            netsnmp_unix_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+
+        /*
+         * Save the remote address in the transport-specific data pointer for
+         * later use by netsnmp_unix_send.
+         */
+
+        sup->server.sun_family = AF_UNIX;
+        strcpy(sup->server.sun_path, addr->sun_path);
+        sup->local = 0;
+       netsnmp_sock_buffer_set(t->sock, SO_SNDBUF, local, 0);
+       netsnmp_sock_buffer_set(t->sock, SO_RCVBUF, local, 0);
+    }
+
+    /*
+     * Message size is not limited by this transport (hence msgMaxSize
+     * is equal to the maximum legal size of an SNMP message).
+     */
+
+    t->msgMaxSize = 0x7fffffff;
+    t->f_recv     = netsnmp_unix_recv;
+    t->f_send     = netsnmp_unix_send;
+    t->f_close    = netsnmp_unix_close;
+    t->f_accept   = netsnmp_unix_accept;
+    t->f_fmtaddr  = netsnmp_unix_fmtaddr;
+
+    return t;
+}
+
+netsnmp_transport *
+netsnmp_unix_create_tstring(const char *string, int local,
+			    const char *default_target)
+{
+    struct sockaddr_un addr;
+
+    if (string && *string != '\0') {
+    } else if (default_target && *default_target != '\0') {
+      string = default_target;
+    }
+
+    if ((string != NULL && *string != '\0') &&
+	(strlen(string) < sizeof(addr.sun_path))) {
+        addr.sun_family = AF_UNIX;
+        memset(addr.sun_path, 0, sizeof(addr.sun_path));
+        strncpy(addr.sun_path, string, sizeof(addr.sun_path) - 1);
+        return netsnmp_unix_transport(&addr, local);
+    } else {
+        if (string != NULL && *string != '\0') {
+            snmp_log(LOG_ERR, "Path too long for Unix domain transport\n");
+        }
+        return NULL;
+    }
+}
+
+
+
+netsnmp_transport *
+netsnmp_unix_create_ostring(const u_char * o, size_t o_len, int local)
+{
+    struct sockaddr_un addr;
+
+    if (o_len > 0 && o_len < (sizeof(addr.sun_path) - 1)) {
+        addr.sun_family = AF_UNIX;
+        memset(addr.sun_path, 0, sizeof(addr.sun_path));
+        strncpy(addr.sun_path, (const char *)o, o_len);
+        return netsnmp_unix_transport(&addr, local);
+    } else {
+        if (o_len > 0) {
+            snmp_log(LOG_ERR, "Path too long for Unix domain transport\n");
+        }
+    }
+    return NULL;
+}
+
+
+
+void
+netsnmp_unix_ctor(void)
+{
+    unixDomain.name = netsnmp_UnixDomain;
+    unixDomain.name_length = sizeof(netsnmp_UnixDomain) / sizeof(oid);
+    unixDomain.prefix = (const char**)calloc(2, sizeof(char *));
+    unixDomain.prefix[0] = "unix";
+
+    unixDomain.f_create_from_tstring_new = netsnmp_unix_create_tstring;
+    unixDomain.f_create_from_ostring = netsnmp_unix_create_ostring;
+
+    netsnmp_tdomain_register(&unixDomain);
+}
+
+#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
+/* 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;
+} com2SecUnixEntry;
+
+com2SecUnixEntry   *com2SecUnixList = NULL, *com2SecUnixListLast = NULL;
+
+
+int
+netsnmp_unix_getSecName(void *opaque, int olength,
+                        const char *community,
+                        size_t community_len,
+                        char **secName, char **contextName)
+{
+    com2SecUnixEntry   *c;
+    struct sockaddr_un *to = (struct sockaddr_un *) opaque;
+    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 (com2SecUnixList == NULL) {
+        DEBUGMSGTL(("netsnmp_unix_getSecName", "no com2sec entries\n"));
+        return 0;
+    }
+
+    /*
+     * If there is no unix socket path, then there can be no valid security
+     * name.
+     */
+
+    if (opaque == NULL || olength != sizeof(struct sockaddr_un) ||
+        to->sun_family != AF_UNIX) {
+        DEBUGMSGTL(("netsnmp_unix_getSecName",
+                    "no unix destine address in PDU?\n"));
+        return 1;
+    }
+
+    DEBUGIF("netsnmp_unix_getSecName") {
+        ztcommunity = (char *)malloc(community_len + 1);
+        if (ztcommunity != NULL) {
+            memcpy(ztcommunity, community, community_len);
+            ztcommunity[community_len] = '\0';
+        }
+
+        DEBUGMSGTL(("netsnmp_unix_getSecName", "resolve <\"%s\">\n",
+                    ztcommunity ? ztcommunity : "<malloc error>"));
+    }
+
+    for (c = com2SecUnixList; c != NULL; c = c->next) {
+        DEBUGMSGTL(("netsnmp_unix_getSecName","compare <\"%s\",to socket %s>",
+                    c->community, c->sockpath ));
+        if ((community_len == strlen(c->community)) &&
+            (memcmp(community, c->community, community_len) == 0) &&
+            /* compare sockpath, if pathlen == 0, always match */
+            (strlen(to->sun_path) == c->pathlen || c->pathlen == 0) &&
+            (memcmp(to->sun_path, c->sockpath, c->pathlen) == 0)
+            ) {
+            DEBUGMSG(("netsnmp_unix_getSecName", "... SUCCESS\n"));
+            if (secName != NULL) {
+                *secName = c->secName;
+                *contextName = c->contextName;
+            }
+            break;
+        }
+        DEBUGMSG(("netsnmp_unix_getSecName", "... nope\n"));
+    }
+    if (ztcommunity != NULL) {
+        free(ztcommunity);
+    }
+    return 1;
+}
+
+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;
+
+
+    param = copy_nword(param, secName, VACMSTRINGLEN);
+    if (strcmp(secName, "-Cn") == 0) {
+        param = copy_nword( param, contextName, sizeof(contextName));
+        param = copy_nword( param, secName, sizeof(secName));
+        if (contextName[0] == '\0') {
+            config_perror("missing CONTEXT_NAME parameter");
+            return;
+        }
+    } 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;
+    }
+
+        param = copy_nword(param, sockpath, sizeof(struct sockaddr_un) - 1);
+    if (sockpath[0] == '\0') {
+        config_perror("missing SOCKPATH parameter");
+        return;
+    } else if (strlen(sockpath) > (sizeof(struct sockaddr_un) - 1)) {
+        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 (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;
+    }
+
+    e = (com2SecUnixEntry *) malloc(sizeof(com2SecUnixEntry));
+    if (e == NULL) {
+        config_perror("memory error");
+        return;
+    }
+
+    DEBUGMSGTL(("netsnmp_unix_parse_security",
+                "<\"%s\"> => \"%s\"\n", community, secName));
+
+    strcpy(e->secName, secName);
+    strcpy(e->contextName, contextName);
+    strcpy(e->community, community);
+    strcpy(e->sockpath, sockpath);
+    e->pathlen = strlen(sockpath);
+    e->next = NULL;
+
+    if (com2SecUnixListLast != NULL) {
+        com2SecUnixListLast->next = e;
+        com2SecUnixListLast = e;
+    } else {
+        com2SecUnixListLast = com2SecUnixList = e;
+    }
+}
+
+void
+netsnmp_unix_com2SecList_free(void)
+{
+    com2SecUnixEntry   *e = com2SecUnixList;
+    while (e != NULL) {
+        com2SecUnixEntry   *tmp = e;
+        e = e->next;
+        free(tmp);
+    }
+    com2SecUnixList = com2SecUnixListLast = NULL;
+}
+#endif /* support for community based SNMP */
+
+void
+netsnmp_unix_agent_config_tokens_register(void)
+{
+#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
+    register_app_config_handler("com2secunix", netsnmp_unix_parse_security,
+                                netsnmp_unix_com2SecList_free,
+                                "[-Cn CONTEXT] secName sockpath community");
+#endif /* support for community based SNMP */
+}
diff --git a/snmplib/snmp_alarm.c b/snmplib/snmp_alarm.c
index c015102..4b0575e 100644
--- a/snmplib/snmp_alarm.c
+++ b/snmplib/snmp_alarm.c
@@ -34,7 +34,11 @@
 #endif
 
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -43,6 +47,9 @@
 #  include <time.h>
 # endif
 #endif
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
@@ -82,23 +89,41 @@ init_snmp_alarm(void)
 void
 sa_update_entry(struct snmp_alarm *a)
 {
-    if (!timerisset(&a->t_lastM)) {
+    if (a->t_last.tv_sec == 0 && a->t_last.tv_usec == 0) {
+        struct timeval  t_now;
         /*
-         * First call of sa_update_entry() for alarm a: set t_lastM and t_nextM.
+         * Never been called yet, call time `t' from now.  
          */
-        netsnmp_get_monotonic_clock(&a->t_lastM);
-        NETSNMP_TIMERADD(&a->t_lastM, &a->t, &a->t_nextM);
-    } else if (!timerisset(&a->t_nextM)) {
+        gettimeofday(&t_now, NULL);
+
+        a->t_last.tv_sec = t_now.tv_sec;
+        a->t_last.tv_usec = t_now.tv_usec;
+
+        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;
+
+        while (a->t_next.tv_usec >= 1000000) {
+            a->t_next.tv_usec -= 1000000;
+            a->t_next.tv_sec += 1;
+        }
+    } else if (a->t_next.tv_sec == 0 && a->t_next.tv_usec == 0) {
         /*
          * We've been called but not reset for the next call.  
          */
         if (a->flags & SA_REPEAT) {
-            if (timerisset(&a->t)) {
-                NETSNMP_TIMERADD(&a->t_lastM, &a->t, &a->t_nextM);
-            } else {
+            if (a->t.tv_sec == 0 && a->t.tv_usec == 0) {
                 DEBUGMSGTL(("snmp_alarm",
                             "update_entry: illegal interval specified\n"));
                 snmp_alarm_unregister(a->clientreg);
+                return;
+            }
+
+            a->t_next.tv_sec = a->t_last.tv_sec + a->t.tv_sec;
+            a->t_next.tv_usec = a->t_last.tv_usec + a->t.tv_usec;
+
+            while (a->t_next.tv_usec >= 1000000) {
+                a->t_next.tv_usec -= 1000000;
+                a->t_next.tv_sec += 1;
             }
         } else {
             /*
@@ -138,7 +163,7 @@ snmp_alarm_unregister(unsigned int clientreg)
         DEBUGMSGTL(("snmp_alarm", "unregistered alarm %d\n", 
 		    sa_ptr->clientreg));
         /*
-         * Note: do not free the clientarg, it's the client's responsibility 
+         * Note:  do not free the clientarg, its the clients responsibility 
          */
         free(sa_ptr);
     } else {
@@ -172,16 +197,31 @@ struct snmp_alarm *
 sa_find_next(void)
 {
     struct snmp_alarm *a, *lowest = NULL;
+    struct timeval  t_now;
 
-    for (a = thealarms; a != NULL; a = a->next)
-        if (!(a->flags & SA_FIRED)
-            && (lowest == NULL || timercmp(&a->t_nextM, &lowest->t_nextM, <)))
-            lowest = a;
+    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 (%d seconds), should be %d seconds - fixing\n", (a->t_next.tv_sec - t_now.tv_sec), 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;
+            }
+        } else if (a->t_next.tv_sec < lowest->t_next.tv_sec) {
+            lowest = a;
+        }
+    }
     return lowest;
 }
 
-NETSNMP_IMPORT struct snmp_alarm *sa_find_specific(unsigned int clientreg);
 struct snmp_alarm *
 sa_find_specific(unsigned int clientreg)
 {
@@ -197,7 +237,8 @@ sa_find_specific(unsigned int clientreg)
 void
 run_alarms(void)
 {
-    struct snmp_alarm *a;
+    int             done = 0;
+    struct snmp_alarm *a = NULL;
     unsigned int    clientreg;
     struct timeval  t_now;
 
@@ -206,27 +247,33 @@ run_alarms(void)
      * call until all events are finally in the future again.  
      */
 
-    while ((a = sa_find_next()) != NULL) {
-        netsnmp_get_monotonic_clock(&t_now);
-
-        if (timercmp(&a->t_nextM, &t_now, >))
+    while (!done) {
+        if ((a = sa_find_next()) == NULL) {
             return;
+        }
 
-        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));
-
-        a = sa_find_specific(clientreg);
-        if (a) {
-            a->t_lastM = t_now;
-            timerclear(&a->t_nextM);
-            a->flags &= ~SA_FIRED;
-            sa_update_entry(a);
+        gettimeofday(&t_now, NULL);
+
+        if ((a->t_next.tv_sec < t_now.tv_sec) ||
+            ((a->t_next.tv_sec == t_now.tv_sec) &&
+             (a->t_next.tv_usec < t_now.tv_usec))) {
+            clientreg = a->clientreg;
+            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;
+                sa_update_entry(a);
+            } else {
+                DEBUGMSGTL(("snmp_alarm", "alarm %d deleted itself\n",
+                            clientreg));
+            }
         } else {
-            DEBUGMSGTL(("snmp_alarm", "alarm %d deleted itself\n",
-                        clientreg));
+            done = 1;
         }
     }
 }
@@ -242,56 +289,49 @@ alarm_handler(int a)
 
 
 
-/**
- * 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
-netsnmp_get_next_alarm_time(struct timeval *alarm_tm, const struct timeval *now)
+get_next_alarm_delay_time(struct timeval *delta)
 {
     struct snmp_alarm *sa_ptr;
+    struct timeval  t_diff, t_now;
 
     sa_ptr = sa_find_next();
 
     if (sa_ptr) {
-        netsnmp_assert(alarm_tm);
-        netsnmp_assert(timerisset(&sa_ptr->t_nextM));
-        if (timercmp(&sa_ptr->t_nextM, now, >))
-            *alarm_tm = sa_ptr->t_nextM;
-        else
-            *alarm_tm = *now;
-        return sa_ptr->clientreg;
-    } else {
-        return 0;
+        gettimeofday(&t_now, 0);
+
+        if ((t_now.tv_sec > sa_ptr->t_next.tv_sec) ||
+            ((t_now.tv_sec == sa_ptr->t_next.tv_sec) &&
+             (t_now.tv_usec > sa_ptr->t_next.tv_usec))) {
+            /*
+             * 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.  
+             */
+            t_diff.tv_sec = sa_ptr->t_next.tv_sec - t_now.tv_sec;
+            t_diff.tv_usec = sa_ptr->t_next.tv_usec - t_now.tv_usec;
+
+            while (t_diff.tv_usec < 0) {
+                t_diff.tv_sec -= 1;
+                t_diff.tv_usec += 1000000;
+            }
+
+            delta->tv_sec = t_diff.tv_sec;
+            delta->tv_usec = t_diff.tv_usec;
+            return sa_ptr->clientreg;
+        }
     }
-}
 
-/**
- * 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;
-
-    netsnmp_get_monotonic_clock(&t_now);
-    res = netsnmp_get_next_alarm_time(&alarm_tm, &t_now);
-    if (res)
-        NETSNMP_TIMERSUB(&alarm_tm, &t_now, delta);
-    return res;
+    /*
+     * Nothing Left.  
+     */
+    return 0;
 }
 
 
@@ -313,19 +353,21 @@ set_an_alarm(void)
 # ifdef HAVE_SETITIMER
         struct itimerval it;
 
-        it.it_value = delta;
-        timerclear(&it.it_interval);
+        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;
 
         signal(SIGALRM, alarm_handler);
         setitimer(ITIMER_REAL, &it, NULL);
-        DEBUGMSGTL(("snmp_alarm", "schedule alarm %d in %ld.%03ld seconds\n",
-                    nextalarm, (long) delta.tv_sec, (delta.tv_usec / 1000)));
+        DEBUGMSGTL(("snmp_alarm", "schedule alarm %d in %d.%03d seconds\n",
+                    nextalarm, delta.tv_sec, (delta.tv_usec / 1000)));
 # else  /* HAVE_SETITIMER */
 #  ifdef SIGALRM
         signal(SIGALRM, alarm_handler);
         alarm(delta.tv_sec);
         DEBUGMSGTL(("snmp_alarm",
-                    "schedule alarm %d in roughly %ld seconds\n", nextalarm,
+                    "schedule alarm %d in roughly %d seconds\n", nextalarm,
                     delta.tv_sec));
 #  endif  /* SIGALRM */
 # endif  /* HAVE_SETITIMER */
@@ -356,7 +398,7 @@ set_an_alarm(void)
  *
  * @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 specific needs.
+ *	callback function for the client's specifc 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
@@ -372,17 +414,40 @@ unsigned int
 snmp_alarm_register(unsigned int when, unsigned int flags,
                     SNMPAlarmCallback * thecallback, void *clientarg)
 {
-    struct timeval  t;
+    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;
 
     if (0 == when) {
-        t.tv_sec = 0;
-        t.tv_usec = 1;
+        (*sa_pptr)->t.tv_sec = 0;
+        (*sa_pptr)->t.tv_usec = 1;
     } else {
-        t.tv_sec = when;
-        t.tv_usec = 0;
+        (*sa_pptr)->t.tv_sec = when;
+        (*sa_pptr)->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 = %d.%03d, flags=0x%02x\n",
+                (*sa_pptr)->clientreg, (*sa_pptr)->t.tv_sec,
+                ((*sa_pptr)->t.tv_usec / 1000), (*sa_pptr)->flags));
 
-    return snmp_alarm_register_hr(t, flags, thecallback, clientarg);
+    if (start_alarms)
+        set_an_alarm();
+    return (*sa_pptr)->clientreg;
 }
 
 
@@ -410,7 +475,7 @@ snmp_alarm_register(unsigned int when, unsigned int flags,
  *
  * @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 specific needs.
+ *	callback function for the client's specifc 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
@@ -435,7 +500,8 @@ snmp_alarm_register_hr(struct timeval t, unsigned int flags,
         return 0;
     }
 
-    (*s)->t = t;
+    (*s)->t.tv_sec = t.tv_sec;
+    (*s)->t.tv_usec = t.tv_usec;
     (*s)->flags = flags;
     (*s)->clientarg = cd;
     (*s)->thecallback = cb;
@@ -445,8 +511,8 @@ snmp_alarm_register_hr(struct timeval t, unsigned int flags,
     sa_update_entry(*s);
 
     DEBUGMSGTL(("snmp_alarm",
-                "registered alarm %d, t = %ld.%03ld, flags=0x%02x\n",
-                (*s)->clientreg, (long) (*s)->t.tv_sec, ((*s)->t.tv_usec / 1000),
+                "registered alarm %d, t = %d.%03d, flags=0x%02x\n",
+                (*s)->clientreg, (*s)->t.tv_sec, ((*s)->t.tv_usec / 1000),
                 (*s)->flags));
 
     if (start_alarms) {
@@ -455,35 +521,4 @@ snmp_alarm_register_hr(struct timeval t, unsigned int flags,
 
     return (*s)->clientreg;
 }
-
-/**
- * This function resets an existing alarm.
- *
- * @param clientreg is a unique unsigned integer representing a registered
- *	alarm which the client wants to unregister.
- *
- * @return 0 on success, -1 if the alarm was not found
- *
- * @see snmp_alarm_register
- * @see snmp_alarm_register_hr
- * @see snmp_alarm_unregister
- */
-int
-snmp_alarm_reset(unsigned int clientreg)
-{
-    struct snmp_alarm *a;
-    struct timeval  t_now;
-    if ((a = sa_find_specific(clientreg)) != NULL) {
-        netsnmp_get_monotonic_clock(&t_now);
-        a->t_lastM.tv_sec = t_now.tv_sec;
-        a->t_lastM.tv_usec = t_now.tv_usec;
-        a->t_nextM.tv_sec = 0;
-        a->t_nextM.tv_usec = 0;
-        NETSNMP_TIMERADD(&t_now, &a->t, &a->t_nextM);
-        return 0;
-    }
-    DEBUGMSGTL(("snmp_alarm_reset", "alarm %d not found\n",
-                clientreg));
-    return -1;
-}
 /**  @} */
diff --git a/snmplib/snmp_api.c b/snmplib/snmp_api.c
index 33e6157..d265915 100644
--- a/snmplib/snmp_api.c
+++ b/snmplib/snmp_api.c
@@ -1,4 +1,3 @@
-
 /* 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:
@@ -38,7 +37,6 @@ SOFTWARE.
  * snmp_api.c - API for access to snmp.
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <stdio.h>
 #include <ctype.h>
@@ -58,7 +56,11 @@ SOFTWARE.
 #include <sys/param.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -79,6 +81,9 @@ SOFTWARE.
 #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
@@ -122,7 +127,6 @@ SOFTWARE.
 #include <net-snmp/library/callback.h>
 #include <net-snmp/library/container.h>
 #include <net-snmp/library/snmp_secmod.h>
-#include <net-snmp/library/large_fd_set.h>
 #ifdef NETSNMP_SECMOD_USM
 #include <net-snmp/library/snmpusm.h>
 #endif
@@ -136,20 +140,8 @@ SOFTWARE.
 #include <net-snmp/library/snmp_service.h>
 #include <net-snmp/library/vacm.h>
 
-netsnmp_feature_child_of(statistics, libnetsnmp)
-netsnmp_feature_child_of(snmp_api, libnetsnmp)
-netsnmp_feature_child_of(oid_is_subtree, snmp_api)
-netsnmp_feature_child_of(snmpv3_probe_contextEngineID_rfc5343, snmp_api)
-
-#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL)
-extern void netsnmp_certs_init(void);
-extern void netsnmp_certs_shutdown(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
@@ -194,7 +186,7 @@ static oid      default_enterprise[] = { 1, 3, 6, 1, 4, 1, 3, 1, 1 };
 
 #define DEFAULT_COMMUNITY   "public"
 #define DEFAULT_RETRIES	    5
-#define DEFAULT_TIMEOUT	    ONE_SEC
+#define DEFAULT_TIMEOUT	    1000000L
 #define DEFAULT_REMPORT	    SNMP_PORT
 #define DEFAULT_ENTERPRISE  default_enterprise
 #define DEFAULT_TIME	    0
@@ -229,6 +221,18 @@ struct snmp_internal_session {
     size_t          packet_len, packet_size;
 };
 
+/*
+ * The list of active/open sessions.
+ */
+struct session_list {
+    struct session_list *next;
+    netsnmp_session *session;
+    netsnmp_transport *transport;
+    struct snmp_internal_session *internal;
+};
+
+
+
 static const char *api_errors[-SNMPERR_MAX + 1] = {
     "No error",                 /* SNMPERR_SUCCESS */
     "Generic error",            /* SNMPERR_GENERR */
@@ -296,9 +300,6 @@ static const char *api_errors[-SNMPERR_MAX + 1] = {
     "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[] = {
@@ -348,6 +349,7 @@ static int      snmp_parse(void *, netsnmp_session *, netsnmp_pdu *,
 
 static void     snmpv3_calc_msg_flags(int, int, u_char *);
 static int      snmpv3_verify_msg(netsnmp_request_list *, netsnmp_pdu *);
+static int      snmpv3_build_probe_pdu(netsnmp_pdu **);
 static int      snmpv3_build(u_char ** pkt, size_t * pkt_len,
                              size_t * offset, netsnmp_session * session,
                              netsnmp_pdu *pdu);
@@ -358,9 +360,7 @@ static int      snmp_resend_request(struct session_list *slp,
 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
@@ -385,14 +385,12 @@ snmp_pdu_type(int type)
         return "GET";
     case SNMP_MSG_GETNEXT:
         return "GETNEXT";
-    case SNMP_MSG_GETBULK:
-        return "GETBULK";
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-    case SNMP_MSG_SET:
-        return "SET";
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     case SNMP_MSG_RESPONSE:
         return "RESPONSE";
+    case SNMP_MSG_SET:
+        return "SET";
+    case SNMP_MSG_GETBULK:
+        return "GETBULK";
     case SNMP_MSG_INFORM:
         return "INFORM";
     case SNMP_MSG_TRAP2:
@@ -506,7 +504,8 @@ void
 snmp_set_detail(const char *detail_string)
 {
     if (detail_string != NULL) {
-        strlcpy((char *) snmp_detail, detail_string, sizeof(snmp_detail));
+        strncpy((char *) snmp_detail, detail_string, sizeof(snmp_detail));
+        snmp_detail[sizeof(snmp_detail) - 1] = '\0';
         snmp_detail_f = 1;
     }
 }
@@ -522,22 +521,20 @@ snmp_api_errstring(int snmp_errnumber)
 {
     const char     *msg = "";
     static char     msg_buf[SPRINT_MAX_LEN];
-
     if (snmp_errnumber >= SNMPERR_MAX && snmp_errnumber <= SNMPERR_GENERR) {
         msg = api_errors[-snmp_errnumber];
     } else if (snmp_errnumber != SNMPERR_SUCCESS) {
         msg = NULL;
     }
-    if (!msg) {
+    if (!msg)
 	snprintf(msg_buf, sizeof(msg_buf), "Unknown error: %d", snmp_errnumber);
-        msg_buf[sizeof(msg_buf)-1] = '\0';
-    } else if (snmp_detail_f) {
+    else if (snmp_detail_f) {
         snprintf(msg_buf, sizeof(msg_buf), "%s (%s)", msg, snmp_detail);
-        msg_buf[sizeof(msg_buf)-1] = '\0';
         snmp_detail_f = 0;
     } else {
-        strlcpy(msg_buf, msg, sizeof(msg_buf));
+        strncpy(msg_buf, msg, sizeof(msg_buf));
     }
+    msg_buf[sizeof(msg_buf)-1] = '\0';
 
     return (msg_buf);
 }
@@ -567,17 +564,15 @@ snmp_error(netsnmp_session * psess,
 	if (snmp_detail_f) {
             snprintf(buf, sizeof(buf), "%s (%s)", api_errors[-snmp_errnumber],
 		    snmp_detail);
-            buf[sizeof(buf)-1] = '\0';
 	    snmp_detail_f = 0;
 	}
 	else
-	    strlcpy(buf, api_errors[-snmp_errnumber], sizeof(buf));
+	    strncpy(buf, api_errors[-snmp_errnumber], sizeof(buf));
     } else {
-        if (snmp_errnumber) {
+        if (snmp_errnumber)
             snprintf(buf, sizeof(buf), "Unknown Error %d", snmp_errnumber);
-            buf[sizeof(buf)-1] = '\0';
-        }
     }
+    buf[sizeof(buf)-1] = '\0';
 
     /*
      * append a useful system errno interpretation. 
@@ -606,7 +601,7 @@ snmp_sess_error(void *sessp, int *p_errno, int *p_snmp_errno, char **p_str)
 }
 
 /*
- * netsnmp_sess_log_error(): print a error stored in a session pointer 
+ * snmp_sess_perror(): print a error stored in a session pointer 
  */
 void
 netsnmp_sess_log_error(int priority,
@@ -666,19 +661,19 @@ _init_snmp(void)
     /*
      * 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();
     tmpMsgid = lrand48();
 #else
-    srandom((unsigned)(tv.tv_sec ^ tv.tv_usec));
+    srandom(tv.tv_sec ^ tv.tv_usec);
     tmpReqid = random();
     tmpMsgid = random();
 #endif
 
-    /*
-     * don't allow zero value to repeat init 
-     */
     if (tmpReqid == 0)
         tmpReqid = 1;
     if (tmpMsgid == 0)
@@ -693,22 +688,15 @@ _init_snmp(void)
     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, 
                        NETSNMP_DS_LIB_HEX_OUTPUT_LENGTH, 16);
-    netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_RETRIES,
-                       DEFAULT_RETRIES);
 
 #ifdef NETSNMP_USE_REVERSE_ASNENCODING
     netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, 
@@ -767,7 +755,7 @@ register_default_handlers(void)
 	              NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NO_DISPLAY_HINT);
     netsnmp_ds_register_config(ASN_BOOLEAN, "snmp", "16bitIDs",
 	              NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_16BIT_IDS);
-    netsnmp_ds_register_premib(ASN_OCTET_STR, "snmp", "clientaddr",
+    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "clientaddr",
                       NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_CLIENT_ADDR);
     netsnmp_ds_register_config(ASN_INTEGER, "snmp", "serverSendBuf",
 		      NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_SERVERSENDBUF);
@@ -781,15 +769,6 @@ register_default_handlers(void)
 		      NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DISABLE_PERSISTENT_LOAD);
     netsnmp_ds_register_config(ASN_BOOLEAN, "snmp", "noPersistentSave",
 		      NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DISABLE_PERSISTENT_SAVE);
-    netsnmp_ds_register_config(ASN_BOOLEAN, "snmp",
-                               "noContextEngineIDDiscovery",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_NO_DISCOVERY);
-    netsnmp_ds_register_config(ASN_INTEGER, "snmp", "timeout",
-		               NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_TIMEOUT);
-    netsnmp_ds_register_config(ASN_INTEGER, "snmp", "retries",
-		               NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_RETRIES);
-
     netsnmp_register_service_handlers();
 }
 
@@ -838,19 +817,10 @@ init_snmp(const char *type)
     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
-#ifdef DNSSEC_LOCAL_VALIDATION
-    netsnmp_ds_register_config(ASN_BOOLEAN, "snmp", "dnssecWarnOnly",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_DNSSEC_WARN_ONLY);
-#endif
 
     read_premib_configs();
 #ifndef NETSNMP_DISABLE_MIB_LOADING
@@ -861,28 +831,6 @@ init_snmp(const char *type)
 
 }                               /* 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)
 {
@@ -912,9 +860,6 @@ snmp_shutdown(const char *type)
 #ifndef NETSNMP_DISABLE_MIB_LOADING
     shutdown_mib();
 #endif /* NETSNMP_DISABLE_MIB_LOADING */
-#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL)
-    netsnmp_certs_shutdown();
-#endif
     unregister_all_config_handlers();
     netsnmp_container_free_list();
     clear_sec_mod();
@@ -922,9 +867,10 @@ snmp_shutdown(const char *type)
     netsnmp_clear_tdomain_list();
     clear_callback();
     netsnmp_ds_shutdown();
+    clear_user_list();
     netsnmp_clear_default_target();
     netsnmp_clear_default_domain();
-    shutdown_secmod();
+    free_etimelist();
 
     init_snmp_init_done  = 0;
     _init_snmp_init_done = 0;
@@ -958,8 +904,6 @@ snmp_open(netsnmp_session *session)
 /*
  * extended open 
  */
-netsnmp_feature_child_of(snmp_open_ex, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_SNMP_OPEN_EX
 netsnmp_session *
 snmp_open_ex(netsnmp_session *session,
              int (*fpre_parse)	(netsnmp_session *, netsnmp_transport *,
@@ -994,7 +938,6 @@ snmp_open_ex(netsnmp_session *session,
 
     return (slp->session);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNMP_OPEN_EX */
 
 static struct session_list *
 _sess_copy(netsnmp_session * in_session)
@@ -1005,6 +948,7 @@ _sess_copy(netsnmp_session * in_session)
     struct snmp_secmod_def *sptr;
     char           *cp;
     u_char         *ucp;
+    size_t          i;
 
     in_session->s_snmp_errno = 0;
     in_session->s_errno = 0;
@@ -1042,7 +986,6 @@ _sess_copy(netsnmp_session * in_session)
      * zero out pointers so if we have to free the session we wont free mem
      * owned by in_session 
      */
-    session->localname = NULL;
     session->peername = NULL;
     session->community = NULL;
     session->contextEngineID = NULL;
@@ -1107,6 +1050,39 @@ _sess_copy(netsnmp_session * in_session)
             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) {
@@ -1152,7 +1128,6 @@ _sess_copy(netsnmp_session * in_session)
             snmp_sess_close(slp);
             return (NULL);
         }
-        session->contextNameLen = in_session->contextNameLen;
     } else {
         if ((cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
                                         NETSNMP_DS_LIB_CONTEXT)) != NULL)
@@ -1184,56 +1159,86 @@ _sess_copy(netsnmp_session * in_session)
         session->securityNameLen = strlen(cp);
     }
 
-    if (session->retries == SNMP_DEFAULT_RETRIES) {
-        int retry = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID,
-                                       NETSNMP_DS_LIB_RETRIES);
-        if (retry < 0)
-            session->retries = DEFAULT_RETRIES;
-        else
-            session->retries = retry;
+    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 (session->timeout == SNMP_DEFAULT_TIMEOUT) {
-        int timeout = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID,
-                                         NETSNMP_DS_LIB_TIMEOUT);
-        if (timeout <= 0)
-            session->timeout = DEFAULT_TIMEOUT;
-        else
-            session->timeout = timeout * ONE_SEC;
+
+    
+    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)
+        session->timeout = DEFAULT_TIMEOUT;
     session->sessid = snmp_get_next_sessid();
 
     snmp_call_callbacks(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_SESSION_INIT,
                         session);
 
-    if ((sptr = find_sec_mod(session->securityModel)) != NULL) {
+    if ((sptr = find_sec_mod(session->securityModel)) != NULL &&
+        sptr->session_open != NULL) {
         /*
-         * security module specific copying 
+         * security module specific inialization 
          */
-        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;
-            }
-        }
+        (*sptr->session_open) (session);
     }
 
-    /* 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);
 }
 
@@ -1251,98 +1256,6 @@ snmp_sess_copy(netsnmp_session * pss)
     return psl;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_SNMPV3_PROBE_CONTEXTENGINEID_RFC5343
-/**
- * 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.
- */
-int
-snmpv3_probe_contextEngineID_rfc5343(void *slp, netsnmp_session *session) {
-    netsnmp_pdu    *pdu = NULL, *response = NULL;
-    static oid      snmpEngineIDoid[]   = { 1,3,6,1,6,3,10,2,1,1,0};
-    static size_t   snmpEngineIDoid_len = 11;
-
-    static char     probeEngineID[] = { (char)0x80, 0, 0, 0, 6 };
-    static size_t   probeEngineID_len = sizeof(probeEngineID);
-    
-    int status;
-
-    pdu = snmp_pdu_create(SNMP_MSG_GET);
-    if (!pdu)
-        return SNMP_ERR_GENERR;
-    pdu->version = SNMP_VERSION_3;
-    /* don't require a securityName */
-    if (session->securityName) {
-        pdu->securityName = strdup(session->securityName);
-        pdu->securityNameLen = strlen(pdu->securityName);
-    }
-    pdu->securityLevel = SNMP_SEC_LEVEL_NOAUTH;
-    pdu->securityModel = session->securityModel;
-    if (memdup(&pdu->contextEngineID, probeEngineID, probeEngineID_len) !=
-        SNMPERR_SUCCESS) {
-        snmp_log(LOG_ERR, "failed to clone memory for rfc5343 probe\n");
-        snmp_free_pdu(pdu);
-        return SNMP_ERR_GENERR;
-    }
-    pdu->contextEngineIDLen = probeEngineID_len;
-    
-    snmp_add_null_var(pdu, snmpEngineIDoid, snmpEngineIDoid_len);
-
-    DEBUGMSGTL(("snmp_api", "probing for engineID using rfc5343 methods...\n"));
-    session->flags |= SNMP_FLAGS_DONT_PROBE; /* prevent recursion */
-    status = snmp_sess_synch_response(slp, pdu, &response);
-
-    if ((response == NULL) || (status != STAT_SUCCESS)) {
-        snmp_log(LOG_ERR, "failed rfc5343 contextEngineID probing\n");
-        return SNMP_ERR_GENERR;
-    }
-
-    /* check that the response makes sense */
-    if (NULL != response->variables &&
-        NULL != response->variables->name &&
-        snmp_oid_compare(response->variables->name,
-                         response->variables->name_length,
-                         snmpEngineIDoid, snmpEngineIDoid_len) == 0 &&
-        ASN_OCTET_STR == response->variables->type  &&
-        NULL != response->variables->val.string &&
-        response->variables->val_len > 0) {
-        if (memdup(&session->contextEngineID,
-                   response->variables->val.string,
-                   response->variables->val_len) != SNMPERR_SUCCESS) {
-            snmp_log(LOG_ERR, "failed rfc5343 contextEngineID probing: memory allocation failed\n");
-            return SNMP_ERR_GENERR;
-        }
-        
-        /* technically there likely isn't a securityEngineID but just
-           in case anyone goes looking we might as well have one */
-        if (memdup(&session->securityEngineID,
-                   response->variables->val.string,
-                   response->variables->val_len) != SNMPERR_SUCCESS) {
-            snmp_log(LOG_ERR, "failed rfc5343 securityEngineID probing: memory allocation failed\n");
-            return SNMP_ERR_GENERR;
-        }
-        
-        session->securityEngineIDLen = session->contextEngineIDLen =
-            response->variables->val_len;
-        
-        if (snmp_get_do_debugging()) {
-            size_t i;
-            DEBUGMSGTL(("snmp_sess_open",
-                        "  probe found engineID:  "));
-            for (i = 0; i < session->securityEngineIDLen; i++)
-                DEBUGMSG(("snmp_sess_open", "%02x",
-                          session->securityEngineID[i]));
-            DEBUGMSG(("snmp_sess_open", "\n"));
-        }
-    }
-    return SNMPERR_SUCCESS;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_SNMPV3_PROBE_CONTEXTENGINEID_RFC5343 */
-
 
 /**
  * probe for peer engineID
@@ -1363,17 +1276,16 @@ int
 snmpv3_engineID_probe(struct session_list *slp,
                       netsnmp_session * in_session)
 {
+    netsnmp_pdu    *pdu = NULL, *response = NULL;
     netsnmp_session *session;
+    unsigned int    i;
     int             status;
-    struct snmp_secmod_def *sptr = NULL;
 
     if (slp == NULL || slp->session == NULL) {
         return 0;
     }
 
     session = slp->session;
-    netsnmp_assert_or_return(session != NULL, 0);
-    sptr = find_sec_mod(session->securityModel);
 
     /*
      * If we are opening a V3 session and we don't know engineID we must probe
@@ -1381,138 +1293,84 @@ snmpv3_engineID_probe(struct session_list *slp,
      * list so that the response can handled correctly. 
      */
 
-    if (session->version == SNMP_VERSION_3 &&
-        (0 == (session->flags & SNMP_FLAGS_DONT_PROBE))) {
-        if (NULL != sptr && NULL != sptr->probe_engineid) {
-            DEBUGMSGTL(("snmp_api", "probing for engineID using security model callback...\n"));
-            /* security model specific mechanism of determining engineID */
-            status = (*sptr->probe_engineid) (slp, in_session);
-            if (status != SNMPERR_SUCCESS)
+    if ((session->flags & SNMP_FLAGS_DONT_PROBE) == SNMP_FLAGS_DONT_PROBE)
+        return 1;
+
+    if (session->version == SNMP_VERSION_3) {
+        if (session->securityEngineIDLen == 0) {
+            if (snmpv3_build_probe_pdu(&pdu) != 0) {
+                DEBUGMSGTL(("snmp_api", "unable to create probe PDU\n"));
                 return 0;
-        } else {
-            /* XXX: default to the default RFC5343 contextEngineID Probe? */
-            return 0;
-        }
-    }
+            }
+            DEBUGMSGTL(("snmp_api", "probing for engineID...\n"));
+            session->flags |= SNMP_FLAGS_DONT_PROBE; /* prevent recursion */
+            status = snmp_sess_synch_response(slp, pdu, &response);
 
-    /* see if there was any hooks to call after the engineID probing */
-    if (sptr && sptr->post_probe_engineid) {
-        status = (*sptr->post_probe_engineid)(slp, in_session);
-        if (status != SNMPERR_SUCCESS)
-            return 0;
-    }
+            if ((response == NULL) && (status == STAT_SUCCESS)) {
+                status = STAT_ERROR;
+            }
 
-    return 1;
-}
+            switch (status) {
+            case STAT_SUCCESS:
+                in_session->s_snmp_errno = SNMPERR_INVALID_MSG; /* XX?? */
+                DEBUGMSGTL(("snmp_sess_open",
+                            "error: expected Report as response to probe: %s (%d)\n",
+                            snmp_errstring(response->errstat),
+                            response->errstat));
+                break;
+            case STAT_ERROR:   /* this is what we expected -> Report == STAT_ERROR */
+                in_session->s_snmp_errno = SNMPERR_UNKNOWN_ENG_ID;
+                break;
+            case STAT_TIMEOUT:
+                in_session->s_snmp_errno = SNMPERR_TIMEOUT;
+            default:
+                DEBUGMSGTL(("snmp_sess_open",
+                            "unable to connect with remote engine: %s (%d)\n",
+                            snmp_api_errstring(session->s_snmp_errno),
+                            session->s_snmp_errno));
+                break;
+            }
 
-/*******************************************************************-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;
+            if (slp->session->securityEngineIDLen == 0) {
+                DEBUGMSGTL(("snmp_api",
+                            "unable to determine remote engine ID\n"));
+                return 0;
             }
 
-            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;
-                }
+            in_session->s_snmp_errno = SNMPERR_SUCCESS;
+            if (snmp_get_do_debugging()) {
+                DEBUGMSGTL(("snmp_sess_open",
+                            "  probe found engineID:  "));
+                for (i = 0; i < slp->session->securityEngineIDLen; i++)
+                    DEBUGMSG(("snmp_sess_open", "%02x",
+                              slp->session->securityEngineID[i]));
+                DEBUGMSG(("snmp_sess_open", "\n"));
             }
-        } 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 boot/time supplied set it for this engineID 
+         */
+        if (session->engineBoots || session->engineTime) {
+            set_enginetime(session->securityEngineID,
+                           session->securityEngineIDLen,
+                           session->engineBoots, session->engineTime,
+                           TRUE);
+        }
 
-    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;
+        if (create_user_from_session(slp->session) != SNMPERR_SUCCESS) {
+            in_session->s_snmp_errno = SNMPERR_UNKNOWN_USER_NAME;       /* XX?? */
+            DEBUGMSGTL(("snmp_api",
+                        "snmpv3_engine_probe(): failed(2) to create a new user from session\n"));
+            return 0;
+        }
     }
 
-    transport->flags |= NETSNMP_TRANSPORT_FLAG_OPENED;
-    DEBUGMSGTL(("snmp_sess", "done opening transport: %x\n", transport->flags & NETSNMP_TRANSPORT_FLAG_OPENED));
-    return SNMPERR_SUCCESS;
+    return 1;
 }
 
+
+
 /*******************************************************************-o-******
  * snmp_sess_open
  *
@@ -1528,82 +1386,75 @@ netsnmp_sess_config_and_open_transport(netsnmp_session *in_session,
 static void    *
 _sess_open(netsnmp_session * in_session)
 {
-    netsnmp_transport *transport = NULL;
-    int rc;
+    struct session_list *slp;
+    netsnmp_session *session;
+    char            *clientaddr_save = NULL;
 
     in_session->s_snmp_errno = 0;
     in_session->s_errno = 0;
 
     _init_snmp();
 
-    {
-        char *clientaddr_save = NULL;
-
-        if (NULL != in_session->localname) {
-            clientaddr_save =
-                netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                      NETSNMP_DS_LIB_CLIENT_ADDR);
-            netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID,
-                                  NETSNMP_DS_LIB_CLIENT_ADDR,
-                                  in_session->localname);
-        }
-
-        if (in_session->flags & SNMP_FLAGS_STREAM_SOCKET) {
-            transport =
-                netsnmp_tdomain_transport_full("snmp", in_session->peername,
-                                               in_session->local_port, "tcp",
-                                               NULL);
-        } else {
-            transport =
-                netsnmp_tdomain_transport_full("snmp", in_session->peername,
-                                               in_session->local_port, "udp",
-                                               NULL);
-        }
+    if ((slp = snmp_sess_copy(in_session)) == NULL) {
+        return (NULL);
+    }
+    session = slp->session;
+    slp->transport = NULL;
+
+    if (NULL != session->localname) {
+        clientaddr_save = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                                NETSNMP_DS_LIB_CLIENT_ADDR);
+        netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID,
+                              NETSNMP_DS_LIB_CLIENT_ADDR, session->localname);
+    }
 
-        if (NULL != clientaddr_save)
-            netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID,
-                                  NETSNMP_DS_LIB_CLIENT_ADDR, clientaddr_save);
+    if (session->flags & SNMP_FLAGS_STREAM_SOCKET) {
+        slp->transport =
+	  netsnmp_tdomain_transport_full("snmp", session->peername,
+					 session->local_port, "tcp", NULL);
+    } else {
+        slp->transport =
+	  netsnmp_tdomain_transport_full("snmp", session->peername,
+					 session->local_port, "udp", NULL);
     }
 
-    if (transport == NULL) {
+    if (NULL != session->localname)
+        netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID,
+                              NETSNMP_DS_LIB_CLIENT_ADDR, clientaddr_save);
+
+    if (slp->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);
+        snmp_set_detail(session->peername);
+        snmp_sess_close(slp);
         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;
+    session->rcvMsgMaxSize = slp->transport->msgMaxSize;
+
+    if (!snmpv3_engineID_probe(slp, in_session)) {
+        snmp_sess_close(slp);
         return NULL;
     }
+    if (create_user_from_session(slp->session) != SNMPERR_SUCCESS) {
+        in_session->s_snmp_errno = SNMPERR_UNKNOWN_USER_NAME;       /* XX?? */
+        DEBUGMSGTL(("snmp_api",
+                    "_sess_open(): failed(2) to create a new user from session\n"));
+        snmp_sess_close(slp);
+        return NULL;
+    }
+    
+    session->flags &= ~SNMP_FLAGS_DONT_PROBE;
 
-#if defined(SO_BROADCAST) && defined(SOL_SOCKET)
-    if ( in_session->flags & SNMP_FLAGS_UDP_BROADCAST) {
-        int   b = 1;
-        int   rc;
-
-        rc = setsockopt(transport->sock, SOL_SOCKET, SO_BROADCAST,
-                        (char *)&b, sizeof(b));
 
-        if ( rc != 0 ) {
-            in_session->s_snmp_errno = SNMPERR_BAD_ADDRESS; /* good as any? */
-            in_session->s_errno = errno;
+    return (void *) slp;
+}                               /* end snmp_sess_open() */
 
-            DEBUGMSGTL(("_sess_open", "couldn't enable UDP_BROADCAST\n"));
-            return NULL;
-        }
-    }
-#endif
 
-    return snmp_sess_add(in_session, transport, NULL, NULL);
-}
 
 /*
- * EXTENDED SESSION API ------------------------------------------ 
+ * EXPERIMENTAL API EXTENSIONS ------------------------------------------ 
  * 
  * snmp_sess_add_ex, snmp_sess_add, snmp_add 
  * 
@@ -1694,8 +1545,7 @@ snmp_sess_add_ex(netsnmp_session * in_session,
                                               size_t))
 {
     struct session_list *slp;
-    int rc;
-    
+
     _init_snmp();
 
     if (transport == NULL)
@@ -1707,24 +1557,8 @@ snmp_sess_add_ex(netsnmp_session * in_session,
         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);
@@ -1744,12 +1578,19 @@ snmp_sess_add_ex(netsnmp_session * in_session,
 
     if (slp->session->version == SNMP_VERSION_3) {
         DEBUGMSGTL(("snmp_sess_add",
-                    "adding v3 session -- maybe engineID probe now\n"));
-        if (!snmpv3_engineID_probe(slp, slp->session)) {
+                    "adding v3 session -- engineID probe now\n"));
+        if (!snmpv3_engineID_probe(slp, in_session)) {
             DEBUGMSGTL(("snmp_sess_add", "engine ID probe failed\n"));
             snmp_sess_close(slp);
             return NULL;
         }
+        if (create_user_from_session(slp->session) != SNMPERR_SUCCESS) {
+            in_session->s_snmp_errno = SNMPERR_UNKNOWN_USER_NAME;
+            DEBUGMSGTL(("snmp_api",
+                        "snmp_sess_add(): failed(2) to create a new user from session\n"));
+            snmp_sess_close(slp);
+            return NULL;
+        }
     }
 
     slp->session->flags &= ~SNMP_FLAGS_DONT_PROBE;
@@ -1783,17 +1624,217 @@ snmp_sess_open(netsnmp_session * pss)
     return pvoid;
 }
 
+
+
+/*
+ * create_user_from_session(netsnmp_session *session):
+ * 
+ * creates a user in the usm table from the information in a session.
+ * If the user already exists, it is updated with the current
+ * information from the session
+ * 
+ * Parameters:
+ * session -- IN: pointer to the session to use when creating the user.
+ * 
+ * Returns:
+ * SNMPERR_SUCCESS
+ * SNMPERR_GENERR 
+ */
 int
-create_user_from_session(netsnmp_session * session) {
-#ifdef NETSNMP_SECMOD_USM
-    return usm_create_user_from_session(session);
-#else
-    snmp_log(LOG_ERR, "create_user_from_session called when USM wasn't compiled in");
-    netsnmp_assert(0 == 1);
-    return SNMP_ERR_GENERR;
-#endif
-}
+create_user_from_session(netsnmp_session * session)
+{
+    struct usmUser *user;
+    int             user_just_created = 0;
+    char *cp;
 
+    /*
+     * - don't create-another/copy-into user for this session by default
+     * - bail now (no error) if we don't have an engineID
+     */
+    if (SNMP_FLAGS_USER_CREATED == (session->flags & SNMP_FLAGS_USER_CREATED) ||
+        session->securityModel != SNMP_SEC_MODEL_USM ||
+        session->version != SNMP_VERSION_3 ||
+        session->securityNameLen == 0 ||
+        session->securityEngineIDLen == 0)
+        return SNMPERR_SUCCESS;
+
+    session->flags |= SNMP_FLAGS_USER_CREATED;
+
+    /*
+     * now that we have the engineID, create an entry in the USM list
+     * for this user using the information in the session 
+     */
+    user = usm_get_user_from_list(session->securityEngineID,
+                                  session->securityEngineIDLen,
+                                  session->securityName,
+                                  usm_get_userList(), 0);
+    if (user == NULL) {
+        DEBUGMSGTL(("snmp_api", "Building user %s...\n",
+                    session->securityName));
+        /*
+         * user doesn't exist so we create and add it 
+         */
+        user = (struct usmUser *) calloc(1, sizeof(struct usmUser));
+        if (user == NULL)
+            return SNMPERR_GENERR;
+
+        /*
+         * copy in the securityName 
+         */
+        if (session->securityName) {
+            user->name = strdup(session->securityName);
+            user->secName = strdup(session->securityName);
+            if (user->name == NULL || user->secName == NULL) {
+                usm_free_user(user);
+                return SNMPERR_GENERR;
+            }
+        }
+
+        /*
+         * copy in the engineID 
+         */
+        if (memdup(&user->engineID, session->securityEngineID,
+                   session->securityEngineIDLen) != SNMPERR_SUCCESS) {
+            usm_free_user(user);
+            return SNMPERR_GENERR;
+        }
+        user->engineIDLen = session->securityEngineIDLen;
+
+        user_just_created = 1;
+    }
+    /*
+     * copy the auth protocol 
+     */
+    if (session->securityAuthProto != NULL) {
+        SNMP_FREE(user->authProtocol);
+        user->authProtocol =
+            snmp_duplicate_objid(session->securityAuthProto,
+                                 session->securityAuthProtoLen);
+        if (user->authProtocol == NULL) {
+            usm_free_user(user);
+            return SNMPERR_GENERR;
+        }
+        user->authProtocolLen = session->securityAuthProtoLen;
+    }
+
+    /*
+     * copy the priv protocol 
+     */
+    if (session->securityPrivProto != NULL) {
+        SNMP_FREE(user->privProtocol);
+        user->privProtocol =
+            snmp_duplicate_objid(session->securityPrivProto,
+                                 session->securityPrivProtoLen);
+        if (user->privProtocol == NULL) {
+            usm_free_user(user);
+            return SNMPERR_GENERR;
+        }
+        user->privProtocolLen = session->securityPrivProtoLen;
+    }
+
+    /*
+     * copy in the authentication Key.  If not localized, localize it 
+     */
+    if (session->securityAuthLocalKey != NULL
+        && session->securityAuthLocalKeyLen != 0) {
+        /* already localized key passed in.  use it */
+        SNMP_FREE(user->authKey);
+        if (memdup(&user->authKey, session->securityAuthLocalKey,
+                   session->securityAuthLocalKeyLen) != SNMPERR_SUCCESS) {
+            usm_free_user(user);
+            return SNMPERR_GENERR;
+        }
+        user->authKeyLen = session->securityAuthLocalKeyLen;
+    } else if (session->securityAuthKey != NULL
+        && session->securityAuthKeyLen != 0) {
+        SNMP_FREE(user->authKey);
+        user->authKey = (u_char *) calloc(1, USM_LENGTH_KU_HASHBLOCK);
+        if (user->authKey == NULL) {
+            usm_free_user(user);
+            return SNMPERR_GENERR;
+        }
+        user->authKeyLen = USM_LENGTH_KU_HASHBLOCK;
+        if (generate_kul(user->authProtocol, user->authProtocolLen,
+                         session->securityEngineID,
+                         session->securityEngineIDLen,
+                         session->securityAuthKey,
+                         session->securityAuthKeyLen, user->authKey,
+                         &user->authKeyLen) != SNMPERR_SUCCESS) {
+            usm_free_user(user);
+            return SNMPERR_GENERR;
+        }
+    } else if ((cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
+                                           NETSNMP_DS_LIB_AUTHLOCALIZEDKEY))) {
+        size_t buflen = USM_AUTH_KU_LEN;
+        SNMP_FREE(user->authKey);
+        user->authKey = (u_char *)malloc(buflen); /* max length needed */
+        user->authKeyLen = 0;
+        /* it will be a hex string */
+        if (!snmp_hex_to_binary(&user->authKey, &buflen, &user->authKeyLen,
+                                0, cp)) {
+            usm_free_user(user);
+            return SNMPERR_GENERR;
+        }
+    }
+
+    /*
+     * copy in the privacy Key.  If not localized, localize it 
+     */
+    if (session->securityPrivLocalKey != NULL
+        && session->securityPrivLocalKeyLen != 0) {
+        /* already localized key passed in.  use it */
+        SNMP_FREE(user->privKey);
+        if (memdup(&user->privKey, session->securityPrivLocalKey,
+                   session->securityPrivLocalKeyLen) != SNMPERR_SUCCESS) {
+            usm_free_user(user);
+            return SNMPERR_GENERR;
+        }
+        user->privKeyLen = session->securityPrivLocalKeyLen;
+    } else if (session->securityPrivKey != NULL
+        && session->securityPrivKeyLen != 0) {
+        SNMP_FREE(user->privKey);
+        user->privKey = (u_char *) calloc(1, USM_LENGTH_KU_HASHBLOCK);
+        if (user->privKey == NULL) {
+            usm_free_user(user);
+            return SNMPERR_GENERR;
+        }
+        user->privKeyLen = USM_LENGTH_KU_HASHBLOCK;
+        if (generate_kul(user->authProtocol, user->authProtocolLen,
+                         session->securityEngineID,
+                         session->securityEngineIDLen,
+                         session->securityPrivKey,
+                         session->securityPrivKeyLen, user->privKey,
+                         &user->privKeyLen) != SNMPERR_SUCCESS) {
+            usm_free_user(user);
+            return SNMPERR_GENERR;
+        }
+    } else if ((cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
+                                           NETSNMP_DS_LIB_PRIVLOCALIZEDKEY))) {
+        size_t buflen = USM_PRIV_KU_LEN;
+        SNMP_FREE(user->privKey);
+        user->privKey = (u_char *)malloc(buflen); /* max length needed */
+        user->privKeyLen = 0;
+        /* it will be a hex string */
+        if (!snmp_hex_to_binary(&user->privKey, &buflen, &user->privKeyLen,
+                                0, cp)) {
+            usm_free_user(user);
+            return SNMPERR_GENERR;
+        }
+    }
+
+    if (user_just_created) {
+        /*
+         * add the user into the database 
+         */
+        user->userStatus = RS_ACTIVE;
+        user->userStorageType = ST_READONLY;
+        usm_add_user(user);
+    }
+
+    return SNMPERR_SUCCESS;
+
+
+}                               /* end create_user_from_session() */
 
 /*
  *  Do a "deep free()" of a netsnmp_session.
@@ -1806,7 +1847,6 @@ static void
 snmp_free_session(netsnmp_session * s)
 {
     if (s) {
-        SNMP_FREE(s->localname);
         SNMP_FREE(s->peername);
         SNMP_FREE(s->community);
         SNMP_FREE(s->contextEngineID);
@@ -1851,7 +1891,7 @@ snmp_sess_close(void *sessp)
     }
 
     isp = slp->internal;
-    slp->internal = NULL;
+    slp->internal = 0;
 
     if (isp) {
         netsnmp_request_list *rp, *orp;
@@ -1865,11 +1905,6 @@ snmp_sess_close(void *sessp)
         while (rp) {
             orp = rp;
             rp = rp->next_request;
-            if (orp->callback) {
-                orp->callback(NETSNMP_CALLBACK_OP_TIMED_OUT,
-                              slp->session, orp->pdu->reqid,
-                              orp->pdu, orp->cb_data);
-            }
             snmp_free_pdu(orp->pdu);
             free((char *) orp);
         }
@@ -1878,7 +1913,7 @@ snmp_sess_close(void *sessp)
     }
 
     transport = slp->transport;
-    slp->transport = NULL;
+    slp->transport = 0;
 
     if (transport) {
         transport->f_close(transport);
@@ -1886,7 +1921,7 @@ snmp_sess_close(void *sessp)
     }
 
     sesp = slp->session;
-    slp->session = NULL;
+    slp->session = 0;
 
     /*
      * The following is necessary to avoid memory leakage when closing AgentX 
@@ -1955,6 +1990,49 @@ snmp_close_sessions(void)
     return 1;
 }
 
+static int
+snmpv3_build_probe_pdu(netsnmp_pdu **pdu)
+{
+    struct usmUser *user;
+
+    /*
+     * create the pdu 
+     */
+    if (!pdu)
+        return -1;
+    *pdu = snmp_pdu_create(SNMP_MSG_GET);
+    if (!(*pdu))
+        return -1;
+    (*pdu)->version = SNMP_VERSION_3;
+    (*pdu)->securityName = strdup("");
+    (*pdu)->securityNameLen = strlen((*pdu)->securityName);
+    (*pdu)->securityLevel = SNMP_SEC_LEVEL_NOAUTH;
+    (*pdu)->securityModel = SNMP_SEC_MODEL_USM;
+
+    /*
+     * create the empty user 
+     */
+    user = usm_get_user(NULL, 0, (*pdu)->securityName);
+    if (user == NULL) {
+        user = (struct usmUser *) calloc(1, sizeof(struct usmUser));
+        if (user == NULL) {
+            snmp_free_pdu(*pdu);
+            *pdu = (netsnmp_pdu *) NULL;
+            return -1;
+        }
+        user->name = strdup((*pdu)->securityName);
+        user->secName = strdup((*pdu)->securityName);
+        user->authProtocolLen = sizeof(usmNoAuthProtocol) / sizeof(oid);
+        user->authProtocol =
+            snmp_duplicate_objid(usmNoAuthProtocol, user->authProtocolLen);
+        user->privProtocolLen = sizeof(usmNoPrivProtocol) / sizeof(oid);
+        user->privProtocol =
+            snmp_duplicate_objid(usmNoPrivProtocol, user->privProtocolLen);
+        usm_add_user(user);
+    }
+    return 0;
+}
+
 static void
 snmpv3_calc_msg_flags(int sec_level, int msg_command, u_char * flags)
 {
@@ -1999,16 +2077,10 @@ snmpv3_verify_msg(netsnmp_request_list *rp, netsnmp_pdu *pdu)
     if (rpdu->contextNameLen != pdu->contextNameLen ||
         memcmp(rpdu->contextName, pdu->contextName, pdu->contextNameLen))
         return 0;
-
-    /* tunneled transports don't have a securityEngineID...  that's
-       USM specific (and maybe other future ones) */
-    if (pdu->securityModel == SNMP_SEC_MODEL_USM &&
-        (rpdu->securityEngineIDLen != pdu->securityEngineIDLen ||
+    if (rpdu->securityEngineIDLen != pdu->securityEngineIDLen ||
         memcmp(rpdu->securityEngineID, pdu->securityEngineID,
-               pdu->securityEngineIDLen)))
+               pdu->securityEngineIDLen))
         return 0;
-
-    /* the securityName must match though regardless of secmodel */
     if (rpdu->securityNameLen != pdu->securityNameLen ||
         memcmp(rpdu->securityName, pdu->securityName,
                pdu->securityNameLen))
@@ -2044,13 +2116,9 @@ snmpv3_build(u_char ** pkt, size_t * pkt_len, size_t * offset,
         /*
          * Fallthrough 
          */
-#ifndef NETSNMP_NOTIFY_ONLY
     case SNMP_MSG_GET:
     case SNMP_MSG_GETNEXT:
-#endif /* ! NETSNMP_NOTIFY_ONLY */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case SNMP_MSG_SET:
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     case SNMP_MSG_INFORM:
         if (pdu->errstat == SNMP_DEFAULT_ERRSTAT)
             pdu->errstat = 0;
@@ -2058,7 +2126,6 @@ snmpv3_build(u_char ** pkt, size_t * pkt_len, size_t * offset,
             pdu->errindex = 0;
         break;
 
-#ifndef NETSNMP_NOTIFY_ONLY
     case SNMP_MSG_GETBULK:
         if (pdu->max_repetitions < 0) {
             session->s_snmp_errno = SNMPERR_BAD_REPETITIONS;
@@ -2069,7 +2136,6 @@ snmpv3_build(u_char ** pkt, size_t * pkt_len, size_t * offset,
             return -1;
         }
         break;
-#endif /* ! NETSNMP_NOTIFY_ONLY */
 
     case SNMP_MSG_TRAP:
         session->s_snmp_errno = SNMPERR_V1_IN_V2;
@@ -2120,30 +2186,20 @@ snmpv3_build(u_char ** pkt, size_t * pkt_len, size_t * offset,
     if (pdu->securityModel == SNMP_DEFAULT_SECMODEL) {
         pdu->securityModel = session->securityModel;
         if (pdu->securityModel == SNMP_DEFAULT_SECMODEL) {
-            pdu->securityModel = se_find_value_in_slist("snmp_secmods", netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_SECMODEL));
-            
-            if (pdu->securityModel <= 0) {
-                pdu->securityModel = SNMP_SEC_MODEL_USM;
-            }
+            pdu->securityModel = SNMP_SEC_MODEL_USM;
         }
     }
-    if (pdu->securityNameLen == 0 && pdu->securityName == NULL) {
-        if (session->securityModel != SNMP_SEC_MODEL_TSM &&
-            session->securityNameLen == 0) {
+    if (pdu->securityNameLen == 0 && pdu->securityName == 0) {
+        if (session->securityNameLen == 0) {
             session->s_snmp_errno = SNMPERR_BAD_SEC_NAME;
             return -1;
         }
-        if (session->securityName) {
-            pdu->securityName = strdup(session->securityName);
-            if (pdu->securityName == NULL) {
-                session->s_snmp_errno = SNMPERR_GENERR;
-                return -1;
-            }
-            pdu->securityNameLen = session->securityNameLen;
-        } else {
-            pdu->securityName = strdup("");
-            session->securityName = strdup("");
+        pdu->securityName = strdup(session->securityName);
+        if (pdu->securityName == NULL) {
+            session->s_snmp_errno = SNMPERR_GENERR;
+            return -1;
         }
+        pdu->securityNameLen = session->securityNameLen;
     }
     if (pdu->securityLevel == 0) {
         if (session->securityLevel == 0) {
@@ -2403,8 +2459,12 @@ snmpv3_scopedPDU_header_build(netsnmp_pdu *pdu,
                               u_char * packet, size_t * out_length,
                               u_char ** spdu_e)
 {
+    size_t          init_length;
     u_char         *scopedPdu, *pb;
 
+
+    init_length = *out_length;
+
     pb = scopedPdu = packet;
     pb = asn_build_sequence(pb, out_length,
                             (u_char) (ASN_SEQUENCE | ASN_CONSTRUCTOR), 0);
@@ -2714,12 +2774,13 @@ _snmp_build(u_char ** pkt, size_t * pkt_len, size_t * offset,
             netsnmp_session * session, netsnmp_pdu *pdu)
 {
 #if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
-    u_char         *h0e = NULL;
+    u_char         *h0e = 0;
     size_t          start_offset = *offset;
     long            version;
     int             rc = 0;
 #endif /* support for community based SNMP */
     
+    u_char         *h0, *h1;
     u_char         *cp;
     size_t          length;
 
@@ -2736,13 +2797,9 @@ _snmp_build(u_char ** pkt, size_t * pkt_len, size_t * offset,
         /*
          * Fallthrough 
          */
-#ifndef NETSNMP_NOTIFY_ONLY
     case SNMP_MSG_GET:
     case SNMP_MSG_GETNEXT:
-#endif /* ! NETSNMP_NOTIFY_ONLY */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
     case SNMP_MSG_SET:
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         /*
          * all versions support these PDU types 
          */
@@ -2777,7 +2834,6 @@ _snmp_build(u_char ** pkt, size_t * pkt_len, size_t * offset,
             pdu->errindex = 0;
         break;
 
-#ifndef NETSNMP_NOTIFY_ONLY
     case SNMP_MSG_GETBULK:
         /*
          * not supported in SNMPv1 and SNMPsec 
@@ -2797,7 +2853,6 @@ _snmp_build(u_char ** pkt, size_t * pkt_len, size_t * offset,
             return -1;
         }
         break;
-#endif /* ! NETSNMP_NOTIFY_ONLY */
 
     case SNMP_MSG_TRAP:
         /*
@@ -2851,6 +2906,7 @@ _snmp_build(u_char ** pkt, size_t * pkt_len, size_t * offset,
      * upto the PDU sequence
      * (note that actual length of message will be inserted later) 
      */
+    h0 = *pkt;
     switch (pdu->version) {
 #ifndef NETSNMP_DISABLE_SNMPV1
     case SNMP_VERSION_1:
@@ -2881,6 +2937,7 @@ _snmp_build(u_char ** pkt, size_t * pkt_len, size_t * offset,
              */
             if (0 == session->community_len) {
                 SNMP_FREE(pdu->community);
+                pdu->community = NULL;
             } else if (pdu->community_len == session->community_len) {
                 memmove(pdu->community,
                         session->community, session->community_len);
@@ -2898,7 +2955,7 @@ _snmp_build(u_char ** pkt, size_t * pkt_len, size_t * offset,
         }
 #endif                          /* !NETSNMP_NO_ZEROLENGTH_COMMUNITY */
 
-        DEBUGMSGTL(("snmp_send", "Building SNMPv%ld message...\n",
+        DEBUGMSGTL(("snmp_send", "Building SNMPv%d message...\n",
                     (1 + pdu->version)));
 #ifdef NETSNMP_USE_REVERSE_ASNENCODING
         if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_REVERSE_ENCODE)) {
@@ -3027,6 +3084,7 @@ _snmp_build(u_char ** pkt, size_t * pkt_len, size_t * offset,
         return -1;
     }
 
+    h1 = cp;
     DEBUGPRINTPDUTYPE("send", pdu->command);
     cp = snmp_pdu_build(pdu, cp, pkt_len);
     DEBUGINDENTADD(-4);         /* return from entire v1/v2c message */
@@ -3486,10 +3544,8 @@ snmp_parse_version(u_char * data, size_t length)
     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;
         }
@@ -3791,7 +3847,9 @@ snmpv3_parse(netsnmp_pdu *pdu,
             DEBUGINDENTADD(-4);
         }
 
-        SNMP_FREE(mallocbuf);
+        if (mallocbuf) {
+            SNMP_FREE(mallocbuf);
+        }
         return ret_val;
     }
 
@@ -3804,7 +3862,9 @@ snmpv3_parse(netsnmp_pdu *pdu,
     if (data == NULL) {
         snmp_increment_statistic(STAT_SNMPINASNPARSEERRS);
         DEBUGINDENTADD(-4);
-        SNMP_FREE(mallocbuf);
+        if (mallocbuf) {
+            SNMP_FREE(mallocbuf);
+        }
         return SNMPERR_ASN_PARSE_ERR;
     }
 
@@ -3827,11 +3887,15 @@ snmpv3_parse(netsnmp_pdu *pdu,
     if (ret != SNMPERR_SUCCESS) {
         ERROR_MSG("error parsing PDU");
         snmp_increment_statistic(STAT_SNMPINASNPARSEERRS);
-        SNMP_FREE(mallocbuf);
+        if (mallocbuf) {
+            SNMP_FREE(mallocbuf);
+        }
         return SNMPERR_ASN_PARSE_ERR;
     }
 
-    SNMP_FREE(mallocbuf);
+    if (mallocbuf) {
+        SNMP_FREE(mallocbuf);
+    }
     return SNMPERR_SUCCESS;
 }                               /* end snmpv3_parse() */
 
@@ -3943,17 +4007,13 @@ snmpv3_make_report(netsnmp_pdu *pdu, int error)
     /*
      * find the appropriate error counter  
      */
-#ifndef NETSNMP_FEATURE_REMOVE_STATISTICS
     ltmp = snmp_get_statistic(stat_ind);
-#else /* !NETSNMP_FEATURE_REMOVE_STATISTICS */
-    ltmp = 1;
-#endif /* !NETSNMP_FEATURE_REMOVE_STATISTICS */
 
     /*
      * return the appropriate error counter  
      */
     snmp_pdu_add_variable(pdu, err_var, err_var_len,
-                          ASN_COUNTER, & ltmp, sizeof(ltmp));
+                          ASN_COUNTER, (u_char *) & ltmp, sizeof(ltmp));
 
     return SNMPERR_SUCCESS;
 }                               /* end snmpv3_make_report() */
@@ -3963,21 +4023,16 @@ int
 snmpv3_get_report_type(netsnmp_pdu *pdu)
 {
     static oid      snmpMPDStats[] = { 1, 3, 6, 1, 6, 3, 11, 2, 1 };
-    static oid      targetStats[]  = { 1, 3, 6, 1, 6, 3, 12, 1    };
-    static oid      usmStats[]     = { 1, 3, 6, 1, 6, 3, 15, 1, 1 };
+    static oid      usmStats[] = { 1, 3, 6, 1, 6, 3, 15, 1, 1 };
     netsnmp_variable_list *vp;
     int             rpt_type = SNMPERR_UNKNOWN_REPORT;
 
     if (pdu == NULL || pdu->variables == NULL)
         return rpt_type;
     vp = pdu->variables;
-    /* MPD or USM based report statistics objects have the same length prefix
-     *   so the actual statistics OID will have this length,
-     *   plus one subidentifier for the scalar MIB object itself,
-     *   and one for the instance subidentifier
-     */
     if (vp->name_length == REPORT_STATS_LEN + 2) {
-        if (memcmp(snmpMPDStats, vp->name, REPORT_STATS_LEN * sizeof(oid)) == 0) {
+        if (memcmp(snmpMPDStats, vp->name, REPORT_STATS_LEN * sizeof(oid))
+            == 0) {
             switch (vp->name[REPORT_STATS_LEN]) {
             case REPORT_snmpUnknownSecurityModels_NUM:
                 rpt_type = SNMPERR_UNKNOWN_SEC_MODEL;
@@ -3985,11 +4040,10 @@ snmpv3_get_report_type(netsnmp_pdu *pdu)
             case REPORT_snmpInvalidMsgs_NUM:
                 rpt_type = SNMPERR_INVALID_MSG;
                 break;
-            case REPORT_snmpUnknownPDUHandlers_NUM:
-                rpt_type = SNMPERR_BAD_VERSION;
-                break;
             }
-        } else if (memcmp(usmStats, vp->name, REPORT_STATS_LEN * sizeof(oid)) == 0) {
+        } else
+            if (memcmp(usmStats, vp->name, REPORT_STATS_LEN * sizeof(oid))
+                == 0) {
             switch (vp->name[REPORT_STATS_LEN]) {
             case REPORT_usmStatsUnsupportedSecLevels_NUM:
                 rpt_type = SNMPERR_UNSUPPORTED_SEC_LEVEL;
@@ -4012,21 +4066,6 @@ snmpv3_get_report_type(netsnmp_pdu *pdu)
             }
         }
     }
-    /* Context-based report statistics from the Target MIB are similar
-     *   but the OID prefix has a different length
-     */
-    if (vp->name_length == REPORT_STATS_LEN2 + 2) {
-        if (memcmp(targetStats, vp->name, REPORT_STATS_LEN2 * sizeof(oid)) == 0) {
-            switch (vp->name[REPORT_STATS_LEN2]) {
-            case REPORT_snmpUnavailableContexts_NUM:
-                rpt_type = SNMPERR_BAD_CONTEXT;
-                break;
-            case REPORT_snmpUnknownContexts_NUM:
-                rpt_type = SNMPERR_BAD_CONTEXT;
-                break;
-            }
-        }
-    }
     DEBUGMSGTL(("report", "Report type: %d\n", rpt_type));
     return rpt_type;
 }
@@ -4048,14 +4087,6 @@ _snmp_parse(void *sessp,
 #endif
     int             result = -1;
 
-    static oid      snmpEngineIDoid[]   = { 1,3,6,1,6,3,10,2,1,1,0};
-    static size_t   snmpEngineIDoid_len = 11;
-
-    static char     ourEngineID[SNMP_SEC_PARAM_BUF_SIZE];
-    static size_t   ourEngineID_len = sizeof(ourEngineID);
-
-    netsnmp_pdu    *pdu2 = NULL;
-
     session->s_snmp_errno = 0;
     session->s_errno = 0;
 
@@ -4080,7 +4111,7 @@ _snmp_parse(void *sessp,
     case SNMP_VERSION_2c:
 #endif
 #if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
-        DEBUGMSGTL(("snmp_api", "Parsing SNMPv%ld message...\n",
+        DEBUGMSGTL(("snmp_api", "Parsing SNMPv%d message...\n",
                     (1 + pdu->version)));
 
         /*
@@ -4179,120 +4210,6 @@ _snmp_parse(void *sessp,
                 }
             }
         }
-
-        /* Implement RFC5343 here for two reasons:
-           1) From a security perspective it handles this otherwise
-              always approved request earlier.  It bypasses the need
-              for authorization to the snmpEngineID scalar, which is
-              what is what RFC3415 appendix A species as ok.  Note
-              that we haven't bypassed authentication since if there
-              was an authentication eror it would have been handled
-              above in the if(result) part at the lastet.
-           2) From an application point of view if we let this request
-              get all the way to the application, it'd require that
-              all application types supporting discovery also fire up
-              a minimal agent in order to handle just this request
-              which seems like overkill.  Though there is no other
-              application types that currently need discovery (NRs
-              accept notifications from contextEngineIDs that derive
-              from the NO not the NR).  Also a lame excuse for doing
-              it here.
-           3) Less important technically, but the net-snmp agent
-              doesn't currently handle registrations of different
-              engineIDs either and it would have been a lot more work
-              to implement there since we'd need to support that
-              first. :-/ Supporting multiple context engineIDs should
-              be done anyway, so it's not a valid excuse here.
-           4) There is a lot less to do if we trump the agent at this
-              point; IE, the agent does a lot more unnecessary
-              processing when the only thing that should ever be in
-              this context by definition is the single scalar.
-        */
-
-        /* special RFC5343 engineID discovery engineID check */
-        if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
-                                    NETSNMP_DS_LIB_NO_DISCOVERY) &&
-            SNMP_MSG_RESPONSE       != pdu->command &&
-            NULL                    != pdu->contextEngineID &&
-            pdu->contextEngineIDLen == 5 &&
-            pdu->contextEngineID[0] == 0x80 &&
-            pdu->contextEngineID[1] == 0x00 &&
-            pdu->contextEngineID[2] == 0x00 &&
-            pdu->contextEngineID[3] == 0x00 &&
-            pdu->contextEngineID[4] == 0x06) {
-
-            /* define a result so it doesn't get past us at this point
-               and gets dropped by future parts of the stack */
-            result = SNMPERR_JUST_A_CONTEXT_PROBE;
-
-            DEBUGMSGTL(("snmpv3_contextid", "starting context ID discovery\n"));
-            /* ensure exactly one variable */
-            if (NULL != pdu->variables &&
-                NULL == pdu->variables->next_variable &&
-
-                /* if it's a GET, match it exactly */
-                ((SNMP_MSG_GET == pdu->command &&
-                  snmp_oid_compare(snmpEngineIDoid,
-                                   snmpEngineIDoid_len,
-                                   pdu->variables->name,
-                                   pdu->variables->name_length) == 0)
-                 /* if it's a GETNEXT ensure it's less than the engineID oid */
-                 ||
-                 (SNMP_MSG_GETNEXT == pdu->command &&
-                  snmp_oid_compare(snmpEngineIDoid,
-                                   snmpEngineIDoid_len,
-                                   pdu->variables->name,
-                                   pdu->variables->name_length) > 0)
-                    )) {
-
-                DEBUGMSGTL(("snmpv3_contextid",
-                            "  One correct variable found\n"));
-
-                /* Note: we're explictly not handling a GETBULK.  Deal. */
-
-                /* set up the response */
-                pdu2 = snmp_clone_pdu(pdu);
-
-                /* free the current varbind */
-                snmp_free_varbind(pdu2->variables);
-
-                /* set the variables */
-                pdu2->variables = NULL;
-                pdu2->command = SNMP_MSG_RESPONSE;
-                pdu2->errstat = 0;
-                pdu2->errindex = 0;
-
-                ourEngineID_len =
-                    snmpv3_get_engineID((u_char*)ourEngineID, ourEngineID_len);
-                if (0 != ourEngineID_len) {
-
-                    DEBUGMSGTL(("snmpv3_contextid",
-                                "  responding with our engineID\n"));
-
-                    snmp_pdu_add_variable(pdu2,
-                                          snmpEngineIDoid, snmpEngineIDoid_len,
-                                          ASN_OCTET_STR,
-                                          ourEngineID, ourEngineID_len);
-                    
-                    /* send the response */
-                    if (0 == snmp_sess_send(sessp, pdu2)) {
-
-                        DEBUGMSGTL(("snmpv3_contextid",
-                                    "  sent it off!\n"));
-
-                        snmp_free_pdu(pdu2);
-                        
-                        snmp_log(LOG_ERR, "sending a response to the context engineID probe failed\n");
-                    }
-                } else {
-                    snmp_log(LOG_ERR, "failed to get our own engineID!\n");
-                }
-            } else {
-                snmp_log(LOG_WARNING,
-                         "received an odd context engineID probe\n");
-            }
-        }
-
         break;
     case SNMPERR_BAD_VERSION:
         ERROR_MSG("error parsing snmp message version");
@@ -4425,16 +4342,12 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
          * fallthrough 
          */
 
-#ifndef NETSNMP_NOTIFY_ONLY
     case SNMP_MSG_GET:
     case SNMP_MSG_GETNEXT:
     case SNMP_MSG_GETBULK:
-#endif /* ! NETSNMP_NOTIFY_ONLY */
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-    case SNMP_MSG_SET:
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
     case SNMP_MSG_TRAP2:
     case SNMP_MSG_INFORM:
+    case SNMP_MSG_SET:
         /*
          * PDU is not an SNMPv1 TRAP 
          */
@@ -4495,10 +4408,10 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
     while ((int) *length > 0) {
         netsnmp_variable_list *vptemp;
         vptemp = (netsnmp_variable_list *) malloc(sizeof(*vptemp));
-        if (NULL == vptemp) {
+        if (0 == vptemp) {
             return -1;
         }
-        if (NULL == vp) {
+        if (0 == vp) {
             pdu->variables = vptemp;
         } else {
             vp->next_variable = vptemp;
@@ -4508,10 +4421,10 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
         vp->next_variable = NULL;
         vp->val.string = NULL;
         vp->name_length = MAX_OID_LEN;
-        vp->name = NULL;
+        vp->name = 0;
         vp->index = 0;
-        vp->data = NULL;
-        vp->dataFreeHook = NULL;
+        vp->data = 0;
+        vp->dataFreeHook = 0;
         DEBUGDUMPSECTION("recv", "VarBind");
         data = snmp_parse_var_op(data, objid, &vp->name_length, &vp->type,
                                  &vp->val_len, &var_val, length);
@@ -4660,6 +4573,17 @@ snmpv3_scopedPDU_parse(netsnmp_pdu *pdu, u_char * cp, size_t * length)
     }
 
     /*
+     * 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) {
+        DEBUGMSGTL(("scopedPDU_parse",
+                    "inconsistent engineID information in message\n"));
+    }
+
+    /*
      * parse contextName from scopedPdu
      */
     tmp_buf_len = SNMP_MAX_CONTEXT_SIZE;
@@ -4826,6 +4750,16 @@ _sess_async_send(void *sessp,
             return 0; /* s_snmp_errno already set */
     }
 
+    /*
+     * check to see if we need to create a v3 user from the session info
+     */
+    if (create_user_from_session(session) != SNMPERR_SUCCESS) {
+        session->s_snmp_errno = SNMPERR_UNKNOWN_USER_NAME;  /* XX?? */
+        DEBUGMSGTL(("snmp_api",
+                    "snmp_send(): failed(2) to create a new user from session\n"));
+        return 0;
+    }
+
     if ((pktbuf = (u_char *)malloc(2048)) == NULL) {
         DEBUGMSGTL(("sess_async_send",
                     "couldn't malloc initial packet buffer\n"));
@@ -4846,10 +4780,8 @@ _sess_async_send(void *sessp,
      */
     if (pdu->variables == NULL) {
         switch (pdu->command) {
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-        case SNMP_MSG_SET:
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         case SNMP_MSG_GET:
+        case SNMP_MSG_SET:
         case SNMP_MSG_GETNEXT:
         case SNMP_MSG_GETBULK:
         case SNMP_MSG_RESPONSE:
@@ -4908,7 +4840,7 @@ _sess_async_send(void *sessp,
     if (session->sndMsgMaxSize != 0 && length > session->sndMsgMaxSize) {
         DEBUGMSGTL(("sess_async_send",
                     "length of packet (%lu) exceeds session maximum (%lu)\n",
-                    (unsigned long)length, (unsigned long)session->sndMsgMaxSize));
+                    length, session->sndMsgMaxSize));
         session->s_snmp_errno = SNMPERR_TOO_LONG;
         SNMP_FREE(pktbuf);
         return 0;
@@ -4922,21 +4854,36 @@ _sess_async_send(void *sessp,
     if (transport->msgMaxSize != 0 && length > transport->msgMaxSize) {
         DEBUGMSGTL(("sess_async_send",
                     "length of packet (%lu) exceeds transport maximum (%lu)\n",
-                    (unsigned long)length, (unsigned long)transport->msgMaxSize));
+                    length, transport->msgMaxSize));
         session->s_snmp_errno = SNMPERR_TOO_LONG;
         SNMP_FREE(pktbuf);
         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 len %"
-                NETSNMP_PRIz "u\n", pdu->msgid, pdu->reqid, length));
-    result = netsnmp_transport_send(transport, packet, length,
-                                    &(pdu->transport_data),
-                                    &(pdu->transport_data_length));
+    result = transport->f_send(transport, packet, length,
+                               &(pdu->transport_data),
+                               &(pdu->transport_data_length));
 
     SNMP_FREE(pktbuf);
 
@@ -4962,7 +4909,7 @@ _sess_async_send(void *sessp,
             return 0;
         }
 
-        netsnmp_get_monotonic_clock(&tv);
+        gettimeofday(&tv, (struct timezone *) 0);
         rp->pdu = pdu;
         rp->request_id = pdu->reqid;
         rp->message_id = pdu->msgid;
@@ -4974,11 +4921,11 @@ _sess_async_send(void *sessp,
         } else {
             rp->timeout = session->timeout;
         }
-        rp->timeM = tv;
+        rp->time = tv;
         tv.tv_usec += rp->timeout;
         tv.tv_sec += tv.tv_usec / 1000000L;
         tv.tv_usec %= 1000000L;
-        rp->expireM = tv;
+        rp->expire = tv;
 
         /*
          * XX lock should be per session ! 
@@ -5039,7 +4986,7 @@ snmp_sess_async_send(void *sessp,
  * Frees the variable and any malloc'd data associated with it.
  */
 void
-snmp_free_var_internals(netsnmp_variable_list * var)
+snmp_free_var(netsnmp_variable_list * var)
 {
     if (!var)
         return;
@@ -5056,12 +5003,7 @@ snmp_free_var_internals(netsnmp_variable_list * var)
             SNMP_FREE(var->data);
         }
     }
-}
 
-void
-snmp_free_var(netsnmp_variable_list * var)
-{
-    snmp_free_var_internals(var);
     free((char *) var);
 }
 
@@ -5170,12 +5112,20 @@ _sess_process_packet(void *sessp, netsnmp_session * sp,
 	      "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)) {
-      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, "");
+  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, "");
   }
 
   /*
@@ -5185,7 +5135,9 @@ _sess_process_packet(void *sessp, netsnmp_session * sp,
   if (isp->hook_pre) {
     if (isp->hook_pre(sp, transport, opaque, olength) == 0) {
       DEBUGMSGTL(("sess_process_packet", "pre-parse fail\n"));
-      SNMP_FREE(opaque);
+      if (opaque != NULL) {
+	SNMP_FREE(opaque);
+      }
       return -1;
     }
   }
@@ -5195,28 +5147,20 @@ _sess_process_packet(void *sessp, netsnmp_session * sp,
   } else {
     pdu = snmp_create_sess_pdu(transport, opaque, olength);
   }
-
   if (pdu == NULL) {
     snmp_log(LOG_ERR, "pdu failed to be created\n");
-    SNMP_FREE(opaque);
+    if (opaque != NULL) {
+      SNMP_FREE(opaque);
+    }
     return -1;
   }
 
-  /* if the transport was a magic tunnel, mark the PDU as having come
-     through one. */
-  if (transport->flags & NETSNMP_TRANSPORT_FLAG_TUNNELED) {
-      pdu->flags |= UCD_MSG_FLAG_TUNNELED;
-  }
-
   if (isp->hook_parse) {
     ret = isp->hook_parse(sp, pdu, packetptr, length);
   } else {
     ret = snmp_parse(sessp, sp, pdu, packetptr, length);
   }
 
-  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"));
   }
@@ -5284,9 +5228,7 @@ _sess_process_packet(void *sessp, netsnmp_session * sp,
 	 * msgId must match for v3 messages.  
 	 */
 	if (rp->message_id != pdu->msgid) {
-            DEBUGMSGTL(("sess_process_packet", "unmatched msg id: %ld != %ld\n",
-                        rp->message_id, pdu->msgid));
-	    continue;
+	  continue;
 	}
 
 	/*
@@ -5331,15 +5273,10 @@ _sess_process_packet(void *sessp, netsnmp_session * sp,
 	    if (rp->retries <= sp->retries) {
 	      snmp_resend_request(slp, rp, TRUE);
 	      break;
-	    } else {
-	      /* We're done with retries, so no longer waiting for a response */
-	      ((struct synch_state*)magic)->waiting = 0;
 	    }
 	  } else {
 	    if (SNMPV3_IGNORE_UNAUTH_REPORTS) {
 	      break;
-	    } else { /* Set the state to no longer be waiting, since we're done with retries */
-	      ((struct synch_state*)magic)->waiting = 0;
 	    }
 	  }
 
@@ -5352,8 +5289,8 @@ _sess_process_packet(void *sessp, netsnmp_session * sp,
 	    if (sp->securityEngineID == NULL) {
 	      /*
 	       * TODO FIX: recover after message callback *?
-               */
-	      return -1;
+	       * return -1;
+	       */
 	    }
 	    memcpy(sp->securityEngineID, pdu->securityEngineID,
 		   pdu->securityEngineIDLen);
@@ -5365,8 +5302,8 @@ _sess_process_packet(void *sessp, netsnmp_session * sp,
 	      if (sp->contextEngineID == NULL) {
 		/*
 		 * TODO FIX: recover after message callback *?
+		 * return -1;
 		 */
-                return -1;
 	      }
 	      memcpy(sp->contextEngineID,
 		     pdu->securityEngineID,
@@ -5457,21 +5394,10 @@ _sess_process_packet(void *sessp, netsnmp_session * sp,
 void
 snmp_read(fd_set * fdset)
 {
-    netsnmp_large_fd_set lfdset;
-
-    netsnmp_large_fd_set_init(&lfdset, FD_SETSIZE);
-    netsnmp_copy_fd_set_to_large_fd_set(&lfdset, fdset);
-    snmp_read2(&lfdset);
-    netsnmp_large_fd_set_cleanup(&lfdset);
-}
-
-void
-snmp_read2(netsnmp_large_fd_set * fdset)
-{
     struct session_list *slp;
     snmp_res_lock(MT_LIBRARY_ID, MT_LIB_SESSION);
     for (slp = Sessions; slp; slp = slp->next) {
-        snmp_sess_read2((void *) slp, fdset);
+        snmp_sess_read((void *) slp, fdset);
     }
     snmp_res_unlock(MT_LIBRARY_ID, MT_LIB_SESSION);
 }
@@ -5483,7 +5409,7 @@ snmp_read2(netsnmp_large_fd_set * fdset)
  * Beware recursive send maybe inside snmp_read callback function. 
  */
 int
-_sess_read(void *sessp, netsnmp_large_fd_set * fdset)
+_sess_read(void *sessp, fd_set * fdset)
 {
     struct session_list *slp = (struct session_list *) sessp;
     netsnmp_session *sp = slp ? slp->session : NULL;
@@ -5505,11 +5431,10 @@ _sess_read(void *sessp, netsnmp_large_fd_set * fdset)
         return 0; 
     }
 
-    if (!fdset || !(NETSNMP_LARGE_FD_ISSET(transport->sock, fdset))) {
+    if (!fdset || !(FD_ISSET(transport->sock, fdset))) {
         DEBUGMSGTL(("sess_read", "not reading %d (fdset %p set %d)\n",
                     transport->sock, fdset,
-                    fdset ? NETSNMP_LARGE_FD_ISSET(transport->sock, fdset)
-		    : -9));
+                    fdset ? FD_ISSET(transport->sock, fdset) : -9));
         return 0;
     }
 
@@ -5596,8 +5521,8 @@ _sess_read(void *sessp, netsnmp_large_fd_set * fdset)
              * We have no saved packet.  Allocate one.  
              */
             if ((isp->packet = (u_char *) malloc(rxbuf_len)) == NULL) {
-                DEBUGMSGTL(("sess_read", "can't malloc %lu bytes for rxbuf\n",
-                            (unsigned long)rxbuf_len));
+                DEBUGMSGTL(("sess_read", "can't malloc %d bytes for rxbuf\n",
+                            rxbuf_len));
                 return 0;
             } else {
                 rxbuf = isp->packet;
@@ -5617,8 +5542,8 @@ _sess_read(void *sessp, netsnmp_large_fd_set * fdset)
                                        isp->packet_len + rxbuf_len);
                 if (newbuf == NULL) {
                     DEBUGMSGTL(("sess_read",
-                                "can't malloc %lu more for rxbuf (%lu tot)\n",
-                                (unsigned long)rxbuf_len, (unsigned long)(isp->packet_len + rxbuf_len)));
+                                "can't malloc %d more for rxbuf (%d tot)\n",
+                                rxbuf_len, isp->packet_len + rxbuf_len));
                     return 0;
                 } else {
                     isp->packet = newbuf;
@@ -5632,35 +5557,25 @@ _sess_read(void *sessp, netsnmp_large_fd_set * fdset)
         }
     } else {
         if ((rxbuf = (u_char *) malloc(rxbuf_len)) == NULL) {
-            DEBUGMSGTL(("sess_read", "can't malloc %lu bytes for rxbuf\n",
-                        (unsigned long)rxbuf_len));
+            DEBUGMSGTL(("sess_read", "can't malloc %d bytes for rxbuf\n",
+                        rxbuf_len));
             return 0;
         }
     }
 
-    length = netsnmp_transport_recv(transport, rxbuf, rxbuf_len, &opaque,
-                                    &olength);
+    length = transport->f_recv(transport, rxbuf, rxbuf_len, &opaque, &olength);
 
     if (length == -1 && !(transport->flags & NETSNMP_TRANSPORT_FLAG_STREAM)) {
         sp->s_snmp_errno = SNMPERR_BAD_RECVFROM;
         sp->s_errno = errno;
         snmp_set_detail(strerror(errno));
         SNMP_FREE(rxbuf);
-        SNMP_FREE(opaque);
+        if (opaque != NULL) {
+            SNMP_FREE(opaque);
+        }
         return -1;
     }
 
-    if (0 == length && transport->flags & NETSNMP_TRANSPORT_FLAG_EMPTY_PKT) {
-        /* this allows for a transport that needs to return from
-         * packet processing that doesn't necessarily have any
-         * consumable data in it. */
-
-        /* reset the flag since it's a per-message flag */
-        transport->flags &= (~NETSNMP_TRANSPORT_FLAG_EMPTY_PKT);
-
-        return 0;
-    }
-
     /*
      * Remote end closed connection.  
      */
@@ -5680,7 +5595,9 @@ _sess_read(void *sessp, netsnmp_large_fd_set * fdset)
         DEBUGMSGTL(("sess_read", "fd %d closed\n", transport->sock));
         transport->f_close(transport);
         SNMP_FREE(isp->packet);
-        SNMP_FREE(opaque);
+        if (opaque != NULL) {
+            SNMP_FREE(opaque);
+        }
         return -1;
     }
 
@@ -5702,10 +5619,10 @@ _sess_read(void *sessp, netsnmp_large_fd_set * fdset)
                 pdulen = asn_check_packet(pptr, isp->packet_len);
             }
 
-            DEBUGMSGTL(("sess_read", "  loop packet_len %lu, PDU length %lu\n",
-                        (unsigned long)isp->packet_len, (unsigned long)pdulen));
+            DEBUGMSGTL(("sess_read", "  loop packet_len %d, PDU length %d\n",
+                        isp->packet_len, pdulen));
              
-            if (pdulen > MAX_PACKET_LENGTH) {
+            if ((pdulen > MAX_PACKET_LENGTH) || (pdulen < 0)) {
                 /*
                  * Illegal length, drop the connection.  
                  */
@@ -5719,7 +5636,9 @@ _sess_read(void *sessp, netsnmp_large_fd_set * fdset)
 		}
 		DEBUGMSGTL(("sess_read", "fd %d closed\n", transport->sock));
                 transport->f_close(transport);
-                SNMP_FREE(opaque);
+                if (opaque != NULL) {
+                    SNMP_FREE(opaque);
+                }
                 /** XXX-rks: why no SNMP_FREE(isp->packet); ?? */
                 return -1;
             }
@@ -5732,13 +5651,15 @@ _sess_read(void *sessp, netsnmp_large_fd_set * fdset)
                  * start, simply return and wait for more data to arrive.
                  */
                 DEBUGMSGTL(("sess_read",
-                            "pkt not complete (need %lu got %lu so far)\n",
-                            (unsigned long)pdulen, (unsigned long)isp->packet_len));
+                            "pkt not complete (need %d got %d so far)\n",
+                            pdulen, isp->packet_len));
 
                 if (pptr != isp->packet)
                     break; /* opaque freed for us outside of loop. */
 
-                SNMP_FREE(opaque);
+                if (opaque != NULL) {
+                    SNMP_FREE(opaque);
+                }
                 return 0;
             }
 
@@ -5787,7 +5708,9 @@ _sess_read(void *sessp, netsnmp_large_fd_set * fdset)
 	    of the opaque pointer, so we still need to free() the opaque
 	    pointer itself.  */
 
-	SNMP_FREE(opaque);
+	if (opaque != NULL) {
+	    SNMP_FREE(opaque);
+	}
 
         if (isp->packet_len >= MAXIMUM_PACKET_SIZE) {
             /*
@@ -5807,6 +5730,7 @@ _sess_read(void *sessp, netsnmp_large_fd_set * fdset)
              * footprint down.
              */
             SNMP_FREE(isp->packet);
+            isp->packet = NULL;
             isp->packet_size = 0;
             isp->packet_len = 0;
             return rc;
@@ -5820,9 +5744,9 @@ _sess_read(void *sessp, netsnmp_large_fd_set * fdset)
          */
 
         memmove(isp->packet, pptr, isp->packet_len);
-        DEBUGMSGTL(("sess_read", "end: memmove(%p, %p, %lu); realloc(%p, %lu)\n",
-                    isp->packet, pptr, (unsigned long)isp->packet_len,
-		    isp->packet, (unsigned long)isp->packet_len));
+        DEBUGMSGTL(("sess_read", "end: memmove(%p, %p, %d); realloc(%p, %d)\n",
+                    isp->packet, pptr, isp->packet_len, isp->packet,
+                    isp->packet_len));
 
         if ((rxbuf = (u_char *)realloc(isp->packet, isp->packet_len)) == NULL) {
             /*
@@ -5852,19 +5776,6 @@ _sess_read(void *sessp, netsnmp_large_fd_set * fdset)
 int
 snmp_sess_read(void *sessp, fd_set * fdset)
 {
-  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_read2(sessp, &lfdset);
-  netsnmp_large_fd_set_cleanup(&lfdset);
-  return rc;
-}
-
-int
-snmp_sess_read2(void *sessp, netsnmp_large_fd_set * fdset)
-{
     struct session_list *psl;
     netsnmp_session *pss;
     int             rc;
@@ -5879,7 +5790,7 @@ snmp_sess_read2(void *sessp, netsnmp_large_fd_set * fdset)
 }
 
 
-/**
+/*
  * 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.
@@ -5900,121 +5811,55 @@ snmp_sess_read2(void *sessp, netsnmp_large_fd_set * fdset)
  *
  * 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)
-{
-    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,
-		  struct timeval *timeout, int *block)
-{
-    return snmp_sess_select_info2(NULL, numfds, fdset, timeout, block);
-}
-
-/**
- * @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)
-{
-    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_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\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,
-		       struct timeval *timeout, int *block)
+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   
+     */
 {
-    return snmp_sess_select_info2_flags(sessp, numfds, fdset, timeout, block,
-                                        NETSNMP_SELECT_NOFLAGS);
+    return snmp_sess_select_info((void *) 0, numfds, fdset, timeout,
+                                 block);
 }
 
-/**
- * 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.
+/*
+ * Same as snmp_select_info, but works just one session. 
  */
 int
-snmp_sess_select_info2_flags(void *sessp, int *numfds,
-                             netsnmp_large_fd_set * fdset,
-                             struct timeval *timeout, int *block, int flags)
+snmp_sess_select_info(void *sessp,
+                      int *numfds,
+                      fd_set * fdset, struct timeval *timeout, int *block)
 {
+    struct session_list *slptest = (struct session_list *) sessp;
     struct session_list *slp, *next = NULL;
     netsnmp_request_list *rp;
-    struct timeval  now, earliest, alarm_tm;
+    struct timeval  now, earliest, delta;
     int             active = 0, requests = 0;
     int             next_alarm = 0;
 
     timerclear(&earliest);
 
     /*
-     * For each session examined, add its socket to the fdset,
+     * For each request outstanding, 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 = sessp ? sessp : Sessions; slp; slp = next) {
+    for (; slp; slp = next) {
         next = slp->next;
 
         if (slp->transport == NULL) {
@@ -6045,19 +5890,18 @@ snmp_sess_select_info2_flags(void *sessp, int *numfds,
             *numfds = (slp->transport->sock + 1);
         }
 
-        NETSNMP_LARGE_FD_SET(slp->transport->sock, fdset);
+        FD_SET(slp->transport->sock, fdset);
         if (slp->internal != NULL && slp->internal->requests) {
             /*
              * Found another session with outstanding requests.  
              */
             requests++;
             for (rp = slp->internal->requests; rp; rp = rp->next_request) {
-                if (!timerisset(&earliest)
-                    || (timerisset(&rp->expireM)
-                        && timercmp(&rp->expireM, &earliest, <))) {
-                    earliest = rp->expireM;
-                    DEBUGMSG(("verbose:sess_select","(to in %d.%06d sec) ",
-                               (int)earliest.tv_sec, (int)earliest.tv_usec));
+                if ((!timerisset(&earliest)
+                     || (timercmp(&rp->expire, &earliest, <)))) {
+                    earliest = rp->expire;
+                    DEBUGMSG(("verbose:sess_select","(to in %d.%d sec) ",
+                               earliest.tv_sec, earliest.tv_usec));
                 }
             }
         }
@@ -6072,15 +5916,10 @@ snmp_sess_select_info2_flags(void *sessp, int *numfds,
     }
     DEBUGMSG(("sess_select", "\n"));
 
-    netsnmp_get_monotonic_clock(&now);
-
-    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 (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.%d sec\n",
+                   delta.tv_sec, delta.tv_usec));
     }
     if (next_alarm == 0 && requests == 0) {
         /*
@@ -6091,20 +5930,53 @@ snmp_sess_select_info2_flags(void *sessp, int *numfds,
         return active;
     }
 
-    if (next_alarm &&
-        (!timerisset(&earliest) || timercmp(&alarm_tm, &earliest, <)))
-        earliest = alarm_tm;
+    /*
+     * * 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;
+     */
 
-    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",
-                       (long) overdue_ms));
-        timerclear(&earliest);
+    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",
+                   earliest.tv_usec));
     } else {
-        DEBUGMSGT(("verbose:sess_select","timer due in %d.%06d sec\n",
-                   (int)earliest.tv_sec, (int)earliest.tv_usec));
+        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.%d sec\n",
+                   earliest.tv_sec, earliest.tv_usec));
     }
 
     /*
@@ -6112,8 +5984,8 @@ snmp_sess_select_info2_flags(void *sessp, int *numfds,
      */
     if ((*block || (timercmp(&earliest, timeout, <)))) {
         DEBUGMSGT(("verbose:sess_select",
-                   "setting timer to %d.%06d sec, clear block (was %d)\n",
-                   (int)earliest.tv_sec, (int)earliest.tv_usec, *block));
+                   "setting timer to %d.%d sec, clear block (was %d)\n",
+                   earliest.tv_sec, earliest.tv_usec, *block));
         *timeout = earliest;
         *block = 0;
     }
@@ -6209,16 +6081,32 @@ snmp_resend_request(struct session_list *slp, netsnmp_request_list *rp,
          * This should never happen.  
          */
         DEBUGMSGTL(("sess_resend", "encoding failure\n"));
-        SNMP_FREE(pktbuf);
+        if (pktbuf != NULL) {
+            SNMP_FREE(pktbuf);
+        }
         return -1;
     }
 
-    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));
+    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, "");
+    }
+
+    result = transport->f_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
@@ -6227,7 +6115,7 @@ snmp_resend_request(struct session_list *slp, netsnmp_request_list *rp,
 
     if (pktbuf != NULL) {
         SNMP_FREE(pktbuf);
-        packet = NULL;
+        pktbuf = packet = NULL;
     }
 
     if (result < 0) {
@@ -6236,13 +6124,13 @@ snmp_resend_request(struct session_list *slp, netsnmp_request_list *rp,
         snmp_set_detail(strerror(errno));
         return -1;
     } else {
-        netsnmp_get_monotonic_clock(&now);
+        gettimeofday(&now, (struct timezone *) 0);
         tv = now;
-        rp->timeM = tv;
+        rp->time = tv;
         tv.tv_usec += rp->timeout;
         tv.tv_sec += tv.tv_usec / 1000000L;
         tv.tv_usec %= 1000000L;
-        rp->expireM = tv;
+        rp->expire = tv;
     }
     return 0;
 }
@@ -6268,7 +6156,7 @@ snmp_sess_timeout(void *sessp)
         return;
     }
 
-    netsnmp_get_monotonic_clock(&now);
+    gettimeofday(&now, (struct timezone *) 0);
 
     /*
      * For each request outstanding, check to see if it has expired.
@@ -6282,7 +6170,7 @@ snmp_sess_timeout(void *sessp)
             freeme = NULL;
         }
 
-        if ((timercmp(&rp->expireM, &now, <))) {
+        if ((timercmp(&rp->expire, &now, <))) {
             if ((sptr = find_sec_mod(rp->pdu->securityModel)) != NULL &&
                 sptr->pdu_timeout != NULL) {
                 /*
@@ -6553,13 +6441,6 @@ netsnmp_oid_equals(const oid * in_name1,
     if (len1 != len2)
         return 1;
     /*
-     * Handle 'null' OIDs
-     */
-    if (len1 == 0)
-        return 0;   /* Two null OIDs are (trivially) the same */
-    if (!name1 || !name2)
-        return 1;   /* Otherwise something's wrong, so report a non-match */
-    /*
      * find first non-matching OID 
      */
     while (len-- > 0) {
@@ -6574,7 +6455,6 @@ netsnmp_oid_equals(const oid * in_name1,
     return 0;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_OID_IS_SUBTREE
 /** 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
  * @param in_name1 A pointer to the first oid.
@@ -6595,15 +6475,13 @@ netsnmp_oid_is_subtree(const oid * in_name1,
 
     return 0;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_OID_IS_SUBTREE */
 
 /** Given two OIDs, determine the common prefix to them both.
  * @param in_name1 A pointer to the first oid.
  * @param len1     Length of the first oid.
  * @param in_name2 A pointer to the second oid.
  * @param len2     Length of the second oid.
- * @return         length of common prefix
- *                 0 if no common prefix, -1 on error.
+ * @return length of largest common index of commonality.  1 = first, 0 if none *         or -1 on error.
  */
 int
 netsnmp_oid_find_prefix(const oid * in_name1, size_t len1,
@@ -6620,12 +6498,9 @@ netsnmp_oid_find_prefix(const oid * in_name1, size_t len1,
     min_size = SNMP_MIN(len1, len2);
     for(i = 0; i < (int)min_size; i++) {
         if (in_name1[i] != in_name2[i])
-            return i;    /* '�' is the first differing subidentifier
-                            So the common prefix is 0..(i-1), of length i */
+            return i + 1;    /* Why +1 ?? */
     }
-    return min_size;	/* The shorter OID is a prefix of the longer, and
-                           hence is precisely the common prefix of the two.
-                           Return its length. */
+    return min_size;	/* or +1? - the spec isn't totally clear */
 }
 
 static int _check_range(struct tree *tp, long ltmp, int *resptr,
@@ -6680,7 +6555,7 @@ 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)
+                      u_char type, const u_char * value, size_t len)
 {
     return snmp_varlist_add_variable(&pdu->variables, name, name_length,
                                      type, value, len);
@@ -6694,7 +6569,7 @@ 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)
+                          u_char type, const u_char * value, size_t len)
 {
     netsnmp_variable_list *vars, *vtmp;
     int rc;
@@ -6712,7 +6587,7 @@ snmp_varlist_add_variable(netsnmp_variable_list ** varlist,
     if (( 0 != rc ) ||
         (name != NULL && snmp_set_var_objid(vars, name, name_length))) {
         snmp_free_var(vars);
-        return NULL;
+        return (0);
     }
 
     /*
@@ -6860,7 +6735,7 @@ snmp_add_var(netsnmp_pdu *pdu,
             break;
 #endif /* NETSNMP_DISABLE_MIB_LOADING */
         snmp_pdu_add_variable(pdu, name, name_length, ASN_INTEGER,
-                              &ltmp, sizeof(ltmp));
+                              (u_char *) & ltmp, sizeof(ltmp));
         break;
 
     case 'u':
@@ -6874,7 +6749,7 @@ snmp_add_var(netsnmp_pdu *pdu,
         ltmp = strtoul(value, &ecp, 10);
         if (*value && !*ecp)
             snmp_pdu_add_variable(pdu, name, name_length, ASN_UNSIGNED,
-                                  &ltmp, sizeof(ltmp));
+                                  (u_char *) & ltmp, sizeof(ltmp));
         else
             goto fail;
         break;
@@ -6890,7 +6765,7 @@ snmp_add_var(netsnmp_pdu *pdu,
         ltmp = strtoul(value, &ecp, 10);
         if (*value && !*ecp)
             snmp_pdu_add_variable(pdu, name, name_length, ASN_UINTEGER,
-                                  &ltmp, sizeof(ltmp));
+                                  (u_char *) & ltmp, sizeof(ltmp));
         else
             goto fail;
         break;
@@ -6906,7 +6781,7 @@ snmp_add_var(netsnmp_pdu *pdu,
         ltmp = strtoul(value, &ecp, 10);
         if (*value && !*ecp)
             snmp_pdu_add_variable(pdu, name, name_length, ASN_COUNTER,
-                                  &ltmp, sizeof(ltmp));
+                                  (u_char *) & ltmp, sizeof(ltmp));
         else
             goto fail;
         break;
@@ -6921,7 +6796,7 @@ snmp_add_var(netsnmp_pdu *pdu,
 #endif /* NETSNMP_DISABLE_MIB_LOADING */
         if (read64(&c64tmp, value))
             snmp_pdu_add_variable(pdu, name, name_length, ASN_COUNTER64,
-                                  &c64tmp, sizeof(c64tmp));
+                                  (u_char *) & c64tmp, sizeof(c64tmp));
         else
             goto fail;
         break;
@@ -6937,7 +6812,7 @@ snmp_add_var(netsnmp_pdu *pdu,
         ltmp = strtoul(value, &ecp, 10);
         if (*value && !*ecp)
             snmp_pdu_add_variable(pdu, name, name_length, ASN_TIMETICKS,
-                                  &ltmp, sizeof(long));
+                                  (u_char *) & ltmp, sizeof(long));
         else
             goto fail;
         break;
@@ -6953,7 +6828,7 @@ snmp_add_var(netsnmp_pdu *pdu,
         atmp = inet_addr(value);
         if (atmp != (in_addr_t) -1 || !strcmp(value, "255.255.255.255"))
             snmp_pdu_add_variable(pdu, name, name_length, ASN_IPADDRESS,
-                                  &atmp, sizeof(atmp));
+                                  (u_char *) & atmp, sizeof(atmp));
         else
             goto fail;
         break;
@@ -6971,8 +6846,9 @@ snmp_add_var(netsnmp_pdu *pdu,
         } else {
             tint = MAX_OID_LEN;
             if (snmp_parse_oid(value, (oid *) buf, &tint)) {
-                snmp_pdu_add_variable(pdu, name, name_length, ASN_OBJECT_ID,
-                                      buf, sizeof(oid) * tint);
+                snmp_pdu_add_variable(pdu, name, name_length,
+                                      ASN_OBJECT_ID, buf,
+                                      sizeof(oid) * tint);
             } else {
                 result = snmp_errno;    /*MTCRITICAL_RESOURCE */
             }
@@ -6990,8 +6866,8 @@ snmp_add_var(netsnmp_pdu *pdu,
         }
 	if ('s' == type && do_hint && !parse_octet_hint(tp->hint, value, &hintptr, &itmp)) {
             if (_check_range(tp, itmp, &result, "Value does not match DISPLAY-HINT")) {
-                snmp_pdu_add_variable(pdu, name, name_length, ASN_OCTET_STR,
-                                      hintptr, itmp);
+                snmp_pdu_add_variable(pdu, name, name_length,
+                                      ASN_OCTET_STR, hintptr, itmp);
             }
             SNMP_FREE(hintptr);
             hintptr = buf;
@@ -7028,7 +6904,7 @@ snmp_add_var(netsnmp_pdu *pdu,
         break;
 
     case 'n':
-        snmp_pdu_add_variable(pdu, name, name_length, ASN_NULL, NULL, 0);
+        snmp_pdu_add_variable(pdu, name, name_length, ASN_NULL, 0, 0);
         break;
 
     case 'b':
@@ -7103,7 +6979,7 @@ snmp_add_var(netsnmp_pdu *pdu,
     case 'U':
         if (read64(&c64tmp, value))
             snmp_pdu_add_variable(pdu, name, name_length, ASN_OPAQUE_U64,
-                                  &c64tmp, sizeof(c64tmp));
+                                  (u_char *) & c64tmp, sizeof(c64tmp));
         else
             goto fail;
         break;
@@ -7111,7 +6987,7 @@ snmp_add_var(netsnmp_pdu *pdu,
     case 'I':
         if (read64(&c64tmp, value))
             snmp_pdu_add_variable(pdu, name, name_length, ASN_OPAQUE_I64,
-                                  &c64tmp, sizeof(c64tmp));
+                                  (u_char *) & c64tmp, sizeof(c64tmp));
         else
             goto fail;
         break;
@@ -7119,15 +6995,16 @@ snmp_add_var(netsnmp_pdu *pdu,
     case 'F':
         if (sscanf(value, "%f", &ftmp) == 1)
             snmp_pdu_add_variable(pdu, name, name_length, ASN_OPAQUE_FLOAT,
-                                  &ftmp, sizeof(ftmp));
+                                  (u_char *) & ftmp, sizeof(ftmp));
         else
             goto fail;
         break;
 
     case 'D':
         if (sscanf(value, "%lf", &dtmp) == 1)
-            snmp_pdu_add_variable(pdu, name, name_length, ASN_OPAQUE_DOUBLE,
-                                  &dtmp, sizeof(dtmp));
+            snmp_pdu_add_variable(pdu, name, name_length,
+                                  ASN_OPAQUE_DOUBLE, (u_char *) & dtmp,
+                                  sizeof(dtmp));
         else
             goto fail;
         break;
@@ -7260,30 +7137,6 @@ snmp_sess_session(void *sessp)
     return (slp->session);
 }
 
-/**
- * Look up a session that already may have been closed.
- *
- * @param sessp Opaque pointer, returned by snmp_sess_open.
- *
- * @return Pointer to session upon success or NULL upon failure.
- *
- * @see snmp_sess_session()
- */
-netsnmp_session *
-snmp_sess_session_lookup(void *sessp)
-{
-    struct session_list *slp;
-
-    snmp_res_lock(MT_LIBRARY_ID, MT_LIB_SESSION);
-    for (slp = Sessions; slp; slp = slp->next) {
-        if (slp == sessp) {
-            break;
-        }
-    }
-    snmp_res_unlock(MT_LIBRARY_ID, MT_LIB_SESSION);
-
-    return (netsnmp_session *)slp;
-}
 
 
 /*
@@ -7328,27 +7181,25 @@ snmp_sess_transport_set(void *sp, netsnmp_transport *t)
 oid            *
 snmp_duplicate_objid(const oid * objToCopy, size_t objToCopyLen)
 {
-    oid            *returnOid;
+    oid            *returnOid = NULL;
     if (objToCopy != NULL && objToCopyLen != 0) {
         returnOid = (oid *) malloc(objToCopyLen * sizeof(oid));
         if (returnOid) {
-            memcpy(returnOid, objToCopy, objToCopyLen * sizeof(oid));
+            memmove(returnOid, objToCopy, objToCopyLen * sizeof(oid));
         }
-    } else
-        returnOid = NULL;
+    }
     return returnOid;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_STATISTICS
 /*
  * generic statistics counter functions 
  */
-static u_int    statistics[NETSNMP_STAT_MAX_STATS];
+static u_int    statistics[MAX_STATS];
 
 u_int
 snmp_increment_statistic(int which)
 {
-    if (which >= 0 && which < NETSNMP_STAT_MAX_STATS) {
+    if (which >= 0 && which < MAX_STATS) {
         statistics[which]++;
         return statistics[which];
     }
@@ -7358,7 +7209,7 @@ snmp_increment_statistic(int which)
 u_int
 snmp_increment_statistic_by(int which, int count)
 {
-    if (which >= 0 && which < NETSNMP_STAT_MAX_STATS) {
+    if (which >= 0 && which < MAX_STATS) {
         statistics[which] += count;
         return statistics[which];
     }
@@ -7368,7 +7219,7 @@ snmp_increment_statistic_by(int which, int count)
 u_int
 snmp_get_statistic(int which)
 {
-    if (which >= 0 && which < NETSNMP_STAT_MAX_STATS)
+    if (which >= 0 && which < MAX_STATS)
         return statistics[which];
     return 0;
 }
@@ -7379,4 +7230,4 @@ snmp_init_statistics(void)
     memset(statistics, 0, sizeof(statistics));
 }
 /**  @} */
-#endif /* NETSNMP_FEATURE_REMOVE_STATISTICS */
+
diff --git a/snmplib/snmp_auth.c b/snmplib/snmp_auth.c
index 4b408f1..dbf3618 100644
--- a/snmplib/snmp_auth.c
+++ b/snmplib/snmp_auth.c
@@ -43,7 +43,11 @@ SOFTWARE.
 #endif
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -62,13 +66,14 @@ SOFTWARE.
 #include <arpa/inet.h>
 #endif
 
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
 #if HAVE_DMALLOC_H
 #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 c1aa9c4..5f45f1d 100644
--- a/snmplib/snmp_client.c
+++ b/snmplib/snmp_client.c
@@ -40,7 +40,6 @@ SOFTWARE.
  *  @{
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <stdio.h>
 #include <errno.h>
@@ -57,7 +56,11 @@ SOFTWARE.
 #endif
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -86,25 +89,19 @@ SOFTWARE.
 #include <dmalloc.h>
 #endif
 
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+
 #include <net-snmp/types.h>
 
-#include <net-snmp/agent/ds_agent.h>
-#include <net-snmp/library/default_store.h>
 #include <net-snmp/library/snmp_api.h>
 #include <net-snmp/library/snmp_client.h>
 #include <net-snmp/library/snmp_secmod.h>
-#include <net-snmp/library/snmpusm.h>
 #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>
-
-netsnmp_feature_child_of(snmp_client_all, libnetsnmp)
 
-netsnmp_feature_child_of(snmp_split_pdu, snmp_client_all)
-netsnmp_feature_child_of(snmp_reset_var_types, snmp_client_all)
-netsnmp_feature_child_of(query_set_default_session, snmp_client_all)
-netsnmp_feature_child_of(row_create, snmp_client_all)
 
 #ifndef BSD4_3
 #define BSD4_2
@@ -163,7 +160,6 @@ snmp_add_null_var(netsnmp_pdu *pdu, const oid * name, size_t name_length)
 }
 
 
-#include <net-snmp/library/snmp_debug.h>
 static int
 snmp_synch_input(int op,
                  netsnmp_session * session,
@@ -173,14 +169,10 @@ snmp_synch_input(int op,
     int             rpt_type;
 
     if (reqid != state->reqid && pdu && pdu->command != SNMP_MSG_REPORT) {
-        DEBUGMSGTL(("snmp_synch", "Unexpected response (ReqID: %d,%d - Cmd %d)\n",
-                                   reqid, state->reqid, pdu->command ));
         return 0;
     }
 
     state->waiting = 0;
-    DEBUGMSGTL(("snmp_synch", "Response (ReqID: %d - Cmd %d)\n",
-                               reqid, (pdu ? pdu->command : -1)));
 
     if (op == NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE && pdu) {
         if (pdu->command == SNMP_MSG_REPORT) {
@@ -243,11 +235,11 @@ snmp_clone_var(netsnmp_variable_list * var, netsnmp_variable_list * newvar)
         return 1;
 
     memmove(newvar, var, sizeof(netsnmp_variable_list));
-    newvar->next_variable = NULL;
-    newvar->name = NULL;
-    newvar->val.string = NULL;
-    newvar->data = NULL;
-    newvar->dataFreeHook = NULL;
+    newvar->next_variable = 0;
+    newvar->name = 0;
+    newvar->val.string = 0;
+    newvar->data = 0;
+    newvar->dataFreeHook = 0;
     newvar->index = 0;
 
     /*
@@ -272,13 +264,9 @@ snmp_clone_var(netsnmp_variable_list * var, netsnmp_variable_list * newvar)
             memmove(newvar->val.string, var->val.string, var->val_len);
         } else {                /* fix the pointer to new local store */
             newvar->val.string = newvar->buf;
-            /*
-             * no need for a memmove, since we copied the whole var
-             * struct (and thus var->buf) at the beginning of this function.
-             */
         }
     } else {
-        newvar->val.string = NULL;
+        newvar->val.string = 0;
         newvar->val_len = 0;
     }
 
@@ -292,9 +280,9 @@ snmp_clone_var(netsnmp_variable_list * var, netsnmp_variable_list * newvar)
  * Returns 0 if successful, 1 if memory allocation fails.
  */
 int
-snmp_clone_mem(void **dstPtr, const void *srcPtr, unsigned len)
+snmp_clone_mem(void **dstPtr, void *srcPtr, unsigned len)
 {
-    *dstPtr = NULL;
+    *dstPtr = 0;
     if (srcPtr) {
         *dstPtr = malloc(len + 1);
         if (!*dstPtr) {
@@ -350,24 +338,23 @@ _clone_pdu_header(netsnmp_pdu *pdu)
 {
     netsnmp_pdu    *newpdu;
     struct snmp_secmod_def *sptr;
-    int ret;
 
     newpdu = (netsnmp_pdu *) malloc(sizeof(netsnmp_pdu));
     if (!newpdu)
-        return NULL;
+        return 0;
     memmove(newpdu, pdu, sizeof(netsnmp_pdu));
 
     /*
      * reset copied pointers if copy fails 
      */
-    newpdu->variables = NULL;
-    newpdu->enterprise = NULL;
-    newpdu->community = NULL;
-    newpdu->securityEngineID = NULL;
-    newpdu->securityName = NULL;
-    newpdu->contextEngineID = NULL;
-    newpdu->contextName = NULL;
-    newpdu->transport_data = NULL;
+    newpdu->variables = 0;
+    newpdu->enterprise = 0;
+    newpdu->community = 0;
+    newpdu->securityEngineID = 0;
+    newpdu->securityName = 0;
+    newpdu->contextEngineID = 0;
+    newpdu->contextName = 0;
+    newpdu->transport_data = 0;
 
     /*
      * copy buffers individually. If any copy fails, all are freed. 
@@ -388,22 +375,8 @@ _clone_pdu_header(netsnmp_pdu *pdu)
                           pdu->transport_data,
                           pdu->transport_data_length)) {
         snmp_free_pdu(newpdu);
-        return NULL;
-    }
-
-    if (pdu != NULL && pdu->securityStateRef &&
-        pdu->command == SNMP_MSG_TRAP2) {
-
-        ret = usm_clone_usmStateReference((struct usmStateReference *) pdu->securityStateRef,
-                (struct usmStateReference **) &newpdu->securityStateRef );
-
-        if (ret)
-        {
-            snmp_free_pdu(newpdu);
-            return 0;
-        }
+        return 0;
     }
-
     if ((sptr = find_sec_mod(newpdu->securityModel)) != NULL &&
         sptr->pdu_clone != NULL) {
         /*
@@ -445,13 +418,13 @@ _copy_varlist(netsnmp_variable_list * var,      /* source varList */
             if (newvar)
                 free((char *) newvar);
             snmp_free_varbind(newhead);
-            return NULL;
+            return 0;
         }
 
         /*
          * add cloned variable to new list  
          */
-        if (NULL == newhead)
+        if (0 == newhead)
             newhead = newvar;
         if (oldvar)
             oldvar->next_variable = newvar;
@@ -489,14 +462,11 @@ _copy_pdu_vars(netsnmp_pdu *pdu,        /* source PDU */
                int skip_count,  /* !=0 number of variables to skip */
                int copy_count)
 {                               /* !=0 number of variables to copy */
-    netsnmp_variable_list *var;
-#if TEMPORARILY_DISABLED
-    int             copied;
-#endif
-    int             drop_idx;
+    netsnmp_variable_list *var, *oldvar;
+    int             ii, copied, drop_idx;
 
     if (!newpdu)
-        return NULL;            /* where is PDU to copy to ? */
+        return 0;               /* where is PDU to copy to ? */
 
     if (drop_err)
         drop_idx = pdu->errindex - skip_count;
@@ -507,17 +477,15 @@ _copy_pdu_vars(netsnmp_pdu *pdu,        /* source PDU */
     while (var && (skip_count-- > 0))   /* skip over pdu variables */
         var = var->next_variable;
 
-#if TEMPORARILY_DISABLED
+    oldvar = 0;
+    ii = 0;
     copied = 0;
     if (pdu->flags & UCD_MSG_FLAG_FORCE_PDU_COPY)
         copied = 1;             /* We're interested in 'empty' responses too */
-#endif
 
     newpdu->variables = _copy_varlist(var, drop_idx, copy_count);
-#if TEMPORARILY_DISABLED
     if (newpdu->variables)
         copied = 1;
-#endif
 
 #if ALSO_TEMPORARILY_DISABLED
     /*
@@ -563,7 +531,7 @@ _clone_pdu(netsnmp_pdu *pdu, int drop_err)
 /*
  * This function will clone a full varbind list
  *
- * Returns a pointer to the cloned varbind list if successful.
+ * Returns a pointer to the cloned PDU if successful.
  * Returns 0 if failure
  */
 netsnmp_variable_list *
@@ -594,7 +562,6 @@ snmp_clone_pdu(netsnmp_pdu *pdu)
  * Returns a pointer to the cloned PDU if successful.
  * Returns 0 if failure.
  */
-#ifndef NETSNMP_FEATURE_REMOVE_SNMP_SPLIT_PDU
 netsnmp_pdu    *
 snmp_split_pdu(netsnmp_pdu *pdu, int skip_count, int copy_count)
 {
@@ -605,7 +572,6 @@ snmp_split_pdu(netsnmp_pdu *pdu, int skip_count, int copy_count)
 
     return newpdu;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNMP_SPLIT_PDU */
 
 
 /*
@@ -627,18 +593,18 @@ snmp_fix_pdu(netsnmp_pdu *pdu, int command)
 
     if ((pdu->command != SNMP_MSG_RESPONSE)
         || (pdu->errstat == SNMP_ERR_NOERROR)
-        || (NULL == pdu->variables)
-        || (pdu->errindex > (int)snmp_varbind_len(pdu))
+        || (0 == pdu->variables)
+        || (pdu->errindex > snmp_varbind_len(pdu))
         || (pdu->errindex <= 0)) {
-        return NULL;            /* pre-condition tests fail */
+        return 0;               /* pre-condition tests fail */
     }
 
     newpdu = _clone_pdu(pdu, 1);        /* copies all except errored variable */
     if (!newpdu)
-        return NULL;
+        return 0;
     if (!newpdu->variables) {
         snmp_free_pdu(newpdu);
-        return NULL;            /* no variables. "should not happen" */
+        return 0;               /* no variables. "should not happen" */
     }
     newpdu->command = command;
     newpdu->reqid = snmp_get_next_reqid();
@@ -719,7 +685,7 @@ snmp_set_var_objid(netsnmp_variable_list * vp,
 
 int
 snmp_set_var_typed_value(netsnmp_variable_list * newvar, u_char type,
-                         const void * val_str, size_t val_len)
+                         const u_char * val_str, size_t val_len)
 {
     newvar->type = type;
     return snmp_set_var_value(newvar, val_str, val_len);
@@ -729,8 +695,10 @@ int
 snmp_set_var_typed_integer(netsnmp_variable_list * newvar,
                            u_char type, long val)
 {
+    const long v = val;
     newvar->type = type;
-    return snmp_set_var_value(newvar, &val, sizeof(long));
+    return snmp_set_var_value(newvar, (const u_char *)&v, sizeof(long));
+    return 0;
 }
 
 int
@@ -744,8 +712,6 @@ count_varbinds(netsnmp_variable_list * var_ptr)
     return count;
 }
 
-netsnmp_feature_child_of(count_varbinds_of_type, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_COUNT_VARBINDS_OF_TYPE
 int
 count_varbinds_of_type(netsnmp_variable_list * var_ptr, u_char type)
 {
@@ -757,10 +723,7 @@ count_varbinds_of_type(netsnmp_variable_list * var_ptr, u_char type)
 
     return count;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_COUNT_VARBINDS_OF_TYPE */
 
-netsnmp_feature_child_of(find_varind_of_type, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_FIND_VARIND_OF_TYPE
 netsnmp_variable_list *
 find_varbind_of_type(netsnmp_variable_list * var_ptr, u_char type)
 {
@@ -769,11 +732,10 @@ find_varbind_of_type(netsnmp_variable_list * var_ptr, u_char type)
 
     return var_ptr;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_FIND_VARIND_OF_TYPE */
 
 netsnmp_variable_list*
 find_varbind_in_list( netsnmp_variable_list *vblist,
-                      const oid *name, size_t len)
+                      oid *name, size_t len)
 {
     for (; vblist != NULL; vblist = vblist->next_variable)
         if (!snmp_oid_compare(vblist->name, vblist->name_length, name, len))
@@ -790,7 +752,7 @@ find_varbind_in_list( netsnmp_variable_list *vblist,
 
 int
 snmp_set_var_value(netsnmp_variable_list * vars,
-                   const void * value, size_t len)
+                   const u_char * value, size_t len)
 {
     int             largeval = 1;
 
@@ -801,18 +763,13 @@ snmp_set_var_value(netsnmp_variable_list * vars,
     if (vars->val.string && vars->val.string != vars->buf) {
         free(vars->val.string);
     }
-    vars->val.string = NULL;
+    vars->val.string = 0;
     vars->val_len = 0;
 
-    if (value == NULL && len > 0) {
-        snmp_log(LOG_ERR, "bad size for NULL value\n");
-        return 1;
-    }
-
     /*
      * use built-in storage for smaller values 
      */
-    if (len <= sizeof(vars->buf)) {
+    if (len <= (sizeof(vars->buf) - 1)) {
         vars->val.string = (u_char *) vars->buf;
         largeval = 0;
     }
@@ -828,82 +785,80 @@ snmp_set_var_value(netsnmp_variable_list * vars,
     case ASN_UNSIGNED:
     case ASN_TIMETICKS:
     case ASN_COUNTER:
-    case ASN_UINTEGER:
-        if (vars->val_len == sizeof(int)) {
-            if (ASN_INTEGER == vars->type) {
-                const int      *val_int 
-                    = (const int *) value;
-                *(vars->val.integer) = (long) *val_int;
-            } else {
-                const u_int    *val_uint
-                    = (const u_int *) value;
-                *(vars->val.integer) = (unsigned long) *val_uint;
+        if (value) {
+            if (vars->val_len == sizeof(int)) {
+                if (ASN_INTEGER == vars->type) {
+                    const int      *val_int 
+                        = (const int *) value;
+                    *(vars->val.integer) = (long) *val_int;
+                } else {
+                    const u_int    *val_uint
+                        = (const u_int *) value;
+                    *(vars->val.integer) = (unsigned long) *val_uint;
+                }
             }
-        }
 #if SIZEOF_LONG != SIZEOF_INT
-        else if (vars->val_len == sizeof(long)){
-            const u_long   *val_ulong
-                = (const u_long *) value;
-            *(vars->val.integer) = *val_ulong;
-            if (*(vars->val.integer) > 0xffffffff) {
-                snmp_log(LOG_ERR,"truncating integer value > 32 bits\n");
-                *(vars->val.integer) &= 0xffffffff;
+            else if (vars->val_len == sizeof(long)){
+                const u_long   *val_ulong
+                    = (const u_long *) value;
+                *(vars->val.integer) = *val_ulong;
+                if (*(vars->val.integer) > 0xffffffff) {
+                    snmp_log(LOG_ERR,"truncating integer value > 32 bits\n");
+                    *(vars->val.integer) &= 0xffffffff;
+                }
             }
-        }
 #endif
-#if defined(SIZEOF_LONG_LONG) && (SIZEOF_LONG != SIZEOF_LONG_LONG)
-#if !defined(SIZEOF_INTMAX_T) || (SIZEOF_LONG_LONG != SIZEOF_INTMAX_T)
-        else if (vars->val_len == sizeof(long long)){
-            const unsigned long long   *val_ullong
-                = (const unsigned long long *) value;
-            *(vars->val.integer) = (long) *val_ullong;
-            if (*(vars->val.integer) > 0xffffffff) {
-                snmp_log(LOG_ERR,"truncating integer value > 32 bits\n");
-                *(vars->val.integer) &= 0xffffffff;
+#if defined(SIZEOF_LONG_LONG) && (SIZEOF_LONG != SIZEOF_LONG_LONG) && (SIZEOF_LONG_LONG != SIZEOF_INTMAX_T)
+            else if (vars->val_len == sizeof(long long)){
+                const unsigned long long   *val_ullong
+                    = (const unsigned long long *) value;
+                *(vars->val.integer) = (long) *val_ullong;
+                if (*(vars->val.integer) > 0xffffffff) {
+                    snmp_log(LOG_ERR,"truncating integer value > 32 bits\n");
+                    *(vars->val.integer) &= 0xffffffff;
+                }
             }
-        }
-#endif
 #endif
-#if defined(SIZEOF_INTMAX_T) && (SIZEOF_LONG != SIZEOF_INTMAX_T)
-        else if (vars->val_len == sizeof(intmax_t)){
-            const uintmax_t *val_uintmax_t
-                = (const uintmax_t *) value;
-            *(vars->val.integer) = (long) *val_uintmax_t;
-            if (*(vars->val.integer) > 0xffffffff) {
-                snmp_log(LOG_ERR,"truncating integer value > 32 bits\n");
-                *(vars->val.integer) &= 0xffffffff;
+#if SIZEOF_LONG != SIZEOF_INTMAX_T
+            else if (vars->val_len == sizeof(intmax_t)){
+                const uintmax_t *val_uintmax_t
+                    = (const uintmax_t *) value;
+                *(vars->val.integer) = (long) *val_uintmax_t;
+                if (*(vars->val.integer) > 0xffffffff) {
+                    snmp_log(LOG_ERR,"truncating integer value > 32 bits\n");
+                    *(vars->val.integer) &= 0xffffffff;
+                }
             }
-        }
 #endif
 #if SIZEOF_SHORT != SIZEOF_INT
-        else if (vars->val_len == sizeof(short)) {
-            if (ASN_INTEGER == vars->type) {
-                const short      *val_short 
-                    = (const short *) value;
-                *(vars->val.integer) = (long) *val_short;
-            } else {
-                const u_short    *val_ushort
-                    = (const u_short *) value;
-                *(vars->val.integer) = (unsigned long) *val_ushort;
+            else if (vars->val_len == sizeof(short)) {
+                if (ASN_INTEGER == vars->type) {
+                    const short      *val_short 
+                        = (const short *) value;
+                    *(vars->val.integer) = (long) *val_short;
+                } else {
+                    const u_short    *val_ushort
+                        = (const u_short *) value;
+                    *(vars->val.integer) = (unsigned long) *val_ushort;
+                }
             }
-        }
 #endif
-        else if (vars->val_len == sizeof(char)) {
-            if (ASN_INTEGER == vars->type) {
-                const char      *val_char 
-                    = (const char *) value;
-                *(vars->val.integer) = (long) *val_char;
-            } else {
-                    const u_char    *val_uchar
-                    = (const u_char *) value;
-                *(vars->val.integer) = (unsigned long) *val_uchar;
+            else if (vars->val_len == sizeof(char)) {
+                if (ASN_INTEGER == vars->type) {
+                    const char      *val_char 
+                        = (const char *) value;
+                    *(vars->val.integer) = (long) *val_char;
+                } else {
+                    *(vars->val.integer) = (unsigned long) *value;
+                }
             }
-        }
-        else {
-            snmp_log(LOG_ERR,"bad size for integer-like type (%d)\n",
-                     (int)vars->val_len);
-            return (1);
-        }
+            else {
+                snmp_log(LOG_ERR,"bad size for integer-like type (%d)\n",
+                         (int)vars->val_len);
+                return (1);
+            }
+        } else
+            *(vars->val.integer) = 0;
         vars->val_len = sizeof(long);
         break;
 
@@ -931,7 +886,7 @@ snmp_set_var_value(netsnmp_variable_list * vars,
     case ASN_BIT_STR:
     case ASN_OPAQUE:
     case ASN_NSAP:
-        if (vars->val_len >= sizeof(vars->buf)) {
+        if (largeval) {
             vars->val.string = (u_char *) malloc(vars->val_len + 1);
         }
         if (vars->val.string == NULL) {
@@ -1013,7 +968,6 @@ snmp_replace_var_types(netsnmp_variable_list * vbl, u_char old_type,
     }
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_SNMP_RESET_VAR_TYPES
 void
 snmp_reset_var_types(netsnmp_variable_list * vbl, u_char new_type)
 {
@@ -1022,7 +976,6 @@ snmp_reset_var_types(netsnmp_variable_list * vbl, u_char new_type)
         vbl = vbl->next_variable;
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNMP_RESET_VAR_TYPES */
 
 int
 snmp_synch_response_cb(netsnmp_session * ss,
@@ -1056,11 +1009,10 @@ snmp_synch_response_cb(netsnmp_session * ss,
         block = NETSNMP_SNMPBLOCK;
         tvp = &timeout;
         timerclear(tvp);
-        snmp_sess_select_info_flags(0, &numfds, &fdset, tvp, &block,
-                                    NETSNMP_SELECT_NOALARMS);
+        snmp_select_info(&numfds, &fdset, tvp, &block);
         if (block == 1)
             tvp = NULL;         /* block without timeout */
-        count = select(numfds, &fdset, NULL, NULL, tvp);
+        count = select(numfds, &fdset, 0, 0, tvp);
         if (count > 0) {
             snmp_read(&fdset);
         } else {
@@ -1093,7 +1045,7 @@ snmp_synch_response_cb(netsnmp_session * ss,
 
         if ( ss->flags & SNMP_FLAGS_RESP_CALLBACK ) {
             void (*cb)(void);
-            cb = (void (*)(void))(ss->myvoid);
+            cb = ss->myvoid;
             cb();        /* Used to invoke 'netsnmp_check_outstanding_agent_requests();'
                             on internal AgentX queries.  */
         }
@@ -1125,10 +1077,6 @@ snmp_sess_synch_response(void *sessp,
     int             block;
 
     ss = snmp_sess_session(sessp);
-    if (ss == NULL) {
-        return STAT_ERROR;
-    }
-
     memset((void *) &lstate, 0, sizeof(lstate));
     state = &lstate;
     cbsav = ss->callback;
@@ -1148,11 +1096,10 @@ snmp_sess_synch_response(void *sessp,
         block = NETSNMP_SNMPBLOCK;
         tvp = &timeout;
         timerclear(tvp);
-        snmp_sess_select_info_flags(sessp, &numfds, &fdset, tvp, &block,
-                                    NETSNMP_SELECT_NOALARMS);
+        snmp_sess_select_info(sessp, &numfds, &fdset, tvp, &block);
         if (block == 1)
             tvp = NULL;         /* block without timeout */
-        count = select(numfds, &fdset, NULL, NULL, tvp);
+        count = select(numfds, &fdset, 0, 0, tvp);
         if (count > 0) {
             snmp_sess_read(sessp, &fdset);
         } else
@@ -1229,48 +1176,15 @@ snmp_errstring(int errstat)
  *  over the specified SNMP session.
  *
  */
-#include <net-snmp/library/snmp_debug.h>
-
 static netsnmp_session *_def_query_session = NULL;
-
-#ifndef NETSNMP_FEATURE_REMOVE_QUERY_SET_DEFAULT_SESSION
 void
 netsnmp_query_set_default_session( netsnmp_session *sess) {
-    DEBUGMSGTL(("iquery", "set default session %p\n", sess));
     _def_query_session = sess;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_QUERY_SET_DEFAULT_SESSION */
-
-/**
- * Return a pointer to the default internal query session.
- */
-netsnmp_session *
-netsnmp_query_get_default_session_unchecked( void ) {
-    DEBUGMSGTL(("iquery", "get default session %p\n", _def_query_session));
-    return _def_query_session;
-}
 
-/**
- * Return a pointer to the default internal query session and log a
- * warning message once if this session does not exist.
- */
 netsnmp_session *
 netsnmp_query_get_default_session( void ) {
-    static int warning_logged = 0;
-
-    if (! _def_query_session && ! warning_logged) {
-        if (! netsnmp_ds_get_string(NETSNMP_DS_APPLICATION_ID,
-                                    NETSNMP_DS_AGENT_INTERNAL_SECNAME)) {
-            snmp_log(LOG_WARNING,
-                     "iquerySecName has not been configured - internal queries will fail\n");
-        } else {
-            snmp_log(LOG_WARNING,
-                     "default session is not available - internal queries will fail\n");
-        }
-        warning_logged = 1;
-    }
-
-    return netsnmp_query_get_default_session_unchecked();
+    return _def_query_session;
 }
 
 
@@ -1284,9 +1198,8 @@ static int _query(netsnmp_variable_list *list,
     netsnmp_pdu *pdu      = snmp_pdu_create( request );
     netsnmp_pdu *response = NULL;
     netsnmp_variable_list *vb1, *vb2, *vtmp;
-    int ret, count;
+    int ret;
 
-    DEBUGMSGTL(("iquery", "query on session %p\n", session));
     /*
      * Clone the varbind list into the request PDU...
      */
@@ -1301,7 +1214,6 @@ retry:
         snmp_free_pdu(pdu);
         return SNMP_ERR_GENERR;
     }
-    DEBUGMSGTL(("iquery", "query returned %d\n", ret));
 
     /*
      * ....then copy the results back into the
@@ -1311,8 +1223,6 @@ retry:
      */
     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.
@@ -1322,39 +1232,30 @@ retry:
              *       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"));
-            }
-#ifndef NETSNMP_NO_WRITE_SUPPORT
             if (request != SNMP_MSG_SET &&
                 response->errindex != 0) {
-                DEBUGMSGTL(("iquery", "retrying query (%d, %ld)\n", ret, response->errindex));
                 pdu = snmp_fix_pdu( response, request );
                 snmp_free_pdu( response );
                 response = NULL;
                 if ( pdu != NULL )
                     goto retry;
             }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
         } else {
             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;
                 }
                 vtmp = vb2->next_variable;
-                snmp_free_var_internals( vb2 );
+                /* free old data before overwriting */
+                if (vb2->val.string) {
+                    if (vb2->val.string != &vb2->buf[0]) {
+                        free(vb2->val.string);
+                        vb2->val.string = NULL;
+                    }
+                }
                 snmp_clone_var( vb1, vb2 );
                 vb2->next_variable = vtmp;
             }
@@ -1382,12 +1283,10 @@ int netsnmp_query_getnext(netsnmp_variable_list *list,
 }
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 int netsnmp_query_set(netsnmp_variable_list *list,
                       netsnmp_session       *session){
     return _query( list, SNMP_MSG_SET, session );
 }
-#endif /* !NETSNMP_NO_WRITE_SUPPORT */
 
 /*
  * A walk needs a bit more work.
@@ -1438,448 +1337,4 @@ int netsnmp_query_walk(netsnmp_variable_list *list,
     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;
-}
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-#ifndef NETSNMP_FEATURE_REMOVE_ROW_CREATE
-/** **************************************************************************
- *
- * 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;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_ROW_CREATE */
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-
 /** @} */
diff --git a/snmplib/snmp_debug.c b/snmplib/snmp_debug.c
index 27ce233..1bd053b 100644
--- a/snmplib/snmp_debug.c
+++ b/snmplib/snmp_debug.c
@@ -1,6 +1,5 @@
 #include <net-snmp/net-snmp-config.h>
 
-#include <limits.h>
 #include <stdio.h>
 #if HAVE_STDLIB_H
 #include <stdlib.h>
@@ -14,11 +13,15 @@
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
+#if HAVE_STDARG_H
 #include <stdarg.h>
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
+#else
+#include <varargs.h>
+#endif
+#if HAVE_WINSOCK_H
+#include <winsock.h>
 #endif
+
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -36,58 +39,51 @@
 #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;
+int             debug_num_excluded = 0;
 static int      debug_print_everything = 0;
 
 netsnmp_token_descr dbg_tokens[MAX_DEBUG_TOKENS];
 
+#ifdef NETSNMP_DEBUG_STATS
+netsnmp_container  *dbg_stats = NULL;
+ static int _debug_cmp( const void *lhs, const void *rhs );
+ static int _save_debug_stat(netsnmp_token_descr *tb, void *type);
+ static int _debug_stats_callback(int majorID, int minorID,
+                   void *serverarg, void *clientarg);
+#endif
+
 /*
- * Number of spaces to indent debug outpur. Valid range is [0,INT_MAX]
+ * indent debugging:  provide a space padded section to return an indent for 
  */
-static int debugindent = 0;
+static int      debugindent = 0;
+#define INDENTMAX 80
+static char     debugindentchars[] =
+    "                                                                                ";
 
-int
-debug_indent_get(void)
-{
-    return debugindent;
-}
-
-const char*
+char           *
 debug_indent(void)
 {
-#define SPACES "                                        " \
-               "                                        "
-    if ((sizeof(SPACES) - 1) < (unsigned int)debugindent) {
-        snmp_log(LOG_ERR, "Too deep indentation for debug_indent. "
-                 "Consider using \"%%*s\", debug_indent_get(), \"\" instead.");
-        return SPACES;
-    }
-    return SPACES + sizeof(SPACES) - 1 - debugindent;
-#undef SPACES
+    return debugindentchars;
 }
 
 void
 debug_indent_add(int amount)
 {
-    if (-debugindent <= amount && amount <= INT_MAX - debugindent)
-	debugindent += amount;
+    if (debugindent + amount >= 0 && debugindent + amount < 80) {
+        debugindentchars[debugindent] = ' ';
+        debugindent += amount;
+        debugindentchars[debugindent] = '\0';
+    }
 }
 
-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)
 {
@@ -95,13 +91,47 @@ debug_config_turn_on_debugging(const char *configtoken, char *line)
 }
 
 void
-debug_register_tokens(const char *tokens)
+snmp_debug_init(void)
+{
+    debugindentchars[0] = '\0'; /* zero out the debugging indent array. */
+    /*
+     * Hmmm....
+     *   this "init" routine seems to be called *after* processing
+     *   the command line options.   So we can't clear the debug
+     *   token array here, and will just have to rely on it being
+     *   initialised to 0 automatically.
+     * So much for trying to program responsibly :-)
+     */
+/*  memset(dbg_tokens, 0, MAX_DEBUG_TOKENS*sizeof(struct token_dscr));  */
+    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...]");
+
+#ifdef NETSNMP_DEBUG_STATS
+    /*
+     * debug stats
+     */
+    dbg_stats = netsnmp_container_find("debug_exclude:table_container");
+    if (NULL != dbg_stats) {
+        dbg_stats->compare = _debug_cmp;
+        netsnmp_register_callback(SNMP_CALLBACK_LIBRARY,
+                                  SNMP_CALLBACK_STORE_DATA,
+                                  _debug_stats_callback, dbg_stats, 1024);
+    }
+#endif
+}
+
+void
+debug_register_tokens(char *tokens)
 {
     char           *newp, *cp;
     char           *st = NULL;
     int             status;
 
-    if (tokens == NULL || *tokens == 0)
+    if (tokens == 0 || *tokens == 0)
         return;
 
     newp = strdup(tokens);      /* strtok_r messes it up */
@@ -131,16 +161,17 @@ debug_register_tokens(const char *tokens)
     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);
     }
 }
@@ -163,7 +194,7 @@ debug_enable_token_logs (const char *token) {
     } 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;
@@ -199,12 +230,13 @@ debug_disable_token_logs (const char *token) {
     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
@@ -213,16 +245,21 @@ debug_is_token_registered(const char *token)
     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 
+         * (unless something might be excluded)
          */
-        return SNMPERR_SUCCESS;
+        if (debug_num_excluded) {
+            rc = SNMPERR_SUCCESS; /* ! found = success */
+        } else {
+            return SNMPERR_SUCCESS;
+        }
     }
     else
         rc = SNMPERR_GENERR; /* ! found = err */
@@ -239,19 +276,53 @@ debug_is_token_registered(const char *token)
                 return SNMPERR_GENERR; /* excluded */
         }
     }
+
+#ifdef NETSNMP_DEBUG_STATS
+    if ((SNMPERR_SUCCESS == rc) && (NULL != dbg_stats)) {
+        netsnmp_token_descr td, *found;
+
+        td.token_name = token;
+        found = CONTAINER_FIND(dbg_stats, &td);
+        if (NULL == found) {
+            found = SNMP_MALLOC_TYPEDEF(netsnmp_token_descr);
+            netsnmp_assert(NULL != found);
+            found->token_name = strdup(token);
+            netsnmp_assert(0 == found->enabled);
+            CONTAINER_INSERT(dbg_stats, found);
+        }
+        ++found->enabled;
+    /*  snmp_log(LOG_ERR,"tok %s, %d hits\n", token, found->enabled);  */
+    }
+#endif
+
     return rc;
 }
 
 void
+#if HAVE_STDARG_H
 debugmsg(const char *token, const char *format, ...)
+#else
+debugmsg(va_alist)
+     va_dcl
+#endif
 {
-    if (debug_is_token_registered(token) == SNMPERR_SUCCESS) {
-	va_list         debugargs;
+    va_list         debugargs;
 
-	va_start(debugargs, format);
-	snmp_vlog(LOG_DEBUG, format, debugargs);
-	va_end(debugargs);
+#if HAVE_STDARG_H
+    va_start(debugargs, format);
+#else
+    const char     *format;
+    const char     *token;
+
+    va_start(debugargs);
+    token = va_arg(debugargs, const char *);
+    format = va_arg(debugargs, const char *);   /* ??? */
+#endif
+
+    if (debug_is_token_registered(token) == SNMPERR_SUCCESS) {
+        snmp_vlog(LOG_DEBUG, format, debugargs);
     }
+    va_end(debugargs);
 }
 
 void
@@ -342,12 +413,12 @@ debugmsg_oidrange(const char *token, const oid * theoid, size_t len,
         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, ".%" NETSNMP_PRIo "u--%" NETSNMP_PRIo "u",
-                    theoid[var_subid - 1], range_ubound);
+            sprintf(tmpbuf, ".%lu--%lu", 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, ".%" NETSNMP_PRIo "u", theoid[i]);
+                    sprintf(tmpbuf, ".%lu", theoid[i]);
                     if (!snmp_cstrcat(&buf, &buf_len, &out_len, 1, tmpbuf)) {
                         break;
                     }
@@ -364,7 +435,7 @@ debugmsg_oidrange(const char *token, const oid * theoid, size_t len,
 }
 
 void
-debugmsg_hex(const char *token, const u_char * thedata, size_t len)
+debugmsg_hex(const char *token, u_char * thedata, size_t len)
 {
     u_char         *buf = NULL;
     size_t          buf_len = 0, out_len = 0;
@@ -386,7 +457,7 @@ debugmsg_hex(const char *token, const u_char * thedata, size_t len)
 }
 
 void
-debugmsg_hextli(const char *token, const u_char * thedata, size_t len)
+debugmsg_hextli(const char *token, u_char * thedata, size_t len)
 {
     char            buf[SPRINT_MAX_LEN], token2[SPRINT_MAX_LEN];
     u_char         *b3 = NULL;
@@ -406,7 +477,7 @@ debugmsg_hextli(const char *token, const u_char * thedata, size_t len)
              * XXnext two lines were DEBUGPRINTINDENT(token);
              */
             sprintf(buf, "dumpx%s", token);
-            debugmsg(buf, "%s: %*s", token2, debug_indent_get(), "");
+            debugmsg(buf, "%s: %s", token2, debug_indent());
             if (sprint_realloc_hexstring
                 (&b3, &b3_len, &o3_len, 1, thedata, incr)) {
                 if (b3 != NULL) {
@@ -426,23 +497,53 @@ debugmsg_hextli(const char *token, const u_char * thedata, size_t len)
 }
 
 void
+#if HAVE_STDARG_H
 debugmsgtoken(const char *token, const char *format, ...)
+#else
+debugmsgtoken(va_alist)
+     va_dcl
+#endif
 {
     va_list         debugargs;
 
+#if HAVE_STDARG_H
     va_start(debugargs, format);
+#else
+    const char     *token;
+
+    va_start(debugargs);
+    token = va_arg(debugargs, const char *);
+#endif
+
     debugmsg(token, "%s: ", token);
+
     va_end(debugargs);
 }
 
 void
+#if HAVE_STDARG_H
 debug_combo_nc(const char *token, const char *format, ...)
+#else
+debug_combo_nc(va_alist)
+     va_dcl
+#endif
 {
     va_list         debugargs;
 
+#if HAVE_STDARG_H
     va_start(debugargs, format);
+#else
+    const char     *format;
+    const char     *token;
+
+    va_start(debugargs);
+    token = va_arg(debugargs, const char *);
+    format = va_arg(debugargs, const char *);   /* ??? */
+#endif
+
     snmp_log(LOG_DEBUG, "%s: ", token);
     snmp_vlog(LOG_DEBUG, format, debugargs);
+
     va_end(debugargs);
 }
 
@@ -461,118 +562,62 @@ snmp_get_do_debugging(void)
     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, ...)
-{ }
+#ifdef NETSNMP_DEBUG_STATS
+/************************************************************
+ * compare two context pointers here. Return -1 if lhs < rhs,
+ * 0 if lhs == rhs, and 1 if lhs > rhs.
+ */
+static int
+_debug_cmp( const void *lhs, const void *rhs )
+{
+    netsnmp_token_descr *dbg_l = (netsnmp_token_descr *)lhs;
+    netsnmp_token_descr *dbg_r = (netsnmp_token_descr *)rhs;
 
-void
-debugmsg_oid(const char *token UNUSED, const oid * theoid UNUSED,
-             size_t len UNUSED)
-{ }
+ /* snmp_log(LOG_ERR,"%s/%s\n",dbg_l->token_name, dbg_r->token_name); */
+    return strcmp(dbg_l->token_name, dbg_r->token_name);
+}
 
-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)
-{ }
+static int
+_save_debug_stat(netsnmp_token_descr *tb, void *type)
+{
+    char buf[256];
 
-void
-debugmsg_oidrange(const char *token UNUSED, const oid * theoid UNUSED,
-                  size_t len UNUSED, size_t var_subid UNUSED,
-                  oid range_ubound UNUSED)
-{ }
+    snprintf(buf, sizeof(buf), "debug_hits %s %d",
+             tb->token_name, tb->enabled);
+    read_config_store((char *) type, buf);
 
-void
-debugmsg_hex(const char *token UNUSED, const u_char * thedata UNUSED,
-             size_t len UNUSED)
-{ }
+    return SNMP_ERR_NOERROR;
+}
 
-void
-debugmsg_hextli(const char *token UNUSED, const u_char * thedata UNUSED,
-                size_t len UNUSED)
-{ }
+static int
+_debug_stats_callback(int majorID, int minorID,
+                  void *serverarg, void *clientarg)
+{
+    char            sep[] =
+        "##############################################################";
+    char            buf[] =
+        "#\n" "# debug stats\n" "#";
+    char           *type = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                                 NETSNMP_DS_LIB_APPTYPE);
 
-void
-debugmsgtoken(const char *token UNUSED, const char *format UNUSED, ...)
-{ }
+    read_config_store((char *) type, sep);
+    read_config_store((char *) type, buf);
 
-void
-debug_combo_nc(const char *token UNUSED, const char *format UNUSED, ...)
-{ }
+    /*
+     * save all rows
+     */
+    CONTAINER_FOR_EACH((netsnmp_container *) clientarg,
+                       (netsnmp_container_obj_func *)
+                       _save_debug_stat, type);
 
-void
-snmp_set_do_debugging(int val UNUSED)
-{ }
+    read_config_store((char *) type, sep);
+    read_config_store((char *) type, "\n");
 
-int
-snmp_get_do_debugging(void)
-{
-    return 0;
+    /*
+     * never fails 
+     */
+    return SNMPERR_SUCCESS;
 }
+#endif
 
-#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 8a6bd38..6f8bb4c 100644
--- a/snmplib/snmp_enum.c
+++ b/snmplib/snmp_enum.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
@@ -21,14 +20,6 @@
 
 #include <net-snmp/library/snmp_enum.h>
 #include <net-snmp/library/tools.h>
-#include <net-snmp/library/snmp_assert.h>
-
-netsnmp_feature_child_of(snmp_enum_all, libnetsnmp)
-
-netsnmp_feature_child_of(se_find_free_value_in_slist, snmp_enum_all)
-netsnmp_feature_child_of(snmp_enum_store_list, snmp_enum_all)
-netsnmp_feature_child_of(snmp_enum_store_slist, snmp_enum_all)
-netsnmp_feature_child_of(snmp_enum_clear, snmp_enum_all)
 
 struct snmp_enum_list_str {
     char           *name;
@@ -39,21 +30,16 @@ struct snmp_enum_list_str {
 static struct snmp_enum_list ***snmp_enum_lists;
 unsigned int    current_maj_num;
 unsigned int    current_min_num;
-static struct snmp_enum_list_str *sliststorage;
-
-static void
-free_enum_list(struct snmp_enum_list *list);
+struct snmp_enum_list_str *sliststorage;
 
 int
 init_snmp_enum(const char *type)
 {
     int             i;
 
-    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)
+        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;
@@ -67,6 +53,9 @@ init_snmp_enum(const char *type)
     }
     current_min_num = SE_MAX_SUBIDS;
 
+    if (!sliststorage)
+        sliststorage = NULL;
+
     register_config_handler(type, "enum", se_read_conf, NULL, NULL);
     return SE_OK;
 }
@@ -83,7 +72,7 @@ se_store_in_list(struct snmp_enum_list *new_list,
          */
         return SE_NOMEM;
     }
-    netsnmp_assert(NULL != snmp_enum_lists);
+
 
     if (snmp_enum_lists[major][minor] != NULL)
         ret = SE_ALREADY_THERE;
@@ -131,7 +120,7 @@ se_read_conf(const char *word, char *cptr)
             cp2 = e_enum;
             while (*(cp2++) != ':')
                 ;
-            se_add_pair(major, minor, strdup(cp2), value);
+            se_add_pair(major, minor, cp2, value);
             if (!cp)
                 break;
         }
@@ -147,7 +136,7 @@ se_read_conf(const char *word, char *cptr)
             cp2 = e_enum;
             while (*(cp2++) != ':')
                 ;
-            se_add_pair_to_slist(e_name, strdup(cp2), value);
+            se_add_pair_to_slist(e_name, cp2, value);
             if (!cp)
                 break;
         }
@@ -156,12 +145,12 @@ se_read_conf(const char *word, char *cptr)
 
 void
 se_store_enum_list(struct snmp_enum_list *new_list,
-                   const char *token, const char *type)
+                   const char *token, char *type)
 {
     struct snmp_enum_list *listp = new_list;
     char line[2048];
     char buf[512];
-    int  len;
+    int  len = 0;
 
     snprintf(line, sizeof(line), "enum %s", token);
     while (listp) {
@@ -175,33 +164,37 @@ se_store_enum_list(struct snmp_enum_list *new_list,
 	if ((int)strlen(buf) > len) {
 	    read_config_store(type, line);
             snprintf(line, sizeof(line), "enum %s", token);
-	    len = sizeof(line) - strlen(line);
+	    len = sizeof(line);
 	}
 
 	strncat(line, buf, len);
         listp = listp->next;
     }
 
-    read_config_store(type, line);
+    /*
+     * If there's anything left, then save that.
+     * But don't bother saving an empty 'overflow' line.
+     */
+    if (len != sizeof(line))
+	read_config_store(type, line);
+
+    return;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_SNMP_ENUM_STORE_LIST
 void
-se_store_list(unsigned int major, unsigned int minor, const char *type)
+se_store_list(unsigned int major, unsigned int minor, char *type)
 {
     char token[32];
 
     snprintf(token, sizeof(token), "%d:%d", major, minor);
     se_store_enum_list(se_find_list(major, minor), token, type);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNMP_ENUM_STORE_LIST */
 
 struct snmp_enum_list *
 se_find_list(unsigned int major, unsigned int minor)
 {
     if (major > current_maj_num || minor > current_min_num)
         return NULL;
-    netsnmp_assert(NULL != snmp_enum_lists);
 
     return snmp_enum_lists[major][minor];
 }
@@ -268,19 +261,16 @@ se_find_label(unsigned int major, unsigned int minor, int value)
 int
 se_add_pair_to_list(struct snmp_enum_list **list, char *label, int value)
 {
-    struct snmp_enum_list *lastnode = NULL, *tmp;
+    struct snmp_enum_list *lastnode = NULL;
 
     if (!list)
         return SE_DNE;
 
-    tmp = *list;
-    while (tmp) {
-        if (tmp->value == value) {
-            free(label);
+    while (*list) {
+        if ((*list)->value == value)
             return (SE_ALREADY_THERE);
-        }
-        lastnode = tmp;
-        tmp = tmp->next;
+        lastnode = (*list);
+        (*list) = (*list)->next;
     }
 
     if (lastnode) {
@@ -290,10 +280,8 @@ se_add_pair_to_list(struct snmp_enum_list **list, char *label, int value)
         (*list) = SNMP_MALLOC_STRUCT(snmp_enum_list);
         lastnode = (*list);
     }
-    if (!lastnode) {
-        free(label);
+    if (!lastnode)
         return (SE_NOMEM);
-    }
     lastnode->label = label;
     lastnode->value = value;
     lastnode->next = NULL;
@@ -314,26 +302,21 @@ se_add_pair(unsigned int major, unsigned int minor, char *label, int value)
 /*
  * remember a list of enums based on a lookup name.
  */
-static struct snmp_enum_list **
-se_find_slist_ptr(const char *listname)
+struct snmp_enum_list *
+se_find_slist(const char *listname)
 {
-    struct snmp_enum_list_str *sptr;
+    struct snmp_enum_list_str *sptr, *lastp = NULL;
     if (!listname)
         return NULL;
 
-    for (sptr = sliststorage; sptr != NULL; sptr = sptr->next)
+    for (sptr = sliststorage;
+         sptr != NULL; lastp = sptr, sptr = sptr->next)
         if (sptr->name && strcmp(sptr->name, listname) == 0)
-            return &sptr->list;
+            return sptr->list;
 
     return NULL;
 }
 
-struct snmp_enum_list *
-se_find_slist(const char *listname)
-{
-    struct snmp_enum_list **ptr = se_find_slist_ptr(listname);
-    return ptr ? *ptr : NULL;
-}
 
 char           *
 se_find_label_in_slist(const char *listname, int value)
@@ -341,19 +324,18 @@ se_find_label_in_slist(const char *listname, int value)
     return (se_find_label_in_list(se_find_slist(listname), value));
 }
 
+
 int
 se_find_value_in_slist(const char *listname, const char *label)
 {
     return (se_find_value_in_list(se_find_slist(listname), label));
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_SE_FIND_FREE_VALUE_IN_SLIST
 int
 se_find_free_value_in_slist(const char *listname)
 {
     return (se_find_free_value_in_list(se_find_slist(listname)));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SE_FIND_FREE_VALUE_IN_SLIST */
 
 int
 se_add_pair_to_slist(const char *listname, char *label, int value)
@@ -365,10 +347,8 @@ se_add_pair_to_slist(const char *listname, char *label, int value)
     if (!created) {
         struct snmp_enum_list_str *sptr =
             SNMP_MALLOC_STRUCT(snmp_enum_list_str);
-        if (!sptr) {
-            free_enum_list(list);
+        if (!sptr)
             return SE_NOMEM;
-        }
         sptr->next = sliststorage;
         sptr->name = strdup(listname);
         sptr->list = list;
@@ -377,28 +357,22 @@ se_add_pair_to_slist(const char *listname, char *label, int value)
     return ret;
 }
 
-static void
-free_enum_list(struct snmp_enum_list *list)
-{
-    struct snmp_enum_list *next;
-
-    while (list) {
-        next = list->next;
-        SNMP_FREE(list->label);
-        SNMP_FREE(list);
-        list = next;
-    }
-}
-
 void
 clear_snmp_enum(void)
 {
     struct snmp_enum_list_str *sptr = sliststorage, *next = NULL;
-    int i, j;
+    struct snmp_enum_list *list = NULL, *nextlist = NULL;
+    int i;
 
     while (sptr != NULL) {
 	next = sptr->next;
-	free_enum_list(sptr->list);
+	list = sptr->list;
+	while (list != NULL) {
+	    nextlist = list->next;
+	    SNMP_FREE(list->label);
+	    SNMP_FREE(list);
+	    list = nextlist;
+	}
 	SNMP_FREE(sptr->name);
 	SNMP_FREE(sptr);
 	sptr = next;
@@ -407,13 +381,8 @@ clear_snmp_enum(void)
 
     if (snmp_enum_lists) {
         for (i = 0; i < SE_MAX_IDS; i++) {
-            if (snmp_enum_lists[i]) {
-                for (j = 0; j < SE_MAX_SUBIDS; j++) {
-                    if (snmp_enum_lists[i][j])
-                        free_enum_list(snmp_enum_lists[i][j]);
-                }
+            if (snmp_enum_lists[i])
                 SNMP_FREE(snmp_enum_lists[i]);
-            }
         }
         SNMP_FREE(snmp_enum_lists);
     }
@@ -438,9 +407,15 @@ se_clear_list(struct snmp_enum_list **list)
     return;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_SNMP_ENUM_STORE_SLIST
 void
-se_store_slist(const char *listname, const char *type)
+se_clear_slist(const char *listname)
+{
+    struct snmp_enum_list *list = se_find_slist(listname);
+    se_clear_list(&list);
+}
+
+void
+se_store_slist(const char *listname, char *type)
 {
     struct snmp_enum_list *list = se_find_slist(listname);
     se_store_enum_list(list, listname, type);
@@ -455,14 +430,6 @@ se_store_slist_callback(int majorID, int minorID,
     se_store_slist((char *)clientargs, appname);
     return SNMPERR_SUCCESS;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNMP_ENUM_STORE_SLIST */
-
-#ifndef NETSNMP_FEATURE_REMOVE_SNMP_ENUM_CLEAR
-void
-se_clear_slist(const char *listname)
-{
-    se_clear_list(se_find_slist_ptr(listname));
-}
 
 void
 se_clear_all_lists(void)
@@ -472,4 +439,22 @@ se_clear_all_lists(void)
     for (sptr = sliststorage; sptr != NULL; sptr = sptr->next)
         se_clear_list(&(sptr->list));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_SNMP_ENUM_CLEAR */
+
+#ifdef TESTING
+main()
+{
+    init_snmp_enum();
+    se_add_pair(1, 1, "hi", 1);
+    se_add_pair(1, 1, "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", "resturant 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));
+}
+#endif                          /* TESTING */
diff --git a/snmplib/snmp_logging.c b/snmplib/snmp_logging.c
index a2cd55a..03802ab 100644
--- a/snmplib/snmp_logging.c
+++ b/snmplib/snmp_logging.c
@@ -18,7 +18,6 @@
  *  @{
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <stdio.h>
 #if HAVE_MALLOC_H
 #include <malloc.h>
@@ -43,7 +42,11 @@
 #endif
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -56,15 +59,24 @@
 #include <netinet/in.h>
 #endif
 
+#if HAVE_STDARG_H
 #include <stdarg.h>
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
+#else
+#include <varargs.h>
 #endif
+
 #if HAVE_DMALLOC_H
 #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 */
@@ -85,57 +97,19 @@
 #endif
 #endif
 
-netsnmp_feature_child_of(logging_all, libnetsnmp)
-
-netsnmp_feature_child_of(logging_outputs, logging_all)
-netsnmp_feature_child_of(logging_file, logging_outputs)
-netsnmp_feature_child_of(logging_stdio, logging_outputs)
-netsnmp_feature_child_of(logging_syslog, logging_outputs)
-netsnmp_feature_child_of(logging_external, logging_all)
-
-netsnmp_feature_child_of(enable_stderrlog, logging_all)
-
-netsnmp_feature_child_of(logging_enable_calllog, netsnmp_unused)
-netsnmp_feature_child_of(logging_enable_loghandler, netsnmp_unused)
-
-/* default to the file/stdio/syslog set */
-netsnmp_feature_want(logging_outputs)
-
 /*
  * logh_head:  A list of all log handlers, in increasing order of priority
  * logh_priorities:  'Indexes' into this list, by priority
  */
 netsnmp_log_handler *logh_head = NULL;
 netsnmp_log_handler *logh_priorities[LOG_DEBUG+1];
-static int  logh_enabled = 0;
-
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
-static char syslogname[64] = DEFAULT_LOG_ID;
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
 
-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);
-}
+static int      newline = 1;	 /* MTCRITICAL_RESOURCE */
 
-void
-netsnmp_enable_this_loghandler(netsnmp_log_handler *logh)
-{
-    if (!logh || (0 != logh->enabled))
-        return;
-    logh->enabled = 1;
-    ++logh_enabled;
-}
+static char syslogname[64] = DEFAULT_LOG_ID;
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_FILE
 void
 netsnmp_enable_filelog(netsnmp_log_handler *logh, int dont_zero_log);
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_FILE */
 
 #ifndef HAVE_VSNPRINTF
                 /*
@@ -146,22 +120,10 @@ int             vsnprintf(char *str, size_t count, const char *fmt,
 #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
@@ -175,7 +137,6 @@ shutdown_snmp_logging(void)
 /*
  * These definitions handle 4.2 systems without additional syslog facilities.
  */
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
 #ifndef LOG_CONS
 #define LOG_CONS	0       /* Don't bother if not defined... */
 #endif
@@ -212,27 +173,6 @@ shutdown_snmp_logging(void)
 #ifndef LOG_USER
 #define LOG_USER	0
 #endif
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
-
-/* Set line buffering mode for a stream. */
-void
-netsnmp_set_line_buffering(FILE *stream)
-{
-#if defined(WIN32)
-    /*
-     * According to MSDN, the Microsoft Visual Studio C runtime library does
-     * not support line buffering, so turn off buffering completely.
-     * See also http://msdn.microsoft.com/en-us/library/86cebhfs(VS.71).aspx.
-     */
-    setvbuf(stream, NULL, _IONBF, BUFSIZ);
-#elif defined(HAVE_SETLINEBUF)
-    /* setlinefunction() is a function from the BSD Unix API. */
-    setlinebuf(stream);
-#else
-    /* See also the C89 or C99 standard for more information about setvbuf(). */
-    setvbuf(stream, NULL, _IOLBF, BUFSIZ);
-#endif
-}
 
 /*
  * Decodes log priority.
@@ -308,7 +248,6 @@ decode_priority( char **optarg, int *pri_max )
     return pri_low;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
 int
 decode_facility( char *optarg )
 {
@@ -343,7 +282,6 @@ decode_facility( char *optarg )
         return -1;
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
 
 int
 snmp_log_options(char *optarg, int argc, char *const *argv)
@@ -364,8 +302,6 @@ snmp_log_options(char *optarg, int argc, char *const *argv)
     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;
@@ -379,7 +315,7 @@ snmp_log_options(char *optarg, int argc, char *const *argv)
     /*
      * and '.... "-Lx value" ....'  (*with* the quotes)
      */
-    while (*optarg && isspace((unsigned char)(*optarg))) {
+    while (*optarg && isspace(*optarg)) {
         optarg++;
     }
     /*
@@ -397,10 +333,8 @@ snmp_log_options(char *optarg, int argc, char *const *argv)
         inc_optind = 1;
     }
 
-    DEBUGMSGT(("logging:options", "*cp: '%c'\n", *cp));
     switch (*cp) {
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_STDIO
     /*
      * Log to Standard Error
      */
@@ -413,7 +347,6 @@ snmp_log_options(char *optarg, int argc, char *const *argv)
     case 'e':
         logh = netsnmp_register_loghandler(NETSNMP_LOGHANDLER_STDERR, priority);
         if (logh) {
-            netsnmp_set_line_buffering(stderr);
             logh->pri_max = pri_max;
             logh->token   = strdup("stderr");
 	}
@@ -431,13 +364,11 @@ snmp_log_options(char *optarg, int argc, char *const *argv)
     case 'o':
         logh = netsnmp_register_loghandler(NETSNMP_LOGHANDLER_STDERR, priority);
         if (logh) {
-            netsnmp_set_line_buffering(stdout);
             logh->pri_max = pri_max;
             logh->token   = strdup("stdout");
             logh->imagic  = 1;	    /* stdout, not stderr */
 	}
         break;
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_STDIO */
 
     /*
      * Log to a named file
@@ -447,7 +378,6 @@ snmp_log_options(char *optarg, int argc, char *const *argv)
         if (priority == -1 || !argv)  return -1;
         optarg = argv[++optind];
         /* Fallthrough */
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_FILE
     case 'f':
         if (inc_optind)
             optind++;
@@ -464,9 +394,7 @@ snmp_log_options(char *optarg, int argc, char *const *argv)
                                                           NETSNMP_DS_LIB_APPEND_LOGFILES));
 	}
         break;
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_FILE */
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
     /*
      * Log to syslog
      */
@@ -493,12 +421,11 @@ snmp_log_options(char *optarg, int argc, char *const *argv)
             int facility = decode_facility(optarg);
             if (facility == -1)  return -1;
             logh->pri_max = pri_max;
-            logh->token   = strdup(snmp_log_syslogname(NULL));
+            logh->token   = strdup(snmp_log_syslogname(0));
             logh->magic   = (void *)(intptr_t)facility;
-	    snmp_enable_syslog_ident(snmp_log_syslogname(NULL), facility);
+	    snmp_enable_syslog_ident(snmp_log_syslogname(0), facility);
 	}
         break;
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
 
     /*
      * Don't log 
@@ -530,38 +457,28 @@ snmp_log_options(char *optarg, int argc, char *const *argv)
     return 0;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
 char *
 snmp_log_syslogname(const char *pstr)
 {
   if (pstr)
-    strlcpy (syslogname, pstr, sizeof(syslogname));
+    strncpy (syslogname, pstr, sizeof(syslogname));
 
   return syslogname;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
 
 void
 snmp_log_options_usage(const char *lead, FILE * outf)
 {
     const char *pri1_msg = " for level 'pri' and above";
     const char *pri2_msg = " for levels 'p1' to 'p2'";
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_STDIO
     fprintf(outf, "%se:           log to standard error\n", lead);
     fprintf(outf, "%so:           log to standard output\n", lead);
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_STDIO */
     fprintf(outf, "%sn:           don't log at all\n", lead);
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_FILE
     fprintf(outf, "%sf file:      log to the specified file\n", lead);
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_FILE */
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
     fprintf(outf, "%ss facility:  log to syslog (via the specified facility)\n", lead);
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
     fprintf(outf, "\n%s(variants)\n", lead);
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_FILE
     fprintf(outf, "%s[EON] pri:   log to standard error, output or /dev/null%s\n", lead, pri1_msg);
     fprintf(outf, "%s[EON] p1-p2: log to standard error, output or /dev/null%s\n", lead, pri2_msg);
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_FILE */
     fprintf(outf, "%s[FS] pri token:    log to file/syslog%s\n", lead, pri1_msg);
     fprintf(outf, "%s[FS] p1-p2 token:  log to file/syslog%s\n", lead, pri2_msg);
 }
@@ -575,7 +492,11 @@ snmp_log_options_usage(const char *lead, FILE * outf)
 int
 snmp_get_do_logging(void)
 {
-    return (logh_enabled > 0);
+    netsnmp_log_handler *logh;
+    for (logh = logh_head; logh; logh = logh->next)
+        if (logh->enabled)
+            return 1;
+    return 0;
 }
 
 
@@ -596,7 +517,6 @@ sprintf_stamp(time_t * now, char *sbuf)
     return sbuf;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
 void
 snmp_disable_syslog_entry(netsnmp_log_handler *logh)
 {
@@ -614,7 +534,7 @@ snmp_disable_syslog_entry(netsnmp_log_handler *logh)
     logh->imagic  = 0;
 #endif
 
-    netsnmp_disable_this_loghandler(logh);
+    logh->enabled = 0;
 }
 
 void
@@ -626,9 +546,7 @@ snmp_disable_syslog(void)
         if (logh->enabled && logh->type == NETSNMP_LOGHANDLER_SYSLOG)
             snmp_disable_syslog_entry(logh);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_FILE
 void
 snmp_disable_filelog_entry(netsnmp_log_handler *logh)
 {
@@ -640,11 +558,9 @@ snmp_disable_filelog_entry(netsnmp_log_handler *logh)
         fclose((FILE*)logh->magic);
         logh->magic   = NULL;
     }
-    netsnmp_disable_this_loghandler(logh);
+    logh->enabled = 0;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_FILE */
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_FILE
 void
 snmp_disable_filelog(void)
 {
@@ -654,9 +570,7 @@ snmp_disable_filelog(void)
         if (logh->enabled && logh->type == NETSNMP_LOGHANDLER_FILE)
             snmp_disable_filelog_entry(logh);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_FILE */
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_STDIO
 /*
  * returns that status of stderr logging
  *
@@ -685,12 +599,10 @@ snmp_disable_stderrlog(void)
     for (logh = logh_head; logh; logh = logh->next)
         if (logh->enabled && (logh->type == NETSNMP_LOGHANDLER_STDOUT ||
                               logh->type == NETSNMP_LOGHANDLER_STDERR)) {
-            netsnmp_disable_this_loghandler(logh);
+            logh->enabled = 0;
 	}
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_STDIO */
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_ENABLE_CALLLOG
 void
 snmp_disable_calllog(void)
 {
@@ -698,10 +610,9 @@ snmp_disable_calllog(void)
 
     for (logh = logh_head; logh; logh = logh->next)
         if (logh->enabled && logh->type == NETSNMP_LOGHANDLER_CALLBACK) {
-            netsnmp_disable_this_loghandler(logh);
+            logh->enabled = 0;
 	}
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_ENABLE_CALLLOG */
 
 void
 snmp_disable_log(void)
@@ -709,15 +620,11 @@ snmp_disable_log(void)
     netsnmp_log_handler *logh;
 
     for (logh = logh_head; logh; logh = logh->next) {
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
         if (logh->type == NETSNMP_LOGHANDLER_SYSLOG)
             snmp_disable_syslog_entry(logh);
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_FILE
         if (logh->type == NETSNMP_LOGHANDLER_FILE)
             snmp_disable_filelog_entry(logh);
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_FILE */
-        netsnmp_disable_this_loghandler(logh);
+        logh->enabled = 0;
     }
 }
 
@@ -729,20 +636,15 @@ void
 netsnmp_logging_restart(void)
 {
     netsnmp_log_handler *logh;
-    int doneone = 0;
 
     for (logh = logh_head; logh; logh = logh->next) {
         if (0 == logh->enabled)
             continue;
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
         if (logh->type == NETSNMP_LOGHANDLER_SYSLOG) {
             snmp_disable_syslog_entry(logh);
             snmp_enable_syslog_ident(logh->token,(int)(intptr_t)logh->magic);
-            doneone = 1;
         }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_FILE
-        if (logh->type == NETSNMP_LOGHANDLER_FILE && !doneone) {
+        else if (logh->type == NETSNMP_LOGHANDLER_FILE) {
             snmp_disable_filelog_entry(logh);
             /** hmm, don't zero status isn't saved.. i think it's
              * safer not to overwrite, in case a hup is just to
@@ -750,17 +652,15 @@ netsnmp_logging_restart(void)
              */
             netsnmp_enable_filelog(logh, 1);
         }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_FILE */
     }
 }
 
 /* ================================================== */
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
 void
 snmp_enable_syslog(void)
 {
-    snmp_enable_syslog_ident(snmp_log_syslogname(NULL), LOG_DAEMON);
+    snmp_enable_syslog_ident(snmp_log_syslogname(0), LOG_DAEMON);
 }
 
 void
@@ -795,10 +695,7 @@ snmp_enable_syslog_ident(const char *ident, const int facility)
         if (logh->type == NETSNMP_LOGHANDLER_SYSLOG) {
             logh->magic   = (void*)eventlog_h;
             logh->imagic  = enable;	/* syslog open */
-            if (logh->enabled && (0 == enable))
-                netsnmp_disable_this_loghandler(logh);
-            else if ((0 == logh->enabled) && enable)
-                netsnmp_enable_this_loghandler(logh);
+            logh->enabled = enable;
             found         = 1;
 	}
 
@@ -809,16 +706,11 @@ snmp_enable_syslog_ident(const char *ident, const int facility)
             logh->magic    = (void*)eventlog_h;
             logh->token    = strdup(ident);
             logh->imagic   = enable;	/* syslog open */
-            if (logh->enabled && (0 == enable))
-                netsnmp_disable_this_loghandler(logh);
-            else if ((0 == logh->enabled) && enable)
-                netsnmp_enable_this_loghandler(logh);
+            logh->enabled  = enable;
         }
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_FILE
 void
 netsnmp_enable_filelog(netsnmp_log_handler *logh, int dont_zero_log)
 {
@@ -829,14 +721,21 @@ netsnmp_enable_filelog(netsnmp_log_handler *logh, int dont_zero_log)
 
     if (!logh->magic) {
         logfile = fopen(logh->token, dont_zero_log ? "a" : "w");
-        if (!logfile) {
-	    snmp_log_perror(logh->token);
+        if (!logfile)
             return;
-	}
         logh->magic = (void*)logfile;
-        netsnmp_set_line_buffering(logfile);
+#ifdef WIN32
+        /*
+         * Apparently, "line buffering" under Windows is
+         *  actually implemented as "full buffering".
+         *  Let's try turning off buffering completely.
+         */
+        setvbuf(logfile, NULL, _IONBF, BUFSIZ);
+#else
+        setvbuf(logfile, NULL, _IOLBF, BUFSIZ);
+#endif
     }
-    netsnmp_enable_this_loghandler(logh);
+    logh->enabled = 1;
 }
 
 void
@@ -868,11 +767,8 @@ snmp_enable_filelog(const char *logfilename, int dont_zero_log)
                 netsnmp_enable_filelog(logh, dont_zero_log);
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_FILE */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_ENABLE_STDERRLOG
-/* used in the perl modules and ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_subagent.c */
 void
 snmp_enable_stderrlog(void)
 {
@@ -882,7 +778,7 @@ snmp_enable_stderrlog(void)
     for (logh = logh_head; logh; logh = logh->next)
         if (logh->type == NETSNMP_LOGHANDLER_STDOUT ||
             logh->type == NETSNMP_LOGHANDLER_STDERR) {
-            netsnmp_enable_this_loghandler(logh);
+            logh->enabled = 1;
             found         = 1;
         }
 
@@ -893,9 +789,8 @@ snmp_enable_stderrlog(void)
             logh->token    = strdup("stderr");
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_ENABLE_STDERRLOG */
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_ENABLE_CALLLOG
+
 void
 snmp_enable_calllog(void)	/* XXX - or take a callback routine ??? */
 {
@@ -904,7 +799,7 @@ snmp_enable_calllog(void)	/* XXX - or take a callback routine ??? */
 
     for (logh = logh_head; logh; logh = logh->next)
         if (logh->type == NETSNMP_LOGHANDLER_CALLBACK) {
-            netsnmp_enable_this_loghandler(logh);
+            logh->enabled = 1;
             found         = 1;
 	}
 
@@ -915,7 +810,7 @@ snmp_enable_calllog(void)	/* XXX - or take a callback routine ??? */
             logh->token    = strdup("callback");
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_ENABLE_CALLLOG */
+
 
 
 /* ==================================================== */
@@ -993,31 +888,22 @@ netsnmp_register_loghandler( int type, int priority )
     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:
         logh->imagic  = 1;
         /* fallthrough */
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_STDIO
     case NETSNMP_LOGHANDLER_STDERR:
         logh->handler = log_handler_stdouterr;
         break;
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_STDIO */
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_FILE
     case NETSNMP_LOGHANDLER_FILE:
         logh->handler = log_handler_file;
         logh->imagic  = 1;
         break;
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_FILE */
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
     case NETSNMP_LOGHANDLER_SYSLOG:
         logh->handler = log_handler_syslog;
         break;
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
     case NETSNMP_LOGHANDLER_CALLBACK:
         logh->handler = log_handler_callback;
         break;
@@ -1029,13 +915,12 @@ netsnmp_register_loghandler( int type, int priority )
         return NULL;
     }
     logh->priority = priority;
-    netsnmp_enable_this_loghandler(logh);
+    logh->enabled  = 1;
     netsnmp_add_loghandler( logh );
     return logh;
 }
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_ENABLE_LOGHANDLER
 int
 netsnmp_enable_loghandler( const char *token )
 {
@@ -1044,7 +929,7 @@ netsnmp_enable_loghandler( const char *token )
     logh = netsnmp_find_loghandler( token );
     if (!logh)
         return 0;
-    netsnmp_enable_this_loghandler(logh);
+    logh->enabled = 1;
     return 1;
 }
 
@@ -1057,10 +942,9 @@ netsnmp_disable_loghandler( const char *token )
     logh = netsnmp_find_loghandler( token );
     if (!logh)
         return 0;
-    netsnmp_disable_this_loghandler(logh);
+    logh->enabled = 0;
     return 1;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_ENABLE_LOGHANDLER */
 
 int
 netsnmp_remove_loghandler( netsnmp_log_handler *logh )
@@ -1079,7 +963,7 @@ netsnmp_remove_loghandler( netsnmp_log_handler *logh )
 
     for (i=LOG_EMERG; i<=logh->priority; i++)
         logh_priorities[i] = NULL;
-    free(NETSNMP_REMOVE_CONST(char*, logh->token));
+    SNMP_FREE(logh->token);
     SNMP_FREE(logh);
 
     return 1;
@@ -1087,12 +971,9 @@ netsnmp_remove_loghandler( netsnmp_log_handler *logh )
 
 /* ==================================================== */
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_STDIO
 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, 
@@ -1101,12 +982,7 @@ log_handler_stdouterr(  netsnmp_log_handler* logh, int pri, const char *str)
     } else {
         strcpy(sbuf, "");
     }
-    /*
-     * 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;
+    newline = str[strlen(str) - 1] == '\n';	/* XXX - Eh ? */
 
     if (logh->imagic)
        printf(         "%s%s", sbuf, str);
@@ -1115,10 +991,8 @@ log_handler_stdouterr(  netsnmp_log_handler* logh, int pri, const char *str)
 
     return 1;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_STDIO */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG
 #ifdef WIN32
 int
 log_handler_syslog(  netsnmp_log_handler* logh, int pri, const char *str)
@@ -1202,10 +1076,8 @@ log_handler_syslog(  netsnmp_log_handler* logh, int pri, const char *str)
     return 1;
 }
 #endif /* !WIN32 */
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_SYSLOG */
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_FILE
 int
 log_handler_file(    netsnmp_log_handler* logh, int pri, const char *str)
 {
@@ -1242,7 +1114,6 @@ log_handler_file(    netsnmp_log_handler* logh, int pri, const char *str)
     logh->imagic = str[strlen(str) - 1] == '\n';
     return 1;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_FILE */
 
 int
 log_handler_callback(netsnmp_log_handler* logh, int pri, const char *str)
@@ -1277,37 +1148,17 @@ log_handler_null(    netsnmp_log_handler* logh, int pri, const char *str)
 void
 snmp_log_string(int priority, const char *str)
 {
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_STDIO
-    static int stderr_enabled = 0;
-    static netsnmp_log_handler lh = { 1, 0, 0, 0, "stderr",
-                                      log_handler_stdouterr, 0, NULL,  NULL,
-                                      NULL };
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_STDIO */
     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 (0 == logh_enabled) {
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_STDIO
-        if (!stderr_enabled) {
-            ++stderr_enabled;
-            netsnmp_set_line_buffering(stderr);
-        }
-        log_handler_stdouterr( &lh, priority, str );
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_STDIO */
-
-        return;
+    if (!logh_head) {
+        snmp_enable_stderrlog();
+        snmp_log_string(LOG_WARNING,
+                        "No log handling enabled - turning on stderr logging\n");
     }
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_STDIO
-    else if (stderr_enabled) {
-        stderr_enabled = 0;
-        log_handler_stdouterr( &lh, LOG_INFO,
-                               "Log handling defined - disabling stderr\n" );
-    }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_STDIO */
-        
 
     /*
      * Start at the given priority, and work "upwards"....
@@ -1420,11 +1271,25 @@ snmp_vlog(int priority, const char *format, va_list ap)
  * @see snmp_vlog
  */
 int
+#if HAVE_STDARG_H
 snmp_log(int priority, const char *format, ...)
+#else
+snmp_log(va_alist)
+     va_dcl
+#endif
 {
     va_list         ap;
     int             ret;
+#if HAVE_STDARG_H
     va_start(ap, format);
+#else
+    int             priority;
+    const char     *format;
+    va_start(ap);
+
+    priority = va_arg(ap, int);
+    format = va_arg(ap, const char *);
+#endif
     ret = snmp_vlog(priority, format, ap);
     va_end(ap);
     return (ret);
@@ -1450,13 +1315,11 @@ snmp_log_perror(const char *s)
     }
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_LOGGING_EXTERNAL
 /* external access to logh_head variable */
 netsnmp_log_handler  *
 get_logh_head(void)
 {
 	return logh_head;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_LOGGING_EXTERNAL */
 
 /**  @} */
diff --git a/snmplib/snmp_openssl.c b/snmplib/snmp_openssl.c
deleted file mode 100644
index 3b0eaa8..0000000
--- a/snmplib/snmp_openssl.c
+++ /dev/null
@@ -1,879 +0,0 @@
-/*
- * snmp_openssl.c
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#include <net-snmp/net-snmp-includes.h>
-
-#include <net-snmp/net-snmp-features.h>
-
-#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL) && !defined(NETSNMP_FEATURE_REMOVE_CERT_UTIL)
-
-netsnmp_feature_require(container_free_all)
-
-netsnmp_feature_child_of(openssl_cert_get_subjectAltNames, netsnmp_unused)
-netsnmp_feature_child_of(openssl_ht2nid, netsnmp_unused)
-netsnmp_feature_child_of(openssl_err_log, netsnmp_unused)
-netsnmp_feature_child_of(cert_dump_names, netsnmp_unused)
-
-#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 */
-    if (have_started_already)
-        return;
-    have_started_already = 1;
-
-    DEBUGMSGTL(("snmp_openssl", "initializing\n"));
-
-    /* Initializing OpenSSL */
-    SSL_library_init();
-    SSL_load_error_strings();
-    ERR_load_BIO_strings();
-    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);
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_CERT_DUMP_NAMES
-/** 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)));
-    }
-}
-#endif /* NETSNMP_FEATURE_REMOVE_CERT_DUMP_NAMES */
-
-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;
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_OPENSSL_CERT_GET_SUBJECTALTNAMES
-/** 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);
-}
-#endif /* NETSNMP_FEATURE_REMOVE_OPENSSL_CERT_GET_SUBJECTALTNAMES */
-
-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;
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_OPENSSL_HT2NID
-int
-_ht2nid(int ht)
-{
-    if ((ht < 0) || (ht > NS_HASH_MAX))
-        return 0;
-    return _htmap[ht];
-}
-#endif /* NETSNMP_FEATURE_REMOVE_OPENSSL_HT2NID */
-
-/**
- * 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;
-
-#ifdef HAVE_EVP_SHA224
-        case NS_HASH_SHA224:
-            digest = EVP_sha224();
-            break;
-
-        case NS_HASH_SHA256:
-            digest = EVP_sha256();
-            break;
-
-#endif
-#ifdef HAVE_EVP_SHA384
-        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 at Example.COM
-                  is mapped to tmSecurityName: FooBar at 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);
-}
-
-
-#ifndef NETSNMP_FEATURE_REMOVE_OPENSSL_ERR_LOG
-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));
-    }
-}
-#endif /* NETSNMP_FEATURE_REMOVE_OPENSSL_ERR_LOG */
-
-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 && !defined(NETSNMP_FEATURE_REMOVE_CERT_UTIL) */
diff --git a/snmplib/snmp_parse_args.c b/snmplib/snmp_parse_args.c
index c73b84c..48d2d49 100644
--- a/snmplib/snmp_parse_args.c
+++ b/snmplib/snmp_parse_args.c
@@ -36,7 +36,11 @@
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -48,6 +52,9 @@
 #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
@@ -55,7 +62,6 @@
 #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>
@@ -125,7 +131,7 @@ snmp_parse_args_descriptions(FILE * outf)
     fprintf(outf, "Debugging\n");
     fprintf(outf, "  -d\t\t\tdump input/output packets in hexadecimal\n");
     fprintf(outf,
-            "  -D[TOKEN[,...]]\tturn on debugging output for the specified TOKENs\n\t\t\t   (ALL gives extremely verbose debugging output)\n");
+            "  -D TOKEN[,...]\tturn on debugging output for the specified TOKENs\n\t\t\t   (ALL gives extremely verbose debugging output)\n");
     fprintf(outf, "General options\n");
     fprintf(outf,
             "  -m MIB[:...]\t\tload given list of MIBs (ALL loads everything)\n");
@@ -133,8 +139,6 @@ snmp_parse_args_descriptions(FILE * outf)
             "  -M DIR[:...]\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
@@ -188,33 +192,40 @@ extern int      snmpv3_options(char *optarg, netsnmp_session * session,
                                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
-netsnmp_parse_args(int argc,
-                   char **argv,
-                   netsnmp_session * session, const char *localOpts,
-                   void (*proc) (int, char *const *, int),
-                   int flags)
+snmp_parse_args(int argc,
+                char **argv,
+                netsnmp_session * session, const char *localOpts,
+                void (*proc) (int, char *const *, int))
 {
     static char	   *sensitive[4] = { NULL, NULL, NULL, NULL };
-    int             arg, sp = 0, testcase = 0;
+    int             arg, sp = 0, zero_sensitive = 1, testcase = 0;
     char           *cp;
     char           *Apsz = NULL;
     char           *Xpsz = NULL;
     char           *Cpsz = NULL;
     char            Opts[BUF_SIZE];
-    int             zero_sensitive = !( flags & NETSNMP_PARSE_ARGS_NOZERO );
+    int             logopt = 0;
 
     /*
      * initialize session to default values 
      */
     snmp_sess_init(session);
     strcpy(Opts, "Y:VhHm:M:O:I:P:D:dv:r:t:c:Z:e:E:n:u:l:x:X:a:A:p:T:-:3:s:S:L:");
-    if (localOpts) {
-        if (strlen(localOpts) + strlen(Opts) >= sizeof(Opts)) {
-            snmp_log(LOG_ERR, "Too many localOpts in snmp_parse_args()\n");
-            return -1;
-        }
+    if (localOpts)
         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;
     }
 
     /*
@@ -231,11 +242,11 @@ netsnmp_parse_args(int argc,
         switch (arg) {
         case '-':
             if (strcasecmp(optarg, "help") == 0) {
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
             if (strcasecmp(optarg, "version") == 0) {
                 fprintf(stderr,"NET-SNMP version: %s\n",netsnmp_get_version());
-                return (NETSNMP_PARSE_ARGS_SUCCESS_EXIT);
+                return (-2);
             }
 
             handle_long_opt(optarg);
@@ -243,17 +254,17 @@ netsnmp_parse_args(int argc,
 
         case 'V':
             fprintf(stderr, "NET-SNMP version: %s\n", netsnmp_get_version());
-            return (NETSNMP_PARSE_ARGS_SUCCESS_EXIT);
+            return (-2);
 
         case 'h':
-            return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+            return (-1);
             break;
 
         case 'H':
             init_snmp("snmpapp");
             fprintf(stderr, "Configuration directives understood:\n");
             read_config_print_usage("  ");
-            return (NETSNMP_PARSE_ARGS_SUCCESS_EXIT);
+            return (-2);
 
         case 'Y':
             netsnmp_config_remember(optarg);
@@ -275,7 +286,7 @@ netsnmp_parse_args(int argc,
             if (cp != NULL) {
                 fprintf(stderr, "Unknown output option passed to -O: %c.\n", 
 			*cp);
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
             break;
 
@@ -284,7 +295,7 @@ netsnmp_parse_args(int argc,
             if (cp != NULL) {
                 fprintf(stderr, "Unknown input option passed to -I: %c.\n",
 			*cp);
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
             break;
 
@@ -294,7 +305,7 @@ netsnmp_parse_args(int argc,
             if (cp != NULL) {
                 fprintf(stderr,
                         "Unknown parsing option passed to -P: %c.\n", *cp);
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
             break;
 #endif /* NETSNMP_DISABLE_MIB_LOADING */
@@ -328,70 +339,35 @@ netsnmp_parse_args(int argc,
                 fprintf(stderr,
                         "Invalid version specified after -v flag: %s\n",
                         optarg);
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
             break;
 
         case 'p':
             fprintf(stderr, "Warning: -p option is no longer used - ");
             fprintf(stderr, "specify the remote host as HOST:PORT\n");
-            return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+            return (-1);
             break;
 
         case 'T':
-        {
-            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));
+            fprintf(stderr, "Warning: -T option is no longer used - ");
+            fprintf(stderr, "specify the remote host as TRANSPORT:HOST\n");
+            return (-1);
+            break;
 
-            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) {
+            session->timeout = atoi(optarg) * 1000000L;
+            if (session->timeout < 0 || !isdigit(optarg[0])) {
                 fprintf(stderr, "Invalid timeout in seconds after -t flag.\n");
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
             break;
 
         case 'r':
             session->retries = atoi(optarg);
-            if (session->retries < 0 || !isdigit((unsigned char)(optarg[0]))) {
+            if (session->retries < 0 || !isdigit(optarg[0])) {
                 fprintf(stderr, "Invalid number of retries after -r flag.\n");
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
             break;
 
@@ -403,7 +379,7 @@ netsnmp_parse_args(int argc,
 		    sp++;
 		} else {
 		    fprintf(stderr, "malloc failure processing -c flag.\n");
-		    return NETSNMP_PARSE_ARGS_ERROR;
+		    return -1;
 		}
 	    } else {
 		Cpsz = optarg;
@@ -413,14 +389,15 @@ netsnmp_parse_args(int argc,
         case '3':
 	    /*  TODO: This needs to zero things too.  */
             if (snmpv3_options(optarg, session, &Apsz, &Xpsz, argc, argv) < 0){
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
             break;
 
         case 'L':
             if (snmp_log_options(optarg, argc, argv) < 0) {
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
+	    logopt = 1;
             break;
 
 #define SNMPV3_CMD_OPTIONS
@@ -430,7 +407,7 @@ netsnmp_parse_args(int argc,
             session->engineBoots = strtoul(optarg, &cp, 10);
             if (errno || cp == optarg) {
                 fprintf(stderr, "Need engine boots value after -Z flag.\n");
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
             if (*cp == ',') {
                 char *endptr;
@@ -438,7 +415,7 @@ netsnmp_parse_args(int argc,
                 session->engineTime = strtoul(cp, &endptr, 10);
                 if (errno || cp == endptr) {
                     fprintf(stderr, "Need engine time after \"-Z engineBoot,\".\n");
-                    return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                    return (-1);
                 }
             }
             /*
@@ -448,11 +425,11 @@ netsnmp_parse_args(int argc,
                 session->engineTime = strtoul(argv[optind], &cp, 10);
                 if (errno || cp == argv[optind]) {
                     fprintf(stderr, "Need engine time after \"-Z engineBoot\".\n");
-                    return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                    return (-1);
                 }
             } else {
                 fprintf(stderr, "Need engine time after \"-Z engineBoot\".\n");
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
             break;
 
@@ -462,18 +439,18 @@ netsnmp_parse_args(int argc,
 
                 if (ebuf == NULL) {
                     fprintf(stderr, "malloc failure processing -e flag.\n");
-                    return (NETSNMP_PARSE_ARGS_ERROR);
+                    return (-1);
                 }
                 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 (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                    return (-1);
                 }
                 if ((eout_len < 5) || (eout_len > 32)) {
                     fprintf(stderr, "Invalid engine ID value after -e flag.\n");
                     free(ebuf);
-                    return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                    return (-1);
                 }
                 session->securityEngineID = ebuf;
                 session->securityEngineIDLen = eout_len;
@@ -486,18 +463,18 @@ netsnmp_parse_args(int argc,
 
                 if (ebuf == NULL) {
                     fprintf(stderr, "malloc failure processing -E flag.\n");
-                    return (NETSNMP_PARSE_ARGS_ERROR);
+                    return (-1);
                 }
                 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 (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                    return (-1);
                 }
                 if ((eout_len < 5) || (eout_len > 32)) {
                     fprintf(stderr, "Invalid engine ID value after -E flag.\n");
                     free(ebuf);
-                    return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                    return (-1);
                 }
                 session->contextEngineID = ebuf;
                 session->contextEngineIDLen = eout_len;
@@ -518,7 +495,7 @@ netsnmp_parse_args(int argc,
 		    sp++;
 		} else {
 		    fprintf(stderr, "malloc failure processing -u flag.\n");
-		    return NETSNMP_PARSE_ARGS_ERROR;
+		    return -1;
 		}
 	    } else {
 		session->securityName = optarg;
@@ -545,12 +522,11 @@ netsnmp_parse_args(int argc,
                 fprintf(stderr,
                         "Invalid security level specified after -l flag: %s\n",
                         optarg);
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
 
             break;
 
-#ifdef NETSNMP_SECMOD_USM
         case 'a':
 #ifndef NETSNMP_DISABLE_MD5
             if (!strcasecmp(optarg, "MD5")) {
@@ -565,7 +541,7 @@ netsnmp_parse_args(int argc,
                 fprintf(stderr,
                         "Invalid authentication protocol specified after -a flag: %s\n",
                         optarg);
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
             break;
 
@@ -590,7 +566,7 @@ netsnmp_parse_args(int argc,
                 fprintf(stderr,
                       "Invalid privacy protocol specified after -x flag: %s\n",
                         optarg);
-                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                return (-1);
             }
             break;
 
@@ -602,7 +578,7 @@ netsnmp_parse_args(int argc,
 		    sp++;
 		} else {
 		    fprintf(stderr, "malloc failure processing -A flag.\n");
-		    return NETSNMP_PARSE_ARGS_ERROR;
+		    return -1;
 		}
 	    } else {
 		Apsz = optarg;
@@ -617,17 +593,16 @@ netsnmp_parse_args(int argc,
 		    sp++;
 		} else {
 		    fprintf(stderr, "malloc failure processing -X flag.\n");
-		    return NETSNMP_PARSE_ARGS_ERROR;
+		    return -1;
 		}
 	    } else {
 		Xpsz = optarg;
 	    }
             break;
 #endif                          /* SNMPV3_CMD_OPTIONS */
-#endif /* NETSNMP_SECMOD_USM */
 
         case '?':
-            return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+            return (-1);
             break;
 
         default:
@@ -637,6 +612,9 @@ netsnmp_parse_args(int argc,
     }
     DEBUGMSGTL(("snmp_parse_args", "finished: %d/%d\n", optind, argc));
     
+    if (!logopt)
+	snmp_enable_stderrlog();
+
     /*
      * read in MIB database and initialize the snmp library
      */
@@ -675,7 +653,7 @@ netsnmp_parse_args(int argc,
 
             default:
                 snmp_log(LOG_ERR, "Can't determine a valid SNMP version for the session\n");
-                return(NETSNMP_PARSE_ARGS_ERROR);
+                return(-2);
             }
         } else {
 #ifndef NETSNMP_DISABLE_SNMPV1
@@ -685,9 +663,6 @@ netsnmp_parse_args(int argc,
         }
     }
 
-#ifdef NETSNMP_SECMOD_USM
-    /* XXX: this should ideally be moved to snmpusm.c somehow */
-
     /*
      * make master key from pass phrases 
      */
@@ -726,7 +701,7 @@ netsnmp_parse_args(int argc,
             snmp_perror(argv[0]);
             fprintf(stderr,
                     "Error generating a key (Ku) from the supplied authentication pass phrase. \n");
-            return (NETSNMP_PARSE_ARGS_ERROR);
+            return (-2);
         }
     }
     if (Xpsz) {
@@ -765,17 +740,15 @@ netsnmp_parse_args(int argc,
             snmp_perror(argv[0]);
             fprintf(stderr,
                     "Error generating a key (Ku) from the supplied privacy pass phrase. \n");
-            return (NETSNMP_PARSE_ARGS_ERROR);
+            return (-2);
         }
     }
-#endif /* NETSNMP_SECMOD_USM */
-
     /*
      * get the hostname 
      */
     if (optind == argc) {
         fprintf(stderr, "No hostname specified.\n");
-        return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+        return (-1);
     }
     session->peername = argv[optind++]; /* hostname */
 
@@ -809,7 +782,7 @@ netsnmp_parse_args(int argc,
                     session->community_len = 0;
                 } else {
                     fprintf(stderr, "No community name specified.\n");
-                    return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+                    return (-1);
                 }
 	    }
 	} else {
@@ -821,12 +794,3 @@ netsnmp_parse_args(int argc,
 
     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 9e60a42..aefe8f6 100644
--- a/snmplib/snmp_secmod.c
+++ b/snmplib/snmp_secmod.c
@@ -30,9 +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/snmpv3-security-includes.h>
-
-#include <net-snmp/net-snmp-features.h>
+#include <net-snmp/library/snmpusm.h>
 
 static struct snmp_secmod_list *registered_services = NULL;
 
@@ -53,11 +51,6 @@ init_secmod(void)
 #include "snmpsm_init.h"
 }
 
-void
-shutdown_secmod(void)
-{
-    #include "snmpsm_shutdown.h"
-}
 
 int
 register_sec_mod(int secmod, const char *modname,
@@ -106,8 +99,6 @@ register_sec_mod(int secmod, const char *modname,
     return SNMPERR_SUCCESS;
 }
 
-netsnmp_feature_child_of(unregister_sec_mod, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_UNREGISTER_SEC_MOD
 int
 unregister_sec_mod(int secmod)
 {
@@ -130,7 +121,6 @@ unregister_sec_mod(int secmod)
      */
     return SNMPERR_GENERR;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UNREGISTER_SEC_MOD */
 
 void            
 clear_sec_mod(void)
@@ -163,19 +153,6 @@ find_sec_mod(int secmod)
     return NULL;
 }
 
-/* try to pick a reasonable security module default based on what was
-   compiled into the net-snmp package */
-#ifdef USM_SEC_MODEL_NUMBER
-#define NETSNMP_SECMOD_DEFAULT_MODEL  USM_SEC_MODEL_NUMBER
-#elif defined(TSM_SEC_MODEL_NUMBER)
-#define NETSNMP_SECMOD_DEFAULT_MODEL  TSM_SEC_MODEL_NUMBER
-#elif defined(KSM_SEC_MODEL_NUMBER)
-#define NETSNMP_SECMOD_DEFAULT_MODEL  KSM_SEC_MODEL_NUMBER
-#else
-/* else we give up and leave it blank */
-#define NETSNMP_SECMOD_DEFAULT_MODEL  -1
-#endif
-
 static int
 set_default_secmod(int major, int minor, void *serverarg, void *clientarg)
 {
@@ -195,11 +172,11 @@ set_default_secmod(int major, int minor, void *serverarg, void *clientarg)
                 snmp_log(LOG_ERR,
                          "unknown security model name: %s.  Forcing USM instead.\n",
                          cptr);
-                sess->securityModel = NETSNMP_SECMOD_DEFAULT_MODEL;
+                sess->securityModel = USM_SEC_MODEL_NUMBER;
                 return SNMPERR_GENERR;
             }
         } else {
-            sess->securityModel = NETSNMP_SECMOD_DEFAULT_MODEL;
+            sess->securityModel = USM_SEC_MODEL_NUMBER;
         }
     }
     return SNMPERR_SUCCESS;
diff --git a/snmplib/snmp_service.c b/snmplib/snmp_service.c
index 54cb4ac..b5118d1 100644
--- a/snmplib/snmp_service.c
+++ b/snmplib/snmp_service.c
@@ -11,7 +11,7 @@ create_word_array_helper(const char* cptr, size_t idx, char* tmp, size_t tmplen)
 {
     char* item;
     char** res;
-    cptr = copy_nword_const(cptr, tmp, tmplen);
+    cptr = copy_nword((char*)cptr, tmp, tmplen);
     item = strdup(tmp);
     if (cptr)
         res = create_word_array_helper(cptr, idx + 1, tmp, tmplen);
@@ -28,7 +28,7 @@ create_word_array(const char* cptr)
 {
     size_t tmplen = strlen(cptr);
     char* tmp = (char*)malloc(tmplen + 1);
-    char** res = create_word_array_helper(cptr, 0, tmp, tmplen + 1);
+    char** res = create_word_array_helper(cptr, 0, tmp, tmplen);
     free(tmp);
     return res;
 }
@@ -68,7 +68,7 @@ netsnmp_register_default_domain(const char* application, const char* domain)
     if (run && strcmp(run->application, application) == 0) {
       if (run->domain != NULL) {
           destroy_word_array(run->domain);
-	  run->domain = NULL;
+	  run->domain=NULL;
 	  res = 1;
       }
     } else {
@@ -119,12 +119,6 @@ netsnmp_register_user_domain(const char* token, char* cptr)
 
     {
         char* cp = copy_nword(cptr, application, len);
-        if (cp == NULL) {
-            netsnmp_config_error("No domain(s) in registration of "
-                                 "defDomain \"%s\"", application);
-            free(application);
-            return;
-        }
         domain = create_word_array(cp);
     }
 
@@ -233,21 +227,12 @@ struct netsnmp_lookup_target {
 
 static struct netsnmp_lookup_target* targets = NULL;
 
-/**
- * Add an (application, domain, target) triplet to the targets list if target
- * != NULL. Remove an entry if target == NULL and the userTarget pointer for
- * the entry found is also NULL. Keep at most one target per (application,
- * domain) pair.
- *
- * @return 1 if an entry for (application, domain) was already present in the
- *   targets list or 0 if such an entry was not yet present in the targets list.
- */
 int
 netsnmp_register_default_target(const char* application, const char* domain,
 				const char* target)
 {
     struct netsnmp_lookup_target *run = targets, *prev = NULL;
-    int i = 0, res = 0;
+    int i, res = 0;
     while (run && ((i = strcmp(run->application, application)) < 0 ||
 		   (i == 0 && strcmp(run->domain, domain) < 0))) {
 	prev = run;
@@ -286,9 +271,6 @@ netsnmp_register_default_target(const char* application, const char* domain,
     return res;
 }
 
-/**
- * Clear the targets list.
- */
 void
 netsnmp_clear_default_target(void)
 {
@@ -311,22 +293,11 @@ netsnmp_register_user_target(const char* token, char* cptr)
     char* application = (char*)malloc(len);
     char* domain = (char*)malloc(len);
     char* target = (char*)malloc(len);
-    int i = 0;
+    int i;
 
     {
 	char* cp = copy_nword(cptr, application, len);
-        if (cp == NULL) {
-            netsnmp_config_error("No domain and target in registration of "
-                                 "defTarget \"%s\"", application);
-            goto done;
-        }
 	cp = copy_nword(cp, domain, len);
-        if (cp == NULL) {
-            netsnmp_config_error("No target in registration of "
-                                 "defTarget \"%s\" \"%s\"",
-                                 application, domain);
-            goto done;
-        }
 	cp = copy_nword(cp, target, len);
 	if (cp)
 	    config_pwarn("Trailing junk found");
@@ -392,7 +363,7 @@ netsnmp_clear_user_target(void)
 const char*
 netsnmp_lookup_default_target(const char* application, const char* domain)
 {
-    int i = 0;
+    int i;
     struct netsnmp_lookup_target *run = targets;
     const char *res;
 
diff --git a/snmplib/snmp_transport.c b/snmplib/snmp_transport.c
index 9b16245..d8255dd 100644
--- a/snmplib/snmp_transport.c
+++ b/snmplib/snmp_transport.c
@@ -1,8 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-#include <net-snmp/types.h>
-#include <net-snmp/library/snmp_transport.h>
 
 #include <stdio.h>
 #if HAVE_STRING_H
@@ -16,11 +12,6 @@
 #include <stdlib.h>
 #endif
 
-#include <ctype.h>
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -28,14 +19,10 @@
 #include <net-snmp/output_api.h>
 #include <net-snmp/utilities.h>
 
-#include <net-snmp/library/default_store.h>
-
+#include <net-snmp/library/snmp_transport.h>
 #include <net-snmp/library/snmpUDPDomain.h>
-#ifdef NETSNMP_TRANSPORT_TLSBASE_DOMAIN
-#include <net-snmp/library/snmpTLSBaseDomain.h>
-#endif
-#ifdef NETSNMP_TRANSPORT_TLSTCP_DOMAIN
-#include <net-snmp/library/snmpTLSTCPDomain.h>
+#ifdef NETSNMP_TRANSPORT_TLS_DOMAIN
+#include <net-snmp/library/snmpTLSDomain.h>
 #endif
 #ifdef NETSNMP_TRANSPORT_STD_DOMAIN
 #include <net-snmp/library/snmpSTDDomain.h>
@@ -43,15 +30,6 @@
 #ifdef NETSNMP_TRANSPORT_TCP_DOMAIN
 #include <net-snmp/library/snmpTCPDomain.h>
 #endif
-#ifdef NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
-#include <net-snmp/library/snmpDTLSUDPDomain.h>
-#endif
-#ifdef NETSNMP_TRANSPORT_SSH_DOMAIN
-#include <net-snmp/library/snmpSSHDomain.h>
-#endif
-#ifdef NETSNMP_TRANSPORT_ALIAS_DOMAIN
-#include <net-snmp/library/snmpAliasDomain.h>
-#endif
 #ifdef NETSNMP_TRANSPORT_IPX_DOMAIN
 #include <net-snmp/library/snmpIPXDomain.h>
 #endif
@@ -69,13 +47,7 @@
 #endif
 #include <net-snmp/library/snmp_api.h>
 #include <net-snmp/library/snmp_service.h>
-#include <net-snmp/library/read_config.h>
 
-netsnmp_feature_child_of(transport_all, libnetsnmp)
-
-netsnmp_feature_child_of(tdomain_support, transport_all)
-netsnmp_feature_child_of(tdomain_transport_oid, transport_all)
-netsnmp_feature_child_of(sockaddr_size, transport_all)
 
 /*
  * Our list of supported transport domains.  
@@ -105,32 +77,20 @@ size_t          netsnmpIPXDomain_len = OID_LENGTH(netsnmpIPXDomain);
 static void     netsnmp_tdomain_dump(void);
 
 
-
-void
-init_snmp_transport(void)
-{
-    netsnmp_ds_register_config(ASN_BOOLEAN,
-                               "snmp", "dontLoadHostConfig",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_DONT_LOAD_HOST_FILES);
-}
-
 /*
  * Make a deep copy of an netsnmp_transport.  
  */
+
 netsnmp_transport *
 netsnmp_transport_copy(netsnmp_transport *t)
 {
     netsnmp_transport *n = NULL;
 
-    if (t == NULL) {
-        return NULL;
-    }
-
-    n = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
+    n = (netsnmp_transport *) malloc(sizeof(netsnmp_transport));
     if (n == NULL) {
         return NULL;
     }
+    memset(n, 0, sizeof(netsnmp_transport));
 
     if (t->domain != NULL) {
         n->domain = t->domain;
@@ -184,17 +144,10 @@ netsnmp_transport_copy(netsnmp_transport *t)
     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;
-    n->base_transport = netsnmp_transport_copy(t->base_transport);
 
-    /* give the transport a chance to do "special things" */
-    if (t->f_copy)
-        t->f_copy(t, n);
-                
     return n;
 }
 
@@ -206,128 +159,20 @@ netsnmp_transport_free(netsnmp_transport *t)
     if (NULL == t)
         return;
 
-    SNMP_FREE(t->local);
-    SNMP_FREE(t->remote);
-    SNMP_FREE(t->data);
-    netsnmp_transport_free(t->base_transport);
-
-    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;
-}
-
-#ifndef NETSNMP_FEATURE_REMOVE_SOCKADDR_SIZE
-int
-netsnmp_sockaddr_size(struct sockaddr *sa)
-{
-    if (NULL == sa)
-        return 0;
-
-    switch (sa->sa_family) {
-        case AF_INET:
-            return sizeof(struct sockaddr_in);
-        break;
-#ifdef NETSNMP_ENABLE_IPV6
-        case AF_INET6:
-            return sizeof(struct sockaddr_in6);
-            break;
-#endif
-    }
-
-    return 0;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_SOCKADDR_SIZE */
-    
-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 (t->local != NULL) {
+        SNMP_FREE(t->local);
     }
-    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;
+    if (t->remote != NULL) {
+        SNMP_FREE(t->remote);
     }
-
-    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);
+    if (t->data != NULL) {
+        SNMP_FREE(t->data);
     }
-
-    return length;
+    SNMP_FREE(t);
 }
 
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_TDOMAIN_SUPPORT
 int
 netsnmp_tdomain_support(const oid * in_oid,
                         size_t in_len,
@@ -346,17 +191,35 @@ netsnmp_tdomain_support(const oid * in_oid,
     }
     return 0;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TDOMAIN_SUPPORT */
+
 
 
 void
 netsnmp_tdomain_init(void)
 {
     DEBUGMSGTL(("tdomain", "netsnmp_tdomain_init() called\n"));
-
-/* include the configure generated list of constructor calls */
-#include "transports/snmp_transport_inits.h"
-
+    netsnmp_udp_ctor();
+#ifdef NETSNMP_TRANSPORT_STD_DOMAIN
+    netsnmp_std_ctor();
+#endif
+#ifdef NETSNMP_TRANSPORT_TCP_DOMAIN
+    netsnmp_tcp_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
     netsnmp_tdomain_dump();
 }
 
@@ -424,8 +287,6 @@ netsnmp_tdomain_register(netsnmp_tdomain *n)
 
 
 
-netsnmp_feature_child_of(tdomain_unregister, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_TDOMAIN_UNREGISTER
 int
 netsnmp_tdomain_unregister(netsnmp_tdomain *n)
 {
@@ -446,7 +307,6 @@ netsnmp_tdomain_unregister(netsnmp_tdomain *n)
         return 0;
     }
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TDOMAIN_UNREGISTER */
 
 
 static netsnmp_tdomain *
@@ -467,22 +327,6 @@ find_tdomain(const char* spec)
     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.
@@ -497,7 +341,6 @@ netsnmp_tdomain_transport_full(const char *application,
     const char         *addr = NULL;
     const char * const *spec = NULL;
     int                 any_found = 0;
-    char buf[SNMP_MAXPATH];
 
     DEBUGMSGTL(("tdomain",
                 "tdomain_transport_full(\"%s\", \"%s\", %d, \"%s\", \"%s\")\n",
@@ -505,61 +348,10 @@ netsnmp_tdomain_transport_full(const char *application,
                 default_domain ? default_domain : "[NIL]",
                 default_target ? default_target : "[NIL]"));
 
-    /* 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) {
-        const char *cp;
+        char *cp;
         if ((cp = strchr(str, ':')) != NULL) {
             char* mystring = (char*)malloc(cp + 1 - str);
             memcpy(mystring, str, cp - str);
@@ -627,17 +419,12 @@ netsnmp_tdomain_transport_full(const char *application,
                         "default address \"%s\"\n",
                         match->prefix[0], addr ? addr : "[NIL]",
                         addr2 ? addr2 : "[NIL]"));
-            if (match->f_create_from_tstring) {
-                NETSNMP_LOGONCE((LOG_WARNING,
-                                 "transport domain %s uses deprecated f_create_from_tstring\n",
-                                 match->prefix[0]));
+            if (match->f_create_from_tstring)
                 t = match->f_create_from_tstring(addr, local);
-            }
             else
                 t = match->f_create_from_tstring_new(addr, local, addr2);
-            if (t) {
+            if (t)
                 return t;
-            }
         }
         addr = str;
         if (spec && *spec)
@@ -660,7 +447,6 @@ netsnmp_tdomain_transport(const char *str, int local,
 }
 
 
-#ifndef NETSNMP_FEATURE_REMOVE_TDOMAIN_TRANSPORT_OID
 netsnmp_transport *
 netsnmp_tdomain_transport_oid(const oid * dom,
                               size_t dom_len,
@@ -685,7 +471,6 @@ netsnmp_tdomain_transport_oid(const oid * dom,
     snmp_log(LOG_ERR, "No support for requested transport domain\n");
     return NULL;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TDOMAIN_TRANSPORT_OID */
 
 netsnmp_transport*
 netsnmp_transport_open(const char* application, const char* str, int local)
@@ -751,18 +536,3 @@ netsnmp_transport_remove_from_list(netsnmp_transport_list **transport_list,
 
     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/snmp_version.c b/snmplib/snmp_version.c
index 7d34c0d..f56f070 100644
--- a/snmplib/snmp_version.c
+++ b/snmplib/snmp_version.c
@@ -5,10 +5,10 @@
 #ifndef UCD_COMPATIBLE
 static
 #endif
-const char     *NetSnmpVersionInfo = PACKAGE_VERSION;
+const char     *NetSnmpVersionInfo = "5.4.3";
 
 const char     *
-netsnmp_get_version(void)
+netsnmp_get_version()
 {
     return NetSnmpVersionInfo;
 }
diff --git a/snmplib/snmpksm.c b/snmplib/snmpksm.c
index 06febe2..2836723 100644
--- a/snmplib/snmpksm.c
+++ b/snmplib/snmpksm.c
@@ -9,12 +9,19 @@
 #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
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -229,11 +236,7 @@ init_ksm(void)
     def->pdu_free = ksm_free_pdu;
     def->pdu_clone = ksm_clone_pdu;
 
-    register_sec_mod(NETSNMP_SEC_MODEL_KSM, "ksm", def);
-}
-
-void shutdown_ksm(void)
-{
+    register_sec_mod(NETSNMP_KSM_SECURITY_MODEL, "ksm", def);
 }
 
 /*
@@ -1000,7 +1003,7 @@ ksm_rgenerate_out_msg(struct snmp_secmod_outgoing_params *parms)
                                       parms->wholeMsgOffset, 1,
                                       (u_char) (ASN_UNIVERSAL |
                                                 ASN_PRIMITIVE |
-                                                ASN_INTEGER),
+                                                ASN_OCTET_STR),
                                       &tmp, sizeof(tmp));
 
     if (rc == 0) {
diff --git a/snmplib/snmptsm.c b/snmplib/snmptsm.c
deleted file mode 100644
index bf4b612..0000000
--- a/snmplib/snmptsm.c
+++ /dev/null
@@ -1,627 +0,0 @@
-/*
- * 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 are passed up
- * by the transport underneath.  The RFC describing this security
- * model is RFC5591.
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#include <net-snmp/net-snmp-features.h>
-#include <net-snmp/net-snmp-includes.h>
-
-#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
-
-netsnmp_feature_require(snmpv3_probe_contextEngineID_rfc5343)
-netsnmp_feature_require(row_create)
-
-#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 int      tsm_free_pdu(netsnmp_pdu *pdu);
-
-u_int next_sess_id = 1;
-
-/** Initialize the TSM security module */
-void
-init_tsm(void)
-{
-    struct snmp_secmod_def *def;
-    int ret;
-
-    def = SNMP_MALLOC_STRUCT(snmp_secmod_def);
-
-    if (!def) {
-        snmp_log(LOG_ERR,
-                 "Unable to malloc snmp_secmod struct, not registering TSM\n");
-        return;
-    }
-
-    def->encode_reverse = tsm_rgenerate_out_msg;
-    def->decode = tsm_process_in_msg;
-    def->session_open = tsm_session_init;
-    def->pdu_free_state_ref = tsm_free_state_ref;
-    def->pdu_clone = tsm_clone_pdu;
-    def->pdu_free = tsm_free_pdu;
-    def->probe_engineid = snmpv3_probe_contextEngineID_rfc5343;
-
-    DEBUGMSGTL(("tsm","registering ourselves\n"));
-    ret = register_sec_mod(SNMP_SEC_MODEL_TSM, "tsm", def);
-    DEBUGMSGTL(("tsm"," returned %d\n", ret));
-
-    netsnmp_ds_register_config(ASN_BOOLEAN, "snmp", "tsmUseTransportPrefix",
-			       NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_TSM_USE_PREFIX);
-}
-
-/** shutdown the TSM security module */
-void
-shutdown_tsm(void)
-{
-}
-
-/*
- * Initialize specific session information (right now, just set up things to
- * not do an engineID probe)
- */
-
-static int
-tsm_session_init(netsnmp_session * sess)
-{
-    DEBUGMSGTL(("tsm",
-                "TSM: Reached our session initialization callback\n"));
-
-    sess->flags |= SNMP_FLAGS_DONT_PROBE;
-
-    /* XXX: likely needed for something: */
-    /*
-    tsmsession = sess->securityInfo =
-    if (!tsmsession)
-        return SNMPERR_GENERR;
-    */
-
-    return SNMPERR_SUCCESS;
-}
-
-/** Free our state information (this is only done on the agent side) */
-static void
-tsm_free_state_ref(void *ptr)
-{
-    netsnmp_tsmSecurityReference *tsmRef;
-
-    if (NULL == ptr)
-        return;
-
-    tsmRef = (netsnmp_tsmSecurityReference *) ptr;
-    /* the tmStateRef is always taken care of by the normal PDU, since this
-       is just a reference to that one */
-    /* DON'T DO: SNMP_FREE(tsmRef->tmStateRef); */
-    /* SNMP_FREE(tsmRef);  ? */
-}
-
-static int
-tsm_free_pdu(netsnmp_pdu *pdu)
-{
-    /* free the security reference */
-    if (pdu->securityStateRef) {
-        tsm_free_state_ref(pdu->securityStateRef);
-        pdu->securityStateRef = NULL;
-    }
-    return 0;
-}
-
-/** This is called when a PDU is cloned (to increase reference counts) */
-static int
-tsm_clone_pdu(netsnmp_pdu *pdu, netsnmp_pdu *pdu2)
-{
-    netsnmp_tsmSecurityReference *oldref, *newref;
-
-    oldref = pdu->securityStateRef;
-    if (!oldref)
-        return SNMPERR_SUCCESS;
-
-    newref = SNMP_MALLOC_TYPEDEF(netsnmp_tsmSecurityReference);
-    DEBUGMSGTL(("tsm", "cloned as pdu=%p, ref=%p (oldref=%p)\n",
-            pdu2, newref, pdu2->securityStateRef));
-    if (!newref)
-        return SNMPERR_GENERR;
-    
-    memcpy(newref, oldref, sizeof(*oldref));
-
-    pdu2->securityStateRef = newref;
-
-    /* the tm state reference is just a link to the one in the pdu,
-       which was already copied by snmp_clone_pdu before handing it to
-       us. */
-
-    memdup((u_char **) &newref->tmStateRef, oldref->tmStateRef,
-           sizeof(*oldref->tmStateRef));
-    return SNMPERR_SUCCESS;
-}
-
-/* asn.1 easing definitions */
-#define TSMBUILD_OR_ERR(fun, args, msg, desc)       \
-    DEBUGDUMPHEADER("send", desc); \
-    rc = fun args;            \
-    DEBUGINDENTLESS();        \
-    if (rc == 0) { \
-        DEBUGMSGTL(("tsm",msg)); \
-        retval = SNMPERR_TOO_LONG; \
-        goto outerr; \
-    }
-
-/****************************************************************************
- *
- * tsm_generate_out_msg
- *
- * Parameters:
- *	(See list below...)
- *
- * Returns:
- *	SNMPERR_SUCCESS                        On success.
- *	... and others
- *
- *
- * Generate an outgoing message.
- *
- ****************************************************************************/
-
-int
-tsm_rgenerate_out_msg(struct snmp_secmod_outgoing_params *parms)
-{
-    u_char         **wholeMsg = parms->wholeMsg;
-    size_t	   *offset = parms->wholeMsgOffset;
-    int rc;
-    
-    size_t         *wholeMsgLen = parms->wholeMsgLen;
-    netsnmp_tsmSecurityReference *tsmSecRef;
-    netsnmp_tmStateReference *tmStateRef;
-    int             tmStateRefLocal = 0;
-    
-    DEBUGMSGTL(("tsm", "Starting TSM processing\n"));
-
-    /* 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) {
-        /* 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. */
-
-        /* 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 {
-        /* 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);
-        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_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,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;
-            }
-
-            /* 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);
-                return SNMPERR_GENERR;
-            }
-
-            /* 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 {
-            /* 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';
-
-    /* 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,
-                                     (u_char) (ASN_UNIVERSAL | ASN_PRIMITIVE
-                                             | ASN_OCTET_STR), 0);
-    DEBUGINDENTLESS();
-    if (rc == 0) {
-        DEBUGMSGTL(("tsm", "building msgSecurityParameters failed.\n"));
-        if (tmStateRefLocal)
-            SNMP_FREE(tmStateRef);
-        return SNMPERR_TOO_LONG;
-    }
-    
-    /* 4.2, step 4: Combine the message parts into a wholeMsg and
-       calculate wholeMsgLength.
-     */
-    while ((*wholeMsgLen - *offset) < parms->globalDataLen) {
-        if (!asn_realloc(wholeMsg, wholeMsgLen)) {
-            DEBUGMSGTL(("tsm", "building global data failed.\n"));
-            if (tmStateRefLocal)
-                SNMP_FREE(tmStateRef);
-            return SNMPERR_TOO_LONG;
-        }
-    }
-
-    *offset += parms->globalDataLen;
-    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.  
-     */
-    rc = asn_realloc_rbuild_sequence(wholeMsg, wholeMsgLen, offset, 1,
-                                     (u_char) (ASN_SEQUENCE |
-                                               ASN_CONSTRUCTOR), *offset);
-    if (rc == 0) {
-        DEBUGMSGTL(("tsm", "building master packet sequence failed.\n"));
-        if (tmStateRefLocal)
-            SNMP_FREE(tmStateRef);
-        return SNMPERR_TOO_LONG;
-    }
-
-    if (parms->pdu->transport_data &&
-        parms->pdu->transport_data != tmStateRef) {
-        snmp_log(LOG_ERR, "tsm: needed to free transport data\n");
-        SNMP_FREE(parms->pdu->transport_data);
-    }
-
-    /* put the transport state reference into the PDU for the transport */
-    if (SNMPERR_SUCCESS !=
-        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);
-
-    if (tmStateRefLocal)
-        SNMP_FREE(tmStateRef);
-    DEBUGMSGTL(("tsm", "TSM processing completed.\n"));
-    return SNMPERR_SUCCESS;
-}
-
-/****************************************************************************
- *
- * tsm_process_in_msg
- *
- * Parameters:
- *	(See list below...)
- *
- * Returns:
- *	TSM_ERR_NO_ERROR                        On success.
- *	TSM_ERR_GENERIC_ERROR
- *	TSM_ERR_UNSUPPORTED_SECURITY_LEVEL
- *
- *
- * Processes an incoming message.
- *
- ****************************************************************************/
-
-int
-tsm_process_in_msg(struct snmp_secmod_incoming_params *parms)
-{
-    u_char type_value;
-    size_t remaining;
-    u_char *data_ptr;
-    netsnmp_tmStateReference *tmStateRef;
-    netsnmp_tsmSecurityReference *tsmSecRef;
-    u_char          ourEngineID[SNMP_MAX_ENG_SIZE];
-    static size_t   ourEngineID_len = sizeof(ourEngineID);
-    
-    /* Section 5.2, step 1: Set the securityEngineID to the local
-       snmpEngineID. */
-    ourEngineID_len =
-        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: 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) {
-        /* if we're not coming in over a proper transport; bail! */
-        DEBUGMSGTL(("tsm","improper transport data\n"));
-        return -1;
-    }
-    tmStateRef = (netsnmp_tmStateReference *) parms->pdu->transport_data;
-    parms->pdu->transport_data = NULL;
-
-    if (tmStateRef == NULL ||
-        /* not needed: tmStateRef->transportDomain == NULL || */
-        /* not needed: tmStateRef->transportAddress == NULL || */
-        tmStateRef->securityName[0] == '\0'
-        ) {
-        snmp_increment_statistic(STAT_TSM_SNMPTSMINVALIDCACHES);
-        return SNMPERR_GENERR;
-    }
-
-    /* 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 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);
-    }
-
-    /* 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) {
-        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
-       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;
-    }
-
-    netsnmp_assert_or_return(NULL != tsmSecRef, SNMPERR_GENERR);
-
-    *parms->secStateRef = tsmSecRef;
-    tsmSecRef->tmStateRef = tmStateRef;
-
-    /* If this did not come through a tunneled connection, this
-       security model is inappropriate (and would be a HUGE security
-       hole to assume otherwise).  This is functionally a double check
-       since the pdu wouldn't have transport data otherwise.  But this
-       is safer though is functionally an extra step beyond the TSM
-       RFC. */
-    DEBUGMSGTL(("tsm","checking how we got here\n"));
-    if (!(parms->pdu->flags & UCD_MSG_FLAG_TUNNELED)) {
-        DEBUGMSGTL(("tsm","  pdu not tunneled\n"));
-        if (!(parms->sess->flags & NETSNMP_TRANSPORT_FLAG_TUNNELED)) {
-            DEBUGMSGTL(("tsm","  session not tunneled\n"));
-            return SNMPERR_USM_AUTHENTICATIONFAILURE;
-        }
-        DEBUGMSGTL(("tsm","  but session is tunneled\n"));
-    } else {
-        DEBUGMSGTL(("tsm","  tunneled\n"));
-    }
-
-    /* Section 5.2, Step 6:
-       The scopedPDU component is extracted from the wholeMsg. */
-    /*
-     * Eat the first octet header.
-     */
-    remaining = parms->wholeMsgLen - (parms->secParams - parms->wholeMsg);
-    if ((data_ptr = asn_parse_sequence(parms->secParams, &remaining,
-                                        &type_value,
-                                        (ASN_UNIVERSAL | ASN_PRIMITIVE |
-                                         ASN_OCTET_STR),
-                                        "tsm first octet")) == NULL) {
-        /*
-         * RETURN parse error 
-         */
-        return SNMPERR_ASN_PARSE_ERR;
-    }
-    
-    *parms->scopedPdu = data_ptr;
-    *parms->scopedPduLen = parms->wholeMsgLen - (data_ptr - parms->wholeMsg);
-
-    /* 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 */
-
-    /* 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 d8d8932..5cfff50 100644
--- a/snmplib/snmpusm.c
+++ b/snmplib/snmpusm.c
@@ -22,15 +22,21 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.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
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -48,9 +54,6 @@
 #include <netinet/in.h>
 #endif
 
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -72,11 +75,6 @@
 #include <net-snmp/library/snmp_secmod.h>
 #include <net-snmp/library/snmpusm.h>
 
-netsnmp_feature_child_of(usm_all, libnetsnmp)
-netsnmp_feature_child_of(usm_support, usm_all)
-
-netsnmp_feature_require(usm_support)
-
 oid             usmNoAuthProtocol[10] = { 1, 3, 6, 1, 6, 3, 10, 1, 1, 1 };
 #ifndef NETSNMP_DISABLE_MD5
 oid             usmHMACMD5AuthProtocol[10] =
@@ -95,16 +93,6 @@ oid             *usmAES128PrivProtocol = usmAESPrivProtocol;
 static u_int    dummy_etime, dummy_eboot;       /* For ISENGINEKNOWN(). */
 
 /*
- * Set up default snmpv3 parameter value storage.
- */
-#ifdef NETSNMP_SECMOD_USM
-static const oid *defaultAuthType = NULL;
-static size_t   defaultAuthTypeLen = 0;
-static const oid *defaultPrivType = NULL;
-static size_t   defaultPrivTypeLen = 0;
-#endif /* NETSNMP_SECMOD_USM */
-
-/*
  * Globals.
  */
 static u_int    salt_integer;
@@ -174,21 +162,6 @@ int
 }
 
 
-int
-free_enginetime_on_shutdown(int majorid, int minorid, void *serverarg,
-			    void *clientarg)
-{
-    u_char engineID[SNMP_MAX_ENG_SIZE];
-    size_t engineID_len = sizeof(engineID);
-
-    DEBUGMSGTL(("snmpv3", "free enginetime callback called\n"));
-
-    engineID_len = snmpv3_get_engineID(engineID, engineID_len);
-    if (engineID_len > 0)
-	free_enginetime(engineID, engineID_len);
-    return 0;
-}
-
 struct usmStateReference *
 usm_malloc_usmStateReference(void)
 {
@@ -293,33 +266,7 @@ usm_set_usmStateReference_sec_level(struct usmStateReference *ref,
     return 0;
 }
 
-int
-usm_clone_usmStateReference(struct usmStateReference *from, struct usmStateReference **to)
-{
-    struct usmStateReference *cloned_usmStateRef;
-
-    if (from == NULL || to == NULL)
-        return -1;
 
-    *to = usm_malloc_usmStateReference();
-    cloned_usmStateRef = *to;
-
-    if (usm_set_usmStateReference_name(cloned_usmStateRef, from->usr_name, from->usr_name_length) ||
-        usm_set_usmStateReference_engine_id(cloned_usmStateRef, from->usr_engine_id, from->usr_engine_id_length) ||
-        usm_set_usmStateReference_auth_protocol(cloned_usmStateRef, from->usr_auth_protocol, from->usr_auth_protocol_length) ||
-        usm_set_usmStateReference_auth_key(cloned_usmStateRef, from->usr_auth_key, from->usr_auth_key_length) ||
-        usm_set_usmStateReference_priv_protocol(cloned_usmStateRef, from->usr_priv_protocol, from->usr_priv_protocol_length) ||
-        usm_set_usmStateReference_priv_key(cloned_usmStateRef, from->usr_priv_key, from->usr_priv_key_length) ||
-        usm_set_usmStateReference_sec_level(cloned_usmStateRef, from->usr_sec_level))
-    {
-        usm_free_usmStateReference(*to);
-        *to = NULL;
-        return -1;
-    }
-
-    return 0;
-
-}
 
 #ifdef NETSNMP_ENABLE_TESTING_CODE
 /*******************************************************************-o-******
@@ -526,7 +473,7 @@ usm_calc_offsets(size_t globalDataLen,  /* SNMPv3Message + HeaderData */
                     engBtlen,   /*   for fields within                     */
                     engTmlen,   /*   msgSecurityParameters portion of      */
                     namelen,    /*   SNMPv3Message.                        */
-                    authlen, privlen, ret;
+                    authlen, privlen;
 
     /*
      * If doing authentication, msgAuthParmLen = 12 else msgAuthParmLen = 0.
@@ -542,7 +489,7 @@ usm_calc_offsets(size_t globalDataLen,  /* SNMPv3Message + HeaderData */
      * Calculate lengths.
      */
     if ((engIDlen = asn_predict_length(ASN_OCTET_STR,
-                                       NULL, secEngineIDLen)) == -1) {
+                                       0, secEngineIDLen)) == -1) {
         return -1;
     }
 
@@ -558,35 +505,31 @@ usm_calc_offsets(size_t globalDataLen,  /* SNMPv3Message + HeaderData */
         return -1;
     }
 
-    if ((namelen = asn_predict_length(ASN_OCTET_STR,
-                                      NULL, secNameLen)) == -1) {
+    if ((namelen = asn_predict_length(ASN_OCTET_STR, 0, secNameLen)) == -1) {
         return -1;
     }
 
     if ((authlen = asn_predict_length(ASN_OCTET_STR,
-                                      NULL, *msgAuthParmLen)) == -1) {
+                                      0, *msgAuthParmLen)) == -1) {
         return -1;
     }
 
     if ((privlen = asn_predict_length(ASN_OCTET_STR,
-                                      NULL, *msgPrivParmLen)) == -1) {
+                                      0, *msgPrivParmLen)) == -1) {
         return -1;
     }
 
     *seq_len =
         engIDlen + engBtlen + engTmlen + namelen + authlen + privlen;
 
-    if ((ret = asn_predict_length(ASN_SEQUENCE,
-                                      NULL, *seq_len)) == -1) {
+    if ((*otstlen = asn_predict_length(ASN_SEQUENCE, 0, *seq_len)) == -1) {
         return -1;
     }
-    *otstlen = (size_t)ret;
 
-    if ((ret = asn_predict_length(ASN_OCTET_STR,
-                                      NULL, *otstlen)) == -1) {
+    if ((*msgSecParmLen = asn_predict_length(ASN_OCTET_STR,
+                                             0, *otstlen)) == -1) {
         return -1;
     }
-    *msgSecParmLen = (size_t)ret;
 
     *authParamsOffset = globalDataLen + +(*msgSecParmLen - *seq_len)
         + engIDlen + engBtlen + engTmlen + namelen
@@ -611,10 +554,10 @@ usm_calc_offsets(size_t globalDataLen,  /* SNMPv3Message + HeaderData */
     if (secLevel == SNMP_SEC_LEVEL_AUTHPRIV) {
         scopedPduLen = ROUNDUP8(scopedPduLen);
 
-        if ((ret = asn_predict_length(ASN_OCTET_STR, NULL, scopedPduLen)) == -1) {
+        if ((*datalen =
+             asn_predict_length(ASN_OCTET_STR, 0, scopedPduLen)) == -1) {
             return -1;
         }
-        *datalen = (size_t)ret;
     } else {
         *datalen = scopedPduLen;
     }
@@ -1408,14 +1351,14 @@ usm_rgenerate_out_msg(int msgProcModel, /* (UNUSED) */
     u_int           thePrivProtocolLength = 0;
     int             theSecLevel = 0;    /* No defined const for bad
                                          * value (other then err). */
-    size_t          salt_length = 0, save_salt_length = 0;
+    size_t          salt_length = 0, save_salt_length = 0, save_salt_offset = 0;
     u_char          salt[BYTESIZE(USM_MAX_SALT_LENGTH)];
     u_char          authParams[USM_MAX_AUTHSIZE];
     u_char          iv[BYTESIZE(USM_MAX_SALT_LENGTH)];
     size_t          sp_offset = 0, mac_offset = 0;
     int             rc = 0;
 
-    DEBUGMSGTL(("usm", "USM processing has begun (offset %d)\n", (int)*offset));
+    DEBUGMSGTL(("usm", "USM processing has begun (offset %d)\n", *offset));
 
     if (secStateRef != NULL) {
         /*
@@ -1543,7 +1486,7 @@ usm_rgenerate_out_msg(int msgProcModel, /* (UNUSED) */
         if ((ciphertext = (u_char *) malloc(ciphertextlen)) == NULL) {
             DEBUGMSGTL(("usm",
                         "couldn't malloc %d bytes for encrypted PDU\n",
-                        (int)ciphertextlen));
+                        ciphertextlen));
             usm_free_usmStateReference(secStateRef);
             return SNMPERR_MALLOC;
         }
@@ -1555,6 +1498,7 @@ usm_rgenerate_out_msg(int msgProcModel, /* (UNUSED) */
         if (ISTRANSFORM(thePrivProtocol, AESPriv)) {
             salt_length = BYTESIZE(USM_AES_SALT_LENGTH);
             save_salt_length = BYTESIZE(USM_AES_SALT_LENGTH)/2;
+            save_salt_offset = 0;
             if (!thePrivKey ||
                 usm_set_aes_iv(salt, &salt_length,
                                htonl(boots_uint), htonl(time_uint),
@@ -1570,6 +1514,7 @@ usm_rgenerate_out_msg(int msgProcModel, /* (UNUSED) */
         if (ISTRANSFORM(thePrivProtocol, DESPriv)) {
             salt_length = BYTESIZE(USM_DES_SALT_LENGTH);
             save_salt_length = BYTESIZE(USM_DES_SALT_LENGTH);
+            save_salt_offset = 0;
             if (!thePrivKey || (usm_set_salt(salt, &salt_length,
                                              thePrivKey + 8,
                                              thePrivKeyLength - 8,
@@ -1618,7 +1563,6 @@ usm_rgenerate_out_msg(int msgProcModel, /* (UNUSED) */
             SNMP_FREE(ciphertext);
             return SNMPERR_USM_ENCRYPTIONERROR;
         }
-
 #ifdef NETSNMP_ENABLE_TESTING_CODE
         if (debug_is_token_registered("usm/dump") == SNMPERR_SUCCESS) {
             dump_chunk("usm/dump", "salt + Encrypted form: ", salt,
@@ -2020,7 +1964,7 @@ usm_parse_security_parameters(u_char * secParams,
     /*
      * FIX -- doesn't this also indicate a buffer overrun?
      */
-    if (origNameLen < *secNameLen + 1) {
+    if ((int) origNameLen < *secNameLen + 1) {
         /*
          * RETURN parse error, but it's really a parameter error 
          */
@@ -2166,7 +2110,7 @@ usm_check_and_update_timeliness(u_char * secEngineID,
     /*
      * This is a local reference.
      */
-    if (secEngineIDLen == myIDLength
+    if ((int) secEngineIDLen == myIDLength
         && memcmp(secEngineID, myID, myIDLength) == 0) {
         u_int           time_difference = myTime > time_uint ?
             myTime - time_uint : time_uint - myTime;
@@ -2174,7 +2118,11 @@ usm_check_and_update_timeliness(u_char * secEngineID,
         if (boots_uint == ENGINEBOOT_MAX
             || boots_uint != myBoots
             || time_difference > USM_TIME_WINDOW) {
-            snmp_increment_statistic(STAT_USMSTATSNOTINTIMEWINDOWS);
+            if (snmp_increment_statistic(STAT_USMSTATSNOTINTIMEWINDOWS) ==
+                0) {
+                DEBUGMSGTL(("usm", "%s\n",
+                            "Failed to increment statistic."));
+            }
 
             DEBUGMSGTL(("usm",
                         "boot_uint %u myBoots %u time_diff %u => not in time window\n",
@@ -2387,10 +2335,16 @@ usm_process_in_msg(int msgProcModel,    /* (UNUSED) */
             /*
              * This indicates a decryptionError.  
              */
-            snmp_increment_statistic(STAT_USMSTATSDECRYPTIONERRORS);
+            if (snmp_increment_statistic(STAT_USMSTATSDECRYPTIONERRORS) ==
+                0) {
+                DEBUGMSGTL(("usm", "%s\n",
+                            "Failed to increment statistic."));
+            }
             return SNMPERR_USM_DECRYPTIONERROR;
         }
-        snmp_increment_statistic(STAT_SNMPINASNPARSEERRS);
+        if (snmp_increment_statistic(STAT_SNMPINASNPARSEERRS) == 0) {
+            DEBUGMSGTL(("usm", "%s\n", "Failed to increment statistic."));
+        }
         return SNMPERR_USM_PARSEERROR;
     }
 
@@ -2401,7 +2355,10 @@ usm_process_in_msg(int msgProcModel,    /* (UNUSED) */
      * calling module.
      */
     if ((secLevel == SNMP_SEC_LEVEL_AUTHPRIV) && (salt_length != 8)) {
-        snmp_increment_statistic(STAT_USMSTATSDECRYPTIONERRORS);
+        if (snmp_increment_statistic(STAT_USMSTATSDECRYPTIONERRORS) == 
+            0) {
+            DEBUGMSGTL(("usm", "%s\n", "Failed increment statistic."));
+        }
         return SNMPERR_USM_DECRYPTIONERROR;
     }
 
@@ -2449,7 +2406,11 @@ usm_process_in_msg(int msgProcModel,    /* (UNUSED) */
         (!sess && (msg_flags & SNMP_MSG_FLAG_RPRT_BIT))) {
         if (ISENGINEKNOWN(secEngineID, *secEngineIDLen) == FALSE) {
             DEBUGMSGTL(("usm", "Unknown Engine ID.\n"));
-            snmp_increment_statistic(STAT_USMSTATSUNKNOWNENGINEIDS);
+            if (snmp_increment_statistic(STAT_USMSTATSUNKNOWNENGINEIDS) ==
+                0) {
+                DEBUGMSGTL(("usm", "%s\n",
+                            "Failed to increment statistic."));
+            }
             return SNMPERR_USM_UNKNOWNENGINEID;
         }
     } else {
@@ -2473,31 +2434,27 @@ usm_process_in_msg(int msgProcModel,    /* (UNUSED) */
                                          (!sess)) ? 0 : 1)))
         == NULL) {
         DEBUGMSGTL(("usm", "Unknown User(%s)\n", secName));
-        snmp_increment_statistic(STAT_USMSTATSUNKNOWNUSERNAMES);
+        if (snmp_increment_statistic(STAT_USMSTATSUNKNOWNUSERNAMES) == 0) {
+            DEBUGMSGTL(("usm", "%s\n", "Failed to increment statistic."));
+        }
         return SNMPERR_USM_UNKNOWNSECURITYNAME;
     }
 
-    /* ensure the user is active */
-    if (user->userStatus != RS_ACTIVE) {
-        DEBUGMSGTL(("usm", "Attempt to use an inactive user.\n"));
-        return SNMPERR_USM_UNKNOWNSECURITYNAME;
-    }
 
     /*
      * Make sure the security level is appropriate.
      */
-
-    rc = usm_check_secLevel(secLevel, user);
-    if (1 == rc) {
+    if (usm_check_secLevel(secLevel, user) == 1) {
         DEBUGMSGTL(("usm", "Unsupported Security Level (%d).\n",
                     secLevel));
-        snmp_increment_statistic(STAT_USMSTATSUNSUPPORTEDSECLEVELS);
+        if (snmp_increment_statistic
+            (STAT_USMSTATSUNSUPPORTEDSECLEVELS) == 0) {
+            DEBUGMSGTL(("usm", "%s\n", "Failed to increment statistic."));
+        }
         return SNMPERR_USM_UNSUPPORTEDSECURITYLEVEL;
-    } else if (rc != 0) {
-        DEBUGMSGTL(("usm", "Unknown issue.\n"));
-        return SNMPERR_USM_GENERICERROR;
     }
 
+
     /*
      * Check the authentication credentials of the message.
      */
@@ -2509,7 +2466,10 @@ usm_process_in_msg(int msgProcModel,    /* (UNUSED) */
                                 signature, signature_length)
             != SNMP_ERR_NOERROR) {
             DEBUGMSGTL(("usm", "Verification failed.\n"));
-            snmp_increment_statistic(STAT_USMSTATSWRONGDIGESTS);
+            if (snmp_increment_statistic(STAT_USMSTATSWRONGDIGESTS) == 0) {
+                DEBUGMSGTL(("usm", "%s\n",
+                            "Failed to increment statistic."));
+            }
 	    snmp_log(LOG_WARNING, "Authentication failed for %s\n",
 				user->name);
             return SNMPERR_USM_AUTHENTICATIONFAILURE;
@@ -2600,7 +2560,9 @@ usm_process_in_msg(int msgProcModel,    /* (UNUSED) */
                                             "encrypted sPDU")) == NULL) {
             DEBUGMSGTL(("usm", "%s\n",
                         "Failed while parsing encrypted sPDU."));
-            snmp_increment_statistic(STAT_SNMPINASNPARSEERRS);
+            if (snmp_increment_statistic(STAT_SNMPINASNPARSEERRS) == 0) {
+                DEBUGMSGTL(("usm", "%s\n", "Failed increment statistic."));
+            }
             usm_free_usmStateReference(*secStateRef);
             *secStateRef = NULL;
             return SNMPERR_USM_PARSEERROR;
@@ -2619,9 +2581,12 @@ usm_process_in_msg(int msgProcModel,    /* (UNUSED) */
 
             if (remaining % 8 != 0) {
                 DEBUGMSGTL(("usm",
-                            "Ciphertext is %lu bytes, not an integer multiple of 8 (rem %lu)\n",
-                            (unsigned long)remaining, (unsigned long)remaining % 8));
-                snmp_increment_statistic(STAT_USMSTATSDECRYPTIONERRORS);
+                            "Ciphertext is %lu bytes, not an integer multiple of 8 (rem %d)\n",
+                            remaining, remaining % 8));
+                if (snmp_increment_statistic(STAT_USMSTATSDECRYPTIONERRORS) ==
+                    0) {
+                    DEBUGMSGTL(("usm", "%s\n", "Failed increment statistic."));
+                }
                 usm_free_usmStateReference(*secStateRef);
                 *secStateRef = NULL;
                 return SNMPERR_USM_DECRYPTIONERROR;
@@ -2631,7 +2596,10 @@ usm_process_in_msg(int msgProcModel,    /* (UNUSED) */
 
             if ( !user->privKey ) {
                 DEBUGMSGTL(("usm", "No privacy pass phrase for %s\n", user->secName));
-                snmp_increment_statistic(STAT_USMSTATSDECRYPTIONERRORS);
+                if (snmp_increment_statistic(STAT_USMSTATSDECRYPTIONERRORS) ==
+                    0) {
+                    DEBUGMSGTL(("usm", "%s\n", "Failed increment statistic."));
+                }
                 usm_free_usmStateReference(*secStateRef);
                 *secStateRef = NULL;
                 return SNMPERR_USM_DECRYPTIONERROR;
@@ -2663,7 +2631,10 @@ usm_process_in_msg(int msgProcModel,    /* (UNUSED) */
                        value_ptr, remaining, *scopedPdu, scopedPduLen)
             != SNMP_ERR_NOERROR) {
             DEBUGMSGTL(("usm", "%s\n", "Failed decryption."));
-            snmp_increment_statistic(STAT_USMSTATSDECRYPTIONERRORS);
+            if (snmp_increment_statistic
+                (STAT_USMSTATSDECRYPTIONERRORS) == 0) {
+                DEBUGMSGTL(("usm", "%s\n", "Failed increment statistic."));
+            }
             return SNMPERR_USM_DECRYPTIONERROR;
         }
 #ifdef NETSNMP_ENABLE_TESTING_CODE
@@ -2693,7 +2664,8 @@ usm_process_in_msg(int msgProcModel,    /* (UNUSED) */
      *
      * FIX  Correct? 
      */
-    *maxSizeResponse = maxMsgSize - (end_of_overhead - wholeMsg);
+    *maxSizeResponse = maxMsgSize - (int)
+        ((u_long) end_of_overhead - (u_long) wholeMsg);
 
 
     DEBUGMSGTL(("usm", "USM processing completed.\n"));
@@ -2727,7 +2699,6 @@ usm_handle_report(void *sessp,
         }
         session->s_snmp_errno = res;
     }  
-    /* fallthrough */
     case SNMPERR_USM_UNKNOWNENGINEID:
     case SNMPERR_USM_UNKNOWNSECURITYNAME:
     case SNMPERR_USM_UNSUPPORTEDSECURITYLEVEL:
@@ -2754,450 +2725,13 @@ usm_handle_report(void *sessp,
         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;
-}
-
-
-/*
- * usm_create_user_from_session(netsnmp_session *session):
- * 
- * creates a user in the usm table from the information in a session.
- * If the user already exists, it is updated with the current
- * information from the session
- * 
- * Parameters:
- * session -- IN: pointer to the session to use when creating the user.
- * 
- * Returns:
- * SNMPERR_SUCCESS
- * SNMPERR_GENERR 
- */
-int
-usm_create_user_from_session(netsnmp_session * session)
-{
-    struct usmUser *user;
-    int             user_just_created = 0;
-    char *cp;
-
-    /*
-     * - don't create-another/copy-into user for this session by default
-     * - bail now (no error) if we don't have an engineID
-     */
-    if (SNMP_FLAGS_USER_CREATED == (session->flags & SNMP_FLAGS_USER_CREATED) ||
-        session->securityModel != SNMP_SEC_MODEL_USM ||
-        session->version != SNMP_VERSION_3 ||
-        session->securityNameLen == 0 ||
-        session->securityEngineIDLen == 0)
-        return SNMPERR_SUCCESS;
-
-    DEBUGMSGTL(("usm", "no flag defined...  continuing\n"));
-    session->flags |= SNMP_FLAGS_USER_CREATED;
-
-    /*
-     * now that we have the engineID, create an entry in the USM list
-     * for this user using the information in the session 
-     */
-    user = usm_get_user_from_list(session->securityEngineID,
-                                  session->securityEngineIDLen,
-                                  session->securityName,
-                                  usm_get_userList(), 0);
-    DEBUGMSGTL(("usm", "user exists? x=%p\n", user));
-    if (user == NULL) {
-        DEBUGMSGTL(("usm", "Building user %s...\n",
-                    session->securityName));
-        /*
-         * user doesn't exist so we create and add it 
-         */
-        user = (struct usmUser *) calloc(1, sizeof(struct usmUser));
-        if (user == NULL)
-            return SNMPERR_GENERR;
-
-        /*
-         * copy in the securityName 
-         */
-        if (session->securityName) {
-            user->name = strdup(session->securityName);
-            user->secName = strdup(session->securityName);
-            if (user->name == NULL || user->secName == NULL) {
-                usm_free_user(user);
-                return SNMPERR_GENERR;
-            }
-        }
-
-        /*
-         * copy in the engineID 
-         */
-        if (memdup(&user->engineID, session->securityEngineID,
-                   session->securityEngineIDLen) != SNMPERR_SUCCESS) {
-            usm_free_user(user);
-            return SNMPERR_GENERR;
-        }
-        user->engineIDLen = session->securityEngineIDLen;
-
-        user_just_created = 1;
-    }
-
-    /*
-     * copy the auth protocol 
-     */
-    if (user->authProtocol == NULL && session->securityAuthProto != NULL) {
-        SNMP_FREE(user->authProtocol);
-        user->authProtocol =
-            snmp_duplicate_objid(session->securityAuthProto,
-                                 session->securityAuthProtoLen);
-        if (user->authProtocol == NULL) {
-            usm_free_user(user);
-            return SNMPERR_GENERR;
-        }
-        user->authProtocolLen = session->securityAuthProtoLen;
-    }
-
-    /*
-     * copy the priv protocol 
-     */
-    if (user->privProtocol == NULL && session->securityPrivProto != NULL) {
-        SNMP_FREE(user->privProtocol);
-        user->privProtocol =
-            snmp_duplicate_objid(session->securityPrivProto,
-                                 session->securityPrivProtoLen);
-        if (user->privProtocol == NULL) {
-            usm_free_user(user);
-            return SNMPERR_GENERR;
-        }
-        user->privProtocolLen = session->securityPrivProtoLen;
-    }
-
-    /*
-     * copy in the authentication Key.  If not localized, localize it 
-     */
-    if (user->authKey == NULL) {
-        if (session->securityAuthLocalKey != NULL
-            && session->securityAuthLocalKeyLen != 0) {
-            /* already localized key passed in.  use it */
-            SNMP_FREE(user->authKey);
-            if (memdup(&user->authKey, session->securityAuthLocalKey,
-                       session->securityAuthLocalKeyLen) != SNMPERR_SUCCESS) {
-                usm_free_user(user);
-                return SNMPERR_GENERR;
-            }
-            user->authKeyLen = session->securityAuthLocalKeyLen;
-        } else if (session->securityAuthKey != NULL
-                   && session->securityAuthKeyLen != 0) {
-            SNMP_FREE(user->authKey);
-            user->authKey = (u_char *) calloc(1, USM_LENGTH_KU_HASHBLOCK);
-            if (user->authKey == NULL) {
-                usm_free_user(user);
-                return SNMPERR_GENERR;
-            }
-            user->authKeyLen = USM_LENGTH_KU_HASHBLOCK;
-            if (generate_kul(user->authProtocol, user->authProtocolLen,
-                             session->securityEngineID,
-                             session->securityEngineIDLen,
-                             session->securityAuthKey,
-                             session->securityAuthKeyLen, user->authKey,
-                             &user->authKeyLen) != SNMPERR_SUCCESS) {
-                usm_free_user(user);
-                return SNMPERR_GENERR;
-            }
-        } else if ((cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
-                                               NETSNMP_DS_LIB_AUTHLOCALIZEDKEY))) {
-            size_t buflen = USM_AUTH_KU_LEN;
-            SNMP_FREE(user->authKey);
-            user->authKey = (u_char *)malloc(buflen); /* max length needed */
-            user->authKeyLen = 0;
-            /* it will be a hex string */
-            if (!snmp_hex_to_binary(&user->authKey, &buflen, &user->authKeyLen,
-                                    0, cp)) {
-                usm_free_user(user);
-                return SNMPERR_GENERR;
-            }
-        }
-    }
-
-    /*
-     * copy in the privacy Key.  If not localized, localize it 
-     */
-    if (user->privKey == NULL) {
-        if (session->securityPrivLocalKey != NULL
-            && session->securityPrivLocalKeyLen != 0) {
-            /* already localized key passed in.  use it */
-            SNMP_FREE(user->privKey);
-            if (memdup(&user->privKey, session->securityPrivLocalKey,
-                       session->securityPrivLocalKeyLen) != SNMPERR_SUCCESS) {
-                usm_free_user(user);
-                return SNMPERR_GENERR;
-            }
-            user->privKeyLen = session->securityPrivLocalKeyLen;
-        } else if (session->securityPrivKey != NULL
-                   && session->securityPrivKeyLen != 0) {
-            SNMP_FREE(user->privKey);
-            user->privKey = (u_char *) calloc(1, USM_LENGTH_KU_HASHBLOCK);
-            if (user->privKey == NULL) {
-                usm_free_user(user);
-                return SNMPERR_GENERR;
-            }
-            user->privKeyLen = USM_LENGTH_KU_HASHBLOCK;
-            if (generate_kul(user->authProtocol, user->authProtocolLen,
-                             session->securityEngineID,
-                             session->securityEngineIDLen,
-                             session->securityPrivKey,
-                             session->securityPrivKeyLen, user->privKey,
-                             &user->privKeyLen) != SNMPERR_SUCCESS) {
-                usm_free_user(user);
-                return SNMPERR_GENERR;
-            }
-        } else if ((cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
-                                               NETSNMP_DS_LIB_PRIVLOCALIZEDKEY))) {
-            size_t buflen = USM_PRIV_KU_LEN;
-            SNMP_FREE(user->privKey);
-            user->privKey = (u_char *)malloc(buflen); /* max length needed */
-            user->privKeyLen = 0;
-            /* it will be a hex string */
-            if (!snmp_hex_to_binary(&user->privKey, &buflen, &user->privKeyLen,
-                                    0, cp)) {
-                usm_free_user(user);
-                return SNMPERR_GENERR;
-            }
-        }
-    }
-
-    if (user_just_created) {
-        /*
-         * add the user into the database 
-         */
-        user->userStatus = RS_ACTIVE;
-        user->userStorageType = ST_READONLY;
-        usm_add_user(user);
-    }
-
-    return SNMPERR_SUCCESS;
-
-
-}
-
-/* A wrapper around the hook */
-int
-usm_create_user_from_session_hook(void *slp, netsnmp_session *session)
-{
-    DEBUGMSGTL(("usm", "potentially bootstrapping the USM table from session data\n"));
-    return usm_create_user_from_session(session);
-}
-
-static int
-usm_build_probe_pdu(netsnmp_pdu **pdu)
-{
-    struct usmUser *user;
-
-    /*
-     * create the pdu 
-     */
-    if (!pdu)
-        return -1;
-    *pdu = snmp_pdu_create(SNMP_MSG_GET);
-    if (!(*pdu))
-        return -1;
-    (*pdu)->version = SNMP_VERSION_3;
-    (*pdu)->securityName = strdup("");
-    (*pdu)->securityNameLen = strlen((*pdu)->securityName);
-    (*pdu)->securityLevel = SNMP_SEC_LEVEL_NOAUTH;
-    (*pdu)->securityModel = SNMP_SEC_MODEL_USM;
-
-    /*
-     * create the empty user 
-     */
-    user = usm_get_user(NULL, 0, (*pdu)->securityName);
-    if (user == NULL) {
-        user = (struct usmUser *) calloc(1, sizeof(struct usmUser));
-        if (user == NULL) {
-            snmp_free_pdu(*pdu);
-            *pdu = (netsnmp_pdu *) NULL;
-            return -1;
-        }
-        user->name = strdup((*pdu)->securityName);
-        user->secName = strdup((*pdu)->securityName);
-        user->authProtocolLen = sizeof(usmNoAuthProtocol) / sizeof(oid);
-        user->authProtocol =
-            snmp_duplicate_objid(usmNoAuthProtocol, user->authProtocolLen);
-        user->privProtocolLen = sizeof(usmNoPrivProtocol) / sizeof(oid);
-        user->privProtocol =
-            snmp_duplicate_objid(usmNoPrivProtocol, user->privProtocolLen);
-        usm_add_user(user);
-    }
-    return 0;
-}
-
-int usm_discover_engineid(void *slpv, netsnmp_session *session) {
-    netsnmp_pdu    *pdu = NULL, *response = NULL;
-    int status, i;
-    struct session_list *slp = (struct session_list *) slpv;
-
-    if (usm_build_probe_pdu(&pdu) != 0) {
-        DEBUGMSGTL(("snmp_api", "unable to create probe PDU\n"));
-        return SNMP_ERR_GENERR;
-    }
-    DEBUGMSGTL(("snmp_api", "probing for engineID...\n"));
-    session->flags |= SNMP_FLAGS_DONT_PROBE; /* prevent recursion */
-    status = snmp_sess_synch_response(slp, pdu, &response);
-
-    if ((response == NULL) && (status == STAT_SUCCESS)) {
-        status = STAT_ERROR;
-    }
-
-    switch (status) {
-    case STAT_SUCCESS:
-        session->s_snmp_errno = SNMPERR_INVALID_MSG; /* XX?? */
-        DEBUGMSGTL(("snmp_sess_open",
-                    "error: expected Report as response to probe: %s (%ld)\n",
-                    snmp_errstring(response->errstat),
-                    response->errstat));
-        break;
-    case STAT_ERROR:   /* this is what we expected -> Report == STAT_ERROR */
-        session->s_snmp_errno = SNMPERR_UNKNOWN_ENG_ID;
-        break;
-    case STAT_TIMEOUT:
-        session->s_snmp_errno = SNMPERR_TIMEOUT;
-        break;
-    default:
-        DEBUGMSGTL(("snmp_sess_open",
-                    "unable to connect with remote engine: %s (%d)\n",
-                    snmp_api_errstring(session->s_snmp_errno),
-                    session->s_snmp_errno));
-        break;
-    }
-
-    if (slp->session->securityEngineIDLen == 0) {
-        DEBUGMSGTL(("snmp_api",
-                    "unable to determine remote engine ID\n"));
-        /* clear the flag so that probe occurs on next inform */
-        session->flags &= ~SNMP_FLAGS_DONT_PROBE;
-        return SNMP_ERR_GENERR;
-    }
-
-    session->s_snmp_errno = SNMPERR_SUCCESS;
-    if (snmp_get_do_debugging()) {
-        DEBUGMSGTL(("snmp_sess_open",
-                    "  probe found engineID:  "));
-        for (i = 0; i < slp->session->securityEngineIDLen; i++)
-            DEBUGMSG(("snmp_sess_open", "%02x",
-                      slp->session->securityEngineID[i]));
-        DEBUGMSG(("snmp_sess_open", "\n"));
-    }
-
-    /*
-     * if boot/time supplied set it for this engineID 
-     */
-    if (session->engineBoots || session->engineTime) {
-        set_enginetime(session->securityEngineID,
-                       session->securityEngineIDLen,
-                       session->engineBoots, session->engineTime,
-                       TRUE);
-    }
-    return SNMPERR_SUCCESS;
-}
-
 void
 init_usm(void)
 {
     struct snmp_secmod_def *def;
-    char *type;
 
-    DEBUGMSGTL(("init_usm", "unit_usm: %" NETSNMP_PRIo "u %" NETSNMP_PRIo "u\n",
-                usmNoPrivProtocol[0], usmNoPrivProtocol[1]));
+    DEBUGMSGTL(("init_usm", "unit_usm: %d %d\n", usmNoPrivProtocol[0],
+                usmNoPrivProtocol[1]));
 
     sc_init();                  /* initalize scapi code */
 
@@ -3205,8 +2739,6 @@ init_usm(void)
      * register ourselves as a security service 
      */
     def = SNMP_MALLOC_STRUCT(snmp_secmod_def);
-    if (def == NULL)
-        return;
     /*
      * XXX: def->init_sess_secmod move stuff from snmp_api.c 
      */
@@ -3214,10 +2746,7 @@ init_usm(void)
     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;
-    def->probe_engineid = usm_discover_engineid;
-    def->post_probe_engineid = usm_create_user_from_session_hook;
     register_sec_mod(USM_SEC_MODEL_NUMBER, "usm", def);
 
     snmp_register_callback(SNMP_CALLBACK_LIBRARY,
@@ -3232,39 +2761,6 @@ init_usm(void)
                            SNMP_CALLBACK_SHUTDOWN,
                            free_engineID, NULL);
 
-    register_config_handler("snmp", "defAuthType", snmpv3_authtype_conf,
-                            NULL, "MD5|SHA");
-    register_config_handler("snmp", "defPrivType", snmpv3_privtype_conf,
-                            NULL,
-#ifdef HAVE_AES
-                            "DES|AES"
-#else
-                            "DES (AES support not available)"
-#endif
-                           );
-
-    /*
-     * Free stuff at shutdown time
-     */
-    snmp_register_callback(SNMP_CALLBACK_LIBRARY,
-                           SNMP_CALLBACK_SHUTDOWN,
-                           free_enginetime_on_shutdown, NULL);
-
-
-    type = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_APPTYPE);
-
-    register_config_handler(type, "userSetAuthPass", usm_set_password,
-                            NULL, NULL);
-    register_config_handler(type, "userSetPrivPass", usm_set_password,
-                            NULL, NULL);
-    register_config_handler(type, "userSetAuthKey", usm_set_password, NULL,
-                            NULL);
-    register_config_handler(type, "userSetPrivKey", usm_set_password, NULL,
-                            NULL);
-    register_config_handler(type, "userSetAuthLocalKey", usm_set_password,
-                            NULL, NULL);
-    register_config_handler(type, "userSetPrivLocalKey", usm_set_password,
-                            NULL, NULL);
 }
 
 void
@@ -3373,13 +2869,6 @@ clear_user_list(void)
 
 }
 
-void
-shutdown_usm(void)
-{
-    free_etimelist();
-    clear_user_list();
-}
-
 /*******************************************************************-o-******
  * usm_check_secLevel
  *
@@ -3400,8 +2889,8 @@ usm_check_secLevel(int level, struct usmUser *user)
     if (user->userStatus != RS_ACTIVE)
         return -1;
 
-    DEBUGMSGTL(("comparex", "Comparing: %" NETSNMP_PRIo "u %" NETSNMP_PRIo "u ",
-                usmNoPrivProtocol[0], usmNoPrivProtocol[1]));
+    DEBUGMSGTL(("comparex", "Comparing: %d %d ", usmNoPrivProtocol[0],
+                usmNoPrivProtocol[1]));
     DEBUGMSGOID(("comparex", usmNoPrivProtocol,
                  sizeof(usmNoPrivProtocol) / sizeof(oid)));
     DEBUGMSG(("comparex", "\n"));
@@ -3531,11 +3020,7 @@ usm_get_user_from_list(u_char * engineID, size_t engineIDLen,
               memcmp(ptr->engineID, engineID, engineIDLen) == 0)))
             return ptr;
           DEBUGMSGTL(("usm", "no match on engineID ("));
-          if (engineID) {
-              DEBUGMSGHEX(("usm", engineID, engineIDLen));
-          } else {
-              DEBUGMSGTL(("usm", "Empty EngineID"));
-          }
+          DEBUGMSGHEX(("usm", engineID, engineIDLen));
           DEBUGMSG(("usm", ")\n"));
         }
     }
@@ -3785,7 +3270,6 @@ usm_free_user(struct usmUser *user)
 
 
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 /*
  * take a given user and clone the security info into another 
  */
@@ -3849,7 +3333,6 @@ usm_cloneFrom_user(struct usmUser *from, struct usmUser *to)
     }
     return to;
 }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 /*
  * usm_create_user(void):
@@ -4017,11 +3500,11 @@ usm_save_user(struct usmUser *user, const char *token, const char *type)
     *cptr++ = ' ';
     cptr = read_config_save_octet_string(cptr, (u_char *) user->name,
                                          (user->name == NULL) ? 0 :
-                                         strlen(user->name));
+                                         strlen(user->name) + 1);
     *cptr++ = ' ';
     cptr = read_config_save_octet_string(cptr, (u_char *) user->secName,
                                          (user->secName == NULL) ? 0 :
-                                         strlen(user->secName));
+                                         strlen(user->secName) + 1);
     *cptr++ = ' ';
     cptr =
         read_config_save_objid(cptr, user->cloneFrom, user->cloneFromLen);
@@ -4041,8 +3524,11 @@ usm_save_user(struct usmUser *user, const char *token, const char *type)
                                       user->privKeyLen);
     *cptr++ = ' ';
     cptr = read_config_save_octet_string(cptr, user->userPublicString,
-                                         user->userPublicStringLen);
-
+                                         (user->userPublicString ==
+                                          NULL) ? 0 : strlen((char *)
+                                                             user->
+                                                             userPublicString)
+                                         + 1);
     read_config_store(type, line);
 }
 
@@ -4051,7 +3537,7 @@ usm_save_user(struct usmUser *user, const char *token, const char *type)
  * and returns a pointer to a newly created struct usmUser. 
  */
 struct usmUser *
-usm_read_user(const char *line)
+usm_read_user(char *line)
 {
     struct usmUser *user;
     size_t          len;
@@ -4062,11 +3548,11 @@ usm_read_user(const char *line)
         return NULL;
 
     user->userStatus = atoi(line);
-    line = skip_token_const(line);
+    line = skip_token(line);
     user->userStorageType = atoi(line);
-    line = skip_token_const(line);
-    line = read_config_read_octet_string_const(line, &user->engineID,
-                                               &user->engineIDLen);
+    line = skip_token(line);
+    line = read_config_read_octet_string(line, &user->engineID,
+                                         &user->engineIDLen);
 
     /*
      * set the lcd entry for this engineID to the minimum boots/time
@@ -4083,21 +3569,22 @@ usm_read_user(const char *line)
     SNMP_FREE(user->cloneFrom);
     user->cloneFromLen = 0;
 
-    line = read_config_read_objid_const(line, &user->cloneFrom,
-                                        &user->cloneFromLen);
+    line =
+        read_config_read_objid(line, &user->cloneFrom,
+                               &user->cloneFromLen);
 
     SNMP_FREE(user->authProtocol);
     user->authProtocolLen = 0;
 
-    line = read_config_read_objid_const(line, &user->authProtocol,
-                                        &user->authProtocolLen);
-    line = read_config_read_octet_string_const(line, &user->authKey,
-                                               &user->authKeyLen);
+    line = read_config_read_objid(line, &user->authProtocol,
+                                  &user->authProtocolLen);
+    line = read_config_read_octet_string(line, &user->authKey,
+                                         &user->authKeyLen);
     SNMP_FREE(user->privProtocol);
     user->privProtocolLen = 0;
 
-    line = read_config_read_objid_const(line, &user->privProtocol,
-                                        &user->privProtocolLen);
+    line = read_config_read_objid(line, &user->privProtocol,
+                                  &user->privProtocolLen);
     line = read_config_read_octet_string(line, &user->privKey,
                                          &user->privKeyLen);
 #ifndef NETSNMP_DISABLE_DES
@@ -4117,7 +3604,7 @@ usm_read_user(const char *line)
     }
 
     line = read_config_read_octet_string(line, &user->userPublicString,
-                                         &user->userPublicStringLen);
+                                         &len);
     return user;
 }
 
@@ -4162,8 +3649,8 @@ usm_set_password(const char *token, char *line)
 {
     char           *cp;
     char            nameBuf[SNMP_MAXBUF];
-    u_char         *engineID = NULL;
-    size_t          engineIDLen = 0;
+    u_char         *engineID;
+    size_t          engineIDLen;
     struct usmUser *user;
 
     cp = copy_nword(line, nameBuf, sizeof(nameBuf));
@@ -4187,18 +3674,15 @@ usm_set_password(const char *token, char *line)
         cp = read_config_read_octet_string(cp, &engineID, &engineIDLen);
         if (cp == NULL) {
             config_perror("invalid engineID specifier");
-            SNMP_FREE(engineID);
             return;
         }
 
         user = usm_get_user(engineID, engineIDLen, nameBuf);
         if (user == NULL) {
             config_perror("not a valid user/engineID pair");
-            SNMP_FREE(engineID);
             return;
         }
         usm_set_user_password(user, token, cp);
-        SNMP_FREE(engineID);
     }
 }
 
@@ -4315,354 +3799,3 @@ usm_set_user_password(struct usmUser *user, const char *token, char *line)
         }
     }
 }                               /* end usm_set_password() */
-
-void
-usm_parse_create_usmUser(const char *token, char *line)
-{
-    char           *cp;
-    char            buf[SNMP_MAXBUF_MEDIUM];
-    struct usmUser *newuser;
-    u_char          userKey[SNMP_MAXBUF_SMALL], *tmpp;
-    size_t          userKeyLen = SNMP_MAXBUF_SMALL;
-    size_t          privKeyLen = 0;
-    size_t          ret;
-    int             ret2;
-    int             testcase;
-
-    newuser = usm_create_user();
-
-    /*
-     * READ: Security Name 
-     */
-    cp = copy_nword(line, buf, sizeof(buf));
-
-    /*
-     * might be a -e ENGINEID argument 
-     */
-    if (strcmp(buf, "-e") == 0) {
-        size_t          ebuf_len = 32, eout_len = 0;
-        u_char         *ebuf = (u_char *) malloc(ebuf_len);
-
-        if (ebuf == NULL) {
-            config_perror("malloc failure processing -e flag");
-            usm_free_user(newuser);
-            return;
-        }
-
-        /*
-         * Get the specified engineid from the line.  
-         */
-        cp = copy_nword(cp, buf, sizeof(buf));
-        if (!snmp_hex_to_binary(&ebuf, &ebuf_len, &eout_len, 1, buf)) {
-            config_perror("invalid EngineID argument to -e");
-            usm_free_user(newuser);
-            SNMP_FREE(ebuf);
-            return;
-        }
-
-        newuser->engineID = ebuf;
-        newuser->engineIDLen = eout_len;
-        cp = copy_nword(cp, buf, sizeof(buf));
-    } else {
-        newuser->engineID = snmpv3_generate_engineID(&ret);
-        if (ret == 0) {
-            usm_free_user(newuser);
-            return;
-        }
-        newuser->engineIDLen = ret;
-    }
-
-    newuser->secName = strdup(buf);
-    newuser->name = strdup(buf);
-
-    if (!cp)
-        goto add;               /* no authentication or privacy type */
-
-    /*
-     * READ: Authentication Type 
-     */
-#ifndef NETSNMP_DISABLE_MD5
-    if (strncmp(cp, "MD5", 3) == 0) {
-        memcpy(newuser->authProtocol, usmHMACMD5AuthProtocol,
-               sizeof(usmHMACMD5AuthProtocol));
-    } else
-#endif
-        if (strncmp(cp, "SHA", 3) == 0) {
-        memcpy(newuser->authProtocol, usmHMACSHA1AuthProtocol,
-               sizeof(usmHMACSHA1AuthProtocol));
-    } else {
-        config_perror("Unknown authentication protocol");
-        usm_free_user(newuser);
-        return;
-    }
-
-    cp = skip_token(cp);
-
-    /*
-     * READ: Authentication Pass Phrase or key
-     */
-    if (!cp) {
-        config_perror("no authentication pass phrase");
-        usm_free_user(newuser);
-        return;
-    }
-    cp = copy_nword(cp, buf, sizeof(buf));
-    if (strcmp(buf,"-m") == 0) {
-        /* a master key is specified */
-        cp = copy_nword(cp, buf, sizeof(buf));
-        ret = sizeof(userKey);
-        tmpp = userKey;
-        userKeyLen = 0;
-        if (!snmp_hex_to_binary(&tmpp, &ret, &userKeyLen, 0, buf)) {
-            config_perror("invalid key value argument to -m");
-            usm_free_user(newuser);
-            return;
-        }
-    } else if (strcmp(buf,"-l") != 0) {
-        /* a password is specified */
-        userKeyLen = sizeof(userKey);
-        ret2 = generate_Ku(newuser->authProtocol, newuser->authProtocolLen,
-                          (u_char *) buf, strlen(buf), userKey, &userKeyLen);
-        if (ret2 != SNMPERR_SUCCESS) {
-            config_perror("could not generate the authentication key from the "
-                          "supplied pass phrase.");
-            usm_free_user(newuser);
-            return;
-        }
-    }        
-        
-    /*
-     * And turn it into a localized key 
-     */
-    ret2 = sc_get_properlength(newuser->authProtocol,
-                               newuser->authProtocolLen);
-    if (ret2 <= 0) {
-        config_perror("Could not get proper authentication protocol key length");
-	usm_free_user(newuser);
-        return;
-    }
-    newuser->authKey = (u_char *) malloc(ret2);
-
-    if (strcmp(buf,"-l") == 0) {
-        /* a local key is directly specified */
-        cp = copy_nword(cp, buf, sizeof(buf));
-        newuser->authKeyLen = 0;
-        ret = ret2;
-        if (!snmp_hex_to_binary(&newuser->authKey, &ret,
-                                &newuser->authKeyLen, 0, buf)) {
-            config_perror("invalid key value argument to -l");
-            usm_free_user(newuser);
-            return;
-        }
-        if (ret != newuser->authKeyLen) {
-            config_perror("improper key length to -l");
-            usm_free_user(newuser);
-            return;
-        }
-    } else {
-        newuser->authKeyLen = ret2;
-        ret2 = generate_kul(newuser->authProtocol, newuser->authProtocolLen,
-                           newuser->engineID, newuser->engineIDLen,
-                           userKey, userKeyLen,
-                           newuser->authKey, &newuser->authKeyLen);
-        if (ret2 != SNMPERR_SUCCESS) {
-            config_perror("could not generate localized authentication key "
-                          "(Kul) from the master key (Ku).");
-            usm_free_user(newuser);
-            return;
-        }
-    }
-
-    if (!cp)
-        goto add;               /* no privacy type (which is legal) */
-
-    /*
-     * READ: Privacy Type 
-     */
-    testcase = 0;
-#ifndef NETSNMP_DISABLE_DES
-    if (strncmp(cp, "DES", 3) == 0) {
-        memcpy(newuser->privProtocol, usmDESPrivProtocol,
-               sizeof(usmDESPrivProtocol));
-        testcase = 1;
-	/* DES uses a 128 bit key, 64 bits of which is a salt */
-	privKeyLen = 16;
-    }
-#endif
-#ifdef HAVE_AES
-    if (strncmp(cp, "AES128", 6) == 0 ||
-               strncmp(cp, "AES", 3) == 0) {
-        memcpy(newuser->privProtocol, usmAESPrivProtocol,
-               sizeof(usmAESPrivProtocol));
-        testcase = 1;
-	privKeyLen = 16;
-    }
-#endif
-    if (testcase == 0) {
-        config_perror("Unknown privacy protocol");
-        usm_free_user(newuser);
-        return;
-    }
-
-    cp = skip_token(cp);
-    /*
-     * READ: Encryption Pass Phrase or key
-     */
-    if (!cp) {
-        /*
-         * assume the same as the authentication key 
-         */
-        memdup(&newuser->privKey, newuser->authKey, newuser->authKeyLen);
-        newuser->privKeyLen = newuser->authKeyLen;
-    } else {
-        cp = copy_nword(cp, buf, sizeof(buf));
-        
-        if (strcmp(buf,"-m") == 0) {
-            /* a master key is specified */
-            cp = copy_nword(cp, buf, sizeof(buf));
-            ret = sizeof(userKey);
-            tmpp = userKey;
-            userKeyLen = 0;
-            if (!snmp_hex_to_binary(&tmpp, &ret, &userKeyLen, 0, buf)) {
-                config_perror("invalid key value argument to -m");
-                usm_free_user(newuser);
-                return;
-            }
-        } else if (strcmp(buf,"-l") != 0) {
-            /* a password is specified */
-            userKeyLen = sizeof(userKey);
-            ret2 = generate_Ku(newuser->authProtocol, newuser->authProtocolLen,
-                              (u_char *) buf, strlen(buf), userKey, &userKeyLen);
-            if (ret2 != SNMPERR_SUCCESS) {
-                config_perror("could not generate the privacy key from the "
-                              "supplied pass phrase.");
-                usm_free_user(newuser);
-                return;
-            }
-        }        
-        
-        /*
-         * And turn it into a localized key 
-         */
-        ret2 = sc_get_properlength(newuser->authProtocol,
-                                   newuser->authProtocolLen);
-        if (ret2 < 0) {
-            config_perror("could not get proper key length to use for the "
-                          "privacy algorithm.");
-            usm_free_user(newuser);
-            return;
-        }
-        newuser->privKey = (u_char *) malloc(ret2);
-
-        if (strcmp(buf,"-l") == 0) {
-            /* a local key is directly specified */
-            cp = copy_nword(cp, buf, sizeof(buf));
-            ret = ret2;
-            newuser->privKeyLen = 0;
-            if (!snmp_hex_to_binary(&newuser->privKey, &ret,
-                                    &newuser->privKeyLen, 0, buf)) {
-                config_perror("invalid key value argument to -l");
-                usm_free_user(newuser);
-                return;
-            }
-        } else {
-            newuser->privKeyLen = ret2;
-            ret2 = generate_kul(newuser->authProtocol, newuser->authProtocolLen,
-                               newuser->engineID, newuser->engineIDLen,
-                               userKey, userKeyLen,
-                               newuser->privKey, &newuser->privKeyLen);
-            if (ret2 != SNMPERR_SUCCESS) {
-                config_perror("could not generate localized privacy key "
-                              "(Kul) from the master key (Ku).");
-                usm_free_user(newuser);
-                return;
-            }
-        }
-    }
-
-    if ((newuser->privKeyLen >= privKeyLen) || (privKeyLen == 0)){
-      newuser->privKeyLen = privKeyLen;
-    }
-    else {
-      /* The privKey length is smaller than required by privProtocol */
-      usm_free_user(newuser);
-      return;
-    }
-
-  add:
-    usm_add_user(newuser);
-    DEBUGMSGTL(("usmUser", "created a new user %s at ", newuser->secName));
-    DEBUGMSGHEX(("usmUser", newuser->engineID, newuser->engineIDLen));
-    DEBUGMSG(("usmUser", "\n"));
-}
-
-void
-snmpv3_authtype_conf(const char *word, char *cptr)
-{
-#ifndef NETSNMP_DISABLE_MD5
-    if (strcasecmp(cptr, "MD5") == 0)
-        defaultAuthType = usmHMACMD5AuthProtocol;
-    else
-#endif
-        if (strcasecmp(cptr, "SHA") == 0)
-        defaultAuthType = usmHMACSHA1AuthProtocol;
-    else
-        config_perror("Unknown authentication type");
-    defaultAuthTypeLen = USM_LENGTH_OID_TRANSFORM;
-    DEBUGMSGTL(("snmpv3", "set default authentication type: %s\n", cptr));
-}
-
-const oid      *
-get_default_authtype(size_t * len)
-{
-    if (defaultAuthType == NULL) {
-        defaultAuthType = SNMP_DEFAULT_AUTH_PROTO;
-        defaultAuthTypeLen = SNMP_DEFAULT_AUTH_PROTOLEN;
-    }
-    if (len)
-        *len = defaultAuthTypeLen;
-    return defaultAuthType;
-}
-
-void
-snmpv3_privtype_conf(const char *word, char *cptr)
-{
-    int testcase = 0;
-
-#ifndef NETSNMP_DISABLE_DES
-    if (strcasecmp(cptr, "DES") == 0) {
-        testcase = 1;
-        defaultPrivType = usmDESPrivProtocol;
-    }
-#endif
-
-#if HAVE_AES
-    /* XXX AES: assumes oid length == des oid length */
-    if (strcasecmp(cptr, "AES128") == 0 ||
-        strcasecmp(cptr, "AES") == 0) {
-        testcase = 1;
-        defaultPrivType = usmAES128PrivProtocol;
-    }
-#endif
-    if (testcase == 0)
-        config_perror("Unknown privacy type");
-    defaultPrivTypeLen = SNMP_DEFAULT_PRIV_PROTOLEN;
-    DEBUGMSGTL(("snmpv3", "set default privacy type: %s\n", cptr));
-}
-
-const oid      *
-get_default_privtype(size_t * len)
-{
-    if (defaultPrivType == NULL) {
-#ifndef NETSNMP_DISABLE_DES
-        defaultPrivType = usmDESPrivProtocol;
-#else
-        defaultPrivType = usmAESPrivProtocol;
-#endif
-        defaultPrivTypeLen = USM_LENGTH_OID_TRANSFORM;
-    }
-    if (len)
-        *len = defaultPrivTypeLen;
-    return defaultPrivType;
-}
-
diff --git a/snmplib/snmpv3.c b/snmplib/snmpv3.c
index 435cafd..ae154f0 100644
--- a/snmplib/snmpv3.c
+++ b/snmplib/snmpv3.c
@@ -11,7 +11,11 @@
 #include <sys/types.h>
 
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -35,6 +39,9 @@
 #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
@@ -75,8 +82,6 @@
 #include <net-snmp/library/snmpusm.h>
 #include <net-snmp/library/transform_oids.h>
 
-#include <net-snmp/net-snmp-features.h>
-
 static u_long   engineBoots = 1;
 static unsigned int engineIDType = ENGINEID_TYPE_NETSNMP_RND;
 static unsigned char *engineID = NULL;
@@ -87,10 +92,100 @@ static unsigned char *oldEngineID = NULL;
 static size_t   oldEngineIDLength = 0;
 static struct timeval snmpv3starttime;
 
+/*
+ * Set up default snmpv3 parameter value storage.
+ */
+static const oid *defaultAuthType = NULL;
+static size_t   defaultAuthTypeLen = 0;
+static const oid *defaultPrivType = NULL;
+static size_t   defaultPrivTypeLen = 0;
+
+/* this is probably an over-kill ifdef, but why not */
+#if defined(HAVE_SYS_TIMES_H) && defined(HAVE_UNISTD_H) && defined(HAVE_TIMES) && defined(_SC_CLK_TCK) && defined(HAVE_SYSCONF) && defined(UINT_MAX)
+
+#define SNMP_USE_TIMES 1
+
+static clock_t snmpv3startClock;
+static long clockticks = 0;
+static unsigned int lastcalltime = 0;
+static unsigned int wrapcounter = 0;
+
+#endif /* times() tests */
+
 #if defined(IFHWADDRLEN) && defined(SIOCGIFHWADDR)
 static int      getHwAddress(const char *networkDevice, char *addressOut);
 #endif
 
+void
+snmpv3_authtype_conf(const char *word, char *cptr)
+{
+#ifndef NETSNMP_DISABLE_MD5
+    if (strcasecmp(cptr, "MD5") == 0)
+        defaultAuthType = usmHMACMD5AuthProtocol;
+    else
+#endif
+        if (strcasecmp(cptr, "SHA") == 0)
+        defaultAuthType = usmHMACSHA1AuthProtocol;
+    else
+        config_perror("Unknown authentication type");
+    defaultAuthTypeLen = USM_LENGTH_OID_TRANSFORM;
+    DEBUGMSGTL(("snmpv3", "set default authentication type: %s\n", cptr));
+}
+
+const oid      *
+get_default_authtype(size_t * len)
+{
+    if (defaultAuthType == NULL) {
+        defaultAuthType = SNMP_DEFAULT_AUTH_PROTO;
+        defaultAuthTypeLen = SNMP_DEFAULT_AUTH_PROTOLEN;
+    }
+    if (len)
+        *len = defaultAuthTypeLen;
+    return defaultAuthType;
+}
+
+void
+snmpv3_privtype_conf(const char *word, char *cptr)
+{
+    int testcase = 0;
+
+#ifndef NETSNMP_DISABLE_DES
+    if (strcasecmp(cptr, "DES") == 0) {
+        testcase = 1;
+        defaultPrivType = usmDESPrivProtocol;
+    }
+#endif
+
+#if HAVE_AES
+    /* XXX AES: assumes oid length == des oid length */
+    if (strcasecmp(cptr, "AES128") == 0 ||
+        strcasecmp(cptr, "AES") == 0) {
+        testcase = 1;
+        defaultPrivType = usmAES128PrivProtocol;
+    }
+#endif
+    if (testcase == 0)
+        config_perror("Unknown privacy type");
+    defaultPrivTypeLen = SNMP_DEFAULT_PRIV_PROTOLEN;
+    DEBUGMSGTL(("snmpv3", "set default privacy type: %s\n", cptr));
+}
+
+const oid      *
+get_default_privtype(size_t * len)
+{
+    if (defaultPrivType == NULL) {
+#ifndef NETSNMP_DISABLE_DES
+        defaultPrivType = usmDESPrivProtocol;
+#else
+        defaultPrivType = usmAESPrivProtocol;
+#endif
+        defaultPrivTypeLen = USM_LENGTH_OID_TRANSFORM;
+    }
+    if (len)
+        *len = defaultPrivTypeLen;
+    return defaultPrivType;
+}
+
 /*******************************************************************-o-******
  * snmpv3_secLevel_conf
  *
@@ -121,13 +216,16 @@ parse_secLevel_conf(const char *word, char *cptr) {
 void
 snmpv3_secLevel_conf(const char *word, char *cptr)
 {
+    char            buf[1024];
     int             secLevel;
 
     if ((secLevel = parse_secLevel_conf( word, cptr )) >= 0 ) {
         netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, 
 			   NETSNMP_DS_LIB_SECLEVEL, secLevel);
     } else {
-	netsnmp_config_error("Unknown security level: %s", cptr);
+        snprintf(buf, sizeof(buf), "Unknown security level: %s", cptr);
+        buf[ sizeof(buf)-1 ] = 0;
+        config_perror(buf);
     }
     DEBUGMSGTL(("snmpv3", "default secLevel set to: %s = %d\n", cptr,
                 netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, 
@@ -135,9 +233,6 @@ snmpv3_secLevel_conf(const char *word, char *cptr)
 }
 
 
-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)
@@ -154,7 +249,7 @@ snmpv3_options(char *optarg, netsnmp_session * session, char **Apsz,
     /*
      * and '.... "-3x value" ....'  (*with* the quotes)
      */
-    while (*optarg && isspace((unsigned char)(*optarg))) {
+    while (*optarg && isspace(*optarg)) {
         optarg++;
     }
     /*
@@ -264,7 +359,6 @@ snmpv3_options(char *optarg, netsnmp_session * session, char **Apsz,
 
         break;
 
-#ifdef NETSNMP_SECMOD_USM
     case 'a':
 #ifndef NETSNMP_DISABLE_MD5
         if (!strcasecmp(optarg, "MD5")) {
@@ -315,7 +409,6 @@ snmpv3_options(char *optarg, netsnmp_session * session, char **Apsz,
     case 'X':
         *Xpsz = optarg;
         break;
-#endif /* NETSNMP_SECMOD_USM */
 
     case 'm': {
         size_t bufSize = sizeof(session->securityAuthKey);
@@ -442,7 +535,7 @@ setup_engineID(u_char ** eidp, const char *text)
          * get the host name and save the information 
          */
         gethostname((char *) buf, sizeof(buf));
-        hent = netsnmp_gethostbyname((char *) buf);
+        hent = gethostbyname((char *) buf);
         if (hent && hent->h_addrtype == AF_INET6) {
             localEngineIDType = ENGINEID_TYPE_IPV6;
         } else {
@@ -465,7 +558,7 @@ setup_engineID(u_char ** eidp, const char *text)
          * get the host name and save the information 
          */
         gethostname((char *) buf, sizeof(buf));
-        hent = netsnmp_gethostbyname((char *) buf);
+        hent = gethostbyname((char *) buf);
     }
 #endif
 #endif                          /* HAVE_GETHOSTNAME */
@@ -658,6 +751,296 @@ free_engineID(int majorid, int minorid, void *serverarg,
     return 0;
 }
 
+int
+free_enginetime_on_shutdown(int majorid, int minorid, void *serverarg,
+			    void *clientarg)
+{
+    DEBUGMSGTL(("snmpv3", "free enginetime callback called\n"));
+    if (engineID != NULL)
+	free_enginetime(engineID, engineIDLength);
+    return 0;
+}
+
+void
+usm_parse_create_usmUser(const char *token, char *line)
+{
+    char           *cp;
+    char            buf[SNMP_MAXBUF_MEDIUM];
+    struct usmUser *newuser;
+    u_char          userKey[SNMP_MAXBUF_SMALL], *tmpp;
+    size_t          userKeyLen = SNMP_MAXBUF_SMALL;
+    size_t          privKeyLen = 0;
+    size_t          ret;
+    int             ret2;
+    int             testcase;
+
+    newuser = usm_create_user();
+
+    /*
+     * READ: Security Name 
+     */
+    cp = copy_nword(line, buf, sizeof(buf));
+
+    /*
+     * might be a -e ENGINEID argument 
+     */
+    if (strcmp(buf, "-e") == 0) {
+        size_t          ebuf_len = 32, eout_len = 0;
+        u_char         *ebuf = (u_char *) malloc(ebuf_len);
+
+        if (ebuf == NULL) {
+            config_perror("malloc failure processing -e flag");
+            usm_free_user(newuser);
+            return;
+        }
+
+        /*
+         * Get the specified engineid from the line.  
+         */
+        cp = copy_nword(cp, buf, sizeof(buf));
+        if (!snmp_hex_to_binary(&ebuf, &ebuf_len, &eout_len, 1, buf)) {
+            config_perror("invalid EngineID argument to -e");
+            usm_free_user(newuser);
+            SNMP_FREE(ebuf);
+            return;
+        }
+
+        newuser->engineID = ebuf;
+        newuser->engineIDLen = eout_len;
+        cp = copy_nword(cp, buf, sizeof(buf));
+    } else {
+        newuser->engineID = snmpv3_generate_engineID(&ret);
+        if (ret == 0) {
+            usm_free_user(newuser);
+            return;
+        }
+        newuser->engineIDLen = ret;
+    }
+
+    newuser->secName = strdup(buf);
+    newuser->name = strdup(buf);
+
+    if (!cp)
+        goto add;               /* no authentication or privacy type */
+
+    /*
+     * READ: Authentication Type 
+     */
+#ifndef NETSNMP_DISABLE_MD5
+    if (strncmp(cp, "MD5", 3) == 0) {
+        memcpy(newuser->authProtocol, usmHMACMD5AuthProtocol,
+               sizeof(usmHMACMD5AuthProtocol));
+    } else
+#endif
+        if (strncmp(cp, "SHA", 3) == 0) {
+        memcpy(newuser->authProtocol, usmHMACSHA1AuthProtocol,
+               sizeof(usmHMACSHA1AuthProtocol));
+    } else {
+        config_perror("Unknown authentication protocol");
+        usm_free_user(newuser);
+        return;
+    }
+
+    cp = skip_token(cp);
+
+    /*
+     * READ: Authentication Pass Phrase or key
+     */
+    if (!cp) {
+        config_perror("no authentication pass phrase");
+        usm_free_user(newuser);
+        return;
+    }
+    cp = copy_nword(cp, buf, sizeof(buf));
+    if (strcmp(buf,"-m") == 0) {
+        /* a master key is specified */
+        cp = copy_nword(cp, buf, sizeof(buf));
+        ret = sizeof(userKey);
+        tmpp = userKey;
+        userKeyLen = 0;
+        if (!snmp_hex_to_binary(&tmpp, &ret, &userKeyLen, 0, buf)) {
+            config_perror("invalid key value argument to -m");
+            usm_free_user(newuser);
+            return;
+        }
+    } else if (strcmp(buf,"-l") != 0) {
+        /* a password is specified */
+        userKeyLen = sizeof(userKey);
+        ret2 = generate_Ku(newuser->authProtocol, newuser->authProtocolLen,
+                          (u_char *) buf, strlen(buf), userKey, &userKeyLen);
+        if (ret2 != SNMPERR_SUCCESS) {
+            config_perror("could not generate the authentication key from the "
+                          "supplied pass phrase.");
+            usm_free_user(newuser);
+            return;
+        }
+    }        
+        
+    /*
+     * And turn it into a localized key 
+     */
+    ret2 = sc_get_properlength(newuser->authProtocol,
+                               newuser->authProtocolLen);
+    if (ret2 <= 0) {
+        config_perror("Could not get proper authentication protocol key length");
+	usm_free_user(newuser);
+        return;
+    }
+    newuser->authKey = (u_char *) malloc(ret2);
+
+    if (strcmp(buf,"-l") == 0) {
+        /* a local key is directly specified */
+        cp = copy_nword(cp, buf, sizeof(buf));
+        newuser->authKeyLen = 0;
+        ret = ret2;
+        if (!snmp_hex_to_binary(&newuser->authKey, &ret,
+                                &newuser->authKeyLen, 0, buf)) {
+            config_perror("invalid key value argument to -l");
+            usm_free_user(newuser);
+            return;
+        }
+        if (ret != newuser->authKeyLen) {
+            config_perror("improper key length to -l");
+            usm_free_user(newuser);
+            return;
+        }
+    } else {
+        newuser->authKeyLen = ret2;
+        ret2 = generate_kul(newuser->authProtocol, newuser->authProtocolLen,
+                           newuser->engineID, newuser->engineIDLen,
+                           userKey, userKeyLen,
+                           newuser->authKey, &newuser->authKeyLen);
+        if (ret2 != SNMPERR_SUCCESS) {
+            config_perror("could not generate localized authentication key "
+                          "(Kul) from the master key (Ku).");
+            usm_free_user(newuser);
+            return;
+        }
+    }
+
+    if (!cp)
+        goto add;               /* no privacy type (which is legal) */
+
+    /*
+     * READ: Privacy Type 
+     */
+    testcase = 0;
+#ifndef NETSNMP_DISABLE_DES
+    if (strncmp(cp, "DES", 3) == 0) {
+        memcpy(newuser->privProtocol, usmDESPrivProtocol,
+               sizeof(usmDESPrivProtocol));
+        testcase = 1;
+	/* DES uses a 128 bit key, 64 bits of which is a salt */
+	privKeyLen = 16;
+    }
+#endif
+#ifdef HAVE_AES
+    if (strncmp(cp, "AES128", 6) == 0 ||
+               strncmp(cp, "AES", 3) == 0) {
+        memcpy(newuser->privProtocol, usmAESPrivProtocol,
+               sizeof(usmAESPrivProtocol));
+        testcase = 1;
+	privKeyLen = 16;
+    }
+#endif
+    if (testcase == 0) {
+        config_perror("Unknown privacy protocol");
+        usm_free_user(newuser);
+        return;
+    }
+
+    cp = skip_token(cp);
+    /*
+     * READ: Encryption Pass Phrase or key
+     */
+    if (!cp) {
+        /*
+         * assume the same as the authentication key 
+         */
+        memdup(&newuser->privKey, newuser->authKey, newuser->authKeyLen);
+        newuser->privKeyLen = newuser->authKeyLen;
+    } else {
+        cp = copy_nword(cp, buf, sizeof(buf));
+        
+        if (strcmp(buf,"-m") == 0) {
+            /* a master key is specified */
+            cp = copy_nword(cp, buf, sizeof(buf));
+            ret = sizeof(userKey);
+            tmpp = userKey;
+            userKeyLen = 0;
+            if (!snmp_hex_to_binary(&tmpp, &ret, &userKeyLen, 0, buf)) {
+                config_perror("invalid key value argument to -m");
+                usm_free_user(newuser);
+                return;
+            }
+        } else if (strcmp(buf,"-l") != 0) {
+            /* a password is specified */
+            userKeyLen = sizeof(userKey);
+            ret2 = generate_Ku(newuser->authProtocol, newuser->authProtocolLen,
+                              (u_char *) buf, strlen(buf), userKey, &userKeyLen);
+            if (ret2 != SNMPERR_SUCCESS) {
+                config_perror("could not generate the privacy key from the "
+                              "supplied pass phrase.");
+                usm_free_user(newuser);
+                return;
+            }
+        }        
+        
+        /*
+         * And turn it into a localized key 
+         */
+        ret2 = sc_get_properlength(newuser->authProtocol,
+                                   newuser->authProtocolLen);
+        if (ret2 < 0) {
+            config_perror("could not get proper key length to use for the "
+                          "privacy algorithm.");
+            usm_free_user(newuser);
+            return;
+        }
+        newuser->privKey = (u_char *) malloc(ret2);
+
+        if (strcmp(buf,"-l") == 0) {
+            /* a local key is directly specified */
+            cp = copy_nword(cp, buf, sizeof(buf));
+            ret = ret2;
+            newuser->privKeyLen = 0;
+            if (!snmp_hex_to_binary(&newuser->privKey, &ret,
+                                    &newuser->privKeyLen, 0, buf)) {
+                config_perror("invalid key value argument to -l");
+                usm_free_user(newuser);
+                return;
+            }
+        } else {
+            newuser->privKeyLen = ret2;
+            ret2 = generate_kul(newuser->authProtocol, newuser->authProtocolLen,
+                               newuser->engineID, newuser->engineIDLen,
+                               userKey, userKeyLen,
+                               newuser->privKey, &newuser->privKeyLen);
+            if (ret2 != SNMPERR_SUCCESS) {
+                config_perror("could not generate localized privacy key "
+                              "(Kul) from the master key (Ku).");
+                usm_free_user(newuser);
+                return;
+            }
+        }
+    }
+
+    if ((newuser->privKeyLen >= privKeyLen) || (privKeyLen == 0)){
+      newuser->privKeyLen = privKeyLen;
+    }
+    else {
+      /* The privKey length is smaller than required by privProtocol */
+      usm_free_user(newuser);
+      return;
+    }
+
+  add:
+    usm_add_user(newuser);
+    DEBUGMSGTL(("usmUser", "created a new user %s at ", newuser->secName));
+    DEBUGMSGHEX(("usmUser", newuser->engineID, newuser->engineIDLen));
+    DEBUGMSG(("usmUser", "\n"));
+}
+
 /*******************************************************************-o-******
  * engineBoots_conf
  *
@@ -672,7 +1055,7 @@ void
 engineBoots_conf(const char *word, char *cptr)
 {
     engineBoots = atoi(cptr) + 1;
-    DEBUGMSGTL(("snmpv3", "engineBoots: %lu\n", engineBoots));
+    DEBUGMSGTL(("snmpv3", "engineBoots: %d\n", engineBoots));
 }
 
 /*******************************************************************-o-******
@@ -743,7 +1126,9 @@ engineIDNic_conf(const char *word, char *cptr)
         /*
          * See if already set if so erase & release it 
          */
-        SNMP_FREE(engineIDNic);
+        if (NULL != engineIDNic) {
+            SNMP_FREE(engineIDNic);
+        }
         engineIDNic = (u_char *) malloc(strlen(cptr) + 1);
         if (NULL != engineIDNic) {
             strcpy((char *) engineIDNic, cptr);
@@ -812,7 +1197,7 @@ version_conf(const char *word, char *cptr)
 }
 
 /*
- * oldengineID_conf(const char *, char *):
+ * engineID_old_conf(const char *, char *):
  * 
  * Reads a octet string encoded engineID into the oldEngineID and
  * oldEngineIDLen pointers.
@@ -824,32 +1209,8 @@ oldengineID_conf(const char *word, char *cptr)
 }
 
 /*
- * exactEngineID_conf(const char *, char *):
- * 
- * Reads a octet string encoded engineID into the engineID and
- * engineIDLen pointers.
- */
-void
-exactEngineID_conf(const char *word, char *cptr)
-{
-    read_config_read_octet_string(cptr, &engineID, &engineIDLength);
-    if (engineIDLength > MAX_ENGINEID_LENGTH) {
-	netsnmp_config_error(
-	    "exactEngineID '%s' too long; truncating to %d bytes",
-	    cptr, MAX_ENGINEID_LENGTH);
-        engineID[MAX_ENGINEID_LENGTH - 1] = '\0';
-        engineIDLength = MAX_ENGINEID_LENGTH;
-    }
-    engineIDIsSet = 1;
-    engineIDType = ENGINEID_TYPE_EXACT;
-}
-
-
-/*
  * merely call 
  */
-netsnmp_feature_child_of(get_enginetime_alarm, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_GET_ENGINETIME_ALARM
 void
 get_enginetime_alarm(unsigned int regnum, void *clientargs)
 {
@@ -857,7 +1218,6 @@ get_enginetime_alarm(unsigned int regnum, void *clientargs)
        wrapping of the times() output */
     snmpv3_local_snmpEngineTime();
 }
-#endif /* NETSNMP_FEATURE_REMOVE_GET_ENGINETIME_ALARM */
 
 /*******************************************************************-o-******
  * init_snmpv3
@@ -872,7 +1232,19 @@ get_enginetime_alarm(unsigned int regnum, void *clientargs)
 void
 init_snmpv3(const char *type)
 {
-    netsnmp_get_monotonic_clock(&snmpv3starttime);
+#if SNMP_USE_TIMES
+  struct tms dummy;
+
+  /* fixme: -1 is fault code... */
+  snmpv3startClock = times(&dummy);
+
+  /* remember how many ticks per second there are, since times() returns this */
+
+  clockticks = sysconf(_SC_CLK_TCK);
+
+#endif /* SNMP_USE_TIMES */
+
+    gettimeofday(&snmpv3starttime, NULL);
 
     if (!type)
         type = "__snmpapp__";
@@ -894,6 +1266,13 @@ init_snmpv3(const char *type)
                            snmpv3_store, (void *) strdup(type));
 
     /*
+     * Free stuff at shutdown time
+     */
+    snmp_register_callback(SNMP_CALLBACK_LIBRARY,
+                           SNMP_CALLBACK_SHUTDOWN,
+                           free_enginetime_on_shutdown, NULL);
+
+    /*
      * initialize submodules 
      */
     /*
@@ -913,8 +1292,6 @@ init_snmpv3(const char *type)
                                     "string");
     register_prenetsnmp_mib_handler(type, "oldEngineID", oldengineID_conf,
                                     NULL, NULL);
-    register_prenetsnmp_mib_handler(type, "exactEngineID", exactEngineID_conf,
-                                    NULL, NULL);
     register_prenetsnmp_mib_handler(type, "engineIDType",
                                     engineIDType_conf, NULL, "num");
     register_prenetsnmp_mib_handler(type, "engineIDNic", engineIDNic_conf,
@@ -953,9 +1330,30 @@ init_snmpv3(const char *type)
     register_config_handler("snmp", "defVersion", version_conf, NULL,
                             "1|2c|3");
 
+    register_config_handler("snmp", "defAuthType", snmpv3_authtype_conf,
+                            NULL, "MD5|SHA");
+    register_config_handler("snmp", "defPrivType", snmpv3_privtype_conf,
+                            NULL,
+#ifdef HAVE_AES
+                            "DES|AES");
+#else
+                            "DES (AES support not available)");
+#endif
     register_config_handler("snmp", "defSecurityLevel",
                             snmpv3_secLevel_conf, NULL,
                             "noAuthNoPriv|authNoPriv|authPriv");
+    register_config_handler(type, "userSetAuthPass", usm_set_password,
+                            NULL, NULL);
+    register_config_handler(type, "userSetPrivPass", usm_set_password,
+                            NULL, NULL);
+    register_config_handler(type, "userSetAuthKey", usm_set_password, NULL,
+                            NULL);
+    register_config_handler(type, "userSetPrivKey", usm_set_password, NULL,
+                            NULL);
+    register_config_handler(type, "userSetAuthLocalKey", usm_set_password,
+                            NULL, NULL);
+    register_config_handler(type, "userSetPrivLocalKey", usm_set_password,
+                            NULL, NULL);
 }
 
 /*
@@ -984,20 +1382,18 @@ init_snmpv3_post_config(int majorid, int minorid, void *serverarg,
     /*
      * if our engineID has changed at all, the boots record must be set to 1 
      */
-    if (engineIDLen != oldEngineIDLength ||
+    if (engineIDLen != (int) oldEngineIDLength ||
         oldEngineID == NULL || c_engineID == NULL ||
         memcmp(oldEngineID, c_engineID, engineIDLen) != 0) {
         engineBoots = 1;
     }
 
-#ifdef NETSNMP_SECMOD_USM
     /*
-     * for USM set our local engineTime in the LCD timing cache 
+     * set our local engineTime in the LCD timing cache 
      */
     set_enginetime(c_engineID, engineIDLen,
                    snmpv3_local_snmpEngineBoots(),
                    snmpv3_local_snmpEngineTime(), TRUE);
-#endif /* NETSNMP_SECMOD_USM */
 
     SNMP_FREE(c_engineID);
     return SNMPERR_SUCCESS;
@@ -1078,9 +1474,6 @@ snmpv3_get_engineID(u_char * buf, size_t buflen)
     if (!buf || (buflen < engineIDLength)) {
         return 0;
     }
-    if (!engineID) {
-        return 0;
-    }
 
     memcpy(buf, engineID, engineIDLength);
     return engineIDLength;
@@ -1111,7 +1504,10 @@ snmpv3_clone_engineID(u_char ** dest, size_t * destlen, u_char * src,
     if (!dest || !destlen)
         return 0;
 
-    SNMP_FREE(*dest);
+    if (*dest) {
+        SNMP_FREE(*dest);
+        *dest = NULL;
+    }
     *destlen = 0;
 
     if (srclen && src) {
@@ -1159,33 +1555,38 @@ snmpv3_generate_engineID(size_t * length)
 
 }                               /* end snmpv3_generate_engineID() */
 
-/**
- * Return the value of snmpEngineTime. According to RFC 3414 snmpEngineTime
- * is a 31-bit counter. engineBoots must be incremented every time that
- * counter wraps around.
- *
- * @see See also <a href="http://tools.ietf.org/html/rfc3414">RFC 3414</a>.
- *
- * @note It is assumed that this function is called at least once every
- *   2**31 seconds.
+/*
+ * snmpv3_local_snmpEngineTime(): return the number of seconds since the
+ * snmpv3 engine last incremented engine_boots 
  */
 u_long
 snmpv3_local_snmpEngineTime(void)
 {
-#ifdef NETSNMP_FEATURE_CHECKING
-    netsnmp_feature_require(calculate_sectime_diff)
-#endif /* NETSNMP_FEATURE_CHECKING */
-
-    static uint32_t last_engineTime;
+#ifdef SNMP_USE_TIMES
+  struct tms dummy;
+  clock_t now = times(&dummy);
+  /* fixme: -1 is fault code... */
+  unsigned int result;
+
+  if (now < snmpv3startClock) {
+      result = UINT_MAX - (snmpv3startClock - now);
+  } else {
+      result = now - snmpv3startClock;
+  }
+  if (result < lastcalltime) {
+      /* wrapped */
+      wrapcounter++;
+  }
+  lastcalltime = result;
+  result =  (UINT_MAX/clockticks)*wrapcounter + result/clockticks;
+
+  return result;
+#else /* !SNMP_USE_TIMES */
     struct timeval  now;
-    uint32_t engineTime;
-
-    netsnmp_get_monotonic_clock(&now);
-    engineTime = calculate_sectime_diff(&now, &snmpv3starttime) & 0x7fffffffL;
-    if (engineTime < last_engineTime)
-        engineBoots++;
-    last_engineTime = engineTime;
-    return engineTime;
+
+    gettimeofday(&now, NULL);
+    return calculate_sectime_diff(&now, &snmpv3starttime);
+#endif /* HAVE_SYS_TIMES_H */
 }
 
 
@@ -1242,7 +1643,7 @@ getHwAddress(const char *networkDevice, /* e.g. "eth0", "eth1" */
     /*
      * copy the name of the net device we want to find the HW address for 
      */
-    strlcpy(request.ifr_name, networkDevice, IFNAMSIZ);
+    strncpy(request.ifr_name, networkDevice, IFNAMSIZ - 1);
     /*
      * Get the HW address 
      */
@@ -1257,17 +1658,18 @@ getHwAddress(const char *networkDevice, /* e.g. "eth0", "eth1" */
 #endif
 
 #ifdef NETSNMP_ENABLE_TESTING_CODE
-/**
- * Set SNMPv3 engineBoots and start time.
- *
- * @note This function does not exist. Go away. It certainly should never be
- *   used, unless in a testing scenario, which is why it was created
+/*
+ * snmpv3_set_engineBootsAndTime(): this function does not exist.  Go away. 
+ */
+/*
+ * It certainly should never be used, unless in a testing scenero,
+ * which is why it was created 
  */
 void
 snmpv3_set_engineBootsAndTime(int boots, int ttime)
 {
     engineBoots = boots;
-    netsnmp_get_monotonic_clock(&snmpv3starttime);
+    gettimeofday(&snmpv3starttime, NULL);
     snmpv3starttime.tv_sec -= ttime;
 }
 #endif
diff --git a/snmplib/snprintf.c b/snmplib/snprintf.c
index 726c4f4..aaaf7d1 100644
--- a/snmplib/snprintf.c
+++ b/snmplib/snprintf.c
@@ -63,11 +63,25 @@
 #include <ctype.h>
 #include <sys/types.h>
 
+#if HAVE_STDARG_H
 # include <stdarg.h>
+# define HAVE_STDARGS           /* let's hope that works everywhere (mj) */
 # define VA_LOCAL_DECL   va_list ap
 # define VA_START(f)     va_start(ap, f)
 # define VA_SHIFT(v,t)  ;       /* no-op for ANSI */
 # define VA_END          va_end(ap)
+#elif HAVE_VARARGS_H
+#  include <varargs.h>
+#  undef HAVE_STDARGS
+#  define VA_LOCAL_DECL   va_list ap
+#  define VA_START(f)     va_start(ap)  /* f is ignored! */
+#  define VA_SHIFT(v,t) v = va_arg(ap,t)
+#  define VA_END        va_end(ap)
+#else
+/*
+ * XX ** NO VARARGS ** XX
+ */
+#endif
 
 #ifdef HAVE_LONG_DOUBLE
 #define LDOUBLE long double
@@ -711,9 +725,20 @@ vsnprintf(char *str, size_t count, const char *fmt, va_list args)
 /*
  * VARARGS3 
  */
+#ifdef HAVE_STDARGS
 int
 snprintf(char *str, size_t count, const char *fmt, ...)
+#else
+int
+snprintf(va_alist)
+     va_dcl
+#endif
 {
+#ifndef HAVE_STDARGS
+    char           *str;
+    size_t          count;
+    char           *fmt;
+#endif
     VA_LOCAL_DECL;
 
     VA_START(fmt);
@@ -803,6 +828,4 @@ main(void)
 }
 #endif                          /* SNPRINTF_TEST */
 
-#else
-int snprintf_unused;	/* Suppress "empty translation unit" warning */
 #endif                          /* !HAVE_SNPRINTF */
diff --git a/snmplib/strlcat.c b/snmplib/strlcat.c
deleted file mode 100644
index 90713ca..0000000
--- a/snmplib/strlcat.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*	$OpenBSD: strlcat.c,v 1.13 2005/08/08 08:05:37 espie Exp $	*/
-
-/*
- * Copyright (c) 1998 Todd C. Miller <Todd.Miller at courtesan.com>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#ifndef HAVE_STRLCAT
-
-#if HAVE_STRING_H
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-#include <sys/types.h>
-
-#include <net-snmp/library/system.h>
-
-/*
- * Appends src to string dst of size siz (unlike strncat, siz is the
- * full size of dst, not space left).  At most siz-1 characters
- * will be copied.  Always NUL terminates (unless siz <= strlen(dst)).
- * Returns strlen(src) + MIN(siz, strlen(initial dst)).
- * If retval >= siz, truncation occurred.
- */
-size_t
-strlcat(char * __restrict dst, const char * __restrict src, size_t siz)
-{
-	char *d = dst;
-	const char *s = src;
-	size_t n = siz;
-	size_t dlen;
-
-	/* Find the end of dst and adjust bytes left but don't go past end */
-	while (n-- != 0 && *d != '\0')
-		d++;
-	dlen = d - dst;
-	n = siz - dlen;
-
-	if (n == 0)
-		return(dlen + strlen(s));
-	while (*s != '\0') {
-		if (n != 1) {
-			*d++ = *s;
-			n--;
-		}
-		s++;
-	}
-	*d = '\0';
-
-	return(dlen + (s - src));	/* count does not include NUL */
-}
-
-#endif
diff --git a/snmplib/strlcpy.c b/snmplib/strlcpy.c
index 0235a30..ce57f40 100644
--- a/snmplib/strlcpy.c
+++ b/snmplib/strlcpy.c
@@ -5,6 +5,8 @@
  */
 #include <net-snmp/net-snmp-config.h>
 
+#if !HAVE_STRLCPY
+
 #if HAVE_STRING_H
 #include <string.h>
 #else
@@ -13,8 +15,6 @@
 
 #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,3 +41,5 @@ strlcpy(char *dest, const char *src, size_t len)
 	dest[new_len] = '\0'; 
 	return (src_len); 
 }
+
+#endif                    /* !HAVE_STRLCPY */
diff --git a/snmplib/strtok_r.c b/snmplib/strtok_r.c
index 21d47d6..bfe5a9b 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-safe version of strtok
+ * thread-save version of strtok
  */
 char *
 strtok_r(char *s, const char *delim, char **lasts)
@@ -50,8 +50,8 @@ strtok_r(char *s, const char *delim, char **lasts)
 	char *tok;
 
 	/* s may be NULL */
-	/*netsnmp_assert(delim != NULL);*/
-	/*netsnmp_assert(lasts != NULL);*/
+	/*assert(delim != NULL);*/
+	/*assert(lasts != NULL);*/
 
 	if (s == NULL && (s = *lasts) == NULL)
 		return (NULL);
@@ -92,3 +92,4 @@ cont:
 	}
 	/* NOTREACHED */
 }
+#endif                          /* !HAVE_STRTOK_R */
diff --git a/snmplib/strtol.c b/snmplib/strtol.c
index c71f8ba..989a163 100644
--- a/snmplib/strtol.c
+++ b/snmplib/strtol.c
@@ -33,6 +33,8 @@
 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
@@ -123,3 +125,5 @@ strtol(const char *nptr, char **endptr, int base)
         *endptr = any ? s - 1 : (char *) nptr;
     return (acc);
 }
+
+#endif                          /* !HAVE_STRTOL */
diff --git a/snmplib/strtoul.c b/snmplib/strtoul.c
index 7aea330..8012920 100644
--- a/snmplib/strtoul.c
+++ b/snmplib/strtoul.c
@@ -29,6 +29,8 @@
 
 #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 */
@@ -105,3 +107,5 @@ strtoul(const char *nptr, char **endptr, int base)
         *endptr = (char *) (any ? s - 1 : nptr);
     return (acc);
 }
+
+#endif                          /* !HAVE_STRTOUL */
diff --git a/snmplib/strtoull.c b/snmplib/strtoull.c
index 6c98fc4..be94f29 100644
--- a/snmplib/strtoull.c
+++ b/snmplib/strtoull.c
@@ -49,8 +49,13 @@
 #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;
@@ -156,3 +161,123 @@ strtoull(const char *nptr, char **endptr, int base)
         *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) */
+
+/*
+ * 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 207762d..7a26152 100644
--- a/snmplib/system.c
+++ b/snmplib/system.c
@@ -33,16 +33,9 @@ SOFTWARE.
  * distributed with the Net-SNMP package.
  */
 /*
- * 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.
- */
-/*
  * System dependent routines go here
  */
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <stdio.h>
 #include <ctype.h>
 #include <errno.h>
@@ -61,7 +54,11 @@ SOFTWARE.
 #endif
 
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -77,16 +74,15 @@ SOFTWARE.
 #include <netinet/in.h>
 #endif
 
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
 #if HAVE_NET_IF_H
 #include <net/if.h>
 #endif
-#if HAVE_NETDB_H
-#include <netdb.h>
-#endif
-
 
 #if HAVE_SYS_SOCKIO_H
 #include <sys/sockio.h>
@@ -148,34 +144,6 @@ SOFTWARE.
 #include <sys/systeminfo.h>
 #endif
 
-#if defined(darwin9)
-#include <crt_externs.h>        /* for _NSGetArgv() */
-#endif
-
-#if HAVE_PWD_H
-#include <pwd.h>
-#endif
-#if HAVE_GRP_H
-#include <grp.h>
-#endif
-
-#if HAVE_LIMITS_H
-#include <limits.h>
-#endif
-
-#if HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-#ifdef DNSSEC_LOCAL_VALIDATION
-#if 1 /*HAVE_ARPA_NAMESER_H*/
-#include <arpa/nameser.h>
-#endif
-#include <validator/validator.h>
-/* NetSNMP and DNSSEC-Tools both define FREE. We'll not use either here. */
-#undef FREE
-#endif
-
 #include <net-snmp/types.h>
 #include <net-snmp/output_api.h>
 #include <net-snmp/utilities.h>
@@ -184,16 +152,6 @@ SOFTWARE.
 #include <net-snmp/library/snmp_api.h>
 #include <net-snmp/library/read_config.h> /* for get_temp_file_pattern() */
 
-#include "inet_ntop.h"
-
-/* NetSNMP and DNSSEC-Tools both define FREE. We'll not use either here. */
-#undef FREE
-
-netsnmp_feature_child_of(system_all, libnetsnmp)
-
-netsnmp_feature_child_of(user_information, system_all)
-netsnmp_feature_child_of(calculate_sectime_diff, system_all)
-
 #ifndef IFF_LOOPBACK
 #	define IFF_LOOPBACK 0
 #endif
@@ -204,37 +162,6 @@ netsnmp_feature_child_of(calculate_sectime_diff, system_all)
 # define LOOPBACK    0x7f000001
 #endif
 
-#ifndef EAI_FAIL
-# define EAI_FAIL    -4    /* Non-recoverable failure in name res.  */
-#endif
-
-#if defined(HAVE_FORK)
-static void
-_daemon_prep(int stderr_log)
-{
-    /* Avoid keeping any directory in use. */
-    chdir("/");
-
-    if (stderr_log)
-        return;
-
-    /*
-     * Close inherited file descriptors to avoid
-     * keeping unnecessary references.
-     */
-    close(0);
-    close(1);
-    close(2);
-
-    /*
-     * Redirect std{in,out,err} to /dev/null, just in case.
-     */
-    open("/dev/null", O_RDWR);
-    dup(0);
-    dup(0);
-}
-#endif
-
 /**
  * fork current process into the background.
  *
@@ -263,22 +190,6 @@ netsnmp_daemonize(int quit_immediately, int stderr_log)
     int i = 0;
     DEBUGMSGT(("daemonize","deamonizing...\n"));
 #if HAVE_FORK
-#if defined(darwin9)
-     char            path [PATH_MAX] = "";
-     uint32_t        size = sizeof (path);
-
-     /*
-      * if we are already launched in a "daemonized state", just
-      * close & redirect the file descriptors
-      */
-     if(getppid() <= 2) {
-         _daemon_prep(stderr_log);
-         return 0;
-     }
-
-     if (_NSGetExecutablePath (path, &size))
-         return -1;
-#endif
     /*
      * Fork to return control to the invoking process and to
      * guarantee that we aren't a process group leader.
@@ -320,22 +231,26 @@ netsnmp_daemonize(int quit_immediately, int stderr_log)
             
             DEBUGMSGT(("daemonize","child continuing\n"));
 
-#if ! defined(darwin9)
-            _daemon_prep(stderr_log);
-#else
-             /*
-              * Some darwin calls (using mach ports) don't work after
-              * a fork. So, now that we've forked, we re-exec ourself
-              * to ensure that the child's mach ports are all set up correctly,
-              * the getppid call above will prevent the exec child from
-              * forking...
-              */
-             char * const *argv = *_NSGetArgv ();
-             DEBUGMSGT(("daemonize","re-execing forked child\n"));
-             execv (path, argv);
-             snmp_log(LOG_ERR,"Forked child unable to re-exec - %s.\n", strerror (errno));
-             exit (0);
-#endif
+            /* Avoid keeping any directory in use. */
+            chdir("/");
+            
+            if (!stderr_log) {
+                /*
+                 * Close inherited file descriptors to avoid
+                 * keeping unnecessary references.
+                 */
+                close(0);
+                close(1);
+                close(2);
+                
+                /*
+                 * Redirect std{in,out,err} to /dev/null, just in
+                 * case.
+                 */
+                open("/dev/null", O_RDWR);
+                dup(0);
+                dup(0);
+            }
         }
 #endif /* !WIN32 */
     }
@@ -347,6 +262,204 @@ netsnmp_daemonize(int quit_immediately, int stderr_log)
  * ********************************************* 
  */
 #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)
 {
@@ -529,7 +642,7 @@ get_myaddr(void)
 
     for (ifrp = ifc.ifc_req;
         (char *)ifrp < (char *)ifc.ifc_req + ifc.ifc_len;
-#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+#ifdef STRUCT_SOCKADDR_HAS_SA_LEN
         ifrp = (struct ifreq *)(((char *) ifrp) +
                                 sizeof(ifrp->ifr_name) +
                                 ifrp->ifr_addr.sa_len)
@@ -639,20 +752,26 @@ get_boottime(void)
 }
 #endif
 
-/**
- * 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().
+/*
+ * Returns uptime in centiseconds(!).
  */
 long
 get_uptime(void)
 {
-#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#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)
     struct nlist nl;
     int kmem;
     time_t lbolt;
@@ -664,7 +783,9 @@ get_uptime(void)
     read(kmem, &lbolt, sizeof(lbolt));
     close(kmem);
     return(lbolt);
-#elif defined(solaris2)
+#endif
+
+#ifdef solaris2
     kstat_ctl_t    *ksc = kstat_open();
     kstat_t        *ks;
     kid_t           kid;
@@ -689,7 +810,9 @@ get_uptime(void)
         kstat_close(ksc);
     }
     return lbolt;
-#elif defined(linux) || defined(cygwin)
+#endif                          /* solaris2 */
+
+#ifdef linux
     FILE           *in = fopen("/proc/uptime", "r");
     long            uptim = 0, a, b;
     if (in) {
@@ -698,296 +821,16 @@ get_uptime(void)
         fclose(in);
     }
     return uptim;
-#else
-    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);
+#endif                          /* linux */
 
-    return (nowtime_csecs - boottime_csecs);
+#ifdef cygwin
+    return (0);                 /* not implemented */
 #endif
 }
 
 #endif                          /* ! WIN32 */
 /*******************************************************************/
 
-#ifdef DNSSEC_LOCAL_VALIDATION
-static val_context_t *_val_context = NULL;
-
-static val_context_t *
-netsnmp_validator_context(void)
-{
-    if (NULL == _val_context) {
-        int rc;
-        char *apptype = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
-                                              NETSNMP_DS_LIB_APPTYPE);
-        DEBUGMSGTL(("dns:sec:context", "creating dnssec context for %s\n",
-                    apptype));
-        rc = val_create_context(apptype, &_val_context);
-    }
-
-    return _val_context;
-}
-#endif /* DNSSEC_LOCAL_VALIDATION */
-
-int
-netsnmp_gethostbyname_v4(const char* name, in_addr_t *addr_out)
-{
-#if HAVE_GETADDRINFO
-    struct addrinfo *addrs = NULL;
-    struct addrinfo hint;
-    int             err;
-
-    memset(&hint, 0, sizeof hint);
-    hint.ai_flags = 0;
-    hint.ai_family = PF_INET;
-    hint.ai_socktype = SOCK_DGRAM;
-    hint.ai_protocol = 0;
-
-    err = netsnmp_getaddrinfo(name, NULL, &hint, &addrs);
-    if (err != 0) {
-#if HAVE_GAI_STRERROR
-        snmp_log(LOG_ERR, "getaddrinfo: %s %s\n", name,
-                 gai_strerror(err));
-#else
-        snmp_log(LOG_ERR, "getaddrinfo: %s (error %d)\n", name,
-                 err);
-#endif
-        return -1;
-    }
-
-    if (addrs != NULL) {
-        memcpy(addr_out,
-               &((struct sockaddr_in *) addrs->ai_addr)->sin_addr,
-               sizeof(in_addr_t));
-        freeaddrinfo(addrs);
-    } else {
-        DEBUGMSGTL(("get_thisaddr",
-                    "Failed to resolve IPv4 hostname\n"));
-    }
-    return 0;
-
-#elif HAVE_GETHOSTBYNAME
-    struct hostent *hp = NULL;
-
-    hp = netsnmp_gethostbyname(name);
-    if (hp == NULL) {
-        DEBUGMSGTL(("get_thisaddr",
-                    "hostname (couldn't resolve)\n"));
-        return -1;
-    } else if (hp->h_addrtype != AF_INET) {
-        DEBUGMSGTL(("get_thisaddr",
-                    "hostname (not AF_INET!)\n"));
-        return -1;
-    } else {
-        DEBUGMSGTL(("get_thisaddr",
-                    "hostname (resolved okay)\n"));
-        memcpy(addr_out, hp->h_addr, sizeof(in_addr_t));
-    }
-    return 0;
-
-#elif HAVE_GETIPNODEBYNAME
-    struct hostent *hp = NULL;
-    int             err;
-
-    hp = getipnodebyname(peername, AF_INET, 0, &err);
-    if (hp == NULL) {
-        DEBUGMSGTL(("get_thisaddr",
-                    "hostname (couldn't resolve = %d)\n", err));
-        return -1;
-    }
-    DEBUGMSGTL(("get_thisaddr",
-                "hostname (resolved okay)\n"));
-    memcpy(addr_out, hp->h_addr, sizeof(in_addr_t));
-    return 0;
-
-#else /* HAVE_GETIPNODEBYNAME */
-    return -1;
-#endif
-}
-
-int
-netsnmp_getaddrinfo(const char *name, const char *service,
-                    const struct addrinfo *hints, struct addrinfo **res)
-{
-#if HAVE_GETADDRINFO
-    struct addrinfo *addrs = NULL;
-    struct addrinfo hint;
-    int             err;
-#ifdef DNSSEC_LOCAL_VALIDATION
-    val_status_t    val_status;
-#endif
-
-    DEBUGMSGTL(("dns:getaddrinfo", "looking up %s:%s\n", name, service));
-
-    if (NULL == hints) {
-        memset(&hint, 0, sizeof hint);
-        hint.ai_flags = 0;
-        hint.ai_family = PF_INET;
-        hint.ai_socktype = SOCK_DGRAM;
-        hint.ai_protocol = 0;
-        hints = &hint;
-    } else {
-        memcpy(&hint, hints, sizeof hint);
-    }
-
-#ifndef DNSSEC_LOCAL_VALIDATION
-    err = getaddrinfo(name, NULL, &hint, &addrs);
-#else /* DNSSEC_LOCAL_VALIDATION */
-    err = val_getaddrinfo(netsnmp_validator_context(), name, NULL, &hint,
-                          &addrs, &val_status);
-    DEBUGMSGTL(("dns:sec:val", "err %d, val_status %d / %s; trusted: %d\n",
-                err, val_status, p_val_status(val_status),
-                val_istrusted(val_status)));
-    if (! val_istrusted(val_status)) {
-        int rc;
-        if ((err != 0) && VAL_GETADDRINFO_HAS_STATUS(err)) {
-            snmp_log(LOG_WARNING,
-                     "WARNING: UNTRUSTED error in DNS resolution for %s!\n",
-                     name);
-            rc = EAI_FAIL;
-        } else {
-            snmp_log(LOG_WARNING,
-                     "The authenticity of DNS response is not trusted (%s)\n",
-                     p_val_status(val_status));
-            rc = EAI_NONAME;
-        }
-        /** continue anyways if DNSSEC_WARN_ONLY is set */
-        if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                    NETSNMP_DS_LIB_DNSSEC_WARN_ONLY))
-            return rc;
-    }
-
-
-#endif /* DNSSEC_LOCAL_VALIDATION */
-    *res = addrs;
-    if ((0 == err) && addrs && addrs->ai_addr) {
-        DEBUGMSGTL(("dns:getaddrinfo", "answer { AF_INET, %s:%hu }\n",
-                    inet_ntoa(((struct sockaddr_in*)addrs->ai_addr)->sin_addr),
-                    ntohs(((struct sockaddr_in*)addrs->ai_addr)->sin_port)));
-    }
-    return err;
-#else
-    NETSNMP_LOGONCE((LOG_ERR, "getaddrinfo not available"));
-    return EAI_FAIL;
-#endif /* getaddrinfo */
-}
-
-struct hostent *
-netsnmp_gethostbyname(const char *name)
-{
-#if HAVE_GETHOSTBYNAME
-#ifdef DNSSEC_LOCAL_VALIDATION
-    val_status_t val_status;
-#endif
-    struct hostent *hp = NULL;
-
-    if (NULL == name)
-        return NULL;
-
-    DEBUGMSGTL(("dns:gethostbyname", "looking up %s\n", name));
-
-#ifdef DNSSEC_LOCAL_VALIDATION
-    hp  = val_gethostbyname(netsnmp_validator_context(), name, &val_status);
-    DEBUGMSGTL(("dns:sec:val", "val_status %d / %s; trusted: %d\n",
-                val_status, p_val_status(val_status),
-                val_istrusted(val_status)));
-    if (!val_istrusted(val_status)) {
-        snmp_log(LOG_WARNING,
-                 "The authenticity of DNS response is not trusted (%s)\n",
-                 p_val_status(val_status));
-        /** continue anyways if DNSSEC_WARN_ONLY is set */
-        if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                    NETSNMP_DS_LIB_DNSSEC_WARN_ONLY))
-            hp = NULL;
-    }
-    else if (val_does_not_exist(val_status) && hp)
-        hp = NULL;
-#else
-    hp = gethostbyname(name);
-#endif
-    if (hp == NULL) {
-        DEBUGMSGTL(("dns:gethostbyname",
-                    "couldn't resolve %s\n", name));
-    } else if (hp->h_addrtype != AF_INET) {
-        DEBUGMSGTL(("dns:gethostbyname",
-                    "warning: response for %s not AF_INET!\n", name));
-    } else {
-        DEBUGMSGTL(("dns:gethostbyname",
-                    "%s resolved okay\n", name));
-    }
-    return hp;
-#else
-    NETSNMP_LOGONCE((LOG_ERR, "gethostbyname not available"));
-    return NULL;
-#endif /* HAVE_GETHOSTBYNAME */
-}
-
-/**
- * Look up the host name via DNS.
- *
- * @param[in] addr Pointer to the address to resolve. This argument points e.g.
- *   to a struct in_addr for AF_INET or to a struct in6_addr for AF_INET6.
- * @param[in] len  Length in bytes of *addr.
- * @param[in] type Address family, e.g. AF_INET or AF_INET6.
- *
- * @return Pointer to a hostent structure if address lookup succeeded or NULL
- *   if the lookup failed.
- *
- * @see See also the gethostbyaddr() man page.
- */
-struct hostent *
-netsnmp_gethostbyaddr(const void *addr, socklen_t len, int type)
-{
-#if HAVE_GETHOSTBYADDR
-    struct hostent *hp = NULL;
-    char buf[64];
-
-    DEBUGMSGTL(("dns:gethostbyaddr", "resolving %s\n",
-                inet_ntop(type, addr, buf, sizeof(buf))));
-
-#ifdef DNSSEC_LOCAL_VALIDATION
-    val_status_t val_status;
-    hp = val_gethostbyaddr(netsnmp_validator_context(), addr, len, type,
-                           &val_status);
-    DEBUGMSGTL(("dns:sec:val", "val_status %d / %s; trusted: %d\n",
-                val_status, p_val_status(val_status),
-                val_istrusted(val_status)));
-    if (!val_istrusted(val_status)) {
-        snmp_log(LOG_WARNING,
-                 "The authenticity of DNS response is not trusted (%s)\n",
-                 p_val_status(val_status));
-        /** continue anyways if DNSSEC_WARN_ONLY is set */
-        if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
-                                    NETSNMP_DS_LIB_DNSSEC_WARN_ONLY))
-            hp = NULL;
-    }
-    else if (val_does_not_exist(val_status) && hp)
-        hp = NULL;
-#else
-    hp = gethostbyaddr(addr, len, type);
-#endif
-    if (hp == NULL) {
-        DEBUGMSGTL(("dns:gethostbyaddr", "couldn't resolve addr\n"));
-    } else if (hp->h_addrtype != AF_INET) {
-        DEBUGMSGTL(("dns:gethostbyaddr",
-                    "warning: response for addr not AF_INET!\n"));
-    } else {
-        DEBUGMSGTL(("dns:gethostbyaddr", "addr resolved okay\n"));
-    }
-    return hp;
-#else
-    NETSNMP_LOGONCE((LOG_ERR, "gethostbyaddr not available"));
-    return NULL;
-#endif
-}
-
-/*******************************************************************/
-
 #ifndef HAVE_STRNCASECMP
 
 /*
@@ -1078,32 +921,41 @@ setenv(const char *name, const char *value, int overwrite)
 }
 #endif                          /* HAVE_SETENV */
 
-netsnmp_feature_child_of(calculate_time_diff, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_CALCULATE_TIME_DIFF
-/**
- * Compute (*now - *then) in centiseconds.
- */
+/* returns centiseconds */
 int
-calculate_time_diff(const struct timeval *now, const struct timeval *then)
+calculate_time_diff(struct timeval *now, struct timeval *then)
 {
-    struct timeval  diff;
-
-    NETSNMP_TIMERSUB(now, then, &diff);
-    return (int)(diff.tv_sec * 100 + diff.tv_usec / 10000);
+    struct timeval  tmp, diff;
+    memcpy(&tmp, now, sizeof(struct timeval));
+    tmp.tv_sec--;
+    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) {
+        diff.tv_usec -= 1000000L;
+        diff.tv_sec++;
+    }
+    return ((diff.tv_sec * 100) + (diff.tv_usec / 10000));
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CALCULATE_TIME_DIFF */
 
-#ifndef NETSNMP_FEATURE_REMOVE_CALCULATE_SECTIME_DIFF
-/** Compute rounded (*now - *then) in seconds. */
+/* returns diff in rounded seconds */
 u_int
-calculate_sectime_diff(const struct timeval *now, const struct timeval *then)
+calculate_sectime_diff(struct timeval *now, struct timeval *then)
 {
-    struct timeval  diff;
-
-    NETSNMP_TIMERSUB(now, then, &diff);
-    return diff.tv_sec + (diff.tv_usec >= 500000L);
+    struct timeval  tmp, diff;
+    memcpy(&tmp, now, sizeof(struct timeval));
+    tmp.tv_sec--;
+    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) {
+        diff.tv_usec -= 1000000L;
+        diff.tv_sec++;
+    }
+    if (diff.tv_usec >= 500000L)
+        return diff.tv_sec + 1;
+    return  diff.tv_sec;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_CALCULATE_SECTIME_DIFF */
 
 #ifndef HAVE_STRCASESTR
 /*
@@ -1131,7 +983,7 @@ strcasestr(const char *haystack, const char *needle)
                     /*
                      * printf("\nfound '%s' in '%s'\n", needle, cx); 
                      */
-                    return NETSNMP_REMOVE_CONST(char *, cx);
+                    return (char *) cx;
                 }
                 if (!*cp1)
                     break;
@@ -1154,7 +1006,7 @@ strcasestr(const char *haystack, const char *needle)
      * printf("\n"); 
      */
     if (cp1 && *cp1)
-        return NETSNMP_REMOVE_CONST(char *, cp1);
+        return (char *) cp1;
 
     return NULL;
 }
@@ -1166,17 +1018,8 @@ mkdirhier(const char *pathname, mode_t mode, int skiplast)
     struct stat     sbuf;
     char           *ourcopy = strdup(pathname);
     char           *entry;
-    char           *buf = NULL;
+    char            buf[SNMP_MAXPATH];
     char           *st = NULL;
-    int             res;
-
-    res = SNMPERR_GENERR;
-    if (!ourcopy)
-        goto out;
-
-    buf = malloc(strlen(pathname) + 2);
-    if (!buf)
-        goto out;
 
 #if defined (WIN32) || defined (cygwin)
     /* convert backslash to forward slash */
@@ -1214,14 +1057,16 @@ mkdirhier(const char *pathname, mode_t mode, int skiplast)
             /*
              * DNE, make it 
              */
+            snmp_log(LOG_INFO, "Creating directory: %s\n", buf);
 #ifdef WIN32
             if (CreateDirectory(buf, NULL) == 0)
 #else
             if (mkdir(buf, mode) == -1)
 #endif
-                goto out;
-            else
-                snmp_log(LOG_INFO, "Created directory: %s\n", buf);
+            {
+                free(ourcopy);
+                return SNMPERR_GENERR;
+            }
         } else {
             /*
              * exists, is it a file? 
@@ -1230,15 +1075,13 @@ mkdirhier(const char *pathname, mode_t mode, int skiplast)
                 /*
                  * ack! can't make a directory on top of a file 
                  */
-                goto out;
+                free(ourcopy);
+                return SNMPERR_GENERR;
             }
         }
     }
-    res = SNMPERR_SUCCESS;
-out:
-    free(buf);
     free(ourcopy);
-    return res;
+    return SNMPERR_SUCCESS;
 }
 
 /**
@@ -1250,21 +1093,12 @@ out:
 const char     *
 netsnmp_mktemp(void)
 {
-#ifdef PATH_MAX
-    static char     name[PATH_MAX];
-#else
-    static char     name[256];
-#endif
+    static char     name[32];
     int             fd = -1;
 
-    strlcpy(name, get_temp_file_pattern(), sizeof(name));
+    strcpy(name, get_temp_file_pattern());
 #ifdef HAVE_MKSTEMP
-    {
-        mode_t oldmask = umask(~(S_IRUSR | S_IWUSR));
-        netsnmp_assert(oldmask != (mode_t)(-1));
-        fd = mkstemp(name);
-        umask(oldmask);
-    }
+    fd = mkstemp(name);
 #else
     if (mktemp(name)) {
 # ifndef WIN32
@@ -1349,7 +1183,7 @@ netsnmp_os_kernel_width(void)
   } else {
     return -1;
   }
-#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#elif defined(aix4) || defined(aix5) || defined(aix6)
   return (__KERNEL_32() ? 32 : (__KERNEL_64() ? 64 : -1));
 #elif defined(osf4) || defined(osf5) || defined(__alpha)
   return 64; /* Alpha is always 64bit */
@@ -1359,68 +1193,3 @@ netsnmp_os_kernel_width(void)
 #endif
 }
 
-netsnmp_feature_child_of(str_to_uid, user_information)
-#ifndef NETSNMP_FEATURE_REMOVE_STR_TO_UID
-/**
- * Convert a user name or number into numeric form.
- *
- * @param[in] useroruid Either a Unix user name or the ASCII representation
- *   of a user number.
- *
- * @return Either a user number > 0 or 0 if useroruid is not a valid user
- *   name, not a valid user number or the name of the root user.
- */
-int netsnmp_str_to_uid(const char *useroruid) {
-    int uid;
-#if HAVE_GETPWNAM && HAVE_PWD_H
-    struct passwd *pwd;
-#endif
-
-    uid = atoi(useroruid);
-
-    if (uid == 0) {
-#if HAVE_GETPWNAM && HAVE_PWD_H
-        pwd = getpwnam(useroruid);
-        uid = pwd ? pwd->pw_uid : 0;
-        endpwent();
-#endif
-        if (uid == 0)
-            snmp_log(LOG_WARNING, "Can't identify user (%s).\n", useroruid);
-    }
-    return uid;
-    
-}
-#endif /* NETSNMP_FEATURE_REMOVE_STR_TO_UID */
-
-netsnmp_feature_child_of(str_to_gid, user_information)
-#ifndef NETSNMP_FEATURE_REMOVE_STR_TO_GID
-/**
- * Convert a group name or number into numeric form.
- *
- * @param[in] grouporgid Either a Unix group name or the ASCII representation
- *   of a group number.
- *
- * @return Either a group number > 0 or 0 if grouporgid is not a valid group
- *   name, not a valid group number or the root group.
- */
-int netsnmp_str_to_gid(const char *grouporgid)
-{
-    int gid;
-
-    gid = atoi(grouporgid);
-
-    if (gid == 0) {
-#if HAVE_GETGRNAM && HAVE_GRP_H
-        struct group  *grp;
-
-        grp = getgrnam(grouporgid);
-        gid = grp ? grp->gr_gid : 0;
-        endgrent();
-#endif
-        if (gid == 0)
-            snmp_log(LOG_WARNING, "Can't identify group (%s).\n", grouporgid);
-    }
-
-    return gid;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_STR_TO_GID */
diff --git a/snmplib/test_binary_array.c b/snmplib/test_binary_array.c
new file mode 100644
index 0000000..44b1f0e
--- /dev/null
+++ b/snmplib/test_binary_array.c
@@ -0,0 +1,171 @@
+#include <net-snmp/net-snmp-config.h>
+
+#if HAVE_IO_H
+#include <io.h>
+#endif
+#include <stdio.h>
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_MALLOC_H
+#include <malloc.h>
+#endif
+#include <sys/types.h>
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmp_api.h>
+#include <net-snmp/library/container.h>
+#include <net-snmp/library/container_binary_array.h>
+#include <net-snmp/library/tools.h>
+#include <net-snmp/library/snmp_assert.h>
+
+#define TEST_SIZE 7
+
+void
+print_int(netsnmp_index *i, void *v)
+{
+    printf("item %p = %ld\n", i, i->oids[0]);
+}
+
+int
+test_int(void)
+{
+    oid o1 = 1;
+    oid o2 = 2;
+    oid o3 = 6;
+    oid o4 = 8;
+    oid o5 = 9;
+    oid ox = 7;
+    oid oy = 10;
+    netsnmp_index i1,i2,i3,i4,i5,ix,iy, *ip;
+    netsnmp_index *a[TEST_SIZE] = { &i1, &i2, &i3, &ix, &i4, &i5, &iy };
+    netsnmp_container *c = netsnmp_container_get_binary_array();
+    int i;
+
+    c->compare = netsnmp_compare_netsnmp_index;
+    
+    i1.oids = &o1;
+    i2.oids = &o2;
+    i3.oids = &o3;
+    i4.oids = &o4;
+    i5.oids = &o5;
+    ix.oids = &ox;
+    iy.oids = &oy;
+    i1.len = i2.len = i3.len = i4.len = i5.len = ix.len = iy.len = 1;
+
+    printf("Creating container...\n");
+
+    printf("Inserting data...\n");
+    CONTAINER_INSERT(c,&i4);
+    CONTAINER_INSERT(c,&i2);
+    CONTAINER_INSERT(c,&i3);
+    CONTAINER_INSERT(c,&i1);
+    CONTAINER_INSERT(c,&i5);
+
+    printf("For each...\n");
+    CONTAINER_FOR_EACH(c, print_int, NULL);
+    printf("Done.\n");
+
+    printf("\n");
+    ip = CONTAINER_FIRST(c);
+    printf("Find first = %p %ld\n",ip, ip->oids[0]);
+    while( ip ) {
+        ip = CONTAINER_NEXT(c,ip);
+        if(ip)
+            printf("Find next = %p %ld\n",ip, ip->oids[0]);
+        else
+            printf("Find next = %s\n",ip);
+    }
+
+    for( i=0; i < TEST_SIZE; ++i) {
+        printf("\n");
+        ip = CONTAINER_FIND(c,a[i]);
+        printf("Find %ld = %p %ld\n", a[i]->oids[0], ip, ip ? ip->oids[0] : 0);
+        ip = CONTAINER_NEXT(c,a[i]);
+        printf("Next %ld = %p %ld\n", a[i]->oids[0], ip, ip ? ip->oids[0] : 0);
+    }
+
+    printf("Done.\n");
+
+    return 0;
+}
+
+void
+print_string(char *i, void *v)
+{
+    printf("item %s\n", i);
+}
+
+int
+my_strcmp(char *lhs, char *rhs)
+{
+    int rc = strcmp(lhs,rhs);
+/*      printf("%s %d %s\n",lhs, rc, rhs); */
+    return rc;
+}
+
+int
+test_string()
+{
+    const char *o1 = "zebra";
+    const char *o2 = "b-two";
+    const char *o3 = "b";
+    const char *o4 = "cedar";
+    const char *o5 = "alpha";
+    const char *ox = "dev";
+    const char *oy = "aa";
+    const char * ip;
+    
+    const char *a[TEST_SIZE] = { o1, o2, o3, ox, o4, o5, oy };
+    netsnmp_container *c = netsnmp_container_get_binary_array();
+    int i;
+
+    c->compare = my_strcmp;
+    
+    printf("Creating container...\n");
+
+    printf("Inserting data...\n");
+    CONTAINER_INSERT(c,o4);
+    CONTAINER_INSERT(c,o2);
+    CONTAINER_INSERT(c,o3);
+    CONTAINER_INSERT(c,o1);
+    CONTAINER_INSERT(c,o5);
+    printf("\n");
+    printf("For each...\n");
+    CONTAINER_FOR_EACH(c, print_string, NULL);
+    printf("Done.\n");
+
+    printf("\n");
+    ip = CONTAINER_FIRST(c);
+    printf("Find first = %s\n",ip);
+    while( ip ) {
+        ip = CONTAINER_NEXT(c,ip);
+        printf("Find next = %s\n",ip);
+    }
+
+    for( i=0; i < TEST_SIZE; ++i) {
+        printf("\n");
+        ip = CONTAINER_FIND(c,a[i]);
+        printf("Find %s = %s\n", a[i], ip);
+        ip = CONTAINER_NEXT(c,a[i]);
+        printf("Next %s = %s\n", a[i], ip);
+    }
+
+    printf("Done.\n");
+
+    return 0;
+}
+
+int
+main(int argc, char** argv)
+{
+
+    test_int();
+    test_string();
+}
diff --git a/snmplib/text_utils.c b/snmplib/text_utils.c
index 32596be..9079709 100644
--- a/snmplib/text_utils.c
+++ b/snmplib/text_utils.c
@@ -1,5 +1,4 @@
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 #include <net-snmp/net-snmp-includes.h>
 
 #include <stdio.h>
@@ -43,14 +42,7 @@
 #include <net-snmp/library/file_utils.h>
 #include <net-snmp/library/text_utils.h>
 
-netsnmp_feature_child_of(text_utils, libnetsnmp)
 
-netsnmp_feature_provide(text_utils)
-#ifdef NETSNMP_FEATURE_REQUIRE_TEXT_UTILS
-netsnmp_feature_require(file_utils)
-#endif /* NETSNMP_FEATURE_REQUIRE_TEXT_UTILS */
-
-#ifndef NETSNMP_FEATURE_REMOVE_TEXT_UTILS
 /*------------------------------------------------------------------
  *
  * Prototypes
@@ -155,8 +147,6 @@ netsnmp_file_text_parse(netsnmp_file *f, netsnmp_container *cin,
     return c;
 }
 
-netsnmp_feature_child_of(text_token_container_from_file, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE_TEXT_TOKEN_CONTAINER_FROM_FILE
 netsnmp_container *
 netsnmp_text_token_container_from_file(const char *file, u_int flags,
                                        netsnmp_container *cin, void *context)
@@ -209,7 +199,6 @@ netsnmp_text_token_container_from_file(const char *file, u_int flags,
     
     return c;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TEXT_TOKEN_CONTAINER_FROM_FILE */
 
 
 /*------------------------------------------------------------------
@@ -476,13 +465,13 @@ _process_line_tvi(netsnmp_line_info *line_info, void *mem,
 
         case PMLP_TYPE_UNSIGNED:
             tvi->value.ul = strtoul(ptr, NULL, 0);
-            if ((errno == ERANGE) && (ULONG_MAX == tvi->value.ul))
+            if ((errno == ERANGE) &&(ULONG_MAX == tvi->value.sl))
                 snmp_log(LOG_WARNING,"value overflow\n");
             break;
 
 
         case PMLP_TYPE_INTEGER:
-            tvi->value.sl = strtol(ptr, NULL, 0);
+            tvi->value.ul = strtol(ptr, NULL, 0);
             if ((errno == ERANGE) &&
                 ((LONG_MAX == tvi->value.sl) ||
                  (LONG_MIN == tvi->value.sl)))
@@ -494,7 +483,7 @@ _process_line_tvi(netsnmp_line_info *line_info, void *mem,
             break;
 
         case PMLP_TYPE_BOOLEAN:
-            if (isdigit((unsigned char)(*ptr)))
+            if (isdigit(*ptr))
                 tvi->value.ul = strtoul(ptr, NULL, 0);
             else if (strcasecmp(ptr,"true") == 0)
                 tvi->value.ul = 1;
@@ -521,6 +510,3 @@ _process_line_tvi(netsnmp_line_info *line_info, void *mem,
     return PMLP_RC_MEMORY_USED;
 }
 
-#else  /* ! NETSNMP_FEATURE_REMOVE_TEXT_UTILS */
-netsnmp_feature_unused(text_utils);
-#endif /* ! NETSNMP_FEATURE_REMOVE_TEXT_UTILS */
diff --git a/snmplib/tools.c b/snmplib/tools.c
index 8e4852a..ea715fb 100644
--- a/snmplib/tools.c
+++ b/snmplib/tools.c
@@ -4,23 +4,17 @@
 
 #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 <net-snmp/net-snmp-features.h>
 
 #include <ctype.h>
 #include <stdio.h>
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -32,8 +26,8 @@
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
+#if HAVE_WINSOCK_H
+#include <winsock.h>
 #endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
@@ -49,16 +43,10 @@
 #ifdef HAVE_ARPA_INET_H
 #include <arpa/inet.h>
 #endif
-#ifdef HAVE_VALGRIND_MEMCHECK_H
-#include <valgrind/memcheck.h>
-#endif
 #ifdef cygwin
 #include <windows.h>
 #endif
 
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -72,35 +60,14 @@
 #include <net-snmp/library/mib.h>
 #include <net-snmp/library/scapi.h>
 
-netsnmp_feature_child_of(tools_all, libnetsnmp)
-
-netsnmp_feature_child_of(memory_wrappers, tools_all)
-netsnmp_feature_child_of(valgrind, tools_all)
-netsnmp_feature_child_of(string_time_to_secs, tools_all)
-netsnmp_feature_child_of(netsnmp_check_definedness, valgrind)
-
-netsnmp_feature_child_of(uatime_ready, netsnmp_unused)
-netsnmp_feature_child_of(timeval_tticks, netsnmp_unused)
-
-netsnmp_feature_child_of(memory_strdup, memory_wrappers)
-netsnmp_feature_child_of(memory_calloc, memory_wrappers)
-netsnmp_feature_child_of(memory_malloc, memory_wrappers)
-netsnmp_feature_child_of(memory_realloc, memory_wrappers)
-netsnmp_feature_child_of(memory_free, memory_wrappers)
-
-#ifndef NETSNMP_FEATURE_REMOVE_MEMORY_WRAPPERS
+#ifdef WIN32
 /**
  * This function is a wrapper for the strdup function.
- *
- * @note The strdup() implementation calls _malloc_dbg() when linking with
- * MSVCRT??D.dll and malloc() when linking with MSVCRT??.dll
  */
 char * netsnmp_strdup( const char * ptr)
 {
     return strdup(ptr);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_MEMORY_STRDUP */
-#ifndef NETSNMP_FEATURE_REMOVE_MEMORY_CALLOC
 /**
  * This function is a wrapper for the calloc function.
  */
@@ -108,8 +75,7 @@ void * netsnmp_calloc(size_t nmemb, size_t size)
 {
     return calloc(nmemb, size);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_MEMORY_CALLOC */
-#ifndef NETSNMP_FEATURE_REMOVE_MEMORY_MALLOC
+
 /**
  * This function is a wrapper for the malloc function.
  */
@@ -117,8 +83,7 @@ void * netsnmp_malloc(size_t size)
 {
     return malloc(size);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_MEMORY_MALLOC */
-#ifndef NETSNMP_FEATURE_REMOVE_MEMORY_REALLOC
+
 /**
  * This function is a wrapper for the realloc function.
  */
@@ -126,8 +91,7 @@ void * netsnmp_realloc( void * ptr, size_t size)
 {
     return realloc(ptr, size);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_MEMORY_REALLOC */
-#ifndef NETSNMP_FEATURE_REMOVE_MEMORY_FREE
+
 /**
  * This function is a wrapper for the free function.
  * It calls free only if the calling parameter has a non-zero value.
@@ -137,7 +101,7 @@ void netsnmp_free( void * ptr)
     if (ptr)
         free(ptr);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_MEMORY_FREE */
+#endif /* WIN32 */
 
 /**
  * This function increase the size of the buffer pointed at by *buf, which is
@@ -227,7 +191,6 @@ free_zero(void *buf, size_t size)
 
 }                               /* end free_zero() */
 
-#ifndef NETSNMP_FEATURE_REMOVE_USM_SCAPI
 /**
  * Returns pointer to allocaed & set buffer on success, size contains
  * number of random bytes filled.  buf is NULL and *size set to KMT
@@ -258,7 +221,6 @@ malloc_random(size_t * size)
     return buf;
 
 }                               /* end malloc_random() */
-#endif /* NETSNMP_FEATURE_REMOVE_USM_SCAPI */
 
 /** Duplicates a memory block.
  *  Copies a existing memory location from a pointer to another, newly
@@ -271,7 +233,7 @@ malloc_random(size_t * size)
  *	@return SNMPERR_SUCCESS	on success, SNMPERR_GENERR on failure.
  */
 int
-memdup(u_char ** to, const void * from, size_t size)
+memdup(u_char ** to, const u_char * from, size_t size)
 {
     if (to == NULL)
         return SNMPERR_GENERR;
@@ -286,39 +248,6 @@ memdup(u_char ** to, const void * from, size_t size)
 
 }                               /* end memdup() */
 
-#ifndef NETSNMP_FEATURE_REMOVE_NETSNMP_CHECK_DEFINEDNESS
-/**
- * When running under Valgrind, check whether all bytes in the range [packet,
- * packet+length) are defined. Let Valgrind print a backtrace if one or more
- * bytes with uninitialized values have been found. This function can help to
- * find the cause of undefined value errors if --track-origins=yes is not
- * sufficient. Does nothing when not running under Valgrind.
- *
- * Note: this requires a fairly recent valgrind.
- */
-void
-netsnmp_check_definedness(const void *packet, size_t length)
-{
-#if defined(__VALGRIND_MAJOR__) && defined(__VALGRIND_MINOR__)   \
-    && (__VALGRIND_MAJOR__ > 3                                   \
-        || (__VALGRIND_MAJOR__ == 3 && __VALGRIND_MINOR__ >= 6))
-
-    if (RUNNING_ON_VALGRIND) {
-        int i;
-        char vbits;
-
-        for (i = 0; i < length; ++i) {
-            if (VALGRIND_GET_VBITS((const char *)packet + i, &vbits, 1) == 1
-                && vbits)
-                VALGRIND_PRINTF_BACKTRACE("Undefined: byte %d/%d", i,
-                                          (int)length);
-        }
-    }
-
-#endif
-}
-#endif /* NETSNMP_FEATURE_REMOVE_NETSNMP_CHECK_DEFINEDNESS */
-
 /** 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 */
@@ -344,41 +273,24 @@ netsnmp_strdup_and_null(const u_char * from, size_t from_len)
 
 /** 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
+ *	@param *input		Binary data.
+ *	@param len		Length of binary data.
+ *	@param **output	NULL terminated string equivalent in hex.
  *      
  * @return olen	Length of output string not including NULL terminator.
+ *
+ * FIX	Is there already one of these in the UCD SNMP codebase?
+ *	The old one should be used, or this one should be moved to
+ *	snmplib/snmp_api.c.
  */
 u_int
-netsnmp_binary_to_hex(u_char ** dest, size_t *dest_len, int allow_realloc, 
-                      const u_char * input, size_t len)
+binary_to_hex(const u_char * input, size_t len, char **output)
 {
     u_int           olen = (len * 2) + 1;
-    u_char         *s, *op;
+    char           *s = (char *) calloc(1, olen), *op = s;
     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);
@@ -386,34 +298,9 @@ netsnmp_binary_to_hex(u_char ** dest, size_t *dest_len, int allow_realloc,
     }
     *op = '\0';
 
-    if (s != *dest)
-        *dest = s;
-    *dest_len = olen;
-
+    *output = s;
     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.
- *      
- * @return olen	Length of output string not including NULL terminator.
- *
- * FIX	Is there already one of these in the UCD SNMP codebase?
- *	The old one should be used, or this one should be moved to
- *	snmplib/snmp_api.c.
- */
-u_int
-binary_to_hex(const u_char * input, size_t len, char **output)
-{
-    size_t out_len = 0;
-
-    *output = NULL; /* will alloc new buffer */
-
-    return netsnmp_binary_to_hex((u_char**)output, &out_len, 1, input, len);
 }                               /* end binary_to_hex() */
 
 
@@ -538,7 +425,7 @@ int
 netsnmp_hex_to_binary(u_char ** buf, size_t * buf_len, size_t * offset,
                       int allow_realloc, const char *hex, const char *delim)
 {
-    unsigned int    subid = 0;
+    int             subid = 0;
     const char     *cp = hex;
 
     if (buf == NULL || buf_len == NULL || offset == NULL || hex == NULL) {
@@ -613,7 +500,7 @@ void
 dump_chunk(const char *debugtoken, const char *title, const u_char * buf,
            int size)
 {
-    int             printunit = 64;     /* XXX  Make global. */
+    u_int           printunit = 64;     /* XXX  Make global. */
     char            chunk[SNMP_MAXBUF], *s, *sp;
 
     if (title && (*title != '\0')) {
@@ -626,8 +513,8 @@ dump_chunk(const char *debugtoken, const char *title, const u_char * buf,
     sp = s;
 
     while (size > 0) {
-        if (size > printunit) {
-            memcpy(chunk, sp, printunit);
+        if (size > (int) printunit) {
+            strncpy(chunk, sp, printunit);
             chunk[printunit] = '\0';
             DEBUGMSGTL((debugtoken, "\t%s\n", chunk));
         } else {
@@ -803,10 +690,15 @@ dump_snmpEngineID(const u_char * estring, size_t * estring_len)
 
     case 4:                    /* Text. */
 
-        s += sprintf(s, "\"%.*s\"", (int) (sizeof(buf)-strlen(buf)-3), esp);
+        /*
+         * Doesn't exist on all (many) architectures 
+         */
+        /*
+         * s += snprintf(s, remaining_len+3, "\"%s\"", esp); 
+         */
+        s += sprintf(s, "\"%.*s\"", sizeof(buf)-strlen(buf)-3, esp);
         goto dump_snmpEngineID_quit;
         break;
-
      /*NOTREACHED*/ case 5:    /* Octets. */
 
         snprint_hexstring(s, (SNMP_MAXBUF - (s-buf)),
@@ -815,7 +707,6 @@ dump_snmpEngineID(const u_char * estring, size_t * estring_len)
         s -= 1;
         goto dump_snmpEngineID_quit;
         break;
-
        /*NOTREACHED*/ dump_snmpEngineID_violation:
     case 0:                    /* Violation of RESERVED, 
                                  * *   -OR- of expected length.
@@ -873,23 +764,19 @@ dump_snmpEngineID(const u_char * estring, size_t * estring_len)
 
 
 /**
- * Create a new real-time marker.
- *
- * \deprecated Use netsnmp_set_monotonic_marker() instead.
- *
- * @note Caller must free time marker when no longer needed.
+ * create a new time marker.
+ * NOTE: Caller must free time marker when no longer needed.
  */
 marker_t
 atime_newMarker(void)
 {
     marker_t        pm = (marker_t) calloc(1, sizeof(struct timeval));
-    gettimeofday((struct timeval *) pm, NULL);
+    gettimeofday((struct timeval *) pm, 0);
     return pm;
 }
 
 /**
- * Set a time marker to the current value of the real-time clock.
- * \deprecated Use netsnmp_set_monotonic_marker() instead.
+ * set a time marker.
  */
 void
 atime_setMarker(marker_t pm)
@@ -897,114 +784,40 @@ atime_setMarker(marker_t pm)
     if (!pm)
         return;
 
-    gettimeofday((struct timeval *) pm, NULL);
+    gettimeofday((struct timeval *) pm, 0);
 }
 
-/**
- * Query the current value of the monotonic clock.
- *
- * Returns the current value of a monotonic clock if such a clock is provided by
- * the operating system or the wall clock time if no such clock is provided by
- * the operating system. A monotonic clock is a clock that is never adjusted
- * backwards and that proceeds at the same rate as wall clock time.
- *
- * @param[out] tv Pointer to monotonic clock time.
- */
-void netsnmp_get_monotonic_clock(struct timeval* tv)
-{
-#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
-    struct timespec ts;
-    int res;
-
-    res = clock_gettime(CLOCK_MONOTONIC, &ts);
-    if (res >= 0) {
-        tv->tv_sec = ts.tv_sec;
-        tv->tv_usec = ts.tv_nsec / 1000;
-    } else {
-        netsnmp_assert(FALSE);
-        memset(tv, 0, sizeof(*tv));
-    }
-#elif defined(WIN32)
-    /*
-     * Windows: return tick count. Note: the rate at which the tick count
-     * increases is not adjusted by the time synchronization algorithm, so
-     * expect an error of <= 100 ppm for the rate at which this clock
-     * increases.
-     */
-    typedef ULONGLONG (WINAPI * pfGetTickCount64)(void);
-    static int s_initialized;
-    static pfGetTickCount64 s_pfGetTickCount64;
-    uint64_t now64;
-
-    if (!s_initialized) {
-        HMODULE hKernel32 = GetModuleHandle("kernel32");
-        s_pfGetTickCount64 =
-            (pfGetTickCount64) GetProcAddress(hKernel32, "GetTickCount64");
-        s_initialized = TRUE;
-    }
-
-    if (s_pfGetTickCount64) {
-        /* Windows Vista, Windows 2008 or any later Windows version */
-        now64 = (*s_pfGetTickCount64)();
-    } else {
-        /* Windows XP, Windows 2003 or any earlier Windows version */
-        static uint32_t s_wraps, s_last;
-        uint32_t now;
-
-        now = GetTickCount();
-        if (now < s_last)
-            s_wraps++;
-        s_last = now;
-        now64 = ((uint64_t)s_wraps << 32) | now;
-    }
-    tv->tv_sec = now64 / 1000;
-    tv->tv_usec = (now64 % 1000) * 1000;
-#else
-    /* At least FreeBSD 4 doesn't provide monotonic clock support. */
-#warning Not sure how to query a monotonically increasing clock on your system. \
-Timers will not work correctly if the system clock is adjusted by e.g. ntpd.
-    gettimeofday(tv, NULL);
-#endif
-}
-
-/**
- * Set a time marker to the current value of the monotonic clock.
- */
-void
-netsnmp_set_monotonic_marker(marker_t *pm)
-{
-    if (!*pm)
-        *pm = malloc(sizeof(struct timeval));
-    if (*pm)
-        netsnmp_get_monotonic_clock(*pm);
-}
 
 /**
  * Returns the difference (in msec) between the two markers
- *
- * \deprecated Don't use in new code.
  */
 long
-atime_diff(const_marker_t first, const_marker_t second)
+atime_diff(marker_t first, marker_t second)
 {
-    struct timeval diff;
+    struct timeval *tv1, *tv2, diff;
 
-    NETSNMP_TIMERSUB((const struct timeval *) second, (const struct timeval *) first, &diff);
+    tv1 = (struct timeval *) first;
+    tv2 = (struct timeval *) second;
 
-    return (long)(diff.tv_sec * 1000 + diff.tv_usec / 1000);
+    diff.tv_sec = tv2->tv_sec - tv1->tv_sec - 1;
+    diff.tv_usec = tv2->tv_usec - tv1->tv_usec + 1000000;
+
+    return (diff.tv_sec * 1000 + diff.tv_usec / 1000);
 }
 
 /**
  * Returns the difference (in u_long msec) between the two markers
- *
- * \deprecated Don't use in new code.
  */
 u_long
-uatime_diff(const_marker_t first, const_marker_t second)
+uatime_diff(marker_t first, marker_t second)
 {
-    struct timeval diff;
+    struct timeval *tv1, *tv2, diff;
 
-    NETSNMP_TIMERSUB((const struct timeval *) second, (const struct timeval *) first, &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;
 
     return (((u_long) diff.tv_sec) * 1000 + diff.tv_usec / 1000);
 }
@@ -1012,26 +825,29 @@ uatime_diff(const_marker_t first, const_marker_t second)
 /**
  * Returns the difference (in u_long 1/100th secs) between the two markers
  * (functionally this is what sysUpTime needs)
- *
- * \deprecated Don't use in new code.
  */
 u_long
-uatime_hdiff(const_marker_t first, const_marker_t second)
+uatime_hdiff(marker_t first, marker_t second)
 {
-    struct timeval diff;
+    struct timeval *tv1, *tv2, diff;
+    u_long          res;
+
+    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) * 100 + diff.tv_usec / 10000;
+    res = ((u_long) diff.tv_sec) * 100 + diff.tv_usec / 10000;
+    return res;
 }
 
 /**
- * Test: Has (marked time plus delta) exceeded current time ?
+ * Test: Has (marked time plus delta) exceeded current time (in msec) ?
  * Returns 0 if test fails or cannot be tested (no marker).
- *
- * \deprecated Use netsnmp_ready_monotonic() instead.
  */
 int
-atime_ready(const_marker_t pm, int delta_ms)
+atime_ready(marker_t pm, int deltaT)
 {
     marker_t        now;
     long            diff;
@@ -1042,21 +858,18 @@ atime_ready(const_marker_t pm, int delta_ms)
 
     diff = atime_diff(pm, now);
     free(now);
-    if (diff < delta_ms)
+    if (diff < deltaT)
         return 0;
 
     return 1;
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_UATIME_READY
 /**
- * Test: Has (marked time plus delta) exceeded current time ?
+ * Test: Has (marked time plus delta) exceeded current time (in msec) ?
  * Returns 0 if test fails or cannot be tested (no marker).
- *
- * \deprecated Use netsnmp_ready_monotonic() instead.
  */
 int
-uatime_ready(const_marker_t pm, unsigned int delta_ms)
+uatime_ready(marker_t pm, unsigned int deltaT)
 {
     marker_t        now;
     u_long          diff;
@@ -1067,38 +880,11 @@ uatime_ready(const_marker_t pm, unsigned int delta_ms)
 
     diff = uatime_diff(pm, now);
     free(now);
-    if (diff < delta_ms)
+    if (diff < deltaT)
         return 0;
 
     return 1;
 }
-#endif /* NETSNMP_FEATURE_REMOVE_UATIME_READY */
-
-/**
- * Is the current time past (marked time plus delta) ?
- *
- * @param[in] pm Pointer to marked time as obtained via
- *   netsnmp_set_monotonic_marker().
- * @param[in] delta_ms Time delta in milliseconds.
- *
- * @return pm != NULL && now >= (*pm + delta_ms)
- */
-int
-netsnmp_ready_monotonic(const_marker_t pm, int delta_ms)
-{
-    struct timeval  now, diff, delta;
-
-    netsnmp_assert(delta_ms >= 0);
-    if (pm) {
-        netsnmp_get_monotonic_clock(&now);
-        NETSNMP_TIMERSUB(&now, (const struct timeval *) pm, &diff);
-        delta.tv_sec = delta_ms / 1000;
-        delta.tv_usec = (delta_ms % 1000) * 1000UL;
-        return timercmp(&diff, &delta, >=) ? TRUE : FALSE;
-    } else {
-        return FALSE;
-    }
-}
 
 
         /*
@@ -1106,12 +892,10 @@ netsnmp_ready_monotonic(const_marker_t pm, int delta_ms)
          */
 
 /**
- * Return the number of timeTicks since the given marker
- *
- * \deprecated Don't use in new code.
+ * Return the number of timeTicks since the given marker 
  */
 int
-marker_tticks(const_marker_t pm)
+marker_tticks(marker_t pm)
 {
     int             res;
     marker_t        now = atime_newMarker();
@@ -1121,16 +905,11 @@ marker_tticks(const_marker_t pm)
     return res / 10;            /* atime_diff works in msec, not csec */
 }
 
-#ifndef NETSNMP_FEATURE_REMOVE_TIMEVAL_TTICKS
-/**
- * \deprecated Don't use in new code.
- */
 int
-timeval_tticks(const struct timeval *tv)
+timeval_tticks(struct timeval *tv)
 {
-    return marker_tticks((const_marker_t) tv);
+    return marker_tticks((marker_t) tv);
 }
-#endif /* NETSNMP_FEATURE_REMOVE_TIMEVAL_TTICKS */
 
 /**
  * Non Windows:  Returns a pointer to the desired environment variable  
@@ -1171,9 +950,6 @@ char *netsnmp_getenv(const char *name)
   /* Next try HKCU */
   if (temp == NULL)
   {
-    if (getenv("SNMP_IGNORE_WINDOWS_REGISTRY"))
-      return NULL;
-
     if (RegOpenKeyExA(
           HKEY_CURRENT_USER, 
           "SOFTWARE\\Net-SNMP", 
@@ -1189,12 +965,13 @@ char *netsnmp_getenv(const char *name)
             NULL,               /* Just get the size */
             &key_value_size) == ERROR_SUCCESS) {
 
-        SNMP_FREE(key_value);
+        if (key_value)
+          SNMP_FREE(key_value);
 
         /* Allocate memory needed +1 to allow RegQueryValueExA to NULL terminate the
          * string data in registry is missing one (which is unlikely).
          */
-        key_value = malloc((sizeof(char) * key_value_size)+sizeof(char));
+        key_value = (char *) malloc((sizeof(char) * key_value_size)+sizeof(char));
         
         if (RegQueryValueExA(
               hKey, 
@@ -1204,7 +981,7 @@ char *netsnmp_getenv(const char *name)
               key_value, 
               &key_value_size) == ERROR_SUCCESS) {
         }
-        temp = (char *) key_value;
+        temp = key_value;
       }
       RegCloseKey(hKey);
       if (temp)
@@ -1230,12 +1007,13 @@ char *netsnmp_getenv(const char *name)
             NULL,               /* Just get the size */
             &key_value_size) == ERROR_SUCCESS) {
 
-        SNMP_FREE(key_value);
+        if (key_value)
+          SNMP_FREE(key_value);
 
         /* Allocate memory needed +1 to allow RegQueryValueExA to NULL terminate the
          * string data in registry is missing one (which is unlikely).
          */
-        key_value = malloc((sizeof(char) * key_value_size)+sizeof(char));
+        key_value = (char *) malloc((sizeof(char) * key_value_size)+sizeof(char));
         
         if (RegQueryValueExA(
               hKey, 
@@ -1245,7 +1023,7 @@ char *netsnmp_getenv(const char *name)
               key_value, 
               &key_value_size) == ERROR_SUCCESS) {
         }
-        temp = (char *) key_value;
+        temp = key_value;
 
       }
       RegCloseKey(hKey);
@@ -1265,21 +1043,6 @@ char *netsnmp_getenv(const char *name)
 #endif
 }
 
-/**
- * Set an environment variable.
- *
- * 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 variable such that it gets
- * noticed by the Net-SNMP DLL.
- */
-int netsnmp_setenv(const char *envname, const char *envval, int overwrite)
-{
-    return setenv(envname, envval, overwrite);
-}
-
 /*
  * swap the order of an inet addr string
  */
@@ -1312,65 +1075,3 @@ netsnmp_addrstr_hton(char *ptr, size_t len)
 
     return 0;
 }
-
-#ifndef NETSNMP_FEATURE_REMOVE_STRING_TIME_TO_SECS
-/**
- * Takes a time string like 4h and converts it to seconds.
- * The string time given may end in 's' for seconds (the default
- * anyway if no suffix is specified),
- * 'm' for minutes, 'h' for hours, 'd' for days, or 'w' for weeks.  The
- * upper case versions are also accepted.
- *
- * @param time_string The time string to convert.
- *
- * @return seconds converted from the string
- * @return -1  : on failure
- */
-int
-netsnmp_string_time_to_secs(const char *time_string) {
-    int secs = -1;
-    if (!time_string || !time_string[0])
-        return secs;
-
-    secs = atoi(time_string);
-
-    if (isdigit((unsigned char)time_string[strlen(time_string)-1]))
-        return secs; /* no letter specified, it's already in seconds */
-    
-    switch (time_string[strlen(time_string)-1]) {
-    case 's':
-    case 'S':
-        /* already in seconds */
-        break;
-
-    case 'm':
-    case 'M':
-        secs = secs * 60;
-        break;
-
-    case 'h':
-    case 'H':
-        secs = secs * 60 * 60;
-        break;
-
-    case 'd':
-    case 'D':
-        secs = secs * 60 * 60 * 24;
-        break;
-
-    case 'w':
-    case 'W':
-        secs = secs * 60 * 60 * 24 * 7;
-        break;
-
-    default:
-        snmp_log(LOG_ERR, "time string %s contains an invalid suffix letter\n",
-                 time_string);
-        return -1;
-    }
-
-    DEBUGMSGTL(("string_time_to_secs", "Converted time string %s to %d\n",
-                time_string, secs));
-    return secs;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_STRING_TIME_TO_SECS */
diff --git a/snmplib/transports/snmpAAL5PVCDomain.c b/snmplib/transports/snmpAAL5PVCDomain.c
deleted file mode 100644
index 5ac69a1..0000000
--- a/snmplib/transports/snmpAAL5PVCDomain.c
+++ /dev/null
@@ -1,374 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-
-#include <net-snmp/library/snmpAAL5PVCDomain.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
-#include <atm.h>
-
-#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/tools.h>
-
-
-oid netsnmp_AAL5PVCDomain[10] = { NETSNMP_ENTERPRISE_MIB, 3, 3, 3 };
-static netsnmp_tdomain aal5pvcDomain;
-
-
-/*
- * Return a string representing the address in data, or else the "far end"
- * address if data is NULL.  
- */
-
-static char *
-netsnmp_aal5pvc_fmtaddr(netsnmp_transport *t, void *data, int len)
-{
-    struct sockaddr_atmpvc *to = NULL;
-
-    if (data != NULL && len == sizeof(struct sockaddr_atmpvc)) {
-        to = (struct sockaddr_atmpvc *) data;
-    } else if (t != NULL && t->data != NULL &&
-               t->data_length == sizeof(struct sockaddr_atmpvc)) {
-        to = (struct sockaddr_atmpvc *) t->data;
-    }
-    if (to == NULL) {
-        return strdup("AAL5 PVC: unknown");
-    } else {
-        char tmp[64];
-        sprintf(tmp, "AAL5 PVC: %hd.%hd.%d", to->sap_addr.itf,
-                to->sap_addr.vpi, to->sap_addr.vci);
-        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_aal5pvc_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) {
-		break;
-	    }
-	}
-
-        if (rc >= 0) {
-            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)));
-        }
-        *opaque = NULL;
-        *olength = 0;
-    }
-    return rc;
-}
-
-
-
-static int
-netsnmp_aal5pvc_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_atmpvc)) {
-        to = (struct sockaddr *) (*opaque);
-    } else if (t != NULL && t->data != NULL &&
-               t->data_length == sizeof(struct sockaddr_atmpvc)) {
-        to = (struct sockaddr *) (t->data);
-    }
-
-    if (to != NULL && t != NULL && t->sock >= 0) {
-        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) {
-		break;
-	    }
-	}
-    }
-    return rc;
-}
-
-
-
-static int
-netsnmp_aal5pvc_close(netsnmp_transport *t)
-{
-    int rc = -1;
-
-    if (t->sock >= 0) {
-        DEBUGMSGTL(("netsnmp_aal5pvc", "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 an AAL5 PVC transport for SNMP.  Local is TRUE if addr is the local 
- * NSAP to bind to (i.e. this is a server-type session); otherwise addr is 
- * the remote NSAP to send things to.  
- */
-
-netsnmp_transport *
-netsnmp_aal5pvc_transport(struct sockaddr_atmpvc *addr, int local)
-{
-    netsnmp_transport *t = NULL;
-
-#ifdef NETSNMP_NO_LISTEN_SUPPORT
-    if (local)
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-
-    if (addr == NULL || addr->sap_family != AF_ATMPVC) {
-        return NULL;
-    }
-
-    t = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
-    if (t == NULL) {
-        return NULL;
-    }
-
-    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);
-    }
-
-    t->domain = netsnmp_AAL5PVCDomain;
-    t->domain_length =
-        sizeof(netsnmp_AAL5PVCDomain) / sizeof(netsnmp_AAL5PVCDomain[0]);
-
-    t->sock = socket(PF_ATMPVC, SOCK_DGRAM, 0);
-    if (t->sock < 0) {
-        DEBUGMSGTL(("netsnmp_aal5pvc","socket failed (%s)\n",strerror(errno)));
-        netsnmp_transport_free(t);
-        return NULL;
-    }
-    DEBUGMSGTL(("netsnmp_aal5pvc", "fd %d opened\n", t->sock));
-
-    {
-        /*
-         * Set up the QOS parameters.
-         */
-
-        struct atm_qos qos = { 0 };
-        qos.aal = ATM_AAL5;
-        qos.rxtp.traffic_class = ATM_UBR;
-        qos.rxtp.max_sdu = SNMP_MAX_LEN;    /*  Hmm -- this is a bit small?  */
-        qos.txtp = qos.rxtp;
-
-        if (setsockopt(t->sock, SOL_ATM, SO_ATMQOS, &qos, sizeof(qos)) < 0) {
-            DEBUGMSGTL(("netsnmp_aal5pvc", "setsockopt failed (%s)\n",
-                        strerror(errno)));
-            netsnmp_aal5pvc_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-    }
-
-    if (local) {
-#ifndef NETSNMP_NO_LISTEN_SUPPORT
-        t->local = (unsigned char*)malloc(8);
-        if (t->local == NULL) {
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        t->local[0] = (addr->sap_addr.itf & 0xff00) >> 8;
-        t->local[1] = (addr->sap_addr.itf & 0x00ff) >> 0;
-        t->local[2] = (addr->sap_addr.vpi & 0xff00) >> 8;
-        t->local[3] = (addr->sap_addr.vpi & 0x00ff) >> 0;
-        t->local[4] = (addr->sap_addr.vci & 0xff000000) >> 24;
-        t->local[5] = (addr->sap_addr.vci & 0x00ff0000) >> 16;
-        t->local[6] = (addr->sap_addr.vci & 0x0000ff00) >> 8;
-        t->local[7] = (addr->sap_addr.vci & 0x000000ff) >> 0;
-        t->local_length = 8;
-
-        if (bind(t->sock, (struct sockaddr *) addr,
-                 sizeof(struct sockaddr_atmpvc)) < 0) {
-            DEBUGMSGTL(("netsnmp_aal5pvc", "bind failed (%s)\n",
-                        strerror(errno)));
-            netsnmp_aal5pvc_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-#else /* NETSNMP_NO_LISTEN_SUPPORT */
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-    } else {
-        t->remote = (unsigned char*)malloc(8);
-        if (t->remote == NULL) {
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        t->remote[0] = (addr->sap_addr.itf & 0xff00) >> 8;
-        t->remote[1] = (addr->sap_addr.itf & 0x00ff) >> 0;
-        t->remote[2] = (addr->sap_addr.vpi & 0xff00) >> 8;
-        t->remote[3] = (addr->sap_addr.vpi & 0x00ff) >> 0;
-        t->remote[4] = (addr->sap_addr.vci & 0xff000000) >> 24;
-        t->remote[5] = (addr->sap_addr.vci & 0x00ff0000) >> 16;
-        t->remote[6] = (addr->sap_addr.vci & 0x0000ff00) >> 8;
-        t->remote[7] = (addr->sap_addr.vci & 0x000000ff) >> 0;
-        t->remote_length = 8;
-
-        if (connect(t->sock, (struct sockaddr *) addr,
-                    sizeof(struct sockaddr_atmpvc)) < 0) {
-            DEBUGMSGTL(("netsnmp_aal5pvc", "connect failed (%s)\n",
-                        strerror(errno)));
-            netsnmp_aal5pvc_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-    }
-
-    t->data = malloc(sizeof(struct sockaddr_atmpvc));
-    if (t->data == NULL) {
-        netsnmp_transport_free(t);
-        return NULL;
-    }
-    memcpy(t->data, addr, sizeof(struct sockaddr_atmpvc));
-    t->data_length = sizeof(struct sockaddr_atmpvc);
-
-    /*
-     * 16-bit length field in the trailer, no headers.  
-     */
-
-    t->msgMaxSize = 0xffff;
-    t->f_recv     = netsnmp_aal5pvc_recv;
-    t->f_send     = netsnmp_aal5pvc_send;
-    t->f_close    = netsnmp_aal5pvc_close;
-    t->f_accept   = NULL;
-    t->f_fmtaddr  = netsnmp_aal5pvc_fmtaddr;
-
-    return t;
-}
-
-
-
-netsnmp_transport *
-netsnmp_aal5pvc_create_tstring(const char *str, int local,
-			       const char *default_target)
-{
-    struct sockaddr_atmpvc addr;
-
-    if (str == NULL || *str == '\0')
-	str = default_target;
-
-    if (str != NULL) {
-        addr.sap_family = AF_ATMPVC;
-
-        if (sscanf(str, "%hd.%hd.%d", &(addr.sap_addr.itf),
-                   &(addr.sap_addr.vpi), &(addr.sap_addr.vci)) == 3) {
-            return netsnmp_aal5pvc_transport(&addr, local);
-        } else if (sscanf(str, "%hd.%d", &(addr.sap_addr.vpi),
-                          &(addr.sap_addr.vci)) == 2) {
-            addr.sap_addr.itf = 0;
-            return netsnmp_aal5pvc_transport(&addr, local);
-        } else if (sscanf(str, "%d", &(addr.sap_addr.vci)) == 1) {
-            addr.sap_addr.itf = 0;
-            addr.sap_addr.vpi = 0;
-            return netsnmp_aal5pvc_transport(&addr, local);
-        } else {
-            return NULL;
-        }
-    } else {
-        return NULL;
-    }
-}
-
-
-
-netsnmp_transport *
-netsnmp_aal5pvc_create_ostring(const u_char * o, size_t o_len, int local)
-{
-    struct sockaddr_atmpvc addr;
-
-    if (o_len == 8) {
-        addr.sap_family = AF_ATMPVC;
-        addr.sap_addr.itf = (o[0] << 8) + (o[1] << 0);
-        addr.sap_addr.vpi = (o[2] << 8) + (o[3] << 0);
-        addr.sap_addr.vci =
-	    (o[4] << 24) + (o[5] << 16) + (o[6] << 8) + (o[7] << 0);
-        return netsnmp_aal5pvc_transport(&addr, local);
-    }
-
-    return NULL;
-}
-
-
-
-void
-netsnmp_aal5pvc_ctor(void)
-{
-    aal5pvcDomain.name = netsnmp_AAL5PVCDomain;
-    aal5pvcDomain.name_length = sizeof(netsnmp_AAL5PVCDomain) / sizeof(oid);
-    aal5pvcDomain.prefix = (const char**)calloc(3, sizeof(char *));
-    aal5pvcDomain.prefix[0] = "aal5pvc";
-    aal5pvcDomain.prefix[1] = "pvc";
-
-    aal5pvcDomain.f_create_from_tstring     = NULL;
-    aal5pvcDomain.f_create_from_tstring_new = netsnmp_aal5pvc_create_tstring;
-    aal5pvcDomain.f_create_from_ostring     = netsnmp_aal5pvc_create_ostring;
-
-    netsnmp_tdomain_register(&aal5pvcDomain);
-}
diff --git a/snmplib/transports/snmpAliasDomain.c b/snmplib/transports/snmpAliasDomain.c
deleted file mode 100644
index eb50cad..0000000
--- a/snmplib/transports/snmpAliasDomain.c
+++ /dev/null
@@ -1,116 +0,0 @@
-#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>
-
-#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_DMALLOC_H
-#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>
-
-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) {
-    char aliasname[SPRINT_MAX_LEN];
-    char transportdef[SPRINT_MAX_LEN];
-    /* copy the first word (the alias) out and then assume the rest is
-       transport */
-    line = copy_nword(line, aliasname, sizeof(aliasname));
-    line = copy_nword(line, transportdef, sizeof(transportdef));
-    if (line)
-        config_perror("more data than expected");
-    netsnmp_data_list_add_node(&alias_memory,
-                               netsnmp_create_data_list(aliasname,
-                                                        strdup(transportdef),
-                                                        &free_wrapper));
-}
-
-void
-free_alias_config(void) {
-    netsnmp_free_all_list_data(alias_memory);
-    alias_memory = NULL;
-}
-
-/*
- * Open a ALIAS-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_alias_create_tstring(const char *str, int local,
-			   const char *default_target)
-{
-    const char *aliasdata;
-
-    aliasdata = (const char*)netsnmp_get_list_data(alias_memory, str);
-    if (!aliasdata) {
-        snmp_log(LOG_ERR, "No alias found for %s\n", str);
-        return NULL;
-    }
-
-    return netsnmp_tdomain_transport(aliasdata,local,default_target);
-}
-
-
-
-netsnmp_transport *
-netsnmp_alias_create_ostring(const u_char * o, size_t o_len, int local)
-{
-    fprintf(stderr, "make ostring\n");
-    return NULL;
-}
-
-void
-netsnmp_alias_ctor(void)
-{
-    aliasDomain.name = netsnmp_snmpALIASDomain;
-    aliasDomain.name_length = sizeof(netsnmp_snmpALIASDomain) / sizeof(oid);
-    aliasDomain.prefix = (const char **)calloc(2, sizeof(char *));
-    aliasDomain.prefix[0] = "alias";
-
-    aliasDomain.f_create_from_tstring     = NULL;
-    aliasDomain.f_create_from_tstring_new = netsnmp_alias_create_tstring;
-    aliasDomain.f_create_from_ostring     = netsnmp_alias_create_ostring;
-
-    netsnmp_tdomain_register(&aliasDomain);
-
-    register_config_handler("snmp", "alias", parse_alias_config,
-                            free_alias_config, "NAME TRANSPORT_DEFINITION");
-}
diff --git a/snmplib/transports/snmpCallbackDomain.c b/snmplib/transports/snmpCallbackDomain.c
deleted file mode 100644
index 95018b8..0000000
--- a/snmplib/transports/snmpCallbackDomain.c
+++ /dev/null
@@ -1,628 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-
-#include <net-snmp/library/snmpCallbackDomain.h>
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <ctype.h>
-#include <errno.h>
-
-#ifdef WIN32
-#include <net-snmp/library/winpipe.h>
-#endif
-#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_SYS_UN_H
-#include <sys/un.h>
-#endif
-#if HAVE_IO_H
-#include <io.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/config_api.h>
-#include <net-snmp/utilities.h>
-
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmp_api.h>
-#include <net-snmp/library/snmp_client.h>
-
-#ifndef NETSNMP_STREAM_QUEUE_LEN
-#define NETSNMP_STREAM_QUEUE_LEN  5
-#endif
-
-#ifdef NETSNMP_TRANSPORT_CALLBACK_DOMAIN
-
-static netsnmp_transport_list *trlist = NULL;
-
-static int      callback_count = 0;
-
-typedef struct callback_hack_s {
-    void           *orig_transport_data;
-    netsnmp_pdu    *pdu;
-} callback_hack;
-
-typedef struct callback_queue_s {
-    int             callback_num;
-    netsnmp_callback_pass *item;
-    struct callback_queue_s *next, *prev;
-} callback_queue;
-
-callback_queue *thequeue;
-
-static netsnmp_transport *
-find_transport_from_callback_num(int num)
-{
-    static netsnmp_transport_list *ptr;
-    for (ptr = trlist; ptr; ptr = ptr->next)
-        if (((netsnmp_callback_info *) ptr->transport->data)->
-            callback_num == num)
-            return ptr->transport;
-    return NULL;
-}
-
-static void
-callback_debug_pdu(const char *ourstring, netsnmp_pdu *pdu)
-{
-    netsnmp_variable_list *vb;
-    int             i = 1;
-    DEBUGMSGTL((ourstring,
-                "PDU: command = %d, errstat = %ld, errindex = %ld\n",
-                pdu->command, pdu->errstat, pdu->errindex));
-    for (vb = pdu->variables; vb; vb = vb->next_variable) {
-        DEBUGMSGTL((ourstring, "  var %d:", i++));
-        DEBUGMSGVAR((ourstring, vb));
-        DEBUGMSG((ourstring, "\n"));
-    }
-}
-
-void
-callback_push_queue(int num, netsnmp_callback_pass *item)
-{
-    callback_queue *newitem = SNMP_MALLOC_TYPEDEF(callback_queue);
-    callback_queue *ptr;
-
-    if (newitem == NULL)
-        return;
-    newitem->callback_num = num;
-    newitem->item = item;
-    if (thequeue) {
-        for (ptr = thequeue; ptr && ptr->next; ptr = ptr->next) {
-        }
-        ptr->next = newitem;
-        newitem->prev = ptr;
-    } else {
-        thequeue = newitem;
-    }
-    DEBUGIF("dump_send_callback_transport") {
-        callback_debug_pdu("dump_send_callback_transport", item->pdu);
-    }
-}
-
-netsnmp_callback_pass *
-callback_pop_queue(int num)
-{
-    netsnmp_callback_pass *cp;
-    callback_queue *ptr;
-
-    for (ptr = thequeue; ptr; ptr = ptr->next) {
-        if (ptr->callback_num == num) {
-            if (ptr->prev) {
-                ptr->prev->next = ptr->next;
-            } else {
-                thequeue = ptr->next;
-            }
-            if (ptr->next) {
-                ptr->next->prev = ptr->prev;
-            }
-            cp = ptr->item;
-            SNMP_FREE(ptr);
-            DEBUGIF("dump_recv_callback_transport") {
-                callback_debug_pdu("dump_recv_callback_transport",
-                                   cp->pdu);
-            }
-            return cp;
-        }
-    }
-    return NULL;
-}
-
-/*
- * Return a string representing the address in data, or else the "far end"
- * address if data is NULL.  
- */
-
-char *
-netsnmp_callback_fmtaddr(netsnmp_transport *t, void *data, int len)
-{
-    char buf[SPRINT_MAX_LEN];
-    netsnmp_callback_info *mystuff;
-
-    if (!t)
-        return strdup("callback: unknown");
-
-    mystuff = (netsnmp_callback_info *) t->data;
-
-    if (!mystuff)
-        return strdup("callback: unknown");
-
-    snprintf(buf, SPRINT_MAX_LEN, "callback: %d on fd %d",
-             mystuff->callback_num, mystuff->pipefds[0]);
-    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...  
- */
-
-int
-netsnmp_callback_recv(netsnmp_transport *t, void *buf, int size,
-		      void **opaque, int *olength)
-{
-    int rc = -1;
-    char newbuf[1];
-    netsnmp_callback_info *mystuff = (netsnmp_callback_info *) t->data;
-
-    DEBUGMSGTL(("transport_callback", "hook_recv enter\n"));
-
-    while (rc < 0) {
-#ifdef WIN32
-	rc = recvfrom(mystuff->pipefds[0], newbuf, 1, 0, NULL, 0);
-#else
-	rc = read(mystuff->pipefds[0], newbuf, 1);
-#endif
-	if (rc < 0 && errno != EINTR) {
-	    break;
-	}
-    }
-    if (rc > 0)
-        memset(buf, 0, rc);
-
-    if (mystuff->linkedto) {
-        /*
-         * we're the client.  We don't need to do anything. 
-         */
-    } else {
-        /*
-         * malloc the space here, but it's filled in by
-         * snmp_callback_created_pdu() below 
-         */
-        int            *returnnum = (int *) calloc(1, sizeof(int));
-        *opaque = returnnum;
-        *olength = sizeof(int);
-    }
-    DEBUGMSGTL(("transport_callback", "hook_recv exit\n"));
-    return rc;
-}
-
-
-
-int
-netsnmp_callback_send(netsnmp_transport *t, void *buf, int size,
-		      void **opaque, int *olength)
-{
-    int from, rc = -1;
-    netsnmp_callback_info *mystuff = (netsnmp_callback_info *) t->data;
-    netsnmp_callback_pass *cp;
-
-    /*
-     * extract the pdu from the hacked buffer 
-     */
-    netsnmp_transport *other_side;
-    callback_hack  *ch = (callback_hack *) * opaque;
-    netsnmp_pdu    *pdu = ch->pdu;
-    *opaque = ch->orig_transport_data;
-    SNMP_FREE(ch);
-
-    DEBUGMSGTL(("transport_callback", "hook_send enter\n"));
-
-    cp = SNMP_MALLOC_TYPEDEF(netsnmp_callback_pass);
-    if (!cp)
-        return -1;
-
-    cp->pdu = snmp_clone_pdu(pdu);
-    if (cp->pdu->transport_data) {
-        /*
-         * not needed and not properly freed later 
-         */
-        SNMP_FREE(cp->pdu->transport_data);
-    }
-
-    if (cp->pdu->flags & UCD_MSG_FLAG_EXPECT_RESPONSE)
-        cp->pdu->flags ^= UCD_MSG_FLAG_EXPECT_RESPONSE;
-
-    /*
-     * push the sent pdu onto the stack 
-     */
-    /*
-     * AND send a bogus byte to the remote callback receiver's pipe 
-     */
-    if (mystuff->linkedto) {
-        /*
-         * we're the client, send it to the parent 
-         */
-        cp->return_transport_num = mystuff->callback_num;
-
-        other_side = find_transport_from_callback_num(mystuff->linkedto);
-        if (!other_side) {
-            snmp_free_pdu(cp->pdu);
-            SNMP_FREE(cp);
-            return -1;
-        }
-
-	while (rc < 0) {
-#ifdef WIN32
-	    rc = sendto(((netsnmp_callback_info*) other_side->data)->pipefds[1], " ", 1, 0, NULL, 0);
-#else
-	    rc = write(((netsnmp_callback_info *)other_side->data)->pipefds[1],
-		       " ", 1);
-#endif
-	    if (rc < 0 && errno != EINTR) {
-		break;
-	    }
-	}
-        callback_push_queue(mystuff->linkedto, cp);
-        /*
-         * we don't need the transport data any more 
-         */
-        SNMP_FREE(*opaque);
-    } else {
-        /*
-         * we're the server, send it to the person that sent us the request 
-         */
-        from = **((int **) opaque);
-        /*
-         * we don't need the transport data any more 
-         */
-        SNMP_FREE(*opaque);
-        other_side = find_transport_from_callback_num(from);
-        if (!other_side) {
-            snmp_free_pdu(cp->pdu);
-            SNMP_FREE(cp);
-            return -1;
-        }
-	while (rc < 0) {
-#ifdef WIN32
-	    rc = sendto(((netsnmp_callback_info*) other_side->data)->pipefds[1], " ", 1, 0, NULL, 0);
-#else
-	    rc = write(((netsnmp_callback_info *)other_side->data)->pipefds[1],
-		       " ", 1);
-#endif
-	    if (rc < 0 && errno != EINTR) {
-		break;
-	    }
-	}
-        callback_push_queue(from, cp);
-    }
-
-    DEBUGMSGTL(("transport_callback", "hook_send exit\n"));
-    return 0;
-}
-
-
-
-int
-netsnmp_callback_close(netsnmp_transport *t)
-{
-    int             rc;
-    netsnmp_callback_info *mystuff = (netsnmp_callback_info *) t->data;
-    DEBUGMSGTL(("transport_callback", "hook_close enter\n"));
-
-#ifdef WIN32
-    rc  = closesocket(mystuff->pipefds[0]);
-    rc |= closesocket(mystuff->pipefds[1]);
-#else
-    rc  = close(mystuff->pipefds[0]);
-    rc |= close(mystuff->pipefds[1]);
-#endif
-
-    rc |= netsnmp_transport_remove_from_list(&trlist, t);
-
-    DEBUGMSGTL(("transport_callback", "hook_close exit\n"));
-    return rc;
-}
-
-
-
-int
-netsnmp_callback_accept(netsnmp_transport *t)
-{
-    DEBUGMSGTL(("transport_callback", "hook_accept enter\n"));
-    DEBUGMSGTL(("transport_callback", "hook_accept exit\n"));
-    return -1;
-}
-
-
-
-/*
- * Open a Callback-domain 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
- * (and we make up a temporary name for the local end of the
- * connection).  
- */
-
-netsnmp_transport *
-netsnmp_callback_transport(int to)
-{
-
-    netsnmp_transport *t = NULL;
-    netsnmp_callback_info *mydata;
-    int             rc;
-
-    /*
-     * transport 
-     */
-    t = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
-    if (!t)
-        return NULL;
-
-    /*
-     * our stuff 
-     */
-    mydata = SNMP_MALLOC_TYPEDEF(netsnmp_callback_info);
-    if (!mydata) {
-        SNMP_FREE(t);
-        return NULL;
-    }
-    mydata->linkedto = to;
-    mydata->callback_num = ++callback_count;
-    mydata->data = NULL;
-    t->data = mydata;
-
-#ifdef WIN32
-    rc = create_winpipe_transport(mydata->pipefds);
-#else
-    rc = pipe(mydata->pipefds);
-#endif
-    t->sock = mydata->pipefds[0];
-
-    if (rc) {
-        SNMP_FREE(mydata);
-        SNMP_FREE(t);
-        return NULL;
-    }
-
-    t->f_recv    = netsnmp_callback_recv;
-    t->f_send    = netsnmp_callback_send;
-    t->f_close   = netsnmp_callback_close;
-    t->f_accept  = netsnmp_callback_accept;
-    t->f_fmtaddr = netsnmp_callback_fmtaddr;
-
-    netsnmp_transport_add_to_list(&trlist, t);
-
-    if (to)
-        DEBUGMSGTL(("transport_callback", "initialized %d linked to %d\n",
-                    mydata->callback_num, to));
-    else
-        DEBUGMSGTL(("transport_callback",
-                    "initialized master listening on %d\n",
-                    mydata->callback_num));
-    return t;
-}
-
-int
-netsnmp_callback_hook_parse(netsnmp_session * sp,
-                            netsnmp_pdu *pdu,
-                            u_char * packetptr, size_t len)
-{
-    if (SNMP_MSG_RESPONSE == pdu->command ||
-        SNMP_MSG_REPORT == pdu->command)
-        pdu->flags |= UCD_MSG_FLAG_RESPONSE_PDU;
-    else
-        pdu->flags &= (~UCD_MSG_FLAG_RESPONSE_PDU);
-
-    return SNMP_ERR_NOERROR;
-}
-
-int
-netsnmp_callback_hook_build(netsnmp_session * sp,
-                            netsnmp_pdu *pdu, u_char * ptk, size_t * len)
-{
-    /*
-     * very gross hack, as this is passed later to the transport_send
-     * function 
-     */
-    callback_hack  *ch = SNMP_MALLOC_TYPEDEF(callback_hack);
-    if (ch == NULL)
-        return -1;
-    DEBUGMSGTL(("transport_callback", "hook_build enter\n"));
-    ch->pdu = pdu;
-    ch->orig_transport_data = pdu->transport_data;
-    pdu->transport_data = ch;
-    switch (pdu->command) {
-    case SNMP_MSG_GETBULK:
-        if (pdu->max_repetitions < 0) {
-            sp->s_snmp_errno = SNMPERR_BAD_REPETITIONS;
-            return -1;
-        }
-        if (pdu->non_repeaters < 0) {
-            sp->s_snmp_errno = SNMPERR_BAD_REPEATERS;
-            return -1;
-        }
-        break;
-    case SNMP_MSG_RESPONSE:
-    case SNMP_MSG_TRAP:
-    case SNMP_MSG_TRAP2:
-        pdu->flags &= (~UCD_MSG_FLAG_EXPECT_RESPONSE);
-        /*
-         * Fallthrough
-         */
-    default:
-        if (pdu->errstat == SNMP_DEFAULT_ERRSTAT)
-            pdu->errstat = 0;
-        if (pdu->errindex == SNMP_DEFAULT_ERRINDEX)
-            pdu->errindex = 0;
-        break;
-    }
-
-    /*
-     * Copy missing values from session defaults
-     */
-    switch (pdu->version) {
-#ifndef NETSNMP_DISABLE_SNMPV1
-    case SNMP_VERSION_1:
-#endif
-#ifndef NETSNMP_DISABLE_SNMPV2C
-    case SNMP_VERSION_2c:
-#endif
-#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
-        if (pdu->community_len == 0) {
-            if (sp->community_len == 0) {
-                sp->s_snmp_errno = SNMPERR_BAD_COMMUNITY;
-                return -1;
-            }
-            pdu->community = (u_char *) malloc(sp->community_len);
-            if (pdu->community == NULL) {
-                sp->s_snmp_errno = SNMPERR_MALLOC;
-                return -1;
-            }
-            memmove(pdu->community,
-                    sp->community, sp->community_len);
-            pdu->community_len = sp->community_len;
-        }
-        break;
-#endif
-    case SNMP_VERSION_3:
-        if (pdu->securityNameLen == 0) {
-	  pdu->securityName = (char *)malloc(sp->securityNameLen);
-            if (pdu->securityName == NULL) {
-                sp->s_snmp_errno = SNMPERR_MALLOC;
-                return -1;
-            }
-            memmove(pdu->securityName,
-                     sp->securityName, sp->securityNameLen);
-            pdu->securityNameLen = sp->securityNameLen;
-        }
-        if (pdu->securityModel == -1)
-            pdu->securityModel = sp->securityModel;
-        if (pdu->securityLevel == 0)
-            pdu->securityLevel = sp->securityLevel;
-        /* WHAT ELSE ?? */
-    }
-    ptk[0] = 0;
-    *len = 1;
-    DEBUGMSGTL(("transport_callback", "hook_build exit\n"));
-    return 1;
-}
-
-int
-netsnmp_callback_check_packet(u_char * pkt, size_t len)
-{
-    return 1;
-}
-
-netsnmp_pdu    *
-netsnmp_callback_create_pdu(netsnmp_transport *transport,
-                            void *opaque, size_t olength)
-{
-    netsnmp_pdu    *pdu;
-    netsnmp_callback_pass *cp =
-        callback_pop_queue(((netsnmp_callback_info *) transport->data)->
-                           callback_num);
-    if (!cp)
-        return NULL;
-    pdu = cp->pdu;
-    pdu->transport_data = opaque;
-    pdu->transport_data_length = olength;
-    if (opaque)                 /* if created, we're the server */
-        *((int *) opaque) = cp->return_transport_num;
-    SNMP_FREE(cp);
-    return pdu;
-}
-
-netsnmp_session *
-netsnmp_callback_open(int attach_to,
-                      int (*return_func) (int op,
-                                          netsnmp_session * session,
-                                          int reqid, netsnmp_pdu *pdu,
-                                          void *magic),
-                      int (*fpre_parse) (netsnmp_session *,
-                                         struct netsnmp_transport_s *,
-                                         void *, int),
-                      int (*fpost_parse) (netsnmp_session *, netsnmp_pdu *,
-                                          int))
-{
-    netsnmp_session callback_sess, *callback_ss;
-    netsnmp_transport *callback_tr;
-
-    callback_tr = netsnmp_callback_transport(attach_to);
-    snmp_sess_init(&callback_sess);
-    callback_sess.callback = return_func;
-    if (attach_to) {
-        /*
-         * client 
-         */
-        /*
-         * trysess.community = (u_char *) callback_ss; 
-         */
-    } else {
-        callback_sess.isAuthoritative = SNMP_SESS_AUTHORITATIVE;
-    }
-    callback_sess.remote_port = 0;
-    callback_sess.retries = 0;
-    callback_sess.timeout = 30000000;
-    callback_sess.version = SNMP_DEFAULT_VERSION;       /* (mostly) bogus */
-    callback_ss = snmp_add_full(&callback_sess, callback_tr,
-                                fpre_parse,
-                                netsnmp_callback_hook_parse, fpost_parse,
-                                netsnmp_callback_hook_build,
-                                NULL,
-                                netsnmp_callback_check_packet,
-                                netsnmp_callback_create_pdu);
-    if (callback_ss)
-        callback_ss->local_port =
-            ((netsnmp_callback_info *) callback_tr->data)->callback_num;
-    return callback_ss;
-}
-
-
-
-void
-netsnmp_clear_callback_list(void)
-{
-
-    netsnmp_transport_list *list = trlist, *next = NULL;
-    netsnmp_transport *tr = NULL;
-
-    DEBUGMSGTL(("callback_clear", "called netsnmp_callback_clear_list()\n"));
-    while (list != NULL) {
-	next = list->next;
-	tr = list->transport;
-
-	if (tr != NULL) {
-	    tr->f_close(tr);
-  	    netsnmp_transport_remove_from_list(&trlist, tr);
-	    netsnmp_transport_free(tr);
-	}
-	list = next;
-    }
-    trlist = NULL;
-
-}
-
-#endif /* NETSNMP_TRANSPORT_CALLBACK_DOMAIN */
diff --git a/snmplib/transports/snmpDTLSUDPDomain.c b/snmplib/transports/snmpDTLSUDPDomain.c
deleted file mode 100644
index 9c56d19..0000000
--- a/snmplib/transports/snmpDTLSUDPDomain.c
+++ /dev/null
@@ -1,1788 +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.
- */
-/* 
- * 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/net-snmp-features.h>
-
-netsnmp_feature_require(cert_util)
-netsnmp_feature_require(sockaddr_size)
-
-#include <net-snmp/library/snmpDTLSUDPDomain.h>
-#include <net-snmp/library/snmpUDPIPv6Domain.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;
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-static int openssl_addr_index6 = 0;
-#endif
-
-/* 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 */
-   netsnmp_sockaddr_storage sas;
-   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(netsnmp_sockaddr_storage *from_addr) {
-    bio_cache *cachep = NULL;
-    
-    for(cachep = biocache; cachep; cachep = cachep->next) {
-
-        if (cachep->sas.sa.sa_family != from_addr->sa.sa_family)
-            continue;
-
-        if ((from_addr->sa.sa_family == AF_INET) &&
-            ((cachep->sas.sin.sin_addr.s_addr !=
-              from_addr->sin.sin_addr.s_addr) ||
-             (cachep->sas.sin.sin_port != from_addr->sin.sin_port)))
-                continue;
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-        else if ((from_addr->sa.sa_family == AF_INET6) &&
-                 ((cachep->sas.sin6.sin6_port != from_addr->sin6.sin6_port) ||
-                  (cachep->sas.sin6.sin6_scope_id !=
-                   from_addr->sin6.sin6_scope_id) ||
-                  (memcmp(cachep->sas.sin6.sin6_addr.s6_addr,
-                          from_addr->sin6.sin6_addr.s6_addr,
-                          sizeof(from_addr->sin6.sin6_addr.s6_addr)) != 0)))
-            continue;
-#endif
-        /* found an existing connection */
-        break;
-    }
-    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,
-                            netsnmp_sockaddr_storage *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;
-
-    if (remote_addr->sa.sa_family == AF_INET)
-        memcpy(&cachep->sas.sin, &remote_addr->sin, sizeof(remote_addr->sin));
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-    else if (remote_addr->sa.sa_family == AF_INET6)
-        memcpy(&cachep->sas.sin6, &remote_addr->sin6, sizeof(remote_addr->sin6));
-#endif
-    else
-        DIEHERE("unknown address family");
-
-    /* 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,
-                         netsnmp_sockaddr_storage *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;
-}
-
-static netsnmp_indexed_addr_pair *
-_extract_addr_pair(netsnmp_transport *t, void *opaque, int olen)
-{
-    netsnmp_indexed_addr_pair *addr_pair = NULL;
-
-    if (opaque && olen == sizeof(netsnmp_tmStateReference)) {
-        netsnmp_tmStateReference *tmStateRef =
-            (netsnmp_tmStateReference *) opaque;
-
-        if (tmStateRef->have_addresses)
-            addr_pair = &(tmStateRef->addresses);
-    }
-    if ((NULL == addr_pair) && (NULL != t)) {
-        if (t->data != NULL &&
-            t->data_length == sizeof(netsnmp_indexed_addr_pair))
-            addr_pair = (netsnmp_indexed_addr_pair *) (t->data);
-        else if (t->data != NULL &&
-                 t->data_length == sizeof(_netsnmpTLSBaseData)) {
-            _netsnmpTLSBaseData *tlsdata = (_netsnmpTLSBaseData *) t->data;
-            addr_pair = (netsnmp_indexed_addr_pair *) (tlsdata->addr);
-        }
-    }
-
-    return addr_pair;
-}
-
-static struct sockaddr *
-_find_remote_sockaddr(netsnmp_transport *t, void *opaque, int olen, int *socklen)
-{
-    netsnmp_indexed_addr_pair *addr_pair = _extract_addr_pair(t, opaque, olen);
-    struct sockaddr *sa = NULL;
-
-    if (NULL == addr_pair)
-        return NULL;
-
-    sa = &addr_pair->remote_addr.sa;
-    *socklen = netsnmp_sockaddr_size(sa);
-    return sa;
-}
-
-
-/*
- * 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. */
-        int socksize;
-        struct sockaddr *sa;
-        sa = _find_remote_sockaddr(t, NULL, 0, &socksize);
-        if (NULL == sa)
-            sa = &cachep->sas.sa;
-        socksize = netsnmp_sockaddr_size(sa);
-        rc2 = t->base_transport->f_send(t, outbuf, outsize, (void**)&sa,
-                                        &socksize);
-        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;
-    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) {
-        char *opaque = NULL;
-        int olen;
-        rc = t->base_transport->f_recv(t, buf, size, (void**)&opaque, &olen);
-        if (rc > 0)
-            memcpy(from, opaque, olen);
-        SNMP_FREE(opaque);
-        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 {
-#ifndef NETSNMP_NO_LISTEN_SUPPORT
-            /* 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"));
-#else /* NETSNMP_NO_LISTEN_SUPPORT */
-            return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-        }
-    }
-
-    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 =
-            t->base_transport->f_fmtaddr(t, 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;
-    bio_cache *cachep = NULL;
-    netsnmp_tmStateReference *tmStateRef = NULL;
-    u_char outbuf[65535];
-    _netsnmpTLSBaseData *tlsdata = NULL;
-    int socksize;
-    struct sockaddr *sa;
-    
-    DEBUGTRACETOK("9:dtlsudp");
-    DEBUGMSGTL(("dtlsudp", "sending %d bytes\n", size));
-
-    if (NULL == t || t->sock <= 0) {
-        snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONINVALIDCACHES);
-        snmp_log(LOG_ERR, "invalid netsnmp_dtlsudp_send usage\n");
-        return -1;
-    }
-
-    /* determine remote addresses */
-    addr_pair = _extract_addr_pair(t, opaque ? *opaque : NULL,
-                                   olength ? *olength : 0);
-    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;
-    }
-
-    /* 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.
-    */
-    if (opaque != NULL && *opaque != NULL &&
-        olength != NULL && *olength == sizeof(netsnmp_tmStateReference))
-        tmStateRef = (netsnmp_tmStateReference *) *opaque;
-
-
-    /* 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 = t->base_transport->f_fmtaddr(t, (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;
-    }
-    socksize = netsnmp_sockaddr_size(&cachep->sas.sa);
-    sa = &cachep->sas.sa;
-    rc = t->base_transport->f_send(t, outbuf, rc, (void**)&sa, &socksize);
-
-    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->addr)
-            cachep = find_bio_cache(&tlsbase->addr->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)
-{
-    int              sa_len;
-    struct sockaddr *sa = _find_remote_sockaddr(t, data, len, &sa_len);
-    if (sa) {
-        data = sa;
-        len = sa_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.  
- */
-
-static netsnmp_transport *
-_transport_common(netsnmp_transport *t, int local)
-{
-    char *tmp = NULL;
-    int tmp_len;
-
-    DEBUGTRACETOK("9:dtlsudp");
-
-    if (NULL == t)
-        return NULL;
-
-    /** save base transport for clients; need in send/recv functions later */
-    if (t->data) { /* don't copy data */
-        tmp = t->data;
-        tmp_len = t->data_length;
-        t->data = NULL;
-    }
-    t->base_transport = netsnmp_transport_copy(t);
-
-    if (tmp) {
-        t->data = tmp;
-        t->data_length = tmp_len;
-    }
-    if (NULL != t->data &&
-        t->data_length == sizeof(netsnmp_indexed_addr_pair)) {
-        _netsnmpTLSBaseData *tlsdata =
-            netsnmp_tlsbase_allocate_tlsdata(t, local);
-        tlsdata->addr = t->data;
-        t->data = tlsdata;
-        t->data_length = sizeof(_netsnmpTLSBaseData);
-    }
-
-    /*
-     * Set Domain
-     */
-    t->domain = netsnmpDTLSUDPDomain;                                     
-    t->domain_length = netsnmpDTLSUDPDomain_len;     
-
-    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;
-}
-
-netsnmp_transport *
-netsnmp_dtlsudp_transport(struct sockaddr_in *addr, int local)
-{
-    netsnmp_transport *t = NULL;
-
-    DEBUGTRACETOK("dtlsudp");
-
-    t = netsnmp_udp_transport(addr, local);
-    if (NULL == t)
-        return NULL;
-
-    _transport_common(t, local);
-
-    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");
-    }
-
-    return t;
-}
-
-
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-
-char *
-netsnmp_dtlsudp6_fmtaddr(netsnmp_transport *t, void *data, int len)
-{
-    int              sa_len;
-    struct sockaddr *sa = _find_remote_sockaddr(t, data, len, &sa_len);
-    if (sa) {
-        data = sa;
-        len = sa_len;
-    }
-
-    return netsnmp_ipv6_fmtaddr("DTLSUDP6", 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_dtlsudp6_transport(struct sockaddr_in6 *addr, int local)
-{
-    netsnmp_transport *t = NULL;
-
-    DEBUGTRACETOK("dtlsudp");
-
-    t = netsnmp_udp6_transport(addr, local);
-    if (NULL == t)
-        return NULL;
-
-    _transport_common(t, local);
-
-    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 */        
-
-    t->f_fmtaddr       = netsnmp_dtlsudp6_fmtaddr;
-
-    return t;
-}
-#endif
-
-
-netsnmp_transport *
-netsnmp_dtlsudp_create_tstring(const char *str, int isserver,
-                               const char *default_target)
-{
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-    struct sockaddr_in6 addr6;
-#endif
-    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);
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-    else if (netsnmp_sockaddr_in6_2(&addr6, str, default_target))
-        t = netsnmp_dtlsudp6_transport(&addr6, isserver);
-#endif
-    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);
-    }
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-    else if (o_len == 18) {
-        struct sockaddr_in6 addr6;
-        unsigned short porttmp = (o[16] << 8) + o[17];
-        addr6.sin6_family = AF_INET6;
-        memcpy((u_char *) & (addr6.sin6_addr.s6_addr), o, 4);
-        addr6.sin6_port = htons(porttmp);
-        return netsnmp_dtlsudp6_transport(&addr6, local);
-    }
-#endif
-    return NULL;
-}
-
-void
-netsnmp_dtlsudp_ctor(void)
-{
-    char indexname[] = "_netsnmp_addr_info";
-    static const char *prefixes[] = { "dtlsudp", "dtls"
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-                                      , "dtlsudp6", "dtls6"
-#endif
-    };
-    int i, num_prefixes = sizeof(prefixes) / sizeof(char *);
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-    char indexname6[] = "_netsnmp_addr_info6";
-#endif
-
-    DEBUGMSGTL(("dtlsudp", "registering DTLS constructor\n"));
-
-    /* config settings */
-
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-    if (!openssl_addr_index6)
-        openssl_addr_index6 =
-            SSL_get_ex_new_index(0, indexname6, NULL, NULL, NULL);
-#endif
-
-    dtlsudpDomain.name = netsnmpDTLSUDPDomain;
-    dtlsudpDomain.name_length = netsnmpDTLSUDPDomain_len;
-    dtlsudpDomain.prefix = (const char**)calloc(num_prefixes + 1,
-                                                sizeof(char *));
-    for (i = 0; i < num_prefixes; ++ i)
-        dtlsudpDomain.prefix[i] = prefixes[i];
-
-    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;
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-       struct sockaddr_in6 s6;
-#endif
-} _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->sas;
-
-    /* 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;
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-    case AF_INET6:
-        length += sizeof(struct in6_addr);
-        length += sizeof(peer->s6.sin6_port);
-        break;
-#endif
-    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;
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-    case AF_INET6:
-        memcpy(buffer,
-               &peer->s6.sin6_port,
-               sizeof(peer->s6.sin6_port));
-        memcpy(buffer + sizeof(peer->s6.sin6_port),
-               &peer->s6.sin6_addr,
-               sizeof(struct in6_addr));
-        break;
-#endif
-    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->sas;
-
-    /* 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;
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-    case AF_INET6:
-        length += sizeof(struct in6_addr);
-        length += sizeof(peer->s6.sin6_port);
-        break;
-#endif
-    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;
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-    case AF_INET6:
-        memcpy(buffer,
-               &peer->s6.sin6_port,
-               sizeof(peer->s6.sin6_port));
-        memcpy(buffer + sizeof(peer->s6.sin6_port),
-               &peer->s6.sin6_addr,
-               sizeof(struct in6_addr));
-        break;
-#endif
-    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/transports/snmpIPXDomain.c b/snmplib/transports/snmpIPXDomain.c
deleted file mode 100644
index 24c13a4..0000000
--- a/snmplib/transports/snmpIPXDomain.c
+++ /dev/null
@@ -1,467 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-
-#include <net-snmp/library/snmpIPXDomain.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_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/tools.h>
-
-#define SNMP_IPX_DEFAULT_PORT	36879   /*  Specified in RFC 1420.  */
-static netsnmp_tdomain ipxDomain;
-
-/*
- * Return a string representing the address in data, or else the "far end"
- * address if data is NULL.  
- */
-
-static char *
-netsnmp_ipx_fmtaddr(netsnmp_transport *t, void *data, int len)
-{
-    struct sockaddr_ipx *to = NULL;
-
-    if (data != NULL && len == sizeof(struct sockaddr_ipx)) {
-        to = (struct sockaddr_ipx *) data;
-    } else if (t != NULL && t->data != NULL) {
-        to = (struct sockaddr_ipx *) t->data;
-    }
-    if (to == NULL) {
-        return strdup("IPX: unknown");
-    } else {
-        char tmp[64];
-        sprintf(tmp, "IPX: %08X:%02X%02X%02X%02X%02X%02X/%hu",
-                ntohl(to->sipx_network), to->sipx_node[0],
-                to->sipx_node[1], to->sipx_node[2], to->sipx_node[3],
-                to->sipx_node[4], to->sipx_node[5], ntohs(to->sipx_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_ipx_recv(netsnmp_transport *t, void *buf, int size,
-		 void **opaque, int *olength)
-{
-    int		     rc = -1;
-    socklen_t	     fromlen = sizeof(struct sockaddr);
-    struct sockaddr *from;
-
-    if (t != NULL && t->sock >= 0) {
-        from = (struct sockaddr *)malloc(sizeof(struct sockaddr_ipx));
-        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_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)));
-        }
-        *opaque = (void *) from;
-        *olength = sizeof(struct sockaddr_ipx);
-    }
-    return rc;
-}
-
-
-
-static int
-netsnmp_ipx_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_ipx)) {
-        to = (struct sockaddr *) (*opaque);
-    } else if (t != NULL && t->data != NULL &&
-               t->data_length == sizeof(struct sockaddr_ipx)) {
-        to = (struct sockaddr *) (t->data);
-    }
-
-    if (to != NULL && t != NULL && t->sock >= 0) {
-        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) {
-		break;
-	    }
-	}
-    }
-    return rc;
-}
-
-
-
-static int
-netsnmp_ipx_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;
-}
-
-
-
-/*
- * Open a IPX-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_ipx_transport(struct sockaddr_ipx *addr, int local)
-{
-    netsnmp_transport *t = NULL;
-    int             rc = 0;
-
-#ifdef NETSNMP_NO_LISTEN_SUPPORT
-    if (local)
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-
-    if (addr == NULL || addr->sipx_family != AF_IPX) {
-        return NULL;
-    }
-
-    t = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
-    if (t == NULL) {
-        return NULL;
-    }
-
-    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);
-    }
-
-    t->domain = netsnmpIPXDomain;
-    t->domain_length = netsnmpIPXDomain_len;
-
-    t->sock = socket(AF_IPX, SOCK_DGRAM, AF_IPX);
-    if (t->sock < 0) {
-        netsnmp_transport_free(t);
-        return NULL;
-    }
-
-    if (local) {
-#ifndef NETSNMP_NO_LISTEN_SUPPORT
-        t->local = (unsigned char*)malloc(12);
-        if (t->local == NULL) {
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        memcpy(&(t->local[00]), (u_char *) & (addr->sipx_network), 4);
-        memcpy(&(t->local[04]), (u_char *) & (addr->sipx_node), 6);
-        memcpy(&(t->local[10]), (u_char *) & (addr->sipx_port), 2);
-        t->local_length = 12;
-
-        /*
-         * This session is inteneded as a server, so we must bind on to the
-         * given address (which may include a particular network and/or node
-         * address, but definitely includes a port number).
-         */
-
-        rc = bind(t->sock, (struct sockaddr *) addr,
-                  sizeof(struct sockaddr));
-        if (rc != 0) {
-            netsnmp_ipx_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        t->data = NULL;
-        t->data_length = 0;
-#else /* NETSNMP_NO_LISTEN_SUPPORT */
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-    } else {
-        t->remote = (unsigned char*)malloc(12);
-        if (t->remote == NULL) {
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        memcpy(&(t->remote[00]), (u_char *) & (addr->sipx_network), 4);
-        memcpy(&(t->remote[04]), (u_char *) & (addr->sipx_node), 6);
-        memcpy(&(t->remote[10]), (u_char *) & (addr->sipx_port), 2);
-        t->remote_length = 12;
-
-        /*
-         * This is a client session.  Save the address in the
-         * transport-specific data pointer for later use by snmp_ipx_send.
-         */
-
-        t->data = malloc(sizeof(struct sockaddr_ipx));
-        if (t->data == NULL) {
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        memcpy(t->data, addr, sizeof(struct sockaddr_ipx));
-        t->data_length = sizeof(struct sockaddr_ipx);
-    }
-
-    /*
-     * Maximum size of an IPX PDU is 576 bytes including a 30-byte header.
-     * Ridiculous!  
-     */
-
-    t->msgMaxSize = 576 - 30;
-    t->f_recv     = netsnmp_ipx_recv;
-    t->f_send     = netsnmp_ipx_send;
-    t->f_close    = netsnmp_ipx_close;
-    t->f_accept   = NULL;
-    t->f_fmtaddr  = netsnmp_ipx_fmtaddr;
-
-    return t;
-}
-
-
-
-/*
- * Attempt to parse a string of the form [%08x]:%12x[/%d] where the parts
- * are the network number, the node address and the port in that order.  
- */
-
-int
-netsnmp_sockaddr_ipx2(struct sockaddr_ipx *addr, const char *peername,
-		      const char *default_target)
-{
-    char           *input = NULL, *def = NULL;
-    const char     *network, *node, *port;
-    char           *tmp;
-    unsigned long   i;
-
-    if (addr == NULL) {
-        return 0;
-    }
-    memset(addr, 0, sizeof(struct sockaddr_ipx));
-
-    DEBUGMSGTL(("netsnmp_sockaddr_ipx",
-		"addr %p, peername \"%s\" default_target \"%s\"\n",
-                addr, peername ? peername : "[NIL]",
-		default_target ? default_target : "[NIL]"));
-
-    addr->sipx_family = AF_IPX;
-    addr->sipx_type = 4;        /*  Specified in RFC 1420.  */
-
-    network = input = strdup(peername ? peername : "");
-    tmp = strchr(input, ':');
-    if (tmp != NULL) {
-        DEBUGMSGTL(("netsnmp_sockaddr_ipx", "Node identified\n"));
-        *tmp++ = '\0';
-	node = tmp;
-        tmp = strchr(tmp, '/');
-    } else {
-        node = NULL;
-        tmp = strchr(input, '/');
-    }
-    if (tmp != NULL) {
-        DEBUGMSGTL(("netsnmp_sockaddr_ipx", "Port identified\n"));
-        *tmp++ = '\0';
-        port = tmp;
-    } else
-        port = NULL;
-
-    DEBUGMSGTL(("netsnmp_sockaddr_ipx", "Address: %s:%s/%s\n",
-                network ? network : "[NIL]", node ? node : "[NIL]",
-                port ? port : "[NIL]"));
-
-    def = strdup(default_target ? default_target : "");
-    if (network == NULL || *network == '\0')
-        network = def;
-    tmp = strchr(def, ':');
-    if (tmp != NULL) {
-        *tmp++ = '\0';
-	if (node == NULL || *node == '\0')
-            node = tmp;
-        tmp = strchr(tmp, '/');
-    } else
-        tmp = strchr(def, '/');
-    if (tmp != NULL) {
-        *tmp++ = '\0';
-        if (port == NULL || *port == '\0')
-            port = tmp;
-    }
-
-    DEBUGMSGTL(("netsnmp_sockaddr_ipx", "Address: %s:%s/%s\n",
-                network ? network : "[NIL]", node ? node : "[NIL]",
-                port ? port : "[NIL]"));
-
-    if (network == NULL || *network == '\0')
-        network = "0";
-
-    if (node == NULL || *node == '\0')
-        node = "000000000000";
-
-    if (port == NULL || *port == '\0')
-        port = __STRING(SNMP_IPX_DEFAULT_PORT);
-
-    DEBUGMSGTL(("netsnmp_sockaddr_ipx", "Address: %s:%s/%s\n",
-                network ? network : "[NIL]", node ? node : "[NIL]",
-                port ? port : "[NIL]"));
-
-    if(sscanf(network, "%8lx%*c", &i) == 1) {
-        DEBUGMSGTL(("netsnmp_sockaddr_ipx", "network parsed okay\n"));
-        addr->sipx_network = htonl(i);
-    } else {
-        DEBUGMSGTL(("netsnmp_sockaddr_ipx",
-                    "failed to parse network part of address\n"));
-        free(def);
-        free(input);
-        return 0;
-    }
-
-    if(sscanf(node, "%2hhx%2hhx%2hhx%2hhx%2hhx%2hhx%*c",
-              &addr->sipx_node[0], &addr->sipx_node[1],
-              &addr->sipx_node[2], &addr->sipx_node[3],
-              &addr->sipx_node[4], &addr->sipx_node[5]) == 6) {
-        DEBUGMSGTL(("netsnmp_sockaddr_ipx", "node parsed okay\n"));
-    } else {
-        DEBUGMSGTL(("netsnmp_sockaddr_ipx",
-                    "failed to parse node part of address\n"));
-        free(def);
-        free(input);
-        return 0;
-    }
-
-    if(sscanf(port, "%lu%*c", &i) == 1) {
-        DEBUGMSGTL(("netsnmp_sockaddr_ipx", "port parsed okay\n"));
-        addr->sipx_port = htons(i);
-    } else {
-        DEBUGMSGTL(("netsnmp_sockaddr_ipx",
-                    "failed to parse port part of address\n"));
-        free(def);
-        free(input);
-        return 0;
-    }
-
-    free(def);
-    free(input);
-    return 1;
-}
-
-
-
-int
-netsnmp_sockaddr_ipx(struct sockaddr_ipx *addr, const char *peername)
-{
-    return netsnmp_sockaddr_ipx2(addr, peername, NULL);
-}
-
-
-
-netsnmp_transport *
-netsnmp_ipx_create_tstring(const char *str, int local,
-			   const char *default_target)
-{
-    struct sockaddr_ipx addr;
-
-    if (netsnmp_sockaddr_ipx2(&addr, str, default_target)) {
-        return netsnmp_ipx_transport(&addr, local);
-    } else {
-        return NULL;
-    }
-}
-
-
-
-netsnmp_transport *
-netsnmp_ipx_create_ostring(const u_char * o, size_t o_len, int local)
-{
-    struct sockaddr_ipx addr;
-
-    if (o_len == 12) {
-        addr.sipx_family = AF_IPX;
-        memcpy((u_char *) & (addr.sipx_network), &(o[00]), 4);
-        memcpy((u_char *) & (addr.sipx_node), &(o[04]), 6);
-        memcpy((u_char *) & (addr.sipx_port), &(o[10]), 2);
-        return netsnmp_ipx_transport(&addr, local);
-    }
-    return NULL;
-}
-
-
-
-void
-netsnmp_ipx_ctor(void)
-{
-    ipxDomain.name = netsnmpIPXDomain;
-    ipxDomain.name_length = netsnmpIPXDomain_len;
-    ipxDomain.prefix = (const char**)calloc(2, sizeof(char *));
-    ipxDomain.prefix[0] = "ipx";
-
-    ipxDomain.f_create_from_tstring     = NULL;
-    ipxDomain.f_create_from_tstring_new = netsnmp_ipx_create_tstring;
-    ipxDomain.f_create_from_ostring     = netsnmp_ipx_create_ostring;
-
-    netsnmp_tdomain_register(&ipxDomain);
-}
diff --git a/snmplib/transports/snmpIPv4BaseDomain.c b/snmplib/transports/snmpIPv4BaseDomain.c
deleted file mode 100644
index 41a6cb6..0000000
--- a/snmplib/transports/snmpIPv4BaseDomain.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/* 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.sin_addr),
-                     ntohs(addr_pair->local_addr.sin.sin_port));
-        } else if ( t && t->flags & NETSNMP_TRANSPORT_FLAG_HOSTNAME ) {
-            /* XXX: hmm...  why isn't this prefixed */
-            /* assuming intentional */
-            host = netsnmp_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.sin_addr),
-                     ntohs(addr_pair->local_addr.sin.sin_port));
-        }
-    }
-    tmp[sizeof(tmp)-1] = '\0';
-    return strdup(tmp);
-}
-
diff --git a/snmplib/transports/snmpIPv6BaseDomain.c b/snmplib/transports/snmpIPv6BaseDomain.c
deleted file mode 100644
index 9bad950..0000000
--- a/snmplib/transports/snmpIPv6BaseDomain.c
+++ /dev/null
@@ -1,426 +0,0 @@
-/* IPV6 base transport support functions
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#ifdef NETSNMP_ENABLE_IPV6
-
-#include <net-snmp/types.h>
-#include <net-snmp/library/snmpIPv6BaseDomain.h>
-#include <net-snmp/library/system.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_ipv6", "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 = netsnmp_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 = netsnmp_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);
-}
-
-#endif /* NETSNMP_ENABLE_IPV6 */
diff --git a/snmplib/transports/snmpSSHDomain.c b/snmplib/transports/snmpSSHDomain.c
deleted file mode 100644
index a9ed81f..0000000
--- a/snmplib/transports/snmpSSHDomain.c
+++ /dev/null
@@ -1,1010 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-#include <net-snmp/library/snmpSSHDomain.h>
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <errno.h>
-
-#include <libssh2.h>
-#include <libssh2_sftp.h>
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-#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_SYS_UN_H
-#include <sys/un.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 <pwd.h>
-
-#ifndef MAXPATHLEN
-#warn no system max path length detected
-#define MAXPATHLEN 2048
-#endif
-
-#include <net-snmp/types.h>
-#include <net-snmp/output_api.h>
-#include <net-snmp/library/tools.h>
-#include <net-snmp/library/system.h>
-#include <net-snmp/library/default_store.h>
-
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmpIPv4BaseDomain.h>
-#include <net-snmp/library/snmpSocketBaseDomain.h>
-#include <net-snmp/library/read_config.h>
-
-netsnmp_feature_require(user_information)
-
-#define MAX_NAME_LENGTH 127
-
-#define NETSNMP_SSHTOSNMP_VERSION1      1
-#define NETSNMP_MAX_SSHTOSNMP_VERSION   1
-
-#define DEFAULT_SOCK_NAME "sshdomainsocket"
-
-typedef struct netsnmp_ssh_addr_pair_s {
-    struct sockaddr_in remote_addr;
-    struct in_addr local_addr;
-    LIBSSH2_SESSION *session;
-    LIBSSH2_CHANNEL *channel;
-    char username[MAX_NAME_LENGTH+1];
-    struct sockaddr_un unix_socket_end;
-    char socket_path[MAXPATHLEN];
-} netsnmp_ssh_addr_pair;
-
-const oid netsnmp_snmpSSHDomain[] = { TRANSPORT_DOMAIN_SSH_IP };
-static netsnmp_tdomain sshDomain;
-
-#define SNMPSSHDOMAIN_USE_EXTERNAL_PIPE 1
-
-/*
- * Not static since it is needed here as well as in snmpUDPDomain, but not
- * public either
- */
-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.  
- */
-
-static char *
-netsnmp_ssh_fmtaddr(netsnmp_transport *t, void *data, int len)
-{
-    netsnmp_ssh_addr_pair *addr_pair = NULL;
-
-    if (data != NULL && len == sizeof(netsnmp_ssh_addr_pair)) {
-	addr_pair = (netsnmp_ssh_addr_pair *) data;
-    } else if (t != NULL && t->data != NULL) {
-	addr_pair = (netsnmp_ssh_addr_pair *) t->data;
-    }
-
-    if (addr_pair == NULL) {
-        return strdup("SSH: unknown");
-    } else {
-        struct sockaddr_in *to = NULL;
-	char tmp[64];
-        to = (struct sockaddr_in *) &(addr_pair->remote_addr);
-        if (to == NULL) {
-            return strdup("SSH: unknown");
-        }
-
-        sprintf(tmp, "SSH: [%s]:%hd",
-                inet_ntoa(to->sin_addr), ntohs(to->sin_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_ssh_recv(netsnmp_transport *t, void *buf, int size,
-		 void **opaque, int *olength)
-{
-    int rc = -1;
-    netsnmp_tmStateReference *tmStateRef = NULL;
-    netsnmp_ssh_addr_pair *addr_pair = NULL;
-    int iamclient = 0;
-
-    DEBUGMSGTL(("ssh", "at the top of ssh_recv\n"));
-    DEBUGMSGTL(("ssh", "t=%p\n", t));
-    if (t != NULL && t->data != NULL) {
-	addr_pair = (netsnmp_ssh_addr_pair *) t->data;
-    }
-
-    DEBUGMSGTL(("ssh", "addr_pair=%p\n", addr_pair));
-    if (t != NULL && addr_pair && addr_pair->channel) {
-        DEBUGMSGTL(("ssh", "t=%p, addr_pair=%p, channel=%p\n",
-                    t, addr_pair, addr_pair->channel));
-        iamclient = 1;
-	while (rc < 0) {
-	    rc = libssh2_channel_read(addr_pair->channel, buf, size);
-	    if (rc < 0) {  /* XXX: from tcp; ssh equiv?:  && errno != EINTR */
-		DEBUGMSGTL(("ssh", "recv fd %d err %d (\"%s\")\n",
-			    t->sock, errno, strerror(errno)));
-		break;
-	    }
-	    DEBUGMSGTL(("ssh", "recv fd %d got %d bytes\n",
-			t->sock, rc));
-	}
-    } else if (t != NULL) {
-
-#ifdef SNMPSSHDOMAIN_USE_EXTERNAL_PIPE
-
-        socklen_t       tolen = sizeof(struct sockaddr_un);
-
-        if (t != NULL && t->sock >= 0) {
-            struct sockaddr *to;
-            to = (struct sockaddr *) SNMP_MALLOC_STRUCT(sockaddr_un);
-            if (NULL == to) {
-                *opaque = NULL;
-                *olength = 0;
-                return -1;
-            }
-
-            if(getsockname(t->sock, to, &tolen) != 0){
-                free(to);
-                *opaque = NULL;
-                *olength = 0;
-                return -1;
-            };
-
-            if (addr_pair->username[0] == '\0') {
-                /* we don't have a username yet, so this is the first message */
-                struct ucred *remoteuser;
-                struct msghdr msg;
-                struct iovec iov[1];
-                char cmsg[CMSG_SPACE(sizeof(remoteuser))+4096];
-                struct cmsghdr *cmsgptr;
-                u_char *charbuf  = buf;
-
-                iov[0].iov_base = buf;
-                iov[0].iov_len = size;
-
-                memset(&msg, 0, sizeof msg);
-                msg.msg_iov = iov;
-                msg.msg_iovlen = 1;
-                msg.msg_control = &cmsg;
-                msg.msg_controllen = sizeof(cmsg);
-                
-                rc = recvmsg(t->sock, &msg, MSG_DONTWAIT); /* use DONTWAIT? */
-                if (rc <= 0) {
-                    return rc;
-                }
-
-                /* we haven't received the starting info */
-                if ((u_char) charbuf[0] > NETSNMP_SSHTOSNMP_VERSION1) {
-                    /* unsupported connection version */
-                    snmp_log(LOG_ERR, "received unsupported sshtosnmp version: %d\n", charbuf[0]);
-                    return -1;
-                }
-
-                DEBUGMSGTL(("ssh", "received first msg over SSH; internal SSH protocol version %d\n", charbuf[0]));
-
-                for (cmsgptr = CMSG_FIRSTHDR(&msg); cmsgptr != NULL; cmsgptr = CMSG_NXTHDR(&msg, cmsgptr)) {
-                    if (cmsgptr->cmsg_level == SOL_SOCKET && cmsgptr->cmsg_type == SCM_CREDENTIALS) {
-                        /* received credential info */
-                        struct passwd *user_pw;
-
-                        remoteuser = (struct ucred *) CMSG_DATA(cmsgptr);
-
-                        if ((user_pw = getpwuid(remoteuser->uid)) == NULL) {
-                            snmp_log(LOG_ERR, "No user found for uid %d\n",
-                                remoteuser->uid);
-                            return -1;
-                        }
-                        if (strlen(user_pw->pw_name) >
-                            sizeof(addr_pair->username)-1) {
-                            snmp_log(LOG_ERR,
-                                     "User name '%s' too long for snmp\n",
-                                     user_pw->pw_name);
-                            return -1;
-                        }
-                        strlcpy(addr_pair->username, user_pw->pw_name,
-                                sizeof(addr_pair->username));
-                    }
-                    DEBUGMSGTL(("ssh", "Setting user name to %s\n",
-                                addr_pair->username));
-                }
-
-                if (addr_pair->username[0] == '\0') {
-                    snmp_log(LOG_ERR,
-                             "failed to extract username from sshd connected unix socket\n");
-                    return -1;
-                }
-
-                if (rc == 1) {
-                    /* the only packet we received was the starting one */
-                    t->flags |= NETSNMP_TRANSPORT_FLAG_EMPTY_PKT;
-                    return 0;
-                }
-
-                rc -= 1;
-                memmove(charbuf, &charbuf[1], rc);
-            } else {
-                while (rc < 0) {
-                    rc = recvfrom(t->sock, buf, size, 0, NULL, NULL);
-                    if (rc < 0 && errno != EINTR) {
-                        DEBUGMSGTL(("ssh", "recv fd %d err %d (\"%s\")\n",
-                                    t->sock, errno, strerror(errno)));
-                        return rc;
-                    }
-                    *opaque = (void*)to;
-                    *olength = sizeof(struct sockaddr_un);
-                }
-            }
-            DEBUGMSGTL(("ssh", "recv fd %d got %d bytes\n",
-                        t->sock, rc));
-        }
-        
-#else /* we're called directly by sshd and use stdin/out */
-
-        struct passwd *user_pw;
-
-        iamclient = 0;
-        /* we're on the server side and should read from stdin */
-        while (rc < 0) {
-            rc = read(STDIN_FILENO, buf, size);
-            if (rc < 0 && errno != EINTR) {
-                DEBUGMSGTL(("ssh",
-                            " read on stdin failed: %d (\"%s\")\n",
-                            errno, strerror(errno)));
-                break;
-            }
-            if (rc == 0) {
-                /* 0 input is probably bad since we selected on it */
-                DEBUGMSGTL(("ssh", "got a 0 read on stdin\n"));
-                return -1;
-            }
-            DEBUGMSGTL(("ssh", "read on stdin got %d bytes\n", rc));
-        }
-
-/* XXX: need to check the username, but addr_pair doesn't exist! */
-        /*
-        DEBUGMSGTL(("ssh", "current username=%s\n", c));
-        if (addr_pair->username[0] == '\0') {
-            if ((user_pw = getpwuid(getuid())) == NULL) {
-                snmp_log(LOG_ERR, "No user found for uid %d\n", getuid());
-                return -1;
-            }
-            if (strlen(user_pw->pw_name) > sizeof(addr_pair->username)-1) {
-                snmp_log(LOG_ERR, "User name '%s' too long for snmp\n",
-                         user_pw->pw_name);
-                return -1;
-            }
-            strlcpy(addr_pair->username, user_pw->pw_name,
-                    sizeof(addr_pair->username));
-        }
-        */
-
-#endif /* ! SNMPSSHDOMAIN_USE_EXTERNAL_PIPE */
-    }
-
-    /* create a tmStateRef cache */
-    tmStateRef = SNMP_MALLOC_TYPEDEF(netsnmp_tmStateReference);
-
-    /* secshell document says were always authpriv, even if NULL algorithms */
-    /* ugh! */
-    /* XXX: disallow NULL in our implementations */
-    tmStateRef->transportSecurityLevel = SNMP_SEC_LEVEL_AUTHPRIV;
-
-    /* XXX: figure out how to get the specified local secname from the session */
-    if (iamclient && 0) {
-        /* XXX: we're on the client; we should have named the
-           connection ourselves...  pull this from session somehow? */
-        strlcpy(tmStateRef->securityName, addr_pair->username,
-                sizeof(tmStateRef->securityName));
-    } else {
-#ifdef SNMPSSHDOMAIN_USE_EXTERNAL_PIPE
-        strlcpy(tmStateRef->securityName, addr_pair->username,
-                sizeof(tmStateRef->securityName));
-#else /* we're called directly by sshd and use stdin/out */
-        /* we're on the server... */
-        /* XXX: this doesn't copy properly and can get pointer
-           reference issues */
-        if (strlen(getenv("USER")) > 127) {
-            /* ruh roh */
-            /* XXX: clean up */
-            return -1;
-            exit;
-        }
-
-        /* XXX: detect and throw out overflow secname sizes rather
-           than truncating. */
-        strlcpy(tmStateRef->securityName, getenv("USER"),
-                sizeof(tmStateRef->securityName));
-#endif /* ! SNMPSSHDOMAIN_USE_EXTERNAL_PIPE */
-    }
-    tmStateRef->securityName[sizeof(tmStateRef->securityName)-1] = '\0';
-    tmStateRef->securityNameLen = strlen(tmStateRef->securityName);
-    *opaque = tmStateRef;
-    *olength = sizeof(netsnmp_tmStateReference);
-
-    return rc;
-}
-
-
-
-static int
-netsnmp_ssh_send(netsnmp_transport *t, void *buf, int size,
-		 void **opaque, int *olength)
-{
-    int rc = -1;
-
-    netsnmp_ssh_addr_pair *addr_pair = NULL;
-    netsnmp_tmStateReference *tmStateRef = NULL;
-
-    if (t != NULL && t->data != NULL) {
-	addr_pair = (netsnmp_ssh_addr_pair *) t->data;
-    }
-
-    if (opaque != NULL && *opaque != NULL &&
-        *olength == sizeof(netsnmp_tmStateReference)) {
-        tmStateRef = (netsnmp_tmStateReference *) *opaque;
-    }
-
-    if (!tmStateRef) {
-        /* this is now an error according to my memory in the recent draft */
-        snmp_log(LOG_ERR, "netsnmp_ssh_send wasn't passed a valid tmStateReference\n");
-        return -1;
-    }
-
-    if (NULL != t && NULL != addr_pair && NULL != addr_pair->channel) {
-        if (addr_pair->username[0] == '\0') {
-            strlcpy(addr_pair->username, tmStateRef->securityName,
-                    sizeof(addr_pair->username));
-        } else if (strcmp(addr_pair->username, tmStateRef->securityName) != 0 ||
-                   strlen(addr_pair->username) != tmStateRef->securityNameLen) {
-            /* error!  they must always match */
-            snmp_log(LOG_ERR, "netsnmp_ssh_send was passed a tmStateReference with a securityName not equal to previous messages\n");
-            return -1;
-        }
-	while (rc < 0) {
-	    rc = libssh2_channel_write(addr_pair->channel, buf, size);
-	    if (rc < 0) { /* XXX:  && errno != EINTR */
-		break;
-	    }
-	}
-    } else if (t != NULL) {
-#ifdef SNMPSSHDOMAIN_USE_EXTERNAL_PIPE
-
-	while (rc < 0) {
-            rc = sendto(t->sock, buf, size, 0, NULL, 0);
-            
-            if (rc < 0 && errno != EINTR) {
-                break;
-            }
-        }
-
-#else /* we're called directly by sshd and use stdin/out */
-        /* on the server; send to stdout */
-	while (rc < 0) {
-	    rc = write(STDOUT_FILENO, buf, size);
-            fflush(stdout);
-	    if (rc < 0 && errno != EINTR) { /* XXX:  && errno != EINTR */
-		break;
-	    }
-	}
-#endif
-    }
-
-    return rc;
-}
-
-
-
-static int
-netsnmp_ssh_close(netsnmp_transport *t)
-{
-    int rc = -1;
-    netsnmp_ssh_addr_pair *addr_pair = NULL;
-
-    if (t != NULL && t->data != NULL) {
-	addr_pair = (netsnmp_ssh_addr_pair *) t->data;
-    }
-
-    if (t != NULL && addr_pair && t->sock >= 0) {
-        DEBUGMSGTL(("ssh", "close fd %d\n", t->sock));
-
-        if (addr_pair->channel) {
-            libssh2_channel_close(addr_pair->channel);
-            libssh2_channel_free(addr_pair->channel);
-            addr_pair->channel = NULL;
-        }
-
-        if (addr_pair->session) {
-            libssh2_session_disconnect(addr_pair->session, "Normal Shutdown");
-            libssh2_session_free(addr_pair->session);
-            addr_pair->session = NULL;
-        }
-
-#ifndef HAVE_CLOSESOCKET
-        rc = close(t->sock);
-#else
-        rc = closesocket(t->sock);
-#endif
-        t->sock = -1;
-
-#ifdef SNMPSSHDOMAIN_USE_EXTERNAL_PIPE
-
-        close(t->sock);
-        
-        if (!addr_pair->session && !addr_pair->channel) {
-            /* unix socket based connection */
-            close(t->sock);
-
-            /* XXX: make configurable */
-            unlink(addr_pair->socket_path);
-        }
-
-#else /* we're called directly by sshd and use stdin/out */
-
-        /* on the server: close stdin/out */
-        close(STDIN_FILENO);
-        close(STDOUT_FILENO);
-#endif /* ! SNMPSSHDOMAIN_USE_EXTERNAL_PIPE */
-
-    } else {
-
-#ifndef SNMPSSHDOMAIN_USE_EXTERNAL_PIPE
-        /* on the server: close stdin/out */
-        close(STDIN_FILENO);
-        close(STDOUT_FILENO);
-#endif /* ! SNMPSSHDOMAIN_USE_EXTERNAL_PIPE */
-
-    }
-    return rc;
-}
-
-
-
-static int
-netsnmp_ssh_accept(netsnmp_transport *t)
-{
-#ifdef SNMPSSHDOMAIN_USE_EXTERNAL_PIPE
-
-    /* much of this is duplicated from snmpUnixDomain.c */
-
-    netsnmp_ssh_addr_pair *addr_pair;    
-    int                    newsock   = -1;
-    struct sockaddr       *farend    = NULL;
-    socklen_t              farendlen = sizeof(struct sockaddr_un);
-
-
-    if (t != NULL && t->sock >= 0) {
-        addr_pair = SNMP_MALLOC_TYPEDEF(netsnmp_ssh_addr_pair);
-
-        if (addr_pair == NULL) {
-            /*
-             * Indicate that the acceptance of this socket failed.
-             */
-            DEBUGMSGTL(("ssh", "accept: malloc failed\n"));
-            return -1;
-        }
-
-        farend = (struct sockaddr *) &addr_pair->unix_socket_end;
-
-        newsock = accept(t->sock, farend, &farendlen);
-
-        /* set the SO_PASSCRED option so we can receive the remote uid */
-        {
-            int one = 1;
-            setsockopt(newsock, SOL_SOCKET, SO_PASSCRED, (void *) &one,
-                       sizeof(one));
-        }
-
-        if (newsock < 0) {
-            DEBUGMSGTL(("ssh","accept failed rc %d errno %d \"%s\"\n",
-                        newsock, errno, strerror(errno)));
-            free(addr_pair);
-            return newsock;
-        }
-
-        if (t->data != NULL) {
-            free(t->data);
-        }
-
-        DEBUGMSGTL(("ssh", "accept succeeded (farend %p len %d)\n",
-                    farend, farendlen));
-        t->data = addr_pair;
-        t->data_length = sizeof(netsnmp_ssh_addr_pair);
-        netsnmp_sock_buffer_set(newsock, SO_SNDBUF, 1, 0);
-        netsnmp_sock_buffer_set(newsock, SO_RCVBUF, 1, 0);
-        return newsock;
-    } else {
-        return -1;
-    }
-
-#else /* we're called directly by sshd and use stdin/out */
-    /* we don't need to do anything; server side uses stdin/out */
-    /* XXX: check that we're an ssh connection */
-    
-    return STDIN_FILENO; /* return stdin */
-#endif /* ! SNMPSSHDOMAIN_USE_EXTERNAL_PIPE */
-
-}
-
-
-
-/*
- * Open a SSH-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_ssh_transport(struct sockaddr_in *addr, int local)
-{
-    netsnmp_transport *t = NULL;
-    netsnmp_ssh_addr_pair *addr_pair = NULL;
-    int rc = 0;
-    int i, auth_pw = 0;
-    const char *fingerprint;
-    char *userauthlist;
-    struct sockaddr_un *unaddr;
-    const char *sockpath =
-        netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                              NETSNMP_DS_LIB_SSHTOSNMP_SOCKET);
-    char tmpsockpath[MAXPATHLEN];
-
-#ifdef NETSNMP_NO_LISTEN_SUPPORT
-    if (local)
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-
-    if (addr == NULL || addr->sin_family != AF_INET) {
-        return NULL;
-    }
-
-    t = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
-    if (t == NULL) {
-        return NULL;
-    }
-
-    t->domain = netsnmp_snmpSSHDomain;
-    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);
-    if (addr_pair == NULL) {
-        netsnmp_transport_free(t);
-        return NULL;
-    }
-    t->data = addr_pair;
-    t->data_length = sizeof(netsnmp_ssh_addr_pair);
-
-    if (local) {
-#ifndef NETSNMP_NO_LISTEN_SUPPORT
-#ifdef SNMPSSHDOMAIN_USE_EXTERNAL_PIPE
-
-        /* XXX: set t->local and t->local_length */
-
-
-        t->flags |= NETSNMP_TRANSPORT_FLAG_LISTEN;
-
-        unaddr = &addr_pair->unix_socket_end;
-
-        /* open a unix domain socket */
-        /* XXX: get data from the transport def for it's location */
-        unaddr->sun_family = AF_UNIX;
-        if (NULL == sockpath) {
-            sprintf(tmpsockpath, "%s/%s", get_persistent_directory(),
-                    DEFAULT_SOCK_NAME);
-            sockpath = tmpsockpath;
-        }
-
-        strcpy(unaddr->sun_path, sockpath);
-        strcpy(addr_pair->socket_path, sockpath);
-
-        t->sock = socket(PF_UNIX, SOCK_STREAM, 0);
-        if (t->sock < 0) {
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-
-        /* set the SO_PASSCRED option so we can receive the remote uid */
-        {
-            int one = 1;
-            setsockopt(t->sock, SOL_SOCKET, SO_PASSCRED, (void *) &one,
-                       sizeof(one));
-        }
-
-        unlink(unaddr->sun_path);
-        rc = bind(t->sock, (struct sockaddr *) unaddr, SUN_LEN(unaddr));
-        if (rc != 0) {
-            DEBUGMSGTL(("netsnmp_ssh_transport",
-                        "couldn't bind \"%s\", errno %d (%s)\n",
-                        unaddr->sun_path, errno, strerror(errno)));
-            netsnmp_ssh_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-
-
-        /* set the socket permissions */
-        {
-            /*
-             * Apply any settings to the ownership/permissions of the
-             * Sshdomain socket
-             */
-            int sshdomain_sock_perm =
-                netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID,
-                                   NETSNMP_DS_SSHDOMAIN_SOCK_PERM);
-            int sshdomain_sock_user =
-                netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID,
-                                   NETSNMP_DS_SSHDOMAIN_SOCK_USER);
-            int sshdomain_sock_group =
-                netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID,
-                                   NETSNMP_DS_SSHDOMAIN_SOCK_GROUP);
-
-            DEBUGMSGTL(("ssh", "here: %s, %d, %d, %d\n",
-                        unaddr->sun_path,
-                        sshdomain_sock_perm, sshdomain_sock_user,
-                        sshdomain_sock_group));
-            if (sshdomain_sock_perm != 0) {
-                DEBUGMSGTL(("ssh", "Setting socket perms to %d\n",
-                            sshdomain_sock_perm));
-                chmod(unaddr->sun_path, sshdomain_sock_perm);
-            }
-
-            if (sshdomain_sock_user || sshdomain_sock_group) {
-                /*
-                 * If either of user or group haven't been set,
-                 *  then leave them unchanged.
-                 */
-                if (sshdomain_sock_user == 0 )
-                    sshdomain_sock_user = -1;
-                if (sshdomain_sock_group == 0 )
-                    sshdomain_sock_group = -1;
-                DEBUGMSGTL(("ssh", "Setting socket user/group to %d/%d\n",
-                            sshdomain_sock_user, sshdomain_sock_group));
-                chown(unaddr->sun_path,
-                      sshdomain_sock_user, sshdomain_sock_group);
-            }
-        }
-
-        rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
-        if (rc != 0) {
-            DEBUGMSGTL(("netsnmp_ssh_transport",
-                        "couldn't listen to \"%s\", errno %d (%s)\n",
-                        unaddr->sun_path, errno, strerror(errno)));
-            netsnmp_ssh_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        
-
-#else /* we're called directly by sshd and use stdin/out */
-        /* for ssh on the server side we've been launched so bind to
-           stdin/out */
-
-        /* nothing to do */
-
-        /* XXX: verify we're inside ssh */
-        t->sock = STDIN_FILENO;
-#endif /* ! SNMPSSHDOMAIN_USE_EXTERNAL_PIPE */
-#else /* NETSNMP_NO_LISTEN_SUPPORT */
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-    } else {
-        char *username;
-        char *keyfilepub;
-        char *keyfilepriv;
-        
-        /* use the requested user name */
-        /* XXX: default to the current user name on the system like ssh does */
-        username = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                         NETSNMP_DS_LIB_SSH_USERNAME);
-        if (!username || 0 == *username) {
-            snmp_log(LOG_ERR, "You must specify a ssh username to use.  See the snmp.conf manual page\n");
-            return NULL;
-        }
-
-        /* use the requested public key file */
-        keyfilepub = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                           NETSNMP_DS_LIB_SSH_PUBKEY);
-        if (!keyfilepub || 0 == *keyfilepub) {
-            /* XXX: default to ~/.ssh/id_rsa.pub */
-            snmp_log(LOG_ERR, "You must specify a ssh public key file to use.  See the snmp.conf manual page\n");
-            return NULL;
-        }
-
-        /* use the requested private key file */
-        keyfilepriv = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                            NETSNMP_DS_LIB_SSH_PRIVKEY);
-        if (!keyfilepriv || 0 == *keyfilepriv) {
-            /* XXX: default to keyfilepub without the .pub suffix */
-            snmp_log(LOG_ERR, "You must specify a ssh private key file to use.  See the snmp.conf manual page\n");
-            return NULL;
-        }
-
-        /* xxx: need an ipv6 friendly one too (sigh) */
-
-        /* XXX: not ideal when structs don't actually match size wise */
-        memcpy(&(addr_pair->remote_addr), addr, sizeof(struct sockaddr_in));
-
-        t->sock = socket(PF_INET, SOCK_STREAM, 0);
-        if (t->sock < 0) {
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-
-        t->remote = (u_char *)malloc(6);
-        if (t->remote == NULL) {
-            netsnmp_ssh_close(t);
-            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;
-
-        /*
-         * This is a client-type session, so attempt to connect to the far
-         * end.  We don't go non-blocking here because it's not obvious what
-         * you'd then do if you tried to do snmp_sends before the connection
-         * had completed.  So this can block.
-         */
-
-        rc = connect(t->sock, (struct sockaddr *)addr,
-		     sizeof(struct sockaddr));
-
-        if (rc < 0) {
-            netsnmp_ssh_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-
-        /*
-         * Allow user to override the send and receive buffers. Default is
-         * to use os default.  Don't worry too much about errors --
-         * just plough on regardless.  
-         */
-        netsnmp_sock_buffer_set(t->sock, SO_SNDBUF, local, 0);
-        netsnmp_sock_buffer_set(t->sock, SO_RCVBUF, local, 0);
-
-        /* open the SSH session and channel */
-        addr_pair->session = libssh2_session_init();
-        if (libssh2_session_startup(addr_pair->session, t->sock)) {
-          shutdown:
-            snmp_log(LOG_ERR, "Failed to establish an SSH session\n");
-            netsnmp_ssh_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-
-        /* At this point we havn't authenticated, The first thing to
-           do is check the hostkey's fingerprint against our known
-           hosts Your app may have it hard coded, may go to a file,
-           may present it to the user, that's your call
-         */
-        fingerprint =
-            libssh2_hostkey_hash(addr_pair->session, LIBSSH2_HOSTKEY_HASH_MD5);
-        DEBUGMSGTL(("ssh", "Fingerprint: "));
-        for(i = 0; i < 16; i++) {
-            DEBUGMSG(("ssh", "%02x",
-                      (unsigned char)fingerprint[i]));
-        }
-        DEBUGMSG(("ssh", "\n"));
-
-        /* check what authentication methods are available */
-        userauthlist =
-            libssh2_userauth_list(addr_pair->session,
-                                  username, strlen(username));
-        DEBUGMSG(("ssh", "Authentication methods: %s\n", userauthlist));
-
-        /* XXX: allow other types */
-        /* XXX: 4 seems magic to me... */
-        if (strstr(userauthlist, "publickey") != NULL) {
-            auth_pw |= 4;
-        }
-
-        /* XXX: hard coded paths and users */
-        if (auth_pw & 4) {
-            /* public key */
-            if (libssh2_userauth_publickey_fromfile(addr_pair->session,
-                                                    username,
-                                                    keyfilepub, keyfilepriv,
-                                                    NULL)) {
-                snmp_log(LOG_ERR,"Authentication by public key failed!\n");
-                goto shutdown;
-            } else {
-                DEBUGMSG(("ssh",
-                          "\tAuthentication by public key succeeded.\n"));
-            }
-        } else {
-            snmp_log(LOG_ERR,"Authentication by public key failed!\n");
-            goto shutdown;
-        }
-
-        /* we've now authenticated both sides; contining onward ... */
-
-        /* Request a channel */
-        if (!(addr_pair->channel =
-              libssh2_channel_open_session(addr_pair->session))) {
-            snmp_log(LOG_ERR, "Unable to open a session\n");
-            goto shutdown;
-        }
-
-        /* Request a terminal with 'vanilla' terminal emulation
-         * See /etc/termcap for more options
-         */
-        /* XXX: needed?  doubt it */
-/*         if (libssh2_channel_request_pty(addr_pair->channel, "vanilla")) { */
-/*             snmp_log(LOG_ERR, "Failed requesting pty\n"); */
-/*             goto shutdown; */
-/*         } */
-        if (libssh2_channel_subsystem(addr_pair->channel, "snmp")) {
-            snmp_log(LOG_ERR, "Failed to request the ssh 'snmp' subsystem\n");
-            goto shutdown;
-        }
-    }
-
-    DEBUGMSG(("ssh","Opened connection.\n"));
-    /*
-     * Message size is not limited by this transport (hence msgMaxSize
-     * is equal to the maximum legal size of an SNMP message).  
-     */
-
-    t->msgMaxSize = 0x7fffffff;
-    t->f_recv     = netsnmp_ssh_recv;
-    t->f_send     = netsnmp_ssh_send;
-    t->f_close    = netsnmp_ssh_close;
-    t->f_accept   = netsnmp_ssh_accept;
-    t->f_fmtaddr  = netsnmp_ssh_fmtaddr;
-
-    return t;
-}
-
-
-
-netsnmp_transport *
-netsnmp_ssh_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_ssh_transport(&addr, local);
-    } else {
-        return NULL;
-    }
-}
-
-
-
-netsnmp_transport *
-netsnmp_ssh_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_ssh_transport(&addr, local);
-    }
-    return NULL;
-}
-
-void
-sshdomain_parse_socket(const char *token, char *cptr)
-{
-    char *socket_perm, *socket_user, *socket_group;
-    int uid = -1;
-    int gid = -1;
-    int s_perm = -1;
-    char *st;
-
-    DEBUGMSGTL(("ssh/config", "parsing socket info: %s\n", cptr));
-    socket_perm = strtok_r(cptr, " \t", &st);
-    socket_user = strtok_r(NULL, " \t", &st);
-    socket_group = strtok_r(NULL, " \t", &st);
-
-    if (socket_perm) {
-        s_perm = strtol(socket_perm, NULL, 8);
-        netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID,
-                           NETSNMP_DS_SSHDOMAIN_SOCK_PERM, s_perm);
-        DEBUGMSGTL(("ssh/config", "socket permissions: %o (%d)\n",
-                    s_perm, s_perm));
-    }
-    /*
-     * Try to handle numeric UIDs or user names for the socket owner
-     */
-    if (socket_user) {
-        uid = netsnmp_str_to_uid(socket_user);
-        if ( uid != 0 )
-            netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_SSHDOMAIN_SOCK_USER, uid);
-        DEBUGMSGTL(("ssh/config", "socket owner: %s (%d)\n",
-                    socket_user, uid));
-    }
-
-    /*
-     * and similarly for the socket group ownership
-     */
-    if (socket_group) {
-        gid = netsnmp_str_to_gid(socket_group);
-        if ( gid != 0 )
-            netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_SSHDOMAIN_SOCK_GROUP, gid);
-        DEBUGMSGTL(("ssh/config", "socket group: %s (%d)\n",
-                    socket_group, gid));
-    }
-}
-
-void
-netsnmp_ssh_ctor(void)    
-{
-    sshDomain.name = netsnmp_snmpSSHDomain;
-    sshDomain.name_length = netsnmp_snmpSSHDomain_len;
-    sshDomain.prefix = (const char **)calloc(2, sizeof(char *));
-    sshDomain.prefix[0] = "ssh";
-
-    sshDomain.f_create_from_tstring     = NULL;
-    sshDomain.f_create_from_tstring_new = netsnmp_ssh_create_tstring;
-    sshDomain.f_create_from_ostring     = netsnmp_ssh_create_ostring;
-
-    register_config_handler("snmp", "sshtosnmpsocketperms",
-                            &sshdomain_parse_socket, NULL,
-                            "socketperms [username [groupname]]");
-
-    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "sshtosnmpsocket",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_SSHTOSNMP_SOCKET);
-
-    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "sshusername",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_SSH_USERNAME);
-
-    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "sshpublickey",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_SSH_PUBKEY);
-
-    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "sshprivatekey",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_SSH_PRIVKEY);
-
-    DEBUGMSGTL(("ssh", "registering the ssh domain\n"));
-    netsnmp_tdomain_register(&sshDomain);
-}
-
-
diff --git a/snmplib/transports/snmpSTDDomain.c b/snmplib/transports/snmpSTDDomain.c
deleted file mode 100644
index 0a1c3f9..0000000
--- a/snmplib/transports/snmpSTDDomain.c
+++ /dev/null
@@ -1,285 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-
-#include <net-snmp/library/snmpSTDDomain.h>
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <signal.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_DMALLOC_H
-#include <dmalloc.h>
-#endif
-
-#include <net-snmp/types.h>
-#include <net-snmp/output_api.h>
-
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/tools.h>
-
-oid netsnmp_snmpSTDDomain[] = { TRANSPORT_DOMAIN_STD_IP };
-static netsnmp_tdomain stdDomain;
-
-/*
- * Return a string representing the address in data, or else the "far end"
- * address if data is NULL.  
- */
-
-static char *
-netsnmp_std_fmtaddr(netsnmp_transport *t, void *data, int len)
-{
-    char *buf;
-    DEBUGMSGTL(("domain:std","formatting addr.  data=%p\n",t->data));
-    if (t->data) {
-        netsnmp_std_data *data = (netsnmp_std_data*)t->data;
-        buf = (char*)malloc(SNMP_MAXBUF_MEDIUM);
-        if (!buf)
-            return strdup("STDInOut");
-        snprintf(buf, SNMP_MAXBUF_MEDIUM, "STD:%s", data->prog);
-        DEBUGMSGTL(("domain:std","  formatted:=%s\n",buf));
-        return buf;
-    }
-    return strdup("STDInOut");
-}
-
-
-
-/*
- * 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_std_recv(netsnmp_transport *t, void *buf, int size,
-		 void **opaque, int *olength)
-{
-    int rc = -1;
-
-    DEBUGMSGTL(("domain:std","recv on sock %d.  data=%p\n",t->sock, t->data));
-    while (rc < 0) {
-        rc = read(t->sock, buf, size);
-        DEBUGMSGTL(("domain:std","  bytes: %d.\n", rc));
-        if (rc < 0 && errno != EINTR) {
-            DEBUGMSGTL(("netsnmp_std", " read on fd %d failed: %d (\"%s\")\n",
-                        t->sock, errno, strerror(errno)));
-            break;
-        }
-        if (rc == 0) {
-            /* 0 input is probably bad since we selected on it */
-            return -1;
-        }
-        DEBUGMSGTL(("netsnmp_std", "read on stdin got %d bytes\n", rc));
-    }
-
-    return rc;
-}
-
-
-
-static int
-netsnmp_std_send(netsnmp_transport *t, void *buf, int size,
-		 void **opaque, int *olength)
-{
-    int rc = -1;
-
-    DEBUGMSGTL(("domain:std","send on sock.  data=%p\n", t->data));
-    while (rc < 0) {
-        if (t->data) {
-            netsnmp_std_data *data = (netsnmp_std_data*)t->data;
-            rc = write(data->outfd, buf, size);
-        } else {
-            /* straight to stdout */
-            rc = write(1, buf, size);
-        }
-        if (rc < 0 && errno != EINTR) {
-            break;
-        }
-    }
-    return rc;
-}
-
-static int
-netsnmp_std_close(netsnmp_transport *t)
-{
-    DEBUGMSGTL(("domain:std","close.  data=%p\n", t->data));
-    if (t->data) {
-        netsnmp_std_data *data = (netsnmp_std_data*)t->data;
-        close(data->outfd);
-        close(t->sock);
-
-        /* kill the child too */
-        DEBUGMSGTL(("domain:std"," killing %d\n", data->childpid));
-        kill(data->childpid, SIGTERM);
-        sleep(1);
-        kill(data->childpid, SIGKILL);
-        /* XXX: set an alarm to kill harder the child */
-    } else {
-        /* close stdout/in */
-        close(1);
-        close(0);
-    }
-    return 0;
-}
-
-
-
-static int
-netsnmp_std_accept(netsnmp_transport *t)
-{
-    DEBUGMSGTL(("domain:std"," accept data=%p\n", t->data));
-    /* nothing to do here */
-    return 0;
-}
-
-/*
- * Open a STDIN/STDOUT -based transport for SNMP.
- */
-
-netsnmp_transport *
-netsnmp_std_transport(const char *instring, size_t instring_len,
-		      const char *default_target)
-{
-    netsnmp_transport *t;
-
-    t = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
-    if (t == NULL) {
-        return NULL;
-    }
-
-    t->domain = netsnmp_snmpSTDDomain;
-    t->domain_length =
-        sizeof(netsnmp_snmpSTDDomain) / sizeof(netsnmp_snmpSTDDomain[0]);
-
-    t->sock = 0;
-    t->flags = NETSNMP_TRANSPORT_FLAG_STREAM | NETSNMP_TRANSPORT_FLAG_TUNNELED;
-
-    /*
-     * Message size is not limited by this transport (hence msgMaxSize
-     * is equal to the maximum legal size of an SNMP message).  
-     */
-
-    t->msgMaxSize = 0x7fffffff;
-    t->f_recv     = netsnmp_std_recv;
-    t->f_send     = netsnmp_std_send;
-    t->f_close    = netsnmp_std_close;
-    t->f_accept   = netsnmp_std_accept;
-    t->f_fmtaddr  = netsnmp_std_fmtaddr;
-
-    /*
-     * if instring is not null length, it specifies a path to a prog
-     * XXX: plus args
-     */
-    if (instring_len == 0 && default_target != NULL) {
-	instring = default_target;
-	instring_len = strlen(default_target);
-    }
-
-    if (instring_len != 0) {
-        int infd[2], outfd[2];  /* sockets to and from the client */
-        int childpid;
-
-        if (pipe(infd) || pipe(outfd)) {
-            snmp_log(LOG_ERR,
-                     "Failed to create needed pipes for a STD transport");
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-
-        childpid = fork();
-        /* parentpid => childpid */
-        /* infd[1]   => infd[0] */
-        /* outfd[0]  <= outfd[1] */
-
-        if (childpid) {
-            netsnmp_std_data *data;
-            
-            /* we're in the parent */
-            close(infd[0]);
-            close(outfd[1]);
-
-            data = SNMP_MALLOC_TYPEDEF(netsnmp_std_data);
-            if (!data) {
-                snmp_log(LOG_ERR, "snmpSTDDomain: malloc failed");
-                netsnmp_transport_free(t);
-                return NULL;
-            }
-            t->data = data;
-            t->data_length = sizeof(netsnmp_std_data);
-            t->sock = outfd[0];
-            data->prog = strdup(instring);
-            data->outfd = infd[1];
-            data->childpid = childpid;
-            DEBUGMSGTL(("domain:std","parent.  data=%p\n", t->data));
-        } else {
-            /* we're in the child */
-
-            /* close stdin */
-            close(0);
-            /* copy pipe output to stdout */
-            dup(infd[0]);
-
-            /* close stdout */
-            close(1);
-            /* copy pipe output to stdin */
-            dup(outfd[1]);
-            
-            /* close all the pipes themselves */
-            close(infd[0]);
-            close(infd[1]);
-            close(outfd[0]);
-            close(outfd[1]);
-
-            /* call exec */
-            system(instring);
-            /* XXX: TODO: use exec form instead; needs args */
-            /* execv(instring, NULL); */
-            exit(0);
-
-            /* ack...  we should never ever get here */
-            snmp_log(LOG_ERR, "STD transport returned after execv()\n");
-        }
-    }            
-
-    return t;
-}
-
-netsnmp_transport *
-netsnmp_std_create_tstring(const char *instring, int local,
-			   const char *default_target)
-{
-    return netsnmp_std_transport(instring, strlen(instring), default_target);
-}
-
-netsnmp_transport *
-netsnmp_std_create_ostring(const u_char * o, size_t o_len, int local)
-{
-    return netsnmp_std_transport((const char*)o, o_len, NULL);
-}
-
-void
-netsnmp_std_ctor(void)
-{
-    stdDomain.name = netsnmp_snmpSTDDomain;
-    stdDomain.name_length = sizeof(netsnmp_snmpSTDDomain) / sizeof(oid);
-    stdDomain.prefix = (const char **)calloc(2, sizeof(char *));
-    stdDomain.prefix[0] = "std";
-
-    stdDomain.f_create_from_tstring     = NULL;
-    stdDomain.f_create_from_tstring_new = netsnmp_std_create_tstring;
-    stdDomain.f_create_from_ostring     = netsnmp_std_create_ostring;
-
-    netsnmp_tdomain_register(&stdDomain);
-}
diff --git a/snmplib/transports/snmpSocketBaseDomain.c b/snmplib/transports/snmpSocketBaseDomain.c
deleted file mode 100644
index 3fb6632..0000000
--- a/snmplib/transports/snmpSocketBaseDomain.c
+++ /dev/null
@@ -1,362 +0,0 @@
-/**
- * @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
deleted file mode 100644
index fc70dba..0000000
--- a/snmplib/transports/snmpTCPBaseDomain.c
+++ /dev/null
@@ -1,99 +0,0 @@
-#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/transports/snmpTCPDomain.c b/snmplib/transports/snmpTCPDomain.c
deleted file mode 100644
index b8bdba4..0000000
--- a/snmplib/transports/snmpTCPDomain.c
+++ /dev/null
@@ -1,351 +0,0 @@
-#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>
-
-#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/snmpIPv4BaseDomain.h>
-#include <net-snmp/library/snmpSocketBaseDomain.h>
-#include <net-snmp/library/snmpTCPBaseDomain.h>
-#include <net-snmp/library/tools.h>
-
-/*
- * 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;
-
-/*
- * Not static since it is needed here as well as in snmpUDPDomain, but not
- * public either
- */
-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.  
- */
-
-static char *
-netsnmp_tcp_fmtaddr(netsnmp_transport *t, void *data, int len)
-{
-    return netsnmp_ipv4_fmtaddr("TCP", t, data, len);
-}
-
-static int
-netsnmp_tcp_accept(netsnmp_transport *t)
-{
-    struct sockaddr *farend = NULL;
-    netsnmp_udp_addr_pair *addr_pair = NULL;
-    int             newsock = -1;
-    socklen_t       farendlen = sizeof(netsnmp_udp_addr_pair);
-
-    addr_pair = (netsnmp_udp_addr_pair *)malloc(farendlen);
-    if (addr_pair == NULL) {
-        /*
-         * Indicate that the acceptance of this socket failed.  
-         */
-        DEBUGMSGTL(("netsnmp_tcp", "accept: malloc failed\n"));
-        return -1;
-    }
-    memset(addr_pair, 0, sizeof *addr_pair);
-    farend = &addr_pair->remote_addr.sa;
-
-    if (t != NULL && t->sock >= 0) {
-        newsock = accept(t->sock, farend, &farendlen);
-
-        if (newsock < 0) {
-            DEBUGMSGTL(("netsnmp_tcp", "accept failed rc %d errno %d \"%s\"\n",
-			newsock, errno, strerror(errno)));
-            free(addr_pair);
-            return newsock;
-        }
-
-        if (t->data != NULL) {
-            free(t->data);
-        }
-
-        t->data = addr_pair;
-        t->data_length = sizeof(netsnmp_udp_addr_pair);
-        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.  
-         */
-
-        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
-         * to use os default.  Don't worry too much about errors --
-         * just plough on regardless.  
-         */
-        netsnmp_sock_buffer_set(newsock, SO_SNDBUF, 1, 0);
-        netsnmp_sock_buffer_set(newsock, SO_RCVBUF, 1, 0);
-
-        return newsock;
-    } else {
-        free(addr_pair);
-        return -1;
-    }
-}
-
-
-
-/*
- * Open a TCP-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_tcp_transport(struct sockaddr_in *addr, int local)
-{
-    netsnmp_transport *t = NULL;
-    netsnmp_udp_addr_pair *addr_pair = NULL;
-    int rc = 0;
-
-#ifdef NETSNMP_NO_LISTEN_SUPPORT
-    if (local)
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-
-    if (addr == NULL || addr->sin_family != AF_INET) {
-        return NULL;
-    }
-
-    t = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
-    if (t == NULL) {
-        return NULL;
-    }
-
-    addr_pair = (netsnmp_udp_addr_pair *)malloc(sizeof(netsnmp_udp_addr_pair));
-    if (addr_pair == NULL) {
-        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));
-
-    t->domain = netsnmp_snmpTCPDomain;
-    t->domain_length =
-        sizeof(netsnmp_snmpTCPDomain) / sizeof(netsnmp_snmpTCPDomain[0]);
-
-    t->sock = socket(PF_INET, SOCK_STREAM, 0);
-    if (t->sock < 0) {
-        netsnmp_transport_free(t);
-        return NULL;
-    }
-
-    t->flags = NETSNMP_TRANSPORT_FLAG_STREAM;
-
-    if (local) {
-#ifndef NETSNMP_NO_LISTEN_SUPPORT
-        int opt = 1;
-
-        /*
-         * This session is inteneded as a server, so we must bind to the given 
-         * IP address (which may include an interface address, or could be
-         * INADDR_ANY, but will always include a port number.  
-         */
-
-        t->flags |= NETSNMP_TRANSPORT_FLAG_LISTEN;
-        t->local = (u_char *)malloc(6);
-        if (t->local == NULL) {
-            netsnmp_socketbase_close(t);
-            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;
-
-        /*
-         * We should set SO_REUSEADDR too.  
-         */
-
-        setsockopt(t->sock, SOL_SOCKET, SO_REUSEADDR, (void *)&opt,
-		   sizeof(opt));
-
-        rc = bind(t->sock, (struct sockaddr *)addr, sizeof(struct sockaddr));
-        if (rc != 0) {
-            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 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.
-         */
-
-        netsnmp_set_non_blocking_mode(t->sock, TRUE);
-
-        /*
-         * Now sit here and wait for connections to arrive.  
-         */
-
-        rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
-        if (rc != 0) {
-            netsnmp_socketbase_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        
-        /*
-         * no buffer size on listen socket - doesn't make sense
-         */
-#else /* NETSNMP_NO_LISTEN_SUPPORT */
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-    } else {
-      t->remote = (u_char *)malloc(6);
-        if (t->remote == NULL) {
-            netsnmp_socketbase_close(t);
-            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;
-
-        /*
-         * This is a client-type session, so attempt to connect to the far
-         * end.  We don't go non-blocking here because it's not obvious what
-         * you'd then do if you tried to do snmp_sends before the connection
-         * had completed.  So this can block.
-         */
-
-        rc = connect(t->sock, (struct sockaddr *)addr,
-		     sizeof(struct sockaddr));
-
-        if (rc < 0) {
-            netsnmp_socketbase_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-
-        /*
-         * Allow user to override the send and receive buffers. Default is
-         * to use os default.  Don't worry too much about errors --
-         * just plough on regardless.  
-         */
-        netsnmp_sock_buffer_set(t->sock, SO_SNDBUF, local, 0);
-        netsnmp_sock_buffer_set(t->sock, SO_RCVBUF, local, 0);
-    }
-
-    /*
-     * Message size is not limited by this transport (hence msgMaxSize
-     * is equal to the maximum legal size of an SNMP message).  
-     */
-
-    t->msgMaxSize = 0x7fffffff;
-    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;
-
-    return t;
-}
-
-
-
-netsnmp_transport *
-netsnmp_tcp_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_tcp_transport(&addr, local);
-    } else {
-        return NULL;
-    }
-}
-
-
-
-netsnmp_transport *
-netsnmp_tcp_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_tcp_transport(&addr, local);
-    }
-    return NULL;
-}
-
-
-
-void
-netsnmp_tcp_ctor(void)
-{
-    tcpDomain.name = netsnmp_snmpTCPDomain;
-    tcpDomain.name_length = sizeof(netsnmp_snmpTCPDomain) / sizeof(oid);
-    tcpDomain.prefix = (const char **)calloc(2, sizeof(char *));
-    tcpDomain.prefix[0] = "tcp";
-
-    tcpDomain.f_create_from_tstring     = NULL;
-    tcpDomain.f_create_from_tstring_new = netsnmp_tcp_create_tstring;
-    tcpDomain.f_create_from_ostring     = netsnmp_tcp_create_ostring;
-
-    netsnmp_tdomain_register(&tcpDomain);
-}
diff --git a/snmplib/transports/snmpTCPIPv6Domain.c b/snmplib/transports/snmpTCPIPv6Domain.c
deleted file mode 100644
index 3c96856..0000000
--- a/snmplib/transports/snmpTCPIPv6Domain.c
+++ /dev/null
@@ -1,374 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-
-#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>
-
-#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_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/config_api.h>
-
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmpSocketBaseDomain.h>
-#include <net-snmp/library/snmpTCPBaseDomain.h>
-#include <net-snmp/library/tools.h>
-
-#include "inet_ntop.h"
-
-oid netsnmp_TCPIPv6Domain[] = { TRANSPORT_DOMAIN_TCP_IPV6 };
-static netsnmp_tdomain tcp6Domain;
-
-/*
- * Return a string representing the address in data, or else the "far end"
- * address if data is NULL.  
- */
-
-static char *
-netsnmp_tcp6_fmtaddr(netsnmp_transport *t, void *data, int len)
-{
-    return netsnmp_ipv6_fmtaddr("TCP/IPv6", t, data, len);
-}
-
-static int
-netsnmp_tcp6_accept(netsnmp_transport *t)
-{
-    struct sockaddr_in6 *farend = NULL;
-    int             newsock = -1;
-    socklen_t       farendlen = sizeof(struct sockaddr_in6);
-
-    farend = (struct sockaddr_in6 *) malloc(sizeof(struct sockaddr_in6));
-
-    if (farend == NULL) {
-        /*
-         * Indicate that the acceptance of this socket failed.  
-         */
-        DEBUGMSGTL(("netsnmp_tcp6", "accept: malloc failed\n"));
-        return -1;
-    }
-
-    if (t != NULL && t->sock >= 0) {
-        newsock = accept(t->sock, (struct sockaddr *) farend, &farendlen);
-
-        if (newsock < 0) {
-            DEBUGMSGTL(("netsnmp_tcp6","accept failed rc %d errno %d \"%s\"\n",
-			newsock, errno, strerror(errno)));
-            free(farend);
-            return newsock;
-        }
-
-        if (t->data != NULL) {
-            free(t->data);
-        }
-
-        t->data = farend;
-        t->data_length = farendlen;
-        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.  
-         */
-
-        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
-         * to use os default.  Don't worry too much about errors --
-         * just plough on regardless.  
-         */
-        netsnmp_sock_buffer_set(newsock, SO_SNDBUF, 1, 0);
-        netsnmp_sock_buffer_set(newsock, SO_RCVBUF, 1, 0);
-
-        return newsock;
-    } else {
-        free(farend);
-        return -1;
-    }
-}
-
-
-
-/*
- * Open a TCP/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_tcp6_transport(struct sockaddr_in6 *addr, int local)
-{
-    netsnmp_transport *t = NULL;
-    int             rc = 0;
-
-#ifdef NETSNMP_NO_LISTEN_SUPPORT
-    if (local)
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-
-    if (addr == NULL || addr->sin6_family != AF_INET6) {
-        return NULL;
-    }
-
-    t = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
-    if (t == NULL) {
-        return NULL;
-    }
-
-    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);
-    }
-
-    t->data = malloc(sizeof(netsnmp_indexed_addr_pair));
-    if (t->data == NULL) {
-        netsnmp_transport_free(t);
-        return NULL;
-    }
-    t->data_length = sizeof(netsnmp_indexed_addr_pair);
-    memcpy(t->data, addr, sizeof(struct sockaddr_in6));
-
-    t->domain = netsnmp_TCPIPv6Domain;
-    t->domain_length = sizeof(netsnmp_TCPIPv6Domain) / sizeof(oid);
-
-    t->sock = socket(PF_INET6, SOCK_STREAM, 0);
-    if (t->sock < 0) {
-        netsnmp_transport_free(t);
-        return NULL;
-    }
-
-    t->flags = NETSNMP_TRANSPORT_FLAG_STREAM;
-
-    if (local) {
-#ifndef NETSNMP_NO_LISTEN_SUPPORT
-        int opt = 1;
-
-        /*
-         * 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_tcp6", "couldn't set IPV6_V6ONLY to %d bytes: %s\n", one, strerror(errno)));
-	  } 
-	}
-#endif
-
-        t->flags |= NETSNMP_TRANSPORT_FLAG_LISTEN;
-        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;
-
-        /*
-         * We should set SO_REUSEADDR too.  
-         */
-
-        setsockopt(t->sock, SOL_SOCKET, SO_REUSEADDR, (void *)&opt, sizeof(opt));
-
-        rc = bind(t->sock, (struct sockaddr *) addr,
-		  sizeof(struct sockaddr_in6));
-        if (rc != 0) {
-            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
-         * 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.
-         */
-
-        netsnmp_set_non_blocking_mode(t->sock, TRUE);
-
-        /*
-         * Now sit here and wait for connections to arrive.  
-         */
-
-        rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
-        if (rc != 0) {
-            netsnmp_socketbase_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        
-        /*
-         * no buffer size on listen socket - doesn't make sense
-         */
-#else /* NETSNMP_NO_LISTEN_SUPPORT */
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-    } else {
-        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;
-
-        /*
-         * This is a client-type session, so attempt to connect to the far
-         * end.  We don't go non-blocking here because it's not obvious what
-         * you'd then do if you tried to do snmp_sends before the connection
-         * had completed.  So this can block.
-         */
-
-        rc = connect(t->sock, (struct sockaddr *) addr,
-                     sizeof(struct sockaddr_in6));
-
-        DEBUGMSGTL(("netsnmp_tcp6", "connect returns %d\n", rc));
-
-        if (rc < 0) {
-            netsnmp_socketbase_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-
-        /*
-         * Allow user to override the send and receive buffers. Default is
-         * to use os default.  Don't worry too much about errors --
-         * just plough on regardless.  
-         */
-        netsnmp_sock_buffer_set(t->sock, SO_SNDBUF, local, 0);
-        netsnmp_sock_buffer_set(t->sock, SO_RCVBUF, local, 0);
-    }
-
-    /*
-     * Message size is not limited by this transport (hence msgMaxSize
-     * is equal to the maximum legal size of an SNMP message).  
-     */
-
-    t->msgMaxSize = 0x7fffffff;
-    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;
-
-    return t;
-}
-
-/*
- * Not extern but still defined in snmpUDPIPv6Domain.c
- */
-extern int
-netsnmp_sockaddr_in6_2(struct sockaddr_in6*, const char*, const char*);
-
-netsnmp_transport *
-netsnmp_tcp6_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_tcp6_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_tcp6_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_tcp6_transport(&addr, local);
-    }
-    return NULL;
-}
-
-
-void
-netsnmp_tcpipv6_ctor(void)
-{
-    tcp6Domain.name = netsnmp_TCPIPv6Domain;
-    tcp6Domain.name_length = sizeof(netsnmp_TCPIPv6Domain) / sizeof(oid);
-    tcp6Domain.f_create_from_tstring     = NULL;
-    tcp6Domain.f_create_from_tstring_new = netsnmp_tcp6_create_tstring;
-    tcp6Domain.f_create_from_ostring     = netsnmp_tcp6_create_ostring;
-    tcp6Domain.prefix = (const char**)calloc(4, sizeof(char *));
-    tcp6Domain.prefix[0] = "tcp6";
-    tcp6Domain.prefix[1] = "tcpv6";
-    tcp6Domain.prefix[2] = "tcpipv6";
-
-    netsnmp_tdomain_register(&tcp6Domain);
-}
-
-#endif /* NETSNMP_TRANSPORT_TCPIPV6_DOMAIN */
-
diff --git a/snmplib/transports/snmpTLSBaseDomain.c b/snmplib/transports/snmpTLSBaseDomain.c
deleted file mode 100644
index c54d6ad..0000000
--- a/snmplib/transports/snmpTLSBaseDomain.c
+++ /dev/null
@@ -1,1183 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-
-#include <net-snmp/net-snmp-features.h>
-
-netsnmp_feature_require(cert_util)
-
-#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/config_api.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/read_config.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 *peer_cert;
-        peer_cert =
-            netsnmp_cert_find(NS_CERT_REMOTE_PEER, NS_CERTKEY_MULTIPLE,
-                              tlsdata->their_identity);
-
-        if (peer_cert)
-            tlsdata->their_fingerprint =
-                netsnmp_openssl_cert_get_fingerprint(peer_cert->ocert, -1);
-    }
-
-    if (!tlsdata->their_fingerprint && try_default) {
-        /* try for the default instead */
-        netsnmp_cert *peer_cert;
-        peer_cert =
-            netsnmp_cert_find(NS_CERT_REMOTE_PEER, NS_CERTKEY_DEFAULT,
-                              NULL);
-
-        if (peer_cert)
-            tlsdata->their_fingerprint =
-                netsnmp_openssl_cert_get_fingerprint(peer_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, NULL);
-    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, "localCert") == 0) ||
-        (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, "peerCert") == 0) ||
-        (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, "peerHostname") == 0) ||
-        (strcmp(token, "their_hostname") == 0)) {
-        SNMP_FREE(tlsdata->their_hostname);
-        tlsdata->their_hostname = strdup(value);
-    }
-
-    if ((strcmp(token, "trust_cert") == 0) ||
-        (strcmp(token, "trustCert") == 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;
-}
-
-static void _parse_client_cert(const char *tok, char *line)
-{
-    config_pwarn("clientCert is deprecated. Clients should use localCert, servers should use peerCert");
-    if (*line == '"') {
-        char buf[SNMP_MAXBUF];
-        copy_nword(line, buf, sizeof(buf));
-        netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID,
-                              NETSNMP_DS_LIB_X509_CLIENT_PUB, buf);
-    } else
-        netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID,
-                              NETSNMP_DS_LIB_X509_CLIENT_PUB, line);
-}
-
-static void _parse_server_cert(const char *tok, char *line)
-{
-    config_pwarn("serverCert is deprecated. Clients should use peerCert, servers should use localCert.");
-    if (*line == '"') {
-        char buf[SNMP_MAXBUF];
-        copy_nword(line, buf, sizeof(buf));
-        netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID,
-                              NETSNMP_DS_LIB_X509_CLIENT_PUB, buf);
-    } else
-        netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID,
-                              NETSNMP_DS_LIB_X509_SERVER_PUB, line);
-}
-
-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 */
-    register_config_handler("snmp", "clientCert", _parse_client_cert, NULL,
-                            NULL);
-
-    /*
-     * for the server
-     */
-
-    /* The X509 server key to use */
-    register_config_handler("snmp", "serverCert", _parse_server_cert, NULL,
-                            NULL);
-    /*
-     * remove cert config ambiguity: localCert, peerCert
-     */
-    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "localCert",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_TLS_LOCAL_CERT);
-    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "peerCert",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_TLS_PEER_CERT);
-
-    /*
-     * 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;
-}
-
-netsnmp_feature_child_of(_x509_get_error, netsnmp_unused)
-#ifndef NETSNMP_FEATURE_REMOVE__X509_GET_ERROR
-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;
-}
-#endif /* NETSNMP_FEATURE_REMOVE__X509_GET_ERROR */
-
-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
deleted file mode 100644
index a92091e..0000000
--- a/snmplib/transports/snmpTLSTCPDomain.c
+++ /dev/null
@@ -1,1041 +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:
- */
-/* 
- * 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/net-snmp-features.h>
-
-netsnmp_feature_require(cert_util)
-
-#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->addr)
-        memdup((u_char**)&newtlsdata->addr, oldtlsdata->addr,
-               sizeof(*oldtlsdata->addr));
-
-    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");
-            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);
-            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);
-            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);
-            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);
-            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);
-            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 {
-#ifndef NETSNMP_NO_LISTEN_SUPPORT
-        /* 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_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_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;
-#else /* NETSNMP_NO_LISTEN_SUPPORT */
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-    }
-    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];
-    
-#ifdef NETSNMP_NO_LISTEN_SUPPORT
-    if (isserver)
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-
-    /* allocate our transport structure */
-    t = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
-    if (NULL == t) {
-        return NULL;
-    }
-
-    /* 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
deleted file mode 100644
index 612fe74..0000000
--- a/snmplib/transports/snmpUDPBaseDomain.c
+++ /dev/null
@@ -1,354 +0,0 @@
-/* UDP base transport support functions
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#include <net-snmp/types.h>
-#include <net-snmp/library/snmpUDPBaseDomain.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_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
-#include <errno.h>
-
-#include <net-snmp/types.h>
-#include <net-snmp/library/snmpSocketBaseDomain.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>
-
-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(linux) && defined(IP_PKTINFO)) \
-    || defined(IP_RECVDSTADDR) && HAVE_STRUCT_MSGHDR_MSG_CONTROL \
-                               && HAVE_STRUCT_MSGHDR_MSG_FLAGS
-#if  defined(linux) && defined(IP_PKTINFO)
-#elif defined(IP_RECVDSTADDR)
-# ifndef IP_SENDSRCADDR
-#  define IP_SENDSRCADDR IP_RECVDSTADDR /* DragonFly BSD */
-# endif
-#endif
-
-#define netsnmp_udpbase_recvfrom_sendto_defined
-
-enum {
-#if  defined(linux) && defined(IP_PKTINFO)
-    cmsg_data_size = sizeof(struct in_pktinfo)
-#elif defined(IP_RECVDSTADDR)
-    cmsg_data_size = sizeof(struct in_addr)
-#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;
-    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);
-
-    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);
-    }
-
-    for (cm = CMSG_FIRSTHDR(&msg); cm != NULL; cm = CMSG_NXTHDR(&msg, cm)) {
-#if  defined(linux) && defined(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(((struct sockaddr_in*)dstip)->sin_addr),
-                        *if_index));
-        }
-#elif defined(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(((struct sockaddr_in*)dstip)->sin_addr)));
-        }
-#endif
-    }
-    return r;
-}
-
-int netsnmp_udpbase_sendto(int fd, struct in_addr *srcip, int if_index,
-                           struct sockaddr *remote, void *data, int len)
-{
-    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(linux) && defined(IP_PKTINFO)
-        cm->cmsg_level = SOL_IP;
-        cm->cmsg_type = IP_PKTINFO;
-
-        {
-            struct in_pktinfo ipi = { 0 };
-            ipi.ipi_ifindex = 0;
-            ipi.ipi_spec_dst.s_addr = srcip->s_addr;
-            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 = { 0 };
-            ipi.ipi_ifindex = if_index;
-            ipi.ipi_spec_dst.s_addr = INADDR_ANY;
-            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);
-}
-#endif /* (linux && IP_PKTINFO) || 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 = &addr_pair->remote_addr.sa;
-        }
-
-	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) ||
-          (*olength == sizeof(struct sockaddr_in))))) {
-        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 = &addr_pair->remote_addr.sa;
-
-    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.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;
-}
diff --git a/snmplib/transports/snmpUDPDomain.c b/snmplib/transports/snmpUDPDomain.c
deleted file mode 100644
index 638c2b1..0000000
--- a/snmplib/transports/snmpUDPDomain.c
+++ /dev/null
@@ -1,520 +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 <net-snmp/types.h>
-#include <net-snmp/library/snmpUDPDomain.h>
-#include <net-snmp/library/snmpUDPIPv4BaseDomain.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/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
-
-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(linux) && defined(IP_PKTINFO)) \
-    || defined(IP_RECVDSTADDR) && HAVE_STRUCT_MSGHDR_MSG_CONTROL \
-                               && HAVE_STRUCT_MSGHDR_MSG_FLAGS
-
-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 /* (linux && IP_PKTINFO) || 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
deleted file mode 100644
index c67427b..0000000
--- a/snmplib/transports/snmpUDPIPv4BaseDomain.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/* IPV4 base transport support functions
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#include <net-snmp/types.h>
-#include <net-snmp/library/snmpUDPIPv4BaseDomain.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>
-
-#if (defined(linux) && defined(IP_PKTINFO)) \
-    || defined(IP_RECVDSTADDR) && HAVE_STRUCT_MSGHDR_MSG_CONTROL \
-                               && HAVE_STRUCT_MSGHDR_MSG_FLAGS
-
-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 /* (linux && IP_PKTINFO) || 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;
-
-#ifdef NETSNMP_NO_LISTEN_SUPPORT
-    if (local)
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-
-    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) {
-#ifndef NETSNMP_NO_LISTEN_SUPPORT
-        /*
-         * 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_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(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_socketbase_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        t->data = NULL;
-        t->data_length = 0;
-#else /* NETSNMP_NO_LISTEN_SUPPORT */
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-    } 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
deleted file mode 100644
index b3eaae4..0000000
--- a/snmplib/transports/snmpUDPIPv6Domain.c
+++ /dev/null
@@ -1,788 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-
-#include <net-snmp/library/snmpUDPIPv6Domain.h>
-#include <net-snmp/library/system.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 <net-snmp/library/tools.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)) ||
-                (t->data_length == sizeof(netsnmp_indexed_addr_pair)))) {
-        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;
-
-#ifdef NETSNMP_NO_LISTEN_SUPPORT
-    if (local)
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-
-    if (addr == NULL || addr->sin6_family != AF_INET6) {
-        return NULL;
-    }
-
-    t = SNMP_MALLOC_TYPEDEF(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);
-    }
-
-    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) {
-#ifndef NETSNMP_NO_LISTEN_SUPPORT
-        /*
-         * This session is intended 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 /* NETSNMP_NO_LISTEN_SUPPORT */
-        return NULL;
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-    } 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(netsnmp_indexed_addr_pair));
-        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(netsnmp_indexed_addr_pair);
-        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 = netsnmp_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/transports/snmpUnixDomain.c b/snmplib/transports/snmpUnixDomain.c
deleted file mode 100644
index 674dc2b..0000000
--- a/snmplib/transports/snmpUnixDomain.c
+++ /dev/null
@@ -1,752 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
-
-#include <sys/types.h>
-#include <net-snmp/library/snmpUnixDomain.h>
-
-#include <stddef.h>
-#include <stdio.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_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/snmpSocketBaseDomain.h>
-#include <net-snmp/library/system.h> /* mkdirhier */
-#include <net-snmp/library/tools.h>
-
-netsnmp_feature_child_of(transport_unix_socket_all, transport_all)
-netsnmp_feature_child_of(unix_socket_paths, transport_unix_socket_all)
-
-#ifndef NETSNMP_STREAM_QUEUE_LEN
-#define NETSNMP_STREAM_QUEUE_LEN  5
-#endif
-
-#ifndef SUN_LEN
-/*
- * Evaluate to actual length of the `sockaddr_un' structure.
- */
-#define SUN_LEN(ptr) ((size_t) (((struct sockaddr_un *) 0)->sun_path)         \
-                      + strlen ((ptr)->sun_path))
-#endif
-
-oid netsnmp_UnixDomain[] = { TRANSPORT_DOMAIN_LOCAL };
-static netsnmp_tdomain unixDomain;
-
-
-/*
- * This is the structure we use to hold transport-specific data.
- */
-
-typedef struct _sockaddr_un_pair {
-    int             local;
-    struct sockaddr_un server;
-    struct sockaddr_un client;
-} sockaddr_un_pair;
-
-
-/*
- * Return a string representing the address in data, or else the "far end"
- * address if data is NULL.
- */
-
-static char *
-netsnmp_unix_fmtaddr(netsnmp_transport *t, void *data, int len)
-{
-    struct sockaddr_un *to = NULL;
-
-    if (data != NULL) {
-        to = (struct sockaddr_un *) data;
-    } else if (t != NULL && t->data != NULL) {
-        to = &(((sockaddr_un_pair *) t->data)->server);
-        len = SUN_LEN(to);
-    }
-    if (to == NULL) {
-        /*
-         * "Local IPC" is the Posix.1g term for Unix domain protocols,
-         * according to W. R. Stevens, ``Unix Network Programming Volume I
-         * Second Edition'', p. 374.
-         */
-        return strdup("Local IPC: unknown");
-    } else if (to->sun_path[0] == 0) {
-        /*
-         * This is an abstract name.  We could render it as hex or something
-         * but let's not worry about that for now.
-         */
-        return strdup("Local IPC: abstract");
-    } else {
-        char           *tmp = (char *) malloc(16 + len);
-        if (tmp != NULL) {
-            sprintf(tmp, "Local IPC: %s", to->sun_path);
-        }
-        return 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_unix_recv(netsnmp_transport *t, void *buf, int size,
-                  void **opaque, int *olength)
-{
-    int rc = -1;
-    socklen_t       tolen = sizeof(struct sockaddr_un);
-    struct sockaddr *to;
-
-
-    if (t != NULL && t->sock >= 0) {
-        to = (struct sockaddr *) malloc(sizeof(struct sockaddr_un));
-        if (to == NULL) {
-            *opaque = NULL;
-            *olength = 0;
-            return -1;
-        } else {
-            memset(to, 0, tolen);
-        }
-        if(getsockname(t->sock, to, &tolen) != 0){
-            free(to);
-            *opaque = NULL;
-            *olength = 0;
-            return -1;
-        };
-        while (rc < 0) {
-#ifdef MSG_DONTWAIT
-            rc = recvfrom(t->sock, buf, size, MSG_DONTWAIT, NULL, NULL);
-#else
-            rc = recvfrom(t->sock, buf, size, 0, NULL, NULL);
-#endif
-            if (rc < 0 && errno != EINTR) {
-                DEBUGMSGTL(("netsnmp_unix", "recv fd %d err %d (\"%s\")\n",
-                            t->sock, errno, strerror(errno)));
-                return rc;
-            }
-            *opaque = (void*)to;
-            *olength = sizeof(struct sockaddr_un);
-        }
-        DEBUGMSGTL(("netsnmp_unix", "recv fd %d got %d bytes\n", t->sock, rc));
-    }
-    return rc;
-}
-
-
-
-static int
-netsnmp_unix_send(netsnmp_transport *t, void *buf, int size,
-                  void **opaque, int *olength)
-{
-    int rc = -1;
-
-    if (t != NULL && t->sock >= 0) {
-        DEBUGMSGTL(("netsnmp_unix", "send %d bytes to %p on fd %d\n",
-                    size, buf, t->sock));
-        while (rc < 0) {
-            rc = sendto(t->sock, buf, size, 0, NULL, 0);
-            if (rc < 0 && errno != EINTR) {
-                break;
-            }
-        }
-    }
-    return rc;
-}
-
-
-
-static int
-netsnmp_unix_close(netsnmp_transport *t)
-{
-    int rc = 0;
-    sockaddr_un_pair *sup = (sockaddr_un_pair *) t->data;
-
-    if (t->sock >= 0) {
-#ifndef HAVE_CLOSESOCKET
-        rc = close(t->sock);
-#else
-        rc = closesocket(t->sock);
-#endif
-        t->sock = -1;
-        if (sup != NULL) {
-            if (sup->local) {
-                if (sup->server.sun_path[0] != 0) {
-                  DEBUGMSGTL(("netsnmp_unix", "close: server unlink(\"%s\")\n",
-                              sup->server.sun_path));
-                  unlink(sup->server.sun_path);
-                }
-            } else {
-                if (sup->client.sun_path[0] != 0) {
-                  DEBUGMSGTL(("netsnmp_unix", "close: client unlink(\"%s\")\n",
-                              sup->client.sun_path));
-                  unlink(sup->client.sun_path);
-                }
-            }
-        }
-        return rc;
-    } else {
-        return -1;
-    }
-}
-
-
-
-static int
-netsnmp_unix_accept(netsnmp_transport *t)
-{
-    struct sockaddr *farend = NULL;
-    int             newsock = -1;
-    socklen_t       farendlen = sizeof(struct sockaddr_un);
-
-    farend = (struct sockaddr *) malloc(farendlen);
-
-    if (farend == NULL) {
-        /*
-         * Indicate that the acceptance of this socket failed.
-         */
-        DEBUGMSGTL(("netsnmp_unix", "accept: malloc failed\n"));
-        return -1;
-    }
-    memset(farend, 0, farendlen);
-
-    if (t != NULL && t->sock >= 0) {
-        newsock = accept(t->sock, farend, &farendlen);
-
-        if (newsock < 0) {
-            DEBUGMSGTL(("netsnmp_unix","accept failed rc %d errno %d \"%s\"\n",
-                        newsock, errno, strerror(errno)));
-            free(farend);
-            return newsock;
-        }
-
-        if (t->data != NULL) {
-            free(t->data);
-        }
-
-        DEBUGMSGTL(("netsnmp_unix", "accept succeeded (farend %p len %d)\n",
-                    farend, farendlen));
-        t->data = farend;
-        t->data_length = sizeof(struct sockaddr_un);
-       netsnmp_sock_buffer_set(newsock, SO_SNDBUF, 1, 0);
-       netsnmp_sock_buffer_set(newsock, SO_RCVBUF, 1, 0);
-        return newsock;
-    } else {
-        free(farend);
-        return -1;
-    }
-}
-
-static int create_path = 0;
-static mode_t create_mode;
-
-#ifndef NETSNMP_FEATURE_REMOVE_UNIX_SOCKET_PATHS
-/** If trying to create unix sockets in nonexisting directories then
- *  try to create the directory with mask mode.
- */
-void netsnmp_unix_create_path_with_mode(int mode)
-{
-    create_path = 1;
-    create_mode = mode;
-}
-
-/** If trying to create unix sockets in nonexisting directories then
- *  fail.
- */
-void netsnmp_unix_dont_create_path(void)
-{
-    create_path = 0;
-}
-#endif /* NETSNMP_FEATURE_REMOVE_UNIX_SOCKET_PATHS */
-
-/*
- * Open a Unix-domain 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 (and we make up a temporary name for
- * the local end of the connection).
- */
-
-netsnmp_transport *
-netsnmp_unix_transport(struct sockaddr_un *addr, int local)
-{
-    netsnmp_transport *t = NULL;
-    sockaddr_un_pair *sup = NULL;
-    int             rc = 0;
-
-#ifdef NETSNMP_NO_LISTEN_SUPPORT
-    /* SPECIAL CIRCUMSTANCE: We still want AgentX to be able to operate,
-       so we allow for unix domain socktes to still listen when everything
-       else isn't allowed to.  Thus, we ignore this define in this file.
-    */
-#endif /* NETSNMP_NO_LISTEN_SUPPORT */
-
-    if (addr == NULL || addr->sun_family != AF_UNIX) {
-        return NULL;
-    }
-
-    t = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
-    if (t == NULL) {
-        return NULL;
-    }
-
-    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);
-    }
-
-    t->domain = netsnmp_UnixDomain;
-    t->domain_length =
-        sizeof(netsnmp_UnixDomain) / sizeof(netsnmp_UnixDomain[0]);
-
-    t->data = malloc(sizeof(sockaddr_un_pair));
-    if (t->data == NULL) {
-        netsnmp_transport_free(t);
-        return NULL;
-    }
-    memset(t->data, 0, sizeof(sockaddr_un_pair));
-    t->data_length = sizeof(sockaddr_un_pair);
-    sup = (sockaddr_un_pair *) t->data;
-
-    t->sock = socket(PF_UNIX, SOCK_STREAM, 0);
-    if (t->sock < 0) {
-        netsnmp_transport_free(t);
-        return NULL;
-    }
-
-    t->flags = NETSNMP_TRANSPORT_FLAG_STREAM;
-
-    if (local) {
-        t->local = (u_char *)malloc(strlen(addr->sun_path));
-        if (t->local == NULL) {
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        memcpy(t->local, addr->sun_path, strlen(addr->sun_path));
-        t->local_length = strlen(addr->sun_path);
-
-        /*
-         * This session is inteneded as a server, so we must bind to the given
-         * path (unlinking it first, to avoid errors).
-         */
-
-        t->flags |= NETSNMP_TRANSPORT_FLAG_LISTEN;
-
-        unlink(addr->sun_path);
-        rc = bind(t->sock, (struct sockaddr *) addr, SUN_LEN(addr));
-
-        if (rc != 0 && errno == ENOENT && create_path) {
-            rc = mkdirhier(addr->sun_path, create_mode, 1);
-            if (rc != 0) {
-                netsnmp_unix_close(t);
-                netsnmp_transport_free(t);
-                return NULL;
-            }
-            rc = bind(t->sock, (struct sockaddr *) addr, SUN_LEN(addr));
-        }
-        if (rc != 0) {
-            DEBUGMSGTL(("netsnmp_unix_transport",
-                        "couldn't bind \"%s\", errno %d (%s)\n",
-                        addr->sun_path, errno, strerror(errno)));
-            netsnmp_unix_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-
-        /*
-         * Save the address in the transport-specific data pointer for later
-         * use by netsnmp_unix_close.
-         */
-
-        sup->server.sun_family = AF_UNIX;
-        strcpy(sup->server.sun_path, addr->sun_path);
-        sup->local = 1;
-
-        /*
-         * Now sit here and listen for connections to arrive.
-         */
-
-        rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
-        if (rc != 0) {
-            DEBUGMSGTL(("netsnmp_unix_transport",
-                        "couldn't listen to \"%s\", errno %d (%s)\n",
-                        addr->sun_path, errno, strerror(errno)));
-            netsnmp_unix_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-
-    } else {
-        t->remote = (u_char *)malloc(strlen(addr->sun_path));
-        if (t->remote == NULL) {
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        memcpy(t->remote, addr->sun_path, strlen(addr->sun_path));
-        t->remote_length = strlen(addr->sun_path);
-
-        rc = connect(t->sock, (struct sockaddr *) addr,
-                     sizeof(struct sockaddr_un));
-        if (rc != 0) {
-            DEBUGMSGTL(("netsnmp_unix_transport",
-                        "couldn't connect to \"%s\", errno %d (%s)\n",
-                        addr->sun_path, errno, strerror(errno)));
-            netsnmp_unix_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-
-        /*
-         * Save the remote address in the transport-specific data pointer for
-         * later use by netsnmp_unix_send.
-         */
-
-        sup->server.sun_family = AF_UNIX;
-        strcpy(sup->server.sun_path, addr->sun_path);
-        sup->local = 0;
-        netsnmp_sock_buffer_set(t->sock, SO_SNDBUF, local, 0);
-        netsnmp_sock_buffer_set(t->sock, SO_RCVBUF, local, 0);
-    }
-
-    /*
-     * Message size is not limited by this transport (hence msgMaxSize
-     * is equal to the maximum legal size of an SNMP message).
-     */
-
-    t->msgMaxSize = 0x7fffffff;
-    t->f_recv     = netsnmp_unix_recv;
-    t->f_send     = netsnmp_unix_send;
-    t->f_close    = netsnmp_unix_close;
-    t->f_accept   = netsnmp_unix_accept;
-    t->f_fmtaddr  = netsnmp_unix_fmtaddr;
-
-    return t;
-}
-
-netsnmp_transport *
-netsnmp_unix_create_tstring(const char *string, int local,
-			    const char *default_target)
-{
-    struct sockaddr_un addr;
-
-    if (string && *string != '\0') {
-    } else if (default_target && *default_target != '\0') {
-      string = default_target;
-    }
-
-    if ((string != NULL && *string != '\0') &&
-	(strlen(string) < sizeof(addr.sun_path))) {
-        addr.sun_family = AF_UNIX;
-        memset(addr.sun_path, 0, sizeof(addr.sun_path));
-        strlcpy(addr.sun_path, string, sizeof(addr.sun_path));
-        return netsnmp_unix_transport(&addr, local);
-    } else {
-        if (string != NULL && *string != '\0') {
-            snmp_log(LOG_ERR, "Path too long for Unix domain transport\n");
-        }
-        return NULL;
-    }
-}
-
-
-
-netsnmp_transport *
-netsnmp_unix_create_ostring(const u_char * o, size_t o_len, int local)
-{
-    struct sockaddr_un addr;
-
-    if (o_len > 0 && o_len < (sizeof(addr.sun_path) - 1)) {
-        addr.sun_family = AF_UNIX;
-        memset(addr.sun_path, 0, sizeof(addr.sun_path));
-        strlcpy(addr.sun_path, (const char *)o, sizeof(addr.sun_path));
-        return netsnmp_unix_transport(&addr, local);
-    } else {
-        if (o_len > 0) {
-            snmp_log(LOG_ERR, "Path too long for Unix domain transport\n");
-        }
-    }
-    return NULL;
-}
-
-
-
-void
-netsnmp_unix_ctor(void)
-{
-    unixDomain.name = netsnmp_UnixDomain;
-    unixDomain.name_length = sizeof(netsnmp_UnixDomain) / sizeof(oid);
-    unixDomain.prefix = (const char**)calloc(2, sizeof(char *));
-    unixDomain.prefix[0] = "unix";
-
-    unixDomain.f_create_from_tstring     = NULL;
-    unixDomain.f_create_from_tstring_new = netsnmp_unix_create_tstring;
-    unixDomain.f_create_from_ostring     = netsnmp_unix_create_ostring;
-
-    netsnmp_tdomain_register(&unixDomain);
-}
-
-#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
-/* support for SNMPv1 and SNMPv2c on unix domain*/
-
-#define EXAMPLE_COMMUNITY "COMMUNITY"
-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;
-
-static com2SecUnixEntry   *com2SecUnixList = NULL, *com2SecUnixListLast = NULL;
-
-
-int
-netsnmp_unix_getSecName(void *opaque, int olength,
-                        const char *community,
-                        size_t community_len,
-                        const char **secName, const char **contextName)
-{
-    const com2SecUnixEntry   *c;
-    struct sockaddr_un *to = (struct sockaddr_un *) opaque;
-    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 (com2SecUnixList == NULL) {
-        DEBUGMSGTL(("netsnmp_unix_getSecName", "no com2sec entries\n"));
-        return 0;
-    }
-
-    /*
-     * If there is no unix socket path, then there can be no valid security
-     * name.
-     */
-
-    if (opaque == NULL || olength != sizeof(struct sockaddr_un) ||
-        to->sun_family != AF_UNIX) {
-        DEBUGMSGTL(("netsnmp_unix_getSecName",
-                    "no unix destine address in PDU?\n"));
-        return 1;
-    }
-
-    DEBUGIF("netsnmp_unix_getSecName") {
-        ztcommunity = (char *)malloc(community_len + 1);
-        if (ztcommunity != NULL) {
-            memcpy(ztcommunity, community, community_len);
-            ztcommunity[community_len] = '\0';
-        }
-
-        DEBUGMSGTL(("netsnmp_unix_getSecName", "resolve <\"%s\">\n",
-                    ztcommunity ? ztcommunity : "<malloc error>"));
-    }
-
-    for (c = com2SecUnixList; c != NULL; c = c->next) {
-        DEBUGMSGTL(("netsnmp_unix_getSecName","compare <\"%s\",to socket %s>",
-                    c->community, c->sockpath ));
-        if ((community_len == strlen(c->community)) &&
-            (memcmp(community, c->community, community_len) == 0) &&
-            /* compare sockpath, if pathlen == 0, always match */
-            (strlen(to->sun_path) == c->pathlen || c->pathlen == 0) &&
-            (memcmp(to->sun_path, c->sockpath, c->pathlen) == 0)
-            ) {
-            DEBUGMSG(("netsnmp_unix_getSecName", "... SUCCESS\n"));
-            if (secName != NULL) {
-                *secName = c->secName;
-                *contextName = c->contextName;
-            }
-            break;
-        }
-        DEBUGMSG(("netsnmp_unix_getSecName", "... nope\n"));
-    }
-    if (ztcommunity != NULL) {
-        free(ztcommunity);
-    }
-    return 1;
-}
-
-void
-netsnmp_unix_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   sockpath[sizeof(((struct sockaddr_un*)0)->sun_path) + 1];
-    size_t sockpathLen;
-
-    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 SOCKPATH parameter");
-        return;
-    }
-    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 (!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 */
-    if(strcmp(sockpath, "default") == 0) {
-        sockpathLen = 0;
-    }
-
-    {
-        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;
-        }
-
-        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;
-        }
-    }
-}
-
-void
-netsnmp_unix_com2SecList_free(void)
-{
-    com2SecUnixEntry   *e = com2SecUnixList;
-    while (e != NULL) {
-        com2SecUnixEntry   *tmp = e;
-        e = e->next;
-        free(tmp);
-    }
-    com2SecUnixList = com2SecUnixListLast = NULL;
-}
-#endif /* support for community based SNMP */
-
-void
-netsnmp_unix_agent_config_tokens_register(void)
-{
-#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
-    register_app_config_handler("com2secunix", netsnmp_unix_parse_security,
-                                netsnmp_unix_com2SecList_free,
-                                "[-Cn CONTEXT] secName sockpath community");
-#endif /* support for community based SNMP */
-}
diff --git a/snmplib/ucd_compat.c b/snmplib/ucd_compat.c
index 64c1e13..4f4234a 100644
--- a/snmplib/ucd_compat.c
+++ b/snmplib/ucd_compat.c
@@ -4,17 +4,12 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-#include <net-snmp/net-snmp-features.h>
 
 #include <net-snmp/types.h>
 #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>
 
-netsnmp_feature_child_of(ucd_compatibility, libnetsnmp)
-
-#ifndef NETSNMP_FEATURE_REMOVE_UCD_COMPATIBILITY
 /*
  * use <netsnmp_session *)->s_snmp_errno instead 
  */
@@ -27,12 +22,10 @@ snmp_get_errno(void)
 /*
  * 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)
 {
@@ -225,6 +218,3 @@ ds_shutdown		(void)
 {
   netsnmp_ds_shutdown();
 }
-#else /* !NETSNMP_FEATURE_REMOVE_UCD_COMPATIBILITY */
-netsnmp_feature_unused(ucd_compatibility);
-#endif /* !NETSNMP_FEATURE_REMOVE_UCD_COMPATIBILITY */
diff --git a/snmplib/vacm.c b/snmplib/vacm.c
index c639785..5aa9b82 100644
--- a/snmplib/vacm.c
+++ b/snmplib/vacm.c
@@ -31,7 +31,11 @@
 #include <sys/types.h>
 #include <stdio.h>
 #if TIME_WITH_SYS_TIME
-# include <sys/time.h>
+# ifdef WIN32
+#  include <sys/timeb.h>
+# else
+#  include <sys/time.h>
+# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -41,6 +45,10 @@
 # endif
 #endif
 
+#if HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
@@ -54,7 +62,6 @@
 #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;
@@ -159,7 +166,7 @@ vacm_save_view(struct vacm_viewEntry *view, const char *token,
 }
 
 void
-vacm_parse_config_view(const char *token, const char *line)
+vacm_parse_config_view(const char *token, char *line)
 {
     struct vacm_viewEntry view;
     struct vacm_viewEntry *vptr;
@@ -169,17 +176,17 @@ vacm_parse_config_view(const char *token, const char *line)
     size_t          len;
 
     view.viewStatus = atoi(line);
-    line = skip_token_const(line);
+    line = skip_token(line);
     view.viewStorageType = atoi(line);
-    line = skip_token_const(line);
+    line = skip_token(line);
     view.viewType = atoi(line);
-    line = skip_token_const(line);
+    line = skip_token(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_const(line, (oid **) & viewSubtree,
+        read_config_read_objid(line, (oid **) & viewSubtree,
                                &view.viewSubtreeLen);
 
     vptr =
@@ -192,10 +199,10 @@ vacm_parse_config_view(const char *token, const char *line)
     vptr->viewStatus = view.viewStatus;
     vptr->viewStorageType = view.viewStorageType;
     vptr->viewType = view.viewType;
-    viewMask = vptr->viewMask;
-    vptr->viewMaskLen = sizeof(vptr->viewMask);
+    viewMask = (u_char *) vptr->viewMask;
     line =
-        read_config_read_octet_string(line, &viewMask, &vptr->viewMaskLen);
+        read_config_read_octet_string(line, (u_char **) & viewMask,
+                                      &vptr->viewMaskLen);
 }
 
 /*
@@ -277,8 +284,7 @@ vacm_save_auth_access(struct vacm_accessEntry *access_entry,
 }
 
 char *
-_vacm_parse_config_access_common(struct vacm_accessEntry **aptr,
-                                 const char *line)
+_vacm_parse_config_access_common(struct vacm_accessEntry **aptr, char *line)
 {
     struct vacm_accessEntry access;
     char           *cPrefix = (char *) &access.contextPrefix;
@@ -286,15 +292,15 @@ _vacm_parse_config_access_common(struct vacm_accessEntry **aptr,
     size_t          len;
 
     access.status = atoi(line);
-    line = skip_token_const(line);
+    line = skip_token(line);
     access.storageType = atoi(line);
-    line = skip_token_const(line);
+    line = skip_token(line);
     access.securityModel = atoi(line);
-    line = skip_token_const(line);
+    line = skip_token(line);
     access.securityLevel = atoi(line);
-    line = skip_token_const(line);
+    line = skip_token(line);
     access.contextMatch = atoi(line);
-    line = skip_token_const(line);
+    line = skip_token(line);
     len  = sizeof(access.groupName);
     line = read_config_read_octet_string(line, (u_char **) &gName,   &len);
     len  = sizeof(access.contextPrefix);
@@ -317,11 +323,11 @@ _vacm_parse_config_access_common(struct vacm_accessEntry **aptr,
     (*aptr)->securityModel = access.securityModel;
     (*aptr)->securityLevel = access.securityLevel;
     (*aptr)->contextMatch  = access.contextMatch;
-    return NETSNMP_REMOVE_CONST(char *, line);
+    return line;
 }
 
 void
-vacm_parse_config_access(const char *token, const char *line)
+vacm_parse_config_access(const char *token, char *line)
 {
     struct vacm_accessEntry *aptr;
     char           *readView, *writeView, *notifyView;
@@ -347,7 +353,7 @@ vacm_parse_config_access(const char *token, const char *line)
 }
 
 void
-vacm_parse_config_auth_access(const char *token, const char *line)
+vacm_parse_config_auth_access(const char *token, char *line)
 {
     struct vacm_accessEntry *aptr;
     int             authtype;
@@ -359,7 +365,7 @@ vacm_parse_config_auth_access(const char *token, const char *line)
         return;
 
     authtype = atoi(line);
-    line = skip_token_const(line);
+    line = skip_token(line);
 
     view = (char *) aptr->views[authtype];
     len  = sizeof(aptr->views[authtype]);
@@ -395,7 +401,7 @@ vacm_save_group(struct vacm_groupEntry *group_entry, const char *token,
 }
 
 void
-vacm_parse_config_group(const char *token, const char *line)
+vacm_parse_config_group(const char *token, char *line)
 {
     struct vacm_groupEntry group;
     struct vacm_groupEntry *gptr;
@@ -404,11 +410,11 @@ vacm_parse_config_group(const char *token, const char *line)
     size_t          len;
 
     group.status = atoi(line);
-    line = skip_token_const(line);
+    line = skip_token(line);
     group.storageType = atoi(line);
-    line = skip_token_const(line);
+    line = skip_token(line);
     group.securityModel = atoi(line);
-    line = skip_token_const(line);
+    line = skip_token(line);
     len = sizeof(group.securityName);
     line =
         read_config_read_octet_string(line, (u_char **) & securityName,
@@ -436,21 +442,21 @@ netsnmp_view_get(struct vacm_viewEntry *head, const char *viewName,
     int count=0;
 
     glen = (int) strlen(viewName);
-    if (glen < 0 || glen > VACM_MAX_STRING)
+    if (glen < 0 || glen >= VACM_MAX_STRING)
         return NULL;
     view[0] = glen;
     strcpy(view + 1, viewName);
     for (vp = head; vp; vp = vp->next) {
         if (!memcmp(view, vp->viewName, glen + 1)
             && viewSubtreeLen >= (vp->viewSubtreeLen - 1)) {
-            int             mask = 0x80;
-            unsigned int    oidpos, maskpos = 0;
+            int             mask = 0x80, maskpos = 0;
+            int             oidpos;
             found = 1;
 
             for (oidpos = 0;
-                 found && oidpos < vp->viewSubtreeLen - 1;
+                 found && oidpos < (int) vp->viewSubtreeLen - 1;
                  oidpos++) {
-                if (mode==VACM_MODE_IGNORE_MASK || (VIEW_MASK(vp, maskpos, mask) != 0)) {
+                if (mode==VACM_MODE_IGNORE_MASK || (VIEW_MASK(vp, maskpos, mask)) != 0) {
                     if (viewSubtree[oidpos] !=
                         vp->viewSubtree[oidpos + 1])
                         found = 0;
@@ -519,7 +525,7 @@ netsnmp_view_subtree_check(struct vacm_viewEntry *head, const char *viewName,
     int             found, glen;
 
     glen = (int) strlen(viewName);
-    if (glen < 0 || glen > VACM_MAX_STRING)
+    if (glen < 0 || glen >= VACM_MAX_STRING)
         return VACM_NOTINVIEW;
     view[0] = glen;
     strcpy(view + 1, viewName);
@@ -532,15 +538,15 @@ netsnmp_view_subtree_check(struct vacm_viewEntry *head, const char *viewName,
              * subtree we are comparing against.
              */
             if (viewSubtreeLen >= (vp->viewSubtreeLen - 1)) {
-                int             mask = 0x80;
-                unsigned int    oidpos, maskpos = 0;
+                int             mask = 0x80, maskpos = 0;
+                int             oidpos;
                 found = 1;
 
                 /*
                  * check the mask
                  */
                 for (oidpos = 0;
-                     found && oidpos < vp->viewSubtreeLen - 1;
+                     found && oidpos < (int) vp->viewSubtreeLen - 1;
                      oidpos++) {
                     if (VIEW_MASK(vp, maskpos, mask) != 0) {
                         if (viewSubtree[oidpos] !=
@@ -580,15 +586,15 @@ netsnmp_view_subtree_check(struct vacm_viewEntry *head, const char *viewName,
              * response.
              */
             else {
-                int             mask = 0x80;
-                unsigned int    oidpos, maskpos = 0;
+                int             mask = 0x80, maskpos = 0;
+                int             oidpos;
                 found = 1;
 
                 /*
                  * check the mask up to the length of the provided subtree
                  */
                 for (oidpos = 0;
-                     found && oidpos < viewSubtreeLen;
+                     found && oidpos < (int) viewSubtreeLen;
                      oidpos++) {
                     if (VIEW_MASK(vp, maskpos, mask) != 0) {
                         if (viewSubtree[oidpos] !=
@@ -675,7 +681,7 @@ netsnmp_view_create(struct vacm_viewEntry **head, const char *viewName,
     int             cmp, cmp2, glen;
 
     glen = (int) strlen(viewName);
-    if (glen < 0 || glen > VACM_MAX_STRING)
+    if (glen < 0 || glen >= VACM_MAX_STRING)
         return NULL;
     vp = (struct vacm_viewEntry *) calloc(1,
                                           sizeof(struct vacm_viewEntry));
@@ -765,7 +771,7 @@ vacm_getGroupEntry(int securityModel, const char *securityName)
     int             glen;
 
     glen = (int) strlen(securityName);
-    if (glen < 0 || glen > VACM_MAX_STRING)
+    if (glen < 0 || glen >= VACM_MAX_STRING)
         return NULL;
     secname[0] = glen;
     strcpy(secname + 1, securityName);
@@ -801,7 +807,7 @@ vacm_createGroupEntry(int securityModel, const char *securityName)
     int             cmp, glen;
 
     glen = (int) strlen(securityName);
-    if (glen < 0 || glen > VACM_MAX_STRING)
+    if (glen < 0 || glen >= VACM_MAX_STRING)
         return NULL;
     gp = (struct vacm_groupEntry *) calloc(1,
                                            sizeof(struct vacm_groupEntry));
@@ -842,7 +848,6 @@ vacm_createGroupEntry(int securityModel, const char *securityName)
     return gp;
 }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 void
 vacm_destroyGroupEntry(int securityModel, const char *securityName)
 {
@@ -868,7 +873,6 @@ vacm_destroyGroupEntry(int securityModel, const char *securityName)
     free(vp);
     return;
 }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 void
 vacm_destroyAllGroupEntries(void)
@@ -932,10 +936,10 @@ vacm_getAccessEntry(const char *groupName,
     int             glen, clen;
 
     glen = (int) strlen(groupName);
-    if (glen < 0 || glen > VACM_MAX_STRING)
+    if (glen < 0 || glen >= VACM_MAX_STRING)
         return NULL;
     clen = (int) strlen(contextPrefix);
-    if (clen < 0 || clen > VACM_MAX_STRING)
+    if (clen < 0 || clen >= VACM_MAX_STRING)
         return NULL;
 
     group[0] = glen;
@@ -984,10 +988,10 @@ vacm_createAccessEntry(const char *groupName,
     int             cmp, glen, clen;
 
     glen = (int) strlen(groupName);
-    if (glen < 0 || glen > VACM_MAX_STRING)
+    if (glen < 0 || glen >= VACM_MAX_STRING)
         return NULL;
     clen = (int) strlen(contextPrefix);
-    if (clen < 0 || clen > VACM_MAX_STRING)
+    if (clen < 0 || clen >= VACM_MAX_STRING)
         return NULL;
     vp = (struct vacm_accessEntry *) calloc(1,
                                             sizeof(struct
@@ -1040,7 +1044,6 @@ vacm_createAccessEntry(const char *groupName,
     return vp;
 }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 void
 vacm_destroyAccessEntry(const char *groupName,
                         const char *contextPrefix,
@@ -1072,7 +1075,6 @@ vacm_destroyAccessEntry(const char *groupName,
     free(vp);
     return;
 }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 void
 vacm_destroyAllAccessEntries(void)
@@ -1146,14 +1148,12 @@ vacm_createViewEntry(const char *viewName,
                                 viewSubtreeLen);
 }
 
-#ifndef NETSNMP_NO_WRITE_SUPPORT
 void
 vacm_destroyViewEntry(const char *viewName,
                       oid * viewSubtree, size_t viewSubtreeLen)
 {
     netsnmp_view_destroy( &viewList, viewName, viewSubtree, viewSubtreeLen);
 }
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
 
 void
 vacm_destroyAllViewEntries(void)
diff --git a/snmplib/winpipe.c b/snmplib/winpipe.c
index bbe37f1..e3f75a0 100644
--- a/snmplib/winpipe.c
+++ b/snmplib/winpipe.c
@@ -33,10 +33,9 @@
 #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)
 {
@@ -84,6 +83,7 @@ static int ConnectUDPSocket(SOCKET *sock, struct sockaddr_in *socketaddress, SOC
 static int TestUDPSend(SOCKET *sock, struct sockaddr_in *socketaddress)
 {
 	unsigned short port = socketaddress->sin_port;
+	int size = sizeof(struct sockaddr);
 
 	int bytessent = sendto(*sock, (char *) &port, sizeof(port), 0, NULL, 0);
 	if(bytessent != sizeof(port))
@@ -111,6 +111,8 @@ static int TestUDPReceive(SOCKET *sock, SOCKET *remotesocket, struct sockaddr_in
 
 static void CloseUDPSocketPair(SOCKET *socketpair)
 {
+	int i = WSAGetLastError();
+
 	if(socketpair[0] != INVALID_SOCKET)
 	{
 		closesocket(socketpair[0]);
diff --git a/snmplib/winservice.c b/snmplib/winservice.c
index 10b6e1c..864ca64 100644
--- a/snmplib/winservice.c
+++ b/snmplib/winservice.c
@@ -6,8 +6,6 @@
 
 #ifdef WIN32
 
-#include <net-snmp/net-snmp-config.h>
-
 #include <windows.h>
 #include <tchar.h>
 
@@ -37,15 +35,6 @@ labelFIN: \
 #define CountOf(arr) ( sizeof(arr) / sizeof(arr[0]) )
 
 
-#if defined(WIN32) && defined(HAVE_WIN32_PLATFORM_SDK) && !defined(mingw32)
-#pragma comment(lib, "iphlpapi.lib")
-#ifdef USING_WINEXTDLL_MODULE
-#pragma comment(lib, "snmpapi.lib")
-#pragma comment(lib, "mgmtapi.lib")
-#endif
-#endif
-
- 
     /*
      * External global variables used here
      */
@@ -101,18 +90,6 @@ static INT (*ServiceEntryPoint) (INT Argc, LPTSTR Argv[]) = 0L;
      */
 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);
 
@@ -155,12 +132,12 @@ RegisterService (LPCTSTR lpszServiceName, LPCTSTR lpszServiceDisplayName,
       }
 
     /*
-     * Generate the command to be executed by the SCM 
+     * Generate the Command to be executed by SCM 
      */
     _sntprintf (szServiceCommand, CountOf(szServiceCommand), _T("%s %s"), szServicePath, _T ("-service"));
 
     /*
-     * Create the desired service 
+     * Create the Desired service 
      */
     hService = CreateService (hSCManager, lpszServiceName, lpszServiceDisplayName,
 			SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS,
@@ -181,7 +158,7 @@ RegisterService (LPCTSTR lpszServiceName, LPCTSTR lpszServiceDisplayName,
       }
 
     /*
-     * Create registry entries for the event log 
+     * Create registry entries for EventLog 
      */
     /*
      * Create registry Application event log key 
@@ -329,7 +306,7 @@ RegisterService (LPCTSTR lpszServiceName, LPCTSTR lpszServiceDisplayName,
       }
 
     /*
-     * Ready to log messages 
+     * Ready to Log messages 
      */
 
     /*
@@ -456,16 +433,16 @@ UnregisterService (LPCTSTR lpszServiceName, int quiet)
 }
 
     /*
-     * Write a message to the Windows event log.
+     * To write message to Windows Event log
+     * Input - Event Type, Message string
      */
 VOID
 WriteToEventLog (WORD wType, LPCTSTR pszFormat, ...)
 {
   TCHAR szMessage[512];
-  LPCTSTR LogStr[1];
+  LPTSTR LogStr[1];
   va_list ArgList;
   HANDLE hEventSource = NULL;
-
   va_start (ArgList, pszFormat);
   _vsntprintf (szMessage, CountOf(szMessage), pszFormat, ArgList);
   va_end (ArgList);
@@ -474,7 +451,7 @@ WriteToEventLog (WORD wType, LPCTSTR pszFormat, ...)
   if (hEventSource == NULL)
     return;
   ReportEvent (hEventSource, wType, 0,
-	       DISPLAY_MSG,
+	       DISPLAY_MSG,	/* To Just output the text to event log */
 	       NULL, 1, 0, LogStr, NULL);
   DeregisterEventSource (hEventSource);
 }
@@ -492,7 +469,7 @@ WriteToEventLog (WORD wType, LPCTSTR pszFormat, ...)
 INT
 ParseCmdLineForServiceOption (int argc, TCHAR * argv[], int *quiet)
 {
-  int nReturn = RUN_AS_CONSOLE;	/* default is to run as a console application */
+  int nReturn = RUN_AS_CONSOLE;	/* Defualted to run as console */
 
   if (argc >= 2)
     {
@@ -531,7 +508,7 @@ ParseCmdLineForServiceOption (int argc, TCHAR * argv[], int *quiet)
 }
 
     /*
-     * Write error message to event log, console or pop-up window.
+     * Write error message to Event Log, console or pop-up window
      *
      * If useGetLastError is 1, the last error returned from GetLastError()
      * is appended to pszMessage, separated by a ": ".
@@ -546,6 +523,7 @@ ParseCmdLineForServiceOption (int argc, TCHAR * argv[], int *quiet)
 VOID
 ProcessError (WORD eventLogType, LPCTSTR pszMessage, int useGetLastError, int quiet)
 {
+  LPTSTR pErrorMsgTemp = NULL;
   HANDLE hEventSource = NULL;
   TCHAR pszMessageFull[MAX_STR_SIZE]; /* Combined pszMessage and GetLastError */
 
@@ -554,7 +532,6 @@ ProcessError (WORD eventLogType, LPCTSTR pszMessage, int useGetLastError, int qu
    * pszMessageFull
    */
   if (useGetLastError) {
-  LPTSTR pErrorMsgTemp = NULL;
   FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER |
 		 FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError (),
 		 MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
@@ -572,21 +549,19 @@ ProcessError (WORD eventLogType, LPCTSTR pszMessage, int useGetLastError, int qu
   
   hEventSource = RegisterEventSource (NULL, app_name_long);
   if (hEventSource != NULL) {
-    LPCTSTR LogStr[1];
-    LogStr[0] = pszMessageFull;
+    pErrorMsgTemp = pszMessageFull;
     
     if (ReportEvent (hEventSource, 
           eventLogType, 
           0,
-          DISPLAY_MSG,	/* just output the text to the event log */
+          DISPLAY_MSG,	/* To Just output the text to event log */
           NULL, 
           1, 
           0, 
-          LogStr, 
+          &pErrorMsgTemp, 
           NULL)) {
     }
     else {
-      LPTSTR pErrorMsgTemp = NULL;
       FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER |
           FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError (),
           MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
@@ -619,12 +594,14 @@ ProcessError (WORD eventLogType, LPCTSTR pszMessage, int useGetLastError, int qu
         break;
       }
     }
+  
+  LocalFree (pErrorMsgTemp);  
 }
 
     /*
-     * Update current service status.
-     * Sends the current service status to the SCM. Also updates
-     * the global service status structure.
+     *  To update current service status 
+     *  Sends the current service status to the SCM. Also updates
+     *  the global service status structure.
      */
 static BOOL
 UpdateServiceStatus (DWORD dwStatus, DWORD dwErrorCode, DWORD dwWaitHint)
@@ -662,7 +639,7 @@ UpdateServiceStatus (DWORD dwStatus, DWORD dwErrorCode, DWORD dwWaitHint)
 }
 
     /*
-     * Reports current service status to SCM
+     * Reports current Service status to SCM
      */
 static BOOL
 ReportCurrentServiceStatus ()
@@ -671,7 +648,7 @@ ReportCurrentServiceStatus ()
 }
 
     /*
-     * ServiceMain function.
+     * The ServiceMain function to start service.
      */
 VOID WINAPI
 ServiceMain (DWORD argc, LPTSTR argv[])
@@ -680,12 +657,14 @@ ServiceMain (DWORD argc, LPTSTR argv[])
   unsigned threadId;
 
   /*
-   * Input arguments
+   * Input Arguments to function startup 
    */
   DWORD ArgCount = 0;
   LPTSTR *ArgArray = NULL;
   TCHAR szRegKey[512];
-  HKEY hParamKey = NULL;
+  TCHAR szValue[128];
+  DWORD nSize;
+  HKEY hParamKey = NULL;	/* To read startup parameters */
   DWORD TotalParams = 0;
   DWORD i;
   InputParams ThreadInputParams;
@@ -696,7 +675,7 @@ ServiceMain (DWORD argc, LPTSTR argv[])
 
   /*
    * SCM sends Service Name as first arg, increment to point
-   * arguments user specified while starting control agent
+   * arguments user specified while starting contorl agent
    */
 
   /*
@@ -705,7 +684,7 @@ ServiceMain (DWORD argc, LPTSTR argv[])
   ArgCount = 1;
 
   /*
-   * Create registry key path 
+   * Create Registry Key path 
    */
   _sntprintf (szRegKey, CountOf(szRegKey), _T("%s%s\\%s"),
 	     _T ("SYSTEM\\CurrentControlSet\\Services\\"), app_name_long,
@@ -715,7 +694,7 @@ ServiceMain (DWORD argc, LPTSTR argv[])
     {
 
       /*
-       * Read startup configuration information 
+       * Read startup Configuration information 
        */
       /*
        * Find number of subkeys inside parameters 
@@ -731,7 +710,7 @@ ServiceMain (DWORD argc, LPTSTR argv[])
 	      /*
 	       * Allocate memory to hold strings 
 	       */
-	      ArgArray = calloc(ArgCount, sizeof(ArgArray[0]));
+	      ArgArray = (LPTSTR *) malloc (sizeof (LPTSTR) * ArgCount);
               if (ArgArray == 0)
                 {
                   WriteToEventLog (EVENTLOG_ERROR_TYPE,
@@ -745,10 +724,6 @@ ServiceMain (DWORD argc, LPTSTR argv[])
 	      ArgArray[0] = _tcsdup (argv[0]);
 	      for (i = 1; i <= TotalParams; i++)
 		{
-                  DWORD dwErrorcode;
-                  DWORD nSize;
-                  DWORD nRegkeyType;
-                  TCHAR *szValue;
 
 		  /*
 		   * Create Subkey value name 
@@ -756,35 +731,12 @@ ServiceMain (DWORD argc, LPTSTR argv[])
 		  _sntprintf (szRegKey, CountOf(szRegKey), _T("%s%d"), _T("Param"), i);
 
 		  /*
-		   * Query subkey.
+		   * Set size 
 		   */
-		  nSize = 0;
-		  dwErrorcode = RegQueryValueEx(hParamKey, szRegKey, NULL,
-                                                &nRegkeyType, NULL, &nSize);
-                  if (dwErrorcode == ERROR_SUCCESS) {
-                    if (nRegkeyType == REG_SZ || nRegkeyType == REG_EXPAND_SZ) {
-                      szValue = malloc(nSize + sizeof(szValue[0]));
-                      if (szValue) {
-		        dwErrorcode = RegQueryValueEx(hParamKey, szRegKey, NULL,
-                                                      &nRegkeyType, (LPBYTE)szValue, &nSize);
-                        if (dwErrorcode == ERROR_SUCCESS) {
-                          szValue[nSize] = 0;
-                          ArgArray[i] = szValue;
-                        } else {
-                          free(szValue);
-                          WriteToEventLog(EVENTLOG_ERROR_TYPE, _T("Querying registry key %s failed: error code %ld"), szRegKey, dwErrorcode);
-                        }
-                      } else
-                        WriteToEventLog(EVENTLOG_ERROR_TYPE, _T("Querying registry key %s failed: out of memory"), szRegKey);
-                    } else
-                      WriteToEventLog(EVENTLOG_ERROR_TYPE, _T("Type %ld of registry key %s is incorrect"), nRegkeyType, szRegKey);
-                  } else
-                    WriteToEventLog(EVENTLOG_ERROR_TYPE, _T("Querying registry key %s failed: error code %ld"), szRegKey, dwErrorcode);
-
-                  if (!ArgArray[i]) {
-                    TotalParams = ArgCount = i;
-                    break;
-                  }
+		  nSize = 128;
+		  RegQueryValueEx (hParamKey, szRegKey, 0, NULL,
+				   (LPBYTE) & szValue, &nSize);
+		  ArgArray[i] = _tcsdup (szValue);
 		}
 	    }
 	}
@@ -794,7 +746,7 @@ ServiceMain (DWORD argc, LPTSTR argv[])
     {
 
       /*
-       * No startup args are given 
+       * No statup agrs are given 
        */
       ThreadInputParams.Argc = argc;
       ThreadInputParams.Argv = argv;
@@ -818,12 +770,12 @@ ServiceMain (DWORD argc, LPTSTR argv[])
     }
 
   /*
-   * Update the service status to START_PENDING.
+   * Update the service status to START_PENDING 
    */
   UpdateServiceStatus (SERVICE_START_PENDING, NO_ERROR, SCM_WAIT_INTERVAL);
 
   /*
-   * Start the worker thread, which does the majority of the work .
+   * Spin of worker thread, which does majority of the work 
    */
   TRY
   {
@@ -844,12 +796,13 @@ ServiceMain (DWORD argc, LPTSTR argv[])
       }
 
     /*
-     * Set service status to SERVICE_RUNNING.
+     * Set Service Status to Running 
      */
     UpdateServiceStatus (SERVICE_RUNNING, NO_ERROR, SCM_WAIT_INTERVAL);
 
     /*
-     * Wait until the worker thread finishes.
+     * Wait for termination event and worker thread to
+     * * spin down.
      */
     WaitForSingleObject (hServiceThread, INFINITE);
   }
@@ -864,12 +817,12 @@ ServiceMain (DWORD argc, LPTSTR argv[])
     FreeSecurityAttributes (&SecurityAttributes);
 
     /*
-     * Free allocated argument list 
+     * Delete allocated argument list 
      */
     if (ArgCount > 1 && ArgArray != NULL)
       {
 	/*
-	 * Free all strings 
+	 * Delete all strings 
 	 */
 	for (i = 0; i < ArgCount; i++)
 	  {
diff --git a/testing/Makefile.in b/testing/Makefile.in
index 0e70132..7b8a005 100644
--- a/testing/Makefile.in
+++ b/testing/Makefile.in
@@ -10,6 +10,8 @@
 # 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@
 
@@ -18,43 +20,10 @@ PARSEOBJS	=
 CPPFLAGS	= $(SNMPLIB_INCLUDES) @CPPFLAGS@
 CC		= @CC@ $(CPPFLAGS)
 
-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"
+all: $(TARG)
 
 test:
-	@if test "x$(PERL)" = "x" \
-	         -o "x at PERL_SYSTEM_INVOKES_POSIX_SHELL@" != xyes \
-		 || { ! $(PERL) -e 'require TAP::Harness;' >/dev/null 2>&1 \
-		    && ! $(PERL) -e 'require Test::Harness;' >/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)
-
+	$(srcdir)/RUNTESTS -a -D `pwd`/.. $(TESTOPTS)
 
 test-mibs:
 	cd $(srcdir)/rfc1213 ; ./run
diff --git a/testing/README b/testing/README
index faccc3e..99cb3a0 100644
--- a/testing/README
+++ b/testing/README
@@ -1,16 +1,21 @@
-The RUNFULLTESTS script is a wrapper around the tests.  All the
-tests are required to produce TAP output (hopefully soon to be
-standardized itself).
+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):
 
-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.
-
-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
+Usage: RUNTESTS [-a] [-S SLEEPTIME] [-h] [-i] [-v] [-V] [-s]
+       [-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.
+            udp,tcp,udp6,tcp6,unix are available.
diff --git a/testing/RUNFULLTESTS b/testing/RUNFULLTESTS
deleted file mode 100755
index 7f60157..0000000
--- a/testing/RUNFULLTESTS
+++ /dev/null
@@ -1,813 +0,0 @@
-#!/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;
-    }
-}
-
-
-########################################
-# 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
- at 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  ", at 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 at users.sourceforge.net>
-
-=cut
-
diff --git a/testing/RUNTESTS b/testing/RUNTESTS
index e11c969..c39e761 100755
--- a/testing/RUNTESTS
+++ b/testing/RUNTESTS
@@ -1,45 +1,400 @@
 #!/bin/sh
+#
+# RUNTESTS [-h]...
+#
+# RETURNS:	Number of failed tests.
+#
+# CALLS: eval_oneprogram.sh [-h][-lk] <program>
+#
+#
 
-srcdir=`dirname $0`
-srcdir=`cd $srcdir; pwd`
-srcdir=`dirname $srcdir`
+#
+# 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
 
-# set up MIBDIRS to refer to the src directory
-if [ "x$MIBDIRS" = "x" ]; then
-    MIBDIRS=${srcdir}/mibs
-    export MIBDIRS
+# 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 17
+
+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
+
+# Make sure MinGW / MSYS users have the kill.exe program to stop the agent and snmptrapd
+if [ "x$OSTYPE" = "xmsys" ]; then
+  kill_command=`which kill.exe`
+  if [ "x$kill_command" = "x" ]; then
+    echo Could not find kill.exe.  Aborting tests
+    echo Kill.exe is available from the Support Tools package availble on the
+    echo Windows 2000 CDROM under SUPPORT\\TOOLS.
+    exit
+  fi
+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
 
-# Make sure MinGW / MSYS users have the pskill.exe program to stop the agent and
-# snmptrapd
-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."
-    exit 1
-fi 
+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
-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`
+
+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].*//;'`
     else
-        failed_count=`expr $failed_count + 1`
-        echo "$i" >> failed_tests
+        id_x=0
+        for itest in $inp; do
+            if [ "$cntr" = "$id_x" ] ; then
+                num="$itest"
+            fi
+            id_x=`expr $id_x + 1`
+        done
     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
new file mode 100644
index 0000000..da483a1
--- /dev/null
+++ b/testing/T.c
@@ -0,0 +1,182 @@
+/*
+ * 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
new file mode 100644
index 0000000..d0a51a8
--- /dev/null
+++ b/testing/T2.sh
@@ -0,0 +1,32 @@
+#!/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/TESTCONF.sh b/testing/TESTCONF.sh
new file mode 100644
index 0000000..ebc4d3d
--- /dev/null
+++ b/testing/TESTCONF.sh
@@ -0,0 +1,181 @@
+#! /bin/sh -f
+
+#
+# Variables:  (* = exported)
+#  *SNMP_TMPDIR:  	  place to put files used in testing.
+#   SNMP_TESTDIR: 	  where the test scripts are kept.
+#  *SNMP_PERSISTENT_FILE: where to store the agent's persistent information
+#                         (XXX: this should be specific to just the agent)
+
+#
+# Only allow ourselves to be eval'ed once
+#
+if [ "x$TESTCONF_SH_EVALED" != "xyes" ]; then
+    TESTCONF_SH_EVALED=yes
+
+#
+# set cpu and memory limits to prevent major damage
+#
+# defaults: 1h CPU, 500MB VMEM
+#
+[ "x$SNMP_LIMIT_VMEM" = "x" ] && SNMP_LIMIT_VMEM=512000
+[ "x$SNMP_LIMIT_CPU" = "x" ] && SNMP_LIMIT_CPU=3600
+# ulimit will fail if existing limit is lower -- ignore because it's ok
+ulimit -S -t $SNMP_LIMIT_CPU 2>/dev/null
+# not all sh-alikes support "ulimit -v" -- play safe
+[ "x$BASH_VERSION" != "x" ] && ulimit -S -v $SNMP_LIMIT_VMEM 2>/dev/null
+
+#
+# Set up an NL suppressing echo command
+#
+case "`echo 'x\c'`" in
+  'x\c')
+    ECHO() { echo -n $*; }
+    ;;
+  x)
+    ECHO() { echo $*\\c; }
+    ;;
+  *)
+    echo "I don't understand your echo command ..."
+    exit 1
+    ;;
+esac
+#
+# how verbose should we be (0 or 1)
+#
+if [ "x$SNMP_VERBOSE" = "x" ]; then
+    SNMP_VERBOSE=0
+    export SNMP_VERBOSE
+fi
+
+if [ "x$MIBDIRS" = "x" ]; then
+  if [ "x$SNMP_PREFER_NEAR_MIBS" = "x1" ]; then
+    MIBDIRS=${SNMP_BASEDIR}/../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
+    export PATH
+    SNMP_PATH=yes
+    export SNMP_PATH
+fi
+    
+
+# Set up temporary directory
+if [ "x$SNMP_TMPDIR" = "x" -a "x$SNMP_HEADERONLY" != "xyes" ]; then
+    if [ "x$testnum" = "x" ] ; then
+        testnum=1
+    fi
+    SNMP_TMPDIR="/tmp/snmp-test-$testnum-$$"
+    export SNMP_TMPDIR
+    if [ -d $SNMP_TMPDIR ]; then
+	echo "$0: ERROR: $SNMP_TMPDIR already existed."
+	exit 1;
+    fi
+    SNMP_TMP_PERSISTENTDIR=$SNMP_TMPDIR/persist
+    export SNMP_TMP_PERSISTENTDIR
+    mkdir $SNMP_TMPDIR
+    mkdir $SNMP_TMP_PERSISTENTDIR
+    chmod 0700 $SNMP_TMPDIR $SNMP_TMP_PERSISTENTDIR
+fi
+
+if [ "x$SNMP_SAVE_TMPDIR" = "x" ]; then
+    SNMP_SAVE_TMPDIR="no"
+    export SNMP_SAVE_TMPDIR
+fi
+
+SNMP_ENV_SEPARATOR="`$SNMP_UPDIR/net-snmp-config --env-separator`"
+SNMP_PERLPROG="`$SNMP_UPDIR/net-snmp-config --perlprog`"
+SNMP_TESTDIR="$SNMP_BASEDIR/tests"
+SNMP_CONFIG_FILE="$SNMP_TMPDIR/snmpd.conf"
+SNMPTRAPD_CONFIG_FILE="$SNMP_TMPDIR/snmptrapd.conf"
+AGENTX_CONFIG_FILE="$SNMP_TMPDIR/agentx.conf"
+SNMP_SNMPTRAPD_LOG_FILE="$SNMP_TMPDIR/snmptrapd.log"
+SNMP_SNMPTRAPD_PID_FILE="$SNMP_TMPDIR/snmptrapd.pid"
+SNMP_SNMPD_PID_FILE="$SNMP_TMPDIR/snmpd.pid"
+SNMP_SNMPD_LOG_FILE="$SNMP_TMPDIR/snmpd.log"
+SNMP_AGENTX_PID_FILE="$SNMP_TMPDIR/agentx.pid"
+SNMP_AGENTX_LOG_FILE="$SNMP_TMPDIR/agentx.log"
+SNMPCONFPATH="${SNMP_TMPDIR}${SNMP_ENV_SEPARATOR}${SNMP_TMP_PERSISTENTDIR}"
+export SNMPCONFPATH
+SNMP_PERSISTENT_DIR=$SNMP_TMP_PERSISTENTDIR
+export SNMP_PERSISTENT_DIR
+#SNMP_PERSISTENT_FILE="$SNMP_TMP_PERSISTENTDIR/persistent-store.conf"
+#export SNMP_PERSISTENT_FILE
+
+## Setup default flags and ports iff not done
+if [ "x$SNMP_FLAGS" = "x" ]; then
+    SNMP_FLAGS="-d"
+fi
+if test -x /bin/netstat ; then
+    NETSTAT=/bin/netstat
+elif test -x /usr/bin/netstat ; then
+    NETSTAT=/usr/bin/netstat
+elif test -x /usr/sbin/netstat ; then
+    # e.g. Tru64 Unix
+    NETSTAT=/usr/sbin/netstat
+elif test -x /usr/etc/netstat ; then
+    # e.g. IRIX
+    NETSTAT=/usr/etc/netstat
+elif test -x /cygdrive/c/windows/system32/netstat ; then
+    # Cygwin
+    NETSTAT=/cygdrive/c/windows/system32/netstat
+elif test -x /c/Windows/System32/netstat ; then
+    # MinGW + MSYS
+    NETSTAT=/c/Windows/System32/netstat
+else
+    NETSTAT=""
+fi
+
+PROBE_FOR_PORT() {
+    BASE_PORT=$1
+    MAX_RETRIES=10
+    if test -x "$NETSTAT" ; then
+        if test -z "$RANDOM"; then
+            RANDOM=2
+        fi
+        while :
+        do
+            BASE_PORT=`expr $BASE_PORT + \( $RANDOM % 100 \)`
+            IN_USE=`$NETSTAT -a -n 2>/dev/null | grep "[\.:]$BASE_PORT "`
+            if [ $? -ne 0 ]; then
+                echo "$BASE_PORT"
+                break
+            fi
+            MAX_RETRIES=`expr $MAX_RETRIES - 1`
+            if [ $MAX_RETRIES -eq 0 ]; then
+                echo "ERROR: Could not find available port." >&2
+                echo "NOPORT"
+                exit 255
+            fi
+        done
+    fi
+}
+
+if [ "x$SNMP_SNMPD_PORT" = "x" ]; then
+    SNMP_SNMPD_PORT=`PROBE_FOR_PORT 8765`
+fi
+if [ "x$SNMP_SNMPTRAPD_PORT" = "x" ]; then
+    SNMP_SNMPTRAPD_PORT=`PROBE_FOR_PORT 5678`
+fi
+if [ "x$SNMP_AGENTX_PORT" = "x" ]; then
+    SNMP_AGENTX_PORT=`PROBE_FOR_PORT 7676`
+fi
+if [ "x$SNMP_TRANSPORT_SPEC" = "x" ];then
+	SNMP_TRANSPORT_SPEC="udp"
+fi
+if [ "x$SNMP_TEST_DEST" = "x" -a $SNMP_TRANSPORT_SPEC != "unix" ];then
+	SNMP_TEST_DEST="localhost:"
+fi
+export SNMP_FLAGS SNMP_SNMPD_PORT SNMP_SNMPTRAPD_PORT
+
+# Make sure the agent doesn't parse any config file but what we give it.  
+# this is mainly to protect against a broken agent that doesn't
+# properly handle combinations of -c and -C.  (since I've broke it before).
+#SNMPCONFPATH="$SNMP_TMPDIR/does-not-exist"
+#export SNMPCONFPATH
+
+fi # Only allow ourselves to be eval'ed once
diff --git a/testing/data.keychange-md5 b/testing/data.keychange-md5
new file mode 100644
index 0000000..2e24c4a
--- /dev/null
+++ b/testing/data.keychange-md5
@@ -0,0 +1,26 @@
+0x526f5eed9fcce26f8964c2930787d82b	# old kul
+0x87021d7bd9d101ba05ea6e3bf9d9bd4a	# new kul
+000000000000000000000000000000008805615141676cc9196174e742a32551							# keychange string -- auth/privacy
+
+
+		#		#		#		#
+
+#
+# Following data exerpted from:
+#
+#	Message-Id: <199809282003.QAA27494 at relay.hq.tis.com>
+#	Date: Mon, 28 Sep 98 21:57:48 DST
+#	From: "Bert Wijnen" <WIJNEN at vnet.ibm.com>
+#	To: snmpv3 at 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
new file mode 100644
index 0000000..4d97749
--- /dev/null
+++ b/testing/data.keychange-sha1
@@ -0,0 +1,26 @@
+0x6695febc9288e36282235fc7151f128497b38f3f	# old kul -- for auth
+0x78e2dcce79d59403b58c1bbaa5bff46391f1cd25	# new kul -- for auth
+00000000000000000000000000000000000000009c1017f4fd483d2de8d5fadbf84392cb06457051						# keychange string -- auth
+
+
+		#		#		#		#
+
+#
+# Following data exerpted from:
+#
+#       Message-Id: <199809282003.QAA27494 at relay.hq.tis.com>
+#       Date: Mon, 28 Sep 98 21:57:48 DST
+#       From: "Bert Wijnen" <WIJNEN at vnet.ibm.com>
+#       To: snmpv3 at 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
new file mode 100644
index 0000000..67719d5
--- /dev/null
+++ b/testing/data.keychange-sha1-des
@@ -0,0 +1,26 @@
+0x6695febc9288e36282235fc7151f1284		# old kul -- privacy
+0x78e2dcce79d59403b58c1bbaa5bff463		# new kul -- privacy
+000000000000000000000000000000007ef8d8a4c9cdb26b47591cd852ff88b5								# keychange string -- privacy
+
+
+		#		#		#		#
+
+#
+# Following data exerpted from:
+#
+#       Message-Id: <199809282003.QAA27494 at relay.hq.tis.com>
+#       Date: Mon, 28 Sep 98 21:57:48 DST
+#       From: "Bert Wijnen" <WIJNEN at vnet.ibm.com>
+#       To: snmpv3 at 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
new file mode 100644
index 0000000..78e1e27
--- /dev/null
+++ b/testing/data.kul-md5
@@ -0,0 +1,8 @@
+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
new file mode 100644
index 0000000..c827abd
--- /dev/null
+++ b/testing/data.kul-sha1
@@ -0,0 +1,8 @@
+maplesyrup					# passphrase
+9fb5cc0381497b3793528939ff788d5d79145211	# Ku
+0x000000000000000000000002			# engineID
+6695febc9288e36282235fc7151f128497b38f3f	# kul
+
+#
+# Taken from <draft-ietf-snmpv3-usm-v2-01.txt>, Section A.3.
+#
diff --git a/testing/etimetest.c b/testing/etimetest.c
new file mode 100644
index 0000000..35c74a6
--- /dev/null
+++ b/testing/etimetest.c
@@ -0,0 +1,423 @@
+/*
+ * etimetest.c
+ *
+ * Expected SUCCESSes for all tests:    3
+ *
+ * Returns:
+ *      Number of FAILUREs.
+ *
+ * Test of hash_engineID().                             SUCCESSes:  0
+ * Test of LCD Engine ID and Time List.                 SUCCESSes:  3
+ *
+ * FIX  Devise a test for {set,get}_enginetime(..., FALSE).
+ */
+
+static char    *rcsid = "$Id: etimetest.c 15220 2006-09-15 00:48:50Z tanders $";    /* */
+
+
+#include <net-snmp/net-snmp-config.h>
+
+#include <stdio.h>
+#include <sys/types.h>
+#ifdef HAVE_STDLIB_H
+#include <stdlib.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"
+
+static u_int    dummy_etime, dummy_eboot;       /* For ISENGINEKNOWN(). */
+
+
+#include <stdlib.h>
+
+extern char    *optarg;
+extern int      optind, optopt, opterr;
+
+
+
+/*
+ * Globals, &c...
+ */
+char           *local_progname;
+
+#define USAGE	"Usage: %s [-h][-s <seconds>][-aeH]"
+#define OPTIONLIST	"aehHs:"
+
+int             doalltests = 0, dohashindex = 0, doetimetest = 0;
+
+#define	ALLOPTIONS	(doalltests + dohashindex + doetimetest)
+
+
+
+#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;				\
+	}						\
+}
+
+
+
+/*
+ * Global variables.
+ */
+int             sleeptime = 7;
+
+#define BLAT "alk;djf;an riu;alicenmrul;aiknglksajhe1 adcfalcenrco2"
+
+
+
+
+/*
+ * Prototypes.
+ */
+void            usage(FILE * ofp);
+
+int             test_etime(void);
+int             test_hashindex(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 'a':
+            doalltests = 1;
+            break;
+        case 'e':
+            doetimetest = 1;
+            break;
+        case 'H':
+            dohashindex = 1;
+            break;
+        case 's':
+            sleeptime = atoi(optarg);
+            if (sleeptime < 0) {
+                usage(stderr);
+                exit(1000);
+            }
+            break;
+            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.
+     */
+    rval = sc_init();
+    FAILED(rval, "sc_init()");
+
+
+    if (dohashindex || doalltests) {
+        failcount += test_hashindex();
+    }
+    if (doetimetest || doalltests) {
+        failcount += test_etime();
+    }
+
+
+    /*
+     * Cleanup.
+     */
+    rval = sc_shutdown(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_SHUTDOWN,
+                       NULL, NULL);
+    FAILED(rval, "sc_shutdown()");
+
+    return failcount;
+
+}                               /* end main() */
+
+
+
+
+
+void
+usage(FILE * ofp)
+{
+    fprintf(ofp,
+            USAGE
+            "" NL
+            "    -a			All tests." NL
+            "    -e			Exercise the list of enginetimes."
+            NL
+            "    -h			Help."
+            NL
+            "    -H			Test hash_engineID()."
+            NL
+            "    -s <seconds>	Seconds to pause.  (Default: 0.)"
+            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;
+
+  test_dosomething_quit:
+    return failcount;
+
+}                               /* end test_dosomething() */
+#endif                          /* EXAMPLE */
+
+
+
+
+
+/*******************************************************************-o-******
+ * test_hashindex
+ *
+ * Returns:
+ *	Number of failures.
+ *
+ *
+ * Test hash_engineID().
+ */
+int
+test_hashindex(void)
+{
+    int                         /* rval = SNMPERR_SUCCESS,  */
+                    failcount = 0;
+    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 = "BB";
+    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));
+
+    s = "CCC";
+    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));
+
+    s = "DDDD";
+    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));
+
+    s = "EEEEE";
+    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));
+
+    s = BLAT;
+    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));
+
+
+    OUTPUT("Visual spot check -- DONE.");
+
+    return failcount;
+
+}                               /* end test_hashindex() */
+
+
+
+
+
+/*******************************************************************-o-******
+ * test_etime
+ *
+ * Returns:
+ *	Number of failures.
+ *
+ * Test of LCD Engine ID and Time List.	
+ */
+int
+test_etime(void)
+{
+    int             rval = SNMPERR_SUCCESS, failcount = 0;
+    u_int           etime, eboot;
+
+    /*
+     * ------------------------------------ -o-
+     */
+    OUTPUT("Query of empty list, two set actions.");
+
+
+    rval = ISENGINEKNOWN("A", 1);
+    if (rval == TRUE) {
+        FAILED(SNMPERR_GENERR, "Query of empty list returned TRUE.")
+    }
+
+
+    rval = set_enginetime("BB", 2, 2, 20, TRUE);
+    FAILED(rval, "set_enginetime()");
+
+
+    rval = set_enginetime("CCC", 3, 31, 90127, TRUE);
+    FAILED(rval, "set_enginetime()");
+
+
+    SUCCESS("Check of empty list, and two additions.");
+
+
+
+    /*
+     * ------------------------------------ -o-
+     */
+    OUTPUT("Add entries using macros, test for existence with macros.");
+
+
+    rval = ENSURE_ENGINE_RECORD("DDDD", 4);
+    FAILED(rval, "ENSURE_ENGINE_RECORD()");
+
+
+    rval = MAKENEW_ENGINE_RECORD("EEEEE", 5);
+    if (rval == SNMPERR_SUCCESS) {
+        FAILED(rval,
+               "MAKENEW_ENGINE_RECORD returned success for "
+               "missing record.");
+    }
+
+
+    rval = MAKENEW_ENGINE_RECORD("BB", 2);
+    FAILED(rval, "MAKENEW_ENGINE_RECORD().");
+
+
+    SUCCESS
+        ("Added entries with macros, tested for existence with macros.");
+
+
+
+    /*
+     * ------------------------------------ -o-
+     */
+    OUTPUT("Dump the list and then sleep.");
+
+#ifdef NETSNMP_ENABLE_TESTING_CODE
+    dump_etimelist();
+#endif
+
+    fprintf(stdout, "\nSleeping for %d second%s... ",
+            sleeptime, (sleeptime == 1) ? "" : "s");
+    fflush(stdout);
+
+    sleep(sleeptime);
+    fprintf(stdout, "\n");
+
+
+
+    /*
+     * ------------------------------------ -o-
+     */
+    OUTPUT
+        ("Retrieve data from real/stubbed records, update real/stubbed.");
+
+
+
+    rval = get_enginetime("BB", 2, &eboot, &etime, TRUE);
+    FAILED(rval, "get_enginetime().");
+
+    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);
+    FAILED(rval, "get_enginetime().");
+
+    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);
+    FAILED(rval, "set_enginetime().");
+
+
+    rval = set_enginetime("EEEEE", 5, 9876, 55555, TRUE);
+    FAILED(rval, "set_enginetime().");
+
+
+    SUCCESS("Retrieval and updates.");
+
+
+
+    /*
+     * ------------------------------------ -o-
+     */
+    OUTPUT("Sleep again, then dump the list one last time.");
+
+    fprintf(stdout, "Sleeping for %d second%s... ",
+            sleeptime, (sleeptime == 1) ? "" : "s");
+    fflush(stdout);
+
+    sleep(sleeptime);
+    fprintf(stdout, "\n");
+
+#ifdef NETSNMP_ENABLE_TESTING_CODE
+    dump_etimelist();
+#endif
+
+    return failcount;
+
+}                               /* end test_etime() */
diff --git a/testing/eval_oneprogram.sh b/testing/eval_oneprogram.sh
new file mode 100755
index 0000000..45edfc0
--- /dev/null
+++ b/testing/eval_oneprogram.sh
@@ -0,0 +1,138 @@
+#!/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
new file mode 100755
index 0000000..f2476d1
--- /dev/null
+++ b/testing/eval_onescript.sh
@@ -0,0 +1,36 @@
+#!/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
new file mode 100755
index 0000000..1c1a0f2
--- /dev/null
+++ b/testing/eval_suite.sh
@@ -0,0 +1,218 @@
+#!/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
new file mode 100644
index 0000000..6f0f1f5
--- /dev/null
+++ b/testing/eval_testlist
@@ -0,0 +1,5 @@
+7	ktest -a
+13	stest -a		
+3	#test_keychange.sh
+2	test_kul.sh
+3	etest -a
diff --git a/testing/eval_tools.sh b/testing/eval_tools.sh
new file mode 100644
index 0000000..483f214
--- /dev/null
+++ b/testing/eval_tools.sh
@@ -0,0 +1,578 @@
+#
+# eval_tools.sh
+#
+# Output functions for script tests.  Source this from other test scripts
+# to establish a standardized repertory of test functions.
+#
+#
+# Except where noted, all functions return:
+#	0	On success,	(Bourne Shell's ``true'')
+#	non-0	Otherwise.
+#
+# Input arguments to each function are documented with each function.
+#
+#
+# XXX  Suggestions:
+#	DEBUG ON|OFF
+#	dump CAPTURE output to stdout as well as to junkoutputfile.
+#
+
+#
+# Only allow ourselves to be eval'ed once
+#
+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="-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
+if [ -z "$OK_TO_SAVE_RESULT" ] ; then
+OK_TO_SAVE_RESULT=1
+export OK_TO_SAVE_RESULT
+fi
+
+
+#
+# HEADER: returns a single line when SNMP_HEADERONLY mode and exits.
+#
+HEADER() {
+    if [ "x$SNMP_HEADERONLY" != "x" ]; then
+        echo test $*
+	exit 0;
+    else
+	ECHO "testing $*...  "
+	headerStr="testing $*"
+    fi
+}
+
+
+#------------------------------------ -o-
+#
+OUTPUT() {	# <any_arguments>
+	cat <<GRONK
+
+
+$*
+
+
+GRONK
+}
+
+CAN_USLEEP() {
+   if [ "$SNMP_CAN_USLEEP" = 0 -o "$SNMP_CAN_USLEEP" = 0 ] ; then
+     return $SNMP_CAN_USLEEP
+   fi
+   sleep .1 > /dev/null 2>&1
+   if [ $? = 0 ] ; then
+     SNMP_CAN_USLEEP=1
+   else
+     SNMP_CAN_USLEEP=0
+   fi
+   export SNMP_CAN_USLEEP
+}
+
+
+#------------------------------------ -o-
+#
+SUCCESS() {	# <any_arguments>
+	[ "$failcount" -ne 0 ] && return
+	cat <<GROINK
+
+SUCCESS: $*
+
+GROINK
+}
+
+
+
+#------------------------------------ -o-
+#
+FAILED() {	# <return_value>, <any_arguments>
+	[ "$1" -eq 0 ] && return
+	shift
+
+	failcount=`expr $failcount + 1`
+	cat <<GRONIK
+
+FAILED: $*
+
+GRONIK
+}
+
+#------------------------------------ -o-
+#
+SKIP() {
+	REMOVETESTDATA
+	echo "SKIPPED"
+	exit 0
+}
+
+SKIPIFNOT() {
+	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
+	if [ $? != 0 ]; then
+	    SKIP
+	fi
+}
+
+SKIPIF() {
+	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
+	if [ $? = 0 ]; then
+	    SKIP
+	fi
+}
+	
+
+#------------------------------------ -o-
+#
+VERIFY() {	# <path_to_file(s)>
+	local	missingfiles=
+
+	for f in $*; do
+		[ -e "$f" ] && continue
+		echo "FAILED: Cannot find file \"$f\"."
+		missingfiles=true
+	done
+
+	[ "$missingfiles" = true ] && exit 1000
+}
+
+
+#------------------------------------ -o-
+#
+STARTTEST() {	
+	[ ! -e "$junkoutputfile" ] && {
+		touch $junkoutputfile
+		return
+	}
+	echo "FAILED: Output file already exists: \"$junkoutputfile\"."
+	exit 1000
+}
+
+
+#------------------------------------ -o-
+#
+STOPTEST() {
+	rm -f "$junkoutputfile"
+}
+
+
+#------------------------------------ -o-
+#
+REMOVETESTDATA() {
+#	ECHO "removing $SNMP_TMPDIR  "
+	rm -rf $SNMP_TMPDIR
+}
+
+
+#------------------------------------ -o-
+# Captures output from command, and returns the command's exit code.
+CAPTURE() {	# <command_with_arguments_to_execute>
+    echo $* >> $SNMP_TMPDIR/invoked
+
+	if [ $SNMP_VERBOSE -gt 0 ]; then
+		cat <<KNORG
+
+EXECUTING: $*
+
+KNORG
+
+	fi
+	( $* 2>&1 ) > $junkoutputfile 2>&1
+	RC=$?
+
+	if [ $SNMP_VERBOSE -gt 1 ]; then
+		echo "Command Output: "
+		echo "MIBDIR $MIBDIRS $MIBS"
+		echo "$seperator"
+		cat $junkoutputfile | sed 's/^/  /'
+		echo "$seperator"
+	fi
+	return $RC
+}
+
+#------------------------------------ -o-
+# Delay to let processes settle
+DELAY() {
+    if [ "$SNMP_SLEEP" != "0" ] ; then
+	sleep $SNMP_SLEEP
+    fi
+}
+
+SAVE_RESULTS() {
+   real_return_value=$return_value
+}
+
+#
+# Checks the output result against what we expect.
+#   Sets return_value to 0 or 1.
+#
+EXPECTRESULT() {
+  if [ $OK_TO_SAVE_RESULT -ne 0 ] ; then
+    if [ "$snmp_last_test_result" = "$1" ]; then
+	return_value=0
+    else
+	return_value=1
+    fi
+  fi
+}
+
+#------------------------------------ -o-
+# Returns: Count of matched lines.
+#
+CHECK() {	# <pattern_to_match>
+    if [ $SNMP_VERBOSE -gt 0 ]; then
+	echo -n "checking output for \"$*\"..."
+    fi
+
+    rval=`grep -c "$*" "$junkoutputfile" 2>/dev/null`
+
+    if [ $SNMP_VERBOSE -gt 0 ]; then
+	echo "$rval matches found"
+    fi
+
+    snmp_last_test_result=$rval
+    EXPECTRESULT 1  # default
+    return $rval
+}
+
+CHECKFILE() {
+    file=$1
+    if [ "x$file" = "x" ] ; then
+        file=$junkoutputfile
+    fi
+    shift
+    myoldjunkoutputfile="$junkoutputfile"
+    junkoutputfile="$file"
+    CHECK $*
+    junkoutputfile="$myoldjunkoutputfile"
+}
+
+CHECKTRAPD() {
+    CHECKFILE $SNMP_SNMPTRAPD_LOG_FILE $@
+}
+
+CHECKTRAPDORDIE() {
+    CHECKORDIE $@ $SNMP_SNMPTRAPD_LOG_FILE
+}
+
+CHECKAGENT() {
+    CHECKFILE $SNMP_SNMPD_LOG_FILE $@
+}
+
+WAITFORAGENT() {
+    WAITFOR "$@" $SNMP_SNMPD_LOG_FILE
+}
+
+WAITFORTRAPD() {
+    WAITFOR "$@" $SNMP_SNMPTRAPD_LOG_FILE
+}
+
+WAITFOR() {
+  ## save the previous save state and test result
+    save_state=$OK_TO_SAVE_RESULT
+    save_test=$snmp_last_test_result
+    OK_TO_SAVE_RESULT=0
+
+    sleeptime=$SNMP_SLEEP
+    oldsleeptime=$SNMP_SLEEP
+    if [ "$1" != "" ] ; then
+	CAN_USLEEP
+	if [ $SNMP_CAN_USLEEP = 1 ] ; then
+	  sleeptime=`expr $SNMP_SLEEP '*' 50`
+          SNMP_SLEEP=.1
+	else 
+	  sleeptime=`expr $SNMP_SLEEP '*' 5`
+	  SNMP_SLEEP=1
+	fi
+        while [ $sleeptime -gt 0 ] ; do
+	  if [ "$2" = "" ] ; then
+            CHECK "$@"
+          else
+	    CHECKFILE "$2" "$1"
+	  fi
+          if [ "$snmp_last_test_result" != "" ] ; then
+              if [ "$snmp_last_test_result" -gt 0 ] ; then
+	         break;
+              fi
+	  fi
+          DELAY
+          sleeptime=`expr $sleeptime - 1`
+        done
+        SNMP_SLEEP=$oldsleeptime
+    else
+        if [ $SNMP_SLEEP -ne 0 ] ; then
+	    sleep $SNMP_SLEEP
+        fi
+    fi
+
+  ## restore the previous save state and test result
+    OK_TO_SAVE_RESULT=$save_state
+    snmp_last_test_result=$save_test
+}    
+
+# WAITFORORDIE "grep string" ["file"]
+WAITFORORDIE() {
+    WAITFOR "$1" "$2"
+    if [ "$snmp_last_test_result" != 0 ] ; then
+        FINISHED
+    fi
+    ECHO "."
+}
+
+# CHECKORDIE "grep string" ["file"] .. FAIL if "grep string" is *not* found
+CHECKORDIE() {
+    CHECKFILE "$2" "$1"
+    if [ "$snmp_last_test_result" = 0 ] ; then
+        FINISHED
+    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
+    fi
+    ECHO "."
+}
+
+#------------------------------------ -o-
+# Returns: Count of matched lines.
+#
+CHECKEXACT() {	# <pattern_to_match_exactly>
+	rval=`grep -wc "$*" "$junkoutputfile" 2>/dev/null`
+	snmp_last_test_result=$rval
+	EXPECTRESULT 1  # default
+	return $rval
+}
+
+CONFIGAGENT() {
+    if [ "x$SNMP_CONFIG_FILE" = "x" ]; then
+	echo "$0: failed because var: SNMP_CONFIG_FILE wasn't set"
+	exit 1;
+    fi
+    echo $* >> $SNMP_CONFIG_FILE
+}
+
+CONFIGTRAPD() {
+    if [ "x$SNMPTRAPD_CONFIG_FILE" = "x" ]; then
+	echo "$0: failed because var: SNMPTRAPD_CONFIG_FILE wasn't set"
+	exit 1;
+    fi
+    echo $* >> $SNMPTRAPD_CONFIG_FILE
+}
+
+#
+# common to STARTAGENT and STARTTRAPD
+# log command to "invoked" file
+# delay after command to allow for settle
+#
+STARTPROG() {
+    if [ $SNMP_VERBOSE -gt 1 ]; then
+	echo "$CFG_FILE contains: "
+	if [ -f $CFG_FILE ]; then
+	    cat $CFG_FILE
+	else
+	    echo "[no config file]"
+	fi
+    fi
+    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
+    echo $COMMAND >> $SNMP_TMPDIR/invoked
+    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
+    else
+      $COMMAND > $LOG_FILE.stdout 2>&1
+    fi
+}
+
+#------------------------------------ -o-
+STARTAGENT() {
+    SNMPDSTARTED=1
+    COMMAND="snmpd $SNMP_FLAGS -r -U -p $SNMP_SNMPD_PID_FILE -Lf $SNMP_SNMPD_LOG_FILE $AGENT_FLAGS"
+    CFG_FILE=$SNMP_CONFIG_FILE
+    LOG_FILE=$SNMP_SNMPD_LOG_FILE
+    PORT_SPEC="$SNMP_SNMPD_PORT"
+    if [ "x$SNMP_TRANSPORT_SPEC" != "x" ]; then
+        PORT_SPEC="${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${PORT_SPEC}"
+    fi
+    STARTPROG
+    WAITFORAGENT "NET-SNMP version"
+}
+
+#------------------------------------ -o-
+STARTTRAPD() {
+    TRAPDSTARTED=1
+    COMMAND="snmptrapd -d -p $SNMP_SNMPTRAPD_PID_FILE -Lf $SNMP_SNMPTRAPD_LOG_FILE $TRAPD_FLAGS"
+    CFG_FILE=$SNMPTRAPD_CONFIG_FILE
+    LOG_FILE=$SNMP_SNMPTRAPD_LOG_FILE
+    PORT_SPEC="$SNMP_SNMPTRAPD_PORT"
+    if [ "x$SNMP_TRANSPORT_SPEC" != "x" ]; then
+        PORT_SPEC="${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${PORT_SPEC}"
+    fi
+    STARTPROG
+    WAITFORTRAPD "NET-SNMP version"
+}
+
+## sending SIGHUP for reconfiguration
+#
+HUPPROG() {
+    if [ -f $1 ]; then
+        if [ "x$OSTYPE" = "xmsys" ]; then
+          COMMAND='echo "Skipping SIGHUP (not supported by kill.exe on MinGW)"'
+        else
+          COMMAND="kill -HUP `cat $1`"
+        fi
+	echo $COMMAND >> $SNMP_TMPDIR/invoked
+	$COMMAND > /dev/null 2>&1
+    fi
+}
+
+HUPAGENT() {
+    HUPPROG $SNMP_SNMPD_PID_FILE
+    if [ "x$OSTYPE" != "xmsys" ]; then
+        WAITFORAGENT "restarted"
+    fi
+}
+
+HUPTRAPD() {
+    HUPPROG $SNMP_SNMPTRAPD_PID_FILE
+    if [ "x$OSTYPE" != "xmsys" ]; then
+        WAITFORTRAPD "restarted"
+    fi
+}
+
+
+## used by STOPAGENT and STOPTRAPD
+# delay before kill to allow previous action to finish
+#    this is especially important for interaction between
+#    master agent and sub agent.
+STOPPROG() {
+    if [ -f $1 ]; then
+        if [ "x$OSTYPE" = "xmsys" ]; then
+          COMMAND="kill.exe `cat $1`"
+        else
+          COMMAND="kill -TERM `cat $1`"
+        fi
+	echo $COMMAND >> $SNMP_TMPDIR/invoked
+	$COMMAND > /dev/null 2>&1
+    fi
+}
+
+#------------------------------------ -o-
+#
+STOPAGENT() {
+    SAVE_RESULTS
+    STOPPROG $SNMP_SNMPD_PID_FILE
+    if [ "x$OSTYPE" != "xmsys" ]; then
+        WAITFORAGENT "shutting down"
+    fi
+    if [ $SNMP_VERBOSE -gt 1 ]; then
+	echo "Agent Output:"
+	echo "$seperator [stdout]"
+	cat $SNMP_SNMPD_LOG_FILE.stdout
+	echo "$seperator [logfile]"
+	cat $SNMP_SNMPD_LOG_FILE
+	echo "$seperator"
+    fi
+}
+
+#------------------------------------ -o-
+#
+STOPTRAPD() {
+    SAVE_RESULTS
+    STOPPROG $SNMP_SNMPTRAPD_PID_FILE
+    if [ "x$OSTYPE" != "xmsys" ]; then
+        WAITFORTRAPD "Stopped"
+    fi
+    if [ $SNMP_VERBOSE -gt 1 ]; then
+	echo "snmptrapd Output:"
+	echo "$seperator [stdout]"
+	cat $SNMP_SNMPTRAPD_LOG_FILE.stdout
+	echo "$seperator [logfile]"
+	cat $SNMP_SNMPTRAPD_LOG_FILE
+	echo "$seperator"
+    fi
+}
+
+#------------------------------------ -o-
+#
+FINISHED() {
+
+    ## no more changes to test result.
+    OK_TO_SAVE_RESULT=0
+
+    if [ "$SNMPDSTARTED" = "1" ] ; then
+      STOPAGENT
+    fi
+    if [ "$TRAPDSTARTED" = "1" ] ; then
+      STOPTRAPD
+    fi
+    for pfile in $SNMP_TMPDIR/*pid* ; do
+        if [ "x$pfile" = "x$SNMP_TMPDIR/*pid*" ]; then
+            ECHO "(no pid file(s) found) "
+            break
+        fi
+        if [ ! -f $pfile ]; then
+            ECHO "('$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
+            if [ "x$OSTYPE" = "xmsys" ]; then
+              COMMAND="kill.exe $pid"
+            else
+              COMMAND="kill -9 $pid"
+            fi
+	    echo $COMMAND "($pfile)" >> $SNMP_TMPDIR/invoked
+	    $COMMAND > /dev/null 2>&1
+	    return_value=1
+	fi
+    done
+    if [ "x$real_return_value" != "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
+    fi
+
+    echo "ok"
+    echo "$headerStr...ok" >> $SNMP_TMPDIR/invoked
+
+    if [ "x$SNMP_SAVE_TMPDIR" != "xyes" ]; then
+	REMOVETESTDATA
+    fi
+    exit $real_return_value
+}
+
+#------------------------------------ -o-
+#
+VERBOSE_OUT() {
+    if [ $SNMP_VERBOSE > $1 ]; then
+	shift
+	echo "$*"
+    fi
+}
+
+fi # Only allow ourselves to be eval'ed once
diff --git a/testing/failed_tests b/testing/failed_tests
deleted file mode 100644
index 0a01dbd..0000000
--- a/testing/failed_tests
+++ /dev/null
@@ -1 +0,0 @@
-/home/hardaker/src/snmp/net-snmp/net-snmp-5.7.2.1/testing/fulltests/default/T115agentxperl_simple
diff --git a/testing/fulltests/default/Sv3config b/testing/fulltests/default/Sv3config
deleted file mode 100644
index 55df5b4..0000000
--- a/testing/fulltests/default/Sv3config
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-
-SKIPIFNOT NETSNMP_SECMOD_USM
-
-[ "x$SNMP_SMUX_SOCKET" = "x" ] && SNMP_SMUX_SOCKET=1.0.0.0
-
-CONFIGAGENT [snmp] persistentdir $SNMP_TMP_PERSISTENTDIR
-CONFIGAGENT smuxsocket $SNMP_SMUX_SOCKET
-
-# XXX: auto-switch to a supported protocol instead.
-if test "x$DEFAUTHTYPE" = "x"; then
-    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
-	DEFAUTHTYPE="SHA"
-    else
-	    DEFAUTHTYPE="MD5"
-    fi
-fi
-
-if test "x$DEFPRIVTYPE" = "x"; then
-  # XXX: HAVE_AES depends on cpp logic, so we need to test for lower-level stuff
-  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
-    if grep '^#define HAVE_OPENSSL_AES_H 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null ; then
-      if grep '^#define HAVE_AES_CFB128_ENCRYPT 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null ; then
-        DEFPRIVTYPE="AES"
-      else
-        DEFPRIVTYPE="DES"
-      fi
-    else
-      DEFPRIVTYPE="DES"
-    fi
-  else
-    DEFPRIVTYPE=""
-  fi
-fi
-
-CONFIGAGENT createUser initial $DEFAUTHTYPE initial_test_pass_auth $DEFPRIVTYPE
-CONFIGAGENT createUser template $DEFAUTHTYPE template_test_pass_auth $DEFPRIVTYPE
-CONFIGAGENT rwuser initial noauth
-CONFIGAGENT rwuser newtestuser
-
-NOAUTHTESTARGS="-l nanp -u initial -v 3"
-AUTHTESTARGS="-l anp -u initial -v 3 -a $DEFAUTHTYPE -A initial_test_pass_auth"
-PRIVTESTARGS="-l ap -u initial -v 3 -a $DEFAUTHTYPE -A initial_test_pass_auth -x $DEFPRIVTYPE -X initial_test_pass_auth"
-
-AUTHNOPASSTESTARGS="-l anp -u initial -v 3 -a $DEFAUTHTYPE"
-PRIVNOPASSTESTARGS="-l ap -u initial -v 3 -a $DEFAUTHTYPE -x $DEFPRIVTYPE"
diff --git a/testing/fulltests/default/Sv3usmconfigbase b/testing/fulltests/default/Sv3usmconfigbase
deleted file mode 100644
index d2fb981..0000000
--- a/testing/fulltests/default/Sv3usmconfigbase
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/bin/sh
-#
-# SNMPv3 base config
-#
-# Input+Output variables:
-#   DEFSECURITYLEVEL         noAuthNoPriv|authNoPriv|authPriv
-#   DEFAUTHTYPE              MD5|SHA
-#   DEFPRIVTYPE              DES|AES
-#   TESTNOAUTHUSER           <myuser>
-#   TEST(AUTH|PRIV)USER[2]   <myuser>
-#   TEST(AUTH|PRIV)PASS[2]   <mypass>
-#
-# Input variables:
-#   CREATEUSERENGINEID       <engineid>
-#
-# Output variables:
-#   CREATEAUTHUSER[2]
-#   CREATEPRIVUSER[2]
-#   CREATENOAUTHUSER
-#   TESTNOAUTHARGS
-#   TESTAUTHARGS[NOPASS][2]
-#   TESTPRIVARGS[NOPASS][2]
-#
-
-SKIPIFNOT NETSNMP_SECMOD_USM
-
-## Defaults
-[ "x$DEFSECURITYLEVEL" = "x" ] && DEFSECURITYLEVEL=authPriv
-
-## 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
-fi
-
-## auto-probe best priv type
-# XXX: HAVE_AES depends on cpp logic, so we need to test for lower-level stuff
-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
-  if grep '^#define HAVE_OPENSSL_AES_H 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null && \
-   grep '^#define HAVE_AES_CFB128_ENCRYPT 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=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
-
-CREATEUSERCMD="createUser"
-[ "x$CREATEUSERENGINEID" != "x" ] && CREATEUSERCMD="$CREATEUSERCMD -e $CREATEUSERENGINEID"
-
-## auth setup
-if [ "x$DEFSECURITYLEVEL" = "xauthPriv" -o "x$DEFSECURITYLEVEL" = "xauthNoPriv" ]; then
-  [ "x$MAXAUTHTYPE" = "x" ] && SKIP
-  [ "x$DEFAUTHTYPE" = "xSHA" -a "x$MAXAUTHTYPE" != "xSHA" ] && SKIP
-  [ "x$DEFAUTHTYPE" = "x" ] && DEFAUTHTYPE=$MAXAUTHTYPE
-  # user/pass setup (XXX: randomize)
-  [ "x$TESTAUTHUSER" = "x" ] && TESTAUTHUSER=initial_auth
-  [ "x$TESTAUTHUSER2" = "x" ] && TESTAUTHUSER2=template_auth
-  [ "x$TESTAUTHPASS" = "x" ] && TESTAUTHPASS=initial_test_pass_auth
-  [ "x$TESTAUTHPASS2" = "x" ] && TESTAUTHPASS2=template_test_pass_auth
-  CREATEAUTHUSER="$CREATEUSERCMD $TESTAUTHUSER $DEFAUTHTYPE $TESTAUTHPASS"
-  CREATEAUTHUSER2="$CREATEUSERCMD $TESTAUTHUSER2 $DEFAUTHTYPE $TESTAUTHPASS2"
-  # command args
-  TESTAUTHARGSNOPASS="-v 3 -l anp -u $TESTAUTHUSER -a $DEFAUTHTYPE"
-  TESTAUTHARGSNOPASS2="-v 3 -l anp -u $TESTAUTHUSER2 -a $DEFAUTHTYPE"
-  TESTAUTHARGS="$TESTAUTHARGSNOPASS -A $TESTAUTHPASS"
-  TESTAUTHARGS2="$TESTAUTHARGSNOPASS2 -A $TESTAUTHPASS2"
-fi
-
-## priv setup
-if [ "x$DEFSECURITYLEVEL" = "xauthPriv" ]; then
-  [ "x$MAXPRIVTYPE" = "x" ] && SKIP
-  [ "x$DEFPRIVTYPE" = "xAES" -a "x$MAXPRIVTYPE" != "xAES" ] && SKIP
-  [ "x$DEFPRIVTYPE" = "x" ] && DEFPRIVTYPE=$MAXPRIVTYPE
-  # user/pass setup (XXX: randomize)
-  [ "x$TESTPRIVUSER" = "x" ] && TESTPRIVUSER=initial_priv
-  [ "x$TESTPRIVUSER2" = "x" ] && TESTPRIVUSER2=template_priv
-  [ "x$TESTPRIVPASS" = "x" ] && TESTPRIVPASS=initial_test_pass_priv
-  [ "x$TESTPRIVPASS2" = "x" ] && TESTPRIVPASS2=template_test_pass_priv
-  CREATEPRIVUSER="$CREATEUSERCMD $TESTPRIVUSER $DEFAUTHTYPE $TESTAUTHPASS $DEFPRIVTYPE $TESTPRIVPASS"
-  CREATEPRIVUSER2="$CREATEUSERCMD $TESTPRIVUSER2 $DEFAUTHTYPE $TESTAUTHPASS2 $DEFPRIVTYPE $TESTPRIVPASS2"
-  # command args
-  TESTPRIVARGSNOPASS="-v 3 -l ap -u $TESTPRIVUSER -a $DEFAUTHTYPE -x $DEFPRIVTYPE"
-  TESTPRIVARGSNOPASS2="-v 3 -l ap -u $TESTPRIVUSER2 -a $DEFAUTHTYPE -x $DEFPRIVTYPE"
-  TESTPRIVARGS="$TESTPRIVARGSNOPASS -A $TESTAUTHPASS -X $TESTPRIVPASS"
-  TESTPRIVARGS2="$TESTPRIVARGSNOPASS2 -A $TESTAUTHPASS2 -X $TESTPRIVPASS2"
-fi
-
-## noauth setup
-[ "x$TESTNOAUTHUSER" = "x" ] && TESTNOAUTHUSER=initial
-TESTNOAUTHARGS="-v 3 -l nanp -u $TESTNOAUTHUSER"
-CREATENOAUTHUSER="$CREATEUSERCMD $TESTNOAUTHUSER"
-
diff --git a/testing/fulltests/default/Sv3vacmconfig b/testing/fulltests/default/Sv3vacmconfig
deleted file mode 100644
index 7c35e36..0000000
--- a/testing/fulltests/default/Sv3vacmconfig
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-# generically set up the user "initial1" and "initial2"  for snmp v3
-# access to the agent.
-
-# Configuration:
-#initial1 can access .1.3.6.1.2.1.1.1, deny others
-#initial2 can access all except .1.3.6.1.2.1.1.1 
-
-# XXX: do autoselection of supported algorithms
-SKIPIF NETSNMP_DISABLE_MD5
-SKIPIF NETSNMP_DISABLE_DES
-SKIPIFNOT NETSNMP_SECMOD_USM
-
-CONFIGAGENT [snmp] persistentdir $SNMP_TMP_PERSISTENTDIR
-
-CONFIGAGENT createUser initial1 MD5 initial_test_pass_auth DES
-CONFIGAGENT createUser initial2 MD5 initial_test_pass_auth DES
-
-
-CONFIGAGENT group   testcommunitygroup1  usm     initial1
-CONFIGAGENT group   testcommunitygroup2  usm     initial2
-
-CONFIGAGENT view    system1     included .1.3.6.1.2.1.1.1 
-CONFIGAGENT view    system2     included .1
-CONFIGAGENT view    system2     excluded .1.3.6.1.2.1.1.1 
-CONFIGAGENT 'access  testcommunitygroup1  "" any auth exact system1 none none'
-CONFIGAGENT 'access  testcommunitygroup2  "" any auth exact system2 none none'
-
diff --git a/testing/fulltests/default/Svacmconfig b/testing/fulltests/default/Svacmconfig
deleted file mode 100644
index d9d862d..0000000
--- a/testing/fulltests/default/Svacmconfig
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh
-
-# standard V1 configuration: testcommunity1 testcommunity2
-# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied
-# generically set up the community "testcommunity1 and testcommunity2" for various snmp
-# version access to the agent.
-
-if [ "x$snmp_version" = "x" ]; then
-  snmp_version="any"
-fi
-
-CONFIGAGENT [snmp] persistentdir $SNMP_TMP_PERSISTENTDIR
-
-CONFIGAGENT rocommunity testrocommunity 127.0.0.1 .1.3.6.1.2.1.1.5.0
-CONFIGAGENT rwcommunity testrwcommunity 127.0.0.1 .1.3.6.1.2.1.1.5.0
-
-CONFIGAGENT com2sec testcommunitysec1  default testcommunity1
-CONFIGAGENT com2sec testcommunitysec2  default testcommunity2
-
-if [ "$SNMP_TRANSPORT_SPEC" = "udp6" -o "$SNMP_TRANSPORT_SPEC" = "tcp6" ];then 
-CONFIGAGENT rocommunity6 testrocommunity ::1 .1.3.6.1.2.1.1.5.0
-CONFIGAGENT rwcommunity6 testrwcommunity ::1 .1.3.6.1.2.1.1.5.0
-CONFIGAGENT com2sec6 testcommunitysec1  default testcommunity1
-CONFIGAGENT com2sec6 testcommunitysec2  default testcommunity2
-fi
-
-if [ "$SNMP_TRANSPORT_SPEC" = "unix" ];then 
-CONFIGAGENT com2secunix testcommunitysec1  testcommunity1
-CONFIGAGENT com2secunix testcommunitysec2  testcommunity2
-fi
-
-CONFIGAGENT group   testcommunitygroup1  $snmp_version     testcommunitysec1
-CONFIGAGENT group   testcommunitygroup2  $snmp_version     testcommunitysec2
-
-CONFIGAGENT view    system1     included .1.3.6.1.2.1.1.1 
-CONFIGAGENT view    system2     included .1
-CONFIGAGENT view    system2     excluded .1.3.6.1.2.1.1.1 
-CONFIGAGENT 'access  testcommunitygroup1  "" any noauth exact system1 none none'
-CONFIGAGENT 'access  testcommunitygroup2  "" any noauth exact system2 none none'
-
diff --git a/testing/fulltests/default/Svanyconfig b/testing/fulltests/default/Svanyconfig
deleted file mode 100644
index 8cb53dc..0000000
--- a/testing/fulltests/default/Svanyconfig
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-# generically set up the community "testcommunity" for various snmp
-# version access to the agent.
-
-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
-
-CONFIGAGENT [snmp] persistentdir $SNMP_TMP_PERSISTENTDIR
-CONFIGAGENT smuxsocket $SNMP_SMUX_SOCKET
-
-CONFIGAGENT com2sec testcommunitysec  default testcommunity
-if [ "$SNMP_TRANSPORT_SPEC" = "udp6" -o "$SNMP_TRANSPORT_SPEC" = "tcp6" ];then 
-	CONFIGAGENT com2sec6 testcommunitysec  default testcommunity
-fi
-
-if [ "$SNMP_TRANSPORT_SPEC" = "unix" ];then 
-	CONFIGAGENT com2secunix testcommunitysec  testcommunity
-fi
-
-CONFIGAGENT group   testcommunitygroup  $snmp_version     testcommunitysec
-CONFIGAGENT view    all     included .1 80
-CONFIGAGENT "access  testcommunitygroup  '' any noauth exact all $snmp_write_access none"
diff --git a/testing/fulltests/default/T000configure_simple b/testing/fulltests/default/T000configure_simple
deleted file mode 100644
index 2e2b4ef..0000000
--- a/testing/fulltests/default/T000configure_simple
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-if  test -f ../support/simple_eval_tools.sh  ; then
-  . ../support/simple_eval_tools.sh
-  versionfile=$SNMP_BASEDIR/../../../dist/autoconf-version
-  configurefile=$SNMP_BASEDIR/../../../configure
-else
-  . ../eval_tools.sh
-  versionfile=$SNMP_BASEDIR/../dist/autoconf-version
-  configurefile=$SNMP_BASEDIR/../configure
-fi
-
-HEADER Checking the Net-SNMP configure script validity
-
-VERSIONNEEDED=`cat $versionfile`
-
-CHECKORDIE "^# Generated by GNU Autoconf $VERSIONNEEDED for Net-SNMP " \
-	"$configurefile"
-SAVE_RESULTS
-
-echo "bogus" > $SNMP_TMPDIR/foo.pid
-FINISHED
diff --git a/testing/fulltests/default/T001snmpv1get_simple b/testing/fulltests/default/T001snmpv1get_simple
deleted file mode 100644
index 07d3847..0000000
--- a/testing/fulltests/default/T001snmpv1get_simple
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv1 support
-
-SKIPIF NETSNMP_DISABLE_SNMPV1
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcomunnity
-. ./Sv1config
-
-STARTAGENT
-
-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.3.0"
-
-CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
-
-CAPTURE "snmpgetnext -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3"
-
-CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
-
-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.3.1"
-
-CHECKORDIE "Error in packet"
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c notavalidcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-
-CHECKORDIE "Timeout"
-
-STOPAGENT
-
-FINISHED
diff --git a/testing/fulltests/default/T0141snmpv2cset_simple b/testing/fulltests/default/T0141snmpv2cset_simple
deleted file mode 100644
index 18d9bae..0000000
--- a/testing/fulltests/default/T0141snmpv2cset_simple
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv2c set of system.sysContact.0
-
-SKIPIF NETSNMP_DISABLE_SET_SUPPORT
-SKIPIF NETSNMP_NO_WRITE_SUPPORT
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-# standard V2C configuration: testcomunnity
-snmp_write_access='all'
-. ./Sv2cconfig
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 2c $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:"
-
-CAPTURE "snmpset -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0 s foobartestingbaz"
-
-CHECK ".1.3.6.1.2.1.1.4.0 = STRING:"
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0"
-
-CHECK "STRING: foobartestingbaz"
-
-STOPAGENT
-
-FINISHED
diff --git a/testing/fulltests/default/T014snmpv2cget_simple b/testing/fulltests/default/T014snmpv2cget_simple
deleted file mode 100644
index 43dffd5..0000000
--- a/testing/fulltests/default/T014snmpv2cget_simple
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv2c get of system.sysUpTime.0
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-# standard V2C configuration: testcomunnity
-. ./Sv2cconfig
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 2c $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/testing/fulltests/default/T015snmpv2cgetnext_simple b/testing/fulltests/default/T015snmpv2cgetnext_simple
deleted file mode 100644
index 7c6eaa9..0000000
--- a/testing/fulltests/default/T015snmpv2cgetnext_simple
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv2c getnext of system.sysUpTime
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-# standard V2C configuration: testcomunnity
-. ./Sv2cconfig
-
-STARTAGENT
-
-CAPTURE "snmpgetnext -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3"
-
-STOPAGENT
-
-CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:"
-
-FINISHED
diff --git a/testing/fulltests/default/T0160snmpv2cbulkget_simple b/testing/fulltests/default/T0160snmpv2cbulkget_simple
deleted file mode 100755
index 38ec3b3..0000000
--- a/testing/fulltests/default/T0160snmpv2cbulkget_simple
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv2c bulkget of system components
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-# standard V2 configuration: testcomunnity
-. ./Sv2cconfig
-
-STARTAGENT
-
-CAPTURE "snmpbulkget $SNMP_FLAGS -v2c -On -Cn1 -Cr2 -c testcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4 .1.3.6.1.2.1.1"
-
-STOPAGENT
-
-CHECKORDIE ".1.3.6.1.2.1.1.4.0 = STRING:"
-CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:"
-CHECKORDIE ".1.3.6.1.2.1.1.2.0 = OID:"
-
-CHECKCOUNT 0 ".1.3.6.1.2.1.1.3.0"
-
-CHECKCOUNT 0 ".1.3.6.1.2.1.1.5.0"
-
-FINISHED
diff --git a/testing/fulltests/default/T016snmpv2cgetfail_simple b/testing/fulltests/default/T016snmpv2cgetfail_simple
deleted file mode 100644
index 1cd0e94..0000000
--- a/testing/fulltests/default/T016snmpv2cgetfail_simple
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-#
-# test snmpv2c get support by reading a variable
-#
-
-. ../support/simple_eval_tools.sh
-
-HEADER for failure of SNMPv2c get with wrong community
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-SKIPIFNOT USING_MIBII_VACM_CONF_MODULE
-
-#
-# Begin test
-#
-
-# standard V2C configuration: testcomunnity
-. ./Sv2cconfig
-
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c notavalidcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-
-STOPAGENT
-
-CHECK "Timeout"
-
-FINISHED
diff --git a/testing/fulltests/default/T017snmpv2ctov1getfail_simple b/testing/fulltests/default/T017snmpv2ctov1getfail_simple
deleted file mode 100644
index 4c812c0..0000000
--- a/testing/fulltests/default/T017snmpv2ctov1getfail_simple
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-#
-# test snmpv2c get support by reading a variable
-#
-
-. ../support/simple_eval_tools.sh
-
-HEADER for failure of SNMPv2c get against SNMPv1 agent
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIF NETSNMP_DISABLE_SNMPV1
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-# standard V2C configuration: testcomunnity
-. ./Sv1config
-
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c notavalidcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-
-STOPAGENT
-
-CHECK "Timeout"
-
-FINISHED
diff --git a/testing/fulltests/default/T018snmpv1tov2cgetfail_simple b/testing/fulltests/default/T018snmpv1tov2cgetfail_simple
deleted file mode 100644
index d9b8b6a..0000000
--- a/testing/fulltests/default/T018snmpv1tov2cgetfail_simple
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER for failure of SNMPv1 get against SNMPv2c agent
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIF NETSNMP_DISABLE_SNMPV1
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-# standard V2C configuration: testcomunnity
-. ./Sv2cconfig
-
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c notavalidcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-
-STOPAGENT
-
-CHECK "Timeout"
-
-FINISHED
diff --git a/testing/fulltests/default/T019snmpv2cnosuch_simple b/testing/fulltests/default/T019snmpv2cnosuch_simple
deleted file mode 100644
index 78a0bb1..0000000
--- a/testing/fulltests/default/T019snmpv2cnosuch_simple
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv2c get of system.sysUpTime.1
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-# standard V2C configuration: testcomunnity
-. ./Sv2cconfig
-
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.1"
-
-STOPAGENT
-
-CHECK ".1.3.6.1.2.1.1.3.1 = No Such Instance"
-
-FINISHED
diff --git a/testing/fulltests/default/T020snmpv3get_simple b/testing/fulltests/default/T020snmpv3get_simple
deleted file mode 100644
index 20b59e4..0000000
--- a/testing/fulltests/default/T020snmpv3get_simple
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 get using noAuthNoPriv of .1.3.6.1.2.1.1.3.0
-
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-# configure the agent to accept user initial with noAuthNoPriv
-. ./Sv3config
-
-STARTAGENT
-
-CAPTURE "snmpget -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/testing/fulltests/default/T021snmpv3getnext_simple b/testing/fulltests/default/T021snmpv3getnext_simple
deleted file mode 100755
index 54c82d3..0000000
--- a/testing/fulltests/default/T021snmpv3getnext_simple
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 getnext using initial of .1.3.6.1.2.1.1.3
-
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-# configure the agent to accept user initial with noAuthNoPriv
-. ./Sv3config
-
-STARTAGENT
-
-CAPTURE "snmpgetnext -On $SNMP_FLAGS $NOAUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3"
-
-STOPAGENT
-
-CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:"
-
-FINISHED
diff --git a/testing/fulltests/default/T0220snmpv3bulkget_simple b/testing/fulltests/default/T0220snmpv3bulkget_simple
deleted file mode 100755
index 7eddccf..0000000
--- a/testing/fulltests/default/T0220snmpv3bulkget_simple
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 bulkget of system
-
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-# standard V3 configuration: 
-. ./Sv3config
-
-STARTAGENT
-
-CAPTURE "snmpbulkget $SNMP_FLAGS -On -Cn1 -Cr2 $NOAUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4 .1.3.6.1.2.1.1"
-
-STOPAGENT
-
-CHECKORDIE ".1.3.6.1.2.1.1.4.0 = STRING:"
-CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:"
-CHECKORDIE ".1.3.6.1.2.1.1.2.0 = OID:"
-
-CHECKCOUNT 0 ".1.3.6.1.2.1.1.3.0"
-
-CHECKCOUNT 0 ".1.3.6.1.2.1.1.5.0"
-
-FINISHED
diff --git a/testing/fulltests/default/T022snmpv3getMD5_simple b/testing/fulltests/default/T022snmpv3getMD5_simple
deleted file mode 100755
index eed4292..0000000
--- a/testing/fulltests/default/T022snmpv3getMD5_simple
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 get using MD5/noPriv of .1.3.6.1.2.1.1.3.0
-
-SKIPIF NETSNMP_DISABLE_MD5
-
-#
-# Begin test
-#
-
-# standard V3 configuration for initial user
-DEFAUTHTYPE="MD5"
-. ./Sv3config
-
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS $AUTHTESTARGS $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/testing/fulltests/default/T023snmpv3getMD5AES_simple b/testing/fulltests/default/T023snmpv3getMD5AES_simple
deleted file mode 100644
index 985b2a4..0000000
--- a/testing/fulltests/default/T023snmpv3getMD5AES_simple
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 get using MD5/AES of .1.3.6.1.2.1.1.3.0
-
-SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
-SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
-SKIPIFNOT HAVE_AES_CFB128_ENCRYPT
-SKIPIF NETSNMP_DISABLE_MD5
-
-#
-# Begin test
-#
-
-# standard V3 configuration for initial user
-DEFAUTHTYPE=MD5
-DEFPRIVTYPE=AES
-. ./Sv3config
-
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS $PRIVTESTARGS $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/testing/fulltests/default/T023snmpv3getMD5DES_simple b/testing/fulltests/default/T023snmpv3getMD5DES_simple
deleted file mode 100755
index 000478a..0000000
--- a/testing/fulltests/default/T023snmpv3getMD5DES_simple
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 get using MD5/DES of .1.3.6.1.2.1.1.3.0
-
-SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
-SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
-SKIPIF NETSNMP_DISABLE_MD5
-
-#
-# Begin test
-#
-
-# standard V3 configuration for initial user
-DEFAUTHTYPE=MD5
-DEFPRIVTYPE=DES
-. ./Sv3config
-
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS $PRIVTESTARGS $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/testing/fulltests/default/T024snmpv3getSHA1_simple b/testing/fulltests/default/T024snmpv3getSHA1_simple
deleted file mode 100755
index 80b7f4f..0000000
--- a/testing/fulltests/default/T024snmpv3getSHA1_simple
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 get using SHA/noPriv of .1.3.6.1.2.1.1.3.0
-
-SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
-
-#
-# Begin test
-#
-
-# standard V3 configuration for templateSHA user
-DEFAUTHTYPE="SHA"
-. ./Sv3config
-
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS $AUTHTESTARGS $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/testing/fulltests/default/T025snmpv3getSHADES_simple b/testing/fulltests/default/T025snmpv3getSHADES_simple
deleted file mode 100755
index d01a4ef..0000000
--- a/testing/fulltests/default/T025snmpv3getSHADES_simple
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 get using SHA/DES of .1.3.6.1.2.1.1.3.0
-
-SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
-SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
-SKIPIF NETSNMP_DISABLE_DES
-
-#
-# Begin test
-#
-
-# standard V3 configuration for templateSHA user
-DEFAUTHTYPE="SHA"
-DEFPRIVTYPE="DES"
-. ./Sv3config
-
-AGENT_FLAGS="$AGENT_FLAGS -I-winExtDLL"
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS $PRIVTESTARGS $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/testing/fulltests/default/T026snmpv3getSHAAES_simple b/testing/fulltests/default/T026snmpv3getSHAAES_simple
deleted file mode 100644
index 561cdab..0000000
--- a/testing/fulltests/default/T026snmpv3getSHAAES_simple
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 get using SHA/AES of .1.3.6.1.2.1.1.3.0
-
-SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
-SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
-SKIPIFNOT HAVE_AES_CFB128_ENCRYPT
-
-#
-# Begin test
-#
-
-# standard V3 configuration for templateSHA user
-DEFPRIVTYPE="AES"
-DEFAUTHTYPE="SHA"
-. ./Sv3config
-
-AGENT_FLAGS="$AGENT_FLAGS -I-winExtDLL"
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS $PRIVTESTARGS $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/testing/fulltests/default/T027snmpv3Defaults_simple b/testing/fulltests/default/T027snmpv3Defaults_simple
deleted file mode 100644
index ea42f47..0000000
--- a/testing/fulltests/default/T027snmpv3Defaults_simple
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 get using default config of .1.3.6.1.2.1.1.3.0
-
-SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
-SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
-SKIPIFNOT HAVE_AES_CFB128_ENCRYPT
-
-#
-# Begin test
-#
-
-# standard V3 configuration for templateSHA user
-DEFPRIVTYPE="AES"
-DEFAUTHTYPE="SHA"
-. ./Sv3config
-
-STARTAGENT
-
-CONFIGAPP defPrivType AES
-CONFIGAPP defAuthType SHA
-CONFIGAPP defContext \"\"
-CONFIGAPP defAuthPassPhrase initial_test_pass_auth
-CONFIGAPP defPrivPassPhrase initial_test_pass_auth
-CONFIGAPP defSecurityLevel authPriv
-CONFIGAPP defSecurityName initial
-
-# make sure that the above configuration tokens properly set things up so that
-# no flags are needed
-CAPTURE "snmpget -On $SNMP_FLAGS $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/testing/fulltests/default/T028snmpv3getfail_simple b/testing/fulltests/default/T028snmpv3getfail_simple
deleted file mode 100755
index ada8a13..0000000
--- a/testing/fulltests/default/T028snmpv3getfail_simple
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER for failure of SNMPv3 get using unknown user.
-
-#
-# Begin test
-#
-
-# standard V3 configuration for initial user
-. ./Sv3config
-
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -l nanp -u unknownuser $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-
-STOPAGENT
-
-CHECK "Unknown user name"
-
-FINISHED
diff --git a/testing/fulltests/default/T030snmpv3usercreation_simple b/testing/fulltests/default/T030snmpv3usercreation_simple
deleted file mode 100644
index 28eaae8..0000000
--- a/testing/fulltests/default/T030snmpv3usercreation_simple
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 agent USM user management with snmpusm
-
-SKIPIF NETSNMP_DISABLE_SET_SUPPORT
-SKIPIF NETSNMP_NO_WRITE_SUPPORT
-SKIPIFNOT USING_SNMPV3_USMUSER_MODULE
-SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
-SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
-
-#
-# Begin test
-#
-
-# standard SNMPv3 USM agent configuration
-DEFSECURITYLEVEL=authPriv
-. ./Sv3usmconfigagent
-
-# test user
-NEWUSER=newtestuser
-NEWAUTHPASS=newauthpass
-NEWPRIVPASS=newprivpass
-NEWAUTHPRIVPASS=newauthprivpass
-
-# configure agent
-CONFIGAGENT rwuser $NEWUSER
-
-# Start the agent
-STARTAGENT
-
-## usmUserTable management
-
-## 1) create, clone, test, delete
-
-# create new (vanilla) user
-CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER"
-CHECKORDIE "User successfully created"
-
-# clone
-CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT cloneFrom $NEWUSER $TESTPRIVUSER"
-CHECKORDIE "User successfully cloned"
-
-# test (authPriv)
-CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $TESTAUTHPASS -x $DEFPRIVTYPE -X $TESTPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
-
-# delete 
-CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT delete $NEWUSER"
-CHECKORDIE "User successfully deleted"
-
-## 2) create w/ clone, passwd (auth), passwd (priv), test (authPriv+authNoPriv)
-
-# create+clone template user
-CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER $TESTPRIVUSER2"
-CHECKORDIE "User successfully created"
-
-# change auth passphrase of new user
-CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS -Ca $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTAUTHPASS2 $NEWAUTHPASS $NEWUSER"
-CHECKORDIE "SNMPv3 Key(s) successfully changed"
-
-# change priv passphrase of new user
-CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS -Cx $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTPRIVPASS2 $NEWPRIVPASS $NEWUSER"
-CHECKORDIE "SNMPv3 Key(s) successfully changed"
-
-# test (authNoPriv)
-CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l anp -a $DEFAUTHTYPE -A $NEWAUTHPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
-
-# test (authPriv)
-CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
-
-## 3) passwd (priv), passwd (auth+priv), test
-
-# change priv passphrase (to auth passphrase) by the user himself
-CAPTURE "snmpusm $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWPRIVPASS -Cx $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWPRIVPASS $NEWAUTHPASS"
-CHECKORDIE "SNMPv3 Key(s) successfully changed"
-
-# change both passphrases at once
-CAPTURE "snmpusm $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWAUTHPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWAUTHPASS $NEWAUTHPRIVPASS"
-CHECKORDIE "SNMPv3 Key(s) successfully changed"
-
-# test (authPriv)
-CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPRIVPASS -x $DEFPRIVTYPE -X $NEWAUTHPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
-
-## 5) persistency I: reconfigure (SIGHUP), re-test
-
-if ISDEFINED HAVE_SIGHUP; then
-
-HUPAGENT
-DELAY
-
-# test (authPriv)
-CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPRIVPASS -x $DEFPRIVTYPE -X $NEWAUTHPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
-
-## 5) persistency II: stop, start, re-test
-
-STOPAGENT
-DELAY
-# make sure it picks up persistent config and uses a new logfile
-SNMPCONFPATH="${SNMP_TMPDIR}${SNMP_ENV_SEPARATOR}${SNMP_TMP_PERSISTENTDIR}"
-export SNMPCONFPATH
-SNMP_CONFIG_FILE="does-not-exist"
-SNMP_SNMPD_LOG_FILE=${SNMP_TMPDIR}/snmpd2.log
-STARTAGENT
-
-# test (authPriv)
-CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPRIVPASS -x $DEFPRIVTYPE -X $NEWAUTHPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
-
-fi
-
-## stop agent and finish
-STOPAGENT
-FINISHED
diff --git a/testing/fulltests/default/T035snmpv3trapdusermgmt_simple b/testing/fulltests/default/T035snmpv3trapdusermgmt_simple
deleted file mode 100644
index be7aab6..0000000
--- a/testing/fulltests/default/T035snmpv3trapdusermgmt_simple
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 snmptrapd USM user management with snmpusm
-
-SKIPIFNOT USING_AGENTX_MASTER_MODULE
-SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE
-SKIPIFNOT USING_SNMPV3_USMUSER_MODULE
-SKIPIF    NETSNMP_SNMPTRAPD_DISABLE_AGENTX
-SKIPIF    NETSNMP_DISABLE_SET_SUPPORT
-SKIPIF    NETSNMP_NO_WRITE_SUPPORT
-SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
-SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
-
-#
-# Begin test
-#
-
-# configure AgentX socket
-if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ]; then
-  AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket"
-  TRAPD_FLAGS="$TRAPD_FLAGS -x $SNMP_TMPDIR/agentx_socket"
-else
-  AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
-  TRAPD_FLAGS="$TRAPD_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
-fi
-
-# standard SNMPv3 USM agent configuration
-DEFSECURITYLEVEL=authPriv
-. ./Sv3usmconfigagent
-
-# save agent access
-AGENT_TESTAUTHARGS=$TESTAUTHARGS
-AGENT_TESTPRIVARGS=$TESTPRIVARGS
-
-# configure agent as AgentX master
-CONFIGAGENT master agentx
-
-# Start the master agent
-STARTAGENT
-
-# standard SNMPv3 USM snmptrapd configuration
-. ./Sv3usmconfigtrapd
-
-# configure snmptrapd
-NEWAUTHKEY=0x7458ead7a0b5a753e21bfcb87f6c9803ebef68cf
-NEWPRIVKEY=0x98e2696d1cf34d904dfcae76bf01c473
-NEWUSER=newtestuser
-NEWAUTHPASS=newauthpass
-NEWPRIVPASS=newprivpass
-NEWUSER2=newtestuser_vanilla
-CONFIGTRAPD authuser log $NEWUSER auth
-
-# start snmptrapd
-STARTTRAPD
-
-# delay to let it connect and register all MIBs
-DELAY
-
-## verify snmptrapd usmUserTable management
-
-SNMPUSM_TRAPD_CONTEXT_ARGS="-n snmptrapd -CE $TRAPD_ENGINEID"
-
-## 1) create, clone, passwd auth, passwd priv, test
-
-# create vanilla user
-CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTAUTHARGS $SNMPUSM_TRAPD_CONTEXT_ARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER2"
-CHECKORDIE "User successfully created"
-
-# clone template user
-CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTAUTHARGS $SNMPUSM_TRAPD_CONTEXT_ARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER $TESTPRIVUSER"
-CHECKORDIE "User successfully created"
-
-# change auth passphrase of new user
-CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTAUTHARGS $SNMPUSM_TRAPD_CONTEXT_ARGS -Ca $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTAUTHPASS $NEWAUTHPASS $NEWUSER"
-CHECKORDIE "SNMPv3 Key(s) successfully changed"
-
-# change priv passphrase of new user
-CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTPRIVARGS $SNMPUSM_TRAPD_CONTEXT_ARGS -Cx $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTPRIVPASS $NEWPRIVPASS $NEWUSER"
-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 .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 .1.3.6.1.2.1.1.4.0 s received_inform_ap"
-DELAY
-CHECKTRAPDORDIE "received_inform_ap"
-
-## 2) change localized auth key, test, change localized priv key, test
-
-# change localized auth key
-CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTAUTHARGS $SNMPUSM_TRAPD_CONTEXT_ARGS -Ca -Ck $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWAUTHPASS $NEWAUTHKEY $NEWUSER"
-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 .1.3.6.1.2.1.1.4.0 s received_inform_anp2"
-DELAY
-CHECKTRAPDORDIE "received_inform_anp2"
-
-# change localized priv key
-CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTPRIVARGS $SNMPUSM_TRAPD_CONTEXT_ARGS -Cx -Ck $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWPRIVPASS $NEWPRIVKEY $NEWUSER"
-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 .1.3.6.1.2.1.1.4.0 s received_inform_ap2"
-DELAY
-CHECKTRAPDORDIE "received_inform_ap2"
-
-## 3) persistency I: reconfigure (SIGHUP), re-test
-
-# reconfigure snmptrapd
-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 .1.3.6.1.2.1.1.4.0 s received_inform_ap3"
-DELAY
-CHECKTRAPDORDIE "received_inform_ap3"
-
-## stop daemons and finish
-STOPTRAPD
-STOPAGENT
-FINISHED
diff --git a/testing/fulltests/default/T049snmpv3inform_simple b/testing/fulltests/default/T049snmpv3inform_simple
deleted file mode 100644
index 99cb5eb..0000000
--- a/testing/fulltests/default/T049snmpv3inform_simple
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-SKIPIFNOT NETSNMP_SECMOD_USM
-
-DEFSECURITYLEVEL=noAuthNoPriv
-
-HEADER "SNMPv3 informs (noAuthNoPriv) received and sent by tools"
-
-#
-# Begin test
-#
-
-CONFIGTRAPD createUser testuser
-CONFIGTRAPD authuser log testuser $DEFSECURITYLEVEL
-CONFIGTRAPD agentxsocket /dev/null
-
-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 .1.3.6.1.2.1.1.4.0 s received_inform_$DEFSECURITYLEVEL"
-
-STOPTRAPD
-
-CHECKTRAPD "received_inform_$DEFSECURITYLEVEL"
-
-FINISHED
diff --git a/testing/fulltests/default/T049snmpv3informauth_simple b/testing/fulltests/default/T049snmpv3informauth_simple
deleted file mode 100644
index 0f18577..0000000
--- a/testing/fulltests/default/T049snmpv3informauth_simple
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-SKIPIFNOT NETSNMP_SECMOD_USM
-
-DEFSECURITYLEVEL=authNoPriv
-
-HEADER "SNMPv3 informs (authNoPriv) received and sent by tools"
-
-#
-# Begin test
-#
-
-. ./Sv3usmconfigtrapd
-CONFIGTRAPD authuser log $TESTAUTHUSER $DEFSECURITYLEVEL
-CONFIGTRAPD agentxsocket /dev/null
-
-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 .1.3.6.1.2.1.1.4.0 s received_inform_$DEFSECURITYLEVEL"
-
-STOPTRAPD
-
-CHECKTRAPD "received_inform_$DEFSECURITYLEVEL"
-
-FINISHED
diff --git a/testing/fulltests/default/T049snmpv3informpriv_simple b/testing/fulltests/default/T049snmpv3informpriv_simple
deleted file mode 100644
index e8f47de..0000000
--- a/testing/fulltests/default/T049snmpv3informpriv_simple
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-DEFSECURITYLEVEL=authPriv
-
-HEADER "SNMPv3 informs (authPriv) received and sent by tools"
-
-SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
-SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
-
-#
-# Begin test
-#
-
-. ./Sv3usmconfigtrapd
-CONFIGTRAPD authuser log $TESTPRIVUSER $DEFSECURITYLEVEL
-CONFIGTRAPD agentxsocket /dev/null
-
-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 .1.3.6.1.2.1.1.4.0 s received_inform_$DEFSECURITYLEVEL"
-
-STOPTRAPD
-
-CHECKTRAPD "received_inform_$DEFSECURITYLEVEL"
-
-FINISHED
diff --git a/testing/fulltests/default/T050snmpv3trap_simple b/testing/fulltests/default/T050snmpv3trap_simple
deleted file mode 100644
index 2b7a4a8..0000000
--- a/testing/fulltests/default/T050snmpv3trap_simple
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 traps received and sent by tools
-
-#SKIPIFNOT NETSNMP_USE_OPENSSL
-SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
-
-#
-# Begin test
-#
-
-CREATEUSERENGINEID=0x80001f88802b3d0e06bbdf4321
-. ./Sv3usmconfigtrapd
-CONFIGTRAPD authuser log $TESTNOAUTHUSER noAuthNoPriv
-CONFIGTRAPD authuser log $TESTAUTHUSER authNoPriv
-CONFIGTRAPD authuser log $TESTPRIVUSER authPriv
-CONFIGTRAPD agentxsocket /dev/null
-
-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 .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 .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 .1.3.6.1.2.1.1.4.0 s received_trap_ap"
-DELAY
-
-STOPTRAPD
-
-CHECKTRAPD "received_trap_nanp"
-CHECKTRAPD "received_trap_anp"
-CHECKTRAPD "received_trap_ap"
-
-FINISHED
diff --git a/testing/fulltests/default/T051snmpv2ctrap_simple b/testing/fulltests/default/T051snmpv2ctrap_simple
deleted file mode 100644
index 8e1be6b..0000000
--- a/testing/fulltests/default/T051snmpv2ctrap_simple
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv2c traps received and sent by tools
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIFNOT USING_MIBII_VACM_CONF_MODULE
-
-#
-# 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/fulltests/default/T052snmpv2cinform_simple b/testing/fulltests/default/T052snmpv2cinform_simple
deleted file mode 100644
index 4208df8..0000000
--- a/testing/fulltests/default/T052snmpv2cinform_simple
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv2c informs received and sent by tools
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIFNOT USING_MIBII_VACM_CONF_MODULE
-
-#
-# Begin test
-#
-
-CONFIGTRAPD authcommunity log testcommunity
-CONFIGTRAPD agentxsocket /dev/null
-
-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 .1.3.6.1.2.1.1.4.0 s blah"
-
-STOPTRAPD
-
-CHECKTRAPD "Received"
-
-FINISHED
diff --git a/testing/fulltests/default/T053agentv1trap_simple b/testing/fulltests/default/T053agentv1trap_simple
deleted file mode 100644
index 44b219e..0000000
--- a/testing/fulltests/default/T053agentv1trap_simple
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER snmpv1 traps are sent by snmpd API
-
-SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE
-SKIPIFNOT HAVE_SIGHUP
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcomunnity
-. ./Sv3config
-CONFIGAGENT trapsink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public
-
-CONFIGTRAPD authcommunity log public
-CONFIGTRAPD agentxsocket /dev/null
-
-STARTTRAPD
-
-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 .1.3.6.1.4.1.2021.254.7.0 i 1"
-
-STOPAGENT
-
-STOPTRAPD
-
-CHECKTRAPD "Enterprise Specific Trap (99)"
-
-FINISHED
diff --git a/testing/fulltests/default/T054agentv2ctrap_simple b/testing/fulltests/default/T054agentv2ctrap_simple
deleted file mode 100644
index f5b6904..0000000
--- a/testing/fulltests/default/T054agentv2ctrap_simple
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER snmpv2c traps are sent by snmpd API
-
-SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcommunity
-. ./Sv3config
-CONFIGAGENT trap2sink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public
-CONFIGTRAPD authcommunity log public
-CONFIGTRAPD agentxsocket /dev/null
-
-STARTTRAPD
-
-AGENT_FLAGS="$AGENT_FLAGS"
-STARTAGENT
-
-#DELAY
-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
-
-STOPTRAPD
-
-CHECKTRAPD "life the universe and everything"
-
-FINISHED
diff --git a/testing/fulltests/default/T055agentv1mintrap_simple b/testing/fulltests/default/T055agentv1mintrap_simple
deleted file mode 100644
index 4a1c0e1..0000000
--- a/testing/fulltests/default/T055agentv1mintrap_simple
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER snmpv1 traps are sent by snmpd without notification mib support
-
-SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcommunity
-. ./Sv3config
-CONFIGAGENT trapsink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public
-CONFIGTRAPD authcommunity log public
-CONFIGTRAPD agentxsocket /dev/null
-
-STARTTRAPD
-
-# initialize only the example mib, and not the notification mib stuff
-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 .1.3.6.1.4.1.2021.254.7.0 i 1"
-
-STOPAGENT
-
-STOPTRAPD
-
-CHECKTRAPD "Enterprise Specific Trap (99)"
-
-FINISHED
diff --git a/testing/fulltests/default/T056agentv2cmintrap_simple b/testing/fulltests/default/T056agentv2cmintrap_simple
deleted file mode 100644
index 73c7a23..0000000
--- a/testing/fulltests/default/T056agentv2cmintrap_simple
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER snmpv2c traps are sent by snmpd without notification mib support
-
-SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcommunity
-. ./Sv3config
-CONFIGAGENT trap2sink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public
-CONFIGTRAPD authcommunity log public
-CONFIGTRAPD agentxsocket /dev/null
-
-STARTTRAPD
-
-# initialize only the example mib, and not the notification mib stuff
-AGENT_FLAGS="$AGENT_FLAGS -Dexample,header_generic,add_trap,mib_init,callback -I example,usmUser,usmConf,vacm_vars"
-STARTAGENT
-
-#DELAY
-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
-
-STOPTRAPD
-
-CHECKTRAPD "life the universe and everything"
-
-FINISHED
diff --git a/testing/fulltests/default/T057trapdauthtest2_simple b/testing/fulltests/default/T057trapdauthtest2_simple
deleted file mode 100644
index 6a43989..0000000
--- a/testing/fulltests/default/T057trapdauthtest2_simple
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-SKIPIFNOT NETSNMP_SECMOD_USM
-
-HEADER snmptrapd discards of unauthorized notification types 
-
-#
-# Begin test
-#
-
-CONFIGTRAPD createUser testuser
-CONFIGTRAPD authuser log testuser noAuthNoPriv .1.3.6.1.6.3.1.1.5.2
-CONFIGTRAPD agentxsocket /dev/null
-
-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 blah"
-
-STOPTRAPD
-
-CHECKTRAPDCOUNT 0 "coldStart"
-
-FINISHED
diff --git a/testing/fulltests/default/T057trapdauthtest3_simple b/testing/fulltests/default/T057trapdauthtest3_simple
deleted file mode 100644
index 078ef38..0000000
--- a/testing/fulltests/default/T057trapdauthtest3_simple
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-SKIPIFNOT NETSNMP_SECMOD_USM
-
-HEADER snmptrapd discards of incorrect view types 
-
-#
-# Begin test
-#
-
-CONFIGTRAPD createUser testuser
-CONFIGTRAPD authuser execute testuser noAuthNoPriv
-CONFIGTRAPD agentxsocket /dev/null
-
-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 blah"
-
-STOPTRAPD
-
-CHECKTRAPDCOUNT 0 "coldStart"
-
-FINISHED
diff --git a/testing/fulltests/default/T057trapdauthtest_simple b/testing/fulltests/default/T057trapdauthtest_simple
deleted file mode 100644
index 4e2fc10..0000000
--- a/testing/fulltests/default/T057trapdauthtest_simple
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-SKIPIFNOT NETSNMP_SECMOD_USM
-
-HEADER snmptrapd authorization failure of non authorized users
-
-#
-# Begin test
-#
-
-CONFIGTRAPD createUser testuser
-CONFIGTRAPD authuser log testuser noAuthNoPriv
-CONFIGTRAPD agentxsocket /dev/null
-
-STARTTRAPD
-
-CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u nottestuser -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 blah"
-
-STOPTRAPD
-
-CHECKTRAPDCOUNT 0 "coldStart"
-
-FINISHED
diff --git a/testing/fulltests/default/T058agentauthtrap_simple b/testing/fulltests/default/T058agentauthtrap_simple
deleted file mode 100644
index aa63639..0000000
--- a/testing/fulltests/default/T058agentauthtrap_simple
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER authentication failure traps are sent by snmpd
-
-SKIPIF NETSNMP_DISABLE_SNMPV1
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcommunity
-. ./Sv1config
-# add in a v1 trap sink
-CONFIGAGENT trapsink $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT public
-CONFIGAGENT authtrapenable 1
-CONFIGTRAPD authcommunity log public
-CONFIGTRAPD agentxsocket /dev/null
-
-STARTTRAPD
-
-STARTAGENT
-
-# give the agent more time to start up.  We only want to fire one
-# request (retries = 0) to make sure only one trap is sent.
-#DELAY
-CAPTURE "snmpget -On -r 0 -t 5 $SNMP_FLAGS -v 1 -c wrongcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-
-STOPAGENT
-
-STOPTRAPD
-
-CHECKTRAPD "Authentication Failure Trap"
-
-FINISHED
diff --git a/testing/fulltests/default/T059trapdtraphandle_simple b/testing/fulltests/default/T059trapdtraphandle_simple
deleted file mode 100755
index 53d5b90..0000000
--- a/testing/fulltests/default/T059trapdtraphandle_simple
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/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
-SKIPIFNOT HAVE_SIGHUP
-
-#
-# 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/fulltests/default/T060trapdperl_simple b/testing/fulltests/default/T060trapdperl_simple
deleted file mode 100755
index 33741e0..0000000
--- a/testing/fulltests/default/T060trapdperl_simple
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER 'snmptrapd embedded perl support (NetSNMP::TrapReceiver)'
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIFNOT NETSNMP_EMBEDDED_PERL
-SKIPIFNOT HAVE_SIGHUP
-SKIPIFNOT NETSNMP_SECMOD_USM
-
-#
-# Begin test
-#
-
-snmp_version=v2c
-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\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\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 $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 $VAROID s handled_trap2_$snmp_version"
-
-## stop
-STOPTRAPD
-
-
-CHECKORDIE "handled_by_embperl"       $EMBPERL_LOGFILE
-CHECKORDIE "handled_again_by_embperl" $EMBPERL_LOGFILE
-
-FINISHED
diff --git a/testing/fulltests/default/T061agentperl_simple b/testing/fulltests/default/T061agentperl_simple
deleted file mode 100755
index c20a3ff..0000000
--- a/testing/fulltests/default/T061agentperl_simple
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/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
-SKIPIFNOT NETSNMP_SECMOD_USM
-
-#
-# Begin test
-#
-
-snmp_version=v2c
-TESTCOMMUNITY=testcommunity
-. ./Sv2cconfig
-
-TESTOID=.1.3.6.1.4.1.8872.9999.9999.1.0
-TESTOID2=.1.3.6.1.4.1.8872.9999.9999.2.0
-EMBPERL_AGENT=${SNMP_TMPDIR}/hello.pl
-cat >$EMBPERL_AGENT <<END
-#!/usr/bin/env perl
-# minimal embedded perl agent
-
-my \$regat = '.1.3.6.1.4.1.8872.9999.9999'; # netSnmpPlayPen
-my \$myoid = \$regat . ".1.0"; # the "hello world" OID
-my \$myoid2 = \$regat . ".2.0"; # the "hello again world" OID
-
-use NetSNMP::OID qw(:all);
-use NetSNMP::agent qw(:all);
-use NetSNMP::ASN qw(:all);
-use SNMP;
-
-my \$regoid = new NetSNMP::OID(\$regat);
-\$agent->register("hello", \$regoid, \&my_snmp_handler);
-
-sub my_snmp_handler {
-  my (\$handler, \$registration_info, \$request_info, \$requests) = @_;
-  for(my \$request = \$requests; \$request; \$request = \$request->next()) {
-    if (\$request_info->getMode() == MODE_GET) {
-      if (\$request->getOID() == new NetSNMP::OID(\$myoid)) {
-        \$request->setValue(ASN_OCTET_STR, "hello world");
-        last;
-      } elsif (\$request->getOID() == new NetSNMP::OID(\$myoid2)) {
-        \$request->setValue(ASN_OCTET_STR, "hello again world");
-        last;
-      }
-    }
-  }
-}
-END
-
-echo "use blib qw(${SNMP_UPDIR}/perl);" > ${SNMP_TMPDIR}/snmp_perl.pl
-echo 'use NetSNMP::agent;' >> ${SNMP_TMPDIR}/snmp_perl.pl
-echo '$agent = new NetSNMP::agent('"'dont_init_agent' => 1, 'dont_init_lib' => 1);" >> ${SNMP_TMPDIR}/snmp_perl.pl
-
-CONFIGAGENT perlInitFile ${SNMP_TMPDIR}/snmp_perl.pl
-CONFIGAGENT "perl do '$EMBPERL_AGENT';"
-CONFIGAGENT 'perl print STDERR "registered_perl_agent_ok";'
-
-STARTAGENT
-
-## 1) SNMP GET against embedded perl mib module
-CAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID"
-CHECK "hello world"
-
-## 2) persistency: reconfigure (HUP), re-test
-HUPAGENT
-CAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID2"
-CHECK "hello again world"
-
-## stop
-STOPAGENT
-
-FINISHED
diff --git a/testing/fulltests/default/T065agentextend_simple b/testing/fulltests/default/T065agentextend_simple
deleted file mode 100644
index 07dcae3..0000000
--- a/testing/fulltests/default/T065agentextend_simple
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/bin/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
-
-snmp_version=v2c
-TESTCOMMUNITY=testcommunity
-. ./Sv2cconfig
-
-#
-# Begin test
-#
-
-index='"hello"'
-if [ "x$OSTYPE" = "xmsys" ]; then
-    CONFIGAGENT extend hello $MSYS_SH -c "'" echo hello_world "'"
-else
-    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.$index"
-CHECKORDIE "STRING: 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.$index"
-CHECKORDIE "STRING: 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.$index.1"
-CHECKORDIE "STRING: 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.$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.$index"
-CHECKORDIE "INTEGER: 0"
-
-STOPAGENT
-FINISHED
diff --git a/testing/fulltests/default/T066pass_simple b/testing/fulltests/default/T066pass_simple
deleted file mode 100644
index 6396ed1..0000000
--- a/testing/fulltests/default/T066pass_simple
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER "extending agent functionality with pass"
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIFNOT USING_UCD_SNMP_PASS_MODULE
-SKIPIFNOT USING_UTILITIES_EXECUTE_MODULE
-
-# Don't run this test on MinGW - local/passtest is a shell script and
-# hence passing it to the MSVCRT popen() doesn't work.
-[ "x$OSTYPE" = "xmsys" ] && SKIP "MinGW"
-
-# make sure snmpget and snmpwalk can be executed
-SNMPGET="${builddir}/apps/snmpget"
-[ -x "$SNMPGET" ] || SKIP
-SNMPWALK="${builddir}/apps/snmpwalk"
-[ -x "$SNMPWALK" ] || SKIP
-
-snmp_version=v2c
-TESTCOMMUNITY=testcommunity
-. ./Sv2cconfig
-
-#
-# Begin test
-#
-oid=.1.3.6.1.4.1.8072.2.255  # NET-SNMP-PASS-MIB::netSnmpPassExamples
-CONFIGAGENT pass $oid ${srcdir}/local/passtest
-
-ORIG_AGENT_FLAGS="$AGENT_FLAGS"
-AGENT_FLAGS="$ORIG_AGENT_FLAGS -Ducd-snmp/pass"
-STARTAGENT
-
-#COMMENT Check a full walk of the sample data
-CAPTURE "$SNMPWALK $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $oid"
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassString.0 = STRING: Life, the Universe, and Everything"
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassInteger.1 = INTEGER: 42"
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassOID.1 = OID: NET-SNMP-PASS-MIB::netSnmpPassOIDValue"
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassTimeTicks.0 = Timeticks: (363136200) 42 days, 0:42:42.00 "
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassIpAddress.0 = IpAddress: 127.0.0.1"
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassCounter.0 = Counter32: 42"
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassGauge.0 = Gauge32: 42"
-
-#COMMENT A couple of spot checks of GET requests.
-CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT NET-SNMP-PASS-MIB::netSnmpPassInteger.1"
-CHECKORDIE "INTEGER: 42"
-
-CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT NET-SNMP-PASS-MIB::netSnmpPassCounter.0"
-CHECKORDIE "Counter32: 42"
-
-STOPAGENT
-FINISHED
diff --git a/testing/fulltests/default/T067passpersist_simple b/testing/fulltests/default/T067passpersist_simple
deleted file mode 100644
index 6051b8f..0000000
--- a/testing/fulltests/default/T067passpersist_simple
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER "extending agent functionality with pass_persist"
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIFNOT USING_UCD_SNMP_PASS_PERSIST_MODULE
-
-# 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="${builddir}/apps/snmpget"
-[ -x "$SNMPGET" ] || SKIP
-SNMPWALK="${builddir}/apps/snmpwalk"
-[ -x "$SNMPWALK" ] || SKIP
-
-snmp_version=v2c
-TESTCOMMUNITY=testcommunity
-. ./Sv2cconfig
-
-#
-# Begin test
-#
-oid=.1.3.6.1.4.1.8072.2.255  # NET-SNMP-PASS-MIB::netSnmpPassExamples
-CONFIGAGENT pass_persist $oid ${srcdir}/local/pass_persisttest
-
-ORIG_AGENT_FLAGS="$AGENT_FLAGS"
-AGENT_FLAGS="$ORIG_AGENT_FLAGS -Ducd-snmp/pass_persist"
-PASS_PERSIST_PIDFILE="$SNMP_TMPDIR/pass_persist.pid.$$"
-export PASS_PERSIST_PIDFILE
-STARTAGENT
-
-#COMMENT Check a full walk of the sample data
-CAPTURE "$SNMPWALK $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $oid"
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassString.0 = STRING: Life, the Universe, and Everything"
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassInteger.1 = INTEGER: 42"
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassOID.1 = OID: NET-SNMP-PASS-MIB::netSnmpPassOIDValue"
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassTimeTicks.0 = Timeticks: (363136200) 42 days, 0:42:42.00 "
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassIpAddress.0 = IpAddress: 127.0.0.1"
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassCounter.0 = Counter32: 1"
-CHECKORDIE "NET-SNMP-PASS-MIB::netSnmpPassGauge.0 = Gauge32: 42"
-
-#COMMENT A couple of spot checks of GET requests.
-CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT NET-SNMP-PASS-MIB::netSnmpPassInteger.1"
-CHECKORDIE "INTEGER: 42"
-
-#COMMENT netSnmpPassCounter should increment, since this is pass_persist
-CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT NET-SNMP-PASS-MIB::netSnmpPassCounter.0"
-CHECKORDIE "Counter32: 2"
-
-#COMMENT now kill the pass_persist script, and check that it recovers.
-STOPPROG $PASS_PERSIST_PIDFILE
-#COMMENT netSnmpPassCounter should have reverted to 1, as this is a new instance.
-CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT NET-SNMP-PASS-MIB::netSnmpPassCounter.0"
-CHECKORDIE "Counter32: 1"
-
-STOPAGENT
-FINISHED
diff --git a/testing/fulltests/default/T070com2sec_simple b/testing/fulltests/default/T070com2sec_simple
deleted file mode 100644
index 9f76fcd..0000000
--- a/testing/fulltests/default/T070com2sec_simple
+++ /dev/null
@@ -1,159 +0,0 @@
-#!/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
deleted file mode 100644
index 550a25b..0000000
--- a/testing/fulltests/default/T071com2sec6_simple
+++ /dev/null
@@ -1,155 +0,0 @@
-#!/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
deleted file mode 100644
index a89de5d..0000000
--- a/testing/fulltests/default/T072com2secunix_simple
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/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); } 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/fulltests/default/T100agenthup_simple b/testing/fulltests/default/T100agenthup_simple
deleted file mode 100755
index d4949e1..0000000
--- a/testing/fulltests/default/T100agenthup_simple
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER that the agent responds properly to a kill -HUP
-
-SKIPIF NETSNMP_DISABLE_SNMPV1
-
-SKIPIFNOT HAVE_SIGHUP
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcomunnity
-. ./Sv1config
-
-STARTAGENT
-
-# add a agent configuration line that wouldn't have been there when
-# the started up.
-CONFIGAGENT syslocation not-anywhere-in-particular
-
-# kill -HUP the agent to get it to re-read the .conf file.
-DELAY
-kill -HUP `cat $SNMP_SNMPD_PID_FILE` > /dev/null 2>&1
-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 .1.3.6.1.2.1.1.6.0"
-
-STOPAGENT
-
-CHECK "not-anywhere-in-particular"
-
-FINISHED
diff --git a/testing/fulltests/default/T110agentxget_simple b/testing/fulltests/default/T110agentxget_simple
deleted file mode 100644
index 2f91d36..0000000
--- a/testing/fulltests/default/T110agentxget_simple
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER AgentX GET support
-
-SKIPIFNOT USING_AGENTX_MASTER_MODULE
-SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-# standard V3 configuration for initial user
-. ./Sv3config
-
-# Start the agent without initializing the system mib.
-if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then
-ORIG_AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket"
-else
-ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
-fi
-AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib,winExtDLL"
-STARTAGENT
-
-# test to see that the current agent doesn't support the system mib
-CAPTURE "snmpget -On $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-
-CHECK ".1.3.6.1.2.1.1.3.0 = No Such Object"
-
-if test "$snmp_last_test_result" = 1; then
-  # test the agentx subagent by first running it...
-
-  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
-  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
-  AGENT_FLAGS="$ORIG_AGENT_FLAGS -X -I system_mib"
-  SNMP_CONFIG_FILE="$SNMP_TMPDIR/bogus.conf"
-  STARTAGENT
-
-  # test to see that the agent now supports setting the system mib
-  CAPTURE "snmpget -On $SNMP_FLAGS -t 3 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-
-  CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:"
-
-  # stop the subagent
-  STOPAGENT
-
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
-fi
-
-# stop the master agent
-STOPAGENT
-
-# all done (whew)
-FINISHED
diff --git a/testing/fulltests/default/T111agentxset_simple b/testing/fulltests/default/T111agentxset_simple
deleted file mode 100644
index 87939bd..0000000
--- a/testing/fulltests/default/T111agentxset_simple
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER AgentX SET support
-
-SKIPIFNOT USING_AGENTX_MASTER_MODULE
-SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-SKIPIF    NETSNMP_DISABLE_SET_SUPPORT
-SKIPIF    NETSNMP_NO_WRITE_SUPPORT
-
-#
-# Begin test
-#
-
-# standard V3 configuration for initial user
-. ./Sv3config
-
-# Start the agent without initializing the system mib.
-if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then
-ORIG_AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket"
-else
-ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
-fi
-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 .1.3.6.1.2.1.1.4.0"
-
-CHECK ".1.3.6.1.2.1.1.4.0 = No Such Object"
-
-if test "$snmp_last_test_result" = 1; then
-  # test the AgentX subagent by first running it...
-
-  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
-  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
-  AGENT_FLAGS="$ORIG_AGENT_FLAGS -X -I system_mib"
-  SNMP_CONFIG_FILE="$SNMP_TMPDIR/bogus.conf"
-  echo "psyscontact testcontact" >> $SNMP_CONFIG_FILE
-  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 .1.3.6.1.2.1.1.4.0"
-
-  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 .1.3.6.1.2.1.1.4.0 s 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 .1.3.6.1.2.1.1.4.0"
-	
-	CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*newtestcontact"
-    fi
-  fi
-
-  # stop the subagent
-  STOPAGENT
-
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
-fi
-
-# stop the master agent
-STOPAGENT
-
-# all done (whew)
-FINISHED
diff --git a/testing/fulltests/default/T112agentxsetfail_simple b/testing/fulltests/default/T112agentxsetfail_simple
deleted file mode 100644
index d610b41..0000000
--- a/testing/fulltests/default/T112agentxsetfail_simple
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER AgentX illegal SET handling support
-
-SKIPIFNOT USING_AGENTX_MASTER_MODULE
-SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-SKIPIF    NETSNMP_DISABLE_SET_SUPPORT
-SKIPIF    NETSNMP_NO_WRITE_SUPPORT
-
-#
-# Begin test
-#
-
-# standard V3 configuration for initial user
-. ./Sv3config
-
-# Start the agent without initializing the system mib.
-if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then
-ORIG_AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket"
-else
-ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
-fi
-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 .1.3.6.1.2.1.1.4.0"
-
-CHECK ".1.3.6.1.2.1.1.4.0 = No Such Object"
-
-if test "$snmp_last_test_result" = 1; then
-  # test the AgentX subagent by first running it...
-
-  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
-  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
-  AGENT_FLAGS="$ORIG_AGENT_FLAGS -X -I system_mib"
-  SNMP_CONFIG_FILE="$SNMP_TMPDIR/bogus.conf"
-  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 .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.
-  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 .1.3.6.1.2.1.1.4.0 i 4"
-
-    CHECK "wrongType"
-
-  fi
-
-  # stop the subagent
-  STOPAGENT
-
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
-fi
-
-# stop the master agent
-STOPAGENT
-
-# all done (whew)
-FINISHED
diff --git a/testing/fulltests/default/T113agentxtrap_simple b/testing/fulltests/default/T113agentxtrap_simple
deleted file mode 100644
index 4fa5e2f..0000000
--- a/testing/fulltests/default/T113agentxtrap_simple
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER AgentX trap sending support
-
-SKIPIFNOT USING_AGENTX_MASTER_MODULE
-SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE
-SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE
-SKIPIFNOT NETSNMP_SECMOD_USM
-
-#
-# Begin test
-#
-
-# start the trap demon
-CONFIGTRAPD authcommunity log public
-STARTTRAPD
-
-# standard V3 configuration for initial user
-. ./Sv3config
-# configure the trap receiver.
-CONFIGAGENT trapsink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public
-
-# Start the agent without initializing the example mib.
-if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then
-ORIG_AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket"
-else
-ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
-fi
-AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -example"
-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 .1.3.6.1.4.1.2021.254.1.0"
-
-CHECK "No Such Object"
-
-if test "$snmp_last_test_result" = 1; then
-  # test the AgentX subagent by first running it...
-
-  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
-  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
-  AGENT_FLAGS="$ORIG_AGENT_FLAGS -X -I example -Dadd"
-  SNMP_CONFIG_FILE="$SNMP_TMPDIR/bogus.conf"
-
-  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 .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 .1.3.6.1.4.1.2021.254.8.0 i 1"
-    DELAY
-    CHECKTRAPD "life the universe and everything"
-
-  fi
-
-  # stop the subagent
-  STOPAGENT
-
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
-fi
-
-# stop the master agent
-STOPAGENT
-
-# stop the trap demon
-STOPTRAPD
-
-# all done (whew)
-FINISHED
diff --git a/testing/fulltests/default/T114agentxagentxtrap_simple b/testing/fulltests/default/T114agentxagentxtrap_simple
deleted file mode 100644
index 58475d0..0000000
--- a/testing/fulltests/default/T114agentxagentxtrap_simple
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER AgentX trap sending support using agentxtrap
-
-SKIPIFNOT USING_AGENTX_MASTER_MODULE
-SKIPIFNOT NETSNMP_SECMOD_USM
-
-#
-# 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 "= STRING: \"*mostly_harmless\"*"
-
-# all done (whew)
-FINISHED
diff --git a/testing/fulltests/default/T115agentxperl_simple b/testing/fulltests/default/T115agentxperl_simple
deleted file mode 100755
index a44a202..0000000
--- a/testing/fulltests/default/T115agentxperl_simple
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/bin/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
-
-#
-# Begin test
-#
-
-snmp_version=v2c
-TESTCOMMUNITY=testcommunity
-. ./Sv2cconfig
-
-TESTOID=.1.3.6.1.4.1.8872.9999.9999.1.0
-TESTOID2=.1.3.6.1.4.1.8872.9999.9999.2.0
-AGENTX_SOCKET=${SNMP_TMPDIR}/agentx_socket
-PERL_SUBAGENT=${SNMP_TMPDIR}/hello.pl
-PERL_SUBAGENT_CONF=${SNMP_TMPDIR}/hello.conf
-
-cat >$PERL_SUBAGENT <<END
-#!${SNMP_PERLPROG}
-# minimal AgentX subagent in Perl
-
-use blib qw(${SNMP_UPDIR}/perl);
-use NetSNMP::OID qw(:all);
-use NetSNMP::agent qw(:all);
-use NetSNMP::ASN qw(:all);
-use NetSNMP::agent::default_store;
-use NetSNMP::default_store qw(:all);
-use SNMP;
-
-## double-fork daemon
-my \$pid;
-unless (\$pid = fork) {
-  unless (fork) {
-    ## start main code
-    my \$regat = '.1.3.6.1.4.1.8872.9999.9999'; # netSnmpPlayPen
-    my \$myoid = \$regat . ".1.0"; # the "hello world" OID
-    my \$myoid2 = \$regat . ".2.0"; # the "hello again world" OID
-
-    my \$pidfile = shift; # take PID file as first argument 
-    open(PIDFILE, ">\$pidfile") or die "Couldn't open \$pidfile";
-    print PIDFILE \$\$;
-    close(PIDFILE);
-
-sub my_snmp_handler {
-  my (\$handler, \$registration_info, \$request_info, \$requests) = @_;
-  for(my \$request = \$requests; \$request; \$request = \$request->next()) {
-    if (\$request_info->getMode() == MODE_GET) {
-      if (\$request->getOID() == new NetSNMP::OID(\$myoid)) {
-        \$request->setValue(ASN_OCTET_STR, "hello world");
-        last;
-      } elsif (\$request->getOID() == new NetSNMP::OID(\$myoid2)) {
-        \$request->setValue(ASN_OCTET_STR, "hello again world");
-        last;
-      }
-    }
-  }
-}
-sub shut_it_down { \$running = 0; }
-
-    netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
-                           NETSNMP_DS_AGENT_NO_ROOT_ACCESS, 1);
-    my \$agent = new NetSNMP::agent('Name' => 'hello', 'AgentX' => 1);
-    my \$regoid = new NetSNMP::OID(\$regat);
-    \$agent->register("hello", \$regoid, \&my_snmp_handler);
-
-    \$SIG{'INT'} = \&shut_it_down;
-    \$SIG{'QUIT'} = \&shut_it_down;
-    \$running = 1;
-    while(\$running) {
-      \$agent->agent_check_and_process(1);
-    }
-    \$agent->shutdown();
-    ## end main code
-    exit 0;
-  }
-  exit 0;
-}
-waitpid(\$pid, 0);
-END
-
-echo "agentxsocket $AGENTX_SOCKET" > $PERL_SUBAGENT_CONF
-
-CONFIGAGENT master agentx
-CONFIGAGENT agentxsocket $AGENTX_SOCKET
-
-STARTAGENT
-
-# 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
-
-## 1) SNMP GET against mib object implemented by the perl subagent
-CAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID"
-CHECK "hello world"
-
-## 2) persistency: reconfigure master agent (HUP), re-test
-HUPAGENT
-CAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID2"
-CHECK "hello again world"
-
-## stop
-STOPAGENT
-STOPPROG $SNMP_AGENTX_PID_FILE
-
-FINISHED
diff --git a/testing/fulltests/default/T120proxyget_simple b/testing/fulltests/default/T120proxyget_simple
deleted file mode 100644
index 12c58fd..0000000
--- a/testing/fulltests/default/T120proxyget_simple
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER Proxy GET support
-
-SKIPIFNOT USING_UCD_SNMP_PROXY_MODULE
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-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
-
-#
-# Begin test
-#
-
-# 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} .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,winExtDLL -Dproxy"
-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 .1.3.6.1.2.1.1.3.0"
-
-#CHECK ".1.3.6.1.2.1.1.3.0 = No Such Object"
-
-#if test "$snmp_last_test_result" = 1; then
-  # test the proxy subagent by first running it...
-
-  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
-  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
-  SNMP_CONFIG_FILE="$SNMP_TMPDIR/proxy.conf"
-  echo "rwcommunity testcommunity" >> $SNMP_CONFIG_FILE
-  if [ "$SNMP_TRANSPORT_SPEC" = "udp6" -o "$SNMP_TRANSPORT_SPEC" = "tcp6" ];then
-    echo "rwcommunity6 testcommunity" >> $SNMP_CONFIG_FILE
-  fi
-  AGENT_FLAGS=$ORIG_AGENT_FLAGS
-  ORIG_SNMP_SNMPD_PORT=$SNMP_SNMPD_PORT
-  SNMP_SNMPD_PORT="${SNMP_AGENTX_PORT}"
-  STARTAGENT
-  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 .1.3.6.1.2.1.1.3.0"
-
-  CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:"
-
-  # stop the subagent
-  STOPAGENT
-
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
-#fi
-
-# stop the master agent
-STOPAGENT
-
-# all done (whew)
-FINISHED
diff --git a/testing/fulltests/default/T121proxyset_simple b/testing/fulltests/default/T121proxyset_simple
deleted file mode 100644
index 977ddb9..0000000
--- a/testing/fulltests/default/T121proxyset_simple
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER Proxy SET support
-
-SKIPIFNOT USING_UCD_SNMP_PROXY_MODULE
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-SKIPIF    NETSNMP_DISABLE_SNMPV2C
-SKIPIF    NETSNMP_DISABLE_SET_SUPPORT
-SKIPIF    NETSNMP_NO_WRITE_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
-
-#
-# Begin test
-#
-
-# 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} .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,winExtDLL -Dproxy"
-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 .1.3.6.1.2.1.1.3.0"
-
-#CHECK ".1.3.6.1.2.1.1.3.0 = No Such Object"
-
-#if test "$snmp_last_test_result" = 1; then
-  # test the proxy subagent by first running it...
-
-  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
-  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
-  SNMP_CONFIG_FILE="$SNMP_TMPDIR/proxy.conf"
-  echo "rwcommunity testcommunity" >> $SNMP_CONFIG_FILE
-  if [ "$SNMP_TRANSPORT_SPEC" = "udp6" -o "$SNMP_TRANSPORT_SPEC" = "tcp6" ];then
-    echo "rwcommunity6 testcommunity" >> $SNMP_CONFIG_FILE
-  fi
-  echo "psyscontact testcontact" >> $SNMP_CONFIG_FILE
-  AGENT_FLAGS="$ORIG_AGENT_FLAGS -Dmib_init"
-  ORIG_SNMP_SNMPD_PORT=$SNMP_SNMPD_PORT
-  SNMP_SNMPD_PORT="${SNMP_AGENTX_PORT}"
-  STARTAGENT
-  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 .1.3.6.1.2.1.1.4.0"
-
-  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 .1.3.6.1.2.1.1.4.0 s testnewcontact"
-
-    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 .1.3.6.1.2.1.1.4.0"
-	
-	CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*testnewcontact"
-    fi
-  fi
-
-  # stop the subagent
-  STOPAGENT
-
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
-#fi
-
-# stop the master agent
-STOPAGENT
-
-# all done (whew)
-FINISHED
diff --git a/testing/fulltests/default/T122proxysetfail_simple b/testing/fulltests/default/T122proxysetfail_simple
deleted file mode 100644
index 7dad797..0000000
--- a/testing/fulltests/default/T122proxysetfail_simple
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER Proxy illegal SET handling support
-
-SKIPIFNOT USING_UCD_SNMP_PROXY_MODULE
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-SKIPIF    NETSNMP_DISABLE_SNMPV2C
-SKIPIF    NETSNMP_DISABLE_SET_SUPPORT
-SKIPIF    NETSNMP_NO_WRITE_SUPPORT
-
-# XXX: ucd-snmp/proxy doesn't properly support TCP -- remove this once it does
-[ "x$SNMP_TRANSPORT_SPEC" = "xtcp" ] && SKIP
-
-#
-# Begin test
-#
-
-# 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} .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,winExtDLL -Dproxy"
-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 .1.3.6.1.2.1.1.3.0"
-
-#CHECK ".1.3.6.1.2.1.1.3.0 = No Such Object"
-
-#if test "$snmp_last_test_result" = 1; then
-  # test the proxy subagent by first running it...
-
-  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
-  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
-  SNMP_CONFIG_FILE="$SNMP_TMPDIR/proxy.conf"
-  echo "rwcommunity testcommunity" >> $SNMP_CONFIG_FILE
-  if [ "$SNMP_TRANSPORT_SPEC" = "udp6" -o "$SNMP_TRANSPORT_SPEC" = "tcp6" ];then
-    echo "rwcommunity6 testcommunity" >> $SNMP_CONFIG_FILE
-  fi
-#  echo "syscontact testcontact" >> $SNMP_CONFIG_FILE
-  AGENT_FLAGS="$ORIG_AGENT_FLAGS -Dmib_init"
-  ORIG_SNMP_SNMPD_PORT=$SNMP_SNMPD_PORT
-  SNMP_SNMPD_PORT="${SNMP_AGENTX_PORT}"
-  STARTAGENT
-  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 .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.
-  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 .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"
-    # 5.1.x snmpset shows error on multiple lines
-    CHECK "Reason: wrongType"
-    CHECK "Failed object: .1.3.6.1.2.1.1.4.0"
-
-  fi
-
-  # stop the subagent
-  STOPAGENT
-
-  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
-  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
-#fi
-
-# stop the master agent
-STOPAGENT
-
-# all done (whew)
-FINISHED
diff --git a/testing/fulltests/default/T130snmpv1vacmget_simple b/testing/fulltests/default/T130snmpv1vacmget_simple
deleted file mode 100644
index 80623f4..0000000
--- a/testing/fulltests/default/T130snmpv1vacmget_simple
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv1 vacm acceptance support
-SKIPIF NETSNMP_DISABLE_SNMPV1
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcommunity1 testcommunity2
-# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied
-# testcommunity2 can access all except .1.3.6.1.2.1.1.1
-# This case test for successful access
-snmp_version=v1
-. ./Svacmconfig
-
-AGENT_FLAGS="$AGENT_FLAGS -I-winExtDLL"
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity1 -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" 
-
-CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:"
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity2 -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .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/fulltests/default/T131snmpv2cvacmget_simple b/testing/fulltests/default/T131snmpv2cvacmget_simple
deleted file mode 100644
index 4f72370..0000000
--- a/testing/fulltests/default/T131snmpv2cvacmget_simple
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv2 vacm acceptance support
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-
-#
-# Begin test
-#
-
-
-# standard V1 configuration: testcommunity1 testcommunity2
-# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied
-# testcommunity2 can access all except .1.3.6.1.2.1.1.1
-# This case test for successful access
-
-snmp_version=v2c
-. ./Svacmconfig
-
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity1 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" 
-
-CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:"
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity2 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .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/fulltests/default/T132snmpv3vacmget_simple b/testing/fulltests/default/T132snmpv3vacmget_simple
deleted file mode 100644
index 004d0dd..0000000
--- a/testing/fulltests/default/T132snmpv3vacmget_simple
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 vacm acceptance support
-
-#
-# Begin test
-#
-
-# Configuration:
-#initial1 can access .1.3.6.1.2.1.1.1, deny others
-#initial2 can access all except .1.3.6.1.2.1.1.1 
-#This case test for successful access
-
-snmp_version=v3
-. ./Sv3vacmconfig
-
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS -v3 -a MD5 -A initial_test_pass_auth -u initial1 -l anp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" 
-
-CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:"
-
-CAPTURE "snmpget -On $SNMP_FLAGS -v3 -a MD5 -A initial_test_pass_auth -u initial2 -l anp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .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/fulltests/default/T140snmpv1vacmgetfail_simple b/testing/fulltests/default/T140snmpv1vacmgetfail_simple
deleted file mode 100644
index a47f94d..0000000
--- a/testing/fulltests/default/T140snmpv1vacmgetfail_simple
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv1 vacm denial support
-
-SKIPIF NETSNMP_DISABLE_SNMPV1
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcommunity1 testcommunity2
-# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied
-# testcommunity2 can access all except .1.3.6.1.2.1.1.1
-# This case test for denied access
-
-snmp_version=v1
-. ./Svacmconfig
-
-STARTAGENT
-
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity1 -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-
-CHECKORDIE "Reason: (noSuchName) There is no such variable name in this MIB."
-
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity2 -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0"
-
-CHECKORDIE "Reason: (noSuchName) There is no such variable name in this MIB."
-
-STOPAGENT
-
-FINISHED
diff --git a/testing/fulltests/default/T141snmpv2cvacmgetfail_simple b/testing/fulltests/default/T141snmpv2cvacmgetfail_simple
deleted file mode 100644
index cd362aa..0000000
--- a/testing/fulltests/default/T141snmpv2cvacmgetfail_simple
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv2 vacm denial support
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIF NETSNMP_DISABLE_SET_SUPPORT
-SKIPIF NETSNMP_NO_WRITE_SUPPORT
-SKIPIFNOT USING_MIBII_VACM_CONF_MODULE
-
-#
-# Begin test
-#
-
-
-# standard V1 configuration: testcommunity1 testcommunity2
-# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied
-# testcommunity2 can access all except .1.3.6.1.2.1.1.1
-# This case test for denied access
-
-snmp_version=v2c
-. ./Svacmconfig
-
-STARTAGENT
-
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity1 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-CHECKORDIE ".1.3.6.1.2.1.1.3.0 = No Such Object available on this agent at this OID"
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity2 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0"
-CHECKORDIE ".1.3.6.1.2.1.1.1.0 = No Such Object available on this agent at this OID"
-
-CAPTURE "snmpset -On $SNMP_FLAGS -c testcommunity1 -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"
-
-CAPTURE "snmpset -On $SNMP_FLAGS -c testcommunity2 -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"
-
-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"
-
-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"
-
-STOPAGENT
-
-FINISHED
diff --git a/testing/fulltests/default/T142snmpv3vacmgetfail_simple b/testing/fulltests/default/T142snmpv3vacmgetfail_simple
deleted file mode 100644
index cfc000b..0000000
--- a/testing/fulltests/default/T142snmpv3vacmgetfail_simple
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv3 vacm denial support
-
-#
-# Begin test
-#
-
-# Configuration:
-#initial1 can access .1.3.6.1.2.1.1.1, deny others
-#initial2 can access all except .1.3.6.1.2.1.1.1 
-#This case test for denied access
-
-snmp_version=v3
-. ./Sv3vacmconfig
-
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS -v3 -a MD5 -A initial_test_pass_auth -u initial1 -l anp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" 
-
-CHECKORDIE ".1.3.6.1.2.1.1.3.0 = No Such Object available on this agent at this OID"
-
-
-CAPTURE "snmpget -On $SNMP_FLAGS -v3 -a MD5 -A initial_test_pass_auth -u initial2 -l anp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" 
-
-CHECKORDIE ".1.3.6.1.2.1.1.1.0 = No Such Object available on this agent at this OID"
-
-STOPAGENT
-
-FINISHED
diff --git a/testing/fulltests/default/T150solarishostcpu_simple b/testing/fulltests/default/T150solarishostcpu_simple
deleted file mode 100644
index 4a3ee6a..0000000
--- a/testing/fulltests/default/T150solarishostcpu_simple
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER 1st CPU on Solaris using HOST-RESOURCES
-
-if test "x`uname -s`" != "xSunOS" ; then
-    SKIP "not running solaris"
-fi
-
-SKIPIF NETSNMP_DISABLE_SNMPV1
-SKIPIFNOT USING_HOST_HR_DEVICE_MODULE
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcommunity
-. ./Sv1config
-
-STARTAGENT
-
-# ask for the description of the first CPU in the system
-
-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 '
-
-STOPAGENT
-  
-FINISHED
diff --git a/testing/fulltests/default/T151solarishostdisk_simple b/testing/fulltests/default/T151solarishostdisk_simple
deleted file mode 100644
index 77a117f..0000000
--- a/testing/fulltests/default/T151solarishostdisk_simple
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/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
-    SKIP  "not running solaris"
-fi
-
-SKIPIFNOT USING_HOST_HR_SYSTEM_MODULE
-SKIPIF NETSNMP_DISABLE_SNMPV1
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcommunity
-. ./Sv1config
-
-STARTAGENT
-
-# ask for the index of the initial device (hrSystemInitialLoadDevice.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.25.1.3.0"
-
-STOPAGENT
-
-CHECKORDIE "^.1.3.6.1.2.1.25.1.3.0 = INTEGER:"
-
-FINISHED
diff --git a/testing/fulltests/default/T152hostuptime_simple b/testing/fulltests/default/T152hostuptime_simple
deleted file mode 100644
index 4d62b35..0000000
--- a/testing/fulltests/default/T152hostuptime_simple
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER uptime using HOST-RESOURCES
-
-SKIPIFNOT USING_HOST_HR_SYSTEM_MODULE
-
-SKIPIF NETSNMP_DISABLE_SNMPV1
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcommunity
-. ./Sv1config
-
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.25.1.1.0"
-
-STOPAGENT
-    
-CHECKORDIE "^.1.3.6.1.2.1.25.1.1.0 = Timeticks:"
-
-FINISHED
-
diff --git a/testing/fulltests/default/T153solarisswap_simple b/testing/fulltests/default/T153solarisswap_simple
deleted file mode 100644
index 055dd45..0000000
--- a/testing/fulltests/default/T153solarisswap_simple
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER swap on Solaris using HOST-RESOURCES
-
-if test `uname -s` != "SunOS" ; then
-    SKIP "not running solaris"
-fi
-
-ISDEFINED USING_HOST_HR_STORAGE_MODULE || ISDEFINED USING_HOST_HRH_STORAGE_MODULE || SKIP "Not using hrStorage"
-
-SKIPIF NETSNMP_DISABLE_SNMPV1
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcommunity
-. ./Sv1config
-
-STARTAGENT
-
-# ask for hrStorageSize.10 which reports overall swap size
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.25.2.3.1.5.10"
-
-STOPAGENT
-
-CHECKORDIE "^.1.3.6.1.2.1.25.2.3.1.5.10 = INTEGER:"
-
-FINISHED
diff --git a/testing/fulltests/default/T154dismanpingmib_simple b/testing/fulltests/default/T154dismanpingmib_simple
deleted file mode 100644
index 45cffe0..0000000
--- a/testing/fulltests/default/T154dismanpingmib_simple
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER DISMAN PING MIB
-
-[ "$UID" = 0 ] || SKIP "Not permitted to create raw sockets"
-SKIPIFNOT USING_DISMAN_PING_MIB_MODULE
-SKIPIF NETSNMP_DISABLE_SNMPV1
-
-# SNMPv2-TC
-active=1
-createAndWait=5
-destroy=6
-# DISMAN-PING-MIB
-DISMAN_PING_MIB=.1.3.6.1.2.1.80.1
-pingCtlEntry=${DISMAN_PING_MIB}.2.1
-pingCtlTargetAddressType=${pingCtlEntry}.3
-pingCtlTargetAddresTypeIpv4=1
-pingCtlTargetAddress=${pingCtlEntry}.4
-pingCtlProbeCount=${pingCtlEntry}.7
-pingCtlAdminStatus=${pingCtlEntry}.8
-pingCtlAdminStatusEnabled=1
-pingCtlFrequency=${pingCtlEntry}.10
-pingCtlDescr=${pingCtlEntry}.17
-pingCtlRowStatus=${pingCtlEntry}.23
-pingResultsEntry=${DISMAN_PING_MIB}.3.1
-pingResultsProbeResponses=${pingResultsEntry}.7
-pingResultsSentProbes=${pingResultsEntry}.8
-# Test configuration
-TARGET_ADDRESS=127.0.0.1
-IDXPFX=8.78.101.116.45.83.78.77.80.6.84.49.53.52 # "Net-SNMP"."T154"
-IDXS="${IDXPFX}.95.49 ${IDXPFX}.95.50 ${IDXPFX}.95.51"
-PROBE_COUNT=5
-
-
-#
-# Begin test
-#
-
-# standard V1 configuration: testcommunity
-snmp_write_access='all'
-. ./Sv1config
-
-STARTAGENT
-
-for IDX in $IDXS; do
-
-CAPTURE "snmpset -One $SNMP_FLAGS -c testcommunity -v1          \
-         $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT   \
-         $pingCtlRowStatus.$IDX i $destroy"
-
-CHECK "^$pingCtlRowStatus.$IDX = INTEGER: $destroy"
-
-CAPTURE "snmpset -One $SNMP_FLAGS -c testcommunity -v1          \
-         $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT   \
-         $pingCtlRowStatus.$IDX i $createAndWait"
-
-CHECK "^$pingCtlRowStatus.$IDX = INTEGER: $createAndWait"
-
-CAPTURE "snmpset -One $SNMP_FLAGS -c testcommunity -v1                   \
-         $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT           \
-         $pingCtlTargetAddressType.$IDX i $pingCtlTargetAddresTypeIpv4  \
-         $pingCtlTargetAddress.$IDX s $TARGET_ADDRESS                   \
-         $pingCtlFrequency.$IDX u 1                                     \
-         $pingCtlDescr.$IDX s ScriptGenerated                           \
-         $pingCtlProbeCount.$IDX u ${PROBE_COUNT}                       \
-         $pingCtlAdminStatus.$IDX i $pingCtlAdminStatusEnabled"
-
-CHECK "^$pingCtlAdminStatus.$IDX = INTEGER: $pingCtlAdminStatusEnabled"
-
-CAPTURE "snmpset -One $SNMP_FLAGS -c testcommunity -v1          \
-         $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT   \
-         $pingCtlRowStatus.$IDX i $active"
-
-CHECK "^$pingCtlRowStatus.$IDX = INTEGER: $active"
-
-done
-
-sleep ${PROBE_COUNT}
-sleep 2
-
-for IDX in $IDXS; do
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v1           \
-         $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT   \
-         $pingResultsSentProbes.$IDX"
-
-CHECK "^$pingResultsSentProbes.$IDX = Gauge32: ${PROBE_COUNT}"
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v1           \
-         $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT   \
-         $pingResultsProbeResponses.$IDX"
-
-CHECK "^$pingResultsProbeResponses.$IDX = Gauge32: ${PROBE_COUNT}"
-
-done
-
-# Delete first row and leave the remaining rows in the table.
-
-for IDX in $IDXS; do
-
-CAPTURE "snmpset -One $SNMP_FLAGS -c testcommunity -v1          \
-         $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT   \
-         $pingCtlRowStatus.$IDX i $destroy"
-
-CHECK "^$pingCtlRowStatus.$IDX = INTEGER: $destroy"
-
-break
-
-done
-
-STOPAGENT
-
-
-FINISHED
diff --git a/testing/fulltests/default/T160snmpnetstat_simple b/testing/fulltests/default/T160snmpnetstat_simple
deleted file mode 100644
index 33159d2..0000000
--- a/testing/fulltests/default/T160snmpnetstat_simple
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/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
-  proto=udp
-  HEADER "if snmpnetstat finds the running agent in udpTable"
-  SKIPIFNOT USING_MIBII_UDPTABLE_MODULE
-elif [ "x$SNMP_TRANSPORT_SPEC" = "xtcp" ]; then
-  proto=tcp
-  HEADER "if snmpnetstat finds the running agent in tcpTable"
-  SKIPIFNOT USING_MIBII_TCPTABLE_MODULE
-else
-  HEADER "if snmpnetstat finds the running agent in udpTable/tcpTable"
-  SKIP
-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;;
-esac
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-
-# make sure snmpnetstat can be executed
-SNMPNETSTAT="${SNMP_UPDIR}/apps/snmpnetstat/snmpnetstat"
-[ -x "$SNMPNETSTAT" ] || SKIP
-
-snmp_version=v2c
-. ./Sv2cconfig
-
-#
-# Begin test
-#
-
-STARTAGENT
-
-CAPTURE "$SNMPNETSTAT -Cn -Cp $proto -$snmp_version -c testcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT"
-CHECKEXACT "127.0.0.1.$SNMP_SNMPD_PORT"
-# multiple occurrences (especially in tcpTable) are fine
-if [ "$snmp_last_test_result" != 0 ] ; then
-    return_value=0
-else
-    return_value=1
-fi
-
-STOPAGENT
-FINISHED
diff --git a/testing/fulltests/default/T200snmpv2cwalkall_simple b/testing/fulltests/default/T200snmpv2cwalkall_simple
deleted file mode 100644
index 3bbc2ae..0000000
--- a/testing/fulltests/default/T200snmpv2cwalkall_simple
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/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
-    fi
-fi
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-
-# make sure snmpwalk can be executed
-SNMPWALK="${SNMP_UPDIR}/apps/snmpwalk"
-[ -x "$SNMPWALK" ] || SKIP
-
-snmp_version=v2c
-. ./Sv2cconfig
-
-#
-# Begin test
-#
-
-# higher timeout/retry values for safety
-TIMEOUT=10
-RETRY=5
-
-STARTAGENT
-
-CAPTURE "$SNMPWALK $SNMP_FLAGS -$snmp_version -c testcommunity -t $TIMEOUT -r $RETRY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1"
-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
-FINISHED
diff --git a/testing/fulltests/perl/NetSNMPTestTransport.pm b/testing/fulltests/perl/NetSNMPTestTransport.pm
deleted file mode 100644
index 38bcfee..0000000
--- a/testing/fulltests/perl/NetSNMPTestTransport.pm
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index c7af105..0000000
--- a/testing/fulltests/perl/T001basic.t
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/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
deleted file mode 100644
index 5f015d2..0000000
--- a/testing/fulltests/perl/T101udp.t
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/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
deleted file mode 100644
index 2fa07ac..0000000
--- a/testing/fulltests/perl/T102tcp.t
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/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
deleted file mode 100644
index 3ecb332..0000000
--- a/testing/fulltests/perl/T103udp6.t
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/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
deleted file mode 100644
index 58222d0..0000000
--- a/testing/fulltests/perl/T104tcp6.t
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/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
deleted file mode 100644
index 3c01719..0000000
--- a/testing/fulltests/perl/T105unix.t
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/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/fulltests/read-only/T0141snmpv2csetfail_simple b/testing/fulltests/read-only/T0141snmpv2csetfail_simple
deleted file mode 100644
index 9705f49..0000000
--- a/testing/fulltests/read-only/T0141snmpv2csetfail_simple
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER SNMPv2c set failure to system.sysContact.0
-
-SKIPIFNOT NETSNMP_NO_WRITE_SUPPORT
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-# standard V2C configuration: testcomunnity
-snmp_write_access='all'
-(cd ../default ; . ./Sv2cconfig)
-STARTAGENT
-
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 2c $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:"
-
-CAPTURE "snmpset -r 0 -t 1 -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0 s foobartestingbaz"
-
-CHECK "Timeout: No Response"
-
-STOPAGENT
-
-CHECKAGENT 'Bad PDU type received'
-
-FINISHED
diff --git a/testing/fulltests/snmpv3/T010scapitest_capp.c b/testing/fulltests/snmpv3/T010scapitest_capp.c
deleted file mode 100644
index ee794a7..0000000
--- a/testing/fulltests/snmpv3/T010scapitest_capp.c
+++ /dev/null
@@ -1,459 +0,0 @@
-/*
- * scapitest.c
- *
- * HEADER Testing SCAPI API
- *
- * Expected SUCCESSes:  2 + 10 + 1 for all tests.
- *
- * Returns:
- *      Number of FAILUREs.
- *
- *
- * ASSUMES  No key management functions return non-zero success codes.
- *
- * XXX  Split into individual modules?
- * XXX  Error/fringe conditions should be tested.
- *
- *
- * Test of sc_random.                                           SUCCESSes: 2.
- *      REQUIRES a human to spot check for obvious non-randomness...
- *
- * Test of sc_generate_keyed_hash and sc_check_keyed_hash.      SUCCESSes: 10.
- *
- * Test of sc_encrypt and sc_decrypt.                           SUCCESSes: 1.
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#include <stdio.h>
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#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>
-
-extern char    *optarg;
-extern int      optind, optopt, opterr;
-
-#define DEBUG                   /* */
-
-
-
-/*
- * Globals, &c...
- */
-char           *local_progname;
-int             testcount=0;
-int             failcount=0;
-
-#define USAGE	"Usage: %s [-h][-acHr]"
-#define OPTIONLIST	"achHr"
-
-int             doalltests = 0, docrypt = 0, dokeyedhash = 0, dorandom = 0;
-
-#define	ALLOPTIONS	(doalltests + docrypt + dokeyedhash + dorandom)
-
-
-
-#define LOCAL_MAXBUF	(1024 * 8)
-#define NL		"\n"
-
-#define OUTPUT(o)	printf("# %s\n", o);
-
-#define SUCCESS(s)					\
-{							\
-    printf("# Done with %s\n", s);			\
-}
-
-#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"	\
-    "of the sea, the beacons flashing on the shore, together make"	\
-    "a prism which is marvellously calculated to entertain but not"	\
-    "fatigue the eye.  The lofty ships with their complex webs of"	\
-    "rigging, swayed to and fro by the swell in harmonious dance,"	\
-    "all help to maintain a taste for rhythm and beauty in the"		\
-    "mind.  And above all there is a mysterious, aristrocratic kind"	\
-    "of pleasure to be had, for those who have lost all curiosity"	\
-    "or ambition, as they strech on the belvedere or lean over the"	\
-    "mole to watch the arrivals and departures of other men, those"	\
-    "who still have sufficient strength of purpose in them, the"	\
-    "urge to travel or enrich themselves."				\
-    "	-- Baudelaire"							\
-    "	   From _The_Poems_in_Prose_, \"The Port\" (XLI)."
-
-#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. */
-
-
-
-/*
- * Prototypes.
- */
-void            usage(void);
-
-int             test_docrypt(void);
-int             test_dokeyedhash(void);
-int             test_dorandom(void);
-
-
-
-
-int
-main(int argc, char **argv)
-{
-    int             rval = SNMPERR_SUCCESS;
-    char            ch;
-
-    local_progname = argv[0];
-
-    /*
-     * Parse.
-     */
-    while ((ch = getopt(argc, argv, OPTIONLIST)) != EOF) {
-        switch (ch) {
-        case 'a':
-            doalltests = 1;
-            break;
-        case 'c':
-            docrypt = 1;
-            break;
-        case 'H':
-            dokeyedhash = 1;
-            break;
-        case 'r':
-            dorandom = 1;
-            break;
-        case 'h':
-            rval = 0;
-        default:
-            usage();
-            exit(rval);
-        }
-
-        argc -= 1;
-        argv += 1;
-        optind = 1;
-    }                           /* endwhile getopt */
-
-    if ((argc > 1)) {
-        usage();
-        exit(1000);
-
-    } else if (ALLOPTIONS != 1) {
-        doalltests = 1;
-    }
-
-
-    /*
-     * Test stuff.
-     */
-    rval = sc_init();
-    FAILED(rval, "sc_init() return code");
-
-
-    if (docrypt || doalltests) {
-        test_docrypt();
-    }
-    if (dokeyedhash || doalltests) {
-        test_dokeyedhash();
-    }
-    if (dorandom || doalltests) {
-        test_dorandom();
-    }
-
-    printf("1..%d\n", testcount);
-    return 0;
-}                               /* end main() */
-
-
-
-
-
-void
-usage(void)
-{
-    printf( USAGE
-            "" NL
-            "	-a		All tests." NL
-            "	-c		Test of sc_encrypt()/sc_decrypt()."
-            NL
-            "	-h		Help."
-            NL
-            "	-H              Test sc_{generate,check}_keyed_hash()."
-            NL
-            "	-r              Test sc_random()."
-            NL "" NL, local_progname);
-
-}                               /* end usage() */
-
-
-
-
-/*******************************************************************-o-******
- * test_dorandom
- *
- * One large request, one set of short requests.
- *
- * Returns:
- *	Number of failures.
- *
- * XXX	probably should split up into individual options.
- */
-int
-test_dorandom(void)
-{
-    int             rval = SNMPERR_SUCCESS,
-        origrequest = (1024 * 2),
-        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() return code");
-
-    if (nbytes != origrequest) {
-        FAILED(SNMPERR_GENERR,
-               "sc_random() returned different than requested.");
-    }
-
-    dump_chunk("scapitest", NULL, buf, nbytes);
-
-    SUCCESS("Random test -- large request.");
-
-
-    OUTPUT("Random test -- short requests:");
-    origrequest_short = 16;
-
-    for (i = 0; i < shortcount; i++) {
-        nbytes = origrequest_short;
-        rval = sc_random(buf, &nbytes);
-        FAILED(rval, "sc_random() return code");
-
-        if (nbytes != origrequest_short) {
-            FAILED(SNMPERR_GENERR,
-                   "sc_random() returned different " "than requested.");
-        }
-
-        dump_chunk("scapitest", NULL, buf, nbytes);
-    }                           /* endfor */
-
-    SUCCESS("Random test -- short requests.");
-
-
-    return failcount;
-
-}                               /* end test_dorandom() */
-
-
-
-/*******************************************************************-o-******
- * test_dokeyedhash
- *
- * Returns:
- *	Number of failures.
- *
- *
- * Test keyed hashes with a variety of MAC length requests.
- *
- *
- * NOTE Both tests intentionally use the same secret
- *
- * FIX	Get input or output from some other package which hashes...
- * XXX	Could cut this in half with a little indirection...
- */
-int
-test_dokeyedhash(void)
-{
-    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,
-        USM_MD5_AND_SHA_AUTH_LEN,
-        USM_MD5_AND_SHA_AUTH_LEN,
-        USM_MD5_AND_SHA_AUTH_LEN,
-        7,
-        0,
-    };
-
-    u_char          hashbuf[LOCAL_MAXBUF];
-    char           *s;
-
-  test_dokeyedhash_again:
-
-    OUTPUT("Starting Keyed hash test using MD5 --");
-
-    memset(hashbuf, 0, LOCAL_MAXBUF);
-    hblen = hashbuf_len[mlcount];
-    properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACMD5);
-
-    rval =
-        sc_generate_keyed_hash(usmHMACMD5AuthProtocol,
-                               USM_LENGTH_OID_TRANSFORM, BIGSECRET,
-                               secret_len, BIGSTRING,
-                               bigstring_len,
-                               hashbuf, &hblen);
-    FAILED(rval, "sc_generate_keyed_hash() return code");
-
-    if (hashbuf_len[mlcount] > properlength) {
-        if (hblen != properlength) {
-            FAILED(SNMPERR_GENERR, "Wrong MD5 hash length returned.  (1)");
-        }
-
-    } else if (hblen != hashbuf_len[mlcount]) {
-        FAILED(SNMPERR_GENERR, "Wrong MD5 hash length returned.  (2)");
-    }
-
-    rval =
-        sc_check_keyed_hash(usmHMACMD5AuthProtocol,
-                            USM_LENGTH_OID_TRANSFORM, BIGSECRET,
-                            secret_len, BIGSTRING, bigstring_len, hashbuf,
-                            hblen);
-    FAILED(rval, "sc_check_keyed_hash() return code");
-
-    binary_to_hex(hashbuf, hblen, &s);
-    printf("# hash buffer (len=%" NETSNMP_PRIz "u, request=%d):   %s\n",
-            hblen, hashbuf_len[mlcount], s);
-    SNMP_FREE(s);
-
-
-
-    OUTPUT("Starting Keyed hash test using SHA1 --");
-
-    memset(hashbuf, 0, LOCAL_MAXBUF);
-    hblen = hashbuf_len[mlcount];
-    properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACSHA1);
-
-    rval =
-        sc_generate_keyed_hash(usmHMACSHA1AuthProtocol,
-                               USM_LENGTH_OID_TRANSFORM, BIGSECRET,
-                               secret_len, BIGSTRING, bigstring_len,
-                               hashbuf, &hblen);
-    FAILED(rval, "sc_generate_keyed_hash() return code");
-
-    if (hashbuf_len[mlcount] > properlength) {
-        if (hblen != properlength) {
-            FAILED(SNMPERR_GENERR,
-                   "Wrong SHA1 hash length returned.  (1)");
-        }
-
-    } else if (hblen != hashbuf_len[mlcount]) {
-        FAILED(SNMPERR_GENERR, "Wrong SHA1 hash length returned.  (2)");
-    }
-
-    rval =
-        sc_check_keyed_hash(usmHMACSHA1AuthProtocol,
-                            USM_LENGTH_OID_TRANSFORM, BIGSECRET,
-                            secret_len, BIGSTRING, bigstring_len, hashbuf,
-                            hblen);
-    FAILED(rval, "sc_check_keyed_hash() return code");
-
-    binary_to_hex(hashbuf, hblen, &s);
-    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.
-     */
-    if (hashbuf_len[++mlcount] != 0) {
-        goto test_dokeyedhash_again;
-    }
-
-
-    return failcount;
-
-}                               /* end test_dokeyedhash() */
-
-
-
-
-
-/*******************************************************************-o-******
- * test_docrypt
- *
- * Returns:
- *	Number of failures.
- */
-int
-test_docrypt(void)
-{
-    int             rval = SNMPERR_SUCCESS,
-        bigstring_len = strlen((const char *) BIGSTRING),
-        secret_len = BYTESIZE(SNMP_TRANS_PRIVLEN_1DES),
-        iv_len = BYTESIZE(SNMP_TRANS_PRIVLEN_1DES_IV);
-
-    size_t          buf_len = LOCAL_MAXBUF;
-    size_t          cryptbuf_len = LOCAL_MAXBUF;
-
-    u_char            buf[LOCAL_MAXBUF],
-        cryptbuf[LOCAL_MAXBUF], secret[LOCAL_MAXBUF], iv[LOCAL_MAXBUF];
-
-    OUTPUT("Starting Test 1DES-CBC --");
-
-
-    memset(buf, 0, LOCAL_MAXBUF);
-
-    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() 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() return code.");
-
-    /* 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);
-
-    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
deleted file mode 100644
index 9cb5b47..0000000
--- a/testing/fulltests/snmpv3/T020hashtests_capp.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* 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/fulltests/snmpv3/T040keymanagetest_capp.c b/testing/fulltests/snmpv3/T040keymanagetest_capp.c
deleted file mode 100644
index d68f663..0000000
--- a/testing/fulltests/snmpv3/T040keymanagetest_capp.c
+++ /dev/null
@@ -1,636 +0,0 @@
-/*
- * keymanagetest.c
- *
- * HEADER Testing key management API functionality
- *
- * Expected SUCCESSes:  2 + 2 + 3 for all tests.
- *
- * Returns:
- *      Number of FAILUREs.
- * 
- *
- * FIX  Or how about passing a usmUser name and looking up the entry as
- *      a means of getting key material?  This means the userList is
- *      available from an application...
- *
- * ASSUMES  No key management functions return non-zero success codes.
- *
- * Test of generate_Ku().                       SUCCESSes: 2
- * Test of generate_kul().                      SUCCESSes: 2
- * Test of {encode,decode}_keychange().         SUCCESSes: 3
- */
-
-#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 <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...
- */
-char           *local_progname;
-
-#define USAGE	"Usage: %s [-h][-aklu][-E <engineID>][-N <newkey>][-O <oldkey>][-P <passphrase>]"
-#define OPTIONLIST	"aqE:hklN:O:P:u"
-
-int             doalltests = 0, dogenKu = 0, dogenkul = 0, dokeychange = 0;
-
-#define	ALLOPTIONS	(doalltests + dogenKu + dogenkul + dokeychange)
-
-
-#define LOCAL_MAXBUF	(1024 * 8)
-#define NL		"\n"
-
-#define OUTPUTALWAYS(o)	fprintf(stdout, "# %s\n", o);
-#define OUTPUT(o)	if (!bequiet) { OUTPUTALWAYS(o); }
-
-#define SUCCESS(s)					\
-{							\
-    fprintf(stdout, "# Done with %s\n", s);             \
-}
-
-#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.
- */
-#define	ENGINEID_DEFAULT	"1.2.3.4wild"
-#define PASSPHRASE_DEFAULT	"Clay's Conclusion: Creativity is great, " \
-					"but plagiarism is faster."
-#define OLDKEY_DEFAULT		"This is a very old key."
-#define NEWKEY_DEFAULT		"This key, on the other hand, is very new."
-
-u_char         *engineID = NULL;
-char           *passphrase = NULL;
-const u_char   *oldkey = NULL;
-const u_char   *newkey = NULL;
-int             bequiet = 0;
-
-
-/*
- * Prototypes.
- */
-void            usage(FILE * ofp);
-
-int             test_genkul(void);
-int             test_genKu(void);
-int             test_keychange(void);
-
-
-
-
-int
-main(int argc, char **argv)
-{
-    int             rval = SNMPERR_SUCCESS, failcount = 0;
-    char            ch;
-
-    local_progname = argv[0];
-    optarg = NULL;
-
-    /*
-     * Parse.
-     */
-    while ((ch = getopt(argc, argv, OPTIONLIST)) != EOF) {
-        switch (ch) {
-        case 'a':
-            doalltests = 1;
-            break;
-        case 'E':
-            engineID = (u_char *) optarg;
-            break;
-        case 'k':
-            dokeychange = 1;
-            break;
-        case 'l':
-            dogenkul = 1;
-            break;
-        case 'N':
-            newkey = (u_char *) optarg;
-            break;
-        case 'O':
-            oldkey = (u_char *) optarg;
-            break;
-        case 'P':
-            passphrase = optarg;
-            break;
-        case 'u':
-            dogenKu = 1;
-            break;
-        case 'q':
-            bequiet = 1;
-            break;
-        case 'h':
-            rval = 0;
-        default:
-            usage(stdout);
-            exit(rval);
-        }
-
-        argc -= 1;
-        argv += 1;
-        if (optarg) {
-            argc -= 1;
-            argv += 1;
-        }
-
-        optind = 1;
-        optarg = NULL;
-    }                           /* endwhile getopt */
-
-    if ((argc > 1)) {
-        usage(stdout);
-        exit(1000);
-
-    } else if (ALLOPTIONS != 1) {
-        doalltests = 1;
-    }
-
-
-    /*
-     * Test stuff.
-     */
-    rval = sc_init();
-    FAILED(rval, "sc_init().");
-
-    if (dogenKu || doalltests) {
-        failcount += test_genKu();
-    }
-    if (dogenkul || doalltests) {
-        failcount += test_genkul();
-    }
-    if (dokeychange || doalltests) {
-        failcount += test_keychange();
-    }
-
-    fprintf(stdout, "1..%d\n", testcount);
-    return failcount;
-
-}                               /* end main() */
-
-
-
-
-
-void
-usage(FILE * ofp)
-{
-    fprintf(ofp,
-            USAGE
-            "" NL
-            "    -a			All tests." NL
-            "    -E [0x]<engineID>	snmpEngineID string."
-            NL
-            "    -k			Test {encode,decode}_keychange()."
-            NL
-            "    -l			generate_kul()."
-            NL
-            "    -h			Help."
-            NL
-            "    -N [0x]<newkey>	New key (for testing KeyChange TC)."
-            NL
-            "    -O [0x]<oldkey>	Old key (for testing KeyChange TC)."
-            NL
-            "    -P <passphrase>	Source string for usmUser master key."
-            NL
-            "    -u			generate_Ku()."
-            NL
-            "    -q			be quiet."
-            NL "" NL, local_progname);
-
-}                               /* end usage() */
-
-
-
-
-#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_genKu
- *
- * Returns:
- *	Number of failures.
- *
- *
- * Test generation of usmUser master key from a passphrase.
- *
- * ASSUMES  Passphrase is made of printable characters!
- */
-int
-test_genKu(void)
-{
-    int             rval = SNMPERR_SUCCESS,
-        failcount = 0,
-        properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACMD5);
-    size_t          kulen;
-    const char     *hashname = "usmHMACMD5AuthProtocol.";
-    char           *s;
-    u_char          Ku[LOCAL_MAXBUF];
-    oid            *hashtype = usmHMACMD5AuthProtocol;
-
-    OUTPUT("Test of generate_Ku --");
-
-    /*
-     * Set passphrase.
-     */
-    if (!passphrase) {
-        passphrase = strdup(PASSPHRASE_DEFAULT);
-    }
-    if (!bequiet)
-        fprintf(stdout, "Passphrase%s: %s\n",
-                (strcmp(passphrase, PASSPHRASE_DEFAULT) == 0) ? " (default)" : "",
-                passphrase);
-
-
-  test_genKu_again:
-    memset(Ku, 0, LOCAL_MAXBUF);
-    kulen = LOCAL_MAXBUF;
-
-    rval = generate_Ku(hashtype, USM_LENGTH_OID_TRANSFORM,
-                       (const u_char *) passphrase, strlen(passphrase),
-                       Ku, &kulen);
-    FAILED(rval, "generate_Ku().");
-
-    FAILED((kulen != properlength),
-           "Ku length is the right length for this hashtype.");
-
-    binary_to_hex(Ku, kulen, &s);
-    if (!bequiet)
-        fprintf(stdout, "# Ku (len=%" NETSNMP_PRIz "u):  %s\n", kulen, s);
-    free_zero(s, kulen);
-
-    OUTPUT(hashname);
-
-    if (hashtype == usmHMACMD5AuthProtocol) {
-        hashtype = usmHMACSHA1AuthProtocol;
-        hashname = "usmHMACSHA1AuthProtocol.";
-        properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACSHA1);
-        goto test_genKu_again;
-    }
-
-    return failcount;
-
-}                               /* end test_genKu() */
-
-
-
-
-/*******************************************************************-o-******
- * test_genkul
- *
- * Returns:
- *	Number of failures.
- *
- *
- * Test of generate_kul().
- *
- * A passphrase and engineID are hashed into a master key Ku using
- * both known hash transforms.  Localized keys, also using both hash
- * transforms, are generated from each of these master keys.
- *
- * ASSUME  generate_Ku is already tested.
- * ASSUME  engineID is initially a NULL terminated string.
- */
-int
-test_genkul(void)
-{
-    int             rval = SNMPERR_SUCCESS,
-        failcount = 0,
-        properlength, engineID_len, isdefault = FALSE;
-
-    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];
-
-    oid            *hashtype_Ku = usmHMACMD5AuthProtocol, *hashtype_kul;
-
-    OUTPUT("Test of generate_kul --");
-
-    /*
-     * Set passphrase and engineID.
-     *
-     * If engineID begins with 0x, assume it is written in (printable)
-     * hex and convert it to binary data.
-     */
-    if (!passphrase) {
-        passphrase = strdup(PASSPHRASE_DEFAULT);
-    }
-    if (!bequiet)
-        fprintf(stdout, "# Passphrase%s: %s\n",
-                (strcmp(passphrase, PASSPHRASE_DEFAULT) == 0) ? " (default)" : "",
-                passphrase);
-
-    if (!engineID) {
-        engineID = (u_char *) strdup(ENGINEID_DEFAULT);
-        isdefault = TRUE;
-    }
-
-    engineID_len = strlen((char *) engineID);
-
-    if (tolower(*(engineID + 1)) == 'x') {
-        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",
-                (isdefault) ? " (default)" : "",
-                engineID_len, ((s != 0) ? ((u_char *) s) : engineID));
-    SNMP_FREE(s);
-
-
-
-    /*
-     * Create a master key using both hash transforms; create localized
-     * keys using both hash transforms from each master key.
-     */
-  test_genkul_again_master:
-    memset(Ku, 0, LOCAL_MAXBUF);
-    kulen = LOCAL_MAXBUF;
-    hashtype_kul = usmHMACMD5AuthProtocol;
-    properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACMD5);
-
-
-    rval = generate_Ku(hashtype_Ku, USM_LENGTH_OID_TRANSFORM,
-                       (u_char *) passphrase, strlen(passphrase), Ku, &kulen);
-    FAILED(rval, "generate_Ku().");
-
-    binary_to_hex(Ku, kulen, &s);
-    if (!bequiet)
-        fprintf(stdout,
-                "# Master Ku using \"%s\": \t%s\n", hashname_Ku, s);
-    free_zero(s, kulen);
-
-
-  test_genkul_again_local:
-    memset(kul, 0, LOCAL_MAXBUF);
-    kul_len = LOCAL_MAXBUF;
-
-    rval = generate_kul(hashtype_kul, USM_LENGTH_OID_TRANSFORM,
-                        engineID, engineID_len, Ku, kulen, kul, &kul_len);
-
-    if ((hashtype_Ku == usmHMACMD5AuthProtocol)
-        && (hashtype_kul == usmHMACSHA1AuthProtocol)) {
-        FAILED((rval == SNMPERR_SUCCESS),
-               "generate_kul SHOULD fail when Ku length is "
-               "less than hash transform length.");
-    } else {
-        FAILED(rval, "generate_kul().");
-
-        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=%" NETSNMP_PRIz "u):  %s\n",
-                ((hashtype_Ku == usmHMACMD5AuthProtocol) ? "MD5" : "SHA"),
-                kul_len, s);
-        free_zero(s, kul_len);
-    }
-
-
-    /*
-     * Create localized key using the other hash transform, but from
-     * * the same master key.
-     */
-    if (hashtype_kul == usmHMACMD5AuthProtocol) {
-        hashtype_kul = usmHMACSHA1AuthProtocol;
-        properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACSHA1);
-        goto test_genkul_again_local;
-    }
-
-    SUCCESS(testname);
-
-
-    /*
-     * Re-create the master key using the other hash transform.
-     */
-    if (hashtype_Ku == usmHMACMD5AuthProtocol) {
-        hashtype_Ku = usmHMACSHA1AuthProtocol;
-        hashname_Ku = "usmHMACSHA1AuthProtocol";
-        testname = "Using HMACSHA1 to create master key.";
-        goto test_genkul_again_master;
-    }
-
-    return failcount;
-
-}                               /* end test_genkul() */
-
-
-
-
-/*******************************************************************-o-******
- * test_keychange
- *
- * Returns:
- *	Number of failures.
- *
- *
- * Test of KeyChange TC implementation.
- *
- * ASSUME newkey and oldkey begin as NULL terminated strings.
- */
-int
-test_keychange(void)
-{
-    int             rval = SNMPERR_SUCCESS,
-        failcount = 0,
-        properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACMD5),
-        oldkey_len,
-        newkey_len,
-        isdefault_new = FALSE, isdefault_old = FALSE;
-    size_t          keychange_len, temp_len;
-
-    const char     *hashname = "usmHMACMD5AuthProtocol.";
-    char           *s;
-
-    u_char          oldkey_buf[LOCAL_MAXBUF],
-        newkey_buf[LOCAL_MAXBUF],
-        temp_buf[LOCAL_MAXBUF], keychange_buf[LOCAL_MAXBUF];
-
-    oid            *hashtype = usmHMACMD5AuthProtocol;
-
-    OUTPUT("Test of KeyChange TC --");
-
-
-    /*
-     * Set newkey and oldkey.
-     */
-    if (!newkey) {              /* newkey */
-        newkey = (const u_char *) NEWKEY_DEFAULT;
-        isdefault_new = TRUE;
-    }
-    newkey_len = strlen((const char *) newkey);
-
-    if (tolower(*(newkey + 1)) == 'x') {
-        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 = (const u_char *) OLDKEY_DEFAULT;
-        isdefault_old = TRUE;
-    }
-    oldkey_len = strlen((const char *) oldkey);
-
-    if (tolower(*(oldkey + 1)) == 'x') {
-        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);
-    }
-
-
-
-  test_keychange_again:
-    memset(oldkey_buf, 0, LOCAL_MAXBUF);
-    memset(newkey_buf, 0, LOCAL_MAXBUF);
-    memset(keychange_buf, 0, LOCAL_MAXBUF);
-    memset(temp_buf, 0, LOCAL_MAXBUF);
-
-    memcpy(oldkey_buf, oldkey, SNMP_MIN(oldkey_len, properlength));
-    memcpy(newkey_buf, newkey, SNMP_MIN(newkey_len, properlength));
-    keychange_len = LOCAL_MAXBUF;
-
-
-    binary_to_hex(oldkey_buf, properlength, &s);
-    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",
-            (isdefault_new) ? " (default)" : "", properlength, s);
-    SNMP_FREE(s);
-
-
-    rval = encode_keychange(hashtype, USM_LENGTH_OID_TRANSFORM,
-                            oldkey_buf, properlength,
-                            newkey_buf, properlength,
-                            keychange_buf, &keychange_len);
-    FAILED(rval, "encode_keychange().");
-
-    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",
-            ((hashtype == usmHMACMD5AuthProtocol) ? "MD5" : "SHA"), s);
-    SNMP_FREE(s);
-
-    temp_len = properlength;
-    rval = decode_keychange(hashtype, USM_LENGTH_OID_TRANSFORM,
-                            oldkey_buf, properlength,
-                            keychange_buf, properlength * 2,
-                            temp_buf, &temp_len);
-    FAILED(rval, "decode_keychange().");
-
-    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", s);
-    SNMP_FREE(s);
-
-
-    FAILED(memcmp(newkey_buf, temp_buf, temp_len),
-           "newkey did not decode properly.");
-
-
-    SUCCESS(hashname);
-
-
-    /*
-     * Multiplex different test combinations.
-     *
-     * First clause is for Test #2, second clause is for (last) Test #3.
-     */
-    if (hashtype == usmHMACMD5AuthProtocol) {
-        hashtype = usmHMACSHA1AuthProtocol;
-        hashname = "usmHMACSHA1AuthProtocol (w/DES length kul's).";
-        properlength = BYTESIZE(SNMP_TRANS_PRIVLEN_1DES)
-            + BYTESIZE(SNMP_TRANS_PRIVLEN_1DES_IV);
-        goto test_keychange_again;
-
-    } else if (properlength < BYTESIZE(SNMP_TRANS_AUTHLEN_HMACSHA1)) {
-        hashtype = usmHMACSHA1AuthProtocol;
-        hashname = "usmHMACSHA1AuthProtocol.";
-        properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACSHA1);
-        goto test_keychange_again;
-    }
-
-    return failcount;
-
-}                               /* end test_keychange() */
diff --git a/testing/fulltests/snmpv3/T050etimetest_capp.c b/testing/fulltests/snmpv3/T050etimetest_capp.c
deleted file mode 100644
index 53951aa..0000000
--- a/testing/fulltests/snmpv3/T050etimetest_capp.c
+++ /dev/null
@@ -1,420 +0,0 @@
-/*
- * etimetest.c
- *
- * HEADER Testing engineID hashing and timing
- *
- * Expected SUCCESSes for all tests:    3
- *
- * Returns:
- *      Number of FAILUREs.
- *
- * Test of hash_engineID().                             SUCCESSes:  0
- * Test of LCD Engine ID and Time List.                 SUCCESSes:  3
- *
- * FIX  Devise a test for {set,get}_enginetime(..., FALSE).
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#include <stdio.h>
-#include <sys/types.h>
-#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 <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(). */
-
-
-#include <stdlib.h>
-
-extern char    *optarg;
-extern int      optind, optopt, opterr;
-
-int             testcount=0;
-
-/*
- * Globals, &c...
- */
-char           *local_progname;
-
-#define USAGE	"Usage: %s [-h][-s <seconds>][-aeH]"
-#define OPTIONLIST	"aehHs:"
-
-int             doalltests = 0, dohashindex = 0, doetimetest = 0;
-
-#define	ALLOPTIONS	(doalltests + dohashindex + doetimetest)
-
-
-
-#define LOCAL_MAXBUF	(1024 * 8)
-#define NL		"\n"
-
-#define OUTPUT(o)	fprintf(stdout, "# %s\n", o);
-
-#define SUCCESS(s)					\
-{							\
-    fprintf(stdout, "# Done with %s\n", s);             \
-}
-
-#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 = 2;
-
-#define BLAT "alk;djf;an riu;alicenmrul;aiknglksajhe1 adcfalcenrco2"
-
-
-
-
-/*
- * Prototypes.
- */
-void            usage(FILE * ofp);
-
-int             test_etime(void);
-int             test_hashindex(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 'a':
-            doalltests = 1;
-            break;
-        case 'e':
-            doetimetest = 1;
-            break;
-        case 'H':
-            dohashindex = 1;
-            break;
-        case 's':
-            sleeptime = atoi(optarg);
-            if (sleeptime < 0) {
-                usage(stderr);
-                exit(1000);
-            }
-            break;
-            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) {
-        doalltests = 1;
-    }
-
-    init_snmp("testing");
-
-    /*
-     * test stuff.
-     */
-    rval = sc_init();
-    FAILED(rval, "sc_init()");
-
-
-    if (dohashindex || doalltests) {
-        failcount += test_hashindex();
-    }
-    if (doetimetest || doalltests) {
-        failcount += test_etime();
-    }
-
-
-    fprintf(stdout, "1..%d\n", testcount);
-    return 0;
-}                               /* end main() */
-
-
-
-
-
-void
-usage(FILE * ofp)
-{
-    fprintf(ofp,
-            USAGE
-            "" NL
-            "    -a			All tests." NL
-            "    -e			Exercise the list of enginetimes."
-            NL
-            "    -h			Help."
-            NL
-            "    -H			Test hash_engineID()."
-            NL
-            "    -s <seconds>	Seconds to pause.  (Default: 0.)"
-            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;
-
-  test_dosomething_quit:
-    return failcount;
-
-}                               /* end test_dosomething() */
-#endif                          /* EXAMPLE */
-
-
-
-
-
-/*******************************************************************-o-******
- * test_hashindex
- *
- * Returns:
- *	Number of failures.
- *
- *
- * Test hash_engineID().
- */
-int
-test_hashindex(void)
-{
-    int                         /* rval = SNMPERR_SUCCESS,  */
-                    failcount = 0;
-    const u_char     *s;
-
-    OUTPUT("Visual spot check of hash index outputs.  "
-           "(Success or failure not noted.)");
-
-    s = (const u_char *) " A";
-    fprintf(stdout, "# %s = %d\n", s, hash_engineID(s, strlen((const char *) s)));
-
-    s = (const u_char *) " BB";
-    fprintf(stdout, "# %s = %d\n", s, hash_engineID(s, strlen((const char *) s)));
-
-    s = (const u_char *) " CCC";
-    fprintf(stdout, "# %s = %d\n", s, hash_engineID(s, strlen((const char *) s)));
-
-    s = (const u_char *) " DDDD";
-    fprintf(stdout, "# %s = %d\n", s, hash_engineID(s, strlen((const char *) s)));
-
-    s = (const u_char *) " EEEEE";
-    fprintf(stdout, "# %s = %d\n", s, hash_engineID(s, strlen((const char *) s)));
-
-    s = (const u_char *) BLAT;
-    fprintf(stdout, "# %s = %d\n", s, hash_engineID(s, strlen((const char *) s)));
-
-
-    OUTPUT("Visual spot check -- DONE.");
-
-    return failcount;
-
-}                               /* end test_hashindex() */
-
-
-
-
-
-/*******************************************************************-o-******
- * test_etime
- *
- * Returns:
- *	Number of failures.
- *
- * Test of LCD Engine ID and Time List.	
- */
-int
-test_etime(void)
-{
-    int             rval = SNMPERR_SUCCESS, failcount = 0;
-    u_int           etime, eboot;
-
-    /*
-     * ------------------------------------ -o-
-     */
-    OUTPUT("Query of empty list, two set actions.");
-
-
-    rval = ISENGINEKNOWN((const u_char *) "A", 1);
-    if (rval == TRUE) {
-        FAILED(SNMPERR_GENERR, "Query of empty list returned TRUE.")
-    }
-
-
-    rval = set_enginetime((const u_char *) "BB", 2, 2, 20, TRUE);
-    FAILED(rval, "set_enginetime()");
-
-
-    rval = set_enginetime((const u_char *) "CCC", 3, 31, 90127, TRUE);
-    FAILED(rval, "set_enginetime()");
-
-
-    SUCCESS("Check of empty list, and two additions.");
-
-
-
-    /*
-     * ------------------------------------ -o-
-     */
-    OUTPUT("Add entries using macros, test for existence with macros.");
-
-
-    rval = ENSURE_ENGINE_RECORD((const u_char *) "DDDD", 4);
-    FAILED(rval, "ENSURE_ENGINE_RECORD()");
-
-
-    rval = MAKENEW_ENGINE_RECORD((const u_char *) "EEEEE", 5);
-    if (rval == SNMPERR_SUCCESS) {
-        FAILED(rval,
-               "MAKENEW_ENGINE_RECORD returned success for "
-               "missing record.");
-    }
-
-
-    rval = MAKENEW_ENGINE_RECORD((const u_char *) "BB", 2);
-    FAILED(rval, "MAKENEW_ENGINE_RECORD().");
-
-
-    SUCCESS
-        ("Added entries with macros, tested for existence with macros.");
-
-
-
-    /*
-     * ------------------------------------ -o-
-     */
-    OUTPUT("Dump the list and then sleep.");
-
-#ifdef NETSNMP_ENABLE_TESTING_CODE
-    dump_etimelist();
-#endif
-
-    fprintf(stdout, "# Sleeping for %d second%s... ",
-            sleeptime, (sleeptime == 1) ? "" : "s");
-
-    sleep(sleeptime);
-
-
-    /*
-     * ------------------------------------ -o-
-     */
-    OUTPUT
-        ("Retrieve data from real/stubbed records, update real/stubbed.");
-
-
-
-    rval = get_enginetime((const u_char *) "BB", 2, &eboot, &etime, TRUE);
-    FAILED(rval, "get_enginetime().");
-
-    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((const u_char *) "DDDD", 4, &eboot, &etime, FALSE);
-    FAILED(rval, "get_enginetime().");
-
-    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((const u_char *) "CCC", 3, 234, 10000, TRUE);
-    FAILED(rval, "set_enginetime().");
-
-
-    rval = set_enginetime((const u_char *) "EEEEE", 5, 9876, 55555, TRUE);
-    FAILED(rval, "set_enginetime().");
-
-
-    SUCCESS("Retrieval and updates.");
-
-
-
-    /*
-     * ------------------------------------ -o-
-     */
-    OUTPUT("Sleep again, then dump the list one last time.");
-
-    fprintf(stdout, "# Sleeping for %d second%s...\n",
-            sleeptime, (sleeptime == 1) ? "" : "s");
-
-    sleep(sleeptime);
-
-#ifdef NETSNMP_ENABLE_TESTING_CODE
-    dump_etimelist();
-#endif
-
-    return failcount;
-
-}                               /* end test_etime() */
diff --git a/testing/fulltests/support/NetSNMPTest.pm b/testing/fulltests/support/NetSNMPTest.pm
deleted file mode 100644
index e4ac040..0000000
--- a/testing/fulltests/support/NetSNMPTest.pm
+++ /dev/null
@@ -1,172 +0,0 @@
-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(" ", at _);
-}
-
-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
deleted file mode 100755
index 55a35ae..0000000
--- a/testing/fulltests/support/cagentlib_build
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/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
deleted file mode 100755
index 84f54e1..0000000
--- a/testing/fulltests/support/cagentlib_run
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/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
deleted file mode 100755
index dc038c6..0000000
--- a/testing/fulltests/support/capp_build
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/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
deleted file mode 100755
index 84f54e1..0000000
--- a/testing/fulltests/support/capp_run
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/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
deleted file mode 100755
index 0c7eb6d..0000000
--- a/testing/fulltests/support/clib_build
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/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_NETDB_H
-#include <netdb.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
deleted file mode 100755
index 84f54e1..0000000
--- a/testing/fulltests/support/clib_run
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/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/simple_TESTCONF.sh b/testing/fulltests/support/simple_TESTCONF.sh
deleted file mode 100644
index 83c38c2..0000000
--- a/testing/fulltests/support/simple_TESTCONF.sh
+++ /dev/null
@@ -1,260 +0,0 @@
-#! /bin/sh -f
-
-#
-# Variables:  (* = exported)
-#  *SNMP_TMPDIR:  	  place to put files used in testing.
-#   SNMP_TESTDIR: 	  where the test scripts are kept.
-#  *SNMP_PERSISTENT_FILE: where to store the agent's persistent information
-#                         (XXX: this should be specific to just the agent)
-
-# MinGW/MSYS only: translate an MSYS path back into a DOS path such that snmpd
-# and the Net-SNMP applications can understand it. One of the features of MSYS
-# is that if a POSIX-style path is passed as a command-line argument to an
-# executable that MSYS translates that path to a DOS-style path before
-# starting the executable. This is a key feature of MSYS that makes it
-# possible to run shell scripts unmodified and at the same time to use
-# executables that accept DOS-style paths. There is no support however for
-# automatical translation of environment variables that contain paths. Hence
-# this function that translates paths explicitly.
-translate_path() {
-  if [ "$OSTYPE" = msys ]; then
-    local t=`set \
-             | sed -n -e "s/^$1='\(.*\)'$/${SNMP_ENV_SEPARATOR}\1/p" \
-                      -e "s/^$1=\(.*\)$/${SNMP_ENV_SEPARATOR}\1/p" \
-             | sed -e "s|${SNMP_ENV_SEPARATOR}/c/|${SNMP_ENV_SEPARATOR}c:/|g" \
-                   -e "s|${SNMP_ENV_SEPARATOR}/tmp/|${SNMP_ENV_SEPARATOR}c:/windows/temp/|g" \
-             | sed -e "s/^${SNMP_ENV_SEPARATOR}//" \
-            `
-    eval "$1='$t'"
-  fi
-}
-
-#
-# Only allow ourselves to be eval'ed once
-#
-if [ "x$TESTCONF_SH_EVALED" != "xyes" ]; then
-    TESTCONF_SH_EVALED=yes
-
-#
-# set cpu and memory limits to prevent major damage
-#
-# defaults: 1h CPU, 500MB VMEM
-#
-[ "x$SNMP_LIMIT_VMEM" = "x" ] && SNMP_LIMIT_VMEM=512000
-[ "x$SNMP_LIMIT_CPU" = "x" ] && SNMP_LIMIT_CPU=3600
-# ulimit will fail if existing limit is lower -- ignore because it's ok
-ulimit -S -t $SNMP_LIMIT_CPU 2>/dev/null
-# not all sh-alikes support "ulimit -v" -- play safe
-[ "x$BASH_VERSION" != "x" ] && ulimit -S -v $SNMP_LIMIT_VMEM 2>/dev/null
-
-#
-# Set up an NL suppressing echo command
-#
-case "`echo 'x\c'`" in
-  'x\c')
-    ECHO() { echo -n $*; }
-    ;;
-  x)
-    ECHO() { echo $*\\c; }
-    ;;
-  *)
-    echo "I don't understand your echo command ..."
-    exit 1
-    ;;
-esac
-#
-# how verbose should we be (0 or 1)
-#
-if [ "x$SNMP_VERBOSE" = "x" ]; then
-    SNMP_VERBOSE=0
-    export SNMP_VERBOSE
-fi
-
-SNMP_ENV_SEPARATOR="`${builddir}/net-snmp-config --env-separator`"
-
-if [ "x$MIBDIRS" = "x" ]; then
-  if [ "x$SNMP_PREFER_NEAR_MIBS" = "x1" ]; then
-    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=${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_HEADERONLY" != "xyes" ]; then
-  if [ "x$SNMP_TMPDIR" = "x" ]; then
-    if [ "x$testnum" = "x" ] ; then
-        testnum=0
-    fi
-    SNMP_TMPDIR="/tmp/snmp-test-$testnum-$$"
-    translate_path SNMP_TMPDIR
-    export SNMP_TMPDIR
-    if [ -d $SNMP_TMPDIR ]; then
-	echo "$0: ERROR: $SNMP_TMPDIR already existed."
-	exit 1;
-    fi
-  fi
-  if [ ! -d $SNMP_TMPDIR ]; then
-    mkdir -p $SNMP_TMPDIR
-    chmod 0700 $SNMP_TMPDIR
-  fi
-  if [ "x$SNMP_TMP_PERSISTENTDIR" = "x" ]; then
-    SNMP_TMP_PERSISTENTDIR=$SNMP_TMPDIR/persist
-    export SNMP_TMP_PERSISTENTDIR
-  fi
-  if [ ! -d $SNMP_TMP_PERSISTENTDIR ]; then
-    mkdir $SNMP_TMP_PERSISTENTDIR
-    chmod 0700 $SNMP_TMP_PERSISTENTDIR
-  fi
-fi
-
-if [ "x$SNMP_SAVE_TMPDIR" = "x" ]; then
-    SNMP_SAVE_TMPDIR="no"
-    export SNMP_SAVE_TMPDIR
-fi
-
-SNMP_IGNORE_WINDOWS_REGISTRY="true"
-export SNMP_IGNORE_WINDOWS_REGISTRY
-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"
-SNMPAPP_CONFIG_FILE="$SNMP_TMPDIR/snmp.conf"
-AGENTX_CONFIG_FILE="$SNMP_TMPDIR/agentx.conf"
-SNMP_SNMPTRAPD_LOG_FILE="$SNMP_TMPDIR/snmptrapd.log"
-SNMP_SNMPTRAPD_PID_FILE="$SNMP_TMPDIR/snmptrapd.pid"
-SNMP_SNMPD_PID_FILE="$SNMP_TMPDIR/snmpd.pid"
-SNMP_SNMPD_LOG_FILE="$SNMP_TMPDIR/snmpd.log"
-SNMP_AGENTX_PID_FILE="$SNMP_TMPDIR/agentx.pid"
-SNMP_AGENTX_LOG_FILE="$SNMP_TMPDIR/agentx.log"
-SNMPCONFPATH="${SNMP_TMPDIR}${SNMP_ENV_SEPARATOR}${SNMP_TMP_PERSISTENTDIR}"
-translate_path SNMPCONFPATH
-export SNMPCONFPATH
-SNMP_PERSISTENT_DIR=$SNMP_TMP_PERSISTENTDIR
-translate_path SNMP_PERSISTENT_DIR
-export SNMP_PERSISTENT_DIR
-#SNMP_PERSISTENT_FILE="$SNMP_TMP_PERSISTENTDIR/persistent-store.conf"
-#export SNMP_PERSISTENT_FILE
-
-## Setup default flags and ports iff not done
-if [ "x$SNMP_FLAGS" = "x" ]; then
-    SNMP_FLAGS="-d"
-fi
-if test -x /bin/netstat ; then
-    NETSTAT=/bin/netstat
-elif test -x /usr/bin/netstat ; then
-    NETSTAT=/usr/bin/netstat
-elif test -x /usr/sbin/netstat ; then
-    # e.g. Tru64 Unix
-    NETSTAT=/usr/sbin/netstat
-elif test -x /usr/etc/netstat ; then
-    # e.g. IRIX
-    NETSTAT=/usr/etc/netstat
-elif test -x /cygdrive/c/windows/system32/netstat ; then
-    # Cygwin
-    NETSTAT=/cygdrive/c/windows/system32/netstat
-elif test -x /c/Windows/System32/netstat ; then
-    # MinGW + MSYS
-    NETSTAT=/c/Windows/System32/netstat
-else
-    NETSTAT=""
-fi
-
-if [ "x$OSTYPE" = "xmsys" ]; then
-    # Obtain the MSYS installation path from the !C: environment variable,
-    # remove surrounding single quotes and convert backslashes into forward
-    # slashes.
-    MSYS_PATH="$(set \
-                 | sed -n 's|^\!C:='"'"'\(.*\)'"'"'$|\1|p' | sed 's|\\|/|g')"
-    MSYS_SH="$MSYS_PATH/sh.exe"
-fi
-
-PROBE_FOR_PORT() {
-    BASE_PORT=$1
-    MAX_RETRIES=10
-    if test -x "$NETSTAT" ; then
-        if test -z "$RANDOM"; then
-            RANDOM=2
-        fi
-        while :
-        do
-            BASE_PORT=`expr $BASE_PORT + \( $RANDOM % 100 \)`
-            IN_USE=`$NETSTAT -a -n 2>/dev/null | grep "[\.:]$BASE_PORT "`
-            if [ $? -ne 0 ]; then
-                echo "$BASE_PORT"
-                break
-            fi
-            MAX_RETRIES=`expr $MAX_RETRIES - 1`
-            if [ $MAX_RETRIES -eq 0 ]; then
-                echo "ERROR: Could not find available port." >&2
-                echo "NOPORT"
-                exit 255
-            fi
-        done
-    fi
-}
-
-if [ "x$SNMP_SNMPD_PORT" = "x" ]; then
-    SNMP_SNMPD_PORT=`PROBE_FOR_PORT 8765`
-fi
-if [ "x$SNMP_SNMPTRAPD_PORT" = "x" ]; then
-    SNMP_SNMPTRAPD_PORT=`PROBE_FOR_PORT 5678`
-fi
-if [ "x$SNMP_AGENTX_PORT" = "x" ]; then
-    SNMP_AGENTX_PORT=`PROBE_FOR_PORT 7676`
-fi
-if [ "x$SNMP_TRANSPORT_SPEC" = "x" ];then
-	SNMP_TRANSPORT_SPEC="udp"
-fi
-if [ "x$SNMP_TEST_DEST" = "x" -a $SNMP_TRANSPORT_SPEC != "unix" ];then
-	SNMP_TEST_DEST="127.0.0.1:"
-fi
-export SNMP_FLAGS SNMP_SNMPD_PORT SNMP_SNMPTRAPD_PORT
-
-# Make sure the agent doesn't parse any config file but what we give it.  
-# this is mainly to protect against a broken agent that doesn't
-# properly handle combinations of -c and -C.  (since I've broke it before).
-#SNMPCONFPATH="$SNMP_TMPDIR/does-not-exist"
-#export SNMPCONFPATH
-
-fi # Only allow ourselves to be eval'ed once
diff --git a/testing/fulltests/support/simple_eval_tools.sh b/testing/fulltests/support/simple_eval_tools.sh
deleted file mode 100644
index 314d9bb..0000000
--- a/testing/fulltests/support/simple_eval_tools.sh
+++ /dev/null
@@ -1,695 +0,0 @@
-#
-# eval_tools.sh
-#
-# Output functions for script tests.  Source this from other test scripts
-# to establish a standardized repertory of test functions.
-#
-#
-# Except where noted, all functions return:
-#	0	On success,	(Bourne Shell's ``true'')
-#	non-0	Otherwise.
-#
-# Input arguments to each function are documented with each function.
-#
-#
-# XXX  Suggestions:
-#	DEBUG ON|OFF
-#	dump CAPTURE output to stdout as well as to junkoutputfile.
-#
-
-#
-# Only allow ourselves to be eval'ed once
-#
-if [ "x$EVAL_TOOLS_SH_EVALED" != "xyes" ]; then
-    EVAL_TOOLS_SH_EVALED=yes
-
-#
-# Variables used in global environment of calling script.
-#
-failcount=0
-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
-
-#
-# HEADER: returns a single line when SNMP_HEADERONLY mode and exits.
-#
-HEADER() {
-    if [ "x$SNMP_HEADERONLY" != "x" ]; then
-        echo test $*
-	exit 0;
-    else
-	{ echo "# testing $*"; echo ""; } >> $SNMP_TMPDIR/invoked
-    fi
-}
-
-
-#------------------------------------ -o-
-#
-OUTPUT() {	# <any_arguments>
-	cat <<GRONK
-
-
-$*
-
-
-GRONK
-}
-
-CAN_USLEEP() {
-   if [ "$SNMP_CAN_USLEEP" = 0 -o "$SNMP_CAN_USLEEP" = 1 ] ; then
-     return 0
-   fi
-   sleep .1 > /dev/null 2>&1
-   if [ $? = 0 ] ; then
-     SNMP_CAN_USLEEP=1
-   else
-     SNMP_CAN_USLEEP=0
-   fi
-   export SNMP_CAN_USLEEP
-}
-
-
-#------------------------------------ -o-
-#
-SUCCESS() {	# <any_arguments>
-	[ "$failcount" -ne 0 ] && return
-	cat <<GROINK
-
-SUCCESS: $*
-
-GROINK
-}
-
-
-
-#------------------------------------ -o-
-#
-FAILED() {	# <return_value>, <any_arguments>
-	[ "$1" -eq 0 ] && return
-	shift
-
-	failcount=`expr $failcount + 1`
-	cat <<GRONIK
-
-FAILED: $*
-
-GRONIK
-}
-
-#------------------------------------ -o-
-#
-SKIP() {
-	REMOVETESTDATA
-	echo "1..0 # SKIP $*"
-	exit 0
-}
-
-ISDEFINED() {
-	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() {
-	ISDEFINED "$1" || SKIP "$1 is not defined"
-}
-
-SKIPIF() {
-	ISDEFINED "$1" && SKIP "$1 is defined"
-}
-
-#------------------------------------ -o-
-#
-VERIFY() {	# <path_to_file(s)>
-	local	missingfiles=
-
-	for f in $*; do
-		[ -f "$f" ] && continue
-		echo "FAILED: Cannot find file \"$f\"."
-		missingfiles=true
-	done
-
-	[ "$missingfiles" = true ] && exit 1000
-}
-
-NEWOUTPUTFILE() {
-        outputcount=`expr $outputcount + 1`
-        junkoutputfile="${junkoutputfilebase}-$outputcount"
-}
-
-#------------------------------------ -o-
-#
-STARTTEST() {
-        NEWOUTPUTFILE
-	[ ! -f "$junkoutputfile" ] && {
-		touch $junkoutputfile
-		return
-	}
-	echo "FAILED: Output file already exists: \"$junkoutputfile\"."
-	exit 1000
-}
-
-
-#------------------------------------ -o-
-#
-STOPTEST() {
-	rm -f "$junkoutputfile"
-}
-
-
-#------------------------------------ -o-
-#
-REMOVETESTDATA() {
-#	ECHO "removing $SNMP_TMPDIR  "
-	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
-		cat <<KNORG
-
-EXECUTING: $*
-
-KNORG
-
-	fi
-	echo "RUNNING: $*" > $junkoutputfile
-	( $* 2>&1 ) >> $junkoutputfile 2>&1
-	RC=$?
-
-	if [ $SNMP_VERBOSE -gt 1 ]; then
-		echo "Command Output: "
-		echo "MIBDIR $MIBDIRS $MIBS"
-		echo "$separator"
-		cat $junkoutputfile | sed 's/^/  /'
-		echo "$separator"
-	fi
-	return $RC
-}
-
-#------------------------------------ -o-
-# Delay to let processes settle
-DELAY() {
-    if [ "$SNMP_SLEEP" != "0" ] ; then
-	sleep $SNMP_SLEEP
-    fi
-}
-
-SAVE_RESULTS() {
-   real_return_value=$return_value
-}
-
-#
-# Checks the output result against what we expect.
-#   Sets return_value to 0 or 1.
-#
-EXPECTRESULT() {
-  if [ $OK_TO_SAVE_RESULT -ne 0 ] ; then
-    if [ "$snmp_last_test_result" = "$1" ]; then
-	return_value=0
-    else
-	return_value=1
-    fi
-  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.
-#
-CHECKFILECOUNT() {	# <pattern_to_match>
-    chkfile=$1
-    ckfcount=$2
-    shift
-    shift
-    if [ $SNMP_VERBOSE -gt 0 ]; then
-	echo -n "checking $chkfile for $ckfcount \"$*\"..."
-    fi
-
-    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 $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
-    shift
-    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
-}
-
-CHECKAGENT() {
-    CHECKFILE $SNMP_SNMPD_LOG_FILE $@
-}
-
-CHECKAGENTCOUNT() {
-    count=$1
-    shift
-    CHECKFILECOUNT $SNMP_SNMPD_LOG_FILE $count $@
-}
-
-# Return 0 (true) if a process with pid $1 exists and 1 (false) if no process
-# with pid $1 exists. Do not use this function on MinGW: the PIDs written by
-# snmpd and snmptrapd to their pid files are not visible in the MinGW/MSYS
-# process table.
-ISRUNNING() {
-    #ps -e 2>/dev/null | egrep "^[	 ]*$1[	 ]+" >/dev/null 2>&1
-    kill -0 "$pid" 2>/dev/null
-}
-
-# Echo a command that asks the process with pid $1 to stop.
-ECHOSENDSIGTERM() {
-    if [ "x$OSTYPE" = "xmsys" ]; then
-        echo pskill.exe $1
-    else
-        echo kill -TERM $1
-    fi
-}
-
-# Echo a command that stops the process with pid $1 forcibly.
-ECHOSENDSIGKILL() {
-    if [ "x$OSTYPE" = "xmsys" ]; then
-        echo pskill.exe $1
-    else
-        echo kill -KILL $1
-    fi
-}
-
-# Wait until the shell statement "$@" evaluates to false.
-WAITFORNOTCOND() {
-    CAN_USLEEP
-    if [ $SNMP_CAN_USLEEP = 1 ] ; then
-        sleeptime=`expr $SNMP_SLEEP '*' 50`
-    else 
-        sleeptime=`expr $SNMP_SLEEP '*' 5`
-    fi
-    while [ $sleeptime -gt 0 ] && eval "$@"; do
-        if [ $SNMP_CAN_USLEEP = 1 ]; then
-            sleep .1
-        else
-            sleep 1
-        fi
-        sleeptime=`expr $sleeptime - 1`
-    done
-}
-
-# Wait until the shell statement "$@" evaluates to true.
-WAITFORCOND() {
-    WAITFORNOTCOND if "$@;" then false ";" else true ";" fi
-}
-
-WAITFORAGENT() {
-    WAITFOR "$@" $SNMP_SNMPD_LOG_FILE
-}
-
-WAITFORTRAPD() {
-    WAITFOR "$@" $SNMP_SNMPTRAPD_LOG_FILE
-}
-
-# Wait until pattern "$1" appears in file "$2".
-WAITFOR() {
-    WAITFORCOND grep "$1" "$2" ">/dev/null" "2>&1"
-}
-
-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
-}
-
-# CHECKORDIE "grep string" ["file"] .. FAIL if "grep string" is *not* found
-CHECKORDIE() {
-    if [ "x$2" = "x" ]; then
-      CHECKFILE "$junkoutputfile" "$1"
-    else
-      CHECKFILECOUNT "$2" 1 "$1"
-    fi
-}
-
-# CHECKANDDIE "grep string" ["file"] .. FAIL if "grep string" *is* found
-CHECKANDDIE() {
-    if [ "x$2" = "x" ]; then
-      CHECKFILECOUNT "$junkoutputfile" 0 "$1"
-    else
-      CHECKFILECOUNT "$2" 0 "$1"
-    fi
-}
-
-#------------------------------------ -o-
-# Returns: Count of matched lines.
-#
-CHECKEXACT() {	# <pattern_to_match_exactly>
-	rval=`egrep -c "^$*\$|^$*[^a-zA-Z0-9_]|[^a-zA-Z0-9_]$*\$|[^a-zA-Z0-9_]$*[^a-zA-Z0-9_]" "$junkoutputfile" 2>/dev/null`
-	snmp_last_test_result=$rval
-	EXPECTRESULT 1  # default
-	return $rval
-}
-
-CONFIGAGENT() {
-    if [ "x$SNMP_CONFIG_FILE" = "x" ]; then
-	echo "$0: failed because var: SNMP_CONFIG_FILE wasn't set"
-	exit 1;
-    fi
-    echo $* >> $SNMP_CONFIG_FILE
-}
-
-CONFIGTRAPD() {
-    if [ "x$SNMPTRAPD_CONFIG_FILE" = "x" ]; then
-	echo "$0: failed because var: SNMPTRAPD_CONFIG_FILE wasn't set"
-	exit 1;
-    fi
-    echo $* >> $SNMPTRAPD_CONFIG_FILE
-}
-
-CONFIGAPP() {
-    if [ "x$SNMPAPP_CONFIG_FILE" = "x" ]; then
-	echo "$0: failed because var: SNMPAPP_CONFIG_FILE wasn't set"
-	exit 1;
-    fi
-    echo $* >> $SNMPAPP_CONFIG_FILE
-}
-
-#
-# common to STARTAGENT and STARTTRAPD
-# log command to "invoked" file
-#
-STARTPROG() {
-    if [ "x$DYNAMIC_ANALYZER" != "x" ]; then
-        COMMAND="$DYNAMIC_ANALYZER $COMMAND"
-    fi
-    if [ $SNMP_VERBOSE -gt 1 ]; then
-	echo "$CFG_FILE contains: "
-	if [ -f $CFG_FILE ]; then
-	    cat $CFG_FILE
-	else
-	    echo "[no config file]"
-	fi
-    fi
-    if test -f $CFG_FILE; then
-	COMMAND="$COMMAND -C -c $CFG_FILE"
-    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
-    else
-      $COMMAND > $LOG_FILE.stdout 2>&1
-    fi
-}
-
-#------------------------------------ -o-
-STARTAGENT() {
-    SNMPDSTARTED=1
-    COMMAND="snmpd $SNMP_FLAGS -r -U -p $SNMP_SNMPD_PID_FILE -Lf $SNMP_SNMPD_LOG_FILE $AGENT_FLAGS"
-    CFG_FILE=$SNMP_CONFIG_FILE
-    LOG_FILE=$SNMP_SNMPD_LOG_FILE
-    PORT_SPEC="$SNMP_SNMPD_PORT"
-    if [ "x$SNMP_TRANSPORT_SPEC" != "x" ]; then
-        PORT_SPEC="${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${PORT_SPEC}"
-    fi
-    STARTPROG
-    WAITFORCOND test -f $SNMP_SNMPD_PID_FILE
-    WAITFORAGENT "NET-SNMP version"
-}
-
-#------------------------------------ -o-
-STARTTRAPD() {
-    TRAPDSTARTED=1
-    COMMAND="snmptrapd -d -p $SNMP_SNMPTRAPD_PID_FILE -Lf $SNMP_SNMPTRAPD_LOG_FILE $TRAPD_FLAGS"
-    CFG_FILE=$SNMPTRAPD_CONFIG_FILE
-    LOG_FILE=$SNMP_SNMPTRAPD_LOG_FILE
-    PORT_SPEC="$SNMP_SNMPTRAPD_PORT"
-    if [ "x$SNMP_TRANSPORT_SPEC" != "x" ]; then
-        PORT_SPEC="${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${PORT_SPEC}"
-    fi
-    STARTPROG
-    WAITFORCOND test -f $SNMP_SNMPTRAPD_PID_FILE
-    WAITFORTRAPD "NET-SNMP version"
-}
-
-## sending SIGHUP for reconfiguration
-#
-HUPPROG() {
-    if [ -f $1 ]; then
-        if [ "x$OSTYPE" = "xmsys" ]; then
-          COMMAND='echo "Skipping SIGHUP (not possible with MinGW)"'
-        else
-          COMMAND="kill -HUP `cat $1`"
-        fi
-	echo $COMMAND >> $SNMP_TMPDIR/invoked
-	VERBOSE_OUT 0 $COMMAND
-	$COMMAND > /dev/null 2>&1
-    fi
-}
-
-HUPAGENT() {
-    HUPPROG $SNMP_SNMPD_PID_FILE
-    if [ "x$OSTYPE" != "xmsys" ]; then
-        WAITFORAGENT "restarted"
-    fi
-}
-
-HUPTRAPD() {
-    HUPPROG $SNMP_SNMPTRAPD_PID_FILE
-    if [ "x$OSTYPE" != "xmsys" ]; then
-        WAITFORTRAPD "restarted"
-    fi
-}
-
-
-## used by STOPAGENT and STOPTRAPD
-# delay before kill to allow previous action to finish
-#    this is especially important for interaction between
-#    master agent and sub agent.
-STOPPROG() {
-    pid="`cat $1 2>/dev/null`"
-    if [ "x$pid" != "x" ]; then
-	COMMAND="`ECHOSENDSIGTERM $pid`"
-	echo "$COMMAND ($1)" >> $SNMP_TMPDIR/invoked
-	VERBOSE_OUT 0 "$COMMAND ($1)"
-        $COMMAND >/dev/null 2>&1
-        if [ "x$OSTYPE" = "xmsys" ]; then
-            # Wait until $pid and its parent have stopped.
-            sleep 1
-        else
-            WAITFORNOTCOND "ISRUNNING $pid"
-        fi
-    fi
-}
-
-#------------------------------------ -o-
-#
-STOPAGENT() {
-    SAVE_RESULTS
-    STOPPROG $SNMP_SNMPD_PID_FILE
-    if [ $SNMP_VERBOSE -gt 1 ]; then
-	echo "Agent Output:"
-	echo "$separator [stdout]"
-	cat $SNMP_SNMPD_LOG_FILE.stdout
-	echo "$separator [logfile]"
-	cat $SNMP_SNMPD_LOG_FILE
-	echo "$separator"
-    fi
-}
-
-#------------------------------------ -o-
-#
-STOPTRAPD() {
-    SAVE_RESULTS
-    STOPPROG $SNMP_SNMPTRAPD_PID_FILE
-    if [ $SNMP_VERBOSE -gt 1 ]; then
-	echo "snmptrapd Output:"
-	echo "$separator [stdout]"
-	cat $SNMP_SNMPTRAPD_LOG_FILE.stdout
-	echo "$separator [logfile]"
-	cat $SNMP_SNMPTRAPD_LOG_FILE
-	echo "$separator"
-    fi
-}
-
-#------------------------------------ -o-
-#
-FINISHED() {
-
-    ## no more changes to test result.
-    OK_TO_SAVE_RESULT=0
-
-    pids="`cat $SNMP_TMPDIR/*pid* 2>/dev/null`"
-    if [ "$SNMPDSTARTED" = "1" ] ; then
-      STOPAGENT
-    fi
-    if [ "$TRAPDSTARTED" = "1" ] ; then
-      STOPTRAPD
-    fi
-    for pid in $pids; do
-        if [ "x$OSTYPE" = "xmsys" ] || ISRUNNING $pid; then
-            if [ "x$OSTYPE" != "xmsys" ]; then
-                SNMP_SAVE_TMPDIR=yes
-            fi
-	    COMMAND="`ECHOSENDSIGKILL $pid`"
-	    echo "$COMMAND ($pfile)" >> $SNMP_TMPDIR/invoked
-	    VERBOSE_OUT 0 "$COMMAND ($pfile)"
-	    $COMMAND > /dev/null 2>&1
-	    return_value=1
-	fi
-    done
-
-    # 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 "$headerStr...FAIL" >> $SNMP_TMPDIR/invoked
-	exit 1
-    fi
-
-    echo "$headerStr...ok" >> $SNMP_TMPDIR/invoked
-
-    if [ "x$SNMP_SAVE_TMPDIR" != "xyes" ]; then
-	REMOVETESTDATA
-    fi
-    exit 0
-}
-
-#------------------------------------ -o-
-#
-VERBOSE_OUT() {
-    if [ $SNMP_VERBOSE -gt $1 ]; then
-	shift
-	echo "$*"
-    fi
-}
-
-fi # Only allow ourselves to be eval'ed once
diff --git a/testing/fulltests/support/simple_run b/testing/fulltests/support/simple_run
deleted file mode 100755
index 1978009..0000000
--- a/testing/fulltests/support/simple_run
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/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 in the source tree."
-       echo "The builddir environment variable can be set to point to the build 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 in the source tree."
-       echo "The builddir environment variable can be set to point to the build 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
-if [ "x$DYNAMIC_ANALYZER" = "x" ]; then
-    SNMP_SLEEP_DEFAULT=1
-else
-    SNMP_SLEEP_DEFAULT=10
-fi
-SNMP_SLEEP=${SNMP_SLEEP:=$SNMP_SLEEP_DEFAULT} 	## 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
deleted file mode 100644
index 3ea7c0b..0000000
--- a/testing/fulltests/tls/S300tlsperl.pl
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/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
deleted file mode 100644
index 95af0b9..0000000
--- a/testing/fulltests/tls/SCipherTests
+++ /dev/null
@@ -1,62 +0,0 @@
-. 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
deleted file mode 100644
index 4167403..0000000
--- a/testing/fulltests/tls/SCrl
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/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
deleted file mode 100644
index ab0c341..0000000
--- a/testing/fulltests/tls/STlsAgentTrap
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/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
deleted file mode 100644
index b9a61b8..0000000
--- a/testing/fulltests/tls/STlsCNSession
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-checknametype="--san"
-checknameprefix="DNS:"
-
-. STlsServerSession
diff --git a/testing/fulltests/tls/STlsName b/testing/fulltests/tls/STlsName
deleted file mode 100644
index e484da6..0000000
--- a/testing/fulltests/tls/STlsName
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-checknametype="--cn"
-checknameprefix=""
-
-. STlsServer
diff --git a/testing/fulltests/tls/STlsSan b/testing/fulltests/tls/STlsSan
deleted file mode 100644
index 294a0b4..0000000
--- a/testing/fulltests/tls/STlsSan
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-checknametype="--san"
-checknameprefix="DNS:"
-
-. STlsServer
diff --git a/testing/fulltests/tls/STlsSanSession b/testing/fulltests/tls/STlsSanSession
deleted file mode 100644
index b9a61b8..0000000
--- a/testing/fulltests/tls/STlsSanSession
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-checknametype="--san"
-checknameprefix="DNS:"
-
-. STlsServerSession
diff --git a/testing/fulltests/tls/STlsServer b/testing/fulltests/tls/STlsServer
deleted file mode 100644
index 1e8002d..0000000
--- a/testing/fulltests/tls/STlsServer
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/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
deleted file mode 100644
index acf68e5..0000000
--- a/testing/fulltests/tls/STlsServerSession
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/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
deleted file mode 100644
index e14c427..0000000
--- a/testing/fulltests/tls/STlsTrapdUser
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/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 at test.net-snmp.org --email user9 at 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
deleted file mode 100644
index 2cb03a6..0000000
--- a/testing/fulltests/tls/STlsUsers
+++ /dev/null
@@ -1,262 +0,0 @@
-#!/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 at 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 at test.net-snmp.org --email user9 at 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 at test.net-snmp.org --email user9b at 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 at test.net-snmp.org --email user9c at 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 at test.net-snmp.org --email user9d at 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 at 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 at test.net-snmp.org authpriv
-CONFIGAGENT  rwuser -s tsm user9 at test.net-snmp.org authpriv
-CONFIGAGENT  rwuser -s tsm user10 at 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 at 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 at net-snmp.org --email unknowncauser at net-snmp.org  --with-ca ca-net-snmp.org --san email:user10 at 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
deleted file mode 100644
index bba84f9..0000000
--- a/testing/fulltests/tls/STlsVars
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/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
deleted file mode 100644
index ec0f8d6..0000000
--- a/testing/fulltests/tls/STsmPrefix
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/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
deleted file mode 100755
index 10caede..0000000
--- a/testing/fulltests/tls/T101DtlsUser_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index a3fe119..0000000
--- a/testing/fulltests/tls/T102TlsUser_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index 6b42494..0000000
--- a/testing/fulltests/tls/T111DtlsServer_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index adefa94..0000000
--- a/testing/fulltests/tls/T112TlsServer_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index 1edb3c5..0000000
--- a/testing/fulltests/tls/T113DtlsSan_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index af5e8bc..0000000
--- a/testing/fulltests/tls/T114TlsSan_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index b9d5fcd..0000000
--- a/testing/fulltests/tls/T115DtlsSanSession_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index 191fcf3..0000000
--- a/testing/fulltests/tls/T116TlsSanSession_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index 0beea55..0000000
--- a/testing/fulltests/tls/T117DtlsCNSession_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index 305ab46..0000000
--- a/testing/fulltests/tls/T118TlsCNSession_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index 5c7c7bc..0000000
--- a/testing/fulltests/tls/T121DtlsTrap_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index e8aee17..0000000
--- a/testing/fulltests/tls/T122TlsTrap_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index 846faa9..0000000
--- a/testing/fulltests/tls/T131DtlsAgentTrap_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index cb44013..0000000
--- a/testing/fulltests/tls/T132TlsAgentTrap_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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
deleted file mode 100644
index 92a8e4f..0000000
--- a/testing/fulltests/tls/T141DtlsCrl_simple
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/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
deleted file mode 100644
index 2723c13..0000000
--- a/testing/fulltests/tls/T142TlsCrl_simple
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/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
deleted file mode 100644
index 6cbbec4..0000000
--- a/testing/fulltests/tls/T151DtlsCiphers_simple
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/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
deleted file mode 100644
index c828dc9..0000000
--- a/testing/fulltests/tls/T152TlsCiphers_simple
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/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
deleted file mode 100644
index 5e37f4c..0000000
--- a/testing/fulltests/tls/T200TlsIpv6_simple
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/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
deleted file mode 100644
index fb8edb9..0000000
--- a/testing/fulltests/tls/T300TlsPerl.t
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/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
deleted file mode 100644
index 3d980c7..0000000
--- a/testing/fulltests/tls/T301DtlsPerl.t
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/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
deleted file mode 100644
index dc85ad9..0000000
--- a/testing/fulltests/tls/T401DtlsTsmPrefix_simple
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/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
deleted file mode 100644
index 0c62eef..0000000
--- a/testing/fulltests/tls/T402TlsTsmPrefix_simple
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/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
deleted file mode 100644
index 21b2b82..0000000
--- a/testing/fulltests/transports/Stlstests
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/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/fulltests/transports/Stransport b/testing/fulltests/transports/Stransport
deleted file mode 100755
index b33ff57..0000000
--- a/testing/fulltests/transports/Stransport
+++ /dev/null
@@ -1,18 +0,0 @@
-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
-. ../default/Sv3config
-
-STARTAGENT
-
-CAPTURE "snmpget -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/testing/fulltests/transports/T300udp_simple b/testing/fulltests/transports/T300udp_simple
deleted file mode 100644
index 65a67f0..0000000
--- a/testing/fulltests/transports/T300udp_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/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/fulltests/transports/T310tcp_simple b/testing/fulltests/transports/T310tcp_simple
deleted file mode 100644
index 50c6a8a..0000000
--- a/testing/fulltests/transports/T310tcp_simple
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER TCP Transport
-
-SKIPIFNOT NETSNMP_TRANSPORT_TCP_DOMAIN
-
-#
-# Begin test
-#
-
-SNMP_TRANSPORT_SPEC=tcp
-
-. ./Stransport
diff --git a/testing/fulltests/transports/T320udpv6_simple b/testing/fulltests/transports/T320udpv6_simple
deleted file mode 100644
index 6a607c6..0000000
--- a/testing/fulltests/transports/T320udpv6_simple
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER UDP6 Transport
-
-SKIPIFNOT NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-
-#
-# Begin test
-#
-
-SNMP_TRANSPORT_SPEC=udp6
-SNMP_TEST_DEST="[::1]:"
-
-. ./Stransport
diff --git a/testing/fulltests/transports/T330tcpv6_simple b/testing/fulltests/transports/T330tcpv6_simple
deleted file mode 100644
index 09eb350..0000000
--- a/testing/fulltests/transports/T330tcpv6_simple
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER TCP6 Transport
-
-SKIPIFNOT NETSNMP_TRANSPORT_TCPIPV6_DOMAIN
-
-#
-# Begin test
-#
-
-SNMP_TRANSPORT_SPEC=tcp6
-SNMP_TEST_DEST="[::1]:"
-
-. ./Stransport
diff --git a/testing/fulltests/transports/T350unix_simple b/testing/fulltests/transports/T350unix_simple
deleted file mode 100644
index 053ba1f..0000000
--- a/testing/fulltests/transports/T350unix_simple
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER Unix Transport
-
-SKIPIFNOT NETSNMP_TRANSPORT_UNIX_DOMAIN
-
-#
-# Begin test
-#
-
-SNMP_TRANSPORT_SPEC=unix
-SNMP_TEST_DEST=${SNMP_TMPDIR}/testunixsocket
-
-. ./Stransport
-
-# cleanup
-rm -f $SNMP_TEST_DEST
diff --git a/testing/fulltests/transports/T360dtlsudp_simple b/testing/fulltests/transports/T360dtlsudp_simple
deleted file mode 100644
index 5899378..0000000
--- a/testing/fulltests/transports/T360dtlsudp_simple
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/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
deleted file mode 100644
index 7972a2e..0000000
--- a/testing/fulltests/transports/T361tlstcp_simple
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/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/fulltests/transports/T399alias_simple b/testing/fulltests/transports/T399alias_simple
deleted file mode 100644
index 5f48311..0000000
--- a/testing/fulltests/transports/T399alias_simple
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-. ../support/simple_eval_tools.sh
-
-HEADER ALIAS Transport
-
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-SKIPIFNOT NETSNMP_TRANSPORT_ALIAS_DOMAIN
-
-#
-# Begin test
-#
-
-# configure the agent to accept user initial with noAuthNoPriv
-. ../default/Sv3config
-
-CONFIGAPP alias aliastest udp:localhost:$SNMP_SNMPD_PORT
-CONFIGAGENT '[snmp]' alias aliastest udp:localhost:$SNMP_SNMPD_PORT
-
-SNMP_TRANSPORT_SPEC=alias
-SNMP_TEST_DEST="aliastest"
-SNMP_SNMPD_PORT=""
-
-. ./Stransport
diff --git a/testing/fulltests/transports/test-localhost.cert b/testing/fulltests/transports/test-localhost.cert
deleted file mode 100644
index 2b49b26..0000000
--- a/testing/fulltests/transports/test-localhost.cert
+++ /dev/null
@@ -1,23 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID2jCCAsKgAwIBAgIJAISEQRgZJXH4MA0GCSqGSIb3DQEBBQUAMFExCzAJBgNV
-BAYTAlVTMQswCQYDVQQIEwJDQTEOMAwGA1UEBxMFRGF2aXMxETAPBgNVBAoTCE5l
-dC1TTk1QMRIwEAYDVQQDEwlsb2NhbGhvc3QwHhcNMDkwNzA5MjMzNjMwWhcNMDkw
-ODA4MjMzNjMwWjBRMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExDjAMBgNVBAcT
-BURhdmlzMREwDwYDVQQKEwhOZXQtU05NUDESMBAGA1UEAxMJbG9jYWxob3N0MIIB
-IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4yjcQ7njcwny6NsFgM5WwEcV
-GtVe+h2k41JU9lJ9I1Eg7kRsSfJ7z9jX5JXpHXUXq54Mt/sLODeheyE8z5Zwjplc
-MGxLiPdRRp/3Bmlh3qrPLRLR17B+1MkcIz9UBUut2PusxEeCeA/g8RVEwK8oPger
-4I+KaXonXWmhm85EEHlWmZHTDTDa6MXURNs+EqcQrWRgHyf8bQhwpSjBzmbUtVq5
-ipVNWmqxPlSTkj5CqkrbNdkpOIBvZ6ThFfi2rwPDO+YzrucFcM+BfKRCDBcC4TsN
-2z0S1IseJGTNO1iidMrjCVzoIbMB+GouXjLJXAuLIF0X3dP+yOZzeSt5J2vCgQID
-AQABo4G0MIGxMB0GA1UdDgQWBBR+ZduNAGvbAtjo8+7DPUOI5CpQRjCBgQYDVR0j
-BHoweIAUfmXbjQBr2wLY6PPuwz1DiOQqUEahVaRTMFExCzAJBgNVBAYTAlVTMQsw
-CQYDVQQIEwJDQTEOMAwGA1UEBxMFRGF2aXMxETAPBgNVBAoTCE5ldC1TTk1QMRIw
-EAYDVQQDEwlsb2NhbGhvc3SCCQCEhEEYGSVx+DAMBgNVHRMEBTADAQH/MA0GCSqG
-SIb3DQEBBQUAA4IBAQCa2+5tz+fmgw9h8AF9l++8M1Lnzqrmsvy45phxx5f/rZe8
-BrspMlrT6bKcM9CTqezjkDZOrGEuYvcbMea2ntlXG0CIMxhWpgczwxZizGYIN6f1
-CK5siPlOzKObpkAwUjWbLm7N2BJGKp3FMq11Jt31tUwJTBc5viYzWBCQV4CxVoL5
-MqMfVyKjOK0eqgMvtrRgZ6t/098OiE4USheW+++b0zzo8Um/YIA9JQmCbZ4bh6jd
-/AgZhKRR5bXiOGmCLVweDV4MTi12Y285GBbylbdDuj8YV7mu7NzOn5kJ6xI00Vuc
-bGWtdcpEGkW7Zn4YCuxszpqtM3jLGZHCUqCuKSeP
------END CERTIFICATE-----
diff --git a/testing/fulltests/transports/test-localhost.priv b/testing/fulltests/transports/test-localhost.priv
deleted file mode 100644
index 2e2a8eb..0000000
--- a/testing/fulltests/transports/test-localhost.priv
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpQIBAAKCAQEA4yjcQ7njcwny6NsFgM5WwEcVGtVe+h2k41JU9lJ9I1Eg7kRs
-SfJ7z9jX5JXpHXUXq54Mt/sLODeheyE8z5ZwjplcMGxLiPdRRp/3Bmlh3qrPLRLR
-17B+1MkcIz9UBUut2PusxEeCeA/g8RVEwK8oPger4I+KaXonXWmhm85EEHlWmZHT
-DTDa6MXURNs+EqcQrWRgHyf8bQhwpSjBzmbUtVq5ipVNWmqxPlSTkj5CqkrbNdkp
-OIBvZ6ThFfi2rwPDO+YzrucFcM+BfKRCDBcC4TsN2z0S1IseJGTNO1iidMrjCVzo
-IbMB+GouXjLJXAuLIF0X3dP+yOZzeSt5J2vCgQIDAQABAoIBADH4niPj864t5Rrm
-e5pvSdQ4juL9R0x8UvaS+Q/K665mPXlM4gmOZ0A88pldhQ+u34soVKHwfvJaApME
-p8z+yjoEcKxSVneF+IIx1HS7oAUMzFCdED6DnBMRPrheSQx1LoRKMSJonMHutEw0
-opBEt/SVWXEoAonbjmdVQnD0+jIpJRHYvPj8TWGtv7Vl7nHVTQBUYy+jd1CBQ4jA
-emHK5IGx++ytrfNXA1uDa38t8cSHg2Kpr8vhwkzZWVxskS46wSP/sPBqK/wg+Fxd
-8WovaGXpiyLb2Kj15rHBqd5wFeKHGJI/Q/X4qVvxLjKGeFJ1GDNvvg8mevRZ9Rei
-yIBu8oUCgYEA895WxeaC0S8dKZVAR7eXLauHUQ/lAIjql8OtdsHBfpTRLWvs9IpQ
-8y0n4sgcB/4iaBVVp8W414zjutCxXJrq5ZHKOi5zVqpPsamkKQYnGKfbU2q0WptD
-T1z2pLSk1L/MHjhbuwZbe0Hxf7vPg10loukFlUGkEajaHKOnhy1/BtcCgYEA7nW7
-4VmVcDM8yYblNNQPv2THoowZJlST9v7+Q9pjoYMYvruQWKcZyIjFSt9hetrfBtxO
-+QxUqvfB8d/RSzg7wF7AmWHa3EfgT7h3X8glh7isb9YIRn6qBtxysWTXRqNGM+Wf
-hxylFQXezJPZ0hSbdXZThhwvvzD41Zbjq3XJzmcCgYEAoA4MO4Tn1O0sIa+gabF4
-GnRasnxRG4HBHmxCPBA8s5xukXYlJfZl3MSFShV2OFS2NkPSXPOrNmV0zZbM4W+X
-vaZq6La14mqTNZKWeIpePJNmoqAE0PbYPY1RH5akHDHpgOgSZHRutD36h5A3SQto
-eTyg+m4Dhcehp2xNtq3Iki8CgYEA3vPPTVxv/264iAgK58DaVG3KxezNWuw7R/WU
-ECbxfkJPcY124Zyi278dD+sZfj+DxStY3zwrMYril95XFkgmfa9Zzk8SzWCalo73
-deNxS5tcBliMdjTZjf6xcbDCIrZn3f/0juQ2aRiK/qXCQ8ymqUWPxFU4Qz9reHBS
-v64qmEMCgYEAsumq+jUoa3qYna45vyBMQf6NJLWCFYXloAtKVTECCb88T6MVyrOE
-cyj0Ybek+iezN8tbJHqiSWVtnRA9kjrC0ArwOKDipNFRkFogpURajzb/LnUQdW+P
-rOtNuLaNnLVo2kiK4QNbd+3BJQCDPBcZQq6dGccvyNXYVtfExY4WI2c=
------END RSA PRIVATE KEY-----
diff --git a/testing/fulltests/transports/test-user.cert b/testing/fulltests/transports/test-user.cert
deleted file mode 100644
index 4d56b35..0000000
--- a/testing/fulltests/transports/test-user.cert
+++ /dev/null
@@ -1,23 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID4zCCAsugAwIBAgIJAIpBQHzq+nhbMA0GCSqGSIb3DQEBBQUAMFQxCzAJBgNV
-BAYTAlVTMQswCQYDVQQIEwJDQTEOMAwGA1UEBxMFRGF2aXMxETAPBgNVBAoTCE5l
-dC1TTk1QMRUwEwYDVQQDEwxkdGxzdGVzdHVzZXIwHhcNMDkwNzA5MjM0MDA2WhcN
-MDkwODA4MjM0MDA2WjBUMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExDjAMBgNV
-BAcTBURhdmlzMREwDwYDVQQKEwhOZXQtU05NUDEVMBMGA1UEAxMMZHRsc3Rlc3R1
-c2VyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0rw9BcVYbzJ8cjc4
-M0FX7h4ywT53xtCWypQXLgwNx7GduZU1DTzhVrcyWpeT8aw+ztW9wmH4NEeORSTK
-vGZJJPe3qJiFiPKNSJ17QzKSVG0QStJMPUFSCq7nNYIzZ3blliMHSDJef3q6bx+l
-4NUaDX03Usacgke8CCZlA51BRf+OOtqWNWoJ4QXucuJ/rERqgYRR1f7Pojs35ZAE
-7c71/WVcztl68tLH6yVZhpVDQKd+Ee/Mpir5j2X7FoRp3dUn5ATjpBw6WETw9tbU
-gjbcsrG4wE6czK0YSTxNTGJzC9rvEq3S+vbjPzLBVxrAWxXd7tAMkUSUWVJjCMMv
-e7hoOQIDAQABo4G3MIG0MB0GA1UdDgQWBBTFWVMk7fsGCU2GsKY9nk0bC2PN+jCB
-hAYDVR0jBH0we4AUxVlTJO37BglNhrCmPZ5NGwtjzfqhWKRWMFQxCzAJBgNVBAYT
-AlVTMQswCQYDVQQIEwJDQTEOMAwGA1UEBxMFRGF2aXMxETAPBgNVBAoTCE5ldC1T
-Tk1QMRUwEwYDVQQDEwxkdGxzdGVzdHVzZXKCCQCKQUB86vp4WzAMBgNVHRMEBTAD
-AQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCWxKFEohA+Vl+gj4x0ng5FUMuHtTbtLbSG
-1+r6S94LvMBedloYT7mPIPgcVbMT5fqAeQpfVIaC0i5PkiUI9H2MXtO2AdBa5Jx5
-q18OdUj/LjGA3B7josq5HnIT/0OThYkAeKLIVDLHxiqOYrmFwqZOsK5BZ1RM/6Yl
-+/UZuwujuHtnwRW3VWskVVFTF4NGKZ5f7lA+NSYqbHn/7OBqqgS2GxnSzcCD9BOq
-9zNMZoiW3jW+EoIL62pRtE+S/iL1BRBct4xwNP/RQyN4iaDVg0SC10YSSXk4+of+
-e2gCLgCxs0VyBzG8fIoX8Riq7cV99G119M1KT45jXcos1hO2gYuB
------END CERTIFICATE-----
diff --git a/testing/fulltests/transports/test-user.priv b/testing/fulltests/transports/test-user.priv
deleted file mode 100644
index 62507e3..0000000
--- a/testing/fulltests/transports/test-user.priv
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA0rw9BcVYbzJ8cjc4M0FX7h4ywT53xtCWypQXLgwNx7GduZU1
-DTzhVrcyWpeT8aw+ztW9wmH4NEeORSTKvGZJJPe3qJiFiPKNSJ17QzKSVG0QStJM
-PUFSCq7nNYIzZ3blliMHSDJef3q6bx+l4NUaDX03Usacgke8CCZlA51BRf+OOtqW
-NWoJ4QXucuJ/rERqgYRR1f7Pojs35ZAE7c71/WVcztl68tLH6yVZhpVDQKd+Ee/M
-pir5j2X7FoRp3dUn5ATjpBw6WETw9tbUgjbcsrG4wE6czK0YSTxNTGJzC9rvEq3S
-+vbjPzLBVxrAWxXd7tAMkUSUWVJjCMMve7hoOQIDAQABAoIBADcXaOiST+06CJif
-YPzdT0x77o7gctWyAEnTbz/lfNDA2VgD7suYJ9zQpcRTLiUW/5B5BlPD4uxf7Iyc
-8rdQEj0s2YGk5fwIVPEv4mKN3P1fScwVsEKvSfBrCxzM/f1Fcv3OCIBSUqwG/KhC
-YM4nR9lQ696i95WDhV+oEe5g9QiELdADDlc1bv+nb9tVBzUTmHQgpGjwyaJMIzIV
-qkfpC4RV8Ojt5ELb6XjJRFxg9Qi+4kw6mLbBc/inysvVQBmsWLLlCKpbHt02YfUB
-atVODzTR5aUbcQKnNnHmojU05irbCeUXphgQKV9iuzsiWMV4edJ6tW8B10BuSlH5
-b0GNuwECgYEA/fwKmQ0jgrLjRc16cE2GWMZRmqBufTtGSw9tdohmUMIPqNt4+/XQ
-gKV0sfFZgsLLUG50xqRR6mmkzS7TVwl4uRqcrF7DRKKAkyFJP3QkLSQm+4EZFxOv
-dpHVLVpO1QJ+71YE4zKOdIfWRaoh5ZlEpGw3uzf+U0oNTD79X5fOA6ECgYEA1GhW
-iSEbU+2YPny4qeXdf8hcSn9+Ur6cBzxLhYMUHNI9ysyAQn3//MLoRConokiUEWG5
-BLO2zSmNqvHWKRBzaGr6Zjo/tGTWgOWnpLQMq+XYmDxWxDGCTLH2edqC+VIIqBnB
-QmLYBvde9En1UI/c3Cspb18Nh92I+VGZNPzPHZkCgYAPU82D7QIOmiMTDFJuQo9v
-/g/gp/vi/NfCId02QQcDqqJtS0li0zPQ/6sqLel79at1YCUV88apwdRbOY8xenXZ
-ndyEnndkRfZCasjT1nt0afEcTm8oMFzvZ9+YjBGj0zG72dITr/Je3++zZpADHhvB
-XHKEjt1/Q0HILyj1QuEA4QKBgQCUbfkSyJzVMHI0MGnG6Ae59ORxdthqsCJOeBb6
-TJfwcAaYQgHa9Tu+gOFYSPD7WaaG4vgszf0PL1t9OpQCjClprWAfsdK0l8bBujpF
-QUCdmveZooirf0FjoPTxP/5Ihcfg2GaRoor9iz3CjjAsROv8uviwiAbni6rdNuVN
-/uAo+QKBgQCfQf1RBj/iMmOZdi4SifBODmseJEYeAMlfEQBHPFmThNLiflz+VN17
-uqHS5IghPK0sXb7pOQmC2hCxT2sWybJx+qKsoOYHLQyrG5kg7CgVjltm6Hzwyizt
-Kuw6T4cUj1qRQG8aATL+sGuT69FHTSE3va5tlf9oYGsM6rIoA43g3w==
------END RSA PRIVATE KEY-----
diff --git a/testing/fulltests/unit-tests/T001defaultstore_clib.c b/testing/fulltests/unit-tests/T001defaultstore_clib.c
deleted file mode 100644
index 0144f7d..0000000
--- a/testing/fulltests/unit-tests/T001defaultstore_clib.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* 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
deleted file mode 100644
index 99b2e94..0000000
--- a/testing/fulltests/unit-tests/T002containers_clib.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* 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
deleted file mode 100644
index 7d67ed0..0000000
--- a/testing/fulltests/unit-tests/T003copy_nword_clib.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* 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
deleted file mode 100644
index d28b19b..0000000
--- a/testing/fulltests/unit-tests/T004snmp_enum_clib.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* 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
deleted file mode 100644
index cac940e..0000000
--- a/testing/fulltests/unit-tests/T005table_dataset_cagentlib.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* 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_agent("snmpd");
-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");
-shutdown_agent();
-
-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
deleted file mode 100644
index ed7ae68..0000000
--- a/testing/fulltests/unit-tests/T006snmp_handler_registration_cagentlib.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* HEADER Testing SNMP handler registration */
-
-static oid Oid[] = { 1, 3, 6, 1, 3, 327 }; /* experimental.327 */
-netsnmp_handler_registration *handler, *handler2;
-netsnmp_mib_handler *dh;
-netsnmp_cache *nc, *nc2;
-
-init_snmp("snmp");
-
-handler = netsnmp_create_handler_registration("experimental.327", NULL,
-	Oid, OID_LENGTH(Oid), HANDLER_CAN_RWRITE);
-OK(handler != NULL, "Handler creation.");
-
-nc = netsnmp_cache_create(10, NULL, NULL, Oid, OID_LENGTH(Oid));
-OK(nc, "netsnmp_cache allocation");
-OK(snmp_oid_compare(nc->rootoid, nc->rootoid_len, Oid, OID_LENGTH(Oid)) == 0,
-   "Handler private OID.");
-
-handler->handler->myvoid = nc;
-netsnmp_cache_handler_owns_cache(handler->handler);
-
-nc2 = handler->handler->myvoid;
-OK(nc2, "Handler private data");
-OK(snmp_oid_compare(nc2->rootoid, nc2->rootoid_len, Oid, OID_LENGTH(Oid)) == 0,
-   "Handler private OID.");
-
-OK(netsnmp_register_instance(handler) == MIB_REGISTERED_OK,
-   "MIB registration.");
-
-handler2 = netsnmp_create_handler_registration("experimental.327", NULL,
-        Oid, OID_LENGTH(Oid), HANDLER_CAN_RWRITE);
-OK(handler2 != NULL, "Second registration");
-
-OK(netsnmp_register_instance(handler2) == MIB_DUPLICATE_REGISTRATION,
-   "Duplicate MIB registration.");
-
-dh = netsnmp_handler_dup(handler->handler);
-OK(dh, "Handler duplication.");
-
-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
deleted file mode 100644
index e9b00fa..0000000
--- a/testing/fulltests/unit-tests/T007inet_pton_clib.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* 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
deleted file mode 100644
index 73a2f73..0000000
--- a/testing/fulltests/unit-tests/T008asn1_clib.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/* 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
deleted file mode 100644
index eee4d41..0000000
--- a/testing/fulltests/unit-tests/T009large_fd_set_clib.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* 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/T010netsnmp_string_time_to_secs_clib.c b/testing/fulltests/unit-tests/T010netsnmp_string_time_to_secs_clib.c
deleted file mode 100644
index e31aeeb..0000000
--- a/testing/fulltests/unit-tests/T010netsnmp_string_time_to_secs_clib.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* HEADER Testing the netsnmp_string_time_to_secs API */
-int secs;
-
-#define TESTIT(x,y) \
-    OKF(y == (secs = netsnmp_string_time_to_secs(x)), \
-        ("netsnmp_string_time_to_secs of %s returned %d, not 5", x, secs))
-
-TESTIT("5", 5);
-TESTIT("5", 5);
-
-TESTIT("5s", 5);
-TESTIT("5S", 5);
-
-TESTIT("5m", 5 * 60);
-TESTIT("5M", 5 * 60);
-
-TESTIT("5h", 5 * 60 * 60);
-TESTIT("5H", 5 * 60 * 60);
-
-TESTIT("5d", 5 * 60 * 60 * 24);
-TESTIT("5D", 5 * 60 * 60 * 24);
-
-TESTIT("5w", 5 * 60 * 60 * 24 * 7);
-TESTIT("5W", 5 * 60 * 60 * 24 * 7);
-
-/* now with longer times */
-TESTIT("1234", 1234);
-TESTIT("1234", 1234);
-
-TESTIT("1234s", 1234);
-TESTIT("1234S", 1234);
-
-TESTIT("1234m", 1234 * 60);
-TESTIT("1234M", 1234 * 60);
-
-TESTIT("1234h", 1234 * 60 * 60);
-TESTIT("1234H", 1234 * 60 * 60);
-
-TESTIT("1234d", 1234 * 60 * 60 * 24);
-TESTIT("1234D", 1234 * 60 * 60 * 24);
-
-TESTIT("1234w", 1234 * 60 * 60 * 24 * 7);
-TESTIT("1234W", 1234 * 60 * 60 * 24 * 7);
-
-
diff --git a/testing/fulltests/unit-tests/T011snmp_old_api_registration_cagentlib.c b/testing/fulltests/unit-tests/T011snmp_old_api_registration_cagentlib.c
deleted file mode 100644
index 6f1d449..0000000
--- a/testing/fulltests/unit-tests/T011snmp_old_api_registration_cagentlib.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* HEADER Testing SNMP handler registration via the old API */
-
-static oid Oid[] = { 1, 3, 6, 1, 3, 327 }; /* experimental.327 */
-struct variable var_array[] = {
-    { 0, 0/*type*/, 0/*acl*/, NULL/*findVar*/, 7, { 1, 3, 6, 1, 3, 327, 1 } },
-    { 0, 0/*type*/, 0/*acl*/, NULL/*findVar*/, 7, { 1, 3, 6, 1, 3, 327, 2 } },
-    { 0, 0/*type*/, 0/*acl*/, NULL/*findVar*/, 7, { 1, 3, 6, 1, 3, 327, 3 } },
-};
-netsnmp_session *sess;
-int res;
-
-init_snmp("snmp");
-
-sess = calloc(1, sizeof(*sess));
-snmp_sess_init(sess);
-
-res = 
-netsnmp_register_old_api("exp.327.a",
-                         var_array,
-                         sizeof(var_array[0]),
-                         sizeof(var_array)/sizeof(var_array[0]),
-                         Oid,
-                         sizeof(Oid)/sizeof(Oid[0]),
-                         2, /* priority */
-                         0, /* range_subid */
-                         0, /* range_ubound */
-                         sess,
-                         "context", 5/*timeout*/, 0/*flags - ignored*/);
-OK(res == SNMPERR_SUCCESS, "Handler registration (1).");
-
-/* Verify that duplicate registration does not cause any havoc. */
-res = 
-netsnmp_register_old_api("exp.327.b",
-                         var_array,
-                         sizeof(var_array[0]),
-                         sizeof(var_array)/sizeof(var_array[0]),
-                         Oid,
-                         sizeof(Oid)/sizeof(Oid[0]),
-                         2, /* priority */
-                         0, /* range_subid */
-                         0, /* range_ubound */
-                         sess,
-                         "context", 5/*timeout*/, 0/*flags - ignored*/);
-OK(res == SNMPERR_SUCCESS, "Handler registration (2).");
-
-snmp_shutdown("snmp");
diff --git a/testing/fulltests/unit-tests/T012binary_array_oid_clib.c b/testing/fulltests/unit-tests/T012binary_array_oid_clib.c
deleted file mode 100644
index aeeb502..0000000
--- a/testing/fulltests/unit-tests/T012binary_array_oid_clib.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* HEADER Testing binary OID array */
-
-static const char test_name[] = "binary-array-of-OIDs-test";
-oid o1 = 1;
-oid o2 = 2;
-oid o3 = 6;
-oid o4 = 8;
-oid o5 = 9;
-oid ox = 7;
-oid oy = 10;
-netsnmp_index i1, i2, i3, i4, i5, ix, iy, *ip;
-const netsnmp_index *const i_last = &i5;
-netsnmp_index *a[] = { &ix, &iy };
-netsnmp_index *b[] = { &i4, &i2, &i3, &i1, &i5 };
-netsnmp_container *c;
-int i;
-
-init_snmp(test_name);
-
-c = netsnmp_container_get_binary_array();
-c->compare = netsnmp_compare_netsnmp_index;
-    
-i1.oids = &o1;
-i2.oids = &o2;
-i3.oids = &o3;
-i4.oids = &o4;
-i5.oids = &o5;
-ix.oids = &ox;
-iy.oids = &oy;
-i1.len = i2.len = i3.len = i4.len = i5.len = ix.len = iy.len = 1;
-
-for (i = 0; i < sizeof(b)/sizeof(b[0]); ++i)
-    CONTAINER_INSERT(c, b[i]);
-
-for (ip = CONTAINER_FIRST(c); ip; ip = CONTAINER_NEXT(c, ip)) {
-    for (i = sizeof(b)/sizeof(b[0]) - 1; i >= 0; --i)
-        if (c->compare(ip, b[i]) == 0)
-            break;
-    OKF(i >= 0, ("OID b[%d] = %" NETSNMP_PRIo "d present", i, b[i]->oids[0]));
-}
-
-for (i = 0; i < sizeof(b)/sizeof(b[0]); ++i) {
-    ip = CONTAINER_FIND(c, b[i]);
-    OKF(ip, ("Value b[%d] = %" NETSNMP_PRIo "d present", i, b[i]->oids[0]));
-    ip = CONTAINER_NEXT(c, b[i]);
-    if (c->compare(b[i], i_last) < 0)
-        OKF(ip && c->compare(b[i], ip) < 0,
-            ("Successor of b[%d] = %" NETSNMP_PRIo "d is %" NETSNMP_PRIo "d",
-             i, b[i]->oids[0], ip->oids[0]));
-    else
-        OKF(!ip, ("No successor found for b[%d] = %" NETSNMP_PRIo "d", i,
-                  b[i]->oids[0]));
-}
-
-for (i = 0; i < sizeof(a)/sizeof(a[0]); ++i) {
-    ip = CONTAINER_FIND(c, a[i]);
-    OKF(!ip, ("a[%d] = %" NETSNMP_PRIo "d absent", i, a[i]->oids[0]));
-    ip = CONTAINER_NEXT(c, a[i]);
-    if (c->compare(a[i], i_last) < 0)
-        OKF(ip && c->compare(ip, a[i]) > 0,
-            ("Successor of a[%d] = %" NETSNMP_PRIo "d is %" NETSNMP_PRIo "d",
-             i, a[i]->oids[0], ip->oids[0]));
-    else
-        OKF(!ip, ("No successor found for a[%d] = %" NETSNMP_PRIo "d", i,
-                  a[i]->oids[0]));
-}
-
-while ((ip = CONTAINER_FIRST(c)))
-  CONTAINER_REMOVE(c, ip);
-CONTAINER_FREE(c);
-
-snmp_shutdown(test_name);
diff --git a/testing/fulltests/unit-tests/T013binary_array_string_clib.c b/testing/fulltests/unit-tests/T013binary_array_string_clib.c
deleted file mode 100644
index cc4361b..0000000
--- a/testing/fulltests/unit-tests/T013binary_array_string_clib.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* HEADER Testing binary string array */
-
-static const char test_name[] = "binary-array-of-strings-test";
-const char o1[] = "zebra";
-const char o2[] = "b-two";
-const char o3[] = "b";
-const char o4[] = "cedar";
-const char o5[] = "alpha";
-const char ox[] = "dev";
-const char oy[] = "aa";
-const char* const o_last = o1;
-const char *ip;
-const char *const a[] = { ox, oy };
-const char *const b[] = { o4, o2, o3, o1, o5 };
-netsnmp_container *c;
-int i;
-
-init_snmp(test_name);
-
-c = netsnmp_container_get_binary_array();
-c->compare = (netsnmp_container_compare*)strcmp;
-    
-for (i = 0; i < sizeof(b)/sizeof(b[0]); ++i)
-    CONTAINER_INSERT(c, b[i]);
-
-for (ip = CONTAINER_FIRST(c); ip; ip = CONTAINER_NEXT(c, ip)) {
-    for (i = sizeof(b)/sizeof(b[0]) - 1; i >= 0; --i)
-        if (c->compare(ip, b[i]) == 0)
-            break;
-    OKF(i >= 0, ("string b[%d] = \"%s\" present", i, b[i]));
-}
-
-for (i = 0; i < sizeof(b)/sizeof(b[0]); ++i) {
-    ip = CONTAINER_FIND(c, b[i]);
-    OKF(ip, ("b[%d] = \"%s\" present", i, b[i]));
-    ip = CONTAINER_NEXT(c, b[i]);
-    if (c->compare(b[i], o_last) < 0)
-        OKF(ip && c->compare(b[i], ip) < 0,
-            ("Successor of b[%d] = \"%s\" is \"%s\"", i, b[i], ip));
-    else
-        OKF(!ip, ("No successor found for b[%d] = \"%s\"", i, b[i]));
-}
-
-for (i = 0; i < sizeof(a)/sizeof(a[0]); ++i) {
-    ip = CONTAINER_FIND(c, a[i]);
-    OKF(!ip, ("a[%d] = \"%s\" absent", i, a[i]));
-    ip = CONTAINER_NEXT(c, a[i]);
-    if (c->compare(a[i], o_last) < 0)
-        OKF(ip && c->compare(ip, a[i]) > 0,
-            ("Successor of a[%d] = \"%s\" is \"%s\"", i, a[i], ip));
-    else
-        OKF(!ip, ("No successor found for a[%d] = \"%s\"", i, a[i]));
-}
-
-while ((ip = CONTAINER_FIRST(c)))
-  CONTAINER_REMOVE(c, ip);
-CONTAINER_FREE(c);
-
-snmp_shutdown(test_name);
diff --git a/testing/fulltests/unit-tests/T014gethostbyaddr_clib.c b/testing/fulltests/unit-tests/T014gethostbyaddr_clib.c
deleted file mode 100644
index 4c633ed..0000000
--- a/testing/fulltests/unit-tests/T014gethostbyaddr_clib.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* HEADER Testing netsnmp_gethostbyaddr() */
-
-SOCK_STARTUP;
-
-{
-    int ran_test = 0;
-#ifdef HAVE_GETHOSTBYADDR
-    struct hostent *h;
-    struct in_addr v4loop;
-    struct sockaddr_in sin_addr;
-    int s;
-
-    v4loop.s_addr = htonl(INADDR_LOOPBACK);
-    memset(&sin_addr, 0, sizeof(sin_addr));
-    sin_addr.sin_family = AF_INET;
-    sin_addr.sin_addr = v4loop;
-    s = socket(AF_INET, SOCK_DGRAM, 0);
-    if (s >= 0) {
-        if (bind(s, (struct sockaddr *)&sin_addr, sizeof(sin_addr)) >= 0) {
-            h = netsnmp_gethostbyaddr(&v4loop, sizeof(v4loop), AF_INET);
-            OKF(h && strcmp(h->h_name, "localhost") == 0,
-                ("127.0.0.1 lookup (%s)", h ? h->h_name : "(failed)"));
-            ran_test = 1;
-        }
-        close(s);
-    }
-#endif
-    if (!ran_test)
-        OKF(1, ("Skipped IPv4 test"));
-}
-
-{
-    struct hostent *h;
-    static const struct in6_addr v6loop = IN6ADDR_LOOPBACK_INIT;
-    struct sockaddr_in6 sin6_addr;
-    int s, ran_test = 0;
-
-    memset(&sin6_addr, 0, sizeof(sin6_addr));
-    sin6_addr.sin6_family = AF_INET6;
-    sin6_addr.sin6_addr = v6loop;
-    s = socket(AF_INET6, SOCK_DGRAM, 0);
-    if (s >= 0) {
-        if (bind(s, (struct sockaddr*)&sin6_addr, sizeof(sin6_addr)) >= 0) {
-            h = netsnmp_gethostbyaddr(&v6loop, sizeof(v6loop), AF_INET6);
-            OKF(h && strcmp(h->h_name, "localhost") == 0,
-                ("::1 lookup (%s)", h ? h->h_name : "(failed)"));
-            ran_test = 1;
-        }
-        close(s);
-    }
-    if (!ran_test)
-        OKF(1, ("Skipped IPv6 test"));
-}
-
-SOCK_CLEANUP;
diff --git a/testing/fulltests/unit-tests/T015int64_clib.c b/testing/fulltests/unit-tests/T015int64_clib.c
deleted file mode 100644
index 5f5f4b6..0000000
--- a/testing/fulltests/unit-tests/T015int64_clib.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* 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
deleted file mode 100644
index c11a591..0000000
--- a/testing/fulltests/unit-tests/T016read_config_clib.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* 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
deleted file mode 100644
index 4ab9cad..0000000
--- a/testing/fulltests/unit-tests/T017strtoull_clib.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* 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
deleted file mode 100644
index d6a92c9..0000000
--- a/testing/fulltests/unit-tests/T018read_config_capp.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 42ec8d3..0000000
--- a/testing/fulltests/unit-tests/T019_snmp_service_clib.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/* 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/fulltests/unit-tests/T101pdu_type_clib.c b/testing/fulltests/unit-tests/T101pdu_type_clib.c
deleted file mode 100644
index 771aa61..0000000
--- a/testing/fulltests/unit-tests/T101pdu_type_clib.c
+++ /dev/null
@@ -1,13 +0,0 @@
-/* HEADER PDU type descriptions */
-const char *pdu_description;
-pdu_description = snmp_pdu_type(SNMP_MSG_GET);
-OKF((strcmp(pdu_description, "GET") == 0),
-    ("SNMP GET PDU type did not return the expected identifier (GET): %s",
-     pdu_description));
-
-#ifdef NETSNMP_NO_WRITE_SUPPORT
-pdu_description = snmp_pdu_type(163);
-OKF((strcmp(pdu_description, "?0xA3?") == 0),
-    ("SNMP SET PDU type did not return the expected unknown identifier (?0xA3?): %s",
-     pdu_description));
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
diff --git a/testing/fulltests/unit-tests/T102pdu_build_clib.c b/testing/fulltests/unit-tests/T102pdu_build_clib.c
deleted file mode 100644
index 1fba69e..0000000
--- a/testing/fulltests/unit-tests/T102pdu_build_clib.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* HEADER PDU building */
-
-SOCK_STARTUP;
-
-netsnmp_pdu *pdu;
-u_char *packet;
-size_t packet_len, offset = 0;
-netsnmp_session session, *ss;
-int rc;
-
-/* prototype copied from snmp_api.c */
-int             snmp_build(u_char ** pkt, size_t * pkt_len,
-                           size_t * offset, netsnmp_session * pss,
-                           netsnmp_pdu *pdu);
-
-init_snmp("testing");
-snmp_sess_init(&session);
-session.version = SNMP_VERSION_2c;
-session.peername = strdup("udp:127.0.0.1"); /* we won't actually connect */
-session.community = (u_char *) strdup("bogus");
-session.community_len = strlen((char *) session.community);
-ss = snmp_open(&session);
-
-OKF((ss != NULL), ("Creating a session failed"));
-if (ss == NULL)
-    snmp_perror("ack");
-
-packet_len = 4096;
-packet = malloc(packet_len);
-
-pdu = snmp_pdu_create(SNMP_MSG_GET);
-pdu->version = session.version;
-
-OKF((pdu != NULL), ("Creating a GET PDU failed"));
-
-rc = snmp_build(&packet, &packet_len, &offset, ss, pdu);
-
-#ifndef NETSNMP_NOTIFY_ONLY
-OKF((rc == SNMPERR_SUCCESS),
-    ("Building a GET PDU/packet should have worked: %d", rc));
-#else /* NETSNMP_NOTIFY_ONLY */
-OKF((rc != SNMPERR_SUCCESS),
-    ("Building a GET PDU/packet should have failed: %d", rc));
-#endif /* NETSNMP_NOTIFY_ONLY */
-
-offset = 0;
-pdu->command = 163; /* a SET message */
-rc = snmp_build(&packet, &packet_len, &offset, ss, pdu);
-
-#ifndef NETSNMP_NO_WRITE_SUPPORT
-OKF((rc == SNMPERR_SUCCESS),
-    ("Building a SET PDU/packet should have succeeded: %d", rc));
-#else /* NETSNMP_NO_WRITE_SUPPORT */
-OKF((rc != SNMPERR_SUCCESS),
-    ("Building a SET PDU/packet should have failed: %d", rc));
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
-
-
-
-offset = 0;
-pdu->command = SNMP_MSG_INFORM;
-rc = snmp_build(&packet, &packet_len, &offset, ss, pdu);
-
-OKF((rc == SNMPERR_SUCCESS),
-    ("Building an INFORM PDU/packet should have succeed: %d", rc));
-
-SOCK_CLEANUP;
diff --git a/testing/fulltests/unit-tests/T103pdu_parse_clib.c b/testing/fulltests/unit-tests/T103pdu_parse_clib.c
deleted file mode 100644
index 8d5882d..0000000
--- a/testing/fulltests/unit-tests/T103pdu_parse_clib.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* HEADER Parsing of PDUs */
-netsnmp_pdu pdu;
-int rc;
-u_char data[] = { 
-    0xA2, 0x1D, 0x02, 0x04, 0x4E, 0x39,
-    0xB2, 0x8E, 0x02, 0x01, 0x00, 0x02, 0x01, 0x00,
-    0x30, 0x0F, 0x30, 0x0D, 0x06, 0x08, 0x2B, 0x06,
-    0x01, 0x02, 0x01, 0x01, 0x04, 0x00, 0x04, 0x01,
-    0x66
-};
-size_t data_length=sizeof(data);
-
-rc = snmp_pdu_parse(&pdu, data, &data_length);
-
-OKF((rc == 0), ("Parsing of a generic PDU failed"));
-
-#ifdef NETSNMP_NO_WRITE_SUPPORT
-data[0] = 0xA3; /* changes it to a SET pdu */
-rc = snmp_pdu_parse(&pdu, data, &data_length);
-
-OKF((rc != 0), ("Parsing of a generic SET PDU succeeded"));
-#endif /* NETSNMP_NO_WRITE_SUPPORT */
diff --git a/testing/keymanagetest.c b/testing/keymanagetest.c
new file mode 100644
index 0000000..394a29c
--- /dev/null
+++ b/testing/keymanagetest.c
@@ -0,0 +1,651 @@
+/*
+ * keymanagetest.c
+ *
+ * Expected SUCCESSes:  2 + 2 + 3 for all tests.
+ *
+ * Returns:
+ *      Number of FAILUREs.
+ * 
+ *
+ * FIX  Or how about passing a usmUser name and looking up the entry as
+ *      a means of getting key material?  This means the userList is
+ *      available from an application...
+ *
+ * ASSUMES  No key management functions return non-zero success codes.
+ *
+ * Test of generate_Ku().                       SUCCESSes: 2
+ * Test of generate_kul().                      SUCCESSes: 2
+ * Test of {encode,decode}_keychange().         SUCCESSes: 3
+ */
+
+static char    *rcsid = "$Id: keymanagetest.c 6918 2002-04-20 07:30:29Z hardaker $";        /* */
+
+#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 "keytools.h"
+#include "tools.h"
+#include "scapi.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][-aklu][-E <engineID>][-N <newkey>][-O <oldkey>][-P <passphrase>]"
+#define OPTIONLIST	"aqE:hklN:O:P:u"
+
+int             doalltests = 0, dogenKu = 0, dogenkul = 0, dokeychange = 0;
+
+#define	ALLOPTIONS	(doalltests + dogenKu + dogenkul + dokeychange)
+
+
+#define LOCAL_MAXBUF	(1024 * 8)
+#define NL		"\n"
+
+#define OUTPUTALWAYS(o)	fprintf(stdout, "\n\n%s\n\n", o);
+#define OUTPUT(o)	if (!bequiet) { OUTPUTALWAYS(o); }
+
+#define SUCCESS(s)					\
+{							\
+	if (!failcount && !bequiet)					\
+		fprintf(stdout, "\nSUCCESS: %s\n", s);	\
+}
+
+#define FAILED(e, f)					\
+{							\
+	if (e != SNMPERR_SUCCESS && !bequiet) {			\
+		fprintf(stdout, "\nFAILED: %s\n", f);	\
+		failcount += 1;				\
+	}						\
+}
+
+
+
+/*
+ * Test specific globals.
+ */
+#define	ENGINEID_DEFAULT	"1.2.3.4wild"
+#define PASSPHRASE_DEFAULT	"Clay's Conclusion: Creativity is great, " \
+					"but plagiarism is faster."
+#define OLDKEY_DEFAULT		"This is a very old key."
+#define NEWKEY_DEFAULT		"This key, on the other hand, is very new."
+
+char           *engineID = NULL;
+char           *passphrase = NULL;
+char           *oldkey = NULL;
+char           *newkey = NULL;
+int             bequiet = 0;
+
+
+/*
+ * Prototypes.
+ */
+void            usage(FILE * ofp);
+
+int             test_genkul(void);
+int             test_genKu(void);
+int             test_keychange(void);
+
+
+
+
+int
+main(int argc, char **argv)
+{
+    int             rval = SNMPERR_SUCCESS, failcount = 0;
+    char            ch;
+
+    local_progname = argv[0];
+    optarg = NULL;
+
+    /*
+     * Parse.
+     */
+    while ((ch = getopt(argc, argv, OPTIONLIST)) != EOF) {
+        switch (ch) {
+        case 'a':
+            doalltests = 1;
+            break;
+        case 'E':
+            engineID = optarg;
+            break;
+        case 'k':
+            dokeychange = 1;
+            break;
+        case 'l':
+            dogenkul = 1;
+            break;
+        case 'N':
+            newkey = optarg;
+            break;
+        case 'O':
+            oldkey = optarg;
+            break;
+        case 'P':
+            passphrase = optarg;
+            break;
+        case 'u':
+            dogenKu = 1;
+            break;
+        case 'q':
+            bequiet = 1;
+            break;
+        case 'h':
+            rval = 0;
+        default:
+            usage(stdout);
+            exit(rval);
+        }
+
+        argc -= 1;
+        argv += 1;
+        if (optarg) {
+            argc -= 1;
+            argv += 1;
+        }
+
+        optind = 1;
+        optarg = NULL;
+    }                           /* endwhile getopt */
+
+    if ((argc > 1)) {
+        usage(stdout);
+        exit(1000);
+
+    } else if (ALLOPTIONS != 1) {
+        usage(stdout);
+        exit(1000);
+    }
+
+
+    /*
+     * Test stuff.
+     */
+    rval = sc_init();
+    FAILED(rval, "sc_init().");
+
+    if (dogenKu || doalltests) {
+        failcount += test_genKu();
+    }
+    if (dogenkul || doalltests) {
+        failcount += test_genkul();
+    }
+    if (dokeychange || doalltests) {
+        failcount += test_keychange();
+    }
+
+
+    /*
+     * Cleanup.
+     */
+    rval = sc_shutdown(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_SHUTDOWN,
+                       NULL, NULL);
+    FAILED(rval, "sc_shutdown().");
+
+    return failcount;
+
+}                               /* end main() */
+
+
+
+
+
+void
+usage(FILE * ofp)
+{
+    fprintf(ofp,
+            USAGE
+            "" NL
+            "    -a			All tests." NL
+            "    -E [0x]<engineID>	snmpEngineID string."
+            NL
+            "    -k			Test {encode,decode}_keychange()."
+            NL
+            "    -l			generate_kul()."
+            NL
+            "    -h			Help."
+            NL
+            "    -N [0x]<newkey>	New key (for testing KeyChange TC)."
+            NL
+            "    -O [0x]<oldkey>	Old key (for testing KeyChange TC)."
+            NL
+            "    -P <passphrase>	Source string for usmUser master key."
+            NL
+            "    -u			generate_Ku()."
+            NL
+            "    -q			be quiet."
+            NL "" NL, local_progname);
+
+}                               /* end usage() */
+
+
+
+
+#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_genKu
+ *
+ * Returns:
+ *	Number of failures.
+ *
+ *
+ * Test generation of usmUser master key from a passphrase.
+ *
+ * ASSUMES  Passphrase is made of printable characters!
+ */
+int
+test_genKu(void)
+{
+    int             rval = SNMPERR_SUCCESS,
+        failcount = 0,
+        properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACMD5), kulen;
+    char           *hashname = "usmHMACMD5AuthProtocol.", *s;
+    u_char          Ku[LOCAL_MAXBUF];
+    oid            *hashtype = usmHMACMD5AuthProtocol;
+
+    OUTPUT("Test of generate_Ku --");
+
+    /*
+     * Set passphrase.
+     */
+    if (!passphrase) {
+        passphrase = PASSPHRASE_DEFAULT;
+    }
+    if (!bequiet)
+        fprintf(stdout, "Passphrase%s:\n\t%s\n\n",
+                (passphrase == PASSPHRASE_DEFAULT) ? " (default)" : "",
+                passphrase);
+
+
+  test_genKu_again:
+    memset(Ku, 0, LOCAL_MAXBUF);
+    kulen = LOCAL_MAXBUF;
+
+    rval = generate_Ku(hashtype, USM_LENGTH_OID_TRANSFORM,
+                       passphrase, strlen(passphrase), Ku, &kulen);
+    FAILED(rval, "generate_Ku().");
+
+    if (kulen != properlength) {
+        FAILED(SNMPERR_GENERR, "Ku length is wrong for this hashtype.");
+    }
+
+    binary_to_hex(Ku, kulen, &s);
+    if (!bequiet)
+        fprintf(stdout, "Ku (len=%d):  %s\n", kulen, s);
+    free_zero(s, kulen);
+
+    SUCCESS(hashname);
+    if (!bequiet)
+        fprintf(stdout, "\n");
+
+    if (hashtype == usmHMACMD5AuthProtocol) {
+        hashtype = usmHMACSHA1AuthProtocol;
+        hashname = "usmHMACSHA1AuthProtocol.";
+        properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACSHA1);
+        goto test_genKu_again;
+    }
+
+    return failcount;
+
+}                               /* end test_genKu() */
+
+
+
+
+/*******************************************************************-o-******
+ * test_genkul
+ *
+ * Returns:
+ *	Number of failures.
+ *
+ *
+ * Test of generate_kul().
+ *
+ * A passphrase and engineID are hashed into a master key Ku using
+ * both known hash transforms.  Localized keys, also using both hash
+ * transforms, are generated from each of these master keys.
+ *
+ * ASSUME  generate_Ku is already tested.
+ * ASSUME  engineID is initially a NULL terminated string.
+ */
+int
+test_genkul(void)
+{
+    int             rval = SNMPERR_SUCCESS,
+        failcount = 0,
+        properlength, kulen, kul_len, engineID_len, isdefault = FALSE;
+
+    char           *s = NULL,
+        *testname = "Using HMACMD5 to create master key.",
+        *hashname_Ku = "usmHMACMD5AuthProtocol", *hashname_kul;
+
+    u_char          Ku[LOCAL_MAXBUF], kul[LOCAL_MAXBUF];
+
+    oid            *hashtype_Ku = usmHMACMD5AuthProtocol, *hashtype_kul;
+
+    OUTPUT("Test of generate_kul --");
+
+
+    /*
+     * Set passphrase and engineID.
+     *
+     * If engineID begins with 0x, assume it is written in (printable)
+     * hex and convert it to binary data.
+     */
+    if (!passphrase) {
+        passphrase = PASSPHRASE_DEFAULT;
+    }
+    if (!bequiet)
+        fprintf(stdout, "Passphrase%s:\n\t%s\n\n",
+                (passphrase == PASSPHRASE_DEFAULT) ? " (default)" : "",
+                passphrase);
+
+    if (!engineID) {
+        engineID = ENGINEID_DEFAULT;
+        isdefault = TRUE;
+    }
+
+    engineID_len = strlen(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;
+        binary_to_hex(engineID, engineID_len, &s);
+    }
+
+    if (!bequiet)
+        fprintf(stdout, "engineID%s (len=%d):  %s\n\n",
+                (isdefault) ? " (default)" : "",
+                engineID_len, (s) ? s : engineID);
+    if (s) {
+        SNMP_FREE(s);
+    }
+
+
+
+    /*
+     * Create a master key using both hash transforms; create localized
+     * keys using both hash transforms from each master key.
+     */
+  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);
+    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);
+    free_zero(s, kulen);
+
+
+  test_genkul_again_local:
+    memset(kul, 0, LOCAL_MAXBUF);
+    kul_len = LOCAL_MAXBUF;
+
+    rval = generate_kul(hashtype_kul, USM_LENGTH_OID_TRANSFORM,
+                        engineID, engineID_len, Ku, kulen, kul, &kul_len);
+
+    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.");
+        }
+
+    } else {
+        FAILED(rval, "generate_kul().");
+
+        if (kul_len != properlength) {
+            FAILED(SNMPERR_GENERR,
+                   "kul length is wrong for the given hashtype.");
+        }
+
+        binary_to_hex(kul, kul_len, &s);
+        fprintf(stdout, "kul (%s) (len=%d):  %s\n",
+                ((hashtype_Ku == usmHMACMD5AuthProtocol) ? "MD5" : "SHA"),
+                kul_len, s);
+        free_zero(s, kul_len);
+    }
+
+
+    /*
+     * Create localized key using the other hash transform, but from
+     * * the same master key.
+     */
+    if (hashtype_kul == usmHMACMD5AuthProtocol) {
+        hashtype_kul = usmHMACSHA1AuthProtocol;
+        hashname_kul = "usmHMACSHA1AuthProtocol";
+        properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACSHA1);
+        goto test_genkul_again_local;
+    }
+
+    SUCCESS(testname);
+
+
+    /*
+     * Re-create the master key using the other hash transform.
+     */
+    if (hashtype_Ku == usmHMACMD5AuthProtocol) {
+        hashtype_Ku = usmHMACSHA1AuthProtocol;
+        hashname_Ku = "usmHMACSHA1AuthProtocol";
+        testname = "Using HMACSHA1 to create master key.";
+        goto test_genkul_again_master;
+    }
+
+    return failcount;
+
+}                               /* end test_genkul() */
+
+
+
+
+/*******************************************************************-o-******
+ * test_keychange
+ *
+ * Returns:
+ *	Number of failures.
+ *
+ *
+ * Test of KeyChange TC implementation.
+ *
+ * ASSUME newkey and oldkey begin as NULL terminated strings.
+ */
+int
+test_keychange(void)
+{
+    int             rval = SNMPERR_SUCCESS,
+        failcount = 0,
+        properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACMD5),
+        oldkey_len,
+        newkey_len,
+        keychange_len,
+        temp_len, isdefault_new = FALSE, isdefault_old = FALSE;
+
+    char           *hashname = "usmHMACMD5AuthProtocol.", *s;
+
+    u_char          oldkey_buf[LOCAL_MAXBUF],
+        newkey_buf[LOCAL_MAXBUF],
+        temp_buf[LOCAL_MAXBUF], keychange_buf[LOCAL_MAXBUF];
+
+    oid            *hashtype = usmHMACMD5AuthProtocol;
+
+    OUTPUT("Test of KeyChange TC --");
+
+
+    /*
+     * Set newkey and oldkey.
+     */
+    if (!newkey) {              /* newkey */
+        newkey = NEWKEY_DEFAULT;
+        isdefault_new = TRUE;
+    }
+    newkey_len = strlen(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);
+    }
+
+    if (!oldkey) {              /* oldkey */
+        oldkey = OLDKEY_DEFAULT;
+        isdefault_old = TRUE;
+    }
+    oldkey_len = strlen(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;
+        binary_to_hex(oldkey, oldkey_len, &s);
+    }
+
+
+
+  test_keychange_again:
+    memset(oldkey_buf, 0, LOCAL_MAXBUF);
+    memset(newkey_buf, 0, LOCAL_MAXBUF);
+    memset(keychange_buf, 0, LOCAL_MAXBUF);
+    memset(temp_buf, 0, LOCAL_MAXBUF);
+
+    memcpy(oldkey_buf, oldkey, SNMP_MIN(oldkey_len, properlength));
+    memcpy(newkey_buf, newkey, SNMP_MIN(newkey_len, properlength));
+    keychange_len = LOCAL_MAXBUF;
+
+
+    binary_to_hex(oldkey_buf, properlength, &s);
+    fprintf(stdout, "\noldkey%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",
+            (isdefault_new) ? " (default)" : "", properlength, s);
+    SNMP_FREE(s);
+
+
+    rval = encode_keychange(hashtype, USM_LENGTH_OID_TRANSFORM,
+                            oldkey_buf, properlength,
+                            newkey_buf, properlength,
+                            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.");
+    }
+
+    binary_to_hex(keychange_buf, keychange_len, &s);
+    fprintf(stdout, "(%s) KeyChange string:  %s\n\n",
+            ((hashtype == usmHMACMD5AuthProtocol) ? "MD5" : "SHA"), s);
+    SNMP_FREE(s);
+
+    temp_len = properlength;
+    rval = decode_keychange(hashtype, USM_LENGTH_OID_TRANSFORM,
+                            oldkey_buf, properlength,
+                            keychange_buf, properlength * 2,
+                            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.");
+    }
+
+    binary_to_hex(temp_buf, temp_len, &s);
+    fprintf(stdout, "decoded newkey:  %s\n\n", s);
+    SNMP_FREE(s);
+
+
+    if (memcmp(newkey_buf, temp_buf, temp_len)) {
+        FAILED(SNMPERR_GENERR, "newkey did not decode properly.");
+    }
+
+
+    SUCCESS(hashname);
+    fprintf(stdout, "\n");
+
+
+    /*
+     * Multiplex different test combinations.
+     *
+     * First clause is for Test #2, second clause is for (last) Test #3.
+     */
+    if (hashtype == usmHMACMD5AuthProtocol) {
+        hashtype = usmHMACSHA1AuthProtocol;
+        hashname = "usmHMACSHA1AuthProtocol (w/DES length kul's).";
+        properlength = BYTESIZE(SNMP_TRANS_PRIVLEN_1DES)
+            + BYTESIZE(SNMP_TRANS_PRIVLEN_1DES_IV);
+        goto test_keychange_again;
+
+    } else if (properlength < BYTESIZE(SNMP_TRANS_AUTHLEN_HMACSHA1)) {
+        hashtype = usmHMACSHA1AuthProtocol;
+        hashname = "usmHMACSHA1AuthProtocol.";
+        properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACSHA1);
+        goto test_keychange_again;
+    }
+
+    return failcount;
+
+}                               /* end test_keychange() */
diff --git a/testing/misctest.c b/testing/misctest.c
new file mode 100644
index 0000000..e86beef
--- /dev/null
+++ b/testing/misctest.c
@@ -0,0 +1,266 @@
+/*
+ * misctest.c
+ *
+ * Expected SUCCESSes for all tests:    0
+ *
+ * Returns:
+ *      Number of FAILUREs.
+ *
+ * Test of dump_snmpEngineID().                 SUCCESSes:  0
+ */
+
+static char    *rcsid = "$Id: misctest.c 15220 2006-09-15 00:48:50Z tanders $";     /* */
+
+#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/scapitest.c b/testing/scapitest.c
new file mode 100644
index 0000000..9d6305e
--- /dev/null
+++ b/testing/scapitest.c
@@ -0,0 +1,489 @@
+/*
+ * scapitest.c
+ *
+ * Expected SUCCESSes:  2 + 10 + 1 for all tests.
+ *
+ * Returns:
+ *      Number of FAILUREs.
+ *
+ *
+ * ASSUMES  No key management functions return non-zero success codes.
+ *
+ * XXX  Split into individual modules?
+ * XXX  Error/fringe conditions should be tested.
+ *
+ *
+ * Test of sc_random.                                           SUCCESSes: 2.
+ *      REQUIRES a human to spot check for obvious non-randomness...
+ *
+ * Test of sc_generate_keyed_hash and sc_check_keyed_hash.      SUCCESSes: 10.
+ *
+ * Test of sc_encrypt and sc_decrypt.                           SUCCESSes: 1.
+ */
+
+static char    *rcsid = "$Id: scapitest.c 6918 2002-04-20 07:30:29Z hardaker $";    /* */
+
+
+#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 "keytools.h"
+#include "tools.h"
+#include "scapi.h"
+#include "transform_oids.h"
+#include "callback.h"
+
+#include <stdlib.h>
+
+extern char    *optarg;
+extern int      optind, optopt, opterr;
+
+#define DEBUG                   /* */
+
+
+
+/*
+ * Globals, &c...
+ */
+char           *local_progname;
+
+#define USAGE	"Usage: %s [-h][-acHr]"
+#define OPTIONLIST	"achHr"
+
+int             doalltests = 0, docrypt = 0, dokeyedhash = 0, dorandom = 0;
+
+#define	ALLOPTIONS	(doalltests + docrypt + dokeyedhash + dorandom)
+
+
+
+#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 BIGSTRING							\
+    "   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"	\
+    "of the sea, the beacons flashing on the shore, together make"	\
+    "a prism which is marvellously calculated to entertain but not"	\
+    "fatigue the eye.  The lofty ships with their complex webs of"	\
+    "rigging, swayed to and fro by the swell in harmonious dance,"	\
+    "all help to maintain a taste for rhythm and beauty in the"		\
+    "mind.  And above all there is a mysterious, aristrocratic kind"	\
+    "of pleasure to be had, for those who have lost all curiosity"	\
+    "or ambition, as they strech on the belvedere or lean over the"	\
+    "mole to watch the arrivals and departures of other men, those"	\
+    "who still have sufficient strength of purpose in them, the"	\
+    "urge to travel or enrich themselves."				\
+    "	-- 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 MLCOUNT_MAX	6       /* MAC Length Count Maximum. */
+
+
+
+/*
+ * Prototypes.
+ */
+void            usage(FILE * ofp);
+
+int             test_docrypt(void);
+int             test_dokeyedhash(void);
+int             test_dorandom(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 'a':
+            doalltests = 1;
+            break;
+        case 'c':
+            docrypt = 1;
+            break;
+        case 'H':
+            dokeyedhash = 1;
+            break;
+        case 'r':
+            dorandom = 1;
+            break;
+        case 'h':
+            rval = 0;
+        default:
+            usage(stdout);
+            exit(rval);
+        }
+
+        argc -= 1;
+        argv += 1;
+        optind = 1;
+    }                           /* endwhile getopt */
+
+    if ((argc > 1)) {
+        usage(stdout);
+        exit(1000);
+
+    } else if (ALLOPTIONS != 1) {
+        usage(stdout);
+        exit(1000);
+    }
+
+
+    /*
+     * Test stuff.
+     */
+    rval = sc_init();
+    FAILED(rval, "sc_init().");
+
+
+    if (docrypt || doalltests) {
+        failcount += test_docrypt();
+    }
+    if (dokeyedhash || doalltests) {
+        failcount += test_dokeyedhash();
+    }
+    if (dorandom || doalltests) {
+        failcount += test_dorandom();
+    }
+
+
+    /*
+     * Cleanup.
+     */
+    rval = sc_shutdown(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_SHUTDOWN,
+                       NULL, NULL);
+    FAILED(rval, "sc_shutdown().");
+
+    return failcount;
+
+}                               /* end main() */
+
+
+
+
+
+void
+usage(FILE * ofp)
+{
+    fprintf(ofp,
+            USAGE
+            "" NL
+            "	-a		All tests." NL
+            "	-c		Test of sc_encrypt()/sc_decrypt()."
+            NL
+            "	-h		Help."
+            NL
+            "	-H              Test sc_{generate,check}_keyed_hash()."
+            NL
+            "	-r              Test sc_random()."
+            NL "" NL, local_progname);
+
+}                               /* end usage() */
+
+
+
+
+#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
+ *
+ * One large request, one set of short requests.
+ *
+ * Returns:
+ *	Number of failures.
+ *
+ * XXX	probably should split up into individual options.
+ */
+int
+test_dorandom(void)
+{
+    int             rval = SNMPERR_SUCCESS,
+        failcount = 0,
+        origrequest = (1024 * 2),
+        origrequest_short = 19, nbytes = origrequest, shortcount = 7, i;
+    char            buf[LOCAL_MAXBUF];
+
+    OUTPUT("Random test -- large request:");
+
+    rval = sc_random(buf, &nbytes);
+    FAILED(rval, "sc_random().");
+
+    if (nbytes != origrequest) {
+        FAILED(SNMPERR_GENERR,
+               "sc_random() returned different than requested.");
+    }
+
+    dump_chunk("scapitest", NULL, buf, nbytes);
+
+    SUCCESS("Random test -- large request.");
+
+
+    OUTPUT("Random test -- short requests:");
+    origrequest_short = 16;
+
+    for (i = 0; i < shortcount; i++) {
+        nbytes = origrequest_short;
+        rval = sc_random(buf, &nbytes);
+        FAILED(rval, "sc_random().");
+
+        if (nbytes != origrequest_short) {
+            FAILED(SNMPERR_GENERR,
+                   "sc_random() returned different " "than requested.");
+        }
+
+        dump_chunk("scapitest", NULL, buf, nbytes);
+    }                           /* endfor */
+
+    SUCCESS("Random test -- short requests.");
+
+
+    return failcount;
+
+}                               /* end test_dorandom() */
+
+
+
+/*******************************************************************-o-******
+ * test_dokeyedhash
+ *
+ * Returns:
+ *	Number of failures.
+ *
+ *
+ * Test keyed hashes with a variety of MAC length requests.
+ *
+ *
+ * NOTE Both tests intentionally use the same secret
+ *
+ * FIX	Get input or output from some other package which hashes...
+ * XXX	Could cut this in half with a little indirection...
+ */
+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. */
+
+    u_int           hashbuf_len[MLCOUNT_MAX] = {
+        LOCAL_MAXBUF,
+        BYTESIZE(SNMP_TRANS_AUTHLEN_HMACSHA1),
+        BYTESIZE(SNMP_TRANS_AUTHLEN_HMACMD5),
+        BYTESIZE(SNMP_TRANS_AUTHLEN_HMAC96),
+        7,
+        0,
+    };
+
+    u_char          hashbuf[LOCAL_MAXBUF];
+    char           *s;
+
+  test_dokeyedhash_again:
+
+    OUTPUT("Keyed hash test using MD5 --");
+
+    memset(hashbuf, 0, LOCAL_MAXBUF);
+    hblen = hashbuf_len[mlcount];
+    properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACMD5);
+
+    rval =
+        sc_generate_keyed_hash(usmHMACMD5AuthProtocol,
+                               USM_LENGTH_OID_TRANSFORM, BIGSECRET,
+                               secret_len, BIGSTRING, bigstring_len,
+                               hashbuf, &hblen);
+    FAILED(rval, "sc_generate_keyed_hash().");
+
+    if (hashbuf_len[mlcount] > properlength) {
+        if (hblen != properlength) {
+            FAILED(SNMPERR_GENERR, "Wrong MD5 hash length returned.  (1)");
+        }
+
+    } else if (hblen != hashbuf_len[mlcount]) {
+        FAILED(SNMPERR_GENERR, "Wrong MD5 hash length returned.  (2)");
+    }
+
+    rval =
+        sc_check_keyed_hash(usmHMACMD5AuthProtocol,
+                            USM_LENGTH_OID_TRANSFORM, BIGSECRET,
+                            secret_len, BIGSTRING, bigstring_len, hashbuf,
+                            hblen);
+    FAILED(rval, "sc_check_keyed_hash().");
+
+    binary_to_hex(hashbuf, hblen, &s);
+    fprintf(stdout, "hash buffer (len=%d, request=%d):   %s\n",
+            hblen, hashbuf_len[mlcount], s);
+    SNMP_FREE(s);
+
+    SUCCESS("Keyed hash test using MD5.");
+
+
+
+    OUTPUT("Keyed hash test using SHA1 --");
+
+    memset(hashbuf, 0, LOCAL_MAXBUF);
+    hblen = hashbuf_len[mlcount];
+    properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACSHA1);
+
+    rval =
+        sc_generate_keyed_hash(usmHMACSHA1AuthProtocol,
+                               USM_LENGTH_OID_TRANSFORM, BIGSECRET,
+                               secret_len, BIGSTRING, bigstring_len,
+                               hashbuf, &hblen);
+    FAILED(rval, "sc_generate_keyed_hash().");
+
+    if (hashbuf_len[mlcount] > properlength) {
+        if (hblen != properlength) {
+            FAILED(SNMPERR_GENERR,
+                   "Wrong SHA1 hash length returned.  (1)");
+        }
+
+    } else if (hblen != hashbuf_len[mlcount]) {
+        FAILED(SNMPERR_GENERR, "Wrong SHA1 hash length returned.  (2)");
+    }
+
+    rval =
+        sc_check_keyed_hash(usmHMACSHA1AuthProtocol,
+                            USM_LENGTH_OID_TRANSFORM, BIGSECRET,
+                            secret_len, BIGSTRING, bigstring_len, hashbuf,
+                            hblen);
+    FAILED(rval, "sc_check_keyed_hash().");
+
+    binary_to_hex(hashbuf, hblen, &s);
+    fprintf(stdout, "hash buffer (len=%d, 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.
+     */
+    if (hashbuf_len[++mlcount] != 0) {
+        goto test_dokeyedhash_again;
+    }
+
+
+    return failcount;
+
+}                               /* end test_dokeyedhash() */
+
+
+
+
+
+/*******************************************************************-o-******
+ * test_docrypt
+ *
+ * Returns:
+ *	Number of failures.
+ */
+int
+test_docrypt(void)
+{
+    int             rval = SNMPERR_SUCCESS,
+        failcount = 0,
+        bigstring_len = strlen(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;
+
+    char            buf[LOCAL_MAXBUF],
+        cryptbuf[LOCAL_MAXBUF], secret[LOCAL_MAXBUF], iv[LOCAL_MAXBUF];
+
+    OUTPUT("Test 1DES-CBC --");
+
+
+    memset(buf, 0, LOCAL_MAXBUF);
+
+    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().");
+
+    rval = sc_decrypt(usmDESPrivProtocol, USM_LENGTH_OID_TRANSFORM,
+                      secret, secret_len,
+                      iv, iv_len, cryptbuf, cryptbuf_len, buf, &buf_len);
+    FAILED(rval, "sc_decrypt().");
+
+    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.");
+    }
+
+
+    SUCCESS("Test 1DES-CBC --");
+
+    return failcount;
+
+}                               /* end test_docrypt() */
diff --git a/testing/test_keychange.sh b/testing/test_keychange.sh
new file mode 100755
index 0000000..9259fe5
--- /dev/null
+++ b/testing/test_keychange.sh
@@ -0,0 +1,71 @@
+#!/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
new file mode 100755
index 0000000..70b7b76
--- /dev/null
+++ b/testing/test_kul.sh
@@ -0,0 +1,78 @@
+#!/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/fulltests/default/Sv1config b/testing/tests/Sv1config
similarity index 100%
rename from testing/fulltests/default/Sv1config
rename to testing/tests/Sv1config
diff --git a/testing/fulltests/default/Sv2cconfig b/testing/tests/Sv2cconfig
similarity index 100%
rename from testing/fulltests/default/Sv2cconfig
rename to testing/tests/Sv2cconfig
diff --git a/testing/tests/Sv3config b/testing/tests/Sv3config
new file mode 100644
index 0000000..43a7fb2
--- /dev/null
+++ b/testing/tests/Sv3config
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+[ "x$SNMP_SMUX_SOCKET" = "x" ] && SNMP_SMUX_SOCKET=1.0.0.0
+
+CONFIGAGENT [snmp] persistentdir $SNMP_TMP_PERSISTENTDIR
+CONFIGAGENT smuxsocket $SNMP_SMUX_SOCKET
+
+# XXX: auto-switch to a supported protocol instead.
+if test "x$DEFAUTHTYPE" = "x"; then
+    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
+	DEFAUTHTYPE="SHA"
+    else
+	    DEFAUTHTYPE="MD5"
+    fi
+fi
+
+if test "x$DEFPRIVTYPE" = "x"; then
+  # XXX: HAVE_AES depends on cpp logic, so we need to test for lower-level stuff
+  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
+    if grep '^#define HAVE_OPENSSL_AES_H 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null ; then
+      if grep '^#define HAVE_AES_CFB128_ENCRYPT 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null ; then
+        DEFPRIVTYPE="AES"
+      else
+        DEFPRIVTYPE="DES"
+      fi
+    else
+      DEFPRIVTYPE="DES"
+    fi
+  else
+    DEFPRIVTYPE=""
+  fi
+fi
+
+CONFIGAGENT createUser initial $DEFAUTHTYPE initial_test_pass_auth $DEFPRIVTYPE
+CONFIGAGENT createUser template $DEFAUTHTYPE template_test_pass_auth $DEFPRIVTYPE
+CONFIGAGENT rwuser initial noauth
+CONFIGAGENT rwuser newtestuser
+
+NOAUTHTESTARGS="-l nanp -u initial -v 3"
+AUTHTESTARGS="-l anp -u initial -v 3 -a $DEFAUTHTYPE -A initial_test_pass_auth"
+PRIVTESTARGS="-l ap -u initial -v 3 -a $DEFAUTHTYPE -A initial_test_pass_auth -x $DEFPRIVTYPE -X initial_test_pass_auth"
+
+AUTHNOPASSTESTARGS="-l anp -u initial -v 3 -a $DEFAUTHTYPE"
+PRIVNOPASSTESTARGS="-l ap -u initial -v 3 -a $DEFAUTHTYPE -x $DEFPRIVTYPE"
diff --git a/testing/fulltests/default/Sv3usmconfigagent b/testing/tests/Sv3usmconfigagent
similarity index 100%
rename from testing/fulltests/default/Sv3usmconfigagent
rename to testing/tests/Sv3usmconfigagent
diff --git a/testing/tests/Sv3usmconfigbase b/testing/tests/Sv3usmconfigbase
new file mode 100644
index 0000000..f241894
--- /dev/null
+++ b/testing/tests/Sv3usmconfigbase
@@ -0,0 +1,94 @@
+#!/bin/sh
+#
+# SNMPv3 base config
+#
+# Input+Output variables:
+#   DEFSECURITYLEVEL         noAuthNoPriv|authNoPriv|authPriv
+#   DEFAUTHTYPE              MD5|SHA
+#   DEFPRIVTYPE              DES|AES
+#   TESTNOAUTHUSER           <myuser>
+#   TEST(AUTH|PRIV)USER[2]   <myuser>
+#   TEST(AUTH|PRIV)PASS[2]   <mypass>
+#
+# Input variables:
+#   CREATEUSERENGINEID       <engineid>
+#
+# Output variables:
+#   CREATEAUTHUSER[2]
+#   CREATEPRIVUSER[2]
+#   CREATENOAUTHUSER
+#   TESTNOAUTHARGS
+#   TESTAUTHARGS[NOPASS][2]
+#   TESTPRIVARGS[NOPASS][2]
+#
+
+## Defaults
+[ "x$DEFSECURITYLEVEL" = "x" ] && DEFSECURITYLEVEL=authPriv
+
+## 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
+else
+  # MD5 is always available internally
+  MAXAUTHTYPE=MD5
+fi
+
+## auto-probe best priv type
+# XXX: HAVE_AES depends on cpp logic, so we need to test for lower-level stuff
+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
+  if grep '^#define HAVE_OPENSSL_AES_H 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null && \
+   grep '^#define HAVE_AES_CFB128_ENCRYPT 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=DES
+  fi
+else
+    MAXPRIVTYPE=""
+fi
+
+CREATEUSERCMD="createUser"
+[ "x$CREATEUSERENGINEID" != "x" ] && CREATEUSERCMD="$CREATEUSERCMD -e $CREATEUSERENGINEID"
+
+## auth setup
+if [ "x$DEFSECURITYLEVEL" = "xauthPriv" -o "x$DEFSECURITYLEVEL" = "xauthNoPriv" ]; then
+  [ "x$MAXAUTHTYPE" = "x" ] && SKIP
+  [ "x$DEFAUTHTYPE" = "xSHA" -a "x$MAXAUTHTYPE" != "xSHA" ] && SKIP
+  [ "x$DEFAUTHTYPE" = "x" ] && DEFAUTHTYPE=$MAXAUTHTYPE
+  # user/pass setup (XXX: randomize)
+  [ "x$TESTAUTHUSER" = "x" ] && TESTAUTHUSER=initial_auth
+  [ "x$TESTAUTHUSER2" = "x" ] && TESTAUTHUSER2=template_auth
+  [ "x$TESTAUTHPASS" = "x" ] && TESTAUTHPASS=initial_test_pass_auth
+  [ "x$TESTAUTHPASS2" = "x" ] && TESTAUTHPASS2=template_test_pass_auth
+  CREATEAUTHUSER="$CREATEUSERCMD $TESTAUTHUSER $DEFAUTHTYPE $TESTAUTHPASS"
+  CREATEAUTHUSER2="$CREATEUSERCMD $TESTAUTHUSER2 $DEFAUTHTYPE $TESTAUTHPASS2"
+  # command args
+  TESTAUTHARGSNOPASS="-v 3 -l anp -u $TESTAUTHUSER -a $DEFAUTHTYPE"
+  TESTAUTHARGSNOPASS2="-v 3 -l anp -u $TESTAUTHUSER2 -a $DEFAUTHTYPE"
+  TESTAUTHARGS="$TESTAUTHARGSNOPASS -A $TESTAUTHPASS"
+  TESTAUTHARGS2="$TESTAUTHARGSNOPASS2 -A $TESTAUTHPASS2"
+fi
+
+## priv setup
+if [ "x$DEFSECURITYLEVEL" = "xauthPriv" ]; then
+  [ "x$MAXPRIVTYPE" = "x" ] && SKIP
+  [ "x$DEFPRIVTYPE" = "xAES" -a "x$MAXPRIVTYPE" != "xAES" ] && SKIP
+  [ "x$DEFPRIVTYPE" = "x" ] && DEFPRIVTYPE=$MAXPRIVTYPE
+  # user/pass setup (XXX: randomize)
+  [ "x$TESTPRIVUSER" = "x" ] && TESTPRIVUSER=initial_priv
+  [ "x$TESTPRIVUSER2" = "x" ] && TESTPRIVUSER2=template_priv
+  [ "x$TESTPRIVPASS" = "x" ] && TESTPRIVPASS=initial_test_pass_priv
+  [ "x$TESTPRIVPASS2" = "x" ] && TESTPRIVPASS2=template_test_pass_priv
+  CREATEPRIVUSER="$CREATEUSERCMD $TESTPRIVUSER $DEFAUTHTYPE $TESTAUTHPASS $DEFPRIVTYPE $TESTPRIVPASS"
+  CREATEPRIVUSER2="$CREATEUSERCMD $TESTPRIVUSER2 $DEFAUTHTYPE $TESTAUTHPASS2 $DEFPRIVTYPE $TESTPRIVPASS2"
+  # command args
+  TESTPRIVARGSNOPASS="-v 3 -l ap -u $TESTPRIVUSER -a $DEFAUTHTYPE -x $DEFPRIVTYPE"
+  TESTPRIVARGSNOPASS2="-v 3 -l ap -u $TESTPRIVUSER2 -a $DEFAUTHTYPE -x $DEFPRIVTYPE"
+  TESTPRIVARGS="$TESTPRIVARGSNOPASS -A $TESTAUTHPASS -X $TESTPRIVPASS"
+  TESTPRIVARGS2="$TESTPRIVARGSNOPASS2 -A $TESTAUTHPASS2 -X $TESTPRIVPASS2"
+fi
+
+## noauth setup
+[ "x$TESTNOAUTHUSER" = "x" ] && TESTNOAUTHUSER=initial
+TESTNOAUTHARGS="-v 3 -l nanp -u $TESTNOAUTHUSER"
+CREATENOAUTHUSER="$CREATEUSERCMD $TESTNOAUTHUSER"
+
diff --git a/testing/fulltests/default/Sv3usmconfigtrapd b/testing/tests/Sv3usmconfigtrapd
similarity index 100%
rename from testing/fulltests/default/Sv3usmconfigtrapd
rename to testing/tests/Sv3usmconfigtrapd
diff --git a/testing/tests/Sv3vacmconfig b/testing/tests/Sv3vacmconfig
new file mode 100644
index 0000000..3d7bf95
--- /dev/null
+++ b/testing/tests/Sv3vacmconfig
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+# generically set up the user "initial1" and "initial2"  for snmp v3
+# access to the agent.
+
+# Configuration:
+#initial1 can access .1.3.6.1.2.1.1.1, deny others
+#initial2 can access all except .1.3.6.1.2.1.1.1 
+
+# XXX: do autoselection of supported algorithms
+SKIPIF NETSNMP_DISABLE_MD5
+SKIPIF NETSNMP_DISABLE_DES
+
+CONFIGAGENT [snmp] persistentdir $SNMP_TMP_PERSISTENTDIR
+
+CONFIGAGENT createUser initial1 MD5 initial_test_pass_auth DES
+CONFIGAGENT createUser initial2 MD5 initial_test_pass_auth DES
+
+
+CONFIGAGENT group   testcommunitygroup1  usm     initial1
+CONFIGAGENT group   testcommunitygroup2  usm     initial2
+
+CONFIGAGENT view    system1     included .1.3.6.1.2.1.1.1 
+CONFIGAGENT view    system2     included .1
+CONFIGAGENT view    system2     excluded .1.3.6.1.2.1.1.1 
+CONFIGAGENT 'access  testcommunitygroup1  "" any auth exact system1 none none'
+CONFIGAGENT 'access  testcommunitygroup2  "" any auth exact system2 none none'
+
diff --git a/testing/tests/Svacmconfig b/testing/tests/Svacmconfig
new file mode 100644
index 0000000..cdcc35b
--- /dev/null
+++ b/testing/tests/Svacmconfig
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+# standard V1 configuration: testcommunity1 testcommunity2
+# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied
+# generically set up the community "testcommunity1 and testcommunity2" for various snmp
+# version access to the agent.
+
+if [ "x$snmp_version" = "x" ]; then
+  snmp_version="any"
+fi
+
+CONFIGAGENT [snmp] persistentdir $SNMP_TMP_PERSISTENTDIR
+
+CONFIGAGENT rocommunity testrocommunity 127.0.0.1 .1.3.6.1.2.1.1.5.0
+CONFIGAGENT rwcommunity testrwcommunity 127.0.0.1 .1.3.6.1.2.1.1.5.0
+
+CONFIGAGENT com2sec testcommunitysec1  default testcommunity1
+CONFIGAGENT com2sec testcommunitysec2  default testcommunity2
+
+if [ "$SNMP_TRANSPORT_SPEC" = "udp6" -o "$SNMP_TRANSPORT_SPEC" = "tcp6" ];then 
+CONFIGAGENT com2sec6 testcommunitysec1  default testcommunity1
+CONFIGAGENT com2sec6 testcommunitysec2  default testcommunity2
+fi
+
+if [ "$SNMP_TRANSPORT_SPEC" = "unix" ];then 
+CONFIGAGENT com2secunix testcommunitysec1  testcommunity1
+CONFIGAGENT com2secunix testcommunitysec2  testcommunity2
+fi
+
+CONFIGAGENT group   testcommunitygroup1  $snmp_version     testcommunitysec1
+CONFIGAGENT group   testcommunitygroup2  $snmp_version     testcommunitysec2
+
+CONFIGAGENT view    system1     included .1.3.6.1.2.1.1.1 
+CONFIGAGENT view    system2     included .1
+CONFIGAGENT view    system2     excluded .1.3.6.1.2.1.1.1 
+CONFIGAGENT 'access  testcommunitygroup1  "" any noauth exact system1 none none'
+CONFIGAGENT 'access  testcommunitygroup2  "" any noauth exact system2 none none'
+
diff --git a/testing/tests/Svanyconfig b/testing/tests/Svanyconfig
new file mode 100644
index 0000000..ad4d3b5
--- /dev/null
+++ b/testing/tests/Svanyconfig
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# generically set up the community "testcommunity" for various snmp
+# version access to the agent.
+
+if [ "x$snmp_version" = "x" ]; then
+  snmp_version="any"
+fi
+
+[ "x$SNMP_SMUX_SOCKET" = "x" ] && SNMP_SMUX_SOCKET=1.0.0.0
+
+CONFIGAGENT [snmp] persistentdir $SNMP_TMP_PERSISTENTDIR
+CONFIGAGENT smuxsocket $SNMP_SMUX_SOCKET
+
+CONFIGAGENT com2sec testcommunitysec  default testcommunity
+if [ "$SNMP_TRANSPORT_SPEC" = "udp6" -o "$SNMP_TRANSPORT_SPEC" = "tcp6" ];then 
+	CONFIGAGENT com2sec6 testcommunitysec  default testcommunity
+fi
+
+if [ "$SNMP_TRANSPORT_SPEC" = "unix" ];then 
+	CONFIGAGENT com2secunix testcommunitysec  testcommunity
+fi
+
+CONFIGAGENT group   testcommunitygroup  $snmp_version     testcommunitysec
+CONFIGAGENT view    all     included .1 80
+CONFIGAGENT 'access  testcommunitygroup  "" any noauth exact all none none'
diff --git a/testing/tests/T001snmpv1get b/testing/tests/T001snmpv1get
new file mode 100644
index 0000000..22cb060
--- /dev/null
+++ b/testing/tests/T001snmpv1get
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv1 support
+
+SKIPIF NETSNMP_DISABLE_SNMPV1
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# standard V1 configuration: testcomunnity
+. ./Sv1config
+
+STARTAGENT
+
+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.3.0"
+
+CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+CAPTURE "snmpgetnext -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3"
+
+CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+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.3.1"
+
+CHECKORDIE "Error in packet"
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c notavalidcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+
+CHECKORDIE "Timeout"
+
+STOPAGENT
+
+FINISHED
diff --git a/testing/tests/T014snmpv2cget b/testing/tests/T014snmpv2cget
new file mode 100644
index 0000000..271f978
--- /dev/null
+++ b/testing/tests/T014snmpv2cget
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv2c get of system.sysUpTime.0
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# standard V2C configuration: testcomunnity
+. ./Sv2cconfig
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 2c $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/testing/tests/T015snmpv2cgetnext b/testing/tests/T015snmpv2cgetnext
new file mode 100644
index 0000000..6c3fdf6
--- /dev/null
+++ b/testing/tests/T015snmpv2cgetnext
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv2c getnext of system.sysUpTime
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# standard V2C configuration: testcomunnity
+. ./Sv2cconfig
+
+STARTAGENT
+
+CAPTURE "snmpgetnext -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3"
+
+STOPAGENT
+
+CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+FINISHED
diff --git a/testing/tests/T0160snmpv2cbulkget b/testing/tests/T0160snmpv2cbulkget
new file mode 100755
index 0000000..ec2c427
--- /dev/null
+++ b/testing/tests/T0160snmpv2cbulkget
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv2c bulkget of system components
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# standard V2 configuration: testcomunnity
+. ./Sv2cconfig
+
+STARTAGENT
+
+CAPTURE "snmpbulkget $SNMP_FLAGS -v2c -On -Cn1 -Cr2 -c testcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4 .1.3.6.1.2.1.1"
+
+STOPAGENT
+
+CHECKORDIE ".1.3.6.1.2.1.1.4.0 = STRING:"
+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
+
+CHECK ".1.3.6.1.2.1.1.5.0"
+EXPECTRESULT 0
+if [ "$snmp_last_test_result" != 0 ] ; then
+    return_value=1
+    FINISHED
+fi
+
+FINISHED
diff --git a/testing/tests/T016snmpv2cgetfail b/testing/tests/T016snmpv2cgetfail
new file mode 100644
index 0000000..4bc2412
--- /dev/null
+++ b/testing/tests/T016snmpv2cgetfail
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+#
+# test snmpv2c get support by reading a variable
+#
+
+. ../eval_tools.sh
+
+HEADER for failure of SNMPv2c get with wrong community
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# standard V2C configuration: testcomunnity
+. ./Sv2cconfig
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c notavalidcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+
+STOPAGENT
+
+CHECK "Timeout"
+
+FINISHED
diff --git a/testing/tests/T017snmpv2ctov1getfail b/testing/tests/T017snmpv2ctov1getfail
new file mode 100644
index 0000000..8a97942
--- /dev/null
+++ b/testing/tests/T017snmpv2ctov1getfail
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+#
+# test snmpv2c get support by reading a variable
+#
+
+. ../eval_tools.sh
+
+HEADER for failure of SNMPv2c get against SNMPv1 agent
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+SKIPIF NETSNMP_DISABLE_SNMPV1
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# standard V2C configuration: testcomunnity
+. ./Sv1config
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c notavalidcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+
+STOPAGENT
+
+CHECK "Timeout"
+
+FINISHED
diff --git a/testing/tests/T018snmpv1tov2cgetfail b/testing/tests/T018snmpv1tov2cgetfail
new file mode 100644
index 0000000..f36cd4d
--- /dev/null
+++ b/testing/tests/T018snmpv1tov2cgetfail
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER for failure of SNMPv1 get against SNMPv2c agent
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+SKIPIF NETSNMP_DISABLE_SNMPV1
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# standard V2C configuration: testcomunnity
+. ./Sv2cconfig
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c notavalidcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+
+STOPAGENT
+
+CHECK "Timeout"
+
+FINISHED
diff --git a/testing/tests/T019snmpv2cnosuch b/testing/tests/T019snmpv2cnosuch
new file mode 100644
index 0000000..e69ab9a
--- /dev/null
+++ b/testing/tests/T019snmpv2cnosuch
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv2c get of system.sysUpTime.1
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# standard V2C configuration: testcomunnity
+. ./Sv2cconfig
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.1"
+
+STOPAGENT
+
+CHECK ".1.3.6.1.2.1.1.3.1 = No Such Instance"
+
+FINISHED
diff --git a/testing/tests/T020snmpv3get b/testing/tests/T020snmpv3get
new file mode 100644
index 0000000..58c6ce3
--- /dev/null
+++ b/testing/tests/T020snmpv3get
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv3 get using noAuthNoPriv of .1.3.6.1.2.1.1.3.0
+
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# configure the agent to accept user initial with noAuthNoPriv
+. ./Sv3config
+
+STARTAGENT
+
+CAPTURE "snmpget -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/testing/tests/T021snmpv3getnext b/testing/tests/T021snmpv3getnext
new file mode 100755
index 0000000..2b9f646
--- /dev/null
+++ b/testing/tests/T021snmpv3getnext
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv3 getnext using initial of .1.3.6.1.2.1.1.3.0
+
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# configure the agent to accept user initial with noAuthNoPriv
+. ./Sv3config
+
+STARTAGENT
+
+CAPTURE "snmpgetnext -On $SNMP_FLAGS $NOAUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT system.sysUpTime"
+
+STOPAGENT
+
+CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+FINISHED
diff --git a/testing/tests/T0220snmpv3bulkget b/testing/tests/T0220snmpv3bulkget
new file mode 100755
index 0000000..8a8ecb7
--- /dev/null
+++ b/testing/tests/T0220snmpv3bulkget
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv3 bulkget of system
+
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# standard V3 configuration: 
+. ./Sv3config
+
+STARTAGENT
+
+CAPTURE "snmpbulkget $SNMP_FLAGS -On -Cn1 -Cr2 $NOAUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4 .1.3.6.1.2.1.1"
+
+STOPAGENT
+
+CHECKORDIE ".1.3.6.1.2.1.1.4.0 = STRING:"
+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
+
+CHECK ".1.3.6.1.2.1.1.5.0"
+EXPECTRESULT 0
+if [ "$snmp_last_test_result" != 0 ] ; then
+    return_value=1
+    FINISHED
+fi
+
+FINISHED
diff --git a/testing/tests/T022snmpv3getMD5 b/testing/tests/T022snmpv3getMD5
new file mode 100755
index 0000000..9e7960d
--- /dev/null
+++ b/testing/tests/T022snmpv3getMD5
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv3 get using MD5/noPriv of .1.3.6.1.2.1.1.3.0
+
+SKIPIF NETSNMP_DISABLE_MD5
+
+#
+# Begin test
+#
+
+# standard V3 configuration for initial user
+DEFAUTHTYPE="MD5"
+. ./Sv3config
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS $AUTHTESTARGS $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/testing/tests/T023snmpv3getMD5AES b/testing/tests/T023snmpv3getMD5AES
new file mode 100644
index 0000000..773c980
--- /dev/null
+++ b/testing/tests/T023snmpv3getMD5AES
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+. ../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_ENABLE_SCAPI_AUTHPRIV
+SKIPIFNOT HAVE_AES_CFB128_ENCRYPT
+SKIPIF NETSNMP_DISABLE_MD5
+
+#
+# Begin test
+#
+
+# standard V3 configuration for initial user
+DEFAUTHTYPE=MD5
+DEFPRIVTYPE=AES
+. ./Sv3config
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS $PRIVTESTARGS $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/testing/tests/T023snmpv3getMD5DES b/testing/tests/T023snmpv3getMD5DES
new file mode 100755
index 0000000..0689dea
--- /dev/null
+++ b/testing/tests/T023snmpv3getMD5DES
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+. ../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_ENABLE_SCAPI_AUTHPRIV
+SKIPIF NETSNMP_DISABLE_MD5
+
+#
+# Begin test
+#
+
+# standard V3 configuration for initial user
+DEFAUTHTYPE=MD5
+DEFPRIVTYPE=DES
+. ./Sv3config
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS $PRIVTESTARGS $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/testing/tests/T024snmpv3getSHA1 b/testing/tests/T024snmpv3getSHA1
new file mode 100755
index 0000000..9c1474d
--- /dev/null
+++ b/testing/tests/T024snmpv3getSHA1
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv3 get using SHA/noPriv of .1.3.6.1.2.1.1.3.0
+
+SKIPIFNOT NETSNMP_USE_OPENSSL
+
+#
+# Begin test
+#
+
+# standard V3 configuration for templateSHA user
+DEFAUTHTYPE="SHA"
+. ./Sv3config
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS $AUTHTESTARGS $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/testing/tests/T025snmpv3getSHADES b/testing/tests/T025snmpv3getSHADES
new file mode 100755
index 0000000..94fbaca
--- /dev/null
+++ b/testing/tests/T025snmpv3getSHADES
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+. ../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_ENABLE_SCAPI_AUTHPRIV
+SKIPIF NETSNMP_DISABLE_DES
+
+#
+# Begin test
+#
+
+# standard V3 configuration for templateSHA user
+DEFAUTHTYPE="SHA"
+DEFPRIVTYPE="DES"
+. ./Sv3config
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS $PRIVTESTARGS $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/testing/tests/T026snmpv3getSHAAES b/testing/tests/T026snmpv3getSHAAES
new file mode 100644
index 0000000..766513a
--- /dev/null
+++ b/testing/tests/T026snmpv3getSHAAES
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+. ../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_ENABLE_SCAPI_AUTHPRIV
+SKIPIFNOT HAVE_AES_CFB128_ENCRYPT
+
+#
+# Begin test
+#
+
+# standard V3 configuration for templateSHA user
+DEFPRIVTYPE="AES"
+DEFAUTHTYPE="SHA"
+. ./Sv3config
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS $PRIVTESTARGS $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/testing/tests/T028snmpv3getfail b/testing/tests/T028snmpv3getfail
new file mode 100755
index 0000000..99095e1
--- /dev/null
+++ b/testing/tests/T028snmpv3getfail
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER for failure of SNMPv3 get using unknown user.
+
+#
+# Begin test
+#
+
+# standard V3 configuration for initial user
+. ./Sv3config
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -l nanp -u unknownuser $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+
+STOPAGENT
+
+CHECK "Unknown user name"
+
+FINISHED
diff --git a/testing/tests/T030snmpv3usercreation b/testing/tests/T030snmpv3usercreation
new file mode 100644
index 0000000..6b619de
--- /dev/null
+++ b/testing/tests/T030snmpv3usercreation
@@ -0,0 +1,114 @@
+#!/bin/sh
+
+. ../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_ENABLE_SCAPI_AUTHPRIV
+
+#
+# Begin test
+#
+
+# standard SNMPv3 USM agent configuration
+DEFSECURITYLEVEL=authPriv
+. ./Sv3usmconfigagent
+
+# test user
+NEWUSER=newtestuser
+NEWAUTHPASS=newauthpass
+NEWPRIVPASS=newprivpass
+NEWAUTHPRIVPASS=newauthprivpass
+
+# configure agent
+CONFIGAGENT rwuser $NEWUSER
+
+# Start the agent
+STARTAGENT
+
+## usmUserTable management
+
+## 1) create, clone, test, delete
+
+# create new (vanilla) user
+CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER"
+CHECKORDIE "User successfully created"
+
+# clone
+CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT cloneFrom $NEWUSER $TESTPRIVUSER"
+CHECKORDIE "User successfully cloned"
+
+# test (authPriv)
+CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $TESTAUTHPASS -x $DEFPRIVTYPE -X $TESTPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+# delete 
+CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT delete $NEWUSER"
+CHECKORDIE "User successfully deleted"
+
+## 2) create w/ clone, passwd (auth), passwd (priv), test (authPriv+authNoPriv)
+
+# create+clone template user
+CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER $TESTPRIVUSER2"
+CHECKORDIE "User successfully created"
+
+# change auth passphrase of new user
+CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS -Ca $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTAUTHPASS2 $NEWAUTHPASS $NEWUSER"
+CHECKORDIE "SNMPv3 Key(s) successfully changed"
+
+# change priv passphrase of new user
+CAPTURE "snmpusm $SNMP_FLAGS $TESTPRIVARGS -Cx $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTPRIVPASS2 $NEWPRIVPASS $NEWUSER"
+CHECKORDIE "SNMPv3 Key(s) successfully changed"
+
+# test (authNoPriv)
+CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l anp -a $DEFAUTHTYPE -A $NEWAUTHPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+# test (authPriv)
+CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+## 3) passwd (priv), passwd (auth+priv), test
+
+# change priv passphrase (to auth passphrase) by the user himself
+CAPTURE "snmpusm $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWPRIVPASS -Cx $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWPRIVPASS $NEWAUTHPASS"
+CHECKORDIE "SNMPv3 Key(s) successfully changed"
+
+# change both passphrases at once
+CAPTURE "snmpusm $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWAUTHPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWAUTHPASS $NEWAUTHPRIVPASS"
+CHECKORDIE "SNMPv3 Key(s) successfully changed"
+
+# test (authPriv)
+CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPRIVPASS -x $DEFPRIVTYPE -X $NEWAUTHPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+## 5) persistency I: reconfigure (SIGHUP), re-test
+
+HUPAGENT
+DELAY
+
+# test (authPriv)
+CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPRIVPASS -x $DEFPRIVTYPE -X $NEWAUTHPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+## 5) persistency II: stop, start, re-test
+
+STOPAGENT
+DELAY
+# make sure it picks up persistent config and uses a new logfile
+SNMPCONFPATH="${SNMP_TMPDIR}${SNMP_ENV_SEPARATOR}${SNMP_TMP_PERSISTENTDIR}"
+export SNMPCONFPATH
+SNMP_CONFIG_FILE="does-not-exist"
+SNMP_SNMPD_LOG_FILE=${SNMP_TMPDIR}/snmpd2.log
+STARTAGENT
+
+# test (authPriv)
+CAPTURE "snmpget -On $SNMP_FLAGS -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPRIVPASS -x $DEFPRIVTYPE -X $NEWAUTHPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+CHECKORDIE ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+## stop agent and finish
+STOPAGENT
+FINISHED
diff --git a/testing/tests/T035snmpv3trapdusermgmt b/testing/tests/T035snmpv3trapdusermgmt
new file mode 100644
index 0000000..f82b062
--- /dev/null
+++ b/testing/tests/T035snmpv3trapdusermgmt
@@ -0,0 +1,124 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv3 snmptrapd USM user management with snmpusm
+
+SKIPIFNOT USING_AGENTX_MASTER_MODULE
+SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE
+SKIPIFNOT USING_SNMPV3_USMUSER_MODULE
+SKIPIF NETSNMP_SNMPTRAPD_DISABLE_AGENTX
+SKIPIFNOT NETSNMP_USE_OPENSSL
+SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
+
+#
+# Begin test
+#
+
+# configure AgentX socket
+if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ]; then
+  AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket"
+  TRAPD_FLAGS="$TRAPD_FLAGS -x $SNMP_TMPDIR/agentx_socket"
+else
+  AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
+  TRAPD_FLAGS="$TRAPD_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
+fi
+
+# standard SNMPv3 USM agent configuration
+DEFSECURITYLEVEL=authPriv
+. ./Sv3usmconfigagent
+
+# save agent access
+AGENT_TESTAUTHARGS=$TESTAUTHARGS
+AGENT_TESTPRIVARGS=$TESTPRIVARGS
+
+# configure agent as AgentX master
+CONFIGAGENT master agentx
+
+# Start the master agent
+STARTAGENT
+
+# standard SNMPv3 USM snmptrapd configuration
+. ./Sv3usmconfigtrapd
+
+# configure snmptrapd
+NEWAUTHKEY=0x7458ead7a0b5a753e21bfcb87f6c9803ebef68cf
+NEWPRIVKEY=0x98e2696d1cf34d904dfcae76bf01c473
+NEWUSER=newtestuser
+NEWAUTHPASS=newauthpass
+NEWPRIVPASS=newprivpass
+NEWUSER2=newtestuser_vanilla
+CONFIGTRAPD authuser log $NEWUSER auth
+
+# start snmptrapd
+STARTTRAPD
+
+# delay to let it connect and register all MIBs
+DELAY
+
+## verify snmptrapd usmUserTable management
+
+SNMPUSM_TRAPD_CONTEXT_ARGS="-n snmptrapd -CE $TRAPD_ENGINEID"
+
+## 1) create, clone, passwd auth, passwd priv, test
+
+# create vanilla user
+CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTAUTHARGS $SNMPUSM_TRAPD_CONTEXT_ARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER2"
+CHECKORDIE "User successfully created"
+
+# clone template user
+CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTAUTHARGS $SNMPUSM_TRAPD_CONTEXT_ARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT create $NEWUSER $TESTPRIVUSER"
+CHECKORDIE "User successfully created"
+
+# change auth passphrase of new user
+CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTAUTHARGS $SNMPUSM_TRAPD_CONTEXT_ARGS -Ca $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTAUTHPASS $NEWAUTHPASS $NEWUSER"
+CHECKORDIE "SNMPv3 Key(s) successfully changed"
+
+# change priv passphrase of new user
+CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTPRIVARGS $SNMPUSM_TRAPD_CONTEXT_ARGS -Cx $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $TESTPRIVPASS $NEWPRIVPASS $NEWUSER"
+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"
+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"
+DELAY
+CHECKTRAPDORDIE "received_inform_ap"
+
+## 2) change localized auth key, test, change localized priv key, test
+
+# change localized auth key
+CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTAUTHARGS $SNMPUSM_TRAPD_CONTEXT_ARGS -Ca -Ck $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWAUTHPASS $NEWAUTHKEY $NEWUSER"
+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"
+DELAY
+CHECKTRAPDORDIE "received_inform_anp2"
+
+# change localized priv key
+CAPTURE "snmpusm $SNMP_FLAGS $AGENT_TESTPRIVARGS $SNMPUSM_TRAPD_CONTEXT_ARGS -Cx -Ck $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT passwd $NEWPRIVPASS $NEWPRIVKEY $NEWUSER"
+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"
+DELAY
+CHECKTRAPDORDIE "received_inform_ap2"
+
+## 3) persistency I: reconfigure (SIGHUP), re-test
+
+# reconfigure snmptrapd
+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"
+DELAY
+CHECKTRAPDORDIE "received_inform_ap3"
+
+## stop daemons and finish
+STOPTRAPD
+STOPAGENT
+FINISHED
diff --git a/testing/tests/T049snmpv3inform b/testing/tests/T049snmpv3inform
new file mode 100644
index 0000000..e762d13
--- /dev/null
+++ b/testing/tests/T049snmpv3inform
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+DEFSECURITYLEVEL=noAuthNoPriv
+
+HEADER "SNMPv3 informs ($DEFSECURITYLEVEL) received and sent by tools"
+
+#
+# Begin test
+#
+
+CONFIGTRAPD createUser testuser
+CONFIGTRAPD authuser log testuser $DEFSECURITYLEVEL
+CONFIGTRAPD agentxsocket /dev/null
+
+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"
+
+STOPTRAPD
+
+CHECKTRAPD "received_inform_$DEFSECURITYLEVEL"
+
+FINISHED
diff --git a/testing/tests/T049snmpv3informauth b/testing/tests/T049snmpv3informauth
new file mode 100644
index 0000000..ab67ff5
--- /dev/null
+++ b/testing/tests/T049snmpv3informauth
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+DEFSECURITYLEVEL=authNoPriv
+
+HEADER "SNMPv3 informs ($DEFSECURITYLEVEL) received and sent by tools"
+
+#
+# Begin test
+#
+
+. ./Sv3usmconfigtrapd
+CONFIGTRAPD authuser log $TESTAUTHUSER $DEFSECURITYLEVEL
+CONFIGTRAPD agentxsocket /dev/null
+
+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"
+
+STOPTRAPD
+
+CHECKTRAPD "received_inform_$DEFSECURITYLEVEL"
+
+FINISHED
diff --git a/testing/tests/T049snmpv3informpriv b/testing/tests/T049snmpv3informpriv
new file mode 100644
index 0000000..cbbf2f3
--- /dev/null
+++ b/testing/tests/T049snmpv3informpriv
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+DEFSECURITYLEVEL=authPriv
+
+HEADER "SNMPv3 informs ($DEFSECURITYLEVEL) received and sent by tools"
+
+SKIPIFNOT NETSNMP_USE_OPENSSL
+SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
+
+#
+# Begin test
+#
+
+. ./Sv3usmconfigtrapd
+CONFIGTRAPD authuser log $TESTPRIVUSER $DEFSECURITYLEVEL
+CONFIGTRAPD agentxsocket /dev/null
+
+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"
+
+STOPTRAPD
+
+CHECKTRAPD "received_inform_$DEFSECURITYLEVEL"
+
+FINISHED
diff --git a/testing/tests/T050snmpv3trap b/testing/tests/T050snmpv3trap
new file mode 100644
index 0000000..819d151
--- /dev/null
+++ b/testing/tests/T050snmpv3trap
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv3 traps received and sent by tools
+
+SKIPIFNOT NETSNMP_USE_OPENSSL
+SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
+
+#
+# Begin test
+#
+
+CREATEUSERENGINEID=0x80001f88802b3d0e06bbdf4321
+. ./Sv3usmconfigtrapd
+CONFIGTRAPD authuser log $TESTNOAUTHUSER noAuthNoPriv
+CONFIGTRAPD authuser log $TESTAUTHUSER authNoPriv
+CONFIGTRAPD authuser log $TESTPRIVUSER authPriv
+CONFIGTRAPD agentxsocket /dev/null
+
+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"
+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"
+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"
+DELAY
+
+STOPTRAPD
+
+CHECKTRAPD "received_trap_nanp"
+CHECKTRAPD "received_trap_anp"
+CHECKTRAPD "received_trap_ap"
+
+FINISHED
diff --git a/testing/tests/T051snmpv2ctrap b/testing/tests/T051snmpv2ctrap
new file mode 100644
index 0000000..ac4a312
--- /dev/null
+++ b/testing/tests/T051snmpv2ctrap
@@ -0,0 +1,24 @@
+#!/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/T052snmpv2cinform b/testing/tests/T052snmpv2cinform
new file mode 100644
index 0000000..2464dd2
--- /dev/null
+++ b/testing/tests/T052snmpv2cinform
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv2c informs received and sent by tools
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+
+#
+# Begin test
+#
+
+CONFIGTRAPD authcommunity log testcommunity
+CONFIGTRAPD agentxsocket /dev/null
+
+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"
+
+STOPTRAPD
+
+CHECKTRAPD "Received"
+
+FINISHED
diff --git a/testing/tests/T053agentv1trap b/testing/tests/T053agentv1trap
new file mode 100644
index 0000000..9b25c52
--- /dev/null
+++ b/testing/tests/T053agentv1trap
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER snmpv1 traps are sent by snmpd API
+
+SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE
+
+#
+# Begin test
+#
+
+# standard V1 configuration: testcomunnity
+. ./Sv3config
+CONFIGAGENT trapsink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public
+
+CONFIGTRAPD authcommunity log public
+CONFIGTRAPD agentxsocket /dev/null
+
+STARTTRAPD
+
+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"
+
+STOPAGENT
+
+STOPTRAPD
+
+CHECKTRAPD "Enterprise Specific Trap (99)"
+
+FINISHED
diff --git a/testing/tests/T054agentv2ctrap b/testing/tests/T054agentv2ctrap
new file mode 100644
index 0000000..3a85dc9
--- /dev/null
+++ b/testing/tests/T054agentv2ctrap
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER snmpv2c traps are sent by snmpd API
+
+SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE
+
+#
+# Begin test
+#
+
+# standard V1 configuration: testcommunity
+. ./Sv3config
+CONFIGAGENT trap2sink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public
+CONFIGTRAPD authcommunity log public
+CONFIGTRAPD agentxsocket /dev/null
+
+STARTTRAPD
+
+AGENT_FLAGS="$AGENT_FLAGS"
+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"
+
+STOPAGENT
+
+STOPTRAPD
+
+CHECKTRAPD "life the universe and everything"
+
+FINISHED
diff --git a/testing/tests/T055agentv1mintrap b/testing/tests/T055agentv1mintrap
new file mode 100644
index 0000000..f5636a7
--- /dev/null
+++ b/testing/tests/T055agentv1mintrap
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER snmpv1 traps are sent by snmpd without notification mib support
+
+SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE
+
+#
+# Begin test
+#
+
+# standard V1 configuration: testcommunity
+. ./Sv3config
+CONFIGAGENT trapsink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public
+CONFIGTRAPD authcommunity log public
+CONFIGTRAPD agentxsocket /dev/null
+
+STARTTRAPD
+
+# initialize only the example mib, and not the notification mib stuff
+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"
+
+STOPAGENT
+
+STOPTRAPD
+
+CHECKTRAPD "Enterprise Specific Trap (99)"
+
+FINISHED
diff --git a/testing/tests/T056agentv2cmintrap b/testing/tests/T056agentv2cmintrap
new file mode 100644
index 0000000..8c3213f
--- /dev/null
+++ b/testing/tests/T056agentv2cmintrap
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER snmpv2c traps are sent by snmpd without notification mib support
+
+SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE
+
+#
+# Begin test
+#
+
+# standard V1 configuration: testcommunity
+. ./Sv3config
+CONFIGAGENT trap2sink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public
+CONFIGTRAPD authcommunity log public
+CONFIGTRAPD agentxsocket /dev/null
+
+STARTTRAPD
+
+# initialize only the example mib, and not the notification mib stuff
+AGENT_FLAGS="$AGENT_FLAGS -Dexample,header_generic,add_trap,mib_init,callback -I example,usmUser,usmConf,vacm_vars"
+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"
+
+STOPAGENT
+
+STOPTRAPD
+
+CHECKTRAPD "life the universe and everything"
+
+FINISHED
diff --git a/testing/tests/T057trapdauthtest b/testing/tests/T057trapdauthtest
new file mode 100644
index 0000000..3369faf
--- /dev/null
+++ b/testing/tests/T057trapdauthtest
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER snmptrapd authorization failure of non authorized users
+
+#
+# Begin test
+#
+
+CONFIGTRAPD createUser testuser
+CONFIGTRAPD authuser log testuser noAuthNoPriv
+CONFIGTRAPD agentxsocket /dev/null
+
+STARTTRAPD
+
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u nottestuser -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 blah"
+
+STOPTRAPD
+
+CHECKTRAPD "coldStart"
+EXPECTRESULT 0
+if [ "$snmp_last_test_result" != 0 ] ; then
+    return_value=1
+    FINISHED
+fi
+
+FINISHED
diff --git a/testing/tests/T057trapdauthtest2 b/testing/tests/T057trapdauthtest2
new file mode 100644
index 0000000..a5a02cf
--- /dev/null
+++ b/testing/tests/T057trapdauthtest2
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER snmptrapd discards of unauthorized notification types 
+
+#
+# Begin test
+#
+
+CONFIGTRAPD createUser testuser
+CONFIGTRAPD authuser log testuser noAuthNoPriv .1.3.6.1.6.3.1.1.5.2
+CONFIGTRAPD agentxsocket /dev/null
+
+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 blah"
+
+STOPTRAPD
+
+CHECKTRAPD "coldStart"
+EXPECTRESULT 0
+if [ "$snmp_last_test_result" != 0 ] ; then
+    return_value=1
+    FINISHED
+fi
+
+FINISHED
diff --git a/testing/tests/T057trapdauthtest3 b/testing/tests/T057trapdauthtest3
new file mode 100644
index 0000000..2ccb5cb
--- /dev/null
+++ b/testing/tests/T057trapdauthtest3
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER snmptrapd discards of incorrect view types 
+
+#
+# Begin test
+#
+
+CONFIGTRAPD createUser testuser
+CONFIGTRAPD authuser execute testuser noAuthNoPriv
+CONFIGTRAPD agentxsocket /dev/null
+
+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 blah"
+
+STOPTRAPD
+
+CHECKTRAPD "coldStart"
+EXPECTRESULT 0
+if [ "$snmp_last_test_result" != 0 ] ; then
+    return_value=1
+    FINISHED
+fi
+
+FINISHED
diff --git a/testing/tests/T058agentauthtrap b/testing/tests/T058agentauthtrap
new file mode 100644
index 0000000..7be3a7b
--- /dev/null
+++ b/testing/tests/T058agentauthtrap
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER authentication failure traps are sent by snmpd
+
+SKIPIF NETSNMP_DISABLE_SNMPV1
+
+#
+# Begin test
+#
+
+# standard V1 configuration: testcommunity
+. ./Sv1config
+# add in a v1 trap sink
+CONFIGAGENT trapsink $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT public
+CONFIGAGENT authtrapenable 1
+CONFIGTRAPD authcommunity log public
+CONFIGTRAPD agentxsocket /dev/null
+
+STARTTRAPD
+
+STARTAGENT
+
+# give the agent more time to start up.  We only want to fire one
+# request (retries = 0) to make sure only one trap is sent.
+#DELAY
+CAPTURE "snmpget -On -r 0 -t 5 $SNMP_FLAGS -v 1 -c wrongcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+
+STOPAGENT
+
+STOPTRAPD
+
+CHECKTRAPD "Authentication Failure Trap"
+
+FINISHED
diff --git a/testing/tests/T059trapdtraphandle b/testing/tests/T059trapdtraphandle
new file mode 100755
index 0000000..3657494
--- /dev/null
+++ b/testing/tests/T059trapdtraphandle
@@ -0,0 +1,49 @@
+#!/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/T060trapdperl b/testing/tests/T060trapdperl
new file mode 100755
index 0000000..63a6f4c
--- /dev/null
+++ b/testing/tests/T060trapdperl
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER 'snmptrapd embedded perl support (NetSNMP::TrapReceiver)'
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+SKIPIFNOT NETSNMP_EMBEDDED_PERL
+
+#
+# Begin test
+#
+
+snmp_version=v2c
+TESTCOMMUNITY=testcommunity
+TESTOID=.1.3.6.1.6.3.1.1.5.1
+TESTOID2=.1.3.6.1.6.3.1.1.5.2
+EMBPERL_LOGFILE=${SNMP_TMPDIR}/embperl.log
+
+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 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 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"
+
+## 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"
+
+## stop
+STOPTRAPD
+
+
+CHECKORDIE "handled_by_embperl"       $EMBPERL_LOGFILE
+CHECKORDIE "handled_again_by_embperl" $EMBPERL_LOGFILE
+
+FINISHED
diff --git a/testing/tests/T061agentperl b/testing/tests/T061agentperl
new file mode 100755
index 0000000..27e5b31
--- /dev/null
+++ b/testing/tests/T061agentperl
@@ -0,0 +1,94 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER 'snmpd embedded perl support (using NetSNMP::agent)'
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+SKIPIFNOT NETSNMP_EMBEDDED_PERL
+
+#
+# Begin test
+#
+
+snmp_version=v2c
+TESTCOMMUNITY=testcommunity
+. ./Sv2cconfig
+
+TESTOID=.1.3.6.1.4.1.8872.9999.9999.1.0
+TESTOID2=.1.3.6.1.4.1.8872.9999.9999.2.0
+EMBPERL_AGENT=${SNMP_TMPDIR}/hello.pl
+cat >$EMBPERL_AGENT <<END
+#!/usr/bin/env perl
+# minimal embedded perl agent
+
+my \$regat = '.1.3.6.1.4.1.8872.9999.9999'; # netSnmpPlayPen
+my \$myoid = \$regat . ".1.0"; # the "hello world" OID
+my \$myoid2 = \$regat . ".2.0"; # the "hello again world" OID
+
+use NetSNMP::OID qw(:all);
+use NetSNMP::agent qw(:all);
+use NetSNMP::ASN qw(:all);
+use SNMP;
+
+my \$regoid = new NetSNMP::OID(\$regat);
+\$agent->register("hello", \$regoid, \&my_snmp_handler);
+
+sub my_snmp_handler {
+  my (\$handler, \$registration_info, \$request_info, \$requests) = @_;
+  for(my \$request = \$requests; \$request; \$request = \$request->next()) {
+    if (\$request_info->getMode() == MODE_GET) {
+      if (\$request->getOID() == new NetSNMP::OID(\$myoid)) {
+        \$request->setValue(ASN_OCTET_STR, "hello world");
+        last;
+      } elsif (\$request->getOID() == new NetSNMP::OID(\$myoid2)) {
+        \$request->setValue(ASN_OCTET_STR, "hello again world");
+        last;
+      }
+    }
+  }
+}
+END
+
+echo "use blib qw(${SNMP_UPDIR}/perl);" > ${SNMP_TMPDIR}/snmp_perl.pl
+echo 'use NetSNMP::agent;' >> ${SNMP_TMPDIR}/snmp_perl.pl
+echo '$agent = new NetSNMP::agent('"'dont_init_agent' => 1, 'dont_init_lib' => 1);" >> ${SNMP_TMPDIR}/snmp_perl.pl
+
+CONFIGAGENT perlInitFile ${SNMP_TMPDIR}/snmp_perl.pl
+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
+CAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID"
+CHECK "hello world"
+
+## 2) persistency: reconfigure (HUP), re-test
+HUPAGENT
+CAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID2"
+CHECK "hello again world"
+
+## stop
+STOPAGENT
+
+FINISHED
diff --git a/testing/tests/T065agentextend b/testing/tests/T065agentextend
new file mode 100644
index 0000000..8ac5201
--- /dev/null
+++ b/testing/tests/T065agentextend
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER "extending agent functionality with extend"
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+SKIPIFNOT USING_AGENT_EXTEND_MODULE
+
+# make sure snmpget can be executed
+SNMPGET="${SNMP_UPDIR}/apps/snmpget"
+[ -x "$SNMPGET" ] || SKIP
+
+snmp_version=v2c
+TESTCOMMUNITY=testcommunity
+. ./Sv2cconfig
+
+#
+# Begin test
+#
+
+CONFIGAGENT extend hello /usr/bin/env echo hello_world
+
+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\""
+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\""
+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"
+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\""
+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\""
+CHECKORDIE "INTEGER: 0"
+
+STOPAGENT
+FINISHED
diff --git a/testing/tests/T100agenthup b/testing/tests/T100agenthup
new file mode 100755
index 0000000..505efb4
--- /dev/null
+++ b/testing/tests/T100agenthup
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER that the agent responds properly to a kill -HUP
+
+SKIPIF NETSNMP_DISABLE_SNMPV1
+
+SKIPIFNOT HAVE_SIGNAL
+
+#
+# Begin test
+#
+
+# standard V1 configuration: testcomunnity
+. ./Sv1config
+
+STARTAGENT
+
+# add a agent configuration line that wouldn't have been there when
+# the started up.
+CONFIGAGENT syslocation not-anywhere-in-particular
+
+# kill -HUP the agent to get it to re-read the .conf file.
+DELAY
+kill -HUP `cat $SNMP_SNMPD_PID_FILE` > /dev/null 2>&1
+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"
+
+STOPAGENT
+
+CHECK "not-anywhere-in-particular"
+
+FINISHED
diff --git a/testing/tests/T110agentxget b/testing/tests/T110agentxget
new file mode 100644
index 0000000..449280f
--- /dev/null
+++ b/testing/tests/T110agentxget
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER AgentX GET support
+
+SKIPIFNOT USING_AGENTX_MASTER_MODULE
+SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# standard V3 configuration for initial user
+. ./Sv3config
+
+# Start the agent without initializing the system mib.
+if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then
+ORIG_AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket"
+else
+ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
+fi
+AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib"
+STARTAGENT
+
+# test to see that the current agent doesn't support the system mib
+CAPTURE "snmpget -On $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+
+CHECK ".1.3.6.1.2.1.1.3.0 = No Such Object"
+
+if test "$snmp_last_test_result" = 1; then
+  # test the agentx subagent by first running it...
+
+  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
+  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
+  AGENT_FLAGS="$ORIG_AGENT_FLAGS -X -I system_mib"
+  SNMP_CONFIG_FILE="$SNMP_TMPDIR/bogus.conf"
+  STARTAGENT
+
+  # test to see that the agent now supports setting the system mib
+  CAPTURE "snmpget -On $SNMP_FLAGS -t 3 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+
+  CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+  # stop the subagent
+  STOPAGENT
+
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
+fi
+
+# stop the master agent
+STOPAGENT
+
+# all done (whew)
+FINISHED
diff --git a/testing/tests/T111agentxset b/testing/tests/T111agentxset
new file mode 100644
index 0000000..2b89dfd
--- /dev/null
+++ b/testing/tests/T111agentxset
@@ -0,0 +1,76 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER AgentX SET support
+
+SKIPIFNOT USING_AGENTX_MASTER_MODULE
+SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# standard V3 configuration for initial user
+. ./Sv3config
+
+# Start the agent without initializing the system mib.
+if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then
+ORIG_AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket"
+else
+ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
+fi
+AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib -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 .1.3.6.1.2.1.1.4.0"
+
+CHECK ".1.3.6.1.2.1.1.4.0 = No Such Object"
+
+if test "$snmp_last_test_result" = 1; then
+  # test the AgentX subagent by first running it...
+
+  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
+  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
+  AGENT_FLAGS="$ORIG_AGENT_FLAGS -X -I system_mib"
+  SNMP_CONFIG_FILE="$SNMP_TMPDIR/bogus.conf"
+  echo "psyscontact testcontact" >> $SNMP_CONFIG_FILE
+  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"
+
+  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"
+
+    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"
+	
+	CHECK ".1.3.6.1.2.1.1.4.0 = STRING: newtestcontact"
+    fi
+  fi
+
+  # stop the subagent
+  STOPAGENT
+
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
+fi
+
+# stop the master agent
+STOPAGENT
+
+# all done (whew)
+FINISHED
diff --git a/testing/tests/T112agentxsetfail b/testing/tests/T112agentxsetfail
new file mode 100644
index 0000000..50cc20a
--- /dev/null
+++ b/testing/tests/T112agentxsetfail
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER AgentX illegal SET handling support
+
+SKIPIFNOT USING_AGENTX_MASTER_MODULE
+SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
+#
+# Begin test
+#
+
+# standard V3 configuration for initial user
+. ./Sv3config
+
+# Start the agent without initializing the system mib.
+if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then
+ORIG_AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket"
+else
+ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
+fi
+AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib -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"
+
+CHECK ".1.3.6.1.2.1.1.4.0 = No Such Object"
+
+if test "$snmp_last_test_result" = 1; then
+  # test the AgentX subagent by first running it...
+
+  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
+  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
+  AGENT_FLAGS="$ORIG_AGENT_FLAGS -X -I system_mib"
+  SNMP_CONFIG_FILE="$SNMP_TMPDIR/bogus.conf"
+  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"
+
+  # 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"
+
+  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"
+
+    CHECK "wrongType"
+
+  fi
+
+  # stop the subagent
+  STOPAGENT
+
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
+fi
+
+# stop the master agent
+STOPAGENT
+
+# all done (whew)
+FINISHED
diff --git a/testing/tests/T113agentxtrap b/testing/tests/T113agentxtrap
new file mode 100644
index 0000000..25c3ee1
--- /dev/null
+++ b/testing/tests/T113agentxtrap
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER AgentX trap sending support
+
+SKIPIFNOT USING_AGENTX_MASTER_MODULE
+SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE
+SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE
+
+#
+# Begin test
+#
+
+# start the trap demon
+CONFIGTRAPD authcommunity log public
+STARTTRAPD
+
+# standard V3 configuration for initial user
+. ./Sv3config
+# configure the trap receiver.
+CONFIGAGENT trapsink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public
+
+# Start the agent without initializing the example mib.
+if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then
+ORIG_AGENT_FLAGS="$AGENT_FLAGS -x $SNMP_TMPDIR/agentx_socket"
+else
+ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
+fi
+AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -example"
+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"
+
+CHECK "No Such Object"
+
+if test "$snmp_last_test_result" = 1; then
+  # test the AgentX subagent by first running it...
+
+  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
+  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
+  AGENT_FLAGS="$ORIG_AGENT_FLAGS -X -I example -Dadd"
+  SNMP_CONFIG_FILE="$SNMP_TMPDIR/bogus.conf"
+
+  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"
+
+  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"
+    DELAY
+    CHECKTRAPD "life the universe and everything"
+
+  fi
+
+  # stop the subagent
+  STOPAGENT
+
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
+fi
+
+# stop the master agent
+STOPAGENT
+
+# stop the trap demon
+STOPTRAPD
+
+# all done (whew)
+FINISHED
diff --git a/testing/tests/T115agentxperl b/testing/tests/T115agentxperl
new file mode 100755
index 0000000..9da24f6
--- /dev/null
+++ b/testing/tests/T115agentxperl
@@ -0,0 +1,133 @@
+#!/bin/sh
+
+. ../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
+# make sure the toolkit has been configured --with-perl-modules
+[ -d ${SNMP_UPDIR}/perl/blib/arch/auto/NetSNMP/agent ] || SKIP
+
+#
+# Begin test
+#
+
+snmp_version=v2c
+TESTCOMMUNITY=testcommunity
+. ./Sv2cconfig
+
+TESTOID=.1.3.6.1.4.1.8872.9999.9999.1.0
+TESTOID2=.1.3.6.1.4.1.8872.9999.9999.2.0
+AGENTX_SOCKET=${SNMP_TMPDIR}/agentx_socket
+PERL_SUBAGENT=${SNMP_TMPDIR}/hello.pl
+PERL_SUBAGENT_CONF=${SNMP_TMPDIR}/hello.conf
+
+cat >$PERL_SUBAGENT <<END
+#!${SNMP_PERLPROG}
+# minimal AgentX subagent in Perl
+
+use blib qw(${SNMP_UPDIR}/perl);
+use NetSNMP::OID qw(:all);
+use NetSNMP::agent qw(:all);
+use NetSNMP::ASN qw(:all);
+use NetSNMP::agent::default_store;
+use NetSNMP::default_store qw(:all);
+use SNMP;
+
+## double-fork daemon
+my \$pid;
+unless (\$pid = fork) {
+  unless (fork) {
+    ## start main code
+    my \$regat = '.1.3.6.1.4.1.8872.9999.9999'; # netSnmpPlayPen
+    my \$myoid = \$regat . ".1.0"; # the "hello world" OID
+    my \$myoid2 = \$regat . ".2.0"; # the "hello again world" OID
+
+    my \$pidfile = shift; # take PID file as first argument 
+    open(PIDFILE, ">\$pidfile") or die "Couldn't open \$pidfile";
+    print PIDFILE \$\$;
+    close(PIDFILE);
+
+sub my_snmp_handler {
+  my (\$handler, \$registration_info, \$request_info, \$requests) = @_;
+  for(my \$request = \$requests; \$request; \$request = \$request->next()) {
+    if (\$request_info->getMode() == MODE_GET) {
+      if (\$request->getOID() == new NetSNMP::OID(\$myoid)) {
+        \$request->setValue(ASN_OCTET_STR, "hello world");
+        last;
+      } elsif (\$request->getOID() == new NetSNMP::OID(\$myoid2)) {
+        \$request->setValue(ASN_OCTET_STR, "hello again world");
+        last;
+      }
+    }
+  }
+}
+sub shut_it_down { \$running = 0; }
+
+    netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
+                           NETSNMP_DS_AGENT_NO_ROOT_ACCESS, 1);
+    my \$agent = new NetSNMP::agent('Name' => 'hello', 'AgentX' => 1);
+    my \$regoid = new NetSNMP::OID(\$regat);
+    \$agent->register("hello", \$regoid, \&my_snmp_handler);
+
+    \$SIG{'INT'} = \&shut_it_down;
+    \$SIG{'QUIT'} = \&shut_it_down;
+    \$running = 1;
+    while(\$running) {
+      \$agent->agent_check_and_process(1);
+    }
+    \$agent->shutdown();
+    ## end main code
+    exit 0;
+  }
+  exit 0;
+}
+waitpid(\$pid, 0);
+END
+
+echo "agentxsocket $AGENTX_SOCKET" > $PERL_SUBAGENT_CONF
+
+CONFIGAGENT master agentx
+CONFIGAGENT agentxsocket $AGENTX_SOCKET
+
+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
+
+## 1) SNMP GET against mib object implemented by the perl subagent
+CAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID"
+CHECK "hello world"
+
+## 2) persistency: reconfigure master agent (HUP), re-test
+HUPAGENT
+CAPTURE "snmpget -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT $TESTOID2"
+CHECK "hello again world"
+
+## stop
+STOPAGENT
+STOPPROG $SNMP_AGENTX_PID_FILE
+
+FINISHED
diff --git a/testing/tests/T120proxyget b/testing/tests/T120proxyget
new file mode 100644
index 0000000..d10177b
--- /dev/null
+++ b/testing/tests/T120proxyget
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER Proxy GET support
+
+SKIPIFNOT USING_UCD_SNMP_PROXY_MODULE
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+
+# XXX: ucd-snmp/proxy doesn't properly support TCP -- remove this once it does
+[ "x$SNMP_TRANSPORT_SPEC" = "xtcp" ] && SKIP
+
+#
+# Begin test
+#
+
+# 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
+
+# Start the agent without initializing the system mib.
+ORIG_AGENT_FLAGS="$AGENT_FLAGS"
+AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib -Dproxy"
+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 .1.3.6.1.2.1.1.3.0"
+
+#CHECK ".1.3.6.1.2.1.1.3.0 = No Such Object"
+
+#if test "$snmp_last_test_result" = 1; then
+  # test the proxy subagent by first running it...
+
+  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
+  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
+  SNMP_CONFIG_FILE="$SNMP_TMPDIR/proxy.conf"
+  echo "rwcommunity testcommunity" >> $SNMP_CONFIG_FILE
+  AGENT_FLAGS=$ORIG_AGENT_FLAGS
+  ORIG_SNMP_SNMPD_PORT=$SNMP_SNMPD_PORT
+  SNMP_SNMPD_PORT="${SNMP_AGENTX_PORT}"
+  STARTAGENT
+  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 .1.3.6.1.2.1.1.3.0"
+
+  CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+  # stop the subagent
+  STOPAGENT
+
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
+#fi
+
+# stop the master agent
+STOPAGENT
+
+# all done (whew)
+FINISHED
diff --git a/testing/tests/T121proxyset b/testing/tests/T121proxyset
new file mode 100644
index 0000000..8429284
--- /dev/null
+++ b/testing/tests/T121proxyset
@@ -0,0 +1,81 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER Proxy SET support
+
+SKIPIFNOT USING_UCD_SNMP_PROXY_MODULE
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+
+# XXX: ucd-snmp/proxy doesn't properly support TCP -- remove this once it does
+[ "x$SNMP_TRANSPORT_SPEC" = "xtcp" ] && SKIP
+
+#
+# Begin test
+#
+
+# 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
+
+# Start the agent without initializing the system mib.
+ORIG_AGENT_FLAGS="$AGENT_FLAGS"
+AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib -Dproxy"
+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 .1.3.6.1.2.1.1.3.0"
+
+#CHECK ".1.3.6.1.2.1.1.3.0 = No Such Object"
+
+#if test "$snmp_last_test_result" = 1; then
+  # test the proxy subagent by first running it...
+
+  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
+  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
+  SNMP_CONFIG_FILE="$SNMP_TMPDIR/proxy.conf"
+  echo "rwcommunity testcommunity" >> $SNMP_CONFIG_FILE
+  echo "psyscontact testcontact" >> $SNMP_CONFIG_FILE
+  AGENT_FLAGS="$ORIG_AGENT_FLAGS -Dmib_init"
+  ORIG_SNMP_SNMPD_PORT=$SNMP_SNMPD_PORT
+  SNMP_SNMPD_PORT="${SNMP_AGENTX_PORT}"
+  STARTAGENT
+  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"
+
+  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"
+
+    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"
+	
+	CHECK ".1.3.6.1.2.1.1.4.0 = STRING: newtestcontact"
+    fi
+  fi
+
+  # stop the subagent
+  STOPAGENT
+
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
+#fi
+
+# stop the master agent
+STOPAGENT
+
+# all done (whew)
+FINISHED
diff --git a/testing/tests/T122proxysetfail b/testing/tests/T122proxysetfail
new file mode 100644
index 0000000..f1a057b
--- /dev/null
+++ b/testing/tests/T122proxysetfail
@@ -0,0 +1,81 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER Proxy illegal SET handling support
+
+SKIPIFNOT USING_UCD_SNMP_PROXY_MODULE
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+
+# XXX: ucd-snmp/proxy doesn't properly support TCP -- remove this once it does
+[ "x$SNMP_TRANSPORT_SPEC" = "xtcp" ] && SKIP
+
+#
+# Begin test
+#
+
+# 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
+
+# Start the agent without initializing the system mib.
+ORIG_AGENT_FLAGS="$AGENT_FLAGS"
+AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib -Dproxy"
+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 .1.3.6.1.2.1.1.3.0"
+
+#CHECK ".1.3.6.1.2.1.1.3.0 = No Such Object"
+
+#if test "$snmp_last_test_result" = 1; then
+  # test the proxy subagent by first running it...
+
+  SNMP_SNMPD_PID_FILE_ORIG=$SNMP_SNMPD_PID_FILE
+  SNMP_SNMPD_LOG_FILE_ORIG=$SNMP_SNMPD_LOG_FILE
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE.num2
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE.num2
+  SNMP_CONFIG_FILE="$SNMP_TMPDIR/proxy.conf"
+  echo "rwcommunity testcommunity" >> $SNMP_CONFIG_FILE
+#  echo "syscontact testcontact" >> $SNMP_CONFIG_FILE
+  AGENT_FLAGS="$ORIG_AGENT_FLAGS -Dmib_init"
+  ORIG_SNMP_SNMPD_PORT=$SNMP_SNMPD_PORT
+  SNMP_SNMPD_PORT="${SNMP_AGENTX_PORT}"
+  STARTAGENT
+  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"
+
+  
+  # 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"
+
+  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"
+
+    # 5.0.x snmpset shows error on single line
+    #CHECK ".1.3.6.1.2.1.1.4.0 = Wrong Type"
+    # 5.1.x snmpset shows error on multiple lines
+    CHECK "Reason: wrongType"
+    CHECK "Failed object: .1.3.6.1.2.1.1.4.0"
+
+  fi
+
+  # stop the subagent
+  STOPAGENT
+
+  SNMP_SNMPD_PID_FILE=$SNMP_SNMPD_PID_FILE_ORIG
+  SNMP_SNMPD_LOG_FILE=$SNMP_SNMPD_LOG_FILE_ORIG
+#fi
+
+# stop the master agent
+STOPAGENT
+
+# all done (whew)
+FINISHED
diff --git a/testing/tests/T130snmpv1vacmget b/testing/tests/T130snmpv1vacmget
new file mode 100644
index 0000000..71bdc71
--- /dev/null
+++ b/testing/tests/T130snmpv1vacmget
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv1 vacm acceptance support
+SKIPIF NETSNMP_DISABLE_SNMPV1
+
+#
+# Begin test
+#
+
+# standard V1 configuration: testcommunity1 testcommunity2
+# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied
+# testcommunity2 can access all except .1.3.6.1.2.1.1.1
+# This case test for successful access
+snmp_version=v1
+. ./Svacmconfig
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity1 -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" 
+
+CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:"
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity2 -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .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/T131snmpv2cvacmget b/testing/tests/T131snmpv2cvacmget
new file mode 100644
index 0000000..9d481f2
--- /dev/null
+++ b/testing/tests/T131snmpv2cvacmget
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv2 vacm acceptance support
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+
+#
+# Begin test
+#
+
+
+# standard V1 configuration: testcommunity1 testcommunity2
+# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied
+# testcommunity2 can access all except .1.3.6.1.2.1.1.1
+# This case test for successful access
+
+snmp_version=v2c
+. ./Svacmconfig
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity1 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" 
+
+CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:"
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity2 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .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/T132snmpv3vacmget b/testing/tests/T132snmpv3vacmget
new file mode 100644
index 0000000..8ce9364
--- /dev/null
+++ b/testing/tests/T132snmpv3vacmget
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv3 vacm acceptance support
+
+#
+# Begin test
+#
+
+# Configuration:
+#initial1 can access .1.3.6.1.2.1.1.1, deny others
+#initial2 can access all except .1.3.6.1.2.1.1.1 
+#This case test for successful access
+
+snmp_version=v3
+. ./Sv3vacmconfig
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS -v3 -a MD5 -A initial_test_pass_auth -u initial1 -l anp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" 
+
+CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:"
+
+CAPTURE "snmpget -On $SNMP_FLAGS -v3 -a MD5 -A initial_test_pass_auth -u initial2 -l anp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .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/T140snmpv1vacmgetfail b/testing/tests/T140snmpv1vacmgetfail
new file mode 100644
index 0000000..0510008
--- /dev/null
+++ b/testing/tests/T140snmpv1vacmgetfail
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv1 vacm denial support
+
+SKIPIF NETSNMP_DISABLE_SNMPV1
+
+#
+# Begin test
+#
+
+# standard V1 configuration: testcommunity1 testcommunity2
+# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied
+# testcommunity2 can access all except .1.3.6.1.2.1.1.1
+# This case test for denied access
+
+snmp_version=v1
+. ./Svacmconfig
+
+STARTAGENT
+
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity1 -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+
+CHECKORDIE "Reason: (noSuchName) There is no such variable name in this MIB."
+
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity2 -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0"
+
+CHECKORDIE "Reason: (noSuchName) There is no such variable name in this MIB."
+
+STOPAGENT
+
+FINISHED
diff --git a/testing/tests/T141snmpv2cvacmgetfail b/testing/tests/T141snmpv2cvacmgetfail
new file mode 100644
index 0000000..43f6b0a
--- /dev/null
+++ b/testing/tests/T141snmpv2cvacmgetfail
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv2 vacm denial support
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+
+#
+# Begin test
+#
+
+
+# standard V1 configuration: testcommunity1 testcommunity2
+# testcommunity1 can access .1.3.6.1.2.1.1.1, others are denied
+# testcommunity2 can access all except .1.3.6.1.2.1.1.1
+# This case test for denied access
+
+snmp_version=v2c
+. ./Svacmconfig
+
+STARTAGENT
+
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity1 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
+CHECKORDIE ".1.3.6.1.2.1.1.3.0 = No Such Object available on this agent at this OID"
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity2 -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0"
+CHECKORDIE ".1.3.6.1.2.1.1.1.0 = No Such Object available on this agent at this OID"
+
+CAPTURE "snmpset -On $SNMP_FLAGS -c testcommunity1 -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"
+
+CAPTURE "snmpset -On $SNMP_FLAGS -c testcommunity2 -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"
+
+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"
+
+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"
+
+STOPAGENT
+
+FINISHED
diff --git a/testing/tests/T142snmpv3vacmgetfail b/testing/tests/T142snmpv3vacmgetfail
new file mode 100644
index 0000000..8f7eb9c
--- /dev/null
+++ b/testing/tests/T142snmpv3vacmgetfail
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER SNMPv3 vacm denial support
+
+#
+# Begin test
+#
+
+# Configuration:
+#initial1 can access .1.3.6.1.2.1.1.1, deny others
+#initial2 can access all except .1.3.6.1.2.1.1.1 
+#This case test for denied access
+
+snmp_version=v3
+. ./Sv3vacmconfig
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS -v3 -a MD5 -A initial_test_pass_auth -u initial1 -l anp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0" 
+
+CHECKORDIE ".1.3.6.1.2.1.1.3.0 = No Such Object available on this agent at this OID"
+
+
+CAPTURE "snmpget -On $SNMP_FLAGS -v3 -a MD5 -A initial_test_pass_auth -u initial2 -l anp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.1.0" 
+
+CHECKORDIE ".1.3.6.1.2.1.1.1.0 = No Such Object available on this agent at this OID"
+
+STOPAGENT
+
+FINISHED
diff --git a/testing/tests/T150solarishostcpu b/testing/tests/T150solarishostcpu
new file mode 100644
index 0000000..a28e939
--- /dev/null
+++ b/testing/tests/T150solarishostcpu
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER 1st CPU on Solaris using HOST-RESOURCES
+
+if test "x`uname -s`" != "xSunOS" ; then
+    SKIP
+fi
+
+SKIPIF NETSNMP_DISABLE_SNMPV1
+SKIPIFNOT USING_HOST_HR_DEVICE_MODULE
+
+#
+# Begin test
+#
+
+# standard V1 configuration: testcommunity
+. ./Sv1config
+
+STARTAGENT
+
+# ask for the description of the first CPU in the system
+
+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 "
+
+STOPAGENT
+  
+FINISHED
diff --git a/testing/tests/T151solarishostdisk b/testing/tests/T151solarishostdisk
new file mode 100644
index 0000000..f9811f5
--- /dev/null
+++ b/testing/tests/T151solarishostdisk
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+. ../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
+fi
+
+SKIPIFNOT USING_HOST_HR_SYSTEM_MODULE
+SKIPIF NETSNMP_DISABLE_SNMPV1
+
+#
+# Begin test
+#
+
+# standard V1 configuration: testcommunity
+. ./Sv1config
+
+STARTAGENT
+
+# ask for the index of the initial device (hrSystemInitialLoadDevice.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.25.1.3.0"
+
+STOPAGENT
+
+CHECKORDIE "^.1.3.6.1.2.1.25.1.3.0 = INTEGER:"
+
+FINISHED
diff --git a/testing/tests/T152hostuptime b/testing/tests/T152hostuptime
new file mode 100644
index 0000000..1e90d3f
--- /dev/null
+++ b/testing/tests/T152hostuptime
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER uptime using HOST-RESOURCES
+
+SKIPIFNOT USING_HOST_HR_SYSTEM_MODULE
+
+SKIPIF NETSNMP_DISABLE_SNMPV1
+
+#
+# Begin test
+#
+
+# standard V1 configuration: testcommunity
+. ./Sv1config
+
+STARTAGENT
+
+CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.25.1.1.0"
+
+STOPAGENT
+    
+CHECKORDIE "^.1.3.6.1.2.1.25.1.1.0 = Timeticks:"
+
+FINISHED
+
diff --git a/testing/tests/T153solarisswap b/testing/tests/T153solarisswap
new file mode 100644
index 0000000..04e2e3c
--- /dev/null
+++ b/testing/tests/T153solarisswap
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+HEADER swap on Solaris using HOST-RESOURCES
+
+if test `uname -s` != "SunOS" ; then
+    # a bogus skip for !suns
+    SKIPIFNOT XXXYYYZZZ
+fi
+
+SKIPIFNOT USING_HOST_HR_STORAGE_MODULE
+
+SKIPIF NETSNMP_DISABLE_SNMPV1
+
+#
+# Begin test
+#
+
+# standard V1 configuration: testcommunity
+. ./Sv1config
+
+STARTAGENT
+
+# ask for hrStorageSize.10 which reports overall swap size
+CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.25.2.3.1.5.10"
+
+STOPAGENT
+
+CHECKORDIE "^.1.3.6.1.2.1.25.2.3.1.5.10 = INTEGER:"
+
+FINISHED
diff --git a/testing/tests/T160snmpnetstat b/testing/tests/T160snmpnetstat
new file mode 100644
index 0000000..186a305
--- /dev/null
+++ b/testing/tests/T160snmpnetstat
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+. ../eval_tools.sh
+
+# snmpnetstat test only works with UDP or TCP
+if [ "x$SNMP_TRANSPORT_SPEC" = "x" -o "x$SNMP_TRANSPORT_SPEC" = "xudp" ]; then
+  proto=udp
+  SKIPIFNOT USING_MIBII_UDPTABLE_MODULE
+elif [ "x$SNMP_TRANSPORT_SPEC" = "xtcp" ]; then
+  proto=tcp
+  SKIPIFNOT USING_MIBII_TCPTABLE_MODULE
+else
+  HEADER "if snmpnetstat finds the running agent in udpTable/tcpTable"
+  SKIP
+fi
+
+HEADER "if snmpnetstat finds the running agent in ${proto}Table"
+
+# 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;;
+esac
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+
+# make sure snmpnetstat can be executed
+SNMPNETSTAT="${SNMP_UPDIR}/apps/snmpnetstat/snmpnetstat"
+[ -x "$SNMPNETSTAT" ] || SKIP
+
+snmp_version=v2c
+. ./Sv2cconfig
+
+#
+# Begin test
+#
+
+STARTAGENT
+
+CAPTURE "$SNMPNETSTAT -Cn -Cp $proto -$snmp_version -c testcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT"
+CHECKEXACT "127.0.0.1.$SNMP_SNMPD_PORT"
+# multiple occurrences (especially in tcpTable) are fine
+if [ "$snmp_last_test_result" != 0 ] ; then
+    return_value=0
+fi
+FINISHED
+
+
+STOPAGENT
+FINISHED
diff --git a/testing/tests/T200snmpv2cwalkall b/testing/tests/T200snmpv2cwalkall
new file mode 100644
index 0000000..78fac68
--- /dev/null
+++ b/testing/tests/T200snmpv2cwalkall
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+. ../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
+    fi
+fi
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+
+# make sure snmpwalk can be executed
+SNMPWALK="${SNMP_UPDIR}/apps/snmpwalk"
+[ -x "$SNMPWALK" ] || SKIP
+
+snmp_version=v2c
+. ./Sv2cconfig
+
+#
+# Begin test
+#
+
+# higher timeout/retry values for safety
+TIMEOUT=10
+RETRY=5
+
+STARTAGENT
+
+CAPTURE "$SNMPWALK $SNMP_FLAGS -$snmp_version -c testcommunity -t $TIMEOUT -r $RETRY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1"
+CHECKANDDIE "= Wrong Type (should be "
+CHECKORDIE "No more variables left in this MIB View"
+
+STOPAGENT
+FINISHED
diff --git a/win32/Configure b/win32/Configure
index f3286bb..95e30b6 100644
--- a/win32/Configure
+++ b/win32/Configure
@@ -7,7 +7,6 @@
 use Getopt::Long;
 use strict;
 
-my $version = "unknown";
 my $config;
 my $sdk = 0;
 my $linktype;
@@ -86,26 +85,6 @@ print "\n\n";
 
 ###############################################
 #
-# Determine version from unix configure script
-#
-###############################################
-  
-my $unix_configure_in = "../configure";
-
-open (UNIX_CONFIGURE_IN, "<$unix_configure_in") || die "Can't Open $unix_configure_in\n";
-
-while (<UNIX_CONFIGURE_IN>)
-{
-  chomp;
-  /PACKAGE_VERSION='(.*)'/;
-  if ($1 ne "") {
-    $version = $1;
-    last;
-  }
-}
-
-###############################################
-#
 # Create main Makefile
 #
 ###############################################
@@ -239,10 +218,17 @@ foreach my $progName (@programs) {
 ###############################################
 my @programs = qw 
 /libagent
+libhelpers
 libnetsnmptrapd
-netsnmpmibs
 /;
 
+if ($sdk == 1) {
+  push (@programs, "netsnmpmibssdk");
+}
+else {
+  push (@programs, "netsnmpmibs");
+}
+
 if ($linktype eq "dynamic") {
   push (@programs, "libsnmp_dll");
 }
@@ -267,18 +253,15 @@ foreach my $progName (@programs) {
   {
     chomp;
     
-    if ($sdk == 1) {
-      s/^SDK=/SDK=true/;
-    }
-    else {
-      s/^SDK=/SDK=false/;
-    }
-
     s/^PROGNAME=/PROGNAME=$progName/;
     s/^CFG=/CFG=$config/;
     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";
   }
 }
@@ -290,10 +273,16 @@ foreach my $progName (@programs) {
 #
 ###############################################
 my @programs = qw 
-/snmpd
-snmptrapd
+/snmptrapd
 /;
 
+if ($sdk == 1) {
+  push (@programs, "snmpdsdk");
+}
+else {
+  push (@programs, "snmpd");
+}
+
 foreach my $progName (@programs) {
   
   my $makefile_out = "$progName\\Makefile";
@@ -311,13 +300,6 @@ foreach my $progName (@programs) {
   {
     chomp;
     
-    if ($sdk == 1) {
-      s/^SDK=/SDK=true/;
-    }
-    else {
-      s/^SDK=/SDK=false/;
-    }
-
     s/^LINKTYPE=/LINKTYPE=$linktype/;
     s/^PROGNAME=/PROGNAME=$progName/;
     s/^CFG=/CFG=$config/;
@@ -375,7 +357,7 @@ while (<MAKE_IN>)
   while (<FILE_IN>)
   {
     chomp;
-    s/^#define PACKAGE_VERSION.*/#define PACKAGE_VERSION \"$version\"/;
+
     if ($prefix ne "") {
       s/^#define INSTALL_BASE.*/#define INSTALL_BASE \"$prefix\"/;
     }
@@ -399,6 +381,33 @@ while (<MAKE_IN>)
   }
 }
 
+###############################################
+#
+# Create libsnmp.def file for libsnmp_dll
+#
+###############################################
+if ($linktype eq "dynamic")
+{
+  my $file_out = "libsnmp_dll\\libsnmp.def";
+  my $file_in = "libsnmp_dll\\libsnmp.def.in";
+
+  open (FILE_OUT, ">$file_out") || die "Can't Open $file_out\n";
+  open (FILE_IN, "<$file_in") || die "Can't Open $file_in\n";
+  
+  print "creating $file_out\n";
+
+  while (<FILE_IN>)
+  {
+    chomp;
+
+    if ($b_ipv6 == "1") {
+      s/^;ipv6//i;
+    }
+
+    print FILE_OUT $_ . "\n";
+  }
+}
+
 
 print qq/
 ---------------------------------------------------------
@@ -407,11 +416,6 @@ print qq/
 
 /;
 
-if ($version eq "unknown") {
-  $version = "unknown - Could not determine version from ../configure!";
-}
-
-print "  Version:                    $version\n";
 print "  Config type:                $config\n";
 print "  SDK:                        " . ($sdk == 1 ? "enabled" : "disabled") . "\n";
 print "  Link type:                  $linktype\n";
diff --git a/win32/Makefile-apps.in b/win32/Makefile-apps.in
index 2113ade..4e24a92 100644
--- a/win32/Makefile-apps.in
+++ b/win32/Makefile-apps.in
@@ -14,6 +14,12 @@ NULL=
 NULL=nul
 !ENDIF 
 
+!IF $(SSL) == 1
+OPENSSL=libeay32.lib gdi32.lib
+!ELSE
+OPENSSL=""
+!ENDIF
+
 !IF  "$(CFG)" == "release"
 
 ALL : "..\bin\$(OUTDIR)\$(PROGNAME).exe" "$(INTDIR)"
@@ -24,7 +30,6 @@ CLEAN :
 	- at erase "$(INTDIR)\vc??.idb"
 	- at erase "$(INTDIR)\$(PROGNAME).pch"
 	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe"
-	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest"
 
 "..\bin\$(OUTDIR)" :
     if not exist "..\bin\$(OUTDIR)/$(NULL)" mkdir "..\bin\$(OUTDIR)"
@@ -33,7 +38,7 @@ CLEAN :
     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 
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\$(PROGNAME).pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 
 !IF "$(LINKTYPE)" == "dynamic"
 CPP_PROJ=$(CPP_PROJ) /D "NMAKE_NETSNMP_USE_DLL"
@@ -75,7 +80,7 @@ BSC32_FLAGS=/nologo /o"$(INTDIR)\$(PROGNAME).bsc"
 BSC32_SBRS= \
 
 LINK32=link.exe
-LINK32_FLAGS=netsnmp.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=$(OPENSSL) netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"..\bin\$(OUTDIR)/$(PROGNAME).exe" /libpath:"../lib/release" 
 LINK32_OBJS= \
 	"$(INTDIR)\$(PROGNAME).obj"
 
@@ -84,8 +89,6 @@ LINK32_OBJS= \
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
- if exist "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" \
-	    mt.exe -manifest "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" -outputresource:"..\bin\$(OUTDIR)\$(PROGNAME).exe";1
 !ELSE	# Linktype check
 	- at echo .
 	- at echo Aborting build.  Applications can not be built using --linktype=dynamic
@@ -106,7 +109,6 @@ CLEAN :
 	- at erase "$(INTDIR)\$(PROGNAME).pdb"
 	- at erase "$(INTDIR)\$(PROGNAME).pch"
 	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe"
-	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest"
 
 "..\bin\$(OUTDIR)" :
     if not exist "..\bin\$(OUTDIR)/$(NULL)" mkdir "..\bin\$(OUTDIR)"
@@ -115,7 +117,7 @@ CLEAN :
     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 "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\$(PROGNAME).pdb" /FD /c 
+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\$(PROGNAME).pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 
 !IF "$(LINKTYPE)" == "dynamic"
 CPP_PROJ=$(CPP_PROJ) /D "NMAKE_NETSNMP_USE_DLL"
@@ -163,7 +165,7 @@ BSC32_SBRS= \
 <<
 
 LINK32=link.exe
-LINK32_FLAGS=netsnmp.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=$(OPENSSL) netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /pdb:"$(INTDIR)\$(PROGNAME).pdb" /debug /machine:I386 /out:"..\bin\$(OUTDIR)/$(PROGNAME).exe" /pdbtype:sept /libpath:"../lib/debug" 
 LINK32_OBJS= \
 	"$(INTDIR)\$(PROGNAME).obj"
 
@@ -172,8 +174,6 @@ LINK32_OBJS= \
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
- if exist "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" \
-	    mt.exe -manifest "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" -outputresource:"..\bin\$(OUTDIR)\$(PROGNAME).exe";1
 !ELSE	# Linktype check
 	- at echo .
 	- at echo Aborting build.  Applications can not be built using --linktype=dynamic
diff --git a/win32/Makefile.in b/win32/Makefile.in
index bba5464..a55bb78 100644
--- a/win32/Makefile.in
+++ b/win32/Makefile.in
@@ -10,10 +10,17 @@ all : libs apps snmptrapd snmpd local
 
 clean : apps_clean libs_clean snmptrapd_clean snmpd_clean local_clean
 
+!IF "$(SDK)" == "true"
+snmpd : snmpdsdk_
+snmpd_clean : snmpdsdk_clean_
+netsnmpmibs : netsnmpmibssdk_
+netsnmpmibs_clean : netsnmpmibssdk_clean_
+!ELSE
 snmpd : snmpd_
 snmpd_clean : snmpd_clean_
 netsnmpmibs : netsnmpmibs_	
 netsnmpmibs_clean : netsnmpmibs_clean_
+!ENDIF
 
 !IF "$(LINKTYPE)" == "static"
 libsnmp : libsnmp_
@@ -23,8 +30,8 @@ libsnmp : libsnmp_dll_
 libsnmp_clean : libsnmp_dll_clean_
 !ENDIF
 
-libs : libagent libsnmp libnetsnmptrapd netsnmpmibs 
-libs_clean : libagent_clean libsnmp_clean libnetsnmptrapd_clean netsnmpmibs_clean
+libs : libagent libhelpers libsnmp libnetsnmptrapd netsnmpmibs 
+libs_clean : libagent_clean libhelpers_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
 
@@ -105,17 +112,22 @@ libagent ::
 	cd libagent
 	$(NMAKE) all
 	cd ..
-
+       
+libhelpers ::
+	cd libhelpers
+	$(NMAKE) all
+	cd ..
+	
 libsnmp_ ::
 	cd libsnmp
 	$(NMAKE) all
 	cd ..
-
+	
 libsnmp_dll_ ::
 	cd libsnmp_dll
 	$(NMAKE) all
 	cd ..
-
+	
 libnetsnmptrapd ::
 	cd libnetsnmptrapd
 	$(NMAKE) all
@@ -126,6 +138,11 @@ netsnmpmibs_ ::
 	$(NMAKE) all
 	cd ..
 
+netsnmpmibssdk_ ::
+	cd netsnmpmibssdk
+	$(NMAKE) all
+	cd ..
+
 snmpdf ::
 	cd snmpdf
 	$(NMAKE) all
@@ -221,6 +238,11 @@ snmpd_ ::
 	$(NMAKE) all
 	cd ..
 
+snmpdsdk_ ::
+	cd snmpdsdk
+	$(NMAKE) all
+	cd ..
+
 snmpconf ::
 	cd local
 	$(NMAKE) snmpconf
@@ -244,7 +266,12 @@ libagent_clean ::
 	cd libagent
 	$(NMAKE) clean
 	cd ..
-
+       
+libhelpers_clean ::
+	cd libhelpers
+	$(NMAKE) clean
+	cd ..
+	
 libsnmp_clean_ ::
 	cd libsnmp
 	$(NMAKE) clean
@@ -265,6 +292,11 @@ netsnmpmibs_clean_ ::
 	$(NMAKE) clean
 	cd ..
 
+netsnmpmibssdk_clean_ ::
+	cd netsnmpmibssdk
+	$(NMAKE) clean
+	cd ..
+
 snmpdf_clean ::
 	cd snmpdf
 	$(NMAKE) clean
@@ -360,6 +392,11 @@ snmpd_clean_ ::
 	$(NMAKE) clean
 	cd ..
 
+snmpdsdk_clean_ ::
+	cd snmpdsdk
+	$(NMAKE) clean
+	cd ..
+
 snmpconf_clean ::
 	cd local
 	$(NMAKE) snmpconf_clean
@@ -384,9 +421,11 @@ help ::
         @-echo "all             libs apps snmptrapd snmpd                     "
         @-echo "clean           libs_clean apps_clean snmptrapd_clean         "
         @-echo "                snmpd_clean                                   "
-        @-echo "libs            libagent libsnmp libnetsnmptrapd netsnmpmibs  "
-        @-echo "libs_clean      libagent_clean libnetsnmptrapd_clean          "
-        @-echo "                libsnmp_clean netsnmpmibs_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 "                                                              "
         @-echo "apps            encode_keychange snmpbulkget snmpbulkwalk     "
         @-echo "                snmpdelta snmpdf snmpget snmpgetnext          "
@@ -482,9 +521,6 @@ install_devel ::
         @-mkdir $(PREFIX_DOS)\include > NUL:
         @-mkdir $(PREFIX_DOS)\include\net-snmp > NUL:
 
-	@-echo Copying PDB files to $(PREFIX_DOS)\bin
-	@-Copy win32\bin\$(CFG)\*.pdb $(PREFIX_DOS)\bin > NUL:
-
 	@-echo Copying library files to $(PREFIX_DOS)\lib
         @-copy win32\lib\$(CFG)\*.lib $(PREFIX_DOS)\lib > NUL:
 
@@ -495,9 +531,5 @@ install_devel ::
         @-copy win32\net-snmp\library\*.h $(PREFIX_DOS)\include\net-snmp\library > NUL:
 
         @-echo Done copying files to $(PREFIX_DOS)
-
-	@-echo Copying PDB files to %SYSTEMROOT%\System32
-	@-Copy win32\bin\$(CFG)\*.pdb %SYSTEMROOT%\System32 > NUL:
-
         cd win32
 
diff --git a/win32/build.pl b/win32/build.pl
index 196b779..13bdf8f 100644
--- a/win32/build.pl
+++ b/win32/build.pl
@@ -220,7 +220,6 @@ if ($logging eq "enabled") {
 
   # 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 b/win32/config.h
new file mode 100644
index 0000000..941cb9a
--- /dev/null
+++ b/win32/config.h
@@ -0,0 +1,5 @@
+/*
+ * Everyone should be including the new style config header.
+ * For now, we'll do it for them for backwards compatability.
+ */
+#include <net-snmp/net-snmp-config.h>
diff --git a/win32/config.h.borland b/win32/config.h.borland
index 47e1b07..f8022c3 100644
--- a/win32/config.h.borland
+++ b/win32/config.h.borland
@@ -164,6 +164,9 @@
 /* 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
 
@@ -182,12 +185,21 @@
 /* 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
 
@@ -227,6 +239,9 @@
 /* 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
 
@@ -476,6 +491,9 @@
 /* Define if you have the kstat library (-lkstat).  */
 #undef HAVE_LIBKSTAT
 
+/* Define if you have the kvm library (-lkvm).  */
+#undef HAVE_LIBKVM
+
 /* Define if you have the m library (-lm).  */
 #undef HAVE_LIBM
 
@@ -525,6 +543,9 @@
 /* type check for in_addr_t */
 #define in_addr_t u_long
 
+/* define if your compiler (processor) defines __FUNCTION__ for you */
+#undef HAVE_CPP_UNDERBAR_FUNCTION_DEFINED
+
 /* mib pointer to the top of the extensible tree.  This has been
  assigned to UCDavis by the iana group.  Optionally, point this to the
  location in the tree your company/organization has been allocated. */
@@ -703,6 +724,9 @@
 /* UNdefine to allow specifying zero-length community string */
 /* #define NETSNMP_NO_ZEROLENGTH_COMMUNITY 1 */
 
+/* #define NETSNMP_EXIT_ON_BAD_KLREAD  */
+/* define to exit the agent on a bad kernel read */
+
 #define NETSNMP_LASTFIELD -1      /* internal define */
 
 /* Define if you have the strdup function.  */
@@ -711,6 +735,43 @@
 /* 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/encode_keychange/encode_keychange.dsp b/win32/encode_keychange/encode_keychange.dsp
index 5a252f5..5e19366 100644
--- a/win32/encode_keychange/encode_keychange.dsp
+++ b/win32/encode_keychange/encode_keychange.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/encode_keychange.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/encode_keychange.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "encode_keychange - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/encode_keychange.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/encode_keychange.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/libagent/Makefile.in b/win32/libagent/Makefile.in
index 30a6cf6..5422045 100644
--- a/win32/libagent/Makefile.in
+++ b/win32/libagent/Makefile.in
@@ -9,47 +9,99 @@ NULL=
 NULL=nul
 !ENDIF 
 
+!IF  "$(CFG)" == "release"
+
 ALL : "..\lib\$(OUTDIR)\netsnmpagent.lib"
 
 
+CLEAN :
+	- at erase "$(INTDIR)\agent_handler.obj"
+	- at erase "$(INTDIR)\agent_index.obj"
+	- at erase "$(INTDIR)\agent_read_config.obj"
+	- at erase "$(INTDIR)\agent_registry.obj"
+	- at erase "$(INTDIR)\agent_trap.obj"
+	- at erase "$(INTDIR)\snmp_agent.obj"
+	- at erase "$(INTDIR)\snmp_vars.obj"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
+	- at erase "..\lib\$(OUTDIR)\netsnmpagent.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 /GX /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\libagent.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /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)\libagent.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"..\lib\$(OUTDIR)\netsnmpagent.lib" 
 LIB32_OBJS= \
 	"$(INTDIR)\agent_handler.obj" \
 	"$(INTDIR)\agent_index.obj" \
 	"$(INTDIR)\agent_read_config.obj" \
 	"$(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)\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"
+	"$(INTDIR)\snmp_vars.obj"
+
+"..\lib\$(OUTDIR)\netsnmpagent.lib" : "..\lib\$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "debug"
+
+ALL : "..\lib\$(OUTDIR)\netsnmpagent.lib"
+
 
 CLEAN :
-	- at for %f in ($(LIB32_OBJS)) do erase %%f
+	- at erase "$(INTDIR)\agent_handler.obj"
+	- at erase "$(INTDIR)\agent_index.obj"
+	- at erase "$(INTDIR)\agent_read_config.obj"
+	- at erase "$(INTDIR)\agent_registry.obj"
+	- at erase "$(INTDIR)\agent_trap.obj"
+	- at erase "$(INTDIR)\snmp_agent.obj"
+	- at erase "$(INTDIR)\snmp_vars.obj"
 	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\vc??.pdb"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
 	- at erase "..\lib\$(OUTDIR)\netsnmpagent.lib"
 
 "..\lib\$(OUTDIR)" :
@@ -59,11 +111,7 @@ CLEAN :
     if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
 
 CPP=cl.exe
-!IF  "$(CFG)" == "release"
-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 
-!ELSE
-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 
-!ENDIF
+CPP_PROJ=/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 "_MBCS" /Fp"$(INTDIR)\libagent.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 
 .c{$(INTDIR)}.obj::
    $(CPP) @<<
@@ -80,16 +128,44 @@ CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I
    $(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)\libagent.bsc" 
+BSC32_SBRS= \
+	
 LIB32=link.exe -lib
 LIB32_FLAGS=/nologo /out:"..\lib\$(OUTDIR)\netsnmpagent.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\agent_handler.obj" \
+	"$(INTDIR)\agent_index.obj" \
+	"$(INTDIR)\agent_read_config.obj" \
+	"$(INTDIR)\agent_registry.obj" \
+	"$(INTDIR)\agent_trap.obj" \
+	"$(INTDIR)\snmp_agent.obj" \
+	"$(INTDIR)\snmp_vars.obj"
 
 "..\lib\$(OUTDIR)\netsnmpagent.lib" : "..\lib\$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
     $(LIB32) @<<
   $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
 <<
 
+!ENDIF 
+
 
 !IF "$(NO_EXTERNAL_DEPS)" != "1"
 !IF EXISTS("libagent.dep")
@@ -100,6 +176,7 @@ LIB32_FLAGS=/nologo /out:"..\lib\$(OUTDIR)\netsnmpagent.lib"
 !ENDIF 
 
 
+!IF "$(CFG)" == "release" || "$(CFG)" == "debug"
 SOURCE=..\..\agent\agent_handler.c
 
 "$(INTDIR)\agent_handler.obj" : $(SOURCE) "$(INTDIR)"
@@ -123,10 +200,6 @@ SOURCE=..\..\agent\agent_registry.c
 "$(INTDIR)\agent_registry.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-SOURCE=..\..\agent\agent_sysORTable.c
-
-"$(INTDIR)\agent_sysORTable.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 SOURCE=..\..\agent\agent_trap.c
 
@@ -146,152 +219,7 @@ SOURCE=..\..\agent\snmp_vars.c
 	$(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
+!ENDIF 
 
-"$(INTDIR)\watcher.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
 
diff --git a/win32/libagent/libagent.def b/win32/libagent/libagent.def
new file mode 100644
index 0000000..686a50e
--- /dev/null
+++ b/win32/libagent/libagent.def
@@ -0,0 +1,17 @@
+;       @(#)libagent.def    1.0 10/26/97 (gmarzot at 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 892e8d3..f70d494 100644
--- a/win32/libagent/libagent.dsp
+++ b/win32/libagent/libagent.dsp
@@ -101,120 +101,16 @@ SOURCE=..\..\agent\agent_registry.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\agent_sysORTable.c
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\agent\agent_trap.c
 # 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"
 
@@ -237,80 +133,16 @@ SOURCE="..\..\include\net-snmp\agent\agent_registry.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\agent\agent_sysORTable.h"
-# End Source File
-# Begin Source File
-
 SOURCE="..\..\include\net-snmp\agent\agent_trap.h"
 # 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
new file mode 100644
index 0000000..ddfb46e
--- /dev/null
+++ b/win32/libhelpers/Makefile.in
@@ -0,0 +1,405 @@
+PROGNAME=
+CFG=
+OUTDIR=
+INTDIR=
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF  "$(CFG)" == "release"
+
+ALL : "..\lib\$(OUTDIR)\netsnmphelpers.lib"
+
+
+CLEAN :
+	- at erase "$(INTDIR)\all_helpers.obj"
+	- at erase "$(INTDIR)\baby_steps.obj"
+	- at erase "$(INTDIR)\bulk_to_next.obj"
+	- at erase "$(INTDIR)\cache_handler.obj"
+	- at erase "$(INTDIR)\debug_handler.obj"
+	- at erase "$(INTDIR)\instance.obj"
+	- at erase "$(INTDIR)\mode_end_call.obj"
+	- at erase "$(INTDIR)\multiplexer.obj"
+	- at erase "$(INTDIR)\null.obj"
+	- at erase "$(INTDIR)\old_api.obj"
+	- at erase "$(INTDIR)\read_only.obj"
+	- at erase "$(INTDIR)\row_merge.obj"
+	- at erase "$(INTDIR)\scalar.obj"
+	- at erase "$(INTDIR)\scalar_group.obj"
+	- at erase "$(INTDIR)\serialize.obj"
+	- at erase "$(INTDIR)\stash_cache.obj"
+	- at erase "$(INTDIR)\stash_to_next.obj"
+	- at erase "$(INTDIR)\table.obj"
+	- at erase "$(INTDIR)\table_array.obj"
+	- at erase "$(INTDIR)\table_container.obj"
+	- at erase "$(INTDIR)\table_data.obj"
+	- at erase "$(INTDIR)\table_tdata.obj"
+	- at erase "$(INTDIR)\table_dataset.obj"
+	- at erase "$(INTDIR)\table_iterator.obj"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\watcher.obj"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
+	- at 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 /GX /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\libhelpers.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /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 :
+	- at erase "$(INTDIR)\all_helpers.obj"
+	- at erase "$(INTDIR)\baby_steps.obj"
+	- at erase "$(INTDIR)\bulk_to_next.obj"
+	- at erase "$(INTDIR)\cache_handler.obj"
+	- at erase "$(INTDIR)\debug_handler.obj"
+	- at erase "$(INTDIR)\instance.obj"
+	- at erase "$(INTDIR)\mode_end_call.obj"
+	- at erase "$(INTDIR)\multiplexer.obj"
+	- at erase "$(INTDIR)\null.obj"
+	- at erase "$(INTDIR)\old_api.obj"
+	- at erase "$(INTDIR)\read_only.obj"
+	- at erase "$(INTDIR)\row_merge.obj"
+	- at erase "$(INTDIR)\scalar.obj"
+	- at erase "$(INTDIR)\scalar_group.obj"
+	- at erase "$(INTDIR)\serialize.obj"
+	- at erase "$(INTDIR)\stash_cache.obj"
+	- at erase "$(INTDIR)\stash_to_next.obj"
+	- at erase "$(INTDIR)\table.obj"
+	- at erase "$(INTDIR)\table_array.obj"
+	- at erase "$(INTDIR)\table_container.obj"
+	- at erase "$(INTDIR)\table_data.obj"
+	- at erase "$(INTDIR)\table_tdata.obj"
+	- at erase "$(INTDIR)\table_dataset.obj"
+	- at erase "$(INTDIR)\table_iterator.obj"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\vc??.pdb"
+	- at erase "$(INTDIR)\watcher.obj"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
+	- at 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 /GX /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\libhelpers.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /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
new file mode 100644
index 0000000..e90c56d
--- /dev/null
+++ b/win32/libhelpers/libhelpers.dsp
@@ -0,0 +1,252 @@
+# 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/Makefile.in b/win32/libnetsnmptrapd/Makefile.in
index 3824919..3ac4c88 100644
--- a/win32/libnetsnmptrapd/Makefile.in
+++ b/win32/libnetsnmptrapd/Makefile.in
@@ -19,6 +19,7 @@ CLEAN :
 	- at erase "$(INTDIR)\snmptrapd_handlers.obj"
 	- at erase "$(INTDIR)\snmptrapd_log.obj"
 	- at erase "$(INTDIR)\snmptrapd_auth.obj"
+	- at erase "$(INTDIR)\notification_log.obj"
 	- at erase "$(INTDIR)\winservice.obj"
 	- at erase "$(INTDIR)\vc??.idb"
 	- at erase "$(INTDIR)\$(PROGNAME).pch"
@@ -31,7 +32,7 @@ CLEAN :
     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 
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\libnetsnmptrapd.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 
 .c{$(INTDIR)}.obj::
    $(CPP) @<<
@@ -67,7 +68,7 @@ RSC=rc.exe
 BSC32=bscmake.exe
 BSC32_FLAGS=/nologo /o"$(INTDIR)\libnetsnmptrapd.bsc" 
 BSC32_SBRS= \
-
+	
 LIB32=link.exe -lib
 LIB32_FLAGS=/nologo /out:"..\lib\$(OUTDIR)\netsnmptrapd.lib" 
 LIB32_OBJS= \
@@ -75,6 +76,7 @@ LIB32_OBJS= \
 	"$(INTDIR)\snmptrapd_handlers.obj" \
 	"$(INTDIR)\snmptrapd_log.obj" \
 	"$(INTDIR)\snmptrapd_auth.obj" \
+	"$(INTDIR)\notification_log.obj" \
 	"$(INTDIR)\winservice.obj"
 
 "..\lib\$(OUTDIR)\netsnmptrapd.lib" : "..\lib\$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
@@ -92,6 +94,7 @@ CLEAN :
 	- at erase "$(INTDIR)\snmptrapd_handlers.obj"
 	- at erase "$(INTDIR)\snmptrapd_log.obj"
 	- at erase "$(INTDIR)\snmptrapd_auth.obj"
+	- at erase "$(INTDIR)\notification_log.obj"
 	- at erase "$(INTDIR)\winservice.obj"
 	- at erase "$(INTDIR)\vc??.idb"
 	- at erase "$(INTDIR)\vc??.pdb"
@@ -105,7 +108,7 @@ CLEAN :
     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 
+CPP_PROJ=/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 "_MBCS" /Fp"$(INTDIR)\libnetsnmptrapd.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 
 .c{$(INTDIR)}.obj::
    $(CPP) @<<
@@ -141,7 +144,7 @@ RSC=rc.exe
 BSC32=bscmake.exe
 BSC32_FLAGS=/nologo /o"$(INTDIR)\libnetsnmptrapd.bsc" 
 BSC32_SBRS= \
-
+	
 LIB32=link.exe -lib
 LIB32_FLAGS=/nologo /out:"..\lib\$(OUTDIR)\netsnmptrapd.lib" 
 LIB32_OBJS= \
@@ -149,6 +152,7 @@ LIB32_OBJS= \
 	"$(INTDIR)\snmptrapd_handlers.obj" \
 	"$(INTDIR)\snmptrapd_log.obj" \
 	"$(INTDIR)\snmptrapd_auth.obj" \
+	"$(INTDIR)\notification_log.obj" \
 	"$(INTDIR)\winservice.obj"
 
 "..\lib\$(OUTDIR)\netsnmptrapd.lib" : "..\lib\$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
@@ -193,6 +197,11 @@ SOURCE=..\..\apps\snmptrapd_auth.c
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\agent\mibgroup\notification-log-mib\notification_log.c
+
+"$(INTDIR)\notification_log.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
 SOURCE=..\..\snmplib\winservice.c
 
 "$(INTDIR)\winservice.obj" : $(SOURCE) "$(INTDIR)"
diff --git a/win32/libnetsnmptrapd/libnetsnmptrapd.dsp b/win32/libnetsnmptrapd/libnetsnmptrapd.dsp
index 08b41ff..d54743b 100644
--- a/win32/libnetsnmptrapd/libnetsnmptrapd.dsp
+++ b/win32/libnetsnmptrapd/libnetsnmptrapd.dsp
@@ -89,15 +89,15 @@ SOURCE=..\..\apps\snmptrapd.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\apps\snmptrapd_auth.c
+SOURCE=..\..\apps\snmptrapd_handlers.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\apps\snmptrapd_handlers.c
+SOURCE=..\..\apps\snmptrapd_log.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\apps\snmptrapd_log.c
+SOURCE=..\..\apps\snmptrapd_auth.c
 # End Source File
 # End Group
 # Begin Group "Header Files"
@@ -105,20 +105,21 @@ SOURCE=..\..\apps\snmptrapd_log.c
 # PROP Default_Filter ""
 # Begin Source File
 
-SOURCE="..\..\agent\mibgroup\notification-log-mib\notification_log.h"
+SOURCE="..\..\apps\snmptrapd_handlers.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\apps\snmptrapd_auth.h"
+SOURCE="..\..\apps\snmptrapd_log.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\apps\snmptrapd_handlers.h"
+SOURCE="..\..\apps\snmptrapd_auth.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\apps\snmptrapd_log.h"
+SOURCE="..\..\agent\mibgroup\notification-log-mib\notification_log.h"
 # End Source File
 # End Group
 # End Target
 # End Project
+
diff --git a/win32/libsdll.dsw b/win32/libsdll.dsw
new file mode 100644
index 0000000..155c999
--- /dev/null
+++ b/win32/libsdll.dsw
@@ -0,0 +1,77 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "libagent"=".\libagent\libagent.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "libhelpers"=".\libhelpers\libhelpers.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "libsnmp_dll"=".\libsnmp_dll\libsnmp_dll.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "netsnmpmibs"=".\netsnmpmibs\netsnmpmibs.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "libnetsnmptrapd"=".\libnetsnmptrapd\libnetsnmptrapd.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/win32/libsnmp/Makefile.in b/win32/libsnmp/Makefile.in
index 98d83c8..1c459b5 100644
--- a/win32/libsnmp/Makefile.in
+++ b/win32/libsnmp/Makefile.in
@@ -2,7 +2,6 @@ PROGNAME=
 CFG=
 OUTDIR=
 INTDIR=
-SDK=
 
 !IF "$(OS)" == "Windows_NT"
 NULL=
@@ -10,13 +9,120 @@ NULL=
 NULL=nul
 !ENDIF 
 
+!IF  "$(CFG)" == "release"
+
 ALL : "..\lib\$(OUTDIR)\netsnmp.lib"
 
+
+CLEAN :
+	- at erase "$(INTDIR)\asn1.obj"
+	- at erase "$(INTDIR)\callback.obj"
+	- at erase "$(INTDIR)\check_varbind.obj"
+	- at erase "$(INTDIR)\cmu_compat.obj"
+	- at erase "$(INTDIR)\container.obj"
+	- at erase "$(INTDIR)\container_binary_array.obj"
+	- at erase "$(INTDIR)\container_iterator.obj"
+	- at erase "$(INTDIR)\container_list_ssll.obj"
+	- at erase "$(INTDIR)\container_null.obj"
+	- at erase "$(INTDIR)\data_list.obj"
+	- at erase "$(INTDIR)\default_store.obj"
+	- at erase "$(INTDIR)\getopt.obj"
+	- at erase "$(INTDIR)\int64.obj"
+	- at erase "$(INTDIR)\inet_ntop.obj"
+	- at erase "$(INTDIR)\inet_pton.obj"
+	- at erase "$(INTDIR)\keytools.obj"
+	- at erase "$(INTDIR)\lcd_time.obj"
+	- at erase "$(INTDIR)\md5.obj"
+	- at erase "$(INTDIR)\mib.obj"
+	- at erase "$(INTDIR)\mt_support.obj"
+	- at erase "$(INTDIR)\oid_stash.obj"
+	- at erase "$(INTDIR)\parse.obj"
+	- at erase "$(INTDIR)\read_config.obj"
+	- at erase "$(INTDIR)\scapi.obj"
+	- at erase "$(INTDIR)\snmp-tc.obj"
+	- at erase "$(INTDIR)\snmp.obj"
+	- at erase "$(INTDIR)\snmp_alarm.obj"
+	- at erase "$(INTDIR)\snmp_api.obj"
+	- at erase "$(INTDIR)\snmp_auth.obj"
+	- at erase "$(INTDIR)\snmp_client.obj"
+	- at erase "$(INTDIR)\snmp_debug.obj"
+	- at erase "$(INTDIR)\snmp_enum.obj"
+	- at erase "$(INTDIR)\snmp_logging.obj"
+	- at erase "$(INTDIR)\snmp_parse_args.obj"
+	- at erase "$(INTDIR)\snmp_secmod.obj"
+	- at erase "$(INTDIR)\snmp_transport.obj"
+	- at erase "$(INTDIR)\snmp_version.obj"
+	- at erase "$(INTDIR)\snmp_service.obj"
+	- at erase "$(INTDIR)\snmpCallbackDomain.obj"
+	- at erase "$(INTDIR)\snmpTCPDomain.obj"
+	- at erase "$(INTDIR)\snmpTCPIPv6Domain.obj"
+	- at erase "$(INTDIR)\snmpUDPDomain.obj"
+	- at erase "$(INTDIR)\snmpUDPIPv6Domain.obj"
+	- at erase "$(INTDIR)\snmpusm.obj"
+	- at erase "$(INTDIR)\snmpv3.obj"
+	- at erase "$(INTDIR)\strlcpy.obj"
+	- at erase "$(INTDIR)\system.obj"
+	- at erase "$(INTDIR)\tools.obj"
+	- at erase "$(INTDIR)\strtok_r.obj"
+	- at erase "$(INTDIR)\ucd_compat.obj"
+	- at erase "$(INTDIR)\vacm.obj"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\winpipe.obj"
+	- at erase "$(INTDIR)\fd_event_manager.obj"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
+	- at 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 /GX /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\$(PROGNAME).pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /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)\closedir.obj" \
+	"$(INTDIR)\cmu_compat.obj" \
 	"$(INTDIR)\container.obj" \
 	"$(INTDIR)\container_binary_array.obj" \
 	"$(INTDIR)\container_iterator.obj" \
@@ -24,34 +130,21 @@ LIB32_OBJS= \
 	"$(INTDIR)\container_null.obj" \
 	"$(INTDIR)\data_list.obj" \
 	"$(INTDIR)\default_store.obj" \
-	"$(INTDIR)\fd_event_manager.obj" \
 	"$(INTDIR)\getopt.obj" \
-	"$(INTDIR)\gettimeofday.obj" \
+	"$(INTDIR)\int64.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" \
@@ -61,29 +154,92 @@ LIB32_OBJS= \
 	"$(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)\strtok_r.obj" \
-	"$(INTDIR)\strtoull.obj" \
 	"$(INTDIR)\system.obj" \
 	"$(INTDIR)\tools.obj" \
+	"$(INTDIR)\strtok_r.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
+	"$(INTDIR)\winpipe.obj" \
+	"$(INTDIR)\fd_event_manager.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 :
-	- at for %f in $(LIB32_OBJS) do erase %%f
+	- at erase "$(INTDIR)\asn1.obj"
+	- at erase "$(INTDIR)\callback.obj"
+	- at erase "$(INTDIR)\check_varbind.obj"
+	- at erase "$(INTDIR)\cmu_compat.obj"
+	- at erase "$(INTDIR)\container.obj"
+	- at erase "$(INTDIR)\container_binary_array.obj"
+	- at erase "$(INTDIR)\container_iterator.obj"
+	- at erase "$(INTDIR)\container_list_ssll.obj"
+	- at erase "$(INTDIR)\container_null.obj"
+	- at erase "$(INTDIR)\data_list.obj"
+	- at erase "$(INTDIR)\default_store.obj"
+	- at erase "$(INTDIR)\getopt.obj"
+	- at erase "$(INTDIR)\int64.obj"
+	- at erase "$(INTDIR)\inet_ntop.obj"
+	- at erase "$(INTDIR)\inet_pton.obj"
+	- at erase "$(INTDIR)\keytools.obj"
+	- at erase "$(INTDIR)\lcd_time.obj"
+	- at erase "$(INTDIR)\md5.obj"
+	- at erase "$(INTDIR)\mib.obj"
+	- at erase "$(INTDIR)\mt_support.obj"
+	- at erase "$(INTDIR)\oid_stash.obj"
+	- at erase "$(INTDIR)\parse.obj"
+	- at erase "$(INTDIR)\read_config.obj"
+	- at erase "$(INTDIR)\scapi.obj"
+	- at erase "$(INTDIR)\snmp-tc.obj"
+	- at erase "$(INTDIR)\snmp.obj"
+	- at erase "$(INTDIR)\snmp_alarm.obj"
+	- at erase "$(INTDIR)\snmp_api.obj"
+	- at erase "$(INTDIR)\snmp_auth.obj"
+	- at erase "$(INTDIR)\snmp_client.obj"
+	- at erase "$(INTDIR)\snmp_debug.obj"
+	- at erase "$(INTDIR)\snmp_enum.obj"
+	- at erase "$(INTDIR)\snmp_logging.obj"
+	- at erase "$(INTDIR)\snmp_parse_args.obj"
+	- at erase "$(INTDIR)\snmp_secmod.obj"
+	- at erase "$(INTDIR)\snmp_transport.obj"
+	- at erase "$(INTDIR)\snmp_version.obj"
+	- at erase "$(INTDIR)\snmp_service.obj"
+	- at erase "$(INTDIR)\snmpCallbackDomain.obj"
+	- at erase "$(INTDIR)\snmpTCPDomain.obj"
+	- at erase "$(INTDIR)\snmpTCPIPv6Domain.obj"
+	- at erase "$(INTDIR)\snmpUDPDomain.obj"
+	- at erase "$(INTDIR)\snmpUDPIPv6Domain.obj"
+	- at erase "$(INTDIR)\snmpusm.obj"
+	- at erase "$(INTDIR)\snmpv3.obj"
+	- at erase "$(INTDIR)\strlcpy.obj"
+	- at erase "$(INTDIR)\system.obj"
+	- at erase "$(INTDIR)\tools.obj"
+	- at erase "$(INTDIR)\strtok_r.obj"
+	- at erase "$(INTDIR)\ucd_compat.obj"
+	- at erase "$(INTDIR)\vacm.obj"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\vc??.pdb"
+	- at erase "$(INTDIR)\winpipe.obj"
+	- at erase "$(INTDIR)\fd_event_manager.obj"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
 	- at erase "..\lib\$(OUTDIR)\netsnmp.lib"
 
 "..\lib\$(OUTDIR)" :
@@ -93,11 +249,7 @@ CLEAN :
     if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
 
 CPP=cl.exe
-!IF  "$(CFG)" == "release"
-CPP_PROJ=/nologo /MD /W3 /EHsc /Zi /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_WARNINGS" /D "_CRT_NONSTDC_NO_WARNINGS" /D "_MBCS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\$(PROGNAME).pdb" /FD /c 
-!ELSEIF  "$(CFG)" == "debug"
-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /D "WIN32" /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
+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\$(PROGNAME).pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 
 .c{$(INTDIR)}.obj::
    $(CPP) @<<
@@ -114,15 +266,90 @@ CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I
    $(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)\strlcpy.obj" \
+	"$(INTDIR)\system.obj" \
+	"$(INTDIR)\tools.obj" \
+	"$(INTDIR)\strtok_r.obj" \
+	"$(INTDIR)\ucd_compat.obj" \
+	"$(INTDIR)\vacm.obj" \
+	"$(INTDIR)\winpipe.obj" \
+	"$(INTDIR)\fd_event_manager.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")
@@ -133,6 +360,7 @@ LIB32_FLAGS=/nologo /out:"..\lib\$(OUTDIR)\netsnmp.lib"
 !ENDIF 
 
 
+!IF "$(CFG)" == "release" || "$(CFG)" == "debug"
 SOURCE=..\..\snmplib\asn1.c
 
 "$(INTDIR)\asn1.obj" : $(SOURCE) "$(INTDIR)"
@@ -151,9 +379,9 @@ SOURCE=..\..\snmplib\check_varbind.c
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\closedir.c
+SOURCE=..\..\snmplib\cmu_compat.c
 
-"$(INTDIR)\closedir.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\cmu_compat.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
@@ -199,21 +427,15 @@ SOURCE=..\..\snmplib\default_store.c
 	$(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\gettimeofday.c
+SOURCE=..\..\snmplib\int64.c
 
-"$(INTDIR)\gettimeofday.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\int64.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
@@ -229,24 +451,12 @@ SOURCE=..\..\snmplib\inet_pton.c
 	$(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)"
@@ -277,12 +487,6 @@ SOURCE=..\..\snmplib\oid_stash.c
 	$(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)"
@@ -295,12 +499,6 @@ SOURCE=..\..\snmplib\read_config.c
 	$(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)"
@@ -319,72 +517,6 @@ SOURCE=..\..\snmplib\snmp.c
 	$(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)"
@@ -439,57 +571,69 @@ SOURCE=..\..\snmplib\snmp_secmod.c
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\snmp_transport.c
+
+"$(INTDIR)\snmp_transport.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\snmp_version.c
+
+"$(INTDIR)\snmp_version.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\snmp_service.c
 
 "$(INTDIR)\snmp_service.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\snmp_transport.c
+SOURCE=..\..\snmplib\snmpCallbackDomain.c
 
-"$(INTDIR)\snmp_transport.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpCallbackDomain.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\snmp_version.c
+SOURCE=..\..\snmplib\snmpTCPDomain.c
 
-"$(INTDIR)\snmp_version.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpTCPDomain.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\snmpusm.c
+SOURCE=..\..\snmplib\snmpTCPIPv6Domain.c
 
-"$(INTDIR)\snmpusm.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpTCPIPv6Domain.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\snmpv3.c
+SOURCE=..\..\snmplib\snmpUDPDomain.c
 
-"$(INTDIR)\snmpv3.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpUDPDomain.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\strlcat.c
+SOURCE=..\..\snmplib\snmpUDPIPv6Domain.c
 
-"$(INTDIR)\strlcat.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpUDPIPv6Domain.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\strlcpy.c
+SOURCE=..\..\snmplib\snmpusm.c
 
-"$(INTDIR)\strlcpy.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpusm.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\strtok_r.c
+SOURCE=..\..\snmplib\snmpv3.c
 
-"$(INTDIR)\strtok_r.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpv3.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\strtoull.c
+SOURCE=..\..\snmplib\strlcpy.c
 
-"$(INTDIR)\strtoull.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\strlcpy.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
@@ -505,6 +649,12 @@ SOURCE=..\..\snmplib\tools.c
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\strtok_r.c
+
+"$(INTDIR)\strtok_r.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\ucd_compat.c
 
 "$(INTDIR)\ucd_compat.obj" : $(SOURCE) "$(INTDIR)"
@@ -523,3 +673,11 @@ SOURCE=..\..\snmplib\winpipe.c
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\fd_event_manager.c
+
+"$(INTDIR)\fd_event_manager.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
diff --git a/win32/libsnmp/libsnmp.dsp b/win32/libsnmp/libsnmp.dsp
index 2386331..81201db 100644
--- a/win32/libsnmp/libsnmp.dsp
+++ b/win32/libsnmp/libsnmp.dsp
@@ -97,7 +97,7 @@ SOURCE=..\..\snmplib\check_varbind.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\closedir.c
+SOURCE=..\..\snmplib\cmu_compat.c
 # End Source File
 # Begin Source File
 
@@ -129,18 +129,10 @@ SOURCE=..\..\snmplib\default_store.c
 # 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
@@ -157,10 +149,6 @@ SOURCE=..\..\snmplib\keytools.c
 # 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
@@ -181,10 +169,6 @@ SOURCE=..\..\snmplib\oid_stash.c
 # 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
@@ -193,10 +177,6 @@ SOURCE=..\..\snmplib\read_config.c
 # 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
@@ -245,10 +225,6 @@ SOURCE=..\..\snmplib\snmp_secmod.c
 # 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
@@ -257,51 +233,27 @@ SOURCE=..\..\snmplib\snmp_version.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\transports\snmpAliasDomain.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\transports\snmpCallbackDomain.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\transports\snmpIPv4BaseDomain.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\transports\snmpIPv6BaseDomain.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\transports\snmpSocketBaseDomain.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\transports\snmpTCPBaseDomain.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\transports\snmpTCPDomain.c
+SOURCE=..\..\snmplib\snmp_service.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\transports\snmpTCPIPv6Domain.c
+SOURCE=..\..\snmplib\snmpCallbackDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\transports\snmpUDPBaseDomain.c
+SOURCE=..\..\snmplib\snmpTCPDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\transports\snmpUDPDomain.c
+SOURCE=..\..\snmplib\snmpTCPIPv6Domain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\transports\snmpUDPIPv4BaseDomain.c
+SOURCE=..\..\snmplib\snmpUDPDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\transports\snmpUDPIPv6Domain.c
+SOURCE=..\..\snmplib\snmpUDPIPv6Domain.c
 # End Source File
 # Begin Source File
 
@@ -313,27 +265,19 @@ SOURCE=..\..\snmplib\snmpv3.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\strlcat.c
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\snmplib\strlcpy.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\strtok_r.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\strtoull.c
+SOURCE=..\..\snmplib\system.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\system.c
+SOURCE=..\..\snmplib\tools.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\tools.c
+SOURCE=..\..\snmplib\strtok_r.c
 # End Source File
 # Begin Source File
 
@@ -347,6 +291,10 @@ SOURCE=..\..\snmplib\vacm.c
 
 SOURCE=..\..\snmplib\winpipe.c
 # End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\fd_event_manager.c
+# End Source File
 # End Group
 # Begin Group "Header Files"
 
@@ -365,19 +313,19 @@ SOURCE="..\..\include\net-snmp\library\check_varbind.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\container.h"
+SOURCE="..\..\include\net-snmp\library\cmu_compat.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\data_list.h"
+SOURCE="..\..\include\net-snmp\library\container.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\default_store.h"
+SOURCE="..\..\include\net-snmp\library\data_list.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\fd_event_manager.h"
+SOURCE="..\..\include\net-snmp\library\default_store.h"
 # End Source File
 # Begin Source File
 
@@ -393,10 +341,6 @@ SOURCE="..\..\include\net-snmp\library\keytools.h"
 # 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
@@ -489,15 +433,15 @@ SOURCE="..\..\include\net-snmp\library\snmpv3.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\strtok_r.h"
+SOURCE="..\..\include\net-snmp\library\system.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\system.h"
+SOURCE="..\..\include\net-snmp\library\tools.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\tools.h"
+SOURCE="..\..\include\net-snmp\library\strtok_r.h"
 # End Source File
 # Begin Source File
 
diff --git a/win32/libsnmp_dll/Makefile.in b/win32/libsnmp_dll/Makefile.in
index 42235d2..99c27ff 100644
--- a/win32/libsnmp_dll/Makefile.in
+++ b/win32/libsnmp_dll/Makefile.in
@@ -3,7 +3,6 @@ CFG=
 OUTDIR=
 INTDIR=
 SSL=
-SDK=
 
 !IF "$(OS)" == "Windows_NT"
 NULL=
@@ -11,13 +10,133 @@ NULL=
 NULL=nul
 !ENDIF 
 
+!IF $(SSL) == 1
+OPENSSL=libeay32.lib gdi32.lib
+!ELSE
+OPENSSL=""
+!ENDIF
+
+!IF  "$(CFG)" == "release"
+
 ALL : "..\bin\$(OUTDIR)\netsnmp.dll"
 
+
+CLEAN :
+	- at erase "$(INTDIR)\asn1.obj"
+	- at erase "$(INTDIR)\callback.obj"
+	- at erase "$(INTDIR)\check_varbind.obj"
+	- at erase "$(INTDIR)\cmu_compat.obj"
+	- at erase "$(INTDIR)\container.obj"
+	- at erase "$(INTDIR)\container_binary_array.obj"
+	- at erase "$(INTDIR)\container_iterator.obj"
+	- at erase "$(INTDIR)\container_list_ssll.obj"
+	- at erase "$(INTDIR)\container_null.obj"
+	- at erase "$(INTDIR)\data_list.obj"
+	- at erase "$(INTDIR)\default_store.obj"
+	- at erase "$(INTDIR)\getopt.obj"
+	- at erase "$(INTDIR)\int64.obj"
+	- at erase "$(INTDIR)\inet_ntop.obj"
+	- at erase "$(INTDIR)\inet_pton.obj"
+	- at erase "$(INTDIR)\keytools.obj"
+	- at erase "$(INTDIR)\lcd_time.obj"
+	- at erase "$(INTDIR)\md5.obj"
+	- at erase "$(INTDIR)\mib.obj"
+	- at erase "$(INTDIR)\mt_support.obj"
+	- at erase "$(INTDIR)\oid_stash.obj"
+	- at erase "$(INTDIR)\parse.obj"
+	- at erase "$(INTDIR)\read_config.obj"
+	- at erase "$(INTDIR)\scapi.obj"
+	- at erase "$(INTDIR)\snmp-tc.obj"
+	- at erase "$(INTDIR)\snmp.obj"
+	- at erase "$(INTDIR)\snmp_alarm.obj"
+	- at erase "$(INTDIR)\snmp_api.obj"
+	- at erase "$(INTDIR)\snmp_auth.obj"
+	- at erase "$(INTDIR)\snmp_client.obj"
+	- at erase "$(INTDIR)\snmp_debug.obj"
+	- at erase "$(INTDIR)\snmp_enum.obj"
+	- at erase "$(INTDIR)\snmp_logging.obj"
+	- at erase "$(INTDIR)\snmp_parse_args.obj"
+	- at erase "$(INTDIR)\snmp_secmod.obj"
+	- at erase "$(INTDIR)\snmp_transport.obj"
+	- at erase "$(INTDIR)\snmp_version.obj"
+	- at erase "$(INTDIR)\snmp_service.obj"
+	- at erase "$(INTDIR)\snmpCallbackDomain.obj"
+	- at erase "$(INTDIR)\snmpTCPDomain.obj"
+	- at erase "$(INTDIR)\snmpTCPIPv6Domain.obj"
+	- at erase "$(INTDIR)\snmpUDPDomain.obj"
+	- at erase "$(INTDIR)\snmpUDPIPv6Domain.obj"
+	- at erase "$(INTDIR)\snmpusm.obj"
+	- at erase "$(INTDIR)\snmpv3.obj"
+	- at erase "$(INTDIR)\strlcpy.obj"
+	- at erase "$(INTDIR)\system.obj"
+	- at erase "$(INTDIR)\tools.obj"
+	- at erase "$(INTDIR)\strtok_r.obj"
+	- at erase "$(INTDIR)\ucd_compat.obj"
+	- at erase "$(INTDIR)\vacm.obj"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\winpipe.obj"
+	- at erase "$(INTDIR)\fd_event_manager.obj"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
+	- at erase "..\lib\$(OUTDIR)\netsnmp.exp"
+	- at erase "..\lib\$(OUTDIR)\netsnmp.lib"
+	- at erase "..\bin\$(OUTDIR)\netsnmp.dll"
+
+"..\lib\$(OUTDIR)" :
+    if not exist "..\lib\$(OUTDIR)/$(NULL)" mkdir "..\lib\$(OUTDIR)"
+
+"..\bin\$(OUTDIR)" :
+    if not exist "..\bin\$(OUTDIR)/$(NULL)" mkdir "..\bin\$(OUTDIR)"
+
+"$(INTDIR)" :
+    if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "NETSNMP_DLL" /Fp"$(INTDIR)\libsnmp_dll.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /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) $< 
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(INTDIR)\libsnmp_dll.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=$(OPENSSL) advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /dll /pdb:none /machine:I386 /def:".\libsnmp.def" /out:"../bin/$(OUTDIR)/netsnmp.dll" /implib:"../lib/$(OUTDIR)\netsnmp.lib" 
 LINK32_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" \
@@ -25,34 +144,21 @@ LINK32_OBJS= \
 	"$(INTDIR)\container_null.obj" \
 	"$(INTDIR)\data_list.obj" \
 	"$(INTDIR)\default_store.obj" \
-	"$(INTDIR)\fd_event_manager.obj" \
 	"$(INTDIR)\getopt.obj" \
-	"$(INTDIR)\gettimeofday.obj" \
+	"$(INTDIR)\int64.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" \
@@ -62,33 +168,96 @@ LINK32_OBJS= \
 	"$(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)\strtok_r.obj" \
-	"$(INTDIR)\strtoull.obj" \
 	"$(INTDIR)\system.obj" \
 	"$(INTDIR)\tools.obj" \
+	"$(INTDIR)\strtok_r.obj" \
 	"$(INTDIR)\ucd_compat.obj" \
 	"$(INTDIR)\vacm.obj" \
-	"$(INTDIR)\winpipe.obj"
-!IF "$(SDK)" == "true"
-LINK32_OBJS=$(LINK32_OBJS)\
-	"$(INTDIR)\snmpIPv6BaseDomain.obj" \
-	"$(INTDIR)\snmpTCPIPv6Domain.obj" \
-	"$(INTDIR)\snmpUDPIPv6Domain.obj"
-!ENDIF
+	"$(INTDIR)\winpipe.obj" \
+	"$(INTDIR)\fd_event_manager.obj"
+
+"..\bin\$(OUTDIR)\netsnmp.dll" : "..\bin\$(OUTDIR)" "..\lib\$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "debug"
+
+ALL : "..\bin\$(OUTDIR)\netsnmp.dll"
+
 
 CLEAN :
-	- at for %f in ($(LINK32_OBJS)) do erase %%f
+	- at erase "$(INTDIR)\asn1.obj"
+	- at erase "$(INTDIR)\callback.obj"
+	- at erase "$(INTDIR)\check_varbind.obj"
+	- at erase "$(INTDIR)\cmu_compat.obj"
+	- at erase "$(INTDIR)\container.obj"
+	- at erase "$(INTDIR)\container_binary_array.obj"
+	- at erase "$(INTDIR)\container_iterator.obj"
+	- at erase "$(INTDIR)\container_list_ssll.obj"
+	- at erase "$(INTDIR)\container_null.obj"
+	- at erase "$(INTDIR)\data_list.obj"
+	- at erase "$(INTDIR)\default_store.obj"
+	- at erase "$(INTDIR)\getopt.obj"
+	- at erase "$(INTDIR)\int64.obj"
+	- at erase "$(INTDIR)\inet_ntop.obj"
+	- at erase "$(INTDIR)\inet_pton.obj"
+	- at erase "$(INTDIR)\keytools.obj"
+	- at erase "$(INTDIR)\lcd_time.obj"
+	- at erase "$(INTDIR)\md5.obj"
+	- at erase "$(INTDIR)\mib.obj"
+	- at erase "$(INTDIR)\mt_support.obj"
+	- at erase "$(INTDIR)\oid_stash.obj"
+	- at erase "$(INTDIR)\parse.obj"
+	- at erase "$(INTDIR)\read_config.obj"
+	- at erase "$(INTDIR)\scapi.obj"
+	- at erase "$(INTDIR)\snmp-tc.obj"
+	- at erase "$(INTDIR)\snmp.obj"
+	- at erase "$(INTDIR)\snmp_alarm.obj"
+	- at erase "$(INTDIR)\snmp_api.obj"
+	- at erase "$(INTDIR)\snmp_auth.obj"
+	- at erase "$(INTDIR)\snmp_client.obj"
+	- at erase "$(INTDIR)\snmp_debug.obj"
+	- at erase "$(INTDIR)\snmp_enum.obj"
+	- at erase "$(INTDIR)\snmp_logging.obj"
+	- at erase "$(INTDIR)\snmp_parse_args.obj"
+	- at erase "$(INTDIR)\snmp_secmod.obj"
+	- at erase "$(INTDIR)\snmp_transport.obj"
+	- at erase "$(INTDIR)\snmp_version.obj"
+	- at erase "$(INTDIR)\snmp_service.obj"
+	- at erase "$(INTDIR)\snmpCallbackDomain.obj"
+	- at erase "$(INTDIR)\snmpTCPDomain.obj"
+	- at erase "$(INTDIR)\snmpTCPIPv6Domain.obj"
+	- at erase "$(INTDIR)\snmpUDPDomain.obj"
+	- at erase "$(INTDIR)\snmpUDPIPv6Domain.obj"
+	- at erase "$(INTDIR)\snmpusm.obj"
+	- at erase "$(INTDIR)\snmpv3.obj"
+	- at erase "$(INTDIR)\strlcpy.obj"
+	- at erase "$(INTDIR)\system.obj"
+	- at erase "$(INTDIR)\tools.obj"
+	- at erase "$(INTDIR)\strtok_r.obj"
+	- at erase "$(INTDIR)\ucd_compat.obj"
+	- at erase "$(INTDIR)\vacm.obj"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\vc??.pdb"
+	- at erase "$(INTDIR)\winpipe.obj"
+	- at erase "$(INTDIR)\fd_event_manager.obj"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
 	- at erase "..\lib\$(OUTDIR)\netsnmp.exp"
 	- at erase "..\lib\$(OUTDIR)\netsnmp.lib"
+	- at erase "$(INTDIR)\netsnmp.pdb"
 	- at erase "..\bin\$(OUTDIR)\netsnmp.dll"
-	- at erase "..\bin\$(OUTDIR)\netsnmp.dll.manifest"
 
 "..\lib\$(OUTDIR)" :
     if not exist "..\lib\$(OUTDIR)/$(NULL)" mkdir "..\lib\$(OUTDIR)"
@@ -100,11 +269,7 @@ CLEAN :
     if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
 
 CPP=cl.exe
-!IF  "$(CFG)" == "release"
-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" /D "NETSNMP_DLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\$(PROGNAME).pdb" /FD /c 
-!ELSE
-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" /D "NETSNMP_DLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\$(PROGNAME).pdb" /FD /c 
-!ENDIF
+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "NETSNMP_DLL" /Fp"$(INTDIR)\libsnmp_dll.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 
 .c{$(INTDIR)}.obj::
    $(CPP) @<<
@@ -121,23 +286,91 @@ CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I
    $(CPP_PROJ) $< 
 <<
 
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
 MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 
+MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 
 RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(INTDIR)\libsnmp_dll.bsc" 
+BSC32_SBRS= \
+	
 LINK32=link.exe
-!IF  "$(CFG)" == "release"
-LINK32_FLAGS=advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /dll /pdb:"../bin/$(OUTDIR)/netsnmp.pdb" /debug /def:".\libsnmp.def" /out:"../bin/$(OUTDIR)/netsnmp.dll" /implib:"../lib/$(OUTDIR)/netsnmp.lib" 
-!ELSE
-LINK32_FLAGS=advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /dll /incremental:no /pdb:"../bin/$(OUTDIR)/netsnmp.pdb" /debug /def:".\libsnmp.def" /out:"../bin/$(OUTDIR)/netsnmp.dll" /implib:"../lib/$(OUTDIR)/netsnmp.lib" 
-!ENDIF
+LINK32_FLAGS=$(OPENSSL) advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /dll /incremental:no /pdb:"$(INTDIR)\netsnmp.pdb" /debug /machine:I386 /def:".\libsnmp.def" /out:"../bin/$(OUTDIR)/netsnmp.dll" /implib:"../lib/$(OUTDIR)\netsnmp.lib" 
+LINK32_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)\strlcpy.obj" \
+	"$(INTDIR)\system.obj" \
+	"$(INTDIR)\tools.obj" \
+	"$(INTDIR)\strtok_r.obj" \
+	"$(INTDIR)\ucd_compat.obj" \
+	"$(INTDIR)\vacm.obj" \
+	"$(INTDIR)\winpipe.obj" \
+	"$(INTDIR)\fd_event_manager.obj"
 
 "..\bin\$(OUTDIR)\netsnmp.dll" : "..\bin\$(OUTDIR)" "..\lib\$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
- if exist "../bin/$(OUTDIR)/netsnmp.dll.manifest" \
-	    mt.exe -manifest "../bin/$(OUTDIR)/netsnmp.dll.manifest" -outputresource:"../bin/$(OUTDIR)/netsnmp.dll";2
-LINK32=link.exe
+
+!ENDIF 
 
 
 !IF "$(NO_EXTERNAL_DEPS)" != "1"
@@ -149,6 +382,7 @@ LINK32=link.exe
 !ENDIF 
 
 
+!IF "$(CFG)" == "release" || "$(CFG)" == "debug"
 SOURCE=..\..\snmplib\asn1.c
 
 "$(INTDIR)\asn1.obj" : $(SOURCE) "$(INTDIR)"
@@ -167,9 +401,9 @@ SOURCE=..\..\snmplib\check_varbind.c
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\closedir.c
+SOURCE=..\..\snmplib\cmu_compat.c
 
-"$(INTDIR)\closedir.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\cmu_compat.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
@@ -215,21 +449,15 @@ SOURCE=..\..\snmplib\default_store.c
 	$(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\gettimeofday.c
+SOURCE=..\..\snmplib\int64.c
 
-"$(INTDIR)\gettimeofday.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\int64.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
@@ -245,24 +473,12 @@ SOURCE=..\..\snmplib\inet_pton.c
 	$(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)"
@@ -293,12 +509,6 @@ SOURCE=..\..\snmplib\oid_stash.c
 	$(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)"
@@ -311,12 +521,6 @@ SOURCE=..\..\snmplib\read_config.c
 	$(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)"
@@ -335,72 +539,6 @@ SOURCE=..\..\snmplib\snmp.c
 	$(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)"
@@ -455,57 +593,69 @@ SOURCE=..\..\snmplib\snmp_secmod.c
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\snmp_transport.c
+
+"$(INTDIR)\snmp_transport.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\snmp_version.c
+
+"$(INTDIR)\snmp_version.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\snmp_service.c
 
 "$(INTDIR)\snmp_service.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\snmp_transport.c
+SOURCE=..\..\snmplib\snmpCallbackDomain.c
 
-"$(INTDIR)\snmp_transport.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpCallbackDomain.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\snmp_version.c
+SOURCE=..\..\snmplib\snmpTCPDomain.c
 
-"$(INTDIR)\snmp_version.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpTCPDomain.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\snmpusm.c
+SOURCE=..\..\snmplib\snmpTCPIPv6Domain.c
 
-"$(INTDIR)\snmpusm.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpTCPIPv6Domain.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\snmpv3.c
+SOURCE=..\..\snmplib\snmpUDPDomain.c
 
-"$(INTDIR)\snmpv3.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpUDPDomain.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\strlcat.c
+SOURCE=..\..\snmplib\snmpUDPIPv6Domain.c
 
-"$(INTDIR)\strlcat.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpUDPIPv6Domain.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\strlcpy.c
+SOURCE=..\..\snmplib\snmpusm.c
 
-"$(INTDIR)\strlcpy.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpusm.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\strtok_r.c
+SOURCE=..\..\snmplib\snmpv3.c
 
-"$(INTDIR)\strtok_r.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\snmpv3.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\strtoull.c
+SOURCE=..\..\snmplib\strlcpy.c
 
-"$(INTDIR)\strtoull.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\strlcpy.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
@@ -521,6 +671,12 @@ SOURCE=..\..\snmplib\tools.c
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\strtok_r.c
+
+"$(INTDIR)\strtok_r.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\ucd_compat.c
 
 "$(INTDIR)\ucd_compat.obj" : $(SOURCE) "$(INTDIR)"
@@ -538,4 +694,12 @@ SOURCE=..\..\snmplib\winpipe.c
 "$(INTDIR)\winpipe.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
+SOURCE=..\..\snmplib\fd_event_manager.c
+
+"$(INTDIR)\fd_event_manager.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
 
diff --git a/win32/libsnmp_dll/libsnmp.def b/win32/libsnmp_dll/libsnmp.def
index 45dd356..c600677 100644
--- a/win32/libsnmp_dll/libsnmp.def
+++ b/win32/libsnmp_dll/libsnmp.def
@@ -1,2 +1,458 @@
-; This .def file is obsolete. Do not add any names of exported functions here
-; but add NETSNMP_IMPORT to function declarations instead.
+;       @(#)snmp.def    1.0 10/26/97 (gmarzot at 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_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
+      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
+	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_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
+        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_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_mktemp
+        debugmsg_suboid
+;IPv6        netsnmp_udp6_parse_security
+;IPv6        netsnmp_udp6_getSecName
+;IPv6        netsnmp_TCPIPv6Domain
+;IPv6        netsnmp_UDPIPv6Domain
+
diff --git a/win32/libsnmp_dll/libsnmp.def.in b/win32/libsnmp_dll/libsnmp.def.in
new file mode 100755
index 0000000..c600677
--- /dev/null
+++ b/win32/libsnmp_dll/libsnmp.def.in
@@ -0,0 +1,458 @@
+;       @(#)snmp.def    1.0 10/26/97 (gmarzot at 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_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
+      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
+	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_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
+        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_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_mktemp
+        debugmsg_suboid
+;IPv6        netsnmp_udp6_parse_security
+;IPv6        netsnmp_udp6_getSecName
+;IPv6        netsnmp_TCPIPv6Domain
+;IPv6        netsnmp_UDPIPv6Domain
+
diff --git a/win32/libsnmp_dll/libsnmp_dll.dsp b/win32/libsnmp_dll/libsnmp_dll.dsp
index 12c0414..362a3b4 100644
--- a/win32/libsnmp_dll/libsnmp_dll.dsp
+++ b/win32/libsnmp_dll/libsnmp_dll.dsp
@@ -104,7 +104,7 @@ SOURCE=..\..\snmplib\check_varbind.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\closedir.c
+SOURCE=..\..\snmplib\cmu_compat.c
 # End Source File
 # Begin Source File
 
@@ -136,18 +136,10 @@ SOURCE=..\..\snmplib\default_store.c
 # 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
@@ -164,10 +156,6 @@ SOURCE=..\..\snmplib\keytools.c
 # 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
@@ -188,10 +176,6 @@ SOURCE=..\..\snmplib\oid_stash.c
 # 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
@@ -200,10 +184,6 @@ SOURCE=..\..\snmplib\read_config.c
 # 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
@@ -252,10 +232,6 @@ SOURCE=..\..\snmplib\snmp_secmod.c
 # 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
@@ -264,51 +240,27 @@ SOURCE=..\..\snmplib\snmp_version.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\transports\snmpAliasDomain.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\transports\snmpCallbackDomain.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\transports\snmpIPv4BaseDomain.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\transports\snmpIPv6BaseDomain.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\transports\snmpSocketBaseDomain.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\transports\snmpTCPBaseDomain.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\transports\snmpTCPDomain.c
+SOURCE=..\..\snmplib\snmp_service.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\transports\snmpTCPIPv6Domain.c
+SOURCE=..\..\snmplib\snmpCallbackDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\transports\snmpUDPBaseDomain.c
+SOURCE=..\..\snmplib\snmpTCPDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\transports\snmpUDPDomain.c
+SOURCE=..\..\snmplib\snmpTCPIPv6Domain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\transports\snmpUDPIPv4BaseDomain.c
+SOURCE=..\..\snmplib\snmpUDPDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\transports\snmpUDPIPv6Domain.c
+SOURCE=..\..\snmplib\snmpUDPIPv6Domain.c
 # End Source File
 # Begin Source File
 
@@ -320,27 +272,19 @@ SOURCE=..\..\snmplib\snmpv3.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\strlcat.c
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\snmplib\strlcpy.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\strtok_r.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\strtoull.c
+SOURCE=..\..\snmplib\system.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\system.c
+SOURCE=..\..\snmplib\tools.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\tools.c
+SOURCE=..\..\snmplib\strtok_r.c
 # End Source File
 # Begin Source File
 
@@ -354,6 +298,10 @@ SOURCE=..\..\snmplib\vacm.c
 
 SOURCE=..\..\snmplib\winpipe.c
 # End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\fd_event_manager.c
+# End Source File
 # End Group
 # Begin Group "Header Files"
 
@@ -372,19 +320,19 @@ SOURCE="..\..\include\net-snmp\library\check_varbind.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\container.h"
+SOURCE="..\..\include\net-snmp\library\cmu_compat.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\data_list.h"
+SOURCE="..\..\include\net-snmp\library\container.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\default_store.h"
+SOURCE="..\..\include\net-snmp\library\data_list.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\fd_event_manager.h"
+SOURCE="..\..\include\net-snmp\library\default_store.h"
 # End Source File
 # Begin Source File
 
@@ -400,10 +348,6 @@ SOURCE="..\..\include\net-snmp\library\keytools.h"
 # 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
@@ -496,15 +440,15 @@ SOURCE="..\..\include\net-snmp\library\snmpv3.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\strtok_r.h"
+SOURCE="..\..\include\net-snmp\library\system.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\system.h"
+SOURCE="..\..\include\net-snmp\library\tools.h"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\tools.h"
+SOURCE="..\..\include\net-snmp\library\strtok_r.h"
 # End Source File
 # Begin Source File
 
@@ -515,9 +459,5 @@ SOURCE="..\..\include\net-snmp\library\ucd_compat.h"
 SOURCE="..\..\include\net-snmp\library\vacm.h"
 # End Source File
 # End Group
-# Begin Source File
-
-SOURCE=.\libsnmp.def
-# End Source File
 # End Target
 # End Project
diff --git a/win32/libucdmibs/libucdmibs.def b/win32/libucdmibs/libucdmibs.def
new file mode 100644
index 0000000..5f473d9
--- /dev/null
+++ b/win32/libucdmibs/libucdmibs.def
@@ -0,0 +1,17 @@
+;       @(#)libucdmibs.def    1.0 10/26/97 (gmarzot at 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 014ade0..77ed7d4 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_MODULE
-#include "mibgroup/disman/event.h"
+#ifdef USING_DISMAN_EVENT_MIB_MODULE
+#include "mibgroup/disman/event-mib.h"
 #endif
 
 #ifdef USING_SMUX_MODULE
@@ -73,6 +73,7 @@
 #include "mibgroup/agent/extend.h"
 #include "mibgroup/ucd-snmp/errormib.h"
 #include "mibgroup/ucd-snmp/file.h"
+#include "mibgroup/ucd-snmp/dlmod.h"
 #include "mibgroup/ucd-snmp/proxy.h"
 #endif
 
@@ -85,9 +86,8 @@
 #include "mibgroup/snmpv3/usmStats.h"
 #include "mibgroup/snmpv3/usmUser.h"
 #include "mibgroup/notification/snmpNotifyTable.h"
-#include "mibgroup/notification/snmpNotifyFilterProfileTable.h"
 #include "mibgroup/snmp-notification-mib/snmpNotifyFilterTable.h"
-#include "mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.h"
+#include "mibgroup/notification/snmpNotifyFilterProfileTable.h"
 #include "mibgroup/target/snmpTargetAddrEntry.h"
 #include "mibgroup/target/snmpTargetParamsEntry.h"
 #include "mibgroup/target/target.h"
@@ -97,7 +97,6 @@
 #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
@@ -124,23 +123,15 @@
 #include "mibgroup/Rmon/event.h"
 #endif
 
-#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"
+#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"
 #endif
 
 #ifdef USING_SMUX_MODULE
diff --git a/win32/mib_module_inits.h b/win32/mib_module_inits.h
index a4b39bc..40296f1 100644
--- a/win32/mib_module_inits.h
+++ b/win32/mib_module_inits.h
@@ -34,6 +34,7 @@
   if (should_init("extend")) init_extend();
   if (should_init("errormib")) init_errormib();
   if (should_init("file")) init_file();
+  if (should_init("dlmod")) init_dlmod();
   if (should_init("proxy")) init_proxy();
 #endif
   if (should_init("snmpEngine")) init_snmpEngine();
@@ -78,22 +79,17 @@
 
   if (should_init("override")) init_override();
 
-#ifdef USING_DISMAN_EVENT_MODULE
-  if (should_init("mteTrigger")) init_mteTrigger();
-  if (should_init("mteTriggerConf")) init_mteTriggerConf();
+#ifdef USING_DISMAN_EVENT_MIB_MODULE
+#ifdef NETSNMP_TRANSPORT_CALLBACK_DOMAIN
   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 36a6dd4..83a3976 100644
--- a/win32/mib_module_shutdown.h
+++ b/win32/mib_module_shutdown.h
@@ -1,11 +1,2 @@
 /* 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_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 4978dc8..95662ad 100644
--- a/win32/net-snmp/agent/mib_module_config.h
+++ b/win32/net-snmp/agent/mib_module_config.h
@@ -15,12 +15,11 @@
 /* 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
+#else
+/* #undef USING_NOTIFICATION_LOG_MIB_NOTIFICATION_LOG_MODULE */
 #endif
 
 /* Define if compiling with the target module files.  */
@@ -246,57 +245,33 @@
 #endif /* USING_RMON_MODULE */
 
 
-#ifdef USING_DISMAN_EVENT_MODULE 
- 
-/* Define if compiling with the disman/event/mteScalars module files.  */
-#define USING_DISMAN_EVENT_MTESCALARS_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/event/mteTriggerTable module files.  */
-#define USING_DISMAN_EVENT_MTETRIGGERTABLE_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/event/mteTriggerExistenceTable module files.  */
-#define USING_DISMAN_EVENT_MTETRIGGEREXISTENCETABLE_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/event/mteTriggerThresholdTable module files.  */
-#define USING_DISMAN_EVENT_MTETRIGGERTHRESHOLDTABLE_MODULE 1
- 
-/* Define if compiling with the disman/event/mteTriggerConf module files.  */
-#define USING_DISMAN_EVENT_MTETRIGGERCONF_MODULE 1
+#ifdef 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/mteTriggerTable module files.  */
+#define USING_DISMAN_MTETRIGGERTABLE_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/mteTriggerDeltaTable module files.  */
+#define USING_DISMAN_MTETRIGGERDELTATABLE_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/mteTriggerExistenceTable module files.  */
+#define USING_DISMAN_MTETRIGGEREXISTENCETABLE_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/mteTriggerBooleanTable module files.  */
+#define USING_DISMAN_MTETRIGGERBOOLEANTABLE_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/mteTriggerThresholdTable module files.  */
+#define USING_DISMAN_MTETRIGGERTHRESHOLDTABLE_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/mteObjectsTable module files.  */
+#define USING_DISMAN_MTEOBJECTSTABLE_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/mteEventTable module files.  */
+#define USING_DISMAN_MTEEVENTTABLE_MODULE 1
  
-/* Define if compiling with the disman/event/mteObjectsConf module files.  */
-#define USING_DISMAN_EVENT_MTEOBJECTSCONF_MODULE 1
+/* Define if compiling with the disman/mteEventNotificationTable module files.  */
+#define USING_DISMAN_MTEEVENTNOTIFICATIONTABLE_MODULE 1
  
-#endif /* USING_DISMAN_EVENT_MODULE */
+#endif /* USING_DISMAN_EVENT_MIB_MODULE */
 
 #ifdef USING_SMUX_MODULE
  
diff --git a/win32/net-snmp/net-snmp-config.h b/win32/net-snmp/net-snmp-config.h
index 7791ee0..ae3541b 100644
--- a/win32/net-snmp/net-snmp-config.h
+++ b/win32/net-snmp/net-snmp-config.h
@@ -5,47 +5,31 @@
 #define NET_SNMP_CONFIG_H
 
 /* _MSC_VER values
-   1600 = 10.0 (2010)
-   1500 =  9.0 (2008)
-   1400 =  8.0 (2005)
-   1310 =  7.1 (2003)
-   1300 =  7.0 (2002)
-   1200 =  6.0
+   1500 = 9.0 (2008)
+   1400 = 8.0 (2005)
+   1310 = 7.1 (2003)
+   1300 = 7.0 (2002)
+   1200 = 6.0
 */
 
-#ifdef _MSC_VER
-/* Disable warning 4018: signed/unsigned mismatch. */
-#pragma warning (disable: 4018)
-#endif
-
-/* Automatically set by Windows perl Configure script.
- * When compiling with the MSVC workspace, this must be set manually.
- * See the PACKAGE_VERSION variable in Unix /configure script
-*/
-#ifndef PACKAGE_VERSION
-#define PACKAGE_VERSION "unknown"
-#endif
-
 /* Define HAVE_WIN32_PLATFORM_SDK if you have:
  * 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 1
-
-/* Define NETSNMP_ENABLE_IPV6 to enable IPv6.  IPv6 is only available on
- * Windows XP and higher.  */
-/* #undef NETSNMP_ENABLE_IPV6 */
+/* #undef HAVE_WIN32_PLATFORM_SDK */
 
-/* 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 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>.
  */
-#ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x501 /*_WIN32_WINNT_WIN2K*/
-#else
-#if _WIN32_WINNT < 0x501
-#error _WIN32_WINNT is too low - it should be set to at least 0x501.
-#endif
+#if defined(HAVE_WIN32_PLATFORM_SDK) || !defined(_MSC_VER) || _MSC_VER > 1200
+#define _WIN32_WINNT 0x500 /*_WIN32_WINNT_WIN2K*/
+#define NTDDI_VERSION 0x05000400 /* NTDDI_WIN2KSP4 */
 #endif
 
 #define INSTALL_BASE "c:/usr"
@@ -62,7 +46,7 @@
 
 /* default list of mibs to load */
 
-#define NETSNMP_DEFAULT_MIBS "IP-MIB;IF-MIB;TCP-MIB;UDP-MIB;HOST-RESOURCES-MIB;SNMPv2-MIB;RFC1213-MIB;NOTIFICATION-LOG-MIB;UCD-SNMP-MIB;UCD-DEMO-MIB;SNMP-TARGET-MIB;NET-SNMP-AGENT-MIB;DISMAN-EVENT-MIB;SNMP-VIEW-BASED-ACM-MIB;SNMP-COMMUNITY-MIB;SNMP-FRAMEWORK-MIB;SNMP-MPD-MIB;SNMP-USER-BASED-SM-MIB;SNMP-NOTIFICATION-MIB;SNMPv2-TM"
+#define NETSNMP_DEFAULT_MIBS "IP-MIB;IF-MIB;TCP-MIB;UDP-MIB;HOST-RESOURCES-MIB;SNMPv2-MIB;RFC1213-MIB;NOTIFICATION-LOG-MIB;UCD-SNMP-MIB;UCD-DEMO-MIB;SNMP-TARGET-MIB;NET-SNMP-AGENT-MIB;DISMAN-EVENT-MIB;SNMP-VIEW-BASED-ACM-MIB;SNMP-COMMUNITY-MIB;UCD-DLMOD-MIB;SNMP-FRAMEWORK-MIB;SNMP-MPD-MIB;SNMP-USER-BASED-SM-MIB;SNMP-NOTIFICATION-MIB;SNMPv2-TM"
 
 /* default location to look for mibs to load using the above tokens
    and/or those in the MIBS envrionment variable*/
@@ -239,17 +223,19 @@
 /* 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 */
 
-/* Define to 1 if you have the <crtdbg.h> header file. */
-#define HAVE_CRTDBG_H 1
-
 /* Define to 1 if you have the <direct.h> header file. */
-#define HAVE_DIRECT_H 1
+/* #undef HAVE_DIRECT_H */
 
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
-   */
+/* Define to 1 if you have the `chown' function. */
+/* #undef HAVE_CHOWN */
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.  */
 /* #undef HAVE_DIRENT_H */
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
@@ -324,14 +310,12 @@
 /* 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
 
@@ -377,6 +361,9 @@
 /* Define to 1 if you have the `crypto' library (-lcrypto). */
 /* #undef HAVE_LIBCRYPTO */
 
+/* Define to 1 if you have the `dl' library (-ldl). */
+/* #undef HAVE_LIBDL */
+
 /* Define to 1 if you have the `efence' library (-lefence). */
 /* #undef HAVE_LIBEFENCE */
 
@@ -386,6 +373,9 @@
 /* Define to 1 if you have the `kstat' library (-lkstat). */
 /* #undef HAVE_LIBKSTAT */
 
+/* Define to 1 if you have the `kvm' library (-lkvm). */
+/* #undef HAVE_LIBKVM */
+
 /* Define to 1 if you have the `m' library (-lm). */
 /* #undef HAVE_LIBM */
 
@@ -410,6 +400,9 @@
 /* Define to 1 if you have the `sensors' library (-lsensors). */
 /* #undef HAVE_LIBSENSORS */
 
+/* Define to 1 if you have the `z' library (-lz). */
+/* #undef HAVE_LIBZ */
+
 /* Define to 1 if you have the <limits.h> header file. */
 #define HAVE_LIMITS_H 1
 
@@ -422,6 +415,9 @@
 /* Define to 1 if you have the <locale.h> header file. */
 #define HAVE_LOCALE_H 1
 
+/* Define to 1 if you have the `localtime_r' function. */
+/* #undef HAVE_LOCALTIME_R */
+
 /* Define to 1 if you have the `lrand48' function. */
 /* #undef HAVE_LRAND48 */
 
@@ -437,6 +433,12 @@
 /* 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
 
@@ -506,9 +508,6 @@
 /* Define to 1 if you have the <netinet/ip_icmp.h> header file. */
 /* #undef HAVE_NETINET_IP_ICMP_H */
 
-/* Define to 1 if you have the <netinet/icmp6.h> header file. */
-/* #undef HAVE_NETINET_ICMP6_H */
-
 /* Define to 1 if you have the <netinet/ip_var.h> header file. */
 /* #undef HAVE_NETINET_IP_VAR_H */
 
@@ -680,10 +679,11 @@
 /* Define to 1 if you have the `statvfs' function. */
 /* #undef HAVE_STATVFS */
 
+/* Define to 1 if you have the <stdarg.h> header file. */
+#define HAVE_STDARG_H 1
+
 /* Define to 1 if you have the <stdint.h> header file. */
-#ifdef __MINGW32__
-#define HAVE_STDINT_H 1
-#endif
+/* #undef HAVE_STDINT_H */
 
 /* Define to 1 if you have the <stdlib.h> header file. */
 #define HAVE_STDLIB_H 1
@@ -694,6 +694,9 @@
 /* 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
 
@@ -837,9 +840,6 @@
 /* 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
 
@@ -933,12 +933,6 @@
 /* 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
-
 /* Define to 1 if you have the <xti.h> header file. */
 /* #undef HAVE_XTI_H */
 
@@ -946,17 +940,13 @@
 /* #undef PACKAGE_BUGREPORT */
 
 /* Define to the full name of this package. */
-#ifndef PACKAGE_NAME
 #define PACKAGE_NAME "Net-SNMP"
-#endif
 
 /* Define to the full name and version of this package. */
 /* #undef PACKAGE_STRING */
 
 /* Define to the one symbol short name of this package. */
-#ifndef PACKAGE_TARNAME
 #define PACKAGE_TARNAME "net-snmp"
-#endif
 
 /* Define to the version of this package. */
 /* #undef PACKAGE_VERSION */
@@ -970,9 +960,6 @@
 /* The size of a `long', as computed by sizeof. */
 #define SIZEOF_LONG 4
 
-/* The size of a `intmax_t', as computed by sizeof. */
-#define SIZEOF_INTMAX_T 8
-
 /* The size of a `short', as computed by sizeof. */
 #define SIZEOF_SHORT 2
 
@@ -988,7 +975,7 @@
 #define STDC_HEADERS 1
 
 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-/* #undef TIME_WITH_SYS_TIME */
+#define TIME_WITH_SYS_TIME 1
 
 /* Define to 1 if your processor stores words with the most significant byte
    first (like Motorola and SPARC, unlike Intel and VAX). */
@@ -1037,102 +1024,96 @@
 /* #undef RTENTRY_4_4 */
 
 /* Does struct sigaction have a sa_sigaction field? */
-/* #undef HAVE_STRUCT_SIGACTION_SA_SIGACTION */
+/* #undef STRUCT_SIGACTION_HAS_SA_SIGACTION */
 
 /* Does struct sockaddr have a sa_len field? */
-/* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */
+/* #undef STRUCT_SOCKADDR_HAS_SA_LEN */
 
 /* Does struct sockaddr have a sa_family2 field? */
-/* #undef HAVE_STRUCT_SOCKADDR_SA_UNION_SA_GENERIC_SA_FAMILY2 */
+/* #undef STRUCT_SOCKADDR_HAS_SA_UNION_SA_GENERIC_SA_FAMILY2 */
 
 /* Does struct in6_addr have a s6_un.sa6_ladd field? */
-/* #undef HAVE_STRUCT_IN6_ADDR_S6_UN_SA6_LADDR */
-
-/* msghdr.msg_control */
-/* #undef HAVE_STRUCT_MSGHDR_MSG_CONTROL */
-
-/* msghdr.msg_flags */
-/* #undef HAVE_STRUCT_MSGHDR_MSG_FLAGS */
+/* #undef STRUCT_IN6_ADDR_HAS_S6_UN_SA6_LADDR */
 
 /* rtentry structure tests */
 /* #undef RTENTRY_RT_NEXT */
-/* #undef HAVE_STRUCT_RTENTRY_RT_DST */
-/* #undef HAVE_STRUCT_RTENTRY_RT_UNIT */
-/* #undef HAVE_STRUCT_RTENTRY_RT_USE */
-/* #undef HAVE_STRUCT_RTENTRY_RT_REFCNT */
-/* #undef HAVE_STRUCT_RTENTRY_RT_HASH */
+/* #undef STRUCT_RTENTRY_HAS_RT_DST */
+/* #undef STRUCT_RTENTRY_HAS_RT_UNIT */
+/* #undef STRUCT_RTENTRY_HAS_RT_USE */
+/* #undef STRUCT_RTENTRY_HAS_RT_REFCNT */
+/* #undef STRUCT_RTENTRY_HAS_RT_HASH */
 
 /* ifnet structure tests */
-/* #undef HAVE_STRUCT_IFNET_IF_BAUDRATE */
-/* #undef HAVE_STRUCT_IFNET_IF_BAUDRATE_IFS_VALUE */
-/* #undef HAVE_STRUCT_IFNET_IF_SPEED */
-/* #undef HAVE_STRUCT_IFNET_IF_TYPE */
-/* #undef HAVE_STRUCT_IFNET_IF_IMCASTS */
-/* #undef HAVE_STRUCT_IFNET_IF_IQDROPS */
-/* #undef HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_SEC */
-/* #undef HAVE_STRUCT_IFNET_IF_NOPROTO */
-/* #undef HAVE_STRUCT_IFNET_IF_OMCASTS */
-/* #undef HAVE_STRUCT_IFNET_IF_XNAME */
-/* #undef HAVE_STRUCT_IFNET_IF_OBYTES */
-/* #undef HAVE_STRUCT_IFNET_IF_IBYTES */
-/* #undef HAVE_STRUCT_IFNET_IF_ADDRLIST */
+/* #undef STRUCT_IFNET_HAS_IF_BAUDRATE */
+/* #undef STRUCT_IFNET_HAS_IF_BAUDRATE_IFS_VALUE */
+/* #undef STRUCT_IFNET_HAS_IF_SPEED */
+/* #undef STRUCT_IFNET_HAS_IF_TYPE */
+/* #undef STRUCT_IFNET_HAS_IF_IMCASTS */
+/* #undef STRUCT_IFNET_HAS_IF_IQDROPS */
+/* #undef STRUCT_IFNET_HAS_IF_LASTCHANGE_TV_SEC */
+/* #undef STRUCT_IFNET_HAS_IF_NOPROTO */
+/* #undef STRUCT_IFNET_HAS_IF_OMCASTS */
+/* #undef STRUCT_IFNET_HAS_IF_XNAME */
+/* #undef STRUCT_IFNET_HAS_IF_OBYTES */
+/* #undef STRUCT_IFNET_HAS_IF_IBYTES */
+/* #undef STRUCT_IFNET_HAS_IF_ADDRLIST */
 
 /* tcpstat.tcps_rcvmemdrop */
-/* #undef HAVE_STRUCT_TCPSTAT_TCPS_RCVMEMDROP */
+/* #undef STRUCT_TCPSTAT_HAS_TCPS_RCVMEMDROP */
 
 /* udpstat.udps_discard */
-/* #undef HAVE_STRUCT_UDPSTAT_UDPS_DISCARD */
+/* #undef STRUCT_UDPSTAT_HAS_UDPS_DISCARD */
 
 /* udpstat.udps_discard */
-/* #undef HAVE_STRUCT_UDPSTAT_UDPS_NOPORT */
+/* #undef STRUCT_UDPSTAT_HAS_UDPS_NOPORT */
 
 /* udpstat.udps_discard */
-/* #undef HAVE_STRUCT_UDPSTAT_UDPS_NOPORTBCAST */
+/* #undef STRUCT_UDPSTAT_HAS_UDPS_NOPORTBCAST */
 
 /* udpstat.udps_discard */
-/* #undef HAVE_STRUCT_UDPSTAT_UDPS_FULLSOCK */
+/* #undef STRUCT_UDPSTAT_HAS_UDPS_FULLSOCK */
 
 /* arphd.at_next */
-/* #undef HAVE_STRUCT_ARPHD_AT_NEXT */
+/* #undef STRUCT_ARPHD_HAS_AT_NEXT */
 
 /* ifaddr.ifa_next */
-/* #undef HAVE_STRUCT_IFADDR_IFA_NEXT */
+/* #undef STRUCT_IFADDR_HAS_IFA_NEXT */
 
 /* ifnet.if_mtu */
-/* #undef HAVE_STRUCT_IFNET_IF_MTU */
+/* #undef STRUCT_IFNET_HAS_IF_MTU */
 
 /* swdevt.sw_nblksenabled */
-/* #undef HAVE_STRUCT_SWDEVT_SW_NBLKSENABLED */
+/* #undef STRUCT_SWDEVT_HAS_SW_NBLKSENABLED */
 
 /* nlist.n_value */
-/* #undef HAVE_STRUCT_NLIST_N_VALUE */
+/* #undef STRUCT_NLIST_HAS_N_VALUE */
 
 /* ipstat structure tests */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_CANTFORWARD */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_CANTFRAG */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_DELIVERED */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_FRAGDROPPED */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_FRAGTIMEOUT */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_LOCALOUT */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_NOPROTO */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_NOROUTE */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_ODROPPED */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_OFRAGMENTS */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_REASSEMBLED */
+/* #undef STRUCT_IPSTAT_HAS_IPS_CANTFORWARD */
+/* #undef STRUCT_IPSTAT_HAS_IPS_CANTFRAG */
+/* #undef STRUCT_IPSTAT_HAS_IPS_DELIVERED */
+/* #undef STRUCT_IPSTAT_HAS_IPS_FRAGDROPPED */
+/* #undef STRUCT_IPSTAT_HAS_IPS_FRAGTIMEOUT */
+/* #undef STRUCT_IPSTAT_HAS_IPS_LOCALOUT */
+/* #undef STRUCT_IPSTAT_HAS_IPS_NOPROTO */
+/* #undef STRUCT_IPSTAT_HAS_IPS_NOROUTE */
+/* #undef STRUCT_IPSTAT_HAS_IPS_ODROPPED */
+/* #undef STRUCT_IPSTAT_HAS_IPS_OFRAGMENTS */
+/* #undef STRUCT_IPSTAT_HAS_IPS_REASSEMBLED */
 
 /* vfsstat.f_frsize */
-/* #undef HAVE_STRUCT_STATVFS_F_FRSIZE */
+/* #undef STRUCT_STATVFS_HAS_F_FRSIZE */
 
 /* vfsstat.f_files */
-/* #undef HAVE_STRUCT_STATVFS_F_FILES */
+/* #undef STRUCT_STATVFS_HAS_F_FILES */
 
 /* statfs inode structure tests*/
-/* #undef HAVE_STRUCT_STATFS_F_FILES */
-/* #undef HAVE_STRUCT_STATFS_F_FFREE */
-/* #undef HAVE_STRUCT_STATFS_F_FAVAIL */
+/* #undef STRUCT_STATFS_HAS_F_FILES */
+/* #undef STRUCT_STATFS_HAS_F_FFREE */
+/* #undef STRUCT_STATFS_HAS_F_FAVAIL */
 
 /* des_ks_struct.weak_key */
-/* #undef HAVE_STRUCT_DES_KS_STRUCT_WEAK_KEY */
+/* #undef STRUCT_DES_KS_STRUCT_HAS_WEAK_KEY */
 
 /* ifnet needs to have _KERNEL defined */
 /* #undef IFNET_NEEDS_KERNEL */
@@ -1146,6 +1127,9 @@
 /* define if SIOCGIFADDR exists in sys/ioctl.h */
 /* #undef SYS_IOCTL_H_HAS_SIOCGIFADDR */
 
+/* define if your compiler (processor) defines __FUNCTION__ for you */
+/* #undef HAVE_CPP_UNDERBAR_FUNCTION_DEFINED */
+
 /* Mib-2 tree Info */
 /* These are the system information variables. */
 
@@ -1332,6 +1316,9 @@
 /* UNdefine to allow specifying zero-length community string */
 /* #define NETSNMP_NO_ZEROLENGTH_COMMUNITY 1 */
 
+/* #define NETSNMP_EXIT_ON_BAD_KLREAD  */
+/* define to exit the agent on a bad kernel read */
+
 #define NETSNMP_LASTFIELD -1      /* internal define */
 
 /* configure options specified */
@@ -1345,9 +1332,45 @@
 /* got in_addr_t? */
 /* #undef HAVE_IN_ADDR_T */
 
-#ifdef __MINGW32__
 /* got ssize_t? */
-#define HAVE_SSIZE_T
+/* #undef HAVE_SSIZE_T */
+
+#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. */
@@ -1361,12 +1384,6 @@
 /* Define to 1 if you have the <openssl/aes.h> header file. */
 #define HAVE_OPENSSL_AES_H 1
 
-/* Define to 1 if you have the `EVP_MD_CTX_create' function. */
-#define HAVE_EVP_MD_CTX_CREATE 1
-
-/* Define to 1 if you have the `EVP_MD_CTX_destroy' function. */
-#define HAVE_EVP_MD_CTX_DESTROY 1
-
 /* Define to 1 if you have the `AES_cfb128_encrypt' function. */
 #define HAVE_AES_CFB128_ENCRYPT 1
 
@@ -1414,9 +1431,6 @@
 /* define if you have gethostbyname */
 #define HAVE_GETHOSTBYNAME 1
 
-/* define if you have gethostbyaddr */
-#define HAVE_GETHOSTBYADDR 1
-
 /* printing system */
 /* #undef HAVE_LPSTAT */
 /* #undef LPSTAT_PATH */
@@ -1458,32 +1472,6 @@
     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
 
@@ -1501,16 +1489,14 @@
 
 /* Not-to-be-compiled macros for use by configure only */
 #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)
+#if defined (WIN32) || defined (mingw32) || defined (cygwin)
 #define ENV_SEPARATOR ";"
 #define ENV_SEPARATOR_CHAR ';'
 #else
@@ -1573,51 +1559,12 @@
 
 #ifdef WIN32
 
-#ifndef __MINGW32__
 typedef unsigned short mode_t;
-#endif
-#ifndef HAVE_STDINT_H
-typedef unsigned char uint8_t;
-typedef char int8_t;
-typedef unsigned __int16 uint16_t;
-typedef __int16 int16_t;
 typedef unsigned __int32 uint32_t;
-typedef __int32 int32_t;
+typedef long int32_t;
 typedef unsigned __int64 uint64_t;
 typedef __int64 int64_t;
-typedef unsigned __int64 uintmax_t;
-typedef __int64 intmax_t;
-#else /* HAVE_STDINT_H */
-#include <stdint.h>
-#endif /* HAVE_STDINT_H */
-
-
-/* (u)intptr_t should only be needed for MSVC 6 32-bit. */
-/* SDK has it for 64-bit and newer MSVC should also have it in stddef.h. */
-#ifndef _INTPTR_T_DEFINED
-#ifdef _M_X64
-typedef __int64          intptr_t;
-#else
-typedef int              intptr_t;
-#endif
-#define _INTPTR_T_DEFINED
-#endif
-
-#ifndef _UINTPTR_T_DEFINED
-#ifdef _M_X64
-typedef unsigned __int64 uintptr_t;
-#else
-typedef unsigned int     uintptr_t;
-#endif
-#define _UINTPTR_T_DEFINED
-#endif
-
-#ifndef __cplusplus
-enum {
-    netsnmp_compile_time_uintptr_t_size_check
-        = sizeof(struct netsnmp_compile_time_uintptr_t_size_check_s { int:-!(sizeof(uintptr_t) == sizeof(void*)); })
-};
-#endif
+typedef unsigned short   uint16_t;
 
 /* Define if you have the closesocket function.  */
 #define HAVE_CLOSESOCKET 1
@@ -1628,24 +1575,28 @@ enum {
 /* define to 1 if you do not want to set global snmp_errno */
 #define DONT_SHARE_ERROR_WITH_OTHER_THREADS 1
 
-/* Defining vsnprintf is not necessary for MSVC 2008 or later */
-#if defined(_MSC_VER) && _MSC_VER < 1500
+/* Not needed for MSVC 2008 */
+#if _MSC_VER < 1500
 #define vsnprintf _vsnprintf
 #endif
-#ifdef _MSC_VER
 #define snprintf  _snprintf
-#endif
 
-#if defined(_MSC_VER) && _MSC_VER < 1600
 #define EADDRINUSE	WSAEADDRINUSE
-#endif
 
 /* Define NETSNMP_USE_DLL when building or using netsnmp.DLL */
 /* #undef NETSNMP_USE_DLL */
 
-#if defined(NETSNMP_DLL) && !defined(NETSNMP_USE_DLL)
-#error NETSNMP_USE_DLL must be defined when building libsnmp as a DLL.
-#endif
+#ifdef NETSNMP_USE_DLL
+  #ifdef NETSNMP_DLL
+    #if defined(_MSC_VER)
+      #define NETSNMP_IMPORT __declspec(dllexport)
+    #endif
+  #else
+    #if defined(_MSC_VER)
+      #define NETSNMP_IMPORT __declspec(dllimport)
+    #endif
+  #endif   /* NETSNMP_DLL */
+#endif     /* NETSNMP_USE_DLL */
 
 /*
  * DLL decoration, if used at all, must be consistent.
@@ -1658,38 +1609,20 @@ enum {
  *  the NETSNMP_IMPORT definitions harmless.
  */
 
-#ifdef NETSNMP_USE_DLL
-  #ifdef NETSNMP_DLL
-    #if defined(_MSC_VER)
-      #define NETSNMP_IMPORT __declspec(dllexport)
-    #endif
-  #else
-    #if defined(_MSC_VER)
-      #define NETSNMP_IMPORT __declspec(dllimport)
-    #endif
-  #endif   /* NETSNMP_DLL */
-#endif     /* NETSNMP_USE_DLL */
 
-/* MSVC OpenSSL linker settings. */
-#if defined(_MSC_VER)
-#  if defined(NETSNMP_USE_OPENSSL)
-#    ifdef _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")
-#    pragma comment(lib, "user32.lib")
-#  endif
-#endif
+  #ifdef NETSNMP_USE_DLL
+    #ifndef NETSNMP_TOOLS_C
+
+  /* wrap alloc functions to use DLL's memory heap */
+  /* This is not done in tools.c, where these wrappers are defined */
+
+      #define strdup    netsnmp_strdup
+      #define calloc    netsnmp_calloc
+      #define malloc    netsnmp_malloc
+      #define realloc   netsnmp_realloc
+      #define free      netsnmp_free
+    #endif
+  #endif
 
 #endif       /* WIN32 */
 
@@ -1697,7 +1630,7 @@ enum {
 #  define NETSNMP_IMPORT extern
 #endif
 
-#if defined(HAVE_NLIST) && defined(HAVE_STRUCT_NLIST_N_VALUE) && !defined(DONT_USE_NLIST) && !defined(NETSNMP_NO_KMEM_USAGE)
+#if defined(HAVE_NLIST) && defined(STRUCT_NLIST_HAS_N_VALUE) && !defined(DONT_USE_NLIST) && !defined(NETSNMP_NO_KMEM_USAGE)
 #define NETSNMP_CAN_USE_NLIST
 #endif
 
@@ -1705,6 +1638,7 @@ enum {
 #define DMALLOC_FUNC_CHECK
 #endif
 
+/* #undef NETSNMP_ENABLE_IPV6 */
 /* #undef NETSNMP_ENABLE_LOCAL_SMUX */
 
 /* define if agentx transport is to use domain sockets only */
@@ -1719,37 +1653,27 @@ enum {
 #define EXTENSIBLEMIB NETSNMP_UCDAVIS_MIB
 #endif
 
-#ifdef _MSC_VER
 /* Windows Vista and higher have inet_ntop but older Windows does not.
  * We'll use the Net-SNMP version instead. */
 #undef HAVE_INET_NTOP
 #undef HAVE_INET_PTON
 
-/* IPv6 transports */
-#ifdef NETSNMP_ENABLE_IPV6
+#if NETSNMP_ENABLE_IPV6
+  #ifndef IPPROTO_IPV6
+    /* Only defined in Windows XP or higher, so we need it here */
+    #define IPPROTO_IPV6 41
+  #endif
   #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
 #endif
-#endif
-
-/*
- * Although if_nametoindex() is available on Windows Vista, Windows Server
- * 2008 and later in iphlpapi.dll, do not link with if_nametoindex() such
- * that the Net-SNMP executable can be started on earlier Windows versions.
- */
-#undef HAVE_IF_NAMETOINDEX
 
 #ifndef NI_MAXHOST
 #define NI_MAXHOST	1025
 #endif
 
-/* Define to 1 if you have the `strtoull' function. */
-/* #undef HAVE_STRTOULL */
-
 /*
  * Module configuration and control starts here.
  *
@@ -1793,19 +1717,9 @@ enum {
 #define NETSNMP_TIMEOUT_WAITFORSINGLEOBJECT 5000
 
 #ifdef HAVE_WIN32_PLATFORM_SDK
-#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
+#define STRUCT_SOCKADDR_STORAGE_HAS_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"
-#else
-#define NETSNMP_PRIz ""
-#endif
-#endif
 
 #endif /* NET_SNMP_CONFIG_H */
 
diff --git a/win32/net-snmp/net-snmp-config.h.in b/win32/net-snmp/net-snmp-config.h.in
index 5215865..ae3541b 100644
--- a/win32/net-snmp/net-snmp-config.h.in
+++ b/win32/net-snmp/net-snmp-config.h.in
@@ -5,47 +5,31 @@
 #define NET_SNMP_CONFIG_H
 
 /* _MSC_VER values
-   1600 = 10.0 (2010)
-   1500 =  9.0 (2008)
-   1400 =  8.0 (2005)
-   1310 =  7.1 (2003)
-   1300 =  7.0 (2002)
-   1200 =  6.0
+   1500 = 9.0 (2008)
+   1400 = 8.0 (2005)
+   1310 = 7.1 (2003)
+   1300 = 7.0 (2002)
+   1200 = 6.0
 */
 
-#ifdef _MSC_VER
-/* Disable warning 4018: signed/unsigned mismatch. */
-#pragma warning (disable: 4018)
-#endif
-
-/* Automatically set by Windows perl Configure script.
- * When compiling with the MSVC workspace, this must be set manually.
- * See the PACKAGE_VERSION variable in Unix /configure script
-*/
-#ifndef PACKAGE_VERSION
-#define PACKAGE_VERSION "unknown"
-#endif
-
 /* Define HAVE_WIN32_PLATFORM_SDK if you have:
  * 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 */
 
-/* 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 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>.
  */
-#ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x501 /*_WIN32_WINNT_WIN2K*/
-#else
-#if _WIN32_WINNT < 0x501
-#error _WIN32_WINNT is too low - it should be set to at least 0x501.
-#endif
+#if defined(HAVE_WIN32_PLATFORM_SDK) || !defined(_MSC_VER) || _MSC_VER > 1200
+#define _WIN32_WINNT 0x500 /*_WIN32_WINNT_WIN2K*/
+#define NTDDI_VERSION 0x05000400 /* NTDDI_WIN2KSP4 */
 #endif
 
 #define INSTALL_BASE "c:/usr"
@@ -62,7 +46,7 @@
 
 /* default list of mibs to load */
 
-#define NETSNMP_DEFAULT_MIBS "IP-MIB;IF-MIB;TCP-MIB;UDP-MIB;HOST-RESOURCES-MIB;SNMPv2-MIB;RFC1213-MIB;NOTIFICATION-LOG-MIB;UCD-SNMP-MIB;UCD-DEMO-MIB;SNMP-TARGET-MIB;NET-SNMP-AGENT-MIB;DISMAN-EVENT-MIB;SNMP-VIEW-BASED-ACM-MIB;SNMP-COMMUNITY-MIB;SNMP-FRAMEWORK-MIB;SNMP-MPD-MIB;SNMP-USER-BASED-SM-MIB;SNMP-NOTIFICATION-MIB;SNMPv2-TM"
+#define NETSNMP_DEFAULT_MIBS "IP-MIB;IF-MIB;TCP-MIB;UDP-MIB;HOST-RESOURCES-MIB;SNMPv2-MIB;RFC1213-MIB;NOTIFICATION-LOG-MIB;UCD-SNMP-MIB;UCD-DEMO-MIB;SNMP-TARGET-MIB;NET-SNMP-AGENT-MIB;DISMAN-EVENT-MIB;SNMP-VIEW-BASED-ACM-MIB;SNMP-COMMUNITY-MIB;UCD-DLMOD-MIB;SNMP-FRAMEWORK-MIB;SNMP-MPD-MIB;SNMP-USER-BASED-SM-MIB;SNMP-NOTIFICATION-MIB;SNMPv2-TM"
 
 /* default location to look for mibs to load using the above tokens
    and/or those in the MIBS envrionment variable*/
@@ -239,17 +223,19 @@
 /* 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 */
 
-/* Define to 1 if you have the <crtdbg.h> header file. */
-#define HAVE_CRTDBG_H 1
-
 /* Define to 1 if you have the <direct.h> header file. */
-#define HAVE_DIRECT_H 1
+/* #undef HAVE_DIRECT_H */
 
-/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
-   */
+/* Define to 1 if you have the `chown' function. */
+/* #undef HAVE_CHOWN */
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.  */
 /* #undef HAVE_DIRENT_H */
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
@@ -324,14 +310,12 @@
 /* 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
 
@@ -377,6 +361,9 @@
 /* Define to 1 if you have the `crypto' library (-lcrypto). */
 /* #undef HAVE_LIBCRYPTO */
 
+/* Define to 1 if you have the `dl' library (-ldl). */
+/* #undef HAVE_LIBDL */
+
 /* Define to 1 if you have the `efence' library (-lefence). */
 /* #undef HAVE_LIBEFENCE */
 
@@ -386,6 +373,9 @@
 /* Define to 1 if you have the `kstat' library (-lkstat). */
 /* #undef HAVE_LIBKSTAT */
 
+/* Define to 1 if you have the `kvm' library (-lkvm). */
+/* #undef HAVE_LIBKVM */
+
 /* Define to 1 if you have the `m' library (-lm). */
 /* #undef HAVE_LIBM */
 
@@ -410,6 +400,9 @@
 /* Define to 1 if you have the `sensors' library (-lsensors). */
 /* #undef HAVE_LIBSENSORS */
 
+/* Define to 1 if you have the `z' library (-lz). */
+/* #undef HAVE_LIBZ */
+
 /* Define to 1 if you have the <limits.h> header file. */
 #define HAVE_LIMITS_H 1
 
@@ -422,6 +415,9 @@
 /* Define to 1 if you have the <locale.h> header file. */
 #define HAVE_LOCALE_H 1
 
+/* Define to 1 if you have the `localtime_r' function. */
+/* #undef HAVE_LOCALTIME_R */
+
 /* Define to 1 if you have the `lrand48' function. */
 /* #undef HAVE_LRAND48 */
 
@@ -437,6 +433,12 @@
 /* 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
 
@@ -506,9 +508,6 @@
 /* Define to 1 if you have the <netinet/ip_icmp.h> header file. */
 /* #undef HAVE_NETINET_IP_ICMP_H */
 
-/* Define to 1 if you have the <netinet/icmp6.h> header file. */
-/* #undef HAVE_NETINET_ICMP6_H */
-
 /* Define to 1 if you have the <netinet/ip_var.h> header file. */
 /* #undef HAVE_NETINET_IP_VAR_H */
 
@@ -680,10 +679,11 @@
 /* Define to 1 if you have the `statvfs' function. */
 /* #undef HAVE_STATVFS */
 
+/* Define to 1 if you have the <stdarg.h> header file. */
+#define HAVE_STDARG_H 1
+
 /* Define to 1 if you have the <stdint.h> header file. */
-#ifdef __MINGW32__
-#define HAVE_STDINT_H 1
-#endif
+/* #undef HAVE_STDINT_H */
 
 /* Define to 1 if you have the <stdlib.h> header file. */
 #define HAVE_STDLIB_H 1
@@ -694,6 +694,9 @@
 /* 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
 
@@ -837,9 +840,6 @@
 /* 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
 
@@ -933,12 +933,6 @@
 /* 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
-
 /* Define to 1 if you have the <xti.h> header file. */
 /* #undef HAVE_XTI_H */
 
@@ -946,17 +940,13 @@
 /* #undef PACKAGE_BUGREPORT */
 
 /* Define to the full name of this package. */
-#ifndef PACKAGE_NAME
 #define PACKAGE_NAME "Net-SNMP"
-#endif
 
 /* Define to the full name and version of this package. */
 /* #undef PACKAGE_STRING */
 
 /* Define to the one symbol short name of this package. */
-#ifndef PACKAGE_TARNAME
 #define PACKAGE_TARNAME "net-snmp"
-#endif
 
 /* Define to the version of this package. */
 /* #undef PACKAGE_VERSION */
@@ -970,9 +960,6 @@
 /* The size of a `long', as computed by sizeof. */
 #define SIZEOF_LONG 4
 
-/* The size of a `intmax_t', as computed by sizeof. */
-#define SIZEOF_INTMAX_T 8
-
 /* The size of a `short', as computed by sizeof. */
 #define SIZEOF_SHORT 2
 
@@ -988,7 +975,7 @@
 #define STDC_HEADERS 1
 
 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-/* #undef TIME_WITH_SYS_TIME */
+#define TIME_WITH_SYS_TIME 1
 
 /* Define to 1 if your processor stores words with the most significant byte
    first (like Motorola and SPARC, unlike Intel and VAX). */
@@ -1037,102 +1024,96 @@
 /* #undef RTENTRY_4_4 */
 
 /* Does struct sigaction have a sa_sigaction field? */
-/* #undef HAVE_STRUCT_SIGACTION_SA_SIGACTION */
+/* #undef STRUCT_SIGACTION_HAS_SA_SIGACTION */
 
 /* Does struct sockaddr have a sa_len field? */
-/* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */
+/* #undef STRUCT_SOCKADDR_HAS_SA_LEN */
 
 /* Does struct sockaddr have a sa_family2 field? */
-/* #undef HAVE_STRUCT_SOCKADDR_SA_UNION_SA_GENERIC_SA_FAMILY2 */
+/* #undef STRUCT_SOCKADDR_HAS_SA_UNION_SA_GENERIC_SA_FAMILY2 */
 
 /* Does struct in6_addr have a s6_un.sa6_ladd field? */
-/* #undef HAVE_STRUCT_IN6_ADDR_S6_UN_SA6_LADDR */
-
-/* msghdr.msg_control */
-/* #undef HAVE_STRUCT_MSGHDR_MSG_CONTROL */
-
-/* msghdr.msg_flags */
-/* #undef HAVE_STRUCT_MSGHDR_MSG_FLAGS */
+/* #undef STRUCT_IN6_ADDR_HAS_S6_UN_SA6_LADDR */
 
 /* rtentry structure tests */
 /* #undef RTENTRY_RT_NEXT */
-/* #undef HAVE_STRUCT_RTENTRY_RT_DST */
-/* #undef HAVE_STRUCT_RTENTRY_RT_UNIT */
-/* #undef HAVE_STRUCT_RTENTRY_RT_USE */
-/* #undef HAVE_STRUCT_RTENTRY_RT_REFCNT */
-/* #undef HAVE_STRUCT_RTENTRY_RT_HASH */
+/* #undef STRUCT_RTENTRY_HAS_RT_DST */
+/* #undef STRUCT_RTENTRY_HAS_RT_UNIT */
+/* #undef STRUCT_RTENTRY_HAS_RT_USE */
+/* #undef STRUCT_RTENTRY_HAS_RT_REFCNT */
+/* #undef STRUCT_RTENTRY_HAS_RT_HASH */
 
 /* ifnet structure tests */
-/* #undef HAVE_STRUCT_IFNET_IF_BAUDRATE */
-/* #undef HAVE_STRUCT_IFNET_IF_BAUDRATE_IFS_VALUE */
-/* #undef HAVE_STRUCT_IFNET_IF_SPEED */
-/* #undef HAVE_STRUCT_IFNET_IF_TYPE */
-/* #undef HAVE_STRUCT_IFNET_IF_IMCASTS */
-/* #undef HAVE_STRUCT_IFNET_IF_IQDROPS */
-/* #undef HAVE_STRUCT_IFNET_IF_LASTCHANGE_TV_SEC */
-/* #undef HAVE_STRUCT_IFNET_IF_NOPROTO */
-/* #undef HAVE_STRUCT_IFNET_IF_OMCASTS */
-/* #undef HAVE_STRUCT_IFNET_IF_XNAME */
-/* #undef HAVE_STRUCT_IFNET_IF_OBYTES */
-/* #undef HAVE_STRUCT_IFNET_IF_IBYTES */
-/* #undef HAVE_STRUCT_IFNET_IF_ADDRLIST */
+/* #undef STRUCT_IFNET_HAS_IF_BAUDRATE */
+/* #undef STRUCT_IFNET_HAS_IF_BAUDRATE_IFS_VALUE */
+/* #undef STRUCT_IFNET_HAS_IF_SPEED */
+/* #undef STRUCT_IFNET_HAS_IF_TYPE */
+/* #undef STRUCT_IFNET_HAS_IF_IMCASTS */
+/* #undef STRUCT_IFNET_HAS_IF_IQDROPS */
+/* #undef STRUCT_IFNET_HAS_IF_LASTCHANGE_TV_SEC */
+/* #undef STRUCT_IFNET_HAS_IF_NOPROTO */
+/* #undef STRUCT_IFNET_HAS_IF_OMCASTS */
+/* #undef STRUCT_IFNET_HAS_IF_XNAME */
+/* #undef STRUCT_IFNET_HAS_IF_OBYTES */
+/* #undef STRUCT_IFNET_HAS_IF_IBYTES */
+/* #undef STRUCT_IFNET_HAS_IF_ADDRLIST */
 
 /* tcpstat.tcps_rcvmemdrop */
-/* #undef HAVE_STRUCT_TCPSTAT_TCPS_RCVMEMDROP */
+/* #undef STRUCT_TCPSTAT_HAS_TCPS_RCVMEMDROP */
 
 /* udpstat.udps_discard */
-/* #undef HAVE_STRUCT_UDPSTAT_UDPS_DISCARD */
+/* #undef STRUCT_UDPSTAT_HAS_UDPS_DISCARD */
 
 /* udpstat.udps_discard */
-/* #undef HAVE_STRUCT_UDPSTAT_UDPS_NOPORT */
+/* #undef STRUCT_UDPSTAT_HAS_UDPS_NOPORT */
 
 /* udpstat.udps_discard */
-/* #undef HAVE_STRUCT_UDPSTAT_UDPS_NOPORTBCAST */
+/* #undef STRUCT_UDPSTAT_HAS_UDPS_NOPORTBCAST */
 
 /* udpstat.udps_discard */
-/* #undef HAVE_STRUCT_UDPSTAT_UDPS_FULLSOCK */
+/* #undef STRUCT_UDPSTAT_HAS_UDPS_FULLSOCK */
 
 /* arphd.at_next */
-/* #undef HAVE_STRUCT_ARPHD_AT_NEXT */
+/* #undef STRUCT_ARPHD_HAS_AT_NEXT */
 
 /* ifaddr.ifa_next */
-/* #undef HAVE_STRUCT_IFADDR_IFA_NEXT */
+/* #undef STRUCT_IFADDR_HAS_IFA_NEXT */
 
 /* ifnet.if_mtu */
-/* #undef HAVE_STRUCT_IFNET_IF_MTU */
+/* #undef STRUCT_IFNET_HAS_IF_MTU */
 
 /* swdevt.sw_nblksenabled */
-/* #undef HAVE_STRUCT_SWDEVT_SW_NBLKSENABLED */
+/* #undef STRUCT_SWDEVT_HAS_SW_NBLKSENABLED */
 
 /* nlist.n_value */
-/* #undef HAVE_STRUCT_NLIST_N_VALUE */
+/* #undef STRUCT_NLIST_HAS_N_VALUE */
 
 /* ipstat structure tests */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_CANTFORWARD */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_CANTFRAG */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_DELIVERED */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_FRAGDROPPED */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_FRAGTIMEOUT */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_LOCALOUT */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_NOPROTO */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_NOROUTE */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_ODROPPED */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_OFRAGMENTS */
-/* #undef HAVE_STRUCT_IPSTAT_IPS_REASSEMBLED */
+/* #undef STRUCT_IPSTAT_HAS_IPS_CANTFORWARD */
+/* #undef STRUCT_IPSTAT_HAS_IPS_CANTFRAG */
+/* #undef STRUCT_IPSTAT_HAS_IPS_DELIVERED */
+/* #undef STRUCT_IPSTAT_HAS_IPS_FRAGDROPPED */
+/* #undef STRUCT_IPSTAT_HAS_IPS_FRAGTIMEOUT */
+/* #undef STRUCT_IPSTAT_HAS_IPS_LOCALOUT */
+/* #undef STRUCT_IPSTAT_HAS_IPS_NOPROTO */
+/* #undef STRUCT_IPSTAT_HAS_IPS_NOROUTE */
+/* #undef STRUCT_IPSTAT_HAS_IPS_ODROPPED */
+/* #undef STRUCT_IPSTAT_HAS_IPS_OFRAGMENTS */
+/* #undef STRUCT_IPSTAT_HAS_IPS_REASSEMBLED */
 
 /* vfsstat.f_frsize */
-/* #undef HAVE_STRUCT_STATVFS_F_FRSIZE */
+/* #undef STRUCT_STATVFS_HAS_F_FRSIZE */
 
 /* vfsstat.f_files */
-/* #undef HAVE_STRUCT_STATVFS_F_FILES */
+/* #undef STRUCT_STATVFS_HAS_F_FILES */
 
 /* statfs inode structure tests*/
-/* #undef HAVE_STRUCT_STATFS_F_FILES */
-/* #undef HAVE_STRUCT_STATFS_F_FFREE */
-/* #undef HAVE_STRUCT_STATFS_F_FAVAIL */
+/* #undef STRUCT_STATFS_HAS_F_FILES */
+/* #undef STRUCT_STATFS_HAS_F_FFREE */
+/* #undef STRUCT_STATFS_HAS_F_FAVAIL */
 
 /* des_ks_struct.weak_key */
-/* #undef HAVE_STRUCT_DES_KS_STRUCT_WEAK_KEY */
+/* #undef STRUCT_DES_KS_STRUCT_HAS_WEAK_KEY */
 
 /* ifnet needs to have _KERNEL defined */
 /* #undef IFNET_NEEDS_KERNEL */
@@ -1146,6 +1127,9 @@
 /* define if SIOCGIFADDR exists in sys/ioctl.h */
 /* #undef SYS_IOCTL_H_HAS_SIOCGIFADDR */
 
+/* define if your compiler (processor) defines __FUNCTION__ for you */
+/* #undef HAVE_CPP_UNDERBAR_FUNCTION_DEFINED */
+
 /* Mib-2 tree Info */
 /* These are the system information variables. */
 
@@ -1332,6 +1316,9 @@
 /* UNdefine to allow specifying zero-length community string */
 /* #define NETSNMP_NO_ZEROLENGTH_COMMUNITY 1 */
 
+/* #define NETSNMP_EXIT_ON_BAD_KLREAD  */
+/* define to exit the agent on a bad kernel read */
+
 #define NETSNMP_LASTFIELD -1      /* internal define */
 
 /* configure options specified */
@@ -1345,9 +1332,45 @@
 /* got in_addr_t? */
 /* #undef HAVE_IN_ADDR_T */
 
-#ifdef __MINGW32__
 /* got ssize_t? */
-#define HAVE_SSIZE_T
+/* #undef HAVE_SSIZE_T */
+
+#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. */
@@ -1361,12 +1384,6 @@
 /* Define to 1 if you have the <openssl/aes.h> header file. */
 #define HAVE_OPENSSL_AES_H 1
 
-/* Define to 1 if you have the `EVP_MD_CTX_create' function. */
-#define HAVE_EVP_MD_CTX_CREATE 1
-
-/* Define to 1 if you have the `EVP_MD_CTX_destroy' function. */
-#define HAVE_EVP_MD_CTX_DESTROY 1
-
 /* Define to 1 if you have the `AES_cfb128_encrypt' function. */
 #define HAVE_AES_CFB128_ENCRYPT 1
 
@@ -1414,9 +1431,6 @@
 /* define if you have gethostbyname */
 #define HAVE_GETHOSTBYNAME 1
 
-/* define if you have gethostbyaddr */
-#define HAVE_GETHOSTBYADDR 1
-
 /* printing system */
 /* #undef HAVE_LPSTAT */
 /* #undef LPSTAT_PATH */
@@ -1458,32 +1472,6 @@
     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
 
@@ -1501,16 +1489,14 @@
 
 /* Not-to-be-compiled macros for use by configure only */
 #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)
+#if defined (WIN32) || defined (mingw32) || defined (cygwin)
 #define ENV_SEPARATOR ";"
 #define ENV_SEPARATOR_CHAR ';'
 #else
@@ -1573,51 +1559,12 @@
 
 #ifdef WIN32
 
-#ifndef __MINGW32__
 typedef unsigned short mode_t;
-#endif
-#ifndef HAVE_STDINT_H
-typedef unsigned char uint8_t;
-typedef char int8_t;
-typedef unsigned __int16 uint16_t;
-typedef __int16 int16_t;
 typedef unsigned __int32 uint32_t;
-typedef __int32 int32_t;
+typedef long int32_t;
 typedef unsigned __int64 uint64_t;
 typedef __int64 int64_t;
-typedef unsigned __int64 uintmax_t;
-typedef __int64 intmax_t;
-#else /* HAVE_STDINT_H */
-#include <stdint.h>
-#endif /* HAVE_STDINT_H */
-
-
-/* (u)intptr_t should only be needed for MSVC 6 32-bit. */
-/* SDK has it for 64-bit and newer MSVC should also have it in stddef.h. */
-#ifndef _INTPTR_T_DEFINED
-#ifdef _M_X64
-typedef __int64          intptr_t;
-#else
-typedef int              intptr_t;
-#endif
-#define _INTPTR_T_DEFINED
-#endif
-
-#ifndef _UINTPTR_T_DEFINED
-#ifdef _M_X64
-typedef unsigned __int64 uintptr_t;
-#else
-typedef unsigned int     uintptr_t;
-#endif
-#define _UINTPTR_T_DEFINED
-#endif
-
-#ifndef __cplusplus
-enum {
-    netsnmp_compile_time_uintptr_t_size_check
-        = sizeof(struct netsnmp_compile_time_uintptr_t_size_check_s { int:-!(sizeof(uintptr_t) == sizeof(void*)); })
-};
-#endif
+typedef unsigned short   uint16_t;
 
 /* Define if you have the closesocket function.  */
 #define HAVE_CLOSESOCKET 1
@@ -1628,24 +1575,28 @@ enum {
 /* define to 1 if you do not want to set global snmp_errno */
 #define DONT_SHARE_ERROR_WITH_OTHER_THREADS 1
 
-/* Defining vsnprintf is not necessary for MSVC 2008 or later */
-#if defined(_MSC_VER) && _MSC_VER < 1500
+/* Not needed for MSVC 2008 */
+#if _MSC_VER < 1500
 #define vsnprintf _vsnprintf
 #endif
-#ifdef _MSC_VER
 #define snprintf  _snprintf
-#endif
 
-#if defined(_MSC_VER) && _MSC_VER < 1600
 #define EADDRINUSE	WSAEADDRINUSE
-#endif
 
 /* Define NETSNMP_USE_DLL when building or using netsnmp.DLL */
 /* #undef NETSNMP_USE_DLL */
 
-#if defined(NETSNMP_DLL) && !defined(NETSNMP_USE_DLL)
-#error NETSNMP_USE_DLL must be defined when building libsnmp as a DLL.
-#endif
+#ifdef NETSNMP_USE_DLL
+  #ifdef NETSNMP_DLL
+    #if defined(_MSC_VER)
+      #define NETSNMP_IMPORT __declspec(dllexport)
+    #endif
+  #else
+    #if defined(_MSC_VER)
+      #define NETSNMP_IMPORT __declspec(dllimport)
+    #endif
+  #endif   /* NETSNMP_DLL */
+#endif     /* NETSNMP_USE_DLL */
 
 /*
  * DLL decoration, if used at all, must be consistent.
@@ -1658,38 +1609,20 @@ enum {
  *  the NETSNMP_IMPORT definitions harmless.
  */
 
-#ifdef NETSNMP_USE_DLL
-  #ifdef NETSNMP_DLL
-    #if defined(_MSC_VER)
-      #define NETSNMP_IMPORT __declspec(dllexport)
-    #endif
-  #else
-    #if defined(_MSC_VER)
-      #define NETSNMP_IMPORT __declspec(dllimport)
-    #endif
-  #endif   /* NETSNMP_DLL */
-#endif     /* NETSNMP_USE_DLL */
 
-/* MSVC OpenSSL linker settings. */
-#if defined(_MSC_VER)
-#  if defined(NETSNMP_USE_OPENSSL)
-#    ifdef _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")
-#    pragma comment(lib, "user32.lib")
-#  endif
-#endif
+  #ifdef NETSNMP_USE_DLL
+    #ifndef NETSNMP_TOOLS_C
+
+  /* wrap alloc functions to use DLL's memory heap */
+  /* This is not done in tools.c, where these wrappers are defined */
+
+      #define strdup    netsnmp_strdup
+      #define calloc    netsnmp_calloc
+      #define malloc    netsnmp_malloc
+      #define realloc   netsnmp_realloc
+      #define free      netsnmp_free
+    #endif
+  #endif
 
 #endif       /* WIN32 */
 
@@ -1697,7 +1630,7 @@ enum {
 #  define NETSNMP_IMPORT extern
 #endif
 
-#if defined(HAVE_NLIST) && defined(HAVE_STRUCT_NLIST_N_VALUE) && !defined(DONT_USE_NLIST) && !defined(NETSNMP_NO_KMEM_USAGE)
+#if defined(HAVE_NLIST) && defined(STRUCT_NLIST_HAS_N_VALUE) && !defined(DONT_USE_NLIST) && !defined(NETSNMP_NO_KMEM_USAGE)
 #define NETSNMP_CAN_USE_NLIST
 #endif
 
@@ -1705,6 +1638,7 @@ enum {
 #define DMALLOC_FUNC_CHECK
 #endif
 
+/* #undef NETSNMP_ENABLE_IPV6 */
 /* #undef NETSNMP_ENABLE_LOCAL_SMUX */
 
 /* define if agentx transport is to use domain sockets only */
@@ -1719,37 +1653,27 @@ enum {
 #define EXTENSIBLEMIB NETSNMP_UCDAVIS_MIB
 #endif
 
-#ifdef _MSC_VER
 /* Windows Vista and higher have inet_ntop but older Windows does not.
  * We'll use the Net-SNMP version instead. */
 #undef HAVE_INET_NTOP
 #undef HAVE_INET_PTON
 
-/* IPv6 transports */
-#ifdef NETSNMP_ENABLE_IPV6
+#if NETSNMP_ENABLE_IPV6
+  #ifndef IPPROTO_IPV6
+    /* Only defined in Windows XP or higher, so we need it here */
+    #define IPPROTO_IPV6 41
+  #endif
   #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
 #endif
-#endif
-
-/*
- * Although if_nametoindex() is available on Windows Vista, Windows Server
- * 2008 and later in iphlpapi.dll, do not link with if_nametoindex() such
- * that the Net-SNMP executable can be started on earlier Windows versions.
- */
-#undef HAVE_IF_NAMETOINDEX
 
 #ifndef NI_MAXHOST
 #define NI_MAXHOST	1025
 #endif
 
-/* Define to 1 if you have the `strtoull' function. */
-/* #undef HAVE_STRTOULL */
-
 /*
  * Module configuration and control starts here.
  *
@@ -1793,19 +1717,9 @@ enum {
 #define NETSNMP_TIMEOUT_WAITFORSINGLEOBJECT 5000
 
 #ifdef HAVE_WIN32_PLATFORM_SDK
-#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
+#define STRUCT_SOCKADDR_STORAGE_HAS_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"
-#else
-#define NETSNMP_PRIz ""
-#endif
-#endif
 
 #endif /* NET_SNMP_CONFIG_H */
 
diff --git a/win32/netsnmpmibs/Makefile.in b/win32/netsnmpmibs/Makefile.in
index 44d0203..f3a33b8 100644
--- a/win32/netsnmpmibs/Makefile.in
+++ b/win32/netsnmpmibs/Makefile.in
@@ -2,7 +2,6 @@ PROGNAME=
 CFG=
 OUTDIR=
 INTDIR=
-SDK=
 
 !IF "$(OS)" == "Windows_NT"
 NULL=
@@ -10,8 +9,76 @@ NULL=
 NULL=nul
 !ENDIF 
 
+!IF  "$(CFG)" == "release"
+
 ALL : "..\lib\$(OUTDIR)\$(PROGNAME).lib"
 
+
+CLEAN :
+	- at erase "$(INTDIR)\agentx_config.obj"
+	- at erase "$(INTDIR)\client.obj"
+	- at erase "$(INTDIR)\dlmod.obj"
+	- at erase "$(INTDIR)\errormib.obj"
+	- at erase "$(INTDIR)\example.obj"
+	- at erase "$(INTDIR)\execute.obj"
+	- at erase "$(INTDIR)\iquery.obj"
+	- at erase "$(INTDIR)\extensible.obj"
+	- at erase "$(INTDIR)\file.obj"
+	- at erase "$(INTDIR)\header_complex.obj"
+	- at erase "$(INTDIR)\loadave.obj"
+	- at erase "$(INTDIR)\master.obj"
+	- at erase "$(INTDIR)\master_admin.obj"
+	- at erase "$(INTDIR)\mib_modules.obj"
+	- at erase "$(INTDIR)\mteEventNotificationTable.obj"
+	- at erase "$(INTDIR)\mteEventTable.obj"
+	- at erase "$(INTDIR)\mteObjectsTable.obj"
+	- at erase "$(INTDIR)\mteTriggerBooleanTable.obj"
+	- at erase "$(INTDIR)\mteTriggerDeltaTable.obj"
+	- at erase "$(INTDIR)\mteTriggerExistenceTable.obj"
+	- at erase "$(INTDIR)\mteTriggerTable.obj"
+	- at erase "$(INTDIR)\mteTriggerThresholdTable.obj"
+	- at erase "$(INTDIR)\extend.obj"
+	- at erase "$(INTDIR)\nsCache.obj"
+	- at erase "$(INTDIR)\nsDebug.obj"
+	- at erase "$(INTDIR)\nsLogging.obj"
+	- at erase "$(INTDIR)\nsModuleTable.obj"
+	- at erase "$(INTDIR)\nsTransactionTable.obj"
+	- at erase "$(INTDIR)\override.obj"
+	- at erase "$(INTDIR)\pass.obj"
+	- at erase "$(INTDIR)\pass_persist.obj"
+	- at erase "$(INTDIR)\proc.obj"
+	- at erase "$(INTDIR)\protocol.obj"
+	- at erase "$(INTDIR)\proxy.obj"
+	- at erase "$(INTDIR)\setSerialNo.obj"
+	- at erase "$(INTDIR)\smux.obj"
+	- at erase "$(INTDIR)\snmp_mib.obj"
+	- at erase "$(INTDIR)\snmpEngine.obj"
+	- at erase "$(INTDIR)\snmpMPDStats.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterProfileTable.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterTable.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterTable_data_access.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterTable_interface.obj"
+	- at erase "$(INTDIR)\snmpNotifyTable.obj"
+	- at erase "$(INTDIR)\snmpTargetAddrEntry.obj"
+	- at erase "$(INTDIR)\snmpTargetParamsEntry.obj"
+	- at erase "$(INTDIR)\subagent.obj"
+	- at erase "$(INTDIR)\sysORTable.obj"
+	- at erase "$(INTDIR)\system_mib.obj"
+	- at erase "$(INTDIR)\target.obj"
+	- at erase "$(INTDIR)\target_counters.obj"
+	- at erase "$(INTDIR)\ucdDemoPublic.obj"
+	- at erase "$(INTDIR)\usmConf.obj"
+	- at erase "$(INTDIR)\usmStats.obj"
+	- at erase "$(INTDIR)\usmUser.obj"
+	- at erase "$(INTDIR)\util_funcs.obj"
+	- at erase "$(INTDIR)\vacm_context.obj"
+	- at erase "$(INTDIR)\vacm_conf.obj"
+	- at erase "$(INTDIR)\vacm_vars.obj"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\versioninfo.obj"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
+	- at erase "..\lib\$(OUTDIR)\$(PROGNAME).lib"
+
 "..\lib\$(OUTDIR)" :
     if not exist "..\lib\$(OUTDIR)/$(NULL)" mkdir "..\lib\$(OUTDIR)"
 
@@ -19,11 +86,7 @@ ALL : "..\lib\$(OUTDIR)\$(PROGNAME).lib"
     if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
 
 CPP=cl.exe
-!IF  "$(CFG)" == "release"
-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 
-!ELSEIF  "$(CFG)" == "debug"
-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 
-!ENDIF
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\$(PROGNAME).pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 
 .c{$(INTDIR)}.obj::
    $(CPP) @<<
@@ -56,42 +119,36 @@ CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I
 <<
 
 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)\$(PROGNAME).lib" 
-LIB32_OBJS1= \
+LIB32_OBJS= \
 	"$(INTDIR)\setSerialNo.obj" \
 	"$(INTDIR)\snmp_mib.obj" \
 	"$(INTDIR)\sysORTable.obj" \
 	"$(INTDIR)\system_mib.obj" \
-	"$(INTDIR)\updates.obj" \
 	"$(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"
-LIB32_OBJS2= \
+	"$(INTDIR)\file.obj" \
 	"$(INTDIR)\loadave.obj" \
 	"$(INTDIR)\pass.obj" \
-	"$(INTDIR)\pass_common.obj" \
 	"$(INTDIR)\pass_persist.obj" \
 	"$(INTDIR)\proc.obj" \
 	"$(INTDIR)\proxy.obj" \
@@ -124,44 +181,203 @@ LIB32_OBJS2= \
 	"$(INTDIR)\nsTransactionTable.obj" \
 	"$(INTDIR)\execute.obj" \
 	"$(INTDIR)\iquery.obj" \
-	"$(INTDIR)\override.obj" \
-	"$(INTDIR)\header_generic.obj" \
-	"$(INTDIR)\header_simple_table.obj" \
 	"$(INTDIR)\header_complex.obj" \
 	"$(INTDIR)\mib_modules.obj" \
+	"$(INTDIR)\override.obj" \
 	"$(INTDIR)\util_funcs.obj" \
-	"$(INTDIR)\Exit.obj" \
-	"$(INTDIR)\restart.obj" \
 	"$(INTDIR)\smux.obj"
-!IF "$(SDK)" == "true"
-LIB32_OBJS3= \
-	"$(INTDIR)\at.obj" \
-	"$(INTDIR)\icmp.obj" \
-	"$(INTDIR)\interfaces.obj" \
-	"$(INTDIR)\ip.obj" \
-	"$(INTDIR)\ipAddr.obj" \
-	"$(INTDIR)\notification_log.obj" \
-	"$(INTDIR)\route_write.obj" \
-	"$(INTDIR)\tcp.obj" \
-	"$(INTDIR)\tcpTable.obj" \
-	"$(INTDIR)\udp.obj" \
-	"$(INTDIR)\udpTable.obj" \
-	"$(INTDIR)\var_route.obj" \
-	"$(INTDIR)\winExtDLL.obj"
-!ENDIF
-LIB32_OBJS=$(LIB32_OBJS1) $(LIB32_OBJS2) $(LIB32_OBJS3)
+
+"..\lib\$(OUTDIR)\$(PROGNAME).lib" : "..\lib\$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "debug"
+
+ALL : "..\lib\$(OUTDIR)\$(PROGNAME).lib"
+
 
 CLEAN :
-	- at for %f in ($(LIB32_OBJS1)) do erase %%f
-	- at for %f in ($(LIB32_OBJS2)) do erase %%f
-	- at for %f in ($(LIB32_OBJS3)) do erase %%f
+	- at erase "$(INTDIR)\agentx_config.obj"
+	- at erase "$(INTDIR)\client.obj"
+	- at erase "$(INTDIR)\dlmod.obj"
+	- at erase "$(INTDIR)\errormib.obj"
+	- at erase "$(INTDIR)\example.obj"
+	- at erase "$(INTDIR)\execute.obj"
+	- at erase "$(INTDIR)\iquery.obj"
+	- at erase "$(INTDIR)\extensible.obj"
+	- at erase "$(INTDIR)\file.obj"
+	- at erase "$(INTDIR)\header_complex.obj"
+	- at erase "$(INTDIR)\loadave.obj"
+	- at erase "$(INTDIR)\master.obj"
+	- at erase "$(INTDIR)\master_admin.obj"
+	- at erase "$(INTDIR)\mib_modules.obj"
+	- at erase "$(INTDIR)\mteEventNotificationTable.obj"
+	- at erase "$(INTDIR)\mteEventTable.obj"
+	- at erase "$(INTDIR)\mteObjectsTable.obj"
+	- at erase "$(INTDIR)\mteTriggerBooleanTable.obj"
+	- at erase "$(INTDIR)\mteTriggerDeltaTable.obj"
+	- at erase "$(INTDIR)\mteTriggerExistenceTable.obj"
+	- at erase "$(INTDIR)\mteTriggerTable.obj"
+	- at erase "$(INTDIR)\mteTriggerThresholdTable.obj"
+	- at erase "$(INTDIR)\extend.obj"
+	- at erase "$(INTDIR)\nsCache.obj"
+	- at erase "$(INTDIR)\nsDebug.obj"
+	- at erase "$(INTDIR)\nsLogging.obj"
+	- at erase "$(INTDIR)\nsModuleTable.obj"
+	- at erase "$(INTDIR)\nsTransactionTable.obj"
+	- at erase "$(INTDIR)\override.obj"
+	- at erase "$(INTDIR)\pass.obj"
+	- at erase "$(INTDIR)\pass_persist.obj"
+	- at erase "$(INTDIR)\proc.obj"
+	- at erase "$(INTDIR)\protocol.obj"
+	- at erase "$(INTDIR)\proxy.obj"
+	- at erase "$(INTDIR)\setSerialNo.obj"
+	- at erase "$(INTDIR)\smux.obj"
+	- at erase "$(INTDIR)\snmp_mib.obj"
+	- at erase "$(INTDIR)\snmpEngine.obj"
+	- at erase "$(INTDIR)\snmpMPDStats.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterProfileTable.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterTable.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterTable_data_access.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterTable_interface.obj"
+	- at erase "$(INTDIR)\snmpNotifyTable.obj"
+	- at erase "$(INTDIR)\snmpTargetAddrEntry.obj"
+	- at erase "$(INTDIR)\snmpTargetParamsEntry.obj"
+	- at erase "$(INTDIR)\subagent.obj"
+	- at erase "$(INTDIR)\sysORTable.obj"
+	- at erase "$(INTDIR)\system_mib.obj"
+	- at erase "$(INTDIR)\target.obj"
+	- at erase "$(INTDIR)\target_counters.obj"
+	- at erase "$(INTDIR)\ucdDemoPublic.obj"
+	- at erase "$(INTDIR)\usmConf.obj"
+	- at erase "$(INTDIR)\usmStats.obj"
+	- at erase "$(INTDIR)\usmUser.obj"
+	- at erase "$(INTDIR)\util_funcs.obj"
+	- at erase "$(INTDIR)\vacm_context.obj"
+	- at erase "$(INTDIR)\vacm_conf.obj"
+	- at erase "$(INTDIR)\vacm_vars.obj"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\vc??.pdb"
+	- at erase "$(INTDIR)\versioninfo.obj"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
 	- at erase "..\lib\$(OUTDIR)\$(PROGNAME).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 /GX /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\$(PROGNAME).pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /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)\$(PROGNAME).lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\setSerialNo.obj" \
+	"$(INTDIR)\snmp_mib.obj" \
+	"$(INTDIR)\sysORTable.obj" \
+	"$(INTDIR)\system_mib.obj" \
+	"$(INTDIR)\vacm_context.obj" \
+	"$(INTDIR)\vacm_conf.obj" \
+	"$(INTDIR)\vacm_vars.obj" \
+	"$(INTDIR)\mteEventNotificationTable.obj" \
+	"$(INTDIR)\mteEventTable.obj" \
+	"$(INTDIR)\mteObjectsTable.obj" \
+	"$(INTDIR)\mteTriggerBooleanTable.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)\loadave.obj" \
+	"$(INTDIR)\pass.obj" \
+	"$(INTDIR)\pass_persist.obj" \
+	"$(INTDIR)\proc.obj" \
+	"$(INTDIR)\proxy.obj" \
+	"$(INTDIR)\versioninfo.obj" \
+	"$(INTDIR)\snmpEngine.obj" \
+	"$(INTDIR)\snmpMPDStats.obj" \
+	"$(INTDIR)\usmConf.obj" \
+	"$(INTDIR)\usmStats.obj" \
+	"$(INTDIR)\usmUser.obj" \
+	"$(INTDIR)\snmpNotifyFilterProfileTable.obj" \
+	"$(INTDIR)\snmpNotifyFilterTable.obj" \
+	"$(INTDIR)\snmpNotifyFilterTable_data_access.obj" \
+	"$(INTDIR)\snmpNotifyFilterTable_interface.obj" \
+	"$(INTDIR)\snmpNotifyTable.obj" \
+	"$(INTDIR)\snmpTargetAddrEntry.obj" \
+	"$(INTDIR)\snmpTargetParamsEntry.obj" \
+	"$(INTDIR)\target.obj" \
+	"$(INTDIR)\target_counters.obj" \
+	"$(INTDIR)\agentx_config.obj" \
+	"$(INTDIR)\client.obj" \
+	"$(INTDIR)\master.obj" \
+	"$(INTDIR)\master_admin.obj" \
+	"$(INTDIR)\protocol.obj" \
+	"$(INTDIR)\subagent.obj" \
+	"$(INTDIR)\extend.obj" \
+	"$(INTDIR)\nsCache.obj" \
+	"$(INTDIR)\nsDebug.obj" \
+	"$(INTDIR)\nsLogging.obj" \
+	"$(INTDIR)\nsModuleTable.obj" \
+	"$(INTDIR)\nsTransactionTable.obj" \
+	"$(INTDIR)\execute.obj" \
+	"$(INTDIR)\iquery.obj" \
+	"$(INTDIR)\header_complex.obj" \
+	"$(INTDIR)\mib_modules.obj" \
+	"$(INTDIR)\override.obj" \
+	"$(INTDIR)\util_funcs.obj" \
+	"$(INTDIR)\smux.obj"
+
 "..\lib\$(OUTDIR)\$(PROGNAME).lib" : "..\lib\$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
     $(LIB32) @<<
   $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
 <<
 
+!ENDIF 
+
 
 !IF "$(NO_EXTERNAL_DEPS)" != "1"
 !IF EXISTS("$(PROGNAME).dep")
@@ -197,12 +413,6 @@ SOURCE=..\..\agent\mibgroup\mibII\system_mib.c
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\agent\mibgroup\mibII\updates.c
-
-"$(INTDIR)\updates.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
 SOURCE=..\..\agent\mibgroup\mibII\vacm_context.c
 
 "$(INTDIR)\vacm_context.obj" : $(SOURCE) "$(INTDIR)"
@@ -221,82 +431,49 @@ SOURCE=..\..\agent\mibgroup\mibII\vacm_vars.c
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-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
+SOURCE=..\..\agent\mibgroup\disman\mteEventNotificationTable.c
 
 "$(INTDIR)\mteEventNotificationTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteEventSetTable.c
-
-"$(INTDIR)\mteEventSetTable.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteEventTable.c
+SOURCE=..\..\agent\mibgroup\disman\mteEventTable.c
 
 "$(INTDIR)\mteEventTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteObjects.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
+SOURCE=..\..\agent\mibgroup\disman\mteObjectsTable.c
 
 "$(INTDIR)\mteObjectsTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteScalars.c
-
-"$(INTDIR)\mteScalars.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerBooleanTable.c
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerBooleanTable.c
 
 "$(INTDIR)\mteTriggerBooleanTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteTrigger.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
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerDeltaTable.c
 
 "$(INTDIR)\mteTriggerDeltaTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerExistenceTable.c
+
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerExistenceTable.c
 
 "$(INTDIR)\mteTriggerExistenceTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerTable.c
+
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerTable.c
 
 "$(INTDIR)\mteTriggerTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerThresholdTable.c
+
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerThresholdTable.c
 
 "$(INTDIR)\mteTriggerThresholdTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
@@ -314,6 +491,12 @@ SOURCE=..\..\agent\mibgroup\examples\ucdDemoPublic.c
 	$(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)"
@@ -344,12 +527,6 @@ SOURCE="..\..\agent\mibgroup\ucd-snmp\pass.c"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE="..\..\agent\mibgroup\ucd-snmp\pass_common.c"
-
-"$(INTDIR)\pass_common.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
 SOURCE="..\..\agent\mibgroup\ucd-snmp\pass_persist.c"
 
 "$(INTDIR)\pass_persist.obj" : $(SOURCE) "$(INTDIR)"
@@ -410,12 +587,6 @@ SOURCE=..\..\agent\mibgroup\notification\snmpNotifyFilterProfileTable.c
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE="..\..\agent\mibgroup\notification-log-mib\notification_log.c"
-
-"$(INTDIR)\notification_log.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
 SOURCE=..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable.c
 
 "$(INTDIR)\snmpNotifyFilterTable.obj" : $(SOURCE) "$(INTDIR)"
@@ -547,25 +718,6 @@ SOURCE=..\..\agent\mibgroup\utilities\iquery.c
 "$(INTDIR)\iquery.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-
-SOURCE=..\..\agent\mibgroup\utilities\override.c
-
-"$(INTDIR)\override.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\util_funcs\header_generic.c
-
-"$(INTDIR)\header_generic.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\util_funcs\header_simple_table.c
-
-"$(INTDIR)\header_simple_table.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
 SOURCE=..\..\agent\mibgroup\header_complex.c
 
 "$(INTDIR)\header_complex.obj" : $(SOURCE) "$(INTDIR)"
@@ -578,21 +730,15 @@ SOURCE=..\..\agent\mib_modules.c
 	$(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
+SOURCE=..\..\agent\mibgroup\utilities\override.c
 
-"$(INTDIR)\Exit.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\override.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\agent\mibgroup\util_funcs\restart.c
+SOURCE=..\..\agent\mibgroup\util_funcs.c
 
-"$(INTDIR)\restart.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\util_funcs.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
@@ -602,64 +748,8 @@ SOURCE=..\..\agent\mibgroup\smux\smux.c
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\agent\mibgroup\winExtDLL.c
-"$(INTDIR)\winExtDLL.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\mibII\at.c
-"$(INTDIR)\at.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\mibII\icmp.c
-"$(INTDIR)\icmp.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\mibII\interfaces.c
-"$(INTDIR)\interfaces.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\mibII\ip.c
-"$(INTDIR)\ip.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\mibII\ipAddr.c
-"$(INTDIR)\ipAddr.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\mibII\route_write.c
-"$(INTDIR)\route_write.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\mibII\tcp.c
-"$(INTDIR)\tcp.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\mibII\tcpTable.c
-"$(INTDIR)\tcpTable.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\mibII\udp.c
-"$(INTDIR)\udp.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\mibII\udpTable.c
-"$(INTDIR)\udpTable.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
 
+!ENDIF 
 
-SOURCE=..\..\agent\mibgroup\mibII\var_route.c
-"$(INTDIR)\var_route.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-!ENDIF 
diff --git a/win32/netsnmpmibs/netsnmpmibs.dsp b/win32/netsnmpmibs/netsnmpmibs.dsp
old mode 100644
new mode 100755
index 9034eed..d93b60e
--- a/win32/netsnmpmibs/netsnmpmibs.dsp
+++ b/win32/netsnmpmibs/netsnmpmibs.dsp
@@ -85,30 +85,6 @@ LIB32=link.exe -lib
 # PROP Default_Filter ""
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\mibII\at.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\mibII\icmp.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\mibII\interfaces.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\mibII\ip.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\mibII\ipAddr.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\mibII\route_write.c
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\agent\mibgroup\mibII\setSerialNo.c
 # End Source File
 # Begin Source File
@@ -125,23 +101,7 @@ SOURCE=..\..\agent\mibgroup\mibII\system_mib.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\mibII\tcp.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\mibII\tcpTable.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\mibII\udp.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\mibII\udpTable.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\mibII\updates.c
+SOURCE=..\..\agent\mibgroup\mibII\vacm_context.c
 # End Source File
 # Begin Source File
 
@@ -149,83 +109,43 @@ SOURCE=..\..\agent\mibgroup\mibII\vacm_conf.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\mibII\vacm_context.c
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\agent\mibgroup\mibII\vacm_vars.c
 # End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\mibII\var_route.c
-# End Source File
 # End Group
 # Begin Group "disman"
 
 # PROP Default_Filter ""
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteEvent.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\disman\event\mteEventConf.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\disman\event\mteEventNotificationTable.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\disman\event\mteEventSetTable.c
+SOURCE=..\..\agent\mibgroup\disman\mteEventNotificationTable.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteEventTable.c
+SOURCE=..\..\agent\mibgroup\disman\mteEventTable.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteObjects.c
+SOURCE=..\..\agent\mibgroup\disman\mteObjectsTable.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteObjectsConf.c
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerBooleanTable.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteObjectsTable.c
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerDeltaTable.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteScalars.c
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerExistenceTable.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerBooleanTable.c
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerTable.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
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerThresholdTable.c
 # End Source File
 # End Group
 # Begin Group "examples"
@@ -245,6 +165,10 @@ SOURCE=..\..\agent\mibgroup\examples\ucdDemoPublic.c
 # PROP Default_Filter ""
 # Begin Source File
 
+SOURCE="..\..\agent\mibgroup\ucd-snmp\dlmod.c"
+# End Source File
+# Begin Source File
+
 SOURCE="..\..\agent\mibgroup\ucd-snmp\errormib.c"
 # End Source File
 # Begin Source File
@@ -265,10 +189,6 @@ SOURCE="..\..\agent\mibgroup\ucd-snmp\pass.c"
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\agent\mibgroup\ucd-snmp\pass_common.c"
-# End Source File
-# Begin Source File
-
 SOURCE="..\..\agent\mibgroup\ucd-snmp\pass_persist.c"
 # End Source File
 # Begin Source File
@@ -313,23 +233,19 @@ SOURCE=..\..\agent\mibgroup\snmpv3\usmUser.c
 # 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\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable.c"
+SOURCE=..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable.c
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable_data_access.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_interface.c"
+SOURCE=..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable_interface.c
 # End Source File
 # Begin Source File
 
@@ -421,7 +337,7 @@ SOURCE=..\..\agent\mibgroup\utilities\execute.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\util_funcs\Exit.c
+SOURCE=..\..\agent\mibgroup\utilities\iquery.c
 # End Source File
 # Begin Source File
 
@@ -429,18 +345,6 @@ SOURCE=..\..\agent\mibgroup\header_complex.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\util_funcs\header_generic.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\util_funcs\header_simple_table.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\utilities\iquery.c
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\agent\mib_modules.c
 # End Source File
 # Begin Source File
@@ -449,32 +353,12 @@ SOURCE=..\..\agent\mibgroup\utilities\override.c
 # 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
-# Begin Group "winExtDLL"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\winExtDLL.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\winExtDLL.h
-# End Source File
-# End Group
-# Begin Group "smux"
-
-# PROP Default_Filter ""
 # Begin Source File
 
 SOURCE=..\..\agent\mibgroup\smux\smux.c
 # End Source File
-# End Group
 # End Target
 # End Project
diff --git a/win32/netsnmpmibssdk/Makefile.in b/win32/netsnmpmibssdk/Makefile.in
new file mode 100644
index 0000000..83c413f
--- /dev/null
+++ b/win32/netsnmpmibssdk/Makefile.in
@@ -0,0 +1,885 @@
+PROGNAME=
+CFG=
+OUTDIR=
+INTDIR=
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF  "$(CFG)" == "release"
+
+ALL : "..\lib\$(OUTDIR)\netsnmpmibs.lib"
+
+
+CLEAN :
+	- at erase "$(INTDIR)\agentx_config.obj"
+	- at erase "$(INTDIR)\at.obj"
+	- at erase "$(INTDIR)\client.obj"
+	- at erase "$(INTDIR)\dlmod.obj"
+	- at erase "$(INTDIR)\errormib.obj"
+	- at erase "$(INTDIR)\example.obj"
+	- at erase "$(INTDIR)\execute.obj"
+	- at erase "$(INTDIR)\iquery.obj"
+	- at erase "$(INTDIR)\extensible.obj"
+	- at erase "$(INTDIR)\file.obj"
+	- at erase "$(INTDIR)\header_complex.obj"
+	- at erase "$(INTDIR)\icmp.obj"
+	- at erase "$(INTDIR)\interfaces.obj"
+	- at erase "$(INTDIR)\ip.obj"
+	- at erase "$(INTDIR)\ipAddr.obj"
+	- at erase "$(INTDIR)\loadave.obj"
+	- at erase "$(INTDIR)\master.obj"
+	- at erase "$(INTDIR)\master_admin.obj"
+	- at erase "$(INTDIR)\mib_modules.obj"
+	- at erase "$(INTDIR)\mteEventNotificationTable.obj"
+	- at erase "$(INTDIR)\mteEventTable.obj"
+	- at erase "$(INTDIR)\mteObjectsTable.obj"
+	- at erase "$(INTDIR)\mteTriggerBooleanTable.obj"
+	- at erase "$(INTDIR)\mteTriggerDeltaTable.obj"
+	- at erase "$(INTDIR)\mteTriggerExistenceTable.obj"
+	- at erase "$(INTDIR)\mteTriggerTable.obj"
+	- at erase "$(INTDIR)\mteTriggerThresholdTable.obj"
+	- at erase "$(INTDIR)\extend.obj"
+	- at erase "$(INTDIR)\nsCache.obj"
+	- at erase "$(INTDIR)\nsDebug.obj"
+	- at erase "$(INTDIR)\nsLogging.obj"
+	- at erase "$(INTDIR)\nsModuleTable.obj"
+	- at erase "$(INTDIR)\nsTransactionTable.obj"
+	- at erase "$(INTDIR)\override.obj"
+	- at erase "$(INTDIR)\pass.obj"
+	- at erase "$(INTDIR)\pass_persist.obj"
+	- at erase "$(INTDIR)\proc.obj"
+	- at erase "$(INTDIR)\protocol.obj"
+	- at erase "$(INTDIR)\proxy.obj"
+	- at erase "$(INTDIR)\route_write.obj"
+	- at erase "$(INTDIR)\setSerialNo.obj"
+	- at erase "$(INTDIR)\smux.obj"
+#	- at erase "$(INTDIR)\winExtDLL.obj"	# uncomment for winExtDLL
+	- at erase "$(INTDIR)\snmp_mib.obj"
+	- at erase "$(INTDIR)\snmpEngine.obj"
+	- at erase "$(INTDIR)\snmpMPDStats.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterProfileTable.obj"
+	- at erase "$(INTDIR)\notification_log.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterTable.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterTable_data_access.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterTable_interface.obj"
+	- at erase "$(INTDIR)\snmpNotifyTable.obj"
+	- at erase "$(INTDIR)\snmpTargetAddrEntry.obj"
+	- at erase "$(INTDIR)\snmpTargetParamsEntry.obj"
+	- at erase "$(INTDIR)\subagent.obj"
+	- at erase "$(INTDIR)\sysORTable.obj"
+	- at erase "$(INTDIR)\system_mib.obj"
+	- at erase "$(INTDIR)\target.obj"
+	- at erase "$(INTDIR)\target_counters.obj"
+	- at erase "$(INTDIR)\tcp.obj"
+	- at erase "$(INTDIR)\tcpTable.obj"
+	- at erase "$(INTDIR)\ucdDemoPublic.obj"
+	- at erase "$(INTDIR)\udp.obj"
+	- at erase "$(INTDIR)\udpTable.obj"
+	- at erase "$(INTDIR)\usmConf.obj"
+	- at erase "$(INTDIR)\usmStats.obj"
+	- at erase "$(INTDIR)\usmUser.obj"
+	- at erase "$(INTDIR)\util_funcs.obj"
+	- at erase "$(INTDIR)\vacm_context.obj"
+	- at erase "$(INTDIR)\vacm_conf.obj"
+	- at erase "$(INTDIR)\vacm_vars.obj"
+	- at erase "$(INTDIR)\var_route.obj"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\versioninfo.obj"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
+	- at erase "..\lib\$(OUTDIR)\netsnmpmibs.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 /GX /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "HAVE_WIN32_PLATFORM_SDK" /Fp"$(INTDIR)\netsnmpmibssdk.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /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)\netsnmpmibssdk.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+LIB32_FLAGS=iphlpapi.lib /nologo /out:"..\lib\$(OUTDIR)\netsnmpmibs.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\setSerialNo.obj" \
+	"$(INTDIR)\snmp_mib.obj" \
+	"$(INTDIR)\sysORTable.obj" \
+	"$(INTDIR)\system_mib.obj" \
+	"$(INTDIR)\vacm_context.obj" \
+	"$(INTDIR)\vacm_conf.obj" \
+	"$(INTDIR)\vacm_vars.obj" \
+	"$(INTDIR)\mteEventNotificationTable.obj" \
+	"$(INTDIR)\mteEventTable.obj" \
+	"$(INTDIR)\mteObjectsTable.obj" \
+	"$(INTDIR)\mteTriggerBooleanTable.obj" \
+	"$(INTDIR)\mteTriggerDeltaTable.obj" \
+	"$(INTDIR)\mteTriggerExistenceTable.obj" \
+	"$(INTDIR)\mteTriggerTable.obj" \
+	"$(INTDIR)\mteTriggerThresholdTable.obj" \
+	"$(INTDIR)\example.obj" \
+	"$(INTDIR)\ucdDemoPublic.obj" \
+	"$(INTDIR)\snmpEngine.obj" \
+	"$(INTDIR)\snmpMPDStats.obj" \
+	"$(INTDIR)\usmConf.obj" \
+	"$(INTDIR)\usmStats.obj" \
+	"$(INTDIR)\usmUser.obj" \
+	"$(INTDIR)\snmpNotifyFilterProfileTable.obj" \
+	"$(INTDIR)\notification_log.obj" \
+	"$(INTDIR)\snmpNotifyFilterTable.obj" \
+	"$(INTDIR)\snmpNotifyFilterTable_data_access.obj" \
+	"$(INTDIR)\snmpNotifyFilterTable_interface.obj" \
+	"$(INTDIR)\snmpNotifyTable.obj" \
+	"$(INTDIR)\snmpTargetAddrEntry.obj" \
+	"$(INTDIR)\snmpTargetParamsEntry.obj" \
+	"$(INTDIR)\target.obj" \
+	"$(INTDIR)\target_counters.obj" \
+	"$(INTDIR)\agentx_config.obj" \
+	"$(INTDIR)\client.obj" \
+	"$(INTDIR)\master.obj" \
+	"$(INTDIR)\master_admin.obj" \
+	"$(INTDIR)\protocol.obj" \
+	"$(INTDIR)\subagent.obj" \
+	"$(INTDIR)\extend.obj" \
+	"$(INTDIR)\nsCache.obj" \
+	"$(INTDIR)\nsDebug.obj" \
+	"$(INTDIR)\nsLogging.obj" \
+	"$(INTDIR)\nsModuleTable.obj" \
+	"$(INTDIR)\nsTransactionTable.obj" \
+	"$(INTDIR)\execute.obj" \
+	"$(INTDIR)\iquery.obj" \
+	"$(INTDIR)\override.obj" \
+	"$(INTDIR)\at.obj" \
+	"$(INTDIR)\icmp.obj" \
+	"$(INTDIR)\interfaces.obj" \
+	"$(INTDIR)\ip.obj" \
+	"$(INTDIR)\ipAddr.obj" \
+	"$(INTDIR)\route_write.obj" \
+	"$(INTDIR)\tcp.obj" \
+	"$(INTDIR)\tcpTable.obj" \
+	"$(INTDIR)\udp.obj" \
+	"$(INTDIR)\udpTable.obj" \
+	"$(INTDIR)\var_route.obj" \
+	"$(INTDIR)\dlmod.obj" \
+	"$(INTDIR)\errormib.obj" \
+	"$(INTDIR)\extensible.obj" \
+	"$(INTDIR)\file.obj" \
+	"$(INTDIR)\loadave.obj" \
+	"$(INTDIR)\pass.obj" \
+	"$(INTDIR)\pass_persist.obj" \
+	"$(INTDIR)\proc.obj" \
+	"$(INTDIR)\proxy.obj" \
+	"$(INTDIR)\versioninfo.obj" \
+	"$(INTDIR)\header_complex.obj" \
+	"$(INTDIR)\mib_modules.obj" \
+	"$(INTDIR)\util_funcs.obj" \
+#	"$(INTDIR)\winExtDLL.obj" \	# uncomment for winExtDLL
+	"$(INTDIR)\smux.obj"
+
+"..\lib\$(OUTDIR)\netsnmpmibs.lib" : "..\lib\$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "debug"
+
+ALL : "..\lib\$(OUTDIR)\netsnmpmibs.lib"
+
+
+CLEAN :
+	- at erase "$(INTDIR)\agentx_config.obj"
+	- at erase "$(INTDIR)\at.obj"
+	- at erase "$(INTDIR)\client.obj"
+	- at erase "$(INTDIR)\dlmod.obj"
+	- at erase "$(INTDIR)\errormib.obj"
+	- at erase "$(INTDIR)\example.obj"
+	- at erase "$(INTDIR)\execute.obj"
+	- at erase "$(INTDIR)\iquery.obj"
+	- at erase "$(INTDIR)\extensible.obj"
+	- at erase "$(INTDIR)\file.obj"
+	- at erase "$(INTDIR)\header_complex.obj"
+	- at erase "$(INTDIR)\icmp.obj"
+	- at erase "$(INTDIR)\interfaces.obj"
+	- at erase "$(INTDIR)\ip.obj"
+	- at erase "$(INTDIR)\ipAddr.obj"
+	- at erase "$(INTDIR)\loadave.obj"
+	- at erase "$(INTDIR)\master.obj"
+	- at erase "$(INTDIR)\master_admin.obj"
+	- at erase "$(INTDIR)\mib_modules.obj"
+	- at erase "$(INTDIR)\mteEventNotificationTable.obj"
+	- at erase "$(INTDIR)\mteEventTable.obj"
+	- at erase "$(INTDIR)\mteObjectsTable.obj"
+	- at erase "$(INTDIR)\mteTriggerBooleanTable.obj"
+	- at erase "$(INTDIR)\mteTriggerDeltaTable.obj"
+	- at erase "$(INTDIR)\mteTriggerExistenceTable.obj"
+	- at erase "$(INTDIR)\mteTriggerTable.obj"
+	- at erase "$(INTDIR)\mteTriggerThresholdTable.obj"
+	- at erase "$(INTDIR)\extend.obj"
+	- at erase "$(INTDIR)\nsCache.obj"
+	- at erase "$(INTDIR)\nsDebug.obj"
+	- at erase "$(INTDIR)\nsLogging.obj"
+	- at erase "$(INTDIR)\nsModuleTable.obj"
+	- at erase "$(INTDIR)\nsTransactionTable.obj"
+	- at erase "$(INTDIR)\override.obj"
+	- at erase "$(INTDIR)\pass.obj"
+	- at erase "$(INTDIR)\pass_persist.obj"
+	- at erase "$(INTDIR)\proc.obj"
+	- at erase "$(INTDIR)\protocol.obj"
+	- at erase "$(INTDIR)\proxy.obj"
+	- at erase "$(INTDIR)\route_write.obj"
+	- at erase "$(INTDIR)\setSerialNo.obj"
+	- at erase "$(INTDIR)\smux.obj"
+#	- at erase "$(INTDIR)\winExtDLL.obj"	# uncomment for winExtDLL
+	- at erase "$(INTDIR)\snmp_mib.obj"
+	- at erase "$(INTDIR)\snmpEngine.obj"
+	- at erase "$(INTDIR)\snmpMPDStats.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterProfileTable.obj"
+	- at erase "$(INTDIR)\notification_log.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterTable.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterTable_data_access.obj"
+	- at erase "$(INTDIR)\snmpNotifyFilterTable_interface.obj"
+	- at erase "$(INTDIR)\snmpNotifyTable.obj"
+	- at erase "$(INTDIR)\snmpTargetAddrEntry.obj"
+	- at erase "$(INTDIR)\snmpTargetParamsEntry.obj"
+	- at erase "$(INTDIR)\subagent.obj"
+	- at erase "$(INTDIR)\sysORTable.obj"
+	- at erase "$(INTDIR)\system_mib.obj"
+	- at erase "$(INTDIR)\target.obj"
+	- at erase "$(INTDIR)\target_counters.obj"
+	- at erase "$(INTDIR)\tcp.obj"
+	- at erase "$(INTDIR)\tcpTable.obj"
+	- at erase "$(INTDIR)\ucdDemoPublic.obj"
+	- at erase "$(INTDIR)\udp.obj"
+	- at erase "$(INTDIR)\udpTable.obj"
+	- at erase "$(INTDIR)\usmConf.obj"
+	- at erase "$(INTDIR)\usmStats.obj"
+	- at erase "$(INTDIR)\usmUser.obj"
+	- at erase "$(INTDIR)\util_funcs.obj"
+	- at erase "$(INTDIR)\vacm_context.obj"
+	- at erase "$(INTDIR)\vacm_conf.obj"
+	- at erase "$(INTDIR)\vacm_vars.obj"
+	- at erase "$(INTDIR)\var_route.obj"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\vc??.pdb"
+	- at erase "$(INTDIR)\versioninfo.obj"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
+	- at erase "..\lib\$(OUTDIR)\netsnmpmibs.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 /GX /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "HAVE_WIN32_PLATFORM_SDK" /Fp"$(INTDIR)\netsnmpmibssdk.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /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)\netsnmpmibssdk.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+LIB32_FLAGS=iphlpapi.lib /nologo /out:"..\lib\$(OUTDIR)\netsnmpmibs.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\setSerialNo.obj" \
+	"$(INTDIR)\snmp_mib.obj" \
+	"$(INTDIR)\sysORTable.obj" \
+	"$(INTDIR)\system_mib.obj" \
+	"$(INTDIR)\vacm_context.obj" \
+	"$(INTDIR)\vacm_conf.obj" \
+	"$(INTDIR)\vacm_vars.obj" \
+	"$(INTDIR)\mteEventNotificationTable.obj" \
+	"$(INTDIR)\mteEventTable.obj" \
+	"$(INTDIR)\mteObjectsTable.obj" \
+	"$(INTDIR)\mteTriggerBooleanTable.obj" \
+	"$(INTDIR)\mteTriggerDeltaTable.obj" \
+	"$(INTDIR)\mteTriggerExistenceTable.obj" \
+	"$(INTDIR)\mteTriggerTable.obj" \
+	"$(INTDIR)\mteTriggerThresholdTable.obj" \
+	"$(INTDIR)\example.obj" \
+	"$(INTDIR)\ucdDemoPublic.obj" \
+	"$(INTDIR)\snmpEngine.obj" \
+	"$(INTDIR)\snmpMPDStats.obj" \
+	"$(INTDIR)\usmConf.obj" \
+	"$(INTDIR)\usmStats.obj" \
+	"$(INTDIR)\usmUser.obj" \
+	"$(INTDIR)\snmpNotifyFilterProfileTable.obj" \
+	"$(INTDIR)\notification_log.obj" \
+	"$(INTDIR)\snmpNotifyFilterTable.obj" \
+	"$(INTDIR)\snmpNotifyFilterTable_data_access.obj" \
+	"$(INTDIR)\snmpNotifyFilterTable_interface.obj" \
+	"$(INTDIR)\snmpNotifyTable.obj" \
+	"$(INTDIR)\snmpTargetAddrEntry.obj" \
+	"$(INTDIR)\snmpTargetParamsEntry.obj" \
+	"$(INTDIR)\target.obj" \
+	"$(INTDIR)\target_counters.obj" \
+	"$(INTDIR)\agentx_config.obj" \
+	"$(INTDIR)\client.obj" \
+	"$(INTDIR)\master.obj" \
+	"$(INTDIR)\master_admin.obj" \
+	"$(INTDIR)\protocol.obj" \
+	"$(INTDIR)\subagent.obj" \
+	"$(INTDIR)\extend.obj" \
+	"$(INTDIR)\nsCache.obj" \
+	"$(INTDIR)\nsDebug.obj" \
+	"$(INTDIR)\nsLogging.obj" \
+	"$(INTDIR)\nsModuleTable.obj" \
+	"$(INTDIR)\nsTransactionTable.obj" \
+	"$(INTDIR)\execute.obj" \
+	"$(INTDIR)\iquery.obj" \
+	"$(INTDIR)\override.obj" \
+	"$(INTDIR)\at.obj" \
+	"$(INTDIR)\icmp.obj" \
+	"$(INTDIR)\interfaces.obj" \
+	"$(INTDIR)\ip.obj" \
+	"$(INTDIR)\ipAddr.obj" \
+	"$(INTDIR)\route_write.obj" \
+	"$(INTDIR)\tcp.obj" \
+	"$(INTDIR)\tcpTable.obj" \
+	"$(INTDIR)\udp.obj" \
+	"$(INTDIR)\udpTable.obj" \
+	"$(INTDIR)\var_route.obj" \
+	"$(INTDIR)\dlmod.obj" \
+	"$(INTDIR)\errormib.obj" \
+	"$(INTDIR)\extensible.obj" \
+	"$(INTDIR)\file.obj" \
+	"$(INTDIR)\loadave.obj" \
+	"$(INTDIR)\pass.obj" \
+	"$(INTDIR)\pass_persist.obj" \
+	"$(INTDIR)\proc.obj" \
+	"$(INTDIR)\proxy.obj" \
+	"$(INTDIR)\versioninfo.obj" \
+	"$(INTDIR)\header_complex.obj" \
+	"$(INTDIR)\mib_modules.obj" \
+	"$(INTDIR)\util_funcs.obj" \
+	"$(INTDIR)\smux.obj" \
+#	"$(INTDIR)\winExtDLL.obj" \	# uncomment for winExtDLL
+	"$(INTDIR)\smux.obj"
+
+"..\lib\$(OUTDIR)\netsnmpmibs.lib" : "..\lib\$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("netsnmpmibssdk.dep")
+!INCLUDE "netsnmpmibssdk.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "netsnmpmibssdk.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "release" || "$(CFG)" == "debug"
+SOURCE=..\..\agent\mibgroup\mibII\setSerialNo.c
+
+"$(INTDIR)\setSerialNo.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\snmp_mib.c
+
+"$(INTDIR)\snmp_mib.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\sysORTable.c
+
+"$(INTDIR)\sysORTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\system_mib.c
+
+"$(INTDIR)\system_mib.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\vacm_context.c
+
+"$(INTDIR)\vacm_context.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\vacm_conf.c
+
+"$(INTDIR)\vacm_conf.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\vacm_vars.c
+
+"$(INTDIR)\vacm_vars.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\disman\mteEventNotificationTable.c
+
+"$(INTDIR)\mteEventNotificationTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\disman\mteEventTable.c
+
+"$(INTDIR)\mteEventTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\disman\mteObjectsTable.c
+
+"$(INTDIR)\mteObjectsTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerBooleanTable.c
+
+"$(INTDIR)\mteTriggerBooleanTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerDeltaTable.c
+
+"$(INTDIR)\mteTriggerDeltaTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerExistenceTable.c
+
+"$(INTDIR)\mteTriggerExistenceTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerTable.c
+
+"$(INTDIR)\mteTriggerTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerThresholdTable.c
+
+"$(INTDIR)\mteTriggerThresholdTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\examples\example.c
+
+"$(INTDIR)\example.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\examples\ucdDemoPublic.c
+
+"$(INTDIR)\ucdDemoPublic.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\snmpv3\snmpEngine.c
+
+"$(INTDIR)\snmpEngine.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\snmpv3\snmpMPDStats.c
+
+"$(INTDIR)\snmpMPDStats.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\snmpv3\usmConf.c
+
+"$(INTDIR)\usmConf.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\snmpv3\usmStats.c
+
+"$(INTDIR)\usmStats.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\snmpv3\usmUser.c
+
+"$(INTDIR)\usmUser.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\notification\snmpNotifyFilterProfileTable.c
+
+"$(INTDIR)\snmpNotifyFilterProfileTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\notification-log-mib\notification_log.c
+
+"$(INTDIR)\notification_log.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable.c
+
+"$(INTDIR)\snmpNotifyFilterTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable_data_access.c
+
+"$(INTDIR)\snmpNotifyFilterTable_data_access.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable_interface.c
+
+"$(INTDIR)\snmpNotifyFilterTable_interface.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\notification\snmpNotifyTable.c
+
+"$(INTDIR)\snmpNotifyTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\target\snmpTargetAddrEntry.c
+
+"$(INTDIR)\snmpTargetAddrEntry.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\target\snmpTargetParamsEntry.c
+
+"$(INTDIR)\snmpTargetParamsEntry.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\target\target.c
+
+"$(INTDIR)\target.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\target\target_counters.c
+
+"$(INTDIR)\target_counters.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\agentx\agentx_config.c
+
+"$(INTDIR)\agentx_config.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\agentx\client.c
+
+"$(INTDIR)\client.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\agentx\master.c
+
+"$(INTDIR)\master.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\agentx\master_admin.c
+
+"$(INTDIR)\master_admin.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\agentx\protocol.c
+
+"$(INTDIR)\protocol.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\agentx\subagent.c
+
+"$(INTDIR)\subagent.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\agent\extend.c
+
+"$(INTDIR)\extend.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\agent\nsCache.c
+
+"$(INTDIR)\nsCache.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\agent\nsDebug.c
+
+"$(INTDIR)\nsDebug.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\agent\nsLogging.c
+
+"$(INTDIR)\nsLogging.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\agent\nsModuleTable.c
+
+"$(INTDIR)\nsModuleTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\agent\nsTransactionTable.c
+
+"$(INTDIR)\nsTransactionTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\utilities\execute.c
+
+"$(INTDIR)\execute.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\utilities\iquery.c
+
+"$(INTDIR)\iquery.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\utilities\override.c
+
+"$(INTDIR)\override.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\at.c
+
+"$(INTDIR)\at.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\icmp.c
+
+"$(INTDIR)\icmp.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\interfaces.c
+
+"$(INTDIR)\interfaces.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\ip.c
+
+"$(INTDIR)\ip.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\ipAddr.c
+
+"$(INTDIR)\ipAddr.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\route_write.c
+
+"$(INTDIR)\route_write.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\tcp.c
+
+"$(INTDIR)\tcp.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\tcpTable.c
+
+"$(INTDIR)\tcpTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\udp.c
+
+"$(INTDIR)\udp.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\udpTable.c
+
+"$(INTDIR)\udpTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\mibII\var_route.c
+
+"$(INTDIR)\var_route.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\header_complex.c
+
+"$(INTDIR)\header_complex.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mib_modules.c
+
+"$(INTDIR)\mib_modules.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\winExtDLL.c		# uncomment for winExtDLL
+
+#"$(INTDIR)\winExtDLL.obj" : $(SOURCE) "$(INTDIR)"	# uncomment for winExtDLL
+#	$(CPP) $(CPP_PROJ) $(SOURCE)			# uncomment for winExtDLL
+
+
+SOURCE=..\..\agent\mibgroup\util_funcs.c
+
+"$(INTDIR)\util_funcs.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+
diff --git a/win32/netsnmpmibssdk/netsnmpmibssdk.dsp b/win32/netsnmpmibssdk/netsnmpmibssdk.dsp
new file mode 100644
index 0000000..91d5ccc
--- /dev/null
+++ b/win32/netsnmpmibssdk/netsnmpmibssdk.dsp
@@ -0,0 +1,420 @@
+# Microsoft Developer Studio Project File - Name="netsnmpmibssdk" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=netsnmpmibssdk - 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 "netsnmpmibssdk.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 "netsnmpmibssdk.mak" CFG="netsnmpmibssdk - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "netsnmpmibssdk - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "netsnmpmibssdk - 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)" == "netsnmpmibssdk - 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" /D "HAVE_WIN32_PLATFORM_SDK" /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 iphlpapi.lib mgmtapi.lib snmpapi.lib /nologo /out:"../lib/release/netsnmpmibs.lib"
+
+!ELSEIF  "$(CFG)" == "netsnmpmibssdk - 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" /D "HAVE_WIN32_PLATFORM_SDK" /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 iphlpapi.lib mgmtapi.lib snmpapi.lib /nologo /out:"../lib/debug/netsnmpmibs.lib"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "netsnmpmibssdk - Win32 Release"
+# Name "netsnmpmibssdk - Win32 Debug"
+# Begin Group "mibII"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\setSerialNo.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\snmp_mib.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\sysORTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\system_mib.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\vacm_context.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\vacm_conf.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\vacm_vars.c
+# End Source File
+# End Group
+# Begin Group "disman"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\mteEventNotificationTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\mteEventTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\mteObjectsTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerBooleanTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerDeltaTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerExistenceTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\mteTriggerThresholdTable.c
+# End Source File
+# End Group
+# Begin Group "examples"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\examples\example.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\examples\ucdDemoPublic.c
+# End Source File
+# End Group
+# Begin Group "snmpv3"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\snmpv3\snmpEngine.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\snmpv3\snmpMPDStats.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\snmpv3\usmConf.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\snmpv3\usmStats.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\snmpv3\usmUser.c
+# End Source File
+# End Group
+# Begin Group "notification"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\notification\snmpNotifyFilterProfileTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\notification-log-mib\notification_log.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable.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
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\notification\snmpNotifyTable.c
+# End Source File
+# End Group
+# Begin Group "target"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\target\snmpTargetAddrEntry.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\target\snmpTargetParamsEntry.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\target\target.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\target\target_counters.c
+# End Source File
+# End Group
+# Begin Group "agentx"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\agentx\agentx_config.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\agentx\client.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\agentx\master.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\agentx\master_admin.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\agentx\protocol.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\agentx\subagent.c
+# End Source File
+# End Group
+# Begin Group "agent"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\agent\extend.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\agent\nsCache.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\agent\nsDebug.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\agent\nsLogging.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\agent\nsModuleTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\agent\nsTransactionTable.c
+# End Source File
+# End Group
+# Begin Group "utilities"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\utilities\execute.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\utilities\iquery.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\utilities\override.c
+# End Source File
+# End Group
+# Begin Group "mibIIsdk"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\at.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\icmp.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\interfaces.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\ip.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\ipAddr.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\route_write.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\tcp.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\tcpTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\udp.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\udpTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\mibII\var_route.c
+# End Source File
+# End Group
+# Begin Group "ucd-snmp"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE="..\..\agent\mibgroup\ucd-snmp\dlmod.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\agent\mibgroup\ucd-snmp\errormib.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\agent\mibgroup\ucd-snmp\extensible.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\agent\mibgroup\ucd-snmp\file.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\agent\mibgroup\ucd-snmp\loadave.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\agent\mibgroup\ucd-snmp\pass.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\agent\mibgroup\ucd-snmp\pass_persist.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\agent\mibgroup\ucd-snmp\proc.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\agent\mibgroup\ucd-snmp\proxy.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\agent\mibgroup\ucd-snmp\versioninfo.c"
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\header_complex.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mib_modules.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\util_funcs.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\smux\smux.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\winExtDLL.c
+# End Source File
+# End Target
+# End Project
diff --git a/win32/snmpbulkget/snmpbulkget.dsp b/win32/snmpbulkget/snmpbulkget.dsp
index 39599db..fe5e5ae 100644
--- a/win32/snmpbulkget/snmpbulkget.dsp
+++ b/win32/snmpbulkget/snmpbulkget.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpbulkget.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpbulkget.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmpbulkget - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpbulkget.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpbulkget.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmpbulkwalk/snmpbulkwalk.dsp b/win32/snmpbulkwalk/snmpbulkwalk.dsp
index 91e94d3..ea8bb0c 100644
--- a/win32/snmpbulkwalk/snmpbulkwalk.dsp
+++ b/win32/snmpbulkwalk/snmpbulkwalk.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpbulkwalk.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpbulkwalk.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmpbulkwalk - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpbulkwalk.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpbulkwalk.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmpd/Makefile.in b/win32/snmpd/Makefile.in
index 652dd80..edf5100 100644
--- a/win32/snmpd/Makefile.in
+++ b/win32/snmpd/Makefile.in
@@ -2,7 +2,6 @@ PROGNAME=
 CFG=
 OUTDIR=
 INTDIR=
-SDK=
 SSL=
 LINKTYPE=
 
@@ -15,9 +14,27 @@ NULL=
 NULL=nul
 !ENDIF 
 
+!IF $(SSL) == 1
+OPENSSL=libeay32.lib gdi32.lib
+!ELSE
+OPENSSL=""
+!ENDIF
+
+!IF  "$(CFG)" == "release"
+
 ALL : "..\bin\$(OUTDIR)\snmpd.exe" "$(INTDIR)"
 
 
+CLEAN :
+	- at erase "$(INTDIR)\auto_nlist.obj"
+	- at erase "$(INTDIR)\kernel.obj"
+	- at erase "$(INTDIR)\snmpd.obj"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\winservice.obj"
+	- at erase "$(INTDIR)\winservice.res"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
+	- at erase "..\bin\$(OUTDIR)\snmpd.exe"
+
 "..\bin\$(OUTDIR)" :
     if not exist "..\bin\$(OUTDIR)/$(NULL)" mkdir "..\bin\$(OUTDIR)"
 
@@ -25,14 +42,99 @@ ALL : "..\bin\$(OUTDIR)\snmpd.exe" "$(INTDIR)"
     if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
 
 CPP=cl.exe
-!IF  "$(CFG)" == "release"
-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 
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\snmpd.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+!IF "$(LINKTYPE)" == "dynamic"
+CPP_PROJ=$(CPP_PROJ) /D "NMAKE_NETSNMP_USE_DLL"
+!ENDIF
+
+.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
 RSC_PROJ=/l 0x409 /fo"$(INTDIR)\winservice.res" /d "NDEBUG" 
-!ELSE
-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" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\$(PROGNAME).pdb" /FD /c 
-RSC_PROJ=/l 0x409 /fo"$(INTDIR)\winservice.res" /d "_DEBUG" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(INTDIR)\snmpd.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=$(OPENSSL) 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\$(OUTDIR)/snmpd.exe" /libpath:"../lib/release" 
+LINK32_OBJS= \
+	"$(INTDIR)\auto_nlist.obj" \
+	"$(INTDIR)\kernel.obj" \
+	"$(INTDIR)\snmpd.obj" \
+	"$(INTDIR)\winservice.obj" \
+	"$(INTDIR)\winservice.res"
+
+"..\bin\$(OUTDIR)\$(PROGNAME).exe" : "..\bin\$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+!IF "$(LINKTYPE)" == "static" || "$(ALLOW_DLL)" == "1"
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+!ELSE	# Linktype check
+	- at echo .
+	- at echo Aborting build.  Applications can not be built using --linktype=dynamic
+	- at echo .
 !ENDIF
 
+!ELSEIF  "$(CFG)" == "debug"
+
+ALL : "..\bin\$(OUTDIR)\snmpd.exe" "$(INTDIR)\snmpd.bsc" "$(INTDIR)"
+
+
+CLEAN :
+	- at erase "$(INTDIR)\auto_nlist.obj"
+	- at erase "$(INTDIR)\auto_nlist.sbr"
+	- at erase "$(INTDIR)\kernel.obj"
+	- at erase "$(INTDIR)\kernel.sbr"
+	- at erase "$(INTDIR)\snmpd.obj"
+	- at erase "$(INTDIR)\snmpd.sbr"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\vc??.pdb"
+	- at erase "$(INTDIR)\winservice.obj"
+	- at erase "$(INTDIR)\winservice.res"
+	- at erase "$(INTDIR)\winservice.sbr"
+	- at erase "$(INTDIR)\snmpd.bsc"
+	- at erase "$(INTDIR)\snmpd.pdb"
+	- at erase "$(INTDIR)\$(PROGNAME).pch"
+	- at erase "..\bin\$(OUTDIR)\snmpd.exe"
+
+"..\bin\$(OUTDIR)" :
+    if not exist "..\bin\$(OUTDIR)/$(NULL)" mkdir "..\bin\$(OUTDIR)"
+
+"$(INTDIR)" :
+    if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/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 "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\snmpd.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
 !IF "$(LINKTYPE)" == "dynamic"
 CPP_PROJ=$(CPP_PROJ) /D "NMAKE_NETSNMP_USE_DLL"
 !ENDIF
@@ -52,14 +154,38 @@ CPP_PROJ=$(CPP_PROJ) /D "NMAKE_NETSNMP_USE_DLL"
    $(CPP_PROJ) $< 
 <<
 
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
 RSC=rc.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\winservice.res" /d "_DEBUG" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(INTDIR)\snmpd.bsc" 
+BSC32_SBRS= \
+	"$(INTDIR)\auto_nlist.sbr" \
+	"$(INTDIR)\kernel.sbr" \
+	"$(INTDIR)\snmpd.sbr" \
+	"$(INTDIR)\winservice.sbr"
+
+"$(INTDIR)\snmpd.bsc" : "..\bin\$(OUTDIR)" $(BSC32_SBRS)
+    $(BSC32) @<<
+  $(BSC32_FLAGS) $(BSC32_SBRS)
+<<
+
 LINK32=link.exe
-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
-LINK32_FLAGS=$(LINK32_FLAGS) /debug /incremental:no /pdb:"../bin/$(OUTDIR)/snmpd.pdb" /pdbtype:sept
-!ENDIF
+LINK32_FLAGS=$(OPENSSL) netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmphelpers.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /pdb:"$(INTDIR)\snmpd.pdb" /debug /machine:I386 /out:"..\bin\$(OUTDIR)/snmpd.exe" /pdbtype:sept /libpath:"../lib/debug" 
 LINK32_OBJS= \
 	"$(INTDIR)\auto_nlist.obj" \
 	"$(INTDIR)\kernel.obj" \
@@ -67,24 +193,21 @@ LINK32_OBJS= \
 	"$(INTDIR)\winservice.obj" \
 	"$(INTDIR)\winservice.res"
 
-CLEAN :
-	- at for %f in ($(LINK32_OBJS)) do erase %%f
-	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe"
-	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest"
 
 "..\bin\$(OUTDIR)\$(PROGNAME).exe" : "..\bin\$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
 !IF "$(LINKTYPE)" == "static" || "$(ALLOW_DLL)" == "1"
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
- if exist "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" \
-	    mt.exe -manifest "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" -outputresource:"..\bin\$(OUTDIR)\$(PROGNAME).exe";1
 !ELSE	# Linktype check
 	- at echo .
 	- at echo Aborting build.  Applications can not be built using --linktype=dynamic
 	- at echo .
 !ENDIF
 
+!ENDIF 
+
+
 !IF "$(NO_EXTERNAL_DEPS)" != "1"
 !IF EXISTS("snmpd.dep")
 !INCLUDE "snmpd.dep"
@@ -94,31 +217,97 @@ CLEAN :
 !ENDIF 
 
 
+!IF "$(CFG)" == "release" || "$(CFG)" == "debug"
 SOURCE=..\..\agent\auto_nlist.c
 
+!IF  "$(CFG)" == "release"
+
+
 "$(INTDIR)\auto_nlist.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+!ELSEIF  "$(CFG)" == "debug"
+
+
+"$(INTDIR)\auto_nlist.obj"	"$(INTDIR)\auto_nlist.sbr" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
 SOURCE=..\..\agent\kernel.c
 
+!IF  "$(CFG)" == "release"
+
+
 "$(INTDIR)\kernel.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+!ELSEIF  "$(CFG)" == "debug"
+
+
+"$(INTDIR)\kernel.obj"	"$(INTDIR)\kernel.sbr" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
 SOURCE=..\..\agent\snmpd.c
 
+!IF  "$(CFG)" == "release"
+
+
 "$(INTDIR)\snmpd.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+!ELSEIF  "$(CFG)" == "debug"
+
+
+"$(INTDIR)\snmpd.obj"	"$(INTDIR)\snmpd.sbr" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
 SOURCE=..\..\snmplib\winservice.c
 
+!IF  "$(CFG)" == "release"
+
+
 "$(INTDIR)\winservice.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+!ELSEIF  "$(CFG)" == "debug"
+
+
+"$(INTDIR)\winservice.obj"	"$(INTDIR)\winservice.sbr" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
 SOURCE=..\..\snmplib\winservice.rc
 
+!IF  "$(CFG)" == "release"
+
+
+"$(INTDIR)\winservice.res" : $(SOURCE) "$(INTDIR)"
+	$(RSC) /l 0x409 /fo"$(INTDIR)\winservice.res" /i "..\..\snmplib" /d "NDEBUG" $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "debug"
+
+
 "$(INTDIR)\winservice.res" : $(SOURCE) "$(INTDIR)"
-	$(RSC) $(RSC_PROJ) /i "..\..\snmplib" $(SOURCE)
+	$(RSC) /l 0x409 /fo"$(INTDIR)\winservice.res" /i "..\..\snmplib" /d "_DEBUG" $(SOURCE)
+
+
+!ENDIF 
+
+
+!ENDIF 
+
diff --git a/win32/snmpd/snmpd.dsp b/win32/snmpd/snmpd.dsp
index 45e2cad..4269aa4 100644
--- a/win32/snmpd/snmpd.dsp
+++ b/win32/snmpd/snmpd.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 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 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"
 
 !ELSEIF  "$(CFG)" == "snmpd - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 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 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"
 
 !ENDIF 
 
diff --git a/win32/snmpdelta/snmpdelta.dsp b/win32/snmpdelta/snmpdelta.dsp
index 7f5a5d3..b17b822 100644
--- a/win32/snmpdelta/snmpdelta.dsp
+++ b/win32/snmpdelta/snmpdelta.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpdelta.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpdelta.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmpdelta - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpdelta.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpdelta.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmpdf/snmpdf.dsp b/win32/snmpdf/snmpdf.dsp
index e2e4b94..88c3f6d 100644
--- a/win32/snmpdf/snmpdf.dsp
+++ b/win32/snmpdf/snmpdf.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpdf.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpdf.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmpdf - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpdf.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpdf.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmpdsdk/Makefile.in b/win32/snmpdsdk/Makefile.in
new file mode 100644
index 0000000..6971c83
--- /dev/null
+++ b/win32/snmpdsdk/Makefile.in
@@ -0,0 +1,312 @@
+PROGNAME=
+CFG=
+OUTDIR=
+INTDIR=
+SSL=
+LINKTYPE=
+
+# Set to 1 to allow the building using the DLL version of SNMPLIB.
+ALLOW_DLL=1
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF $(SSL) == 1
+OPENSSL=libeay32.lib gdi32.lib
+!ELSE
+OPENSSL=""
+!ENDIF
+
+!IF  "$(CFG)" == "release"
+
+ALL : "..\bin\$(OUTDIR)\snmpd.exe" "$(INTDIR)"
+
+
+CLEAN :
+	- at erase "$(INTDIR)\auto_nlist.obj"
+	- at erase "$(INTDIR)\kernel.obj"
+	- at erase "$(INTDIR)\snmpd.obj"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\winservice.obj"
+	- at erase "$(INTDIR)\winservice.res"
+	- at erase "$(INTDIR)\snmpd.pch"
+	- at erase "..\bin\$(OUTDIR)\snmpd.exe"
+
+"..\bin\$(OUTDIR)" :
+    if not exist "..\bin\$(OUTDIR)/$(NULL)" mkdir "..\bin\$(OUTDIR)"
+
+"$(INTDIR)" :
+    if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "HAVE_WIN32_PLATFORM_SDK" /Fp"$(INTDIR)\snmpd.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+!IF "$(LINKTYPE)" == "dynamic"
+CPP_PROJ=$(CPP_PROJ) /D "NMAKE_NETSNMP_USE_DLL"
+!ENDIF
+
+.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
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\winservice.res" /d "NDEBUG" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(INTDIR)\snmpd.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=$(OPENSSL) netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmphelpers.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib iphlpapi.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"..\bin\$(OUTDIR)/snmpd.exe" /libpath:"../lib/release" 
+LINK32_OBJS= \
+	"$(INTDIR)\auto_nlist.obj" \
+	"$(INTDIR)\kernel.obj" \
+	"$(INTDIR)\snmpd.obj" \
+	"$(INTDIR)\winservice.obj" \
+	"$(INTDIR)\winservice.res"
+
+"..\bin\$(OUTDIR)\snmpd.exe" : "..\bin\$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+!IF "$(LINKTYPE)" == "static" || "$(ALLOW_DLL)" == "1"
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+!ELSE	# Linktype check
+	- at echo .
+	- at echo Aborting build.  Applications can not be built using --linktype=dynamic
+	- at echo .
+!ENDIF
+
+!ELSEIF  "$(CFG)" == "debug"
+
+ALL : "..\bin\$(OUTDIR)\snmpd.exe" "$(INTDIR)\snmpd.bsc" "$(INTDIR)"
+
+
+CLEAN :
+	- at erase "$(INTDIR)\auto_nlist.obj"
+	- at erase "$(INTDIR)\auto_nlist.sbr"
+	- at erase "$(INTDIR)\kernel.obj"
+	- at erase "$(INTDIR)\kernel.sbr"
+	- at erase "$(INTDIR)\snmpd.obj"
+	- at erase "$(INTDIR)\snmpd.sbr"
+	- at erase "$(INTDIR)\vc??.idb"
+	- at erase "$(INTDIR)\vc??.pdb"
+	- at erase "$(INTDIR)\winservice.obj"
+	- at erase "$(INTDIR)\winservice.res"
+	- at erase "$(INTDIR)\winservice.sbr"
+	- at erase "$(INTDIR)\snmpd.bsc"
+	- at erase "$(INTDIR)\snmpd.pdb"
+	- at erase "$(INTDIR)\snmpd.pch"
+	- at erase "..\bin\$(OUTDIR)\snmpd.exe"
+
+"..\bin\$(OUTDIR)" :
+    if not exist "..\bin\$(OUTDIR)/$(NULL)" mkdir "..\bin\$(OUTDIR)"
+
+"$(INTDIR)" :
+    if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/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 "_MBCS" /D "HAVE_WIN32_PLATFORM_SDK" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\snmpd.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+!IF "$(LINKTYPE)" == "dynamic"
+CPP_PROJ=$(CPP_PROJ) /D "NMAKE_NETSNMP_USE_DLL"
+!ENDIF
+
+.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
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\winservice.res" /d "_DEBUG" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(INTDIR)\snmpd.bsc" 
+BSC32_SBRS= \
+	"$(INTDIR)\auto_nlist.sbr" \
+	"$(INTDIR)\kernel.sbr" \
+	"$(INTDIR)\snmpd.sbr" \
+	"$(INTDIR)\winservice.sbr"
+
+"$(INTDIR)\snmpd.bsc" : "..\bin\$(OUTDIR)" $(BSC32_SBRS)
+    $(BSC32) @<<
+  $(BSC32_FLAGS) $(BSC32_SBRS)
+<<
+
+LINK32=link.exe
+LINK32_FLAGS=$(OPENSSL) netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmphelpers.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib iphlpapi.lib /nologo /subsystem:console /incremental:no /pdb:"$(INTDIR)\snmpd.pdb" /debug /machine:I386 /out:"..\bin\$(OUTDIR)/snmpd.exe" /pdbtype:sept /libpath:"../lib/debug" 
+LINK32_OBJS= \
+	"$(INTDIR)\auto_nlist.obj" \
+	"$(INTDIR)\kernel.obj" \
+	"$(INTDIR)\snmpd.obj" \
+	"$(INTDIR)\winservice.obj" \
+	"$(INTDIR)\winservice.res"
+
+"..\bin\$(OUTDIR)\snmpd.exe" : "..\bin\$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+!IF "$(LINKTYPE)" == "static" || "$(ALLOW_DLL)" == "1"
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+!ELSE	# Linktype check
+	- at echo .
+	- at echo Aborting build.  Applications can not be built using --linktype=dynamic
+	- at echo .
+!ENDIF
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("snmpd.dep")
+!INCLUDE "snmpd.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "snmpd.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "release" || "$(CFG)" == "debug"
+SOURCE=..\..\agent\auto_nlist.c
+
+!IF  "$(CFG)" == "release"
+
+
+"$(INTDIR)\auto_nlist.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "debug"
+
+
+"$(INTDIR)\auto_nlist.obj"	"$(INTDIR)\auto_nlist.sbr" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+SOURCE=..\..\agent\kernel.c
+
+!IF  "$(CFG)" == "release"
+
+
+"$(INTDIR)\kernel.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "debug"
+
+
+"$(INTDIR)\kernel.obj"	"$(INTDIR)\kernel.sbr" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+SOURCE=..\..\agent\snmpd.c
+
+!IF  "$(CFG)" == "release"
+
+
+"$(INTDIR)\snmpd.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "debug"
+
+
+"$(INTDIR)\snmpd.obj"	"$(INTDIR)\snmpd.sbr" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+SOURCE=..\..\snmplib\winservice.c
+
+!IF  "$(CFG)" == "release"
+
+
+"$(INTDIR)\winservice.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "debug"
+
+
+"$(INTDIR)\winservice.obj"	"$(INTDIR)\winservice.sbr" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+SOURCE=..\..\snmplib\winservice.rc
+
+!IF  "$(CFG)" == "release"
+
+
+"$(INTDIR)\winservice.res" : $(SOURCE) "$(INTDIR)"
+	$(RSC) /l 0x409 /fo"$(INTDIR)\winservice.res" /i "..\..\snmplib" /d "NDEBUG" $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "debug"
+
+
+"$(INTDIR)\winservice.res" : $(SOURCE) "$(INTDIR)"
+	$(RSC) /l 0x409 /fo"$(INTDIR)\winservice.res" /i "..\..\snmplib" /d "_DEBUG" $(SOURCE)
+
+
+!ENDIF 
+
+
+!ENDIF 
+
diff --git a/win32/snmpdsdk/snmpd.dsp b/win32/snmpdsdk/snmpd.dsp
new file mode 100644
index 0000000..882ad22
--- /dev/null
+++ b/win32/snmpdsdk/snmpd.dsp
@@ -0,0 +1,106 @@
+# Microsoft Developer Studio Project File - Name="snmpdsdk" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=snmpdsdk - 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 "snmpd.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 "snmpd.mak" CFG="snmpdsdk - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "snmpdsdk - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "snmpdsdk - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "snmpdsdk - 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 "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# 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" /D "HAVE_WIN32_PLATFORM_SDK" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# 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 iphlpapi.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpd.exe" /libpath:"../lib/release"
+
+!ELSEIF  "$(CFG)" == "snmpdsdk - 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 "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# 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" /D "HAVE_WIN32_PLATFORM_SDK" /FR /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# 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 iphlpapi.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpd.exe" /pdbtype:sept /libpath:"../lib/debug"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "snmpdsdk - Win32 Release"
+# Name "snmpdsdk - Win32 Debug"
+# Begin Source File
+
+SOURCE=..\..\agent\auto_nlist.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\kernel.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\snmpd.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\winservice.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\winservice.rc
+# End Source File
+# End Target
+# End Project
diff --git a/win32/snmpget/snmpget.dsp b/win32/snmpget/snmpget.dsp
index 0603232..64980ed 100644
--- a/win32/snmpget/snmpget.dsp
+++ b/win32/snmpget/snmpget.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpget.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpget.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmpget - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpget.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpget.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmpgetnext/snmpgetnext.dsp b/win32/snmpgetnext/snmpgetnext.dsp
index cb63c84..233199d 100644
--- a/win32/snmpgetnext/snmpgetnext.dsp
+++ b/win32/snmpgetnext/snmpgetnext.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpgetnext.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpgetnext.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmpgetnext - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpgetnext.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpgetnext.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmpnetstat/Makefile.in b/win32/snmpnetstat/Makefile.in
index e27d97d..8421ccb 100644
--- a/win32/snmpnetstat/Makefile.in
+++ b/win32/snmpnetstat/Makefile.in
@@ -14,6 +14,12 @@ NULL=
 NULL=nul
 !ENDIF 
 
+!IF $(SSL) == 1
+OPENSSL=libeay32.lib gdi32.lib
+!ELSE
+OPENSSL=""
+!ENDIF
+
 !IF  "$(CFG)" == "release"
 
 ALL : "..\bin\$(OUTDIR)\$(PROGNAME).exe" "$(INTDIR)"
@@ -30,7 +36,6 @@ CLEAN :
 	- at erase "$(INTDIR)\winstub.obj"
 	- at erase "$(INTDIR)\$(PROGNAME).pch"
 	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe"
-	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest"
 
 "..\bin\$(OUTDIR)" :
     if not exist "..\bin\$(OUTDIR)/$(NULL)" mkdir "..\bin\$(OUTDIR)"
@@ -39,7 +44,7 @@ CLEAN :
     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 
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\$(PROGNAME).pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 
 !IF "$(LINKTYPE)" == "dynamic"
 CPP_PROJ=$(CPP_PROJ) /D "NMAKE_NETSNMP_USE_DLL"
@@ -79,9 +84,9 @@ RSC=rc.exe
 BSC32=bscmake.exe
 BSC32_FLAGS=/nologo /o"$(INTDIR)\$(PROGNAME).bsc" 
 BSC32_SBRS= \
-
+	
 LINK32=link.exe
-LINK32_FLAGS=netsnmp.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=$(OPENSSL) netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"..\bin\$(OUTDIR)/$(PROGNAME).exe" /libpath:"../lib/release" 
 LINK32_OBJS= \
 	"$(INTDIR)\if.obj" \
 	"$(INTDIR)\inet.obj" \
@@ -96,8 +101,6 @@ LINK32_OBJS= \
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
- if exist "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" \
-	    mt.exe -manifest "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" -outputresource:"..\bin\$(OUTDIR)\$(PROGNAME).exe";1
 !ELSE	# Linktype check
 	- at echo .
 	- at echo Aborting build.  Applications can not be built using --linktype=dynamic
@@ -130,7 +133,6 @@ CLEAN :
 	- at erase "$(INTDIR)\$(PROGNAME).bsc"
 	- at erase "$(INTDIR)\$(PROGNAME).pdb"
 	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe"
-	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest"
 
 "..\bin\$(OUTDIR)" :
     if not exist "..\bin\$(OUTDIR)/$(NULL)" mkdir "..\bin\$(OUTDIR)"
@@ -139,7 +141,7 @@ CLEAN :
     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" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\$(PROGNAME).pdb" /FD /c 
+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\$(PROGNAME).pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 
 !IF "$(LINKTYPE)" == "dynamic"
 CPP_PROJ=$(CPP_PROJ) /D "NMAKE_NETSNMP_USE_DLL"
@@ -193,7 +195,7 @@ BSC32_SBRS= \
 <<
 
 LINK32=link.exe
-LINK32_FLAGS=netsnmp.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=$(OPENSSL) netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /pdb:"$(INTDIR)\$(PROGNAME).pdb" /debug /machine:I386 /out:"..\bin\$(OUTDIR)/$(PROGNAME).exe" /pdbtype:sept /libpath:"../lib/debug" 
 LINK32_OBJS= \
 	"$(INTDIR)\if.obj" \
 	"$(INTDIR)\inet.obj" \
@@ -208,8 +210,6 @@ LINK32_OBJS= \
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
- if exist "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" \
-	    mt.exe -manifest "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" -outputresource:"..\bin\$(OUTDIR)\$(PROGNAME).exe";1
 !ELSE	# Linktype check
 	- at echo .
 	- at echo Aborting build.  Applications can not be built using --linktype=dynamic
diff --git a/win32/snmpnetstat/snmpnetstat.dsp b/win32/snmpnetstat/snmpnetstat.dsp
index 35dd7e8..25ec031 100644
--- a/win32/snmpnetstat/snmpnetstat.dsp
+++ b/win32/snmpnetstat/snmpnetstat.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpnetstat.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpnetstat.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmpnetstat - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpnetstat.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpnetstat.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmpset/snmpset.dsp b/win32/snmpset/snmpset.dsp
index ad0f509..fdeca30 100644
--- a/win32/snmpset/snmpset.dsp
+++ b/win32/snmpset/snmpset.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpset.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpset.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmpset - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpset.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpset.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmpsm_init.h b/win32/snmpsm_init.h
index c8a410b..8015ff6 100644
--- a/win32/snmpsm_init.h
+++ b/win32/snmpsm_init.h
@@ -1 +1,2 @@
+/* This file is automatically generated by configure.  Do not modify by hand. */
 init_usm();
diff --git a/win32/snmpsm_shutdown.h b/win32/snmpsm_shutdown.h
deleted file mode 100644
index 0e0c551..0000000
--- a/win32/snmpsm_shutdown.h
+++ /dev/null
@@ -1 +0,0 @@
-shutdown_usm();
diff --git a/win32/snmpstatus/snmpstatus.dsp b/win32/snmpstatus/snmpstatus.dsp
index e6a4100..1b68373 100644
--- a/win32/snmpstatus/snmpstatus.dsp
+++ b/win32/snmpstatus/snmpstatus.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpstatus.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpstatus.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmpstatus - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpstatus.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpstatus.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmptable/snmptable.dsp b/win32/snmptable/snmptable.dsp
index 1dfc138..75f964f 100644
--- a/win32/snmptable/snmptable.dsp
+++ b/win32/snmptable/snmptable.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmptable.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmptable.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmptable - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmptable.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmptable.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmptest/snmptest.dsp b/win32/snmptest/snmptest.dsp
index 89c08e9..dfb0cf1 100644
--- a/win32/snmptest/snmptest.dsp
+++ b/win32/snmptest/snmptest.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmptest.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmptest.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmptest - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmptest.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmptest.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmptranslate/snmptranslate.dsp b/win32/snmptranslate/snmptranslate.dsp
index c3eca02..a3ebde5 100644
--- a/win32/snmptranslate/snmptranslate.dsp
+++ b/win32/snmptranslate/snmptranslate.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmptranslate.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmptranslate.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmptranslate - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmptranslate.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmptranslate.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmptrap/snmptrap.dsp b/win32/snmptrap/snmptrap.dsp
index c34ffd8..8d27ee1 100644
--- a/win32/snmptrap/snmptrap.dsp
+++ b/win32/snmptrap/snmptrap.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmptrap.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmptrap.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmptrap - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmptrap.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmptrap.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmptrapd/Makefile.in b/win32/snmptrapd/Makefile.in
index dc4fe50..357c5b0 100644
--- a/win32/snmptrapd/Makefile.in
+++ b/win32/snmptrapd/Makefile.in
@@ -14,6 +14,12 @@ NULL=
 NULL=nul
 !ENDIF 
 
+!IF $(SSL) == 1
+OPENSSL=libeay32.lib gdi32.lib
+!ELSE
+OPENSSL=""
+!ENDIF
+
 !IF  "$(CFG)" == "release"
 
 ALL : "..\bin\$(OUTDIR)\$(PROGNAME).exe" "$(INTDIR)"
@@ -26,7 +32,6 @@ CLEAN :
 	- at erase "$(INTDIR)\vc??.idb"
 	- at erase "$(INTDIR)\$(PROGNAME).pch"
 	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe"
-	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest"
 
 "..\bin\$(OUTDIR)" :
     if not exist "..\bin\$(OUTDIR)/$(NULL)" mkdir "..\bin\$(OUTDIR)"
@@ -35,7 +40,7 @@ CLEAN :
     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\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 
+CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent\mibgroup" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\$(PROGNAME).pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 
 !IF "$(LINKTYPE)" == "dynamic"
 CPP_PROJ=$(CPP_PROJ) /D "NMAKE_NETSNMP_USE_DLL"
@@ -76,9 +81,9 @@ RSC_PROJ=/l 0x409 /fo"$(INTDIR)\winservice.res" /d "NDEBUG"
 BSC32=bscmake.exe
 BSC32_FLAGS=/nologo /o"$(INTDIR)\$(PROGNAME).bsc" 
 BSC32_SBRS= \
-
+	
 LINK32=link.exe
-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_FLAGS=$(OPENSSL) 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\$(OUTDIR)/$(PROGNAME).exe" /libpath:"../lib/release" 
 LINK32_OBJS= \
 	"$(INTDIR)\$(PROGNAME).obj" \
 	"$(INTDIR)\winservice.obj" \
@@ -89,8 +94,6 @@ LINK32_OBJS= \
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
- if exist "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" \
-	    mt.exe -manifest "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" -outputresource:"..\bin\$(OUTDIR)\$(PROGNAME).exe";1
 !ELSE	# Linktype check
 	- at echo .
 	- at echo Aborting build.  Applications can not be built using --linktype=dynamic
@@ -114,7 +117,6 @@ CLEAN :
 	- at erase "$(INTDIR)\$(PROGNAME).bsc"
 	- at erase "$(INTDIR)\$(PROGNAME).pdb"
 	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe"
-	- at erase "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest"
 
 "..\bin\$(OUTDIR)" :
     if not exist "..\bin\$(OUTDIR)/$(NULL)" mkdir "..\bin\$(OUTDIR)"
@@ -123,7 +125,7 @@ CLEAN :
     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\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" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\$(PROGNAME).pdb" /FD /c 
+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent\mibgroup" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\$(PROGNAME).pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
 
 !IF "$(LINKTYPE)" == "dynamic"
 CPP_PROJ=$(CPP_PROJ) /D "NMAKE_NETSNMP_USE_DLL"
@@ -173,7 +175,7 @@ BSC32_SBRS= \
 <<
 
 LINK32=link.exe
-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_FLAGS=$(OPENSSL) 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:"$(INTDIR)\$(PROGNAME).pdb" /debug /machine:I386 /out:"..\bin\$(OUTDIR)/$(PROGNAME).exe" /pdbtype:sept /libpath:"../lib/debug" 
 LINK32_OBJS= \
 	"$(INTDIR)\$(PROGNAME).obj" \
 	"$(INTDIR)\winservice.obj" \
@@ -184,8 +186,6 @@ LINK32_OBJS= \
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
- if exist "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" \
-	    mt.exe -manifest "..\bin\$(OUTDIR)\$(PROGNAME).exe.manifest" -outputresource:"..\bin\$(OUTDIR)\$(PROGNAME).exe";1
 !ELSE	# Linktype check
 	- at echo .
 	- at echo Aborting build.  Applications can not be built using --linktype=dynamic
@@ -204,6 +204,25 @@ LINK32_OBJS= \
 !ENDIF 
 
 
+!IF "$(CFG)" == "release" || "$(CFG)" == "debug"
+SOURCE=..\..\agent\mibgroup\notification-log-mib\notification_log.c
+
+!IF  "$(CFG)" == "release"
+
+
+"$(INTDIR)\notification_log.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "debug"
+
+
+"$(INTDIR)\notification_log.obj"	"$(INTDIR)\notification_log.sbr" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
 SOURCE=..\..\apps\$(PROGNAME).c
 
 !IF  "$(CFG)" == "release"
@@ -293,3 +312,7 @@ SOURCE=..\..\snmplib\winservice.rc
 
 
 !ENDIF 
+
+
+!ENDIF 
+
diff --git a/win32/snmptrapd/snmptrapd.dsp b/win32/snmptrapd/snmptrapd.dsp
index 9f49389..de44737 100644
--- a/win32/snmptrapd/snmptrapd.dsp
+++ b/win32/snmptrapd/snmptrapd.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 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 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"
 
 !ELSEIF  "$(CFG)" == "snmptrapd - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 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 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"
 
 !ENDIF 
 
@@ -88,10 +88,6 @@ SOURCE=..\..\apps\snmptrapd.c
 # 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/snmpusm/snmpusm.dsp b/win32/snmpusm/snmpusm.dsp
index a1c0124..db43f2e 100644
--- a/win32/snmpusm/snmpusm.dsp
+++ b/win32/snmpusm/snmpusm.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpusm.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpusm.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmpusm - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpusm.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpusm.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmpv3-security-includes.h b/win32/snmpv3-security-includes.h
deleted file mode 100644
index c763cf8..0000000
--- a/win32/snmpv3-security-includes.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <net-snmp/library/snmpusm.h>
diff --git a/win32/snmpvacm/snmpvacm.dsp b/win32/snmpvacm/snmpvacm.dsp
index 2fd53fd..0856832 100644
--- a/win32/snmpvacm/snmpvacm.dsp
+++ b/win32/snmpvacm/snmpvacm.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpvacm.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpvacm.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmpvacm - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpvacm.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpvacm.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmpwalk/snmpwalk.dsp b/win32/snmpwalk/snmpwalk.dsp
index 67598f1..5d81957 100644
--- a/win32/snmpwalk/snmpwalk.dsp
+++ b/win32/snmpwalk/snmpwalk.dsp
@@ -50,7 +50,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpwalk.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpwalk.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmpwalk - Win32 Debug"
 
@@ -74,7 +74,7 @@ BSC32=bscmake.exe
 # 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 advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpwalk.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpwalk.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/transports/snmp_transport_inits.h b/win32/transports/snmp_transport_inits.h
deleted file mode 100644
index 2fa0301..0000000
--- a/win32/transports/snmp_transport_inits.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifdef NETSNMP_TRANSPORT_UDP_DOMAIN
-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 5ad1ab0..4763c37 100644
--- a/win32/win32.dsw
+++ b/win32/win32.dsw
@@ -11,14 +11,11 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
 }}}
 
 ###############################################################################
 
-Project: "netsnmpmibs"=".\netsnmpmibs\netsnmpmibs.dsp" - Package Owner=<4>
+Project: "libhelpers"=".\libhelpers\libhelpers.dsp" - Package Owner=<4>
 
 Package=<5>
 {{{
@@ -26,9 +23,6 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
 }}}
 
 ###############################################################################
@@ -45,6 +39,18 @@ Package=<4>
 
 ###############################################################################
 
+Project: "netsnmpmibs"=".\netsnmpmibs\netsnmpmibs.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
 Project: "libnetsnmptrapd"=".\libnetsnmptrapd\libnetsnmptrapd.dsp" - Package Owner=<4>
 
 Package=<5>
@@ -53,9 +59,6 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
 }}}
 
 ###############################################################################
@@ -68,9 +71,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -83,9 +86,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -98,9 +101,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -113,15 +116,18 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libagent
-    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 libsnmp
+  End Project Dependency
+  Begin Project Dependency
+  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
 }}}
 
 ###############################################################################
@@ -134,9 +140,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -149,9 +155,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -164,9 +170,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -179,9 +185,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -194,9 +200,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -209,9 +215,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -224,9 +230,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -239,9 +245,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -254,9 +260,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -269,9 +275,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -284,9 +290,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -299,18 +305,21 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libagent
-    End Project Dependency
-    Begin Project Dependency
-    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 libsnmp
+  End Project Dependency
+  Begin Project Dependency
+  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
+  Project_Dep_Name libnetsnmptrapd
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -323,9 +332,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -338,9 +347,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
@@ -353,9 +362,9 @@ Package=<5>
 
 Package=<4>
 {{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
 }}}
 
 ###############################################################################
diff --git a/win32/win32dll.dsw b/win32/win32dll.dsw
deleted file mode 100755
index fc24f5a..0000000
--- a/win32/win32dll.dsw
+++ /dev/null
@@ -1,374 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "encode_keychange"=".\encode_keychange\encode_keychange.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "libagent"=".\libagent\libagent.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>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "libsnmp_dll"=".\libsnmp_dll\libsnmp_dll.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "netsnmpmibs"=".\netsnmpmibs\netsnmpmibs.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmpbulkget"=".\snmpbulkget\snmpbulkget.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmpbulkwalk"=".\snmpbulkwalk\snmpbulkwalk.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmpd"=".\snmpd\snmpd.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libagent
-    End Project Dependency
-    Begin Project Dependency
-    Project_Dep_Name netsnmpmibs
-    End Project Dependency
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmpdelta"=".\snmpdelta\snmpdelta.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmpdf"=".\snmpdf\snmpdf.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmpget"=".\snmpget\snmpget.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmpgetnext"=".\snmpgetnext\snmpgetnext.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmpnetstat"=".\snmpnetstat\snmpnetstat.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmpset"=".\snmpset\snmpset.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmpstatus"=".\snmpstatus\snmpstatus.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmptable"=".\snmptable\snmptable.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmptest"=".\snmptest\snmptest.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmptranslate"=".\snmptranslate\snmptranslate.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmptrap"=".\snmptrap\snmptrap.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmptrapd"=".\snmptrapd\snmptrapd.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libagent
-    End Project Dependency
-    Begin Project Dependency
-    Project_Dep_Name libnetsnmptrapd
-    End Project Dependency
-    Begin Project Dependency
-    Project_Dep_Name netsnmpmibs
-    End Project Dependency
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmpusm"=".\snmpusm\snmpusm.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmpvacm"=".\snmpvacm\snmpvacm.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "snmpwalk"=".\snmpwalk\snmpwalk.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/win32/win32sdk.dsw b/win32/win32sdk.dsw
new file mode 100644
index 0000000..b3c6cba
--- /dev/null
+++ b/win32/win32sdk.dsw
@@ -0,0 +1,383 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "libagent"=".\libagent\libagent.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+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>
+{{{
+}}}
+
+###############################################################################
+
+Project: "netsnmpmibssdk"=".\netsnmpmibssdk\netsnmpmibssdk.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "libnetsnmptrapd"=".\libnetsnmptrapd\libnetsnmptrapd.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "encode_keychange"=".\encode_keychange\encode_keychange.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmpbulkget"=".\snmpbulkget\snmpbulkget.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmpbulkwalk"=".\snmpbulkwalk\snmpbulkwalk.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmpdsdk"=".\snmpdsdk\snmpd.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+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
+  End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name netsnmpmibssdk
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmpdelta"=".\snmpdelta\snmpdelta.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmpdf"=".\snmpdf\snmpdf.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmpget"=".\snmpget\snmpget.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmpgetnext"=".\snmpgetnext\snmpgetnext.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmpnetstat"=".\snmpnetstat\snmpnetstat.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmpset"=".\snmpset\snmpset.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmpstatus"=".\snmpstatus\snmpstatus.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmptable"=".\snmptable\snmptable.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmptest"=".\snmptest\snmptest.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmptranslate"=".\snmptranslate\snmptranslate.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmptrap"=".\snmptrap\snmptrap.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmptrapd"=".\snmptrapd\snmptrapd.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+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
+  End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name netsnmpmibssdk
+  End Project Dependency
+  Begin Project Dependency
+  Project_Dep_Name libnetsnmptrapd
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmpusm"=".\snmpusm\snmpusm.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmpvacm"=".\snmpvacm\snmpvacm.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "snmpwalk"=".\snmpwalk\snmpwalk.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+  Begin Project Dependency
+  Project_Dep_Name libsnmp
+  End Project Dependency
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-net-snmp/pkg-net-snmp.git



More information about the Pkg-net-snmp-commits mailing list